diff --git a/.travis/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl similarity index 100% rename from .travis/calcrom/calcrom.pl rename to .github/calcrom/calcrom.pl diff --git a/.travis/calcrom/webhook.sh b/.github/calcrom/webhook.sh similarity index 66% rename from .travis/calcrom/webhook.sh rename to .github/calcrom/webhook.sh index 86da74c873..2a3015969e 100755 --- a/.travis/calcrom/webhook.sh +++ b/.github/calcrom/webhook.sh @@ -1,10 +1,5 @@ #!/bin/bash -ex -# Only run this script if it's the master branch build. -if [[ "$TRAVIS_BRANCH" != "master" || "$TRAVIS_PULL_REQUEST" != "false" ]]; then - exit 0 -fi - build_name=$1 map_file=$build_name.map if [ ! -f $map_file ]; then @@ -13,4 +8,4 @@ if [ ! -f $map_file ]; then fi output=$(perl $(dirname "$0")/calcrom.pl $build_name.map | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g') -curl -d "{\"username\": \"$CALCROM_DISCORD_WEBHOOK_USERNAME\", \"avatar_url\": \"$CALCROM_DISCORD_WEBHOOK_AVATAR_URL\", \"content\":\"\`\`\`$build_name progress:\\n$output\`\`\`\"}" -H "Content-Type: application/json" -X POST $CALCROM_DISCORD_WEBHOOK_URL +curl -d "{\"username\": \"$CALCROM_DISCORD_WEBHOOK_USERNAME\", \"avatar_url\": \"$CALCROM_DISCORD_WEBHOOK_AVATAR_URL\", \"content\":\"\`\`\`$build_name progress:\\n$output\`\`\`\"}" -H "Content-Type: application/json" -X POST "$CALCROM_DISCORD_WEBHOOK_URL" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..942f1f1f58 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,50 @@ +name: CI + +on: + push: + branches: + - master + - battle_engine + - pokemon_expansion + - item_expansion + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + env: + GAME_VERSION: EMERALD + GAME_REVISION: 0 + GAME_LANGUAGE: ENGLISH + MODERN: 0 + COMPARE: 0 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Checkout agbcc + uses: actions/checkout@v2 + with: + path: agbcc + repository: pret/agbcc + + - name: Install binutils + run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi + # build-essential, git, and libpng-dev are already installed + # gcc-arm-none-eabi is only needed for the modern build + # as an alternative to dkP + + - name: Install agbcc + run: | + ./build.sh + ./install.sh ../ + working-directory: agbcc + + - name: Agbcc + run: make -j${nproc} all + + - name: Modern + env: + MODERN: 1 + COMPARE: 0 + run: make -j${nproc} all diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8d39be503f..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,39 +0,0 @@ -language: generic -dist: bionic -sudo: false -env: - global: - - DEVKITPRO=$HOME - - DEVKITARM=$DEVKITPRO/devkitARM -addons: - apt: - packages: - - gcc-multilib - - linux-libc-dev -cache: - apt: true -install: - - pushd $HOME - - travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r52/devkitARM_r52-linux.tar.xz - - tar xJf devkitARM*.tar.xz - - travis_retry wget https://github.com/devkitPro/devkitarm-rules/releases/download/v1.0.0/devkitarm-rules-1.0.0.tar.xz - - tar xJf devkitarm-rules-*.tar.xz -C $DEVKITARM - - travis_retry git clone https://github.com/pret/agbcc.git - - cd agbcc && ./build.sh && ./install.sh $TRAVIS_BUILD_DIR - - popd -matrix: - include: - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-7 - env: _="Build" - script: - - make -j2 tools CXX=g++-7 - - make -j2 compare - - make -j2 modern -after_success: - - .travis/calcrom/webhook.sh pokeemerald diff --git a/INSTALL.md b/INSTALL.md index 20d55e134c..1ad3b4b0c9 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,96 +1,570 @@ -# Prerequisites +# Instructions -| Linux | macOS | Windows 10 -| - | - | - -| none | [Xcode Command Line Tools Package][xcode] | [Windows Terminal][terminal] and [Windows Subsystem for Linux (WSL)][wsl] +These instructions explain how to set up the tools required to build **pokeemerald**, which assembles the source files into a ROM. -[xcode]: https://developer.apple.com/library/archive/technotes/tn2339/_index.html -[terminal]: https://docs.microsoft.com/windows/terminal/get-started -[wsl]: https://docs.microsoft.com/windows/wsl/install-win10 +These instructions come with notes which can be expanded by clicking the "Note..." text. +In general, you should not need to open these unless if you get an error or if you need additional clarification. -Independently from the specific OS, make sure that the `gcc`, `g++`, `make`, `git`, and `libpng-dev` packages or their equivalents are installed and accessible to the development tools that are used by the project (this means that, for example, on Windows, the packages have to be installed in the WSL environment). The package names and installation methods may vary with each OS. +If you run into trouble, ask for help on Discord or IRC (see [README.md](README.md)). -Install the devkitARM toolchain of devkitPro as per [the instructions on their wiki](https://devkitpro.org/wiki/devkitPro_pacman). On Windows, follow the Linux instructions inside WSL as any steps about the Windows installer do not apply. +## Windows +Windows has instructions for building with three possible terminals, providing 3 different options in case the user stumbles upon unexpected errors. +- [Windows 10 (WSL1)](#windows-10-wsl1) (**Fastest, highly recommended**, Windows 10 only) +- [Windows (msys2)](#windows-msys2) (Second fastest) +- [Windows (Cygwin)](#windows-cygwin) (Slowest) -**Debian-based distro users:** This applies to Debian, Ubuntu, and similar distros, including in WSL. If necessary, install the `libarchive13`, `pkg-config`, and `gdebi-core` packages to be able to install devkitPro. +Unscientific benchmarks suggest **msys2 is 2x slower** than WSL1, and **Cygwin is 5-6x slower** than WSL1. +
+ Note for advanced users: WSL2... -**Windows 10 users:** WSL 2 is available in the 1903 release (build 18362) and later, therefore existing WSL 1 and [prerelease WSL](https://docs.microsoft.com/windows/wsl/install-legacy) users are recommended to update. Right-click the Start button or press `Win`+`X`, choose Run, and run `ms-settings:about` to determine the Windows version. Also check Windows Update to make sure your installation is up-to-date. +> WSL2 is an option and is even faster than WSL1 if files are stored on the WSL2 file system, but some tools may have trouble interacting +> with the WSL2 file system over the network drive. For example, tools which use Qt versions before 5.15.2 such as porymap +> may have problems with parsing the \\wsl$ network drive path. +
-**Windows 7 and 8.1 users:** pret is no longer focusing on support in pokeemerald for [old versions of Windows](https://support.microsoft.com/help/13853) so consider upgrading to a current release of Windows 10 or try a third-party guide like [this one](https://www.pokecommunity.com/showthread.php?t=425246) instead. +All of the Windows instructions assume that the default drive is C:\\. If this differs to your actual drive letter, then replace C with the correct drive letter when reading the instructions. +**A note of caution**: As Windows 7 is officially unsupported by Microsoft and Windows 8 has very little usage, some maintainers are unwilling to maintain the Windows 7/8 instructions. Thus, these instructions may break in the future with fixes taking longer than fixes to the Windows 10 instructions. -# Installation +## Windows 10 (WSL1) +WSL1 is the preferred terminal to build **pokeemerald**. The following instructions will explain how to install WSL1 (referred to interchangeably as WSL). +- If WSL (Debian or Ubuntu) is **not installed**, then go to [Installing WSL1](#Installing-WSL1). +- Otherwise, if WSL is installed, but it **hasn't previously been set up for another decompilation project**, then go to [Setting up WSL1](#Setting-up-WSL1). +- Otherwise, **open WSL** and go to [Choosing where to store pokeemerald (WSL1)](#Choosing-where-to-store-pokeemerald-WSL1). -To set up the repository: +### Installing WSL1 +1. Open [Windows Powershell **as Administrator**](https://i.imgur.com/QKmVbP9.png), and run the following command (Right Click or Shift+Insert is paste in the Powershell). - git clone https://github.com/pret/pokeemerald - git clone https://github.com/pret/agbcc + ```powershell + dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart + ``` - cd ./agbcc - ./build.sh - ./install.sh ../pokeemerald +2. Once the process finishes, restart your machine. - cd ../pokeemerald +3. The next step is to choose and install a Linux distribution from the Microsoft Store. The following instructions will assume Ubuntu as the Linux distribution of choice. +
+ Note for advanced users... + + > You can pick a preferred Linux distribution, but setup instructions may differ. Debian should work with the given instructions, but has not been tested. +
-To build **pokeemerald.gba** for the first time and confirm it matches the official ROM image: +4. Open the [Microsoft Store Linux Selection](https://aka.ms/wslstore), click Ubuntu, then click Get, which will install the Ubuntu distribution. +
+ Notes... - make compare + > Note 1: If a dialog pops up asking for you to sign into a Microsoft Account, then just close the dialog. + > Note 2: If the link does not work, then open the Microsoft Store manually, and search for the Ubuntu app (choose the one with no version number). +
+### Setting up WSL1 +Some tips before proceeding: +- In WSL, Copy and Paste is either done via + - **right-click** (selection + right click to Copy, right click with no selection to Paste) + - **Ctrl+Shift+C/Ctrl+Shift+V** (enabled by right-clicking the title bar, going to Properties, then checking the checkbox next to "Use Ctrl+Shift+C/V as Copy/Paste"). +- Some of the commands that you'll run will ask for your WSL password and/or confirmation to perform the stated action. This is to be expected, just enter your WSL password and/or the yes action when necessary. + +1. Open **Ubuntu** (e.g. using Search). +2. WSL/Ubuntu will set up its own installation when it runs for the first time. Once WSL/Ubuntu finishes installing, it will ask for a username and password (to be input in). +
+ Note... + + > When typing in the password, there will be no visible response, but the terminal will still read in input. +
+ +3. Update WSL/Ubuntu before continuing. Do this by running the following command. These commands will likely take a long time to finish: + + ```bash + sudo apt update && sudo apt upgrade + ``` + +> Note: If the repository you plan to build has an **[older revision of the INSTALL.md](https://github.com/pret/pokeemerald/blob/571c598/INSTALL.md)**, then follow the [legacy WSL1 instructions](docs/legacy_WSL1_INSTALL.md) from here. + +4. Certain packages are required to build pokeemerald. Install these packages by running the following command: + + ```bash + sudo apt install build-essential binutils-arm-none-eabi git libpng-dev + ``` +
+ Note... + + > If the above command does not work, try the above command but replacing `apt` with `apt-get`. +
+ +### Choosing where to store pokeemerald (WSL1) +WSL has its own file system that's not natively accessible from Windows, but Windows files *are* accessible from WSL. So you're going to want to store pokeemerald within Windows. + +For example, say you want to store pokeemerald (and agbcc) in **C:\Users\\_\_\Desktop\decomps**. First, ensure that the folder already exists. Then, enter this command to **change directory** to said folder, where *\* is your **Windows** username: + +```bash +cd /mnt/c/Users//Desktop/decomps +``` + +
+ Notes... + +> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL. +> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users//Desktop/decomp folder"`. +> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed +
+ +If this works, then proceed to [Installation](#installation). + +Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using msys2](#windows-msys2). + +## Windows (msys2) + +- If devkitARM is **not installed**, then go to [Installing devkitARM](#installing-devkitarm). +- If devkitARM is installed, but msys2 **hasn't previously been set up for another decompilation project**, then go to [Setting up msys2](#setting-up-msys2). +- Otherwise, **open msys2** and go to [Choosing where to store pokeemerald (msys2)](#choosing-where-to-store-pokeemerald-msys2). + +### Installing devkitARM +1. Download the devkitPro installer [here](https://github.com/devkitPro/installer/releases). +2. Run the devkitPro installer. In the "Choose Components" screen, uncheck everything except GBA Development unless if you plan to install other devkitPro components for other purposes. Keep the install location as C:\devkitPro and leave the Start Menu option unchanged. + +### Setting up msys2 + +Note that in msys2, Copy is Ctrl+Insert and Paste is Shift+Insert. + +1. Open msys2 at C:\devkitPro\msys2\msys2_shell.bat. + +2. Certain packages are required to build pokeemerald. Install these by running the following command: + + ```bash + pacman -S make gcc zlib-devel git + ``` +
+ Note... + + > This command will ask for confirmation, just enter the yes action when prompted. +
+ +3. Download [libpng](https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.xz/download). + +4. Change directory to where libpng was downloaded. By default, msys2 will start in the current user's profile folder, located at **C:\Users\\⁠_\_**, where *\* is your Windows username. In most cases, libpng should be saved within a subfolder of the profile folder. For example, if libpng was saved to **C:\Users\\_\_\Downloads** (the Downloads location for most users), enter this command: + + ```bash + cd Downloads + ``` + +
+ Notes... + + > Note 1: While not shown, msys uses forward slashes `/` instead of backwards slashes `\` as the directory separator. + > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Downloads/My Downloads"`. + > Note 3: Windows path names are case-insensitive so adhering to capitalization isn’t needed. + > Note 4: If libpng was saved elsewhere, you will need to specify the full path to where libpng was downloaded, e.g. `cd c:/devkitpro/msys2` if it was saved there. +
+ +5. Run the following commands to uncompress and install libpng. + + ```bash + tar xf libpng-1.6.37.tar.xz + cd libpng-1.6.37 + ./configure --prefix=/usr + make check + make install + ``` + +6. Then finally, run the following command to change back to the user profile folder. + + ```bash + cd + ``` + +### Choosing where to store pokeemerald (msys2) +At this point, you can choose a folder to store pokeemerald into. If you're okay with storing pokeemerald in the user profile folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald is stored when changing directory to the pokeemerald folder. + +For example, if you want to store pokeemerald (and agbcc) in **C:\Users\\_\_\Desktop\decomps** (where *\* is your **Windows** username), enter this command: + +```bash +cd Desktop/decomps +``` + +If this works, then proceed to [Installation](#installation). + +Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using Cygwin](#windows-cygwin). + +## Windows (Cygwin) +1. If devkitARM is **not installed**, then follow the instructions used to [install devkitARM](#installing-devkitarm) for the msys2 setup before continuing. *Remember to not continue following the msys2 instructions by mistake!* + +2. + - If Cygwin is **not installed**, or does not have all of the required packages installed, then go to [Installing Cygwin](#installing-cygwin). + - If Cygwin is installed, but **is not configured to work with devkitARM**, then go to [Configuring devkitARM for Cygwin](#configuring-devkitarm-for-cygwin). + - Otherwise, **open Cygwin** and go to [Choosing where to store pokeemerald (Cygwin)](#choosing-where-to-store-pokeemerald-cygwin) + +### Installing Cygwin +1. Download [Cygwin](https://cygwin.com/install.html): setup-x86_64.exe for 64-bit Windows, setup-x86.exe for 32-bit. + +2. Run the Cygwin setup. Within the Cygwin setup, leave the default settings until the "Choose A Download Site" screen. + +3. At "Choose a Download Site", select any mirror within the Available Download Sites. + +4. At "Select Packages", set the view to "Full" (top left) and search for the following packages: + - `make` + - `git` + - `gcc-core` + - `gcc-g++` + - `libpng-devel` + + To quickly find these, use the search bar and type the name of each package. Ensure that the selected package name is the **exact** same as the one you're trying to download, e.g. `cmake` is **NOT** the same as `make`. + +5. For each package, double click on the text that says "**Skip**" next to each package to select the most recent version to install. If the text says anything other than "**Skip**", (e.g. Keep or a version number), then the package is or will be installed and you don't need to do anything. + +6. Once all required packages have been selected, finish the installation. + +### Configuring devkitARM for Cygwin + +Note that in Cygwin, Copy is Ctrl+Insert and Paste is Shift+Insert. + +1. Open **Cygwin**. + +2. Run the following commands to configure devkitPro to work with Cygwin. + + ```bash + export DEVKITPRO=/cygdrive/c/devkitpro + echo export DEVKITPRO=$DEVKITPRO >> ~/.bashrc + export DEVKITARM=$DEVKITPRO/devkitARM + echo export DEVKITARM=$DEVKITARM >> ~/.bashrc + ``` + +
+ Note... + + > Replace the drive letter c with the actual drive letter if it is not c. +
+ +### Choosing where to store pokeemerald (Cygwin) + +Cygwin has its own file system that's within Windows, at **C:\cygwin64\home\\_\_**. If you don't want to store pokeemerald there, you'll need to account for where pokeemerald is stored when **changing directory** to the pokeemerald folder. + +For example, if you want to store pokeemerald (and agbcc) in **C:\Users\\_\_\Desktop\decomps**, enter this command, where *\* is your **Windows** username: +```bash +cd c:/Users//Desktop/decomps +``` +Note that the directory **must exist** in Windows. If you want to store pokeemerald in a dedicated folder that doesn't exist (e.g. the example provided above), then create the folder (e.g. using Windows Explorer) before executing the `cd` command. + +
+ Notes... + +> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users//Desktop/decomp folder"`. +> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed +
+ +If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)). + +## macOS +1. If the Xcode Command Line Tools are not installed, download the tools [here](https://developer.apple.com/xcode/resources/), open your Terminal, and run the following command: + + ```bash + xcode-select --install + ``` + +2. - If libpng is **not installed**, then go to [Installing libpng (macOS)](#installing-libpng-macos). + - If devkitARM is **not installed**, then go to [Installing devkitARM (macOS)](#installing-devkitarm-macos). + - Otherwise, **open the Terminal** and go to [Choosing where to store pokeemerald (macOS)](#choosing-where-to-store-pokeemerald-macos) + +### Installing libpng (macOS) +
+ Note for advanced users... + +> This guide installs libpng via Homebrew as it is the easiest method, however advanced users can install libpng through other means if they so desire. +
+ +1. Open the Terminal. +2. If Homebrew is not installed, then install [Homebrew](https://brew.sh/) by following the instructions on the website. +3. Run the following command to install libpng. + + ```bash + brew install libpng + ``` + libpng is now installed. + + Continue to [Installing devkitARM (macOS)](#installing-devkitarm-macos) if **devkitARM is not installed**, otherwise, go to [Choosing where to store pokeemerald (macOS)](#choosing-where-to-store-pokeemerald-macos). + +### Installing devkitARM (macOS) +1. Download the `devkitpro-pacman-installer.pkg` package from [here](https://github.com/devkitPro/pacman/releases). +2. Open the package to install devkitPro pacman. +3. In the Terminal, run the following commands to install devkitARM: + + ```bash + sudo dkp-pacman -Sy + sudo dkp-pacman -S gba-dev + sudo dkp-pacman -S devkitarm-rules + ``` + + The command with gba-dev will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. + +4. After the tools are installed, devkitARM must now be made accessible from anywhere by the system. To do so, run the following commands: + + ```bash + 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 + ``` + +### Choosing where to store pokeemerald (macOS) +At this point, you can choose a folder to store pokeemerald into. If you're okay with storing pokeemerald in the user folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald is stored when changing directory to the pokeemerald folder. + +For example, if you want to store pokeemerald (and agbcc) in **~/Desktop/decomps**, enter this command to **change directory** to the desired folder: +```bash +cd Desktop/decomps +``` +Note that the directory **must exist** in the folder system. If you want to store pokeemerald in a dedicated folder that doesn't exist (e.g. the example provided above), then create the folder (e.g. using Finder) before executing the `cd` command. + +
+ Note... + +> Note: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Desktop/decomp folder"` +
+ +If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)). + +## Linux +Open Terminal and enter the following commands, depending on which distro you're using. + +### Debian/Ubuntu-based distributions +Run the following command to install the necessary packages: +```bash +sudo apt install build-essential binutils-arm-none-eabi git libpng-dev +``` +Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux). +
+ Note for legacy repos... + +> If the repository you plan to build has an **[older revision of the INSTALL.md](https://github.com/pret/pokeemerald/blob/571c598/INSTALL.md)**, +> then you will have to install devkitARM. Install all the above packages except binutils-arm-none-eabi, and follow the instructions to +> [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions). +
+ +### Other distributions +_(Specific instructions for other distributions would be greatly appreciated!)_ + +1. Try to find the required software in its repositories: + - `gcc` + - `g++` + - `make` + - `git` + - `libpng-dev` + +2. Follow the instructions [here](https://devkitpro.org/wiki/devkitPro_pacman) to install devkitPro pacman. As a reminder, the goal is to configure an existing pacman installation to recognize devkitPro's repositories. +3. Once devkitPro pacman is configured, run the following commands: + + ```bash + sudo pacman -Sy + sudo pacman -S gba-dev + ``` + + The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. + +### Choosing where to store pokeemerald (Linux) +At this point, you can choose a folder to store pokeemerald (and agbcc) into. If so, you'll have to account for the modified folder path when changing directory to the pokeemerald folder. + +If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)). + +## Installation + +
+ Note for Windows users... + +> Consider adding an exception for the `pokeemerald` and/or `decomps` folder in Windows Security using +> [these instructions](https://support.microsoft.com/help/4028485). This prevents Microsoft Defender from +> scanning them which might improve performance while building. +
+ +1. If pokeemerald is not already downloaded (some users may prefer to download pokeemerald via a git client like GitHub Desktop), run: + + ```bash + git clone https://github.com/pret/pokeemerald + ``` + +
+ Note for WSL1... + + > If you get an error stating `fatal: could not set 'core.filemode' to 'false'`, then run the following commands: + > ```bash + > cd + > sudo umount /mnt/c + > sudo mount -t drvfs C: /mnt/c -o metadata,noatime + > cd + > ``` + > Where *\* is the path of the folder [where you chose to store pokeemerald](#Choosing-where-to-store-pokeemerald-WSL1). Then run the `git clone` command again. +
+ +2. Install agbcc into pokeemerald. The commands to run depend on certain conditions. **You should only follow one of the listed instructions**: +- If agbcc has **not been built before** in the folder where you chose to store pokeemerald, run the following commands to build and install it into pokeemerald: + + ```bash + git clone https://github.com/pret/agbcc + cd agbcc + ./build.sh + ./install.sh ../pokeemerald + ``` + +- **Otherwise**, if agbcc has been built before (e.g. if the git clone above fails), but was **last built on a different terminal** than the one currently used (only relevant to Windows, e.g. switching from msys2 to WSL1), then run the following commands to build and install it into pokeemerald: + + ```bash + cd agbcc + git clean -fX + ./build.sh + ./install.sh ../pokeemerald + ``` + +- **Otherwise**, if agbcc has been built before on the same terminal, run the following commands to install agbcc into pokeemerald: + + ```bash + cd agbcc + ./install.sh ../pokeemerald + ``` + +
+ Note... + + > If building agbcc or pokeemerald results in an error, try deleting the agbcc folder and re-installing agbcc as if it has not been built before. +
+ +3. Once agbcc is installed, change directory back to the base directory where pokeemerald and agbcc are stored: + + ```bash + cd .. + ``` + +Now you're ready to [build **pokeemerald**](#build-pokeemerald) +## Build pokeemerald +If you aren't in the pokeemerald directory already, then **change directory** to the pokeemerald folder: +```bash +cd pokeemerald +``` +To build **pokeemerald.gba** for the first time and confirm it matches the official ROM image (Note: to speed up builds, see [Parallel builds](#parallel-builds)): +```bash +make compare +``` If an OK is returned, then the installation went smoothly. - -**Windows users:** Consider adding exceptions for the `pokeemerald` and `agbcc` folders in Windows Security using [these instructions](https://support.microsoft.com/help/4028485). This prevents Microsoft Defender from scanning them which might improve performance while building. - - -# Start +
+Note for Windows... +> If you switched terminals since the last build (e.g. from msys2 to WSL1), you must run `make clean-tools` once before any subsequent `make` commands. +
To build **pokeemerald.gba** with your changes: - - make - -**macOS users:** If the base tools are not found 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`. - +```bash +make +``` # Building guidance - ## Parallel builds 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. -To speed up building, run: - - make -j$(nproc) +To speed up building, first get the value of `nproc` by running the following command: +```bash +nproc +``` +Builds can then be sped up by running the following command: +```bash +make -j +``` +Replace `` with the number that the `nproc` command returned. `nproc` is not available on macOS. The alternative is `sysctl -n hw.ncpu` ([relevant Stack Overflow thread](https://stackoverflow.com/questions/1715580)). - ## Debug info To build **pokeemerald.elf** with enhanced debug info: - - make DINFO=1 - +```bash +make DINFO=1 +``` ## 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 included with devkitARM. If devkitARM (a.k.a. gba-dev) has already been installed as part of the platform-specific instructions, simply run: +```bash +make modern +``` +Otherwise, follow the instructions below to install devkitARM. +### Installing devkitARM on WSL1 - make modern +1. `gdebi-core` must be installed beforehand in order to install devkitPro pacman (which facilitates the installation of devkitARM). Install this with the following command: + ```bash + sudo apt install gdebi-core + ``` +
+ Note... + + > If the above command does not work, try the above command but replacing `apt` with `apt-get`. +
+ +2. Once `gdebi-core` is done installing, download the devkitPro pacman package [here](https://github.com/devkitPro/pacman/releases). The file to download is `devkitpro-pacman.amd64.deb`. +3. Change directory to where the package was downloaded. For example, if the package file was saved to **C:\Users\\_\_\Downloads** (the Downloads location for most users), enter this command, where *\ is your **Windows** username: + + ```bash + cd /mnt/c/Users//Downloads + ``` + +4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM. + + ```bash + sudo gdebi devkitpro-pacman.amd64.deb + sudo dkp-pacman -Sy + sudo dkp-pacman -S gba-dev + ``` + The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. + +
+ Note... + + > Note: `devkitpro-pacman.amd64.deb` is the expected filename of the devkitPro package downloaded (for the first command). If the downloaded package filename differs, then use that filename instead. +
+ +5. Run the following command to set devkitPro related environment variables (alternatively, close and re-open WSL): + + ```bash + source /etc/profile.d/devkit-env.sh + ``` + +devkitARM is now installed. + +### Installing devkitARM on Debian/Ubuntu-based distributions +1. If `gdebi-core` is not installed, run the following command: + + ```bash + sudo apt install gdebi-core + ``` +2. Download the devkitPro pacman package [here](https://github.com/devkitPro/pacman/releases). The file to download is `devkitpro-pacman.amd64.deb`. +3. Change directory to where the package was downloaded. Then, run the following commands to install devkitARM: + + ```bash + sudo gdebi devkitpro-pacman.amd64.deb + sudo dkp-pacman -Sy + sudo dkp-pacman -S gba-dev + ``` + The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. + + > Note: `devkitpro-pacman.amd64.deb` is the expected filename of the devkitPro package downloaded (for the first command). If the downloaded package filename differs, then use that filename instead. + +4. Run the following command to set devkitPro related environment variables (alternatively, close and re-open the Terminal): + + ```bash + source /etc/profile.d/devkit-env.sh + ``` + +devkitARM is now installed. ## Other toolchains 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`. - - make TOOLCHAIN="/path/to/toolchain/here" - +```bash +make TOOLCHAIN="/path/to/toolchain/here" +``` The following is an example: - - make TOOLCHAIN="/usr/local/arm-none-eabi" - +```bash +make TOOLCHAIN="/usr/local/arm-none-eabi" +``` To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present. - # Useful additional tools * [porymap](https://github.com/huderlem/porymap) for viewing and editing maps diff --git a/Makefile b/Makefile index 78a2c2a4fc..7b2f79877a 100644 --- a/Makefile +++ b/Makefile @@ -1,29 +1,34 @@ TOOLCHAIN := $(DEVKITARM) COMPARE ?= 0 -ifeq ($(CC),) -HOSTCC := gcc -else -HOSTCC := $(CC) +ifeq (compare,$(MAKECMDGOALS)) + COMPARE := 1 endif -ifeq ($(CXX),) -HOSTCXX := g++ -else -HOSTCXX := $(CXX) -endif +# don't use dkP's base_tools anymore +# because the redefinition of $(CC) conflicts +# with when we want to use $(CC) to preprocess files +# thus, manually create the variables for the bin +# files, or use arm-none-eabi binaries on the system +# if dkP is not installed on this system -ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) -include $(TOOLCHAIN)/base_tools -else +ifneq (,$(TOOLCHAIN)) +ifneq ($(wildcard $(TOOLCHAIN)/bin),) export PATH := $(TOOLCHAIN)/bin:$(PATH) +endif +endif + PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy -export CC := $(PREFIX)gcc -export AS := $(PREFIX)as -endif -export CPP := $(PREFIX)cpp -export LD := $(PREFIX)ld +OBJDUMP := $(PREFIX)objdump +AS := $(PREFIX)as + +LD := $(PREFIX)ld + +# note: the makefile must be set up so MODERNCC is never called +# if MODERN=0 +MODERNCC := $(PREFIX)gcc +PATH_MODERNCC := PATH=$(TOOLCHAIN)/bin:PATH $(MODERNCC) ifeq ($(OS),Windows_NT) EXE := .exe @@ -37,10 +42,42 @@ MAKER_CODE := 01 REVISION := 0 MODERN ?= 0 +ifeq (modern,$(MAKECMDGOALS)) + MODERN := 1 +endif + +# use arm-none-eabi-cpp for macOS +# as macOS's default compiler is clang +# and clang's preprocessor will warn on \u +# when preprocessing asm files, expecting a unicode literal +# we can't unconditionally use arm-none-eabi-cpp +# as installations which install binutils-arm-none-eabi +# don't come with it +ifneq ($(MODERN),1) + ifeq ($(shell uname -s),Darwin) + CPP := $(PREFIX)cpp + else + CPP := $(CC) -E + endif +else + CPP := $(PREFIX)cpp +endif + +ROM_NAME := pokeemerald.gba +ELF_NAME := $(ROM_NAME:.gba=.elf) +MAP_NAME := $(ROM_NAME:.gba=.map) +OBJ_DIR_NAME := build/emerald + +MODERN_ROM_NAME := pokeemerald_modern.gba +MODERN_ELF_NAME := $(MODERN_ROM_NAME:.gba=.elf) +MODERN_MAP_NAME := $(MODERN_ROM_NAME:.gba=.map) +MODERN_OBJ_DIR_NAME := build/modern + SHELL := /bin/bash -o pipefail ELF = $(ROM:.gba=.elf) MAP = $(ROM:.gba=.map) +SYM = $(ROM:.gba=.sym) C_SUBDIR = src GFLIB_SUBDIR = gflib @@ -64,26 +101,26 @@ ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=$(MODERN) ifeq ($(MODERN),0) CC1 := tools/agbcc/bin/agbcc$(EXE) override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm -g -ROM := pokeemerald.gba -OBJ_DIR := build/emerald +ROM := $(ROM_NAME) +OBJ_DIR := $(OBJ_DIR_NAME) LIBPATH := -L ../../tools/agbcc/lib +LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall else -CC1 = $(shell $(CC) --print-prog-name=cc1) -quiet +CC1 = $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -g -ROM := pokeemerald_modern.gba -OBJ_DIR := build/modern -LIBPATH := -L "$(dir $(shell $(CC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(CC) -mthumb -print-file-name=libc.a))" +ROM := $(MODERN_ROM_NAME) +OBJ_DIR := $(MODERN_OBJ_DIR_NAME) +LIBPATH := -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libc.a))" +LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall endif CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=$(MODERN) -ifeq ($(MODERN),0) -CPPFLAGS += -I tools/agbcc/include -I tools/agbcc +ifneq ($(MODERN),1) +CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef endif LDFLAGS = -Map ../../$(MAP) -LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall - SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c GFX := tools/gbagfx/gbagfx$(EXE) AIF := tools/aif2pcm/aif2pcm$(EXE) @@ -95,6 +132,8 @@ FIX := tools/gbafix/gbafix$(EXE) MAPJSON := tools/mapjson/mapjson$(EXE) JSONPROC := tools/jsonproc/jsonproc$(EXE) +PERL := perl + TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*)) TOOLBASE = $(TOOLDIRS:tools/%=%) TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE)) @@ -111,18 +150,34 @@ MAKEFLAGS += --no-print-directory # Secondary expansion is required for dependency variables in object rules. .SECONDEXPANSION: -.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix libagbsyscall modern +.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix libagbsyscall modern tidymodern tidynonmodern infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) # Build tools when building the rom # Disable dependency scanning for clean/tidy/tools -ifeq (,$(filter-out all rom compare modern berry_fix libagbsyscall,$(MAKECMDGOALS))) -$(call infoshell, $(MAKE) tools) +# Use a separate minimal makefile for speed +# Since we don't need to reload most of this makefile +ifeq (,$(filter-out all rom compare modern berry_fix libagbsyscall syms,$(MAKECMDGOALS))) +$(call infoshell, $(MAKE) -f make_tools.mk) else -NODEP := 1 +NODEP ?= 1 endif +# check if we need to scan dependencies based on the rule +ifeq (,$(MAKECMDGOALS)) + SCAN_DEPS ?= 1 +else + # clean, tidy, tools, mostlyclean, clean-tools, $(TOOLDIRS), tidymodern, tidynonmodern don't even build the ROM + # berry_fix and libagbsyscall do their own thing + ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) tidymodern tidynonmodern berry_fix libagbsyscall,$(MAKECMDGOALS))) + SCAN_DEPS ?= 0 + else + SCAN_DEPS ?= 1 + endif +endif + +ifeq ($(SCAN_DEPS),1) C_SRCS_IN := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c) C_SRCS := $(foreach src,$(C_SRCS_IN),$(if $(findstring .inc.c,$(src)),,$(src))) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) @@ -152,17 +207,19 @@ OBJS := $(C_OBJS) $(GFLIB_OBJS) $(C_ASM_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $ OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) SUBDIRS := $(sort $(dir $(OBJS))) +$(shell mkdir -p $(SUBDIRS)) +endif AUTO_GEN_TARGETS := -$(shell mkdir -p $(SUBDIRS)) - all: rom tools: $(TOOLDIRS) +syms: $(SYM) + $(TOOLDIRS): - @$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX) + @$(MAKE) -C $@ rom: $(ROM) ifeq ($(COMPARE),1) @@ -170,14 +227,14 @@ ifeq ($(COMPARE),1) endif # For contributors to make sure a change didn't affect the contents of the ROM. -compare: ; @$(MAKE) COMPARE=1 +compare: all clean: mostlyclean clean-tools clean-tools: @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) -mostlyclean: tidy +mostlyclean: tidynonmodern tidymodern rm -f $(SAMPLE_SUBDIR)/*.bin rm -f $(CRY_SUBDIR)/*.bin rm -f $(MID_SUBDIR)/*.s @@ -189,13 +246,16 @@ mostlyclean: tidy @$(MAKE) clean -C berry_fix @$(MAKE) clean -C libagbsyscall -tidy: - rm -f $(ROM) $(ELF) $(MAP) - rm -r $(OBJ_DIR) -ifeq ($(MODERN),0) - @$(MAKE) tidy MODERN=1 -endif +tidy: tidynonmodern tidymodern +tidynonmodern: + rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME) + rm -rf $(OBJ_DIR_NAME) + +tidymodern: + rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME) + rm -rf $(MODERN_OBJ_DIR_NAME) + ifneq ($(MODERN),0) $(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member endif @@ -223,7 +283,7 @@ sound/%.bin: sound/%.aif ; $(AIF) $< $@ ifeq ($(MODERN),0) -$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc +$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/libc.o: CFLAGS := -O2 $(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork @@ -232,56 +292,88 @@ $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork -$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc +$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding -$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm +$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE) $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet else $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast endif -ifeq ($(NODEP),1) -$(C_BUILDDIR)/%.o: c_dep := -else -$(C_BUILDDIR)/%.o: c_dep = $(shell [[ -f $(C_SUBDIR)/$*.c ]] && $(SCANINC) -I include -I tools/agbcc/include -I gflib $(C_SUBDIR)/$*.c) -endif - ifeq ($(DINFO),1) override CFLAGS += -g endif -$(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep) - @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i - @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s - @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s - $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s - -ifeq ($(NODEP),1) -$(GFLIB_BUILDDIR)/%.o: c_dep := -else -$(GFLIB_BUILDDIR)/%.o: c_dep = $(shell [[ -f $(GFLIB_SUBDIR)/$*.c ]] && $(SCANINC) -I include -I tools/agbcc/include -I gflib $(GFLIB_SUBDIR)/$*.c) -endif - -$(GFLIB_BUILDDIR)/%.o : $(GFLIB_SUBDIR)/%.c $$(c_dep) - @$(CPP) $(CPPFLAGS) $< -o $(GFLIB_BUILDDIR)/$*.i - @$(PREPROC) $(GFLIB_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(GFLIB_BUILDDIR)/$*.s - @echo -e ".text\n\t.align\t2, 0\n" >> $(GFLIB_BUILDDIR)/$*.s - $(AS) $(ASFLAGS) -o $@ $(GFLIB_BUILDDIR)/$*.s - -ifeq ($(NODEP),1) -$(C_BUILDDIR)/%.o: c_asm_dep := -else -$(C_BUILDDIR)/%.o: c_asm_dep = $(shell [[ -f $(C_SUBDIR)/$*.s ]] && $(SCANINC) -I "" $(C_SUBDIR)/$*.s) -endif - -$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s $$(c_asm_dep) - $(AS) $(ASFLAGS) -o $@ $< - # The dep rules have to be explicit or else missing files won't be reported. # As a side effect, they're evaluated immediately instead of when the rule is invoked. # It doesn't look like $(shell) can be deferred so there might not be a better way. +ifeq ($(SCAN_DEPS),1) +ifeq ($(NODEP),1) +$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.c +ifeq (,$(KEEP_TEMPS)) + @echo "$(CC1) -o $@ $<" + @$(CPP) $(CPPFLAGS) $< | $(PREPROC) $< charmap.txt -i | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - +else + @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i + @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s + @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s + $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s +endif +else +define C_DEP +$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) +ifeq (,$$(KEEP_TEMPS)) + @echo "$$(CC1) -o $$@ $$<" + @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - +else + @$$(CPP) $$(CPPFLAGS) $$< -o $$(C_BUILDDIR)/$3.i + @$$(PREPROC) $$(C_BUILDDIR)/$3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $$(C_BUILDDIR)/$3.s + @echo -e ".text\n\t.align\t2, 0\n" >> $$(C_BUILDDIR)/$3.s + $$(AS) $$(ASFLAGS) -o $$@ $$(C_BUILDDIR)/$3.s +endif +endef +$(foreach src, $(C_SRCS), $(eval $(call C_DEP,$(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(src)),$(src),$(patsubst $(C_SUBDIR)/%.c,%,$(src))))) +endif + +ifeq ($(NODEP),1) +$(GFLIB_BUILDDIR)/%.o: $(GFLIB_SUBDIR)/%.c $$(c_dep) +ifeq (,$(KEEP_TEMPS)) + @echo "$(CC1) -o $@ $<" + @$(CPP) $(CPPFLAGS) $< | $(PREPROC) $< charmap.txt -i | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - +else + @$(CPP) $(CPPFLAGS) $< -o $(GFLIB_BUILDDIR)/$*.i + @$(PREPROC) $(GFLIB_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(GFLIB_BUILDDIR)/$*.s + @echo -e ".text\n\t.align\t2, 0\n" >> $(GFLIB_BUILDDIR)/$*.s + $(AS) $(ASFLAGS) -o $@ $(GFLIB_BUILDDIR)/$*.s +endif +else +define GFLIB_DEP +$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) +ifeq (,$$(KEEP_TEMPS)) + @echo "$$(CC1) -o $$@ $$<" + @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - +else + @$$(CPP) $$(CPPFLAGS) $$< -o $$(GFLIB_BUILDDIR)/$3.i + @$$(PREPROC) $$(GFLIB_BUILDDIR)/$3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $$(GFLIB_BUILDDIR)/$3.s + @echo -e ".text\n\t.align\t2, 0\n" >> $$(GFLIB_BUILDDIR)/$3.s + $$(AS) $$(ASFLAGS) -o $$@ $$(GFLIB_BUILDDIR)/$3.s +endif +endef +$(foreach src, $(GFLIB_SRCS), $(eval $(call GFLIB_DEP,$(patsubst $(GFLIB_SUBDIR)/%.c,$(GFLIB_BUILDDIR)/%.o, $(src)),$(src),$(patsubst $(GFLIB_SUBDIR)/%.c,%, $(src))))) +endif + +ifeq ($(NODEP),1) +$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s + $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ +else +define SRC_ASM_DATA_DEP +$1: $2 $$(shell $(SCANINC) -I include -I "" $2) + $$(PREPROC) $$< charmap.txt | $$(CPP) -I include - | $$(AS) $$(ASFLAGS) -o $$@ +endef +$(foreach src, $(C_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o, $(src)),$(src)))) +endif ifeq ($(NODEP),1) $(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s @@ -296,13 +388,10 @@ endif ifeq ($(NODEP),1) $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s - $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ else -define DATA_ASM_DEP -$1: $2 $$(shell $(SCANINC) -I include -I "" $2) - $$(PREPROC) $$< charmap.txt | $$(CPP) -I include | $$(AS) $$(ASFLAGS) -o $$@ -endef -$(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call DATA_ASM_DEP,$(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o, $(src)),$(src)))) +$(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o, $(src)),$(src)))) +endif endif $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s @@ -329,19 +418,27 @@ $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) berry_fix libagbsyscall - cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) + @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ " + @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ $(FIX) $@ -p --silent -modern: ; @$(MAKE) MODERN=1 +modern: all berry_fix/berry_fix.gba: berry_fix berry_fix: - @$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) + @$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) libagbsyscall: - @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) + @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) + +################### +### Symbol file ### +################### + +$(SYM): $(ELF) + $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\S+)$$/\1 \2 \3 \4/g' > $@ diff --git a/README.md b/README.md index 2c3447abc4..7adbb3e2da 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,5 @@ # Pokémon Emerald -[![Build Status][travis-badge]][travis] - -[travis]: https://travis-ci.org/pret/pokeemerald -[travis-badge]: https://travis-ci.org/pret/pokeemerald.svg?branch=master - This is a decompilation of Pokémon Emerald. It builds the following ROM: diff --git a/asm/macros.inc b/asm/macros.inc index 6782f42004..77f44a8475 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -3,7 +3,6 @@ .include "asm/macros/movement.inc" .include "asm/macros/window.inc" .include "asm/macros/pokemon_data.inc" - .include "asm/macros/ec.inc" .include "asm/macros/map.inc" .include "asm/macros/field_effect_script.inc" .include "asm/macros/trainer_hill.inc" diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index b1c42e491f..662bfbf2f5 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -178,11 +178,11 @@ .byte \case .4byte \ptr .endm - + .macro jumpiftype battler:req, type:req, ptr:req jumpbasedontype \battler, \type, 1, \ptr .endm - + .macro jumpifnottype battler:req, type:req, ptr:req jumpbasedontype \battler, \type, 0, \ptr .endm @@ -409,33 +409,33 @@ .byte \param0 .byte \param1 .endm - + @ Help macros for 5 uses of moveend command - + @ All cases .macro moveendall setbyte sMOVEEND_STATE, 0 moveend 0, 0 .endm - + @ Chosen case .macro moveendcase case:req setbyte sMOVEEND_STATE, \case moveend 1, 0 .endm - + @ All cases from (inclusive) .macro moveendfrom from:req setbyte sMOVEEND_STATE, \from moveend 0, 0 .endm - + @ All cases from 0 to (not inclusive) .macro moveendto to:req setbyte sMOVEEND_STATE, 0 moveend 2, \to .endm - + @ Cases from (inclusive) to (not inclusive) .macro moveendfromto from:req, to:req setbyte sMOVEEND_STATE, \from @@ -510,7 +510,7 @@ .byte \battler .endm - .macro atk57 + .macro endlinkbattle .byte 0x57 .endm @@ -1262,407 +1262,407 @@ .byte 0xf8 .byte \param0 .endm - + .macro settelekinesis ptr:req .byte 0xf9 .4byte \ptr .endm - + .macro swapstatstages stat:req .byte 0xfa .byte \stat .endm - + .macro averagestats stat:req .byte 0xfb .byte \stat .endm - + .macro jumpifoppositegenders ptr:req .byte 0xfc .4byte \ptr .endm - + .macro trygetbaddreamstarget ptr:req .byte 0xfd .4byte \ptr .endm - + .macro tryworryseed ptr:req .byte 0xfe .4byte \ptr .endm - + .macro metalburstdamagecalculator ptr:req .byte 0xff .4byte \ptr .endm - + @ various command changed to more readable macros .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES .endm - + .macro setmagiccoattarget battler:req various \battler, VARIOUS_SET_MAGIC_COAT_TARGET .endm - + .macro getifcantrunfrombattle battler:req various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE .endm - + .macro getmovetarget battler:req various \battler, VARIOUS_GET_MOVE_TARGET .endm - + .macro getbattlerfainted battler:req various \battler, VARIOUS_GET_BATTLER_FAINTED .endm - + .macro resetintimidatetracebits battler:req various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS .endm - + .macro updatechoicemoveonlvlup battler:req various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP .endm - + .macro various7 battler:req various \battler, 7 .endm - + .macro palaceflavortext battler:req various \battler, VARIOUS_PALACE_FLAVOR_TEXT .endm - + .macro arenajudgmentwindow various BS_ATTACKER, VARIOUS_ARENA_JUDGMENT_WINDOW .endm - + .macro arenaopponentmonlost various BS_ATTACKER, VARIOUS_ARENA_OPPONENT_MON_LOST .endm - + .macro arenaplayermonlost various BS_ATTACKER, VARIOUS_ARENA_PLAYER_MON_LOST .endm - + .macro arenabothmonlost various BS_ATTACKER, VARIOUS_ARENA_BOTH_MONS_LOST .endm - + .macro forfeityesnobox battler:req various \battler, VARIOUS_EMIT_YESNOBOX .endm - + .macro various14 battler:req various \battler, 14 .endm - + .macro various15 battler:req various \battler, 15 .endm - - .macro arenajudmengtstring id:req + + .macro arenajudgmentstring id:req various \id, VARIOUS_ARENA_JUDGMENT_STRING .endm - + .macro arenawaitmessage id:req various \id, VARIOUS_ARENA_WAIT_STRING .endm - + .macro waitcry battler:req various \battler, VARIOUS_WAIT_CRY .endm - + .macro returnopponentmon1toball battler:req various \battler, VARIOUS_RETURN_OPPONENT_MON1 .endm - + .macro returnopponentmon2toball battler:req various \battler, VARIOUS_RETURN_OPPONENT_MON2 .endm - + .macro volumedown various BS_ATTACKER, VARIOUS_VOLUME_DOWN .endm - + .macro volumeup various BS_ATTACKER, VARIOUS_VOLUME_UP .endm - + .macro setalreadystatusedmoveattempt battler:req various \battler, 23 .endm - + .macro various24 battler:req various \battler, 24 .endm - + .macro setoutcomeonteleport battler:req various \battler, VARIOUS_SET_TELEPORT_OUTCOME .endm - + .macro playtrainerdefeatbgm battler:req various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC .endm - + .macro stattextbuffer battler:req various \battler, VARIOUS_STAT_TEXT_BUFFER .endm - + .macro switchinabilities battler:req various \battler, VARIOUS_SWITCHIN_ABILITIES .endm - + .macro savetarget various BS_TARGET, VARIOUS_SAVE_TARGET .endm - + .macro restoretarget various BS_TARGET, VARIOUS_RESTORE_TARGET .endm - + .macro instanthpdrop battler:req various \battler, VARIOUS_INSTANT_HP_DROP .endm - + .macro clearstatus battler:req various \battler, VARIOUS_CLEAR_STATUS .endm - + .macro restorepp battler:req various \battler, VARIOUS_RESTORE_PP .endm - + .macro tryactivatemoxie battler:req various \battler, VARIOUS_TRY_ACTIVATE_MOXIE .endm - + .macro tryactivatebeastboost battler:req various \battler, VARIOUS_TRY_ACTIVATE_BEAST_BOOST .endm - + .macro tryactivatereceiver battler:req various \battler, VARIOUS_TRY_ACTIVATE_RECEIVER .endm - + .macro tryactivatesoulheart various BS_ATTACKER, VARIOUS_TRY_ACTIVATE_SOULHEART .endm - + .macro tryactivatefellstinger battler:req various \battler, VARIOUS_TRY_ACTIVATE_FELL_STINGER .endm - + .macro playmoveanimation battler:req, move:req various \battler, VARIOUS_PLAY_MOVE_ANIMATION .2byte \move .endm - + .macro setluckychant battler:req, ptr:req various \battler VARIOUS_SET_LUCKY_CHANT .4byte \ptr .endm - + .macro suckerpunchcheck ptr:req various BS_ATTACKER, VARIOUS_SUCKER_PUNCH_CHECK .4byte \ptr .endm - + .macro setabilitysimple battler:req, ptr:req various \battler VARIOUS_SET_SIMPLE_BEAM .4byte \ptr .endm - + .macro tryentrainment ptr:req various BS_ATTACKER, VARIOUS_TRY_ENTRAINMENT .4byte \ptr .endm - + .macro setlastusedability battler:req various \battler, VARIOUS_SET_LAST_USED_ABILITY .endm - + .macro tryhealpulse battler:req, ptr:req various \battler, VARIOUS_TRY_HEAL_PULSE .4byte \ptr .endm - + .macro tryquash ptr:req various BS_ATTACKER, VARIOUS_TRY_QUASH .4byte \ptr .endm - + .macro tryafteryou ptr:req various BS_ATTACKER, VARIOUS_AFTER_YOU .4byte \ptr .endm - + .macro trybestow ptr:req various BS_ATTACKER, VARIOUS_BESTOW .4byte \ptr .endm - + .macro invertstatstages battler:req various \battler, VARIOUS_INVERT_STAT_STAGES .endm - + .macro setterrain ptr:req various BS_ATTACKER, VARIOUS_SET_TERRAIN .4byte \ptr .endm - + .macro trymefirst ptr:req various BS_ATTACKER, VARIOUS_TRY_ME_FIRST .4byte \ptr .endm - + .macro jumpifbattleend ptr:req various BS_ATTACKER, VARIOUS_JUMP_IF_BATTLE_END .4byte \ptr .endm - + .macro tryelectrify ptr:req various BS_ATTACKER, VARIOUS_TRY_ELECTRIFY .4byte \ptr .endm - + .macro tryreflecttype ptr:req various BS_ATTACKER, VARIOUS_TRY_REFLECT_TYPE .4byte \ptr .endm - + .macro trysoak ptr:req various BS_ATTACKER, VARIOUS_TRY_SOAK .4byte \ptr .endm - + .macro handlemegaevo battler:req, case:req various \battler, VARIOUS_HANDLE_MEGA_EVO .byte \case .endm - + .macro handleformchange battler:req, case:req various \battler, VARIOUS_HANDLE_FORM_CHANGE .byte \case .endm - + .macro jumpifcantuselastresort battler:req, ptr:req various \battler, VARIOUS_TRY_LAST_RESORT .4byte \ptr .endm - + .macro argumentstatuseffect various BS_ATTACKER, VARIOUS_ARGUMENT_STATUS_EFFECT .endm - + .macro tryhitswitchtarget ptr:req various BS_ATTACKER, VARIOUS_TRY_HIT_SWITCH_TARGET .4byte \ptr .endm - + .macro tryautotomize battler:req, ptr:req various \battler, VARIOUS_TRY_AUTOTOMIZE .4byte \ptr .endm - + .macro jumpifcantusesynchronoise ptr:req various BS_ATTACKER, VARIOUS_TRY_SYNCHRONOISE .4byte \ptr .endm - + .macro trycopycat ptr:req various BS_ATTACKER, VARIOUS_TRY_COPYCAT .4byte \ptr .endm - + .macro showabilitypopup battler:req various \battler, VARIOUS_ABILITY_POPUP .endm - + .macro defogclear battler:req, clear:req, ptr:req various \battler, VARIOUS_DEFOG .byte \clear .4byte \ptr .endm - + .macro jumpiftargetally ptr:req various BS_ATTACKER, VARIOUS_JUMP_IF_TARGET_ALLY .4byte \ptr .endm - + .macro trypsychoshift ptr:req various BS_ATTACKER, VARIOUS_PSYCHO_SHIFT .4byte \ptr .endm - + .macro curestatus battler:req various \battler, VARIOUS_CURE_STATUS .endm - + .macro powertrick battler:req various \battler, VARIOUS_POWER_TRICK .endm - + .macro argumenttomoveeffect various BS_ATTACKER, VARIOUS_ARGUMENT_TO_MOVE_EFFECT .endm - + .macro jumpifnotgrounded battler:req, ptr:req various \battler, VARIOUS_JUMP_IF_NOT_GROUNDED .4byte \ptr .endm - + .macro handletrainerslidemsg battler:req, field:req various \battler, VARIOUS_HANDLE_TRAINER_SLIDE_MSG .byte \field .endm - + .macro trytrainerslidefirstdownmsg battler:req various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF .endm - + .macro trytrainerslidelastonmsg battler:req various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON .endm - + .macro setauroraveil battler:req various \battler, VARIOUS_SET_AURORA_VEIL .endm - + .macro trysetthirdtype battler:req, ptr:req various \battler, VARIOUS_TRY_THIRD_TYPE .4byte \ptr .endm - + .macro tryaccupressure battler:req, ptr:req various \battler, VARIOUS_ACUPRESSURE .4byte \ptr .endm - + .macro setpowder battler:req various \battler, VARIOUS_SET_POWDER .endm - + .macro spectralthiefprintstats various BS_ATTACKER, VARIOUS_SPECTRAL_THIEF .endm - + .macro bringdownairbornebattler battler:req various \battler, VARIOUS_GRAVITY_ON_AIRBORNE_MONS .endm - + .macro checkgrassyterrainheal battler:req, ptr:req various \battler, VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS .4byte \ptr .endm - + .macro jumpifnotberry battler:req, ptr:req various \battler, VARIOUS_JUMP_IF_NOT_BERRY .4byte \ptr .endm - + .macro jumpifroarfails ptr:req various BS_ATTACKER, VARIOUS_JUMP_IF_ROAR_FAILS .4byte \ptr @@ -1672,43 +1672,43 @@ various BS_ATTACKER, VARIOUS_TRY_INSTRUCT .4byte \ptr .endm - + .macro settracedability battler:req various \battler, VARIOUS_TRACE_ABILITY .endm - + .macro updatenick battler:req various \battler, VARIOUS_UPDATE_NICK .endm - + .macro tryillusionoff battler:req various \battler, VARIOUS_TRY_ILLUSION_OFF .endm - + .macro spriteignore0hp val:req various BS_ATTACKER, VARIOUS_SET_SPRITEIGNORE0HP .byte \val .endm - + .macro getstatvalue battler:req, statId:req various \battler, VARIOUS_GET_STAT_VALUE .byte \statId .endm - + .macro jumpiffullhp battler:req, ptr:req various \battler, VARIOUS_JUMP_IF_FULL_HP .4byte \ptr .endm - + .macro losetype battler:req, type:req various \battler, VARIOUS_LOSE_TYPE .byte \type .endm - + .macro tryfriskmsg battler:req various \battler, VARIOUS_TRY_FRISK .endm - + .macro jumpifshieldsdown battler:req, ptr:req various \battler, VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED .4byte \ptr @@ -1725,32 +1725,32 @@ .byte \target .4byte \ptr .endm - + .macro trysetfairylock ptr:req various BS_ATTACKER, VARIOUS_TRY_FAIRY_LOCK .4byte \ptr .endm - + .macro jumpifnoally battler:req, ptr:req various \battler, VARIOUS_JUMP_IF_NO_ALLY .4byte \ptr .endm - + .macro jumpifnoholdeffect battler:req, holdEffet:req, ptr:req various \battler, VARIOUS_JUMP_IF_NO_HOLD_EFFECT .byte \holdEffet .4byte \ptr .endm - + .macro infatuatewithbattler battler1:req, battler2:req various \battler1, VARIOUS_INFATUATE_WITH_BATTLER .byte \battler2 .endm - + .macro setlastuseditem battler:req various \battler, VARIOUS_SET_LAST_USED_ITEM .endm - + .macro jumpifabsent battler:req, ptr:req various \battler, VARIOUS_JUMP_IF_ABSENT .4byte \ptr @@ -1764,57 +1764,69 @@ various BS_ATTACKER, VARIOUS_TOTEM_BOOST .4byte \ptr .endm + + .macro tryactivategrimneigh, battler:req + various \battler, VARIOUS_TRY_ACTIVATE_GRIM_NEIGH + .endm + + .macro activateitemeffects battler:req + various \battler, VARIOUS_MOVEEND_ITEM_EFFECTS + .endm + .macro pickpocketsteal + various 0, VARIOUS_PICKPOCKET + .endm + @ helpful macros .macro setstatchanger stat:req, stages:req, down:req setbyte sSTATCHANGER \stat | \stages << 3 | \down << 7 .endm - + .macro setmoveeffect effect:req sethword sMOVE_EFFECT \effect sethword sSAVED_MOVE_EFFECT \effect .endm - + .macro chosenstatus1animation battler:req, status:req chosenstatusanimation \battler, 0x0, \status .endm - + .macro chosenstatus2animation battler:req, status:req chosenstatusanimation \battler, 0x1, \status .endm - + .macro sethword dst:req, value:req setbyte \dst, (\value) & 0xFF setbyte \dst + 1, ((\value) >> 8) & 0xFF .endm - + .macro setword dst:req, value:req setbyte \dst, (\value) & 0xFF setbyte \dst + 1, ((\value) >> 8) & 0xFF setbyte \dst + 2, ((\value) >> 16) & 0xFF setbyte \dst + 3, ((\value) >> 24) & 0xFF .endm - + .macro copybyte dst:req, src:req copyarray \dst, \src, 0x1 .endm - + .macro copyhword dst:req, src:req copyarray \dst, \src, 0x2 .endm - + .macro copyword dst:req, src:req copyarray \dst, \src, 0x4 .endm - + .macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr .endm - + .macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr .endm - + .macro jumpifmove move:req, jumpptr:req jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr .endm @@ -1830,39 +1842,39 @@ .macro jumpifstatus3 battler, status:req, jumpptr:req jumpifstatus3condition \battler, \status, 0x0, \jumpptr .endm - + .macro jumpifnostatus3 battler:req, status:req, jumpptr:req jumpifstatus3condition \battler, \status, 0x1, \jumpptr .endm - + .macro jumpifmovehadnoeffect jumpptr:req jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr .endm - + .macro jumpifbattletype flags:req, jumpptr:req jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr .endm - + .macro jumpifnotbattletype flags:req, jumpptr:req jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr .endm - + .macro dmg_1_8_targethp manipulatedamage DMG_1_8_TARGET_HP .endm - + .macro dmgtomaxattackerhp manipulatedamage DMG_FULL_ATTACKER_HP .endm - + .macro dmgtocurrattackerhp manipulatedamage DMG_CURR_ATTACKER_HP .endm - + .macro dmg_1_2_attackerhp manipulatedamage DMG_1_2_ATTACKER_HP .endm - + .macro jumpifflowerveil jumpptr:req jumpifnottype BS_TARGET, TYPE_GRASS, 1f jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpptr @@ -1883,7 +1895,7 @@ jumpifability BS_TARGET, ABILITY_LEAF_GUARD, \jumpptr 1: .endm - + .macro jumpifsafeguard jumpptr:req jumpifability BS_ATTACKER, ABILITY_INFILTRATOR, 1f jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, \jumpptr diff --git a/asm/macros/ec.inc b/asm/macros/ec.inc deleted file mode 100644 index a70b8e2443..0000000000 --- a/asm/macros/ec.inc +++ /dev/null @@ -1,19 +0,0 @@ - .macro ec_word word - .2byte EC_WORD_\word - .endm - - .macro ec_move1 name - .2byte (EC_GROUP_MOVE_1 << 9) | MOVE_\name - .endm - - .macro ec_move2 name - .2byte (EC_GROUP_MOVE_2 << 9) | MOVE_\name - .endm - - .macro ec_pokemon1 name - .2byte (EC_GROUP_POKEMON << 9) | SPECIES_\name - .endm - - .macro ec_pokemon2 name - .2byte (EC_GROUP_POKEMON2 << 9) | SPECIES_\name - .endm diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 7b5163bd82..d45e534fba 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -345,11 +345,12 @@ .byte 0x32 .endm - @ Plays the specified (song_number) song. The byte is apparently supposed to be 0x00. - .macro playbgm song_number:req, unknown:req + @ Plays the specified (song_number) song. If save_song is TRUE, the + @ specified (song_number) will be saved as if savebgm was called with it. + .macro playbgm song_number:req, save_song:req .byte 0x33 .2byte \song_number - .byte \unknown + .byte \save_song .endm @ Saves the specified (song_number) song to be played later. @@ -812,12 +813,12 @@ .byte 0x68 .endm - @ Ceases movement for all Objects on-screen. + @ Freezes all objects immediately except the player. The player is frozen once their movement is finished. .macro lockall .byte 0x69 .endm - @ If the script was called by an Object, then that Object's movement will cease. + @ Freezes all objects immediately except the player and the selected object. The player and selected object are frozen once their movement is finished. .macro lock .byte 0x6a .endm @@ -846,38 +847,40 @@ .endm @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. - @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. - .macro multichoice x:req, y:req, list:req, b:req + @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId. + @ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoice x:req, y:req, multichoiceId:req, ignoreBPress:req .byte 0x6f .byte \x .byte \y - .byte \list - .byte \b + .byte \multichoiceId + .byte \ignoreBPress .endm @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. - @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list. The default argument determines - @ the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. - @ If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. - .macro multichoicedefault x:req, y:req, list:req, default:req, b:req + @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId. + @ The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. + @ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoicedefault x:req, y:req, multichoiceId:req, default:req, ignoreBPress:req .byte 0x70 .byte \x .byte \y - .byte \list + .byte \multichoiceId .byte \default - .byte \b + .byte \ignoreBPress .endm @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. - @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list. + @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId. @ The per_row argument determines how many list items will be shown on a single row of the box. - .macro multichoicegrid x:req, y:req, list:req, per_row:req, B:req + @ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + .macro multichoicegrid x:req, y:req, multichoiceId:req, per_row:req, ignoreBPress:req .byte 0x71 .byte \x .byte \y - .byte \list + .byte \multichoiceId .byte \per_row - .byte \B + .byte \ignoreBPress .endm @ Nopped in Emerald. @@ -886,21 +889,21 @@ .endm @ Nopped in Emerald, but still consumes parameters. - .macro erasebox byte1:req, byte2:req, byte3:req, byte4:req + .macro erasebox left:req, top:req, right:req, bottom:req .byte 0x73 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 + .byte \left + .byte \top + .byte \right + .byte \bottom .endm @ Nopped in Emerald, but still consumes parameters. - .macro drawboxtext byte1:req, byte2:req, byte3:req, byte4:req + .macro drawboxtext left:req, top:req, multichoiceId:req, ignoreBPress:req .byte 0x74 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 + .byte \left + .byte \top + .byte \multichoiceId + .byte \ignoreBPress .endm @ Displays a box containing the front sprite for the specified (species) Pokemon species. @@ -916,10 +919,10 @@ .byte 0x76 .endm - @ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.) - .macro showcontestwinner a:req + @ Draws an image of the winner of the contest. winnerId is any CONTEST_WINNER_* constant. + .macro showcontestpainting winnerId:req .byte 0x77 - .byte \a + .byte \winnerId .endm @ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille @@ -930,6 +933,17 @@ .4byte \text .endm + @ Formatting for the braille window, to be put at the start of a pointer used by braillemessage. + @ These are from RS and are ignored in Emerald (see ScrCmd_braillemessage, and comment above) + .macro brailleformat winLeft:req, winTop:req, winRight:req, winBottom:req, textLeft:req, textTop:req + .byte \winLeft + .byte \winTop + .byte \winRight + .byte \winBottom + .byte \textLeft + .byte \textTop + .endm + @ Gives the player one of the specified (species) Pokemon at level level holding item. The trailing 0s are unused parameters .macro givemon species:req, level:req, item:req .byte 0x79 @@ -1481,15 +1495,15 @@ .4byte \value .endm - @ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle. - .macro setmonobedient slot:req + @ Sets the Pokemon in the specified slot of the player party's eventLegal bit. + .macro setmoneventlegal slot:req .byte 0xcd .2byte \slot .endm - @ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, - @ VAR_RESULT is TRUE. If the Pokemon is obedient (or if the specified slot is empty or invalid), VAR_RESULT is FALSE. - .macro checkmonobedience slot:req + @ Checks if the Pokemon in the specified slot of the player's party has its eventLegal bit set. If it isn't set, + @ VAR_RESULT is TRUE. If the bit is set (or if the specified slot is empty or invalid), VAR_RESULT is FALSE. + .macro checkmoneventlegal slot:req .byte 0xce .2byte \slot .endm @@ -1556,11 +1570,11 @@ .2byte \y .endm - .macro cmdD8 + .macro selectapproachingtrainer .byte 0xd8 .endm - .macro cmdD9 + .macro lockfortrainer .byte 0xd9 .endm @@ -1568,7 +1582,7 @@ .byte 0xda .endm - .macro message3 pointer:req + .macro messageinstant pointer:req .byte 0xdb .4byte \pointer .endm diff --git a/asm/macros/map.inc b/asm/macros/map.inc index b520eb2167..74ed069179 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -51,25 +51,25 @@ inc _num_traps .endm - .macro bg_event x, y, elevation, kind, arg6, arg7, arg8 + .macro bg_event x, y, elevation, kind, arg6, arg7 .2byte \x, \y .byte \elevation, \kind .2byte 0 - .if \kind < 5 + .if \kind != BG_EVENT_HIDDEN_ITEM .4byte \arg6 .else .2byte \arg6 - .byte \arg7, \arg8 + .2byte \arg7 .endif inc _num_signs .endm .macro bg_hidden_item_event x, y, height, item, flag - bg_event \x, \y, \height, 7, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START), 0 + bg_event \x, \y, \height, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START) .endm .macro bg_secret_base_event x, y, height, secret_base_id - bg_event \x, \y, \height, 8, \secret_base_id, 0, 0 + bg_event \x, \y, \height, BG_EVENT_SECRET_BASE, \secret_base_id .endm .macro map_events npcs, warps, traps, signs diff --git a/asmdiff.sh b/asmdiff.sh index 6ea588131d..f5a7010747 100755 --- a/asmdiff.sh +++ b/asmdiff.sh @@ -1,11 +1,19 @@ #!/bin/bash -OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb" +if [[ -d "$DEVKITARM/bin/" ]]; then + OBJDUMP_BIN="$DEVKITARM/bin/arm-none-eabi-objdump" +else + OBJDUMP_BIN="arm-none-eabi-objdump" +fi + +OBJDUMP="$OBJDUMP_BIN -D -bbinary -marmv4t -Mforce-thumb" + if [ $(($1)) -ge $((0x8000000)) ]; then OPTIONS="--adjust-vma=0x8000000 --start-address=$(($1)) --stop-address=$(($1 + $2))" else OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))" fi + $OBJDUMP $OPTIONS baserom.gba > baserom.dump $OBJDUMP $OPTIONS pokeemerald.gba > pokeemerald.dump diff -u baserom.dump pokeemerald.dump diff --git a/berry_fix/Makefile b/berry_fix/Makefile index 0ead3804fd..464e5f9e9c 100644 --- a/berry_fix/Makefile +++ b/berry_fix/Makefile @@ -1,29 +1,27 @@ TOOLCHAIN := $(DEVKITARM) COMPARE ?= 0 -ifeq ($(CC),) -HOSTCC := gcc -else -HOSTCC := $(CC) -endif +# don't use dkP's base_tools anymore +# because the redefinition of $(CC) conflicts +# with when we want to use $(CC) to preprocess files +# thus, manually create the variables for the bin +# files, or use arm-none-eabi binaries on the system +# if dkP is not installed on this system -ifeq ($(CXX),) -HOSTCXX := g++ -else -HOSTCXX := $(CXX) -endif - -ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) -include $(TOOLCHAIN)/base_tools -else +ifneq (,$(TOOLCHAIN)) +ifneq ($(wildcard $(TOOLCHAIN)/bin),) export PATH := $(TOOLCHAIN)/bin:$(PATH) +endif +endif + PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy -export CC := $(PREFIX)gcc -export AS := $(PREFIX)as -endif -export CPP := $(PREFIX)cpp -export LD := $(PREFIX)ld +AS := $(PREFIX)as +LD := $(PREFIX)ld + +# note: the makefile must be set up so MODERNCC is never called +# if MODERN=0 +MODERNCC := $(PREFIX)gcc ifeq ($(OS),Windows_NT) EXE := .exe @@ -31,6 +29,23 @@ else EXE := endif +# use arm-none-eabi-cpp for macOS +# as macOS's default compiler is clang +# and clang's preprocessor will warn on \u +# when preprocessing asm files, expecting a unicode literal +# we can't unconditionally use arm-none-eabi-cpp +# as installations which install binutils-arm-none-eabi +# don't come with it +ifneq ($(MODERN),1) + ifeq ($(shell uname -s),Darwin) + CPP := $(PREFIX)cpp + else + CPP := $(CC) -E + endif +else + CPP := $(PREFIX)cpp +endif + GAME_CODE := AGBJ MAKER_CODE := 01 REVISION := 0 @@ -166,7 +181,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s) endif payload: - @$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) + @$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) payload/payload.gba: payload diff --git a/berry_fix/charmap.txt b/berry_fix/charmap.txt index 09427dc8dc..1c143ada4f 100644 --- a/berry_fix/charmap.txt +++ b/berry_fix/charmap.txt @@ -434,8 +434,8 @@ RESUME_MUSIC = FC 18 TRANSPARENT = 00 WHITE = 01 -DARK_GREY = 02 -LIGHT_GREY = 03 +DARK_GRAY = 02 +LIGHT_GRAY = 03 RED = 04 LIGHT_RED = 05 GREEN = 06 diff --git a/berry_fix/payload/Makefile b/berry_fix/payload/Makefile index a121fda93b..2779c43ba8 100644 --- a/berry_fix/payload/Makefile +++ b/berry_fix/payload/Makefile @@ -1,29 +1,27 @@ TOOLCHAIN := $(DEVKITARM) COMPARE ?= 0 -ifeq ($(CC),) -HOSTCC := gcc -else -HOSTCC := $(CC) -endif +# don't use dkP's base_tools anymore +# because the redefinition of $(CC) conflicts +# with when we want to use $(CC) to preprocess files +# thus, manually create the variables for the bin +# files, or use arm-none-eabi binaries on the system +# if dkP is not installed on this system -ifeq ($(CXX),) -HOSTCXX := g++ -else -HOSTCXX := $(CXX) -endif - -ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) -include $(TOOLCHAIN)/base_tools -else +ifneq (,$(TOOLCHAIN)) +ifneq ($(wildcard $(TOOLCHAIN)/bin),) export PATH := $(TOOLCHAIN)/bin:$(PATH) +endif +endif + PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy -export CC := $(PREFIX)gcc -export AS := $(PREFIX)as -endif -export CPP := $(PREFIX)cpp -export LD := $(PREFIX)ld +AS := $(PREFIX)as +LD := $(PREFIX)ld + +# note: the makefile must be set up so MODERNCC is never called +# if MODERN=0 +MODERNCC := $(PREFIX)gcc ifeq ($(OS),Windows_NT) EXE := .exe @@ -31,6 +29,23 @@ else EXE := endif +# use arm-none-eabi-cpp for macOS +# as macOS's default compiler is clang +# and clang's preprocessor will warn on \u +# when preprocessing asm files, expecting a unicode literal +# we can't unconditionally use arm-none-eabi-cpp +# as installations which install binutils-arm-none-eabi +# don't come with it +ifneq ($(MODERN),1) + ifeq ($(shell uname -s),Darwin) + CPP := $(PREFIX)cpp + else + CPP := $(CC) -E + endif +else + CPP := $(PREFIX)cpp +endif + SHELL := /bin/bash -o pipefail CPPFLAGS := -I ../../tools/agbcc/include -I ../../tools/agbcc -iquote include -nostdinc -undef diff --git a/berry_fix/payload/charmap.txt b/berry_fix/payload/charmap.txt index 09427dc8dc..1c143ada4f 100644 --- a/berry_fix/payload/charmap.txt +++ b/berry_fix/payload/charmap.txt @@ -434,8 +434,8 @@ RESUME_MUSIC = FC 18 TRANSPARENT = 00 WHITE = 01 -DARK_GREY = 02 -LIGHT_GREY = 03 +DARK_GRAY = 02 +LIGHT_GRAY = 03 RED = 04 LIGHT_RED = 05 GREEN = 06 diff --git a/berry_fix/payload/include/gba/defines.h b/berry_fix/payload/include/gba/defines.h index 289518cf37..4037af5846 100644 --- a/berry_fix/payload/include/gba/defines.h +++ b/berry_fix/payload/include/gba/defines.h @@ -1,5 +1,5 @@ -#ifndef GUARD_GBA_DEFINES -#define GUARD_GBA_DEFINES +#ifndef GUARD_GBA_DEFINES_H +#define GUARD_GBA_DEFINES_H #include @@ -84,4 +84,4 @@ #define RGB_CYAN RGB(0, 31, 31) #define RGB_WHITEALPHA (RGB_WHITE | 0x8000) -#endif // GUARD_GBA_DEFINES +#endif // GUARD_GBA_DEFINES_H diff --git a/berry_fix/payload/include/gba/m4a_internal.h b/berry_fix/payload/include/gba/m4a_internal.h index 339a0774ed..1aca675854 100644 --- a/berry_fix/payload/include/gba/m4a_internal.h +++ b/berry_fix/payload/include/gba/m4a_internal.h @@ -419,7 +419,7 @@ void SetPokemonCryPitch(s16 val); void SetPokemonCryLength(u16 val); void SetPokemonCryRelease(u8 val); void SetPokemonCryProgress(u32 val); -int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo); +bool32 IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo); void SetPokemonCryChorus(s8 val); void SetPokemonCryStereo(u32 val); void SetPokemonCryPriority(u8 val); diff --git a/charmap.txt b/charmap.txt index 567e389418..e5e075316e 100644 --- a/charmap.txt +++ b/charmap.txt @@ -447,8 +447,8 @@ RESUME_MUSIC = FC 18 TRANSPARENT = 00 WHITE = 01 -DARK_GREY = 02 -LIGHT_GREY = 03 +DARK_GRAY = 02 +LIGHT_GRAY = 03 RED = 04 LIGHT_RED = 05 GREEN = 06 diff --git a/common_syms/battle_factory_screen.txt b/common_syms/battle_factory_screen.txt index 9f68681399..3ddeb6d3b1 100644 --- a/common_syms/battle_factory_screen.txt +++ b/common_syms/battle_factory_screen.txt @@ -1 +1 @@ -gUnknown_030062E8 +gFactorySelect_CurrentOptionFunc diff --git a/common_syms/battle_main.txt b/common_syms/battle_main.txt index 35a925946f..f6f02c48d3 100644 --- a/common_syms/battle_main.txt +++ b/common_syms/battle_main.txt @@ -6,4 +6,4 @@ gBattlerControllerFuncs gHealthboxSpriteIds gMultiUsePlayerCursor gNumberOfMovesToChoose -gUnknown_03005D7C +gBattleControllerData diff --git a/common_syms/text.txt b/common_syms/text.txt index 4406c8bf93..cd8886e5b1 100644 --- a/common_syms/text.txt +++ b/common_syms/text.txt @@ -1,4 +1,4 @@ gFonts -gUnknown_03002F84 -gUnknown_03002F90 +gDisableTextPrinters +gCurGlyph gTextFlags diff --git a/common_syms/window.txt b/common_syms/window.txt index 87a1679d16..416d9d7325 100644 --- a/common_syms/window.txt +++ b/common_syms/window.txt @@ -1,5 +1,5 @@ -filler_03002F58 -filler_03002F5C +gUnusedWindowVar1 +gUnusedWindowVar2 gTransparentTileNumber -filler_03002F64 -gUnknown_03002F70 +gUnusedWindowVar3 +gWindowBgTilemapBuffers diff --git a/constants/m4a_constants.inc b/constants/m4a_constants.inc index 08d888acda..1a744dc7fb 100644 --- a/constants/m4a_constants.inc +++ b/constants/m4a_constants.inc @@ -1,6 +1,7 @@ .equiv ID_NUMBER, 0x68736d53 .equiv PCM_DMA_BUF_SIZE, 1584 + .equiv MAX_DIRECTSOUND_CHANNELS, 12 .equiv C_V, 0x40 @@ -93,7 +94,7 @@ struct_field o_SoundInfo_plynote, 4 struct_field o_SoundInfo_ExtVolPit, 4 struct_field o_SoundInfo_gap2, 16 - struct_field o_SoundInfo_chans, 768 + struct_field o_SoundInfo_chans, MAX_DIRECTSOUND_CHANNELS * 64 struct_field o_SoundInfo_pcmBuffer, PCM_DMA_BUF_SIZE * 2 struct_field SoundInfo_size, 0 diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s deleted file mode 100644 index 17238670d0..0000000000 --- a/data/battle_ai_scripts.s +++ /dev/null @@ -1,4186 +0,0 @@ -#include "constants/battle.h" -#include "constants/battle_ai.h" -#include "constants/abilities.h" -#include "constants/items.h" -#include "constants/moves.h" -#include "constants/battle_move_effects.h" -#include "constants/hold_effects.h" -#include "constants/pokemon.h" - .include "asm/macros/battle_ai_script.inc" - - .section script_data, "aw", %progbits - - .align 2 -gBattleAI_ScriptsTable:: @ 82DBEF8 - .4byte AI_CheckBadMove @ AI_SCRIPT_CHECK_BAD_MOVE - .4byte AI_TryToFaint @ AI_SCRIPT_TRY_TO_FAINT - .4byte AI_CheckViability @ AI_SCRIPT_CHECK_VIABILITY - .4byte AI_SetupFirstTurn @ AI_SCRIPT_SETUP_FIRST_TURN - .4byte AI_Risky @ AI_SCRIPT_RISKY - .4byte AI_PreferStrongestMove @ AI_SCRIPT_PREFER_STRONGEST_MOVE - .4byte AI_PreferBatonPass @ AI_SCRIPT_PREFER_BATON_PASS - .4byte AI_DoubleBattle @ AI_SCRIPT_DOUBLE_BATTLE - .4byte AI_HPAware @ AI_SCRIPT_HP_AWARE - .4byte AI_Unknown @ AI_SCRIPT_UNKNOWN - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Ret - .4byte AI_Roaming @ AI_SCRIPT_ROAMING - .4byte AI_Safari @ AI_SCRIPT_SAFARI - .4byte AI_FirstBattle @ AI_SCRIPT_FIRST_BATTLE - -AI_CheckBadMove: - if_target_is_ally AI_Ret -@ Check powder moves - if_move_flag FLAG_POWDER, AI_CBM_PowderMoves - goto AI_CBM_CheckIfNegatesType -AI_CBM_PowderMoves: - if_type AI_TARGET, TYPE_GRASS, Score_Minus10 - if_ability AI_TARGET, ABILITY_OVERCOAT, Score_Minus10 - get_hold_effect AI_TARGET - if_equal HOLD_EFFECT_SAFETY_GOOGLES Score_Minus10 - -AI_CBM_CheckIfNegatesType: - if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 - get_ability AI_USER - if_equal ABILITY_MOLD_BREAKER, AI_CheckBadMove_CheckEffect - if_equal ABILITY_TERAVOLT, AI_CheckBadMove_CheckEffect - if_equal ABILITY_TURBOBLAZE, AI_CheckBadMove_CheckEffect - get_ability AI_TARGET - if_equal ABILITY_VOLT_ABSORB, CheckIfVoltAbsorbCancelsElectric - if_equal ABILITY_LIGHTNING_ROD, CheckIfVoltAbsorbCancelsElectric - if_equal ABILITY_MOTOR_DRIVE, CheckIfVoltAbsorbCancelsElectric - if_equal ABILITY_WATER_ABSORB, CheckIfWaterAbsorbCancelsWater - if_equal ABILITY_STORM_DRAIN, CheckIfWaterAbsorbCancelsWater - if_equal ABILITY_DRY_SKIN, CheckIfWaterAbsorbCancelsWater - if_equal ABILITY_FLASH_FIRE, CheckIfFlashFireCancelsFire - if_equal ABILITY_WONDER_GUARD, CheckIfWonderGuardCancelsMove - if_equal ABILITY_LEVITATE, CheckIfLevitateCancelsGroundMove - if_equal ABILITY_SOUNDPROOF, CheckIfSoundproofCancelsMove - goto AI_CheckBadMove_CheckEffect - -CheckIfSoundproofCancelsMove: - if_move_flag FLAG_SOUND, Score_Minus10 - goto AI_CheckBadMove_CheckEffect - -CheckIfVoltAbsorbCancelsElectric: @ 82DBFBD - get_curr_move_type - if_equal TYPE_ELECTRIC, Score_Minus12 - goto AI_CheckBadMove_CheckEffect - -CheckIfWaterAbsorbCancelsWater: @ 82DBFCA - get_curr_move_type - if_equal TYPE_WATER, Score_Minus12 - goto AI_CheckBadMove_CheckEffect - -CheckIfFlashFireCancelsFire: @ 82DBFD7 - get_curr_move_type - if_equal TYPE_FIRE, Score_Minus12 - goto AI_CheckBadMove_CheckEffect - -CheckIfWonderGuardCancelsMove: @ 82DBFE4 - if_type_effectiveness AI_EFFECTIVENESS_x2, AI_CheckBadMove_CheckEffect - if_type_effectiveness AI_EFFECTIVENESS_x4, AI_CheckBadMove_CheckEffect - goto Score_Minus10 - -CheckIfLevitateCancelsGroundMove: @ 82DBFEF - get_curr_move_type - if_equal TYPE_GROUND, Score_Minus10 - -AI_CheckBadMove_CheckEffect: @ 82DC045 - if_effect EFFECT_SLEEP, AI_CBM_Sleep - if_effect EFFECT_EXPLOSION, AI_CBM_Explosion - if_effect EFFECT_DREAM_EATER, AI_CBM_DreamEater - if_effect EFFECT_ATTACK_UP, AI_CBM_AttackUp - if_effect EFFECT_DEFENSE_UP, AI_CBM_DefenseUp - if_effect EFFECT_SPEED_UP, AI_CBM_SpeedUp - if_effect EFFECT_SPECIAL_ATTACK_UP, AI_CBM_SpAtkUp - if_effect EFFECT_SPECIAL_DEFENSE_UP, AI_CBM_SpDefUp - if_effect EFFECT_ACCURACY_UP, AI_CBM_AccUp - if_effect EFFECT_EVASION_UP, AI_CBM_EvasionUp - if_effect EFFECT_ATTACK_DOWN, AI_CBM_AttackDown - if_effect EFFECT_DEFENSE_DOWN, AI_CBM_DefenseDown - if_effect EFFECT_SPEED_DOWN, AI_CBM_SpeedDown - if_effect EFFECT_SPECIAL_ATTACK_DOWN, AI_CBM_SpAtkDown - if_effect EFFECT_SPECIAL_DEFENSE_DOWN, AI_CBM_SpDefDown - if_effect EFFECT_ACCURACY_DOWN, AI_CBM_AccDown - if_effect EFFECT_EVASION_DOWN, AI_CBM_EvasionDown - if_effect EFFECT_HAZE, AI_CBM_Haze - if_effect EFFECT_BIDE, AI_CBM_HighRiskForDamage - if_effect EFFECT_ROAR, AI_CBM_Roar - if_effect EFFECT_TOXIC, AI_CBM_Toxic - if_effect EFFECT_LIGHT_SCREEN, AI_CBM_LightScreen - if_effect EFFECT_OHKO, AI_CBM_OneHitKO - if_effect EFFECT_SUPER_FANG, AI_CBM_HighRiskForDamage - if_effect EFFECT_MIST, AI_CBM_Mist - if_effect EFFECT_FOCUS_ENERGY, AI_CBM_FocusEnergy - if_effect EFFECT_CONFUSE, AI_CBM_Confuse - if_effect EFFECT_ATTACK_UP_2, AI_CBM_AttackUp - if_effect EFFECT_DEFENSE_UP_2, AI_CBM_DefenseUp - if_effect EFFECT_SPEED_UP_2, AI_CBM_SpeedUp - if_effect EFFECT_SPECIAL_ATTACK_UP_2, AI_CBM_SpAtkUp - if_effect EFFECT_SPECIAL_DEFENSE_UP_2, AI_CBM_SpDefUp - if_effect EFFECT_ACCURACY_UP_2, AI_CBM_AccUp - if_effect EFFECT_EVASION_UP_2, AI_CBM_EvasionUp - if_effect EFFECT_ATTACK_DOWN_2, AI_CBM_AttackDown - if_effect EFFECT_DEFENSE_DOWN_2, AI_CBM_DefenseDown - if_effect EFFECT_SPEED_DOWN_2, AI_CBM_SpeedDown - if_effect EFFECT_SPECIAL_ATTACK_DOWN_2, AI_CBM_SpAtkDown - if_effect EFFECT_SPECIAL_DEFENSE_DOWN_2, AI_CBM_SpDefDown - if_effect EFFECT_ACCURACY_DOWN_2, AI_CBM_AccDown - if_effect EFFECT_EVASION_DOWN_2, AI_CBM_EvasionDown - if_effect EFFECT_REFLECT, AI_CBM_Reflect - if_effect EFFECT_POISON, AI_CBM_Toxic - if_effect EFFECT_PARALYZE, AI_CBM_Paralyze - if_effect EFFECT_SUBSTITUTE, AI_CBM_Substitute - if_effect EFFECT_RECHARGE, AI_CBM_HighRiskForDamage - if_effect EFFECT_LEECH_SEED, AI_CBM_LeechSeed - if_effect EFFECT_DISABLE, AI_CBM_Disable - if_effect EFFECT_LEVEL_DAMAGE, AI_CBM_HighRiskForDamage - if_effect EFFECT_PSYWAVE, AI_CBM_HighRiskForDamage - if_effect EFFECT_COUNTER, AI_CBM_HighRiskForDamage - if_effect EFFECT_ENCORE, AI_CBM_Encore - if_effect EFFECT_SNORE, AI_CBM_DamageDuringSleep - if_effect EFFECT_SLEEP_TALK, AI_CBM_DamageDuringSleep - if_effect EFFECT_FLAIL, AI_CBM_HighRiskForDamage - if_effect EFFECT_MEAN_LOOK, AI_CBM_CantEscape - if_effect EFFECT_NIGHTMARE, AI_CBM_Nightmare - if_effect EFFECT_MINIMIZE, AI_CBM_EvasionUp - if_effect EFFECT_CURSE, AI_CBM_Curse - if_effect EFFECT_SPIKES, AI_CBM_Spikes - if_effect EFFECT_FORESIGHT, AI_CBM_Foresight - if_effect EFFECT_PERISH_SONG, AI_CBM_PerishSong - if_effect EFFECT_SANDSTORM, AI_CBM_Sandstorm - if_effect EFFECT_SWAGGER, AI_CBM_Confuse - if_effect EFFECT_ATTRACT, AI_CBM_Attract - if_effect EFFECT_CAPTIVATE, AI_CBM_Captivate - if_effect EFFECT_RETURN, AI_CBM_HighRiskForDamage - if_effect EFFECT_PRESENT, AI_CBM_HighRiskForDamage - if_effect EFFECT_FRUSTRATION, AI_CBM_HighRiskForDamage - if_effect EFFECT_SAFEGUARD, AI_CBM_Safeguard - if_effect EFFECT_MAGNITUDE, AI_CBM_Magnitude - if_effect EFFECT_BATON_PASS, AI_CBM_BatonPass - if_effect EFFECT_SONICBOOM, AI_CBM_HighRiskForDamage - if_effect EFFECT_RAIN_DANCE, AI_CBM_RainDance - if_effect EFFECT_SUNNY_DAY, AI_CBM_SunnyDay - if_effect EFFECT_BELLY_DRUM, AI_CBM_BellyDrum - if_effect EFFECT_PSYCH_UP, AI_CBM_Haze - if_effect EFFECT_MIRROR_COAT, AI_CBM_HighRiskForDamage - if_effect EFFECT_SKULL_BASH, AI_CBM_HighRiskForDamage - if_effect EFFECT_FUTURE_SIGHT, AI_CBM_FutureSight - if_effect EFFECT_TELEPORT, Score_Minus10 - if_effect EFFECT_DEFENSE_CURL, AI_CBM_DefenseUp - if_effect EFFECT_FAKE_OUT, AI_CBM_FakeOut - if_effect EFFECT_STOCKPILE, AI_CBM_Stockpile - if_effect EFFECT_SPIT_UP, AI_CBM_SpitUpAndSwallow - if_effect EFFECT_SWALLOW, AI_CBM_SpitUpAndSwallow - if_effect EFFECT_HAIL, AI_CBM_Hail - if_effect EFFECT_TORMENT, AI_CBM_Torment - if_effect EFFECT_FLATTER, AI_CBM_Confuse - if_effect EFFECT_WILL_O_WISP, AI_CBM_WillOWisp - if_effect EFFECT_MEMENTO, AI_CBM_Memento - if_effect EFFECT_FOCUS_PUNCH, AI_CBM_HighRiskForDamage - if_effect EFFECT_HELPING_HAND, AI_CBM_HelpingHand - if_effect EFFECT_TRICK, AI_CBM_TrickAndKnockOff - if_effect EFFECT_INGRAIN, AI_CBM_Ingrain - if_effect EFFECT_SUPERPOWER, AI_CBM_HighRiskForDamage - if_effect EFFECT_RECYCLE, AI_CBM_Recycle - if_effect EFFECT_KNOCK_OFF, AI_CBM_TrickAndKnockOff - if_effect EFFECT_ENDEAVOR, AI_CBM_HighRiskForDamage - if_effect EFFECT_IMPRISON, AI_CBM_Imprison - if_effect EFFECT_REFRESH, AI_CBM_Refresh - if_effect EFFECT_LOW_KICK, AI_CBM_HighRiskForDamage - if_effect EFFECT_MUD_SPORT, AI_CBM_MudSport - if_effect EFFECT_TICKLE, AI_CBM_Tickle - if_effect EFFECT_COSMIC_POWER, AI_CBM_CosmicPower - if_effect EFFECT_BULK_UP, AI_CBM_BulkUp - if_effect EFFECT_WATER_SPORT, AI_CBM_WaterSport - if_effect EFFECT_CALM_MIND, AI_CBM_CalmMind - if_effect EFFECT_DRAGON_DANCE, AI_CBM_DragonDance - if_effect EFFECT_STICKY_WEB, AI_CBM_StickyWeb - if_effect EFFECT_STEALTH_ROCK, AI_CBM_StealthRock - if_effect EFFECT_TOXIC_SPIKES, AI_CBM_ToxicSpikes - if_effect EFFECT_AQUA_RING, AI_CBM_AquaRing - if_effect EFFECT_GRAVITY, AI_CBM_Gravity - if_effect EFFECT_EMBARGO, AI_CBM_Embargo - if_effect EFFECT_LUCKY_CHANT, AI_CBM_LuckyChant - if_effect EFFECT_HEAL_PULSE, Score_Minus5 - if_effect EFFECT_QUASH, AI_CBM_Quash - if_effect EFFECT_GASTRO_ACID, AI_CBM_GastroAcid - if_effect EFFECT_HEAL_BLOCK, AI_CBM_HealBlock - if_effect EFFECT_WORRY_SEED, AI_CBM_WorrySeed - if_effect EFFECT_MIRACLE_EYE, AI_CBM_MiracleEye - if_effect EFFECT_MAGNET_RISE, AI_CBM_MagnetRise - if_effect EFFECT_TELEKINESIS, AI_CBM_Telekinesis - if_effect EFFECT_MISTY_TERRAIN, AI_CBM_MistyTerrain - if_effect EFFECT_GRASSY_TERRAIN, AI_CBM_GrassyTerrain - if_effect EFFECT_ELECTRIC_TERRAIN, AI_CBM_ElectricTerrain - if_effect EFFECT_PSYCHIC_TERRAIN, AI_CBM_PsychicTerrain - if_effect EFFECT_QUIVER_DANCE, AI_CBM_QuiverDance - if_effect EFFECT_COIL, AI_CBM_Coil - if_effect EFFECT_TAILWIND, AI_CBM_Tailwind - if_effect EFFECT_SIMPLE_BEAM, AI_CBM_SimpleBeam - if_effect EFFECT_NATURAL_GIFT, AI_CBM_NaturalGift - if_effect EFFECT_FLING, AI_CBM_Fling - if_effect EFFECT_ATTACK_ACCURACY_UP, AI_CBM_AtkAccUp - if_effect EFFECT_ATTACK_SPATK_UP, AI_CBM_AtkSpAtkUp - if_effect EFFECT_GROWTH, AI_CBM_AtkSpAtkUp - if_effect EFFECT_AROMATIC_MIST, AI_CBM_AromaticMist - if_effect EFFECT_ACUPRESSURE, AI_CBM_Acupressure - if_effect EFFECT_BESTOW, AI_CBM_Bestow - if_effect EFFECT_PSYCHO_SHIFT, AI_CBM_PsychicShift - if_effect EFFECT_DEFOG, AI_CBM_Defog - if_effect EFFECT_SYNCHRONOISE, AI_CBM_Synchronoise - if_effect EFFECT_AUTOTOMIZE, AI_CBM_SpeedUp - if_effect EFFECT_TOXIC_THREAD, AI_CBM_ToxicThread - if_effect EFFECT_VENOM_DRENCH, AI_CBM_VenomDrench - if_effect EFFECT_DEFENSE_UP_3, AI_CBM_DefenseUp - if_effect EFFECT_SHIFT_GEAR, AI_CBM_DragonDance - if_effect EFFECT_NOBLE_ROAR, AI_CBM_NobleRoar - if_effect EFFECT_SHELL_SMASH, AI_CBM_ShellSmash - if_effect EFFECT_LAST_RESORT, AI_CBM_LastResort - if_effect EFFECT_BELCH, AI_CBM_Belch - if_effect EFFECT_DO_NOTHING, Score_Minus8 - if_effect EFFECT_POWDER, AI_CBM_Powder - if_effect EFFECT_PROTECT, AI_CBM_Protect - if_effect EFFECT_TAUNT, AI_CBM_Taunt - if_effect EFFECT_HEAL_BELL, AI_CBM_HealBell - if_effect EFFECT_FOLLOW_ME, AI_CBM_FollowMe - if_effect EFFECT_GEOMANCY, AI_CBM_QuiverDance - if_effect EFFECT_FAIRY_LOCK, AI_CBM_FairyLock - if_effect EFFECT_ALLY_SWITCH, AI_CBM_HelpingHand - if_effect EFFECT_TRICK_ROOM, AI_CBM_TrickRoom - if_effect EFFECT_WONDER_ROOM, AI_CBM_WonderRoom - if_effect EFFECT_MAGIC_ROOM, AI_CBM_MagicRoom - if_effect EFFECT_SOAK, AI_CBM_Soak - if_effect EFFECT_LOCK_ON, AI_CBM_LockOn - end - -AI_CBM_LockOn: - if_status3 AI_TARGET, STATUS3_ALWAYS_HITS, Score_Minus10 - if_ability AI_TARGET, ABILITY_NO_GUARD, Score_Minus10 - if_ability AI_USER, ABILITY_NO_GUARD, Score_Minus10 - end - -AI_CBM_Soak: - if_type AI_TARGET, TYPE_WATER, Score_Minus10 - end - -AI_CBM_TrickRoom: - if_field_status STATUS_FIELD_TRICK_ROOM, Score_Minus10 - end - -AI_CBM_WonderRoom: - if_field_status STATUS_FIELD_WONDER_ROOM, Score_Minus10 - end - -AI_CBM_MagicRoom: - if_field_status STATUS_FIELD_MAGIC_ROOM, Score_Minus10 - end - -AI_CBM_FairyLock: - if_field_status STATUS_FIELD_FAIRY_LOCK, Score_Minus10 - if_status2 AI_TARGET, STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED, Score_Minus10 - end - -AI_CBM_Geomancy: - call AI_CBM_QuiverDance - end - -AI_CBM_FollowMe: - if_not_double_battle Score_Minus10 - if_battler_absent AI_USER_PARTNER, Score_Minus10 - end - -AI_CBM_HealBell: - if_status AI_TARGET, STATUS1_ANY, AI_CBM_HealBell_End - if_status_in_party AI_TARGET, STATUS1_ANY, AI_CBM_HealBell_End - score -5 -AI_CBM_HealBell_End: - end - -AI_CBM_Taunt: - if_target_taunted Score_Minus10 - end - -AI_CBM_Protect: - get_protect_count AI_USER - if_more_than 2, Score_Minus10 - if_status AI_TARGET, STATUS1_SLEEP | STATUS1_FREEZE, Score_Minus8 - end - -AI_CBM_Powder: - if_type AI_TARGET, TYPE_FIRE, AI_Ret - if_has_move_with_type AI_TARGET, TYPE_FIRE, AI_Ret - score -5 - end - -AI_CBM_Belch: - if_cant_use_belch AI_USER, Score_Minus10 - end - -AI_CBM_LastResort: - if_cant_use_last_resort AI_USER, Score_Minus10 - end - -AI_CBM_ShellSmash: - if_ability AI_USER, ABILITY_CONTRARY, AI_CBM_ShellSmashContrary - if_stat_level_not_equal AI_USER, STAT_SPATK, 12, AI_Ret - if_stat_level_not_equal AI_USER, STAT_SPEED, 12, AI_Ret - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - end -AI_CBM_ShellSmashContrary: - if_stat_level_not_equal AI_USER, STAT_DEF, 12, AI_Ret - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus10 - end - -AI_CBM_NobleRoar: - if_stat_level_not_equal AI_TARGET, STAT_SPATK, 12, AI_Ret - if_stat_level_equal AI_TARGET, STAT_ATK, 12, Score_Minus10 - end - -AI_CBM_VenomDrench: - if_not_status AI_TARGET, STATUS1_PSN_ANY, Score_Minus10 - if_stat_level_not_equal AI_TARGET, STAT_SPEED, 12, AI_Ret - if_stat_level_not_equal AI_TARGET, STAT_SPATK, 12, AI_Ret - if_stat_level_equal AI_TARGET, STAT_ATK, 12, Score_Minus10 - end - -AI_CBM_ToxicThread: - if_stat_level_not_equal AI_TARGET, STAT_SPEED, 12, AI_Ret - goto AI_CBM_Toxic - -AI_CBM_Synchronoise: - if_share_type AI_USER, AI_TARGET AI_Ret - goto Score_Minus10 - -AI_CBM_Defog: - if_side_affecting AI_USER, SIDE_STATUS_SPIKES | SIDE_STATUS_STEALTH_ROCK | SIDE_STATUS_TOXIC_SPIKES | SIDE_STATUS_STICKY_WEB, AI_Ret - goto AI_CBM_EvasionDown - -AI_CBM_PsychicShift: - if_not_status AI_USER, STATUS1_ANY, Score_Minus10 - if_status AI_TARGET, STATUS1_ANY, Score_Minus10 - if_status AI_USER, STATUS1_PARALYSIS, AI_CBM_Paralyze - if_status AI_USER, STATUS1_PSN_ANY, AI_CBM_Toxic - if_status AI_USER, STATUS1_BURN, AI_CBM_WillOWisp - if_status AI_USER, STATUS1_SLEEP, AI_CBM_Sleep - end - -AI_CBM_Bestow: - if_holds_no_item AI_USER, Score_Minus10 - end - -AI_CBM_Acupressure: - if_double_battle AI_Ret - if_stat_level_not_equal AI_USER, STAT_ATK, 12, AI_Ret - if_stat_level_not_equal AI_USER, STAT_DEF, 12, AI_Ret - if_stat_level_not_equal AI_USER, STAT_SPATK, 12, AI_Ret - if_stat_level_not_equal AI_USER, STAT_SPDEF, 12, AI_Ret - if_stat_level_not_equal AI_USER, STAT_SPEED, 12, AI_Ret - if_stat_level_not_equal AI_USER, STAT_ACC, 12, AI_Ret - if_stat_level_equal AI_USER, STAT_EVASION, 12, Score_Minus10 - end - -AI_CBM_AromaticMist: - if_target_is_ally AI_Ret - goto Score_Minus10 - -AI_CBM_AtkAccUp: - if_stat_level_not_equal AI_USER, STAT_ATK, 12, AI_Ret - if_stat_level_equal AI_USER, STAT_ACC, 12, Score_Minus10 - end - -AI_CBM_AtkSpAtkUp: - if_stat_level_not_equal AI_USER, STAT_ATK, 12, AI_Ret - if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 - end - -AI_CBM_Fling: - if_holds_no_item AI_USER, Score_Minus10 - if_ability AI_USER, ABILITY_KLUTZ, Score_Minus10 - if_status3 AI_USER, STATUS3_EMBARGO, Score_Minus10 - if_field_status STATUS_FIELD_MAGIC_ROOM, Score_Minus10 - end - -AI_CBM_NaturalGift: - if_doesnt_hold_berry AI_USER, Score_Minus10 - if_ability AI_USER, ABILITY_KLUTZ, Score_Minus10 - if_status3 AI_USER, STATUS3_EMBARGO, Score_Minus10 - if_field_status STATUS_FIELD_MAGIC_ROOM, Score_Minus10 - end - -AI_CBM_SimpleBeam: - if_ability AI_TARGET, ABILITY_SIMPLE, Score_Minus10 - end - -AI_CBM_Tailwind: - if_side_affecting AI_USER, SIDE_STATUS_TAILWIND, Score_Minus10 - end - -AI_CBM_QuiverDance: - if_stat_level_not_equal AI_USER, STAT_SPATK, 12, AI_Ret - if_stat_level_not_equal AI_USER, STAT_SPDEF, 12, AI_Ret - if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus10 - end - -AI_CBM_Coil: - if_stat_level_not_equal AI_USER, STAT_ATK, 12, AI_Ret - if_stat_level_not_equal AI_USER, STAT_DEF, 12, AI_Ret - if_stat_level_equal AI_USER, STAT_ACC, 12, Score_Minus10 - end - -AI_CBM_MistyTerrain: - if_field_status STATUS_FIELD_MISTY_TERRAIN, Score_Minus10 - end - -AI_CBM_GrassyTerrain: - if_field_status STATUS_FIELD_GRASSY_TERRAIN, Score_Minus10 - end - -AI_CBM_ElectricTerrain: - if_field_status STATUS_FIELD_ELECTRIC_TERRAIN, Score_Minus10 - end - -AI_CBM_PsychicTerrain: - if_field_status STATUS_FIELD_PSYCHIC_TERRAIN, Score_Minus10 - end - -AI_CBM_Quash: - if_not_double_battle Score_Minus10 - end - -AI_CBM_Telekinesis: - if_status3 AI_TARGET, STATUS3_TELEKINESIS, Score_Minus10 - end - -AI_CBM_MagnetRise: - if_status3 AI_USER, STATUS3_MAGNET_RISE, Score_Minus10 - end - -AI_CBM_MiracleEye: - if_status3 AI_TARGET, STATUS3_MIRACLE_EYED, Score_Minus10 - if_status2 AI_TARGET, STATUS2_FORESIGHT, Score_Minus10 - end - -AI_CBM_WorrySeed: - get_ability AI_TARGET - if_equal ABILITY_INSOMNIA, Score_Minus10 - if_equal ABILITY_VITAL_SPIRIT, Score_Minus10 - end - -AI_CBM_HealBlock: - if_status3 AI_TARGET, STATUS3_HEAL_BLOCK, Score_Minus10 - end - -AI_CBM_GastroAcid: - if_status3 AI_TARGET, STATUS3_GASTRO_ACID, Score_Minus10 - end - -AI_CBM_AquaRing: - if_status3 AI_USER, STATUS3_AQUA_RING, Score_Minus10 - end - -AI_CBM_LuckyChant: - if_side_affecting AI_USER, SIDE_STATUS_LUCKY_CHANT, Score_Minus10 - end - -AI_CBM_Embargo: - if_status3 AI_TARGET, STATUS3_EMBARGO, Score_Minus10 - end - -AI_CBM_Gravity: - if_field_status STATUS_FIELD_GRAVITY, Score_Minus10 - end - -@ Don't use hazards if target side has no mons to switch -AI_CBM_Hazards: - count_usable_party_mons AI_TARGET - if_equal 0, Score_Minus10 - end - -AI_CBM_ToxicSpikes: - if_not_side_affecting AI_TARGET, SIDE_STATUS_TOXIC_SPIKES, AI_Ret - get_hazards_count AI_TARGET, EFFECT_TOXIC_SPIKES - if_equal 2, Score_Minus10 - goto AI_CBM_Hazards - -AI_CBM_StealthRock: - if_side_affecting AI_TARGET, SIDE_STATUS_STEALTH_ROCK, Score_Minus10 - goto AI_CBM_Hazards - -AI_CBM_StickyWeb: - if_side_affecting AI_TARGET, SIDE_STATUS_STICKY_WEB, Score_Minus10 - goto AI_CBM_Hazards - -AI_CBM_Sleep: @ 82DC2D4 - get_ability AI_TARGET - if_equal ABILITY_INSOMNIA, Score_Minus10 - if_equal ABILITY_VITAL_SPIRIT, Score_Minus10 - if_status AI_TARGET, STATUS1_ANY, Score_Minus10 - if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 - end - -AI_CBM_Explosion: @ 82DC2F7 - if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 - get_ability AI_TARGET - if_equal ABILITY_DAMP, Score_Minus10 - count_usable_party_mons AI_USER - if_not_equal 0, AI_CBM_Explosion_End - count_usable_party_mons AI_TARGET - if_not_equal 0, Score_Minus10 - goto Score_Minus1 - -AI_CBM_Explosion_End: @ 82DC31A - end - -AI_CBM_Nightmare: @ 82DC31B - if_status2 AI_TARGET, STATUS2_NIGHTMARE, Score_Minus10 - if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8 - end - -AI_CBM_DreamEater: @ 82DC330 - if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8 - if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 - end - -AI_CBM_BellyDrum: @ 82DC341 - if_hp_less_than AI_USER, 51, Score_Minus10 - -AI_CBM_AttackUp: @ 82DC348 - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - @ Do not raise attack if has no physical moves - if_has_move_with_effect AI_USER, EFFECT_BATON_PASS, AI_Ret - if_has_no_physical_move AI_USER, Score_Minus10 - end - -AI_CBM_DefenseUp: @ 82DC351 - if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus10 - end - -AI_CBM_SpeedUp: @ 82DC35A - if_stat_level_equal AI_USER, STAT_SPEED, MAX_STAT_STAGE, Score_Minus10 - end - -AI_CBM_SpAtkUp: @ 82DC363 - if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 - @ Do not raise sp. attack if has no special moves - if_has_move_with_effect AI_USER, EFFECT_BATON_PASS, AI_Ret - if_has_no_special_move AI_USER, Score_Minus10 - end - -AI_CBM_SpDefUp: @ 82DC36C - if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus10 - end - -AI_CBM_AccUp: @ 82DC375 - if_stat_level_equal AI_USER, STAT_ACC, MAX_STAT_STAGE, Score_Minus10 - end - -AI_CBM_EvasionUp: @ 82DC37E - if_stat_level_equal AI_USER, STAT_EVASION, MAX_STAT_STAGE, Score_Minus10 - end - -AI_CBM_AttackDown: @ 82DC387 - if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 - get_ability AI_TARGET - if_equal ABILITY_HYPER_CUTTER, Score_Minus10 - goto CheckIfAbilityBlocksStatChange - -AI_CBM_DefenseDown: @ 82DC39C - if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus10 - get_ability AI_TARGET - if_equal ABILITY_BIG_PECKS, Score_Minus10 - goto CheckIfAbilityBlocksStatChange - -AI_CBM_SpeedDown: @ 82DC3A9 - if_stat_level_equal AI_TARGET, STAT_SPEED, MIN_STAT_STAGE, Score_Minus10 - if_ability AI_TARGET, ABILITY_SPEED_BOOST, Score_Minus10 - goto CheckIfAbilityBlocksStatChange - -AI_CBM_SpAtkDown: @ 82DC3BF - if_stat_level_equal AI_TARGET, STAT_SPATK, MIN_STAT_STAGE, Score_Minus10 - goto CheckIfAbilityBlocksStatChange - -AI_CBM_SpDefDown: @ 82DC3CC - if_stat_level_equal AI_TARGET, STAT_SPDEF, MIN_STAT_STAGE, Score_Minus10 - goto CheckIfAbilityBlocksStatChange - -AI_CBM_AccDown: @ 82DC3D9 - if_stat_level_equal AI_TARGET, STAT_ACC, MIN_STAT_STAGE, Score_Minus10 - get_ability AI_TARGET - if_equal ABILITY_KEEN_EYE, Score_Minus10 - goto CheckIfAbilityBlocksStatChange - -AI_CBM_EvasionDown: @ 82DC3EE - if_stat_level_equal AI_TARGET, STAT_EVASION, MIN_STAT_STAGE, Score_Minus10 - -CheckIfAbilityBlocksStatChange: @ 82DC3F6 - get_ability AI_TARGET - if_equal ABILITY_CLEAR_BODY, Score_Minus10 - if_equal ABILITY_WHITE_SMOKE, Score_Minus10 - end - -AI_CBM_Haze: @ 82DC405 - if_stat_level_less_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_DEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPEED, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPDEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_ACC, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_DEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPEED, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPDEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_ACC, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CBM_Haze_End - goto Score_Minus10 - -AI_CBM_Haze_End: @ 82DC47A - end - -AI_CBM_Roar: @ 82DC47B - count_usable_party_mons AI_TARGET - if_equal 0, Score_Minus10 - get_ability AI_TARGET - if_equal ABILITY_SUCTION_CUPS, Score_Minus10 - end - -AI_CBM_Toxic: @ 82DC48C - get_target_type1 - if_equal TYPE_STEEL, Score_Minus10 - if_equal TYPE_POISON, Score_Minus10 - get_target_type2 - if_equal TYPE_STEEL, Score_Minus10 - if_equal TYPE_POISON, Score_Minus10 - get_ability AI_TARGET - if_equal ABILITY_IMMUNITY, Score_Minus10 - if_equal ABILITY_TOXIC_BOOST, Score_Minus10 - if_status AI_TARGET, STATUS1_ANY, Score_Minus10 - if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 - end - -AI_CBM_LightScreen: @ 82DC4C5 - if_side_affecting AI_USER, SIDE_STATUS_LIGHTSCREEN, Score_Minus8 - end - -AI_CBM_OneHitKO: @ 82DC4D0 - if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 - get_ability AI_TARGET - if_equal ABILITY_STURDY, Score_Minus10 - if_level_cond 1, Score_Minus10 - end - -AI_CBM_Magnitude: @ 82DC4E5 - get_ability AI_TARGET - if_equal ABILITY_LEVITATE, Score_Minus10 - -AI_CBM_HighRiskForDamage: @ 82DC4ED - if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 - get_ability AI_TARGET - if_not_equal ABILITY_WONDER_GUARD, AI_CBM_HighRiskForDamage_End - if_type_effectiveness AI_EFFECTIVENESS_x2, AI_CBM_HighRiskForDamage_End - goto Score_Minus10 - -AI_CBM_HighRiskForDamage_End: @ 82DC506 - end - -AI_CBM_Mist: @ 82DC507 - if_side_affecting AI_USER, SIDE_STATUS_MIST, Score_Minus8 - end - -AI_CBM_FocusEnergy: @ 82DC512 - if_status2 AI_USER, STATUS2_FOCUS_ENERGY, Score_Minus10 - end - -AI_CBM_Confuse: @ 82DC51D - if_status2 AI_TARGET, STATUS2_CONFUSION, Score_Minus5 - get_ability AI_TARGET - if_equal ABILITY_OWN_TEMPO, Score_Minus10 - if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 - end - -AI_CBM_Reflect: @ 82DC53A - if_side_affecting AI_USER, SIDE_STATUS_REFLECT, Score_Minus8 - end - -AI_CBM_Paralyze: @ 82DC545 - if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 - get_ability AI_TARGET - if_equal ABILITY_LIMBER, Score_Minus10 - if_status AI_TARGET, STATUS1_ANY, Score_Minus10 - if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 - end - -AI_CBM_Substitute: @ 82DC568 - if_status2 AI_USER, STATUS2_SUBSTITUTE, Score_Minus8 - if_hp_less_than AI_USER, 26, Score_Minus10 - end - -AI_CBM_LeechSeed: @ 82DC57A - if_status3 AI_TARGET, STATUS3_LEECHSEED, Score_Minus10 - if_type AI_TARGET, TYPE_GRASS, Score_Minus10 - end - -AI_CBM_Disable: @ 82DC595 - if_any_move_disabled AI_TARGET, Score_Minus8 - if_no_move_used AI_TARGET, Score_Minus8 - end - -AI_CBM_Encore: @ 82DC59D - if_any_move_encored AI_TARGET, Score_Minus8 - if_no_move_used AI_TARGET, Score_Minus8 - end - -AI_CBM_DamageDuringSleep: @ 82DC5A5 - if_not_status AI_USER, STATUS1_SLEEP, Score_Minus8 - end - -AI_CBM_CantEscape: @ 82DC5B0 - if_status2 AI_TARGET, STATUS2_ESCAPE_PREVENTION, Score_Minus10 - end - -AI_CBM_Curse: @ 82DC5BB - if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 - if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus8 - end - -AI_CBM_Spikes: @ 82DC5CC - call AI_CBM_Hazards - if_not_side_affecting AI_TARGET, SIDE_STATUS_SPIKES, AI_Ret - get_hazards_count AI_TARGET, EFFECT_SPIKES - if_equal 3, Score_Minus10 - end - -AI_CBM_Foresight: @ 82DC5D7 - if_status2 AI_TARGET, STATUS2_FORESIGHT, Score_Minus10 - if_status3 AI_TARGET, STATUS3_MIRACLE_EYED, Score_Minus10 - end - -AI_CBM_PerishSong: @ 82DC5E2 - if_status3 AI_TARGET, STATUS3_PERISH_SONG, Score_Minus10 - end - -AI_CBM_Sandstorm: @ 82DC5ED - get_weather - if_equal AI_WEATHER_SANDSTORM, Score_Minus8 - end - -AI_IsOppositeGender: - get_ability AI_TARGET - if_equal ABILITY_OBLIVIOUS, Score_Minus10 - get_gender AI_USER - if_equal 0, AI_IsOppositeGenderFemale - if_equal 254, AI_IsOppositeGenderMale - goto Score_Minus10 -AI_IsOppositeGenderFemale: @ 82DC61A - get_gender AI_TARGET - if_equal 254, AI_CBM_Attract_End - goto Score_Minus10 -AI_IsOppositeGenderMale: @ 82DC627 - get_gender AI_TARGET - if_equal 0, AI_CBM_Attract_End - goto Score_Minus10 - end - -AI_CBM_Captivate: - call AI_IsOppositeGender - goto AI_CBM_SpAtkDown - -AI_CBM_Attract: @ 82DC5F5 - if_status2 AI_TARGET, STATUS2_INFATUATION, Score_Minus10 - call AI_IsOppositeGender - end - -AI_CBM_Attract_End: @ 82DC634 - end - -AI_CBM_Safeguard: @ 82DC635 - if_side_affecting AI_USER, SIDE_STATUS_SAFEGUARD, Score_Minus8 - end - -AI_CBM_Memento: @ 82DC640 - if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 - if_stat_level_equal AI_TARGET, STAT_SPATK, MIN_STAT_STAGE, Score_Minus8 - -AI_CBM_BatonPass: @ 82DC650 - count_usable_party_mons AI_USER - if_equal 0, Score_Minus10 - end - -AI_CBM_RainDance: @ 82DC659 - get_weather - if_equal AI_WEATHER_RAIN, Score_Minus8 - end - -AI_CBM_SunnyDay: @ 82DC661 - get_weather - if_equal AI_WEATHER_SUN, Score_Minus8 - end - -AI_CBM_FutureSight: @ 82DC669 - if_side_affecting AI_TARGET, SIDE_STATUS_FUTUREATTACK, Score_Minus12 - if_side_affecting AI_USER, SIDE_STATUS_FUTUREATTACK, Score_Minus12 - score +5 - end - -AI_CBM_FakeOut: @ 82DC680 - is_first_turn_for AI_USER - if_equal 0, Score_Minus10 - end - -AI_CBM_Stockpile: @ 82DC689 - get_stockpile_count AI_USER - if_equal 3, Score_Minus10 - end - -AI_CBM_SpitUpAndSwallow: @ 82DC692 - if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 - get_stockpile_count AI_USER - if_equal 0, Score_Minus10 - end - -AI_CBM_Hail: @ 82DC6A1 - get_weather - if_equal AI_WEATHER_HAIL, Score_Minus8 - end - -AI_CBM_Torment: @ 82DC6A9 - if_status2 AI_TARGET, STATUS2_TORMENT, Score_Minus10 - end - -AI_CBM_WillOWisp: @ 82DC6B4 - get_ability AI_TARGET - if_equal ABILITY_WATER_VEIL, Score_Minus10 - if_equal ABILITY_FLARE_BOOST, Score_Minus10 - if_equal ABILITY_FLASH_FIRE, Score_Minus10 - if_status AI_TARGET, STATUS1_ANY, Score_Minus10 - if_type AI_TARGET, TYPE_FIRE, Score_Minus10 - if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 - end - -AI_CBM_HelpingHand: @ 82DC6E3 - if_not_double_battle Score_Minus10 - if_battler_absent AI_USER_PARTNER, Score_Minus10 - end - -AI_CBM_TrickAndKnockOff: @ 82DC6EB - get_ability AI_TARGET - if_equal ABILITY_STICKY_HOLD, Score_Minus10 - end - -AI_CBM_Ingrain: @ 82DC6F4 - if_status3 AI_USER, STATUS3_ROOTED, Score_Minus10 - end - -AI_CBM_Recycle: @ 82DC6FF - get_used_held_item AI_USER - if_equal 0, Score_Minus10 - end - -AI_CBM_Imprison: @ 82DC708 - if_status3 AI_USER, STATUS3_IMPRISONED_OTHERS, Score_Minus10 - end - -AI_CBM_Refresh: @ 82DC713 - if_not_status AI_USER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, Score_Minus10 - end - -AI_CBM_MudSport: @ 82DC71E - if_field_status STATUS_FIELD_MUDSPORT, Score_Minus10 - end - -AI_CBM_Tickle: @ 82DC729 - if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 - if_stat_level_equal AI_TARGET, STAT_DEF, MIN_STAT_STAGE, Score_Minus8 - end - -AI_CBM_CosmicPower: @ 82DC73A - if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus8 - end - -AI_CBM_BulkUp: @ 82DC74B - if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 - if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus8 - end - -AI_CBM_WaterSport: @ 82DC75C - if_field_status STATUS_FIELD_WATERSPORT, Score_Minus10 - end - -AI_CBM_CalmMind: @ 82DC767 - if_stat_level_equal AI_USER, STAT_SPATK, MAX_STAT_STAGE, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus8 - end - -AI_CBM_DragonDance: @ 82DC778 - if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPEED, MAX_STAT_STAGE, Score_Minus8 - end - -Score_Minus1: - score -1 - end - -Score_Minus2: - score -2 - end - -Score_Minus3: - score -3 - end - -Score_Minus5: - score -5 - end - -Score_Minus8: - score -8 - end - -Score_Minus10: - score -10 - end - -Score_Minus12: - score -12 - end - -Score_Minus30: - score -30 - end - -Score_Plus1: - score +1 - end - -Score_Plus2: - score +2 - end - -Score_Plus3: - score +3 - end - -Score_Plus5: - score +5 - end - -Score_Plus10: - score +10 - end - -@ omae wa mou shindeiru -@ Basically a scenario where the players mon is faster, able to hit and able to OHKO -@ In which, it would be best to use a priority move to deal any damage -AI_CheckIfAlreadyDead: - if_status2 AI_TARGET, STATUS2_RECHARGE | STATUS2_BIDE, AI_Ret - if_ai_can_go_down AI_CheckIfAlreadyDeadPriorities - end -AI_CheckIfAlreadyDeadPriorities: - if_target_faster Score_Minus1 - if_random_less_than 126, AI_Ret - score +1 - end - -@ The purpose is to use a move effect that hits the hardest or similar -AI_CV_DmgMove: - get_considered_move_power - if_equal 0, AI_Ret - get_how_powerful_move_is - if_equal MOVE_POWER_WEAK, Score_Minus1 - end - -@ If move deals shit damage, and there are other mons to switch in, use support moves instead -AI_WeakDmg: - get_considered_move_power - if_equal 0, AI_Ret - if_has_no_move_with_split AI_USER, SPLIT_STATUS, AI_Ret - get_curr_dmg_hp_percent - if_more_than 30, AI_Ret - if_more_than 20, Score_Minus1 - get_how_powerful_move_is - if_equal MOVE_POWER_BEST, Score_Minus2 - score -3 - end - -AI_DiscourageMagicGuard: - if_no_ability AI_TARGET, ABILITY_MAGIC_GUARD, AI_DiscourageMagicGuardEnd - if_effect EFFECT_POISON, Score_Minus5 - if_effect EFFECT_WILL_O_WISP, Score_Minus5 - if_effect EFFECT_TOXIC, Score_Minus5 - if_effect EFFECT_LEECH_SEED, Score_Minus5 - if_no_type AI_TARGET, TYPE_GHOST, AI_DiscourageMagicGuardEnd - if_effect EFFECT_CURSE, Score_Minus5 -AI_DiscourageMagicGuardEnd: - end - -AI_CheckViability: - if_target_is_ally AI_Ret - call_if_always_hit AI_CV_AlwaysHit - call_if_move_flag FLAG_HIGH_CRIT, AI_CV_HighCrit - call AI_CheckIfAlreadyDead - call AI_CV_DmgMove - call AI_WeakDmg - call AI_DiscourageMagicGuard - if_effect EFFECT_HIT, AI_CV_Hit - if_effect EFFECT_SLEEP, AI_CV_Sleep - if_effect EFFECT_ABSORB, AI_CV_Absorb - if_effect EFFECT_EXPLOSION, AI_CV_SelfKO - if_effect EFFECT_DREAM_EATER, AI_CV_DreamEater - if_effect EFFECT_MIRROR_MOVE, AI_CV_MirrorMove - if_effect EFFECT_ATTACK_UP, AI_CV_AttackUp - if_effect EFFECT_DEFENSE_UP, AI_CV_DefenseUp - if_effect EFFECT_SPEED_UP, AI_CV_SpeedUp - if_effect EFFECT_SPECIAL_ATTACK_UP, AI_CV_SpAtkUp - if_effect EFFECT_SPECIAL_DEFENSE_UP, AI_CV_SpDefUp - if_effect EFFECT_ACCURACY_UP, AI_CV_AccuracyUp - if_effect EFFECT_EVASION_UP, AI_CV_EvasionUp - if_effect EFFECT_ATTACK_DOWN, AI_CV_AttackDown - if_effect EFFECT_DEFENSE_DOWN, AI_CV_DefenseDown - if_effect EFFECT_SPEED_DOWN, AI_CV_SpeedDown - if_effect EFFECT_SPECIAL_ATTACK_DOWN, AI_CV_SpAtkDown - if_effect EFFECT_SPECIAL_DEFENSE_DOWN, AI_CV_SpDefDown - if_effect EFFECT_ACCURACY_DOWN, AI_CV_AccuracyDown - if_effect EFFECT_EVASION_DOWN, AI_CV_EvasionDown - if_effect EFFECT_HAZE, AI_CV_Haze - if_effect EFFECT_BIDE, AI_CV_Bide - if_effect EFFECT_ROAR, AI_CV_Roar - if_effect EFFECT_CONVERSION, AI_CV_Conversion - if_effect EFFECT_RESTORE_HP, AI_CV_Heal - if_effect EFFECT_SOFTBOILED, AI_CV_Heal - if_effect EFFECT_SWALLOW, AI_CV_Heal - if_effect EFFECT_ROOST, AI_CV_Heal - if_effect EFFECT_TOXIC, AI_CV_Toxic - if_effect EFFECT_LIGHT_SCREEN, AI_CV_LightScreen - if_effect EFFECT_REST, AI_CV_Rest - if_effect EFFECT_OHKO, AI_CV_OneHitKO - if_effect EFFECT_SUPER_FANG, AI_CV_SuperFang - if_effect EFFECT_TRAP, AI_CV_Trap - if_effect EFFECT_CONFUSE, AI_CV_Confuse - if_effect EFFECT_FOCUS_ENERGY, AI_CV_FocusEnergy - if_effect EFFECT_ATTACK_UP_2, AI_CV_AttackUp - if_effect EFFECT_DEFENSE_UP_2, AI_CV_DefenseUp - if_effect EFFECT_SPEED_UP_2, AI_CV_SpeedUp - if_effect EFFECT_SPECIAL_ATTACK_UP_2, AI_CV_SpAtkUp - if_effect EFFECT_SPECIAL_DEFENSE_UP_2, AI_CV_SpDefUp - if_effect EFFECT_ACCURACY_UP_2, AI_CV_AccuracyUp - if_effect EFFECT_EVASION_UP_2, AI_CV_EvasionUp - if_effect EFFECT_ATTACK_DOWN_2, AI_CV_AttackDown - if_effect EFFECT_DEFENSE_DOWN_2, AI_CV_DefenseDown - if_effect EFFECT_SPEED_DOWN_2, AI_CV_SpeedDown - if_effect EFFECT_SPECIAL_ATTACK_DOWN_2, AI_CV_SpAtkDown - if_effect EFFECT_SPECIAL_DEFENSE_DOWN_2, AI_CV_SpDefDown - if_effect EFFECT_ACCURACY_DOWN_2, AI_CV_AccuracyDown - if_effect EFFECT_EVASION_DOWN_2, AI_CV_EvasionDown - if_effect EFFECT_REFLECT, AI_CV_Reflect - if_effect EFFECT_AURORA_VEIL, AI_CV_AuroraVeil - if_effect EFFECT_POISON, AI_CV_Poison - if_effect EFFECT_TOXIC_THREAD, AI_CV_ToxicThread - if_effect EFFECT_PARALYZE, AI_CV_Paralyze - if_effect EFFECT_SWAGGER, AI_CV_Swagger - if_effect EFFECT_SPEED_DOWN_HIT, AI_CV_SpeedDownFromChance - if_effect EFFECT_TWO_TURNS_ATTACK, AI_CV_ChargeUpMove - if_effect EFFECT_VITAL_THROW, AI_CV_VitalThrow - if_effect EFFECT_SUBSTITUTE, AI_CV_Substitute - if_effect EFFECT_RECHARGE, AI_CV_Recharge - if_effect EFFECT_LEECH_SEED, AI_CV_LeechSeed - if_effect EFFECT_DISABLE, AI_CV_Disable - if_effect EFFECT_COUNTER, AI_CV_Counter - if_effect EFFECT_ENCORE, AI_CV_Encore - if_effect EFFECT_PAIN_SPLIT, AI_CV_PainSplit - if_effect EFFECT_LOCK_ON, AI_CV_LockOn - if_effect EFFECT_SLEEP_TALK, AI_CV_SleepTalk - if_effect EFFECT_SNORE, AI_CV_SleepTalk - if_effect EFFECT_DESTINY_BOND, AI_CV_DestinyBond - if_effect EFFECT_FLAIL, AI_CV_Flail - if_effect EFFECT_HEAL_BELL, AI_CV_HealBell - if_effect EFFECT_THIEF, AI_CV_Thief - if_effect EFFECT_MEAN_LOOK, AI_CV_Trap - if_effect EFFECT_MINIMIZE, AI_CV_EvasionUp - if_effect EFFECT_CURSE, AI_CV_Curse - if_effect EFFECT_PROTECT, AI_CV_Protect - if_effect EFFECT_FORESIGHT, AI_CV_Foresight - if_effect EFFECT_ENDURE, AI_CV_Endure - if_effect EFFECT_BATON_PASS, AI_CV_BatonPass - if_effect EFFECT_PURSUIT, AI_CV_Pursuit - if_effect EFFECT_MORNING_SUN, AI_CV_HealWeather - if_effect EFFECT_SYNTHESIS, AI_CV_HealWeather - if_effect EFFECT_MOONLIGHT, AI_CV_HealWeather - if_effect EFFECT_SHORE_UP, AI_CV_Heal - if_effect EFFECT_RAIN_DANCE, AI_CV_RainDance - if_effect EFFECT_SUNNY_DAY, AI_CV_SunnyDay - if_effect EFFECT_BELLY_DRUM, AI_CV_BellyDrum - if_effect EFFECT_PSYCH_UP, AI_CV_PsychUp - if_effect EFFECT_MIRROR_COAT, AI_CV_MirrorCoat - if_effect EFFECT_SKULL_BASH, AI_CV_ChargeUpMove - if_effect EFFECT_SOLARBEAM, AI_CV_ChargeUpMove - if_effect EFFECT_GEOMANCY, AI_CV_Geomancy - if_effect EFFECT_SEMI_INVULNERABLE, AI_CV_SemiInvulnerable - if_effect EFFECT_SOFTBOILED, AI_CV_Heal - if_effect EFFECT_FAKE_OUT, AI_CV_FakeOut - if_effect EFFECT_SPIT_UP, AI_CV_SpitUp - if_effect EFFECT_HAIL, AI_CV_Sandstorm - if_effect EFFECT_SANDSTORM, AI_CV_Sandstorm - if_effect EFFECT_FLATTER, AI_CV_Flatter - if_effect EFFECT_MEMENTO, AI_CV_SelfKO - if_effect EFFECT_FACADE, AI_CV_Facade - if_effect EFFECT_FOCUS_PUNCH, AI_CV_FocusPunch - if_effect EFFECT_SMELLINGSALT, AI_CV_SmellingSalt - if_effect EFFECT_TRICK, AI_CV_Trick - if_effect EFFECT_ROLE_PLAY, AI_CV_ChangeSelfAbility - if_effect EFFECT_SUPERPOWER, AI_CV_Superpower - if_effect EFFECT_MAGIC_COAT, AI_CV_MagicCoat - if_effect EFFECT_RECYCLE, AI_CV_Recycle - if_effect EFFECT_REVENGE, AI_CV_Revenge - if_effect EFFECT_BRICK_BREAK, AI_CV_BrickBreak - if_effect EFFECT_KNOCK_OFF, AI_CV_KnockOff - if_effect EFFECT_ENDEAVOR, AI_CV_Endeavor - if_effect EFFECT_ERUPTION, AI_CV_Eruption - if_effect EFFECT_SKILL_SWAP, AI_CV_ChangeSelfAbility - if_effect EFFECT_IMPRISON, AI_CV_Imprison - if_effect EFFECT_REFRESH, AI_CV_Refresh - if_effect EFFECT_SNATCH, AI_CV_Snatch - if_effect EFFECT_MUD_SPORT, AI_CV_MudSport - if_effect EFFECT_OVERHEAT, AI_CV_Overheat - if_effect EFFECT_TICKLE, AI_CV_DefenseDown - if_effect EFFECT_COSMIC_POWER, AI_CV_SpDefUp - if_effect EFFECT_BULK_UP, AI_CV_DefenseUp - if_effect EFFECT_WATER_SPORT, AI_CV_WaterSport - if_effect EFFECT_CALM_MIND, AI_CV_SpDefUp - if_effect EFFECT_DRAGON_DANCE, AI_CV_DragonDance - if_effect EFFECT_POWDER, AI_CV_Powder - if_effect EFFECT_MISTY_TERRAIN, AI_CV_MistyTerrain - if_effect EFFECT_GRASSY_TERRAIN, AI_CV_GrassyTerrain - if_effect EFFECT_ELECTRIC_TERRAIN, AI_CV_ElectricTerrain - if_effect EFFECT_PSYCHIC_TERRAIN, AI_CV_PsychicTerrain - if_effect EFFECT_STEALTH_ROCK, AI_CV_Hazards - if_effect EFFECT_SPIKES, AI_CV_Hazards - if_effect EFFECT_STICKY_WEB, AI_CV_Hazards - if_effect EFFECT_TOXIC_SPIKES, AI_CV_Hazards - if_effect EFFECT_PERISH_SONG, AI_CV_PerishSong - end - -AI_CV_PerishSong: - get_ability AI_USER - if_equal ABILITY_ARENA_TRAP, AI_CV_PerishSong_ArenaTrap - if_equal ABILITY_MAGNET_PULL, AI_CV_PerishSong_MagnetPull - if_equal ABILITY_SHADOW_TAG, AI_CV_PerishSong_ShadowTag -AI_CV_PerishSongCheckTrap: - if_status2 AI_TARGET, STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION, Score_Plus3 - @ If has a move that can trap, use it first, then use Perish Song - if_double_battle AI_Ret - if_has_move_with_effect AI_USER, EFFECT_TRAP, Score_Minus5 - if_has_move_with_effect AI_USER, EFFECT_MEAN_LOOK, Score_Minus5 - end -AI_CV_PerishSong_ArenaTrap: - if_grounded AI_TARGET, Score_Plus2 - goto AI_CV_PerishSongCheckTrap -AI_CV_PerishSong_MagnetPull: - if_type AI_TARGET, TYPE_STEEL, Score_Plus2 - goto AI_CV_PerishSongCheckTrap -AI_CV_PerishSong_ShadowTag: - if_no_ability AI_TARGET, ABILITY_SHADOW_TAG, Score_Plus2 - goto AI_CV_PerishSongCheckTrap - -AI_CV_Hazards: - if_ability AI_TARGET, ABILITY_MAGIC_BOUNCE, AI_CV_HzardsEnd - is_first_turn_for AI_USER - if_equal 0, AI_CV_HzardsEnd - score +2 -AI_CV_HzardsEnd: - end -AI_CV_StealthRock2: - score -2 - goto AI_CV_HzardsEnd - -AI_CV_MistyTerrain: - call AI_CV_TerrainExpander - end - -AI_CV_GrassyTerrain: - call AI_CV_TerrainExpander - end - -AI_CV_ElectricTerrain: - call AI_CV_TerrainExpander - end - -AI_CV_PsychicTerrain: - call AI_CV_TerrainExpander - end - -AI_CV_TerrainExpander: - get_hold_effect AI_USER - if_equal HOLD_EFFECT_TERRAIN_EXTENDER, Score_Plus2 - end - -AI_CV_Powder: - if_type AI_TARGET, TYPE_FIRE, AI_CV_Powder2 - if_has_move_with_type AI_TARGET, TYPE_FIRE, AI_CV_Powder2 - score -2 - end -AI_CV_Powder2: - is_first_turn_for AI_TARGET - if_equal 0, AI_CV_Powder3 - if_random_less_than 100, AI_CV_Powder3 - score +1 -AI_CV_Powder3: - if_type AI_USER, TYPE_BUG, AI_CV_Powder4 - if_type AI_USER, TYPE_GRASS, AI_CV_Powder4 - if_no_type AI_USER, TYPE_STEEL, AI_CV_Powder5 -AI_CV_Powder4: - score +1 -AI_CV_Powder5: - get_last_used_bank_move AI_USER - if_equal_u32 MOVE_POWDER, AI_CV_Powder6 - if_random_less_than 150, Score_Minus1 - if_random_less_than 200, AI_Ret - score +2 - end -AI_CV_Powder6: - if_random_less_than 136, Score_Minus2 - score +1 - end - -AI_CV_Hit: - end - -AI_CV_Sleep: @ 82DCA92 - if_has_move_with_effect AI_TARGET, EFFECT_DREAM_EATER, AI_CV_SleepEncourageSlpDamage - if_has_move_with_effect AI_TARGET, EFFECT_NIGHTMARE, AI_CV_SleepEncourageSlpDamage - goto AI_CV_Sleep_End - -AI_CV_SleepEncourageSlpDamage: @ 82DCAA5 - if_random_less_than 128, AI_CV_Sleep_End - score +1 - -AI_CV_Sleep_End: @ 82DCAAD - end - -AI_CV_Absorb: @ 82DCAAE - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_AbsorbEncourageMaybe - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_AbsorbEncourageMaybe - goto AI_CV_Absorb_End - -AI_CV_AbsorbEncourageMaybe: @ 82DCABF - if_random_less_than 50, AI_CV_Absorb_End - score -3 - -AI_CV_Absorb_End: @ 82DCAC7 - end - -AI_CV_SelfKO: @ 82DCAC8 - if_stat_level_less_than AI_TARGET, STAT_EVASION, 7, AI_CV_SelfKO_Encourage1 - score -1 - if_stat_level_less_than AI_TARGET, STAT_EVASION, 10, AI_CV_SelfKO_Encourage1 - if_random_less_than 128, AI_CV_SelfKO_Encourage1 - score -1 - -AI_CV_SelfKO_Encourage1: @ 82DCAE2 - if_hp_less_than AI_USER, 80, AI_CV_SelfKO_Encourage2 - if_target_faster AI_CV_SelfKO_Encourage2 - if_random_less_than 50, AI_CV_SelfKO_End - goto Score_Minus3 - -AI_CV_SelfKO_Encourage2: @ 82DCAFA - if_hp_more_than AI_USER, 50, AI_CV_SelfKO_Encourage4 - if_random_less_than 128, AI_CV_SelfKO_Encourage3 - score +1 - -AI_CV_SelfKO_Encourage3: @ 82DCB09 - if_hp_more_than AI_USER, 30, AI_CV_SelfKO_End - if_random_less_than 50, AI_CV_SelfKO_End - score +1 - goto AI_CV_SelfKO_End - -AI_CV_SelfKO_Encourage4: @ 82DCB1D - if_random_less_than 50, AI_CV_SelfKO_End - score -1 - -AI_CV_SelfKO_End: @ 82DCB25 - end - -AI_CV_DreamEater: @ 82DCB26 - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_DreamEater_ScoreDown1 - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_DreamEater_ScoreDown1 - goto AI_CV_DreamEater_End - -AI_CV_DreamEater_ScoreDown1: @ 82DCB37 - score -1 - -AI_CV_DreamEater_End: @ 82DCB39 - end - -AI_CV_MirrorMove: @ 82DCB3A - if_target_faster AI_CV_MirrorMove2 - get_last_used_bank_move AI_TARGET - if_not_in_hwords AI_CV_MirrorMove_EncouragedMovesToMirror, AI_CV_MirrorMove2 - if_random_less_than 128, AI_CV_MirrorMove_End - score +2 - goto AI_CV_MirrorMove_End - -AI_CV_MirrorMove2: @ 82DCB58 - get_last_used_bank_move AI_TARGET - if_in_hwords AI_CV_MirrorMove_EncouragedMovesToMirror, AI_CV_MirrorMove_End - if_random_less_than 80, AI_CV_MirrorMove_End - score -1 - -AI_CV_MirrorMove_End: @ 82DCB6B - end - -.align 1 -AI_CV_MirrorMove_EncouragedMovesToMirror: @ 82DCB6C - .2byte MOVE_SLEEP_POWDER - .2byte MOVE_LOVELY_KISS - .2byte MOVE_SPORE - .2byte MOVE_HYPNOSIS - .2byte MOVE_SING - .2byte MOVE_GRASS_WHISTLE - .2byte MOVE_SHADOW_PUNCH - .2byte MOVE_SAND_ATTACK - .2byte MOVE_SMOKESCREEN - .2byte MOVE_TOXIC - .2byte MOVE_GUILLOTINE - .2byte MOVE_HORN_DRILL - .2byte MOVE_FISSURE - .2byte MOVE_SHEER_COLD - .2byte MOVE_CROSS_CHOP - .2byte MOVE_AEROBLAST - .2byte MOVE_CONFUSE_RAY - .2byte MOVE_SWEET_KISS - .2byte MOVE_SCREECH - .2byte MOVE_COTTON_SPORE - .2byte MOVE_SCARY_FACE - .2byte MOVE_FAKE_TEARS - .2byte MOVE_METAL_SOUND - .2byte MOVE_THUNDER_WAVE - .2byte MOVE_GLARE - .2byte MOVE_POISON_POWDER - .2byte MOVE_SHADOW_BALL - .2byte MOVE_DYNAMIC_PUNCH - .2byte MOVE_HYPER_BEAM - .2byte MOVE_EXTREME_SPEED - .2byte MOVE_THIEF - .2byte MOVE_COVET - .2byte MOVE_ATTRACT - .2byte MOVE_SWAGGER - .2byte MOVE_TORMENT - .2byte MOVE_FLATTER - .2byte MOVE_TRICK - .2byte MOVE_SUPERPOWER - .2byte MOVE_SKILL_SWAP - .2byte -1 - -AI_CV_AttackUp: @ 82DCBBC - if_physical_moves_unusable AI_USER, AI_TARGET, Score_Minus8 - if_stat_level_less_than AI_USER, STAT_ATK, 9, AI_CV_AttackUp2 - if_random_less_than 100, AI_CV_AttackUp3 - score -1 - goto AI_CV_AttackUp3 - -AI_CV_AttackUp2: @ 82DCBD1 - if_hp_not_equal AI_USER, 100, AI_CV_AttackUp3 - if_random_less_than 128, AI_CV_AttackUp3 - score +2 - -AI_CV_AttackUp3: @ 82DCBE0 - if_hp_more_than AI_USER, 70, AI_CV_AttackUp_End - if_hp_less_than AI_USER, 40, AI_CV_AttackUp_ScoreDown2 - if_random_less_than 40, AI_CV_AttackUp_End - -AI_CV_AttackUp_ScoreDown2: @ 82DCBF4 - score -2 - -AI_CV_AttackUp_End: @ 82DCBF6 - end - -AI_CV_DefenseUp: @ 82DCBF7 - if_stat_level_less_than AI_USER, STAT_DEF, 9, AI_CV_DefenseUp2 - if_random_less_than 100, AI_CV_DefenseUp3 - score -1 - goto AI_CV_DefenseUp3 - -AI_CV_DefenseUp2: @ 82DCC0C - if_hp_not_equal AI_USER, 100, AI_CV_DefenseUp3 - if_random_less_than 128, AI_CV_DefenseUp3 - score +2 - -AI_CV_DefenseUp3: @ 82DCC1B - if_hp_less_than AI_USER, 70, AI_CV_DefenseUp4 - if_random_less_than 200, AI_CV_DefenseUp_End - -AI_CV_DefenseUp4: @ 82DCC28 - if_hp_less_than AI_USER, 40, AI_CV_DefenseUp_ScoreDown2 - get_last_used_bank_move AI_TARGET - get_move_power_from_result - if_equal 0, AI_CV_DefenseUp5 - get_last_used_bank_move AI_TARGET - get_move_split_from_result - if_not_equal SPLIT_PHYSICAL, AI_CV_DefenseUp_ScoreDown2 - if_random_less_than 60, AI_CV_DefenseUp_End - -AI_CV_DefenseUp5: @ 82DCC4A - if_random_less_than 60, AI_CV_DefenseUp_End - -AI_CV_DefenseUp_ScoreDown2: @ 82DCC50 - score -2 - -AI_CV_DefenseUp_End: @ 82DCC52 - end - -AI_CV_SpeedUp: @ 82DCC5D - if_target_faster AI_CV_SpeedUp2 - score -3 - goto AI_CV_SpeedUp_End - -AI_CV_SpeedUp2: @ 82DCC6A - if_random_less_than 70, AI_CV_SpeedUp_End - score +3 - -AI_CV_SpeedUp_End: @ 82DCC72 - end - -AI_CV_SpAtkUp: @ 82DCC73 - if_stat_level_less_than AI_USER, STAT_SPATK, 9, AI_CV_SpAtkUp2 - if_random_less_than 100, AI_CV_SpAtkUp3 - score -1 - goto AI_CV_SpAtkUp3 - -AI_CV_SpAtkUp2: @ 82DCC88 - if_hp_not_equal AI_USER, 100, AI_CV_SpAtkUp3 - if_random_less_than 128, AI_CV_SpAtkUp3 - score +2 - -AI_CV_SpAtkUp3: @ 82DCC97 - if_hp_more_than AI_USER, 70, AI_CV_SpAtkUp_End - if_hp_less_than AI_USER, 40, AI_CV_SpAtkUp_ScoreDown2 - if_random_less_than 70, AI_CV_SpAtkUp_End - -AI_CV_SpAtkUp_ScoreDown2: @ 82DCCAB - score -2 - -AI_CV_SpAtkUp_End: @ 82DCCAD - end - -AI_CV_SpDefUp: @ 82DCCAE - if_stat_level_less_than AI_USER, STAT_SPDEF, 9, AI_CV_SpDefUp2 - if_random_less_than 100, AI_CV_SpDefUp3 - score -1 - goto AI_CV_SpDefUp3 - -AI_CV_SpDefUp2: @ 82DCCC3 - if_hp_not_equal AI_USER, 100, AI_CV_SpDefUp3 - if_random_less_than 128, AI_CV_SpDefUp3 - score +2 - -AI_CV_SpDefUp3: @ 82DCCD2 - if_hp_less_than AI_USER, 70, AI_CV_SpDefUp4 - if_random_less_than 200, AI_CV_SpDefUp_End - -AI_CV_SpDefUp4: @ 82DCCDF - if_hp_less_than AI_USER, 40, AI_CV_SpDefUp_ScoreDown2 - get_last_used_bank_move AI_TARGET - get_move_power_from_result - if_equal 0, AI_CV_SpDefUp5 - get_last_used_bank_move AI_TARGET - get_move_split_from_result - if_not_equal SPLIT_SPECIAL, AI_CV_SpDefUp_ScoreDown2 - if_random_less_than 60, AI_CV_SpDefUp_End - -AI_CV_SpDefUp5: @ 82DCD01 - if_random_less_than 60, AI_CV_SpDefUp_End - -AI_CV_SpDefUp_ScoreDown2: @ 82DCD07 - score -2 - -AI_CV_SpDefUp_End: @ 82DCD09 - end - -AI_CV_AccuracyUp: - if_stat_level_less_than AI_USER, STAT_ACC, 9, AI_CV_AccuracyUp2 - if_random_less_than 50, AI_CV_AccuracyUp2 - score -2 - -AI_CV_AccuracyUp2: - if_hp_more_than AI_USER, 70, AI_CV_AccuracyUp_End - score -2 - -AI_CV_AccuracyUp_End: - end - -AI_CV_EvasionUp: - if_hp_less_than AI_USER, 90, AI_CV_EvasionUp2 - if_random_less_than 100, AI_CV_EvasionUp2 - score +3 - -AI_CV_EvasionUp2: - if_stat_level_less_than AI_USER, STAT_EVASION, 9, AI_CV_EvasionUp3 - if_random_less_than 128, AI_CV_EvasionUp3 - score -1 - -AI_CV_EvasionUp3: - if_not_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_EvasionUp5 - if_hp_more_than AI_USER, 50, AI_CV_EvasionUp4 - if_random_less_than 80, AI_CV_EvasionUp5 - -AI_CV_EvasionUp4: - if_random_less_than 50, AI_CV_EvasionUp5 - score +3 - -AI_CV_EvasionUp5: - if_not_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_EvasionUp6 - if_random_less_than 70, AI_CV_EvasionUp6 - score +3 - -AI_CV_EvasionUp6: - if_not_status3 AI_USER, STATUS3_ROOTED, AI_CV_EvasionUp7 - if_random_less_than 128, AI_CV_EvasionUp7 - score +2 - -AI_CV_EvasionUp7: - if_not_status2 AI_TARGET, STATUS2_CURSED, AI_CV_EvasionUp8 - if_random_less_than 70, AI_CV_EvasionUp8 - score +3 - -AI_CV_EvasionUp8: - if_hp_more_than AI_USER, 70, AI_CV_EvasionUp_End - if_stat_level_equal AI_USER, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CV_EvasionUp_End - if_hp_less_than AI_USER, 40, AI_CV_EvasionUp_ScoreDown2 - if_hp_less_than AI_TARGET, 40, AI_CV_EvasionUp_ScoreDown2 - if_random_less_than 70, AI_CV_EvasionUp_End - -AI_CV_EvasionUp_ScoreDown2: - score -2 - -AI_CV_EvasionUp_End: - end - -AI_CV_AlwaysHit: - if_stat_level_more_than AI_TARGET, STAT_EVASION, 10, AI_CV_AlwaysHit_ScoreUp1 - if_stat_level_less_than AI_USER, STAT_ACC, 2, AI_CV_AlwaysHit_ScoreUp1 - if_stat_level_more_than AI_TARGET, STAT_EVASION, 8, AI_CV_AlwaysHit2 - if_stat_level_less_than AI_USER, STAT_ACC, 4, AI_CV_AlwaysHit2 - goto AI_CV_AlwaysHit_End - -AI_CV_AlwaysHit_ScoreUp1: - score +1 - -AI_CV_AlwaysHit2: - if_random_less_than 100, AI_CV_AlwaysHit_End - score +1 - -AI_CV_AlwaysHit_End: - end - -AI_CV_AttackDown: @ 82DCDF8 - if_stat_level_equal AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_AttackDown3 - score -1 - if_hp_more_than AI_USER, 90, AI_CV_AttackDown2 - score -1 - -AI_CV_AttackDown2: @ 82DCE0B - if_stat_level_more_than AI_TARGET, STAT_ATK, 3, AI_CV_AttackDown3 - if_random_less_than 50, AI_CV_AttackDown3 - score -2 - -AI_CV_AttackDown3: @ 82DCE1B - if_hp_more_than AI_TARGET, 70, AI_CV_AttackDown4 - score -2 - -AI_CV_AttackDown4: @ 82DCE24 - get_target_type1 - if_in_bytes AI_CV_AttackDown_UnknownTypeList, AI_CV_AttackDown_End - get_target_type2 - if_in_bytes AI_CV_AttackDown_UnknownTypeList, AI_CV_AttackDown_End - if_random_less_than 50, AI_CV_AttackDown_End - score -2 - -AI_CV_AttackDown_End: @ 82DCE42 - end - -AI_CV_AttackDown_UnknownTypeList: - .byte TYPE_NORMAL - .byte TYPE_FIGHTING - .byte TYPE_GROUND - .byte TYPE_ROCK - .byte TYPE_BUG - .byte TYPE_STEEL - .byte -1 - -AI_CV_DefenseDown: - if_hp_less_than AI_USER, 70, AI_CV_DefenseDown2 - if_stat_level_more_than AI_TARGET, STAT_DEF, 3, AI_CV_DefenseDown3 - -AI_CV_DefenseDown2: - if_random_less_than 50, AI_CV_DefenseDown3 - score -2 - -AI_CV_DefenseDown3: - if_hp_more_than AI_TARGET, 70, AI_CV_DefenseDown_End - score -2 - -AI_CV_DefenseDown_End: - end - -AI_CV_SpeedDownFromChance: @ 82DCE6B - if_move MOVE_ICY_WIND, AI_CV_SpeedDown - if_move MOVE_ROCK_TOMB, AI_CV_SpeedDown - if_move MOVE_MUD_SHOT, AI_CV_SpeedDown - end - -AI_CV_SpeedDown: @ 82DCE81 - if_target_faster AI_CV_SpeedDown2 - score -3 - goto AI_CV_SpeedDown_End -AI_CV_SpeedDown2: @ 82DCE8E - if_random_less_than 70, AI_CV_SpeedDown_End - score +2 -AI_CV_SpeedDown_End: @ 82DCE96 - end - -AI_CV_SpAtkDown: - if_stat_level_equal AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_SpAtkDown3 - score -1 - if_hp_more_than AI_USER, 90, AI_CV_SpAtkDown2 - score -1 - -AI_CV_SpAtkDown2: - if_stat_level_more_than AI_TARGET, STAT_SPATK, 3, AI_CV_SpAtkDown3 - if_random_less_than 50, AI_CV_SpAtkDown3 - score -2 - -AI_CV_SpAtkDown3: - if_hp_more_than AI_TARGET, 70, AI_CV_SpAtkDown4 - score -2 - -AI_CV_SpAtkDown4: - get_target_type1 - if_in_bytes AI_CV_SpAtkDown_SpecialTypeList, AI_CV_SpAtkDown_End - get_target_type2 - if_in_bytes AI_CV_SpAtkDown_SpecialTypeList, AI_CV_SpAtkDown_End - if_random_less_than 50, AI_CV_SpAtkDown_End - score -2 - -AI_CV_SpAtkDown_End: @ 82DCEE1 - end - -AI_CV_SpAtkDown_SpecialTypeList: @ 82DCEE2 - .byte TYPE_FIRE - .byte TYPE_WATER - .byte TYPE_GRASS - .byte TYPE_ELECTRIC - .byte TYPE_PSYCHIC - .byte TYPE_ICE - .byte TYPE_DRAGON - .byte TYPE_DARK - .byte -1 - -AI_CV_SpDefDown: @ 82DCEEB - if_hp_less_than AI_USER, 70, AI_CV_SpDefDown2 - if_stat_level_more_than AI_TARGET, STAT_SPDEF, 3, AI_CV_SpDefDown3 - -AI_CV_SpDefDown2: @ 82DCEFA - if_random_less_than 50, AI_CV_SpDefDown3 - score -2 - -AI_CV_SpDefDown3: @ 82DCF02 - if_hp_more_than AI_TARGET, 70, AI_CV_SpDefDown_End - score -2 - -AI_CV_SpDefDown_End: @ 82DCF0B - end - -AI_CV_AccuracyDown: @ 82DCF0C - if_hp_less_than AI_USER, 70, AI_CV_AccuracyDown2 - if_hp_more_than AI_TARGET, 70, AI_CV_AccuracyDown3 - -AI_CV_AccuracyDown2: - if_random_less_than 100, AI_CV_AccuracyDown3 - score -1 - -AI_CV_AccuracyDown3: - if_stat_level_more_than AI_USER, STAT_ACC, 4, AI_CV_AccuracyDown4 - if_random_less_than 80, AI_CV_AccuracyDown4 - score -2 - -AI_CV_AccuracyDown4: - if_not_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_AccuracyDown5 - if_random_less_than 70, AI_CV_AccuracyDown5 - score +2 - -AI_CV_AccuracyDown5: - if_not_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_AccuracyDown6 - if_random_less_than 70, AI_CV_AccuracyDown6 - score +2 - -AI_CV_AccuracyDown6: - if_not_status3 AI_USER, STATUS3_ROOTED, AI_CV_AccuracyDown7 - if_random_less_than 128, AI_CV_AccuracyDown7 - score +1 - -AI_CV_AccuracyDown7: - if_not_status2 AI_TARGET, STATUS2_CURSED, AI_CV_AccuracyDown8 - if_random_less_than 70, AI_CV_AccuracyDown8 - score +2 - -AI_CV_AccuracyDown8: - if_hp_more_than AI_USER, 70, AI_CV_AccuracyDown_End - if_stat_level_equal AI_TARGET, STAT_ACC, DEFAULT_STAT_STAGE, AI_CV_AccuracyDown_End - if_hp_less_than AI_USER, 40, AI_CV_AccuracyDown_ScoreDown2 - if_hp_less_than AI_TARGET, 40, AI_CV_AccuracyDown_ScoreDown2 - if_random_less_than 70, AI_CV_AccuracyDown_End - -AI_CV_AccuracyDown_ScoreDown2: - score -2 - -AI_CV_AccuracyDown_End: - end - -AI_CV_EvasionDown: - if_hp_less_than AI_USER, 70, AI_CV_EvasionDown2 - if_stat_level_more_than AI_TARGET, STAT_EVASION, 3, AI_CV_EvasionDown3 -AI_CV_EvasionDown2: - if_random_less_than 50, AI_CV_EvasionDown3 - score -2 -AI_CV_EvasionDown3: - if_hp_more_than AI_TARGET, 70, AI_CV_EvasionDown_4 - score -2 -AI_CV_EvasionDown_4: - if_stat_level_less_than AI_USER, STAT_ACC, 6, AI_CV_EvasionDown_5 - if_stat_level_less_than AI_TARGET, STAT_EVASION, 7, AI_CV_EvasionDown_6 - if_ability AI_USER, ABILITY_NO_GUARD, AI_CV_EvasionDown_6 -AI_CV_EvasionDown_End: - end -AI_CV_EvasionDown_5: - score +1 - goto AI_CV_EvasionDown_End -AI_CV_EvasionDown_6: - score -2 - goto AI_CV_EvasionDown_End - -AI_CV_Haze: - if_stat_level_more_than AI_USER, STAT_ATK, 8, AI_CV_Haze2 - if_stat_level_more_than AI_USER, STAT_DEF, 8, AI_CV_Haze2 - if_stat_level_more_than AI_USER, STAT_SPATK, 8, AI_CV_Haze2 - if_stat_level_more_than AI_USER, STAT_SPDEF, 8, AI_CV_Haze2 - if_stat_level_more_than AI_USER, STAT_EVASION, 8, AI_CV_Haze2 - if_stat_level_less_than AI_TARGET, STAT_ATK, 4, AI_CV_Haze2 - if_stat_level_less_than AI_TARGET, STAT_DEF, 4, AI_CV_Haze2 - if_stat_level_less_than AI_TARGET, STAT_SPATK, 4, AI_CV_Haze2 - if_stat_level_less_than AI_TARGET, STAT_SPDEF, 4, AI_CV_Haze2 - if_stat_level_less_than AI_TARGET, STAT_ACC, 4, AI_CV_Haze2 - goto AI_CV_Haze3 - -AI_CV_Haze2: - if_random_less_than 50, AI_CV_Haze3 - score -3 - -AI_CV_Haze3: - if_stat_level_more_than AI_TARGET, STAT_ATK, 8, AI_CV_Haze4 - if_stat_level_more_than AI_TARGET, STAT_DEF, 8, AI_CV_Haze4 - if_stat_level_more_than AI_TARGET, STAT_SPATK, 8, AI_CV_Haze4 - if_stat_level_more_than AI_TARGET, STAT_SPDEF, 8, AI_CV_Haze4 - if_stat_level_more_than AI_TARGET, STAT_EVASION, 8, AI_CV_Haze4 - if_stat_level_less_than AI_USER, STAT_ATK, 4, AI_CV_Haze4 - if_stat_level_less_than AI_USER, STAT_DEF, 4, AI_CV_Haze4 - if_stat_level_less_than AI_USER, STAT_SPATK, 4, AI_CV_Haze4 - if_stat_level_less_than AI_USER, STAT_SPDEF, 4, AI_CV_Haze4 - if_stat_level_less_than AI_USER, STAT_ACC, 4, AI_CV_Haze4 - if_random_less_than 50, AI_CV_Haze_End - score -1 - goto AI_CV_Haze_End - -AI_CV_Haze4: - if_random_less_than 50, AI_CV_Haze_End - score +3 - -AI_CV_Haze_End: - end - -AI_CV_Bide: - if_hp_more_than AI_USER, 90, AI_CV_Bide_End - score -2 - -AI_CV_Bide_End: - end - -AI_CV_Roar: - if_stat_level_more_than AI_TARGET, STAT_ATK, 8, AI_CV_Roar2 - if_stat_level_more_than AI_TARGET, STAT_DEF, 8, AI_CV_Roar2 - if_stat_level_more_than AI_TARGET, STAT_SPATK, 8, AI_CV_Roar2 - if_stat_level_more_than AI_TARGET, STAT_SPDEF, 8, AI_CV_Roar2 - if_stat_level_more_than AI_TARGET, STAT_EVASION, 8, AI_CV_Roar2 - score -3 - goto AI_CV_Roar_End - -AI_CV_Roar2: - if_random_less_than 128, AI_CV_Roar_End - score +2 - -AI_CV_Roar_End: - end - -AI_CV_Conversion: - if_hp_more_than AI_USER, 90, AI_CV_Conversion2 - score -2 - -AI_CV_Conversion2: - get_turn_count - if_equal 0, AI_CV_Conversion_End - if_random_less_than 200, Score_Minus2 - -AI_CV_Conversion_End: - end - -AI_CV_HealWeather: - get_weather - if_equal AI_WEATHER_HAIL, AI_CV_HealWeather_ScoreDown2 - if_equal AI_WEATHER_RAIN, AI_CV_HealWeather_ScoreDown2 - if_equal AI_WEATHER_SANDSTORM, AI_CV_HealWeather_ScoreDown2 - goto AI_CV_Heal - -AI_CV_HealWeather_ScoreDown2: - score -2 - -AI_CV_Heal: - if_hp_equal AI_USER, 100, AI_CV_Heal3 - if_target_faster AI_CV_Heal4 - score -8 - goto AI_CV_Heal_End - -AI_CV_Heal2: - if_hp_less_than AI_USER, 50, AI_CV_Heal5 - if_hp_more_than AI_USER, 80, AI_CV_Heal3 - if_random_less_than 70, AI_CV_Heal5 - -AI_CV_Heal3: - score -3 - goto AI_CV_Heal_End - -AI_CV_Heal4: - if_hp_less_than AI_USER, 70, AI_CV_Heal5 - if_random_less_than 30, AI_CV_Heal5 - score -3 - goto AI_CV_Heal_End - -AI_CV_Heal5: - if_doesnt_have_move_with_effect AI_TARGET, EFFECT_SNATCH, AI_CV_Heal6 - if_random_less_than 100, AI_CV_Heal_End - -AI_CV_Heal6: - if_random_less_than 20, AI_CV_Heal_End - score +2 - -AI_CV_Heal_End: - end - -EncouragePsnVenoshock: - if_doesnt_have_move_with_effect AI_USER, EFFECT_VENOSHOCK, EncouragePsnVenoshockEnd - score +1 - if_random_less_than 128, EncouragePsnVenoshockEnd - score +1 -EncouragePsnVenoshockEnd: - end - -AI_CV_Toxic: - call EncouragePsnVenoshock -AI_CV_LeechSeed: - if_user_has_no_attacking_moves AI_CV_Toxic3 - if_hp_more_than AI_USER, 50, AI_CV_Toxic2 - if_random_less_than 50, AI_CV_Toxic2 - score -3 -AI_CV_Toxic2: - if_hp_more_than AI_TARGET, 50, AI_CV_Toxic3 - if_random_less_than 50, AI_CV_Toxic3 - score -3 -AI_CV_Toxic3: - if_has_move_with_effect AI_USER, EFFECT_SPECIAL_DEFENSE_UP, AI_CV_Toxic4 - if_has_move_with_effect AI_USER, EFFECT_PROTECT, AI_CV_Toxic4 - goto AI_CV_Toxic_End -AI_CV_Toxic4: - if_random_less_than 60, AI_CV_Toxic_End - score +2 -AI_CV_Toxic_End: - end - -AI_CV_LightScreen: - call EncourageLightClay - if_hp_less_than AI_USER, 50, AI_CV_LightScreen_ScoreDown2 - get_target_type1 - if_in_bytes AI_CV_LightScreen_SpecialTypeList, AI_CV_LightScreen_End - get_target_type2 - if_in_bytes AI_CV_LightScreen_SpecialTypeList, AI_CV_LightScreen_End - if_random_less_than 50, AI_CV_LightScreen_End -AI_CV_LightScreen_ScoreDown2: - score -2 -AI_CV_LightScreen_End: - end - -AI_CV_LightScreen_SpecialTypeList: - .byte TYPE_FIRE - .byte TYPE_WATER - .byte TYPE_GRASS - .byte TYPE_ELECTRIC - .byte TYPE_PSYCHIC - .byte TYPE_ICE - .byte TYPE_DRAGON - .byte TYPE_DARK - .byte -1 - -AI_CV_Rest: - if_target_faster AI_CV_Rest4 - if_hp_not_equal AI_USER, 100, AI_CV_Rest2 - score -8 - goto AI_CV_Rest_End - -AI_CV_Rest2: - if_hp_less_than AI_USER, 40, AI_CV_Rest6 - if_hp_more_than AI_USER, 50, AI_CV_Rest3 - if_random_less_than 70, AI_CV_Rest6 - -AI_CV_Rest3: - score -3 - goto AI_CV_Rest_End - -AI_CV_Rest4: - if_hp_less_than AI_USER, 60, AI_CV_Rest6 - if_hp_more_than AI_USER, 70, AI_CV_Rest5 - if_random_less_than 50, AI_CV_Rest6 - -AI_CV_Rest5: - score -3 - goto AI_CV_Rest_End - -AI_CV_Rest6: - if_doesnt_have_move_with_effect AI_TARGET, EFFECT_SNATCH, AI_CV_Rest7 - if_random_less_than 50, AI_CV_Rest_End - -AI_CV_Rest7: - if_random_less_than 10, AI_CV_Rest_End - score +3 - -AI_CV_Rest_End: - end - -AI_CV_OneHitKO: - if_status3 AI_TARGET, STATUS3_ALWAYS_HITS, Score_Plus5 - end - -AI_CV_SuperFang: - if_hp_more_than AI_TARGET, 50, AI_CV_SuperFang_End - score -1 - -AI_CV_SuperFang_End: - end - -AI_CV_Trap: - if_status2 AI_TARGET, STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION, AI_CV_TrapEnd - if_status3 AI_TARGET, STATUS3_PERISH_SONG, AI_CV_Trap5 - if_doesnt_have_move_with_effect AI_USER, EFFECT_PERISH_SONG, AI_CV_Trap1 - score +3 -AI_CV_Trap1: - if_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_Trap2 - if_status2 AI_TARGET, STATUS2_CURSED | STATUS2_INFATUATION, AI_CV_Trap2 - goto AI_CV_TrapItem -AI_CV_Trap5: - score +2 - goto AI_CV_TrapItem -AI_CV_Trap2: - if_random_less_than 128, AI_CV_TrapItem - score +1 -AI_CV_TrapItem: - get_considered_move_power - if_equal 0, AI_CV_TrapEnd - if_status2 AI_TARGET, STATUS2_WRAPPED, AI_CV_TrapEnd - get_hold_effect AI_USER - if_equal HOLD_EFFECT_GRIP_CLAW AI_CV_Trap4 - if_equal HOLD_EFFECT_BINDING_BAND AI_CV_Trap4 - goto AI_CV_TrapEnd -AI_CV_Trap4: - score +2 -AI_CV_TrapEnd: - end - -AI_CV_HighCrit: - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_HighCrit_End - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_HighCrit_End - if_type_effectiveness AI_EFFECTIVENESS_x2, AI_CV_HighCrit2 - if_type_effectiveness AI_EFFECTIVENESS_x4, AI_CV_HighCrit2 - if_random_less_than 128, AI_CV_HighCrit_End - -AI_CV_HighCrit2: - if_random_less_than 128, AI_CV_HighCrit_End - score +1 - -AI_CV_HighCrit_End: - end - -AI_CV_FocusEnergy: - if_has_move_with_flag AI_USER, FLAG_HIGH_CRIT, AI_CV_FocusEnergy2 -AI_CV_FocusEnergy3: - get_hold_effect AI_USER - if_not_equal HOLD_EFFECT_SCOPE_LENS, AI_CV_FocusEnergyEnd - score +1 -AI_CV_FocusEnergyEnd: - end -AI_CV_FocusEnergy2: - score +1 - goto AI_CV_FocusEnergy3 - -AI_CV_Swagger: - if_doesnt_have_move_with_effect AI_USER, EFFECT_FOUL_PLAY, AI_CV_Swagger2 - score +1 -AI_CV_Swagger2: - if_has_move AI_USER, MOVE_PSYCH_UP, AI_CV_SwaggerHasPsychUp - -AI_CV_Flatter: - if_random_less_than 128, AI_CV_Confuse - score +1 - -AI_CV_Confuse: - if_hp_more_than AI_TARGET, 70, AI_CV_Confuse_End - if_random_less_than 128, AI_CV_Confuse2 - score -1 - -AI_CV_Confuse2: - if_hp_more_than AI_TARGET, 50, AI_CV_Confuse_End - score -1 - if_hp_more_than AI_TARGET, 30, AI_CV_Confuse_End - score -1 - -AI_CV_Confuse_End: - end - -AI_CV_SwaggerHasPsychUp: - if_stat_level_more_than AI_TARGET, STAT_ATK, 3, AI_CV_SwaggerHasPsychUp_Minus5 - score +3 - get_turn_count - if_not_equal 0, AI_CV_SwaggerHasPsychUp_End - score +2 - goto AI_CV_SwaggerHasPsychUp_End - -AI_CV_SwaggerHasPsychUp_Minus5: - score -5 - -AI_CV_SwaggerHasPsychUp_End: - end - -EncourageLightClay: - get_hold_effect AI_USER - if_not_equal HOLD_EFFECT_LIGHT_CLAY, EncourageLightClayEnd - score +1 - if_random_less_than 111, EncourageLightClayEnd - score +1 -EncourageLightClayEnd: - end - -AI_CV_AuroraVeil: - call EncourageLightClay - end - -AI_CV_Reflect: - call EncourageLightClay - if_hp_less_than AI_USER, 50, AI_CV_Reflect_ScoreDown2 - get_target_type1 - if_in_bytes AI_CV_Reflect_PhysicalTypeList, AI_CV_Reflect_End - get_target_type2 - if_in_bytes AI_CV_Reflect_PhysicalTypeList, AI_CV_Reflect_End - if_random_less_than 50, AI_CV_Reflect_End -AI_CV_Reflect_ScoreDown2: - score -2 -AI_CV_Reflect_End: - end - -AI_CV_Reflect_PhysicalTypeList: - .byte TYPE_NORMAL - .byte TYPE_FIGHTING - .byte TYPE_FLYING - .byte TYPE_POISON - .byte TYPE_GROUND - .byte TYPE_ROCK - .byte TYPE_BUG - .byte TYPE_GHOST - .byte TYPE_STEEL - .byte -1 - -AI_CV_ToxicThread: - if_status AI_TARGET, STATUS1_ANY, AI_CV_ToxicThreadSpd - call EncouragePsnVenoshock -AI_CV_ToxicThreadSpd: - if_target_faster AI_CV_ToxicThread2 - if_not_status AI_TARGET, STATUS1_ANY, AI_CV_ToxicThread3 - score -1 - goto AI_CV_ToxicThread3 -AI_CV_ToxicThread2: - score +1 -AI_CV_ToxicThread3: - goto AI_CV_Poison2 - -AI_CV_Poison: - call EncouragePsnVenoshock -AI_CV_Poison2: - if_hp_less_than AI_USER, 50, AI_CV_Poison_ScoreDown1 - if_hp_more_than AI_TARGET, 50, AI_CV_Poison_End -AI_CV_Poison_ScoreDown1: - score -1 -AI_CV_Poison_End: - end - -AI_CV_Paralyze: - if_target_faster AI_CV_Paralyze2 - if_hp_more_than AI_USER, 70, AI_CV_Paralyze_End - score -1 - goto AI_CV_Paralyze_End - -AI_CV_Paralyze2: - if_random_less_than 20, AI_CV_Paralyze_End - score +3 - -AI_CV_Paralyze_End: - end - -AI_CV_VitalThrow: - if_target_faster AI_CV_VitalThrow_End - if_hp_more_than AI_USER, 60, AI_CV_VitalThrow_End - if_hp_less_than AI_USER, 40, AI_CV_VitalThrow2 - if_random_less_than 180, AI_CV_VitalThrow_End - -AI_CV_VitalThrow2: - if_random_less_than 50, AI_CV_VitalThrow_End - score -1 - -AI_CV_VitalThrow_End: - end - -AI_CV_Substitute: - if_not_status2 AI_TARGET, STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION, AI_CV_Substitute1 - if_status3 AI_TARGET, STATUS3_PERISH_SONG, AI_CV_SubstitutePlus3Continue - if_status AI_TARGET, STATUS1_BURN | STATUS1_PSN_ANY, AI_CV_SubstitutePlus1Continue - goto AI_CV_Substitute1 -AI_CV_SubstitutePlus1Continue: - score +1 - goto AI_CV_Substitute1 -AI_CV_SubstitutePlus3Continue: - score +3 -AI_CV_Substitute1: - if_hp_more_than AI_USER, 90, AI_CV_Substitute4 - if_hp_more_than AI_USER, 70, AI_CV_Substitute3 - if_hp_more_than AI_USER, 50, AI_CV_Substitute2 - if_random_less_than 100, AI_CV_Substitute2 - score -1 -AI_CV_Substitute2: - if_random_less_than 100, AI_CV_Substitute3 - score -1 -AI_CV_Substitute3: - if_random_less_than 100, AI_CV_Substitute4 - score -1 -AI_CV_Substitute4: - if_target_faster AI_CV_Substitute_End - get_last_used_bank_move AI_TARGET - get_move_effect_from_result - if_equal EFFECT_SLEEP, AI_CV_Substitute5 - if_equal EFFECT_TOXIC, AI_CV_Substitute5 - if_equal EFFECT_POISON, AI_CV_Substitute5 - if_equal EFFECT_PARALYZE, AI_CV_Substitute5 - if_equal EFFECT_WILL_O_WISP, AI_CV_Substitute5 - if_equal EFFECT_CONFUSE, AI_CV_Substitute6 - if_equal EFFECT_LEECH_SEED, AI_CV_Substitute7 - goto AI_CV_Substitute_End -AI_CV_Substitute5: - if_not_status AI_TARGET, STATUS1_ANY, AI_CV_Substitute8 - goto AI_CV_Substitute_End -AI_CV_Substitute6: - if_not_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_Substitute8 - goto AI_CV_Substitute_End -AI_CV_Substitute7: - if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_Substitute_End -AI_CV_Substitute8: - if_random_less_than 100, AI_CV_Substitute_End - score +1 -AI_CV_Substitute_End: - end - -AI_CV_Recharge: - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Recharge_ScoreDown1 - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Recharge_ScoreDown1 - if_target_faster AI_CV_Recharge2 - if_hp_more_than AI_USER, 40, AI_CV_Recharge_ScoreDown1 - goto AI_CV_Recharge_End - -AI_CV_Recharge2: - if_hp_less_than AI_USER, 60, AI_CV_Recharge_End - -AI_CV_Recharge_ScoreDown1: - score -1 - -AI_CV_Recharge_End: - end - -AI_CV_Disable: - if_target_faster AI_CV_Disable_End - get_last_used_bank_move AI_TARGET - get_move_power_from_result - if_equal 0, AI_CV_Disable2 - score +1 - goto AI_CV_Disable_End - -AI_CV_Disable2: - if_random_less_than 100, AI_CV_Disable_End - score -1 - -AI_CV_Disable_End: - end - -AI_CV_Counter: - if_status AI_TARGET, STATUS1_SLEEP, AI_CV_Counter_ScoreDown1 - if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_Counter_ScoreDown1 - if_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_Counter_ScoreDown1 - if_hp_more_than AI_USER, 30, AI_CV_Counter2 - if_random_less_than 10, AI_CV_Counter2 - score -1 - -AI_CV_Counter2: - if_hp_more_than AI_USER, 50, AI_CV_Counter3 - if_random_less_than 100, AI_CV_Counter3 - score -1 - -AI_CV_Counter3: - if_has_move AI_USER, MOVE_MIRROR_COAT, AI_CV_Counter7 - get_last_used_bank_move AI_TARGET - get_move_power_from_result - if_equal 0, AI_CV_Counter5 - if_target_not_taunted AI_CV_Counter4 - if_random_less_than 100, AI_CV_Counter4 - score +1 - -AI_CV_Counter4: - get_last_used_bank_move AI_TARGET - get_move_split_from_result - if_not_equal SPLIT_PHYSICAL, AI_CV_Counter_ScoreDown1 - if_random_less_than 100, AI_CV_Counter_End - score +1 - goto AI_CV_Counter_End - -AI_CV_Counter5: - if_target_not_taunted AI_CV_Counter6 - if_random_less_than 100, AI_CV_Counter6 - score +1 - -AI_CV_Counter6: - if_has_no_physical_move AI_TARGET, AI_CV_Counter_ScoreDown1 - if_random_less_than 50, AI_CV_Counter_End - -AI_CV_Counter7: - if_random_less_than 100, AI_CV_Counter8 - score +4 - -AI_CV_Counter8: - end - -AI_CV_Counter_ScoreDown1: - score -1 - -AI_CV_Counter_End: - end - -AI_CV_Encore: - if_any_move_disabled AI_TARGET, AI_CV_Encore2 - if_target_faster AI_CV_Encore_ScoreDown2 - get_last_used_bank_move AI_TARGET - get_move_effect_from_result - if_not_in_bytes AI_CV_Encore_EncouragedMovesToEncore, AI_CV_Encore_ScoreDown2 - -AI_CV_Encore2: - if_random_less_than 30, AI_CV_Encore_End - score +3 - goto AI_CV_Encore_End - -AI_CV_Encore_ScoreDown2: - score -2 - -AI_CV_Encore_End: - end - -AI_CV_Encore_EncouragedMovesToEncore: - .byte EFFECT_DREAM_EATER - .byte EFFECT_ATTACK_UP - .byte EFFECT_DEFENSE_UP - .byte EFFECT_SPEED_UP - .byte EFFECT_SPECIAL_ATTACK_UP - .byte EFFECT_HAZE - .byte EFFECT_ROAR - .byte EFFECT_CONVERSION - .byte EFFECT_TOXIC - .byte EFFECT_LIGHT_SCREEN - .byte EFFECT_REST - .byte EFFECT_SUPER_FANG - .byte EFFECT_SPECIAL_DEFENSE_UP_2 - .byte EFFECT_CONFUSE - .byte EFFECT_POISON - .byte EFFECT_PARALYZE - .byte EFFECT_LEECH_SEED - .byte EFFECT_DO_NOTHING - .byte EFFECT_ATTACK_UP_2 - .byte EFFECT_ENCORE - .byte EFFECT_CONVERSION_2 - .byte EFFECT_LOCK_ON - .byte EFFECT_HEAL_BELL - .byte EFFECT_MEAN_LOOK - .byte EFFECT_NIGHTMARE - .byte EFFECT_PROTECT - .byte EFFECT_SKILL_SWAP - .byte EFFECT_FORESIGHT - .byte EFFECT_PERISH_SONG - .byte EFFECT_SANDSTORM - .byte EFFECT_ENDURE - .byte EFFECT_SWAGGER - .byte EFFECT_ATTRACT - .byte EFFECT_SAFEGUARD - .byte EFFECT_RAIN_DANCE - .byte EFFECT_SUNNY_DAY - .byte EFFECT_BELLY_DRUM - .byte EFFECT_PSYCH_UP - .byte EFFECT_FUTURE_SIGHT - .byte EFFECT_FAKE_OUT - .byte EFFECT_STOCKPILE - .byte EFFECT_SPIT_UP - .byte EFFECT_SWALLOW - .byte EFFECT_HAIL - .byte EFFECT_TORMENT - .byte EFFECT_WILL_O_WISP - .byte EFFECT_FOLLOW_ME - .byte EFFECT_CHARGE - .byte EFFECT_TRICK - .byte EFFECT_ROLE_PLAY - .byte EFFECT_INGRAIN - .byte EFFECT_RECYCLE - .byte EFFECT_KNOCK_OFF - .byte EFFECT_SKILL_SWAP - .byte EFFECT_IMPRISON - .byte EFFECT_REFRESH - .byte EFFECT_GRUDGE - .byte EFFECT_TEETER_DANCE - .byte EFFECT_MUD_SPORT - .byte EFFECT_WATER_SPORT - .byte EFFECT_DRAGON_DANCE - .byte EFFECT_CAMOUFLAGE - .byte -1 - -AI_CV_PainSplit: - if_hp_less_than AI_TARGET, 80, AI_CV_PainSplit_ScoreDown1 - if_target_faster AI_CV_PainSplit2 - if_hp_more_than AI_USER, 40, AI_CV_PainSplit_ScoreDown1 - score +1 - goto AI_CV_PainSplit_End - -AI_CV_PainSplit2: - if_hp_more_than AI_USER, 60, AI_CV_PainSplit_ScoreDown1 - score +1 - goto AI_CV_PainSplit_End - -AI_CV_PainSplit_ScoreDown1: - score -1 - -AI_CV_PainSplit_End: - end - -AI_EncourageIfHasOHKO: - if_level_cond 1, AI_EncourageIfHasOHKORet - if_has_move_with_effect AI_USER, EFFECT_OHKO, Score_Plus3 -AI_EncourageIfHasOHKORet: - end - -AI_EncourageIfHasLowAccuracyMove: - if_ability AI_USER, ABILITY_COMPOUND_EYES, AI_EncourageIfHasVeryLowAccuracyMove - get_hold_effect AI_USER - if_equal HOLD_EFFECT_WIDE_LENS, AI_EncourageIfHasVeryLowAccuracyMove - if_equal HOLD_EFFECT_ZOOM_LENS, AI_EncourageIfHasVeryLowAccuracyMove - if_has_move_with_accuracy_lt AI_USER, 86, Score_Plus3 - if_has_move_with_accuracy_lt AI_USER, 91, Score_Plus1 - goto Score_Minus1 -AI_EncourageIfHasVeryLowAccuracyMove: - if_has_move_with_accuracy_lt AI_USER, 81, Score_Plus3 - if_has_move_with_accuracy_lt AI_USER, 86, Score_Plus1 - goto Score_Minus1 - -AI_CV_LockOn: - call AI_EncourageIfHasOHKO - call AI_EncourageIfHasLowAccuracyMove -AI_CV_LockOn2: - if_random_less_than 128, AI_CV_LockOn_End - score +1 - -AI_CV_LockOn_End: - end - -AI_CV_SleepTalk: - is_wakeup_turn AI_USER - if_equal 1, Score_Minus5 - if_status AI_USER, STATUS1_SLEEP, Score_Plus10 - score -5 - end - -AI_CV_DestinyBond: - score -1 - if_target_faster AI_CV_DestinyBond_End - if_hp_more_than AI_USER, 70, AI_CV_DestinyBond_End - if_random_less_than 128, AI_CV_DestinyBond2 - score +1 - -AI_CV_DestinyBond2: - if_hp_more_than AI_USER, 50, AI_CV_DestinyBond_End - if_random_less_than 128, AI_CV_DestinyBond3 - score +1 - -AI_CV_DestinyBond3: - if_hp_more_than AI_USER, 30, AI_CV_DestinyBond_End - if_random_less_than 100, AI_CV_DestinyBond_End - score +2 - -AI_CV_DestinyBond_End: - end - -AI_CV_Flail: - if_target_faster AI_CV_Flail2 - if_hp_more_than AI_USER, 33, AI_CV_Flail_ScoreDown1 - if_hp_more_than AI_USER, 20, AI_CV_Flail_End - if_hp_less_than AI_USER, 8, AI_CV_Flail_ScoreUp1 - goto AI_CV_Flail3 - -AI_CV_Flail2: - if_hp_more_than AI_USER, 60, AI_CV_Flail_ScoreDown1 - if_hp_more_than AI_USER, 40, AI_CV_Flail_End - goto AI_CV_Flail3 - -AI_CV_Flail_ScoreUp1: - score +1 - -AI_CV_Flail3: - if_random_less_than 100, AI_CV_Flail_End - score +1 - goto AI_CV_Flail_End - -AI_CV_Flail_ScoreDown1: - score -1 - -AI_CV_Flail_End: - end - -AI_CV_HealBell: - if_move MOVE_HEAL_BELL AI_CV_HealBell2 -AI_CV_HealBellEnd: - end -@ Don't use Heal Bell to heal a partner that has Soundproof -AI_CV_HealBell2: - if_status AI_USER, STATUS1_ANY, AI_CV_HealBellEnd - if_not_status AI_USER_PARTNER, STATUS1_ANY, AI_CV_HealBellEnd - if_ability AI_USER_PARTNER, ABILITY_SOUNDPROOF, Score_Minus3 - goto AI_CV_HealBellEnd - -AI_CV_Thief: - get_hold_effect AI_TARGET - if_not_in_bytes AI_CV_Thief_EncourageItemsToSteal, AI_CV_Thief_ScoreDown2 - if_random_less_than 50, AI_CV_Thief_End - score +1 - goto AI_CV_Thief_End - -AI_CV_Thief_ScoreDown2: - score -2 - -AI_CV_Thief_End: - end - -AI_CV_Thief_EncourageItemsToSteal: - .byte HOLD_EFFECT_CURE_SLP - .byte HOLD_EFFECT_CURE_STATUS - .byte HOLD_EFFECT_RESTORE_HP - .byte HOLD_EFFECT_EVASION_UP - .byte HOLD_EFFECT_LEFTOVERS - .byte HOLD_EFFECT_LIGHT_BALL - .byte HOLD_EFFECT_THICK_CLUB - .byte -1 - -AI_CV_Curse: - if_type AI_USER, TYPE_GHOST, AI_CV_CurseGhost - if_stat_level_more_than AI_USER, STAT_DEF, 9, AI_CV_Curse2 - if_random_less_than 128, AI_CV_Curse2 - score +1 -AI_CV_Curse2: - if_stat_level_more_than AI_USER, STAT_ATK, 9, AI_CV_Curse3 - if_random_less_than 128, AI_CV_Curse3 - score +1 -AI_CV_Curse3: - if_stat_level_more_than AI_USER, STAT_DEF, 6, AI_CV_Curse4 - if_random_less_than 98, AI_CV_Curse4 - score +1 -AI_CV_Curse4: - if_stat_level_more_than AI_USER, STAT_ATK, 6, AI_CV_Curse5 - if_random_less_than 99, AI_CV_Curse5 - score +1 -AI_CV_Curse5: - get_hold_effect AI_USER - if_not_equal HOLD_EFFECT_RESTORE_STATS, AI_CV_Curse_End - score +2 - goto AI_CV_Curse_End -AI_CV_CurseGhost: - if_hp_more_than AI_USER, 80, AI_CV_Curse_End - score -1 -AI_CV_Curse_End: - end - -AI_CV_Protect: - get_protect_count AI_USER - if_more_than 1, AI_CV_Protect_ScoreDown2 - if_status AI_USER, STATUS1_PSN_ANY | STATUS1_BURN, AI_CV_ProtectUserStatused - if_status2 AI_USER, STATUS2_CURSED | STATUS2_INFATUATION, AI_CV_ProtectUserStatused - if_status3 AI_USER, STATUS3_PERISH_SONG | STATUS3_LEECHSEED | STATUS3_YAWN, AI_CV_ProtectUserStatused - if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, AI_CV_Protect3 - if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, AI_CV_Protect3 - if_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_Protect_ScoreUp2 - if_status2 AI_TARGET, STATUS2_CURSED | STATUS2_INFATUATION, AI_CV_Protect_ScoreUp2 - if_status3 AI_TARGET, STATUS3_PERISH_SONG | STATUS3_LEECHSEED | STATUS3_YAWN, AI_CV_Protect_ScoreUp2 - get_last_used_bank_move AI_TARGET - get_move_effect_from_result - if_not_equal EFFECT_LOCK_ON, AI_CV_Protect_ScoreUp2 - goto AI_CV_Protect2 -AI_CV_Protect_ScoreUp2: - score +2 -AI_CV_Protect2: - if_random_less_than 128, AI_CV_Protect4 - score -1 -AI_CV_Protect4: - get_protect_count AI_USER - if_equal 0, AI_CV_Protect_End - score -1 - if_random_less_than 128, AI_CV_Protect_End - score -1 - goto AI_CV_Protect_End -AI_CV_ProtectUserStatused: - score -1 - if_double_battle AI_CV_Protect4 - score -1 - goto AI_CV_Protect4 -AI_CV_Protect3: - get_last_used_bank_move AI_TARGET - get_move_effect_from_result - if_not_equal EFFECT_LOCK_ON, AI_CV_Protect_End -AI_CV_Protect_ScoreDown2: - score -2 -AI_CV_Protect_End: - end - -AI_CV_Foresight: - if_has_move_with_type AI_USER, TYPE_NORMAL, AI_CV_ForesightGhost - if_has_move_with_type AI_USER, TYPE_FIGHTING, AI_CV_ForesightGhost - goto AI_CV_ForesightEvs -AI_CV_ForesightGhost: - if_type AI_USER, TYPE_GHOST, AI_CV_Foresight2 -AI_CV_ForesightEvs: - if_stat_level_more_than AI_USER, STAT_EVASION, 8, AI_CV_Foresight3 - score -3 - goto AI_CV_Foresight_End -AI_CV_Foresight2: - if_random_less_than 80, AI_CV_Foresight_End -AI_CV_Foresight3: - if_random_less_than 80, AI_CV_Foresight_End - score +2 -AI_CV_Foresight_End: - end - -AI_CV_Endure: - get_protect_count AI_USER - if_more_than 1, AI_CV_Endure2 - if_hp_less_than AI_USER, 8, AI_CV_Endure2 - if_hp_less_than AI_USER, 14, AI_CV_Endure4 - if_hp_less_than AI_USER, 35, AI_CV_Endure3 - if_doesnt_have_move_with_effect AI_USER, EFFECT_FLAIL, AI_CV_Endure2 - score +1 - goto AI_CV_Endure_End -AI_CV_Endure2: - score -3 - goto AI_CV_Endure_End -AI_CV_Endure4: - score -1 - goto AI_CV_Endure_End -AI_CV_Endure3: - if_has_move_with_effect AI_USER, EFFECT_FLAIL, Score_Plus2 - if_random_less_than 70, AI_CV_Endure_End - score +1 -AI_CV_Endure_End: - end - -AI_CV_BatonPass: - if_stat_level_more_than AI_USER, STAT_ATK, 8, AI_CV_BatonPass2 - if_stat_level_more_than AI_USER, STAT_DEF, 8, AI_CV_BatonPass2 - if_stat_level_more_than AI_USER, STAT_SPATK, 8, AI_CV_BatonPass2 - if_stat_level_more_than AI_USER, STAT_SPDEF, 8, AI_CV_BatonPass2 - if_stat_level_more_than AI_USER, STAT_EVASION, 8, AI_CV_BatonPass2 - goto AI_CV_BatonPass5 -AI_CV_BatonPass2: - if_target_faster AI_CV_BatonPass3 - if_hp_more_than AI_USER, 60, AI_CV_BatonPass_Last - goto AI_CV_BatonPass4 -AI_CV_BatonPass3: - if_hp_more_than AI_USER, 70, AI_CV_BatonPass_Last -AI_CV_BatonPass4: - if_random_less_than 80, AI_CV_BatonPass_Last - score +2 - goto AI_CV_BatonPass_Last -AI_CV_BatonPass5: - if_stat_level_more_than AI_USER, STAT_ATK, 7, AI_CV_BatonPass7 - if_stat_level_more_than AI_USER, STAT_DEF, 7, AI_CV_BatonPass7 - if_stat_level_more_than AI_USER, STAT_SPATK, 7, AI_CV_BatonPass7 - if_stat_level_more_than AI_USER, STAT_SPDEF, 7, AI_CV_BatonPass7 - if_stat_level_more_than AI_USER, STAT_EVASION, 7, AI_CV_BatonPass7 - goto AI_CV_BatonPass_ScoreDown2 -AI_CV_BatonPass7: - if_target_faster AI_CV_BatonPass8 - if_ai_can_go_down AI_CV_BatonPass4 - if_hp_more_than AI_USER, 60, AI_CV_BatonPass_ScoreDown2 - goto AI_CV_BatonPass_Last -AI_CV_BatonPass8: - if_ai_can_go_down AI_CV_BatonPass_ScoreDown2 - if_hp_less_than AI_USER, 70, AI_CV_BatonPass_Last - goto AI_CV_BatonPass_ScoreDown2 -AI_CV_BatonPass9: - if_stat_level_more_than AI_USER, STAT_ATK, 6, AI_CV_BatonPass10 - if_stat_level_more_than AI_USER, STAT_DEF, 6, AI_CV_BatonPass10 - if_stat_level_more_than AI_USER, STAT_SPATK, 6, AI_CV_BatonPass10 - if_stat_level_more_than AI_USER, STAT_SPDEF, 6, AI_CV_BatonPass10 - if_stat_level_more_than AI_USER, STAT_EVASION, 6, AI_CV_BatonPass10 - goto AI_CV_BatonPass_ScoreDown2 -AI_CV_BatonPass10: - if_target_faster AI_CV_BatonPass11 - if_ai_can_go_down AI_CV_BatonPass4 - if_hp_more_than AI_USER, 60, AI_CV_BatonPass_ScoreDown2 - goto AI_CV_BatonPass_Last -AI_CV_BatonPass11: - if_ai_can_go_down AI_CV_BatonPass_ScoreDown2 - if_hp_less_than AI_USER, 70, AI_CV_BatonPass_Last - goto AI_CV_BatonPass_ScoreDown2 -AI_CV_BatonPass_ScoreDown2: - score -2 - end -AI_CV_BatonPass_Last: - get_best_dmg_hp_percent - if_less_than 10, Score_Plus2 - if_less_than 20, Score_Plus1 -AI_CV_BatonPass_End: - end - -AI_CV_Pursuit: - is_first_turn_for AI_USER - if_not_equal 0, AI_CV_Pursuit_End - get_target_type1 - if_equal TYPE_GHOST, AI_CV_Pursuit2 - get_target_type1 - if_equal TYPE_PSYCHIC, AI_CV_Pursuit2 - get_target_type2 - if_equal TYPE_GHOST, AI_CV_Pursuit2 - get_target_type2 - if_equal TYPE_PSYCHIC, AI_CV_Pursuit2 - goto AI_CV_Pursuit_End - -AI_CV_Pursuit2: - if_random_less_than 128, AI_CV_Pursuit_End - score +1 - -AI_CV_Pursuit_End: - end - -AI_CV_RainDance: - get_weather - if_equal AI_WEATHER_RAIN, AI_CV_RainDance_End - if_user_faster AI_CV_RainDance2 - get_ability AI_USER - if_equal ABILITY_SWIFT_SWIM, AI_CV_RainDance3 - get_ability AI_USER_PARTNER - if_equal ABILITY_SWIFT_SWIM, AI_CV_RainDance3 -AI_CV_RainDance2: - if_hp_less_than AI_USER, 40, AI_CV_RainDance_ScoreDown1 - get_weather - if_equal AI_WEATHER_HAIL, AI_CV_RainDance3 - if_equal AI_WEATHER_SUN, AI_CV_RainDance3 - if_equal AI_WEATHER_SANDSTORM, AI_CV_RainDance3 - if_ability AI_USER, ABILITY_RAIN_DISH, AI_CV_RainDance3 - if_ability AI_USER_PARTNER, ABILITY_RAIN_DISH, AI_CV_RainDance3 - if_ability AI_USER, ABILITY_HYDRATION, AI_CV_Hydration - if_no_ability AI_USER_PARTNER, ABILITY_HYDRATION, AI_CV_RainDance_Rock -AI_CV_Hydration: - if_status AI_USER, STATUS1_ANY, AI_CV_RainDance3 - if_status AI_USER_PARTNER, STATUS1_ANY, AI_CV_RainDance3 - goto AI_CV_RainDance_Rock -AI_CV_RainDance3: - score +1 - goto AI_CV_RainDance_Rock -AI_CV_RainDance_ScoreDown1: - score -1 -AI_CV_RainDance_Rock: - get_hold_effect AI_USER - if_not_equal HOLD_EFFECT_DAMP_ROCK, AI_CV_RainDance_Opponent - score +2 -AI_CV_RainDance_Opponent: - if_has_move_with_type AI_TARGET, TYPE_FIRE, AI_CV_RainDance_OpponentPlus - if_no_type AI_TARGET, TYPE_FIRE, AI_CV_RainDance_End -AI_CV_RainDance_OpponentPlus: - score +1 -AI_CV_RainDance_End: - end - -AI_CV_SunnyDay: - get_weather - if_equal AI_WEATHER_SUN, AI_CV_SunnyDay_End - if_hp_less_than AI_USER, 40, AI_CV_SunnyDay_ScoreDown1 - get_weather - if_equal AI_WEATHER_HAIL, AI_CV_SunnyDay2 - if_equal AI_WEATHER_RAIN, AI_CV_SunnyDay2 - if_equal AI_WEATHER_SANDSTORM, AI_CV_SunnyDay2 - goto AI_CV_SunnyDay_Rock -AI_CV_SunnyDay2: - score +1 - goto AI_CV_SunnyDay_Rock -AI_CV_SunnyDay_ScoreDown1: - score -1 -AI_CV_SunnyDay_Rock: - get_hold_effect AI_USER - if_not_equal HOLD_EFFECT_HEAT_ROCK, AI_CV_SunnyDay_Moves - score +2 -AI_CV_SunnyDay_Moves: - if_has_move_with_effect AI_USER, EFFECT_SOLARBEAM, AI_CV_SunnyDay_MovesPlus - if_has_move_with_effect AI_USER, EFFECT_SYNTHESIS, AI_CV_SunnyDay_MovesPlus - if_has_move_with_effect AI_USER_PARTNER, EFFECT_SOLARBEAM, AI_CV_SunnyDay_MovesPlus - if_has_move_with_effect AI_USER_PARTNER, EFFECT_SYNTHESIS, AI_CV_SunnyDay_MovesPlus - if_has_move_with_type AI_USER, TYPE_FIRE, AI_CV_SunnyDay_MovesPlus - goto AI_CV_SunnyDay_Abilities -AI_CV_SunnyDay_MovesPlus: - score +1 -AI_CV_SunnyDay_Abilities: - if_user_faster AI_CV_SunnyDay_Abilities2 - if_ability AI_USER, ABILITY_CHLOROPHYLL, AI_CV_SunnyDay_AbilitiesPlus - get_ability AI_USER_PARTNER - if_not_equal ABILITY_CHLOROPHYLL, AI_CV_SunnyDay_Abilities2 -AI_CV_SunnyDay_AbilitiesPlus: - score +1 -AI_CV_SunnyDay_Abilities2: - if_ability AI_USER, ABILITY_LEAF_GUARD, AI_CV_SunnyDay_Abilities2Plus - get_ability AI_USER_PARTNER - if_not_equal ABILITY_LEAF_GUARD, AI_CV_SunnyDay_Opponent -AI_CV_SunnyDay_Abilities2Plus: - score + 1 -@ If target is fire type, giving him a sunny day boost may not be a good idea -AI_CV_SunnyDay_Opponent: - if_ability AI_USER, ABILITY_FLASH_FIRE, AI_CV_SunnyDay_Opponent2 - if_has_move_with_type AI_TARGET, TYPE_FIRE, AI_CV_SunnyDay_OpponentMinus - if_no_type AI_TARGET, TYPE_FIRE, AI_CV_SunnyDay_Opponent2 -AI_CV_SunnyDay_OpponentMinus: - score -1 -AI_CV_SunnyDay_Opponent2: - if_has_move_with_type AI_TARGET, TYPE_WATER, AI_CV_SunnyDay_Opponent2Plus - if_no_type AI_TARGET, TYPE_WATER, AI_CV_SunnyDay_End -AI_CV_SunnyDay_Opponent2Plus: - score +1 -AI_CV_SunnyDay_End: - end - -AI_CV_BellyDrum: - if_hp_less_than AI_USER, 90, AI_CV_BellyDrum_ScoreDown2 - goto AI_CV_BellyDrum_End - -AI_CV_BellyDrum_ScoreDown2: - score -2 - -AI_CV_BellyDrum_End: - end - -AI_CV_PsychUp: - if_stat_level_more_than AI_TARGET, STAT_ATK, 8, AI_CV_PsychUp2 - if_stat_level_more_than AI_TARGET, STAT_DEF, 8, AI_CV_PsychUp2 - if_stat_level_more_than AI_TARGET, STAT_SPATK, 8, AI_CV_PsychUp2 - if_stat_level_more_than AI_TARGET, STAT_SPDEF, 8, AI_CV_PsychUp2 - if_stat_level_more_than AI_TARGET, STAT_EVASION, 8, AI_CV_PsychUp2 - goto AI_CV_PsychUp_ScoreDown2 - -AI_CV_PsychUp2: - if_stat_level_less_than AI_USER, STAT_ATK, 7, AI_CV_PsychUp3 - if_stat_level_less_than AI_USER, STAT_DEF, 7, AI_CV_PsychUp3 - if_stat_level_less_than AI_USER, STAT_SPATK, 7, AI_CV_PsychUp3 - if_stat_level_less_than AI_USER, STAT_SPDEF, 7, AI_CV_PsychUp3 - if_stat_level_less_than AI_USER, STAT_EVASION, 7, AI_CV_PsychUp_ScoreUp1 - if_random_less_than 50, AI_CV_PsychUp_End - goto AI_CV_PsychUp_ScoreDown2 - -AI_CV_PsychUp_ScoreUp1: - score +1 - -AI_CV_PsychUp3: - score +1 - end - -AI_CV_PsychUp_ScoreDown2: - score -2 - -AI_CV_PsychUp_End: - end - -AI_CV_MirrorCoat: - if_status AI_TARGET, STATUS1_SLEEP, AI_CV_MirrorCoat_ScoreDown1 - if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_MirrorCoat_ScoreDown1 - if_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_MirrorCoat_ScoreDown1 - if_hp_more_than AI_USER, 30, AI_CV_MirrorCoat2 - if_random_less_than 10, AI_CV_MirrorCoat2 - score -1 - -AI_CV_MirrorCoat2: - if_hp_more_than AI_USER, 50, AI_CV_MirrorCoat3 - if_random_less_than 100, AI_CV_MirrorCoat3 - score -1 - -AI_CV_MirrorCoat3: - if_has_move AI_USER, MOVE_COUNTER, AI_CV_MirrorCoat_ScoreUp4 - get_last_used_bank_move AI_TARGET - get_move_power_from_result - if_equal 0, AI_CV_MirrorCoat5 - if_target_not_taunted AI_CV_MirrorCoat4 - if_random_less_than 100, AI_CV_MirrorCoat4 - score +1 - -AI_CV_MirrorCoat4: - get_last_used_bank_move AI_TARGET - get_move_split_from_result - if_not_equal SPLIT_SPECIAL, AI_CV_MirrorCoat_ScoreDown1 - if_random_less_than 100, AI_CV_MirrorCoat_End - score +1 - goto AI_CV_MirrorCoat_End - -AI_CV_MirrorCoat5: - if_target_not_taunted AI_CV_MirrorCoat6 - if_random_less_than 100, AI_CV_MirrorCoat6 - score +1 - -AI_CV_MirrorCoat6: - if_has_no_special_move AI_TARGET, AI_CV_MirrorCoat_ScoreDown1 - if_random_less_than 50, AI_CV_MirrorCoat_End - -AI_CV_MirrorCoat_ScoreUp4: - if_random_less_than 100, AI_CV_MirrorCoat_ScoreUp4_End - score +4 - -AI_CV_MirrorCoat_ScoreUp4_End: - end - -AI_CV_MirrorCoat_ScoreDown1: - score -1 - -AI_CV_MirrorCoat_End: - end - -AI_CV_Geomancy: - get_hold_effect AI_USER - if_equal HOLD_EFFECT_POWER_HERB, AI_CV_ChargeUpMove_ScoreUp2 - end - -AI_CV_ChargeUpMove: - get_hold_effect AI_USER - if_equal HOLD_EFFECT_POWER_HERB, AI_CV_ChargeUpMove_ScoreUp2 - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_ChargeUpMove_ScoreDown2 - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_ChargeUpMove_ScoreDown2 - if_has_move_with_effect AI_TARGET, EFFECT_PROTECT, AI_CV_ChargeUpMove_ScoreDown2 - if_hp_more_than AI_USER, 38, AI_CV_ChargeUpMove_End - score -1 - goto AI_CV_ChargeUpMove_End - -AI_CV_ChargeUpMove_ScoreDown2: - score -2 - -AI_CV_ChargeUpMove_End: - end -AI_CV_ChargeUpMove_ScoreUp2: - score +2 - goto AI_CV_ChargeUpMove_End - -AI_CV_SemiInvulnerable: - get_hold_effect AI_USER - if_equal HOLD_EFFECT_POWER_HERB, AI_CV_ChargeUpMove_ScoreUp2 - if_doesnt_have_move_with_effect AI_TARGET, EFFECT_PROTECT, AI_CV_SemiInvulnerable2 - score -1 - goto AI_CV_SemiInvulnerable_End - -AI_CV_SemiInvulnerable2: - if_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_SemiInvulnerable_TryEncourage - if_status2 AI_TARGET, STATUS2_CURSED, AI_CV_SemiInvulnerable_TryEncourage - if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_SemiInvulnerable_TryEncourage - get_weather - if_equal AI_WEATHER_HAIL, AI_CV_SemiInvulnerable_CheckIceType - if_equal AI_WEATHER_SANDSTORM, AI_CV_SemiInvulnerable_CheckSandstormTypes - goto AI_CV_SemiInvulnerable5 - -AI_CV_SemiInvulnerable_CheckSandstormTypes: - get_user_type1 - if_in_bytes AI_CV_SandstormResistantTypes, AI_CV_SemiInvulnerable_TryEncourage - get_user_type2 - if_in_bytes AI_CV_SandstormResistantTypes, AI_CV_SemiInvulnerable_TryEncourage - get_ability AI_USER - if_in_bytes AI_SandstormResistantAbilities, AI_CV_SemiInvulnerable_TryEncourage - goto AI_CV_SemiInvulnerable5 - -AI_CV_SemiInvulnerable_CheckIceType: - get_user_type1 - if_equal TYPE_ICE, AI_CV_SemiInvulnerable_TryEncourage - get_user_type2 - if_equal TYPE_ICE, AI_CV_SemiInvulnerable_TryEncourage - get_ability AI_USER - if_in_bytes AI_HailResistantAbilities, AI_CV_SemiInvulnerable_TryEncourage - -AI_CV_SemiInvulnerable5: - if_target_faster AI_CV_SemiInvulnerable_End - get_last_used_bank_move AI_TARGET - get_move_effect_from_result - if_not_equal EFFECT_LOCK_ON, AI_CV_SemiInvulnerable_TryEncourage - goto AI_CV_SemiInvulnerable_End - -AI_CV_SemiInvulnerable_TryEncourage: - if_random_less_than 80, AI_CV_SemiInvulnerable_End - score +1 - -AI_CV_SemiInvulnerable_End: - end - -AI_CV_SandstormResistantTypes: - .byte TYPE_GROUND - .byte TYPE_ROCK - .byte TYPE_STEEL - .byte -1 - -AI_SandstormResistantAbilities: - .byte ABILITY_SAND_VEIL - .byte ABILITY_SAND_FORCE - .byte ABILITY_SAND_RUSH - .byte ABILITY_OVERCOAT - .byte ABILITY_MAGIC_GUARD - .byte -1 - -AI_HailResistantAbilities: - .byte ABILITY_ICE_BODY - .byte ABILITY_SNOW_CLOAK - .byte ABILITY_OVERCOAT - .byte ABILITY_MAGIC_GUARD - .byte -1 - -AI_CV_FakeOut: - if_ability AI_TARGET, ABILITY_INNER_FOCUS, AI_CV_FakeOut_End - if_double_battle AI_CV_FakeOut_Double - score +5 - end -AI_CV_FakeOut_Double: - score +2 -AI_CV_FakeOut_End: - end - -AI_CV_SpitUp: - get_stockpile_count AI_USER - if_less_than 2, AI_CV_SpitUp_End - if_random_less_than 80, AI_CV_SpitUp_End - score +2 - -AI_CV_SpitUp_End: - end - -AI_CV_Hail: - if_hp_less_than AI_USER, 40, AI_CV_Hail_ScoreDown1 - get_weather - if_equal AI_WEATHER_SUN, AI_CV_Hail2 - if_equal AI_WEATHER_RAIN, AI_CV_Hail2 - if_equal AI_WEATHER_SANDSTORM, AI_CV_Hail2 - goto AI_CV_Hail_Rock -AI_CV_Hail2: - score +1 - goto AI_CV_Hail_Rock -AI_CV_Hail_ScoreDown1: - score -1 -AI_CV_Hail_Rock: - get_hold_effect AI_USER - if_not_equal HOLD_EFFECT_ICY_ROCK, AI_CV_Hail_Ability - score +2 -AI_CV_Hail_Ability: - get_ability AI_USER - if_equal ABILITY_ICE_BODY, AI_CV_Hail_AbilityPlus - if_equal ABILITY_SNOW_CLOAK, AI_CV_Hail_AbilityPlus - if_equal ABILITY_SLUSH_RUSH, AI_CV_Hail_AbilityPlus - if_not_equal ABILITY_FORECAST, AI_CV_Hail_Move -AI_CV_Hail_AbilityPlus: - score +1 -AI_CV_Hail_Move: - if_has_move AI_USER, MOVE_BLIZZARD, AI_CV_Hail_MovePlus - if_has_move AI_USER_PARTNER, MOVE_BLIZZARD, AI_CV_Hail_MovePlus - goto AI_CV_Hail_End -AI_CV_Hail_MovePlus: - score +1 -AI_CV_Hail_End: - end - -AI_CV_Sandstorm: - if_hp_less_than AI_USER, 40, AI_CV_Sandstorm_ScoreDown1 - get_weather - if_equal AI_WEATHER_SUN, AI_CV_Sandstorm2 - if_equal AI_WEATHER_RAIN, AI_CV_Sandstorm2 - if_equal AI_WEATHER_HAIL, AI_CV_Sandstorm2 - goto AI_CV_Sandstorm_End -AI_CV_Sandstorm2: - score +1 - goto AI_CV_Sandstorm_End -AI_CV_Sandstorm_ScoreDown1: - score -1 -AI_CV_Sandstorm_Rock: - get_hold_effect AI_USER - if_not_equal HOLD_EFFECT_SMOOTH_ROCK, AI_CV_Sandstorm_Ability - score +2 -AI_CV_Sandstorm_Ability: - get_ability AI_USER - if_equal ABILITY_SAND_VEIL, AI_CV_Sandstorm_AbilityPlus - if_equal ABILITY_SAND_RUSH, AI_CV_Sandstorm_AbilityPlus - if_not_equal ABILITY_SAND_VEIL, AI_CV_Sandstorm_End -AI_CV_Sandstorm_AbilityPlus: - score +1, -AI_CV_Sandstorm_End: - end - -AI_CV_Facade: - if_not_status AI_USER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, AI_CV_Facade_End - score +1 -AI_CV_Facade_End: - end - -AI_CV_FocusPunch: - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_FocusPunch2 - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_FocusPunch2 - if_status AI_TARGET, STATUS1_SLEEP, AI_CV_FocusPunch_ScoreUp1 - if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_FocusPunch3 - if_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_FocusPunch3 - is_first_turn_for AI_USER - if_not_equal 0, AI_CV_FocusPunch_End - if_random_less_than 100, AI_CV_FocusPunch_End - score +1 - goto AI_CV_FocusPunch_End - -AI_CV_FocusPunch2: - score -1 - goto AI_CV_FocusPunch_End - -AI_CV_FocusPunch3: - if_random_less_than 100, AI_CV_FocusPunch_End - if_status2 AI_USER, STATUS2_SUBSTITUTE, Score_Plus5 - -AI_CV_FocusPunch_ScoreUp1: - score +1 - -AI_CV_FocusPunch_End: - end - -AI_CV_SmellingSalt: - if_status AI_TARGET, STATUS1_PARALYSIS, AI_CV_SmellingSalt_ScoreUp1 - goto AI_CV_SmellingSalt_End - -AI_CV_SmellingSalt_ScoreUp1: - score +1 - -AI_CV_SmellingSalt_End: - end - -AI_CV_Trick: - get_hold_effect AI_USER - if_in_bytes AI_CV_Trick_EffectsToEncourage2, AI_CV_Trick3 - if_in_bytes AI_CV_Trick_EffectsToEncourage, AI_CV_Trick4 - -AI_CV_Trick2: - score -3 - goto AI_CV_Trick_End - -AI_CV_Trick3: - get_hold_effect AI_TARGET - if_in_bytes AI_CV_Trick_EffectsToEncourage2, AI_CV_Trick2 - score +5 - goto AI_CV_Trick_End - -AI_CV_Trick4: - get_hold_effect AI_TARGET - if_in_bytes AI_CV_Trick_EffectsToEncourage, AI_CV_Trick2 - if_random_less_than 50, AI_CV_Trick_End - score +2 - -AI_CV_Trick_End: - end - -AI_CV_Trick_EffectsToEncourage: - .byte HOLD_EFFECT_CONFUSE_SPICY - .byte HOLD_EFFECT_CONFUSE_DRY - .byte HOLD_EFFECT_CONFUSE_SWEET - .byte HOLD_EFFECT_CONFUSE_BITTER - .byte HOLD_EFFECT_CONFUSE_SOUR - .byte HOLD_EFFECT_MACHO_BRACE - .byte HOLD_EFFECT_CHOICE_BAND - .byte -1 - -AI_CV_Trick_EffectsToEncourage2: - .byte HOLD_EFFECT_CHOICE_BAND - .byte -1 - -AI_CV_ChangeSelfAbility: - get_ability AI_USER - if_in_bytes AI_CV_ChangeSelfAbility_AbilitiesToEncourage, AI_CV_ChangeSelfAbility2 - get_ability AI_TARGET - if_in_bytes AI_CV_ChangeSelfAbility_AbilitiesToEncourage, AI_CV_ChangeSelfAbility3 - -AI_CV_ChangeSelfAbility2: - score -1 - goto AI_CV_ChangeSelfAbility_End - -AI_CV_ChangeSelfAbility3: - if_random_less_than 50, AI_CV_ChangeSelfAbility_End - score +2 - -AI_CV_ChangeSelfAbility_End: - end - -AI_CV_ChangeSelfAbility_AbilitiesToEncourage: - .byte ABILITY_SPEED_BOOST - .byte ABILITY_BATTLE_ARMOR - .byte ABILITY_SAND_VEIL - .byte ABILITY_STATIC - .byte ABILITY_FLASH_FIRE - .byte ABILITY_WONDER_GUARD - .byte ABILITY_EFFECT_SPORE - .byte ABILITY_SWIFT_SWIM - .byte ABILITY_HUGE_POWER - .byte ABILITY_RAIN_DISH - .byte ABILITY_CUTE_CHARM - .byte ABILITY_SHED_SKIN - .byte ABILITY_MARVEL_SCALE - .byte ABILITY_PURE_POWER - .byte ABILITY_CHLOROPHYLL - .byte ABILITY_SHIELD_DUST - .byte -1 - -AI_CV_Superpower: - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Superpower_ScoreDown1 - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Superpower_ScoreDown1 - if_stat_level_less_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_Superpower_ScoreDown1 - if_target_faster AI_CV_Superpower2 - if_hp_more_than AI_USER, 40, AI_CV_Superpower_ScoreDown1 - goto AI_CV_Superpower_End - -AI_CV_Superpower2: - if_hp_less_than AI_USER, 60, AI_CV_Superpower_End - -AI_CV_Superpower_ScoreDown1: - score -1 - -AI_CV_Superpower_End: - end - -AI_CV_MagicCoat: - if_hp_more_than AI_TARGET, 30, AI_CV_MagicCoat2 - if_random_less_than 100, AI_CV_MagicCoat2 - score -1 - -AI_CV_MagicCoat2: - is_first_turn_for AI_USER - if_equal 0, AI_CV_MagicCoat4 - if_random_less_than 150, AI_CV_MagicCoat_End - score +1 - goto AI_CV_MagicCoat_End - -AI_CV_MagicCoat3: - if_random_less_than 50, AI_CV_MagicCoat_End - -AI_CV_MagicCoat4: - if_random_less_than 30, AI_CV_MagicCoat_End - score -1 - -AI_CV_MagicCoat_End: - end - -AI_CV_Recycle: - get_used_held_item AI_USER - if_not_in_bytes AI_CV_Recycle_ItemsToEncourage, AI_CV_Recycle_ScoreDown2 - if_random_less_than 50, AI_CV_Recycle_End - score +1 - goto AI_CV_Recycle_End - -AI_CV_Recycle_ScoreDown2: - score -2 - -AI_CV_Recycle_End: - end - -AI_CV_Recycle_ItemsToEncourage: - .byte ITEM_CHESTO_BERRY - .byte ITEM_LUM_BERRY - .byte ITEM_STARF_BERRY - .byte -1 - -AI_CV_Revenge: - if_status AI_TARGET, STATUS1_SLEEP, AI_CV_Revenge_ScoreDown2 - if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_Revenge_ScoreDown2 - if_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_Revenge_ScoreDown2 - if_random_less_than 180, AI_CV_Revenge_ScoreDown2 - score +2 - goto AI_CV_Revenge_End - -AI_CV_Revenge_ScoreDown2: - score -2 - -AI_CV_Revenge_End: - end - -AI_CV_BrickBreak: - if_side_affecting AI_TARGET, SIDE_STATUS_REFLECT, AI_CV_BrickBreak_ScoreUp1 - goto AI_CV_BrickBreak_End - -AI_CV_BrickBreak_ScoreUp1: - score +1 - -AI_CV_BrickBreak_End: - end - -AI_CV_KnockOff: - if_hp_less_than AI_TARGET, 30, AI_CV_KnockOff_End - is_first_turn_for AI_USER - if_more_than 0, AI_CV_KnockOff_End - if_random_less_than 180, AI_CV_KnockOff_End - score +1 - -AI_CV_KnockOff_End: - end - -AI_CV_Endeavor: - if_hp_less_than AI_TARGET, 70, AI_CV_Endeavor_ScoreDown1 - if_target_faster AI_CV_Endeavor2 - if_hp_more_than AI_USER, 40, AI_CV_Endeavor_ScoreDown1 - score +1 - goto AI_CV_Endeavor_End - -AI_CV_Endeavor2: - if_hp_more_than AI_USER, 50, AI_CV_Endeavor_ScoreDown1 - score +1 - goto AI_CV_Endeavor_End - -AI_CV_Endeavor_ScoreDown1: - score -1 - -AI_CV_Endeavor_End: - end - -AI_CV_Eruption: - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Eruption_ScoreDown1 - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Eruption_ScoreDown1 - if_target_faster AI_CV_Eruption2 - if_hp_more_than AI_TARGET, 50, AI_CV_Eruption_End - goto AI_CV_Eruption_ScoreDown1 - -AI_CV_Eruption2: - if_hp_more_than AI_TARGET, 70, AI_CV_Eruption_End - -AI_CV_Eruption_ScoreDown1: - score -1 - -AI_CV_Eruption_End: - end - -AI_CV_Imprison: - is_first_turn_for AI_USER - if_more_than 0, AI_CV_Imprison_End - if_random_less_than 100, AI_CV_Imprison_End - score +2 - -AI_CV_Imprison_End: - end - -AI_CV_Refresh: - if_hp_less_than AI_TARGET, 50, AI_CV_Refresh_ScoreDown1 - goto AI_CV_Refresh_End - -AI_CV_Refresh_ScoreDown1: - score -1 - -AI_CV_Refresh_End: - end - -AI_CV_Snatch: - is_first_turn_for AI_USER - if_equal 1, AI_CV_Snatch3 - if_random_less_than 30, AI_CV_Snatch_End - if_target_faster AI_CV_Snatch2 - if_hp_not_equal AI_USER, 100, AI_CV_Snatch5 - if_hp_less_than AI_TARGET, 70, AI_CV_Snatch5 - if_random_less_than 60, AI_CV_Snatch_End - goto AI_CV_Snatch5 - -AI_CV_Snatch2: - if_hp_more_than AI_TARGET, 25, AI_CV_Snatch5 - if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, AI_CV_Snatch3 - if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, AI_CV_Snatch3 - goto AI_CV_Snatch4 - -AI_CV_Snatch3: - if_random_less_than 150, AI_CV_Snatch_End - score +2 - goto AI_CV_Snatch_End - -AI_CV_Snatch4: - if_random_less_than 230, AI_CV_Snatch5 - score +1 - goto AI_CV_Snatch_End - -AI_CV_Snatch5: - if_random_less_than 30, AI_CV_Snatch_End - score -2 - -AI_CV_Snatch_End: - end - -AI_CV_MudSport: - if_hp_less_than AI_USER, 50, AI_CV_MudSport_ScoreDown1 - get_target_type1 - if_equal TYPE_ELECTRIC, AI_CV_MudSport2 - get_target_type2 - if_equal TYPE_ELECTRIC, AI_CV_MudSport2 - goto AI_CV_MudSport_ScoreDown1 - -AI_CV_MudSport2: - score +1 - goto AI_CV_MudSport_End - -AI_CV_MudSport_ScoreDown1: - score -1 - -AI_CV_MudSport_End: - end - -AI_CV_Overheat: - if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Overheat_ScoreDown1 - if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Overheat_ScoreDown1 - if_target_faster AI_CV_Overheat2 - if_hp_more_than AI_USER, 60, AI_CV_Overheat_End - goto AI_CV_Overheat_ScoreDown1 - -AI_CV_Overheat2: - if_hp_more_than AI_USER, 80, AI_CV_Overheat_End - -AI_CV_Overheat_ScoreDown1: - score -1 - -AI_CV_Overheat_End: - end - -AI_CV_WaterSport: - if_hp_less_than AI_USER, 50, AI_CV_WaterSport_ScoreDown1 - get_target_type1 - if_equal TYPE_FIRE, AI_CV_WaterSport2 - get_target_type2 - if_equal TYPE_FIRE, AI_CV_WaterSport2 - goto AI_CV_WaterSport_ScoreDown1 - -AI_CV_WaterSport2: - score +1 - goto AI_CV_WaterSport_End - -AI_CV_WaterSport_ScoreDown1: - score -1 - -AI_CV_WaterSport_End: - end - -AI_CV_DragonDance: - if_target_faster AI_CV_DragonDance2 - if_hp_more_than AI_USER, 50, AI_CV_DragonDance_End - if_random_less_than 70, AI_CV_DragonDance_End - score -1 - goto AI_CV_DragonDance_End - -AI_CV_DragonDance2: - if_random_less_than 128, AI_CV_DragonDance_End - score +1 - -AI_CV_DragonDance_End: - end - -AI_TryToFaint: - if_target_is_ally AI_Ret - if_can_faint AI_TryToFaint_Can - get_how_powerful_move_is - if_equal MOVE_POWER_DISCOURAGED, Score_Minus1 -AI_TryToFaint2: - if_type_effectiveness AI_EFFECTIVENESS_x4, AI_TryToFaint_DoubleSuperEffective - goto AI_TryToFaint_CheckIfDanger -AI_TryToFaint_DoubleSuperEffective: - if_random_less_than 80, AI_TryToFaint_CheckIfDanger - score +2 - goto AI_TryToFaint_CheckIfDanger -AI_TryToFaint_Can: - if_effect EFFECT_EXPLOSION, AI_TryToFaint_CheckIfDanger - if_user_faster AI_TryToFaint_ScoreUp4 - if_move_flag FLAG_HIGH_CRIT, AI_TryToFaint_ScoreUp4 - score +2 - goto AI_TryToFaint_CheckIfDanger -AI_TryToFaint_ScoreUp4: - score +4 -AI_TryToFaint_CheckIfDanger: - if_user_faster AI_TryToFaint_End - if_ai_can_go_down AI_TryToFaint_Danger -AI_TryToFaint_End: - end -AI_TryToFaint_Danger: - get_how_powerful_move_is - if_not_equal MOVE_POWER_BEST, Score_Minus1 - score +1 - goto AI_TryToFaint_End - -AI_SetupFirstTurn: - if_target_is_ally AI_Ret - get_turn_count - if_not_equal 0, AI_SetupFirstTurn_End - get_considered_move_effect - if_not_in_hwords AI_SetupFirstTurn_SetupEffectsToEncourage, AI_SetupFirstTurn_End - score +2 -AI_SetupFirstTurn_End: - end - -.align 1 -AI_SetupFirstTurn_SetupEffectsToEncourage: - .2byte EFFECT_ATTACK_UP - .2byte EFFECT_DEFENSE_UP - .2byte EFFECT_SPEED_UP - .2byte EFFECT_SPECIAL_ATTACK_UP - .2byte EFFECT_SPECIAL_DEFENSE_UP - .2byte EFFECT_ACCURACY_UP - .2byte EFFECT_EVASION_UP - .2byte EFFECT_ATTACK_DOWN - .2byte EFFECT_DEFENSE_DOWN - .2byte EFFECT_SPEED_DOWN - .2byte EFFECT_SPECIAL_ATTACK_DOWN - .2byte EFFECT_SPECIAL_DEFENSE_DOWN - .2byte EFFECT_ACCURACY_DOWN - .2byte EFFECT_EVASION_DOWN - .2byte EFFECT_CONVERSION - .2byte EFFECT_LIGHT_SCREEN - .2byte EFFECT_SPECIAL_DEFENSE_UP_2 - .2byte EFFECT_FOCUS_ENERGY - .2byte EFFECT_CONFUSE - .2byte EFFECT_ATTACK_UP_2 - .2byte EFFECT_DEFENSE_UP_2 - .2byte EFFECT_SPEED_UP_2 - .2byte EFFECT_SPECIAL_ATTACK_UP_2 - .2byte EFFECT_SPECIAL_DEFENSE_UP_2 - .2byte EFFECT_ACCURACY_UP_2 - .2byte EFFECT_EVASION_UP_2 - .2byte EFFECT_ATTACK_DOWN_2 - .2byte EFFECT_DEFENSE_DOWN_2 - .2byte EFFECT_SPEED_DOWN_2 - .2byte EFFECT_SPECIAL_ATTACK_DOWN_2 - .2byte EFFECT_SPECIAL_DEFENSE_DOWN_2 - .2byte EFFECT_ACCURACY_DOWN_2 - .2byte EFFECT_EVASION_DOWN_2 - .2byte EFFECT_REFLECT - .2byte EFFECT_POISON - .2byte EFFECT_PARALYZE - .2byte EFFECT_SUBSTITUTE - .2byte EFFECT_LEECH_SEED - .2byte EFFECT_MINIMIZE - .2byte EFFECT_CURSE - .2byte EFFECT_SWAGGER - .2byte EFFECT_CAMOUFLAGE - .2byte EFFECT_YAWN - .2byte EFFECT_DEFENSE_CURL - .2byte EFFECT_TORMENT - .2byte EFFECT_FLATTER - .2byte EFFECT_WILL_O_WISP - .2byte EFFECT_INGRAIN - .2byte EFFECT_IMPRISON - .2byte EFFECT_TEETER_DANCE - .2byte EFFECT_TICKLE - .2byte EFFECT_COSMIC_POWER - .2byte EFFECT_BULK_UP - .2byte EFFECT_CALM_MIND - .2byte EFFECT_ACUPRESSURE - .2byte EFFECT_AUTOTOMIZE - .2byte EFFECT_SHIFT_GEAR - .2byte EFFECT_SHELL_SMASH - .2byte EFFECT_GROWTH - .2byte EFFECT_QUIVER_DANCE - .2byte EFFECT_ATTACK_SPATK_UP - .2byte EFFECT_ATTACK_ACCURACY_UP - .2byte EFFECT_PSYCHIC_TERRAIN - .2byte EFFECT_GRASSY_TERRAIN - .2byte EFFECT_ELECTRIC_TERRAIN - .2byte EFFECT_MISTY_TERRAIN - .2byte EFFECT_STEALTH_ROCK - .2byte EFFECT_TOXIC_SPIKES - .2byte EFFECT_TRICK_ROOM - .2byte EFFECT_WONDER_ROOM - .2byte EFFECT_MAGIC_ROOM - .2byte EFFECT_TAILWIND - .2byte EFFECT_DRAGON_DANCE - .2byte EFFECT_STICKY_WEB - .2byte EFFECT_RAIN_DANCE - .2byte EFFECT_SUNNY_DAY - .2byte EFFECT_SANDSTORM - .2byte EFFECT_HAIL - .2byte EFFECT_GEOMANCY - .2byte -1 - -AI_PreferStrongestMove: - if_target_is_ally AI_Ret - get_how_powerful_move_is - if_not_equal MOVE_POWER_BEST, AI_PreferStrongestMove_End - if_random_less_than 100, AI_PreferStrongestMove_End - score +2 -AI_PreferStrongestMove_End: - end - -AI_Risky: - if_target_is_ally AI_Ret - get_considered_move_effect - if_move_flag FLAG_HIGH_CRIT, AI_Risky_RandChance - if_not_in_bytes AI_Risky_EffectsToEncourage, AI_Risky_End -AI_Risky_RandChance: - if_random_less_than 128, AI_Risky_End - score +2 -AI_Risky_End: - end - -AI_Risky_EffectsToEncourage: - .byte EFFECT_SLEEP - .byte EFFECT_EXPLOSION - .byte EFFECT_MIRROR_MOVE - .byte EFFECT_OHKO - .byte EFFECT_CONFUSE - .byte EFFECT_METRONOME - .byte EFFECT_PSYWAVE - .byte EFFECT_COUNTER - .byte EFFECT_DESTINY_BOND - .byte EFFECT_SWAGGER - .byte EFFECT_ATTRACT - .byte EFFECT_PRESENT - .byte EFFECT_ALL_STATS_UP_HIT - .byte EFFECT_BELLY_DRUM - .byte EFFECT_MIRROR_COAT - .byte EFFECT_FOCUS_PUNCH - .byte EFFECT_REVENGE - .byte EFFECT_TEETER_DANCE - .byte -1 - -.align 1 -sMovesTable_ProtectMoves: - .2byte MOVE_PROTECT - .2byte MOVE_DETECT - .2byte -1 - -.align 1 -sEffectsStatRaise: - .2byte EFFECT_ATTACK_UP - .2byte EFFECT_ATTACK_UP_2 - .2byte EFFECT_DEFENSE_UP - .2byte EFFECT_DEFENSE_UP_2 - .2byte EFFECT_SPEED_UP - .2byte EFFECT_SPEED_UP_2 - .2byte EFFECT_SPECIAL_ATTACK_UP - .2byte EFFECT_SPECIAL_ATTACK_UP_2 - .2byte EFFECT_SPECIAL_DEFENSE_UP - .2byte EFFECT_SPECIAL_DEFENSE_UP_2 - .2byte EFFECT_CALM_MIND - .2byte EFFECT_DRAGON_DANCE - .2byte EFFECT_ACUPRESSURE - .2byte EFFECT_SHELL_SMASH - .2byte EFFECT_SHIFT_GEAR - .2byte EFFECT_ATTACK_ACCURACY_UP - .2byte EFFECT_ATTACK_SPATK_UP - .2byte EFFECT_GROWTH - .2byte EFFECT_COIL - .2byte EFFECT_QUIVER_DANCE - .2byte -1 - -AI_PreferBatonPass: - if_target_is_ally AI_Ret - count_usable_party_mons AI_USER - if_equal 0, AI_PreferBatonPassEnd - get_how_powerful_move_is - if_not_equal MOVE_POWER_DISCOURAGED, AI_PreferBatonPassEnd - if_doesnt_have_move_with_effect AI_USER, EFFECT_BATON_PASS, AI_PreferBatonPassEnd - get_considered_move_effect - if_in_hwords sEffectsStatRaise, AI_PreferBatonPass2 - if_effect EFFECT_PROTECT, AI_PreferBatonPass3 - if_move MOVE_BATON_PASS, AI_PreferBatonPass_EncourageIfHighStats - end -AI_PreferBatonPass2: - get_turn_count - if_equal 0, Score_Plus5 - if_hp_less_than AI_USER, 60, Score_Minus10 - goto Score_Plus1 -AI_PreferBatonPass3: - get_last_used_bank_move AI_USER - if_in_hwords sMovesTable_ProtectMoves, Score_Minus2 - score +2 - end -AI_PreferBatonPass_EncourageIfHighStats: - get_turn_count - if_equal 0, Score_Minus2 - if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE + 2, Score_Plus3 - if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE + 1, Score_Plus2 - if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, Score_Plus1 - if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE + 2, Score_Plus3 - if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE + 1, Score_Plus2 - if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE, Score_Plus1 - end -AI_PreferBatonPassEnd: - end - -AI_ConsiderAllyChosenMove: - get_ally_chosen_move - if_equal 0, AI_ConsiderAllyChosenMoveRet - get_move_effect_from_result - if_equal EFFECT_HELPING_HAND, AI_PartnerChoseHelpingHand - if_equal EFFECT_PERISH_SONG, AI_PartnerChosePerishSong - if_equal EFFECT_ALWAYS_CRIT, AI_PartnerChoseAlwaysCrit -AI_ConsiderAllyChosenMoveRet: - end - -@ Ally decided to use Frost Breath on us. we must have Anger Point as our ability -AI_PartnerChoseAlwaysCrit: - if_no_ability AI_USER, ABILITY_ANGER_POINT, AI_PartnerChoseAlwaysCritEnd - @frost breath user should be faster - compare_speeds AI_USER, AI_USER_PARTNER - if_not_equal 1, AI_PartnerChoseAlwaysCritEnd - get_considered_move_effect - if_in_hwords sEffectsAtkRaise, Score_Minus3 - @encourage moves hitting multiple opponents - get_considered_move_power - if_equal 0, AI_PartnerChoseAlwaysCritEnd - get_considered_move_target - if_equal MOVE_TARGET_BOTH, Score_Plus3 - if_equal MOVE_TARGET_FOES_AND_ALLY, Score_Plus3 -AI_PartnerChoseAlwaysCritEnd: - end - -.align 1 -sEffectsAtkRaise: - .2byte EFFECT_ATTACK_ACCURACY_UP - .2byte EFFECT_ATTACK_UP - .2byte EFFECT_ATTACK_UP_2 - .2byte EFFECT_DRAGON_DANCE - .2byte EFFECT_COIL - .2byte EFFECT_BELLY_DRUM - .2byte EFFECT_BULK_UP - .2byte -1 - -AI_PartnerChoseHelpingHand: - @ Do not use a status move if you know your move's power will be boosted - get_considered_move_power - if_equal 0, Score_Minus5 - end - -AI_PartnerChosePerishSong: - if_status2 AI_TARGET, STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED, AI_Ret - get_considered_move_effect - if_equal EFFECT_MEAN_LOOK, Score_Plus1 - if_equal EFFECT_TRAP, Score_Plus1 - end - -AI_ConsiderAllyKnownMoves: - @ If ally already chose a move, there is nothing to do here. - get_ally_chosen_move - if_not_equal 0, AI_Ret - if_move MOVE_HELPING_HAND, AI_HelpingHandInDoubles - if_move MOVE_PERISH_SONG, AI_PerishSongInDoubles - end - -AI_HelpingHandInDoubles: - if_has_no_attacking_moves AI_USER_PARTNER, Score_Minus5 - end - -AI_PerishSongInDoubles: - if_has_move_with_effect AI_USER_PARTNER, EFFECT_MEAN_LOOK, Score_Plus1 - if_has_move_with_effect AI_USER_PARTNER, EFFECT_TRAP, Score_Plus1 - end - -AI_DoubleBattle: - call AI_ConsiderAllyChosenMove - call AI_ConsiderAllyKnownMoves - if_target_is_ally AI_TryOnAlly - if_move MOVE_SKILL_SWAP, AI_DoubleBattleSkillSwap - get_curr_move_type - if_move MOVE_EARTHQUAKE, AI_DoubleBattleAllHittingGroundMove - if_move MOVE_MAGNITUDE, AI_DoubleBattleAllHittingGroundMove - if_equal TYPE_ELECTRIC, AI_DoubleBattleElectricMove - if_equal TYPE_FIRE, AI_DoubleBattleFireMove - get_ability AI_USER - if_not_equal ABILITY_GUTS, AI_DoubleBattleCheckUserStatus - if_has_move AI_USER_PARTNER, MOVE_HELPING_HAND, AI_DoubleBattlePartnerHasHelpingHand - end - -AI_DoubleBattlePartnerHasHelpingHand: - get_how_powerful_move_is - if_not_equal MOVE_POWER_DISCOURAGED, Score_Plus1 - end - -AI_DoubleBattleCheckUserStatus: - if_status AI_USER, STATUS1_ANY, AI_DoubleBattleCheckUserStatus2 - end - -AI_DoubleBattleCheckUserStatus2: - get_how_powerful_move_is - if_equal MOVE_POWER_DISCOURAGED, Score_Minus5 - score +1 - if_equal MOVE_POWER_BEST, Score_Plus2 - end - -AI_DoubleBattleAllHittingGroundMove: - if_ability AI_USER_PARTNER, ABILITY_LEVITATE, Score_Plus2 - if_type AI_USER_PARTNER, TYPE_FLYING, Score_Plus2 - if_type AI_USER_PARTNER, TYPE_FIRE, Score_Minus10 - if_type AI_USER_PARTNER, TYPE_ELECTRIC, Score_Minus10 - if_type AI_USER_PARTNER, TYPE_POISON, Score_Minus10 - if_type AI_USER_PARTNER, TYPE_ROCK, Score_Minus10 - goto Score_Minus3 - -AI_DoubleBattleSkillSwap: - get_ability AI_USER - if_equal ABILITY_TRUANT, Score_Plus5 - get_ability AI_TARGET - if_equal ABILITY_SHADOW_TAG, Score_Plus2 - if_equal ABILITY_PURE_POWER, Score_Plus2 - end - -AI_DoubleBattleElectricMove: - if_no_ability AI_TARGET_PARTNER, ABILITY_LIGHTNING_ROD, AI_DoubleBattleElectricMoveEnd - score -2 - if_no_type AI_TARGET_PARTNER, TYPE_GROUND, AI_DoubleBattleElectricMoveEnd - score -8 - -AI_DoubleBattleElectricMoveEnd: - end - -AI_DoubleBattleFireMove: - if_flash_fired AI_USER, AI_DoubleBattleFireMove2 - end - -AI_DoubleBattleFireMove2: - goto Score_Plus1 - -AI_TryOnAlly: - get_how_powerful_move_is - if_equal MOVE_POWER_DISCOURAGED, AI_TryStatusMoveOnAlly - get_curr_move_type - if_equal TYPE_FIRE, AI_TryFireMoveOnAlly - if_effect EFFECT_ALWAYS_CRIT, AI_TryCritAngerPointAlly -AI_DiscourageOnAlly: - goto Score_Minus30 - -AI_TryFireMoveOnAlly: - if_ability AI_USER_PARTNER, ABILITY_FLASH_FIRE, AI_TryFireMoveOnAlly_FlashFire - goto AI_DiscourageOnAlly -AI_TryFireMoveOnAlly_FlashFire: - if_flash_fired AI_USER_PARTNER, AI_DiscourageOnAlly - goto Score_Plus3 - -AI_TryCritAngerPointAlly: - get_ability AI_USER_PARTNER - if_not_equal ABILITY_ANGER_POINT, AI_DiscourageOnAlly - if_stat_level_more_than AI_USER_PARTNER, STAT_ATK, 8, AI_DiscourageOnAlly - if_status2 AI_USER_PARTNER, STATUS2_SUBSTITUTE, AI_DiscourageOnAlly - if_has_no_move_with_split AI_USER_PARTNER, SPLIT_PHYSICAL, AI_DiscourageOnAlly - get_curr_dmg_hp_percent - if_more_than 34,AI_DiscourageOnAlly - if_hp_less_than AI_USER_PARTNER, 60, AI_DiscourageOnAlly - goto Score_Plus3 - -AI_TryStatusMoveOnAlly: - if_move MOVE_SKILL_SWAP, AI_TrySkillSwapOnAlly - if_move MOVE_WILL_O_WISP, AI_TryStatusOnAlly - if_move MOVE_TOXIC, AI_TryStatusOnAlly - if_move MOVE_HELPING_HAND, AI_TryHelpingHandOnAlly - if_move MOVE_SWAGGER, AI_TrySwaggerOnAlly - goto Score_Minus30 - -AI_TrySkillSwapOnAlly: - get_ability AI_TARGET - if_equal ABILITY_TRUANT, Score_Plus10 - get_ability AI_USER - if_not_equal ABILITY_LEVITATE, AI_TrySkillSwapOnAlly2 - get_ability AI_TARGET - if_equal ABILITY_LEVITATE, Score_Minus30 - get_target_type1 - if_not_equal TYPE_ELECTRIC, AI_TrySkillSwapOnAlly2 - score +1 - get_target_type2 - if_not_equal TYPE_ELECTRIC, AI_TrySkillSwapOnAlly2 - score +1 - end - -AI_TrySkillSwapOnAlly2: - if_not_equal ABILITY_COMPOUND_EYES, Score_Minus30 - if_has_move AI_USER_PARTNER, MOVE_FIRE_BLAST, AI_TrySkillSwapOnAllyPlus3 - if_has_move AI_USER_PARTNER, MOVE_THUNDER, AI_TrySkillSwapOnAllyPlus3 - if_has_move AI_USER_PARTNER, MOVE_CROSS_CHOP, AI_TrySkillSwapOnAllyPlus3 - if_has_move AI_USER_PARTNER, MOVE_HYDRO_PUMP, AI_TrySkillSwapOnAllyPlus3 - if_has_move AI_USER_PARTNER, MOVE_DYNAMIC_PUNCH, AI_TrySkillSwapOnAllyPlus3 - if_has_move AI_USER_PARTNER, MOVE_BLIZZARD, AI_TrySkillSwapOnAllyPlus3 - if_has_move AI_USER_PARTNER, MOVE_MEGAHORN, AI_TrySkillSwapOnAllyPlus3 - goto Score_Minus30 - -AI_TrySkillSwapOnAllyPlus3: - goto Score_Plus3 - -AI_TryStatusOnAlly: - get_ability AI_TARGET - if_not_equal ABILITY_GUTS, Score_Minus30 - if_status AI_TARGET, STATUS1_ANY, Score_Minus30 - if_hp_less_than AI_USER, 91, Score_Minus30 - goto Score_Plus5 - -AI_TryHelpingHandOnAlly: - if_random_less_than 64, Score_Minus1 - goto Score_Plus2 - -AI_TrySwaggerOnAlly: - if_has_no_physical_move AI_USER_PARTNER, Score_Minus30 - if_holds_item AI_TARGET, ITEM_PERSIM_BERRY, AI_TrySwaggerOnAlly2 - if_ability AI_USER_PARTNER, ABILITY_OWN_TEMPO, AI_TrySwaggerOnAlly2 - goto Score_Minus30 - -AI_TrySwaggerOnAlly2: - if_stat_level_more_than AI_TARGET, STAT_ATK, 7, AI_TrySwaggerOnAlly_End - score +3 - -AI_TrySwaggerOnAlly_End: - end - -AI_HPAware: - if_target_is_ally AI_TryOnAlly - if_hp_more_than AI_USER, 70, AI_HPAware_UserHasHighHP - if_hp_more_than AI_USER, 30, AI_HPAware_UserHasMediumHP - get_considered_move_effect - if_in_bytes AI_HPAware_DiscouragedEffectsWhenLowHP, AI_HPAware_TryToDiscourage - goto AI_HPAware_ConsiderTarget - -AI_HPAware_UserHasHighHP: - get_considered_move_effect - if_in_hwords AI_HPAware_DiscouragedEffectsWhenHighHP, AI_HPAware_TryToDiscourage - goto AI_HPAware_ConsiderTarget - -AI_HPAware_UserHasMediumHP: - get_considered_move_effect - if_in_bytes AI_HPAware_DiscouragedEffectsWhenMediumHP, AI_HPAware_TryToDiscourage - goto AI_HPAware_ConsiderTarget - -AI_HPAware_TryToDiscourage: - if_random_less_than 50, AI_HPAware_ConsiderTarget - score -2 - -AI_HPAware_ConsiderTarget: - if_hp_more_than AI_TARGET, 70, AI_HPAware_TargetHasHighHP - if_hp_more_than AI_TARGET, 30, AI_HPAware_TargetHasMediumHP - get_considered_move_effect - if_in_bytes AI_HPAware_DiscouragedEffectsWhenTargetLowHP, AI_HPAware_TargetTryToDiscourage - goto AI_HPAware_End - -AI_HPAware_TargetHasHighHP: - get_considered_move_effect - if_in_bytes AI_HPAware_DiscouragedEffectsWhenTargetHighHP, AI_HPAware_TargetTryToDiscourage - goto AI_HPAware_End - -AI_HPAware_TargetHasMediumHP: - get_considered_move_effect - if_in_bytes AI_HPAware_DiscouragedEffectsWhenTargetMediumHP, AI_HPAware_TargetTryToDiscourage - goto AI_HPAware_End - -AI_HPAware_TargetTryToDiscourage: - if_random_less_than 50, AI_HPAware_End - score -2 - -AI_HPAware_End: - end - -.align 1 -AI_HPAware_DiscouragedEffectsWhenHighHP: @ 82DE21F - .2byte EFFECT_EXPLOSION - .2byte EFFECT_RESTORE_HP - .2byte EFFECT_REST - .2byte EFFECT_DESTINY_BOND - .2byte EFFECT_FLAIL - .2byte EFFECT_ENDURE - .2byte EFFECT_MORNING_SUN - .2byte EFFECT_SYNTHESIS - .2byte EFFECT_MOONLIGHT - .2byte EFFECT_SHORE_UP - .2byte EFFECT_SOFTBOILED - .2byte EFFECT_ROOST - .2byte EFFECT_MEMENTO - .2byte EFFECT_GRUDGE - .2byte EFFECT_OVERHEAT - .2byte -1 - -AI_HPAware_DiscouragedEffectsWhenMediumHP: @ 82DE22D - .byte EFFECT_EXPLOSION - .byte EFFECT_ATTACK_UP - .byte EFFECT_DEFENSE_UP - .byte EFFECT_SPEED_UP - .byte EFFECT_SPECIAL_ATTACK_UP - .byte EFFECT_SPECIAL_DEFENSE_UP - .byte EFFECT_ACCURACY_UP - .byte EFFECT_EVASION_UP - .byte EFFECT_ATTACK_DOWN - .byte EFFECT_DEFENSE_DOWN - .byte EFFECT_SPEED_DOWN - .byte EFFECT_SPECIAL_ATTACK_DOWN - .byte EFFECT_SPECIAL_DEFENSE_DOWN - .byte EFFECT_ACCURACY_DOWN - .byte EFFECT_EVASION_DOWN - .byte EFFECT_BIDE - .byte EFFECT_CONVERSION - .byte EFFECT_LIGHT_SCREEN - .byte EFFECT_MIST - .byte EFFECT_FOCUS_ENERGY - .byte EFFECT_ATTACK_UP_2 - .byte EFFECT_DEFENSE_UP_2 - .byte EFFECT_SPEED_UP_2 - .byte EFFECT_SPECIAL_ATTACK_UP_2 - .byte EFFECT_SPECIAL_DEFENSE_UP_2 - .byte EFFECT_ACCURACY_UP_2 - .byte EFFECT_EVASION_UP_2 - .byte EFFECT_ATTACK_DOWN_2 - .byte EFFECT_DEFENSE_DOWN_2 - .byte EFFECT_SPEED_DOWN_2 - .byte EFFECT_SPECIAL_ATTACK_DOWN_2 - .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 - .byte EFFECT_ACCURACY_DOWN_2 - .byte EFFECT_EVASION_DOWN_2 - .byte EFFECT_CONVERSION_2 - .byte EFFECT_SAFEGUARD - .byte EFFECT_BELLY_DRUM - .byte EFFECT_TICKLE - .byte EFFECT_COSMIC_POWER - .byte EFFECT_BULK_UP - .byte EFFECT_CALM_MIND - .byte EFFECT_DRAGON_DANCE - .byte -1 - -AI_HPAware_DiscouragedEffectsWhenLowHP: @ 82DE258 - .byte EFFECT_ATTACK_UP - .byte EFFECT_DEFENSE_UP - .byte EFFECT_SPEED_UP - .byte EFFECT_SPECIAL_ATTACK_UP - .byte EFFECT_SPECIAL_DEFENSE_UP - .byte EFFECT_ACCURACY_UP - .byte EFFECT_EVASION_UP - .byte EFFECT_ATTACK_DOWN - .byte EFFECT_DEFENSE_DOWN - .byte EFFECT_SPEED_DOWN - .byte EFFECT_SPECIAL_ATTACK_DOWN - .byte EFFECT_SPECIAL_DEFENSE_DOWN - .byte EFFECT_ACCURACY_DOWN - .byte EFFECT_EVASION_DOWN - .byte EFFECT_BIDE - .byte EFFECT_CONVERSION - .byte EFFECT_LIGHT_SCREEN - .byte EFFECT_MIST - .byte EFFECT_FOCUS_ENERGY - .byte EFFECT_ATTACK_UP_2 - .byte EFFECT_DEFENSE_UP_2 - .byte EFFECT_SPEED_UP_2 - .byte EFFECT_SPECIAL_ATTACK_UP_2 - .byte EFFECT_SPECIAL_DEFENSE_UP_2 - .byte EFFECT_ACCURACY_UP_2 - .byte EFFECT_EVASION_UP_2 - .byte EFFECT_ATTACK_DOWN_2 - .byte EFFECT_DEFENSE_DOWN_2 - .byte EFFECT_SPEED_DOWN_2 - .byte EFFECT_SPECIAL_ATTACK_DOWN_2 - .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 - .byte EFFECT_ACCURACY_DOWN_2 - .byte EFFECT_EVASION_DOWN_2 - .byte EFFECT_RAGE - .byte EFFECT_CONVERSION_2 - .byte EFFECT_LOCK_ON - .byte EFFECT_SAFEGUARD - .byte EFFECT_BELLY_DRUM - .byte EFFECT_PSYCH_UP - .byte EFFECT_MIRROR_COAT - .byte EFFECT_SOLARBEAM - .byte EFFECT_ERUPTION - .byte EFFECT_TICKLE - .byte EFFECT_COSMIC_POWER - .byte EFFECT_BULK_UP - .byte EFFECT_CALM_MIND - .byte EFFECT_DRAGON_DANCE - .byte -1 - -AI_HPAware_DiscouragedEffectsWhenTargetHighHP: @ 82DE288 - .byte -1 - -AI_HPAware_DiscouragedEffectsWhenTargetMediumHP: @ 82DE289 - .byte EFFECT_ATTACK_UP - .byte EFFECT_DEFENSE_UP - .byte EFFECT_SPEED_UP - .byte EFFECT_SPECIAL_ATTACK_UP - .byte EFFECT_SPECIAL_DEFENSE_UP - .byte EFFECT_ACCURACY_UP - .byte EFFECT_EVASION_UP - .byte EFFECT_ATTACK_DOWN - .byte EFFECT_DEFENSE_DOWN - .byte EFFECT_SPEED_DOWN - .byte EFFECT_SPECIAL_ATTACK_DOWN - .byte EFFECT_SPECIAL_DEFENSE_DOWN - .byte EFFECT_ACCURACY_DOWN - .byte EFFECT_EVASION_DOWN - .byte EFFECT_MIST - .byte EFFECT_FOCUS_ENERGY - .byte EFFECT_ATTACK_UP_2 - .byte EFFECT_DEFENSE_UP_2 - .byte EFFECT_SPEED_UP_2 - .byte EFFECT_SPECIAL_ATTACK_UP_2 - .byte EFFECT_SPECIAL_DEFENSE_UP_2 - .byte EFFECT_ACCURACY_UP_2 - .byte EFFECT_EVASION_UP_2 - .byte EFFECT_ATTACK_DOWN_2 - .byte EFFECT_DEFENSE_DOWN_2 - .byte EFFECT_SPEED_DOWN_2 - .byte EFFECT_SPECIAL_ATTACK_DOWN_2 - .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 - .byte EFFECT_ACCURACY_DOWN_2 - .byte EFFECT_EVASION_DOWN_2 - .byte EFFECT_POISON - .byte EFFECT_PAIN_SPLIT - .byte EFFECT_PERISH_SONG - .byte EFFECT_SAFEGUARD - .byte EFFECT_TICKLE - .byte EFFECT_COSMIC_POWER - .byte EFFECT_BULK_UP - .byte EFFECT_CALM_MIND - .byte EFFECT_DRAGON_DANCE - .byte -1 - -AI_HPAware_DiscouragedEffectsWhenTargetLowHP: @ 82DE2B1 - .byte EFFECT_SLEEP - .byte EFFECT_EXPLOSION - .byte EFFECT_ATTACK_UP - .byte EFFECT_DEFENSE_UP - .byte EFFECT_SPEED_UP - .byte EFFECT_SPECIAL_ATTACK_UP - .byte EFFECT_SPECIAL_DEFENSE_UP - .byte EFFECT_ACCURACY_UP - .byte EFFECT_EVASION_UP - .byte EFFECT_ATTACK_DOWN - .byte EFFECT_DEFENSE_DOWN - .byte EFFECT_SPEED_DOWN - .byte EFFECT_SPECIAL_ATTACK_DOWN - .byte EFFECT_SPECIAL_DEFENSE_DOWN - .byte EFFECT_ACCURACY_DOWN - .byte EFFECT_EVASION_DOWN - .byte EFFECT_BIDE - .byte EFFECT_CONVERSION - .byte EFFECT_TOXIC - .byte EFFECT_LIGHT_SCREEN - .byte EFFECT_OHKO - .byte EFFECT_SUPER_FANG - .byte EFFECT_MIST - .byte EFFECT_FOCUS_ENERGY - .byte EFFECT_CONFUSE - .byte EFFECT_ATTACK_UP_2 - .byte EFFECT_DEFENSE_UP_2 - .byte EFFECT_SPEED_UP_2 - .byte EFFECT_SPECIAL_ATTACK_UP_2 - .byte EFFECT_SPECIAL_DEFENSE_UP_2 - .byte EFFECT_ACCURACY_UP_2 - .byte EFFECT_EVASION_UP_2 - .byte EFFECT_ATTACK_DOWN_2 - .byte EFFECT_DEFENSE_DOWN_2 - .byte EFFECT_SPEED_DOWN_2 - .byte EFFECT_SPECIAL_ATTACK_DOWN_2 - .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 - .byte EFFECT_ACCURACY_DOWN_2 - .byte EFFECT_EVASION_DOWN_2 - .byte EFFECT_POISON - .byte EFFECT_PARALYZE - .byte EFFECT_PAIN_SPLIT - .byte EFFECT_CONVERSION_2 - .byte EFFECT_LOCK_ON - .byte EFFECT_SPITE - .byte EFFECT_PERISH_SONG - .byte EFFECT_SWAGGER - .byte EFFECT_FURY_CUTTER - .byte EFFECT_ATTRACT - .byte EFFECT_SAFEGUARD - .byte EFFECT_PSYCH_UP - .byte EFFECT_MIRROR_COAT - .byte EFFECT_WILL_O_WISP - .byte EFFECT_TICKLE - .byte EFFECT_COSMIC_POWER - .byte EFFECT_BULK_UP - .byte EFFECT_CALM_MIND - .byte EFFECT_DRAGON_DANCE - .byte -1 - -AI_Unknown: - if_target_is_ally AI_TryOnAlly - if_not_effect EFFECT_SUNNY_DAY, AI_Unknown_End - if_equal 0, AI_Unknown_End - is_first_turn_for AI_USER - if_equal 0, AI_Unknown_End - score +5 - -AI_Unknown_End: @ 82DE308 - end - -AI_Roaming: - if_status2 AI_USER, STATUS2_WRAPPED, AI_Roaming_End - if_status2 AI_USER, STATUS2_ESCAPE_PREVENTION, AI_Roaming_End - get_ability AI_TARGET - if_equal ABILITY_SHADOW_TAG, AI_Roaming_End - get_ability AI_USER - if_equal ABILITY_LEVITATE, AI_Roaming_Flee - get_ability AI_TARGET - if_equal ABILITY_ARENA_TRAP, AI_Roaming_End - -AI_Roaming_Flee: @ 82DE335 - flee - -AI_Roaming_End: @ 82DE336 - end - -AI_Safari: - if_random_safari_flee AI_Safari_Flee - watch - -AI_Safari_Flee: - flee - -AI_FirstBattle: - if_hp_equal AI_TARGET, 20, AI_FirstBattle_Flee - if_hp_less_than AI_TARGET, 20, AI_FirstBattle_Flee - end - -AI_FirstBattle_Flee: - flee - -AI_Ret: - end diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index c62255f892..33182e8789 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -780,52 +780,48 @@ gBattleAnims_Moves:: .align 2 gBattleAnims_StatusConditions:: - .4byte Status_Poison - .4byte Status_Confusion - .4byte Status_Burn - .4byte Status_Infatuation - .4byte Status_Sleep - .4byte Status_Paralysis - .4byte Status_Freeze - .4byte Status_Curse - .4byte Status_Nightmare + .4byte Status_Poison @ B_ANIM_STATUS_PSN + .4byte Status_Confusion @ B_ANIM_STATUS_CONFUSION + .4byte Status_Burn @ B_ANIM_STATUS_BRN + .4byte Status_Infatuation @ B_ANIM_STATUS_INFATUATION + .4byte Status_Sleep @ B_ANIM_STATUS_SLP + .4byte Status_Paralysis @ B_ANIM_STATUS_PRZ + .4byte Status_Freeze @ B_ANIM_STATUS_FRZ + .4byte Status_Curse @ B_ANIM_STATUS_CURSED + .4byte Status_Nightmare @ B_ANIM_STATUS_NIGHTMARE .4byte Status_Powder .align 2 gBattleAnims_General:: - .4byte General_CastformChange - .4byte General_StatsChange - .4byte General_SubstituteFade - .4byte General_SubstituteAppear - .4byte General_PokeblockThrow - .4byte General_ItemKnockoff - .4byte General_TurnTrap - .4byte General_HeldItemEffect - .4byte General_SmokeballEscape - .4byte General_FocusBand - .4byte General_Rain - .4byte General_Sun - .4byte General_Sandstorm - .4byte General_Hail - .4byte General_LeechSeedDrain - .4byte General_MonHit - .4byte General_ItemSteal - .4byte General_SnatchMove - .4byte General_FutureSightHit - .4byte General_DoomDesireHit - .4byte General_FocusPunchSetUp - .4byte General_IngrainHeal - .4byte General_WishHeal - .4byte General_MegaEvolution - .4byte General_TerrainMisty - .4byte General_TerrainGrassy - .4byte General_TerrainElectric - .4byte General_TerrainPsychic - .4byte General_IllusionOff - .4byte General_FormChange - .4byte General_SlideOffScreen - .4byte General_RestoreBg - .4byte General_TotemFlare + .4byte General_CastformChange @ B_ANIM_CASTFORM_CHANGE + .4byte General_StatsChange @ B_ANIM_STATS_CHANGE + .4byte General_SubstituteFade @ B_ANIM_SUBSTITUTE_FADE + .4byte General_SubstituteAppear @ B_ANIM_SUBSTITUTE_APPEAR + .4byte General_PokeblockThrow @ B_ANIM_POKEBLOCK_THROW + .4byte General_ItemKnockoff @ B_ANIM_ITEM_KNOCKOFF + .4byte General_TurnTrap @ B_ANIM_TURN_TRAP + .4byte General_HeldItemEffect @ B_ANIM_HELD_ITEM_EFFECT + .4byte General_SmokeballEscape @ B_ANIM_SMOKEBALL_ESCAPE + .4byte General_HangedOn @ B_ANIM_HANGED_ON + .4byte General_Rain @ B_ANIM_RAIN_CONTINUES + .4byte General_Sun @ B_ANIM_SUN_CONTINUES + .4byte General_Sandstorm @ B_ANIM_SANDSTORM_CONTINUES + .4byte General_Hail @ B_ANIM_HAIL_CONTINUES + .4byte General_LeechSeedDrain @ B_ANIM_LEECH_SEED_DRAIN + .4byte General_MonHit @ B_ANIM_MON_HIT + .4byte General_ItemSteal @ B_ANIM_ITEM_STEAL + .4byte General_SnatchMove @ B_ANIM_SNATCH_MOVE + .4byte General_FutureSightHit @ B_ANIM_FUTURE_SIGHT_HIT + .4byte General_DoomDesireHit @ B_ANIM_DOOM_DESIRE_HIT + .4byte General_FocusPunchSetUp @ B_ANIM_FOCUS_PUNCH_SETUP + .4byte General_IngrainHeal @ B_ANIM_INGRAIN_HEAL + .4byte General_WishHeal @ B_ANIM_WISH_HEAL + .4byte General_MegaEvolution @ B_ANIM_MEGA_EVOLUTION + .4byte General_IllusionOff @ B_ANIM_ILLUSION_OFF + .4byte General_FormChange @ B_ANIM_FORM_CHANGE + .4byte General_SlideOffScreen @ B_ANIM_SLIDE_OFFSCREEN + .4byte General_RestoreBg @ B_ANIM_RESTORE_BG + .4byte General_TotemFlare @ B_ANIM_TOTEM_FLARE .align 2 gBattleAnims_Special:: @@ -867,6 +863,7 @@ Move_ROOST: Move_GRAVITY: fadetobg BG_COSMIC waitbgfadein + createvisualtask AnimTask_SetAnimTargetToAttackerOpposite, 1 playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeAndSinkMon, 5, ANIM_ATTACKER, 2, 0, 96, 30 createvisualtask AnimTask_ShakeAndSinkMon, 5, ANIM_DEF_PARTNER, 2, 0, 96, 30 @@ -900,12 +897,12 @@ Move_MIRACLE_EYE: waitforvisualfinish call UnsetPsychicBg clearmonbg ANIM_DEF_PARTNER - end + end Move_WAKE_UP_SLAP: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_SMELLINGSALT_EFFECT + loadspritegfx ANIM_TAG_SMELLINGSALT_EFFECT monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 @@ -1125,7 +1122,7 @@ Move_METAL_BURST: loadspritegfx ANIM_TAG_ECLIPSING_ORB loadspritegfx ANIM_TAG_RED_ORB loopsewithpan SE_M_TRI_ATTACK, -64, 18, 3 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish setarg 7, -1 @@ -1140,7 +1137,7 @@ Move_METAL_BURST: createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 20, 192 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 224 waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 waitforvisualfinish end @@ -1174,7 +1171,7 @@ UTurnVisible: goto UTurnContinue Move_CLOSE_COMBAT: - loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET call SetHighSpeedBg createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 0 @@ -1458,12 +1455,12 @@ Move_GASTRO_ACID: end Move_LUCKY_CHANT: - loadspritegfx ANIM_TAG_GOLD_STARS - monbg ANIM_DEF_PARTNER - setalpha 12, 8 + loadspritegfx ANIM_TAG_GOLD_STARS + monbg ANIM_DEF_PARTNER + setalpha 12, 8 playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER - createsprite gLuckyChantBigStarsSpriteTemplate, 2, 4, 0, -18, 8, 140 - createsprite gLuckyChantSmallStarsSpriteTemplate, 2, 4, 16, -18, 8, 100 + createsprite gLuckyChantBigStarsSpriteTemplate, 2, 4, 0, -18, 8, 140 + createsprite gLuckyChantSmallStarsSpriteTemplate, 2, 4, 16, -18, 8, 100 createsprite gLuckyChantSmallStarsSpriteTemplate, 2, 4, -16, -18, 8, 100 delay 15 createsprite gLuckyChantBigStarsSpriteTemplate 2, 4, 0, -18, 8, 140 @@ -1477,11 +1474,11 @@ Move_LUCKY_CHANT: createsprite gLuckyChantSmallStarsSpriteTemplate, 2, 4, 16, -18, 0, 100 createsprite gLuckyChantSmallStarsSpriteTemplate, 2, 4, -16, -18, 0, 100 delay 30 - createsprite gLuckyChantSmallStarsSpriteTemplate, 2, 4, 20, -16, 14, 80 - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER - blendoff - unloadspritegfx ANIM_TAG_GOLD_STARS + createsprite gLuckyChantSmallStarsSpriteTemplate, 2, 4, 20, -16, 14, 80 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + unloadspritegfx ANIM_TAG_GOLD_STARS end Move_ME_FIRST: @@ -1594,64 +1591,64 @@ Move_GUARD_SWAP: end Move_PUNISHMENT: - loadspritegfx ANIM_TAG_SCRATCH - loadspritegfx ANIM_TAG_POISON_BUBBLE - monbg ANIM_TARGET - setalpha 12, 8 - playsewithpan 155, SOUND_PAN_TARGET + loadspritegfx ANIM_TAG_SCRATCH + loadspritegfx ANIM_TAG_POISON_BUBBLE + monbg ANIM_TARGET + setalpha 12, 8 + playsewithpan 155, SOUND_PAN_TARGET createsprite gPunishmentSpriteTemplate, 2, 4, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - waitforvisualfinish - clearmonbg ANIM_TARGET - blendoff - waitforvisualfinish - loadspritegfx ANIM_TAG_IMPACT - monbg ANIM_TARGET - setalpha 12, 8 - playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gPunishmentImpactSpriteTemplate 2, 4, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon 2, ANIM_TARGET, 3, 0, 6, 1 - waitforvisualfinish - clearmonbg ANIM_TARGET - blendoff + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end Move_LAST_RESORT: - fadetobg BG_COSMIC - waitbgfadeout + fadetobg BG_COSMIC + waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 2, 4, 0, 128, 0, -1 - waitbgfadein - loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER - createsprite gComplexPaletteBlendSpriteTemplate, 2, 7, 2, 4, 2, RGB(31, 31, 31), 10, 0, 0 - waitforvisualfinish + waitbgfadein + loadspritegfx ANIM_TAG_IMPACT + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER + createsprite gComplexPaletteBlendSpriteTemplate, 2, 7, 2, 4, 2, RGB(31, 31, 31), 10, 0, 0 + waitforvisualfinish delay 10 playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitplaysewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 2, 4 - waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, 2, 5, 1, 0, 16, 16, RGB(31, 31, 31) + waitforvisualfinish + createsprite gSimplePaletteBlendSpriteTemplate, 2, 5, 1, 0, 16, 16, RGB(31, 31, 31) createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 0, 20, 0, 0, 4 delay 3 - waitforvisualfinish - playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + waitforvisualfinish + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, 132, 4, -10, 0, 1, 0 - createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 1, -32, 0, 0, 3 - waitforvisualfinish + createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 1, -32, 0, 0, 3 + waitforvisualfinish createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 8, -256, 0, 0 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 8, -256, 1, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 8, -256, 1, 0 createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 0, 4, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 4, 0, 12, 1 - createsprite gSimplePaletteBlendSpriteTemplate, 2, 5, 1, 2, 16, 0, RGB(31, 31, 31) - waitforvisualfinish + createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 4, 0, 12, 1 + createsprite gSimplePaletteBlendSpriteTemplate, 2, 5, 1, 2, 16, 0, RGB(31, 31, 31) + waitforvisualfinish createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 8, -256, 0, 1 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 8, -256, 1, 1 - waitforvisualfinish + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 8, -256, 1, 1 + waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 0, 0, 5 delay 3 createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 1, 0, 7 - waitforvisualfinish - call UnsetHighSpeedBg + waitforvisualfinish + call UnsetHighSpeedBg end Move_WORRY_SEED: @@ -1669,16 +1666,16 @@ Move_WORRY_SEED: end Move_SUCKER_PUNCH: - loadspritegfx ANIM_TAG_POISON_JAB - loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_POISON_JAB + loadspritegfx ANIM_TAG_IMPACT createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 0, 20, 0, 0, 4 createsprite gSuckerPunchSpriteTemplate, 130, 6, -18, 5, 40, 8, 160, 0 delay 4 - createsprite gBasicHitSplatSpriteTemplate, 130, 4, -8, 8, 1, 2 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 6, 384, 1, 2 - playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - waitforvisualfinish - createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 0, 1, 4 + createsprite gBasicHitSplatSpriteTemplate, 130, 4, -8, 8, 1, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 6, 384, 1, 2 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + waitforvisualfinish + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 0, 1, 4 end Move_TOXIC_SPIKES: @@ -1705,89 +1702,89 @@ Move_HEART_SWAP: end Move_AQUA_RING: - loadspritegfx ANIM_TAG_BLUE_STAR - loadspritegfx ANIM_TAG_SMALL_BUBBLES - loadspritegfx ANIM_TAG_ICE_CRYSTALS - loadspritegfx ANIM_TAG_GUARD_RING - monbg ANIM_ATK_PARTNER - setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 23, 1 - delay 5 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 10, 10, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, -15, 0, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 20, 10, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 0, -10, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, -10, 15, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 25, 20, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, -20, 20, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 12, 0, 25, 0 - setalpha 8, 8 - playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER, - createsprite gGuardRingSpriteTemplate, 2, 0 - delay 4 - createsprite gGuardRingSpriteTemplate, 2, 0 - delay 4 - createsprite gGuardRingSpriteTemplate, 2, 0 - waitforvisualfinish + loadspritegfx ANIM_TAG_BLUE_STAR + loadspritegfx ANIM_TAG_SMALL_BUBBLES + loadspritegfx ANIM_TAG_ICE_CRYSTALS + loadspritegfx ANIM_TAG_GUARD_RING + monbg ANIM_ATK_PARTNER + setalpha 12, 8 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 23, 1 + delay 5 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 10, 10, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, -15, 0, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 20, 10, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 0, -10, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, -10, 15, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 25, 20, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, -20, 20, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 12, 0, 25, 0 + setalpha 8, 8 + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER, + createsprite gGuardRingSpriteTemplate, 2, 0 + delay 4 + createsprite gGuardRingSpriteTemplate, 2, 0 + delay 4 + createsprite gGuardRingSpriteTemplate, 2, 0 + waitforvisualfinish playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 10, 0, 2, 10, RGB(31, 31, 31) - waitforvisualfinish - clearmonbg ANIM_ATK_PARTNER - blendoff - delay 1 - call HealingEffect - waitforvisualfinish + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + delay 1 + call HealingEffect + waitforvisualfinish end Move_MAGNET_RISE: - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_SPARK_2 - delay 0 - createvisualtask AnimTask_BlendColorCycle 2, 31, -31, 1, 5, 5, RGB(31, 31, 20) - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - createvisualtask AnimTask_WindUpLunge, 5, 7, 0, -12, 4, 10, 10, 12, 6 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 32, 24, 190, 12, 0, 1, 0 - delay 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 80, 24, 22, 12, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 156, 24, 121, 13, 0, 1, 1 - delay 0 - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - delay 4 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 100, 24, 60, 10, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 170, 24, 42, 11, 0, 1, 1 - delay 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 238, 24, 165, 10, 0, 1, 1 + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_SPARK_2 delay 0 + createvisualtask AnimTask_BlendColorCycle 2, 31, -31, 1, 5, 5, RGB(31, 31, 20) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + createvisualtask AnimTask_WindUpLunge, 5, 7, 0, -12, 4, 10, 10, 12, 6 createsprite gSparkElectricitySpriteTemplate, 0, 7, 32, 24, 190, 12, 0, 1, 0 - delay 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 80, 24, 22, 12, 0, 1, 0 + delay 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 80, 24, 22, 12, 0, 1, 0 createsprite gSparkElectricitySpriteTemplate, 0, 7, 156, 24, 121, 13, 0, 1, 1 delay 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 100, 24, 60, 10, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 170, 24, 42, 11, 0, 1, 1 - delay 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 238, 24, 165, 10, 0, 1, 1 + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + delay 4 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 100, 24, 60, 10, 0, 1, 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 170, 24, 42, 11, 0, 1, 1 delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, 31, -31, 1, 0, 0, RGB(31, 31, 20) - delay 20 - createvisualtask AnimTask_BlendColorCycle, 2, 31, -31, 1, 7, 7, RGB(31, 31, 20) - waitforvisualfinish - createvisualtask AnimTask_BlendColorCycle, 2, 31, -31, 1, 0, 0, RGB(31, 31, 20) + createsprite gSparkElectricitySpriteTemplate, 0, 7, 238, 24, 165, 10, 0, 1, 1 + delay 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 32, 24, 190, 12, 0, 1, 0 + delay 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 80, 24, 22, 12, 0, 1, 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 156, 24, 121, 13, 0, 1, 1 + delay 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 100, 24, 60, 10, 0, 1, 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 170, 24, 42, 11, 0, 1, 1 + delay 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 238, 24, 165, 10, 0, 1, 1 + delay 0 + createvisualtask AnimTask_BlendColorCycle, 2, 31, -31, 1, 0, 0, RGB(31, 31, 20) + delay 20 + createvisualtask AnimTask_BlendColorCycle, 2, 31, -31, 1, 7, 7, RGB(31, 31, 20) + waitforvisualfinish + createvisualtask AnimTask_BlendColorCycle, 2, 31, -31, 1, 0, 0, RGB(31, 31, 20) waitforvisualfinish end @@ -1825,7 +1822,7 @@ Move_FLARE_BLITZ: createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 waitforvisualfinish call SetImpactBackground - createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 createsprite gFireSpreadSpriteTemplate, 0x81, 0, 10, 192, 176, 40 @@ -1855,9 +1852,9 @@ Move_FLARE_BLITZ: createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 createsprite gFireSpreadSpriteTemplate, 0x81, 0, 10, -224, -32, 40 createsprite gFireSpreadSpriteTemplate, 0x81, 0, 10, 112, -128, 40 - playsewithpan SE_M_COMET_PUNCH, +63 + playsewithpan SE_M_COMET_PUNCH, +63 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_BLACK - playsewithpan SE_M_COMET_PUNCH, +63 + playsewithpan SE_M_COMET_PUNCH, +63 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 9 waitforvisualfinish @@ -1869,21 +1866,21 @@ Move_FLARE_BLITZ: end Move_FORCE_PALM: - loadspritegfx ANIM_TAG_SHADOW_BALL - loadspritegfx ANIM_TAG_HANDS_AND_FEET - loadspritegfx ANIM_TAG_IMPACT - monbg ANIM_DEF_PARTNER - monbgprio_28 ANIM_TARGET - setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET + loadspritegfx ANIM_TAG_SHADOW_BALL + loadspritegfx ANIM_TAG_HANDS_AND_FEET + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gKarateChopSpriteTemplate, 2, 8, -16, 0, 0, 0, 10, 1, 3, 0 - waitforvisualfinish - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + waitforvisualfinish + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gForcePalmSpriteTemplate 3, 4, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER - blendoff + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff end Move_AURA_SPHERE: @@ -2077,57 +2074,57 @@ Move_NIGHT_SLASH: end Move_AQUA_TAIL: - loadspritegfx ANIM_TAG_WATER_IMPACT - loadspritegfx ANIM_TAG_SMALL_BUBBLES - loadspritegfx ANIM_TAG_ICE_CRYSTALS - monbg ANIM_DEF_PARTNER - setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 23, 1 - delay 5 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 10, 10, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, -16, 0, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 20, 10, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 0, -10, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, -10, 15, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 25, 20, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, -20, 20, 25, 0 - delay 4 - playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER - createsprite gSmallBubblePairSpriteTemplate, 2, 4, 12, 0, 25, 0 - waitforvisualfinish - loadspritegfx ANIM_TAG_SLAM_HIT_2 - loadspritegfx ANIM_TAG_IMPACT - createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 6 - delay 4 - playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - createsprite gAquaTailKnockOffSpriteTemplate, 130, 2, -16, -16 - delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, 2, 7, 31, 5, 1, RGB(31, 31, 31), 10, 0, 0 - createsprite gAquaTailHitSpriteTemplate, 131, 4, 0, 0, 1, 2 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET - createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 1, -12, 10, 0, 3 - createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 0, 0, 5 - delay 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 0, 3, 6, 1 - delay 5 - createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 1, 0, 6 - delay 10 - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER - blendoff + loadspritegfx ANIM_TAG_WATER_IMPACT + loadspritegfx ANIM_TAG_SMALL_BUBBLES + loadspritegfx ANIM_TAG_ICE_CRYSTALS + monbg ANIM_DEF_PARTNER + setalpha 12, 8 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 23, 1 + delay 5 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 10, 10, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, -16, 0, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 20, 10, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 0, -10, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, -10, 15, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 25, 20, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, -20, 20, 25, 0 + delay 4 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, 2, 4, 12, 0, 25, 0 + waitforvisualfinish + loadspritegfx ANIM_TAG_SLAM_HIT_2 + loadspritegfx ANIM_TAG_IMPACT + createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 6 + delay 4 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET + createsprite gAquaTailKnockOffSpriteTemplate, 130, 2, -16, -16 + delay 8 + createsprite gComplexPaletteBlendSpriteTemplate, 2, 7, 31, 5, 1, RGB(31, 31, 31), 10, 0, 0 + createsprite gAquaTailHitSpriteTemplate, 131, 4, 0, 0, 1, 2 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 1, -12, 10, 0, 3 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 0, 0, 5 + delay 3 + createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 0, 3, 6, 1 + delay 5 + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 1, 0, 6 + delay 10 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff end Move_SEED_BOMB: @@ -2242,67 +2239,67 @@ Move_DRAGON_PULSE: monbg ANIM_TARGET setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, RGB_BLACK - waitforvisualfinish - playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 4, 0, 15 - call DragonPulseParticle - call DragonPulseParticle - createvisualtask AnimTask_SwayMon, 5, 0, 6, 51200, 4, ANIM_TARGET - createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(30, 10, 13) - call DragonPulseParticle - call DragonPulseParticle - call DragonPulseParticle - call DragonPulseParticle - call DragonPulseParticle - call DragonPulseParticle - call DragonPulseParticle - call DragonPulseParticle - call DragonPulseParticle - waitforvisualfinish - delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 7, 0, RGB_BLACK - waitforvisualfinish + waitforvisualfinish + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 4, 0, 15 + call DragonPulseParticle + call DragonPulseParticle + createvisualtask AnimTask_SwayMon, 5, 0, 6, 51200, 4, ANIM_TARGET + createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(30, 10, 13) + call DragonPulseParticle + call DragonPulseParticle + call DragonPulseParticle + call DragonPulseParticle + call DragonPulseParticle + call DragonPulseParticle + call DragonPulseParticle + call DragonPulseParticle + call DragonPulseParticle + waitforvisualfinish + delay 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 7, 0, RGB_BLACK + waitforvisualfinish blendoff - clearmonbg ANIM_TARGET - end + clearmonbg ANIM_TARGET + end DragonPulseParticle: - createsprite gDragonPulseSpriteTemplate, 130, 6, 16, 0, 0, 0, 13, 0 - delay 4 - return + createsprite gDragonPulseSpriteTemplate, 130, 6, 16, 0, 0, 0, 13, 0 + delay 4 + return Move_DRAGON_RUSH: - loadspritegfx ANIM_TAG_SLAM_HIT_2 - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_ROCKS - loadspritegfx ANIM_TAG_RED_HEART - createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 6 - delay 4 - playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - createsprite gDragonRushSpriteTemplate, 131, 2, -16, -16 - delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, 2, 7, 31, 5, 1, RGB(31, 31, 31), 10, 0, 0 - createsprite gBasicHitSplatSpriteTemplate, 3, 4, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 - waitforvisualfinish - playsewithpan 131, SOUND_PAN_TARGET - createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 0, 20, 24, 14, 2 - createsprite gRockFragmentSpriteTemplate, 2, 6, 5, 0, -20, 24, 14, 1 - createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 5, 20, -24, 14, 2 - createsprite gRockFragmentSpriteTemplate, 2, 6, -5, 0, 20, 24, 14, 2 - createsprite gRockFragmentSpriteTemplate, 2, 6, 0, -5, 30, 18, 8, 2 - createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 0, 30, -18, 8, 2 - createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 0, -30, 18, 8, 2 - createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 0, -30, -18, 8, 2 - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 7, 1 - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER - blendoff + loadspritegfx ANIM_TAG_SLAM_HIT_2 + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ROCKS + loadspritegfx ANIM_TAG_RED_HEART + createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 6 + delay 4 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET + createsprite gDragonRushSpriteTemplate, 131, 2, -16, -16 + delay 8 + createsprite gComplexPaletteBlendSpriteTemplate, 2, 7, 31, 5, 1, RGB(31, 31, 31), 10, 0, 0 + createsprite gBasicHitSplatSpriteTemplate, 3, 4, 0, 0, 1, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 + waitforvisualfinish + playsewithpan 131, SOUND_PAN_TARGET + createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 0, 20, 24, 14, 2 + createsprite gRockFragmentSpriteTemplate, 2, 6, 5, 0, -20, 24, 14, 1 + createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 5, 20, -24, 14, 2 + createsprite gRockFragmentSpriteTemplate, 2, 6, -5, 0, 20, 24, 14, 2 + createsprite gRockFragmentSpriteTemplate, 2, 6, 0, -5, 30, 18, 8, 2 + createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 0, 30, -18, 8, 2 + createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 0, -30, 18, 8, 2 + createsprite gRockFragmentSpriteTemplate, 2, 6, 0, 0, -30, -18, 8, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 7, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff end Move_POWER_GEM: @ Copy of Hidden Power with background blackened - loadspritegfx ANIM_TAG_POWER_GEM + loadspritegfx ANIM_TAG_POWER_GEM createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 1, 0, 7, RGB_BLACK - waitforvisualfinish + waitforvisualfinish playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 waitforvisualfinish @@ -2328,7 +2325,7 @@ Move_POWER_GEM: @ Copy of Hidden Power with background blackened createsprite gPowerGemOrbScatterSpriteTemplate, ANIM_TARGET, 2, 128 createsprite gPowerGemOrbScatterSpriteTemplate, ANIM_TARGET, 2, 160 createsprite gPowerGemOrbScatterSpriteTemplate, ANIM_TARGET, 2, 192 - createsprite gPowerGemOrbScatterSpriteTemplate, ANIM_TARGET, 2, 224 + createsprite gPowerGemOrbScatterSpriteTemplate, ANIM_TARGET, 2, 224 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 1, 7, 0, RGB_BLACK waitforvisualfinish end @@ -2355,8 +2352,8 @@ Move_DRAIN_PUNCH: end Move_VACUUM_WAVE: - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_HANDS_AND_FEET + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_THIN_RING monbg ANIM_TARGET setalpha 12, 8 @@ -2432,45 +2429,45 @@ Move_BRAVE_BIRD: end Move_EARTH_POWER: - loadspritegfx ANIM_TAG_SMALL_EMBER - loadspritegfx ANIM_TAG_FIRE_PLUME + loadspritegfx ANIM_TAG_SMALL_EMBER + loadspritegfx ANIM_TAG_FIRE_PLUME createvisualtask AnimTask_HorizontalShake, 3, 5, 10, 50 createvisualtask AnimTask_HorizontalShake, 3, 1, 10, 50 playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 40 loopsewithpan 145, SOUND_PAN_TARGET 11, 3 - createvisualtask AnimTask_ShakeMon 5, 5, ANIM_TARGET, 0, 3, 25, 1 + createvisualtask AnimTask_ShakeMon 5, 5, ANIM_TARGET, 0, 3, 25, 1 createsprite gDragonRageFirePlumeSpriteTemplate, 194, 3, 1, 5, 0 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, 194, 3, 1, -10, -15 + createsprite gDragonRageFirePlumeSpriteTemplate, 194, 3, 1, -10, -15 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, 130, 3, 1, 0, 25 + createsprite gDragonRageFirePlumeSpriteTemplate, 130, 3, 1, 0, 25 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, 194, 3, 1, 15, 5 + createsprite gDragonRageFirePlumeSpriteTemplate, 194, 3, 1, 15, 5 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, 194, 3, 1, -25, 0 + createsprite gDragonRageFirePlumeSpriteTemplate, 194, 3, 1, -25, 0 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, 130, 3, 1, 30, 30 + createsprite gDragonRageFirePlumeSpriteTemplate, 130, 3, 1, 30, 30 delay 1 - createsprite gDragonRageFirePlumeSpriteTemplate, 130, 3, 1, -27, 25 + createsprite gDragonRageFirePlumeSpriteTemplate, 130, 3, 1, -27, 25 delay 1 createsprite gDragonRageFirePlumeSpriteTemplate, 194, 3, 1, 0, 8 - waitforvisualfinish + waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, 194, 3, 0, 0, 4 - waitforvisualfinish + waitforvisualfinish end Move_SWITCHEROO: - fadetobg BG_DARK - waitbgfadein - loadspritegfx ANIM_TAG_ITEM_BAG - loadspritegfx ANIM_TAG_SPEED_DUST - createsprite gTrickBagSpriteTemplate, 2, 2, -39, 80 - createsprite gTrickBagSpriteTemplate, 2, 2, -39, 208 + fadetobg BG_DARK + waitbgfadein + loadspritegfx ANIM_TAG_ITEM_BAG + loadspritegfx ANIM_TAG_SPEED_DUST + createsprite gTrickBagSpriteTemplate, 2, 2, -39, 80 + createsprite gTrickBagSpriteTemplate, 2, 2, -39, 208 delay 16 playsewithpan SE_M_SKETCH, 0 createvisualtask AnimTask_StretchTargetUp, 3, 0 - createvisualtask AnimTask_StretchAttackerUp, 3, 0 + createvisualtask AnimTask_StretchAttackerUp, 3, 0 delay 30 playsewithpan SE_M_DOUBLE_TEAM, 0 delay 24 @@ -2485,11 +2482,11 @@ Move_SWITCHEROO: playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 playsewithpan SE_M_ATTRACT, 0 - createvisualtask AnimTask_ShakeMon, 3, ANIM_ATTACKER, 5, 0, 7, 2 - createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 5, 0, 7, 2 - waitforvisualfinish - restorebg - waitbgfadein + createvisualtask AnimTask_ShakeMon, 3, ANIM_ATTACKER, 5, 0, 7, 2 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 5, 0, 7, 2 + waitforvisualfinish + restorebg + waitbgfadein end Move_GIGA_IMPACT: @@ -2502,44 +2499,44 @@ Move_GIGA_IMPACT: delay 11 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 26, 0, 0, 5 delay 6 - @monbg ANIM_DEF_PARTNER - @setalpha 12, 8 + @monbg ANIM_DEF_PARTNER + @setalpha 12, 8 @createvisualtask AnimTask_WindUpLunge, 5, 7, 0, -18, 8, 23, 10, 40, 10 @delay 35 createsprite gComplexPaletteBlendSpriteTemplate, 2, 7, 31, 3, 1, 0, 10, 0, 0 createsprite gBasicHitSplatSpriteTemplate, 4, 4, -10, 0, 1, 0 - playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET - call SetImpactBackground + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + call SetImpactBackground delay 1 createsprite gSlideMonToOffsetSpriteTemplate 2, 5, 1, -16, 0, 0, 4 - waitforvisualfinish + waitforvisualfinish createvisualtask AnimTask_ShakeMonInPlace 2, 5, 1, 4, 0, 12, 1 - waitforvisualfinish + waitforvisualfinish delay 2 createsprite gSlideMonToOriginalPosSpriteTemplate 2, 3, 0, 0, 5 delay 3 createsprite gSlideMonToOriginalPosSpriteTemplate 2, 3, 1, 0, 6 - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER - blendoff - restorebg - waitbgfadein - end + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + restorebg + waitbgfadein + end Move_NASTY_PLOT: - loadspritegfx ANIM_TAG_AMNESIA - fadetobg BG_DARK - waitbgfadeout + loadspritegfx ANIM_TAG_AMNESIA + fadetobg BG_DARK + waitbgfadeout createvisualtask AnimTask_FadeScreenToWhite, 5 - waitbgfadein + waitbgfadein delay 8 createsprite gQuestionMarkSpriteTemplate, 20, 0 - playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER, + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER, delay 54 loopsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER, 16, 3 - waitforvisualfinish - call UnsetPsychicBg - end + waitforvisualfinish + call UnsetPsychicBg + end Move_BULLET_PUNCH: loadspritegfx ANIM_TAG_IMPACT @@ -2596,28 +2593,28 @@ Move_BULLET_PUNCH: end Move_AVALANCHE: - loadspritegfx ANIM_TAG_ROCKS - loadspritegfx ANIM_TAG_ICE_CHUNK - monbg ANIM_DEF_PARTNER - createsprite gShakeMonOrTerrainSpriteTemplate, 2, 4, 7, 1, 11, 1 + loadspritegfx ANIM_TAG_ROCKS + loadspritegfx ANIM_TAG_ICE_CHUNK + monbg ANIM_DEF_PARTNER + createsprite gShakeMonOrTerrainSpriteTemplate, 2, 4, 7, 1, 11, 1 createsprite gAvalancheSpriteTemplate, 130, 4, -5, 1, -5, 1 - playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET - delay 2 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + delay 2 createsprite gAvalancheSpriteTemplate, 130, 4, 5, 0, 6, 1 - playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET - delay 2 - createsprite gAvalancheSpriteTemplate, 130, 4, 19, 1, 10, 1 - playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET - delay 2 - createsprite gAvalancheSpriteTemplate 130, 4, -17, 2, -20, 1 - playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 50, 1 - createvisualtask AnimTask_ShakeMon, 2, ANIM_DEF_PARTNER, 0, 5, 50, 1 - delay 2 - call SnowSlide1 - call SnowSlide1 - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + delay 2 + createsprite gAvalancheSpriteTemplate, 130, 4, 19, 1, 10, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + delay 2 + createsprite gAvalancheSpriteTemplate 130, 4, -17, 2, -20, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 50, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_DEF_PARTNER, 0, 5, 50, 1 + delay 2 + call SnowSlide1 + call SnowSlide1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER end SnowSlide1: createsprite gAvalancheSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 @@ -2677,35 +2674,35 @@ Move_ICE_SHARD: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 5, 7, 0, RGB(0, 20, 31) waitforvisualfinish restorebg - waitbgfadein + waitbgfadein clearmonbg ANIM_TARGET blendoff end Move_SHADOW_CLAW: - loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL - loadspritegfx ANIM_TAG_CLAW_SLASH - loadspritegfx ANIM_TAG_TORN_METAL + loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL + loadspritegfx ANIM_TAG_CLAW_SLASH + loadspritegfx ANIM_TAG_TORN_METAL fadetobg BG_GHOST waitbgfadein - monbg ANIM_TARGET - setalpha 12, 8 - createsprite gHorizontalLungeSpriteTemplate ANIM_ATTACKER, 2, 6, 4 + monbg ANIM_TARGET + setalpha 12, 8 + createsprite gHorizontalLungeSpriteTemplate ANIM_ATTACKER, 2, 6, 4 delay 4 - createvisualtask AnimTask_ShakeMon2 2, ANIM_TARGET, 2, 0, 18, 1 - createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 - createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2 2, ANIM_TARGET, 2, 0, 18, 1 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 12, - createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 - createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET - waitforvisualfinish + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 + createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + waitforvisualfinish restorebg - waitbgfadein - waitforvisualfinish - blendoff - clearmonbg ANIM_TARGET + waitbgfadein + waitforvisualfinish + blendoff + clearmonbg ANIM_TARGET end Move_THUNDER_FANG: @@ -2898,21 +2895,21 @@ Move_MUD_BOMB: end Move_PSYCHO_CUT: - loadspritegfx ANIM_TAG_SPIRAL - loadspritegfx ANIM_TAG_PSYCHO_CUT - monbg ANIM_ATK_PARTNER + loadspritegfx ANIM_TAG_SPIRAL + loadspritegfx ANIM_TAG_PSYCHO_CUT + monbg ANIM_ATK_PARTNER createsprite gPsychoCutSpiralSpriteTemplate, 2, 4, 0, 0, 0, 0 createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 0, 4, RGB_BLACK - createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 0, 10, RGB(20, 12, 23) + createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 0, 10, RGB(20, 12, 23) delay 30 - clearmonbg ANIM_ATK_PARTNER - waitforvisualfinish - monbg ANIM_TARGET - monbgprio_28 ANIM_TARGET - setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, + clearmonbg ANIM_ATK_PARTNER + waitforvisualfinish + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, createsprite gPsychoCutSpriteTemplate, 130, 5, 20, 0, -8, 0, 20 - waitforvisualfinish + waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 4, 0, RGB_BLACK createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 10, 0, RGB(20, 12, 23) clearmonbg ANIM_TARGET @@ -2921,34 +2918,34 @@ Move_PSYCHO_CUT: end Move_ZEN_HEADBUTT: - loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT - loadspritegfx ANIM_TAG_WATER_IMPACT - monbg ANIM_ATTACKER - setalpha 12, 8 + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + loadspritegfx ANIM_TAG_WATER_IMPACT + monbg ANIM_ATTACKER + setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, 2, 5, 1, 2, 0, 4, 0 - waitforvisualfinish + waitforvisualfinish createsprite gZenHeadbuttSpriteTemplate, 66, 1, 0 - delay 18, + delay 18, playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER waitforvisualfinish delay 2, playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER - loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_IMPACT createsprite gBowMonSpriteTemplate, 2, 1, 0 - playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER - waitforvisualfinish + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER + waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, 2, 1, 1 - waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 0, 2, 0, 4, 1 - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 - createsprite gBowMonSpriteTemplate, 2, 1, 2 + waitforvisualfinish + createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 0, 2, 0, 4, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 + createsprite gBowMonSpriteTemplate, 2, 1, 2 createsprite gAquaTailHitSpriteTemplate, 131, 4, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - waitforvisualfinish + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, 2, 5, 1, 4, 4, 0, 0 - clearmonbg ANIM_ATTACKER - blendoff + clearmonbg ANIM_ATTACKER + blendoff delay 1 end @@ -2956,11 +2953,11 @@ Move_MIRROR_SHOT: loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 1, 0, 0 waitforvisualfinish - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_WHITE_CIRCLE_OF_LIGHT - createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 10, RGB_WHITEALPHA + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_WHITE_CIRCLE_OF_LIGHT + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 10, RGB_WHITEALPHA createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(21, 21, 21) - waitforvisualfinish + waitforvisualfinish createsprite gRandomPosHitSplatSpriteTemplate, 131, 2, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 3 @@ -2969,21 +2966,21 @@ Move_MIRROR_SHOT: delay 3 createsprite gRandomPosHitSplatSpriteTemplate, 131, 2, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET - delay 3 + delay 3 createsprite gRandomPosHitSplatSpriteTemplate, 131, 2, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET - delay 3 + delay 3 createsprite gRandomPosHitSplatSpriteTemplate, 131, 2, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET - delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, 131, 2, 1, 2 + delay 3 + createsprite gRandomPosHitSplatSpriteTemplate, 131, 2, 1, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 10, 0, RGB_WHITEALPHA - createvisualtask AnimTask_HorizontalShake, 5, 1, 5, 14 + createvisualtask AnimTask_HorizontalShake, 5, 1, 5, 14 waitforvisualfinish - clearmonbg ANIM_ATTACKER - blendoff + clearmonbg ANIM_ATTACKER + blendoff end Move_FLASH_CANNON: @@ -3027,55 +3024,55 @@ Move_ROCK_CLIMB: createvisualtask AnimTask_Splash, 2, 2, ANIM_ATTACKER, 3 delay 8 loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 3 - waitforvisualfinish - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_MUD_SAND - loadspritegfx ANIM_TAG_ROCKS - monbg ANIM_DEF_PARTNER - monbgprio_28 ANIM_TARGET - setalpha 12, 8 - createvisualtask AnimTask_Rollout, 2, 0 - waitforvisualfinish + waitforvisualfinish + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_MUD_SAND + loadspritegfx ANIM_TAG_ROCKS + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + createvisualtask AnimTask_Rollout, 2, 0 + waitforvisualfinish createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 5, 0, 1, 30, 1, RGB(0, 16, 1) - createsprite gBasicHitSplatSpriteTemplate, 131, 4, -15, 8, 1, 1 - playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - delay 1 - playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, 131, 4, -15, 8, 1, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + delay 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, 131, 4, -5, -12, 1, 1 delay 1 - playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - createsprite gBasicHitSplatSpriteTemplate, 131, 4, 0, -32, 1, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, 131, 4, 0, -32, 1, 1 delay 1 - playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - createsprite gBasicHitSplatSpriteTemplate, 131, 4, 5, -52, 1, 1 - createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 1, -25, 16, 1, 4 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, 131, 4, 5, -52, 1, 1 + createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 1, -25, 16, 1, 4 delay 4 createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 0, 3, 6, 1 delay 30 createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 0, 0, 6 delay 4 createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 1, 0, 6 - clearmonbg ANIM_DEF_PARTNER - blendoff + clearmonbg ANIM_DEF_PARTNER + blendoff end Move_DEFOG: loadspritegfx ANIM_TAG_WHITE_CIRCLE_OF_LIGHT - monbg ANIM_ATTACKER - setalpha 12, 8 + monbg ANIM_ATTACKER + setalpha 12, 8 playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER - createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 + createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 delay 20 - createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, -1 - createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, 2, 0, 16, -1 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, -1 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, 2, 0, 16, -1 waitforvisualfinish waitforvisualfinish delay 16 createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 16, 0, -1 - waitforvisualfinish - clearmonbg ANIM_ATTACKER - blendoff - end + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + end Move_TRICK_ROOM:: call InitRoomAnimation @@ -3093,53 +3090,53 @@ InitRoomAnimation: return Move_DRACO_METEOR: - loadspritegfx ANIM_TAG_WARM_ROCK - loadspritegfx ANIM_TAG_GOLD_STARS - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_ICE_SPIKES - playsewithpan SE_M_CHARGE, SOUND_PAN_TARGET - fadetobg BG_COSMIC - waitbgfadein - waitforvisualfinish - createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -47, -63, 72, 32, 30 - delay 10 - createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -111, -63, 8, 32, 30 - delay 40 - createsprite gDracoMetorSpriteTemplate, 131, 4, 0, 0, 0, 30 - createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -79, -63, 40, 32, 30 - delay 20 - playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET - delay 10 - restorebg - waitbgfadein - waitforvisualfinish + loadspritegfx ANIM_TAG_WARM_ROCK + loadspritegfx ANIM_TAG_GOLD_STARS + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ICE_SPIKES + playsewithpan SE_M_CHARGE, SOUND_PAN_TARGET + fadetobg BG_COSMIC + waitbgfadein + waitforvisualfinish + createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -47, -63, 72, 32, 30 + delay 10 + createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -111, -63, 8, 32, 30 + delay 40 + createsprite gDracoMetorSpriteTemplate, 131, 4, 0, 0, 0, 30 + createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -79, -63, 40, 32, 30 + delay 20 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + delay 10 + restorebg + waitbgfadein + waitforvisualfinish end Move_DISCHARGE: - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_SPARK_2 - delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, RGB(31, 31, 20) - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_SPARK_2 + delay 0 + createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, RGB(31, 31, 20) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0 delay 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1 delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, RGB(31, 31, 20) - delay 10 - createvisualtask AnimTask_BlendColorCycle 2, 3, -31, 1, 5, 5, RGB(31, 31, 20) - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, RGB(31, 31, 20) + delay 10 + createvisualtask AnimTask_BlendColorCycle 2, 3, -31, 1, 5, 5, RGB(31, 31, 20) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1 - loadspritegfx ANIM_TAG_WHITE_CIRCLE_OF_LIGHT - loadspritegfx ANIM_TAG_IMPACT - waitbgfadein - monbg ANIM_ATTACKER - setalpha 12, 8 - playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER - createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 - delay 20 + loadspritegfx ANIM_TAG_WHITE_CIRCLE_OF_LIGHT + loadspritegfx ANIM_TAG_IMPACT + waitbgfadein + monbg ANIM_ATTACKER + setalpha 12, 8 + playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER + createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 + delay 20 createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, RGB_WHITEALPHA createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, 2, 0, 16, RGB_WHITEALPHA waitforvisualfinish @@ -3179,11 +3176,11 @@ Move_DISCHARGE: createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 5, 14 createvisualtask AnimTask_HorizontalShake, 5, ANIM_DEF_PARTNER, 5, 14 createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATK_PARTNER, 5, 14 - waitforvisualfinish - clearmonbg ANIM_ATTACKER - blendoff - call DischargeElectrify - waitforvisualfinish + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + call DischargeElectrify + waitforvisualfinish end DischargeElectrify: playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET @@ -3221,23 +3218,23 @@ DischargeElectrify: return Move_LAVA_PLUME: - loadspritegfx ANIM_TAG_FIRE_PLUME + loadspritegfx ANIM_TAG_FIRE_PLUME loopsewithpan 152, SOUND_PAN_ATTACKER, 9, 2 - createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_RED + createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_RED createvisualtask AnimTask_ShakeMon2 2, ANIM_TARGET, 1, 0, 32, 1 createvisualtask AnimTask_ShakeMon2 2, ANIM_DEF_PARTNER, 1, 0, 32, 1 createvisualtask AnimTask_ShakeMon2 2, ANIM_ATK_PARTNER, 1, 0, 32, 1 - waitforvisualfinish + waitforvisualfinish createsprite gLavaPlumeSpriteTemplate, 130, 1, 0 createsprite gLavaPlumeSpriteTemplate, 130, 1, 32 createsprite gLavaPlumeSpriteTemplate, 130, 1, 64 - createsprite gLavaPlumeSpriteTemplate, 130, 1, 96 - createsprite gLavaPlumeSpriteTemplate, 130, 1, 128 - createsprite gLavaPlumeSpriteTemplate, 130, 1, 160 - createsprite gLavaPlumeSpriteTemplate, 130, 1, 192 + createsprite gLavaPlumeSpriteTemplate, 130, 1, 96 + createsprite gLavaPlumeSpriteTemplate, 130, 1, 128 + createsprite gLavaPlumeSpriteTemplate, 130, 1, 160 + createsprite gLavaPlumeSpriteTemplate, 130, 1, 192 createsprite gLavaPlumeSpriteTemplate, 130, 1, 224 playsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER - waitforvisualfinish + waitforvisualfinish end Move_LEAF_STORM: @@ -3367,49 +3364,49 @@ Move_POWER_WHIP: end Move_ROCK_WRECKER: - jumpargeq 7, 1, RockWrecker_1 + jumpargeq 7, 1, RockWrecker_1 fadetobg BG_ROCK_WRECKER - waitbgfadeout + waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -1024, 0, 1, -1 - goto RockWrecker_2 + goto RockWrecker_2 RockWrecker_1: - fadetobg BG_ROCK_WRECKER - waitbgfadeout + fadetobg BG_ROCK_WRECKER + waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -1024, 0, 0, -1 - loadspritegfx ANIM_TAG_ROCKS - loadspritegfx ANIM_TAG_IMPACT - createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 6 + loadspritegfx ANIM_TAG_ROCKS + loadspritegfx ANIM_TAG_IMPACT + createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 6 delay 3 playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER - createsprite gRockBlastRockSpriteTemplate, 130, 6, 16, 0, 0, 0, 25, 257 - waitforvisualfinish + createsprite gRockBlastRockSpriteTemplate, 130, 6, 16, 0, 0, 0, 25, 257 + waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, 131, 4, 0, 0, 1, 1 - playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET - createsprite gRockFragmentSpriteTemplate, 130, 6, 0, 0, 20, 24, 14, 2 + playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET + createsprite gRockFragmentSpriteTemplate, 130, 6, 0, 0, 20, 24, 14, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 createsprite gRockFragmentSpriteTemplate, 130, 6, 5, 0, -20, 24, 14, 1 - createsprite gRockFragmentSpriteTemplate, 130, 6, 0, 5, 20, -18, 14, 2 - createsprite gRockFragmentSpriteTemplate, 130, 6, -5, 0, -20, -18, 14, 2 - waitforvisualfinish - call UnsetPsychicBg - end + createsprite gRockFragmentSpriteTemplate, 130, 6, 0, 5, 20, -18, 14, 2 + createsprite gRockFragmentSpriteTemplate, 130, 6, -5, 0, -20, -18, 14, 2 + waitforvisualfinish + call UnsetPsychicBg + end RockWrecker_2: - loadspritegfx ANIM_TAG_ROCKS - loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ROCKS + loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 6 - delay 3 - playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER - createsprite gRockBlastRockSpriteTemplate, 130, 6, 16, 0, 0, 0, 25, 257 - waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, 131, 4, 0, 0, 1, 1 - playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET + delay 3 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER + createsprite gRockBlastRockSpriteTemplate, 130, 6, 16, 0, 0, 0, 25, 257 + waitforvisualfinish + createsprite gBasicHitSplatSpriteTemplate, 131, 4, 0, 0, 1, 1 + playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate 130, 6, 0, 0, 20, 24, 14, 2 - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 - createsprite gRockFragmentSpriteTemplate 130, 6, 5, 0, -20, 24, 14, 1 - createsprite gRockFragmentSpriteTemplate 130, 6, 0, 5, 20, -18, 14, 2 - createsprite gRockFragmentSpriteTemplate 130, 6, -5, 0, -20, -18, 14, 2 - waitforvisualfinish - call UnsetPsychicBg + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 + createsprite gRockFragmentSpriteTemplate 130, 6, 5, 0, -20, 24, 14, 1 + createsprite gRockFragmentSpriteTemplate 130, 6, 0, 5, 20, -18, 14, 2 + createsprite gRockFragmentSpriteTemplate 130, 6, -5, 0, -20, -18, 14, 2 + waitforvisualfinish + call UnsetPsychicBg end Move_CROSS_POISON: @@ -3429,54 +3426,54 @@ Move_CROSS_POISON: end Move_GUNK_SHOT: - loadspritegfx ANIM_TAG_WATER_ORB - loadspritegfx ANIM_TAG_POISON_BUBBLE - loadspritegfx ANIM_TAG_WATER_IMPACT - loadspritegfx ANIM_TAG_POISON_BUBBLE - monbg ANIM_DEF_PARTNER - monbgprio_28 ANIM_TARGET - setalpha 12, 8 + loadspritegfx ANIM_TAG_WATER_ORB + loadspritegfx ANIM_TAG_POISON_BUBBLE + loadspritegfx ANIM_TAG_WATER_IMPACT + loadspritegfx ANIM_TAG_POISON_BUBBLE + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 12, 8 createvisualtask AnimTask_ShakeMon 5, 5, ANIM_ATTACKER, 0, 2, 40, 1 delay 6 - panse_1B SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 + panse_1B SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 1, 100 - call GunkShotParticles - call GunkShotParticles - call GunkShotParticles + call GunkShotParticles + call GunkShotParticles + call GunkShotParticles createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 27, 1 loopsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET, 3, 15 - call GunkShotImpact - call GunkShotParticles - call GunkShotParticles - call GunkShotImpact - call GunkShotParticles - call GunkShotParticles - call GunkShotImpact - call GunkShotParticles - call GunkShotParticles - call GunkShotImpact - call GunkShotParticles - call GunkShotParticles - call GunkShotImpact + call GunkShotImpact + call GunkShotParticles + call GunkShotParticles + call GunkShotImpact + call GunkShotParticles + call GunkShotParticles + call GunkShotImpact + call GunkShotParticles + call GunkShotParticles + call GunkShotImpact + call GunkShotParticles + call GunkShotParticles + call GunkShotImpact delay 1 delay 1 call GunkShotImpact call PoisonBubblesEffect - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER - blendoff - end + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end GunkShotParticles: - createsprite gGunkShoParticlesSpriteTemplate, 3, 4, 10, 10, 0, 16 + createsprite gGunkShoParticlesSpriteTemplate, 3, 4, 10, 10, 0, 16 createsprite gGunkShoParticlesSpriteTemplate, 3, 4, 10, 10, 0, -16 delay 1 createsprite gGunkShoParticlesSpriteTemplate, 3, 4, 10, 10, 0, 16 - createsprite gGunkShoParticlesSpriteTemplate, 3, 4, 10, 10, 0, -16 + createsprite gGunkShoParticlesSpriteTemplate, 3, 4, 10, 10, 0, -16 delay 1 - return + return GunkShotImpact: - createsprite gGunkShotImpactSpriteTemplate, 4, 4, 0, 15, 1, 1 - createsprite gGunkShotImpactSpriteTemplate, 4, 4, 0, -15, 1, 1 + createsprite gGunkShotImpactSpriteTemplate, 4, 4, 0, 15, 1, 1 + createsprite gGunkShotImpactSpriteTemplate, 4, 4, 0, -15, 1, 1 return Move_IRON_HEAD: @@ -3497,46 +3494,46 @@ Move_IRON_HEAD: createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 waitforvisualfinish end Move_MAGNET_BOMB: - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_SPARK_2 - delay 0 - playsewithpan 119, 192 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 32, 24, 190, 12, 0, 1, 0 - delay 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 80, 24, 22, 12, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, 0, 7, 156, 24, 121, 13, 0, 1, 1 - delay 0 - playsewithpan 119, 192 - createsprite gSparkElectricitySpriteTemplate 0, 7, 100, 24, 60, 10, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate 0, 7, 170, 24, 42, 11, 0, 1, 1 - delay 0 - createsprite gSparkElectricitySpriteTemplate 0, 7, 238, 24, 165, 10, 0, 1, 1 - delay 0 - loadspritegfx ANIM_TAG_RED_ORB - playsewithpan 152, SOUND_PAN_ATTACKER + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_SPARK_2 + delay 0 + playsewithpan 119, 192 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 32, 24, 190, 12, 0, 1, 0 + delay 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 80, 24, 22, 12, 0, 1, 0 + createsprite gSparkElectricitySpriteTemplate, 0, 7, 156, 24, 121, 13, 0, 1, 1 + delay 0 + playsewithpan 119, 192 + createsprite gSparkElectricitySpriteTemplate 0, 7, 100, 24, 60, 10, 0, 1, 0 + createsprite gSparkElectricitySpriteTemplate 0, 7, 170, 24, 42, 11, 0, 1, 1 + delay 0 + createsprite gSparkElectricitySpriteTemplate 0, 7, 238, 24, 165, 10, 0, 1, 1 + delay 0 + loadspritegfx ANIM_TAG_RED_ORB + playsewithpan 152, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 waitforvisualfinish delay 30 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(19, 31, 31), 12, 5, 1 delay 4 createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 - playsewithpan 217, SOUND_PAN_ATTACKER - createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 - createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 - createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 - createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 126 - createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 168 - createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 210 - delay 52 - setarg 7, -1 - playsewithpan 207, SOUND_PAN_ATTACKER - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 - createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 0 + playsewithpan 217, SOUND_PAN_ATTACKER + createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 + createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 + createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 + createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 126 + createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 168 + createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 210 + delay 52 + setarg 7, -1 + playsewithpan 207, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 + createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 32 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 64 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 96 @@ -3544,32 +3541,32 @@ Move_MAGNET_BOMB: createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 160 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 192 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 224 - loadspritegfx ANIM_TAG_GRAY_SMOKE - loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan 177, 63 - createsprite gOctazookaSmokeSpriteTemplate, 130, 4, 8, 8, 1, 0 - delay 2 - createsprite gOctazookaSmokeSpriteTemplate, 130, 4, -8, -8, 1, 0 - delay 2 - createsprite gOctazookaSmokeSpriteTemplate, 130, 4, 8, -8, 1, 0 - delay 2 - createsprite gOctazookaSmokeSpriteTemplate, 130, 4, -8, 8, 1, 0 - waitforvisualfinish - playsewithpan 177, 63 - createsprite gOctazookaSmokeSpriteTemplate, 130, 4, 8, 8, 1, 0 - delay 2 - createsprite gOctazookaSmokeSpriteTemplate, 130, 4, -8, -8, 1, 0 - delay 2 - createsprite gOctazookaSmokeSpriteTemplate, 130, 4, 8, -8, 1, 0 - delay 2 - createsprite gOctazookaSmokeSpriteTemplate, 130, 4, -8, 8, 1, 0 - waitforvisualfinish + loadspritegfx ANIM_TAG_GRAY_SMOKE + loadspritegfx ANIM_TAG_BLACK_BALL + playsewithpan 177, 63 + createsprite gOctazookaSmokeSpriteTemplate, 130, 4, 8, 8, 1, 0 + delay 2 + createsprite gOctazookaSmokeSpriteTemplate, 130, 4, -8, -8, 1, 0 + delay 2 + createsprite gOctazookaSmokeSpriteTemplate, 130, 4, 8, -8, 1, 0 + delay 2 + createsprite gOctazookaSmokeSpriteTemplate, 130, 4, -8, 8, 1, 0 + waitforvisualfinish + playsewithpan 177, 63 + createsprite gOctazookaSmokeSpriteTemplate, 130, 4, 8, 8, 1, 0 + delay 2 + createsprite gOctazookaSmokeSpriteTemplate, 130, 4, -8, -8, 1, 0 + delay 2 + createsprite gOctazookaSmokeSpriteTemplate, 130, 4, 8, -8, 1, 0 + delay 2 + createsprite gOctazookaSmokeSpriteTemplate, 130, 4, -8, 8, 1, 0 + waitforvisualfinish end Move_STONE_EDGE: loadspritegfx ANIM_TAG_STONE_EDGE loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW SOUND_PAN_TARGET createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 28, 528, 30, 13, 50, 1 delay 2 createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 32, 480, 20, 16, -46, 1 @@ -3579,7 +3576,7 @@ Move_STONE_EDGE: delay 2 createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 31, 400, 25, 11, -42, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 28, 512, 25, 16, 46, 1 + createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 28, 512, 25, 16, 46, 1 delay 2 createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 33, 464, 30, 15, 49, 1 delay 2 @@ -3593,7 +3590,7 @@ Move_STONE_EDGE: delay 2 createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 28, 512, 25, 16, 46, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 33, 464, 30, 15, 49, 1 + createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 33, 464, 30, 15, 49, 1 delay 2 createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 28, 528, 30, 13, 50, 1 delay 2 @@ -3605,40 +3602,40 @@ Move_STONE_EDGE: delay 2 createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 28, 512, 25, 16, 46, 1 delay 2 - createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 33, 464, 30, 15, 49, 1 + createsprite gStoneEdgeSpriteTemplate, 130, 7, 0, 33, 464, 30, 15, 49, 1 delay 2 createsprite gBasicHitSplatSpriteTemplate, 131, 4, -32, -16, 1, 3 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 3, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 3, 3, 0, 12, 1 delay 4 createsprite gRandomPosHitSplatSpriteTemplate, 131, 2, 1, 3 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 createsprite gRandomPosHitSplatSpriteTemplate, 131, 2, 1, 3 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 - createsprite gBasicHitSplatSpriteTemplate, 131, 4, 32, 20, 1, 3 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER + createsprite gBasicHitSplatSpriteTemplate, 131, 4, 32, 20, 1, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER blendoff end Move_CAPTIVATE: - loadspritegfx ANIM_TAG_MAGENTA_HEART - loadspritegfx ANIM_TAG_SPARKLE_2 + loadspritegfx ANIM_TAG_MAGENTA_HEART + loadspritegfx ANIM_TAG_SPARKLE_2 createvisualtask AnimTask_RockMonBackAndForth, 5, 3, 0, 2, 0 createsprite gMagentaHeartSpriteTemplate, 3, 2, 0, 20 playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 - createsprite gMagentaHeartSpriteTemplate, 3, 2, -20, 20 + createsprite gMagentaHeartSpriteTemplate, 3, 2, -20, 20 playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, 3, 2, 20, 20 - playsewithpan 228, SOUND_PAN_ATTACKER, - call GrantingStarsEffect - waitforvisualfinish + playsewithpan 228, SOUND_PAN_ATTACKER, + call GrantingStarsEffect + waitforvisualfinish end Move_STEALTH_ROCK: @@ -3659,16 +3656,16 @@ Move_STEALTH_ROCK: end Move_GRASS_KNOT: - loadspritegfx ANIM_TAG_RAZOR_LEAF - loadspritegfx ANIM_TAG_IMPACT - createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 0, 20, 0, 0, 4 - createsprite gGrassKnotSpriteTemplate, 130, 6, -18, 19, 40, 8, 160, 0 + loadspritegfx ANIM_TAG_RAZOR_LEAF + loadspritegfx ANIM_TAG_IMPACT + createsprite gSlideMonToOffsetSpriteTemplate, 2, 5, 0, 20, 0, 0, 4 + createsprite gGrassKnotSpriteTemplate, 130, 6, -18, 19, 40, 8, 160, 0 delay 4 - createsprite gBasicHitSplatSpriteTemplate, 130, 4, -8, 8, 1, 2 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 6, 384, 1, 2 - playsewithpan SE_M_VITAL_THROW2 SOUND_PAN_TARGET - waitforvisualfinish - createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 0, 1, 4 + createsprite gBasicHitSplatSpriteTemplate, 130, 4, -8, 8, 1, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 6, 384, 1, 2 + playsewithpan SE_M_VITAL_THROW2 SOUND_PAN_TARGET + waitforvisualfinish + createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 3, 0, 1, 4 end Move_CHATTER: @@ -3928,161 +3925,161 @@ Move_WOOD_HAMMER: end Move_AQUA_JET: - loadspritegfx ANIM_TAG_SPARKLE_6 - loadspritegfx ANIM_TAG_ROUND_SHADOW + loadspritegfx ANIM_TAG_SPARKLE_6 + loadspritegfx ANIM_TAG_ROUND_SHADOW loadspritegfx ANIM_TAG_SPLASH - playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER - createsprite gDiveBallSpriteTemplate, 2, 4, 0, 0, 13, 336 - waitforvisualfinish + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER + createsprite gDiveBallSpriteTemplate, 2, 4, 0, 0, 13, 336 + waitforvisualfinish playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER - createsprite gDiveWaterSplashSpriteTemplate, 3, 1, 0 - call DiveSetUpWaterDroplets - call DiveSetUpWaterDroplets - call DiveSetUpWaterDroplets - call DiveSetUpWaterDroplets - call DiveSetUpWaterDroplets - loadspritegfx ANIM_TAG_WATER_IMPACT - loadspritegfx ANIM_TAG_SMALL_BUBBLES - monbg ANIM_DEF_PARTNER - setalpha 12, 8 - playsewithpan SE_M_EXPLOSION, SOUND_PAN_TARGET - createsprite gDiveWaterSplashSpriteTemplate, 131, 1, 1 - call DiveAttackWaterDroplets - call DiveAttackWaterDroplets - call DiveAttackWaterDroplets - call DiveAttackWaterDroplets - call DiveAttackWaterDroplets - delay 12 - call RisingWaterHitEffect - waitforvisualfinish - visible 0 - clearmonbg ANIM_DEF_PARTNER - blendoff + createsprite gDiveWaterSplashSpriteTemplate, 3, 1, 0 + call DiveSetUpWaterDroplets + call DiveSetUpWaterDroplets + call DiveSetUpWaterDroplets + call DiveSetUpWaterDroplets + call DiveSetUpWaterDroplets + loadspritegfx ANIM_TAG_WATER_IMPACT + loadspritegfx ANIM_TAG_SMALL_BUBBLES + monbg ANIM_DEF_PARTNER + setalpha 12, 8 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_TARGET + createsprite gDiveWaterSplashSpriteTemplate, 131, 1, 1 + call DiveAttackWaterDroplets + call DiveAttackWaterDroplets + call DiveAttackWaterDroplets + call DiveAttackWaterDroplets + call DiveAttackWaterDroplets + delay 12 + call RisingWaterHitEffect + waitforvisualfinish + visible 0 + clearmonbg ANIM_DEF_PARTNER + blendoff end Move_ATTACK_ORDER: - loadspritegfx ANIM_TAG_ATTACK_ORDER - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_ROCKS - monbg ANIM_DEF_PARTNER - monbgprio_28 ANIM_TARGET - playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 70, 5, 70, 30 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 55, 6, 60, 25 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 60, 7, 60, 30 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 55, 10, 60, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 100, 50, 4, 50, 26 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 105, 25, 8, 60, 20 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 40, 10, 48, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 30, 6, 45, 25 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 35, 10, 60, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 105, 20, 8, 40, 0 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 20, 255, 15, 32, 0 - createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 110, 10, 8, 32, 20 - waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate 131, 4, -32, -16, 1, 3 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET - createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 3, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 3, 0, 12, 1 - delay 4 - createsprite gRandomPosHitSplatSpriteTemplate 131, 2, 1, 3 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET - delay 4 - createsprite gRandomPosHitSplatSpriteTemplate 131, 2, 1, 3 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET - delay 4 - createsprite gBasicHitSplatSpriteTemplate 131, 4, 32, 20, 1, 3 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER - blendoff + loadspritegfx ANIM_TAG_ATTACK_ORDER + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ROCKS + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 70, 5, 70, 30 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 55, 6, 60, 25 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 60, 7, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 55, 10, 60, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 100, 50, 4, 50, 26 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 105, 25, 8, 60, 20 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 40, 10, 48, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 30, 6, 45, 25 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 120, 35, 10, 60, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 105, 20, 8, 40, 0 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 20, 255, 15, 32, 0 + createsprite gAttackOrderParticleSpriteTemplate, ANIM_TARGET, 5, 110, 10, 8, 32, 20 + waitforvisualfinish + createsprite gBasicHitSplatSpriteTemplate 131, 4, -32, -16, 1, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 3, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, 5, 1, 3, 0, 12, 1 + delay 4 + createsprite gRandomPosHitSplatSpriteTemplate 131, 2, 1, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + delay 4 + createsprite gRandomPosHitSplatSpriteTemplate 131, 2, 1, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + delay 4 + createsprite gBasicHitSplatSpriteTemplate 131, 4, 32, 20, 1, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff end Move_DEFEND_ORDER: - loadspritegfx ANIM_TAG_ATTACK_ORDER - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_ROCKS - monbg ANIM_DEF_PARTNER - monbgprio_28 ANIM_TARGET - playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 120, 70, 5, 70, 30 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 55, 6, 60, 25 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 60, 7, 60, 30 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 55, 10, 60, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 100, 50, 4, 50, 26 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 105, 25, 8, 60, 20 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 40, 10, 48, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 120, 30, 6, 45, 25 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 35, 10, 60, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 105, 20, 8, 40, 0 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 20, 255, 15, 32, 0 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 110, 10, 8, 32, 20 - waitforvisualfinish - loadspritegfx ANIM_TAG_BLUE_STAR - waitforvisualfinish - clearmonbg ANIM_ATK_PARTNER - blendoff - delay 1 - call BideSetUp - waitforvisualfinish + loadspritegfx ANIM_TAG_ATTACK_ORDER + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ROCKS + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 120, 70, 5, 70, 30 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 55, 6, 60, 25 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 60, 7, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 55, 10, 60, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 100, 50, 4, 50, 26 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 105, 25, 8, 60, 20 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 40, 10, 48, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 120, 30, 6, 45, 25 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 35, 10, 60, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 105, 20, 8, 40, 0 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 20, 255, 15, 32, 0 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 110, 10, 8, 32, 20 + waitforvisualfinish + loadspritegfx ANIM_TAG_BLUE_STAR + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + delay 1 + call BideSetUp + waitforvisualfinish end Move_HEAL_ORDER: - loadspritegfx ANIM_TAG_ATTACK_ORDER - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_ROCKS - monbg ANIM_DEF_PARTNER - monbgprio_28 ANIM_TARGET - playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 120, 70, 5, 70, 30 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 55, 6, 60, 25 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 60, 7, 60, 30 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 55, 10, 60, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 100, 50, 4, 50, 26 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 105, 25, 8, 60, 20 - delay 1 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 40, 10, 48, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 120, 30, 6, 45, 25 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 35, 10, 60, 30 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 105, 20, 8, 40, 0 - delay 3 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 20, 255, 15, 32, 0 - createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 110, 10, 8, 32, 20 - waitforvisualfinish - loadspritegfx ANIM_TAG_BLUE_STAR - waitforvisualfinish - clearmonbg ANIM_ATK_PARTNER - blendoff - delay 1 - call HealingEffect - waitforvisualfinish + loadspritegfx ANIM_TAG_ATTACK_ORDER + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ROCKS + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_TARGET + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 120, 70, 5, 70, 30 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 55, 6, 60, 25 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 60, 7, 60, 30 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 55, 10, 60, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 100, 50, 4, 50, 26 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 105, 25, 8, 60, 20 + delay 1 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 40, 10, 48, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 120, 30, 6, 45, 25 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 115, 35, 10, 60, 30 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 105, 20, 8, 40, 0 + delay 3 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 20, 255, 15, 32, 0 + createsprite gAttackOrderParticleSpriteTemplate, 130, 5, 110, 10, 8, 32, 20 + waitforvisualfinish + loadspritegfx ANIM_TAG_BLUE_STAR + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + delay 1 + call HealingEffect + waitforvisualfinish end Move_HEAD_SMASH: loadspritegfx ANIM_TAG_IMPACT - call SetImpactBackground + call SetImpactBackground createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish @@ -4103,25 +4100,25 @@ Move_HEAD_SMASH: end Move_DOUBLE_HIT: - loadspritegfx ANIM_TAG_IMPACT - monbg ANIM_TARGET - setalpha 12, 8 + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_TARGET + setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, 2, 4, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 8 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, 2, 2, 4, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, 2, 4, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 8 - waitforvisualfinish - clearmonbg ANIM_TARGET - blendoff + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end Move_ROAR_OF_TIME: @@ -4200,23 +4197,23 @@ Move_SPECIAL_REND: end Move_LUNAR_DANCE: - loadspritegfx ANIM_TAG_MOON - loadspritegfx ANIM_TAG_GREEN_SPARKLE - loadspritegfx ANIM_TAG_HOLLOW_ORB - setalpha 0, 16 + loadspritegfx ANIM_TAG_MOON + loadspritegfx ANIM_TAG_GREEN_SPARKLE + loadspritegfx ANIM_TAG_HOLLOW_ORB + setalpha 0, 16 createsprite gSimplePaletteBlendSpriteTemplate, 2, 5, 1, 1, 0, 16, 0 - waitforvisualfinish + waitforvisualfinish createsprite gMoonSpriteTemplate, 2, 2, 120, 56 createvisualtask AnimTask_AlphaFadeIn, 3, 5, 0, 16, 16, 0, 1 - playsewithpan 211, 0 + playsewithpan 211, 0 delay 30 - createsprite gMoonlightSparkleSpriteTemplate, 40, 2, -12, 0 + createsprite gMoonlightSparkleSpriteTemplate, 40, 2, -12, 0 delay 30 createsprite gMoonlightSparkleSpriteTemplate, 40, 2, -18, 0 delay 30 createsprite gMoonlightSparkleSpriteTemplate, 40, 2, 21, 0 delay 30 - createsprite gMoonlightSparkleSpriteTemplate, 40, 2, 0, 0 + createsprite gMoonlightSparkleSpriteTemplate, 40, 2, 0, 0 delay 30 createsprite gMoonlightSparkleSpriteTemplate, 40, 2, 10, 0 delay 20 @@ -4226,18 +4223,18 @@ Move_LUNAR_DANCE: delay 8 createvisualtask AnimTask_BlendPalInAndOutByTag, 5, 5, ANIM_TAG_HOLLOW_ORB, RGB(0, 0, 19), 14, 0, 3 createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 0 - createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 43 - createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 85 - createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 128 - createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 170 + createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 43 + createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 85 + createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 128 + createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 170 createsprite gDragonDanceOrbSpriteTemplate, 2, 1, 213 delay 30 playsewithpan 203, SOUND_PAN_ATTACKER delay 30 playsewithpan 203, SOUND_PAN_ATTACKER - waitforvisualfinish - clearmonbg ANIM_ATTACKER - delay 1 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 1 end Move_CRUSH_GRIP: @@ -4266,22 +4263,22 @@ Move_CRUSH_GRIP: end Move_MAGMA_STORM: - loadspritegfx ANIM_TAG_SMALL_EMBER + loadspritegfx ANIM_TAG_SMALL_EMBER fadetobg BG_MAGMA_STORM @Add new bg waitbgfadeout createvisualtask AnimTask_MoveSeismicTossBg, 3 - playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET loopsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET, 5, 8 createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1 createvisualtask AnimTask_BlendColorCycle, 2, 6, 4, 2, 2, 0, 12, RGB(22, 9, 7) - call FireSpinEffect - call FireSpinEffect - createvisualtask AnimTask_BlendColorCycle, 2, 6, 4, 2, 2, 0, 12, RGB(22, 9, 7) - call FireSpinEffect call FireSpinEffect - createvisualtask AnimTask_BlendColorCycle, 2, 6, 4, 2, 2, 0, 12, RGB(22, 9, 7) - call FireSpinEffect + call FireSpinEffect + createvisualtask AnimTask_BlendColorCycle, 2, 6, 4, 2, 2, 0, 12, RGB(22, 9, 7) + call FireSpinEffect + call FireSpinEffect + createvisualtask AnimTask_BlendColorCycle, 2, 6, 4, 2, 2, 0, 12, RGB(22, 9, 7) + call FireSpinEffect restorebg waitbgfadeout setarg 7, 0xFFF @@ -4407,22 +4404,22 @@ Move_OMINOUS_WIND: panse_1B 132, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET 2, 0 playsewithpan 228, 0 delay 0 - monbg ANIM_DEF_PARTNER - @bankBG_over_partnerBG - delay 0 - createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 5, 1, 0, 0, 0, 0 + monbg ANIM_DEF_PARTNER + @bankBG_over_partnerBG delay 0 - createvisualtask AnimTask_GetAttackerSide, 2, 0 - jumpargeq 7, 1, OminousWindFadeToBg - fadetobg BG_GHOST - waitbgfadeout - createvisualtask AnimTask_StartSlidingBg, 5, RGB(0, 16, 1), 0, 0, -1 - goto OminousWindHit + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 5, 1, 0, 0, 0, 0 + delay 0 + createvisualtask AnimTask_GetAttackerSide, 2, 0 + jumpargeq 7, 1, OminousWindFadeToBg + fadetobg BG_GHOST + waitbgfadeout + createvisualtask AnimTask_StartSlidingBg, 5, RGB(0, 16, 1), 0, 0, -1 + goto OminousWindHit OminousWindFadeToBg: - fadetobg BG_GHOST - waitbgfadeout + fadetobg BG_GHOST + waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -1535, 0, 0, -1 - goto OminousWindHit + goto OminousWindHit OminousWindHit: delay 0 createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 0, 4, 4, RGB_BLACK @@ -4462,56 +4459,56 @@ OminousWindHit: end Move_SHADOW_FORCE: - loadspritegfx ANIM_TAG_ROUND_SHADOW - loadspritegfx ANIM_TAG_IMPACT - choosetwoturnanim ShadowForcePrep ShadowForceAttack + loadspritegfx ANIM_TAG_ROUND_SHADOW + loadspritegfx ANIM_TAG_IMPACT + choosetwoturnanim ShadowForcePrep ShadowForceAttack ShadowForceWaitEnd: - waitforvisualfinish - end + waitforvisualfinish + end ShadowForcePrep: monbg ANIM_ATTACKER - playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER, + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER, createsprite gSimplePaletteBlendSpriteTemplate ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_BLACK - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_TARGET, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATK_PARTNER, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_DEF_PARTNER, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATK_PARTNER, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_DEF_PARTNER, 0 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 3 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 1 delay 80 createsprite gSimplePaletteBlendSpriteTemplate ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_BLACK - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_TARGET, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATK_PARTNER, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_DEF_PARTNER, 1 - waitforvisualfinish - clearmonbg ANIM_ATTACKER + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATK_PARTNER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_DEF_PARTNER, 1 + waitforvisualfinish + clearmonbg ANIM_ATTACKER invisible 0 delay 1 - goto ShadowForceWaitEnd + goto ShadowForceWaitEnd ShadowForceAttack: - monbg ANIM_ATTACKER - monbgprio_28 ANIM_ATTACKER + monbg ANIM_ATTACKER + monbgprio_28 ANIM_ATTACKER playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call ShadowForceBg - waitbgfadein - delay 10 + waitbgfadein + delay 10 playsewithpan SOUND_PAN_ATTACKER, 192 createvisualtask AnimTask_NightShadeClone, 5, 85 - delay 70 + delay 70 createvisualtask AnimTask_ShakeMon2 2, 1, 2, 0, 12, 1 createvisualtask AnimTask_BlendColorCycle 2, 4, 0, 2, 0, 13, 0 - waitforvisualfinish - clearmonbg ANIM_ATTACKER + waitforvisualfinish + clearmonbg ANIM_ATTACKER delay 1 - call UnsetPsychicBg - waitbgfadein + call UnsetPsychicBg + waitbgfadein goto ShadowForceWaitEnd ShadowForceBg: - fadetobg BG_DARK - waitbgfadeout + fadetobg BG_DARK + waitbgfadeout createvisualtask AnimTask_FadeScreenToWhite, 5 - waitbgfadein + waitbgfadein return @@@@@@@@@@@@@@@@@@@@@@@ GEN 5 @@@@@@@@@@@@@@@@@@@@@@@ @@ -4773,10 +4770,10 @@ Move_SMACK_DOWN:: fadetobg BG_IN_AIR waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 0x0, 0x0, 0x0, 0xffff - createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 + createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 goto SeismicTossWeak -Move_STORM_THROW: +Move_STORM_THROW: call StormThorwAnim call StormThorwAnim call StormThorwAnim @@ -5413,10 +5410,10 @@ Move_HEX: loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0x10 0x4C4A @;Deep purple waitforvisualfinish - monbg ANIM_TARGET + monbg ANIM_TARGET monbgprio_29 - playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER - waitbgfadein + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + waitbgfadein launchtask AnimTask_PurpleFlamesOnTarget 0x3 0x0 launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x2 0x0 0x25 0x1 playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET @@ -5504,11 +5501,11 @@ Move_INCINERATE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - delay 1 + delay 1 createsprite gIncinerateSpriteTemplate, ANIM_TARGET, 2, 6, 20, 0, -16, 24, 20 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtask AnimTask_SwayMon, 5, 0, 3, 0xc00, 8, ANIM_TARGET - createvisualtask AnimTask_SwayMon, 5, 0, 3, 0xc00, 8, ANIM_DEF_PARTNER + createvisualtask AnimTask_SwayMon, 5, 0, 3, 0xc00, 8, ANIM_TARGET + createvisualtask AnimTask_SwayMon, 5, 0, 3, 0xc00, 8, ANIM_DEF_PARTNER delay 3 createsprite gIncinerateSpriteTemplate, ANIM_TARGET, 2, 6, 20, 0, -16, 24, 20 delay 3 @@ -5851,7 +5848,7 @@ Move_FIRE_PLEDGE: createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2 delay 4 createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2 - delay 4 + delay 4 createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2 delay 4 createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2 @@ -5950,7 +5947,7 @@ Move_GRASS_PLEDGE: createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2 delay 4 createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2 - delay 4 + delay 4 createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2 delay 4 createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2 @@ -6717,7 +6714,7 @@ Move_SEARING_SHOT: launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x80 0x1e 0x19 0xffec delay 0x2 launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xa0 0x1e 0x19 0xffec - launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 SOUND_PAN_ATTACKER 0x1e 0x19 0xffec + launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xa0 0x1e 0x19 0xffec delay 0x2 launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xe0 0x1e 0x19 0xffec delay 0xF @@ -6731,7 +6728,7 @@ Move_SEARING_SHOT: launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x80 0x1e 0x19 0x0 delay 0x2 launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xa0 0x1e 0x19 0x0 - launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 SOUND_PAN_ATTACKER 0x1e 0x19 0x0 + launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xa0 0x1e 0x19 0x0 delay 0x2 launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xe0 0x1e 0x19 0x0 delay 0x15 @@ -8478,8 +8475,6 @@ Move_GRASSY_TERRAIN:: delay 4 createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 3, 4, 0, RGB(31, 24, 31) waitforvisualfinish - restorebg - waitbgfadein end Move_MISTY_TERRAIN:: @@ -8518,8 +8513,6 @@ Move_MISTY_TERRAIN:: delay 4 createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 3, 7, 0, RGB(31, 24, 31) waitforvisualfinish - restorebg - waitbgfadein end Move_ELECTRIFY:: @@ -9071,11 +9064,11 @@ Move_EERIE_IMPULSE:: launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 16, 30, 0, 40, 0 launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 16, 30, 0, 40, 1 launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 16, 30, 0, 40, 0 - launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 16, 30, SOUND_PAN_ATTACKER, 40, 2 + launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 16, 30, 0, 40, 2 launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 32, 30, 0, 40, 0 launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 32, 30, 0, 40, 1 launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 32, 30, 0, 40, 0 - launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 32, 30, SOUND_PAN_ATTACKER, 40, 2 + launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 32, 30, 0, 40, 2 launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 48, 30, 0, 40, 0 launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 48, 30, 0, 40, 1 launchtemplate gZapCannonSparkSpriteTemplate, ANIM_TARGET, 7, 10, 0, 48, 30, 0, 40, 0 @@ -9403,8 +9396,6 @@ Move_ELECTRIC_TERRAIN:: delay 2 createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 3, 4, 0, RGB(28, 28, 0) waitforvisualfinish - restorebg - waitbgfadein end Move_DAZZLING_GLEAM:: @@ -9612,7 +9603,7 @@ Move_OBLIVION_WING:: call OblivionWingBeam call OblivionWingBeam launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 40 0x1 - launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x4 0x0 0xc 0x289F @Pinkish Red + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x4 0x0 0xc 0x289F @Pinkish Red call OblivionWingBeam call OblivionWingBeam call OblivionWingBeam @@ -10976,11 +10967,11 @@ PollenPuffAlly: monbg ANIM_TARGET launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0xa0 0x28 0x0 launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x120 0x28 0x0 - launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e SOUND_PAN_ATTACKER 0x28 0x0 + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x90 0x28 0x0 launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x110 0x28 0x0 launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0xa0 0x28 0x0 launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x120 0x28 0x0 - launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e SOUND_PAN_ATTACKER 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x90 0x28 0x0 launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x110 0x28 0x0 delay 0x1 launchtemplate gPollenPuffSporeTemplate 0x82 0x6 0xa 0x0 0x0 0x0 0x19 0xffe0 @@ -11060,8 +11051,6 @@ Move_PSYCHIC_TERRAIN:: delay 4 createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 3, 4, 0, RGB(27, 0, 13) waitforvisualfinish - restorebg - waitbgfadein end Move_LUNGE:: @@ -11754,7 +11743,7 @@ Move_DRAGON_HAMMER:: waitbgfadein setblends 0xF launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x1a 0x0 0x0 0x5 - delay 0x6 + delay 0x6 playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET launchtemplate gBounceBallLandSpriteTemplate 0x83 0x0 delay 0x2 @@ -13027,7 +13016,7 @@ Move_PHOTON_GEYSER:: launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 - launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x2 launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 @@ -13182,13 +13171,13 @@ Move_JAW_LOCK:: monbg ANIM_TARGET launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x7 0x0 @Black waitforvisualfinish - playsewithpan SE_M_BITE, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET launchtemplate gJawLockTeethTemplate 0x2 0x7 0xffe0 0xffe0 0x1 0x333 0x333 0xa 15 launchtemplate gJawLockTeethTemplate 0x2 0x7 0x20 0x20 0x5 0xfccd 0xfccd 0xa 15 - delay 0xa - launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff8 0x0 0x1 0x1 - launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x7 0xA 0x2 - waitforvisualfinish + delay 0xa + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff8 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x7 0xA 0x2 + waitforvisualfinish launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x7 0x0 0x0 @;Black waitforvisualfinish clearmonbg ANIM_TARGET @@ -13238,58 +13227,58 @@ Move_NO_RETREAT:: loopsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER 0x7 0x12 launchtemplate gNoRetreatFlameTemplate 2, 0x5 ANIM_ATTACKER, 20, 10, 0xA0, 0 launchtemplate gNoRetreatFlameTemplate 2, 0x5 ANIM_ATTACKER, -20, 10, 0xA0, 0 - launchtask AnimTask_TeeterDanceMovement 0x5 0x0 + launchtask AnimTask_TeeterDanceMovement 0x5 0x0 waitforvisualfinish end Move_TAR_SHOT:: loadspritegfx ANIM_TAG_POISON_BUBBLE createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_POISON_BUBBLE, 0, 15, 15, 0 @Black - monbg ANIM_TARGET - launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x0 0x0 + monbg ANIM_TARGET + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x0 0x0 playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER - delay 0x5 - launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0xffe8 0x0 - playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER - delay 0xf + delay 0x5 + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0xffe8 0x0 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + delay 0xf launchtask AnimTask_ShakeMon2 0x5 0x5 ANIM_TARGET 0x2 0x0 0xa 0x1 launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x2 0x0 0x10 0x0 @;Black - launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xffe6 0xffe8 0x0 0xf 0x37 - playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET - delay 0xa - launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xf 0xffe5 0x0 0xC 0x32 - playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET - delay 0xa - launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xfff1 0xffef 0x0 0xa 0x2d + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xffe6 0xffe8 0x0 0xf 0x37 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xf 0xffe5 0x0 0xC 0x32 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xfff1 0xffef 0x0 0xa 0x2d playsewithpan SE_M_BUBBLE SOUND_PAN_TARGET - waitforvisualfinish - clearmonbg ANIM_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET end Move_MAGIC_POWDER:: loadspritegfx ANIM_TAG_POISON_POWDER loadspritegfx ANIM_TAG_WATER_GUN loopsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER 0xE 0x8 - launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xffe2 0xffea 0x75 0x50 0x5 0x1 - launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xa 0xffea 0x75 0x50 0xfffb 0x1 - launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xffe7 0xffea 0x75 0x70 0x5 0x3 - delay 0xf - launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfffb 0xffea 0x75 0x50 0xfffb 0x1 - launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x5 0xffea 0x75 0x60 0x5 0x1 - launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0x0 0xffea 0x75 0x45 0xfffb 0x1 - launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xfff1 0xffea 0x75 0x70 0x5 0x2 - delay 0x1e - launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff1 0xffea 0x75 0x70 0x5 0x2 - launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xf 0xffea 0x75 0x50 0xfffb 0x1 - launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff6 0xffea 0x75 0x60 0x7 0x2 - launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xfffb 0xffea 0x75 0x5a 0xfff8 0x0 - delay 0x14 - launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff6 0xffea 0x75 0x50 0xfffb 0x1 - launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x0 0xffea 0x75 0x59 0x5 0x2 - launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0x14 0xffea 0x75 0x70 0xfff8 0x2 - launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x5 0xffea 0x75 0x50 0x5 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xffe2 0xffea 0x75 0x50 0x5 0x1 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xa 0xffea 0x75 0x50 0xfffb 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xffe7 0xffea 0x75 0x70 0x5 0x3 + delay 0xf + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfffb 0xffea 0x75 0x50 0xfffb 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x5 0xffea 0x75 0x60 0x5 0x1 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0x0 0xffea 0x75 0x45 0xfffb 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xfff1 0xffea 0x75 0x70 0x5 0x2 + delay 0x1e + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff1 0xffea 0x75 0x70 0x5 0x2 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xf 0xffea 0x75 0x50 0xfffb 0x1 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff6 0xffea 0x75 0x60 0x7 0x2 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xfffb 0xffea 0x75 0x5a 0xfff8 0x0 + delay 0x14 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff6 0xffea 0x75 0x50 0xfffb 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x0 0xffea 0x75 0x59 0x5 0x2 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0x14 0xffea 0x75 0x70 0xfff8 0x2 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x5 0xffea 0x75 0x50 0x5 0x1 waitforvisualfinish - playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfffa 0xfffa 0xf 0x1 0x1 waitforvisualfinish end @@ -13313,18 +13302,18 @@ Move_OCTOLOCK:: loadspritegfx ANIM_TAG_TENDRILS createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_TENDRILS, 0, 12, 12, 0x3D98 @Pinkish Red loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET 0x6 0x4 - launchtemplate gConstrictBindingSpriteTemplate 0x84, 0x4, 0x0 0x10 0x0 0x2 - delay 0x7 - launchtemplate gConstrictBindingSpriteTemplate 0x83 0x4 0x0 0x0 0x0 0x2 - launchtemplate gConstrictBindingSpriteTemplate 0x82, 0x4, 0x0 0x8 0x1 0x2 - delay 0x7 - launchtemplate gConstrictBindingSpriteTemplate 0x83 0x4 0x0 0xfff8 0x1 0x2 - delay 0x8 - launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x3 0x0 0x6 0x1 + launchtemplate gConstrictBindingSpriteTemplate 0x84, 0x4, 0x0 0x10 0x0 0x2 + delay 0x7 + launchtemplate gConstrictBindingSpriteTemplate 0x83 0x4 0x0 0x0 0x0 0x2 + launchtemplate gConstrictBindingSpriteTemplate 0x82, 0x4, 0x0 0x8 0x1 0x2 + delay 0x7 + launchtemplate gConstrictBindingSpriteTemplate 0x83 0x4 0x0 0xfff8 0x1 0x2 + delay 0x8 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x3 0x0 0x6 0x1 delay 0x14 launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x2 0x0 0x8 0x1f - playsewithpan SE_M_BIND, SOUND_PAN_TARGET - setarg 0x7 0xffff + playsewithpan SE_M_BIND, SOUND_PAN_TARGET + setarg 0x7 0xffff waitforvisualfinish end @@ -13336,49 +13325,49 @@ Move_BOLT_BEAK:: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRICITY, 0, 12, 12, 0x76E1 @Blue Electricity createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_HORN_HIT, 0, 12, 12, 0x079D @Yellow call BoltBeakSparks - waitforvisualfinish - launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x5bff - launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x2 0x4 0x4 - delay 0x4 - launchtemplate gHornHitSpriteTemplate 0x84 0x3 0x8 0x8 0xa - waitforvisualfinish - launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x0 0x0 0x1 0x1 + waitforvisualfinish + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x5bff + createsprite gHorizontalLungeSpriteTemplate, 0x2, 0x2, 0x4, 0x4 + delay 0x4 + createsprite gHornHitSpriteTemplate, 0x84, 0x3, 0x8, 0x8, 0xa + waitforvisualfinish + createsprite gFlashingHitSplatSpriteTemplate, 0x83, 0x4, 0x0, 0x0, 0x1, 0x1 playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET - launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x3 0x0 0x6 0x1 - waitforvisualfinish - launchtask AnimTask_BlendColorCycle 0x2 0x6 0x4 0xffe1 0x2 0x0 0x6 0x5bff - call ElectricityEffect - waitforvisualfinish + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x3 0x0 0x6 0x1 + waitforvisualfinish + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x4 0xffe1 0x2 0x0 0x6 0x5bff + call ElectricityEffect + waitforvisualfinish end BoltBeakSparks: playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + createsprite gSparkElectricitySpriteTemplate, 0x0, 0x7, 0x20, 0x18, 0xbe, 0xc, 0x0, 0x1, 0x0 delay 0x0 - launchtemplate gBoltBeakBlueSparkTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 - launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 - delay 0x0 - launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x5bff - delay 0xa - launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x5 0x5 0x5bff - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - launchtemplate gBoltBeakBlueSparkTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 - launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 - delay 0x0 - launchtemplate gBoltBeakBlueSparkTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 - delay 0x0 - launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x76E1 - delay 0x14 - launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x4 0x4 0x76E1 - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x20 0xc 0x0 0x14 0x0 0x0 - launchtemplate gBoltBeakBlueFlashingSparkTemplate 0x4 0x8 0x0 0x0 0x20 0xc 0x40 0x14 0x1 0x0 - launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x20 0xc 0x80 0x14 0x0 0x0 - launchtemplate gBoltBeakBlueFlashingSparkTemplate 0x4 0x8 0x0 0x0 0x20 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x0 - launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x10 0xc 0x20 0x14 0x0 0x0 - launchtemplate gBoltBeakBlueFlashingSparkTemplate 0x4 0x8 0x0 0x0 0x10 0xc 0x60 0x14 0x1 0x0 - launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x10 0xc 0xa0 0x14 0x0 0x0 - launchtemplate gBoltBeakBlueFlashingSparkTemplate 0x4 0x8 0x0 0x0 0x10 0xc 0xe0 0x14 0x2 0x0 - delay 0x4 + createsprite gBoltBeakBlueSparkTemplate, 0x0, 0x7, 0x50, 0x18, 0x16, 0xc, 0x0, 0x1, 0x0 + createsprite gSparkElectricitySpriteTemplate, 0x0, 0x7, 0x9c, 0x18, 0x79, 0xd, 0x0, 0x1, 0x1 + delay 0x0 + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x5bff + delay 0xa + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x5 0x5 0x5bff + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + createsprite gBoltBeakBlueSparkTemplate, 0x0, 0x7, 0x64, 0x18, 0x3c, 0xa, 0x0, 0x1, 0x0 + createsprite gSparkElectricitySpriteTemplate, 0x0, 0x7, 0xaa, 0x18, 0x2a, 0xb, 0x0, 0x1, 0x1 + delay 0x0 + createsprite gBoltBeakBlueSparkTemplate, 0x0, 0x7, 0xee, 0x18, 0xa5, 0xa, 0x0, 0x1, 0x1 + delay 0x0 + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x76E1 + delay 0x14 + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x4 0x4 0x76E1 + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + createsprite gSparkElectricityFlashingSpriteTemplate, 0x4, 0x8, 0x0, 0x0, 0x20, 0xc, 0x0, 0x14, 0x0, 0x0 + createsprite gBoltBeakBlueFlashingSparkTemplate, 0x4, 0x8, 0x0, 0x0, 0x20, 0xc, 0x40, 0x14, 0x1, 0x0 + createsprite gSparkElectricityFlashingSpriteTemplate, 0x4, 0x8, 0x0, 0x0, 0x20, 0xc, 0x80, 0x14, 0x0, 0x0 + createsprite gBoltBeakBlueFlashingSparkTemplate, 0x4, 0x8, 0x0, 0x0, 0x20, 0xc, 0x0, 0x14, 0x2, 0x0 + createsprite gSparkElectricityFlashingSpriteTemplate, 0x4, 0x8, 0x0, 0x0, 0x10, 0xc, 0x20, 0x14, 0x0, 0x0 + createsprite gBoltBeakBlueFlashingSparkTemplate, 0x4, 0x8, 0x0, 0x0, 0x10, 0xc, 0x60, 0x14, 0x1, 0x0 + createsprite gSparkElectricityFlashingSpriteTemplate, 0x4, 0x8, 0x0, 0x0, 0x10, 0xc, 0xa0, 0x14, 0x0, 0x0 + createsprite gBoltBeakBlueFlashingSparkTemplate, 0x4, 0x8, 0x0, 0x0, 0x10, 0xc, 0xe0, 0x14, 0x2, 0x0 + delay 0x4 return Move_FISHIOUS_REND:: @@ -13392,48 +13381,48 @@ Move_FISHIOUS_REND:: waitforvisualfinish end FishousRendBubbles: - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xF 0x0 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xF 0x0 - delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xF 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xF 0x0 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 - delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 - delay 0x2 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 - delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 - delay 0x2 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 - delay 0x2 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff1 0x0 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff1 0x0 - delay 0x2 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xffec 0x0 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xffec 0x0 delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff1 0x0 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff1 0x0 - delay 0x2 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 - delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 - delay 0x2 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 - delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 - launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 - delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 + delay 0x2 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 - return + return Move_COURT_CHANGE:: goto Move_TRICK_ROOM @@ -13495,65 +13484,65 @@ Move_DECORATE:: end @to do: Move_DRUM_BEATING:: - loadspritegfx ANIM_TAG_MUSIC_NOTES + loadspritegfx ANIM_TAG_MUSIC_NOTES loadspritegfx ANIM_TAG_PURPLE_HAND_OUTLINE loadspritegfx ANIM_TAG_ROOTS loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_MUSIC_NOTES, 0, 0xD, 0xD, 0x03AC @Green - monbg ANIM_TARGET + monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - call BellyDrumRight - launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x0 0x0 0x0 - playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER - delay 0xf - call BellyDrumLeft - launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x1 0x1 0x0 - playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER - delay 0xf - call BellyDrumRight - launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x3 0x3 0x80 - playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER - delay 0x7 - call BellyDrumLeft - launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x2 0x0 0x80 - playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER - delay 0x7 - call BellyDrumRight - launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x1 0x1 0x0 - playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER - delay 0x7 - call BellyDrumLeft - launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x0 0x3 0x0 + call BellyDrumRight + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x0 0x0 0x0 playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER - launchtemplate gFrenzyPlantRootSpriteTemplate 0x2 0x6 0x55 0x10 0x6 0x0 0x3 0x50 - playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET - delay 0x5 - launchtemplate gFrenzyPlantRootSpriteTemplate 0x2 0x6 0x55 0xfff0 0xfffa 0x0 0x2 0x4b - playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET - delay 0x5 - launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff6 0xfff6 0x1 0x3 - playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + delay 0xf + call BellyDrumLeft + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x1 0x1 0x0 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER + delay 0xf + call BellyDrumRight + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x3 0x3 0x80 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER + delay 0x7 + call BellyDrumLeft + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x2 0x0 0x80 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER + delay 0x7 + call BellyDrumRight + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x1 0x1 0x0 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER + delay 0x7 + call BellyDrumLeft + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x0 0x3 0x0 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER + launchtemplate gFrenzyPlantRootSpriteTemplate 0x2 0x6 0x55 0x10 0x6 0x0 0x3 0x50 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET + delay 0x5 + launchtemplate gFrenzyPlantRootSpriteTemplate 0x2 0x6 0x55 0xfff0 0xfffa 0x0 0x2 0x4b + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET + delay 0x5 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff6 0xfff6 0x1 0x3 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET launchtask AnimTask_ShakeMon 0x3 0x5 ANIM_TARGET 0x8 0x0 0x14 0x1 - delay 0x3 - launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xa 0x8 0x1 0x3 - playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET - delay 0x3 - launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xa 0xfffd 0x1 0x2 - playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET - delay 0x3 - launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfffd 0x1 0x1 0x2 - playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET - delay 0x2 - launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff6 0x1 0x1 0x1 - playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET - delay 0x2 - launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0xa 0x1 0x1 - playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + delay 0x3 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xa 0x8 0x1 0x3 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + delay 0x3 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xa 0xfffd 0x1 0x2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + delay 0x3 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfffd 0x1 0x1 0x2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff6 0x1 0x1 0x1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0xa 0x1 0x1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg ANIM_TARGET - blendoff - end + clearmonbg ANIM_TARGET + blendoff + end Move_SNAP_TRAP:: end @ to do: @@ -13601,41 +13590,41 @@ Move_AURA_WHEEL:: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0x0, 0xA, 0xA, 0x303B @Pinkish-Red setalpha 12, 8 monbg ANIM_DEF_PARTNER - monbgprio_2A 0x1 - launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x0 + monbgprio_2A 0x1 + launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x0 playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - delay 0x2 - launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x4 + delay 0x2 + launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x4 playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - delay 0x2 - launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x8 + delay 0x2 + launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x8 playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - delay 0x2 - launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0xc + delay 0x2 + launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0xc playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - delay 0x2 - launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x10 + delay 0x2 + launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x10 playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - delay 0x2 - launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x14 + delay 0x2 + launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x14 playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - delay 0x2 - launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x18 + delay 0x2 + launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x18 playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - waitforvisualfinish - launchtemplate gSlideMonToOffsetSpriteTemplate 2, 0x5 0x0 0x18 0x0 0x0 0x6 + waitforvisualfinish + launchtemplate gSlideMonToOffsetSpriteTemplate 2, 0x5 0x0 0x18 0x0 0x0 0x6 delay 0x4 playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x5 0x0 0x17 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x5 0x0 0x17 0x1 launchtemplate gBasicHitSplatSpriteTemplate 0x4 0x4 0xfff6 0x0 0x1 0x0 createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SPARK_2, 2, 12, 0, 0x76E1 @Revert blue Electricity launchtemplate gSparkElectricityFlashingSpriteTemplate 0x84, 0x8 0x0 0x0 0x30 0x2c 0x0 0x28 0x0 0x8003 launchtemplate gSparkElectricityFlashingSpriteTemplate 0x84, 0x8 0x0 0x0 0x30 0x2c 0x40 0x28 0x1 0x8003 launchtemplate gSparkElectricityFlashingSpriteTemplate 0x84, 0x8 0x0 0x0 0x30 0x2c 0x80 0x28 0x0 0x8003 launchtemplate gSparkElectricityFlashingSpriteTemplate 0x84, 0x8 0x0 0x0 0x30 0x2c 0xc0 0x28 0x2 0x8003 - delay 0x7 - launchtemplate gSlideMonToOriginalPosSpriteTemplate 2, 0x3 0x0 0x0 0x9 - waitforvisualfinish + delay 0x7 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 2, 0x3 0x0 0x0 0x9 + waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end @@ -13695,17 +13684,17 @@ Move_OVERDRIVE:: call OverdriveRings delay 0x10 createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_THIN_RING, 0, 0, 12, 0x76E1 @Blue Electricity - waitforvisualfinish + waitforvisualfinish end OverdriveRings: playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET launchtemplate gSimplePaletteBlendSpriteTemplate 0x2 0x5 0x1f 0x3 0x8 0x0 0x3ff - launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfffb 0xfffb 0x5 0x0 0x0 - launchtemplate gHyperVoiceRingSpriteTemplate 0x0 0x7 0x2d 0x0 0x0 0x0 0x0 0x0 0x1 - launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x1 0x0 0x6 0x1 - launchtask AnimTask_ShakeMon2 0x2 0x5 0x3 0x1 0x0 0x6 0x1 - launchtask AnimTask_ShakeBattleTerrain 0x2 0x4 0x1 0x0 0x6 0x1 - launchtask SoundTask_WaitForCry 0x5 0x0 + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfffb 0xfffb 0x5 0x0 0x0 + launchtemplate gHyperVoiceRingSpriteTemplate 0x0 0x7 0x2d 0x0 0x0 0x0 0x0 0x0 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x1 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x3 0x1 0x0 0x6 0x1 + launchtask AnimTask_ShakeBattleTerrain 0x2 0x4 0x1 0x0 0x6 0x1 + launchtask SoundTask_WaitForCry 0x5 0x0 return Move_APPLE_ACID:: @@ -13715,33 +13704,33 @@ Move_APPLE_ACID:: playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER launchtemplate gAppleAcidFloatingAppleTemplate 0xc 0x1 0x0 delay 0x30 - monbg ANIM_TARGET - launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x0 0x0 - playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER - delay 0x5 - launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x18 0x0 - playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER - delay 0x5 - launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0xffe8 0x0 - playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER - delay 0xf + monbg ANIM_TARGET + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x0 0x0 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + delay 0x5 + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x18 0x0 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + delay 0x5 + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0xffe8 0x0 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + delay 0xf launchtask AnimTask_ShakeMon2 0x5 0x5 ANIM_TARGET 0x2 0x0 0xa 0x1 - launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0x0 0xffea 0x0 0xf 0x37 - playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET - delay 0xa - launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xffe6 0xffe8 0x0 0xf 0x37 - playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET - delay 0xa - launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xf 0xffe5 0x0 0xf 0x32 - playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET - delay 0xa - launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xfff1 0xffef 0x0 0xa 0x2d - playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET - delay 0xa - launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0x1b 0xffea 0x0 0xf 0x32 - playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET - waitforvisualfinish - clearmonbg ANIM_TARGET + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0x0 0xffea 0x0 0xf 0x37 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xffe6 0xffe8 0x0 0xf 0x37 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xf 0xffe5 0x0 0xf 0x32 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xfff1 0xffef 0x0 0xa 0x2d + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0x1b 0xffea 0x0 0xf 0x32 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET end Move_GRAV_APPLE:: @@ -13838,16 +13827,16 @@ Move_LIFE_DEW:: delay 0x15 playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER waitforvisualfinish - playsewithpan SE_M_ABSORB_2, SOUND_PAN_ATTACKER + playsewithpan SE_M_ABSORB_2, SOUND_PAN_ATTACKER launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 0, -5, ANIM_ATTACKER, FALSE launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 0, -5, ANIM_ATK_PARTNER, FALSE - delay 0x7 + delay 0x7 launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, -15, 10, ANIM_ATTACKER, FALSE launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, -15, 10, ANIM_ATK_PARTNER, FALSE - delay 0x7 + delay 0x7 launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, -15, -15, ANIM_ATTACKER, FALSE launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, -15, -15, ANIM_ATK_PARTNER, FALSE - delay 0x7 + delay 0x7 launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 10, -5, ANIM_ATTACKER, FALSE launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 10, -5, ANIM_ATK_PARTNER, FALSE delay 0x7 @@ -13865,15 +13854,15 @@ Move_OBSTRUCT:: call RoarEffect waitforvisualfinish delay 0x10 - monbg ANIM_ATK_PARTNER - monbgprio_28 ANIM_ATTACKER - waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 + monbg ANIM_ATK_PARTNER + monbgprio_28 ANIM_ATTACKER + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 launchtemplate gProtectSpriteTemplate, 2, 0x3 0x18 0x0 0x5a @;Protect waitforvisualfinish - launchtemplate gObstructCrossTemplate, 2, 0x4 0x0 0x0 0x1 0x24 + launchtemplate gObstructCrossTemplate, 2, 0x4 0x0 0x0 0x1 0x24 playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg ANIM_ATK_PARTNER + clearmonbg ANIM_ATK_PARTNER end Move_FALSE_SURRENDER:: @@ -14489,7 +14478,7 @@ Move_TWINEEDLE: Move_FIRE_BLAST: loadspritegfx ANIM_TAG_SMALL_EMBER - createsoundtask sub_8158B30, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 + createsoundtask SoundTask_FireBlast, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 call FireBlastRing call FireBlastRing call FireBlastRing @@ -15292,12 +15281,12 @@ Explosion1: Move_DEFENSE_CURL: loadspritegfx ANIM_TAG_ECLIPSING_ORB loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 waitforvisualfinish end @@ -16264,7 +16253,7 @@ Move_FISSURE: delay 40 restorebg waitbgfadeout - setarg 7, 0xFFFF + setarg 7, -1 waitbgfadein end @@ -20874,7 +20863,7 @@ Move_IRON_TAIL: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 clearmonbg ANIM_TARGET blendoff waitforvisualfinish @@ -20894,7 +20883,7 @@ Move_POISON_TAIL: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 clearmonbg ANIM_TARGET blendoff call PoisonBubblesEffect @@ -21171,7 +21160,7 @@ Move_DISABLE: playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16 waitforvisualfinish - createvisualtask AnimTask_GrowAndGreyscale, 5 + createvisualtask AnimTask_GrowAndGrayscale, 5 loopsewithpan SE_M_BIND, SOUND_PAN_TARGET, 15, 4 waitforvisualfinish delay 1 @@ -21566,16 +21555,16 @@ Move_PERISH_SONG: panse_1B SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_BLACK - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 0 delay 100 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_BLACK - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 1 waitforvisualfinish end @@ -23201,7 +23190,7 @@ Move_DOOM_DESIRE: createvisualtask GetIsDoomDesireHitTurn, 2 delay 1 monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_TARGET, FALSE + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, FALSE createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, RGB_BLACK waitforvisualfinish setalpha 8, 8 @@ -23209,7 +23198,7 @@ Move_DOOM_DESIRE: createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish delay 20 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_TARGET, TRUE + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, TRUE createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -24138,7 +24127,7 @@ General_SmokeballEscape: blendoff end -General_FocusBand: +General_HangedOn: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 7, 0, 9, RGB_RED playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_SlideMonForFocusBand, 5, 30, 128, 0, 1, 2, 0, 1 @@ -24384,18 +24373,6 @@ MegaEvolutionParticles: delay 3 return -General_TerrainMisty: - end - -General_TerrainGrassy: - end - -General_TerrainElectric: - end - -General_TerrainPsychic: - end - General_RestoreBg: restorebg waitbgfadein diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index ee5467a365..516d7fc472 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1,3 +1,4 @@ +#include "constants/global.h" #include "constants/battle.h" #include "constants/pokemon.h" #include "constants/battle_script_commands.h" @@ -8,6 +9,7 @@ #include "constants/moves.h" #include "constants/songs.h" #include "constants/game_stat.h" +#include "constants/trainers.h" #include "constants/battle_config.h" .include "asm/macros.inc" .include "asm/macros/battle_script.inc" @@ -16,355 +18,361 @@ .section script_data, "aw", %progbits .align 2 -gBattleScriptsForMoveEffects:: @ 82D86A8 - .4byte BattleScript_EffectHit - .4byte BattleScript_EffectSleep - .4byte BattleScript_EffectPoisonHit - .4byte BattleScript_EffectAbsorb - .4byte BattleScript_EffectBurnHit - .4byte BattleScript_EffectFreezeHit - .4byte BattleScript_EffectParalyzeHit - .4byte BattleScript_EffectExplosion - .4byte BattleScript_EffectDreamEater - .4byte BattleScript_EffectMirrorMove - .4byte BattleScript_EffectAttackUp - .4byte BattleScript_EffectDefenseUp - .4byte BattleScript_EffectSpeedUp - .4byte BattleScript_EffectSpecialAttackUp - .4byte BattleScript_EffectSpecialDefenseUp - .4byte BattleScript_EffectAccuracyUp - .4byte BattleScript_EffectEvasionUp - .4byte BattleScript_EffectSpecialAttackUp3 - .4byte BattleScript_EffectAttackDown - .4byte BattleScript_EffectDefenseDown - .4byte BattleScript_EffectSpeedDown - .4byte BattleScript_EffectSpecialAttackDown - .4byte BattleScript_EffectSpecialDefenseDown - .4byte BattleScript_EffectAccuracyDown - .4byte BattleScript_EffectEvasionDown - .4byte BattleScript_EffectHaze - .4byte BattleScript_EffectBide - .4byte BattleScript_EffectRampage - .4byte BattleScript_EffectRoar - .4byte BattleScript_EffectMultiHit - .4byte BattleScript_EffectConversion - .4byte BattleScript_EffectFlinchHit - .4byte BattleScript_EffectRestoreHp - .4byte BattleScript_EffectToxic - .4byte BattleScript_EffectPayDay - .4byte BattleScript_EffectLightScreen - .4byte BattleScript_EffectTriAttack - .4byte BattleScript_EffectRest - .4byte BattleScript_EffectOHKO - .4byte BattleScript_EffectFusionCombo - .4byte BattleScript_EffectSuperFang - .4byte BattleScript_EffectDragonRage - .4byte BattleScript_EffectTrap - .4byte BattleScript_EffectHealBlock - .4byte BattleScript_EffectDoubleHit - .4byte BattleScript_EffectRecoilIfMiss - .4byte BattleScript_EffectMist - .4byte BattleScript_EffectFocusEnergy - .4byte BattleScript_EffectRecoil25 - .4byte BattleScript_EffectConfuse - .4byte BattleScript_EffectAttackUp2 - .4byte BattleScript_EffectDefenseUp2 - .4byte BattleScript_EffectSpeedUp2 - .4byte BattleScript_EffectSpecialAttackUp2 - .4byte BattleScript_EffectSpecialDefenseUp2 - .4byte BattleScript_EffectAccuracyUp2 - .4byte BattleScript_EffectEvasionUp2 - .4byte BattleScript_EffectTransform - .4byte BattleScript_EffectAttackDown2 - .4byte BattleScript_EffectDefenseDown2 - .4byte BattleScript_EffectSpeedDown2 - .4byte BattleScript_EffectSpecialAttackDown2 - .4byte BattleScript_EffectSpecialDefenseDown2 - .4byte BattleScript_EffectAccuracyDown2 - .4byte BattleScript_EffectEvasionDown2 - .4byte BattleScript_EffectReflect - .4byte BattleScript_EffectPoison - .4byte BattleScript_EffectParalyze - .4byte BattleScript_EffectAttackDownHit - .4byte BattleScript_EffectDefenseDownHit - .4byte BattleScript_EffectSpeedDownHit - .4byte BattleScript_EffectSpecialAttackDownHit - .4byte BattleScript_EffectSpecialDefenseDownHit - .4byte BattleScript_EffectAccuracyDownHit - .4byte BattleScript_EffectEvasionDownHit - .4byte BattleScript_EffectTwoTurnsAttack - .4byte BattleScript_EffectConfuseHit - .4byte BattleScript_EffectTwineedle - .4byte BattleScript_EffectVitalThrow - .4byte BattleScript_EffectSubstitute - .4byte BattleScript_EffectRecharge - .4byte BattleScript_EffectRage - .4byte BattleScript_EffectMimic - .4byte BattleScript_EffectMetronome - .4byte BattleScript_EffectLeechSeed - .4byte BattleScript_EffectDoNothing - .4byte BattleScript_EffectDisable - .4byte BattleScript_EffectLevelDamage - .4byte BattleScript_EffectPsywave - .4byte BattleScript_EffectCounter - .4byte BattleScript_EffectEncore - .4byte BattleScript_EffectPainSplit - .4byte BattleScript_EffectSnore - .4byte BattleScript_EffectConversion2 - .4byte BattleScript_EffectLockOn - .4byte BattleScript_EffectSketch - .4byte BattleScript_EffectHammerArm - .4byte BattleScript_EffectSleepTalk - .4byte BattleScript_EffectDestinyBond - .4byte BattleScript_EffectFlail - .4byte BattleScript_EffectSpite - .4byte BattleScript_EffectFalseSwipe - .4byte BattleScript_EffectHealBell - .4byte BattleScript_EffectAlwaysCrit - .4byte BattleScript_EffectTripleKick - .4byte BattleScript_EffectThief - .4byte BattleScript_EffectMeanLook - .4byte BattleScript_EffectNightmare - .4byte BattleScript_EffectMinimize - .4byte BattleScript_EffectCurse - .4byte BattleScript_EffectHealingWish - .4byte BattleScript_EffectProtect - .4byte BattleScript_EffectSpikes - .4byte BattleScript_EffectForesight - .4byte BattleScript_EffectPerishSong - .4byte BattleScript_EffectSandstorm - .4byte BattleScript_EffectEndure - .4byte BattleScript_EffectRollout - .4byte BattleScript_EffectSwagger - .4byte BattleScript_EffectFuryCutter - .4byte BattleScript_EffectAttract - .4byte BattleScript_EffectReturn - .4byte BattleScript_EffectPresent - .4byte BattleScript_EffectFrustration - .4byte BattleScript_EffectSafeguard - .4byte BattleScript_EffectThawHit - .4byte BattleScript_EffectMagnitude - .4byte BattleScript_EffectBatonPass - .4byte BattleScript_EffectPursuit - .4byte BattleScript_EffectRapidSpin - .4byte BattleScript_EffectSonicboom - .4byte BattleScript_EffectCaptivate - .4byte BattleScript_EffectMorningSun - .4byte BattleScript_EffectSynthesis - .4byte BattleScript_EffectMoonlight - .4byte BattleScript_EffectHiddenPower - .4byte BattleScript_EffectRainDance - .4byte BattleScript_EffectSunnyDay - .4byte BattleScript_EffectDefenseUpHit - .4byte BattleScript_EffectAttackUpHit - .4byte BattleScript_EffectAllStatsUpHit - .4byte BattleScript_EffectFellStinger - .4byte BattleScript_EffectBellyDrum - .4byte BattleScript_EffectPsychUp - .4byte BattleScript_EffectMirrorCoat - .4byte BattleScript_EffectSkullBash - .4byte BattleScript_EffectTwister - .4byte BattleScript_EffectEarthquake - .4byte BattleScript_EffectFutureSight - .4byte BattleScript_EffectGust - .4byte BattleScript_EffectStomp - .4byte BattleScript_EffectSolarbeam - .4byte BattleScript_EffectThunder - .4byte BattleScript_EffectTeleport - .4byte BattleScript_EffectBeatUp - .4byte BattleScript_EffectSemiInvulnerable - .4byte BattleScript_EffectDefenseCurl - .4byte BattleScript_EffectSoftboiled - .4byte BattleScript_EffectFakeOut - .4byte BattleScript_EffectUproar - .4byte BattleScript_EffectStockpile - .4byte BattleScript_EffectSpitUp - .4byte BattleScript_EffectSwallow - .4byte BattleScript_EffectWorrySeed - .4byte BattleScript_EffectHail - .4byte BattleScript_EffectTorment - .4byte BattleScript_EffectFlatter - .4byte BattleScript_EffectWillOWisp - .4byte BattleScript_EffectMemento - .4byte BattleScript_EffectFacade - .4byte BattleScript_EffectFocusPunch - .4byte BattleScript_EffectSmellingsalt - .4byte BattleScript_EffectFollowMe - .4byte BattleScript_EffectNaturePower - .4byte BattleScript_EffectCharge - .4byte BattleScript_EffectTaunt - .4byte BattleScript_EffectHelpingHand - .4byte BattleScript_EffectTrick - .4byte BattleScript_EffectRolePlay - .4byte BattleScript_EffectWish - .4byte BattleScript_EffectAssist - .4byte BattleScript_EffectIngrain - .4byte BattleScript_EffectSuperpower - .4byte BattleScript_EffectMagicCoat - .4byte BattleScript_EffectRecycle - .4byte BattleScript_EffectRevenge - .4byte BattleScript_EffectBrickBreak - .4byte BattleScript_EffectYawn - .4byte BattleScript_EffectKnockOff - .4byte BattleScript_EffectEndeavor - .4byte BattleScript_EffectEruption - .4byte BattleScript_EffectSkillSwap - .4byte BattleScript_EffectImprison - .4byte BattleScript_EffectRefresh - .4byte BattleScript_EffectGrudge - .4byte BattleScript_EffectSnatch - .4byte BattleScript_EffectLowKick - .4byte BattleScript_EffectSecretPower - .4byte BattleScript_EffectRecoil33 - .4byte BattleScript_EffectTeeterDance - .4byte BattleScript_EffectHitEscape - .4byte BattleScript_EffectMudSport - .4byte BattleScript_EffectPoisonFang - .4byte BattleScript_EffectWeatherBall - .4byte BattleScript_EffectOverheat - .4byte BattleScript_EffectTickle - .4byte BattleScript_EffectCosmicPower - .4byte BattleScript_EffectSkyUppercut - .4byte BattleScript_EffectBulkUp - .4byte BattleScript_EffectPlaceholder - .4byte BattleScript_EffectWaterSport - .4byte BattleScript_EffectCalmMind - .4byte BattleScript_EffectDragonDance - .4byte BattleScript_EffectCamouflage - .4byte BattleScript_EffectPledge - .4byte BattleScript_EffectFling - .4byte BattleScript_EffectNaturalGift - .4byte BattleScript_EffectWakeUpSlap - .4byte BattleScript_EffectWringOut - .4byte BattleScript_EffectHex - .4byte BattleScript_EffectAssurance - .4byte BattleScript_EffectTrump_card - .4byte BattleScript_EffectAcrobatics - .4byte BattleScript_EffectHeatCrash - .4byte BattleScript_EffectPunishment - .4byte BattleScript_EffectStoredPower - .4byte BattleScript_EffectElectroBall - .4byte BattleScript_EffectGyroBall - .4byte BattleScript_EffectEchoedVoice - .4byte BattleScript_EffectPayback - .4byte BattleScript_EffectRound - .4byte BattleScript_EffectBrine - .4byte BattleScript_EffectVenoshock - .4byte BattleScript_EffectRetalitate - .4byte BattleScript_EffectBulldoze - .4byte BattleScript_EffectFoulPlay - .4byte BattleScript_EffectPsyshock - .4byte BattleScript_EffectRoost - .4byte BattleScript_EffectGravity - .4byte BattleScript_EffectMircleEye - .4byte BattleScript_EffectTailwind - .4byte BattleScript_EffectEmbargo - .4byte BattleScript_EffectAquaRing - .4byte BattleScript_EffectTrickRoom - .4byte BattleScript_EffectWonderRoom - .4byte BattleScript_EffectMagicRoom - .4byte BattleScript_EffectMagnetRise - .4byte BattleScript_EffectToxicSpikes - .4byte BattleScript_EffectGastroAcid - .4byte BattleScript_EffectStealthRock - .4byte BattleScript_EffectTelekinesis - .4byte BattleScript_EffectPowerSwap - .4byte BattleScript_EffectGuardSwap - .4byte BattleScript_EffectHeartSwap - .4byte BattleScript_EffectPowerSplit - .4byte BattleScript_EffectGuardSplit - .4byte BattleScript_EffectStickyWeb - .4byte BattleScript_EffectMetalBurst - .4byte BattleScript_EffectLuckyChant - .4byte BattleScript_EffectSuckerPunch - .4byte BattleScript_EffectSpecialDefenseDownHit2 - .4byte BattleScript_EffectSimpleBeam - .4byte BattleScript_EffectEntrainment - .4byte BattleScript_EffectHealPulse - .4byte BattleScript_EffectQuash - .4byte BattleScript_EffectIonDeluge - .4byte BattleScript_EffectFreezeDry - .4byte BattleScript_EffectTopsyTurvy - .4byte BattleScript_EffectMistyTerrain - .4byte BattleScript_EffectGrassyTerrain - .4byte BattleScript_EffectElectricTerrain - .4byte BattleScript_EffectPsychicTerrain - .4byte BattleScript_EffectAttackAccUp - .4byte BattleScript_EffectAttackSpAttackUp - .4byte BattleScript_EffectHurricane - .4byte BattleScript_EffectTwoTypedMove - .4byte BattleScript_EffectMeFirst - .4byte BattleScript_EffectSpeedUpHit - .4byte BattleScript_EffectQuiverDance - .4byte BattleScript_EffectCoil - .4byte BattleScript_EffectElectrify - .4byte BattleScript_EffectScald - .4byte BattleScript_EffectReflectType - .4byte BattleScript_EffectSoak - .4byte BattleScript_EffectGrowth - .4byte BattleScript_EffectCloseCombat - .4byte BattleScript_EffectLastResort - .4byte BattleScript_EffectRecoil33WithStatus - .4byte BattleScript_EffectFlinchWithStatus - .4byte BattleScript_EffectRecoil50 - .4byte BattleScript_EffectShellSmash - .4byte BattleScript_EffectShiftGear - .4byte BattleScript_EffectDefenseUp3 - .4byte BattleScript_EffectNobleRoar - .4byte BattleScript_EffectVenomDrench - .4byte BattleScript_EffectToxicThread - .4byte BattleScript_EffectClearSmog - .4byte BattleScript_EffectHitSwitchTarget - .4byte BattleScript_EffectFinalGambit - .4byte BattleScript_EffectChangeTypeOnItem - .4byte BattleScript_EffectAutotomize - .4byte BattleScript_EffectCopycat - .4byte BattleScript_EffectDefog - .4byte BattleScript_EffectHitEnemyHealAlly - .4byte BattleScript_EffectSmackDown - .4byte BattleScript_EffectSynchronoise - .4byte BattleScript_EffectPsychoShift - .4byte BattleScript_EffectPowerTrick - .4byte BattleScript_EffectFlameBurst - .4byte BattleScript_EffectAfterYou - .4byte BattleScript_EffectBestow - .4byte BattleScript_EffectRototiller - .4byte BattleScript_EffectFlowerShield - .4byte BattleScript_EffectHitPreventEscape - .4byte BattleScript_EffectSpeedSwap - .4byte BattleScript_EffectDefenseUp2Hit - .4byte BattleScript_EffectRevelationDance - .4byte BattleScript_EffectAuroraVeil - .4byte BattleScript_EffectThirdType - .4byte BattleScript_EffectFeint - .4byte BattleScript_EffectSparklingAria - .4byte BattleScript_EffectAcupressure - .4byte BattleScript_EffectAromaticMist - .4byte BattleScript_EffectPowder - .4byte BattleScript_EffectSpAtkUpHit - .4byte BattleScript_EffectBelch - .4byte BattleScript_EffectPartingShot - .4byte BattleScript_EffectSpectralThief - .4byte BattleScript_EffectVCreate - .4byte BattleScript_EffectMatBlock - .4byte BattleScript_EffectStompingTantrum - .4byte BattleScript_EffectCoreEnforcer - .4byte BattleScript_EffectInstruct - .4byte BattleScript_EffectThroatChop - .4byte BattleScript_EffectLaserFocus - .4byte BattleScript_EffectMagneticFlux - .4byte BattleScript_EffectGearUp - .4byte BattleScript_EffectIncinerate - .4byte BattleScript_EffectBugBite - .4byte BattleScript_EffectStrengthSap - .4byte BattleScript_EffectMindBlown - .4byte BattleScript_EffectPurify - .4byte BattleScript_EffectBurnUp - .4byte BattleScript_EffectShoreUp - .4byte BattleScript_EffectGeomancy - .4byte BattleScript_EffectFairyLock - .4byte BattleScript_EffectAllySwitch - .4byte BattleScript_EffectSleepHit +gBattleScriptsForMoveEffects:: + .4byte BattleScript_EffectHit @ EFFECT_HIT + .4byte BattleScript_EffectSleep @ EFFECT_SLEEP + .4byte BattleScript_EffectPoisonHit @ EFFECT_POISON_HIT + .4byte BattleScript_EffectAbsorb @ EFFECT_ABSORB + .4byte BattleScript_EffectBurnHit @ EFFECT_BURN_HIT + .4byte BattleScript_EffectFreezeHit @ EFFECT_FREEZE_HIT + .4byte BattleScript_EffectParalyzeHit @ EFFECT_PARALYZE_HIT + .4byte BattleScript_EffectExplosion @ EFFECT_EXPLOSION + .4byte BattleScript_EffectDreamEater @ EFFECT_DREAM_EATER + .4byte BattleScript_EffectMirrorMove @ EFFECT_MIRROR_MOVE + .4byte BattleScript_EffectAttackUp @ EFFECT_ATTACK_UP + .4byte BattleScript_EffectDefenseUp @ EFFECT_DEFENSE_UP + .4byte BattleScript_EffectSpeedUp @ EFFECT_SPEED_UP + .4byte BattleScript_EffectSpecialAttackUp @ EFFECT_SPECIAL_ATTACK_UP + .4byte BattleScript_EffectSpecialDefenseUp @ EFFECT_SPECIAL_DEFENSE_UP + .4byte BattleScript_EffectAccuracyUp @ EFFECT_ACCURACY_UP + .4byte BattleScript_EffectEvasionUp @ EFFECT_EVASION_UP + .4byte BattleScript_EffectSpecialAttackUp3 @ EFFECT_SPECIAL_ATTACK_UP_3 + .4byte BattleScript_EffectAttackDown @ EFFECT_ATTACK_DOWN + .4byte BattleScript_EffectDefenseDown @ EFFECT_DEFENSE_DOWN + .4byte BattleScript_EffectSpeedDown @ EFFECT_SPEED_DOWN + .4byte BattleScript_EffectSpecialAttackDown @ EFFECT_SPECIAL_ATTACK_DOWN + .4byte BattleScript_EffectSpecialDefenseDown @ EFFECT_SPECIAL_DEFENSE_DOWN + .4byte BattleScript_EffectAccuracyDown @ EFFECT_ACCURACY_DOWN + .4byte BattleScript_EffectEvasionDown @ EFFECT_EVASION_DOWN + .4byte BattleScript_EffectHaze @ EFFECT_HAZE + .4byte BattleScript_EffectBide @ EFFECT_BIDE + .4byte BattleScript_EffectRampage @ EFFECT_RAMPAGE + .4byte BattleScript_EffectRoar @ EFFECT_ROAR + .4byte BattleScript_EffectMultiHit @ EFFECT_MULTI_HIT + .4byte BattleScript_EffectConversion @ EFFECT_CONVERSION + .4byte BattleScript_EffectFlinchHit @ EFFECT_FLINCH_HIT + .4byte BattleScript_EffectRestoreHp @ EFFECT_RESTORE_HP + .4byte BattleScript_EffectToxic @ EFFECT_TOXIC + .4byte BattleScript_EffectPayDay @ EFFECT_PAY_DAY + .4byte BattleScript_EffectLightScreen @ EFFECT_LIGHT_SCREEN + .4byte BattleScript_EffectTriAttack @ EFFECT_TRI_ATTACK + .4byte BattleScript_EffectRest @ EFFECT_REST + .4byte BattleScript_EffectOHKO @ EFFECT_OHKO + .4byte BattleScript_EffectHit @ EFFECT_FUSION_COMBO + .4byte BattleScript_EffectSuperFang @ EFFECT_SUPER_FANG + .4byte BattleScript_EffectDragonRage @ EFFECT_DRAGON_RAGE + .4byte BattleScript_EffectTrap @ EFFECT_TRAP + .4byte BattleScript_EffectHealBlock @ EFFECT_HEAL_BLOCK + .4byte BattleScript_EffectDoubleHit @ EFFECT_DOUBLE_HIT + .4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS + .4byte BattleScript_EffectMist @ EFFECT_MIST + .4byte BattleScript_EffectFocusEnergy @ EFFECT_FOCUS_ENERGY + .4byte BattleScript_EffectRecoil25 @ EFFECT_RECOIL_25 + .4byte BattleScript_EffectConfuse @ EFFECT_CONFUSE + .4byte BattleScript_EffectAttackUp2 @ EFFECT_ATTACK_UP_2 + .4byte BattleScript_EffectDefenseUp2 @ EFFECT_DEFENSE_UP_2 + .4byte BattleScript_EffectSpeedUp2 @ EFFECT_SPEED_UP_2 + .4byte BattleScript_EffectSpecialAttackUp2 @ EFFECT_SPECIAL_ATTACK_UP_2 + .4byte BattleScript_EffectSpecialDefenseUp2 @ EFFECT_SPECIAL_DEFENSE_UP_2 + .4byte BattleScript_EffectAccuracyUp2 @ EFFECT_ACCURACY_UP_2 + .4byte BattleScript_EffectEvasionUp2 @ EFFECT_EVASION_UP_2 + .4byte BattleScript_EffectTransform @ EFFECT_TRANSFORM + .4byte BattleScript_EffectAttackDown2 @ EFFECT_ATTACK_DOWN_2 + .4byte BattleScript_EffectDefenseDown2 @ EFFECT_DEFENSE_DOWN_2 + .4byte BattleScript_EffectSpeedDown2 @ EFFECT_SPEED_DOWN_2 + .4byte BattleScript_EffectSpecialAttackDown2 @ EFFECT_SPECIAL_ATTACK_DOWN_2 + .4byte BattleScript_EffectSpecialDefenseDown2 @ EFFECT_SPECIAL_DEFENSE_DOWN_2 + .4byte BattleScript_EffectAccuracyDown2 @ EFFECT_ACCURACY_DOWN_2 + .4byte BattleScript_EffectEvasionDown2 @ EFFECT_EVASION_DOWN_2 + .4byte BattleScript_EffectReflect @ EFFECT_REFLECT + .4byte BattleScript_EffectPoison @ EFFECT_POISON + .4byte BattleScript_EffectParalyze @ EFFECT_PARALYZE + .4byte BattleScript_EffectAttackDownHit @ EFFECT_ATTACK_DOWN_HIT + .4byte BattleScript_EffectDefenseDownHit @ EFFECT_DEFENSE_DOWN_HIT + .4byte BattleScript_EffectSpeedDownHit @ EFFECT_SPEED_DOWN_HIT + .4byte BattleScript_EffectSpecialAttackDownHit @ EFFECT_SPECIAL_ATTACK_DOWN_HIT + .4byte BattleScript_EffectSpecialDefenseDownHit @ EFFECT_SPECIAL_DEFENSE_DOWN_HIT + .4byte BattleScript_EffectAccuracyDownHit @ EFFECT_ACCURACY_DOWN_HIT + .4byte BattleScript_EffectHit @ EFFECT_EVASION_DOWN_HIT + .4byte BattleScript_EffectTwoTurnsAttack @ EFFECT_TWO_TURNS_ATTACK + .4byte BattleScript_EffectConfuseHit @ EFFECT_CONFUSE_HIT + .4byte BattleScript_EffectTwineedle @ EFFECT_TWINEEDLE + .4byte BattleScript_EffectHit @ EFFECT_VITAL_THROW + .4byte BattleScript_EffectSubstitute @ EFFECT_SUBSTITUTE + .4byte BattleScript_EffectRecharge @ EFFECT_RECHARGE + .4byte BattleScript_EffectRage @ EFFECT_RAGE + .4byte BattleScript_EffectMimic @ EFFECT_MIMIC + .4byte BattleScript_EffectMetronome @ EFFECT_METRONOME + .4byte BattleScript_EffectLeechSeed @ EFFECT_LEECH_SEED + .4byte BattleScript_EffectDoNothing @ EFFECT_DO_NOTHING + .4byte BattleScript_EffectDisable @ EFFECT_DISABLE + .4byte BattleScript_EffectLevelDamage @ EFFECT_LEVEL_DAMAGE + .4byte BattleScript_EffectPsywave @ EFFECT_PSYWAVE + .4byte BattleScript_EffectCounter @ EFFECT_COUNTER + .4byte BattleScript_EffectEncore @ EFFECT_ENCORE + .4byte BattleScript_EffectPainSplit @ EFFECT_PAIN_SPLIT + .4byte BattleScript_EffectSnore @ EFFECT_SNORE + .4byte BattleScript_EffectConversion2 @ EFFECT_CONVERSION_2 + .4byte BattleScript_EffectLockOn @ EFFECT_LOCK_ON + .4byte BattleScript_EffectSketch @ EFFECT_SKETCH + .4byte BattleScript_EffectHammerArm @ EFFECT_HAMMER_ARM + .4byte BattleScript_EffectSleepTalk @ EFFECT_SLEEP_TALK + .4byte BattleScript_EffectDestinyBond @ EFFECT_DESTINY_BOND + .4byte BattleScript_EffectHit @ EFFECT_FLAIL + .4byte BattleScript_EffectSpite @ EFFECT_SPITE + .4byte BattleScript_EffectHit @ EFFECT_FALSE_SWIPE + .4byte BattleScript_EffectHealBell @ EFFECT_HEAL_BELL + .4byte BattleScript_EffectHit @ EFFECT_ALWAYS_CRIT + .4byte BattleScript_EffectTripleKick @ EFFECT_TRIPLE_KICK + .4byte BattleScript_EffectThief @ EFFECT_THIEF + .4byte BattleScript_EffectMeanLook @ EFFECT_MEAN_LOOK + .4byte BattleScript_EffectNightmare @ EFFECT_NIGHTMARE + .4byte BattleScript_EffectMinimize @ EFFECT_MINIMIZE + .4byte BattleScript_EffectCurse @ EFFECT_CURSE + .4byte BattleScript_EffectHealingWish @ EFFECT_HEALING_WISH + .4byte BattleScript_EffectProtect @ EFFECT_PROTECT + .4byte BattleScript_EffectSpikes @ EFFECT_SPIKES + .4byte BattleScript_EffectForesight @ EFFECT_FORESIGHT + .4byte BattleScript_EffectPerishSong @ EFFECT_PERISH_SONG + .4byte BattleScript_EffectSandstorm @ EFFECT_SANDSTORM + .4byte BattleScript_EffectEndure @ EFFECT_ENDURE + .4byte BattleScript_EffectRollout @ EFFECT_ROLLOUT + .4byte BattleScript_EffectSwagger @ EFFECT_SWAGGER + .4byte BattleScript_EffectFuryCutter @ EFFECT_FURY_CUTTER + .4byte BattleScript_EffectAttract @ EFFECT_ATTRACT + .4byte BattleScript_EffectHit @ EFFECT_RETURN + .4byte BattleScript_EffectPresent @ EFFECT_PRESENT + .4byte BattleScript_EffectHit @ EFFECT_FRUSTRATION + .4byte BattleScript_EffectSafeguard @ EFFECT_SAFEGUARD + .4byte BattleScript_EffectHit @ EFFECT_UNUSED_125 + .4byte BattleScript_EffectMagnitude @ EFFECT_MAGNITUDE + .4byte BattleScript_EffectBatonPass @ EFFECT_BATON_PASS + .4byte BattleScript_EffectHit @ EFFECT_PURSUIT + .4byte BattleScript_EffectRapidSpin @ EFFECT_RAPID_SPIN + .4byte BattleScript_EffectSonicboom @ EFFECT_SONICBOOM + .4byte BattleScript_EffectCaptivate @ EFFECT_CAPTIVATE + .4byte BattleScript_EffectMorningSun @ EFFECT_MORNING_SUN + .4byte BattleScript_EffectSynthesis @ EFFECT_SYNTHESIS + .4byte BattleScript_EffectMoonlight @ EFFECT_MOONLIGHT + .4byte BattleScript_EffectHit @ EFFECT_HIDDEN_POWER + .4byte BattleScript_EffectRainDance @ EFFECT_RAIN_DANCE + .4byte BattleScript_EffectSunnyDay @ EFFECT_SUNNY_DAY + .4byte BattleScript_EffectDefenseUpHit @ EFFECT_DEFENSE_UP_HIT + .4byte BattleScript_EffectAttackUpHit @ EFFECT_ATTACK_UP_HIT + .4byte BattleScript_EffectAllStatsUpHit @ EFFECT_ALL_STATS_UP_HIT + .4byte BattleScript_EffectHit @ EFFECT_FELL_STINGER + .4byte BattleScript_EffectBellyDrum @ EFFECT_BELLY_DRUM + .4byte BattleScript_EffectPsychUp @ EFFECT_PSYCH_UP + .4byte BattleScript_EffectMirrorCoat @ EFFECT_MIRROR_COAT + .4byte BattleScript_EffectSkullBash @ EFFECT_SKULL_BASH + .4byte BattleScript_EffectTwister @ EFFECT_TWISTER + .4byte BattleScript_EffectEarthquake @ EFFECT_EARTHQUAKE + .4byte BattleScript_EffectFutureSight @ EFFECT_FUTURE_SIGHT + .4byte BattleScript_EffectGust @ EFFECT_GUST + .4byte BattleScript_EffectStomp @ EFFECT_FLINCH_MINIMIZE_HIT + .4byte BattleScript_EffectSolarbeam @ EFFECT_SOLARBEAM + .4byte BattleScript_EffectThunder @ EFFECT_THUNDER + .4byte BattleScript_EffectTeleport @ EFFECT_TELEPORT + .4byte BattleScript_EffectBeatUp @ EFFECT_BEAT_UP + .4byte BattleScript_EffectSemiInvulnerable @ EFFECT_SEMI_INVULNERABLE + .4byte BattleScript_EffectDefenseCurl @ EFFECT_DEFENSE_CURL + .4byte BattleScript_EffectSoftboiled @ EFFECT_SOFTBOILED + .4byte BattleScript_EffectFakeOut @ EFFECT_FAKE_OUT + .4byte BattleScript_EffectUproar @ EFFECT_UPROAR + .4byte BattleScript_EffectStockpile @ EFFECT_STOCKPILE + .4byte BattleScript_EffectSpitUp @ EFFECT_SPIT_UP + .4byte BattleScript_EffectSwallow @ EFFECT_SWALLOW + .4byte BattleScript_EffectWorrySeed @ EFFECT_WORRY_SEED + .4byte BattleScript_EffectHail @ EFFECT_HAIL + .4byte BattleScript_EffectTorment @ EFFECT_TORMENT + .4byte BattleScript_EffectFlatter @ EFFECT_FLATTER + .4byte BattleScript_EffectWillOWisp @ EFFECT_WILL_O_WISP + .4byte BattleScript_EffectMemento @ EFFECT_MEMENTO + .4byte BattleScript_EffectHit @ EFFECT_FACADE + .4byte BattleScript_EffectFocusPunch @ EFFECT_FOCUS_PUNCH + .4byte BattleScript_EffectSmellingsalt @ EFFECT_SMELLINGSALT + .4byte BattleScript_EffectFollowMe @ EFFECT_FOLLOW_ME + .4byte BattleScript_EffectNaturePower @ EFFECT_NATURE_POWER + .4byte BattleScript_EffectCharge @ EFFECT_CHARGE + .4byte BattleScript_EffectTaunt @ EFFECT_TAUNT + .4byte BattleScript_EffectHelpingHand @ EFFECT_HELPING_HAND + .4byte BattleScript_EffectTrick @ EFFECT_TRICK + .4byte BattleScript_EffectRolePlay @ EFFECT_ROLE_PLAY + .4byte BattleScript_EffectWish @ EFFECT_WISH + .4byte BattleScript_EffectAssist @ EFFECT_ASSIST + .4byte BattleScript_EffectIngrain @ EFFECT_INGRAIN + .4byte BattleScript_EffectSuperpower @ EFFECT_SUPERPOWER + .4byte BattleScript_EffectMagicCoat @ EFFECT_MAGIC_COAT + .4byte BattleScript_EffectRecycle @ EFFECT_RECYCLE + .4byte BattleScript_EffectHit @ EFFECT_REVENGE + .4byte BattleScript_EffectBrickBreak @ EFFECT_BRICK_BREAK + .4byte BattleScript_EffectYawn @ EFFECT_YAWN + .4byte BattleScript_EffectKnockOff @ EFFECT_KNOCK_OFF + .4byte BattleScript_EffectEndeavor @ EFFECT_ENDEAVOR + .4byte BattleScript_EffectHit @ EFFECT_ERUPTION + .4byte BattleScript_EffectSkillSwap @ EFFECT_SKILL_SWAP + .4byte BattleScript_EffectImprison @ EFFECT_IMPRISON + .4byte BattleScript_EffectRefresh @ EFFECT_REFRESH + .4byte BattleScript_EffectGrudge @ EFFECT_GRUDGE + .4byte BattleScript_EffectSnatch @ EFFECT_SNATCH + .4byte BattleScript_EffectHit @ EFFECT_LOW_KICK + .4byte BattleScript_EffectSecretPower @ EFFECT_SECRET_POWER + .4byte BattleScript_EffectRecoil33 @ EFFECT_RECOIL_33 + .4byte BattleScript_EffectTeeterDance @ EFFECT_TEETER_DANCE + .4byte BattleScript_EffectHitEscape @ EFFECT_HIT_ESCAPE + .4byte BattleScript_EffectMudSport @ EFFECT_MUD_SPORT + .4byte BattleScript_EffectPoisonFang @ EFFECT_POISON_FANG + .4byte BattleScript_EffectHit @ EFFECT_WEATHER_BALL + .4byte BattleScript_EffectOverheat @ EFFECT_OVERHEAT + .4byte BattleScript_EffectTickle @ EFFECT_TICKLE + .4byte BattleScript_EffectCosmicPower @ EFFECT_COSMIC_POWER + .4byte BattleScript_EffectSkyUppercut @ EFFECT_SKY_UPPERCUT + .4byte BattleScript_EffectBulkUp @ EFFECT_BULK_UP + .4byte BattleScript_EffectPlaceholder @ EFFECT_PLACEHOLDER + .4byte BattleScript_EffectWaterSport @ EFFECT_WATER_SPORT + .4byte BattleScript_EffectCalmMind @ EFFECT_CALM_MIND + .4byte BattleScript_EffectDragonDance @ EFFECT_DRAGON_DANCE + .4byte BattleScript_EffectCamouflage @ EFFECT_CAMOUFLAGE + .4byte BattleScript_EffectHit @ EFFECT_PLEDGE + .4byte BattleScript_EffectHit @ EFFECT_FLING + .4byte BattleScript_EffectNaturalGift @ EFFECT_NATURAL_GIFT + .4byte BattleScript_EffectWakeUpSlap @ EFFECT_WAKE_UP_SLAP + .4byte BattleScript_EffectHit @ EFFECT_WRING_OUT + .4byte BattleScript_EffectHit @ EFFECT_HEX + .4byte BattleScript_EffectHit @ EFFECT_ASSURANCE + .4byte BattleScript_EffectHit @ EFFECT_TRUMP_CARD + .4byte BattleScript_EffectHit @ EFFECT_ACROBATICS + .4byte BattleScript_EffectHit @ EFFECT_HEAT_CRASH + .4byte BattleScript_EffectHit @ EFFECT_PUNISHMENT + .4byte BattleScript_EffectHit @ EFFECT_STORED_POWER + .4byte BattleScript_EffectHit @ EFFECT_ELECTRO_BALL + .4byte BattleScript_EffectHit @ EFFECT_GYRO_BALL + .4byte BattleScript_EffectHit @ EFFECT_ECHOED_VOICE + .4byte BattleScript_EffectHit @ EFFECT_PAYBACK + .4byte BattleScript_EffectHit @ EFFECT_ROUND + .4byte BattleScript_EffectHit @ EFFECT_BRINE + .4byte BattleScript_EffectHit @ EFFECT_VENOSHOCK + .4byte BattleScript_EffectHit @ EFFECT_RETALITATE + .4byte BattleScript_EffectBulldoze @ EFFECT_BULLDOZE + .4byte BattleScript_EffectHit @ EFFECT_FOUL_PLAY + .4byte BattleScript_EffectHit @ EFFECT_PSYSHOCK + .4byte BattleScript_EffectRoost @ EFFECT_ROOST + .4byte BattleScript_EffectGravity @ EFFECT_GRAVITY + .4byte BattleScript_EffectMircleEye @ EFFECT_MIRACLE_EYE + .4byte BattleScript_EffectTailwind @ EFFECT_TAILWIND + .4byte BattleScript_EffectEmbargo @ EFFECT_EMBARGO + .4byte BattleScript_EffectAquaRing @ EFFECT_AQUA_RING + .4byte BattleScript_EffectTrickRoom @ EFFECT_TRICK_ROOM + .4byte BattleScript_EffectWonderRoom @ EFFECT_WONDER_ROOM + .4byte BattleScript_EffectMagicRoom @ EFFECT_MAGIC_ROOM + .4byte BattleScript_EffectMagnetRise @ EFFECT_MAGNET_RISE + .4byte BattleScript_EffectToxicSpikes @ EFFECT_TOXIC_SPIKES + .4byte BattleScript_EffectGastroAcid @ EFFECT_GASTRO_ACID + .4byte BattleScript_EffectStealthRock @ EFFECT_STEALTH_ROCK + .4byte BattleScript_EffectTelekinesis @ EFFECT_TELEKINESIS + .4byte BattleScript_EffectPowerSwap @ EFFECT_POWER_SWAP + .4byte BattleScript_EffectGuardSwap @ EFFECT_GUARD_SWAP + .4byte BattleScript_EffectHeartSwap @ EFFECT_HEART_SWAP + .4byte BattleScript_EffectPowerSplit @ EFFECT_POWER_SPLIT + .4byte BattleScript_EffectGuardSplit @ EFFECT_GUARD_SPLIT + .4byte BattleScript_EffectStickyWeb @ EFFECT_STICKY_WEB + .4byte BattleScript_EffectMetalBurst @ EFFECT_METAL_BURST + .4byte BattleScript_EffectLuckyChant @ EFFECT_LUCKY_CHANT + .4byte BattleScript_EffectSuckerPunch @ EFFECT_SUCKER_PUNCH + .4byte BattleScript_EffectSpecialDefenseDownHit2 @ EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2 + .4byte BattleScript_EffectSimpleBeam @ EFFECT_SIMPLE_BEAM + .4byte BattleScript_EffectEntrainment @ EFFECT_ENTRAINMENT + .4byte BattleScript_EffectHealPulse @ EFFECT_HEAL_PULSE + .4byte BattleScript_EffectQuash @ EFFECT_QUASH + .4byte BattleScript_EffectIonDeluge @ EFFECT_ION_DELUGE + .4byte BattleScript_EffectFreezeHit @ EFFECT_FREEZE_DRY + .4byte BattleScript_EffectTopsyTurvy @ EFFECT_TOPSY_TURVY + .4byte BattleScript_EffectMistyTerrain @ EFFECT_MISTY_TERRAIN + .4byte BattleScript_EffectGrassyTerrain @ EFFECT_GRASSY_TERRAIN + .4byte BattleScript_EffectElectricTerrain @ EFFECT_ELECTRIC_TERRAIN + .4byte BattleScript_EffectPsychicTerrain @ EFFECT_PSYCHIC_TERRAIN + .4byte BattleScript_EffectAttackAccUp @ EFFECT_ATTACK_ACCURACY_UP + .4byte BattleScript_EffectAttackSpAttackUp @ EFFECT_ATTACK_SPATK_UP + .4byte BattleScript_EffectHurricane @ EFFECT_HURRICANE + .4byte BattleScript_EffectHit @ EFFECT_TWO_TYPED_MOVE + .4byte BattleScript_EffectMeFirst @ EFFECT_ME_FIRST + .4byte BattleScript_EffectSpeedUpHit @ EFFECT_SPEED_UP_HIT + .4byte BattleScript_EffectQuiverDance @ EFFECT_QUIVER_DANCE + .4byte BattleScript_EffectCoil @ EFFECT_COIL + .4byte BattleScript_EffectElectrify @ EFFECT_ELECTRIFY + .4byte BattleScript_EffectBurnHit @ EFFECT_SCALD + .4byte BattleScript_EffectReflectType @ EFFECT_REFLECT_TYPE + .4byte BattleScript_EffectSoak @ EFFECT_SOAK + .4byte BattleScript_EffectGrowth @ EFFECT_GROWTH + .4byte BattleScript_EffectCloseCombat @ EFFECT_CLOSE_COMBAT + .4byte BattleScript_EffectLastResort @ EFFECT_LAST_RESORT + .4byte BattleScript_EffectRecoil33WithStatus @ EFFECT_RECOIL_33_STATUS + .4byte BattleScript_EffectFlinchWithStatus @ EFFECT_FLINCH_STATUS + .4byte BattleScript_EffectRecoil50 @ EFFECT_RECOIL_50 + .4byte BattleScript_EffectShellSmash @ EFFECT_SHELL_SMASH + .4byte BattleScript_EffectShiftGear @ EFFECT_SHIFT_GEAR + .4byte BattleScript_EffectDefenseUp3 @ EFFECT_DEFENSE_UP_3 + .4byte BattleScript_EffectNobleRoar @ EFFECT_NOBLE_ROAR + .4byte BattleScript_EffectVenomDrench @ EFFECT_VENOM_DRENCH + .4byte BattleScript_EffectToxicThread @ EFFECT_TOXIC_THREAD + .4byte BattleScript_EffectClearSmog @ EFFECT_CLEAR_SMOG + .4byte BattleScript_EffectHitSwitchTarget @ EFFECT_HIT_SWITCH_TARGET + .4byte BattleScript_EffectFinalGambit @ EFFECT_FINAL_GAMBIT + .4byte BattleScript_EffectHit @ EFFECT_CHANGE_TYPE_ON_ITEM + .4byte BattleScript_EffectAutotomize @ EFFECT_AUTOTOMIZE + .4byte BattleScript_EffectCopycat @ EFFECT_COPYCAT + .4byte BattleScript_EffectDefog @ EFFECT_DEFOG + .4byte BattleScript_EffectHitEnemyHealAlly @ EFFECT_HIT_ENEMY_HEAL_ALLY + .4byte BattleScript_EffectSmackDown @ EFFECT_SMACK_DOWN + .4byte BattleScript_EffectSynchronoise @ EFFECT_SYNCHRONOISE + .4byte BattleScript_EffectPsychoShift @ EFFECT_PSYCHO_SHIFT + .4byte BattleScript_EffectPowerTrick @ EFFECT_POWER_TRICK + .4byte BattleScript_EffectFlameBurst @ EFFECT_FLAME_BURST + .4byte BattleScript_EffectAfterYou @ EFFECT_AFTER_YOU + .4byte BattleScript_EffectBestow @ EFFECT_BESTOW + .4byte BattleScript_EffectRototiller @ EFFECT_ROTOTILLER + .4byte BattleScript_EffectFlowerShield @ EFFECT_FLOWER_SHIELD + .4byte BattleScript_EffectHitPreventEscape @ EFFECT_HIT_PREVENT_ESCAPE + .4byte BattleScript_EffectSpeedSwap @ EFFECT_SPEED_SWAP + .4byte BattleScript_EffectDefenseUp2Hit @ EFFECT_DEFENSE_UP2_HIT + .4byte BattleScript_EffectHit @ EFFECT_REVELATION_DANCE + .4byte BattleScript_EffectAuroraVeil @ EFFECT_AURORA_VEIL + .4byte BattleScript_EffectThirdType @ EFFECT_THIRD_TYPE + .4byte BattleScript_EffectFeint @ EFFECT_FEINT + .4byte BattleScript_EffectSparklingAria @ EFFECT_SPARKLING_ARIA + .4byte BattleScript_EffectAcupressure @ EFFECT_ACUPRESSURE + .4byte BattleScript_EffectAromaticMist @ EFFECT_AROMATIC_MIST + .4byte BattleScript_EffectPowder @ EFFECT_POWDER + .4byte BattleScript_EffectSpAtkUpHit @ EFFECT_SP_ATTACK_UP_HIT + .4byte BattleScript_EffectHit @ EFFECT_BELCH + .4byte BattleScript_EffectPartingShot @ EFFECT_PARTING_SHOT + .4byte BattleScript_EffectSpectralThief @ EFFECT_SPECTRAL_THIEF + .4byte BattleScript_EffectVCreate @ EFFECT_V_CREATE + .4byte BattleScript_EffectMatBlock @ EFFECT_MAT_BLOCK + .4byte BattleScript_EffectHit @ EFFECT_STOMPING_TANTRUM + .4byte BattleScript_EffectCoreEnforcer @ EFFECT_CORE_ENFORCER + .4byte BattleScript_EffectInstruct @ EFFECT_INSTRUCT + .4byte BattleScript_EffectThroatChop @ EFFECT_THROAT_CHOP + .4byte BattleScript_EffectLaserFocus @ EFFECT_LASER_FOCUS + .4byte BattleScript_EffectMagneticFlux @ EFFECT_MAGNETIC_FLUX + .4byte BattleScript_EffectGearUp @ EFFECT_GEAR_UP + .4byte BattleScript_EffectIncinerate @ EFFECT_INCINERATE + .4byte BattleScript_EffectBugBite @ EFFECT_BUG_BITE + .4byte BattleScript_EffectStrengthSap @ EFFECT_STRENGTH_SAP + .4byte BattleScript_EffectMindBlown @ EFFECT_MIND_BLOWN + .4byte BattleScript_EffectPurify @ EFFECT_PURIFY + .4byte BattleScript_EffectBurnUp @ EFFECT_BURN_UP + .4byte BattleScript_EffectShoreUp @ EFFECT_SHORE_UP + .4byte BattleScript_EffectGeomancy @ EFFECT_GEOMANCY + .4byte BattleScript_EffectFairyLock @ EFFECT_FAIRY_LOCK + .4byte BattleScript_EffectAllySwitch @ EFFECT_ALLY_SWITCH + .4byte BattleScript_EffectSleepHit @ EFFECT_SLEEP_HIT + .4byte BattleScript_EffectAttackerDefenseDownHit @ EFFECT_ATTACKER_DEFENSE_DOWN_HIT + .4byte BattleScript_EffectHit @ EFFECT_BODY_PRESS + +BattleScript_EffectAttackerDefenseDownHit: + setmoveeffect MOVE_EFFECT_DEF_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + goto BattleScript_EffectHit BattleScript_EffectSleepHit: setmoveeffect MOVE_EFFECT_SLEEP @@ -379,7 +387,7 @@ BattleScript_EffectAllySwitch: attackanimation waitanimation printstring STRINGID_ALLYSWITCHPOSITION - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectFairyLock: @@ -391,7 +399,7 @@ BattleScript_EffectFairyLock: attackanimation waitanimation printstring STRINGID_NOONEWILLBEABLETORUNAWAY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectBurnUp: @@ -413,12 +421,12 @@ BattleScript_BurnUpWorks: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG losetype BS_ATTACKER, TYPE_FIRE printstring STRINGID_ATTACKERLOSTFIRETYPE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET, FALSE, NULL goto BattleScript_MoveEnd @@ -435,7 +443,7 @@ BattleScript_PurifyWorks: curestatus BS_TARGET updatestatusicon BS_TARGET printstring STRINGID_ATTACKERCUREDTARGETSTATUS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER goto BattleScript_RestoreHp @@ -446,11 +454,11 @@ BattleScript_EffectStrengthSap: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce - jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, 0, BattleScript_StrengthSapTryLower - pause 0x20 + jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MIN_STAT_STAGE, BattleScript_StrengthSapTryLower + pause B_WAIT_TIME_SHORT statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_MoveEnd printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_StrengthSapTryLower: getstatvalue BS_TARGET, STAT_ATK @@ -458,12 +466,12 @@ BattleScript_StrengthSapTryLower: attackanimation waitanimation statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StrengthSapHp - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StrengthSapHp + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StrengthSapHp BattleScript_StrengthSapLower: setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_StrengthSapHp @ Drain HP without lowering a stat BattleScript_StrengthSapTryHp: @@ -476,11 +484,11 @@ BattleScript_StrengthSapHp: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNENERGYDRAINED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_StrengthSapMustLower: statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_MoveEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_MoveEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_MoveEnd attackanimation waitanimation goto BattleScript_StrengthSapLower @@ -495,12 +503,12 @@ BattleScript_EffectIncinerate: BattleScript_MoveEffectIncinerate:: printstring STRINGID_INCINERATEBURN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MoveEffectBugBite:: printstring STRINGID_BUGBITE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_EffectCoreEnforcer: @@ -510,7 +518,7 @@ BattleScript_EffectCoreEnforcer: BattleScript_MoveEffectCoreEnforcer:: setgastroacid BattleScript_CoreEnforcerRet printstring STRINGID_PKMNSABILITYSUPPRESSED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CoreEnforcerRet: return @@ -522,7 +530,7 @@ BattleScript_EffectLaserFocus: attackanimation waitanimation printstring STRINGID_LASERFOCUS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectVCreate: @@ -530,35 +538,35 @@ BattleScript_EffectVCreate: goto BattleScript_EffectHit BattleScript_VCreateStatLoss:: - jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, 0x0, BattleScript_VCreateStatAnim - jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPDEF, 0x0, BattleScript_VCreateStatAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0x0, BattleScript_VCreateStatLossRet + jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_VCreateStatAnim + jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_VCreateStatAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MIN_STAT_STAGE, BattleScript_VCreateStatLossRet BattleScript_VCreateStatAnim: setbyte sSTAT_ANIM_PLAYED, FALSE playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF | BIT_SPEED, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT setstatchanger STAT_DEF, 1, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VCreateTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VCreateTrySpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_VCreateTrySpDef: setstatchanger STAT_SPDEF, 1, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateTrySpeed - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VCreateTrySpeed + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VCreateTrySpeed printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_VCreateTrySpeed: setstatchanger STAT_SPEED, 1, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, BattleScript_VCreateStatLossRet - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VCreateStatLossRet + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_VCreateStatLossRet printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_VCreateStatLossRet: return BattleScript_SpectralThiefSteal:: printstring STRINGID_SPECTRALTHIEFSTEAL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setbyte sB_ANIM_ARG2, 0 playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 spectralthiefprintstats @@ -572,33 +580,33 @@ BattleScript_EffectPartingShot:: attackcanceler attackstring ppreduce - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_EffectPartingShotTryAtk - jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0x0, BattleScript_CantLowerMultipleStats + jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_EffectPartingShotTryAtk + jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats BattleScript_EffectPartingShotTryAtk: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE + playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE setstatchanger STAT_ATK, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectPartingShotTrySpAtk printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectPartingShotTrySpAtk: playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE setstatchanger STAT_SPATK, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectPartingShotSwitch printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectPartingShotSwitch: moveendall jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_PartingShotEnd jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_PartingShotEnd - openpartyscreen 0x1, BattleScript_PartingShotEnd + openpartyscreen BS_ATTACKER, BattleScript_PartingShotEnd switchoutabilities BS_ATTACKER waitstate - switchhandleorder BS_ATTACKER, 0x2 + switchhandleorder BS_ATTACKER, 2 returntoball BS_ATTACKER getswitchedmondata BS_ATTACKER switchindataupdate BS_ATTACKER @@ -624,7 +632,7 @@ BattleScript_EffectPowder: attackanimation waitanimation printstring STRINGID_COVEREDINPOWDER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectAromaticMist: @@ -637,10 +645,10 @@ BattleScript_EffectAromaticMist: BattleScript_EffectAromaticMistWorks: setstatchanger STAT_SPDEF, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectAromaticMistEnd - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AromaticMistAnim - pause 0x10 + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AromaticMistAnim + pause 16 printstring STRINGID_TARGETSTATWONTGOHIGHER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_EffectAromaticMistEnd BattleScript_AromaticMistAnim: attackanimation @@ -648,7 +656,7 @@ BattleScript_AromaticMistAnim: setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectAromaticMistEnd: goto BattleScript_MoveEnd @@ -656,78 +664,78 @@ BattleScript_EffectMagneticFlux:: attackcanceler attackstring ppreduce - setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication, 0 BattleScript_EffectMagneticFluxStart: jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectMagneticFluxCheckStats jumpifability BS_TARGET, ABILITY_PLUS, BattleScript_EffectMagneticFluxCheckStats goto BattleScript_EffectMagneticFluxLoop BattleScript_EffectMagneticFluxCheckStats: - jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_EffectMagneticFluxTryDef - jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_EffectMagneticFluxLoop + jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_EffectMagneticFluxTryDef + jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_EffectMagneticFluxLoop BattleScript_EffectMagneticFluxTryDef: - jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_EffectMagneticFluxSkipAnim + jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_EffectMagneticFluxSkipAnim attackanimation waitanimation BattleScript_EffectMagneticFluxSkipAnim: setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_TARGET, BIT_DEF | BIT_SPDEF, 0x0 + playstatchangeanimation BS_TARGET, BIT_DEF | BIT_SPDEF, 0 setstatchanger STAT_DEF, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMagneticFluxTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectMagneticFluxTrySpDef - addbyte gBattleCommunication, 0x1 + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectMagneticFluxTrySpDef + addbyte gBattleCommunication, 1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectMagneticFluxTrySpDef: setstatchanger STAT_SPDEF, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMagneticFluxLoop - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectMagneticFluxLoop - addbyte gBattleCommunication, 0x1 + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectMagneticFluxLoop + addbyte gBattleCommunication, 1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectMagneticFluxLoop: jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectMagneticFluxEnd setallytonexttarget BattleScript_EffectMagneticFluxStart BattleScript_EffectMagneticFluxEnd: - jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd + jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_MoveEnd goto BattleScript_ButItFailed BattleScript_EffectGearUp:: attackcanceler attackstring ppreduce - setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication, 0 BattleScript_EffectGearUpStart: jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectGearUpCheckStats jumpifability BS_TARGET, ABILITY_PLUS, BattleScript_EffectGearUpCheckStats goto BattleScript_EffectGearUpLoop BattleScript_EffectGearUpCheckStats: - jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_EffectGearUpTryAtk - jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_EffectGearUpLoop + jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_EffectGearUpTryAtk + jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_EffectGearUpLoop BattleScript_EffectGearUpTryAtk: - jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_EffectGearUpSkipAnim + jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_EffectGearUpSkipAnim attackanimation waitanimation BattleScript_EffectGearUpSkipAnim: setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0x0 + playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0 setstatchanger STAT_ATK, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectGearUpTrySpAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectGearUpTrySpAtk - addbyte gBattleCommunication, 0x1 + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectGearUpTrySpAtk + addbyte gBattleCommunication, 1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectGearUpTrySpAtk: setstatchanger STAT_SPATK, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectGearUpLoop - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectGearUpLoop - addbyte gBattleCommunication, 0x1 + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectGearUpLoop + addbyte gBattleCommunication, 1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectGearUpLoop: jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectGearUpEnd setallytonexttarget BattleScript_EffectGearUpStart BattleScript_EffectGearUpEnd: - jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd + jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0, BattleScript_MoveEnd goto BattleScript_ButItFailed BattleScript_EffectAcupressure: @@ -743,13 +751,13 @@ BattleScript_EffectAcupressureTry: setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 statbuffchange MOVE_EFFECT_CERTAIN, BattleScript_MoveEnd - printstring STRINGID_PKMNSSTATCHANGED2 - waitmessage 0x40 + printstring STRINGID_DEFENDERSSTATROSE + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_MoveEffectFeint:: printstring STRINGID_FELLFORFEINT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_EffectFeint: @@ -765,7 +773,7 @@ BattleScript_EffectThirdType: attackanimation waitanimation printstring STRINGID_THIRDTYPEADDED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectDefenseUp2Hit: @@ -790,9 +798,9 @@ BattleScript_FlowerShieldLoop: BattleScript_FlowerShieldLoop2: setstatchanger STAT_DEF, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_FlowerShieldMoveTargetEnd - jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlowerShieldDoAnim - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_FlowerShieldMoveTargetEnd - pause 0x15 + jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlowerShieldDoAnim + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_EMPTY, BattleScript_FlowerShieldMoveTargetEnd + pause 21 goto BattleScript_FlowerShieldString BattleScript_FlowerShieldDoAnim: attackanimation @@ -801,7 +809,7 @@ BattleScript_FlowerShieldDoAnim: playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_FlowerShieldString: printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_FlowerShieldMoveTargetEnd: moveendto MOVEEND_NEXT_TARGET jumpifnexttargetvalid BattleScript_FlowerShieldLoop @@ -817,36 +825,36 @@ BattleScript_RototillerLoop: jumpifnotgrounded BS_TARGET, BattleScript_RototillerNoEffect jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_RototillerLoop2 BattleScript_RototillerNoEffect: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_NOEFFECTONTARGET - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_RototillerMoveTargetEnd BattleScript_RototillerLoop2: - jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_RototillerDoMoveAnim - jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_RototillerCantRaiseMultipleStats + jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_RototillerDoMoveAnim + jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_RototillerCantRaiseMultipleStats BattleScript_RototillerDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0x0 + playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0 setstatchanger STAT_ATK, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_RototillerTrySpAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RototillerTrySpAtk + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_RototillerTrySpAtk printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_RototillerTrySpAtk:: setstatchanger STAT_SPATK, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_RototillerMoveTargetEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RototillerMoveTargetEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_RototillerMoveTargetEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_RototillerMoveTargetEnd: moveendto MOVEEND_NEXT_TARGET jumpifnexttargetvalid BattleScript_RototillerLoop end BattleScript_RototillerCantRaiseMultipleStats: printstring STRINGID_STATSWONTINCREASE2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_RototillerMoveTargetEnd BattleScript_EffectBestow: @@ -859,7 +867,7 @@ BattleScript_EffectBestow: attackanimation waitanimation printstring STRINGID_BESTOWITEMGIVING - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectAfterYou: @@ -871,7 +879,7 @@ BattleScript_EffectAfterYou: attackanimation waitanimation printstring STRINGID_KINDOFFER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectFlameBurst: @@ -880,10 +888,11 @@ BattleScript_EffectFlameBurst: BattleScript_MoveEffectFlameBurst:: tryfaintmon BS_TARGET, FALSE, NULL + copybyte sBATTLER, sSAVED_BATTLER printstring STRINGID_BURSTINGFLAMESHIT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG savetarget - copybyte gBattlerTarget, sBATTLER + copybyte gBattlerTarget, sSAVED_BATTLER healthbarupdate BS_TARGET datahpupdate BS_TARGET tryfaintmon BS_TARGET, FALSE, NULL @@ -899,7 +908,7 @@ BattleScript_EffectPowerTrick: attackanimation waitanimation printstring STRINGID_PKMNSWITCHEDATKANDDEF - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPsychoShift: @@ -917,12 +926,12 @@ BattleScript_EffectPsychoShiftCanWork: waitanimation copybyte gEffectBattler, gBattlerTarget printfromtable gStatusConditionsStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG statusanimation BS_TARGET updatestatusicon BS_TARGET curestatus BS_ATTACKER printstring STRINGID_PKMNSTATUSNORMAL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER goto BattleScript_MoveEnd @@ -946,25 +955,25 @@ BattleScript_SynchronoiseLoop: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG printstring STRINGID_EMPTYSTRING3 - waitmessage 0x1 + waitmessage 1 tryfaintmon BS_TARGET, FALSE, NULL BattleScript_SynchronoiseMoveTargetEnd: moveendto MOVEEND_NEXT_TARGET jumpifnexttargetvalid BattleScript_SynchronoiseLoop end BattleScript_SynchronoiseMissed: - pause 0x20 + pause B_WAIT_TIME_SHORT resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_SynchronoiseMoveTargetEnd BattleScript_SynchronoiseNoEffect: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_NOEFFECTONTARGET - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_SynchronoiseMoveTargetEnd BattleScript_EffectSmackDown: @@ -973,7 +982,7 @@ BattleScript_EffectSmackDown: BattleScript_MoveEffectSmackDown:: printstring STRINGID_FELLSTRAIGHTDOWN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_EffectHitEnemyHealAlly: @@ -984,7 +993,7 @@ BattleScript_EffectDefog: setstatchanger STAT_EVASION, 1, TRUE attackcanceler jumpifsubstituteblocks BattleScript_DefogIfCanClearHazards - jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_EVASION, 0x0, BattleScript_DefogWorks + jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_EVASION, MIN_STAT_STAGE, BattleScript_DefogWorks BattleScript_DefogIfCanClearHazards: defogclear BS_ATTACKER, FALSE, BattleScript_ButItFailedAtkStringPpReduce BattleScript_DefogWorks: @@ -992,9 +1001,9 @@ BattleScript_DefogWorks: attackstring ppreduce statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_DefogTryHazardsWithAnim - jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_DefogDoAnim - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_DefogTryHazardsWithAnim - pause 0x20 + jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefogDoAnim + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_DefogTryHazardsWithAnim + pause B_WAIT_TIME_SHORT goto BattleScript_DefogPrintString BattleScript_DefogDoAnim:: attackanimation @@ -1003,7 +1012,7 @@ BattleScript_DefogDoAnim:: playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_DefogPrintString:: printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DefogTryHazards:: copybyte gEffectBattler, gBattlerAttacker defogclear BS_ATTACKER, TRUE, NULL @@ -1017,7 +1026,7 @@ BattleScript_DefogTryHazardsWithAnim: BattleScript_EffectCopycat: attackcanceler attackstring - pause 0x5 + pause 5 trycopycat BattleScript_CopycatFail attackanimation waitanimation @@ -1030,14 +1039,14 @@ BattleScript_EffectInstruct: attackcanceler attackstring ppreduce - pause 0x5 + pause 5 tryinstruct BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_USEDINSTRUCTEDMOVE - waitmessage 0x40 - setbyte sB_ANIM_TURN, 0x0 - setbyte sB_ANIM_TARGETS_HIT, 0x0 + waitmessage B_WAIT_TIME_LONG + setbyte sB_ANIM_TURN, 0 + setbyte sB_ANIM_TARGETS_HIT, 0 jumptocalledmove TRUE BattleScript_EffectAutotomize: @@ -1046,8 +1055,8 @@ BattleScript_EffectAutotomize: attackstring ppreduce statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AutotomizeWeightLoss - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AutotomizeAttackAnim - pause 0x20 + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AutotomizeAttackAnim + pause B_WAIT_TIME_SHORT goto BattleScript_AutotomizePrintString BattleScript_AutotomizeAttackAnim:: attackanimation @@ -1057,12 +1066,12 @@ BattleScript_AutotomizeDoAnim:: playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_AutotomizePrintString:: printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AutotomizeWeightLoss:: jumpifmovehadnoeffect BattleScript_MoveEnd tryautotomize BS_ATTACKER, BattleScript_MoveEnd printstring STRINGID_BECAMENIMBLE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectFinalGambit: @@ -1083,7 +1092,7 @@ BattleScript_EffectFinalGambit: healthbarupdate BS_TARGET datahpupdate BS_TARGET resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG dmgtocurrattackerhp healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER @@ -1109,9 +1118,9 @@ BattleScript_EffectHitSwitchTarget: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET, FALSE, NULL jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted @@ -1128,16 +1137,16 @@ BattleScript_EffectToxicThread: setstatchanger STAT_SPEED, 2, TRUE attackcanceler jumpifsubstituteblocks BattleScript_ButItFailedAtkStringPpReduce - jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPEED, 0x0, BattleScript_ToxicThreadWorks + jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPEED, MIN_STAT_STAGE, BattleScript_ToxicThreadWorks jumpifstatus BS_TARGET, STATUS1_PSN_ANY, BattleScript_ButItFailedAtkStringPpReduce BattleScript_ToxicThreadWorks: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_ToxicThreadTryPsn - jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_ToxicThreadDoAnim - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_ToxicThreadTryPsn - pause 0x20 + jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_ToxicThreadDoAnim + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_ToxicThreadTryPsn + pause B_WAIT_TIME_SHORT goto BattleScript_ToxicThreadPrintString BattleScript_ToxicThreadDoAnim:: attackanimation @@ -1146,7 +1155,7 @@ BattleScript_ToxicThreadDoAnim:: playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_ToxicThreadPrintString:: printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_ToxicThreadTryPsn:: setmoveeffect MOVE_EFFECT_POISON seteffectprimary @@ -1159,35 +1168,35 @@ BattleScript_EffectVenomDrench: jumpifstatus BS_TARGET, STATUS1_PSN_ANY, BattleScript_EffectVenomDrenchCanBeUsed goto BattleScript_ButItFailed BattleScript_EffectVenomDrenchCanBeUsed: - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_VenomDrenchDoMoveAnim - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPATK, 0x0, BattleScript_VenomDrenchDoMoveAnim - jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, 0x0, BattleScript_CantLowerMultipleStats + jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_VenomDrenchDoMoveAnim + jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPATK, MIN_STAT_STAGE, BattleScript_VenomDrenchDoMoveAnim + jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats BattleScript_VenomDrenchDoMoveAnim:: accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK | BIT_SPEED, STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE + playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK | BIT_SPEED, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE setstatchanger STAT_ATK, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VenomDrenchTryLowerSpAtk + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchTryLowerSpAtk printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_VenomDrenchTryLowerSpAtk:: playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE setstatchanger STAT_SPATK, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_VenomDrenchTryLowerSpeed - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VenomDrenchTryLowerSpeed + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchTryLowerSpeed printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_VenomDrenchTryLowerSpeed:: playstatchangeanimation BS_TARGET, BIT_SPEED, STAT_CHANGE_NEGATIVE setstatchanger STAT_SPEED, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_VenomDrenchEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_VenomDrenchEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_VenomDrenchEnd printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_VenomDrenchEnd:: goto BattleScript_MoveEnd @@ -1195,27 +1204,27 @@ BattleScript_EffectNobleRoar: attackcanceler attackstring ppreduce - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_NobleRoarDoMoveAnim - jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0x0, BattleScript_CantLowerMultipleStats + jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_NobleRoarDoMoveAnim + jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats BattleScript_NobleRoarDoMoveAnim:: accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE + playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE setstatchanger STAT_ATK, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_NobleRoarTryLowerSpAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_NobleRoarTryLowerSpAtk + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_NobleRoarTryLowerSpAtk printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_NobleRoarTryLowerSpAtk:: playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE setstatchanger STAT_SPATK, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_NobleRoarEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_NobleRoarEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_NobleRoarEnd printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_NobleRoarEnd:: goto BattleScript_MoveEnd @@ -1223,47 +1232,47 @@ BattleScript_EffectShellSmash: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_ShellSmashTryDef - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_ShellSmashTryDef - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 0xC, BattleScript_ShellSmashTryDef - jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, 0, BattleScript_ShellSmashTryDef - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0, BattleScript_ButItFailed + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ShellSmashTryDef + jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_ShellSmashTryDef + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_ButItFailed BattleScript_ShellSmashTryDef:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT setstatchanger STAT_DEF, 1, TRUE - statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashTrySpDef + statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR | MOVE_EFFECT_CERTAIN, BattleScript_ShellSmashTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_ShellSmashTrySpDef: setstatchanger STAT_SPDEF, 1, TRUE - statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashTryAttack - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashTryAttack + statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR | MOVE_EFFECT_CERTAIN, BattleScript_ShellSmashTryAttack + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTryAttack printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_ShellSmashTryAttack: setbyte sSTAT_ANIM_PLAYED, FALSE playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_ATK | BIT_SPEED, STAT_CHANGE_BY_TWO setstatchanger STAT_ATK, 2, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashTrySpAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashTrySpAtk + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpAtk printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_ShellSmashTrySpAtk: setstatchanger STAT_SPATK, 2, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashTrySpeed - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashTrySpeed + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashTrySpeed printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_ShellSmashTrySpeed: setstatchanger STAT_SPEED, 2, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShellSmashEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShellSmashEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShellSmashEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_ShellSmashEnd: goto BattleScript_MoveEnd @@ -1279,13 +1288,13 @@ BattleScript_EffectGrowth: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_GrowthDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_GrowthDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_GrowthDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0 jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_ANY, BattleScript_GrowthAtk2 setstatchanger STAT_ATK, 1, FALSE goto BattleScript_GrowthAtk @@ -1293,9 +1302,9 @@ BattleScript_GrowthAtk2: setstatchanger STAT_ATK, 2, FALSE BattleScript_GrowthAtk: statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GrowthTrySpAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GrowthTrySpAtk + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GrowthTrySpAtk printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_GrowthTrySpAtk:: jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_ANY, BattleScript_GrowthSpAtk2 setstatchanger STAT_SPATK, 1, FALSE @@ -1304,9 +1313,9 @@ BattleScript_GrowthSpAtk2: setstatchanger STAT_SPATK, 2, FALSE BattleScript_GrowthSpAtk: statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GrowthEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GrowthEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GrowthEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_GrowthEnd: goto BattleScript_MoveEnd @@ -1322,7 +1331,7 @@ BattleScript_EffectSoak: waitanimation trysoak BattleScript_ButItFailed printstring STRINGID_TRANSFORMEDINTOWATERTYPE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectReflectType: @@ -1334,7 +1343,7 @@ BattleScript_EffectReflectType: attackanimation waitanimation printstring STRINGID_REFLECTTARGETSTYPE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectElectrify: @@ -1346,37 +1355,37 @@ BattleScript_EffectElectrify: attackanimation waitanimation printstring STRINGID_TARGETELECTRIFIED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectShiftGear: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 0xC, BattleScript_ShiftGearDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ATK, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ShiftGearDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_ShiftGearDoMoveAnim: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 0xA, BattleScript_ShiftGearSpeedBy1 + jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 10, BattleScript_ShiftGearSpeedBy1 playstatchangeanimation BS_ATTACKER, BIT_SPEED | BIT_ATK, STAT_CHANGE_BY_TWO setstatchanger STAT_SPEED, 2, FALSE goto BattleScript_ShiftGearDoSpeed BattleScript_ShiftGearSpeedBy1: - playstatchangeanimation BS_ATTACKER, BIT_SPEED | BIT_ATK, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_SPEED | BIT_ATK, 0 setstatchanger STAT_SPEED, 1, FALSE BattleScript_ShiftGearDoSpeed: statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShiftGearTryAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShiftGearTryAtk + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShiftGearTryAtk printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_ShiftGearTryAtk: setstatchanger STAT_ATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_ShiftGearEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_ShiftGearEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_ShiftGearEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_ShiftGearEnd: goto BattleScript_MoveEnd @@ -1384,31 +1393,31 @@ BattleScript_EffectCoil: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_CoilDoMoveAnim - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_CoilDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_CoilDoMoveAnim + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_CoilDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_CoilDoMoveAnim: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_ACC, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_ACC, 0 setstatchanger STAT_ATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CoilTryDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilTryDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilTryDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CoilTryDef: setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CoilTryAcc - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilTryAcc + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilTryAcc printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CoilTryAcc: setstatchanger STAT_ACC, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CoilEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CoilEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CoilEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CoilEnd: goto BattleScript_MoveEnd @@ -1416,31 +1425,31 @@ BattleScript_EffectQuiverDance: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_QuiverDanceDoMoveAnim - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, 0xC, BattleScript_QuiverDanceDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_QuiverDanceDoMoveAnim + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_QuiverDanceDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_QuiverDanceDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0 setstatchanger STAT_SPATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_QuiverDanceTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceTrySpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_QuiverDanceTrySpDef:: setstatchanger STAT_SPDEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_QuiverDanceTrySpeed - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceTrySpeed + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceTrySpeed printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_QuiverDanceTrySpeed:: setstatchanger STAT_SPEED, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_QuiverDanceEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_QuiverDanceEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_QuiverDanceEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_QuiverDanceEnd:: goto BattleScript_MoveEnd @@ -1454,32 +1463,32 @@ BattleScript_EffectMeFirst: trymefirst BattleScript_ButItFailedPpReduce attackanimation waitanimation - setbyte sB_ANIM_TURN, 0x0 - setbyte sB_ANIM_TARGETS_HIT, 0x0 + setbyte sB_ANIM_TURN, 0 + setbyte sB_ANIM_TARGETS_HIT, 0 jumptocalledmove TRUE BattleScript_EffectAttackSpAttackUp: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_AttackSpAttackUpDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AttackSpAttackUpDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_AttackSpAttackUpDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0 setstatchanger STAT_ATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AttackSpAttackUpTrySpAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackSpAttackUpTrySpAtk + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackSpAttackUpTrySpAtk printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AttackSpAttackUpTrySpAtk:: setstatchanger STAT_SPATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AttackSpAttackUpEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackSpAttackUpEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackSpAttackUpEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AttackSpAttackUpEnd: goto BattleScript_MoveEnd @@ -1487,24 +1496,24 @@ BattleScript_EffectAttackAccUp: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_AttackAccUpDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AttackAccUpDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ACC, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_AttackAccUpDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0 setstatchanger STAT_ATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AttackAccUpTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackAccUpTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackAccUpTrySpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AttackAccUpTrySpDef:: setstatchanger STAT_ACC, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AttackAccUpEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AttackAccUpEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_AttackAccUpEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AttackAccUpEnd: goto BattleScript_MoveEnd @@ -1519,7 +1528,8 @@ BattleScript_EffectPsychicTerrain: attackanimation waitanimation printfromtable gTerrainStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG + playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG, NULL goto BattleScript_MoveEnd BattleScript_EffectTopsyTurvy: @@ -1539,7 +1549,7 @@ BattleScript_EffectTopsyTurvyWorks: waitanimation invertstatstages BS_TARGET printstring STRINGID_TOPSYTURVYSWITCHEDSTATS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectIonDeluge: @@ -1551,7 +1561,7 @@ BattleScript_EffectIonDeluge: attackanimation waitanimation printstring STRINGID_IONDELUGEON - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectQuash: @@ -1563,7 +1573,7 @@ BattleScript_EffectQuash: attackanimation waitanimation printstring STRINGID_QUASHSUCCESS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectHealPulse: @@ -1578,7 +1588,7 @@ BattleScript_EffectHealPulse: healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNREGAINEDHEALTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectEntrainment: @@ -1591,7 +1601,7 @@ BattleScript_EffectEntrainment: waitanimation setlastusedability BS_TARGET printstring STRINGID_PKMNACQUIREDABILITY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSimpleBeam: @@ -1603,7 +1613,7 @@ BattleScript_EffectSimpleBeam: attackanimation waitanimation printstring STRINGID_PKMNACQUIREDSIMPLE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSuckerPunch: @@ -1620,7 +1630,7 @@ BattleScript_EffectLuckyChant: attackanimation waitanimation printstring STRINGID_SHIELDEDFROMCRITICALHITS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectMetalBurst: @@ -1644,10 +1654,10 @@ BattleScript_EffectHealingWish: instanthpdrop BS_ATTACKER setatkhptozero tryfaintmon BS_ATTACKER, FALSE, NULL - openpartyscreen 0x1, BattleScript_EffectHealingWishEnd + openpartyscreen BS_ATTACKER, BattleScript_EffectHealingWishEnd switchoutabilities BS_ATTACKER waitstate - switchhandleorder BS_ATTACKER, 0x2 + switchhandleorder BS_ATTACKER, 2 returnatktoball getswitchedmondata BS_ATTACKER switchindataupdate BS_ATTACKER @@ -1661,7 +1671,7 @@ BattleScript_EffectHealingWish: restorepp BS_ATTACKER BattleScript_EffectHealingWishNewMon: printfromtable gHealingWishStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_WISH_HEAL, NULL waitanimation dmgtomaxattackerhp @@ -1673,7 +1683,7 @@ BattleScript_EffectHealingWishNewMon: updatestatusicon BS_ATTACKER waitstate printstring STRINGID_HEALINGWISHHEALED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG switchineffects BS_ATTACKER BattleScript_EffectHealingWishEnd: moveendall @@ -1688,7 +1698,7 @@ BattleScript_EffectWorrySeed: attackanimation waitanimation printstring STRINGID_PKMNACQUIREDABILITY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPowerSplit: @@ -1701,7 +1711,7 @@ BattleScript_EffectPowerSplit: attackanimation waitanimation printstring STRINGID_SHAREDITSPOWER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectGuardSplit: @@ -1714,7 +1724,7 @@ BattleScript_EffectGuardSplit: attackanimation waitanimation printstring STRINGID_SHAREDITSGUARD - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectHeartSwap: @@ -1732,7 +1742,7 @@ BattleScript_EffectHeartSwap: attackanimation waitanimation printstring STRINGID_PKMNSWITCHEDSTATCHANGES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPowerSwap: @@ -1745,7 +1755,7 @@ BattleScript_EffectPowerSwap: attackanimation waitanimation printstring STRINGID_PKMNSWITCHEDSTATCHANGES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectGuardSwap: @@ -1758,7 +1768,7 @@ BattleScript_EffectGuardSwap: attackanimation waitanimation printstring STRINGID_PKMNSWITCHEDSTATCHANGES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSpeedSwap: @@ -1770,7 +1780,7 @@ BattleScript_EffectSpeedSwap: attackanimation waitanimation printstring STRINGID_PKMNSWITCHEDSTATCHANGES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectTelekinesis: @@ -1782,7 +1792,7 @@ BattleScript_EffectTelekinesis: attackanimation waitanimation printstring STRINGID_PKMNIDENTIFIED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectStealthRock: @@ -1793,7 +1803,7 @@ BattleScript_EffectStealthRock: attackanimation waitanimation printstring STRINGID_POINTEDSTONESFLOAT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectStickyWeb: @@ -1804,7 +1814,7 @@ BattleScript_EffectStickyWeb: attackanimation waitanimation printstring STRINGID_STICKYWEBUSED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectGastroAcid: @@ -1816,7 +1826,7 @@ BattleScript_EffectGastroAcid: attackanimation waitanimation printstring STRINGID_PKMNSABILITYSUPPRESSED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectToxicSpikes: @@ -1827,7 +1837,7 @@ BattleScript_EffectToxicSpikes: attackanimation waitanimation printstring STRINGID_POISONSPIKESSCATTERED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectMagnetRise: @@ -1838,7 +1848,7 @@ BattleScript_EffectMagnetRise: attackanimation waitanimation printstring STRINGID_PKMNLEVITATEDONELECTROMAGNETISM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectTrickRoom: @@ -1851,7 +1861,7 @@ BattleScript_EffectMagicRoom: attackanimation waitanimation printfromtable gRoomsStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectAquaRing: @@ -1862,7 +1872,7 @@ BattleScript_EffectAquaRing: attackanimation waitanimation printstring STRINGID_PKMNSURROUNDEDWITHVEILOFWATER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectEmbargo: @@ -1874,7 +1884,7 @@ BattleScript_EffectEmbargo: attackanimation waitanimation printstring STRINGID_PKMNCANTUSEITEMSANYMORE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectTailwind: @@ -1885,7 +1895,7 @@ BattleScript_EffectTailwind: attackanimation waitanimation printstring STRINGID_TAILWINDBLEW - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectMircleEye: @@ -1904,7 +1914,7 @@ BattleScript_EffectGravity: attackanimation waitanimation printstring STRINGID_GRAVITYINTENSIFIED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG selectfirstvalidtarget BattleScript_GravityLoop: movevaluescleanup @@ -1913,7 +1923,7 @@ BattleScript_GravityLoop: BattleScript_GravityLoopDrop: bringdownairbornebattler BS_TARGET printstring STRINGID_GRAVITYGROUNDING - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_GravityLoopEnd: moveendto MOVEEND_NEXT_TARGET jumpifnexttargetvalid BattleScript_GravityLoop @@ -1947,7 +1957,7 @@ BattleScript_EffectHealBlock: attackanimation waitanimation printstring STRINGID_PKMNPREVENTEDFROMHEALING - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectThroatChop: @@ -1971,9 +1981,9 @@ BattleScript_EffectHitEscape: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifmovehadnoeffect BattleScript_MoveEnd seteffectwithchance tryfaintmon BS_TARGET, FALSE, NULL @@ -1986,7 +1996,7 @@ BattleScript_EffectHitEscape: openpartyscreen BS_ATTACKER, BattleScript_HitEscapeEnd switchoutabilities BS_ATTACKER waitstate - switchhandleorder BS_ATTACKER, 0x2 + switchhandleorder BS_ATTACKER, 2 returntoball BS_ATTACKER getswitchedmondata BS_ATTACKER switchindataupdate BS_ATTACKER @@ -2002,53 +2012,11 @@ BattleScript_EffectPlaceholder: attackcanceler attackstring ppreduce - pause 0x5 + pause 5 printstring STRINGID_NOTDONEYET goto BattleScript_MoveEnd -BattleScript_EffectStompingTantrum: -BattleScript_EffectEvasionDownHit: -BattleScript_EffectVitalThrow: -BattleScript_EffectFalseSwipe: -BattleScript_EffectAlwaysCrit: -BattleScript_EffectPursuit: -BattleScript_EffectFellStinger: BattleScript_EffectHit:: -BattleScript_EffectLowKick: -BattleScript_EffectFlail: -BattleScript_EffectFacade: -BattleScript_EffectRevenge: -BattleScript_EffectReturn: -BattleScript_EffectFrustration: -BattleScript_EffectEruption: -BattleScript_EffectPledge: -BattleScript_EffectFling: -BattleScript_EffectWringOut: -BattleScript_EffectHex: -BattleScript_EffectAssurance: -BattleScript_EffectTrump_card: -BattleScript_EffectAcrobatics: -BattleScript_EffectHeatCrash: -BattleScript_EffectPunishment: -BattleScript_EffectStoredPower: -BattleScript_EffectElectroBall: -BattleScript_EffectGyroBall: -BattleScript_EffectEchoedVoice: -BattleScript_EffectPayback: -BattleScript_EffectRound: -BattleScript_EffectBrine: -BattleScript_EffectVenoshock: -BattleScript_EffectRetalitate: -BattleScript_EffectFoulPlay: -BattleScript_EffectPsyshock: -BattleScript_EffectWeatherBall: -BattleScript_EffectHiddenPower: -BattleScript_EffectTwoTypedMove: -BattleScript_EffectChangeTypeOnItem: -BattleScript_EffectFusionCombo: -BattleScript_EffectRevelationDance: -BattleScript_EffectBelch: - BattleScript_HitFromAtkCanceler:: attackcanceler BattleScript_HitFromAccCheck:: @@ -2069,9 +2037,9 @@ BattleScript_HitFromAtkAnimation:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG seteffectwithchance tryfaintmon BS_TARGET, FALSE, NULL BattleScript_MoveEnd:: @@ -2098,9 +2066,9 @@ BattleScript_EffectNaturalGift: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG seteffectwithchance jumpifmovehadnoeffect BattleScript_EffectNaturalGiftEnd removeitem BS_ATTACKER @@ -2114,11 +2082,11 @@ BattleScript_PrintMoveMissed:: attackstring ppreduce BattleScript_MoveMissedPause:: - pause 0x20 + pause B_WAIT_TIME_SHORT BattleScript_MoveMissed:: effectivenesssound resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSleep:: @@ -2143,10 +2111,10 @@ BattleScript_EffectSleep:: goto BattleScript_MoveEnd BattleScript_FlowerVeilProtectsRet:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_FLOWERVEILPROTECTED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_FlowerVeilProtects: @@ -2155,10 +2123,10 @@ BattleScript_FlowerVeilProtects: goto BattleScript_MoveEnd BattleScript_SweetVeilProtectsRet:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_FLOWERVEILPROTECTED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_SweetVeilProtects: @@ -2167,10 +2135,10 @@ BattleScript_SweetVeilProtects: goto BattleScript_MoveEnd BattleScript_AromaVeilProtectsRet:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_AROMAVEILPROTECTED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_AromaVeilProtects: @@ -2179,10 +2147,10 @@ BattleScript_AromaVeilProtects: goto BattleScript_MoveEnd BattleScript_LeafGuardProtectsRet:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_ITDOESNTAFFECT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_LeafGuardProtects: @@ -2192,21 +2160,21 @@ BattleScript_LeafGuardProtects: BattleScript_AlreadyAsleep:: setalreadystatusedmoveattempt BS_ATTACKER - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNALREADYASLEEP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_WasntAffected:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNWASNTAFFECTED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_CantMakeAsleep:: - pause 0x20 + pause B_WAIT_TIME_SHORT printfromtable gUproarAwakeStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPoisonHit: @@ -2229,37 +2197,35 @@ BattleScript_EffectAbsorb:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setdrainedhp - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + manipulatedamage DMG_BIG_ROOT + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze - setbyte cMULTISTRING_CHOOSER, 0x0 + setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB goto BattleScript_AbsorbUpdateHp BattleScript_AbsorbLiquidOoze:: copybyte gBattlerAbility, gBattlerTarget call BattleScript_AbilityPopUp manipulatedamage DMG_CHANGE_SIGN - setbyte cMULTISTRING_CHOOSER, 0x1 + setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB_OOZE BattleScript_AbsorbUpdateHp:: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER jumpifmovehadnoeffect BattleScript_AbsorbTryFainting - printfromtable gLeechSeedDrainStringIds - waitmessage 0x40 + printfromtable gAbsorbDrainStringIds + waitmessage B_WAIT_TIME_LONG BattleScript_AbsorbTryFainting:: tryfaintmon BS_ATTACKER, FALSE, NULL tryfaintmon BS_TARGET, FALSE, NULL goto BattleScript_MoveEnd BattleScript_EffectBurnHit:: -BattleScript_EffectBlazeKick:: -BattleScript_EffectScald: setmoveeffect MOVE_EFFECT_BURN goto BattleScript_EffectHit -BattleScript_EffectFreezeDry: BattleScript_EffectFreezeHit:: setmoveeffect MOVE_EFFECT_FREEZE goto BattleScript_EffectHit @@ -2293,9 +2259,9 @@ BattleScript_ExplosionLoop: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET, FALSE, NULL moveendto MOVEEND_NEXT_TARGET jumpifnexttargetvalid BattleScript_ExplosionLoop @@ -2305,7 +2271,7 @@ BattleScript_ExplosionLoop: BattleScript_ExplosionMissed: effectivenesssound resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG moveendto MOVEEND_NEXT_TARGET jumpifnexttargetvalid BattleScript_ExplosionLoop tryfaintmon BS_ATTACKER, FALSE, NULL @@ -2339,7 +2305,7 @@ BattleScript_EffectDreamEater:: BattleScript_DreamEaterNoEffect: attackstring ppreduce - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_WasntAffected BattleScript_DreamEaterWorked: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE @@ -2356,16 +2322,17 @@ BattleScript_DreamEaterWorked: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setdrainedhp + manipulatedamage DMG_BIG_ROOT orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd printstring STRINGID_PKMNDREAMEATEN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DreamEaterTryFaintEnd: tryfaintmon BS_TARGET, FALSE, NULL goto BattleScript_MoveEnd @@ -2373,12 +2340,12 @@ BattleScript_DreamEaterTryFaintEnd: BattleScript_EffectMirrorMove:: attackcanceler attackstring - pause 0x40 + pause B_WAIT_TIME_LONG trymirrormove ppreduce orhalfword gMoveResultFlags, MOVE_RESULT_FAILED printstring STRINGID_MIRRORMOVEFAILED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectAttackUp:: @@ -2413,8 +2380,8 @@ BattleScript_EffectStatUpAfterAtkCanceler:: attackstring ppreduce statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_StatUpEnd - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim - pause 0x20 + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpAttackAnim + pause B_WAIT_TIME_SHORT goto BattleScript_StatUpPrintString BattleScript_StatUpAttackAnim:: attackanimation @@ -2424,7 +2391,7 @@ BattleScript_StatUpDoAnim:: playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_StatUpPrintString:: printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_StatUpEnd:: goto BattleScript_MoveEnd @@ -2432,7 +2399,7 @@ BattleScript_StatUp:: playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_StatUpMsg:: printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_EffectAttackDown: @@ -2469,9 +2436,9 @@ BattleScript_StatDownFromAttackString: attackstring ppreduce statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StatDownEnd - jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatDownDoAnim - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatDownEnd - pause 0x20 + jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_StatDownDoAnim + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StatDownEnd + pause B_WAIT_TIME_SHORT goto BattleScript_StatDownPrintString BattleScript_StatDownDoAnim:: attackanimation @@ -2480,14 +2447,14 @@ BattleScript_StatDownDoAnim:: playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_StatDownPrintString:: printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_StatDownEnd:: goto BattleScript_MoveEnd BattleScript_StatDown:: playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_EffectHaze:: @@ -2498,7 +2465,7 @@ BattleScript_EffectHaze:: waitanimation normalisebuffs printstring STRINGID_STATCHANGESGONE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectBide:: @@ -2539,9 +2506,9 @@ BattleScript_EffectMultiHit:: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce - setmultihitcounter 0x0 + setmultihitcounter 0 initmultihitstring - sethword sMULTIHIT_EFFECT, 0x0 + sethword sMULTIHIT_EFFECT, 0 BattleScript_MultiHitLoop:: jumpifhasnohp BS_ATTACKER, BattleScript_MultiHitEnd jumpifhasnohp BS_TARGET, BattleScript_MultiHitPrintStrings @@ -2562,24 +2529,24 @@ BattleScript_DoMultiHit:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG multihitresultmessage printstring STRINGID_EMPTYSTRING3 - waitmessage 0x1 - addbyte sMULTIHIT_STRING + 4, 0x1 + waitmessage 1 + addbyte sMULTIHIT_STRING + 4, 1 moveendto MOVEEND_NEXT_TARGET jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_MultiHitPrintStrings decrementmultihit BattleScript_MultiHitLoop goto BattleScript_MultiHitPrintStrings BattleScript_MultiHitNoMoreHits:: - pause 0x20 + pause B_WAIT_TIME_SHORT BattleScript_MultiHitPrintStrings:: resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifmovehadnoeffect BattleScript_MultiHitEnd - copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6 printstring STRINGID_HITXTIMES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_MultiHitEnd:: seteffectwithchance tryfaintmon BS_TARGET, FALSE, NULL @@ -2595,7 +2562,7 @@ BattleScript_EffectConversion:: attackanimation waitanimation printstring STRINGID_PKMNCHANGEDTYPE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectFlinchHit:: @@ -2619,9 +2586,9 @@ BattleScript_EffectFlinchWithStatus: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG seteffectwithchance argumentstatuseffect tryfaintmon BS_TARGET, FALSE, NULL @@ -2639,7 +2606,7 @@ BattleScript_RestoreHp: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNREGAINEDHEALTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectToxic:: @@ -2662,19 +2629,19 @@ BattleScript_EffectToxic:: setmoveeffect MOVE_EFFECT_TOXIC seteffectprimary resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_AlreadyPoisoned:: setalreadystatusedmoveattempt BS_ATTACKER - pause 0x40 + pause B_WAIT_TIME_LONG printstring STRINGID_PKMNALREADYPOISONED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_ImmunityProtected:: copybyte gEffectBattler, gBattlerTarget - setbyte cMULTISTRING_CHOOSER, 0x0 + setbyte cMULTISTRING_CHOOSER, B_MSG_ABILITY_PREVENTS_MOVE_STATUS call BattleScript_PSNPrevention goto BattleScript_MoveEnd @@ -2708,24 +2675,24 @@ BattleScript_EffectRest:: jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_RestIsAlreadyAsleep jumpifcantmakeasleep BattleScript_RestCantSleep trysetrest BattleScript_AlreadyAtFullHp - pause 0x20 + pause B_WAIT_TIME_SHORT printfromtable gRestUsedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER waitstate goto BattleScript_PresentHealTarget BattleScript_RestCantSleep:: - pause 0x40 + pause B_WAIT_TIME_LONG printfromtable gUproarAwakeStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_RestIsAlreadyAsleep:: setalreadystatusedmoveattempt BS_ATTACKER - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNALREADYASLEEP2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectOHKO:: @@ -2739,15 +2706,15 @@ BattleScript_EffectOHKO:: trysetdestinybondtohappen goto BattleScript_HitFromAtkAnimation BattleScript_KOFail:: - pause 0x40 + pause B_WAIT_TIME_LONG printfromtable gKOFailedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_TwoTurnMovesSecondTurn:: attackcanceler setmoveeffect MOVE_EFFECT_CHARGING - setbyte sB_ANIM_TURN, 0x1 + setbyte sB_ANIM_TURN, 1 clearstatusfromeffect BS_ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT argumenttomoveeffect @@ -2757,14 +2724,16 @@ BattleScriptFirstChargingTurn:: attackcanceler printstring STRINGID_EMPTYSTRING3 ppreduce + attackstring + pause B_WAIT_TIME_LONG + copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID + printfromtable gFirstTurnOfTwoStringIds + waitmessage B_WAIT_TIME_LONG attackanimation waitanimation orword gHitMarker, HITMARKER_CHARGING setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER seteffectprimary - copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID - printfromtable gFirstTurnOfTwoStringIds - waitmessage 0x40 return BattleScript_EffectSuperFang:: @@ -2797,9 +2766,9 @@ BattleScript_EffectDoubleHit:: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce - setmultihitcounter 0x2 + setmultihitcounter 2 initmultihitstring - sethword sMULTIHIT_EFFECT, 0x0 + sethword sMULTIHIT_EFFECT, 0 goto BattleScript_MultiHitLoop BattleScript_EffectRecoilIfMiss:: @@ -2814,14 +2783,14 @@ BattleScript_MoveMissedDoDamage:: jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_PrintMoveMissed attackstring ppreduce - pause 0x40 + pause B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG .if B_CRASH_IF_TARGET_IMMUNE < GEN_4 jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd .endif printstring STRINGID_PKMNCRASHED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG damagecalc typecalc adjustdamage @@ -2835,7 +2804,7 @@ BattleScript_MoveMissedDoDamage:: .else bichalfword gMoveResultFlags, MOVE_RESULT_MISSED .endif - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER tryfaintmon BS_ATTACKER, FALSE, NULL @@ -2854,7 +2823,7 @@ BattleScript_EffectMist:: attackanimation waitanimation printfromtable gMistUsedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectFocusEnergy: @@ -2866,7 +2835,7 @@ BattleScript_EffectFocusEnergy: attackanimation waitanimation printfromtable gFocusEnergyUsedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectConfuse: @@ -2883,14 +2852,14 @@ BattleScript_EffectConfuse: setmoveeffect MOVE_EFFECT_CONFUSION seteffectprimary resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_AlreadyConfused:: setalreadystatusedmoveattempt BS_ATTACKER - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNALREADYCONFUSED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectAttackUp2:: @@ -2937,7 +2906,7 @@ BattleScript_EffectTransform:: attackanimation waitanimation printfromtable gTransformUsedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectAttackDown2: @@ -2977,7 +2946,7 @@ BattleScript_PrintReflectLightScreenSafeguardString:: attackanimation waitanimation printfromtable gReflectLightScreenSafeguardStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPoison:: @@ -3001,7 +2970,7 @@ BattleScript_EffectPoison:: setmoveeffect MOVE_EFFECT_POISON seteffectprimary resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectParalyze: @@ -3027,19 +2996,19 @@ BattleScript_EffectParalyze: setmoveeffect MOVE_EFFECT_PARALYSIS seteffectprimary resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_AlreadyParalyzed: setalreadystatusedmoveattempt BS_ATTACKER - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNISALREADYPARALYZED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_LimberProtected:: copybyte gEffectBattler, gBattlerTarget - setbyte cMULTISTRING_CHOOSER, 0x0 + setbyte cMULTISTRING_CHOOSER, B_MSG_ABILITY_PREVENTS_MOVE_STATUS call BattleScript_PRLZPrevention goto BattleScript_MoveEnd @@ -3074,7 +3043,7 @@ BattleScript_EffectAccuracyDownHit:: BattleScript_PowerHerbActivation: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_POWERHERB - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG removeitem BS_ATTACKER return @@ -3085,64 +3054,64 @@ BattleScript_EffectTwoTurnsAttack:: jumpifmove MOVE_RAZOR_WIND, BattleScript_EffectTwoTurnsAttackRazorWind jumpifmove MOVE_ICE_BURN, BattleScript_EffectTwoTurnsAttackIceBurn jumpifmove MOVE_FREEZE_SHOCK, BattleScript_EffectTwoTurnsAttackFreezeShock - setbyte sTWOTURN_STRINGID, 0x0 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_RAZOR_WIND BattleScript_EffectTwoTurnsAttackContinue: call BattleScriptFirstChargingTurn jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd call BattleScript_PowerHerbActivation goto BattleScript_TwoTurnMovesSecondTurn BattleScript_EffectTwoTurnsAttackSkyAttack: - setbyte sTWOTURN_STRINGID, 0x3 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKY_ATTACK goto BattleScript_EffectTwoTurnsAttackContinue BattleScript_EffectTwoTurnsAttackRazorWind: - setbyte sTWOTURN_STRINGID, 0x0 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_RAZOR_WIND goto BattleScript_EffectTwoTurnsAttackContinue BattleScript_EffectTwoTurnsAttackIceBurn: - setbyte sTWOTURN_STRINGID, 0x0 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_RAZOR_WIND goto BattleScript_EffectTwoTurnsAttackContinue BattleScript_EffectTwoTurnsAttackFreezeShock: - setbyte sTWOTURN_STRINGID, 0xa + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_FREEZE_SHOCK goto BattleScript_EffectTwoTurnsAttackContinue BattleScript_EffectGeomancy: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_GeomancySecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_GeomancySecondTurn - setbyte sTWOTURN_STRINGID, 0x9 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_GEOMANCY call BattleScriptFirstChargingTurn jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd call BattleScript_PowerHerbActivation BattleScript_GeomancySecondTurn: attackcanceler setmoveeffect MOVE_EFFECT_CHARGING - setbyte sB_ANIM_TURN, 0x1 + setbyte sB_ANIM_TURN, 1 clearstatusfromeffect BS_ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT attackstring - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_GeomancyDoMoveAnim - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, 0xC, BattleScript_GeomancyDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_GeomancyDoMoveAnim + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_GeomancyDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_GeomancyDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF | BIT_SPEED, 0 setstatchanger STAT_SPATK, 2, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GeomancyTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GeomancyTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyTrySpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_GeomancyTrySpDef:: setstatchanger STAT_SPDEF, 2, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GeomancyTrySpeed - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GeomancyTrySpeed + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyTrySpeed printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_GeomancyTrySpeed:: setstatchanger STAT_SPEED, 2, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_GeomancyEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_GeomancyEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_GeomancyEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_GeomancyEnd:: goto BattleScript_MoveEnd @@ -3156,7 +3125,7 @@ BattleScript_EffectTwineedle:: sethword sMULTIHIT_EFFECT, MOVE_EFFECT_POISON attackstring ppreduce - setmultihitcounter 0x2 + setmultihitcounter 2 initmultihitstring goto BattleScript_MultiHitLoop @@ -3167,8 +3136,8 @@ BattleScript_EffectSubstitute:: waitstate jumpifstatus2 BS_ATTACKER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute setsubstitute - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_SubstituteAnim - pause 0x20 + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteAnim + pause B_WAIT_TIME_SHORT goto BattleScript_SubstituteString BattleScript_SubstituteAnim:: attackanimation @@ -3176,14 +3145,14 @@ BattleScript_SubstituteAnim:: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER BattleScript_SubstituteString:: - printfromtable gSubsituteUsedStringIds - waitmessage 0x40 + printfromtable gSubstituteUsedStringIds + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_AlreadyHasSubstitute:: setalreadystatusedmoveattempt BS_ATTACKER - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNHASSUBSTITUTE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectRecharge:: @@ -3194,7 +3163,7 @@ BattleScript_EffectRecharge:: BattleScript_MoveUsedMustRecharge:: printstring STRINGID_PKMNMUSTRECHARGE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectRage:: @@ -3219,23 +3188,23 @@ BattleScript_EffectMimic:: attackanimation waitanimation printstring STRINGID_PKMNLEARNEDMOVE2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectMetronome:: attackcanceler attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT attackanimation waitanimation - setbyte sB_ANIM_TURN, 0x0 - setbyte sB_ANIM_TARGETS_HIT, 0x0 + setbyte sB_ANIM_TURN, 0 + setbyte sB_ANIM_TARGETS_HIT, 0 metronome BattleScript_EffectLeechSeed:: attackcanceler attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT ppreduce jumpifsubstituteblocks BattleScript_ButItFailed accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE @@ -3244,7 +3213,7 @@ BattleScript_DoLeechSeed:: attackanimation waitanimation printfromtable gLeechSeedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectDoNothing:: @@ -3258,7 +3227,7 @@ BattleScript_EffectDoNothing:: jumpifmove MOVE_HAPPY_HOUR, BattleScript_EffectHappyHour incrementgamestat GAME_STAT_USED_SPLASH printstring STRINGID_BUTNOTHINGHAPPENED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectHoldHands: jumpifsideaffecting BS_TARGET, SIDE_STATUS_CRAFTY_SHIELD, BattleScript_ButItFailed @@ -3268,7 +3237,7 @@ BattleScript_EffectHoldHands: goto BattleScript_MoveEnd BattleScript_EffectCelebrate: printstring STRINGID_CELEBRATEMESSAGE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectHappyHour: setmoveeffect MOVE_EFFECT_HAPPY_HOUR @@ -3285,7 +3254,7 @@ BattleScript_EffectDisable:: attackanimation waitanimation printstring STRINGID_PKMNMOVEWASDISABLED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectLevelDamage:: @@ -3331,7 +3300,7 @@ BattleScript_EffectEncore:: attackanimation waitanimation printstring STRINGID_PKMNGOTENCORE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPainSplit:: @@ -3349,7 +3318,7 @@ BattleScript_EffectPainSplit:: healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_SHAREDPAIN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSnore:: @@ -3362,7 +3331,7 @@ BattleScript_EffectSnore:: BattleScript_SnoreIsAsleep:: jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore printstring STRINGID_PKMNFASTASLEEP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG statusanimation BS_ATTACKER BattleScript_DoSnore:: attackstring @@ -3379,7 +3348,7 @@ BattleScript_EffectConversion2:: attackanimation waitanimation printstring STRINGID_PKMNCHANGEDTYPE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectLockOn:: @@ -3392,7 +3361,7 @@ BattleScript_EffectLockOn:: attackanimation waitanimation printstring STRINGID_PKMNTOOKAIM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSketch:: @@ -3403,7 +3372,7 @@ BattleScript_EffectSketch:: attackanimation waitanimation printstring STRINGID_PKMNSKETCHEDMOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSleepTalk:: @@ -3415,19 +3384,19 @@ BattleScript_EffectSleepTalk:: goto BattleScript_ButItFailed BattleScript_SleepTalkIsAsleep:: printstring STRINGID_PKMNFASTASLEEP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG statusanimation BS_ATTACKER attackstring ppreduce orword gHitMarker, HITMARKER_NO_PPDEDUCT trychoosesleeptalkmove BattleScript_SleepTalkUsingMove - pause 0x40 + pause B_WAIT_TIME_LONG goto BattleScript_ButItFailed BattleScript_SleepTalkUsingMove:: attackanimation waitanimation - setbyte sB_ANIM_TURN, 0x0 - setbyte sB_ANIM_TARGETS_HIT, 0x0 + setbyte sB_ANIM_TURN, 0 + setbyte sB_ANIM_TARGETS_HIT, 0 jumptocalledmove TRUE BattleScript_EffectDestinyBond:: @@ -3438,7 +3407,7 @@ BattleScript_EffectDestinyBond:: attackanimation waitanimation printstring STRINGID_PKMNTRYINGTOTAKEFOE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSpite:: @@ -3450,7 +3419,7 @@ BattleScript_EffectSpite:: attackanimation waitanimation printstring STRINGID_PKMNREDUCEDPP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectHealBell:: @@ -3462,15 +3431,15 @@ BattleScript_EffectHealBell:: attackanimation waitanimation printfromtable gPartyStatusHealStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd - jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_CheckHealBellMon2Unaffected + jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, B_MSG_BELL_SOUNDPROOF_ATTACKER, BattleScript_CheckHealBellMon2Unaffected printstring STRINGID_PKMNSXBLOCKSY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CheckHealBellMon2Unaffected:: - jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_PartyHealEnd + jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, B_MSG_BELL_SOUNDPROOF_PARTNER, BattleScript_PartyHealEnd printstring STRINGID_PKMNSXBLOCKSY2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_PartyHealEnd:: updatestatusicon BS_ATTACKER_WITH_PARTNER waitstate @@ -3480,9 +3449,9 @@ BattleScript_EffectTripleKick:: attackcanceler attackstring ppreduce - sethword sTRIPLE_KICK_POWER, 0x0 + sethword sTRIPLE_KICK_POWER, 0 initmultihitstring - setmultihit 0x3 + setmultihit 3 BattleScript_TripleKickLoop:: jumpifhasnohp BS_ATTACKER, BattleScript_TripleKickEnd jumpifhasnohp BS_TARGET, BattleScript_TripleKickNoMoreHits @@ -3492,7 +3461,7 @@ BattleScript_DoTripleKickAttack:: accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE movevaluescleanup addbyte sTRIPLE_KICK_POWER, 10 - addbyte sMULTIHIT_STRING + 4, 0x1 + addbyte sMULTIHIT_STRING + 4, 1 critcalc damagecalc adjustdamage @@ -3505,25 +3474,25 @@ BattleScript_DoTripleKickAttack:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG printstring STRINGID_EMPTYSTRING3 - waitmessage 0x1 + waitmessage 1 moveendto MOVEEND_NEXT_TARGET jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings decrementmultihit BattleScript_TripleKickLoop goto BattleScript_TripleKickPrintStrings BattleScript_TripleKickNoMoreHits:: - pause 0x20 - jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings + pause B_WAIT_TIME_SHORT + jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0, BattleScript_TripleKickPrintStrings bichalfword gMoveResultFlags, MOVE_RESULT_MISSED BattleScript_TripleKickPrintStrings:: resultmessage - waitmessage 0x40 - jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd + waitmessage B_WAIT_TIME_LONG + jumpifbyte CMP_EQUAL, sMULTIHIT_STRING + 4, 0, BattleScript_TripleKickEnd jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TripleKickEnd - copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6 printstring STRINGID_HITXTIMES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_TripleKickEnd:: seteffectwithchance tryfaintmon BS_TARGET, FALSE, NULL @@ -3550,7 +3519,7 @@ BattleScript_EffectMeanLook:: setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE seteffectprimary printstring STRINGID_TARGETCANTESCAPENOW - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectNightmare:: @@ -3568,7 +3537,7 @@ BattleScript_NightmareWorked:: setmoveeffect MOVE_EFFECT_NIGHTMARE seteffectprimary printstring STRINGID_PKMNFELLINTONIGHTMARE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectMinimize:: @@ -3587,23 +3556,23 @@ BattleScript_EffectCurse:: jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_ButItFailed BattleScript_CurseTrySpeed:: copybyte gBattlerTarget, gBattlerAttacker - setbyte sB_ANIM_TURN, 0x1 + setbyte sB_ANIM_TURN, 1 attackanimation waitanimation setstatchanger STAT_SPEED, 1, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryAttack printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CurseTryAttack:: setstatchanger STAT_ATK, 1, FALSE - statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryDefence + statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryDefense printfromtable gStatUpStringIds - waitmessage 0x40 -BattleScript_CurseTryDefence:: + waitmessage B_WAIT_TIME_LONG +BattleScript_CurseTryDefense:: setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CurseEnd:: goto BattleScript_MoveEnd BattleScript_GhostCurse:: @@ -3616,13 +3585,13 @@ BattleScript_DoGhostCurse:: accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON cursetarget BattleScript_ButItFailed orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - setbyte sB_ANIM_TURN, 0x0 + setbyte sB_ANIM_TURN, 0 attackanimation waitanimation healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNLAIDCURSE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL goto BattleScript_MoveEnd @@ -3641,7 +3610,7 @@ BattleScript_ProtectLikeAtkString: attackanimation waitanimation printfromtable gProtectLikeUsedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSpikes:: @@ -3652,7 +3621,7 @@ BattleScript_EffectSpikes:: attackanimation waitanimation printstring STRINGID_SPIKESSCATTERED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectForesight: @@ -3666,7 +3635,7 @@ BattleScript_IdentifiedFoe: attackanimation waitanimation printstring STRINGID_PKMNIDENTIFIED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPerishSong:: @@ -3677,18 +3646,18 @@ BattleScript_EffectPerishSong:: attackanimation waitanimation printstring STRINGID_FAINTINTHREE - waitmessage 0x40 - setbyte sBATTLER, 0x0 + waitmessage B_WAIT_TIME_LONG + setbyte sBATTLER, 0 BattleScript_PerishSongLoop:: jumpifability BS_SCRIPTING, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected BattleScript_PerishSongLoopIncrement:: - addbyte sBATTLER, 0x1 + addbyte sBATTLER, 1 jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_PerishSongLoop goto BattleScript_MoveEnd BattleScript_PerishSongNotAffected:: printstring STRINGID_PKMNSXBLOCKSY2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_PerishSongLoopIncrement BattleScript_EffectSandstorm:: @@ -3721,11 +3690,11 @@ BattleScript_EffectSwagger:: waitanimation setstatchanger STAT_ATK, 2, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_SwaggerTryConfuse - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SwaggerTryConfuse + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SwaggerTryConfuse setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_SwaggerTryConfuse: jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents jumpifsafeguard BattleScript_SafeguardProtected @@ -3754,7 +3723,7 @@ BattleScript_TryDestinyKnotTarget: status2animation BS_TARGET, STATUS2_INFATUATION waitanimation printstring STRINGID_DESTINYKNOTACTIVATES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_TryDestinyKnotTargetRet: return @@ -3766,7 +3735,7 @@ BattleScript_TryDestinyKnotAttacker: status2animation BS_ATTACKER, STATUS2_INFATUATION waitanimation printstring STRINGID_DESTINYKNOTACTIVATES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_TryDestinyKnotAttackerRet: return @@ -3780,7 +3749,7 @@ BattleScript_EffectAttract:: attackanimation waitanimation printstring STRINGID_PKMNFELLINLOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG call BattleScript_TryDestinyKnotAttacker goto BattleScript_MoveEnd @@ -3799,19 +3768,15 @@ BattleScript_EffectSafeguard:: setsafeguard goto BattleScript_PrintReflectLightScreenSafeguardString -BattleScript_EffectThawHit:: - setmoveeffect MOVE_EFFECT_BURN - goto BattleScript_EffectHit - BattleScript_EffectMagnitude:: jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_EffectMagnitudeTarget attackcanceler attackstring ppreduce magnitudedamagecalculation - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_MAGNITUDESTRENGTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectMagnitudeTarget: accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE goto BattleScript_HitFromCritCalc @@ -3827,7 +3792,7 @@ BattleScript_EffectBatonPass:: openpartyscreen BS_ATTACKER, BattleScript_ButItFailed switchoutabilities BS_ATTACKER waitstate - switchhandleorder BS_ATTACKER, 0x2 + switchhandleorder BS_ATTACKER, 2 returntoball BS_ATTACKER getswitchedmondata BS_ATTACKER switchindataupdate BS_ATTACKER @@ -3855,18 +3820,18 @@ BattleScript_EffectRapidSpin:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN seteffectwithchance setstatchanger STAT_SPEED, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectRapidSpinEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectRapidSpinEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectRapidSpinEnd setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectRapidSpinEnd:: tryfaintmon BS_TARGET, FALSE, NULL moveendall @@ -3906,7 +3871,7 @@ BattleScript_MoveWeatherChange:: attackanimation waitanimation printfromtable gMoveWeatherChangeStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG call BattleScript_WeatherFormChanges goto BattleScript_MoveEnd @@ -3940,7 +3905,7 @@ BattleScript_EffectBellyDrum:: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNCUTHPMAXEDATTACK - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPsychUp:: @@ -3951,7 +3916,7 @@ BattleScript_EffectPsychUp:: attackanimation waitanimation printstring STRINGID_PKMNCOPIEDSTATCHANGES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectMirrorCoat:: @@ -3968,15 +3933,15 @@ BattleScript_EffectMirrorCoat:: BattleScript_EffectSkullBash:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 2 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKULL_BASH call BattleScriptFirstChargingTurn setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_SkullBashEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SkullBashEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SkullBashEnd setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_SkullBashEnd:: jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd call BattleScript_PowerHerbActivation @@ -4001,7 +3966,7 @@ BattleScript_EffectFutureSight:: attackanimation waitanimation printfromtable gFutureMoveUsedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectGust:: @@ -4014,7 +3979,7 @@ BattleScript_EffectSolarbeam:: BattleScript_SolarbeamDecideTurn:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 1 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SOLAR_BEAM call BattleScriptFirstChargingTurn jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd call BattleScript_PowerHerbActivation @@ -4040,12 +4005,12 @@ BattleScript_EffectTeleport: ppreduce jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed getifcantrunfrombattle BS_ATTACKER - jumpifbyte CMP_EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed - jumpifbyte CMP_EQUAL, gBattleCommunication, 0x2, BattleScript_PrintAbilityMadeIneffective + jumpifbyte CMP_EQUAL, gBattleCommunication, 1, BattleScript_ButItFailed + jumpifbyte CMP_EQUAL, gBattleCommunication, 2, BattleScript_PrintAbilityMadeIneffective attackanimation waitanimation printstring STRINGID_PKMNFLEDFROMBATTLE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setoutcomeonteleport BS_ATTACKER goto BattleScript_MoveEnd @@ -4053,9 +4018,9 @@ BattleScript_EffectBeatUp:: attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT ppreduce - setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication, 0 BattleScript_BeatUpLoop:: movevaluescleanup trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed @@ -4073,9 +4038,9 @@ BattleScript_BeatUpAttack:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET, FALSE, NULL moveendto MOVEEND_NEXT_TARGET goto BattleScript_BeatUpLoop @@ -4090,19 +4055,19 @@ BattleScript_EffectSemiInvulnerable:: jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce jumpifmove MOVE_PHANTOM_FORCE, BattleScript_FirstTurnPhantomForce jumpifmove MOVE_SHADOW_FORCE, BattleScript_FirstTurnPhantomForce - setbyte sTWOTURN_STRINGID, 0x5 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_DIG goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnBounce:: - setbyte sTWOTURN_STRINGID, 7 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_BOUNCE goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnDive:: - setbyte sTWOTURN_STRINGID, 6 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_DIVE goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnPhantomForce: - setbyte sTWOTURN_STRINGID, 0x8 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_PHANTOM_FORCE goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnFly:: - setbyte sTWOTURN_STRINGID, 4 + setbyte sTWOTURN_STRINGID, B_MSG_TURN1_FLY BattleScript_FirstTurnSemiInvulnerable:: call BattleScriptFirstChargingTurn setsemiinvulnerablebit @@ -4111,7 +4076,7 @@ BattleScript_FirstTurnSemiInvulnerable:: BattleScript_SecondTurnSemiInvulnerable:: attackcanceler setmoveeffect MOVE_EFFECT_CHARGING - setbyte sB_ANIM_TURN, 0x1 + setbyte sB_ANIM_TURN, 1 clearstatusfromeffect BS_ATTACKER orword gHitMarker, HITMARKER_NO_PPDEDUCT argumenttomoveeffect @@ -4131,7 +4096,7 @@ BattleScript_EffectDefenseCurl:: setdefensecurlbit setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DefenseCurlDoStatUpAnim - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpPrintString attackanimation waitanimation BattleScript_DefenseCurlDoStatUpAnim:: @@ -4149,13 +4114,13 @@ BattleScript_PresentHealTarget:: healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNREGAINEDHEALTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_AlreadyAtFullHp:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNHPFULL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectFakeOut:: @@ -4169,17 +4134,26 @@ BattleScript_ButItFailedAtkStringPpReduce:: BattleScript_ButItFailedPpReduce:: ppreduce BattleScript_ButItFailed:: - pause 0x20 + pause B_WAIT_TIME_SHORT orhalfword gMoveResultFlags, MOVE_RESULT_FAILED resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_NotAffected:: - pause 0x20 + pause B_WAIT_TIME_SHORT orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd + +BattleScript_NotAffectedAbilityPopUp:: + copybyte gBattlerAbility, gBattlerTarget + pause B_WAIT_TIME_SHORT + call BattleScript_AbilityPopUp + orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE + resultmessage + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectUproar:: @@ -4200,31 +4174,31 @@ BattleScript_EffectStockpile:: attackanimation waitanimation printfromtable gStockpileUsedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifmovehadnoeffect BattleScript_EffectStockpileEnd - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_EffectStockpileDef - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_EffectStockpileEnd + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_EffectStockpileDef + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_EffectStockpileEnd BattleScript_EffectStockpileDef: setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0 setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectStockpileSpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectStockpileSpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectStockpileSpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectStockpileSpDef:: setstatchanger STAT_SPDEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectStockpileEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectStockpileEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectStockpileEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectStockpileEnd: stockpile 1 goto BattleScript_MoveEnd BattleScript_EffectSpitUp:: attackcanceler - jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2 + jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_SpitUpFailProtect attackstring ppreduce accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE @@ -4234,18 +4208,18 @@ BattleScript_EffectSpitUp:: stockpiletobasedamage BattleScript_SpitUpFail goto BattleScript_HitFromAtkAnimation BattleScript_SpitUpFail:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_FAILEDTOSPITUP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_82D9FA2:: +BattleScript_SpitUpFailProtect:: attackstring ppreduce - pause 0x40 + pause B_WAIT_TIME_LONG stockpiletobasedamage BattleScript_SpitUpFail resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSwallow:: @@ -4256,9 +4230,9 @@ BattleScript_EffectSwallow:: goto BattleScript_PresentHealTarget BattleScript_SwallowFail:: - pause 0x20 + pause B_WAIT_TIME_SHORT printfromtable gSwallowFailStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectHail:: @@ -4278,7 +4252,7 @@ BattleScript_EffectTorment:: attackanimation waitanimation printstring STRINGID_PKMNSUBJECTEDTOTORMENT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectFlatter:: @@ -4292,11 +4266,11 @@ BattleScript_EffectFlatter:: waitanimation setstatchanger STAT_SPATK, 1, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_FlatterTryConfuse - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlatterTryConfuse + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlatterTryConfuse setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_FlatterTryConfuse:: jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents jumpifsafeguard BattleScript_SafeguardProtected @@ -4327,20 +4301,20 @@ BattleScript_EffectWillOWisp:: BattleScript_WaterVeilPrevents:: copybyte gEffectBattler, gBattlerTarget - setbyte cMULTISTRING_CHOOSER, 0x0 + setbyte cMULTISTRING_CHOOSER, B_MSG_ABILITY_PREVENTS_MOVE_STATUS call BattleScript_BRNPrevention goto BattleScript_MoveEnd BattleScript_AlreadyBurned:: setalreadystatusedmoveattempt BS_ATTACKER - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNALREADYHASBURN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectMemento:: attackcanceler - jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153 + jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_MementoFailProtect attackstring ppreduce jumpifattackandspecialattackcannotfall BattleScript_ButItFailed @@ -4349,37 +4323,39 @@ BattleScript_EffectMemento:: waitanimation jumpifsubstituteblocks BattleScript_EffectMementoPrintNoEffect setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_ONLY_MULTIPLE + playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO setstatchanger STAT_ATK, 2, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMementoTrySpAtk - jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_EffectMementoTrySpAtk + @ Greater than STAT_FELL is checking if the stat cannot decrease + jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTrySpAtk printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectMementoTrySpAtk: playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO setstatchanger STAT_SPATK, 2, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMementoTryFaint - jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_EffectMementoTryFaint + @ Greater than STAT_FELL is checking if the stat cannot decrease + jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTryFaint printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectMementoTryFaint: tryfaintmon BS_ATTACKER, FALSE, NULL goto BattleScript_MoveEnd BattleScript_EffectMementoPrintNoEffect: printstring STRINGID_BUTNOEFFECT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_EffectMementoTryFaint -BattleScript_82DA153: +BattleScript_MementoFailProtect: attackstring ppreduce - jumpifattackandspecialattackcannotfall BattleScript_82DA15A -BattleScript_82DA15A: + jumpifattackandspecialattackcannotfall BattleScript_MementoFailEnd +BattleScript_MementoFailEnd: setatkhptozero - pause 0x40 + pause B_WAIT_TIME_LONG effectivenesssound resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL goto BattleScript_MoveEnd @@ -4388,7 +4364,7 @@ BattleScript_EffectFocusPunch:: jumpifnodamage BattleScript_HitFromAccCheck ppreduce printstring STRINGID_PKMNLOSTFOCUS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSmellingsalt: @@ -4406,16 +4382,16 @@ BattleScript_EffectFollowMe:: attackanimation waitanimation printstring STRINGID_PKMNCENTERATTENTION - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectNaturePower:: attackcanceler attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT callterrainattack printstring STRINGID_NATUREPOWERTURNEDINTO - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_EffectCharge:: @@ -4427,14 +4403,14 @@ BattleScript_EffectCharge:: waitanimation setstatchanger STAT_SPDEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectChargeString - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectChargeString + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectChargeString setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_EffectChargeString: printstring STRINGID_PKMNCHARGINGPOWER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectTaunt:: @@ -4447,7 +4423,7 @@ BattleScript_EffectTaunt:: attackanimation waitanimation printstring STRINGID_PKMNFELLFORTAUNT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectHelpingHand:: @@ -4458,7 +4434,7 @@ BattleScript_EffectHelpingHand:: attackanimation waitanimation printstring STRINGID_PKMNREADYTOHELP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectTrick:: @@ -4471,9 +4447,9 @@ BattleScript_EffectTrick:: attackanimation waitanimation printstring STRINGID_PKMNSWITCHEDITEMS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG printfromtable gItemSwapStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectRolePlay:: @@ -4485,14 +4461,14 @@ BattleScript_EffectRolePlay:: attackanimation waitanimation printstring STRINGID_PKMNCOPIEDFOE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectWish:: attackcanceler attackstring ppreduce - trywish 0x0, BattleScript_ButItFailed + trywish 0, BattleScript_ButItFailed attackanimation waitanimation goto BattleScript_MoveEnd @@ -4503,8 +4479,8 @@ BattleScript_EffectAssist: assistattackselect BattleScript_ButItFailedPpReduce attackanimation waitanimation - setbyte sB_ANIM_TURN, 0x0 - setbyte sB_ANIM_TARGETS_HIT, 0x0 + setbyte sB_ANIM_TURN, 0 + setbyte sB_ANIM_TARGETS_HIT, 0 jumptocalledmove TRUE BattleScript_EffectIngrain: @@ -4515,7 +4491,7 @@ BattleScript_EffectIngrain: attackanimation waitanimation printstring STRINGID_PKMNPLANTEDROOTS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSuperpower: @@ -4534,7 +4510,7 @@ BattleScript_EffectMagicCoat: attackanimation waitanimation printstring STRINGID_PKMNSHROUDEDITSELF - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectRecycle:: @@ -4545,7 +4521,7 @@ BattleScript_EffectRecycle:: attackanimation waitanimation printstring STRINGID_XFOUNDONEY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectBrickBreak:: @@ -4557,14 +4533,14 @@ BattleScript_EffectBrickBreak:: critcalc damagecalc adjustdamage - jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0x0, BattleScript_BrickBreakAnim + jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0, BattleScript_BrickBreakAnim bichalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE BattleScript_BrickBreakAnim:: attackanimation waitanimation - jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 0x2, BattleScript_BrickBreakDoHit + jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 2, BattleScript_BrickBreakDoHit printstring STRINGID_THEWALLSHATTERED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_BrickBreakDoHit:: typecalc effectivenesssound @@ -4573,9 +4549,9 @@ BattleScript_BrickBreakDoHit:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG seteffectwithchance tryfaintmon BS_TARGET, FALSE, NULL goto BattleScript_MoveEnd @@ -4598,14 +4574,14 @@ BattleScript_EffectYawn:: attackanimation waitanimation printstring STRINGID_PKMNWASMADEDROWSY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_PrintBankAbilityMadeIneffective:: copybyte sBATTLER, gBattlerAbility BattleScript_PrintAbilityMadeIneffective:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNSXMADEITINEFFECTIVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectKnockOff:: @@ -4635,7 +4611,7 @@ BattleScript_EffectSkillSwap: attackanimation waitanimation printstring STRINGID_PKMNSWAPPEDABILITIES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectImprison:: @@ -4646,7 +4622,7 @@ BattleScript_EffectImprison:: attackanimation waitanimation printstring STRINGID_PKMNSEALEDOPPONENTMOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectRefresh: @@ -4657,7 +4633,7 @@ BattleScript_EffectRefresh: attackanimation waitanimation printstring STRINGID_PKMNSTATUSNORMAL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER goto BattleScript_MoveEnd @@ -4669,7 +4645,7 @@ BattleScript_EffectGrudge: attackanimation waitanimation printstring STRINGID_PKMNWANTSGRUDGE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSnatch: @@ -4679,9 +4655,9 @@ BattleScript_EffectSnatch: ppreduce attackanimation waitanimation - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNWAITSFORTARGET - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectSecretPower:: @@ -4710,7 +4686,7 @@ BattleScript_EffectTeeterDance:: attackcanceler attackstring ppreduce - setbyte gBattlerTarget, 0x0 + setbyte gBattlerTarget, 0 BattleScript_TeeterDanceLoop:: movevaluescleanup setmoveeffect MOVE_EFFECT_CONFUSION @@ -4725,42 +4701,42 @@ BattleScript_TeeterDanceLoop:: waitanimation seteffectprimary resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_TeeterDanceDoMoveEndIncrement:: moveendto MOVEEND_NEXT_TARGET BattleScript_TeeterDanceLoopIncrement:: - addbyte gBattlerTarget, 0x1 + addbyte gBattlerTarget, 1 jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop end BattleScript_TeeterDanceOwnTempoPrevents:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNPREVENTSCONFUSIONWITH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_TeeterDanceDoMoveEndIncrement BattleScript_TeeterDanceSafeguardProtected:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNUSEDSAFEGUARD - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_TeeterDanceDoMoveEndIncrement BattleScript_TeeterDanceSubstitutePrevents:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_BUTITFAILED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_TeeterDanceDoMoveEndIncrement BattleScript_TeeterDanceAlreadyConfused:: setalreadystatusedmoveattempt BS_ATTACKER - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNALREADYCONFUSED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_TeeterDanceDoMoveEndIncrement BattleScript_TeeterDanceMissed:: resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_TeeterDanceDoMoveEndIncrement BattleScript_EffectMudSport:: @@ -4772,7 +4748,7 @@ BattleScript_EffectWaterSport:: attackanimation waitanimation printfromtable gSportsUsedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectPoisonFang:: @@ -4798,28 +4774,28 @@ BattleScript_TickleDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE + playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE setstatchanger STAT_ATK, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_TickleTryLowerDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleTryLowerDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleTryLowerDef printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_TickleTryLowerDef:: playstatchangeanimation BS_TARGET, BIT_DEF, STAT_CHANGE_NEGATIVE setstatchanger STAT_DEF, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_TickleEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleEnd printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_TickleEnd:: goto BattleScript_MoveEnd BattleScript_CantLowerMultipleStats:: - pause 0x20 + pause B_WAIT_TIME_SHORT orhalfword gMoveResultFlags, MOVE_RESULT_FAILED printstring STRINGID_STATSWONTDECREASE2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectCosmicPower:: @@ -4832,18 +4808,18 @@ BattleScript_CosmicPowerDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0 setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CosmicPowerTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerTrySpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CosmicPowerTrySpDef:: setstatchanger STAT_SPDEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CosmicPowerEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CosmicPowerEnd:: goto BattleScript_MoveEnd @@ -4860,18 +4836,18 @@ BattleScript_BulkUpDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0 setstatchanger STAT_ATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BulkUpTryDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpTryDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpTryDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_BulkUpTryDef:: setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BulkUpEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_BulkUpEnd:: goto BattleScript_MoveEnd @@ -4885,26 +4861,26 @@ BattleScript_CalmMindDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0 setstatchanger STAT_SPATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CalmMindTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindTrySpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CalmMindTrySpDef:: setstatchanger STAT_SPDEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CalmMindEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CalmMindEnd:: goto BattleScript_MoveEnd BattleScript_CantRaiseMultipleStats:: - pause 0x20 + pause B_WAIT_TIME_SHORT orhalfword gMoveResultFlags, MOVE_RESULT_FAILED printstring STRINGID_STATSWONTINCREASE2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_EffectDragonDance:: @@ -4917,18 +4893,18 @@ BattleScript_DragonDanceDoMoveAnim:: attackanimation waitanimation setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0 setstatchanger STAT_ATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DragonDanceTrySpeed - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceTrySpeed + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceTrySpeed printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DragonDanceTrySpeed:: setstatchanger STAT_SPEED, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DragonDanceEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceEnd printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DragonDanceEnd:: goto BattleScript_MoveEnd @@ -4940,13 +4916,13 @@ BattleScript_EffectCamouflage:: attackanimation waitanimation printstring STRINGID_PKMNCHANGEDTYPE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_FaintAttacker:: tryillusionoff BS_ATTACKER playfaintcry BS_ATTACKER - pause 0x40 + pause B_WAIT_TIME_LONG dofaintanimation BS_ATTACKER printstring STRINGID_ATTACKERFAINTED cleareffectsonfaint BS_ATTACKER @@ -4958,55 +4934,56 @@ BattleScript_FaintAttacker:: BattleScript_FaintTarget:: tryillusionoff BS_TARGET playfaintcry BS_TARGET - pause 0x40 + pause B_WAIT_TIME_LONG dofaintanimation BS_TARGET printstring STRINGID_TARGETFAINTED cleareffectsonfaint BS_TARGET tryactivatefellstinger BS_ATTACKER tryactivatesoulheart tryactivatereceiver BS_TARGET - tryactivatemoxie BS_ATTACKER + tryactivatemoxie BS_ATTACKER @ and chilling neigh, as one ice rider tryactivatebeastboost BS_ATTACKER + tryactivategrimneigh BS_ATTACKER @ and as one shadow rider trytrainerslidefirstdownmsg BS_TARGET return BattleScript_GiveExp:: - setbyte sGIVEEXP_STATE, 0x0 + setbyte sGIVEEXP_STATE, 0 getexp BS_TARGET end2 BattleScript_HandleFaintedMon:: - setbyte sSHIFT_SWITCHED, 0x0 - atk24 BattleScript_82DA8F6 + setbyte sSHIFT_SWITCHED, 0 + atk24 BattleScript_HandleFaintedMonMultiple jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd jumpifbattletype BATTLE_TYPE_TRAINER | BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonTryChooseAnother jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonTryChooseAnother printstring STRINGID_USENEXTPKMN - setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication, 0 yesnobox - jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x0, BattleScript_FaintedMonTryChooseAnother + jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0, BattleScript_FaintedMonTryChooseAnother jumpifplayerran BattleScript_FaintedMonEnd printstring STRINGID_CANTESCAPE2 BattleScript_FaintedMonTryChooseAnother: - openpartyscreen 0x3, BattleScript_FaintedMonEnd - switchhandleorder BS_FAINTED, 0x2 + openpartyscreen BS_FAINTED, BattleScript_FaintedMonEnd + switchhandleorder BS_FAINTED, 2 jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother - jumpifbattletype BATTLE_TYPE_x2000000, BattleScript_FaintedMonChooseAnother + jumpifbattletype BATTLE_TYPE_RECORDED_LINK, BattleScript_FaintedMonChooseAnother jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_FaintedMonChooseAnother jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother - jumpifbyte CMP_EQUAL, sBATTLE_STYLE, 0x1, BattleScript_FaintedMonChooseAnother + jumpifbyte CMP_EQUAL, sBATTLE_STYLE, OPTIONS_BATTLE_STYLE_SET, BattleScript_FaintedMonChooseAnother jumpifcantswitch BS_PLAYER1, BattleScript_FaintedMonChooseAnother setbyte sILLUSION_NICK_HACK, 1 printstring STRINGID_ENEMYABOUTTOSWITCHPKMN - setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication, 0 yesnobox - jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x1, BattleScript_FaintedMonChooseAnother + jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_FaintedMonChooseAnother setatktoplayer0 - openpartyscreen 0x81, BattleScript_FaintedMonChooseAnother - switchhandleorder BS_ATTACKER, 0x2 - jumpifbyte CMP_EQUAL, gBattleCommunication, 0x6, BattleScript_FaintedMonChooseAnother + openpartyscreen BS_ATTACKER | PARTY_SCREEN_OPTIONAL, BattleScript_FaintedMonChooseAnother + switchhandleorder BS_ATTACKER, 2 + jumpifbyte CMP_EQUAL, gBattleCommunication, PARTY_SIZE, BattleScript_FaintedMonChooseAnother atknameinbuff1 resetintimidatetracebits BS_ATTACKER hpthresholds2 BS_ATTACKER @@ -5021,9 +4998,9 @@ BattleScript_FaintedMonTryChooseAnother: hpthresholds BS_ATTACKER printstring STRINGID_SWITCHINMON hidepartystatussummary BS_ATTACKER - switchinanim BS_ATTACKER, 0x0 + switchinanim BS_ATTACKER, 0 waitstate - setbyte sSHIFT_SWITCHED, 0x1 + setbyte sSHIFT_SWITCHED, 1 BattleScript_FaintedMonChooseAnother: drawpartystatussummary BS_FAINTED getswitchedmondata BS_FAINTED @@ -5049,14 +5026,14 @@ BattleScript_FaintedMonShiftSwitched: copybyte gBattlerTarget, sSAVED_BATTLER goto BattleScript_FaintedMonChooseAnotherEnd -BattleScript_82DA8F6:: - openpartyscreen 0x5, BattleScript_82DA8FC -BattleScript_82DA8FC:: - switchhandleorder BS_FAINTED, 0x0 - openpartyscreen 0x6, BattleScript_82DA92C - switchhandleorder BS_FAINTED, 0x0 -BattleScript_82DA908:: - switchhandleorder BS_FAINTED, 0x3 +BattleScript_HandleFaintedMonMultiple:: + openpartyscreen BS_UNK_5, BattleScript_HandleFaintedMonMultipleStart +BattleScript_HandleFaintedMonMultipleStart:: + switchhandleorder BS_FAINTED, 0 + openpartyscreen BS_UNK_6, BattleScript_HandleFaintedMonMultipleEnd + switchhandleorder BS_FAINTED, 0 +BattleScript_HandleFaintedMonLoop:: + switchhandleorder BS_FAINTED, 3 drawpartystatussummary BS_FAINTED getswitchedmondata BS_FAINTED switchindataupdate BS_FAINTED @@ -5066,8 +5043,8 @@ BattleScript_82DA908:: switchinanim BS_FAINTED, FALSE waitstate switchineffects 5 - jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_82DA908 -BattleScript_82DA92C:: + jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_HandleFaintedMonLoop +BattleScript_HandleFaintedMonMultipleEnd:: end2 BattleScript_LocalTrainerBattleWon:: @@ -5089,7 +5066,7 @@ BattleScript_LocalBattleWonLoseTexts:: BattleScript_LocalBattleWonReward:: getmoneyreward printstring STRINGID_PLAYERGOTMONEY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_PayDayMoneyAndPickUpItems:: givepaydaymoney pickup @@ -5100,12 +5077,12 @@ BattleScript_LocalBattleLost:: jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_LocalBattleLostPrintTrainersWinText jumpifbattletype BATTLE_TYPE_TRAINER_HILL, BattleScript_LocalBattleLostPrintTrainersWinText jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd - jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_LocalBattleLostEnd + jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, TRAINER_SECRET_BASE, BattleScript_LocalBattleLostEnd BattleScript_LocalBattleLostPrintWhiteOut:: printstring STRINGID_PLAYERWHITEOUT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG printstring STRINGID_PLAYERWHITEOUT2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_LocalBattleLostEnd:: end2 BattleScript_CheckDomeDrew:: @@ -5119,7 +5096,7 @@ BattleScript_LocalBattleLostPrintTrainersWinText:: trainerslidein BS_ATTACKER waitstate printstring STRINGID_TRAINER1WINTEXT - jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText + jumpifbattletype BATTLE_TYPE_TOWER_LINK_MULTI, BattleScript_LocalBattleLostDoTrainer2WinText jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_ BattleScript_LocalBattleLostDoTrainer2WinText:: trainerslideout B_POSITION_OPPONENT_LEFT @@ -5130,7 +5107,7 @@ BattleScript_LocalBattleLostDoTrainer2WinText:: BattleScript_LocalBattleLostEnd_:: end2 -BattleScript_82DAA0B:: +BattleScript_FrontierLinkBattleLost:: returnopponentmon1toball BS_ATTACKER waitstate returnopponentmon2toball BS_ATTACKER @@ -5143,26 +5120,26 @@ BattleScript_82DAA0B:: trainerslidein BS_FAINTED waitstate printstring STRINGID_TRAINER2WINTEXT - jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA31 - atk57 -BattleScript_82DAA31:: - waitmessage 0x40 + jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_FrontierLinkBattleLostEnd + endlinkbattle +BattleScript_FrontierLinkBattleLostEnd:: + waitmessage B_WAIT_TIME_LONG end2 BattleScript_LinkBattleWonOrLost:: - jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C + jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_TowerLinkBattleWon printstring STRINGID_BATTLEEND - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd - atk57 + endlinkbattle BattleScript_LinkBattleWonOrLostWaitEnd:: - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 -BattleScript_82DAA5C:: +BattleScript_TowerLinkBattleWon:: playtrainerdefeatbgm BS_ATTACKER printstring STRINGID_BATTLEEND - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG trainerslidein BS_ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT @@ -5171,10 +5148,10 @@ BattleScript_82DAA5C:: trainerslidein BS_FAINTED waitstate printstring STRINGID_TRAINER2LOSETEXT - jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA83 - atk57 -BattleScript_82DAA83:: - waitmessage 0x40 + jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_TowerLinkBattleWonEnd + endlinkbattle +BattleScript_TowerLinkBattleWonEnd:: + waitmessage B_WAIT_TIME_LONG end2 BattleScript_FrontierTrainerBattleWon:: @@ -5203,22 +5180,22 @@ BattleScript_FrontierTrainerBattleWon_End: BattleScript_SmokeBallEscape:: playanimation BS_ATTACKER, B_ANIM_SMOKEBALL_ESCAPE, NULL printstring STRINGID_PKMNFLEDUSINGITS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_RanAwayUsingMonAbility:: printstring STRINGID_PKMNFLEDUSING - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_GotAwaySafely:: printstring STRINGID_GOTAWAYSAFELY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_WildMonFled:: printstring STRINGID_WILDPKMNFLED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_PrintCantRunFromTrainer:: @@ -5227,7 +5204,7 @@ BattleScript_PrintCantRunFromTrainer:: BattleScript_PrintFailedToRunString:: printfromtable gNoEscapeStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_PrintCantEscapeFromBattle:: @@ -5242,10 +5219,10 @@ BattleScript_ActionSwitch:: hpthresholds2 BS_ATTACKER printstring STRINGID_RETURNMON jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit - setmultihit 0x1 + setmultihit 1 goto BattleScript_PursuitSwitchDmgLoop BattleScript_PursuitSwitchDmgSetMultihit:: - setmultihit 0x2 + setmultihit 2 BattleScript_PursuitSwitchDmgLoop:: jumpifnopursuitswitchdmg BattleScript_DoSwitchOut swapattackerwithtarget @@ -5259,7 +5236,7 @@ BattleScript_DoSwitchOut:: returnatktoball waitstate drawpartystatussummary BS_ATTACKER - switchhandleorder BS_ATTACKER, 0x1 + switchhandleorder BS_ATTACKER, 1 getswitchedmondata BS_ATTACKER switchindataupdate BS_ATTACKER hpthresholds BS_ATTACKER @@ -5273,7 +5250,7 @@ BattleScript_DoSwitchOut:: end2 BattleScript_PursuitDmgOnSwitchOut:: - pause 0x20 + pause B_WAIT_TIME_SHORT attackstring ppreduce critcalc @@ -5287,26 +5264,26 @@ BattleScript_PursuitDmgOnSwitchOut:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET, FALSE, NULL moveendfromto MOVEEND_ABILITIES, MOVEEND_CHOICE_MOVE getbattlerfainted BS_TARGET - jumpifbyte CMP_EQUAL, gBattleCommunication, 0x0, BattleScript_PursuitDmgOnSwitchOutRet - setbyte sGIVEEXP_STATE, 0x0 + jumpifbyte CMP_EQUAL, gBattleCommunication, FALSE, BattleScript_PursuitDmgOnSwitchOutRet + setbyte sGIVEEXP_STATE, 0 getexp BS_TARGET BattleScript_PursuitDmgOnSwitchOutRet: return BattleScript_Pausex20:: - pause 0x20 + pause B_WAIT_TIME_SHORT return BattleScript_LevelUp:: fanfare MUS_LEVEL_UP printstring STRINGID_PKMNGREWTOLV - setbyte sLVLBOX_STATE, 0x0 + setbyte sLVLBOX_STATE, 0 drawlvlupbox handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, TRUE goto BattleScript_AskToLearnMove @@ -5318,11 +5295,11 @@ BattleScript_AskToLearnMove:: printstring STRINGID_TRYTOLEARNMOVE2 printstring STRINGID_TRYTOLEARNMOVE3 waitstate - setbyte sLEARNMOVE_STATE, 0x0 + setbyte sLEARNMOVE_STATE, 0 yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove printstring STRINGID_STOPLEARNINGMOVE waitstate - setbyte sLEARNMOVE_STATE, 0x0 + setbyte sLEARNMOVE_STATE, 0 yesnoboxstoplearningmove BattleScript_AskToLearnMove printstring STRINGID_DIDNOTLEARNMOVE goto BattleScript_TryLearnMoveLoop @@ -5334,7 +5311,7 @@ BattleScript_LearnedNewMove:: buffermovetolearn fanfare MUS_LEVEL_UP printstring STRINGID_PKMNLEARNEDMOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatechoicemoveonlvlup BS_ATTACKER goto BattleScript_TryLearnMoveLoop BattleScript_LearnMoveReturn:: @@ -5342,31 +5319,31 @@ BattleScript_LearnMoveReturn:: BattleScript_RainContinuesOrEnds:: printfromtable gRainContinuesStringIds - waitmessage 0x40 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RainContinuesOrEndsEnd + waitmessage B_WAIT_TIME_LONG + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_RAIN_STOPPED, BattleScript_RainContinuesOrEndsEnd playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES, NULL BattleScript_RainContinuesOrEndsEnd:: end2 BattleScript_DamagingWeatherContinues:: printfromtable gSandStormHailContinuesStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL - setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication, 0 BattleScript_DamagingWeatherLoop:: - copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 0x1 + copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1 weatherdamage - jumpifword CMP_EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement + jumpifword CMP_EQUAL, gBattleMoveDamage, 0, BattleScript_DamagingWeatherLoopIncrement jumpifword CMP_COMMON_BITS gBattleMoveDamage, 1 << 31, BattleScript_DamagingWeatherHeal printfromtable gSandStormHailDmgStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG effectivenesssound hitanimation BS_ATTACKER goto BattleScript_DamagingWeatherHpChange BattleScript_DamagingWeatherHeal: call BattleScript_AbilityPopUp printstring STRINGID_ICEBODYHPGAIN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DamagingWeatherHpChange: orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE healthbarupdate BS_ATTACKER @@ -5375,7 +5352,7 @@ BattleScript_DamagingWeatherHpChange: atk24 BattleScript_DamagingWeatherLoopIncrement BattleScript_DamagingWeatherLoopIncrement:: jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd - addbyte gBattleCommunication, 0x1 + addbyte gBattleCommunication, 1 jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop BattleScript_DamagingWeatherContinuesEnd:: bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE @@ -5383,110 +5360,116 @@ BattleScript_DamagingWeatherContinuesEnd:: BattleScript_SandStormHailEnds:: printfromtable gSandStormHailEndStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_SunlightContinues:: printstring STRINGID_SUNLIGHTSTRONG - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_SUN_CONTINUES, NULL end2 BattleScript_SunlightFaded:: printstring STRINGID_SUNLIGHTFADED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_OverworldWeatherStarts:: printfromtable gWeatherStartsStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL end3 +BattleScript_OverworldTerrain:: + printfromtable gTerrainStringIds + waitmessage B_WAIT_TIME_LONG + playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG, NULL + end3 + BattleScript_SideStatusWoreOff:: printstring STRINGID_PKMNSXWOREOFF - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_SideStatusWoreOffReturn:: printstring STRINGID_PKMNSXWOREOFF - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_LuckyChantEnds:: printstring STRINGID_LUCKYCHANTENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_TailwindEnds:: printstring STRINGID_TAILWINDENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_TrickRoomEnds:: printstring STRINGID_TRICKROOMENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_WonderRoomEnds:: printstring STRINGID_WONDERROOMENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_MagicRoomEnds:: printstring STRINGID_MAGICROOMENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_ElectricTerrainEnds:: printstring STRINGID_ELECTRICTERRAINENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_RESTORE_BG, NULL end2 BattleScript_MistyTerrainEnds:: printstring STRINGID_MISTYTERRAINENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_RESTORE_BG, NULL end2 BattleScript_GrassyTerrainEnds:: printstring STRINGID_GRASSYTERRAINENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_RESTORE_BG, NULL end2 BattleScript_PsychicTerrainEnds:: printstring STRINGID_PSYCHICTERRAINENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_RESTORE_BG, NULL end2 BattleScript_MudSportEnds:: printstring STRINGID_MUDSPORTENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_WaterSportEnds:: printstring STRINGID_WATERSPORTENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_GravityEnds:: printstring STRINGID_GRAVITYENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_SafeguardProtected:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNUSEDSAFEGUARD - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_SafeguardEnds:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNSAFEGUARDEXPIRED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_LeechSeedTurnDrain:: @@ -5496,20 +5479,20 @@ BattleScript_LeechSeedTurnDrain:: datahpupdate BS_ATTACKER copyword gBattleMoveDamage, gHpDealt jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze - setbyte cMULTISTRING_CHOOSER, 0x3 + setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_DRAIN jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_LeechSeedHealBlock manipulatedamage DMG_BIG_ROOT goto BattleScript_LeechSeedTurnPrintAndUpdateHp BattleScript_LeechSeedTurnPrintLiquidOoze:: copybyte gBattlerAbility, gBattlerAttacker call BattleScript_AbilityPopUp - setbyte cMULTISTRING_CHOOSER, 0x4 + setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_OOZE BattleScript_LeechSeedTurnPrintAndUpdateHp:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate BS_TARGET datahpupdate BS_TARGET printfromtable gLeechSeedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL tryfaintmon BS_TARGET, FALSE, NULL end2 @@ -5519,7 +5502,7 @@ BattleScript_LeechSeedHealBlock: BattleScript_BideStoringEnergy:: printstring STRINGID_PKMNSTORINGENERGY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_BideAttack:: @@ -5527,13 +5510,13 @@ BattleScript_BideAttack:: setmoveeffect MOVE_EFFECT_CHARGING clearstatusfromeffect BS_ATTACKER printstring STRINGID_PKMNUNLEASHEDENERGY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE copyword gBattleMoveDamage, sBIDE_DMG adjustdamage - setbyte sB_ANIM_TURN, 0x1 + setbyte sB_ANIM_TURN, 1 attackanimation waitanimation effectivenesssound @@ -5542,7 +5525,7 @@ BattleScript_BideAttack:: healthbarupdate BS_TARGET datahpupdate BS_TARGET resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET, FALSE, NULL goto BattleScript_MoveEnd @@ -5551,7 +5534,7 @@ BattleScript_BideNoEnergyToAttack:: setmoveeffect MOVE_EFFECT_CHARGING clearstatusfromeffect BS_ATTACKER printstring STRINGID_PKMNUNLEASHEDENERGY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_ButItFailed BattleScript_RoarSuccessSwitch:: @@ -5579,8 +5562,8 @@ BattleScript_RoarSuccessRet: BattleScript_WeaknessPolicy:: copybyte sBATTLER, gBattlerTarget - jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_WeaknessPolicyAtk - jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_WeaknessPolicyEnd + jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_WeaknessPolicyAtk + jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_WeaknessPolicyEnd BattleScript_WeaknessPolicyAtk: playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL waitanimation @@ -5588,15 +5571,15 @@ BattleScript_WeaknessPolicyAtk: playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_BY_TWO setstatchanger STAT_ATK, 2, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_WeaknessPolicySpAtk - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_WeaknessPolicySpAtk - printstring STRINGID_USINGXTHEYOFZN - waitmessage 0x40 + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeaknessPolicySpAtk + printstring STRINGID_USINGITEMSTATOFPKMNROSE + waitmessage B_WAIT_TIME_LONG BattleScript_WeaknessPolicySpAtk: setstatchanger STAT_SPATK, 2, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_WeaknessPolicyRemoveItem - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_WeaknessPolicyRemoveItem - printstring STRINGID_USINGXTHEYOFZN - waitmessage 0x40 + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeaknessPolicyRemoveItem + printstring STRINGID_USINGITEMSTATOFPKMNROSE + waitmessage B_WAIT_TIME_LONG BattleScript_WeaknessPolicyRemoveItem: removeitem BS_TARGET BattleScript_WeaknessPolicyEnd: @@ -5605,32 +5588,32 @@ BattleScript_WeaknessPolicyEnd: BattleScript_TargetItemStatRaise:: copybyte sBATTLER, gBattlerTarget statbuffchange 0, BattleScript_TargetItemStatRaiseRemoveItemRet - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TargetItemStatRaiseRemoveItemRet + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_TargetItemStatRaiseRemoveItemRet playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL waitanimation setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 waitanimation - printstring STRINGID_USINGXTHEYOFZN - waitmessage 0x40 + printstring STRINGID_USINGITEMSTATOFPKMNROSE + waitmessage B_WAIT_TIME_LONG removeitem BS_TARGET BattleScript_TargetItemStatRaiseRemoveItemRet: return BattleScript_MistProtected:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNPROTECTEDBYMIST - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_RageIsBuilding:: printstring STRINGID_PKMNRAGEBUILDING - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MoveUsedIsDisabled:: printstring STRINGID_PKMNMOVEISDISABLED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SelectingDisabledMove:: @@ -5639,7 +5622,7 @@ BattleScript_SelectingDisabledMove:: BattleScript_DisabledNoMore:: printstring STRINGID_PKMNMOVEDISABLEDNOMORE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_SelectingDisabledMoveInPalace:: @@ -5650,12 +5633,12 @@ BattleScript_SelectingUnusableMoveInPalace:: BattleScript_EncoredNoMore:: printstring STRINGID_PKMNENCOREENDED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_DestinyBondTakesLife:: printstring STRINGID_PKMNTOOKFOE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER @@ -5672,7 +5655,7 @@ BattleScript_DmgHazardsOnAttacker:: return BattleScript_DmgHazardsOnAttackerFainted:: - setbyte sGIVEEXP_STATE, 0x0 + setbyte sGIVEEXP_STATE, 0 getexp BS_ATTACKER moveendall goto BattleScript_HandleFaintedMon @@ -5687,7 +5670,7 @@ BattleScript_DmgHazardsOnTarget:: return BattleScript_DmgHazardsOnTargetFainted:: - setbyte sGIVEEXP_STATE, 0x0 + setbyte sGIVEEXP_STATE, 0 getexp BS_TARGET moveendall goto BattleScript_HandleFaintedMon @@ -5702,24 +5685,24 @@ BattleScript_DmgHazardsOnFaintedBattler:: return BattleScript_DmgHazardsOnFaintedBattlerFainted:: - setbyte sGIVEEXP_STATE, 0x0 + setbyte sGIVEEXP_STATE, 0 getexp BS_FAINTED moveendall goto BattleScript_HandleFaintedMon BattleScript_PrintHurtByDmgHazards:: printfromtable gDmgHazardsStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_ToxicSpikesAbsorbed:: printstring STRINGID_TOXICSPIKESABSORBED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_ToxicSpikesPoisoned:: printstring STRINGID_TOXICSPIKESPOISONED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG statusanimation BS_SCRIPTING updatestatusicon BS_SCRIPTING waitstate @@ -5729,25 +5712,25 @@ BattleScript_StickyWebOnSwitchIn:: savetarget copybyte gBattlerTarget, sBATTLER printstring STRINGID_STICKYWEBSWITCHIN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StickyWebOnSwitchInEnd - jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StickyWebOnSwitchInStatAnim - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StickyWebOnSwitchInEnd - pause 0x20 + jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_StickyWebOnSwitchInStatAnim + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StickyWebOnSwitchInEnd + pause B_WAIT_TIME_SHORT goto BattleScript_StickyWebOnSwitchInPrintStatMsg BattleScript_StickyWebOnSwitchInStatAnim: setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_StickyWebOnSwitchInPrintStatMsg: printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_StickyWebOnSwitchInEnd: restoretarget return BattleScript_PerishSongTakesLife:: printstring STRINGID_PKMNPERISHCOUNTFELL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER @@ -5757,13 +5740,13 @@ BattleScript_PerishSongTakesLife:: BattleScript_PerishBodyActivates:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSWILLPERISHIN3TURNS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 return BattleScript_PerishSongCountGoesDown:: printstring STRINGID_PKMNPERISHCOUNTFELL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_AllStatsUp:: @@ -5774,31 +5757,31 @@ BattleScript_AllStatsUp:: jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_AllStatsUpRet BattleScript_AllStatsUpAtk:: setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0 + playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0 setstatchanger STAT_ATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AllStatsUpDef:: setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpeed printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AllStatsUpSpeed:: setstatchanger STAT_SPEED, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpAtk printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AllStatsUpSpAtk:: setstatchanger STAT_SPATK, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpDef printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AllStatsUpSpDef:: setstatchanger STAT_SPDEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpRet printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AllStatsUpRet:: return @@ -5808,39 +5791,39 @@ BattleScript_RapidSpinAway:: BattleScript_WrapFree:: printstring STRINGID_PKMNGOTFREE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG copybyte gBattlerTarget, sBATTLER return BattleScript_LeechSeedFree:: printstring STRINGID_PKMNSHEDLEECHSEED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_SpikesFree:: printstring STRINGID_PKMNBLEWAWAYSPIKES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_ToxicSpikesFree:: printstring STRINGID_PKMNBLEWAWAYTOXICSPIKES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_StickyWebFree:: printstring STRINGID_PKMNBLEWAWAYSTICKYWEB - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_StealthRockFree:: printstring STRINGID_PKMNBLEWAWAYSTEALTHROCK - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MonTookFutureAttack:: printstring STRINGID_PKMNTOOKATTACK - waitmessage 0x40 - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_CheckDoomDesireMiss + waitmessage B_WAIT_TIME_LONG + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_FUTURE_SIGHT, BattleScript_CheckDoomDesireMiss accuracycheck BattleScript_FutureAttackMiss, MOVE_FUTURE_SIGHT goto BattleScript_FutureAttackAnimate BattleScript_CheckDoomDesireMiss:: @@ -5850,7 +5833,7 @@ BattleScript_FutureAttackAnimate:: damagecalc adjustdamage jumpifmovehadnoeffect BattleScript_DoFutureAttackResult - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_FutureHitAnimDoomDesire + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_FUTURE_SIGHT, BattleScript_FutureHitAnimDoomDesire playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT, NULL goto BattleScript_DoFutureAttackHit BattleScript_FutureHitAnimDoomDesire:: @@ -5862,10 +5845,10 @@ BattleScript_DoFutureAttackHit:: healthbarupdate BS_TARGET datahpupdate BS_TARGET critmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DoFutureAttackResult: resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET, FALSE, NULL atk24 BattleScript_FutureAttackEnd BattleScript_FutureAttackEnd:: @@ -5874,10 +5857,10 @@ BattleScript_FutureAttackEnd:: setbyte gMoveResultFlags, 0 end2 BattleScript_FutureAttackMiss:: - pause 0x20 + pause B_WAIT_TIME_SHORT sethword gMoveResultFlags, MOVE_RESULT_FAILED resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG sethword gMoveResultFlags, 0 end2 @@ -5891,9 +5874,9 @@ BattleScript_SelectingMoveWithNoPP:: BattleScript_NoPPForMove:: attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_BUTNOPPLEFT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SelectingTormentedMove:: @@ -5902,7 +5885,7 @@ BattleScript_SelectingTormentedMove:: BattleScript_MoveUsedIsTormented:: printstring STRINGID_PKMNCANTUSEMOVETORMENT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SelectingTormentedMoveInPalace:: @@ -5915,7 +5898,7 @@ BattleScript_SelectingNotAllowedMoveTaunt:: BattleScript_MoveUsedIsTaunted:: printstring STRINGID_PKMNCANTUSEMOVETAUNT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SelectingNotAllowedMoveTauntInPalace:: @@ -5928,7 +5911,7 @@ BattleScript_SelectingNotAllowedMoveThroatChop:: BattleScript_MoveUsedIsThroatChopPrevented:: printstring STRINGID_PKMNCANTUSEMOVETHROATCHOP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SelectingNotAllowedMoveThroatChopInPalace:: @@ -5937,15 +5920,15 @@ BattleScript_SelectingNotAllowedMoveThroatChopInPalace:: BattleScript_ThroatChopEndTurn:: printstring STRINGID_THROATCHOPENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_SlowStartEnds:: - pause 0x5 + pause 5 copybyte gBattlerAbility, gBattlerAttacker call BattleScript_AbilityPopUp printstring STRINGID_SLOWSTARTEND - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_SelectingNotAllowedMoveGravity:: @@ -5962,7 +5945,7 @@ BattleScript_SelectingNotAllowedBelchInPalace:: BattleScript_MoveUsedGravityPrevents:: printstring STRINGID_GRAVITYPREVENTSUSAGE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SelectingNotAllowedMoveGravityInPalace:: @@ -5975,7 +5958,7 @@ BattleScript_SelectingNotAllowedMoveHealBlock:: BattleScript_MoveUsedHealBlockPrevents:: printstring STRINGID_HEALBLOCKPREVENTSUSAGE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SelectingNotAllowedMoveHealBlockInPalace:: @@ -5983,30 +5966,30 @@ BattleScript_SelectingNotAllowedMoveHealBlockInPalace:: goto BattleScript_SelectingUnusableMoveInPalace BattleScript_WishComesTrue:: - trywish 0x1, BattleScript_WishButFullHp + trywish 1, BattleScript_WishButFullHp playanimation BS_TARGET, B_ANIM_WISH_HEAL, NULL printstring STRINGID_PKMNWISHCAMETRUE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNREGAINEDHEALTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_WishButFullHp:: printstring STRINGID_PKMNWISHCAMETRUE - waitmessage 0x40 - pause 0x20 + waitmessage B_WAIT_TIME_LONG + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNHPFULL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_IngrainTurnHeal:: playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL printstring STRINGID_PKMNABSORBEDNUTRIENTS BattleScript_TurnHeal: - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER @@ -6018,58 +6001,58 @@ BattleScript_AquaRingHeal:: goto BattleScript_TurnHeal BattleScript_PrintMonIsRooted:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNANCHOREDITSELF - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_AtkDefDown:: setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE + playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_ATTACKER, BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE setstatchanger STAT_ATK, 1, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDownTryDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AtkDefDownTryDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDownTryDef printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AtkDefDownTryDef: playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE setstatchanger STAT_DEF, 1, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDownRet - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AtkDefDownRet + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDownRet printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_AtkDefDownRet: return BattleScript_DefSpDefDown:: setbyte sSTAT_ANIM_PLAYED, FALSE - playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_ONLY_MULTIPLE + playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE setstatchanger STAT_DEF, 1, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_DefSpDefDownTrySpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DefSpDefDownTrySpDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefSpDefDownTrySpDef printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DefSpDefDownTrySpDef:: playstatchangeanimation BS_ATTACKER, BIT_SPDEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE setstatchanger STAT_SPDEF, 1, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_DefSpDefDownRet - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DefSpDefDownRet + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_DefSpDefDownRet printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DefSpDefDownRet:: return BattleScript_KnockedOff:: playanimation BS_TARGET, B_ANIM_ITEM_KNOCKOFF, NULL printstring STRINGID_PKMNKNOCKEDOFF - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MoveUsedIsImprisoned:: printstring STRINGID_PKMNCANTUSEMOVESEALED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SelectingImprisonedMove:: @@ -6082,15 +6065,15 @@ BattleScript_SelectingImprisonedMoveInPalace:: BattleScript_GrudgeTakesPp:: printstring STRINGID_PKMNLOSTPPGRUDGE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MagicCoatBounce:: attackstring ppreduce - pause 0x20 + pause B_WAIT_TIME_SHORT printfromtable gMagicCoatBounceStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 setmagiccoattarget BS_ATTACKER return @@ -6101,27 +6084,27 @@ BattleScript_SnatchedMove:: snatchsetbattlers playanimation BS_TARGET, B_ANIM_SNATCH_MOVE, NULL printstring STRINGID_PKMNSNATCHEDMOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 swapattackerwithtarget return BattleScript_EnduredMsg:: printstring STRINGID_PKMNENDUREDHIT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_SturdiedMsg:: copybyte gBattlerAbility, gBattlerTarget - pause 0x10 + pause 16 call BattleScript_AbilityPopUp printstring STRINGID_ENDUREDSTURDY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_OneHitKOMsg:: printstring STRINGID_ONEHITKO - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_SAtkDown2:: @@ -6129,28 +6112,28 @@ BattleScript_SAtkDown2:: playstatchangeanimation BS_ATTACKER, BIT_SPATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO setstatchanger STAT_SPATK, 2, TRUE statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_SAtkDown2End - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SAtkDown2End + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SAtkDown2End printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_SAtkDown2End:: return BattleScript_MoveEffectClearSmog:: printstring STRINGID_RESETSTARGETSSTATLEVELS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_FocusPunchSetUp:: printstring STRINGID_EMPTYSTRING3 - waitmessage 0x1 + waitmessage 1 playanimation BS_ATTACKER, B_ANIM_FOCUS_PUNCH_SETUP, NULL printstring STRINGID_PKMNTIGHTENINGFOCUS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_MegaEvolution:: printstring STRINGID_MEGAEVOREACTING - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setbyte gIsCriticalHit, 0 handlemegaevo BS_ATTACKER, 0 handlemegaevo BS_ATTACKER, 1 @@ -6158,13 +6141,13 @@ BattleScript_MegaEvolution:: waitanimation handlemegaevo BS_ATTACKER, 2 printstring STRINGID_MEGAEVOEVOLVED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG switchinabilities BS_ATTACKER end2 BattleScript_WishMegaEvolution:: printstring STRINGID_FERVENTWISHREACHED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setbyte gIsCriticalHit, 0 handlemegaevo BS_ATTACKER, 0 handlemegaevo BS_ATTACKER, 1 @@ -6172,16 +6155,16 @@ BattleScript_WishMegaEvolution:: waitanimation handlemegaevo BS_ATTACKER, 2 printstring STRINGID_MEGAEVOEVOLVED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG switchinabilities BS_ATTACKER end2 BattleScript_AttackerFormChange:: - pause 0x5 + pause 5 copybyte gBattlerAbility, gBattlerAttacker call BattleScript_AbilityPopUp printstring STRINGID_EMPTYSTRING3 - waitmessage 0x1 + waitmessage 1 handleformchange BS_ATTACKER, 0 handleformchange BS_ATTACKER, 1 playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE, NULL @@ -6196,15 +6179,15 @@ BattleScript_AttackerFormChangeEnd3:: BattleScript_BallFetch:: call BattleScript_AbilityPopUp printstring STRINGID_FETCHEDPOKEBALL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end3 BattleScript_TargetFormChange:: - pause 0x5 + pause 5 copybyte gBattlerAbility, gBattlerTarget call BattleScript_AbilityPopUp printstring STRINGID_EMPTYSTRING3 - waitmessage 0x1 + waitmessage 1 handleformchange BS_TARGET, 0 handleformchange BS_TARGET, 1 playanimation BS_TARGET, B_ANIM_FORM_CHANGE, NULL @@ -6220,7 +6203,7 @@ BattleScript_IllusionOff:: waitstate spriteignore0hp FALSE printstring STRINGID_ILLUSIONWOREOFF - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_CottonDownActivates:: @@ -6228,21 +6211,23 @@ BattleScript_CottonDownActivates:: call BattleScript_AbilityPopUp copybyte gEffectBattler, gBattlerTarget savetarget - setbyte gBattlerTarget, 0x0 + setbyte gBattlerTarget, 0 BattleScript_CottonDownLoop: + getbattlerfainted BS_TARGET + jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_CottonDownLoopIncrement setstatchanger STAT_SPEED, 1, TRUE jumpifbyteequal gBattlerTarget, gEffectBattler, BattleScript_CottonDownLoopIncrement statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED, BattleScript_CottonDownTargetSpeedCantGoLower setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_CottonDownLoopIncrement BattleScript_CottonDownTargetSpeedCantGoLower: printstring STRINGID_STATSWONTDECREASE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_CottonDownLoopIncrement: - addbyte gBattlerTarget, 0x1 + addbyte gBattlerTarget, 1 jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_CottonDownLoop BattleScript_CottonDownReturn: restoretarget @@ -6250,45 +6235,45 @@ BattleScript_CottonDownReturn: return BattleScript_AnticipationActivates:: - pause 0x5 + pause 5 call BattleScript_AbilityPopUp printstring STRINGID_ANTICIPATIONACTIVATES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_AftermathDmg:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_AFTERMATHDMG - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL return BattleScript_MoveUsedIsAsleep:: printstring STRINGID_PKMNFASTASLEEP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG statusanimation BS_ATTACKER goto BattleScript_MoveEnd BattleScript_MoveUsedWokeUp:: bicword gHitMarker, HITMARKER_x10 printfromtable gWokeUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER return BattleScript_MonWokeUpInUproar:: printstring STRINGID_PKMNWOKEUPINUPROAR - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER end2 BattleScript_PoisonTurnDmg:: printstring STRINGID_PKMNHURTBYPOISON - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_DoStatusTurnDmg:: statusanimation BS_ATTACKER BattleScript_DoTurnDmg: @@ -6302,7 +6287,7 @@ BattleScript_DoTurnDmgEnd: BattleScript_PoisonHealActivates:: printstring STRINGID_POISONHEALHPUP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG recordability BS_ATTACKER statusanimation BS_ATTACKER orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 @@ -6312,30 +6297,30 @@ BattleScript_PoisonHealActivates:: BattleScript_BurnTurnDmg:: printstring STRINGID_PKMNHURTBYBURN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_DoStatusTurnDmg BattleScript_MoveUsedIsFrozen:: printstring STRINGID_PKMNISFROZEN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG statusanimation BS_ATTACKER goto BattleScript_MoveEnd BattleScript_MoveUsedUnfroze:: printfromtable gGotDefrostedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER return BattleScript_DefrostedViaFireMove:: printstring STRINGID_PKMNWASDEFROSTED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_TARGET return BattleScript_MoveUsedIsParalyzed:: printstring STRINGID_PKMNISPARALYZED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG statusanimation BS_ATTACKER cancelmultiturnmoves BS_ATTACKER goto BattleScript_MoveEnd @@ -6343,7 +6328,7 @@ BattleScript_MoveUsedIsParalyzed:: BattleScript_PowderMoveNoEffect:: attackstring ppreduce - pause 0x20 + pause B_WAIT_TIME_SHORT jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_PowderMoveNoEffectPrint jumpifability BS_TARGET, ABILITY_OVERCOAT, BattleScript_PowderMoveNoEffectOvercoat printstring STRINGID_SAFETYGOOGLESPROTECTED @@ -6353,21 +6338,21 @@ BattleScript_PowderMoveNoEffectOvercoat: BattleScript_PowderMoveNoEffectPrint: printstring STRINGID_ITDOESNTAFFECT BattleScript_PowderMoveNoEffectWaitMsg: - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG cancelmultiturnmoves BS_ATTACKER sethword gMoveResultFlags, MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_MoveUsedFlinched:: printstring STRINGID_PKMNFLINCHED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifability BS_ATTACKER ABILITY_STEADFAST BattleScript_TryActivateSteadFast BattleScript_MoveUsedFlinchedEnd: goto BattleScript_MoveEnd BattleScript_TryActivateSteadFast: setstatchanger STAT_SPEED, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_MoveUsedFlinchedEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_MoveUsedFlinchedEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_MoveUsedFlinchedEnd copybyte gBattlerAbility, gBattlerAttacker call BattleScript_AbilityPopUp setgraphicalstatchangevalues @@ -6375,30 +6360,30 @@ BattleScript_TryActivateSteadFast: setbyte gBattleCommunication STAT_SPEED stattextbuffer BS_ATTACKER printstring STRINGID_ATTACKERABILITYSTATRAISE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveUsedFlinchedEnd BattleScript_PrintUproarOverTurns:: printfromtable gUproarOverTurnStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_ThrashConfuses:: chosenstatus2animation BS_ATTACKER, STATUS2_CONFUSION printstring STRINGID_PKMNFATIGUECONFUSION - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_MoveUsedIsConfused:: printstring STRINGID_PKMNISCONFUSED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG status2animation BS_ATTACKER, STATUS2_CONFUSION - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_MoveUsedIsConfusedRet + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, FALSE, BattleScript_MoveUsedIsConfusedRet BattleScript_DoSelfConfusionDmg:: cancelmultiturnmoves BS_ATTACKER adjustdamage printstring STRINGID_ITHURTCONFUSION - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG effectivenesssound hitanimation BS_ATTACKER waitstate @@ -6406,7 +6391,7 @@ BattleScript_DoSelfConfusionDmg:: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER resultmessage - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL goto BattleScript_MoveEnd BattleScript_MoveUsedIsConfusedRet:: @@ -6416,7 +6401,7 @@ BattleScript_MoveUsedPowder:: bicword gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED attackstring ppreduce - pause 0x20 + pause B_WAIT_TIME_SHORT cancelmultiturnmoves BS_ATTACKER status2animation BS_ATTACKER, STATUS2_POWDER waitanimation @@ -6427,65 +6412,77 @@ BattleScript_MoveUsedPowder:: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_POWDEREXPLODES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL goto BattleScript_MoveEnd BattleScript_MoveUsedIsConfusedNoMore:: printstring STRINGID_PKMNHEALEDCONFUSION - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_PrintPayDayMoneyString:: - printstring STRINGID_PKMNPICKEDUPITEM - waitmessage 0x40 + printstring STRINGID_PLAYERPICKEDUPMONEY + waitmessage B_WAIT_TIME_LONG return BattleScript_WrapTurnDmg:: jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_DoTurnDmgEnd playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1 printstring STRINGID_PKMNHURTBY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_DoTurnDmg BattleScript_WrapEnds:: printstring STRINGID_PKMNFREEDFROM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_MoveUsedIsInLove:: printstring STRINGID_PKMNINLOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG status2animation BS_ATTACKER, STATUS2_INFATUATION return BattleScript_MoveUsedIsInLoveCantAttack:: printstring STRINGID_PKMNIMMOBILIZEDBYLOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_NightmareTurnDmg:: printstring STRINGID_PKMNLOCKEDINNIGHTMARE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG status2animation BS_ATTACKER, STATUS2_NIGHTMARE goto BattleScript_DoTurnDmg BattleScript_CurseTurnDmg:: printstring STRINGID_PKMNAFFLICTEDBYCURSE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG status2animation BS_ATTACKER, STATUS2_CURSED goto BattleScript_DoTurnDmg BattleScript_TargetPRLZHeal:: printstring STRINGID_PKMNHEALEDPARALYSIS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG + updatestatusicon BS_TARGET + return + +BattleScript_TargetWokeUp:: + printstring STRINGID_TARGETWOKEUP + waitmessage B_WAIT_TIME_LONG + updatestatusicon BS_TARGET + return + +BattleScript_TargetBurnHeal:: + printstring STRINGID_PKMNBURNHEALED + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_TARGET return BattleScript_MoveEffectSleep:: statusanimation BS_EFFECT_BATTLER printfromtable gFellAsleepStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_UpdateEffectStatusIconRet:: updatestatusicon BS_EFFECT_BATTLER waitstate @@ -6494,7 +6491,7 @@ BattleScript_UpdateEffectStatusIconRet:: BattleScript_YawnMakesAsleep:: statusanimation BS_EFFECT_BATTLER printstring STRINGID_PKMNFELLASLEEP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_EFFECT_BATTLER waitstate makevisible BS_EFFECT_BATTLER @@ -6502,17 +6499,17 @@ BattleScript_YawnMakesAsleep:: BattleScript_EmbargoEndTurn:: printstring STRINGID_EMBARGOENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_TelekinesisEndTurn:: printstring STRINGID_TELEKINESISENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_BufferEndTurn:: printstring STRINGID_BUFFERENDS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_ToxicOrb:: @@ -6530,52 +6527,52 @@ BattleScript_FlameOrb:: BattleScript_MoveEffectPoison:: statusanimation BS_EFFECT_BATTLER printfromtable gGotPoisonedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_UpdateEffectStatusIconRet BattleScript_MoveEffectBurn:: statusanimation BS_EFFECT_BATTLER printfromtable gGotBurnedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_UpdateEffectStatusIconRet BattleScript_MoveEffectFreeze:: statusanimation BS_EFFECT_BATTLER printfromtable gGotFrozenStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_UpdateEffectStatusIconRet BattleScript_MoveEffectParalysis:: statusanimation BS_EFFECT_BATTLER printfromtable gGotParalyzedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_UpdateEffectStatusIconRet BattleScript_MoveEffectUproar:: printstring STRINGID_PKMNCAUSEDUPROAR - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MoveEffectToxic:: statusanimation BS_EFFECT_BATTLER printstring STRINGID_PKMNBADLYPOISONED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_UpdateEffectStatusIconRet BattleScript_MoveEffectPayDay:: printstring STRINGID_COINSSCATTERED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MoveEffectWrap:: printfromtable gWrappedStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MoveEffectConfusion:: chosenstatus2animation BS_EFFECT_BATTLER, STATUS2_CONFUSION printstring STRINGID_PKMNWASCONFUSED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MoveEffectRecoilWithStatus:: @@ -6585,11 +6582,11 @@ BattleScript_MoveEffectRecoil:: jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_RecoilEnd BattleScript_DoRecoil:: - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_IGNORE_DISGUISE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNHITWITHRECOIL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL BattleScript_RecoilEnd:: return @@ -6601,11 +6598,11 @@ BattleScript_EffectWithChance:: BattleScript_ItemSteal:: playanimation BS_TARGET, B_ANIM_ITEM_STEAL, NULL printstring STRINGID_PKMNSTOLEITEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_DrizzleActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNMADEITRAIN waitstate @@ -6614,26 +6611,27 @@ BattleScript_DrizzleActivates:: end3 BattleScript_DefiantActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp statbuffchange 0, NULL setgraphicalstatchangevalues playanimation BS_ABILITY_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 - printstring STRINGID_PKMNSSTATCHANGED2 - waitmessage 0x40 + printstring STRINGID_DEFENDERSSTATROSE + waitmessage B_WAIT_TIME_LONG return BattleScript_AbilityPopUp: showabilitypopup BS_ABILITY_BATTLER recordability BS_ABILITY_BATTLER pause 40 + sethword sABILITY_OVERWRITE, 0 return BattleScript_SpeedBoostActivates:: call BattleScript_AbilityPopUp playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printstring STRINGID_PKMNRAISEDSPEED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end3 @ Can't compare directly to a value, have to compare to value at pointer @@ -6644,27 +6642,27 @@ BattleScript_MoodyActivates:: call BattleScript_AbilityPopUp jumpifbyteequal sSTATCHANGER, sZero, BattleScript_MoodyLower statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_NOT_PROTECT_AFFECTED, BattleScript_MoodyLower - jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_MoodyLower + jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_ROSE, BattleScript_MoodyLower setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_MoodyLower: jumpifbyteequal sSAVED_STAT_CHANGER, sZero, BattleScript_MoodyEnd copybyte sSTATCHANGER, sSAVED_STAT_CHANGER statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_NOT_PROTECT_AFFECTED, BattleScript_MoodyEnd - jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_MoodyEnd + jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_MoodyEnd setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_MoodyEnd: end3 BattleScript_EmergencyExit:: - pause 0x5 + pause 5 call BattleScript_AbilityPopUp - pause 0x40 + pause B_WAIT_TIME_LONG BattleScript_EmergencyExitNoPopUp:: playanimation BS_TARGET, B_ANIM_SLIDE_OFFSCREEN, NULL waitanimation @@ -6684,9 +6682,9 @@ BattleScript_EmergencyExitRet: return BattleScript_EmergencyExitWild:: - pause 0x5 + pause 5 call BattleScript_AbilityPopUp - pause 0x40 + pause B_WAIT_TIME_LONG BattleScript_EmergencyExitWildNoPopUp:: playanimation BS_TARGET, B_ANIM_SLIDE_OFFSCREEN, NULL waitanimation @@ -6695,10 +6693,10 @@ BattleScript_EmergencyExitWildNoPopUp:: return BattleScript_TraceActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNTRACED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG settracedability BS_SCRIPTING switchinabilities BS_SCRIPTING return @@ -6710,14 +6708,14 @@ BattleScript_TraceActivatesEnd3:: BattleScript_ReceiverActivates:: call BattleScript_AbilityPopUp printstring STRINGID_RECEIVERABILITYTAKEOVER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG settracedability BS_ABILITY_BATTLER return BattleScript_AbilityHpHeal: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXRESTOREDHPALITTLE2 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER @@ -6735,10 +6733,10 @@ BattleScript_CheekPouchActivates:: return BattleScript_HarvestActivates:: - pause 0x5 + pause 5 call BattleScript_AbilityPopUp printstring STRINGID_HARVESTBERRY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end3 BattleScript_SolarPowerActivates:: @@ -6747,7 +6745,7 @@ BattleScript_SolarPowerActivates:: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_SOLARPOWERHPDROP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL end3 @@ -6756,11 +6754,11 @@ BattleScript_HealerActivates:: curestatus BS_SCRIPTING updatestatusicon BS_SCRIPTING printstring STRINGID_HEALERCURE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end3 BattleScript_SandstreamActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM waitstate @@ -6769,7 +6767,7 @@ BattleScript_SandstreamActivates:: end3 BattleScript_SandSpitActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_ASANDSTORMKICKEDUP waitstate @@ -6780,15 +6778,15 @@ BattleScript_SandSpitActivates:: BattleScript_ShedSkinActivates:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXCUREDYPROBLEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER end3 BattleScript_WeatherFormChanges:: - setbyte sBATTLER, 0x0 + setbyte sBATTLER, 0 BattleScript_WeatherFormChangesLoop:: trycastformdatachange - addbyte sBATTLER, 0x1 + addbyte sBATTLER, 1 jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_WeatherFormChangesLoop return @@ -6802,7 +6800,7 @@ BattleScript_DoCastformChange:: docastformchangeanimation waitstate printstring STRINGID_PKMNTRANSFORMED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_TryAdrenalineOrb: @@ -6815,8 +6813,8 @@ BattleScript_TryAdrenalineOrb: playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 copybyte sBATTLER, gBattlerTarget setlastuseditem BS_TARGET - printstring STRINGID_USINGXTHEYOFZN - waitmessage 0x40 + printstring STRINGID_USINGITEMSTATOFPKMNROSE + waitmessage B_WAIT_TIME_LONG removeitem BS_TARGET BattleScript_TryAdrenalineOrbRet: return @@ -6826,9 +6824,9 @@ BattleScript_IntimidateActivatesEnd3:: end3 BattleScript_PauseIntimidateActivates: - pause 0x20 + pause B_WAIT_TIME_SHORT BattleScript_IntimidateActivates:: - setbyte gBattlerTarget, 0x0 + setbyte gBattlerTarget, 0 call BattleScript_AbilityPopUp BattleScript_IntimidateActivatesLoop: setstatchanger STAT_ATK, 1, TRUE @@ -6844,29 +6842,29 @@ BattleScript_IntimidateActivatesLoop: jumpifability BS_TARGET, ABILITY_OBLIVIOUS, BattleScript_IntimidatePrevented .endif statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | STAT_BUFF_ALLOW_PTR, BattleScript_IntimidateActivatesLoopIncrement - jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_IntimidateActivatesLoopIncrement + jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_IntimidateActivatesLoopIncrement setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printstring STRINGID_PKMNCUTSATTACKWITH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG call BattleScript_TryAdrenalineOrb BattleScript_IntimidateActivatesLoopIncrement: - addbyte gBattlerTarget, 0x1 + addbyte gBattlerTarget, 1 goto BattleScript_IntimidateActivatesLoop BattleScript_IntimidateActivatesReturn: return BattleScript_IntimidatePrevented: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp setbyte gBattleCommunication STAT_ATK stattextbuffer BS_ATTACKER printstring STRINGID_STATWASNOTLOWERED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG call BattleScript_TryAdrenalineOrb goto BattleScript_IntimidateActivatesLoopIncrement BattleScript_DroughtActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXINTENSIFIEDSUN waitstate @@ -6875,7 +6873,7 @@ BattleScript_DroughtActivates:: end3 BattleScript_SnowWarningActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_SNOWWARNINGHAIL waitstate @@ -6884,35 +6882,35 @@ BattleScript_SnowWarningActivates:: end3 BattleScript_ElectricSurgeActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_TERRAINBECOMESELECTRIC - waitstate - playanimation BS_SCRIPTING, B_ANIM_TERRAIN_ELECTRIC, NULL + waitmessage B_WAIT_TIME_LONG + playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG, NULL end3 BattleScript_MistySurgeActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_TERRAINBECOMESMISTY - waitstate - playanimation BS_SCRIPTING, B_ANIM_TERRAIN_MISTY, NULL + waitmessage B_WAIT_TIME_LONG + playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG, NULL end3 BattleScript_GrassySurgeActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_TERRAINBECOMESGRASSY - waitstate - playanimation BS_SCRIPTING, B_ANIM_TERRAIN_GRASSY, NULL + waitmessage B_WAIT_TIME_LONG + playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG, NULL end3 BattleScript_PsychicSurgeActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_TERRAINBECOMESPSYCHIC - waitstate - playanimation BS_SCRIPTING, B_ANIM_TERRAIN_PSYCHIC, NULL + waitmessage B_WAIT_TIME_LONG + playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG, NULL end3 BattleScript_BadDreamsActivates:: @@ -6923,7 +6921,7 @@ BattleScript_BadDreamsLoop: dmg_1_8_targethp orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 printstring STRINGID_BADDREAMSDMG - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifability BS_TARGET, ABILITY_MAGIC_GUARD, BattleScript_BadDreamsIncrement healthbarupdate BS_TARGET datahpupdate BS_TARGET @@ -6937,25 +6935,25 @@ BattleScript_BadDreamsEnd: BattleScript_TookAttack:: attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNSXTOOKATTACK - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED return BattleScript_SturdyPreventsOHKO:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNPROTECTEDBY - pause 0x40 + pause B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_DampStopsExplosion:: - pause 0x20 + pause B_WAIT_TIME_SHORT copybyte gBattlerAbility, gBattlerTarget call BattleScript_AbilityPopUp printstring STRINGID_PKMNPREVENTSUSAGE - pause 0x40 + pause B_WAIT_TIME_LONG moveendto MOVEEND_NEXT_TARGET moveendcase MOVEEND_CLEAR_BITS end @@ -6964,13 +6962,13 @@ BattleScript_MoveHPDrain_PPLoss:: ppreduce BattleScript_MoveHPDrain:: attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNRESTOREDHPUSING - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd @@ -6978,23 +6976,23 @@ BattleScript_MoveStatDrain_PPLoss:: ppreduce BattleScript_MoveStatDrain:: attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 waitanimation printstring STRINGID_TARGETABILITYSTATRAISE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_MonMadeMoveUseless_PPLoss:: ppreduce BattleScript_MonMadeMoveUseless:: attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXMADEYUSELESS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd @@ -7002,144 +7000,139 @@ BattleScript_FlashFireBoost_PPLoss:: ppreduce BattleScript_FlashFireBoost:: attackstring - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printfromtable gFlashFireStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_AbilityPreventsPhasingOut:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNANCHORSITSELFWITH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_AbilityNoStatLoss:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNPREVENTSSTATLOSSWITH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_BRNPrevention:: - pause 0x20 + pause B_WAIT_TIME_SHORT printfromtable gBRNPreventionStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_PRLZPrevention:: - pause 0x20 + pause B_WAIT_TIME_SHORT printfromtable gPRLZPreventionStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_PSNPrevention:: - pause 0x20 + pause B_WAIT_TIME_SHORT printfromtable gPSNPreventionStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_ObliviousPreventsAttraction:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNPREVENTSROMANCEWITH - waitmessage 0x40 - goto BattleScript_MoveEnd - -BattleScript_FlinchPrevention:: - pause 0x20 - call BattleScript_AbilityPopUp - printstring STRINGID_PKMNSXPREVENTSFLINCHING - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_OwnTempoPrevents:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNPREVENTSCONFUSIONWITH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_SoundproofProtected:: attackstring ppreduce - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXBLOCKSY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_DazzlingProtected:: attackstring ppreduce - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_POKEMONCANNOTUSEMOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_MoveUsedPsychicTerrainPrevents:: printstring STRINGID_POKEMONCANNOTUSEMOVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_GrassyTerrainHeals:: setbyte gBattleCommunication, 0 BattleScript_GrassyTerrainLoop: - copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 0x1 + copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1 checkgrassyterrainheal BS_ATTACKER, BattleScript_GrassyTerrainLoopIncrement printstring STRINGID_GRASSYTERRAINHEALS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_GrassyTerrainHpChange: orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER BattleScript_GrassyTerrainLoopIncrement:: - addbyte gBattleCommunication, 0x1 + addbyte gBattleCommunication, 1 jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_GrassyTerrainLoop BattleScript_GrassyTerrainLoopEnd:: bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 - jumpifbyte CMP_EQUAL, gFieldTimers + 5, 0x0, BattleScript_GrassyTerrainEnds + jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_PERMANENT, BattleScript_GrassyTerrainHealEnd + jumpifbyte CMP_EQUAL, gFieldTimers + 5, 0, BattleScript_GrassyTerrainEnds +BattleScript_GrassyTerrainHealEnd: end2 BattleScript_AbilityNoSpecificStatLoss:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXPREVENTSYLOSS - waitmessage 0x40 - setbyte cMULTISTRING_CHOOSER, 0x3 + waitmessage B_WAIT_TIME_LONG + setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY return BattleScript_StickyHoldActivates:: - pause 0x20 + pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXMADEYINEFFECTIVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd BattleScript_ColorChangeActivates:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNCHANGEDTYPEWITH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_ProteanActivates:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNCHANGEDTYPE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_CursedBodyActivates:: call BattleScript_AbilityPopUp printstring STRINGID_CUSEDBODYDISABLED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_MummyActivates:: call BattleScript_AbilityPopUp printstring STRINGID_ATTACKERACQUIREDABILITY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_TargetsStatWasMaxedOut:: @@ -7148,7 +7141,7 @@ BattleScript_TargetsStatWasMaxedOut:: setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printstring STRINGID_TARGETSSTATWASMAXEDOUT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_BattlerAbilityStatRaiseOnSwitchIn:: @@ -7159,7 +7152,7 @@ BattleScript_BattlerAbilityStatRaiseOnSwitchIn:: playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 waitanimation printstring STRINGID_BATTLERABILITYRAISEDSTAT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end3 BattleScript_TargetAbilityStatRaiseOnMoveEnd:: @@ -7169,7 +7162,7 @@ BattleScript_TargetAbilityStatRaiseOnMoveEnd:: playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 waitanimation printstring STRINGID_ABILITYRAISEDSTATDRASTICALLY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_ScriptingAbilityStatRaise:: @@ -7182,7 +7175,7 @@ BattleScript_ScriptingAbilityStatRaise:: playanimation BS_SCRIPTING, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 waitanimation printstring STRINGID_ATTACKERABILITYSTATRAISE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG copybyte gBattlerAttacker, sSAVED_DMG return @@ -7190,34 +7183,44 @@ BattleScript_WeakArmorActivates:: call BattleScript_AbilityPopUp setstatchanger STAT_DEF, 1, TRUE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_WeakArmorActivatesSpeed - jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_WeakArmorDefAnim - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_WeakArmorActivatesSpeed - pause 0x10 + jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_WeakArmorDefAnim + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_WeakArmorActivatesSpeed + pause 16 printfromtable gStatDownStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_WeakArmorActivatesSpeed BattleScript_WeakArmorDefAnim: setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printstring STRINGID_TARGETABILITYSTATLOWER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_WeakArmorActivatesSpeed: setstatchanger STAT_SPEED, 2, FALSE statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_WeakArmorActivatesEnd - jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_WeakArmorSpeedAnim - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_WeakArmorActivatesEnd - pause 0x10 + jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeakArmorSpeedAnim + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_EMPTY, BattleScript_WeakArmorActivatesEnd + pause 16 printstring STRINGID_TARGETSTATWONTGOHIGHER - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_WeakArmorActivatesEnd BattleScript_WeakArmorSpeedAnim: setgraphicalstatchangevalues playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printstring STRINGID_TARGETABILITYSTATRAISE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_WeakArmorActivatesEnd: return +BattleScript_RaiseStatOnFaintingTarget:: + copybyte gBattlerAbility, gBattlerAttacker + call BattleScript_AbilityPopUp + setgraphicalstatchangevalues + playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 + waitanimation + printstring STRINGID_LASTABILITYRAISEDSTAT + waitmessage B_WAIT_TIME_LONG + return + BattleScript_AttackerAbilityStatRaise:: copybyte gBattlerAbility, gBattlerAttacker call BattleScript_AbilityPopUp @@ -7225,16 +7228,16 @@ BattleScript_AttackerAbilityStatRaise:: playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 waitanimation printstring STRINGID_ATTACKERABILITYSTATRAISE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_FellStingerRaisesStat:: statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_FellStingerRaisesAtkEnd - jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_FellStingerRaisesAtkEnd + jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_ROSE, BattleScript_FellStingerRaisesAtkEnd setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_FellStingerRaisesAtkEnd: return @@ -7245,7 +7248,19 @@ BattleScript_AttackerAbilityStatRaiseEnd3:: BattleScript_SwitchInAbilityMsg:: call BattleScript_AbilityPopUp printfromtable gSwitchInAbilityStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG + end3 + +BattleScript_ActivateAsOne:: + call BattleScript_AbilityPopUp + printfromtable gSwitchInAbilityStringIds + waitmessage B_WAIT_TIME_LONG + @ show unnerve + sethword sABILITY_OVERWRITE, ABILITY_UNNERVE + setbyte cMULTISTRING_CHOOSER, B_MSG_SWITCHIN_UNNERVE + call BattleScript_AbilityPopUp + printfromtable gSwitchInAbilityStringIds + waitmessage B_WAIT_TIME_LONG end3 BattleScript_FriskMsgWithPopup:: @@ -7253,7 +7268,7 @@ BattleScript_FriskMsgWithPopup:: call BattleScript_AbilityPopUp BattleScript_FriskMsg:: printstring STRINGID_FRISKACTIVATES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_FriskActivates:: @@ -7266,7 +7281,7 @@ BattleScript_ImposterActivates:: playmoveanimation BS_ATTACKER, MOVE_TRANSFORM waitanimation printstring STRINGID_IMPOSTERTRANSFORM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end3 BattleScript_HurtAttacker: @@ -7274,7 +7289,7 @@ BattleScript_HurtAttacker: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNHURTSWITH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL return @@ -7293,13 +7308,15 @@ BattleScript_RockyHelmetActivatesDmg: return BattleScript_SpikyShieldEffect:: + jumpifabsent BS_ATTACKER, BattleScript_SpikyShieldRet orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNHURTSWITH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL +BattleScript_SpikyShieldRet:: return BattleScript_KingsShieldEffect:: @@ -7323,7 +7340,7 @@ BattleScript_CuteCharmActivates:: call BattleScript_AbilityPopUp status2animation BS_ATTACKER, STATUS2_INFATUATION printstring STRINGID_PKMNSXINFATUATEDY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG call BattleScript_TryDestinyKnotTarget return @@ -7335,9 +7352,9 @@ BattleScript_AbilityStatusEffect:: BattleScript_DancerActivates:: call BattleScript_AbilityPopUp - waitmessage 0x20 - setbyte sB_ANIM_TURN, 0x0 - setbyte sB_ANIM_TARGETS_HIT, 0x0 + waitmessage B_WAIT_TIME_SHORT + setbyte sB_ANIM_TURN, 0 + setbyte sB_ANIM_TARGETS_HIT, 0 orword gHitMarker, HITMARKER_x800000 jumptocalledmove TRUE @@ -7348,47 +7365,59 @@ BattleScript_SynchronizeActivates:: return BattleScript_NoItemSteal:: - pause 0x20 + pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNSXMADEYINEFFECTIVE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG return BattleScript_AbilityCuredStatus:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXCUREDITSYPROBLEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_SCRIPTING return +BattleScript_BattlerShookOffTaunt:: + call BattleScript_AbilityPopUp + printstring STRINGID_PKMNSHOOKOFFTHETAUNT + waitmessage B_WAIT_TIME_LONG + return + +BattleScript_BattlerGotOverItsInfatuation:: + call BattleScript_AbilityPopUp + printstring STRINGID_PKMNGOTOVERITSINFATUATION + waitmessage B_WAIT_TIME_LONG + return + BattleScript_IgnoresWhileAsleep:: printstring STRINGID_PKMNIGNORESASLEEP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG moveendto MOVEEND_NEXT_TARGET end BattleScript_IgnoresAndUsesRandomMove:: printstring STRINGID_PKMNIGNOREDORDERS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumptocalledmove FALSE BattleScript_MoveUsedLoafingAround:: - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_82DB6C7 - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7 - setbyte gBattleCommunication, 0x0 + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_LOAFING, BattleScript_MoveUsedLoafingAroundMsg + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER, BattleScript_MoveUsedLoafingAroundMsg + setbyte gBattleCommunication, 0 various24 BS_ATTACKER - setbyte cMULTISTRING_CHOOSER, 0x4 -BattleScript_82DB6C7:: + setbyte cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER +BattleScript_MoveUsedLoafingAroundMsg:: printfromtable gInobedientStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG moveendto MOVEEND_NEXT_TARGET end BattleScript_TruantLoafingAround:: call BattleScript_AbilityPopUp - goto BattleScript_82DB6C7 + goto BattleScript_MoveUsedLoafingAroundMsg BattleScript_IgnoresAndFallsAsleep:: printstring STRINGID_PKMNBEGANTONAP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER seteffectprimary moveendto MOVEEND_NEXT_TARGET @@ -7396,7 +7425,7 @@ BattleScript_IgnoresAndFallsAsleep:: BattleScript_IgnoresAndHitsItself:: printstring STRINGID_PKMNWONTOBEY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_DoSelfConfusionDmg BattleScript_SubstituteFade:: @@ -7411,7 +7440,7 @@ BattleScript_BerryCurePrlzEnd2:: BattleScript_BerryCureParRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMCUREDPARALYSIS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return @@ -7423,7 +7452,7 @@ BattleScript_BerryCurePsnEnd2:: BattleScript_BerryCurePsnRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMCUREDPOISON - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return @@ -7435,7 +7464,7 @@ BattleScript_BerryCureBrnEnd2:: BattleScript_BerryCureBrnRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMHEALEDBURN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return @@ -7447,7 +7476,7 @@ BattleScript_BerryCureFrzEnd2:: BattleScript_BerryCureFrzRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMDEFROSTEDIT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return @@ -7459,7 +7488,7 @@ BattleScript_BerryCureSlpEnd2:: BattleScript_BerryCureSlpRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMWOKEIT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return @@ -7468,7 +7497,7 @@ BattleScript_GemActivates:: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL waitanimation printstring STRINGID_GEMACTIVATES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG removeitem BS_ATTACKER return @@ -7476,12 +7505,12 @@ BattleScript_BerryReduceDmg:: playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL waitanimation printstring STRINGID_TARGETATEITEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG removeitem BS_TARGET return BattleScript_PrintBerryReduceString:: - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG printstring STRINGID_BERRYDMGREDUCES return @@ -7492,7 +7521,7 @@ BattleScript_BerryCureConfusionEnd2:: BattleScript_BerryCureConfusionRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMSNAPPEDOUT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG removeitem BS_SCRIPTING return @@ -7503,7 +7532,7 @@ BattleScript_BerryCureChosenStatusEnd2:: BattleScript_BerryCureChosenStatusRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printfromtable gBerryEffectStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_SCRIPTING removeitem BS_SCRIPTING return @@ -7515,23 +7544,34 @@ BattleScript_WhiteHerbEnd2:: BattleScript_WhiteHerbRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDSTATUS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG removeitem BS_SCRIPTING return BattleScript_ItemHealHP_RemoveItemRet:: + jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp + goto BattleScript_ItemHealHP_RemoveItemRet_Anim +BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp: + call BattleScript_AbilityPopUp +BattleScript_ItemHealHP_RemoveItemRet_Anim: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDHEALTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING removeitem BS_SCRIPTING return + BattleScript_ItemHealHP_RemoveItemEnd2:: + jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemEnd2_AbilityPopUp + goto BattleScript_ItemHealHP_RemoveItemEnd2_Anim +BattleScript_ItemHealHP_RemoveItemEnd2_AbilityPopUp: + call BattleScript_AbilityPopUp +BattleScript_ItemHealHP_RemoveItemEnd2_Anim: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDHEALTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER @@ -7539,9 +7579,14 @@ BattleScript_ItemHealHP_RemoveItemEnd2:: end2 BattleScript_BerryPPHealEnd2:: + jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_BerryPPHealEnd2_AbilityPopup + goto BattleScript_BerryPPHealEnd2_Anim +BattleScript_BerryPPHealEnd2_AbilityPopup: + call BattleScript_AbilityPopUp +BattleScript_BerryPPHealEnd2_Anim: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDPP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG removeitem BS_ATTACKER end2 @@ -7551,21 +7596,21 @@ BattleScript_ItemHealHP_End2:: BattleScript_AirBaloonMsgIn:: printstring STRINGID_AIRBALLOONFLOAT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end3 BattleScript_AirBaloonMsgPop:: printstring STRINGID_AIRBALLOONPOP - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG removeitem BS_TARGET return BattleScript_ItemHurtRet:: - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_IGNORE_DISGUISE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_HURTBYITEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER, FALSE, NULL return @@ -7578,8 +7623,8 @@ BattleScript_ItemHurtEnd2:: BattleScript_ItemHealHP_Ret:: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE - waitmessage 0x40 - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + waitmessage B_WAIT_TIME_LONG + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER return @@ -7595,39 +7640,82 @@ BattleScript_SelectingNotAllowedMoveAssaultVest:: BattleScript_HangedOnMsg:: playanimation BS_TARGET, B_ANIM_HANGED_ON, NULL printstring STRINGID_PKMNHUNGONWITHX - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifnoholdeffect BS_TARGET, HOLD_EFFECT_FOCUS_SASH, BattleScript_HangedOnMsgRet removeitem BS_TARGET BattleScript_HangedOnMsgRet: return BattleScript_BerryConfuseHealEnd2:: + jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_BerryConfuseHealEnd2_AbilityPopup + goto BattleScript_BerryConfuseHealEnd2_Anim +BattleScript_BerryConfuseHealEnd2_AbilityPopup: + call BattleScript_AbilityPopUp +BattleScript_BerryConfuseHealEnd2_Anim: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNSITEMRESTOREDHEALTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_FORXCOMMAYZ - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER seteffectprimary removeitem BS_ATTACKER end2 +BattleScript_BerryConfuseHealRet:: + jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryConfuseHealRet_AbilityPopup + goto BattleScript_BerryConfuseHealRet_Anim +BattleScript_BerryConfuseHealRet_AbilityPopup: + call BattleScript_AbilityPopUp +BattleScript_BerryConfuseHealRet_Anim: + playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage B_WAIT_TIME_LONG + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate BS_SCRIPTING + datahpupdate BS_SCRIPTING + printstring STRINGID_FORXCOMMAYZ + waitmessage B_WAIT_TIME_LONG + setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER + seteffectprimary + removeitem BS_SCRIPTING + return + BattleScript_BerryStatRaiseEnd2:: + jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_BerryStatRaiseEnd2_AbilityPopup + goto BattleScript_BerryStatRaiseEnd2_Anim +BattleScript_BerryStatRaiseEnd2_AbilityPopup: + call BattleScript_AbilityPopUp +BattleScript_BerryStatRaiseEnd2_Anim: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL - statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_82DB85B -BattleScript_82DB85B:: - setbyte cMULTISTRING_CHOOSER, 0x4 + statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BerryStatRaiseDoStatUp +BattleScript_BerryStatRaiseDoStatUp:: + setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM call BattleScript_StatUp removeitem BS_ATTACKER end2 +BattleScript_BerryStatRaiseRet:: + jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryStatRaiseRet_AbilityPopup + goto BattleScript_BerryStatRaiseRet_Anim +BattleScript_BerryStatRaiseRet_AbilityPopup: + call BattleScript_AbilityPopUp +BattleScript_BerryStatRaiseRet_Anim: + playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL + statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_BerryStatRaiseRet_End +BattleScript_BerryStatRaiseRet_End: + setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM + call BattleScript_StatUp + removeitem BS_SCRIPTING + return + BattleScript_BerryFocusEnergyEnd2:: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL printstring STRINGID_PKMNUSEDXTOGETPUMPED - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG removeitem BS_ATTACKER end2 @@ -7645,7 +7733,7 @@ BattleScript_PalaceTryBattlerFlavorText:: palaceflavortext BS_ATTACKER @ BS_ATTACKER here overwritten by gBattleCommunication + 1 jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, TRUE, BattleScript_PalaceEndFlavorText printfromtable gBattlePalaceFlavorTextTable - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG BattleScript_PalaceEndFlavorText:: addbyte gBattleCommunication + 1, 1 jumpifbytenotequal gBattleCommunication + 1, gBattlersCount, BattleScript_PalaceTryBattlerFlavorText @@ -7657,22 +7745,23 @@ BattleScript_ArenaTurnBeginning:: waitcry BS_ATTACKER volumedown playse SE_ARENA_TIMEUP1 - pause 0x8 + pause 8 playse SE_ARENA_TIMEUP1 various14 BS_ATTACKER - arenajudmengtstring 8 - arenawaitmessage 8 - pause 0x40 + arenajudgmentstring B_MSG_REF_COMMENCE_BATTLE + arenawaitmessage B_MSG_REF_COMMENCE_BATTLE + pause B_WAIT_TIME_LONG various15 BS_ATTACKER volumeup end2 -BattleScript_82DB8E0:: @ Unused battlescript +@ Unused +BattleScript_ArenaNothingDecided:: playse SE_DING_DONG various14 BS_ATTACKER - arenajudmengtstring BS_TARGET - arenawaitmessage BS_TARGET - pause 0x40 + arenajudgmentstring B_MSG_REF_NOTHING_IS_DECIDED + arenawaitmessage B_MSG_REF_NOTHING_IS_DECIDED + pause B_WAIT_TIME_LONG various15 BS_ATTACKER end2 @@ -7683,34 +7772,34 @@ BattleScript_ArenaDoJudgment:: waitstate volumedown playse SE_ARENA_TIMEUP1 - pause 0x8 + pause 8 playse SE_ARENA_TIMEUP1 - pause 0x40 + pause B_WAIT_TIME_LONG various14 BS_ATTACKER - arenajudmengtstring 1 - arenawaitmessage 1 - pause 0x40 - setbyte gBattleCommunication, 0x0 + arenajudgmentstring B_MSG_REF_THATS_IT + arenawaitmessage B_MSG_REF_THATS_IT + pause B_WAIT_TIME_LONG + setbyte gBattleCommunication, 0 arenajudgmentwindow - pause 0x40 + pause B_WAIT_TIME_LONG arenajudgmentwindow - arenajudmengtstring 2 - arenawaitmessage 2 + arenajudgmentstring B_MSG_REF_JUDGE_MIND + arenawaitmessage B_MSG_REF_JUDGE_MIND arenajudgmentwindow - arenajudmengtstring 3 - arenawaitmessage 3 + arenajudgmentstring B_MSG_REF_JUDGE_SKILL + arenawaitmessage B_MSG_REF_JUDGE_SKILL arenajudgmentwindow - arenajudmengtstring 4 - arenawaitmessage 4 + arenajudgmentstring B_MSG_REF_JUDGE_BODY + arenawaitmessage B_MSG_REF_JUDGE_BODY arenajudgmentwindow - jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x3, BattleScript_ArenaJudgmentPlayerLoses - jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0x4, BattleScript_ArenaJudgmentDraw - arenajudmengtstring 5 - arenawaitmessage 5 + jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 3, BattleScript_ArenaJudgmentPlayerLoses + jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 4, BattleScript_ArenaJudgmentDraw + arenajudgmentstring B_MSG_REF_PLAYER_WON + arenawaitmessage B_MSG_REF_PLAYER_WON arenajudgmentwindow various15 BS_ATTACKER printstring STRINGID_DEFEATEDOPPONENTBYREFEREE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playfaintcry BS_OPPONENT1 waitcry BS_ATTACKER dofaintanimation BS_OPPONENT1 @@ -7719,12 +7808,12 @@ BattleScript_ArenaDoJudgment:: end2 BattleScript_ArenaJudgmentPlayerLoses: - arenajudmengtstring 6 - arenawaitmessage 6 + arenajudgmentstring B_MSG_REF_OPPONENT_WON + arenawaitmessage B_MSG_REF_OPPONENT_WON arenajudgmentwindow various15 BS_ATTACKER printstring STRINGID_LOSTTOOPPONENTBYREFEREE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playfaintcry BS_PLAYER1 waitcry BS_ATTACKER dofaintanimation BS_PLAYER1 @@ -7733,12 +7822,12 @@ BattleScript_ArenaJudgmentPlayerLoses: end2 BattleScript_ArenaJudgmentDraw: - arenajudmengtstring 7 - arenawaitmessage 7 + arenajudgmentstring B_MSG_REF_DRAW + arenawaitmessage B_MSG_REF_DRAW arenajudgmentwindow various15 BS_ATTACKER printstring STRINGID_TIEDOPPONENTBYREFEREE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playfaintcry BS_PLAYER1 waitcry BS_ATTACKER dofaintanimation BS_PLAYER1 @@ -7757,20 +7846,20 @@ BattleScript_AskIfWantsToForfeitMatch:: BattleScript_PrintPlayerForfeited:: printstring STRINGID_FORFEITEDMATCH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_PrintPlayerForfeitedLinkBattle:: printstring STRINGID_FORFEITEDMATCH - waitmessage 0x40 - atk57 - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG + endlinkbattle + waitmessage B_WAIT_TIME_LONG end2 BattleScript_TotemFlaredToLife:: playanimation BS_ATTACKER, B_ANIM_TOTEM_FLARE, NULL printstring STRINGID_AURAFLAREDTOLIFE - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_ApplyTotemVarBoost BattleScript_TotemVar:: @@ -7783,16 +7872,97 @@ BattleScript_ApplyTotemVarBoost: playanimation BS_SCRIPTING, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 BattleScript_TotemVarPrintStatMsg: printfromtable gStatUpStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_TotemVar @loop until stats bitfield is empty BattleScript_AnnounceAirLockCloudNine:: call BattleScript_AbilityPopUp printstring STRINGID_AIRLOCKACTIVATES - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG call BattleScript_WeatherFormChanges end3 - + +BattleScript_QuickClawActivation:: + printstring STRINGID_EMPTYSTRING3 + waitmessage 1 + playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL + waitanimation + printstring STRINGID_CANACTFASTERTHANKSTO + waitmessage B_WAIT_TIME_LONG + end2 + +BattleScript_CustapBerryActivation:: + printstring STRINGID_EMPTYSTRING3 + waitmessage 1 + playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL + waitanimation + printstring STRINGID_CANACTFASTERTHANKSTO + waitmessage B_WAIT_TIME_LONG + removeitem BS_ATTACKER + end2 + +BattleScript_MicleBerryActivateEnd2:: + jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_MicleBerryActivateEnd2_Ripen + goto BattleScript_MicleBerryActivateEnd2_Anim +BattleScript_MicleBerryActivateEnd2_Ripen: + call BattleScript_AbilityPopUp +BattleScript_MicleBerryActivateEnd2_Anim: + playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, NULL + printstring STRINGID_MICLEBERRYACTIVATES + waitmessage B_WAIT_TIME_LONG + removeitem BS_ATTACKER + end2 + +BattleScript_MicleBerryActivateRet:: + jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_MicleBerryActivateRet_Ripen + goto BattleScript_MicleBerryActivateRet_Anim +BattleScript_MicleBerryActivateRet_Ripen: + call BattleScript_AbilityPopUp +BattleScript_MicleBerryActivateRet_Anim: + playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, NULL + printstring STRINGID_MICLEBERRYACTIVATES + waitmessage B_WAIT_TIME_LONG + removeitem BS_SCRIPTING + return + +BattleScript_JabocaRowapBerryActivates:: + jumpifability BS_TARGET, ABILITY_RIPEN, BattleScript_JabocaRowapBerryActivate_Ripen + goto BattleScript_JabocaRowapBerryActivate_Anim +BattleScript_JabocaRowapBerryActivate_Ripen: + call BattleScript_AbilityPopUp +BattleScript_JabocaRowapBerryActivate_Anim: + jumpifabsent BS_TARGET, BattleScript_JabocaRowapBerryActivate_Dmg @ dont play the animation for a fainted target + playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT, NULL + waitanimation +BattleScript_JabocaRowapBerryActivate_Dmg: + call BattleScript_HurtAttacker + removeitem BS_TARGET + return + +BattleScript_Pickpocket:: + call BattleScript_AbilityPopUp + jumpifability BS_ATTACKER, ABILITY_STICKY_HOLD, BattleScript_PickpocketPrevented + swapattackerwithtarget + call BattleScript_ItemSteal + swapattackerwithtarget + activateitemeffects BS_TARGET + return + +BattleScript_PickpocketPrevented: + pause B_WAIT_TIME_SHORT + copybyte gBattlerAbility, gBattlerAttacker + call BattleScript_AbilityPopUp + printstring STRINGID_ITEMCANNOTBEREMOVED + waitmessage B_WAIT_TIME_LONG + return + +BattleScript_StickyBarbTransfer:: + playanimation BS_TARGET, B_ANIM_ITEM_STEAL, NULL + printstring STRINGID_STICKYBARBTRANSFER + waitmessage B_WAIT_TIME_LONG + removeitem BS_TARGET + return + BattleScript_DarkTypePreventsPrankster:: attackstring ppreduce @@ -7801,3 +7971,4 @@ BattleScript_DarkTypePreventsPrankster:: waitmessage 0x40 orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT goto BattleScript_MoveEnd + diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 88c81928db..a5f54f634d 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -13,7 +13,7 @@ .section script_data, "aw", %progbits .align 2 -gBattlescriptsForBallThrow:: @ 82DBD08 +gBattlescriptsForBallThrow:: .4byte BattleScript_BallThrow @ ITEM_NONE .4byte BattleScript_BallThrow @ ITEM_MASTER_BALL .4byte BattleScript_BallThrow @ ITEM_ULTRA_BALL @@ -29,20 +29,20 @@ gBattlescriptsForBallThrow:: @ 82DBD08 .4byte BattleScript_BallThrow @ ITEM_PREMIER_BALL .align 2 -gBattlescriptsForUsingItem:: @ 82DBD3C +gBattlescriptsForUsingItem:: .4byte BattleScript_PlayerUsesItem .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_FULL_RESTORE .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP .4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION .4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT - .4byte BattleScript_OpponentUsesGuardSpecs @ AI_ITEM_GUARD_SPECS + .4byte BattleScript_OpponentUsesGuardSpec @ AI_ITEM_GUARD_SPEC .align 2 -gBattlescriptsForRunningByItem:: @ 82DBD54 +gBattlescriptsForRunningByItem:: .4byte BattleScript_RunByUsingItem .align 2 -gBattlescriptsForSafariActions:: @ 82DBD58 +gBattlescriptsForSafariActions:: .4byte BattleScript_ActionWatchesCarefully .4byte BattleScript_ActionGetNear .4byte BattleScript_ActionThrowPokeblock @@ -69,23 +69,23 @@ BattleScript_SuccessBallThrow:: BattleScript_PrintCaughtMonInfo:: printstring STRINGID_GOTCHAPKMNCAUGHT jumpifbyte CMP_NOT_EQUAL, sEXP_CATCH, TRUE, BattleScript_TryPrintCaughtMonInfo - setbyte sGIVEEXP_STATE, 0x0 + setbyte sGIVEEXP_STATE, 0 getexp BS_TARGET - sethword gBattle_BG2_X, 0x0 + sethword gBattle_BG2_X, 0 BattleScript_TryPrintCaughtMonInfo: trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon printstring STRINGID_PKMNDATAADDEDTODEX waitstate - setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication, 0 displaydexinfo BattleScript_TryNicknameCaughtMon:: printstring STRINGID_GIVENICKNAMECAPTURED waitstate - setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication, 0 trygivecaughtmonnick BattleScript_GiveCaughtMonEnd givecaughtmon printfromtable gCaughtMonStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG goto BattleScript_SuccessBallThrowEnd BattleScript_GiveCaughtMonEnd:: givecaughtmon @@ -100,84 +100,79 @@ BattleScript_WallyBallThrow:: BattleScript_ShakeBallThrow:: printfromtable gBallEscapeStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd - jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_ShakeBallThrowEnd + jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0, BattleScript_ShakeBallThrowEnd printstring STRINGID_OUTOFSAFARIBALLS - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS BattleScript_ShakeBallThrowEnd:: finishaction BattleScript_TrainerBallBlock:: - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG printstring STRINGID_TRAINERBLOCKEDBALL - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG printstring STRINGID_DONTBEATHIEF - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG finishaction BattleScript_PlayerUsesItem:: - setbyte sMOVEEND_STATE, 0xF - moveend 0x1, 0x0 + moveendcase MOVEEND_MIRROR_MOVE end BattleScript_OpponentUsesHealItem:: printstring STRINGID_EMPTYSTRING3 - pause 0x30 + pause B_WAIT_TIME_MED playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT useitemonopponent orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNSITEMRESTOREDHEALTH - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER - setbyte sMOVEEND_STATE, 0xF - moveend 0x1, 0x0 + moveendcase MOVEEND_MIRROR_MOVE finishaction BattleScript_OpponentUsesStatusCureItem:: printstring STRINGID_EMPTYSTRING3 - pause 0x30 + pause B_WAIT_TIME_MED playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG useitemonopponent printfromtable gTrainerItemCuredStatusStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER - setbyte sMOVEEND_STATE, 0xF - moveend 0x1, 0x0 + moveendcase MOVEEND_MIRROR_MOVE finishaction BattleScript_OpponentUsesXItem:: printstring STRINGID_EMPTYSTRING3 - pause 0x30 + pause B_WAIT_TIME_MED playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG useitemonopponent printfromtable gStatUpStringIds - waitmessage 0x40 - setbyte sMOVEEND_STATE, 0xF - moveend 0x1, 0x0 + waitmessage B_WAIT_TIME_LONG + moveendcase MOVEEND_MIRROR_MOVE finishaction -BattleScript_OpponentUsesGuardSpecs:: +BattleScript_OpponentUsesGuardSpec:: printstring STRINGID_EMPTYSTRING3 - pause 0x30 + pause B_WAIT_TIME_MED playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG useitemonopponent printfromtable gMistUsedStringIds - waitmessage 0x40 - setbyte sMOVEEND_STATE, 0xF - moveend 0x1, 0x0 + waitmessage B_WAIT_TIME_LONG + moveendcase MOVEEND_MIRROR_MOVE finishaction BattleScript_RunByUsingItem:: @@ -187,33 +182,33 @@ BattleScript_RunByUsingItem:: BattleScript_ActionWatchesCarefully: printstring STRINGID_PKMNWATCHINGCAREFULLY - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_ActionGetNear: printfromtable gSafariGetNearStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_ActionThrowPokeblock: printstring STRINGID_THREWPOKEBLOCKATPKMN - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW, NULL printfromtable gSafariPokeblockResultStringIds - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 BattleScript_ActionWallyThrow: printstring STRINGID_RETURNMON - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG returnatktoball waitstate trainerslidein BS_TARGET waitstate printstring STRINGID_YOUTHROWABALLNOWRIGHT - waitmessage 0x40 + waitmessage B_WAIT_TIME_LONG end2 - + BattleScript_TrainerSlideMsgRet:: handletrainerslidemsg BS_SCRIPTING, 0 trainerslidein 1 @@ -223,7 +218,7 @@ BattleScript_TrainerSlideMsgRet:: handletrainerslidemsg BS_SCRIPTING, 2 waitstate return - + BattleScript_TrainerSlideMsgEnd2:: call BattleScript_TrainerSlideMsgRet end2 diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index e47ccb4c8b..f0972264f0 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -13,7 +13,7 @@ enum MON_4 .align 2 -gContestAI_ScriptsTable:: @ 82DE350 +gContestAI_ScriptsTable:: .4byte AI_CheckBadMove @ CONTEST_AI_CHECK_BAD_MOVE .4byte AI_CheckCombo @ CONTEST_AI_CHECK_COMBO .4byte AI_CheckBoring @ CONTEST_AI_CHECK_BORING diff --git a/data/event_scripts.s b/data/event_scripts.s index 8039be6876..87a3735a30 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -2,6 +2,7 @@ #include "constants/apprentice.h" #include "constants/battle.h" #include "constants/battle_arena.h" +#include "constants/battle_config.h" #include "constants/battle_dome.h" #include "constants/battle_factory.h" #include "constants/battle_frontier.h" @@ -61,7 +62,7 @@ @ 81DB67C .include "data/script_cmd_table.inc" -gSpecialVars:: @ 81DBA0C +gSpecialVars:: .4byte gSpecialVar_0x8000 .4byte gSpecialVar_0x8001 .4byte gSpecialVar_0x8002 @@ -87,7 +88,7 @@ gSpecialVars:: @ 81DBA0C .include "data/specials.inc" -gStdScripts:: @ 81DC2A0 +gStdScripts:: .4byte Std_ObtainItem @ STD_OBTAIN_ITEM .4byte Std_FindItem @ STD_FIND_ITEM .4byte Std_MsgboxNPC @ MSGBOX_NPC @@ -99,7 +100,7 @@ gStdScripts:: @ 81DC2A0 .4byte Std_RegisteredInMatchCall @ STD_REGISTER_MATCH_CALL .4byte Std_MsgboxGetPoints @ MSGBOX_GETPOINTS .4byte Std_10 -gStdScripts_End:: @ 81DC2CC +gStdScripts_End:: .include "data/maps/PetalburgCity/scripts.inc" .include "data/maps/SlateportCity/scripts.inc" @@ -576,12 +577,12 @@ gStdScripts_End:: @ 81DC2CC .include "data/scripts/new_game.inc" .include "data/scripts/hall_of_fame.inc" -EventScript_WhiteOut:: @ 8271857 +EventScript_WhiteOut:: call EverGrandeCity_HallOfFame_EventScript_ResetEliteFour goto EventScript_ResetMrBriney end -EventScript_ResetMrBriney:: @ 8271862 +EventScript_ResetMrBriney:: compare VAR_BRINEY_LOCATION, 1 goto_if_eq EventScript_MoveMrBrineyToHouse compare VAR_BRINEY_LOCATION, 2 @@ -590,7 +591,7 @@ EventScript_ResetMrBriney:: @ 8271862 goto_if_eq EventScript_MoveMrBrineyToRoute109 end -EventScript_MoveMrBrineyToHouse:: @ 8271884 +EventScript_MoveMrBrineyToHouse:: setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN setflag FLAG_HIDE_ROUTE_109_MR_BRINEY @@ -600,7 +601,7 @@ EventScript_MoveMrBrineyToHouse:: @ 8271884 clearflag FLAG_HIDE_BRINEYS_HOUSE_PEEKO end -EventScript_MoveMrBrineyToDewford:: @ 827189A +EventScript_MoveMrBrineyToDewford:: setflag FLAG_HIDE_ROUTE_109_MR_BRINEY setflag FLAG_HIDE_ROUTE_109_MR_BRINEY_BOAT setflag FLAG_HIDE_ROUTE_104_MR_BRINEY @@ -611,7 +612,7 @@ EventScript_MoveMrBrineyToDewford:: @ 827189A clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN end -EventScript_MoveMrBrineyToRoute109:: @ 82718B3 +EventScript_MoveMrBrineyToRoute109:: setflag FLAG_HIDE_ROUTE_104_MR_BRINEY setflag FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT setflag FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY @@ -622,7 +623,7 @@ EventScript_MoveMrBrineyToRoute109:: @ 82718B3 clearflag FLAG_HIDE_ROUTE_109_MR_BRINEY_BOAT end -EverGrandeCity_HallOfFame_EventScript_ResetEliteFour:: @ 82718CC +EverGrandeCity_HallOfFame_EventScript_ResetEliteFour:: clearflag FLAG_DEFEATED_ELITE_4_SIDNEY clearflag FLAG_DEFEATED_ELITE_4_PHOEBE clearflag FLAG_DEFEATED_ELITE_4_GLACIA @@ -630,7 +631,7 @@ EverGrandeCity_HallOfFame_EventScript_ResetEliteFour:: @ 82718CC setvar VAR_ELITE_4_STATE, 0 return -Common_EventScript_UpdateBrineyLocation:: @ 82718DE +Common_EventScript_UpdateBrineyLocation:: goto_if_unset FLAG_RECEIVED_POKENAV, Common_EventScript_NopReturn goto_if_set FLAG_DEFEATED_PETALBURG_GYM, Common_EventScript_NopReturn goto_if_unset FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT, EventScript_SetBrineyLocation_House @@ -638,15 +639,15 @@ Common_EventScript_UpdateBrineyLocation:: @ 82718DE goto_if_unset FLAG_HIDE_ROUTE_109_MR_BRINEY, EventScript_SetBrineyLocation_Route109 return -EventScript_SetBrineyLocation_House:: @ 827190C +EventScript_SetBrineyLocation_House:: setvar VAR_BRINEY_LOCATION, 1 return -EventScript_SetBrineyLocation_Dewford:: @ 8271912 +EventScript_SetBrineyLocation_Dewford:: setvar VAR_BRINEY_LOCATION, 2 return -EventScript_SetBrineyLocation_Route109:: @ 8271918 +EventScript_SetBrineyLocation_Route109:: setvar VAR_BRINEY_LOCATION, 3 return @@ -656,32 +657,32 @@ EventScript_SetBrineyLocation_Route109:: @ 8271918 .include "data/scripts/pc.inc" @ scripts/notices.inc? signs.inc? See comment about text/notices.inc -Common_EventScript_ShowPokemartSign:: @ 8271E6A +Common_EventScript_ShowPokemartSign:: msgbox gText_PokemartSign, MSGBOX_SIGN end -Common_EventScript_ShowPokemonCenterSign:: @ 8271E73 +Common_EventScript_ShowPokemonCenterSign:: msgbox gText_PokemonCenterSign, MSGBOX_SIGN end -Common_ShowEasyChatScreen:: @ 8271E7C +Common_ShowEasyChatScreen:: fadescreen FADE_TO_BLACK special ShowEasyChatScreen fadescreen FADE_FROM_BLACK return -Common_EventScript_ReadyPetalburgGymForBattle:: @ 8271E84 +Common_EventScript_ReadyPetalburgGymForBattle:: clearflag FLAG_HIDE_PETALBURG_GYM_GREETER setflag FLAG_PETALBURG_MART_EXPANDED_ITEMS return -Common_EventScript_BufferTrendyPhrase:: @ 8271E8B +Common_EventScript_BufferTrendyPhrase:: dotimebasedevents setvar VAR_0x8004, 0 special BufferTrendyPhraseString return -EventScript_BackupMrBrineyLocation:: @ 8271E95 +EventScript_BackupMrBrineyLocation:: copyvar VAR_0x8008, VAR_BRINEY_LOCATION setvar VAR_BRINEY_LOCATION, 0 return @@ -690,34 +691,34 @@ EventScript_BackupMrBrineyLocation:: @ 8271E95 .include "data/scripts/rival_graphics.inc" .include "data/scripts/set_gym_trainers.inc" -Common_EventScript_ShowBagIsFull:: @ 8272054 +Common_EventScript_ShowBagIsFull:: msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT release end -Common_EventScript_BagIsFull:: @ 827205E +Common_EventScript_BagIsFull:: msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT return -Common_EventScript_ShowNoRoomForDecor:: @ 8272067 +Common_EventScript_ShowNoRoomForDecor:: msgbox gText_NoRoomLeftForAnother, MSGBOX_DEFAULT release end -Common_EventScript_NoRoomForDecor:: @ 8272071 +Common_EventScript_NoRoomForDecor:: msgbox gText_NoRoomLeftForAnother, MSGBOX_DEFAULT return -Common_EventScript_SetAbnormalWeather:: @ 827207A +Common_EventScript_SetAbnormalWeather:: setweather WEATHER_ABNORMAL return -Common_EventScript_PlayGymBadgeFanfare:: @ 827207E +Common_EventScript_PlayGymBadgeFanfare:: playfanfare MUS_OBTAIN_BADGE waitfanfare return -Common_EventScript_OutOfCenterPartyHeal:: @ 8272083 +Common_EventScript_OutOfCenterPartyHeal:: fadescreen FADE_TO_BLACK playfanfare MUS_HEAL waitfanfare @@ -725,7 +726,7 @@ Common_EventScript_OutOfCenterPartyHeal:: @ 8272083 fadescreen FADE_FROM_BLACK return -EventScript_RegionMap:: @ 827208F +EventScript_RegionMap:: lockall msgbox Common_Text_LookCloserAtMap, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -734,12 +735,12 @@ EventScript_RegionMap:: @ 827208F releaseall end -Common_EventScript_PlayBrineysBoatMusic:: @ 82720A0 +Common_EventScript_PlayBrineysBoatMusic:: setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_SAILING, 0 + playbgm MUS_SAILING, FALSE return -Common_EventScript_StopBrineysBoatMusic:: @ 82720A8 +Common_EventScript_StopBrineysBoatMusic:: clearflag FLAG_DONT_TRANSITION_MUSIC fadedefaultbgm return @@ -747,13 +748,13 @@ Common_EventScript_StopBrineysBoatMusic:: @ 82720A8 .include "data/scripts/prof_birch.inc" @ Below could be split as ferry.inc aside from the Rusturf tunnel script -Common_EventScript_FerryDepart:: @ 82721E2 +Common_EventScript_FerryDepart:: delay 60 applymovement VAR_0x8004, Movement_FerryDepart waitmovement 0 return -Movement_FerryDepart: @ 82721F0 +Movement_FerryDepart: walk_slow_right walk_slow_right walk_slow_right @@ -763,7 +764,7 @@ Movement_FerryDepart: @ 82721F0 walk_right step_end -EventScript_HideMrBriney:: @ 82721F8 +EventScript_HideMrBriney:: setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN setflag FLAG_HIDE_ROUTE_109_MR_BRINEY @@ -775,7 +776,7 @@ EventScript_HideMrBriney:: @ 82721F8 setvar VAR_BRINEY_LOCATION, 0 return -RusturfTunnel_EventScript_SetRusturfTunnelOpen:: @ 8272216 +RusturfTunnel_EventScript_SetRusturfTunnelOpen:: removeobject LOCALID_WANDAS_BF removeobject LOCALID_WANDA clearflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDAS_BOYFRIEND @@ -784,7 +785,7 @@ RusturfTunnel_EventScript_SetRusturfTunnelOpen:: @ 8272216 setflag FLAG_RUSTURF_TUNNEL_OPENED return -EventScript_UnusedBoardFerry:: @ 827222B +EventScript_UnusedBoardFerry:: delay 30 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 @@ -795,11 +796,11 @@ EventScript_UnusedBoardFerry:: @ 827222B delay 30 return -Movement_UnusedBoardFerry: @ 827224E +Movement_UnusedBoardFerry: walk_up step_end -Common_EventScript_FerryDepartIsland:: @ 8272250 +Common_EventScript_FerryDepartIsland:: compare VAR_FACING, DIR_SOUTH call_if_eq Ferry_EventScript_DepartIslandSouth compare VAR_FACING, DIR_WEST @@ -812,13 +813,13 @@ Common_EventScript_FerryDepartIsland:: @ 8272250 .include "data/scripts/cave_of_origin.inc" .include "data/scripts/kecleon.inc" -Common_EventScript_NameReceivedPartyMon:: @ 82723DD +Common_EventScript_NameReceivedPartyMon:: fadescreen FADE_TO_BLACK special ChangePokemonNickname waitstate return -Common_EventScript_PlayerHandedOverTheItem:: @ 82723E4 +Common_EventScript_PlayerHandedOverTheItem:: bufferitemname 0, VAR_0x8004 playfanfare MUS_OBTAIN_TMHM message gText_PlayerHandedOverTheItem @@ -837,32 +838,32 @@ Common_EventScript_PlayerHandedOverTheItem:: @ 82723E4 .include "data/text/obtain_item.inc" @ The below and surf.inc could be split into some text/notices.inc -gText_PokemartSign:: @ 8272B6A +gText_PokemartSign:: .string "“Selected items for your convenience!”\n" .string "POKéMON MART$" -gText_PokemonCenterSign:: @ 8272B9E +gText_PokemonCenterSign:: .string "“Rejuvenate your tired partners!”\n" .string "POKéMON CENTER$" -gText_MomOrDadMightLikeThisProgram:: @ 8272BCF +gText_MomOrDadMightLikeThisProgram:: .string "{STR_VAR_1} might like this program.\n" .string "… … … … … … … … … … … … … … … …\p" .string "Better get going!$" -gText_WhichFloorWouldYouLike:: @ 8272C1D +gText_WhichFloorWouldYouLike:: .string "Welcome to LILYCOVE DEPARTMENT STORE.\p" .string "Which floor would you like?$" -gText_SandstormIsVicious:: @ 8272C5F +gText_SandstormIsVicious:: .string "The sandstorm is vicious.\n" .string "It's impossible to keep going.$" -gText_SelectWithoutRegisteredItem:: @ 8272C98 +gText_SelectWithoutRegisteredItem:: .string "An item in the BAG can be\n" .string "registered to SELECT for easy use.$" -gText_PokemonTrainerSchoolEmail:: @ 8272CD5 +gText_PokemonTrainerSchoolEmail:: .string "There's an e-mail from POKéMON TRAINER\n" .string "SCHOOL.\p" .string "… … … … … …\p" @@ -871,25 +872,25 @@ gText_PokemonTrainerSchoolEmail:: @ 8272CD5 .string "move sets chosen for POKéMON.\p" .string "… … … … … …$" -gText_PlayerHouseBootPC:: @ 8272D87 +gText_PlayerHouseBootPC:: .string "{PLAYER} booted up the PC.$" -gText_PokeblockLinkCanceled:: @ 8272D9C +gText_PokeblockLinkCanceled:: .string "The link was canceled.$" -gText_UnusedNicknameReceivedPokemon:: @ 8272DB3 +gText_UnusedNicknameReceivedPokemon:: .string "Want to give a nickname to\n" .string "the {STR_VAR_2} you received?$" -gText_PlayerWhitedOut:: @ 8272DE3 +gText_PlayerWhitedOut:: .string "{PLAYER} is out of usable\n" .string "POKéMON!\p{PLAYER} whited out!$" -gText_RegisteredTrainerinPokeNav:: @ 8272E0F +gText_RegisteredTrainerinPokeNav:: .string "Registered {STR_VAR_1} {STR_VAR_2}\n" .string "in the POKéNAV.$" -gText_ComeBackWithSecretPower:: @ 8272E30 +gText_ComeBackWithSecretPower:: .string "Do you know the TM SECRET POWER?\p" .string "Our group, we love the TM SECRET\n" .string "POWER.\p" @@ -898,7 +899,7 @@ gText_ComeBackWithSecretPower:: @ 8272E30 .string "We'll accept you as a member and sell\n" .string "you good stuff in secrecy.$" -gText_PokerusExplanation:: @ 8272F07 +gText_PokerusExplanation:: .string "Your POKéMON may be infected with\n" .string "POKéRUS.\p" .string "Little is known about the POKéRUS\n" @@ -909,94 +910,94 @@ gText_PokerusExplanation:: @ 8272F07 .include "data/text/surf.inc" -gText_DoorOpenedFarAway:: @ 827301B +gText_DoorOpenedFarAway:: .string "It sounded as if a door opened\n" .string "somewhere far away.$" -gText_BigHoleInTheWall:: @ 827304E +gText_BigHoleInTheWall:: .string "There is a big hole in the wall.$" -gText_SorryWirelessClubAdjustments:: @ 827306F +gText_SorryWirelessClubAdjustments:: .string "I'm terribly sorry.\n" .string "The POKéMON WIRELESS CLUB is\l" .string "undergoing adjustments now.$" -gText_UndergoingAdjustments:: @ 82730BC +gText_UndergoingAdjustments:: .string "It appears to be undergoing\n" .string "adjustments…$" @ Unused -gText_SorryTradeCenterInspections:: @ 82730E5 +gText_SorryTradeCenterInspections:: .string "I'm terribly sorry. The TRADE CENTER\n" .string "is undergoing inspections.$" @ Unused -gText_SorryRecordCornerPreparation:: @ 8273125 +gText_SorryRecordCornerPreparation:: .string "I'm terribly sorry. The RECORD CORNER\n" .string "is under preparation.$" -gText_PlayerHandedOverTheItem:: @ 8273161 +gText_PlayerHandedOverTheItem:: .string "{PLAYER} handed over the\n" .string "{STR_VAR_1}.$" -gText_ThankYouForAccessingMysteryGift:: @ 8273178 +gText_ThankYouForAccessingMysteryGift:: .string "Thank you for accessing the\n" .string "MYSTERY GIFT System.$" -gText_PlayerFoundOneTMHM:: @ 82731A9 +gText_PlayerFoundOneTMHM:: .string "{PLAYER} found one {STR_VAR_1}\n" .string "{STR_VAR_2}!$" -gText_Sudowoodo_Attacked:: @ 82731BD +gText_Sudowoodo_Attacked:: .string "The weird tree doesn't like the\n" .string "WAILMER PAIL!\p" .string "The weird tree attacked!$" -gText_LegendaryFlewAway:: @ 8273204 +gText_LegendaryFlewAway:: .string "The {STR_VAR_1} flew away!$" .include "data/text/pc_transfer.inc" .include "data/text/mevent.inc" .include "data/text/abnormal_weather.inc" -EventScript_SelectWithoutRegisteredItem:: @ 82736B3 +EventScript_SelectWithoutRegisteredItem:: msgbox gText_SelectWithoutRegisteredItem, MSGBOX_SIGN end .include "data/scripts/field_poison.inc" -Common_EventScript_NopReturn:: @ 827374E +Common_EventScript_NopReturn:: return @ Unused -EventScript_CableClub_SetVarResult1:: @ 827374F +EventScript_CableClub_SetVarResult1:: setvar VAR_RESULT, 1 return -EventScript_CableClub_SetVarResult0:: @ 8273755 +EventScript_CableClub_SetVarResult0:: setvar VAR_RESULT, 0 return -Common_EventScript_UnionRoomAttendant:: @ 827375B +Common_EventScript_UnionRoomAttendant:: call CableClub_EventScript_UnionRoomAttendant end -Common_EventScript_WirelessClubAttendant:: @ 8273761 +Common_EventScript_WirelessClubAttendant:: call CableClub_EventScript_WirelessClubAttendant end -Common_EventScript_DirectCornerAttendant:: @ 8273767 +Common_EventScript_DirectCornerAttendant:: call CableClub_EventScript_DirectCornerAttendant end -Common_EventScript_RemoveStaticPokemon:: @ 827376D +Common_EventScript_RemoveStaticPokemon:: fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED fadescreenswapbuffers FADE_FROM_BLACK release end -Common_EventScript_LegendaryFlewAway:: @ 8273776 +Common_EventScript_LegendaryFlewAway:: fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED fadescreenswapbuffers FADE_FROM_BLACK diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index c57f19a040..1c97da8fe4 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -4,7 +4,7 @@ .section script_data, "aw", %progbits .align 2 -gFieldEffectScriptPointers:: @ 82DB9D4 +gFieldEffectScriptPointers:: .4byte gFieldEffectScript_ExclamationMarkIcon1 @ FLDEFF_EXCLAMATION_MARK_ICON .4byte gFieldEffectScript_UseCutOnTallGrass @ FLDEFF_USE_CUT_ON_GRASS .4byte gFieldEffectScript_UseCutOnTree @ FLDEFF_USE_CUT_ON_TREE @@ -73,273 +73,273 @@ gFieldEffectScriptPointers:: @ 82DB9D4 .4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK .4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK -gFieldEffectScript_ExclamationMarkIcon1:: @ 82DBAE0 +gFieldEffectScript_ExclamationMarkIcon1:: field_eff_callnative FldEff_ExclamationMarkIcon field_eff_end -gFieldEffectScript_UseCutOnTallGrass:: @ 82DBAE6 +gFieldEffectScript_UseCutOnTallGrass:: field_eff_callnative FldEff_UseCutOnGrass field_eff_end -gFieldEffectScript_UseCutOnTree:: @ 82DBAEC +gFieldEffectScript_UseCutOnTree:: field_eff_callnative FldEff_UseCutOnTree field_eff_end -gFieldEffectScript_Shadow:: @ 82DBAF2 +gFieldEffectScript_Shadow:: field_eff_callnative FldEff_Shadow field_eff_end -gFieldEffectScript_TallGrass:: @ 82DBAF8 +gFieldEffectScript_TallGrass:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass field_eff_end -gFieldEffectScript_Ripple:: @ 82DBB02 +gFieldEffectScript_Ripple:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple field_eff_end -gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C +gFieldEffectScript_FieldMoveShowMon:: field_eff_callnative FldEff_FieldMoveShowMon field_eff_end -gFieldEffectScript_Ash:: @ 82DBB12 +gFieldEffectScript_Ash:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash field_eff_end -gFieldEffectScript_SurfBlob:: @ 82DBB1C +gFieldEffectScript_SurfBlob:: field_eff_callnative FldEff_SurfBlob field_eff_end -gFieldEffectScript_UseSurf:: @ 82DBB22 +gFieldEffectScript_UseSurf:: field_eff_callnative FldEff_UseSurf field_eff_end -gFieldEffectScript_GroundImpactDust:: @ 82DBB28 +gFieldEffectScript_GroundImpactDust:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust field_eff_end -gFieldEffectScript_UseSecretPowerCave:: @ 82DBB32 +gFieldEffectScript_UseSecretPowerCave:: field_eff_callnative FldEff_UseSecretPowerCave field_eff_end -gFieldEffectScript_JumpTallGrass:: @ 82DBB38 +gFieldEffectScript_JumpTallGrass:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass field_eff_end -gFieldEffectScript_SandFootprints:: @ 82DBB42 +gFieldEffectScript_SandFootprints:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints field_eff_end -gFieldEffectScript_JumpBigSplash:: @ 82DBB4C +gFieldEffectScript_JumpBigSplash:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash field_eff_end -gFieldEffectScript_Splash:: @ 82DBB56 +gFieldEffectScript_Splash:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash field_eff_end -gFieldEffectScript_JumpSmallSplash:: @ 82DBB60 +gFieldEffectScript_JumpSmallSplash:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash field_eff_end -gFieldEffectScript_LongGrass:: @ 82DBB6A +gFieldEffectScript_LongGrass:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass field_eff_end -gFieldEffectScript_JumpLongGrass:: @ 82DBB74 +gFieldEffectScript_JumpLongGrass:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass field_eff_end -gFieldEffectScript_UnusedGrass:: @ 82DBB7E +gFieldEffectScript_UnusedGrass:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass field_eff_end -gFieldEffectScript_UnusedGrass2:: @ 82DBB88 +gFieldEffectScript_UnusedGrass2:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 field_eff_end -gFieldEffectScript_UnusedSand:: @ 82DBB92 +gFieldEffectScript_UnusedSand:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand field_eff_end -gFieldEffectScript_WaterSurfacing:: @ 82DBB9C +gFieldEffectScript_WaterSurfacing:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_WaterSurfacing field_eff_end -gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6 +gFieldEffectScript_BerryTreeGrowthSparkle:: field_eff_callnative FldEff_BerryTreeGrowthSparkle field_eff_end -gFieldEffectScript_DeepSandFootprints:: @ 82DBBAC +gFieldEffectScript_DeepSandFootprints:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints field_eff_end -gFieldEffectScript_PokeCenterHeal:: @ 82DBBB6 +gFieldEffectScript_PokeCenterHeal:: field_eff_loadfadedpal gSpritePalette_PokeballGlow field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal field_eff_end -gFieldEffectScript_UseSecretPowerTree:: @ 82DBBC5 +gFieldEffectScript_UseSecretPowerTree:: field_eff_callnative FldEff_UseSecretPowerTree field_eff_end -gFieldEffectScript_UseSecretPowerShrub:: @ 82DBBCB +gFieldEffectScript_UseSecretPowerShrub:: field_eff_callnative FldEff_UseSecretPowerShrub field_eff_end -gFieldEffectScript_TreeDisguise:: @ 82DBBD1 +gFieldEffectScript_TreeDisguise:: field_eff_callnative ShowTreeDisguiseFieldEffect field_eff_end -gFieldEffectScript_MountainDisguise:: @ 82DBBD7 +gFieldEffectScript_MountainDisguise:: field_eff_callnative ShowMountainDisguiseFieldEffect field_eff_end -gFieldEffectScript_NPCUseFly:: @ 82DBBDD +gFieldEffectScript_NPCUseFly:: field_eff_callnative FldEff_NPCFlyOut field_eff_end -gFieldEffectScript_UseFly:: @ 82DBBE3 +gFieldEffectScript_UseFly:: field_eff_callnative FldEff_UseFly field_eff_end -gFieldEffectScript_FlyIn:: @ 82DBBE9 +gFieldEffectScript_FlyIn:: field_eff_callnative FldEff_FlyIn field_eff_end -gFieldEffectScript_QuestionMarkIcon:: @ 82DBBEF +gFieldEffectScript_QuestionMarkIcon:: field_eff_callnative FldEff_QuestionMarkIcon field_eff_end -gFieldEffectScript_FeetInFlowingWater:: @ 82DBBF5 +gFieldEffectScript_FeetInFlowingWater:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater field_eff_end -gFieldEffectScript_BikeTireTracks:: @ 82DBBFF +gFieldEffectScript_BikeTireTracks:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks field_eff_end -gFieldEffectScript_SandDisguisePlaceholder:: @ 82DBC09 +gFieldEffectScript_SandDisguisePlaceholder:: field_eff_callnative ShowSandDisguiseFieldEffect field_eff_end -gFieldEffectScript_UseRockSmash:: @ 82DBC0F +gFieldEffectScript_UseRockSmash:: field_eff_callnative FldEff_UseRockSmash field_eff_end -gFieldEffectScript_UseStrength:: @ 82DBC15 +gFieldEffectScript_UseStrength:: field_eff_callnative FldEff_UseStrength field_eff_end -gFieldEffectScript_UseDig:: @ 82DBC1B +gFieldEffectScript_UseDig:: field_eff_callnative FldEff_UseDig field_eff_end -gFieldEffectScript_SandPile:: @ 82DBC21 +gFieldEffectScript_SandPile:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile field_eff_end -gFieldEffectScript_ShortGrass:: @ 82DBC2B +gFieldEffectScript_ShortGrass:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass field_eff_end -gFieldEffectScript_HotSpringsWater:: @ 82DBC35 +gFieldEffectScript_HotSpringsWater:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater field_eff_end -gFieldEffectScript_UseWaterfall:: @ 82DBC3F +gFieldEffectScript_UseWaterfall:: field_eff_callnative FldEff_UseWaterfall field_eff_end -gFieldEffectScript_UseDive:: @ 82DBC45 +gFieldEffectScript_UseDive:: field_eff_callnative FldEff_UseDive field_eff_end -gFieldEffectScript_Pokeball:: @ 82DBC4B +gFieldEffectScript_Pokeball:: field_eff_loadpal gSpritePalette_Pokeball field_eff_callnative FldEff_Pokeball field_eff_end -gFieldEffectScript_HeartIcon:: @ 82DBC56 +gFieldEffectScript_HeartIcon:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_HeartIcon field_eff_end -gFieldEffectScript_Nop47:: @ 82DBC60 +gFieldEffectScript_Nop47:: field_eff_callnative FldEff_Nop47 field_eff_end -gFieldEffectScript_Nop48:: @ 82DBC66 +gFieldEffectScript_Nop48:: field_eff_callnative FldEff_Nop48 field_eff_end -gFieldEffectScript_AshPuff:: @ 82DBC6C +gFieldEffectScript_AshPuff:: field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshPuff field_eff_end -gFieldEffectScript_AshLaunch:: @ 82DBC76 +gFieldEffectScript_AshLaunch:: field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshLaunch field_eff_end -gFieldEffectScript_SweetScent:: @ 82DBC80 +gFieldEffectScript_SweetScent:: field_eff_callnative FldEff_SweetScent field_eff_end -gFieldEffectScript_SandPillar:: @ 82DBC86 +gFieldEffectScript_SandPillar:: field_eff_loadfadedpal_callnative gSpritePalette_SandPillar, FldEff_SandPillar field_eff_end -gFieldEffectScript_Bubbles:: @ 82DBC90 +gFieldEffectScript_Bubbles:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles field_eff_end -gFieldEffectScript_Sparkle:: @ 82DBC9A +gFieldEffectScript_Sparkle:: field_eff_loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle field_eff_end -gFieldEffectScript_ShowSecretPowerCave:: @ 82DBCA4 +gFieldEffectScript_ShowSecretPowerCave:: field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Cave, FldEff_SecretPowerCave field_eff_end -gFieldEffectScript_ShowSecretPowerTree:: @ 82DBCAE +gFieldEffectScript_ShowSecretPowerTree:: field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerTree field_eff_end -gFieldEffectScript_ShowSecretPowerShrub:: @ 82DBCB8 +gFieldEffectScript_ShowSecretPowerShrub:: field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerShrub field_eff_end -gFieldEffectScript_ShowCutGrass:: @ 82DBCC2 +gFieldEffectScript_ShowCutGrass:: field_eff_loadfadedpal_callnative gSpritePalette_CutGrass, FldEff_CutGrass field_eff_end -gFieldEffectScript_FieldMoveShowMonInit:: @ 82DBCCC +gFieldEffectScript_FieldMoveShowMonInit:: field_eff_callnative FldEff_FieldMoveShowMonInit field_eff_end -gFieldEffectScript_UsePuzzleEffect:: @ 82DBCD2 +gFieldEffectScript_UsePuzzleEffect:: field_eff_callnative FldEff_UsePuzzleEffect field_eff_end -gFieldEffectScript_SecretBaseBootPC:: @ 82DBCD8 +gFieldEffectScript_SecretBaseBootPC:: field_eff_callnative FldEff_SecretBasePCTurnOn field_eff_end -gFieldEffectScript_HallOfFameRecord:: @ 82DBCDE +gFieldEffectScript_HallOfFameRecord:: field_eff_loadfadedpal gSpritePalette_PokeballGlow field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord field_eff_end -gFieldEffectScript_UseTeleport:: @ 82DBCED +gFieldEffectScript_UseTeleport:: field_eff_callnative FldEff_UseTeleport field_eff_end -gFieldEffectScript_RayquazaSpotlight:: @ 82DBCF3 +gFieldEffectScript_RayquazaSpotlight:: field_eff_callnative FldEff_RayquazaSpotlight field_eff_end -gFieldEffectScript_DestroyDeoxysRock:: @ 82DBCF9 +gFieldEffectScript_DestroyDeoxysRock:: field_eff_callnative FldEff_DestroyDeoxysRock field_eff_end -gFieldEffectScript_MoveDeoxysRock:: @ 82DBCFF +gFieldEffectScript_MoveDeoxysRock:: field_eff_callnative FldEff_MoveDeoxysRock field_eff_end diff --git a/data/fonts.s b/data/fonts.s index facc882acd..9283724814 100644 --- a/data/fonts.s +++ b/data/fonts.s @@ -4,73 +4,73 @@ .section .rodata .align 2 -gFont8LatinGlyphs:: @ 862BAE4 +gFont8LatinGlyphs:: .incbin "graphics/fonts/font8.latfont" .align 2 -gFont8LatinGlyphWidths:: @ 8633AE4 +gFont8LatinGlyphWidths:: .include "graphics/fonts/font8_latin_widths.inc" .align 2 -gFont0LatinGlyphs:: @ 8633CE4 +gFont0LatinGlyphs:: .incbin "graphics/fonts/font0.latfont" .align 2 -gFont0LatinGlyphWidths:: @ 863BCE4 +gFont0LatinGlyphWidths:: .include "graphics/fonts/font0_latin_widths.inc" .align 2 -gFont7LatinGlyphs:: @ 863BEE4 +gFont7LatinGlyphs:: .incbin "graphics/fonts/font7.latfont" .align 2 -gFont7LatinGlyphWidths:: @ 8643EE4 +gFont7LatinGlyphWidths:: .include "graphics/fonts/font7_latin_widths.inc" .align 2 -gFont2LatinGlyphs:: @ 86440E4 +gFont2LatinGlyphs:: .incbin "graphics/fonts/font2.latfont" .align 2 -gFont2LatinGlyphWidths:: @ 864C0E4 +gFont2LatinGlyphWidths:: .include "graphics/fonts/font2_latin_widths.inc" .align 2 -gFont1LatinGlyphs:: @ 864C2E4 +gFont1LatinGlyphs:: .incbin "graphics/fonts/font1.latfont" .align 2 -gFont1LatinGlyphWidths:: @ 86542E4 +gFont1LatinGlyphWidths:: .include "graphics/fonts/font1_latin_widths.inc" .align 2 -gFont0JapaneseGlyphs:: @ 86544E4 +gFont0JapaneseGlyphs:: .incbin "graphics/fonts/font0.hwjpnfont" .align 2 -gFont1JapaneseGlyphs:: @ 86584E4 +gFont1JapaneseGlyphs:: .incbin "graphics/fonts/font1.hwjpnfont" .align 2 -gUnusedJapaneseFireRedLeafGreenMaleFontGlyphs:: @ 865C4E4 +gUnusedJapaneseFireRedLeafGreenMaleFontGlyphs:: .incbin "graphics/fonts/unused_frlg_male.fwjpnfont" .align 2 -gUnusedJapaneseFireRedLeafGreenMaleFontGlyphWidths:: @ 86644E4 +gUnusedJapaneseFireRedLeafGreenMaleFontGlyphWidths:: .include "graphics/fonts/unused_japanese_frlg_male_font_widths.inc" .align 2 -gUnusedJapaneseFireRedLeafGreenFemaleFontGlyphs:: @ 86646E4 +gUnusedJapaneseFireRedLeafGreenFemaleFontGlyphs:: .incbin "graphics/fonts/unused_frlg_female.fwjpnfont" .align 2 -gUnusedJapaneseFireRedLeafGreenFemaleFontGlyphWidths:: @ 866C6E4 +gUnusedJapaneseFireRedLeafGreenFemaleFontGlyphWidths:: .include "graphics/fonts/unused_japanese_frlg_female_font_widths.inc" .align 2 -gFont2JapaneseGlyphs:: @ 866C8E4 +gFont2JapaneseGlyphs:: .incbin "graphics/fonts/font2.fwjpnfont" .align 2 -gFont2JapaneseGlyphWidths:: @ 86748E4 +gFont2JapaneseGlyphWidths:: .include "graphics/fonts/font2_japanese_widths.inc" diff --git a/data/image_processing_effects.s b/data/image_processing_effects.s deleted file mode 100644 index b319b4023c..0000000000 --- a/data/image_processing_effects.s +++ /dev/null @@ -1,308 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gPointillismPoints:: @ 85A1F94 - .byte 0x00, 0x1d, 0x1c, 0x0e, 0x1e, 0x1b, 0x00, 0x01, 0x32, 0x2e, 0x1e, 0x37, 0x0a, 0x22, 0x1f, 0x05, 0x26, 0x2e, 0x12, 0x17, 0x1e, 0x1a, 0x03, 0x11, 0x05, 0x11, 0x18, 0x05, 0x27, 0x2f, 0x1a, 0x3f - .byte 0x12, 0x22, 0x3f, 0x16, 0x2b, 0x2f, 0x2e, 0x11, 0x02, 0x2d, 0x23, 0x0d, 0x28, 0x17, 0x0c, 0x19, 0x2f, 0x0e, 0x13, 0x30, 0x18, 0x20, 0x2d, 0x28, 0x22, 0x01, 0x03, 0x19, 0x0e, 0x2a, 0x2b, 0x22 - .byte 0x15, 0x25, 0x22, 0x0a, 0x26, 0x39, 0x06, 0x23, 0x16, 0x07, 0x2f, 0x22, 0x3a, 0x1b, 0x3b, 0x36, 0x35, 0x0a, 0x2b, 0x24, 0x36, 0x09, 0x12, 0x1c, 0x2f, 0x23, 0x2e, 0x38, 0x2c, 0x05, 0x2a, 0x20 - .byte 0x07, 0x14, 0x32, 0x31, 0x08, 0x17, 0x1a, 0x24, 0x2d, 0x22, 0x0a, 0x16, 0x1b, 0x26, 0x2b, 0x29, 0x16, 0x11, 0x35, 0x08, 0x14, 0x1e, 0x08, 0x14, 0x05, 0x31, 0x14, 0x38, 0x31, 0x17, 0x34, 0x33 - .byte 0x12, 0x11, 0x09, 0x1f, 0x28, 0x3d, 0x32, 0x35, 0x03, 0x1e, 0x3c, 0x2b, 0x2e, 0x10, 0x01, 0x17, 0x03, 0x3e, 0x22, 0x17, 0x18, 0x34, 0x08, 0x29, 0x19, 0x03, 0x24, 0x28, 0x3d, 0x33, 0x2f, 0x31 - .byte 0x24, 0x19, 0x1b, 0x18, 0x26, 0x07, 0x0d, 0x25, 0x2d, 0x3f, 0x12, 0x2f, 0x15, 0x25, 0x29, 0x0f, 0x12, 0x07, 0x2c, 0x12, 0x2c, 0x0b, 0x26, 0x12, 0x1a, 0x16, 0x00, 0x0b, 0x2f, 0x16, 0x35, 0x24 - .byte 0x1f, 0x1c, 0x22, 0x29, 0x33, 0x27, 0x3b, 0x30, 0x17, 0x11, 0x06, 0x35, 0x3e, 0x31, 0x2f, 0x11, 0x3a, 0x25, 0x2a, 0x02, 0x19, 0x33, 0x18, 0x35, 0x2a, 0x20, 0x21, 0x2e, 0x32, 0x1b, 0x3b, 0x1f - .byte 0x23, 0x39, 0x29, 0x2a, 0x2e, 0x31, 0x29, 0x2a, 0x0e, 0x2d, 0x2d, 0x00, 0x1f, 0x38, 0x28, 0x1b, 0x14, 0x3b, 0x2b, 0x2e, 0x04, 0x26, 0x36, 0x30, 0x11, 0x3b, 0x21, 0x2d, 0x2b, 0x3f, 0x1b, 0x20 - .byte 0x13, 0x31, 0x33, 0x0c, 0x30, 0x22, 0x2b, 0x2b, 0x16, 0x02, 0x1e, 0x1c, 0x12, 0x1c, 0x0f, 0x3c, 0x36, 0x38, 0x10, 0x2d, 0x18, 0x2f, 0x2d, 0x35, 0x3b, 0x11, 0x37, 0x31, 0x13, 0x13, 0x3d, 0x2f - .byte 0x1e, 0x2c, 0x33, 0x2e, 0x37, 0x12, 0x3c, 0x1f, 0x33, 0x32, 0x2a, 0x27, 0x0d, 0x3b, 0x1c, 0x35, 0x2a, 0x27, 0x09, 0x3d, 0x27, 0x12, 0x0b, 0x18, 0x0c, 0x15, 0x1d, 0x20, 0x01, 0x1c, 0x08, 0x3b - .byte 0x1c, 0x12, 0x37, 0x33, 0x15, 0x03, 0x2c, 0x2a, 0x3b, 0x31, 0x0f, 0x04, 0x35, 0x08, 0x17, 0x33, 0x38, 0x3d, 0x2a, 0x2f, 0x35, 0x16, 0x10, 0x35, 0x16, 0x23, 0x13, 0x2c, 0x2f, 0x06, 0x20, 0x27 - .byte 0x3a, 0x24, 0x00, 0x1c, 0x2a, 0x03, 0x39, 0x1d, 0x28, 0x07, 0x1a, 0x20, 0x0a, 0x37, 0x07, 0x35, 0x2d, 0x15, 0x2f, 0x2c, 0x10, 0x2c, 0x23, 0x3f, 0x29, 0x14, 0x2a, 0x21, 0x36, 0x34, 0x1a, 0x2c - .byte 0x1c, 0x3d, 0x33, 0x38, 0x2b, 0x22, 0x35, 0x28, 0x1f, 0x3d, 0x0f, 0x1c, 0x1e, 0x3e, 0x1b, 0x0c, 0x3e, 0x1f, 0x2b, 0x31, 0x2c, 0x32, 0x39, 0x11, 0x05, 0x09, 0x11, 0x04, 0x38, 0x2a, 0x32, 0x00 - .byte 0x16, 0x13, 0x0b, 0x31, 0x34, 0x2a, 0x13, 0x2c, 0x22, 0x21, 0x39, 0x2f, 0x15, 0x37, 0x28, 0x1e, 0x07, 0x3b, 0x2d, 0x11, 0x03, 0x28, 0x2d, 0x30, 0x1e, 0x31, 0x11, 0x11, 0x23, 0x01, 0x1e, 0x3d - .byte 0x31, 0x34, 0x1c, 0x02, 0x34, 0x21, 0x0e, 0x25, 0x3d, 0x07, 0x17, 0x33, 0x15, 0x10, 0x29, 0x32, 0x32, 0x18, 0x1f, 0x30, 0x2d, 0x3b, 0x30, 0x27, 0x3e, 0x16, 0x31, 0x15, 0x12, 0x30, 0x25, 0x17 - .byte 0x33, 0x06, 0x34, 0x00, 0x29, 0x18, 0x3c, 0x03, 0x12, 0x2c, 0x0c, 0x11, 0x09, 0x30, 0x30, 0x10, 0x0e, 0x11, 0x27, 0x16, 0x1b, 0x0c, 0x3b, 0x2e, 0x2b, 0x33, 0x1e, 0x13, 0x2d, 0x2d, 0x11, 0x24 - .byte 0x29, 0x34, 0x3e, 0x2b, 0x24, 0x1e, 0x21, 0x27, 0x1a, 0x2d, 0x04, 0x39, 0x16, 0x3e, 0x33, 0x26, 0x1b, 0x2e, 0x25, 0x0c, 0x06, 0x19, 0x25, 0x19, 0x18, 0x1d, 0x33, 0x33, 0x1d, 0x28, 0x2d, 0x1c - .byte 0x10, 0x2a, 0x1f, 0x35, 0x1e, 0x34, 0x02, 0x10, 0x2b, 0x3a, 0x14, 0x0d, 0x0b, 0x15, 0x0c, 0x2c, 0x10, 0x37, 0x3a, 0x19, 0x06, 0x13, 0x17, 0x24, 0x10, 0x25, 0x24, 0x04, 0x1e, 0x00, 0x35, 0x34 - .byte 0x3a, 0x00, 0x37, 0x3c, 0x07, 0x1a, 0x2b, 0x28, 0x36, 0x34, 0x39, 0x2f, 0x28, 0x09, 0x1f, 0x38, 0x31, 0x30, 0x16, 0x25, 0x31, 0x18, 0x28, 0x31, 0x18, 0x0c, 0x22, 0x06, 0x39, 0x2d, 0x3d, 0x20 - .byte 0x24, 0x2e, 0x27, 0x21, 0x3e, 0x18, 0x18, 0x15, 0x3c, 0x24, 0x06, 0x1b, 0x26, 0x15, 0x0e, 0x22, 0x0a, 0x0d, 0x1f, 0x18, 0x16, 0x34, 0x10, 0x28, 0x21, 0x20, 0x11, 0x11, 0x36, 0x32, 0x15, 0x3b - .byte 0x2e, 0x24, 0x1f, 0x2d, 0x12, 0x36, 0x2e, 0x20, 0x0b, 0x17, 0x33, 0x26, 0x03, 0x1f, 0x08, 0x19, 0x31, 0x2a, 0x18, 0x25, 0x35, 0x2d, 0x2d, 0x30, 0x38, 0x18, 0x1c, 0x25, 0x14, 0x1c, 0x22, 0x28 - .byte 0x08, 0x23, 0x21, 0x26, 0x1e, 0x30, 0x19, 0x0f, 0x15, 0x10, 0x2f, 0x22, 0x12, 0x02, 0x25, 0x3c, 0x01, 0x1d, 0x0e, 0x14, 0x18, 0x0d, 0x18, 0x17, 0x22, 0x0b, 0x31, 0x13, 0x34, 0x21, 0x0f, 0x2d - .byte 0x36, 0x39, 0x1f, 0x25, 0x18, 0x10, 0x1f, 0x2d, 0x20, 0x20, 0x19, 0x0b, 0x31, 0x33, 0x13, 0x14, 0x2e, 0x11, 0x21, 0x2d, 0x0a, 0x37, 0x07, 0x15, 0x1b, 0x32, 0x04, 0x32, 0x06, 0x18, 0x1b, 0x13 - .byte 0x24, 0x12, 0x36, 0x22, 0x16, 0x1d, 0x29, 0x1c, 0x35, 0x17, 0x21, 0x36, 0x17, 0x2b, 0x35, 0x32, 0x19, 0x2a, 0x0f, 0x2e, 0x10, 0x00, 0x34, 0x02, 0x0e, 0x28, 0x31, 0x32, 0x32, 0x3b, 0x05, 0x20 - .byte 0x36, 0x26, 0x12, 0x34, 0x06, 0x34, 0x1e, 0x31, 0x32, 0x35, 0x05, 0x34, 0x1e, 0x13, 0x15, 0x15, 0x14, 0x2c, 0x29, 0x1c, 0x18, 0x24, 0x24, 0x12, 0x22, 0x29, 0x18, 0x34, 0x36, 0x30, 0x1e, 0x01 - .byte 0x23, 0x0c, 0x3c, 0x24, 0x0a, 0x3d, 0x16, 0x27, 0x1e, 0x23, 0x15, 0x02, 0x12, 0x11, 0x19, 0x2a, 0x1d, 0x31, 0x15, 0x03, 0x3b, 0x2a, 0x21, 0x19, 0x2c, 0x0a, 0x23, 0x11, 0x25, 0x11, 0x1a, 0x1a - .byte 0x0a, 0x34, 0x3b, 0x0b, 0x33, 0x21, 0x0b, 0x37, 0x01, 0x31, 0x28, 0x35, 0x1d, 0x27, 0x2c, 0x30, 0x31, 0x2e, 0x39, 0x2d, 0x30, 0x05, 0x2c, 0x12, 0x2a, 0x2b, 0x39, 0x22, 0x20, 0x15, 0x34, 0x1c - .byte 0x1c, 0x01, 0x15, 0x20, 0x16, 0x22, 0x13, 0x04, 0x18, 0x1e, 0x13, 0x10, 0x25, 0x33, 0x15, 0x39, 0x03, 0x31, 0x3f, 0x36, 0x18, 0x14, 0x23, 0x10, 0x2f, 0x1e, 0x1f, 0x1f, 0x17, 0x2c, 0x02, 0x16 - .byte 0x31, 0x20, 0x18, 0x30, 0x2e, 0x18, 0x37, 0x3b, 0x0e, 0x30, 0x10, 0x39, 0x24, 0x26, 0x39, 0x1e, 0x30, 0x26, 0x2e, 0x12, 0x01, 0x14, 0x37, 0x2a, 0x2e, 0x21, 0x06, 0x1d, 0x2a, 0x16, 0x32, 0x09 - .byte 0x38, 0x1c, 0x07, 0x22, 0x17, 0x3b, 0x2d, 0x15, 0x07, 0x1e, 0x2e, 0x1b, 0x2e, 0x1d, 0x04, 0x09, 0x30, 0x30, 0x2d, 0x37, 0x2d, 0x34, 0x24, 0x18, 0x24, 0x25, 0x0e, 0x2d, 0x26, 0x23, 0x0a, 0x16 - .byte 0x12, 0x2d, 0x11, 0x21, 0x28, 0x2e, 0x0f, 0x01, 0x21, 0x01, 0x31, 0x12, 0x3f, 0x1b, 0x1e, 0x21, 0x25, 0x2b, 0x26, 0x18, 0x13, 0x15, 0x2d, 0x34, 0x23, 0x21, 0x36, 0x0e, 0x2e, 0x1c, 0x14, 0x22 - .byte 0x1c, 0x2c, 0x0b, 0x28, 0x1a, 0x18, 0x21, 0x21, 0x07, 0x1a, 0x24, 0x26, 0x29, 0x2b, 0x0a, 0x34, 0x3e, 0x27, 0x33, 0x12, 0x34, 0x1b, 0x1f, 0x01, 0x2a, 0x2e, 0x06, 0x23, 0x2f, 0x1f, 0x14, 0x18 - .byte 0x06, 0x26, 0x31, 0x1f, 0x2b, 0x22, 0x26, 0x2e, 0x1e, 0x15, 0x16, 0x20, 0x22, 0x28, 0x15, 0x37, 0x12, 0x25, 0x04, 0x2c, 0x1f, 0x04, 0x2e, 0x0c, 0x13, 0x18, 0x07, 0x0b, 0x36, 0x1d, 0x1c, 0x2a - .byte 0x30, 0x22, 0x1c, 0x2e, 0x12, 0x2f, 0x2b, 0x21, 0x1e, 0x16, 0x38, 0x30, 0x04, 0x02, 0x16, 0x05, 0x14, 0x20, 0x38, 0x3c, 0x33, 0x21, 0x1b, 0x2f, 0x14, 0x2a, 0x27, 0x38, 0x14, 0x1b, 0x2b, 0x1f - .byte 0x2b, 0x29, 0x2b, 0x25, 0x27, 0x36, 0x21, 0x11, 0x22, 0x1b, 0x29, 0x03, 0x1b, 0x18, 0x24, 0x28, 0x21, 0x2d, 0x36, 0x3c, 0x2c, 0x24, 0x33, 0x17, 0x1f, 0x2a, 0x3a, 0x21, 0x0a, 0x23, 0x37, 0x00 - .byte 0x0b, 0x21, 0x11, 0x38, 0x19, 0x0f, 0x0e, 0x1c, 0x1f, 0x0f, 0x37, 0x3c, 0x10, 0x37, 0x38, 0x31, 0x35, 0x07, 0x15, 0x28, 0x1e, 0x2e, 0x19, 0x26, 0x10, 0x33, 0x3d, 0x35, 0x2f, 0x3a, 0x04, 0x34 - .byte 0x0d, 0x18, 0x1a, 0x01, 0x2d, 0x15, 0x3d, 0x1a, 0x17, 0x17, 0x3f, 0x32, 0x0b, 0x21, 0x11, 0x1e, 0x26, 0x2b, 0x0d, 0x19, 0x24, 0x2e, 0x04, 0x1b, 0x1b, 0x33, 0x20, 0x15, 0x21, 0x1d, 0x1f, 0x04 - .byte 0x21, 0x0f, 0x12, 0x1f, 0x2d, 0x2a, 0x32, 0x03, 0x37, 0x1f, 0x35, 0x07, 0x27, 0x24, 0x1f, 0x31, 0x2f, 0x30, 0x15, 0x06, 0x00, 0x24, 0x0b, 0x22, 0x1a, 0x0c, 0x3b, 0x29, 0x14, 0x1a, 0x17, 0x37 - .byte 0x20, 0x25, 0x3f, 0x26, 0x37, 0x3a, 0x3e, 0x10, 0x22, 0x04, 0x11, 0x28, 0x12, 0x1c, 0x03, 0x2e, 0x2e, 0x0e, 0x38, 0x28, 0x01, 0x29, 0x22, 0x1e, 0x33, 0x19, 0x06, 0x21, 0x27, 0x33, 0x19, 0x1a - .byte 0x02, 0x05, 0x17, 0x11, 0x11, 0x2c, 0x1f, 0x26, 0x1e, 0x39, 0x1f, 0x28, 0x2e, 0x2f, 0x12, 0x22, 0x34, 0x13, 0x3b, 0x26, 0x2f, 0x34, 0x00, 0x14, 0x10, 0x31, 0x11, 0x1d, 0x2d, 0x2a, 0x08, 0x08 - .byte 0x37, 0x15, 0x18, 0x34, 0x04, 0x2b, 0x24, 0x2f, 0x1e, 0x27, 0x22, 0x2a, 0x24, 0x07, 0x14, 0x25, 0x01, 0x27, 0x19, 0x29, 0x0a, 0x29, 0x3d, 0x1c, 0x2f, 0x0d, 0x1f, 0x1c, 0x24, 0x3d, 0x32, 0x36 - .byte 0x1d, 0x24, 0x14, 0x21, 0x16, 0x1a, 0x0d, 0x29, 0x3f, 0x2b, 0x2a, 0x1a, 0x3e, 0x35, 0x11, 0x28, 0x18, 0x32, 0x05, 0x15, 0x21, 0x2e, 0x34, 0x2d, 0x14, 0x2a, 0x3c, 0x08, 0x37, 0x3f, 0x34, 0x1e - .byte 0x27, 0x24, 0x1c, 0x16, 0x16, 0x33, 0x29, 0x3b, 0x19, 0x36, 0x2f, 0x1c, 0x03, 0x25, 0x2c, 0x0b, 0x16, 0x36, 0x1c, 0x1d, 0x1b, 0x2c, 0x27, 0x1b, 0x0b, 0x1f, 0x2b, 0x08, 0x10, 0x27, 0x3f, 0x25 - .byte 0x2f, 0x33, 0x13, 0x1f, 0x04, 0x31, 0x37, 0x0e, 0x2f, 0x12, 0x08, 0x23, 0x20, 0x3a, 0x1a, 0x1e, 0x2f, 0x0b, 0x1f, 0x1e, 0x20, 0x19, 0x23, 0x3b, 0x14, 0x25, 0x00, 0x27, 0x14, 0x04, 0x25, 0x36 - .byte 0x1a, 0x2b, 0x27, 0x21, 0x15, 0x28, 0x13, 0x2c, 0x0e, 0x3c, 0x35, 0x0c, 0x2d, 0x2b, 0x37, 0x16, 0x15, 0x29, 0x15, 0x1d, 0x17, 0x34, 0x36, 0x09, 0x0a, 0x31, 0x37, 0x22, 0x28, 0x17, 0x2b, 0x35 - .byte 0x14, 0x2b, 0x12, 0x08, 0x13, 0x1f, 0x31, 0x13, 0x28, 0x06, 0x07, 0x35, 0x23, 0x3a, 0x29, 0x0f, 0x24, 0x2e, 0x07, 0x35, 0x26, 0x0e, 0x12, 0x15, 0x23, 0x33, 0x2c, 0x0e, 0x21, 0x26, 0x1c, 0x12 - .byte 0x25, 0x23, 0x1d, 0x2f, 0x04, 0x35, 0x33, 0x16, 0x01, 0x24, 0x3d, 0x2c, 0x2e, 0x35, 0x0a, 0x25, 0x11, 0x13, 0x25, 0x1b, 0x1b, 0x15, 0x15, 0x39, 0x10, 0x0b, 0x35, 0x24, 0x3a, 0x27, 0x30, 0x2e - .byte 0x2f, 0x15, 0x10, 0x1f, 0x35, 0x1b, 0x28, 0x35, 0x26, 0x30, 0x37, 0x34, 0x37, 0x2b, 0x0f, 0x30, 0x29, 0x2e, 0x3f, 0x2b, 0x38, 0x34, 0x2b, 0x2b, 0x2f, 0x25, 0x0d, 0x28, 0x2a, 0x33, 0x18, 0x10 - .byte 0x21, 0x12, 0x11, 0x1f, 0x22, 0x34, 0x11, 0x25, 0x23, 0x21, 0x3f, 0x11, 0x26, 0x27, 0x25, 0x28, 0x36, 0x12, 0x15, 0x26, 0x32, 0x11, 0x18, 0x24, 0x32, 0x25, 0x37, 0x27, 0x3a, 0x33, 0x35, 0x07 - .byte 0x1c, 0x1a, 0x0e, 0x2a, 0x1e, 0x2f, 0x1f, 0x00, 0x2e, 0x21, 0x1b, 0x3c, 0x14, 0x2f, 0x3a, 0x2f, 0x3e, 0x38, 0x15, 0x1a, 0x13, 0x2f, 0x29, 0x0d, 0x2f, 0x37, 0x17, 0x18, 0x30, 0x1c, 0x35, 0x15 - .byte 0x34, 0x14, 0x28, 0x11, 0x2c, 0x2c, 0x25, 0x2a, 0x20, 0x3f, 0x28, 0x0c, 0x34, 0x1b, 0x30, 0x2e, 0x25, 0x37, 0x1c, 0x24, 0x1f, 0x25, 0x26, 0x0c, 0x19, 0x34, 0x18, 0x10, 0x35, 0x0a, 0x13, 0x11 - .byte 0x25, 0x13, 0x20, 0x13, 0x19, 0x11, 0x20, 0x28, 0x1d, 0x3e, 0x30, 0x1b, 0x23, 0x24, 0x21, 0x0d, 0x23, 0x23, 0x1d, 0x28, 0x2e, 0x2d, 0x12, 0x1f, 0x0e, 0x2e, 0x2b, 0x0b, 0x31, 0x32, 0x24, 0x3c - .byte 0x2c, 0x13, 0x3c, 0x12, 0x28, 0x16, 0x2a, 0x05, 0x0c, 0x32, 0x39, 0x0b, 0x32, 0x21, 0x04, 0x14, 0x10, 0x31, 0x32, 0x12, 0x1f, 0x23, 0x39, 0x2e, 0x2e, 0x22, 0x3d, 0x27, 0x0c, 0x1e, 0x18, 0x25 - .byte 0x00, 0x17, 0x06, 0x31, 0x14, 0x13, 0x21, 0x1a, 0x14, 0x20, 0x35, 0x0a, 0x3b, 0x25, 0x33, 0x08, 0x28, 0x3d, 0x02, 0x33, 0x23, 0x00, 0x13, 0x22, 0x21, 0x28, 0x30, 0x14, 0x2e, 0x14, 0x32, 0x36 - .byte 0x39, 0x23, 0x1e, 0x1c, 0x11, 0x30, 0x37, 0x16, 0x30, 0x15, 0x31, 0x1f, 0x34, 0x28, 0x2c, 0x35, 0x05, 0x29, 0x37, 0x33, 0x2a, 0x1c, 0x17, 0x2e, 0x10, 0x06, 0x16, 0x32, 0x1f, 0x2f, 0x00, 0x29 - .byte 0x1e, 0x04, 0x01, 0x16, 0x3b, 0x23, 0x1e, 0x1b, 0x34, 0x2a, 0x30, 0x11, 0x2b, 0x03, 0x00, 0x1f, 0x1d, 0x37, 0x1a, 0x3a, 0x18, 0x25, 0x1c, 0x16, 0x2c, 0x04, 0x3f, 0x33, 0x26, 0x23, 0x2d, 0x15 - .byte 0x2c, 0x27, 0x02, 0x35, 0x27, 0x07, 0x35, 0x33, 0x1a, 0x0c, 0x10, 0x28, 0x26, 0x2c, 0x2f, 0x36, 0x16, 0x37, 0x0b, 0x27, 0x1b, 0x3d, 0x18, 0x27, 0x1f, 0x20, 0x2b, 0x2a, 0x33, 0x0b, 0x0f, 0x20 - .byte 0x35, 0x3c, 0x2f, 0x33, 0x21, 0x15, 0x2d, 0x26, 0x34, 0x1f, 0x1a, 0x21, 0x2f, 0x2c, 0x2a, 0x1a, 0x32, 0x1a, 0x3b, 0x3f, 0x21, 0x13, 0x3f, 0x13, 0x0f, 0x24, 0x22, 0x14, 0x1b, 0x10, 0x21, 0x06 - .byte 0x28, 0x25, 0x34, 0x10, 0x2e, 0x0e, 0x14, 0x3c, 0x3e, 0x25, 0x16, 0x06, 0x30, 0x0b, 0x04, 0x1f, 0x3e, 0x02, 0x24, 0x0c, 0x17, 0x25, 0x2b, 0x3c, 0x2d, 0x15, 0x36, 0x33, 0x18, 0x23, 0x2a, 0x1d - .byte 0x10, 0x2a, 0x35, 0x17, 0x28, 0x00, 0x37, 0x24, 0x0a, 0x3b, 0x15, 0x1d, 0x0b, 0x1f, 0x3c, 0x31, 0x25, 0x1d, 0x0f, 0x1d, 0x20, 0x13, 0x34, 0x11, 0x2b, 0x2e, 0x23, 0x0c, 0x2e, 0x24, 0x02, 0x14 - .byte 0x31, 0x16, 0x19, 0x0e, 0x23, 0x35, 0x1a, 0x10, 0x16, 0x14, 0x04, 0x19, 0x2d, 0x27, 0x37, 0x33, 0x02, 0x31, 0x02, 0x04, 0x16, 0x0d, 0x22, 0x25, 0x25, 0x00, 0x16, 0x2a, 0x3f, 0x26, 0x20, 0x0c - .byte 0x12, 0x2f, 0x2e, 0x35, 0x1b, 0x0d, 0x22, 0x1e, 0x01, 0x34, 0x05, 0x22, 0x21, 0x34, 0x2a, 0x32, 0x0b, 0x09, 0x1d, 0x3f, 0x32, 0x2f, 0x3d, 0x18, 0x2d, 0x0b, 0x38, 0x36, 0x39, 0x17, 0x28, 0x34 - .byte 0x04, 0x24, 0x36, 0x0e, 0x2a, 0x38, 0x01, 0x14, 0x3c, 0x24, 0x22, 0x21, 0x03, 0x18, 0x32, 0x2f, 0x12, 0x29, 0x24, 0x31, 0x0a, 0x3b, 0x12, 0x1a, 0x1c, 0x20, 0x30, 0x31, 0x1b, 0x1a, 0x21, 0x10 - .byte 0x05, 0x29, 0x10, 0x26, 0x2d, 0x13, 0x16, 0x0c, 0x1d, 0x2b, 0x06, 0x1b, 0x06, 0x12, 0x14, 0x38, 0x0f, 0x35, 0x23, 0x3a, 0x2c, 0x00, 0x19, 0x33, 0x29, 0x14, 0x2d, 0x2a, 0x21, 0x29, 0x14, 0x31 - .byte 0x14, 0x1a, 0x06, 0x1e, 0x18, 0x1b, 0x28, 0x3b, 0x16, 0x29, 0x15, 0x1e, 0x12, 0x34, 0x0a, 0x14, 0x1b, 0x05, 0x27, 0x0b, 0x01, 0x26, 0x2a, 0x22, 0x35, 0x21, 0x20, 0x18, 0x20, 0x37, 0x17, 0x14 - .byte 0x1f, 0x11, 0x1d, 0x11, 0x25, 0x24, 0x2b, 0x2f, 0x07, 0x3f, 0x1f, 0x2c, 0x25, 0x25, 0x2a, 0x29, 0x18, 0x11, 0x24, 0x28, 0x31, 0x2c, 0x2a, 0x39, 0x0b, 0x26, 0x28, 0x10, 0x26, 0x22, 0x06, 0x16 - .byte 0x09, 0x2c, 0x13, 0x34, 0x19, 0x15, 0x3a, 0x12, 0x21, 0x1d, 0x38, 0x23, 0x12, 0x25, 0x24, 0x21, 0x30, 0x12, 0x37, 0x1a, 0x12, 0x24, 0x3b, 0x25, 0x32, 0x15, 0x23, 0x0d, 0x1a, 0x10, 0x16, 0x2e - .byte 0x26, 0x1d, 0x14, 0x16, 0x3e, 0x2e, 0x1f, 0x0a, 0x16, 0x10, 0x1d, 0x30, 0x2b, 0x04, 0x3a, 0x19, 0x08, 0x2d, 0x2e, 0x28, 0x1e, 0x33, 0x0a, 0x12, 0x2e, 0x0d, 0x03, 0x2f, 0x26, 0x3a, 0x1e, 0x35 - .byte 0x3b, 0x2a, 0x03, 0x1a, 0x18, 0x3f, 0x0b, 0x27, 0x04, 0x05, 0x34, 0x36, 0x0b, 0x27, 0x3b, 0x17, 0x11, 0x0d, 0x27, 0x26, 0x2c, 0x1f, 0x20, 0x26, 0x10, 0x20, 0x25, 0x23, 0x2d, 0x37, 0x09, 0x13 - .byte 0x14, 0x17, 0x2d, 0x2e, 0x3d, 0x23, 0x1d, 0x1a, 0x1f, 0x21, 0x33, 0x2e, 0x28, 0x17, 0x13, 0x26, 0x3c, 0x36, 0x14, 0x1a, 0x33, 0x32, 0x20, 0x2b, 0x19, 0x3e, 0x20, 0x0c, 0x02, 0x2d, 0x3c, 0x3c - .byte 0x2a, 0x30, 0x30, 0x28, 0x25, 0x3f, 0x1e, 0x03, 0x17, 0x1e, 0x35, 0x11, 0x1c, 0x1b, 0x14, 0x2a, 0x28, 0x3a, 0x23, 0x0e, 0x1f, 0x12, 0x36, 0x21, 0x20, 0x07, 0x3b, 0x10, 0x23, 0x19, 0x34, 0x0d - .byte 0x2e, 0x18, 0x3f, 0x20, 0x25, 0x3e, 0x3b, 0x15, 0x0b, 0x2e, 0x12, 0x37, 0x0b, 0x23, 0x3d, 0x32, 0x1f, 0x16, 0x03, 0x27, 0x14, 0x0c, 0x21, 0x18, 0x03, 0x30, 0x3e, 0x21, 0x13, 0x0f, 0x00, 0x32 - .byte 0x3f, 0x23, 0x16, 0x0e, 0x31, 0x1d, 0x18, 0x1c, 0x1d, 0x30, 0x0e, 0x1e, 0x21, 0x20, 0x23, 0x3f, 0x0c, 0x1e, 0x14, 0x33, 0x22, 0x22, 0x21, 0x15, 0x36, 0x05, 0x1e, 0x1d, 0x31, 0x14, 0x20, 0x11 - .byte 0x37, 0x0d, 0x33, 0x19, 0x25, 0x05, 0x36, 0x1e, 0x31, 0x20, 0x35, 0x3a, 0x2f, 0x32, 0x2f, 0x30, 0x14, 0x23, 0x2d, 0x35, 0x1e, 0x29, 0x05, 0x05, 0x1b, 0x09, 0x1f, 0x26, 0x2f, 0x0b, 0x15, 0x15 - .byte 0x11, 0x13, 0x29, 0x1b, 0x18, 0x1c, 0x13, 0x35, 0x34, 0x31, 0x23, 0x27, 0x3f, 0x2f, 0x09, 0x30, 0x19, 0x23, 0x12, 0x34, 0x02, 0x2a, 0x21, 0x09, 0x3c, 0x1d, 0x0c, 0x02, 0x10, 0x22, 0x05, 0x17 - .byte 0x22, 0x08, 0x1b, 0x0a, 0x0f, 0x15, 0x02, 0x11, 0x13, 0x01, 0x21, 0x22, 0x16, 0x39, 0x33, 0x24, 0x38, 0x34, 0x0f, 0x1e, 0x2b, 0x2b, 0x15, 0x15, 0x20, 0x22, 0x2e, 0x3a, 0x3f, 0x31, 0x1a, 0x27 - .byte 0x2b, 0x29, 0x34, 0x14, 0x16, 0x39, 0x2f, 0x13, 0x3e, 0x16, 0x36, 0x21, 0x30, 0x00, 0x24, 0x2b, 0x24, 0x21, 0x30, 0x15, 0x31, 0x13, 0x10, 0x37, 0x24, 0x08, 0x07, 0x23, 0x21, 0x09, 0x25, 0x05 - .byte 0x3c, 0x32, 0x19, 0x03, 0x25, 0x0f, 0x29, 0x2b, 0x16, 0x07, 0x13, 0x3e, 0x3d, 0x25, 0x36, 0x0b, 0x28, 0x2e, 0x2b, 0x16, 0x0c, 0x31, 0x11, 0x30, 0x13, 0x2d, 0x26, 0x3e, 0x37, 0x29, 0x2f, 0x2e - .byte 0x15, 0x3d, 0x17, 0x1c, 0x2e, 0x21, 0x33, 0x2f, 0x10, 0x0d, 0x05, 0x1d, 0x1c, 0x1a, 0x12, 0x0e, 0x18, 0x37, 0x1b, 0x11, 0x14, 0x06, 0x14, 0x21, 0x31, 0x0e, 0x27, 0x1a, 0x03, 0x10, 0x00, 0x34 - .byte 0x31, 0x3f, 0x0b, 0x1d, 0x0f, 0x12, 0x1f, 0x1a, 0x15, 0x10, 0x0f, 0x00, 0x24, 0x3e, 0x0a, 0x2a, 0x30, 0x2b, 0x24, 0x26, 0x31, 0x10, 0x2d, 0x2f, 0x2f, 0x3f, 0x0c, 0x13, 0x12, 0x0b, 0x16, 0x15 - .byte 0x07, 0x1f, 0x28, 0x10, 0x32, 0x0f, 0x17, 0x15, 0x0b, 0x27, 0x33, 0x34, 0x1d, 0x10, 0x1c, 0x3a, 0x12, 0x2c, 0x27, 0x37, 0x0a, 0x1a, 0x32, 0x05, 0x1f, 0x21, 0x24, 0x0d, 0x1f, 0x1c, 0x17, 0x24 - .byte 0x2f, 0x3b, 0x32, 0x3b, 0x25, 0x10, 0x03, 0x2f, 0x21, 0x0c, 0x10, 0x23, 0x0e, 0x3a, 0x2c, 0x33, 0x03, 0x2c, 0x12, 0x06, 0x1c, 0x2a, 0x37, 0x30, 0x3f, 0x01, 0x1e, 0x35, 0x16, 0x37, 0x2c, 0x32 - .byte 0x35, 0x05, 0x11, 0x22, 0x29, 0x09, 0x20, 0x2b, 0x0d, 0x1f, 0x18, 0x0d, 0x20, 0x23, 0x39, 0x16, 0x0f, 0x3a, 0x18, 0x21, 0x35, 0x2b, 0x36, 0x26, 0x2b, 0x23, 0x05, 0x2f, 0x1b, 0x08, 0x17, 0x3e - .byte 0x09, 0x16, 0x2d, 0x3a, 0x37, 0x15, 0x35, 0x35, 0x29, 0x0a, 0x12, 0x02, 0x39, 0x1f, 0x14, 0x34, 0x33, 0x17, 0x1d, 0x18, 0x16, 0x1d, 0x1a, 0x01, 0x39, 0x22, 0x1e, 0x27, 0x36, 0x32, 0x14, 0x26 - .byte 0x0a, 0x39, 0x36, 0x1f, 0x0d, 0x1e, 0x0b, 0x0a, 0x19, 0x35, 0x1d, 0x34, 0x03, 0x12, 0x16, 0x0c, 0x13, 0x2e, 0x0c, 0x34, 0x1e, 0x10, 0x14, 0x1e, 0x23, 0x32, 0x27, 0x02, 0x10, 0x29, 0x35, 0x18 - .byte 0x33, 0x33, 0x1d, 0x1a, 0x3c, 0x15, 0x23, 0x3e, 0x3f, 0x22, 0x2a, 0x02, 0x2c, 0x28, 0x0a, 0x2f, 0x1a, 0x06, 0x35, 0x3c, 0x17, 0x2b, 0x03, 0x12, 0x17, 0x2f, 0x0a, 0x26, 0x12, 0x38, 0x11, 0x36 - .byte 0x1b, 0x23, 0x01, 0x39, 0x35, 0x19, 0x19, 0x17, 0x09, 0x28, 0x22, 0x1e, 0x27, 0x2c, 0x35, 0x33, 0x2c, 0x27, 0x25, 0x31, 0x06, 0x31, 0x2d, 0x1a, 0x39, 0x28, 0x2d, 0x04, 0x1e, 0x24, 0x3e, 0x1c - .byte 0x3c, 0x30, 0x1b, 0x3f, 0x3e, 0x37, 0x22, 0x36, 0x11, 0x00, 0x01, 0x1c, 0x12, 0x1a, 0x10, 0x12, 0x1e, 0x2c, 0x1f, 0x12, 0x2a, 0x2f, 0x06, 0x19, 0x35, 0x1a, 0x18, 0x3b, 0x09, 0x36, 0x34, 0x1d - .byte 0x13, 0x02, 0x07, 0x10, 0x20, 0x2f, 0x1d, 0x0b, 0x03, 0x33, 0x1c, 0x16, 0x31, 0x05, 0x13, 0x1b, 0x29, 0x06, 0x13, 0x30, 0x2d, 0x36, 0x2a, 0x2d, 0x2c, 0x19, 0x34, 0x1c, 0x0f, 0x15, 0x12, 0x36 - .byte 0x15, 0x2c, 0x3a, 0x06, 0x1c, 0x12, 0x1d, 0x26, 0x03, 0x38, 0x1d, 0x01, 0x01, 0x2d, 0x17, 0x2e, 0x10, 0x14, 0x17, 0x1c, 0x34, 0x0f, 0x28, 0x09, 0x37, 0x1b, 0x28, 0x1d, 0x26, 0x29, 0x2d, 0x36 - .byte 0x1e, 0x17, 0x28, 0x15, 0x0f, 0x1c, 0x20, 0x2d, 0x10, 0x27, 0x16, 0x2e, 0x14, 0x09, 0x12, 0x3b, 0x3d, 0x21, 0x25, 0x1a, 0x2c, 0x00, 0x22, 0x36, 0x0d, 0x30, 0x10, 0x17, 0x19, 0x1b, 0x00, 0x3b - .byte 0x21, 0x2a, 0x28, 0x34, 0x2d, 0x0f, 0x16, 0x0a, 0x30, 0x28, 0x06, 0x00, 0x25, 0x31, 0x2e, 0x2a, 0x14, 0x33, 0x28, 0x36, 0x10, 0x2e, 0x05, 0x2e, 0x19, 0x19, 0x1a, 0x15, 0x2c, 0x14, 0x17, 0x37 - .byte 0x0f, 0x13, 0x32, 0x17, 0x1b, 0x39, 0x18, 0x32, 0x2e, 0x32, 0x1e, 0x24, 0x1d, 0x31, 0x12, 0x1d, 0x2b, 0x14, 0x0c, 0x27, 0x36, 0x2e, 0x32, 0x06, 0x0a, 0x1a, 0x28, 0x28, 0x20, 0x3a, 0x3a, 0x17 - .byte 0x08, 0x27, 0x36, 0x18, 0x1a, 0x10, 0x1e, 0x26, 0x1b, 0x1f, 0x33, 0x1f, 0x21, 0x17, 0x2f, 0x01, 0x08, 0x20, 0x35, 0x03, 0x19, 0x3b, 0x02, 0x20, 0x02, 0x2d, 0x23, 0x0e, 0x17, 0x32, 0x31, 0x29 - .byte 0x11, 0x22, 0x17, 0x22, 0x3a, 0x2c, 0x23, 0x34, 0x20, 0x18, 0x00, 0x3a, 0x22, 0x25, 0x33, 0x21, 0x33, 0x04, 0x27, 0x04, 0x18, 0x32, 0x2c, 0x0c, 0x2f, 0x28, 0x14, 0x2c, 0x3f, 0x30, 0x2b, 0x30 - .byte 0x21, 0x1d, 0x01, 0x25, 0x32, 0x05, 0x23, 0x34, 0x24, 0x10, 0x30, 0x3d, 0x14, 0x1b, 0x3f, 0x38, 0x2f, 0x22, 0x1b, 0x32, 0x25, 0x07, 0x37, 0x0a, 0x0c, 0x1d, 0x03, 0x1e, 0x1a, 0x0f, 0x3c, 0x12 - .byte 0x11, 0x18, 0x1d, 0x00, 0x35, 0x2f, 0x32, 0x18, 0x14, 0x23, 0x30, 0x1b, 0x11, 0x3d, 0x12, 0x1a, 0x16, 0x35, 0x28, 0x05, 0x24, 0x17, 0x3d, 0x37, 0x2e, 0x09, 0x2e, 0x18, 0x1d, 0x17, 0x20, 0x1f - .byte 0x18, 0x23, 0x2c, 0x2f, 0x20, 0x3f, 0x16, 0x3f, 0x29, 0x2e, 0x23, 0x3b, 0x29, 0x18, 0x39, 0x13, 0x1e, 0x32, 0x35, 0x14, 0x1d, 0x2a, 0x35, 0x01, 0x1d, 0x3e, 0x3b, 0x1e, 0x22, 0x1e, 0x16, 0x18 - .byte 0x22, 0x12, 0x3e, 0x29, 0x33, 0x2f, 0x14, 0x19, 0x3b, 0x07, 0x15, 0x06, 0x3d, 0x29, 0x35, 0x37, 0x23, 0x34, 0x1d, 0x2d, 0x18, 0x12, 0x1b, 0x0b, 0x13, 0x24, 0x13, 0x38, 0x1c, 0x1f, 0x0b, 0x1b - .byte 0x13, 0x21, 0x1c, 0x06, 0x39, 0x32, 0x37, 0x3d, 0x26, 0x29, 0x26, 0x15, 0x3c, 0x33, 0x27, 0x00, 0x01, 0x2e, 0x15, 0x18, 0x31, 0x0d, 0x2c, 0x13, 0x27, 0x3b, 0x20, 0x2d, 0x01, 0x26, 0x23, 0x15 - .byte 0x30, 0x24, 0x00, 0x17, 0x37, 0x3f, 0x33, 0x25, 0x24, 0x31, 0x06, 0x3b, 0x37, 0x03, 0x18, 0x1a, 0x2c, 0x34, 0x14, 0x1d, 0x36, 0x18, 0x3a, 0x04, 0x23, 0x12, 0x26, 0x15, 0x2b, 0x19, 0x1a, 0x29 - .byte 0x2c, 0x36, 0x01, 0x19, 0x1d, 0x2f, 0x06, 0x2b, 0x0c, 0x12, 0x26, 0x36, 0x32, 0x1d, 0x0d, 0x12, 0x28, 0x03, 0x28, 0x13, 0x29, 0x06, 0x17, 0x03, 0x38, 0x21, 0x30, 0x2c, 0x10, 0x22, 0x00, 0x28 - .byte 0x24, 0x3b, 0x1c, 0x20, 0x3e, 0x13, 0x02, 0x0c, 0x19, 0x29, 0x2c, 0x1a, 0x39, 0x30, 0x22, 0x2a, 0x1f, 0x22, 0x14, 0x34, 0x2c, 0x14, 0x25, 0x1b, 0x06, 0x3b, 0x15, 0x06, 0x1c, 0x13, 0x15, 0x03 - .byte 0x18, 0x1e, 0x2a, 0x1b, 0x17, 0x25, 0x2f, 0x1c, 0x29, 0x2e, 0x02, 0x32, 0x1e, 0x1d, 0x28, 0x35, 0x36, 0x03, 0x34, 0x16, 0x3d, 0x2a, 0x12, 0x0d, 0x13, 0x1d, 0x2d, 0x21, 0x32, 0x17, 0x2e, 0x1a - .byte 0x15, 0x26, 0x22, 0x2f, 0x15, 0x3c, 0x0e, 0x20, 0x2f, 0x27, 0x13, 0x04, 0x09, 0x32, 0x1e, 0x01, 0x34, 0x06, 0x16, 0x1e, 0x2e, 0x1b, 0x1c, 0x28, 0x13, 0x2a, 0x30, 0x34, 0x12, 0x12, 0x32, 0x18 - .byte 0x1d, 0x1d, 0x35, 0x07, 0x1c, 0x16, 0x2d, 0x3d, 0x35, 0x1c, 0x1b, 0x24, 0x21, 0x2d, 0x1e, 0x10, 0x09, 0x14, 0x3d, 0x11, 0x12, 0x25, 0x02, 0x26, 0x23, 0x02, 0x19, 0x19, 0x05, 0x14, 0x0b, 0x21 - .byte 0x1a, 0x09, 0x02, 0x2c, 0x18, 0x28, 0x2d, 0x1e, 0x10, 0x12, 0x2e, 0x18, 0x2e, 0x1f, 0x02, 0x2c, 0x14, 0x17, 0x24, 0x39, 0x08, 0x32, 0x16, 0x14, 0x22, 0x16, 0x28, 0x21, 0x11, 0x10, 0x2c, 0x23 - .byte 0x36, 0x2b, 0x39, 0x21, 0x26, 0x0e, 0x06, 0x2d, 0x3c, 0x3e, 0x26, 0x2a, 0x1b, 0x1f, 0x00, 0x3c, 0x33, 0x35, 0x3f, 0x14, 0x00, 0x0b, 0x10, 0x34, 0x3c, 0x17, 0x2d, 0x07, 0x1f, 0x24, 0x39, 0x27 - .byte 0x16, 0x00, 0x1d, 0x33, 0x2b, 0x1e, 0x0f, 0x08, 0x31, 0x3a, 0x09, 0x13, 0x0c, 0x21, 0x1c, 0x2a, 0x17, 0x34, 0x29, 0x27, 0x10, 0x37, 0x1b, 0x18, 0x15, 0x08, 0x2f, 0x1f, 0x16, 0x12, 0x1f, 0x28 - .byte 0x34, 0x1c, 0x20, 0x22, 0x12, 0x01, 0x12, 0x21, 0x31, 0x10, 0x22, 0x26, 0x1e, 0x01, 0x3d, 0x11, 0x1e, 0x27, 0x25, 0x3d, 0x30, 0x24, 0x1d, 0x11, 0x22, 0x36, 0x30, 0x16, 0x1f, 0x3e, 0x2a, 0x3c - .byte 0x27, 0x1b, 0x1f, 0x29, 0x10, 0x1e, 0x05, 0x2a, 0x0a, 0x10, 0x14, 0x1f, 0x00, 0x2e, 0x0b, 0x3b, 0x18, 0x0a, 0x39, 0x30, 0x37, 0x0b, 0x1f, 0x1d, 0x0a, 0x29, 0x3e, 0x1c, 0x33, 0x13, 0x2e, 0x28 - .byte 0x27, 0x1b, 0x1e, 0x1d, 0x02, 0x1c, 0x01, 0x25, 0x14, 0x3a, 0x10, 0x1c, 0x12, 0x05, 0x2a, 0x30, 0x20, 0x26, 0x2f, 0x2e, 0x2e, 0x03, 0x07, 0x24, 0x36, 0x04, 0x2b, 0x11, 0x25, 0x2d, 0x28, 0x0e - .byte 0x2e, 0x0f, 0x1d, 0x15, 0x1c, 0x28, 0x30, 0x1f, 0x23, 0x26, 0x36, 0x12, 0x37, 0x3a, 0x31, 0x10, 0x2c, 0x2c, 0x2f, 0x1a, 0x0d, 0x15, 0x3f, 0x3c, 0x32, 0x35, 0x1c, 0x16, 0x33, 0x16, 0x28, 0x1d - .byte 0x3f, 0x21, 0x2c, 0x3e, 0x2b, 0x24, 0x23, 0x2f, 0x32, 0x15, 0x2a, 0x1b, 0x10, 0x35, 0x18, 0x37, 0x10, 0x3b, 0x1e, 0x11, 0x2b, 0x16, 0x24, 0x1d, 0x16, 0x26, 0x3c, 0x2d, 0x11, 0x15, 0x28, 0x28 - .byte 0x27, 0x27, 0x27, 0x3b, 0x3a, 0x16, 0x1a, 0x0c, 0x1a, 0x15, 0x08, 0x25, 0x0b, 0x10, 0x22, 0x1a, 0x3e, 0x17, 0x28, 0x1f, 0x1e, 0x01, 0x1e, 0x1e, 0x1c, 0x2f, 0x10, 0x25, 0x0b, 0x34, 0x3e, 0x0c - .byte 0x1a, 0x1b, 0x10, 0x2a, 0x0f, 0x14, 0x17, 0x0f, 0x3f, 0x17, 0x03, 0x15, 0x1f, 0x02, 0x36, 0x17, 0x15, 0x1d, 0x18, 0x08, 0x36, 0x10, 0x14, 0x0d, 0x2b, 0x0a, 0x05, 0x1d, 0x26, 0x12, 0x1e, 0x3e - .byte 0x18, 0x19, 0x36, 0x18, 0x37, 0x17, 0x39, 0x2e, 0x0d, 0x04, 0x19, 0x16, 0x22, 0x15, 0x3e, 0x26, 0x1f, 0x00, 0x06, 0x17, 0x33, 0x22, 0x1d, 0x2b, 0x39, 0x2b, 0x3e, 0x31, 0x1c, 0x22, 0x3f, 0x13 - .byte 0x30, 0x1c, 0x31, 0x07, 0x2b, 0x14, 0x32, 0x35, 0x1e, 0x02, 0x07, 0x20, 0x0f, 0x3b, 0x11, 0x20, 0x07, 0x12, 0x2a, 0x30, 0x1d, 0x28, 0x38, 0x36, 0x20, 0x01, 0x17, 0x15, 0x20, 0x21, 0x3a, 0x1b - .byte 0x1e, 0x38, 0x12, 0x24, 0x03, 0x3e, 0x1f, 0x29, 0x1d, 0x13, 0x20, 0x27, 0x19, 0x12, 0x25, 0x20, 0x32, 0x33, 0x2b, 0x3f, 0x05, 0x31, 0x35, 0x3c, 0x2d, 0x2d, 0x02, 0x2e, 0x10, 0x2a, 0x16, 0x17 - .byte 0x08, 0x31, 0x17, 0x2e, 0x2b, 0x30, 0x1e, 0x15, 0x31, 0x15, 0x26, 0x08, 0x10, 0x33, 0x15, 0x01, 0x27, 0x12, 0x07, 0x2f, 0x29, 0x27, 0x34, 0x3f, 0x08, 0x31, 0x1c, 0x20, 0x1a, 0x33, 0x0c, 0x13 - .byte 0x18, 0x31, 0x24, 0x37, 0x2d, 0x2e, 0x21, 0x18, 0x24, 0x3a, 0x27, 0x31, 0x35, 0x3e, 0x30, 0x3a, 0x14, 0x33, 0x0f, 0x1a, 0x2d, 0x30, 0x2e, 0x11, 0x1a, 0x31, 0x1d, 0x17, 0x3c, 0x18, 0x33, 0x31 - .byte 0x23, 0x1d, 0x39, 0x2d, 0x10, 0x1d, 0x2f, 0x24, 0x15, 0x1c, 0x25, 0x01, 0x2b, 0x22, 0x16, 0x2e, 0x1b, 0x25, 0x35, 0x37, 0x10, 0x26, 0x39, 0x01, 0x36, 0x17, 0x2b, 0x14, 0x09, 0x16, 0x17, 0x20 - .byte 0x28, 0x23, 0x26, 0x3a, 0x26, 0x27, 0x2a, 0x24, 0x36, 0x02, 0x2c, 0x29, 0x30, 0x35, 0x36, 0x01, 0x1f, 0x28, 0x3b, 0x1d, 0x23, 0x1e, 0x2d, 0x11, 0x1e, 0x2c, 0x2f, 0x32, 0x19, 0x3f, 0x26, 0x31 - .byte 0x38, 0x1e, 0x17, 0x05, 0x18, 0x2e, 0x00, 0x2e, 0x12, 0x34, 0x3f, 0x34, 0x16, 0x10, 0x29, 0x20, 0x3d, 0x36, 0x2f, 0x16, 0x25, 0x12, 0x17, 0x10, 0x21, 0x37, 0x35, 0x25, 0x37, 0x2d, 0x01, 0x08 - .byte 0x27, 0x03, 0x1f, 0x29, 0x0d, 0x2a, 0x16, 0x3a, 0x3f, 0x33, 0x2b, 0x19, 0x1d, 0x2a, 0x1f, 0x29, 0x28, 0x2c, 0x10, 0x28, 0x30, 0x10, 0x39, 0x14, 0x1b, 0x00, 0x18, 0x21, 0x28, 0x0c, 0x37, 0x11 - .byte 0x10, 0x11, 0x3c, 0x33, 0x32, 0x33, 0x36, 0x1a, 0x36, 0x00, 0x1c, 0x31, 0x1b, 0x1d, 0x38, 0x1d, 0x10, 0x3c, 0x39, 0x27, 0x3a, 0x3f, 0x14, 0x19, 0x12, 0x14, 0x0d, 0x1f, 0x18, 0x00, 0x25, 0x18 - .byte 0x28, 0x1c, 0x32, 0x27, 0x03, 0x1a, 0x26, 0x2d, 0x2a, 0x29, 0x28, 0x27, 0x0a, 0x2a, 0x18, 0x0a, 0x1a, 0x30, 0x20, 0x1a, 0x2e, 0x06, 0x0b, 0x1d, 0x0f, 0x0c, 0x1c, 0x35, 0x28, 0x1c, 0x3d, 0x16 - .byte 0x23, 0x21, 0x1c, 0x31, 0x14, 0x1c, 0x2e, 0x22, 0x32, 0x35, 0x09, 0x29, 0x30, 0x20, 0x1a, 0x10, 0x31, 0x3f, 0x2c, 0x0a, 0x3d, 0x37, 0x0b, 0x2e, 0x2d, 0x1f, 0x22, 0x31, 0x06, 0x07, 0x29, 0x22 - .byte 0x17, 0x2d, 0x30, 0x11, 0x18, 0x0c, 0x19, 0x15, 0x07, 0x0a, 0x34, 0x18, 0x29, 0x27, 0x33, 0x0c, 0x30, 0x03, 0x1a, 0x37, 0x06, 0x01, 0x2d, 0x0f, 0x3b, 0x2b, 0x11, 0x1f, 0x37, 0x2b, 0x21, 0x36 - .byte 0x3f, 0x23, 0x17, 0x17, 0x07, 0x2b, 0x2b, 0x0e, 0x30, 0x11, 0x39, 0x1d, 0x29, 0x03, 0x33, 0x30, 0x03, 0x2f, 0x3c, 0x20, 0x26, 0x03, 0x22, 0x14, 0x3a, 0x28, 0x35, 0x01, 0x28, 0x2b, 0x3e, 0x15 - .byte 0x18, 0x30, 0x07, 0x17, 0x3b, 0x2c, 0x30, 0x15, 0x07, 0x2c, 0x17, 0x27, 0x1d, 0x3f, 0x1e, 0x33, 0x0d, 0x17, 0x10, 0x15, 0x0e, 0x30, 0x09, 0x05, 0x30, 0x2d, 0x20, 0x15, 0x3c, 0x3d, 0x30, 0x0c - .byte 0x17, 0x1c, 0x1a, 0x0d, 0x25, 0x2b, 0x2b, 0x2a, 0x02, 0x16, 0x2d, 0x17, 0x31, 0x17, 0x00, 0x08, 0x13, 0x37, 0x35, 0x21, 0x1e, 0x1c, 0x1f, 0x2b, 0x32, 0x1c, 0x10, 0x2a, 0x16, 0x3a, 0x33, 0x31 - .byte 0x17, 0x2b, 0x2a, 0x0c, 0x3d, 0x11, 0x28, 0x0a, 0x30, 0x23, 0x0a, 0x26, 0x0a, 0x14, 0x24, 0x0b, 0x0f, 0x30, 0x1b, 0x1e, 0x29, 0x02, 0x35, 0x28, 0x3b, 0x02, 0x14, 0x00, 0x0f, 0x35, 0x1c, 0x3c - .byte 0x2e, 0x28, 0x38, 0x19, 0x1b, 0x11, 0x12, 0x09, 0x16, 0x10, 0x2e, 0x0d, 0x20, 0x3d, 0x04, 0x32, 0x16, 0x2c, 0x25, 0x02, 0x3d, 0x18, 0x0b, 0x13, 0x1c, 0x22, 0x2a, 0x1c, 0x20, 0x27, 0x22, 0x05 - .byte 0x26, 0x22, 0x12, 0x1d, 0x2c, 0x08, 0x05, 0x2e, 0x3f, 0x1c, 0x17, 0x24, 0x0d, 0x33, 0x36, 0x08, 0x24, 0x10, 0x22, 0x29, 0x1c, 0x0a, 0x11, 0x25, 0x0f, 0x10, 0x24, 0x38, 0x2f, 0x25, 0x32, 0x1e - .byte 0x06, 0x2a, 0x29, 0x3e, 0x3a, 0x28, 0x34, 0x17, 0x33, 0x18, 0x33, 0x17, 0x07, 0x14, 0x1f, 0x11, 0x17, 0x20, 0x13, 0x0e, 0x14, 0x3b, 0x1c, 0x12, 0x2a, 0x13, 0x37, 0x2a, 0x35, 0x32, 0x30, 0x02 - .byte 0x25, 0x00, 0x07, 0x1f, 0x0c, 0x04, 0x2c, 0x37, 0x37, 0x30, 0x25, 0x12, 0x25, 0x12, 0x22, 0x21, 0x22, 0x35, 0x33, 0x07, 0x20, 0x2d, 0x27, 0x0e, 0x30, 0x34, 0x19, 0x1a, 0x0a, 0x3c, 0x25, 0x07 - .byte 0x1d, 0x2b, 0x31, 0x3a, 0x12, 0x1a, 0x3d, 0x37, 0x16, 0x15, 0x16, 0x39, 0x13, 0x15, 0x2d, 0x03, 0x2e, 0x06, 0x39, 0x2c, 0x16, 0x00, 0x13, 0x35, 0x2a, 0x35, 0x24, 0x01, 0x18, 0x24, 0x37, 0x28 - .byte 0x25, 0x1b, 0x34, 0x25, 0x19, 0x17, 0x27, 0x2f, 0x1b, 0x27, 0x0d, 0x10, 0x36, 0x3c, 0x30, 0x3c, 0x33, 0x23, 0x3e, 0x27, 0x1e, 0x25, 0x2d, 0x29, 0x1f, 0x12, 0x21, 0x37, 0x32, 0x1f, 0x11, 0x21 - .byte 0x35, 0x30, 0x0c, 0x19, 0x25, 0x3d, 0x26, 0x17, 0x02, 0x1d, 0x14, 0x2e, 0x11, 0x38, 0x13, 0x30, 0x0a, 0x2b, 0x20, 0x1e, 0x10, 0x15, 0x37, 0x30, 0x2e, 0x1e, 0x04, 0x2c, 0x14, 0x34, 0x19, 0x08 - .byte 0x14, 0x18, 0x0e, 0x1c, 0x30, 0x1a, 0x2e, 0x1b, 0x1f, 0x39, 0x31, 0x0c, 0x1c, 0x28, 0x3e, 0x33, 0x23, 0x0f, 0x13, 0x16, 0x25, 0x39, 0x2f, 0x14, 0x1b, 0x1a, 0x28, 0x3e, 0x21, 0x2d, 0x19, 0x11 - .byte 0x0c, 0x34, 0x32, 0x39, 0x31, 0x19, 0x1a, 0x08, 0x34, 0x09, 0x2f, 0x11, 0x30, 0x04, 0x1c, 0x02, 0x3b, 0x1b, 0x33, 0x21, 0x33, 0x38, 0x02, 0x1a, 0x31, 0x38, 0x32, 0x1f, 0x1d, 0x16, 0x17, 0x10 - .byte 0x1b, 0x32, 0x20, 0x17, 0x00, 0x33, 0x12, 0x21, 0x0f, 0x27, 0x14, 0x19, 0x27, 0x24, 0x2c, 0x37, 0x25, 0x05, 0x2f, 0x3d, 0x25, 0x11, 0x12, 0x30, 0x1a, 0x16, 0x03, 0x1a, 0x14, 0x09, 0x13, 0x02 - .byte 0x23, 0x22, 0x01, 0x3c, 0x10, 0x3f, 0x2d, 0x23, 0x31, 0x3f, 0x23, 0x17, 0x00, 0x33, 0x3f, 0x0f, 0x2f, 0x26, 0x07, 0x15, 0x21, 0x2b, 0x2a, 0x38, 0x39, 0x1e, 0x09, 0x25, 0x2b, 0x3b, 0x30, 0x25 - .byte 0x12, 0x2d, 0x13, 0x32, 0x19, 0x28, 0x24, 0x1c, 0x2d, 0x35, 0x32, 0x26, 0x0d, 0x23, 0x1e, 0x1d, 0x07, 0x21, 0x0b, 0x34, 0x17, 0x2d, 0x32, 0x32, 0x3a, 0x3c, 0x35, 0x1a, 0x10, 0x33, 0x1a, 0x07 - .byte 0x22, 0x3b, 0x1b, 0x2a, 0x33, 0x1f, 0x26, 0x0e, 0x35, 0x1a, 0x3b, 0x0a, 0x1c, 0x11, 0x07, 0x11, 0x0d, 0x3c, 0x2d, 0x1e, 0x37, 0x29, 0x11, 0x05, 0x12, 0x15, 0x2f, 0x1c, 0x24, 0x31, 0x16, 0x2b - .byte 0x21, 0x1b, 0x23, 0x10, 0x31, 0x02, 0x14, 0x29, 0x26, 0x20, 0x16, 0x10, 0x17, 0x10, 0x0b, 0x0f, 0x33, 0x01, 0x2e, 0x14, 0x21, 0x0e, 0x37, 0x1a, 0x1d, 0x2f, 0x1e, 0x30, 0x24, 0x04, 0x14, 0x2d - .byte 0x11, 0x00, 0x30, 0x08, 0x2a, 0x1d, 0x1d, 0x22, 0x21, 0x24, 0x2c, 0x37, 0x24, 0x11, 0x12, 0x04, 0x2e, 0x28, 0x1d, 0x18, 0x23, 0x3c, 0x16, 0x16, 0x10, 0x17, 0x31, 0x20, 0x21, 0x12, 0x33, 0x3e - .byte 0x34, 0x06, 0x13, 0x13, 0x17, 0x38, 0x2b, 0x14, 0x0d, 0x15, 0x24, 0x3b, 0x2b, 0x34, 0x3b, 0x1e, 0x18, 0x07, 0x34, 0x37, 0x1d, 0x1f, 0x0b, 0x29, 0x20, 0x12, 0x1e, 0x1d, 0x1a, 0x24, 0x24, 0x3d - .byte 0x28, 0x24, 0x0b, 0x12, 0x33, 0x1b, 0x3a, 0x22, 0x14, 0x13, 0x2a, 0x31, 0x38, 0x15, 0x37, 0x2b, 0x2e, 0x19, 0x1e, 0x2c, 0x3f, 0x1b, 0x2a, 0x33, 0x1f, 0x33, 0x3f, 0x15, 0x29, 0x01, 0x1e, 0x18 - .byte 0x1f, 0x22, 0x19, 0x33, 0x3c, 0x34, 0x1e, 0x12, 0x22, 0x0d, 0x37, 0x2c, 0x0f, 0x08, 0x31, 0x2e, 0x09, 0x36, 0x01, 0x05, 0x1e, 0x1c, 0x04, 0x1e, 0x0c, 0x01, 0x1c, 0x29, 0x28, 0x2f, 0x39, 0x2d - .byte 0x14, 0x09, 0x22, 0x36, 0x04, 0x37, 0x37, 0x2d, 0x2f, 0x35, 0x24, 0x23, 0x1b, 0x08, 0x20, 0x32, 0x20, 0x1f, 0x34, 0x02, 0x31, 0x19, 0x18, 0x13, 0x36, 0x06, 0x2b, 0x1e, 0x0e, 0x1b, 0x10, 0x2f - .byte 0x0e, 0x1c, 0x11, 0x38, 0x13, 0x01, 0x37, 0x19, 0x14, 0x11, 0x26, 0x31, 0x3d, 0x33, 0x1d, 0x1b, 0x34, 0x25, 0x31, 0x2f, 0x11, 0x0a, 0x2f, 0x39, 0x17, 0x1b, 0x05, 0x0e, 0x13, 0x29, 0x25, 0x22 - .byte 0x15, 0x0d, 0x20, 0x2b, 0x27, 0x21, 0x3e, 0x24, 0x27, 0x2a, 0x2b, 0x16, 0x24, 0x3d, 0x15, 0x15, 0x30, 0x31, 0x0f, 0x33, 0x24, 0x06, 0x16, 0x13, 0x06, 0x31, 0x10, 0x2e, 0x3f, 0x10, 0x05, 0x0d - .byte 0x2f, 0x3c, 0x1f, 0x19, 0x12, 0x13, 0x24, 0x0f, 0x33, 0x36, 0x15, 0x3b, 0x33, 0x03, 0x0f, 0x2a, 0x3b, 0x3c, 0x2c, 0x36, 0x09, 0x29, 0x11, 0x3b, 0x27, 0x28, 0x2b, 0x31, 0x1a, 0x0e, 0x2f, 0x39 - .byte 0x2c, 0x31, 0x0e, 0x3c, 0x35, 0x2c, 0x24, 0x33, 0x3d, 0x11, 0x2b, 0x07, 0x3c, 0x37, 0x14, 0x18, 0x13, 0x1d, 0x3f, 0x2e, 0x30, 0x12, 0x25, 0x26, 0x1d, 0x11, 0x07, 0x11, 0x1e, 0x34, 0x01, 0x11 - .byte 0x0b, 0x39, 0x21, 0x29, 0x02, 0x29, 0x15, 0x10, 0x1a, 0x30, 0x1f, 0x35, 0x3c, 0x2b, 0x2a, 0x30, 0x3b, 0x36, 0x20, 0x1a, 0x23, 0x32, 0x24, 0x2b, 0x15, 0x20, 0x1c, 0x25, 0x3d, 0x36, 0x2d, 0x14 - .byte 0x31, 0x18, 0x23, 0x17, 0x18, 0x05, 0x13, 0x34, 0x30, 0x37, 0x0e, 0x39, 0x23, 0x1d, 0x1f, 0x17, 0x01, 0x15, 0x2f, 0x0b, 0x3e, 0x1b, 0x0d, 0x19, 0x2e, 0x31, 0x38, 0x1c, 0x15, 0x34, 0x15, 0x13 - .byte 0x19, 0x29, 0x19, 0x14, 0x27, 0x15, 0x18, 0x23, 0x29, 0x0c, 0x27, 0x2d, 0x0e, 0x17, 0x34, 0x18, 0x10, 0x3b, 0x1e, 0x29, 0x34, 0x2c, 0x22, 0x31, 0x08, 0x13, 0x1d, 0x18, 0x1a, 0x1c, 0x0b, 0x2a - .byte 0x19, 0x1e, 0x1a, 0x23, 0x27, 0x17, 0x3b, 0x0e, 0x37, 0x19, 0x2b, 0x16, 0x2f, 0x08, 0x21, 0x37, 0x02, 0x20, 0x0b, 0x32, 0x30, 0x16, 0x05, 0x30, 0x13, 0x05, 0x1a, 0x07, 0x39, 0x19, 0x0c, 0x3b - .byte 0x2a, 0x15, 0x05, 0x30, 0x30, 0x05, 0x19, 0x13, 0x00, 0x12, 0x27, 0x16, 0x2a, 0x0f, 0x28, 0x27, 0x0c, 0x23, 0x2f, 0x39, 0x28, 0x2a, 0x24, 0x25, 0x1f, 0x18, 0x29, 0x14, 0x16, 0x05, 0x1a, 0x35 - .byte 0x2f, 0x26, 0x0a, 0x3a, 0x29, 0x34, 0x2c, 0x36, 0x2e, 0x3a, 0x15, 0x1a, 0x0a, 0x2d, 0x16, 0x14, 0x2e, 0x35, 0x28, 0x2a, 0x35, 0x0f, 0x11, 0x11, 0x32, 0x19, 0x20, 0x1a, 0x28, 0x17, 0x1a, 0x28 - .byte 0x16, 0x33, 0x25, 0x13, 0x2c, 0x29, 0x09, 0x16, 0x33, 0x1d, 0x27, 0x26, 0x15, 0x0c, 0x2f, 0x22, 0x1c, 0x19, 0x29, 0x33, 0x10, 0x2d, 0x11, 0x1b, 0x16, 0x19, 0x2e, 0x0d, 0x0c, 0x28, 0x37, 0x3a - .byte 0x34, 0x2a, 0x1d, 0x37, 0x30, 0x0a, 0x36, 0x24, 0x39, 0x1b, 0x39, 0x0a, 0x32, 0x11, 0x03, 0x2d, 0x32, 0x1d, 0x30, 0x38, 0x1e, 0x27, 0x2e, 0x17, 0x18, 0x16, 0x17, 0x2a, 0x36, 0x3b, 0x31, 0x17 - .byte 0x04, 0x19, 0x3a, 0x25, 0x2d, 0x00, 0x36, 0x27, 0x25, 0x12, 0x33, 0x06, 0x0a, 0x14, 0x11, 0x05, 0x2f, 0x03, 0x35, 0x2f, 0x0b, 0x34, 0x29, 0x00, 0x31, 0x13, 0x27, 0x0f, 0x1c, 0x1d, 0x06, 0x2d - .byte 0x1c, 0x30, 0x27, 0x2f, 0x2a, 0x27, 0x16, 0x20, 0x31, 0x33, 0x2b, 0x2b, 0x05, 0x30, 0x36, 0x29, 0x23, 0x35, 0x10, 0x16, 0x2f, 0x2d, 0x20, 0x29, 0x37, 0x13, 0x24, 0x2d, 0x0e, 0x25, 0x08, 0x0a - .byte 0x18, 0x0f, 0x03, 0x1b, 0x31, 0x0c, 0x37, 0x1e, 0x34, 0x31, 0x1b, 0x0e, 0x25, 0x1a, 0x07, 0x34, 0x0d, 0x3c, 0x33, 0x00, 0x3a, 0x36, 0x04, 0x27, 0x12, 0x23, 0x18, 0x24, 0x0d, 0x0b, 0x18, 0x31 - .byte 0x32, 0x37, 0x00, 0x0d, 0x21, 0x32, 0x10, 0x12, 0x26, 0x0d, 0x19, 0x29, 0x24, 0x2b, 0x3d, 0x21, 0x1f, 0x1e, 0x1b, 0x28, 0x0d, 0x12, 0x28, 0x35, 0x1e, 0x23, 0x0a, 0x2e, 0x22, 0x27, 0x27, 0x35 - .byte 0x01, 0x0e, 0x20, 0x31, 0x39, 0x29, 0x3b, 0x24, 0x36, 0x14, 0x10, 0x33, 0x18, 0x2c, 0x26, 0x04, 0x2d, 0x15, 0x1a, 0x11, 0x37, 0x0f, 0x0b, 0x14, 0x0e, 0x2c, 0x2c, 0x21, 0x17, 0x2c, 0x16, 0x21 - .byte 0x35, 0x3e, 0x10, 0x10, 0x0a, 0x05, 0x1e, 0x3b, 0x09, 0x13, 0x26, 0x18, 0x1e, 0x23, 0x0c, 0x1a, 0x33, 0x37, 0x1f, 0x09, 0x12, 0x35, 0x3d, 0x0d, 0x15, 0x36, 0x06, 0x24, 0x33, 0x30, 0x29, 0x3b - .byte 0x0f, 0x28, 0x34, 0x2a, 0x2c, 0x02, 0x12, 0x35, 0x09, 0x22, 0x31, 0x3b, 0x31, 0x1c, 0x33, 0x22, 0x27, 0x3d, 0x34, 0x15, 0x14, 0x22, 0x28, 0x28, 0x10, 0x1e, 0x21, 0x31, 0x10, 0x2d, 0x16, 0x21 - .byte 0x1e, 0x05, 0x33, 0x0f, 0x30, 0x31, 0x0e, 0x1a, 0x35, 0x38, 0x2e, 0x28, 0x26, 0x37, 0x1e, 0x2b, 0x13, 0x33, 0x1f, 0x1e, 0x37, 0x0a, 0x28, 0x24, 0x32, 0x1c, 0x1a, 0x1f, 0x3f, 0x19, 0x39, 0x39 - .byte 0x29, 0x2c, 0x1b, 0x14, 0x15, 0x2a, 0x17, 0x32, 0x0f, 0x21, 0x30, 0x21, 0x18, 0x23, 0x2a, 0x27, 0x3d, 0x07, 0x10, 0x0b, 0x3f, 0x2f, 0x31, 0x02, 0x2e, 0x08, 0x39, 0x2f, 0x3f, 0x20, 0x18, 0x2d - .byte 0x34, 0x11, 0x2e, 0x34, 0x10, 0x26, 0x12, 0x23, 0x25, 0x0a, 0x37, 0x34, 0x09, 0x25, 0x0a, 0x3e, 0x16, 0x1a, 0x17, 0x11, 0x38, 0x1c, 0x20, 0x11, 0x21, 0x26, 0x05, 0x0f, 0x18, 0x26, 0x2b, 0x32 - .byte 0x0a, 0x0c, 0x16, 0x03, 0x29, 0x1d, 0x29, 0x3b, 0x23, 0x16, 0x1b, 0x29, 0x07, 0x09, 0x17, 0x17, 0x2c, 0x1c, 0x35, 0x33, 0x30, 0x17, 0x12, 0x1e, 0x3d, 0x1a, 0x2b, 0x21, 0x1d, 0x10, 0x0a, 0x08 - .byte 0x17, 0x14, 0x3c, 0x36, 0x28, 0x36, 0x36, 0x3b, 0x20, 0x1b, 0x13, 0x22, 0x1d, 0x13, 0x3a, 0x15, 0x02, 0x23, 0x2c, 0x3e, 0x19, 0x14, 0x39, 0x3c, 0x1a, 0x10, 0x08, 0x1e, 0x0a, 0x13, 0x29, 0x3f - .byte 0x38, 0x2c, 0x07, 0x23, 0x1f, 0x19, 0x2a, 0x24, 0x14, 0x3c, 0x1f, 0x0d, 0x04, 0x37, 0x1a, 0x2f, 0x28, 0x2a, 0x1d, 0x1e, 0x11, 0x37, 0x29, 0x28, 0x27, 0x12, 0x0d, 0x00, 0x26, 0x0a, 0x3c, 0x26 - .byte 0x1f, 0x1c, 0x33, 0x04, 0x3a, 0x2c, 0x24, 0x3d, 0x2b, 0x26, 0x31, 0x2f, 0x13, 0x1c, 0x21, 0x3e, 0x12, 0x23, 0x36, 0x0a, 0x1a, 0x2d, 0x1e, 0x19, 0x05, 0x1f, 0x1b, 0x1e, 0x0a, 0x1f, 0x20, 0x08 - .byte 0x24, 0x2c, 0x0c, 0x33, 0x1d, 0x1f, 0x11, 0x0e, 0x12, 0x10, 0x27, 0x12, 0x19, 0x2a, 0x13, 0x31, 0x1c, 0x04, 0x30, 0x1a, 0x38, 0x1f, 0x2c, 0x35, 0x25, 0x07, 0x0b, 0x33, 0x2d, 0x02, 0x1a, 0x2a - .byte 0x35, 0x35, 0x16, 0x2f, 0x14, 0x11, 0x31, 0x33, 0x2c, 0x31, 0x1e, 0x3c, 0x3a, 0x27, 0x3c, 0x2b, 0x12, 0x27, 0x1d, 0x12, 0x36, 0x2c, 0x2b, 0x25, 0x3b, 0x35, 0x12, 0x3d, 0x27, 0x13, 0x23, 0x19 - .byte 0x33, 0x2c, 0x26, 0x09, 0x3c, 0x12, 0x15, 0x1a, 0x23, 0x21, 0x07, 0x1a, 0x22, 0x25, 0x20, 0x19, 0x1b, 0x2c, 0x3a, 0x19, 0x35, 0x05, 0x26, 0x1d, 0x23, 0x22, 0x25, 0x0e, 0x1e, 0x11, 0x13, 0x30 - .byte 0x12, 0x2c, 0x22, 0x25, 0x0a, 0x1d, 0x18, 0x23, 0x3e, 0x1d, 0x02, 0x28, 0x25, 0x21, 0x0e, 0x20, 0x21, 0x22, 0x37, 0x18, 0x33, 0x27, 0x23, 0x23, 0x31, 0x24, 0x1a, 0x1a, 0x3e, 0x25, 0x24, 0x24 - .byte 0x01, 0x18, 0x34, 0x10, 0x22, 0x07, 0x00, 0x37, 0x06, 0x20, 0x20, 0x3a, 0x02, 0x2b, 0x07, 0x2c, 0x2c, 0x09, 0x2f, 0x2a, 0x01, 0x32, 0x2c, 0x00, 0x35, 0x13, 0x2b, 0x3c, 0x1f, 0x36, 0x37, 0x1e - .byte 0x20, 0x35, 0x1d, 0x0c, 0x07, 0x33, 0x16, 0x08, 0x12, 0x3f, 0x36, 0x11, 0x0b, 0x1f, 0x2d, 0x21, 0x20, 0x33, 0x17, 0x1a, 0x2e, 0x16, 0x01, 0x2f, 0x2f, 0x1c, 0x34, 0x29, 0x31, 0x2e, 0x3b, 0x38 - .byte 0x31, 0x0d, 0x16, 0x12, 0x07, 0x29, 0x24, 0x33, 0x3c, 0x34, 0x3e, 0x1e, 0x18, 0x30, 0x02, 0x34, 0x2a, 0x34, 0x1b, 0x2e, 0x23, 0x18, 0x34, 0x00, 0x1f, 0x20, 0x0e, 0x28, 0x15, 0x33, 0x37, 0x27 - .byte 0x35, 0x23, 0x37, 0x3e, 0x11, 0x32, 0x2e, 0x36, 0x3a, 0x02, 0x2b, 0x00, 0x36, 0x1d, 0x13, 0x29, 0x16, 0x08, 0x2b, 0x37, 0x08, 0x02, 0x27, 0x32, 0x2d, 0x34, 0x30, 0x36, 0x29, 0x2e, 0x10, 0x12 - .byte 0x3c, 0x2e, 0x2a, 0x04, 0x33, 0x30, 0x3f, 0x01, 0x22, 0x37, 0x14, 0x1d, 0x27, 0x00, 0x2f, 0x0c, 0x39, 0x26, 0x27, 0x04, 0x21, 0x19, 0x08, 0x1d, 0x01, 0x04, 0x1e, 0x27, 0x1b, 0x2b, 0x31, 0x17 - .byte 0x1f, 0x07, 0x01, 0x2d, 0x2e, 0x3b, 0x1f, 0x34, 0x24, 0x31, 0x32, 0x2b, 0x24, 0x0e, 0x07, 0x1e, 0x0f, 0x33, 0x10, 0x16, 0x21, 0x32, 0x39, 0x02, 0x1a, 0x33, 0x3d, 0x22, 0x0c, 0x25, 0x1a, 0x29 - .byte 0x29, 0x28, 0x3a, 0x32, 0x26, 0x0b, 0x13, 0x22, 0x1f, 0x0f, 0x1c, 0x04, 0x2c, 0x20, 0x39, 0x1a, 0x1b, 0x1a, 0x2a, 0x1f, 0x24, 0x13, 0x1a, 0x31, 0x3b, 0x33, 0x39, 0x23, 0x28, 0x31, 0x07, 0x31 - .byte 0x1f, 0x10, 0x20, 0x29, 0x17, 0x32, 0x26, 0x3b, 0x2d, 0x02, 0x3c, 0x1c, 0x0e, 0x00, 0x20, 0x14, 0x3e, 0x37, 0x01, 0x0f, 0x2d, 0x06, 0x12, 0x27, 0x30, 0x13, 0x19, 0x00, 0x33, 0x2a, 0x0c, 0x07 - .byte 0x27, 0x11, 0x3a, 0x1c, 0x15, 0x0a, 0x13, 0x1f, 0x0d, 0x2a, 0x37, 0x07, 0x2a, 0x34, 0x35, 0x34, 0x28, 0x16, 0x27, 0x06, 0x02, 0x36, 0x09, 0x23, 0x30, 0x14, 0x02, 0x28, 0x39, 0x32, 0x34, 0x24 - .byte 0x35, 0x12, 0x12, 0x22, 0x26, 0x09, 0x07, 0x33, 0x0f, 0x3e, 0x1e, 0x00, 0x3c, 0x33, 0x10, 0x37, 0x14, 0x3a, 0x03, 0x25, 0x2d, 0x1e, 0x24, 0x36, 0x36, 0x26, 0x1f, 0x3c, 0x1a, 0x37, 0x33, 0x25 - .byte 0x23, 0x13, 0x1f, 0x33, 0x0d, 0x13, 0x25, 0x30, 0x1e, 0x17, 0x03, 0x18, 0x18, 0x18, 0x14, 0x30, 0x07, 0x22, 0x3e, 0x33, 0x21, 0x14, 0x37, 0x16, 0x16, 0x00, 0x12, 0x2c, 0x12, 0x2f, 0x25, 0x3f - .byte 0x1e, 0x24, 0x19, 0x16, 0x16, 0x0f, 0x35, 0x2d, 0x10, 0x11, 0x24, 0x2a, 0x28, 0x19, 0x25, 0x2e, 0x0c, 0x16, 0x1f, 0x38, 0x21, 0x36, 0x3d, 0x1a, 0x2f, 0x3b, 0x32, 0x12, 0x36, 0x13, 0x29, 0x0e - .byte 0x30, 0x31, 0x19, 0x07, 0x2f, 0x25, 0x23, 0x28, 0x20, 0x08, 0x29, 0x2a, 0x00, 0x30, 0x30, 0x38, 0x23, 0x1e, 0x0f, 0x1f, 0x3b, 0x1b, 0x30, 0x3a, 0x37, 0x2f, 0x39, 0x37, 0x35, 0x39, 0x2d, 0x2f - .byte 0x1f, 0x2e, 0x1e, 0x1a, 0x2b, 0x1e, 0x14, 0x17, 0x20, 0x2f, 0x03, 0x11, 0x1d, 0x00, 0x30, 0x17, 0x2b, 0x1d, 0x35, 0x28, 0x25, 0x3b, 0x0f, 0x11, 0x09, 0x04, 0x2e, 0x23, 0x11, 0x1e, 0x13, 0x37 - .byte 0x1e, 0x37, 0x37, 0x1e, 0x07, 0x01, 0x32, 0x14, 0x06, 0x32, 0x11, 0x0c, 0x2e, 0x36, 0x2e, 0x24, 0x15, 0x2a, 0x1c, 0x22, 0x15, 0x34, 0x2c, 0x1e, 0x35, 0x22, 0x27, 0x33, 0x19, 0x3f, 0x2d, 0x21 - .byte 0x33, 0x15, 0x26, 0x1a, 0x11, 0x16, 0x3e, 0x12, 0x2b, 0x24, 0x15, 0x3c, 0x0f, 0x2d, 0x31, 0x15, 0x36, 0x3f, 0x24, 0x1d, 0x25, 0x01, 0x37, 0x33, 0x16, 0x1a, 0x1f, 0x0e, 0x10, 0x2f, 0x0b, 0x12 - .byte 0x2a, 0x1a, 0x25, 0x17, 0x0a, 0x35, 0x09, 0x28, 0x35, 0x02, 0x13, 0x36, 0x34, 0x2f, 0x17, 0x03, 0x04, 0x31, 0x3e, 0x26, 0x11, 0x35, 0x33, 0x31, 0x22, 0x17, 0x23, 0x1d, 0x05, 0x2b, 0x2e, 0x27 - .byte 0x20, 0x03, 0x2b, 0x1d, 0x01, 0x19, 0x1e, 0x0e, 0x05, 0x18, 0x16, 0x25, 0x17, 0x02, 0x28, 0x18, 0x19, 0x0b, 0x24, 0x3e, 0x35, 0x16, 0x2e, 0x29, 0x25, 0x3e, 0x38, 0x1e, 0x3a, 0x2f, 0x12, 0x14 - .byte 0x17, 0x2d, 0x11, 0x12, 0x30, 0x15, 0x31, 0x18, 0x08, 0x0b, 0x29, 0x2d, 0x00, 0x33, 0x2c, 0x06, 0x1a, 0x14, 0x1c, 0x2e, 0x04, 0x08, 0x12, 0x1b, 0x2b, 0x2d, 0x2a, 0x37, 0x33, 0x10, 0x27, 0x2c - .byte 0x1d, 0x0e, 0x34, 0x20, 0x02, 0x12, 0x1e, 0x1a, 0x2e, 0x07, 0x0b, 0x10, 0x36, 0x1e, 0x33, 0x2b, 0x28, 0x1b, 0x31, 0x25, 0x1f, 0x38, 0x3a, 0x2f, 0x39, 0x30, 0x2f, 0x12, 0x09, 0x14, 0x0e, 0x08 - .byte 0x19, 0x00, 0x0d, 0x2c, 0x1b, 0x0e, 0x34, 0x11, 0x25, 0x15, 0x0c, 0x2d, 0x26, 0x36, 0x2c, 0x16, 0x31, 0x31, 0x2c, 0x03, 0x1a, 0x16, 0x1c, 0x32, 0x14, 0x0a, 0x3e, 0x36, 0x33, 0x1b, 0x27, 0x1f - .byte 0x32, 0x18, 0x33, 0x26, 0x33, 0x1a, 0x13, 0x1a, 0x0f, 0x34, 0x1c, 0x35, 0x2c, 0x2f, 0x38, 0x03, 0x18, 0x15, 0x0f, 0x27, 0x31, 0x29, 0x20, 0x28, 0x0e, 0x28, 0x31, 0x2c, 0x2e, 0x15, 0x19, 0x1b - .byte 0x10, 0x03, 0x2f, 0x2e, 0x2a, 0x32, 0x2a, 0x27, 0x1b, 0x36, 0x04, 0x1e, 0x3b, 0x04, 0x21, 0x07, 0x2f, 0x19, 0x27, 0x1d, 0x1d, 0x3c, 0x3d, 0x2e, 0x25, 0x08, 0x32, 0x3b, 0x34, 0x2a, 0x0c, 0x10 - .byte 0x13, 0x25, 0x35, 0x1a, 0x2f, 0x19, 0x28, 0x17, 0x00, 0x2b, 0x0a, 0x1c, 0x17, 0x0a, 0x11, 0x1b, 0x35, 0x13, 0x37, 0x29, 0x1c, 0x28, 0x0c, 0x31, 0x35, 0x3c, 0x10, 0x1a, 0x1b, 0x3a, 0x2d, 0x3a - .byte 0x1c, 0x18, 0x22, 0x10, 0x2d, 0x1c, 0x3c, 0x12, 0x17, 0x18, 0x2a, 0x0b, 0x2b, 0x2f, 0x2d, 0x04, 0x2e, 0x3c, 0x13, 0x23, 0x01, 0x1c, 0x2e, 0x14, 0x16, 0x22, 0x0c, 0x24, 0x13, 0x35, 0x37, 0x34 - .byte 0x1b, 0x30, 0x1e, 0x3a, 0x1c, 0x20, 0x06, 0x06, 0x36, 0x09, 0x15, 0x1a, 0x1b, 0x1a, 0x27, 0x0f, 0x33, 0x35, 0x37, 0x06, 0x23, 0x3a, 0x12, 0x1d, 0x00, 0x16, 0x29, 0x0e, 0x1d, 0x35, 0x3f, 0x38 - .byte 0x16, 0x2a, 0x3c, 0x34, 0x13, 0x32, 0x10, 0x17, 0x2c, 0x37, 0x29, 0x2a, 0x1e, 0x35, 0x2f, 0x2d, 0x3c, 0x2a, 0x11, 0x28, 0x13, 0x21, 0x19, 0x1e, 0x34, 0x0c, 0x06, 0x2d, 0x09, 0x04, 0x1c, 0x1d - .byte 0x2f, 0x26, 0x39, 0x07, 0x16, 0x14, 0x04, 0x2d, 0x3a, 0x2f, 0x2e, 0x29, 0x15, 0x35, 0x24, 0x02, 0x36, 0x3f, 0x02, 0x1a, 0x0f, 0x18, 0x24, 0x16, 0x1d, 0x19, 0x14, 0x16, 0x10, 0x29, 0x1b, 0x13 - .byte 0x15, 0x0e, 0x19, 0x3a, 0x2e, 0x2b, 0x08, 0x30, 0x15, 0x35, 0x16, 0x30, 0x2e, 0x18, 0x35, 0x3b, 0x0b, 0x1c, 0x3a, 0x18, 0x13, 0x29, 0x13, 0x1e, 0x20, 0x13, 0x27, 0x04, 0x1d, 0x34, 0x00, 0x38 - .byte 0x19, 0x08, 0x39, 0x32, 0x20, 0x10, 0x26, 0x08, 0x02, 0x28, 0x3f, 0x0f, 0x16, 0x30, 0x1f, 0x19, 0x20, 0x2d, 0x10, 0x38, 0x17, 0x1c, 0x18, 0x31, 0x27, 0x33, 0x38, 0x30, 0x16, 0x33, 0x23, 0x00 - .byte 0x01, 0x36, 0x0d, 0x02, 0x23, 0x39, 0x04, 0x1f, 0x0e, 0x30, 0x24, 0x06, 0x01, 0x2c, 0x34, 0x33, 0x35, 0x16, 0x34, 0x2e, 0x32, 0x16, 0x24, 0x26, 0x39, 0x34, 0x1f, 0x3c, 0x1d, 0x28, 0x1d, 0x37 - .byte 0x17, 0x15, 0x2b, 0x27, 0x39, 0x30, 0x0b, 0x1b, 0x18, 0x35, 0x20, 0x2d, 0x0b, 0x35, 0x1c, 0x03, 0x0e, 0x21, 0x06, 0x0c, 0x20, 0x02, 0x18, 0x34, 0x1e, 0x36, 0x2d, 0x16, 0x0c, 0x19, 0x25, 0x09 - .byte 0x2c, 0x37, 0x05, 0x2e, 0x2e, 0x2b, 0x2c, 0x24, 0x1a, 0x14, 0x27, 0x04, 0x10, 0x32, 0x38, 0x33, 0x37, 0x15, 0x35, 0x11, 0x3f, 0x1d, 0x23, 0x23, 0x1f, 0x29, 0x3f, 0x1d, 0x1a, 0x3c, 0x2b, 0x1b - .byte 0x2c, 0x2c, 0x38, 0x3b, 0x36, 0x04, 0x13, 0x33, 0x2c, 0x14, 0x12, 0x1a, 0x09, 0x1b, 0x36, 0x11, 0x24, 0x3a, 0x3f, 0x11, 0x01, 0x0e, 0x2b, 0x3b, 0x03, 0x2a, 0x08, 0x0d, 0x2b, 0x2b, 0x13, 0x27 - .byte 0x3a, 0x3c, 0x1c, 0x3a, 0x15, 0x2a, 0x24, 0x00, 0x17, 0x3e, 0x0a, 0x15, 0x0c, 0x29, 0x2d, 0x1f, 0x15, 0x30, 0x35, 0x18, 0x19, 0x3d, 0x37, 0x37, 0x12, 0x38, 0x1b, 0x3b, 0x02, 0x20, 0x08, 0x21 - .byte 0x19, 0x2e, 0x36, 0x1d, 0x15, 0x3d, 0x24, 0x22, 0x0c, 0x27, 0x36, 0x3f, 0x33, 0x33, 0x12, 0x11, 0x1a, 0x19, 0x1f, 0x2b, 0x24, 0x12, 0x11, 0x2a, 0x18, 0x25, 0x32, 0x2a, 0x2c, 0x1a, 0x12, 0x26 - .byte 0x06, 0x10, 0x11, 0x29, 0x33, 0x2c, 0x09, 0x14, 0x2b, 0x12, 0x2b, 0x1d, 0x03, 0x24, 0x00, 0x12, 0x15, 0x22, 0x3d, 0x26, 0x15, 0x37, 0x1a, 0x0f, 0x12, 0x37, 0x24, 0x01, 0x18, 0x2a, 0x17, 0x13 - .byte 0x14, 0x3b, 0x29, 0x2a, 0x19, 0x32, 0x2d, 0x17, 0x17, 0x0b, 0x2c, 0x33, 0x07, 0x2d, 0x34, 0x07, 0x38, 0x1d, 0x1f, 0x36, 0x22, 0x11, 0x0a, 0x17, 0x14, 0x11, 0x13, 0x2a, 0x17, 0x25, 0x01, 0x3a - .byte 0x1c, 0x26, 0x27, 0x30, 0x2d, 0x3b, 0x35, 0x3a, 0x30, 0x34, 0x06, 0x3a, 0x1c, 0x2d, 0x05, 0x13, 0x21, 0x32, 0x12, 0x3e, 0x1e, 0x2c, 0x3a, 0x3f, 0x2d, 0x20, 0x2a, 0x34, 0x26, 0x03, 0x1a, 0x19 - .byte 0x27, 0x2e, 0x31, 0x04, 0x26, 0x2a, 0x3f, 0x30, 0x25, 0x23, 0x2a, 0x08, 0x08, 0x35, 0x2c, 0x30, 0x1e, 0x08, 0x05, 0x18, 0x06, 0x09, 0x2d, 0x19, 0x00, 0x27, 0x0d, 0x10, 0x19, 0x1c, 0x00, 0x13 - .byte 0x3d, 0x0b, 0x24, 0x2e, 0x1f, 0x16, 0x3d, 0x18, 0x34, 0x12, 0x1e, 0x15, 0x15, 0x39, 0x25, 0x33, 0x0f, 0x17, 0x1a, 0x1c, 0x1b, 0x37, 0x29, 0x1b, 0x3b, 0x38, 0x12, 0x1d, 0x22, 0x34, 0x26, 0x0a - .byte 0x31, 0x16, 0x2d, 0x13, 0x0d, 0x20, 0x27, 0x24, 0x1d, 0x16, 0x2e, 0x2b, 0x18, 0x16, 0x2a, 0x1b, 0x24, 0x17, 0x36, 0x02, 0x05, 0x2b, 0x37, 0x1a, 0x17, 0x11, 0x3d, 0x2c, 0x1e, 0x2f, 0x22, 0x2c - .byte 0x29, 0x1a, 0x2f, 0x04, 0x25, 0x36, 0x0c, 0x35, 0x30, 0x3e, 0x12, 0x11, 0x30, 0x37, 0x12, 0x21, 0x2e, 0x21, 0x30, 0x17, 0x2c, 0x3d, 0x24, 0x11, 0x23, 0x14, 0x1a, 0x32, 0x17, 0x39, 0x27, 0x18 - .byte 0x0f, 0x24, 0x19, 0x00, 0x3d, 0x37, 0x2c, 0x3c, 0x1c, 0x0b, 0x39, 0x23, 0x0e, 0x04, 0x1f, 0x1c, 0x31, 0x14, 0x00, 0x04, 0x15, 0x26, 0x2a, 0x2a, 0x20, 0x25, 0x2a, 0x0b, 0x3c, 0x33, 0x11, 0x0b - .byte 0x2e, 0x37, 0x22, 0x2e, 0x0e, 0x22, 0x26, 0x18, 0x2d, 0x27, 0x06, 0x0c, 0x1c, 0x26, 0x18, 0x2f, 0x3a, 0x01, 0x2a, 0x2f, 0x31, 0x34, 0x1f, 0x34, 0x1a, 0x31, 0x05, 0x10, 0x2e, 0x17, 0x34, 0x18 - .byte 0x22, 0x23, 0x23, 0x21, 0x32, 0x07, 0x08, 0x22, 0x26, 0x1c, 0x22, 0x31, 0x12, 0x2f, 0x08, 0x1f, 0x10, 0x27, 0x15, 0x2a, 0x1f, 0x0b, 0x26, 0x2f, 0x14, 0x35, 0x24, 0x1f, 0x26, 0x3b, 0x23, 0x33 - .byte 0x20, 0x3e, 0x2d, 0x17, 0x0c, 0x15, 0x13, 0x39, 0x1a, 0x30, 0x14, 0x25, 0x09, 0x07, 0x17, 0x38, 0x38, 0x1f, 0x29, 0x24, 0x27, 0x17, 0x27, 0x28, 0x1b, 0x12, 0x2a, 0x2b, 0x3d, 0x2d, 0x19, 0x34 - .byte 0x1c, 0x01, 0x1d, 0x10, 0x08, 0x39, 0x11, 0x0e, 0x36, 0x1b, 0x26, 0x13, 0x10, 0x16, 0x28, 0x1e, 0x3c, 0x28, 0x17, 0x3e, 0x39, 0x34, 0x0a, 0x03, 0x2e, 0x37, 0x1a, 0x13, 0x2b, 0x33, 0x26, 0x13 - .byte 0x2c, 0x21, 0x25, 0x14, 0x10, 0x16, 0x0b, 0x35, 0x1d, 0x35, 0x33, 0x21, 0x08, 0x33, 0x28, 0x21, 0x1a, 0x12, 0x0c, 0x1b, 0x36, 0x2a, 0x19, 0x2c, 0x2b, 0x23, 0x01, 0x0f, 0x26, 0x17, 0x0c, 0x18 - .byte 0x09, 0x0f, 0x11, 0x2b, 0x24, 0x1c, 0x09, 0x09, 0x15, 0x36, 0x08, 0x13, 0x20, 0x39, 0x21, 0x00, 0x3a, 0x1f, 0x2b, 0x36, 0x31, 0x02, 0x37, 0x13, 0x04, 0x34, 0x35, 0x37, 0x3d, 0x1a, 0x17, 0x3d - .byte 0x13, 0x2b, 0x36, 0x2f, 0x13, 0x1e, 0x13, 0x3e, 0x11, 0x33, 0x27, 0x3a, 0x2d, 0x1e, 0x31, 0x1a, 0x03, 0x03, 0x2d, 0x25, 0x37, 0x1f, 0x11, 0x01, 0x22, 0x1c, 0x12, 0x17, 0x30, 0x3a, 0x30, 0x17 - .byte 0x1d, 0x29, 0x0e, 0x13, 0x27, 0x1a, 0x2e, 0x24, 0x2d, 0x00, 0x1c, 0x17, 0x28, 0x1d, 0x09, 0x1f, 0x2e, 0x1a, 0x2d, 0x26, 0x0a, 0x13, 0x32, 0x3e, 0x00, 0x27, 0x0b, 0x3b, 0x30, 0x08, 0x3a, 0x2d - .byte 0x22, 0x12, 0x1e, 0x34, 0x1d, 0x2b, 0x26, 0x22, 0x35, 0x17, 0x2c, 0x17, 0x29, 0x13, 0x2d, 0x2d, 0x10, 0x10, 0x20, 0x31, 0x23, 0x1e, 0x33, 0x18, 0x33, 0x06, 0x2d, 0x26, 0x14, 0x27, 0x22, 0x1d - .byte 0x2a, 0x2d, 0x06, 0x18, 0x07, 0x09, 0x2e, 0x21, 0x15, 0x2e, 0x21, 0x38, 0x23, 0x35, 0x0b, 0x34, 0x24, 0x0b, 0x22, 0x1e, 0x01, 0x17, 0x0b, 0x24, 0x11, 0x17, 0x07, 0x20, 0x14, 0x25, 0x32, 0x1a - .byte 0x0e, 0x2f, 0x35, 0x17, 0x1f, 0x0c, 0x08, 0x21, 0x30, 0x35, 0x1f, 0x0c, 0x0b, 0x20, 0x04, 0x10, 0x11, 0x35, 0x11, 0x1e, 0x33, 0x3d, 0x16, 0x1e, 0x2b, 0x1d, 0x1a, 0x19, 0x10, 0x04, 0x06, 0x22 - .byte 0x03, 0x3d, 0x24, 0x2a, 0x0e, 0x35, 0x03, 0x3e, 0x17, 0x0b, 0x18, 0x36, 0x3d, 0x0d, 0x26, 0x35, 0x12, 0x20, 0x1f, 0x0d, 0x16, 0x23, 0x32, 0x1a, 0x00, 0x3d, 0x26, 0x30, 0x19, 0x36, 0x12, 0x0e - .byte 0x23, 0x01, 0x23, 0x28, 0x3b, 0x31, 0x11, 0x2d, 0x1c, 0x36, 0x2a, 0x05, 0x16, 0x14, 0x0e, 0x30, 0x3a, 0x37, 0x19, 0x1f, 0x30, 0x25, 0x10, 0x26, 0x2f, 0x22, 0x11, 0x1f, 0x2e, 0x2b, 0x1e, 0x16 - .byte 0x16, 0x21, 0x32, 0x18, 0x35, 0x23, 0x32, 0x1a, 0x3d, 0x0d, 0x19, 0x39, 0x09, 0x23, 0x30, 0x2e, 0x24, 0x1e, 0x0f, 0x24, 0x09, 0x21, 0x31, 0x05, 0x03, 0x11, 0x05, 0x22, 0x2a, 0x03, 0x07, 0x37 - .byte 0x04, 0x08, 0x13, 0x05, 0x10, 0x34, 0x37, 0x14, 0x29, 0x0a, 0x24, 0x32, 0x34, 0x1e, 0x1b, 0x12, 0x17, 0x2e, 0x01, 0x02, 0x13, 0x0a, 0x0c, 0x11, 0x02, 0x14, 0x13, 0x0d, 0x25, 0x23, 0x00, 0x07 - .byte 0x1a, 0x1c, 0x28, 0x35, 0x08, 0x0e, 0x2c, 0x1b, 0x3c, 0x15, 0x1c, 0x19, 0x1d, 0x32, 0x13, 0x1a, 0x1c, 0x00, 0x37, 0x22, 0x1b, 0x35, 0x39, 0x3e, 0x14, 0x32, 0x06, 0x31, 0x17, 0x05, 0x2b, 0x01 - .byte 0x0f, 0x20, 0x1e, 0x0f, 0x34, 0x18, 0x03, 0x1f, 0x2b, 0x00, 0x14, 0x15, 0x3a, 0x30, 0x25, 0x30, 0x21, 0x0b, 0x00, 0x37, 0x24, 0x37, 0x1d, 0x29, 0x21, 0x16, 0x24, 0x0f, 0x2c, 0x3e, 0x15, 0x36 - .byte 0x3c, 0x2d, 0x23, 0x3d, 0x3c, 0x17, 0x1a, 0x1c, 0x13, 0x0a, 0x29, 0x22, 0x25, 0x3f, 0x26, 0x3b, 0x39, 0x2f, 0x1d, 0x08, 0x16, 0x0b, 0x19, 0x14, 0x12, 0x01, 0x2c, 0x35, 0x11, 0x2a, 0x02, 0x00 - .byte 0x13, 0x39, 0x2a, 0x35, 0x07, 0x1a, 0x11, 0x24, 0x0e, 0x1e, 0x0e, 0x2c, 0x15, 0x08, 0x31, 0x1b, 0x21, 0x1d, 0x26, 0x1d, 0x1c, 0x2a, 0x1d, 0x24, 0x13, 0x01, 0x00, 0x18, 0x28, 0x2a, 0x37, 0x15 - .byte 0x0f, 0x13, 0x10, 0x32, 0x36, 0x22, 0x13, 0x31, 0x13, 0x05, 0x1e, 0x17, 0x35, 0x35, 0x3b, 0x0e, 0x24, 0x35, 0x3a, 0x1d, 0x1b, 0x36, 0x1b, 0x03, 0x1d, 0x24, 0x0f, 0x16, 0x30, 0x2d, 0x09, 0x25 - .byte 0x05, 0x21, 0x13, 0x0a, 0x27, 0x36, 0x04, 0x0d, 0x1c, 0x06, 0x3e, 0x21, 0x2a, 0x27, 0x33, 0x28, 0x0e, 0x15, 0x0b, 0x17, 0x1d, 0x1d, 0x32, 0x2d, 0x08, 0x3d, 0x29, 0x21, 0x32, 0x17, 0x33, 0x31 - .byte 0x22, 0x0e, 0x03, 0x21, 0x0d, 0x0b, 0x16, 0x3e, 0x2a, 0x2e, 0x19, 0x36, 0x2a, 0x0d, 0x00, 0x14, 0x22, 0x07, 0x36, 0x0a, 0x09, 0x15, 0x14, 0x10, 0x22, 0x07, 0x16, 0x2c, 0x36, 0x13, 0x15, 0x09 - .byte 0x2f, 0x1b, 0x20, 0x3b, 0x2e, 0x3a, 0x3a, 0x16, 0x0d, 0x15, 0x2a, 0x39, 0x13, 0x2b, 0x0b, 0x01, 0x2a, 0x13, 0x17, 0x1e, 0x08, 0x17, 0x1e, 0x0c, 0x0f, 0x34, 0x1f, 0x31, 0x12, 0x07, 0x3a, 0x1d - .byte 0x35, 0x1e, 0x12, 0x24, 0x2c, 0x15, 0x0e, 0x21, 0x19, 0x34, 0x3b, 0x33, 0x19, 0x0f, 0x28, 0x10, 0x2f, 0x2e, 0x23, 0x27, 0x31, 0x39, 0x2e, 0x18, 0x3c, 0x3f, 0x24, 0x07, 0x23, 0x30, 0x28, 0x13 - .byte 0x35, 0x13, 0x0a, 0x10, 0x35, 0x19, 0x33, 0x23, 0x28, 0x29, 0x13, 0x2f, 0x1a, 0x3a, 0x19, 0x14, 0x37, 0x36, 0x26, 0x20, 0x3b, 0x15, 0x37, 0x39, 0x10, 0x3c, 0x21, 0x34, 0x1c, 0x38, 0x30, 0x15 - .byte 0x07, 0x26, 0x27, 0x21, 0x19, 0x18, 0x11, 0x23, 0x30, 0x28, 0x37, 0x32, 0x2d, 0x1f, 0x2c, 0x3f, 0x30, 0x1d, 0x2f, 0x26, 0x01, 0x11, 0x1c, 0x3b, 0x0f, 0x12, 0x2a, 0x17, 0x27, 0x05, 0x00, 0x1b - .byte 0x25, 0x1c, 0x32, 0x04, 0x22, 0x2d, 0x10, 0x0f, 0x25, 0x0d, 0x39, 0x30, 0x0b, 0x2e, 0x27, 0x2d, 0x34, 0x15, 0x3e, 0x30, 0x36, 0x16, 0x26, 0x2a, 0x05, 0x3f, 0x2b, 0x20, 0x3b, 0x2e, 0x3b, 0x1c - .byte 0x2f, 0x01, 0x18, 0x16, 0x16, 0x3d, 0x10, 0x0a, 0x1f, 0x18, 0x17, 0x0f, 0x22, 0x06, 0x13, 0x11, 0x38, 0x21, 0x17, 0x17, 0x0a, 0x37, 0x1c, 0x19, 0x30, 0x16, 0x38, 0x31, 0x30, 0x10, 0x36, 0x31 - .byte 0x2f, 0x26, 0x3c, 0x1b, 0x23, 0x33, 0x2f, 0x19, 0x16, 0x35, 0x25, 0x3a, 0x18, 0x1f, 0x37, 0x01, 0x1e, 0x0d, 0x18, 0x12, 0x1f, 0x1c, 0x1b, 0x07, 0x34, 0x2d, 0x0b, 0x3f, 0x33, 0x1e, 0x34, 0x1d - .byte 0x2c, 0x13, 0x2c, 0x20, 0x20, 0x13, 0x20, 0x0f, 0x31, 0x08, 0x0f, 0x24, 0x18, 0x3d, 0x1c, 0x36, 0x34, 0x27, 0x33, 0x2a, 0x25, 0x2d, 0x30, 0x26, 0x3d, 0x37, 0x26, 0x25, 0x11, 0x11, 0x03, 0x05 - .byte 0x18, 0x10, 0x04, 0x29, 0x07, 0x2e, 0x36, 0x2a, 0x29, 0x15, 0x3a, 0x0e, 0x33, 0x2a, 0x06, 0x29, 0x3d, 0x01, 0x29, 0x27, 0x0e, 0x16, 0x1d, 0x28, 0x1b, 0x10, 0x33, 0x2b, 0x0c, 0x14, 0x1d, 0x15 - .byte 0x3f, 0x25, 0x37, 0x23, 0x1e, 0x04, 0x2c, 0x1c, 0x15, 0x34, 0x2a, 0x09, 0x2f, 0x15, 0x02, 0x3f, 0x14, 0x19, 0x2c, 0x33, 0x39, 0x32, 0x20, 0x2a, 0x18, 0x32, 0x17, 0x23, 0x21, 0x0b, 0x2d, 0x25 - .byte 0x24, 0x3a, 0x2d, 0x31, 0x3f, 0x34, 0x18, 0x19, 0x24, 0x1e, 0x15, 0x1a, 0x17, 0x33, 0x2b, 0x23, 0x09, 0x26, 0x1b, 0x0d, 0x15, 0x36, 0x26, 0x28, 0x3a, 0x1c, 0x14, 0x0c, 0x3e, 0x10, 0x18, 0x06 - .byte 0x35, 0x37, 0x26, 0x36, 0x21, 0x26, 0x17, 0x3d, 0x1c, 0x2c, 0x16, 0x25, 0x1d, 0x1e, 0x0b, 0x1e, 0x1d, 0x0d, 0x32, 0x08, 0x1f, 0x1b, 0x12, 0x1c, 0x12, 0x20, 0x2a, 0x28, 0x06, 0x3b, 0x35, 0x39 - .byte 0x0e, 0x1e, 0x31, 0x30, 0x28, 0x02, 0x21, 0x14, 0x06, 0x1e, 0x29, 0x16, 0x09, 0x1c, 0x27, 0x32, 0x2d, 0x39, 0x03, 0x27, 0x29, 0x09, 0x1e, 0x1b, 0x11, 0x1c, 0x28, 0x3a, 0x2c, 0x03, 0x03, 0x18 - .byte 0x23, 0x09, 0x2f, 0x30, 0x17, 0x23, 0x0f, 0x25, 0x33, 0x06, 0x24, 0x37, 0x22, 0x09, 0x33, 0x2c, 0x09, 0x2a, 0x0c, 0x12, 0x2a, 0x28, 0x20, 0x10, 0x15, 0x29, 0x33, 0x0f, 0x1a, 0x13, 0x13, 0x18 - .byte 0x36, 0x2e, 0x16, 0x13, 0x3c, 0x1a, 0x15, 0x3a, 0x11, 0x32, 0x02, 0x0a, 0x2c, 0x19, 0x39, 0x11, 0x31, 0x3e, 0x1d, 0x32, 0x14, 0x32, 0x12, 0x2e, 0x34, 0x3e, 0x36, 0x23, 0x37, 0x3e, 0x15, 0x15 - .byte 0x35, 0x34, 0x01, 0x3a, 0x2c, 0x26, 0x25, 0x22, 0x01, 0x2b, 0x37, 0x1c, 0x3d, 0x33, 0x3e, 0x10, 0x1c, 0x26, 0x33, 0x19, 0x05, 0x19, 0x17, 0x12, 0x38, 0x1c, 0x15, 0x3c, 0x32, 0x3f, 0x0f, 0x37 - .byte 0x02, 0x39, 0x32, 0x13, 0x00, 0x1d, 0x1d, 0x2c, 0x10, 0x39, 0x13, 0x31, 0x0f, 0x37, 0x19, 0x09, 0x0d, 0x2a, 0x20, 0x2f, 0x32, 0x3b, 0x34, 0x22, 0x26, 0x14, 0x10, 0x24, 0x3d, 0x22, 0x0b, 0x31 - .byte 0x23, 0x2f, 0x2d, 0x2a, 0x30, 0x04, 0x35, 0x19, 0x20, 0x2a, 0x16, 0x36, 0x37, 0x14, 0x28, 0x37, 0x11, 0x0b, 0x27, 0x1d, 0x06, 0x29, 0x35, 0x16, 0x2e, 0x24, 0x2e, 0x29, 0x36, 0x14, 0x2a, 0x21 - .byte 0x0c, 0x1f, 0x3f, 0x39, 0x19, 0x27, 0x10, 0x2a, 0x1e, 0x12, 0x34, 0x10, 0x24, 0x34, 0x1d, 0x13, 0x1d, 0x17, 0x16, 0x37, 0x27, 0x1b, 0x27, 0x07, 0x24, 0x21, 0x37, 0x21, 0x11, 0x37, 0x28, 0x24 - .byte 0x19, 0x02, 0x1c, 0x14, 0x12, 0x1d, 0x1b, 0x24, 0x2e, 0x2e, 0x3a, 0x15, 0x37, 0x34, 0x21, 0x33, 0x2d, 0x29, 0x2f, 0x1e, 0x34, 0x29, 0x3c, 0x12, 0x05, 0x15, 0x20, 0x05, 0x3e, 0x19, 0x18, 0x0b - .byte 0x30, 0x2f, 0x02, 0x27, 0x14, 0x1c, 0x34, 0x12, 0x20, 0x30, 0x2b, 0x22, 0x1b, 0x06, 0x31, 0x28, 0x15, 0x2d, 0x12, 0x01, 0x0e, 0x13, 0x13, 0x0c, 0x28, 0x07, 0x2a, 0x14, 0x1d, 0x36, 0x14, 0x15 - .byte 0x2b, 0x26, 0x03, 0x25, 0x15, 0x3e, 0x3b, 0x20, 0x35, 0x0c, 0x25, 0x2b, 0x16, 0x35, 0x1e, 0x31, 0x2c, 0x06, 0x03, 0x29, 0x24, 0x07, 0x1f, 0x32, 0x2f, 0x19, 0x25, 0x21, 0x31, 0x22, 0x26, 0x1d - .byte 0x00, 0x1b, 0x18, 0x2a, 0x24, 0x31, 0x20, 0x06, 0x2f, 0x1e, 0x32, 0x26, 0x32, 0x39, 0x12, 0x20, 0x01, 0x19, 0x0f, 0x15, 0x15, 0x27, 0x10, 0x2e, 0x09, 0x25, 0x19, 0x29, 0x37, 0x30, 0x13, 0x1c - .byte 0x1d, 0x29, 0x2d, 0x26, 0x02, 0x1a, 0x16, 0x1d, 0x2b, 0x1c, 0x18, 0x04, 0x34, 0x28, 0x2a, 0x21, 0x15, 0x1b, 0x2e, 0x16, 0x01, 0x10, 0x05, 0x09, 0x14, 0x22, 0x03, 0x22, 0x02, 0x1b, 0x34, 0x29 - .byte 0x2a, 0x23, 0x26, 0x36, 0x13, 0x23, 0x3d, 0x1a, 0x1d, 0x10, 0x24, 0x25, 0x2b, 0x37, 0x19, 0x24, 0x26, 0x28, 0x13, 0x16, 0x17, 0x14, 0x19, 0x0b, 0x2f, 0x25, 0x37, 0x34, 0x37, 0x39, 0x21, 0x1b - .byte 0x0f, 0x3d, 0x2d, 0x0d, 0x10, 0x20, 0x05, 0x0b, 0x2d, 0x01, 0x12, 0x24, 0x18, 0x3d, 0x32, 0x09, 0x21, 0x26, 0x1a, 0x0e, 0x1f, 0x30, 0x06, 0x1f, 0x0b, 0x3c, 0x29, 0x07, 0x3e, 0x27, 0x13, 0x1e - .byte 0x1a, 0x13, 0x07, 0x23, 0x10, 0x34, 0x1e, 0x32, 0x17, 0x23, 0x35, 0x16, 0x31, 0x32, 0x2e, 0x1b, 0x28, 0x0e, 0x22, 0x14, 0x3a, 0x23, 0x22, 0x03, 0x29, 0x2a, 0x10, 0x20, 0x3e, 0x3c, 0x27, 0x16 - .byte 0x20, 0x12, 0x3f, 0x24, 0x31, 0x0d, 0x2e, 0x32, 0x2f, 0x17, 0x2d, 0x36, 0x3b, 0x17, 0x24, 0x23, 0x18, 0x37, 0x1d, 0x13, 0x17, 0x3a, 0x1a, 0x0a, 0x3d, 0x1e, 0x05, 0x12, 0x16, 0x33, 0x32, 0x25 - .byte 0x1d, 0x1f, 0x29, 0x34, 0x2c, 0x26, 0x20, 0x29, 0x35, 0x0e, 0x32, 0x17, 0x01, 0x39, 0x2d, 0x27, 0x24, 0x23, 0x28, 0x3f, 0x18, 0x39, 0x38, 0x25, 0x23, 0x11, 0x11, 0x19, 0x2c, 0x29, 0x30, 0x08 - .byte 0x28, 0x25, 0x27, 0x1d, 0x17, 0x25, 0x21, 0x09, 0x3d, 0x16, 0x1b, 0x0f, 0x2c, 0x1b, 0x12, 0x22, 0x28, 0x3e, 0x26, 0x34, 0x10, 0x1b, 0x02, 0x34, 0x15, 0x1a, 0x29, 0x19, 0x29, 0x11, 0x31, 0x12 - .byte 0x27, 0x17, 0x27, 0x27, 0x2f, 0x34, 0x27, 0x24, 0x03, 0x19, 0x36, 0x17, 0x1d, 0x33, 0x19, 0x25, 0x1a, 0x2b, 0x39, 0x13, 0x3b, 0x33, 0x1d, 0x27, 0x31, 0x34, 0x28, 0x33, 0x37, 0x09, 0x30, 0x1b - .byte 0x03, 0x3a, 0x27, 0x19, 0x11, 0x1f, 0x0b, 0x1a, 0x34, 0x3d, 0x2a, 0x15, 0x04, 0x24, 0x36, 0x30, 0x23, 0x30, 0x0f, 0x22, 0x1b, 0x3d, 0x3d, 0x24, 0x29, 0x1d, 0x12, 0x16, 0x19, 0x2e, 0x03, 0x12 - .byte 0x17, 0x18, 0x25, 0x33, 0x2f, 0x23, 0x1a, 0x1a, 0x35, 0x27, 0x21, 0x26, 0x19, 0x1b, 0x30, 0x18, 0x2b, 0x22, 0x2d, 0x2c, 0x1a, 0x34, 0x3e, 0x12, 0x19, 0x28, 0x27, 0x15, 0x1b, 0x11, 0x12, 0x17 - .byte 0x15, 0x10, 0x34, 0x37, 0x25, 0x12, 0x3f, 0x15, 0x31, 0x0d, 0x37, 0x3e, 0x2a, 0x2d, 0x0f, 0x24, 0x24, 0x3c, 0x3f, 0x1f, 0x1d, 0x34, 0x17, 0x1a, 0x23, 0x1f, 0x37, 0x0f, 0x10, 0x32, 0x34, 0x35 - .byte 0x19, 0x05, 0x22, 0x33, 0x16, 0x34, 0x1e, 0x14, 0x1e, 0x08, 0x13, 0x29, 0x3a, 0x37, 0x30, 0x1d, 0x36, 0x15, 0x29, 0x2e, 0x1d, 0x32, 0x2e, 0x23, 0x35, 0x17, 0x1c, 0x36, 0x1d, 0x13, 0x23, 0x34 - .byte 0x34, 0x24, 0x1a, 0x37, 0x2f, 0x26, 0x2e, 0x1e, 0x17, 0x1a, 0x1f, 0x15, 0x1f, 0x2b, 0x1f, 0x19, 0x0a, 0x33, 0x1a, 0x35, 0x31, 0x24, 0x2d, 0x17, 0x2c, 0x0c, 0x21, 0x36, 0x2c, 0x35, 0x35, 0x1b - .byte 0x03, 0x27, 0x01, 0x0d, 0x1d, 0x1c, 0x0e, 0x11, 0x11, 0x2b, 0x10, 0x25, 0x3b, 0x20, 0x1f, 0x17, 0x19, 0x20, 0x08, 0x36, 0x13, 0x38, 0x19, 0x1b, 0x2b, 0x24, 0x0b, 0x1f, 0x29, 0x27, 0x15, 0x2c - .byte 0x37, 0x39, 0x10, 0x3a, 0x15, 0x2e, 0x2f, 0x11, 0x36, 0x24, 0x04, 0x20, 0x3b, 0x2a, 0x35, 0x27, 0x35, 0x34, 0x0d, 0x1b, 0x20, 0x10, 0x22, 0x37, 0x1f, 0x38, 0x27, 0x31, 0x0f, 0x28, 0x28, 0x25 - .byte 0x15, 0x00, 0x1d, 0x25, 0x31, 0x28, 0x28, 0x0b, 0x3a, 0x1d, 0x2d, 0x13, 0x1b, 0x03, 0x37, 0x2e, 0x1d, 0x28, 0x19, 0x08, 0x2d, 0x22, 0x27, 0x39, 0x32, 0x3f, 0x2f, 0x1d, 0x33, 0x34, 0x28, 0x18 - .byte 0x08, 0x31, 0x23, 0x1f, 0x13, 0x0d, 0x2c, 0x23, 0x3a, 0x2d, 0x1a, 0x02, 0x25, 0x13, 0x20, 0x36, 0x34, 0x12, 0x2b, 0x2d, 0x35, 0x35, 0x34, 0x23, 0x20, 0x21, 0x3a, 0x19, 0x1b, 0x1f, 0x2b, 0x19 - .byte 0x35, 0x0e, 0x19, 0x26, 0x24, 0x37, 0x18, 0x08, 0x10, 0x0c, 0x16, 0x2d, 0x1f, 0x34, 0x21, 0x05, 0x38, 0x19, 0x14, 0x21, 0x24, 0x11, 0x31, 0x14, 0x3e, 0x38, 0x29, 0x3f, 0x08, 0x25, 0x2a, 0x1f - .byte 0x25, 0x25, 0x06, 0x28, 0x0b, 0x1e, 0x14, 0x1a, 0x38, 0x22, 0x24, 0x18, 0x29, 0x1a, 0x11, 0x20, 0x3b, 0x3a, 0x1e, 0x1c, 0x26, 0x1a, 0x05, 0x32, 0x19, 0x39, 0x2a, 0x31, 0x09, 0x07, 0x25, 0x05 - .byte 0x3e, 0x16, 0x34, 0x26, 0x14, 0x1b, 0x32, 0x26, 0x05, 0x08, 0x37, 0x0f, 0x03, 0x20, 0x2a, 0x39, 0x31, 0x08, 0x01, 0x1e, 0x1d, 0x23, 0x31, 0x28, 0x1b, 0x28, 0x1e, 0x37, 0x14, 0x13, 0x0e, 0x28 - .byte 0x2a, 0x3b, 0x37, 0x2f, 0x1c, 0x28, 0x30, 0x30, 0x1a, 0x36, 0x1f, 0x16, 0x3e, 0x0d, 0x15, 0x2e, 0x16, 0x18, 0x15, 0x37, 0x20, 0x2a, 0x33, 0x30, 0x2b, 0x0e, 0x25, 0x18, 0x20, 0x16, 0x02, 0x19 - .byte 0x25, 0x0a, 0x2e, 0x30, 0x16, 0x03, 0x11, 0x04, 0x27, 0x25, 0x1b, 0x1c, 0x21, 0x29, 0x04, 0x27, 0x3d, 0x20, 0x1e, 0x28, 0x33, 0x31, 0x1e, 0x39, 0x10, 0x31, 0x29, 0x1e, 0x06, 0x25, 0x28, 0x19 - .byte 0x3b, 0x12, 0x0b, 0x1b, 0x1c, 0x3e, 0x37, 0x20, 0x0a, 0x37, 0x33, 0x02, 0x2c, 0x25, 0x15, 0x18, 0x14, 0x3b, 0x20, 0x1c, 0x22, 0x3b, 0x1c, 0x24, 0x34, 0x35, 0x0f, 0x2f, 0x31, 0x3b, 0x17, 0x35 - .byte 0x30, 0x39, 0x37, 0x0d, 0x15, 0x11, 0x10, 0x03, 0x1e, 0x1a, 0x39, 0x33, 0x2f, 0x2e, 0x28, 0x1c, 0x28, 0x36, 0x28, 0x18, 0x1f, 0x15, 0x01, 0x30, 0x3e, 0x32, 0x28, 0x34, 0x2f, 0x23, 0x07, 0x0c - .byte 0x36, 0x28, 0x2c, 0x34, 0x2a, 0x0c, 0x1f, 0x3f, 0x20, 0x13, 0x2b, 0x17, 0x27, 0x28, 0x29, 0x2a, 0x3c, 0x13, 0x36, 0x26, 0x2d, 0x2a, 0x0a, 0x06, 0x1e, 0x20, 0x04, 0x1a, 0x02, 0x07, 0x35, 0x0e - .byte 0x18, 0x30, 0x00, 0x34, 0x34, 0x2f, 0x14, 0x37, 0x21, 0x30, 0x1f, 0x15, 0x37, 0x1b, 0x3a, 0x0b, 0x32, 0x22, 0x22, 0x21, 0x1b, 0x35, 0x23, 0x0d, 0x03, 0x1c, 0x23, 0x3b, 0x13, 0x0e, 0x1d, 0x1f - .byte 0x1d, 0x3f, 0x2e, 0x39, 0x27, 0x2e, 0x0f, 0x38, 0x20, 0x31, 0x3c, 0x35, 0x0b, 0x0f, 0x2e, 0x06, 0x06, 0x28, 0x25, 0x39, 0x23, 0x0a, 0x32, 0x15, 0x0f, 0x1d, 0x25, 0x0c, 0x0d, 0x34, 0x12, 0x2e - .byte 0x21, 0x36, 0x18, 0x1f, 0x1f, 0x34, 0x1b, 0x05, 0x3a, 0x36, 0x2b, 0x01, 0x17, 0x0e, 0x16, 0x2b, 0x0e, 0x0b, 0x26, 0x0d, 0x2d, 0x10, 0x21, 0x11, 0x27, 0x3d, 0x13, 0x32, 0x15, 0x25, 0x2a, 0x1b - .byte 0x2d, 0x35, 0x2c, 0x2b, 0x26, 0x26, 0x1f, 0x20, 0x22, 0x2b, 0x12, 0x3f, 0x3d, 0x27, 0x30, 0x0a, 0x36, 0x35, 0x1f, 0x17, 0x21, 0x08, 0x29, 0x1d, 0x20, 0x33, 0x34, 0x11, 0x16, 0x05, 0x38, 0x2d - diff --git a/data/layouts/Unknown_084693AC/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin similarity index 100% rename from data/layouts/Unknown_084693AC/border.bin rename to data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin diff --git a/data/layouts/Unknown_084693AC/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin similarity index 100% rename from data/layouts/Unknown_084693AC/map.bin rename to data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin diff --git a/data/layouts/Unknown_0843E6C0/border.bin b/data/layouts/UnusedCave1/border.bin similarity index 100% rename from data/layouts/Unknown_0843E6C0/border.bin rename to data/layouts/UnusedCave1/border.bin diff --git a/data/layouts/Unknown_0843E6C0/map.bin b/data/layouts/UnusedCave1/map.bin similarity index 100% rename from data/layouts/Unknown_0843E6C0/map.bin rename to data/layouts/UnusedCave1/map.bin diff --git a/data/layouts/Unknown_0843E6E4/border.bin b/data/layouts/UnusedCave10/border.bin similarity index 100% rename from data/layouts/Unknown_0843E6E4/border.bin rename to data/layouts/UnusedCave10/border.bin diff --git a/data/layouts/Unknown_0843E6E4/map.bin b/data/layouts/UnusedCave10/map.bin similarity index 100% rename from data/layouts/Unknown_0843E6E4/map.bin rename to data/layouts/UnusedCave10/map.bin diff --git a/data/layouts/Unknown_0843E708/border.bin b/data/layouts/UnusedCave11/border.bin similarity index 100% rename from data/layouts/Unknown_0843E708/border.bin rename to data/layouts/UnusedCave11/border.bin diff --git a/data/layouts/Unknown_0843E708/map.bin b/data/layouts/UnusedCave11/map.bin similarity index 100% rename from data/layouts/Unknown_0843E708/map.bin rename to data/layouts/UnusedCave11/map.bin diff --git a/data/layouts/Unknown_0843E72C/border.bin b/data/layouts/UnusedCave12/border.bin similarity index 100% rename from data/layouts/Unknown_0843E72C/border.bin rename to data/layouts/UnusedCave12/border.bin diff --git a/data/layouts/Unknown_0843E72C/map.bin b/data/layouts/UnusedCave12/map.bin similarity index 100% rename from data/layouts/Unknown_0843E72C/map.bin rename to data/layouts/UnusedCave12/map.bin diff --git a/data/layouts/Unknown_0843E750/border.bin b/data/layouts/UnusedCave13/border.bin similarity index 100% rename from data/layouts/Unknown_0843E750/border.bin rename to data/layouts/UnusedCave13/border.bin diff --git a/data/layouts/Unknown_0843E750/map.bin b/data/layouts/UnusedCave13/map.bin similarity index 100% rename from data/layouts/Unknown_0843E750/map.bin rename to data/layouts/UnusedCave13/map.bin diff --git a/data/layouts/Unknown_0843E774/border.bin b/data/layouts/UnusedCave14/border.bin similarity index 100% rename from data/layouts/Unknown_0843E774/border.bin rename to data/layouts/UnusedCave14/border.bin diff --git a/data/layouts/Unknown_0843E774/map.bin b/data/layouts/UnusedCave14/map.bin similarity index 100% rename from data/layouts/Unknown_0843E774/map.bin rename to data/layouts/UnusedCave14/map.bin diff --git a/data/layouts/Unknown_0843E798/border.bin b/data/layouts/UnusedCave2/border.bin similarity index 100% rename from data/layouts/Unknown_0843E798/border.bin rename to data/layouts/UnusedCave2/border.bin diff --git a/data/layouts/Unknown_0843E798/map.bin b/data/layouts/UnusedCave2/map.bin similarity index 100% rename from data/layouts/Unknown_0843E798/map.bin rename to data/layouts/UnusedCave2/map.bin diff --git a/data/layouts/Unknown_0843E7BC/border.bin b/data/layouts/UnusedCave3/border.bin similarity index 100% rename from data/layouts/Unknown_0843E7BC/border.bin rename to data/layouts/UnusedCave3/border.bin diff --git a/data/layouts/Unknown_0843E7BC/map.bin b/data/layouts/UnusedCave3/map.bin similarity index 100% rename from data/layouts/Unknown_0843E7BC/map.bin rename to data/layouts/UnusedCave3/map.bin diff --git a/data/layouts/Unknown_0843E7E0/border.bin b/data/layouts/UnusedCave4/border.bin similarity index 100% rename from data/layouts/Unknown_0843E7E0/border.bin rename to data/layouts/UnusedCave4/border.bin diff --git a/data/layouts/Unknown_0843E7E0/map.bin b/data/layouts/UnusedCave4/map.bin similarity index 100% rename from data/layouts/Unknown_0843E7E0/map.bin rename to data/layouts/UnusedCave4/map.bin diff --git a/data/layouts/Unknown_0843E804/border.bin b/data/layouts/UnusedCave5/border.bin similarity index 100% rename from data/layouts/Unknown_0843E804/border.bin rename to data/layouts/UnusedCave5/border.bin diff --git a/data/layouts/Unknown_0843E804/map.bin b/data/layouts/UnusedCave5/map.bin similarity index 100% rename from data/layouts/Unknown_0843E804/map.bin rename to data/layouts/UnusedCave5/map.bin diff --git a/data/layouts/Unknown_0843E828/border.bin b/data/layouts/UnusedCave6/border.bin similarity index 100% rename from data/layouts/Unknown_0843E828/border.bin rename to data/layouts/UnusedCave6/border.bin diff --git a/data/layouts/Unknown_0843E828/map.bin b/data/layouts/UnusedCave6/map.bin similarity index 100% rename from data/layouts/Unknown_0843E828/map.bin rename to data/layouts/UnusedCave6/map.bin diff --git a/data/layouts/Unknown_0843E84C/border.bin b/data/layouts/UnusedCave7/border.bin similarity index 100% rename from data/layouts/Unknown_0843E84C/border.bin rename to data/layouts/UnusedCave7/border.bin diff --git a/data/layouts/Unknown_0843E84C/map.bin b/data/layouts/UnusedCave7/map.bin similarity index 100% rename from data/layouts/Unknown_0843E84C/map.bin rename to data/layouts/UnusedCave7/map.bin diff --git a/data/layouts/Unknown_0843E870/border.bin b/data/layouts/UnusedCave8/border.bin similarity index 100% rename from data/layouts/Unknown_0843E870/border.bin rename to data/layouts/UnusedCave8/border.bin diff --git a/data/layouts/Unknown_0843E870/map.bin b/data/layouts/UnusedCave8/map.bin similarity index 100% rename from data/layouts/Unknown_0843E870/map.bin rename to data/layouts/UnusedCave8/map.bin diff --git a/data/layouts/Unknown_0843E894/border.bin b/data/layouts/UnusedCave9/border.bin similarity index 100% rename from data/layouts/Unknown_0843E894/border.bin rename to data/layouts/UnusedCave9/border.bin diff --git a/data/layouts/Unknown_0843E894/map.bin b/data/layouts/UnusedCave9/map.bin similarity index 100% rename from data/layouts/Unknown_0843E894/map.bin rename to data/layouts/UnusedCave9/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_29/border.bin b/data/layouts/UnusedContestHall1/border.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_29/border.bin rename to data/layouts/UnusedContestHall1/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_29/map.bin b/data/layouts/UnusedContestHall1/map.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_29/map.bin rename to data/layouts/UnusedContestHall1/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_30/border.bin b/data/layouts/UnusedContestHall2/border.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_30/border.bin rename to data/layouts/UnusedContestHall2/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_30/map.bin b/data/layouts/UnusedContestHall2/map.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_30/map.bin rename to data/layouts/UnusedContestHall2/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_31/border.bin b/data/layouts/UnusedContestHall3/border.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_31/border.bin rename to data/layouts/UnusedContestHall3/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_31/map.bin b/data/layouts/UnusedContestHall3/map.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_31/map.bin rename to data/layouts/UnusedContestHall3/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_32/border.bin b/data/layouts/UnusedContestHall4/border.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_32/border.bin rename to data/layouts/UnusedContestHall4/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_32/map.bin b/data/layouts/UnusedContestHall4/map.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_32/map.bin rename to data/layouts/UnusedContestHall4/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_33/border.bin b/data/layouts/UnusedContestHall5/border.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_33/border.bin rename to data/layouts/UnusedContestHall5/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_33/map.bin b/data/layouts/UnusedContestHall5/map.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_33/map.bin rename to data/layouts/UnusedContestHall5/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_34/border.bin b/data/layouts/UnusedContestHall6/border.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_34/border.bin rename to data/layouts/UnusedContestHall6/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_34/map.bin b/data/layouts/UnusedContestHall6/map.bin similarity index 100% rename from data/layouts/UnknownLinkContestRoom_25_34/map.bin rename to data/layouts/UnusedContestHall6/map.bin diff --git a/data/layouts/Unknown_08428450/border.bin b/data/layouts/UnusedContestRoom1/border.bin similarity index 100% rename from data/layouts/Unknown_08428450/border.bin rename to data/layouts/UnusedContestRoom1/border.bin diff --git a/data/layouts/Unknown_08428450/map.bin b/data/layouts/UnusedContestRoom1/map.bin similarity index 100% rename from data/layouts/Unknown_08428450/map.bin rename to data/layouts/UnusedContestRoom1/map.bin diff --git a/data/layouts/Unknown_084294C4/border.bin b/data/layouts/UnusedContestRoom2/border.bin similarity index 100% rename from data/layouts/Unknown_084294C4/border.bin rename to data/layouts/UnusedContestRoom2/border.bin diff --git a/data/layouts/Unknown_084294C4/map.bin b/data/layouts/UnusedContestRoom2/map.bin similarity index 100% rename from data/layouts/Unknown_084294C4/map.bin rename to data/layouts/UnusedContestRoom2/map.bin diff --git a/data/layouts/Unknown_084294E8/border.bin b/data/layouts/UnusedContestRoom3/border.bin similarity index 100% rename from data/layouts/Unknown_084294E8/border.bin rename to data/layouts/UnusedContestRoom3/border.bin diff --git a/data/layouts/Unknown_084294E8/map.bin b/data/layouts/UnusedContestRoom3/map.bin similarity index 100% rename from data/layouts/Unknown_084294E8/map.bin rename to data/layouts/UnusedContestRoom3/map.bin diff --git a/data/layouts/Unknown_08447028/border.bin b/data/layouts/UnusedOutdoorArea/border.bin similarity index 100% rename from data/layouts/Unknown_08447028/border.bin rename to data/layouts/UnusedOutdoorArea/border.bin diff --git a/data/layouts/Unknown_08447028/map.bin b/data/layouts/UnusedOutdoorArea/map.bin similarity index 100% rename from data/layouts/Unknown_08447028/map.bin rename to data/layouts/UnusedOutdoorArea/map.bin diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index 9292e10afe..b8d841f72b 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -742,14 +742,14 @@ "blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin" }, { - "id": "LAYOUT_UNKNOWN_08428450", - "name": "Unknown_08428450_Layout", + "id": "LAYOUT_UNUSED_CONTEST_ROOM1", + "name": "UnusedContestRoom1_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/Unknown_08428450/border.bin", - "blockdata_filepath": "data/layouts/Unknown_08428450/map.bin" + "border_filepath": "data/layouts/UnusedContestRoom1/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestRoom1/map.bin" }, { "id": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE", @@ -822,24 +822,24 @@ "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin" }, { - "id": "LAYOUT_UNKNOWN_084294C4", - "name": "Unknown_084294C4_Layout", + "id": "LAYOUT_UNUSED_CONTEST_ROOM2", + "name": "UnusedContestRoom2_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/Unknown_084294C4/border.bin", - "blockdata_filepath": "data/layouts/Unknown_084294C4/map.bin" + "border_filepath": "data/layouts/UnusedContestRoom2/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestRoom2/map.bin" }, { - "id": "LAYOUT_UNKNOWN_084294E8", - "name": "Unknown_084294E8_Layout", + "id": "LAYOUT_UNUSED_CONTEST_ROOM3", + "name": "UnusedContestRoom3_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/Unknown_084294E8/border.bin", - "blockdata_filepath": "data/layouts/Unknown_084294E8/map.bin" + "border_filepath": "data/layouts/UnusedContestRoom3/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestRoom3/map.bin" }, { "id": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB", @@ -1692,144 +1692,144 @@ "blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E6C0", - "name": "Unknown_0843E6C0_Layout", + "id": "LAYOUT_UNUSED_CAVE1", + "name": "UnusedCave1_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E6C0/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E6C0/map.bin" + "border_filepath": "data/layouts/UnusedCave1/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave1/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E6E4", - "name": "Unknown_0843E6E4_Layout", + "id": "LAYOUT_UNUSED_CAVE2", + "name": "UnusedCave2_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E6E4/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E6E4/map.bin" + "border_filepath": "data/layouts/UnusedCave2/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave2/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E708", - "name": "Unknown_0843E708_Layout", + "id": "LAYOUT_UNUSED_CAVE3", + "name": "UnusedCave3_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E708/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E708/map.bin" + "border_filepath": "data/layouts/UnusedCave3/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave3/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E72C", - "name": "Unknown_0843E72C_Layout", + "id": "LAYOUT_UNUSED_CAVE4", + "name": "UnusedCave4_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E72C/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E72C/map.bin" + "border_filepath": "data/layouts/UnusedCave4/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave4/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E750", - "name": "Unknown_0843E750_Layout", + "id": "LAYOUT_UNUSED_CAVE5", + "name": "UnusedCave5_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E750/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E750/map.bin" + "border_filepath": "data/layouts/UnusedCave5/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave5/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E774", - "name": "Unknown_0843E774_Layout", + "id": "LAYOUT_UNUSED_CAVE6", + "name": "UnusedCave6_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E774/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E774/map.bin" + "border_filepath": "data/layouts/UnusedCave6/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave6/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E798", - "name": "Unknown_0843E798_Layout", + "id": "LAYOUT_UNUSED_CAVE7", + "name": "UnusedCave7_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E798/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E798/map.bin" + "border_filepath": "data/layouts/UnusedCave7/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave7/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E7BC", - "name": "Unknown_0843E7BC_Layout", + "id": "LAYOUT_UNUSED_CAVE8", + "name": "UnusedCave8_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E7BC/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E7BC/map.bin" + "border_filepath": "data/layouts/UnusedCave8/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave8/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E7E0", - "name": "Unknown_0843E7E0_Layout", + "id": "LAYOUT_UNUSED_CAVE9", + "name": "UnusedCave9_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E7E0/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E7E0/map.bin" + "border_filepath": "data/layouts/UnusedCave9/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave9/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E804", - "name": "Unknown_0843E804_Layout", + "id": "LAYOUT_UNUSED_CAVE10", + "name": "UnusedCave10_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E804/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E804/map.bin" + "border_filepath": "data/layouts/UnusedCave10/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave10/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E828", - "name": "Unknown_0843E828_Layout", + "id": "LAYOUT_UNUSED_CAVE11", + "name": "UnusedCave11_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E828/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E828/map.bin" + "border_filepath": "data/layouts/UnusedCave11/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave11/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E84C", - "name": "Unknown_0843E84C_Layout", + "id": "LAYOUT_UNUSED_CAVE12", + "name": "UnusedCave12_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E84C/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E84C/map.bin" + "border_filepath": "data/layouts/UnusedCave12/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave12/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E870", - "name": "Unknown_0843E870_Layout", + "id": "LAYOUT_UNUSED_CAVE13", + "name": "UnusedCave13_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E870/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E870/map.bin" + "border_filepath": "data/layouts/UnusedCave13/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave13/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E894", - "name": "Unknown_0843E894_Layout", + "id": "LAYOUT_UNUSED_CAVE14", + "name": "UnusedCave14_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E894/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E894/map.bin" + "border_filepath": "data/layouts/UnusedCave14/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave14/map.bin" }, { "id": "LAYOUT_NEW_MAUVILLE_ENTRANCE", @@ -2252,64 +2252,64 @@ "blockdata_filepath": "data/layouts/ContestHall/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", - "name": "UnknownLinkContestRoom_25_29_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL1", + "name": "UnusedContestHall1_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_29/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_29/map.bin" + "border_filepath": "data/layouts/UnusedContestHall1/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall1/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", - "name": "UnknownLinkContestRoom_25_30_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL2", + "name": "UnusedContestHall2_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_30/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_30/map.bin" + "border_filepath": "data/layouts/UnusedContestHall2/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall2/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", - "name": "UnknownLinkContestRoom_25_31_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL3", + "name": "UnusedContestHall3_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_31/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_31/map.bin" + "border_filepath": "data/layouts/UnusedContestHall3/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall3/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", - "name": "UnknownLinkContestRoom_25_32_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL4", + "name": "UnusedContestHall4_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_32/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_32/map.bin" + "border_filepath": "data/layouts/UnusedContestHall4/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall4/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "name": "UnknownLinkContestRoom_25_33_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL5", + "name": "UnusedContestHall5_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_33/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_33/map.bin" + "border_filepath": "data/layouts/UnusedContestHall5/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall5/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "name": "UnknownLinkContestRoom_25_34_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL6", + "name": "UnusedContestHall6_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_34/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_34/map.bin" + "border_filepath": "data/layouts/UnusedContestHall6/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall6/map.bin" }, { "id": "LAYOUT_CONTEST_HALL_BEAUTY", @@ -2412,14 +2412,14 @@ "blockdata_filepath": "data/layouts/SafariZone_South/map.bin" }, { - "id": "LAYOUT_UNKNOWN_08447028", - "name": "Unknown_08447028_Layout", + "id": "LAYOUT_UNUSED_OUTDOOR_AREA", + "name": "UnusedOutdoorArea_Layout", "width": 58, "height": 26, "primary_tileset": "gTileset_General", "secondary_tileset": "0", - "border_filepath": "data/layouts/Unknown_08447028/border.bin", - "blockdata_filepath": "data/layouts/Unknown_08447028/map.bin" + "border_filepath": "data/layouts/UnusedOutdoorArea/border.bin", + "blockdata_filepath": "data/layouts/UnusedOutdoorArea/map.bin" }, { "id": "LAYOUT_ROUTE109_SEASHORE_HOUSE", @@ -3582,14 +3582,14 @@ "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin" }, { - "id": "LAYOUT_UNKNOWN_084693AC", - "name": "Unknown_084693AC_Layout", + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED", + "name": "BattleFrontier_BattlePikeRoomUnused_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", - "border_filepath": "data/layouts/Unknown_084693AC/border.bin", - "blockdata_filepath": "data/layouts/Unknown_084693AC/map.bin" + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", diff --git a/data/map_events.s b/data/map_events.s index d285040a06..dcbb9cfb17 100644 --- a/data/map_events.s +++ b/data/map_events.s @@ -10,6 +10,7 @@ #include "constants/weather.h" #include "constants/trainer_hill.h" #include "constants/trainer_types.h" +#include "constants/berry.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/maps/AbandonedShip_CaptainsOffice/scripts.inc b/data/maps/AbandonedShip_CaptainsOffice/scripts.inc index 139701edbf..99dfa7bd80 100644 --- a/data/maps/AbandonedShip_CaptainsOffice/scripts.inc +++ b/data/maps/AbandonedShip_CaptainsOffice/scripts.inc @@ -1,7 +1,7 @@ -AbandonedShip_CaptainsOffice_MapScripts:: @ 82387E1 +AbandonedShip_CaptainsOffice_MapScripts:: .byte 0 -AbandonedShip_CaptainsOffice_EventScript_CaptSternAide:: @ 82387E2 +AbandonedShip_CaptainsOffice_EventScript_CaptSternAide:: lock faceplayer goto_if_set FLAG_EXCHANGED_SCANNER, AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus @@ -13,30 +13,30 @@ AbandonedShip_CaptainsOffice_EventScript_CaptSternAide:: @ 82387E2 release end -AbandonedShip_CaptainsOffice_EventScript_CanYouDeliverScanner:: @ 8238810 +AbandonedShip_CaptainsOffice_EventScript_CanYouDeliverScanner:: msgbox AbandonedShip_CaptainsOffice_Text_OhCanYouDeliverScanner, MSGBOX_DEFAULT release end -AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus:: @ 823881A +AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus:: msgbox AbandonedShip_CaptainsOffice_Text_ThisIsSSCactus, MSGBOX_DEFAULT release end -AbandonedShip_CaptainsOffice_Text_NoSuccessFindingScanner: @ 8238824 +AbandonedShip_CaptainsOffice_Text_NoSuccessFindingScanner: .string "I'm investigating this ship on behalf\n" .string "of CAPT. STERN.\p" .string "He also asked me to find a SCANNER,\n" .string "but I haven't had any success…$" -AbandonedShip_CaptainsOffice_Text_OhCanYouDeliverScanner: @ 823889D +AbandonedShip_CaptainsOffice_Text_OhCanYouDeliverScanner: .string "Oh! That's a SCANNER!\p" .string "Listen, can I get you to deliver that\n" .string "to CAPT. STERN?\p" .string "I want to investigate this ship a\n" .string "little more.$" -AbandonedShip_CaptainsOffice_Text_ThisIsSSCactus: @ 8238918 +AbandonedShip_CaptainsOffice_Text_ThisIsSSCactus: .string "This ship is called S.S. CACTUS.\n" .string "It seems to be from an earlier era.$" diff --git a/data/maps/AbandonedShip_Corridors_1F/scripts.inc b/data/maps/AbandonedShip_Corridors_1F/scripts.inc index a954ee1197..2c850d1fdc 100644 --- a/data/maps/AbandonedShip_Corridors_1F/scripts.inc +++ b/data/maps/AbandonedShip_Corridors_1F/scripts.inc @@ -1,26 +1,26 @@ -AbandonedShip_Corridors_1F_MapScripts:: @ 82379A4 +AbandonedShip_Corridors_1F_MapScripts:: .byte 0 -AbandonedShip_Corridors_1F_EventScript_Youngster:: @ 82379A5 +AbandonedShip_Corridors_1F_EventScript_Youngster:: msgbox AbandonedShip_Corridors_1F_Text_IsntItFunHere, MSGBOX_NPC end -AbandonedShip_Corridors_1F_EventScript_Charlie:: @ 82379AE +AbandonedShip_Corridors_1F_EventScript_Charlie:: trainerbattle_single TRAINER_CHARLIE, AbandonedShip_Corridors_1F_Text_CharlieIntro, AbandonedShip_Corridors_1F_Text_CharlieDefeat msgbox AbandonedShip_Corridors_1F_Text_CharliePostBattle, MSGBOX_AUTOCLOSE end -AbandonedShip_Corridors_1F_Text_CharlieIntro: @ 82379C5 +AbandonedShip_Corridors_1F_Text_CharlieIntro: .string "What's so funny about having my inner\n" .string "tube aboard the ship?$" -AbandonedShip_Corridors_1F_Text_CharlieDefeat: @ 8237A01 +AbandonedShip_Corridors_1F_Text_CharlieDefeat: .string "Whoa, you overwhelmed me!$" -AbandonedShip_Corridors_1F_Text_CharliePostBattle: @ 8237A1B +AbandonedShip_Corridors_1F_Text_CharliePostBattle: .string "It's not easy throwing POKé BALLS\n" .string "while hanging on to an inner tube!$" -AbandonedShip_Corridors_1F_Text_IsntItFunHere: @ 8237A60 +AbandonedShip_Corridors_1F_Text_IsntItFunHere: .string "Isn't it fun here?\n" .string "I get excited just being here!$" diff --git a/data/maps/AbandonedShip_Corridors_B1F/scripts.inc b/data/maps/AbandonedShip_Corridors_B1F/scripts.inc index 94ed2ef7e7..dd70c9dd32 100644 --- a/data/maps/AbandonedShip_Corridors_B1F/scripts.inc +++ b/data/maps/AbandonedShip_Corridors_B1F/scripts.inc @@ -1,30 +1,30 @@ -AbandonedShip_Corridors_B1F_MapScripts:: @ 8237D84 +AbandonedShip_Corridors_B1F_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Corridors_B1F_OnResume map_script MAP_SCRIPT_ON_LOAD, AbandonedShip_Corridors_B1F_OnLoad .byte 0 -AbandonedShip_Corridors_B1F_OnResume: @ 8237D8F +AbandonedShip_Corridors_B1F_OnResume: setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 255, 5, 4 end -AbandonedShip_Corridors_B1F_OnLoad: @ 8237D98 +AbandonedShip_Corridors_B1F_OnLoad: call_if_unset FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_LockStorageRoom call_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_UnlockStorageRoom end -AbandonedShip_Corridors_B1F_EventScript_LockStorageRoom:: @ 8237DAB +AbandonedShip_Corridors_B1F_EventScript_LockStorageRoom:: setmetatile 11, 4, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1 return -AbandonedShip_Corridors_B1F_EventScript_UnlockStorageRoom:: @ 8237DB5 +AbandonedShip_Corridors_B1F_EventScript_UnlockStorageRoom:: setmetatile 11, 4, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1 return -AbandonedShip_Corridors_B1F_EventScript_TuberM:: @ 8237DBF +AbandonedShip_Corridors_B1F_EventScript_TuberM:: msgbox AbandonedShip_Corridors_B1F_Text_YayItsAShip, MSGBOX_NPC end -AbandonedShip_Corridors_B1F_EventScript_StorageRoomDoor:: @ 8237DC8 +AbandonedShip_Corridors_B1F_EventScript_StorageRoomDoor:: lockall goto_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_DoorIsUnlocked checkitem ITEM_STORAGE_KEY, 1 @@ -39,49 +39,49 @@ AbandonedShip_Corridors_B1F_EventScript_StorageRoomDoor:: @ 8237DC8 releaseall end -AbandonedShip_Corridors_B1F_EventScript_DoorIsLocked:: @ 8237DFF +AbandonedShip_Corridors_B1F_EventScript_DoorIsLocked:: msgbox AbandonedShip_Corridors_B1F_Text_DoorIsLocked, MSGBOX_DEFAULT releaseall end -AbandonedShip_Corridors_B1F_EventScript_DoorIsUnlocked:: @ 8237E09 +AbandonedShip_Corridors_B1F_EventScript_DoorIsUnlocked:: msgbox AbandonedShip_Text_TheDoorIsOpen, MSGBOX_DEFAULT releaseall end -AbandonedShip_Corridors_B1F_EventScript_Duncan:: @ 8237E13 +AbandonedShip_Corridors_B1F_EventScript_Duncan:: trainerbattle_single TRAINER_DUNCAN, AbandonedShip_Corridors_B1F_Text_DuncanIntro, AbandonedShip_Corridors_B1F_Text_DuncanDefeat msgbox AbandonedShip_Corridors_B1F_Text_DuncanPostBattle, MSGBOX_AUTOCLOSE end -AbandonedShip_Corridors_B1F_Text_DuncanIntro: @ 8237E2A +AbandonedShip_Corridors_B1F_Text_DuncanIntro: .string "When we go out to sea, we SAILORS\n" .string "always bring our POKéMON.\l" .string "How about a quick battle?$" -AbandonedShip_Corridors_B1F_Text_DuncanDefeat: @ 8237E80 +AbandonedShip_Corridors_B1F_Text_DuncanDefeat: .string "Whoops, I'm sunk!$" -AbandonedShip_Corridors_B1F_Text_DuncanPostBattle: @ 8237E92 +AbandonedShip_Corridors_B1F_Text_DuncanPostBattle: .string "The ship's bottom has sunk into the\n" .string "depths.\p" .string "If a POKéMON knew how to go underwater,\n" .string "we might make some progress…$" -AbandonedShip_Corridors_B1F_Text_YayItsAShip: @ 8237F03 +AbandonedShip_Corridors_B1F_Text_YayItsAShip: .string "Yay!\n" .string "It's a ship!$" -AbandonedShip_Corridors_B1F_Text_DoorIsLocked: @ 8237F15 +AbandonedShip_Corridors_B1F_Text_DoorIsLocked: .string "The door is locked.\p" .string "“STORAGE” is painted on the door.$" -AbandonedShip_Corridors_B1F_Text_InsertedStorageKey: @ 8237F4B +AbandonedShip_Corridors_B1F_Text_InsertedStorageKey: .string "{PLAYER} inserted and turned the\n" .string "STORAGE KEY.\p" .string "The inserted KEY stuck fast,\n" .string "but the door opened.$" -AbandonedShip_Text_TheDoorIsOpen: @ 8237FA5 +AbandonedShip_Text_TheDoorIsOpen: .string "The door is open.$" diff --git a/data/maps/AbandonedShip_Deck/scripts.inc b/data/maps/AbandonedShip_Deck/scripts.inc index b0ecc2a4db..6e1e75063d 100644 --- a/data/maps/AbandonedShip_Deck/scripts.inc +++ b/data/maps/AbandonedShip_Deck/scripts.inc @@ -1,8 +1,8 @@ -AbandonedShip_Deck_MapScripts:: @ 823799A +AbandonedShip_Deck_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, AbandonedShip_Deck_OnTransition .byte 0 -AbandonedShip_Deck_OnTransition: @ 82379A0 +AbandonedShip_Deck_OnTransition: setflag FLAG_LANDMARK_ABANDONED_SHIP end diff --git a/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc b/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc index 612d46a9a4..4ec63a7e10 100644 --- a/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc +++ b/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc @@ -1,13 +1,13 @@ -AbandonedShip_HiddenFloorCorridors_MapScripts:: @ 823896C +AbandonedShip_HiddenFloorCorridors_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_HiddenFloorCorridors_OnResume map_script MAP_SCRIPT_ON_LOAD, AbandonedShip_HiddenFloorCorridors_OnLoad .byte 0 -AbandonedShip_HiddenFloorCorridors_OnResume: @ 8238977 +AbandonedShip_HiddenFloorCorridors_OnResume: setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 255, 5, 4 end -AbandonedShip_HiddenFloorCorridors_OnLoad: @ 8238980 +AbandonedShip_HiddenFloorCorridors_OnLoad: call_if_unset FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom1 call_if_unset FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom2 call_if_unset FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom4 @@ -18,39 +18,39 @@ AbandonedShip_HiddenFloorCorridors_OnLoad: @ 8238980 call_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6 end -AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom1:: @ 82389C9 +AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom1:: setmetatile 3, 8, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1 return -AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom2:: @ 82389D3 +AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom2:: setmetatile 6, 8, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1 return -AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom4:: @ 82389DD +AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom4:: setmetatile 3, 3, METATILE_InsideShip_DoorIndent_Unlocked, 0 return -AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6:: @ 82389E7 +AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6:: setmetatile 9, 3, METATILE_InsideShip_DoorIndent_Unlocked, 0 return -AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom1:: @ 82389F1 +AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom1:: setmetatile 3, 8, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1 return -AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom2:: @ 82389FB +AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom2:: setmetatile 6, 8, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1 return -AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom4:: @ 8238A05 +AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom4:: setmetatile 3, 3, METATILE_InsideShip_DoorIndent_Locked, 0 return -AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom6:: @ 8238A0F +AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom6:: setmetatile 9, 3, METATILE_InsideShip_DoorIndent_Locked, 0 return -AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door:: @ 8238A19 +AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door:: lockall goto_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen checkitem ITEM_ROOM_1_KEY, 1 @@ -65,7 +65,7 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door:: @ 8238A19 releaseall end -AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door:: @ 8238A50 +AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door:: lockall goto_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen checkitem ITEM_ROOM_2_KEY, 1 @@ -80,7 +80,7 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door:: @ 8238A50 releaseall end -AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door:: @ 8238A87 +AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door:: lockall goto_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen checkitem ITEM_ROOM_4_KEY, 1 @@ -95,7 +95,7 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door:: @ 8238A87 releaseall end -AbandonedShip_HiddenFloorCorridors_EventScript_Room6Door:: @ 8238ABE +AbandonedShip_HiddenFloorCorridors_EventScript_Room6Door:: lockall goto_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen checkitem ITEM_ROOM_6_KEY, 1 @@ -110,48 +110,48 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room6Door:: @ 8238ABE releaseall end -AbandonedShip_HiddenFloorCorridors_EventScript_Rm1IsLocked:: @ 8238AF5 +AbandonedShip_HiddenFloorCorridors_EventScript_Rm1IsLocked:: msgbox AbandonedShip_HiddenFloorCorridors_Text_Rm1DoorIsLocked, MSGBOX_DEFAULT releaseall end -AbandonedShip_HiddenFloorCorridors_EventScript_Rm2IsLocked:: @ 8238AFF +AbandonedShip_HiddenFloorCorridors_EventScript_Rm2IsLocked:: msgbox AbandonedShip_HiddenFloorCorridors_Text_Rm2DoorIsLocked, MSGBOX_DEFAULT releaseall end -AbandonedShip_HiddenFloorCorridors_EventScript_Rm4IsLocked:: @ 8238B09 +AbandonedShip_HiddenFloorCorridors_EventScript_Rm4IsLocked:: msgbox AbandonedShip_HiddenFloorCorridors_Text_Rm4DoorIsLocked, MSGBOX_DEFAULT releaseall end -AbandonedShip_HiddenFloorCorridors_EventScript_Rm6IsLocked:: @ 8238B13 +AbandonedShip_HiddenFloorCorridors_EventScript_Rm6IsLocked:: msgbox AbandonedShip_HiddenFloorCorridors_Text_Rm6DoorIsLocked, MSGBOX_DEFAULT releaseall end -AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen:: @ 8238B1D +AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen:: msgbox AbandonedShip_Text_TheDoorIsOpen, MSGBOX_DEFAULT releaseall end -AbandonedShip_HiddenFloorCorridors_Text_Rm1DoorIsLocked: @ 8238B27 +AbandonedShip_HiddenFloorCorridors_Text_Rm1DoorIsLocked: .string "The door is locked.\p" .string "“RM. 1” is painted on the door.$" -AbandonedShip_HiddenFloorCorridors_Text_Rm2DoorIsLocked: @ 8238B5B +AbandonedShip_HiddenFloorCorridors_Text_Rm2DoorIsLocked: .string "The door is locked.\p" .string "“RM. 2” is painted on the door.$" -AbandonedShip_HiddenFloorCorridors_Text_Rm4DoorIsLocked: @ 8238B8F +AbandonedShip_HiddenFloorCorridors_Text_Rm4DoorIsLocked: .string "The door is locked.\p" .string "“RM. 4” is painted on the door.$" -AbandonedShip_HiddenFloorCorridors_Text_Rm6DoorIsLocked: @ 8238BC3 +AbandonedShip_HiddenFloorCorridors_Text_Rm6DoorIsLocked: .string "The door is locked.\p" .string "“RM. 6” is painted on the door.$" -AbandonedShip_HiddenFloorCorridors_Text_InsertedKey: @ 8238BF7 +AbandonedShip_HiddenFloorCorridors_Text_InsertedKey: .string "{PLAYER} inserted and turned the\n" .string "KEY.\p" .string "The inserted KEY stuck fast,\n" diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc index 53a7ee2ed6..cdeb225de2 100644 --- a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc +++ b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc @@ -1,8 +1,8 @@ -AbandonedShip_HiddenFloorRooms_MapScripts:: @ 8238C49 +AbandonedShip_HiddenFloorRooms_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, AbandonedShip_HiddenFloorRooms_OnFrame .byte 0 -AbandonedShip_HiddenFloorRooms_OnFrame: @ 8238C4F +AbandonedShip_HiddenFloorRooms_OnFrame: map_script_2 VAR_TEMP_1, 0, AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle .2byte 0 @@ -13,7 +13,7 @@ AbandonedShip_HiddenFloorRooms_OnFrame: @ 8238C4F @ Upper row, left column (Rm 4) @ Upper row, middle column (Rm 5) @ Upper row, right column (Rm 6) -AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle:: @ 8238C59 +AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle:: setvar VAR_TEMP_1, 1 getplayerxy VAR_TEMP_2, VAR_TEMP_3 setvar VAR_TEMP_4, 1 @@ -32,19 +32,19 @@ AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle:: @ 8238C59 case 6, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm6 end -AbandonedShip_HiddenFloorRooms_EventScript_InMiddleRoomColumn:: @ 8238CD1 +AbandonedShip_HiddenFloorRooms_EventScript_InMiddleRoomColumn:: addvar VAR_TEMP_4, 1 return -AbandonedShip_HiddenFloorRooms_EventScript_InRightRoomColumn:: @ 8238CD7 +AbandonedShip_HiddenFloorRooms_EventScript_InRightRoomColumn:: addvar VAR_TEMP_4, 2 return -AbandonedShip_HiddenFloorRooms_EventScript_InUpperRoomRow:: @ 8238CDD +AbandonedShip_HiddenFloorRooms_EventScript_InUpperRoomRow:: addvar VAR_TEMP_4, 3 return -AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1:: @ 8238CE3 +AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1:: delay 20 dofieldeffectsparkle 10, 10, 0 specialvar VAR_RESULT, FoundAbandonedShipRoom4Key @@ -54,10 +54,10 @@ AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1:: @ 8238CE3 delay 10 end -AbandonedShip_HiddenFloorRooms_EventScript_EnterRm2:: @ 8238D0C +AbandonedShip_HiddenFloorRooms_EventScript_EnterRm2:: end -AbandonedShip_HiddenFloorRooms_EventScript_EnterRm3:: @ 8238D0D +AbandonedShip_HiddenFloorRooms_EventScript_EnterRm3:: specialvar VAR_RESULT, FoundAbandonedShipRoom1Key compare VAR_RESULT, TRUE goto_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle @@ -68,10 +68,10 @@ AbandonedShip_HiddenFloorRooms_EventScript_EnterRm3:: @ 8238D0D delay 10 end -AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle:: @ 8238D32 +AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle:: end -AbandonedShip_HiddenFloorRooms_EventScript_EnterRm4:: @ 8238D33 +AbandonedShip_HiddenFloorRooms_EventScript_EnterRm4:: delay 20 dofieldeffectsparkle 8, 5, 0 dofieldeffectsparkle 11, 3, 0 @@ -82,7 +82,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_EnterRm4:: @ 8238D33 delay 10 end -AbandonedShip_HiddenFloorRooms_EventScript_EnterRm5:: @ 8238D6B +AbandonedShip_HiddenFloorRooms_EventScript_EnterRm5:: delay 20 dofieldeffectsparkle 16, 3, 0 dofieldeffectsparkle 25, 2, 0 @@ -94,32 +94,32 @@ AbandonedShip_HiddenFloorRooms_EventScript_EnterRm5:: @ 8238D6B delay 10 end -AbandonedShip_HiddenFloorRooms_EventScript_EnterRm6:: @ 8238DB2 +AbandonedShip_HiddenFloorRooms_EventScript_EnterRm6:: end -AbandonedShip_HiddenFloorRooms_EventScript_Rm1KeySparkle:: @ 8238DB3 +AbandonedShip_HiddenFloorRooms_EventScript_Rm1KeySparkle:: dofieldeffectsparkle 42, 10, 0 return -AbandonedShip_HiddenFloorRooms_EventScript_Rm2KeySparkle:: @ 8238DC3 +AbandonedShip_HiddenFloorRooms_EventScript_Rm2KeySparkle:: dofieldeffectsparkle 20, 5, 0 return -AbandonedShip_HiddenFloorRooms_EventScript_Rm4KeySparkle:: @ 8238DD3 +AbandonedShip_HiddenFloorRooms_EventScript_Rm4KeySparkle:: dofieldeffectsparkle 1, 12, 0 return -AbandonedShip_HiddenFloorRooms_EventScript_Rm6KeySparkle:: @ 8238DE3 +AbandonedShip_HiddenFloorRooms_EventScript_Rm6KeySparkle:: dofieldeffectsparkle 1, 2, 0 return -AbandonedShip_HiddenFloorRooms_EventScript_Trash:: @ 8238DF3 +AbandonedShip_HiddenFloorRooms_EventScript_Trash:: lockall msgbox AbandonedShip_HiddenFloorRooms_Text_BrightShinyTrash, MSGBOX_DEFAULT releaseall end -AbandonedShip_HiddenFloorRooms_Text_BrightShinyTrash: @ 8238DFE +AbandonedShip_HiddenFloorRooms_Text_BrightShinyTrash: .string "It's bright and shiny!\n" .string "But it's just trash…$" diff --git a/data/maps/AbandonedShip_Room_B1F/scripts.inc b/data/maps/AbandonedShip_Room_B1F/scripts.inc index 5dd7a2bad3..a5489e8100 100644 --- a/data/maps/AbandonedShip_Room_B1F/scripts.inc +++ b/data/maps/AbandonedShip_Room_B1F/scripts.inc @@ -1,3 +1,3 @@ -AbandonedShip_Room_B1F_MapScripts:: @ 82380A5 +AbandonedShip_Room_B1F_MapScripts:: .byte 0 diff --git a/data/maps/AbandonedShip_Rooms2_1F/scripts.inc b/data/maps/AbandonedShip_Rooms2_1F/scripts.inc index a09242fc94..e02d109b7b 100644 --- a/data/maps/AbandonedShip_Rooms2_1F/scripts.inc +++ b/data/maps/AbandonedShip_Rooms2_1F/scripts.inc @@ -1,7 +1,7 @@ -AbandonedShip_Rooms2_1F_MapScripts:: @ 82380A6 +AbandonedShip_Rooms2_1F_MapScripts:: .byte 0 -AbandonedShip_Rooms2_1F_EventScript_Dan:: @ 82380A7 +AbandonedShip_Rooms2_1F_EventScript_Dan:: trainerbattle_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_DanIntro, AbandonedShip_Rooms2_1F_Text_DanDefeat, AbandonedShip_Rooms2_1F_Text_DanNotEnoughMons, AbandonedShip_Rooms2_1F_EventScript_RegisterDan specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -10,18 +10,18 @@ AbandonedShip_Rooms2_1F_EventScript_Dan:: @ 82380A7 release end -AbandonedShip_Rooms2_1F_EventScript_RegisterDan:: @ 82380D7 +AbandonedShip_Rooms2_1F_EventScript_RegisterDan:: msgbox AbandonedShip_Rooms2_1F_Text_KiraRegister, MSGBOX_DEFAULT @ Kira speaks for both when registering KiraAndDan register_matchcall TRAINER_KIRA_AND_DAN_1 release end -AbandonedShip_Rooms2_1F_EventScript_DanRematch:: @ 82380F0 +AbandonedShip_Rooms2_1F_EventScript_DanRematch:: trainerbattle_rematch_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_DanRematchIntro, AbandonedShip_Rooms2_1F_Text_DanRematchDefeat, AbandonedShip_Rooms2_1F_Text_DanRematchNotEnoughMons msgbox AbandonedShip_Rooms2_1F_Text_DanPostRematch, MSGBOX_AUTOCLOSE end -AbandonedShip_Rooms2_1F_EventScript_Kira:: @ 823810B +AbandonedShip_Rooms2_1F_EventScript_Kira:: trainerbattle_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_KiraIntro, AbandonedShip_Rooms2_1F_Text_KiraDefeat, AbandonedShip_Rooms2_1F_Text_KiraNotEnoughMons, AbandonedShip_Rooms2_1F_EventScript_RegisterKira specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -30,122 +30,122 @@ AbandonedShip_Rooms2_1F_EventScript_Kira:: @ 823810B release end -AbandonedShip_Rooms2_1F_EventScript_RegisterKira:: @ 823813B +AbandonedShip_Rooms2_1F_EventScript_RegisterKira:: msgbox AbandonedShip_Rooms2_1F_Text_KiraRegister, MSGBOX_DEFAULT register_matchcall TRAINER_KIRA_AND_DAN_1 release end -AbandonedShip_Rooms2_1F_EventScript_KiraRematch:: @ 8238154 +AbandonedShip_Rooms2_1F_EventScript_KiraRematch:: trainerbattle_rematch_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_KiraRematchIntro, AbandonedShip_Rooms2_1F_Text_KiraRematchDefeat, AbandonedShip_Rooms2_1F_Text_KiraRematchNotEnoughMons msgbox AbandonedShip_Rooms2_1F_Text_KiraPostRematch, MSGBOX_AUTOCLOSE end -AbandonedShip_Rooms2_1F_EventScript_Jani:: @ 823816F +AbandonedShip_Rooms2_1F_EventScript_Jani:: trainerbattle_single TRAINER_JANI, AbandonedShip_Rooms2_1F_Text_JaniIntro, AbandonedShip_Rooms2_1F_Text_JaniDefeat msgbox AbandonedShip_Rooms2_1F_Text_JaniPostBattle, MSGBOX_AUTOCLOSE end -AbandonedShip_Rooms2_1F_EventScript_Garrison:: @ 8238186 +AbandonedShip_Rooms2_1F_EventScript_Garrison:: trainerbattle_single TRAINER_GARRISON, AbandonedShip_Rooms2_1F_Text_GarrisonIntro, AbandonedShip_Rooms2_1F_Text_GarrisonDefeat msgbox AbandonedShip_Rooms2_1F_Text_GarrisonPostBattle, MSGBOX_AUTOCLOSE end -AbandonedShip_Rooms2_1F_Text_DanIntro: @ 823819D +AbandonedShip_Rooms2_1F_Text_DanIntro: .string "DAN: While searching for treasures,\n" .string "we discovered a TRAINER!$" -AbandonedShip_Rooms2_1F_Text_DanDefeat: @ 82381DA +AbandonedShip_Rooms2_1F_Text_DanDefeat: .string "DAN: We couldn't win even though\n" .string "we worked together…$" -AbandonedShip_Rooms2_1F_Text_DanPostBattle: @ 823820F +AbandonedShip_Rooms2_1F_Text_DanPostBattle: .string "DAN: We can't find any treasures…\n" .string "I wonder if someone got them already?$" -AbandonedShip_Rooms2_1F_Text_DanNotEnoughMons: @ 8238257 +AbandonedShip_Rooms2_1F_Text_DanNotEnoughMons: .string "DAN: You don't even have two POKéMON.\n" .string "You can't expect to beat us like that.$" -AbandonedShip_Rooms2_1F_Text_KiraIntro: @ 82382A4 +AbandonedShip_Rooms2_1F_Text_KiraIntro: .string "KIRA: Oh?\n" .string "We were searching for treasures.\l" .string "But we discovered a TRAINER instead!$" -AbandonedShip_Rooms2_1F_Text_KiraDefeat: @ 82382F4 +AbandonedShip_Rooms2_1F_Text_KiraDefeat: .string "KIRA: Ooh, so strong!$" -AbandonedShip_Rooms2_1F_Text_KiraPostBattle: @ 823830A +AbandonedShip_Rooms2_1F_Text_KiraPostBattle: .string "KIRA: Where could the treasures be?\p" .string "I've already decided what I'm buying\n" .string "when we find the treasures!$" -AbandonedShip_Rooms2_1F_Text_KiraNotEnoughMons: @ 823836F +AbandonedShip_Rooms2_1F_Text_KiraNotEnoughMons: .string "KIRA: Oh, you don't have two POKéMON?\n" .string "We'll have to battle some other time!$" -AbandonedShip_Rooms2_1F_Text_KiraRegister: @ 82383BB +AbandonedShip_Rooms2_1F_Text_KiraRegister: .string "KIRA: Oh, you make me so angry!\n" .string "I'm going to register you for that!$" -AbandonedShip_Rooms2_1F_Text_DanRematchIntro: @ 82383FF +AbandonedShip_Rooms2_1F_Text_DanRematchIntro: .string "DAN: We've been searching for\n" .string "treasures all this time.\p" .string "Our POKéMON have grown stronger, too.\n" .string "Let us show you, okay?$" -AbandonedShip_Rooms2_1F_Text_DanRematchDefeat: @ 8238473 +AbandonedShip_Rooms2_1F_Text_DanRematchDefeat: .string "DAN: You're strong, as usual!$" -AbandonedShip_Rooms2_1F_Text_DanPostRematch: @ 8238491 +AbandonedShip_Rooms2_1F_Text_DanPostRematch: .string "DAN: We can't find any treasures,\n" .string "we lose at POKéMON…\p" .string "I want to go home… But if I say that,\n" .string "she gets all angry with me…$" -AbandonedShip_Rooms2_1F_Text_DanRematchNotEnoughMons: @ 8238509 +AbandonedShip_Rooms2_1F_Text_DanRematchNotEnoughMons: .string "DAN: You don't even have two POKéMON.\n" .string "You can't expect to beat us like that.$" -AbandonedShip_Rooms2_1F_Text_KiraRematchIntro: @ 8238556 +AbandonedShip_Rooms2_1F_Text_KiraRematchIntro: .string "KIRA: Oh? We meet again!\p" .string "Just like us, you still haven't given up\n" .string "searching for treasures, have you?\p" .string "Want to make it so the loser has\n" .string "to give up searching?$" -AbandonedShip_Rooms2_1F_Text_KiraRematchDefeat: @ 82385F2 +AbandonedShip_Rooms2_1F_Text_KiraRematchDefeat: .string "KIRA: Oh, we lost again…$" -AbandonedShip_Rooms2_1F_Text_KiraPostRematch: @ 823860B +AbandonedShip_Rooms2_1F_Text_KiraPostRematch: .string "KIRA: We're not leaving until we raise\n" .string "our POKéMON some more and we find\l" .string "the treasures here!$" -AbandonedShip_Rooms2_1F_Text_KiraRematchNotEnoughMons: @ 8238668 +AbandonedShip_Rooms2_1F_Text_KiraRematchNotEnoughMons: .string "KIRA: Oh, you don't have two POKéMON?\n" .string "We'll have to battle some other time!$" -AbandonedShip_Rooms2_1F_Text_JaniIntro: @ 82386B4 +AbandonedShip_Rooms2_1F_Text_JaniIntro: .string "I'm not good at swimming,\n" .string "but I am good at battles!$" -AbandonedShip_Rooms2_1F_Text_JaniDefeat: @ 82386E8 +AbandonedShip_Rooms2_1F_Text_JaniDefeat: .string "Oops.\n" .string "That didn't go very well.$" -AbandonedShip_Rooms2_1F_Text_JaniPostBattle: @ 8238708 +AbandonedShip_Rooms2_1F_Text_JaniPostBattle: .string "Walking around barefoot in this ship\n" .string "is kind of gross.$" -AbandonedShip_Rooms2_1F_Text_GarrisonIntro: @ 823873F +AbandonedShip_Rooms2_1F_Text_GarrisonIntro: .string "Strength and compassion…\n" .string "Those are a TRAINER's treasures!$" -AbandonedShip_Rooms2_1F_Text_GarrisonDefeat: @ 8238779 +AbandonedShip_Rooms2_1F_Text_GarrisonDefeat: .string "Ah, there is something about you\n" .string "that sparkles.$" -AbandonedShip_Rooms2_1F_Text_GarrisonPostBattle: @ 82387A9 +AbandonedShip_Rooms2_1F_Text_GarrisonPostBattle: .string "In a cabin somewhere on board,\n" .string "I saw something sparkle.$" diff --git a/data/maps/AbandonedShip_Rooms2_B1F/scripts.inc b/data/maps/AbandonedShip_Rooms2_B1F/scripts.inc index 5c24186965..156a67e5d5 100644 --- a/data/maps/AbandonedShip_Rooms2_B1F/scripts.inc +++ b/data/maps/AbandonedShip_Rooms2_B1F/scripts.inc @@ -1,11 +1,11 @@ -AbandonedShip_Rooms2_B1F_MapScripts:: @ 8238024 +AbandonedShip_Rooms2_B1F_MapScripts:: .byte 0 -AbandonedShip_Rooms2_B1F_EventScript_Camper:: @ 8238025 +AbandonedShip_Rooms2_B1F_EventScript_Camper:: msgbox AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring, MSGBOX_NPC end -AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring: @ 823802E +AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring: .string "This is a perfect place to go exploring!\n" .string "It's exciting here!\p" .string "I bet there're amazing treasures on\n" diff --git a/data/maps/AbandonedShip_Rooms_1F/scripts.inc b/data/maps/AbandonedShip_Rooms_1F/scripts.inc index cabbb45eab..41b4eb3b67 100644 --- a/data/maps/AbandonedShip_Rooms_1F/scripts.inc +++ b/data/maps/AbandonedShip_Rooms_1F/scripts.inc @@ -1,16 +1,16 @@ -AbandonedShip_Rooms_1F_MapScripts:: @ 8237A92 +AbandonedShip_Rooms_1F_MapScripts:: .byte 0 -AbandonedShip_Rooms_1F_EventScript_Gentleman:: @ 8237A93 +AbandonedShip_Rooms_1F_EventScript_Gentleman:: msgbox AbandonedShip_Rooms_1F_Text_TakingALookAround, MSGBOX_NPC end -AbandonedShip_Rooms_1F_EventScript_Demetrius:: @ 8237A9C +AbandonedShip_Rooms_1F_EventScript_Demetrius:: trainerbattle_single TRAINER_DEMETRIUS, AbandonedShip_Rooms_1F_Text_DemetriusIntro, AbandonedShip_Rooms_1F_Text_DemetriusDefeat msgbox AbandonedShip_Rooms_1F_Text_DemetriusPostBattle, MSGBOX_AUTOCLOSE end -AbandonedShip_Rooms_1F_EventScript_Thalia:: @ 8237AB3 +AbandonedShip_Rooms_1F_EventScript_Thalia:: trainerbattle_single TRAINER_THALIA_1, AbandonedShip_Rooms_1F_Text_ThaliaIntro, AbandonedShip_Rooms_1F_Text_ThaliaDefeat, AbandonedShip_Rooms_1F_EventScript_RegisterThalia specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -19,7 +19,7 @@ AbandonedShip_Rooms_1F_EventScript_Thalia:: @ 8237AB3 release end -AbandonedShip_Rooms_1F_EventScript_RegisterThalia:: @ 8237ADF +AbandonedShip_Rooms_1F_EventScript_RegisterThalia:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox AbandonedShip_Rooms_1F_Text_ThaliaRegister, MSGBOX_DEFAULT @@ -27,52 +27,52 @@ AbandonedShip_Rooms_1F_EventScript_RegisterThalia:: @ 8237ADF release end -AbandonedShip_Rooms_1F_EventScript_ThaliaRematch:: @ 8237AFE +AbandonedShip_Rooms_1F_EventScript_ThaliaRematch:: trainerbattle_rematch TRAINER_THALIA_1, AbandonedShip_Rooms_1F_Text_ThaliaRematchIntro, AbandonedShip_Rooms_1F_Text_ThaliaRematchDefeat msgbox AbandonedShip_Rooms_1F_Text_ThaliaPostRematch, MSGBOX_AUTOCLOSE end -AbandonedShip_Rooms_1F_Text_TakingALookAround: @ 8237B15 +AbandonedShip_Rooms_1F_Text_TakingALookAround: .string "Ships of this sort are rare, so I'm\n" .string "taking a look around.\p" .string "Hmhm…\n" .string "There appear to be other cabins…$" -AbandonedShip_Rooms_1F_Text_ThaliaIntro: @ 8237B76 +AbandonedShip_Rooms_1F_Text_ThaliaIntro: .string "What on earth would compel you to\n" .string "come here? You must be curious!$" -AbandonedShip_Rooms_1F_Text_ThaliaDefeat: @ 8237BB8 +AbandonedShip_Rooms_1F_Text_ThaliaDefeat: .string "Not just curious, but also strong…$" -AbandonedShip_Rooms_1F_Text_ThaliaPostBattle: @ 8237BDB +AbandonedShip_Rooms_1F_Text_ThaliaPostBattle: .string "The man next door…\p" .string "He says he's just sightseeing,\n" .string "but I don't know about that.$" -AbandonedShip_Rooms_1F_Text_ThaliaRegister: @ 8237C2A +AbandonedShip_Rooms_1F_Text_ThaliaRegister: .string "You're such a tough TRAINER!\n" .string "Let me register you as a memento!$" -AbandonedShip_Rooms_1F_Text_ThaliaRematchIntro: @ 8237C69 +AbandonedShip_Rooms_1F_Text_ThaliaRematchIntro: .string "What on earth would compel you to\n" .string "come back? You must really be curious!$" -AbandonedShip_Rooms_1F_Text_ThaliaRematchDefeat: @ 8237CB2 +AbandonedShip_Rooms_1F_Text_ThaliaRematchDefeat: .string "Aren't you too strong?$" -AbandonedShip_Rooms_1F_Text_ThaliaPostRematch: @ 8237CC9 +AbandonedShip_Rooms_1F_Text_ThaliaPostRematch: .string "I'm sure that man's up to something!\n" .string "He just acts so suspiciously!$" -AbandonedShip_Rooms_1F_Text_DemetriusIntro: @ 8237D0C +AbandonedShip_Rooms_1F_Text_DemetriusIntro: .string "Waaah!\n" .string "I've been found! …Huh?$" -AbandonedShip_Rooms_1F_Text_DemetriusDefeat: @ 8237D2A +AbandonedShip_Rooms_1F_Text_DemetriusDefeat: .string "Oh, you're not my mom.$" -AbandonedShip_Rooms_1F_Text_DemetriusPostBattle: @ 8237D41 +AbandonedShip_Rooms_1F_Text_DemetriusPostBattle: .string "I'm in trouble with my mom, so I ran.\n" .string "Keep it a secret where I am!$" diff --git a/data/maps/AbandonedShip_Rooms_B1F/scripts.inc b/data/maps/AbandonedShip_Rooms_B1F/scripts.inc index 80208b0511..a716972ff4 100644 --- a/data/maps/AbandonedShip_Rooms_B1F/scripts.inc +++ b/data/maps/AbandonedShip_Rooms_B1F/scripts.inc @@ -1,16 +1,16 @@ -AbandonedShip_Rooms_B1F_MapScripts:: @ 8237FB7 +AbandonedShip_Rooms_B1F_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Rooms_B1F_OnResume .byte 0 -AbandonedShip_Rooms_B1F_OnResume: @ 8237FBD +AbandonedShip_Rooms_B1F_OnResume: setdivewarp MAP_ABANDONED_SHIP_UNDERWATER2, 255, 17, 4 end -AbandonedShip_Rooms_B1F_EventScript_FatMan:: @ 8237FC6 +AbandonedShip_Rooms_B1F_EventScript_FatMan:: msgbox AbandonedShip_Rooms_B1F_Text_GettingQueasy, MSGBOX_NPC end -AbandonedShip_Rooms_B1F_Text_GettingQueasy: @ 8237FCF +AbandonedShip_Rooms_B1F_Text_GettingQueasy: .string "Urrrrppp…\p" .string "I'm getting queasy just being aboard\n" .string "this ship…\p" diff --git a/data/maps/AbandonedShip_Underwater1/scripts.inc b/data/maps/AbandonedShip_Underwater1/scripts.inc index 9e10c19f5e..9b3528b779 100644 --- a/data/maps/AbandonedShip_Underwater1/scripts.inc +++ b/data/maps/AbandonedShip_Underwater1/scripts.inc @@ -1,8 +1,8 @@ -AbandonedShip_Underwater1_MapScripts:: @ 8238096 +AbandonedShip_Underwater1_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Underwater1_OnResume .byte 0 -AbandonedShip_Underwater1_OnResume: @ 823809C +AbandonedShip_Underwater1_OnResume: setdivewarp MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, 255, 0, 10 end diff --git a/data/maps/AbandonedShip_Underwater2/scripts.inc b/data/maps/AbandonedShip_Underwater2/scripts.inc index 40e6c1e5e3..bb139bd510 100644 --- a/data/maps/AbandonedShip_Underwater2/scripts.inc +++ b/data/maps/AbandonedShip_Underwater2/scripts.inc @@ -1,8 +1,8 @@ -AbandonedShip_Underwater2_MapScripts:: @ 823895D +AbandonedShip_Underwater2_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Underwater2_OnResume .byte 0 -AbandonedShip_Underwater2_OnResume: @ 8238963 +AbandonedShip_Underwater2_OnResume: setdivewarp MAP_ABANDONED_SHIP_ROOMS_B1F, 255, 13, 7 end diff --git a/data/maps/AlteringCave/scripts.inc b/data/maps/AlteringCave/scripts.inc index 601f492177..91bc5ec336 100644 --- a/data/maps/AlteringCave/scripts.inc +++ b/data/maps/AlteringCave/scripts.inc @@ -1,8 +1,8 @@ -AlteringCave_MapScripts:: @ 823B177 +AlteringCave_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, AlteringCave_OnTransition .byte 0 -AlteringCave_OnTransition: @ 823B17D +AlteringCave_OnTransition: setflag FLAG_LANDMARK_ALTERING_CAVE end diff --git a/data/maps/AncientTomb/scripts.inc b/data/maps/AncientTomb/scripts.inc index 95dd85d286..40d9f0dff0 100644 --- a/data/maps/AncientTomb/scripts.inc +++ b/data/maps/AncientTomb/scripts.inc @@ -1,34 +1,34 @@ -AncientTomb_MapScripts:: @ 8238FB3 +AncientTomb_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, AncientTomb_OnResume map_script MAP_SCRIPT_ON_LOAD, AncientTomb_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, AncientTomb_OnTransition .byte 0 -AncientTomb_OnResume: @ 8238FC3 +AncientTomb_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, AncientTomb_EventScript_TryRemoveRegisteel end -AncientTomb_EventScript_TryRemoveRegisteel:: @ 8238FCD +AncientTomb_EventScript_TryRemoveRegisteel:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -AncientTomb_OnTransition: @ 8238FE1 +AncientTomb_OnTransition: setflag FLAG_LANDMARK_ANCIENT_TOMB call_if_unset FLAG_DEFEATED_REGISTEEL, AncientTomb_EventScript_ShowRegisteel end -AncientTomb_EventScript_ShowRegisteel:: @ 8238FEE +AncientTomb_EventScript_ShowRegisteel:: clearflag FLAG_HIDE_REGISTEEL return -AncientTomb_OnLoad: @ 8238FF2 +AncientTomb_OnLoad: call_if_unset FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED, AncientTomb_EventScript_HideRegiEntrance end -AncientTomb_EventScript_HideRegiEntrance:: @ 8238FFC +AncientTomb_EventScript_HideRegiEntrance:: setmetatile 7, 19, METATILE_Cave_EntranceCover, 1 setmetatile 8, 19, METATILE_Cave_EntranceCover, 1 setmetatile 9, 19, METATILE_Cave_EntranceCover, 1 @@ -37,7 +37,7 @@ AncientTomb_EventScript_HideRegiEntrance:: @ 8238FFC setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 return -AncientTomb_EventScript_CaveEntranceMiddle:: @ 8239033 +AncientTomb_EventScript_CaveEntranceMiddle:: lockall goto_if_set FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED, AncientTomb_EventScript_BigHoleInWall braillemessage AncientTomb_Braille_ShineInTheMiddle @@ -46,12 +46,12 @@ AncientTomb_EventScript_CaveEntranceMiddle:: @ 8239033 releaseall end -AncientTomb_EventScript_BigHoleInWall:: @ 8239046 +AncientTomb_EventScript_BigHoleInWall:: msgbox gText_BigHoleInTheWall, MSGBOX_DEFAULT releaseall end -AncientTomb_EventScript_CaveEntranceSide:: @ 8239050 +AncientTomb_EventScript_CaveEntranceSide:: lockall braillemessage AncientTomb_Braille_ShineInTheMiddle waitbuttonpress @@ -59,7 +59,7 @@ AncientTomb_EventScript_CaveEntranceSide:: @ 8239050 releaseall end -AncientTomb_EventScript_Registeel:: @ 823905A +AncientTomb_EventScript_Registeel:: lock faceplayer waitse @@ -82,12 +82,12 @@ AncientTomb_EventScript_Registeel:: @ 823905A release end -AncientTomb_EventScript_DefeatedRegisteel:: @ 82390A1 +AncientTomb_EventScript_DefeatedRegisteel:: setflag FLAG_DEFEATED_REGISTEEL goto Common_EventScript_RemoveStaticPokemon end -AncientTomb_EventScript_RanFromRegisteel:: @ 82390AA +AncientTomb_EventScript_RanFromRegisteel:: setvar VAR_0x8004, SPECIES_REGISTEEL goto Common_EventScript_LegendaryFlewAway end diff --git a/data/maps/AquaHideout_1F/scripts.inc b/data/maps/AquaHideout_1F/scripts.inc index b246862a72..4a99f250c4 100644 --- a/data/maps/AquaHideout_1F/scripts.inc +++ b/data/maps/AquaHideout_1F/scripts.inc @@ -1,8 +1,8 @@ -AquaHideout_1F_MapScripts:: @ 8233493 +AquaHideout_1F_MapScripts:: .byte 0 @ The below two entrance guards give hints about what to do to progress the story -AquaHideout_1F_EventScript_HideoutEntranceGrunt1:: @ 8233494 +AquaHideout_1F_EventScript_HideoutEntranceGrunt1:: lock faceplayer goto_if_set FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, AquaHideout_1F_EventScript_SlateportHint1 @@ -11,17 +11,17 @@ AquaHideout_1F_EventScript_HideoutEntranceGrunt1:: @ 8233494 release end -AquaHideout_1F_EventScript_MagmaHideoutHint1:: @ 82334B2 +AquaHideout_1F_EventScript_MagmaHideoutHint1:: msgbox AquaHideout_1F_Text_WhereMightMagmaHideoutBe, MSGBOX_DEFAULT release end -AquaHideout_1F_EventScript_SlateportHint1:: @ 82334BC +AquaHideout_1F_EventScript_SlateportHint1:: msgbox AquaHideout_1F_Text_BossWentToJackASubmarine, MSGBOX_DEFAULT release end -AquaHideout_1F_EventScript_HideoutEntranceGrunt2:: @ 82334C6 +AquaHideout_1F_EventScript_HideoutEntranceGrunt2:: lock faceplayer goto_if_set FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, AquaHideout_1F_EventScript_SlateportHint2 @@ -30,27 +30,27 @@ AquaHideout_1F_EventScript_HideoutEntranceGrunt2:: @ 82334C6 release end -AquaHideout_1F_EventScript_MagmaHideoutHint2:: @ 82334E4 +AquaHideout_1F_EventScript_MagmaHideoutHint2:: msgbox AquaHideout_1F_Text_TeamMagmaAtMtChimney, MSGBOX_DEFAULT release end -AquaHideout_1F_EventScript_SlateportHint2:: @ 82334EE +AquaHideout_1F_EventScript_SlateportHint2:: msgbox AquaHideout_1F_Text_BossIsInSlateportCity, MSGBOX_DEFAULT release end -AquaHideout_1F_EventScript_Grunt1:: @ 82334F8 +AquaHideout_1F_EventScript_Grunt1:: trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_1, AquaHideout_1F_Text_Grunt1Intro, AquaHideout_1F_Text_Grunt1Defeat, AquaHideout_1F_EventScript_Grunt1Defeated msgbox AquaHideout_1F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE end -AquaHideout_1F_EventScript_Grunt1Defeated:: @ 8233513 +AquaHideout_1F_EventScript_Grunt1Defeated:: msgbox AquaHideout_1F_Text_Grunt1PostBattle, MSGBOX_DEFAULT release end -AquaHideout_1F_Text_OurBossIsSnatchingSomething: @ 823351D +AquaHideout_1F_Text_OurBossIsSnatchingSomething: .string "What? What? What do you want with \n" .string "TEAM AQUA?\p" .string "Our BOSS isn't here! He's gone off to\n" @@ -60,7 +60,7 @@ AquaHideout_1F_Text_OurBossIsSnatchingSomething: @ 823351D .string "Wahaha! Do you really think I'd tell\n" .string "you something that crucial?$" -AquaHideout_1F_Text_WhereMightMagmaHideoutBe: @ 82335E3 +AquaHideout_1F_Text_WhereMightMagmaHideoutBe: .string "What? What?\n" .string "Are you a TEAM MAGMA grunt?\p" .string "I hear that TEAM MAGMA is trying to\n" @@ -68,7 +68,7 @@ AquaHideout_1F_Text_WhereMightMagmaHideoutBe: @ 82335E3 .string "HIDEOUT.\p" .string "But where might their HIDEOUT be?$" -AquaHideout_1F_Text_BossWentToJackASubmarine: @ 823367D +AquaHideout_1F_Text_BossWentToJackASubmarine: .string "What? What? What do you want with \n" .string "TEAM AQUA?\p" .string "Our BOSS isn't here!\n" @@ -78,7 +78,7 @@ AquaHideout_1F_Text_BossWentToJackASubmarine: @ 823367D .string "Wahaha! Do you really think I'd tell\n" .string "you something that crucial?$" -AquaHideout_1F_Text_BossIsOnRoute122: @ 8233739 +AquaHideout_1F_Text_BossIsOnRoute122: .string "What? What? What do you want with \n" .string "TEAM AQUA?\p" .string "Our BOSS isn't here! He's on his way to\n" @@ -88,14 +88,14 @@ AquaHideout_1F_Text_BossIsOnRoute122: @ 8233739 .string "Wahaha! Do you really think I'd tell\n" .string "you something that crucial?$" -AquaHideout_1F_Text_TeamMagmaAtMtChimney: @ 82337FA +AquaHideout_1F_Text_TeamMagmaAtMtChimney: .string "What? What?\n" .string "Are you a TEAM MAGMA grunt?\p" .string "I hear that TEAM MAGMA is after\n" .string "an awesome POKéMON at MT. CHIMNEY.\p" .string "But what is that POKéMON like?$" -AquaHideout_1F_Text_BossIsInSlateportCity: @ 8233884 +AquaHideout_1F_Text_BossIsInSlateportCity: .string "What? What? What do you want with\n" .string "TEAM AQUA?\p" .string "Our BOSS isn't here!\n" @@ -105,15 +105,15 @@ AquaHideout_1F_Text_BossIsInSlateportCity: @ 8233884 .string "Wahaha! Do you really think I'd tell\n" .string "you something that crucial?$" -AquaHideout_1F_Text_Grunt1Intro: @ 823393D +AquaHideout_1F_Text_Grunt1Intro: .string "Ayiyiyi!\n" .string "Suspicious character spotted!$" -AquaHideout_1F_Text_Grunt1Defeat: @ 8233964 +AquaHideout_1F_Text_Grunt1Defeat: .string "Grrrrr…\n" .string "I lost it!$" -AquaHideout_1F_Text_Grunt1PostBattle: @ 8233977 +AquaHideout_1F_Text_Grunt1PostBattle: .string "I took the loss for the TEAM,\n" .string "but I did my job…$" diff --git a/data/maps/AquaHideout_B1F/scripts.inc b/data/maps/AquaHideout_B1F/scripts.inc index 17e803814f..4a4a95cc44 100644 --- a/data/maps/AquaHideout_B1F/scripts.inc +++ b/data/maps/AquaHideout_B1F/scripts.inc @@ -1,33 +1,33 @@ -AquaHideout_B1F_MapScripts:: @ 82339A7 +AquaHideout_B1F_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, AquaHideout_B1F_OnResume map_script MAP_SCRIPT_ON_TRANSITION, AquaHideout_B1F_OnTransition .byte 0 -AquaHideout_B1F_OnResume: @ 82339B2 +AquaHideout_B1F_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, AquaHideout_B1F_EventScript_TryRemoveElectrode end -AquaHideout_B1F_EventScript_TryRemoveElectrode:: @ 82339BC +AquaHideout_B1F_EventScript_TryRemoveElectrode:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -AquaHideout_B1F_OnTransition: @ 82339D0 +AquaHideout_B1F_OnTransition: call_if_unset FLAG_DEFEATED_ELECTRODE_1_AQUA_HIDEOUT, AquaHideout_B1F_EventScript_ShowElectrode1 call_if_unset FLAG_DEFEATED_ELECTRODE_2_AQUA_HIDEOUT, AquaHideout_B1F_EventScript_ShowElectrode2 end -AquaHideout_B1F_EventScript_ShowElectrode1:: @ 82339E3 +AquaHideout_B1F_EventScript_ShowElectrode1:: clearflag FLAG_HIDE_AQUA_HIDEOUT_B1F_ELECTRODE_1 return -AquaHideout_B1F_EventScript_ShowElectrode2:: @ 82339E7 +AquaHideout_B1F_EventScript_ShowElectrode2:: clearflag FLAG_HIDE_AQUA_HIDEOUT_B1F_ELECTRODE_2 return -AquaHideout_B1F_EventScript_Electrode1:: @ 82339EB +AquaHideout_B1F_EventScript_Electrode1:: lock faceplayer setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE @@ -49,12 +49,12 @@ AquaHideout_B1F_EventScript_Electrode1:: @ 82339EB release end -AquaHideout_B1F_EventScript_DefeatedElectrode1:: @ 8233A2F +AquaHideout_B1F_EventScript_DefeatedElectrode1:: setflag FLAG_DEFEATED_ELECTRODE_1_AQUA_HIDEOUT goto Common_EventScript_RemoveStaticPokemon end -AquaHideout_B1F_EventScript_Electrode2:: @ 8233A38 +AquaHideout_B1F_EventScript_Electrode2:: lock faceplayer setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE @@ -76,92 +76,92 @@ AquaHideout_B1F_EventScript_Electrode2:: @ 8233A38 release end -AquaHideout_B1F_EventScript_DefeatedElectrode2:: @ 8233A7C +AquaHideout_B1F_EventScript_DefeatedElectrode2:: setflag FLAG_DEFEATED_ELECTRODE_2_AQUA_HIDEOUT goto Common_EventScript_RemoveStaticPokemon end -AquaHideout_B1F_EventScript_Grunt2:: @ 8233A85 +AquaHideout_B1F_EventScript_Grunt2:: trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_2, AquaHideout_B1F_Text_Grunt2Intro, AquaHideout_B1F_Text_Grunt2Defeat, AquaHideout_B1F_EventScript_Grunt2Defeated msgbox AquaHideout_B1F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE end -AquaHideout_B1F_EventScript_Grunt2Defeated:: @ 8233AA0 +AquaHideout_B1F_EventScript_Grunt2Defeated:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox AquaHideout_B1F_Text_Grunt2PostBattle, MSGBOX_DEFAULT release end -AquaHideout_B1F_EventScript_Grunt3:: @ 8233AB0 +AquaHideout_B1F_EventScript_Grunt3:: trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_3, AquaHideout_B1F_Text_Grunt3Intro, AquaHideout_B1F_Text_Grunt3Defeat, AquaHideout_B1F_EventScript_Grunt3Defeated msgbox AquaHideout_B1F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE end -AquaHideout_B1F_EventScript_Grunt3Defeated:: @ 8233ACB +AquaHideout_B1F_EventScript_Grunt3Defeated:: msgbox AquaHideout_B1F_Text_Grunt3PostBattle, MSGBOX_DEFAULT release end -AquaHideout_B1F_EventScript_Grunt5:: @ 8233AD5 +AquaHideout_B1F_EventScript_Grunt5:: trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_5, AquaHideout_B1F_Text_Grunt5Intro, AquaHideout_B1F_Text_Grunt5Defeat msgbox AquaHideout_B1F_Text_Grunt5PostBattle, MSGBOX_AUTOCLOSE end -AquaHideout_B1F_EventScript_Grunt7:: @ 8233AEC +AquaHideout_B1F_EventScript_Grunt7:: trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_7, AquaHideout_B1F_Text_Grunt7Intro, AquaHideout_B1F_Text_Grunt7Defeat msgbox AquaHideout_B1F_Text_Grunt7PostBattle, MSGBOX_AUTOCLOSE end -AquaHideout_B1F_Text_Grunt2Intro: @ 8233B03 +AquaHideout_B1F_Text_Grunt2Intro: .string "If you want to know the secret about\n" .string "our HIDEOUT, you have me to beat!$" -AquaHideout_B1F_Text_Grunt2Defeat: @ 8233B4A +AquaHideout_B1F_Text_Grunt2Defeat: .string "I can't win at all…$" -AquaHideout_B1F_Text_Grunt2PostBattle: @ 8233B5E +AquaHideout_B1F_Text_Grunt2PostBattle: .string "Our HIDEOUT's secret?\p" .string "Well, let's just say…\n" .string "There's a submarine at the far end!\p" .string "But, by now…\n" .string "Kekekeke…$" -AquaHideout_B1F_Text_Grunt3Intro: @ 8233BC5 +AquaHideout_B1F_Text_Grunt3Intro: .string "Fuel supply loaded A-OK!\n" .string "In-cruise snacks loaded A-OK!\p" .string "Nothing left to do but KO a pesky\n" .string "meddler!$" -AquaHideout_B1F_Text_Grunt3Defeat: @ 8233C27 +AquaHideout_B1F_Text_Grunt3Defeat: .string "I took a serious licking!$" -AquaHideout_B1F_Text_Grunt3PostBattle: @ 8233C41 +AquaHideout_B1F_Text_Grunt3PostBattle: .string "Humph!\n" .string "This was supposed to happen!\p" .string "My mission was to just hold you up!$" -AquaHideout_B1F_Text_Grunt5Intro: @ 8233C89 +AquaHideout_B1F_Text_Grunt5Intro: .string "Yawn… Keeping watch over the\n" .string "HIDEOUT bores me. I'll take you on.$" -AquaHideout_B1F_Text_Grunt5Defeat: @ 8233CCA +AquaHideout_B1F_Text_Grunt5Defeat: .string "Yawn…\n" .string "Oh, I lost…$" -AquaHideout_B1F_Text_Grunt5PostBattle: @ 8233CDC +AquaHideout_B1F_Text_Grunt5PostBattle: .string "If you scurry too much, other TEAM\n" .string "AQUA members might get you.$" -AquaHideout_B1F_Text_Grunt7Intro: @ 8233D1B +AquaHideout_B1F_Text_Grunt7Intro: .string "Hey!\n" .string "You there!\p" .string "Which do you think is cooler?\n" .string "TEAM AQUA's uniform or TEAM MAGMA's?$" -AquaHideout_B1F_Text_Grunt7Defeat: @ 8233D6E +AquaHideout_B1F_Text_Grunt7Defeat: .string "I lost in a cool way…$" -AquaHideout_B1F_Text_Grunt7PostBattle: @ 8233D84 +AquaHideout_B1F_Text_Grunt7PostBattle: .string "If you have a cool uniform, you look\n" .string "good even in a loss, don't you think?$" diff --git a/data/maps/AquaHideout_B2F/scripts.inc b/data/maps/AquaHideout_B2F/scripts.inc index 25fc1820f0..95059fb6d3 100644 --- a/data/maps/AquaHideout_B2F/scripts.inc +++ b/data/maps/AquaHideout_B2F/scripts.inc @@ -1,19 +1,19 @@ .set LOCALID_MATT, 1 .set LOCALID_SUBMARINE, 4 -AquaHideout_B2F_MapScripts:: @ 8233DCF +AquaHideout_B2F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, AquaHideout_B2F_OnTransition .byte 0 -AquaHideout_B2F_OnTransition: @ 8233DD5 +AquaHideout_B2F_OnTransition: call_if_set FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, AquaHideout_B2F_EventScript_PreventMattNoticing end -AquaHideout_B2F_EventScript_PreventMattNoticing:: @ 8233DDF +AquaHideout_B2F_EventScript_PreventMattNoticing:: setvar VAR_TEMP_1, 1 return -AquaHideout_B2F_EventScript_MattNoticePlayer:: @ 8233DE5 +AquaHideout_B2F_EventScript_MattNoticePlayer:: lockall setvar VAR_0x8008, LOCALID_MATT playse SE_PIN @@ -25,13 +25,13 @@ AquaHideout_B2F_EventScript_MattNoticePlayer:: @ 8233DE5 releaseall end -AquaHideout_B2F_EventScript_Matt:: @ 8233E09 +AquaHideout_B2F_EventScript_Matt:: trainerbattle_single TRAINER_MATT, AquaHideout_B2F_Text_MattIntro, AquaHideout_B2F_Text_MattDefeat, AquaHideout_B2F_EventScript_SubmarineEscape msgbox AquaHideout_B2F_Text_MattPostBattle, MSGBOX_DEFAULT release end -AquaHideout_B2F_EventScript_SubmarineEscape:: @ 8233E25 +AquaHideout_B2F_EventScript_SubmarineEscape:: setvar VAR_0x8008, LOCALID_MATT setvar VAR_0x8009, LOCALID_SUBMARINE applymovement VAR_0x8008, Common_Movement_WalkInPlaceFastestLeft @@ -54,7 +54,7 @@ AquaHideout_B2F_EventScript_SubmarineEscape:: @ 8233E25 release end -AquaHideout_B2F_Movement_SumbarineDepartLeft: @ 8233E80 +AquaHideout_B2F_Movement_SumbarineDepartLeft: walk_left walk_left walk_left @@ -62,34 +62,34 @@ AquaHideout_B2F_Movement_SumbarineDepartLeft: @ 8233E80 step_end @ Unused -AquaHideout_B2F_Movement_SumbarineDepartRight: @ 8233E85 +AquaHideout_B2F_Movement_SumbarineDepartRight: walk_right walk_right walk_right walk_right step_end -AquaHideout_B2F_EventScript_Grunt4:: @ 8233E8A +AquaHideout_B2F_EventScript_Grunt4:: trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_4, AquaHideout_B2F_Text_Grunt4Intro, AquaHideout_B2F_Text_Grunt4Defeat, AquaHideout_B2F_EventScript_Grunt4Defeated msgbox AquaHideout_B2F_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE end -AquaHideout_B2F_EventScript_Grunt4Defeated:: @ 8233EA5 +AquaHideout_B2F_EventScript_Grunt4Defeated:: msgbox AquaHideout_B2F_Text_Grunt4PostBattle, MSGBOX_DEFAULT release end -AquaHideout_B2F_EventScript_Grunt6:: @ 8233EAF +AquaHideout_B2F_EventScript_Grunt6:: trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_6, AquaHideout_B2F_Text_Grunt6Intro, AquaHideout_B2F_Text_Grunt6Defeat msgbox AquaHideout_B2F_Text_Grunt6PostBattle, MSGBOX_AUTOCLOSE end -AquaHideout_B2F_EventScript_Grunt8:: @ 8233EC6 +AquaHideout_B2F_EventScript_Grunt8:: trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_8, AquaHideout_B2F_Text_Grunt8Intro, AquaHideout_B2F_Text_Grunt8Defeat msgbox AquaHideout_B2F_Text_Grunt8PostBattle, MSGBOX_AUTOCLOSE end -AquaHideout_B2F_Text_MattIntro: @ 8233EDD +AquaHideout_B2F_Text_MattIntro: .string "Hehehe…\p" .string "Got here already, did you?\n" .string "We underestimated you!\p" @@ -99,16 +99,16 @@ AquaHideout_B2F_Text_MattIntro: @ 8233EDD .string "I'm not stalling for time.\n" .string "I'm going to pulverize you!$" -AquaHideout_B2F_Text_MattDefeat: @ 8233F8D +AquaHideout_B2F_Text_MattDefeat: .string "Hehehe…\n" .string "So, I lost, too…$" -AquaHideout_B2F_Text_OurBossGotThroughHisPreparations: @ 8233FA6 +AquaHideout_B2F_Text_OurBossGotThroughHisPreparations: .string "Hehehe!\p" .string "While I was toying with you, our BOSS\n" .string "got through his preparations!$" -AquaHideout_B2F_Text_MattPostBattle: @ 8233FF2 +AquaHideout_B2F_Text_MattPostBattle: .string "Hehehe!\p" .string "Our BOSS has already gone on his way to\n" .string "some cave under the sea!\p" @@ -118,19 +118,19 @@ AquaHideout_B2F_Text_MattPostBattle: @ 8233FF2 .string "But will you find it then?\n" .string "Hehehe!$" -AquaHideout_B2F_Text_Grunt4Intro: @ 82340B4 +AquaHideout_B2F_Text_Grunt4Intro: .string "Wahahah, I grew weary of waiting!\n" .string "You owe me a battle, too!$" -AquaHideout_B2F_Text_Grunt4Defeat: @ 82340F0 +AquaHideout_B2F_Text_Grunt4Defeat: .string "Tired of waiting…\n" .string "Lost and dazed…$" -AquaHideout_B2F_Text_Grunt4PostBattle: @ 8234112 +AquaHideout_B2F_Text_Grunt4PostBattle: .string "BOSS…\n" .string "Is this good enough?$" -AquaHideout_B2F_Text_Grunt6Intro: @ 823412D +AquaHideout_B2F_Text_Grunt6Intro: .string "Warp panels, the HIDEOUT's pride\n" .string "and joy!\p" .string "You're clueless about where you are,\n" @@ -138,25 +138,25 @@ AquaHideout_B2F_Text_Grunt6Intro: @ 823412D .string "Fluster and tire out the enemy, then\n" .string "lower the boom! That's our plan!$" -AquaHideout_B2F_Text_Grunt6Defeat: @ 82341CE +AquaHideout_B2F_Text_Grunt6Defeat: .string "What's wrong with you?\n" .string "You're not tired at all!$" -AquaHideout_B2F_Text_Grunt6PostBattle: @ 82341FE +AquaHideout_B2F_Text_Grunt6PostBattle: .string "That reminds me… I can't remember\n" .string "where I put the MASTER BALL.\p" .string "If I fail to guard it, our BOSS will\n" .string "chew me out…$" -AquaHideout_B2F_Text_Grunt8Intro: @ 823426F +AquaHideout_B2F_Text_Grunt8Intro: .string "When I joined TEAM AQUA, the first\n" .string "thing I had to learn was how these\l" .string "warp panels connected.$" -AquaHideout_B2F_Text_Grunt8Defeat: @ 82342CC +AquaHideout_B2F_Text_Grunt8Defeat: .string "I was too occupied thinking about\n" .string "the warp panels…$" -AquaHideout_B2F_Text_Grunt8PostBattle: @ 82342FF +AquaHideout_B2F_Text_Grunt8PostBattle: .string "I'll have to learn about how I can\n" .string "battle more effectively…$" diff --git a/data/maps/AquaHideout_UnusedRubyMap1/scripts.inc b/data/maps/AquaHideout_UnusedRubyMap1/scripts.inc index 73cde82a97..ed01251e6d 100644 --- a/data/maps/AquaHideout_UnusedRubyMap1/scripts.inc +++ b/data/maps/AquaHideout_UnusedRubyMap1/scripts.inc @@ -1,3 +1,3 @@ -AquaHideout_UnusedRubyMap1_MapScripts:: @ 823929B +AquaHideout_UnusedRubyMap1_MapScripts:: .byte 0 diff --git a/data/maps/AquaHideout_UnusedRubyMap2/scripts.inc b/data/maps/AquaHideout_UnusedRubyMap2/scripts.inc index 28901497af..adf4c5b8c6 100644 --- a/data/maps/AquaHideout_UnusedRubyMap2/scripts.inc +++ b/data/maps/AquaHideout_UnusedRubyMap2/scripts.inc @@ -1,3 +1,3 @@ -AquaHideout_UnusedRubyMap2_MapScripts:: @ 823929C +AquaHideout_UnusedRubyMap2_MapScripts:: .byte 0 diff --git a/data/maps/AquaHideout_UnusedRubyMap3/scripts.inc b/data/maps/AquaHideout_UnusedRubyMap3/scripts.inc index de0e6d7ddb..518a6c0195 100644 --- a/data/maps/AquaHideout_UnusedRubyMap3/scripts.inc +++ b/data/maps/AquaHideout_UnusedRubyMap3/scripts.inc @@ -1,3 +1,3 @@ -AquaHideout_UnusedRubyMap3_MapScripts:: @ 823929D +AquaHideout_UnusedRubyMap3_MapScripts:: .byte 0 diff --git a/data/maps/ArtisanCave_1F/scripts.inc b/data/maps/ArtisanCave_1F/scripts.inc index 18090ff685..66e478ade5 100644 --- a/data/maps/ArtisanCave_1F/scripts.inc +++ b/data/maps/ArtisanCave_1F/scripts.inc @@ -1,3 +1,3 @@ -ArtisanCave_1F_MapScripts:: @ 823AFB7 +ArtisanCave_1F_MapScripts:: .byte 0 diff --git a/data/maps/ArtisanCave_B1F/scripts.inc b/data/maps/ArtisanCave_B1F/scripts.inc index 4dd850e884..a7afb0776e 100644 --- a/data/maps/ArtisanCave_B1F/scripts.inc +++ b/data/maps/ArtisanCave_B1F/scripts.inc @@ -1,8 +1,8 @@ -ArtisanCave_B1F_MapScripts:: @ 823AFAD +ArtisanCave_B1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, ArtisanCave_B1F_OnTransition .byte 0 -ArtisanCave_B1F_OnTransition: @ 823AFB3 +ArtisanCave_B1F_OnTransition: setflag FLAG_LANDMARK_ARTISAN_CAVE end diff --git a/data/maps/BattleColosseum_2P/scripts.inc b/data/maps/BattleColosseum_2P/scripts.inc index 97c6a5d0bd..460943a870 100644 --- a/data/maps/BattleColosseum_2P/scripts.inc +++ b/data/maps/BattleColosseum_2P/scripts.inc @@ -1,3 +1,3 @@ -BattleColosseum_2P_MapScripts:: @ 823B77D +BattleColosseum_2P_MapScripts:: .byte 0 diff --git a/data/maps/BattleColosseum_4P/scripts.inc b/data/maps/BattleColosseum_4P/scripts.inc index 70dca8e276..f18dd7abdb 100644 --- a/data/maps/BattleColosseum_4P/scripts.inc +++ b/data/maps/BattleColosseum_4P/scripts.inc @@ -1,3 +1,3 @@ -BattleColosseum_4P_MapScripts:: @ 823B780 +BattleColosseum_4P_MapScripts:: .byte 0 diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index 5badc62d07..4f7d3bd873 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -7,7 +7,7 @@ .set LOCALID_PLAYER, 8 .set LOCALID_ANNOUNCER, 9 -BattleFrontier_BattleArenaBattleRoom_MapScripts:: @ 8257487 +BattleFrontier_BattleArenaBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleArenaBattleRoom_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleArenaBattleRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleArenaBattleRoom_OnWarp @@ -17,16 +17,16 @@ BattleFrontier_BattleArenaBattleRoom_MapScripts:: @ 8257487 @ On this map the player (OBJ_EVENT_ID_PLAYER) is hidden @ The player is represented instead by LOCALID_PLAYER, which has the gfx id VAR_OBJ_GFX_ID_1 -BattleFrontier_BattleArenaBattleRoom_OnResume: @ 825749C +BattleFrontier_BattleArenaBattleRoom_OnResume: special OffsetCameraForBattle end -BattleFrontier_BattleArenaBattleRoom_OnTransition: @ 82574A0 +BattleFrontier_BattleArenaBattleRoom_OnTransition: frontier_settrainers call BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfx end -BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfx:: @ 82574AE +BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxMale @@ -34,19 +34,19 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfx:: @ 82574AE goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxFemale return -BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxMale:: @ 82574C6 +BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxMale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxFemale:: @ 82574CC +BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -BattleFrontier_BattleArenaBattleRoom_OnFrame: @ 82574D2 +BattleFrontier_BattleArenaBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleArenaBattleRoom_EventScript_EnterRoom:: @ 82574DC +BattleFrontier_BattleArenaBattleRoom_EventScript_EnterRoom:: lockall showobjectat LOCALID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_PlayerEnter @@ -60,7 +60,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_EnterRoom:: @ 82574DC frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE goto BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: @ 825752E +BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: tower_setopponent addobject LOCALID_OPPONENT applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentEnter @@ -97,7 +97,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: @ 825752E call BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle switch VAR_RESULT case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedOpponent -BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner:: @ 82575DB +BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner:: applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown applymovement LOCALID_BLACK_BELT_1, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown applymovement LOCALID_BLACK_BELT_2, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown @@ -108,12 +108,12 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner:: @ 82575 waitmovement 0 arena_gettrainername msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsOpponent, MSGBOX_DEFAULT -BattleFrontier_BattleArenaBattleRoom_EventScript_WarpToLobbyLost:: @ 8257615 +BattleFrontier_BattleArenaBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 waitstate -BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedOpponent:: @ 8257630 +BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedOpponent:: call BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 @@ -134,7 +134,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedOpponent:: @ 8257630 playfanfare MUS_HEAL waitfanfare special HealPlayerParty -BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: @ 82576B0 +BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY @@ -155,7 +155,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: @ 82576B0 call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle @@ -163,87 +163,87 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: @ 82576B0 case 3, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8257768 - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle:: @ 825779E +BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle:: message BattleFrontier_BattleArenaBattleRoom_Text_RecordLastBattle waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_RecordBattle case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleArenaBattleRoom_EventScript_RecordBattle:: @ 82577D0 +BattleFrontier_BattleArenaBattleRoom_EventScript_RecordBattle:: call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge:: @ 82577DA +BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattleArenaBattleRoom_Text_SaveAndShutDown, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent case YES, BattleFrontier_BattleArenaBattleRoom_EventScript_PauseChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleArenaBattleRoom_EventScript_AskRetireChallenge:: @ 8257808 +BattleFrontier_BattleArenaBattleRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattleArenaBattleRoom_Text_RetireFromChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_WarpToLobbyLost case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge:: @ 825783A +BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge:: closemessage applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight applymovement LOCALID_ATTENDANT, BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight waitmovement 0 goto BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers waitstate -BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon:: @ 8257852 +BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon:: delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 waitstate -BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor2ndOpponent:: @ 8257870 +BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor2ndOpponent:: message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor2ndOpponent waitmessage return -BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor3rdOpponent:: @ 8257877 +BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor3rdOpponent:: message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor3rdOpponent waitmessage return -BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor4thOpponent:: @ 825787E +BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor4thOpponent:: message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor4thOpponent waitmessage return -BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor5thOpponent:: @ 8257885 +BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor5thOpponent:: message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor5thOpponent waitmessage return -BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor6thOpponent:: @ 825788C +BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor6thOpponent:: message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor6thOpponent waitmessage return -BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor7thOpponent:: @ 8257893 +BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor7thOpponent:: message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor7thOpponent waitmessage return -BattleFrontier_BattleArenaBattleRoom_EventScript_PauseChallenge:: @ 825789A +BattleFrontier_BattleArenaBattleRoom_EventScript_PauseChallenge:: message BattleFrontier_BattleArenaBattleRoom_Text_SavingPleaseWait waitmessage arena_save CHALLENGE_STATUS_PAUSED @@ -253,18 +253,18 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_PauseChallenge:: @ 825789A frontier_reset end -BattleFrontier_BattleArenaBattleRoom_EventScript_TycoonUpNext:: @ 82578BC +BattleFrontier_BattleArenaBattleRoom_EventScript_TycoonUpNext:: compare VAR_TEMP_2, 1 goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon msgbox BattleFrontier_BattleArenaBattleRoom_Text_NowFaceTycoon, MSGBOX_DEFAULT setvar VAR_TEMP_2, 1 -BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon:: @ 82578D4 +BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon:: message BattleFrontier_BattleArenaBattleRoom_Text_PreparedForTycoon waitmessage call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoonNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle @@ -272,15 +272,15 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon:: @ 82578D4 case 3, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon -BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoonNoRecord:: @ 825792B - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoonNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon -BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: @ 8257961 +BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: call BattleFrontier_EventScript_SetBrainObjectGfx applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight applymovement LOCALID_ATTENDANT, BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight @@ -321,14 +321,14 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: @ 8257961 applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_GretaWalkBackToCenter waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_YouLookWeakTakeThingsEasy, MSGBOX_DEFAULT -BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaSilver:: @ 8257A3F +BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaSilver:: msgbox BattleFrontier_BattleArenaBattleRoom_Text_IgniteMyPassionForBattle, MSGBOX_DEFAULT call BattleFrontier_BattleArenaBattleRoom_EventScript_StartArenaBattle compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver goto BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner -BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver:: @ 8257A5C +BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver:: call BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner frontier_getsymbols compare VAR_RESULT, 0 @@ -344,7 +344,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver:: @ 8257A5C msgbox BattleFrontier_BattleArenaBattleRoom_Text_GoingToBeFunNextTime, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon -BattleFrontier_BattleArenaBattleRoom_EventScript_IntroGretaGold:: @ 8257AA5 +BattleFrontier_BattleArenaBattleRoom_EventScript_IntroGretaGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaGold @@ -358,14 +358,14 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_IntroGretaGold:: @ 8257AA5 applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_GretaWalkBackToCenter waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_WontAllowHalfheartedEffort, MSGBOX_DEFAULT -BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaGold:: @ 8257AF8 +BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaGold:: msgbox BattleFrontier_BattleArenaBattleRoom_Text_LetsGetThisStarted, MSGBOX_DEFAULT call BattleFrontier_BattleArenaBattleRoom_EventScript_StartArenaBattle compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold goto BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner -BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold:: @ 8257B15 +BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold:: call BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner frontier_getsymbols compare VAR_RESULT, 2 @@ -381,12 +381,12 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold:: @ 8257B15 msgbox BattleFrontier_BattleArenaBattleRoom_Text_IfWeBattleAgainWontLose, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon -BattleFrontier_BattleArenaBattleRoom_EventScript_StartArenaBattle:: @ 8257B5E +BattleFrontier_BattleArenaBattleRoom_EventScript_StartArenaBattle:: msgbox BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin, MSGBOX_DEFAULT call BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle return -BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle:: @ 8257B6C +BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle:: closemessage setvar VAR_TEMP_2, 0 frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE @@ -400,7 +400,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle:: @ 8257B6C frontier_resetsketch return -BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner:: @ 8257BA9 +BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner:: applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown applymovement LOCALID_BLACK_BELT_1, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown applymovement LOCALID_BLACK_BELT_2, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown @@ -414,39 +414,39 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner:: @ 8257BA9 call BattleFrontier_EventScript_IncrementWinStreak return -BattleFrontier_BattleArenaBattleRoom_Movement_PlayerEnter: @ 8257BE2 +BattleFrontier_BattleArenaBattleRoom_Movement_PlayerEnter: walk_right walk_right -BattleFrontier_BattleArenaBattleRoom_Movement_PlayerStepForwardLong: @ 8257BE4 +BattleFrontier_BattleArenaBattleRoom_Movement_PlayerStepForwardLong: walk_right -BattleFrontier_BattleArenaBattleRoom_Movement_PlayerStepForward: @ 8257BE5 +BattleFrontier_BattleArenaBattleRoom_Movement_PlayerStepForward: walk_right step_end -BattleFrontier_BattleArenaBattleRoom_Movement_PlayerWalkBackToLine: @ 8257BE7 +BattleFrontier_BattleArenaBattleRoom_Movement_PlayerWalkBackToLine: walk_left walk_left walk_in_place_fastest_right step_end -BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceLeft: @ 8257BEB +BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceLeft: walk_in_place_fastest_up step_end -BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight: @ 8257BED +BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight: walk_in_place_fastest_right step_end -BattleFrontier_BattleArenaBattleRoom_Movement_OpponentEnter: @ 8257BEF +BattleFrontier_BattleArenaBattleRoom_Movement_OpponentEnter: walk_left walk_left -BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForwardLong: @ 8257BF1 +BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForwardLong: walk_left -BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForward: @ 8257BF2 +BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForward: walk_left step_end -BattleFrontier_BattleArenaBattleRoom_Movement_GretaEnter: @ 8257BF4 +BattleFrontier_BattleArenaBattleRoom_Movement_GretaEnter: walk_fast_left walk_fast_left walk_fast_left @@ -454,7 +454,7 @@ BattleFrontier_BattleArenaBattleRoom_Movement_GretaEnter: @ 8257BF4 walk_fast_left step_end -BattleFrontier_BattleArenaBattleRoom_Movement_OpponentExit: @ 8257BFA +BattleFrontier_BattleArenaBattleRoom_Movement_OpponentExit: walk_right walk_right walk_right @@ -464,30 +464,30 @@ BattleFrontier_BattleArenaBattleRoom_Movement_OpponentExit: @ 8257BFA walk_right step_end -BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown: @ 8257C02 +BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown: disable_jump_landing_ground_effect jump_in_place_down step_end -BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp: @ 8257C05 +BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp: disable_jump_landing_ground_effect jump_in_place_up step_end -BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceDown: @ 8257C08 +BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceDown: walk_in_place_fastest_down step_end @ Unused, redundant -BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight2: @ 8257C0A +BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight2: walk_in_place_fastest_right step_end -BattleFrontier_BattleArenaBattleRoom_OnWarp: @ 8257C0C +BattleFrontier_BattleArenaBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleArenaBattleRoom_EventScript_SetUpRoomObjects .2byte 0 -BattleFrontier_BattleArenaBattleRoom_EventScript_SetUpRoomObjects:: @ 8257C16 +BattleFrontier_BattleArenaBattleRoom_EventScript_SetUpRoomObjects:: hideobjectat LOCALID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM removeobject LOCALID_OPPONENT call BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx @@ -495,7 +495,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_SetUpRoomObjects:: @ 8257C16 setvar VAR_TEMP_1, 1 end -BattleFrontier_BattleArenaBattleRoom_Movement_GretaLookAroundPlayer: @ 8257C30 +BattleFrontier_BattleArenaBattleRoom_Movement_GretaLookAroundPlayer: walk_down walk_in_place_fastest_left delay_16 @@ -507,97 +507,97 @@ BattleFrontier_BattleArenaBattleRoom_Movement_GretaLookAroundPlayer: @ 8257C30 walk_in_place_fastest_left step_end -BattleFrontier_BattleArenaBattleRoom_Movement_GretaWalkBackToCenter: @ 8257C3A +BattleFrontier_BattleArenaBattleRoom_Movement_GretaWalkBackToCenter: walk_down walk_in_place_fastest_left step_end -BattleFrontier_BattleArenaBattleRoom_Text_PlayerStepForward: @ 8257C3D +BattleFrontier_BattleArenaBattleRoom_Text_PlayerStepForward: .string "REFEREE: TRAINER {PLAYER}!\n" .string "Step forward, please!$" -BattleFrontier_BattleArenaBattleRoom_Text_OpponentStepForward: @ 8257C68 +BattleFrontier_BattleArenaBattleRoom_Text_OpponentStepForward: .string "REFEREE: TRAINER {STR_VAR_1}!\n" .string "Step forward, please!$" -BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin: @ 8257C93 +BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin: .string "REFEREE: Set KO Tourney!\n" .string "Begin!$" -BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsPlayer: @ 8257CB3 +BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsPlayer: .string "REFEREE: The winner is {PLAYER}!$" -BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsOpponent: @ 8257CCE +BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsOpponent: .string "REFEREE: The winner is {STR_VAR_1}!$" -BattleFrontier_BattleArenaBattleRoom_Text_MonsWillBeRestored: @ 8257CE9 +BattleFrontier_BattleArenaBattleRoom_Text_MonsWillBeRestored: .string "Your POKéMON will be restored to\n" .string "full health.$" -BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor2ndOpponent: @ 8257D17 +BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor2ndOpponent: .string "Next up, your second opponent!\n" .string "Are you ready to move on?$" -BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor3rdOpponent: @ 8257D50 +BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor3rdOpponent: .string "Next up, your third opponent!\n" .string "Are you ready to move on?$" -BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor4thOpponent: @ 8257D88 +BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor4thOpponent: .string "Next up, your fourth opponent!\n" .string "Are you ready to move on?$" -BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor5thOpponent: @ 8257DC1 +BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor5thOpponent: .string "Next up, your fifth opponent!\n" .string "Are you ready to move on?$" -BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor6thOpponent: @ 8257DF9 +BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor6thOpponent: .string "Next up, your sixth opponent!\n" .string "Are you ready to move on?$" -BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor7thOpponent: @ 8257E31 +BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor7thOpponent: .string "Next up, your seventh opponent!\n" .string "Are you ready to move on?$" -BattleFrontier_BattleArenaBattleRoom_Text_SaveAndShutDown: @ 8257E6B +BattleFrontier_BattleArenaBattleRoom_Text_SaveAndShutDown: .string "Would you like to save the game and\n" .string "shut down now?$" -BattleFrontier_BattleArenaBattleRoom_Text_RetireFromChallenge: @ 8257E9E +BattleFrontier_BattleArenaBattleRoom_Text_RetireFromChallenge: .string "Would you like to retire from your\n" .string "Set KO Tourney challenge?$" -BattleFrontier_BattleArenaBattleRoom_Text_SavingPleaseWait: @ 8257EDB +BattleFrontier_BattleArenaBattleRoom_Text_SavingPleaseWait: .string "I am saving your game data.\n" .string "Please wait.$" -BattleFrontier_BattleArenaBattleRoom_Text_RecordLastBattle: @ 8257F04 +BattleFrontier_BattleArenaBattleRoom_Text_RecordLastBattle: .string "Would you like to record your last\n" .string "battle on your FRONTIER PASS?$" -BattleFrontier_BattleArenaBattleRoom_Text_NowFaceTycoon: @ 8257F45 +BattleFrontier_BattleArenaBattleRoom_Text_NowFaceTycoon: .string "My dear challenger!\p" .string "Your skill level is truly astounding!\p" .string "We now would like you to face our\n" .string "leader, the ARENA TYCOON!$" -BattleFrontier_BattleArenaBattleRoom_Text_PreparedForTycoon: @ 8257FBB +BattleFrontier_BattleArenaBattleRoom_Text_PreparedForTycoon: .string "A battle with the ARENA TYCOON!\n" .string "Are you prepared?$" -BattleFrontier_BattleArenaBattleRoom_Text_MakeWayForGreta: @ 8257FED +BattleFrontier_BattleArenaBattleRoom_Text_MakeWayForGreta: .string "REFEREE: The ARENA TYCOON!\n" .string "Make way for GRETA!$" -BattleFrontier_BattleArenaBattleRoom_Text_GretaYoureChallenger: @ 825801C +BattleFrontier_BattleArenaBattleRoom_Text_GretaYoureChallenger: .string "GRETA: Hey!\n" .string "Howdy!\p" .string "…Wait, are you the challenger?$" -BattleFrontier_BattleArenaBattleRoom_Text_IsThatRight: @ 825804E +BattleFrontier_BattleArenaBattleRoom_Text_IsThatRight: .string "Is that right? Hmm…\n" .string "Hmhm…$" -BattleFrontier_BattleArenaBattleRoom_Text_YouLookWeakTakeThingsEasy: @ 8258068 +BattleFrontier_BattleArenaBattleRoom_Text_YouLookWeakTakeThingsEasy: .string "I don't know how to say it, but…\n" .string "To put it bluntly, you look pretty weak.\l" .string "Are you sure you're up for me?\p" @@ -605,53 +605,53 @@ BattleFrontier_BattleArenaBattleRoom_Text_YouLookWeakTakeThingsEasy: @ 8258068 .string "Well, all right!\n" .string "We'll take things easy to start with!$" -BattleFrontier_BattleArenaBattleRoom_Text_IgniteMyPassionForBattle: @ 825810D +BattleFrontier_BattleArenaBattleRoom_Text_IgniteMyPassionForBattle: .string "Okay! Let's see you ignite my passion\n" .string "for battle!$" -BattleFrontier_BattleArenaBattleRoom_Text_GretaYoureToughAfterAll: @ 825813F +BattleFrontier_BattleArenaBattleRoom_Text_GretaYoureToughAfterAll: .string "GRETA: Ow, wait a second!\n" .string "You are tough after all!\p" .string "I like you!\n" .string "Let's see your FRONTIER PASS.$" -BattleFrontier_BattleArenaBattleRoom_Text_ReceivedGutsSymbol: @ 825819C +BattleFrontier_BattleArenaBattleRoom_Text_ReceivedGutsSymbol: .string "The Guts Symbol was embossed on\n" .string "the FRONTIER PASS!$" -BattleFrontier_BattleArenaBattleRoom_Text_GoingToBeFunNextTime: @ 82581CF +BattleFrontier_BattleArenaBattleRoom_Text_GoingToBeFunNextTime: .string "Hmm…\p" .string "It's going to be fun the next time!\n" .string "I'm looking forward to it!$" -BattleFrontier_BattleArenaBattleRoom_Text_GretaLookingForwardToSeeingAgain: @ 8258213 +BattleFrontier_BattleArenaBattleRoom_Text_GretaLookingForwardToSeeingAgain: .string "GRETA: Hey! Howdy!\n" .string "You finally won your way up to me!\p" .string "I was getting worried waiting for you!\n" .string "I was really looking forward to seeing\l" .string "you again!$" -BattleFrontier_BattleArenaBattleRoom_Text_SoAreYouReady: @ 82582A2 +BattleFrontier_BattleArenaBattleRoom_Text_SoAreYouReady: .string "… … …\n" .string "So, are you ready?$" -BattleFrontier_BattleArenaBattleRoom_Text_WontAllowHalfheartedEffort: @ 82582BB +BattleFrontier_BattleArenaBattleRoom_Text_WontAllowHalfheartedEffort: .string "I won't allow a halfhearted effort!\n" .string "Be ready for a thrashing!$" -BattleFrontier_BattleArenaBattleRoom_Text_LetsGetThisStarted: @ 82582F9 +BattleFrontier_BattleArenaBattleRoom_Text_LetsGetThisStarted: .string "Come on, REFEREE!\n" .string "Let's get this started!$" -BattleFrontier_BattleArenaBattleRoom_Text_GretaBlownAway: @ 8258323 +BattleFrontier_BattleArenaBattleRoom_Text_GretaBlownAway: .string "GRETA: Gaaah! Blown away!\n" .string "Let's see your FRONTIER PASS!$" -BattleFrontier_BattleArenaBattleRoom_Text_GutsSymbolTookGoldenShine: @ 825835B +BattleFrontier_BattleArenaBattleRoom_Text_GutsSymbolTookGoldenShine: .string "The Guts Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattleArenaBattleRoom_Text_IfWeBattleAgainWontLose: @ 8258383 +BattleFrontier_BattleArenaBattleRoom_Text_IfWeBattleAgainWontLose: .string "Arrrgh!\n" .string "This is so infuriating!\p" .string "If we ever battle again, I won't lose!\n" diff --git a/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc b/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc index 7044caa391..fe808159e2 100644 --- a/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc @@ -1,14 +1,14 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattleArenaCorridor_MapScripts:: @ 82573B9 +BattleFrontier_BattleArenaCorridor_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleArenaCorridor_OnFrame .byte 0 -BattleFrontier_BattleArenaCorridor_OnFrame: @ 82573BF +BattleFrontier_BattleArenaCorridor_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaCorridor_EventScript_WalkToBattleRoom .2byte 0 -BattleFrontier_BattleArenaCorridor_EventScript_WalkToBattleRoom:: @ 82573C9 +BattleFrontier_BattleArenaCorridor_EventScript_WalkToBattleRoom:: delay 16 setvar VAR_TEMP_0, 1 applymovement LOCALID_ATTENDANT, BattleFrontier_BattleArenaCorridor_Movement_AttendantWalkToDoor @@ -26,7 +26,7 @@ BattleFrontier_BattleArenaCorridor_EventScript_WalkToBattleRoom:: @ 82573C9 waitstate end -BattleFrontier_BattleArenaCorridor_Movement_PlayerWalkToDoor: @ 8257417 +BattleFrontier_BattleArenaCorridor_Movement_PlayerWalkToDoor: walk_up walk_left walk_left @@ -49,12 +49,12 @@ BattleFrontier_BattleArenaCorridor_Movement_PlayerWalkToDoor: @ 8257417 walk_right step_end -BattleFrontier_BattleArenaCorridor_Movement_PlayerEnterDoor: @ 825742C +BattleFrontier_BattleArenaCorridor_Movement_PlayerEnterDoor: walk_right set_invisible step_end -BattleFrontier_BattleArenaCorridor_Movement_AttendantWalkToDoor: @ 825742F +BattleFrontier_BattleArenaCorridor_Movement_AttendantWalkToDoor: walk_left walk_left walk_left @@ -77,16 +77,16 @@ BattleFrontier_BattleArenaCorridor_Movement_AttendantWalkToDoor: @ 825742F walk_right step_end -BattleFrontier_BattleArenaCorridor_Movement_AttendantFacePlayer: @ 8257444 +BattleFrontier_BattleArenaCorridor_Movement_AttendantFacePlayer: walk_in_place_fastest_left step_end -BattleFrontier_BattleArenaCorridor_Movement_AttendantMoveOutOfWay: @ 8257446 +BattleFrontier_BattleArenaCorridor_Movement_AttendantMoveOutOfWay: walk_up walk_in_place_fastest_down step_end -BattleFrontier_BattleArenaCorridor_Text_PleaseStepIn: @ 8257449 +BattleFrontier_BattleArenaCorridor_Text_PleaseStepIn: .string "Your battles shall be waged in\n" .string "the next room. Please step in!$" diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc index a2d785e661..287fd4639a 100644 --- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc @@ -1,20 +1,20 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattleArenaLobby_MapScripts:: @ 8255C36 +BattleFrontier_BattleArenaLobby_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleArenaLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleArenaLobby_OnWarp .byte 0 -BattleFrontier_BattleArenaLobby_OnWarp: @ 8255C41 +BattleFrontier_BattleArenaLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleArenaLobby_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleArenaLobby_EventScript_TurnPlayerNorth:: @ 8255C4B +BattleFrontier_BattleArenaLobby_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleArenaLobby_OnFrame: @ 8255C55 +BattleFrontier_BattleArenaLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleArenaLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleArenaLobby_EventScript_ResumeChallenge @@ -22,11 +22,11 @@ BattleFrontier_BattleArenaLobby_OnFrame: @ 8255C55 map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleArenaLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattleArenaLobby_EventScript_GetChallengeStatus:: @ 8255C7F +BattleFrontier_BattleArenaLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -BattleFrontier_BattleArenaLobby_EventScript_QuitWithoutSaving:: @ 8255C88 +BattleFrontier_BattleArenaLobby_EventScript_QuitWithoutSaving:: lockall msgbox BattleFrontier_BattleArenaLobby_Text_DidntSaveBeforeShuttingDown, MSGBOX_DEFAULT closemessage @@ -37,7 +37,7 @@ BattleFrontier_BattleArenaLobby_EventScript_QuitWithoutSaving:: @ 8255C88 releaseall end -BattleFrontier_BattleArenaLobby_EventScript_WonChallenge:: @ 8255CCF +BattleFrontier_BattleArenaLobby_EventScript_WonChallenge:: lockall frontier_isbrain compare VAR_RESULT, TRUE @@ -45,9 +45,9 @@ BattleFrontier_BattleArenaLobby_EventScript_WonChallenge:: @ 8255CCF msgbox BattleFrontier_BattleArenaLobby_Text_CongratsOnSevenWins, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_GiveBattlePoints -BattleFrontier_BattleArenaLobby_EventScript_DefeatedTycoon:: @ 8255CF0 +BattleFrontier_BattleArenaLobby_EventScript_DefeatedTycoon:: msgbox BattleFrontier_BattleArenaLobby_Text_CongratsOnDefeatingTycoon, MSGBOX_DEFAULT -BattleFrontier_BattleArenaLobby_EventScript_GiveBattlePoints:: @ 8255CF8 +BattleFrontier_BattleArenaLobby_EventScript_GiveBattlePoints:: msgbox BattleFrontier_BattleArenaLobby_Text_PleaseAcceptBattlePoints, MSGBOX_DEFAULT frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS @@ -60,7 +60,7 @@ BattleFrontier_BattleArenaLobby_EventScript_GiveBattlePoints:: @ 8255CF8 releaseall end -BattleFrontier_BattleArenaLobby_EventScript_LostChallenge:: @ 8255D2B +BattleFrontier_BattleArenaLobby_EventScript_LostChallenge:: lockall message BattleFrontier_BattleArenaLobby_Text_ThankYouWaitWhileSave waitmessage @@ -72,7 +72,7 @@ BattleFrontier_BattleArenaLobby_EventScript_LostChallenge:: @ 8255D2B releaseall end -BattleFrontier_BattleArenaLobby_EventScript_SaveAfterChallenge:: @ 8255D59 +BattleFrontier_BattleArenaLobby_EventScript_SaveAfterChallenge:: frontier_checkairshow special LoadPlayerParty special HealPlayerParty @@ -84,18 +84,18 @@ BattleFrontier_BattleArenaLobby_EventScript_SaveAfterChallenge:: @ 8255D59 goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge message BattleFrontier_BattleArenaLobby_Text_RecordLastMatch waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge case 0, BattleFrontier_BattleArenaLobby_EventScript_RecordMatch case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge -BattleFrontier_BattleArenaLobby_EventScript_RecordMatch:: @ 8255DBA +BattleFrontier_BattleArenaLobby_EventScript_RecordMatch:: call BattleFrontier_EventScript_SaveBattle -BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge:: @ 8255DBF +BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge:: return -BattleFrontier_BattleArenaLobby_EventScript_ResumeChallenge:: @ 8255DC0 +BattleFrontier_BattleArenaLobby_EventScript_ResumeChallenge:: lockall message BattleFrontier_BattleArenaLobby_Text_LookingForwardToArrivalSaveGame waitmessage @@ -106,27 +106,27 @@ BattleFrontier_BattleArenaLobby_EventScript_ResumeChallenge:: @ 8255DC0 setvar VAR_TEMP_0, 255 goto BattleFrontier_BattleArenaLobby_EventScript_EnterChallenge -BattleFrontier_BattleArenaLobby_EventScript_Attendant:: @ 8255DF4 +BattleFrontier_BattleArenaLobby_EventScript_Attendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_ARENA setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattleArenaLobby_Text_WelcomeToBattleArena, MSGBOX_DEFAULT -BattleFrontier_BattleArenaLobby_EventScript_AskTakeChallenge:: @ 8255E0B +BattleFrontier_BattleArenaLobby_EventScript_AskTakeChallenge:: message BattleFrontier_BattleArenaLobby_Text_WishToTakeChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge case 1, BattleFrontier_BattleArenaLobby_EventScript_ExplainChallenge case 2, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge -BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge:: @ 8255E47 +BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge:: message BattleFrontier_BattleArenaLobby_Text_WhichLevelMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge @@ -149,7 +149,7 @@ BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge:: @ 8255E47 case YES, BattleFrontier_BattleArenaLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_LoadPartyAndCancelChallenge -BattleFrontier_BattleArenaLobby_EventScript_SaveBeforeChallenge:: @ 8255EE8 +BattleFrontier_BattleArenaLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER arena_init @@ -163,7 +163,7 @@ BattleFrontier_BattleArenaLobby_EventScript_SaveBeforeChallenge:: @ 8255EE8 setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_CancelChallengeSaveFailed -BattleFrontier_BattleArenaLobby_EventScript_EnterChallenge:: @ 8255F54 +BattleFrontier_BattleArenaLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattleArenaLobby_Text_GuideYouToArena, MSGBOX_DEFAULT @@ -178,36 +178,36 @@ BattleFrontier_BattleArenaLobby_EventScript_EnterChallenge:: @ 8255F54 waitstate end -BattleFrontier_BattleArenaLobby_EventScript_ExplainChallenge:: @ 8255F9F +BattleFrontier_BattleArenaLobby_EventScript_ExplainChallenge:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainChallenge, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_AskTakeChallenge -BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMons:: @ 8255FAC +BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMons:: switch VAR_RESULT case FRONTIER_LVL_50, BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMonsLv50 case FRONTIER_LVL_OPEN, BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMonsLvOpen -BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMonsLv50:: @ 8255FC7 +BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMonsLv50:: msgbox BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_EndCancelChallenge -BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 8255FD4 +BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMonsLvOpen:: msgbox BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_EndCancelChallenge -BattleFrontier_BattleArenaLobby_EventScript_CancelChallengeSaveFailed:: @ 8255FE1 +BattleFrontier_BattleArenaLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge -BattleFrontier_BattleArenaLobby_EventScript_LoadPartyAndCancelChallenge:: @ 8255FF8 +BattleFrontier_BattleArenaLobby_EventScript_LoadPartyAndCancelChallenge:: special LoadPlayerParty -BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge:: @ 8255FFB +BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge:: msgbox BattleFrontier_BattleArenaLobby_Text_AwaitAnotherChallenge, MSGBOX_DEFAULT -BattleFrontier_BattleArenaLobby_EventScript_EndCancelChallenge:: @ 8256003 +BattleFrontier_BattleArenaLobby_EventScript_EndCancelChallenge:: release end -BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLv50:: @ 8256005 +BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLv50:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleArenaLobby_Movement_AttendantWalkToLeftDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleArenaLobby_Movement_PlayerWalkToLeftDoor waitmovement 0 @@ -220,7 +220,7 @@ BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLv50:: @ 8256005 waitdooranim return -BattleFrontier_BattleArenaLobby_Movement_AttendantWalkToLeftDoor: @ 8256034 +BattleFrontier_BattleArenaLobby_Movement_AttendantWalkToLeftDoor: walk_up walk_up walk_up @@ -232,12 +232,12 @@ BattleFrontier_BattleArenaLobby_Movement_AttendantWalkToLeftDoor: @ 8256034 walk_up step_end -BattleFrontier_BattleArenaLobby_Movement_AttendantEnterDoor: @ 825603E +BattleFrontier_BattleArenaLobby_Movement_AttendantEnterDoor: walk_up set_invisible step_end -BattleFrontier_BattleArenaLobby_Movement_PlayerWalkToLeftDoor: @ 8256041 +BattleFrontier_BattleArenaLobby_Movement_PlayerWalkToLeftDoor: walk_up walk_up walk_up @@ -250,13 +250,13 @@ BattleFrontier_BattleArenaLobby_Movement_PlayerWalkToLeftDoor: @ 8256041 walk_in_place_fastest_up step_end -BattleFrontier_BattleArenaLobby_Movement_PlayerEnterDoor: @ 825604C +BattleFrontier_BattleArenaLobby_Movement_PlayerEnterDoor: walk_up walk_up set_invisible step_end -BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLvOpen:: @ 8256050 +BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLvOpen:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleArenaLobby_Movement_AttendantWalkToRightDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleArenaLobby_Movement_PlayerWalkToRightDoor waitmovement 0 @@ -269,7 +269,7 @@ BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLvOpen:: @ 8256050 waitdooranim return -BattleFrontier_BattleArenaLobby_Movement_AttendantWalkToRightDoor: @ 825607F +BattleFrontier_BattleArenaLobby_Movement_AttendantWalkToRightDoor: walk_up walk_up walk_up @@ -280,7 +280,7 @@ BattleFrontier_BattleArenaLobby_Movement_AttendantWalkToRightDoor: @ 825607F walk_up step_end -BattleFrontier_BattleArenaLobby_Movement_PlayerWalkToRightDoor: @ 8256088 +BattleFrontier_BattleArenaLobby_Movement_PlayerWalkToRightDoor: walk_up walk_up walk_up @@ -292,7 +292,7 @@ BattleFrontier_BattleArenaLobby_Movement_PlayerWalkToRightDoor: @ 8256088 walk_in_place_fastest_up step_end -BattleFrontier_BattleArenaLobby_EventScript_ShowResults:: @ 8256092 +BattleFrontier_BattleArenaLobby_EventScript_ShowResults:: lockall frontier_results FRONTIER_FACILITY_ARENA waitbuttonpress @@ -300,32 +300,32 @@ BattleFrontier_BattleArenaLobby_EventScript_ShowResults:: @ 8256092 releaseall end -BattleFrontier_BattleArenaLobby_EventScript_Youngster:: @ 82560A6 +BattleFrontier_BattleArenaLobby_EventScript_Youngster:: msgbox BattleFrontier_BattleArenaLobby_Text_BadIdeaToNotAttack, MSGBOX_NPC end -BattleFrontier_BattleArenaLobby_EventScript_Man:: @ 82560AF +BattleFrontier_BattleArenaLobby_EventScript_Man:: msgbox BattleFrontier_BattleArenaLobby_Text_LandingHitsWorked, MSGBOX_NPC end -BattleFrontier_BattleArenaLobby_EventScript_Camper:: @ 82560B8 +BattleFrontier_BattleArenaLobby_EventScript_Camper:: msgbox BattleFrontier_BattleArenaLobby_Text_MatchWasDeclaredDraw, MSGBOX_NPC end -BattleFrontier_BattleArenaLobby_EventScript_Woman:: @ 82560C1 +BattleFrontier_BattleArenaLobby_EventScript_Woman:: msgbox BattleFrontier_BattleArenaLobby_Text_OrderOfMonsImportant, MSGBOX_NPC end -BattleFrontier_BattleArenaLobby_EventScript_RulesBoard:: @ 82560CA +BattleFrontier_BattleArenaLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattleArenaLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard:: @ 82560D9 +BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattleArenaLobby_Text_ReadWhichHeading waitmessage - multichoice 17, 2, MULTI_BATTLE_ARENA_RULES, 0 + multichoice 17, 2, MULTI_BATTLE_ARENA_RULES, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleArenaLobby_EventScript_BattleRules case 1, BattleFrontier_BattleArenaLobby_EventScript_MindRules @@ -335,45 +335,45 @@ BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard:: @ 82560D9 case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_ExitRules end -BattleFrontier_BattleArenaLobby_EventScript_BattleRules:: @ 825612C +BattleFrontier_BattleArenaLobby_EventScript_BattleRules:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainBattleRules, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleArenaLobby_EventScript_MindRules:: @ 825613A +BattleFrontier_BattleArenaLobby_EventScript_MindRules:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainMindRules, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleArenaLobby_EventScript_SkillRules:: @ 8256148 +BattleFrontier_BattleArenaLobby_EventScript_SkillRules:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainSkillRules, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleArenaLobby_EventScript_BodyRules:: @ 8256156 +BattleFrontier_BattleArenaLobby_EventScript_BodyRules:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainBodyRules, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleArenaLobby_EventScript_ExitRules:: @ 8256164 +BattleFrontier_BattleArenaLobby_EventScript_ExitRules:: releaseall end -BattleFrontier_BattleArenaLobby_Text_WelcomeToBattleArena: @ 8256166 +BattleFrontier_BattleArenaLobby_Text_WelcomeToBattleArena: .string "Where the battling spirit of TRAINERS\n" .string "is put to the test!\p" .string "I welcome you to the BATTLE ARENA!\p" .string "I am your guide to the Set KO Tourney!$" -BattleFrontier_BattleArenaLobby_Text_WishToTakeChallenge: @ 82561EA +BattleFrontier_BattleArenaLobby_Text_WishToTakeChallenge: .string "Now, do you wish to take\n" .string "the BATTLE ARENA challenge?$" -BattleFrontier_BattleArenaLobby_Text_AwaitAnotherChallenge: @ 825621F +BattleFrontier_BattleArenaLobby_Text_AwaitAnotherChallenge: .string "We await your challenge on\n" .string "another occasion!$" -BattleFrontier_BattleArenaLobby_Text_ExplainChallenge: @ 825624C +BattleFrontier_BattleArenaLobby_Text_ExplainChallenge: .string "In the BATTLE ARENA, we undertake\n" .string "the Set KO Tourney.\p" .string "All participants enter with a team of\n" @@ -394,20 +394,20 @@ BattleFrontier_BattleArenaLobby_Text_ExplainChallenge: @ 825624C .string "seven TRAINERS in succession,\l" .string "we will present you with Battle Points.$" -BattleFrontier_BattleArenaLobby_Text_OkayToSave: @ 82564CE +BattleFrontier_BattleArenaLobby_Text_OkayToSave: .string "Before showing you to the BATTLE\n" .string "ARENA, you must save. Is that okay?$" -BattleFrontier_BattleArenaLobby_Text_WhichLevelMode: @ 8256513 +BattleFrontier_BattleArenaLobby_Text_WhichLevelMode: .string "The BATTLE ARENA offers two levels\n" .string "of challenge, Level 50 and Open Level.\l" .string "Which is your choice?$" -BattleFrontier_BattleArenaLobby_Text_SelectThreeMons: @ 8256573 +BattleFrontier_BattleArenaLobby_Text_SelectThreeMons: .string "Very well, now select your\n" .string "three POKéMON, please.$" -BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLvOpen: @ 82565A5 +BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLvOpen: .string "My dear challenger!\p" .string "You do not have the three POKéMON\n" .string "required for entry.\p" @@ -419,7 +419,7 @@ BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLvOpen: @ 82565A5 .string "When you have made your preparations,\n" .string "please do return.$" -BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLv50: @ 82566A8 +BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLv50: .string "My dear challenger!\p" .string "You do not have the three POKéMON\n" .string "required for entry.\p" @@ -433,11 +433,11 @@ BattleFrontier_BattleArenaLobby_Text_NotEnoughValidMonsLv50: @ 82566A8 .string "When you have made your preparations,\n" .string "please do return.$" -BattleFrontier_BattleArenaLobby_Text_GuideYouToArena: @ 82567E6 +BattleFrontier_BattleArenaLobby_Text_GuideYouToArena: .string "I shall now guide you to\n" .string "the BATTLE ARENA.$" -BattleFrontier_BattleArenaLobby_Text_DidntSaveBeforeShuttingDown: @ 8256811 +BattleFrontier_BattleArenaLobby_Text_DidntSaveBeforeShuttingDown: .string "My dear challenger!\p" .string "You did not save the game before\n" .string "shutting down, did you?\p" @@ -447,67 +447,67 @@ BattleFrontier_BattleArenaLobby_Text_DidntSaveBeforeShuttingDown: @ 8256811 .string "You may, of course, start with a fresh\n" .string "challenge.$" -BattleFrontier_BattleArenaLobby_Text_CongratsOnSevenWins: @ 82568E7 +BattleFrontier_BattleArenaLobby_Text_CongratsOnSevenWins: .string "We congratulate you for your splendid\n" .string "string of wins over seven TRAINERS!$" -BattleFrontier_BattleArenaLobby_Text_RecordAchievement: @ 8256931 +BattleFrontier_BattleArenaLobby_Text_RecordAchievement: .string "Your achievement will be recorded.\n" .string "Please wait while I save the game.$" @ Unused -BattleFrontier_BattleArenaLobby_Text_PresentYouWithPrize: @ 8256977 +BattleFrontier_BattleArenaLobby_Text_PresentYouWithPrize: .string "In commemoration of your 7-win streak,\n" .string "we present you with this prize.$" @ Unused -BattleFrontier_BattleArenaLobby_Text_ReceivedPrize: @ 82569BE +BattleFrontier_BattleArenaLobby_Text_ReceivedPrize: .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" @ Unused -BattleFrontier_BattleArenaLobby_Text_BagFullReturnForPrize: @ 82569D8 +BattleFrontier_BattleArenaLobby_Text_BagFullReturnForPrize: .string "Oh?\n" .string "Your BAG seems to be full.\p" .string "I urge you to clear space and\n" .string "return for your prize.$" -BattleFrontier_BattleArenaLobby_Text_ThankYouWaitWhileSave: @ 8256A2C +BattleFrontier_BattleArenaLobby_Text_ThankYouWaitWhileSave: .string "Thank you so much for participating!\p" .string "Please wait while I save the game.$" -BattleFrontier_BattleArenaLobby_Text_AwaitAnotherChallenge2: @ 8256A74 +BattleFrontier_BattleArenaLobby_Text_AwaitAnotherChallenge2: .string "We await your challenge on\n" .string "another occasion!$" -BattleFrontier_BattleArenaLobby_Text_LookingForwardToArrivalSaveGame: @ 8256AA1 +BattleFrontier_BattleArenaLobby_Text_LookingForwardToArrivalSaveGame: .string "We have been looking forward to\n" .string "your arrival.\p" .string "Before I show you to the BATTLE\n" .string "ARENA, I must save the game.\l" .string "Please wait.$" -BattleFrontier_BattleArenaLobby_Text_RecordLastMatch: @ 8256B19 +BattleFrontier_BattleArenaLobby_Text_RecordLastMatch: .string "Shall I record your last BATTLE ARENA\n" .string "match on your FRONTIER PASS?$" -BattleFrontier_BattleArenaLobby_Text_BadIdeaToNotAttack: @ 8256B5C +BattleFrontier_BattleArenaLobby_Text_BadIdeaToNotAttack: .string "I lost on the REFEREE's decision…\p" .string "I don't think it was a good idea to only\n" .string "use defensive moves and not attack…$" -BattleFrontier_BattleArenaLobby_Text_LandingHitsWorked: @ 8256BCB +BattleFrontier_BattleArenaLobby_Text_LandingHitsWorked: .string "I won in judging!\p" .string "Landing hits consistently on\n" .string "the opponent's POKéMON worked!$" -BattleFrontier_BattleArenaLobby_Text_MatchWasDeclaredDraw: @ 8256C19 +BattleFrontier_BattleArenaLobby_Text_MatchWasDeclaredDraw: .string "Our match was declared a draw.\p" .string "When we ran out of time, both my\n" .string "POKéMON and the opponent's had about\l" .string "the same amount of HP left.$" -BattleFrontier_BattleArenaLobby_Text_OrderOfMonsImportant: @ 8256C9A +BattleFrontier_BattleArenaLobby_Text_OrderOfMonsImportant: .string "In the BATTLE ARENA, the order of\n" .string "POKéMON is totally important.\p" .string "For example, if your first POKéMON\n" @@ -518,13 +518,13 @@ BattleFrontier_BattleArenaLobby_Text_OrderOfMonsImportant: @ 8256C9A .string "I think that will be a good way of\n" .string "making an effective team.$" -BattleFrontier_BattleArenaLobby_Text_RulesAreListed: @ 8256DB8 +BattleFrontier_BattleArenaLobby_Text_RulesAreListed: .string "The Set KO Tourney's rules are listed.$" -BattleFrontier_BattleArenaLobby_Text_ReadWhichHeading: @ 8256DDF +BattleFrontier_BattleArenaLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" -BattleFrontier_BattleArenaLobby_Text_ExplainBattleRules: @ 8256E02 +BattleFrontier_BattleArenaLobby_Text_ExplainBattleRules: .string "The Set KO Tourney has special rules,\n" .string "unlike standard battles.\p" .string "First, one battle lasts only\n" @@ -536,7 +536,7 @@ BattleFrontier_BattleArenaLobby_Text_ExplainBattleRules: @ 8256E02 .string "Also, a POKéMON cannot be switched out\n" .string "until its battle's outcome is decided.$" -BattleFrontier_BattleArenaLobby_Text_ExplainMindRules: @ 8256F43 +BattleFrontier_BattleArenaLobby_Text_ExplainMindRules: .string "The first judging factor is “Mind.”\n" .string "This factor evaluates how aggressive\l" .string "the battlers were.\p" @@ -544,7 +544,7 @@ BattleFrontier_BattleArenaLobby_Text_ExplainMindRules: @ 8256F43 .string "the TRAINERS ordered the use of\l" .string "offensive moves.$" -BattleFrontier_BattleArenaLobby_Text_ExplainSkillRules: @ 8256FF2 +BattleFrontier_BattleArenaLobby_Text_ExplainSkillRules: .string "The second judging factor is “Skill.”\n" .string "This factor evaluates how effectively\l" .string "POKéMON moves were used.\p" @@ -563,7 +563,7 @@ BattleFrontier_BattleArenaLobby_Text_ExplainSkillRules: @ 8256FF2 .string "hit with a move, its Skill rating will not\l" .string "go down.$" -BattleFrontier_BattleArenaLobby_Text_ExplainBodyRules: @ 8257202 +BattleFrontier_BattleArenaLobby_Text_ExplainBodyRules: .string "The third judging factor is “Body.”\n" .string "This factor is based on how much HP\l" .string "remained at the end of a battle.\p" @@ -571,13 +571,13 @@ BattleFrontier_BattleArenaLobby_Text_ExplainBodyRules: @ 8257202 .string "HP a POKéMON had at the start of\l" .string "battle, and what remained at the end.$" -BattleFrontier_BattleArenaLobby_Text_CongratsOnDefeatingTycoon: @ 82572D9 +BattleFrontier_BattleArenaLobby_Text_CongratsOnDefeatingTycoon: .string "A victory snatched from the ARENA\n" .string "TYCOON, and a seven-TRAINER sweep!\p" .string "We congratulate you on your most\n" .string "splendid challenge!$" -BattleFrontier_BattleArenaLobby_Text_PleaseAcceptBattlePoints: @ 8257353 +BattleFrontier_BattleArenaLobby_Text_PleaseAcceptBattlePoints: .string "My dear challenger, in recognition of\n" .string "your indefatigable spirit, please\l" .string "accept these Battle Point(s).$" diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index b01d5314bb..b092d56034 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -5,7 +5,7 @@ .set LOCALID_PLAYER, 13 .set LOCALID_OPPONENT, 15 -BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C +BattleFrontier_BattleDomeBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleDomeBattleRoom_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeBattleRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeBattleRoom_OnWarp @@ -16,7 +16,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C .set DRAW_TRAINER, 1 .set DRAW_TUCKER, 2 -BattleFrontier_BattleDomeBattleRoom_OnTransition: @ 824BCB1 +BattleFrontier_BattleDomeBattleRoom_OnTransition: dome_setopponentgfx frontier_get FRONTIER_DATA_BATTLE_NUM copyvar VAR_TEMP_F, VAR_RESULT @@ -25,7 +25,7 @@ BattleFrontier_BattleDomeBattleRoom_OnTransition: @ 824BCB1 call BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx end -BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx:: @ 824BCDC +BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxMale @@ -33,19 +33,19 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx:: @ 824BCDC goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxFemale return -BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxMale:: @ 824BCF4 +BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxMale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxFemale:: @ 824BCFA +BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -BattleFrontier_BattleDomeBattleRoom_OnFrame: @ 824BD00 +BattleFrontier_BattleDomeBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom:: @ 824BD0A +BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom:: lockall call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum compare VAR_RESULT, DOME_ROUND1 @@ -60,13 +60,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom:: @ 824BD0A goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker -BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter:: @ 824BD4E +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter:: applymovement LOCALID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnter goto BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer -BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker:: @ 824BD5A +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker:: applymovement LOCALID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker -BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer:: @ 824BD61 +BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer:: playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitmovement 0 @@ -74,7 +74,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer:: @ 824BD6 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker -BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent:: @ 824BD82 +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent:: dome_getopponentname msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTrainer, MSGBOX_DEFAULT closemessage @@ -92,7 +92,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent:: @ 824BD82 case B_OUTCOME_LOST, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent case B_OUTCOME_FORFEITED, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent setvar VAR_TEMP_2, DRAW_TRAINER -BattleFrontier_BattleDomeBattleRoom_EventScript_Draw:: @ 824BDF7 +BattleFrontier_BattleDomeBattleRoom_EventScript_Draw:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait, MSGBOX_DEFAULT closemessage playse SE_M_ENCORE2 @@ -110,7 +110,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_Draw:: @ 824BDF7 dome_compareseeds switch VAR_RESULT case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent -BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: @ 824BE4F +BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: applymovement LOCALID_ANNOUNCER, Common_Movement_WalkInPlaceDown waitmovement 0 dome_getopponentname @@ -123,30 +123,30 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: @ 824BE4F playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 -BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney:: @ 824BE8D +BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney:: dome_resolvewinners DOME_PLAYER_LOST_MATCH -BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost:: @ 824BE9A +BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon:: @ 824BEB1 +BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon:: frontier_gettrainername 1 message BattleFrontier_BattleDomeBattleRoom_Text_TrainerIsWinner waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw:: @ 824BEC5 +BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw:: frontier_gettrainername 0 message BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw:: @ 824BED9 +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw:: message BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTucker waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: @ 824BEE0 +BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: applymovement LOCALID_ANNOUNCER, Common_Movement_WalkInPlaceDown waitmovement 0 compare VAR_TEMP_2, NO_DRAW @@ -167,7 +167,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: @ 824BEE0 warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 3 waitstate -BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney:: @ 824BF62 +BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney:: applymovement LOCALID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerApproachAudience waitmovement 0 frontier_get FRONTIER_DATA_LVL_MODE @@ -176,9 +176,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney:: @ 824BF62 msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin -BattleFrontier_BattleDomeBattleRoom_EventScript_WonLvOpenTourney:: @ 824BF96 +BattleFrontier_BattleDomeBattleRoom_EventScript_WonLvOpenTourney:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp, MSGBOX_DEFAULT -BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin:: @ 824BF9E +BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin:: special DoDomeConfetti playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround @@ -186,15 +186,15 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin:: @ 824BF9E frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon:: @ 824BFC3 +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsWinner, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw:: @ 824BFCC +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerPlayer, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer:: @ 824BFD5 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer:: dome_get DOME_DATA_ATTEMPTED_CHALLENGE compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt @@ -207,7 +207,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer:: @ 824BFD5 goto BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt:: @ 824C023 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt:: call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound1 @@ -216,27 +216,27 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt:: @ 8 case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound1:: @ 824C05A +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound1:: message BattleFrontier_BattleDomeBattleRoom_Text_BrightNewHope waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound2:: @ 824C061 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound2:: message BattleFrontier_BattleDomeBattleRoom_Text_RisingStar waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptSemifinal:: @ 824C068 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptSemifinal:: message BattleFrontier_BattleDomeBattleRoom_Text_WillTheyRaceToChampionship waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptFinal:: @ 824C06F +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptFinal:: message BattleFrontier_BattleDomeBattleRoom_Text_CanAchieveChampionFirstTry waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon:: @ 824C076 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon:: call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound1 @@ -245,27 +245,27 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon:: @ 824C0 case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound1:: @ 824C0AD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound1:: message BattleFrontier_BattleDomeBattleRoom_Text_CanLossBeAvenged waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound2:: @ 824C0B4 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound2:: message BattleFrontier_BattleDomeBattleRoom_Text_OnFireForChampionship waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonSemifinal:: @ 824C0BB +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonSemifinal:: message BattleFrontier_BattleDomeBattleRoom_Text_WinHereAdvancesToFinal waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonFinal:: @ 824C0C2 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonFinal:: message BattleFrontier_BattleDomeBattleRoom_Text_WillLongHeldDreamComeTrue waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion:: @ 824C0C9 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion:: compare VAR_TEMP_F, DOME_FINAL goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker switch VAR_TEMP_E @@ -273,7 +273,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion:: @ 824C0 case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker:: @ 824C105 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker:: call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound1 @@ -282,35 +282,35 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker:: case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound1:: @ 824C13C +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound1:: message BattleFrontier_BattleDomeBattleRoom_Text_TheInvincibleChampion waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound2:: @ 824C143 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound2:: message BattleFrontier_BattleDomeBattleRoom_Text_CanAnyoneHopeToBeatTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionSemifinal:: @ 824C14A +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionSemifinal:: message BattleFrontier_BattleDomeBattleRoom_Text_DoBattlesExistSolelyForTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionFinal:: @ 824C151 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionFinal:: message BattleFrontier_BattleDomeBattleRoom_Text_CurrentChampAimingToRetainTitle waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver:: @ 824C158 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_FeelGlowOfTrueMaster, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold:: @ 824C161 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_CanWinStreakBeStretched, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak:: @ 824C16A +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak:: call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound1 @@ -319,44 +319,44 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak:: @ 8 case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound1:: @ 824C1A1 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound1:: message BattleFrontier_BattleDomeBattleRoom_Text_FormerChampHasReturned waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound2:: @ 824C1A8 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound2:: message BattleFrontier_BattleDomeBattleRoom_Text_FormerToughnessReturned waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakSemifinal:: @ 824C1AF +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakSemifinal:: message BattleFrontier_BattleDomeBattleRoom_Text_WillDoExpectedAdvanceToFinals waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakFinal:: @ 824C1B6 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakFinal:: message BattleFrontier_BattleDomeBattleRoom_Text_WillFormerChampRegainGlory waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum:: @ 824C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum:: frontier_get FRONTIER_DATA_BATTLE_NUM return -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker:: @ 824C1CB +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker:: switch VAR_TEMP_E case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver:: @ 824C1FC +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_MakeWayForDomeAceTucker, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter -BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold:: @ 824C209 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_LegendHasReturnedDomeAceTucker, MSGBOX_DEFAULT -BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter:: @ 824C211 +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter:: closemessage applymovement LOCALID_AUDIENCE_TWIN, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleDomeBattleRoom_Movement_AnnouncerMoveForTuckerEntrance @@ -391,7 +391,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter:: @ 824C211 goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver msgbox BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: @ 824C2B9 +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_LetsSeeYourStrategy, MSGBOX_DEFAULT call BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle switch VAR_RESULT @@ -415,13 +415,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: @ 824C2B9 msgbox BattleFrontier_BattleDomeBattleRoom_Text_WontUnderestimateYouNextTime, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney -BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerGoldIntro:: @ 824C346 +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerGoldIntro:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold msgbox BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: @ 824C373 +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_UnleashAllPowerIPossess, MSGBOX_DEFAULT call BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle switch VAR_RESULT @@ -445,7 +445,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: @ 824C373 msgbox BattleFrontier_BattleDomeBattleRoom_Text_LookForwardToNextEncounter, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney -BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle:: @ 824C400 +BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTucker, MSGBOX_DEFAULT closemessage applymovement LOCALID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward2 @@ -454,18 +454,18 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle:: @ 824C400 call BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle return -BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker:: @ 824C420 +BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker, MSGBOX_DEFAULT playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse goto BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney -BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw:: @ 824C436 +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw:: setvar VAR_TEMP_2, DRAW_TUCKER goto BattleFrontier_BattleDomeBattleRoom_EventScript_Draw -BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle:: @ 824C440 +BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle:: frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_DOME @@ -479,11 +479,11 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle:: @ 824C440 dome_resetsketch return -BattleFrontier_BattleDomeBattleRoom_OnWarp: @ 824C481 +BattleFrontier_BattleDomeBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects .2byte 0 -BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects:: @ 824C48B +BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects:: hideobjectat LOCALID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM call BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience call BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx @@ -501,20 +501,20 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects:: @ 824C48B removeobject LOCALID_OPPONENT addobject LOCALID_OPPONENT applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisibleFacingUp -BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects:: @ 824C4EF +BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects:: end -BattleFrontier_BattleDomeBattleRoom_OnResume: @ 824C4F0 +BattleFrontier_BattleDomeBattleRoom_OnResume: compare VAR_TEMP_9, 1 call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience end -BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience:: @ 824C4FC +BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience:: call BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience return @ Add audience members to supplement the permanent object event audience -BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience:: @ 824C502 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience:: compare VAR_TEMP_F, DOME_ROUND1 call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience compare VAR_TEMP_F, DOME_ROUND2 @@ -525,10 +525,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience:: @ 824C502 call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience return -BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience:: @ 824C52F +BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience:: return -BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience:: @ 824C530 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience:: createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH @@ -542,7 +542,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience:: @ 824C530 createvobject OBJ_EVENT_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH return -BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience:: @ 824C594 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience:: createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH @@ -563,10 +563,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience:: @ 824C594 createvobject OBJ_EVENT_GFX_HEX_MANIAC, 28, 5, 2, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_MART_EMPLOYEE, 30, 6, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_5, 31, 8, 2, 3, 1 + createvobject OBJ_EVENT_GFX_WOMAN_5, 31, 8, 2, 3, DIR_SOUTH return -BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience:: @ 824C652 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience:: createvobject OBJ_EVENT_GFX_NINJA_BOY, 0, 2, 0, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_BEAUTY, 2, 15, 0, 3, DIR_SOUTH @@ -601,27 +601,27 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience:: @ 824C652 createvobject OBJ_EVENT_GFX_WOMAN_5, 31, 8, 2, 3, DIR_SOUTH return -BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisible: @ 824C773 +BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisible: set_invisible step_end -BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnter: @ 824C775 +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnter: set_visible delay_16 walk_up walk_up walk_up walk_right -BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward: @ 824C77B +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward: walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_PlayerApproachAudience: @ 824C77D +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerApproachAudience: walk_up step_end @ Identical to Movement_PlayerEnter -BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker: @ 824C77F +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker: set_visible delay_16 walk_up @@ -631,20 +631,20 @@ BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker: @ 824C77F walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward2: @ 824C787 +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward2: walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_OpponentStepForward: @ 824C789 +BattleFrontier_BattleDomeBattleRoom_Movement_OpponentStepForward: walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisibleFacingUp: @ 824C78B +BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisibleFacingUp: face_up set_invisible step_end -BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance: @ 824C78E +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance: set_visible walk_up walk_up @@ -753,7 +753,7 @@ BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance: @ 824C78E walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_AnnouncerMoveForTuckerEntrance: @ 824C7F9 +BattleFrontier_BattleDomeBattleRoom_Movement_AnnouncerMoveForTuckerEntrance: delay_16 delay_16 walk_left @@ -803,16 +803,16 @@ BattleFrontier_BattleDomeBattleRoom_Movement_AnnouncerMoveForTuckerEntrance: @ 8 walk_in_place_fastest_down step_end -BattleFrontier_BattleDomeBattleRoom_Movement_TuckerStepForward: @ 824C829 +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerStepForward: walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer: @ 824C82B +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer: walk_left walk_left step_end -BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround:: @ 824C82E +BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround:: turnvobject 0, DIR_EAST turnvobject 2, DIR_EAST turnvobject 4, DIR_EAST @@ -881,7 +881,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround:: @ 824C82E delay 20 return -BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby:: @ 824C8F5 +BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby:: copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles @@ -889,13 +889,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby:: @ 824C8F5 waitstate end -BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles:: @ 824C90F +BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles:: warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 17, 11 waitstate end @ On round 1 there's a 50% chance that a specific audience member will walk to his seat -BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos:: @ 824C919 +BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos:: random 2 copyvar VAR_TEMP_D, VAR_RESULT compare VAR_TEMP_D, 0 @@ -904,13 +904,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos:: @ setobjectmovementtype LOCALID_AUDIENCE_WALKING, MOVEMENT_TYPE_FACE_RIGHT return -BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat:: @ 824C938 +BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat:: compare VAR_TEMP_D, 0 goto_if_eq Common_EventScript_NopReturn applymovement LOCALID_AUDIENCE_WALKING, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat return -BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump: @ 824C94B +BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump: delay_16 delay_16 delay_16 @@ -931,7 +931,7 @@ BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump: @ 824C94B enable_jump_landing_ground_effect step_end -BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat: @ 824C95E +BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat: walk_down walk_down walk_right @@ -939,52 +939,52 @@ BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat: @ 824C95E walk_in_place_fastest_down step_end -BattleFrontier_BattleDomeBattleRoom_Movement_RefereeEnter: @ 824C964 +BattleFrontier_BattleDomeBattleRoom_Movement_RefereeEnter: walk_right walk_right walk_right walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_AnnouncerFaceLeft: @ 824C969 +BattleFrontier_BattleDomeBattleRoom_Movement_AnnouncerFaceLeft: walk_in_place_fastest_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_RefereeExit: @ 824C96B +BattleFrontier_BattleDomeBattleRoom_Movement_RefereeExit: walk_left walk_left walk_left walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Text_PlayerHasEnteredDome: @ 824C970 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerHasEnteredDome: .string "{PLAYER} has entered the BATTLE DOME!$" -BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTrainer: @ 824C990 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTrainer: .string "{STR_VAR_1}\n" .string "match!\p" .string "{PLAYER} versus {STR_VAR_2}!\p" .string "Let the battle begin!$" -BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsWinner: @ 824C9BE +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsWinner: .string "{PLAYER} is the winner!\n" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_TrainerIsWinner: @ 824C9E1 +BattleFrontier_BattleDomeBattleRoom_Text_TrainerIsWinner: .string "{STR_VAR_2} is the winner!\n" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ: @ 824CA04 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ: .string "{PLAYER} is the Level 50\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp: @ 824CA44 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp: .string "{PLAYER} is the Open Level\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait: @ 824CA86 +BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait: .string "What an unbelievable finish!\n" .string "We have a double knockout!\p" .string "In this event, the Battle Tournament\n" @@ -992,7 +992,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait: @ 824CA86 .string "Please wait while the judging\n" .string "is under way.$" -BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer: @ 824CB34 +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer: .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" @@ -1000,7 +1000,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer: @ 824CB34 .string "The winner is {STR_VAR_1}!\l" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerPlayer: @ 824CB9D +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerPlayer: .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" @@ -1008,85 +1008,85 @@ BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerPlayer: @ 824CB9D .string "The winner is {PLAYER}!\l" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_BrightNewHope: @ 824CC06 +BattleFrontier_BattleDomeBattleRoom_Text_BrightNewHope: .string "The bright new hope!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_RisingStar: @ 824CC1C +BattleFrontier_BattleDomeBattleRoom_Text_RisingStar: .string "The rising star!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_WillTheyRaceToChampionship: @ 824CC2E +BattleFrontier_BattleDomeBattleRoom_Text_WillTheyRaceToChampionship: .string "Will this TRAINER race to\n" .string "the championship?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_CanAchieveChampionFirstTry: @ 824CC5B +BattleFrontier_BattleDomeBattleRoom_Text_CanAchieveChampionFirstTry: .string "Can the feat of a championship\n" .string "on the first try be achieved?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_CanLossBeAvenged: @ 824CC99 +BattleFrontier_BattleDomeBattleRoom_Text_CanLossBeAvenged: .string "Can the loss of the last match\n" .string "be avenged?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_OnFireForChampionship: @ 824CCC5 +BattleFrontier_BattleDomeBattleRoom_Text_OnFireForChampionship: .string "The TRAINER is on fire for\n" .string "the first championship try!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_WinHereAdvancesToFinal: @ 824CCFD +BattleFrontier_BattleDomeBattleRoom_Text_WinHereAdvancesToFinal: .string "A win here means this TRAINER\n" .string "advances to the final!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_WillLongHeldDreamComeTrue: @ 824CD33 +BattleFrontier_BattleDomeBattleRoom_Text_WillLongHeldDreamComeTrue: .string "Will the long-held dream of\n" .string "a championship finally come true?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_TheInvincibleChampion: @ 824CD72 +BattleFrontier_BattleDomeBattleRoom_Text_TheInvincibleChampion: .string "The invincible champion!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_CanAnyoneHopeToBeatTrainer: @ 824CD8C +BattleFrontier_BattleDomeBattleRoom_Text_CanAnyoneHopeToBeatTrainer: .string "Can anyone hope to beat this\n" .string "TRAINER?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_DoBattlesExistSolelyForTrainer: @ 824CDB3 +BattleFrontier_BattleDomeBattleRoom_Text_DoBattlesExistSolelyForTrainer: .string "Do battles exist solely for\n" .string "this TRAINER?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_CurrentChampAimingToRetainTitle: @ 824CDDE +BattleFrontier_BattleDomeBattleRoom_Text_CurrentChampAimingToRetainTitle: .string "The current champion aiming to\n" .string "retain the title!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_FormerChampHasReturned: @ 824CE10 +BattleFrontier_BattleDomeBattleRoom_Text_FormerChampHasReturned: .string "The former champion has returned!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_FormerToughnessReturned: @ 824CE33 +BattleFrontier_BattleDomeBattleRoom_Text_FormerToughnessReturned: .string "The former toughness has returned!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_WillDoExpectedAdvanceToFinals: @ 824CE57 +BattleFrontier_BattleDomeBattleRoom_Text_WillDoExpectedAdvanceToFinals: .string "Will this TRAINER do as expected\n" .string "and advance to the finals?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_WillFormerChampRegainGlory: @ 824CE94 +BattleFrontier_BattleDomeBattleRoom_Text_WillFormerChampRegainGlory: .string "Will the former champ regain\n" .string "lost glory?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_FeelGlowOfTrueMaster: @ 824CEBE +BattleFrontier_BattleDomeBattleRoom_Text_FeelGlowOfTrueMaster: .string "Feel the glow of a true master!$" -BattleFrontier_BattleDomeBattleRoom_Text_MakeWayForDomeAceTucker: @ 824CEDE +BattleFrontier_BattleDomeBattleRoom_Text_MakeWayForDomeAceTucker: .string "And now… The TRAINER standing in\n" .string "{PLAYER}'s record-setting path…\p" .string "Yes! The one and only!\n" @@ -1094,11 +1094,11 @@ BattleFrontier_BattleDomeBattleRoom_Text_MakeWayForDomeAceTucker: @ 824CEDE .string "Our very own DOME ACE!\l" .string "Make way for TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_SpectatorTuckerChant: @ 824CF7A +BattleFrontier_BattleDomeBattleRoom_Text_SpectatorTuckerChant: .string "Spectators: TUCKER! TUCKER!\n" .string "TUCKER! TUCKER! TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro: @ 824CFAE +BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro: .string "TUCKER: Ahahah!\p" .string "Do you hear it? This crowd!\n" .string "They're all itching to see our match!\p" @@ -1110,37 +1110,37 @@ BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro: @ 824CFAE .string "I, TUCKER the DOME ACE, will bathe you\l" .string "in my brilliant glow!$" -BattleFrontier_BattleDomeBattleRoom_Text_LetsSeeYourStrategy: @ 824D0D9 +BattleFrontier_BattleDomeBattleRoom_Text_LetsSeeYourStrategy: .string "Your strategy!\n" .string "Let's see it!$" -BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer: @ 824D0F6 +BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer: .string "Unbelievable! It's incredible!\n" .string "The victor is {PLAYER}!$" -BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker: @ 824D127 +BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker: .string "The winner is TUCKER!\n" .string "The DOME ACE has prevailed!\p" .string "Congratulations, TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_SeeYourFrontierPass: @ 824D172 +BattleFrontier_BattleDomeBattleRoom_Text_SeeYourFrontierPass: .string "TUCKER: Rules are rules!\n" .string "Let me see your FRONTIER PASS.$" -BattleFrontier_BattleDomeBattleRoom_Text_ReceivedTacticsSymbol: @ 824D1AA +BattleFrontier_BattleDomeBattleRoom_Text_ReceivedTacticsSymbol: .string "The Tactics Symbol was embossed on\n" .string "the FRONTIER PASS!$" -BattleFrontier_BattleDomeBattleRoom_Text_WontUnderestimateYouNextTime: @ 824D1E0 +BattleFrontier_BattleDomeBattleRoom_Text_WontUnderestimateYouNextTime: .string "… … … … … …\p" .string "I sorely underestimated you. I won't\n" .string "make the same mistake next time…$" -BattleFrontier_BattleDomeBattleRoom_Text_CanWinStreakBeStretched: @ 824D232 +BattleFrontier_BattleDomeBattleRoom_Text_CanWinStreakBeStretched: .string "Can the win streak be stretched?\n" .string "The confidence is there!$" -BattleFrontier_BattleDomeBattleRoom_Text_LegendHasReturnedDomeAceTucker: @ 824D26C +BattleFrontier_BattleDomeBattleRoom_Text_LegendHasReturnedDomeAceTucker: .string "Ladies and gentlemen!\n" .string "Boys, girls, and POKéMON!\p" .string "Finally!\n" @@ -1149,7 +1149,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_LegendHasReturnedDomeAceTucker: @ 824D2 .string "Our very own DOME ACE!\l" .string "It's none other than TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro: @ 824D319 +BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro: .string "TUCKER: Ah…\n" .string "The pummeling roar of the crowd…\l" .string "Their furnace-like heat of excitement…\l" @@ -1161,22 +1161,22 @@ BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro: @ 824D319 .string "Brighter and more brilliant!\l" .string "I must light all that gather here!$" -BattleFrontier_BattleDomeBattleRoom_Text_UnleashAllPowerIPossess: @ 824D43E +BattleFrontier_BattleDomeBattleRoom_Text_UnleashAllPowerIPossess: .string "I will unleash all the power that\n" .string "I possess! Right here and now!$" -BattleFrontier_BattleDomeBattleRoom_Text_NeverLostWhenPowerUnleashed: @ 824D47F +BattleFrontier_BattleDomeBattleRoom_Text_NeverLostWhenPowerUnleashed: .string "TUCKER: You're genuinely fantastic!\p" .string "Never before! I haven't ever lost in the\n" .string "times I've had to unleash my power.\p" .string "Yes, quite fantastic!\n" .string "Your FRONTIER PASS, please?$" -BattleFrontier_BattleDomeBattleRoom_Text_TacticsSymbolTookGoldenShine: @ 824D522 +BattleFrontier_BattleDomeBattleRoom_Text_TacticsSymbolTookGoldenShine: .string "The Tactics Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattleDomeBattleRoom_Text_LookForwardToNextEncounter: @ 824D54D +BattleFrontier_BattleDomeBattleRoom_Text_LookForwardToNextEncounter: .string "You're strong, but above all,\n" .string "you have a unique charm!\p" .string "In you, I see a definite potential for\n" @@ -1185,23 +1185,23 @@ BattleFrontier_BattleDomeBattleRoom_Text_LookForwardToNextEncounter: @ 824D54D .string "our next encounter!$" @ Unused -BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ2: @ 824D5F5 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ2: .string "{PLAYER} is the Level 50\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" @ Unused -BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp2: @ 824D635 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp2: .string "{PLAYER} is the Open Level\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTucker: @ 824D677 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTucker: .string "The final match!\p" .string "{PLAYER} versus the DOME ACE, TUCKER!\p" .string "Let the battle begin!$" -BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTucker: @ 824D6BE +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTucker: .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc index 44db802e82..2c35779c7e 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc @@ -1,14 +1,14 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattleDomeCorridor_MapScripts:: @ 824B0FE +BattleFrontier_BattleDomeCorridor_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeCorridor_OnFrame .byte 0 -BattleFrontier_BattleDomeCorridor_OnFrame: @ 824B104 +BattleFrontier_BattleDomeCorridor_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor .2byte 0 -BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor:: @ 824B10E +BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor:: delay 16 setvar VAR_TEMP_0, 1 frontier_get FRONTIER_DATA_LVL_MODE @@ -26,7 +26,7 @@ BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor:: @ 824B10E waitdooranim goto BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom -BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen:: @ 824B161 +BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen waitmovement 0 @@ -37,14 +37,14 @@ BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen:: @ 824B161 waitmovement 0 closedoor 37, 3 waitdooranim -BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom:: @ 824B18F +BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom:: waitmovement 0 setvar VAR_0x8006, 0 warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 7 waitstate end -BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50: @ 824B1A1 +BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50: walk_up walk_left walk_left @@ -59,13 +59,13 @@ BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50: @ 824B1A1 walk_in_place_fastest_up step_end -BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLv50: @ 824B1AE +BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLv50: walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50: @ 824B1B2 +BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50: walk_left walk_left walk_left @@ -79,12 +79,12 @@ BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50: @ 824B1B2 walk_up step_end -BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLv50: @ 824B1BE +BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLv50: walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen: @ 824B1C1 +BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen: walk_up walk_right walk_right @@ -103,13 +103,13 @@ BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen: @ 824B1C1 walk_in_place_fastest_up step_end -BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLvOpen: @ 824B1D2 +BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLvOpen: walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen: @ 824B1D6 +BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen: walk_right walk_right walk_right @@ -127,13 +127,13 @@ BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen: @ 824B1D6 walk_up step_end -BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLvOpen: @ 824B1E6 +BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLvOpen: walk_up set_invisible step_end @ Unused -BattleFrontier_BattleDomeCorridor_Movement_WalkToBattleRoomMidRight: @ 824B1E9 +BattleFrontier_BattleDomeCorridor_Movement_WalkToBattleRoomMidRight: walk_up walk_right walk_right diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index 328f7bd40b..04df6f38c6 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -1,26 +1,26 @@ .set LOCALID_ATTENDANT_SINGLES, 1 .set LOCALID_ATTENDANT_DOUBLES, 6 -BattleFrontier_BattleDomeLobby_MapScripts:: @ 82497E2 +BattleFrontier_BattleDomeLobby_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeLobby_OnResume map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeLobby_OnWarp .byte 0 -BattleFrontier_BattleDomeLobby_OnResume: @ 82497F2 +BattleFrontier_BattleDomeLobby_OnResume: dome_initresultstree end -BattleFrontier_BattleDomeLobby_OnWarp: @ 82497FB +BattleFrontier_BattleDomeLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth:: @ 8249805 +BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleDomeLobby_OnFrame: @ 824980F +BattleFrontier_BattleDomeLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge @@ -28,11 +28,11 @@ BattleFrontier_BattleDomeLobby_OnFrame: @ 824980F map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus:: @ 8249839 +BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving:: @ 8249842 +BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving:: lockall msgbox BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT closemessage @@ -44,7 +44,7 @@ BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving:: @ 8249842 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_WonChallenge:: @ 824989B +BattleFrontier_BattleDomeLobby_EventScript_WonChallenge:: call BattleFrontier_EventScript_IncrementWinStreak lockall frontier_isbrain @@ -53,9 +53,9 @@ BattleFrontier_BattleDomeLobby_EventScript_WonChallenge:: @ 824989B msgbox BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints -BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce:: @ 82498C1 +BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce:: msgbox BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker, MSGBOX_DEFAULT -BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints:: @ 82498C9 +BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints:: msgbox BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints, MSGBOX_DEFAULT frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS @@ -71,7 +71,7 @@ BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints:: @ 82498C9 special HealPlayerParty goto BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle -BattleFrontier_BattleDomeLobby_EventScript_LostChallenge:: @ 8249940 +BattleFrontier_BattleDomeLobby_EventScript_LostChallenge:: lockall msgbox BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying, MSGBOX_DEFAULT message BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved @@ -83,7 +83,7 @@ BattleFrontier_BattleDomeLobby_EventScript_LostChallenge:: @ 8249940 dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE special LoadPlayerParty special HealPlayerParty -BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle:: @ 8249991 +BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle:: dome_save 0 playse SE_SAVE waitse @@ -92,22 +92,22 @@ BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle:: @ 8249991 goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_EndChallenge message BattleFrontier_BattleDomeLobby_Text_RecordLastMatch waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge case 0, BattleFrontier_BattleDomeLobby_EventScript_RecordBattle case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge -BattleFrontier_BattleDomeLobby_EventScript_RecordBattle:: @ 82499E4 +BattleFrontier_BattleDomeLobby_EventScript_RecordBattle:: call BattleFrontier_EventScript_SaveBattle -BattleFrontier_BattleDomeLobby_EventScript_EndChallenge:: @ 82499E9 +BattleFrontier_BattleDomeLobby_EventScript_EndChallenge:: msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge:: @ 82499F9 +BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge:: lockall msgbox BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou, MSGBOX_DEFAULT message BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2 @@ -119,7 +119,7 @@ BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge:: @ 82499F9 setvar VAR_TEMP_0, 255 goto BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge -BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant:: @ 8249A35 +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME @@ -127,7 +127,7 @@ BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant:: @ 8249A35 goto BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome end -BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant:: @ 8249A47 +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME @@ -135,29 +135,29 @@ BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant:: @ 8249A47 goto BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome end -BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome:: @ 8249A59 +BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome:: special SavePlayerParty compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles -BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge:: @ 8249A72 +BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge case 1, BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge case 2, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: @ 8249ABF +BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: message BattleFrontier_BattleDomeLobby_Text_WhichLevelMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge @@ -180,7 +180,7 @@ BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: @ 8249ABF case YES, BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge:: @ 8249B60 +BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER dome_init @@ -194,7 +194,7 @@ BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge:: @ 8249B60 compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed dome_inittrainers -BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge:: @ 8249BC2 +BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE dome_settrainers @@ -207,39 +207,39 @@ BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge:: @ 8249BC2 waitstate end -BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge:: @ 8249BFA +BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge goto BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge -BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons:: @ 8249C15 +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons:: switch VAR_RESULT case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50 case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen -BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50:: @ 8249C30 +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50:: msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 8249C3D +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen:: msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed:: @ 8249C4A +BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge:: @ 8249C61 +BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge:: special LoadPlayerParty -BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge:: @ 8249C64 +BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge:: msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT -BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge:: @ 8249C6C +BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge:: release end -BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor:: @ 8249C6E +BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES @@ -264,63 +264,63 @@ BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor:: @ 8249C6E waitdooranim return -BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor:: @ 8249CDD +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor:: applymovement LOCALID_ATTENDANT_SINGLES, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor return -BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor:: @ 8249CE5 +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor:: applymovement LOCALID_ATTENDANT_DOUBLES, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor return -BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor:: @ 8249CED +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor:: applymovement LOCALID_ATTENDANT_SINGLES, BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor return -BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor:: @ 8249CF5 +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor:: applymovement LOCALID_ATTENDANT_DOUBLES, BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor return -BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles:: @ 8249CFD +BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles:: msgbox BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles:: @ 8249D06 +BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles:: msgbox BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge:: @ 8249D0F +BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge:: message BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge return -BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge:: @ 8249D15 +BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge:: message BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge return -BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge:: @ 8249D1B +BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge:: msgbox BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge:: @ 8249D24 +BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge:: msgbox BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor:: @ 8249D2D +BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor:: opendoor 5, 4 return -BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor:: @ 8249D33 +BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor:: opendoor 17, 4 return -BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor:: @ 8249D39 +BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor:: closedoor 5, 4 return -BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor:: @ 8249D3F +BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor:: closedoor 17, 4 return -BattleFrontier_BattleDomeLobby_Movement_WalkToDoor: @ 8249D45 +BattleFrontier_BattleDomeLobby_Movement_WalkToDoor: walk_up walk_up walk_up @@ -328,18 +328,18 @@ BattleFrontier_BattleDomeLobby_Movement_WalkToDoor: @ 8249D45 walk_up step_end -BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor: @ 8249D4B +BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor: walk_up set_invisible step_end -BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor: @ 8249D4E +BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor: walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults:: @ 8249D52 +BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults:: lockall frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_SINGLES waitbuttonpress @@ -347,7 +347,7 @@ BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults:: @ 8249D52 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults:: @ 8249D6B +BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults:: lockall frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_DOUBLES waitbuttonpress @@ -355,7 +355,7 @@ BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults:: @ 8249D6B releaseall end -BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree:: @ 8249D84 +BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree:: dome_get DOME_DATA_PREV_TOURNEY_TYPE compare VAR_RESULT, 0 call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50 @@ -370,64 +370,64 @@ BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree:: @ 8249D84 waitstate end -BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50:: @ 8249DC9 +BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50:: msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50:: @ 8249DD2 +BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50:: msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen:: @ 8249DDB +BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen:: msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen:: @ 8249DE4 +BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen:: msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_Maniac:: @ 8249DED +BattleFrontier_BattleDomeLobby_EventScript_Maniac:: dome_getwinnersname msgbox BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_Lass:: @ 8249DFE +BattleFrontier_BattleDomeLobby_EventScript_Lass:: msgbox BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_FatMan:: @ 8249E07 +BattleFrontier_BattleDomeLobby_EventScript_FatMan:: msgbox BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_Man:: @ 8249E10 +BattleFrontier_BattleDomeLobby_EventScript_Man:: msgbox BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully, MSGBOX_NPC end @ A few OutsideWest event scripts are inserted here instead, two of which are unused -BattleFrontier_OutsideWest_EventScript_Man3:: @ 8249E19 +BattleFrontier_OutsideWest_EventScript_Man3:: msgbox BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier, MSGBOX_NPC end @ Unused -BattleFrontier_OutsideWest_EventScript_BattleDomeSign2:: @ 8249E22 +BattleFrontier_OutsideWest_EventScript_BattleDomeSign2:: msgbox BattleFrontier_OutsideWest_Text_BattleDomeSign2, MSGBOX_NPC end @ Unused -BattleFrontier_OutsideWest_EventScript_UnderConstructionSign:: @ 8249E2B +BattleFrontier_OutsideWest_EventScript_UnderConstructionSign:: msgbox BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_RulesBoard:: @ 8249E34 +BattleFrontier_BattleDomeLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattleDomeLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard:: @ 8249E43 +BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading waitmessage - multichoice 17, 4, MULTI_BATTLE_DOME_RULES, 0 + multichoice 17, 4, MULTI_BATTLE_DOME_RULES, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup case 1, BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree @@ -436,40 +436,40 @@ BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard:: @ 8249E43 case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_ExitRules end -BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup:: @ 8249E8B +BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup:: msgbox BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree:: @ 8249E99 +BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree:: msgbox BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_RulesDoubleKO:: @ 8249EA7 +BattleFrontier_BattleDomeLobby_EventScript_RulesDoubleKO:: msgbox BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_ExitRules:: @ 8249EB5 +BattleFrontier_BattleDomeLobby_EventScript_ExitRules:: releaseall end -BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle: @ 8249EB7 +BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle: .string "Where the strategies of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE DOME!\p" .string "I am your guide to the SINGLE BATTLE\n" .string "Tournament.$" -BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge: @ 8249F3A +BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge: .string "Would you like to challenge\n" .string "the SINGLE BATTLE Tournament?$" -BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain: @ 8249F74 +BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain: .string "We hope to see you again.$" -BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge: @ 8249F8E +BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge: .string "The SINGLE BATTLE Tournament\n" .string "is exactly as the name suggests--\l" .string "a tournament of SINGLE BATTLES.\p" @@ -490,20 +490,20 @@ BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge: @ 8249F8E .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge: @ 824A1C6 +BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge: .string "Before I show you to the BATTLE DOME,\n" .string "I must save the data. Is that okay?$" -BattleFrontier_BattleDomeLobby_Text_WhichLevelMode: @ 824A210 +BattleFrontier_BattleDomeLobby_Text_WhichLevelMode: .string "The tournament offers two levels\n" .string "of challenge, Level 50 and Open Level.\l" .string "Which is your choice?$" -BattleFrontier_BattleDomeLobby_Text_SelectThreeMons: @ 824A26E +BattleFrontier_BattleDomeLobby_Text_SelectThreeMons: .string "Now select the three POKéMON that\n" .string "you wish to enter, please.$" -BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen: @ 824A2AB +BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen: .string "Excuse me!\p" .string "You don't have three eligible POKéMON.\p" .string "Also, the POKéMON must be holding\n" @@ -511,7 +511,7 @@ BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen: @ 824A2AB .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50: @ 824A353 +BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50: .string "Excuse me!\p" .string "You don't have three eligible POKéMON.\p" .string "You must have three different POKéMON\n" @@ -521,63 +521,63 @@ BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50: @ 824A353 .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome: @ 824A437 +BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome: .string "I will now show you to\n" .string "the BATTLE DOME.$" -BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting: @ 824A45F +BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting: .string "Excuse me!\p" .string "You didn't save before you quit your\n" .string "challenge last time.\p" .string "Because of that, your challenge so far\n" .string "has been disqualified. Sorry!$" -BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney: @ 824A4E9 +BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney: .string "Congratulations for winning\n" .string "your Battle Tournament!$" @ Unused -BattleFrontier_BattleDomeLobby_Text_HereIsYourPrize: @ 824A51D +BattleFrontier_BattleDomeLobby_Text_HereIsYourPrize: .string "Here is your prize for your Battle\n" .string "Tournament victory.$" @ Used by Verdanturf Tent -BattleFrontier_BattleDomeLobby_Text_ReceivedPrize: @ 824A554 +BattleFrontier_BattleDomeLobby_Text_ReceivedPrize: .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" @ Unused -BattleFrontier_BattleDomeLobby_Text_BagFullMakeRoom: @ 824A56E +BattleFrontier_BattleDomeLobby_Text_BagFullMakeRoom: .string "Oh, your BAG appears to be full.\p" .string "Please make room in your BAG, then come\n" .string "see me.$" -BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying: @ 824A5BF +BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying: .string "Thank you for playing!$" -BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved: @ 824A5D6 +BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved: .string "Your record will be saved.\n" .string "Please wait.$" -BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou: @ 824A5FE +BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou: .string "We've been waiting for you!$" -BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2: @ 824A61A +BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2: .string "Before I show you to the BATTLE DOME,\n" .string "I must save the data. Is that okay?$" -BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle: @ 824A664 +BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle: .string "Where the strategies of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE DOME!\p" .string "I am your guide to the DOUBLE BATTLE\n" .string "Tournament.$" -BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge: @ 824A6E7 +BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge: .string "Would you like to challenge\n" .string "the DOUBLE BATTLE Tournament?$" -BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge: @ 824A721 +BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge: .string "The DOUBLE BATTLE Tournament\n" .string "is exactly as the name suggests--\l" .string "a tournament of DOUBLE BATTLES.\p" @@ -598,23 +598,23 @@ BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge: @ 824A721 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50: @ 824A966 +BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50: .string "They're the results of the last\n" .string "Level 50 SINGLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50: @ 824A9A9 +BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50: .string "They're the results of the last\n" .string "Level 50 DOUBLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen: @ 824A9EC +BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen: .string "They're the results of the last\n" .string "Open Level SINGLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen: @ 824AA31 +BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen: .string "They're the results of the last\n" .string "Open Level DOUBLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough: @ 824AA76 +BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough: .string "Did you see it?\n" .string "The last Battle Tournament?\p" .string "The winner, {STR_VAR_1}, was seriously\n" @@ -622,21 +622,21 @@ BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough: @ 824AA76 .string "You should check out the results\n" .string "on the monitor beside the PC.$" -BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier: @ 824AB06 +BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier: .string "The BATTLE FRONTIER…\n" .string "I've long dreamed about a place like it.$" @ Functionally unused -BattleFrontier_OutsideWest_Text_BattleDomeSign2: @ 824AB44 +BattleFrontier_OutsideWest_Text_BattleDomeSign2: .string "The BATTLE DOME\n" .string "Become the Unbeatable Superstar!$" @ Functionally unused -BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction: @ 824AB75 +BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction: .string "The ??????\n" .string "Under Construction!$" -BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation: @ 824AB94 +BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation: .string "When a TRAINER chains tournament\n" .string "wins at the BATTLE DOME, he or she\l" .string "gains a reputation as a star.\p" @@ -645,48 +645,48 @@ BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation: @ 824AB94 .string "A true superstar is a TRAINER who\n" .string "can keep winning tournaments.$" -BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound: @ 824AC76 +BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound: .string "I ran into one of the tournament\n" .string "favorites in the very first round.\p" .string "Of course I got trashed…$" -BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully: @ 824ACD3 +BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully: .string "I would've won if I'd kept this POKéMON\n" .string "held in reserve.\p" .string "You need to check your opponent's\n" .string "POKéMON carefully before choosing\l" .string "your battling POKéMON.$" -BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker: @ 824AD67 +BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker: .string "Congratulations!\p" .string "You defeated the DOME ACE and won\n" .string "the Battle Tournament!$" -BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints: @ 824ADB1 +BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints: .string "In recognition of your strategy--\n" .string "a thing of beauty it was, too--\l" .string "we award you these Battle Point(s)!$" -BattleFrontier_BattleDomeLobby_Text_RecordLastMatch: @ 824AE17 +BattleFrontier_BattleDomeLobby_Text_RecordLastMatch: .string "Would you like to record your\n" .string "last BATTLE DOME match on your\l" .string "FRONTIER PASS?$" -BattleFrontier_BattleDomeLobby_Text_RulesAreListed: @ 824AE63 +BattleFrontier_BattleDomeLobby_Text_RulesAreListed: .string "The Battle Tournament rules\n" .string "are listed.$" -BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading: @ 824AE8B +BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" -BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules: @ 824AEAE +BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules: .string "The tournament matchups are drawn up\n" .string "based on the toughness of POKéMON\l" .string "held by TRAINERS.\p" .string "The matchups avoid having tough\n" .string "TRAINERS face each other right away.$" -BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree: @ 824AF4C +BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree: .string "The tournament chart, or as we call it,\n" .string "the “Tree,” is available for viewing\l" .string "in the Waiting Room from any guide.\p" @@ -697,7 +697,7 @@ BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree: @ 824AF4C .string "by TRAINERS, and the battle styles of\l" .string "TRAINERS.$" -BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules: @ 824B073 +BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules: .string "If battling POKéMON faint at the same\n" .string "time--a double KO--in a tournament\l" .string "match, the REFEREES will review\l" diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 977a0bcae2..ca441cf1f8 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -1,24 +1,24 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattleDomePreBattleRoom_MapScripts:: @ 824B1F9 +BattleFrontier_BattleDomePreBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomePreBattleRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomePreBattleRoom_OnWarp .byte 0 -BattleFrontier_BattleDomePreBattleRoom_OnWarp: @ 824B204 +BattleFrontier_BattleDomePreBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth:: @ 824B20E +BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleDomePreBattleRoom_OnFrame: @ 824B218 +BattleFrontier_BattleDomePreBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom:: @ 824B222 +BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom:: compare VAR_0x8006, 1 goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE @@ -26,14 +26,14 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom:: @ 824B222 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter waitmovement 0 lockall -BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: @ 824B24F +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: call BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage waitmessage switch VAR_RESULT @ No case? call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord - multichoice 16, 0, MULTI_TOURNEY_WITH_RECORD, 1 + multichoice 16, 0, MULTI_TOURNEY_WITH_RECORD, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree @@ -43,8 +43,8 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: @ 824B case 5, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord:: @ 824B2C1 - multichoice 16, 2, MULTI_TOURNEY_NO_RECORD, 1 +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord:: + multichoice 16, 2, MULTI_TOURNEY_NO_RECORD, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree @@ -53,40 +53,40 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord: case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle:: @ 824B30D +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle:: message BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle:: @ 824B33F +BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle:: call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge:: @ 824B349 +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound case YES, BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge:: @ 824B377 +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge:: @ 824B3A9 +BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge:: dome_resolvewinners DOME_PLAYER_RETIRED goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost -BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge:: @ 824B3BB +BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge:: message BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait waitmessage dome_save CHALLENGE_STATUS_PAUSED @@ -96,21 +96,21 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge:: @ 824B3BB frontier_reset end -BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo:: @ 824B3DD +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK dome_showopponentinfo waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree:: @ 824B3F5 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree:: call BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage fadescreen FADE_TO_BLACK dome_showtourneytree waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage:: @ 824B40A +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage:: frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case DOME_ROUND1, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1 @@ -119,23 +119,23 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage:: @ 824B40A case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1:: @ 824B449 +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound2:: @ 824B452 +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound2:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInSemifinals:: @ 824B45B +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInSemifinals:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals:: @ 824B464 +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge:: @ 824B46D +BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge:: message BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons waitmessage waitbuttonpress @@ -168,7 +168,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge:: @ 824B46D waitstate end -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage:: @ 824B4FB +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage:: frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case DOME_ROUND1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1 @@ -177,19 +177,19 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage:: @ case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1:: @ 824B53A +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1:: message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound2:: @ 824B540 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound2:: message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForSemifinals:: @ 824B546 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForSemifinals:: message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals:: @ 824B54C +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals:: frontier_getbrainstatus switch VAR_RESULT case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver @@ -199,27 +199,27 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals:: @ 824B54C message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver:: @ 824B58B +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver:: goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver, MSGBOX_DEFAULT setflag FLAG_TEMP_1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold:: @ 824B5A0 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold:: goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold, MSGBOX_DEFAULT setflag FLAG_TEMP_1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort:: @ 824B5B5 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort:: @ 824B5BE +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle:: @ 824B5C7 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle:: setvar VAR_TEMP_0, 1 msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT special LoadPlayerParty @@ -233,7 +233,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle:: @ 824B5C7 waitstate goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage:: @ 824B600 +BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage:: frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete @@ -241,136 +241,136 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage:: @ 824B case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete return -BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete:: @ 824B634 +BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_Round2Complete:: @ 824B63D +BattleFrontier_BattleDomePreBattleRoom_EventScript_Round2Complete:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete:: @ 824B646 +BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete:: msgbox BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_Movement_AttendantMoveAside: @ 824B64F +BattleFrontier_BattleDomePreBattleRoom_Movement_AttendantMoveAside: walk_right face_left step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter: @ 824B652 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter: walk_up walk_up walk_up walk_up step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerWalkToDoor: @ 824B657 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerWalkToDoor: walk_up step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnterDoor: @ 824B659 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnterDoor: walk_up set_invisible step_end -BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1: @ 824B65C +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1: .string "Your 1st-round match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2: @ 824B689 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2: .string "Your 2nd-round match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals: @ 824B6B6 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals: .string "Your semifinal match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals: @ 824B6E3 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals: .string "Your final match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons: @ 824B70C +BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons: .string "Please choose the two POKéMON\n" .string "that are to appear in battle.$" -BattleFrontier_BattleDomePreBattleRoom_Text_RightThisWay: @ 824B748 +BattleFrontier_BattleDomePreBattleRoom_Text_RightThisWay: .string "Right this way, please.$" -BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth: @ 824B760 +BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth: .string "Thank you for competing!\p" .string "I'll restore your POKéMON to\n" .string "full health.$" -BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete: @ 824B7A3 +BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete: .string "All 1st-round matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" -BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete: @ 824B7F1 +BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete: .string "All 2nd-round matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" -BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete: @ 824B83F +BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete: .string "All semifinal matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" @ Unused -BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForRound2: @ 824B88D +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForRound2: .string "Congratulations for getting through\n" .string "the 1st round.\p" .string "The 2nd round is next.\n" .string "Are you ready?$" @ Unused -BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForSemifinals: @ 824B8E6 +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForSemifinals: .string "Congratulations for advancing\n" .string "to the semifinals.\p" .string "The best four teams meet in this round.\n" .string "Are you ready?$" @ Unused -BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForFinals: @ 824B94E +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForFinals: .string "Congratulations for advancing\n" .string "to the final match.\p" .string "You're one win from the championship.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer: @ 824B9B5 +BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer: .string "{PLAYER}'s next opponent\n" .string "is this TRAINER.$" -BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1: @ 824B9D9 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1: .string "The tournament is in the 1st round.$" -BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2: @ 824B9FD +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2: .string "The tournament is in the 2nd round.$" -BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals: @ 824BA21 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals: .string "The tournament is in the semifinals.$" -BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals: @ 824BA46 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals: .string "The tournament is up to the final.$" -BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame: @ 824BA69 +BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame: .string "Would you like to save and\n" .string "quit the game?$" -BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge: @ 824BA93 +BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge: .string "Would you like to retire from your\n" .string "Battle Tournament challenge?$" -BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait: @ 824BAD3 +BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait: .string "I am saving your data.\n" .string "Please wait.$" -BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch: @ 824BAF7 +BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch: .string "Should I record your last match\n" .string "on your FRONTIER PASS?$" -BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver: @ 824BB2E +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver: .string "Congratulations for advancing\n" .string "to the final match.\p" .string "For the final match, you will challenge\n" @@ -378,19 +378,19 @@ BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver: @ 824BB2E .string "Are you ready?$" @ Identical to ReadyForTuckerSilver -BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold: @ 824BBAC +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold: .string "Congratulations for advancing\n" .string "to the final match.\p" .string "For the final match, you will challenge\n" .string "the DOME ACE TUCKER.\p" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort: @ 824BC2A +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort: .string "Your final battle against TUCKER is\n" .string "next. Are you ready?$" @ Identical again -BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort: @ 824BC63 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort: .string "Your final battle against TUCKER is\n" .string "next. Are you ready?$" diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index f15f6542ef..367756054f 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -7,7 +7,7 @@ .set LOCALID_SCIENTIST_6, 7 .set LOCALID_PLAYER, 8 -BattleFrontier_BattleFactoryBattleRoom_MapScripts:: @ 825ADAB +BattleFrontier_BattleFactoryBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleFactoryBattleRoom_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleFactoryBattleRoom_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleFactoryBattleRoom_OnFrame @@ -16,7 +16,7 @@ BattleFrontier_BattleFactoryBattleRoom_MapScripts:: @ 825ADAB @ On this map the player (OBJ_EVENT_ID_PLAYER) is hidden @ The player is represented instead by LOCALID_PLAYER, which has the gfx id VAR_OBJ_GFX_ID_F -BattleFrontier_BattleFactoryBattleRoom_OnTransition: @ 825ADBB +BattleFrontier_BattleFactoryBattleRoom_OnTransition: frontier_settrainers checkplayergender compare VAR_RESULT, MALE @@ -29,37 +29,37 @@ BattleFrontier_BattleFactoryBattleRoom_OnTransition: @ 825ADBB goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_SetUpFactoryHeadObj end -BattleFrontier_BattleFactoryBattleRoom_EventScript_SetUpFactoryHeadObj:: @ 825ADF3 +BattleFrontier_BattleFactoryBattleRoom_EventScript_SetUpFactoryHeadObj:: call BattleFrontier_EventScript_SetBrainObjectGfx setobjectxyperm LOCALID_OPPONENT, 7, 9 end -BattleFrontier_BattleFactoryBattleRoom_OnWarp: @ 825AE00 +BattleFrontier_BattleFactoryBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_HideObjects .2byte 0 -BattleFrontier_BattleFactoryBattleRoom_EventScript_HideObjects:: @ 825AE0A +BattleFrontier_BattleFactoryBattleRoom_EventScript_HideObjects:: setvar VAR_TEMP_1, 1 hideobjectat OBJ_EVENT_ID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM compare VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_EndHideObjects hideobjectat LOCALID_OPPONENT, MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM -BattleFrontier_BattleFactoryBattleRoom_EventScript_EndHideObjects:: @ 825AE24 +BattleFrontier_BattleFactoryBattleRoom_EventScript_EndHideObjects:: end -BattleFrontier_BattleFactoryBattleRoom_EventScript_SetPlayerGfxMale:: @ 825AE25 +BattleFrontier_BattleFactoryBattleRoom_EventScript_SetPlayerGfxMale:: setvar VAR_OBJ_GFX_ID_F, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -BattleFrontier_BattleFactoryBattleRoom_EventScript_SetPlayerGfxFemale:: @ 825AE2B +BattleFrontier_BattleFactoryBattleRoom_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_F, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -BattleFrontier_BattleFactoryBattleRoom_OnFrame: @ 825AE31 +BattleFrontier_BattleFactoryBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoomFactoryHeadBattle:: @ 825AE3B +BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoomFactoryHeadBattle:: msgbox BattleFrontier_BattleFactoryBattleRoom_Text_GetAMoveOn, MSGBOX_DEFAULT closemessage applymovement LOCALID_OPPONENT, BattleFrontier_BattleFactoryBattleRoom_Movement_NolandMoveToBattle @@ -70,7 +70,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoomFactoryHeadBattle:: goto BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleOpponent end -BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoom:: @ 825AE67 +BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoom:: compare VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoomFactoryHeadBattle applymovement LOCALID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerEnterRoom @@ -83,7 +83,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoom:: @ 825AE67 addobject LOCALID_OPPONENT applymovement LOCALID_OPPONENT, BattleFrontier_BattleFactoryBattleRoom_Movement_OpponentEnter waitmovement 0 -BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleOpponent:: @ 825AEA7 +BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleOpponent:: compare VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNoland palace_getopponentintro @@ -99,20 +99,20 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleOpponent:: @ 825AEA7 waitstate switch VAR_RESULT case 1, BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedOpponent -BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost:: @ 825AEF8 +BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedOpponent:: @ 825AF0F +BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedOpponent:: factory_get FACTORY_DATA_WIN_STREAK_SWAPS compare VAR_RESULT, MAX_STREAK goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementWinStreak addvar VAR_RESULT, 1 setorcopyvar VAR_0x8006, VAR_RESULT factory_set FACTORY_DATA_WIN_STREAK_SWAPS @ uses VAR_0x8006 above -BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementWinStreak:: @ 825AF3E +BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementWinStreak:: call BattleFrontier_EventScript_IncrementWinStreak -BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementBattleNum:: @ 825AF43 +BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementBattleNum:: frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT @@ -121,11 +121,11 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementBattleNum:: @ 825AF4 setvar VAR_0x8006, 1 warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 255, 8, 8 waitstate -BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyWon:: @ 825AF85 +BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNoland:: @ 825AF9C +BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNoland:: switch VAR_TEMP_F case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleFactoryBattleRoom_EventScript_IntroNolandGold case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandSilver @@ -135,14 +135,14 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNoland:: @ 825AF9C goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandSilver msgbox BattleFrontier_BattleFactoryBattleRoom_Text_NolandImFactoryHead, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandSilver:: @ 825AFEF +BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandSilver:: msgbox BattleFrontier_BattleFactoryBattleRoom_Text_ShakeOutKnowledgeBringItOn, MSGBOX_DEFAULT call BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver goto BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost -BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver:: @ 825B00C +BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver:: frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland @@ -158,20 +158,20 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver:: @ 825B msgbox BattleFrontier_BattleFactoryBattleRoom_Text_NextTimeNoHoldsBarred, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland -BattleFrontier_BattleFactoryBattleRoom_EventScript_IntroNolandGold:: @ 825B051 +BattleFrontier_BattleFactoryBattleRoom_EventScript_IntroNolandGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandGold msgbox BattleFrontier_BattleFactoryBattleRoom_Text_HarderLookThanLastTime, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandGold:: @ 825B07E +BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandGold:: msgbox BattleFrontier_BattleFactoryBattleRoom_Text_AllRightBringItOn, MSGBOX_DEFAULT call BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold goto BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost -BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold:: @ 825B09B +BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold:: frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland @@ -187,7 +187,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold:: @ 825B09 msgbox BattleFrontier_BattleFactoryBattleRoom_Text_LastTimeILoseToYou, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland -BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle:: @ 825B0E0 +BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle:: closemessage frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty @@ -197,7 +197,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle:: @ 825B0E0 waitstate return -BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland:: @ 825B105 +BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland:: factory_get FACTORY_DATA_WIN_STREAK_SWAPS compare VAR_RESULT, MAX_STREAK goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementWinStreak @@ -214,7 +214,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland:: @ 825B105 goto BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyWon end -BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerEnterRoom: @ 825B17B +BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerEnterRoom: walk_up walk_up walk_up @@ -223,11 +223,11 @@ BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerEnterRoom: @ 825B17B face_right step_end -BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerApproachNoland: @ 825B182 +BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerApproachNoland: walk_right step_end -BattleFrontier_BattleFactoryBattleRoom_Movement_OpponentEnter: @ 825B184 +BattleFrontier_BattleFactoryBattleRoom_Movement_OpponentEnter: walk_down walk_down walk_down @@ -236,14 +236,14 @@ BattleFrontier_BattleFactoryBattleRoom_Movement_OpponentEnter: @ 825B184 face_left step_end -BattleFrontier_BattleFactoryBattleRoom_Movement_NolandMoveToBattle: @ 825B18B +BattleFrontier_BattleFactoryBattleRoom_Movement_NolandMoveToBattle: walk_up walk_up walk_up face_left step_end -BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobby:: @ 825B190 +BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobby:: copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyDoubles @@ -251,12 +251,12 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobby:: @ 825B190 waitstate end -BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyDoubles:: @ 825B1AA +BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyDoubles:: warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 255, 14, 8 waitstate end -BattleFrontier_BattleFactoryBattleRoom_EventScript_ScientistsFaceBattle:: @ 825B1B4 +BattleFrontier_BattleFactoryBattleRoom_EventScript_ScientistsFaceBattle:: applymovement LOCALID_SCIENTIST_1, Common_Movement_WalkInPlaceFastestRight applymovement LOCALID_SCIENTIST_2, Common_Movement_WalkInPlaceFastestRight applymovement LOCALID_SCIENTIST_3, Common_Movement_WalkInPlaceFastestRight @@ -266,11 +266,11 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_ScientistsFaceBattle:: @ 825B waitmovement 0 return -BattleFrontier_BattleFactoryBattleRoom_Text_GetAMoveOn: @ 825B1E2 +BattleFrontier_BattleFactoryBattleRoom_Text_GetAMoveOn: .string "Hey, hey!\n" .string "Get a move on!$" -BattleFrontier_BattleFactoryBattleRoom_Text_NolandImFactoryHead: @ 825B1FB +BattleFrontier_BattleFactoryBattleRoom_Text_NolandImFactoryHead: .string "Hey, my name's NOLAND!\n" .string "I'm basically in charge of this place,\l" .string "which is why I'm the FACTORY HEAD!\p" @@ -287,26 +287,26 @@ BattleFrontier_BattleFactoryBattleRoom_Text_NolandImFactoryHead: @ 825B1FB .string "conditions as you.\p" .string "I'll be using rental POKéMON, too!$" -BattleFrontier_BattleFactoryBattleRoom_Text_ShakeOutKnowledgeBringItOn: @ 825B3F1 +BattleFrontier_BattleFactoryBattleRoom_Text_ShakeOutKnowledgeBringItOn: .string "Shake out every last bit of your\n" .string "knowledge and bring it on!$" -BattleFrontier_BattleFactoryBattleRoom_Text_NolandLetsSeeFrontierPass: @ 825B42D +BattleFrontier_BattleFactoryBattleRoom_Text_NolandLetsSeeFrontierPass: .string "NOLAND: Smart going!\n" .string "Let's see your FRONTIER PASS.$" -BattleFrontier_BattleFactoryBattleRoom_Text_ReceivedKnowledgeSymbol: @ 825B460 +BattleFrontier_BattleFactoryBattleRoom_Text_ReceivedKnowledgeSymbol: .string "The Knowledge Symbol was embossed\n" .string "on the FRONTIER PASS!$" -BattleFrontier_BattleFactoryBattleRoom_Text_NextTimeNoHoldsBarred: @ 825B498 +BattleFrontier_BattleFactoryBattleRoom_Text_NextTimeNoHoldsBarred: .string "Heh…\n" .string "You're a pretty bright spark…\p" .string "Next time, I'll come after you hard.\n" .string "No holds barred, understand?\p" .string "You keep up your studies!$" -BattleFrontier_BattleFactoryBattleRoom_Text_HarderLookThanLastTime: @ 825B517 +BattleFrontier_BattleFactoryBattleRoom_Text_HarderLookThanLastTime: .string "NOLAND: Hey, hey! How's it going?\n" .string "You keeping up with your studies?\p" .string "…Oh?\p" @@ -315,21 +315,21 @@ BattleFrontier_BattleFactoryBattleRoom_Text_HarderLookThanLastTime: @ 825B517 .string "Now, this should be fun!\n" .string "I'm getting excited, hey!$" -BattleFrontier_BattleFactoryBattleRoom_Text_AllRightBringItOn: @ 825B5CF +BattleFrontier_BattleFactoryBattleRoom_Text_AllRightBringItOn: .string "All right!\n" .string "Bring it on!$" -BattleFrontier_BattleFactoryBattleRoom_Text_OutOfMyLeagueLetsSeePass: @ 825B5E7 +BattleFrontier_BattleFactoryBattleRoom_Text_OutOfMyLeagueLetsSeePass: .string "NOLAND: What the…\n" .string "You're getting out of my league!\p" .string "Sheesh!\n" .string "Let's see that FRONTIER PASS!$" -BattleFrontier_BattleFactoryBattleRoom_Text_KnowledgeSymbolTookGoldenShine: @ 825B640 +BattleFrontier_BattleFactoryBattleRoom_Text_KnowledgeSymbolTookGoldenShine: .string "The Knowledge Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattleFactoryBattleRoom_Text_LastTimeILoseToYou: @ 825B66D +BattleFrontier_BattleFactoryBattleRoom_Text_LastTimeILoseToYou: .string "Pfft, man!\p" .string "That's absolutely the last time\n" .string "I lose to you!\p" diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc index 60d0ae5879..3b11392947 100644 --- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc @@ -1,21 +1,21 @@ .set LOCALID_ATTENDANT_SINGLES, 1 .set LOCALID_ATTENDANT_DOUBLES, 6 -BattleFrontier_BattleFactoryLobby_MapScripts:: @ 82583E8 +BattleFrontier_BattleFactoryLobby_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleFactoryLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleFactoryLobby_OnWarp .byte 0 -BattleFrontier_BattleFactoryLobby_OnWarp: @ 82583F3 +BattleFrontier_BattleFactoryLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleFactoryLobby_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleFactoryLobby_EventScript_TurnPlayerNorth:: @ 82583FD +BattleFrontier_BattleFactoryLobby_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleFactoryLobby_OnFrame: @ 8258407 +BattleFrontier_BattleFactoryLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleFactoryLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleFactoryLobby_EventScript_ResumeChallenge @@ -23,11 +23,11 @@ BattleFrontier_BattleFactoryLobby_OnFrame: @ 8258407 map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleFactoryLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattleFactoryLobby_EventScript_GetChallengeStatus:: @ 8258431 +BattleFrontier_BattleFactoryLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -BattleFrontier_BattleFactoryLobby_EventScript_QuitWithoutSaving:: @ 825843A +BattleFrontier_BattleFactoryLobby_EventScript_QuitWithoutSaving:: lockall msgbox BattleFrontier_BattleFactoryLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT closemessage @@ -40,7 +40,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_QuitWithoutSaving:: @ 825843A releaseall end -BattleFrontier_BattleFactoryLobby_EventScript_WonChallenge:: @ 825849B +BattleFrontier_BattleFactoryLobby_EventScript_WonChallenge:: lockall frontier_isbrain compare VAR_RESULT, TRUE @@ -49,10 +49,10 @@ BattleFrontier_BattleFactoryLobby_EventScript_WonChallenge:: @ 825849B waitmessage goto BattleFrontier_BattleFactoryLobby_EventScript_GiveBattlePoints -BattleFrontier_BattleFactoryLobby_EventScript_DefeatedFactoryHead:: @ 82584BD +BattleFrontier_BattleFactoryLobby_EventScript_DefeatedFactoryHead:: msgbox BattleFrontier_BattleFactoryLobby_Text_CongratsForDefeatingHead, MSGBOX_DEFAULT waitmessage -BattleFrontier_BattleFactoryLobby_EventScript_GiveBattlePoints:: @ 82584C6 +BattleFrontier_BattleFactoryLobby_EventScript_GiveBattlePoints:: msgbox BattleFrontier_BattleFactoryLobby_Text_AwardBattlePoints, MSGBOX_DEFAULT frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS @@ -66,7 +66,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_GiveBattlePoints:: @ 82584C6 goto BattleFrontier_BattleFactoryLobby_EventScript_AskRecordBattle end -BattleFrontier_BattleFactoryLobby_EventScript_LostChallenge:: @ 8258506 +BattleFrontier_BattleFactoryLobby_EventScript_LostChallenge:: lockall message BattleFrontier_BattleFactoryLobby_Text_ReturnMonsSaveResults waitmessage @@ -77,28 +77,28 @@ BattleFrontier_BattleFactoryLobby_EventScript_LostChallenge:: @ 8258506 playse SE_SAVE waitse -BattleFrontier_BattleFactoryLobby_EventScript_AskRecordBattle:: @ 825853B +BattleFrontier_BattleFactoryLobby_EventScript_AskRecordBattle:: call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle message BattleFrontier_BattleFactoryLobby_Text_RecordLastMatch waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle case 0, BattleFrontier_BattleFactoryLobby_EventScript_RecordBattle case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle -BattleFrontier_BattleFactoryLobby_EventScript_RecordBattle:: @ 825857D +BattleFrontier_BattleFactoryLobby_EventScript_RecordBattle:: call BattleFrontier_EventScript_SaveBattle -BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle:: @ 8258582 +BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle:: msgbox BattleFrontier_BattleFactoryLobby_Text_LookForwardToNextVisit, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -BattleFrontier_BattleFactoryLobby_EventScript_ResumeChallenge:: @ 8258592 +BattleFrontier_BattleFactoryLobby_EventScript_ResumeChallenge:: lockall message BattleFrontier_BattleFactoryLobby_Text_WaitingForYouToResume waitmessage @@ -110,7 +110,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_ResumeChallenge:: @ 8258592 setvar VAR_0x8006, 2 goto BattleFrontier_BattleFactoryLobby_EventScript_EnterChallenge -BattleFrontier_BattleFactoryLobby_EventScript_SinglesAttendant:: @ 82585CB +BattleFrontier_BattleFactoryLobby_EventScript_SinglesAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY @@ -118,35 +118,35 @@ BattleFrontier_BattleFactoryLobby_EventScript_SinglesAttendant:: @ 82585CB goto BattleFrontier_BattleFactoryLobby_EventScript_Attendant end -BattleFrontier_BattleFactoryLobby_EventScript_DoublesAttendant:: @ 82585DD +BattleFrontier_BattleFactoryLobby_EventScript_DoublesAttendant:: setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto BattleFrontier_BattleFactoryLobby_EventScript_Attendant end -BattleFrontier_BattleFactoryLobby_EventScript_Attendant:: @ 82585ED +BattleFrontier_BattleFactoryLobby_EventScript_Attendant:: special SavePlayerParty compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForSingleBattle compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForDoubleBattle -BattleFrontier_BattleFactoryLobby_EventScript_AskTakeChallenge:: @ 8258606 +BattleFrontier_BattleFactoryLobby_EventScript_AskTakeChallenge:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_TakeSinglesChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_TakeDoublesChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge case 1, BattleFrontier_BattleFactoryLobby_EventScript_ExplainChallenge case 2, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge -BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge:: @ 8258653 +BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge:: message BattleFrontier_BattleFactoryLobby_Text_WhichLevelMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge @@ -157,7 +157,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge:: @ 8258653 case YES, BattleFrontier_BattleFactoryLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_LoadPartyAndCancelChallenge -BattleFrontier_BattleFactoryLobby_EventScript_SaveBeforeChallenge:: @ 82586B9 +BattleFrontier_BattleFactoryLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 factory_init frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING @@ -170,7 +170,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_SaveBeforeChallenge:: @ 82586B9 compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_CancelChallengeSaveFailed setvar VAR_0x8006, 0 -BattleFrontier_BattleFactoryLobby_EventScript_EnterChallenge:: @ 825871A +BattleFrontier_BattleFactoryLobby_EventScript_EnterChallenge:: special SavePlayerParty msgbox BattleFrontier_BattleFactoryLobby_Text_StepThisWay, MSGBOX_DEFAULT closemessage @@ -186,71 +186,71 @@ BattleFrontier_BattleFactoryLobby_EventScript_EnterChallenge:: @ 825871A waitstate end -BattleFrontier_BattleFactoryLobby_EventScript_TalkedToSinglesAttendant:: @ 825875C +BattleFrontier_BattleFactoryLobby_EventScript_TalkedToSinglesAttendant:: setvar VAR_LAST_TALKED, LOCALID_ATTENDANT_SINGLES return -BattleFrontier_BattleFactoryLobby_EventScript_TalkedToDoublesAttendant:: @ 8258762 +BattleFrontier_BattleFactoryLobby_EventScript_TalkedToDoublesAttendant:: setvar VAR_LAST_TALKED, LOCALID_ATTENDANT_DOUBLES return -BattleFrontier_BattleFactoryLobby_EventScript_ExplainChallenge:: @ 8258768 +BattleFrontier_BattleFactoryLobby_EventScript_ExplainChallenge:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_ExplainSinglesChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_ExplainDoublesChallenge goto BattleFrontier_BattleFactoryLobby_EventScript_AskTakeChallenge -BattleFrontier_BattleFactoryLobby_EventScript_CancelChallengeSaveFailed:: @ 8258783 +BattleFrontier_BattleFactoryLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge -BattleFrontier_BattleFactoryLobby_EventScript_LoadPartyAndCancelChallenge:: @ 825879A +BattleFrontier_BattleFactoryLobby_EventScript_LoadPartyAndCancelChallenge:: special LoadPlayerParty -BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge:: @ 825879D +BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge:: msgbox BattleFrontier_BattleFactoryLobby_Text_LookForwardToNextVisit, MSGBOX_DEFAULT release end -BattleFrontier_BattleFactoryLobby_Movement_AttendantEnterDoor: @ 82587A7 +BattleFrontier_BattleFactoryLobby_Movement_AttendantEnterDoor: walk_up walk_up walk_up set_invisible step_end -BattleFrontier_BattleFactoryLobby_Movement_PlayerEnterDoor: @ 82587AC +BattleFrontier_BattleFactoryLobby_Movement_PlayerEnterDoor: walk_up walk_up walk_up walk_up step_end -BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForSingleBattle:: @ 82587B1 +BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForSingleBattle:: msgbox BattleFrontier_BattleFactoryLobby_Text_WelcomeForSingleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForDoubleBattle:: @ 82587BA +BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForDoubleBattle:: msgbox BattleFrontier_BattleFactoryLobby_Text_WelcomeForDoubleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryLobby_EventScript_TakeSinglesChallenge:: @ 82587C3 +BattleFrontier_BattleFactoryLobby_EventScript_TakeSinglesChallenge:: message BattleFrontier_BattleFactoryLobby_Text_TakeSinglesChallenge return -BattleFrontier_BattleFactoryLobby_EventScript_TakeDoublesChallenge:: @ 82587C9 +BattleFrontier_BattleFactoryLobby_EventScript_TakeDoublesChallenge:: message BattleFrontier_BattleFactoryLobby_Text_TakeDoublesChallenge return -BattleFrontier_BattleFactoryLobby_EventScript_ExplainSinglesChallenge:: @ 82587CF +BattleFrontier_BattleFactoryLobby_EventScript_ExplainSinglesChallenge:: msgbox BattleFrontier_BattleFactoryLobby_Text_ExplainSinglesChallenge, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryLobby_EventScript_ExplainDoublesChallenge:: @ 82587D8 +BattleFrontier_BattleFactoryLobby_EventScript_ExplainDoublesChallenge:: msgbox BattleFrontier_BattleFactoryLobby_Text_ExplainDoublesChallenge, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryLobby_EventScript_ShowSinglesResults:: @ 82587E1 +BattleFrontier_BattleFactoryLobby_EventScript_ShowSinglesResults:: lockall frontier_results FRONTIER_FACILITY_FACTORY, FRONTIER_MODE_SINGLES waitbuttonpress @@ -258,7 +258,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_ShowSinglesResults:: @ 82587E1 releaseall end -BattleFrontier_BattleFactoryLobby_EventScript_ShowDoublesResults:: @ 82587FA +BattleFrontier_BattleFactoryLobby_EventScript_ShowDoublesResults:: lockall frontier_results FRONTIER_FACILITY_FACTORY, FRONTIER_MODE_DOUBLES waitbuttonpress @@ -266,34 +266,34 @@ BattleFrontier_BattleFactoryLobby_EventScript_ShowDoublesResults:: @ 82587FA releaseall end -BattleFrontier_BattleFactoryLobby_EventScript_Woman:: @ 8258813 +BattleFrontier_BattleFactoryLobby_EventScript_Woman:: msgbox BattleFrontier_BattleFactoryLobby_Text_NeedKnowledgeOfMonsMoves, MSGBOX_NPC end -BattleFrontier_BattleFactoryLobby_EventScript_Camper:: @ 825881C +BattleFrontier_BattleFactoryLobby_EventScript_Camper:: msgbox BattleFrontier_BattleFactoryLobby_Text_SwappedForWeakMon, MSGBOX_NPC end -BattleFrontier_BattleFactoryLobby_EventScript_Picnicker:: @ 8258825 +BattleFrontier_BattleFactoryLobby_EventScript_Picnicker:: lock msgbox BattleFrontier_BattleFactoryLobby_Text_NeedToCheckOpponentsMons, MSGBOX_DEFAULT release end -BattleFrontier_BattleFactoryLobby_EventScript_FatMan:: @ 8258830 +BattleFrontier_BattleFactoryLobby_EventScript_FatMan:: msgbox BattleFrontier_BattleFactoryLobby_Text_CantFigureOutStaffHints, MSGBOX_NPC end -BattleFrontier_BattleFactoryLobby_EventScript_RulesBoard:: @ 8258839 +BattleFrontier_BattleFactoryLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattleFactoryLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard:: @ 8258848 +BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattleFactoryLobby_Text_ReadWhichHeading waitmessage - multichoice 17, 0, MULTI_BATTLE_FACTORY_RULES, 0 + multichoice 17, 0, MULTI_BATTLE_FACTORY_RULES, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleFactoryLobby_EventScript_RulesBasics case 1, BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapPartner @@ -304,47 +304,47 @@ BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard:: @ 8258848 case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_ExitRules end -BattleFrontier_BattleFactoryLobby_EventScript_RulesBasics:: @ 82588A6 +BattleFrontier_BattleFactoryLobby_EventScript_RulesBasics:: msgbox BattleFrontier_BattleFactoryLobby_Text_ExplainBasicRules, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapPartner:: @ 82588B4 +BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapPartner:: msgbox BattleFrontier_BattleFactoryLobby_Text_ExplainSwapPartnerRules, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapNumber:: @ 82588C2 +BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapNumber:: msgbox BattleFrontier_BattleFactoryLobby_Text_ExplainSwapNumberRules, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapNotes:: @ 82588D0 +BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapNotes:: msgbox BattleFrontier_BattleFactoryLobby_Text_ExplainSwapNotesRules, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleFactoryLobby_EventScript_RulesOpenLv:: @ 82588DE +BattleFrontier_BattleFactoryLobby_EventScript_RulesOpenLv:: msgbox BattleFrontier_BattleFactoryLobby_Text_ExplainOpenLvRules, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleFactoryLobby_EventScript_ExitRules:: @ 82588EC +BattleFrontier_BattleFactoryLobby_EventScript_ExitRules:: releaseall end -BattleFrontier_BattleFactoryLobby_Text_WelcomeForSingleBattle: @ 82588EE +BattleFrontier_BattleFactoryLobby_Text_WelcomeForSingleBattle: .string "Where the intelligence of TRAINERS\n" .string "is put to the test!\p" .string "Welcome to the BATTLE FACTORY!\p" .string "I am your guide to the Battle Swap\n" .string "Single Tournament.$" -BattleFrontier_BattleFactoryLobby_Text_TakeSinglesChallenge: @ 825897A +BattleFrontier_BattleFactoryLobby_Text_TakeSinglesChallenge: .string "Would you like to take the Battle\n" .string "Swap Single challenge?$" -BattleFrontier_BattleFactoryLobby_Text_ExplainSinglesChallenge: @ 82589B3 +BattleFrontier_BattleFactoryLobby_Text_ExplainSinglesChallenge: .string "The Battle Swap Single Tournament\n" .string "is a SINGLE BATTLE competition using\l" .string "only rental POKéMON.\p" @@ -362,26 +362,26 @@ BattleFrontier_BattleFactoryLobby_Text_ExplainSinglesChallenge: @ 82589B3 .string "If you don't save, you will be\n" .string "disqualified from your challenge.$" -BattleFrontier_BattleFactoryLobby_Text_LookForwardToNextVisit: @ 8258BC5 +BattleFrontier_BattleFactoryLobby_Text_LookForwardToNextVisit: .string "We look forward to your next visit.$" -BattleFrontier_BattleFactoryLobby_Text_WhichLevelMode: @ 8258BE9 +BattleFrontier_BattleFactoryLobby_Text_WhichLevelMode: .string "Which level do you wish to challenge?\n" .string "Level 50 or Open Level?$" -BattleFrontier_BattleFactoryLobby_Text_OkayToSaveBeforeChallenge: @ 8258C27 +BattleFrontier_BattleFactoryLobby_Text_OkayToSaveBeforeChallenge: .string "Before you begin your challenge,\n" .string "I need to save the game. Is that okay?$" @ Unused -BattleFrontier_BattleFactoryLobby_Text_WillHoldMonsForSafekeeping: @ 8258C6F +BattleFrontier_BattleFactoryLobby_Text_WillHoldMonsForSafekeeping: .string "Okay, I will hold your POKéMON for\n" .string "safekeeping while you compete.$" -BattleFrontier_BattleFactoryLobby_Text_StepThisWay: @ 8258CB1 +BattleFrontier_BattleFactoryLobby_Text_StepThisWay: .string "Please step this way.$" -BattleFrontier_BattleFactoryLobby_Text_ReturnMonsSaveResults: @ 8258CC7 +BattleFrontier_BattleFactoryLobby_Text_ReturnMonsSaveResults: .string "Thank you for participating!\p" .string "I will return your POKéMON in exchange\n" .string "for our rental POKéMON.\p" @@ -389,58 +389,58 @@ BattleFrontier_BattleFactoryLobby_Text_ReturnMonsSaveResults: @ 8258CC7 .string "Please wait.$" @ Unused -BattleFrontier_BattleFactoryLobby_Text_ReturnMons: @ 8258D54 +BattleFrontier_BattleFactoryLobby_Text_ReturnMons: .string "I will return your POKéMON in exchange\n" .string "for our rental POKéMON.$" -BattleFrontier_BattleFactoryLobby_Text_CongratsSevenWins: @ 8258D93 +BattleFrontier_BattleFactoryLobby_Text_CongratsSevenWins: .string "Congratulations! You've won seven\n" .string "straight Battle Swap matches!$" @ Unused -BattleFrontier_BattleFactoryLobby_Text_AwardBattlePointsForStreak: @ 8258DD3 +BattleFrontier_BattleFactoryLobby_Text_AwardBattlePointsForStreak: .string "In recognition of your 7-win streak,\n" .string "we award you these Battle Point(s).$" @ Unused -BattleFrontier_BattleFactoryLobby_Text_MaxBattlePoints: @ 8258E1C +BattleFrontier_BattleFactoryLobby_Text_MaxBattlePoints: .string "Oh, oh, oh!\p" .string "Your Battle Points are maxed.\p" .string "Please come back after using\n" .string "some Battle Points.$" -BattleFrontier_BattleFactoryLobby_Text_WaitingForYouToResume: @ 8258E77 +BattleFrontier_BattleFactoryLobby_Text_WaitingForYouToResume: .string "We've been waiting for you!\p" .string "Before we resume your challenge,\n" .string "I must save the game.$" -BattleFrontier_BattleFactoryLobby_Text_DidntSaveBeforeQuitting: @ 8258ECA +BattleFrontier_BattleFactoryLobby_Text_DidntSaveBeforeQuitting: .string "I'm sorry to say this, but you didn't\n" .string "save before you quit playing last time.\p" .string "As a result, you have been disqualified\n" .string "from your challenge.$" @ Unused -BattleFrontier_BattleFactoryLobby_Text_WellReturnMons: @ 8258F55 +BattleFrontier_BattleFactoryLobby_Text_WellReturnMons: .string "We'll return your personal POKéMON.$" @ Unused -BattleFrontier_BattleFactoryLobby_Text_ReceivedPrizeItem: @ 8258F79 +BattleFrontier_BattleFactoryLobby_Text_ReceivedPrizeItem: .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" -BattleFrontier_BattleFactoryLobby_Text_WelcomeForDoubleBattle: @ 8258F93 +BattleFrontier_BattleFactoryLobby_Text_WelcomeForDoubleBattle: .string "Where the intelligence of TRAINERS\n" .string "is put to the test!\p" .string "Welcome to the BATTLE FACTORY!\p" .string "I am your guide to the Battle Swap\n" .string "Double Tournament.$" -BattleFrontier_BattleFactoryLobby_Text_TakeDoublesChallenge: @ 825901F +BattleFrontier_BattleFactoryLobby_Text_TakeDoublesChallenge: .string "Would you like to take the Battle\n" .string "Swap Double challenge?$" -BattleFrontier_BattleFactoryLobby_Text_ExplainDoublesChallenge: @ 8259058 +BattleFrontier_BattleFactoryLobby_Text_ExplainDoublesChallenge: .string "The Battle Swap Double Tournament\n" .string "is a DOUBLE BATTLE competition using\l" .string "only rental POKéMON.\p" @@ -458,28 +458,28 @@ BattleFrontier_BattleFactoryLobby_Text_ExplainDoublesChallenge: @ 8259058 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleFactoryLobby_Text_CongratsForDefeatingHead: @ 825926A +BattleFrontier_BattleFactoryLobby_Text_CongratsForDefeatingHead: .string "Congratulations for defeating\n" .string "the FACTORY HEAD and winning\l" .string "seven matches in a row!$" -BattleFrontier_BattleFactoryLobby_Text_AwardBattlePoints: @ 82592BD +BattleFrontier_BattleFactoryLobby_Text_AwardBattlePoints: .string "In recognition of your wealth of\n" .string "knowledge and keen intelligence,\l" .string "we award you these Battle Point(s).$" -BattleFrontier_BattleFactoryLobby_Text_ExchangeMonsAndSave: @ 8259323 +BattleFrontier_BattleFactoryLobby_Text_ExchangeMonsAndSave: .string "Let me exchange your POKéMON\n" .string "for our rental POKéMON.\p" .string "I need to save the battle data,\n" .string "so please wait.$" -BattleFrontier_BattleFactoryLobby_Text_RecordLastMatch: @ 8259388 +BattleFrontier_BattleFactoryLobby_Text_RecordLastMatch: .string "Would you like to record your last\n" .string "BATTLE FACTORY match on your\l" .string "FRONTIER PASS?$" -BattleFrontier_BattleFactoryLobby_Text_NeedKnowledgeOfMonsMoves: @ 82593D7 +BattleFrontier_BattleFactoryLobby_Text_NeedKnowledgeOfMonsMoves: .string "Hi!\n" .string "You, there!\p" .string "Are you thinking that the events here\n" @@ -491,26 +491,26 @@ BattleFrontier_BattleFactoryLobby_Text_NeedKnowledgeOfMonsMoves: @ 82593D7 .string "about POKéMON and their moves,\l" .string "it will be tough to keep winning.$" -BattleFrontier_BattleFactoryLobby_Text_SwappedForWeakMon: @ 82594E5 +BattleFrontier_BattleFactoryLobby_Text_SwappedForWeakMon: .string "I swapped for a weak POKéMON…\n" .string "I thought it was a good kind to have…\p" .string "They wiped the floor with us…$" -BattleFrontier_BattleFactoryLobby_Text_NeedToCheckOpponentsMons: @ 8259547 +BattleFrontier_BattleFactoryLobby_Text_NeedToCheckOpponentsMons: .string "Things haven't been going my way\n" .string "at all.\p" .string "You need to check your opponent's\n" .string "POKéMON during battle to see if\l" .string "they're any good.$" -BattleFrontier_BattleFactoryLobby_Text_CantFigureOutStaffHints: @ 82595C4 +BattleFrontier_BattleFactoryLobby_Text_CantFigureOutStaffHints: .string "You know how the staff here give you\n" .string "a few hints about your next opponent?\p" .string "Well, I'm a full-grown man, but I have\n" .string "trouble figuring out their hints.$" @ Unused -BattleFrontier_BattleFactoryLobby_Text_RentalMonsAreVaried: @ 8259658 +BattleFrontier_BattleFactoryLobby_Text_RentalMonsAreVaried: .string "Like, I'm really tough, but I get bored\n" .string "really easily, so I just kept swapping\l" .string "and battling over and over.\p" @@ -518,33 +518,33 @@ BattleFrontier_BattleFactoryLobby_Text_RentalMonsAreVaried: @ 8259658 .string "Battle Swap events, I noticed they\l" .string "varied the rental POKéMON.$" -BattleFrontier_BattleFactoryLobby_Text_RulesAreListed: @ 8259721 +BattleFrontier_BattleFactoryLobby_Text_RulesAreListed: .string "The Battle Swap rules are listed.$" -BattleFrontier_BattleFactoryLobby_Text_ReadWhichHeading: @ 8259743 +BattleFrontier_BattleFactoryLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" -BattleFrontier_BattleFactoryLobby_Text_ExplainBasicRules: @ 8259766 +BattleFrontier_BattleFactoryLobby_Text_ExplainBasicRules: .string "In a Battle Swap event, you may use\n" .string "only three POKéMON.\p" .string "Whether you are renting or swapping,\n" .string "your team may not have two or more\l" .string "of the same POKéMON.$" -BattleFrontier_BattleFactoryLobby_Text_ExplainSwapPartnerRules: @ 82597FB +BattleFrontier_BattleFactoryLobby_Text_ExplainSwapPartnerRules: .string "You may swap POKéMON only with\n" .string "the TRAINER you have just defeated.\p" .string "You may swap for only those POKéMON\n" .string "used by the beaten TRAINER.$" -BattleFrontier_BattleFactoryLobby_Text_ExplainSwapNumberRules: @ 825987E +BattleFrontier_BattleFactoryLobby_Text_ExplainSwapNumberRules: .string "After every battle you win, you may\n" .string "swap for one of your defeated\l" .string "opponent's POKéMON.\p" .string "You will not be able to swap POKéMON\n" .string "with the seventh TRAINER in the event.$" -BattleFrontier_BattleFactoryLobby_Text_ExplainSwapNotesRules: @ 8259920 +BattleFrontier_BattleFactoryLobby_Text_ExplainSwapNotesRules: .string "There are two key points to be aware\n" .string "of when swapping POKéMON.\p" .string "First, when swapping, you can't check\n" @@ -556,7 +556,7 @@ BattleFrontier_BattleFactoryLobby_Text_ExplainSwapNotesRules: @ 8259920 .string "This sequence remains unchanged\n" .string "even when swaps are made.$" -BattleFrontier_BattleFactoryLobby_Text_ExplainOpenLvRules: @ 8259A5E +BattleFrontier_BattleFactoryLobby_Text_ExplainOpenLvRules: .string "In the Open Level, the rental POKéMON\n" .string "and the opposing TRAINERS' POKéMON\l" .string "are all Level 100.$" diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index 48d2bcc3ad..ce3cb357c2 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -1,29 +1,29 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattleFactoryPreBattleRoom_MapScripts:: @ 8259ABA +BattleFrontier_BattleFactoryPreBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleFactoryPreBattleRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleFactoryPreBattleRoom_OnWarp .byte 0 -BattleFrontier_BattleFactoryPreBattleRoom_OnWarp: @ 8259AC5 +BattleFrontier_BattleFactoryPreBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SetUpObjects .2byte 0 -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SetUpObjects:: @ 8259ACF +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 compare VAR_0x8006, 1 goto_if_ne BattleFrontier_BattleFactoryPreBattleRoom_EventScript_TurnPlayerNorth setobjectxy LOCALID_ATTENDANT, 8, 7 turnobject LOCALID_ATTENDANT, DIR_SOUTH -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_TurnPlayerNorth:: @ 8259AEA +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleFactoryPreBattleRoom_OnFrame: @ 8259AEF +BattleFrontier_BattleFactoryPreBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterRoom:: @ 8259AF9 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterRoom:: compare VAR_0x8006, 1 goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle setvar VAR_TEMP_0, 1 @@ -45,7 +45,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterRoom:: @ 8259AF9 factory_setswapped factory_rentmons waitstate -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom:: @ 8259B74 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_RightThisWay, MSGBOX_DEFAULT closemessage call BattleFrontier_EventScript_GetLvlMode @@ -58,7 +58,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom:: @ 8259B7 waitstate end -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle:: @ 8259BA5 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle:: factory_setopponentmons factory_resethelditems msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons, MSGBOX_DEFAULT @@ -84,11 +84,11 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle:: @ goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead end -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent:: @ 8259C13 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent:: frontier_getbrainstatus compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_ne BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent:: @ 8259C26 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent:: frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor2ndOpponent @@ -105,7 +105,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle @@ -113,44 +113,44 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent case 3, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8259CC6 - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle:: @ 8259CFC +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_RecordLatestBattle waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_RecordBattle case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_RecordBattle:: @ 8259D2E +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_RecordBattle:: call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge:: @ 8259D38 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent case YES, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_PauseChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRetireChallenge:: @ 8259D66 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_RetireFromChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent case 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon:: @ 8259D98 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon:: factory_generateopponentmons factory_getopponentmontype setorcopyvar VAR_0x8005, VAR_RESULT @@ -164,47 +164,47 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon:: @ 8259D98 case YES, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SwapMons case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SwapMons:: @ 8259DF2 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SwapMons:: fadescreen FADE_TO_BLACK factory_swapmons waitstate - compare VAR_RESULT, 1 + compare VAR_RESULT, TRUE @ Did player keep current pokemon goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom factory_setswapped msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor2ndOpponent:: @ 8259E1D +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor2ndOpponent:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor2ndOpponent waitmessage return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor3rdOpponent:: @ 8259E24 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor3rdOpponent:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor3rdOpponent waitmessage return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor4thOpponent:: @ 8259E2B +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor4thOpponent:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor4thOpponent waitmessage return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor5thOpponent:: @ 8259E32 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor5thOpponent:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor5thOpponent waitmessage return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor6thOpponent:: @ 8259E39 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor6thOpponent:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor6thOpponent waitmessage return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor7thOpponent:: @ 8259E40 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor7thOpponent:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor7thOpponent waitmessage return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_PauseChallenge:: @ 8259E47 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_PauseChallenge:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_SavingDataPleaseWait waitmessage factory_save CHALLENGE_STATUS_PAUSED @@ -214,14 +214,14 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_PauseChallenge:: @ 8259E47 frontier_reset end -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ResumeChallenge:: @ 8259E69 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ResumeChallenge:: special SavePlayerParty factory_setparties 0 frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE special CalculatePlayerPartyCount goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentType:: @ 8259E93 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentType:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_InvestigatedUpcomingOpponent, MSGBOX_DEFAULT compare VAR_0x8005, TYPE_NORMAL call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesNormal @@ -261,79 +261,79 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentType:: @ call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesNormal:: @ 8259F62 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesNormal:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInNormalType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFighting:: @ 8259F6B +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFighting:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFightingType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFlying:: @ 8259F74 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFlying:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFlyingType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesPoison:: @ 8259F7D +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesPoison:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInPoisonType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGround:: @ 8259F86 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGround:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGroundType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesRock:: @ 8259F8F +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesRock:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInRockType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesBug:: @ 8259F98 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesBug:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInBugType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGhost:: @ 8259FA1 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGhost:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGhostType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesSteel:: @ 8259FAA +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesSteel:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInSteelType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFire:: @ 8259FB3 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFire:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFireType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesWater:: @ 8259FBC +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesWater:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInWaterType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGrass:: @ 8259FC5 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGrass:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGrassType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesElectric:: @ 8259FCE +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesElectric:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInElectricType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesPsychic:: @ 8259FD7 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesPsychic:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInPsychicType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesIce:: @ 8259FE0 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesIce:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInIceType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDragon:: @ 8259FE9 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDragon:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDragonType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark:: @ 8259FF2 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDarkType, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType:: @ 8259FFB +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerHasNoClearFavorite, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentStyle:: @ 825A004 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentStyle:: compare VAR_0x8006, FACTORY_STYLE_NONE call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleUnrestrained compare VAR_0x8006, FACTORY_STYLE_PREPARATION @@ -354,49 +354,49 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentStyle:: @ call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleFlexible return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleUnrestrained:: @ 825A068 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleUnrestrained:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleUnrestrained, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleTotalPreparation:: @ 825A071 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleTotalPreparation:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleTotalPreparation, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleSlowAndSteady:: @ 825A07A +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleSlowAndSteady:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleSlowAndSteady, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleEndurance:: @ 825A083 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleEndurance:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleEndurance, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleHighRisk:: @ 825A08C +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleHighRisk:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleHighRisk, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleWeakenFoe:: @ 825A095 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleWeakenFoe:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleWeakenFoe, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleImpossibleToPredict:: @ 825A09E +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleImpossibleToPredict:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleImpossibleToPredict, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleDependsOnFlow:: @ 825A0A7 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleDependsOnFlow:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleDependsOnFlow, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleFlexible:: @ 825A0B0 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleFlexible:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleFlexible, MSGBOX_DEFAULT return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead:: @ 825A0B9 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_PreparedToFaceHead waitmessage call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHeadNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle @@ -404,15 +404,15 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead:: @ 825A0B case 3, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHeadNoRecord:: @ 825A110 - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHeadNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead:: @ 825A146 +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_CantTellAnythingAboutHead, MSGBOX_DEFAULT msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LikeToSwapMon, MSGBOX_YESNO switch VAR_RESULT @@ -420,17 +420,17 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead:: @ 825A case YES, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SwapMons case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_WalkToBattleRoomLv50:: @ 825A17C +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_WalkToBattleRoomLv50:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleFactoryPreBattleRoom_Movement_GuideWalkToBattleRoomLv50 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerWalkToBattleRoomLv50 return -BattleFrontier_BattleFactoryPreBattleRoom_EventScript_WalkToBattleRoomLvOpen:: @ 825A18B +BattleFrontier_BattleFactoryPreBattleRoom_EventScript_WalkToBattleRoomLvOpen:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleFactoryPreBattleRoom_Movement_GuideWalkToBattleRoomLvOpen applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerWalkToBattleRoomLvOpen return -BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerEnterRoom: @ 825A19A +BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerEnterRoom: walk_up walk_up walk_up @@ -438,7 +438,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerEnterRoom: @ 825A19A walk_up step_end -BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerWalkToBattleRoomLv50: @ 825A1A0 +BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerWalkToBattleRoomLv50: walk_up walk_left walk_left @@ -446,7 +446,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerWalkToBattleRoomLv50: @ walk_up step_end -BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerWalkToBattleRoomLvOpen: @ 825A1A6 +BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerWalkToBattleRoomLvOpen: walk_up walk_right walk_right @@ -454,7 +454,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerWalkToBattleRoomLvOpen: walk_up step_end -BattleFrontier_BattleFactoryPreBattleRoom_Movement_AttendantEnterRoom: @ 825A1AC +BattleFrontier_BattleFactoryPreBattleRoom_Movement_AttendantEnterRoom: walk_up walk_up walk_up @@ -463,7 +463,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_Movement_AttendantEnterRoom: @ 825A1AC face_down step_end -BattleFrontier_BattleFactoryPreBattleRoom_Movement_GuideWalkToBattleRoomLv50: @ 825A1B3 +BattleFrontier_BattleFactoryPreBattleRoom_Movement_GuideWalkToBattleRoomLv50: walk_left walk_left walk_up @@ -471,7 +471,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_Movement_GuideWalkToBattleRoomLv50: @ set_invisible step_end -BattleFrontier_BattleFactoryPreBattleRoom_Movement_GuideWalkToBattleRoomLvOpen: @ 825A1B9 +BattleFrontier_BattleFactoryPreBattleRoom_Movement_GuideWalkToBattleRoomLvOpen: walk_right walk_right walk_up @@ -479,201 +479,201 @@ BattleFrontier_BattleFactoryPreBattleRoom_Movement_GuideWalkToBattleRoomLvOpen: set_invisible step_end -BattleFrontier_BattleFactoryPreBattleRoom_Movement_AttendantMoveToReceiveCall: @ 825A1BF +BattleFrontier_BattleFactoryPreBattleRoom_Movement_AttendantMoveToReceiveCall: walk_left walk_left walk_left step_end -BattleFrontier_BattleFactoryPreBattleRoom_Movement_AttendantReturnToPlayer: @ 825A1C3 +BattleFrontier_BattleFactoryPreBattleRoom_Movement_AttendantReturnToPlayer: walk_right walk_right walk_right face_down step_end -BattleFrontier_BattleFactoryPreBattleRoom_Text_HoldMonsChooseFromSelection: @ 825A1C8 +BattleFrontier_BattleFactoryPreBattleRoom_Text_HoldMonsChooseFromSelection: .string "First, we will hold your POKéMON for\n" .string "safekeeping.\p" .string "You may then choose from our\n" .string "selection of POKéMON.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons: @ 825A22D +BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons: .string "Thank you for competing!\n" .string "Let us restore your POKéMON!$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor2ndOpponent: @ 825A263 +BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor2ndOpponent: .string "The 2nd match is next!\n" .string "Are you ready?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor3rdOpponent: @ 825A289 +BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor3rdOpponent: .string "The 3rd match is next!\n" .string "Are you ready?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor4thOpponent: @ 825A2AF +BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor4thOpponent: .string "The 4th match is next!\n" .string "Are you ready?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor5thOpponent: @ 825A2D5 +BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor5thOpponent: .string "The 5th match is next!\n" .string "Are you ready?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor6thOpponent: @ 825A2FB +BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor6thOpponent: .string "The 6th match is next!\n" .string "Are you ready?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor7thOpponent: @ 825A321 +BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor7thOpponent: .string "Finally, the 7th match is next!\n" .string "Are you ready?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_SaveAndQuitGame: @ 825A350 +BattleFrontier_BattleFactoryPreBattleRoom_Text_SaveAndQuitGame: .string "Would you like to save and quit\n" .string "the game?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_RetireFromChallenge: @ 825A37A +BattleFrontier_BattleFactoryPreBattleRoom_Text_RetireFromChallenge: .string "Would you like to retire from your\n" .string "Battle Swap challenge?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_InvestigatedUpcomingOpponent: @ 825A3B4 +BattleFrontier_BattleFactoryPreBattleRoom_Text_InvestigatedUpcomingOpponent: .string "I've conducted a little investigation\n" .string "about your upcoming opponent.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInNormalType: @ 825A3F8 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInNormalType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the NORMAL type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFireType: @ 825A43E +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFireType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the FIRE type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInWaterType: @ 825A482 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInWaterType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the WATER type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInElectricType: @ 825A4C7 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInElectricType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the ELECTRIC type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGrassType: @ 825A50F +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGrassType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the GRASS type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInIceType: @ 825A554 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInIceType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the ICE type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFightingType: @ 825A597 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFightingType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the FIGHTING type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInPoisonType: @ 825A5DF +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInPoisonType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the POISON type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGroundType: @ 825A625 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGroundType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the GROUND type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFlyingType: @ 825A66B +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInFlyingType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the FLYING type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInPsychicType: @ 825A6B1 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInPsychicType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the PSYCHIC type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInBugType: @ 825A6F8 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInBugType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the BUG type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInRockType: @ 825A73B +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInRockType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the ROCK type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGhostType: @ 825A77F +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInGhostType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the GHOST type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDragonType: @ 825A7C4 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDragonType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the DRAGON type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDarkType: @ 825A80A +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInDarkType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the DARK type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInSteelType: @ 825A84E +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerSkilledInSteelType: .string "The TRAINER is apparently skilled\n" .string "in the handling of the STEEL type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerHasNoClearFavorite: @ 825A893 +BattleFrontier_BattleFactoryPreBattleRoom_Text_TrainerHasNoClearFavorite: .string "The TRAINER appears to have no clear\n" .string "favorites when it comes to type.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleSlowAndSteady: @ 825A8D9 +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleSlowAndSteady: .string "The favorite battle style appears to\n" .string "be slow and steady.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleEndurance: @ 825A912 +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleEndurance: .string "The favorite battle style appears to\n" .string "be one of endurance.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleHighRisk: @ 825A94C +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleHighRisk: .string "The favorite battle style appears to\n" .string "be high risk, high return.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleDependsOnFlow: @ 825A98C +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleDependsOnFlow: .string "The favorite battle style appears to\n" .string "depend on the battle's flow.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleTotalPreparation: @ 825A9CE +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleTotalPreparation: .string "The favorite battle style appears to\n" .string "be one based on total preparation.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleWeakenFoe: @ 825AA16 +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleWeakenFoe: .string "The favorite battle style appears\n" .string "to be weakening the foe to start.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleFlexible: @ 825AA5A +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleFlexible: .string "The favorite battle style appears to\n" .string "be flexibly adaptable to the situation.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleImpossibleToPredict: @ 825AAA7 +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleImpossibleToPredict: .string "The favorite battle style appears to\n" .string "be impossible to predict.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleUnrestrained: @ 825AAE6 +BattleFrontier_BattleFactoryPreBattleRoom_Text_StyleUnrestrained: .string "The favorite battle style appears to\n" .string "be free-spirited and unrestrained.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_LikeToSwapMon: @ 825AB2E +BattleFrontier_BattleFactoryPreBattleRoom_Text_LikeToSwapMon: .string "Before starting the battle, would you\n" .string "like to swap a POKéMON?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete: @ 825AB6C +BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete: .string "Thank you!\n" .string "Your POKéMON swap is complete.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_RightThisWay: @ 825AB96 +BattleFrontier_BattleFactoryPreBattleRoom_Text_RightThisWay: .string "Right this way, please!$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_SavingDataPleaseWait: @ 825ABAE +BattleFrontier_BattleFactoryPreBattleRoom_Text_SavingDataPleaseWait: .string "I am saving your data.\n" .string "Please wait.$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_RecordLatestBattle: @ 825ABD2 +BattleFrontier_BattleFactoryPreBattleRoom_Text_RecordLatestBattle: .string "Would you like to record your latest\n" .string "battle on your FRONTIER PASS?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_WaitFewMoments: @ 825AC15 +BattleFrontier_BattleFactoryPreBattleRoom_Text_WaitFewMoments: .string "Excuse me! Excuse me, please!\n" .string "May I get you to wait a few moments?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_UnderstoodSirWillDo: @ 825AC58 +BattleFrontier_BattleFactoryPreBattleRoom_Text_UnderstoodSirWillDo: .string "…Uh-huh? What?! …Whoa!\n" .string "Understood, sir! Will do!$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_MessageFromHeadComeRightNow: @ 825AC89 +BattleFrontier_BattleFactoryPreBattleRoom_Text_MessageFromHeadComeRightNow: .string "Oh, my…\n" .string "Sorry to keep you waiting!\p" .string "I have a message from this facility's\n" @@ -681,10 +681,10 @@ BattleFrontier_BattleFactoryPreBattleRoom_Text_MessageFromHeadComeRightNow: @ 82 .string "He says, “We're going to do it!\n" .string "Come here right now!”$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_PreparedToFaceHead: @ 825AD20 +BattleFrontier_BattleFactoryPreBattleRoom_Text_PreparedToFaceHead: .string "The FACTORY HEAD is demanding you.\n" .string "Are you prepared to face him?$" -BattleFrontier_BattleFactoryPreBattleRoom_Text_CantTellAnythingAboutHead: @ 825AD61 +BattleFrontier_BattleFactoryPreBattleRoom_Text_CantTellAnythingAboutHead: .string "I'm terribly sorry, but I can't tell you\n" .string "anything about the FACTORY HEAD.$" diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index 43db81321b..a838c7eadd 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -4,7 +4,7 @@ .set LOCALID_DUSCLOPS, 4 .set LOCALID_AZURILL, 5 -BattleFrontier_BattlePalaceBattleRoom_MapScripts:: @ 824F815 +BattleFrontier_BattlePalaceBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePalaceBattleRoom_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePalaceBattleRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePalaceBattleRoom_OnWarp @@ -14,12 +14,12 @@ BattleFrontier_BattlePalaceBattleRoom_MapScripts:: @ 824F815 @ The player is represented instead by LOCALID_PLAYER, which has the gfx id VAR_OBJ_GFX_ID_0 @ The opponent is represented by LOCALID_OPPONENT, which has the gfx id VAR_OBJ_GFX_ID_1 -BattleFrontier_BattlePalaceBattleRoom_OnTransition: @ 824F825 +BattleFrontier_BattlePalaceBattleRoom_OnTransition: frontier_settrainers call BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfx end -BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfx:: @ 824F833 +BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxMale @@ -28,21 +28,21 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfx:: @ 824F833 return @ The opponent's gfx are set to the players by default -BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxMale:: @ 824F84B +BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxMale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxFemale:: @ 824F856 +BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -BattleFrontier_BattlePalaceBattleRoom_OnFrame: @ 824F861 +BattleFrontier_BattlePalaceBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattlePalaceBattleRoom_EventScript_EnterRoom:: @ 824F86B +BattleFrontier_BattlePalaceBattleRoom_EventScript_EnterRoom:: showobjectat LOCALID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 @@ -54,10 +54,10 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_EnterRoom:: @ 824F86B frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE goto BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattlePalaceBattleRoom_EventScript_BeginChallenge:: @ 824F8B5 +BattleFrontier_BattlePalaceBattleRoom_EventScript_BeginChallenge:: applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_PlayerEnterRoom waitmovement 0 -BattleFrontier_BattlePalaceBattleRoom_EventScript_NextOpponentEnter:: @ 824F8BF +BattleFrontier_BattlePalaceBattleRoom_EventScript_NextOpponentEnter:: tower_setopponent addobject LOCALID_OPPONENT applymovement LOCALID_OPPONENT, BattleFrontier_BattlePalaceBattleRoom_Movement_OpponentEnter @@ -68,11 +68,11 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_NextOpponentEnter:: @ 824F8BF call BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle switch VAR_RESULT case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedOpponent -BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost:: @ 824F8FA +BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST goto BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedOpponent:: @ 824F911 +BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedOpponent:: call BattleFrontier_EventScript_IncrementWinStreak frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 @@ -92,7 +92,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedOpponent:: @ 824F911 playfanfare MUS_HEAL waitfanfare special HealPlayerParty -BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: @ 824F98A +BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY @@ -113,7 +113,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: @ 824F98 call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle @@ -121,54 +121,54 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: @ 824F98 case 3, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 824FA42 - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle:: @ 824FA78 +BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle:: message BattleFrontier_BattlePalaceBattleRoom_Text_RecordLastMatch waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_RecordBattle case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattlePalaceBattleRoom_EventScript_RecordBattle:: @ 824FAAA +BattleFrontier_BattlePalaceBattleRoom_EventScript_RecordBattle:: call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge:: @ 824FAB4 +BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent case YES, BattleFrontier_BattlePalaceBattleRoom_EventScript_PauseChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRetireChallenge:: @ 824FAE2 +BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattlePalaceBattleRoom_Text_WishToQuitChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge:: @ 824FB14 +BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge:: applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceRight applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceRight closemessage goto BattleFrontier_BattlePalaceBattleRoom_EventScript_NextOpponentEnter -BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyWon:: @ 824FB28 +BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON goto BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattlePalaceBattleRoom_EventScript_PauseChallenge:: @ 824FB3F +BattleFrontier_BattlePalaceBattleRoom_EventScript_PauseChallenge:: message BattleFrontier_BattlePalaceBattleRoom_Text_SavingData waitmessage palace_save CHALLENGE_STATUS_PAUSED @@ -178,18 +178,18 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_PauseChallenge:: @ 824FB3F frontier_reset end -BattleFrontier_BattlePalaceBattleRoom_EventScript_MavenUpNext:: @ 824FB61 +BattleFrontier_BattlePalaceBattleRoom_EventScript_MavenUpNext:: compare VAR_TEMP_2, 1 goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven msgbox BattleFrontier_BattlePalaceBattleRoom_Text_ChallengingPalaceMaven, MSGBOX_DEFAULT setvar VAR_TEMP_2, 1 -BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven:: @ 824FB79 +BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven:: message BattleFrontier_BattlePalaceBattleRoom_Text_ReadyForPalaceMaven waitmessage call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMavenNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle @@ -197,15 +197,15 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven:: @ 824FB79 case 3, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven -BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMavenNoRecord:: @ 824FBD0 - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMavenNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven -BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser:: @ 824FC06 +BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser:: call BattleFrontier_EventScript_SetBrainObjectGfx msgbox BattleFrontier_BattlePalaceBattleRoom_Text_AnnounceArrivalOfSpenser, MSGBOX_DEFAULT closemessage @@ -229,14 +229,14 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser:: @ 824FC06 goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserSilver msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SpenserFirstIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserSilver:: @ 824FCAA +BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserSilver:: msgbox BattleFrontier_BattlePalaceBattleRoom_Text_ProveYourBondWithMons, MSGBOX_DEFAULT call BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver goto BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost -BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver:: @ 824FCC7 +BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver:: palace_incrementstreak frontier_getsymbols compare VAR_RESULT, 0 @@ -258,20 +258,20 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver:: @ 824F msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SpenserAwaitNextTime, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyWon -BattleFrontier_BattlePalaceBattleRoom_EventScript_IntroSpenserGold:: @ 824FD3A +BattleFrontier_BattlePalaceBattleRoom_EventScript_IntroSpenserGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserGold msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SpenserThisTimeWontHoldBack, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserGold:: @ 824FD67 +BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserGold:: msgbox BattleFrontier_BattlePalaceBattleRoom_Text_Kaaah, MSGBOX_DEFAULT call BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold goto BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost -BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold:: @ 824FD84 +BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold:: palace_incrementstreak frontier_getsymbols compare VAR_RESULT, 2 @@ -293,7 +293,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold:: @ 824FD8 msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SpenserComeSeeMeAgain, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyWon -BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle:: @ 824FDF7 +BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle:: closemessage setvar VAR_TEMP_2, 0 frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE @@ -307,11 +307,11 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle:: @ 824FDF7 frontier_resetsketch return -BattleFrontier_BattlePalaceBattleRoom_OnWarp: @ 824FE34 +BattleFrontier_BattlePalaceBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_SetUpRoomObjects .2byte 0 -BattleFrontier_BattlePalaceBattleRoom_EventScript_SetUpRoomObjects:: @ 824FE3E +BattleFrontier_BattlePalaceBattleRoom_EventScript_SetUpRoomObjects:: hideobjectat LOCALID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM call BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfx setvar VAR_TEMP_1, 1 @@ -321,55 +321,55 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_SetUpRoomObjects:: @ 824FE3E applymovement LOCALID_AZURILL, BattleFrontier_BattlePalaceBattleRoom_Movement_SetInvisible end -BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor2ndOpponent:: @ 824FE66 +BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor2ndOpponent:: message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor2ndOpponent waitmessage return -BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor3rdOpponent:: @ 824FE6D +BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor3rdOpponent:: message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor3rdOpponent waitmessage return -BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor4thOpponent:: @ 824FE74 +BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor4thOpponent:: message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor4thOpponent waitmessage return -BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor5thOpponent:: @ 824FE7B +BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor5thOpponent:: message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor5thOpponent waitmessage return -BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor6thOpponent:: @ 824FE82 +BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor6thOpponent:: message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor6thOpponent waitmessage return -BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor7thOpponent:: @ 824FE89 +BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor7thOpponent:: message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor7thOpponent waitmessage return -BattleFrontier_BattlePalaceBattleRoom_Movement_SetInvisible: @ 824FE90 +BattleFrontier_BattlePalaceBattleRoom_Movement_SetInvisible: set_invisible step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_PlayerEnterRoom: @ 824FE92 +BattleFrontier_BattlePalaceBattleRoom_Movement_PlayerEnterRoom: set_visible walk_up walk_up walk_up walk_up -BattleFrontier_BattlePalaceBattleRoom_Movement_FaceRight: @ 824FE97 +BattleFrontier_BattlePalaceBattleRoom_Movement_FaceRight: face_right step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_FaceUp: @ 824FE99 +BattleFrontier_BattlePalaceBattleRoom_Movement_FaceUp: face_up step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_PlayerReturnToChallenge: @ 824FE9B +BattleFrontier_BattlePalaceBattleRoom_Movement_PlayerReturnToChallenge: set_visible walk_up walk_up @@ -377,7 +377,7 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_PlayerReturnToChallenge: @ 824FE9 walk_up step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_OpponentEnter: @ 824FEA1 +BattleFrontier_BattlePalaceBattleRoom_Movement_OpponentEnter: walk_down walk_down walk_down @@ -385,37 +385,37 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_OpponentEnter: @ 824FEA1 face_left step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_OpponentExit: @ 824FEA7 +BattleFrontier_BattlePalaceBattleRoom_Movement_OpponentExit: walk_up walk_up walk_up walk_up step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown: @ 824FEAC +BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown: face_down step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_UnusedOpponentEnter1: @ 824FEAE +BattleFrontier_BattlePalaceBattleRoom_Movement_UnusedOpponentEnter1: set_visible walk_slow_down walk_slow_down face_left step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_UnusedOpponentEnter2: @ 824FEB3 +BattleFrontier_BattlePalaceBattleRoom_Movement_UnusedOpponentEnter2: set_visible walk_slow_down step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_UnusedOpponentEnter3: @ 824FEB6 +BattleFrontier_BattlePalaceBattleRoom_Movement_UnusedOpponentEnter3: walk_slow_down walk_slow_down walk_slow_down face_left step_end -BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobby:: @ 824FEBB +BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobby:: copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyDoubles @@ -423,12 +423,12 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobby:: @ 824FEBB waitstate end -BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyDoubles:: @ 824FED5 +BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyDoubles:: warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 255, 19, 7 waitstate end -BattleFrontier_BattlePalaceBattleRoom_Movement_DusclopsEnter: @ 824FEDF +BattleFrontier_BattlePalaceBattleRoom_Movement_DusclopsEnter: delay_16 delay_16 set_visible @@ -438,7 +438,7 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_DusclopsEnter: @ 824FEDF walk_in_place_fastest_left step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_AzurillEnter: @ 824FEE7 +BattleFrontier_BattlePalaceBattleRoom_Movement_AzurillEnter: set_visible walk_fast_down walk_fast_right @@ -451,7 +451,7 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_AzurillEnter: @ 824FEE7 delay_16 step_end -BattleFrontier_BattlePalaceBattleRoom_Movement_SpenserEnter: @ 824FEF2 +BattleFrontier_BattlePalaceBattleRoom_Movement_SpenserEnter: delay_16 delay_16 delay_16 @@ -467,64 +467,64 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_SpenserEnter: @ 824FEF2 face_left step_end -BattleFrontier_BattlePalaceBattleRoom_Text_LetMeRestoreYourMons: @ 824FF00 +BattleFrontier_BattlePalaceBattleRoom_Text_LetMeRestoreYourMons: .string "Excellent…\n" .string "Let me restore your POKéMON.$" -BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor2ndOpponent: @ 824FF28 +BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor2ndOpponent: .string "The 2nd opponent is next.\n" .string "Are you prepared?$" -BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor3rdOpponent: @ 824FF54 +BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor3rdOpponent: .string "The 3rd opponent is next.\n" .string "Are you prepared?$" -BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor4thOpponent: @ 824FF80 +BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor4thOpponent: .string "The 4th opponent is next.\n" .string "Are you prepared?$" -BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor5thOpponent: @ 824FFAC +BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor5thOpponent: .string "The 5th opponent is next.\n" .string "Are you prepared?$" -BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor6thOpponent: @ 824FFD8 +BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor6thOpponent: .string "The 6th opponent is next.\n" .string "Are you prepared?$" -BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor7thOpponent: @ 8250004 +BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor7thOpponent: .string "The 7th opponent is next.\n" .string "Are you prepared?$" -BattleFrontier_BattlePalaceBattleRoom_Text_SaveAndQuitGame: @ 8250030 +BattleFrontier_BattlePalaceBattleRoom_Text_SaveAndQuitGame: .string "Would you like to save and quit\n" .string "the game?$" -BattleFrontier_BattlePalaceBattleRoom_Text_WishToQuitChallenge: @ 825005A +BattleFrontier_BattlePalaceBattleRoom_Text_WishToQuitChallenge: .string "Do you wish to quit your challenge?$" -BattleFrontier_BattlePalaceBattleRoom_Text_SavingData: @ 825007E +BattleFrontier_BattlePalaceBattleRoom_Text_SavingData: .string "Saving the data.\n" .string "Have patience…$" -BattleFrontier_BattlePalaceBattleRoom_Text_RecordLastMatch: @ 825009E +BattleFrontier_BattlePalaceBattleRoom_Text_RecordLastMatch: .string "Do you wish to record your latest\n" .string "match on your FRONTIER PASS?$" -BattleFrontier_BattlePalaceBattleRoom_Text_ChallengingPalaceMaven: @ 82500DD +BattleFrontier_BattlePalaceBattleRoom_Text_ChallengingPalaceMaven: .string "And now…\p" .string "By winning consistently, you have\n" .string "earned the privilege of challenging\l" .string "our master, the PALACE MAVEN…$" -BattleFrontier_BattlePalaceBattleRoom_Text_ReadyForPalaceMaven: @ 825014A +BattleFrontier_BattlePalaceBattleRoom_Text_ReadyForPalaceMaven: .string "I shall send for the PALACE MAVEN.\n" .string "Are you ready?$" -BattleFrontier_BattlePalaceBattleRoom_Text_AnnounceArrivalOfSpenser: @ 825017C +BattleFrontier_BattlePalaceBattleRoom_Text_AnnounceArrivalOfSpenser: .string "Let great fanfare announce the arrival\n" .string "of the PALACE MAVEN, SPENSER!$" -BattleFrontier_BattlePalaceBattleRoom_Text_SpenserFirstIntro: @ 82501C1 +BattleFrontier_BattlePalaceBattleRoom_Text_SpenserFirstIntro: .string "SPENSER: My physical being is with\n" .string "POKéMON always!\p" .string "My heart beats as one with\n" @@ -536,34 +536,34 @@ BattleFrontier_BattlePalaceBattleRoom_Text_SpenserFirstIntro: @ 82501C1 .string "If your bonds of trust are frail,\n" .string "you will never beat my brethren!$" -BattleFrontier_BattlePalaceBattleRoom_Text_ProveYourBondWithMons: @ 82502C4 +BattleFrontier_BattlePalaceBattleRoom_Text_ProveYourBondWithMons: .string "The bond you share with your POKéMON!\n" .string "Prove it to me here!$" -BattleFrontier_BattlePalaceBattleRoom_Text_SpenserPostSilverBattle: @ 82502FF +BattleFrontier_BattlePalaceBattleRoom_Text_SpenserPostSilverBattle: .string "SPENSER: Gwahahah!\p" .string "Hah, you never fell for my bluster!\n" .string "Sorry for trying that stunt!\p" .string "Here!\n" .string "Bring me the thing!$" -BattleFrontier_BattlePalaceBattleRoom_Text_LetsSeeFrontierPass: @ 825036D +BattleFrontier_BattlePalaceBattleRoom_Text_LetsSeeFrontierPass: .string "My, my, if only you could maintain that\n" .string "facade of distinguished authority…\p" .string "Here!\n" .string "Let's see your FRONTIER PASS!$" -BattleFrontier_BattlePalaceBattleRoom_Text_ReceivedSpiritsSymbol: @ 82503DC +BattleFrontier_BattlePalaceBattleRoom_Text_ReceivedSpiritsSymbol: .string "The Spirits Symbol was embossed on\n" .string "the FRONTIER PASS!$" -BattleFrontier_BattlePalaceBattleRoom_Text_SpenserAwaitNextTime: @ 8250412 +BattleFrontier_BattlePalaceBattleRoom_Text_SpenserAwaitNextTime: .string "SPENSER: Your POKéMON's eyes are \n" .string "truly clear and unclouded.\p" .string "I will eagerly await the next\n" .string "opportunity to see you.$" -BattleFrontier_BattlePalaceBattleRoom_Text_SpenserThisTimeWontHoldBack: @ 8250485 +BattleFrontier_BattlePalaceBattleRoom_Text_SpenserThisTimeWontHoldBack: .string "SPENSER: Gwahahah!\n" .string "You've battled your way up again?\p" .string "You must have developed a truly\n" @@ -574,10 +574,10 @@ BattleFrontier_BattlePalaceBattleRoom_Text_SpenserThisTimeWontHoldBack: @ 825048 .string "Ready now?\n" .string "Prepare to lose!$" -BattleFrontier_BattlePalaceBattleRoom_Text_Kaaah: @ 8250572 +BattleFrontier_BattlePalaceBattleRoom_Text_Kaaah: .string "… … …Kaaah!$" -BattleFrontier_BattlePalaceBattleRoom_Text_SpenserYourTeamIsAdmirable: @ 825057E +BattleFrontier_BattlePalaceBattleRoom_Text_SpenserYourTeamIsAdmirable: .string "SPENSER: Well, that was some display!\n" .string "Even fully unleashed, my brethren\l" .string "could not overpower you.\p" @@ -585,17 +585,17 @@ BattleFrontier_BattlePalaceBattleRoom_Text_SpenserYourTeamIsAdmirable: @ 825057E .string "Here!\n" .string "Bring me that thing, will you?$" -BattleFrontier_BattlePalaceBattleRoom_Text_HurryWithFrontierPass: @ 8250629 +BattleFrontier_BattlePalaceBattleRoom_Text_HurryWithFrontierPass: .string "My, my, if only you could maintain\n" .string "a certain level of decorum…\p" .string "Gaaah, here!\n" .string "Hurry with that FRONTIER PASS, you!$" -BattleFrontier_BattlePalaceBattleRoom_Text_SpiritsSymbolTookGoldenShine: @ 8250699 +BattleFrontier_BattlePalaceBattleRoom_Text_SpiritsSymbolTookGoldenShine: .string "The Spirits Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattlePalaceBattleRoom_Text_SpenserComeSeeMeAgain: @ 82506C4 +BattleFrontier_BattlePalaceBattleRoom_Text_SpenserComeSeeMeAgain: .string "SPENSER: Gwahahah!\p" .string "Come see me time and again!\n" .string "My brethren and I will be waiting!$" diff --git a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc index 2b3b8aab34..011170bae8 100644 --- a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc @@ -1,14 +1,14 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattlePalaceCorridor_MapScripts:: @ 824F4A3 +BattleFrontier_BattlePalaceCorridor_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePalaceCorridor_OnFrame .byte 0 -BattleFrontier_BattlePalaceCorridor_OnFrame: @ 824F4A9 +BattleFrontier_BattlePalaceCorridor_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceCorridor_EventScript_WalkThroughCorridor .2byte 0 -BattleFrontier_BattlePalaceCorridor_EventScript_WalkThroughCorridor:: @ 824F4B3 +BattleFrontier_BattlePalaceCorridor_EventScript_WalkThroughCorridor:: delay 16 applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceCorridor_Movement_EnterCorridor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_EnterCorridor @@ -41,7 +41,7 @@ BattleFrontier_BattlePalaceCorridor_EventScript_WalkThroughCorridor:: @ 824F4B3 waitdooranim goto BattleFrontier_BattlePalaceCorridor_EventScript_WarpToBattleRoom -BattleFrontier_BattlePalaceCorridor_EventScript_WalkToOpenBattleRoom:: @ 824F553 +BattleFrontier_BattlePalaceCorridor_EventScript_WalkToOpenBattleRoom:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceCorridor_Movement_AttendantWalkToOpenBattleRoom applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_PlayerWalkToOpenBattleRoom waitmovement 0 @@ -52,39 +52,39 @@ BattleFrontier_BattlePalaceCorridor_EventScript_WalkToOpenBattleRoom:: @ 824F553 waitmovement 0 closedoor 10, 3 waitdooranim -BattleFrontier_BattlePalaceCorridor_EventScript_WarpToBattleRoom:: @ 824F581 +BattleFrontier_BattlePalaceCorridor_EventScript_WarpToBattleRoom:: warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM, 255, 7, 4 waitstate end -BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment1:: @ 824F58B +BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment1:: msgbox BattleFrontier_BattlePalaceCorridor_Text_PeopleAndMonAreSame, MSGBOX_DEFAULT return -BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment2:: @ 824F594 +BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment2:: msgbox BattleFrontier_BattlePalaceCorridor_Text_LetMonDoWhatItLikes, MSGBOX_DEFAULT return -BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment3:: @ 824F59D +BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment3:: msgbox BattleFrontier_BattlePalaceCorridor_Text_MonDifferentWhenCornered, MSGBOX_DEFAULT return -BattleFrontier_BattlePalaceCorridor_EventScript_StreakComment:: @ 824F5A6 +BattleFrontier_BattlePalaceCorridor_EventScript_StreakComment:: msgbox BattleFrontier_BattlePalaceCorridor_Text_BeginningToUnderstandNature, MSGBOX_DEFAULT return -BattleFrontier_BattlePalaceCorridor_EventScript_LongStreakComment:: @ 824F5AF +BattleFrontier_BattlePalaceCorridor_EventScript_LongStreakComment:: msgbox BattleFrontier_BattlePalaceCorridor_Text_HeartfeltBondBetweenYouAndMons, MSGBOX_DEFAULT return -BattleFrontier_BattlePalaceCorridor_Movement_EnterCorridor: @ 824F5B8 +BattleFrontier_BattlePalaceCorridor_Movement_EnterCorridor: walk_up walk_up walk_up walk_up step_end -BattleFrontier_BattlePalaceCorridor_Movement_AttendantWalkTo50BattleRoom: @ 824F5BD +BattleFrontier_BattlePalaceCorridor_Movement_AttendantWalkTo50BattleRoom: walk_up walk_up walk_left @@ -93,7 +93,7 @@ BattleFrontier_BattlePalaceCorridor_Movement_AttendantWalkTo50BattleRoom: @ 824F walk_up step_end -BattleFrontier_BattlePalaceCorridor_Movement_PlayerWalkTo50BattleRoom: @ 824F5C4 +BattleFrontier_BattlePalaceCorridor_Movement_PlayerWalkTo50BattleRoom: walk_up walk_up walk_up @@ -102,7 +102,7 @@ BattleFrontier_BattlePalaceCorridor_Movement_PlayerWalkTo50BattleRoom: @ 824F5C4 walk_up step_end -BattleFrontier_BattlePalaceCorridor_Movement_AttendantWalkToOpenBattleRoom: @ 824F5CB +BattleFrontier_BattlePalaceCorridor_Movement_AttendantWalkToOpenBattleRoom: walk_up walk_right walk_right @@ -111,7 +111,7 @@ BattleFrontier_BattlePalaceCorridor_Movement_AttendantWalkToOpenBattleRoom: @ 82 walk_up step_end -BattleFrontier_BattlePalaceCorridor_Movement_PlayerWalkToOpenBattleRoom: @ 824F5D2 +BattleFrontier_BattlePalaceCorridor_Movement_PlayerWalkToOpenBattleRoom: walk_up walk_up walk_right @@ -120,38 +120,38 @@ BattleFrontier_BattlePalaceCorridor_Movement_PlayerWalkToOpenBattleRoom: @ 824F5 walk_up step_end -BattleFrontier_BattlePalaceCorridor_Movement_PlayerEnterBattleRoom: @ 824F5D9 +BattleFrontier_BattlePalaceCorridor_Movement_PlayerEnterBattleRoom: walk_up -BattleFrontier_BattlePalaceCorridor_Movement_AttendantEnterBattleRoom: @ 824F5DA +BattleFrontier_BattlePalaceCorridor_Movement_AttendantEnterBattleRoom: walk_up set_invisible step_end -BattleFrontier_BattlePalaceCorridor_Text_PeopleAndMonAreSame: @ 824F5DD +BattleFrontier_BattlePalaceCorridor_Text_PeopleAndMonAreSame: .string "People and POKéMON, they are but\n" .string "the same…\p" .string "Their individual nature makes them\n" .string "good at certain things, and not good\l" .string "at others.$" -BattleFrontier_BattlePalaceCorridor_Text_LetMonDoWhatItLikes: @ 824F65B +BattleFrontier_BattlePalaceCorridor_Text_LetMonDoWhatItLikes: .string "Rather than trying to make a POKéMON\n" .string "do what it dislikes, try to let it do\l" .string "what it likes and is good at doing.\p" .string "Put yourself in the POKéMON's position\n" .string "and consider what moves it would like.$" -BattleFrontier_BattlePalaceCorridor_Text_MonDifferentWhenCornered: @ 824F718 +BattleFrontier_BattlePalaceCorridor_Text_MonDifferentWhenCornered: .string "A POKéMON's nature is a remarkable\n" .string "thing…\p" .string "Some POKéMON behave in a completely\n" .string "different way when they are cornered.$" -BattleFrontier_BattlePalaceCorridor_Text_BeginningToUnderstandNature: @ 824F78C +BattleFrontier_BattlePalaceCorridor_Text_BeginningToUnderstandNature: .string "Are you beginning to understand how\n" .string "a POKéMON's nature makes it behave?$" -BattleFrontier_BattlePalaceCorridor_Text_HeartfeltBondBetweenYouAndMons: @ 824F7D4 +BattleFrontier_BattlePalaceCorridor_Text_HeartfeltBondBetweenYouAndMons: .string "Ah… I see a strong, heartfelt bond\n" .string "between you and your POKéMON…$" diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc index dc0fe4af1d..a51fa48fde 100644 --- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc @@ -1,21 +1,21 @@ .set LOCALID_ATTENDANT_SINGLES, 1 .set LOCALID_ATTENDANT_DOUBLES, 6 -BattleFrontier_BattlePalaceLobby_MapScripts:: @ 824D77E +BattleFrontier_BattlePalaceLobby_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePalaceLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePalaceLobby_OnWarp .byte 0 -BattleFrontier_BattlePalaceLobby_OnWarp: @ 824D789 +BattleFrontier_BattlePalaceLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePalaceLobby_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattlePalaceLobby_EventScript_TurnPlayerNorth:: @ 824D793 +BattleFrontier_BattlePalaceLobby_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePalaceLobby_OnFrame: @ 824D79D +BattleFrontier_BattlePalaceLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePalaceLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePalaceLobby_EventScript_ResumeChallenge @@ -23,11 +23,11 @@ BattleFrontier_BattlePalaceLobby_OnFrame: @ 824D79D map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePalaceLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattlePalaceLobby_EventScript_GetChallengeStatus:: @ 824D7C7 +BattleFrontier_BattlePalaceLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -BattleFrontier_BattlePalaceLobby_EventScript_QuitWithoutSaving:: @ 824D7D0 +BattleFrontier_BattlePalaceLobby_EventScript_QuitWithoutSaving:: lockall msgbox BattleFrontier_BattlePalaceLobby_Text_FailedToSaveBeforeEndingChallenge, MSGBOX_DEFAULT closemessage @@ -38,7 +38,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_QuitWithoutSaving:: @ 824D7D0 releaseall end -BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge:: @ 824D817 +BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge:: lockall frontier_isbrain compare VAR_RESULT, TRUE @@ -46,9 +46,9 @@ BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge:: @ 824D817 msgbox BattleFrontier_BattlePalaceLobby_Text_FirmTrueBondsFor7WinStreak, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_GiveBattlePoints -BattleFrontier_BattlePalaceLobby_EventScript_DefeatedMaven:: @ 824D838 +BattleFrontier_BattlePalaceLobby_EventScript_DefeatedMaven:: msgbox BattleFrontier_BattlePalaceLobby_Text_ToDefeatMavenAnd7Trainers, MSGBOX_DEFAULT -BattleFrontier_BattlePalaceLobby_EventScript_GiveBattlePoints:: @ 824D840 +BattleFrontier_BattlePalaceLobby_EventScript_GiveBattlePoints:: msgbox BattleFrontier_BattlePalaceLobby_Text_PresentYouWithBattlePoints, MSGBOX_DEFAULT frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS @@ -61,7 +61,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_GiveBattlePoints:: @ 824D840 releaseall end -BattleFrontier_BattlePalaceLobby_EventScript_LostChallenge:: @ 824D873 +BattleFrontier_BattlePalaceLobby_EventScript_LostChallenge:: lockall message BattleFrontier_BattlePalaceLobby_Text_ResultsWillBeRecorded waitmessage @@ -73,7 +73,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_LostChallenge:: @ 824D873 releaseall end -BattleFrontier_BattlePalaceLobby_EventScript_SaveAfterChallenge:: @ 824D8A1 +BattleFrontier_BattlePalaceLobby_EventScript_SaveAfterChallenge:: frontier_checkairshow special LoadPlayerParty special HealPlayerParty @@ -85,18 +85,18 @@ BattleFrontier_BattlePalaceLobby_EventScript_SaveAfterChallenge:: @ 824D8A1 goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge message BattleFrontier_BattlePalaceLobby_Text_LikeToRecordMatch waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge case 0, BattleFrontier_BattlePalaceLobby_EventScript_RecordMatch case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge -BattleFrontier_BattlePalaceLobby_EventScript_RecordMatch:: @ 824D902 +BattleFrontier_BattlePalaceLobby_EventScript_RecordMatch:: call BattleFrontier_EventScript_SaveBattle -BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge:: @ 824D907 +BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge:: return -BattleFrontier_BattlePalaceLobby_EventScript_ResumeChallenge:: @ 824D908 +BattleFrontier_BattlePalaceLobby_EventScript_ResumeChallenge:: lockall msgbox BattleFrontier_BattlePalaceLobby_Text_WeHaveBeenWaiting, MSGBOX_DEFAULT message BattleFrontier_BattlePalaceLobby_Text_MustSaveBeforeChallenge @@ -108,7 +108,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_ResumeChallenge:: @ 824D908 setvar VAR_TEMP_0, 255 goto BattleFrontier_BattlePalaceLobby_EventScript_EnterChallenge -BattleFrontier_BattlePalaceLobby_EventScript_SinglesAttendant:: @ 824D944 +BattleFrontier_BattlePalaceLobby_EventScript_SinglesAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE @@ -116,7 +116,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_SinglesAttendant:: @ 824D944 goto BattleFrontier_BattlePalaceLobby_EventScript_Attendant end -BattleFrontier_BattlePalaceLobby_EventScript_DoublesAttendant:: @ 824D956 +BattleFrontier_BattlePalaceLobby_EventScript_DoublesAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE @@ -124,7 +124,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_DoublesAttendant:: @ 824D956 goto BattleFrontier_BattlePalaceLobby_EventScript_Attendant end -BattleFrontier_BattlePalaceLobby_EventScript_Attendant:: @ 824D968 +BattleFrontier_BattlePalaceLobby_EventScript_Attendant:: palace_get PALACE_DATA_PRIZE compare VAR_RESULT, ITEM_NONE goto_if_ne BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge @@ -133,23 +133,23 @@ BattleFrontier_BattlePalaceLobby_EventScript_Attendant:: @ 824D968 call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForSingleBattle compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForDoubleBattle -BattleFrontier_BattlePalaceLobby_EventScript_AskTakeChallenge:: @ 824D999 +BattleFrontier_BattlePalaceLobby_EventScript_AskTakeChallenge:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_AskTakeSingleBattleChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_AskTakeDoubleBattleChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge case 1, BattleFrontier_BattlePalaceLobby_EventScript_ExplainChallenge case 2, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge -BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge:: @ 824D9E6 +BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge:: message BattleFrontier_BattlePalaceLobby_Text_WhichChallenge waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge @@ -172,7 +172,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge:: @ 824D9E6 case YES, BattleFrontier_BattlePalaceLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_LoadPartyAndCancelChallenge -BattleFrontier_BattlePalaceLobby_EventScript_SaveBeforeChallenge:: @ 824DA87 +BattleFrontier_BattlePalaceLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER palace_init @@ -186,7 +186,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_SaveBeforeChallenge:: @ 824DA87 setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_CancelChallengeSaveFailed -BattleFrontier_BattlePalaceLobby_EventScript_EnterChallenge:: @ 824DAF3 +BattleFrontier_BattlePalaceLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePalaceLobby_Text_FollowMe, MSGBOX_DEFAULT @@ -197,58 +197,58 @@ BattleFrontier_BattlePalaceLobby_EventScript_EnterChallenge:: @ 824DAF3 waitstate end -BattleFrontier_BattlePalaceLobby_EventScript_ExplainChallenge:: @ 824DB20 +BattleFrontier_BattlePalaceLobby_EventScript_ExplainChallenge:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_ExplainDoublesChallenge msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainSingleBattleChallenge, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_AskTakeChallenge -BattleFrontier_BattlePalaceLobby_EventScript_ExplainDoublesChallenge:: @ 824DB38 +BattleFrontier_BattlePalaceLobby_EventScript_ExplainDoublesChallenge:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainDoubleBattleChallenge, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_AskTakeChallenge -BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMons:: @ 824DB45 +BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMons:: switch VAR_RESULT case FRONTIER_LVL_50, BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMonsLv50 case FRONTIER_LVL_OPEN, BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMonsLvOpen -BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMonsLv50:: @ 824DB60 +BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMonsLv50:: msgbox BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_EndCancelChallenge -BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 824DB6D +BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMonsLvOpen:: msgbox BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_EndCancelChallenge -BattleFrontier_BattlePalaceLobby_EventScript_CancelChallengeSaveFailed:: @ 824DB7A +BattleFrontier_BattlePalaceLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge -BattleFrontier_BattlePalaceLobby_EventScript_LoadPartyAndCancelChallenge:: @ 824DB91 +BattleFrontier_BattlePalaceLobby_EventScript_LoadPartyAndCancelChallenge:: special LoadPlayerParty -BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge:: @ 824DB94 +BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge:: msgbox BattleFrontier_BattlePalaceLobby_Text_ReturnWhenFortified, MSGBOX_DEFAULT -BattleFrontier_BattlePalaceLobby_EventScript_EndCancelChallenge:: @ 824DB9C +BattleFrontier_BattlePalaceLobby_EventScript_EndCancelChallenge:: release end -BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForSingleBattle:: @ 824DB9E +BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForSingleBattle:: msgbox BattleFrontier_BattlePalaceLobby_Text_WelcomeForSingleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForDoubleBattle:: @ 824DBA7 +BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForDoubleBattle:: msgbox BattleFrontier_BattlePalaceLobby_Text_WelcomeForDoubleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattlePalaceLobby_EventScript_AskTakeSingleBattleChallenge:: @ 824DBB0 +BattleFrontier_BattlePalaceLobby_EventScript_AskTakeSingleBattleChallenge:: message BattleFrontier_BattlePalaceLobby_Text_TakeSingleBattleChallenge return -BattleFrontier_BattlePalaceLobby_EventScript_AskTakeDoubleBattleChallenge:: @ 824DBB6 +BattleFrontier_BattlePalaceLobby_EventScript_AskTakeDoubleBattleChallenge:: message BattleFrontier_BattlePalaceLobby_Text_TakeDoubleBattleChallenge return -BattleFrontier_BattlePalaceLobby_EventScript_WalkToDoor:: @ 824DBBC +BattleFrontier_BattlePalaceLobby_EventScript_WalkToDoor:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_TalkedToSinglesAttendant compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES @@ -271,46 +271,46 @@ BattleFrontier_BattlePalaceLobby_EventScript_WalkToDoor:: @ 824DBBC waitdooranim return -BattleFrontier_BattlePalaceLobby_EventScript_TalkedToSinglesAttendant:: @ 824DC23 +BattleFrontier_BattlePalaceLobby_EventScript_TalkedToSinglesAttendant:: setvar VAR_LAST_TALKED, LOCALID_ATTENDANT_SINGLES return -BattleFrontier_BattlePalaceLobby_EventScript_TalkedToDoublesAttendant:: @ 824DC29 +BattleFrontier_BattlePalaceLobby_EventScript_TalkedToDoublesAttendant:: setvar VAR_LAST_TALKED, LOCALID_ATTENDANT_DOUBLES return -BattleFrontier_BattlePalaceLobby_EventScript_OpenSinglesHallDoor:: @ 824DC2F +BattleFrontier_BattlePalaceLobby_EventScript_OpenSinglesHallDoor:: opendoor 5, 4 return -BattleFrontier_BattlePalaceLobby_EventScript_OpenDoublesHallDoor:: @ 824DC35 +BattleFrontier_BattlePalaceLobby_EventScript_OpenDoublesHallDoor:: opendoor 19, 4 return -BattleFrontier_BattlePalaceLobby_EventScript_CloseSinglesHallDoor:: @ 824DC3B +BattleFrontier_BattlePalaceLobby_EventScript_CloseSinglesHallDoor:: closedoor 5, 4 return -BattleFrontier_BattlePalaceLobby_EventScript_CloseDoublesHallDoor:: @ 824DC41 +BattleFrontier_BattlePalaceLobby_EventScript_CloseDoublesHallDoor:: closedoor 19, 4 return -BattleFrontier_BattlePalaceLobby_Movement_WalkToDoor: @ 824DC47 +BattleFrontier_BattlePalaceLobby_Movement_WalkToDoor: walk_up step_end -BattleFrontier_BattlePalaceLobby_Movement_AttendantEnterDoor: @ 824DC49 +BattleFrontier_BattlePalaceLobby_Movement_AttendantEnterDoor: walk_up set_invisible step_end -BattleFrontier_BattlePalaceLobby_Movement_PlayerEnterDoor: @ 824DC4C +BattleFrontier_BattlePalaceLobby_Movement_PlayerEnterDoor: walk_up walk_up set_invisible step_end -BattleFrontier_BattlePalaceLobby_EventScript_ShowSinglesResults:: @ 824DC50 +BattleFrontier_BattlePalaceLobby_EventScript_ShowSinglesResults:: lockall frontier_results FRONTIER_FACILITY_PALACE, FRONTIER_MODE_SINGLES waitbuttonpress @@ -318,7 +318,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_ShowSinglesResults:: @ 824DC50 releaseall end -BattleFrontier_BattlePalaceLobby_EventScript_ShowDoublesResults:: @ 824DC69 +BattleFrontier_BattlePalaceLobby_EventScript_ShowDoublesResults:: lockall frontier_results FRONTIER_FACILITY_PALACE, FRONTIER_MODE_DOUBLES waitbuttonpress @@ -326,32 +326,32 @@ BattleFrontier_BattlePalaceLobby_EventScript_ShowDoublesResults:: @ 824DC69 releaseall end -BattleFrontier_BattlePalaceLobby_EventScript_BlackBelt:: @ 824DC82 +BattleFrontier_BattlePalaceLobby_EventScript_BlackBelt:: msgbox BattleFrontier_BattlePalaceLobby_Text_LadyCanTellWhatMonsThink, MSGBOX_NPC end -BattleFrontier_BattlePalaceLobby_EventScript_Man:: @ 824DC8B +BattleFrontier_BattlePalaceLobby_EventScript_Man:: msgbox BattleFrontier_BattlePalaceLobby_Text_NatureAndMovesKeyHere, MSGBOX_NPC end -BattleFrontier_BattlePalaceLobby_EventScript_Beauty:: @ 824DC94 +BattleFrontier_BattlePalaceLobby_EventScript_Beauty:: msgbox BattleFrontier_BattlePalaceLobby_Text_MonDocileButTransforms, MSGBOX_NPC end -BattleFrontier_BattlePalaceLobby_EventScript_Maniac:: @ 824DC9D +BattleFrontier_BattlePalaceLobby_EventScript_Maniac:: msgbox BattleFrontier_BattlePalaceLobby_Text_WhatNatureFavorsChippingAway, MSGBOX_NPC end -BattleFrontier_BattlePalaceLobby_EventScript_RulesBoard:: @ 824DCA6 +BattleFrontier_BattlePalaceLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattlePalaceLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard:: @ 824DCB5 +BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattlePalaceLobby_Text_ReadWhichHeading waitmessage - multichoice 16, 0, MULTI_BATTLE_PALACE_RULES, 0 + multichoice 16, 0, MULTI_BATTLE_PALACE_RULES, FALSE switch VAR_RESULT case 0, BattleFrontier_BattlePalaceLobby_EventScript_RulesBasics case 1, BattleFrontier_BattlePalaceLobby_EventScript_RulesNature @@ -362,47 +362,47 @@ BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard:: @ 824DCB5 case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_ExitRules end -BattleFrontier_BattlePalaceLobby_EventScript_RulesBasics:: @ 824DD13 +BattleFrontier_BattlePalaceLobby_EventScript_RulesBasics:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesBasics, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePalaceLobby_EventScript_RulesNature:: @ 824DD21 +BattleFrontier_BattlePalaceLobby_EventScript_RulesNature:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesNature, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePalaceLobby_EventScript_RulesMoves:: @ 824DD2F +BattleFrontier_BattlePalaceLobby_EventScript_RulesMoves:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesMoves, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePalaceLobby_EventScript_RulesUnderpowered:: @ 824DD3D +BattleFrontier_BattlePalaceLobby_EventScript_RulesUnderpowered:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesUnderpowered, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePalaceLobby_EventScript_RulesWhenInDanger:: @ 824DD4B +BattleFrontier_BattlePalaceLobby_EventScript_RulesWhenInDanger:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesWhenInDanger, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePalaceLobby_EventScript_ExitRules:: @ 824DD59 +BattleFrontier_BattlePalaceLobby_EventScript_ExitRules:: releaseall end -BattleFrontier_BattlePalaceLobby_Text_WelcomeForSingleBattle: @ 824DD5B +BattleFrontier_BattlePalaceLobby_Text_WelcomeForSingleBattle: .string "Where the hearts of TRAINERS\n" .string "are put to the test.\p" .string "I welcome you to the BATTLE PALACE.\p" .string "I accept challenges to the SINGLE\n" .string "BATTLE HALLS.$" -BattleFrontier_BattlePalaceLobby_Text_TakeSingleBattleChallenge: @ 824DDE1 +BattleFrontier_BattlePalaceLobby_Text_TakeSingleBattleChallenge: .string "Do you wish to take\n" .string "the SINGLE BATTLE HALL challenge?$" -BattleFrontier_BattlePalaceLobby_Text_ExplainSingleBattleChallenge: @ 824DE17 +BattleFrontier_BattlePalaceLobby_Text_ExplainSingleBattleChallenge: .string "In the BATTLE PALACE, there are\n" .string "several auditoriums for SINGLE BATTLES\l" .string "that are named SINGLE BATTLE HALLS.\p" @@ -425,16 +425,16 @@ BattleFrontier_BattlePalaceLobby_Text_ExplainSingleBattleChallenge: @ 824DE17 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattlePalaceLobby_Text_ReturnWhenFortified: @ 824E0D8 +BattleFrontier_BattlePalaceLobby_Text_ReturnWhenFortified: .string "When you have fortified your heart\n" .string "and POKéMON, you must return.$" -BattleFrontier_BattlePalaceLobby_Text_WhichChallenge: @ 824E119 +BattleFrontier_BattlePalaceLobby_Text_WhichChallenge: .string "There are two BATTLE HALLS,\n" .string "Level 50 and Open Level.\l" .string "Which is your choice of a challenge?$" -BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLv50: @ 824E173 +BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLv50: .string "Sigh…\p" .string "You do not have the three POKéMON\n" .string "required for the challenge.\p" @@ -448,7 +448,7 @@ BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLv50: @ 824E173 .string "Come back when you have made\n" .string "your preparations.$" -BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLvOpen: @ 824E29E +BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLvOpen: .string "Sigh…\p" .string "You do not have the three POKéMON\n" .string "required for the challenge.\p" @@ -460,52 +460,52 @@ BattleFrontier_BattlePalaceLobby_Text_NotEnoughValidMonsLvOpen: @ 824E29E .string "Come back when you have made\n" .string "your preparations.$" -BattleFrontier_BattlePalaceLobby_Text_NowSelectThreeMons: @ 824E399 +BattleFrontier_BattlePalaceLobby_Text_NowSelectThreeMons: .string "Good. Now, you must select your\n" .string "three POKéMON.$" -BattleFrontier_BattlePalaceLobby_Text_MustSaveBeforeChallenge2: @ 824E3C8 +BattleFrontier_BattlePalaceLobby_Text_MustSaveBeforeChallenge2: .string "I must save before I show you to\n" .string "the BATTLE HALL. Is that okay?$" -BattleFrontier_BattlePalaceLobby_Text_FollowMe: @ 824E408 +BattleFrontier_BattlePalaceLobby_Text_FollowMe: .string "Good.\n" .string "Now, follow me.$" -BattleFrontier_BattlePalaceLobby_Text_ResultsWillBeRecorded: @ 824E41E +BattleFrontier_BattlePalaceLobby_Text_ResultsWillBeRecorded: .string "I feel privileged for having seen\n" .string "your POKéMON's exploits.\p" .string "The results will be recorded.\n" .string "I must ask you to briefly wait.$" -BattleFrontier_BattlePalaceLobby_Text_FirmTrueBondsFor7WinStreak: @ 824E497 +BattleFrontier_BattlePalaceLobby_Text_FirmTrueBondsFor7WinStreak: .string "To achieve a 7-win streak…\p" .string "The bonds that bind your heart with\n" .string "your POKéMON seem firm and true.$" -BattleFrontier_BattlePalaceLobby_Text_FeatWillBeRecorded: @ 824E4F7 +BattleFrontier_BattlePalaceLobby_Text_FeatWillBeRecorded: .string "Your feat will be recorded.\n" .string "I must ask you to briefly wait.$" @ Unused -BattleFrontier_BattlePalaceLobby_Text_BattlePointsFor7WinStreak: @ 824E5333 +BattleFrontier_BattlePalaceLobby_Text_BattlePointsFor7WinStreak: .string "For the feat of your 7-win streak,\n" .string "we present you with Battle Point(s).$" -BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize: @ 824E57B +BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize: .string "You seem to have no space for\n" .string "our prize.\p" .string "You should return when you have\n" .string "organized your BAG.$" -BattleFrontier_BattlePalaceLobby_Text_WeHaveBeenWaiting: @ 824E5D8 +BattleFrontier_BattlePalaceLobby_Text_WeHaveBeenWaiting: .string "We have been waiting for you…$" -BattleFrontier_BattlePalaceLobby_Text_MustSaveBeforeChallenge: @ 824E5F6 +BattleFrontier_BattlePalaceLobby_Text_MustSaveBeforeChallenge: .string "I must save before I show you to\n" .string "the BATTLE HALL. Is that okay?$" -BattleFrontier_BattlePalaceLobby_Text_FailedToSaveBeforeEndingChallenge: @ 824E636 +BattleFrontier_BattlePalaceLobby_Text_FailedToSaveBeforeEndingChallenge: .string "Sigh…\p" .string "You failed to save before you ended\n" .string "your challenge the last time.\p" @@ -513,11 +513,11 @@ BattleFrontier_BattlePalaceLobby_Text_FailedToSaveBeforeEndingChallenge: @ 824E6 .string "disqualified. It is most unfortunate.$" @ Unused -BattleFrontier_BattlePalaceLobby_Text_ReceivedPrize: @ 824E6C9 +BattleFrontier_BattlePalaceLobby_Text_ReceivedPrize: .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" -BattleFrontier_BattlePalaceLobby_Text_LadyCanTellWhatMonsThink: @ 824E6E3 +BattleFrontier_BattlePalaceLobby_Text_LadyCanTellWhatMonsThink: .string "For a hardy fellow like me,\n" .string "hardy POKéMON are the best.\p" .string "Offense is the best defense!\n" @@ -533,7 +533,7 @@ BattleFrontier_BattlePalaceLobby_Text_LadyCanTellWhatMonsThink: @ 824E6E3 .string "Huh?\n" .string "Why are you looking at me like that?$" -BattleFrontier_BattlePalaceLobby_Text_NatureAndMovesKeyHere: @ 824E851 +BattleFrontier_BattlePalaceLobby_Text_NatureAndMovesKeyHere: .string "Hmm…\p" .string "It appears that the nature of POKéMON\n" .string "and the moves that they have been\l" @@ -546,7 +546,7 @@ BattleFrontier_BattlePalaceLobby_Text_NatureAndMovesKeyHere: @ 824E851 .string "you may need to examine how well\l" .string "its moves match its nature.$" -BattleFrontier_BattlePalaceLobby_Text_MonDocileButTransforms: @ 824E992 +BattleFrontier_BattlePalaceLobby_Text_MonDocileButTransforms: .string "My POKéMON is usually very docile.\p" .string "But when it's in a BATTLE HALL,\n" .string "it sometimes seems to become\l" @@ -554,25 +554,25 @@ BattleFrontier_BattlePalaceLobby_Text_MonDocileButTransforms: @ 824E992 .string "It becomes totally intimidating.\n" .string "It's shocking, even.$" -BattleFrontier_BattlePalaceLobby_Text_WhatNatureFavorsChippingAway: @ 824EA4B +BattleFrontier_BattlePalaceLobby_Text_WhatNatureFavorsChippingAway: .string "I wonder what sort of nature a POKéMON\n" .string "would have if it favored enfeebling its\l" .string "opponents and chipping away slowly.\p" .string "I'd be surprised if it was a LAX nature.\p" .string "But, nah, that can't be right.$" -BattleFrontier_BattlePalaceLobby_Text_WelcomeForDoubleBattle: @ 824EB06 +BattleFrontier_BattlePalaceLobby_Text_WelcomeForDoubleBattle: .string "Where the hearts of TRAINERS\n" .string "are put to the test.\p" .string "I welcome you to the BATTLE PALACE.\p" .string "I accept challenges to the DOUBLE\n" .string "BATTLE HALLS.$" -BattleFrontier_BattlePalaceLobby_Text_TakeDoubleBattleChallenge: @ 824EB8C +BattleFrontier_BattlePalaceLobby_Text_TakeDoubleBattleChallenge: .string "Do you wish to take\n" .string "the DOUBLE BATTLE HALL challenge?$" -BattleFrontier_BattlePalaceLobby_Text_ExplainDoubleBattleChallenge: @ 824EBC2 +BattleFrontier_BattlePalaceLobby_Text_ExplainDoubleBattleChallenge: .string "In the BATTLE PALACE, there are\n" .string "several auditoriums for DOUBLE BATTLES\l" .string "that are named DOUBLE BATTLE HALLS.\p" @@ -595,34 +595,34 @@ BattleFrontier_BattlePalaceLobby_Text_ExplainDoubleBattleChallenge: @ 824EBC2 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattlePalaceLobby_Text_ToDefeatMavenAnd7Trainers: @ 824EE81 +BattleFrontier_BattlePalaceLobby_Text_ToDefeatMavenAnd7Trainers: .string "To defeat the PALACE MAVEN\n" .string "and seven TRAINERS in a row…$" -BattleFrontier_BattlePalaceLobby_Text_PresentYouWithBattlePoints: @ 824EEB9 +BattleFrontier_BattlePalaceLobby_Text_PresentYouWithBattlePoints: .string "In honor of the bond you share with\n" .string "your POKéMON, we present you with\l" .string "these Battle Point(s).$" -BattleFrontier_BattlePalaceLobby_Text_LikeToRecordMatch: @ 824EF16 +BattleFrontier_BattlePalaceLobby_Text_LikeToRecordMatch: .string "Would you like to record your latest\n" .string "BATTLE PALACE match on your\l" .string "FRONTIER PASS?$" -BattleFrontier_BattlePalaceLobby_Text_RulesAreListed: @ 824EF66 +BattleFrontier_BattlePalaceLobby_Text_RulesAreListed: .string "The BATTLE HALL rules are listed.$" -BattleFrontier_BattlePalaceLobby_Text_ReadWhichHeading: @ 824EF88 +BattleFrontier_BattlePalaceLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" -BattleFrontier_BattlePalaceLobby_Text_ExplainRulesBasics: @ 824EFAB +BattleFrontier_BattlePalaceLobby_Text_ExplainRulesBasics: .string "Here, POKéMON are required to think\n" .string "and battle by themselves.\p" .string "Unlike in the wild, POKéMON that live\n" .string "with people behave differently\l" .string "depending on their nature.$" -BattleFrontier_BattlePalaceLobby_Text_ExplainRulesNature: @ 824F049 +BattleFrontier_BattlePalaceLobby_Text_ExplainRulesNature: .string "Depending on its nature, a POKéMON\n" .string "may prefer to attack no matter what.\p" .string "Another POKéMON may prefer to protect\n" @@ -635,7 +635,7 @@ BattleFrontier_BattlePalaceLobby_Text_ExplainRulesNature: @ 824F049 .string "It may also dislike certain moves that\n" .string "it has trouble using.$" -BattleFrontier_BattlePalaceLobby_Text_ExplainRulesMoves: @ 824F190 +BattleFrontier_BattlePalaceLobby_Text_ExplainRulesMoves: .string "There are offensive moves that inflict\n" .string "direct damage on the foe.\p" .string "There are defensive moves that are\n" @@ -648,7 +648,7 @@ BattleFrontier_BattlePalaceLobby_Text_ExplainRulesMoves: @ 824F190 .string "POKéMON will consider using moves in\n" .string "these three categories.$" -BattleFrontier_BattlePalaceLobby_Text_ExplainRulesUnderpowered: @ 824F2E8 +BattleFrontier_BattlePalaceLobby_Text_ExplainRulesUnderpowered: .string "When not under command by its TRAINER,\n" .string "a POKéMON may be unable to effectively\l" .string "use certain moves.\p" @@ -658,7 +658,7 @@ BattleFrontier_BattlePalaceLobby_Text_ExplainRulesUnderpowered: @ 824F2E8 .string "do not match its nature, it will often\l" .string "be unable to live up to its potential.$" -BattleFrontier_BattlePalaceLobby_Text_ExplainRulesWhenInDanger: @ 824F3F4 +BattleFrontier_BattlePalaceLobby_Text_ExplainRulesWhenInDanger: .string "Depending on its nature, a POKéMON may\n" .string "start using moves that don't match its\l" .string "nature when it is in trouble.\p" diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc index 1c55d7bf5c..44539747b8 100644 --- a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattlePikeCorridor_MapScripts:: @ 825C771 +BattleFrontier_BattlePikeCorridor_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeCorridor_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeCorridor_OnWarp .byte 0 -BattleFrontier_BattlePikeCorridor_OnFrame: @ 825C77C +BattleFrontier_BattlePikeCorridor_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeCorridor_EventScript_EnterCorridor .2byte 0 -BattleFrontier_BattlePikeCorridor_EventScript_EnterCorridor:: @ 825C786 +BattleFrontier_BattlePikeCorridor_EventScript_EnterCorridor:: delay 16 frontier_set FRONTIER_DATA_BATTLE_NUM, 1 pike_cleartrainerids @@ -29,34 +29,34 @@ BattleFrontier_BattlePikeCorridor_EventScript_EnterCorridor:: @ 825C786 waitstate end -BattleFrontier_BattlePikeCorridor_OnWarp: @ 825C7F7 +BattleFrontier_BattlePikeCorridor_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePikeCorridor_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattlePikeCorridor_EventScript_TurnPlayerNorth:: @ 825C801 +BattleFrontier_BattlePikeCorridor_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeCorridor_Movement_PlayerEnterCorridor: @ 825C80B +BattleFrontier_BattlePikeCorridor_Movement_PlayerEnterCorridor: walk_up walk_up step_end -BattleFrontier_BattlePikeCorridor_Movement_PlayerExitCorridor: @ 825C80E +BattleFrontier_BattlePikeCorridor_Movement_PlayerExitCorridor: walk_up walk_up set_invisible step_end -BattleFrontier_BattlePikeCorridor_Movement_AttendantEnterCorridor: @ 825C812 +BattleFrontier_BattlePikeCorridor_Movement_AttendantEnterCorridor: walk_up walk_up walk_left face_down step_end -BattleFrontier_BattlePikeCorridor_Text_YourChallengeHasBegun: @ 825C817 +BattleFrontier_BattlePikeCorridor_Text_YourChallengeHasBegun: .string "Your Battle Choice challenge\n" .string "has now begun…$" diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index 3e6111f427..ecbbafef24 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -1,31 +1,31 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattlePikeLobby_MapScripts:: @ 825B6C6 +BattleFrontier_BattlePikeLobby_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeLobby_OnWarp .byte 0 -BattleFrontier_BattlePikeLobby_OnFrame: @ 825B6D1 +BattleFrontier_BattlePikeLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePikeLobby_EventScript_WonChallenge map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePikeLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattlePikeLobby_OnWarp: @ 825B6F3 +BattleFrontier_BattlePikeLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePikeLobby_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattlePikeLobby_EventScript_TurnPlayerNorth:: @ 825B6FD +BattleFrontier_BattlePikeLobby_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeLobby_EventScript_GetChallengeStatus:: @ 825B707 +BattleFrontier_BattlePikeLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving:: @ 825B710 +BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving:: special HealPlayerParty pike_resethelditems lockall @@ -38,7 +38,7 @@ BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving:: @ 825B710 releaseall end -BattleFrontier_BattlePikeLobby_EventScript_WonChallenge:: @ 825B762 +BattleFrontier_BattlePikeLobby_EventScript_WonChallenge:: lockall frontier_isbrain compare VAR_RESULT, TRUE @@ -47,10 +47,10 @@ BattleFrontier_BattlePikeLobby_EventScript_WonChallenge:: @ 825B762 waitmessage goto BattleFrontier_BattlePikeLobby_EventScript_GiveBattlePoints -BattleFrontier_BattlePikeLobby_EventScript_DefeatedQueen:: @ 825B784 +BattleFrontier_BattlePikeLobby_EventScript_DefeatedQueen:: msgbox BattleFrontier_BattlePikeLobby_Text_SnatchedVictoryFromQueen, MSGBOX_DEFAULT waitmessage -BattleFrontier_BattlePikeLobby_EventScript_GiveBattlePoints:: @ 825B78D +BattleFrontier_BattlePikeLobby_EventScript_GiveBattlePoints:: msgbox BattleFrontier_BattlePikeLobby_Text_AwardYouTheseBattlePoints, MSGBOX_DEFAULT frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS @@ -72,7 +72,7 @@ BattleFrontier_BattlePikeLobby_EventScript_GiveBattlePoints:: @ 825B78D releaseall end -BattleFrontier_BattlePikeLobby_EventScript_LostChallenge:: @ 825B806 +BattleFrontier_BattlePikeLobby_EventScript_LostChallenge:: lockall message BattleFrontier_BattlePikeLobby_Text_ChallengeEndedRecordResults waitmessage @@ -91,27 +91,27 @@ BattleFrontier_BattlePikeLobby_EventScript_LostChallenge:: @ 825B806 releaseall end -BattleFrontier_BattlePikeLobby_EventScript_Attendant:: @ 825B868 +BattleFrontier_BattlePikeLobby_EventScript_Attendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PIKE setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattlePikeLobby_Text_WelcomeToBattlePike, MSGBOX_DEFAULT -BattleFrontier_BattlePikeLobby_EventScript_AskTakeChallenge:: @ 825B87F +BattleFrontier_BattlePikeLobby_EventScript_AskTakeChallenge:: message BattleFrontier_BattlePikeLobby_Text_TakeChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge case 1, BattleFrontier_BattlePikeLobby_EventScript_ExplainChallenge case 2, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge -BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge:: @ 825B8BB +BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge:: message BattleFrontier_BattlePikeLobby_Text_WhichChallengeMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge @@ -134,7 +134,7 @@ BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge:: @ 825B8BB case YES, BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_LoadPartyAndCancelChallenge -BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge:: @ 825B95C +BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 setvar VAR_TEMP_1, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER @@ -164,36 +164,36 @@ BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge:: @ 825B95C waitstate end -BattleFrontier_BattlePikeLobby_EventScript_ExplainChallenge:: @ 825BA1A +BattleFrontier_BattlePikeLobby_EventScript_ExplainChallenge:: msgbox BattleFrontier_BattlePikeLobby_Text_ExplainBattlePike, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeLobby_EventScript_AskTakeChallenge -BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMons:: @ 825BA27 +BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMons:: switch VAR_RESULT case FRONTIER_LVL_50, BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMonsLv50 case FRONTIER_LVL_OPEN, BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMonsLvOpen -BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMonsLv50:: @ 825BA42 +BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMonsLv50:: msgbox BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeLobby_EventScript_EndCancelChallenge -BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 825BA4F +BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMonsLvOpen:: msgbox BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeLobby_EventScript_EndCancelChallenge -BattleFrontier_BattlePikeLobby_EventScript_CancelChallengeSaveFailed:: @ 825BA5C +BattleFrontier_BattlePikeLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge -BattleFrontier_BattlePikeLobby_EventScript_LoadPartyAndCancelChallenge:: @ 825BA73 +BattleFrontier_BattlePikeLobby_EventScript_LoadPartyAndCancelChallenge:: special LoadPlayerParty -BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge:: @ 825BA76 +BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge:: msgbox BattleFrontier_BattlePikeLobby_Text_LookForwardToSeeingYou, MSGBOX_DEFAULT -BattleFrontier_BattlePikeLobby_EventScript_EndCancelChallenge:: @ 825BA7E +BattleFrontier_BattlePikeLobby_EventScript_EndCancelChallenge:: release end -BattleFrontier_BattlePikeLobby_EventScript_ShowResults:: @ 825BA80 +BattleFrontier_BattlePikeLobby_EventScript_ShowResults:: lockall frontier_results FRONTIER_FACILITY_PIKE waitbuttonpress @@ -201,42 +201,42 @@ BattleFrontier_BattlePikeLobby_EventScript_ShowResults:: @ 825BA80 releaseall end -BattleFrontier_BattlePikeLobby_EventScript_WalkToCorridor:: @ 825BA94 +BattleFrontier_BattlePikeLobby_EventScript_WalkToCorridor:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePikeLobby_Movement_AttendantWalkToCorridor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeLobby_Movement_PlayerWalkToCorridor waitmovement 0 return -BattleFrontier_BattlePikeLobby_Movement_PlayerWalkToCorridor: @ 825BAA6 +BattleFrontier_BattlePikeLobby_Movement_PlayerWalkToCorridor: walk_up -BattleFrontier_BattlePikeLobby_Movement_AttendantWalkToCorridor: @ 825BAA7 +BattleFrontier_BattlePikeLobby_Movement_AttendantWalkToCorridor: walk_up walk_up set_invisible step_end -BattleFrontier_BattlePikeLobby_EventScript_Hiker:: @ 825BAAB +BattleFrontier_BattlePikeLobby_EventScript_Hiker:: msgbox BattleFrontier_BattlePikeLobby_Text_OneRoomAwayFromGoal, MSGBOX_NPC end -BattleFrontier_BattlePikeLobby_EventScript_Twin:: @ 825BAB4 +BattleFrontier_BattlePikeLobby_EventScript_Twin:: msgbox BattleFrontier_BattlePikeLobby_Text_NeverHadToBattleTrainer, MSGBOX_NPC end -BattleFrontier_BattlePikeLobby_EventScript_Beauty:: @ 825BABD +BattleFrontier_BattlePikeLobby_EventScript_Beauty:: msgbox BattleFrontier_BattlePikeLobby_Text_ThinkAbilitiesUsefulHere, MSGBOX_NPC end -BattleFrontier_BattlePikeLobby_EventScript_RulesBoard:: @ 825BAC6 +BattleFrontier_BattlePikeLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattlePikeLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard:: @ 825BAD5 +BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattlePikeLobby_Text_ReadWhichHeading waitmessage - multichoice 16, 4, MULTI_BATTLE_PIKE_RULES, 0 + multichoice 16, 4, MULTI_BATTLE_PIKE_RULES, FALSE switch VAR_RESULT case 0, BattleFrontier_BattlePikeLobby_EventScript_RulesPokenavBag case 1, BattleFrontier_BattlePikeLobby_EventScript_RulesHeldItems @@ -245,43 +245,43 @@ BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard:: @ 825BAD5 case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_ExitRules end -BattleFrontier_BattlePikeLobby_EventScript_RulesPokenavBag:: @ 825BB1D +BattleFrontier_BattlePikeLobby_EventScript_RulesPokenavBag:: msgbox BattleFrontier_BattlePikeLobby_Text_ExplainPokenavBagRules, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePikeLobby_EventScript_RulesHeldItems:: @ 825BB2B +BattleFrontier_BattlePikeLobby_EventScript_RulesHeldItems:: msgbox BattleFrontier_BattlePikeLobby_Text_ExplainHeldItemRules, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePikeLobby_EventScript_RulesMonOrder:: @ 825BB39 +BattleFrontier_BattlePikeLobby_EventScript_RulesMonOrder:: msgbox BattleFrontier_BattlePikeLobby_Text_ExplainMonOrderRules, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePikeLobby_EventScript_ExitRules:: @ 825BB47 +BattleFrontier_BattlePikeLobby_EventScript_ExitRules:: releaseall end -BattleFrontier_BattlePike_EventScript_CloseCurtain:: @ 825BB49 +BattleFrontier_BattlePike_EventScript_CloseCurtain:: playse SE_PIKE_CURTAIN_CLOSE special CloseBattlePikeCurtain waitstate waitse return -BattleFrontier_BattlePikeLobby_Text_WelcomeToBattlePike: @ 825BB52 +BattleFrontier_BattlePikeLobby_Text_WelcomeToBattlePike: .string "Where the luck of TRAINERS\n" .string "is put to the test…\p" .string "Welcome to the BATTLE PIKE…\p" .string "I am your guide to the BATTLE PIKE…$" -BattleFrontier_BattlePikeLobby_Text_TakeChallenge: @ 825BBC1 +BattleFrontier_BattlePikeLobby_Text_TakeChallenge: .string "Would you like to take the Battle\n" .string "Choice challenge?$" -BattleFrontier_BattlePikeLobby_Text_ExplainBattlePike: @ 825BBF5 +BattleFrontier_BattlePikeLobby_Text_ExplainBattlePike: .string "Here we conduct an event we call\n" .string "the Battle Choice.\p" .string "The Battle Choice rules are very\n" @@ -300,16 +300,16 @@ BattleFrontier_BattlePikeLobby_Text_ExplainBattlePike: @ 825BBF5 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattlePikeLobby_Text_LookForwardToSeeingYou: @ 825BE02 +BattleFrontier_BattlePikeLobby_Text_LookForwardToSeeingYou: .string "We look forward to seeing you\n" .string "on another occasion…$" -BattleFrontier_BattlePikeLobby_Text_WhichChallengeMode: @ 825BE35 +BattleFrontier_BattlePikeLobby_Text_WhichChallengeMode: .string "You have the choice of two courses,\n" .string "Level 50 and Open Level.\l" .string "Which will you challenge?$" -BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLv50: @ 825BE8C +BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLv50: .string "I beg your pardon, but…\p" .string "You do not have three eligible\n" .string "POKéMON for the Battle Choice event.\p" @@ -321,7 +321,7 @@ BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLv50: @ 825BE8C .string "Please come see me when\n" .string "you are ready…$" -BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLvOpen: @ 825BF9A +BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLvOpen: .string "I beg your pardon, but…\p" .string "You do not have three eligible\n" .string "POKéMON for the Battle Choice event.\p" @@ -333,101 +333,101 @@ BattleFrontier_BattlePikeLobby_Text_NotEnoughValidMonsLvOpen: @ 825BF9A .string "Please come see me when\n" .string "you are ready…$" -BattleFrontier_BattlePikeLobby_Text_PleaseChooseThreeMons: @ 825C094 +BattleFrontier_BattlePikeLobby_Text_PleaseChooseThreeMons: .string "Please choose the three POKéMON\n" .string "you wish to enter in the challenge…$" -BattleFrontier_BattlePikeLobby_Text_SaveBeforeChallenge: @ 825C0D8 +BattleFrontier_BattlePikeLobby_Text_SaveBeforeChallenge: .string "Before starting your Battle Choice\n" .string "challenge, I must save the game.\l" .string "Is that acceptable?$" -BattleFrontier_BattlePikeLobby_Text_StepThisWay: @ 825C130 +BattleFrontier_BattlePikeLobby_Text_StepThisWay: .string "Please step this way…$" -BattleFrontier_BattlePikeLobby_Text_ChallengeEndedRecordResults: @ 825C146 +BattleFrontier_BattlePikeLobby_Text_ChallengeEndedRecordResults: .string "Your challenge has ended…\p" .string "I shall record your results.\n" .string "Please wait…$" -BattleFrontier_BattlePikeLobby_Text_PossessLuckInAbundance: @ 825C18A +BattleFrontier_BattlePikeLobby_Text_PossessLuckInAbundance: .string "You have completed the challenge…\p" .string "I must say… You seem to possess luck\n" .string "in abundance…$" -BattleFrontier_BattlePikeLobby_Text_ShallRecordResults: @ 825C1DF +BattleFrontier_BattlePikeLobby_Text_ShallRecordResults: .string "I shall record your results.\n" .string "Please wait…$" @ Unused -BattleFrontier_BattlePikeLobby_Text_AwardYouTheseBattlePoints2: @ 825C209 +BattleFrontier_BattlePikeLobby_Text_AwardYouTheseBattlePoints2: .string "To commemorate your completion of\n" .string "the Battle Choice challenge, we award\l" .string "you these Battle Point(s)…$" @ Unused -BattleFrontier_BattlePikeLobby_Text_ReachedBattlePointLimit: @ 825C26C +BattleFrontier_BattlePikeLobby_Text_ReachedBattlePointLimit: .string "You appear to have reached the limit\n" .string "for Battle Points…\pPlease exchange some Battle Points\n" .string "for prizes, then return…$" -BattleFrontier_BattlePikeLobby_Text_FailedToSaveBeforeQuitting: @ 825C2E0 +BattleFrontier_BattlePikeLobby_Text_FailedToSaveBeforeQuitting: .string "I beg your pardon, but…\p" .string "You failed to save before you quit\n" .string "your challenge the last time.\p" .string "Because of that, your challenge so far\n" .string "has been disqualified. I am sorry…$" -BattleFrontier_BattlePikeLobby_Text_SnatchedVictoryFromQueen: @ 825C383 +BattleFrontier_BattlePikeLobby_Text_SnatchedVictoryFromQueen: .string "Congratulations…\p" .string "You have snatched victory from the\n" .string "PIKE QUEEN and cleared the event…$" -BattleFrontier_BattlePikeLobby_Text_AwardYouTheseBattlePoints: @ 825C3D9 +BattleFrontier_BattlePikeLobby_Text_AwardYouTheseBattlePoints: .string "In recognition of your amazing luck,\n" .string "we award you these Battle Point(s)…$" -BattleFrontier_BattlePikeLobby_Text_OneRoomAwayFromGoal: @ 825C422 +BattleFrontier_BattlePikeLobby_Text_OneRoomAwayFromGoal: .string "Arrgh! I blew my chance!\n" .string "I was one room away from the goal!\p" .string "In this place, you'd better watch out\n" .string "for poison, freezing, and so on.$" -BattleFrontier_BattlePikeLobby_Text_NeverHadToBattleTrainer: @ 825C4A5 +BattleFrontier_BattlePikeLobby_Text_NeverHadToBattleTrainer: .string "I've completed the challenge 10 times\n" .string "now, but I've never had to battle\l" .string "a TRAINER once.$" -BattleFrontier_BattlePikeLobby_Text_ThinkAbilitiesUsefulHere: @ 825C4FD +BattleFrontier_BattlePikeLobby_Text_ThinkAbilitiesUsefulHere: .string "Listen! Listen!\p" .string "Don't you think that the special\n" .string "abilities of POKéMON will be useful\l" .string "here?$" @ Unused -BattleFrontier_BattlePikeLobby_Text_TrainersWhicheverPathIChoose: @ 825C558 +BattleFrontier_BattlePikeLobby_Text_TrainersWhicheverPathIChoose: .string "What is this weird place?\n" .string "I can't figure it out at all!\p" .string "I've taken the challenge a bunch\n" .string "of times, but all I ever do is run into\l" .string "TRAINERS whichever path I choose.$" -BattleFrontier_BattlePikeLobby_Text_RulesAreListed: @ 825C5FB +BattleFrontier_BattlePikeLobby_Text_RulesAreListed: .string "The Battle Choice's rules are listed.$" -BattleFrontier_BattlePikeLobby_Text_ReadWhichHeading: @ 825C621 +BattleFrontier_BattlePikeLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" -BattleFrontier_BattlePikeLobby_Text_ExplainPokenavBagRules: @ 825C644 +BattleFrontier_BattlePikeLobby_Text_ExplainPokenavBagRules: .string "The BAG and POKéNAV may not be used\n" .string "during a Battle Choice challenge.$" -BattleFrontier_BattlePikeLobby_Text_ExplainHeldItemRules: @ 825C68A +BattleFrontier_BattlePikeLobby_Text_ExplainHeldItemRules: .string "During a Battle Choice challenge,\n" .string "any BERRY or HERB held by POKéMON\l" .string "will be effective only once.$" -BattleFrontier_BattlePikeLobby_Text_ExplainMonOrderRules: @ 825C6EB +BattleFrontier_BattlePikeLobby_Text_ExplainMonOrderRules: .string "During a Battle Choice challenge,\n" .string "the sequence of POKéMON cannot be\l" .string "changed.\p" diff --git a/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc index 51c7d5610d..15ebbeb3fd 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattlePikeRoomFinal_MapScripts:: @ 825E392 +BattleFrontier_BattlePikeRoomFinal_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomFinal_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoomFinal_OnWarp .byte 0 -BattleFrontier_BattlePikeRoomFinal_OnFrame: @ 825E39D +BattleFrontier_BattlePikeRoomFinal_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomFinal_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattlePikeRoomFinal_EventScript_EnterRoom:: @ 825E3A7 +BattleFrontier_BattlePikeRoomFinal_EventScript_EnterRoom:: delay 16 applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePikeRoomFinal_Movement_AttendantApproachPlayer waitmovement 0 @@ -22,21 +22,21 @@ BattleFrontier_BattlePikeRoomFinal_EventScript_EnterRoom:: @ 825E3A7 waitstate end -BattleFrontier_BattlePikeRoomFinal_Movement_AttendantApproachPlayer: @ 825E3DB +BattleFrontier_BattlePikeRoomFinal_Movement_AttendantApproachPlayer: walk_down walk_down step_end -BattleFrontier_BattlePikeRoomFinal_OnWarp: @ 825E3DE +BattleFrontier_BattlePikeRoomFinal_OnWarp: map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomFinal_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattlePikeRoomFinal_EventScript_TurnPlayerNorth:: @ 825E3E8 +BattleFrontier_BattlePikeRoomFinal_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeRoomFinal_Text_CongratsThisWayPlease: @ 825E3F2 +BattleFrontier_BattlePikeRoomFinal_Text_CongratsThisWayPlease: .string "Congratulations…\n" .string "Now, this way, please…$" diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc index 4238dd3f37..6ab862287c 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -3,18 +3,18 @@ .equ LOCALID_OBJ_0, 1 .equ LOCALID_OBJ_1, 2 -BattleFrontier_BattlePikeRoomNormal_MapScripts:: @ 825D152 +BattleFrontier_BattlePikeRoomNormal_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoom_OnResume map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRoom_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomNormal_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoom_OnWarp .byte 0 -BattleFrontier_BattlePikeRoomNormal_OnFrame: @ 825D167 +BattleFrontier_BattlePikeRoomNormal_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomNormal_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattlePikeRoomNormal_EventScript_EnterRoom:: @ 825D171 +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterRoom:: setvar VAR_TEMP_0, 1 pike_getroomtype switch VAR_RESULT @@ -26,7 +26,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterRoom:: @ 825D171 case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeRoomNormal_EventScript_EnterBrainRoom end -BattleFrontier_BattlePikeRoomNormal_EventScript_EnterSingleBattleRoom:: @ 825D1C6 +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterSingleBattleRoom:: lockall delay 16 applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_ApproachPlayer @@ -42,18 +42,18 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterSingleBattleRoom:: @ 825D1C waitstate switch VAR_RESULT case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_WonSingleBattle -BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost:: @ 825D20A +BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end -BattleFrontier_BattlePikeRoomNormal_EventScript_WonSingleBattle:: @ 825D226 +BattleFrontier_BattlePikeRoomNormal_EventScript_WonSingleBattle:: applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_NPCExit waitmovement 0 end -BattleFrontier_BattlePikeRoomNormal_EventScript_EnterHardBattleRoom:: @ 825D231 +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterHardBattleRoom:: lockall delay 16 msgbox BattleFrontier_BattlePikeRoomNormal_Text_BattleSomewhatToughTrainer, MSGBOX_DEFAULT @@ -75,7 +75,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterHardBattleRoom:: @ 825D231 goto BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost end -BattleFrontier_BattlePikeRoomNormal_EventScript_WonHardBattle:: @ 825D285 +BattleFrontier_BattlePikeRoomNormal_EventScript_WonHardBattle:: applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_NPCExit waitmovement 0 applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCApproachPlayer @@ -93,7 +93,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_WonHardBattle:: @ 825D285 waitmovement 0 end -BattleFrontier_BattlePikeRoomNormal_EventScript_EnterBrainRoom:: @ 825D2BF +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterBrainRoom:: delay 22 lockall applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_PreQueenHealNPCApproachPlayer @@ -104,7 +104,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterBrainRoom:: @ 825D2BF case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealOneMon case 2, BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealTwoMons -BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: @ 825D2FB +BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_ShallFetchOurMaster, MSGBOX_DEFAULT closemessage special SpawnCameraObject @@ -141,14 +141,14 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: @ 825D2FB goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucySilver msgbox BattleFrontier_BattlePikeRoomNormal_Text_ImThePikeQueen, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucySilver:: @ 825D3BD +BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucySilver:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_HopeYouDidntUseUpLuck, MSGBOX_DEFAULT call BattleFrontier_BattlePikeRoomNormal_EventScript_DoPikeQueenBattle compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver goto BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost -BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver:: @ 825D3DA +BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver:: frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy @@ -163,20 +163,20 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver:: @ 825D3DA closemessage goto BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy -BattleFrontier_BattlePikeRoomNormal_EventScript_IntroLucyGold:: @ 825D416 +BattleFrontier_BattlePikeRoomNormal_EventScript_IntroLucyGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucyGold msgbox BattleFrontier_BattlePikeRoomNormal_Text_LucyYouAgain, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucyGold:: @ 825D443 +BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucyGold:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_NowComeOn, MSGBOX_DEFAULT call BattleFrontier_BattlePikeRoomNormal_EventScript_DoPikeQueenBattle compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold goto BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost -BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold:: @ 825D460 +BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold:: frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy @@ -192,7 +192,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold:: @ 825D460 goto BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy end -BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy:: @ 825D49D +BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy:: applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_LucyMoveAside waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_PlayerWalkUp2 @@ -204,26 +204,26 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy:: @ 825D49D waitstate end -BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenNoHeal:: @ 825D4DC +BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenNoHeal:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomNoHeal, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter end -BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealOneMon:: @ 825D4EA +BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealOneMon:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealOne, MSGBOX_DEFAULT playfanfare MUS_HEAL waitfanfare goto BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter end -BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealTwoMons:: @ 825D4FC +BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealTwoMons:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealTwo, MSGBOX_DEFAULT playfanfare MUS_HEAL waitfanfare goto BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter end -BattleFrontier_BattlePikeRoomNormal_EventScript_EnterFullHealRoom:: @ 825D50E +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterFullHealRoom:: lockall delay 16 applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_ApproachPlayer @@ -240,7 +240,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterFullHealRoom:: @ 825D50E releaseall end -BattleFrontier_BattlePikeRoomNormal_EventScript_EnterDoubleBattleRoom:: @ 825D53E +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterDoubleBattleRoom:: lockall delay 16 applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1WalkRight @@ -272,7 +272,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterDoubleBattleRoom:: @ 825D53 goto BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost end -BattleFrontier_BattlePikeRoomNormal_EventScript_WonDoubleBattle:: @ 825D5DC +BattleFrontier_BattlePikeRoomNormal_EventScript_WonDoubleBattle:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_PlayerFaceTrainer2 waitmovement 0 applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1Exit @@ -283,7 +283,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_WonDoubleBattle:: @ 825D5DC waitmovement 0 end -BattleFrontier_BattlePikeRoomNormal_EventScript_EnterStatusRoom:: @ 825D605 +BattleFrontier_BattlePikeRoomNormal_EventScript_EnterStatusRoom:: lockall message BattleFrontier_BattlePikeRoomNormal_Text_WatchOut applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_MonApproachPlayer @@ -299,7 +299,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterStatusRoom:: @ 825D605 releaseall end -BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaAttack:: @ 825D643 +BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaAttack:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_KirliaStop, MSGBOX_DEFAULT closemessage waitse @@ -334,7 +334,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaAttack:: @ 825D643 msgbox BattleFrontier_BattlePikeRoomNormal_Text_ApologizeForKirlia, MSGBOX_DEFAULT return -BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsAttack:: @ 825D6D5 +BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsAttack:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_DusclopsStop, MSGBOX_DEFAULT closemessage waitse @@ -365,37 +365,37 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsAttack:: @ 825D6D5 msgbox BattleFrontier_BattlePikeRoomNormal_Text_ApologizeForDusclops, MSGBOX_DEFAULT return -BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedToxic:: @ 825D751 +BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedToxic:: message BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedToxic waitmessage return -BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedWillOWisp:: @ 825D758 +BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedWillOWisp:: message BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedWillOWisp waitmessage return -BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedThunderWave:: @ 825D75F +BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedThunderWave:: message BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedThunderWave waitmessage return -BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedHypnosis:: @ 825D766 +BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedHypnosis:: message BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedHypnosis waitmessage return -BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsUsedIceBeam:: @ 825D76D +BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsUsedIceBeam:: message BattleFrontier_BattlePikeRoomNormal_Text_DusclopsUsedIceBeam waitmessage return -BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsUsedWillOWisp:: @ 825D774 +BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsUsedWillOWisp:: message BattleFrontier_BattlePikeRoomNormal_Text_DusclopsUsedWillOWisp waitmessage return -BattleFrontier_BattlePikeRoomNormal_EventScript_DoPikeQueenBattle:: @ 825D77B +BattleFrontier_BattlePikeRoomNormal_EventScript_DoPikeQueenBattle:: closemessage applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_PlayerWalkUp2 waitmovement 0 @@ -405,12 +405,12 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DoPikeQueenBattle:: @ 825D77B waitstate return -BattleFrontier_BattlePikeRoomNormal_Movement_ApproachPlayer: @ 825D795 +BattleFrontier_BattlePikeRoomNormal_Movement_ApproachPlayer: walk_down walk_down step_end -BattleFrontier_BattlePikeRoomNormal_Movement_NPCExit: @ 825D798 +BattleFrontier_BattlePikeRoomNormal_Movement_NPCExit: walk_up walk_up walk_up @@ -418,17 +418,17 @@ BattleFrontier_BattlePikeRoomNormal_Movement_NPCExit: @ 825D798 walk_up step_end -BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCExit: @ 825D79E +BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCExit: walk_up set_invisible walk_up step_end -BattleFrontier_BattlePikeRoomNormal_Movement_NPCApproachMon: @ 825D7A2 +BattleFrontier_BattlePikeRoomNormal_Movement_NPCApproachMon: walk_down step_end -BattleFrontier_BattlePikeRoomNormal_Movement_StatusNPCApproachPlayer: @ 825D7A4 +BattleFrontier_BattlePikeRoomNormal_Movement_StatusNPCApproachPlayer: walk_down face_left delay_16 @@ -436,7 +436,7 @@ BattleFrontier_BattlePikeRoomNormal_Movement_StatusNPCApproachPlayer: @ 825D7A4 face_down step_end -BattleFrontier_BattlePikeRoomNormal_Movement_MonApproachPlayer: @ 825D7AA +BattleFrontier_BattlePikeRoomNormal_Movement_MonApproachPlayer: walk_fast_down walk_fast_right walk_fast_right @@ -445,57 +445,57 @@ BattleFrontier_BattlePikeRoomNormal_Movement_MonApproachPlayer: @ 825D7AA face_down step_end -BattleFrontier_BattlePikeRoomNormal_Movement_MonFaceNPC: @ 825D7B1 +BattleFrontier_BattlePikeRoomNormal_Movement_MonFaceNPC: face_up step_end -BattleFrontier_BattlePikeRoomNormal_Movement_MonMoveAside: @ 825D7B3 +BattleFrontier_BattlePikeRoomNormal_Movement_MonMoveAside: walk_left -BattleFrontier_BattlePikeRoomNormal_Movement_MonFaceRight: @ 825D7B4 +BattleFrontier_BattlePikeRoomNormal_Movement_MonFaceRight: face_right step_end -BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCApproachPlayer: @ 825D7B6 +BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCApproachPlayer: walk_down walk_down walk_right face_down step_end -BattleFrontier_BattlePikeRoomNormal_Movement_PlayerFaceTrainer1: @ 825D7BB +BattleFrontier_BattlePikeRoomNormal_Movement_PlayerFaceTrainer1: face_left step_end -BattleFrontier_BattlePikeRoomNormal_Movement_PlayerFaceTrainer2: @ 825D7BD +BattleFrontier_BattlePikeRoomNormal_Movement_PlayerFaceTrainer2: face_right step_end -BattleFrontier_BattlePikeRoomNormal_Movement_PlayerFaceUp: @ 825D7BF +BattleFrontier_BattlePikeRoomNormal_Movement_PlayerFaceUp: face_up step_end -BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1WalkRight: @ 825D7C1 +BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1WalkRight: walk_right step_end -BattleFrontier_BattlePikeRoomNormal_Movement_Trainer2WalkLeft: @ 825D7C3 +BattleFrontier_BattlePikeRoomNormal_Movement_Trainer2WalkLeft: walk_left step_end -BattleFrontier_BattlePikeRoomNormal_Movement_DoubleTrainersWalkDown: @ 825D7C5 +BattleFrontier_BattlePikeRoomNormal_Movement_DoubleTrainersWalkDown: walk_down walk_down step_end -BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1FacePlayer: @ 825D7C8 +BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1FacePlayer: face_right step_end -BattleFrontier_BattlePikeRoomNormal_Movement_Trainer2FacePlayer: @ 825D7CA +BattleFrontier_BattlePikeRoomNormal_Movement_Trainer2FacePlayer: face_left step_end -BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1Exit: @ 825D7CC +BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1Exit: walk_up walk_up walk_up @@ -505,7 +505,7 @@ BattleFrontier_BattlePikeRoomNormal_Movement_Trainer1Exit: @ 825D7CC walk_up step_end -BattleFrontier_BattlePikeRoomNormal_Movement_Trainer2Exit: @ 825D7D4 +BattleFrontier_BattlePikeRoomNormal_Movement_Trainer2Exit: walk_up walk_up walk_up @@ -516,40 +516,40 @@ BattleFrontier_BattlePikeRoomNormal_Movement_Trainer2Exit: @ 825D7D4 step_end @ For approaching Lucy and exiting room after defeating Lucy -BattleFrontier_BattlePikeRoomNormal_Movement_PlayerWalkUp2: @ 825D7DC +BattleFrontier_BattlePikeRoomNormal_Movement_PlayerWalkUp2: walk_up walk_up step_end -BattleFrontier_BattlePikeRoomNormal_Movement_PreQueenHealNPCApproachPlayer: @ 825D7DF +BattleFrontier_BattlePikeRoomNormal_Movement_PreQueenHealNPCApproachPlayer: walk_down walk_down step_end -BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCExitForLucy: @ 825D7E2 +BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCExitForLucy: walk_up walk_up walk_up set_invisible step_end -BattleFrontier_BattlePikeRoomNormal_Movement_LucyEnter: @ 825D7E7 +BattleFrontier_BattlePikeRoomNormal_Movement_LucyEnter: set_visible walk_down step_end -BattleFrontier_BattlePikeRoomNormal_Movement_LucyMoveAside: @ 825D7EA +BattleFrontier_BattlePikeRoomNormal_Movement_LucyMoveAside: walk_left face_right step_end -BattleFrontier_BattlePikeRoomNormal_EventScript_NPC:: @ 825D7ED +BattleFrontier_BattlePikeRoomNormal_EventScript_NPC:: pike_getroomtype switch VAR_RESULT case PIKE_ROOM_NPC, BattleFrontier_BattlePikeRoomNormal_EventScript_NormalNPC case PIKE_ROOM_STATUS, BattleFrontier_BattlePikeRoomNormal_EventScript_StatusNPC case PIKE_ROOM_HEAL_PART, BattleFrontier_BattlePikeRoomNormal_EventScript_HealNPC -BattleFrontier_BattlePikeRoomNormal_EventScript_NormalNPC:: @ 825D81B +BattleFrontier_BattlePikeRoomNormal_EventScript_NormalNPC:: lock faceplayer pike_getnpcmsg @@ -559,7 +559,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_NormalNPC:: @ 825D81B release end -BattleFrontier_BattlePikeRoomNormal_EventScript_StatusNPC:: @ 825D831 +BattleFrontier_BattlePikeRoomNormal_EventScript_StatusNPC:: lock faceplayer msgbox BattleFrontier_BattlePikeRoomNormal_Text_ApologizeHopeMonsAreFine, MSGBOX_DEFAULT @@ -567,7 +567,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_StatusNPC:: @ 825D831 release end -BattleFrontier_BattlePikeRoomNormal_EventScript_HealNPC:: @ 825D83E +BattleFrontier_BattlePikeRoomNormal_EventScript_HealNPC:: pike_healonetwomons compare VAR_RESULT, 2 call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreTwoMons @@ -582,14 +582,14 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_HealNPC:: @ 825D83E waitmovement 0 end -BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreOneMon:: @ 825D875 +BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreOneMon:: lock faceplayer msgbox BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreOneMon, MSGBOX_DEFAULT closemessage return -BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreTwoMons:: @ 825D881 +BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreTwoMons:: lock faceplayer msgbox BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreTwoMons, MSGBOX_DEFAULT @@ -597,7 +597,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreTwoMons:: @ 825D881 return @ Dusclops or Kirlia -BattleFrontier_BattlePikeRoomNormal_EventScript_StatusMon:: @ 825D88D +BattleFrontier_BattlePikeRoomNormal_EventScript_StatusMon:: lock faceplayer msgbox BattleFrontier_BattlePikeRoomNormal_Text_Silence, MSGBOX_DEFAULT @@ -607,7 +607,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_StatusMon:: @ 825D88D waitmovement 0 end -BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed:: @ 825D8A4 +BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed:: setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage1_Tile0, 1 setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage1_Tile1, 1 setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage1_Tile2, 1 @@ -618,7 +618,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed:: @ special DrawWholeMapView return -BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesLittleClosed:: @ 825D8E7 +BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesLittleClosed:: setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage2_Tile0, 1 setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage2_Tile1, 1 setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage2_Tile2, 1 @@ -629,7 +629,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesLittleClosed:: @ special DrawWholeMapView return -BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesOpen:: @ 825D92A +BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesOpen:: setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage3_Tile0, 1 setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage3_Tile1, 1 setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage3_Tile2, 1 @@ -640,7 +640,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesOpen:: @ 825D92A special DrawWholeMapView return -BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesClosed:: @ 825D96D +BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesClosed:: setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage0_Tile0, 1 setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage0_Tile1, 1 setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage0_Tile2, 1 @@ -651,136 +651,136 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesClosed:: @ 825D96 special DrawWholeMapView return -BattleFrontier_BattlePikeRoomNormal_Movement_CameraPanUp: @ 825D9B0 +BattleFrontier_BattlePikeRoomNormal_Movement_CameraPanUp: walk_up walk_up step_end @ Unused -BattleFrontier_BattlePikeRoomNormal_Movement_CameraPanDown: @ 825D9B3 +BattleFrontier_BattlePikeRoomNormal_Movement_CameraPanDown: walk_down walk_down step_end -BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreToFullHealth: @ 825D9B6 +BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreToFullHealth: .string "Welcome…\n" .string "You must be commended for your luck…\p" .string "Your POKéMON shall be restored\n" .string "to full health…$" -BattleFrontier_BattlePikeRoomNormal_Text_EnjoyRestOfChallenge: @ 825DA13 +BattleFrontier_BattlePikeRoomNormal_Text_EnjoyRestOfChallenge: .string "I urge you to enjoy the rest of your\n" .string "Battle Choice challenge…$" -BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreOneMon: @ 825DA51 +BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreOneMon: .string "Ah, you're a lucky one.\n" .string "I'm in somewhat-good spirits now.\p" .string "I will restore one of your POKéMON\n" .string "to full health.$" -BattleFrontier_BattlePikeRoomNormal_Text_BestOfLuckFarewell: @ 825DABE +BattleFrontier_BattlePikeRoomNormal_Text_BestOfLuckFarewell: .string "The best of luck to you.\n" .string "Farewell.$" @ Seems there was a planned room type where the player could choose to battle and would be healed if they won @ Possibly replaced/superseded by the hard battle room, which is the same but the battle isnt optional @ Unused -BattleFrontier_BattlePikeRoomNormal_Text_CareForBattleWillRestoreMons: @ 825DAE1 +BattleFrontier_BattlePikeRoomNormal_Text_CareForBattleWillRestoreMons: .string "Excuse me…\p" .string "Would you care for a battle?\n" .string "I'll restore your POKéMON if you win.$" @ Unused -BattleFrontier_BattlePikeRoomNormal_Text_NowShallWe: @ 825DB2F +BattleFrontier_BattlePikeRoomNormal_Text_NowShallWe: .string "Very well…\n" .string "Now, shall we?$" @ Unused -BattleFrontier_BattlePikeRoomNormal_Text_HowUnsportingOfYou: @ 825DB49 +BattleFrontier_BattlePikeRoomNormal_Text_HowUnsportingOfYou: .string "I see…\n" .string "How unsporting of you…$" @ Unused -BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreMonsAsPromised: @ 825DB67 +BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreMonsAsPromised: .string "Magnificent…\p" .string "As promised, I shall restore your\n" .string "POKéMON to full health.$" @ Unused -BattleFrontier_BattlePikeRoomNormal_Text_BestOfLuckFarewell2: @ 825DBAE +BattleFrontier_BattlePikeRoomNormal_Text_BestOfLuckFarewell2: .string "The best of luck to you.\n" .string "Farewell.$" -BattleFrontier_BattlePikeRoomNormal_Text_WatchOut: @ 825DBD1 +BattleFrontier_BattlePikeRoomNormal_Text_WatchOut: .string "Oh, my!\p" .string "Watch out!$" -BattleFrontier_BattlePikeRoomNormal_Text_KirliaStop: @ 825DBE4 +BattleFrontier_BattlePikeRoomNormal_Text_KirliaStop: .string "Now, now!\n" .string "KIRLIA, stop that!$" -BattleFrontier_BattlePikeRoomNormal_Text_DusclopsStop: @ 825DC01 +BattleFrontier_BattlePikeRoomNormal_Text_DusclopsStop: .string "Now, now!\n" .string "DUSCLOPS, stop that!$" -BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedToxic: @ 825DC20 +BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedToxic: .string "KIRLIA used TOXIC!$" -BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedHypnosis: @ 825DC33 +BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedHypnosis: .string "KIRLIA used HYPNOSIS!$" -BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedThunderWave: @ 825DC49 +BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedThunderWave: .string "KIRLIA used THUNDER WAVE!$" -BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedWillOWisp: @ 825DC63 +BattleFrontier_BattlePikeRoomNormal_Text_KirliaUsedWillOWisp: .string "KIRLIA used WILL-O-WISP!$" -BattleFrontier_BattlePikeRoomNormal_Text_DusclopsUsedWillOWisp: @ 825DC7C +BattleFrontier_BattlePikeRoomNormal_Text_DusclopsUsedWillOWisp: .string "DUSCLOPS used WILL-O-WISP!$" -BattleFrontier_BattlePikeRoomNormal_Text_DusclopsUsedIceBeam: @ 825DC97 +BattleFrontier_BattlePikeRoomNormal_Text_DusclopsUsedIceBeam: .string "DUSCLOPS used ICE BEAM!$" -BattleFrontier_BattlePikeRoomNormal_Text_ThatsEnough: @ 825DCAF +BattleFrontier_BattlePikeRoomNormal_Text_ThatsEnough: .string "Look here!\n" .string "That's quite enough!$" -BattleFrontier_BattlePikeRoomNormal_Text_ApologizeForKirlia: @ 825DCCF +BattleFrontier_BattlePikeRoomNormal_Text_ApologizeForKirlia: .string "I must apologize to you…\p" .string "My KIRLIA has a TIMID nature…$" -BattleFrontier_BattlePikeRoomNormal_Text_ApologizeForDusclops: @ 825DD06 +BattleFrontier_BattlePikeRoomNormal_Text_ApologizeForDusclops: .string "I must apologize to you…\p" .string "My DUSCLOPS has a TIMID nature…$" -BattleFrontier_BattlePikeRoomNormal_Text_AttacksWhenStartled: @ 825DD3F +BattleFrontier_BattlePikeRoomNormal_Text_AttacksWhenStartled: .string "It attacks without warning if it is\n" .string "startled by another person…\p" .string "Are you and your POKéMON all right?$" -BattleFrontier_BattlePikeRoomNormal_Text_ApologizeHopeMonsAreFine: @ 825DDA3 +BattleFrontier_BattlePikeRoomNormal_Text_ApologizeHopeMonsAreFine: .string "I do apologize for what happened…\n" .string "I do hope your POKéMON are fine.$" -BattleFrontier_BattlePikeRoomNormal_Text_Silence: @ 825DDE6 +BattleFrontier_BattlePikeRoomNormal_Text_Silence: .string "… … … … … …\n" .string "… … … … … …$" -BattleFrontier_BattlePikeRoomNormal_Text_BattleSomewhatToughTrainer: @ 825DDFE +BattleFrontier_BattlePikeRoomNormal_Text_BattleSomewhatToughTrainer: .string "Welcome…\p" .string "Here, we will have you battle\n" .string "a somewhat-tough TRAINER…$" -BattleFrontier_BattlePikeRoomNormal_Text_RestoreToFullHealth: @ 825DE3F +BattleFrontier_BattlePikeRoomNormal_Text_RestoreToFullHealth: .string "How wonderful…\p" .string "To honor your victory, your POKéMON\n" .string "shall be restored to full health…$" -BattleFrontier_BattlePikeRoomNormal_Text_EnjoyRestOfChallenge2: @ 825DE94 +BattleFrontier_BattlePikeRoomNormal_Text_EnjoyRestOfChallenge2: .string "I urge you to enjoy the rest of your\n" .string "Battle Choice challenge…$" -BattleFrontier_BattlePikeRoomNormal_Text_ImThePikeQueen: @ 825DED2 +BattleFrontier_BattlePikeRoomNormal_Text_ImThePikeQueen: .string "I am LUCY…\n" .string "I am the law here…\l" .string "For I am the PIKE QUEEN…\p" @@ -789,23 +789,23 @@ BattleFrontier_BattlePikeRoomNormal_Text_ImThePikeQueen: @ 825DED2 .string "…I'm not one for idle chatter.\n" .string "Hurry. Come on…$" -BattleFrontier_BattlePikeRoomNormal_Text_HopeYouDidntUseUpLuck: @ 825DF71 +BattleFrontier_BattlePikeRoomNormal_Text_HopeYouDidntUseUpLuck: .string "Your luck…\n" .string "I hope you didn't use it all up here…$" -BattleFrontier_BattlePikeRoomNormal_Text_LucyShowMeFrontierPass: @ 825DFA2 +BattleFrontier_BattlePikeRoomNormal_Text_LucyShowMeFrontierPass: .string "LUCY: … … … … … …\n" .string "Show me your FRONTIER PASS…$" -BattleFrontier_BattlePikeRoomNormal_Text_ReceivedLuckSymbol: @ 825DFD0 +BattleFrontier_BattlePikeRoomNormal_Text_ReceivedLuckSymbol: .string "The Luck Symbol was embossed on\n" .string "the FRONTIER PASS!$" -BattleFrontier_BattlePikeRoomNormal_Text_AllThereIsDisappear: @ 825E003 +BattleFrontier_BattlePikeRoomNormal_Text_AllThereIsDisappear: .string "…That's all there is…\n" .string "Disappear already…$" -BattleFrontier_BattlePikeRoomNormal_Text_LucyYouAgain: @ 825E02C +BattleFrontier_BattlePikeRoomNormal_Text_LucyYouAgain: .string "LUCY: …You again…\p" .string "… … … … … …\p" .string "…I've trampled flowers and braved\n" @@ -815,51 +815,51 @@ BattleFrontier_BattlePikeRoomNormal_Text_LucyYouAgain: @ 825E02C .string "… … … … … …\n" .string "Fine… I'll do it…$" -BattleFrontier_BattlePikeRoomNormal_Text_NowComeOn: @ 825E0E8 +BattleFrontier_BattlePikeRoomNormal_Text_NowComeOn: .string "Now!\n" .string "Come on!$" -BattleFrontier_BattlePikeRoomNormal_Text_LucyFrontierPass: @ 825E0F6 +BattleFrontier_BattlePikeRoomNormal_Text_LucyFrontierPass: .string "LUCY: … … … … … …\p" .string "…FRONTIER PASS…$" -BattleFrontier_BattlePikeRoomNormal_Text_LuckSymbolTookGoldenShine: @ 825E118 +BattleFrontier_BattlePikeRoomNormal_Text_LuckSymbolTookGoldenShine: .string "The Luck Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattlePikeRoomNormal_Text_IWontForget: @ 825E140 +BattleFrontier_BattlePikeRoomNormal_Text_IWontForget: .string "…You, I won't forget…\n" .string "…Ever…$" -BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomNoHeal: @ 825E15D +BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomNoHeal: .string "I welcome you…\p" .string "Giggle…\n" .string "You seem to be bereft of luck…\p" .string "If only you hadn't chosen this room,\n" .string "your POKéMON could have been healed…$" -BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealOne: @ 825E1DD +BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealOne: .string "I welcome you…\p" .string "Since you have chosen this room, I will\n" .string "restore one POKéMON to full health…$" -BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealTwo: @ 825E238 +BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealTwo: .string "I welcome you…\p" .string "Since you have chosen this room, I will\n" .string "restore two POKéMON to full health…$" @ Unused -BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreAllMons: @ 825E293 +BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreAllMons: .string "I welcome you…\p" .string "Giggle…\n" .string "You should thank your lucky stars…\p" .string "Since you have chosen this room,\n" .string "all your POKéMON will be restored…$" -BattleFrontier_BattlePikeRoomNormal_Text_ShallFetchOurMaster: @ 825E311 +BattleFrontier_BattlePikeRoomNormal_Text_ShallFetchOurMaster: .string "I shall go fetch our master…$" -BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreTwoMons: @ 825E32E +BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreTwoMons: .string "Ah, you're a lucky one!\n" .string "I'm in good spirits now.\p" .string "I will restore two of your POKéMON\n" diff --git a/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc index b035d25d3b..ee9e548f6e 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc @@ -1,35 +1,35 @@ -BattleFrontier_BattlePikeRoomWildMons_MapScripts:: @ 825E41A +BattleFrontier_BattlePikeRoomWildMons_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoomWildMons_OnResume map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeRoomWildMons_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoomWildMons_OnWarp .byte 0 -BattleFrontier_BattlePikeRoomWildMons_OnFrame: @ 825E42A +BattleFrontier_BattlePikeRoomWildMons_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRoomWildMons_EventScript_SetInWildMonRoom map_script_2 VAR_TEMP_1, 1, BattleFrontier_BattlePikeRoomWildMons_EventScript_WarpToLobbyLost .2byte 0 -BattleFrontier_BattlePikeRoomWildMons_EventScript_SetInWildMonRoom:: @ 825E43C +BattleFrontier_BattlePikeRoomWildMons_EventScript_SetInWildMonRoom:: setvar VAR_TEMP_0, 1 pike_inwildmonroom end -BattleFrontier_BattlePikeRoomWildMons_EventScript_WarpToLobbyLost:: @ 825E44A +BattleFrontier_BattlePikeRoomWildMons_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end -BattleFrontier_BattlePikeRoomWildMons_OnWarp: @ 825E466 +BattleFrontier_BattlePikeRoomWildMons_OnWarp: map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomWildMons_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattlePikeRoomWildMons_EventScript_TurnPlayerNorth:: @ 825E470 +BattleFrontier_BattlePikeRoomWildMons_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeRoomWildMons_OnResume: @ 825E47A +BattleFrontier_BattlePikeRoomWildMons_OnResume: call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves frontier_get FRONTIER_DATA_BATTLE_OUTCOME compare VAR_RESULT, B_OUTCOME_LOST @@ -38,7 +38,7 @@ BattleFrontier_BattlePikeRoomWildMons_OnResume: @ 825E47A goto_if_eq BattleFrontier_BattlePikeRoomWildMons_EventScript_SetLost end -BattleFrontier_BattlePikeRoomWildMons_EventScript_SetLost:: @ 825E4A3 +BattleFrontier_BattlePikeRoomWildMons_EventScript_SetLost:: setvar VAR_TEMP_1, 1 end diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc index 46edebce68..37737554f5 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc @@ -1,12 +1,12 @@ .set LOCALID_HINT_GIVER, 2 -BattleFrontier_BattlePikeThreePathRoom_MapScripts:: @ 825C843 +BattleFrontier_BattlePikeThreePathRoom_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePikeRoom_OnResume map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePikeThreePathRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeThreePathRoom_OnWarp .byte 0 -BattleFrontier_BattlePikeThreePathRoom_OnFrame: @ 825C853 +BattleFrontier_BattlePikeThreePathRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_ResumeChallenge @@ -14,25 +14,25 @@ BattleFrontier_BattlePikeThreePathRoom_OnFrame: @ 825C853 map_script_2 VAR_TEMP_5, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_GivePikeQueenHint .2byte 0 -BattleFrontier_BattlePikeThreePathRoom_OnWarp: @ 825C87D +BattleFrontier_BattlePikeThreePathRoom_OnWarp: map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattlePikeThreePathRoom_EventScript_TurnPlayerNorth:: @ 825C887 +BattleFrontier_BattlePikeThreePathRoom_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeThreePathRoom_EventScript_GetChallengeStatus:: @ 825C891 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GetChallengeStatus:: frontier_getstatus end -BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby:: @ 825C89A +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby:: warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end -BattleFrontier_BattlePikeThreePathRoom_EventScript_ResumeChallenge:: @ 825C8A4 +BattleFrontier_BattlePikeThreePathRoom_EventScript_ResumeChallenge:: lockall message BattleFrontier_BattlePikeThreePathRoom_Text_AwaitingReturnSaveBeforeResume waitmessage @@ -50,7 +50,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_ResumeChallenge:: @ 825C8A4 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 99 end -BattleFrontier_BattlePikeThreePathRoom_EventScript_Attendant:: @ 825C908 +BattleFrontier_BattlePikeThreePathRoom_EventScript_Attendant:: frontier_get FRONTIER_DATA_BATTLE_NUM @ Room number switch VAR_RESULT case 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom1 @@ -62,56 +62,56 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_Attendant:: @ 825C908 case 13, BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom13 end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom1:: @ 825C968 +BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom1:: lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom1, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom3:: @ 825C978 +BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom3:: lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom3, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom5:: @ 825C988 +BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom5:: lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom5, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom7:: @ 825C998 +BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom7:: lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom7, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom9:: @ 825C9A8 +BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom9:: lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom9, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom11:: @ 825C9B8 +BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom11:: lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom11, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom13:: @ 825C9C8 +BattleFrontier_BattlePikeThreePathRoom_EventScript_AttendantRoom13:: lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom13, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge:: @ 825C9D8 +BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_ContinueWithChallenge, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattlePikeThreePathRoom_EventScript_AskSaveChallenge @@ -119,7 +119,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_AskContinueChallenge:: @ 825C release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_PauseChallenge:: @ 825C9FD +BattleFrontier_BattlePikeThreePathRoom_EventScript_PauseChallenge:: frontier_saveparty message BattleFrontier_BattlePikeThreePathRoom_Text_SavingYourData waitmessage @@ -131,7 +131,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_PauseChallenge:: @ 825C9FD frontier_reset end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AskSaveChallenge:: @ 825CA2A +BattleFrontier_BattlePikeThreePathRoom_EventScript_AskSaveChallenge:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SaveChallengeAndQuit, MSGBOX_YESNO switch VAR_RESULT case YES, BattleFrontier_BattlePikeThreePathRoom_EventScript_PauseChallenge @@ -140,27 +140,27 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_AskSaveChallenge:: @ 825CA2A release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AskRetireChallenge:: @ 825CA5A +BattleFrontier_BattlePikeThreePathRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 0, BattleFrontier_BattlePike_EventScript_Retire release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_SetHintRoom:: @ 825CA78 +BattleFrontier_BattlePikeThreePathRoom_EventScript_SetHintRoom:: pike_sethintroom compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_SetPikeQueenHint setvar VAR_TEMP_5, 255 end -BattleFrontier_BattlePikeThreePathRoom_EventScript_SetPikeQueenHint:: @ 825CA91 +BattleFrontier_BattlePikeThreePathRoom_EventScript_SetPikeQueenHint:: setvar VAR_TEMP_5, 1 end -BattleFrontier_BattlePikeThreePathRoom_EventScript_GivePikeQueenHint:: @ 825CA97 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GivePikeQueenHint:: applymovement LOCALID_HINT_GIVER, BattleFrontier_BattlePikeThreePathRoom_Movement_HintGiverApproachPlayer waitmovement 0 lockall @@ -171,7 +171,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_GivePikeQueenHint:: @ 825CA97 setvar VAR_TEMP_5, 255 end -BattleFrontier_BattlePikeThreePathRoom_EventScript_HintGiver:: @ 825CABB +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintGiver:: pike_gethint compare VAR_RESULT, PIKE_HINT_BRAIN goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint @@ -185,12 +185,12 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_HintGiver:: @ 825CABB release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_DeclineHint:: @ 825CB00 +BattleFrontier_BattlePikeThreePathRoom_EventScript_DeclineHint:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_ApologizeForImpertinence, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_AcceptHint:: @ 825CB0A +BattleFrontier_BattlePikeThreePathRoom_EventScript_AcceptHint:: pike_gethintroomid switch VAR_RESULT case PIKE_ROOM_LEFT, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveLeftRoomHint @@ -198,19 +198,19 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_AcceptHint:: @ 825CB0A case PIKE_ROOM_RIGHT, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveRightRoomHint end -BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveLeftRoomHint:: @ 825CB39 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveLeftRoomHint:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutLeftPath, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveCenterRoomHint:: @ 825CB46 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveCenterRoomHint:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutCenterPath, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveRightRoomHint:: @ 825CB53 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveRightRoomHint:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutRightPath, MSGBOX_DEFAULT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint -BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint:: @ 825CB60 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint:: pike_gethint switch VAR_RESULT case PIKE_HINT_NOSTALGIA, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintNostalgia @@ -219,34 +219,34 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveHint:: @ 825CB60 case PIKE_HINT_PEOPLE, BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPeople end -BattleFrontier_BattlePikeThreePathRoom_EventScript_HintNostalgia:: @ 825CB9A +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintNostalgia:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_WaveOfNostaliga, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_HintWhispering:: @ 825CBA4 +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintWhispering:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_HeardWhispering, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPokemon:: @ 825CBAE +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPokemon:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_AromaOfPokemon, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPeople:: @ 825CBB8 +BattleFrontier_BattlePikeThreePathRoom_EventScript_HintPeople:: msgbox BattleFrontier_BattlePikeThreePathRoom_Text_PresenceOfPeople, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint:: @ 825CBC2 +BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint:: lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_DreadfulPresence, MSGBOX_DEFAULT release end -BattleFrontier_BattlePikeThreePathRoom_Movement_HintGiverApproachPlayer: @ 825CBCE +BattleFrontier_BattlePikeThreePathRoom_Movement_HintGiverApproachPlayer: walk_left walk_left walk_down @@ -255,7 +255,7 @@ BattleFrontier_BattlePikeThreePathRoom_Movement_HintGiverApproachPlayer: @ 825CB walk_down step_end -BattleFrontier_BattlePikeThreePathRoom_Movement_HintGiverReturnToPos: @ 825CBD5 +BattleFrontier_BattlePikeThreePathRoom_Movement_HintGiverReturnToPos: walk_up walk_up walk_up @@ -265,107 +265,107 @@ BattleFrontier_BattlePikeThreePathRoom_Movement_HintGiverReturnToPos: @ 825CBD5 face_down step_end -BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom1: @ 825CBDD +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom1: .string "You are currently in\n" .string "the 1st room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom3: @ 825CC00 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom3: .string "You are currently in\n" .string "the 3rd room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom5: @ 825CC23 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom5: .string "You are currently in\n" .string "the 5th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom7: @ 825CC46 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom7: .string "You are currently in\n" .string "the 7th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom9: @ 825CC69 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom9: .string "You are currently in\n" .string "the 9th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom11: @ 825CC8C +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom11: .string "You are currently in\n" .string "the 11th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom13: @ 825CCB0 +BattleFrontier_BattlePikeThreePathRoom_Text_CurrentlyInRoom13: .string "You are currently in\n" .string "the 13th room…$" -BattleFrontier_BattlePikeThreePathRoom_Text_ContinueWithChallenge: @ 825CCD4 +BattleFrontier_BattlePikeThreePathRoom_Text_ContinueWithChallenge: .string "Will you continue with\n" .string "your challenge?$" -BattleFrontier_BattlePikeThreePathRoom_Text_SaveChallengeAndQuit: @ 825CCFB +BattleFrontier_BattlePikeThreePathRoom_Text_SaveChallengeAndQuit: .string "Would you like to save your challenge\n" .string "and quit the game for now?$" -BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge: @ 825CD3C +BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge: .string "Do you wish to retire from your\n" .string "Battle Choice challenge?$" -BattleFrontier_BattlePikeThreePathRoom_Text_AwaitingReturnSaveBeforeResume: @ 825CD75 +BattleFrontier_BattlePikeThreePathRoom_Text_AwaitingReturnSaveBeforeResume: .string "We've been awaiting your return…\p" .string "Before resuming your Battle Choice\n" .string "challenge, let me save the game…$" -BattleFrontier_BattlePikeThreePathRoom_Text_PleaseEnjoyChallenge: @ 825CDDA +BattleFrontier_BattlePikeThreePathRoom_Text_PleaseEnjoyChallenge: .string "Please do enjoy your Battle Choice\n" .string "challenge…$" -BattleFrontier_BattlePikeThreePathRoom_Text_SavingYourData: @ 825CE08 +BattleFrontier_BattlePikeThreePathRoom_Text_SavingYourData: .string "I am saving your data…\n" .string "A little time, please…$" -BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack: @ 825CE36 +BattleFrontier_BattlePike_Text_PathBlockedNoTurningBack: .string "The path is blocked!\n" .string "And there is no turning back…$" -BattleFrontier_BattlePikeThreePathRoom_Text_FindingItDifficultToChoose: @ 825CE69 +BattleFrontier_BattlePikeThreePathRoom_Text_FindingItDifficultToChoose: .string "I beg your pardon, but…\p" .string "Are you perhaps finding it difficult\n" .string "to choose your path?$" -BattleFrontier_BattlePikeThreePathRoom_Text_ApologizeForImpertinence: @ 825CEBB +BattleFrontier_BattlePikeThreePathRoom_Text_ApologizeForImpertinence: .string "I see…\n" .string "I apologize for my impertinence…$" -BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutRightPath: @ 825CEE3 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutRightPath: .string "Ah, let me see… There is something\n" .string "about the path on the right…$" -BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutCenterPath: @ 825CF23 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutCenterPath: .string "Ah, let me see… There is something\n" .string "about the path in the center…$" -BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutLeftPath: @ 825CF64 +BattleFrontier_BattlePikeThreePathRoom_Text_SomethingAboutLeftPath: .string "Ah, let me see… There is something\n" .string "about the path on the left…$" -BattleFrontier_BattlePikeThreePathRoom_Text_AromaOfPokemon: @ 825CFA3 +BattleFrontier_BattlePikeThreePathRoom_Text_AromaOfPokemon: .string "It seems to have the distinct aroma\n" .string "of POKéMON wafting around it…$" -BattleFrontier_BattlePikeThreePathRoom_Text_PresenceOfPeople: @ 825CFE5 +BattleFrontier_BattlePikeThreePathRoom_Text_PresenceOfPeople: .string "Is it… A TRAINER?\n" .string "I sense the presence of people…$" -BattleFrontier_BattlePikeThreePathRoom_Text_HeardWhispering: @ 825D017 +BattleFrontier_BattlePikeThreePathRoom_Text_HeardWhispering: .string "I seem to have heard something…\n" .string "It may have been whispering…$" -BattleFrontier_BattlePikeThreePathRoom_Text_WaveOfNostaliga: @ 825D054 +BattleFrontier_BattlePikeThreePathRoom_Text_WaveOfNostaliga: .string "For some odd reason, I felt a wave\n" .string "of nostalgia coming from it…$" -BattleFrontier_BattlePikeThreePathRoom_Text_TerrifyingEvent: @ 825D094 +BattleFrontier_BattlePikeThreePathRoom_Text_TerrifyingEvent: .string "I am sorry to say…\p" .string "A terrifying event, yes, a horrible one,\n" .string "is about to befall you…\p" .string "I urge you to pay the utmost care\n" .string "and prepare for the worst…$" -BattleFrontier_BattlePikeThreePathRoom_Text_DreadfulPresence: @ 825D125 +BattleFrontier_BattlePikeThreePathRoom_Text_DreadfulPresence: .string "From every path I sense a dreadful\n" .string "presence…$" diff --git a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc index 4f378c4e57..8993418ee8 100644 --- a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc @@ -1,16 +1,16 @@ -BattleFrontier_BattlePyramidFloor_MapScripts:: @ 8252A33 +BattleFrontier_BattlePyramidFloor_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePyramidFloor_OnResume map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePyramidFloor_OnFrame map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePyramidFloor_OnTransition .byte 0 -BattleFrontier_BattlePyramidFloor_OnFrame: @ 8252A43 +BattleFrontier_BattlePyramidFloor_OnFrame: map_script_2 VAR_TEMP_D, 1, BattleFrontier_BattlePyramidFloor_EventScript_UpdateLight map_script_2 VAR_TEMP_E, 0, BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic map_script_2 VAR_TEMP_F, 1, BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName .2byte 0 -BattleFrontier_BattlePyramidFloor_EventScript_UpdateLight:: @ 8252A5D +BattleFrontier_BattlePyramidFloor_EventScript_UpdateLight:: lockall @ pyramid_updatelight, cant use macro because it straddles the loop setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_UPDATE_LIGHT @@ -18,7 +18,7 @@ BattleFrontier_BattlePyramidFloor_EventScript_UpdateLight:: @ 8252A5D setvar VAR_0x8006, PYRAMID_LIGHT_INCR_RADIUS setvar VAR_0x8007, SE_SAVE setvar VAR_RESULT, 0 -BattleFrontier_BattlePyramidFloor_EventScript_UpdateLightLoop:: @ 8252A77 +BattleFrontier_BattlePyramidFloor_EventScript_UpdateLightLoop:: special CallBattlePyramidFunction delay 2 compare VAR_RESULT, 2 @@ -27,17 +27,17 @@ BattleFrontier_BattlePyramidFloor_EventScript_UpdateLightLoop:: @ 8252A77 releaseall end -BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName:: @ 8252A8F +BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName:: special ShowMapNamePopup setvar VAR_TEMP_F, 0 end -BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic:: @ 8252A98 - playbgm MUS_B_PYRAMID, 0 +BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic:: + playbgm MUS_B_PYRAMID, FALSE setvar VAR_TEMP_E, 1 end -BattleFrontier_BattlePyramidFloor_OnResume: @ 8252AA2 +BattleFrontier_BattlePyramidFloor_OnResume: pyramid_setfloorpal frontier_getstatus switch VAR_TEMP_0 @@ -59,14 +59,14 @@ BattleFrontier_BattlePyramidFloor_OnResume: @ 8252AA2 goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost frontier_isbattletype BATTLE_TYPE_TRAINER @ VAR_RESULT seems to be ignored here setvar VAR_TEMP_D, 1 -BattleFrontier_BattlePyramidFloor_EventScript_ResetParty:: @ 8252B39 +BattleFrontier_BattlePyramidFloor_EventScript_ResetParty:: pyramid_resetparty end -BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost:: @ 8252B42 +BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST pyramid_set PYRAMID_DATA_TRAINER_FLAGS, 255 -BattleFrontier_BattlePyramid_EventScript_WarpToLobby:: @ 8252B66 +BattleFrontier_BattlePyramid_EventScript_WarpToLobby:: pyramid_updatelight 0, PYRAMID_LIGHT_SET_RADIUS pyramid_clearhelditems special HealPlayerParty @@ -74,7 +74,7 @@ BattleFrontier_BattlePyramid_EventScript_WarpToLobby:: @ 8252B66 waitstate end -BattleFrontier_BattlePyramidFloor_EventScript_ReadyChallenge:: @ 8252B8D +BattleFrontier_BattlePyramidFloor_EventScript_ReadyChallenge:: pyramid_save CHALLENGE_STATUS_SAVING special SavePlayerParty frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 @@ -83,16 +83,16 @@ BattleFrontier_BattlePyramidFloor_EventScript_ReadyChallenge:: @ 8252B8D setvar VAR_TEMP_F, 1 end -BattleFrontier_BattlePyramidFloor_OnTransition: @ 8252BCA +BattleFrontier_BattlePyramidFloor_OnTransition: call BattleFrontier_BattlePyramidFloor_EventScript_SetLightRadius setvar VAR_TEMP_F, 1 end -BattleFrontier_BattlePyramidFloor_EventScript_SetLightRadius:: @ 8252BD5 +BattleFrontier_BattlePyramidFloor_EventScript_SetLightRadius:: pyramid_updatelight 32, PYRAMID_LIGHT_SET_RADIUS return -BattlePyramid_WarpToNextFloor:: @ 8252BE8 +BattlePyramid_WarpToNextFloor:: call BattleFrontier_EventScript_IncrementWinStreak frontier_get FRONTIER_DATA_BATTLE_NUM @ Floor number addvar VAR_RESULT, 1 @@ -106,13 +106,13 @@ BattlePyramid_WarpToNextFloor:: @ 8252BE8 waitstate end -BattlePyramid_WarpToTop:: @ 8252C45 +BattlePyramid_WarpToTop:: warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP, 255, 17, 17 waitstate end @ TRAINER_PHILLIP is used as a placeholder -BattlePyramid_TrainerBattle:: @ 8252C4F +BattlePyramid_TrainerBattle:: trainerbattle TRAINER_BATTLE_PYRAMID, TRAINER_PHILLIP, 0, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText pyramid_showhint waitmessage @@ -121,620 +121,620 @@ BattlePyramid_TrainerBattle:: @ 8252C4F releaseall end -BattlePyramid_FindItemBall:: @ 8252C6A +BattlePyramid_FindItemBall:: pyramid_setitem callstd STD_FIND_ITEM compare VAR_0x8007, 0 goto_if_eq BattlePyramid_FindItemBallEnd pyramid_hideitem -BattlePyramid_FindItemBallEnd:: @ 8252C87 +BattlePyramid_FindItemBallEnd:: end -BattlePyramid_Retire:: @ 8252C88 +BattlePyramid_Retire:: goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @ Also used by Trainer Hill -BattleFacility_TrainerBattle_PlaceholderText: @ 8252C8D +BattleFacility_TrainerBattle_PlaceholderText: .string "This is a sample message.$" -gText_BattlePyramidConfirmRest:: @ 8252CA7 +gText_BattlePyramidConfirmRest:: .string "Your BATTLE PYRAMID quest will be\n" .string "saved so that you may quit for now.\l" .string "Is that okay?$" -gText_BattlePyramidConfirmRetire:: @ 8252CFB +gText_BattlePyramidConfirmRetire:: .string "Are you sure you want to quit your\n" .string "PYRAMID quest?$" -BattlePyramid_Text_ExitHintUp1:: @ 8252D2D +BattlePyramid_Text_ExitHintUp1:: .string "This floor's exit is in\n" .string "that direction: {UP_ARROW}$" -BattlePyramid_Text_ExitHintLeft1:: @ 8252D57 +BattlePyramid_Text_ExitHintLeft1:: .string "This floor's exit is in\n" .string "that direction: {LEFT_ARROW}$" -BattlePyramid_Text_ExitHintRight1:: @ 8252D81 +BattlePyramid_Text_ExitHintRight1:: .string "This floor's exit is in\n" .string "that direction: {RIGHT_ARROW}$" -BattlePyramid_Text_ExitHintDown1:: @ 8252DAB +BattlePyramid_Text_ExitHintDown1:: .string "This floor's exit is in\n" .string "that direction: {DOWN_ARROW}$" -BattlePyramid_Text_ExitHintUp2:: @ 8252DD5 +BattlePyramid_Text_ExitHintUp2:: .string "The exit on this floor is in\n" .string "the {UP_ARROW} direction.$" -BattlePyramid_Text_ExitHintLeft2:: @ 8252E03 +BattlePyramid_Text_ExitHintLeft2:: .string "The exit on this floor is in\n" .string "the {LEFT_ARROW} direction.$" -BattlePyramid_Text_ExitHintRight2:: @ 8252E31 +BattlePyramid_Text_ExitHintRight2:: .string "The exit on this floor is in\n" .string "the {RIGHT_ARROW} direction.$" -BattlePyramid_Text_ExitHintDown2:: @ 8252E5F +BattlePyramid_Text_ExitHintDown2:: .string "The exit on this floor is in\n" .string "the {DOWN_ARROW} direction.$" -BattlePyramid_Text_ExitHintUp3:: @ 8252E8D +BattlePyramid_Text_ExitHintUp3:: .string "The exit is over\n" .string "that {UP_ARROW} way.$" -BattlePyramid_Text_ExitHintLeft3:: @ 8252EAA +BattlePyramid_Text_ExitHintLeft3:: .string "The exit is over\n" .string "that {LEFT_ARROW} way.$" -BattlePyramid_Text_ExitHintRight3:: @ 8252EC7 +BattlePyramid_Text_ExitHintRight3:: .string "The exit is over\n" .string "that {RIGHT_ARROW} way.$" -BattlePyramid_Text_ExitHintDown3:: @ 8252EE4 +BattlePyramid_Text_ExitHintDown3:: .string "The exit is over\n" .string "that {DOWN_ARROW} way.$" -BattlePyramid_Text_ExitHintUp4:: @ 8252F01 +BattlePyramid_Text_ExitHintUp4:: .string "On this floor, the exit is somewhere\n" .string "in the {UP_ARROW} direction.$" -BattlePyramid_Text_ExitHintLeft4:: @ 8252F3A +BattlePyramid_Text_ExitHintLeft4:: .string "On this floor, the exit is somewhere\n" .string "in the {LEFT_ARROW} direction.$" -BattlePyramid_Text_ExitHintRight4:: @ 8252F73 +BattlePyramid_Text_ExitHintRight4:: .string "On this floor, the exit is somewhere\n" .string "in the {RIGHT_ARROW} direction.$" -BattlePyramid_Text_ExitHintDown4:: @ 8252FAC +BattlePyramid_Text_ExitHintDown4:: .string "On this floor, the exit is somewhere\n" .string "in the {DOWN_ARROW} direction.$" -BattlePyramid_Text_ExitHintUp5:: @ 8252FE5 +BattlePyramid_Text_ExitHintUp5:: .string "The exit?\n" .string "It's that {UP_ARROW} way.$" -BattlePyramid_Text_ExitHintLeft5:: @ 8253000 +BattlePyramid_Text_ExitHintLeft5:: .string "The exit?\n" .string "It's that {LEFT_ARROW} way.$" -BattlePyramid_Text_ExitHintRight5:: @ 825301B +BattlePyramid_Text_ExitHintRight5:: .string "The exit?\n" .string "It's that {RIGHT_ARROW} way.$" -BattlePyramid_Text_ExitHintDown5:: @ 8253036 +BattlePyramid_Text_ExitHintDown5:: .string "The exit?\n" .string "It's that {DOWN_ARROW} way.$" -BattlePyramid_Text_ExitHintUp6:: @ 8253051 +BattlePyramid_Text_ExitHintUp6:: .string "The exit happens to be in\n" .string "the {UP_ARROW} direction.$" -BattlePyramid_Text_ExitHintLeft6:: @ 825307C +BattlePyramid_Text_ExitHintLeft6:: .string "The exit happens to be in\n" .string "the {LEFT_ARROW} direction.$" -BattlePyramid_Text_ExitHintRight6:: @ 82530A7 +BattlePyramid_Text_ExitHintRight6:: .string "The exit happens to be in\n" .string "the {RIGHT_ARROW} direction.$" -BattlePyramid_Text_ExitHintDown6:: @ 82530D2 +BattlePyramid_Text_ExitHintDown6:: .string "The exit happens to be in\n" .string "the {DOWN_ARROW} direction.$" -BattlePyramid_Text_EightItemsRemaining1:: @ 82530FD +BattlePyramid_Text_EightItemsRemaining1:: .string "Are you looking for items?\p" .string "There are eight items left to\n" .string "be found.$" -BattlePyramid_Text_SevenItemsRemaining1:: @ 8253140 +BattlePyramid_Text_SevenItemsRemaining1:: .string "Are you looking for items?\p" .string "There are seven items left to\n" .string "be found.$" -BattlePyramid_Text_SixItemsRemaining1:: @ 8253183 +BattlePyramid_Text_SixItemsRemaining1:: .string "Are you looking for items?\p" .string "There are six items left to\n" .string "be found.$" -BattlePyramid_Text_FiveItemsRemaining1:: @ 82531C4 +BattlePyramid_Text_FiveItemsRemaining1:: .string "Are you looking for items?\p" .string "There are five items left to\n" .string "be found.$" -BattlePyramid_Text_FourItemsRemaining1:: @ 8253206 +BattlePyramid_Text_FourItemsRemaining1:: .string "Are you looking for items?\p" .string "There are four items left to\n" .string "be found.$" -BattlePyramid_Text_ThreeItemsRemaining1:: @ 8253248 +BattlePyramid_Text_ThreeItemsRemaining1:: .string "Are you looking for items?\p" .string "There are three items left to\n" .string "be found.$" -BattlePyramid_Text_TwoItemsRemaining1:: @ 825328B +BattlePyramid_Text_TwoItemsRemaining1:: .string "Are you looking for items?\p" .string "There are two items left to\n" .string "be found.$" -BattlePyramid_Text_OneItemRemaining1:: @ 82532CC +BattlePyramid_Text_OneItemRemaining1:: .string "Are you looking for items?\p" .string "There is one item left to\n" .string "be found.$" -BattlePyramid_Text_ZeroItemsRemaining1:: @ 825330B +BattlePyramid_Text_ZeroItemsRemaining1:: .string "Are you looking for items?\p" .string "There isn't anything left to\n" .string "be found!$" -BattlePyramid_Text_EightItemsRemaining2:: @ 825334D +BattlePyramid_Text_EightItemsRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There are eight items\n" .string "lying around here.$" -BattlePyramid_Text_SevenItemsRemaining2:: @ 82533A6 +BattlePyramid_Text_SevenItemsRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There are seven items left\n" .string "lying around here.$" -BattlePyramid_Text_SixItemsRemaining2:: @ 8253404 +BattlePyramid_Text_SixItemsRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There are six items left\n" .string "lying around here.$" -BattlePyramid_Text_FiveItemsRemaining2:: @ 8253460 +BattlePyramid_Text_FiveItemsRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There are five items left\n" .string "lying around here.$" -BattlePyramid_Text_FourItemsRemaining2:: @ 82534BD +BattlePyramid_Text_FourItemsRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There are four items left\n" .string "lying around here.$" -BattlePyramid_Text_ThreeItemsRemaining2:: @ 825351A +BattlePyramid_Text_ThreeItemsRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There are three items left\n" .string "lying around here.$" -BattlePyramid_Text_TwoItemsRemaining2:: @ 8253578 +BattlePyramid_Text_TwoItemsRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There are two items left\n" .string "lying around here.$" -BattlePyramid_Text_OneItemRemaining2:: @ 82535D4 +BattlePyramid_Text_OneItemRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There is just one item\n" .string "lying around here.$" -BattlePyramid_Text_ZeroItemsRemaining2:: @ 825362E +BattlePyramid_Text_ZeroItemsRemaining2:: .string "Because you won, I'll tell you\n" .string "a little secret!\p" .string "There isn't anything left\n" .string "lying around here.$" -BattlePyramid_Text_EightItemsRemaining3:: @ 825368B +BattlePyramid_Text_EightItemsRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there are eight items left\n" .string "waiting to be found on this floor.$" -BattlePyramid_Text_SevenItemsRemaining3:: @ 82536F8 +BattlePyramid_Text_SevenItemsRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there are seven items left\n" .string "waiting to be found on this floor.$" -BattlePyramid_Text_SixItemsRemaining3:: @ 8253765 +BattlePyramid_Text_SixItemsRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there are six items left\n" .string "waiting to be found on this floor.$" -BattlePyramid_Text_FiveItemsRemaining3:: @ 82537D0 +BattlePyramid_Text_FiveItemsRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there are five items left\n" .string "waiting to be found on this floor.$" -BattlePyramid_Text_FourItemsRemaining3:: @ 825383C +BattlePyramid_Text_FourItemsRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there are four items left\n" .string "waiting to be found on this floor.$" -BattlePyramid_Text_ThreeItemsRemaining3:: @ 82538A8 +BattlePyramid_Text_ThreeItemsRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there are three items left\n" .string "waiting to be found on this floor.$" -BattlePyramid_Text_TwoItemsRemaining3:: @ 8253915 +BattlePyramid_Text_TwoItemsRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there are two items left\n" .string "waiting to be found on this floor.$" -BattlePyramid_Text_OneItemRemaining3:: @ 8253980 +BattlePyramid_Text_OneItemRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there's but one item left\n" .string "waiting to be found on this floor.$" -BattlePyramid_Text_ZeroItemsRemaining3:: @ 82539EC +BattlePyramid_Text_ZeroItemsRemaining3:: .string "How's your stock of items holding up?\p" .string "I reckon there are no more items\n" .string "waiting to be found on this floor.\l" .string "You take care now!$" -BattlePyramid_Text_EightItemsRemaining4:: @ 8253A69 +BattlePyramid_Text_EightItemsRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appear to be eight more\n" .string "items on the ground.$" -BattlePyramid_Text_SevenItemsRemaining4:: @ 8253AC4 +BattlePyramid_Text_SevenItemsRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appear to be seven more\n" .string "items on the ground.$" -BattlePyramid_Text_SixItemsRemaining4:: @ 8253B1F +BattlePyramid_Text_SixItemsRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appear to be six more\n" .string "items on the ground.$" -BattlePyramid_Text_FiveItemsRemaining4:: @ 8253B78 +BattlePyramid_Text_FiveItemsRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appear to be five more\n" .string "items on the ground.$" -BattlePyramid_Text_FourItemsRemaining4:: @ 8253BD2 +BattlePyramid_Text_FourItemsRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appear to be four more\n" .string "items on the ground.$" -BattlePyramid_Text_ThreeItemsRemaining4:: @ 8253C2C +BattlePyramid_Text_ThreeItemsRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appear to be three more\n" .string "items on the ground.$" -BattlePyramid_Text_TwoItemsRemaining4:: @ 8253C87 +BattlePyramid_Text_TwoItemsRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appear to be two more\n" .string "items on the ground.$" -BattlePyramid_Text_OneItemRemaining4:: @ 8253CE0 +BattlePyramid_Text_OneItemRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appears to be only one more\n" .string "item on the ground.$" -BattlePyramid_Text_ZeroItemsRemaining4:: @ 8253D3E +BattlePyramid_Text_ZeroItemsRemaining4:: .string "You're strong, so you've earned\n" .string "a hint!\p" .string "There appear to be no more\n" .string "items on the ground.$" -BattlePyramid_Text_EightItemsRemaining5:: @ 8253D96 +BattlePyramid_Text_EightItemsRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there are eight items…$" -BattlePyramid_Text_SevenItemsRemaining5:: @ 8253DD2 +BattlePyramid_Text_SevenItemsRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there are seven items…$" -BattlePyramid_Text_SixItemsRemaining5:: @ 8253E0E +BattlePyramid_Text_SixItemsRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there are six items…$" -BattlePyramid_Text_FiveItemsRemaining5:: @ 8253E48 +BattlePyramid_Text_FiveItemsRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there are five items…$" -BattlePyramid_Text_FourItemsRemaining5:: @ 8253E83 +BattlePyramid_Text_FourItemsRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there are four items…$" -BattlePyramid_Text_ThreeItemsRemaining5:: @ 8253EBE +BattlePyramid_Text_ThreeItemsRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there are three items…$" -BattlePyramid_Text_TwoItemsRemaining5:: @ 8253EFA +BattlePyramid_Text_TwoItemsRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there are two items…$" -BattlePyramid_Text_OneItemRemaining5:: @ 8253F34 +BattlePyramid_Text_OneItemRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there is one item…$" -BattlePyramid_Text_ZeroItemsRemaining5:: @ 8253F6C +BattlePyramid_Text_ZeroItemsRemaining5:: .string "On this floor of the PYRAMID,\n" .string "I hear there are no items…$" -BattlePyramid_Text_EightItemsRemaining6:: @ 8253FA5 +BattlePyramid_Text_EightItemsRemaining6:: .string "Have you collected any items?\p" .string "I believe there are eight more\n" .string "items on this floor.$" -BattlePyramid_Text_SevenItemsRemaining6:: @ 8253FF7 +BattlePyramid_Text_SevenItemsRemaining6:: .string "Have you collected any items?\p" .string "I believe there are seven more\n" .string "items on this floor.$" -BattlePyramid_Text_SixItemsRemaining6:: @ 8254049 +BattlePyramid_Text_SixItemsRemaining6:: .string "Have you collected any items?\p" .string "I believe there are six more\n" .string "items on this floor.$" -BattlePyramid_Text_FiveItemsRemaining6:: @ 8254099 +BattlePyramid_Text_FiveItemsRemaining6:: .string "Have you collected any items?\p" .string "I believe there are five more\n" .string "items on this floor.$" -BattlePyramid_Text_FourItemsRemaining6:: @ 82540EA +BattlePyramid_Text_FourItemsRemaining6:: .string "Have you collected any items?\p" .string "I believe there are four more\n" .string "items on this floor.$" -BattlePyramid_Text_ThreeItemsRemaining6:: @ 825413B +BattlePyramid_Text_ThreeItemsRemaining6:: .string "Have you collected any items?\p" .string "I believe there are three more\n" .string "items on this floor.$" -BattlePyramid_Text_TwoItemsRemaining6:: @ 825418D +BattlePyramid_Text_TwoItemsRemaining6:: .string "Have you collected any items?\p" .string "I believe there are two more\n" .string "items on this floor.$" -BattlePyramid_Text_OneItemRemaining6:: @ 82541DD +BattlePyramid_Text_OneItemRemaining6:: .string "Have you collected any items?\p" .string "I believe there is one more\n" .string "item on this floor.$" -BattlePyramid_Text_ZeroItemsRemaining6:: @ 825422B +BattlePyramid_Text_ZeroItemsRemaining6:: .string "Have you collected any items?\p" .string "I believe there are no more\n" .string "items on this floor.$" -BattlePyramid_Text_SevenTrainersRemaining1:: @ 825427A +BattlePyramid_Text_SevenTrainersRemaining1:: .string "You were really awesome!\p" .string "But there are still seven tough\n" .string "TRAINERS other than me!$" -BattlePyramid_Text_SixTrainersRemaining1:: @ 82542CB +BattlePyramid_Text_SixTrainersRemaining1:: .string "You were really awesome!\p" .string "But there are still six tough\n" .string "TRAINERS other than me!$" -BattlePyramid_Text_FiveTrainersRemaining1:: @ 825431A +BattlePyramid_Text_FiveTrainersRemaining1:: .string "You were really awesome!\p" .string "But there are still five tough\n" .string "TRAINERS other than me!$" -BattlePyramid_Text_FourTrainersRemaining1:: @ 825436A +BattlePyramid_Text_FourTrainersRemaining1:: .string "You were really awesome!\p" .string "But there are still four tough\n" .string "TRAINERS other than me!$" -BattlePyramid_Text_ThreeTrainersRemaining1:: @ 82543BA +BattlePyramid_Text_ThreeTrainersRemaining1:: .string "You were really awesome!\p" .string "But there are still three tough\n" .string "TRAINERS other than me!$" -BattlePyramid_Text_TwoTrainersRemaining1:: @ 825440B +BattlePyramid_Text_TwoTrainersRemaining1:: .string "You were really awesome!\p" .string "But there are still two tough\n" .string "TRAINERS other than me!$" -BattlePyramid_Text_OneTrainersRemaining1:: @ 825445A +BattlePyramid_Text_OneTrainersRemaining1:: .string "You were really awesome!\p" .string "But there's still one tough\n" .string "TRAINER other than me!$" -BattlePyramid_Text_ZeroTrainersRemaining1:: @ 82544A6 +BattlePyramid_Text_ZeroTrainersRemaining1:: .string "You were really awesome!\p" .string "There's no one left that\n" .string "can beat you!$" -BattlePyramid_Text_SevenTrainersRemaining2:: @ 82544E6 +BattlePyramid_Text_SevenTrainersRemaining2:: .string "This is so upsetting!\p" .string "But there are seven TRAINERS left!\n" .string "Someone will humble you!$" -BattlePyramid_Text_SixTrainersRemaining2:: @ 8254538 +BattlePyramid_Text_SixTrainersRemaining2:: .string "This is so upsetting!\p" .string "But there are six TRAINERS left!\n" .string "Someone will humble you!$" -BattlePyramid_Text_FiveTrainersRemaining2:: @ 8254588 +BattlePyramid_Text_FiveTrainersRemaining2:: .string "This is so upsetting!\p" .string "But there are five TRAINERS left!\n" .string "Someone will humble you!$" -BattlePyramid_Text_FourTrainersRemaining2:: @ 82545D9 +BattlePyramid_Text_FourTrainersRemaining2:: .string "This is so upsetting!\p" .string "But there are four TRAINERS left!\n" .string "Someone will humble you!$" -BattlePyramid_Text_ThreeTrainersRemaining2:: @ 825462A +BattlePyramid_Text_ThreeTrainersRemaining2:: .string "This is so upsetting!\p" .string "But there are three TRAINERS left!\n" .string "Someone will humble you!$" -BattlePyramid_Text_TwoTrainersRemaining2:: @ 825467C +BattlePyramid_Text_TwoTrainersRemaining2:: .string "This is so upsetting!\p" .string "But there are two TRAINERS left!\n" .string "Someone will humble you!$" -BattlePyramid_Text_OneTrainersRemaining2:: @ 82546CC +BattlePyramid_Text_OneTrainersRemaining2:: .string "This is so upsetting!\p" .string "But there's one TRAINER left!\n" .string "I'm sure you will be humbled!$" -BattlePyramid_Text_ZeroTrainersRemaining2:: @ 825471E +BattlePyramid_Text_ZeroTrainersRemaining2:: .string "This is so upsetting!\p" .string "But there are no more TRAINERS\n" .string "who can engage you!$" -BattlePyramid_Text_SevenTrainersRemaining3:: @ 8254767 +BattlePyramid_Text_SevenTrainersRemaining3:: .string "That's pretty impressive!\p" .string "But there are seven more TRAINERS\n" .string "on this floor. Can you beat them all?$" -BattlePyramid_Text_SixTrainersRemaining3:: @ 82547C9 +BattlePyramid_Text_SixTrainersRemaining3:: .string "That's pretty impressive!\p" .string "But there are six more TRAINERS\n" .string "on this floor. Can you beat them all?$" -BattlePyramid_Text_FiveTrainersRemaining3:: @ 8254829 +BattlePyramid_Text_FiveTrainersRemaining3:: .string "That's pretty impressive!\p" .string "But there are five more TRAINERS\n" .string "on this floor. Can you beat them all?$" -BattlePyramid_Text_FourTrainersRemaining3:: @ 825488A +BattlePyramid_Text_FourTrainersRemaining3:: .string "That's pretty impressive!\p" .string "But there are four more TRAINERS\n" .string "on this floor. Can you beat them all?$" -BattlePyramid_Text_ThreeTrainersRemaining3:: @ 82548EB +BattlePyramid_Text_ThreeTrainersRemaining3:: .string "That's pretty impressive!\p" .string "But there are three more TRAINERS\n" .string "on this floor. Can you beat them all?$" -BattlePyramid_Text_TwoTrainersRemaining3:: @ 825494D +BattlePyramid_Text_TwoTrainersRemaining3:: .string "That's pretty impressive!\p" .string "But there are two more TRAINERS\n" .string "on this floor. Can you beat them both?$" -BattlePyramid_Text_OneTrainersRemaining3:: @ 82549AE +BattlePyramid_Text_OneTrainersRemaining3:: .string "That's pretty impressive!\p" .string "But there's still one more TRAINER\n" .string "on this floor. Can you prevail?$" -BattlePyramid_Text_ZeroTrainersRemaining3:: @ 8254A0B +BattlePyramid_Text_ZeroTrainersRemaining3:: .string "That's pretty impressive!\p" .string "You've gone through all the TRAINERS\n" .string "on this floor.$" -BattlePyramid_Text_SevenTrainersRemaining4:: @ 8254A59 +BattlePyramid_Text_SevenTrainersRemaining4:: .string "Maybe you could sweep through\n" .string "the seven TRAINERS left on this floor.$" -BattlePyramid_Text_SixTrainersRemaining4:: @ 8254A9E +BattlePyramid_Text_SixTrainersRemaining4:: .string "Maybe you could sweep through\n" .string "the six TRAINERS left on this floor.$" -BattlePyramid_Text_FiveTrainersRemaining4:: @ 8254AE1 +BattlePyramid_Text_FiveTrainersRemaining4:: .string "Maybe you could sweep through\n" .string "the five TRAINERS left on this floor.$" -BattlePyramid_Text_FourTrainersRemaining4:: @ 8254B25 +BattlePyramid_Text_FourTrainersRemaining4:: .string "Maybe you could sweep through\n" .string "the four TRAINERS left on this floor.$" -BattlePyramid_Text_ThreeTrainersRemaining4:: @ 8254B69 +BattlePyramid_Text_ThreeTrainersRemaining4:: .string "Maybe you could sweep through\n" .string "the three TRAINERS left on this floor.$" -BattlePyramid_Text_TwoTrainersRemaining4:: @ 8254BAE +BattlePyramid_Text_TwoTrainersRemaining4:: .string "Maybe you could sweep through\n" .string "the two TRAINERS left on this floor.$" -BattlePyramid_Text_OneTrainersRemaining4:: @ 8254BF1 +BattlePyramid_Text_OneTrainersRemaining4:: .string "Maybe you could complete your sweep\n" .string "with the one TRAINER left on this floor.$" -BattlePyramid_Text_ZeroTrainersRemaining4:: @ 8254C3E +BattlePyramid_Text_ZeroTrainersRemaining4:: .string "There isn't a single person left who\n" .string "can defeat you now…$" -BattlePyramid_Text_SevenTrainersRemaining5:: @ 8254C77 +BattlePyramid_Text_SevenTrainersRemaining5:: .string "You may have what it takes to beat\n" .string "the seven expert TRAINERS who remain.$" -BattlePyramid_Text_SixTrainersRemaining5:: @ 8254CC0 +BattlePyramid_Text_SixTrainersRemaining5:: .string "You may have what it takes to beat\n" .string "the six expert TRAINERS who remain.$" -BattlePyramid_Text_FiveTrainersRemaining5:: @ 8254D07 +BattlePyramid_Text_FiveTrainersRemaining5:: .string "You may have what it takes to beat\n" .string "the five expert TRAINERS who remain.$" -BattlePyramid_Text_FourTrainersRemaining5:: @ 8254D4F +BattlePyramid_Text_FourTrainersRemaining5:: .string "You may have what it takes to beat\n" .string "the four expert TRAINERS who remain.$" -BattlePyramid_Text_ThreeTrainersRemaining5:: @ 8254D97 +BattlePyramid_Text_ThreeTrainersRemaining5:: .string "You may have what it takes to beat\n" .string "the three expert TRAINERS who remain.$" -BattlePyramid_Text_TwoTrainersRemaining5:: @ 8254DE0 +BattlePyramid_Text_TwoTrainersRemaining5:: .string "You may have what it takes to beat\n" .string "the two expert TRAINERS who remain.$" -BattlePyramid_Text_OneTrainersRemaining5:: @ 8254E27 +BattlePyramid_Text_OneTrainersRemaining5:: .string "You may have what it takes to beat\n" .string "the one expert TRAINER who remains.$" -BattlePyramid_Text_ZeroTrainersRemaining5:: @ 8254E6E +BattlePyramid_Text_ZeroTrainersRemaining5:: .string "Your skills are beyond reproach.\p" .string "There are no more TRAINERS here\n" .string "who have any chance of beating you.$" -BattlePyramid_Text_SevenTrainersRemaining6:: @ 8254ED3 +BattlePyramid_Text_SevenTrainersRemaining6:: .string "Can you keep winning against\n" .string "the seven remaining TRAINERS?$" -BattlePyramid_Text_SixTrainersRemaining6:: @ 8254F0E +BattlePyramid_Text_SixTrainersRemaining6:: .string "Can you keep winning against\n" .string "the six remaining TRAINERS?$" -BattlePyramid_Text_FiveTrainersRemaining6:: @ 8254F47 +BattlePyramid_Text_FiveTrainersRemaining6:: .string "Can you keep winning against\n" .string "the five remaining TRAINERS?$" -BattlePyramid_Text_FourTrainersRemaining6:: @ 8254F81 +BattlePyramid_Text_FourTrainersRemaining6:: .string "Can you keep winning against\n" .string "the four remaining TRAINERS?$" -BattlePyramid_Text_ThreeTrainersRemaining6:: @ 8254FBB +BattlePyramid_Text_ThreeTrainersRemaining6:: .string "Can you keep winning against\n" .string "the three remaining TRAINERS?$" -BattlePyramid_Text_TwoTrainersRemaining6:: @ 8254FF6 +BattlePyramid_Text_TwoTrainersRemaining6:: .string "Can you keep winning against\n" .string "the two remaining TRAINERS?$" -BattlePyramid_Text_OneTrainersRemaining6:: @ 825502F +BattlePyramid_Text_OneTrainersRemaining6:: .string "Can you keep winning against\n" .string "the last remaining TRAINER?$" -BattlePyramid_Text_ZeroTrainersRemaining6:: @ 8255068 +BattlePyramid_Text_ZeroTrainersRemaining6:: .string "There aren't any TRAINERS left that\n" .string "can take you on now…$" diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index fc33a8c911..c93deee3ec 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -1,22 +1,22 @@ .set LOCALID_ATTENDANT, 1 .set LOCALID_HINT_GIVER, 2 -BattleFrontier_BattlePyramidLobby_MapScripts:: @ 8250716 +BattleFrontier_BattlePyramidLobby_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePyramidLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeLobby_OnWarp .byte 0 @ Unused. Pyramid uses Dome's OnWarp (presumably by mistake). Their effects are identical -BattleFrontier_BattlePyramidLobby_OnWarp: @ 8250721 +BattleFrontier_BattlePyramidLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePyramidLobby_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattlePyramidLobby_EventScript_TurnPlayerNorth: @ 825072B +BattleFrontier_BattlePyramidLobby_EventScript_TurnPlayerNorth: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePyramidLobby_OnFrame: @ 8250735 +BattleFrontier_BattlePyramidLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePyramidLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidLobby_EventScript_ResumeChallenge @@ -24,11 +24,11 @@ BattleFrontier_BattlePyramidLobby_OnFrame: @ 8250735 map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattlePyramidLobby_EventScript_GetChallengeStatus:: @ 825075F +BattleFrontier_BattlePyramidLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving:: @ 8250768 +BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving:: lockall message BattleFrontier_BattlePyramidLobby_Text_DidntSaveBeforeQuittingTakeBag waitmessage @@ -42,7 +42,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving:: @ 8250768 releaseall end -BattleFrontier_BattlePyramidLobby_EventScript_WonChallenge:: @ 82507B1 +BattleFrontier_BattlePyramidLobby_EventScript_WonChallenge:: lockall frontier_isbrain compare VAR_RESULT, TRUE @@ -50,9 +50,9 @@ BattleFrontier_BattlePyramidLobby_EventScript_WonChallenge:: @ 82507B1 msgbox BattleFrontier_BattlePyramidLobby_Text_YouveConqueredPyramid, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints -BattleFrontier_BattlePyramidLobby_EventScript_DefeatedKing:: @ 82507D2 +BattleFrontier_BattlePyramidLobby_EventScript_DefeatedKing:: msgbox BattleFrontier_BattlePyramidLobby_Text_YouveDefeatedPyramidKing, MSGBOX_DEFAULT -BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints:: @ 82507DA +BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints:: special DoBattlePyramidMonsHaveHeldItem compare VAR_RESULT, TRUE call_if_eq BattleFrontier_BattlePyramidLobby_EventScript_StoreHeldItemsInPyramidBag @@ -80,7 +80,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints:: @ 82507DA releaseall end -BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge:: @ 8250852 +BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge:: frontier_checkairshow special LoadPlayerParty pyramid_clearhelditems @@ -102,30 +102,30 @@ BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge:: @ 8250852 releaseall end -BattleFrontier_BattlePyramidLobby_EventScript_ResumeChallenge:: @ 82508AC +BattleFrontier_BattlePyramidLobby_EventScript_ResumeChallenge:: goto BattleFrontier_BattlePyramidLobby_EventScript_EnterChallenge -BattleFrontier_BattlePyramidLobby_EventScript_Attendant:: @ 82508B1 +BattleFrontier_BattlePyramidLobby_EventScript_Attendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PYRAMID setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES special SavePlayerParty msgbox BattleFrontier_BattlePyramidLobby_Text_WelcomeToBattlePyramid, MSGBOX_DEFAULT -BattleFrontier_BattlePyramidLobby_EventScript_AskTakeChallenge:: @ 82508C8 +BattleFrontier_BattlePyramidLobby_EventScript_AskTakeChallenge:: message BattleFrontier_BattlePyramidLobby_Text_EmbarkOnChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge case 1, BattleFrontier_BattlePyramidLobby_EventScript_ExplainChallenge case 2, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge -BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge:: @ 8250904 +BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge:: message BattleFrontier_BattlePyramidLobby_Text_WhichLevelMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge @@ -148,7 +148,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge:: @ 8250904 case YES, BattleFrontier_BattlePyramidLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_LoadPartyAndCancelChallenge -BattleFrontier_BattlePyramidLobby_EventScript_SaveBeforeChallenge:: @ 82509A5 +BattleFrontier_BattlePyramidLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER pyramid_init @@ -164,7 +164,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_SaveBeforeChallenge:: @ 82509A5 setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_CancelChallengeSaveFailed -BattleFrontier_BattlePyramidLobby_EventScript_EnterChallenge:: @ 8250A21 +BattleFrontier_BattlePyramidLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePyramidLobby_Text_ShowYouIntoPyramid, MSGBOX_DEFAULT @@ -178,36 +178,36 @@ BattleFrontier_BattlePyramidLobby_EventScript_EnterChallenge:: @ 8250A21 waitstate end -BattleFrontier_BattlePyramidLobby_EventScript_ExplainChallenge:: @ 8250A68 +BattleFrontier_BattlePyramidLobby_EventScript_ExplainChallenge:: msgbox BattleFrontier_BattlePyramidLobby_Text_ExplainBattlePyramid, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_AskTakeChallenge -BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMons:: @ 8250A75 +BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMons:: switch VAR_RESULT case FRONTIER_LVL_50, BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMonsLv50 case FRONTIER_LVL_OPEN, BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMonsLvOpen -BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMonsLv50:: @ 8250A90 +BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMonsLv50:: msgbox BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_EndCancelChallenge -BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 8250A9D +BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMonsLvOpen:: msgbox BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_EndCancelChallenge -BattleFrontier_BattlePyramidLobby_EventScript_CancelChallengeSaveFailed:: @ 8250AAA +BattleFrontier_BattlePyramidLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge -BattleFrontier_BattlePyramidLobby_EventScript_LoadPartyAndCancelChallenge:: @ 8250AC1 +BattleFrontier_BattlePyramidLobby_EventScript_LoadPartyAndCancelChallenge:: special LoadPlayerParty -BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge:: @ 8250AC4 +BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge:: msgbox BattleFrontier_BattlePyramidLobby_Text_AwaitFutureChallenge, MSGBOX_DEFAULT -BattleFrontier_BattlePyramidLobby_EventScript_EndCancelChallenge:: @ 8250ACC +BattleFrontier_BattlePyramidLobby_EventScript_EndCancelChallenge:: release end -BattleFrontier_BattlePyramidLobby_EventScript_HintGiver:: @ 8250ACE +BattleFrontier_BattlePyramidLobby_EventScript_HintGiver:: lockall applymovement LOCALID_HINT_GIVER, Common_Movement_FacePlayer waitmovement 0 @@ -217,8 +217,8 @@ BattleFrontier_BattlePyramidLobby_EventScript_HintGiver:: @ 8250ACE releaseall end -BattleFrontier_BattlePyramidLobby_EventScript_GiveHint:: @ 8250AF0 - multichoice 17, 6, MULTI_LEVEL_MODE, 0 +BattleFrontier_BattlePyramidLobby_EventScript_GiveHint:: + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_50, BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLv50 case FRONTIER_LVL_OPEN, BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLvOpen @@ -227,10 +227,10 @@ BattleFrontier_BattlePyramidLobby_EventScript_GiveHint:: @ 8250AF0 return @ Shouldnt occur -BattleFrontier_BattlePyramidLobby_EventScript_NoHint:: @ 8250B27 +BattleFrontier_BattlePyramidLobby_EventScript_NoHint:: return -BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLv50:: @ 8250B28 +BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLv50:: msgbox BattleFrontier_BattlePyramidLobby_Text_Aah, MSGBOX_DEFAULT pyramid_get PYRAMID_DATA_WIN_STREAK_ACTIVE_50 compare VAR_RESULT, FALSE @@ -239,12 +239,12 @@ BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLv50:: @ 8250B28 goto BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment return -BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLv50Streak:: @ 8250B53 +BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLv50Streak:: pyramid_get PYRAMID_DATA_WIN_STREAK_50 goto BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment return -BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLvOpen:: @ 8250B66 +BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLvOpen:: msgbox BattleFrontier_BattlePyramidLobby_Text_Aah, MSGBOX_DEFAULT pyramid_get PYRAMID_DATA_WIN_STREAK_ACTIVE_OPEN compare VAR_RESULT, FALSE @@ -253,12 +253,12 @@ BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLvOpen:: @ 8250B66 goto BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment return -BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLvOpenStreak:: @ 8250B91 +BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLvOpenStreak:: pyramid_get PYRAMID_DATA_WIN_STREAK_OPEN goto BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment return -BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment:: @ 8250BA4 +BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment:: copyvar VAR_0x8004, VAR_RESULT special GetBattlePyramidHint switch VAR_RESULT @@ -284,87 +284,87 @@ BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment:: @ 8250BA4 case 19, BattleFrontier_BattlePyramidLobby_EventScript_HintNormal return -BattleFrontier_BattlePyramidLobby_EventScript_HintParalysis:: @ 8250C8E +BattleFrontier_BattlePyramidLobby_EventScript_HintParalysis:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintParalysis, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintPoison:: @ 8250C97 +BattleFrontier_BattlePyramidLobby_EventScript_HintPoison:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintPoison, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintBurn:: @ 8250CA0 +BattleFrontier_BattlePyramidLobby_EventScript_HintBurn:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintBurn, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintPPWaste:: @ 8250CA9 +BattleFrontier_BattlePyramidLobby_EventScript_HintPPWaste:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintPPWaste, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintLevitate:: @ 8250CB2 +BattleFrontier_BattlePyramidLobby_EventScript_HintLevitate:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintLevitate, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintTrapAbility:: @ 8250CBB +BattleFrontier_BattlePyramidLobby_EventScript_HintTrapAbility:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintTrapAbility, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintIce:: @ 8250CC4 +BattleFrontier_BattlePyramidLobby_EventScript_HintIce:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintIce, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintExplosion:: @ 8250CCD +BattleFrontier_BattlePyramidLobby_EventScript_HintExplosion:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintExplosion, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintPsychic:: @ 8250CD6 +BattleFrontier_BattlePyramidLobby_EventScript_HintPsychic:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintPsychic, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintRock:: @ 8250CDF +BattleFrontier_BattlePyramidLobby_EventScript_HintRock:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintRock, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintFighting:: @ 8250CE8 +BattleFrontier_BattlePyramidLobby_EventScript_HintFighting:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintFighting, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintWeather:: @ 8250CF1 +BattleFrontier_BattlePyramidLobby_EventScript_HintWeather:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintWeather, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintBug:: @ 8250CFA +BattleFrontier_BattlePyramidLobby_EventScript_HintBug:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintBug, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintDark:: @ 8250D03 +BattleFrontier_BattlePyramidLobby_EventScript_HintDark:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintDark, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintWater:: @ 8250D0C +BattleFrontier_BattlePyramidLobby_EventScript_HintWater:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintWater, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintGhost:: @ 8250D15 +BattleFrontier_BattlePyramidLobby_EventScript_HintGhost:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintGhost, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintSteel:: @ 8250D1E +BattleFrontier_BattlePyramidLobby_EventScript_HintSteel:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintSteel, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintFlyingDragon:: @ 8250D27 +BattleFrontier_BattlePyramidLobby_EventScript_HintFlyingDragon:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintFlyingDragon, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintStoneEvolve:: @ 8250D30 +BattleFrontier_BattlePyramidLobby_EventScript_HintStoneEvolve:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintStoneEvolve, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_HintNormal:: @ 8250D39 +BattleFrontier_BattlePyramidLobby_EventScript_HintNormal:: msgbox BattleFrontier_BattlePyramidLobby_Text_HintNormal, MSGBOX_DEFAULT return -BattleFrontier_BattlePyramidLobby_EventScript_ShowResults:: @ 8250D42 +BattleFrontier_BattlePyramidLobby_EventScript_ShowResults:: lockall frontier_results FRONTIER_FACILITY_PYRAMID waitbuttonpress @@ -372,7 +372,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_ShowResults:: @ 8250D42 releaseall end -BattleFrontier_BattlePyramidLobby_EventScript_WalkToPanelAndReceiveBag:: @ 8250D56 +BattleFrontier_BattlePyramidLobby_EventScript_WalkToPanelAndReceiveBag:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePyramidLobby_Movement_AttendantWalkToPanel applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePyramidLobby_Movement_PlayerWalkToPanel waitmovement 0 @@ -383,9 +383,9 @@ BattleFrontier_BattlePyramidLobby_EventScript_WalkToPanelAndReceiveBag:: @ 8250D msgbox BattleFrontier_BattlePyramidLobby_Text_PleaseTakePreviousBattleBag, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_ReceiveBattleBag -BattleFrontier_BattlePyramidLobby_EventScript_ReceiveNewBattleBag:: @ 8250D94 +BattleFrontier_BattlePyramidLobby_EventScript_ReceiveNewBattleBag:: msgbox BattleFrontier_BattlePyramidLobby_Text_PleaseTakeThisBattleBag, MSGBOX_DEFAULT -BattleFrontier_BattlePyramidLobby_EventScript_ReceiveBattleBag:: @ 8250D9C +BattleFrontier_BattlePyramidLobby_EventScript_ReceiveBattleBag:: message BattleFrontier_BattlePyramidLobby_Text_ExchangedBagForBattleBag waitmessage playse SE_EXP_MAX @@ -398,7 +398,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_ReceiveBattleBag:: @ 8250D9C waitmovement 0 return -BattleFrontier_BattlePyramidLobby_Movement_AttendantWalkToPanel: @ 8250DC4 +BattleFrontier_BattlePyramidLobby_Movement_AttendantWalkToPanel: walk_up walk_up walk_up @@ -409,7 +409,7 @@ BattleFrontier_BattlePyramidLobby_Movement_AttendantWalkToPanel: @ 8250DC4 face_down step_end -BattleFrontier_BattlePyramidLobby_Movement_PlayerWalkToPanel: @ 8250DCD +BattleFrontier_BattlePyramidLobby_Movement_PlayerWalkToPanel: walk_up walk_up walk_up @@ -419,17 +419,17 @@ BattleFrontier_BattlePyramidLobby_Movement_PlayerWalkToPanel: @ 8250DCD walk_up step_end -BattleFrontier_BattlePyramidLobby_Movement_AttendantMoveAside: @ 8250DD5 +BattleFrontier_BattlePyramidLobby_Movement_AttendantMoveAside: walk_right face_left step_end -BattleFrontier_BattlePyramidLobby_Movement_PlayerStepOnPanel: @ 8250DD8 +BattleFrontier_BattlePyramidLobby_Movement_PlayerStepOnPanel: walk_up walk_up step_end -BattleFrontier_BattlePyramidLobby_EventScript_StoreHeldItemsInPyramidBag:: @ 8250DDB +BattleFrontier_BattlePyramidLobby_EventScript_StoreHeldItemsInPyramidBag:: msgbox BattleFrontier_BattlePyramidLobby_Text_MonHoldingItemCannotTake, MSGBOX_DEFAULT setflag FLAG_STORING_ITEMS_IN_PYRAMID_BAG special TryStoreHeldItemsInPyramidBag @@ -440,13 +440,13 @@ BattleFrontier_BattlePyramidLobby_EventScript_StoreHeldItemsInPyramidBag:: @ 825 goto BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep end -BattleFrontier_BattlePyramidLobby_EventScript_HeldItemsStoredInPyramidBag:: @ 8250E00 +BattleFrontier_BattlePyramidLobby_EventScript_HeldItemsStoredInPyramidBag:: msgbox BattleFrontier_BattlePyramidLobby_Text_HeldItemsMovedToBag, MSGBOX_DEFAULT return @ When exiting Battle Pyramid with a full pyramid bag and held items the player must select to keep/toss party held items and make room for any kept items by tossing from the pyramid bag -BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep:: @ 8250E09 - multichoice 17, 6, MULTI_FRONTIER_ITEM_CHOOSE, 0 +BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep:: + multichoice 17, 6, MULTI_FRONTIER_ITEM_CHOOSE, FALSE switch VAR_RESULT case 0, BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromBag case 1, BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromParty @@ -454,7 +454,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep:: @ 8250E09 case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_ExitPickItems end -BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromBag:: @ 8250E40 +BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromBag:: special ChooseItemsToTossFromPyramidBag waitstate message BattleFrontier_BattlePyramidLobby_Text_PickItemsToKeep @@ -462,7 +462,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromBag:: @ 8250E40 goto BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep end -BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromParty:: @ 8250E50 +BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromParty:: special BattlePyramidChooseMonHeldItems waitstate message BattleFrontier_BattlePyramidLobby_Text_PickItemsToKeep @@ -470,37 +470,37 @@ BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromParty:: @ 8250E50 goto BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep end -BattleFrontier_BattlePyramidLobby_EventScript_ExitPickItems:: @ 8250E60 +BattleFrontier_BattlePyramidLobby_EventScript_ExitPickItems:: special DoBattlePyramidMonsHaveHeldItem compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_PartyStillHasHeldItems return -BattleFrontier_BattlePyramidLobby_EventScript_PartyStillHasHeldItems:: @ 8250E6F +BattleFrontier_BattlePyramidLobby_EventScript_PartyStillHasHeldItems:: msgbox BattleFrontier_BattlePyramidLobby_Text_LeastOneMonHoldingItem, MSGBOX_DEFAULT message BattleFrontier_BattlePyramidLobby_Text_PickItemsToKeep waitmessage goto BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep end -BattleFrontier_BattlePyramidLobby_EventScript_Woman:: @ 8250E83 +BattleFrontier_BattlePyramidLobby_EventScript_Woman:: msgbox BattleFrontier_BattlePyramidLobby_Text_TrainersNoticeRunning, MSGBOX_NPC end -BattleFrontier_BattlePyramidLobby_EventScript_FatMan:: @ 8250E8C +BattleFrontier_BattlePyramidLobby_EventScript_FatMan:: msgbox BattleFrontier_BattlePyramidLobby_Text_LostLotOfItems, MSGBOX_NPC end -BattleFrontier_BattlePyramidLobby_EventScript_RulesBoard:: @ 8250E95 +BattleFrontier_BattlePyramidLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattlePyramidLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard:: @ 8250EA4 +BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattlePyramidLobby_Text_ReadWhichHeading waitmessage - multichoice 15, 2, MULTI_BATTLE_PYRAMID_RULES, 0 + multichoice 15, 2, MULTI_BATTLE_PYRAMID_RULES, FALSE switch VAR_RESULT case 0, BattleFrontier_BattlePyramidLobby_EventScript_RulesPokemon case 1, BattleFrontier_BattlePyramidLobby_EventScript_RulesTrainers @@ -510,45 +510,45 @@ BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard:: @ 8250EA4 case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_ExitRules end -BattleFrontier_BattlePyramidLobby_EventScript_RulesPokemon:: @ 8250EF7 +BattleFrontier_BattlePyramidLobby_EventScript_RulesPokemon:: msgbox BattleFrontier_BattlePyramidLobby_Text_ExplainMonRules, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePyramidLobby_EventScript_RulesTrainers:: @ 8250F05 +BattleFrontier_BattlePyramidLobby_EventScript_RulesTrainers:: msgbox BattleFrontier_BattlePyramidLobby_Text_ExplainTrainerRules, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePyramidLobby_EventScript_RulesMaze:: @ 8250F13 +BattleFrontier_BattlePyramidLobby_EventScript_RulesMaze:: msgbox BattleFrontier_BattlePyramidLobby_Text_ExplainMazeRules, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePyramidLobby_EventScript_RulesBag:: @ 8250F21 +BattleFrontier_BattlePyramidLobby_EventScript_RulesBag:: msgbox BattleFrontier_BattlePyramidLobby_Text_ExplainBagRules, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattlePyramidLobby_EventScript_ExitRules:: @ 8250F2F +BattleFrontier_BattlePyramidLobby_EventScript_ExitRules:: releaseall end -BattleFrontier_BattlePyramidLobby_Text_WelcomeToBattlePyramid: @ 8250F31 +BattleFrontier_BattlePyramidLobby_Text_WelcomeToBattlePyramid: .string "Where the courage of TRAINERS\n" .string "is put to the test!\p" .string "Welcome to the BATTLE PYRAMID!\p" .string "I am your guide to\n" .string "the Battle Quest.$" -BattleFrontier_BattlePyramidLobby_Text_EmbarkOnChallenge: @ 8250FA7 +BattleFrontier_BattlePyramidLobby_Text_EmbarkOnChallenge: .string "Have you the courage to embark on\n" .string "the Battle Quest challenge?$" -BattleFrontier_BattlePyramidLobby_Text_AwaitFutureChallenge: @ 8250FE5 +BattleFrontier_BattlePyramidLobby_Text_AwaitFutureChallenge: .string "We await your challenge in the future!$" -BattleFrontier_BattlePyramidLobby_Text_ExplainBattlePyramid: @ 825100C +BattleFrontier_BattlePyramidLobby_Text_ExplainBattlePyramid: .string "The Battle Quest is a battling\n" .string "event in which you must explore\l" .string "the PYRAMID and try to reach the top.\p" @@ -567,16 +567,16 @@ BattleFrontier_BattlePyramidLobby_Text_ExplainBattlePyramid: @ 825100C .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattlePyramidLobby_Text_WhichLevelMode: @ 8251248 +BattleFrontier_BattlePyramidLobby_Text_WhichLevelMode: .string "The PYRAMID offers two courses,\n" .string "Level 50 and Open Level.\l" .string "Which will you enter?$" -BattleFrontier_BattlePyramidLobby_Text_SelectThreeMons: @ 8251297 +BattleFrontier_BattlePyramidLobby_Text_SelectThreeMons: .string "Very good. Now, please select the three\n" .string "POKéMON you wish to accompany you.$" -BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLvOpen: @ 82512E2 +BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLvOpen: .string "A slight problem, adventurer!\p" .string "You seem to not have the three\n" .string "POKéMON qualified for the challenge.\p" @@ -586,7 +586,7 @@ BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLvOpen: @ 82512E2 .string "When you are ready, please have\n" .string "a word with me.$" -BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLv50: @ 82513C1 +BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLv50: .string "A slight problem, adventurer!\p" .string "You seem to not have the three\n" .string "POKéMON qualified for the challenge.\p" @@ -598,38 +598,38 @@ BattleFrontier_BattlePyramidLobby_Text_NotEnoughValidMonsLv50: @ 82513C1 .string "When you are ready, please have\n" .string "a word with me.$" -BattleFrontier_BattlePyramidLobby_Text_OkayToSaveBeforeChallenge: @ 82514E6 +BattleFrontier_BattlePyramidLobby_Text_OkayToSaveBeforeChallenge: .string "Before you enter the BATTLE PYRAMID,\n" .string "the game must be saved. Is that okay?$" -BattleFrontier_BattlePyramidLobby_Text_ShowYouIntoPyramid: @ 8251531 +BattleFrontier_BattlePyramidLobby_Text_ShowYouIntoPyramid: .string "Very good. I will now show you into\n" .string "the BATTLE PYRAMID.$" -BattleFrontier_BattlePyramidLobby_Text_WeWillHoldBagForSafekeeping: @ 8251569 +BattleFrontier_BattlePyramidLobby_Text_WeWillHoldBagForSafekeeping: .string "We will hold your BAG for safekeeping,\n" .string "{PLAYER}, while you are exploring.$" -BattleFrontier_BattlePyramidLobby_Text_PleaseTakePreviousBattleBag: @ 82515AD +BattleFrontier_BattlePyramidLobby_Text_PleaseTakePreviousBattleBag: .string "In exchange, please take this BATTLE\n" .string "BAG, the one you used previously.$" -BattleFrontier_BattlePyramidLobby_Text_PleaseTakeThisBattleBag: @ 82515F4 +BattleFrontier_BattlePyramidLobby_Text_PleaseTakeThisBattleBag: .string "In exchange, please take this\n" .string "BATTLE BAG.$" -BattleFrontier_BattlePyramidLobby_Text_ExchangedBagForBattleBag: @ 825161E +BattleFrontier_BattlePyramidLobby_Text_ExchangedBagForBattleBag: .string "{PLAYER} exchanged the BAG for\n" .string "the BATTLE BAG.$" -BattleFrontier_BattlePyramidLobby_Text_StepOnFloorPanel: @ 8251647 +BattleFrontier_BattlePyramidLobby_Text_StepOnFloorPanel: .string "When you step on this floor panel,\n" .string "you will be transported to a higher\l" .string "floor in the PYRAMID.\p" .string "I hope for your sake that your\n" .string "quest goes safely!$" -BattleFrontier_BattlePyramidLobby_Text_DidntSaveBeforeQuittingTakeBag: @ 82516D6 +BattleFrontier_BattlePyramidLobby_Text_DidntSaveBeforeQuittingTakeBag: .string "A major problem, explorer!\p" .string "You did not save before ending\n" .string "your challenge the last time.\p" @@ -639,112 +639,112 @@ BattleFrontier_BattlePyramidLobby_Text_DidntSaveBeforeQuittingTakeBag: @ 82516D6 .string "for you.\p" .string "{PLAYER} got the BAG back.$" -BattleFrontier_BattlePyramidLobby_Text_YouveConqueredPyramid: @ 82517B5 +BattleFrontier_BattlePyramidLobby_Text_YouveConqueredPyramid: .string "Excellent to see you back!\p" .string "You've conquered the PYRAMID!\n" .string "How splendid!$" -BattleFrontier_BattlePyramidLobby_Text_MonHoldingItemCannotTake: @ 82517FC +BattleFrontier_BattlePyramidLobby_Text_MonHoldingItemCannotTake: .string "Ah, a slight problem.\p" .string "At least one POKéMON is holding\n" .string "an item.\p" .string "I'm sorry to say, items obtained in\n" .string "the PYRAMID cannot be taken away.$" -BattleFrontier_BattlePyramidLobby_Text_HeldItemsMovedToBag: @ 8251881 +BattleFrontier_BattlePyramidLobby_Text_HeldItemsMovedToBag: .string "All items held by your POKéMON will be\n" .string "moved to your BATTLE BAG, {PLAYER}.$" -BattleFrontier_BattlePyramidLobby_Text_BagCannotHoldPickItemsToKeep: @ 82518C6 +BattleFrontier_BattlePyramidLobby_Text_BagCannotHoldPickItemsToKeep: .string "The BATTLE BAG cannot hold all your\n" .string "items, I'm sorry to say.\p" .string "Please pick the items you'll keep in the\n" .string "BATTLE BAG, and with your POKéMON.$" -BattleFrontier_BattlePyramidLobby_Text_LeastOneMonHoldingItem: @ 825194F +BattleFrontier_BattlePyramidLobby_Text_LeastOneMonHoldingItem: .string "At least one POKéMON is still\n" .string "holding an item.$" -BattleFrontier_BattlePyramidLobby_Text_PickItemsToKeep: @ 825197E +BattleFrontier_BattlePyramidLobby_Text_PickItemsToKeep: .string "Please pick the items you'll keep in the\n" .string "BATTLE BAG, and with your POKéMON.$" @ Unused -BattleFrontier_BattlePyramidLobby_Text_ReturnedEverythingMonsHeld: @ 82519CA +BattleFrontier_BattlePyramidLobby_Text_ReturnedEverythingMonsHeld: .string "{PLAYER} returned everything that\n" .string "the POKéMON held.$" -BattleFrontier_BattlePyramidLobby_Text_UsedBattleBagWillBeKept: @ 82519F8 +BattleFrontier_BattlePyramidLobby_Text_UsedBattleBagWillBeKept: .string "The BATTLE BAG you used will be kept\n" .string "in readiness for your next challenge.\p" .string "{PLAYER} turned the BATTLE BAG over\n" .string "for the BAG's return.$" -BattleFrontier_BattlePyramidLobby_Text_RecordResultsWait: @ 8251A77 +BattleFrontier_BattlePyramidLobby_Text_RecordResultsWait: .string "I must record your results.\n" .string "Please wait.$" @ Unused -BattleFrontier_BattlePyramidLobby_Text_ForConqueringPyramidTakeThis: @ 8251AA0 +BattleFrontier_BattlePyramidLobby_Text_ForConqueringPyramidTakeThis: .string "As a memento for conquering\n" .string "the BATTLE PYRAMID, please take this.$" @ Unused -BattleFrontier_BattlePyramidLobby_Text_ReceivedPrizeItem: @ 8251AE2 +BattleFrontier_BattlePyramidLobby_Text_ReceivedPrizeItem: .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" @ Unused -BattleFrontier_BattlePyramidLobby_Text_BagIsFull: @ 8251AFC +BattleFrontier_BattlePyramidLobby_Text_BagIsFull: .string "…Ah…\n" .string "Your BAG appears to be filled.\p" .string "Please return after you've organized\n" .string "your BAG's contents.$" -BattleFrontier_BattlePyramidLobby_Text_DisappointingHereIsBag: @ 8251B5A +BattleFrontier_BattlePyramidLobby_Text_DisappointingHereIsBag: .string "How disappointing for you…\p" .string "Here is the BAG we've been holding\n" .string "for you.\p" .string "{PLAYER} got the BAG back.$" -BattleFrontier_BattlePyramidLobby_Text_LookForwardToNextChallenge: @ 8251BB6 +BattleFrontier_BattlePyramidLobby_Text_LookForwardToNextChallenge: .string "We look forward to your\n" .string "next challenge!$" @ Unused -BattleFrontier_BattlePyramidLobby_Text_HereIsPrize: @ 8251BDE +BattleFrontier_BattlePyramidLobby_Text_HereIsPrize: .string "We have been looking forward to\n" .string "your arrival!\p" .string "Here is your prize for conquering\n" .string "the PYRAMID.$" -BattleFrontier_BattlePyramidLobby_Text_TellYouWhatMisfortunesAwait: @ 8251C3B +BattleFrontier_BattlePyramidLobby_Text_TellYouWhatMisfortunesAwait: .string "Welcome…\p" .string "I shall be pleased to tell you what\n" .string "misfortunes await in the PYRAMID…$" -BattleFrontier_BattlePyramidLobby_Text_Aah: @ 8251C8A +BattleFrontier_BattlePyramidLobby_Text_Aah: .string "… … … … … …\n" .string "… … … … … …\p" .string "… … … … … …\n" .string "Aah!$" -BattleFrontier_BattlePyramidLobby_Text_HintParalysis: @ 8251CB3 +BattleFrontier_BattlePyramidLobby_Text_HintParalysis: .string "I see a shower of sparks…\p" .string "…And in it, I see your POKéMON\n" .string "struggling with paralysis…$" -BattleFrontier_BattlePyramidLobby_Text_HintPoison: @ 8251D07 +BattleFrontier_BattlePyramidLobby_Text_HintPoison: .string "I see poison…\p" .string "…And, I see your POKéMON suffering\n" .string "from the effects of poison…$" -BattleFrontier_BattlePyramidLobby_Text_HintBurn: @ 8251D54 +BattleFrontier_BattlePyramidLobby_Text_HintBurn: .string "I see bright red flames…\p" .string "…And, I see your POKéMON suffering\n" .string "from burns…$" -BattleFrontier_BattlePyramidLobby_Text_HintPPWaste: @ 8251D9C +BattleFrontier_BattlePyramidLobby_Text_HintPPWaste: .string "I sense the tremendous pressure of\n" .string "unrequited anger…\p" .string "It is a curse…\p" @@ -752,44 +752,44 @@ BattleFrontier_BattlePyramidLobby_Text_HintPPWaste: @ 8251D9C .string "Power Points and having no recourse\l" .string "but to use STRUGGLE…$" -BattleFrontier_BattlePyramidLobby_Text_HintLevitate: @ 8251E3D +BattleFrontier_BattlePyramidLobby_Text_HintLevitate: .string "I see POKéMON loftily airborne…\p" .string "…And, I see your POKéMON frustrated\n" .string "by powerless GROUND-type moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintTrapAbility: @ 8251EA1 +BattleFrontier_BattlePyramidLobby_Text_HintTrapAbility: .string "I sense terrific energy rising from\n" .string "the ground below…\p" .string "…And, I see your POKéMON unable to\n" .string "escape the power's clutches…$" -BattleFrontier_BattlePyramidLobby_Text_HintIce: @ 8251F17 +BattleFrontier_BattlePyramidLobby_Text_HintIce: .string "I see ICE-type POKéMON…\p" .string "…And, I see your POKéMON fighting\n" .string "the freezing effects of ice…$" -BattleFrontier_BattlePyramidLobby_Text_HintExplosion: @ 8251F6E +BattleFrontier_BattlePyramidLobby_Text_HintExplosion: .string "I see a flurry of moves that imperil\n" .string "the user…\p" .string "…And, I see your POKéMON falling\n" .string "to them…$" -BattleFrontier_BattlePyramidLobby_Text_HintPsychic: @ 8251FC7 +BattleFrontier_BattlePyramidLobby_Text_HintPsychic: .string "I see PSYCHIC-type POKéMON…\p" .string "…And, I see your POKéMON in torment\n" .string "from PSYCHIC moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintRock: @ 825201B +BattleFrontier_BattlePyramidLobby_Text_HintRock: .string "I see ROCK-type POKéMON…\p" .string "…And, I see your POKéMON suffering\n" .string "from ROCK moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintFighting: @ 8252068 +BattleFrontier_BattlePyramidLobby_Text_HintFighting: .string "I see FIGHTING-type POKéMON…\p" .string "…And, I see your POKéMON pummeled\n" .string "by FIGHTING moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintWeather: @ 82520BA +BattleFrontier_BattlePyramidLobby_Text_HintWeather: .string "RAIN DANCE… SUNNY DAY…\n" .string "SANDSTORM… HAIL…\p" .string "I see POKéMON that become stronger\n" @@ -797,37 +797,37 @@ BattleFrontier_BattlePyramidLobby_Text_HintWeather: @ 82520BA .string "…And, I see your POKéMON confounded\n" .string "by different types of moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintBug: @ 8252158 +BattleFrontier_BattlePyramidLobby_Text_HintBug: .string "I see BUG-type POKéMON…\p" .string "…And, I see your POKéMON suffering\n" .string "from different kinds of attacks…$" -BattleFrontier_BattlePyramidLobby_Text_HintDark: @ 82521B4 +BattleFrontier_BattlePyramidLobby_Text_HintDark: .string "I see DARK-type POKéMON…\p" .string "…And, I see your POKéMON suffering\n" .string "from DARK-type moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintWater: @ 8252206 +BattleFrontier_BattlePyramidLobby_Text_HintWater: .string "I see WATER-type POKéMON…\p" .string "…And, I see your POKéMON suffering\n" .string "from WATER-type moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintGhost: @ 825225A +BattleFrontier_BattlePyramidLobby_Text_HintGhost: .string "I see GHOST-type POKéMON…\p" .string "…And, I see your POKéMON suffering\n" .string "from GHOST-type moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintSteel: @ 82522AE +BattleFrontier_BattlePyramidLobby_Text_HintSteel: .string "I see STEEL-type POKéMON…\p" .string "…And, I see your POKéMON suffering\n" .string "from enormously powerful moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintFlyingDragon: @ 825230B +BattleFrontier_BattlePyramidLobby_Text_HintFlyingDragon: .string "I see flying POKéMON…\p" .string "…And, I see your POKéMON suffering\n" .string "from enormously powerful moves…$" -BattleFrontier_BattlePyramidLobby_Text_HintStoneEvolve: @ 8252364 +BattleFrontier_BattlePyramidLobby_Text_HintStoneEvolve: .string "I see those that have evolved from\n" .string "the power of stones…\p" .string "I also sense fire, water,\n" @@ -835,18 +835,18 @@ BattleFrontier_BattlePyramidLobby_Text_HintStoneEvolve: @ 8252364 .string "…And, I see your POKéMON suffering\n" .string "from those three powers…$" -BattleFrontier_BattlePyramidLobby_Text_HintNormal: @ 8252403 +BattleFrontier_BattlePyramidLobby_Text_HintNormal: .string "I see NORMAL-type POKéMON…\p" .string "…And, I see your POKéMON suffering\n" .string "from enormously powerful moves…$" -BattleFrontier_BattlePyramidLobby_Text_BelieveMyFortunesOrNot: @ 8252461 +BattleFrontier_BattlePyramidLobby_Text_BelieveMyFortunesOrNot: .string "Whether you believe my fortunes\n" .string "or not, the choice is yours…\p" .string "The future can be changed anytime…\n" .string "I wish you safe passage…$" -BattleFrontier_BattlePyramidLobby_Text_TrainersNoticeRunning: @ 82524DA +BattleFrontier_BattlePyramidLobby_Text_TrainersNoticeRunning: .string "Did you know?\p" .string "If you run fast, TRAINERS may notice\n" .string "and come after you for a battle.\p" @@ -854,37 +854,37 @@ BattleFrontier_BattlePyramidLobby_Text_TrainersNoticeRunning: @ 82524DA .string "don't catch their eyes, but sneak\l" .string "cautiously and quietly past them.$" -BattleFrontier_BattlePyramidLobby_Text_LostLotOfItems: @ 8252595 +BattleFrontier_BattlePyramidLobby_Text_LostLotOfItems: .string "Awaaaaaaarrrrgh!\p" .string "I had a whole lot of items, but I lost\n" .string "them all when I lost!\p" .string "Awaaaaaaarrrrgh!$" -BattleFrontier_BattlePyramidLobby_Text_YouveDefeatedPyramidKing: @ 82525F4 +BattleFrontier_BattlePyramidLobby_Text_YouveDefeatedPyramidKing: .string "Welcome back!\n" .string "You've done the unthinkable!\p" .string "You've defeated the PYRAMID KING\n" .string "and conquered the BATTLE PYRAMID!$" -BattleFrontier_BattlePyramidLobby_Text_GiveYouTheseBattlePoints: @ 8252662 +BattleFrontier_BattlePyramidLobby_Text_GiveYouTheseBattlePoints: .string "Young explorer!\n" .string "In commendation of your courage,\l" .string "we give you these Battle Point(s)!$" -BattleFrontier_BattlePyramidLobby_Text_RulesAreListed: @ 82526B6 +BattleFrontier_BattlePyramidLobby_Text_RulesAreListed: .string "The Battle Quest rules are listed.$" -BattleFrontier_BattlePyramidLobby_Text_ReadWhichHeading: @ 82526D9 +BattleFrontier_BattlePyramidLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" -BattleFrontier_BattlePyramidLobby_Text_ExplainMonRules: @ 82526FC +BattleFrontier_BattlePyramidLobby_Text_ExplainMonRules: .string "When the PYRAMID is conquered,\n" .string "the wild POKéMON that appear in it\l" .string "are replaced by different kinds.\p" .string "Explore, observe, and learn what kinds\n" .string "of wild POKéMON you may encounter.$" -BattleFrontier_BattlePyramidLobby_Text_ExplainTrainerRules: @ 82527A9 +BattleFrontier_BattlePyramidLobby_Text_ExplainTrainerRules: .string "TRAINERS are lying in wait for you\n" .string "inside the PYRAMID.\p" .string "On each floor, there are up to\n" @@ -892,7 +892,7 @@ BattleFrontier_BattlePyramidLobby_Text_ExplainTrainerRules: @ 82527A9 .string "When you defeat a TRAINER, you will\n" .string "get a helpful hint for your adventure.$" -BattleFrontier_BattlePyramidLobby_Text_ExplainMazeRules: @ 825285A +BattleFrontier_BattlePyramidLobby_Text_ExplainMazeRules: .string "The mazes in the PYRAMID rearrange\n" .string "themselves every time you enter it.\p" .string "The mazes are poorly lit.\n" @@ -900,7 +900,7 @@ BattleFrontier_BattlePyramidLobby_Text_ExplainMazeRules: @ 825285A .string "The light grows brighter whenever you\n" .string "defeat a wild POKéMON or a TRAINER.$" -BattleFrontier_BattlePyramidLobby_Text_ExplainBagRules: @ 8252924 +BattleFrontier_BattlePyramidLobby_Text_ExplainBagRules: .string "The BATTLE BAG serves as your BAG\n" .string "while in the PYRAMID.\p" .string "There are two separate BATTLE BAGS--\n" diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc index 076fae158e..1f031ea40f 100644 --- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc @@ -1,37 +1,37 @@ .set LOCALID_ATTENDANT, 1 .set LOCALID_BRANDON, 2 -BattleFrontier_BattlePyramidTop_MapScripts:: @ 82550A1 +BattleFrontier_BattlePyramidTop_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattlePyramidTop_OnResume map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattlePyramidTop_OnFrame map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePyramidTop_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePyramidTop_OnWarp .byte 0 -BattleFrontier_BattlePyramidTop_OnTransition: @ 82550B6 +BattleFrontier_BattlePyramidTop_OnTransition: pyramid_updatelight 200, PYRAMID_LIGHT_SET_RADIUS setvar VAR_TEMP_F, 1 end -BattleFrontier_BattlePyramidTop_OnWarp: @ 82550CE +BattleFrontier_BattlePyramidTop_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePyramidTop_EventScript_SetUpObjects .2byte 0 -BattleFrontier_BattlePyramidTop_EventScript_SetUpObjects:: @ 82550D8 +BattleFrontier_BattlePyramidTop_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH compare VAR_TEMP_C, 0 goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_EndSetUpObjects setobjectxyperm LOCALID_BRANDON, 0, 0 -BattleFrontier_BattlePyramidTop_EventScript_EndSetUpObjects:: @ 82550F3 +BattleFrontier_BattlePyramidTop_EventScript_EndSetUpObjects:: end -BattleFrontier_BattlePyramidTop_OnResume: @ 82550F4 +BattleFrontier_BattlePyramidTop_OnResume: frontier_getbrainstatus compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus call BattleFrontier_EventScript_SetBrainObjectGfx -BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus:: @ 825510C +BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus:: copyvar VAR_TEMP_C, VAR_RESULT frontier_getstatus switch VAR_TEMP_0 @@ -47,22 +47,22 @@ BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus:: @ 825510C goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost end -BattleFrontier_BattlePyramidTop_OnFrame: @ 825516E +BattleFrontier_BattlePyramidTop_OnFrame: map_script_2 VAR_TEMP_E, 0, BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic map_script_2 VAR_TEMP_F, 1, BattleFrontier_BattlePyramidTop_EventScript_ShowMapName .2byte 0 -BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic:: @ 8255180 - playbgm MUS_B_PYRAMID_TOP, 0 +BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic:: + playbgm MUS_B_PYRAMID_TOP, FALSE setvar VAR_TEMP_E, 1 end -BattleFrontier_BattlePyramidTop_EventScript_ShowMapName:: @ 825518A +BattleFrontier_BattlePyramidTop_EventScript_ShowMapName:: special ShowMapNamePopup setvar VAR_TEMP_F, 0 end -BattleFrontier_BattlePyramidTop_EventScript_ReadyChallenge:: @ 8255193 +BattleFrontier_BattlePyramidTop_EventScript_ReadyChallenge:: pyramid_save CHALLENGE_STATUS_SAVING special SavePlayerParty frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 @@ -71,7 +71,7 @@ BattleFrontier_BattlePyramidTop_EventScript_ReadyChallenge:: @ 8255193 setvar VAR_TEMP_F, 1 end -BattleFrontier_BattlePyramidTop_EventScript_Attendant:: @ 82551D0 +BattleFrontier_BattlePyramidTop_EventScript_Attendant:: lock faceplayer compare VAR_TEMP_D, 0 @@ -91,25 +91,25 @@ BattleFrontier_BattlePyramidTop_EventScript_Attendant:: @ 82551D0 playfanfare MUS_OBTAIN_B_POINTS waitfanfare closemessage -BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon:: @ 825521A +BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 255, 7, 13 waitstate end -BattleFrontier_BattlePyramidTop_EventScript_StepForwardWhenReady:: @ 8255236 +BattleFrontier_BattlePyramidTop_EventScript_StepForwardWhenReady:: msgbox BattleFrontier_BattlePyramidTop_Text_StepForwardWhenReady, MSGBOX_DEFAULT closemessage end -BattleFrontier_BattlePyramidTop_EventScript_BrandonHereMoveAside:: @ 8255240 +BattleFrontier_BattlePyramidTop_EventScript_BrandonHereMoveAside:: msgbox BattleFrontier_BattlePyramidTop_Text_ChiefBeatYouHere, MSGBOX_DEFAULT applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePyramidTop_Movement_AttendantMoveAside setvar VAR_TEMP_D, 1 closemessage end -BattleFrontier_BattlePyramidTop_EventScript_BattleBrandon:: @ 8255256 +BattleFrontier_BattlePyramidTop_EventScript_BattleBrandon:: lockall switch VAR_TEMP_C case FRONTIER_BRAIN_GOLD, BattleFrontier_BattlePyramidTop_EventScript_BrandonIntroGold @@ -130,18 +130,18 @@ BattleFrontier_BattlePyramidTop_EventScript_BattleBrandon:: @ 8255256 goto BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver end -BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech:: @ 82552D0 +BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech:: applymovement LOCALID_BRANDON, BattleFrontier_BattlePyramidTop_Movement_BrandonApproachPlayer waitmovement 0 -BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver:: @ 82552DA +BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver:: msgbox BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle, MSGBOX_DEFAULT call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle - playbgm MUS_B_PYRAMID_TOP, 0 + playbgm MUS_B_PYRAMID_TOP, FALSE compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost -BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver:: @ 82552FB +BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver:: frontier_getsymbols compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon @@ -154,7 +154,7 @@ BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver:: @ 82552FB msgbox BattleFrontier_BattlePyramidTop_Text_LookForwardToNextMeeting, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon -BattleFrontier_BattlePyramidTop_EventScript_BrandonIntroGold:: @ 8255335 +BattleFrontier_BattlePyramidTop_EventScript_BrandonIntroGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech @@ -170,18 +170,18 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonIntroGold:: @ 8255335 goto BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold end -BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech:: @ 8255388 +BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech:: applymovement LOCALID_BRANDON, BattleFrontier_BattlePyramidTop_Movement_BrandonApproachPlayer waitmovement 0 -BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold:: @ 8255392 +BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold:: msgbox BattleFrontier_BattlePyramidTop_Text_EverythingYouHave, MSGBOX_DEFAULT call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle - playbgm MUS_B_PYRAMID_TOP, 0 + playbgm MUS_B_PYRAMID_TOP, FALSE compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost -BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold:: @ 82553B3 +BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold:: frontier_getsymbols compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon @@ -194,7 +194,7 @@ BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold:: @ 82553B3 msgbox BattleFrontier_BattlePyramidTop_Text_FarewellForNow, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon -BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle:: @ 82553ED +BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle:: closemessage setvar VAR_0x8004, SPECIAL_BATTLE_PYRAMID setvar VAR_0x8005, 0 @@ -202,17 +202,17 @@ BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle:: @ 82553ED waitstate return -BattleFrontier_BattlePyramidTop_Movement_AttendantMoveAside: @ 82553FD +BattleFrontier_BattlePyramidTop_Movement_AttendantMoveAside: walk_right walk_in_place_fastest_left step_end -BattleFrontier_BattlePyramidTop_Movement_AttendantBlockPath: @ 8255400 +BattleFrontier_BattlePyramidTop_Movement_AttendantBlockPath: walk_left walk_in_place_fastest_up step_end -BattleFrontier_BattlePyramidTop_Movement_PlayerClimbToTop: @ 8255403 +BattleFrontier_BattlePyramidTop_Movement_PlayerClimbToTop: walk_up walk_up walk_up @@ -221,17 +221,17 @@ BattleFrontier_BattlePyramidTop_Movement_PlayerClimbToTop: @ 8255403 walk_in_place_fastest_down step_end -BattleFrontier_BattlePyramidTop_Movement_BrandonApproachPlayer: @ 825540A +BattleFrontier_BattlePyramidTop_Movement_BrandonApproachPlayer: walk_fast_down step_end -BattleFrontier_BattlePyramidTop_Movement_CameraPanUp: @ 825540C +BattleFrontier_BattlePyramidTop_Movement_CameraPanUp: walk_slow_up walk_slow_up delay_16 step_end -BattleFrontier_BattlePyramidTop_Text_ReachedSummitUpYouGo: @ 8255410 +BattleFrontier_BattlePyramidTop_Text_ReachedSummitUpYouGo: .string "It is a delight to see you here!\n" .string "You have reached the summit of\l" .string "the BATTLE PYRAMID!\p" @@ -242,11 +242,11 @@ BattleFrontier_BattlePyramidTop_Text_ReachedSummitUpYouGo: @ 8255410 .string "Now, please!\n" .string "Up you go!$" -BattleFrontier_BattlePyramidTop_Text_PlayerConqueredPyramid: @ 82554E8 +BattleFrontier_BattlePyramidTop_Text_PlayerConqueredPyramid: .string "The PYRAMID's new conqueror!\n" .string "Let the name {PLAYER} be known!$" -BattleFrontier_BattlePyramidTop_Text_ChiefBeatYouHere: @ 825551F +BattleFrontier_BattlePyramidTop_Text_ChiefBeatYouHere: .string "It is a delight to see you here!\p" .string "Unfortunately, you were second by\n" .string "a mere fraction of time!\p" @@ -259,7 +259,7 @@ BattleFrontier_BattlePyramidTop_Text_ChiefBeatYouHere: @ 825551F .string "Now, please! When you are ready,\n" .string "take one more step of courage!$" -BattleFrontier_BattlePyramidTop_Text_ExplorationsAreGrandestAdventure: @ 8255669 +BattleFrontier_BattlePyramidTop_Text_ExplorationsAreGrandestAdventure: .string "Young adventurer…\p" .string "Wouldn't you agree that explorations\n" .string "are the grandest of adventures?\p" @@ -269,7 +269,7 @@ BattleFrontier_BattlePyramidTop_Text_ExplorationsAreGrandestAdventure: @ 8255669 .string "And, above all, only your own courage\n" .string "to lead you through unknown worlds…$" -BattleFrontier_BattlePyramidTop_Text_ImPyramidKingBrandon: @ 825573E +BattleFrontier_BattlePyramidTop_Text_ImPyramidKingBrandon: .string "Aah, yes, indeed this life is grand!\n" .string "Grand, it is! Eh?\p" .string "I'm BRANDON!\p" @@ -282,25 +282,25 @@ BattleFrontier_BattlePyramidTop_Text_ImPyramidKingBrandon: @ 825573E .string "Hahahah!\n" .string "This should be exciting!$" -BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle: @ 8255846 +BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle: .string "Now, then!\n" .string "Bring your courage to our battle!$" -BattleFrontier_BattlePyramidTop_Text_BrandonFrontierPassPlease: @ 8255873 +BattleFrontier_BattlePyramidTop_Text_BrandonFrontierPassPlease: .string "BRANDON: Hahahah! Grand it was!\n" .string "Grand, yes, indeed!\p" .string "Well done! You've earned recognition!\n" .string "Your FRONTIER PASS, please!$" -BattleFrontier_BattlePyramidTop_Text_ReceivedBraveSymbol: @ 82558E9 +BattleFrontier_BattlePyramidTop_Text_ReceivedBraveSymbol: .string "The Brave Symbol was embossed on\n" .string "the FRONTIER PASS!$" -BattleFrontier_BattlePyramidTop_Text_LookForwardToNextMeeting: @ 825591D +BattleFrontier_BattlePyramidTop_Text_LookForwardToNextMeeting: .string "Young explorer!\n" .string "I look forward to our next meeting!$" -BattleFrontier_BattlePyramidTop_Text_BrandonYouveReturned: @ 8255951 +BattleFrontier_BattlePyramidTop_Text_BrandonYouveReturned: .string "BRANDON: …You've finally returned,\n" .string "young explorer…\p" .string "Your love of adventure seems to come\n" @@ -314,16 +314,16 @@ BattleFrontier_BattlePyramidTop_Text_BrandonYouveReturned: @ 8255951 .string "Those days of death-defying,\n" .string "life-affirming adventures are back…$" -BattleFrontier_BattlePyramidTop_Text_MyCourageIsOffMeter: @ 8255A6D +BattleFrontier_BattlePyramidTop_Text_MyCourageIsOffMeter: .string "Now, then!\p" .string "I sense my own courage is off\n" .string "the meter!$" -BattleFrontier_BattlePyramidTop_Text_EverythingYouHave: @ 8255AA1 +BattleFrontier_BattlePyramidTop_Text_EverythingYouHave: .string "Everything you have!\n" .string "I'm braced for it all!$" -BattleFrontier_BattlePyramidTop_Text_BrandonRemarkableHaveThis: @ 8255ACD +BattleFrontier_BattlePyramidTop_Text_BrandonRemarkableHaveThis: .string "BRANDON: Hahahah!\n" .string "Remarkable!\l" .string "Yes, it's grand, indeed!\p" @@ -331,17 +331,17 @@ BattleFrontier_BattlePyramidTop_Text_BrandonRemarkableHaveThis: @ 8255ACD .string "You've bested me through and through!\n" .string "Here! I want you to have this!$" -BattleFrontier_BattlePyramidTop_Text_BraveSymbolTookGoldenShine: @ 8255B59 +BattleFrontier_BattlePyramidTop_Text_BraveSymbolTookGoldenShine: .string "The Brave Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattlePyramidTop_Text_FarewellForNow: @ 8255B82 +BattleFrontier_BattlePyramidTop_Text_FarewellForNow: .string "Ah, yes! It just goes to show that\n" .string "I have much to learn still!\p" .string "May our paths cross again!\n" .string "Farewell for now, young explorer!$" -BattleFrontier_BattlePyramidTop_Text_StepForwardWhenReady: @ 8255BFE +BattleFrontier_BattlePyramidTop_Text_StepForwardWhenReady: .string "Now, when you are ready, take courage\n" .string "and step forward.$" diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index cc623e2166..c909239bea 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -2,25 +2,25 @@ .set LOCALID_ATTENDANT_1, 2 .set LOCALID_ATTENDANT_2, 3 -BattleFrontier_BattleTowerBattleRoom_MapScripts:: @ 8241B40 +BattleFrontier_BattleTowerBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerBattleRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerBattleRoom_OnWarp .byte 0 -BattleFrontier_BattleTowerBattleRoom_OnWarp: @ 8241B4B +BattleFrontier_BattleTowerBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerBattleRoom_EventScript_SetUpObjects .2byte 0 -BattleFrontier_BattleTowerBattleRoom_EventScript_SetUpObjects:: @ 8241B55 +BattleFrontier_BattleTowerBattleRoom_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 applymovement LOCALID_ATTENDANT_2, BattleFrontier_BattleTowerBattleRoom_Movement_SetInvisible end -BattleFrontier_BattleTowerBattleRoom_OnFrame: @ 8241B62 +BattleFrontier_BattleTowerBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleTowerBattleRoom_EventScript_EnterRoom:: @ 8241B6C +BattleFrontier_BattleTowerBattleRoom_EventScript_EnterRoom:: setvar VAR_TEMP_0, 1 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_PlayerEnter waitmovement 0 @@ -35,7 +35,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_EnterRoom:: @ 8241B6C frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE goto BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleTowerBattleRoom_EventScript_OpponentEnter:: @ 8241BC3 +BattleFrontier_BattleTowerBattleRoom_EventScript_OpponentEnter:: tower_setopponent addobject LOCALID_OPPONENT applymovement LOCALID_OPPONENT, BattleFrontier_BattleTowerBattleRoom_Movement_OpponentEnter @@ -46,14 +46,14 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_OpponentEnter:: @ 8241BC3 call BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle switch VAR_RESULT case B_OUTCOME_WON, BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedOpponent -BattleFrontier_BattleTower_EventScript_WarpToLobbyLost:: @ 8241C03 +BattleFrontier_BattleTower_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST tower_set TOWER_DATA_LVL_MODE setvar VAR_0x8004, FANCOUNTER_USED_BATTLE_TOWER special Script_TryGainNewFanFromCounter goto BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedOpponent:: @ 8241C2F +BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedOpponent:: call BattleFrontier_EventScript_IncrementWinStreak tower_setbattlewon switch VAR_RESULT @@ -72,7 +72,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedOpponent:: @ 8241C2F playfanfare MUS_HEAL waitfanfare special HealPlayerParty -BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: @ 8241C8F +BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY @@ -82,7 +82,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: @ 8241C8F call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle @@ -90,44 +90,44 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: @ 8241C8F case 3, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8241D0A - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle:: @ 8241D40 +BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle:: message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_RecordBattle case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleTowerBattleRoom_EventScript_RecordBattle:: @ 8241D72 +BattleFrontier_BattleTowerBattleRoom_EventScript_RecordBattle:: call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge:: @ 8241D7C +BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattleTowerBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent case YES, BattleFrontier_BattleTowerBattleRoom_EventScript_PauseChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleTowerBattleRoom_EventScript_AskRetireChallenge:: @ 8241DAA +BattleFrontier_BattleTowerBattleRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_RetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent -BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge:: @ 8241DDC +BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge:: closemessage applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceBattle waitmovement 0 @@ -135,14 +135,14 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge:: @ 8241DDC waitmovement 0 goto BattleFrontier_BattleTowerBattleRoom_EventScript_OpponentEnter -BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon:: @ 8241DF6 +BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON tower_set TOWER_DATA_LVL_MODE setvar VAR_0x8004, FANCOUNTER_USED_BATTLE_TOWER special Script_TryGainNewFanFromCounter goto BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleTowerBattleRoom_EventScript_PauseChallenge:: @ 8241E22 +BattleFrontier_BattleTowerBattleRoom_EventScript_PauseChallenge:: message BattleFrontier_BattleTowerBattleRoom_Text_SavingPleaseWait waitmessage tower_save CHALLENGE_STATUS_PAUSED @@ -152,7 +152,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_PauseChallenge:: @ 8241E22 frontier_reset end -BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyForOpponent:: @ 8241E44 +BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyForOpponent:: copyvar VAR_TEMP_F, VAR_RESULT switch VAR_TEMP_F case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor2ndOpponent @@ -162,41 +162,41 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyForOpponent:: @ 8241E44 case 5, BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor6thOpponent case 6, BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor7thOpponent -BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor2ndOpponent:: @ 8241E90 +BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor2ndOpponent:: message BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor2ndOpponent waitmessage return -BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor3rdOpponent:: @ 8241E97 +BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor3rdOpponent:: message BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor3rdOpponent waitmessage return -BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor4thOpponent:: @ 8241E9E +BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor4thOpponent:: message BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor4thOpponent waitmessage return -BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor5thOpponent:: @ 8241EA5 +BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor5thOpponent:: message BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor5thOpponent waitmessage return -BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor6thOpponent:: @ 8241EAC +BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor6thOpponent:: message BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor6thOpponent waitmessage return -BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor7thOpponent:: @ 8241EB3 +BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyFor7thOpponent:: message BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor7thOpponent waitmessage return -BattleFrontier_EventScript_IncrementWinStreak:: @ 8241EBA +BattleFrontier_EventScript_IncrementWinStreak:: frontier_incrementstreak return -BattleFrontier_BattleTowerBattleRoom_EventScript_SecondAttendantEnter:: @ 8241EC3 +BattleFrontier_BattleTowerBattleRoom_EventScript_SecondAttendantEnter:: applymovement LOCALID_ATTENDANT_2, BattleFrontier_BattleTowerBattleRoom_Movement_SecondAttendantEnter waitmovement 0 applymovement LOCALID_ATTENDANT_2, Common_Movement_WalkInPlaceLeft @@ -213,18 +213,18 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_SecondAttendantEnter:: @ 8241EC waitmovement 0 return -BattleFrontier_BattleTowerBattleRoom_EventScript_MaidenUpNext:: @ 8241F0A +BattleFrontier_BattleTowerBattleRoom_EventScript_MaidenUpNext:: compare VAR_TEMP_2, 1 goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden msgbox BattleFrontier_BattleTowerBattleRoom_Text_SalonMaidenOnHerWay, MSGBOX_DEFAULT setvar VAR_TEMP_2, 1 -BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden:: @ 8241F22 +BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden:: message BattleFrontier_BattleTowerBattleRoom_Text_ReadyForSalonMaiden waitmessage call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaidenNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle @@ -232,15 +232,15 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden:: @ 8241F22 case 3, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden -BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaidenNoRecord:: @ 8241F79 - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaidenNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden -BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel:: @ 8241FAF +BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel:: call BattleFrontier_EventScript_SetBrainObjectGfx closemessage applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceBattle @@ -259,14 +259,14 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel:: @ 8241FAF goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelSilver msgbox BattleFrontier_BattleTowerBattleRoom_Text_GreetingsImAnabel, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelSilver:: @ 8242029 +BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelSilver:: msgbox BattleFrontier_BattleTowerBattleRoom_Text_LetMeSeeYourTalent, MSGBOX_DEFAULT call BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle compare VAR_RESULT, B_OUTCOME_WON goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver goto BattleFrontier_BattleTower_EventScript_WarpToLobbyLost -BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver:: @ 8242046 +BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver:: call BattleFrontier_EventScript_IncrementWinStreak frontier_getsymbols compare VAR_RESULT, 0 @@ -280,20 +280,20 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver:: @ 824204 msgbox BattleFrontier_BattleTowerBattleRoom_Text_UntilNextTime, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon -BattleFrontier_BattleTowerBattleRoom_EventScript_AnabelGoldIntro:: @ 8242085 +BattleFrontier_BattleTowerBattleRoom_EventScript_AnabelGoldIntro:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelGold msgbox BattleFrontier_BattleTowerBattleRoom_Text_AnabelYouCameBack, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelGold:: @ 82420B2 +BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelGold:: msgbox BattleFrontier_BattleTowerBattleRoom_Text_LetsBeginShallWe, MSGBOX_DEFAULT call BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle compare VAR_RESULT, B_OUTCOME_WON goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold goto BattleFrontier_BattleTower_EventScript_WarpToLobbyLost -BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold:: @ 82420CF +BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold:: call BattleFrontier_EventScript_IncrementWinStreak frontier_getsymbols compare VAR_RESULT, 2 @@ -307,7 +307,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold:: @ 82420CF msgbox BattleFrontier_BattleTowerBattleRoom_Text_WishICouldBattleYouAgain, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon -BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle:: @ 824210E +BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle:: closemessage setvar VAR_TEMP_2, 0 frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE @@ -322,31 +322,31 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle:: @ 824210E frontier_restorehelditems special HealPlayerParty frontier_resetsketch -BattleFrontier_BattleTowerBattleRoom_EventScript_EndTowerBattle:: @ 824215A +BattleFrontier_BattleTowerBattleRoom_EventScript_EndTowerBattle:: tower_setinterviewdata frontier_get FRONTIER_DATA_BATTLE_OUTCOME return -BattleFrontier_EventScript_SetBrainObjectGfx:: @ 8242170 +BattleFrontier_EventScript_SetBrainObjectGfx:: frontier_setbrainobj return -BattleFrontier_BattleTowerBattleRoom_Movement_PlayerEnter: @ 8242179 +BattleFrontier_BattleTowerBattleRoom_Movement_PlayerEnter: walk_up walk_up walk_up face_right step_end -BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceAttendant: @ 824217E +BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceAttendant: face_down step_end -BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceBattle: @ 8242180 +BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceBattle: face_right step_end -BattleFrontier_BattleTowerBattleRoom_Movement_OpponentEnter: @ 8242182 +BattleFrontier_BattleTowerBattleRoom_Movement_OpponentEnter: walk_down walk_down walk_down @@ -354,21 +354,21 @@ BattleFrontier_BattleTowerBattleRoom_Movement_OpponentEnter: @ 8242182 face_left step_end -BattleFrontier_BattleTowerBattleRoom_Movement_OpponentExit: @ 8242188 +BattleFrontier_BattleTowerBattleRoom_Movement_OpponentExit: walk_up walk_up walk_up walk_up step_end -BattleFrontier_BattleTowerBattleRoom_Movement_AttendantApproachPlayer: @ 824218D +BattleFrontier_BattleTowerBattleRoom_Movement_AttendantApproachPlayer: walk_right walk_right walk_right walk_up step_end -BattleFrontier_BattleTowerBattleRoom_Movement_AttendantReturnToPos: @ 8242192 +BattleFrontier_BattleTowerBattleRoom_Movement_AttendantReturnToPos: walk_down walk_left walk_left @@ -376,11 +376,11 @@ BattleFrontier_BattleTowerBattleRoom_Movement_AttendantReturnToPos: @ 8242192 face_right step_end -BattleFrontier_BattleTowerBattleRoom_Movement_SetInvisible: @ 8242198 +BattleFrontier_BattleTowerBattleRoom_Movement_SetInvisible: set_invisible step_end -BattleFrontier_BattleTowerBattleRoom_Movement_SecondAttendantEnter: @ 824219A +BattleFrontier_BattleTowerBattleRoom_Movement_SecondAttendantEnter: set_visible delay_16 walk_up @@ -389,21 +389,21 @@ BattleFrontier_BattleTowerBattleRoom_Movement_SecondAttendantEnter: @ 824219A delay_8 step_end -BattleFrontier_BattleTowerBattleRoom_Movement_SecondAttendantExit: @ 82421A1 +BattleFrontier_BattleTowerBattleRoom_Movement_SecondAttendantExit: walk_right walk_right walk_down set_invisible step_end -BattleFrontier_BattleTowerBattleRoom_Movement_SecondAttendantDelay: @ 82421A6 +BattleFrontier_BattleTowerBattleRoom_Movement_SecondAttendantDelay: delay_16 delay_16 delay_16 delay_16 step_end -BattleFrontier_BattleTowerBattleRoom_Movement_AttendantFaceSecondAttendant: @ 82421AB +BattleFrontier_BattleTowerBattleRoom_Movement_AttendantFaceSecondAttendant: face_right delay_16 delay_16 @@ -412,7 +412,7 @@ BattleFrontier_BattleTowerBattleRoom_Movement_AttendantFaceSecondAttendant: @ 82 walk_in_place_right step_end -BattleFrontier_BattleTowerBattleRoom_Movement_AnabelEnter: @ 82421B2 +BattleFrontier_BattleTowerBattleRoom_Movement_AnabelEnter: walk_slow_down walk_slow_down walk_slow_down @@ -420,7 +420,7 @@ BattleFrontier_BattleTowerBattleRoom_Movement_AnabelEnter: @ 82421B2 face_left step_end -BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobby:: @ 82421B8 +BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobby:: copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, FRONTIER_MODE_DOUBLES goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyDoubles @@ -432,95 +432,95 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobby:: @ 82421B8 waitstate end -BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyDoubles:: @ 82421E8 +BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyDoubles:: warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 10, 6 waitstate end -BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyMultis:: @ 82421F2 +BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyMultis:: warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 14, 6 waitstate end -BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyLinkMultis:: @ 82421FC +BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyLinkMultis:: tower_closelink warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 18, 6 waitstate end -BattleFrontier_BattleTowerBattleRoom_EventScript_RetireChallenge:: @ 824220E +BattleFrontier_BattleTowerBattleRoom_EventScript_RetireChallenge:: setflag FLAG_CANCEL_BATTLE_ROOM_CHALLENGE goto BattleFrontier_BattleTower_EventScript_WarpToLobbyLost end -BattleFrontier_BattleTowerBattleRoom_Text_RestoreMonsToFullHealth: @ 8242217 +BattleFrontier_BattleTowerBattleRoom_Text_RestoreMonsToFullHealth: .string "We will restore your POKéMON to\n" .string "full health.$" @ Unused -BattleFrontier_BattleTowerBattleRoom_Text_ReadyForOpponent: @ 8242244 +BattleFrontier_BattleTowerBattleRoom_Text_ReadyForOpponent: .string "You will be facing opponent no. {STR_VAR_1}.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor2ndOpponent: @ 8242277 +BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor2ndOpponent: .string "You will be facing opponent no. 2.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor3rdOpponent: @ 82422A9 +BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor3rdOpponent: .string "You will be facing opponent no. 3.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor4thOpponent: @ 82422DB +BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor4thOpponent: .string "You will be facing opponent no. 4.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor5thOpponent: @ 824230D +BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor5thOpponent: .string "You will be facing opponent no. 5.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor6thOpponent: @ 824233F +BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor6thOpponent: .string "You will be facing opponent no. 6.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor7thOpponent: @ 8242371 +BattleFrontier_BattleTowerBattleRoom_Text_ReadyFor7thOpponent: .string "You will be facing opponent no. 7.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle: @ 82423A3 +BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle: .string "Record your battle on your\n" .string "FRONTIER PASS?$" -BattleFrontier_BattleTowerLobby_Text_BattleRecordedOnPass: @ 82423CD +BattleFrontier_BattleTowerLobby_Text_BattleRecordedOnPass: .string "{PLAYER}'s battle was recorded\n" .string "on the FRONTIER PASS.$" -BattleFrontier_BattleTowerBattleRoom_Text_SaveAndQuitGame: @ 82423FC +BattleFrontier_BattleTowerBattleRoom_Text_SaveAndQuitGame: .string "Would you like to save and\n" .string "quit the game?$" -BattleFrontier_BattleTowerBattleRoom_Text_SavingPleaseWait: @ 8242426 +BattleFrontier_BattleTowerBattleRoom_Text_SavingPleaseWait: .string "Saving your battle data.\n" .string "Please wait.$" -BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge: @ 824244C +BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge: .string "Would you like to cancel your BATTLE\n" .string "ROOM challenge?$" -BattleFrontier_BattleTowerBattleRoom_Text_RecordCouldntBeSaved:: @ 8242481 +BattleFrontier_BattleTowerBattleRoom_Text_RecordCouldntBeSaved:: .string "There was an error of some sort.\n" .string "Your record could not be saved.$" -BattleFrontier_BattleTowerBattleRoom_Text_SalonMaidenOnHerWay: @ 82424C2 +BattleFrontier_BattleTowerBattleRoom_Text_SalonMaidenOnHerWay: .string "Excuse me, but…\p" .string "Our leader, the SALON MAIDEN, is on\n" .string "her way here in hopes of battling you.\p" .string "She should be arriving very shortly.$" -BattleFrontier_BattleTowerBattleRoom_Text_ReadyForSalonMaiden: @ 8242542 +BattleFrontier_BattleTowerBattleRoom_Text_ReadyForSalonMaiden: .string "You will be facing the SALON MAIDEN.\n" .string "Are you prepared?$" -BattleFrontier_BattleTowerBattleRoom_Text_GreetingsImAnabel: @ 8242579 +BattleFrontier_BattleTowerBattleRoom_Text_GreetingsImAnabel: .string "Greetings…\n" .string "My name is ANABEL.\p" .string "I am the SALON MAIDEN, and I am in\n" @@ -532,20 +532,20 @@ BattleFrontier_BattleTowerBattleRoom_Text_GreetingsImAnabel: @ 8242579 .string "The reason I've come to see you…\n" .string "Well, there is but one reason…$" -BattleFrontier_BattleTowerBattleRoom_Text_LetMeSeeYourTalent: @ 824268C +BattleFrontier_BattleTowerBattleRoom_Text_LetMeSeeYourTalent: .string "Let me see your talent in\n" .string "its entirety…$" -BattleFrontier_BattleTowerBattleRoom_Text_AnabelTalentShallBeRecognized: @ 82426B4 +BattleFrontier_BattleTowerBattleRoom_Text_AnabelTalentShallBeRecognized: .string "ANABEL: Fufufu, nicely done…\p" .string "Your FRONTIER PASS, please…\n" .string "Your talent shall be recognized.$" -BattleFrontier_BattleTowerBattleRoom_Text_ReceivedAbilitySymbol: @ 824270E +BattleFrontier_BattleTowerBattleRoom_Text_ReceivedAbilitySymbol: .string "The Ability Symbol was embossed on\n" .string "the FRONTIER PASS!$" -BattleFrontier_BattleTowerBattleRoom_Text_UntilNextTime: @ 8242744 +BattleFrontier_BattleTowerBattleRoom_Text_UntilNextTime: .string "… … … … … …\p" .string "You have confidence in your POKéMON\n" .string "battling talent, don't you?\p" @@ -554,7 +554,7 @@ BattleFrontier_BattleTowerBattleRoom_Text_UntilNextTime: @ 8242744 .string "I will be waiting for you.\n" .string "Until the next time we meet…$" -BattleFrontier_BattleTowerBattleRoom_Text_AnabelYouCameBack: @ 82427F9 +BattleFrontier_BattleTowerBattleRoom_Text_AnabelYouCameBack: .string "ANABEL: You really did come back to\n" .string "see me…\p" .string "… … … … … …\p" @@ -564,18 +564,18 @@ BattleFrontier_BattleTowerBattleRoom_Text_AnabelYouCameBack: @ 82427F9 .string "Too long since I've been able to battle\n" .string "without thinking about anything…$" -BattleFrontier_BattleTowerBattleRoom_Text_LetsBeginShallWe: @ 82428E0 +BattleFrontier_BattleTowerBattleRoom_Text_LetsBeginShallWe: .string "Let's begin, shall we?$" -BattleFrontier_BattleTowerBattleRoom_Text_AnabelCongratsYourPassPlease: @ 82428F7 +BattleFrontier_BattleTowerBattleRoom_Text_AnabelCongratsYourPassPlease: .string "ANABEL: Fufu, congratulations…\n" .string "Your FRONTIER PASS, please…$" -BattleFrontier_BattleTowerBattleRoom_Text_AbilitySymbolTookGoldenShine: @ 8242932 +BattleFrontier_BattleTowerBattleRoom_Text_AbilitySymbolTookGoldenShine: .string "The Ability Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattleTowerBattleRoom_Text_WishICouldBattleYouAgain: @ 824295D +BattleFrontier_BattleTowerBattleRoom_Text_WishICouldBattleYouAgain: .string "That was fun…\p" .string "I have never had a POKéMON battle\n" .string "so enjoyable before…\p" diff --git a/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc b/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc index 0237e525c6..c09c897e98 100644 --- a/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc @@ -1,27 +1,27 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattleTowerCorridor_MapScripts:: @ 8241AAA +BattleFrontier_BattleTowerCorridor_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, BattleFrontier_BattleTowerCorridor_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerCorridor_OnFrame .byte 0 -BattleFrontier_BattleTowerCorridor_OnLoad: @ 8241AB5 +BattleFrontier_BattleTowerCorridor_OnLoad: compare VAR_0x8006, 1 goto_if_eq BattleFrontier_BattleTowerCorridor_EventScript_OpenFarDoor setmetatile 12, 0, METATILE_BattleFrontier_CorridorOpenDoor_Top, 0 setmetatile 12, 1, METATILE_BattleFrontier_CorridorOpenDoor_Bottom, 0 end -BattleFrontier_BattleTowerCorridor_EventScript_OpenFarDoor:: @ 8241AD3 +BattleFrontier_BattleTowerCorridor_EventScript_OpenFarDoor:: setmetatile 15, 0, METATILE_BattleFrontier_CorridorOpenDoor_Top, 0 setmetatile 15, 1, METATILE_BattleFrontier_CorridorOpenDoor_Bottom, 0 end -BattleFrontier_BattleTowerCorridor_OnFrame: @ 8241AE6 +BattleFrontier_BattleTowerCorridor_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerCorridor_EventScript_EnterCorridor .2byte 0 -BattleFrontier_BattleTowerCorridor_EventScript_EnterCorridor:: @ 8241AF0 +BattleFrontier_BattleTowerCorridor_EventScript_EnterCorridor:: setvar VAR_TEMP_0, 1 compare VAR_0x8006, 1 goto_if_eq BattleFrontier_BattleTowerCorridor_EventScript_WalkToFarDoor @@ -30,25 +30,25 @@ BattleFrontier_BattleTowerCorridor_EventScript_EnterCorridor:: @ 8241AF0 waitmovement 0 goto BattleFrontier_BattleTowerCorridor_EventScript_WarpToBattleRoom -BattleFrontier_BattleTowerCorridor_EventScript_WalkToFarDoor:: @ 8241B16 +BattleFrontier_BattleTowerCorridor_EventScript_WalkToFarDoor:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleTowerCorridor_Movement_AttendantWalkToFarDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerCorridor_Movement_PlayerWalkToFarDoor waitmovement 0 -BattleFrontier_BattleTowerCorridor_EventScript_WarpToBattleRoom:: @ 8241B27 +BattleFrontier_BattleTowerCorridor_EventScript_WarpToBattleRoom:: setvar VAR_TEMP_0, 0 warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM, 255, 4, 8 waitstate end -BattleFrontier_BattleTowerCorridor_Movement_PlayerWalkToFarDoor: @ 8241B36 +BattleFrontier_BattleTowerCorridor_Movement_PlayerWalkToFarDoor: walk_right -BattleFrontier_BattleTowerCorridor_Movement_AttendantWalkToFarDoor: @ 8241B37 +BattleFrontier_BattleTowerCorridor_Movement_AttendantWalkToFarDoor: walk_right walk_right -BattleFrontier_BattleTowerCorridor_Movement_PlayerWalkToDoor: @ 8241B39 +BattleFrontier_BattleTowerCorridor_Movement_PlayerWalkToDoor: walk_right -BattleFrontier_BattleTowerCorridor_Movement_AttendantWalkToDoor: @ 8241B3A +BattleFrontier_BattleTowerCorridor_Movement_AttendantWalkToDoor: walk_right walk_right walk_right diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc index 8e66465b77..0021b9e842 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattleTowerElevator_MapScripts:: @ 82419DB +BattleFrontier_BattleTowerElevator_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerElevator_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerElevator_OnWarp .byte 0 -BattleFrontier_BattleTowerElevator_OnFrame: @ 82419E6 +BattleFrontier_BattleTowerElevator_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerElevator_EventScript_EnterElevator .2byte 0 -BattleFrontier_BattleTowerElevator_EventScript_EnterElevator:: @ 82419F0 +BattleFrontier_BattleTowerElevator_EventScript_EnterElevator:: setvar VAR_TEMP_0, 1 applymovement LOCALID_ATTENDANT, BattleFrontier_BattleTowerElevator_Movement_AttendantEnter applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerElevator_Movement_PlayerEnter @@ -25,7 +25,7 @@ BattleFrontier_BattleTowerElevator_EventScript_EnterElevator:: @ 82419F0 call BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoom end -BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoom:: @ 8241A28 +BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoom:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES @@ -36,56 +36,56 @@ BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoom:: @ 8241A28 call_if_eq BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridorMulti return -BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridor:: @ 8241A55 +BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridor:: warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR, 255, 8, 1 waitstate return -BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoomMulti:: @ 8241A5F +BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoomMulti:: goto_if_unset FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER, BattleFrontier_BattleTowerElevator_EventScript_WarpToPartnerRoom warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR, 255, 7, 2 waitstate return -BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridorMulti:: @ 8241A72 +BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridorMulti:: warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR, 255, 7, 2 waitstate return -BattleFrontier_BattleTowerElevator_EventScript_WarpToPartnerRoom:: @ 8241A7C +BattleFrontier_BattleTowerElevator_EventScript_WarpToPartnerRoom:: warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM, 255, 10, 1 waitstate return -BattleFrontier_BattleTowerElevator_Movement_AttendantEnter: @ 8241A86 +BattleFrontier_BattleTowerElevator_Movement_AttendantEnter: walk_up walk_right face_down step_end -BattleFrontier_BattleTowerElevator_Movement_PlayerEnter: @ 8241A8A +BattleFrontier_BattleTowerElevator_Movement_PlayerEnter: walk_up walk_up face_down step_end -BattleFrontier_BattleTowerElevator_Movement_AttendantExit: @ 8241A8E +BattleFrontier_BattleTowerElevator_Movement_AttendantExit: walk_down walk_down set_invisible step_end -BattleFrontier_BattleTowerElevator_Movement_PlayerExit: @ 8241A92 +BattleFrontier_BattleTowerElevator_Movement_PlayerExit: walk_right walk_down walk_down step_end -BattleFrontier_BattleTowerElevator_OnWarp: @ 8241A96 +BattleFrontier_BattleTowerElevator_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerElevator_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleTowerElevator_EventScript_TurnPlayerNorth:: @ 8241AA0 +BattleFrontier_BattleTowerElevator_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index c1174cf066..ab2a620436 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -3,43 +3,45 @@ .set LOCALID_ATTENDANT_MULTIS, 8 .set LOCALID_ATTENDANT_LINK_MULTIS, 9 -BattleFrontier_BattleTowerLobby_MapScripts:: @ 823E67B +@ Note: LOCALID_BATTLE_TOWER_LOBBY_REPORTER is a local id for this map used elsewhere. It's defined in event_objects.h + +BattleFrontier_BattleTowerLobby_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleTowerLobby_OnResume map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerLobby_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerLobby_OnWarp .byte 0 -BattleFrontier_BattleTowerLobby_OnResume: @ 823E690 +BattleFrontier_BattleTowerLobby_OnResume: special TryHideBattleTowerReporter end -BattleFrontier_BattleTowerLobby_OnTransition: @ 823E694 +BattleFrontier_BattleTowerLobby_OnTransition: call BattleFrontier_BattleTowerLobby_EventScript_ShowOrHideReporter apprentice_shouldcheckgone compare VAR_0x8004, FALSE @ Always TRUE here goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, BattleFrontier_BattleTowerLobby_EventScript_HideApprentice -BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice:: @ 823E6B5 +BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice:: clearflag FLAG_HIDE_APPRENTICE apprentice_setgfx -BattleFrontier_BattleTowerLobby_EventScript_EndShowOrHideApprentice:: @ 823E6C0 +BattleFrontier_BattleTowerLobby_EventScript_EndShowOrHideApprentice:: end -BattleFrontier_BattleTowerLobby_EventScript_HideApprentice:: @ 823E6C1 +BattleFrontier_BattleTowerLobby_EventScript_HideApprentice:: setflag FLAG_HIDE_APPRENTICE goto BattleFrontier_BattleTowerLobby_EventScript_EndShowOrHideApprentice -BattleFrontier_BattleTowerLobby_OnWarp: @ 823E6C9 +BattleFrontier_BattleTowerLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth .2byte 0 -BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth:: @ 823E6D3 +BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleTowerLobby_OnFrame: @ 823E6DD +BattleFrontier_BattleTowerLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleTowerLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleTowerLobby_EventScript_ResumeChallenge @@ -47,11 +49,11 @@ BattleFrontier_BattleTowerLobby_OnFrame: @ 823E6DD map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleTowerLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattleTowerLobby_EventScript_GetChallengeStatus:: @ 823E707 +BattleFrontier_BattleTowerLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -BattleFrontier_BattleTowerLobby_EventScript_QuitWithoutSaving:: @ 823E710 +BattleFrontier_BattleTowerLobby_EventScript_QuitWithoutSaving:: lock faceplayer msgbox BattleFrontier_BattleTowerLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT @@ -63,7 +65,7 @@ BattleFrontier_BattleTowerLobby_EventScript_QuitWithoutSaving:: @ 823E710 release end -BattleFrontier_BattleTowerLobby_EventScript_WonChallenge:: @ 823E758 +BattleFrontier_BattleTowerLobby_EventScript_WonChallenge:: lock faceplayer frontier_isbrain @@ -73,9 +75,9 @@ BattleFrontier_BattleTowerLobby_EventScript_WonChallenge:: @ 823E758 waitmessage goto BattleFrontier_BattleTowerLobby_EventScript_GiveRibbons -BattleFrontier_BattleTowerLobby_EventScript_DefeatedMaiden:: @ 823E778 +BattleFrontier_BattleTowerLobby_EventScript_DefeatedMaiden:: msgbox BattleFrontier_BattleTowerLobby_Text_CongratsDefeatedMaiden, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_GiveRibbons:: @ 823E780 +BattleFrontier_BattleTowerLobby_EventScript_GiveRibbons:: tower_giveribbons compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints @@ -84,7 +86,7 @@ BattleFrontier_BattleTowerLobby_EventScript_GiveRibbons:: @ 823E780 playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox BattleFrontier_BattleTowerLobby_Text_PutRibbonOnMons, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints:: @ 823E7A5 +BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints:: msgbox BattleFrontier_BattleTowerLobby_Text_AwardYouTheseBattlePoints, MSGBOX_DEFAULT frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS @@ -93,23 +95,23 @@ BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints:: @ 823E7A5 compare VAR_RESULT, 49 goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_LookForwardToChallenge msgbox BattleFrontier_BattleTowerLobby_Text_AboutToFace50thTrainer, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_LookForwardToChallenge:: @ 823E7E2 +BattleFrontier_BattleTowerLobby_EventScript_LookForwardToChallenge:: msgbox BattleFrontier_BattleTowerLobby_Text_LookForwardToAnotherChallenge, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 release end -BattleFrontier_BattleTowerLobby_EventScript_LostChallenge:: @ 823E7F2 +BattleFrontier_BattleTowerLobby_EventScript_LostChallenge:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_CancelWinStreak goto_if_set FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER, BattleFrontier_BattleTowerLobby_EventScript_CancelWinStreak tower_get TOWER_DATA_WIN_STREAK compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_LostThanksForPlaying -BattleFrontier_BattleTowerLobby_EventScript_CancelWinStreak:: @ 823E81E +BattleFrontier_BattleTowerLobby_EventScript_CancelWinStreak:: tower_set TOWER_DATA_WIN_STREAK_ACTIVE, FALSE -BattleFrontier_BattleTowerLobby_EventScript_LostThanksForPlaying:: @ 823E830 +BattleFrontier_BattleTowerLobby_EventScript_LostThanksForPlaying:: lock faceplayer message BattleFrontier_BattleTowerLobby_Text_ThankYouForPlaying @@ -121,7 +123,7 @@ BattleFrontier_BattleTowerLobby_EventScript_LostThanksForPlaying:: @ 823E830 release end -BattleFrontier_BattleTowerLobby_EventScript_AskSaveBattle:: @ 823E84D +BattleFrontier_BattleTowerLobby_EventScript_AskSaveBattle:: message BattleFrontier_BattleTowerLobby_Text_RecordWillBeSaved waitmessage frontier_checkairshow @@ -135,13 +137,13 @@ BattleFrontier_BattleTowerLobby_EventScript_AskSaveBattle:: @ 823E84D goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle message BattleFrontier_BattleTowerLobby_Text_RecordLastMatch waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle case 0, BattleFrontier_EventScript_SaveBattle case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle -BattleFrontier_EventScript_SaveBattle:: @ 823E8B4 +BattleFrontier_EventScript_SaveBattle:: frontier_savebattle compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_EventScript_BattleSaveFailed @@ -149,16 +151,16 @@ BattleFrontier_EventScript_SaveBattle:: @ 823E8B4 msgbox BattleFrontier_BattleTowerLobby_Text_BattleRecordedOnPass, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle -BattleFrontier_EventScript_BattleSaveFailed:: @ 823E8D7 +BattleFrontier_EventScript_BattleSaveFailed:: msgbox BattleFrontier_BattleTowerBattleRoom_Text_RecordCouldntBeSaved, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle:: @ 823E8DF +BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle:: return -BattleFrontier_EventScript_GetCantRecordBattle:: @ 823E8E0 +BattleFrontier_EventScript_GetCantRecordBattle:: frontier_get FRONTIER_DATA_RECORD_DISABLED return -BattleFrontier_BattleTowerLobby_EventScript_ResumeChallenge:: @ 823E8EE +BattleFrontier_BattleTowerLobby_EventScript_ResumeChallenge:: lock faceplayer compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES @@ -174,31 +176,31 @@ BattleFrontier_BattleTowerLobby_EventScript_ResumeChallenge:: @ 823E8EE goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator end -BattleFrontier_BattleTowerLobby_EventScript_SetBravoTrainerOn:: @ 823E930 +BattleFrontier_BattleTowerLobby_EventScript_SetBravoTrainerOn:: setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, TRUE return -BattleFrontier_BattleTowerLobby_EventScript_SinglesAttendant:: @ 823E936 +BattleFrontier_BattleTowerLobby_EventScript_SinglesAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_WelcomSingleBattle, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_AskEnterSinglesChallenge:: @ 823E948 +BattleFrontier_BattleTowerLobby_EventScript_AskEnterSinglesChallenge:: message BattleFrontier_BattleTowerLobby_Text_TakeSinglesChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainSinglesChallenge case 2, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge -BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge:: @ 823E984 +BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge @@ -221,7 +223,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge:: @ 823E984 case YES, BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeSinglesChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge -BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeSinglesChallenge:: @ 823EA2A +BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeSinglesChallenge:: frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 tower_init @@ -239,32 +241,32 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeSinglesChallenge:: @ 823EA goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator end -BattleFrontier_BattleTowerLobby_EventScript_ExplainSinglesChallenge:: @ 823EA91 +BattleFrontier_BattleTowerLobby_EventScript_ExplainSinglesChallenge:: msgbox BattleFrontier_BattleTowerLobby_Text_ExplainSinglesChallenge, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_AskEnterSinglesChallenge end -BattleFrontier_BattleTowerLobby_EventScript_DoublesAttendant:: @ 823EA9F +BattleFrontier_BattleTowerLobby_EventScript_DoublesAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_WelcomeDoubleBattle, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_AskEnterDoublesChallenge:: @ 823EAB1 +BattleFrontier_BattleTowerLobby_EventScript_AskEnterDoublesChallenge:: message BattleFrontier_BattleTowerLobby_Text_TakeDoublesChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainDoublesChallenge case 2, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge -BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge:: @ 823EAED +BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge @@ -287,7 +289,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge:: @ 823EAED case YES, BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeDoublesChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge -BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeDoublesChallenge:: @ 823EB93 +BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeDoublesChallenge:: frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 tower_init @@ -305,33 +307,33 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeDoublesChallenge:: @ 823EB goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator end -BattleFrontier_BattleTowerLobby_EventScript_ExplainDoublesChallenge:: @ 823EBFA +BattleFrontier_BattleTowerLobby_EventScript_ExplainDoublesChallenge:: msgbox BattleFrontier_BattleTowerLobby_Text_ExplainDoublesChallenge, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_AskEnterDoublesChallenge end -BattleFrontier_BattleTowerLobby_EventScript_MultisAttendant:: @ 823EC08 +BattleFrontier_BattleTowerLobby_EventScript_MultisAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER clearflag FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_WelcomeMultiBattle, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_AskEnterMultisChallenge:: @ 823EC1D +BattleFrontier_BattleTowerLobby_EventScript_AskEnterMultisChallenge:: message BattleFrontier_BattleTowerLobby_Text_TakeMultisChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainMultisChallenge case 2, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge -BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge:: @ 823EC59 +BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge @@ -354,7 +356,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge:: @ 823EC59 case YES, BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeMultisChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge -BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeMultisChallenge:: @ 823ECFF +BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeMultisChallenge:: frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 tower_init @@ -372,32 +374,32 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeMultisChallenge:: @ 823ECF goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator end -BattleFrontier_BattleTowerLobby_EventScript_ExplainMultisChallenge:: @ 823ED66 +BattleFrontier_BattleTowerLobby_EventScript_ExplainMultisChallenge:: msgbox BattleFrontier_BattleTowerLobby_Text_ExplainMultisChallenge, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_AskEnterMultisChallenge end -BattleFrontier_BattleTowerLobby_EventScript_LinkMultisAttendant:: @ 823ED74 +BattleFrontier_BattleTowerLobby_EventScript_LinkMultisAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_TOWER special SavePlayerParty msgbox BattleFrontier_BattleTowerLobby_Text_WelcomeLinkMultiBattle, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_AskEnterLinkMultisChallenge:: @ 823ED86 +BattleFrontier_BattleTowerLobby_EventScript_AskEnterLinkMultisChallenge:: message BattleFrontier_BattleTowerLobby_Text_TakeLinkMultisChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainLinkMultisChallenge case 2, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge -BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge:: @ 823EDC2 +BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode waitmessage - multichoice 17, 6, MULTI_LEVEL_MODE, 0 + multichoice 17, 6, MULTI_LEVEL_MODE, FALSE switch VAR_RESULT case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge @@ -420,7 +422,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge:: @ 823E case YES, BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge -BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge:: @ 823EE68 +BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge:: frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_TEMP_0, 0 tower_init @@ -441,12 +443,12 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge:: @ 82 goto BattleFrontier_BattleTowerLobby_EventScript_TryCableLink end -BattleFrontier_BattleTowerLobby_EventScript_FeelingsMan:: @ 823EEE7 +BattleFrontier_BattleTowerLobby_EventScript_FeelingsMan:: lock faceplayer message BattleFrontier_BattleTowerLobby_Text_DescribeFeelingsAboutBattleTower waitmessage - multichoice 16, 4, MULTI_BATTLE_TOWER_FEELINGS, 0 + multichoice 16, 4, MULTI_BATTLE_TOWER_FEELINGS, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleTowerLobby_EventScript_FeelingsBattleNow case 1, BattleFrontier_BattleTowerLobby_EventScript_FeelingsIWon @@ -456,7 +458,7 @@ BattleFrontier_BattleTowerLobby_EventScript_FeelingsMan:: @ 823EEE7 release end -BattleFrontier_BattleTowerLobby_EventScript_FeelingsBattleNow:: @ 823EF32 +BattleFrontier_BattleTowerLobby_EventScript_FeelingsBattleNow:: msgbox BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouBegin, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_BATTLE_START call Common_ShowEasyChatScreen @@ -465,7 +467,7 @@ BattleFrontier_BattleTowerLobby_EventScript_FeelingsBattleNow:: @ 823EF32 goto BattleFrontier_BattleTowerLobby_EventScript_CheckFeelings end -BattleFrontier_BattleTowerLobby_EventScript_FeelingsIWon:: @ 823EF4C +BattleFrontier_BattleTowerLobby_EventScript_FeelingsIWon:: msgbox BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouveWon, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_BATTLE_WON call Common_ShowEasyChatScreen @@ -474,7 +476,7 @@ BattleFrontier_BattleTowerLobby_EventScript_FeelingsIWon:: @ 823EF4C goto BattleFrontier_BattleTowerLobby_EventScript_CheckFeelings end -BattleFrontier_BattleTowerLobby_EventScript_FeelingsILost:: @ 823EF66 +BattleFrontier_BattleTowerLobby_EventScript_FeelingsILost:: msgbox BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouveLost, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_BATTLE_LOST call Common_ShowEasyChatScreen @@ -483,37 +485,37 @@ BattleFrontier_BattleTowerLobby_EventScript_FeelingsILost:: @ 823EF66 goto BattleFrontier_BattleTowerLobby_EventScript_CheckFeelings end -BattleFrontier_BattleTowerLobby_EventScript_FeelingsWontTell:: @ 823EF80 +BattleFrontier_BattleTowerLobby_EventScript_FeelingsWontTell:: msgbox BattleFrontier_BattleTowerLobby_Text_DontThinkMuchAboutIt, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerLobby_EventScript_CheckFeelings:: @ 823EF8A +BattleFrontier_BattleTowerLobby_EventScript_CheckFeelings:: compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CanceledEasyChat compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_SubmittedFeelings end -BattleFrontier_BattleTowerLobby_EventScript_CanceledEasyChat:: @ 823EFA1 +BattleFrontier_BattleTowerLobby_EventScript_CanceledEasyChat:: msgbox BattleFrontier_BattleTowerLobby_Text_ChangedYourMind, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerLobby_EventScript_SubmittedFeelings:: @ 823EFAB +BattleFrontier_BattleTowerLobby_EventScript_SubmittedFeelings:: msgbox BattleFrontier_BattleTowerLobby_Text_ThatsHowYouFeel, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerLobby_EventScript_Woman:: @ 823EFB5 +BattleFrontier_BattleTowerLobby_EventScript_Woman:: msgbox BattleFrontier_BattleTowerLobby_Text_WinsInRowRecorded, MSGBOX_NPC end -BattleFrontier_BattleTowerLobby_EventScript_Boy:: @ 823EFBE +BattleFrontier_BattleTowerLobby_EventScript_Boy:: msgbox BattleFrontier_BattleTowerLobby_Text_CanLeaveUntilLossOrSevenWins, MSGBOX_NPC end -BattleFrontier_BattleTowerLobby_EventScript_ShowSinglesResults:: @ 823EFC7 +BattleFrontier_BattleTowerLobby_EventScript_ShowSinglesResults:: lockall frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_SINGLES waitbuttonpress @@ -521,7 +523,7 @@ BattleFrontier_BattleTowerLobby_EventScript_ShowSinglesResults:: @ 823EFC7 releaseall end -BattleFrontier_BattleTowerLobby_EventScript_ShowDoublesResults:: @ 823EFE0 +BattleFrontier_BattleTowerLobby_EventScript_ShowDoublesResults:: lockall frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_DOUBLES waitbuttonpress @@ -529,7 +531,7 @@ BattleFrontier_BattleTowerLobby_EventScript_ShowDoublesResults:: @ 823EFE0 releaseall end -BattleFrontier_BattleTowerLobby_EventScript_ShowMultisResults:: @ 823EFF9 +BattleFrontier_BattleTowerLobby_EventScript_ShowMultisResults:: lockall frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_MULTIS waitbuttonpress @@ -537,7 +539,7 @@ BattleFrontier_BattleTowerLobby_EventScript_ShowMultisResults:: @ 823EFF9 releaseall end -BattleFrontier_BattleTowerLobby_EventScript_ShowLinkMultisResults:: @ 823F012 +BattleFrontier_BattleTowerLobby_EventScript_ShowLinkMultisResults:: lockall frontier_results FRONTIER_FACILITY_TOWER, FRONTIER_MODE_LINK_MULTIS waitbuttonpress @@ -545,12 +547,12 @@ BattleFrontier_BattleTowerLobby_EventScript_ShowLinkMultisResults:: @ 823F012 releaseall end -BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons:: @ 823F02B +BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons:: switch VAR_RESULT case FRONTIER_LVL_50, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50 case FRONTIER_LVL_OPEN, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpen -BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50:: @ 823F046 +BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50:: switch VAR_FRONTIER_BATTLE_MODE case FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Singles case FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Doubles @@ -558,17 +560,17 @@ BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50:: @ 823F046 goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge end -BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Singles:: @ 823F06F +BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Singles:: msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Singles, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge end -BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Doubles:: @ 823F07D +BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLv50Doubles:: msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Doubles, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge end -BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 823F08B +BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpen:: switch VAR_FRONTIER_BATTLE_MODE case FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenSingles case FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenDoubles @@ -576,37 +578,37 @@ BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 823F08B goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge end -BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenSingles:: @ 823F0B4 +BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenSingles:: msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenSingles, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge end -BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenDoubles:: @ 823F0C2 +BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMonsLvOpenDoubles:: msgbox BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenDoubles, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge end -BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed:: @ 823F0D0 +BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS @ No status provided, so it relies on VAR_0x8006 being 0 already goto BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge end -BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge:: @ 823F0E3 +BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge:: special LoadPlayerParty -BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge:: @ 823F0E6 +BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge:: special CloseLink msgbox BattleFrontier_BattleTowerLobby_Text_LookForwardToAnotherChallenge, MSGBOX_DEFAULT -BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge:: @ 823F0F1 +BattleFrontier_BattleTowerLobby_EventScript_EndCancelChallenge:: release end -BattleFrontier_BattleTowerLobby_EventScript_EnterElevator:: @ 823F0F3 +BattleFrontier_BattleTowerLobby_EventScript_EnterElevator:: special SavePlayerParty setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_PARTY_ORDER call BattleFrontier_BattleTowerLobby_EventScript_GetPartySize special CallFrontierUtilFunc setvar VAR_RESULT, 0 -BattleFrontier_BattleTowerLobby_EventScript_WaitForLinkOpponentLoad:: @ 823F108 +BattleFrontier_BattleTowerLobby_EventScript_WaitForLinkOpponentLoad:: tower_loadlinkopponents delay 1 compare VAR_RESULT, 6 @@ -618,18 +620,18 @@ BattleFrontier_BattleTowerLobby_EventScript_WaitForLinkOpponentLoad:: @ 823F108 waitstate end -BattleFrontier_BattleTowerLobby_EventScript_ShowYouToBattleRoom:: @ 823F135 +BattleFrontier_BattleTowerLobby_EventScript_ShowYouToBattleRoom:: call BattleFrontier_BattleTowerLobby_EventScript_BufferModeText compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ShowYouToLinkMultiBattleRoom msgbox BattleFrontier_BattleTowerLobby_Text_ShowYouToBattleRoom, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_WalkToElevator -BattleFrontier_BattleTowerLobby_EventScript_ShowYouToLinkMultiBattleRoom:: @ 823F152 +BattleFrontier_BattleTowerLobby_EventScript_ShowYouToLinkMultiBattleRoom:: messageautoscroll BattleFrontier_BattleTowerLobby_Text_ShowYouToBattleRoom waitmessage delay 48 -BattleFrontier_BattleTowerLobby_EventScript_WalkToElevator:: @ 823F15B +BattleFrontier_BattleTowerLobby_EventScript_WalkToElevator:: closemessage call BattleFrontier_BattleTowerLobby_EventScript_SetAttendantTalkedTo call BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoord @@ -645,25 +647,25 @@ BattleFrontier_BattleTowerLobby_EventScript_WalkToElevator:: @ 823F15B waitdooranim return -BattleFrontier_BattleTowerLobby_Movement_WalkToElevator: @ 823F195 +BattleFrontier_BattleTowerLobby_Movement_WalkToElevator: walk_up walk_up walk_up step_end -BattleFrontier_BattleTowerLobby_Movement_AttendantEnterElevator: @ 823F199 +BattleFrontier_BattleTowerLobby_Movement_AttendantEnterElevator: walk_up set_invisible step_end -BattleFrontier_BattleTowerLobby_Movement_PlayerEnterElevator: @ 823F19C +BattleFrontier_BattleTowerLobby_Movement_PlayerEnterElevator: walk_up walk_up set_invisible step_end @ Unused -BattleFrontier_BattleTowerLobby_Movement_UnusedEnterElevator: @ 823F1A0 +BattleFrontier_BattleTowerLobby_Movement_UnusedEnterElevator: walk_fast_up walk_fast_up walk_fast_up @@ -672,7 +674,7 @@ BattleFrontier_BattleTowerLobby_Movement_UnusedEnterElevator: @ 823F1A0 set_invisible step_end -BattleFrontier_BattleTowerLobby_EventScript_BufferModeText:: @ 823F1A7 +BattleFrontier_BattleTowerLobby_EventScript_BufferModeText:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_BufferTextSingle compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES @@ -683,23 +685,23 @@ BattleFrontier_BattleTowerLobby_EventScript_BufferModeText:: @ 823F1A7 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_BufferTextLinkMulti return -BattleFrontier_BattleTowerLobby_EventScript_BufferTextSingle:: @ 823F1D4 +BattleFrontier_BattleTowerLobby_EventScript_BufferTextSingle:: bufferstdstring 0, STDSTRING_SINGLE return -BattleFrontier_BattleTowerLobby_EventScript_BufferTextDouble:: @ 823F1D9 +BattleFrontier_BattleTowerLobby_EventScript_BufferTextDouble:: bufferstdstring 0, STDSTRING_DOUBLE return -BattleFrontier_BattleTowerLobby_EventScript_BufferTextMulti:: @ 823F1DE +BattleFrontier_BattleTowerLobby_EventScript_BufferTextMulti:: bufferstdstring 0, STDSTRING_MULTI return -BattleFrontier_BattleTowerLobby_EventScript_BufferTextLinkMulti:: @ 823F1E3 +BattleFrontier_BattleTowerLobby_EventScript_BufferTextLinkMulti:: bufferstdstring 0, STDSTRING_MULTI_LINK return -BattleFrontier_BattleTowerLobby_EventScript_SetAttendantTalkedTo:: @ 823F1E8 +BattleFrontier_BattleTowerLobby_EventScript_SetAttendantTalkedTo:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_TalkedToSinglesAttendant compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES @@ -710,23 +712,23 @@ BattleFrontier_BattleTowerLobby_EventScript_SetAttendantTalkedTo:: @ 823F1E8 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_TalkedToLinkMultisAttendant return -BattleFrontier_BattleTowerLobby_EventScript_TalkedToSinglesAttendant:: @ 823F215 +BattleFrontier_BattleTowerLobby_EventScript_TalkedToSinglesAttendant:: setvar VAR_LAST_TALKED, LOCALID_ATTENDANT_SINGLES return -BattleFrontier_BattleTowerLobby_EventScript_TalkedToDoublesAttendant:: @ 823F21B +BattleFrontier_BattleTowerLobby_EventScript_TalkedToDoublesAttendant:: setvar VAR_LAST_TALKED, LOCALID_ATTENDANT_DOUBLES return -BattleFrontier_BattleTowerLobby_EventScript_TalkedToMultisAttendant:: @ 823F221 +BattleFrontier_BattleTowerLobby_EventScript_TalkedToMultisAttendant:: setvar VAR_LAST_TALKED, LOCALID_ATTENDANT_MULTIS return -BattleFrontier_BattleTowerLobby_EventScript_TalkedToLinkMultisAttendant:: @ 823F227 +BattleFrontier_BattleTowerLobby_EventScript_TalkedToLinkMultisAttendant:: setvar VAR_LAST_TALKED, LOCALID_ATTENDANT_LINK_MULTIS return -BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoord:: @ 823F22D +BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoord:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordSingles compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES @@ -737,23 +739,23 @@ BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoord:: @ 823F22D call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordLinkMultis return -BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordSingles:: @ 823F25A +BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordSingles:: setvar VAR_0x8004, 6 return -BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordDoubles:: @ 823F260 +BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordDoubles:: setvar VAR_0x8004, 10 return -BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordMultis:: @ 823F266 +BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordMultis:: setvar VAR_0x8004, 14 return -BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordLinkMultis:: @ 823F26C +BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordLinkMultis:: setvar VAR_0x8004, 18 return -BattleFrontier_BattleTowerLobby_EventScript_GetPartySize:: @ 823F272 +BattleFrontier_BattleTowerLobby_EventScript_GetPartySize:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES @@ -764,27 +766,27 @@ BattleFrontier_BattleTowerLobby_EventScript_GetPartySize:: @ 823F272 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize return -BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize:: @ 823F29F +BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_GetDoublesPartySize:: @ 823F2A5 +BattleFrontier_BattleTowerLobby_EventScript_GetDoublesPartySize:: setvar VAR_0x8005, FRONTIER_DOUBLES_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_GetMultisPartySize:: @ 823F2AB +BattleFrontier_BattleTowerLobby_EventScript_GetMultisPartySize:: setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE return -BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize:: @ 823F2B1 +BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize:: setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE return -BattleFrontier_EventScript_GetLvlMode:: @ 823F2B7 +BattleFrontier_EventScript_GetLvlMode:: frontier_get FRONTIER_DATA_LVL_MODE return -BattleFrontier_BattleTowerLobby_EventScript_TryCableLink:: @ 823F2C5 +BattleFrontier_BattleTowerLobby_EventScript_TryCableLink:: setvar VAR_0x8004, USING_BATTLE_TOWER message gText_PleaseWaitForLink waitmessage @@ -807,7 +809,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryCableLink:: @ 823F2C5 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_AbortLink end -BattleFrontier_BattleTowerLobby_EventScript_AbortLinkDifferentSelections:: @ 823F327 +BattleFrontier_BattleTowerLobby_EventScript_AbortLinkDifferentSelections:: special CloseLink compare VAR_0x8005, 3 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_FriendDifferentSelection @@ -815,20 +817,20 @@ BattleFrontier_BattleTowerLobby_EventScript_AbortLinkDifferentSelections:: @ 823 release end -BattleFrontier_BattleTowerLobby_EventScript_FriendDifferentSelection:: @ 823F33F +BattleFrontier_BattleTowerLobby_EventScript_FriendDifferentSelection:: msgbox BattleFrontier_BattleTowerLobby_Text_FriendChoseDifferentLvlMode, MSGBOX_DEFAULT msgbox BattleFrontier_BattleTowerLobby_Text_ChooseDifferentMonsMatchLvlMode, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerLobby_EventScript_AbortLinkIncorrectNumberOfPlayers:: @ 823F351 +BattleFrontier_BattleTowerLobby_EventScript_AbortLinkIncorrectNumberOfPlayers:: msgbox BattleFrontier_BattleTowerLobby_Text_LinkMultiOnlyForTwoPlayers, MSGBOX_DEFAULT special CloseLink msgbox CableClub_Text_IncorrectNumberOfParticipants, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerLobby_EventScript_AbortLink:: @ 823F366 +BattleFrontier_BattleTowerLobby_EventScript_AbortLink:: special CloseLink compare VAR_0x8005, 0 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_FriendChoseDifferentLvlMode @@ -840,19 +842,19 @@ BattleFrontier_BattleTowerLobby_EventScript_AbortLink:: @ 823F366 release end -BattleFrontier_BattleTowerLobby_EventScript_FriendChoseDifferentLvlMode:: @ 823F394 +BattleFrontier_BattleTowerLobby_EventScript_FriendChoseDifferentLvlMode:: msgbox BattleFrontier_BattleTowerLobby_Text_FriendChoseDifferentLvlMode, MSGBOX_DEFAULT return -BattleFrontier_BattleTowerLobby_EventScript_FriendAlsoSelectedMon:: @ 823F39D +BattleFrontier_BattleTowerLobby_EventScript_FriendAlsoSelectedMon:: msgbox BattleFrontier_BattleTowerLobby_Text_FriendAlsoSelectedMon, MSGBOX_DEFAULT return -BattleFrontier_BattleTowerLobby_EventScript_FriendAlsoSelectedMons:: @ 823F3A6 +BattleFrontier_BattleTowerLobby_EventScript_FriendAlsoSelectedMons:: msgbox BattleFrontier_BattleTowerLobby_Text_FriendAlsoSelectedMons, MSGBOX_DEFAULT return -BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful:: @ 823F3AF +BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful:: incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, FALSE message BattleFrontier_BattleTowerLobby_Text_SaveGameBeforeShowingIn @@ -866,20 +868,20 @@ BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful:: @ 823F3AF goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator end -BattleFrontier_BattleTowerLobby_EventScript_ExplainLinkMultisChallenge:: @ 823F3DA +BattleFrontier_BattleTowerLobby_EventScript_ExplainLinkMultisChallenge:: msgbox BattleFrontier_BattleTowerLobby_Text_ExplainLinkMultisChallenge, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_AskEnterLinkMultisChallenge end -BattleFrontier_BattleTowerLobby_EventScript_TryWirelessLink:: @ 823F3E8 +BattleFrontier_BattleTowerLobby_EventScript_TryWirelessLink:: setvar VAR_0x8004, LINK_GROUP_BATTLE_TOWER goto BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader end -BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader:: @ 823F3F3 +BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader:: message CableClub_Text_ChooseGroupLeaderOfTwo waitmessage - multichoice 16, 6, MULTI_LINK_LEADER, 0 + multichoice 16, 6, MULTI_LINK_LEADER, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup case 1, BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader @@ -887,7 +889,7 @@ BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader:: @ 823F3F3 case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge end -BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader:: @ 823F430 +BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader:: call CableClub_EventScript_TryBecomeLinkLeader compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful @@ -900,7 +902,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader:: @ 823F430 release return -BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup:: @ 823F463 +BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup:: call CableClub_EventScript_TryJoinLinkGroup compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful @@ -913,7 +915,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup:: @ 823F463 release return -BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful:: @ 823F496 +BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful:: incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, FALSE message BattleFrontier_BattleTowerLobby_Text_SaveGameBeforeShowingIn @@ -926,16 +928,16 @@ BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful:: @ 823F496 goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator end -BattleFrontier_BattleTowerLobby_EventScript_RulesBoard:: @ 823F4BE +BattleFrontier_BattleTowerLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattleTowerLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard:: @ 823F4CD +BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattleTowerLobby_Text_ReadWhichHeading waitmessage - multichoice 17, 2, MULTI_BATTLE_TOWER_RULES, 0 + multichoice 17, 2, MULTI_BATTLE_TOWER_RULES, FALSE switch VAR_RESULT case 0, BattleFrontier_BattleTowerLobby_EventScript_RulesTower case 1, BattleFrontier_BattleTowerLobby_EventScript_RulesMons @@ -945,79 +947,79 @@ BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard:: @ 823F4CD case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_ExitRules end -BattleFrontier_BattleTowerLobby_EventScript_RulesTower:: @ 823F520 +BattleFrontier_BattleTowerLobby_EventScript_RulesTower:: msgbox BattleFrontier_BattleTowerLobby_Text_ExplainTowerRules, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleTowerLobby_EventScript_RulesMons:: @ 823F52E +BattleFrontier_BattleTowerLobby_EventScript_RulesMons:: msgbox BattleFrontier_BattleTowerLobby_Text_ExplainMonRules, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleTowerLobby_EventScript_RulesSalon:: @ 823F53C +BattleFrontier_BattleTowerLobby_EventScript_RulesSalon:: msgbox BattleFrontier_BattleTowerLobby_Text_ExplainSalonRules, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleTowerLobby_EventScript_RulesMultiLink:: @ 823F54A +BattleFrontier_BattleTowerLobby_EventScript_RulesMultiLink:: msgbox BattleFrontier_BattleTowerLobby_Text_ExplainMultiLinkRules, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleTowerLobby_EventScript_ExitRules:: @ 823F558 +BattleFrontier_BattleTowerLobby_EventScript_ExitRules:: releaseall end @ Unused -BattleFrontier_BattleTowerLobby_EventScript_DirectYouToBattleRoom: @ 823F55A +BattleFrontier_BattleTowerLobby_EventScript_DirectYouToBattleRoom: .string "I'll direct you to your BATTLE ROOM now.$" -BattleFrontier_BattleTowerLobby_Text_DidntSaveBeforeQuitting: @ 823F583 +BattleFrontier_BattleTowerLobby_Text_DidntSaveBeforeQuitting: .string "Excuse me!\p" .string "You didn't save before you quit your\n" .string "challenge last time.\p" .string "Because of that, your challenge so far\n" .string "has been disqualified. Sorry!$" -BattleFrontier_BattleTowerLobby_Text_CongratsBeatenSeven: @ 823F60D +BattleFrontier_BattleTowerLobby_Text_CongratsBeatenSeven: .string "Congratulations!\n" .string "You've beaten all seven TRAINERS!\p" .string "$" @ Unused -BattleFrontier_BattleTowerLobby_Text_EarnedFabulousPrize: @ 823F641 +BattleFrontier_BattleTowerLobby_Text_EarnedFabulousPrize: .string "For beating seven TRAINERS in a row,\n" .string "you have earned this fabulous prize!\p" .string "$" -BattleFrontier_BattleTowerLobby_Text_ReceivedPrize: @ 823F68C +BattleFrontier_BattleTowerLobby_Text_ReceivedPrize: .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" @ Unused -BattleFrontier_BattleTowerLobby_Text_BagFullMakeRoom: @ 823F6A6 +BattleFrontier_BattleTowerLobby_Text_BagFullMakeRoom: .string "Oh, your BAG appears to be full.\p" .string "Please make room in your BAG, then come\n" .string "see me.$" -BattleFrontier_BattleTowerLobby_Text_ThankYouForPlaying: @ 823F6F7 +BattleFrontier_BattleTowerLobby_Text_ThankYouForPlaying: .string "Thank you for playing!\p" .string "$" -BattleFrontier_BattleTowerLobby_Text_RecordWillBeSaved: @ 823F70F +BattleFrontier_BattleTowerLobby_Text_RecordWillBeSaved: .string "Your record will be saved.\n" .string "Please wait.$" -BattleFrontier_BattleTowerLobby_Text_WeveBeenWaitingForYou: @ 823F737 +BattleFrontier_BattleTowerLobby_Text_WeveBeenWaitingForYou: .string "We've been waiting for you!\p" .string "$" -BattleFrontier_BattleTowerLobby_Text_ProgressWillBeSaved: @ 823F754 +BattleFrontier_BattleTowerLobby_Text_ProgressWillBeSaved: .string "Before entering a BATTLE ROOM, your\n" .string "progress will be saved. Please wait.$" -BattleFrontier_BattleTowerLobby_Text_AboutToFace50thTrainer: @ 823F79D +BattleFrontier_BattleTowerLobby_Text_AboutToFace50thTrainer: .string "You're finally about to face the\n" .string "50th TRAINER.\p" .string "From here on, every time you beat seven\n" @@ -1025,54 +1027,54 @@ BattleFrontier_BattleTowerLobby_Text_AboutToFace50thTrainer: @ 823F79D .string "receive a commemorative RIBBON.\p" .string "Good luck!$" -BattleFrontier_BattleTowerLobby_Text_HereAreSomeRibbons: @ 823F844 +BattleFrontier_BattleTowerLobby_Text_HereAreSomeRibbons: .string "Here are some RIBBONS for beating\n" .string "seven tough TRAINERS in a row.\p" .string "{PLAYER} received some RIBBONS!$" -BattleFrontier_BattleTowerLobby_Text_PutRibbonOnMons: @ 823F89F +BattleFrontier_BattleTowerLobby_Text_PutRibbonOnMons: .string "{PLAYER} put the RIBBONS on\n" .string "the challenger POKéMON.$" -BattleFrontier_BattleTowerLobby_Text_DescribeFeelingsAboutBattleTower: @ 823F8CD +BattleFrontier_BattleTowerLobby_Text_DescribeFeelingsAboutBattleTower: .string "Excuse me, do you have a moment?\p" .string "Can you describe your feelings when\n" .string "you're about to begin a BATTLE TOWER\l" .string "match, or when you've either won or\l" .string "lost a match?$" -BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouBegin: @ 823F969 +BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouBegin: .string "Okay, what are your feelings when\n" .string "you're about to begin a match?$" -BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouveWon: @ 823F9AA +BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouveWon: .string "What do you feel when you've won\n" .string "a match?$" -BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouveLost: @ 823F9D4 +BattleFrontier_BattleTowerLobby_Text_FeelWhatWhenYouveLost: .string "Can I hear about your feelings when\n" .string "you have lost a match?$" -BattleFrontier_BattleTowerLobby_Text_DontThinkMuchAboutIt: @ 823FA0F +BattleFrontier_BattleTowerLobby_Text_DontThinkMuchAboutIt: .string "Oh, so you don't think much about it?\n" .string "You're one cool customer.$" -BattleFrontier_BattleTowerLobby_Text_ChangedYourMind: @ 823FA4F +BattleFrontier_BattleTowerLobby_Text_ChangedYourMind: .string "Hunh? You changed your mind?\n" .string "I guess you're fickle.$" -BattleFrontier_BattleTowerLobby_Text_ThatsHowYouFeel: @ 823FA83 +BattleFrontier_BattleTowerLobby_Text_ThatsHowYouFeel: .string "Okay, so that's how you feel?\n" .string "That's quite original.\p" .string "Thanks!$" -BattleFrontier_BattleTowerLobby_Text_WinsInRowRecorded: @ 823FAC0 +BattleFrontier_BattleTowerLobby_Text_WinsInRowRecorded: .string "The number of matches you win in a row\n" .string "is recorded.\p" .string "I'd better not get beaten in\n" .string "an embarrassing way!$" -BattleFrontier_BattleTowerLobby_Text_CanLeaveUntilLossOrSevenWins: @ 823FB26 +BattleFrontier_BattleTowerLobby_Text_CanLeaveUntilLossOrSevenWins: .string "Once you've entered the BATTLE TOWER,\n" .string "you can't leave until you either lose\l" .string "or you beat seven TRAINERS in a row.\p" @@ -1080,7 +1082,7 @@ BattleFrontier_BattleTowerLobby_Text_CanLeaveUntilLossOrSevenWins: @ 823FB26 .string "to the challenge.$" @ Unused -BattleFrontier_BattleTowerLobby_Text_DoubleBattleRoomConstruction: @ 823FBCE +BattleFrontier_BattleTowerLobby_Text_DoubleBattleRoomConstruction: .string "Welcome to the BATTLE TOWER\n" .string "DOUBLE BATTLE CORNER!\p" .string "Unfortunately, the BATTLE ROOMS\n" @@ -1089,7 +1091,7 @@ BattleFrontier_BattleTowerLobby_Text_DoubleBattleRoomConstruction: @ 823FBCE .string "is completed.$" @ Unused -BattleFrontier_BattleTowerLobby_Text_MultiBattleRoomConstruction: @ 823FC6B +BattleFrontier_BattleTowerLobby_Text_MultiBattleRoomConstruction: .string "Welcome to the BATTLE TOWER\n" .string "MULTI BATTLE CORNER!\p" .string "Unfortunately, the BATTLE ROOMS\n" @@ -1097,34 +1099,34 @@ BattleFrontier_BattleTowerLobby_Text_MultiBattleRoomConstruction: @ 823FC6B .string "Please come back when the work\n" .string "is completed.$" -BattleFrontier_BattleTowerLobby_Text_LookForwardToAnotherChallenge: @ 823FD07 +BattleFrontier_BattleTowerLobby_Text_LookForwardToAnotherChallenge: .string "We look forward to seeing you on\n" .string "another challenge!$" -BattleFrontier_BattleTowerLobby_Text_WhichLevelMode: @ 823FD3B +BattleFrontier_BattleTowerLobby_Text_WhichLevelMode: .string "The BATTLE ROOM offers two levels\n" .string "of challenge, Level 50 and Open Level.\l" .string "Which is your choice?$" @ Unused -BattleFrontier_BattleTowerLobby_Text_PleaseSelectMons: @ 823FD9A +BattleFrontier_BattleTowerLobby_Text_PleaseSelectMons: .string "Please select the POKéMON you wish\n" .string "to enter.$" -BattleFrontier_BattleTowerLobby_Text_OkayToSaveBeforeEntering: @ 823FDC7 +BattleFrontier_BattleTowerLobby_Text_OkayToSaveBeforeEntering: .string "Before entering a BATTLE ROOM, your\n" .string "progress must be saved. Is that okay?$" -BattleFrontier_BattleTowerLobby_Text_ShowYouToBattleRoom: @ 823FE11 +BattleFrontier_BattleTowerLobby_Text_ShowYouToBattleRoom: .string "I will now show you to the\n" .string "{STR_VAR_1} BATTLE ROOM.$" -BattleFrontier_BattleTowerLobby_Text_RecordLastMatch: @ 823FE3C +BattleFrontier_BattleTowerLobby_Text_RecordLastMatch: .string "Shall I record your last BATTLE TOWER\n" .string "match on your FRONTIER PASS?$" @ Unused -BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50: @ 823FE7F +BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50: .string "Excuse me!\p" .string "You don't have {STR_VAR_2} eligible POKéMON.\p" .string "You must have {STR_VAR_2} different POKéMON\n" @@ -1135,7 +1137,7 @@ BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50: @ 823FE7F .string "Please come see me when you are ready.$" @ Unused -BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpen: @ 823FF5D +BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpen: .string "Excuse me!\p" .string "You don't have {STR_VAR_2} eligible POKéMON.\p" .string "You must have {STR_VAR_2} different POKéMON\n" @@ -1145,7 +1147,7 @@ BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpen: @ 823FF5D .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Singles: @ 8240027 +BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Singles: .string "Excuse me!\p" .string "You don't have three eligible POKéMON.\p" .string "You must have three different POKéMON\n" @@ -1155,7 +1157,7 @@ BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Singles: @ 8240027 .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenSingles: @ 824010B +BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenSingles: .string "Excuse me!\p" .string "You don't have three eligible POKéMON.\p" .string "You must have three different POKéMON\n" @@ -1165,7 +1167,7 @@ BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenSingles: @ 824010B .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Doubles: @ 82401DB +BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Doubles: .string "Excuse me!\p" .string "You don't have four eligible POKéMON.\p" .string "You must have four different POKéMON\n" @@ -1175,7 +1177,7 @@ BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Doubles: @ 82401DB .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenDoubles: @ 82402BD +BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenDoubles: .string "Excuse me!\p" .string "You don't have four eligible POKéMON.\p" .string "You must have four different POKéMON\n" @@ -1185,7 +1187,7 @@ BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenDoubles: @ 82402BD .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Multis: @ 824038B +BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Multis: .string "Excuse me!\p" .string "You don't have two eligible POKéMON.\p" .string "You must have two different POKéMON\n" @@ -1195,7 +1197,7 @@ BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLv50Multis: @ 824038B .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenMultis: @ 824046B +BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenMultis: .string "Excuse me!\p" .string "You don't have two eligible POKéMON.\p" .string "You must have two different POKéMON\n" @@ -1205,18 +1207,18 @@ BattleFrontier_BattleTowerLobby_Text_NotEnoughValidMonsLvOpenMultis: @ 824046B .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleTowerLobby_Text_WelcomSingleBattle: @ 8240537 +BattleFrontier_BattleTowerLobby_Text_WelcomSingleBattle: .string "Where the talents of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE TOWER!\p" .string "I am your guide to the SINGLE\n" .string "BATTLE ROOMS.$" -BattleFrontier_BattleTowerLobby_Text_TakeSinglesChallenge: @ 82405B3 +BattleFrontier_BattleTowerLobby_Text_TakeSinglesChallenge: .string "Would you like to take the SINGLE\n" .string "BATTLE ROOM challenge?$" -BattleFrontier_BattleTowerLobby_Text_ExplainSinglesChallenge: @ 82405EC +BattleFrontier_BattleTowerLobby_Text_ExplainSinglesChallenge: .string "The BATTLE TOWER's SINGLE BATTLE\n" .string "ROOMS are facilities for conducting\l" .string "SINGLE BATTLES with three POKéMON.\p" @@ -1231,22 +1233,22 @@ BattleFrontier_BattleTowerLobby_Text_ExplainSinglesChallenge: @ 82405EC .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleTowerLobby_Text_SelectThreeMons: @ 82407A6 +BattleFrontier_BattleTowerLobby_Text_SelectThreeMons: .string "Now please select the three POKéMON\n" .string "that are to be entered.$" -BattleFrontier_BattleTowerLobby_Text_WelcomeDoubleBattle: @ 82407E2 +BattleFrontier_BattleTowerLobby_Text_WelcomeDoubleBattle: .string "Where the talents of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE TOWER!\p" .string "I am your guide to the DOUBLE\n" .string "BATTLE ROOMS.$" -BattleFrontier_BattleTowerLobby_Text_TakeDoublesChallenge: @ 824085E +BattleFrontier_BattleTowerLobby_Text_TakeDoublesChallenge: .string "Would you like to take the DOUBLE\n" .string "BATTLE ROOM challenge?$" -BattleFrontier_BattleTowerLobby_Text_ExplainDoublesChallenge: @ 8240897 +BattleFrontier_BattleTowerLobby_Text_ExplainDoublesChallenge: .string "The BATTLE TOWER's DOUBLE BATTLE\n" .string "ROOMS are facilities for conducting\l" .string "DOUBLE BATTLES with four POKéMON.\p" @@ -1261,22 +1263,22 @@ BattleFrontier_BattleTowerLobby_Text_ExplainDoublesChallenge: @ 8240897 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleTowerLobby_Text_PleaseSelectFourMons: @ 8240A50 +BattleFrontier_BattleTowerLobby_Text_PleaseSelectFourMons: .string "Now please select the four POKéMON\n" .string "that are to be entered.$" -BattleFrontier_BattleTowerLobby_Text_WelcomeMultiBattle: @ 8240A8B +BattleFrontier_BattleTowerLobby_Text_WelcomeMultiBattle: .string "Where the talents of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE TOWER!\p" .string "I am your guide to the MULTI\n" .string "BATTLE ROOMS.$" -BattleFrontier_BattleTowerLobby_Text_TakeMultisChallenge: @ 8240B06 +BattleFrontier_BattleTowerLobby_Text_TakeMultisChallenge: .string "Would you like to take the MULTI\n" .string "BATTLE ROOM challenge?$" -BattleFrontier_BattleTowerLobby_Text_ExplainMultisChallenge: @ 8240B3E +BattleFrontier_BattleTowerLobby_Text_ExplainMultisChallenge: .string "The BATTLE TOWER's MULTI BATTLE\n" .string "ROOMS are facilities for conducting\l" .string "MULTI BATTLES.\p" @@ -1299,22 +1301,22 @@ BattleFrontier_BattleTowerLobby_Text_ExplainMultisChallenge: @ 8240B3E .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleTowerLobby_Text_PleaseSelectTwoMons: @ 8240DDB +BattleFrontier_BattleTowerLobby_Text_PleaseSelectTwoMons: .string "Now please select the two POKéMON\n" .string "that are to be entered.$" -BattleFrontier_BattleTowerLobby_Text_WelcomeLinkMultiBattle: @ 8240E15 +BattleFrontier_BattleTowerLobby_Text_WelcomeLinkMultiBattle: .string "Where the talents of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE TOWER!\p" .string "I am your guide to the LINK MULTI\n" .string "BATTLE ROOMS.$" -BattleFrontier_BattleTowerLobby_Text_TakeLinkMultisChallenge: @ 8240E95 +BattleFrontier_BattleTowerLobby_Text_TakeLinkMultisChallenge: .string "Would you like to take the LINK MULTI\n" .string "BATTLE ROOM challenge?$" -BattleFrontier_BattleTowerLobby_Text_ExplainLinkMultisChallenge: @ 8240ED2 +BattleFrontier_BattleTowerLobby_Text_ExplainLinkMultisChallenge: .string "The BATTLE TOWER's MULTI BATTLE\n" .string "ROOMS are facilities for conducting\l" .string "MULTI BATTLES with a friend.\p" @@ -1335,76 +1337,76 @@ BattleFrontier_BattleTowerLobby_Text_ExplainLinkMultisChallenge: @ 8240ED2 .string "Once you start, you must battle seven\n" .string "MULTI BATTLES in a row nonstop.$" -BattleFrontier_BattleTowerLobby_Text_PleaseSelectTwoMons2: @ 824115E +BattleFrontier_BattleTowerLobby_Text_PleaseSelectTwoMons2: .string "Now please select the two POKéMON\n" .string "that are to be entered.$" @ Unused -BattleFrontier_BattleTowerLobby_Text_ChoseSameMonAsFriend: @ 8241198 +BattleFrontier_BattleTowerLobby_Text_ChoseSameMonAsFriend: .string "You have chosen the same kind of\n" .string "POKéMON as your friend.\p" .string "Please choose two POKéMON different\n" .string "from your friend's, match the level\l" .string "you wish to enter, and register again.$" -BattleFrontier_BattleTowerLobby_Text_LinkMultiOnlyForTwoPlayers: @ 8241240 +BattleFrontier_BattleTowerLobby_Text_LinkMultiOnlyForTwoPlayers: .string "The LINK MULTI BATTLE ROOM challenge\n" .string "is only for two linked players.$" -BattleFrontier_BattleTowerLobby_Text_FriendAlsoSelectedMon: @ 8241285 +BattleFrontier_BattleTowerLobby_Text_FriendAlsoSelectedMon: .string "Your friend has also selected\n" .string "the POKéMON {STR_VAR_1}.$" -BattleFrontier_BattleTowerLobby_Text_FriendAlsoSelectedMons: @ 82412B3 +BattleFrontier_BattleTowerLobby_Text_FriendAlsoSelectedMons: .string "Your friend has also selected the\n" .string "POKéMON {STR_VAR_1} and {STR_VAR_2}.$" -BattleFrontier_BattleTowerLobby_Text_FriendChoseDifferentLvlMode: @ 82412E8 +BattleFrontier_BattleTowerLobby_Text_FriendChoseDifferentLvlMode: .string "Your friend has chosen a different\n" .string "battle level.$" @ Unused -BattleFrontier_BattleTowerLobby_Text_FriendChoseDifferentLvlModeSameMon: @ 8241319 +BattleFrontier_BattleTowerLobby_Text_FriendChoseDifferentLvlModeSameMon: .string "Your friend has chosen a different\n" .string "battle level.\p" .string "Your friend has also selected\n" .string "the POKéMON {STR_VAR_1}.$" @ Unused -BattleFrontier_BattleTowerLobby_Text_FriendChoseDifferentLvlModeSameMons: @ 8241378 +BattleFrontier_BattleTowerLobby_Text_FriendChoseDifferentLvlModeSameMons: .string "Your friend has chosen a different\n" .string "battle level.\p" .string "Your friend has also selected the\n" .string "POKéMON {STR_VAR_1} and {STR_VAR_2}.$" -BattleFrontier_BattleTowerLobby_Text_ChooseDifferentMonsMatchLvlMode: @ 82413DE +BattleFrontier_BattleTowerLobby_Text_ChooseDifferentMonsMatchLvlMode: .string "Please choose two POKéMON different\n" .string "from your friend's, match the level\l" .string "you wish to enter, and register again.$" -BattleFrontier_BattleTowerLobby_Text_SaveGameBeforeShowingIn: @ 824144D +BattleFrontier_BattleTowerLobby_Text_SaveGameBeforeShowingIn: .string "I will save the game before\n" .string "showing you in. Please wait.$" -BattleFrontier_BattleTowerLobby_Text_CongratsDefeatedMaiden: @ 8241486 +BattleFrontier_BattleTowerLobby_Text_CongratsDefeatedMaiden: .string "Congratulations!\n" .string "You have defeated the SALON MAIDEN\l" .string "and swept seven TRAINERS!$" -BattleFrontier_BattleTowerLobby_Text_AwardYouTheseBattlePoints: @ 82414D4 +BattleFrontier_BattleTowerLobby_Text_AwardYouTheseBattlePoints: .string "In recognition of your infinite talent,\n" .string "we award you these Battle Point(s).$" -BattleFrontier_Text_ObtainedXBattlePoints: @ 8241520 +BattleFrontier_Text_ObtainedXBattlePoints: .string "{PLAYER} obtained {STR_VAR_1} Battle Point(s).$" -BattleFrontier_BattleTowerLobby_Text_RulesAreListed: @ 8241540 +BattleFrontier_BattleTowerLobby_Text_RulesAreListed: .string "The BATTLE TOWER rules are listed.$" -BattleFrontier_BattleTowerLobby_Text_ReadWhichHeading: @ 8241563 +BattleFrontier_BattleTowerLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" -BattleFrontier_BattleTowerLobby_Text_ExplainTowerRules: @ 8241586 +BattleFrontier_BattleTowerLobby_Text_ExplainTowerRules: .string "The BATTLE TOWER is a facility where\n" .string "four types of battles are waged--\l" .string "SINGLE BATTLE, DOUBLE BATTLE, MULTI\l" @@ -1414,7 +1416,7 @@ BattleFrontier_BattleTowerLobby_Text_ExplainTowerRules: @ 8241586 .string "Please speak with a guide offering\n" .string "the type of battle you wish to enter.$" -BattleFrontier_BattleTowerLobby_Text_ExplainMonRules: @ 8241693 +BattleFrontier_BattleTowerLobby_Text_ExplainMonRules: .string "Depending on the BATTLE ROOM you are\n" .string "entering, you will be required to take\l" .string "a certain number of POKéMON.\p" @@ -1423,7 +1425,7 @@ BattleFrontier_BattleTowerLobby_Text_ExplainMonRules: @ 8241693 .string "The DOUBLE BATTLE mode requires four,\n" .string "and the MULTI modes both require two.$" -BattleFrontier_BattleTowerLobby_Text_ExplainSalonRules: @ 8241777 +BattleFrontier_BattleTowerLobby_Text_ExplainSalonRules: .string "The BATTLE SALON is where you must\n" .string "find a partner to form a tag team for\l" .string "the MULTI BATTLE ROOM challenge.\p" @@ -1433,7 +1435,7 @@ BattleFrontier_BattleTowerLobby_Text_ExplainSalonRules: @ 8241777 .string "You may choose a new tag partner\n" .string "after winning seven straight matches.$" -BattleFrontier_BattleTowerLobby_Text_ExplainMultiLinkRules: @ 824187E +BattleFrontier_BattleTowerLobby_Text_ExplainMultiLinkRules: .string "The LINK MULTI BATTLE Mode is for two\n" .string "friends to mount a challenge together.\p" .string "You and your friend must be linked with\n" diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index f4de372322..b7354d9a20 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -5,7 +5,7 @@ .set LOCALID_PLAYER, 5 .set LOCALID_PARTNER, 6 -BattleFrontier_BattleTowerMultiBattleRoom_MapScripts:: @ 8248EE8 +BattleFrontier_BattleTowerMultiBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerMultiBattleRoom_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerMultiBattleRoom_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerMultiBattleRoom_OnFrame @@ -15,14 +15,14 @@ BattleFrontier_BattleTowerMultiBattleRoom_MapScripts:: @ 8248EE8 @ The player is represented instead by LOCALID_PLAYER, which has the gfx id VAR_OBJ_GFX_ID_F @ The multi partner is represented by LOCALID_PARTNER, which has the gfx id VAR_OBJ_GFX_ID_E -BattleFrontier_BattleTowerMultiBattleRoom_OnTransition: @ 8248EF8 +BattleFrontier_BattleTowerMultiBattleRoom_OnTransition: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetObjGfx compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetLinkPlayerGfx end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetObjGfx:: @ 8248F0F +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetObjGfx:: tower_setpartnergfx checkplayergender compare VAR_RESULT, FEMALE @@ -30,27 +30,27 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetObjGfx:: @ 8248F0F setvar VAR_OBJ_GFX_ID_F, OBJ_EVENT_GFX_BRENDAN_NORMAL return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetPlayerGfxFemale:: @ 8248F29 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_F, OBJ_EVENT_GFX_MAY_NORMAL return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetLinkPlayerGfx:: @ 8248F2F +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetLinkPlayerGfx:: special SetBattleTowerLinkPlayerGfx return -BattleFrontier_BattleTowerMultiBattleRoom_OnWarp: @ 8248F33 +BattleFrontier_BattleTowerMultiBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_HidePlayerObj .2byte 0 -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_HidePlayerObj:: @ 8248F3D +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_HidePlayerObj:: hideobjectat OBJ_EVENT_ID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM end -BattleFrontier_BattleTowerMultiBattleRoom_OnFrame: @ 8248F43 +BattleFrontier_BattleTowerMultiBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_EnterRoom:: @ 8248F4D +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_EnterRoom:: setvar VAR_TEMP_0, 1 applymovement LOCALID_PLAYER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_PlayerEnterRoom applymovement LOCALID_PARTNER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_PartnerEnterRoom @@ -67,7 +67,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_EnterRoom:: @ 8248F4D frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_OpponentsEnter:: @ 8248FB4 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_OpponentsEnter:: tower_setopponent addobject LOCALID_OPPONENT_1 addobject LOCALID_OPPONENT_2 @@ -89,7 +89,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_OpponentsEnter:: @ 8248FB4 waitmessage goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DoTowerBattle -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DoOpponentIntrosLink:: @ 8249026 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DoOpponentIntrosLink:: tower_getopponentintro 0 delay 15 applymovement LOCALID_OPPONENT_1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_WalkInPlaceLeft @@ -103,18 +103,18 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DoOpponentIntrosLink:: @ 8 messageautoscroll gStringVar4 waitmessage delay 48 -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DoTowerBattle:: @ 8249069 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DoTowerBattle:: call BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle switch VAR_RESULT case B_OUTCOME_WON, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DefeatedOpponents -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost:: @ 824907E +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST tower_set TOWER_DATA_LVL_MODE setvar VAR_0x8004, FANCOUNTER_USED_BATTLE_TOWER special Script_TryGainNewFanFromCounter goto BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DefeatedOpponents:: @ 82490AA +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DefeatedOpponents:: call BattleFrontier_EventScript_IncrementWinStreak tower_setbattlewon switch VAR_RESULT @@ -135,19 +135,19 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DefeatedOpponents:: @ 8249 msgbox BattleFrontier_BattleTowerBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RestoreParty -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetorePartyMsgLink:: @ 8249118 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetorePartyMsgLink:: messageautoscroll BattleFrontier_BattleTowerBattleRoom_Text_RestoreMonsToFullHealth waitmessage delay 48 -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RestoreParty:: @ 8249121 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RestoreParty:: special LoadPlayerParty frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_249514 + call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReconnectLink playfanfare MUS_HEAL waitfanfare special HealPlayerParty -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: @ 8249143 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: frontier_get FRONTIER_DATA_BATTLE_NUM call BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSet compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS @@ -155,7 +155,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: @ 8 call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoRecord - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 + multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattle @@ -163,44 +163,44 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: @ 8 case 3, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoRecord:: @ 82491B1 - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoRecord:: + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskPauseChallenge case 2, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattle:: @ 82491E7 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattle:: message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RecordBattle case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RecordBattle:: @ 8249219 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RecordBattle:: call BattleFrontier_EventScript_SaveBattle goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskPauseChallenge:: @ 8249223 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattleTowerBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case YES, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_PauseChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallenge:: @ 8249251 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge:: @ 8249283 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge:: closemessage clearflag FLAG_TEMP_2 applymovement LOCALID_PLAYER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_FaceBattle @@ -212,14 +212,14 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge:: @ 8249 goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_OpponentsEnter end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyWon:: @ 82492AF +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON tower_set TOWER_DATA_LVL_MODE setvar VAR_0x8004, FANCOUNTER_USED_BATTLE_TOWER special Script_TryGainNewFanFromCounter goto BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_PauseChallenge:: @ 82492DB +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_PauseChallenge:: message BattleFrontier_BattleTowerBattleRoom_Text_SavingPleaseWait waitmessage tower_save CHALLENGE_STATUS_PAUSED @@ -229,7 +229,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_PauseChallenge:: @ 82492DB frontier_reset end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSet:: @ 82492FD +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSet:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSetLink copyvar VAR_TEMP_F, VAR_RESULT @@ -241,37 +241,37 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSet:: case 5, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor6thOpponentSet case 6, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor7thOpponentSet -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor2ndOpponentSet:: @ 8249354 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor2ndOpponentSet:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor2ndOpponentSet waitmessage return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor3rdOpponentSet:: @ 824935B +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor3rdOpponentSet:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor3rdOpponentSet waitmessage return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor4thOpponentSet:: @ 8249362 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor4thOpponentSet:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor4thOpponentSet waitmessage return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor5thOpponentSet:: @ 8249369 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor5thOpponentSet:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor5thOpponentSet waitmessage return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor6thOpponentSet:: @ 8249370 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor6thOpponentSet:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor6thOpponentSet waitmessage return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor7thOpponentSet:: @ 8249377 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor7thOpponentSet:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor7thOpponentSet waitmessage return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSetLink:: @ 824937E +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSetLink:: copyvar VAR_TEMP_F, VAR_RESULT switch VAR_TEMP_F case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor2ndOpponentSetLink @@ -281,50 +281,50 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSetLin case 5, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor6thOpponentSetLink case 6, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor7thOpponentSetLink -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor2ndOpponentSetLink:: @ 82493CA +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor2ndOpponentSetLink:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor2ndOpponentSet waitmessage goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor3rdOpponentSetLink:: @ 82493D6 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor3rdOpponentSetLink:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor3rdOpponentSet waitmessage goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor4thOpponentSetLink:: @ 82493E2 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor4thOpponentSetLink:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor4thOpponentSet waitmessage goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor5thOpponentSetLink:: @ 82493EE +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor5thOpponentSetLink:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor5thOpponentSet waitmessage goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor6thOpponentSetLink:: @ 82493FA +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor6thOpponentSetLink:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor6thOpponentSet waitmessage goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor7thOpponentSetLink:: @ 8249406 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor7thOpponentSetLink:: message BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor7thOpponentSet waitmessage goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_LinkDelayForMsg:: @ 8249412 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_LinkDelayForMsg:: waitmessage delay 48 return -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink:: @ 8249417 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink:: goto_if_set FLAG_TEMP_2, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLinkNoRecord - multichoice 19, 6, MULTI_GO_ON_RECORD_RETIRE, 1 + multichoice 19, 6, MULTI_GO_ON_RECORD_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink @@ -332,15 +332,15 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink:: case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLinkNoRecord:: @ 8249457 - multichoice 20, 8, MULTI_GO_ON_RETIRE, 1 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLinkNoRecord:: + multichoice 20, 8, MULTI_GO_ON_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink:: @ 8249483 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink:: setvar VAR_0x8004, BATTLE_TOWER_LINK_CONTINUE setvar VAR_0x8005, 0 message gText_LinkStandby3 @@ -352,10 +352,10 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink:: @ goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_LinkDelayForMsg end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink:: @ 82494A8 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink:: message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents @@ -364,16 +364,16 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink:: @ 82 goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink:: @ 82494DD +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink:: message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents end -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink:: @ 82494FA +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink:: setvar VAR_0x8004, BATTLE_TOWER_LINK_RETIRE setvar VAR_0x8005, 0 message gText_LinkStandby3 @@ -383,12 +383,11 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink:: @ 82 goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost end -@ Some link function. Sets battle type flags at least -BattleFrontier_BattleTowerMultiBattleRoom_EventScript_249514:: @ 8249514 - special sub_813B534 +BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReconnectLink:: + special BattleTowerReconnectLink return -BattleFrontier_BattleTowerMultiBattleRoom_Movement_PlayerEnterRoom: @ 8249518 +BattleFrontier_BattleTowerMultiBattleRoom_Movement_PlayerEnterRoom: walk_up walk_up walk_up @@ -396,7 +395,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_Movement_PlayerEnterRoom: @ 8249518 face_right step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_PartnerEnterRoom: @ 824951E +BattleFrontier_BattleTowerMultiBattleRoom_Movement_PartnerEnterRoom: walk_left walk_up walk_up @@ -404,15 +403,15 @@ BattleFrontier_BattleTowerMultiBattleRoom_Movement_PartnerEnterRoom: @ 824951E face_right step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_FaceAttendant: @ 8249524 +BattleFrontier_BattleTowerMultiBattleRoom_Movement_FaceAttendant: face_left step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_FaceBattle: @ 8249526 +BattleFrontier_BattleTowerMultiBattleRoom_Movement_FaceBattle: walk_in_place_fastest_right step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent1Enter: @ 8249528 +BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent1Enter: walk_down walk_down walk_down @@ -420,7 +419,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent1Enter: @ 8249528 face_left step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent2Enter: @ 824952E +BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent2Enter: walk_right walk_down walk_down @@ -428,93 +427,93 @@ BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent2Enter: @ 824952E face_left step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent2Exit: @ 8249534 +BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent2Exit: walk_up walk_up walk_up set_invisible step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent1Exit: @ 8249539 +BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent1Exit: walk_up walk_up walk_up walk_up step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_AttendantApproachPlayer: @ 824953E +BattleFrontier_BattleTowerMultiBattleRoom_Movement_AttendantApproachPlayer: walk_right walk_right step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_AttendantReturnToPos: @ 8249541 +BattleFrontier_BattleTowerMultiBattleRoom_Movement_AttendantReturnToPos: walk_left walk_left walk_in_place_fastest_right step_end -BattleFrontier_BattleTowerMultiBattleRoom_Movement_WalkInPlaceLeft: @ 8249545 +BattleFrontier_BattleTowerMultiBattleRoom_Movement_WalkInPlaceLeft: walk_in_place_left step_end -BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor2ndOpponentSet: @ 8249547 +BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor2ndOpponentSet: .string "The 2nd set of opponents is next.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor3rdOpponentSet: @ 8249578 +BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor3rdOpponentSet: .string "The 3rd set of opponents is next.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor4thOpponentSet: @ 82495A9 +BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor4thOpponentSet: .string "The 4th set of opponents is next.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor5thOpponentSet: @ 82495DA +BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor5thOpponentSet: .string "The 5th set of opponents is next.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor6thOpponentSet: @ 824960B +BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor6thOpponentSet: .string "The 6th set of opponents is next.\n" .string "Are you ready?$" -BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor7thOpponentSet: @ 824963C +BattleFrontier_BattleTowerMultiBattleRoom_Text_ReadyFor7thOpponentSet: .string "The 7th set of opponents is next.\n" .string "Are you ready?$" @ Unused -BattleFrontier_BattleTowerMultiBattleRoom_Text_2ndOpponentSetNext: @ 824966D +BattleFrontier_BattleTowerMultiBattleRoom_Text_2ndOpponentSetNext: .string "The 2nd set of opponents is next.\n" .string "Do your best!$" @ Unused -BattleFrontier_BattleTowerMultiBattleRoom_Text_3rdOpponentSetNext: @ 824969D +BattleFrontier_BattleTowerMultiBattleRoom_Text_3rdOpponentSetNext: .string "The 3rd set of opponents is next.\n" .string "Do your best!$" @ Unused -BattleFrontier_BattleTowerMultiBattleRoom_Text_4thOpponentSetNext: @ 82496CD +BattleFrontier_BattleTowerMultiBattleRoom_Text_4thOpponentSetNext: .string "The 4th set of opponents is next.\n" .string "Do your best!$" @ Unused -BattleFrontier_BattleTowerMultiBattleRoom_Text_5thOpponentSetNext: @ 82496FD +BattleFrontier_BattleTowerMultiBattleRoom_Text_5thOpponentSetNext: .string "The 5th set of opponents is next.\n" .string "Do your best!$" @ Unused -BattleFrontier_BattleTowerMultiBattleRoom_Text_6thOpponentSetNext: @ 824972D +BattleFrontier_BattleTowerMultiBattleRoom_Text_6thOpponentSetNext: .string "The 6th set of opponents is next.\n" .string "Do your best!$" @ Unused -BattleFrontier_BattleTowerMultiBattleRoom_Text_7thOpponentSetNext: @ 824975D +BattleFrontier_BattleTowerMultiBattleRoom_Text_7thOpponentSetNext: .string "The 7th set of opponents is next.\n" .string "Do your best!$" -gText_LinkStandby3:: @ 824978D +gText_LinkStandby3:: .string "Link standby…$" -gText_YourPartnerHasRetired:: @ 824979B +gText_YourPartnerHasRetired:: .string "Your partner has retired.\p" .string "Your BATTLE ROOM challenge\n" .string "will be canceled.$" diff --git a/data/maps/BattleFrontier_BattleTowerMultiCorridor/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiCorridor/scripts.inc index 5e496527ea..9c6a8bb2bf 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiCorridor/scripts.inc @@ -3,7 +3,7 @@ .set LOCALID_ATTENDANT_2, 3 .set LOCALID_PARTNER, 4 -BattleFrontier_BattleTowerMultiCorridor_MapScripts:: @ 8248D4A +BattleFrontier_BattleTowerMultiCorridor_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerMultiCorridor_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerMultiCorridor_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerMultiCorridor_OnFrame @@ -13,14 +13,14 @@ BattleFrontier_BattleTowerMultiCorridor_MapScripts:: @ 8248D4A @ The player is represented instead by LOCALID_PLAYER, and has the gfx id VAR_OBJ_GFX_ID_F @ The multi partner is represented by LOCALID_PARTNER, and has the gfx id VAR_OBJ_GFX_ID_E -BattleFrontier_BattleTowerMultiCorridor_OnTransition: @ 8248D5A +BattleFrontier_BattleTowerMultiCorridor_OnTransition: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_SetObjGfx compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_SetLinkPlayerGfx end -BattleFrontier_BattleTowerMultiCorridor_EventScript_SetObjGfx:: @ 8248D71 +BattleFrontier_BattleTowerMultiCorridor_EventScript_SetObjGfx:: tower_setpartnergfx checkplayergender compare VAR_RESULT, FEMALE @@ -28,30 +28,30 @@ BattleFrontier_BattleTowerMultiCorridor_EventScript_SetObjGfx:: @ 8248D71 setvar VAR_OBJ_GFX_ID_F, OBJ_EVENT_GFX_BRENDAN_NORMAL return -BattleFrontier_BattleTowerMultiCorridor_EventScript_SetPlayerGfxFemale:: @ 8248D8B +BattleFrontier_BattleTowerMultiCorridor_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_F, OBJ_EVENT_GFX_MAY_NORMAL return -BattleFrontier_BattleTowerMultiCorridor_EventScript_SetLinkPlayerGfx:: @ 8248D91 +BattleFrontier_BattleTowerMultiCorridor_EventScript_SetLinkPlayerGfx:: special SetBattleTowerLinkPlayerGfx return -BattleFrontier_BattleTowerMultiCorridor_OnWarp: @ 8248D95 +BattleFrontier_BattleTowerMultiCorridor_OnWarp: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerMultiCorridor_EventScript_SetUpObjects .2byte 0 -BattleFrontier_BattleTowerMultiCorridor_EventScript_SetUpObjects:: @ 8248D9F +BattleFrontier_BattleTowerMultiCorridor_EventScript_SetUpObjects:: hideobjectat OBJ_EVENT_ID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR hideobjectat LOCALID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR hideobjectat LOCALID_PARTNER, MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR special OffsetCameraForBattle end -BattleFrontier_BattleTowerMultiCorridor_OnFrame: @ 8248DB2 +BattleFrontier_BattleTowerMultiCorridor_OnFrame: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerMultiCorridor_EventScript_EnterCorridor .2byte 0 -BattleFrontier_BattleTowerMultiCorridor_EventScript_EnterCorridor:: @ 8248DBC +BattleFrontier_BattleTowerMultiCorridor_EventScript_EnterCorridor:: lockall setflag FLAG_ENABLE_MULTI_CORRIDOR_DOOR setvar VAR_0x8004, 14 @ x coord of far door, used by DrawDoor @@ -94,7 +94,7 @@ BattleFrontier_BattleTowerMultiCorridor_EventScript_EnterCorridor:: @ 8248DBC releaseall end -BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToBattleRoom:: @ 8248E71 +BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToBattleRoom:: compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToNormalBattleRoom compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES @@ -105,23 +105,23 @@ BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToBattleRoom:: @ 8248E71 call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToLinkMultiBattleRoom return -BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToNormalBattleRoom:: @ 8248E9E +BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToNormalBattleRoom:: warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM, 255, 4, 8 waitstate return -BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToMultiBattleRoom:: @ 8248EA8 +BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToMultiBattleRoom:: warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM, 255, 4, 5 waitstate return @ Unnecessary duplicate of the above -BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToLinkMultiBattleRoom:: @ 8248EB2 +BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToLinkMultiBattleRoom:: warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM, 255, 4, 5 waitstate return -BattleFrontier_BattleTowerMultiCorridor_Movement_PlayerWalkToDoor: @ 8248EBC +BattleFrontier_BattleTowerMultiCorridor_Movement_PlayerWalkToDoor: walk_down walk_right walk_right @@ -131,7 +131,7 @@ BattleFrontier_BattleTowerMultiCorridor_Movement_PlayerWalkToDoor: @ 8248EBC walk_right step_end -BattleFrontier_BattleTowerMultiCorridor_Movement_PartnerWalkToDoor: @ 8248EC4 +BattleFrontier_BattleTowerMultiCorridor_Movement_PartnerWalkToDoor: walk_down walk_left walk_left @@ -141,7 +141,7 @@ BattleFrontier_BattleTowerMultiCorridor_Movement_PartnerWalkToDoor: @ 8248EC4 walk_left step_end -BattleFrontier_BattleTowerMultiCorridor_Movement_PlayerAttendantWalkToDoor: @ 8248ECC +BattleFrontier_BattleTowerMultiCorridor_Movement_PlayerAttendantWalkToDoor: walk_right walk_right walk_right @@ -152,7 +152,7 @@ BattleFrontier_BattleTowerMultiCorridor_Movement_PlayerAttendantWalkToDoor: @ 82 walk_in_place_fastest_right step_end -BattleFrontier_BattleTowerMultiCorridor_Movement_PartnerAttendantWalkToDoor: @ 8248ED5 +BattleFrontier_BattleTowerMultiCorridor_Movement_PartnerAttendantWalkToDoor: walk_left walk_left walk_left @@ -163,19 +163,19 @@ BattleFrontier_BattleTowerMultiCorridor_Movement_PartnerAttendantWalkToDoor: @ 8 walk_in_place_fastest_left step_end -BattleFrontier_BattleTowerMultiCorridor_Movement_TrainerEnterDoor: @ 8248EDE +BattleFrontier_BattleTowerMultiCorridor_Movement_TrainerEnterDoor: delay_16 walk_up walk_up set_invisible step_end -BattleFrontier_BattleTowerMultiCorridor_Movement_AttendantEnterDoor: @ 8248EE3 +BattleFrontier_BattleTowerMultiCorridor_Movement_AttendantEnterDoor: walk_up set_invisible step_end -BattleFrontier_BattleTowerMultiCorridor_Movement_ExitElevator: @ 8248EE6 +BattleFrontier_BattleTowerMultiCorridor_Movement_ExitElevator: walk_down step_end diff --git a/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/scripts.inc index 71487225ca..4a6d29446e 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/scripts.inc @@ -1,17 +1,17 @@ .set LOCALID_ATTENDANT, 1 -BattleFrontier_BattleTowerMultiPartnerRoom_MapScripts:: @ 8243D92 +BattleFrontier_BattleTowerMultiPartnerRoom_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleTowerMultiPartnerRoom_OnResume map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerMultiPartnerRoom_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerMultiPartnerRoom_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerMultiPartnerRoom_OnFrame .byte 0 -BattleFrontier_BattleTowerMultiPartnerRoom_OnResume: @ 8243DA7 +BattleFrontier_BattleTowerMultiPartnerRoom_OnResume: pyramid_resetparty end -BattleFrontier_BattleTowerMultiPartnerRoom_OnTransition: @ 8243DB0 +BattleFrontier_BattleTowerMultiPartnerRoom_OnTransition: goto_if_set FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_ChosePartner clearflag FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_1 clearflag FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_2 @@ -24,7 +24,7 @@ BattleFrontier_BattleTowerMultiPartnerRoom_OnTransition: @ 8243DB0 tower_loadpartners end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_ChosePartner:: @ 8243DDA +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_ChosePartner:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_BOY_1 setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_BOY_1 setvar VAR_OBJ_GFX_ID_2, OBJ_EVENT_GFX_BOY_1 @@ -38,26 +38,26 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_ChosePartner:: @ 8243DDA setobjectxyperm LOCALID_ATTENDANT, 10, 2 end -BattleFrontier_BattleTowerMultiPartnerRoom_OnWarp: @ 8243E14 +BattleFrontier_BattleTowerMultiPartnerRoom_OnWarp: map_script_2 VAR_TEMP_3, 1, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TurnPlayerNorth:: @ 8243E1E +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleTowerMultiPartnerRoom_OnFrame: @ 8243E23 +BattleFrontier_BattleTowerMultiPartnerRoom_OnFrame: map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterRoom map_script_2 VAR_TEMP_3, 1, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_ExitRoom .2byte 0 -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_ExitRoom:: @ 8243E35 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_ExitRoom:: lockall setvar VAR_TEMP_3, 0 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterElevator end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterRoom:: @ 8243E41 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterRoom:: lockall applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterRoom waitmovement 0 @@ -72,33 +72,33 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterRoom:: @ 8243E41 releaseall end -BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterRoom: @ 8243E75 +BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterRoom: walk_down step_end -BattleFrontier_BattleTowerMultiPartnerRoom_Movement_AttendantBlockExit: @ 8243E77 +BattleFrontier_BattleTowerMultiPartnerRoom_Movement_AttendantBlockExit: walk_left walk_in_place_fastest_down step_end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Attendant:: @ 8243E7A +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Attendant:: lock faceplayer message BattleFrontier_BattleTowerMultiPartnerRoom_Text_QuitLookingForPartner waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_QuitChallenge msgbox BattleFrontier_BattleTowerMultiPartnerRoom_Text_PleaseFindPartner2, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_QuitChallenge:: @ 8243E9D +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_QuitChallenge:: frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE goto BattleFrontier_BattleTower_EventScript_WarpToLobbyLost end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterElevator:: @ 8243EB5 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterElevator:: msgbox BattleFrontier_BattleTowerMultiPartnerRoom_Text_ThankYouForChoosingPartner, MSGBOX_DEFAULT closemessage applymovement LOCALID_ATTENDANT, Common_Movement_WalkInPlaceFastestUp @@ -113,59 +113,59 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterElevator:: @ 8243EB5 releaseall end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_MoveToElevator:: @ 8243EE4 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_MoveToElevator:: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_AttendantEnterElevator applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterElevator waitmovement 0 return @ Unused -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_MoveToElevatorEast: @ 8243EF6 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_MoveToElevatorEast: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_AttendantEnterElevator applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterElevatorEast waitmovement 0 return @ Unused -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_MoveToElevatorWest: @ 8243F08 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_MoveToElevatorWest: applymovement LOCALID_ATTENDANT, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_AttendantEnterElevator applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEneterElevatorWest waitmovement 0 return -BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterElevator: @ 8243F1A +BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterElevator: walk_up walk_up set_invisible step_end @ Functionally unused -BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterElevatorEast: @ 8243F1E +BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEnterElevatorEast: walk_right walk_up set_invisible step_end @ Functionally unused -BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEneterElevatorWest: @ 8243F22 +BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PlayerEneterElevatorWest: walk_left walk_up set_invisible step_end -BattleFrontier_BattleTowerMultiPartnerRoom_Movement_AttendantEnterElevator: @ 8243F26 +BattleFrontier_BattleTowerMultiPartnerRoom_Movement_AttendantEnterElevator: walk_up set_invisible step_end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner1:: @ 8243F29 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner1:: lock faceplayer setvar VAR_TEMP_2, 0 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner:: @ 8243F36 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner:: goto_if_set FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner tower_dopartnermsg PARTNER_MSGID_INTRO waitmessage @@ -175,7 +175,7 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner:: waitbuttonpress tower_dopartnermsg PARTNER_MSGID_MON2_ASK waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner @@ -194,24 +194,24 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner:: release end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner:: @ 8243FC3 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner:: tower_dopartnermsg PARTNER_MSGID_REJECT waitmessage waitbuttonpress release end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_PartnerExit:: @ 8243FD4 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_PartnerExit:: applymovement VAR_LAST_TALKED, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PartnerExit waitmovement 0 return -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_PartnerExitSouth:: @ 8243FDF +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_PartnerExitSouth:: applymovement VAR_LAST_TALKED, BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PartnerExitSouth waitmovement 0 return -BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PartnerExit: @ 8243FEA +BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PartnerExit: walk_fast_up walk_fast_up walk_fast_up @@ -221,7 +221,7 @@ BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PartnerExit: @ 8243FEA walk_fast_up step_end -BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PartnerExitSouth: @ 8243FF2 +BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PartnerExitSouth: walk_fast_left walk_fast_up walk_fast_up @@ -232,131 +232,131 @@ BattleFrontier_BattleTowerMultiPartnerRoom_Movement_PartnerExitSouth: @ 8243FF2 walk_fast_up step_end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner2:: @ 8243FFB +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner2:: lock faceplayer setvar VAR_TEMP_2, 1 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner3:: @ 8244008 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner3:: lock faceplayer setvar VAR_TEMP_2, 2 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner4:: @ 8244015 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner4:: lock faceplayer setvar VAR_TEMP_2, 3 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner5:: @ 8244022 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner5:: lock faceplayer setvar VAR_TEMP_2, 4 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner6:: @ 824402F +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner6:: lock faceplayer setvar VAR_TEMP_2, 5 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner7:: @ 824403C +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner7:: lock faceplayer setvar VAR_TEMP_2, 6 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner end -BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner8:: @ 8244049 +BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Partner8:: lock faceplayer setvar VAR_TEMP_2, 7 goto BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner end -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PleaseFindPartner: @ 8244056 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PleaseFindPartner: .string "Please find a partner from out of\n" .string "the TRAINERS gathered here.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_QuitLookingForPartner: @ 8244094 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_QuitLookingForPartner: .string "{PLAYER}, you have not found a partner\n" .string "for your tag team.\p" .string "Would you like to quit looking and\n" .string "return to the reception counter?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PleaseFindPartner2: @ 824410C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PleaseFindPartner2: .string "Then, please find a partner from\n" .string "the TRAINERS gathered here.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ThankYouForChoosingPartner:: @ 8244149 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ThankYouForChoosingPartner:: .string "Thank you for choosing a partner.\p" .string "I will now show you to your\n" .string "MULTI BATTLE ROOM.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Intro:: @ 824419A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Intro:: .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" .string "You can call me {STR_VAR_3}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Mon1:: @ 82441CA +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Mon1:: .string "On {STR_VAR_1}'s advice, I brought\n" .string "one {STR_VAR_3} with {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Mon2Ask:: @ 82441F7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Mon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Please, let me join you as a tag team.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Accept:: @ 824422E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Accept:: .string "Thank you!\n" .string "I'll go register right now.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Reject:: @ 8244255 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice1Reject:: .string "I really wanted to form a tag team\n" .string "with you, {PLAYER}…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Intro:: @ 8244286 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Intro:: .string "I am {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" .string "My name is {STR_VAR_3}.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Mon1:: @ 82442B2 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Mon1:: .string "I got advice from {STR_VAR_1} and chose\n" .string "one {STR_VAR_3} with {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Mon2Ask:: @ 82442E4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Mon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Please, let's form a tag team!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Accept:: @ 8244313 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Accept:: .string "Thank you very much!\n" .string "I'll be done with registration quickly!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Reject:: @ 8244350 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_UnusedApprentice2Reject:: .string "{PLAYER}, I was hoping that I could\n" .string "partner up with you…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Intro:: @ 8244383 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Intro:: .string "Um, my name's {STR_VAR_3}, and I'm\n" .string "{STR_VAR_1}'s no. {STR_VAR_2} apprentice.\p" .string "Snivel…\p" .string "I'm sorry!\n" .string "This tension is making me cry…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Mon1:: @ 82443E7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Mon1:: .string "{STR_VAR_3} advised me, so I have\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Mon2Ask:: @ 8244413 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Mon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Snivel…\n" .string "Please, please team up with me!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Accept:: @ 824444B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Accept:: .string "Oh, really? You will?\n" .string "Awesome! Wicked! Awoooh!\p" .string "Oh… I'm sorry…\n" @@ -364,119 +364,119 @@ BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Accept:: @ 824444B .string "I'll go register right away.\n" .string "Please don't go away!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Reject:: @ 82444D6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Reject:: .string "Oh, b-but…\n" .string "Sob… Waaaaah!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Intro:: @ 82444EF +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Intro:: .string "Hi, there! I'm {STR_VAR_3}!\n" .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Mon1:: @ 824451E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Mon1:: .string "{STR_VAR_3} recommended my crew.\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Mon2Ask:: @ 8244549 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Mon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1},\n" .string "that's what I have! Cool, huh?\p" .string "So come on!\n" .string "Let's form a tag team!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Accept:: @ 824459B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Accept:: .string "Yay! Great!\n" .string "Okay, I'll go register, okay?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Reject:: @ 82445C5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice2Reject:: .string "Aww, why?\n" .string "I wanted to team up, {PLAYER}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Intro:: @ 82445E8 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Intro:: .string "I'm {STR_VAR_3}, the no. {STR_VAR_2} apprentice\n" .string "of the famous {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Mon1:: @ 8244618 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Mon1:: .string "I looked to {STR_VAR_3} for advice.\n" .string "One {STR_VAR_1}-using {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Mon2Ask:: @ 8244643 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Mon2Ask:: .string "and one {STR_VAR_2} with {STR_VAR_1},\n" .string "that's my pair.\p" .string "Please, will you join me in\n" .string "a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Accept:: @ 824468F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Accept:: .string "Thank you!\n" .string "I'll register right away!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Reject:: @ 82446B4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice3Reject:: .string "{PLAYER}, I had been hoping to join\n" .string "you in a tag team…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Intro:: @ 82446E5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Intro:: .string "Um… I'm sincerely happy that you\n" .string "would take the time to talk to me.\p" .string "I'm {STR_VAR_3}.\n" .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Mon1:: @ 824474D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Mon1:: .string "{STR_VAR_3} gave me advice.\n" .string "I'm very grateful for it.\p" .string "I have a team of one {STR_VAR_2}\n" .string "with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Mon2Ask:: @ 824479E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Mon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\n" .string "I know I'm asking a lot…\p" .string "I don't think you'll be willing to,\n" .string "but may I join you as a partner?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Accept:: @ 824480C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Accept:: .string "Really? I can't believe it!\n" .string "I can't believe you'll let me join you!\l" .string "I… I won't let you down!\p" .string "Um… If it's really okay, I'll go register\n" .string "right this instant!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Reject:: @ 82448A7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice4Reject:: .string "Oh…\n" .string "I didn't think I was good enough…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Intro:: @ 82448CD +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Intro:: .string "Hi, I'm {STR_VAR_3}.\n" .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Mon1:: @ 82448F5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Mon1:: .string "{STR_VAR_3} told me that it would be\n" .string "good to make this team:\l" .string "one {STR_VAR_1}-using {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Mon2Ask:: @ 8244939 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Mon2Ask:: .string "and one {STR_VAR_2} that knows how\n" .string "to use {STR_VAR_1}.\p" .string "Not bad, huh?\n" .string "Want me to team up with you?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Accept:: @ 8244989 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Accept:: .string "Okay, glad to join you!\n" .string "I hope you won't mess things up for me!\l" .string "I'll do my registration now.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Reject:: @ 82449E6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice5Reject:: .string "Huh? Why did you turn me down?\n" .string "You're no judge of character!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Intro:: @ 8244A23 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Intro:: .string "I'm {STR_VAR_3} and I'm a TRIATHLETE.\n" .string "I'm busy every day what with jogging,\l" .string "training, and rapping.\p" .string "I also happen to be {STR_VAR_1}'s\n" .string "no. {STR_VAR_2} apprentice.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Mon1:: @ 8244AA9 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Mon1:: .string "This is what {STR_VAR_3} recommended.\n" .string "One {STR_VAR_1}-using {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Mon2Ask:: @ 8244AD6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Mon2Ask:: .string "and one {STR_VAR_1}-using\n" .string "{STR_VAR_2}.\p" .string "I put a lot of effort into raising\n" @@ -484,113 +484,113 @@ BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Mon2Ask:: @ 8244AD6 .string "Let's form a tag team\n" .string "and give it a go!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Accept:: @ 8244B52 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Accept:: .string "Thanks, that's the spirit!\n" .string "Hang tight while I go register, okay?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Reject:: @ 8244B93 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice6Reject:: .string "I took time from my busy schedule\n" .string "to be here! Give me a break!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Intro:: @ 8244BD2 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Intro:: .string "Hi!\n" .string "How's it going?\p" .string "I'm {STR_VAR_3}, {STR_VAR_1}'s\n" .string "no. {STR_VAR_2} apprentice. Glad to meet you!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Mon1:: @ 8244C18 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Mon1:: .string "Listen, listen! You have to hear about\n" .string "the POKéMON {STR_VAR_3} recommended.\l" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Mon2Ask:: @ 8244C6E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Mon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\n" .string "Of course I raised them superbly!\p" .string "So, want to team up?\n" .string "I'm sure it'll be a great combo!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Accept:: @ 8244CD6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Accept:: .string "Yay, I think this will be fun!\n" .string "I'll go register!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Reject:: @ 8244D07 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice7Reject:: .string "Oh, you're mean!\n" .string "I come recommended, you know.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Intro:: @ 8244D36 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Intro:: .string "Please let me introduce myself.\n" .string "I am {STR_VAR_3}.\p" .string "I serve as {STR_VAR_1}'s\n" .string "no. {STR_VAR_2} apprentice.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Mon1:: @ 8244D82 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Mon1:: .string "I sought the sage advice of\n" .string "{STR_VAR_3} and raised my team\l" .string "of one {STR_VAR_2} with {STR_VAR_1}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Mon2Ask:: @ 8244DC6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Mon2Ask:: .string "and one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Please agree to a tag team with me!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Accept:: @ 8244DFE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Accept:: .string "Oh… I'm delighted!\n" .string "I promise to give you my best!\p" .string "Of course I will register us!\n" .string "Please wait!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Reject:: @ 8244E5B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice8Reject:: .string "I had been hoping to join you,\n" .string "{PLAYER}…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Intro:: @ 8244E7E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Intro:: .string "Eek! You spoke to me!\n" .string "I… I'm overjoyed!\p" .string "I'm {STR_VAR_3}! I'm {STR_VAR_1}'s\n" .string "no. {STR_VAR_2} apprentice!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Mon1:: @ 8244ECA +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Mon1:: .string "On {STR_VAR_3}'s advice, I trained\n" .string "one {STR_VAR_1}-using {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Mon2Ask:: @ 8244EF4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Mon2Ask:: .string "and one {STR_VAR_1}-using\n" .string "{STR_VAR_2}.\p" .string "Please, can you grant me my wish?\n" .string "I want to be your tag-team partner!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Accept:: @ 8244F4F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Accept:: .string "Eek! I… I feel giddy!\n" .string "Thank you so much!\l" .string "I'll go register us right away!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Reject:: @ 8244F98 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice9Reject:: .string "Waaah! Don't you feel any pity?\n" .string "But that makes you cooler…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Intro:: @ 8244FD3 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Intro:: .string "Yeehaw! I'm {STR_VAR_1}'s\n" .string "no. {STR_VAR_2} apprentice!\p" .string "{STR_VAR_3}'s my name, hello, hello!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Mon1:: @ 8245013 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Mon1:: .string "My mentor {STR_VAR_3} recommended\n" .string "one {STR_VAR_1}-master {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Mon2Ask:: @ 824503D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Mon2Ask:: .string "and one {STR_VAR_1}-master\n" .string "{STR_VAR_2}.\p" .string "Good stuff, huh?\n" .string "You'll partner with me, won't you?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Accept:: @ 8245087 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Accept:: .string "Okay, excellent!\n" .string "I'll get the registration done quickly!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Reject:: @ 82450C0 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice10Reject:: .string "Gwaaah!\n" .string "You're a calculating one, {PLAYER}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Intro:: @ 82450E6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Intro:: .string "Hey! There's big trouble! This is\n" .string "the BATTLE TOWER's last day!\p" .string "… … … … … …\n" @@ -599,29 +599,29 @@ BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Intro:: @ 82450E6 .string "I'm {STR_VAR_1}'s 1,000th apprentice!\l" .string "Actually, I'm no. {STR_VAR_2}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Mon1:: @ 8245196 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Mon1:: .string "{STR_VAR_3} gave me some advice.\n" .string "{STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Mon2Ask:: @ 82451BD +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Mon2Ask:: .string "{STR_VAR_2} with {STR_VAR_1}.\n" .string "I've got ten of each kind!\l" .string "Actually, just one of each!\p" .string "How about it?\n" .string "Want to try tag battles with me?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Accept:: @ 824522F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Accept:: .string "Yippee!\n" .string "I'll give you a POKéMON as my thanks!\p" .string "Just joking! But I will really go do\n" .string "the registration, okay?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Reject:: @ 824529A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice11Reject:: .string "Oh, that's so cold! I'll have to wreck\n" .string "the BATTLE TOWER for that!\p" .string "Of course I won't!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Intro:: @ 82452EF +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Intro:: .string "Hey, there, I'm rockin' and a-rollin'!\n" .string "POKéMON, I be controllin'!\p" .string "I'm {STR_VAR_3} the rappin' SAILOR.\n" @@ -629,36 +629,36 @@ BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Intro:: @ 82452EF .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" .string "Me, you shouldn't be quick to dismiss!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Mon1:: @ 82453B4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Mon1:: .string "With the advice of {STR_VAR_3} I did\n" .string "abide, put together my team of pride!\l" .string "One {STR_VAR_1}-using {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Mon2Ask:: @ 8245406 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Mon2Ask:: .string "and one {STR_VAR_1}-using\n" .string "{STR_VAR_2}!\p" .string "Our meeting we should commemorate,\n" .string "with a tag-team victory to celebrate!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Accept:: @ 8245464 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Accept:: .string "Hey, hey, I like your style!\n" .string "Our registration, I will go file!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Reject:: @ 82454A3 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice12Reject:: .string "Oh, hey, {PLAYER}, now that's cold!\n" .string "If I may be so bold!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Intro:: @ 82454D6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Intro:: .string "Yippee-yahoo!\n" .string "Oh, don't run! I was just having fun!\p" .string "Howdy! I'm {STR_VAR_3}!\n" .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Mon1:: @ 8245535 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Mon1:: .string "{STR_VAR_3} told me what to do.\n" .string "So one {STR_VAR_1}-using {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Mon2Ask:: @ 824555F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Mon2Ask:: .string "and one {STR_VAR_1}-using\n" .string "{STR_VAR_2}, I did choose.\p" .string "So, what do you say?\n" @@ -666,29 +666,29 @@ BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Mon2Ask:: @ 824555F .string "Please, I'm begging you!\n" .string "Let me join you, don't leave me blue!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Accept:: @ 82455EC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Accept:: .string "Yeahah! Luck is with me!\n" .string "It sure makes me happy!\p" .string "Before we go join the fray,\n" .string "I'll go register right away!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Reject:: @ 8245656 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice13Reject:: .string "You're turning me down?\n" .string "{PLAYER}, you're making me frown!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Intro:: @ 824568A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Intro:: .string "Cough!\p" .string "Oh, sorry, I have a cold.\n" .string "My POKéMON are fine, though.\p" .string "My name's {STR_VAR_3}, {STR_VAR_1}'s\n" .string "no. {STR_VAR_2} apprentice. Cough!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Mon1:: @ 82456F5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Mon1:: .string "I took {STR_VAR_3}'s advice to heart\n" .string "and put together my team of\l" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Mon2Ask:: @ 8245740 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Mon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "I trained them every day,\n" .string "even in wind and rain.\p" @@ -697,1115 +697,1115 @@ BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Mon2Ask:: @ 8245740 .string "That's what I'm about.\n" .string "Want to be my tag partner?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Accept:: @ 82457D9 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Accept:: .string "Thanks, I appreciate this!\n" .string "Cough, cough!\l" .string "Hang on while I go register.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Reject:: @ 824581F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice14Reject:: .string "Oh, you won't?\n" .string "{PLAYER}, I think we'd make a good pair.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Intro:: @ 8245851 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Intro:: .string "Oh, hello!\n" .string "This is nerve-racking.\p" .string "I'm {STR_VAR_3}.\n" .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Mon1:: @ 824589C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Mon1:: .string "{STR_VAR_3} said this team'll be good--\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Mon2Ask:: @ 82458CE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Mon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "I'm feeling self-conscious about this,\n" .string "but will you let me join you?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Accept:: @ 8245923 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Accept:: .string "Oh, gee, thank you!\n" .string "I feel bashful, but I'll do my best!\p" .string "I'll go get the registration done.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Reject:: @ 824597F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice15Reject:: .string "Oh, please don't say no!\n" .string "I feel self-conscious enough already…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Intro:: @ 82459BE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Intro:: .string "I am {STR_VAR_3}, and that's no lie.\n" .string "I am {STR_VAR_1}'s no. {STR_VAR_2} apprentice.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Mon1:: @ 82459F7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Mon1:: .string "{STR_VAR_3} recommended my team.\p" .string "Since the advice sounded sincere,\n" .string "I decided to bring with me\l" .string "my {STR_VAR_1}-using {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Mon2Ask:: @ 8245A5F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Mon2Ask:: .string "my {STR_VAR_1}-using {STR_VAR_2}.\p" .string "If possible, I would like you to accept\n" .string "me as your tag-team partner.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Accept:: @ 8245AB4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Accept:: .string "You really will accept me?\n" .string "It would be too terrible otherwise.\p" .string "But since you've agreed, this is fine.\n" .string "I shall go register the both of us.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Reject:: @ 8245B3E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice16Reject:: .string "Hm? Now why would you refuse?\n" .string "Is this your idea of a joke?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassIntro:: @ 8245B79 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassIntro:: .string "I'm {STR_VAR_1}, and I'm a LASS!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassMon1:: @ 8245B91 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassMon1:: .string "What I have are one {STR_VAR_2}\n" .string "that uses {STR_VAR_1} and one$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassMon2Ask:: @ 8245BBD +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassMon2Ask:: .string "{STR_VAR_2} that uses {STR_VAR_1}.\n" .string "Those are what I have with me.\p" .string "Will you be my partner?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassAccept:: @ 8245C05 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassAccept:: .string "Thank you!\n" .string "I'll go do the registration!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassReject:: @ 8245C2D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LassReject:: .string "You don't want to be my partner?\n" .string "You'll regret it later!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterIntro:: @ 8245C66 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterIntro:: .string "Hello!\p" .string "I'm YOUNGSTER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterMon1:: @ 8245C7F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterMon1:: .string "Want to know what I have?\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterMon2Ask:: @ 8245CAC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "You'll be my tag-team partner,\n" .string "won't you?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterAccept:: @ 8245CE6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterAccept:: .string "Yay!\n" .string "I'll go and register, okay?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterReject:: @ 8245D07 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_YoungsterReject:: .string "Aww! If you'd form a tag team with\n" .string "my POKéMON, we'd be unstoppable!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerIntro:: @ 8245D4B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerIntro:: .string "Yahoo!\n" .string "I'm HIKER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerMon1:: @ 8245D60 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerMon1:: .string "Know what I have with me?\n" .string "My {STR_VAR_1}-using {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerMon2Ask:: @ 8245D8D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerMon2Ask:: .string "my {STR_VAR_1}-using {STR_VAR_2}!\p" .string "Sounds good, eh?\n" .string "Want to form a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerAccept:: @ 8245DC7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerAccept:: .string "Yahoo!\n" .string "I'll go do the registering, then.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerReject:: @ 8245DF0 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HikerReject:: .string "I would've liked to battle with you\n" .string "at my side.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyIntro:: @ 8245E20 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyIntro:: .string "Hello!\n" .string "I'm {STR_VAR_1}, and I'm a BEAUTY!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyMon1:: @ 8245E41 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyMon1:: .string "Do you know what I've been raising?\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyMon2Ask:: @ 8245E78 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "What do you think?\n" .string "Want to make a tag team together?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyAccept:: @ 8245EBD +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyAccept:: .string "Wonderful!\n" .string "I'll get the registration done now!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyReject:: @ 8245EEC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BeautyReject:: .string "How disappointing!\p" .string "We two together--we would've been\n" .string "the best!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanIntro:: @ 8245F2B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanIntro:: .string "Yo!\p" .string "You know who I am?\n" .string "I'm {STR_VAR_1} the FISHERMAN!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanMon1:: @ 8245F58 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanMon1:: .string "I've got with me a team of one\n" .string "{STR_VAR_1}-using {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanMon2Ask:: @ 8245F87 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanMon2Ask:: .string "one {STR_VAR_1}-using {STR_VAR_2}.\p" .string "So, how about it?\n" .string "Will you battle at my side?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanAccept:: @ 8245FC6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanAccept:: .string "Good, good!\n" .string "Leave it up to me!\p" .string "I'll go and register us now.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanReject:: @ 8246002 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_FishermanReject:: .string "We matched up perfectly, too…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyIntro:: @ 8246020 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyIntro:: .string "Glad to make your acquaintance.\n" .string "I am {STR_VAR_1}, a LADY.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyMon1:: @ 8246051 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyMon1:: .string "I am accompanied by a team of\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyMon2Ask:: @ 8246082 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "I hope I meet your approval.\n" .string "For I wish to have you as my partner.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyAccept:: @ 82460D5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyAccept:: .string "I thank you sincerely.\n" .string "I shall handle the registration.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyReject:: @ 824610D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_LadyReject:: .string "I'm sure that you will regret not\n" .string "having me as your partner.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFIntro:: @ 824614A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFIntro:: .string "I'm TRIATHLETE {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFMon1:: @ 824615D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFMon1:: .string "What I have…\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFMon2Ask:: @ 824617D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\n" .string "That's my pair!\p" .string "Please?\n" .string "Will you form a tag team with me?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFAccept:: @ 82461C7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFAccept:: .string "Gee, thanks!\n" .string "I'll go register at the counter.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFReject:: @ 82461F5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteFReject:: .string "We two together, we would've been\n" .string "tough for certain!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherIntro:: @ 824622A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherIntro:: .string "Hiya!\n" .string "I'm BUG CATCHER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherMon1:: @ 8246244 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherMon1:: .string "Check out what I have!\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherMon2Ask:: @ 824626E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "So, listen!\n" .string "Do you want to form a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherAccept:: @ 82462AA +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherAccept:: .string "Gotcha!\p" .string "I'll go do the registration stuff\n" .string "at the counter.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherReject:: @ 82462E4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugCatcherReject:: .string "Aww, my POKéMON are awesome.\n" .string "I hope you won't regret this!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMIntro:: @ 824631F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMIntro:: .string "Good day!\n" .string "I'm SCHOOL KID {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMMon1:: @ 824633C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMMon1:: .string "What I've been raising are one\n" .string "{STR_VAR_2} that uses {STR_VAR_1}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMMon2Ask:: @ 824636B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMMon2Ask:: .string "and one {STR_VAR_2} that uses\n" .string "{STR_VAR_1}.\p" .string "Not too bad, don't you think?\n" .string "Would you care to form a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMAccept:: @ 82463C5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMAccept:: .string "Thank you very much!\n" .string "I'll get done with the registration.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMReject:: @ 82463FF +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidMReject:: .string "That's too bad…\p" .string "I was hoping that I could learn\n" .string "from you as your partner…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyIntro:: @ 8246449 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyIntro:: .string "Yo! Let me tell you who I am!\n" .string "I'm RICH BOY {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyMon1:: @ 8246478 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyMon1:: .string "Guess what I got!\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyMon2Ask:: @ 824649D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "I'm willing to offer you the chance\n" .string "to be in a tag team with me.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyAccept:: @ 82464EE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyAccept:: .string "Smart move!\p" .string "I'll finish up the registration\n" .string "process quick!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyReject:: @ 8246529 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RichBoyReject:: .string "You'd turn me of all people down?\n" .string "You'll regret that decision for sure!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltIntro:: @ 8246571 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltIntro:: .string "Hiyah!\n" .string "I am BLACK BELT {STR_VAR_1}.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltMon1:: @ 824658C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltMon1:: .string "As my companions, I have\n" .string "one {STR_VAR_2} using {STR_VAR_1}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltMon2Ask:: @ 82465B5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltMon2Ask:: .string "and one {STR_VAR_2} using\n" .string "{STR_VAR_1}.\p" .string "Please, grant me my wish!\n" .string "Allow me to be your tag partner!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltAccept:: @ 8246605 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltAccept:: .string "Hiyah!\n" .string "I will go register forthwith!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltReject:: @ 824662A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BlackBeltReject:: .string "I see… I hope for an opportunity\n" .string "the next time we meet…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFIntro:: @ 8246662 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFIntro:: .string "Hi, there!\n" .string "I'm {STR_VAR_1}, and I'm a TUBER!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFMon1:: @ 8246686 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFMon1:: .string "I'll tell you what I have.\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFMon2Ask:: @ 82466B4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\n" .string "May I please be on your tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFAccept:: @ 82466E6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFAccept:: .string "Thank you!\n" .string "I'll go register us now!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFReject:: @ 824670A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberFReject:: .string "If we'd become partners, we could\n" .string "have been so strong!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacIntro:: @ 8246741 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacIntro:: .string "Greetings…\n" .string "I am HEX MANIAC {STR_VAR_1}…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacMon1:: @ 8246760 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacMon1:: .string "I bear with me one {STR_VAR_1}-using\n" .string "{STR_VAR_2} together with one$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacMon2Ask:: @ 8246791 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacMon2Ask:: .string "{STR_VAR_1}-using {STR_VAR_2}…\p" .string "I beseech you…\n" .string "Join me in a tag team…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacAccept:: @ 82467C4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacAccept:: .string "I thank you…\n" .string "I shall register us…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacReject:: @ 82467E6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_HexManiacReject:: .string "I so longed to join you…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMIntro:: @ 82467FF +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMIntro:: .string "How do you do? I'm {STR_VAR_1},\n" .string "and I'm a POKéMON BREEDER!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMMon1:: @ 8246831 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMMon1:: .string "I'm raising a couple good ones!\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMMon2Ask:: @ 8246864 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "How about it?\n" .string "Feel like making a tag team with me?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMAccept:: @ 82468A7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMAccept:: .string "Thank you kindly!\p" .string "I'll go take care of the registration\n" .string "stuff, so you wait right here!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMReject:: @ 82468FE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederMReject:: .string "I was looking forward to being\n" .string "your partner…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFIntro:: @ 824692B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFIntro:: .string "Well, hello!\n" .string "I'm TRIATHLETE {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFMon1:: @ 824694B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFMon1:: .string "Want to know what I run with?\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFMon2Ask:: @ 824697C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Well?\n" .string "Want to be in a tag team with me?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFAccept:: @ 82469B4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFAccept:: .string "Good going!\p" .string "I'll be quick and get the registration\n" .string "all done!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFReject:: @ 82469F1 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteFReject:: .string "You and me, we would've been tops.\n" .string "It's too bad…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMIntro:: @ 8246A22 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMIntro:: .string "Hey, there! My name's {STR_VAR_1}!\n" .string "I'm a TRIATHLETE!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMMon1:: @ 8246A4E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMMon1:: .string "I go on runs with my durable team--\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMMon2Ask:: @ 8246A85 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Not too shabby, huh?\n" .string "We should be in a tag team together!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMAccept:: @ 8246ACF +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMAccept:: .string "All right!\n" .string "I'll go register in a flash!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMReject:: @ 8246AF7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RunningTriathleteMReject:: .string "I really wanted to battle as your\n" .string "tag-team partner…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlIntro:: @ 8246B2B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlIntro:: .string "I'm BATTLE GIRL {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlMon1:: @ 8246B3F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlMon1:: .string "I've been toughening up one\n" .string "{STR_VAR_1}-using {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlMon2Ask:: @ 8246B6B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlMon2Ask:: .string "one {STR_VAR_1}-using {STR_VAR_2}!\p" .string "Do you like that combo?\n" .string "How about you and me join up?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlAccept:: @ 8246BB2 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlAccept:: .string "Why, thanks!\p" .string "I'll get the registration done\n" .string "right now!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlReject:: @ 8246BE9 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BattleGirlReject:: .string "With you, I thought we could form\n" .string "the ultimate tag team…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMIntro:: @ 8246C22 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMIntro:: .string "I'm TRIATHLETE {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMMon1:: @ 8246C35 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMMon1:: .string "I've been running with one {STR_VAR_2}\n" .string "that knows how to use {STR_VAR_1}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMMon2Ask:: @ 8246C6C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMMon2Ask:: .string "and one {STR_VAR_2} with {STR_VAR_1}!\p" .string "We could be in a tag team.\n" .string "Wouldn't that be great?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMAccept:: @ 8246CB3 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMAccept:: .string "Thank you!\p" .string "I'll go register us, and that's\n" .string "right now!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMReject:: @ 8246CE9 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CyclingTriathleteMReject:: .string "Aww, that's too bad. We would've been\n" .string "the toughest tag team around!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMIntro:: @ 8246D2D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMIntro:: .string "Me?\n" .string "I'm TUBER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMMon1:: @ 8246D3F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMMon1:: .string "What do I have with me?\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMMon2Ask:: @ 8246D6A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Hey?\n" .string "You'll team up with me, right?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMAccept:: @ 8246D9E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMAccept:: .string "Okay!\p" .string "I'll go register!\n" .string "Let's be excellent together!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMReject:: @ 8246DD3 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_TuberMReject:: .string "My POKéMON are tough for sure…\n" .string "It's too bad you don't want to team up.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristIntro:: @ 8246E1A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristIntro:: .string "Yay-hey!\n" .string "Call me GUITARIST {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristMon1:: @ 8246E39 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristMon1:: .string "Check out my entourage!\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristMon2Ask:: @ 8246E64 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Yay-hey! Pretty wild, huh?\n" .string "We'll have to do a duet in a tag team!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristAccept:: @ 8246EB6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristAccept:: .string "Yay-hey! Right on!\n" .string "I'll do that registration stuff now!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristReject:: @ 8246EEE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GuitaristReject:: .string "My POKéMON rock hard!\n" .string "You'll be sorry, I tell you!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanIntro:: @ 8246F21 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanIntro:: .string "Pleased to meet you.\n" .string "I am {STR_VAR_1}, a GENTLEMAN.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanMon1:: @ 8246F4C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanMon1:: .string "I am accompanied by my trusted\n" .string "{STR_VAR_1}-using {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanMon2Ask:: @ 8246F7B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanMon2Ask:: .string "one {STR_VAR_1}-using {STR_VAR_2}.\p" .string "May I ask you to join me in a tag-team\n" .string "partnership arrangement?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanAccept:: @ 8246FCC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanAccept:: .string "Ah, I thank you for your trust.\n" .string "I shall be done with the registration.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanReject:: @ 8247013 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_GentlemanReject:: .string "That is most unfortunate…\p" .string "I shall look forward to the next\n" .string "opportunity…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMIntro:: @ 824705B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMIntro:: .string "Hello, I'm {STR_VAR_1},\n" .string "and I'm a POKéFAN.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMMon1:: @ 824707D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMMon1:: .string "I have with me now one {STR_VAR_2}\n" .string "that knows the move {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMMon2Ask:: @ 82470B2 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Do you like what you see?\n" .string "Why don't you be my tag partner?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMAccept:: @ 82470FD +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMAccept:: .string "Thank you!\n" .string "I'll look after the registration!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMReject:: @ 824712A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanMReject:: .string "My POKéMON are top grade…\n" .string "It's too bad you can't appreciate that.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMIntro:: @ 824716C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMIntro:: .string "Hm!\n" .string "I am {STR_VAR_1}, and an EXPERT am I!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMMon1:: @ 824718D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMMon1:: .string "The POKéMON that I've toughened up are\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMMon2Ask:: @ 82471C7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "What say you to a tag team with me?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMAccept:: @ 82471FB +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMAccept:: .string "Hm!\n" .string "I shall register us right away!\l" .string "Let us both do our best!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMReject:: @ 8247238 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertMReject:: .string "I will hope that your choice is\n" .string "indeed correct…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFIntro:: @ 8247268 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFIntro:: .string "Hello, hello.\n" .string "I'm {STR_VAR_1}, and I'm an EXPERT.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFMon1:: @ 8247291 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFMon1:: .string "I've raised my POKéMON thoroughly.\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFMon2Ask:: @ 82472C7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}--\n" .string "they're what I have.\p" .string "Wouldn't you like to team up with me?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFAccept:: @ 8247313 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFAccept:: .string "Good, good.\n" .string "I'll see to the registration right away.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFReject:: @ 8247348 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ExpertFReject:: .string "Perhaps we can form a team the next\n" .string "time we meet.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerIntro:: @ 824737A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerIntro:: .string "I'm DRAGON TAMER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerMon1:: @ 824738F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerMon1:: .string "The team I've been toughening up is\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerMon2Ask:: @ 82473C6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "How about it?\n" .string "Want to be my partner?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerAccept:: @ 82473FB +BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerAccept:: .string "Okay, I'll give it my best!\n" .string "I'll go register now, all right?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerReject:: @ 8247438 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_DragonTamerReject:: .string "You're not going to find many tougher\n" .string "partners than me!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperIntro:: @ 8247470 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperIntro:: .string "I'm BIRD KEEPER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperMon1:: @ 8247484 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperMon1:: .string "What POKéMON do I have?\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperMon2Ask:: @ 82474AF +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Don't you think we'd make a decent\n" .string "tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperAccept:: @ 82474EC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperAccept:: .string "Great, thanks!\n" .string "I'll look after the registration!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperReject:: @ 824751D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BirdKeeperReject:: .string "My POKéMON and I are strong.\n" .string "What a letdown.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyIntro:: @ 824754A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyIntro:: .string "I'm NINJA BOY {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyMon1:: @ 824755C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyMon1:: .string "My POKéMON team consists of one\n" .string "{STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyMon2Ask:: @ 824758B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Let's be in a tag team together!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyAccept:: @ 82475BC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyAccept:: .string "Yay!\n" .string "Let me go register!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyReject:: @ 82475D5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_NinjaBoyReject:: .string "You'll regret not having my tough\n" .string "POKéMON on your side!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyIntro:: @ 824760D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyIntro:: .string "Hello!\n" .string "I'm PARASOL LADY {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyMon1:: @ 8247629 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyMon1:: .string "Escorting me now are my {STR_VAR_2}\n" .string "that uses {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyMon2Ask:: @ 8247655 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyMon2Ask:: .string "one {STR_VAR_2} that uses\n" .string "{STR_VAR_1}.\p" .string "Aren't they nice?\n" .string "Care to join us in a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyAccept:: @ 824769B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyAccept:: .string "Thanks a bunch!\p" .string "I'll go register at the counter.\n" .string "Let's not disappoint each other!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyReject:: @ 82476ED +BattleFrontier_BattleTowerMultiPartnerRoom_Text_ParasolLadyReject:: .string "My POKéMON are tremendously strong.\n" .string "How disappointing…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacIntro:: @ 8247724 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacIntro:: .string "Hello.\n" .string "I'm {STR_VAR_1}, and I'm a BUG MANIAC!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacMon1:: @ 8247749 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacMon1:: .string "I have found my POKéMON, yes.\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacMon2Ask:: @ 824777A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}--\n" .string "they are what I found.\p" .string "Could I interest you in forming\n" .string "a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacAccept:: @ 82477CE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacAccept:: .string "Okay!\n" .string "Understood!\p" .string "I won't be long with the registration!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacReject:: @ 8247807 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_BugManiacReject:: .string "With the POKéMON I found, we wouldn't\n" .string "have lost…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorIntro:: @ 8247838 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorIntro:: .string "Ahoy, there!\n" .string "I'm SAILOR {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorMon1:: @ 8247854 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorMon1:: .string "Let me show you my pride and joy!\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorMon2Ask:: @ 8247889 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Of course you're not going to turn\n" .string "me down. We will team up, right?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorAccept:: @ 82478DD +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorAccept:: .string "I didn't expect any less!\n" .string "I'll go register now.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorReject:: @ 824790D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SailorReject:: .string "We would've stormed through\n" .string "the opposition! Too bad!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorIntro:: @ 8247942 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorIntro:: .string "Hi, I'm {STR_VAR_1}.\n" .string "I'm a COLLECTOR.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorMon1:: @ 824795F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorMon1:: .string "The jewels in my collection are\n" .string "my {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorMon2Ask:: @ 8247991 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Swell, huh?\n" .string "We should be in a team together.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorAccept:: @ 82479CE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorAccept:: .string "Oh, yeah!\p" .string "Well, let's not waste any time.\n" .string "I'll go register the two of us.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorReject:: @ 8247A18 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CollectorReject:: .string "Well, that's upsetting.\n" .string "You don't appreciate my POKéMON.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMIntro:: @ 8247A51 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMIntro:: .string "Howdy, I'm {STR_VAR_1}.\n" .string "I'm a POKéMON RANGER.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMMon1:: @ 8247A76 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMMon1:: .string "Keeping me company are one\n" .string "{STR_VAR_1}-using {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMMon2Ask:: @ 8247AA1 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Don't you think we'd make an impressive\n" .string "tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMAccept:: @ 8247AE3 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMAccept:: .string "That's super!\n" .string "I'll deal with the registration now.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMReject:: @ 8247B16 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerMReject:: .string "Next time, choose my POKéMON,\n" .string "will you?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFIntro:: @ 8247B3E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFIntro:: .string "My name's {STR_VAR_1}.\n" .string "I'm a POKéMON RANGER!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFMon1:: @ 8247B62 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFMon1:: .string "Let me tell you about my team. I have\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFMon2Ask:: @ 8247B9B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "How would you like to form a tag team\n" .string "with my little posse?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFAccept:: @ 8247BE7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFAccept:: .string "We'll be at our best!\n" .string "I'll get the registration done quick!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFReject:: @ 8247C23 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnRangerFReject:: .string "I hope you'll choose my POKéMON\n" .string "next time.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyIntro:: @ 8247C4E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyIntro:: .string "Pleased to meet you. I'm {STR_VAR_1}.\n" .string "I consider myself an AROMA LADY.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyMon1:: @ 8247C8C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyMon1:: .string "I travel with one {STR_VAR_2}\n" .string "that uses {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyMon2Ask:: @ 8247CB2 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyMon2Ask:: .string "one {STR_VAR_2} that uses\n" .string "{STR_VAR_1}.\p" .string "I hope they strike your fancy.\n" .string "Would you care to be my partner?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyAccept:: @ 8247D07 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyAccept:: .string "I'm honored by your acceptance.\n" .string "I will go register right this instant.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyReject:: @ 8247D4E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_AromaLadyReject:: .string "It would be wonderful if we could form\n" .string "a tag team the next time we meet.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacIntro:: @ 8247D97 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacIntro:: .string "Want to know who I am?\n" .string "I'm {STR_VAR_1}, the RUIN MANIAC!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacMon1:: @ 8247DC7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacMon1:: .string "The POKéMON that I have with me are\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacMon2Ask:: @ 8247DFE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Intriguing, eh?\n" .string "How about you and I partner up?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacAccept:: @ 8247E3E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacAccept:: .string "That's a sound decision!\n" .string "I'll go do the registration paperwork.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacReject:: @ 8247E7E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_RuinManiacReject:: .string "Hmm…\n" .string "I think my POKéMON are tough…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMIntro:: @ 8247EA1 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMIntro:: .string "I'm COOLTRAINER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMMon1:: @ 8247EB5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMMon1:: .string "The POKéMON I have right now are one\n" .string "{STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMMon2Ask:: @ 8247EE9 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\n" .string "Cool, huh?\p" .string "Don't you think it'd be pretty cool\n" .string "if we made a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMAccept:: @ 8247F3F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMAccept:: .string "Cool!\n" .string "I'll go do the registration in a flash!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMReject:: @ 8247F6D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerMReject:: .string "I thought that we'd make just\n" .string "the greatest team ever.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFIntro:: @ 8247FA3 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFIntro:: .string "I'm COOLTRAINER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFMon1:: @ 8247FB7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFMon1:: .string "The team I've been raising has one\n" .string "{STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFMon2Ask:: @ 8247FE9 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Does that sound okay?\n" .string "How about we become tag partners?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFAccept:: @ 8248031 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFAccept:: .string "Sounds A-OK!\n" .string "I'd better do the registration.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFReject:: @ 824805E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CoolTrainerFReject:: .string "I was thinking how we would be\n" .string "one tough team…$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacIntro:: @ 824808D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacIntro:: .string "Heyo!\n" .string "I'm {STR_VAR_1}, the POKéMANIAC!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacMon1:: @ 82480AB +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacMon1:: .string "What does a guy like me have?\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacMon2Ask:: @ 82480DC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1},\n" .string "that's what!\p" .string "Let's do it!\n" .string "We'll stomp around as a tag team!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacAccept:: @ 8248128 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacAccept:: .string "Good call!\n" .string "I'll register the both of us!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacReject:: @ 8248151 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokemaniacReject:: .string "My POKéMON are brutal!\n" .string "It's not my fault if you regret this!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerIntro:: @ 824818E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerIntro:: .string "Yo, there!\n" .string "I'm KINDLER {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerMon1:: @ 82481A9 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerMon1:: .string "You know what my training cooked up?\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerMon2Ask:: @ 82481E1 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Well, what do you say?\n" .string "Want to form a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerAccept:: @ 8248221 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerAccept:: .string "All right!\n" .string "I'll get on with the registration.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerReject:: @ 824824F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_KindlerReject:: .string "Promise you'll partner up with me\n" .string "the next time we run into each other.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperIntro:: @ 8248297 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperIntro:: .string "I'm {STR_VAR_1}, and I'm a CAMPER!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperMon1:: @ 82482B1 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperMon1:: .string "I've been raising one {STR_VAR_1}-\n" .string "using {STR_VAR_2} and one$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperMon2Ask:: @ 82482DC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperMon2Ask:: .string "{STR_VAR_1}-using {STR_VAR_2}.\p" .string "Do you think it'd be fun to team up?\n" .string "I bet it would be!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperAccept:: @ 8248321 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperAccept:: .string "Yeah!\n" .string "Off I go to register!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperReject:: @ 824833D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_CamperReject:: .string "Next time, okay?\n" .string "I want to be on your team.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerIntro:: @ 8248369 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerIntro:: .string "Hello!\n" .string "I'm {STR_VAR_1}, and I'm a PICNICKER!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerMon1:: @ 824838D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerMon1:: .string "The POKéMON I've been taking are\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerMon2Ask:: @ 82483C1 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Are you interested in joining me\n" .string "on a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerAccept:: @ 8248401 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerAccept:: .string "Why, thank you!\n" .string "I will do the registration now.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerReject:: @ 8248431 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PicnickerReject:: .string "It would be nice if I could join you\n" .string "some other time.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMIntro:: @ 8248467 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMIntro:: .string "I'm PSYCHIC {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMMon1:: @ 8248477 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMMon1:: .string "The twosome I've been raising are\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMMon2Ask:: @ 82484AC +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Would you like to form a tag team\n" .string "with me?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMAccept:: @ 82484E7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMAccept:: .string "Sure thing!\n" .string "I'll take care of the registration!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMReject:: @ 8248517 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicMReject:: .string "If we meet again, that's when I'd like\n" .string "to team up with you.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFIntro:: @ 8248553 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFIntro:: .string "I'm {STR_VAR_1}.\n" .string "I'm a PSYCHIC.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFMon1:: @ 824856A +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFMon1:: .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFMon2Ask:: @ 824857D +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}--\n" .string "they're my disciples.\p" .string "Doesn't the idea of forming a tag-team\n" .string "partnership intrigue you?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFAccept:: @ 82485E5 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFAccept:: .string "Thank you.\n" .string "I'll go deal with the registration.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFReject:: @ 8248614 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PsychicFReject:: .string "I hope there will be another chance\n" .string "to forge an alliance.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFIntro:: @ 824864E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFIntro:: .string "I'm SCHOOL KID {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFMon1:: @ 8248661 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFMon1:: .string "One {STR_VAR_1}-using {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFMon2Ask:: @ 8248671 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFMon2Ask:: .string "and one {STR_VAR_1}-using\n" .string "{STR_VAR_2} are my POKéMON pair.\p" .string "May I please be your partner on\n" .string "a tag team?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFAccept:: @ 82486C6 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFAccept:: .string "Ooh, thank you!\n" .string "I'll register at the counter right away!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFReject:: @ 82486FF +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SchoolKidFReject:: .string "Please?\n" .string "May I join you the next time?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFIntro:: @ 8248725 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFIntro:: .string "Hiya! The name's {STR_VAR_1}!\n" .string "I'm a POKéMON BREEDER!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFMon1:: @ 8248751 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFMon1:: .string "The POKéMON I've raised are one\n" .string "{STR_VAR_1}-using {STR_VAR_2} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFMon2Ask:: @ 8248781 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFMon2Ask:: .string "one {STR_VAR_1}-using {STR_VAR_2}.\p" .string "Sound interesting?\n" .string "How about we form a tag team, then?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFAccept:: @ 82487C9 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFAccept:: .string "All righty!\n" .string "You leave the registration to me!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFReject:: @ 82487F7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PkmnBreederFReject:: .string "You have to team up with me next time,\n" .string "all right?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFIntro:: @ 8248829 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFIntro:: .string "I'm {STR_VAR_1}, and I'm proud to say\n" .string "that I am a POKéFAN.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFMon1:: @ 824885B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFMon1:: .string "The darling POKéMON I've raised are\n" .string "one {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFMon2Ask:: @ 8248892 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}.\p" .string "Aren't they just the cutest?\n" .string "We ought to make a team!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFAccept:: @ 82488D8 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFAccept:: .string "Thank you, dear!\n" .string "I'll be on my way to register!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFReject:: @ 8248908 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_PokefanFReject:: .string "My darling POKéMON are the best,\n" .string "I'll have you know. How annoying!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFIntro:: @ 824894B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFIntro:: .string "Hi, I'm SWIMMER {STR_VAR_1}.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFMon1:: @ 824895F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFMon1:: .string "One {STR_VAR_1}-using {STR_VAR_2}$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFMon2Ask:: @ 824896F +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFMon2Ask:: .string "and one {STR_VAR_1}-using\n" .string "{STR_VAR_2} are what I've trained.\p" .string "You and me, let's make a tag team.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFAccept:: @ 82489BD +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFAccept:: .string "That's cool!\n" .string "I'll register the two of us.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFReject:: @ 82489E7 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerFReject:: .string "If we meet again, you owe me\n" .string "a tag team!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMIntro:: @ 8248A10 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMIntro:: .string "What's happening?\n" .string "I'm {STR_VAR_1}, and I'm a TRIATHLETE.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMMon1:: @ 8248A40 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMMon1:: .string "I got a couple decent POKéMON.\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMMon2Ask:: @ 8248A72 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "It'd be neat if we made a tag team\n" .string "together, so how about it?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMAccept:: @ 8248AC0 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMAccept:: .string "Right on!\n" .string "You wait while I register, okay?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMReject:: @ 8248AEB +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteMReject:: .string "I expect you'll let me join you\n" .string "next time, how's that?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFIntro:: @ 8248B22 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFIntro:: .string "I'm the TRIATHLETE {STR_VAR_1}!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFMon1:: @ 8248B39 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFMon1:: .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFMon2Ask:: @ 8248B4C +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFMon2Ask:: .string "another {STR_VAR_2} that knows how\n" .string "to use {STR_VAR_1}. That's my pair.\p" .string "What do you think?\n" .string "We'd make a good team, I'd say.$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFAccept:: @ 8248BB4 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFAccept:: .string "I like that answer!\n" .string "I'll get done with registration fast!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFReject:: @ 8248BEE +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmingTriathleteFReject:: .string "You'll give me another chance to form\n" .string "a partnership, won't you?$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMIntro:: @ 8248C2E +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMIntro:: .string "Hi, there! Hello!\n" .string "I'm {STR_VAR_1}, and I'm a SWIMMER!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMMon1:: @ 8248C5B +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMMon1:: .string "Check out what I've been raising!\n" .string "One {STR_VAR_2} with {STR_VAR_1} and$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMMon2Ask:: @ 8248C90 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMMon2Ask:: .string "one {STR_VAR_2} with {STR_VAR_1}!\p" .string "Sweet, huh?\n" .string "It'd be sweet to form a team, too!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMAccept:: @ 8248CCF +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMAccept:: .string "Much obliged!\n" .string "I'll get this registration thing done!$" -BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMReject:: @ 8248D04 +BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMReject:: .string "If we meet again, you have to team up\n" .string "with me. You'll do that, right?$" diff --git a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc index b7dfe19fa0..360b8162cf 100644 --- a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc +++ b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc @@ -1,18 +1,18 @@ -BattleFrontier_ExchangeServiceCorner_MapScripts:: @ 825F070 +BattleFrontier_ExchangeServiceCorner_MapScripts:: .byte 0 -BattleFrontier_ExchangeServiceCorner_EventScript_ClerkWelcome:: @ 825F071 +BattleFrontier_ExchangeServiceCorner_EventScript_ClerkWelcome:: msgbox BattleFrontier_ExchangeServiceCorner_Text_WelcomePleaseChoosePrize, MSGBOX_DEFAULT special ShowBattlePointsWindow return -BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye:: @ 825F07D +BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ThankYouVisitWithPoints, MSGBOX_DEFAULT special CloseBattlePointsWindow release end -BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize:: @ 825F08A +BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize:: specialvar VAR_TEMP_1, GetFrontierBattlePoints compare VAR_TEMP_1, VAR_0x8008 goto_if_ge BattleFrontier_ExchangeServiceCorner_EventScript_TryGivePrize @@ -26,7 +26,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize:: @ 825F08A goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem end -BattleFrontier_ExchangeServiceCorner_EventScript_TryGivePrize:: @ 825F0C9 +BattleFrontier_ExchangeServiceCorner_EventScript_TryGivePrize:: compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR2_CLERK @@ -34,7 +34,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGivePrize:: @ 825F0C9 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem end -BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor:: @ 825F0E5 +BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor:: checkdecorspace VAR_0x8009 compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_NoRoomForDecor @@ -49,13 +49,13 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor:: @ 825F0E5 goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 end -BattleFrontier_ExchangeServiceCorner_EventScript_NoRoomForDecor:: @ 825F11D +BattleFrontier_ExchangeServiceCorner_EventScript_NoRoomForDecor:: msgbox BattleFrontier_ExchangeServiceCorner_Text_PCIsFull, MSGBOX_DEFAULT special CloseBattlePointsWindow release end -BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem:: @ 825F12A +BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem:: checkitemspace VAR_0x8009, 1 compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_BagFull @@ -70,13 +70,13 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem:: @ 825F12A goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem end -BattleFrontier_ExchangeServiceCorner_EventScript_BagFull:: @ 825F166 +BattleFrontier_ExchangeServiceCorner_EventScript_BagFull:: msgbox BattleFrontier_ExchangeServiceCorner_Text_DontHaveSpaceToHoldIt, MSGBOX_DEFAULT special CloseBattlePointsWindow release end -BattleFrontier_ExchangeServiceCorner_EventScript_DecorClerk1:: @ 825F173 +BattleFrontier_ExchangeServiceCorner_EventScript_DecorClerk1:: lock faceplayer setvar VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK @@ -84,7 +84,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_DecorClerk1:: @ 825F173 goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 end -BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1:: @ 825F185 +BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1:: setvar VAR_0x8004, SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1 special ShowFrontierExchangeCornerItemIconWindow special ShowScrollableMultichoice @@ -105,7 +105,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1:: @ 825F185 case MULTI_B_PRESSED, BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye end -BattleFrontier_ExchangeServiceCorner_EventScript_KissPoster:: @ 825F21E +BattleFrontier_ExchangeServiceCorner_EventScript_KissPoster:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissPoster, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -114,7 +114,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_KissPoster:: @ 825F21E goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_KissCushion:: @ 825F241 +BattleFrontier_ExchangeServiceCorner_EventScript_KissCushion:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissCushion, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -123,7 +123,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_KissCushion:: @ 825F241 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_SmoochumDoll:: @ 825F264 +BattleFrontier_ExchangeServiceCorner_EventScript_SmoochumDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmSmoochumDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -132,7 +132,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_SmoochumDoll:: @ 825F264 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_TogepiDoll:: @ 825F287 +BattleFrontier_ExchangeServiceCorner_EventScript_TogepiDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmTogepiDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -141,7 +141,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TogepiDoll:: @ 825F287 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_MeowthDoll:: @ 825F2AA +BattleFrontier_ExchangeServiceCorner_EventScript_MeowthDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmMeowthDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -150,7 +150,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_MeowthDoll:: @ 825F2AA goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_ClefairyDoll:: @ 825F2CD +BattleFrontier_ExchangeServiceCorner_EventScript_ClefairyDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmClefairyDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -159,7 +159,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ClefairyDoll:: @ 825F2CD goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_DittoDoll:: @ 825F2F0 +BattleFrontier_ExchangeServiceCorner_EventScript_DittoDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmDittoDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -168,7 +168,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_DittoDoll:: @ 825F2F0 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_CyndaquilDoll:: @ 825F313 +BattleFrontier_ExchangeServiceCorner_EventScript_CyndaquilDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCyndaquilDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -177,7 +177,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_CyndaquilDoll:: @ 825F313 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_ChikoritaDoll:: @ 825F336 +BattleFrontier_ExchangeServiceCorner_EventScript_ChikoritaDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmChikoritaDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -186,7 +186,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChikoritaDoll:: @ 825F336 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_TotodileDoll:: @ 825F359 +BattleFrontier_ExchangeServiceCorner_EventScript_TotodileDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmTotodileDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -195,7 +195,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TotodileDoll:: @ 825F359 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_DecorClerk2:: @ 825F37C +BattleFrontier_ExchangeServiceCorner_EventScript_DecorClerk2:: lock faceplayer setvar VAR_TEMP_2, EXCHANGE_CORNER_DECOR2_CLERK @@ -203,7 +203,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_DecorClerk2:: @ 825F37C goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 end -BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2:: @ 825F38E +BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2:: setvar VAR_0x8004, SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2 special ShowFrontierExchangeCornerItemIconWindow special ShowScrollableMultichoice @@ -219,7 +219,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2:: @ 825F38E case MULTI_B_PRESSED, BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye end -BattleFrontier_ExchangeServiceCorner_EventScript_LaprasDoll:: @ 825F3F0 +BattleFrontier_ExchangeServiceCorner_EventScript_LaprasDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmLaprasDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 @@ -228,7 +228,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_LaprasDoll:: @ 825F3F0 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_SnorlaxDoll:: @ 825F413 +BattleFrontier_ExchangeServiceCorner_EventScript_SnorlaxDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmSnorlaxDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 @@ -237,7 +237,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_SnorlaxDoll:: @ 825F413 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_VenusaurDoll:: @ 825F436 +BattleFrontier_ExchangeServiceCorner_EventScript_VenusaurDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmVenusaurDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 @@ -246,7 +246,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_VenusaurDoll:: @ 825F436 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_CharizardDoll:: @ 825F459 +BattleFrontier_ExchangeServiceCorner_EventScript_CharizardDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCharizardDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 @@ -255,7 +255,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_CharizardDoll:: @ 825F459 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_BlastoiseDoll:: @ 825F47C +BattleFrontier_ExchangeServiceCorner_EventScript_BlastoiseDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmBlastoiseDoll, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 @@ -264,7 +264,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_BlastoiseDoll:: @ 825F47C goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_VitaminClerk:: @ 825F49F +BattleFrontier_ExchangeServiceCorner_EventScript_VitaminClerk:: lock faceplayer setvar VAR_TEMP_2, EXCHANGE_CORNER_VITAMIN_CLERK @@ -272,7 +272,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_VitaminClerk:: @ 825F49F goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin end -BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin:: @ 825F4B1 +BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin:: setvar VAR_0x8004, SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR special ShowFrontierExchangeCornerItemIconWindow special ShowScrollableMultichoice @@ -289,7 +289,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin:: @ 825F4B1 case MULTI_B_PRESSED, BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye end -BattleFrontier_ExchangeServiceCorner_EventScript_Protein:: @ 825F51E +BattleFrontier_ExchangeServiceCorner_EventScript_Protein:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmProtein, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin @@ -298,7 +298,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Protein:: @ 825F51E goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_Calcium:: @ 825F541 +BattleFrontier_ExchangeServiceCorner_EventScript_Calcium:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCalcium, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin @@ -307,7 +307,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Calcium:: @ 825F541 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_Iron:: @ 825F564 +BattleFrontier_ExchangeServiceCorner_EventScript_Iron:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmIron, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin @@ -316,7 +316,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Iron:: @ 825F564 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_Zinc:: @ 825F587 +BattleFrontier_ExchangeServiceCorner_EventScript_Zinc:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmZinc, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin @@ -325,7 +325,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Zinc:: @ 825F587 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_Carbos:: @ 825F5AA +BattleFrontier_ExchangeServiceCorner_EventScript_Carbos:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCarbos, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin @@ -334,7 +334,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Carbos:: @ 825F5AA goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_HPUp:: @ 825F5CD +BattleFrontier_ExchangeServiceCorner_EventScript_HPUp:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmHPUp, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin @@ -343,7 +343,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_HPUp:: @ 825F5CD goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_HoldItemClerk:: @ 825F5F0 +BattleFrontier_ExchangeServiceCorner_EventScript_HoldItemClerk:: lock faceplayer setvar VAR_TEMP_2, EXCHANGE_CORNER_HOLD_ITEM_CLERK @@ -351,7 +351,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_HoldItemClerk:: @ 825F5F0 goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem end -BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem:: @ 825F602 +BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem:: setvar VAR_0x8004, SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR special ShowFrontierExchangeCornerItemIconWindow special ShowScrollableMultichoice @@ -371,7 +371,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem:: @ 825F602 case MULTI_B_PRESSED, BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye end -BattleFrontier_ExchangeServiceCorner_EventScript_Leftovers:: @ 825F690 +BattleFrontier_ExchangeServiceCorner_EventScript_Leftovers:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmLeftovers, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -380,7 +380,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Leftovers:: @ 825F690 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_WhiteHerb:: @ 825F6B3 +BattleFrontier_ExchangeServiceCorner_EventScript_WhiteHerb:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmWhiteHerb, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -389,7 +389,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_WhiteHerb:: @ 825F6B3 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_QuickClaw:: @ 825F6D6 +BattleFrontier_ExchangeServiceCorner_EventScript_QuickClaw:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmQuickClaw, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -398,7 +398,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_QuickClaw:: @ 825F6D6 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_MentalHerb:: @ 825F6F9 +BattleFrontier_ExchangeServiceCorner_EventScript_MentalHerb:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmMentalHerb, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -407,7 +407,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_MentalHerb:: @ 825F6F9 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_Brightpowder:: @ 825F71C +BattleFrontier_ExchangeServiceCorner_EventScript_Brightpowder:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmBrightpowder, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -416,7 +416,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Brightpowder:: @ 825F71C goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_ChoiceBand:: @ 825F73F +BattleFrontier_ExchangeServiceCorner_EventScript_ChoiceBand:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmChoiceBand, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -425,7 +425,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChoiceBand:: @ 825F73F goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_KingsRock:: @ 825F762 +BattleFrontier_ExchangeServiceCorner_EventScript_KingsRock:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKingsRock, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -434,7 +434,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_KingsRock:: @ 825F762 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_FocusBand:: @ 825F785 +BattleFrontier_ExchangeServiceCorner_EventScript_FocusBand:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmFocusBand, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -443,7 +443,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_FocusBand:: @ 825F785 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_ScopeLens:: @ 825F7A8 +BattleFrontier_ExchangeServiceCorner_EventScript_ScopeLens:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmScopeLens, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem @@ -452,29 +452,29 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ScopeLens:: @ 825F7A8 goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end -BattleFrontier_ExchangeServiceCorner_EventScript_Man:: @ 825F7CB +BattleFrontier_ExchangeServiceCorner_EventScript_Man:: msgbox BattleFrontier_ExchangeServiceCorner_Text_GoGetYourOwnDoll, MSGBOX_NPC end -BattleFrontier_ExchangeServiceCorner_EventScript_Sailor:: @ 825F7D4 +BattleFrontier_ExchangeServiceCorner_EventScript_Sailor:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ItemsWillGetMonTougher, MSGBOX_NPC end -BattleFrontier_ExchangeServiceCorner_EventScript_PokefanF:: @ 825F7DD +BattleFrontier_ExchangeServiceCorner_EventScript_PokefanF:: lock msgbox BattleFrontier_ExchangeServiceCorner_Text_GetYouAnythingYouWant, MSGBOX_DEFAULT release end -BattleFrontier_ExchangeServiceCorner_EventScript_RichBoy:: @ 825F7E8 +BattleFrontier_ExchangeServiceCorner_EventScript_RichBoy:: msgbox BattleFrontier_ExchangeServiceCorner_Text_WishIHadAllDolls, MSGBOX_NPC end -BattleFrontier_ExchangeServiceCorner_EventScript_Girl:: @ 825F7F1 +BattleFrontier_ExchangeServiceCorner_EventScript_Girl:: msgbox BattleFrontier_ExchangeServiceCorner_Text_MoreBattlePointsForRecord, MSGBOX_NPC end -BattleFrontier_ExchangeServiceCorner_Text_WelcomePleaseChoosePrize: @ 825F7FA +BattleFrontier_ExchangeServiceCorner_Text_WelcomePleaseChoosePrize: .string "Hello, this is the EXCHANGE SERVICE\n" .string "CORNER.\p" .string "We exchange the Battle Points you\n" @@ -482,154 +482,154 @@ BattleFrontier_ExchangeServiceCorner_Text_WelcomePleaseChoosePrize: @ 825F7FA .string "Please choose a prize from this list.$" @ Unused -BattleFrontier_ExchangeServiceCorner_Text_PleaseChoosePrize: @ 825F890 +BattleFrontier_ExchangeServiceCorner_Text_PleaseChoosePrize: .string "Please choose a prize from this list.$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissPoster: @ 825F8B6 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissPoster: .string "You've chosen the KISS POSTER.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissCushion: @ 825F8E6 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissCushion: .string "You've chosen the KISS CUSHION.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmSmoochumDoll: @ 825F917 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmSmoochumDoll: .string "You've chosen the SMOOCHUM DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmTogepiDoll: @ 825F949 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmTogepiDoll: .string "You've chosen the TOGEPI DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmMeowthDoll: @ 825F979 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmMeowthDoll: .string "You've chosen the MEOWTH DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmClefairyDoll: @ 825F9A9 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmClefairyDoll: .string "You've chosen the CLEFAIRY DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmDittoDoll: @ 825F9DB +BattleFrontier_ExchangeServiceCorner_Text_ConfirmDittoDoll: .string "You've chosen the DITTO DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmCyndaquilDoll: @ 825FA0A +BattleFrontier_ExchangeServiceCorner_Text_ConfirmCyndaquilDoll: .string "You've chosen the CYNDAQUIL DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmChikoritaDoll: @ 825FA3D +BattleFrontier_ExchangeServiceCorner_Text_ConfirmChikoritaDoll: .string "You've chosen the CHIKORITA DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmTotodileDoll: @ 825FA70 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmTotodileDoll: .string "You've chosen the TOTODILE DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmLaprasDoll: @ 825FAA2 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmLaprasDoll: .string "You've chosen the LAPRAS DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmSnorlaxDoll: @ 825FAD2 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmSnorlaxDoll: .string "You've chosen the SNORLAX DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmVenusaurDoll: @ 825FB03 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmVenusaurDoll: .string "You've chosen the VENUSAUR DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmCharizardDoll: @ 825FB35 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmCharizardDoll: .string "You've chosen the CHARIZARD DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmBlastoiseDoll: @ 825FB68 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmBlastoiseDoll: .string "You've chosen the BLASTOISE DOLL.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmProtein: @ 825FB9B +BattleFrontier_ExchangeServiceCorner_Text_ConfirmProtein: .string "You've chosen the PROTEIN.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmCalcium: @ 825FBC7 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmCalcium: .string "You've chosen the CALCIUM.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmIron: @ 825FBF3 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmIron: .string "You've chosen the IRON.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmZinc: @ 825FC1C +BattleFrontier_ExchangeServiceCorner_Text_ConfirmZinc: .string "You've chosen the ZINC.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmCarbos: @ 825FC45 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmCarbos: .string "You've chosen the CARBOS.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmHPUp: @ 825FC70 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmHPUp: .string "You've chosen the HP UP.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmBrightpowder: @ 825FC9A +BattleFrontier_ExchangeServiceCorner_Text_ConfirmBrightpowder: .string "You've chosen the BRIGHTPOWDER.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmWhiteHerb: @ 825FCCB +BattleFrontier_ExchangeServiceCorner_Text_ConfirmWhiteHerb: .string "You've chosen the WHITE HERB.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmQuickClaw: @ 825FCFA +BattleFrontier_ExchangeServiceCorner_Text_ConfirmQuickClaw: .string "You've chosen the QUICK CLAW.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmMentalHerb: @ 825FD29 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmMentalHerb: .string "You've chosen the MENTAL HERB.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmChoiceBand: @ 825FD59 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmChoiceBand: .string "You've chosen the CHOICE BAND.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmKingsRock: @ 825FD89 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmKingsRock: .string "You've chosen the KING'S ROCK.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmFocusBand: @ 825FDB9 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmFocusBand: .string "You've chosen the FOCUS BAND.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmScopeLens: @ 825FDE8 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmScopeLens: .string "You've chosen the SCOPE LENS.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmLeftovers: @ 825FE17 +BattleFrontier_ExchangeServiceCorner_Text_ConfirmLeftovers: .string "You've chosen the LEFTOVERS.\n" .string "Is that correct?$" -BattleFrontier_ExchangeServiceCorner_Text_WellSendItToPC: @ 825FE45 +BattleFrontier_ExchangeServiceCorner_Text_WellSendItToPC: .string "Thank you!\n" .string "We'll send it to your PC at home.$" -BattleFrontier_ExchangeServiceCorner_Text_HereIsYourPrize: @ 825FE72 +BattleFrontier_ExchangeServiceCorner_Text_HereIsYourPrize: .string "Here is your prize!$" -BattleFrontier_ExchangeServiceCorner_Text_DontHaveEnoughPoints: @ 825FE86 +BattleFrontier_ExchangeServiceCorner_Text_DontHaveEnoughPoints: .string "I'm so sorry…\n" .string "You don't have enough Battle Points…$" -BattleFrontier_ExchangeServiceCorner_Text_PCIsFull: @ 825FEB9 +BattleFrontier_ExchangeServiceCorner_Text_PCIsFull: .string "I'm so sorry…\n" .string "Your PC appears to be full…$" -BattleFrontier_ExchangeServiceCorner_Text_DontHaveSpaceToHoldIt: @ 825FEE3 +BattleFrontier_ExchangeServiceCorner_Text_DontHaveSpaceToHoldIt: .string "I'm so sorry…\n" .string "You don't have space to hold it…$" -BattleFrontier_ExchangeServiceCorner_Text_ThankYouVisitWithPoints: @ 825FF12 +BattleFrontier_ExchangeServiceCorner_Text_ThankYouVisitWithPoints: .string "Thank you very much.\p" .string "Please visit us when you have\n" .string "saved up Battle Points.$" -BattleFrontier_ExchangeServiceCorner_Text_WishIHadAllDolls: @ 825FF5D +BattleFrontier_ExchangeServiceCorner_Text_WishIHadAllDolls: .string "Oh, they're so nice!\n" .string "I wish I had them!\l" .string "Cute cushions!\l" @@ -637,18 +637,18 @@ BattleFrontier_ExchangeServiceCorner_Text_WishIHadAllDolls: @ 825FF5D .string "Little plush DOLLS!\l" .string "I wish I had them all!$" -BattleFrontier_ExchangeServiceCorner_Text_GetYouAnythingYouWant: @ 825FFD0 +BattleFrontier_ExchangeServiceCorner_Text_GetYouAnythingYouWant: .string "Leave it to your mommy!\p" .string "If it's anything you want, I'll go\n" .string "through anything to get it, honey!$" -BattleFrontier_ExchangeServiceCorner_Text_ItemsWillGetMonTougher: @ 826002E +BattleFrontier_ExchangeServiceCorner_Text_ItemsWillGetMonTougher: .string "If I can get hold of the items here,\n" .string "my POKéMON will get tougher.\p" .string "You bet they will!\n" .string "No question about it!$" -BattleFrontier_ExchangeServiceCorner_Text_GoGetYourOwnDoll: @ 8260099 +BattleFrontier_ExchangeServiceCorner_Text_GoGetYourOwnDoll: .string "Hah?\n" .string "What are you gawking at?\p" .string "I don't like you staring at my plush\n" @@ -656,110 +656,110 @@ BattleFrontier_ExchangeServiceCorner_Text_GoGetYourOwnDoll: @ 8260099 .string "If you want it, go get one yourself!\n" .string "Isn't that right, SMOOCHUM?$" -BattleFrontier_ExchangeServiceCorner_Text_MoreBattlePointsForRecord: @ 826012D +BattleFrontier_ExchangeServiceCorner_Text_MoreBattlePointsForRecord: .string "Did you know?\p" .string "If you stretch your record at any of\n" .string "the BATTLE facilities, they start\l" .string "giving you more and more Battle Points.$" -BattleFrontier_ExchangeServiceCorner_Text_KissPosterDesc:: @ 82601AA +BattleFrontier_ExchangeServiceCorner_Text_KissPosterDesc:: .string "A large poster with a SMOOCHUM print.$" -BattleFrontier_ExchangeServiceCorner_Text_KissCushionDesc:: @ 82601D0 +BattleFrontier_ExchangeServiceCorner_Text_KissCushionDesc:: .string "A SMOOCHUM cushion.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_SmoochumDollDesc:: @ 8260201 +BattleFrontier_ExchangeServiceCorner_Text_SmoochumDollDesc:: .string "A SMOOCHUM DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_TogepiDollDesc:: @ 826022F +BattleFrontier_ExchangeServiceCorner_Text_TogepiDollDesc:: .string "A TOGEPI DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_MeowthDollDesc:: @ 826025B +BattleFrontier_ExchangeServiceCorner_Text_MeowthDollDesc:: .string "A MEOWTH DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_ClefairyDollDesc:: @ 8260287 +BattleFrontier_ExchangeServiceCorner_Text_ClefairyDollDesc:: .string "A CLEFAIRY DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_DittoDollDesc:: @ 82602B5 +BattleFrontier_ExchangeServiceCorner_Text_DittoDollDesc:: .string "A DITTO DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_CyndaquilDollDesc:: @ 82602E0 +BattleFrontier_ExchangeServiceCorner_Text_CyndaquilDollDesc:: .string "A CYNDAQUIL DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_ChikoritaDollDesc:: @ 826030F +BattleFrontier_ExchangeServiceCorner_Text_ChikoritaDollDesc:: .string "A CHIKORITA DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_TotodileDollDesc:: @ 826033E +BattleFrontier_ExchangeServiceCorner_Text_TotodileDollDesc:: .string "A TOTODILE DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_LargeDollDesc:: @ 826036C +BattleFrontier_ExchangeServiceCorner_Text_LargeDollDesc:: .string "A large DOLL.\n" .string "Place it on a mat or a desk.$" -BattleFrontier_ExchangeServiceCorner_Text_ProteinDesc:: @ 8260397 +BattleFrontier_ExchangeServiceCorner_Text_ProteinDesc:: .string "Raises the stat ATTACK of one\n" .string "POKéMON.$" -BattleFrontier_ExchangeServiceCorner_Text_CalciumDesc:: @ 82603BE +BattleFrontier_ExchangeServiceCorner_Text_CalciumDesc:: .string "Raises the stat SP. ATK of one\n" .string "POKéMON.$" -BattleFrontier_ExchangeServiceCorner_Text_IronDesc:: @ 82603E6 +BattleFrontier_ExchangeServiceCorner_Text_IronDesc:: .string "Raises the stat DEFENSE of one\n" .string "POKéMON.$" -BattleFrontier_ExchangeServiceCorner_Text_ZincDesc:: @ 826040E +BattleFrontier_ExchangeServiceCorner_Text_ZincDesc:: .string "Raises the stat SP. DEF of one\n" .string "POKéMON.$" -BattleFrontier_ExchangeServiceCorner_Text_CarbosDesc:: @ 8260436 +BattleFrontier_ExchangeServiceCorner_Text_CarbosDesc:: .string "Raises the stat SPEED of one\n" .string "POKéMON.$" -BattleFrontier_ExchangeServiceCorner_Text_HPUpDesc:: @ 826045C +BattleFrontier_ExchangeServiceCorner_Text_HPUpDesc:: .string "Raises the HP of one POKéMON.$" -BattleFrontier_ExchangeServiceCorner_Text_LeftoversDesc:: @ 826047A +BattleFrontier_ExchangeServiceCorner_Text_LeftoversDesc:: .string "A hold item that gradually restores\n" .string "HP in battle.$" -BattleFrontier_ExchangeServiceCorner_Text_WhiteHerbDesc:: @ 82604AC +BattleFrontier_ExchangeServiceCorner_Text_WhiteHerbDesc:: .string "A hold item that restores any\n" .string "lowered stat.$" -BattleFrontier_ExchangeServiceCorner_Text_QuickClawDesc:: @ 82604D8 +BattleFrontier_ExchangeServiceCorner_Text_QuickClawDesc:: .string "A hold item that occasionally allows\n" .string "the first strike.$" -BattleFrontier_ExchangeServiceCorner_Text_MentalHerbDesc:: @ 826050F +BattleFrontier_ExchangeServiceCorner_Text_MentalHerbDesc:: .string "A hold item that snaps POKéMON out\n" .string "of infatuation.$" -BattleFrontier_ExchangeServiceCorner_Text_BrightpowderDesc:: @ 8260542 +BattleFrontier_ExchangeServiceCorner_Text_BrightpowderDesc:: .string "A hold item that casts a glare to\n" .string "reduce accuracy.$" -BattleFrontier_ExchangeServiceCorner_Text_ChoiceBandDesc:: @ 8260575 +BattleFrontier_ExchangeServiceCorner_Text_ChoiceBandDesc:: .string "Raises a move's power, but permits\n" .string "only that move.$" -BattleFrontier_ExchangeServiceCorner_Text_KingsRockDesc:: @ 82605A8 +BattleFrontier_ExchangeServiceCorner_Text_KingsRockDesc:: .string "A hold item that may cause flinching\n" .string "when the foe is hit.$" -BattleFrontier_ExchangeServiceCorner_Text_FocusBandDesc:: @ 82605E2 +BattleFrontier_ExchangeServiceCorner_Text_FocusBandDesc:: .string "A hold item that occasionally\n" .string "prevents fainting.$" -BattleFrontier_ExchangeServiceCorner_Text_ScopeLensDesc:: @ 8260613 +BattleFrontier_ExchangeServiceCorner_Text_ScopeLensDesc:: .string "A hold item that raises the\n" .string "critical-hit rate.$" diff --git a/data/maps/BattleFrontier_Lounge1/scripts.inc b/data/maps/BattleFrontier_Lounge1/scripts.inc index 0ded021b67..0455d577ce 100644 --- a/data/maps/BattleFrontier_Lounge1/scripts.inc +++ b/data/maps/BattleFrontier_Lounge1/scripts.inc @@ -1,8 +1,8 @@ -BattleFrontier_Lounge1_MapScripts:: @ 825E774 +BattleFrontier_Lounge1_MapScripts:: .byte 0 @ NPC that rates pokemon based on their IVs -BattleFrontier_Lounge1_EventScript_Breeder:: @ 825E775 +BattleFrontier_Lounge1_EventScript_Breeder:: lock faceplayer call_if_unset FLAG_MET_BATTLE_FRONTIER_BREEDER, BattleFrontier_Lounge1_EventScript_BreederIntro @@ -11,7 +11,7 @@ BattleFrontier_Lounge1_EventScript_Breeder:: @ 825E775 goto BattleFrontier_Lounge1_EventScript_ChooseMonToShowBreeder end -BattleFrontier_Lounge1_EventScript_ChooseMonToShowBreeder:: @ 825E792 +BattleFrontier_Lounge1_EventScript_ChooseMonToShowBreeder:: special ChoosePartyMon waitstate compare VAR_0x8004, 255 @@ -20,11 +20,11 @@ BattleFrontier_Lounge1_EventScript_ChooseMonToShowBreeder:: @ 825E792 goto_if_eq BattleFrontier_Lounge1_EventScript_CancelMonSelect end -BattleFrontier_Lounge1_EventScript_BreederIntro:: @ 825E7AD +BattleFrontier_Lounge1_EventScript_BreederIntro:: msgbox BattleFrontier_Lounge1_Text_PokemonBreederIntro, MSGBOX_DEFAULT return -BattleFrontier_Lounge1_EventScript_AlreadyMetBreeder:: @ 825E7B6 +BattleFrontier_Lounge1_EventScript_AlreadyMetBreeder:: msgbox BattleFrontier_Lounge1_Text_LetsLookAtYourPokemon, MSGBOX_DEFAULT return @@ -32,7 +32,7 @@ BattleFrontier_Lounge1_EventScript_AlreadyMetBreeder:: @ 825E7B6 @ VAR_0x8005: Sum of the mons IVs @ VAR_0x8006: Stat id of highest IV stat @ VAR_0x8007: IV of the highest IV stat -BattleFrontier_Lounge1_EventScript_ShowMonToBreeder:: @ 825E7BF +BattleFrontier_Lounge1_EventScript_ShowMonToBreeder:: specialvar VAR_RESULT, ScriptGetPartyMonSpecies compare VAR_RESULT, SPECIES_EGG goto_if_eq BattleFrontier_Lounge1_EventScript_ShowEggToBreeder @@ -47,13 +47,13 @@ BattleFrontier_Lounge1_EventScript_ShowMonToBreeder:: @ 825E7BF goto_if_ge BattleFrontier_Lounge1_EventScript_VeryHighTotalIVs end -BattleFrontier_Lounge1_EventScript_ShowEggToBreeder:: @ 825E7FF +BattleFrontier_Lounge1_EventScript_ShowEggToBreeder:: msgbox BattleFrontier_Lounge1_Text_EvenICantTell, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_ChooseMonToShowBreeder end @ Comment on the highest IV stat -BattleFrontier_Lounge1_EventScript_HighestIVStat:: @ 825E80D +BattleFrontier_Lounge1_EventScript_HighestIVStat:: compare VAR_0x8006, STAT_HP goto_if_eq BattleFrontier_Lounge1_EventScript_HighestIVHP compare VAR_0x8006, STAT_ATK @@ -69,7 +69,7 @@ BattleFrontier_Lounge1_EventScript_HighestIVStat:: @ 825E80D end @ Comment on the highest IV value -BattleFrontier_Lounge1_EventScript_HighestIVValue:: @ 825E850 +BattleFrontier_Lounge1_EventScript_HighestIVValue:: compare VAR_0x8007, 15 goto_if_le BattleFrontier_Lounge1_EventScript_HighestIVLow compare VAR_0x8007, 25 @@ -80,94 +80,94 @@ BattleFrontier_Lounge1_EventScript_HighestIVValue:: @ 825E850 goto_if_ge BattleFrontier_Lounge1_EventScript_HighestIVMax end -BattleFrontier_Lounge1_EventScript_EndBreederComments:: @ 825E87D +BattleFrontier_Lounge1_EventScript_EndBreederComments:: release end -BattleFrontier_Lounge1_EventScript_AverageTotalIVs:: @ 825E87F +BattleFrontier_Lounge1_EventScript_AverageTotalIVs:: msgbox BattleFrontier_Lounge1_Text_AverageAbility, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVStat end -BattleFrontier_Lounge1_EventScript_AboveAverageTotalIVs:: @ 825E88D +BattleFrontier_Lounge1_EventScript_AboveAverageTotalIVs:: msgbox BattleFrontier_Lounge1_Text_BetterThanAverageAbility, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVStat end -BattleFrontier_Lounge1_EventScript_HighTotalIVs:: @ 825E89B +BattleFrontier_Lounge1_EventScript_HighTotalIVs:: msgbox BattleFrontier_Lounge1_Text_ImpressiveAbility, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVStat end -BattleFrontier_Lounge1_EventScript_VeryHighTotalIVs:: @ 825E8A9 +BattleFrontier_Lounge1_EventScript_VeryHighTotalIVs:: msgbox BattleFrontier_Lounge1_Text_OutstandingAbility, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVStat end -BattleFrontier_Lounge1_EventScript_HighestIVHP:: @ 825E8B7 +BattleFrontier_Lounge1_EventScript_HighestIVHP:: msgbox BattleFrontier_Lounge1_Text_BestAspectHP, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVValue end -BattleFrontier_Lounge1_EventScript_HighestIVAtk:: @ 825E8C5 +BattleFrontier_Lounge1_EventScript_HighestIVAtk:: msgbox BattleFrontier_Lounge1_Text_BestAspectAtk, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVValue end -BattleFrontier_Lounge1_EventScript_HighestIVDef:: @ 825E8D3 +BattleFrontier_Lounge1_EventScript_HighestIVDef:: msgbox BattleFrontier_Lounge1_Text_BestAspectDef, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVValue end -BattleFrontier_Lounge1_EventScript_HighestIVSpeed:: @ 825E8E1 +BattleFrontier_Lounge1_EventScript_HighestIVSpeed:: msgbox BattleFrontier_Lounge1_Text_BestAspectSpeed, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVValue end -BattleFrontier_Lounge1_EventScript_HighestIVSpAtk:: @ 825E8EF +BattleFrontier_Lounge1_EventScript_HighestIVSpAtk:: msgbox BattleFrontier_Lounge1_Text_BestAspectSpAtk, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVValue end -BattleFrontier_Lounge1_EventScript_HighestIVSpDef:: @ 825E8FD +BattleFrontier_Lounge1_EventScript_HighestIVSpDef:: msgbox BattleFrontier_Lounge1_Text_BestAspectSpDef, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_HighestIVValue end -BattleFrontier_Lounge1_EventScript_HighestIVLow:: @ 825E90B +BattleFrontier_Lounge1_EventScript_HighestIVLow:: msgbox BattleFrontier_Lounge1_Text_StatRelativelyGood, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_EndBreederComments end -BattleFrontier_Lounge1_EventScript_HighestIVMid:: @ 825E919 +BattleFrontier_Lounge1_EventScript_HighestIVMid:: msgbox BattleFrontier_Lounge1_Text_StatImpressive, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_EndBreederComments end -BattleFrontier_Lounge1_EventScript_HighestIVHigh:: @ 825E927 +BattleFrontier_Lounge1_EventScript_HighestIVHigh:: msgbox BattleFrontier_Lounge1_Text_StatOutstanding, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_EndBreederComments end -BattleFrontier_Lounge1_EventScript_HighestIVMax:: @ 825E935 +BattleFrontier_Lounge1_EventScript_HighestIVMax:: msgbox BattleFrontier_Lounge1_Text_StatFlawless, MSGBOX_DEFAULT goto BattleFrontier_Lounge1_EventScript_EndBreederComments end -BattleFrontier_Lounge1_EventScript_CancelMonSelect:: @ 825E943 +BattleFrontier_Lounge1_EventScript_CancelMonSelect:: msgbox BattleFrontier_Lounge1_Text_NoTimeForMyAdvice, MSGBOX_DEFAULT release end -BattleFrontier_Lounge1_EventScript_Boy1:: @ 825E94D +BattleFrontier_Lounge1_EventScript_Boy1:: msgbox BattleFrontier_Lounge1_Text_SaidMyMonIsOutstanding, MSGBOX_NPC end -BattleFrontier_Lounge1_EventScript_Boy2:: @ 825E956 +BattleFrontier_Lounge1_EventScript_Boy2:: msgbox BattleFrontier_Lounge1_Text_DidntDoAnythingSpecialRaisingIt, MSGBOX_NPC end -BattleFrontier_Lounge1_Text_PokemonBreederIntro: @ 825E95F +BattleFrontier_Lounge1_Text_PokemonBreederIntro: .string "For 70 years I have raised POKéMON!\n" .string "I am the man they revere as\l" .string "the legendary top POKéMON BREEDER!\p" @@ -180,95 +180,95 @@ BattleFrontier_Lounge1_Text_PokemonBreederIntro: @ 825E95F .string "Here!\n" .string "Let's have a look at your POKéMON!$" -BattleFrontier_Lounge1_Text_AverageAbility: @ 825EA92 +BattleFrontier_Lounge1_Text_AverageAbility: .string "…Hmm…\p" .string "This one, overall, I would describe\n" .string "as being of average ability.$" -BattleFrontier_Lounge1_Text_BetterThanAverageAbility: @ 825EAD9 +BattleFrontier_Lounge1_Text_BetterThanAverageAbility: .string "…Hmm…\p" .string "This one, overall, I would describe as\n" .string "having better-than-average ability.$" -BattleFrontier_Lounge1_Text_ImpressiveAbility: @ 825EB2A +BattleFrontier_Lounge1_Text_ImpressiveAbility: .string "…Hmm…\p" .string "This one, overall, I would say is\n" .string "quite impressive in ability!$" -BattleFrontier_Lounge1_Text_OutstandingAbility: @ 825EB6F +BattleFrontier_Lounge1_Text_OutstandingAbility: .string "…Hmm…\p" .string "This one, overall, I would say is\n" .string "wonderfully outstanding in ability!$" -BattleFrontier_Lounge1_Text_BestAspectHP: @ 825EBBB +BattleFrontier_Lounge1_Text_BestAspectHP: .string "Incidentally, the best aspect of it,\n" .string "I would say, is its HP…$" -BattleFrontier_Lounge1_Text_BestAspectAtk: @ 825EBF8 +BattleFrontier_Lounge1_Text_BestAspectAtk: .string "Incidentally, the best aspect of it,\n" .string "I would say, is its ATTACK…$" -BattleFrontier_Lounge1_Text_BestAspectDef: @ 825EC39 +BattleFrontier_Lounge1_Text_BestAspectDef: .string "Incidentally, the best aspect of it,\n" .string "I would say, is its DEFENSE…$" -BattleFrontier_Lounge1_Text_BestAspectSpAtk: @ 825EC7B +BattleFrontier_Lounge1_Text_BestAspectSpAtk: .string "Incidentally, the best aspect of it,\n" .string "I would say, is its SPECIAL ATTACK…$" -BattleFrontier_Lounge1_Text_BestAspectSpDef: @ 825ECC4 +BattleFrontier_Lounge1_Text_BestAspectSpDef: .string "Incidentally, the best aspect of it,\n" .string "I would say, is its SPECIAL DEFENSE…$" -BattleFrontier_Lounge1_Text_BestAspectSpeed: @ 825ED0E +BattleFrontier_Lounge1_Text_BestAspectSpeed: .string "Incidentally, the best aspect of it,\n" .string "I would say, is its SPEED…$" -BattleFrontier_Lounge1_Text_StatRelativelyGood: @ 825ED4E +BattleFrontier_Lounge1_Text_StatRelativelyGood: .string "That stat is relatively good.\n" .string "…Hm… That's how I call it.$" -BattleFrontier_Lounge1_Text_StatImpressive: @ 825ED87 +BattleFrontier_Lounge1_Text_StatImpressive: .string "That stat is quite impressive.\n" .string "…Hm… That's how I call it.$" -BattleFrontier_Lounge1_Text_StatOutstanding: @ 825EDC1 +BattleFrontier_Lounge1_Text_StatOutstanding: .string "That stat is outstanding!\n" .string "…Hm… That's how I call it.$" -BattleFrontier_Lounge1_Text_StatFlawless: @ 825EDF6 +BattleFrontier_Lounge1_Text_StatFlawless: .string "It's flawless! A thing of perfection!\n" .string "…Hm… That's how I call it.$" -BattleFrontier_Lounge1_Text_NoTimeForMyAdvice: @ 825EE37 +BattleFrontier_Lounge1_Text_NoTimeForMyAdvice: .string "What?\n" .string "You have no time for my advice?\p" .string "You should always be eager to learn\n" .string "from the experiences of your elders!$" @ Unused -BattleFrontier_Lounge1_Text_HaveBusinessNeedsTending: @ 825EEA6 +BattleFrontier_Lounge1_Text_HaveBusinessNeedsTending: .string "Yes, what is it now?\p" .string "I have business that needs tending!\n" .string "Save it for next time!$" -BattleFrontier_Lounge1_Text_LetsLookAtYourPokemon: @ 825EEF6 +BattleFrontier_Lounge1_Text_LetsLookAtYourPokemon: .string "Ah, youngster! Do your POKéMON's\n" .string "abilities intrigue you?\p" .string "Here, here!\n" .string "Let's have a look at your POKéMON!$" -BattleFrontier_Lounge1_Text_EvenICantTell: @ 825EF5E +BattleFrontier_Lounge1_Text_EvenICantTell: .string "An expert I am, but even I can't tell\n" .string "anything about an unhatched POKéMON!\p" .string "Show me a POKéMON!\n" .string "A POKéMON is what I need to see!$" -BattleFrontier_Lounge1_Text_SaidMyMonIsOutstanding: @ 825EFDD +BattleFrontier_Lounge1_Text_SaidMyMonIsOutstanding: .string "He said my POKéMON is outstanding!\n" .string "I'm glad I raised it carefully!$" -BattleFrontier_Lounge1_Text_DidntDoAnythingSpecialRaisingIt: @ 825F020 +BattleFrontier_Lounge1_Text_DidntDoAnythingSpecialRaisingIt: .string "He said my POKéMON is outstanding!\n" .string "But I didn't do anything special\l" .string "raising it…$" diff --git a/data/maps/BattleFrontier_Lounge2/scripts.inc b/data/maps/BattleFrontier_Lounge2/scripts.inc index 610a744b4a..106d1d1793 100644 --- a/data/maps/BattleFrontier_Lounge2/scripts.inc +++ b/data/maps/BattleFrontier_Lounge2/scripts.inc @@ -1,4 +1,4 @@ -BattleFrontier_Lounge2_MapScripts:: @ 8260642 +BattleFrontier_Lounge2_MapScripts:: .byte 0 @ This NPC gives hints about a random facility or battle mode. @@ -7,7 +7,7 @@ BattleFrontier_Lounge2_MapScripts:: @ 8260642 @ The name of the Frontier Brain there @ The type and description of the 3 pokemon they use in their silver battle @ The type and description of the 3 pokemon they use in their gold battle -BattleFrontier_Lounge2_EventScript_FrontierManiac:: @ 8260643 +BattleFrontier_Lounge2_EventScript_FrontierManiac:: lock faceplayer goto_if_set FLAG_MET_BATTLE_FRONTIER_MANIAC, BattleFrontier_Lounge2_EventScript_AlreadyMetManiac @@ -16,12 +16,12 @@ BattleFrontier_Lounge2_EventScript_FrontierManiac:: @ 8260643 goto BattleFrontier_Lounge2_EventScript_GiveAdvice end -BattleFrontier_Lounge2_EventScript_AlreadyMetManiac:: @ 826065F +BattleFrontier_Lounge2_EventScript_AlreadyMetManiac:: msgbox BattleFrontier_Lounge2_Text_SwingByForTheLatestWord, MSGBOX_DEFAULT goto BattleFrontier_Lounge2_EventScript_GiveAdvice end -BattleFrontier_Lounge2_EventScript_GiveAdvice:: @ 826066D +BattleFrontier_Lounge2_EventScript_GiveAdvice:: compare VAR_FRONTIER_MANIAC_FACILITY, 0 call_if_eq BattleFrontier_Lounge2_EventScript_BufferSingle compare VAR_FRONTIER_MANIAC_FACILITY, 1 @@ -52,77 +52,77 @@ BattleFrontier_Lounge2_EventScript_GiveAdvice:: @ 826066D release end -BattleFrontier_Lounge2_EventScript_BattleTowerNews:: @ 82606F8 +BattleFrontier_Lounge2_EventScript_BattleTowerNews:: msgbox BattleFrontier_Lounge2_Text_BattleTowerIsHottest, MSGBOX_DEFAULT return -BattleFrontier_Lounge2_EventScript_FacilityNews:: @ 8260701 +BattleFrontier_Lounge2_EventScript_FacilityNews:: msgbox BattleFrontier_Lounge2_Text_FacilityIsHottest, MSGBOX_DEFAULT return -BattleFrontier_Lounge2_EventScript_BufferSingle:: @ 826070A +BattleFrontier_Lounge2_EventScript_BufferSingle:: bufferstdstring 0, STDSTRING_SINGLE return -BattleFrontier_Lounge2_EventScript_BufferDouble:: @ 826070F +BattleFrontier_Lounge2_EventScript_BufferDouble:: bufferstdstring 0, STDSTRING_DOUBLE return -BattleFrontier_Lounge2_EventScript_BufferMulti:: @ 8260714 +BattleFrontier_Lounge2_EventScript_BufferMulti:: bufferstdstring 0, STDSTRING_MULTI return -BattleFrontier_Lounge2_EventScript_BufferMultiLink:: @ 8260719 +BattleFrontier_Lounge2_EventScript_BufferMultiLink:: bufferstdstring 0, STDSTRING_MULTI_LINK return -BattleFrontier_Lounge2_EventScript_BufferBattleDome:: @ 826071E +BattleFrontier_Lounge2_EventScript_BufferBattleDome:: bufferstdstring 0, STDSTRING_BATTLE_DOME return -BattleFrontier_Lounge2_EventScript_BufferBattleFactory:: @ 8260723 +BattleFrontier_Lounge2_EventScript_BufferBattleFactory:: bufferstdstring 0, STDSTRING_BATTLE_FACTORY return -BattleFrontier_Lounge2_EventScript_BufferBattlePalace:: @ 8260728 +BattleFrontier_Lounge2_EventScript_BufferBattlePalace:: bufferstdstring 0, STDSTRING_BATTLE_PALACE return -BattleFrontier_Lounge2_EventScript_BufferBattleArena:: @ 826072D +BattleFrontier_Lounge2_EventScript_BufferBattleArena:: bufferstdstring 0, STDSTRING_BATTLE_ARENA return -BattleFrontier_Lounge2_EventScript_BufferBattlePike:: @ 8260732 +BattleFrontier_Lounge2_EventScript_BufferBattlePike:: bufferstdstring 0, STDSTRING_BATTLE_PIKE return -BattleFrontier_Lounge2_EventScript_BufferBattlePyramid:: @ 8260737 +BattleFrontier_Lounge2_EventScript_BufferBattlePyramid:: bufferstdstring 0, STDSTRING_BATTLE_PYRAMID return -BattleFrontier_Lounge2_EventScript_Maniac1:: @ 826073C +BattleFrontier_Lounge2_EventScript_Maniac1:: lock msgbox BattleFrontier_Lounge2_Text_NewsGatheringPower, MSGBOX_DEFAULT release end -BattleFrontier_Lounge2_EventScript_Maniac2:: @ 8260747 +BattleFrontier_Lounge2_EventScript_Maniac2:: lock msgbox BattleFrontier_Lounge2_Text_AmazingPowersOfObservation, MSGBOX_DEFAULT release end -BattleFrontier_Lounge2_EventScript_Maniac3:: @ 8260752 +BattleFrontier_Lounge2_EventScript_Maniac3:: lock msgbox BattleFrontier_Lounge2_Text_AmazingPowerOfPersuasion, MSGBOX_DEFAULT release end -BattleFrontier_Lounge2_EventScript_TriathleteF:: @ 826075D +BattleFrontier_Lounge2_EventScript_TriathleteF:: msgbox BattleFrontier_Lounge2_Text_ThisPlaceIsScaringMe, MSGBOX_NPC end -BattleFrontier_Lounge2_Text_FrontierManiacIntro:: @ 8260766 +BattleFrontier_Lounge2_Text_FrontierManiacIntro:: .string "Howdy! When it comes to news about\n" .string "the BATTLE FRONTIER, I'm no. 1.\p" .string "You can think of me as\n" @@ -132,34 +132,34 @@ BattleFrontier_Lounge2_Text_FrontierManiacIntro:: @ 8260766 .string "I'll happily share the hottest news\n" .string "I gathered about the BATTLE FRONTIER.$" -BattleFrontier_Lounge2_Text_SwingByForTheLatestWord:: @ 8260857 +BattleFrontier_Lounge2_Text_SwingByForTheLatestWord:: .string "Howdy! Did you swing by to grill me\n" .string "about the latest word? Oh, all right!$" @ Unused -BattleFrontier_Lounge2_Text_MyInformationsBeenUsefulRight:: @ 82608A1 +BattleFrontier_Lounge2_Text_MyInformationsBeenUsefulRight:: .string "Well? Well? Well?\p" .string "I'm sure my information's been\n" .string "seriously useful to you, right?$" -BattleFrontier_Lounge2_Text_FacilityIsHottest:: @ 82608F2 +BattleFrontier_Lounge2_Text_FacilityIsHottest:: .string "Let's see now…\p" .string "It sounds like the {STR_VAR_1}\n" .string "is the hottest place going.$" -BattleFrontier_Lounge2_Text_BattleTowerIsHottest:: @ 8260933 +BattleFrontier_Lounge2_Text_BattleTowerIsHottest:: .string "Let's see now…\p" .string "It sounds like BATTLE TOWER\n" .string "{STR_VAR_1} is the hottest.$" -BattleFrontier_Lounge2_Text_SalonMaidenIsThere:: @ 8260971 +BattleFrontier_Lounge2_Text_SalonMaidenIsThere:: .string "Bet you didn't know this!\p" .string "One of those top TRAINERS that SCOTT\n" .string "calls the FRONTIER BRAINS is there.\p" .string "It's this mysterious TRAINER called\n" .string "the SALON MAIDEN that runs the place.$" -BattleFrontier_Lounge2_Text_SalonMaidenSilverMons:: @ 8260A1E +BattleFrontier_Lounge2_Text_SalonMaidenSilverMons:: .string "Have you battled the SALON MAIDEN?\p" .string "When she's measuring up her opponent,\n" .string "she apparently uses these POKéMON:\p" @@ -167,7 +167,7 @@ BattleFrontier_Lounge2_Text_SalonMaidenSilverMons:: @ 8260A1E .string "a FIRE-type VOLCANO POKéMON,\l" .string "and a NORMAL-type SLEEPING POKéMON.$" -BattleFrontier_Lounge2_Text_SalonMaidenGoldMons:: @ 8260AE7 +BattleFrontier_Lounge2_Text_SalonMaidenGoldMons:: .string "Have you battled the SALON MAIDEN\n" .string "when she's serious?\p" .string "When she's battling flat out,\n" @@ -176,14 +176,14 @@ BattleFrontier_Lounge2_Text_SalonMaidenGoldMons:: @ 8260AE7 .string "an ELECTRIC-type THUNDER POKéMON,\l" .string "and a NORMAL-type SLEEPING POKéMON.$" -BattleFrontier_Lounge2_Text_DomeAceIsThere:: @ 8260BC4 +BattleFrontier_Lounge2_Text_DomeAceIsThere:: .string "Bet you didn't know this!\p" .string "One of those top TRAINERS that SCOTT\n" .string "calls the FRONTIER BRAINS is there.\p" .string "It's this flamboyant TRAINER called\n" .string "the DOME ACE that runs the place.$" -BattleFrontier_Lounge2_Text_DomeAceSilverMons:: @ 8260C6D +BattleFrontier_Lounge2_Text_DomeAceSilverMons:: .string "Have you battled the DOME ACE?\p" .string "When he's treating the opponent\n" .string "lightly, he uses these three POKéMON:\p" @@ -191,7 +191,7 @@ BattleFrontier_Lounge2_Text_DomeAceSilverMons:: @ 8260C6D .string "a WATER & GROUND MUD FISH POKéMON,\l" .string "and a FIRE & FLYING FLAME POKéMON.$" -BattleFrontier_Lounge2_Text_DomeAceGoldMons:: @ 8260D3A +BattleFrontier_Lounge2_Text_DomeAceGoldMons:: .string "Have you battled the DOME ACE\n" .string "when he's serious?\p" .string "When he's demonstrating his strategy,\n" @@ -201,14 +201,14 @@ BattleFrontier_Lounge2_Text_DomeAceGoldMons:: @ 8260D3A .string "and a STEEL- & PSYCHIC-type IRON LEG\l" .string "POKéMON.$" -BattleFrontier_Lounge2_Text_FactoryHeadIsThere:: @ 8260E1E +BattleFrontier_Lounge2_Text_FactoryHeadIsThere:: .string "Bet you didn't know this!\p" .string "One of those top TRAINERS that SCOTT\n" .string "calls the FRONTIER BRAINS is there.\p" .string "It's this freaky TRAINER called\n" .string "the FACTORY HEAD that runs the place.$" -BattleFrontier_Lounge2_Text_FactoryHeadSilverMons:: @ 8260EC7 +BattleFrontier_Lounge2_Text_FactoryHeadSilverMons:: .string "Have you battled the FACTORY HEAD\n" .string "already?\p" .string "Let me think… When he goes to battle,\n" @@ -216,7 +216,7 @@ BattleFrontier_Lounge2_Text_FactoryHeadSilverMons:: @ 8260EC7 .string "He battles under pretty much the same\n" .string "conditions as you.$" -BattleFrontier_Lounge2_Text_FactoryHeadGoldMons:: @ 8260F74 +BattleFrontier_Lounge2_Text_FactoryHeadGoldMons:: .string "Have you battled the FACTORY HEAD\n" .string "when he's serious?\p" .string "When he goes seriously to battle,\n" @@ -224,14 +224,14 @@ BattleFrontier_Lounge2_Text_FactoryHeadGoldMons:: @ 8260F74 .string "He battles under virtually the same\n" .string "conditions as you.$" -BattleFrontier_Lounge2_Text_PikeQueenIsThere:: @ 8261026 +BattleFrontier_Lounge2_Text_PikeQueenIsThere:: .string "Bet you didn't know this!\p" .string "One of those top TRAINERS that SCOTT\n" .string "calls the FRONTIER BRAINS is there.\p" .string "It's this scary TRAINER called\n" .string "the PIKE QUEEN that runs the place.$" -BattleFrontier_Lounge2_Text_PikeQueenSilverMons:: @ 82610CC +BattleFrontier_Lounge2_Text_PikeQueenSilverMons:: .string "Have you battled the PIKE QUEEN\n" .string "before?\p" .string "When she's in a good mood, they say\n" @@ -240,7 +240,7 @@ BattleFrontier_Lounge2_Text_PikeQueenSilverMons:: @ 82610CC .string "a BUG & ROCK MOLD POKéMON,\l" .string "and a WATER-type TENDER POKéMON.$" -BattleFrontier_Lounge2_Text_PikeQueenGoldMons:: @ 8261194 +BattleFrontier_Lounge2_Text_PikeQueenGoldMons:: .string "Have you battled the PIKE QUEEN\n" .string "when she's serious?\p" .string "When she's seriously annoyed, they say\n" @@ -250,14 +250,14 @@ BattleFrontier_Lounge2_Text_PikeQueenGoldMons:: @ 8261194 .string "and a WATER- & FLYING-type ATROCIOUS\l" .string "POKéMON.$" -BattleFrontier_Lounge2_Text_ArenaTycoonIsThere:: @ 8261282 +BattleFrontier_Lounge2_Text_ArenaTycoonIsThere:: .string "Bet you didn't know this!\p" .string "One of those top TRAINERS that SCOTT\n" .string "calls the FRONTIER BRAINS is there.\p" .string "It's this cute TRAINER called\n" .string "the ARENA TYCOON that runs the place.$" -BattleFrontier_Lounge2_Text_ArenaTycoonSilverMons:: @ 8261329 +BattleFrontier_Lounge2_Text_ArenaTycoonSilverMons:: .string "Have you battled the ARENA TYCOON\n" .string "before?\p" .string "When she's assessing the foe's ability,\n" @@ -266,7 +266,7 @@ BattleFrontier_Lounge2_Text_ArenaTycoonSilverMons:: @ 8261329 .string "a DARK-type MOONLIGHT POKéMON,\l" .string "and a BUG & GHOST SHED POKéMON.$" -BattleFrontier_Lounge2_Text_ArenaTycoonGoldMons:: @ 8261403 +BattleFrontier_Lounge2_Text_ArenaTycoonGoldMons:: .string "Have you battled the ARENA TYCOON\n" .string "when she's serious?\p" .string "When she battles for keeps,\n" @@ -276,14 +276,14 @@ BattleFrontier_Lounge2_Text_ArenaTycoonGoldMons:: @ 8261403 .string "and a GRASS- & FIGHTING-type\l" .string "MUSHROOM POKéMON.$" -BattleFrontier_Lounge2_Text_PalaceMavenIsThere:: @ 82614E6 +BattleFrontier_Lounge2_Text_PalaceMavenIsThere:: .string "Bet you didn't know this!\p" .string "One of those top TRAINERS that SCOTT\n" .string "calls the FRONTIER BRAINS is there.\p" .string "It's this sinister TRAINER called\n" .string "the PALACE MAVEN that runs the place.$" -BattleFrontier_Lounge2_Text_PalaceMavenSilverMons:: @ 8261591 +BattleFrontier_Lounge2_Text_PalaceMavenSilverMons:: .string "Have you battled the PALACE MAVEN\n" .string "before?\p" .string "When he's testing the opponent's\n" @@ -292,7 +292,7 @@ BattleFrontier_Lounge2_Text_PalaceMavenSilverMons:: @ 8261591 .string "a NORMAL-type LAZY POKéMON, and a\l" .string "WATER- & ICE-type TRANSPORT POKéMON.$" -BattleFrontier_Lounge2_Text_PalaceMavenGoldMons:: @ 826166F +BattleFrontier_Lounge2_Text_PalaceMavenGoldMons:: .string "Have you battled the PALACE MAVEN\n" .string "when he's serious?\p" .string "When he throws his entire might into\n" @@ -301,14 +301,14 @@ BattleFrontier_Lounge2_Text_PalaceMavenGoldMons:: @ 826166F .string "a NORMAL-type LAZY POKéMON,\l" .string "and a WATER-type AURORA POKéMON.$" -BattleFrontier_Lounge2_Text_PyramidKingIsThere:: @ 826174D +BattleFrontier_Lounge2_Text_PyramidKingIsThere:: .string "Bet you didn't know this!\p" .string "One of those top TRAINERS that SCOTT\n" .string "calls the FRONTIER BRAINS is there.\p" .string "It's this fiery-hot TRAINER called\n" .string "the PYRAMID KING that runs the place.$" -BattleFrontier_Lounge2_Text_PyramidKingSilverMons:: @ 82617F9 +BattleFrontier_Lounge2_Text_PyramidKingSilverMons:: .string "Have you battled the PYRAMID KING\n" .string "before?\p" .string "When he's checking the foe's power,\n" @@ -317,7 +317,7 @@ BattleFrontier_Lounge2_Text_PyramidKingSilverMons:: @ 82617F9 .string "an ICE-type ICEBERG POKéMON,\l" .string "and a STEEL-type IRON POKéMON.$" -BattleFrontier_Lounge2_Text_PyramidKingGoldMons:: @ 82618C4 +BattleFrontier_Lounge2_Text_PyramidKingGoldMons:: .string "Have you battled the PYRAMID KING\n" .string "when he's serious?\p" .string "When he's pumped with hot power,\n" @@ -327,7 +327,7 @@ BattleFrontier_Lounge2_Text_PyramidKingGoldMons:: @ 82618C4 .string "and a FIRE- & FLYING-type FLAME\l" .string "POKéMON.$" -BattleFrontier_Lounge2_Text_DoubleBattleAdvice1:: @ 82619AC +BattleFrontier_Lounge2_Text_DoubleBattleAdvice1:: .string "Sure, there are several places where\n" .string "you can enter DOUBLE BATTLES.\p" .string "But the DOUBLE BATTLE ROOMS of\n" @@ -336,44 +336,44 @@ BattleFrontier_Lounge2_Text_DoubleBattleAdvice1:: @ 82619AC .string "how DOUBLE BATTLES are played here\l" .string "in the BATTLE FRONTIER.$" -BattleFrontier_Lounge2_Text_DoubleBattleAdvice2:: @ 8261A91 +BattleFrontier_Lounge2_Text_DoubleBattleAdvice2:: .string "Watch yourself in the battles here.\p" .string "I hear there are TRAINERS that have\n" .string "strategies they developed just for\l" .string "DOUBLE BATTLES.$" -BattleFrontier_Lounge2_Text_DoubleBattleAdvice3:: @ 8261B0C +BattleFrontier_Lounge2_Text_DoubleBattleAdvice3:: .string "Once you're confident and comfortable\n" .string "with DOUBLE BATTLES here, you should\l" .string "think about challenging other places\l" .string "offering DOUBLE BATTLES.$" -BattleFrontier_Lounge2_Text_MultiBattleAdvice:: @ 8261B95 +BattleFrontier_Lounge2_Text_MultiBattleAdvice:: .string "All sorts of TRAINERS gather in\n" .string "the BATTLE SALON.\p" .string "Just think--you may run into your\n" .string "friends or followers!\l" .string "You should look carefully!$" -BattleFrontier_Lounge2_Text_LinkMultiBattleAdvice:: @ 8261C1A +BattleFrontier_Lounge2_Text_LinkMultiBattleAdvice:: .string "If you're with a friend, head for the\n" .string "LINK MULTI BATTLE ROOM.\p" .string "If you play with a strong friend,\n" .string "you can expect to see tough foes!$" -BattleFrontier_Lounge2_Text_NewsGatheringPower:: @ 8261C9C +BattleFrontier_Lounge2_Text_NewsGatheringPower:: .string "What amazing news-gathering power!\n" .string "My mentor's like none other!$" -BattleFrontier_Lounge2_Text_AmazingPowersOfObservation:: @ 8261CDC +BattleFrontier_Lounge2_Text_AmazingPowersOfObservation:: .string "What amazing powers of observation!\n" .string "My mentor's like none other!$" -BattleFrontier_Lounge2_Text_AmazingPowerOfPersuasion:: @ 8261D1D +BattleFrontier_Lounge2_Text_AmazingPowerOfPersuasion:: .string "What amazing power of persuasion!\n" .string "My mentor's like none other!$" -BattleFrontier_Lounge2_Text_ThisPlaceIsScaringMe:: @ 8261D5C +BattleFrontier_Lounge2_Text_ThisPlaceIsScaringMe:: .string "…What is this place?\n" .string "It's scaring me…$" diff --git a/data/maps/BattleFrontier_Lounge3/scripts.inc b/data/maps/BattleFrontier_Lounge3/scripts.inc index bc85d92d0f..c0a9417385 100644 --- a/data/maps/BattleFrontier_Lounge3/scripts.inc +++ b/data/maps/BattleFrontier_Lounge3/scripts.inc @@ -1,11 +1,11 @@ -BattleFrontier_Lounge3_MapScripts:: @ 8261D82 +BattleFrontier_Lounge3_MapScripts:: .byte 0 .set BET_AMOUNT_5, 5 .set BET_AMOUNT_10, 10 .set BET_AMOUNT_15, 15 -BattleFrontier_Lounge3_EventScript_Gambler:: @ 8261D83 +BattleFrontier_Lounge3_EventScript_Gambler:: lock faceplayer goto_if_set FLAG_MET_BATTLE_FRONTIER_GAMBLER, BattleFrontier_Lounge3_EventScript_AlreadyMetGambler @@ -17,7 +17,7 @@ BattleFrontier_Lounge3_EventScript_Gambler:: @ 8261D83 goto BattleFrontier_Lounge3_EventScript_AskToEnterChallenge end -BattleFrontier_Lounge3_EventScript_AskToEnterChallenge:: @ 8261DAF +BattleFrontier_Lounge3_EventScript_AskToEnterChallenge:: special ShowFrontierGamblerLookingMessage waitmessage waitbuttonpress @@ -33,8 +33,8 @@ BattleFrontier_Lounge3_EventScript_AskToEnterChallenge:: @ 8261DAF goto BattleFrontier_Lounge3_EventScript_ChooseBetAmount end -BattleFrontier_Lounge3_EventScript_ChooseBetAmount:: @ 8261DE9 - multichoice 20, 4, MULTI_FRONTIER_GAMBLER_BET, 0 +BattleFrontier_Lounge3_EventScript_ChooseBetAmount:: + multichoice 20, 4, MULTI_FRONTIER_GAMBLER_BET, FALSE copyvar VAR_FRONTIER_GAMBLER_AMOUNT_BET, VAR_RESULT switch VAR_RESULT case FRONTIER_GAMBLER_BET_5, BattleFrontier_Lounge3_EventScript_Bet5 @@ -44,22 +44,22 @@ BattleFrontier_Lounge3_EventScript_ChooseBetAmount:: @ 8261DE9 case MULTI_B_PRESSED, BattleFrontier_Lounge3_EventScript_CancelBet end -BattleFrontier_Lounge3_EventScript_Bet5:: @ 8261E30 +BattleFrontier_Lounge3_EventScript_Bet5:: setvar VAR_0x8008, BET_AMOUNT_5 goto BattleFrontier_Lounge3_EventScript_TryPlaceBet end -BattleFrontier_Lounge3_EventScript_Bet10:: @ 8261E3B +BattleFrontier_Lounge3_EventScript_Bet10:: setvar VAR_0x8008, BET_AMOUNT_10 goto BattleFrontier_Lounge3_EventScript_TryPlaceBet end -BattleFrontier_Lounge3_EventScript_Bet15:: @ 8261E46 +BattleFrontier_Lounge3_EventScript_Bet15:: setvar VAR_0x8008, BET_AMOUNT_15 goto BattleFrontier_Lounge3_EventScript_TryPlaceBet end -BattleFrontier_Lounge3_EventScript_TryPlaceBet:: @ 8261E51 +BattleFrontier_Lounge3_EventScript_TryPlaceBet:: specialvar VAR_TEMP_1, GetFrontierBattlePoints compare VAR_TEMP_1, VAR_0x8008 goto_if_ge BattleFrontier_Lounge3_EventScript_PlaceBet @@ -69,7 +69,7 @@ BattleFrontier_Lounge3_EventScript_TryPlaceBet:: @ 8261E51 goto BattleFrontier_Lounge3_EventScript_ChooseBetAmount end -BattleFrontier_Lounge3_EventScript_PlaceBet:: @ 8261E75 +BattleFrontier_Lounge3_EventScript_PlaceBet:: copyvar VAR_0x8004, VAR_0x8008 special TakeFrontierBattlePoints setvar VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET @@ -79,7 +79,7 @@ BattleFrontier_Lounge3_EventScript_PlaceBet:: @ 8261E75 goto BattleFrontier_Lounge3_EventScript_FinishBet end -BattleFrontier_Lounge3_EventScript_FinishBet:: @ 8261E96 +BattleFrontier_Lounge3_EventScript_FinishBet:: special ShowFrontierGamblerGoMessage waitmessage waitbuttonpress @@ -87,7 +87,7 @@ BattleFrontier_Lounge3_EventScript_FinishBet:: @ 8261E96 release end -BattleFrontier_Lounge3_EventScript_CountSilverSymbols:: @ 8261EA0 +BattleFrontier_Lounge3_EventScript_CountSilverSymbols:: setvar VAR_0x8004, 0 call_if_set FLAG_SYS_TOWER_SILVER, BattleFrontier_Lounge3_EventScript_AddSilverSymbolCount call_if_set FLAG_SYS_DOME_SILVER, BattleFrontier_Lounge3_EventScript_AddSilverSymbolCount @@ -98,23 +98,23 @@ BattleFrontier_Lounge3_EventScript_CountSilverSymbols:: @ 8261EA0 call_if_set FLAG_SYS_PYRAMID_SILVER, BattleFrontier_Lounge3_EventScript_AddSilverSymbolCount return -BattleFrontier_Lounge3_EventScript_AddSilverSymbolCount:: @ 8261EE5 +BattleFrontier_Lounge3_EventScript_AddSilverSymbolCount:: addvar VAR_0x8004, 1 return -BattleFrontier_Lounge3_EventScript_NotEnoughSilverSymbols:: @ 8261EEB +BattleFrontier_Lounge3_EventScript_NotEnoughSilverSymbols:: msgbox BattleFrontier_Lounge3_Text_CantYouSeeWereBusyHere, MSGBOX_DEFAULT goto BattleFrontier_Lounge3_EventScript_FaceOriginalDirection end -BattleFrontier_Lounge3_EventScript_AlreadyMetGambler:: @ 8261EF9 +BattleFrontier_Lounge3_EventScript_AlreadyMetGambler:: msgbox BattleFrontier_Lounge3_Text_Oh, MSGBOX_DEFAULT compare VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET goto_if_ge BattleFrontier_Lounge3_EventScript_CheckBetResults goto BattleFrontier_Lounge3_EventScript_AskToEnterChallenge end -BattleFrontier_Lounge3_EventScript_CheckBetResults:: @ 8261F12 +BattleFrontier_Lounge3_EventScript_CheckBetResults:: compare VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET goto_if_eq BattleFrontier_Lounge3_EventScript_ChallengeNotAttempted compare VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_WON @@ -122,7 +122,7 @@ BattleFrontier_Lounge3_EventScript_CheckBetResults:: @ 8261F12 goto BattleFrontier_Lounge3_EventScript_LostChallenge end -BattleFrontier_Lounge3_EventScript_WonChallenge:: @ 8261F2E +BattleFrontier_Lounge3_EventScript_WonChallenge:: msgbox BattleFrontier_Lounge3_Text_HelloChampHeresYourPoints, MSGBOX_DEFAULT compare VAR_FRONTIER_GAMBLER_AMOUNT_BET, FRONTIER_GAMBLER_BET_5 call_if_eq BattleFrontier_Lounge3_EventScript_RewardBet5 @@ -137,82 +137,82 @@ BattleFrontier_Lounge3_EventScript_WonChallenge:: @ 8261F2E release end -BattleFrontier_Lounge3_EventScript_LostChallenge:: @ 8261F71 +BattleFrontier_Lounge3_EventScript_LostChallenge:: msgbox BattleFrontier_Lounge3_Text_NiceTryCantReturnPoints, MSGBOX_DEFAULT setvar VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_WAITING release end -BattleFrontier_Lounge3_EventScript_RewardBet5:: @ 8261F80 +BattleFrontier_Lounge3_EventScript_RewardBet5:: buffernumberstring 0, (BET_AMOUNT_5 * 2) setvar VAR_0x8004, (BET_AMOUNT_5 * 2) return -BattleFrontier_Lounge3_EventScript_RewardBet10:: @ 8261F8A +BattleFrontier_Lounge3_EventScript_RewardBet10:: buffernumberstring 0, (BET_AMOUNT_10 * 2) setvar VAR_0x8004, (BET_AMOUNT_10 * 2) return -BattleFrontier_Lounge3_EventScript_RewardBet15:: @ 8261F94 +BattleFrontier_Lounge3_EventScript_RewardBet15:: buffernumberstring 0, (BET_AMOUNT_15 * 2) setvar VAR_0x8004, (BET_AMOUNT_15 * 2) return -BattleFrontier_Lounge3_EventScript_ChallengeNotAttempted:: @ 8261F9E +BattleFrontier_Lounge3_EventScript_ChallengeNotAttempted:: special ShowFrontierGamblerGoMessage waitmessage waitbuttonpress release end -BattleFrontier_Lounge3_EventScript_DeclineChallenge:: @ 8261FA5 +BattleFrontier_Lounge3_EventScript_DeclineChallenge:: msgbox BattleFrontier_Lounge3_Text_NotInterested, MSGBOX_DEFAULT release end -BattleFrontier_Lounge3_EventScript_CancelBet:: @ 8261FAF +BattleFrontier_Lounge3_EventScript_CancelBet:: special CloseBattlePointsWindow goto BattleFrontier_Lounge3_EventScript_DeclineChallenge end -BattleFrontier_Lounge3_EventScript_Man:: @ 8261FB8 +BattleFrontier_Lounge3_EventScript_Man:: msgbox BattleFrontier_Lounge3_Text_ShouldBeTakingChallenges, MSGBOX_NPC end -BattleFrontier_Lounge3_EventScript_Woman:: @ 8261FC1 +BattleFrontier_Lounge3_EventScript_Woman:: lock faceplayer msgbox BattleFrontier_Lounge3_Text_BackedWrongTrainer, MSGBOX_DEFAULT goto BattleFrontier_Lounge3_EventScript_FaceOriginalDirection end -BattleFrontier_Lounge3_EventScript_PokefanF:: @ 8261FD1 +BattleFrontier_Lounge3_EventScript_PokefanF:: lock faceplayer msgbox BattleFrontier_Lounge3_Text_KnowWinnerWhenISeeOne, MSGBOX_DEFAULT goto BattleFrontier_Lounge3_EventScript_FaceOriginalDirection end -BattleFrontier_Lounge3_EventScript_FatMan:: @ 8261FE1 +BattleFrontier_Lounge3_EventScript_FatMan:: lock faceplayer msgbox BattleFrontier_Lounge3_Text_TrainerGoodButRattled, MSGBOX_DEFAULT goto BattleFrontier_Lounge3_EventScript_FaceOriginalDirection end -BattleFrontier_Lounge3_EventScript_FaceOriginalDirection:: @ 8261FF1 +BattleFrontier_Lounge3_EventScript_FaceOriginalDirection:: closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection waitmovement 0 release end -BattleFrontier_Lounge3_Text_CantYouSeeWereBusyHere:: @ 8261FFE +BattleFrontier_Lounge3_Text_CantYouSeeWereBusyHere:: .string "…What's that you want?\p" .string "Can't you see we're kind of busy here?\n" .string "Can't your business wait till later?$" -BattleFrontier_Lounge3_Text_YouLookToughExplainGambling:: @ 8262061 +BattleFrontier_Lounge3_Text_YouLookToughExplainGambling:: .string "…Huh?\n" .string "You look to me like a tough TRAINER.\p" .string "Heheh…\n" @@ -232,201 +232,201 @@ BattleFrontier_Lounge3_Text_YouLookToughExplainGambling:: @ 8262061 .string "Sounds simple, huh?\n" .string "So, anyway…$" -BattleFrontier_Lounge3_Text_ChallengeBattleTowerSingle:: @ 8262261 +BattleFrontier_Lounge3_Text_ChallengeBattleTowerSingle:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be challenging the BATTLE\l" .string "TOWER's SINGLE BATTLE ROOMS.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattleTowerDouble:: @ 826230D +BattleFrontier_Lounge3_Text_ChallengeBattleTowerDouble:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be challenging the BATTLE\l" .string "TOWER's DOUBLE BATTLE ROOMS.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattleTowerMulti:: @ 82623B9 +BattleFrontier_Lounge3_Text_ChallengeBattleTowerMulti:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be challenging the BATTLE\l" .string "TOWER's MULTI BATTLE ROOMS.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattleDomeSingle:: @ 8262464 +BattleFrontier_Lounge3_Text_ChallengeBattleDomeSingle:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be entering the BATTLE\l" .string "DOME's SINGLE BATTLE Tourney.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattleDomeDouble:: @ 826250E +BattleFrontier_Lounge3_Text_ChallengeBattleDomeDouble:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be entering the BATTLE\l" .string "DOME's DOUBLE BATTLE Tourney.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattleFactorySingle:: @ 82625B8 +BattleFrontier_Lounge3_Text_ChallengeBattleFactorySingle:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be entering the BATTLE\l" .string "FACTORY's Battle Swap Single Tourney.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattleFactoryDouble:: @ 826266A +BattleFrontier_Lounge3_Text_ChallengeBattleFactoryDouble:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be entering the BATTLE\l" .string "FACTORY's Battle Swap Double Tourney.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattlePalaceSingle:: @ 826271C +BattleFrontier_Lounge3_Text_ChallengeBattlePalaceSingle:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be challenging the BATTLE\l" .string "PALACE's SINGLE BATTLE HALLS.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattlePalaceDouble:: @ 82627C9 +BattleFrontier_Lounge3_Text_ChallengeBattlePalaceDouble:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be challenging the BATTLE\l" .string "PALACE's DOUBLE BATTLE HALLS.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattleArena:: @ 8262876 +BattleFrontier_Lounge3_Text_ChallengeBattleArena:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be entering the BATTLE\l" .string "ARENA's Set KO Tourney.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattlePike:: @ 826291A +BattleFrontier_Lounge3_Text_ChallengeBattlePike:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be entering the BATTLE PIKE's\l" .string "Battle Choice.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_ChallengeBattlePyramid:: @ 82629BC +BattleFrontier_Lounge3_Text_ChallengeBattlePyramid:: .string "What I'm looking for is a TRAINER who's\n" .string "going to be entering the BATTLE\l" .string "PYRAMID's Battle Quest.\p" .string "But so far, I haven't seen a TRAINER\n" .string "that has that winning quality.$" -BattleFrontier_Lounge3_Text_HowAboutEnteringEventForMe:: @ 8262A60 +BattleFrontier_Lounge3_Text_HowAboutEnteringEventForMe:: .string "I'll see to it that you benefit, too.\n" .string "So how about it?\l" .string "How about entering that event for me?$" -BattleFrontier_Lounge3_Text_SpotMeSomeBattlePoints:: @ 8262ABD +BattleFrontier_Lounge3_Text_SpotMeSomeBattlePoints:: .string "All right, that's perfect.\n" .string "So, uh… How about spotting me some\l" .string "of your Battle Points?\p" .string "Trust me, I'll show you my gratitude\n" .string "afterward.$" -BattleFrontier_Lounge3_Text_HowMuchCanYouSpot:: @ 8262B42 +BattleFrontier_Lounge3_Text_HowMuchCanYouSpot:: .string "Great, great!\n" .string "So, how much can you spot me?$" -BattleFrontier_Lounge3_Text_YouDontHaveEnoughPoints:: @ 8262B6E +BattleFrontier_Lounge3_Text_YouDontHaveEnoughPoints:: .string "Oh, no, no, no!\n" .string "You don't have enough Battle Points!\p" .string "I wish you wouldn't monkey around and\n" .string "waste everyone's time!$" -BattleFrontier_Lounge3_Text_ThanksOffYouGo:: @ 8262BE0 +BattleFrontier_Lounge3_Text_ThanksOffYouGo:: .string "Heheh! Thanks much!\n" .string "So, off you go!$" -BattleFrontier_Lounge3_Text_GetToBattleTowerSingle:: @ 8262C04 +BattleFrontier_Lounge3_Text_GetToBattleTowerSingle:: .string "Get to the BATTLE TOWER's\n" .string "SINGLE BATTLE ROOMS pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattleTowerDouble:: @ 8262C90 +BattleFrontier_Lounge3_Text_GetToBattleTowerDouble:: .string "Get to the BATTLE TOWER's\n" .string "DOUBLE BATTLE ROOMS pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattleTowerMulti:: @ 8262D1C +BattleFrontier_Lounge3_Text_GetToBattleTowerMulti:: .string "Get to the BATTLE TOWER's\n" .string "MULTI BATTLE ROOMS pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattleDomeSingle:: @ 8262DA7 +BattleFrontier_Lounge3_Text_GetToBattleDomeSingle:: .string "Get to the BATTLE DOME's\n" .string "SINGLE BATTLE Tourney pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattleDomeDouble:: @ 8262E34 +BattleFrontier_Lounge3_Text_GetToBattleDomeDouble:: .string "Get to the BATTLE DOME's\n" .string "DOUBLE BATTLE Tourney pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattleFactorySingle:: @ 8262EC1 +BattleFrontier_Lounge3_Text_GetToBattleFactorySingle:: .string "Get to the BATTLE FACTORY's\n" .string "Battle Swap Single Tourney pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattleFactoryDouble:: @ 8262F56 +BattleFrontier_Lounge3_Text_GetToBattleFactoryDouble:: .string "Get to the BATTLE FACTORY's\n" .string "Battle Swap Double Tourney pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattlePalaceSingle:: @ 8262FEB +BattleFrontier_Lounge3_Text_GetToBattlePalaceSingle:: .string "Get to the BATTLE PALACE's\n" .string "SINGLE BATTLE HALLS pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattlePalaceDouble:: @ 8263078 +BattleFrontier_Lounge3_Text_GetToBattlePalaceDouble:: .string "Get to the BATTLE PALACE's\n" .string "DOUBLE BATTLE HALLS pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattleArena:: @ 8263105 +BattleFrontier_Lounge3_Text_GetToBattleArena:: .string "Get to the BATTLE ARENA's\n" .string "Set KO Tourney pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattlePike:: @ 826318C +BattleFrontier_Lounge3_Text_GetToBattlePike:: .string "Get to the BATTLE PIKE's\n" .string "Battle Choice pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_GetToBattlePyramid:: @ 8263211 +BattleFrontier_Lounge3_Text_GetToBattlePyramid:: .string "Get to the BATTLE PYRAMID's\n" .string "Battle Quest pronto!\p" .string "It's a must-win situation!\n" .string "Don't blow your chance!\l" .string "Both of our futures depend on you!$" -BattleFrontier_Lounge3_Text_NiceTryCantReturnPoints:: @ 8263298 +BattleFrontier_Lounge3_Text_NiceTryCantReturnPoints:: .string "Oh, it's you…\n" .string "Nice try…\p" .string "I hate to break it to you, but I can't\n" @@ -434,7 +434,7 @@ BattleFrontier_Lounge3_Text_NiceTryCantReturnPoints:: @ 8263298 .string "I guess we'll have to let it motivate\n" .string "us to try harder next time!$" -BattleFrontier_Lounge3_Text_HelloChampHeresYourPoints:: @ 8263334 +BattleFrontier_Lounge3_Text_HelloChampHeresYourPoints:: .string "Oh, yes!\n" .string "Hello there, champ!\p" .string "I knew you could!\n" @@ -443,36 +443,36 @@ BattleFrontier_Lounge3_Text_HelloChampHeresYourPoints:: @ 8263334 .string "I'll return your Battle Points and,\n" .string "of course, a little extra from me!$" -BattleFrontier_Lounge3_Text_ObtainedBattlePoints:: @ 82633D4 +BattleFrontier_Lounge3_Text_ObtainedBattlePoints:: .string "{PLAYER} obtained\n" .string "{STR_VAR_1} Battle Points.$" -BattleFrontier_Lounge3_Text_ThinkOfMeForAnotherChallenge:: @ 82633F2 +BattleFrontier_Lounge3_Text_ThinkOfMeForAnotherChallenge:: .string "If you're up for another challenge,\n" .string "please do think of me!$" -BattleFrontier_Lounge3_Text_NotInterested:: @ 826342D +BattleFrontier_Lounge3_Text_NotInterested:: .string "Not interested?! You shouldn't be\n" .string "so afraid to take a chance!$" -BattleFrontier_Lounge3_Text_Oh:: @ 826346B +BattleFrontier_Lounge3_Text_Oh:: .string "Oh…$" -BattleFrontier_Lounge3_Text_BackedWrongTrainer:: @ 826346F +BattleFrontier_Lounge3_Text_BackedWrongTrainer:: .string "I backed the wrong TRAINER again!\p" .string "Maybe I should be battling normally\n" .string "like everyone else…$" -BattleFrontier_Lounge3_Text_TrainerGoodButRattled:: @ 82634C9 +BattleFrontier_Lounge3_Text_TrainerGoodButRattled:: .string "That TRAINER…\p" .string "He's good, but he gets rattled too\n" .string "easily to survive the BATTLE DOME…$" -BattleFrontier_Lounge3_Text_KnowWinnerWhenISeeOne:: @ 826351D +BattleFrontier_Lounge3_Text_KnowWinnerWhenISeeOne:: .string "Giggle!\n" .string "I know a winner when I see one!$" -BattleFrontier_Lounge3_Text_ShouldBeTakingChallenges:: @ 8263545 +BattleFrontier_Lounge3_Text_ShouldBeTakingChallenges:: .string "Those TRAINERS…\n" .string "What are they doing?\l" .string "They should be taking challenges.$" diff --git a/data/maps/BattleFrontier_Lounge4/scripts.inc b/data/maps/BattleFrontier_Lounge4/scripts.inc index 6da60d30ff..9aa6c82049 100644 --- a/data/maps/BattleFrontier_Lounge4/scripts.inc +++ b/data/maps/BattleFrontier_Lounge4/scripts.inc @@ -1,27 +1,27 @@ -BattleFrontier_Lounge4_MapScripts:: @ 826358C +BattleFrontier_Lounge4_MapScripts:: .byte 0 -BattleFrontier_Lounge4_EventScript_Woman:: @ 826358D +BattleFrontier_Lounge4_EventScript_Woman:: msgbox BattleFrontier_Lounge4_Text_WonderIfInterviewsAiring, MSGBOX_NPC end -BattleFrontier_Lounge4_EventScript_Cook:: @ 8263596 +BattleFrontier_Lounge4_EventScript_Cook:: msgbox BattleFrontier_Lounge4_Text_IfIOpenedRestaurantHere, MSGBOX_NPC end -BattleFrontier_Lounge4_EventScript_Man:: @ 826359F +BattleFrontier_Lounge4_EventScript_Man:: msgbox BattleFrontier_Lounge4_Text_NeedBreatherAfterBattles, MSGBOX_NPC end -BattleFrontier_Lounge4_Text_WonderIfInterviewsAiring: @ 82635A8 +BattleFrontier_Lounge4_Text_WonderIfInterviewsAiring: .string "I wonder if they'll be airing interviews\n" .string "with tough TRAINERS today?$" -BattleFrontier_Lounge4_Text_IfIOpenedRestaurantHere: @ 82635EC +BattleFrontier_Lounge4_Text_IfIOpenedRestaurantHere: .string "If I opened a restaurant here,\n" .string "it'd make money for sure.$" -BattleFrontier_Lounge4_Text_NeedBreatherAfterBattles: @ 8263625 +BattleFrontier_Lounge4_Text_NeedBreatherAfterBattles: .string "Whew…\p" .string "I need to take a breather after\n" .string "some intense battles…\p" diff --git a/data/maps/BattleFrontier_Lounge5/scripts.inc b/data/maps/BattleFrontier_Lounge5/scripts.inc index 3df294fb17..61ac0cb9e2 100644 --- a/data/maps/BattleFrontier_Lounge5/scripts.inc +++ b/data/maps/BattleFrontier_Lounge5/scripts.inc @@ -1,7 +1,7 @@ -BattleFrontier_Lounge5_MapScripts:: @ 82645C5 +BattleFrontier_Lounge5_MapScripts:: .byte 0 -BattleFrontier_Lounge5_EventScript_NatureGirl:: @ 82645C6 +BattleFrontier_Lounge5_EventScript_NatureGirl:: lock faceplayer msgbox BattleFrontier_Lounge5_Text_NatureGirlGreeting, MSGBOX_YESNO @@ -22,184 +22,184 @@ BattleFrontier_Lounge5_EventScript_NatureGirl:: @ 82645C6 release end -BattleFrontier_Lounge5_EventScript_NatureGirlEgg:: @ 8264603 +BattleFrontier_Lounge5_EventScript_NatureGirlEgg:: msgbox BattleFrontier_Lounge5_Text_NatureGirlEgg, MSGBOX_DEFAULT release end -BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown:: @ 826460D +BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown:: msgbox BattleFrontier_Lounge5_Text_NatureGirlNoneShown, MSGBOX_DEFAULT release end -BattleFrontier_Lounge5_EventScript_Gentleman:: @ 8264617 +BattleFrontier_Lounge5_EventScript_Gentleman:: msgbox BattleFrontier_Lounge5_Text_LadyClaimsSheUnderstandsPokemon, MSGBOX_NPC end -BattleFrontier_Lounge5_EventScript_BlackBelt:: @ 8264620 +BattleFrontier_Lounge5_EventScript_BlackBelt:: msgbox BattleFrontier_Lounge5_Text_GirlSayingSomethingProfound, MSGBOX_NPC end -BattleFrontier_Lounge5_EventScript_LittleBoy:: @ 8264629 +BattleFrontier_Lounge5_EventScript_LittleBoy:: msgbox BattleFrontier_Lounge5_Text_GirlPlaysAtRedHouseALot, MSGBOX_NPC end -BattleFrontier_Lounge5_Text_NatureGirlGreeting:: @ 8264632 +BattleFrontier_Lounge5_Text_NatureGirlGreeting:: .string "Ehehe!\n" .string "I can tell what POKéMON are thinking!\p" .string "Please!\n" .string "Can I see your POKéMON?$" -BattleFrontier_Lounge5_Text_NatureGirlNoneShown:: @ 826467F +BattleFrontier_Lounge5_Text_NatureGirlNoneShown:: .string "Boo!\n" .string "Cheapie!$" -BattleFrontier_Lounge5_Text_NatureGirlHardy:: @ 826468D +BattleFrontier_Lounge5_Text_NatureGirlHardy:: .string "Hmhm…\p" .string "This one says it likes to battle!\n" .string "It will battle even if it has a lot\l" .string "of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlLonely:: @ 82646E5 +BattleFrontier_Lounge5_Text_NatureGirlLonely:: .string "Hmhm…\p" .string "This one says it likes to be sneaky!\n" .string "But if it gets enough ouchies,\l" .string "it will hit back!$" -BattleFrontier_Lounge5_Text_NatureGirlBrave:: @ 8264741 +BattleFrontier_Lounge5_Text_NatureGirlBrave:: .string "Hmhm…\p" .string "This one says it likes to battle!\n" .string "But if it gets enough ouchies,\l" .string "it will worry about itself!$" -BattleFrontier_Lounge5_Text_NatureGirlAdamant:: @ 82647A4 +BattleFrontier_Lounge5_Text_NatureGirlAdamant:: .string "Hmhm…\p" .string "This one says it likes to battle!\n" .string "It will battle even if it has a lot\l" .string "of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlNaughty:: @ 82647FC +BattleFrontier_Lounge5_Text_NatureGirlNaughty:: .string "Hmhm…\p" .string "This one says it looks after itself!\n" .string "But if it gets enough ouchies,\l" .string "it will hit back!$" -BattleFrontier_Lounge5_Text_NatureGirlBold:: @ 8264858 +BattleFrontier_Lounge5_Text_NatureGirlBold:: .string "Hmhm…\p" .string "This one says it likes to be sneaky!\n" .string "But if it gets enough ouchies,\l" .string "it will worry about itself!$" -BattleFrontier_Lounge5_Text_NatureGirlDocileNaiveQuietQuirky:: @ 82648BE +BattleFrontier_Lounge5_Text_NatureGirlDocileNaiveQuietQuirky:: .string "Hmhm…\p" .string "This one says it likes to battle!\n" .string "It will battle even if it has a lot\l" .string "of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlRelaxed:: @ 8264916 +BattleFrontier_Lounge5_Text_NatureGirlRelaxed:: .string "Hmhm…\p" .string "This one says it likes to be sneaky!\n" .string "But if it gets enough ouchies,\l" .string "it will hit back!$" -BattleFrontier_Lounge5_Text_NatureGirlImpish:: @ 8264972 +BattleFrontier_Lounge5_Text_NatureGirlImpish:: .string "Hmhm…\p" .string "This one says it likes to battle!\n" .string "But if it gets enough ouchies,\l" .string "it will worry about itself!$" -BattleFrontier_Lounge5_Text_NatureGirlLax:: @ 82649D5 +BattleFrontier_Lounge5_Text_NatureGirlLax:: .string "Hmhm…\p" .string "This one says it likes to be sneaky!\n" .string "It says it likes to be sneaky even\l" .string "if it has a lot of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlTimid:: @ 8264A3F +BattleFrontier_Lounge5_Text_NatureGirlTimid:: .string "Hmhm…\p" .string "This one says it likes to battle!\n" .string "But if it gets enough ouchies,\l" .string "it will turn sneaky!$" -BattleFrontier_Lounge5_Text_NatureGirlHasty:: @ 8264A9B +BattleFrontier_Lounge5_Text_NatureGirlHasty:: .string "Hmhm…\p" .string "This one says it likes to battle!\n" .string "It will battle even if it has a lot\l" .string "of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlSerious:: @ 8264AF3 +BattleFrontier_Lounge5_Text_NatureGirlSerious:: .string "Hmhm…\p" .string "This one says it likes to be sneaky!\n" .string "It says it likes to be sneaky even\l" .string "if it has a lot of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlJolly:: @ 8264B5D +BattleFrontier_Lounge5_Text_NatureGirlJolly:: .string "Hmhm…\p" .string "This one says it likes to be sneaky!\n" .string "But if it gets enough ouchies,\l" .string "it will worry about itself!$" -BattleFrontier_Lounge5_Text_NatureGirlModest:: @ 8264BC3 +BattleFrontier_Lounge5_Text_NatureGirlModest:: .string "Hmhm…\p" .string "This one says it looks after itself!\n" .string "It says it worries about itself whether\l" .string "or not it has a lot of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlMild:: @ 8264C36 +BattleFrontier_Lounge5_Text_NatureGirlMild:: .string "Hmhm…\p" .string "This one says it looks after itself!\n" .string "But if it gets enough ouchies,\l" .string "it will turn sneaky!$" -BattleFrontier_Lounge5_Text_NatureGirlBashful:: @ 8264C95 +BattleFrontier_Lounge5_Text_NatureGirlBashful:: .string "Hmhm…\p" .string "This one says it looks after itself!\n" .string "It says it worries about itself even\l" .string "if it has a lot of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlRash:: @ 8264D01 +BattleFrontier_Lounge5_Text_NatureGirlRash:: .string "Hmhm…\p" .string "This one says it likes to be sneaky!\n" .string "It says it likes to be sneaky even\l" .string "if it has a lot of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlCalm:: @ 8264D6B +BattleFrontier_Lounge5_Text_NatureGirlCalm:: .string "Hmhm…\p" .string "This one says it looks after itself!\n" .string "It says it worries about itself even\l" .string "if it has a lot of ouchies!$" -BattleFrontier_Lounge5_Text_NatureGirlGentle:: @ 8264DD7 +BattleFrontier_Lounge5_Text_NatureGirlGentle:: .string "Hmhm…\p" .string "This one says it looks after itself!\n" .string "But if it gets enough ouchies,\l" .string "it will hit back!$" -BattleFrontier_Lounge5_Text_NatureGirlSassy:: @ 8264E33 +BattleFrontier_Lounge5_Text_NatureGirlSassy:: .string "Hmhm…\p" .string "This one says it likes to battle!\n" .string "But if it gets enough ouchies,\l" .string "it will turn sneaky!$" -BattleFrontier_Lounge5_Text_NatureGirlCareful:: @ 8264E8F +BattleFrontier_Lounge5_Text_NatureGirlCareful:: .string "Hmhm…\p" .string "This one says it looks after itself!\n" .string "But if it gets enough ouchies,\l" .string "it will turn sneaky!$" -BattleFrontier_Lounge5_Text_NatureGirlEgg:: @ 8264EEE +BattleFrontier_Lounge5_Text_NatureGirlEgg:: .string "That's silly! An EGG is asleep!\n" .string "I can't talk to it!$" -BattleFrontier_Lounge5_Text_LadyClaimsSheUnderstandsPokemon:: @ 8264F22 +BattleFrontier_Lounge5_Text_LadyClaimsSheUnderstandsPokemon:: .string "How charming!\n" .string "That little lady claims she can\l" .string "understand POKéMON!$" -BattleFrontier_Lounge5_Text_GirlSayingSomethingProfound:: @ 8264F64 +BattleFrontier_Lounge5_Text_GirlSayingSomethingProfound:: .string "I have this feeling that the little girl\n" .string "is saying something profound.$" -BattleFrontier_Lounge5_Text_GirlPlaysAtRedHouseALot:: @ 8264FAB +BattleFrontier_Lounge5_Text_GirlPlaysAtRedHouseALot:: .string "I know something!\p" .string "That little girl plays at the red house\n" .string "a lot!$" diff --git a/data/maps/BattleFrontier_Lounge6/scripts.inc b/data/maps/BattleFrontier_Lounge6/scripts.inc index 34ca000732..f88c69324d 100644 --- a/data/maps/BattleFrontier_Lounge6/scripts.inc +++ b/data/maps/BattleFrontier_Lounge6/scripts.inc @@ -1,7 +1,7 @@ -BattleFrontier_Lounge6_MapScripts:: @ 8264FEC +BattleFrontier_Lounge6_MapScripts:: .byte 0 -BattleFrontier_Lounge6_EventScript_Trader:: @ 8264FED +BattleFrontier_Lounge6_EventScript_Trader:: lock faceplayer goto_if_set FLAG_BATTLE_FRONTIER_TRADE_DONE, BattleFrontier_Lounge6_EventScript_TradeCompleted @@ -32,23 +32,23 @@ BattleFrontier_Lounge6_EventScript_Trader:: @ 8264FED release end -BattleFrontier_Lounge6_EventScript_DeclineTrade:: @ 826506B +BattleFrontier_Lounge6_EventScript_DeclineTrade:: msgbox BattleFrontier_Lounge6_Text_WellThatsFineToo, MSGBOX_DEFAULT release end -BattleFrontier_Lounge6_EventScript_NotRequestedMon:: @ 8265075 +BattleFrontier_Lounge6_EventScript_NotRequestedMon:: bufferspeciesname 0, VAR_0x8009 msgbox BattleFrontier_Lounge6_Text_DontTradeForAnythingButMon, MSGBOX_DEFAULT release end -BattleFrontier_Lounge6_EventScript_TradeCompleted:: @ 8265083 +BattleFrontier_Lounge6_EventScript_TradeCompleted:: msgbox BattleFrontier_Lounge6_Text_SkittySoMuchCuterThanImagined, MSGBOX_DEFAULT release end -BattleFrontier_Lounge6_Text_WouldYouLikeToTrade: @ 826508D +BattleFrontier_Lounge6_Text_WouldYouLikeToTrade: .string "My POKéMON is a {STR_VAR_2}.\n" .string "Do you know it?\l" .string "It's quite cute and rather nice.\p" @@ -57,24 +57,24 @@ BattleFrontier_Lounge6_Text_WouldYouLikeToTrade: @ 826508D .string "Would you like to trade me a {STR_VAR_1}\n" .string "for my {STR_VAR_2}?$" -BattleFrontier_Lounge6_Text_PromiseIllBeGoodToIt: @ 8265128 +BattleFrontier_Lounge6_Text_PromiseIllBeGoodToIt: .string "Oh, it's adorable!\n" .string "Thank you!\l" .string "I promise I'll be good to it!\p" .string "Oh! I hope you'll be good to\n" .string "my {STR_VAR_2}, too!$" -BattleFrontier_Lounge6_Text_DontTradeForAnythingButMon: @ 826518D +BattleFrontier_Lounge6_Text_DontTradeForAnythingButMon: .string "Oh, I'm sorry!\n" .string "I don't intend to trade for anything\l" .string "but a {STR_VAR_1}.$" -BattleFrontier_Lounge6_Text_WellThatsFineToo: @ 82651CB +BattleFrontier_Lounge6_Text_WellThatsFineToo: .string "Oh, you won't?\n" .string "Well, that's fine, too.\l" .string "Please come visit us again.$" -BattleFrontier_Lounge6_Text_SkittySoMuchCuterThanImagined: @ 826520E +BattleFrontier_Lounge6_Text_SkittySoMuchCuterThanImagined: .string "Giggle!\n" .string "A SKITTY is so much cuter than I had\l" .string "imagined. I'm delighted!$" diff --git a/data/maps/BattleFrontier_Lounge7/scripts.inc b/data/maps/BattleFrontier_Lounge7/scripts.inc index 3dd8fc98cf..2878444706 100644 --- a/data/maps/BattleFrontier_Lounge7/scripts.inc +++ b/data/maps/BattleFrontier_Lounge7/scripts.inc @@ -1,7 +1,7 @@ -BattleFrontier_Lounge7_MapScripts:: @ 8265254 +BattleFrontier_Lounge7_MapScripts:: .byte 0 -BattleFrontier_Lounge7_EventScript_LeftMoveTutor:: @ 8265255 +BattleFrontier_Lounge7_EventScript_LeftMoveTutor:: lock faceplayer setvar VAR_TEMP_C, SCROLL_MULTI_BF_MOVE_TUTOR_1 @@ -11,12 +11,12 @@ BattleFrontier_Lounge7_EventScript_LeftMoveTutor:: @ 8265255 goto BattleFrontier_Lounge7_EventScript_ChooseLeftTutorMove end -BattleFrontier_Lounge7_EventScript_AlreadyMetLeftTutor:: @ 8265276 +BattleFrontier_Lounge7_EventScript_AlreadyMetLeftTutor:: msgbox BattleFrontier_Lounge7_Text_LeftTutorWelcomeBack, MSGBOX_DEFAULT goto BattleFrontier_Lounge7_EventScript_ChooseLeftTutorMove end -BattleFrontier_Lounge7_EventScript_ChooseLeftTutorMove:: @ 8265284 +BattleFrontier_Lounge7_EventScript_ChooseLeftTutorMove:: message BattleFrontier_Lounge7_Text_TeachWhichMove waitmessage special ShowBattlePointsWindow @@ -41,7 +41,7 @@ BattleFrontier_Lounge7_EventScript_ChooseLeftTutorMove:: @ 8265284 case MULTI_B_PRESSED, BattleFrontier_Lounge7_EventScript_ExitTutorMoveSelect end -BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove:: @ 826532F +BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove:: message BattleFrontier_Lounge7_Text_TeachWhichMove waitmessage setvar VAR_TEMP_E, 0 @@ -65,57 +65,57 @@ BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove:: @ 826532F case MULTI_B_PRESSED, BattleFrontier_Lounge7_EventScript_ExitTutorMoveSelect end -BattleFrontier_Lounge7_EventScript_Softboiled:: @ 82653D7 +BattleFrontier_Lounge7_EventScript_Softboiled:: setvar VAR_0x8008, 16 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_SeismicToss:: @ 82653E2 +BattleFrontier_Lounge7_EventScript_SeismicToss:: setvar VAR_0x8008, 24 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_DreamEater:: @ 82653ED +BattleFrontier_Lounge7_EventScript_DreamEater:: setvar VAR_0x8008, 24 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_MegaPunch:: @ 82653F8 +BattleFrontier_Lounge7_EventScript_MegaPunch:: setvar VAR_0x8008, 24 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_MegaKick:: @ 8265403 +BattleFrontier_Lounge7_EventScript_MegaKick:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_BodySlam:: @ 826540E +BattleFrontier_Lounge7_EventScript_BodySlam:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_RockSlide:: @ 8265419 +BattleFrontier_Lounge7_EventScript_RockSlide:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_Counter:: @ 8265424 +BattleFrontier_Lounge7_EventScript_Counter:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_ThunderWave:: @ 826542F +BattleFrontier_Lounge7_EventScript_ThunderWave:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_SwordsDance:: @ 826543A +BattleFrontier_Lounge7_EventScript_SwordsDance:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_RightMoveTutor:: @ 8265445 +BattleFrontier_Lounge7_EventScript_RightMoveTutor:: lock faceplayer setvar VAR_TEMP_C, SCROLL_MULTI_BF_MOVE_TUTOR_2 @@ -125,12 +125,12 @@ BattleFrontier_Lounge7_EventScript_RightMoveTutor:: @ 8265445 goto BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove end -BattleFrontier_Lounge7_EventScript_AlreadyMetRightTutor:: @ 8265466 +BattleFrontier_Lounge7_EventScript_AlreadyMetRightTutor:: msgbox BattleFrontier_Lounge7_Text_RightTutorWelcomeBack, MSGBOX_DEFAULT goto BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove end -BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove:: @ 8265474 +BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove:: message BattleFrontier_Lounge7_Text_TeachWhichMove waitmessage special ShowBattlePointsWindow @@ -155,7 +155,7 @@ BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove:: @ 8265474 case MULTI_B_PRESSED, BattleFrontier_Lounge7_EventScript_ExitTutorMoveSelect end -BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove:: @ 826551F +BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove:: message BattleFrontier_Lounge7_Text_TeachWhichMove waitmessage setvar VAR_TEMP_E, 1 @@ -179,64 +179,64 @@ BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove:: @ 826551F case MULTI_B_PRESSED, BattleFrontier_Lounge7_EventScript_ExitTutorMoveSelect end -BattleFrontier_Lounge7_EventScript_DefenseCurl:: @ 82655C7 +BattleFrontier_Lounge7_EventScript_DefenseCurl:: setvar VAR_0x8008, 16 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_Snore:: @ 82655D2 +BattleFrontier_Lounge7_EventScript_Snore:: setvar VAR_0x8008, 24 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_MudSlap:: @ 82655DD +BattleFrontier_Lounge7_EventScript_MudSlap:: setvar VAR_0x8008, 24 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_Swift:: @ 82655E8 +BattleFrontier_Lounge7_EventScript_Swift:: setvar VAR_0x8008, 24 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_IcyWind:: @ 82655F3 +BattleFrontier_Lounge7_EventScript_IcyWind:: setvar VAR_0x8008, 24 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_Endure:: @ 82655FE +BattleFrontier_Lounge7_EventScript_Endure:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_PsychUp:: @ 8265609 +BattleFrontier_Lounge7_EventScript_PsychUp:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_IcePunch:: @ 8265614 +BattleFrontier_Lounge7_EventScript_IcePunch:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_ThunderPunch:: @ 826561F +BattleFrontier_Lounge7_EventScript_ThunderPunch:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_FirePunch:: @ 826562A +BattleFrontier_Lounge7_EventScript_FirePunch:: setvar VAR_0x8008, 48 goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end -BattleFrontier_Lounge7_EventScript_ExitTutorMoveSelect:: @ 8265635 +BattleFrontier_Lounge7_EventScript_ExitTutorMoveSelect:: special CloseBattleFrontierTutorWindow special CloseBattlePointsWindow msgbox BattleFrontier_Lounge7_Text_YouDontWantTo, MSGBOX_DEFAULT release end -BattleFrontier_Lounge7_EventScript_CancelChooseMon:: @ 8265645 +BattleFrontier_Lounge7_EventScript_CancelChooseMon:: msgbox BattleFrontier_Lounge7_Text_YouDontWantTo, MSGBOX_DEFAULT release end @@ -245,7 +245,7 @@ BattleFrontier_Lounge7_EventScript_CancelChooseMon:: @ 8265645 @ VAR_TEMP_C is the scroll multichoice ID @ VAR_TEMP_D is the move selection @ VAR_TEMP_E is which move tutor was spoken to -BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection:: @ 826564F +BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection:: copyvar VAR_0x8004, VAR_TEMP_D copyvar VAR_0x8005, VAR_TEMP_E special BufferBattleFrontierTutorMoveName @@ -261,7 +261,7 @@ BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection:: @ 826564F goto BattleFrontier_Lounge7_EventScript_ChooseNewMove end -BattleFrontier_Lounge7_EventScript_TeachTutorMove:: @ 8265696 +BattleFrontier_Lounge7_EventScript_TeachTutorMove:: msgbox BattleFrontier_Lounge7_Text_TeachMoveToWhichMon, MSGBOX_DEFAULT special GetBattleFrontierTutorMoveIndex fadescreen FADE_TO_BLACK @@ -277,21 +277,21 @@ BattleFrontier_Lounge7_EventScript_TeachTutorMove:: @ 8265696 release end -BattleFrontier_Lounge7_EventScript_ChooseNewMove:: @ 82656CA +BattleFrontier_Lounge7_EventScript_ChooseNewMove:: compare VAR_TEMP_E, 0 goto_if_eq BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove goto BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove end -BattleFrontier_Lounge7_EventScript_Sailor:: @ 82656DB +BattleFrontier_Lounge7_EventScript_Sailor:: msgbox BattleFrontier_Lounge7_Text_ThinkLadiesDontGetAlong, MSGBOX_NPC end -BattleFrontier_Lounge7_EventScript_Gentleman:: @ 82656E4 +BattleFrontier_Lounge7_EventScript_Gentleman:: msgbox BattleFrontier_Lounge7_Text_LadiesWereStrongAndBeautiful, MSGBOX_NPC end -BattleFrontier_Lounge7_Text_LeftTutorIntro: @ 82656ED +BattleFrontier_Lounge7_Text_LeftTutorIntro: .string "Buhahaha!\p" .string "You couldn't tell it from looking now,\n" .string "but I used to be one tough TRAINER.\p" @@ -309,38 +309,38 @@ BattleFrontier_Lounge7_Text_LeftTutorIntro: @ 82656ED .string "How about paying for the moves I teach\l" .string "with a wee bit of Battle Points?$" -BattleFrontier_Lounge7_Text_LeftTutorWelcomeBack: @ 82658AB +BattleFrontier_Lounge7_Text_LeftTutorWelcomeBack: .string "Buhahaha!\p" .string "Are you back to learn special and\n" .string "yet cute POKéMON moves?$" -BattleFrontier_Lounge7_Text_TeachWhichMove: @ 82658EF +BattleFrontier_Lounge7_Text_TeachWhichMove: .string "Fine, fine, look here!\n" .string "Which move should I teach?$" -BattleFrontier_Lounge7_Text_MoveWillBeXBattlePoints: @ 8265921 +BattleFrontier_Lounge7_Text_MoveWillBeXBattlePoints: .string "The move {STR_VAR_1}, is it?\n" .string "That will be {STR_VAR_2} Battle Points, okay?$" -BattleFrontier_Lounge7_Text_TeachMoveToWhichMon: @ 826595A +BattleFrontier_Lounge7_Text_TeachMoveToWhichMon: .string "Fine, fine, now pick the POKéMON\n" .string "I should teach the move to.$" -BattleFrontier_Lounge7_Text_HaventGotEnoughPoints: @ 8265997 +BattleFrontier_Lounge7_Text_HaventGotEnoughPoints: .string "What the…\n" .string "You haven't got enough Battle Points!$" -BattleFrontier_Lounge7_Text_IllTakeBattlePoints: @ 82659C7 +BattleFrontier_Lounge7_Text_IllTakeBattlePoints: .string "Do you see how skilled I am now?\n" .string "I'll take your Battle Points, thanks!$" -BattleFrontier_Lounge7_Text_YouDontWantTo: @ 8265A0E +BattleFrontier_Lounge7_Text_YouDontWantTo: .string "What's that?\n" .string "You don't want to…\p" .string "If you want to see how skilled I am,\n" .string "you come see me anytime!$" -BattleFrontier_Lounge7_Text_RightTutorIntro: @ 8265A6C +BattleFrontier_Lounge7_Text_RightTutorIntro: .string "Ihihihi!\p" .string "I know it's hard to see now, but I used\n" .string "to be one fantastic TRAINER.\p" @@ -358,19 +358,19 @@ BattleFrontier_Lounge7_Text_RightTutorIntro: @ 8265A6C .string "How about paying for the moves I teach\l" .string "with a wee bit of Battle Points?$" -BattleFrontier_Lounge7_Text_RightTutorWelcomeBack: @ 8265C2C +BattleFrontier_Lounge7_Text_RightTutorWelcomeBack: .string "Ihihihi!\p" .string "Have you come to learn hard and\n" .string "yet pretty POKéMON moves?$" -BattleFrontier_Lounge7_Text_ThinkLadiesDontGetAlong: @ 8265C6F +BattleFrontier_Lounge7_Text_ThinkLadiesDontGetAlong: .string "Those ladies, the way they bad-mouth\n" .string "each other, you probably think that\l" .string "they don't get along.\p" .string "But if that were true, they wouldn't\n" .string "stay out here together, would they?$" -BattleFrontier_Lounge7_Text_LadiesWereStrongAndBeautiful: @ 8265D17 +BattleFrontier_Lounge7_Text_LadiesWereStrongAndBeautiful: .string "When I was just a wee YOUNGSTER,\n" .string "those ladies were strong and beautiful.\p" .string "They were idols among us TRAINERS.\p" @@ -382,102 +382,102 @@ BattleFrontier_Lounge7_Text_LadiesWereStrongAndBeautiful: @ 8265D17 .string "but feel this…\p" .string "Time is so cruel…$" -BattleFrontier_Lounge7_Text_SoftboiledDesc:: @ 8265E30 +BattleFrontier_Lounge7_Text_SoftboiledDesc:: .string "Recovers up to\n" .string "half the user's\n" .string "maximum HP.$" -BattleFrontier_Lounge7_Text_SeismicTossDesc:: @ 8265E5B +BattleFrontier_Lounge7_Text_SeismicTossDesc:: .string "Inflicts damage\n" .string "identical to the\n" .string "user's level.$" -BattleFrontier_Lounge7_Text_DreamEaterDesc:: @ 8265E8A +BattleFrontier_Lounge7_Text_DreamEaterDesc:: .string "Recovers half the\n" .string "damage inflicted\n" .string "on a sleeping foe.$" -BattleFrontier_Lounge7_Text_MegaPunchDesc:: @ 8265EC0 +BattleFrontier_Lounge7_Text_MegaPunchDesc:: .string "A strong punch\n" .string "thrown with\n" .string "incredible power.$" -BattleFrontier_Lounge7_Text_MegaKickDesc:: @ 8265EED +BattleFrontier_Lounge7_Text_MegaKickDesc:: .string "An extremely\n" .string "powerful kick with\n" .string "intense force.$" -BattleFrontier_Lounge7_Text_BodySlamDesc:: @ 8265F1C +BattleFrontier_Lounge7_Text_BodySlamDesc:: .string "A full-body slam\n" .string "that may cause\n" .string "paralysis.$" -BattleFrontier_Lounge7_Text_RockSlideDesc:: @ 8265F47 +BattleFrontier_Lounge7_Text_RockSlideDesc:: .string "Large boulders\n" .string "are hurled. May\n" .string "cause flinching.$" -BattleFrontier_Lounge7_Text_CounterDesc:: @ 8265F77 +BattleFrontier_Lounge7_Text_CounterDesc:: .string "Retaliates any\n" .string "physical hit with\n" .string "double the power.$" -BattleFrontier_Lounge7_Text_ThunderWaveDesc:: @ 8265FAA +BattleFrontier_Lounge7_Text_ThunderWaveDesc:: .string "A weak jolt of\n" .string "electricity that\n" .string "paralyzes the foe.$" -BattleFrontier_Lounge7_Text_SwordsDanceDesc:: @ 8265FDD +BattleFrontier_Lounge7_Text_SwordsDanceDesc:: .string "A fighting dance\n" .string "that sharply\n" .string "raises ATTACK.$" -BattleFrontier_Lounge7_Text_DefenseCurlDesc:: @ 826600A +BattleFrontier_Lounge7_Text_DefenseCurlDesc:: .string "Curls up to con-\n" .string "ceal weak spots\n" .string "and raise DEFENSE.$" -BattleFrontier_Lounge7_Text_SnoreDesc:: @ 826603E +BattleFrontier_Lounge7_Text_SnoreDesc:: .string "A loud attack\n" .string "that can be used\n" .string "only while asleep.$" -BattleFrontier_Lounge7_Text_MudSlapDesc:: @ 8266070 +BattleFrontier_Lounge7_Text_MudSlapDesc:: .string "Hurls mud in the\n" .string "foe's face to re-\n" .string "duce its accuracy.$" -BattleFrontier_Lounge7_Text_SwiftDesc:: @ 82660A6 +BattleFrontier_Lounge7_Text_SwiftDesc:: .string "Sprays star-\n" .string "shaped rays\n" .string "that never miss.$" -BattleFrontier_Lounge7_Text_IcyWindDesc:: @ 82660D0 +BattleFrontier_Lounge7_Text_IcyWindDesc:: .string "A chilling attack\n" .string "that lowers the\n" .string "foe's SPEED.$" -BattleFrontier_Lounge7_Text_EndureDesc:: @ 82660FF +BattleFrontier_Lounge7_Text_EndureDesc:: .string "Endures any at-\n" .string "tack for 1 turn,\n" .string "leaving 1HP.$" -BattleFrontier_Lounge7_Text_PsychUpDesc:: @ 826612D +BattleFrontier_Lounge7_Text_PsychUpDesc:: .string "Copies the foe's\n" .string "effect(s) and\n" .string "gives to the user.$" -BattleFrontier_Lounge7_Text_IcePunchDesc:: @ 826615F +BattleFrontier_Lounge7_Text_IcePunchDesc:: .string "An icy punch\n" .string "that may\n" .string "freeze the foe.$" -BattleFrontier_Lounge7_Text_ThunderPunchDesc:: @ 8266185 +BattleFrontier_Lounge7_Text_ThunderPunchDesc:: .string "An electrified\n" .string "punch that may\n" .string "paralyze the foe.$" -BattleFrontier_Lounge7_Text_FirePunchDesc:: @ 82661B5 +BattleFrontier_Lounge7_Text_FirePunchDesc:: .string "A fiery punch\n" .string "that may burn\n" .string "the foe.$" diff --git a/data/maps/BattleFrontier_Lounge8/scripts.inc b/data/maps/BattleFrontier_Lounge8/scripts.inc index 2615af7439..8f4a443d57 100644 --- a/data/maps/BattleFrontier_Lounge8/scripts.inc +++ b/data/maps/BattleFrontier_Lounge8/scripts.inc @@ -1,19 +1,19 @@ -BattleFrontier_Lounge8_MapScripts:: @ 82676C9 +BattleFrontier_Lounge8_MapScripts:: .byte 0 -BattleFrontier_Lounge8_EventScript_Man:: @ 82676CA +BattleFrontier_Lounge8_EventScript_Man:: msgbox BattleFrontier_Lounge8_Text_WhatATrainerNeeds, MSGBOX_NPC end -BattleFrontier_Lounge8_EventScript_Woman:: @ 82676D3 +BattleFrontier_Lounge8_EventScript_Woman:: msgbox BattleFrontier_Lounge8_Text_KnowAboutFrontierBrains, MSGBOX_NPC end -BattleFrontier_Lounge8_EventScript_NinjaBoy:: @ 82676DC +BattleFrontier_Lounge8_EventScript_NinjaBoy:: msgbox BattleFrontier_Lounge8_Text_ToldMeIHaveTalentForBattling, MSGBOX_NPC end -BattleFrontier_Lounge8_Text_WhatATrainerNeeds: @ 82676E5 +BattleFrontier_Lounge8_Text_WhatATrainerNeeds: .string "What a TRAINER needs…\p" .string "Knowledge…\n" .string "Strategy…\l" @@ -27,14 +27,14 @@ BattleFrontier_Lounge8_Text_WhatATrainerNeeds: @ 82676E5 .string "Huh? POKéMON?\n" .string "What's that?$" -BattleFrontier_Lounge8_Text_KnowAboutFrontierBrains: @ 826779C +BattleFrontier_Lounge8_Text_KnowAboutFrontierBrains: .string "Do you know about the FRONTIER\n" .string "BRAINS?\p" .string "That's what SCOTT calls the seven\n" .string "special TRAINERS that run the seven\l" .string "facilities in the BATTLE FRONTIER.$" -BattleFrontier_Lounge8_Text_ToldMeIHaveTalentForBattling: @ 826782C +BattleFrontier_Lounge8_Text_ToldMeIHaveTalentForBattling: .string "At the BATTLE TOWER, an older girl\n" .string "told me that I have a lot of talent\l" .string "for battling!\p" diff --git a/data/maps/BattleFrontier_Lounge9/scripts.inc b/data/maps/BattleFrontier_Lounge9/scripts.inc index cba75ee777..b955a81e36 100644 --- a/data/maps/BattleFrontier_Lounge9/scripts.inc +++ b/data/maps/BattleFrontier_Lounge9/scripts.inc @@ -1,3 +1,3 @@ -BattleFrontier_Lounge9_MapScripts:: @ 82678F8 +BattleFrontier_Lounge9_MapScripts:: .byte 0 diff --git a/data/maps/BattleFrontier_Mart/scripts.inc b/data/maps/BattleFrontier_Mart/scripts.inc index 4e60e9ce54..6afe6a0186 100644 --- a/data/maps/BattleFrontier_Mart/scripts.inc +++ b/data/maps/BattleFrontier_Mart/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_OLD_WOMAN, 2 -BattleFrontier_Mart_MapScripts:: @ 8267ACB +BattleFrontier_Mart_MapScripts:: .byte 0 -BattleFrontier_Mart_EventScript_Clerk:: @ 8267ACC +BattleFrontier_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -14,7 +14,7 @@ BattleFrontier_Mart_EventScript_Clerk:: @ 8267ACC end .align 2 -BattleFrontier_Mart_Pokemart: @ 8267AE4 +BattleFrontier_Mart_Pokemart: .2byte ITEM_ULTRA_BALL .2byte ITEM_HYPER_POTION .2byte ITEM_MAX_POTION @@ -32,11 +32,11 @@ BattleFrontier_Mart_Pokemart: @ 8267AE4 release end -BattleFrontier_Mart_EventScript_OldMan:: @ 8267B02 +BattleFrontier_Mart_EventScript_OldMan:: msgbox BattleFrontier_Mart_Text_ChaperonGrandson, MSGBOX_NPC end -BattleFrontier_Mart_EventScript_OldWoman:: @ 8267B0B +BattleFrontier_Mart_EventScript_OldWoman:: lock applymovement LOCALID_OLD_WOMAN, Common_Movement_FaceDown waitmovement 0 @@ -44,23 +44,23 @@ BattleFrontier_Mart_EventScript_OldWoman:: @ 8267B0B release end -BattleFrontier_Mart_EventScript_Boy:: @ 8267B20 +BattleFrontier_Mart_EventScript_Boy:: msgbox BattleFrontier_Mart_Text_FacilitiesDontAllowItems, MSGBOX_NPC end -BattleFrontier_Mart_Text_ChaperonGrandson: @ 8267B29 +BattleFrontier_Mart_Text_ChaperonGrandson: .string "We came here to chaperon our\n" .string "grandson.\p" .string "But since we're here, we thought\n" .string "we should get some souvenirs.$" -BattleFrontier_Mart_Text_ProteinMakeNiceGift: @ 8267B8F +BattleFrontier_Mart_Text_ProteinMakeNiceGift: .string "Dear, what do you think of this?\n" .string "Wouldn't this make a nice gift?\p" .string "It's…PRO…TE…IN?\n" .string "It sounds delicious, doesn't it?$" -BattleFrontier_Mart_Text_FacilitiesDontAllowItems: @ 8267C01 +BattleFrontier_Mart_Text_FacilitiesDontAllowItems: .string "A lot of the BATTLE FRONTIER's\n" .string "facilities don't allow the use of items\l" .string "during battles.\p" diff --git a/data/maps/BattleFrontier_OutsideEast/scripts.inc b/data/maps/BattleFrontier_OutsideEast/scripts.inc index 8e891dd32c..8166f91869 100644 --- a/data/maps/BattleFrontier_OutsideEast/scripts.inc +++ b/data/maps/BattleFrontier_OutsideEast/scripts.inc @@ -1,74 +1,74 @@ .set LOCALID_SUDOWOODO, 14 -BattleFrontier_OutsideEast_MapScripts:: @ 8242C04 +BattleFrontier_OutsideEast_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_OutsideEast_OnResume map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_OutsideEast_OnTransition .byte 0 -BattleFrontier_OutsideEast_OnResume: @ 8242C0F +BattleFrontier_OutsideEast_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, BattleFrontier_OutsideEast_EventScript_TryRemoveSudowoodo end -BattleFrontier_OutsideEast_EventScript_TryRemoveSudowoodo:: @ 8242C19 +BattleFrontier_OutsideEast_EventScript_TryRemoveSudowoodo:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -BattleFrontier_OutsideEast_OnTransition: @ 8242C2D +BattleFrontier_OutsideEast_OnTransition: setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0 setflag FLAG_HIDE_BATTLE_TOWER_REPORTER call_if_unset FLAG_DEFEATED_SUDOWOODO, BattleFrontier_OutsideEast_EventScript_ShowSudowoodo end -BattleFrontier_OutsideEast_EventScript_ShowSudowoodo:: @ 8242C3F +BattleFrontier_OutsideEast_EventScript_ShowSudowoodo:: clearflag FLAG_HIDE_BATTLE_FRONTIER_SUDOWOODO return -BattleFrontier_OutsideEast_EventScript_BattleTowerSign:: @ 8242C43 +BattleFrontier_OutsideEast_EventScript_BattleTowerSign:: msgbox BattleFrontier_OutsideEast_Text_BattleTowerSign, MSGBOX_SIGN end -BattleFrontier_OutsideEast_EventScript_BattlePalaceSign:: @ 8242C4C +BattleFrontier_OutsideEast_EventScript_BattlePalaceSign:: msgbox BattleFrontier_OutsideEast_Text_BattlePalaceSign, MSGBOX_SIGN end -BattleFrontier_OutsideEast_EventScript_BattleArenaSign:: @ 8242C55 +BattleFrontier_OutsideEast_EventScript_BattleArenaSign:: msgbox BattleFrontier_OutsideEast_Text_BattleArenaSign, MSGBOX_SIGN end -BattleFrontier_OutsideEast_EventScript_BattlePyramidSign:: @ 8242C5E +BattleFrontier_OutsideEast_EventScript_BattlePyramidSign:: msgbox BattleFrontier_OutsideEast_Text_BattlePyramidSign, MSGBOX_SIGN end -BattleFrontier_OutsideEast_EventScript_NinjaBoy:: @ 8242C67 +BattleFrontier_OutsideEast_EventScript_NinjaBoy:: msgbox BattleFrontier_OutsideEast_Text_BattleTowerFeelsSpecial, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Man1:: @ 8242C70 +BattleFrontier_OutsideEast_EventScript_Man1:: msgbox BattleFrontier_OutsideEast_Text_ConquerLeagueAndFrontier, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Hiker:: @ 8242C79 +BattleFrontier_OutsideEast_EventScript_Hiker:: msgbox BattleFrontier_OutsideEast_Text_PyramidTooHarsh, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_HexManiac:: @ 8242C82 +BattleFrontier_OutsideEast_EventScript_HexManiac:: msgbox BattleFrontier_OutsideEast_Text_ThriveInDarkness, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_BlackBelt1:: @ 8242C8B +BattleFrontier_OutsideEast_EventScript_BlackBelt1:: msgbox BattleFrontier_OutsideEast_Text_PutTogetherUltimateTeam, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Cook:: @ 8242C94 +BattleFrontier_OutsideEast_EventScript_Cook:: lock msgbox BattleFrontier_OutsideEast_Text_BelieveInYouBuddy, MSGBOX_DEFAULT release end -BattleFrontier_OutsideEast_EventScript_Zigzagoon:: @ 8242C9F +BattleFrontier_OutsideEast_EventScript_Zigzagoon:: lock faceplayer waitse @@ -78,33 +78,33 @@ BattleFrontier_OutsideEast_EventScript_Zigzagoon:: @ 8242C9F release end -BattleFrontier_OutsideEast_EventScript_RichBoy:: @ 8242CB2 +BattleFrontier_OutsideEast_EventScript_RichBoy:: msgbox BattleFrontier_OutsideEast_Text_PeopleCallMeBusybody, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_ExpertF:: @ 8242CBB +BattleFrontier_OutsideEast_EventScript_ExpertF:: msgbox BattleFrontier_OutsideEast_Text_OnceBeatGymLeader, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_TriathleteF:: @ 8242CC4 +BattleFrontier_OutsideEast_EventScript_TriathleteF:: msgbox BattleFrontier_OutsideEast_Text_FastOnBikeAndBattles, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Twin:: @ 8242CCD +BattleFrontier_OutsideEast_EventScript_Twin:: msgbox BattleFrontier_OutsideEast_Text_BetterThanDaddyAtPokemon, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Man2:: @ 8242CD6 +BattleFrontier_OutsideEast_EventScript_Man2:: lock msgbox BattleFrontier_OutsideEast_Text_GoRackUpSomeWinsForDaddy, MSGBOX_DEFAULT release end -BattleFrontier_OutsideEast_EventScript_TriathleteM:: @ 8242CE1 +BattleFrontier_OutsideEast_EventScript_TriathleteM:: msgbox BattleFrontier_OutsideEast_Text_DidScottBringYouHere, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Sudowoodo:: @ 8242CEA +BattleFrontier_OutsideEast_EventScript_Sudowoodo:: lock faceplayer waitse @@ -114,7 +114,7 @@ BattleFrontier_OutsideEast_EventScript_Sudowoodo:: @ 8242CEA release end -BattleFrontier_OutsideEast_EventScript_WaterSudowoodo:: @ 8242CFC +BattleFrontier_OutsideEast_EventScript_WaterSudowoodo:: lock faceplayer special DoWateringBerryTreeAnim @@ -145,12 +145,12 @@ BattleFrontier_OutsideEast_EventScript_WaterSudowoodo:: @ 8242CFC release end -BattleFrontier_OutsideEast_EventScript_DefeatedSudowoodo:: @ 8242D60 +BattleFrontier_OutsideEast_EventScript_DefeatedSudowoodo:: setflag FLAG_DEFEATED_SUDOWOODO goto Common_EventScript_RemoveStaticPokemon end -BattleFrontier_OutsideEast_Movement_SudowoodoShake: @ 8242D69 +BattleFrontier_OutsideEast_Movement_SudowoodoShake: face_right delay_8 face_down @@ -168,59 +168,59 @@ BattleFrontier_OutsideEast_Movement_SudowoodoShake: @ 8242D69 face_down step_end -BattleFrontier_OutsideEast_EventScript_Maniac1:: @ 8242D79 +BattleFrontier_OutsideEast_EventScript_Maniac1:: msgbox BattleFrontier_OutsideEast_Text_HeardPrettyGirlAtBattleArena, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Girl:: @ 8242D82 +BattleFrontier_OutsideEast_EventScript_Girl:: msgbox BattleFrontier_OutsideEast_Text_SometimesImportantOldManInThere, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_PsychicM:: @ 8242D8B +BattleFrontier_OutsideEast_EventScript_PsychicM:: msgbox BattleFrontier_OutsideEast_Text_LegendOfBattlePyramid, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Man3:: @ 8242D94 +BattleFrontier_OutsideEast_EventScript_Man3:: msgbox BattleFrontier_OutsideEast_Text_GotWipedOut, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Woman1:: @ 8242D9D +BattleFrontier_OutsideEast_EventScript_Woman1:: msgbox BattleFrontier_OutsideEast_Text_ToughTrainerInBattleTower, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Woman2:: @ 8242DA6 +BattleFrontier_OutsideEast_EventScript_Woman2:: msgbox BattleFrontier_OutsideEast_Text_EnoughBattlePointsForDoll, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_BlackBelt2:: @ 8242DAF +BattleFrontier_OutsideEast_EventScript_BlackBelt2:: msgbox BattleFrontier_OutsideEast_Text_LikeToHaveNameRecordedHere, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_Maniac2:: @ 8242DB8 +BattleFrontier_OutsideEast_EventScript_Maniac2:: lock msgbox BattleFrontier_OutsideEast_Text_CanDoAnythingWithYou, MSGBOX_DEFAULT release end -BattleFrontier_OutsideEast_EventScript_Woman3:: @ 8242DC3 +BattleFrontier_OutsideEast_EventScript_Woman3:: lock msgbox BattleFrontier_OutsideEast_Text_PowerOfOurLoveWillOvercome, MSGBOX_DEFAULT release end -BattleFrontier_OutsideEast_EventScript_RankingHallSign:: @ 8242DCE +BattleFrontier_OutsideEast_EventScript_RankingHallSign:: msgbox BattleFrontier_OutsideEast_Text_RankingHallSign, MSGBOX_SIGN end -BattleFrontier_OutsideEast_EventScript_ExchangeCornerSign:: @ 8242DD7 +BattleFrontier_OutsideEast_EventScript_ExchangeCornerSign:: msgbox BattleFrontier_OutsideEast_Text_ExchangeCornerSign, MSGBOX_SIGN end -BattleFrontier_OutsideEast_EventScript_Gentleman:: @ 8242DE0 +BattleFrontier_OutsideEast_EventScript_Gentleman:: msgbox BattleFrontier_OutsideEast_Text_FrontierNotExclusivelyForToughTrainers, MSGBOX_NPC end -BattleFrontier_OutsideEast_EventScript_OldWoman:: @ 8242DE9 +BattleFrontier_OutsideEast_EventScript_OldWoman:: lock faceplayer goto_if_set FLAG_DEFEATED_SUDOWOODO, BattleFrontier_OutsideEast_EventScript_OldWomanSudowoodoGone @@ -228,47 +228,47 @@ BattleFrontier_OutsideEast_EventScript_OldWoman:: @ 8242DE9 release end -BattleFrontier_OutsideEast_EventScript_OldWomanSudowoodoGone:: @ 8242DFE +BattleFrontier_OutsideEast_EventScript_OldWomanSudowoodoGone:: msgbox BattleFrontier_OutsideEast_Text_OnceAnOddTreePastHere, MSGBOX_DEFAULT release end -BattleFrontier_OutsideEast_EventScript_Camper:: @ 8242E08 +BattleFrontier_OutsideEast_EventScript_Camper:: msgbox BattleFrontier_OutsideEast_Text_StickyMonWithLongTail, MSGBOX_NPC end -BattleFrontier_OutsideEast_Text_BattleTowerSign: @ 8242E11 +BattleFrontier_OutsideEast_Text_BattleTowerSign: .string "This is the BATTLE TOWER!\n" .string "Keep the win streak as the toughest\l" .string "TRAINER!$" -BattleFrontier_OutsideEast_Text_BattlePalaceSign: @ 8242E58 +BattleFrontier_OutsideEast_Text_BattlePalaceSign: .string "This is the BATTLE PALACE!\n" .string "Keep your eyes on POKéMON battles!$" -BattleFrontier_OutsideEast_Text_BattleArenaSign: @ 8242E96 +BattleFrontier_OutsideEast_Text_BattleArenaSign: .string "This is the BATTLE ARENA!\n" .string "Let the toughest teams gather!$" -BattleFrontier_OutsideEast_Text_BattlePyramidSign: @ 8242ECF +BattleFrontier_OutsideEast_Text_BattlePyramidSign: .string "This is the BATTLE PYRAMID!\n" .string "Advance through the Battle Quest!$" -BattleFrontier_OutsideEast_Text_RankingHallSign: @ 8242F0D +BattleFrontier_OutsideEast_Text_RankingHallSign: .string "BATTLE FRONTIER RANKING HALL\n" .string "Set your sights on new records!$" -BattleFrontier_OutsideEast_Text_ExchangeCornerSign: @ 8242F4A +BattleFrontier_OutsideEast_Text_ExchangeCornerSign: .string "BATTLE POINT EXCHANGE SERVICE CORNER\n" .string "Exchange your Battle Points!$" -BattleFrontier_OutsideEast_Text_BattleTowerFeelsSpecial: @ 8242F8C +BattleFrontier_OutsideEast_Text_BattleTowerFeelsSpecial: .string "Wow!\n" .string "It's huge!\p" .string "The BATTLE TOWER feels special.\n" .string "It's different from the others.$" -BattleFrontier_OutsideEast_Text_ConquerLeagueAndFrontier: @ 8242FDC +BattleFrontier_OutsideEast_Text_ConquerLeagueAndFrontier: .string "My grand ambition is to conquer both\n" .string "the BATTLE FRONTIER and the POKéMON\l" .string "LEAGUE.\p" @@ -276,26 +276,26 @@ BattleFrontier_OutsideEast_Text_ConquerLeagueAndFrontier: @ 8242FDC .string "I… I'm going to ask MIMI next door\n" .string "if she will be friends with me!$" -BattleFrontier_OutsideEast_Text_PyramidTooHarsh: @ 824308C +BattleFrontier_OutsideEast_Text_PyramidTooHarsh: .string "The BATTLE PYRAMID's too harsh!\n" .string "I just can't make it to the top!\p" .string "Since I'm out of options, maybe I can\n" .string "climb the outside…$" -BattleFrontier_OutsideEast_Text_ThriveInDarkness: @ 8243106 +BattleFrontier_OutsideEast_Text_ThriveInDarkness: .string "I thrive in darkness…\n" .string "Yes… What is worthy of me?\l" .string "None other than the BATTLE PYRAMID…\p" .string "What say you to wandering in darkness\n" .string "and in utter and total desperation?$" -BattleFrontier_OutsideEast_Text_PutTogetherUltimateTeam: @ 82431A5 +BattleFrontier_OutsideEast_Text_PutTogetherUltimateTeam: .string "I didn't sleep for a week, but then\n" .string "I put together the ultimate team!\p" .string "I can't see myself losing, no joke.\n" .string "We're storming the BATTLE ARENA!$" -BattleFrontier_OutsideEast_Text_DidScottBringYouHere: @ 8243230 +BattleFrontier_OutsideEast_Text_DidScottBringYouHere: .string "Did SCOTT bring you here, too?\n" .string "What is it with that guy?\p" .string "It sounds like he really does know\n" @@ -303,16 +303,16 @@ BattleFrontier_OutsideEast_Text_DidScottBringYouHere: @ 8243230 .string "I've never seen him battling in person\n" .string "ever.$" -BattleFrontier_OutsideEast_Text_BelieveInYouBuddy: @ 82432DD +BattleFrontier_OutsideEast_Text_BelieveInYouBuddy: .string "ZIGG!\n" .string "I believe in you, little buddy!\p" .string "I'll make my little ZIGG any favorite\n" .string "tasty treats you like if you win!$" -BattleFrontier_OutsideEast_Text_ZigzagoonLooksVacant: @ 824334B +BattleFrontier_OutsideEast_Text_ZigzagoonLooksVacant: .string "ZIGZAGOON looks vacant…$" -BattleFrontier_OutsideEast_Text_PeopleCallMeBusybody: @ 8243363 +BattleFrontier_OutsideEast_Text_PeopleCallMeBusybody: .string "People call me a busybody,\n" .string "but I can't help it.\p" .string "Your hat's on crooked!\n" @@ -321,29 +321,29 @@ BattleFrontier_OutsideEast_Text_PeopleCallMeBusybody: @ 8243363 .string "I don't know if I can stand to just\n" .string "watch at the BATTLE PALACE…$" -BattleFrontier_OutsideEast_Text_OnceBeatGymLeader: @ 8243425 +BattleFrontier_OutsideEast_Text_OnceBeatGymLeader: .string "I may not look that impressive now,\n" .string "but I once beat a GYM LEADER.\p" .string "Who knows, maybe I should give it\n" .string "another shot at glory.$" -BattleFrontier_OutsideEast_Text_FastOnBikeAndBattles: @ 82434A0 +BattleFrontier_OutsideEast_Text_FastOnBikeAndBattles: .string "I'm fast on my BIKE, and that goes for\n" .string "the way I battle, too.\p" .string "I win matches in the blink of\n" .string "an eye!$" -BattleFrontier_OutsideEast_Text_BetterThanDaddyAtPokemon: @ 8243504 +BattleFrontier_OutsideEast_Text_BetterThanDaddyAtPokemon: .string "I'm better than my daddy\n" .string "at POKéMON.$" -BattleFrontier_OutsideEast_Text_GoRackUpSomeWinsForDaddy: @ 8243529 +BattleFrontier_OutsideEast_Text_GoRackUpSomeWinsForDaddy: .string "Go on, my baby sweetie!\n" .string "Go rack up some wins for Daddy!\p" .string "You're just like your mother,\n" .string "so you'll be dominating!$" -BattleFrontier_OutsideEast_Text_HeardPrettyGirlAtBattleArena: @ 8243598 +BattleFrontier_OutsideEast_Text_HeardPrettyGirlAtBattleArena: .string "It wasn't easy getting here,\n" .string "but I'd heard about this knockout\l" .string "pretty girl at the BATTLE ARENA.\p" @@ -352,13 +352,13 @@ BattleFrontier_OutsideEast_Text_HeardPrettyGirlAtBattleArena: @ 8243598 .string "A whole teeming mob of sweaty,\n" .string "stinky, and primitive martial artists!$" -BattleFrontier_OutsideEast_Text_SometimesImportantOldManInThere: @ 8243668 +BattleFrontier_OutsideEast_Text_SometimesImportantOldManInThere: .string "I sometimes see this really important-\n" .string "looking old man going in there.\p" .string "He has these really awesome POKéMON.\n" .string "He seems really nice, though.$" -BattleFrontier_OutsideEast_Text_LegendOfBattlePyramid: @ 82436F2 +BattleFrontier_OutsideEast_Text_LegendOfBattlePyramid: .string "Do you know it?\n" .string "The legend of the BATTLE PYRAMID?\p" .string "When there comes a confident TRAINER\n" @@ -370,7 +370,7 @@ BattleFrontier_OutsideEast_Text_LegendOfBattlePyramid: @ 82436F2 .string "What's it supposed to mean?\n" .string "That, my friend, I can't say!$" -BattleFrontier_OutsideEast_Text_GotWipedOut: @ 8243809 +BattleFrontier_OutsideEast_Text_GotWipedOut: .string "Man! Oh man!\n" .string "I've never lost once before!\p" .string "But I got wiped out with no saving\n" @@ -378,7 +378,7 @@ BattleFrontier_OutsideEast_Text_GotWipedOut: @ 8243809 .string "And then I'm told I don't have any\n" .string "talent?! Man!$" -BattleFrontier_OutsideEast_Text_ToughTrainerInBattleTower: @ 8243895 +BattleFrontier_OutsideEast_Text_ToughTrainerInBattleTower: .string "This guy ran into a horribly tough\n" .string "TRAINER while he was on the BATTLE\l" .string "TOWER challenge.\p" @@ -386,23 +386,23 @@ BattleFrontier_OutsideEast_Text_ToughTrainerInBattleTower: @ 8243895 .string "You need to be cautious if you ever\n" .string "decide to go to the BATTLE TOWER.$" -BattleFrontier_OutsideEast_Text_EnoughBattlePointsForDoll: @ 8243943 +BattleFrontier_OutsideEast_Text_EnoughBattlePointsForDoll: .string "Yes!\n" .string "I've finally got enough Battle Points!\p" .string "I guess I'll trade for another giant\n" .string "plush DOLL!$" -BattleFrontier_OutsideEast_Text_LikeToHaveNameRecordedHere: @ 82439A0 +BattleFrontier_OutsideEast_Text_LikeToHaveNameRecordedHere: .string "Oh, yeah, okay!\n" .string "So this is the RANKING HALL!\p" .string "I'd like to go down in history as\n" .string "a super champ and have my name\l" .string "recorded here for posterity.$" -BattleFrontier_OutsideEast_Text_CanDoAnythingWithYou: @ 8243A2B +BattleFrontier_OutsideEast_Text_CanDoAnythingWithYou: .string "With you by my side, I can do anything.$" -BattleFrontier_OutsideEast_Text_PowerOfOurLoveWillOvercome: @ 8243A53 +BattleFrontier_OutsideEast_Text_PowerOfOurLoveWillOvercome: .string "Ooh, darling, you are so wonderful!\p" .string "Ooh, I just can't wait anymore!\p" .string "Let's go to a MULTI BATTLE ROOM\n" @@ -413,7 +413,7 @@ BattleFrontier_OutsideEast_Text_PowerOfOurLoveWillOvercome: @ 8243A53 .string "Why, before us, darling, everything\n" .string "will topple like dominoes!$" -BattleFrontier_OutsideEast_Text_FrontierNotExclusivelyForToughTrainers: @ 8243B68 +BattleFrontier_OutsideEast_Text_FrontierNotExclusivelyForToughTrainers: .string "The BATTLE FRONTIER isn't exclusively\n" .string "for tough TRAINERS.\p" .string "Many people with special abilities\n" @@ -422,19 +422,19 @@ BattleFrontier_OutsideEast_Text_FrontierNotExclusivelyForToughTrainers: @ 8243B6 .string "He may have built this place to serve\n" .string "a bigger objective…$" -BattleFrontier_OutsideEast_Text_OddTreeHereSeemsToWiggle: @ 8243C2C +BattleFrontier_OutsideEast_Text_OddTreeHereSeemsToWiggle: .string "Excuse me, young one.\n" .string "Have you good eyesight?\p" .string "There is an odd tree past here, and to\n" .string "my tired eyes it seems to wiggle.$" -BattleFrontier_OutsideEast_Text_OnceAnOddTreePastHere: @ 8243CA3 +BattleFrontier_OutsideEast_Text_OnceAnOddTreePastHere: .string "Excuse me, young one.\n" .string "Have you a good memory?\p" .string "I have this feeling there once was\n" .string "an odd tree past here.$" -BattleFrontier_OutsideEast_Text_StickyMonWithLongTail: @ 8243D0B +BattleFrontier_OutsideEast_Text_StickyMonWithLongTail: .string "I…\n" .string "I saw it!\p" .string "There was a sticky sort of a POKéMON\n" diff --git a/data/maps/BattleFrontier_OutsideWest/scripts.inc b/data/maps/BattleFrontier_OutsideWest/scripts.inc index 561b4e86a4..19f0562585 100644 --- a/data/maps/BattleFrontier_OutsideWest/scripts.inc +++ b/data/maps/BattleFrontier_OutsideWest/scripts.inc @@ -7,16 +7,16 @@ .set LOCALID_FISHERMAN_2, 18 .set LOCALID_MAN_4, 23 -BattleFrontier_OutsideWest_MapScripts:: @ 823D3E1 +BattleFrontier_OutsideWest_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_OutsideWest_OnTransition .byte 0 -BattleFrontier_OutsideWest_OnTransition: @ 823D3E7 +BattleFrontier_OutsideWest_OnTransition: setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0 setflag FLAG_HIDE_BATTLE_TOWER_REPORTER end -BattleFrontier_OutsideWest_EventScript_FerryAttendant:: @ 823D3F0 +BattleFrontier_OutsideWest_EventScript_FerryAttendant:: lock faceplayer msgbox BattleFrontier_OutsideWest_Text_MayISeeYourTicket, MSGBOX_DEFAULT @@ -28,8 +28,8 @@ BattleFrontier_OutsideWest_EventScript_FerryAttendant:: @ 823D3F0 goto BattleFrontier_OutsideWest_EventScript_ChooseFerryDestination end -BattleFrontier_OutsideWest_EventScript_ChooseFerryDestination:: @ 823D416 - multichoicedefault 18, 6, MULTI_SSTIDAL_BATTLE_FRONTIER, 2, 0 +BattleFrontier_OutsideWest_EventScript_ChooseFerryDestination:: + multichoicedefault 18, 6, MULTI_SSTIDAL_BATTLE_FRONTIER, 2, FALSE switch VAR_RESULT case 0, BattleFrontier_OutsideWest_EventScript_FerryToSlateport case 1, BattleFrontier_OutsideWest_EventScript_FerryToLilycove @@ -37,12 +37,12 @@ BattleFrontier_OutsideWest_EventScript_ChooseFerryDestination:: @ 823D416 case MULTI_B_PRESSED, BattleFrontier_OutsideWest_EventScript_CancelFerrySelect end -BattleFrontier_OutsideWest_EventScript_NoSSTicket:: @ 823D44E +BattleFrontier_OutsideWest_EventScript_NoSSTicket:: msgbox BattleFrontier_OutsideWest_Text_MustHaveTicketToBoard, MSGBOX_DEFAULT release end -BattleFrontier_OutsideWest_EventScript_FerryToSlateport:: @ 823D458 +BattleFrontier_OutsideWest_EventScript_FerryToSlateport:: msgbox BattleFrontier_OutsideWest_Text_SlateportItIs, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_OutsideWest_EventScript_ChooseNewFerryDestination @@ -53,7 +53,7 @@ BattleFrontier_OutsideWest_EventScript_FerryToSlateport:: @ 823D458 release end -BattleFrontier_OutsideWest_EventScript_FerryToLilycove:: @ 823D483 +BattleFrontier_OutsideWest_EventScript_FerryToLilycove:: msgbox BattleFrontier_OutsideWest_Text_LilycoveItIs, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq BattleFrontier_OutsideWest_EventScript_ChooseNewFerryDestination @@ -64,13 +64,13 @@ BattleFrontier_OutsideWest_EventScript_FerryToLilycove:: @ 823D483 release end -BattleFrontier_OutsideWest_EventScript_ChooseNewFerryDestination:: @ 823D4AE +BattleFrontier_OutsideWest_EventScript_ChooseNewFerryDestination:: message BattleFrontier_OutsideWest_Text_ThenWhereWouldYouLikeToGo waitmessage goto BattleFrontier_OutsideWest_EventScript_ChooseFerryDestination end -BattleFrontier_OutsideWest_EventScript_BoardFerry:: @ 823D4BA +BattleFrontier_OutsideWest_EventScript_BoardFerry:: closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestDown waitmovement 0 @@ -80,38 +80,38 @@ BattleFrontier_OutsideWest_EventScript_BoardFerry:: @ 823D4BA call Common_EventScript_FerryDepartIsland return -BattleFrontier_OutsideWest_EventScript_CancelFerrySelect:: @ 823D4D8 +BattleFrontier_OutsideWest_EventScript_CancelFerrySelect:: msgbox BattleFrontier_OutsideWest_Text_SailWithUsAnotherTime, MSGBOX_DEFAULT release end -BattleFrontier_OutsideWest_EventScript_BattleDomeSign:: @ 823D4E2 +BattleFrontier_OutsideWest_EventScript_BattleDomeSign:: msgbox BattleFrontier_OutsideWest_Text_BattleDomeSign, MSGBOX_SIGN end -BattleFrontier_OutsideWest_EventScript_BattleFactorySign:: @ 823D4EB +BattleFrontier_OutsideWest_EventScript_BattleFactorySign:: msgbox BattleFrontier_OutsideWest_Text_BattleFactorySign, MSGBOX_SIGN end -BattleFrontier_OutsideWest_EventScript_BattlePikeSign:: @ 823D4F4 +BattleFrontier_OutsideWest_EventScript_BattlePikeSign:: msgbox BattleFrontier_OutsideWest_Text_BattlePikeSign, MSGBOX_SIGN end @ Unused. Of note, Battle Tower is in the East section in the final release -BattleFrontier_OutsideWest_EventScript_UnusedNPC1:: @ 823D4FD +BattleFrontier_OutsideWest_EventScript_UnusedNPC1:: msgbox BattleFrontier_OutsideWest_Text_ThisIsBattleTower, MSGBOX_NPC end @ Unused -BattleFrontier_OutsideWest_EventScript_UnusedNPC2:: @ 823D4FD +BattleFrontier_OutsideWest_EventScript_UnusedNPC2:: msgbox BattleFrontier_OutsideWest_Text_CantFindBattleTower, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Boy1:: @ 823D50F +BattleFrontier_OutsideWest_EventScript_Boy1:: msgbox BattleFrontier_OutsideWest_Text_BestOutOfAllMyFriends, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Fisherman2:: @ 823D518 +BattleFrontier_OutsideWest_EventScript_Fisherman2:: lock faceplayer message BattleFrontier_OutsideWest_Text_GotSeasickOnWayHere @@ -122,21 +122,21 @@ BattleFrontier_OutsideWest_EventScript_Fisherman2:: @ 823D518 release end -BattleFrontier_OutsideWest_EventScript_Man1:: @ 823D52D +BattleFrontier_OutsideWest_EventScript_Man1:: msgbox BattleFrontier_OutsideWest_Text_OnlyToughTrainersBroughtHere, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Maniac1:: @ 823D536 +BattleFrontier_OutsideWest_EventScript_Maniac1:: lock goto BattleFrontier_OutsideWest_EventScript_FactoryChallengersTalk end -BattleFrontier_OutsideWest_EventScript_Maniac2:: @ 823D53D +BattleFrontier_OutsideWest_EventScript_Maniac2:: lock goto BattleFrontier_OutsideWest_EventScript_FactoryChallengersTalk end -BattleFrontier_OutsideWest_EventScript_FactoryChallengersTalk:: @ 823D544 +BattleFrontier_OutsideWest_EventScript_FactoryChallengersTalk:: applymovement LOCALID_MANIAC_1, Common_Movement_WalkInPlaceFastestRight waitmovement 0 msgbox BattleFrontier_OutsideWest_Text_SureWeCanChallengeWithNoMons, MSGBOX_DEFAULT @@ -151,7 +151,7 @@ BattleFrontier_OutsideWest_EventScript_FactoryChallengersTalk:: @ 823D544 release end -BattleFrontier_OutsideWest_EventScript_Camper:: @ 823D57F +BattleFrontier_OutsideWest_EventScript_Camper:: lock faceplayer delay 20 @@ -167,15 +167,15 @@ BattleFrontier_OutsideWest_EventScript_Camper:: @ 823D57F release end -BattleFrontier_OutsideWest_EventScript_CamperFaceFactory:: @ 823D5BA +BattleFrontier_OutsideWest_EventScript_CamperFaceFactory:: applymovement LOCALID_CAMPER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -BattleFrontier_OutsideWest_EventScript_CamperAlreadyFacingFactory:: @ 823D5C5 +BattleFrontier_OutsideWest_EventScript_CamperAlreadyFacingFactory:: return -BattleFrontier_OutsideWest_EventScript_Girl:: @ 823D5C6 +BattleFrontier_OutsideWest_EventScript_Girl:: lock faceplayer message BattleFrontier_OutsideWest_Text_ScaredOfPikeBecauseSeviper @@ -192,47 +192,47 @@ BattleFrontier_OutsideWest_EventScript_Girl:: @ 823D5C6 release end -BattleFrontier_OutsideWest_EventScript_GirlShudderNorth:: @ 823D5FD +BattleFrontier_OutsideWest_EventScript_GirlShudderNorth:: applymovement LOCALID_GIRL, BattleFrontier_OutsideWest_Movement_GirlShudderNorth waitmovement 0 return -BattleFrontier_OutsideWest_EventScript_GirlShudderSouth:: @ 823D608 +BattleFrontier_OutsideWest_EventScript_GirlShudderSouth:: applymovement LOCALID_GIRL, BattleFrontier_OutsideWest_Movement_GirlShudderSouth waitmovement 0 return -BattleFrontier_OutsideWest_EventScript_GirlShudderWest:: @ 823D613 +BattleFrontier_OutsideWest_EventScript_GirlShudderWest:: applymovement LOCALID_GIRL, BattleFrontier_OutsideWest_Movement_GirlShudderWest waitmovement 0 return -BattleFrontier_OutsideWest_EventScript_GirlShudderEast:: @ 823D61E +BattleFrontier_OutsideWest_EventScript_GirlShudderEast:: applymovement LOCALID_GIRL, BattleFrontier_OutsideWest_Movement_GirlShudderEast waitmovement 0 return -BattleFrontier_OutsideWest_Movement_GirlShudderNorth: @ 823D629 +BattleFrontier_OutsideWest_Movement_GirlShudderNorth: walk_in_place_fastest_down walk_in_place_fastest_down step_end -BattleFrontier_OutsideWest_Movement_GirlShudderSouth: @ 823D62C +BattleFrontier_OutsideWest_Movement_GirlShudderSouth: walk_in_place_fastest_up walk_in_place_fastest_up step_end -BattleFrontier_OutsideWest_Movement_GirlShudderWest: @ 823D62F +BattleFrontier_OutsideWest_Movement_GirlShudderWest: walk_in_place_fastest_right walk_in_place_fastest_right step_end -BattleFrontier_OutsideWest_Movement_GirlShudderEast: @ 823D632 +BattleFrontier_OutsideWest_Movement_GirlShudderEast: walk_in_place_fastest_left walk_in_place_fastest_left step_end -BattleFrontier_OutsideWest_EventScript_Woman2:: @ 823D635 +BattleFrontier_OutsideWest_EventScript_Woman2:: lock faceplayer msgbox BattleFrontier_OutsideWest_Text_LetsPlayRockPaperScissors, MSGBOX_DEFAULT @@ -242,70 +242,70 @@ BattleFrontier_OutsideWest_EventScript_Woman2:: @ 823D635 goto BattleFrontier_OutsideWest_EventScript_WomanLostRockPaperScissors end -BattleFrontier_OutsideWest_EventScript_WomanWonRockPaperScissors:: @ 823D653 +BattleFrontier_OutsideWest_EventScript_WomanWonRockPaperScissors:: msgbox BattleFrontier_OutsideWest_Text_WonIllTakePikeChallenge, MSGBOX_DEFAULT release end -BattleFrontier_OutsideWest_EventScript_WomanLostRockPaperScissors:: @ 823D65D +BattleFrontier_OutsideWest_EventScript_WomanLostRockPaperScissors:: msgbox BattleFrontier_OutsideWest_Text_LostIllPutOffPikeChallenge, MSGBOX_DEFAULT release end -BattleFrontier_OutsideWest_EventScript_Fisherman1:: @ 823D667 +BattleFrontier_OutsideWest_EventScript_Fisherman1:: msgbox BattleFrontier_OutsideWest_Text_ChooseFishingOverBattling, MSGBOX_NPC end @ Unused -BattleFrontier_OutsideWest_EventScript_UnusedNPC3:: @ 823D670 +BattleFrontier_OutsideWest_EventScript_UnusedNPC3:: msgbox BattleFrontier_OutsideWest_Text_DomeIsHereGrandpa, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Gentleman:: @ 823D679 +BattleFrontier_OutsideWest_EventScript_Gentleman:: msgbox BattleFrontier_OutsideWest_Text_YoureOffToChallengeDome, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Lass:: @ 823D682 +BattleFrontier_OutsideWest_EventScript_Lass:: msgbox BattleFrontier_OutsideWest_Text_KeepBattlingUntilIGetSymbol, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_ExpertM:: @ 823D68B +BattleFrontier_OutsideWest_EventScript_ExpertM:: msgbox BattleFrontier_OutsideWest_Text_WontLetGentlemenBeatMe, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Man2:: @ 823D694 +BattleFrontier_OutsideWest_EventScript_Man2:: msgbox BattleFrontier_OutsideWest_Text_NothingHereNotLongAgo, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Woman1:: @ 823D69D +BattleFrontier_OutsideWest_EventScript_Woman1:: msgbox BattleFrontier_OutsideWest_Text_FinallyArrivedAtFrontier, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_FatMan1:: @ 823D6A6 +BattleFrontier_OutsideWest_EventScript_FatMan1:: msgbox BattleFrontier_OutsideWest_Text_SquareFilledWithToughPeople, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_FatMan2:: @ 823D6AF +BattleFrontier_OutsideWest_EventScript_FatMan2:: msgbox BattleFrontier_OutsideWest_Text_MetOlderGirlAtPike, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Woman3:: @ 823D6B8 +BattleFrontier_OutsideWest_EventScript_Woman3:: lock msgbox BattleFrontier_OutsideWest_Text_LastTimeOurEyesMet, MSGBOX_DEFAULT release end -BattleFrontier_OutsideWest_EventScript_Boy2:: @ 823D6C3 +BattleFrontier_OutsideWest_EventScript_Boy2:: lock msgbox BattleFrontier_OutsideWest_Text_DomeAceLookedBecauseOfMyCheering, MSGBOX_DEFAULT release end -BattleFrontier_OutsideWest_EventScript_OldMan:: @ 823D6CE +BattleFrontier_OutsideWest_EventScript_OldMan:: msgbox BattleFrontier_OutsideWest_Text_DomeAceIsMine, MSGBOX_NPC end -BattleFrontier_OutsideWest_EventScript_Man4:: @ 823D6D7 +BattleFrontier_OutsideWest_EventScript_Man4:: lock faceplayer msgbox BattleFrontier_OutsideWest_Text_FansOverThereUsedToBeTrainers, MSGBOX_DEFAULT @@ -315,76 +315,76 @@ BattleFrontier_OutsideWest_EventScript_Man4:: @ 823D6D7 release end -BattleFrontier_OutsideWest_EventScript_PokefanF:: @ 823D6EE +BattleFrontier_OutsideWest_EventScript_PokefanF:: msgbox BattleFrontier_OutsideWest_Text_MonWithLongTailInFrontier, MSGBOX_NPC end -BattleFrontier_OutsideWest_Text_BattleDomeSign: @ 823D6F7 +BattleFrontier_OutsideWest_Text_BattleDomeSign: .string "This is the BATTLE DOME!\n" .string "Your path to the invincible superstar!$" -BattleFrontier_OutsideWest_Text_BattleFactorySign: @ 823D737 +BattleFrontier_OutsideWest_Text_BattleFactorySign: .string "This is the BATTLE FACTORY!\n" .string "Seek out the toughest POKéMON!$" -BattleFrontier_OutsideWest_Text_BattlePikeSign: @ 823D772 +BattleFrontier_OutsideWest_Text_BattlePikeSign: .string "This is the BATTLE PIKE!\n" .string "Choose one of three paths!$" -BattleFrontier_OutsideWest_Text_ThisIsBattleTower: @ 823D7A6 +BattleFrontier_OutsideWest_Text_ThisIsBattleTower: .string "This is the BATTLE TOWER.\p" .string "TRAINERS bring their best-raised\n" .string "POKéMON for elimination-style matches.$" -BattleFrontier_OutsideWest_Text_MayISeeYourTicket: @ 823D808 +BattleFrontier_OutsideWest_Text_MayISeeYourTicket: .string "Hello, are you here for the ferry?\n" .string "May I see your TICKET?$" -BattleFrontier_OutsideWest_Text_MustHaveTicketToBoard: @ 823D842 +BattleFrontier_OutsideWest_Text_MustHaveTicketToBoard: .string "{PLAYER} doesn't have the TICKET…\p" .string "I'm terribly sorry.\p" .string "You must have a TICKET to board\n" .string "the ferry.$" -BattleFrontier_OutsideWest_Text_WhereWouldYouLikeToGo: @ 823D89D +BattleFrontier_OutsideWest_Text_WhereWouldYouLikeToGo: .string "{PLAYER} flashed the TICKET.\p" .string "Perfect! That's all you need!\p" .string "And where would you like to go?$" -BattleFrontier_OutsideWest_Text_SlateportItIs: @ 823D8F2 +BattleFrontier_OutsideWest_Text_SlateportItIs: .string "SLATEPORT CITY it is, then!$" -BattleFrontier_OutsideWest_Text_LilycoveItIs: @ 823D90E +BattleFrontier_OutsideWest_Text_LilycoveItIs: .string "LILYCOVE CITY it is, then!$" -BattleFrontier_OutsideWest_Text_SailWithUsAnotherTime: @ 823D929 +BattleFrontier_OutsideWest_Text_SailWithUsAnotherTime: .string "Please sail with us another time!$" -BattleFrontier_OutsideWest_Text_PleaseBoardFerry: @ 823D94B +BattleFrontier_OutsideWest_Text_PleaseBoardFerry: .string "Please board the ferry and wait for\n" .string "departure.$" -BattleFrontier_OutsideWest_Text_ThenWhereWouldYouLikeToGo: @ 823D97A +BattleFrontier_OutsideWest_Text_ThenWhereWouldYouLikeToGo: .string "Then, where would you like to go?$" -BattleFrontier_OutsideWest_Text_BestOutOfAllMyFriends: @ 823D99C +BattleFrontier_OutsideWest_Text_BestOutOfAllMyFriends: .string "I'm the best out of all my friends.\n" .string "But here…\l" .string "I've been useless!$" -BattleFrontier_OutsideWest_Text_CantFindBattleTower: @ 823D9DD +BattleFrontier_OutsideWest_Text_CantFindBattleTower: .string "I want to go to the BATTLE TOWER,\n" .string "but I can't find it even though I have\l" .string "a map of the BATTLE FRONTIER.\p" .string "This place is just too big!$" -BattleFrontier_OutsideWest_Text_GotSeasickOnWayHere: @ 823DA60 +BattleFrontier_OutsideWest_Text_GotSeasickOnWayHere: .string "I wanted to take a challenge as soon\n" .string "as I arrived here.\p" .string "But on the way, I got seasick…\n" .string "Urrrrp…$" -BattleFrontier_OutsideWest_Text_OnlyToughTrainersBroughtHere: @ 823DABF +BattleFrontier_OutsideWest_Text_OnlyToughTrainersBroughtHere: .string "It's not as if just anyone can come\n" .string "here, you know?\p" .string "Only those TRAINERS who've been\n" @@ -392,94 +392,94 @@ BattleFrontier_OutsideWest_Text_OnlyToughTrainersBroughtHere: @ 823DABF .string "That's why many TRAINERS don't even\n" .string "know about the BATTLE FRONTIER.$" -BattleFrontier_OutsideWest_Text_SureWeCanChallengeWithNoMons: @ 823DB7D +BattleFrontier_OutsideWest_Text_SureWeCanChallengeWithNoMons: .string "Hey, bro…\p" .string "Are you sure we can make challenges\n" .string "even if we don't have any POKéMON?$" -BattleFrontier_OutsideWest_Text_BigGuySaidIllLendYouMons: @ 823DBCE +BattleFrontier_OutsideWest_Text_BigGuySaidIllLendYouMons: .string "Uh…\n" .string "I'm sure it'll be okay.\p" .string "I think…\p" .string "But remember that big scary guy?\n" .string "He said, “I'll lend you POKéMON!”$" -BattleFrontier_OutsideWest_Text_WhosRaisingThoseRentalMons: @ 823DC36 +BattleFrontier_OutsideWest_Text_WhosRaisingThoseRentalMons: .string "That's the BATTLE FACTORY.\n" .string "You can rent strong POKéMON there.\p" .string "But it makes me wonder.\n" .string "Who's raising those rental POKéMON?$" -BattleFrontier_OutsideWest_Text_ScaredOfPikeBecauseSeviper: @ 823DCB0 +BattleFrontier_OutsideWest_Text_ScaredOfPikeBecauseSeviper: .string "I'm scared of going into the BATTLE\n" .string "PIKE because of SEVIPER…\p" .string "B-but I came all the way here, so I will\n" .string "try to conquer everything!\l" .string "…Shudder…$" -BattleFrontier_OutsideWest_Text_LetsPlayRockPaperScissors: @ 823DD3B +BattleFrontier_OutsideWest_Text_LetsPlayRockPaperScissors: .string "Let's play rock, paper, scissors!\n" .string "One, two, three!\p" .string "… … … … … …$" -BattleFrontier_OutsideWest_Text_WonIllTakePikeChallenge: @ 823DD7A +BattleFrontier_OutsideWest_Text_WonIllTakePikeChallenge: .string "Yay! I won!\n" .string "I will take the BATTLE PIKE challenge!$" -BattleFrontier_OutsideWest_Text_LostIllPutOffPikeChallenge: @ 823DDAD +BattleFrontier_OutsideWest_Text_LostIllPutOffPikeChallenge: .string "Oh, no…\n" .string "I lost.\p" .string "I guess I'm not very lucky today.\n" .string "I'll put off my BATTLE PIKE challenge\l" .string "until tomorrow.$" -BattleFrontier_OutsideWest_Text_ChooseFishingOverBattling: @ 823DE15 +BattleFrontier_OutsideWest_Text_ChooseFishingOverBattling: .string "I believe I'm the only person here who,\n" .string "for some unknown reason, would choose\l" .string "fishing over battling.\p" .string "Huh? You can't catch anything here?\n" .string "That's disappointing…$" -BattleFrontier_OutsideWest_Text_KeepBattlingUntilIGetSymbol: @ 823DEB4 +BattleFrontier_OutsideWest_Text_KeepBattlingUntilIGetSymbol: .string "Today, I'm going to keep battling, no\n" .string "matter what, until I get a Symbol.$" -BattleFrontier_OutsideWest_Text_YoureOffToChallengeDome: @ 823DEFD +BattleFrontier_OutsideWest_Text_YoureOffToChallengeDome: .string "Oh? You're off to challenge\n" .string "the BATTLE DOME?\p" .string "I'll wish you the best of luck.\n" .string "Let us both win our way up and meet\l" .string "in challenges.$" -BattleFrontier_OutsideWest_Text_DomeIsHereGrandpa: @ 823DF7D +BattleFrontier_OutsideWest_Text_DomeIsHereGrandpa: .string "Grandpa, over here!\n" .string "The BATTLE DOME is here!\l" .string "Go get 'em, Grandpa!$" -BattleFrontier_OutsideWest_Text_WontLetGentlemenBeatMe: @ 823DFBF +BattleFrontier_OutsideWest_Text_WontLetGentlemenBeatMe: .string "Ah, so this here is the BATTLE DOME?\n" .string "I won't let GENTLEMEN beat me!\p" .string "But where is the entrance?$" -BattleFrontier_OutsideWest_Text_NothingHereNotLongAgo: @ 823E01E +BattleFrontier_OutsideWest_Text_NothingHereNotLongAgo: .string "There used to be nothing here not all\n" .string "that long ago.\p" .string "But, now look at this place! Amazing!\n" .string "I'll bring my mother out to see this.$" -BattleFrontier_OutsideWest_Text_FinallyArrivedAtFrontier: @ 823E09F +BattleFrontier_OutsideWest_Text_FinallyArrivedAtFrontier: .string "I've finally arrived at the BATTLE\n" .string "FRONTIER!\p" .string "I'm sure to grab attention with\n" .string "my looks and ability!$" -BattleFrontier_OutsideWest_Text_SquareFilledWithToughPeople: @ 823E102 +BattleFrontier_OutsideWest_Text_SquareFilledWithToughPeople: .string "Munch, munch…\p" .string "It looks like this square's filled with\n" .string "tough people.\p" .string "Munch, munch…$" -BattleFrontier_OutsideWest_Text_MetOlderGirlAtPike: @ 823E154 +BattleFrontier_OutsideWest_Text_MetOlderGirlAtPike: .string "Crunch, munch…\p" .string "A while back, I met this older girl\n" .string "at the BATTLE PIKE.\p" @@ -492,13 +492,13 @@ BattleFrontier_OutsideWest_Text_MetOlderGirlAtPike: @ 823E154 .string "scary experience, sure enough.\p" .string "Crunch, munch…$" -BattleFrontier_OutsideWest_Text_LastTimeOurEyesMet: @ 823E273 +BattleFrontier_OutsideWest_Text_LastTimeOurEyesMet: .string "Huh? Will you listen to yourself?\n" .string "That's nothing!\p" .string "Why, the last time I cheered for him,\n" .string "our eyes met and sparks flew!$" -BattleFrontier_OutsideWest_Text_DomeAceLookedBecauseOfMyCheering: @ 823E2E9 +BattleFrontier_OutsideWest_Text_DomeAceLookedBecauseOfMyCheering: .string "Whaaaaaat?!\n" .string "Pfft!\p" .string "That only happened because\n" @@ -506,7 +506,7 @@ BattleFrontier_OutsideWest_Text_DomeAceLookedBecauseOfMyCheering: @ 823E2E9 .string "The DOME ACE only looked our way\n" .string "because my cheering was so loud!$" -BattleFrontier_OutsideWest_Text_DomeAceIsMine: @ 823E37E +BattleFrontier_OutsideWest_Text_DomeAceIsMine: .string "Oh, shush!\n" .string "Keep that racket down!\p" .string "You fair-weather fans should stick\n" @@ -514,7 +514,7 @@ BattleFrontier_OutsideWest_Text_DomeAceIsMine: @ 823E37E .string "The DOME ACE is mine!\n" .string "The only idol for me!$" -BattleFrontier_OutsideWest_Text_FansOverThereUsedToBeTrainers: @ 823E410 +BattleFrontier_OutsideWest_Text_FansOverThereUsedToBeTrainers: .string "Those people squabbling over there…\p" .string "It's hard to believe, but they once\n" .string "were TRAINERS, and good ones, too.\p" @@ -528,7 +528,7 @@ BattleFrontier_OutsideWest_Text_FansOverThereUsedToBeTrainers: @ 823E410 .string "They go cheer for their idol at the\l" .string "BATTLE DOME every day now.$" -BattleFrontier_OutsideWest_Text_MonWithLongTailInFrontier: @ 823E5A5 +BattleFrontier_OutsideWest_Text_MonWithLongTailInFrontier: .string "I heard a rumor that someone saw\n" .string "a POKéMON with an unusually long tail\l" .string "somewhere in the BATTLE FRONTIER.\p" diff --git a/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc b/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc index 795c3fabeb..6479270503 100644 --- a/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc +++ b/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_NURSE, 1 -BattleFrontier_PokemonCenter_1F_MapScripts:: @ 82678F9 +BattleFrontier_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -BattleFrontier_PokemonCenter_1F_OnTransition: @ 8267904 +BattleFrontier_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST end -BattleFrontier_PokemonCenter_1F_EventScript_Nurse:: @ 8267908 +BattleFrontier_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -17,19 +17,19 @@ BattleFrontier_PokemonCenter_1F_EventScript_Nurse:: @ 8267908 release end -BattleFrontier_PokemonCenter_1F_EventScript_SchoolKid:: @ 8267916 +BattleFrontier_PokemonCenter_1F_EventScript_SchoolKid:: msgbox BattleFrontier_PokemonCenter_1F_Text_NeverSeenPokemon, MSGBOX_NPC end -BattleFrontier_PokemonCenter_1F_EventScript_Man:: @ 826791F +BattleFrontier_PokemonCenter_1F_EventScript_Man:: msgbox BattleFrontier_PokemonCenter_1F_Text_NextStopBattleArena, MSGBOX_NPC end -BattleFrontier_PokemonCenter_1F_EventScript_Picnicker:: @ 8267928 +BattleFrontier_PokemonCenter_1F_EventScript_Picnicker:: msgbox BattleFrontier_PokemonCenter_1F_Text_GoingThroughEveryChallenge, MSGBOX_NPC end -BattleFrontier_PokemonCenter_1F_EventScript_Skitty:: @ 8267931 +BattleFrontier_PokemonCenter_1F_EventScript_Skitty:: lock faceplayer waitse @@ -39,7 +39,7 @@ BattleFrontier_PokemonCenter_1F_EventScript_Skitty:: @ 8267931 release end -BattleFrontier_PokemonCenter_1F_Text_NeverSeenPokemon: @ 8267944 +BattleFrontier_PokemonCenter_1F_Text_NeverSeenPokemon: .string "There was someone here using a \n" .string "POKéMON I've never seen before.\p" .string "I never learned about it at\n" @@ -47,15 +47,15 @@ BattleFrontier_PokemonCenter_1F_Text_NeverSeenPokemon: @ 8267944 .string "I wonder where you can catch POKéMON\n" .string "like that.$" -BattleFrontier_PokemonCenter_1F_Text_NextStopBattleArena: @ 82679EB +BattleFrontier_PokemonCenter_1F_Text_NextStopBattleArena: .string "Okay! Next stop, the BATTLE ARENA!\n" .string "I'd better get the right POKéMON from\l" .string "the PC Storage System.$" -BattleFrontier_PokemonCenter_1F_Text_GoingThroughEveryChallenge: @ 8267A4B +BattleFrontier_PokemonCenter_1F_Text_GoingThroughEveryChallenge: .string "Giggle… I'm going to go through every\n" .string "challenge with just this baby!$" -BattleFrontier_PokemonCenter_1F_Text_Skitty: @ 8267A90 +BattleFrontier_PokemonCenter_1F_Text_Skitty: .string "SKITTY: Mya myaaah!$" diff --git a/data/maps/BattleFrontier_PokemonCenter_2F/scripts.inc b/data/maps/BattleFrontier_PokemonCenter_2F/scripts.inc index 5a19a9d284..6dc785e75e 100644 --- a/data/maps/BattleFrontier_PokemonCenter_2F/scripts.inc +++ b/data/maps/BattleFrontier_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -BattleFrontier_PokemonCenter_2F_MapScripts:: @ 8267AA4 +BattleFrontier_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ BattleFrontier_PokemonCenter_2F_MapScripts:: @ 8267AA4 .byte 0 @ The below 3 are unused and leftover from RS -BattleFrontier_PokemonCenter_2F_EventScript_Colosseum:: @ 8267AB9 +BattleFrontier_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -BattleFrontier_PokemonCenter_2F_EventScript_TradeCenter:: @ 8267ABF +BattleFrontier_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -BattleFrontier_PokemonCenter_2F_EventScript_RecordCorner:: @ 8267AC5 +BattleFrontier_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/BattleFrontier_RankingHall/scripts.inc b/data/maps/BattleFrontier_RankingHall/scripts.inc index e8415c8286..20b2b21c1e 100644 --- a/data/maps/BattleFrontier_RankingHall/scripts.inc +++ b/data/maps/BattleFrontier_RankingHall/scripts.inc @@ -1,67 +1,67 @@ -BattleFrontier_RankingHall_MapScripts:: @ 825E4A9 +BattleFrontier_RankingHall_MapScripts:: .byte 0 -BattleFrontier_RankingHall_EventScript_TowerSinglesRecords:: @ 825E4AA +BattleFrontier_RankingHall_EventScript_TowerSinglesRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_TOWER_SINGLES goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_TowerDoublesRecords:: @ 825E4B6 +BattleFrontier_RankingHall_EventScript_TowerDoublesRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_TOWER_DOUBLES goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_TowerMultisRecords:: @ 825E4C2 +BattleFrontier_RankingHall_EventScript_TowerMultisRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_TOWER_MULTIS goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_TowerLinkRecords:: @ 825E4CE +BattleFrontier_RankingHall_EventScript_TowerLinkRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_TOWER_LINK goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_ArenaRecords:: @ 825E4DA +BattleFrontier_RankingHall_EventScript_ArenaRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_ARENA goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_PalaceRecords:: @ 825E4E6 +BattleFrontier_RankingHall_EventScript_PalaceRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_PALACE goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_FactoryRecords:: @ 825E4F2 +BattleFrontier_RankingHall_EventScript_FactoryRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_FACTORY goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_DomeRecords:: @ 825E4FE +BattleFrontier_RankingHall_EventScript_DomeRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_DOME goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_PikeRecords:: @ 825E50A +BattleFrontier_RankingHall_EventScript_PikeRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_PIKE goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_PyramidRecords:: @ 825E516 +BattleFrontier_RankingHall_EventScript_PyramidRecords:: lockall setvar VAR_0x8005, RANKING_HALL_BATTLE_PYRAMID goto BattleFrontier_RankingHall_EventScript_ShowRecords end -BattleFrontier_RankingHall_EventScript_ShowRecords:: @ 825E522 +BattleFrontier_RankingHall_EventScript_ShowRecords:: special ShowRankingHallRecordsWindow waitbuttonpress special ScrollRankingHallRecordsWindow @@ -70,19 +70,19 @@ BattleFrontier_RankingHall_EventScript_ShowRecords:: @ 825E522 releaseall end -BattleFrontier_RankingHall_EventScript_Attendant:: @ 825E52F +BattleFrontier_RankingHall_EventScript_Attendant:: msgbox BattleFrontier_RankingHall_Text_ExplainRankingHall, MSGBOX_NPC end -BattleFrontier_RankingHall_EventScript_DomePikeFactoryRecordsSign:: @ 825E538 +BattleFrontier_RankingHall_EventScript_DomePikeFactoryRecordsSign:: msgbox BattleFrontier_RankingHall_Text_DomePikeFactoryRecords, MSGBOX_SIGN end -BattleFrontier_RankingHall_EventScript_PalaceArenaPyramidRecordsSIgn:: @ 825E541 +BattleFrontier_RankingHall_EventScript_PalaceArenaPyramidRecordsSIgn:: msgbox BattleFrontier_RankingHall_Text_PalaceArenaPyramidRecords, MSGBOX_SIGN end -BattleFrontier_RankingHall_EventScript_NinjaBoy:: @ 825E54A +BattleFrontier_RankingHall_EventScript_NinjaBoy:: lock faceplayer msgbox BattleFrontier_RankingHall_Text_IsYourNameOnThisList, MSGBOX_YESNO @@ -92,42 +92,42 @@ BattleFrontier_RankingHall_EventScript_NinjaBoy:: @ 825E54A release end -BattleFrontier_RankingHall_EventScript_NinjaBoyNameOnList:: @ 825E569 +BattleFrontier_RankingHall_EventScript_NinjaBoyNameOnList:: msgbox BattleFrontier_RankingHall_Text_WowThatsSuper, MSGBOX_DEFAULT release end -BattleFrontier_RankingHall_EventScript_Boy:: @ 825E573 +BattleFrontier_RankingHall_EventScript_Boy:: msgbox BattleFrontier_RankingHall_Text_MyNamesNotUpThere, MSGBOX_NPC end -BattleFrontier_RankingHall_Text_ExplainRankingHall: @ 825E57C +BattleFrontier_RankingHall_Text_ExplainRankingHall: .string "This is the RANKING HALL.\p" .string "This is where we recognize the immortal\n" .string "TRAINERS who left great records in\l" .string "BATTLE FRONTIER events.$" -BattleFrontier_RankingHall_Text_DomePikeFactoryRecords: @ 825E5F9 +BattleFrontier_RankingHall_Text_DomePikeFactoryRecords: .string "BATTLE DOME, BATTLE PIKE,\n" .string "and BATTLE FACTORY Records$" -BattleFrontier_RankingHall_Text_PalaceArenaPyramidRecords: @ 825E62E +BattleFrontier_RankingHall_Text_PalaceArenaPyramidRecords: .string "BATTLE PALACE, BATTLE ARENA,\n" .string "and BATTLE PYRAMID Records$" -BattleFrontier_RankingHall_Text_IsYourNameOnThisList: @ 825E666 +BattleFrontier_RankingHall_Text_IsYourNameOnThisList: .string "Hi, is your name on this list?$" -BattleFrontier_RankingHall_Text_WowThatsSuper: @ 825E685 +BattleFrontier_RankingHall_Text_WowThatsSuper: .string "Wow, that's super!\n" .string "I'll have to try harder, too!$" -BattleFrontier_RankingHall_Text_WorkHarderIfYouSawFriendsName: @ 825E6B6 +BattleFrontier_RankingHall_Text_WorkHarderIfYouSawFriendsName: .string "Oh, is that right?\p" .string "If you saw your friend's name up here,\n" .string "I bet it would make you work harder!$" -BattleFrontier_RankingHall_Text_MyNamesNotUpThere: @ 825E715 +BattleFrontier_RankingHall_Text_MyNamesNotUpThere: .string "Hmm…\n" .string "My name's not up there…\p" .string "Well, it's only natural since I haven't\n" diff --git a/data/maps/BattleFrontier_ReceptionGate/scripts.inc b/data/maps/BattleFrontier_ReceptionGate/scripts.inc index 28f53de086..410eb747d7 100644 --- a/data/maps/BattleFrontier_ReceptionGate/scripts.inc +++ b/data/maps/BattleFrontier_ReceptionGate/scripts.inc @@ -2,20 +2,20 @@ .set LOCALID_GUIDE, 2 .set LOCALID_SCOTT, 4 -BattleFrontier_ReceptionGate_MapScripts:: @ 82661DA +BattleFrontier_ReceptionGate_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_ReceptionGate_OnFrame map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_ReceptionGate_OnTransition .byte 0 -BattleFrontier_ReceptionGate_OnTransition: @ 82661E5 +BattleFrontier_ReceptionGate_OnTransition: setflag FLAG_LANDMARK_BATTLE_FRONTIER end -BattleFrontier_ReceptionGate_OnFrame: @ 82661E9 +BattleFrontier_ReceptionGate_OnFrame: map_script_2 VAR_HAS_ENTERED_BATTLE_FRONTIER, 0, BattleFrontier_ReceptionGate_EventScript_FirstTimeEntering .2byte 0 -BattleFrontier_ReceptionGate_EventScript_FirstTimeEntering:: @ 82661F3 +BattleFrontier_ReceptionGate_EventScript_FirstTimeEntering:: lockall setvar VAR_HAS_ENTERED_BATTLE_FRONTIER, 1 playse SE_PIN @@ -30,7 +30,7 @@ BattleFrontier_ReceptionGate_EventScript_FirstTimeEntering:: @ 82661F3 goto BattleFrontier_ReceptionGate_EventScript_ScottScene end -BattleFrontier_ReceptionGate_EventScript_ScottScene:: @ 8266229 +BattleFrontier_ReceptionGate_EventScript_ScottScene:: msgbox BattleFrontier_ReceptionGate_Text_WelcomeToBattleFrontier, MSGBOX_DEFAULT msgbox BattleFrontier_ReceptionGate_Text_IssueFrontierPass, MSGBOX_DEFAULT playfanfare MUS_OBTAIN_ITEM @@ -66,14 +66,14 @@ BattleFrontier_ReceptionGate_EventScript_ScottScene:: @ 8266229 releaseall end -BattleFrontier_ReceptionGate_Movement_PlayerApproachCounter: @ 82662D2 +BattleFrontier_ReceptionGate_Movement_PlayerApproachCounter: walk_up walk_up walk_left walk_left step_end -BattleFrontier_ReceptionGate_Movement_PlayerFaceScott: @ 82662D7 +BattleFrontier_ReceptionGate_Movement_PlayerFaceScott: delay_16 delay_16 delay_16 @@ -82,12 +82,12 @@ BattleFrontier_ReceptionGate_Movement_PlayerFaceScott: @ 82662D7 step_end @ Unused -BattleFrontier_ReceptionGate_Movement_WalkDown: @ 82662DD +BattleFrontier_ReceptionGate_Movement_WalkDown: walk_down walk_down step_end -BattleFrontier_ReceptionGate_Movement_ScottEnter: @ 82662E0 +BattleFrontier_ReceptionGate_Movement_ScottEnter: walk_down walk_down walk_down @@ -97,7 +97,7 @@ BattleFrontier_ReceptionGate_Movement_ScottEnter: @ 82662E0 walk_left step_end -BattleFrontier_ReceptionGate_Movement_ScottExit: @ 82662E8 +BattleFrontier_ReceptionGate_Movement_ScottExit: walk_right walk_up walk_up @@ -107,7 +107,7 @@ BattleFrontier_ReceptionGate_Movement_ScottExit: @ 82662E8 walk_up step_end -BattleFrontier_ReceptionGate_Movement_GreeterFaceScott: @ 82662F0 +BattleFrontier_ReceptionGate_Movement_GreeterFaceScott: delay_16 delay_16 delay_16 @@ -115,7 +115,7 @@ BattleFrontier_ReceptionGate_Movement_GreeterFaceScott: @ 82662F0 walk_in_place_fastest_right step_end -BattleFrontier_ReceptionGate_Movement_FacilityGuideFaceScott: @ 82662F6 +BattleFrontier_ReceptionGate_Movement_FacilityGuideFaceScott: delay_16 delay_16 delay_16 @@ -123,7 +123,7 @@ BattleFrontier_ReceptionGate_Movement_FacilityGuideFaceScott: @ 82662F6 walk_in_place_fastest_left step_end -BattleFrontier_ReceptionGate_EventScript_Greeter:: @ 82662FC +BattleFrontier_ReceptionGate_EventScript_Greeter:: lock faceplayer msgbox BattleFrontier_ReceptionGate_Text_WelcomeToBattleFrontier, MSGBOX_DEFAULT @@ -131,14 +131,14 @@ BattleFrontier_ReceptionGate_EventScript_Greeter:: @ 82662FC release end -BattleFrontier_ReceptionGate_EventScript_FacilityGuide:: @ 8266310 +BattleFrontier_ReceptionGate_EventScript_FacilityGuide:: lock faceplayer msgbox BattleFrontier_ReceptionGate_Text_YourGuideToFacilities, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout:: @ 8266320 +BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout:: message BattleFrontier_ReceptionGate_Text_LearnAboutWhich2 waitmessage setvar VAR_0x8004, SCROLL_MULTI_BF_RECEPTIONIST @@ -158,67 +158,67 @@ BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout:: @ 8266320 case MULTI_B_PRESSED, BattleFrontier_ReceptionGate_EventScript_ExitFacilityGuide end -BattleFrontier_ReceptionGate_EventScript_BattleTower:: @ 82663AE +BattleFrontier_ReceptionGate_EventScript_BattleTower:: msgbox BattleFrontier_ReceptionGate_Text_BattleTowerInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_BattleDome:: @ 82663BC +BattleFrontier_ReceptionGate_EventScript_BattleDome:: msgbox BattleFrontier_ReceptionGate_Text_BattleDomeInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_BattlePalace:: @ 82663CA +BattleFrontier_ReceptionGate_EventScript_BattlePalace:: msgbox BattleFrontier_ReceptionGate_Text_BattlePalaceInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_BattleArena:: @ 82663D8 +BattleFrontier_ReceptionGate_EventScript_BattleArena:: msgbox BattleFrontier_ReceptionGate_Text_BattleArenaInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_BattleFactory:: @ 82663E6 +BattleFrontier_ReceptionGate_EventScript_BattleFactory:: msgbox BattleFrontier_ReceptionGate_Text_BattleFactoryInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_BattlePike:: @ 82663F4 +BattleFrontier_ReceptionGate_EventScript_BattlePike:: msgbox BattleFrontier_ReceptionGate_Text_BattlePikeInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_BattlePyramid:: @ 8266402 +BattleFrontier_ReceptionGate_EventScript_BattlePyramid:: msgbox BattleFrontier_ReceptionGate_Text_BattlePyramidInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_RankingHall:: @ 8266410 +BattleFrontier_ReceptionGate_EventScript_RankingHall:: msgbox BattleFrontier_ReceptionGate_Text_RankingHallInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_ExchangeCorner:: @ 826641E +BattleFrontier_ReceptionGate_EventScript_ExchangeCorner:: msgbox BattleFrontier_ReceptionGate_Text_ExchangeCornerInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFacilityToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_ExitFacilityGuide:: @ 826642C +BattleFrontier_ReceptionGate_EventScript_ExitFacilityGuide:: msgbox BattleFrontier_ReceptionGate_Text_EnjoyBattleFrontier, MSGBOX_DEFAULT release end -BattleFrontier_ReceptionGate_EventScript_RulesGuide:: @ 8266436 +BattleFrontier_ReceptionGate_EventScript_RulesGuide:: lock faceplayer msgbox BattleFrontier_ReceptionGate_Text_YourGuideToRules, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout:: @ 8266446 +BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout:: message BattleFrontier_ReceptionGate_Text_LearnAboutWhat waitmessage - multichoice 15, 0, MULTI_FRONTIER_RULES, 0 + multichoice 15, 0, MULTI_FRONTIER_RULES, FALSE switch VAR_RESULT case 0, BattleFrontier_ReceptionGate_EventScript_LevelMode case 1, BattleFrontier_ReceptionGate_EventScript_Level50 @@ -229,47 +229,47 @@ BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout:: @ 8266446 case MULTI_B_PRESSED, BattleFrontier_ReceptionGate_EventScript_ExitRulesGuide end -BattleFrontier_ReceptionGate_EventScript_LevelMode:: @ 82664A4 +BattleFrontier_ReceptionGate_EventScript_LevelMode:: msgbox BattleFrontier_ReceptionGate_Text_LevelModeInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_Level50:: @ 82664B2 +BattleFrontier_ReceptionGate_EventScript_Level50:: msgbox BattleFrontier_ReceptionGate_Text_Level50Info, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_OpenLevel:: @ 82664C0 +BattleFrontier_ReceptionGate_EventScript_OpenLevel:: msgbox BattleFrontier_ReceptionGate_Text_OpenLevelInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_MonEntry:: @ 82664CE +BattleFrontier_ReceptionGate_EventScript_MonEntry:: msgbox BattleFrontier_ReceptionGate_Text_MonEntryInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_HoldItems:: @ 82664DC +BattleFrontier_ReceptionGate_EventScript_HoldItems:: msgbox BattleFrontier_ReceptionGate_Text_HoldItemsInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseRuleToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_ExitRulesGuide:: @ 82664EA +BattleFrontier_ReceptionGate_EventScript_ExitRulesGuide:: msgbox BattleFrontier_ReceptionGate_Text_EnjoyBattleFrontier, MSGBOX_DEFAULT release end -BattleFrontier_ReceptionGate_EventScript_FrontierPassGuide:: @ 82664F4 +BattleFrontier_ReceptionGate_EventScript_FrontierPassGuide:: lock faceplayer msgbox BattleFrontier_ReceptionGate_Text_YourGuideToFrontierPass, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFrontierPassInfoToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_ChooseFrontierPassInfoToLearnAbout:: @ 8266504 +BattleFrontier_ReceptionGate_EventScript_ChooseFrontierPassInfoToLearnAbout:: message BattleFrontier_ReceptionGate_Text_LearnAboutWhich1 waitmessage - multichoice 16, 4, MULTI_FRONTIER_PASS_INFO, 0 + multichoice 16, 4, MULTI_FRONTIER_PASS_INFO, FALSE switch VAR_RESULT case 0, BattleFrontier_ReceptionGate_EventScript_Symbols case 1, BattleFrontier_ReceptionGate_EventScript_RecordBattle @@ -278,62 +278,62 @@ BattleFrontier_ReceptionGate_EventScript_ChooseFrontierPassInfoToLearnAbout:: @ case MULTI_B_PRESSED, BattleFrontier_ReceptionGate_EventScript_ExitFrontierPassGuide end -BattleFrontier_ReceptionGate_EventScript_Symbols:: @ 826654C +BattleFrontier_ReceptionGate_EventScript_Symbols:: msgbox BattleFrontier_ReceptionGate_Text_SymbolsInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFrontierPassInfoToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_RecordBattle:: @ 826655A +BattleFrontier_ReceptionGate_EventScript_RecordBattle:: msgbox BattleFrontier_ReceptionGate_Text_RecordedBattleInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFrontierPassInfoToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_BattlePoints:: @ 8266568 +BattleFrontier_ReceptionGate_EventScript_BattlePoints:: msgbox BattleFrontier_ReceptionGate_Text_BattlePointsInfo, MSGBOX_DEFAULT goto BattleFrontier_ReceptionGate_EventScript_ChooseFrontierPassInfoToLearnAbout end -BattleFrontier_ReceptionGate_EventScript_ExitFrontierPassGuide:: @ 8266576 +BattleFrontier_ReceptionGate_EventScript_ExitFrontierPassGuide:: msgbox BattleFrontier_ReceptionGate_Text_EnjoyBattleFrontier, MSGBOX_DEFAULT release end -BattleFrontier_ReceptionGate_Text_FirstTimeHereThisWay: @ 8266580 +BattleFrontier_ReceptionGate_Text_FirstTimeHereThisWay: .string "Is it your first time here?\n" .string "Please step this way!$" -BattleFrontier_ReceptionGate_Text_WelcomeToBattleFrontier: @ 82665B2 +BattleFrontier_ReceptionGate_Text_WelcomeToBattleFrontier: .string "The front lines of POKéMON battling!\n" .string "Welcome to the BATTLE FRONTIER!$" -BattleFrontier_ReceptionGate_Text_IssueFrontierPass: @ 82665F7 +BattleFrontier_ReceptionGate_Text_IssueFrontierPass: .string "For a first-time visitor, we issue\n" .string "the FRONTIER PASS.\p" .string "It's for use at all the facilities\n" .string "in the BATTLE FRONTIER.\p" .string "Here you are!$" -BattleFrontier_ReceptionGate_Text_ObtainedFrontierPass: @ 8266676 +BattleFrontier_ReceptionGate_Text_ObtainedFrontierPass: .string "{PLAYER} obtained\n" .string "the FRONTIER PASS.$" -BattleFrontier_ReceptionGate_Text_PlacedTrainerCardInFrontierPass: @ 8266695 +BattleFrontier_ReceptionGate_Text_PlacedTrainerCardInFrontierPass: .string "{PLAYER} placed the TRAINER CARD\n" .string "in the FRONTIER PASS.$" -BattleFrontier_ReceptionGate_Text_EnjoyBattleFrontier: @ 82666C6 +BattleFrontier_ReceptionGate_Text_EnjoyBattleFrontier: .string "We hope you enjoy all that the BATTLE\n" .string "FRONTIER has to offer!$" -BattleFrontier_ReceptionGate_Text_IfItIsntPlayerYouCame: @ 8266703 +BattleFrontier_ReceptionGate_Text_IfItIsntPlayerYouCame: .string "???: Well, if it isn't {PLAYER}{KUN}!\n" .string "You came out here!$" -BattleFrontier_ReceptionGate_Text_OhMrScottGoodDay: @ 8266733 +BattleFrontier_ReceptionGate_Text_OhMrScottGoodDay: .string "GUIDE: Oh! MR. SCOTT, sir!\n" .string "Good day to you, sir!$" -BattleFrontier_ReceptionGate_Text_ScottGreatToSeeYouHere: @ 8266764 +BattleFrontier_ReceptionGate_Text_ScottGreatToSeeYouHere: .string "SCOTT: It's great to see you here,\n" .string "it really is!\p" .string "I hope you'll take your time and\n" @@ -343,21 +343,21 @@ BattleFrontier_ReceptionGate_Text_ScottGreatToSeeYouHere: @ 8266764 .string "I also have my quarters here, so feel\n" .string "free to visit if you have time.$" -BattleFrontier_ReceptionGate_Text_YourGuideToFacilities: @ 8266857 +BattleFrontier_ReceptionGate_Text_YourGuideToFacilities: .string "I'm your guide to the various facilities\n" .string "here in the BATTLE FRONTIER.$" -BattleFrontier_ReceptionGate_Text_LearnAboutWhich2: @ 826689D +BattleFrontier_ReceptionGate_Text_LearnAboutWhich2: .string "Which would you like to learn about?$" -BattleFrontier_ReceptionGate_Text_BattleTowerInfo: @ 82668C2 +BattleFrontier_ReceptionGate_Text_BattleTowerInfo: .string "It is the gigantic tower considered\n" .string "to be the BATTLE FRONTIER's symbol.\p" .string "There are four kinds of BATTLE ROOMS\n" .string "in the tower for SINGLE, DOUBLE, MULTI,\l" .string "and LINK MULTI BATTLES.$" -BattleFrontier_ReceptionGate_Text_BattleDomeInfo: @ 826696F +BattleFrontier_ReceptionGate_Text_BattleDomeInfo: .string "The BATTLE DOME is the large building\n" .string "shaped like a huge egg.\p" .string "Events named Battle Tourneys are held\n" @@ -366,20 +366,20 @@ BattleFrontier_ReceptionGate_Text_BattleDomeInfo: @ 826696F .string "two courses--for SINGLE and DOUBLE\l" .string "BATTLES.$" -BattleFrontier_ReceptionGate_Text_BattlePalaceInfo: @ 8266A34 +BattleFrontier_ReceptionGate_Text_BattlePalaceInfo: .string "The BATTLE PALACE is the red building\n" .string "on the right of the BATTLE FRONTIER.\p" .string "There are two kinds of BATTLE HALLS\n" .string "for SINGLE and DOUBLE BATTLES.$" -BattleFrontier_ReceptionGate_Text_BattleArenaInfo: @ 8266AC2 +BattleFrontier_ReceptionGate_Text_BattleArenaInfo: .string "The BATTLE ARENA is the dojo-like\n" .string "building at the center-right of\l" .string "the BATTLE FRONTIER.\p" .string "An event called the Set KO Tourney\n" .string "takes place at the BATTLE ARENA.$" -BattleFrontier_ReceptionGate_Text_BattleFactoryInfo: @ 8266B5D +BattleFrontier_ReceptionGate_Text_BattleFactoryInfo: .string "The BATTLE FACTORY is the large\n" .string "building that is the closest to us.\p" .string "An event called the Battle Swap\n" @@ -388,20 +388,20 @@ BattleFrontier_ReceptionGate_Text_BattleFactoryInfo: @ 8266B5D .string "two courses for SINGLE and DOUBLE\l" .string "BATTLES.$" -BattleFrontier_ReceptionGate_Text_BattlePikeInfo: @ 8266C24 +BattleFrontier_ReceptionGate_Text_BattlePikeInfo: .string "The BATTLE PIKE is the building shaped\n" .string "like a POKéMON at the center-left of\l" .string "the BATTLE FRONTIER.\p" .string "An event called the Battle Choice\n" .string "is conducted there.$" -BattleFrontier_ReceptionGate_Text_BattlePyramidInfo: @ 8266CBB +BattleFrontier_ReceptionGate_Text_BattlePyramidInfo: .string "The BATTLE PYRAMID is the enormous\n" .string "pyramid.\p" .string "An event called the Battle Quest\n" .string "is conducted there.$" -BattleFrontier_ReceptionGate_Text_RankingHallInfo: @ 8266D1C +BattleFrontier_ReceptionGate_Text_RankingHallInfo: .string "The RANKING HALL is located near\n" .string "the BATTLE TOWER.\p" .string "There, you may see the most fantastic\n" @@ -409,28 +409,28 @@ BattleFrontier_ReceptionGate_Text_RankingHallInfo: @ 8266D1C .string "took on the many challenges of\l" .string "the BATTLE FRONTIER.$" -BattleFrontier_ReceptionGate_Text_ExchangeCornerInfo: @ 8266DCB +BattleFrontier_ReceptionGate_Text_ExchangeCornerInfo: .string "The EXCHANGE SERVICE CORNER is near\n" .string "the BATTLE TOWER.\p" .string "The Battle Points you have earned in\n" .string "the BATTLE FRONTIER may be exchanged\l" .string "for fabulous prizes there.$" -BattleFrontier_ReceptionGate_Text_YourGuideToRules: @ 8266E66 +BattleFrontier_ReceptionGate_Text_YourGuideToRules: .string "I'm your guide to the basic rules that\n" .string "are common to all the challenges\l" .string "offered by the facilities in the BATTLE\l" .string "FRONTIER.$" -BattleFrontier_ReceptionGate_Text_LearnAboutWhat: @ 8266EE0 +BattleFrontier_ReceptionGate_Text_LearnAboutWhat: .string "What would you like to learn about?$" -BattleFrontier_ReceptionGate_Text_LevelModeInfo: @ 8266F04 +BattleFrontier_ReceptionGate_Text_LevelModeInfo: .string "All the challenges at the BATTLE\n" .string "FRONTIER's facilities come in\l" .string "two courses--Level 50 and Open Level.$" -BattleFrontier_ReceptionGate_Text_Level50Info: @ 8266F69 +BattleFrontier_ReceptionGate_Text_Level50Info: .string "The Level 50 course is open to POKéMON\n" .string "up to and including Level 50.\p" .string "Please keep in mind, however, that\n" @@ -441,7 +441,7 @@ BattleFrontier_ReceptionGate_Text_Level50Info: @ 8266F69 .string "To begin, we hope you will challenge\n" .string "this course.$" -BattleFrontier_ReceptionGate_Text_OpenLevelInfo: @ 8267080 +BattleFrontier_ReceptionGate_Text_OpenLevelInfo: .string "The Open Level course places no limit\n" .string "on the levels of POKéMON entering\l" .string "challenges.\p" @@ -451,7 +451,7 @@ BattleFrontier_ReceptionGate_Text_OpenLevelInfo: @ 8267080 .string "However, no TRAINER you face will\n" .string "have any POKéMON below Level 60.$" -BattleFrontier_ReceptionGate_Text_MonEntryInfo: @ 826716A +BattleFrontier_ReceptionGate_Text_MonEntryInfo: .string "Virtually any kind of POKéMON may take\n" .string "on the challenges at all facilities.\p" .string "EGGS and certain kinds of POKéMON,\n" @@ -462,7 +462,7 @@ BattleFrontier_ReceptionGate_Text_MonEntryInfo: @ 826716A .string "of the same kind of POKéMON are not\l" .string "permitted.$" -BattleFrontier_ReceptionGate_Text_HoldItemsInfo: @ 8267298 +BattleFrontier_ReceptionGate_Text_HoldItemsInfo: .string "When entering a challenge at a BATTLE\n" .string "FRONTIER facility, POKéMON may not\l" .string "be holding the same kind of item.\p" @@ -470,13 +470,13 @@ BattleFrontier_ReceptionGate_Text_HoldItemsInfo: @ 8267298 .string "entering a challenge are holding\l" .string "different items.$" -BattleFrontier_ReceptionGate_Text_YourGuideToFrontierPass: @ 8267357 +BattleFrontier_ReceptionGate_Text_YourGuideToFrontierPass: .string "I'm your guide to the FRONTIER PASS.$" -BattleFrontier_ReceptionGate_Text_LearnAboutWhich1: @ 826737C +BattleFrontier_ReceptionGate_Text_LearnAboutWhich1: .string "Which would you like to learn about?$" -BattleFrontier_ReceptionGate_Text_SymbolsInfo: @ 82673A1 +BattleFrontier_ReceptionGate_Text_SymbolsInfo: .string "There are seven facilities at\n" .string "the BATTLE FRONTIER.\p" .string "TRAINERS who gain recognition for\n" @@ -488,7 +488,7 @@ BattleFrontier_ReceptionGate_Text_SymbolsInfo: @ 82673A1 .string "It's certainly not easy to win symbols.\n" .string "I wish you the best of luck!$" -BattleFrontier_ReceptionGate_Text_RecordedBattleInfo: @ 82674F3 +BattleFrontier_ReceptionGate_Text_RecordedBattleInfo: .string "It is possible to record one battle\n" .string "on your FRONTIER PASS.\p" .string "You may record a battle you had with\n" @@ -500,7 +500,7 @@ BattleFrontier_ReceptionGate_Text_RecordedBattleInfo: @ 82674F3 .string "You may choose to record your match\n" .string "at the end of a battle.$" -BattleFrontier_ReceptionGate_Text_BattlePointsInfo: @ 826761C +BattleFrontier_ReceptionGate_Text_BattlePointsInfo: .string "Battle Points are rewards given to\n" .string "TRAINERS who battled outstandingly\l" .string "at the BATTLE FRONTIER.\p" diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc index ece1577b4e..5c793517ee 100644 --- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc +++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_SCOTT, 1 -BattleFrontier_ScottsHouse_MapScripts:: @ 82636A7 +BattleFrontier_ScottsHouse_MapScripts:: .byte 0 -BattleFrontier_ScottsHouse_EventScript_Scott:: @ 82636A8 +BattleFrontier_ScottsHouse_EventScript_Scott:: lock faceplayer goto_if_set FLAG_TEMP_4, BattleFrontier_ScottsHouse_EventScript_GivenBerry @@ -12,20 +12,20 @@ BattleFrontier_ScottsHouse_EventScript_Scott:: @ 82636A8 goto BattleFrontier_ScottsHouse_EventScript_CheckGiveItems end -BattleFrontier_ScottsHouse_EventScript_CheckGiveItems:: @ 82636CB +BattleFrontier_ScottsHouse_EventScript_CheckGiveItems:: goto_if_unset FLAG_SCOTT_GIVES_BATTLE_POINTS, BattleFrontier_ScottsHouse_EventScript_WelcomeToFrontier goto_if_unset FLAG_COLLECTED_ALL_SILVER_SYMBOLS, BattleFrontier_ScottsHouse_EventScript_CheckSilverSymbols goto_if_unset FLAG_COLLECTED_ALL_GOLD_SYMBOLS, BattleFrontier_ScottsHouse_EventScript_CheckGoldSymbols goto BattleFrontier_ScottsHouse_EventScript_CheckGiveShield end -BattleFrontier_ScottsHouse_EventScript_CheckGiveShield:: @ 82636EC +BattleFrontier_ScottsHouse_EventScript_CheckGiveShield:: goto_if_unset FLAG_RECEIVED_SILVER_SHIELD, BattleFrontier_ScottsHouse_EventScript_CheckGiveSilverShield goto_if_unset FLAG_RECEIVED_GOLD_SHIELD, BattleFrontier_ScottsHouse_EventScript_CheckGiveGoldShield goto BattleFrontier_ScottsHouse_EventScript_RandomComment end -BattleFrontier_ScottsHouse_EventScript_CheckSilverSymbols:: @ 8263704 +BattleFrontier_ScottsHouse_EventScript_CheckSilverSymbols:: goto_if_unset FLAG_SYS_TOWER_SILVER, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield goto_if_unset FLAG_SYS_DOME_SILVER, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield goto_if_unset FLAG_SYS_PALACE_SILVER, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield @@ -42,7 +42,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckSilverSymbols:: @ 8263704 release end -BattleFrontier_ScottsHouse_EventScript_CheckGoldSymbols:: @ 826376A +BattleFrontier_ScottsHouse_EventScript_CheckGoldSymbols:: goto_if_unset FLAG_SYS_TOWER_GOLD, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield goto_if_unset FLAG_SYS_DOME_GOLD, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield goto_if_unset FLAG_SYS_PALACE_GOLD, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield @@ -59,17 +59,17 @@ BattleFrontier_ScottsHouse_EventScript_CheckGoldSymbols:: @ 826376A release end -BattleFrontier_ScottsHouse_EventScript_BerryPocketFull:: @ 82637D0 +BattleFrontier_ScottsHouse_EventScript_BerryPocketFull:: msgbox BattleFrontier_ScottsHouse_Text_BerryPocketStuffed, MSGBOX_DEFAULT release end -BattleFrontier_ScottsHouse_EventScript_GivenBerry:: @ 82637DA +BattleFrontier_ScottsHouse_EventScript_GivenBerry:: msgbox BattleFrontier_ScottsHouse_Text_SoGladIBroughtYouHere, MSGBOX_DEFAULT release end -BattleFrontier_ScottsHouse_EventScript_RandomComment:: @ 82637E4 +BattleFrontier_ScottsHouse_EventScript_RandomComment:: random 3 compare VAR_RESULT, 1 goto_if_eq BattleFrontier_ScottsHouse_EventScript_FrontierBrainComment @@ -79,17 +79,17 @@ BattleFrontier_ScottsHouse_EventScript_RandomComment:: @ 82637E4 release end -BattleFrontier_ScottsHouse_EventScript_FrontierBrainComment:: @ 8263807 +BattleFrontier_ScottsHouse_EventScript_FrontierBrainComment:: msgbox BattleFrontier_ScottsHouse_Text_HaveYouMetFrontierBrain, MSGBOX_DEFAULT release end -BattleFrontier_ScottsHouse_EventScript_ArtisanCaveComment:: @ 8263811 +BattleFrontier_ScottsHouse_EventScript_ArtisanCaveComment:: msgbox BattleFrontier_ScottsHouse_Text_MayFindWildMonsInFrontier, MSGBOX_DEFAULT release end -BattleFrontier_ScottsHouse_EventScript_CheckGiveSilverShield:: @ 826381B +BattleFrontier_ScottsHouse_EventScript_CheckGiveSilverShield:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 tower_get TOWER_DATA_WIN_STREAK @@ -102,7 +102,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckGiveSilverShield:: @ 826381B goto BattleFrontier_ScottsHouse_EventScript_RandomComment end -BattleFrontier_ScottsHouse_EventScript_GiveSilverShield:: @ 826387A +BattleFrontier_ScottsHouse_EventScript_GiveSilverShield:: msgbox BattleFrontier_ScottsHouse_Text_Beat50TrainersInARow, MSGBOX_DEFAULT givedecoration DECOR_SILVER_SHIELD compare VAR_RESULT, FALSE @@ -112,17 +112,17 @@ BattleFrontier_ScottsHouse_EventScript_GiveSilverShield:: @ 826387A goto BattleFrontier_ScottsHouse_EventScript_GivenShield end -BattleFrontier_ScottsHouse_EventScript_NoRoomForShield:: @ 82638A0 +BattleFrontier_ScottsHouse_EventScript_NoRoomForShield:: msgbox BattleFrontier_ScottsHouse_Text_ComeBackForThisLater, MSGBOX_DEFAULT release end -BattleFrontier_ScottsHouse_EventScript_GivenShield:: @ 82638AA +BattleFrontier_ScottsHouse_EventScript_GivenShield:: msgbox BattleFrontier_ScottsHouse_Text_ExpectingToHearEvenGreaterThings, MSGBOX_DEFAULT release end -BattleFrontier_ScottsHouse_EventScript_CheckGiveGoldShield:: @ 82638B4 +BattleFrontier_ScottsHouse_EventScript_CheckGiveGoldShield:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 tower_get TOWER_DATA_WIN_STREAK @@ -135,7 +135,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckGiveGoldShield:: @ 82638B4 goto BattleFrontier_ScottsHouse_EventScript_RandomComment end -BattleFrontier_ScottsHouse_EventScript_GiveGoldShield:: @ 8263913 +BattleFrontier_ScottsHouse_EventScript_GiveGoldShield:: msgbox BattleFrontier_ScottsHouse_Text_Beat100TrainersInARow, MSGBOX_DEFAULT givedecoration DECOR_GOLD_SHIELD compare VAR_RESULT, FALSE @@ -145,12 +145,12 @@ BattleFrontier_ScottsHouse_EventScript_GiveGoldShield:: @ 8263913 goto BattleFrontier_ScottsHouse_EventScript_GivenShield end -BattleFrontier_ScottsHouse_EventScript_GivenBattlePoints:: @ 8263939 +BattleFrontier_ScottsHouse_EventScript_GivenBattlePoints:: msgbox BattleFrontier_ScottsHouse_Text_ExpectingGreatThings, MSGBOX_DEFAULT release end -BattleFrontier_ScottsHouse_EventScript_WelcomeToFrontier:: @ 8263943 +BattleFrontier_ScottsHouse_EventScript_WelcomeToFrontier:: msgbox BattleFrontier_ScottsHouse_Text_WelcomeToBattleFrontier, MSGBOX_DEFAULT closemessage delay 30 @@ -175,31 +175,31 @@ BattleFrontier_ScottsHouse_EventScript_WelcomeToFrontier:: @ 8263943 goto BattleFrontier_ScottsHouse_EventScript_Give1BattlePoint end -BattleFrontier_ScottsHouse_EventScript_Give4BattlePoints:: @ 82639BC +BattleFrontier_ScottsHouse_EventScript_Give4BattlePoints:: buffernumberstring 0, 4 setvar VAR_0x8004, 4 goto BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints end -BattleFrontier_ScottsHouse_EventScript_Give3BattlePoints:: @ 82639CB +BattleFrontier_ScottsHouse_EventScript_Give3BattlePoints:: buffernumberstring 0, 3 setvar VAR_0x8004, 3 goto BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints end -BattleFrontier_ScottsHouse_EventScript_Give2BattlePoints:: @ 82639DA +BattleFrontier_ScottsHouse_EventScript_Give2BattlePoints:: buffernumberstring 0, 2 setvar VAR_0x8004, 2 goto BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints end -BattleFrontier_ScottsHouse_EventScript_Give1BattlePoint:: @ 82639E9 +BattleFrontier_ScottsHouse_EventScript_Give1BattlePoint:: buffernumberstring 0, 1 setvar VAR_0x8004, 1 goto BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints end -BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints:: @ 82639F8 +BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints:: special GiveFrontierBattlePoints msgbox BattleFrontier_ScottsHouse_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS msgbox BattleFrontier_ScottsHouse_Text_ExplainBattlePoints, MSGBOX_DEFAULT @@ -208,27 +208,27 @@ BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints:: @ 82639F8 release end -BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayNorth:: @ 8263A13 +BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayNorth:: applymovement LOCALID_SCOTT, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -BattleFrontier_ScottsHouse_EventScript_ScottFaceAwaySouth:: @ 8263A1E +BattleFrontier_ScottsHouse_EventScript_ScottFaceAwaySouth:: applymovement LOCALID_SCOTT, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayEast:: @ 8263A29 +BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayEast:: applymovement LOCALID_SCOTT, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayWest:: @ 8263A34 +BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayWest:: applymovement LOCALID_SCOTT, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -BattleFrontier_ScottsHouse_Text_WelcomeToBattleFrontier: @ 8263A3F +BattleFrontier_ScottsHouse_Text_WelcomeToBattleFrontier: .string "SCOTT: Well, hello and welcome!\n" .string "Heheh… Sorry about the cramped space.\p" .string "Anyway, {PLAYER}{KUN}, let me formally\n" @@ -237,7 +237,7 @@ BattleFrontier_ScottsHouse_Text_WelcomeToBattleFrontier: @ 8263A3F .string "It took me years and years, but I've\l" .string "finally given shape to my dream.$" -BattleFrontier_ScottsHouse_Text_HowMuchEffortItTookToMakeReal: @ 8263B29 +BattleFrontier_ScottsHouse_Text_HowMuchEffortItTookToMakeReal: .string "On reflection, it was a terribly long\n" .string "journey…\p" .string "I left home alone on a quest to find\n" @@ -245,7 +245,7 @@ BattleFrontier_ScottsHouse_Text_HowMuchEffortItTookToMakeReal: @ 8263B29 .string "No one can imagine how much effort\n" .string "or time it took to make this real.$" -BattleFrontier_ScottsHouse_Text_HaveThisAsMementoOfOurPathsCrossing: @ 8263BD4 +BattleFrontier_ScottsHouse_Text_HaveThisAsMementoOfOurPathsCrossing: .string "But that's all in the past.\n" .string "No point dwelling on that!\p" .string "All I want for you is to enjoy battling\n" @@ -254,11 +254,11 @@ BattleFrontier_ScottsHouse_Text_HaveThisAsMementoOfOurPathsCrossing: @ 8263BD4 .string "as a memento for all the time our\l" .string "paths crossed on our journeys.$" -BattleFrontier_ScottsHouse_Text_ObtainedXBattlePoints: @ 8263CB0 +BattleFrontier_ScottsHouse_Text_ObtainedXBattlePoints: .string "{PLAYER} obtained\n" .string "{STR_VAR_1} Battle Point(s).$" -BattleFrontier_ScottsHouse_Text_ExplainBattlePoints: @ 8263CD0 +BattleFrontier_ScottsHouse_Text_ExplainBattlePoints: .string "SCOTT: You can check your Battle\n" .string "Points on your FRONTIER PASS.\p" .string "The more success you have here at\n" @@ -267,10 +267,10 @@ BattleFrontier_ScottsHouse_Text_ExplainBattlePoints: @ 8263CD0 .string "Use your Battle Points the way you\n" .string "see fit, like trading them for items.$" -BattleFrontier_ScottsHouse_Text_ExpectingGreatThings: @ 8263DB8 +BattleFrontier_ScottsHouse_Text_ExpectingGreatThings: .string "I'm expecting great things from you!$" -BattleFrontier_ScottsHouse_Text_WhyIGoSeekingTrainers: @ 8263DDD +BattleFrontier_ScottsHouse_Text_WhyIGoSeekingTrainers: .string "SCOTT: Every TRAINER is an individual.\n" .string "They all lead lives of their own.\p" .string "But when they're in a battle,\n" @@ -282,7 +282,7 @@ BattleFrontier_ScottsHouse_Text_WhyIGoSeekingTrainers: @ 8263DDD .string "TRAINERS who are serious about\l" .string "battling, and invite them here.$" -BattleFrontier_ScottsHouse_Text_HaveYouMetFrontierBrain: @ 8263F12 +BattleFrontier_ScottsHouse_Text_HaveYouMetFrontierBrain: .string "SCOTT: Have you met any of\n" .string "the FRONTIER BRAINS?\p" .string "Better yet, have you obtained any\n" @@ -292,7 +292,7 @@ BattleFrontier_ScottsHouse_Text_HaveYouMetFrontierBrain: @ 8263F12 .string "But I'm sure that seeing how tough\n" .string "you are will startle even them!$" -BattleFrontier_ScottsHouse_Text_MayFindWildMonsInFrontier: @ 8263FFE +BattleFrontier_ScottsHouse_Text_MayFindWildMonsInFrontier: .string "SCOTT: You don't just train for battle,\n" .string "right?\p" .string "I think I remember you working on\n" @@ -302,7 +302,7 @@ BattleFrontier_ScottsHouse_Text_MayFindWildMonsInFrontier: @ 8263FFE .string "the BATTLE FRONTIER somewhere…\l" .string "Fufufu!$" -BattleFrontier_ScottsHouse_Text_YouveCollectedAllSilverSymbols: @ 82640BC +BattleFrontier_ScottsHouse_Text_YouveCollectedAllSilverSymbols: .string "SCOTT: Are you enjoying things in\n" .string "the BATTLE FRONTIER?\p" .string "…Wait a second…\n" @@ -317,7 +317,7 @@ BattleFrontier_ScottsHouse_Text_YouveCollectedAllSilverSymbols: @ 82640BC .string "I want you to have this.\n" .string "I'm sure you can put it to proper use.$" -BattleFrontier_ScottsHouse_Text_YouveCollectedAllGoldSymbols: @ 8264216 +BattleFrontier_ScottsHouse_Text_YouveCollectedAllGoldSymbols: .string "SCOTT: I hope you're enjoying\n" .string "everything in the BATTLE FRONTIER.\p" .string "…Wait a second…\n" @@ -332,35 +332,35 @@ BattleFrontier_ScottsHouse_Text_YouveCollectedAllGoldSymbols: @ 8264216 .string "I think you will be able to\n" .string "appreciate the value of my gift!$" -BattleFrontier_ScottsHouse_Text_SoGladIBroughtYouHere: @ 8264373 +BattleFrontier_ScottsHouse_Text_SoGladIBroughtYouHere: .string "I must say I have the gift of knowing\n" .string "a good TRAINER when I see one.\p" .string "I'm so glad I had the foresight to\n" .string "bring you here!$" -BattleFrontier_ScottsHouse_Text_BerryPocketStuffed: @ 82643EB +BattleFrontier_ScottsHouse_Text_BerryPocketStuffed: .string "Your BERRY POCKET seems to\n" .string "be stuffed.$" -BattleFrontier_ScottsHouse_Text_Beat50TrainersInARow: @ 8264412 +BattleFrontier_ScottsHouse_Text_Beat50TrainersInARow: .string "SCOTT: Oh, I heard about you!\n" .string "How you ruled the BATTLE TOWER!\l" .string "You beat over 50 TRAINERS in a row?\p" .string "That's fantastic!\n" .string "I want you to have this!$" -BattleFrontier_ScottsHouse_Text_Beat100TrainersInARow: @ 826449F +BattleFrontier_ScottsHouse_Text_Beat100TrainersInARow: .string "SCOTT: Oh, my! I heard about you!\n" .string "How you overwhelmed the BATTLE TOWER!\l" .string "You beat over 100 TRAINERS in a row?\p" .string "That's ridiculously spectacular!\n" .string "You've got to have this!$" -BattleFrontier_ScottsHouse_Text_ExpectingToHearEvenGreaterThings: @ 8264546 +BattleFrontier_ScottsHouse_Text_ExpectingToHearEvenGreaterThings: .string "I'll be expecting to hear even greater\n" .string "things about you now!$" -BattleFrontier_ScottsHouse_Text_ComeBackForThisLater: @ 8264583 +BattleFrontier_ScottsHouse_Text_ComeBackForThisLater: .string "Oops, well, if you have too much\n" .string "stuff, come back for this later.$" diff --git a/data/maps/BattlePyramidSquare01/scripts.inc b/data/maps/BattlePyramidSquare01/scripts.inc index c547b1b81d..7a5db2fe2b 100644 --- a/data/maps/BattlePyramidSquare01/scripts.inc +++ b/data/maps/BattlePyramidSquare01/scripts.inc @@ -1,2 +1,2 @@ -BattlePyramidSquare01_MapScripts:: @ 823D1A5 +BattlePyramidSquare01_MapScripts:: .byte 0 diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index 16a1c74885..03463729cb 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -1,17 +1,18 @@ -.set LOCALID_DEOXYS_ROCK, 1 .set LOCALID_DEOXYS, 2 -BirthIsland_Exterior_MapScripts:: @ 8267F15 +@ Note: LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK is a local id for this map used elsewhere. It's defined in event_objects.h + +BirthIsland_Exterior_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, BirthIsland_Exterior_OnTransition map_script MAP_SCRIPT_ON_RESUME, BirthIsland_Exterior_OnResume map_script MAP_SCRIPT_ON_RETURN_TO_FIELD, BirthIsland_Exterior_OnReturnToField .byte 0 -BirthIsland_Exterior_OnReturnToField: @ 8267F25 +BirthIsland_Exterior_OnReturnToField: special SetDeoxysRockPalette end -BirthIsland_Exterior_OnTransition: @ 8267F29 +BirthIsland_Exterior_OnTransition: setflag FLAG_MAP_SCRIPT_CHECKED_DEOXYS setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL setvar VAR_DEOXYS_ROCK_STEP_COUNT, 0 @@ -20,29 +21,29 @@ BirthIsland_Exterior_OnTransition: @ 8267F29 call_if_unset FLAG_BATTLED_DEOXYS, BirthIsland_Exterior_EventScript_TryShowDeoxysPuzzle end -BirthIsland_Exterior_EventScript_HideDeoxysAndPuzzle:: @ 8267F4E +BirthIsland_Exterior_EventScript_HideDeoxysAndPuzzle:: setflag FLAG_HIDE_DEOXYS setflag FLAG_HIDE_BIRTH_ISLAND_DEOXYS_TRIANGLE return -BirthIsland_Exterior_EventScript_TryShowDeoxysPuzzle:: @ 8267F55 +BirthIsland_Exterior_EventScript_TryShowDeoxysPuzzle:: goto_if_set FLAG_DEFEATED_DEOXYS, Common_EventScript_NopReturn clearflag FLAG_HIDE_BIRTH_ISLAND_DEOXYS_TRIANGLE clearflag FLAG_DEOXYS_ROCK_COMPLETE return -BirthIsland_Exterior_OnResume: @ 8267F65 +BirthIsland_Exterior_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, BirthIsland_Exterior_EventScript_TryRemoveDeoxys end -BirthIsland_Exterior_EventScript_TryRemoveDeoxys:: @ 8267F6F +BirthIsland_Exterior_EventScript_TryRemoveDeoxys:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject LOCALID_DEOXYS return -BirthIsland_Exterior_EventScript_Triangle:: @ 8267F83 +BirthIsland_Exterior_EventScript_Triangle:: lock faceplayer special DoDeoxysRockInteraction @@ -54,25 +55,25 @@ BirthIsland_Exterior_EventScript_Triangle:: @ 8267F83 case 3, BirthIsland_Exterior_EventScript_NotSolved3 end -BirthIsland_Exterior_EventScript_NotSolved1:: @ 8267FBB +BirthIsland_Exterior_EventScript_NotSolved1:: release end -BirthIsland_Exterior_EventScript_NotSolved2:: @ 8267FBD +BirthIsland_Exterior_EventScript_NotSolved2:: release end -BirthIsland_Exterior_EventScript_NotSolved3:: @ 8267FBF +BirthIsland_Exterior_EventScript_NotSolved3:: release end -BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1 +BirthIsland_Exterior_EventScript_Deoxys:: waitse - setfieldeffectargument 0, LOCALID_DEOXYS_ROCK - setfieldeffectargument 1, 58 - setfieldeffectargument 2, 26 + setfieldeffectargument 0, LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK + setfieldeffectargument 1, MAP_NUM(BIRTH_ISLAND_EXTERIOR) + setfieldeffectargument 2, MAP_GROUP(BIRTH_ISLAND_EXTERIOR) dofieldeffect FLDEFF_DESTROY_DEOXYS_ROCK - playbgm MUS_RG_ENCOUNTER_DEOXYS, 0 + playbgm MUS_RG_ENCOUNTER_DEOXYS, FALSE waitfieldeffect FLDEFF_DESTROY_DEOXYS_ROCK addobject LOCALID_DEOXYS applymovement LOCALID_DEOXYS, BirthIsland_Exterior_Movement_DeoxysApproach @@ -85,7 +86,7 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1 setvar VAR_0x8004, SPECIES_DEOXYS setvar VAR_0x8005, 30 @ level setvar VAR_0x8006, ITEM_NONE - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate @@ -101,18 +102,18 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1 release end -BirthIsland_Exterior_EventScript_DefeatedDeoxys:: @ 826803B +BirthIsland_Exterior_EventScript_DefeatedDeoxys:: setflag FLAG_DEFEATED_DEOXYS setvar VAR_0x8004, SPECIES_DEOXYS goto Common_EventScript_LegendaryFlewAway end -BirthIsland_Exterior_EventScript_RanFromDeoxys:: @ 8268049 +BirthIsland_Exterior_EventScript_RanFromDeoxys:: setvar VAR_0x8004, SPECIES_DEOXYS goto Common_EventScript_LegendaryFlewAway end -BirthIsland_Exterior_Movement_DeoxysApproach: @ 8268054 +BirthIsland_Exterior_Movement_DeoxysApproach: walk_slow_down walk_slow_down walk_slow_down diff --git a/data/maps/BirthIsland_Harbor/scripts.inc b/data/maps/BirthIsland_Harbor/scripts.inc index b9274ee2f1..7ec88ae188 100644 --- a/data/maps/BirthIsland_Harbor/scripts.inc +++ b/data/maps/BirthIsland_Harbor/scripts.inc @@ -1,10 +1,10 @@ .set LOCALID_SAILOR, 1 .set LOCALID_SS_TIDAL, 2 -BirthIsland_Harbor_MapScripts:: @ 826805C +BirthIsland_Harbor_MapScripts:: .byte 0 -BirthIsland_Harbor_EventScript_Sailor:: @ 826805D +BirthIsland_Harbor_EventScript_Sailor:: lock faceplayer msgbox BirthIsland_Harbor_Text_SailorReturn, MSGBOX_YESNO @@ -23,7 +23,7 @@ BirthIsland_Harbor_EventScript_Sailor:: @ 826805D release end -BirthIsland_Harbor_EventScript_AsYouLike:: @ 82680A2 +BirthIsland_Harbor_EventScript_AsYouLike:: msgbox EventTicket_Text_AsYouLike, MSGBOX_DEFAULT release end diff --git a/data/maps/CaveOfOrigin_1F/scripts.inc b/data/maps/CaveOfOrigin_1F/scripts.inc index de1d979d43..fc18fa5254 100644 --- a/data/maps/CaveOfOrigin_1F/scripts.inc +++ b/data/maps/CaveOfOrigin_1F/scripts.inc @@ -1,7 +1,7 @@ -CaveOfOrigin_1F_MapScripts:: @ 8235768 +CaveOfOrigin_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, CaveOfOrigin_1F_OnTransition .byte 0 -CaveOfOrigin_1F_OnTransition: @ 823576E - call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_SetTempVars +CaveOfOrigin_1F_OnTransition: + call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_DisableTriggers end diff --git a/data/maps/CaveOfOrigin_B1F/scripts.inc b/data/maps/CaveOfOrigin_B1F/scripts.inc index db267aaaa3..511364cfa5 100644 --- a/data/maps/CaveOfOrigin_B1F/scripts.inc +++ b/data/maps/CaveOfOrigin_B1F/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_WALLACE, 1 -CaveOfOrigin_B1F_MapScripts:: @ 82357A8 +CaveOfOrigin_B1F_MapScripts:: .byte 0 -CaveOfOrigin_B1F_EventScript_Wallace:: @ 82357A9 +CaveOfOrigin_B1F_EventScript_Wallace:: lock faceplayer msgbox CaveOfOrigin_B1F_Text_WallaceStory, MSGBOX_DEFAULT @@ -23,8 +23,8 @@ CaveOfOrigin_B1F_EventScript_Wallace:: @ 82357A9 waitmessage goto CaveOfOrigin_B1F_EventScript_WheresRayquaza -CaveOfOrigin_B1F_EventScript_WheresRayquaza:: @ 82357F0 - multichoice 0, 0, MULTI_WHERES_RAYQUAZA, 0 +CaveOfOrigin_B1F_EventScript_WheresRayquaza:: + multichoice 0, 0, MULTI_WHERES_RAYQUAZA, FALSE switch VAR_RESULT case 0, CaveOfOrigin_B1F_EventScript_AtCaveOfOrigin case 1, CaveOfOrigin_B1F_EventScript_AtMtPyre @@ -33,22 +33,22 @@ CaveOfOrigin_B1F_EventScript_WheresRayquaza:: @ 82357F0 goto CaveOfOrigin_B1F_EventScript_DontRemember end -CaveOfOrigin_B1F_EventScript_AtCaveOfOrigin:: @ 823582C +CaveOfOrigin_B1F_EventScript_AtCaveOfOrigin:: message CaveOfOrigin_B1F_Text_ButWereInCaveOfOrigin waitmessage goto CaveOfOrigin_B1F_EventScript_WheresRayquaza -CaveOfOrigin_B1F_EventScript_AtMtPyre:: @ 8235837 +CaveOfOrigin_B1F_EventScript_AtMtPyre:: message CaveOfOrigin_B1F_Text_OldLadyDidntMentionThat waitmessage goto CaveOfOrigin_B1F_EventScript_WheresRayquaza -CaveOfOrigin_B1F_EventScript_DontRemember:: @ 8235842 +CaveOfOrigin_B1F_EventScript_DontRemember:: message CaveOfOrigin_B1F_Text_CantYouRememberSomehow waitmessage goto CaveOfOrigin_B1F_EventScript_WheresRayquaza -CaveOfOrigin_B1F_EventScript_AtSkyPillar:: @ 823584D +CaveOfOrigin_B1F_EventScript_AtSkyPillar:: msgbox CaveOfOrigin_B1F_Text_WellHeadToSkyPillar, MSGBOX_DEFAULT closemessage playse SE_EXIT @@ -61,7 +61,7 @@ CaveOfOrigin_B1F_EventScript_AtSkyPillar:: @ 823584D release end -CaveOfOrigin_B1F_Text_WallaceStory: @ 823586E +CaveOfOrigin_B1F_Text_WallaceStory: .string "Ah, so you are {PLAYER}{KUN}?\n" .string "I've heard tales of your exploits.\p" .string "My name is WALLACE.\p" @@ -85,19 +85,19 @@ CaveOfOrigin_B1F_Text_WallaceStory: @ 823586E .string "But even I have no clue as to\n" .string "RAYQUAZA's whereabouts…$" -CaveOfOrigin_B1F_Text_WhereIsRayquaza: @ 8235ACE +CaveOfOrigin_B1F_Text_WhereIsRayquaza: .string "WALLACE: {PLAYER}{KUN}, do you perhaps\n" .string "know where RAYQUAZA is now?\p" .string "If you do, please tell me.$" -CaveOfOrigin_B1F_Text_ButWereInCaveOfOrigin: @ 8235B23 +CaveOfOrigin_B1F_Text_ButWereInCaveOfOrigin: .string "WALLACE: The CAVE OF ORIGIN?\p" .string "But that's right here!\n" .string "I need you to do better than that!\p" .string "Please, I need you to think about\n" .string "where RAYQUAZA might be right now.$" -CaveOfOrigin_B1F_Text_OldLadyDidntMentionThat: @ 8235BBF +CaveOfOrigin_B1F_Text_OldLadyDidntMentionThat: .string "WALLACE: MT. PYRE?\p" .string "But when I met the old lady there\n" .string "earlier, she made no mention of it.\p" @@ -106,12 +106,12 @@ CaveOfOrigin_B1F_Text_OldLadyDidntMentionThat: @ 8235BBF .string "{PLAYER}{KUN}, could you think about this\n" .string "more carefully for me?$" -CaveOfOrigin_B1F_Text_CantYouRememberSomehow: @ 8235C99 +CaveOfOrigin_B1F_Text_CantYouRememberSomehow: .string "WALLACE: Huh? You don't remember?\n" .string "Hmm… That's a problem…\p" .string "Can't you remember somehow?$" -CaveOfOrigin_B1F_Text_WellHeadToSkyPillar: @ 8235CEE +CaveOfOrigin_B1F_Text_WellHeadToSkyPillar: .string "WALLACE: The SKY PILLAR?\p" .string "That's it!\n" .string "It must be the SKY PILLAR!\p" diff --git a/data/maps/CaveOfOrigin_Entrance/scripts.inc b/data/maps/CaveOfOrigin_Entrance/scripts.inc index 76cdbc7ad2..091246ae0d 100644 --- a/data/maps/CaveOfOrigin_Entrance/scripts.inc +++ b/data/maps/CaveOfOrigin_Entrance/scripts.inc @@ -1,8 +1,8 @@ -CaveOfOrigin_Entrance_MapScripts:: @ 8235759 +CaveOfOrigin_Entrance_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, CaveOfOrigin_Entrance_OnResume .byte 0 -CaveOfOrigin_Entrance_OnResume: @ 823575F +CaveOfOrigin_Entrance_OnResume: setescapewarp MAP_SOOTOPOLIS_CITY, 255, 31, 17 end diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/scripts.inc b/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/scripts.inc index 326ea21e3a..25744c4897 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/scripts.inc +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/scripts.inc @@ -1,7 +1,7 @@ -CaveOfOrigin_UnusedRubySapphireMap1_MapScripts:: @ 8235778 +CaveOfOrigin_UnusedRubySapphireMap1_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, CaveOfOrigin_UnusedRubySapphireMap1_OnTransition .byte 0 -CaveOfOrigin_UnusedRubySapphireMap1_OnTransition: @ 823577E - call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_SetTempVars +CaveOfOrigin_UnusedRubySapphireMap1_OnTransition: + call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_DisableTriggers end diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/scripts.inc b/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/scripts.inc index 5e92a7d45e..53d7c03fc6 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/scripts.inc +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/scripts.inc @@ -1,8 +1,8 @@ -CaveOfOrigin_UnusedRubySapphireMap2_MapScripts:: @ 8235788 +CaveOfOrigin_UnusedRubySapphireMap2_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, CaveOfOrigin_UnusedRubySapphireMap2_OnTransition .byte 0 -CaveOfOrigin_UnusedRubySapphireMap2_OnTransition: @ 823578E - call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_SetTempVars +CaveOfOrigin_UnusedRubySapphireMap2_OnTransition: + call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_DisableTriggers end diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/scripts.inc b/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/scripts.inc index 2f0e2b66c7..c476d672de 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/scripts.inc +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/scripts.inc @@ -1,8 +1,8 @@ -CaveOfOrigin_UnusedRubySapphireMap3_MapScripts:: @ 8235798 +CaveOfOrigin_UnusedRubySapphireMap3_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, CaveOfOrigin_UnusedRubySapphireMap3_OnTransition .byte 0 -CaveOfOrigin_UnusedRubySapphireMap3_OnTransition: @ 823579E - call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_SetTempVars +CaveOfOrigin_UnusedRubySapphireMap3_OnTransition: + call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_DisableTriggers end diff --git a/data/maps/ContestHall/scripts.inc b/data/maps/ContestHall/scripts.inc index abde00cc2f..535e28b789 100644 --- a/data/maps/ContestHall/scripts.inc +++ b/data/maps/ContestHall/scripts.inc @@ -1,4 +1,4 @@ -ContestHall_MapScripts:: @ 823B781 +ContestHall_MapScripts:: map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, ContestHall_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, ContestHall_OnFrame map_script MAP_SCRIPT_ON_TRANSITION, ContestHall_OnTransition @@ -6,17 +6,17 @@ ContestHall_MapScripts:: @ 823B781 map_script MAP_SCRIPT_ON_RETURN_TO_FIELD, ContestHall_OnReturn .byte 0 -ContestHall_OnReturn: @ 823B79B +ContestHall_OnReturn: special LoadLinkContestPlayerPalettes end -ContestHall_OnTransition: @ 823B79F +ContestHall_OnTransition: call ContestHall_EventScript_ReadyContestMusic setvar VAR_TEMP_0, 1 call ContestHall_EventScript_AddRandomAudienceMembers end -ContestHall_EventScript_ReadyContestMusic:: @ 823B7AF +ContestHall_EventScript_ReadyContestMusic:: call ContestHall_EventScript_TryWaitForLink special GetContestMultiplayerId compare VAR_RESULT, 0 @@ -31,49 +31,49 @@ ContestHall_EventScript_ReadyContestMusic:: @ 823B7AF call_if_eq ContestHall_EventScript_SaveContestMusic return -ContestHall_EventScript_SaveContestMusicPlayer1:: @ 823B7EF +ContestHall_EventScript_SaveContestMusicPlayer1:: savebgm MUS_LINK_CONTEST_P1 return -ContestHall_EventScript_SaveContestMusicPlayer2:: @ 823B7F3 +ContestHall_EventScript_SaveContestMusicPlayer2:: savebgm MUS_LINK_CONTEST_P2 return -ContestHall_EventScript_SaveContestMusicPlayer3:: @ 823B7F7 +ContestHall_EventScript_SaveContestMusicPlayer3:: savebgm MUS_LINK_CONTEST_P3 return -ContestHall_EventScript_SaveContestMusicPlayer4:: @ 823B7FB +ContestHall_EventScript_SaveContestMusicPlayer4:: savebgm MUS_LINK_CONTEST_P4 return -ContestHall_EventScript_SaveContestMusic:: @ 823B7FF +ContestHall_EventScript_SaveContestMusic:: savebgm MUS_CONTEST return -ContestHall_OnResume: @ 823B803 +ContestHall_OnResume: compare VAR_TEMP_9, 1 call_if_eq ContestHall_EventScript_ReShowAudience end -ContestHall_EventScript_ReShowAudience:: @ 823B80F +ContestHall_EventScript_ReShowAudience:: call ContestHall_EventScript_CreateAudience return -ContestHall_OnFrame: @ 823B815 +ContestHall_OnFrame: map_script_2 VAR_CONTEST_HALL_STATE, 1, ContestHall_EventScript_Contest .2byte 0 -ContestHall_OnWarp: @ 823B81F +ContestHall_OnWarp: map_script_2 VAR_CONTEST_HALL_STATE, 1, ContestHall_EventScript_SetContestObjects .2byte 0 -ContestHall_EventScript_Contest:: @ 823B829 +ContestHall_EventScript_Contest:: call ContestHall_EventScript_DoContest call ContestHall_EventScript_SetExitWarp end -ContestHall_EventScript_SetContestObjects:: @ 823B834 +ContestHall_EventScript_SetContestObjects:: special LoadLinkContestPlayerPalettes hideobjectat OBJ_EVENT_ID_PLAYER, MAP_LITTLEROOT_TOWN call ContestHall_EventScript_CreateAudience @@ -81,14 +81,14 @@ ContestHall_EventScript_SetContestObjects:: @ 823B834 @ There are 8 audience member object events, 7 of which are given random gfx below (the 8th is the Artist) @ The rest of the audience is created statically by ContestHall_EventScript_CreateAudience -ContestHall_EventScript_AddRandomAudienceMembers:: @ 823B842 +ContestHall_EventScript_AddRandomAudienceMembers:: call ContestHall_EventScript_GetRandomAudienceGfxId call ContestHall_EventScript_SetRandomAudienceGfx compare VAR_TEMP_0, 8 goto_if_lt ContestHall_EventScript_AddRandomAudienceMembers return -ContestHall_EventScript_SetRandomAudienceGfx:: @ 823B858 +ContestHall_EventScript_SetRandomAudienceGfx:: switch VAR_TEMP_0 case 1, ContestHall_EventScript_SetRandomAudience1 case 2, ContestHall_EventScript_SetRandomAudience2 @@ -99,42 +99,42 @@ ContestHall_EventScript_SetRandomAudienceGfx:: @ 823B858 case 7, ContestHall_EventScript_SetRandomAudience7 end -ContestHall_EventScript_SetRandomAudience1:: @ 823B8AB +ContestHall_EventScript_SetRandomAudience1:: copyvar VAR_OBJ_GFX_ID_4, VAR_TEMP_1 addvar VAR_TEMP_0, 1 return -ContestHall_EventScript_SetRandomAudience2:: @ 823B8B6 +ContestHall_EventScript_SetRandomAudience2:: copyvar VAR_OBJ_GFX_ID_5, VAR_TEMP_1 addvar VAR_TEMP_0, 1 return -ContestHall_EventScript_SetRandomAudience3:: @ 823B8C1 +ContestHall_EventScript_SetRandomAudience3:: copyvar VAR_OBJ_GFX_ID_6, VAR_TEMP_1 addvar VAR_TEMP_0, 1 return -ContestHall_EventScript_SetRandomAudience4:: @ 823B8CC +ContestHall_EventScript_SetRandomAudience4:: copyvar VAR_OBJ_GFX_ID_7, VAR_TEMP_1 addvar VAR_TEMP_0, 1 return -ContestHall_EventScript_SetRandomAudience5:: @ 823B8D7 +ContestHall_EventScript_SetRandomAudience5:: copyvar VAR_OBJ_GFX_ID_8, VAR_TEMP_1 addvar VAR_TEMP_0, 1 return -ContestHall_EventScript_SetRandomAudience6:: @ 823B8E2 +ContestHall_EventScript_SetRandomAudience6:: copyvar VAR_OBJ_GFX_ID_9, VAR_TEMP_1 addvar VAR_TEMP_0, 1 return -ContestHall_EventScript_SetRandomAudience7:: @ 823B8ED +ContestHall_EventScript_SetRandomAudience7:: copyvar VAR_OBJ_GFX_ID_A, VAR_TEMP_1 addvar VAR_TEMP_0, 1 return -ContestHall_EventScript_GetRandomAudienceGfxId:: @ 823B8F8 +ContestHall_EventScript_GetRandomAudienceGfxId:: setvar VAR_RESULT, 32 special GenerateContestRand addvar VAR_RESULT, 1 @@ -173,135 +173,135 @@ ContestHall_EventScript_GetRandomAudienceGfxId:: @ 823B8F8 case 32, ContestHall_EventScript_RandomAudienceScientist1 end -ContestHall_EventScript_RandomAudienceNinjaBoy:: @ 823BA6B +ContestHall_EventScript_RandomAudienceNinjaBoy:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_NINJA_BOY return -ContestHall_EventScript_RandomAudienceTwin:: @ 823BA71 +ContestHall_EventScript_RandomAudienceTwin:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_TWIN return -ContestHall_EventScript_RandomAudienceBoy1:: @ 823BA77 +ContestHall_EventScript_RandomAudienceBoy1:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_BOY_1 return -ContestHall_EventScript_RandomAudienceGirl1:: @ 823BA7D +ContestHall_EventScript_RandomAudienceGirl1:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_GIRL_1 return -ContestHall_EventScript_RandomAudienceGirl2:: @ 823BA83 +ContestHall_EventScript_RandomAudienceGirl2:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_GIRL_2 return -ContestHall_EventScript_RandomAudienceLittleBoy:: @ 823BA89 +ContestHall_EventScript_RandomAudienceLittleBoy:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_LITTLE_BOY return -ContestHall_EventScript_RandomAudienceGirl:: @ 823BA8F +ContestHall_EventScript_RandomAudienceGirl:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_LITTLE_GIRL return -ContestHall_EventScript_RandomAudienceBoy3:: @ 823BA95 +ContestHall_EventScript_RandomAudienceBoy3:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_BOY_3 return -ContestHall_EventScript_RandomAudienceGirl3:: @ 823BA9B +ContestHall_EventScript_RandomAudienceGirl3:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_GIRL_3 return -ContestHall_EventScript_RandomAudienceRichBoy:: @ 823BAA1 +ContestHall_EventScript_RandomAudienceRichBoy:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_RICH_BOY return -ContestHall_EventScript_RandomAudienceFatMan:: @ 823BAA7 +ContestHall_EventScript_RandomAudienceFatMan:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_FAT_MAN return -ContestHall_EventScript_RandomAudiencePokefanF:: @ 823BAAD +ContestHall_EventScript_RandomAudiencePokefanF:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_POKEFAN_F return -ContestHall_EventScript_RandomAudienceMan1:: @ 823BAB3 +ContestHall_EventScript_RandomAudienceMan1:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_MAN_1 return -ContestHall_EventScript_RandomAudienceWoman2:: @ 823BAB9 +ContestHall_EventScript_RandomAudienceWoman2:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_WOMAN_2 return -ContestHall_EventScript_RandomAudienceExpertM:: @ 823BABF +ContestHall_EventScript_RandomAudienceExpertM:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_EXPERT_M return -ContestHall_EventScript_RandomAudienceExpertF:: @ 823BAC5 +ContestHall_EventScript_RandomAudienceExpertF:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_EXPERT_F return -ContestHall_EventScript_RandomAudiencePokefanM:: @ 823BACB +ContestHall_EventScript_RandomAudiencePokefanM:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_POKEFAN_M return -ContestHall_EventScript_RandomAudienceWoman4:: @ 823BAD1 +ContestHall_EventScript_RandomAudienceWoman4:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_WOMAN_4 return -ContestHall_EventScript_RandomAudienceCook:: @ 823BAD7 +ContestHall_EventScript_RandomAudienceCook:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_COOK return -ContestHall_EventScript_RandomAudienceLass:: @ 823BADD +ContestHall_EventScript_RandomAudienceLass:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_LASS return -ContestHall_EventScript_RandomAudienceOldWoman:: @ 823BAE3 +ContestHall_EventScript_RandomAudienceOldWoman:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_OLD_WOMAN return -ContestHall_EventScript_RandomAudienceCamper:: @ 823BAE9 +ContestHall_EventScript_RandomAudienceCamper:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_CAMPER return -ContestHall_EventScript_RandomAudiencePicnicker:: @ 823BAEF +ContestHall_EventScript_RandomAudiencePicnicker:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_PICNICKER return -ContestHall_EventScript_RandomAudienceMan3:: @ 823BAF5 +ContestHall_EventScript_RandomAudienceMan3:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_MAN_3 return -ContestHall_EventScript_RandomAudienceWoman5:: @ 823BAFB +ContestHall_EventScript_RandomAudienceWoman5:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_WOMAN_5 return -ContestHall_EventScript_RandomAudienceYoungster:: @ 823BB01 +ContestHall_EventScript_RandomAudienceYoungster:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_YOUNGSTER return -ContestHall_EventScript_RandomAudienceBugCatcher:: @ 823BB07 +ContestHall_EventScript_RandomAudienceBugCatcher:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_BUG_CATCHER return -ContestHall_EventScript_RandomAudiencePsychicM:: @ 823BB0D +ContestHall_EventScript_RandomAudiencePsychicM:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_PSYCHIC_M return -ContestHall_EventScript_RandomAudienceSchoolKidM:: @ 823BB13 +ContestHall_EventScript_RandomAudienceSchoolKidM:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_SCHOOL_KID_M return -ContestHall_EventScript_RandomAudienceBlackBelt:: @ 823BB19 +ContestHall_EventScript_RandomAudienceBlackBelt:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_BLACK_BELT return -ContestHall_EventScript_RandomAudienceBeauty:: @ 823BB1F +ContestHall_EventScript_RandomAudienceBeauty:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_BEAUTY return -ContestHall_EventScript_RandomAudienceScientist1:: @ 823BB25 +ContestHall_EventScript_RandomAudienceScientist1:: setvar VAR_TEMP_1, OBJ_EVENT_GFX_SCIENTIST_1 return -ContestHall_EventScript_CreateAudience:: @ 823BB2B +ContestHall_EventScript_CreateAudience:: specialvar VAR_RESULT, IsWirelessContest compare VAR_RESULT, TRUE goto_if_eq ContestHall_EventScript_CreateWirelessContestAudience @@ -313,12 +313,12 @@ ContestHall_EventScript_CreateAudience:: @ 823BB2B case CONTEST_TYPE_LINK, ContestHall_EventScript_CreateMasterContestAudience return -ContestHall_EventScript_CreateNormalContestAudience:: @ 823BB78 +ContestHall_EventScript_CreateNormalContestAudience:: createvobject OBJ_EVENT_GFX_NINJA_BOY, 20, 3, 2, 3, DIR_SOUTH createvobject OBJ_EVENT_GFX_SCIENTIST_1, 24, 11, 2, 3, DIR_SOUTH return -ContestHall_EventScript_CreateSuperContestAudience:: @ 823BB8B +ContestHall_EventScript_CreateSuperContestAudience:: createvobject OBJ_EVENT_GFX_BEAUTY, 0, 2, 3, 3, DIR_EAST createvobject OBJ_EVENT_GFX_MAN_5, 1, 2, 4, 3, DIR_EAST createvobject OBJ_EVENT_GFX_HIKER, 2, 2, 7, 3, DIR_EAST @@ -331,7 +331,7 @@ ContestHall_EventScript_CreateSuperContestAudience:: @ 823BB8B createvobject OBJ_EVENT_GFX_SCIENTIST_1, 24, 11, 2, 3, DIR_SOUTH return -ContestHall_EventScript_CreateHyperContestAudience:: @ 823BBE6 +ContestHall_EventScript_CreateHyperContestAudience:: createvobject OBJ_EVENT_GFX_BEAUTY, 0, 2, 3, 3, DIR_EAST createvobject OBJ_EVENT_GFX_MAN_5, 1, 2, 4, 3, DIR_EAST createvobject OBJ_EVENT_GFX_HIKER, 2, 2, 7, 3, DIR_EAST @@ -353,7 +353,7 @@ ContestHall_EventScript_CreateHyperContestAudience:: @ 823BBE6 createvobject OBJ_EVENT_GFX_MART_EMPLOYEE, 30, 11, 9, 3, DIR_NORTH return -ContestHall_EventScript_CreateMasterContestAudience:: @ 823BC92 +ContestHall_EventScript_CreateMasterContestAudience:: createvobject OBJ_EVENT_GFX_BEAUTY, 0, 2, 3, 3, DIR_EAST createvobject OBJ_EVENT_GFX_MAN_5, 1, 2, 4, 3, DIR_EAST createvobject OBJ_EVENT_GFX_HIKER, 2, 2, 7, 3, DIR_EAST @@ -383,7 +383,7 @@ ContestHall_EventScript_CreateMasterContestAudience:: @ 823BC92 createvobject OBJ_EVENT_GFX_MART_EMPLOYEE, 30, 11, 9, 3, DIR_NORTH return -ContestHall_EventScript_CreateWirelessContestAudience:: @ 823BD86 +ContestHall_EventScript_CreateWirelessContestAudience:: createvobject OBJ_EVENT_GFX_BEAUTY, 0, 2, 3, 3, DIR_EAST createvobject OBJ_EVENT_GFX_MAN_5, 1, 2, 4, 3, DIR_EAST createvobject OBJ_EVENT_GFX_HIKER, 2, 2, 7, 3, DIR_EAST @@ -407,7 +407,7 @@ ContestHall_EventScript_CreateWirelessContestAudience:: @ 823BD86 createvobject OBJ_EVENT_GFX_SCIENTIST_1, 24, 11, 2, 3, DIR_SOUTH return -ContestHall_EventScript_SetExitWarp:: @ 823BE44 +ContestHall_EventScript_SetExitWarp:: special ClearLinkContestFlags switch VAR_CONTEST_TYPE case CONTEST_TYPE_NPC_NORMAL, ContestHall_EventScript_SetExitWarpNormalContest @@ -417,32 +417,32 @@ ContestHall_EventScript_SetExitWarp:: @ 823BE44 case CONTEST_TYPE_LINK, ContestHall_EventScript_SetExitWarpLinkContest return -ContestHall_EventScript_SetExitWarpNormalContest:: @ 823BE84 +ContestHall_EventScript_SetExitWarpNormalContest:: warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 14, 4 waitstate end -ContestHall_EventScript_SetExitWarpSuperContest:: @ 823BE8E +ContestHall_EventScript_SetExitWarpSuperContest:: warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 14, 4 waitstate end -ContestHall_EventScript_SetExitWarpHyperContest:: @ 823BE98 +ContestHall_EventScript_SetExitWarpHyperContest:: warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 14, 4 waitstate end -ContestHall_EventScript_SetExitWarpMasterContest:: @ 823BEA2 +ContestHall_EventScript_SetExitWarpMasterContest:: warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 14, 4 waitstate end -ContestHall_EventScript_SetExitWarpLinkContest:: @ 823BEAC +ContestHall_EventScript_SetExitWarpLinkContest:: warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 15, 4 waitstate end -LilycoveCity_ContestLobby_EventScript_SetPlayerGfx:: @ 823BEB6 +LilycoveCity_ContestLobby_EventScript_SetPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq LilycoveCity_ContestLobby_EventScript_SetPlayerGfxBrendan @@ -450,11 +450,11 @@ LilycoveCity_ContestLobby_EventScript_SetPlayerGfx:: @ 823BEB6 goto_if_eq LilycoveCity_ContestLobby_EventScript_SetPlayerGfxMay return -LilycoveCity_ContestLobby_EventScript_SetPlayerGfxBrendan:: @ 823BECE +LilycoveCity_ContestLobby_EventScript_SetPlayerGfxBrendan:: setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -LilycoveCity_ContestLobby_EventScript_SetPlayerGfxMay:: @ 823BED4 +LilycoveCity_ContestLobby_EventScript_SetPlayerGfxMay:: setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return diff --git a/data/maps/DesertRuins/scripts.inc b/data/maps/DesertRuins/scripts.inc index bd7b04fb43..414dbfc572 100644 --- a/data/maps/DesertRuins/scripts.inc +++ b/data/maps/DesertRuins/scripts.inc @@ -1,25 +1,25 @@ -DesertRuins_MapScripts:: @ 822D95B +DesertRuins_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, DesertRuins_OnResume map_script MAP_SCRIPT_ON_LOAD, DesertRuins_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, DesertRuins_OnTransition .byte 0 -DesertRuins_OnResume: @ 822D96B +DesertRuins_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, DesertRuins_EventScript_TryRemoveRegirock end -DesertRuins_EventScript_TryRemoveRegirock:: @ 822D975 +DesertRuins_EventScript_TryRemoveRegirock:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -DesertRuins_OnLoad: @ 822D989 +DesertRuins_OnLoad: call_if_unset FLAG_SYS_REGIROCK_PUZZLE_COMPLETED, DesertRuins_EventScript_HideRegiEntrance end -DesertRuins_EventScript_HideRegiEntrance:: @ 822D993 +DesertRuins_EventScript_HideRegiEntrance:: setmetatile 7, 19, METATILE_Cave_EntranceCover, 1 setmetatile 8, 19, METATILE_Cave_EntranceCover, 1 setmetatile 9, 19, METATILE_Cave_EntranceCover, 1 @@ -28,16 +28,16 @@ DesertRuins_EventScript_HideRegiEntrance:: @ 822D993 setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 return -DesertRuins_OnTransition: @ 822D9CA +DesertRuins_OnTransition: setflag FLAG_LANDMARK_DESERT_RUINS call_if_unset FLAG_DEFEATED_REGIROCK, DesertRuins_EventScript_ShowRegirock end -DesertRuins_EventScript_ShowRegirock:: @ 822D9D7 +DesertRuins_EventScript_ShowRegirock:: clearflag FLAG_HIDE_REGIROCK return -DesertRuins_EventScript_CaveEntranceMiddle:: @ 822D9DB +DesertRuins_EventScript_CaveEntranceMiddle:: lockall goto_if_set FLAG_SYS_REGIROCK_PUZZLE_COMPLETED, DesertRuins_EventScript_BigHoleInWall braillemessage DesertRuins_Braille_UseRockSmash @@ -46,12 +46,12 @@ DesertRuins_EventScript_CaveEntranceMiddle:: @ 822D9DB releaseall end -DesertRuins_EventScript_BigHoleInWall:: @ 822D9EE +DesertRuins_EventScript_BigHoleInWall:: msgbox gText_BigHoleInTheWall, MSGBOX_DEFAULT releaseall end -DesertRuins_EventScript_CaveEntranceSide:: @ 822D9F8 +DesertRuins_EventScript_CaveEntranceSide:: lockall braillemessage DesertRuins_Braille_UseRockSmash waitbuttonpress @@ -59,7 +59,7 @@ DesertRuins_EventScript_CaveEntranceSide:: @ 822D9F8 releaseall end -DesertRuins_EventScript_Regirock:: @ 822DA02 +DesertRuins_EventScript_Regirock:: lock faceplayer waitse @@ -82,12 +82,12 @@ DesertRuins_EventScript_Regirock:: @ 822DA02 release end -DesertRuins_EventScript_DefeatedRegirock:: @ 822DA49 +DesertRuins_EventScript_DefeatedRegirock:: setflag FLAG_DEFEATED_REGIROCK goto Common_EventScript_RemoveStaticPokemon end -DesertRuins_EventScript_RanFromRegirock:: @ 822DA52 +DesertRuins_EventScript_RanFromRegirock:: setvar VAR_0x8004, SPECIES_REGIROCK goto Common_EventScript_LegendaryFlewAway end diff --git a/data/maps/DesertUnderpass/scripts.inc b/data/maps/DesertUnderpass/scripts.inc index 7025a268bf..518d988832 100644 --- a/data/maps/DesertUnderpass/scripts.inc +++ b/data/maps/DesertUnderpass/scripts.inc @@ -1,14 +1,14 @@ .set LOCALID_FOSSIL, 1 -DesertUnderpass_MapScripts:: @ 823AF37 +DesertUnderpass_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, DesertUnderpass_OnTransition .byte 0 -DesertUnderpass_OnTransition: @ 823AF3D +DesertUnderpass_OnTransition: setflag FLAG_LANDMARK_DESERT_UNDERPASS end -DesertUnderpass_EventScript_Fossil:: @ 823AF41 +DesertUnderpass_EventScript_Fossil:: lock faceplayer goto_if_set FLAG_CHOSE_ROOT_FOSSIL, DesertUnderpass_EventScript_GiveClawFossil @@ -16,23 +16,23 @@ DesertUnderpass_EventScript_Fossil:: @ 823AF41 release end -DesertUnderpass_EventScript_GiveClawFossil:: @ 823AF57 +DesertUnderpass_EventScript_GiveClawFossil:: giveitem ITEM_CLAW_FOSSIL removeobject LOCALID_FOSSIL release end -DesertUnderpass_EventScript_GiveRootFossil:: @ 823AF68 +DesertUnderpass_EventScript_GiveRootFossil:: giveitem ITEM_ROOT_FOSSIL removeobject LOCALID_FOSSIL release end @ Unused -DesertUnderpass_Text_FoundRootFossil:: @ 823AF79 +DesertUnderpass_Text_FoundRootFossil:: .string "{PLAYER} found the ROOT FOSSIL.$" @ Unused -DesertUnderpass_Text_FoundClawFossil:: @ 823AF93 +DesertUnderpass_Text_FoundClawFossil:: .string "{PLAYER} found the CLAW FOSSIL.$" diff --git a/data/maps/DewfordTown/scripts.inc b/data/maps/DewfordTown/scripts.inc index f6d06bea75..fdf8c785ef 100644 --- a/data/maps/DewfordTown/scripts.inc +++ b/data/maps/DewfordTown/scripts.inc @@ -10,21 +10,21 @@ .equ LOCALID_BOAT_R104, 7 .equ LOCALID_BRINEY_R104, 8 -DewfordTown_MapScripts:: @ 81E9507 +DewfordTown_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, DewfordTown_OnTransition .byte 0 -DewfordTown_OnTransition: @ 81E950D +DewfordTown_OnTransition: setflag FLAG_VISITED_DEWFORD_TOWN end -DewfordTown_EventScript_Briney:: @ 81E9511 +DewfordTown_EventScript_Briney:: lock faceplayer goto_if_unset FLAG_DELIVERED_STEVEN_LETTER, DewfordTown_EventScript_ReturnToPetalburgPrompt message DewfordTown_Text_WhereAreWeBound waitmessage - multichoicedefault 21, 6, MULTI_BRINEY_ON_DEWFORD, 2, 0 + multichoicedefault 21, 6, MULTI_BRINEY_ON_DEWFORD, 2, FALSE switch VAR_RESULT case 0, DewfordTown_EventScript_ChoosePetalburg case 1, DewfordTown_EventScript_ChooseSlateport @@ -32,27 +32,27 @@ DewfordTown_EventScript_Briney:: @ 81E9511 case MULTI_B_PRESSED, DewfordTown_EventScript_CancelSailSelect end -DewfordTown_EventScript_ChoosePetalburg:: @ 81E955A +DewfordTown_EventScript_ChoosePetalburg:: msgbox DewfordTown_Text_PetalburgWereSettingSail, MSGBOX_DEFAULT closemessage goto DewfordTown_EventScript_SailToPetalburg release end -DewfordTown_EventScript_ChooseSlateport:: @ 81E956A +DewfordTown_EventScript_ChooseSlateport:: msgbox DewfordTown_Text_SlateportWereSettingSail, MSGBOX_DEFAULT closemessage goto DewfordTown_EventScript_SailToSlateport release end -DewfordTown_EventScript_CancelSailSelect:: @ 81E957A +DewfordTown_EventScript_CancelSailSelect:: msgbox DewfordTown_Text_JustTellMeWhenYouNeedToSetSail, MSGBOX_DEFAULT closemessage release end -DewfordTown_EventScript_ReturnToPetalburgPrompt:: @ 81E9585 +DewfordTown_EventScript_ReturnToPetalburgPrompt:: msgbox DewfordTown_Text_SetSailBackToPetalburg, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq DewfordTown_EventScript_SailBackToPetalburg @@ -60,29 +60,29 @@ DewfordTown_EventScript_ReturnToPetalburgPrompt:: @ 81E9585 release end -DewfordTown_EventScript_SailBackToPetalburg:: @ 81E95A2 +DewfordTown_EventScript_SailBackToPetalburg:: msgbox DewfordTown_Text_PetalburgWereSettingSail2, MSGBOX_DEFAULT closemessage goto DewfordTown_EventScript_SailToPetalburg end -DewfordTown_EventScript_Woman:: @ 81E95B1 +DewfordTown_EventScript_Woman:: msgbox DewfordTown_Text_TinyIslandCommunity, MSGBOX_NPC end -DewfordTown_EventScript_TownSign:: @ 81E95BA +DewfordTown_EventScript_TownSign:: msgbox DewfordTown_Text_TownSign, MSGBOX_SIGN end -DewfordTown_EventScript_GymSign:: @ 81E95C3 +DewfordTown_EventScript_GymSign:: msgbox DewfordTown_Text_GymSign, MSGBOX_SIGN end -DewfordTown_EventScript_HallSign:: @ 81E95CC +DewfordTown_EventScript_HallSign:: msgbox DewfordTown_Text_HallSign, MSGBOX_SIGN end -DewfordTown_EventScript_OldRodFisherman:: @ 81E95D5 +DewfordTown_EventScript_OldRodFisherman:: lock faceplayer goto_if_set FLAG_RECEIVED_OLD_ROD, DewfordTown_EventScript_HowsFishing @@ -93,7 +93,7 @@ DewfordTown_EventScript_OldRodFisherman:: @ 81E95D5 goto_if_eq DewfordTown_EventScript_NotGettingItchToFish end -DewfordTown_EventScript_GiveOldRod:: @ 81E95FF +DewfordTown_EventScript_GiveOldRod:: msgbox DewfordTown_Text_GiveYouOneOfMyRods, MSGBOX_DEFAULT giveitem ITEM_OLD_ROD setflag FLAG_RECEIVED_OLD_ROD @@ -101,32 +101,32 @@ DewfordTown_EventScript_GiveOldRod:: @ 81E95FF release end -DewfordTown_EventScript_NotGettingItchToFish:: @ 81E9620 +DewfordTown_EventScript_NotGettingItchToFish:: msgbox DewfordTown_Text_ThatsTooBadThen, MSGBOX_DEFAULT release end -DewfordTown_EventScript_HowsFishing:: @ 81E962A +DewfordTown_EventScript_HowsFishing:: message DewfordTown_Text_HowsYourFishing waitmessage - multichoice 20, 8, MULTI_HOWS_FISHING, 1 + multichoice 20, 8, MULTI_HOWS_FISHING, TRUE compare VAR_RESULT, 0 goto_if_eq DewfordTown_EventScript_FishingExcellent compare VAR_RESULT, 1 goto_if_eq DewfordTown_EventScript_FishingNotSoGood end -DewfordTown_EventScript_FishingExcellent:: @ 81E964C +DewfordTown_EventScript_FishingExcellent:: msgbox DewfordTown_Text_GreatHaulInSomeBigOnes, MSGBOX_DEFAULT release end -DewfordTown_EventScript_FishingNotSoGood:: @ 81E9656 +DewfordTown_EventScript_FishingNotSoGood:: msgbox DewfordTown_Text_FishingAdvice, MSGBOX_DEFAULT release end -DewfordTown_EventScript_SailToPetalburg:: @ 81E9660 +DewfordTown_EventScript_SailToPetalburg:: call EventScript_BackupMrBrineyLocation setobjectpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 setobjectpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN, 0 @@ -158,7 +158,7 @@ DewfordTown_EventScript_SailToPetalburg:: @ 81E9660 release end -DewfordTown_EventScript_SailToSlateport:: @ 81E96E7 +DewfordTown_EventScript_SailToSlateport:: call EventScript_BackupMrBrineyLocation setobjectpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 setobjectpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN, 1 @@ -196,15 +196,15 @@ DewfordTown_EventScript_SailToSlateport:: @ 81E96E7 release end -DewfordTown_EventScript_LandedSlateportDeliverGoods:: @ 81E9790 +DewfordTown_EventScript_LandedSlateportDeliverGoods:: msgbox DewfordTown_Text_BrineyLandedInSlateportDeliverGoods, MSGBOX_DEFAULT return -DewfordTown_EventScript_LandedSlateport:: @ 81E9799 +DewfordTown_EventScript_LandedSlateport:: msgbox DewfordTown_Text_BrineyLandedInSlateport, MSGBOX_DEFAULT return -DewfordTown_Movement_SailToPetalburg: @ 81E97A2 +DewfordTown_Movement_SailToPetalburg: walk_up walk_up walk_fast_up @@ -401,7 +401,7 @@ DewfordTown_Movement_SailToPetalburg: @ 81E97A2 walk_up step_end -DewfordTown_Movement_SailToSlateport: @ 81E9865 +DewfordTown_Movement_SailToSlateport: walk_right walk_fast_right walk_fast_right @@ -575,34 +575,34 @@ DewfordTown_Movement_SailToSlateport: @ 81E9865 walk_fast_up step_end -DewfordTown_Movement_PlayerBoardBoat: @ 81E9911 +DewfordTown_Movement_PlayerBoardBoat: walk_right walk_up step_end -DewfordTown_Movement_ExitBoatPetalburg: @ 81E9914 +DewfordTown_Movement_ExitBoatPetalburg: walk_up walk_up walk_up step_end -DewfordTown_Movement_ExitBoatSlateport: @ 81E9918 +DewfordTown_Movement_ExitBoatSlateport: walk_up walk_up walk_up walk_in_place_fastest_down step_end -DewfordTown_Movement_BrineyBoardBoat: @ 81E991D +DewfordTown_Movement_BrineyBoardBoat: walk_up step_end -DewfordTown_Movement_BrineyExitBoat: @ 81E991F +DewfordTown_Movement_BrineyExitBoat: walk_up walk_up step_end -DewfordTown_EventScript_TrendyPhraseBoy:: @ 81E9922 +DewfordTown_EventScript_TrendyPhraseBoy:: lock faceplayer call Common_EventScript_BufferTrendyPhrase @@ -613,115 +613,115 @@ DewfordTown_EventScript_TrendyPhraseBoy:: @ 81E9922 goto_if_eq DewfordTown_EventScript_RejectTrendyPhrase end -DewfordTown_EventScript_ConfirmTrendyPhrase:: @ 81E9948 +DewfordTown_EventScript_ConfirmTrendyPhrase:: msgbox DewfordTown_Text_YeahDefinitionOfInRightNow, MSGBOX_DEFAULT release end -DewfordTown_EventScript_RejectTrendyPhrase:: @ 81E9952 +DewfordTown_EventScript_RejectTrendyPhrase:: msgbox DewfordTown_Text_TellMeWhatsNewAndIn, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_TRENDY_PHRASE call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 1 + compare VAR_RESULT, TRUE goto_if_eq DewfordTown_EventScript_GiveNewTrendyPhrase - compare VAR_RESULT, 0 + compare VAR_RESULT, FALSE goto_if_eq DewfordTown_EventScript_CancelNewTrendyPhrase end -DewfordTown_EventScript_GiveNewTrendyPhrase:: @ 81E997D +DewfordTown_EventScript_GiveNewTrendyPhrase:: incrementgamestat GAME_STAT_STARTED_TRENDS - compare VAR_0x8004, 0 + compare VAR_0x8004, FALSE goto_if_eq DewfordTown_EventScript_PhraseNotTrendyEnough msgbox DewfordTown_Text_OfCourseIKnowAboutThat, MSGBOX_DEFAULT release end -DewfordTown_EventScript_CancelNewTrendyPhrase:: @ 81E9994 +DewfordTown_EventScript_CancelNewTrendyPhrase:: msgbox DewfordTown_Text_HearOfAnyTrendsComeShareWithMe, MSGBOX_DEFAULT release end -DewfordTown_EventScript_PhraseNotTrendyEnough:: @ 81E999E +DewfordTown_EventScript_PhraseNotTrendyEnough:: msgbox DewfordTown_Text_XHuhIThinkYIsCool, MSGBOX_DEFAULT release end -DewfordTown_Text_TinyIslandCommunity: @ 81E99A8 +DewfordTown_Text_TinyIslandCommunity: .string "DEWFORD is a tiny island community.\n" .string "If something gets trendy here,\l" .string "everyone picks up on it right away.$" -DewfordTown_Text_TownSign: @ 81E9A0F +DewfordTown_Text_TownSign: .string "DEWFORD TOWN\n" .string "“A tiny island in the blue sea.”$" -DewfordTown_Text_GymSign: @ 81E9A3D +DewfordTown_Text_GymSign: .string "DEWFORD TOWN POKéMON GYM\n" .string "LEADER: BRAWLY\l" .string "“A big wave in fighting!”$" -DewfordTown_Text_HallSign: @ 81E9A7F +DewfordTown_Text_HallSign: .string "DEWFORD HALL\n" .string "“Everyone's information exchange!”$" -Route104_Text_LandedInDewfordDeliverLetter: @ 81E9AAF +Route104_Text_LandedInDewfordDeliverLetter: .string "MR. BRINEY: Ahoy!\n" .string "We've hit land in DEWFORD.\p" .string "I suppose you're off to deliver that\n" .string "LETTER to, who was it now, STEVEN!$" -DewfordTown_Text_SetSailBackToPetalburg: @ 81E9B24 +DewfordTown_Text_SetSailBackToPetalburg: .string "MR. BRINEY: Have you delivered your\n" .string "LETTER?\p" .string "Or were you meaning to sail back to\n" .string "PETALBURG?$" -DewfordTown_Text_PetalburgWereSettingSail2: @ 81E9B7F +DewfordTown_Text_PetalburgWereSettingSail2: .string "MR. BRINEY: PETALBURG it is, then!\p" .string "Anchors aweigh!\n" .string "PEEKO, we're setting sail, my darling!$" -DewfordTown_Text_GoDeliverIllBeWaiting: @ 81E9BD9 +DewfordTown_Text_GoDeliverIllBeWaiting: .string "MR. BRINEY: Then you go on and deliver\n" .string "the LETTER. I'll be waiting.$" -DewfordTown_Text_BrineyLandedInDewford: @ 81E9C1D +DewfordTown_Text_BrineyLandedInDewford: .string "MR. BRINEY: Ahoy!\n" .string "We've hit land in DEWFORD!\p" .string "You just go on and tell me whenever\n" .string "you want to set sail again!$" -DewfordTown_Text_WhereAreWeBound: @ 81E9C8A +DewfordTown_Text_WhereAreWeBound: .string "MR. BRINEY: Ahoy!\n" .string "For you, I'll go out to sea anytime!\p" .string "Now, my friend, where are we bound?$" -DewfordTown_Text_PetalburgWereSettingSail: @ 81E9CE5 +DewfordTown_Text_PetalburgWereSettingSail: .string "MR. BRINEY: PETALBURG, is it?\p" .string "Anchors aweigh!\n" .string "PEEKO, we're setting sail, my darling!$" -DewfordTown_Text_SlateportWereSettingSail: @ 81E9D3A +DewfordTown_Text_SlateportWereSettingSail: .string "MR. BRINEY: SLATEPORT, is it?\p" .string "Anchors aweigh!\n" .string "PEEKO, we're setting sail, my darling!$" -DewfordTown_Text_JustTellMeWhenYouNeedToSetSail: @ 81E9D8F +DewfordTown_Text_JustTellMeWhenYouNeedToSetSail: .string "MR. BRINEY: You just tell me whenever\n" .string "you need to set sail again!$" -DewfordTown_Text_GettingItchToFish: @ 81E9DD1 +DewfordTown_Text_GettingItchToFish: .string "This is a renowned fishing spot.\n" .string "Are you getting the itch to fish?$" -DewfordTown_Text_GiveYouOneOfMyRods: @ 81E9E14 +DewfordTown_Text_GiveYouOneOfMyRods: .string "I hear you, and I like what\n" .string "you're saying!\p" .string "I'll give you one of my fishing RODS.$" -DewfordTown_Text_ThrowInFishingAdvice: @ 81E9E65 +DewfordTown_Text_ThrowInFishingAdvice: .string "And, as an added bonus, I'll even throw\n" .string "in a little fishing advice!\p" .string "First, you want to face the water,\n" @@ -733,19 +733,19 @@ DewfordTown_Text_ThrowInFishingAdvice: @ 81E9E65 .string "you need to time the pulls on your ROD\l" .string "to haul them in.$" -DewfordTown_Text_ThatsTooBadThen: @ 81E9F92 +DewfordTown_Text_ThatsTooBadThen: .string "Oh, is that so?\n" .string "That's too bad, then.$" -DewfordTown_Text_HowsYourFishing: @ 81E9FB8 +DewfordTown_Text_HowsYourFishing: .string "Yo!\n" .string "How's your fishing?$" -DewfordTown_Text_GreatHaulInSomeBigOnes: @ 81E9FD0 +DewfordTown_Text_GreatHaulInSomeBigOnes: .string "Is that right! That's great!\n" .string "Haul in some big ones!$" -DewfordTown_Text_FishingAdvice: @ 81EA004 +DewfordTown_Text_FishingAdvice: .string "Oh, hey, don't get down on yourself!\n" .string "I'll give you a little fishing advice.\p" .string "First, you want to face the water,\n" @@ -757,7 +757,7 @@ DewfordTown_Text_FishingAdvice: @ 81EA004 .string "you need to time the pulls on your ROD\l" .string "to haul them in.$" -DewfordTown_Text_XIsTheBiggestHappeningThingRight: @ 81EA136 +DewfordTown_Text_XIsTheBiggestHappeningThingRight: .string "I like what's hip, happening, and trendy.\n" .string "I'm always checking it out.\p" .string "Listen, have you heard about this new\n" @@ -771,13 +771,13 @@ DewfordTown_Text_XIsTheBiggestHappeningThingRight: @ 81EA136 .string "“{STR_VAR_1}”\l" .string "is the biggest happening thing, right?$" -DewfordTown_Text_TellMeWhatsNewAndIn: @ 81EA242 +DewfordTown_Text_TellMeWhatsNewAndIn: .string "Hunh?\n" .string "It's not the hip and happening thing?\p" .string "Well, hey, you have to tell me,\n" .string "what's new and what's “in”?$" -DewfordTown_Text_OfCourseIKnowAboutThat: @ 81EA2AA +DewfordTown_Text_OfCourseIKnowAboutThat: .string "Hunh?\n" .string "“{STR_VAR_2}”?\p" .string "… …\p" @@ -795,18 +795,18 @@ DewfordTown_Text_OfCourseIKnowAboutThat: @ 81EA2AA .string "Now, “{STR_VAR_2}” is\n" .string "what's vital and in tune with the times!$" -DewfordTown_Text_XHuhIThinkYIsCool: @ 81EA3FE +DewfordTown_Text_XHuhIThinkYIsCool: .string "Hmm…\n" .string "“{STR_VAR_2},” huh?\p" .string "But personally, I think\n" .string "“{STR_VAR_1}”\l" .string "is what's real in cool.$" -DewfordTown_Text_HearOfAnyTrendsComeShareWithMe: @ 81EA443 +DewfordTown_Text_HearOfAnyTrendsComeShareWithMe: .string "Well, if you hear of any happening new\n" .string "trends, come share them with me, okay?$" -DewfordTown_Text_YeahDefinitionOfInRightNow: @ 81EA491 +DewfordTown_Text_YeahDefinitionOfInRightNow: .string "Yeah, absolutely right!\p" .string "“{STR_VAR_1}” is the\n" .string "definition of “in” right now.$" diff --git a/data/maps/DewfordTown_Gym/scripts.inc b/data/maps/DewfordTown_Gym/scripts.inc index f671840454..d2b51766af 100644 --- a/data/maps/DewfordTown_Gym/scripts.inc +++ b/data/maps/DewfordTown_Gym/scripts.inc @@ -1,12 +1,12 @@ -DewfordTown_Gym_MapScripts:: @ 81FC63C +DewfordTown_Gym_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, DewfordTown_Gym_OnTransition .byte 0 -DewfordTown_Gym_OnTransition: @ 81FC642 +DewfordTown_Gym_OnTransition: call DewfordTown_Gym_EventScript_SetFlashRadius end -DewfordTown_Gym_EventScript_SetFlashRadius:: @ 81FC648 +DewfordTown_Gym_EventScript_SetFlashRadius:: goto_if_defeated TRAINER_BRAWLY_1, DewfordTown_Gym_EventScript_SetLightsOn call DewfordTown_Gym_EventScript_CountTrainersDefeated copyvar VAR_0x8001, VAR_0x8000 @@ -24,39 +24,39 @@ DewfordTown_Gym_EventScript_SetFlashRadius:: @ 81FC648 goto_if_eq DewfordTown_Gym_EventScript_SetFlashRadius2 goto DewfordTown_Gym_EventScript_SetFlashRadius1 -DewfordTown_Gym_EventScript_SetLightsOn:: @ 81FC6A2 +DewfordTown_Gym_EventScript_SetLightsOn:: setflashradius 0 return -DewfordTown_Gym_EventScript_SetFlashRadius1:: @ 81FC6A6 +DewfordTown_Gym_EventScript_SetFlashRadius1:: setflashradius 1 return -DewfordTown_Gym_EventScript_SetFlashRadius2:: @ 81FC6AA +DewfordTown_Gym_EventScript_SetFlashRadius2:: setflashradius 2 return -DewfordTown_Gym_EventScript_SetFlashRadius3:: @ 81FC6AE +DewfordTown_Gym_EventScript_SetFlashRadius3:: setflashradius 3 return -DewfordTown_Gym_EventScript_SetFlashRadius4:: @ 81FC6B2 +DewfordTown_Gym_EventScript_SetFlashRadius4:: setflashradius 4 return -DewfordTown_Gym_EventScript_SetFlashRadius5:: @ 81FC6B6 +DewfordTown_Gym_EventScript_SetFlashRadius5:: setflashradius 5 return -DewfordTown_Gym_EventScript_SetFlashRadius6:: @ 81FC6BA +DewfordTown_Gym_EventScript_SetFlashRadius6:: setflashradius 6 return -DewfordTown_Gym_EventScript_SetFlashRadius7:: @ 81FC6BE +DewfordTown_Gym_EventScript_SetFlashRadius7:: setflashradius 7 return -DewfordTown_Gym_EventScript_BrightenRoom:: @ 81FC6C2 +DewfordTown_Gym_EventScript_BrightenRoom:: call DewfordTown_Gym_EventScript_CountTrainersDefeated nop1 compare VAR_0x8000, VAR_0x8001 @@ -75,75 +75,75 @@ DewfordTown_Gym_EventScript_BrightenRoom:: @ 81FC6C2 compare VAR_0x8000, 6 goto_if_eq DewfordTown_Gym_EventScript_AnimateFlash6Trainers -DewfordTown_Gym_EventScript_NoLightChange:: @ 81FC71A +DewfordTown_Gym_EventScript_NoLightChange:: return @ NOTE: A little confusingly, a larger animateflash param value is a smaller flash radius -DewfordTown_Gym_EventScript_AnimateFlash1Trainer:: @ 81FC71B +DewfordTown_Gym_EventScript_AnimateFlash1Trainer:: playse SE_SWITCH animateflash 6 call DewfordTown_Gym_EventScript_SetFlashRadius return -DewfordTown_Gym_EventScript_AnimateFlash2Trainers:: @ 81FC726 +DewfordTown_Gym_EventScript_AnimateFlash2Trainers:: playse SE_SWITCH animateflash 5 call DewfordTown_Gym_EventScript_SetFlashRadius return -DewfordTown_Gym_EventScript_AnimateFlash3Trainers:: @ 81FC731 +DewfordTown_Gym_EventScript_AnimateFlash3Trainers:: playse SE_SWITCH animateflash 4 call DewfordTown_Gym_EventScript_SetFlashRadius return -DewfordTown_Gym_EventScript_AnimateFlash4Trainers:: @ 81FC73C +DewfordTown_Gym_EventScript_AnimateFlash4Trainers:: playse SE_SWITCH animateflash 3 call DewfordTown_Gym_EventScript_SetFlashRadius return -DewfordTown_Gym_EventScript_AnimateFlash5Trainers:: @ 81FC747 +DewfordTown_Gym_EventScript_AnimateFlash5Trainers:: playse SE_SWITCH animateflash 2 call DewfordTown_Gym_EventScript_SetFlashRadius return -DewfordTown_Gym_EventScript_AnimateFlash6Trainers:: @ 81FC752 +DewfordTown_Gym_EventScript_AnimateFlash6Trainers:: playse SE_SWITCH animateflash 1 call DewfordTown_Gym_EventScript_SetFlashRadius return -DewfordTown_Gym_EventScript_AnimateFlashFullBrightness:: @ 81FC75D +DewfordTown_Gym_EventScript_AnimateFlashFullBrightness:: playse SE_SWITCH animateflash 0 call DewfordTown_Gym_EventScript_SetFlashRadius return -DewfordTown_Gym_EventScript_CountTrainersDefeated:: @ 81FC768 +DewfordTown_Gym_EventScript_CountTrainersDefeated:: setvar VAR_0x8000, 0 goto_if_not_defeated TRAINER_TAKAO, DewfordTown_Gym_EventScript_CheckJocelyn addvar VAR_0x8000, 1 -DewfordTown_Gym_EventScript_CheckJocelyn:: @ 81FC77B +DewfordTown_Gym_EventScript_CheckJocelyn:: goto_if_not_defeated TRAINER_JOCELYN, DewfordTown_Gym_EventScript_CheckLaura addvar VAR_0x8000, 1 -DewfordTown_Gym_EventScript_CheckLaura:: @ 81FC789 +DewfordTown_Gym_EventScript_CheckLaura:: goto_if_not_defeated TRAINER_LAURA, DewfordTown_Gym_EventScript_CheckBrenden addvar VAR_0x8000, 1 -DewfordTown_Gym_EventScript_CheckBrenden:: @ 81FC797 +DewfordTown_Gym_EventScript_CheckBrenden:: goto_if_not_defeated TRAINER_BRENDEN, DewfordTown_Gym_EventScript_CheckCristian addvar VAR_0x8000, 1 -DewfordTown_Gym_EventScript_CheckCristian:: @ 81FC7A5 +DewfordTown_Gym_EventScript_CheckCristian:: goto_if_not_defeated TRAINER_CRISTIAN, DewfordTown_Gym_EventScript_CheckLilith addvar VAR_0x8000, 1 -DewfordTown_Gym_EventScript_CheckLilith:: @ 81FC7B3 +DewfordTown_Gym_EventScript_CheckLilith:: goto_if_not_defeated TRAINER_LILITH, DewfordTown_Gym_EventScript_StopCountingTrainers addvar VAR_0x8000, 1 -DewfordTown_Gym_EventScript_StopCountingTrainers:: @ 81FC7C1 +DewfordTown_Gym_EventScript_StopCountingTrainers:: return -DewfordTown_Gym_EventScript_Brawly:: @ 81FC7C2 +DewfordTown_Gym_EventScript_Brawly:: trainerbattle_single TRAINER_BRAWLY_1, DewfordTown_Gym_Text_BrawlyIntro, DewfordTown_Gym_Text_BrawlyDefeat, DewfordTown_Gym_EventScript_BrawlyDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -153,7 +153,7 @@ DewfordTown_Gym_EventScript_Brawly:: @ 81FC7C2 release end -DewfordTown_Gym_EventScript_BrawlyDefeated:: @ 81FC7F7 +DewfordTown_Gym_EventScript_BrawlyDefeated:: call DewfordTown_Gym_EventScript_AnimateFlashFullBrightness message DewfordTown_Gym_Text_ReceivedKnuckleBadge waitmessage @@ -180,7 +180,7 @@ DewfordTown_Gym_EventScript_BrawlyDefeated:: @ 81FC7F7 release end -DewfordTown_Gym_EventScript_GiveBulkUp:: @ 81FC855 +DewfordTown_Gym_EventScript_GiveBulkUp:: giveitem ITEM_TM08 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_BagIsFull @@ -188,7 +188,7 @@ DewfordTown_Gym_EventScript_GiveBulkUp:: @ 81FC855 setflag FLAG_RECEIVED_TM08 return -DewfordTown_Gym_EventScript_GiveBulkUp2: @ 81FC878 +DewfordTown_Gym_EventScript_GiveBulkUp2: giveitem ITEM_TM08 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull @@ -197,72 +197,72 @@ DewfordTown_Gym_EventScript_GiveBulkUp2: @ 81FC878 release end -DewfordTown_Gym_EventScript_BrawlyRematch:: @ 81FC89C +DewfordTown_Gym_EventScript_BrawlyRematch:: trainerbattle_rematch_double TRAINER_BRAWLY_1, DewfordTown_Gym_Text_BrawlyPreRematch, DewfordTown_Gym_Text_BrawlyRematchDefeat, DewfordTown_Gym_Text_BrawlyRematchNeedTwoMons msgbox DewfordTown_Gym_Text_BrawlyPostRematch, MSGBOX_AUTOCLOSE end -DewfordTown_Gym_EventScript_Takao:: @ 81FC8B7 +DewfordTown_Gym_EventScript_Takao:: trainerbattle_single TRAINER_TAKAO, DewfordTown_Gym_Text_TakaoIntro, DewfordTown_Gym_Text_TakaoDefeat, DewfordTown_Gym_EventScript_TakaoBrightenRoom msgbox DewfordTown_Gym_Text_TakaoPostBattle, MSGBOX_AUTOCLOSE end -DewfordTown_Gym_EventScript_TakaoBrightenRoom:: @ 81FC8D2 +DewfordTown_Gym_EventScript_TakaoBrightenRoom:: call DewfordTown_Gym_EventScript_BrightenRoom release end -DewfordTown_Gym_EventScript_Jocelyn:: @ 81FC8D9 +DewfordTown_Gym_EventScript_Jocelyn:: trainerbattle_single TRAINER_JOCELYN, DewfordTown_Gym_Text_JocelynIntro, DewfordTown_Gym_Text_JocelynDefeat, DewfordTown_Gym_EventScript_JocelynBrightenRoom msgbox DewfordTown_Gym_Text_JocelynPostBattle, MSGBOX_AUTOCLOSE end -DewfordTown_Gym_EventScript_JocelynBrightenRoom:: @ 81FC8F4 +DewfordTown_Gym_EventScript_JocelynBrightenRoom:: call DewfordTown_Gym_EventScript_BrightenRoom release end -DewfordTown_Gym_EventScript_Laura:: @ 81FC8FB +DewfordTown_Gym_EventScript_Laura:: trainerbattle_single TRAINER_LAURA, DewfordTown_Gym_Text_LauraIntro, DewfordTown_Gym_Text_LauraDefeat, DewfordTown_Gym_EventScript_LauraBrightenRoom msgbox DewfordTown_Gym_Text_LauraPostBattle, MSGBOX_AUTOCLOSE end -DewfordTown_Gym_EventScript_LauraBrightenRoom:: @ 81FC916 +DewfordTown_Gym_EventScript_LauraBrightenRoom:: call DewfordTown_Gym_EventScript_BrightenRoom release end -DewfordTown_Gym_EventScript_Brenden:: @ 81FC91D +DewfordTown_Gym_EventScript_Brenden:: trainerbattle_single TRAINER_BRENDEN, DewfordTown_Gym_Text_BrendenIntro, DewfordTown_Gym_Text_BrendenDefeat, DewfordTown_Gym_EventScript_BrendenBrightenRoom msgbox DewfordTown_Gym_Text_BrendenPostBattle, MSGBOX_AUTOCLOSE end -DewfordTown_Gym_EventScript_BrendenBrightenRoom:: @ 81FC938 +DewfordTown_Gym_EventScript_BrendenBrightenRoom:: call DewfordTown_Gym_EventScript_BrightenRoom release end -DewfordTown_Gym_EventScript_Cristian:: @ 81FC93F +DewfordTown_Gym_EventScript_Cristian:: trainerbattle_single TRAINER_CRISTIAN, DewfordTown_Gym_Text_CristianIntro, DewfordTown_Gym_Text_CristianDefeat, DewfordTown_Gym_EventScript_CristianBrightenRoom msgbox DewfordTown_Gym_Text_CristianPostBattle, MSGBOX_AUTOCLOSE end -DewfordTown_Gym_EventScript_CristianBrightenRoom:: @ 81FC95A +DewfordTown_Gym_EventScript_CristianBrightenRoom:: call DewfordTown_Gym_EventScript_BrightenRoom release end -DewfordTown_Gym_EventScript_Lilith:: @ 81FC961 +DewfordTown_Gym_EventScript_Lilith:: trainerbattle_single TRAINER_LILITH, DewfordTown_Gym_Text_LilithIntro, DewfordTown_Gym_Text_LilithDefeat, DewfordTown_Gym_EventScript_LilithBrightenRoom msgbox DewfordTown_Gym_Text_LilithPostBattle, MSGBOX_AUTOCLOSE end -DewfordTown_Gym_EventScript_LilithBrightenRoom:: @ 81FC97C +DewfordTown_Gym_EventScript_LilithBrightenRoom:: call DewfordTown_Gym_EventScript_BrightenRoom release end -DewfordTown_Gym_EventScript_GymGuide:: @ 81FC983 +DewfordTown_Gym_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_DEWFORD_GYM, DewfordTown_Gym_EventScript_GymGuidePostVictory @@ -270,34 +270,34 @@ DewfordTown_Gym_EventScript_GymGuide:: @ 81FC983 release end -DewfordTown_Gym_EventScript_GymGuidePostVictory:: @ 81FC998 +DewfordTown_Gym_EventScript_GymGuidePostVictory:: msgbox DewfordTown_Gym_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end -DewfordTown_Gym_EventScript_LeftGymStatue:: @ 81FC9A2 +DewfordTown_Gym_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE02_GET, DewfordTown_Gym_EventScript_GymStatueCertified goto DewfordTown_Gym_EventScript_GymStatue end -DewfordTown_Gym_EventScript_RightGymStatue:: @ 81FC9B2 +DewfordTown_Gym_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE02_GET, DewfordTown_Gym_EventScript_GymStatueCertified goto DewfordTown_Gym_EventScript_GymStatue end -DewfordTown_Gym_EventScript_GymStatueCertified:: @ 81FC9C2 +DewfordTown_Gym_EventScript_GymStatueCertified:: msgbox DewfordTown_Gym_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end -DewfordTown_Gym_EventScript_GymStatue:: @ 81FC9CC +DewfordTown_Gym_EventScript_GymStatue:: msgbox DewfordTown_Gym_Text_GymStatue, MSGBOX_DEFAULT releaseall end -DewfordTown_Gym_Text_GymGuideAdvice: @ 81FC9D6 +DewfordTown_Gym_Text_GymGuideAdvice: .string "Hey, how's it going, CHAMPION-\n" .string "bound {PLAYER}?\p" .string "DEWFORD's GYM LEADER BRAWLY commands\n" @@ -313,88 +313,88 @@ DewfordTown_Gym_Text_GymGuideAdvice: @ 81FC9D6 .string "the TRAINERS in your way.\p" .string "Hey, okay, go for it!$" -DewfordTown_Gym_Text_GymGuidePostVictory: @ 81FCB5C +DewfordTown_Gym_Text_GymGuidePostVictory: .string "Whoah! It's turned too bright in here!\p" .string "Your future is bright, too!$" -DewfordTown_Gym_Text_TakaoIntro: @ 81FCB9F +DewfordTown_Gym_Text_TakaoIntro: .string "Might is right!\n" .string "Come on!$" -DewfordTown_Gym_Text_TakaoDefeat: @ 81FCBB8 +DewfordTown_Gym_Text_TakaoDefeat: .string "Not enough power…$" -DewfordTown_Gym_Text_TakaoPostBattle: @ 81FCBCA +DewfordTown_Gym_Text_TakaoPostBattle: .string "Your skill overcame my strength!\n" .string "Your technique is commendable!$" -DewfordTown_Gym_Text_JocelynIntro: @ 81FCC0A +DewfordTown_Gym_Text_JocelynIntro: .string "There's no need for BRAWLY to be\n" .string "involved!\p" .string "I'll crush you!$" -DewfordTown_Gym_Text_JocelynDefeat: @ 81FCC45 +DewfordTown_Gym_Text_JocelynDefeat: .string "But… How?\n" .string "How could I lose so easily?$" -DewfordTown_Gym_Text_JocelynPostBattle: @ 81FCC6B +DewfordTown_Gym_Text_JocelynPostBattle: .string "I'm not going to waste this loss.\n" .string "I'll use it to motivate me to train!\p" .string "One day I'll become a GYM LEADER…\p" .string "No, I'll become the POKéMON LEAGUE\n" .string "CHAMPION!$" -DewfordTown_Gym_Text_LauraIntro: @ 81FCD01 +DewfordTown_Gym_Text_LauraIntro: .string "Don't you dare brush me off!\n" .string "It's not my fault if you cry!$" -DewfordTown_Gym_Text_LauraDefeat: @ 81FCD3C +DewfordTown_Gym_Text_LauraDefeat: .string "Waaaaaaah!\n" .string "I lost!$" -DewfordTown_Gym_Text_LauraPostBattle: @ 81FCD4F +DewfordTown_Gym_Text_LauraPostBattle: .string "I battle in the dark to make my heart\n" .string "stronger.\p" .string "But because it's so dark, I can never\n" .string "see BRAWLY's face…$" -DewfordTown_Gym_Text_LilithIntro: @ 81FCDB8 +DewfordTown_Gym_Text_LilithIntro: .string "Ufufu…\n" .string "Are you stumbling around in the dark?$" -DewfordTown_Gym_Text_LilithDefeat: @ 81FCDE5 +DewfordTown_Gym_Text_LilithDefeat: .string "Oh, you…\n" .string "I don't want to know you!$" -DewfordTown_Gym_Text_LilithPostBattle: @ 81FCE08 +DewfordTown_Gym_Text_LilithPostBattle: .string "You deserve to stay lost and end up\n" .string "back at the entrance again!$" -DewfordTown_Gym_Text_BrendenIntro: @ 81FCE48 +DewfordTown_Gym_Text_BrendenIntro: .string "I'll show you the gumption of\n" .string "a sailing man!$" -DewfordTown_Gym_Text_BrendenDefeat: @ 81FCE75 +DewfordTown_Gym_Text_BrendenDefeat: .string "How'd this happen?\n" .string "It's not like me to lose this way!$" -DewfordTown_Gym_Text_BrendenPostBattle: @ 81FCEAB +DewfordTown_Gym_Text_BrendenPostBattle: .string "Oh, aye! You're worthy of seeing\n" .string "our GYM LEADER.$" -DewfordTown_Gym_Text_CristianIntro: @ 81FCEDC +DewfordTown_Gym_Text_CristianIntro: .string "If you mean to pass, it has to be\n" .string "through me!$" -DewfordTown_Gym_Text_CristianDefeat: @ 81FCF0A +DewfordTown_Gym_Text_CristianDefeat: .string "Grrrrr!\n" .string "Vastly overpowered!$" -DewfordTown_Gym_Text_CristianPostBattle: @ 81FCF26 +DewfordTown_Gym_Text_CristianPostBattle: .string "You win!\n" .string "Go after that BADGE!$" -DewfordTown_Gym_Text_BrawlyIntro: @ 81FCF44 +DewfordTown_Gym_Text_BrawlyIntro: .string "I'm BRAWLY!\n" .string "DEWFORD's GYM LEADER!\p" .string "I've been churned in the rough waves\n" @@ -403,18 +403,18 @@ DewfordTown_Gym_Text_BrawlyIntro: @ 81FCF44 .string "So you wanted to challenge me?\n" .string "Let me see what you're made of!$" -DewfordTown_Gym_Text_BrawlyDefeat: @ 81FD008 +DewfordTown_Gym_Text_BrawlyDefeat: .string "Whoah, wow! You made a much bigger\n" .string "splash than I expected!\p" .string "You swamped me!\p" .string "Okay, you've got me.\n" .string "Take this GYM BADGE!$" -DewfordTown_Gym_Text_ReceivedKnuckleBadge: @ 81FD07D +DewfordTown_Gym_Text_ReceivedKnuckleBadge: .string "{PLAYER} received the KNUCKLE BADGE\n" .string "from BRAWLY.$" -DewfordTown_Gym_Text_KnuckleBadgeInfoTakeThis: @ 81FD0A8 +DewfordTown_Gym_Text_KnuckleBadgeInfoTakeThis: .string "The KNUCKLE BADGE makes all POKéMON\n" .string "up to Level 30, even those you get in\l" .string "trades, obey without question.\p" @@ -423,30 +423,30 @@ DewfordTown_Gym_Text_KnuckleBadgeInfoTakeThis: @ 81FD0A8 .string "If you'd like, use this TECHNICAL\n" .string "MACHINE, too.$" -DewfordTown_Gym_Text_ExplainBulkUp: @ 81FD181 +DewfordTown_Gym_Text_ExplainBulkUp: .string "That TM08 contains BULK UP.\p" .string "It's a move that raises both ATTACK\n" .string "and DEFENSE stats.\p" .string "… … … … … …$" -DewfordTown_Gym_Text_RegisteredBrawly: @ 81FD1E0 +DewfordTown_Gym_Text_RegisteredBrawly: .string "Registered GYM LEADER BRAWLY\n" .string "in the POKéNAV.$" -DewfordTown_Gym_Text_BrawlyPostBattle: @ 81FD20D +DewfordTown_Gym_Text_BrawlyPostBattle: .string "I can see your talent becoming a giant\n" .string "wave to cause a storm of astonishment\l" .string "among TRAINERS one day!$" -DewfordTown_Gym_Text_GymStatue: @ 81FD272 +DewfordTown_Gym_Text_GymStatue: .string "DEWFORD TOWN POKéMON GYM$" -DewfordTown_Gym_Text_GymStatueCertified: @ 81FD28B +DewfordTown_Gym_Text_GymStatueCertified: .string "DEWFORD TOWN POKéMON GYM\p" .string "BRAWLY'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" -DewfordTown_Gym_Text_BrawlyPreRematch: @ 81FD2C4 +DewfordTown_Gym_Text_BrawlyPreRematch: .string "BRAWLY: A wave may draw back, but it\n" .string "always returns to the shore.\p" .string "A giant wave of a talent like you…\n" @@ -454,16 +454,16 @@ DewfordTown_Gym_Text_BrawlyPreRematch: @ 81FD2C4 .string "Show me how much higher\n" .string "you've gone!$" -DewfordTown_Gym_Text_BrawlyRematchDefeat: @ 81FD367 +DewfordTown_Gym_Text_BrawlyRematchDefeat: .string "Wow!\n" .string "Swamped again!$" -DewfordTown_Gym_Text_BrawlyPostRematch: @ 81FD37B +DewfordTown_Gym_Text_BrawlyPostRematch: .string "BRAWLY: Battling is vast and it's deep.\n" .string "You can't see the bottom.\l" .string "It's just like the sea of HOENN!$" -DewfordTown_Gym_Text_BrawlyRematchNeedTwoMons: @ 81FD3DE +DewfordTown_Gym_Text_BrawlyRematchNeedTwoMons: .string "BRAWLY: A wave may draw back, but it\n" .string "always returns to the shore.\p" .string "A giant wave of a talent like you…\n" diff --git a/data/maps/DewfordTown_Hall/scripts.inc b/data/maps/DewfordTown_Hall/scripts.inc index 72db323178..db9d13518b 100644 --- a/data/maps/DewfordTown_Hall/scripts.inc +++ b/data/maps/DewfordTown_Hall/scripts.inc @@ -3,26 +3,26 @@ .set LOCALID_SCHOOL_KID_M, 7 .set LOCALID_PSYCHIC_M, 8 -DewfordTown_Hall_MapScripts:: @ 81FD4CF +DewfordTown_Hall_MapScripts:: .byte 0 -DewfordTown_Hall_EventScript_Girl:: @ 81FD4D0 +DewfordTown_Hall_EventScript_Girl:: lock faceplayer call Common_EventScript_BufferTrendyPhrase - special TrendyPhraseIsOld + special IsTrendyPhraseBoring compare VAR_RESULT, TRUE goto_if_eq DewfordTown_Hall_EventScript_GirlBoredOfTrend msgbox DewfordTown_Hall_Text_CantImagineLifeWithoutTrend, MSGBOX_DEFAULT release end -DewfordTown_Hall_EventScript_GirlBoredOfTrend:: @ 81FD4EF +DewfordTown_Hall_EventScript_GirlBoredOfTrend:: msgbox DewfordTown_Hall_Text_GettingBoredOfTrend, MSGBOX_DEFAULT release end -DewfordTown_Hall_EventScript_Woman:: @ 81FD4F9 +DewfordTown_Hall_EventScript_Woman:: lock faceplayer call Common_EventScript_BufferTrendyPhrase @@ -30,7 +30,7 @@ DewfordTown_Hall_EventScript_Woman:: @ 81FD4F9 release end -DewfordTown_Hall_EventScript_Man:: @ 81FD50A +DewfordTown_Hall_EventScript_Man:: lock faceplayer call Common_EventScript_BufferTrendyPhrase @@ -42,17 +42,17 @@ DewfordTown_Hall_EventScript_Man:: @ 81FD50A goto_if_eq DewfordTown_Hall_EventScript_RejectTrendLink end -DewfordTown_Hall_EventScript_ConfirmTrendLink:: @ 81FD533 +DewfordTown_Hall_EventScript_ConfirmTrendLink:: msgbox DewfordTown_Hall_Text_MyHunchWasRight, MSGBOX_DEFAULT release end -DewfordTown_Hall_EventScript_RejectTrendLink:: @ 81FD53D +DewfordTown_Hall_EventScript_RejectTrendLink:: msgbox DewfordTown_Hall_Text_NotEasyToKeepUp, MSGBOX_DEFAULT release end -DewfordTown_Hall_EventScript_ExpertM:: @ 81FD547 +DewfordTown_Hall_EventScript_ExpertM:: lock faceplayer call Common_EventScript_BufferTrendyPhrase @@ -63,7 +63,7 @@ DewfordTown_Hall_EventScript_ExpertM:: @ 81FD547 release end -DewfordTown_Hall_EventScript_Twin:: @ 81FD563 +DewfordTown_Hall_EventScript_Twin:: lock faceplayer call Common_EventScript_BufferTrendyPhrase @@ -74,7 +74,7 @@ DewfordTown_Hall_EventScript_Twin:: @ 81FD563 release end -DewfordTown_Hall_EventScript_LittleBoy:: @ 81FD57F +DewfordTown_Hall_EventScript_LittleBoy:: lock faceplayer call Common_EventScript_BufferTrendyPhrase @@ -82,14 +82,14 @@ DewfordTown_Hall_EventScript_LittleBoy:: @ 81FD57F release end -DewfordTown_Hall_EventScript_Bookshelf:: @ 81FD590 +DewfordTown_Hall_EventScript_Bookshelf:: lockall call Common_EventScript_BufferTrendyPhrase msgbox DewfordTown_Hall_Text_BooksAboutTrend, MSGBOX_DEFAULT releaseall end -DewfordTown_Hall_EventScript_Painting:: @ 81FD5A0 +DewfordTown_Hall_EventScript_Painting:: lockall call Common_EventScript_BufferTrendyPhrase special GetDewfordHallPaintingNameIndex @@ -104,39 +104,39 @@ DewfordTown_Hall_EventScript_Painting:: @ 81FD5A0 case 7, DewfordTown_Hall_EventScript_LastTitle end -DewfordTown_Hall_EventScript_ScreamTitle:: @ 81FD607 +DewfordTown_Hall_EventScript_ScreamTitle:: msgbox DewfordTown_Hall_Text_TrendsScream, MSGBOX_DEFAULT releaseall end -DewfordTown_Hall_EventScript_SmileTitle:: @ 81FD611 +DewfordTown_Hall_EventScript_SmileTitle:: msgbox DewfordTown_Hall_Text_TrendsSmile, MSGBOX_DEFAULT releaseall end -DewfordTown_Hall_EventScript_LastTitle:: @ 81FD61B +DewfordTown_Hall_EventScript_LastTitle:: msgbox DewfordTown_Hall_Text_LastTrend, MSGBOX_DEFAULT releaseall end -DewfordTown_Hall_EventScript_BirthTitle:: @ 81FD625 +DewfordTown_Hall_EventScript_BirthTitle:: msgbox DewfordTown_Hall_Text_BirthOfTrend, MSGBOX_DEFAULT releaseall end -DewfordTown_Hall_EventScript_SchoolKidM:: @ 81FD62F +DewfordTown_Hall_EventScript_SchoolKidM:: lockall setvar VAR_0x8008, 0 goto DewfordTown_Hall_EventScript_DoTrendDebate end -DewfordTown_Hall_EventScript_PsychicM:: @ 81FD63B +DewfordTown_Hall_EventScript_PsychicM:: lockall setvar VAR_0x8008, 1 goto DewfordTown_Hall_EventScript_DoTrendDebate end -DewfordTown_Hall_EventScript_DoTrendDebate:: @ 81FD647 +DewfordTown_Hall_EventScript_DoTrendDebate:: call Common_EventScript_BufferTrendyPhrase special GetDewfordHallPaintingNameIndex switch VAR_RESULT @@ -150,7 +150,7 @@ DewfordTown_Hall_EventScript_DoTrendDebate:: @ 81FD647 case 7, DewfordTown_Hall_EventScript_TrendDebate5 end -DewfordTown_Hall_EventScript_TrendDebate1:: @ 81FD6AD +DewfordTown_Hall_EventScript_TrendDebate1:: call DewfordTown_Hall_EventScript_DebateReact1 msgbox DewfordTown_Hall_Text_SawTrendCoolestThing, MSGBOX_DEFAULT call DewfordTown_Hall_EventScript_DebateReact2 @@ -158,7 +158,7 @@ DewfordTown_Hall_EventScript_TrendDebate1:: @ 81FD6AD releaseall end -DewfordTown_Hall_EventScript_TrendDebate2:: @ 81FD6C9 +DewfordTown_Hall_EventScript_TrendDebate2:: call DewfordTown_Hall_EventScript_DebateReact1 msgbox DewfordTown_Hall_Text_ComposedTrendThemeSong, MSGBOX_DEFAULT call DewfordTown_Hall_EventScript_DebateReact2 @@ -166,7 +166,7 @@ DewfordTown_Hall_EventScript_TrendDebate2:: @ 81FD6C9 releaseall end -DewfordTown_Hall_EventScript_TrendDebate3:: @ 81FD6E5 +DewfordTown_Hall_EventScript_TrendDebate3:: call DewfordTown_Hall_EventScript_DebateReact1 msgbox DewfordTown_Hall_Text_OrganizeTrendParty, MSGBOX_DEFAULT call DewfordTown_Hall_EventScript_DebateReact2 @@ -174,7 +174,7 @@ DewfordTown_Hall_EventScript_TrendDebate3:: @ 81FD6E5 releaseall end -DewfordTown_Hall_EventScript_TrendDebate4:: @ 81FD701 +DewfordTown_Hall_EventScript_TrendDebate4:: call DewfordTown_Hall_EventScript_DebateReact1 msgbox DewfordTown_Hall_Text_TrendHasBecomePartOfLife, MSGBOX_DEFAULT call DewfordTown_Hall_EventScript_DebateReact2 @@ -182,7 +182,7 @@ DewfordTown_Hall_EventScript_TrendDebate4:: @ 81FD701 releaseall end -DewfordTown_Hall_EventScript_TrendDebate5:: @ 81FD71D +DewfordTown_Hall_EventScript_TrendDebate5:: call DewfordTown_Hall_EventScript_DebateReact1 msgbox DewfordTown_Hall_Text_IfWeTeamUpWellBeInvincible, MSGBOX_DEFAULT call DewfordTown_Hall_EventScript_DebateReact2 @@ -190,10 +190,10 @@ DewfordTown_Hall_EventScript_TrendDebate5:: @ 81FD71D releaseall end -DewfordTown_Hall_EventScript_DontMovePlayer1:: @ 81FD739 +DewfordTown_Hall_EventScript_DontMovePlayer1:: return -DewfordTown_Hall_EventScript_DebateReact1:: @ 81FD73A +DewfordTown_Hall_EventScript_DebateReact1:: applymovement LOCALID_PSYCHIC_M, DewfordTown_Hall_Movement_PsychicWalkInPlaceLeft waitmovement 0 compare VAR_0x8008, 0 @@ -202,17 +202,17 @@ DewfordTown_Hall_EventScript_DebateReact1:: @ 81FD73A goto_if_eq DewfordTown_Hall_EventScript_DontMovePlayer2 end -DewfordTown_Hall_EventScript_PlayerReactWest:: @ 81FD75B +DewfordTown_Hall_EventScript_PlayerReactWest:: compare VAR_FACING, DIR_EAST goto_if_eq DewfordTown_Hall_EventScript_DontMovePlayer1 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -DewfordTown_Hall_EventScript_DontMovePlayer2:: @ 81FD771 +DewfordTown_Hall_EventScript_DontMovePlayer2:: return -DewfordTown_Hall_EventScript_DebateReact2:: @ 81FD772 +DewfordTown_Hall_EventScript_DebateReact2:: applymovement LOCALID_SCHOOL_KID_M, DewfordTown_Hall_Movement_SchoolKidWalkInPlaceRight waitmovement 0 compare VAR_0x8008, 0 @@ -221,39 +221,39 @@ DewfordTown_Hall_EventScript_DebateReact2:: @ 81FD772 goto_if_eq DewfordTown_Hall_EventScript_PlayerReactEast end -DewfordTown_Hall_EventScript_PlayerReactNorthSouth:: @ 81FD793 +DewfordTown_Hall_EventScript_PlayerReactNorthSouth:: compare VAR_FACING, DIR_NORTH call_if_eq DewfordTown_Hall_EventScript_PlayerWalkInPlaceUp compare VAR_FACING, DIR_SOUTH call_if_eq DewfordTown_Hall_EventScript_PlayerWalkInPlaceDown return -DewfordTown_Hall_EventScript_PlayerWalkInPlaceUp:: @ 81FD7AA +DewfordTown_Hall_EventScript_PlayerWalkInPlaceUp:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -DewfordTown_Hall_EventScript_PlayerWalkInPlaceDown:: @ 81FD7B5 +DewfordTown_Hall_EventScript_PlayerWalkInPlaceDown:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -DewfordTown_Hall_EventScript_PlayerReactEast:: @ 81FD7C0 +DewfordTown_Hall_EventScript_PlayerReactEast:: compare VAR_FACING, DIR_WEST goto_if_eq DewfordTown_Hall_EventScript_DontMovePlayer1 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -DewfordTown_Hall_Movement_PsychicWalkInPlaceLeft: @ 81FD7D6 +DewfordTown_Hall_Movement_PsychicWalkInPlaceLeft: walk_in_place_left step_end -DewfordTown_Hall_Movement_SchoolKidWalkInPlaceRight: @ 81FD7D8 +DewfordTown_Hall_Movement_SchoolKidWalkInPlaceRight: walk_in_place_right step_end -DewfordTown_Hall_EventScript_SludgeBombMan:: @ 81FD7DA +DewfordTown_Hall_EventScript_SludgeBombMan:: lock faceplayer call Common_EventScript_BufferTrendyPhrase @@ -266,59 +266,59 @@ DewfordTown_Hall_EventScript_SludgeBombMan:: @ 81FD7DA release end -DewfordTown_Hall_EventScript_ReceivedSludgeBomb:: @ 81FD80E +DewfordTown_Hall_EventScript_ReceivedSludgeBomb:: msgbox DewfordTown_Hall_Text_LoveSludgeBombButTrendInToo, MSGBOX_DEFAULT release end -DewfordTown_Hall_Text_CantImagineLifeWithoutTrend: @ 81FD818 +DewfordTown_Hall_Text_CantImagineLifeWithoutTrend: .string "What's in vogue? Why, it has to be\n" .string "“{STR_VAR_1}”!\p" .string "I can't imagine what life would be like\n" .string "without “{STR_VAR_1}”!$" -DewfordTown_Hall_Text_GettingBoredOfTrend: @ 81FD877 +DewfordTown_Hall_Text_GettingBoredOfTrend: .string "What's in vogue? Why, it has to be\n" .string "“{STR_VAR_1}”!\p" .string "But I'm getting kind of bored with it.\p" .string "I should look for the next big thing.$" -DewfordTown_Hall_Text_TeachingMonAboutTrend: @ 81FD8ED +DewfordTown_Hall_Text_TeachingMonAboutTrend: .string "I'm teaching my POKéMON about\n" .string "“{STR_VAR_1},”\l" .string "but it's not going well.\p" .string "It's a bit too much, I think.$" -DewfordTown_Hall_Text_DeepLinkBetweenXAndY: @ 81FD948 +DewfordTown_Hall_Text_DeepLinkBetweenXAndY: .string "I'm studying up on the hip and trendy\n" .string "“{STR_VAR_1}” now.\p" .string "Is it true that there's a deep link\n" .string "between “{STR_VAR_1}”\l" .string "and “{STR_VAR_2}”?$" -DewfordTown_Hall_Text_MyHunchWasRight: @ 81FD9B3 +DewfordTown_Hall_Text_MyHunchWasRight: .string "Oh!\n" .string "So, my hunch was right!\p" .string "I'm one step closer to being hip and\n" .string "happening, yowza!$" -DewfordTown_Hall_Text_NotEasyToKeepUp: @ 81FDA06 +DewfordTown_Hall_Text_NotEasyToKeepUp: .string "What?!\n" .string "Is that so?!\p" .string "It's not easy for an older fellow like\n" .string "me to keep up with trends!$" -DewfordTown_Hall_Text_TVShowAboutTrend: @ 81FDA5C +DewfordTown_Hall_Text_TVShowAboutTrend: .string "This whole business about\n" .string "“{STR_VAR_1}”…\l" .string "Isn't there a TV show on it?$" -DewfordTown_Hall_Text_IsTrendMorePopularAcrossSea: @ 81FDA99 +DewfordTown_Hall_Text_IsTrendMorePopularAcrossSea: .string "Across the sea…\p" .string "Is “{STR_VAR_1}”\n" .string "even more popular?$" -DewfordTown_Hall_Text_CollectTrendMerchandise: @ 81FDAC4 +DewfordTown_Hall_Text_CollectTrendMerchandise: .string "I collect official\n" .string "“{STR_VAR_1}”\l" .string "licensed merchandise.\p" @@ -332,7 +332,7 @@ DewfordTown_Hall_Text_CollectTrendMerchandise: @ 81FDAC4 .string "Heheh, I own!\n" .string "I'm not sharing anything with you!$" -DewfordTown_Hall_Text_BooksAboutTrend: @ 81FDB89 +DewfordTown_Hall_Text_BooksAboutTrend: .string "IDENTIFYING GOOD\n" .string "“{STR_VAR_1}” &\l" .string "BAD “{STR_VAR_1}”…\p" @@ -344,30 +344,30 @@ DewfordTown_Hall_Text_BooksAboutTrend: @ 81FDB89 .string "It's neatly jammed with books about\n" .string "“{STR_VAR_1}.”$" -DewfordTown_Hall_Text_TrendsScream: @ 81FDC05 +DewfordTown_Hall_Text_TrendsScream: .string "“{STR_VAR_1}'S\n" .string "SCREAM” is the title.$" -DewfordTown_Hall_Text_TrendsSmile: @ 81FDC21 +DewfordTown_Hall_Text_TrendsSmile: .string "“{STR_VAR_1}'S\n" .string "SMILE” is the title.$" -DewfordTown_Hall_Text_LastTrend: @ 81FDC3C +DewfordTown_Hall_Text_LastTrend: .string "It's titled “THE LAST\n" .string "{STR_VAR_1}”.$" -DewfordTown_Hall_Text_BirthOfTrend: @ 81FDC57 +DewfordTown_Hall_Text_BirthOfTrend: .string "It's titled “THE BIRTH OF\n" .string "{STR_VAR_1}”.$" -DewfordTown_Hall_Text_SawTrendCoolestThing: @ 81FDC76 +DewfordTown_Hall_Text_SawTrendCoolestThing: .string "I saw “{STR_VAR_1}”!\n" .string "Cool, huh?\p" .string "It's, like, the coolest thing going!\p" .string "It was awesome!\n" .string "It was the real thing, oh yeah!$" -DewfordTown_Hall_Text_AllegedTrendNotAuthentic: @ 81FDCE2 +DewfordTown_Hall_Text_AllegedTrendNotAuthentic: .string "Oh, no, no, no.\p" .string "That alleged\n" .string "“{STR_VAR_1}”\l" @@ -377,7 +377,7 @@ DewfordTown_Hall_Text_AllegedTrendNotAuthentic: @ 81FDCE2 .string "Sharper, yet more mellow!\p" .string "Ah, no matter. It's astonishing!$" -DewfordTown_Hall_Text_ComposedTrendThemeSong: @ 81FDD95 +DewfordTown_Hall_Text_ComposedTrendThemeSong: .string "Hey, listen, I composed a theme song\n" .string "for “{STR_VAR_1}.”\p" .string "“{STR_VAR_1}”\n" @@ -389,20 +389,20 @@ DewfordTown_Hall_Text_ComposedTrendThemeSong: @ 81FDD95 .string "Wonderful\n" .string "{STR_VAR_1}!$" -DewfordTown_Hall_Text_WorkOnYourSinging: @ 81FDE0E +DewfordTown_Hall_Text_WorkOnYourSinging: .string "… …\p" .string "I dare say, chap, it would pay for you\n" .string "to work on your singing before you\l" .string "trifle yourself with\l" .string "“{STR_VAR_1}.”$" -DewfordTown_Hall_Text_OrganizeTrendParty: @ 81FDE77 +DewfordTown_Hall_Text_OrganizeTrendParty: .string "Anyway, as I was saying earlier, we\n" .string "should get together and organize a\l" .string "“{STR_VAR_1}” party\l" .string "on the island.$" -DewfordTown_Hall_Text_BrilliantIndeed: @ 81FDED8 +DewfordTown_Hall_Text_BrilliantIndeed: .string "Oh, a smashing good idea!\p" .string "It will settle once and for all\n" .string "who is the best at\l" @@ -411,14 +411,14 @@ DewfordTown_Hall_Text_BrilliantIndeed: @ 81FDED8 .string "Starting today, our lives will revolve\n" .string "around “{STR_VAR_1}”!$" -DewfordTown_Hall_Text_TrendHasBecomePartOfLife: @ 81FDF72 +DewfordTown_Hall_Text_TrendHasBecomePartOfLife: .string "I was thinking, though…\p" .string "Wouldn't you agree that\n" .string "“{STR_VAR_1}” has\l" .string "grown from being something trendy to\l" .string "being a part of our daily lives?$" -DewfordTown_Hall_Text_TrendWeighsHeavilyOnMind: @ 81FDFF1 +DewfordTown_Hall_Text_TrendWeighsHeavilyOnMind: .string "Beg pardon?\n" .string "That much, what?\p" .string "However, it's true that\n" @@ -429,19 +429,19 @@ DewfordTown_Hall_Text_TrendWeighsHeavilyOnMind: @ 81FDFF1 .string "“{STR_VAR_1}”\l" .string "PROFESSOR, old sport!$" -DewfordTown_Hall_Text_IfWeTeamUpWellBeInvincible: @ 81FE09A +DewfordTown_Hall_Text_IfWeTeamUpWellBeInvincible: .string "If you and me team up as a combo,\n" .string "we'll be invincible when it comes to all\l" .string "things “{STR_VAR_1}”!$" -DewfordTown_Hall_Text_WellBeTrendDuo: @ 81FE0F2 +DewfordTown_Hall_Text_WellBeTrendDuo: .string "Spot on, my friend!\p" .string "We shall be the\n" .string "“{STR_VAR_1}” DUO!\p" .string "Isn't that a ripe image?\n" .string "Hahahah!$" -DewfordTown_Hall_Text_GiveYouSludgeBomb: @ 81FE142 +DewfordTown_Hall_Text_GiveYouSludgeBomb: .string "For me, SLUDGE BOMB is at the peak\n" .string "of popularity. It's the one.\p" .string "Hunh? You're telling me that you don't\n" @@ -449,7 +449,7 @@ DewfordTown_Hall_Text_GiveYouSludgeBomb: @ 81FE142 .string "That's outright pitiful.\n" .string "I'll give you one.$" -DewfordTown_Hall_Text_LoveSludgeBombButTrendInToo: @ 81FE1ED +DewfordTown_Hall_Text_LoveSludgeBombButTrendInToo: .string "I love SLUDGE BOMB.\p" .string "But POKéMON with the move\n" .string "“{STR_VAR_1}”\l" diff --git a/data/maps/DewfordTown_House1/scripts.inc b/data/maps/DewfordTown_House1/scripts.inc index 06e3770578..0aba45d3c7 100644 --- a/data/maps/DewfordTown_House1/scripts.inc +++ b/data/maps/DewfordTown_House1/scripts.inc @@ -1,15 +1,15 @@ -DewfordTown_House1_MapScripts:: @ 81FC3CD +DewfordTown_House1_MapScripts:: .byte 0 -DewfordTown_House1_EventScript_Man:: @ 81FC3CE +DewfordTown_House1_EventScript_Man:: msgbox DewfordTown_House1_Text_LotToBeSaidForLivingOnIsland, MSGBOX_NPC end -DewfordTown_House1_EventScript_Woman:: @ 81FC3D7 +DewfordTown_House1_EventScript_Woman:: msgbox DewfordTown_House1_Text_LifeGoesSlowlyOnIsland, MSGBOX_NPC end -DewfordTown_House1_EventScript_Zigzagoon:: @ 81FC3E0 +DewfordTown_House1_EventScript_Zigzagoon:: lock faceplayer waitse @@ -19,18 +19,18 @@ DewfordTown_House1_EventScript_Zigzagoon:: @ 81FC3E0 release end -DewfordTown_House1_Text_LotToBeSaidForLivingOnIsland: @ 81FC3F3 +DewfordTown_House1_Text_LotToBeSaidForLivingOnIsland: .string "There's a lot to be said for living on\n" .string "a small island like this in harmony with\l" .string "POKéMON and the family.$" -DewfordTown_House1_Text_LifeGoesSlowlyOnIsland: @ 81FC45B +DewfordTown_House1_Text_LifeGoesSlowlyOnIsland: .string "I left the major port of SLATEPORT\n" .string "CITY when I married my husband here.\p" .string "Life goes by slowly on this little\n" .string "island. But being surrounded by the\l" .string "beautiful sea--that's happiness, too.$" -DewfordTown_House1_Text_Zigzagoon: @ 81FC510 +DewfordTown_House1_Text_Zigzagoon: .string "ZIGZAGOON: Guguuh!$" diff --git a/data/maps/DewfordTown_House2/scripts.inc b/data/maps/DewfordTown_House2/scripts.inc index 4a57cfdcf5..ae173f151c 100644 --- a/data/maps/DewfordTown_House2/scripts.inc +++ b/data/maps/DewfordTown_House2/scripts.inc @@ -1,7 +1,7 @@ -DewfordTown_House2_MapScripts:: @ 81FE22D +DewfordTown_House2_MapScripts:: .byte 0 -DewfordTown_House2_EventScript_Man:: @ 81FE22E +DewfordTown_House2_EventScript_Man:: lock faceplayer goto_if_set FLAG_RECEIVED_SILK_SCARF, DewfordTown_House2_EventScript_ExplainSilkScarf @@ -13,21 +13,21 @@ DewfordTown_House2_EventScript_Man:: @ 81FE22E release end -DewfordTown_House2_EventScript_NoRoomForScarf:: @ 81FE25D +DewfordTown_House2_EventScript_NoRoomForScarf:: msgbox DewfordTown_House2_Text_NoRoom, MSGBOX_DEFAULT release end -DewfordTown_House2_EventScript_ExplainSilkScarf:: @ 81FE267 +DewfordTown_House2_EventScript_ExplainSilkScarf:: msgbox DewfordTown_House2_Text_ExplainSilkScarf, MSGBOX_DEFAULT release end -DewfordTown_House2_EventScript_Boy:: @ 81FE271 +DewfordTown_House2_EventScript_Boy:: msgbox DewfordTown_House2_Text_BrawlySoCool, MSGBOX_NPC end -DewfordTown_House2_Text_WantYouToHaveSilkScarf: @ 81FE27A +DewfordTown_House2_Text_WantYouToHaveSilkScarf: .string "Gorge your eyes on this!\p" .string "It's a SILK SCARF. It's right at the\n" .string "cutting edge of fashion, yeah!\p" @@ -36,19 +36,19 @@ DewfordTown_House2_Text_WantYouToHaveSilkScarf: @ 81FE27A .string "Oh, you're a delight!\n" .string "Here you go. I want you to have it!$" -DewfordTown_House2_Text_NoRoom: @ 81FE356 +DewfordTown_House2_Text_NoRoom: .string "Oh, you don't have room?\p" .string "Now, listen tight, this SCARF is a must-\n" .string "have! Why, I would sell all my items\l" .string "in order to get it!$" -DewfordTown_House2_Text_ExplainSilkScarf: @ 81FE3D1 +DewfordTown_House2_Text_ExplainSilkScarf: .string "The SILK SCARF raises the power of\n" .string "NORMAL-type moves.\p" .string "It's a marvelous SCARF that will go\n" .string "with almost all POKéMON!$" -DewfordTown_House2_Text_BrawlySoCool: @ 81FE444 +DewfordTown_House2_Text_BrawlySoCool: .string "Wow, you bothered to cross the sea\n" .string "to visit DEWFORD?\p" .string "Did you maybe come here because you\n" diff --git a/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc b/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc index 9873c9e7a6..dbd9e1c8d2 100644 --- a/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc @@ -1,16 +1,16 @@ .set LOCALID_NURSE, 1 -DewfordTown_PokemonCenter_1F_MapScripts:: @ 81FC523 +DewfordTown_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, DewfordTown_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -DewfordTown_PokemonCenter_1F_OnTransition: @ 81FC52E +DewfordTown_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_DEWFORD_TOWN call Common_EventScript_UpdateBrineyLocation end -DewfordTown_PokemonCenter_1F_EventScript_Nurse:: @ 81FC537 +DewfordTown_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -18,21 +18,21 @@ DewfordTown_PokemonCenter_1F_EventScript_Nurse:: @ 81FC537 release end -DewfordTown_PokemonCenter_1F_EventScript_PokefanF:: @ 81FC545 +DewfordTown_PokemonCenter_1F_EventScript_PokefanF:: msgbox DewfordTown_PokemonCenter_1F_Text_StoneCavern, MSGBOX_NPC end -DewfordTown_PokemonCenter_1F_EventScript_Man:: @ 81FC54E +DewfordTown_PokemonCenter_1F_EventScript_Man:: msgbox DewfordTown_PokemonCenter_1F_Text_FaintedMonCanUseHM, MSGBOX_NPC end -DewfordTown_PokemonCenter_1F_Text_StoneCavern: @ 81FC557 +DewfordTown_PokemonCenter_1F_Text_StoneCavern: .string "There's a stone cavern at the edge\n" .string "of town.\p" .string "I've heard you can find rare stones\n" .string "there.$" -DewfordTown_PokemonCenter_1F_Text_FaintedMonCanUseHM: @ 81FC5AE +DewfordTown_PokemonCenter_1F_Text_FaintedMonCanUseHM: .string "Even if a POKéMON faints and can't\n" .string "battle, it can still use a move learned\l" .string "from a HIDDEN MACHINE (HM).$" diff --git a/data/maps/DewfordTown_PokemonCenter_2F/scripts.inc b/data/maps/DewfordTown_PokemonCenter_2F/scripts.inc index df8539f0b7..625edea6c1 100644 --- a/data/maps/DewfordTown_PokemonCenter_2F/scripts.inc +++ b/data/maps/DewfordTown_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -DewfordTown_PokemonCenter_2F_MapScripts:: @ 81FC615 +DewfordTown_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ DewfordTown_PokemonCenter_2F_MapScripts:: @ 81FC615 .byte 0 @ The below 3 are unused and leftover from RS -DewfordTown_PokemonCenter_2F_EventScript_Colosseum:: @ 81FC62A +DewfordTown_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -DewfordTown_PokemonCenter_2F_EventScript_TradeCenter:: @ 81FC630 +DewfordTown_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -DewfordTown_PokemonCenter_2F_EventScript_RecordCorner:: @ 81FC636 +DewfordTown_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/EverGrandeCity/scripts.inc b/data/maps/EverGrandeCity/scripts.inc index 42392c7e9a..de1ad9189d 100644 --- a/data/maps/EverGrandeCity/scripts.inc +++ b/data/maps/EverGrandeCity/scripts.inc @@ -1,36 +1,36 @@ -EverGrandeCity_MapScripts:: @ 81E7D1B +EverGrandeCity_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, EverGrandeCity_OnTransition .byte 0 -EverGrandeCity_OnTransition: @ 81E7D21 +EverGrandeCity_OnTransition: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather end -EverGrandeCity_EventScript_VictoryRoadSign:: @ 81E7D2B +EverGrandeCity_EventScript_VictoryRoadSign:: msgbox EverGrandeCity_Text_EnteringVictoryRoad, MSGBOX_SIGN end -EverGrandeCity_EventScript_CitySign:: @ 81E7D34 +EverGrandeCity_EventScript_CitySign:: msgbox EverGrandeCity_Text_CitySign, MSGBOX_SIGN end -EverGrandeCity_EventScript_PokemonLeagueSign:: @ 81E7D3D +EverGrandeCity_EventScript_PokemonLeagueSign:: msgbox EverGrandeCity_Text_EnteringPokemonLeague, MSGBOX_SIGN end -EverGrandeCity_EventScript_SetVisitedEverGrande:: @ 81E7D46 +EverGrandeCity_EventScript_SetVisitedEverGrande:: setflag FLAG_VISITED_EVER_GRANDE_CITY setvar VAR_TEMP_1, 1 end -EverGrandeCity_Text_EnteringVictoryRoad: @ 81E7D4F +EverGrandeCity_Text_EnteringVictoryRoad: .string "ENTERING VICTORY ROAD$" -EverGrandeCity_Text_EnteringPokemonLeague: @ 81E7D65 +EverGrandeCity_Text_EnteringPokemonLeague: .string "ENTERING POKéMON LEAGUE\n" .string "CENTER GATE$" -EverGrandeCity_Text_CitySign: @ 81E7D89 +EverGrandeCity_Text_CitySign: .string "EVER GRANDE CITY\p" .string "“The paradise of flowers, the sea,\n" .string "and POKéMON.”$" diff --git a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc index d41c10d0a0..dc2bb4d722 100644 --- a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc +++ b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc @@ -2,29 +2,29 @@ .set LOCALID_RIVAL, 2 .set LOCALID_BIRCH, 3 -EverGrandeCity_ChampionsRoom_MapScripts:: @ 82289EF +EverGrandeCity_ChampionsRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, EverGrandeCity_ChampionsRoom_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_ChampionsRoom_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, EverGrandeCity_ChampionsRoom_OnFrame .byte 0 -EverGrandeCity_ChampionsRoom_OnTransition: @ 82289FF +EverGrandeCity_ChampionsRoom_OnTransition: call Common_EventScript_SetupRivalGfxId end -EverGrandeCity_ChampionsRoom_OnWarp: @ 8228A05 +EverGrandeCity_ChampionsRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_ChampionsRoom_EventScript_PlayerTurnNorth .2byte 0 -EverGrandeCity_ChampionsRoom_EventScript_PlayerTurnNorth:: @ 8228A0F +EverGrandeCity_ChampionsRoom_EventScript_PlayerTurnNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -EverGrandeCity_ChampionsRoom_OnFrame: @ 8228A14 +EverGrandeCity_ChampionsRoom_OnFrame: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_ChampionsRoom_EventScript_EnterRoom .2byte 0 -EverGrandeCity_ChampionsRoom_EventScript_EnterRoom:: @ 8228A1E +EverGrandeCity_ChampionsRoom_EventScript_EnterRoom:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkUp4 waitmovement 0 @@ -36,19 +36,19 @@ EverGrandeCity_ChampionsRoom_EventScript_EnterRoom:: @ 8228A1E releaseall end -EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace: @ 8228A42 +EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace: walk_up walk_up step_end -EverGrandeCity_ChampionsRoom_EventScript_Wallace:: @ 8228A45 - playbgm MUS_ENCOUNTER_CHAMPION, 0 +EverGrandeCity_ChampionsRoom_EventScript_Wallace:: + playbgm MUS_ENCOUNTER_CHAMPION, FALSE msgbox EverGrandeCity_ChampionsRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_WALLACE, EverGrandeCity_ChampionsRoom_Text_Defeat goto EverGrandeCity_ChampionsRoom_EventScript_Defeated end -EverGrandeCity_ChampionsRoom_EventScript_Defeated:: @ 8228A61 +EverGrandeCity_ChampionsRoom_EventScript_Defeated:: playse SE_DOOR setmetatile 6, 1, METATILE_EliteFour_OpenDoorChampion_Frame, 0 setmetatile 6, 2, METATILE_EliteFour_OpenDoorChampion_Opening, 0 @@ -70,15 +70,15 @@ EverGrandeCity_ChampionsRoom_EventScript_Defeated:: @ 8228A61 goto_if_eq EverGrandeCity_ChampionsRoom_EventScript_BrendanAdvice end -EverGrandeCity_ChampionsRoom_EventScript_PlayMayMusic:: @ 8228ABC - playbgm MUS_ENCOUNTER_MAY, 0 +EverGrandeCity_ChampionsRoom_EventScript_PlayMayMusic:: + playbgm MUS_ENCOUNTER_MAY, FALSE return -EverGrandeCity_ChampionsRoom_EventScript_PlayBrendanMusic:: @ 8228AC1 - playbgm MUS_ENCOUNTER_BRENDAN, 0 +EverGrandeCity_ChampionsRoom_EventScript_PlayBrendanMusic:: + playbgm MUS_ENCOUNTER_BRENDAN, FALSE return -EverGrandeCity_ChampionsRoom_EventScript_MayAdvice:: @ 8228AC6 +EverGrandeCity_ChampionsRoom_EventScript_MayAdvice:: msgbox EverGrandeCity_ChampionsRoom_Text_MayAdvice, MSGBOX_DEFAULT delay 40 playse SE_PIN @@ -91,7 +91,7 @@ EverGrandeCity_ChampionsRoom_EventScript_MayAdvice:: @ 8228AC6 goto EverGrandeCity_ChampionsRoom_EventScript_BirchArrivesExitForHoF end -EverGrandeCity_ChampionsRoom_EventScript_BrendanAdvice:: @ 8228AFB +EverGrandeCity_ChampionsRoom_EventScript_BrendanAdvice:: msgbox EverGrandeCity_ChampionsRoom_Text_BrendanAdvice, MSGBOX_DEFAULT delay 40 playse SE_PIN @@ -104,7 +104,7 @@ EverGrandeCity_ChampionsRoom_EventScript_BrendanAdvice:: @ 8228AFB goto EverGrandeCity_ChampionsRoom_EventScript_BirchArrivesExitForHoF end -EverGrandeCity_ChampionsRoom_EventScript_BirchArrivesExitForHoF:: @ 8228B30 +EverGrandeCity_ChampionsRoom_EventScript_BirchArrivesExitForHoF:: closemessage addobject LOCALID_BIRCH applymovement LOCALID_BIRCH, EverGrandeCity_ChampionsRoom_Movement_BirchArrives @@ -146,32 +146,32 @@ EverGrandeCity_ChampionsRoom_EventScript_BirchArrivesExitForHoF:: @ 8228B30 releaseall end -EverGrandeCity_ChampionsRoom_EventScript_MayCongratulations:: @ 8228BEB +EverGrandeCity_ChampionsRoom_EventScript_MayCongratulations:: msgbox EverGrandeCity_ChampionsRoom_Text_MayCongratulations, MSGBOX_DEFAULT return -EverGrandeCity_ChampionsRoom_EventScript_BrendanCongratulations:: @ 8228BF4 +EverGrandeCity_ChampionsRoom_EventScript_BrendanCongratulations:: msgbox EverGrandeCity_ChampionsRoom_Text_BrendanCongratulations, MSGBOX_DEFAULT return -EverGrandeCity_ChampionsRoom_EventScript_RivalApproachPlayer:: @ 8228BFD +EverGrandeCity_ChampionsRoom_EventScript_RivalApproachPlayer:: applymovement LOCALID_RIVAL, EverGrandeCity_ChampionsRoom_Movement_RivalApproachPlayer waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -EverGrandeCity_ChampionsRoom_EventScript_RivalLookBackAndForth:: @ 8228C12 +EverGrandeCity_ChampionsRoom_EventScript_RivalLookBackAndForth:: applymovement LOCALID_RIVAL, EverGrandeCity_ChampionsRoom_Movement_RivalLookBackAndForth waitmovement 0 return -EverGrandeCity_ChampionsRoom_Movement_PlayerExitStart: @ 8228C1D +EverGrandeCity_ChampionsRoom_Movement_PlayerExitStart: walk_up walk_up step_end -EverGrandeCity_ChampionsRoom_Movement_PlayerExit: @ 8228C20 +EverGrandeCity_ChampionsRoom_Movement_PlayerExit: walk_up delay_16 walk_up @@ -179,7 +179,7 @@ EverGrandeCity_ChampionsRoom_Movement_PlayerExit: @ 8228C20 set_invisible step_end -EverGrandeCity_ChampionsRoom_Movement_RivalApproachPlayer: @ 8228C26 +EverGrandeCity_ChampionsRoom_Movement_RivalApproachPlayer: walk_up walk_up walk_up @@ -190,7 +190,7 @@ EverGrandeCity_ChampionsRoom_Movement_RivalApproachPlayer: @ 8228C26 walk_in_place_fastest_right step_end -EverGrandeCity_ChampionsRoom_Movement_RivalLookBackAndForth: @ 8228C2F +EverGrandeCity_ChampionsRoom_Movement_RivalLookBackAndForth: walk_in_place_fastest_up delay_16 walk_in_place_fastest_right @@ -201,24 +201,24 @@ EverGrandeCity_ChampionsRoom_Movement_RivalLookBackAndForth: @ 8228C2F delay_16 step_end -EverGrandeCity_ChampionsRoom_Movement_RivalFollows: @ 8228C38 +EverGrandeCity_ChampionsRoom_Movement_RivalFollows: walk_right walk_up step_end -EverGrandeCity_ChampionsRoom_Movement_WallaceExitStart: @ 8228C3B +EverGrandeCity_ChampionsRoom_Movement_WallaceExitStart: walk_up walk_up walk_in_place_fastest_down step_end -EverGrandeCity_ChampionsRoom_Movement_WallaceExit: @ 8228C3F +EverGrandeCity_ChampionsRoom_Movement_WallaceExit: walk_up delay_8 set_invisible step_end -EverGrandeCity_ChampionsRoom_Movement_BirchArrives: @ 8228C43 +EverGrandeCity_ChampionsRoom_Movement_BirchArrives: walk_up walk_up walk_up @@ -229,7 +229,7 @@ EverGrandeCity_ChampionsRoom_Movement_BirchArrives: @ 8228C43 walk_in_place_fastest_left step_end -EverGrandeCity_ChampionsRoom_Text_IntroSpeech: @ 8228C4C +EverGrandeCity_ChampionsRoom_Text_IntroSpeech: .string "WALLACE: Welcome, {PLAYER}{KUN}.\p" .string "That incident in SOOTOPOLIS CITY…\n" .string "That was superb work, putting an end\l" @@ -252,7 +252,7 @@ EverGrandeCity_ChampionsRoom_Text_IntroSpeech: @ 8228C4C .string "their POKéMON in HOENN?\p" .string "Show me right here and now!$" -EverGrandeCity_ChampionsRoom_Text_Defeat: @ 8228EAC +EverGrandeCity_ChampionsRoom_Text_Defeat: .string "I, the CHAMPION, fall in defeat…\p" .string "That was wonderful work.\n" .string "You were elegant, infuriatingly so.\l" @@ -261,7 +261,7 @@ EverGrandeCity_ChampionsRoom_Text_Defeat: @ 8228EAC .string "You are a truly noble POKéMON\n" .string "TRAINER!$" -EverGrandeCity_ChampionsRoom_Text_PostBattleSpeech: @ 8228F66 +EverGrandeCity_ChampionsRoom_Text_PostBattleSpeech: .string "WALLACE: The POKéMON you sent into\n" .string "battle…\p" .string "At times they danced like a spring\n" @@ -276,29 +276,29 @@ EverGrandeCity_ChampionsRoom_Text_PostBattleSpeech: @ 8228F66 .string "I now proclaim you to be the new\n" .string "HOENN region…$" -EverGrandeCity_ChampionsRoom_Text_MayAdvice: @ 82290CA +EverGrandeCity_ChampionsRoom_Text_MayAdvice: .string "MAY: {PLAYER}{KUN}!\p" .string "Here's some advice before you challenge\n" .string "the CHAMPION…$" -EverGrandeCity_ChampionsRoom_Text_MayItsAlreadyOver: @ 822910B +EverGrandeCity_ChampionsRoom_Text_MayItsAlreadyOver: .string "MAY: Huh?\n" .string "What, what, what?\p" .string "{PLAYER}{KUN}…\n" .string "Could it be that…\l" .string "It's already over?$" -EverGrandeCity_ChampionsRoom_Text_BrendanAdvice: @ 8229152 +EverGrandeCity_ChampionsRoom_Text_BrendanAdvice: .string "BRENDAN: {PLAYER}!\p" .string "How would you like some advice before\n" .string "you challenge the CHAMPION?…$" -EverGrandeCity_ChampionsRoom_Text_BrendanYouveWon: @ 82291A2 +EverGrandeCity_ChampionsRoom_Text_BrendanYouveWon: .string "BRENDAN: {PLAYER}…\p" .string "Are you trying to tell me…\n" .string "You've beaten the CHAMPION?$" -EverGrandeCity_ChampionsRoom_Text_BirchArriveRatePokedex: @ 82291E6 +EverGrandeCity_ChampionsRoom_Text_BirchArriveRatePokedex: .string "PROF. BIRCH: See?\n" .string "What did I tell you, {RIVAL}?\p" .string "Didn't I tell you that you don't need\n" @@ -314,25 +314,25 @@ EverGrandeCity_ChampionsRoom_Text_BirchArriveRatePokedex: @ 82291E6 .string "What became of your POKéDEX?\n" .string "Here, let me see.$" -EverGrandeCity_ChampionsRoom_Text_BirchCongratulations: @ 822934D +EverGrandeCity_ChampionsRoom_Text_BirchCongratulations: .string "PROF. BIRCH: Anyways,\n" .string "congratulations!\p" .string "Now, go proudly into the final room!$" -EverGrandeCity_ChampionsRoom_Text_WallaceComeWithMe: @ 8229399 +EverGrandeCity_ChampionsRoom_Text_WallaceComeWithMe: .string "WALLACE: {PLAYER}{KUN}…\p" .string "No, let me rephrase that properly.\p" .string "The new CHAMPION!\p" .string "Come with me.$" -EverGrandeCity_ChampionsRoom_Text_WallaceWaitOutside: @ 82293EB +EverGrandeCity_ChampionsRoom_Text_WallaceWaitOutside: .string "WALLACE: I'm sorry, but…\p" .string "From here on, only those TRAINERS who\n" .string "have become CHAMPIONS may enter.\p" .string "You'll have to wait outside with\n" .string "PROF. BIRCH.$" -EverGrandeCity_ChampionsRoom_Text_MayCongratulations: @ 8229479 +EverGrandeCity_ChampionsRoom_Text_MayCongratulations: .string "MAY: Groan…\p" .string "… … … … … … … …\n" .string "… … … … … … … …\p" @@ -341,7 +341,7 @@ EverGrandeCity_ChampionsRoom_Text_MayCongratulations: @ 8229479 .string "{PLAYER}{KUN}!\n" .string "Honestly, congratulations!$" -EverGrandeCity_ChampionsRoom_Text_BrendanCongratulations: @ 82294F5 +EverGrandeCity_ChampionsRoom_Text_BrendanCongratulations: .string "BRENDAN: Whaaaat?! … … … … …\n" .string "… … … … … … … …\p" .string "It can't be helped if that's the rule.\p" diff --git a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc index feb65d149a..75b16e7750 100644 --- a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc @@ -1,59 +1,59 @@ -EverGrandeCity_DrakesRoom_MapScripts:: @ 822869C +EverGrandeCity_DrakesRoom_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, EverGrandeCity_DrakesRoom_OnFrame map_script MAP_SCRIPT_ON_LOAD, EverGrandeCity_DrakesRoom_OnLoad map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_SidneysRoom_OnWarp .byte 0 @ Unused, Drake uses Sidneys identical OnWarp for some reason -EverGrandeCity_DrakesRoom_OnWarp: @ 82286AC +EverGrandeCity_DrakesRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_DrakesRoom_EventScript_PlayerTurnNorth .2byte 0 -EverGrandeCity_DrakesRoom_EventScript_PlayerTurnNorth:: @ 82286B6 +EverGrandeCity_DrakesRoom_EventScript_PlayerTurnNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -EverGrandeCity_DrakesRoom_OnFrame: @ 82286BB +EverGrandeCity_DrakesRoom_OnFrame: map_script_2 VAR_ELITE_4_STATE, 3, EverGrandeCity_DrakesRoom_EventScript_WalkInCloseDoor .2byte 0 -EverGrandeCity_DrakesRoom_EventScript_WalkInCloseDoor:: @ 82286C5 +EverGrandeCity_DrakesRoom_EventScript_WalkInCloseDoor:: lockall call PokemonLeague_EliteFour_EventScript_WalkInCloseDoor setvar VAR_ELITE_4_STATE, 4 releaseall end -EverGrandeCity_DrakesRoom_OnLoad: @ 82286D2 +EverGrandeCity_DrakesRoom_OnLoad: call_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_ResetAdvanceToNextRoom compare VAR_ELITE_4_STATE, 4 call_if_eq EverGrandeCity_DrakesRoom_EventScript_CloseDoor end -EverGrandeCity_DrakesRoom_EventScript_ResetAdvanceToNextRoom:: @ 82286E7 +EverGrandeCity_DrakesRoom_EventScript_ResetAdvanceToNextRoom:: call PokemonLeague_EliteFour_EventScript_ResetAdvanceToNextRoom return -EverGrandeCity_DrakesRoom_EventScript_CloseDoor:: @ 82286ED +EverGrandeCity_DrakesRoom_EventScript_CloseDoor:: call PokemonLeague_EliteFour_EventScript_CloseDoor return -EverGrandeCity_DrakesRoom_EventScript_Drake:: @ 82286F3 +EverGrandeCity_DrakesRoom_EventScript_Drake:: lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_PostBattleSpeech - playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, FALSE msgbox EverGrandeCity_DrakesRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_DRAKE, EverGrandeCity_DrakesRoom_Text_Defeat goto EverGrandeCity_DrakesRoom_EventScript_Defeated end -EverGrandeCity_DrakesRoom_EventScript_PostBattleSpeech:: @ 822871A +EverGrandeCity_DrakesRoom_EventScript_PostBattleSpeech:: msgbox EverGrandeCity_DrakesRoom_Text_PostBattleSpeech, MSGBOX_DEFAULT release end -EverGrandeCity_DrakesRoom_EventScript_Defeated:: @ 8228724 +EverGrandeCity_DrakesRoom_EventScript_Defeated:: setvar VAR_0x8004, FANCOUNTER_DEFEATED_DRAKE special Script_TryGainNewFanFromCounter setflag FLAG_DEFEATED_ELITE_4_DRAKE @@ -62,7 +62,7 @@ EverGrandeCity_DrakesRoom_EventScript_Defeated:: @ 8228724 release end -EverGrandeCity_DrakesRoom_Text_IntroSpeech: @ 822873E +EverGrandeCity_DrakesRoom_Text_IntroSpeech: .string "I am the last of the POKéMON LEAGUE\n" .string "ELITE FOUR, DRAKE the DRAGON master!\p" .string "In their natural state, POKéMON are\n" @@ -75,10 +75,10 @@ EverGrandeCity_DrakesRoom_Text_IntroSpeech: @ 822873E .string "If you don't, then you will never\n" .string "prevail over me!$" -EverGrandeCity_DrakesRoom_Text_Defeat: @ 8228895 +EverGrandeCity_DrakesRoom_Text_Defeat: .string "Superb, it should be said.$" -EverGrandeCity_DrakesRoom_Text_PostBattleSpeech: @ 82288B0 +EverGrandeCity_DrakesRoom_Text_PostBattleSpeech: .string "You deserve every credit for coming\n" .string "this far as a TRAINER of POKéMON.\p" .string "You do seem to know what is needed.\p" diff --git a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc index ff04a752ab..59f4440c45 100644 --- a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc +++ b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc @@ -1,65 +1,65 @@ -EverGrandeCity_GlaciasRoom_MapScripts:: @ 8228412 +EverGrandeCity_GlaciasRoom_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, EverGrandeCity_GlaciasRoom_OnFrame map_script MAP_SCRIPT_ON_LOAD, EverGrandeCity_GlaciasRoom_OnLoad map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_GlaciasRoom_OnWarp .byte 0 -EverGrandeCity_GlaciasRoom_OnWarp: @ 8228422 +EverGrandeCity_GlaciasRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_GlaciasRoom_EventScript_PlayerTurnNorth .2byte 0 -EverGrandeCity_GlaciasRoom_EventScript_PlayerTurnNorth:: @ 822842C +EverGrandeCity_GlaciasRoom_EventScript_PlayerTurnNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -EverGrandeCity_GlaciasRoom_OnFrame: @ 8228431 +EverGrandeCity_GlaciasRoom_OnFrame: map_script_2 VAR_ELITE_4_STATE, 2, EverGrandeCity_GlaciasRoom_EventScript_WalkInCloseDoor .2byte 0 -EverGrandeCity_GlaciasRoom_EventScript_WalkInCloseDoor:: @ 822843B +EverGrandeCity_GlaciasRoom_EventScript_WalkInCloseDoor:: lockall call PokemonLeague_EliteFour_EventScript_WalkInCloseDoor setvar VAR_ELITE_4_STATE, 3 releaseall end -EverGrandeCity_GlaciasRoom_OnLoad: @ 8228448 +EverGrandeCity_GlaciasRoom_OnLoad: call_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_ResetAdvanceToNextRoom compare VAR_ELITE_4_STATE, 3 call_if_eq EverGrandeCity_GlaciasRoom_EventScript_CloseDoor end -EverGrandeCity_GlaciasRoom_EventScript_ResetAdvanceToNextRoom:: @ 822845D +EverGrandeCity_GlaciasRoom_EventScript_ResetAdvanceToNextRoom:: call PokemonLeague_EliteFour_EventScript_ResetAdvanceToNextRoom return -EverGrandeCity_GlaciasRoom_EventScript_CloseDoor:: @ 8228463 +EverGrandeCity_GlaciasRoom_EventScript_CloseDoor:: call PokemonLeague_EliteFour_EventScript_CloseDoor return -EverGrandeCity_GlaciasRoom_EventScript_Glacia:: @ 8228469 +EverGrandeCity_GlaciasRoom_EventScript_Glacia:: lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_PostBattleSpeech - playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, FALSE msgbox EverGrandeCity_GlaciasRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GLACIA, EverGrandeCity_GlaciasRoom_Text_Defeat goto EverGrandeCity_GlaciasRoom_EventScript_Defeated end -EverGrandeCity_GlaciasRoom_EventScript_PostBattleSpeech:: @ 8228490 +EverGrandeCity_GlaciasRoom_EventScript_PostBattleSpeech:: msgbox EverGrandeCity_GlaciasRoom_Text_PostBattleSpeech, MSGBOX_DEFAULT release end -EverGrandeCity_GlaciasRoom_EventScript_Defeated:: @ 822849A +EverGrandeCity_GlaciasRoom_EventScript_Defeated:: setflag FLAG_DEFEATED_ELITE_4_GLACIA call PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles msgbox EverGrandeCity_GlaciasRoom_Text_PostBattleSpeech, MSGBOX_DEFAULT release end -EverGrandeCity_GlaciasRoom_Text_IntroSpeech: @ 82284AC +EverGrandeCity_GlaciasRoom_Text_IntroSpeech: .string "Welcome, my name is GLACIA\n" .string "of the ELITE FOUR.\p" .string "I've traveled from afar to HOENN\n" @@ -70,14 +70,14 @@ EverGrandeCity_GlaciasRoom_Text_IntroSpeech: @ 82284AC .string "It would please me to no end if I could\n" .string "go all out against you!$" -EverGrandeCity_GlaciasRoom_Text_Defeat: @ 82285B4 +EverGrandeCity_GlaciasRoom_Text_Defeat: .string "You and your POKéMON…\n" .string "How hot your spirits burn!\p" .string "The all-consuming heat overwhelms.\p" .string "It's no surprise that my icy skills\n" .string "failed to harm you.$" -EverGrandeCity_GlaciasRoom_Text_PostBattleSpeech: @ 8228640 +EverGrandeCity_GlaciasRoom_Text_PostBattleSpeech: .string "Advance to the next room.\p" .string "And there, confirm the truly fearsome\n" .string "side of the POKéMON LEAGUE.$" diff --git a/data/maps/EverGrandeCity_Hall1/scripts.inc b/data/maps/EverGrandeCity_Hall1/scripts.inc index cf68eb8c77..0d4b524c83 100644 --- a/data/maps/EverGrandeCity_Hall1/scripts.inc +++ b/data/maps/EverGrandeCity_Hall1/scripts.inc @@ -1,12 +1,12 @@ -EverGrandeCity_Hall1_MapScripts:: @ 8229569 +EverGrandeCity_Hall1_MapScripts:: map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_Hall1_OnWarp .byte 0 -EverGrandeCity_Hall1_OnWarp: @ 822956F +EverGrandeCity_Hall1_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall1_EventScript_TurnPlayerNorth .2byte 0 -EverGrandeCity_Hall1_EventScript_TurnPlayerNorth:: @ 8229579 +EverGrandeCity_Hall1_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end diff --git a/data/maps/EverGrandeCity_Hall2/scripts.inc b/data/maps/EverGrandeCity_Hall2/scripts.inc index d8702657fa..b81df8b405 100644 --- a/data/maps/EverGrandeCity_Hall2/scripts.inc +++ b/data/maps/EverGrandeCity_Hall2/scripts.inc @@ -1,12 +1,12 @@ -EverGrandeCity_Hall2_MapScripts:: @ 822957E +EverGrandeCity_Hall2_MapScripts:: map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_Hall2_OnWarp .byte 0 -EverGrandeCity_Hall2_OnWarp: @ 8229584 +EverGrandeCity_Hall2_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall2_EventScript_TurnPlayerNorth .2byte 0 -EverGrandeCity_Hall2_EventScript_TurnPlayerNorth:: @ 822958E +EverGrandeCity_Hall2_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end diff --git a/data/maps/EverGrandeCity_Hall3/scripts.inc b/data/maps/EverGrandeCity_Hall3/scripts.inc index 65dc3c44c8..4f9245f646 100644 --- a/data/maps/EverGrandeCity_Hall3/scripts.inc +++ b/data/maps/EverGrandeCity_Hall3/scripts.inc @@ -1,12 +1,12 @@ -EverGrandeCity_Hall3_MapScripts:: @ 8229593 +EverGrandeCity_Hall3_MapScripts:: map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_Hall3_OnWarp .byte 0 -EverGrandeCity_Hall3_OnWarp: @ 8229599 +EverGrandeCity_Hall3_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall3_EventScript_TurnPlayerNorth .2byte 0 -EverGrandeCity_Hall3_EventScript_TurnPlayerNorth:: @ 82295A3 +EverGrandeCity_Hall3_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end diff --git a/data/maps/EverGrandeCity_Hall4/scripts.inc b/data/maps/EverGrandeCity_Hall4/scripts.inc index e75d12483b..3d9ab4603b 100644 --- a/data/maps/EverGrandeCity_Hall4/scripts.inc +++ b/data/maps/EverGrandeCity_Hall4/scripts.inc @@ -1,12 +1,12 @@ -EverGrandeCity_Hall4_MapScripts:: @ 82295A8 +EverGrandeCity_Hall4_MapScripts:: map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_Hall4_OnWarp .byte 0 -EverGrandeCity_Hall4_OnWarp: @ 82295AE +EverGrandeCity_Hall4_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall4_EventScript_TurnPlayerNorth .2byte 0 -EverGrandeCity_Hall4_EventScript_TurnPlayerNorth:: @ 82295B8 +EverGrandeCity_Hall4_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end diff --git a/data/maps/EverGrandeCity_Hall5/scripts.inc b/data/maps/EverGrandeCity_Hall5/scripts.inc index b8eaed7b96..9781d114f4 100644 --- a/data/maps/EverGrandeCity_Hall5/scripts.inc +++ b/data/maps/EverGrandeCity_Hall5/scripts.inc @@ -1,12 +1,12 @@ -EverGrandeCity_Hall5_MapScripts:: @ 82295BD +EverGrandeCity_Hall5_MapScripts:: map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_Hall5_OnWarp .byte 0 -EverGrandeCity_Hall5_OnWarp: @ 82295C3 +EverGrandeCity_Hall5_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall5_EventScript_TurnPlayerNorth .2byte 0 -EverGrandeCity_Hall5_EventScript_TurnPlayerNorth:: @ 82295CD +EverGrandeCity_Hall5_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end diff --git a/data/maps/EverGrandeCity_HallOfFame/scripts.inc b/data/maps/EverGrandeCity_HallOfFame/scripts.inc index c6281a684f..f5e4155652 100644 --- a/data/maps/EverGrandeCity_HallOfFame/scripts.inc +++ b/data/maps/EverGrandeCity_HallOfFame/scripts.inc @@ -1,23 +1,23 @@ .set LOCALID_WALLACE, 1 -EverGrandeCity_HallOfFame_MapScripts:: @ 822982C +EverGrandeCity_HallOfFame_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, EverGrandeCity_HallOfFame_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_HallOfFame_OnWarp .byte 0 -EverGrandeCity_HallOfFame_OnWarp: @ 8229837 +EverGrandeCity_HallOfFame_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_HallOfFame_EventScript_TurnPlayerNorth .2byte 0 -EverGrandeCity_HallOfFame_EventScript_TurnPlayerNorth:: @ 8229841 +EverGrandeCity_HallOfFame_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -EverGrandeCity_HallOfFame_OnFrame: @ 8229846 +EverGrandeCity_HallOfFame_OnFrame: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_HallOfFame_EventScript_EnterHallOfFame .2byte 0 -EverGrandeCity_HallOfFame_EventScript_EnterHallOfFame:: @ 8229850 +EverGrandeCity_HallOfFame_EventScript_EnterHallOfFame:: lockall applymovement LOCALID_WALLACE, EverGrandeCity_HallOfFame_Movement_WalkIntoHallOfFame1 applymovement OBJ_EVENT_ID_PLAYER, EverGrandeCity_HallOfFame_Movement_WalkIntoHallOfFame1 @@ -52,7 +52,7 @@ EverGrandeCity_HallOfFame_EventScript_EnterHallOfFame:: @ 8229850 goto_if_eq EverGrandeCity_HallOfFame_EventScript_GameClearFemale end -EverGrandeCity_HallOfFame_EventScript_GameClearMale:: @ 82298E9 +EverGrandeCity_HallOfFame_EventScript_GameClearMale:: setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F fadescreenspeed FADE_TO_BLACK, 24 special GameClear @@ -60,7 +60,7 @@ EverGrandeCity_HallOfFame_EventScript_GameClearMale:: @ 82298E9 releaseall end -EverGrandeCity_HallOfFame_EventScript_GameClearFemale:: @ 82298F5 +EverGrandeCity_HallOfFame_EventScript_GameClearFemale:: setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F fadescreenspeed FADE_TO_BLACK, 24 special GameClear @@ -68,7 +68,7 @@ EverGrandeCity_HallOfFame_EventScript_GameClearFemale:: @ 82298F5 releaseall end -EverGrandeCity_HallOfFame_Movement_WalkIntoHallOfFame1: @ 8229901 +EverGrandeCity_HallOfFame_Movement_WalkIntoHallOfFame1: walk_up walk_up walk_up @@ -77,7 +77,7 @@ EverGrandeCity_HallOfFame_Movement_WalkIntoHallOfFame1: @ 8229901 walk_up step_end -EverGrandeCity_HallOfFame_Movement_WalkIntoHallOfFame2: @ 8229908 +EverGrandeCity_HallOfFame_Movement_WalkIntoHallOfFame2: walk_up walk_up walk_up @@ -85,7 +85,7 @@ EverGrandeCity_HallOfFame_Movement_WalkIntoHallOfFame2: @ 8229908 walk_up step_end -EverGrandeCity_HallOfFame_Text_HereWeHonorLeagueChampions: @ 822990E +EverGrandeCity_HallOfFame_Text_HereWeHonorLeagueChampions: .string "WALLACE: This room…\p" .string "This is where we keep records of\n" .string "POKéMON that prevailed through\l" @@ -93,7 +93,7 @@ EverGrandeCity_HallOfFame_Text_HereWeHonorLeagueChampions: @ 822990E .string "It is here that the LEAGUE CHAMPIONS\n" .string "are honored.$" -EverGrandeCity_HallOfFame_Text_LetsRecordYouAndYourPartnersNames: @ 82299A3 +EverGrandeCity_HallOfFame_Text_LetsRecordYouAndYourPartnersNames: .string "WALLACE: Come on, let's record your\n" .string "name as a TRAINER who triumphed over\l" .string "the POKéMON LEAGUE, and the names of\l" diff --git a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc index e98bf4eb36..b64f5145a0 100644 --- a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc @@ -1,65 +1,65 @@ -EverGrandeCity_PhoebesRoom_MapScripts:: @ 8228174 +EverGrandeCity_PhoebesRoom_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, EverGrandeCity_PhoebesRoom_OnLoad map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_PhoebesRoom_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, EverGrandeCity_PhoebesRoom_OnFrame .byte 0 -EverGrandeCity_PhoebesRoom_OnWarp: @ 8228184 +EverGrandeCity_PhoebesRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_PhoebesRoom_EventScript_PlayerTurnNorth .2byte 0 -EverGrandeCity_PhoebesRoom_EventScript_PlayerTurnNorth:: @ 822818E +EverGrandeCity_PhoebesRoom_EventScript_PlayerTurnNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -EverGrandeCity_PhoebesRoom_OnFrame: @ 8228193 +EverGrandeCity_PhoebesRoom_OnFrame: map_script_2 VAR_ELITE_4_STATE, 1, EverGrandeCity_PhoebesRoom_EventScript_WalkInCloseDoor .2byte 0 -EverGrandeCity_PhoebesRoom_EventScript_WalkInCloseDoor:: @ 822819D +EverGrandeCity_PhoebesRoom_EventScript_WalkInCloseDoor:: lockall call PokemonLeague_EliteFour_EventScript_WalkInCloseDoor setvar VAR_ELITE_4_STATE, 2 releaseall end -EverGrandeCity_PhoebesRoom_OnLoad: @ 82281AA +EverGrandeCity_PhoebesRoom_OnLoad: call_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_ResetAdvanceToNextRoom compare VAR_ELITE_4_STATE, 2 call_if_eq EverGrandeCity_PhoebesRoom_EventScript_CloseDoor end -EverGrandeCity_PhoebesRoom_EventScript_ResetAdvanceToNextRoom:: @ 82281BF +EverGrandeCity_PhoebesRoom_EventScript_ResetAdvanceToNextRoom:: call PokemonLeague_EliteFour_EventScript_ResetAdvanceToNextRoom return -EverGrandeCity_PhoebesRoom_EventScript_CloseDoor:: @ 82281C5 +EverGrandeCity_PhoebesRoom_EventScript_CloseDoor:: call PokemonLeague_EliteFour_EventScript_CloseDoor return -EverGrandeCity_PhoebesRoom_EventScript_Phoebe:: @ 82281CB +EverGrandeCity_PhoebesRoom_EventScript_Phoebe:: lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_PostBattleSpeech - playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, FALSE msgbox EverGrandeCity_PhoebesRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_PHOEBE, EverGrandeCity_PhoebesRoom_Text_Defeat goto EverGrandeCity_PhoebesRoom_EventScript_Defeated end -EverGrandeCity_PhoebesRoom_EventScript_PostBattleSpeech:: @ 82281F2 +EverGrandeCity_PhoebesRoom_EventScript_PostBattleSpeech:: msgbox EverGrandeCity_PhoebesRoom_Text_PostBattleSpeech, MSGBOX_DEFAULT release end -EverGrandeCity_PhoebesRoom_EventScript_Defeated:: @ 82281FC +EverGrandeCity_PhoebesRoom_EventScript_Defeated:: setflag FLAG_DEFEATED_ELITE_4_PHOEBE call PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles msgbox EverGrandeCity_PhoebesRoom_Text_PostBattleSpeech, MSGBOX_DEFAULT release end -EverGrandeCity_PhoebesRoom_Text_IntroSpeech: @ 822820E +EverGrandeCity_PhoebesRoom_Text_IntroSpeech: .string "Ahahaha!\p" .string "I'm PHOEBE of the ELITE FOUR.\n" .string "I did my training on MT. PYRE.\p" @@ -70,11 +70,11 @@ EverGrandeCity_PhoebesRoom_Text_IntroSpeech: @ 822820E .string "So, come on, just try and see if you can\n" .string "even inflict damage on my POKéMON!$" -EverGrandeCity_PhoebesRoom_Text_Defeat: @ 8228325 +EverGrandeCity_PhoebesRoom_Text_Defeat: .string "Oh, darn.\n" .string "I've gone and lost.$" -EverGrandeCity_PhoebesRoom_Text_PostBattleSpeech: @ 8228343 +EverGrandeCity_PhoebesRoom_Text_PostBattleSpeech: .string "There's a definite bond between you\n" .string "and your POKéMON, too.\p" .string "I didn't recognize it, so it's only\n" diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc index a6cf1b74e5..1244b82fd2 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc @@ -1,22 +1,22 @@ .set LOCALID_NURSE, 1 .set LOCALID_SCOTT, 4 -EverGrandeCity_PokemonCenter_1F_MapScripts:: @ 8229A34 +EverGrandeCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, EverGrandeCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -EverGrandeCity_PokemonCenter_1F_OnTransition: @ 8229A3F +EverGrandeCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_EVER_GRANDE_CITY call_if_unset FLAG_MET_SCOTT_IN_EVERGRANDE, EverGrandeCity_PokemonCenter_1F_EventScript_TryShowScott end -EverGrandeCity_PokemonCenter_1F_EventScript_TryShowScott:: @ 8229A4C +EverGrandeCity_PokemonCenter_1F_EventScript_TryShowScott:: goto_if_unset FLAG_BADGE06_GET, Common_EventScript_NopReturn clearflag FLAG_HIDE_EVER_GRANDE_POKEMON_CENTER_1F_SCOTT return -EverGrandeCity_PokemonCenter_1F_EventScript_Nurse:: @ 8229A59 +EverGrandeCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -24,15 +24,15 @@ EverGrandeCity_PokemonCenter_1F_EventScript_Nurse:: @ 8229A59 release end -EverGrandeCity_PokemonCenter_1F_EventScript_Woman:: @ 8229A67 +EverGrandeCity_PokemonCenter_1F_EventScript_Woman:: msgbox EverGrandeCity_PokemonCenter_1F_Text_LeagueAfterVictoryRoad, MSGBOX_NPC end -EverGrandeCity_PokemonCenter_1F_EventScript_ExpertM:: @ 8229A70 +EverGrandeCity_PokemonCenter_1F_EventScript_ExpertM:: msgbox EverGrandeCity_PokemonCenter_1F_Text_BelieveInYourPokemon, MSGBOX_NPC end -EverGrandeCity_PokemonCenter_1F_EventScript_Scott:: @ 8229A79 +EverGrandeCity_PokemonCenter_1F_EventScript_Scott:: lock faceplayer msgbox EverGrandeCity_PokemonCenter_1F_Text_ScottHappyForYou, MSGBOX_DEFAULT @@ -51,17 +51,17 @@ EverGrandeCity_PokemonCenter_1F_EventScript_Scott:: @ 8229A79 release end -EverGrandeCity_PokemonCenter_1F_EventScript_ScottExitNorth:: @ 8229AB6 +EverGrandeCity_PokemonCenter_1F_EventScript_ScottExitNorth:: applymovement LOCALID_SCOTT, EverGrandeCity_PokemonCenter_1F_Movement_ScottExitNorth waitmovement 0 return -EverGrandeCity_PokemonCenter_1F_EventScript_ScottExit:: @ 8229AC1 +EverGrandeCity_PokemonCenter_1F_EventScript_ScottExit:: applymovement LOCALID_SCOTT, EverGrandeCity_PokemonCenter_1F_Movement_ScottExit waitmovement 0 return -EverGrandeCity_PokemonCenter_1F_Movement_ScottExitNorth: @ 8229ACC +EverGrandeCity_PokemonCenter_1F_Movement_ScottExitNorth: walk_left walk_down walk_down @@ -70,7 +70,7 @@ EverGrandeCity_PokemonCenter_1F_Movement_ScottExitNorth: @ 8229ACC walk_down step_end -EverGrandeCity_PokemonCenter_1F_Movement_ScottExit: @ 8229AD3 +EverGrandeCity_PokemonCenter_1F_Movement_ScottExit: walk_down walk_down walk_left @@ -79,20 +79,20 @@ EverGrandeCity_PokemonCenter_1F_Movement_ScottExit: @ 8229AD3 walk_down step_end -EverGrandeCity_PokemonCenter_1F_Text_LeagueAfterVictoryRoad: @ 8229ADA +EverGrandeCity_PokemonCenter_1F_Text_LeagueAfterVictoryRoad: .string "The POKéMON LEAGUE is only a short\n" .string "distance after the VICTORY ROAD.\p" .string "If you've come this far, what choice\n" .string "do you have but to keep going?$" -EverGrandeCity_PokemonCenter_1F_Text_BelieveInYourPokemon: @ 8229B62 +EverGrandeCity_PokemonCenter_1F_Text_BelieveInYourPokemon: .string "The long and harrowing VICTORY ROAD…\p" .string "It's like reliving the path one has\n" .string "traveled in life…\p" .string "Believe in your POKéMON and give it\n" .string "your very best!$" -EverGrandeCity_PokemonCenter_1F_Text_ScottHappyForYou: @ 8229BF1 +EverGrandeCity_PokemonCenter_1F_Text_ScottHappyForYou: .string "SCOTT: {PLAYER}{KUN}, you've clawed your\n" .string "way up to face the POKéMON LEAGUE!\p" .string "I'm happy for you!\n" diff --git a/data/maps/EverGrandeCity_PokemonCenter_2F/scripts.inc b/data/maps/EverGrandeCity_PokemonCenter_2F/scripts.inc index f52419d605..0c8c93d73b 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -EverGrandeCity_PokemonCenter_2F_MapScripts:: @ 8229CE0 +EverGrandeCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ EverGrandeCity_PokemonCenter_2F_MapScripts:: @ 8229CE0 .byte 0 @ The below 3 are unused and leftover from RS -EverGrandeCity_PokemonCenter_2F_EventScript_Colosseum:: @ 8229CF5 +EverGrandeCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -EverGrandeCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 8229CFB +EverGrandeCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -EverGrandeCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 8229D01 +EverGrandeCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc index 5eed4faa69..1be2e7c1f3 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc @@ -2,23 +2,23 @@ .set LOCALID_GUARD_1, 3 .set LOCALID_GUARD_2, 4 -EverGrandeCity_PokemonLeague_1F_MapScripts:: @ 82295D2 +EverGrandeCity_PokemonLeague_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, EverGrandeCity_PokemonLeague_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -EverGrandeCity_PokemonLeague_1F_OnTransition: @ 82295DD +EverGrandeCity_PokemonLeague_1F_OnTransition: setrespawn HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE setflag FLAG_LANDMARK_POKEMON_LEAGUE call_if_unset FLAG_ENTERED_ELITE_FOUR, EverGrandeCity_PokemonLeague_1F_EventScript_GuardsBlockDoor end -EverGrandeCity_PokemonLeague_1F_EventScript_GuardsBlockDoor:: @ 82295ED +EverGrandeCity_PokemonLeague_1F_EventScript_GuardsBlockDoor:: setobjectxyperm LOCALID_GUARD_1, 9, 2 setobjectxyperm LOCALID_GUARD_2, 10, 2 return -EverGrandeCity_PokemonLeague_1F_EventScript_Nurse:: @ 82295FC +EverGrandeCity_PokemonLeague_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -26,7 +26,7 @@ EverGrandeCity_PokemonLeague_1F_EventScript_Nurse:: @ 82295FC release end -EverGrandeCity_PokemonLeague_1F_EventScript_Clerk:: @ 822960A +EverGrandeCity_PokemonLeague_1F_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -37,7 +37,7 @@ EverGrandeCity_PokemonLeague_1F_EventScript_Clerk:: @ 822960A end .align 2 -EverGrandeCity_PokemonLeague_1F_Pokemart: @ 8229624 +EverGrandeCity_PokemonLeague_1F_Pokemart: .2byte ITEM_ULTRA_BALL .2byte ITEM_HYPER_POTION .2byte ITEM_MAX_POTION @@ -51,7 +51,7 @@ EverGrandeCity_PokemonLeague_1F_Pokemart: @ 8229624 @ The door guards only check for FLAG_BADGE06_GET because Winonas badge is the only one that can be skipped @ Its assumed the player has the remaining badges -EverGrandeCity_PokemonLeague_1F_EventScript_DoorGuard:: @ 8229636 +EverGrandeCity_PokemonLeague_1F_EventScript_DoorGuard:: lockall goto_if_set FLAG_ENTERED_ELITE_FOUR, EverGrandeCity_PokemonLeague_1F_EventScript_GoForth getplayerxy VAR_TEMP_0, VAR_TEMP_1 @@ -79,23 +79,23 @@ EverGrandeCity_PokemonLeague_1F_EventScript_DoorGuard:: @ 8229636 releaseall end -EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromRight:: @ 8229698 +EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromRight:: applymovement OBJ_EVENT_ID_PLAYER, EverGrandeCity_PokemonLeague_1F_Movement_MoveToFrontFromRight waitmovement 0 return -EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromLeft:: @ 82296A3 +EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromLeft:: applymovement OBJ_EVENT_ID_PLAYER, EverGrandeCity_PokemonLeague_1F_Movement_MoveToFrontFromLeft waitmovement 0 return -EverGrandeCity_PokemonLeague_1F_EventScript_NotAllBadges:: @ 82296AE +EverGrandeCity_PokemonLeague_1F_EventScript_NotAllBadges:: playse SE_FAILURE msgbox EverGrandeCity_PokemonLeague_1F_Text_HaventObtainedAllBadges, MSGBOX_DEFAULT releaseall end -EverGrandeCity_PokemonLeague_1F_EventScript_GoForth:: @ 82296BB +EverGrandeCity_PokemonLeague_1F_EventScript_GoForth:: applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 msgbox EverGrandeCity_PokemonLeague_1F_Text_GoForth, MSGBOX_DEFAULT @@ -105,41 +105,41 @@ EverGrandeCity_PokemonLeague_1F_EventScript_GoForth:: @ 82296BB releaseall end -EverGrandeCity_PokemonLeague_1F_Movement_MoveToFrontFromRight: @ 82296DA +EverGrandeCity_PokemonLeague_1F_Movement_MoveToFrontFromRight: walk_down walk_left walk_in_place_fastest_up step_end -EverGrandeCity_PokemonLeague_1F_Movement_MoveToFrontFromLeft: @ 82296DE +EverGrandeCity_PokemonLeague_1F_Movement_MoveToFrontFromLeft: walk_down walk_right walk_in_place_fastest_up step_end -EverGrandeCity_PokemonLeague_1F_Movement_LeftGuardOutOfWay: @ 82296E2 +EverGrandeCity_PokemonLeague_1F_Movement_LeftGuardOutOfWay: walk_left walk_in_place_fastest_down step_end -EverGrandeCity_PokemonLeague_1F_Movement_RightGuardOutOfWay: @ 82296E5 +EverGrandeCity_PokemonLeague_1F_Movement_RightGuardOutOfWay: walk_right walk_in_place_fastest_down step_end -EverGrandeCity_PokemonLeague_1F_Text_MustHaveAllGymBadges: @ 82296E8 +EverGrandeCity_PokemonLeague_1F_Text_MustHaveAllGymBadges: .string "Beyond this point, only those TRAINERS\n" .string "who have collected all the GYM BADGES\l" .string "are permitted to enter.\p" .string "TRAINER, let us confirm that you have\n" .string "all the GYM BADGES.$" -EverGrandeCity_PokemonLeague_1F_Text_HaventObtainedAllBadges: @ 8229787 +EverGrandeCity_PokemonLeague_1F_Text_HaventObtainedAllBadges: .string "You haven't obtained all the BADGES.\p" .string "If you're bound for the POKéMON\n" .string "LEAGUE, you must return with them.$" -EverGrandeCity_PokemonLeague_1F_Text_GoForth: @ 82297EF +EverGrandeCity_PokemonLeague_1F_Text_GoForth: .string "TRAINER! Believe in yourself and your\n" .string "POKéMON, and go forth!$" diff --git a/data/maps/EverGrandeCity_PokemonLeague_2F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_2F/scripts.inc index b860f95b87..0ba84df349 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_2F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonLeague_2F/scripts.inc @@ -1,4 +1,4 @@ -EverGrandeCity_PokemonLeague_2F_MapScripts:: @ 8229D07 +EverGrandeCity_PokemonLeague_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ EverGrandeCity_PokemonLeague_2F_MapScripts:: @ 8229D07 .byte 0 @ The below 3 are unused and leftover from RS -EverGrandeCity_PokemonLeague_2F_EventScript_Colosseum:: @ 8229D1C +EverGrandeCity_PokemonLeague_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -EverGrandeCity_PokemonLeague_2F_EventScript_TradeCenter:: @ 8229D22 +EverGrandeCity_PokemonLeague_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -EverGrandeCity_PokemonLeague_2F_EventScript_RecordCorner:: @ 8229D28 +EverGrandeCity_PokemonLeague_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc index 717651b262..3444d078b1 100644 --- a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc +++ b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc @@ -1,71 +1,71 @@ -EverGrandeCity_SidneysRoom_MapScripts:: @ 8227F01 +EverGrandeCity_SidneysRoom_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, EverGrandeCity_SidneysRoom_OnLoad map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, EverGrandeCity_SidneysRoom_OnWarp map_script MAP_SCRIPT_ON_TRANSITION, EverGrandeCity_SidneysRoom_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, EverGrandeCity_SidneysRoom_OnFrame .byte 0 -EverGrandeCity_SidneysRoom_OnTransition: @ 8227F16 +EverGrandeCity_SidneysRoom_OnTransition: setflag FLAG_MET_SCOTT_IN_EVERGRANDE setflag FLAG_HIDE_EVER_GRANDE_POKEMON_CENTER_1F_SCOTT end -EverGrandeCity_SidneysRoom_OnLoad: @ 8227F1D +EverGrandeCity_SidneysRoom_OnLoad: call_if_set FLAG_DEFEATED_ELITE_4_SIDNEY, EverGrandeCity_SidneysRoom_EventScript_ResetAdvanceToNextRoom compare VAR_ELITE_4_STATE, 1 call_if_eq EverGrandeCity_SidneysRoom_EventScript_CloseDoor end -EverGrandeCity_SidneysRoom_EventScript_ResetAdvanceToNextRoom:: @ 8227F32 +EverGrandeCity_SidneysRoom_EventScript_ResetAdvanceToNextRoom:: call PokemonLeague_EliteFour_EventScript_ResetAdvanceToNextRoom return -EverGrandeCity_SidneysRoom_EventScript_CloseDoor:: @ 8227F38 +EverGrandeCity_SidneysRoom_EventScript_CloseDoor:: call PokemonLeague_EliteFour_EventScript_CloseDoor return -EverGrandeCity_SidneysRoom_OnWarp: @ 8227F3E +EverGrandeCity_SidneysRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, EverGrandeCity_SidneysRoom_EventScript_PlayerTurnNorth .2byte 0 -EverGrandeCity_SidneysRoom_EventScript_PlayerTurnNorth:: @ 8227F48 +EverGrandeCity_SidneysRoom_EventScript_PlayerTurnNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -EverGrandeCity_SidneysRoom_OnFrame: @ 8227F4D +EverGrandeCity_SidneysRoom_OnFrame: map_script_2 VAR_ELITE_4_STATE, 0, EverGrandeCity_SidneysRoom_EventScript_WalkInCloseDoor .2byte 0 -EverGrandeCity_SidneysRoom_EventScript_WalkInCloseDoor:: @ 8227F57 +EverGrandeCity_SidneysRoom_EventScript_WalkInCloseDoor:: lockall call PokemonLeague_EliteFour_EventScript_WalkInCloseDoor setvar VAR_ELITE_4_STATE, 1 releaseall end -EverGrandeCity_SidneysRoom_EventScript_Sidney:: @ 8227F64 +EverGrandeCity_SidneysRoom_EventScript_Sidney:: lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_SIDNEY, EverGrandeCity_SidneysRoom_EventScript_PostBattleSpeech - playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, FALSE msgbox EverGrandeCity_SidneysRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_SIDNEY, EverGrandeCity_SidneysRoom_Text_Defeat goto EverGrandeCity_SidneysRoom_EventScript_Defeated end -EverGrandeCity_SidneysRoom_EventScript_PostBattleSpeech:: @ 8227F8B +EverGrandeCity_SidneysRoom_EventScript_PostBattleSpeech:: msgbox EverGrandeCity_SidneysRoom_Text_PostBattleSpeech, MSGBOX_DEFAULT release end -EverGrandeCity_SidneysRoom_EventScript_Defeated:: @ 8227F95 +EverGrandeCity_SidneysRoom_EventScript_Defeated:: setflag FLAG_DEFEATED_ELITE_4_SIDNEY call PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles msgbox EverGrandeCity_SidneysRoom_Text_PostBattleSpeech, MSGBOX_DEFAULT release end -EverGrandeCity_SidneysRoom_Text_IntroSpeech: @ 8227FA7 +EverGrandeCity_SidneysRoom_Text_IntroSpeech: .string "Welcome, challenger!\n" .string "I'm SIDNEY of the ELITE FOUR.\p" .string "I like that look you're giving me.\n" @@ -75,11 +75,11 @@ EverGrandeCity_SidneysRoom_Text_IntroSpeech: @ 8227FA7 .string "a battle that can only be staged\l" .string "here in the POKéMON LEAGUE!$" -EverGrandeCity_SidneysRoom_Text_Defeat: @ 82280A2 +EverGrandeCity_SidneysRoom_Text_Defeat: .string "Well, how do you like that? I lost!\n" .string "Eh, it was fun, so it doesn't matter.$" -EverGrandeCity_SidneysRoom_Text_PostBattleSpeech: @ 82280EC +EverGrandeCity_SidneysRoom_Text_PostBattleSpeech: .string "Well, listen to what this loser has\n" .string "to say.\p" .string "You've got what it takes to go far.\n" diff --git a/data/maps/FallarborTown/scripts.inc b/data/maps/FallarborTown/scripts.inc index a94c81ae9c..809909a5ca 100644 --- a/data/maps/FallarborTown/scripts.inc +++ b/data/maps/FallarborTown/scripts.inc @@ -1,14 +1,14 @@ -FallarborTown_MapScripts:: @ 81EB1FA +FallarborTown_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, FallarborTown_OnTransition .byte 0 -FallarborTown_OnTransition: @ 81EB200 +FallarborTown_OnTransition: setflag FLAG_VISITED_FALLARBOR_TOWN setvar VAR_CONTEST_HALL_STATE, 0 clearflag FLAG_CONTEST_SKETCH_CREATED end -FallarborTown_EventScript_ExpertM:: @ 81EB20C +FallarborTown_EventScript_ExpertM:: lock faceplayer goto_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, FallarborTown_EventScript_ExpertMNormal @@ -16,20 +16,20 @@ FallarborTown_EventScript_ExpertM:: @ 81EB20C release end -FallarborTown_EventScript_ExpertMNormal:: @ 81EB221 +FallarborTown_EventScript_ExpertMNormal:: msgbox FallarborTown_Text_RegionKnownForMeteors, MSGBOX_DEFAULT release end -FallarborTown_EventScript_Girl:: @ 81EB22B +FallarborTown_EventScript_Girl:: msgbox FallarborTown_Text_MyPreciousAzurill, MSGBOX_NPC end -FallarborTown_EventScript_Gentleman:: @ 81EB234 +FallarborTown_EventScript_Gentleman:: msgbox FallarborTown_Text_HaveYouChallengedFlannery, MSGBOX_NPC end -FallarborTown_EventScript_Azurill:: @ 81EB23D +FallarborTown_EventScript_Azurill:: lock faceplayer waitse @@ -39,39 +39,39 @@ FallarborTown_EventScript_Azurill:: @ 81EB23D release end -FallarborTown_EventScript_BattleTentSign:: @ 81EB250 +FallarborTown_EventScript_BattleTentSign:: msgbox FallarborTown_Text_BattleTentSign, MSGBOX_SIGN end -FallarborTown_EventScript_TownSign:: @ 81EB259 +FallarborTown_EventScript_TownSign:: msgbox FallarborTown_Text_TownSign, MSGBOX_SIGN end -FallarborTown_EventScript_MoveTutorSign:: @ 81EB262 +FallarborTown_EventScript_MoveTutorSign:: msgbox FallarborTown_Text_MoveTutorSign, MSGBOX_SIGN end -FallarborTown_Text_ShadyCharactersCozmosHome: @ 81EB26B +FallarborTown_Text_ShadyCharactersCozmosHome: .string "Something's happening,\n" .string "and I don't like it!\p" .string "I've seen shady characters wandering\n" .string "in and out of PROF. COZMO's home…$" -FallarborTown_Text_RegionKnownForMeteors: @ 81EB2DE +FallarborTown_Text_RegionKnownForMeteors: .string "This region's been known for meteors\n" .string "since the olden days.\p" .string "They say METEOR FALLS was gouged out\n" .string "by a falling meteorite long ago.$" -FallarborTown_Text_MyPreciousAzurill: @ 81EB35F +FallarborTown_Text_MyPreciousAzurill: .string "See! Take a look!\n" .string "This is my precious AZURILL!\p" .string "It's slick and smooth and plushy, too!$" -FallarborTown_Text_Azurill: @ 81EB3B5 +FallarborTown_Text_Azurill: .string "AZURILL: Rooreelooo.$" -FallarborTown_Text_HaveYouChallengedFlannery: @ 81EB3CA +FallarborTown_Text_HaveYouChallengedFlannery: .string "Have you already challenged FLANNERY,\n" .string "the LEADER of LAVARIDGE GYM?\p" .string "The girl's grandfather was famous.\n" @@ -81,15 +81,15 @@ FallarborTown_Text_HaveYouChallengedFlannery: @ 81EB3CA .string "become a great TRAINER in her own\l" .string "right.$" -FallarborTown_Text_BattleTentSign: @ 81EB4C2 +FallarborTown_Text_BattleTentSign: .string "BATTLE TENT FALLARBOR SITE\n" .string "“May the Greatest Teams Gather!”$" -FallarborTown_Text_TownSign: @ 81EB4FE +FallarborTown_Text_TownSign: .string "FALLARBOR TOWN\n" .string "“A farm community with small gardens.”$" -FallarborTown_Text_MoveTutorSign: @ 81EB534 +FallarborTown_Text_MoveTutorSign: .string "MOVE TUTOR'S HOUSE\n" .string "“New moves taught to POKéMON.”$" diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index fd1f278608..947bbb8bba 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -2,7 +2,7 @@ .set LOCALID_ATTENDANT, 2 .set LOCALID_OPPONENT, 3 -FallarborTown_BattleTentBattleRoom_MapScripts:: @ 8200899 +FallarborTown_BattleTentBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, FallarborTown_BattleTentBattleRoom_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentBattleRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, FallarborTown_BattleTentBattleRoom_OnWarp @@ -12,11 +12,11 @@ FallarborTown_BattleTentBattleRoom_MapScripts:: @ 8200899 @ The player is represented instead by object event 1, which has the gfx id VAR_OBJ_GFX_ID_1 @ The opponent is represented by object event 3, which has the gfx id VAR_OBJ_GFX_ID_0 -FallarborTown_BattleTentBattleRoom_OnTransition: @ 82008A9 +FallarborTown_BattleTentBattleRoom_OnTransition: call FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfx end -FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 82008AF +FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale @@ -24,21 +24,21 @@ FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 82008AF goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return -FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @ 82008C7 +FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: @ 82008D2 +FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -FallarborTown_BattleTentBattleRoom_OnFrame: @ 82008DD +FallarborTown_BattleTentBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentBattleRoom_EventScript_EnterRoom .2byte 0 -FallarborTown_BattleTentBattleRoom_EventScript_EnterRoom:: @ 82008E7 +FallarborTown_BattleTentBattleRoom_EventScript_EnterRoom:: lockall showobjectat LOCALID_PLAYER, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM applymovement LOCALID_PLAYER, FallarborTown_BattleTentBattleRoom_Movement_PlayerEnter @@ -46,7 +46,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_EnterRoom:: @ 82008E7 frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_ne FallarborTown_BattleTentBattleRoom_EventScript_ResumeChallenge -FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820090F +FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: tower_setopponent addobject LOCALID_OPPONENT applymovement LOCALID_OPPONENT, FallarborTown_BattleTentBattleRoom_Movement_OpponentEnter @@ -68,20 +68,20 @@ FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820090F waitmovement 0 fallarbortent_getopponentname msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsOpponent, MSGBOX_DEFAULT -FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: @ 820097E +FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate -FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 820099C +FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump playse SE_BANG waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsPlayer, MSGBOX_DEFAULT closemessage -FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum:: @ 82009B3 +FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum:: frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT @@ -101,35 +101,35 @@ FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum:: @ 82009B3 playfanfare MUS_HEAL waitfanfare special HealPlayerParty -FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: @ 8200A2A +FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent compare VAR_RESULT, 2 call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, FallarborTown_BattleTentBattleRoom_EventScript_ContinueChallenge case 1, FallarborTown_BattleTentBattleRoom_EventScript_AskPauseChallenge case 2, FallarborTown_BattleTentBattleRoom_EventScript_AskRetireChallenge -FallarborTown_BattleTentBattleRoom_EventScript_AskPauseChallenge:: @ 8200A78 +FallarborTown_BattleTentBattleRoom_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattleArenaBattleRoom_Text_SaveAndShutDown, MSGBOX_YESNO switch VAR_RESULT case NO, FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge case YES, FallarborTown_BattleTentBattleRoom_EventScript_PauseChallenge case MULTI_B_PRESSED, FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -FallarborTown_BattleTentBattleRoom_EventScript_AskRetireChallenge:: @ 8200AA6 +FallarborTown_BattleTentBattleRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattleArenaBattleRoom_Text_RetireFromChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge case 0, FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost case MULTI_B_PRESSED, FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -FallarborTown_BattleTentBattleRoom_EventScript_ContinueChallenge:: @ 8200AD8 +FallarborTown_BattleTentBattleRoom_EventScript_ContinueChallenge:: closemessage applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantReturnToPos waitmovement 0 @@ -138,7 +138,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_ContinueChallenge:: @ 8200AD8 goto FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter waitstate -FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: @ 8200AF3 +FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty @@ -153,17 +153,17 @@ FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: @ 8200AF3 arena_set ARENA_DATA_WIN_STREAK, VAR_RESULT @ See above -FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent:: @ 8200B43 +FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent:: message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor2ndOpponent waitmessage return -FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent:: @ 8200B4A +FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent:: message BattleFrontier_BattleArenaBattleRoom_Text_ReadyFor3rdOpponent waitmessage return -FallarborTown_BattleTentBattleRoom_EventScript_PauseChallenge:: @ 8200B51 +FallarborTown_BattleTentBattleRoom_EventScript_PauseChallenge:: message BattleFrontier_BattleArenaBattleRoom_Text_SavingPleaseWait waitmessage fallarbortent_save CHALLENGE_STATUS_PAUSED @@ -173,7 +173,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_PauseChallenge:: @ 8200B51 frontier_reset end -FallarborTown_BattleTentBattleRoom_EventScript_ResumeChallenge:: @ 8200B73 +FallarborTown_BattleTentBattleRoom_EventScript_ResumeChallenge:: applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantApproachPlayer waitmovement 0 applymovement LOCALID_PLAYER, FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceAttendant @@ -181,22 +181,22 @@ FallarborTown_BattleTentBattleRoom_EventScript_ResumeChallenge:: @ 8200B73 goto FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge end -FallarborTown_BattleTentBattleRoom_Movement_PlayerEnter: @ 8200B8D +FallarborTown_BattleTentBattleRoom_Movement_PlayerEnter: walk_up walk_up walk_up walk_in_place_fastest_right step_end -FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceBattle: @ 8200B92 +FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceBattle: walk_in_place_fastest_right step_end -FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceAttendant: @ 8200B94 +FallarborTown_BattleTentBattleRoom_Movement_PlayerFaceAttendant: walk_in_place_fastest_left step_end -FallarborTown_BattleTentBattleRoom_Movement_OpponentEnter: @ 8200B96 +FallarborTown_BattleTentBattleRoom_Movement_OpponentEnter: walk_down walk_down walk_down @@ -205,41 +205,41 @@ FallarborTown_BattleTentBattleRoom_Movement_OpponentEnter: @ 8200B96 step_end @ Unused -FallarborTown_BattleTentBattleRoom_Movement_OpponentStepForward: @ 8200B9C +FallarborTown_BattleTentBattleRoom_Movement_OpponentStepForward: walk_left step_end -FallarborTown_BattleTentBattleRoom_Movement_OpponentExit: @ 8200B9E +FallarborTown_BattleTentBattleRoom_Movement_OpponentExit: walk_up walk_up walk_up walk_up step_end -FallarborTown_BattleTentBattleRoom_Movement_AttendantJump: @ 8200BA3 +FallarborTown_BattleTentBattleRoom_Movement_AttendantJump: disable_jump_landing_ground_effect jump_in_place_down step_end -FallarborTown_BattleTentBattleRoom_Movement_AttendantApproachPlayer: @ 8200BA6 +FallarborTown_BattleTentBattleRoom_Movement_AttendantApproachPlayer: walk_down walk_down walk_down walk_in_place_fastest_right step_end -FallarborTown_BattleTentBattleRoom_Movement_AttendantReturnToPos: @ 8200BAB +FallarborTown_BattleTentBattleRoom_Movement_AttendantReturnToPos: walk_up walk_up walk_up walk_in_place_fastest_down step_end -FallarborTown_BattleTentBattleRoom_OnWarp: @ 8200BB0 +FallarborTown_BattleTentBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, FallarborTown_BattleTentBattleRoom_EventScript_SetUpObjects .2byte 0 -FallarborTown_BattleTentBattleRoom_EventScript_SetUpObjects:: @ 8200BBA +FallarborTown_BattleTentBattleRoom_EventScript_SetUpObjects:: hideobjectat OBJ_EVENT_ID_PLAYER, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM hideobjectat LOCALID_PLAYER, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM removeobject LOCALID_OPPONENT diff --git a/data/maps/FallarborTown_BattleTentCorridor/scripts.inc b/data/maps/FallarborTown_BattleTentCorridor/scripts.inc index 89daef9b9c..077cdfe798 100644 --- a/data/maps/FallarborTown_BattleTentCorridor/scripts.inc +++ b/data/maps/FallarborTown_BattleTentCorridor/scripts.inc @@ -1,14 +1,14 @@ .set LOCALID_ATTENDANT, 1 -FallarborTown_BattleTentCorridor_MapScripts:: @ 82006A7 +FallarborTown_BattleTentCorridor_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentCorridor_OnFrame .byte 0 -FallarborTown_BattleTentCorridor_OnFrame: @ 82006AD +FallarborTown_BattleTentCorridor_OnFrame: map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentCorridor_EventScript_EnterCorridor .2byte 0 -FallarborTown_BattleTentCorridor_EventScript_EnterCorridor:: @ 82006B7 +FallarborTown_BattleTentCorridor_EventScript_EnterCorridor:: lockall setvar VAR_TEMP_0, 1 applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentCorridor_Movement_WalkToDoor @@ -27,44 +27,44 @@ FallarborTown_BattleTentCorridor_EventScript_EnterCorridor:: @ 82006B7 releaseall end -FallarborTown_BattleTentCorridor_Movement_WalkToDoor: @ 82006FB +FallarborTown_BattleTentCorridor_Movement_WalkToDoor: walk_up walk_up walk_up walk_up step_end -FallarborTown_BattleTentCorridor_Movement_PlayerEnterDoor: @ 8200700 +FallarborTown_BattleTentCorridor_Movement_PlayerEnterDoor: walk_up -FallarborTown_BattleTentCorridor_Movement_AttendantEnterDoor: @ 8200701 +FallarborTown_BattleTentCorridor_Movement_AttendantEnterDoor: walk_up set_invisible step_end @ Leftover text from when this was a Contest Hall in R/S @ Unused -FallarborTown_ContestHall_Text_DoAllRightInPreliminary: @ 8200704 +FallarborTown_ContestHall_Text_DoAllRightInPreliminary: .string "We do all right in the preliminary round,\n" .string "but we can never win the appeals…\p" .string "Maybe it means I have to watch what\n" .string "other contestants are doing…$" @ Unused -FallarborTown_ContestHall_Text_MonAllTheseRibbons: @ 8200791 +FallarborTown_ContestHall_Text_MonAllTheseRibbons: .string "See!\n" .string "My POKéMON won all these RIBBONS!\p" .string "Have your POKéMON earned any RIBBONS?\n" .string "You can check them on your POKéNAV.$" @ Unused -FallarborTown_ContestHall_Text_CantWinEverywhere: @ 8200802 +FallarborTown_ContestHall_Text_CantWinEverywhere: .string "I can't beat GYM LEADERS…\p" .string "I can't win any CONTESTS…\p" .string "I've been here, there, and everywhere,\n" .string "and it's all for naught…$" @ Unused -FallarborTown_ContestHall_Text_SuperRankStage: @ 8200876 +FallarborTown_ContestHall_Text_SuperRankStage: .string "POKéMON CONTESTS\n" .string "SUPER RANK STAGE!$" diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index 0a6a4f16cd..6a2c8713fa 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -1,20 +1,20 @@ .set LOCALID_ATTENDANT, 1 -FallarborTown_BattleTentLobby_MapScripts:: @ 81FFE66 +FallarborTown_BattleTentLobby_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, FallarborTown_BattleTentLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, FallarborTown_BattleTentLobby_OnWarp .byte 0 -FallarborTown_BattleTentLobby_OnWarp: @ 81FFE71 +FallarborTown_BattleTentLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, FallarborTown_BattleTentLobby_EventScript_TurnPlayerNorth .2byte 0 -FallarborTown_BattleTentLobby_EventScript_TurnPlayerNorth:: @ 81FFE7B +FallarborTown_BattleTentLobby_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -FallarborTown_BattleTentLobby_OnFrame: @ 81FFE85 +FallarborTown_BattleTentLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, FallarborTown_BattleTentLobby_EventScript_ResumeChallenge @@ -22,11 +22,11 @@ FallarborTown_BattleTentLobby_OnFrame: @ 81FFE85 map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, FallarborTown_BattleTentLobby_EventScript_LostChallenge .2byte 0 -FallarborTown_BattleTentLobby_EventScript_GetChallengeStatus:: @ 81FFEAF +FallarborTown_BattleTentLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 81FFEB8 +FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving:: lockall msgbox FallarborTown_BattleTentLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT closemessage @@ -36,7 +36,7 @@ FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 81FFEB8 releaseall end -FallarborTown_BattleTentLobby_EventScript_WonChallenge:: @ 81FFEED +FallarborTown_BattleTentLobby_EventScript_WonChallenge:: lockall msgbox FallarborTown_BattleTentLobby_Text_BeatThreeTrainers, MSGBOX_DEFAULT message FallarborTown_BattleTentLobby_Text_WaitWhileSaveGame @@ -47,7 +47,7 @@ FallarborTown_BattleTentLobby_EventScript_WonChallenge:: @ 81FFEED playse SE_SAVE waitse -FallarborTown_BattleTentLobby_EventScript_GivePrize:: @ 81FFF27 +FallarborTown_BattleTentLobby_EventScript_GivePrize:: msgbox FallarborTown_BattleTentLobby_Text_PresentYouWithPrize, MSGBOX_DEFAULT fallarbortent_giveprize switch VAR_RESULT @@ -63,7 +63,7 @@ FallarborTown_BattleTentLobby_EventScript_GivePrize:: @ 81FFF27 releaseall end -FallarborTown_BattleTentLobby_EventScript_NoRoomForPrize:: @ 81FFF73 +FallarborTown_BattleTentLobby_EventScript_NoRoomForPrize:: msgbox FallarborTown_BattleTentLobby_Text_BagFullReturnForPrize, MSGBOX_DEFAULT waitmessage closemessage @@ -71,13 +71,13 @@ FallarborTown_BattleTentLobby_EventScript_NoRoomForPrize:: @ 81FFF73 releaseall end -FallarborTown_BattleTentLobby_EventScript_PrizeWaiting:: @ 81FFF84 +FallarborTown_BattleTentLobby_EventScript_PrizeWaiting:: lockall msgbox FallarborTown_BattleTentLobby_Text_BeatThreeTrainers, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_GivePrize end -FallarborTown_BattleTentLobby_EventScript_LostChallenge:: @ 81FFF93 +FallarborTown_BattleTentLobby_EventScript_LostChallenge:: lockall message FallarborTown_BattleTentLobby_Text_ThankYouWaitWhileSaving waitmessage @@ -91,7 +91,7 @@ FallarborTown_BattleTentLobby_EventScript_LostChallenge:: @ 81FFF93 releaseall end -FallarborTown_BattleTentLobby_EventScript_ResumeChallenge:: @ 81FFFCD +FallarborTown_BattleTentLobby_EventScript_ResumeChallenge:: lockall message FallarborTown_BattleTentLobby_Text_LookingForwardToArrival waitmessage @@ -102,7 +102,7 @@ FallarborTown_BattleTentLobby_EventScript_ResumeChallenge:: @ 81FFFCD setvar VAR_TEMP_0, 255 goto FallarborTown_BattleTentLobby_EventScript_EnterChallenge -FallarborTown_BattleTentLobby_EventScript_Attendant:: @ 8200001 +FallarborTown_BattleTentLobby_EventScript_Attendant:: lock faceplayer fallarbortent_getprize @@ -110,17 +110,17 @@ FallarborTown_BattleTentLobby_EventScript_Attendant:: @ 8200001 goto_if_ne FallarborTown_BattleTentLobby_EventScript_PrizeWaiting special SavePlayerParty msgbox FallarborTown_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT -FallarborTown_BattleTentLobby_EventScript_AskEnterChallenge:: @ 8200021 +FallarborTown_BattleTentLobby_EventScript_AskEnterChallenge:: message FallarborTown_BattleTentLobby_Text_TakeChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge case 1, FallarborTown_BattleTentLobby_EventScript_ExplainChallenge case 2, FallarborTown_BattleTentLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_CancelChallenge -FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge:: @ 820005D +FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge:: setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_ARENA setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 @@ -142,7 +142,7 @@ FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge:: @ 820005D case YES, FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge -FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 82000E2 +FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER fallarbortent_init @@ -155,7 +155,7 @@ FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 82000E2 setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 goto_if_eq FallarborTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed -FallarborTown_BattleTentLobby_EventScript_EnterChallenge:: @ 820013C +FallarborTown_BattleTentLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox FallarborTown_BattleTentLobby_Text_GuideYouToBattleTent, MSGBOX_DEFAULT @@ -166,35 +166,35 @@ FallarborTown_BattleTentLobby_EventScript_EnterChallenge:: @ 820013C waitstate end -FallarborTown_BattleTentLobby_EventScript_ExplainChallenge:: @ 8200169 +FallarborTown_BattleTentLobby_EventScript_ExplainChallenge:: msgbox FallarborTown_BattleTentLobby_Text_ExplainFallarborTent, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_AskEnterChallenge -FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMons:: @ 8200176 +FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMons:: switch VAR_RESULT case FRONTIER_LVL_50, FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50 case FRONTIER_LVL_OPEN, FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen -FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50:: @ 8200191 +FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50:: msgbox FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_EndCancelChallenge -FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 820019E +FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen:: msgbox FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_EndCancelChallenge -FallarborTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: @ 82001AB +FallarborTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto FallarborTown_BattleTentLobby_EventScript_CancelChallenge -FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: @ 82001C2 +FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: special LoadPlayerParty -FallarborTown_BattleTentLobby_EventScript_CancelChallenge:: @ 82001C5 +FallarborTown_BattleTentLobby_EventScript_CancelChallenge:: msgbox FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge, MSGBOX_DEFAULT -FallarborTown_BattleTentLobby_EventScript_EndCancelChallenge:: @ 82001CD +FallarborTown_BattleTentLobby_EventScript_EndCancelChallenge:: release end -FallarborTown_BattleTentLobby_EventScript_WalkToDoor:: @ 82001CF +FallarborTown_BattleTentLobby_EventScript_WalkToDoor:: applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentLobby_Movement_AttendantWalkToDoor applymovement OBJ_EVENT_ID_PLAYER, FallarborTown_BattleTentLobby_Movement_PlayerWalkToDoor waitmovement 0 @@ -207,42 +207,42 @@ FallarborTown_BattleTentLobby_EventScript_WalkToDoor:: @ 82001CF waitdooranim return -FallarborTown_BattleTentLobby_Movement_AttendantWalkToDoor: @ 82001FE +FallarborTown_BattleTentLobby_Movement_AttendantWalkToDoor: walk_up walk_up walk_up step_end -FallarborTown_BattleTentLobby_Movement_AttendantEnterDoor: @ 8200202 +FallarborTown_BattleTentLobby_Movement_AttendantEnterDoor: walk_up set_invisible step_end -FallarborTown_BattleTentLobby_Movement_PlayerWalkToDoor: @ 8200205 +FallarborTown_BattleTentLobby_Movement_PlayerWalkToDoor: walk_up walk_up walk_up step_end -FallarborTown_BattleTentLobby_Movement_PlayerEnterDoor: @ 8200209 +FallarborTown_BattleTentLobby_Movement_PlayerEnterDoor: walk_up walk_up set_invisible step_end -FallarborTown_BattleTentLobby_EventScript_Hiker:: @ 820020D +FallarborTown_BattleTentLobby_EventScript_Hiker:: msgbox FallarborTown_BattleTentLobby_Text_CameToCampOut, MSGBOX_NPC end -FallarborTown_BattleTentLobby_EventScript_LittleBoy:: @ 8200216 +FallarborTown_BattleTentLobby_EventScript_LittleBoy:: msgbox FallarborTown_BattleTentLobby_Text_MakeThinkImJustKid, MSGBOX_NPC end -FallarborTown_BattleTentLobby_EventScript_Lass:: @ 820021F +FallarborTown_BattleTentLobby_EventScript_Lass:: msgbox FallarborTown_BattleTentLobby_Text_FallarborTentMyFavorite, MSGBOX_NPC end -FallarborTown_BattleTentLobby_EventScript_Scott:: @ 8200228 +FallarborTown_BattleTentLobby_EventScript_Scott:: lock faceplayer goto_if_set FLAG_MET_SCOTT_IN_FALLARBOR, FallarborTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo @@ -252,21 +252,21 @@ FallarborTown_BattleTentLobby_EventScript_Scott:: @ 8200228 release end -FallarborTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo:: @ 8200245 +FallarborTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo:: msgbox FallarborTown_BattleTentLobby_Text_ScottMakeChallenge, MSGBOX_DEFAULT release end -FallarborTown_BattleTentLobby_EventScript_RulesBoard:: @ 820024F +FallarborTown_BattleTentLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattleArenaLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard:: @ 820025E +FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattleArenaLobby_Text_ReadWhichHeading waitmessage - multichoice 17, 0, MULTI_FALLARBOR_TENT_RULES, 0 + multichoice 17, 0, MULTI_FALLARBOR_TENT_RULES, FALSE switch VAR_RESULT case 0, FallarborTown_BattleTentLobby_EventScript_RulesLevel case 1, FallarborTown_BattleTentLobby_EventScript_RulesBattle @@ -277,43 +277,43 @@ FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard:: @ 820025E case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_ExitRules end -FallarborTown_BattleTentLobby_EventScript_RulesLevel:: @ 82002BC +FallarborTown_BattleTentLobby_EventScript_RulesLevel:: msgbox BattleTentLobby_Text_ExplainLevelRules, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_RulesBattle:: @ 82002CA +FallarborTown_BattleTentLobby_EventScript_RulesBattle:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainBattleRules, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_RulesMind:: @ 82002D8 +FallarborTown_BattleTentLobby_EventScript_RulesMind:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainMindRules, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_RulesSkill:: @ 82002E6 +FallarborTown_BattleTentLobby_EventScript_RulesSkill:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainSkillRules, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_RulesBody:: @ 82002F4 +FallarborTown_BattleTentLobby_EventScript_RulesBody:: msgbox BattleFrontier_BattleArenaLobby_Text_ExplainBodyRules, MSGBOX_DEFAULT goto FallarborTown_BattleTentLobby_EventScript_ReadRulesBoard end -FallarborTown_BattleTentLobby_EventScript_ExitRules:: @ 8200302 +FallarborTown_BattleTentLobby_EventScript_ExitRules:: releaseall end -FallarborTown_BattleTentLobby_Text_MakeThinkImJustKid: @ 8200304 +FallarborTown_BattleTentLobby_Text_MakeThinkImJustKid: .string "Fufufufufu.\p" .string "I'm going to make everyone think\n" .string "I'm just a kid and let them play down.\p" .string "Then, I'll shock them and grab\n" .string "the title!$" -FallarborTown_BattleTentLobby_Text_FallarborTentMyFavorite: @ 8200382 +FallarborTown_BattleTentLobby_Text_FallarborTentMyFavorite: .string "You know how BATTLE TENTS offer\n" .string "different events in different towns?\p" .string "My favorite is definitely the BATTLE\n" @@ -322,7 +322,7 @@ FallarborTown_BattleTentLobby_Text_FallarborTentMyFavorite: @ 8200382 .string "try to win with all their faith in\l" .string "their POKéMON.$" -FallarborTown_BattleTentLobby_Text_CameToCampOut: @ 820045A +FallarborTown_BattleTentLobby_Text_CameToCampOut: .string "I heard something about some tent,\n" .string "so I came to camp out.\p" .string "I didn't know that tents these days\n" @@ -330,7 +330,7 @@ FallarborTown_BattleTentLobby_Text_CameToCampOut: @ 820045A .string "Since I'm here, I may as well try\n" .string "my hand at battling!$" -FallarborTown_BattleTentLobby_Text_ScottLookingForSomeone: @ 8200501 +FallarborTown_BattleTentLobby_Text_ScottLookingForSomeone: .string "SCOTT: Hi, {PLAYER}{KUN}!\n" .string "So you came out to this BATTLE TENT!\p" .string "The people in these parts tend to be\n" @@ -345,7 +345,7 @@ FallarborTown_BattleTentLobby_Text_ScottLookingForSomeone: @ 8200501 .string "Whoops! Never mind!\n" .string "Keep working at it!$" -FallarborTown_BattleTentLobby_Text_ScottMakeChallenge: @ 8200653 +FallarborTown_BattleTentLobby_Text_ScottMakeChallenge: .string "SCOTT: Instead of wasting your\n" .string "time with the likes of me, why not\l" .string "make a challenge?$" diff --git a/data/maps/FallarborTown_CozmosHouse/scripts.inc b/data/maps/FallarborTown_CozmosHouse/scripts.inc index 3f4db18d3a..43a9dca7f3 100644 --- a/data/maps/FallarborTown_CozmosHouse/scripts.inc +++ b/data/maps/FallarborTown_CozmosHouse/scripts.inc @@ -1,7 +1,7 @@ -FallarborTown_CozmosHouse_MapScripts:: @ 8200F12 +FallarborTown_CozmosHouse_MapScripts:: .byte 0 -FallarborTown_CozmosHouse_EventScript_ProfCozmo:: @ 8200F13 +FallarborTown_CozmosHouse_EventScript_ProfCozmo:: lock faceplayer goto_if_set FLAG_RECEIVED_TM27, FallarborTown_CozmosHouse_EventScript_GaveMeteorite @@ -12,7 +12,7 @@ FallarborTown_CozmosHouse_EventScript_ProfCozmo:: @ 8200F13 release end -FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite:: @ 8200F38 +FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite:: call_if_unset FLAG_TEMP_2, FallarborTown_CozmosHouse_EventScript_NoticeMeteorite call_if_set FLAG_TEMP_2, FallarborTown_CozmosHouse_EventScript_AskForMeteorite compare VAR_RESULT, NO @@ -28,27 +28,27 @@ FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite:: @ 8200F38 release end -FallarborTown_CozmosHouse_EventScript_NoticeMeteorite:: @ 8200F8B +FallarborTown_CozmosHouse_EventScript_NoticeMeteorite:: msgbox FallarborTown_CozmosHouse_Text_MeteoriteWillNeverBeMineNow, MSGBOX_DEFAULT msgbox FallarborTown_CozmosHouse_Text_IsThatMeteoriteMayIHaveIt, MSGBOX_YESNO return -FallarborTown_CozmosHouse_EventScript_AskForMeteorite:: @ 8200F9C +FallarborTown_CozmosHouse_EventScript_AskForMeteorite:: msgbox FallarborTown_CozmosHouse_Text_MayIHaveMeteorite, MSGBOX_YESNO return -FallarborTown_CozmosHouse_EventScript_DeclineGiveMeteorite:: @ 8200FA5 +FallarborTown_CozmosHouse_EventScript_DeclineGiveMeteorite:: setflag FLAG_TEMP_2 msgbox FallarborTown_CozmosHouse_Text_CrushedWithDisappointment, MSGBOX_DEFAULT release end -FallarborTown_CozmosHouse_EventScript_GaveMeteorite:: @ 8200FB2 +FallarborTown_CozmosHouse_EventScript_GaveMeteorite:: msgbox FallarborTown_CozmosHouse_Text_ReallyGoingToHelpMyResearch, MSGBOX_DEFAULT release end -FallarborTown_CozmosHouse_EventScript_CozmosWife:: @ 8200FBC +FallarborTown_CozmosHouse_EventScript_CozmosWife:: lock faceplayer goto_if_set FLAG_RECEIVED_TM27, FallarborTown_CozmosHouse_EventScript_CozmoIsHappy @@ -57,17 +57,17 @@ FallarborTown_CozmosHouse_EventScript_CozmosWife:: @ 8200FBC release end -FallarborTown_CozmosHouse_EventScript_CozmoIsSad:: @ 8200FDA +FallarborTown_CozmosHouse_EventScript_CozmoIsSad:: msgbox FallarborTown_CozmosHouse_Text_FeelSorryForCozmo, MSGBOX_DEFAULT release end -FallarborTown_CozmosHouse_EventScript_CozmoIsHappy:: @ 8200FE4 +FallarborTown_CozmosHouse_EventScript_CozmoIsHappy:: msgbox FallarborTown_CozmosHouse_Text_CozmoIsSoHappy, MSGBOX_DEFAULT release end -FallarborTown_CozmosHouse_Text_MeteoriteWillNeverBeMineNow: @ 8200FEE +FallarborTown_CozmosHouse_Text_MeteoriteWillNeverBeMineNow: .string "PROF. COZMO: Oh…\n" .string "I never should have let myself be\l" .string "conned into telling TEAM MAGMA where\l" @@ -75,7 +75,7 @@ FallarborTown_CozmosHouse_Text_MeteoriteWillNeverBeMineNow: @ 8200FEE .string "That METEORITE from METEOR FALLS…\n" .string "It's never going to be mine now…$" -FallarborTown_CozmosHouse_Text_IsThatMeteoriteMayIHaveIt: @ 82010A2 +FallarborTown_CozmosHouse_Text_IsThatMeteoriteMayIHaveIt: .string "Oh!\n" .string "Hah?\p" .string "That item…\p" @@ -86,36 +86,36 @@ FallarborTown_CozmosHouse_Text_IsThatMeteoriteMayIHaveIt: @ 82010A2 .string "I'm not asking for it for free.\n" .string "How about in exchange for this TM?$" -FallarborTown_CozmosHouse_Text_PleaseUseThisTM: @ 8201159 +FallarborTown_CozmosHouse_Text_PleaseUseThisTM: .string "PROF. COZMO: This TM, it represents\n" .string "my feeling of gratitude.\l" .string "Please use it!$" -FallarborTown_CozmosHouse_Text_ReallyGoingToHelpMyResearch: @ 82011A5 +FallarborTown_CozmosHouse_Text_ReallyGoingToHelpMyResearch: .string "PROF. COZMO: Oh, I can't believe it.\n" .string "This is really, really great!\p" .string "This is really going to help my research!$" -FallarborTown_CozmosHouse_Text_CrushedWithDisappointment: @ 8201212 +FallarborTown_CozmosHouse_Text_CrushedWithDisappointment: .string "PROF. COZMO: Oh, but…\n" .string "I'm crushed with disappointment…$" -FallarborTown_CozmosHouse_Text_MayIHaveMeteorite: @ 8201249 +FallarborTown_CozmosHouse_Text_MayIHaveMeteorite: .string "PROF. COZMO: Please, may I have that\n" .string "METEORITE?\p" .string "I'm not asking for it for free.\n" .string "How about in exchange for this TM?$" -FallarborTown_CozmosHouse_Text_CozmoWentToMeteorFalls: @ 82012BC +FallarborTown_CozmosHouse_Text_CozmoWentToMeteorFalls: .string "PROF. COZMO went off to METEOR FALLS\n" .string "on ROUTE 114 with some people from\l" .string "TEAM MAGMA.$" -FallarborTown_CozmosHouse_Text_FeelSorryForCozmo: @ 8201310 +FallarborTown_CozmosHouse_Text_FeelSorryForCozmo: .string "Poor PROF. COZMO…\n" .string "He's so depressed… I feel sorry for him.$" -FallarborTown_CozmosHouse_Text_CozmoIsSoHappy: @ 820134B +FallarborTown_CozmosHouse_Text_CozmoIsSoHappy: .string "Look at PROF. COZMO…\n" .string "He's so happy! I think it's cute.$" diff --git a/data/maps/FallarborTown_Mart/scripts.inc b/data/maps/FallarborTown_Mart/scripts.inc index bf106781a8..2b18a9e143 100644 --- a/data/maps/FallarborTown_Mart/scripts.inc +++ b/data/maps/FallarborTown_Mart/scripts.inc @@ -1,7 +1,7 @@ -FallarborTown_Mart_MapScripts:: @ 81FFCBE +FallarborTown_Mart_MapScripts:: .byte 0 -FallarborTown_Mart_EventScript_Clerk:: @ 81FFCBF +FallarborTown_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -12,7 +12,7 @@ FallarborTown_Mart_EventScript_Clerk:: @ 81FFCBF end .align 2 -FallarborTown_Mart_Pokemart: @ 81FFCD8 +FallarborTown_Mart_Pokemart: .2byte ITEM_GREAT_BALL .2byte ITEM_SUPER_POTION .2byte ITEM_ANTIDOTE @@ -29,15 +29,15 @@ FallarborTown_Mart_Pokemart: @ 81FFCD8 release end -FallarborTown_Mart_EventScript_Woman:: @ 81FFCF4 +FallarborTown_Mart_EventScript_Woman:: msgbox FallarborTown_Mart_Text_DecidingSkittyEvolve, MSGBOX_NPC end -FallarborTown_Mart_EventScript_PokefanM:: @ 81FFCFD +FallarborTown_Mart_EventScript_PokefanM:: msgbox FallarborTown_Mart_Text_SellNuggetIFound, MSGBOX_NPC end -FallarborTown_Mart_EventScript_Skitty:: @ 81FFD06 +FallarborTown_Mart_EventScript_Skitty:: lock faceplayer waitse @@ -47,7 +47,7 @@ FallarborTown_Mart_EventScript_Skitty:: @ 81FFD06 release end -FallarborTown_Mart_Text_DecidingSkittyEvolve: @ 81FFD19 +FallarborTown_Mart_Text_DecidingSkittyEvolve: .string "I'm having a hard time deciding if I\n" .string "should make my SKITTY evolve or not.\p" .string "I only have to use this MOON STONE,\n" @@ -56,10 +56,10 @@ FallarborTown_Mart_Text_DecidingSkittyEvolve: @ 81FFD19 .string "much stronger.\p" .string "But it will look so different, too.$" -FallarborTown_Mart_Text_Skitty: @ 81FFDFA +FallarborTown_Mart_Text_Skitty: .string "SKITTY: Miyao?$" -FallarborTown_Mart_Text_SellNuggetIFound: @ 81FFE09 +FallarborTown_Mart_Text_SellNuggetIFound: .string "This NUGGET I found here…\n" .string "I suppose I'll have to sell it, seeing\l" .string "as how it has no other use.$" diff --git a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc index 780901c423..1bd54b4b8d 100644 --- a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc +++ b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_MOVE_RELEARNER, 1 -FallarborTown_MoveRelearnersHouse_MapScripts:: @ 8201382 +FallarborTown_MoveRelearnersHouse_MapScripts:: .byte 0 -FallarborTown_MoveRelearnersHouse_EventScript_MoveRelearner:: @ 8201383 +FallarborTown_MoveRelearnersHouse_EventScript_MoveRelearner:: lockall applymovement LOCALID_MOVE_RELEARNER, Common_Movement_FacePlayer waitmovement 0 @@ -13,7 +13,7 @@ FallarborTown_MoveRelearnersHouse_EventScript_MoveRelearner:: @ 8201383 goto FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove end -FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove:: @ 82013A8 +FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove:: checkitem ITEM_HEART_SCALE, 1 compare VAR_RESULT, FALSE goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale @@ -23,7 +23,7 @@ FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove:: @ 82013A8 goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon end -FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon:: @ 82013D6 +FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon:: msgbox FallarborTown_MoveRelearnersHouse_Text_TutorWhichMon, MSGBOX_DEFAULT special ChooseMonForMoveRelearner waitstate @@ -37,7 +37,7 @@ FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon:: @ 82013D6 goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove end -FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove:: @ 820140C +FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove:: msgbox FallarborTown_MoveRelearnersHouse_Text_TeachWhichMove, MSGBOX_DEFAULT special TeachMoveRelearnerMove waitstate @@ -48,22 +48,22 @@ FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove:: @ 820140C goto FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale end -FallarborTown_MoveRelearnersHouse_EventScript_NoMoveToTeachMon:: @ 8201436 +FallarborTown_MoveRelearnersHouse_EventScript_NoMoveToTeachMon:: msgbox FallarborTown_MoveRelearnersHouse_Text_DontHaveMoveToTeachPokemon, MSGBOX_DEFAULT goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon end -FallarborTown_MoveRelearnersHouse_EventScript_CantTeachEgg:: @ 8201444 +FallarborTown_MoveRelearnersHouse_EventScript_CantTeachEgg:: msgbox FallarborTown_MoveRelearnersHouse_Text_CantTeachEgg, MSGBOX_DEFAULT goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon end -FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale:: @ 8201452 +FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale:: msgbox FallarborTown_MoveRelearnersHouse_Text_ComeBackWithHeartScale, MSGBOX_DEFAULT releaseall end -FallarborTown_MoveRelearnersHouse_Text_ImTheMoveTutor: @ 820145C +FallarborTown_MoveRelearnersHouse_Text_ImTheMoveTutor: .string "I'm the MOVE TUTOR.\p" .string "I know all the moves that POKéMON\n" .string "learn--every one of them--and I can\l" @@ -73,32 +73,32 @@ FallarborTown_MoveRelearnersHouse_Text_ImTheMoveTutor: @ 820145C .string "I'll do it for a HEART SCALE.\n" .string "I'm collecting those now.$" -FallarborTown_MoveRelearnersHouse_Text_ThatsAHeartScaleWantMeToTeachMove: @ 8201541 +FallarborTown_MoveRelearnersHouse_Text_ThatsAHeartScaleWantMeToTeachMove: .string "Oh! That's it! That's an honest to\n" .string "goodness HEART SCALE!\p" .string "Let me guess, you want me to teach\n" .string "a move?$" -FallarborTown_MoveRelearnersHouse_Text_TutorWhichMon: @ 82015A5 +FallarborTown_MoveRelearnersHouse_Text_TutorWhichMon: .string "Which POKéMON needs tutoring?$" -FallarborTown_MoveRelearnersHouse_Text_TeachWhichMove: @ 82015C3 +FallarborTown_MoveRelearnersHouse_Text_TeachWhichMove: .string "Which move should I teach?$" -FallarborTown_MoveRelearnersHouse_Text_DontHaveMoveToTeachPokemon: @ 82015DE +FallarborTown_MoveRelearnersHouse_Text_DontHaveMoveToTeachPokemon: .string "Sorry…\p" .string "It doesn't appear as if I have any move\n" .string "I can teach that POKéMON.$" -FallarborTown_MoveRelearnersHouse_Text_HandedOverHeartScale: @ 8201627 +FallarborTown_MoveRelearnersHouse_Text_HandedOverHeartScale: .string "{PLAYER} handed over one HEART SCALE\n" .string "in exchange.$" -FallarborTown_MoveRelearnersHouse_Text_ComeBackWithHeartScale: @ 8201653 +FallarborTown_MoveRelearnersHouse_Text_ComeBackWithHeartScale: .string "If your POKéMON need to learn a move,\n" .string "come back with a HEART SCALE.$" -FallarborTown_MoveRelearnersHouse_Text_CantTeachEgg: @ 8201697 +FallarborTown_MoveRelearnersHouse_Text_CantTeachEgg: .string "Hunh? There isn't a single move that\n" .string "I can teach an EGG.$" diff --git a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc index e7967046db..bc9e7c25f8 100644 --- a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc @@ -1,17 +1,17 @@ .set LOCALID_NURSE, 1 .set LOCALID_LANETTE, 4 -FallarborTown_PokemonCenter_1F_MapScripts:: @ 8200BCD +FallarborTown_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, FallarborTown_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -FallarborTown_PokemonCenter_1F_OnTransition: @ 8200BD8 +FallarborTown_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_FALLARBOR_TOWN call Common_EventScript_UpdateBrineyLocation end -FallarborTown_PokemonCenter_1F_EventScript_Nurse:: @ 8200BE1 +FallarborTown_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -19,15 +19,15 @@ FallarborTown_PokemonCenter_1F_EventScript_Nurse:: @ 8200BE1 release end -FallarborTown_PokemonCenter_1F_EventScript_Girl:: @ 8200BEF +FallarborTown_PokemonCenter_1F_EventScript_Girl:: msgbox FallarborTown_PokemonCenter_1F_Text_FossilManiacEdgeOfTown, MSGBOX_NPC end -FallarborTown_PokemonCenter_1F_EventScript_ExpertM:: @ 8200BF8 +FallarborTown_PokemonCenter_1F_EventScript_ExpertM:: msgbox FallarborTown_PokemonCenter_1F_Text_PlantHardyTrees, MSGBOX_NPC end -FallarborTown_PokemonCenter_1F_EventScript_Lanette:: @ 8200C01 +FallarborTown_PokemonCenter_1F_EventScript_Lanette:: lock faceplayer msgbox FallarborTown_PokemonCenter_1F_Text_LanetteGreeting, MSGBOX_DEFAULT @@ -37,26 +37,26 @@ FallarborTown_PokemonCenter_1F_EventScript_Lanette:: @ 8200C01 case DIR_WEST, FallarborTown_PokemonCenter_1F_EventScript_LanetteExitWest end -FallarborTown_PokemonCenter_1F_EventScript_LanetteExitNorth:: @ 8200C28 +FallarborTown_PokemonCenter_1F_EventScript_LanetteExitNorth:: applymovement LOCALID_LANETTE, FallarborTown_PokemonCenter_1F_Movement_LanetteExitNorth waitmovement 0 goto FallarborTown_PokemonCenter_1F_EventScript_LanetteExited end -FallarborTown_PokemonCenter_1F_EventScript_LanetteExitWest:: @ 8200C38 +FallarborTown_PokemonCenter_1F_EventScript_LanetteExitWest:: applymovement LOCALID_LANETTE, FallarborTown_PokemonCenter_1F_Movement_LanetteExitWest waitmovement 0 goto FallarborTown_PokemonCenter_1F_EventScript_LanetteExited end -FallarborTown_PokemonCenter_1F_EventScript_LanetteExited:: @ 8200C48 +FallarborTown_PokemonCenter_1F_EventScript_LanetteExited:: playse SE_SLIDING_DOOR removeobject LOCALID_LANETTE clearflag FLAG_HIDE_LANETTES_HOUSE_LANETTE release end -FallarborTown_PokemonCenter_1F_Movement_LanetteExitNorth: @ 8200C53 +FallarborTown_PokemonCenter_1F_Movement_LanetteExitNorth: walk_right walk_down walk_down @@ -71,7 +71,7 @@ FallarborTown_PokemonCenter_1F_Movement_LanetteExitNorth: @ 8200C53 delay_8 step_end -FallarborTown_PokemonCenter_1F_Movement_LanetteExitWest: @ 8200C60 +FallarborTown_PokemonCenter_1F_Movement_LanetteExitWest: walk_down walk_down walk_left @@ -84,7 +84,7 @@ FallarborTown_PokemonCenter_1F_Movement_LanetteExitWest: @ 8200C60 delay_8 step_end -FallarborTown_PokemonCenter_1F_Text_LanetteGreeting: @ 8200C6B +FallarborTown_PokemonCenter_1F_Text_LanetteGreeting: .string "Oh, hello.\n" .string "You are?\p" .string "Okay, your name's {PLAYER}{KUN}.\n" @@ -101,13 +101,13 @@ FallarborTown_PokemonCenter_1F_Text_LanetteGreeting: @ 8200C6B .string "If you could, please visit me at home.\n" .string "My house is on ROUTE 114.$" -FallarborTown_PokemonCenter_1F_Text_FossilManiacEdgeOfTown: @ 8200E22 +FallarborTown_PokemonCenter_1F_Text_FossilManiacEdgeOfTown: .string "I wonder what POKéMON looked like\n" .string "long, long ago?\p" .string "Maybe the FOSSIL MANIAC at the edge\n" .string "of town will know.$" -FallarborTown_PokemonCenter_1F_Text_PlantHardyTrees: @ 8200E8B +FallarborTown_PokemonCenter_1F_Text_PlantHardyTrees: .string "In the fields of FALLARBOR, we plant\n" .string "seedlings of hardy trees that thrive\l" .string "even in volcanic ash.$" diff --git a/data/maps/FallarborTown_PokemonCenter_2F/scripts.inc b/data/maps/FallarborTown_PokemonCenter_2F/scripts.inc index e9912ee686..aa7dea8fa1 100644 --- a/data/maps/FallarborTown_PokemonCenter_2F/scripts.inc +++ b/data/maps/FallarborTown_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -FallarborTown_PokemonCenter_2F_MapScripts:: @ 8200EEB +FallarborTown_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ FallarborTown_PokemonCenter_2F_MapScripts:: @ 8200EEB .byte 0 @ The below 3 are unused and leftover from RS -FallarborTown_PokemonCenter_2F_EventScript_Colosseum:: @ 8200F00 +FallarborTown_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -FallarborTown_PokemonCenter_2F_EventScript_TradeCenter:: @ 8200F06 +FallarborTown_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -FallarborTown_PokemonCenter_2F_EventScript_RecordCorner:: @ 8200F0C +FallarborTown_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/FarawayIsland_Entrance/scripts.inc b/data/maps/FarawayIsland_Entrance/scripts.inc index ce0c10c168..c4b4c9ab08 100644 --- a/data/maps/FarawayIsland_Entrance/scripts.inc +++ b/data/maps/FarawayIsland_Entrance/scripts.inc @@ -1,25 +1,25 @@ .set LOCALID_SAILOR, 1 .set LOCALID_SS_TIDAL, 2 -FarawayIsland_Entrance_MapScripts:: @ 8267C8E +FarawayIsland_Entrance_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, FarawayIsland_Entrance_OnTransition .byte 0 -FarawayIsland_Entrance_OnTransition: @ 8267C94 +FarawayIsland_Entrance_OnTransition: setflag FLAG_ARRIVED_ON_FARAWAY_ISLAND end -FarawayIsland_Entrance_EventScript_SetCloudsWeather:: @ 8267C98 +FarawayIsland_Entrance_EventScript_SetCloudsWeather:: setweather WEATHER_SUNNY_CLOUDS doweather end -FarawayIsland_Entrance_EventScript_ClearWeather:: @ 8267C9D +FarawayIsland_Entrance_EventScript_ClearWeather:: setweather WEATHER_NONE doweather end -FarawayIsland_Entrance_EventScript_Sailor:: @ 8267CA2 +FarawayIsland_Entrance_EventScript_Sailor:: lock faceplayer msgbox FarawayIsland_Entrance_Text_SailorReturn, MSGBOX_YESNO @@ -38,12 +38,12 @@ FarawayIsland_Entrance_EventScript_Sailor:: @ 8267CA2 release end -FarawayIsland_Entrance_EventScript_AsYouLike:: @ 8267CE7 +FarawayIsland_Entrance_EventScript_AsYouLike:: msgbox EventTicket_Text_AsYouLike, MSGBOX_DEFAULT release end -FarawayIsland_Entrance_EventScript_Sign:: @ 8267CF1 +FarawayIsland_Entrance_EventScript_Sign:: msgbox FarawayIsland_Entrance_Text_Sign, MSGBOX_SIGN end diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index 2a06ffdfaf..bd2b479f70 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -1,17 +1,17 @@ -.set LOCALID_MEW, 1 +@ Note: LOCALID_FARAWAY_ISLAND_MEW is a local id for this map used elsewhere. It's defined in event_objects.h -FarawayIsland_Interior_MapScripts:: @ 8267CFA +FarawayIsland_Interior_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, FarawayIsland_Interior_OnResume map_script MAP_SCRIPT_ON_TRANSITION, FarawayIsland_Interior_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, FarawayIsland_Interior_OnFrame map_script MAP_SCRIPT_ON_RETURN_TO_FIELD, FarawayIsland_Interior_OnReturnToField .byte 0 -FarawayIsland_Interior_OnReturnToField: @ 8267D0F +FarawayIsland_Interior_OnReturnToField: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, FarawayIsland_Interior_EventScript_TrySetMewAboveGrass end -FarawayIsland_Interior_EventScript_TrySetMewAboveGrass:: @ 8267D19 +FarawayIsland_Interior_EventScript_TrySetMewAboveGrass:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_WON goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass @@ -23,53 +23,53 @@ FarawayIsland_Interior_EventScript_TrySetMewAboveGrass:: @ 8267D19 goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass return -FarawayIsland_Interior_EventScript_SetMewAboveGrass:: @ 8267D4B +FarawayIsland_Interior_EventScript_SetMewAboveGrass:: setvar VAR_0x8004, 1 special SetMewAboveGrass return -FarawayIsland_Interior_OnResume: @ 8267D54 +FarawayIsland_Interior_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, FarawayIsland_Interior_EventScript_TryRemoveMew end -FarawayIsland_Interior_EventScript_TryRemoveMew:: @ 8267D5E +FarawayIsland_Interior_EventScript_TryRemoveMew:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -FarawayIsland_Interior_OnTransition: @ 8267D72 +FarawayIsland_Interior_OnTransition: setvar VAR_FARAWAY_ISLAND_STEP_COUNTER, 0 setvar VAR_TEMP_1, 1 call_if_unset FLAG_CAUGHT_MEW, FarawayIsland_Interior_EventScript_TryShowMew end -FarawayIsland_Interior_EventScript_TryShowMew:: @ 8267D86 +FarawayIsland_Interior_EventScript_TryShowMew:: goto_if_set FLAG_DEFEATED_MEW, Common_EventScript_NopReturn clearflag FLAG_HIDE_MEW setvar VAR_TEMP_1, 0 return -FarawayIsland_Interior_OnFrame: @ 8267D98 +FarawayIsland_Interior_OnFrame: map_script_2 VAR_TEMP_1, 0, FarawayIsland_Interior_EventScript_FindMew .2byte 0 -FarawayIsland_Interior_EventScript_FindMew:: @ 8267DA2 +FarawayIsland_Interior_EventScript_FindMew:: lockall playse SE_PIN - applymovement LOCALID_MEW, Common_Movement_ExclamationMark + applymovement LOCALID_FARAWAY_ISLAND_MEW, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_MEW, Common_Movement_Delay48 + applymovement LOCALID_FARAWAY_ISLAND_MEW, Common_Movement_Delay48 waitmovement 0 - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewMoveAndHide + applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewMoveAndHide waitmovement 0 - copyobjectxytoperm LOCALID_MEW + copyobjectxytoperm LOCALID_FARAWAY_ISLAND_MEW setvar VAR_TEMP_1, 1 releaseall end -FarawayIsland_Interior_Movement_MewMoveAndHide: @ 8267DCE +FarawayIsland_Interior_Movement_MewMoveAndHide: walk_up walk_up walk_up @@ -77,11 +77,11 @@ FarawayIsland_Interior_Movement_MewMoveAndHide: @ 8267DCE set_invisible step_end -FarawayIsland_Interior_Movement_MewAppear: @ 8267DD4 +FarawayIsland_Interior_Movement_MewAppear: set_visible step_end -FarawayIsland_Interior_Movement_MewFloatUpNorth: @ 8267DD6 +FarawayIsland_Interior_Movement_MewFloatUpNorth: lock_facing_direction walk_fast_up walk_fast_up @@ -90,7 +90,7 @@ FarawayIsland_Interior_Movement_MewFloatUpNorth: @ 8267DD6 walk_in_place_down step_end -FarawayIsland_Interior_Movement_MewFloatUpSouth: @ 8267DDD +FarawayIsland_Interior_Movement_MewFloatUpSouth: lock_facing_direction walk_fast_up walk_fast_up @@ -99,7 +99,7 @@ FarawayIsland_Interior_Movement_MewFloatUpSouth: @ 8267DDD walk_in_place_up step_end -FarawayIsland_Interior_Movement_MewFloatUpWest: @ 8267DE4 +FarawayIsland_Interior_Movement_MewFloatUpWest: lock_facing_direction walk_fast_up walk_fast_up @@ -108,7 +108,7 @@ FarawayIsland_Interior_Movement_MewFloatUpWest: @ 8267DE4 walk_in_place_right step_end -FarawayIsland_Interior_Movement_MewFloatUpEast: @ 8267DEB +FarawayIsland_Interior_Movement_MewFloatUpEast: lock_facing_direction walk_fast_up walk_fast_up @@ -117,10 +117,10 @@ FarawayIsland_Interior_Movement_MewFloatUpEast: @ 8267DEB walk_in_place_left step_end -FarawayIsland_Interior_EventScript_Mew:: @ 8267DF2 +FarawayIsland_Interior_EventScript_Mew:: lock faceplayer - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewAppear + applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewAppear waitmovement 0 setvar VAR_0x8004, 0 special SetMewAboveGrass @@ -141,7 +141,7 @@ FarawayIsland_Interior_EventScript_Mew:: @ 8267DF2 setvar VAR_0x8004, SPECIES_MEW setvar VAR_0x8005, 30 @ level setvar VAR_0x8006, ITEM_NONE - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate @@ -159,47 +159,47 @@ FarawayIsland_Interior_EventScript_Mew:: @ 8267DF2 release end -FarawayIsland_Interior_EventScript_MewDefeated:: @ 8267E96 +FarawayIsland_Interior_EventScript_MewDefeated:: setflag FLAG_DEFEATED_MEW setvar VAR_0x8004, SPECIES_MEW goto Common_EventScript_LegendaryFlewAway end -FarawayIsland_Interior_EventScript_PlayerOrMewRan:: @ 8267EA4 +FarawayIsland_Interior_EventScript_PlayerOrMewRan:: setvar VAR_0x8004, SPECIES_MEW goto Common_EventScript_LegendaryFlewAway end -FarawayIsland_Interior_EventScript_FoundMewNorth:: @ 8267EAF - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewFloatUpNorth +FarawayIsland_Interior_EventScript_FoundMewNorth:: + applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewFloatUpNorth waitmovement 0 return -FarawayIsland_Interior_EventScript_FoundMewSouth:: @ 8267EBA - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewFloatUpSouth +FarawayIsland_Interior_EventScript_FoundMewSouth:: + applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewFloatUpSouth waitmovement 0 return -FarawayIsland_Interior_EventScript_FoundMewWest:: @ 8267EC5 - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewFloatUpWest +FarawayIsland_Interior_EventScript_FoundMewWest:: + applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewFloatUpWest waitmovement 0 return -FarawayIsland_Interior_EventScript_FoundMewEast:: @ 8267ED0 - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewFloatUpEast +FarawayIsland_Interior_EventScript_FoundMewEast:: + applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewFloatUpEast waitmovement 0 return -FarawayIsland_Interior_EventScript_HideMewWhenGrassCut:: @ 8267EDB +FarawayIsland_Interior_EventScript_HideMewWhenGrassCut:: lockall fadescreenswapbuffers FADE_TO_BLACK setflag FLAG_HIDE_MEW - removeobject LOCALID_MEW + removeobject LOCALID_FARAWAY_ISLAND_MEW fadescreenswapbuffers FADE_FROM_BLACK msgbox FarawayIsland_Interior_Text_TheFeelingOfBeingWatchedFaded, MSGBOX_DEFAULT closemessage releaseall end -FarawayIsland_Interior_Text_TheFeelingOfBeingWatchedFaded: @ 8267EF1 +FarawayIsland_Interior_Text_TheFeelingOfBeingWatchedFaded: .string "The feeling of being watched faded…$" diff --git a/data/maps/FieryPath/scripts.inc b/data/maps/FieryPath/scripts.inc index ca259993ec..c9dd7aed07 100644 --- a/data/maps/FieryPath/scripts.inc +++ b/data/maps/FieryPath/scripts.inc @@ -1,13 +1,13 @@ -FieryPath_MapScripts:: @ 8230F24 +FieryPath_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, FieryPath_OnTransition .byte 0 -FieryPath_OnTransition: @ 8230F2A +FieryPath_OnTransition: call_if_unset FLAG_LANDMARK_FIERY_PATH, FieryPath_EventScript_MoveScottToFallarbor setflag FLAG_LANDMARK_FIERY_PATH end -FieryPath_EventScript_MoveScottToFallarbor:: @ 8230F37 +FieryPath_EventScript_MoveScottToFallarbor:: setflag FLAG_HIDE_VERDANTURF_TOWN_SCOTT clearflag FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT return diff --git a/data/maps/FortreeCity/scripts.inc b/data/maps/FortreeCity/scripts.inc index 748ed2558e..1ef3cffc73 100644 --- a/data/maps/FortreeCity/scripts.inc +++ b/data/maps/FortreeCity/scripts.inc @@ -1,21 +1,21 @@ -FortreeCity_MapScripts:: @ 81E25A4 +FortreeCity_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, FortreeCity_OnTransition map_script MAP_SCRIPT_ON_RESUME, FortreeCity_OnResume .byte 0 -FortreeCity_OnTransition: @ 81E25AF +FortreeCity_OnTransition: setflag FLAG_VISITED_FORTREE_CITY end -FortreeCity_OnResume: @ 81E25B3 +FortreeCity_OnResume: setstepcallback STEP_CB_FORTREE_BRIDGE end -FortreeCity_EventScript_Man:: @ 81E25B6 +FortreeCity_EventScript_Man:: msgbox FortreeCity_Text_SawGiganticPokemonInSky, MSGBOX_NPC end -FortreeCity_EventScript_Woman:: @ 81E25BF +FortreeCity_EventScript_Woman:: lock faceplayer goto_if_set FLAG_KECLEON_FLED_FORTREE, FortreeCity_EventScript_WomanGymAccessible @@ -23,36 +23,36 @@ FortreeCity_EventScript_Woman:: @ 81E25BF release end -FortreeCity_EventScript_WomanGymAccessible:: @ 81E25D4 +FortreeCity_EventScript_WomanGymAccessible:: msgbox FortreeCity_Text_ThisTimeIllBeatWinona, MSGBOX_DEFAULT release end -FortreeCity_EventScript_Girl:: @ 81E25DE +FortreeCity_EventScript_Girl:: msgbox FortreeCity_Text_TreesGrowByDrinkingRainwater, MSGBOX_NPC end -FortreeCity_EventScript_OldMan:: @ 81E25E7 +FortreeCity_EventScript_OldMan:: msgbox FortreeCity_Text_EveryoneHealthyAndLively, MSGBOX_NPC end -FortreeCity_EventScript_Boy:: @ 81E25F0 +FortreeCity_EventScript_Boy:: msgbox FortreeCity_Text_BugPokemonComeThroughWindow, MSGBOX_NPC end -FortreeCity_EventScript_GameboyKid:: @ 81E25F9 +FortreeCity_EventScript_GameboyKid:: msgbox FortreeCity_Text_PokemonThatEvolveWhenTraded, MSGBOX_NPC end -FortreeCity_EventScript_CitySign:: @ 81E2602 +FortreeCity_EventScript_CitySign:: msgbox FortreeCity_Text_CitySign, MSGBOX_SIGN end -FortreeCity_EventScript_GymSign:: @ 81E260B +FortreeCity_EventScript_GymSign:: msgbox FortreeCity_Text_GymSign, MSGBOX_SIGN end -FortreeCity_EventScript_Kecleon:: @ 81E2614 +FortreeCity_EventScript_Kecleon:: lock faceplayer checkitem ITEM_DEVON_SCOPE, 1 @@ -62,14 +62,14 @@ FortreeCity_EventScript_Kecleon:: @ 81E2614 release end -FortreeCity_EventScript_AskUseDevonScope:: @ 81E2630 +FortreeCity_EventScript_AskUseDevonScope:: msgbox FortreeCity_Text_UnseeableUseDevonScope, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq FortreeCity_EventScript_UseDevonScope release end -FortreeCity_EventScript_UseDevonScope:: @ 81E2645 +FortreeCity_EventScript_UseDevonScope:: msgbox FortreeCity_Text_UsedDevonScopePokemonFled, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Movement_KecleonAppears @@ -85,11 +85,11 @@ FortreeCity_EventScript_UseDevonScope:: @ 81E2645 release end -FortreeCity_Movement_KecleonFlee: @ 81E2674 +FortreeCity_Movement_KecleonFlee: walk_right step_end -FortreeCity_Text_SawGiganticPokemonInSky: @ 81E2676 +FortreeCity_Text_SawGiganticPokemonInSky: .string "No one believes me, but I saw this\n" .string "gigantic POKéMON in the sky.\p" .string "It seemed to squirm as it flew toward\n" @@ -98,23 +98,23 @@ FortreeCity_Text_SawGiganticPokemonInSky: @ 81E2676 .string "Um… You, uh…smell singed.\p" .string "Were you at a volcano or something?$" -FortreeCity_Text_SomethingBlockingGym: @ 81E2738 +FortreeCity_Text_SomethingBlockingGym: .string "I want to go to the POKéMON GYM,\n" .string "but something's blocking the way.\p" .string "After all the bother I went through\n" .string "training on ROUTE 120…$" -FortreeCity_Text_ThisTimeIllBeatWinona: @ 81E27B6 +FortreeCity_Text_ThisTimeIllBeatWinona: .string "I've got my pride-and-joy POKéMON\n" .string "with me. This time, I'll beat WINONA.$" -FortreeCity_Text_TreesGrowByDrinkingRainwater: @ 81E27FE +FortreeCity_Text_TreesGrowByDrinkingRainwater: .string "The ground absorbs rainwater, and\n" .string "trees grow by drinking that water…\p" .string "Our FORTREE CITY exists because\n" .string "there's both water and soil.$" -FortreeCity_Text_EveryoneHealthyAndLively: @ 81E2880 +FortreeCity_Text_EveryoneHealthyAndLively: .string "The CITY consists of homes built on\n" .string "trees.\p" .string "Perhaps because of that lifestyle,\n" @@ -122,35 +122,35 @@ FortreeCity_Text_EveryoneHealthyAndLively: @ 81E2880 .string "Why, even myself--I feel as if I've\n" .string "grown thirty years younger.$" -FortreeCity_Text_BugPokemonComeThroughWindow: @ 81E292E +FortreeCity_Text_BugPokemonComeThroughWindow: .string "Living on top of trees is okay.\p" .string "But sometimes BUG POKéMON come in\n" .string "through windows.\l" .string "It can be really startling.$" -FortreeCity_Text_PokemonThatEvolveWhenTraded: @ 81E299D +FortreeCity_Text_PokemonThatEvolveWhenTraded: .string "There are POKéMON that evolve when\n" .string "you trade them! That's what I heard.$" -FortreeCity_Text_SomethingUnseeable: @ 81E29E5 +FortreeCity_Text_SomethingUnseeable: .string "Something unseeable is in the way.$" -FortreeCity_Text_UnseeableUseDevonScope: @ 81E2A08 +FortreeCity_Text_UnseeableUseDevonScope: .string "Something unseeable is in the way.\p" .string "Want to use the DEVON SCOPE?$" -FortreeCity_Text_UsedDevonScopePokemonFled: @ 81E2A48 +FortreeCity_Text_UsedDevonScopePokemonFled: .string "{PLAYER} used the DEVON SCOPE.\p" .string "An invisible POKéMON became completely\n" .string "visible!\p" .string "The startled POKéMON fled!$" -FortreeCity_Text_CitySign: @ 81E2AAC +FortreeCity_Text_CitySign: .string "FORTREE CITY\n" .string "“The treetop city that frolics with\l" .string "nature.”$" -FortreeCity_Text_GymSign: @ 81E2AE6 +FortreeCity_Text_GymSign: .string "FORTREE CITY POKéMON GYM\n" .string "LEADER: WINONA\p" .string "“The bird user taking flight into\n" diff --git a/data/maps/FortreeCity_DecorationShop/scripts.inc b/data/maps/FortreeCity_DecorationShop/scripts.inc index 4dd751b0f0..a42f47af73 100644 --- a/data/maps/FortreeCity_DecorationShop/scripts.inc +++ b/data/maps/FortreeCity_DecorationShop/scripts.inc @@ -1,15 +1,15 @@ -FortreeCity_DecorationShop_MapScripts:: @ 821800D +FortreeCity_DecorationShop_MapScripts:: .byte 0 -FortreeCity_DecorationShop_EventScript_PokefanM:: @ 821800E +FortreeCity_DecorationShop_EventScript_PokefanM:: msgbox FortreeCity_DecorationShop_Text_MerchandiseSentToPC, MSGBOX_NPC end -FortreeCity_DecorationShop_EventScript_Girl:: @ 8218017 +FortreeCity_DecorationShop_EventScript_Girl:: msgbox FortreeCity_DecorationShop_Text_BuyingDeskForDolls, MSGBOX_NPC end -FortreeCity_DecorationShop_EventScript_ClerkDesks:: @ 8218020 +FortreeCity_DecorationShop_EventScript_ClerkDesks:: lock faceplayer message gText_HowMayIServeYou @@ -20,7 +20,7 @@ FortreeCity_DecorationShop_EventScript_ClerkDesks:: @ 8218020 end .align 2 -FortreeCity_DecorationShop_PokemartDecor_Desks: @ 8218038 +FortreeCity_DecorationShop_PokemartDecor_Desks: .2byte DECOR_SMALL_DESK .2byte DECOR_POKEMON_DESK .2byte DECOR_HEAVY_DESK @@ -33,7 +33,7 @@ FortreeCity_DecorationShop_PokemartDecor_Desks: @ 8218038 release end -FortreeCity_DecorationShop_EventScript_ClerkChairs:: @ 821804C +FortreeCity_DecorationShop_EventScript_ClerkChairs:: lock faceplayer message gText_HowMayIServeYou @@ -44,7 +44,7 @@ FortreeCity_DecorationShop_EventScript_ClerkChairs:: @ 821804C end .align 2 -FortreeCity_DecorationShop_PokemartDecor_Chairs: @ 8218064 +FortreeCity_DecorationShop_PokemartDecor_Chairs: .2byte DECOR_SMALL_CHAIR .2byte DECOR_POKEMON_CHAIR .2byte DECOR_HEAVY_CHAIR @@ -57,13 +57,13 @@ FortreeCity_DecorationShop_PokemartDecor_Chairs: @ 8218064 release end -FortreeCity_DecorationShop_Text_MerchandiseSentToPC: @ 8218078 +FortreeCity_DecorationShop_Text_MerchandiseSentToPC: .string "Merchandise you buy here is sent to\n" .string "your own PC.\p" .string "That's fantastic! I wish they could\n" .string "also deliver me home like that.$" -FortreeCity_DecorationShop_Text_BuyingDeskForDolls: @ 82180ED +FortreeCity_DecorationShop_Text_BuyingDeskForDolls: .string "I'm buying a pretty desk and I'm\n" .string "putting my cute DOLLS on it.\p" .string "If I don't, when I decorate my\n" diff --git a/data/maps/FortreeCity_Gym/scripts.inc b/data/maps/FortreeCity_Gym/scripts.inc index 688c116459..caac724738 100644 --- a/data/maps/FortreeCity_Gym/scripts.inc +++ b/data/maps/FortreeCity_Gym/scripts.inc @@ -1,21 +1,21 @@ -FortreeCity_Gym_MapScripts:: @ 82165AB +FortreeCity_Gym_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, FortreeCity_Gym_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, FortreeCity_Gym_OnWarp .byte 0 -FortreeCity_Gym_OnTransition: @ 82165B6 +FortreeCity_Gym_OnTransition: special RotatingGate_InitPuzzle end -FortreeCity_Gym_OnWarp: @ 82165BA +FortreeCity_Gym_OnWarp: map_script_2 VAR_TEMP_0, VAR_TEMP_0, FortreeCity_Gym_EventScript_InitRotatingGates .2byte 0 -FortreeCity_Gym_EventScript_InitRotatingGates:: @ 82165C4 +FortreeCity_Gym_EventScript_InitRotatingGates:: special RotatingGate_InitPuzzleAndGraphics end -FortreeCity_Gym_EventScript_Winona:: @ 82165C8 +FortreeCity_Gym_EventScript_Winona:: trainerbattle_single TRAINER_WINONA_1, FortreeCity_Gym_Text_WinonaIntro, FortreeCity_Gym_Text_WinonaDefeat, FortreeCity_Gym_EventScript_WinonaDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -25,7 +25,7 @@ FortreeCity_Gym_EventScript_Winona:: @ 82165C8 release end -FortreeCity_Gym_EventScript_WinonaDefeated:: @ 82165FD +FortreeCity_Gym_EventScript_WinonaDefeated:: message FortreeCity_Gym_Text_ReceivedFeatherBadge waitmessage call Common_EventScript_PlayGymBadgeFanfare @@ -48,7 +48,7 @@ FortreeCity_Gym_EventScript_WinonaDefeated:: @ 82165FD release end -FortreeCity_Gym_EventScript_GiveAerialAce2:: @ 8216646 +FortreeCity_Gym_EventScript_GiveAerialAce2:: giveitem ITEM_TM40 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -57,7 +57,7 @@ FortreeCity_Gym_EventScript_GiveAerialAce2:: @ 8216646 release end -FortreeCity_Gym_EventScript_GiveAerialAce:: @ 821666A +FortreeCity_Gym_EventScript_GiveAerialAce:: giveitem ITEM_TM40 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_BagIsFull @@ -65,42 +65,42 @@ FortreeCity_Gym_EventScript_GiveAerialAce:: @ 821666A setflag FLAG_RECEIVED_TM40 return -FortreeCity_Gym_EventScript_WinonaRematch:: @ 821668D +FortreeCity_Gym_EventScript_WinonaRematch:: trainerbattle_rematch_double TRAINER_WINONA_1, FortreeCity_Gym_Text_WinonaPreRematch, FortreeCity_Gym_Text_WinonaRematchDefeat, FortreeCity_Gym_Text_WinonaRematchNeedTwoMons msgbox FortreeCity_Gym_Text_WinonaPostRematch, MSGBOX_AUTOCLOSE end -FortreeCity_Gym_EventScript_Jared:: @ 82166A8 +FortreeCity_Gym_EventScript_Jared:: trainerbattle_single TRAINER_JARED, FortreeCity_Gym_Text_JaredIntro, FortreeCity_Gym_Text_JaredDefeat msgbox FortreeCity_Gym_Text_JaredPostBattle, MSGBOX_AUTOCLOSE end -FortreeCity_Gym_EventScript_Edwardo:: @ 82166BF +FortreeCity_Gym_EventScript_Edwardo:: trainerbattle_single TRAINER_EDWARDO, FortreeCity_Gym_Text_EdwardoIntro, FortreeCity_Gym_Text_EdwardoDefeat msgbox FortreeCity_Gym_Text_EdwardoPostBattle, MSGBOX_AUTOCLOSE end -FortreeCity_Gym_EventScript_Flint:: @ 82166D6 +FortreeCity_Gym_EventScript_Flint:: trainerbattle_single TRAINER_FLINT, FortreeCity_Gym_Text_FlintIntro, FortreeCity_Gym_Text_FlintDefeat msgbox FortreeCity_Gym_Text_FlintPostBattle, MSGBOX_AUTOCLOSE end -FortreeCity_Gym_EventScript_Ashley:: @ 82166ED +FortreeCity_Gym_EventScript_Ashley:: trainerbattle_single TRAINER_ASHLEY, FortreeCity_Gym_Text_AshleyIntro, FortreeCity_Gym_Text_AshleyDefeat msgbox FortreeCity_Gym_Text_AshleyPostBattle, MSGBOX_AUTOCLOSE end -FortreeCity_Gym_EventScript_Humberto:: @ 8216704 +FortreeCity_Gym_EventScript_Humberto:: trainerbattle_single TRAINER_HUMBERTO, FortreeCity_Gym_Text_HumbertoIntro, FortreeCity_Gym_Text_HumbertoDefeat msgbox FortreeCity_Gym_Text_HumbertoPostBattle, MSGBOX_AUTOCLOSE end -FortreeCity_Gym_EventScript_Darius:: @ 821671B +FortreeCity_Gym_EventScript_Darius:: trainerbattle_single TRAINER_DARIUS, FortreeCity_Gym_Text_DariusIntro, FortreeCity_Gym_Text_DariusDefeat msgbox FortreeCity_Gym_Text_DariusPostBattle, MSGBOX_AUTOCLOSE end -FortreeCity_Gym_EventScript_GymGuide:: @ 8216732 +FortreeCity_Gym_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_FORTREE_GYM, FortreeCity_Gym_EventScript_GymGuidePostVictory @@ -108,34 +108,34 @@ FortreeCity_Gym_EventScript_GymGuide:: @ 8216732 release end -FortreeCity_Gym_EventScript_GymGuidePostVictory:: @ 8216747 +FortreeCity_Gym_EventScript_GymGuidePostVictory:: msgbox FortreeCity_Gym_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end -FortreeCity_Gym_EventScript_LeftGymStatue:: @ 8216751 +FortreeCity_Gym_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE06_GET, FortreeCity_Gym_EventScript_GymStatueCertified goto FortreeCity_Gym_EventScript_GymStatue end -FortreeCity_Gym_EventScript_RightGymStatue:: @ 8216761 +FortreeCity_Gym_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE06_GET, FortreeCity_Gym_EventScript_GymStatueCertified goto FortreeCity_Gym_EventScript_GymStatue end -FortreeCity_Gym_EventScript_GymStatueCertified:: @ 8216771 +FortreeCity_Gym_EventScript_GymStatueCertified:: msgbox FortreeCity_Gym_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end -FortreeCity_Gym_EventScript_GymStatue:: @ 821677B +FortreeCity_Gym_EventScript_GymStatue:: msgbox FortreeCity_Gym_Text_GymStatue, MSGBOX_DEFAULT releaseall end -FortreeCity_Gym_Text_GymGuideAdvice: @ 8216785 +FortreeCity_Gym_Text_GymGuideAdvice: .string "Yo, how's it going, CHAMPION-\n" .string "bound {PLAYER}?\p" .string "FORTREE GYM LEADER WINONA is\n" @@ -146,94 +146,94 @@ FortreeCity_Gym_Text_GymGuideAdvice: @ 8216785 .string "who are trying to take wing!\p" .string "Okay, go for it!$" -FortreeCity_Gym_Text_GymGuidePostVictory: @ 821687D +FortreeCity_Gym_Text_GymGuidePostVictory: .string "You did it!\n" .string "You've achieved liftoff!$" -FortreeCity_Gym_Text_JaredIntro: @ 82168A2 +FortreeCity_Gym_Text_JaredIntro: .string "Behold the elegant battle style of\n" .string "BIRD POKéMON!$" -FortreeCity_Gym_Text_JaredDefeat: @ 82168D3 +FortreeCity_Gym_Text_JaredDefeat: .string "You…\n" .string "You're strong…$" -FortreeCity_Gym_Text_JaredPostBattle: @ 82168E7 +FortreeCity_Gym_Text_JaredPostBattle: .string "A TRAINER has to be smart to keep\n" .string "up with unexpected turns of events.\p" .string "Do you have the smarts to get to\n" .string "our LEADER?$" -FortreeCity_Gym_Text_EdwardoIntro: @ 821695A +FortreeCity_Gym_Text_EdwardoIntro: .string "The lovers of BIRD POKéMON aspire\n" .string "to join this GYM.\p" .string "As a member of the FORTREE GYM,\n" .string "I'm not allowed to lose!$" -FortreeCity_Gym_Text_EdwardoDefeat: @ 82169C7 +FortreeCity_Gym_Text_EdwardoDefeat: .string "It was too much of a load for me\n" .string "to bear…$" -FortreeCity_Gym_Text_EdwardoPostBattle: @ 82169F1 +FortreeCity_Gym_Text_EdwardoPostBattle: .string "The world is huge, and there are\n" .string "countless tough TRAINERS.\p" .string "I'm going to keep training and make\n" .string "myself even stronger.$" -FortreeCity_Gym_Text_FlintIntro: @ 8216A66 +FortreeCity_Gym_Text_FlintIntro: .string "There's no need for WINONA, our GYM\n" .string "LEADER, to deal with you!\p" .string "I'm plenty good enough for you!$" -FortreeCity_Gym_Text_FlintDefeat: @ 8216AC4 +FortreeCity_Gym_Text_FlintDefeat: .string "WINONA, I…\n" .string "I lost!$" -FortreeCity_Gym_Text_FlintPostBattle: @ 8216AD7 +FortreeCity_Gym_Text_FlintPostBattle: .string "WINONA is cute and she's strong.\n" .string "She's the ultimate LEADER!\p" .string "Blush…$" -FortreeCity_Gym_Text_AshleyIntro: @ 8216B1A +FortreeCity_Gym_Text_AshleyIntro: .string "WINONA taught me personally!\n" .string "You can't beat me easily!$" -FortreeCity_Gym_Text_AshleyDefeat: @ 8216B51 +FortreeCity_Gym_Text_AshleyDefeat: .string "I was beaten…$" -FortreeCity_Gym_Text_AshleyPostBattle: @ 8216B5F +FortreeCity_Gym_Text_AshleyPostBattle: .string "Thanks to WINONA, the people of\n" .string "FORTREE can live without fear.$" -FortreeCity_Gym_Text_HumbertoIntro: @ 8216B9E +FortreeCity_Gym_Text_HumbertoIntro: .string "When WINONA takes to battle, her face\n" .string "shines with beautiful determination…\p" .string "I'm not letting you witness that\n" .string "lovely sight!$" -FortreeCity_Gym_Text_HumbertoDefeat: @ 8216C18 +FortreeCity_Gym_Text_HumbertoDefeat: .string "Urk!\n" .string "I couldn't stop you.$" -FortreeCity_Gym_Text_HumbertoPostBattle: @ 8216C32 +FortreeCity_Gym_Text_HumbertoPostBattle: .string "You'd better watch it!\n" .string "Don't get distracted staring at WINONA\l" .string "or you'll go crashing down in a heap!$" -FortreeCity_Gym_Text_DariusIntro: @ 8216C96 +FortreeCity_Gym_Text_DariusIntro: .string "You'd better know that there are all\n" .string "sorts of FLYING-type POKéMON.\p" .string "You do know that, right?$" -FortreeCity_Gym_Text_DariusDefeat: @ 8216CF2 +FortreeCity_Gym_Text_DariusDefeat: .string "You seem to know your stuff!$" -FortreeCity_Gym_Text_DariusPostBattle: @ 8216D0F +FortreeCity_Gym_Text_DariusPostBattle: .string "Sure, you beat me all right.\n" .string "But you'd better watch it! Our LEADER\l" .string "WINONA's POKéMON are all business.$" -FortreeCity_Gym_Text_WinonaIntro: @ 8216D75 +FortreeCity_Gym_Text_WinonaIntro: .string "I am WINONA. I am the LEADER of\n" .string "the FORTREE POKéMON GYM.\p" .string "I have become one with BIRD POKéMON\n" @@ -243,18 +243,18 @@ FortreeCity_Gym_Text_WinonaIntro: @ 8216D75 .string "Witness the elegant choreography\n" .string "of BIRD POKéMON and I!$" -FortreeCity_Gym_Text_WinonaDefeat: @ 8216E60 +FortreeCity_Gym_Text_WinonaDefeat: .string "Never before have I seen a TRAINER\n" .string "command POKéMON with more grace\l" .string "than I…\p" .string "In recognition of your prowess,\n" .string "I present to you this GYM BADGE.$" -FortreeCity_Gym_Text_ReceivedFeatherBadge: @ 8216EEC +FortreeCity_Gym_Text_ReceivedFeatherBadge: .string "{PLAYER} received the FEATHER BADGE\n" .string "from WINONA.$" -FortreeCity_Gym_Text_ExplainFeatherBadgeTakeThis: @ 8216F17 +FortreeCity_Gym_Text_ExplainFeatherBadgeTakeThis: .string "With the FEATHER BADGE, all POKéMON up\n" .string "to LV 70, even those received through\l" .string "trades, will obey your every command.\p" @@ -263,29 +263,29 @@ FortreeCity_Gym_Text_ExplainFeatherBadgeTakeThis: @ 8216F17 .string "And this…\n" .string "This is a gift from me.$" -FortreeCity_Gym_Text_ExplainAerialAce: @ 8216FEC +FortreeCity_Gym_Text_ExplainAerialAce: .string "TM40 contains AERIAL ACE.\p" .string "Its speed…\n" .string "No POKéMON should be able to avoid it.\p" .string "… … … … … …$" -FortreeCity_Gym_Text_RegisteredWinona: @ 8217044 +FortreeCity_Gym_Text_RegisteredWinona: .string "Registered GYM LEADER WINONA\n" .string "in the POKéNAV.$" -FortreeCity_Gym_Text_WinonaPostBattle: @ 8217071 +FortreeCity_Gym_Text_WinonaPostBattle: .string "Though I fell to you, I will remain\n" .string "devoted to BIRD POKéMON.$" -FortreeCity_Gym_Text_GymStatue: @ 82170AE +FortreeCity_Gym_Text_GymStatue: .string "FORTREE CITY POKéMON GYM$" -FortreeCity_Gym_Text_GymStatueCertified: @ 82170C7 +FortreeCity_Gym_Text_GymStatueCertified: .string "FORTREE CITY POKéMON GYM\p" .string "WINONA'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" -FortreeCity_Gym_Text_WinonaPreRematch: @ 8217100 +FortreeCity_Gym_Text_WinonaPreRematch: .string "WINONA: We humans can never escape\n" .string "gravity's pull on the ground.\p" .string "But by striving for excellence,\n" @@ -295,17 +295,17 @@ FortreeCity_Gym_Text_WinonaPreRematch: @ 8217100 .string "Please, allow me to see your power\n" .string "at full flight!$" -FortreeCity_Gym_Text_WinonaRematchDefeat: @ 82171E6 +FortreeCity_Gym_Text_WinonaRematchDefeat: .string "I failed to reach your height again…$" -FortreeCity_Gym_Text_WinonaPostRematch: @ 821720B +FortreeCity_Gym_Text_WinonaPostRematch: .string "WINONA: Even though I have lost,\n" .string "the wings of my heart remain unbroken.\p" .string "I can rise and soar again and\n" .string "yet again.\p" .string "I am convinced of it!$" -FortreeCity_Gym_Text_WinonaRematchNeedTwoMons: @ 8217292 +FortreeCity_Gym_Text_WinonaRematchNeedTwoMons: .string "WINONA: We humans can never escape\n" .string "gravity's pull on the ground.\p" .string "But by striving for excellence,\n" diff --git a/data/maps/FortreeCity_House1/scripts.inc b/data/maps/FortreeCity_House1/scripts.inc index c7f4a8d5b7..3dd58ca344 100644 --- a/data/maps/FortreeCity_House1/scripts.inc +++ b/data/maps/FortreeCity_House1/scripts.inc @@ -1,7 +1,7 @@ -FortreeCity_House1_MapScripts:: @ 82162BA +FortreeCity_House1_MapScripts:: .byte 0 -FortreeCity_House1_EventScript_Trader:: @ 82162BB +FortreeCity_House1_EventScript_Trader:: lock faceplayer goto_if_set FLAG_FORTREE_NPC_TRADE_COMPLETED, FortreeCity_House1_EventScript_TradeCompleted @@ -33,27 +33,27 @@ FortreeCity_House1_EventScript_Trader:: @ 82162BB release end -FortreeCity_House1_EventScript_DeclineTrade:: @ 821633D +FortreeCity_House1_EventScript_DeclineTrade:: msgbox FortreeCity_House1_Text_YouWontTradeMe, MSGBOX_DEFAULT release end -FortreeCity_House1_EventScript_NotRequestedMon:: @ 8216347 +FortreeCity_House1_EventScript_NotRequestedMon:: bufferspeciesname 0, VAR_0x8009 msgbox FortreeCity_House1_Text_ThisIsntAMon, MSGBOX_DEFAULT release end -FortreeCity_House1_EventScript_TradeCompleted:: @ 8216355 +FortreeCity_House1_EventScript_TradeCompleted:: msgbox FortreeCity_House1_Text_GoingToMakeVolbeatStrong, MSGBOX_DEFAULT release end -FortreeCity_House1_EventScript_ExpertF:: @ 821635F +FortreeCity_House1_EventScript_ExpertF:: msgbox FortreeCity_House1_Text_TradingMemoriesWithOthers, MSGBOX_NPC end -FortreeCity_House1_EventScript_Zigzagoon:: @ 8216368 +FortreeCity_House1_EventScript_Zigzagoon:: lock faceplayer waitse @@ -63,7 +63,7 @@ FortreeCity_House1_EventScript_Zigzagoon:: @ 8216368 release end -FortreeCity_House1_Text_YouWillTradeWontYou: @ 821637B +FortreeCity_House1_Text_YouWillTradeWontYou: .string "Wrooooaaar! I need it!\n" .string "I have to get me a {STR_VAR_1}!\l" .string "I'll do anything for it!\p" @@ -73,29 +73,29 @@ FortreeCity_House1_Text_YouWillTradeWontYou: @ 821637B .string "your {STR_VAR_1} for my {STR_VAR_2},\l" .string "won't you?$" -FortreeCity_House1_Text_MonYouTakeCare: @ 8216440 +FortreeCity_House1_Text_MonYouTakeCare: .string "Oh, yeah, right on!\p" .string "{STR_VAR_1}, welcome!\n" .string "{STR_VAR_2}, you take care!$" -FortreeCity_House1_Text_ThisIsntAMon: @ 8216474 +FortreeCity_House1_Text_ThisIsntAMon: .string "Uh, no, I don't think so.\n" .string "That isn't a {STR_VAR_1}.$" -FortreeCity_House1_Text_YouWontTradeMe: @ 821649F +FortreeCity_House1_Text_YouWontTradeMe: .string "No? You won't trade me?\n" .string "Even after I bared my heart to you?$" -FortreeCity_House1_Text_GoingToMakeVolbeatStrong: @ 82164DB +FortreeCity_House1_Text_GoingToMakeVolbeatStrong: .string "I'm going to make VOLBEAT super\n" .string "strong from this moment on!\p" .string "I hope you do the same with PLUSLE!$" -FortreeCity_House1_Text_TradingMemoriesWithOthers: @ 821653B +FortreeCity_House1_Text_TradingMemoriesWithOthers: .string "Trading POKéMON with others…\p" .string "It's as if you're trading your own\n" .string "memories with other people.$" -FortreeCity_House1_Text_Zigzagoon: @ 8216597 +FortreeCity_House1_Text_Zigzagoon: .string "ZIGZAGOON: Gumomoh?$" diff --git a/data/maps/FortreeCity_House2/scripts.inc b/data/maps/FortreeCity_House2/scripts.inc index 98b8272fe7..29e9ea93cf 100644 --- a/data/maps/FortreeCity_House2/scripts.inc +++ b/data/maps/FortreeCity_House2/scripts.inc @@ -1,21 +1,21 @@ -FortreeCity_House2_MapScripts:: @ 82177CA +FortreeCity_House2_MapScripts:: .byte 0 -FortreeCity_House2_EventScript_HiddenPowerGiver:: @ 82177CB +FortreeCity_House2_EventScript_HiddenPowerGiver:: lock faceplayer goto_if_set FLAG_RECEIVED_TM10, FortreeCity_House2_EventScript_ExplainHiddenPower call_if_unset FLAG_MET_HIDDEN_POWER_GIVER, FortreeCity_House2_EventScript_Greeting msgbox FortreeCity_House2_Text_CoinInWhichHand, MSGBOX_DEFAULT - multichoice 21, 8, MULTI_RIGHTLEFT, 1 + multichoice 21, 8, MULTI_RIGHTLEFT, TRUE switch VAR_RESULT case 1, FortreeCity_House2_EventScript_WrongGuess msgbox FortreeCity_House2_Text_CorrectTryAgainWhichHand, MSGBOX_DEFAULT - multichoice 21, 8, MULTI_RIGHTLEFT, 1 + multichoice 21, 8, MULTI_RIGHTLEFT, TRUE switch VAR_RESULT case 1, FortreeCity_House2_EventScript_WrongGuess msgbox FortreeCity_House2_Text_CorrectTryAgainWhichHand2, MSGBOX_DEFAULT - multichoice 21, 8, MULTI_RIGHTLEFT, 1 + multichoice 21, 8, MULTI_RIGHTLEFT, TRUE switch VAR_RESULT case 0, FortreeCity_House2_EventScript_WrongGuess msgbox FortreeCity_House2_Text_YourHiddenPowerHasAwoken, MSGBOX_DEFAULT @@ -27,56 +27,56 @@ FortreeCity_House2_EventScript_HiddenPowerGiver:: @ 82177CB release end -FortreeCity_House2_EventScript_Greeting:: @ 8217862 +FortreeCity_House2_EventScript_Greeting:: msgbox FortreeCity_House2_Text_HiddenPowersArousedByNature, MSGBOX_DEFAULT setflag FLAG_MET_HIDDEN_POWER_GIVER return -FortreeCity_House2_EventScript_ExplainHiddenPower:: @ 821786E +FortreeCity_House2_EventScript_ExplainHiddenPower:: msgbox FortreeCity_House2_Text_ExplainHiddenPower, MSGBOX_DEFAULT release end -FortreeCity_House2_EventScript_WrongGuess:: @ 8217878 +FortreeCity_House2_EventScript_WrongGuess:: msgbox FortreeCity_House2_Text_YouGuessedWrong, MSGBOX_DEFAULT release end -FortreeCity_House2_Text_HiddenPowersArousedByNature: @ 8217882 +FortreeCity_House2_Text_HiddenPowersArousedByNature: .string "People… POKéMON…\p" .string "Their hidden powers are aroused by\n" .string "living in natural environments…$" -FortreeCity_House2_Text_CoinInWhichHand: @ 82178D6 +FortreeCity_House2_Text_CoinInWhichHand: .string "Let this old woman see if your hidden\n" .string "power has awoken…\p" .string "I hold a coin in my hand.\p" .string "Now, tell me, have I palmed it in\n" .string "the right hand? Or in the left?$" -FortreeCity_House2_Text_CorrectTryAgainWhichHand: @ 821796A +FortreeCity_House2_Text_CorrectTryAgainWhichHand: .string "Oh! Yes, correct!\p" .string "We shall try again.\p" .string "In which hand have I palmed the coin?\n" .string "The right or left?$" -FortreeCity_House2_Text_CorrectTryAgainWhichHand2: @ 82179C9 +FortreeCity_House2_Text_CorrectTryAgainWhichHand2: .string "Oh! Yes, correct!\p" .string "We shall try again.\p" .string "In which hand have I palmed the coin?\n" .string "The right or left?$" -FortreeCity_House2_Text_YourHiddenPowerHasAwoken: @ 8217A28 +FortreeCity_House2_Text_YourHiddenPowerHasAwoken: .string "Oh! Splendid!\n" .string "Your hidden power has awoken!\p" .string "Here, take this and awaken the hidden\n" .string "power of your POKéMON.$" -FortreeCity_House2_Text_ExplainHiddenPower: @ 8217A91 +FortreeCity_House2_Text_ExplainHiddenPower: .string "HIDDEN POWER is a move that changes\n" .string "with the POKéMON.$" -FortreeCity_House2_Text_YouGuessedWrong: @ 8217AC7 +FortreeCity_House2_Text_YouGuessedWrong: .string "No, too bad.\n" .string "You guessed wrong.$" diff --git a/data/maps/FortreeCity_House3/scripts.inc b/data/maps/FortreeCity_House3/scripts.inc index 396bd4b222..1ae5a1ecbe 100644 --- a/data/maps/FortreeCity_House3/scripts.inc +++ b/data/maps/FortreeCity_House3/scripts.inc @@ -1,15 +1,15 @@ -FortreeCity_House3_MapScripts:: @ 8217AE7 +FortreeCity_House3_MapScripts:: .byte 0 -FortreeCity_House3_EventScript_Maniac:: @ 8217AE8 +FortreeCity_House3_EventScript_Maniac:: msgbox FortreeCity_House3_Text_MetStevenHadAmazingPokemon, MSGBOX_NPC end -FortreeCity_House3_EventScript_SchoolKidM:: @ 8217AF1 +FortreeCity_House3_EventScript_SchoolKidM:: msgbox FortreeCity_House3_Text_OhYouHavePokedex, MSGBOX_NPC end -FortreeCity_House3_Text_MetStevenHadAmazingPokemon: @ 8217AFA +FortreeCity_House3_Text_MetStevenHadAmazingPokemon: .string "While speaking about POKéDEXES,\n" .string "I remembered something.\p" .string "I met this TRAINER, STEVEN, when\n" @@ -21,7 +21,7 @@ FortreeCity_House3_Text_MetStevenHadAmazingPokemon: @ 8217AFA .string "He might even be stronger than the\n" .string "GYM LEADER in this town…$" -FortreeCity_House3_Text_OhYouHavePokedex: @ 8217C22 +FortreeCity_House3_Text_OhYouHavePokedex: .string "What's that thing you have there?\p" .string "… … … … … …\p" .string "Oh, it's called a POKéDEX?\n" diff --git a/data/maps/FortreeCity_House4/scripts.inc b/data/maps/FortreeCity_House4/scripts.inc index 891e8eb750..8a6d71eb4d 100644 --- a/data/maps/FortreeCity_House4/scripts.inc +++ b/data/maps/FortreeCity_House4/scripts.inc @@ -1,13 +1,13 @@ .set LOCALID_WINGULL, 3 -FortreeCity_House4_MapScripts:: @ 8217C80 +FortreeCity_House4_MapScripts:: .byte 0 -FortreeCity_House4_EventScript_Woman:: @ 8217C81 +FortreeCity_House4_EventScript_Woman:: msgbox FortreeCity_House4_Text_BringsWorldCloserTogether, MSGBOX_NPC end -FortreeCity_House4_EventScript_Boy:: @ 8217C8A +FortreeCity_House4_EventScript_Boy:: lockall goto_if_set FLAG_RECEIVED_MENTAL_HERB, FortreeCity_House4_EventScript_ReceivedMentalHerb goto_if_set FLAG_WINGULL_DELIVERED_MAIL, FortreeCity_House4_EventScript_WingullReturned @@ -22,14 +22,14 @@ FortreeCity_House4_EventScript_Boy:: @ 8217C8A releaseall end -FortreeCity_House4_EventScript_WingullOnErrand:: @ 8217CC4 +FortreeCity_House4_EventScript_WingullOnErrand:: applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 msgbox FortreeCity_House4_Text_AskedWingullToRunErrand, MSGBOX_DEFAULT releaseall end -FortreeCity_House4_EventScript_WingullReturned:: @ 8217CD8 +FortreeCity_House4_EventScript_WingullReturned:: applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 msgbox FortreeCity_House4_Text_WelcomeWingullTakeMentalHerb, MSGBOX_DEFAULT @@ -40,14 +40,14 @@ FortreeCity_House4_EventScript_WingullReturned:: @ 8217CD8 releaseall end -FortreeCity_House4_EventScript_ReceivedMentalHerb:: @ 8217D06 +FortreeCity_House4_EventScript_ReceivedMentalHerb:: applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 msgbox FortreeCity_House4_Text_FriendsFarAwayThanksToWingull, MSGBOX_DEFAULT releaseall end -FortreeCity_House4_Movement_WingullExit: @ 8217D1A +FortreeCity_House4_Movement_WingullExit: walk_fast_down walk_fast_down walk_fast_right @@ -55,7 +55,7 @@ FortreeCity_House4_Movement_WingullExit: @ 8217D1A delay_8 step_end -FortreeCity_House4_EventScript_Wingull:: @ 8217D20 +FortreeCity_House4_EventScript_Wingull:: lock faceplayer waitse @@ -65,21 +65,21 @@ FortreeCity_House4_EventScript_Wingull:: @ 8217D20 release end -FortreeCity_House4_Text_BringsWorldCloserTogether: @ 8217D33 +FortreeCity_House4_Text_BringsWorldCloserTogether: .string "By being together with POKéMON,\n" .string "people make more and more friends.\p" .string "And that brings the world closer\n" .string "together. I think it's wonderful!$" -FortreeCity_House4_Text_GoBirdPokemon: @ 8217DB9 +FortreeCity_House4_Text_GoBirdPokemon: .string "There!\n" .string "Go, BIRD POKéMON!$" -FortreeCity_House4_Text_AskedWingullToRunErrand: @ 8217DD2 +FortreeCity_House4_Text_AskedWingullToRunErrand: .string "Heheh, I asked my WINGULL to run\n" .string "an errand for me.$" -FortreeCity_House4_Text_WelcomeWingullTakeMentalHerb: @ 8217E05 +FortreeCity_House4_Text_WelcomeWingullTakeMentalHerb: .string "Good!\n" .string "Welcome back, WINGULL!\p" .string "Huh? What is this?\n" @@ -89,10 +89,10 @@ FortreeCity_House4_Text_WelcomeWingullTakeMentalHerb: @ 8217E05 .string "But I'm not a TRAINER, so you can\n" .string "have it.$" -FortreeCity_House4_Text_FriendsFarAwayThanksToWingull: @ 8217EA8 +FortreeCity_House4_Text_FriendsFarAwayThanksToWingull: .string "Thanks to my WINGULL, I have friends\n" .string "who live far away.$" -FortreeCity_House4_Text_Wingull: @ 8217EE0 +FortreeCity_House4_Text_Wingull: .string "WINGULL: Pihyoh!$" diff --git a/data/maps/FortreeCity_House5/scripts.inc b/data/maps/FortreeCity_House5/scripts.inc index 4d27c2f061..71fcc78cad 100644 --- a/data/maps/FortreeCity_House5/scripts.inc +++ b/data/maps/FortreeCity_House5/scripts.inc @@ -1,15 +1,15 @@ -FortreeCity_House5_MapScripts:: @ 8217EF1 +FortreeCity_House5_MapScripts:: .byte 0 -FortreeCity_House5_EventScript_PokefanF:: @ 8217EF2 +FortreeCity_House5_EventScript_PokefanF:: msgbox FortreeCity_House5_Text_TreeHousesAreGreat, MSGBOX_NPC end -FortreeCity_House5_EventScript_Man:: @ 8217EFB +FortreeCity_House5_EventScript_Man:: msgbox FortreeCity_House5_Text_AdaptedToNature, MSGBOX_NPC end -FortreeCity_House5_EventScript_Zigzagoon:: @ 8217F04 +FortreeCity_House5_EventScript_Zigzagoon:: lock faceplayer waitse @@ -19,17 +19,17 @@ FortreeCity_House5_EventScript_Zigzagoon:: @ 8217F04 release end -FortreeCity_House5_Text_TreeHousesAreGreat: @ 8217F17 +FortreeCity_House5_Text_TreeHousesAreGreat: .string "The tree houses of FORTREE are great!\p" .string "I think it's the number one town for\n" .string "living together with POKéMON.$" -FortreeCity_House5_Text_AdaptedToNature: @ 8217F80 +FortreeCity_House5_Text_AdaptedToNature: .string "POKéMON and people have adapted to\n" .string "nature for survival.\p" .string "There's no need to make nature\n" .string "conform to the way we want to live.$" -FortreeCity_House5_Text_Zigzagoon: @ 8217FFB +FortreeCity_House5_Text_Zigzagoon: .string "ZIGZAGOON: Bufuu!$" diff --git a/data/maps/FortreeCity_Mart/scripts.inc b/data/maps/FortreeCity_Mart/scripts.inc index 05318e7bdc..c37716bc85 100644 --- a/data/maps/FortreeCity_Mart/scripts.inc +++ b/data/maps/FortreeCity_Mart/scripts.inc @@ -1,7 +1,7 @@ -FortreeCity_Mart_MapScripts:: @ 8217665 +FortreeCity_Mart_MapScripts:: .byte 0 -FortreeCity_Mart_EventScript_Clerk:: @ 8217666 +FortreeCity_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -12,7 +12,7 @@ FortreeCity_Mart_EventScript_Clerk:: @ 8217666 end .align 2 -FortreeCity_Mart_Pokemart: @ 8217680 +FortreeCity_Mart_Pokemart: .2byte ITEM_GREAT_BALL .2byte ITEM_ULTRA_BALL .2byte ITEM_SUPER_POTION @@ -27,31 +27,31 @@ FortreeCity_Mart_Pokemart: @ 8217680 release end -FortreeCity_Mart_EventScript_Woman:: @ 8217698 +FortreeCity_Mart_EventScript_Woman:: msgbox FortreeCity_Mart_Text_SuperRepelBetter, MSGBOX_NPC end -FortreeCity_Mart_EventScript_Girl:: @ 82176A1 +FortreeCity_Mart_EventScript_Girl:: msgbox FortreeCity_Mart_Text_StockUpOnItems, MSGBOX_NPC end -FortreeCity_Mart_EventScript_Boy:: @ 82176AA +FortreeCity_Mart_EventScript_Boy:: msgbox FortreeCity_Mart_Text_RareCandyMakesMonGrow, MSGBOX_NPC end -FortreeCity_Mart_Text_SuperRepelBetter: @ 82176B3 +FortreeCity_Mart_Text_SuperRepelBetter: .string "SUPER REPEL lasts a long time,\n" .string "and it gets the job done.\p" .string "It's much better than an ordinary\n" .string "REPEL.$" -FortreeCity_Mart_Text_StockUpOnItems: @ 8217715 +FortreeCity_Mart_Text_StockUpOnItems: .string "I always stock up on more items than\n" .string "I'm sure I'll need.\p" .string "You never know what might happen.\n" .string "Better to be safe than sorry!$" -FortreeCity_Mart_Text_RareCandyMakesMonGrow: @ 821778E +FortreeCity_Mart_Text_RareCandyMakesMonGrow: .string "A RARE CANDY makes a POKéMON grow\n" .string "immediately by one level.$" diff --git a/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc b/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc index 5be9e6616f..d1ea3d8648 100644 --- a/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_NURSE, 1 -FortreeCity_PokemonCenter_1F_MapScripts:: @ 82173D8 +FortreeCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, FortreeCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -FortreeCity_PokemonCenter_1F_OnTransition: @ 82173E3 +FortreeCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_FORTREE_CITY end -FortreeCity_PokemonCenter_1F_EventScript_Nurse:: @ 82173E7 +FortreeCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -17,25 +17,25 @@ FortreeCity_PokemonCenter_1F_EventScript_Nurse:: @ 82173E7 release end -FortreeCity_PokemonCenter_1F_EventScript_Gentleman:: @ 82173F5 +FortreeCity_PokemonCenter_1F_EventScript_Gentleman:: msgbox FortreeCity_PokemonCenter_1F_Text_GoToSafariZone, MSGBOX_NPC end -FortreeCity_PokemonCenter_1F_EventScript_Man:: @ 82173FE +FortreeCity_PokemonCenter_1F_EventScript_Man:: msgbox FortreeCity_PokemonCenter_1F_Text_RecordCornerIsNeat, MSGBOX_NPC end -FortreeCity_PokemonCenter_1F_EventScript_Boy:: @ 8217407 +FortreeCity_PokemonCenter_1F_EventScript_Boy:: msgbox FortreeCity_PokemonCenter_1F_Text_DoYouKnowAboutPokenav, MSGBOX_NPC end -FortreeCity_PokemonCenter_1F_Text_GoToSafariZone: @ 8217410 +FortreeCity_PokemonCenter_1F_Text_GoToSafariZone: .string "Listen, kid, are you working\n" .string "on a POKéDEX?\p" .string "Hmm… Go to the SAFARI ZONE.\n" .string "That's my suggestion.$" -FortreeCity_PokemonCenter_1F_Text_RecordCornerIsNeat: @ 821746D +FortreeCity_PokemonCenter_1F_Text_RecordCornerIsNeat: .string "Have you done anything at\n" .string "the RECORD CORNER?\p" .string "It's pretty neat. It mixes and matches\n" @@ -43,7 +43,7 @@ FortreeCity_PokemonCenter_1F_Text_RecordCornerIsNeat: @ 821746D .string "I don't know quite how it works,\n" .string "but it's cool. It's exciting, even!$" -FortreeCity_PokemonCenter_1F_Text_DoYouKnowAboutPokenav: @ 821751F +FortreeCity_PokemonCenter_1F_Text_DoYouKnowAboutPokenav: .string "Oh, wow, you have a POKéNAV!\n" .string "And it's just like mine!\p" .string "Do you know about POKéNAV's\n" diff --git a/data/maps/FortreeCity_PokemonCenter_2F/scripts.inc b/data/maps/FortreeCity_PokemonCenter_2F/scripts.inc index 183dbece0b..cebae6b485 100644 --- a/data/maps/FortreeCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/FortreeCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -FortreeCity_PokemonCenter_2F_MapScripts:: @ 821763E +FortreeCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ FortreeCity_PokemonCenter_2F_MapScripts:: @ 821763E .byte 0 @ The below 3 are unused and leftover from RS -FortreeCity_PokemonCenter_2F_EventScript_Colosseum:: @ 8217653 +FortreeCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -FortreeCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 8217659 +FortreeCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -FortreeCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 821765F +FortreeCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/GraniteCave_1F/scripts.inc b/data/maps/GraniteCave_1F/scripts.inc index a351476919..1bf81b997b 100644 --- a/data/maps/GraniteCave_1F/scripts.inc +++ b/data/maps/GraniteCave_1F/scripts.inc @@ -1,7 +1,7 @@ -GraniteCave_1F_MapScripts:: @ 822DA5D +GraniteCave_1F_MapScripts:: .byte 0 -GraniteCave_1F_EventScript_Hiker:: @ 822DA5E +GraniteCave_1F_EventScript_Hiker:: lock faceplayer goto_if_set FLAG_RECEIVED_HM05, GraniteCave_1F_EventScript_ReceivedFlash @@ -12,12 +12,12 @@ GraniteCave_1F_EventScript_Hiker:: @ 822DA5E release end -GraniteCave_1F_EventScript_ReceivedFlash:: @ 822DA8A +GraniteCave_1F_EventScript_ReceivedFlash:: msgbox GraniteCave_1F_Text_ExplainFlash, MSGBOX_DEFAULT release end -GraniteCave_1F_Text_GetsDarkAheadHereYouGo: @ 822DA94 +GraniteCave_1F_Text_GetsDarkAheadHereYouGo: .string "Hey, you.\n" .string "It gets awfully dark ahead.\l" .string "It'll be tough trying to explore.\p" @@ -29,7 +29,7 @@ GraniteCave_1F_Text_GetsDarkAheadHereYouGo: @ 822DA94 .string "that we meet is our motto.\p" .string "Here you go, I'll pass this on to you.$" -GraniteCave_1F_Text_ExplainFlash: @ 822DBB7 +GraniteCave_1F_Text_ExplainFlash: .string "Teach that hidden move FLASH to\n" .string "a POKéMON and use it.\p" .string "It lights up even the inky darkness\n" diff --git a/data/maps/GraniteCave_B1F/scripts.inc b/data/maps/GraniteCave_B1F/scripts.inc index f465b0694b..f1b52ce662 100644 --- a/data/maps/GraniteCave_B1F/scripts.inc +++ b/data/maps/GraniteCave_B1F/scripts.inc @@ -1,10 +1,10 @@ -GraniteCave_B1F_MapScripts:: @ 822DC5E +GraniteCave_B1F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CaveHole_CheckFallDownHole map_script MAP_SCRIPT_ON_TRANSITION, CaveHole_FixCrackedGround map_script MAP_SCRIPT_ON_RESUME, GraniteCave_B1F_SetHoleWarp .byte 0 -GraniteCave_B1F_SetHoleWarp: @ 822DC6E +GraniteCave_B1F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR setholewarp MAP_GRANITE_CAVE_B2F, 255, 0, 0 end diff --git a/data/maps/GraniteCave_B2F/scripts.inc b/data/maps/GraniteCave_B2F/scripts.inc index d8cacbe387..ac09ee9e92 100644 --- a/data/maps/GraniteCave_B2F/scripts.inc +++ b/data/maps/GraniteCave_B2F/scripts.inc @@ -1,3 +1,3 @@ -GraniteCave_B2F_MapScripts:: @ 822DC79 +GraniteCave_B2F_MapScripts:: .byte 0 diff --git a/data/maps/GraniteCave_StevensRoom/scripts.inc b/data/maps/GraniteCave_StevensRoom/scripts.inc index 650177b955..73c50b70a5 100644 --- a/data/maps/GraniteCave_StevensRoom/scripts.inc +++ b/data/maps/GraniteCave_StevensRoom/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_STEVEN, 1 -GraniteCave_StevensRoom_MapScripts:: @ 822DC7A +GraniteCave_StevensRoom_MapScripts:: .byte 0 -GraniteCave_StevensRoom_EventScript_Steven:: @ 822DC7B +GraniteCave_StevensRoom_EventScript_Steven:: lock faceplayer msgbox GraniteCave_StevensRoom_Text_ImStevenLetterForMe, MSGBOX_DEFAULT @@ -38,28 +38,28 @@ GraniteCave_StevensRoom_EventScript_Steven:: @ 822DC7B release end -GraniteCave_StevensRoom_EventScript_StevenExitNorth:: @ 822DD0D +GraniteCave_StevensRoom_EventScript_StevenExitNorth:: applymovement LOCALID_STEVEN, GraniteCave_StevensRoom_Movement_StevenExit waitmovement 0 return -GraniteCave_StevensRoom_EventScript_StevenExitWestEast:: @ 822DD18 +GraniteCave_StevensRoom_EventScript_StevenExitWestEast:: applymovement OBJ_EVENT_ID_PLAYER, GraniteCave_StevensRoom_Movement_PlayerTurnTowardExit applymovement LOCALID_STEVEN, GraniteCave_StevensRoom_Movement_StevenExit waitmovement 0 return -GraniteCave_StevensRoom_EventScript_StevenExitSouth:: @ 822DD2A +GraniteCave_StevensRoom_EventScript_StevenExitSouth:: applymovement OBJ_EVENT_ID_PLAYER, GraniteCave_StevensRoom_Movement_PlayerTurnTowardExit applymovement LOCALID_STEVEN, GraniteCave_StevensRoom_Movement_StevenExitSouth waitmovement 0 return -GraniteCave_StevensRoom_EventScript_BagFull:: @ 822DD3C +GraniteCave_StevensRoom_EventScript_BagFull:: msgbox GraniteCave_StevensRoom_Text_OhBagIsFull, MSGBOX_DEFAULT return -GraniteCave_StevensRoom_Movement_StevenExit: @ 822DD45 +GraniteCave_StevensRoom_Movement_StevenExit: walk_up walk_up walk_up @@ -68,14 +68,14 @@ GraniteCave_StevensRoom_Movement_StevenExit: @ 822DD45 delay_8 step_end -GraniteCave_StevensRoom_Movement_PlayerTurnTowardExit: @ 822DD4C +GraniteCave_StevensRoom_Movement_PlayerTurnTowardExit: delay_16 delay_16 delay_16 walk_in_place_fastest_up step_end -GraniteCave_StevensRoom_Movement_StevenExitSouth: @ 822DD51 +GraniteCave_StevensRoom_Movement_StevenExitSouth: walk_left walk_up walk_up @@ -86,14 +86,14 @@ GraniteCave_StevensRoom_Movement_StevenExitSouth: @ 822DD51 delay_8 step_end -GraniteCave_StevensRoom_Text_ImStevenLetterForMe: @ 822DD5A +GraniteCave_StevensRoom_Text_ImStevenLetterForMe: .string "My name is STEVEN.\p" .string "I'm interested in rare stones,\n" .string "so I travel here and there.\p" .string "Oh?\n" .string "A LETTER for me?$" -GraniteCave_StevensRoom_Text_ThankYouTakeThis: @ 822DDBD +GraniteCave_StevensRoom_Text_ThankYouTakeThis: .string "STEVEN: Okay, thank you.\p" .string "You went through all this trouble to\n" .string "deliver that. I need to thank you.\p" @@ -102,7 +102,7 @@ GraniteCave_StevensRoom_Text_ThankYouTakeThis: @ 822DDBD .string "It contains my favorite move,\n" .string "STEEL WING.$" -GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister: @ 822DE6B +GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister: .string "STEVEN: Your POKéMON appear quite\n" .string "capable.\p" .string "If you keep training, you could even\n" @@ -113,14 +113,14 @@ GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister: @ 822DE6B .string "our POKéNAVS.\p" .string "… … … … … …$" -GraniteCave_StevensRoom_Text_RegisteredSteven: @ 822DF6A +GraniteCave_StevensRoom_Text_RegisteredSteven: .string "Registered STEVEN\n" .string "in the POKéNAV.$" -GraniteCave_StevensRoom_Text_IveGotToHurryAlong: @ 822DF8C +GraniteCave_StevensRoom_Text_IveGotToHurryAlong: .string "Now, I've got to hurry along.$" -GraniteCave_StevensRoom_Text_OhBagIsFull: @ 822DFAA +GraniteCave_StevensRoom_Text_OhBagIsFull: .string "Oh, your BAG is full…\n" .string "That's too bad, then.$" diff --git a/data/maps/InsideOfTruck/scripts.inc b/data/maps/InsideOfTruck/scripts.inc index fb75273cc4..3068b11841 100644 --- a/data/maps/InsideOfTruck/scripts.inc +++ b/data/maps/InsideOfTruck/scripts.inc @@ -1,19 +1,19 @@ -InsideOfTruck_MapScripts:: @ 823BEDA +InsideOfTruck_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, InsideOfTruck_OnLoad map_script MAP_SCRIPT_ON_RESUME, InsideOfTruck_OnResume .byte 0 -InsideOfTruck_OnLoad: @ 823BEE5 +InsideOfTruck_OnLoad: setmetatile 4, 1, METATILE_InsideOfTruck_ExitLight_Top, 0 setmetatile 4, 2, METATILE_InsideOfTruck_ExitLight_Mid, 0 setmetatile 4, 3, METATILE_InsideOfTruck_ExitLight_Bottom, 0 end -InsideOfTruck_OnResume: @ 823BF01 +InsideOfTruck_OnResume: setstepcallback STEP_CB_TRUCK end -InsideOfTruck_EventScript_SetIntroFlags:: @ 823BF04 +InsideOfTruck_EventScript_SetIntroFlags:: lockall setflag FLAG_HIDE_MAP_NAME_POPUP checkplayergender @@ -23,7 +23,7 @@ InsideOfTruck_EventScript_SetIntroFlags:: @ 823BF04 goto_if_eq InsideOfTruck_EventScript_SetIntroFlagsFemale end -InsideOfTruck_EventScript_SetIntroFlagsMale:: @ 823BF20 +InsideOfTruck_EventScript_SetIntroFlagsMale:: setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F setvar VAR_LITTLEROOT_INTRO_STATE, 1 setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MOM @@ -36,7 +36,7 @@ InsideOfTruck_EventScript_SetIntroFlagsMale:: @ 823BF20 releaseall end -InsideOfTruck_EventScript_SetIntroFlagsFemale:: @ 823BF46 +InsideOfTruck_EventScript_SetIntroFlagsFemale:: setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F setvar VAR_LITTLEROOT_INTRO_STATE, 2 setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_MOM @@ -49,11 +49,11 @@ InsideOfTruck_EventScript_SetIntroFlagsFemale:: @ 823BF46 releaseall end -InsideOfTruck_EventScript_MovingBox:: @ 823BF6C +InsideOfTruck_EventScript_MovingBox:: msgbox InsideOfTruck_Text_BoxPrintedWithMonLogo, MSGBOX_SIGN end -InsideOfTruck_Text_BoxPrintedWithMonLogo: @ 823BF75 +InsideOfTruck_Text_BoxPrintedWithMonLogo: .string "The box is printed with a POKéMON logo.\p" .string "It's a POKéMON brand moving and\n" .string "delivery service.$" diff --git a/data/maps/IslandCave/scripts.inc b/data/maps/IslandCave/scripts.inc index 56643a5040..af93863b7c 100644 --- a/data/maps/IslandCave/scripts.inc +++ b/data/maps/IslandCave/scripts.inc @@ -1,25 +1,25 @@ -IslandCave_MapScripts:: @ 8238E2A +IslandCave_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, IslandCave_OnResume map_script MAP_SCRIPT_ON_LOAD, IslandCave_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, IslandCave_OnTransition .byte 0 -IslandCave_OnResume: @ 8238E3A +IslandCave_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, IslandCave_EventScript_TryRemoveRegice end -IslandCave_EventScript_TryRemoveRegice:: @ 8238E44 +IslandCave_EventScript_TryRemoveRegice:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -IslandCave_OnLoad: @ 8238E58 +IslandCave_OnLoad: call_if_unset FLAG_SYS_BRAILLE_REGICE_COMPLETED, IslandCave_EventScript_HideRegiEntrance end -IslandCave_EventScript_HideRegiEntrance:: @ 8238E62 +IslandCave_EventScript_HideRegiEntrance:: setmetatile 7, 19, METATILE_Cave_EntranceCover, 1 setmetatile 8, 19, METATILE_Cave_EntranceCover, 1 setmetatile 9, 19, METATILE_Cave_EntranceCover, 1 @@ -28,17 +28,17 @@ IslandCave_EventScript_HideRegiEntrance:: @ 8238E62 setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 return -IslandCave_OnTransition: @ 8238E99 +IslandCave_OnTransition: setflag FLAG_LANDMARK_ISLAND_CAVE call IslandCave_EventScript_ClearSteps call_if_unset FLAG_DEFEATED_REGICE, IslandCave_EventScript_ShowRegice end -IslandCave_EventScript_ShowRegice:: @ 8238EAB +IslandCave_EventScript_ShowRegice:: clearflag FLAG_HIDE_REGICE return -IslandCave_EventScript_OpenRegiEntrance:: @ 8238EAF +IslandCave_EventScript_OpenRegiEntrance:: setmetatile 7, 19, METATILE_Cave_SealedChamberEntrance_TopLeft, 1 setmetatile 8, 19, METATILE_Cave_SealedChamberEntrance_TopMid, 1 setmetatile 9, 19, METATILE_Cave_SealedChamberEntrance_TopRight, 1 @@ -50,7 +50,7 @@ IslandCave_EventScript_OpenRegiEntrance:: @ 8238EAF setflag FLAG_SYS_BRAILLE_REGICE_COMPLETED end -IslandCave_EventScript_CaveEntranceMiddle:: @ 8238EEF +IslandCave_EventScript_CaveEntranceMiddle:: lockall call_if_set FLAG_TEMP_3, IslandCave_EventScript_ClearSteps goto_if_set FLAG_SYS_BRAILLE_REGICE_COMPLETED, IslandCave_EventScript_BigHoleInWall @@ -60,12 +60,12 @@ IslandCave_EventScript_CaveEntranceMiddle:: @ 8238EEF goto IslandCave_EventScript_CloseBrailleMsg end -IslandCave_EventScript_BigHoleInWall:: @ 8238F13 +IslandCave_EventScript_BigHoleInWall:: msgbox gText_BigHoleInTheWall, MSGBOX_DEFAULT releaseall end -IslandCave_EventScript_CaveEntranceSide:: @ 8238F1D +IslandCave_EventScript_CaveEntranceSide:: lockall call_if_set FLAG_TEMP_3, IslandCave_EventScript_ClearSteps braillemessage IslandCave_Braille_RunLapAroundWall @@ -75,20 +75,20 @@ IslandCave_EventScript_CaveEntranceSide:: @ 8238F1D goto IslandCave_EventScript_CloseBrailleMsg end -IslandCave_EventScript_CloseBrailleMsg:: @ 8238F41 +IslandCave_EventScript_CloseBrailleMsg:: waitbuttonpress closebraillemessage releaseall end -IslandCave_EventScript_ClearSteps:: @ 8238F45 +IslandCave_EventScript_ClearSteps:: setvar VAR_REGICE_STEPS_1, 0 setvar VAR_REGICE_STEPS_2, 0 setvar VAR_REGICE_STEPS_3, 0 clearflag FLAG_TEMP_3 return -IslandCave_EventScript_Regice:: @ 8238F58 +IslandCave_EventScript_Regice:: lock faceplayer waitse @@ -111,12 +111,12 @@ IslandCave_EventScript_Regice:: @ 8238F58 release end -IslandCave_EventScript_DefeatedRegice:: @ 8238F9F +IslandCave_EventScript_DefeatedRegice:: setflag FLAG_DEFEATED_REGICE goto Common_EventScript_RemoveStaticPokemon end -IslandCave_EventScript_RanFromRegice:: @ 8238FA8 +IslandCave_EventScript_RanFromRegice:: setvar VAR_0x8004, SPECIES_REGICE goto Common_EventScript_LegendaryFlewAway end diff --git a/data/maps/JaggedPass/scripts.inc b/data/maps/JaggedPass/scripts.inc index c7fc95676a..754ee00cf5 100644 --- a/data/maps/JaggedPass/scripts.inc +++ b/data/maps/JaggedPass/scripts.inc @@ -1,48 +1,48 @@ .set LOCALID_HIDEOUT_GUARD, 5 -JaggedPass_MapScripts:: @ 8230656 +JaggedPass_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, JaggedPass_OnResume map_script MAP_SCRIPT_ON_TRANSITION, JaggedPass_OnTransition map_script MAP_SCRIPT_ON_LOAD, JaggedPass_OnLoad .byte 0 -JaggedPass_OnResume: @ 8230666 +JaggedPass_OnResume: setstepcallback STEP_CB_ASH compare VAR_JAGGED_PASS_STATE, 0 call_if_eq JaggedPass_EventScript_CheckHasMagmaEmblem end -JaggedPass_EventScript_CheckHasMagmaEmblem:: @ 8230674 +JaggedPass_EventScript_CheckHasMagmaEmblem:: checkitem ITEM_MAGMA_EMBLEM, 1 compare VAR_RESULT, TRUE goto_if_eq JaggedPass_EventScript_SetReadyToOpenHideout return -JaggedPass_EventScript_SetReadyToOpenHideout:: @ 8230685 +JaggedPass_EventScript_SetReadyToOpenHideout:: setvar VAR_JAGGED_PASS_STATE, 1 return -JaggedPass_OnTransition: @ 823068B +JaggedPass_OnTransition: compare VAR_JAGGED_PASS_ASH_WEATHER, 1 call_if_eq JaggedPass_EventScript_SetWeatherAsh end -JaggedPass_EventScript_SetWeatherAsh:: @ 8230697 +JaggedPass_EventScript_SetWeatherAsh:: setweather WEATHER_VOLCANIC_ASH doweather return -JaggedPass_OnLoad: @ 823069C +JaggedPass_OnLoad: compare VAR_JAGGED_PASS_STATE, 1 goto_if_le JaggedPass_EventScript_ConcealHideoutEntrance end -JaggedPass_EventScript_ConcealHideoutEntrance:: @ 82306A8 +JaggedPass_EventScript_ConcealHideoutEntrance:: setmetatile 16, 17, METATILE_Lavaridge_RockWall, 1 setmetatile 16, 18, METATILE_Lavaridge_RockWall, 1 end -JaggedPass_EventScript_OpenMagmaHideout:: @ 82306BB +JaggedPass_EventScript_OpenMagmaHideout:: lockall setvar VAR_0x8004, 1 @ vertical pan setvar VAR_0x8005, 1 @ horizontal pan @@ -68,7 +68,7 @@ JaggedPass_EventScript_OpenMagmaHideout:: @ 82306BB releaseall end -JaggedPass_EventScript_MagmaHideoutGuard:: @ 8230718 +JaggedPass_EventScript_MagmaHideoutGuard:: lockall goto_if_set FLAG_BEAT_MAGMA_GRUNT_JAGGED_PASS, JaggedPass_EventScript_GuardDefeated waitse @@ -88,7 +88,7 @@ JaggedPass_EventScript_MagmaHideoutGuard:: @ 8230718 releaseall end -JaggedPass_EventScript_GuardDefeated:: @ 8230766 +JaggedPass_EventScript_GuardDefeated:: applymovement LOCALID_HIDEOUT_GUARD, Common_Movement_FacePlayer waitmovement 0 msgbox JaggedPass_Text_GoWhereverYouWant, MSGBOX_DEFAULT @@ -98,12 +98,12 @@ JaggedPass_EventScript_GuardDefeated:: @ 8230766 releaseall end -JaggedPass_EventScript_Eric:: @ 8230785 +JaggedPass_EventScript_Eric:: trainerbattle_single TRAINER_ERIC, JaggedPass_Text_EricIntro, JaggedPass_Text_EricDefeat msgbox JaggedPass_Text_EricPostBattle, MSGBOX_AUTOCLOSE end -JaggedPass_EventScript_Diana:: @ 823079C +JaggedPass_EventScript_Diana:: trainerbattle_single TRAINER_DIANA_1, JaggedPass_Text_DianaIntro, JaggedPass_Text_DianaDefeat, JaggedPass_EventScript_RegisterDiana specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -112,19 +112,19 @@ JaggedPass_EventScript_Diana:: @ 823079C release end -JaggedPass_EventScript_RegisterDiana:: @ 82307C8 +JaggedPass_EventScript_RegisterDiana:: special PlayerFaceTrainerAfterBattle msgbox JaggedPass_Text_DianaRegister, MSGBOX_DEFAULT register_matchcall TRAINER_DIANA_1 release end -JaggedPass_EventScript_DianaRematch:: @ 82307E4 +JaggedPass_EventScript_DianaRematch:: trainerbattle_rematch TRAINER_DIANA_1, JaggedPass_Text_DianaRematchIntro, JaggedPass_Text_DianaRematchDefeat msgbox JaggedPass_Text_DianaPostRematch, MSGBOX_AUTOCLOSE end -JaggedPass_EventScript_Ethan:: @ 82307FB +JaggedPass_EventScript_Ethan:: trainerbattle_single TRAINER_ETHAN_1, JaggedPass_Text_EthanIntro, JaggedPass_Text_EthanDefeat, JaggedPass_EventScript_RegisterEthan specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -133,142 +133,142 @@ JaggedPass_EventScript_Ethan:: @ 82307FB release end -JaggedPass_EventScript_RegisterEthan:: @ 8230827 +JaggedPass_EventScript_RegisterEthan:: special PlayerFaceTrainerAfterBattle msgbox JaggedPass_Text_EthanRegister, MSGBOX_DEFAULT register_matchcall TRAINER_ETHAN_1 release end -JaggedPass_EventScript_EthanRematch:: @ 8230843 +JaggedPass_EventScript_EthanRematch:: trainerbattle_rematch TRAINER_ETHAN_1, JaggedPass_Text_EthanRematchIntro, JaggedPass_Text_EthanRematchDefeat msgbox JaggedPass_Text_EthanPostRematch, MSGBOX_AUTOCLOSE end -JaggedPass_EventScript_Julio:: @ 823085A +JaggedPass_EventScript_Julio:: trainerbattle_single TRAINER_JULIO, JaggedPass_Text_JulioIntro, JaggedPass_Text_JulioDefeat msgbox JaggedPass_Text_JulioPostBattle, MSGBOX_AUTOCLOSE end -JaggedPass_EventScript_Autumn:: @ 8230871 +JaggedPass_EventScript_Autumn:: trainerbattle_single TRAINER_AUTUMN, JaggedPass_Text_AutumnIntro, JaggedPass_Text_AutumnDefeat msgbox JaggedPass_Text_AutumnPostBattle, MSGBOX_AUTOCLOSE end -JaggedPass_Text_EricIntro: @ 8230888 +JaggedPass_Text_EricIntro: .string "MT. CHIMNEY's JAGGED PASS…\p" .string "Now this is what I've always wanted\n" .string "in a mountain.\p" .string "This jagged bumpiness…\n" .string "It rocks my soul!$" -JaggedPass_Text_EricDefeat: @ 82308FF +JaggedPass_Text_EricDefeat: .string "Losing left me bitter!$" -JaggedPass_Text_EricPostBattle: @ 8230916 +JaggedPass_Text_EricPostBattle: .string "Yes, I did lose at POKéMON…\p" .string "But, when it comes to the love of\n" .string "the mountains, I have you beat!$" -JaggedPass_Text_DianaIntro: @ 8230974 +JaggedPass_Text_DianaIntro: .string "This place isn't your casual hike.\n" .string "It's not suited for a picnic.$" -JaggedPass_Text_DianaDefeat: @ 82309B5 +JaggedPass_Text_DianaDefeat: .string "Ohhh, no!\n" .string "The ground is too bumpy…$" -JaggedPass_Text_DianaPostBattle: @ 82309D8 +JaggedPass_Text_DianaPostBattle: .string "Did you know?\p" .string "Some people cleverly ride their\n" .string "bicycles up this horribly bumpy pass.$" -JaggedPass_Text_DianaRegister: @ 8230A2C +JaggedPass_Text_DianaRegister: .string "Will you ever be back in this area?\n" .string "If you do return, I'd like a rematch.$" -JaggedPass_Text_DianaRematchIntro: @ 8230A76 +JaggedPass_Text_DianaRematchIntro: .string "Picnics are fun wherever you go.\n" .string "Just like POKéMON!$" -JaggedPass_Text_DianaRematchDefeat: @ 8230AAA +JaggedPass_Text_DianaRematchDefeat: .string "I only lost because the ground is\n" .string "too bumpy!$" -JaggedPass_Text_DianaPostRematch: @ 8230AD7 +JaggedPass_Text_DianaPostRematch: .string "I'll forget about losing and just\n" .string "enjoy this bumpy hike.$" -JaggedPass_Text_EthanIntro: @ 8230B10 +JaggedPass_Text_EthanIntro: .string "JAGGED PASS is hard to walk on.\n" .string "It's a good place for training.$" -JaggedPass_Text_EthanDefeat: @ 8230B50 +JaggedPass_Text_EthanDefeat: .string "It was all over while we were still\n" .string "trying to find a good footing…$" -JaggedPass_Text_EthanPostBattle: @ 8230B93 +JaggedPass_Text_EthanPostBattle: .string "If I had an ACRO BIKE, I'd be able to\n" .string "jump ledges.$" -JaggedPass_Text_EthanRegister: @ 8230BC6 +JaggedPass_Text_EthanRegister: .string "When I get more used to this bumpiness,\n" .string "I'll be sure to win!\p" .string "Can you register me in your POKéNAV?$" -JaggedPass_Text_EthanRematchIntro: @ 8230C28 +JaggedPass_Text_EthanRematchIntro: .string "I got used to this bumpiness.\n" .string "I sing while I climb now.$" -JaggedPass_Text_EthanRematchDefeat: @ 8230C60 +JaggedPass_Text_EthanRematchDefeat: .string "It's still not easy to battle on this\n" .string "bumpy ground…$" -JaggedPass_Text_EthanPostRematch: @ 8230C94 +JaggedPass_Text_EthanPostRematch: .string "I should get an ACRO BIKE from RYDEL\n" .string "in MAUVILLE CITY…$" -JaggedPass_Text_GruntIntro: @ 8230CCB +JaggedPass_Text_GruntIntro: .string "Wah!\n" .string "What are you doing here?\p" .string "What am I doing in a place like this?\p" .string "What business is it of yours?$" -JaggedPass_Text_GruntDefeat: @ 8230D2D +JaggedPass_Text_GruntDefeat: .string "Urrrgh…\p" .string "I should've ducked into our HIDEOUT\n" .string "right away…$" -JaggedPass_Text_GoWhereverYouWant: @ 8230D65 +JaggedPass_Text_GoWhereverYouWant: .string "Okay, oh-kay!\n" .string "I admit it--you're strong!\p" .string "Don't worry about me.\n" .string "Go wherever you want!$" -JaggedPass_Text_BoulderShakingInResponseToEmblem: @ 8230DBA +JaggedPass_Text_BoulderShakingInResponseToEmblem: .string "Oh! This boulder is shaking in response\n" .string "to the MAGMA EMBLEM!$" -JaggedPass_Text_JulioIntro: @ 8230DF7 +JaggedPass_Text_JulioIntro: .string "Aiyeeh! It's awfully scary to shoot\n" .string "down the mountain in one go!$" -JaggedPass_Text_JulioDefeat: @ 8230E38 +JaggedPass_Text_JulioDefeat: .string "I feel like I'm falling apart…$" -JaggedPass_Text_JulioPostBattle: @ 8230E57 +JaggedPass_Text_JulioPostBattle: .string "My bicycle bounced around so much,\n" .string "my rear end's sore…$" -JaggedPass_Text_AutumnIntro: @ 8230E8E +JaggedPass_Text_AutumnIntro: .string "I climb this hill every day.\n" .string "I have confidence in my strength!$" -JaggedPass_Text_AutumnDefeat: @ 8230ECD +JaggedPass_Text_AutumnDefeat: .string "Hmm…\n" .string "What went wrong?$" -JaggedPass_Text_AutumnPostBattle: @ 8230EE3 +JaggedPass_Text_AutumnPostBattle: .string "What is that odd rock protrusion\n" .string "a little up the hill from here?$" diff --git a/data/maps/LavaridgeTown/scripts.inc b/data/maps/LavaridgeTown/scripts.inc index 1f9fe421d6..baa9027a94 100644 --- a/data/maps/LavaridgeTown/scripts.inc +++ b/data/maps/LavaridgeTown/scripts.inc @@ -1,12 +1,12 @@ .set LOCALID_RIVAL_ON_BIKE, 7 .set LOCALID_RIVAL, 8 -LavaridgeTown_MapScripts:: @ 81EA4D3 +LavaridgeTown_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LavaridgeTown_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, LavaridgeTown_OnFrame .byte 0 -LavaridgeTown_OnTransition: @ 81EA4DE +LavaridgeTown_OnTransition: setflag FLAG_VISITED_LAVARIDGE_TOWN call_if_set FLAG_WHITEOUT_TO_LAVARIDGE, LavaridgeTown_EventScript_ClearLavaridgeWhiteOut call_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, LavaridgeTown_EventScript_ShowMtChimneyTrainers @@ -18,36 +18,36 @@ LavaridgeTown_OnTransition: @ 81EA4DE call_if_eq LavaridgeTown_EventScript_HideMapNamePopup end -LavaridgeTown_EventScript_ClearLavaridgeWhiteOut:: @ 81EA514 +LavaridgeTown_EventScript_ClearLavaridgeWhiteOut:: clearflag FLAG_WHITEOUT_TO_LAVARIDGE return -LavaridgeTown_EventScript_CheckSetRivalPos:: @ 81EA518 +LavaridgeTown_EventScript_CheckSetRivalPos:: getplayerxy VAR_0x8004, VAR_0x8005 compare VAR_0x8004, 9 goto_if_eq LavaridgeTown_EventScript_SetRivalPos return -LavaridgeTown_EventScript_SetRivalPos:: @ 81EA529 +LavaridgeTown_EventScript_SetRivalPos:: setobjectxyperm LOCALID_RIVAL, 11, 9 setobjectxyperm LOCALID_RIVAL_ON_BIKE, 9, 8 setobjectmovementtype LOCALID_RIVAL_ON_BIKE, MOVEMENT_TYPE_FACE_UP clearflag FLAG_HIDE_LAVARIDGE_TOWN_RIVAL return -LavaridgeTown_EventScript_ShowMtChimneyTrainers:: @ 81EA53F +LavaridgeTown_EventScript_ShowMtChimneyTrainers:: clearflag FLAG_HIDE_MT_CHIMNEY_TRAINERS return -LavaridgeTown_EventScript_HideMapNamePopup:: @ 81EA543 +LavaridgeTown_EventScript_HideMapNamePopup:: setflag FLAG_HIDE_MAP_NAME_POPUP return -LavaridgeTown_OnFrame: @ 81EA547 +LavaridgeTown_OnFrame: map_script_2 VAR_LAVARIDGE_TOWN_STATE, 1, LavaridgeTown_EventScript_RivalGiveGoGoggles .2byte 0 -LavaridgeTown_EventScript_RivalGiveGoGoggles:: @ 81EA551 +LavaridgeTown_EventScript_RivalGiveGoGoggles:: lockall getplayerxy VAR_0x8008, VAR_0x8009 compare VAR_0x8008, 9 @@ -71,7 +71,7 @@ LavaridgeTown_EventScript_RivalGiveGoGoggles:: @ 81EA551 goto_if_eq LavaridgeTown_EventScript_BrendanGiveGoGoggles end -LavaridgeTown_EventScript_MayGiveGoGoggles:: @ 81EA5B5 +LavaridgeTown_EventScript_MayGiveGoGoggles:: msgbox LavaridgeTown_Text_MayNiceBadgesTakeThis, MSGBOX_DEFAULT giveitem ITEM_GO_GOGGLES setflag FLAG_RECEIVED_GO_GOGGLES @@ -79,7 +79,7 @@ LavaridgeTown_EventScript_MayGiveGoGoggles:: @ 81EA5B5 goto LavaridgeTown_EventScript_RivalExit end -LavaridgeTown_EventScript_BrendanGiveGoGoggles:: @ 81EA5DA +LavaridgeTown_EventScript_BrendanGiveGoGoggles:: msgbox LavaridgeTown_Text_BrendanNiceBadgesTakeThis, MSGBOX_DEFAULT giveitem ITEM_GO_GOGGLES setflag FLAG_RECEIVED_GO_GOGGLES @@ -87,7 +87,7 @@ LavaridgeTown_EventScript_BrendanGiveGoGoggles:: @ 81EA5DA goto LavaridgeTown_EventScript_RivalExit end -LavaridgeTown_EventScript_RivalExit:: @ 81EA5FF +LavaridgeTown_EventScript_RivalExit:: closemessage removeobject LOCALID_RIVAL addobject LOCALID_RIVAL_ON_BIKE @@ -104,15 +104,15 @@ LavaridgeTown_EventScript_RivalExit:: @ 81EA5FF releaseall end -LavaridgeTown_EventScript_PlayMayMusic:: @ 81EA630 - playbgm MUS_ENCOUNTER_MAY, 1 +LavaridgeTown_EventScript_PlayMayMusic:: + playbgm MUS_ENCOUNTER_MAY, TRUE return -LavaridgeTown_EventScript_PlayBrendanMusic:: @ 81EA635 - playbgm MUS_ENCOUNTER_BRENDAN, 1 +LavaridgeTown_EventScript_PlayBrendanMusic:: + playbgm MUS_ENCOUNTER_BRENDAN, TRUE return -LavaridgeTown_EventScript_RivalNoticePlayer:: @ 81EA63A +LavaridgeTown_EventScript_RivalNoticePlayer:: applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestUp waitmovement 0 playse SE_PIN @@ -122,7 +122,7 @@ LavaridgeTown_EventScript_RivalNoticePlayer:: @ 81EA63A waitmovement 0 return -LavaridgeTown_EventScript_RivalExitHerbShop:: @ 81EA65C +LavaridgeTown_EventScript_RivalExitHerbShop:: opendoor 12, 15 waitdooranim addobject LOCALID_RIVAL @@ -141,28 +141,28 @@ LavaridgeTown_EventScript_RivalExitHerbShop:: @ 81EA65C waitmovement 0 return -LavaridgeTown_EventScript_RivalApproachPlayer1:: @ 81EA6A1 +LavaridgeTown_EventScript_RivalApproachPlayer1:: applymovement LOCALID_RIVAL, LavaridgeTown_Movement_RivalApproachPlayer1 waitmovement 0 return -LavaridgeTown_EventScript_RivalApproachPlayer2:: @ 81EA6AC +LavaridgeTown_EventScript_RivalApproachPlayer2:: applymovement LOCALID_RIVAL, LavaridgeTown_Movement_RivalApproachPlayer2 waitmovement 0 return -LavaridgeTown_EventScript_RivalExit1:: @ 81EA6B7 +LavaridgeTown_EventScript_RivalExit1:: applymovement OBJ_EVENT_ID_PLAYER, LavaridgeTown_Movement_PlayerWatchRivalExit applymovement LOCALID_RIVAL_ON_BIKE, LavaridgeTown_Movement_RivalExit1 waitmovement 0 return -LavaridgeTown_EventScript_RivalExit2:: @ 81EA6C9 +LavaridgeTown_EventScript_RivalExit2:: applymovement LOCALID_RIVAL_ON_BIKE, LavaridgeTown_Movement_RivalExit2 waitmovement 0 return -LavaridgeTown_Movement_RivalExit2: @ 81EA6D4 +LavaridgeTown_Movement_RivalExit2: walk_fast_right walk_fast_right walk_fast_right @@ -175,13 +175,13 @@ LavaridgeTown_Movement_RivalExit2: @ 81EA6D4 walk_fast_up step_end -LavaridgeTown_Movement_PlayerWatchRivalExit: @ 81EA6DF +LavaridgeTown_Movement_PlayerWatchRivalExit: delay_16 delay_8 walk_in_place_fastest_right step_end -LavaridgeTown_Movement_RivalExit1: @ 81EA6E3 +LavaridgeTown_Movement_RivalExit1: walk_fast_down walk_fast_right walk_fast_right @@ -193,7 +193,7 @@ LavaridgeTown_Movement_RivalExit1: @ 81EA6E3 walk_fast_right step_end -LavaridgeTown_Movement_RivalApproachPlayer2: @ 81EA6ED +LavaridgeTown_Movement_RivalApproachPlayer2: walk_left walk_left walk_left @@ -202,51 +202,51 @@ LavaridgeTown_Movement_RivalApproachPlayer2: @ 81EA6ED walk_left step_end -LavaridgeTown_Movement_RivalApproachPlayer1: @ 81EA6F4 +LavaridgeTown_Movement_RivalApproachPlayer1: walk_left walk_left walk_up step_end -LavaridgeTown_Movement_RivalExitHerbShop: @ 81EA6F8 +LavaridgeTown_Movement_RivalExitHerbShop: walk_down step_end -LavaridgeTown_EventScript_HotSpringsTrigger:: @ 81EA6FA +LavaridgeTown_EventScript_HotSpringsTrigger:: specialvar VAR_RESULT, GetPlayerFacingDirection compare VAR_RESULT, DIR_SOUTH goto_if_eq LavaridgeTown_EventScript_EnteredHotSprings end -LavaridgeTown_EventScript_EnteredHotSprings:: @ 81EA70B +LavaridgeTown_EventScript_EnteredHotSprings:: incrementgamestat GAME_STAT_ENTERED_HOT_SPRINGS end -LavaridgeTown_EventScript_ExpertM:: @ 81EA70E +LavaridgeTown_EventScript_ExpertM:: msgbox LavaridgeTown_Text_HotSpringsNeverRunDry, MSGBOX_NPC end -LavaridgeTown_EventScript_OldMan:: @ 81EA717 +LavaridgeTown_EventScript_OldMan:: msgbox LavaridgeTown_Text_PokemonNippedBackside, MSGBOX_SIGN end -LavaridgeTown_EventScript_Twin:: @ 81EA720 +LavaridgeTown_EventScript_Twin:: msgbox LavaridgeTown_Text_BatheInHotSpringsEveryDay, MSGBOX_NPC end -LavaridgeTown_EventScript_HotSpringsOldWoman1:: @ 81EA729 +LavaridgeTown_EventScript_HotSpringsOldWoman1:: msgbox LavaridgeTown_Text_IfPokemonInHotSprings, MSGBOX_NPC end -LavaridgeTown_EventScript_HotSpringsOldWoman2:: @ 81EA732 +LavaridgeTown_EventScript_HotSpringsOldWoman2:: msgbox LavaridgeTown_Text_HotSpringsClaims, MSGBOX_NPC end -LavaridgeTown_EventScript_ExpertF:: @ 81EA73B +LavaridgeTown_EventScript_ExpertF:: msgbox LavaridgeTown_Text_OhYouLikeHotSprings, MSGBOX_NPC end -LavaridgeTown_EventScript_EggWoman:: @ 81EA744 +LavaridgeTown_EventScript_EggWoman:: lock faceplayer goto_if_set FLAG_RECEIVED_LAVARIDGE_EGG, LavaridgeTown_EventScript_ReceivedEgg @@ -265,34 +265,34 @@ LavaridgeTown_EventScript_EggWoman:: @ 81EA744 release end -LavaridgeTown_EventScript_ReceivedEgg:: @ 81EA787 +LavaridgeTown_EventScript_ReceivedEgg:: msgbox LavaridgeTown_Text_EverySoOftenEggFoundAtDayCare, MSGBOX_DEFAULT release end -LavaridgeTown_EventScript_NoRoomForEgg:: @ 81EA791 +LavaridgeTown_EventScript_NoRoomForEgg:: msgbox LavaridgeTown_Text_NoRoomForThisEgg, MSGBOX_DEFAULT release end -LavaridgeTown_EventScript_DeclineEgg:: @ 81EA79B +LavaridgeTown_EventScript_DeclineEgg:: msgbox LavaridgeTown_Text_AsYouWishThen, MSGBOX_DEFAULT release end -LavaridgeTown_EventScript_TownSign:: @ 81EA7A5 +LavaridgeTown_EventScript_TownSign:: msgbox LavaridgeTown_Text_TownSign, MSGBOX_SIGN end -LavaridgeTown_EventScript_GymSign:: @ 81EA7AE +LavaridgeTown_EventScript_GymSign:: msgbox LavaridgeTown_Text_GymSign, MSGBOX_SIGN end -LavaridgeTown_EventScript_HerbShopSign:: @ 81EA7B7 +LavaridgeTown_EventScript_HerbShopSign:: msgbox LavaridgeTown_Text_HerbShopSign, MSGBOX_SIGN end -LavaridgeTown_Text_MayNiceBadgesTakeThis: @ 81EA7C0 +LavaridgeTown_Text_MayNiceBadgesTakeThis: .string "MAY: {PLAYER}{KUN}! Long time no see!\p" .string "Oh? While I visited the hot springs,\n" .string "you got the LAVARIDGE GYM BADGE.\p" @@ -302,7 +302,7 @@ LavaridgeTown_Text_MayNiceBadgesTakeThis: @ 81EA7C0 .string "I guess it would be okay for you to\n" .string "have this.$" -LavaridgeTown_Text_MayExplainGoGogglesChallengeDad: @ 81EA897 +LavaridgeTown_Text_MayExplainGoGogglesChallengeDad: .string "MAY: With those GO-GOGGLES, you'll\n" .string "have no trouble getting through the\l" .string "desert near ROUTE 111.\p" @@ -314,7 +314,7 @@ LavaridgeTown_Text_MayExplainGoGogglesChallengeDad: @ 81EA897 .string "your dad in PETALBURG GYM.\p" .string "See you again!$" -LavaridgeTown_Text_BrendanNiceBadgesTakeThis: @ 81EA9A2 +LavaridgeTown_Text_BrendanNiceBadgesTakeThis: .string "BRENDAN: {PLAYER}, hey, it's been a while.\n" .string "How's it going?\p" .string "Hmm…\n" @@ -322,7 +322,7 @@ LavaridgeTown_Text_BrendanNiceBadgesTakeThis: @ 81EA9A2 .string "All right, then.\n" .string "You may as well have this.$" -LavaridgeTown_Text_BrendanExplainGoGogglesChallengeDad: @ 81EAA2E +LavaridgeTown_Text_BrendanExplainGoGogglesChallengeDad: .string "BRENDAN: Keep those with you if you're\n" .string "planning on going into that desert near\l" .string "ROUTE 111.\p" @@ -336,7 +336,7 @@ LavaridgeTown_Text_BrendanExplainGoGogglesChallengeDad: @ 81EAA2E .string "he really is tough.\p" .string "See you around!$" -LavaridgeTown_Text_HaveEggWillYouTakeIt: @ 81EAB80 +LavaridgeTown_Text_HaveEggWillYouTakeIt: .string "I have here an EGG.\p" .string "I'd hoped to hatch it by covering it in\n" .string "hot sand by the hot springs.\l" @@ -349,28 +349,28 @@ LavaridgeTown_Text_HaveEggWillYouTakeIt: @ 81EAB80 .string "So, what say you?\n" .string "Will you take this EGG to hatch?$" -LavaridgeTown_Text_HopeYoullWalkPlentyWithEgg: @ 81EACC0 +LavaridgeTown_Text_HopeYoullWalkPlentyWithEgg: .string "Good! I hope you'll walk plenty with\n" .string "this here EGG!$" -LavaridgeTown_Text_ReceivedTheEgg: @ 81EACF4 +LavaridgeTown_Text_ReceivedTheEgg: .string "{PLAYER} received the EGG.$" -LavaridgeTown_Text_NoRoomForThisEgg: @ 81EAD09 +LavaridgeTown_Text_NoRoomForThisEgg: .string "Oh? You've too many POKéMON.\n" .string "There's no room for this EGG…$" -LavaridgeTown_Text_AsYouWishThen: @ 81EAD44 +LavaridgeTown_Text_AsYouWishThen: .string "As you wish, then…\p" .string "If you have a change of heart about\n" .string "hatching this EGG, I will be here.$" -LavaridgeTown_Text_EverySoOftenEggFoundAtDayCare: @ 81EAD9E +LavaridgeTown_Text_EverySoOftenEggFoundAtDayCare: .string "Every so often, an EGG will be found at\n" .string "the POKéMON DAY CARE.\p" .string "Or at least that's how the rumor goes.$" -LavaridgeTown_Text_HotSpringsNeverRunDry: @ 81EAE03 +LavaridgeTown_Text_HotSpringsNeverRunDry: .string "We draw as much hot water as we need,\n" .string "and yet the hot springs never run dry.\p" .string "Isn't it magical?\p" @@ -379,47 +379,47 @@ LavaridgeTown_Text_HotSpringsNeverRunDry: @ 81EAE03 .string "ground are heated by magma to well up\l" .string "as hot springs.$" -LavaridgeTown_Text_PokemonNippedBackside: @ 81EAEE1 +LavaridgeTown_Text_PokemonNippedBackside: .string "Being buried in this hot sand is…\n" .string "Sigh…\p" .string "So warm and heavenly…\p" .string "Eh? Gyaah! Ouch!\p" .string "A POKéMON nipped my backside!$" -LavaridgeTown_Text_OhYouLikeHotSprings: @ 81EAF4E +LavaridgeTown_Text_OhYouLikeHotSprings: .string "Oh, you like hot springs, do you?\p" .string "That's surprising for one as young\n" .string "as you.$" -LavaridgeTown_Text_BatheInHotSpringsEveryDay: @ 81EAF9B +LavaridgeTown_Text_BatheInHotSpringsEveryDay: .string "I bathe in the hot springs every day.\p" .string "I want to become a beautiful and strong\n" .string "GYM LEADER like FLANNERY.$" -LavaridgeTown_Text_IfPokemonInHotSprings: @ 81EB003 +LavaridgeTown_Text_IfPokemonInHotSprings: .string "If people put POKéMON in hot springs,\n" .string "it might be seriously strange.\p" .string "Why, it might be an electric bath, or\n" .string "a bubble bath, or even a lava bath…$" -LavaridgeTown_Text_HotSpringsClaims: @ 81EB092 +LavaridgeTown_Text_HotSpringsClaims: .string "They're claiming that these hot springs\n" .string "are good for calming nervous tension,\l" .string "relieving aching muscles, solving\l" .string "romantic problems, and attracting\l" .string "money…$" -LavaridgeTown_Text_TownSign: @ 81EB12B +LavaridgeTown_Text_TownSign: .string "LAVARIDGE TOWN\p" .string "“POKéMON CENTER HOT SPRINGS\n" .string "An excellent place for relaxing!”$" -LavaridgeTown_Text_GymSign: @ 81EB178 +LavaridgeTown_Text_GymSign: .string "LAVARIDGE TOWN POKéMON GYM\n" .string "LEADER: FLANNERY\l" .string "“One with a fiery passion that burns!”$" -LavaridgeTown_Text_HerbShopSign: @ 81EB1CB +LavaridgeTown_Text_HerbShopSign: .string "POKéMON HERB SHOP\n" .string "“Bitter taste--better cure!”$" diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc index df95a0b4b8..608f32e24c 100644 --- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc @@ -3,17 +3,17 @@ .set LOCALID_AXLE, 4 .set LOCALID_DANIELLE, 5 -LavaridgeTown_Gym_1F_MapScripts:: @ 81FE6F4 +LavaridgeTown_Gym_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LavaridgeTown_Gym_1F_OnTransition .byte 0 -LavaridgeTown_Gym_1F_OnTransition: @ 81FE6FA +LavaridgeTown_Gym_1F_OnTransition: call LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars - call LavaridgeTown_Gym_1F_EventScript_CheckHideTrainers + call LavaridgeTown_Gym_1F_EventScript_CheckBuryTrainers end @ Unclear where/if these temp vars are getting checked -LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars:: @ 81FE705 +LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars:: setvar VAR_TEMP_B, 0 setvar VAR_TEMP_C, 0 setvar VAR_TEMP_D, 0 @@ -21,34 +21,34 @@ LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars:: @ 81FE705 setvar VAR_TEMP_F, 0 goto_if_defeated TRAINER_COLE LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar setvar VAR_TEMP_B, 1 -LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar:: @ 81FE72C +LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar:: goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_SetAxleTempVar setvar VAR_TEMP_C, 1 -LavaridgeTown_Gym_1F_EventScript_SetAxleTempVar:: @ 81FE73A +LavaridgeTown_Gym_1F_EventScript_SetAxleTempVar:: goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_SetDanielleTempVar setvar VAR_TEMP_D, 1 -LavaridgeTown_Gym_1F_EventScript_SetDanielleTempVar:: @ 81FE748 +LavaridgeTown_Gym_1F_EventScript_SetDanielleTempVar:: goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndSetTrainerTempVars setvar VAR_TEMP_E, 1 -LavaridgeTown_Gym_1F_EventScript_EndSetTrainerTempVars:: @ 81FE756 +LavaridgeTown_Gym_1F_EventScript_EndSetTrainerTempVars:: return -LavaridgeTown_Gym_1F_EventScript_CheckHideTrainers:: @ 81FE757 - goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_CheckHideGerald - setobjectmovementtype LOCALID_COLE, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_1F_EventScript_CheckHideGerald:: @ 81FE764 - goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_CheckHideAxle - setobjectmovementtype LOCALID_GERALD, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_1F_EventScript_CheckHideAxle:: @ 81FE771 - goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle - setobjectmovementtype LOCALID_AXLE, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle:: @ 81FE77E - goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers - setobjectmovementtype LOCALID_DANIELLE, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers:: @ 81FE78B +LavaridgeTown_Gym_1F_EventScript_CheckBuryTrainers:: + goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_CheckBuryGerald + setobjectmovementtype LOCALID_COLE, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_1F_EventScript_CheckBuryGerald:: + goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_CheckBuryAxle + setobjectmovementtype LOCALID_GERALD, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_1F_EventScript_CheckBuryAxle:: + goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_CheckBuryDanielle + setobjectmovementtype LOCALID_AXLE, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_1F_EventScript_CheckBuryDanielle:: + goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndCheckBuryTrainers + setobjectmovementtype LOCALID_DANIELLE, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_1F_EventScript_EndCheckBuryTrainers:: return -LavaridgeTown_Gym_1F_EventScript_Flannery:: @ 81FE78C +LavaridgeTown_Gym_1F_EventScript_Flannery:: trainerbattle_single TRAINER_FLANNERY_1, LavaridgeTown_Gym_1F_Text_FlanneryIntro, LavaridgeTown_Gym_1F_Text_FlanneryDefeat, LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -58,7 +58,7 @@ LavaridgeTown_Gym_1F_EventScript_Flannery:: @ 81FE78C release end -LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated:: @ 81FE7C1 +LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated:: message LavaridgeTown_Gym_1F_Text_ReceivedHeatBadge waitmessage call Common_EventScript_PlayGymBadgeFanfare @@ -85,7 +85,7 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated:: @ 81FE7C1 release end -LavaridgeTown_Gym_1F_EventScript_GiveOverheat2:: @ 81FE81D +LavaridgeTown_Gym_1F_EventScript_GiveOverheat2:: giveitem ITEM_TM50 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -94,7 +94,7 @@ LavaridgeTown_Gym_1F_EventScript_GiveOverheat2:: @ 81FE81D release end -LavaridgeTown_Gym_1F_EventScript_GiveOverheat:: @ 81FE841 +LavaridgeTown_Gym_1F_EventScript_GiveOverheat:: giveitem ITEM_TM50 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_BagIsFull @@ -102,17 +102,17 @@ LavaridgeTown_Gym_1F_EventScript_GiveOverheat:: @ 81FE841 setflag FLAG_RECEIVED_TM50 return -LavaridgeTown_Gym_1F_EventScript_FlanneryRematch:: @ 81FE864 +LavaridgeTown_Gym_1F_EventScript_FlanneryRematch:: trainerbattle_rematch_double TRAINER_FLANNERY_1, LavaridgeTown_Gym_1F_Text_FlanneryPreRematch, LavaridgeTown_Gym_1F_Text_FlanneryRematchDefeat, LavaridgeTown_Gym_1F_Text_FlanneryRematchNeedTwoMons msgbox LavaridgeTown_Gym_1F_Text_FlanneryPostRematch, MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_1F_EventScript_Cole:: @ 81FE87F +LavaridgeTown_Gym_1F_EventScript_Cole:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_COLE, LOCALID_COLE, LavaridgeTown_Gym_1F_Text_ColeIntro, LavaridgeTown_Gym_1F_Text_ColeDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_1F_Text_ColePostBattle MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_EventScript_CheckTrainerScript:: @ 81FE89A +LavaridgeTown_Gym_EventScript_CheckTrainerScript:: call LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars release special ShouldTryGetTrainerScript @@ -120,42 +120,42 @@ LavaridgeTown_Gym_EventScript_CheckTrainerScript:: @ 81FE89A goto_if_eq EventScript_GotoTrainerScript end -LavaridgeTown_Gym_1F_EventScript_Axle:: @ 81FE8AF +LavaridgeTown_Gym_1F_EventScript_Axle:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_AXLE, LOCALID_AXLE, LavaridgeTown_Gym_1F_Text_AxleIntro, LavaridgeTown_Gym_1F_Text_AxleDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_1F_Text_AxlePostBattle, MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_B1F_EventScript_Keegan:: @ 81FE8CA +LavaridgeTown_Gym_B1F_EventScript_Keegan:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_KEEGAN, LOCALID_KEEGAN, LavaridgeTown_Gym_B1F_Text_KeeganIntro, LavaridgeTown_Gym_B1F_Text_KeeganDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_B1F_Text_KeeganPostBattle, MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_1F_EventScript_Danielle:: @ 81FE8E5 +LavaridgeTown_Gym_1F_EventScript_Danielle:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_DANIELLE, LOCALID_DANIELLE, LavaridgeTown_Gym_1F_Text_DanielleIntro, LavaridgeTown_Gym_1F_Text_DanielleDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_1F_Text_DaniellePostBattle, MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_1F_EventScript_Gerald:: @ 81FE900 +LavaridgeTown_Gym_1F_EventScript_Gerald:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_GERALD, LOCALID_GERALD, LavaridgeTown_Gym_1F_Text_GeraldIntro, LavaridgeTown_Gym_1F_Text_GeraldDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_1F_Text_GeraldPostBattle, MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_B1F_EventScript_Jace:: @ 81FE91B +LavaridgeTown_Gym_B1F_EventScript_Jace:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_JACE, LOCALID_JACE, LavaridgeTown_Gym_B1F_Text_JaceIntro, LavaridgeTown_Gym_B1F_Text_JaceDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_B1F_Text_JacePostBattle, MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_B1F_EventScript_Jeff:: @ 81FE936 +LavaridgeTown_Gym_B1F_EventScript_Jeff:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_JEFF, LOCALID_JEFF, LavaridgeTown_Gym_B1F_Text_JeffIntro, LavaridgeTown_Gym_B1F_Text_JeffDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_B1F_Text_JeffPostBattle, MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_B1F_EventScript_Eli:: @ 81FE951 +LavaridgeTown_Gym_B1F_EventScript_Eli:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_ELI, LOCALID_ELI, LavaridgeTown_Gym_B1F_Text_EliIntro, LavaridgeTown_Gym_B1F_Text_EliDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_B1F_Text_EliPostBattle, MSGBOX_AUTOCLOSE end -LavaridgeTown_Gym_1F_EventScript_GymGuide:: @ 81FE96C +LavaridgeTown_Gym_1F_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_LAVARIDGE_GYM, LavaridgeTown_Gym_1F_EventScript_GymGuidePostVictory @@ -163,34 +163,34 @@ LavaridgeTown_Gym_1F_EventScript_GymGuide:: @ 81FE96C release end -LavaridgeTown_Gym_1F_EventScript_GymGuidePostVictory:: @ 81FE981 +LavaridgeTown_Gym_1F_EventScript_GymGuidePostVictory:: msgbox LavaridgeTown_Gym_1F_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end -LavaridgeTown_Gym_1F_EventScript_LeftGymStatue:: @ 81FE98B +LavaridgeTown_Gym_1F_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE04_GET, LavaridgeTown_Gym_1F_EventScript_GymStatueCertified goto LavaridgeTown_Gym_1F_EventScript_GymStatue end -LavaridgeTown_Gym_1F_EventScript_RightGymStatue:: @ 81FE99B +LavaridgeTown_Gym_1F_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE04_GET, LavaridgeTown_Gym_1F_EventScript_GymStatueCertified goto LavaridgeTown_Gym_1F_EventScript_GymStatue end -LavaridgeTown_Gym_1F_EventScript_GymStatueCertified:: @ 81FE9AB +LavaridgeTown_Gym_1F_EventScript_GymStatueCertified:: msgbox LavaridgeTown_Gym_1F_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end -LavaridgeTown_Gym_1F_EventScript_GymStatue:: @ 81FE9B5 +LavaridgeTown_Gym_1F_EventScript_GymStatue:: msgbox LavaridgeTown_Gym_1F_Text_GymStatue, MSGBOX_DEFAULT releaseall end -LavaridgeTown_Gym_1F_Text_GymGuideAdvice: @ 81FE9BF +LavaridgeTown_Gym_1F_Text_GymGuideAdvice: .string "Hey, how's it going, CHAMPION-\n" .string "bound {PLAYER}?\p" .string "LAVARIDGE's GYM LEADER FLANNERY\n" @@ -201,35 +201,35 @@ LavaridgeTown_Gym_1F_Text_GymGuideAdvice: @ 81FE9BF .string "Hose her down with water and then\l" .string "go for it!$" -LavaridgeTown_Gym_1F_Text_GymGuidePostVictory: @ 81FEAB8 +LavaridgeTown_Gym_1F_Text_GymGuidePostVictory: .string "Yow! That was a scorching-hot battle!$" -LavaridgeTown_Gym_1F_Text_ColeIntro: @ 81FEADE +LavaridgeTown_Gym_1F_Text_ColeIntro: .string "Owowowowow!\n" .string "Yikes, it's hot!$" -LavaridgeTown_Gym_1F_Text_ColeDefeat: @ 81FEAFB +LavaridgeTown_Gym_1F_Text_ColeDefeat: .string "I'm blinded by sweat in my eyes…$" -LavaridgeTown_Gym_1F_Text_ColePostBattle: @ 81FEB1C +LavaridgeTown_Gym_1F_Text_ColePostBattle: .string "Being buried in hot sand promotes\n" .string "circulation.\p" .string "It's effective for healing pain in\n" .string "your joints.$" -LavaridgeTown_Gym_1F_Text_AxleIntro: @ 81FEB7B +LavaridgeTown_Gym_1F_Text_AxleIntro: .string "I'm trying to relieve my stress.\n" .string "Don't come along and stress me out!$" -LavaridgeTown_Gym_1F_Text_AxleDefeat: @ 81FEBC0 +LavaridgeTown_Gym_1F_Text_AxleDefeat: .string "I hope FLANNERY flames you good!$" -LavaridgeTown_Gym_1F_Text_AxlePostBattle: @ 81FEBE1 +LavaridgeTown_Gym_1F_Text_AxlePostBattle: .string "Haaah… Whew…\p" .string "If you spend too much time buried in\n" .string "hot sand, it tuckers you out…$" -LavaridgeTown_Gym_B1F_Text_KeeganIntro: @ 81FEC31 +LavaridgeTown_Gym_B1F_Text_KeeganIntro: .string "You must be getting tired by now.\n" .string "You'd like to rest in the hot sand,\l" .string "wouldn't you?\p" @@ -237,78 +237,78 @@ LavaridgeTown_Gym_B1F_Text_KeeganIntro: @ 81FEC31 .string "your willpower is an important ability\l" .string "for all TRAINERS.$" -LavaridgeTown_Gym_B1F_Text_KeeganDefeat: @ 81FECE3 +LavaridgeTown_Gym_B1F_Text_KeeganDefeat: .string "Play with fire, and be burned…$" -LavaridgeTown_Gym_B1F_Text_KeeganPostBattle: @ 81FED02 +LavaridgeTown_Gym_B1F_Text_KeeganPostBattle: .string "Your skill is real…\n" .string "But our LEADER FLANNERY is strong.\p" .string "If you don't watch yourself, you'll be\n" .string "burned seriously.$" -LavaridgeTown_Gym_1F_Text_GeraldIntro: @ 81FED72 +LavaridgeTown_Gym_1F_Text_GeraldIntro: .string "Can your POKéMON withstand\n" .string "392-degree heat?$" -LavaridgeTown_Gym_1F_Text_GeraldDefeat: @ 81FED9E +LavaridgeTown_Gym_1F_Text_GeraldDefeat: .string "It didn't burn hotly enough…$" -LavaridgeTown_Gym_1F_Text_GeraldPostBattle: @ 81FEDBB +LavaridgeTown_Gym_1F_Text_GeraldPostBattle: .string "The temperature of magma is\n" .string "392 degrees.\p" .string "Your POKéMON beat me, so they should\n" .string "easily survive in magma.$" -LavaridgeTown_Gym_1F_Text_DanielleIntro: @ 81FEE22 +LavaridgeTown_Gym_1F_Text_DanielleIntro: .string "Um…\n" .string "Okay, I'll battle with you.$" -LavaridgeTown_Gym_1F_Text_DanielleDefeat: @ 81FEE42 +LavaridgeTown_Gym_1F_Text_DanielleDefeat: .string "Oh, but you're too strong.$" -LavaridgeTown_Gym_1F_Text_DaniellePostBattle: @ 81FEE5D +LavaridgeTown_Gym_1F_Text_DaniellePostBattle: .string "I'm going to be a pretty and strong\n" .string "TRAINER just like FLANNERY.$" -LavaridgeTown_Gym_B1F_Text_JaceIntro: @ 81FEE9D +LavaridgeTown_Gym_B1F_Text_JaceIntro: .string "Come on, get with it!\n" .string "Let's go before my feelings cool!$" -LavaridgeTown_Gym_B1F_Text_JaceDefeat: @ 81FEED5 +LavaridgeTown_Gym_B1F_Text_JaceDefeat: .string "It's so hot, and yet my heart is\n" .string "clutched by ice…$" -LavaridgeTown_Gym_B1F_Text_JacePostBattle: @ 81FEF07 +LavaridgeTown_Gym_B1F_Text_JacePostBattle: .string "The way the battling spirit burns\n" .string "within you, you may stand a chance\l" .string "against our LEADER.$" -LavaridgeTown_Gym_B1F_Text_JeffIntro: @ 81FEF60 +LavaridgeTown_Gym_B1F_Text_JeffIntro: .string "See how the flames blaze wildly?\n" .string "They flare in anticipation of my win!$" -LavaridgeTown_Gym_B1F_Text_JeffDefeat: @ 81FEFA7 +LavaridgeTown_Gym_B1F_Text_JeffDefeat: .string "Something didn't go right.$" -LavaridgeTown_Gym_B1F_Text_JeffPostBattle: @ 81FEFC2 +LavaridgeTown_Gym_B1F_Text_JeffPostBattle: .string "Well, so what? I say so what?\n" .string "I can walk on hot coals barefoot!\p" .string "…Don't even think about trying it!$" -LavaridgeTown_Gym_B1F_Text_EliIntro: @ 81FF025 +LavaridgeTown_Gym_B1F_Text_EliIntro: .string "As much as I love mountains,\n" .string "I especially love volcanoes.$" -LavaridgeTown_Gym_B1F_Text_EliDefeat: @ 81FF05F +LavaridgeTown_Gym_B1F_Text_EliDefeat: .string "Well, it seems to me I lost without\n" .string "ever being in control.$" -LavaridgeTown_Gym_B1F_Text_EliPostBattle: @ 81FF09A +LavaridgeTown_Gym_B1F_Text_EliPostBattle: .string "I stay here because I became a fan\n" .string "of FLANNERY's power.\p" .string "Hehehehe.$" -LavaridgeTown_Gym_1F_Text_FlanneryIntro: @ 81FF0DC +LavaridgeTown_Gym_1F_Text_FlanneryIntro: .string "Welcome… No, wait.\p" .string "Puny TRAINER, how good to see you've\n" .string "made it here!\p" @@ -323,7 +323,7 @@ LavaridgeTown_Gym_1F_Text_FlanneryIntro: @ 81FF0DC .string "father, I shall, uh…demonstrate the\l" .string "hot moves we have honed on this land!$" -LavaridgeTown_Gym_1F_Text_FlanneryDefeat: @ 81FF233 +LavaridgeTown_Gym_1F_Text_FlanneryDefeat: .string "Oh…\n" .string "I guess I was trying too hard…\p" .string "I… I've only recently become\n" @@ -335,11 +335,11 @@ LavaridgeTown_Gym_1F_Text_FlanneryDefeat: @ 81FF233 .string "Thanks for teaching me that.\n" .string "For that, you deserve this.$" -LavaridgeTown_Gym_1F_Text_ReceivedHeatBadge: @ 81FF32F +LavaridgeTown_Gym_1F_Text_ReceivedHeatBadge: .string "{PLAYER} received the HEAT BADGE\n" .string "from FLANNERY.$" -LavaridgeTown_Gym_1F_Text_ExplainHeatBadgeTakeThis: @ 81FF359 +LavaridgeTown_Gym_1F_Text_ExplainHeatBadgeTakeThis: .string "If you have a HEAT BADGE, all POKéMON\n" .string "up to Level 50, even those you get in\l" .string "trades from other people, will obey\l" @@ -349,7 +349,7 @@ LavaridgeTown_Gym_1F_Text_ExplainHeatBadgeTakeThis: @ 81FF359 .string "This is a token of my appreciation.\n" .string "Don't be shy about taking it!$" -LavaridgeTown_Gym_1F_Text_ExplainOverheat: @ 81FF45C +LavaridgeTown_Gym_1F_Text_ExplainOverheat: .string "That TM50 contains OVERHEAT.\p" .string "That move inflicts serious damage on\n" .string "the opponent.\p" @@ -357,24 +357,24 @@ LavaridgeTown_Gym_1F_Text_ExplainOverheat: @ 81FF45C .string "of the POKéMON using it. It might not\l" .string "be suitable for longer battles.$" -LavaridgeTown_Gym_1F_Text_RegisteredFlannery: @ 81FF517 +LavaridgeTown_Gym_1F_Text_RegisteredFlannery: .string "Registered GYM LEADER FLANNERY\n" .string "in the POKéNAV.$" -LavaridgeTown_Gym_1F_Text_FlanneryPostBattle: @ 81FF546 +LavaridgeTown_Gym_1F_Text_FlanneryPostBattle: .string "Your power reminds me of someone…\p" .string "Oh! I know! You battle like NORMAN,\n" .string "the GYM LEADER of PETALBURG.$" -LavaridgeTown_Gym_1F_Text_GymStatue: @ 81FF5A9 +LavaridgeTown_Gym_1F_Text_GymStatue: .string "LAVARIDGE TOWN POKéMON GYM$" -LavaridgeTown_Gym_1F_Text_GymStatueCertified: @ 81FF5C4 +LavaridgeTown_Gym_1F_Text_GymStatueCertified: .string "LAVARIDGE TOWN POKéMON GYM\p" .string "FLANNERY'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" -LavaridgeTown_Gym_1F_Text_FlanneryPreRematch: @ 81FF601 +LavaridgeTown_Gym_1F_Text_FlanneryPreRematch: .string "FLANNERY: Losing a battle isn't going\n" .string "to deflate me.\p" .string "I love POKéMON.\n" @@ -383,11 +383,11 @@ LavaridgeTown_Gym_1F_Text_FlanneryPreRematch: @ 81FF601 .string "Let's exchange superhot moves\n" .string "in another battle!$" -LavaridgeTown_Gym_1F_Text_FlanneryRematchDefeat: @ 81FF69F +LavaridgeTown_Gym_1F_Text_FlanneryRematchDefeat: .string "Whew!\n" .string "On the verge of eruption!$" -LavaridgeTown_Gym_1F_Text_FlanneryPostRematch: @ 81FF6BF +LavaridgeTown_Gym_1F_Text_FlanneryPostRematch: .string "FLANNERY: I lost the match,\n" .string "but I'm completely satisfied.\p" .string "It's not often I get to enjoy a battle\n" @@ -395,7 +395,7 @@ LavaridgeTown_Gym_1F_Text_FlanneryPostRematch: @ 81FF6BF .string "Let's have another one like this\n" .string "again sometime!$" -LavaridgeTown_Gym_1F_Text_FlanneryRematchNeedTwoMons: @ 81FF75E +LavaridgeTown_Gym_1F_Text_FlanneryRematchNeedTwoMons: .string "FLANNERY: Losing a battle isn't going\n" .string "to deflate me.\p" .string "I love POKéMON.\n" diff --git a/data/maps/LavaridgeTown_Gym_B1F/scripts.inc b/data/maps/LavaridgeTown_Gym_B1F/scripts.inc index aad7c47787..3a9165bb16 100644 --- a/data/maps/LavaridgeTown_Gym_B1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_B1F/scripts.inc @@ -3,47 +3,47 @@ .equ LOCALID_JEFF, 3 .equ LOCALID_ELI, 4 -LavaridgeTown_Gym_B1F_MapScripts:: @ 81FF87E +LavaridgeTown_Gym_B1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LavaridgeTown_Gym_B1F_OnTransition .byte 0 -LavaridgeTown_Gym_B1F_OnTransition: @ 81FF884 +LavaridgeTown_Gym_B1F_OnTransition: call LavaridgeTown_Gym_B1F_EventScript_SetTrainerTempVars - call LavaridgeTown_Gym_B1F_EventScript_CheckHideTrainers + call LavaridgeTown_Gym_B1F_EventScript_CheckBuryTrainers end @ Unclear where/if these temp vars are getting checked -LavaridgeTown_Gym_B1F_EventScript_SetTrainerTempVars:: @ 81FF88F +LavaridgeTown_Gym_B1F_EventScript_SetTrainerTempVars:: setvar VAR_TEMP_7, 0 setvar VAR_TEMP_8, 0 setvar VAR_TEMP_9, 0 setvar VAR_TEMP_A, 0 goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_SetJaceTempVar setvar VAR_TEMP_7, 1 -LavaridgeTown_Gym_B1F_EventScript_SetJaceTempVar:: @ 81FF8B1 +LavaridgeTown_Gym_B1F_EventScript_SetJaceTempVar:: goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_SetJeffTempVar setvar VAR_TEMP_8, 1 -LavaridgeTown_Gym_B1F_EventScript_SetJeffTempVar:: @ 81FF8BF +LavaridgeTown_Gym_B1F_EventScript_SetJeffTempVar:: goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_SetEliTempVar setvar VAR_TEMP_9, 1 -LavaridgeTown_Gym_B1F_EventScript_SetEliTempVar:: @ 81FF8CD +LavaridgeTown_Gym_B1F_EventScript_SetEliTempVar:: goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndSetTrainerTempVars setvar VAR_TEMP_A, 1 -LavaridgeTown_Gym_B1F_EventScript_EndSetTrainerTempVars:: @ 81FF8DB +LavaridgeTown_Gym_B1F_EventScript_EndSetTrainerTempVars:: return -LavaridgeTown_Gym_B1F_EventScript_CheckHideTrainers:: @ 81FF8DC - goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_CheckHideJace - setobjectmovementtype LOCALID_KEEGAN, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_B1F_EventScript_CheckHideJace:: @ 81FF8E9 - goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff - setobjectmovementtype LOCALID_JACE, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff:: @ 81FF8F6 - goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_CheckHideEli - setobjectmovementtype LOCALID_JEFF, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_B1F_EventScript_CheckHideEli:: @ 81FF903 - goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers - setobjectmovementtype LOCALID_ELI, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers:: @ 81FF910 +LavaridgeTown_Gym_B1F_EventScript_CheckBuryTrainers:: + goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_CheckBuryJace + setobjectmovementtype LOCALID_KEEGAN, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_B1F_EventScript_CheckBuryJace:: + goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_CheckBuryJeff + setobjectmovementtype LOCALID_JACE, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_B1F_EventScript_CheckBuryJeff:: + goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_CheckBuryEli + setobjectmovementtype LOCALID_JEFF, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_B1F_EventScript_CheckBuryEli:: + goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndCheckBuryTrainers + setobjectmovementtype LOCALID_ELI, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_B1F_EventScript_EndCheckBuryTrainers:: return diff --git a/data/maps/LavaridgeTown_HerbShop/scripts.inc b/data/maps/LavaridgeTown_HerbShop/scripts.inc index d98d6ef49f..2637f5c09d 100644 --- a/data/maps/LavaridgeTown_HerbShop/scripts.inc +++ b/data/maps/LavaridgeTown_HerbShop/scripts.inc @@ -1,7 +1,7 @@ -LavaridgeTown_HerbShop_MapScripts:: @ 81FE4D6 +LavaridgeTown_HerbShop_MapScripts:: .byte 0 -LavaridgeTown_HerbShop_EventScript_Clerk:: @ 81FE4D7 +LavaridgeTown_HerbShop_EventScript_Clerk:: lock faceplayer message LavaridgeTown_HerbShop_Text_WelcomeToHerbShop @@ -12,7 +12,7 @@ LavaridgeTown_HerbShop_EventScript_Clerk:: @ 81FE4D7 end .align 2 -LavaridgeTown_HerbShop_Pokemart: @ 81FE4F0 +LavaridgeTown_HerbShop_Pokemart: .2byte ITEM_ENERGY_POWDER .2byte ITEM_ENERGY_ROOT .2byte ITEM_HEAL_POWDER @@ -21,11 +21,11 @@ LavaridgeTown_HerbShop_Pokemart: @ 81FE4F0 release end -LavaridgeTown_HerbShop_EventScript_ExpertM:: @ 81FE4FC +LavaridgeTown_HerbShop_EventScript_ExpertM:: msgbox LavaridgeTown_HerbShop_Text_HerbalMedicineWorksButMonWillDislike, MSGBOX_NPC end -LavaridgeTown_HerbShop_EventScript_OldMan:: @ 81FE505 +LavaridgeTown_HerbShop_EventScript_OldMan:: lock faceplayer goto_if_set FLAG_RECEIVED_CHARCOAL, LavaridgeTown_HerbShop_EventScript_ExplainCharcoal @@ -37,22 +37,22 @@ LavaridgeTown_HerbShop_EventScript_OldMan:: @ 81FE505 release end -LavaridgeTown_HerbShop_EventScript_ExplainCharcoal:: @ 81FE534 +LavaridgeTown_HerbShop_EventScript_ExplainCharcoal:: msgbox LavaridgeTown_HerbShop_Text_ExplainCharcoal, MSGBOX_DEFAULT release end -LavaridgeTown_HerbShop_Text_WelcomeToHerbShop: @ 81FE53E +LavaridgeTown_HerbShop_Text_WelcomeToHerbShop: .string "Welcome to the HERB SHOP, home of\n" .string "effective and inexpensive medicine!$" -LavaridgeTown_HerbShop_Text_YouveComeToLookAtHerbalMedicine: @ 81FE584 +LavaridgeTown_HerbShop_Text_YouveComeToLookAtHerbalMedicine: .string "You've come to look at herbal medicine\n" .string "in LAVARIDGE?\p" .string "That's rather commendable.\p" .string "I like you! Take this!$" -LavaridgeTown_HerbShop_Text_ExplainCharcoal: @ 81FE5EB +LavaridgeTown_HerbShop_Text_ExplainCharcoal: .string "That CHARCOAL I gave you, it's used\n" .string "for making herbal medicine.\p" .string "It also does wonders when held by\n" @@ -60,7 +60,7 @@ LavaridgeTown_HerbShop_Text_ExplainCharcoal: @ 81FE5EB .string "It intensifies the power of FIRE-type\n" .string "moves.$" -LavaridgeTown_HerbShop_Text_HerbalMedicineWorksButMonWillDislike: @ 81FE685 +LavaridgeTown_HerbShop_Text_HerbalMedicineWorksButMonWillDislike: .string "Herbal medicine works impressively well.\n" .string "But your POKéMON will dislike you for it.\l" .string "It must be horribly bitter!$" diff --git a/data/maps/LavaridgeTown_House/scripts.inc b/data/maps/LavaridgeTown_House/scripts.inc index 6db5f9ee52..58fd8ecb25 100644 --- a/data/maps/LavaridgeTown_House/scripts.inc +++ b/data/maps/LavaridgeTown_House/scripts.inc @@ -1,11 +1,11 @@ -LavaridgeTown_House_MapScripts:: @ 81FF911 +LavaridgeTown_House_MapScripts:: .byte 0 -LavaridgeTown_House_EventScript_OldMan:: @ 81FF912 +LavaridgeTown_House_EventScript_OldMan:: msgbox LavaridgeTown_House_Text_WifeWarmingEggInHotSprings, MSGBOX_NPC end -LavaridgeTown_House_EventScript_Zigzagoon:: @ 81FF91B +LavaridgeTown_House_EventScript_Zigzagoon:: lock faceplayer waitse @@ -15,12 +15,12 @@ LavaridgeTown_House_EventScript_Zigzagoon:: @ 81FF91B release end -LavaridgeTown_House_Text_WifeWarmingEggInHotSprings: @ 81FF92E +LavaridgeTown_House_Text_WifeWarmingEggInHotSprings: .string "My wife's warming an EGG in the hot\n" .string "springs. This is what she told me.\p" .string "She left two POKéMON with the DAY CARE.\n" .string "And they discovered that EGG!$" -LavaridgeTown_House_Text_Zigzagoon: @ 81FF9BB +LavaridgeTown_House_Text_Zigzagoon: .string "ZIGZAGOON: Pshoo!$" diff --git a/data/maps/LavaridgeTown_Mart/scripts.inc b/data/maps/LavaridgeTown_Mart/scripts.inc index b5b3cb6f13..001df31401 100644 --- a/data/maps/LavaridgeTown_Mart/scripts.inc +++ b/data/maps/LavaridgeTown_Mart/scripts.inc @@ -1,7 +1,7 @@ -LavaridgeTown_Mart_MapScripts:: @ 81FF9CD +LavaridgeTown_Mart_MapScripts:: .byte 0 -LavaridgeTown_Mart_EventScript_Clerk:: @ 81FF9CE +LavaridgeTown_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -12,7 +12,7 @@ LavaridgeTown_Mart_EventScript_Clerk:: @ 81FF9CE end .align 2 -LavaridgeTown_Mart_Pokemart: @ 81FF9E8 +LavaridgeTown_Mart_Pokemart: .2byte ITEM_GREAT_BALL .2byte ITEM_SUPER_POTION .2byte ITEM_ANTIDOTE @@ -26,21 +26,21 @@ LavaridgeTown_Mart_Pokemart: @ 81FF9E8 release end -LavaridgeTown_Mart_EventScript_ExpertM:: @ 81FF9FE +LavaridgeTown_Mart_EventScript_ExpertM:: msgbox LavaridgeTown_Mart_Text_XSpeedFirstStrike, MSGBOX_NPC end -LavaridgeTown_Mart_EventScript_OldWoman:: @ 81FFA07 +LavaridgeTown_Mart_EventScript_OldWoman:: msgbox LavaridgeTown_Mart_Text_LocalSpecialtyOnMtChimney, MSGBOX_NPC end -LavaridgeTown_Mart_Text_XSpeedFirstStrike: @ 81FFA10 +LavaridgeTown_Mart_Text_XSpeedFirstStrike: .string "Use X SPEED to add to a POKéMON's\n" .string "SPEED in battle.\p" .string "That will help it get in the first\n" .string "strike--a decided advantage!$" -LavaridgeTown_Mart_Text_LocalSpecialtyOnMtChimney: @ 81FFA83 +LavaridgeTown_Mart_Text_LocalSpecialtyOnMtChimney: .string "On MT. CHIMNEY's peak, there's a local\n" .string "specialty that you can buy only there.\p" .string "Give it to a POKéMON--it will be elated.$" diff --git a/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc b/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc index 0b596ba5bc..9ff72aa812 100644 --- a/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc @@ -1,16 +1,16 @@ .set LOCALID_NURSE, 1 -LavaridgeTown_PokemonCenter_1F_MapScripts:: @ 81FFAFA +LavaridgeTown_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LavaridgeTown_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -LavaridgeTown_PokemonCenter_1F_OnTransition: @ 81FFB05 +LavaridgeTown_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_LAVARIDGE_TOWN call Common_EventScript_UpdateBrineyLocation end -LavaridgeTown_PokemonCenter_1F_EventScript_Nurse:: @ 81FFB0E +LavaridgeTown_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -18,31 +18,31 @@ LavaridgeTown_PokemonCenter_1F_EventScript_Nurse:: @ 81FFB0E release end -LavaridgeTown_PokemonCenter_1F_EventScript_Youngster:: @ 81FFB1C +LavaridgeTown_PokemonCenter_1F_EventScript_Youngster:: msgbox LavaridgeTown_PokemonCenter_1F_Text_HotSpringCanInvigorate, MSGBOX_NPC end -LavaridgeTown_PokemonCenter_1F_EventScript_Woman:: @ 81FFB25 +LavaridgeTown_PokemonCenter_1F_EventScript_Woman:: msgbox LavaridgeTown_PokemonCenter_1F_Text_TrainersPokemonSpendTimeTogether, MSGBOX_NPC end -LavaridgeTown_PokemonCenter_1F_EventScript_Gentleman:: @ 81FFB2E +LavaridgeTown_PokemonCenter_1F_EventScript_Gentleman:: msgbox LavaridgeTown_PokemonCenter_1F_Text_TrainersShouldRestToo, MSGBOX_NPC end -LavaridgeTown_PokemonCenter_1F_Text_TrainersPokemonSpendTimeTogether: @ 81FFB37 +LavaridgeTown_PokemonCenter_1F_Text_TrainersPokemonSpendTimeTogether: .string "I think POKéMON get closer to their\n" .string "TRAINERS if they spend time together.\p" .string "The longer the better.\n" .string "That's what I think.$" -LavaridgeTown_PokemonCenter_1F_Text_HotSpringCanInvigorate: @ 81FFBAD +LavaridgeTown_PokemonCenter_1F_Text_HotSpringCanInvigorate: .string "It's sort of magical how just sitting\n" .string "in a hot-spring pool can invigorate.\p" .string "I wish I could let my POKéMON\n" .string "soak, too.$" -LavaridgeTown_PokemonCenter_1F_Text_TrainersShouldRestToo: @ 81FFC21 +LavaridgeTown_PokemonCenter_1F_Text_TrainersShouldRestToo: .string "Hohoho! Hey, kid, you can reach\n" .string "the hot springs from here.\p" .string "If POKéMON are getting rest, so too\n" diff --git a/data/maps/LavaridgeTown_PokemonCenter_2F/scripts.inc b/data/maps/LavaridgeTown_PokemonCenter_2F/scripts.inc index 633f91e95f..d61aa0fe75 100644 --- a/data/maps/LavaridgeTown_PokemonCenter_2F/scripts.inc +++ b/data/maps/LavaridgeTown_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -LavaridgeTown_PokemonCenter_2F_MapScripts:: @ 81FFC97 +LavaridgeTown_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ LavaridgeTown_PokemonCenter_2F_MapScripts:: @ 81FFC97 .byte 0 @ The below 3 are unused and leftover from RS -LavaridgeTown_PokemonCenter_2F_EventScript_Colosseum:: @ 81FFCAC +LavaridgeTown_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -LavaridgeTown_PokemonCenter_2F_EventScript_TradeCenter:: @ 81FFCB2 +LavaridgeTown_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -LavaridgeTown_PokemonCenter_2F_EventScript_RecordCorner:: @ 81FFCB8 +LavaridgeTown_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc index 0c94bce626..048cabacbc 100644 --- a/data/maps/LilycoveCity/scripts.inc +++ b/data/maps/LilycoveCity/scripts.inc @@ -1,12 +1,12 @@ .set LOCALID_WOMAN_1, 19 .set LOCALID_MAN_1, 20 -LilycoveCity_MapScripts:: @ 81E2B3C +LilycoveCity_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LilycoveCity_OnTransition map_script MAP_SCRIPT_ON_LOAD, LilycoveCity_OnLoad .byte 0 -LilycoveCity_OnTransition: @ 81E2B47 +LilycoveCity_OnTransition: setflag FLAG_VISITED_LILYCOVE_CITY setvar VAR_CONTEST_HALL_STATE, 0 setflag FLAG_HIDE_LILYCOVE_CONTEST_HALL_REPORTER @@ -14,11 +14,11 @@ LilycoveCity_OnTransition: @ 81E2B47 call Common_EventScript_SetupRivalGfxId end -LilycoveCity_OnLoad: @ 81E2B61 +LilycoveCity_OnLoad: call_if_unset FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, LilycoveCity_EventScript_SetWailmerMetatiles end -LilycoveCity_EventScript_SetWailmerMetatiles:: @ 81E2B6B +LilycoveCity_EventScript_SetWailmerMetatiles:: setmetatile 76, 12, METATILE_Lilycove_Wailmer0, 1 setmetatile 77, 12, METATILE_Lilycove_Wailmer1, 1 setmetatile 76, 13, METATILE_Lilycove_Wailmer2, 1 @@ -33,7 +33,7 @@ LilycoveCity_EventScript_SetWailmerMetatiles:: @ 81E2B6B setmetatile 78, 17, METATILE_Lilycove_Wailmer3, 1 return -LilycoveCity_EventScript_BerryGentleman:: @ 81E2BD8 +LilycoveCity_EventScript_BerryGentleman:: lock faceplayer dotimebasedevents @@ -49,16 +49,16 @@ LilycoveCity_EventScript_BerryGentleman:: @ 81E2BD8 release end -LilycoveCity_EventScript_ReceivedBerry:: @ 81E2C18 +LilycoveCity_EventScript_ReceivedBerry:: msgbox LilycoveCity_Text_PokeblocksSuitPokemon, MSGBOX_DEFAULT release end -LilycoveCity_EventScript_Man3:: @ 81E2C22 +LilycoveCity_EventScript_Man3:: msgbox LilycoveCity_Text_ContestHallInTown, MSGBOX_NPC end -LilycoveCity_EventScript_Girl:: @ 81E2C2B +LilycoveCity_EventScript_Girl:: lock faceplayer goto_if_set FLAG_BADGE07_GET, LilycoveCity_EventScript_GirlAquaGone @@ -66,16 +66,16 @@ LilycoveCity_EventScript_Girl:: @ 81E2C2B release end -LilycoveCity_EventScript_GirlAquaGone:: @ 81E2C40 +LilycoveCity_EventScript_GirlAquaGone:: msgbox LilycoveCity_Text_GoingToMoveDeleterForHMs, MSGBOX_DEFAULT release end -LilycoveCity_EventScript_RichBoy:: @ 81E2C4A +LilycoveCity_EventScript_RichBoy:: msgbox LilycoveCity_Text_ImFromKanto, MSGBOX_NPC end -LilycoveCity_EventScript_Sailor2:: @ 81E2C53 +LilycoveCity_EventScript_Sailor2:: lock faceplayer goto_if_set FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, LilycoveCity_EventScript_Sailor2AquaGone @@ -83,12 +83,12 @@ LilycoveCity_EventScript_Sailor2:: @ 81E2C53 release end -LilycoveCity_EventScript_Sailor2AquaGone:: @ 81E2C68 +LilycoveCity_EventScript_Sailor2AquaGone:: msgbox LilycoveCity_Text_SomeonePuntedTeamAquaOut, MSGBOX_DEFAULT release end -LilycoveCity_EventScript_Woman2:: @ 81E2C72 +LilycoveCity_EventScript_Woman2:: lock faceplayer goto_if_set FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, LilycoveCity_EventScript_Woman2AquaGone @@ -96,24 +96,24 @@ LilycoveCity_EventScript_Woman2:: @ 81E2C72 release end -LilycoveCity_EventScript_Woman2AquaGone:: @ 81E2C87 +LilycoveCity_EventScript_Woman2AquaGone:: msgbox LilycoveCity_Text_MissingPokemonCameBack, MSGBOX_DEFAULT release end -LilycoveCity_EventScript_Man2:: @ 81E2C91 +LilycoveCity_EventScript_Man2:: msgbox LilycoveCity_Text_ImArtDealer, MSGBOX_NPC end -LilycoveCity_EventScript_ExpertM1:: @ 81E2C9A +LilycoveCity_EventScript_ExpertM1:: msgbox LilycoveCity_Text_SeaRemainsForeverYoung, MSGBOX_SIGN end -LilycoveCity_EventScript_ExpertF:: @ 81E2CA3 +LilycoveCity_EventScript_ExpertF:: msgbox LilycoveCity_Text_SixtyYearsAgoHusbandProposed, MSGBOX_SIGN end -LilycoveCity_EventScript_ExpertM2:: @ 81E2CAC +LilycoveCity_EventScript_ExpertM2:: lock faceplayer goto_if_set FLAG_BADGE07_GET, LilycoveCity_EventScript_ExpertM2AquaGone @@ -121,82 +121,82 @@ LilycoveCity_EventScript_ExpertM2:: @ 81E2CAC release end -LilycoveCity_EventScript_ExpertM2AquaGone:: @ 81E2CC1 +LilycoveCity_EventScript_ExpertM2AquaGone:: msgbox LilycoveCity_Text_TeamAquaLotGoneForGood, MSGBOX_DEFAULT release end -LilycoveCity_EventScript_Sailor1:: @ 81E2CCB +LilycoveCity_EventScript_Sailor1:: msgbox LilycoveCity_Text_HeardTowerCalledSkyPillar, MSGBOX_NPC end -LilycoveCity_EventScript_FatMan:: @ 81E2CD4 +LilycoveCity_EventScript_FatMan:: msgbox LilycoveCity_Text_SawTallTowerOnRoute131, MSGBOX_NPC end -LilycoveCity_EventScript_Man1:: @ 81E2CDD +LilycoveCity_EventScript_Man1:: lockall msgbox LilycoveCity_Text_JustArrivedAndSawRarePokemon, MSGBOX_NPC applymovement LOCALID_MAN_1, Common_Movement_FaceOriginalDirection end -LilycoveCity_EventScript_Woman1:: @ 81E2CEE +LilycoveCity_EventScript_Woman1:: lockall msgbox LilycoveCity_Text_HoneymoonVowToSeeRarePokemon, MSGBOX_NPC applymovement LOCALID_WOMAN_1, Common_Movement_FaceOriginalDirection end -LilycoveCity_EventScript_CitySign:: @ 81E2CFF +LilycoveCity_EventScript_CitySign:: msgbox LilycoveCity_Text_CitySign, MSGBOX_SIGN end -LilycoveCity_EventScript_ContestHallSign:: @ 81E2D08 +LilycoveCity_EventScript_ContestHallSign:: msgbox LilycoveCity_Text_ContestHallSign, MSGBOX_SIGN end -LilycoveCity_EventScript_MotelSign:: @ 81E2D11 +LilycoveCity_EventScript_MotelSign:: msgbox LilycoveCity_Text_MotelSign, MSGBOX_SIGN end -LilycoveCity_EventScript_MuseumSign:: @ 81E2D1A +LilycoveCity_EventScript_MuseumSign:: lockall - specialvar VAR_0x8004, CountPlayerContestPaintings + specialvar VAR_0x8004, CountPlayerMuseumPaintings switch VAR_0x8004 case 0, LilycoveCity_EventScript_MuseumSignNoPaintings msgbox LilycoveCity_Text_MuseumSignPlayersExhibit, MSGBOX_DEFAULT releaseall end -LilycoveCity_EventScript_MuseumSignNoPaintings:: @ 81E2D3A +LilycoveCity_EventScript_MuseumSignNoPaintings:: msgbox LilycoveCity_Text_MuseumSign, MSGBOX_DEFAULT releaseall end -LilycoveCity_EventScript_HarborSign:: @ 81E2D44 +LilycoveCity_EventScript_HarborSign:: lockall goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_EventScript_HarborSignFerryReady msgbox LilycoveCity_Text_HarborSignUnderConstruction, MSGBOX_DEFAULT releaseall end -LilycoveCity_EventScript_HarborSignFerryReady:: @ 81E2D58 +LilycoveCity_EventScript_HarborSignFerryReady:: msgbox LilycoveCity_Text_HarborSign, MSGBOX_DEFAULT releaseall end -LilycoveCity_EventScript_TrainerFanClubSign:: @ 81E2D62 +LilycoveCity_EventScript_TrainerFanClubSign:: msgbox LilycoveCity_Text_TrainerFanClubSign, MSGBOX_SIGN end -LilycoveCity_EventScript_DepartmentStoreSign:: @ 81E2D6B +LilycoveCity_EventScript_DepartmentStoreSign:: msgbox LilycoveCity_Text_DepartmentStoreSign, MSGBOX_SIGN end -LilycoveCity_EventScript_MoveDeletersHouseSign:: @ 81E2D74 +LilycoveCity_EventScript_MoveDeletersHouseSign:: msgbox LilycoveCity_Text_MoveDeletersHouseSign, MSGBOX_SIGN end -LilycoveCity_EventScript_WailmerTrainerGrunt:: @ 81E2D7D +LilycoveCity_EventScript_WailmerTrainerGrunt:: lockall goto_if_set FLAG_MET_WAILMER_TRAINER, LilycoveCity_EventScript_MetWailmerTrainer msgbox LilycoveCity_Text_WailmerLeapOutOfWater, MSGBOX_DEFAULT @@ -209,28 +209,28 @@ LilycoveCity_EventScript_WailmerTrainerGrunt:: @ 81E2D7D releaseall end -LilycoveCity_EventScript_MetWailmerTrainer:: @ 81E2DB0 +LilycoveCity_EventScript_MetWailmerTrainer:: msgbox LilycoveCity_Text_WailmerLeapOutOfWater, MSGBOX_DEFAULT releaseall end -LilycoveCity_EventScript_AquaGrunt1:: @ 81E2DBA +LilycoveCity_EventScript_AquaGrunt1:: msgbox LilycoveCity_Text_MovedLootIntoHideoutToday, MSGBOX_NPC end -LilycoveCity_EventScript_AquaGrunt2:: @ 81E2DC3 +LilycoveCity_EventScript_AquaGrunt2:: msgbox LilycoveCity_Text_ChanceToDoBigThings, MSGBOX_NPC end -LilycoveCity_EventScript_AquaGrunt3:: @ 81E2DCC +LilycoveCity_EventScript_AquaGrunt3:: msgbox LilycoveCity_Text_DontGoNearCaveInCove, MSGBOX_NPC end -LilycoveCity_EventScript_AquaGrunt4:: @ 81E2DD5 +LilycoveCity_EventScript_AquaGrunt4:: msgbox LilycoveCity_Text_IfWorldBecomesOurs, MSGBOX_NPC end -LilycoveCity_EventScript_Rival:: @ 81E2DDE +LilycoveCity_EventScript_Rival:: lock faceplayer checkplayergender @@ -240,8 +240,8 @@ LilycoveCity_EventScript_Rival:: @ 81E2DDE goto_if_eq LilycoveCity_EventScript_Brendan end -LilycoveCity_EventScript_May:: @ 81E2DF8 - playbgm MUS_ENCOUNTER_MAY, 1 +LilycoveCity_EventScript_May:: + playbgm MUS_ENCOUNTER_MAY, TRUE call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattleAgain call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattle compare VAR_RESULT, NO @@ -253,15 +253,15 @@ LilycoveCity_EventScript_May:: @ 81E2DF8 case 2, LilycoveCity_EventScript_BattleMayMudkip end -LilycoveCity_EventScript_MayAskToBattleAgain:: @ 81E2E48 +LilycoveCity_EventScript_MayAskToBattleAgain:: msgbox LilycoveCity_Text_MayBattleMe, MSGBOX_YESNO return -LilycoveCity_EventScript_MayAskToBattle:: @ 81E2E51 +LilycoveCity_EventScript_MayAskToBattle:: msgbox LilycoveCity_Text_MayShoppingLetsBattle, MSGBOX_YESNO return -LilycoveCity_EventScript_DeclineMayBattle:: @ 81E2E5A +LilycoveCity_EventScript_DeclineMayBattle:: setflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE msgbox LilycoveCity_Text_MayNotRaisingPokemon, MSGBOX_DEFAULT savebgm MUS_DUMMY @@ -269,8 +269,8 @@ LilycoveCity_EventScript_DeclineMayBattle:: @ 81E2E5A release end -LilycoveCity_EventScript_Brendan:: @ 81E2E6B - playbgm MUS_ENCOUNTER_BRENDAN, 1 +LilycoveCity_EventScript_Brendan:: + playbgm MUS_ENCOUNTER_BRENDAN, TRUE call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattleAgain call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattle compare VAR_RESULT, NO @@ -282,15 +282,15 @@ LilycoveCity_EventScript_Brendan:: @ 81E2E6B case 2, LilycoveCity_EventScript_BattleBrendanMudkip end -LilycoveCity_EventScript_BrendanAskToBattleAgain:: @ 81E2EBB +LilycoveCity_EventScript_BrendanAskToBattleAgain:: msgbox LilycoveCity_Text_BrendanBattleMe, MSGBOX_YESNO return -LilycoveCity_EventScript_BrendanAskToBattle:: @ 81E2EC4 +LilycoveCity_EventScript_BrendanAskToBattle:: msgbox LilycoveCity_Text_BrendanShoppingLetsBattle, MSGBOX_YESNO return -LilycoveCity_EventScript_DeclineBrendanBattle:: @ 81E2ECD +LilycoveCity_EventScript_DeclineBrendanBattle:: setflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE msgbox LilycoveCity_Text_BrendanNoConfidence, MSGBOX_DEFAULT savebgm MUS_DUMMY @@ -298,37 +298,37 @@ LilycoveCity_EventScript_DeclineBrendanBattle:: @ 81E2ECD release end -LilycoveCity_EventScript_BattleMayTreecko:: @ 81E2EDE +LilycoveCity_EventScript_BattleMayTreecko:: trainerbattle_no_intro TRAINER_MAY_LILYCOVE_TREECKO, LilycoveCity_Text_MayDefeat goto LilycoveCity_EventScript_DefeatedMay end -LilycoveCity_EventScript_BattleMayTorchic:: @ 81E2EEE +LilycoveCity_EventScript_BattleMayTorchic:: trainerbattle_no_intro TRAINER_MAY_LILYCOVE_TORCHIC, LilycoveCity_Text_MayDefeat goto LilycoveCity_EventScript_DefeatedMay end -LilycoveCity_EventScript_BattleMayMudkip:: @ 81E2EFE +LilycoveCity_EventScript_BattleMayMudkip:: trainerbattle_no_intro TRAINER_MAY_LILYCOVE_MUDKIP, LilycoveCity_Text_MayDefeat goto LilycoveCity_EventScript_DefeatedMay end -LilycoveCity_EventScript_BattleBrendanTreecko:: @ 81E2F0E +LilycoveCity_EventScript_BattleBrendanTreecko:: trainerbattle_no_intro TRAINER_BRENDAN_LILYCOVE_TREECKO, LilycoveCity_Text_BrendanDefeat goto LilycoveCity_EventScript_DefeatedBrendan end -LilycoveCity_EventScript_BattleBrendanTorchic:: @ 81E2F1E +LilycoveCity_EventScript_BattleBrendanTorchic:: trainerbattle_no_intro TRAINER_BRENDAN_LILYCOVE_TORCHIC, LilycoveCity_Text_BrendanDefeat goto LilycoveCity_EventScript_DefeatedBrendan end -LilycoveCity_EventScript_BattleBrendanMudkip:: @ 81E2F2E +LilycoveCity_EventScript_BattleBrendanMudkip:: trainerbattle_no_intro TRAINER_BRENDAN_LILYCOVE_MUDKIP, LilycoveCity_Text_BrendanDefeat goto LilycoveCity_EventScript_DefeatedBrendan end -LilycoveCity_EventScript_DefeatedMay:: @ 81E2F3E +LilycoveCity_EventScript_DefeatedMay:: msgbox LilycoveCity_Text_MayGoingBackToLittleroot, MSGBOX_DEFAULT setvar VAR_RESULT, FALSE call_if_set FLAG_BADGE06_GET, LilycoveCity_EventScript_CheckFinalBadge @@ -341,28 +341,28 @@ LilycoveCity_EventScript_DefeatedMay:: @ 81E2F3E goto LilycoveCity_EventScript_RivalFlyAway end -LilycoveCity_EventScript_CheckFinalBadge:: @ 81E2F76 +LilycoveCity_EventScript_CheckFinalBadge:: goto_if_set FLAG_BADGE08_GET, LilycoveCity_EventScript_HasFinalBadge return -LilycoveCity_EventScript_HasFinalBadge:: @ 81E2F80 +LilycoveCity_EventScript_HasFinalBadge:: setvar VAR_RESULT, TRUE return -LilycoveCity_EventScript_MayCollectBadges:: @ 81E2F86 +LilycoveCity_EventScript_MayCollectBadges:: msgbox LilycoveCity_Text_MayYouGoingToCollectBadges, MSGBOX_DEFAULT return -LilycoveCity_EventScript_MayPokemonLeague:: @ 81E2F8F +LilycoveCity_EventScript_MayPokemonLeague:: goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_EventScript_MayBattleFrontier msgbox LilycoveCity_Text_MayYouGoingToPokemonLeague, MSGBOX_DEFAULT return -LilycoveCity_EventScript_MayBattleFrontier:: @ 81E2FA1 +LilycoveCity_EventScript_MayBattleFrontier:: msgbox LilycoveCity_Text_MayYouGoingToBattleFrontier, MSGBOX_DEFAULT return -LilycoveCity_EventScript_DefeatedBrendan:: @ 81E2FAA +LilycoveCity_EventScript_DefeatedBrendan:: msgbox LilycoveCity_Text_BrendanGoingBackToLittleroot, MSGBOX_DEFAULT setvar VAR_RESULT, FALSE call_if_set FLAG_BADGE06_GET, LilycoveCity_EventScript_CheckFinalBadge @@ -375,20 +375,20 @@ LilycoveCity_EventScript_DefeatedBrendan:: @ 81E2FAA goto LilycoveCity_EventScript_RivalFlyAway end -LilycoveCity_EventScript_BrendanCollectBadges:: @ 81E2FE2 +LilycoveCity_EventScript_BrendanCollectBadges:: msgbox LilycoveCity_Text_BrendanYouGoingToCollectBadges, MSGBOX_DEFAULT return -LilycoveCity_EventScript_BrendanPokemonLeague:: @ 81E2FEB +LilycoveCity_EventScript_BrendanPokemonLeague:: goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_EventScript_BrendanBattleFrontier msgbox LilycoveCity_Text_BrendanYouGoingToPokemonLeague, MSGBOX_DEFAULT return -LilycoveCity_EventScript_BrendanBattleFrontier:: @ 81E2FFD +LilycoveCity_EventScript_BrendanBattleFrontier:: msgbox LilycoveCity_Text_BrendanYouGoingToBattleFrontier, MSGBOX_DEFAULT return -LilycoveCity_EventScript_RivalFlyAway:: @ 81E3006 +LilycoveCity_EventScript_RivalFlyAway:: closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestDown waitmovement 0 @@ -404,7 +404,7 @@ LilycoveCity_EventScript_RivalFlyAway:: @ 81E3006 release end -LilycoveCity_EventScript_SchoolKidM:: @ 81E302D +LilycoveCity_EventScript_SchoolKidM:: lock faceplayer msgbox LilycoveCity_Text_DoYouKnowAboutBerryBlender, MSGBOX_YESNO @@ -415,15 +415,15 @@ LilycoveCity_EventScript_SchoolKidM:: @ 81E302D release end -LilycoveCity_EventScript_KnowAboutBerryBlender:: @ 81E304F +LilycoveCity_EventScript_KnowAboutBerryBlender:: msgbox LilycoveCity_Text_FasterSpinBetterPokeblocks, MSGBOX_DEFAULT return -LilycoveCity_EventScript_DontKnowAboutBerryBlender:: @ 81E3058 +LilycoveCity_EventScript_DontKnowAboutBerryBlender:: msgbox LilycoveCity_Text_ExplainBerryBlender, MSGBOX_DEFAULT return -LilycoveCity_Text_MayShoppingLetsBattle: @ 81E3061 +LilycoveCity_Text_MayShoppingLetsBattle: .string "MAY: Oh, hey?\n" .string "{PLAYER}{KUN}, are you shopping, too?\p" .string "I bought a whole bunch of DOLLS and\n" @@ -436,35 +436,35 @@ LilycoveCity_Text_MayShoppingLetsBattle: @ 81E3061 .string "I'll battle with you, so you can show\n" .string "me your POKéMON, {PLAYER}{KUN}.$" -LilycoveCity_Text_MayNotRaisingPokemon: @ 81E318D +LilycoveCity_Text_MayNotRaisingPokemon: .string "MAY: Oh, why? {PLAYER}{KUN}, haven't you\n" .string "been raising your POKéMON?\p" .string "That's not a very good showing as a\n" .string "TRAINER…$" -LilycoveCity_Text_MayBattleMe: @ 81E31F5 +LilycoveCity_Text_MayBattleMe: .string "MAY: Come on, battle with me, so I can\n" .string "check out your POKéMON!$" -LilycoveCity_Text_MayWontBeBeaten: @ 81E3234 +LilycoveCity_Text_MayWontBeBeaten: .string "MAY: The POKéMON I raised won't be\n" .string "beaten by your POKéMON, {PLAYER}{KUN}!$" -LilycoveCity_Text_MayDefeat: @ 81E3275 +LilycoveCity_Text_MayDefeat: .string "… … … … … … … …\p" .string "I remember the battle I had with you,\n" .string "{PLAYER}{KUN}, on ROUTE 103.\p" .string "That battle helped you become this\n" .string "strong, {PLAYER}{KUN}, didn't it?$" -LilycoveCity_Text_MayGoingBackToLittleroot: @ 81E32FB +LilycoveCity_Text_MayGoingBackToLittleroot: .string "MAY: I'm thinking of going back to\n" .string "LITTLEROOT soon.\p" .string "I've caught a decent group of POKéMON,\n" .string "and my POKéDEX is coming along, so\l" .string "I'm going home to show my dad.$" -LilycoveCity_Text_MayYouGoingToCollectBadges: @ 81E3398 +LilycoveCity_Text_MayYouGoingToCollectBadges: .string "{PLAYER}{KUN}, what are you going to do?\p" .string "Collect all the GYM BADGES and take\n" .string "the POKéMON LEAGUE challenge?\p" @@ -473,7 +473,7 @@ LilycoveCity_Text_MayYouGoingToCollectBadges: @ 81E3398 .string "POKéDEX. I'll complete it before you!\p" .string "See you!$" -LilycoveCity_Text_MayYouGoingToPokemonLeague: @ 81E346D +LilycoveCity_Text_MayYouGoingToPokemonLeague: .string "{PLAYER}{KUN}, what are you going to do?\p" .string "Are you taking the POKéMON LEAGUE\n" .string "challenge?\p" @@ -483,7 +483,7 @@ LilycoveCity_Text_MayYouGoingToPokemonLeague: @ 81E346D .string "but I'll finish my POKéDEX before you!\p" .string "See you!$" -LilycoveCity_Text_MayYouGoingToBattleFrontier: @ 81E353A +LilycoveCity_Text_MayYouGoingToBattleFrontier: .string "{PLAYER}{KUN}, what are you going to do?\p" .string "Are you taking the BATTLE FRONTIER\n" .string "challenge?\p" @@ -493,7 +493,7 @@ LilycoveCity_Text_MayYouGoingToBattleFrontier: @ 81E353A .string "but I'll finish my POKéDEX before you!\p" .string "See you!$" -LilycoveCity_Text_BrendanShoppingLetsBattle: @ 81E3608 +LilycoveCity_Text_BrendanShoppingLetsBattle: .string "BRENDAN: Oh, hey, it's {PLAYER}.\p" .string "I'm running an errand for my dad.\n" .string "No, I'm not buying any DOLLS.\p" @@ -501,39 +501,39 @@ LilycoveCity_Text_BrendanShoppingLetsBattle: @ 81E3608 .string "Want to have a battle to see who's been\n" .string "raising POKéMON better?$" -LilycoveCity_Text_BrendanNoConfidence: @ 81E36BF +LilycoveCity_Text_BrendanNoConfidence: .string "BRENDAN: Oh, what's the matter?\n" .string "Don't have the confidence?$" -LilycoveCity_Text_BrendanBattleMe: @ 81E36FA +LilycoveCity_Text_BrendanBattleMe: .string "BRENDAN: Want to battle to see who's\n" .string "been raising POKéMON better?$" -LilycoveCity_Text_BrendanWontBeBeaten: @ 81E373C +LilycoveCity_Text_BrendanWontBeBeaten: .string "BRENDAN: Aww, but you know I'm not\n" .string "going to lose to no {PLAYER}.$" -LilycoveCity_Text_BrendanDefeat: @ 81E3777 +LilycoveCity_Text_BrendanDefeat: .string "Humph…\n" .string "You've done a lot of raising.\p" .string "That stings a bit--I had a head start\n" .string "on you as a TRAINER…$" -LilycoveCity_Text_BrendanGoingBackToLittleroot: @ 81E37D7 +LilycoveCity_Text_BrendanGoingBackToLittleroot: .string "BRENDAN: I…\n" .string "I plan on going home to LITTLEROOT.\p" .string "You know I'm helping out my dad on his\n" .string "POKéDEX. It's coming together pretty\l" .string "decently, so I should go show him.$" -LilycoveCity_Text_BrendanYouGoingToCollectBadges: @ 81E3876 +LilycoveCity_Text_BrendanYouGoingToCollectBadges: .string "{PLAYER}, what are you going to do?\p" .string "Collect all the GYM BADGES and take\n" .string "the POKéMON LEAGUE challenge?\p" .string "Maybe I'll do that, too…\p" .string "Well, anyway, hang in there!$" -LilycoveCity_Text_BrendanYouGoingToPokemonLeague: @ 81E390C +LilycoveCity_Text_BrendanYouGoingToPokemonLeague: .string "{PLAYER}, what are you going to do?\p" .string "Since you're that strong, are you\n" .string "taking the POKéMON LEAGUE challenge?\p" @@ -542,7 +542,7 @@ LilycoveCity_Text_BrendanYouGoingToPokemonLeague: @ 81E390C .string "you, {PLAYER}.\p" .string "Well, anyway, hang in there!$" -LilycoveCity_Text_BrendanYouGoingToBattleFrontier: @ 81E39E3 +LilycoveCity_Text_BrendanYouGoingToBattleFrontier: .string "{PLAYER}, what are you going to do?\p" .string "Are you taking the BATTLE FRONTIER\n" .string "challenge?\p" @@ -556,14 +556,14 @@ LilycoveCity_Text_BrendanYouGoingToBattleFrontier: @ 81E39E3 .string "FRONTIER.\p" .string "Well, anyway, hang in there!$" -LilycoveCity_Text_MovedLootIntoHideoutToday: @ 81E3B2C +LilycoveCity_Text_MovedLootIntoHideoutToday: .string "Fufufu…\p" .string "We moved more loot into our secret\n" .string "HIDEOUT today…\p" .string "Wh-who are you?!\n" .string "I was just talking to myself!$" -LilycoveCity_Text_ChanceToDoBigThings: @ 81E3B95 +LilycoveCity_Text_ChanceToDoBigThings: .string "I'm just a GRUNT, so I don't know what\n" .string "the BOSS is thinking…\p" .string "But being on TEAM AQUA, I know I'll get\n" @@ -571,44 +571,44 @@ LilycoveCity_Text_ChanceToDoBigThings: @ 81E3B95 .string "Wh-who are you?!\n" .string "I was just talking to myself!$" -LilycoveCity_Text_DontGoNearCaveInCove: @ 81E3C46 +LilycoveCity_Text_DontGoNearCaveInCove: .string "Hey, you!\p" .string "Don't go near the cave in the cove!\p" .string "Why? You don't need a reason why!\n" .string "I'm an adult, so you just listen to me!$" -LilycoveCity_Text_IfWorldBecomesOurs: @ 81E3CBE +LilycoveCity_Text_IfWorldBecomesOurs: .string "If this whole wide world becomes ours,\n" .string "TEAM AQUA's, it will be a happier\l" .string "place for POKéMON, too.$" -LilycoveCity_Text_WailmerLeapOutOfWater: @ 81E3D1F +LilycoveCity_Text_WailmerLeapOutOfWater: .string "There! WAILMER!\n" .string "Leap out of the water now!$" -LilycoveCity_Text_GetLostMessingUpTraining: @ 81E3D4A +LilycoveCity_Text_GetLostMessingUpTraining: .string "Hunh? What do you want?\p" .string "You're messing up our training,\n" .string "so can you, like, get lost?$" -LilycoveCity_Text_ContestHallInTown: @ 81E3D9E +LilycoveCity_Text_ContestHallInTown: .string "There's a POKéMON CONTEST HALL\n" .string "right in this here town. \p" .string "That means well-raised POKéMON will\n" .string "come from all over the country.\p" .string "My heart swells with excitement!$" -LilycoveCity_Text_StrangeCaveInCove: @ 81E3E3C +LilycoveCity_Text_StrangeCaveInCove: .string "Have you seen that strange cave in\n" .string "the cove at the edge of town?$" -LilycoveCity_Text_GoingToMoveDeleterForHMs: @ 81E3E7D +LilycoveCity_Text_GoingToMoveDeleterForHMs: .string "I'm going to teach my POKéMON some new\n" .string "moves for entering a CONTEST.\p" .string "So, I'm going to see the MOVE DELETER\n" .string "and make it forget HM moves.$" -LilycoveCity_Text_ImFromKanto: @ 81E3F05 +LilycoveCity_Text_ImFromKanto: .string "I came from KANTO.\p" .string "The HOENN region is beautiful with\n" .string "all its water and verdant nature.\p" @@ -616,50 +616,50 @@ LilycoveCity_Text_ImFromKanto: @ 81E3F05 .string "Could there be rare POKéMON that live\n" .string "only in this area?$" -LilycoveCity_Text_TeamAquaBeenTrainingWailmer: @ 81E3FAB +LilycoveCity_Text_TeamAquaBeenTrainingWailmer: .string "TEAM AQUA's been training their\n" .string "WAILMER in the cove.\p" .string "We SAILORS can't get our boats out\n" .string "to sea with them in the way!$" -LilycoveCity_Text_SomeonePuntedTeamAquaOut: @ 81E4020 +LilycoveCity_Text_SomeonePuntedTeamAquaOut: .string "Ahoy, did you know?\p" .string "Someone punted TEAM AQUA out of\n" .string "the way for us!\p" .string "That got the WAILMER out of the cove,\n" .string "so we can get our boats out again.$" -LilycoveCity_Text_SomeoneStoleMyPokemon: @ 81E40AD +LilycoveCity_Text_SomeoneStoleMyPokemon: .string "I was taking a relaxing snooze at the\n" .string "seaside inn to the sound of waves…\p" .string "When someone stole my POKéMON!\p" .string "Who's the abductor?\n" .string "TEAM AQUA? Is it TEAM AQUA?$" -LilycoveCity_Text_MissingPokemonCameBack: @ 81E4145 +LilycoveCity_Text_MissingPokemonCameBack: .string "My missing POKéMON…\n" .string "It came back without me noticing!$" -LilycoveCity_Text_ImArtDealer: @ 81E417B +LilycoveCity_Text_ImArtDealer: .string "I'm an ART DEALER.\p" .string "I am a buyer and seller of fine art,\n" .string "especially paintings.\p" .string "I've heard that the MUSEUM here has\n" .string "magnificent works on exhibit…$" -LilycoveCity_Text_SeaRemainsForeverYoung: @ 81E420B +LilycoveCity_Text_SeaRemainsForeverYoung: .string "Even as we grow old and wrinkled,\n" .string "the sea remains forever young with\l" .string "the vivid brilliance of life…\p" .string "Fwohoho fwohohohoho…$" -LilycoveCity_Text_SixtyYearsAgoHusbandProposed: @ 81E4283 +LilycoveCity_Text_SixtyYearsAgoHusbandProposed: .string "It was sixty years ago that my husband\n" .string "proposed to me here.\l" .string "The sea remains as beautiful as ever.\p" .string "Mufufufu mufufufufufu…$" -LilycoveCity_Text_TeamAquaRenovatedCavern: @ 81E42FC +LilycoveCity_Text_TeamAquaRenovatedCavern: .string "Hm, you know of the peculiar cavern\n" .string "in this cove?\p" .string "That had been a natural formation,\n" @@ -670,92 +670,92 @@ LilycoveCity_Text_TeamAquaRenovatedCavern: @ 81E42FC .string "But what they do and what they say\n" .string "don't match at all!$" -LilycoveCity_Text_TeamAquaLotGoneForGood: @ 81E43FF +LilycoveCity_Text_TeamAquaLotGoneForGood: .string "That cave in the cove…\p" .string "I didn't notice it right away,\n" .string "but it's completely empty now.\p" .string "That TEAM AQUA lot, they must\n" .string "have gone away for good.$" -LilycoveCity_Text_CitySign: @ 81E448B +LilycoveCity_Text_CitySign: .string "LILYCOVE CITY\p" .string "“Where the land ends and the\n" .string "sea begins.”$" -LilycoveCity_Text_ContestHallSign: @ 81E44C3 +LilycoveCity_Text_ContestHallSign: .string "POKéMON CONTEST HALL\n" .string "“The gathering place for TRAINERS!”$" -LilycoveCity_Text_MotelSign: @ 81E44FC +LilycoveCity_Text_MotelSign: .string "COVE LILY MOTEL\p" .string "“Remember us as COVE LILY of\n" .string "LILYCOVE.”$" -LilycoveCity_Text_MuseumSign: @ 81E4534 +LilycoveCity_Text_MuseumSign: .string "LILYCOVE MUSEUM\p" .string "“POKéMON Masterpiece Collection\n" .string "on exhibit!”$" -LilycoveCity_Text_MuseumSignPlayersExhibit: @ 81E4571 +LilycoveCity_Text_MuseumSignPlayersExhibit: .string "LILYCOVE MUSEUM\p" .string "“{PLAYER}'s POKéMON Collection\n" .string "on exhibit!”$" -LilycoveCity_Text_HarborSignUnderConstruction: @ 81E45A7 +LilycoveCity_Text_HarborSignUnderConstruction: .string "LILYCOVE CITY HARBOR\p" .string "“The ferry S.S. TIDAL is under\n" .string "construction in SLATEPORT CITY.\p" .string "“Service is scheduled to begin\n" .string "shortly.”$" -LilycoveCity_Text_HarborSign: @ 81E4624 +LilycoveCity_Text_HarborSign: .string "LILYCOVE CITY HARBOR\p" .string "“Enjoy a delightful cruise on\n" .string "the ferry S.S. TIDAL.”$" -LilycoveCity_Text_TrainerFanClubSign: @ 81E466E +LilycoveCity_Text_TrainerFanClubSign: .string "POKéMON TRAINER FAN CLUB\p" .string "The names of TRAINERS are scribbled\n" .string "all over the sign…$" -LilycoveCity_Text_DepartmentStoreSign: @ 81E46BE +LilycoveCity_Text_DepartmentStoreSign: .string "LILYCOVE DEPARTMENT STORE\p" .string "“Overflowing with great merchandise\n" .string "and excitement!\p" .string "“A great place to find that something\n" .string "you need!”$" -LilycoveCity_Text_MoveDeletersHouseSign: @ 81E473D +LilycoveCity_Text_MoveDeletersHouseSign: .string "MOVE DELETER'S HOUSE\p" .string "“Unwanted POKéMON moves deleted.”$" -LilycoveCity_Text_DoYouKnowAboutBerryBlender: @ 81E4774 +LilycoveCity_Text_DoYouKnowAboutBerryBlender: .string "Do you know about the machine\n" .string "BERRY BLENDER?$" -LilycoveCity_Text_FasterSpinBetterPokeblocks: @ 81E47A1 +LilycoveCity_Text_FasterSpinBetterPokeblocks: .string "People have to work together to get it\n" .string "to spin faster.\p" .string "The faster you can make it spin, the\n" .string "better {POKEBLOCK}S you can get, I've heard.$" -LilycoveCity_Text_ExplainBerryBlender: @ 81E4824 +LilycoveCity_Text_ExplainBerryBlender: .string "It's used for making a kind of candy\n" .string "called a {POKEBLOCK}.\p" .string "If you give a good {POKEBLOCK} to a POKéMON,\n" .string "its condition will improve by a lot.$" -LilycoveCity_Text_HeardTowerCalledSkyPillar: @ 81E48A5 +LilycoveCity_Text_HeardTowerCalledSkyPillar: .string "I heard there's a tower somewhere out\n" .string "on the sea routes.\p" .string "It's called the SKY PILLAR, I hear.$" -LilycoveCity_Text_SawTallTowerOnRoute131: @ 81E4902 +LilycoveCity_Text_SawTallTowerOnRoute131: .string "I saw this tall tower somewhere\n" .string "around ROUTE 131.\p" .string "Could that possibly be…?$" -LilycoveCity_Text_JustArrivedAndSawRarePokemon: @ 81E494D +LilycoveCity_Text_JustArrivedAndSawRarePokemon: .string "We just arrived here on our\n" .string "honeymoon vacation.\p" .string "We happened to see a DRAGON-type\n" @@ -763,7 +763,7 @@ LilycoveCity_Text_JustArrivedAndSawRarePokemon: @ 81E494D .string "Do cool POKéMON like that live in\n" .string "the HOENN region?$" -LilycoveCity_Text_HoneymoonVowToSeeRarePokemon: @ 81E49F4 +LilycoveCity_Text_HoneymoonVowToSeeRarePokemon: .string "On our honeymoon, we vowed to see as\n" .string "many rare POKéMON as we can.\p" .string "So we were delighted to see a rare\n" diff --git a/data/maps/LilycoveCity_ContestHall/scripts.inc b/data/maps/LilycoveCity_ContestHall/scripts.inc index f390e9b242..610611358d 100644 --- a/data/maps/LilycoveCity_ContestHall/scripts.inc +++ b/data/maps/LilycoveCity_ContestHall/scripts.inc @@ -27,26 +27,26 @@ .set LOCALID_CUTE_AUDIENCE_3, 30 .set LOCALID_CUTE_AUDIENCE_2, 31 -LilycoveCity_ContestHall_MapScripts:: @ 821B484 +LilycoveCity_ContestHall_MapScripts:: .byte 0 -LilycoveCity_ContestHall_EventScript_Boy1:: @ 821B485 +LilycoveCity_ContestHall_EventScript_Boy1:: msgbox LilycoveCity_ContestHall_Text_TodayWonSmartnessContest, MSGBOX_NPC end -LilycoveCity_ContestHall_EventScript_Boy2:: @ 821B48E +LilycoveCity_ContestHall_EventScript_Boy2:: msgbox LilycoveCity_ContestHall_Text_EnteredBunchOfContests, MSGBOX_NPC end -LilycoveCity_ContestHall_EventScript_Girl:: @ 821B497 +LilycoveCity_ContestHall_EventScript_Girl:: msgbox LilycoveCity_ContestHall_Text_ManWhoWonEarlierHadPokeblocks, MSGBOX_NPC end -LilycoveCity_ContestHall_EventScript_Sailor:: @ 821B4A0 +LilycoveCity_ContestHall_EventScript_Sailor:: msgbox LilycoveCity_ContestHall_Text_IsntThisPlaceHumongous, MSGBOX_NPC end -LilycoveCity_ContestHall_EventScript_SmartContestMC:: @ 821B4A9 +LilycoveCity_ContestHall_EventScript_SmartContestMC:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_GiveItBestSmartAppeal, MSGBOX_DEFAULT @@ -56,7 +56,7 @@ LilycoveCity_ContestHall_EventScript_SmartContestMC:: @ 821B4A9 release end -LilycoveCity_ContestHall_EventScript_SmartContestJudge:: @ 821B4C0 +LilycoveCity_ContestHall_EventScript_SmartContestJudge:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_AreYouEnjoyingThisContest, MSGBOX_DEFAULT @@ -66,7 +66,7 @@ LilycoveCity_ContestHall_EventScript_SmartContestJudge:: @ 821B4C0 release end -LilycoveCity_ContestHall_EventScript_SmartContestant1:: @ 821B4D7 +LilycoveCity_ContestHall_EventScript_SmartContestant1:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_EnteredWrongContest, MSGBOX_DEFAULT @@ -76,7 +76,7 @@ LilycoveCity_ContestHall_EventScript_SmartContestant1:: @ 821B4D7 release end -LilycoveCity_ContestHall_EventScript_SmartContestant2:: @ 821B4EE +LilycoveCity_ContestHall_EventScript_SmartContestant2:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_RaisedMonToBeSmart, MSGBOX_DEFAULT @@ -86,7 +86,7 @@ LilycoveCity_ContestHall_EventScript_SmartContestant2:: @ 821B4EE release end -LilycoveCity_ContestHall_EventScript_SmartContestant3:: @ 821B505 +LilycoveCity_ContestHall_EventScript_SmartContestant3:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_IfMonPullsSmartMoveNext, MSGBOX_DEFAULT @@ -96,7 +96,7 @@ LilycoveCity_ContestHall_EventScript_SmartContestant3:: @ 821B505 release end -LilycoveCity_ContestHall_EventScript_SmartContestant4:: @ 821B51C +LilycoveCity_ContestHall_EventScript_SmartContestant4:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_DontAppreciateCuteLeechLife, MSGBOX_DEFAULT @@ -106,11 +106,11 @@ LilycoveCity_ContestHall_EventScript_SmartContestant4:: @ 821B51C release end -LilycoveCity_ContestHall_EventScript_SmartContestAudience1:: @ 821B533 +LilycoveCity_ContestHall_EventScript_SmartContestAudience1:: msgbox LilycoveCity_ContestHall_Text_YoureBeautifulGrandpa, MSGBOX_SIGN end -LilycoveCity_ContestHall_EventScript_SmartContestAudience2:: @ 821B53C +LilycoveCity_ContestHall_EventScript_SmartContestAudience2:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_AllSeemToUseDifferentMoves, MSGBOX_DEFAULT @@ -120,7 +120,7 @@ LilycoveCity_ContestHall_EventScript_SmartContestAudience2:: @ 821B53C release end -LilycoveCity_ContestHall_EventScript_SmartContestAudience3:: @ 821B553 +LilycoveCity_ContestHall_EventScript_SmartContestAudience3:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_PokemonSmarterThanTrainers, MSGBOX_DEFAULT @@ -130,7 +130,7 @@ LilycoveCity_ContestHall_EventScript_SmartContestAudience3:: @ 821B553 release end -LilycoveCity_ContestHall_EventScript_SmartContestAudience4:: @ 821B56A +LilycoveCity_ContestHall_EventScript_SmartContestAudience4:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_StillLoveSmartnessContests, MSGBOX_DEFAULT @@ -140,7 +140,7 @@ LilycoveCity_ContestHall_EventScript_SmartContestAudience4:: @ 821B56A release end -LilycoveCity_ContestHall_EventScript_BeautyContestMC:: @ 821B581 +LilycoveCity_ContestHall_EventScript_BeautyContestMC:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_AreYouEnteringBeautyContest, MSGBOX_DEFAULT @@ -150,7 +150,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestMC:: @ 821B581 release end -LilycoveCity_ContestHall_EventScript_BeautyContestJudge:: @ 821B598 +LilycoveCity_ContestHall_EventScript_BeautyContestJudge:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_EveryPokemonPristineBeauty, MSGBOX_DEFAULT @@ -160,7 +160,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestJudge:: @ 821B598 release end -LilycoveCity_ContestHall_EventScript_BeautyContestant1:: @ 821B5AF +LilycoveCity_ContestHall_EventScript_BeautyContestant1:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_EyesWillBeGluedToMyBeauty, MSGBOX_DEFAULT @@ -170,7 +170,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestant1:: @ 821B5AF release end -LilycoveCity_ContestHall_EventScript_BeautyContestant2:: @ 821B5C6 +LilycoveCity_ContestHall_EventScript_BeautyContestant2:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_OverdidGrooming, MSGBOX_DEFAULT @@ -180,7 +180,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestant2:: @ 821B5C6 release end -LilycoveCity_ContestHall_EventScript_BeautyContestant3:: @ 821B5DD +LilycoveCity_ContestHall_EventScript_BeautyContestant3:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_JudgeWontSeeAuroraBeam, MSGBOX_DEFAULT @@ -190,7 +190,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestant3:: @ 821B5DD release end -LilycoveCity_ContestHall_EventScript_BeautyContestant4:: @ 821B5F4 +LilycoveCity_ContestHall_EventScript_BeautyContestant4:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_PokemonLooksLikeYoungerMe, MSGBOX_DEFAULT @@ -200,7 +200,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestant4:: @ 821B5F4 release end -LilycoveCity_ContestHall_EventScript_BeautyContestAudience1:: @ 821B60B +LilycoveCity_ContestHall_EventScript_BeautyContestAudience1:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_WinBeautyContestMakesMeHappy, MSGBOX_DEFAULT @@ -210,7 +210,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestAudience1:: @ 821B60B release end -LilycoveCity_ContestHall_EventScript_BeautyContestAudience2:: @ 821B622 +LilycoveCity_ContestHall_EventScript_BeautyContestAudience2:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_GanderAtAllThosePrettyPokemon, MSGBOX_DEFAULT @@ -220,7 +220,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestAudience2:: @ 821B622 release end -LilycoveCity_ContestHall_EventScript_BeautyContestAudience3:: @ 821B639 +LilycoveCity_ContestHall_EventScript_BeautyContestAudience3:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_CantWinOnBeautyAlone, MSGBOX_DEFAULT @@ -230,7 +230,7 @@ LilycoveCity_ContestHall_EventScript_BeautyContestAudience3:: @ 821B639 release end -LilycoveCity_ContestHall_EventScript_CuteContestMC:: @ 821B650 +LilycoveCity_ContestHall_EventScript_CuteContestMC:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_InTheMiddleOfContest, MSGBOX_DEFAULT @@ -240,7 +240,7 @@ LilycoveCity_ContestHall_EventScript_CuteContestMC:: @ 821B650 release end -LilycoveCity_ContestHall_EventScript_CuteContestJudge:: @ 821B667 +LilycoveCity_ContestHall_EventScript_CuteContestJudge:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_SuchCharmingCuteAppeals, MSGBOX_DEFAULT @@ -250,7 +250,7 @@ LilycoveCity_ContestHall_EventScript_CuteContestJudge:: @ 821B667 release end -LilycoveCity_ContestHall_EventScript_CuteContestant1:: @ 821B67E +LilycoveCity_ContestHall_EventScript_CuteContestant1:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_MyAzurillWasDistracted, MSGBOX_DEFAULT @@ -260,7 +260,7 @@ LilycoveCity_ContestHall_EventScript_CuteContestant1:: @ 821B67E release end -LilycoveCity_ContestHall_EventScript_CuteContestant2:: @ 821B695 +LilycoveCity_ContestHall_EventScript_CuteContestant2:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_NeverWonBattleButContest, MSGBOX_DEFAULT @@ -270,7 +270,7 @@ LilycoveCity_ContestHall_EventScript_CuteContestant2:: @ 821B695 release end -LilycoveCity_ContestHall_EventScript_CuteContestant3:: @ 821B6AC +LilycoveCity_ContestHall_EventScript_CuteContestant3:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_PetalDanceIsMarvel, MSGBOX_DEFAULT @@ -280,7 +280,7 @@ LilycoveCity_ContestHall_EventScript_CuteContestant3:: @ 821B6AC release end -LilycoveCity_ContestHall_EventScript_CuteContestant4:: @ 821B6C3 +LilycoveCity_ContestHall_EventScript_CuteContestant4:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_MyMonAppealSoMuchCuter, MSGBOX_DEFAULT @@ -290,7 +290,7 @@ LilycoveCity_ContestHall_EventScript_CuteContestant4:: @ 821B6C3 release end -LilycoveCity_ContestHall_EventScript_CuteContestAudience1:: @ 821B6DA +LilycoveCity_ContestHall_EventScript_CuteContestAudience1:: lockall applymovement LOCALID_CUTE_AUDIENCE_1, Common_Movement_FacePlayer waitmovement 0 @@ -303,7 +303,7 @@ LilycoveCity_ContestHall_EventScript_CuteContestAudience1:: @ 821B6DA releaseall end -LilycoveCity_ContestHall_EventScript_CuteContestAudience2:: @ 821B705 +LilycoveCity_ContestHall_EventScript_CuteContestAudience2:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_WantCuteMonOfMyOwn, MSGBOX_DEFAULT @@ -313,7 +313,7 @@ LilycoveCity_ContestHall_EventScript_CuteContestAudience2:: @ 821B705 release end -LilycoveCity_ContestHall_EventScript_CuteContestAudience3:: @ 821B71C +LilycoveCity_ContestHall_EventScript_CuteContestAudience3:: lock faceplayer msgbox LilycoveCity_ContestHall_Text_ThatGirlThereIsCutest, MSGBOX_DEFAULT @@ -323,26 +323,26 @@ LilycoveCity_ContestHall_EventScript_CuteContestAudience3:: @ 821B71C release end -LilycoveCity_ContestHall_EventScript_BeautyStageSign:: @ 821B733 +LilycoveCity_ContestHall_EventScript_BeautyStageSign:: msgbox LilycoveCity_ContestHall_Text_BeautyContestStage, MSGBOX_SIGN end -LilycoveCity_ContestHall_EventScript_CuteStageSign:: @ 821B73C +LilycoveCity_ContestHall_EventScript_CuteStageSign:: msgbox LilycoveCity_ContestHall_Text_CuteContestStage, MSGBOX_SIGN end -LilycoveCity_ContestHall_EventScript_SmartStageSign:: @ 821B745 +LilycoveCity_ContestHall_EventScript_SmartStageSign:: msgbox LilycoveCity_ContestHall_Text_SmartContestStage, MSGBOX_SIGN end -LilycoveCity_ContestHall_Text_TodayWonSmartnessContest: @ 821B74E +LilycoveCity_ContestHall_Text_TodayWonSmartnessContest: .string "This POKéMON won the BEAUTY CONTEST\n" .string "here before.\p" .string "Well, guess what? Today, I made it\n" .string "win a SMARTNESS CONTEST!\p" .string "My abilities scare even me…$" -LilycoveCity_ContestHall_Text_EnteredBunchOfContests: @ 821B7D7 +LilycoveCity_ContestHall_Text_EnteredBunchOfContests: .string "I've entered a bunch of CONTESTS,\n" .string "so I'm seeing how things work.\p" .string "If you're in a COOLNESS CONTEST,\n" @@ -350,29 +350,29 @@ LilycoveCity_ContestHall_Text_EnteredBunchOfContests: @ 821B7D7 .string "But smart moves and cute moves\n" .string "don't go over well, for instance.$" -LilycoveCity_ContestHall_Text_ManWhoWonEarlierHadPokeblocks: @ 821B899 +LilycoveCity_ContestHall_Text_ManWhoWonEarlierHadPokeblocks: .string "That young man who won earlier had\n" .string "a whole bunch of different {POKEBLOCK}S.\p" .string "Can you win if you had that many\n" .string "of those things?$" -LilycoveCity_ContestHall_Text_IsntThisPlaceHumongous: @ 821B911 +LilycoveCity_ContestHall_Text_IsntThisPlaceHumongous: .string "Whoa, isn't this place humongous!\p" .string "The tension in the air… It's not\n" .string "like a CONTEST hall in the sticks.$" -LilycoveCity_ContestHall_Text_GiveItBestSmartAppeal: @ 821B977 +LilycoveCity_ContestHall_Text_GiveItBestSmartAppeal: .string "MC: Okay, SMART POKéMON and their\n" .string "TRAINERS, are you ready?!\p" .string "Give it your best showing!\n" .string "Let's appeal!$" -LilycoveCity_ContestHall_Text_AreYouEnjoyingThisContest: @ 821B9DC +LilycoveCity_ContestHall_Text_AreYouEnjoyingThisContest: .string "JUDGE: Are you enjoying this CONTEST?\p" .string "Come back with three friends, and\n" .string "all of you may enter a CONTEST!$" -LilycoveCity_ContestHall_Text_EnteredWrongContest: @ 821BA44 +LilycoveCity_ContestHall_Text_EnteredWrongContest: .string "Ayayayay…\n" .string "I entered the wrong CONTEST.\p" .string "I entered this tough POKéMON in\n" @@ -380,7 +380,7 @@ LilycoveCity_ContestHall_Text_EnteredWrongContest: @ 821BA44 .string "Come on, wow them with a smart-looking\n" .string "ROCK SMASH.$" -LilycoveCity_ContestHall_Text_RaisedMonToBeSmart: @ 821BAD5 +LilycoveCity_ContestHall_Text_RaisedMonToBeSmart: .string "I've spent many a year, and all my\n" .string "wisdom besides, raising this POKéMON\l" .string "to be smart.\p" @@ -388,54 +388,54 @@ LilycoveCity_ContestHall_Text_RaisedMonToBeSmart: @ 821BAD5 .string "young pup's POKéMON.\p" .string "My dear wife, are you seeing this?$" -LilycoveCity_ContestHall_Text_IfMonPullsSmartMoveNext: @ 821BB84 +LilycoveCity_ContestHall_Text_IfMonPullsSmartMoveNext: .string "There it is!\p" .string "If my POKéMON pulls a smart move next,\n" .string "the audience's excitement will peak!$" -LilycoveCity_ContestHall_Text_DontAppreciateCuteLeechLife: @ 821BBDD +LilycoveCity_ContestHall_Text_DontAppreciateCuteLeechLife: .string "Oh, dear, no!\p" .string "My darling ZUBAT's LEECH LIFE is so\n" .string "cute I kept using it over and over!\p" .string "But these mean people don't appreciate\n" .string "it at all!$" -LilycoveCity_ContestHall_Text_YoureBeautifulGrandpa: @ 821BC65 +LilycoveCity_ContestHall_Text_YoureBeautifulGrandpa: .string "Kiyaaah! You're beautiful, Grandpa!$" -LilycoveCity_ContestHall_Text_AllSeemToUseDifferentMoves: @ 821BC89 +LilycoveCity_ContestHall_Text_AllSeemToUseDifferentMoves: .string "Even when TRAINERS enter the same\n" .string "kind of POKéMON, they all seem to use\l" .string "different moves for appeals.\p" .string "It's just like the way people have\n" .string "different styles for battling.$" -LilycoveCity_ContestHall_Text_PokemonSmarterThanTrainers: @ 821BD30 +LilycoveCity_ContestHall_Text_PokemonSmarterThanTrainers: .string "I think the POKéMON look smarter\n" .string "than their TRAINERS. By a lot.$" -LilycoveCity_ContestHall_Text_StillLoveSmartnessContests: @ 821BD70 +LilycoveCity_ContestHall_Text_StillLoveSmartnessContests: .string "When all's said and done, I still love\n" .string "SMARTNESS CONTESTS.\p" .string "That intellectual green color…\n" .string "It's so… So… Cool.$" -LilycoveCity_ContestHall_Text_AreYouEnteringBeautyContest: @ 821BDDD +LilycoveCity_ContestHall_Text_AreYouEnteringBeautyContest: .string "MC: Are you entering the BEAUTY\n" .string "CONTEST, too? Good luck!$" -LilycoveCity_ContestHall_Text_EveryPokemonPristineBeauty: @ 821BE16 +LilycoveCity_ContestHall_Text_EveryPokemonPristineBeauty: .string "JUDGE: Ah, every POKéMON here is\n" .string "a model of pristine beauty!\p" .string "Why, I almost forgot to score them!$" -LilycoveCity_ContestHall_Text_EyesWillBeGluedToMyBeauty: @ 821BE77 +LilycoveCity_ContestHall_Text_EyesWillBeGluedToMyBeauty: .string "A POKéMON this beautiful…\n" .string "There isn't another one like it.\p" .string "Everyone's eyes will be glued to\n" .string "my beauty.$" -LilycoveCity_ContestHall_Text_OverdidGrooming: @ 821BEDE +LilycoveCity_ContestHall_Text_OverdidGrooming: .string "Waaaah!\p" .string "I brushed and groomed my POKéMON\n" .string "carefully for this CONTEST…\p" @@ -443,96 +443,96 @@ LilycoveCity_ContestHall_Text_OverdidGrooming: @ 821BEDE .string "My POKéMON's coat turned all scraggly…\p" .string "What should I do?$" -LilycoveCity_ContestHall_Text_JudgeWontSeeAuroraBeam: @ 821BF6E +LilycoveCity_ContestHall_Text_JudgeWontSeeAuroraBeam: .string "This AURORA BEAM is so dazzling,\n" .string "the JUDGE won't be able to see it.\p" .string "Uh, wait a second…\n" .string "That'll be meaningless, then!$" -LilycoveCity_ContestHall_Text_PokemonLooksLikeYoungerMe: @ 821BFE3 +LilycoveCity_ContestHall_Text_PokemonLooksLikeYoungerMe: .string "This pretty POKéMON looks just like\n" .string "me when I was younger.\p" .string "Right when I said that, my husband\n" .string "spewed the coffee he was drinking.\p" .string "Did I say something funny?$" -LilycoveCity_ContestHall_Text_WinBeautyContestMakesMeHappy: @ 821C07F +LilycoveCity_ContestHall_Text_WinBeautyContestMakesMeHappy: .string "You know, if I win at a BEAUTY\n" .string "CONTEST, sure it makes me\l" .string "happy. More than usual, anyway.$" -LilycoveCity_ContestHall_Text_GanderAtAllThosePrettyPokemon: @ 821C0D8 +LilycoveCity_ContestHall_Text_GanderAtAllThosePrettyPokemon: .string "Wahahahah!\p" .string "Will you take a gander at all those\n" .string "pretty POKéMON!\l" .string "I just love this sort of glitz!$" -LilycoveCity_ContestHall_Text_CantWinOnBeautyAlone: @ 821C137 +LilycoveCity_ContestHall_Text_CantWinOnBeautyAlone: .string "You can't always win on just beauty\n" .string "alone.\p" .string "You have to groom your POKéMON so\n" .string "it's nice and glossy like mine.$" -LilycoveCity_ContestHall_Text_InTheMiddleOfContest: @ 821C1A4 +LilycoveCity_ContestHall_Text_InTheMiddleOfContest: .string "MC: Uh-oh! Hello!\n" .string "We're in the middle of a CONTEST!\p" .string "Please enter at our registration\n" .string "counter and come out, okay?$" -LilycoveCity_ContestHall_Text_SuchCharmingCuteAppeals: @ 821C215 +LilycoveCity_ContestHall_Text_SuchCharmingCuteAppeals: .string "JUDGE: Oh, such charming and cute\n" .string "appeals!\p" .string "Oh, my goodness! What a perfectly\n" .string "adorable WATER SPORT appeal!$" -LilycoveCity_ContestHall_Text_MyAzurillWasDistracted: @ 821C27F +LilycoveCity_ContestHall_Text_MyAzurillWasDistracted: .string "Oh, no… My sweet AZURILL was\n" .string "distracted by another POKéMON.$" -LilycoveCity_ContestHall_Text_NeverWonBattleButContest: @ 821C2BB +LilycoveCity_ContestHall_Text_NeverWonBattleButContest: .string "My POKéMON has never won in a battle,\n" .string "but put it in a CONTEST and look out!$" -LilycoveCity_ContestHall_Text_PetalDanceIsMarvel: @ 821C307 +LilycoveCity_ContestHall_Text_PetalDanceIsMarvel: .string "My POKéMON's PETAL DANCE is a marvel\n" .string "of elegance.\p" .string "I won't let anyone disturb its\n" .string "performance.$" -LilycoveCity_ContestHall_Text_MyMonAppealSoMuchCuter: @ 821C365 +LilycoveCity_ContestHall_Text_MyMonAppealSoMuchCuter: .string "Everyone's POKéMON are very cute.\p" .string "However, if my POKéMON were to make\n" .string "a cute appeal…\p" .string "I'm sure that it would be so much \n" .string "cuter than the others.$" -LilycoveCity_ContestHall_Text_MyChildIsInContest: @ 821C3F4 +LilycoveCity_ContestHall_Text_MyChildIsInContest: .string "My child is in this CONTEST.$" -LilycoveCity_ContestHall_Text_ComeOnDear: @ 821C411 +LilycoveCity_ContestHall_Text_ComeOnDear: .string "Come on, dear. Go for it!\n" .string "Your POKéMON is the best!$" -LilycoveCity_ContestHall_Text_ThatGirlThereIsCutest: @ 821C445 +LilycoveCity_ContestHall_Text_ThatGirlThereIsCutest: .string "I think that girl over there is\n" .string "the cutest of the lot.\p" .string "What's that? They're judging\n" .string "POKéMON by their looks?$" -LilycoveCity_ContestHall_Text_WantCuteMonOfMyOwn: @ 821C4B1 +LilycoveCity_ContestHall_Text_WantCuteMonOfMyOwn: .string "Ohh, seeing all these cute POKéMON,\n" .string "they make we want to get my own!\p" .string "I'm going to go catch some!$" -LilycoveCity_ContestHall_Text_BeautyContestStage: @ 821C512 +LilycoveCity_ContestHall_Text_BeautyContestStage: .string "BEAUTY CONTEST STAGE\n" .string "BE ALLURED BY BEAUTIFUL POKéMON!$" -LilycoveCity_ContestHall_Text_CuteContestStage: @ 821C548 +LilycoveCity_ContestHall_Text_CuteContestStage: .string "CUTENESS CONTEST STAGE\n" .string "BE CHARMED BY CUTE POKéMON!$" -LilycoveCity_ContestHall_Text_SmartContestStage: @ 821C57B +LilycoveCity_ContestHall_Text_SmartContestStage: .string "SMARTNESS CONTEST STAGE\n" .string "BE IMPRESSED BY SMART POKéMON!$" diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc index 51c38e3f4e..48a8e6b926 100644 --- a/data/maps/LilycoveCity_ContestLobby/scripts.inc +++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc @@ -4,19 +4,19 @@ .set LOCALID_ARTIST, 4 .set LOCALID_ARTIST_LINK, 11 -LilycoveCity_ContestLobby_MapScripts:: @ 821A211 +LilycoveCity_ContestLobby_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LilycoveCity_ContestLobby_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, LilycoveCity_ContestLobby_OnFrame .byte 0 @ Some scripts for this room are split into data/scripts/contest_hall and data/scripts/berry_blender -LilycoveCity_ContestLobby_OnTransition: @ 821A21C +LilycoveCity_ContestLobby_OnTransition: call LilycoveCity_ContestLobby_EventScript_TryShowContestReporter call LilycoveCity_ContestLobby_EventScript_TryShowBlendMaster end -LilycoveCity_ContestLobby_EventScript_TryShowBlendMaster:: @ 821A227 +LilycoveCity_ContestLobby_EventScript_TryShowBlendMaster:: getpricereduction POKENEWS_BLENDMASTER compare VAR_RESULT, TRUE goto_if_eq LilycoveCity_ContestLobby_EventScript_ShowBlendMaster @@ -24,22 +24,22 @@ LilycoveCity_ContestLobby_EventScript_TryShowBlendMaster:: @ 821A227 setflag FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER return -LilycoveCity_ContestLobby_EventScript_ShowBlendMaster:: @ 821A23C +LilycoveCity_ContestLobby_EventScript_ShowBlendMaster:: setflag FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_REPLACEMENT clearflag FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER return -LilycoveCity_ContestLobby_OnFrame: @ 821A243 +LilycoveCity_ContestLobby_OnFrame: map_script_2 VAR_LILYCOVE_CONTEST_LOBBY_STATE, 1, LilycoveCity_ContestLobby_EventScript_TryDoContestArtist map_script_2 VAR_LILYCOVE_CONTEST_LOBBY_STATE, 2, LilycoveCity_ContestLobby_EventScript_TryDoLinkContestArtist .2byte 0 -LilycoveCity_ContestLobby_EventScript_TryDoContestArtist:: @ 821A255 +LilycoveCity_ContestLobby_EventScript_TryDoContestArtist:: goto_if_set FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR, LilycoveCity_ContestLobby_EventScript_ContestArtist setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 0 end -LilycoveCity_ContestLobby_EventScript_ContestArtist:: @ 821A264 +LilycoveCity_ContestLobby_EventScript_ContestArtist:: lockall addobject LOCALID_ARTIST applymovement LOCALID_ARTIST, LilycoveCity_ContestLobby_Movement_ArtistApproachPlayer @@ -49,7 +49,7 @@ LilycoveCity_ContestLobby_EventScript_ContestArtist:: @ 821A264 msgbox LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint, MSGBOX_DEFAULT lockall fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_ARTIST + showcontestpainting CONTEST_WINNER_ARTIST lockall msgbox LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum, MSGBOX_YESNO compare VAR_RESULT, YES @@ -59,7 +59,7 @@ LilycoveCity_ContestLobby_EventScript_ContestArtist:: @ 821A264 releaseall end -LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum:: @ 821A2AA +LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum:: msgbox LilycoveCity_ContestLobby_Text_IllTakePaintingToMuseum, MSGBOX_DEFAULT closemessage special SaveMuseumContestPainting @@ -75,7 +75,7 @@ LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum:: @ 821A2AA releaseall end -LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePainting:: @ 821A2E4 +LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePainting:: msgbox LilycoveCity_ContestLobby_Text_TakeHomeButIdLikeToTakeToMuseum, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum @@ -88,7 +88,7 @@ LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePainting:: @ 821A2E4 releaseall end -LilycoveCity_ContestLobby_EventScript_ReceivedArtistRibbon:: @ 821A314 +LilycoveCity_ContestLobby_EventScript_ReceivedArtistRibbon:: incrementgamestat GAME_STAT_RECEIVED_RIBBONS special BufferContestWinnerMonName applymovement LOCALID_ARTIST, LilycoveCity_ContestLobby_Movement_ArtistBeginToExit @@ -107,8 +107,8 @@ LilycoveCity_ContestLobby_EventScript_ReceivedArtistRibbon:: @ 821A314 closemessage return -LilycoveCity_ContestLobby_EventScript_UpdateMuseumPatrons:: @ 821A360 - specialvar VAR_0x8004, CountPlayerContestPaintings +LilycoveCity_ContestLobby_EventScript_UpdateMuseumPatrons:: + specialvar VAR_0x8004, CountPlayerMuseumPaintings switch VAR_0x8004 case 1, LilycoveCity_ContestLobby_EventScript_ShowPatron1 case 2, LilycoveCity_ContestLobby_EventScript_ShowPatron2 @@ -117,27 +117,27 @@ LilycoveCity_ContestLobby_EventScript_UpdateMuseumPatrons:: @ 821A360 case 5, LilycoveCity_ContestLobby_EventScript_ShowTourists return -LilycoveCity_ContestLobby_EventScript_ShowPatron1:: @ 821A3A2 +LilycoveCity_ContestLobby_EventScript_ShowPatron1:: clearflag FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_1 return -LilycoveCity_ContestLobby_EventScript_ShowPatron2:: @ 821A3A6 +LilycoveCity_ContestLobby_EventScript_ShowPatron2:: clearflag FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_2 return -LilycoveCity_ContestLobby_EventScript_ShowPatron3:: @ 821A3AA +LilycoveCity_ContestLobby_EventScript_ShowPatron3:: clearflag FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_3 return -LilycoveCity_ContestLobby_EventScript_ShowPatron4:: @ 821A3AE +LilycoveCity_ContestLobby_EventScript_ShowPatron4:: clearflag FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_4 return -LilycoveCity_ContestLobby_EventScript_ShowTourists:: @ 821A3B2 +LilycoveCity_ContestLobby_EventScript_ShowTourists:: clearflag FLAG_HIDE_LILYCOVE_MUSEUM_TOURISTS return -LilycoveCity_ContestLobby_EventScript_SetPaintingFlag:: @ 821A3B6 +LilycoveCity_ContestLobby_EventScript_SetPaintingFlag:: switch VAR_CONTEST_CATEGORY case CONTEST_CATEGORY_COOL, LilycoveCity_ContestLobby_EventScript_MadeCoolPainting case CONTEST_CATEGORY_BEAUTY, LilycoveCity_ContestLobby_EventScript_MadeBeautyPainting @@ -146,27 +146,27 @@ LilycoveCity_ContestLobby_EventScript_SetPaintingFlag:: @ 821A3B6 case CONTEST_CATEGORY_TOUGH, LilycoveCity_ContestLobby_EventScript_MadeToughPainting return -LilycoveCity_ContestLobby_EventScript_MadeCoolPainting:: @ 821A3F3 +LilycoveCity_ContestLobby_EventScript_MadeCoolPainting:: setflag FLAG_COOL_PAINTING_MADE return -LilycoveCity_ContestLobby_EventScript_MadeBeautyPainting:: @ 821A3F7 +LilycoveCity_ContestLobby_EventScript_MadeBeautyPainting:: setflag FLAG_BEAUTY_PAINTING_MADE return -LilycoveCity_ContestLobby_EventScript_MadeCutePainting:: @ 821A3FB +LilycoveCity_ContestLobby_EventScript_MadeCutePainting:: setflag FLAG_CUTE_PAINTING_MADE return -LilycoveCity_ContestLobby_EventScript_MadeSmartPainting:: @ 821A3FF +LilycoveCity_ContestLobby_EventScript_MadeSmartPainting:: setflag FLAG_SMART_PAINTING_MADE return -LilycoveCity_ContestLobby_EventScript_MadeToughPainting:: @ 821A403 +LilycoveCity_ContestLobby_EventScript_MadeToughPainting:: setflag FLAG_TOUGH_PAINTING_MADE return -LilycoveCity_ContestLobby_Movement_ArtistApproachPlayer: @ 821A407 +LilycoveCity_ContestLobby_Movement_ArtistApproachPlayer: walk_down walk_down walk_down @@ -176,7 +176,7 @@ LilycoveCity_ContestLobby_Movement_ArtistApproachPlayer: @ 821A407 walk_right step_end -LilycoveCity_ContestLobby_Movement_ArtistExit: @ 821A40F +LilycoveCity_ContestLobby_Movement_ArtistExit: walk_down walk_down walk_down @@ -187,17 +187,17 @@ LilycoveCity_ContestLobby_Movement_ArtistExit: @ 821A40F walk_down step_end -LilycoveCity_ContestLobby_Movement_PlayerFaceArtist: @ 821A418 +LilycoveCity_ContestLobby_Movement_PlayerFaceArtist: walk_in_place_fastest_left step_end -LilycoveCity_ContestLobby_Movement_ArtistBeginToExit: @ 821A41A +LilycoveCity_ContestLobby_Movement_ArtistBeginToExit: walk_down walk_down walk_down step_end -LilycoveCity_ContestLobby_Movement_ArtistReturnToPlayer: @ 821A41E +LilycoveCity_ContestLobby_Movement_ArtistReturnToPlayer: delay_16 delay_16 delay_16 @@ -208,12 +208,12 @@ LilycoveCity_ContestLobby_Movement_ArtistReturnToPlayer: @ 821A41E walk_in_place_fastest_right step_end -LilycoveCity_ContestLobby_EventScript_TryDoLinkContestArtist:: @ 821A427 +LilycoveCity_ContestLobby_EventScript_TryDoLinkContestArtist:: goto_if_set FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR, LilycoveCity_ContestLobby_EventScript_LinkContestArtist setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 0 end -LilycoveCity_ContestLobby_EventScript_LinkContestArtist:: @ 821A436 +LilycoveCity_ContestLobby_EventScript_LinkContestArtist:: lockall addobject LOCALID_ARTIST_LINK applymovement LOCALID_ARTIST_LINK, LilycoveCity_ContestLobby_Movement_LinkArtistApproachPlayer @@ -223,7 +223,7 @@ LilycoveCity_ContestLobby_EventScript_LinkContestArtist:: @ 821A436 msgbox LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint, MSGBOX_DEFAULT lockall fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_ARTIST + showcontestpainting CONTEST_WINNER_ARTIST msgbox LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink @@ -231,7 +231,7 @@ LilycoveCity_ContestLobby_EventScript_LinkContestArtist:: @ 821A436 goto_if_eq LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePaintingLink end -LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink:: @ 821A47A +LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink:: msgbox LilycoveCity_ContestLobby_Text_IllTakePaintingToMuseum, MSGBOX_DEFAULT closemessage special SaveMuseumContestPainting @@ -247,7 +247,7 @@ LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink:: @ 821A47A releaseall end -LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePaintingLink:: @ 821A4B4 +LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePaintingLink:: msgbox LilycoveCity_ContestLobby_Text_TakeHomeButIdLikeToTakeToMuseum, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink @@ -260,7 +260,7 @@ LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePaintingLink:: @ 821A4B4 releaseall end -LilycoveCity_ContestLobby_EventScript_ReceivedLinkArtistRibbon:: @ 821A4E4 +LilycoveCity_ContestLobby_EventScript_ReceivedLinkArtistRibbon:: incrementgamestat GAME_STAT_RECEIVED_RIBBONS setflag FLAG_SYS_RIBBON_GET special BufferContestWinnerMonName @@ -280,7 +280,7 @@ LilycoveCity_ContestLobby_EventScript_ReceivedLinkArtistRibbon:: @ 821A4E4 closemessage return -LilycoveCity_ContestLobby_Movement_LinkArtistApproachPlayer: @ 821A533 +LilycoveCity_ContestLobby_Movement_LinkArtistApproachPlayer: walk_down walk_down walk_down @@ -291,7 +291,7 @@ LilycoveCity_ContestLobby_Movement_LinkArtistApproachPlayer: @ 821A533 walk_left step_end -LilycoveCity_ContestLobby_Movement_LinkArtistExit: @ 821A53C +LilycoveCity_ContestLobby_Movement_LinkArtistExit: walk_down walk_down walk_down @@ -302,17 +302,17 @@ LilycoveCity_ContestLobby_Movement_LinkArtistExit: @ 821A53C walk_down step_end -LilycoveCity_ContestLobby_Movement_PlayerFaceLinkArtist: @ 821A545 +LilycoveCity_ContestLobby_Movement_PlayerFaceLinkArtist: walk_in_place_fastest_right step_end -LilycoveCity_ContestLobby_Movement_LinkArtistBeginExit: @ 821A547 +LilycoveCity_ContestLobby_Movement_LinkArtistBeginExit: walk_down walk_down walk_down step_end -LilycoveCity_ContestLobby_Movement_LinkArtistReturnToPlayer: @ 821A54B +LilycoveCity_ContestLobby_Movement_LinkArtistReturnToPlayer: delay_16 delay_16 delay_16 @@ -324,7 +324,7 @@ LilycoveCity_ContestLobby_Movement_LinkArtistReturnToPlayer: @ 821A54B step_end @ EventScript_SpeakToContestReceptionist either ends or returns after a contest entry is submitted -LilycoveCity_ContestLobby_EventScript_ContestReceptionist:: @ 821A554 +LilycoveCity_ContestLobby_EventScript_ContestReceptionist:: special ClearLinkContestFlags specialvar VAR_RESULT, IsContestDebugActive @ Always FALSE compare VAR_RESULT, TRUE @@ -338,7 +338,7 @@ LilycoveCity_ContestLobby_EventScript_ContestReceptionist:: @ 821A554 waitstate end -LilycoveCity_ContestLobby_EventScript_SetContestType:: @ 821A585 +LilycoveCity_ContestLobby_EventScript_SetContestType:: switch VAR_CONTEST_RANK case CONTEST_RANK_NORMAL, LilycoveCity_ContestLobby_EventScript_SetNormalContestType case CONTEST_RANK_SUPER, LilycoveCity_ContestLobby_EventScript_SetSuperContestType @@ -346,24 +346,24 @@ LilycoveCity_ContestLobby_EventScript_SetContestType:: @ 821A585 case CONTEST_RANK_MASTER, LilycoveCity_ContestLobby_EventScript_SetMasterContestType return -LilycoveCity_ContestLobby_EventScript_SetNormalContestType:: @ 821A5B7 +LilycoveCity_ContestLobby_EventScript_SetNormalContestType:: setvar VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_NORMAL return -LilycoveCity_ContestLobby_EventScript_SetSuperContestType:: @ 821A5BD +LilycoveCity_ContestLobby_EventScript_SetSuperContestType:: setvar VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_SUPER return -LilycoveCity_ContestLobby_EventScript_SetHyperContestType:: @ 821A5C3 +LilycoveCity_ContestLobby_EventScript_SetHyperContestType:: setvar VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_HYPER return -LilycoveCity_ContestLobby_EventScript_SetMasterContestType:: @ 821A5C9 +LilycoveCity_ContestLobby_EventScript_SetMasterContestType:: setvar VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_MASTER return @ Functionally unused -LilycoveCity_ContestLobby_EventScript_SetDebug:: @ 821A5CF +LilycoveCity_ContestLobby_EventScript_SetDebug:: setflag FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR copyvar VAR_LILYCOVE_MUSEUM_2F_STATE, 1 additem ITEM_CONTEST_PASS @@ -373,7 +373,7 @@ LilycoveCity_ContestLobby_EventScript_SetDebug:: @ 821A5CF setflag FLAG_SYS_RIBBON_GET end -LilycoveCity_ContestLobby_EventScript_WarpToContestHall:: @ 821A5EF +LilycoveCity_ContestLobby_EventScript_WarpToContestHall:: setflag FLAG_ENTERED_CONTEST switch VAR_CONTEST_CATEGORY case CONTEST_CATEGORY_COOL, LilycoveCity_ContestLobby_EventScript_WarpToCoolContestHall @@ -383,37 +383,37 @@ LilycoveCity_ContestLobby_EventScript_WarpToContestHall:: @ 821A5EF case CONTEST_CATEGORY_TOUGH, LilycoveCity_ContestLobby_EventScript_WarpToToughContestHall return -LilycoveCity_ContestLobby_EventScript_WarpToCoolContestHall:: @ 821A62F +LilycoveCity_ContestLobby_EventScript_WarpToCoolContestHall:: setwarp MAP_CONTEST_HALL_COOL, 255, 7, 5 special DoContestHallWarp waitstate return -LilycoveCity_ContestLobby_EventScript_WarpToBeautyContestHall:: @ 821A63C +LilycoveCity_ContestLobby_EventScript_WarpToBeautyContestHall:: setwarp MAP_CONTEST_HALL_BEAUTY, 255, 7, 5 special DoContestHallWarp waitstate return -LilycoveCity_ContestLobby_EventScript_WarpToCuteContestHall:: @ 821A649 +LilycoveCity_ContestLobby_EventScript_WarpToCuteContestHall:: setwarp MAP_CONTEST_HALL_CUTE, 255, 7, 5 special DoContestHallWarp waitstate return -LilycoveCity_ContestLobby_EventScript_WarpToSmartContestHall:: @ 821A656 +LilycoveCity_ContestLobby_EventScript_WarpToSmartContestHall:: setwarp MAP_CONTEST_HALL_SMART, 255, 7, 5 special DoContestHallWarp waitstate return -LilycoveCity_ContestLobby_EventScript_WarpToToughContestHall:: @ 821A663 +LilycoveCity_ContestLobby_EventScript_WarpToToughContestHall:: setwarp MAP_CONTEST_HALL_TOUGH, 255, 7, 5 special DoContestHallWarp waitstate return -LilycoveCity_ContestLobby_EventScript_LeadToContestHall:: @ 821A670 +LilycoveCity_ContestLobby_EventScript_LeadToContestHall:: lockall applymovement LOCALID_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_ReceptionistApproachCounter waitmovement 0 @@ -440,7 +440,7 @@ LilycoveCity_ContestLobby_EventScript_LeadToContestHall:: @ 821A670 releaseall return -LilycoveCity_ContestLobby_Movement_PlayerWalkToContestHall: @ 821A6E8 +LilycoveCity_ContestLobby_Movement_PlayerWalkToContestHall: walk_left walk_left walk_left @@ -452,24 +452,24 @@ LilycoveCity_ContestLobby_Movement_PlayerWalkToContestHall: @ 821A6E8 set_invisible step_end -LilycoveCity_ContestLobby_Movement_PlayerApproachReceptionist: @ 821A6F2 +LilycoveCity_ContestLobby_Movement_PlayerApproachReceptionist: walk_in_place_fastest_left walk_left step_end -LilycoveCity_ContestLobby_Movement_ReceptionistApproachCounter: @ 821A6F5 +LilycoveCity_ContestLobby_Movement_ReceptionistApproachCounter: walk_left walk_left walk_in_place_fastest_down step_end -LilycoveCity_ContestLobby_Movement_ReceptionistExitCounter: @ 821A6F9 +LilycoveCity_ContestLobby_Movement_ReceptionistExitCounter: walk_down walk_down walk_in_place_fastest_up step_end -LilycoveCity_ContestLobby_Movement_ReceptionistWalkToContestHall: @ 821A6FD +LilycoveCity_ContestLobby_Movement_ReceptionistWalkToContestHall: walk_left walk_left walk_left @@ -480,85 +480,85 @@ LilycoveCity_ContestLobby_Movement_ReceptionistWalkToContestHall: @ 821A6FD set_invisible step_end -LilycoveCity_ContestLobby_Movement_ReceptionistFacePlayer: @ 821A706 +LilycoveCity_ContestLobby_Movement_ReceptionistFacePlayer: walk_in_place_fastest_right step_end -LilycoveCity_ContestLobby_EventScript_BlackBelt:: @ 821A708 +LilycoveCity_ContestLobby_EventScript_BlackBelt:: msgbox LilycoveCity_ContestLobby_Text_MasterRankHereICome, MSGBOX_NPC end -LilycoveCity_ContestLobby_EventScript_Girl:: @ 821A711 +LilycoveCity_ContestLobby_EventScript_Girl:: msgbox LilycoveCity_ContestLobby_Text_WholeVarietyOfPokemonHere, MSGBOX_NPC end -LilycoveCity_ContestLobby_EventScript_Artist:: @ 821A71A +LilycoveCity_ContestLobby_EventScript_Artist:: msgbox LilycoveCity_ContestLobby_Text_ContestFeastForEyes, MSGBOX_NPC end -LilycoveCity_ContestLobby_EventScript_FatMan:: @ 821A723 +LilycoveCity_ContestLobby_EventScript_FatMan:: msgbox LilycoveCity_ContestLobby_Text_ToughContestIsExtreme, MSGBOX_NPC end -LilycoveCity_ContestLobby_EventScript_Fisherman:: @ 821A72C +LilycoveCity_ContestLobby_EventScript_Fisherman:: msgbox LilycoveCity_ContestLobby_Text_LavishedCareOnMon, MSGBOX_NPC end -LilycoveCity_ContestLobby_EventScript_NinjaBoy:: @ 821A735 +LilycoveCity_ContestLobby_EventScript_NinjaBoy:: msgbox LilycoveCity_ContestLobby_Text_MadePokeblocksWithFamily, MSGBOX_NPC end -LilycoveCity_ContestLobby_EventScript_ContestWinner1:: @ 821A73E +LilycoveCity_ContestLobby_EventScript_ContestWinner1:: lockall fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_HALL_1 + showcontestpainting CONTEST_WINNER_HALL_1 releaseall end -LilycoveCity_ContestLobby_EventScript_ContestWinner2:: @ 821A745 +LilycoveCity_ContestLobby_EventScript_ContestWinner2:: lockall fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_HALL_2 + showcontestpainting CONTEST_WINNER_HALL_2 releaseall end -LilycoveCity_ContestLobby_EventScript_ContestWinner3:: @ 821A74C +LilycoveCity_ContestLobby_EventScript_ContestWinner3:: lockall fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_HALL_3 + showcontestpainting CONTEST_WINNER_HALL_3 releaseall end -LilycoveCity_ContestLobby_EventScript_ContestWinner4:: @ 821A753 +LilycoveCity_ContestLobby_EventScript_ContestWinner4:: lockall fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_HALL_4 + showcontestpainting CONTEST_WINNER_HALL_4 releaseall end -LilycoveCity_ContestLobby_EventScript_ContestWinner5:: @ 821A75A +LilycoveCity_ContestLobby_EventScript_ContestWinner5:: lockall fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_HALL_5 + showcontestpainting CONTEST_WINNER_HALL_5 releaseall end -LilycoveCity_ContestLobby_EventScript_ContestWinner6:: @ 821A761 +LilycoveCity_ContestLobby_EventScript_ContestWinner6:: lockall fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_HALL_6 + showcontestpainting CONTEST_WINNER_HALL_6 releaseall end -LilycoveCity_ContestLobby_EventScript_Blender3Boy:: @ 821A768 +LilycoveCity_ContestLobby_EventScript_Blender3Boy:: msgbox BerryBlender_Text_LetsGetBlendingAlready, MSGBOX_NPC end -LilycoveCity_ContestLobby_EventScript_Blender3Girl:: @ 821A771 +LilycoveCity_ContestLobby_EventScript_Blender3Girl:: msgbox BerryBlender_Text_WhatKindOfPokeblockWillIGet, MSGBOX_NPC end -LilycoveCity_ContestLobby_EventScript_BerryBlenderSpeedRecords:: @ 821A77A +LilycoveCity_ContestLobby_EventScript_BerryBlenderSpeedRecords:: lockall special ShowBerryBlenderRecordWindow waitbuttonpress @@ -566,7 +566,7 @@ LilycoveCity_ContestLobby_EventScript_BerryBlenderSpeedRecords:: @ 821A77A releaseall end -LilycoveCity_ContestLobby_EventScript_LinkContestResults:: @ 821A784 +LilycoveCity_ContestLobby_EventScript_LinkContestResults:: lockall frontier_results FACILITY_LINK_CONTEST waitbuttonpress @@ -574,60 +574,60 @@ LilycoveCity_ContestLobby_EventScript_LinkContestResults:: @ 821A784 releaseall end -LilycoveCity_ContestLobby_EventScript_BlendMaster:: @ 821A798 +LilycoveCity_ContestLobby_EventScript_BlendMaster:: lock faceplayer msgbox BerryBlender_Text_BlendWithTheBlendMaster, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_FaceOriginalDirection end -LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker1:: @ 821A7A8 +LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker1:: lock msgbox BerryBlender_Text_WhoaAwesome, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker2:: @ 821A7B3 +LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker2:: lock msgbox BerryBlender_Text_WickedlyFast, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker3:: @ 821A7BE +LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker3:: lock msgbox BerryBlender_Text_WhatAnExpert, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker4:: @ 821A7C9 +LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker4:: lock faceplayer msgbox BerryBlender_Text_MadeAmazingPokeblocksWithMaster, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_FaceOriginalDirection end -LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker5:: @ 821A7D9 +LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker5:: lock faceplayer msgbox BerryBlender_Text_QualitiesOfBlendMaster, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_FaceOriginalDirection end -LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker6:: @ 821A7E9 +LilycoveCity_ContestLobby_EventScript_BlendMasterOnlooker6:: lock faceplayer msgbox BerryBlender_Text_MasterWorksOnSkillsInMountains, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_FaceOriginalDirection end -LilycoveCity_ContestLobby_EventScript_FaceOriginalDirection:: @ 821A7F9 +LilycoveCity_ContestLobby_EventScript_FaceOriginalDirection:: closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection waitmovement 0 release end -LilycoveCity_ContestLobby_EventScript_LinkContestReceptionist:: @ 821A806 +LilycoveCity_ContestLobby_EventScript_LinkContestReceptionist:: special ClearLinkContestFlags lock faceplayer @@ -635,10 +635,10 @@ LilycoveCity_ContestLobby_EventScript_LinkContestReceptionist:: @ 821A806 goto LilycoveCity_ContestLobby_EventScript_AskEnterLinkContest end -LilycoveCity_ContestLobby_EventScript_AskEnterLinkContest:: @ 821A819 +LilycoveCity_ContestLobby_EventScript_AskEnterLinkContest:: message LilycoveCity_ContestLobby_Text_EnterContest3 waitmessage - multichoice 0, 0, MULTI_ENTERINFO, 0 + multichoice 0, 0, MULTI_ENTERINFO, FALSE switch VAR_RESULT case 0, LilycoveCity_ContestLobby_EventScript_TryEnterLinkContest case 1, LilycoveCity_ContestLobby_EventScript_LinkContestInfo @@ -646,7 +646,7 @@ LilycoveCity_ContestLobby_EventScript_AskEnterLinkContest:: @ 821A819 case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_CancelLinkContest end -LilycoveCity_ContestLobby_EventScript_TryEnterLinkContest:: @ 821A856 +LilycoveCity_ContestLobby_EventScript_TryEnterLinkContest:: msgbox LilycoveCity_ContestLobby_Text_ProgressWillBeSaved, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkContest @@ -656,7 +656,7 @@ LilycoveCity_ContestLobby_EventScript_TryEnterLinkContest:: @ 821A856 message LilycoveCity_ContestLobby_Text_WhichContestMode waitmessage specialvar VAR_TEMP_D, IsWirelessAdapterConnected - multichoice 0, 0, MULTI_LINK_CONTEST_MODE, 0 + multichoice 0, 0, MULTI_LINK_CONTEST_MODE, FALSE switch VAR_RESULT case 0, LilycoveCity_ContestLobby_EventScript_EmeraldMode @ Shortened to E-Mode case 1, LilycoveCity_ContestLobby_EventScript_GlobalMode @ Shortened to G-Mode @@ -664,22 +664,22 @@ LilycoveCity_ContestLobby_EventScript_TryEnterLinkContest:: @ 821A856 case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_CancelLinkContest end -LilycoveCity_ContestLobby_EventScript_EmeraldMode:: @ 821A8BB +LilycoveCity_ContestLobby_EventScript_EmeraldMode:: setvar VAR_TEMP_C, 0 goto LilycoveCity_ContestLobby_EventScript_ChooseLinkContestType end -LilycoveCity_ContestLobby_EventScript_GlobalMode:: @ 821A8C6 +LilycoveCity_ContestLobby_EventScript_GlobalMode:: setvar VAR_TEMP_C, 1 compare VAR_TEMP_D, 1 goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkNoWirelessGMode goto LilycoveCity_ContestLobby_EventScript_ChooseLinkContestType end -LilycoveCity_ContestLobby_EventScript_ChooseLinkContestType:: @ 821A8DC +LilycoveCity_ContestLobby_EventScript_ChooseLinkContestType:: message LilycoveCity_ContestLobby_Text_EnterWhichContest3 waitmessage - multichoice 0, 0, MULTI_CONTEST_TYPE, 0 + multichoice 0, 0, MULTI_CONTEST_TYPE, FALSE switch VAR_RESULT case CONTEST_CATEGORIES_COUNT, LilycoveCity_ContestLobby_EventScript_CancelLinkContest case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_CancelLinkContest @@ -687,10 +687,10 @@ LilycoveCity_ContestLobby_EventScript_ChooseLinkContestType:: @ 821A8DC goto LilycoveCity_ContestLobby_EventScript_ChooseLinkContestMon end -LilycoveCity_ContestLobby_EventScript_LinkContestInfo:: @ 821A90D +LilycoveCity_ContestLobby_EventScript_LinkContestInfo:: message LilycoveCity_ContestLobby_Text_WhichTopic2 waitmessage - multichoice 0, 0, MULTI_LINK_CONTEST_INFO, 0 + multichoice 0, 0, MULTI_LINK_CONTEST_INFO, FALSE switch VAR_RESULT case 0, LilycoveCity_ContestLobby_EventScript_ExplainLinkContest case 1, LilycoveCity_ContestLobby_EventScript_ExplainEMode @@ -699,28 +699,28 @@ LilycoveCity_ContestLobby_EventScript_LinkContestInfo:: @ 821A90D case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_AskEnterLinkContest end -LilycoveCity_ContestLobby_EventScript_ExplainLinkContest:: @ 821A955 +LilycoveCity_ContestLobby_EventScript_ExplainLinkContest:: msgbox LilycoveCity_ContestLobby_Text_ExplainLinkContest, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_LinkContestInfo end -LilycoveCity_ContestLobby_EventScript_ExplainEMode:: @ 821A963 +LilycoveCity_ContestLobby_EventScript_ExplainEMode:: msgbox LilycoveCity_ContestLobby_Text_ExplainEMode, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_LinkContestInfo end -LilycoveCity_ContestLobby_EventScript_ExplainGMode:: @ 821A971 +LilycoveCity_ContestLobby_EventScript_ExplainGMode:: msgbox LilycoveCity_ContestLobby_Text_ExplainGMode, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_LinkContestInfo end -LilycoveCity_ContestLobby_EventScript_CancelLinkContest:: @ 821A97F +LilycoveCity_ContestLobby_EventScript_CancelLinkContest:: special CloseLink msgbox LilycoveCity_ContestLobby_Text_ParticipateAnotherTime, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_ChooseLinkContestMon:: @ 821A98C +LilycoveCity_ContestLobby_EventScript_ChooseLinkContestMon:: msgbox LilycoveCity_ContestLobby_Text_EnterWhichPokemon3, MSGBOX_DEFAULT setvar VAR_CONTEST_RANK, 0 choosecontestmon @@ -739,27 +739,27 @@ LilycoveCity_ContestLobby_EventScript_ChooseLinkContestMon:: @ 821A98C goto_if_eq LilycoveCity_ContestLobby_EventScript_LinkCantEnterFainted end -LilycoveCity_ContestLobby_EventScript_LinkCantEnterLowRank:: @ 821A9E0 +LilycoveCity_ContestLobby_EventScript_LinkCantEnterLowRank:: msgbox LilycoveCity_ContestLobby_Text_MonNotQualifiedForRank, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ChooseLinkContestMon end -LilycoveCity_ContestLobby_EventScript_LinkCantEnterEgg:: @ 821A9EE +LilycoveCity_ContestLobby_EventScript_LinkCantEnterEgg:: msgbox LilycoveCity_ContestLobby_Text_EggCannotTakePart2, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ChooseLinkContestMon end -LilycoveCity_ContestLobby_EventScript_LinkCantEnterFainted:: @ 821A9FC +LilycoveCity_ContestLobby_EventScript_LinkCantEnterFainted:: msgbox LilycoveCity_ContestLobby_Text_MonInNoCondition2, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ChooseLinkContestMon end -LilycoveCity_ContestLobby_EventScript_EnterMonForLinkContest:: @ 821AA0A +LilycoveCity_ContestLobby_EventScript_EnterMonForLinkContest:: copyvar VAR_0x8008, VAR_0x8004 goto LilycoveCity_ContestLobby_EventScript_TrySetUpLinkContest end -LilycoveCity_ContestLobby_EventScript_TrySetUpLinkContest:: @ 821AA15 +LilycoveCity_ContestLobby_EventScript_TrySetUpLinkContest:: compare VAR_TEMP_D, 1 goto_if_eq LilycoveCity_ContestLobby_EventScript_SetLinkGroupType compare VAR_TEMP_D, 2 @@ -783,7 +783,7 @@ LilycoveCity_ContestLobby_EventScript_TrySetUpLinkContest:: @ 821AA15 goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkError compare VAR_RESULT, LINKUP_FAILED_CONTEST_GMODE goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkModeDifference - message3 LilycoveCity_ContestLobby_Text_Transmitting + messageinstant LilycoveCity_ContestLobby_Text_Transmitting contestlinktransfer switch VAR_0x8004 case 0, LilycoveCity_ContestLobby_EventScript_StartLinkContest @@ -791,49 +791,49 @@ LilycoveCity_ContestLobby_EventScript_TrySetUpLinkContest:: @ 821AA15 case 2, LilycoveCity_ContestLobby_EventScript_CancelLinkTransmissionError end -LilycoveCity_ContestLobby_EventScript_TryLinkEMode:: @ 821AABB +LilycoveCity_ContestLobby_EventScript_TryLinkEMode:: special TryContestEModeLinkup waitstate return -LilycoveCity_ContestLobby_EventScript_TryLinkGMode:: @ 821AAC0 +LilycoveCity_ContestLobby_EventScript_TryLinkGMode:: special TryContestGModeLinkup waitstate return -LilycoveCity_ContestLobby_EventScript_CancelLinkDifferentContest:: @ 821AAC5 +LilycoveCity_ContestLobby_EventScript_CancelLinkDifferentContest:: msgbox LilycoveCity_ContestLobby_Text_PlayersChoseDifferentContest, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_CancelLinkContest end -LilycoveCity_ContestLobby_EventScript_CancelLinkDifferentChoices:: @ 821AAD3 +LilycoveCity_ContestLobby_EventScript_CancelLinkDifferentChoices:: msgbox LilycoveCity_ContestLobby_Text_PlayersMadeDifferentChoice, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_CancelLinkContest end -LilycoveCity_ContestLobby_EventScript_CancelLinkModeDifference:: @ 821AAE1 +LilycoveCity_ContestLobby_EventScript_CancelLinkModeDifference:: msgbox LilycoveCity_ContestLobby_Text_PlayerAt4PCounterUseGMode, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_CancelLinkContest end -LilycoveCity_ContestLobby_EventScript_CancelLinkError:: @ 821AAEF +LilycoveCity_ContestLobby_EventScript_CancelLinkError:: special CloseLink msgbox Text_LinkErrorPleaseReset, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_CancelLinkNoWirelessGMode:: @ 821AAFC +LilycoveCity_ContestLobby_EventScript_CancelLinkNoWirelessGMode:: special CloseLink msgbox LilycoveCity_ContestLobby_Text_NoWirelessAdapterInGMode, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_CancelLinkTransmissionError:: @ 821AB09 +LilycoveCity_ContestLobby_EventScript_CancelLinkTransmissionError:: msgbox LilycoveCity_ContestLobby_Text_TransmissionError, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_CancelLinkContest end -LilycoveCity_ContestLobby_EventScript_StartLinkContest:: @ 821AB17 +LilycoveCity_ContestLobby_EventScript_StartLinkContest:: special GetContestPlayerId addvar VAR_0x8004, 1 buffernumberstring 1, VAR_0x8004 @@ -848,7 +848,7 @@ LilycoveCity_ContestLobby_EventScript_StartLinkContest:: @ 821AB17 call LilycoveCity_ContestLobby_EventScript_WarpToContestHall end -LilycoveCity_ContestLobby_EventScript_SetLinkGroupType:: @ 821AB4B +LilycoveCity_ContestLobby_EventScript_SetLinkGroupType:: compare VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_COOL call_if_eq LilycoveCity_ContestLobby_EventScript_SetLinkGroupCoolContest compare VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_BEAUTY @@ -862,30 +862,30 @@ LilycoveCity_ContestLobby_EventScript_SetLinkGroupType:: @ 821AB4B goto LilycoveCity_ContestLobby_EventScript_DecideLinkLeader end -LilycoveCity_ContestLobby_EventScript_SetLinkGroupCoolContest:: @ 821AB88 +LilycoveCity_ContestLobby_EventScript_SetLinkGroupCoolContest:: setvar VAR_0x8004, LINK_GROUP_COOL_CONTEST return -LilycoveCity_ContestLobby_EventScript_SetLinkGroupBeautyContest:: @ 821AB8E +LilycoveCity_ContestLobby_EventScript_SetLinkGroupBeautyContest:: setvar VAR_0x8004, LINK_GROUP_BEAUTY_CONTEST return -LilycoveCity_ContestLobby_EventScript_SetLinkGroupCuteContest:: @ 821AB94 +LilycoveCity_ContestLobby_EventScript_SetLinkGroupCuteContest:: setvar VAR_0x8004, LINK_GROUP_CUTE_CONTEST return -LilycoveCity_ContestLobby_EventScript_SetLinkGroupSmartContest:: @ 821AB9A +LilycoveCity_ContestLobby_EventScript_SetLinkGroupSmartContest:: setvar VAR_0x8004, LINK_GROUP_SMART_CONTEST return -LilycoveCity_ContestLobby_EventScript_SetLinkGroupToughContest:: @ 821ABA0 +LilycoveCity_ContestLobby_EventScript_SetLinkGroupToughContest:: setvar VAR_0x8004, LINK_GROUP_TOUGH_CONTEST return -LilycoveCity_ContestLobby_EventScript_DecideLinkLeader:: @ 821ABA6 +LilycoveCity_ContestLobby_EventScript_DecideLinkLeader:: message LilycoveCity_ContestLobby_Text_PleaseDecideLinkLeader waitmessage - multichoice 16, 6, MULTI_LINK_LEADER, 0 + multichoice 16, 6, MULTI_LINK_LEADER, FALSE switch VAR_RESULT case 0, LilycoveCity_ContestLobby_EventScript_TryJoinGroup case 1, LilycoveCity_ContestLobby_EventScript_TryLeadGroup @@ -893,7 +893,7 @@ LilycoveCity_ContestLobby_EventScript_DecideLinkLeader:: @ 821ABA6 case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_CancelLinkContest end -LilycoveCity_ContestLobby_EventScript_TryLeadGroup:: @ 821ABE3 +LilycoveCity_ContestLobby_EventScript_TryLeadGroup:: call LilycoveCity_ContestLobby_EventScript_TryBecomeLinkLeader compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq LilycoveCity_ContestLobby_EventScript_LinkLeaderDecided @@ -904,7 +904,7 @@ LilycoveCity_ContestLobby_EventScript_TryLeadGroup:: @ 821ABE3 release end -LilycoveCity_ContestLobby_EventScript_TryJoinGroup:: @ 821AC0B +LilycoveCity_ContestLobby_EventScript_TryJoinGroup:: call LilycoveCity_ContestLobby_EventScript_TryJoinLinkGroup compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq LilycoveCity_ContestLobby_EventScript_LinkLeaderDecided @@ -915,23 +915,23 @@ LilycoveCity_ContestLobby_EventScript_TryJoinGroup:: @ 821AC0B release end -LilycoveCity_ContestLobby_EventScript_TryBecomeLinkLeader:: @ 821AC33 +LilycoveCity_ContestLobby_EventScript_TryBecomeLinkLeader:: special TryBecomeLinkLeader waitstate return -LilycoveCity_ContestLobby_EventScript_TryJoinLinkGroup:: @ 821AC38 +LilycoveCity_ContestLobby_EventScript_TryJoinLinkGroup:: special TryJoinLinkGroup waitstate return -LilycoveCity_ContestLobby_EventScript_LinkLeaderDecided:: @ 821AC3D - message3 LilycoveCity_ContestLobby_Text_Transmitting +LilycoveCity_ContestLobby_EventScript_LinkLeaderDecided:: + messageinstant LilycoveCity_ContestLobby_Text_Transmitting contestlinktransfer goto LilycoveCity_ContestLobby_EventScript_StartLinkContest end -LilycoveCity_ContestLobby_EventScript_LeadToLinkContestHall:: @ 821AC49 +LilycoveCity_ContestLobby_EventScript_LeadToLinkContestHall:: messageautoscroll LilycoveCity_ContestLobby_Text_ContestBeginShortly waitmessage delay 20 @@ -964,7 +964,7 @@ LilycoveCity_ContestLobby_EventScript_LeadToLinkContestHall:: @ 821AC49 release return -LilycoveCity_ContestLobby_Movement_PlayerWalkToLinkContestHall: @ 821ACD0 +LilycoveCity_ContestLobby_Movement_PlayerWalkToLinkContestHall: walk_right walk_right walk_right @@ -977,23 +977,23 @@ LilycoveCity_ContestLobby_Movement_PlayerWalkToLinkContestHall: @ 821ACD0 set_invisible step_end -LilycoveCity_ContestLobby_Movement_PlayerApproachLinkReceptionist: @ 821ACDB +LilycoveCity_ContestLobby_Movement_PlayerApproachLinkReceptionist: walk_right step_end -LilycoveCity_ContestLobby_Movement_LinkReceptionistApproachCounter: @ 821ACDD +LilycoveCity_ContestLobby_Movement_LinkReceptionistApproachCounter: walk_right walk_right walk_in_place_fastest_down step_end -LilycoveCity_ContestLobby_Movement_LinkReceptionistExitCounter: @ 821ACE1 +LilycoveCity_ContestLobby_Movement_LinkReceptionistExitCounter: walk_down walk_down walk_in_place_fastest_up step_end -LilycoveCity_ContestLobby_Movement_LinkReceptionistWalkToContestHall: @ 821ACE5 +LilycoveCity_ContestLobby_Movement_LinkReceptionistWalkToContestHall: walk_right walk_right walk_right @@ -1005,11 +1005,11 @@ LilycoveCity_ContestLobby_Movement_LinkReceptionistWalkToContestHall: @ 821ACE5 set_invisible step_end -LilycoveCity_ContestLobby_Movement_LinkReceptionistFacePlayer: @ 821ACEF +LilycoveCity_ContestLobby_Movement_LinkReceptionistFacePlayer: walk_in_place_fastest_left step_end -LilycoveCity_ContestLobby_EventScript_LittleGirl:: @ 821ACF1 +LilycoveCity_ContestLobby_EventScript_LittleGirl:: lock faceplayer goto_if_set FLAG_RECEIVED_POKEBLOCK_CASE, LilycoveCity_ContestLobby_EventScript_LittleGirlHaveCase @@ -1017,22 +1017,22 @@ LilycoveCity_ContestLobby_EventScript_LittleGirl:: @ 821ACF1 release end -LilycoveCity_ContestLobby_EventScript_LittleGirlHaveCase:: @ 821AD06 +LilycoveCity_ContestLobby_EventScript_LittleGirlHaveCase:: msgbox LilycoveCity_ContestLobby_Text_MakePokeblocksDifferentBerries, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_Text_LadyGaveMePokeblockCase: @ 821AD10 +LilycoveCity_ContestLobby_Text_LadyGaveMePokeblockCase: .string "Yippee!\p" .string "The lady at the reception counter\n" .string "gave me a case for {POKEBLOCK}S!$" -LilycoveCity_ContestLobby_Text_MakePokeblocksDifferentBerries: @ 821AD55 +LilycoveCity_ContestLobby_Text_MakePokeblocksDifferentBerries: .string "Make {POKEBLOCK}S and put them in there.\p" .string "When you make a {POKEBLOCK}, everyone\n" .string "has to put in a different BERRY.$" -LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint: @ 821ADB9 +LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint: .string "Congratulations!\p" .string "I did a painting of your POKéMON to\n" .string "commemorate its victory…\p" @@ -1041,7 +1041,7 @@ LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint: @ 821ADB9 .string "painting better than I usually do.\l" .string "Look, see?$" -LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum: @ 821AE78 +LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum: .string "What do you think? I'm confident in\n" .string "what I've done, but do you like it?\p" .string "A work of this caliber, it wouldn't look\n" @@ -1050,7 +1050,7 @@ LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum: @ 821AE78 .string "for paintings?\p" .string "Do you think I should take this there?$" -LilycoveCity_ContestLobby_Text_IllTakePaintingToMuseum: @ 821AF63 +LilycoveCity_ContestLobby_Text_IllTakePaintingToMuseum: .string "What, really? Then, sure, I will take\n" .string "this painting there right now.\p" .string "I'll give it a proper title, too.\p" @@ -1059,34 +1059,34 @@ LilycoveCity_ContestLobby_Text_IllTakePaintingToMuseum: @ 821AF63 .string "Please check if they did accept this.\n" .string "Thank you!$" -LilycoveCity_ContestLobby_Text_TakeMementoOfPainting: @ 821B030 +LilycoveCity_ContestLobby_Text_TakeMementoOfPainting: .string "Oh, that's right!\p" .string "As a memento of me painting your\n" .string "POKéMON, please take this.$" -LilycoveCity_ContestLobby_Text_ReceivedARibbon: @ 821B07E +LilycoveCity_ContestLobby_Text_ReceivedARibbon: .string "{PLAYER} received a RIBBON.$" -LilycoveCity_ContestLobby_Text_PutTheRibbonOnMon: @ 821B094 +LilycoveCity_ContestLobby_Text_PutTheRibbonOnMon: .string "{PLAYER} put the RIBBON on\n" .string "{STR_VAR_1}.$" -LilycoveCity_ContestLobby_Text_OkaySeeYou: @ 821B0AD +LilycoveCity_ContestLobby_Text_OkaySeeYou: .string "Okay, see you!$" -LilycoveCity_ContestLobby_Text_TakeHomeButIdLikeToTakeToMuseum: @ 821B0BC +LilycoveCity_ContestLobby_Text_TakeHomeButIdLikeToTakeToMuseum: .string "Oh… Then, I guess I'll just take\n" .string "this home with me…\p" .string "But, you know, I would like to take\n" .string "this to the art museum… Okay?$" -LilycoveCity_ContestLobby_Text_FineThatsTheWayItIs: @ 821B132 +LilycoveCity_ContestLobby_Text_FineThatsTheWayItIs: .string "Oh, fine, that's the way it is.\n" .string "I will hang this in my own house.\p" .string "I'll just have to try harder next time.\n" .string "Well, be seeing you.$" -LilycoveCity_ContestLobby_Text_MasterRankHereICome: @ 821B1B1 +LilycoveCity_ContestLobby_Text_MasterRankHereICome: .string "Hoo, boy… Master Rank CONTESTS,\n" .string "here I come.\p" .string "The world will know that my dearest\n" @@ -1094,31 +1094,31 @@ LilycoveCity_ContestLobby_Text_MasterRankHereICome: @ 821B1B1 .string "existence. The time has come!\l" .string "Uheheheh.$" -LilycoveCity_ContestLobby_Text_WholeVarietyOfPokemonHere: @ 821B24D +LilycoveCity_ContestLobby_Text_WholeVarietyOfPokemonHere: .string "You can see a whole variety of\n" .string "POKéMON here.\p" .string "That's why I make this place a regular\n" .string "part of my daily stroll.$" -LilycoveCity_ContestLobby_Text_ContestFeastForEyes: @ 821B2BA +LilycoveCity_ContestLobby_Text_ContestFeastForEyes: .string "Wow, coming out to a CONTEST is\n" .string "a feast for these eyes!\p" .string "Would you look at all the POKéMON\n" .string "that just scream to be painted?$" -LilycoveCity_ContestLobby_Text_ToughContestIsExtreme: @ 821B334 +LilycoveCity_ContestLobby_Text_ToughContestIsExtreme: .string "The TOUGHNESS CONTEST is like\n" .string "extreme, man!\p" .string "Those muscular appeals…\n" .string "Cascading sweat… I swoon!$" -LilycoveCity_ContestLobby_Text_LavishedCareOnMon: @ 821B392 +LilycoveCity_ContestLobby_Text_LavishedCareOnMon: .string "Day in and day out, I lavished my care\n" .string "on this POKéMON.\p" .string "Its condition is peaking.\n" .string "Today, victory is mine!$" -LilycoveCity_ContestLobby_Text_MadePokeblocksWithFamily: @ 821B3FC +LilycoveCity_ContestLobby_Text_MadePokeblocksWithFamily: .string "I made {POKEBLOCK}S with Mom, Dad, and\n" .string "Big Sister. They turned out great!\p" .string "I bet you can make smoother, better\n" diff --git a/data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc b/data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc index 72667973d2..8ce2a97df2 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc +++ b/data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_OWNER, 1 -LilycoveCity_CoveLilyMotel_1F_MapScripts:: @ 8218188 +LilycoveCity_CoveLilyMotel_1F_MapScripts:: .byte 0 -LilycoveCity_CoveLilyMotel_1F_EventScript_MotelOwner:: @ 8218189 +LilycoveCity_CoveLilyMotel_1F_EventScript_MotelOwner:: lockall goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_CoveLilyMotel_1F_EventScript_GameClear goto_if_set FLAG_BADGE07_GET, LilycoveCity_CoveLilyMotel_1F_EventScript_AquaHideoutBusted @@ -17,7 +17,7 @@ LilycoveCity_CoveLilyMotel_1F_EventScript_MotelOwner:: @ 8218189 releaseall end -LilycoveCity_CoveLilyMotel_1F_EventScript_AquaHideoutBusted:: @ 82181C3 +LilycoveCity_CoveLilyMotel_1F_EventScript_AquaHideoutBusted:: msgbox LilycoveCity_CoveLilyMotel_1F_Text_MonFoundLostItem, MSGBOX_DEFAULT applymovement LOCALID_OWNER, Common_Movement_FacePlayer waitmovement 0 @@ -28,7 +28,7 @@ LilycoveCity_CoveLilyMotel_1F_EventScript_AquaHideoutBusted:: @ 82181C3 releaseall end -LilycoveCity_CoveLilyMotel_1F_EventScript_GameClear:: @ 82181EA +LilycoveCity_CoveLilyMotel_1F_EventScript_GameClear:: msgbox LilycoveCity_CoveLilyMotel_1F_Text_HouseSittingMonCaughtBurglar, MSGBOX_DEFAULT applymovement LOCALID_OWNER, Common_Movement_FacePlayer waitmovement 0 @@ -39,7 +39,7 @@ LilycoveCity_CoveLilyMotel_1F_EventScript_GameClear:: @ 82181EA releaseall end -LilycoveCity_CoveLilyMotel_1F_EventScript_BlockingTV:: @ 8218211 +LilycoveCity_CoveLilyMotel_1F_EventScript_BlockingTV:: lockall playse SE_PIN applymovement LOCALID_OWNER, Common_Movement_ExclamationMark @@ -58,24 +58,24 @@ LilycoveCity_CoveLilyMotel_1F_EventScript_BlockingTV:: @ 8218211 release end -LilycoveCity_CoveLilyMotel_1F_Movement_PlayerPushFromTV: @ 8218259 +LilycoveCity_CoveLilyMotel_1F_Movement_PlayerPushFromTV: face_right lock_facing_direction walk_left unlock_facing_direction step_end -LilycoveCity_CoveLilyMotel_1F_Movement_OwnerPushPlayer: @ 821825E +LilycoveCity_CoveLilyMotel_1F_Movement_OwnerPushPlayer: walk_up step_end -LilycoveCity_CoveLilyMotel_1F_Movement_OwnerReturn: @ 8218260 +LilycoveCity_CoveLilyMotel_1F_Movement_OwnerReturn: face_down walk_down face_up step_end -LilycoveCity_CoveLilyMotel_1F_Text_GuestsDoubledByMascot: @ 8218264 +LilycoveCity_CoveLilyMotel_1F_Text_GuestsDoubledByMascot: .string "Hm, so they doubled the guests by\n" .string "using POKéMON as attractions?\p" .string "Hm, well, maybe I should make a cute\n" @@ -83,17 +83,17 @@ LilycoveCity_CoveLilyMotel_1F_Text_GuestsDoubledByMascot: @ 8218264 .string "I wonder if that will attract more\n" .string "guests to stay with us?$" -LilycoveCity_CoveLilyMotel_1F_Text_NoGuestsWithTeamAqua: @ 821831E +LilycoveCity_CoveLilyMotel_1F_Text_NoGuestsWithTeamAqua: .string "Oh, sorry, sorry!\n" .string "I was too involved in watching TV!\p" .string "Since that TEAM AQUA came to town,\n" .string "the tourists have been staying away.$" -LilycoveCity_CoveLilyMotel_1F_Text_CantSeeTheTV: @ 821839B +LilycoveCity_CoveLilyMotel_1F_Text_CantSeeTheTV: .string "Hey, down in front!\n" .string "I can't see the TV!$" -LilycoveCity_CoveLilyMotel_1F_Text_MonFoundLostItem: @ 82183C3 +LilycoveCity_CoveLilyMotel_1F_Text_MonFoundLostItem: .string "Amazing! You're telling me a POKéMON\n" .string "found someone's lost item?\p" .string "That's something. If we had some smart\n" @@ -101,7 +101,7 @@ LilycoveCity_CoveLilyMotel_1F_Text_MonFoundLostItem: @ 82183C3 .string "We could recover anything that our\n" .string "guests mislaid…$" -LilycoveCity_CoveLilyMotel_1F_Text_HeardAquaHideoutBusted: @ 8218470 +LilycoveCity_CoveLilyMotel_1F_Text_HeardAquaHideoutBusted: .string "Oh, sorry, sorry!\n" .string "I was too involved in watching TV!\p" .string "I heard that someone busted\n" @@ -111,7 +111,7 @@ LilycoveCity_CoveLilyMotel_1F_Text_HeardAquaHideoutBusted: @ 8218470 .string "It was a company called… Uh…\n" .string "GAME something…$" -LilycoveCity_CoveLilyMotel_1F_Text_HouseSittingMonCaughtBurglar: @ 8218544 +LilycoveCity_CoveLilyMotel_1F_Text_HouseSittingMonCaughtBurglar: .string "Amazing! A house-sitting POKéMON\n" .string "caught a burglar?\p" .string "That's something. If we had a tough\n" @@ -119,7 +119,7 @@ LilycoveCity_CoveLilyMotel_1F_Text_HouseSittingMonCaughtBurglar: @ 8218544 .string "We would be able to provide our guests\n" .string "with greater safety.$" -LilycoveCity_CoveLilyMotel_1F_Text_BetterGetWorkingOnGuestsDinner: @ 82185F4 +LilycoveCity_CoveLilyMotel_1F_Text_BetterGetWorkingOnGuestsDinner: .string "Oh, sorry, sorry!\n" .string "I was too involved in watching TV.\p" .string "Oh, yes. A big group of guests arrived\n" diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json index f55770b88c..0edd978fd0 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GameDesigner", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_SCIENTIST_1", @@ -38,7 +38,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GraphicArtist", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", @@ -51,7 +51,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_FatMan", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_MAN_4", @@ -64,7 +64,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Programmer", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_GAMEBOY_KID", @@ -77,7 +77,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GameBoyKid", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", @@ -90,7 +90,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Woman", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_SCOTT", @@ -103,7 +103,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Scott", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_SCOTT" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_SCOTT" } ], "warp_events": [ diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc index 9d3520be56..a5e8b40cf6 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc @@ -1,7 +1,7 @@ -LilycoveCity_CoveLilyMotel_2F_MapScripts:: @ 82186D2 +LilycoveCity_CoveLilyMotel_2F_MapScripts:: .byte 0 -LilycoveCity_CoveLilyMotel_2F_EventScript_GameDesigner:: @ 82186D3 +LilycoveCity_CoveLilyMotel_2F_EventScript_GameDesigner:: lock faceplayer call_if_unset FLAG_TEMP_2, LilycoveCity_CoveLilyMotel_2F_EventScript_ShowMeCompletedDex @@ -12,18 +12,18 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_GameDesigner:: @ 82186D3 release end -LilycoveCity_CoveLilyMotel_2F_EventScript_ShowMeCompletedDex:: @ 82186F9 +LilycoveCity_CoveLilyMotel_2F_EventScript_ShowMeCompletedDex:: msgbox LilycoveCity_CoveLilyMotel_2F_Text_ShowMeCompletedDex, MSGBOX_DEFAULT return -LilycoveCity_CoveLilyMotel_2F_EventScript_AllHoennMonsFanfare:: @ 8218702 +LilycoveCity_CoveLilyMotel_2F_EventScript_AllHoennMonsFanfare:: setflag FLAG_TEMP_2 playfanfare MUS_OBTAIN_ITEM waitfanfare goto LilycoveCity_CoveLilyMotel_2F_EventScript_ShowDiploma end -LilycoveCity_CoveLilyMotel_2F_EventScript_ShowDiploma:: @ 821870F +LilycoveCity_CoveLilyMotel_2F_EventScript_ShowDiploma:: message LilycoveCity_CoveLilyMotel_2F_Text_FilledPokedexGiveYouThis waitmessage call Common_EventScript_PlayGymBadgeFanfare @@ -32,27 +32,27 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_ShowDiploma:: @ 821870F release end -LilycoveCity_CoveLilyMotel_2F_EventScript_Programmer:: @ 8218720 +LilycoveCity_CoveLilyMotel_2F_EventScript_Programmer:: msgbox LilycoveCity_CoveLilyMotel_2F_Text_ImTheProgrammer, MSGBOX_NPC end -LilycoveCity_CoveLilyMotel_2F_EventScript_GraphicArtist:: @ 8218729 +LilycoveCity_CoveLilyMotel_2F_EventScript_GraphicArtist:: msgbox LilycoveCity_CoveLilyMotel_2F_Text_ImTheGraphicArtist, MSGBOX_NPC end -LilycoveCity_CoveLilyMotel_2F_EventScript_FatMan:: @ 8218732 +LilycoveCity_CoveLilyMotel_2F_EventScript_FatMan:: msgbox LilycoveCity_CoveLilyMotel_2F_Text_GirlsAreCute, MSGBOX_NPC end -LilycoveCity_CoveLilyMotel_2F_EventScript_Woman:: @ 821873B +LilycoveCity_CoveLilyMotel_2F_EventScript_Woman:: msgbox LilycoveCity_CoveLilyMotel_2F_Text_SeaBreezeTicklesHeart, MSGBOX_NPC end -LilycoveCity_CoveLilyMotel_2F_EventScript_GameBoyKid:: @ 8218744 +LilycoveCity_CoveLilyMotel_2F_EventScript_GameBoyKid:: msgbox LilycoveCity_CoveLilyMotel_2F_Text_NeverLeaveWithoutGameBoy, MSGBOX_NPC end -LilycoveCity_CoveLilyMotel_2F_EventScript_Scott:: @ 821874D +LilycoveCity_CoveLilyMotel_2F_EventScript_Scott:: lock faceplayer goto_if_set FLAG_MET_SCOTT_IN_LILYCOVE, LilycoveCity_CoveLilyMotel_2F_EventScript_MetScott @@ -62,12 +62,12 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_Scott:: @ 821874D release end -LilycoveCity_CoveLilyMotel_2F_EventScript_MetScott:: @ 821876A +LilycoveCity_CoveLilyMotel_2F_EventScript_MetScott:: msgbox LilycoveCity_CoveLilyMotel_2F_Text_ContestsDoTakeStrategy, MSGBOX_DEFAULT release end -LilycoveCity_CoveLilyMotel_2F_Text_ShowMeCompletedDex: @ 8218774 +LilycoveCity_CoveLilyMotel_2F_Text_ShowMeCompletedDex: .string "I'm the GAME DESIGNER.\p" .string "Oh, is that right?\n" .string "You're working on a POKéDEX?\p" @@ -76,7 +76,7 @@ LilycoveCity_CoveLilyMotel_2F_Text_ShowMeCompletedDex: @ 8218774 .string "If you do complete it, please come\n" .string "show me.$" -LilycoveCity_CoveLilyMotel_2F_Text_FilledPokedexGiveYouThis: @ 821881C +LilycoveCity_CoveLilyMotel_2F_Text_FilledPokedexGiveYouThis: .string "Wow! That's awesome!\n" .string "Yep, it's totally awesome!\p" .string "This POKéDEX is completely filled!\n" @@ -85,17 +85,17 @@ LilycoveCity_CoveLilyMotel_2F_Text_FilledPokedexGiveYouThis: @ 821881C .string "Let me give you something in\n" .string "recognition of your feat!$" -LilycoveCity_CoveLilyMotel_2F_Text_ImTheProgrammer: @ 82188D6 +LilycoveCity_CoveLilyMotel_2F_Text_ImTheProgrammer: .string "Me? You're talking to me?\n" .string "I'm the PROGRAMMER.\p" .string "I wonder what the SLOTS are\n" .string "like here.$" -LilycoveCity_CoveLilyMotel_2F_Text_ImTheGraphicArtist: @ 821892B +LilycoveCity_CoveLilyMotel_2F_Text_ImTheGraphicArtist: .string "I'm the GRAPHIC ARTIST! Aren't the\n" .string "POKéMON of HOENN interesting?$" -LilycoveCity_CoveLilyMotel_2F_Text_GirlsAreCute: @ 821896C +LilycoveCity_CoveLilyMotel_2F_Text_GirlsAreCute: .string "The girl TUBERS, they're cute, hey?\n" .string "To battle against a cute TUBER…\p" .string "Whoop, it's so awesome!\p" @@ -103,17 +103,17 @@ LilycoveCity_CoveLilyMotel_2F_Text_GirlsAreCute: @ 821896C .string "A 2-on-2 battle with TWINS…\p" .string "Whoop, it's unbearably fun!$" -LilycoveCity_CoveLilyMotel_2F_Text_SeaBreezeTicklesHeart: @ 8218A21 +LilycoveCity_CoveLilyMotel_2F_Text_SeaBreezeTicklesHeart: .string "The sea breeze tickles my heart.\n" .string "It feels wonderful here!$" -LilycoveCity_CoveLilyMotel_2F_Text_NeverLeaveWithoutGameBoy: @ 8218A5B +LilycoveCity_CoveLilyMotel_2F_Text_NeverLeaveWithoutGameBoy: .string "You never know when and where\n" .string "people will challenge you.\p" .string "That's why I never leave home without\n" .string "my GAME BOY ADVANCE.$" -LilycoveCity_CoveLilyMotel_2F_Text_SnoozingPreferBattles: @ 8218ACF +LilycoveCity_CoveLilyMotel_2F_Text_SnoozingPreferBattles: .string "SCOTT: … … … … …\n" .string "… … … … … Zzz…\p" .string "… … … … … Huh?!\n" @@ -129,7 +129,7 @@ LilycoveCity_CoveLilyMotel_2F_Text_SnoozingPreferBattles: @ 8218ACF .string "like the GYMS, CONTESTS, BATTLE TENT,\l" .string "the whole works!$" -LilycoveCity_CoveLilyMotel_2F_Text_ContestsDoTakeStrategy: @ 8218C33 +LilycoveCity_CoveLilyMotel_2F_Text_ContestsDoTakeStrategy: .string "SCOTT: I think it does take strategy\n" .string "to win a CONTEST.\p" .string "Devising CONTEST strategies is one way\n" diff --git a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc index b7d6e4a49d..a7b062096f 100644 --- a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc @@ -1,7 +1,7 @@ -LilycoveCity_DepartmentStoreElevator_MapScripts:: @ 8220623 +LilycoveCity_DepartmentStoreElevator_MapScripts:: .byte 0 -LilycoveCity_DepartmentStoreElevator_EventScript_Attendant:: @ 8220624 +LilycoveCity_DepartmentStoreElevator_EventScript_Attendant:: lock faceplayer setvar VAR_0x8004, 0 @@ -21,32 +21,32 @@ LilycoveCity_DepartmentStoreElevator_EventScript_Attendant:: @ 8220624 end @ Below scripts ensure the cursor for floor select always starts on the current floor -LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom5th:: @ 8220689 - multichoicedefault 0, 0, MULTI_FLOORS, 0, 0 +LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom5th:: + multichoicedefault 0, 0, MULTI_FLOORS, 0, FALSE goto LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor end -LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom4th:: @ 8220695 - multichoicedefault 0, 0, MULTI_FLOORS, 1, 0 +LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom4th:: + multichoicedefault 0, 0, MULTI_FLOORS, 1, FALSE goto LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor end -LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom3rd:: @ 82206A1 - multichoicedefault 0, 0, MULTI_FLOORS, 2, 0 +LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom3rd:: + multichoicedefault 0, 0, MULTI_FLOORS, 2, FALSE goto LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor end -LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom2nd:: @ 82206AD - multichoicedefault 0, 0, MULTI_FLOORS, 3, 0 +LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom2nd:: + multichoicedefault 0, 0, MULTI_FLOORS, 3, FALSE goto LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor end -LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom1st:: @ 82206B9 - multichoicedefault 0, 0, MULTI_FLOORS, 4, 0 +LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloorFrom1st:: + multichoicedefault 0, 0, MULTI_FLOORS, 4, FALSE goto LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor end -LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor:: @ 82206C5 +LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor:: switch VAR_RESULT case 0, LilycoveCity_DepartmentStoreElevator_EventScript_5thFloor case 1, LilycoveCity_DepartmentStoreElevator_EventScript_4thFloor @@ -57,7 +57,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor:: @ 82206C5 case MULTI_B_PRESSED, LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect end -LilycoveCity_DepartmentStoreElevator_EventScript_1stFloor:: @ 8220718 +LilycoveCity_DepartmentStoreElevator_EventScript_1stFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_1F setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F, 255, 2, 1 compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_1F @@ -67,7 +67,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_1stFloor:: @ 8220718 goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect end -LilycoveCity_DepartmentStoreElevator_EventScript_2ndFloor:: @ 8220740 +LilycoveCity_DepartmentStoreElevator_EventScript_2ndFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_2F setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F, 255, 2, 1 compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_2F @@ -77,7 +77,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_2ndFloor:: @ 8220740 goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect end -LilycoveCity_DepartmentStoreElevator_EventScript_3rdFloor:: @ 8220768 +LilycoveCity_DepartmentStoreElevator_EventScript_3rdFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_3F setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F, 255, 2, 1 compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_3F @@ -87,7 +87,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_3rdFloor:: @ 8220768 goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect end -LilycoveCity_DepartmentStoreElevator_EventScript_4thFloor:: @ 8220790 +LilycoveCity_DepartmentStoreElevator_EventScript_4thFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_4F setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F, 255, 2, 1 compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_4F @@ -97,7 +97,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_4thFloor:: @ 8220790 goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect end -LilycoveCity_DepartmentStoreElevator_EventScript_5thFloor:: @ 82207B8 +LilycoveCity_DepartmentStoreElevator_EventScript_5thFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_5F setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F, 255, 2, 1 compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_5F @@ -107,12 +107,12 @@ LilycoveCity_DepartmentStoreElevator_EventScript_5thFloor:: @ 82207B8 goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect end -LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect:: @ 82207E0 +LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect:: special CloseDeptStoreElevatorWindow release end -LilycoveCity_DepartmentStoreElevator_EventScript_MoveElevator:: @ 82207E5 +LilycoveCity_DepartmentStoreElevator_EventScript_MoveElevator:: special CloseDeptStoreElevatorWindow closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestDown @@ -123,7 +123,7 @@ LilycoveCity_DepartmentStoreElevator_EventScript_MoveElevator:: @ 82207E5 setflag FLAG_TEMP_2 return -LilycoveCity_DepartmentStoreElevator_EventScript_SetFloor:: @ 82207FC +LilycoveCity_DepartmentStoreElevator_EventScript_SetFloor:: special SetDeptStoreFloor return diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc index 8d7459b3c3..e91ca7745c 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc @@ -1,8 +1,8 @@ -LilycoveCity_DepartmentStoreRooftop_MapScripts:: @ 8220207 +LilycoveCity_DepartmentStoreRooftop_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LilycoveCity_DepartmentStoreRooftop_OnTransition .byte 0 -LilycoveCity_DepartmentStoreRooftop_OnTransition: @ 822020D +LilycoveCity_DepartmentStoreRooftop_OnTransition: getpricereduction POKENEWS_LILYCOVE compare VAR_RESULT, TRUE call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_ShowSaleWoman @@ -10,15 +10,15 @@ LilycoveCity_DepartmentStoreRooftop_OnTransition: @ 822020D call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_HideSaleWoman end -LilycoveCity_DepartmentStoreRooftop_EventScript_ShowSaleWoman:: @ 8220227 +LilycoveCity_DepartmentStoreRooftop_EventScript_ShowSaleWoman:: clearflag FLAG_HIDE_LILYCOVE_DEPARTMENT_STORE_ROOFTOP_SALE_WOMAN return -LilycoveCity_DepartmentStoreRooftop_EventScript_HideSaleWoman:: @ 822022B +LilycoveCity_DepartmentStoreRooftop_EventScript_HideSaleWoman:: setflag FLAG_HIDE_LILYCOVE_DEPARTMENT_STORE_ROOFTOP_SALE_WOMAN return -LilycoveCity_DepartmentStoreRooftop_EventScript_SaleWoman:: @ 822022F +LilycoveCity_DepartmentStoreRooftop_EventScript_SaleWoman:: lock faceplayer message gText_HowMayIServeYou @@ -29,7 +29,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_SaleWoman:: @ 822022F end .align 2 -LilycoveCity_DepartmentStoreRooftop_PokemartDecor_ClearOutSale: @ 8220248 +LilycoveCity_DepartmentStoreRooftop_PokemartDecor_ClearOutSale: .2byte DECOR_MUD_BALL .2byte DECOR_FENCE_LENGTH .2byte DECOR_FENCE_WIDTH @@ -48,7 +48,7 @@ LilycoveCity_DepartmentStoreRooftop_PokemartDecor_ClearOutSale: @ 8220248 release end -LilycoveCity_DepartmentStoreRooftop_EventScript_Man:: @ 8220268 +LilycoveCity_DepartmentStoreRooftop_EventScript_Man:: lock faceplayer getpricereduction POKENEWS_LILYCOVE @@ -58,16 +58,16 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_Man:: @ 8220268 release end -LilycoveCity_DepartmentStoreRooftop_EventScript_ManClearOutSale:: @ 8220282 +LilycoveCity_DepartmentStoreRooftop_EventScript_ManClearOutSale:: msgbox LilycoveCity_DepartmentStoreRooftop_Text_BeenWaitingForClearOutSale, MSGBOX_DEFAULT release end -LilycoveCity_DepartmentStoreRooftop_EventScript_ThirstyMan:: @ 822028C +LilycoveCity_DepartmentStoreRooftop_EventScript_ThirstyMan:: msgbox LilycoveCity_DepartmentStoreRooftop_Text_BoneDryThirsty, MSGBOX_NPC end -LilycoveCity_DepartmentStoreRooftop_EventScript_VendingMachine:: @ 8220295 +LilycoveCity_DepartmentStoreRooftop_EventScript_VendingMachine:: lockall message LilycoveCity_DepartmentStoreRooftop_Text_WhichDrinkWouldYouLike waitmessage @@ -75,8 +75,8 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_VendingMachine:: @ 8220295 goto LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseDrink end -LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseDrink:: @ 82202A6 - multichoice 16, 0, MULTI_VENDING_MACHINE, 0 +LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseDrink:: + multichoice 16, 0, MULTI_VENDING_MACHINE, FALSE copyvar VAR_TEMP_1, VAR_RESULT switch VAR_TEMP_1 case 0, LilycoveCity_DepartmentStoreRooftop_EventScript_FreshWater @@ -86,46 +86,46 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseDrink:: @ 82202A6 goto LilycoveCity_DepartmentStoreRooftop_EventScript_ExitVendingMachine end -LilycoveCity_DepartmentStoreRooftop_EventScript_FreshWater:: @ 82202E4 +LilycoveCity_DepartmentStoreRooftop_EventScript_FreshWater:: setvar VAR_TEMP_0, ITEM_FRESH_WATER goto LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink end -LilycoveCity_DepartmentStoreRooftop_EventScript_SodaPop:: @ 82202EF +LilycoveCity_DepartmentStoreRooftop_EventScript_SodaPop:: setvar VAR_TEMP_0, ITEM_SODA_POP goto LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink end -LilycoveCity_DepartmentStoreRooftop_EventScript_Lemonade:: @ 82202FA +LilycoveCity_DepartmentStoreRooftop_EventScript_Lemonade:: setvar VAR_TEMP_0, ITEM_LEMONADE goto LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink end -LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyFreshWater:: @ 8220305 +LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyFreshWater:: checkmoney 200, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneySodaPop:: @ 822030C +LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneySodaPop:: checkmoney 300, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyLemonade:: @ 8220313 +LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyLemonade:: checkmoney 350, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyFreshWater:: @ 822031A +LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyFreshWater:: removemoney 200, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneySodaPop:: @ 8220321 +LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneySodaPop:: removemoney 300, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade:: @ 8220328 +LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade:: removemoney 350, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F +LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: compare VAR_TEMP_1, 0 call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyFreshWater compare VAR_TEMP_1, 1 @@ -178,57 +178,57 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F goto LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseNewDrink end -LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseNewDrink:: @ 8220436 +LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseNewDrink:: message LilycoveCity_DepartmentStoreRooftop_Text_WhichDrinkWouldYouLike waitmessage goto LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseDrink end -LilycoveCity_DepartmentStoreRooftop_EventScript_NotEnoughMoneyForDrink:: @ 8220442 +LilycoveCity_DepartmentStoreRooftop_EventScript_NotEnoughMoneyForDrink:: msgbox LilycoveCity_DepartmentStoreRooftop_Text_NotEnoughMoney, MSGBOX_DEFAULT goto LilycoveCity_DepartmentStoreRooftop_EventScript_ExitVendingMachine end -LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink:: @ 8220450 +LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink:: msgbox gText_TheBagIsFull, MSGBOX_DEFAULT goto LilycoveCity_DepartmentStoreRooftop_EventScript_ExitVendingMachine end -LilycoveCity_DepartmentStoreRooftop_EventScript_ExitVendingMachine:: @ 822045E +LilycoveCity_DepartmentStoreRooftop_EventScript_ExitVendingMachine:: hidemoneybox releaseall end -LilycoveCity_DepartmentStoreRooftop_Text_SetDatesForClearOutSales: @ 8220463 +LilycoveCity_DepartmentStoreRooftop_Text_SetDatesForClearOutSales: .string "Don't they have set dates for their\n" .string "clear-out sales?\p" .string "I watch TV, but they never show any\n" .string "commercials.$" -LilycoveCity_DepartmentStoreRooftop_Text_BeenWaitingForClearOutSale: @ 82204C9 +LilycoveCity_DepartmentStoreRooftop_Text_BeenWaitingForClearOutSale: .string "Yes! I've been waiting a long time for\n" .string "this clear-out sale.\p" .string "They have items that you can only get\n" .string "here. I'm going to load up, that I am!$" -LilycoveCity_DepartmentStoreRooftop_Text_BoneDryThirsty: @ 8220552 +LilycoveCity_DepartmentStoreRooftop_Text_BoneDryThirsty: .string "Ohh… I'm bone-dry thirsty!$" -LilycoveCity_DepartmentStoreRooftop_Text_WhichDrinkWouldYouLike: @ 822056D +LilycoveCity_DepartmentStoreRooftop_Text_WhichDrinkWouldYouLike: .string "It's a VENDING MACHINE.\n" .string "Which drink would you like?$" -LilycoveCity_DepartmentStoreRooftop_Text_CanOfDrinkDroppedDown: @ 82205A1 +LilycoveCity_DepartmentStoreRooftop_Text_CanOfDrinkDroppedDown: .string "Clang!\p" .string "A can of {STR_VAR_1} dropped down.$" -LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown: @ 82205C2 +LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown: .string "Clang!\p" .string "Score! An extra can of {STR_VAR_1}\n" .string "dropped down!$" -LilycoveCity_DepartmentStoreRooftop_Text_NotEnoughMoney: @ 82205F1 +LilycoveCity_DepartmentStoreRooftop_Text_NotEnoughMoney: .string "Not enough money…$" -LilycoveCity_DepartmentStoreRooftop_Text_DecidedAgainstBuyingDrink: @ 8220603 +LilycoveCity_DepartmentStoreRooftop_Text_DecidedAgainstBuyingDrink: .string "Decided against buying a drink.$" diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc index 191220091c..e1167ad7ea 100644 --- a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc @@ -1,13 +1,13 @@ .set LOCALID_LOTTERY_CLERK, 2 -LilycoveCity_DepartmentStore_1F_MapScripts:: @ 821F692 +LilycoveCity_DepartmentStore_1F_MapScripts:: .byte 0 -LilycoveCity_DepartmentStore_1F_EventScript_Greeter:: @ 821F693 +LilycoveCity_DepartmentStore_1F_EventScript_Greeter:: msgbox LilycoveCity_DepartmentStore_1F_Text_WelcomeToDeptStore, MSGBOX_NPC end -LilycoveCity_DepartmentStore_1F_EventScript_LotteryClerk:: @ 821F69C +LilycoveCity_DepartmentStore_1F_EventScript_LotteryClerk:: lock faceplayer dotimebasedevents @@ -57,62 +57,62 @@ LilycoveCity_DepartmentStore_1F_EventScript_LotteryClerk:: @ 821F69C goto LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain2 end -LilycoveCity_DepartmentStore_1F_EventScript_TicketMatchPartyMon:: @ 821F77B +LilycoveCity_DepartmentStore_1F_EventScript_TicketMatchPartyMon:: msgbox LilycoveCity_DepartmentStore_1F_Text_TicketMatchesPartyMon, MSGBOX_DEFAULT return -LilycoveCity_DepartmentStore_1F_EventScript_TicketMatchPCMon:: @ 821F784 +LilycoveCity_DepartmentStore_1F_EventScript_TicketMatchPCMon:: msgbox LilycoveCity_DepartmentStore_1F_Text_TicketMatchesPCMon, MSGBOX_DEFAULT return -LilycoveCity_DepartmentStore_1F_EventScript_ComeBackTomorrow:: @ 821F78D +LilycoveCity_DepartmentStore_1F_EventScript_ComeBackTomorrow:: msgbox LilycoveCity_DepartmentStore_1F_Text_ComeBackTomorrow, MSGBOX_DEFAULT release end -LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain:: @ 821F797 +LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain:: msgbox LilycoveCity_DepartmentStore_1F_Text_PleaseVisitAgain, MSGBOX_DEFAULT release end -LilycoveCity_DepartmentStore_1F_EventScript_NoMatch:: @ 821F7A1 +LilycoveCity_DepartmentStore_1F_EventScript_NoMatch:: msgbox LilycoveCity_DepartmentStore_1F_Text_NoNumbersMatched, MSGBOX_DEFAULT goto LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain2 end -LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain2:: @ 821F7AF +LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain2:: msgbox LilycoveCity_DepartmentStore_1F_Text_PleaseVisitAgain2, MSGBOX_DEFAULT release end -LilycoveCity_DepartmentStore_1F_EventScript_TwoDigitMatch:: @ 821F7B9 +LilycoveCity_DepartmentStore_1F_EventScript_TwoDigitMatch:: msgbox LilycoveCity_DepartmentStore_1F_Text_TwoDigitsMatched, MSGBOX_DEFAULT return -LilycoveCity_DepartmentStore_1F_EventScript_ThreeDigitMatch:: @ 821F7C2 +LilycoveCity_DepartmentStore_1F_EventScript_ThreeDigitMatch:: msgbox LilycoveCity_DepartmentStore_1F_Text_ThreeDigitsMatched, MSGBOX_DEFAULT return -LilycoveCity_DepartmentStore_1F_EventScript_FourDigitMatch:: @ 821F7CB +LilycoveCity_DepartmentStore_1F_EventScript_FourDigitMatch:: msgbox LilycoveCity_DepartmentStore_1F_Text_FourDigitsMatched, MSGBOX_DEFAULT return -LilycoveCity_DepartmentStore_1F_EventScript_FullMatch:: @ 821F7D4 +LilycoveCity_DepartmentStore_1F_EventScript_FullMatch:: msgbox LilycoveCity_DepartmentStore_1F_Text_AllFiveDigitsMatched, MSGBOX_DEFAULT return -LilycoveCity_DepartmentStore_1F_EventScript_RecordPrizeNoRoom:: @ 821F7DD +LilycoveCity_DepartmentStore_1F_EventScript_RecordPrizeNoRoom:: copyvar VAR_POKELOT_PRIZE_PLACE, VAR_0x8004 copyvar VAR_POKELOT_PRIZE_ITEM, VAR_0x8005 goto LilycoveCity_DepartmentStore_1F_EventScript_NoRoomForPrize end -LilycoveCity_DepartmentStore_1F_EventScript_NoRoomForPrize:: @ 821F7ED +LilycoveCity_DepartmentStore_1F_EventScript_NoRoomForPrize:: msgbox LilycoveCity_DepartmentStore_1F_Text_NoRoomForThis, MSGBOX_DEFAULT release end -LilycoveCity_DepartmentStore_1F_EventScript_GivePrizeFromEarlier:: @ 821F7F7 +LilycoveCity_DepartmentStore_1F_EventScript_GivePrizeFromEarlier:: msgbox LilycoveCity_DepartmentStore_1F_Text_PrizeWeveBeenHolding, MSGBOX_DEFAULT giveitem VAR_POKELOT_PRIZE_ITEM compare VAR_RESULT, FALSE @@ -125,19 +125,19 @@ LilycoveCity_DepartmentStore_1F_EventScript_GivePrizeFromEarlier:: @ 821F7F7 release end -LilycoveCity_DepartmentStore_1F_EventScript_PokefanF:: @ 821F82F +LilycoveCity_DepartmentStore_1F_EventScript_PokefanF:: msgbox LilycoveCity_DepartmentStore_1F_Text_IBuyAllSortsOfThings, MSGBOX_NPC end -LilycoveCity_DepartmentStore_1F_EventScript_LittleGirl:: @ 821F838 +LilycoveCity_DepartmentStore_1F_EventScript_LittleGirl:: msgbox LilycoveCity_DepartmentStore_1F_Text_MomBuyingMeFurniture, MSGBOX_NPC end -LilycoveCity_DepartmentStore_1F_EventScript_PokefanM:: @ 821F841 +LilycoveCity_DepartmentStore_1F_EventScript_PokefanM:: msgbox LilycoveCity_DepartmentStore_1F_Text_BuyingSomethingForAzumarill, MSGBOX_NPC end -LilycoveCity_DepartmentStore_1F_EventScript_Azumarill:: @ 821F84A +LilycoveCity_DepartmentStore_1F_EventScript_Azumarill:: lock faceplayer waitse @@ -147,30 +147,30 @@ LilycoveCity_DepartmentStore_1F_EventScript_Azumarill:: @ 821F84A release end -LilycoveCity_DepartmentStore_1F_EventScript_FloorNamesSign:: @ 821F85D +LilycoveCity_DepartmentStore_1F_EventScript_FloorNamesSign:: msgbox LilycoveCity_DepartmentStore_1F_Text_FloorNamesSign, MSGBOX_SIGN end -LilycoveCity_DepartmentStore_1F_Text_WelcomeToDeptStore: @ 821F866 +LilycoveCity_DepartmentStore_1F_Text_WelcomeToDeptStore: .string "Welcome to LILYCOVE DEPARTMENT STORE.$" -LilycoveCity_DepartmentStore_1F_Text_IBuyAllSortsOfThings: @ 821F88C +LilycoveCity_DepartmentStore_1F_Text_IBuyAllSortsOfThings: .string "Whenever I come to the DEPARTMENT\n" .string "STORE, I always end up buying all sorts\l" .string "of things because it's so fun.$" -LilycoveCity_DepartmentStore_1F_Text_MomBuyingMeFurniture: @ 821F8F5 +LilycoveCity_DepartmentStore_1F_Text_MomBuyingMeFurniture: .string "Today, my mom is going to buy me some\n" .string "nice furniture.$" -LilycoveCity_DepartmentStore_1F_Text_BuyingSomethingForAzumarill: @ 821F92B +LilycoveCity_DepartmentStore_1F_Text_BuyingSomethingForAzumarill: .string "I'm buying something for my AZUMARILL\n" .string "as a reward for winning a CONTEST.$" -LilycoveCity_DepartmentStore_1F_Text_Azumarill: @ 821F974 +LilycoveCity_DepartmentStore_1F_Text_Azumarill: .string "AZUMARILL: Maririroo!$" -LilycoveCity_DepartmentStore_1F_Text_FloorNamesSign: @ 821F98A +LilycoveCity_DepartmentStore_1F_Text_FloorNamesSign: .string "1F: SERVICE COUNTER\n" .string " LOTTERY CORNER\p" .string "2F: TRAINER'S ZONE\p" @@ -180,7 +180,7 @@ LilycoveCity_DepartmentStore_1F_Text_FloorNamesSign: @ 821F98A .string "ROOFTOP: ROOFTOP PLAZA$" @ Unused -LilycoveCity_DepartmentStore_1F_Text_WirelessCommIsFun: @ 821FA13 +LilycoveCity_DepartmentStore_1F_Text_WirelessCommIsFun: .string "Wireless Communication is a\n" .string "lot of fun, isn't it?\p" .string "I think it lets you do things that\n" @@ -190,7 +190,7 @@ LilycoveCity_DepartmentStore_1F_Text_WirelessCommIsFun: @ 821FA13 .string "I think it's going to be exciting!$" @ Unused -LilycoveCity_DepartmentStore_1F_Text_SpreadWordAboutWirelessComm: @ 821FAE5 +LilycoveCity_DepartmentStore_1F_Text_SpreadWordAboutWirelessComm: .string "I want to spread the word about how\n" .string "fun Wireless Communication can be.$" diff --git a/data/maps/LilycoveCity_DepartmentStore_2F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_2F/scripts.inc index 9ced6b347b..478f5cfd31 100644 --- a/data/maps/LilycoveCity_DepartmentStore_2F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_2F/scripts.inc @@ -1,19 +1,19 @@ -LilycoveCity_DepartmentStore_2F_MapScripts:: @ 821FB2C +LilycoveCity_DepartmentStore_2F_MapScripts:: .byte 0 -LilycoveCity_DepartmentStore_2F_EventScript_Cook:: @ 821FB2D +LilycoveCity_DepartmentStore_2F_EventScript_Cook:: msgbox LilycoveCity_DepartmentStore_2F_Text_LearnToUseItemsProperly, MSGBOX_NPC end -LilycoveCity_DepartmentStore_2F_EventScript_PokefanF:: @ 821FB36 +LilycoveCity_DepartmentStore_2F_EventScript_PokefanF:: msgbox LilycoveCity_DepartmentStore_2F_Text_GoodGiftForHusband, MSGBOX_NPC end -LilycoveCity_DepartmentStore_2F_EventScript_Sailor:: @ 821FB3F +LilycoveCity_DepartmentStore_2F_EventScript_Sailor:: msgbox LilycoveCity_DepartmentStore_2F_Text_StockUpOnItems, MSGBOX_NPC end -LilycoveCity_DepartmentStore_2F_EventScript_ClerkLeft:: @ 821FB48 +LilycoveCity_DepartmentStore_2F_EventScript_ClerkLeft:: lock faceplayer message gText_HowMayIServeYou @@ -24,7 +24,7 @@ LilycoveCity_DepartmentStore_2F_EventScript_ClerkLeft:: @ 821FB48 end .align 2 -LilycoveCity_DepartmentStore_2F_Pokemart1: @ 821FB60 +LilycoveCity_DepartmentStore_2F_Pokemart1: .2byte ITEM_POKE_BALL .2byte ITEM_GREAT_BALL .2byte ITEM_ULTRA_BALL @@ -40,7 +40,7 @@ LilycoveCity_DepartmentStore_2F_Pokemart1: @ 821FB60 release end -LilycoveCity_DepartmentStore_2F_EventScript_ClerkRight:: @ 821FB7A +LilycoveCity_DepartmentStore_2F_EventScript_ClerkRight:: lock faceplayer message gText_HowMayIServeYou @@ -51,7 +51,7 @@ LilycoveCity_DepartmentStore_2F_EventScript_ClerkRight:: @ 821FB7A end .align 2 -LilycoveCity_DepartmentStore_2F_Pokemart2: @ 821FB94 +LilycoveCity_DepartmentStore_2F_Pokemart2: .2byte ITEM_POTION .2byte ITEM_SUPER_POTION .2byte ITEM_HYPER_POTION @@ -66,15 +66,15 @@ LilycoveCity_DepartmentStore_2F_Pokemart2: @ 821FB94 release end -LilycoveCity_DepartmentStore_2F_Text_LearnToUseItemsProperly: @ 821FBAC +LilycoveCity_DepartmentStore_2F_Text_LearnToUseItemsProperly: .string "Learn to use items properly.\n" .string "That's basic, really.$" -LilycoveCity_DepartmentStore_2F_Text_GoodGiftForHusband: @ 821FBDF +LilycoveCity_DepartmentStore_2F_Text_GoodGiftForHusband: .string "My husband is waiting at home.\n" .string "What would make a good gift for him?$" -LilycoveCity_DepartmentStore_2F_Text_StockUpOnItems: @ 821FC23 +LilycoveCity_DepartmentStore_2F_Text_StockUpOnItems: .string "I'm leaving on a long journey soon.\n" .string "I need to stock up on items.$" diff --git a/data/maps/LilycoveCity_DepartmentStore_3F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_3F/scripts.inc index bec38867c0..20480068b8 100644 --- a/data/maps/LilycoveCity_DepartmentStore_3F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_3F/scripts.inc @@ -1,7 +1,7 @@ -LilycoveCity_DepartmentStore_3F_MapScripts:: @ 821FC64 +LilycoveCity_DepartmentStore_3F_MapScripts:: .byte 0 -LilycoveCity_DepartmentStore_3F_EventScript_ClerkLeft:: @ 821FC65 +LilycoveCity_DepartmentStore_3F_EventScript_ClerkLeft:: lock faceplayer message gText_HowMayIServeYou @@ -11,7 +11,8 @@ LilycoveCity_DepartmentStore_3F_EventScript_ClerkLeft:: @ 821FC65 release end -LilycoveCity_DepartmentStore_3F_Pokemart_Vitamins: @ 821FC7C + .align 2 +LilycoveCity_DepartmentStore_3F_Pokemart_Vitamins: .2byte ITEM_PROTEIN .2byte ITEM_CALCIUM .2byte ITEM_IRON @@ -22,7 +23,7 @@ LilycoveCity_DepartmentStore_3F_Pokemart_Vitamins: @ 821FC7C release end -LilycoveCity_DepartmentStore_3F_EventScript_ClerkRight:: @ 821FC8C +LilycoveCity_DepartmentStore_3F_EventScript_ClerkRight:: lock faceplayer message gText_HowMayIServeYou @@ -33,7 +34,7 @@ LilycoveCity_DepartmentStore_3F_EventScript_ClerkRight:: @ 821FC8C end .align 2 -LilycoveCity_DepartmentStore_3F_Pokemart_StatBoosters: @ 821FCA4 +LilycoveCity_DepartmentStore_3F_Pokemart_StatBoosters: .2byte ITEM_X_SPEED .2byte ITEM_X_SPECIAL .2byte ITEM_X_ATTACK @@ -45,31 +46,31 @@ LilycoveCity_DepartmentStore_3F_Pokemart_StatBoosters: @ 821FCA4 release end -LilycoveCity_DepartmentStore_3F_EventScript_TriathleteM:: @ 821FCB6 +LilycoveCity_DepartmentStore_3F_EventScript_TriathleteM:: msgbox LilycoveCity_DepartmentStore_3F_Text_ItemsBestForTougheningPokemon, MSGBOX_NPC end -LilycoveCity_DepartmentStore_3F_EventScript_PokefanM:: @ 821FCBF +LilycoveCity_DepartmentStore_3F_EventScript_PokefanM:: msgbox LilycoveCity_DepartmentStore_3F_Text_WantMoreEndurance, MSGBOX_NPC end -LilycoveCity_DepartmentStore_3F_EventScript_Woman:: @ 821FCC8 +LilycoveCity_DepartmentStore_3F_EventScript_Woman:: msgbox LilycoveCity_DepartmentStore_3F_Text_GaveCarbosToSpeedUpMon, MSGBOX_NPC end -LilycoveCity_DepartmentStore_3F_Text_ItemsBestForTougheningPokemon: @ 821FCD1 +LilycoveCity_DepartmentStore_3F_Text_ItemsBestForTougheningPokemon: .string "For quickly toughening up POKéMON,\n" .string "items are the best.\p" .string "PROTEIN boosts ATTACK,\n" .string "and CALCIUM raises SP. ATK.$" -LilycoveCity_DepartmentStore_3F_Text_WantMoreEndurance: @ 821FD3B +LilycoveCity_DepartmentStore_3F_Text_WantMoreEndurance: .string "I want my POKéMON to have more\n" .string "endurance.\p" .string "I'm trying to decide whether to raise\n" .string "DEFENSE with IRON, or SP. DEF with ZINC.$" -LilycoveCity_DepartmentStore_3F_Text_GaveCarbosToSpeedUpMon: @ 821FDB4 +LilycoveCity_DepartmentStore_3F_Text_GaveCarbosToSpeedUpMon: .string "I gave a CARBOS to my POKéMON,\n" .string "and its SPEED went up.$" diff --git a/data/maps/LilycoveCity_DepartmentStore_4F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_4F/scripts.inc index 441697a7cc..d176781d6e 100644 --- a/data/maps/LilycoveCity_DepartmentStore_4F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_4F/scripts.inc @@ -1,19 +1,19 @@ -LilycoveCity_DepartmentStore_4F_MapScripts:: @ 821FDEA +LilycoveCity_DepartmentStore_4F_MapScripts:: .byte 0 -LilycoveCity_DepartmentStore_4F_EventScript_Gentleman:: @ 821FDEB +LilycoveCity_DepartmentStore_4F_EventScript_Gentleman:: msgbox LilycoveCity_DepartmentStore_4F_Text_AttackOrDefenseTM, MSGBOX_NPC end -LilycoveCity_DepartmentStore_4F_EventScript_Woman:: @ 821FDF4 +LilycoveCity_DepartmentStore_4F_EventScript_Woman:: msgbox LilycoveCity_DepartmentStore_4F_Text_FiftyDifferentTMs, MSGBOX_NPC end -LilycoveCity_DepartmentStore_4F_EventScript_Youngster:: @ 821FDFD +LilycoveCity_DepartmentStore_4F_EventScript_Youngster:: msgbox LilycoveCity_DepartmentStore_4F_Text_PokemonOnlyHaveFourMoves, MSGBOX_NPC end -LilycoveCity_DepartmentStore_4F_EventScript_ClerkLeft:: @ 821FE06 +LilycoveCity_DepartmentStore_4F_EventScript_ClerkLeft:: lock faceplayer message gText_HowMayIServeYou @@ -24,7 +24,7 @@ LilycoveCity_DepartmentStore_4F_EventScript_ClerkLeft:: @ 821FE06 end .align 2 -LilycoveCity_DepartmentStore_4F_Pokemart_AttackTMs: @ 821FE20 +LilycoveCity_DepartmentStore_4F_Pokemart_AttackTMs: .2byte ITEM_TM38 @ Fire Blast .2byte ITEM_TM25 @ Thunder .2byte ITEM_TM14 @ Blizzard @@ -33,7 +33,7 @@ LilycoveCity_DepartmentStore_4F_Pokemart_AttackTMs: @ 821FE20 release end -LilycoveCity_DepartmentStore_4F_EventScript_ClerkRight:: @ 821FE2C +LilycoveCity_DepartmentStore_4F_EventScript_ClerkRight:: lock faceplayer message gText_HowMayIServeYou @@ -44,7 +44,7 @@ LilycoveCity_DepartmentStore_4F_EventScript_ClerkRight:: @ 821FE2C end .align 2 -LilycoveCity_DepartmentStore_4F_Pokemart_DefenseTMs: @ 821FE44 +LilycoveCity_DepartmentStore_4F_Pokemart_DefenseTMs: .2byte ITEM_TM17 @ Protect .2byte ITEM_TM20 @ Safeguard .2byte ITEM_TM33 @ Reflect @@ -53,20 +53,20 @@ LilycoveCity_DepartmentStore_4F_Pokemart_DefenseTMs: @ 821FE44 release end -LilycoveCity_DepartmentStore_4F_Text_AttackOrDefenseTM: @ 821FE50 +LilycoveCity_DepartmentStore_4F_Text_AttackOrDefenseTM: .string "Hmm…\p" .string "An attacking move…\n" .string "Or a defensive move…\p" .string "It's no easy matter to decide which TM\n" .string "moves should be taught to POKéMON…$" -LilycoveCity_DepartmentStore_4F_Text_FiftyDifferentTMs: @ 821FEC7 +LilycoveCity_DepartmentStore_4F_Text_FiftyDifferentTMs: .string "There are so many different kinds of\n" .string "TM moves.\p" .string "A catalog I read said there are fifty\n" .string "different kinds.$" -LilycoveCity_DepartmentStore_4F_Text_PokemonOnlyHaveFourMoves: @ 821FF2D +LilycoveCity_DepartmentStore_4F_Text_PokemonOnlyHaveFourMoves: .string "I'd like to get all the different TMs,\n" .string "but a POKéMON learns only four moves.$" diff --git a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc index 2b36e3d27c..374bd8df73 100644 --- a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc @@ -1,23 +1,23 @@ .set LOCALID_WOMAN, 7 -LilycoveCity_DepartmentStore_5F_MapScripts:: @ 821FF7A +LilycoveCity_DepartmentStore_5F_MapScripts:: map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, LilycoveCity_DepartmentStore_5F_OnWarp .byte 0 @ During the abnormal weather from Kyogre/Groudon awakening the dept store rooftop is inaccessible @ Likely done to avoid dealing with showing the weather. Technically the rooftop is indoors -LilycoveCity_DepartmentStore_5F_OnWarp: @ 821FF80 +LilycoveCity_DepartmentStore_5F_OnWarp: map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 1, LilycoveCity_DepartmentStore_5F_EventScript_BlockRoofStairs map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 2, LilycoveCity_DepartmentStore_5F_EventScript_BlockRoofStairs map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 3, LilycoveCity_DepartmentStore_5F_EventScript_BlockRoofStairs .2byte 0 -LilycoveCity_DepartmentStore_5F_EventScript_BlockRoofStairs:: @ 821FF9A +LilycoveCity_DepartmentStore_5F_EventScript_BlockRoofStairs:: setobjectxy LOCALID_WOMAN, 16, 2 turnobject LOCALID_WOMAN, DIR_NORTH end -LilycoveCity_DepartmentStore_5F_EventScript_ClerkFarLeft:: @ 821FFA6 +LilycoveCity_DepartmentStore_5F_EventScript_ClerkFarLeft:: lock faceplayer message gText_HowMayIServeYou @@ -28,7 +28,7 @@ LilycoveCity_DepartmentStore_5F_EventScript_ClerkFarLeft:: @ 821FFA6 end .align 2 -LilycoveCity_DepartmentStore_5F_Pokemart_Dolls: @ 821FFC0 +LilycoveCity_DepartmentStore_5F_Pokemart_Dolls: .2byte DECOR_PICHU_DOLL .2byte DECOR_PIKACHU_DOLL .2byte DECOR_MARILL_DOLL @@ -45,7 +45,7 @@ LilycoveCity_DepartmentStore_5F_Pokemart_Dolls: @ 821FFC0 release end -LilycoveCity_DepartmentStore_5F_EventScript_ClerkMidLeft:: @ 821FFDC +LilycoveCity_DepartmentStore_5F_EventScript_ClerkMidLeft:: lock faceplayer message gText_HowMayIServeYou @@ -56,7 +56,7 @@ LilycoveCity_DepartmentStore_5F_EventScript_ClerkMidLeft:: @ 821FFDC end .align 2 -LilycoveCity_DepartmentStore_5F_Pokemart_Cushions: @ 821FFF4 +LilycoveCity_DepartmentStore_5F_Pokemart_Cushions: .2byte DECOR_PIKA_CUSHION .2byte DECOR_ROUND_CUSHION .2byte DECOR_ZIGZAG_CUSHION @@ -70,7 +70,7 @@ LilycoveCity_DepartmentStore_5F_Pokemart_Cushions: @ 821FFF4 release end -LilycoveCity_DepartmentStore_5F_EventScript_ClerkMidRight:: @ 822000A +LilycoveCity_DepartmentStore_5F_EventScript_ClerkMidRight:: lock faceplayer message gText_HowMayIServeYou @@ -81,7 +81,7 @@ LilycoveCity_DepartmentStore_5F_EventScript_ClerkMidRight:: @ 822000A end .align 2 -LilycoveCity_DepartmentStore_5F_Pokemart_Posters: @ 8220024 +LilycoveCity_DepartmentStore_5F_Pokemart_Posters: .2byte DECOR_BALL_POSTER .2byte DECOR_GREEN_POSTER .2byte DECOR_RED_POSTER @@ -95,7 +95,7 @@ LilycoveCity_DepartmentStore_5F_Pokemart_Posters: @ 8220024 release end -LilycoveCity_DepartmentStore_5F_EventScript_ClerkFarRight:: @ 822003A +LilycoveCity_DepartmentStore_5F_EventScript_ClerkFarRight:: lock faceplayer message gText_HowMayIServeYou @@ -106,7 +106,7 @@ LilycoveCity_DepartmentStore_5F_EventScript_ClerkFarRight:: @ 822003A end .align 2 -LilycoveCity_DepartmentStore_5F_Pokemart_Mats: @ 8220054 +LilycoveCity_DepartmentStore_5F_Pokemart_Mats: .2byte DECOR_SURF_MAT .2byte DECOR_THUNDER_MAT .2byte DECOR_FIRE_BLAST_MAT @@ -121,11 +121,11 @@ LilycoveCity_DepartmentStore_5F_Pokemart_Mats: @ 8220054 release end -LilycoveCity_DepartmentStore_5F_EventScript_PokefanF:: @ 822006C +LilycoveCity_DepartmentStore_5F_EventScript_PokefanF:: msgbox LilycoveCity_DepartmentStore_5F_Text_PlaceFullOfCuteDolls, MSGBOX_NPC end -LilycoveCity_DepartmentStore_5F_EventScript_Woman:: @ 8220075 +LilycoveCity_DepartmentStore_5F_EventScript_Woman:: lockall applymovement LOCALID_WOMAN, Common_Movement_FacePlayer waitmovement 0 @@ -136,13 +136,13 @@ LilycoveCity_DepartmentStore_5F_EventScript_Woman:: @ 8220075 goto LilycoveCity_DepartmentStore_5F_EventScript_WomanLegendaryWeather end -LilycoveCity_DepartmentStore_5F_EventScript_WomanNormal:: @ 822009C +LilycoveCity_DepartmentStore_5F_EventScript_WomanNormal:: msgbox LilycoveCity_DepartmentStore_5F_Text_SellManyCuteMatsHere, MSGBOX_DEFAULT closemessage releaseall end -LilycoveCity_DepartmentStore_5F_EventScript_WomanLegendaryWeather:: @ 82200A7 +LilycoveCity_DepartmentStore_5F_EventScript_WomanLegendaryWeather:: msgbox LilycoveCity_DepartmentStore_5F_Text_ClosedRooftopForWeather, MSGBOX_DEFAULT closemessage applymovement LOCALID_WOMAN, Common_Movement_WalkInPlaceFastestUp @@ -150,24 +150,24 @@ LilycoveCity_DepartmentStore_5F_EventScript_WomanLegendaryWeather:: @ 82200A7 releaseall end -LilycoveCity_DepartmentStore_5F_EventScript_LittleGirl:: @ 82200BC +LilycoveCity_DepartmentStore_5F_EventScript_LittleGirl:: msgbox LilycoveCity_DepartmentStore_5F_Text_GettingDollInsteadOfPokemon, MSGBOX_NPC end -LilycoveCity_DepartmentStore_5F_Text_PlaceFullOfCuteDolls: @ 82200C5 +LilycoveCity_DepartmentStore_5F_Text_PlaceFullOfCuteDolls: .string "This place is full of cute DOLLS.\p" .string "I should buy some for me, instead of\n" .string "just for my children.$" -LilycoveCity_DepartmentStore_5F_Text_GettingDollInsteadOfPokemon: @ 8220122 +LilycoveCity_DepartmentStore_5F_Text_GettingDollInsteadOfPokemon: .string "I'm not big enough to raise POKéMON,\n" .string "so I'm getting a cute DOLL instead.$" -LilycoveCity_DepartmentStore_5F_Text_SellManyCuteMatsHere: @ 822016B +LilycoveCity_DepartmentStore_5F_Text_SellManyCuteMatsHere: .string "They sell many cute MATS here.\p" .string "I wonder which one I should get?\n" .string "Maybe I'll buy them all…$" -LilycoveCity_DepartmentStore_5F_Text_ClosedRooftopForWeather: @ 82201C4 +LilycoveCity_DepartmentStore_5F_Text_ClosedRooftopForWeather: .string "I think they closed the rooftop\n" .string "because the weather is wild today.$" diff --git a/data/maps/LilycoveCity_Harbor/scripts.inc b/data/maps/LilycoveCity_Harbor/scripts.inc index 1d9ae6a01f..8f7f7d15ca 100644 --- a/data/maps/LilycoveCity_Harbor/scripts.inc +++ b/data/maps/LilycoveCity_Harbor/scripts.inc @@ -3,15 +3,15 @@ .set LOCALID_FERRY_SAILOR, 4 .set LOCALID_BRINEY, 5 -LilycoveCity_Harbor_MapScripts:: @ 821E000 +LilycoveCity_Harbor_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LilycoveCity_Harbor_OnTransition .byte 0 -LilycoveCity_Harbor_OnTransition: @ 821E006 +LilycoveCity_Harbor_OnTransition: setescapewarp MAP_LILYCOVE_CITY, 255, 12, 33 end -LilycoveCity_Harbor_EventScript_FerryAttendant:: @ 821E00F +LilycoveCity_Harbor_EventScript_FerryAttendant:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, LilycoveCity_Harbor_EventScript_FerryUnavailable @@ -37,7 +37,7 @@ LilycoveCity_Harbor_EventScript_FerryAttendant:: @ 821E00F end @ First goto_if_eq is unnecessary; identical scripts -LilycoveCity_Harbor_EventScript_NoFirstTimeEventTickets:: @ 821E080 +LilycoveCity_Harbor_EventScript_NoFirstTimeEventTickets:: compare VAR_TEMP_A, 0 goto_if_eq LilycoveCity_Harbor_EventScript_NoEventTickets msgbox LilycoveCity_Harbor_Text_MayISeeYourTicket, MSGBOX_DEFAULT @@ -46,7 +46,7 @@ LilycoveCity_Harbor_EventScript_NoFirstTimeEventTickets:: @ 821E080 goto LilycoveCity_Harbor_EventScript_FerryRegularLocationSelect end -LilycoveCity_Harbor_EventScript_FerryRegularLocationSelect:: @ 821E09F +LilycoveCity_Harbor_EventScript_FerryRegularLocationSelect:: setvar VAR_0x8004, 0 special ScriptMenu_CreateLilycoveSSTidalMultichoice waitstate @@ -62,35 +62,35 @@ LilycoveCity_Harbor_EventScript_FerryRegularLocationSelect:: @ 821E09F case MULTI_B_PRESSED, LilycoveCity_Harbor_EventScript_ExitSailSelect end -LilycoveCity_Harbor_EventScript_GoToSouthernIsland:: @ 821E109 +LilycoveCity_Harbor_EventScript_GoToSouthernIsland:: call LilycoveCity_Harbor_EventScript_BoardFerry warp MAP_SOUTHERN_ISLAND_EXTERIOR, 255, 13, 22 waitstate release end -LilycoveCity_Harbor_EventScript_GoToNavelRock:: @ 821E119 +LilycoveCity_Harbor_EventScript_GoToNavelRock:: call LilycoveCity_Harbor_EventScript_BoardFerry warp MAP_NAVEL_ROCK_HARBOR, 255, 8, 4 waitstate release end -LilycoveCity_Harbor_EventScript_GoToBirthIsland:: @ 821E129 +LilycoveCity_Harbor_EventScript_GoToBirthIsland:: call LilycoveCity_Harbor_EventScript_BoardFerry warp MAP_BIRTH_ISLAND_HARBOR, 255, 8, 4 waitstate release end -LilycoveCity_Harbor_EventScript_GoToFarawayIsland:: @ 821E139 +LilycoveCity_Harbor_EventScript_GoToFarawayIsland:: call LilycoveCity_Harbor_EventScript_BoardFerry warp MAP_FARAWAY_ISLAND_ENTRANCE, 255, 13, 38 waitstate release end -LilycoveCity_Harbor_EventScript_GoToSlateport:: @ 821E149 +LilycoveCity_Harbor_EventScript_GoToSlateport:: msgbox LilycoveCity_Harbor_Text_SlateportItIs, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind @@ -101,7 +101,7 @@ LilycoveCity_Harbor_EventScript_GoToSlateport:: @ 821E149 release end -LilycoveCity_Harbor_EventScript_GoToBattleFrontier:: @ 821E171 +LilycoveCity_Harbor_EventScript_GoToBattleFrontier:: msgbox LilycoveCity_Harbor_Text_BattleFrontierItIs, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind @@ -111,7 +111,7 @@ LilycoveCity_Harbor_EventScript_GoToBattleFrontier:: @ 821E171 release end -LilycoveCity_Harbor_EventScript_GetEonTicketState:: @ 821E194 +LilycoveCity_Harbor_EventScript_GetEonTicketState:: setvar VAR_TEMP_E, 0 goto_if_unset FLAG_ENABLE_SHIP_SOUTHERN_ISLAND, Common_EventScript_NopReturn checkitem ITEM_EON_TICKET, 1 @@ -122,7 +122,7 @@ LilycoveCity_Harbor_EventScript_GetEonTicketState:: @ 821E194 setvar VAR_TEMP_E, 2 return -LilycoveCity_Harbor_EventScript_GetAuroraTicketState:: @ 821E1C6 +LilycoveCity_Harbor_EventScript_GetAuroraTicketState:: setvar VAR_TEMP_D, 0 goto_if_unset FLAG_ENABLE_SHIP_BIRTH_ISLAND, Common_EventScript_NopReturn checkitem ITEM_AURORA_TICKET, 1 @@ -133,7 +133,7 @@ LilycoveCity_Harbor_EventScript_GetAuroraTicketState:: @ 821E1C6 setvar VAR_TEMP_D, 2 return -LilycoveCity_Harbor_EventScript_GetOldSeaMapState:: @ 821E1F8 +LilycoveCity_Harbor_EventScript_GetOldSeaMapState:: setvar VAR_TEMP_C, 0 goto_if_unset FLAG_ENABLE_SHIP_FARAWAY_ISLAND, Common_EventScript_NopReturn checkitem ITEM_OLD_SEA_MAP, 1 @@ -144,7 +144,7 @@ LilycoveCity_Harbor_EventScript_GetOldSeaMapState:: @ 821E1F8 setvar VAR_TEMP_C, 2 return -LilycoveCity_Harbor_EventScript_GetMysticTicketState:: @ 821E22A +LilycoveCity_Harbor_EventScript_GetMysticTicketState:: setvar VAR_TEMP_9, 0 goto_if_unset FLAG_ENABLE_SHIP_NAVEL_ROCK, Common_EventScript_NopReturn checkitem ITEM_MYSTIC_TICKET, 1 @@ -155,7 +155,7 @@ LilycoveCity_Harbor_EventScript_GetMysticTicketState:: @ 821E22A setvar VAR_TEMP_9, 2 return -LilycoveCity_Harbor_EventScript_GetFirstTimeShowingTicket:: @ 821E25C +LilycoveCity_Harbor_EventScript_GetFirstTimeShowingTicket:: setvar VAR_TEMP_B, 0 compare VAR_TEMP_E, 2 call_if_eq LilycoveCity_Harbor_EventScript_SetFirstTimeShowingEonTicket @@ -167,23 +167,23 @@ LilycoveCity_Harbor_EventScript_GetFirstTimeShowingTicket:: @ 821E25C call_if_eq LilycoveCity_Harbor_EventScript_SetFirstTimeShowingMysticTicket return -LilycoveCity_Harbor_EventScript_SetFirstTimeShowingEonTicket:: @ 821E28E +LilycoveCity_Harbor_EventScript_SetFirstTimeShowingEonTicket:: addvar VAR_TEMP_B, 1 return -LilycoveCity_Harbor_EventScript_SetFirstTimeShowingAuroraTicket:: @ 821E294 +LilycoveCity_Harbor_EventScript_SetFirstTimeShowingAuroraTicket:: addvar VAR_TEMP_B, 2 return -LilycoveCity_Harbor_EventScript_SetFirstTimeShowingOldSeaMap:: @ 821E29A +LilycoveCity_Harbor_EventScript_SetFirstTimeShowingOldSeaMap:: addvar VAR_TEMP_B, 4 return -LilycoveCity_Harbor_EventScript_SetFirstTimeShowingMysticTicket:: @ 821E2A0 +LilycoveCity_Harbor_EventScript_SetFirstTimeShowingMysticTicket:: addvar VAR_TEMP_B, 8 return -LilycoveCity_Harbor_EventScript_GetHasTicketsState:: @ 821E2A6 +LilycoveCity_Harbor_EventScript_GetHasTicketsState:: setvar VAR_TEMP_A, 0 compare VAR_TEMP_E, 1 call_if_eq LilycoveCity_Harbor_EventScript_SetHasEonTicket @@ -195,23 +195,23 @@ LilycoveCity_Harbor_EventScript_GetHasTicketsState:: @ 821E2A6 call_if_eq LilycoveCity_Harbor_EventScript_SetHasMysticTicket return -LilycoveCity_Harbor_EventScript_SetHasEonTicket:: @ 821E2D8 +LilycoveCity_Harbor_EventScript_SetHasEonTicket:: addvar VAR_TEMP_A, 1 return -LilycoveCity_Harbor_EventScript_SetHasAuroraTicket:: @ 821E2DE +LilycoveCity_Harbor_EventScript_SetHasAuroraTicket:: addvar VAR_TEMP_A, 2 return -LilycoveCity_Harbor_EventScript_SetHasOldSeaMap:: @ 821E2E4 +LilycoveCity_Harbor_EventScript_SetHasOldSeaMap:: addvar VAR_TEMP_A, 4 return -LilycoveCity_Harbor_EventScript_SetHasMysticTicket:: @ 821E2EA +LilycoveCity_Harbor_EventScript_SetHasMysticTicket:: addvar VAR_TEMP_A, 8 return -LilycoveCity_Harbor_EventScript_EonTicketFirstTime:: @ 821E2F0 +LilycoveCity_Harbor_EventScript_EonTicketFirstTime:: setflag FLAG_SHOWN_EON_TICKET msgbox EventTicket_Text_ThatPass, MSGBOX_DEFAULT closemessage @@ -220,7 +220,7 @@ LilycoveCity_Harbor_EventScript_EonTicketFirstTime:: @ 821E2F0 goto LilycoveCity_Harbor_EventScript_GoToSouthernIslandFirstTime end -LilycoveCity_Harbor_EventScript_GoToSouthernIslandFirstTime:: @ 821E30F +LilycoveCity_Harbor_EventScript_GoToSouthernIslandFirstTime:: closemessage call LilycoveCity_Harbor_EventScript_BoardFerryWithSailor warp MAP_SOUTHERN_ISLAND_EXTERIOR, 255, 13, 22 @@ -228,7 +228,7 @@ LilycoveCity_Harbor_EventScript_GoToSouthernIslandFirstTime:: @ 821E30F release end -LilycoveCity_Harbor_EventScript_AuroraTicketFirstTime:: @ 821E320 +LilycoveCity_Harbor_EventScript_AuroraTicketFirstTime:: setflag FLAG_SHOWN_AURORA_TICKET msgbox EventTicket_Text_ThatPass, MSGBOX_DEFAULT closemessage @@ -237,7 +237,7 @@ LilycoveCity_Harbor_EventScript_AuroraTicketFirstTime:: @ 821E320 goto LilycoveCity_Harbor_EventScript_GoToBirthIslandFirstTime end -LilycoveCity_Harbor_EventScript_GoToBirthIslandFirstTime:: @ 821E33F +LilycoveCity_Harbor_EventScript_GoToBirthIslandFirstTime:: closemessage call LilycoveCity_Harbor_EventScript_BoardFerryWithSailor warp MAP_BIRTH_ISLAND_HARBOR, 255, 8, 4 @@ -245,7 +245,7 @@ LilycoveCity_Harbor_EventScript_GoToBirthIslandFirstTime:: @ 821E33F release end -LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime:: @ 821E350 +LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime:: setflag FLAG_SHOWN_OLD_SEA_MAP msgbox EventTicket_Text_ShowOldSeaMap, MSGBOX_DEFAULT closemessage @@ -286,7 +286,7 @@ LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime:: @ 821E350 release end -LilycoveCity_Harbor_EventScript_GoToFarawayIslandFirstTime:: @ 821E40C +LilycoveCity_Harbor_EventScript_GoToFarawayIslandFirstTime:: closemessage call LilycoveCity_Harbor_EventScript_BoardFerryWithSailor warp MAP_FARAWAY_ISLAND_ENTRANCE, 255, 13, 38 @@ -294,7 +294,7 @@ LilycoveCity_Harbor_EventScript_GoToFarawayIslandFirstTime:: @ 821E40C release end -LilycoveCity_Harbor_EventScript_MysticTicketFirstTime:: @ 821E41D +LilycoveCity_Harbor_EventScript_MysticTicketFirstTime:: setflag FLAG_SHOWN_MYSTIC_TICKET msgbox EventTicket_Text_ThatPass, MSGBOX_DEFAULT closemessage @@ -303,7 +303,7 @@ LilycoveCity_Harbor_EventScript_MysticTicketFirstTime:: @ 821E41D goto LilycoveCity_Harbor_EventScript_GoToNavelRockFirstTime end -LilycoveCity_Harbor_EventScript_GoToNavelRockFirstTime:: @ 821E43C +LilycoveCity_Harbor_EventScript_GoToNavelRockFirstTime:: closemessage call LilycoveCity_Harbor_EventScript_BoardFerryWithSailor warp MAP_NAVEL_ROCK_HARBOR, 255, 8, 4 @@ -311,7 +311,7 @@ LilycoveCity_Harbor_EventScript_GoToNavelRockFirstTime:: @ 821E43C release end -LilycoveCity_Harbor_EventScript_MultipleEventTicketsFirstTime:: @ 821E44D +LilycoveCity_Harbor_EventScript_MultipleEventTicketsFirstTime:: msgbox EventTicket_Text_ThatPass, MSGBOX_DEFAULT closemessage call LilycoveCity_Harbor_EventScript_GetEventTicketSailor @@ -331,7 +331,7 @@ LilycoveCity_Harbor_EventScript_MultipleEventTicketsFirstTime:: @ 821E44D release end -LilycoveCity_Harbor_EventScript_ExitFirstTimeTicketSailSelect:: @ 821E4B6 +LilycoveCity_Harbor_EventScript_ExitFirstTimeTicketSailSelect:: msgbox EventTicket_Text_AsYouLike, MSGBOX_DEFAULT closemessage applymovement LOCALID_FERRY_SAILOR, Common_Movement_WalkInPlaceFastestUp @@ -347,7 +347,7 @@ LilycoveCity_Harbor_EventScript_ExitFirstTimeTicketSailSelect:: @ 821E4B6 release end -LilycoveCity_Harbor_EventScript_GetEventTicketSailor:: @ 821E4EE +LilycoveCity_Harbor_EventScript_GetEventTicketSailor:: applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestUp waitmovement 0 delay 30 @@ -359,7 +359,7 @@ LilycoveCity_Harbor_EventScript_GetEventTicketSailor:: @ 821E4EE waitmovement 0 return -LilycoveCity_Harbor_EventScript_BoardFerryWithSailor:: @ 821E514 +LilycoveCity_Harbor_EventScript_BoardFerryWithSailor:: applymovement LOCALID_FERRY_SAILOR, Common_Movement_WalkInPlaceFastestUp waitmovement 0 delay 30 @@ -374,12 +374,12 @@ LilycoveCity_Harbor_EventScript_BoardFerryWithSailor:: @ 821E514 call Common_EventScript_FerryDepart return -LilycoveCity_Harbor_EventScript_FerryUnavailable:: @ 821E54D +LilycoveCity_Harbor_EventScript_FerryUnavailable:: msgbox LilycoveCity_Harbor_Text_FerryUnavailable, MSGBOX_DEFAULT release end -LilycoveCity_Harbor_EventScript_NoEventTickets:: @ 821E557 +LilycoveCity_Harbor_EventScript_NoEventTickets:: msgbox LilycoveCity_Harbor_Text_MayISeeYourTicket, MSGBOX_DEFAULT message LilycoveCity_Harbor_Text_FlashTicketWhereTo waitmessage @@ -387,13 +387,13 @@ LilycoveCity_Harbor_EventScript_NoEventTickets:: @ 821E557 end @ Unused -LilycoveCity_Harbor_EventScript_NoTicket:: @ 821E56B +LilycoveCity_Harbor_EventScript_NoTicket:: msgbox LilycoveCity_Harbor_Text_NoTicket, MSGBOX_DEFAULT release end @ Unused -LilycoveCity_Harbor_EventScript_GoToSlateportUnused:: @ 821E575 +LilycoveCity_Harbor_EventScript_GoToSlateportUnused:: msgbox LilycoveCity_Harbor_Text_SlateportItIs, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind @@ -405,7 +405,7 @@ LilycoveCity_Harbor_EventScript_GoToSlateportUnused:: @ 821E575 end @ Unused -LilycoveCity_Harbor_EventScript_GoToBattleFrontierUnused:: @ 821E59D +LilycoveCity_Harbor_EventScript_GoToBattleFrontierUnused:: msgbox LilycoveCity_Harbor_Text_BattleFrontierItIs, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind @@ -415,13 +415,13 @@ LilycoveCity_Harbor_EventScript_GoToBattleFrontierUnused:: @ 821E59D release end -LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind:: @ 821E5C0 +LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind:: message LilycoveCity_Harbor_Text_WhereWouldYouLikeToGo waitmessage goto LilycoveCity_Harbor_EventScript_FerryRegularLocationSelect end -LilycoveCity_Harbor_EventScript_BoardFerry:: @ 821E5CC +LilycoveCity_Harbor_EventScript_BoardFerry:: msgbox LilycoveCity_Harbor_Text_PleaseBoard, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestUp @@ -438,35 +438,35 @@ LilycoveCity_Harbor_EventScript_BoardFerry:: @ 821E5CC call Common_EventScript_FerryDepart return -LilycoveCity_Harbor_EventScript_PlayerBoardFerryEast:: @ 821E610 +LilycoveCity_Harbor_EventScript_PlayerBoardFerryEast:: applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_Harbor_Movement_PlayerBoardFerryEast waitmovement 0 return -LilycoveCity_Harbor_EventScript_PlayerBoardFerryNorth:: @ 821E61B +LilycoveCity_Harbor_EventScript_PlayerBoardFerryNorth:: applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_Harbor_Movement_PlayerBoardFerryNorth waitmovement 0 return -LilycoveCity_Harbor_EventScript_ExitSailSelect:: @ 821E626 +LilycoveCity_Harbor_EventScript_ExitSailSelect:: msgbox LilycoveCity_Harbor_Text_SailAnotherTime, MSGBOX_DEFAULT release end -LilycoveCity_Harbor_Movement_PlayerBoardFerryEast: @ 821E630 +LilycoveCity_Harbor_Movement_PlayerBoardFerryEast: walk_right walk_in_place_fastest_up step_end -LilycoveCity_Harbor_Movement_PlayerBoardFerryNorth: @ 821E633 +LilycoveCity_Harbor_Movement_PlayerBoardFerryNorth: walk_up step_end -LilycoveCity_Harbor_Movement_UnusedBoardFerry: @ 821E635 +LilycoveCity_Harbor_Movement_UnusedBoardFerry: walk_up step_end -LilycoveCity_Harbor_EventScript_Sailor:: @ 821E637 +LilycoveCity_Harbor_EventScript_Sailor:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_Harbor_EventScript_SailorFerryAvailable @@ -474,82 +474,82 @@ LilycoveCity_Harbor_EventScript_Sailor:: @ 821E637 release end -LilycoveCity_Harbor_EventScript_SailorFerryAvailable:: @ 821E64C +LilycoveCity_Harbor_EventScript_SailorFerryAvailable:: msgbox LilycoveCity_Harbor_Text_SailorFerryAvailable, MSGBOX_DEFAULT release end -LilycoveCity_Harbor_EventScript_MoveSailorOutOfWayNorth:: @ 821E656 +LilycoveCity_Harbor_EventScript_MoveSailorOutOfWayNorth:: applymovement LOCALID_FERRY_SAILOR, LilycoveCity_Harbor_Movement_SailorOutOfWayNorth waitmovement 0 return -LilycoveCity_Harbor_EventScript_MoveSailorOutOfWayEast:: @ 821E661 +LilycoveCity_Harbor_EventScript_MoveSailorOutOfWayEast:: applymovement LOCALID_FERRY_SAILOR, LilycoveCity_Harbor_Movement_SailorOutOfWayEast waitmovement 0 return -LilycoveCity_Harbor_Movement_SailorOutOfWayNorth: @ 821E66C +LilycoveCity_Harbor_Movement_SailorOutOfWayNorth: walk_in_place_fastest_right lock_facing_direction walk_left unlock_facing_direction step_end -LilycoveCity_Harbor_Movement_SailorOutOfWayEast: @ 821E671 +LilycoveCity_Harbor_Movement_SailorOutOfWayEast: lock_facing_direction walk_down unlock_facing_direction step_end -LilycoveCity_Harbor_EventScript_BrineyFaceSailorNorth:: @ 821E675 +LilycoveCity_Harbor_EventScript_BrineyFaceSailorNorth:: applymovement LOCALID_BRINEY, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -LilycoveCity_Harbor_EventScript_BrineyFaceSailorEast:: @ 821E680 +LilycoveCity_Harbor_EventScript_BrineyFaceSailorEast:: applymovement LOCALID_BRINEY, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -LilycoveCity_Harbor_EventScript_BrineyFacePlayerNorth:: @ 821E68B +LilycoveCity_Harbor_EventScript_BrineyFacePlayerNorth:: applymovement LOCALID_BRINEY, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -LilycoveCity_Harbor_EventScript_BrineyFacePlayerEast:: @ 821E696 +LilycoveCity_Harbor_EventScript_BrineyFacePlayerEast:: applymovement LOCALID_BRINEY, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -LilycoveCity_Harbor_EventScript_BoardFerryWithBrineyAndSailorNorth:: @ 821E6A1 +LilycoveCity_Harbor_EventScript_BoardFerryWithBrineyAndSailorNorth:: applymovement LOCALID_BRINEY, LilycoveCity_Harbor_Movement_BrineyBoardFerry applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_Harbor_Movement_PlayerBoardWithBrineyNorth applymovement LOCALID_FERRY_SAILOR, LilycoveCity_Harbor_Movement_SailorBoardWithBrineyNorth waitmovement 0 return -LilycoveCity_Harbor_EventScript_BoardFerryWithBrineyAndSailorEast:: @ 821E6BA +LilycoveCity_Harbor_EventScript_BoardFerryWithBrineyAndSailorEast:: applymovement LOCALID_BRINEY, LilycoveCity_Harbor_Movement_BrineyBoardFerry applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_Harbor_Movement_PlayerBoardWithBrineyEast applymovement LOCALID_FERRY_SAILOR, LilycoveCity_Harbor_Movement_SailorBoardWithBrineyEast waitmovement 0 return -LilycoveCity_Harbor_Movement_BrineyBoardFerry: @ 821E6D3 +LilycoveCity_Harbor_Movement_BrineyBoardFerry: walk_in_place_fastest_up delay_8 set_invisible step_end -LilycoveCity_Harbor_Movement_PlayerBoardWithBrineyNorth: @ 821E6D7 +LilycoveCity_Harbor_Movement_PlayerBoardWithBrineyNorth: delay_16 walk_up delay_16 set_invisible step_end -LilycoveCity_Harbor_Movement_SailorBoardWithBrineyNorth: @ 821E6DC +LilycoveCity_Harbor_Movement_SailorBoardWithBrineyNorth: delay_16 delay_16 delay_16 @@ -559,7 +559,7 @@ LilycoveCity_Harbor_Movement_SailorBoardWithBrineyNorth: @ 821E6DC set_invisible step_end -LilycoveCity_Harbor_Movement_PlayerBoardWithBrineyEast: @ 821E6E4 +LilycoveCity_Harbor_Movement_PlayerBoardWithBrineyEast: delay_16 walk_right walk_in_place_fastest_up @@ -567,7 +567,7 @@ LilycoveCity_Harbor_Movement_PlayerBoardWithBrineyEast: @ 821E6E4 set_invisible step_end -LilycoveCity_Harbor_Movement_SailorBoardWithBrineyEast: @ 821E6EA +LilycoveCity_Harbor_Movement_SailorBoardWithBrineyEast: delay_16 delay_16 delay_16 @@ -576,50 +576,50 @@ LilycoveCity_Harbor_Movement_SailorBoardWithBrineyEast: @ 821E6EA set_invisible step_end -LilycoveCity_Harbor_Text_FerryUnavailable: @ 821E6F1 +LilycoveCity_Harbor_Text_FerryUnavailable: .string "I beg your pardon?\n" .string "You're looking for a ship?\p" .string "I'm sorry, the ferry service isn't\n" .string "available at present…$" -LilycoveCity_Harbor_Text_MayISeeYourTicket: @ 821E758 +LilycoveCity_Harbor_Text_MayISeeYourTicket: .string "Hello, are you here for the ferry?\n" .string "May I see your TICKET?$" -LilycoveCity_Harbor_Text_NoTicket: @ 821E792 +LilycoveCity_Harbor_Text_NoTicket: .string "{PLAYER} doesn't have the TICKET…\p" .string "I'm terribly sorry.\p" .string "You must have a TICKET to board\n" .string "the ferry.$" -LilycoveCity_Harbor_Text_FlashTicketWhereTo: @ 821E7ED +LilycoveCity_Harbor_Text_FlashTicketWhereTo: .string "{PLAYER} flashed the TICKET.\p" .string "Perfect! That's all you need!\p" .string "And where would you like to go?$" -LilycoveCity_Harbor_Text_SailAnotherTime: @ 821E842 +LilycoveCity_Harbor_Text_SailAnotherTime: .string "Please sail with us another time!$" -LilycoveCity_Harbor_Text_SlateportItIs: @ 821E864 +LilycoveCity_Harbor_Text_SlateportItIs: .string "SLATEPORT CITY it is, then!$" -LilycoveCity_Harbor_Text_BattleFrontierItIs: @ 821E880 +LilycoveCity_Harbor_Text_BattleFrontierItIs: .string "BATTLE FRONTIER it is, then!$" -LilycoveCity_Harbor_Text_PleaseBoard: @ 821E89D +LilycoveCity_Harbor_Text_PleaseBoard: .string "Please board the ferry and wait for\n" .string "departure.$" -LilycoveCity_Harbor_Text_WhereWouldYouLikeToGo: @ 821E8CC +LilycoveCity_Harbor_Text_WhereWouldYouLikeToGo: .string "Then, where would you like to go?$" -LilycoveCity_Harbor_Text_SailorFerryUnavailable: @ 821E8EE +LilycoveCity_Harbor_Text_SailorFerryUnavailable: .string "Until they finish making the ferry,\n" .string "we sailors have nothing to do…\p" .string "I wish they'd get a move on, the folks\n" .string "at the SHIPYARD in SLATEPORT.$" -LilycoveCity_Harbor_Text_SailorFerryAvailable: @ 821E976 +LilycoveCity_Harbor_Text_SailorFerryAvailable: .string "The ferry S.S. TIDAL is finally in\n" .string "operation.\p" .string "The folks at the SHIPYARD in SLATEPORT\n" diff --git a/data/maps/LilycoveCity_House1/scripts.inc b/data/maps/LilycoveCity_House1/scripts.inc index 207b27a11c..34e9e6d90e 100644 --- a/data/maps/LilycoveCity_House1/scripts.inc +++ b/data/maps/LilycoveCity_House1/scripts.inc @@ -1,11 +1,11 @@ -LilycoveCity_House1_MapScripts:: @ 821ECCD +LilycoveCity_House1_MapScripts:: .byte 0 -LilycoveCity_House1_EventScript_ExpertM:: @ 821ECCE +LilycoveCity_House1_EventScript_ExpertM:: msgbox LilycoveCity_House1_Text_PokemonPartnersNotTools, MSGBOX_NPC end -LilycoveCity_House1_EventScript_Kecleon:: @ 821ECD7 +LilycoveCity_House1_EventScript_Kecleon:: lock faceplayer waitse @@ -15,12 +15,12 @@ LilycoveCity_House1_EventScript_Kecleon:: @ 821ECD7 release end -LilycoveCity_House1_Text_PokemonPartnersNotTools: @ 821ECEA +LilycoveCity_House1_Text_PokemonPartnersNotTools: .string "POKéMON are partners to people.\n" .string "They aren't our tools.\p" .string "Unfortunately, there are some people\n" .string "who fail to understand that…$" -LilycoveCity_House1_Text_Kecleon: @ 821ED63 +LilycoveCity_House1_Text_Kecleon: .string "KECLEON: Ruroro?$" diff --git a/data/maps/LilycoveCity_House2/scripts.inc b/data/maps/LilycoveCity_House2/scripts.inc index 29d741abd4..c7664c641f 100644 --- a/data/maps/LilycoveCity_House2/scripts.inc +++ b/data/maps/LilycoveCity_House2/scripts.inc @@ -1,7 +1,7 @@ -LilycoveCity_House2_MapScripts:: @ 821ED74 +LilycoveCity_House2_MapScripts:: .byte 0 -LilycoveCity_House2_EventScript_FatMan:: @ 821ED75 +LilycoveCity_House2_EventScript_FatMan:: lock faceplayer goto_if_set FLAG_RECEIVED_TM44, LilycoveCity_House2_EventScript_ReceivedRest @@ -14,17 +14,17 @@ LilycoveCity_House2_EventScript_FatMan:: @ 821ED75 release end -LilycoveCity_House2_EventScript_ReceivedRest:: @ 821EDAC +LilycoveCity_House2_EventScript_ReceivedRest:: msgbox LilycoveCity_House2_Text_SleepIsEssential, MSGBOX_DEFAULT release end -LilycoveCity_House2_Text_NotAwakeYetHaveThis: @ 821EDB6 +LilycoveCity_House2_Text_NotAwakeYetHaveThis: .string "Huh? What? What's that?\p" .string "I'm not near awake yet…\n" .string "You can have this…$" -LilycoveCity_House2_Text_SleepIsEssential: @ 821EDF9 +LilycoveCity_House2_Text_SleepIsEssential: .string "Yawn…\p" .string "Sleep is essential for good health…\n" .string "Sleep and regain health…$" diff --git a/data/maps/LilycoveCity_House3/scripts.inc b/data/maps/LilycoveCity_House3/scripts.inc index 8d4a1059ec..de76c58b6b 100644 --- a/data/maps/LilycoveCity_House3/scripts.inc +++ b/data/maps/LilycoveCity_House3/scripts.inc @@ -1,13 +1,13 @@ -LilycoveCity_House3_MapScripts:: @ 821EE3C +LilycoveCity_House3_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LilycoveCity_House3_OnTransition .byte 0 -LilycoveCity_House3_OnTransition: @ 821EE42 +LilycoveCity_House3_OnTransition: random 4 copyvar VAR_TEMP_1, VAR_RESULT end -LilycoveCity_House3_EventScript_PokefanF:: @ 821EE4B +LilycoveCity_House3_EventScript_PokefanF:: lock faceplayer msgbox LilycoveCity_House3_Text_LearnFromMasterOfPokeblocks, MSGBOX_YESNO @@ -20,7 +20,7 @@ LilycoveCity_House3_EventScript_PokefanF:: @ 821EE4B release end -LilycoveCity_House3_EventScript_DeclinePokeblockLearn:: @ 821EE75 +LilycoveCity_House3_EventScript_DeclinePokeblockLearn:: msgbox LilycoveCity_House3_Text_OhAreYouSure, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection @@ -28,7 +28,7 @@ LilycoveCity_House3_EventScript_DeclinePokeblockLearn:: @ 821EE75 release end -LilycoveCity_House3_EventScript_Man:: @ 821EE8A +LilycoveCity_House3_EventScript_Man:: lock faceplayer msgbox LilycoveCity_House3_Text_HappyToHaveQuadruplets, MSGBOX_DEFAULT @@ -38,7 +38,7 @@ LilycoveCity_House3_EventScript_Man:: @ 821EE8A release end -LilycoveCity_House3_EventScript_GameBoyKid1:: @ 821EEA1 +LilycoveCity_House3_EventScript_GameBoyKid1:: lock faceplayer switch VAR_TEMP_1 @@ -48,7 +48,7 @@ LilycoveCity_House3_EventScript_GameBoyKid1:: @ 821EEA1 case 3, LilycoveCity_House3_EventScript_WereDoingContest end -LilycoveCity_House3_EventScript_GameBoyKid2:: @ 821EED5 +LilycoveCity_House3_EventScript_GameBoyKid2:: lock faceplayer switch VAR_TEMP_1 @@ -58,7 +58,7 @@ LilycoveCity_House3_EventScript_GameBoyKid2:: @ 821EED5 case 3, LilycoveCity_House3_EventScript_WereDoingContest end -LilycoveCity_House3_EventScript_GameBoyKid3:: @ 821EF09 +LilycoveCity_House3_EventScript_GameBoyKid3:: lock faceplayer switch VAR_TEMP_1 @@ -68,7 +68,7 @@ LilycoveCity_House3_EventScript_GameBoyKid3:: @ 821EF09 case 3, LilycoveCity_House3_EventScript_WereDoingContest end -LilycoveCity_House3_EventScript_GameBoyKid4:: @ 821EF3D +LilycoveCity_House3_EventScript_GameBoyKid4:: lock faceplayer switch VAR_TEMP_1 @@ -78,27 +78,27 @@ LilycoveCity_House3_EventScript_GameBoyKid4:: @ 821EF3D case 3, LilycoveCity_House3_EventScript_WereDoingContest end -LilycoveCity_House3_EventScript_WereDoingMultiBattle:: @ 821EF71 +LilycoveCity_House3_EventScript_WereDoingMultiBattle:: msgbox LilycoveCity_House3_Text_GoingToWinMultiBattles, MSGBOX_DEFAULT release end -LilycoveCity_House3_EventScript_WereMixingRecords:: @ 821EF7B +LilycoveCity_House3_EventScript_WereMixingRecords:: msgbox LilycoveCity_House3_Text_LikeMixingAtRecordCorner, MSGBOX_DEFAULT release end -LilycoveCity_House3_EventScript_WereBlendingBerries:: @ 821EF85 +LilycoveCity_House3_EventScript_WereBlendingBerries:: msgbox LilycoveCity_House3_Text_MakePokeblocksWithBerryBlender, MSGBOX_DEFAULT release end -LilycoveCity_House3_EventScript_WereDoingContest:: @ 821EF8F +LilycoveCity_House3_EventScript_WereDoingContest:: msgbox LilycoveCity_House3_Text_GoingToEnterContest, MSGBOX_DEFAULT release end -LilycoveCity_House3_Text_LearnFromMasterOfPokeblocks: @ 821EF99 +LilycoveCity_House3_Text_LearnFromMasterOfPokeblocks: .string "Oh, my, my! Are you traveling alone?\n" .string "But you're so young! Good for you!\p" .string "I'm sure my kids could learn a thing\n" @@ -109,12 +109,12 @@ LilycoveCity_House3_Text_LearnFromMasterOfPokeblocks: @ 821EF99 .string "Would you like to learn from me,\n" .string "a master of {POKEBLOCK}S?$" -LilycoveCity_House3_Text_OhAreYouSure: @ 821F0A9 +LilycoveCity_House3_Text_OhAreYouSure: .string "Oh? Are you sure?\p" .string "You shouldn't always try to do\n" .string "everything by yourself, dear!$" -LilycoveCity_House3_Text_ExplainPokeblocks: @ 821F0F8 +LilycoveCity_House3_Text_ExplainPokeblocks: .string "Oh, good! You're a smart soul!\n" .string "This is a bit long, so listen up!\p" .string "Are you ready?\p" @@ -143,26 +143,26 @@ LilycoveCity_House3_Text_ExplainPokeblocks: @ 821F0F8 .string "the world would be a happier place.\p" .string "Don't give up, dear!$" -LilycoveCity_House3_Text_HappyToHaveQuadruplets: @ 821F430 +LilycoveCity_House3_Text_HappyToHaveQuadruplets: .string "When my wife gave birth to quadruplets,\n" .string "you bet I was shocked.\p" .string "But, now, seeing them play together,\n" .string "it makes me happy.$" -LilycoveCity_House3_Text_GoingToWinMultiBattles: @ 821F4A7 +LilycoveCity_House3_Text_GoingToWinMultiBattles: .string "We're having MULTI BATTLES, but I know\n" .string "I'm going to win.$" -LilycoveCity_House3_Text_LikeMixingAtRecordCorner: @ 821F4E0 +LilycoveCity_House3_Text_LikeMixingAtRecordCorner: .string "We like mixing stuff at\n" .string "the RECORD CORNER.\p" .string "But what gets mixed up?$" -LilycoveCity_House3_Text_MakePokeblocksWithBerryBlender: @ 821F523 +LilycoveCity_House3_Text_MakePokeblocksWithBerryBlender: .string "We're going to make super {POKEBLOCK}S\n" .string "with a BERRY BLENDER!$" -LilycoveCity_House3_Text_GoingToEnterContest: @ 821F55A +LilycoveCity_House3_Text_GoingToEnterContest: .string "I want to brag about how tough my\n" .string "POKéMON is, so we're going to enter\l" .string "a CONTEST together.$" diff --git a/data/maps/LilycoveCity_House4/scripts.inc b/data/maps/LilycoveCity_House4/scripts.inc index 685a91b7da..0160ae763a 100644 --- a/data/maps/LilycoveCity_House4/scripts.inc +++ b/data/maps/LilycoveCity_House4/scripts.inc @@ -1,20 +1,20 @@ -LilycoveCity_House4_MapScripts:: @ 821F5B4 +LilycoveCity_House4_MapScripts:: .byte 0 -LilycoveCity_House4_EventScript_Man1:: @ 821F5B5 +LilycoveCity_House4_EventScript_Man1:: msgbox LilycoveCity_House4_Text_MysteriesAtBottomOfSea, MSGBOX_NPC end -LilycoveCity_House4_EventScript_Man2:: @ 821F5BE +LilycoveCity_House4_EventScript_Man2:: msgbox LilycoveCity_House4_Text_UnderwaterTrenchMossdeepSootopolis, MSGBOX_NPC end -LilycoveCity_House4_Text_MysteriesAtBottomOfSea: @ 821F5C7 +LilycoveCity_House4_Text_MysteriesAtBottomOfSea: .string "This planet's biggest mysteries are\n" .string "at the bottom of the sea.\p" .string "Somebody said that, but I don't know…$" -LilycoveCity_House4_Text_UnderwaterTrenchMossdeepSootopolis: @ 821F62B +LilycoveCity_House4_Text_UnderwaterTrenchMossdeepSootopolis: .string "There's a deep underwater trench\n" .string "between MOSSDEEP and SOOTOPOLIS.\p" .string "That's what someone told me, anyway.$" diff --git a/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc b/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc index 624e304c83..e5d855633e 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc +++ b/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc @@ -1,30 +1,30 @@ .set LOCALID_CURATOR, 2 .set LOCALID_ARTIST_2, 8 -LilycoveCity_LilycoveMuseum_1F_MapScripts:: @ 8218CB8 +LilycoveCity_LilycoveMuseum_1F_MapScripts:: .byte 0 -LilycoveCity_LilycoveMuseum_1F_EventScript_Greeter:: @ 8218CB9 +LilycoveCity_LilycoveMuseum_1F_EventScript_Greeter:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_WelcomeToLilycoveMuseum, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_Curator:: @ 8218CC2 +LilycoveCity_LilycoveMuseum_1F_EventScript_Curator:: lockall applymovement LOCALID_CURATOR, Common_Movement_FacePlayer message LilycoveCity_LilycoveMuseum_1F_Text_ImCuratorHaveYouViewedOurPaintings waitmessage - multichoice 20, 8, MULTI_VIEWED_PAINTINGS, 1 + multichoice 20, 8, MULTI_VIEWED_PAINTINGS, TRUE compare VAR_RESULT, 0 goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_SawPaintings compare VAR_RESULT, 1 goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_NotYet end -LilycoveCity_LilycoveMuseum_1F_EventScript_NotYet:: @ 8218CEC +LilycoveCity_LilycoveMuseum_1F_EventScript_NotYet:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_NotDisturbYouTakeYourTime, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_1F_EventScript_SawPaintings:: @ 8218CF5 +LilycoveCity_LilycoveMuseum_1F_EventScript_SawPaintings:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_HaveYouAnInterestInPaintings, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_NotInterested @@ -32,12 +32,12 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_SawPaintings:: @ 8218CF5 goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_InterestedInPaintings end -LilycoveCity_LilycoveMuseum_1F_EventScript_NotInterested:: @ 8218D14 +LilycoveCity_LilycoveMuseum_1F_EventScript_NotInterested:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_HonoredYoudVisitInSpiteOfThat, MSGBOX_SIGN releaseall end -LilycoveCity_LilycoveMuseum_1F_EventScript_InterestedInPaintings:: @ 8218D1E +LilycoveCity_LilycoveMuseum_1F_EventScript_InterestedInPaintings:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_ExcellentCanYouComeWithMe, MSGBOX_SIGN applymovement LOCALID_CURATOR, LilycoveCity_LilycoveMuseum_1F_Movement_CuratorEnterStairs waitmovement 0 @@ -48,7 +48,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_InterestedInPaintings:: @ 8218D1E case DIR_EAST, LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorEast end -LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorNorth:: @ 8218D5A +LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorNorth:: lockall applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorNorth waitmovement 0 @@ -56,7 +56,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorNorth:: @ 8218D5A waitstate end -LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorWest:: @ 8218D6F +LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorWest:: lockall applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorWest waitmovement 0 @@ -64,7 +64,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorWest:: @ 8218D6F waitstate end -LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorEast:: @ 8218D84 +LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorEast:: lockall applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorEast waitmovement 0 @@ -72,86 +72,86 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorEast:: @ 8218D84 waitstate end -LilycoveCity_LilycoveMuseum_1F_Movement_CuratorEnterStairs: @ 8218D99 +LilycoveCity_LilycoveMuseum_1F_Movement_CuratorEnterStairs: walk_up step_end -LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorWest: @ 8218D9B +LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorWest: walk_left walk_up step_end -LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorEast: @ 8218D9E +LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorEast: walk_right walk_up step_end -LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorNorth: @ 8218DA1 +LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorNorth: walk_up walk_up step_end -LilycoveCity_LilycoveMuseum_1F_EventScript_OldPainting:: @ 8218DA4 +LilycoveCity_LilycoveMuseum_1F_EventScript_OldPainting:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_VeryOldPainting, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_FantasyPainting:: @ 8218DAD +LilycoveCity_LilycoveMuseum_1F_EventScript_FantasyPainting:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_OddLandscapeFantasticScenery, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_WomanPainting:: @ 8218DB6 +LilycoveCity_LilycoveMuseum_1F_EventScript_WomanPainting:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfBeautifulWoman, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_LegendaryPokemonPainting:: @ 8218DBF +LilycoveCity_LilycoveMuseum_1F_EventScript_LegendaryPokemonPainting:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfLegendaryPokemon, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_GrassPokemonPainting:: @ 8218DC8 +LilycoveCity_LilycoveMuseum_1F_EventScript_GrassPokemonPainting:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfGrassPokemon, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_BerryPainting:: @ 8218DD1 +LilycoveCity_LilycoveMuseum_1F_EventScript_BerryPainting:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfBerries, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_EventScript_BirdSculpture:: @ 8218DDA +LilycoveCity_LilycoveMuseum_EventScript_BirdSculpture:: msgbox LilycoveCity_LilycoveMuseum_Text_BirdPokemonSculptureReplica, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_PokeBallSculpture:: @ 8218DE3 +LilycoveCity_LilycoveMuseum_1F_EventScript_PokeBallSculpture:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_BigPokeBallCarvedFromStone, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_StoneTablet:: @ 8218DEC +LilycoveCity_LilycoveMuseum_1F_EventScript_StoneTablet:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_StoneTabletWithAncientText, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_SchoolKidM:: @ 8218DF5 +LilycoveCity_LilycoveMuseum_1F_EventScript_SchoolKidM:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_MustntForgetLoveForFineArts, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_1F_EventScript_Artist1:: @ 8218DFE +LilycoveCity_LilycoveMuseum_1F_EventScript_Artist1:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_ThisMuseumIsInspiration, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_1F_EventScript_NinjaBoy:: @ 8218E07 +LilycoveCity_LilycoveMuseum_1F_EventScript_NinjaBoy:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_ThisLadyIsPretty, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_Woman1:: @ 8218E10 +LilycoveCity_LilycoveMuseum_1F_EventScript_Woman1:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_ThisPokemonIsAdorable, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_1F_EventScript_Woman2:: @ 8218E19 +LilycoveCity_LilycoveMuseum_1F_EventScript_Woman2:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_HeardMuseumGotNewPaintings, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_1F_EventScript_PsychicM:: @ 8218E22 +LilycoveCity_LilycoveMuseum_1F_EventScript_PsychicM:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_CuratorHasBeenCheerful, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_1F_EventScript_Artist2:: @ 8218E2B +LilycoveCity_LilycoveMuseum_1F_EventScript_Artist2:: lock faceplayer msgbox LilycoveCity_LilycoveMuseum_1F_Text_AimToSeeGreatPaintings, MSGBOX_DEFAULT @@ -161,17 +161,17 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_Artist2:: @ 8218E2B release end -LilycoveCity_LilycoveMuseum_1F_EventScript_FatMan:: @ 8218E42 +LilycoveCity_LilycoveMuseum_1F_EventScript_FatMan:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_MuseumTouristDestination, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_1F_Text_WelcomeToLilycoveMuseum: @ 8218E4B +LilycoveCity_LilycoveMuseum_1F_Text_WelcomeToLilycoveMuseum: .string "Welcome to LILYCOVE MUSEUM.\p" .string "Please take the time to enjoy our\n" .string "collection of fantastic artwork\l" .string "featuring POKéMON.$" -LilycoveCity_LilycoveMuseum_1F_Text_ImCuratorHaveYouViewedOurPaintings: @ 8218EBC +LilycoveCity_LilycoveMuseum_1F_Text_ImCuratorHaveYouViewedOurPaintings: .string "I'm the CURATOR of this MUSEUM of\n" .string "fine arts.\p" .string "It's heartening to see someone so\n" @@ -179,116 +179,116 @@ LilycoveCity_LilycoveMuseum_1F_Text_ImCuratorHaveYouViewedOurPaintings: @ 8218EB .string "Have you viewed our collection of\n" .string "paintings already?$" -LilycoveCity_LilycoveMuseum_1F_Text_NotDisturbYouTakeYourTime: @ 8218F5C +LilycoveCity_LilycoveMuseum_1F_Text_NotDisturbYouTakeYourTime: .string "Ah, then let me not disturb you.\n" .string "Please, do take your time.$" -LilycoveCity_LilycoveMuseum_1F_Text_HaveYouAnInterestInPaintings: @ 8218F98 +LilycoveCity_LilycoveMuseum_1F_Text_HaveYouAnInterestInPaintings: .string "Oh? I do believe that you seem to\n" .string "be a POKéMON TRAINER.\p" .string "Have you an interest in paintings,\n" .string "too?$" -LilycoveCity_LilycoveMuseum_1F_Text_HonoredYoudVisitInSpiteOfThat: @ 8218FF8 +LilycoveCity_LilycoveMuseum_1F_Text_HonoredYoudVisitInSpiteOfThat: .string "I see…\p" .string "I'm honored that you would visit\n" .string "us in spite of that.$" -LilycoveCity_LilycoveMuseum_1F_Text_ExcellentCanYouComeWithMe: @ 8219035 +LilycoveCity_LilycoveMuseum_1F_Text_ExcellentCanYouComeWithMe: .string "Ah, excellent!\n" .string "You do like paintings!\p" .string "Then, may I ask you to come with me?$" -LilycoveCity_LilycoveMuseum_1F_Text_VeryOldPainting: @ 8219080 +LilycoveCity_LilycoveMuseum_1F_Text_VeryOldPainting: .string "It's a very old painting.\n" .string "The paint is peeling here and there.$" -LilycoveCity_LilycoveMuseum_1F_Text_OddLandscapeFantasticScenery: @ 82190BF +LilycoveCity_LilycoveMuseum_1F_Text_OddLandscapeFantasticScenery: .string "It's an odd landscape with bizarre\n" .string "and fantastic scenery.$" -LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfBeautifulWoman: @ 82190F9 +LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfBeautifulWoman: .string "It's a painting of a beautiful, smiling\n" .string "woman with a POKéMON on her lap.$" -LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfLegendaryPokemon: @ 8219142 +LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfLegendaryPokemon: .string "It's a painting of a legendary POKéMON\n" .string "from long ago.\p" .string "The artist painted this from\n" .string "imagination.$" -LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfGrassPokemon: @ 82191A2 +LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfGrassPokemon: .string "It's a painting of GRASS POKéMON\n" .string "swaying in a breeze.\p" .string "They appear to be enjoying the wind's\n" .string "gentle caress.$" -LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfBerries: @ 821920D +LilycoveCity_LilycoveMuseum_1F_Text_PaintingOfBerries: .string "It's a delicious-looking painting\n" .string "of BERRIES.\p" .string "This painting could make you hungry!$" -LilycoveCity_LilycoveMuseum_Text_BirdPokemonSculptureReplica: @ 8219260 +LilycoveCity_LilycoveMuseum_Text_BirdPokemonSculptureReplica: .string "It's a replica of a famous sculpture.\p" .string "It depicts an ancient BIRD POKéMON.$" -LilycoveCity_LilycoveMuseum_1F_Text_BigPokeBallCarvedFromStone: @ 82192AA +LilycoveCity_LilycoveMuseum_1F_Text_BigPokeBallCarvedFromStone: .string "It's a big POKé BALL carved from\n" .string "a black stone.\p" .string "It was apparently used in festivals\n" .string "in the olden days.$" -LilycoveCity_LilycoveMuseum_1F_Text_StoneTabletWithAncientText: @ 8219311 +LilycoveCity_LilycoveMuseum_1F_Text_StoneTabletWithAncientText: .string "It's a huge stone tablet inscribed\n" .string "with POKéMON and dense text in the\l" .string "small characters of an ancient,\l" .string "unreadable language.$" -LilycoveCity_LilycoveMuseum_1F_Text_WorksOfMagnificence: @ 821938C +LilycoveCity_LilycoveMuseum_1F_Text_WorksOfMagnificence: .string "Hmmm…\n" .string "What works of great magnificence…$" -LilycoveCity_LilycoveMuseum_1F_Text_MustntForgetLoveForFineArts: @ 82193B4 +LilycoveCity_LilycoveMuseum_1F_Text_MustntForgetLoveForFineArts: .string "Battling with POKéMON is fun,\n" .string "I'll grant you that.\p" .string "But one mustn't forget our love for\n" .string "the fine arts.$" -LilycoveCity_LilycoveMuseum_1F_Text_ThisMuseumIsInspiration: @ 821941A +LilycoveCity_LilycoveMuseum_1F_Text_ThisMuseumIsInspiration: .string "This ART MUSEUM… Well, you could\n" .string "see many fantastic paintings.\p" .string "And the CURATOR is a wonderful person.\p" .string "Among artists like myself, this MUSEUM\n" .string "is an inspiration.$" -LilycoveCity_LilycoveMuseum_1F_Text_ThisLadyIsPretty: @ 82194BA +LilycoveCity_LilycoveMuseum_1F_Text_ThisLadyIsPretty: .string "This lady is pretty!\n" .string "She's like Mommy!$" -LilycoveCity_LilycoveMuseum_1F_Text_ThisPokemonIsAdorable: @ 82194E1 +LilycoveCity_LilycoveMuseum_1F_Text_ThisPokemonIsAdorable: .string "This POKéMON is adorable!\n" .string "Just like our little boy!$" -LilycoveCity_LilycoveMuseum_1F_Text_HeardMuseumGotNewPaintings: @ 8219515 +LilycoveCity_LilycoveMuseum_1F_Text_HeardMuseumGotNewPaintings: .string "I'd heard that this ART MUSEUM got\n" .string "in some new paintings.\p" .string "So, naturally I hurried over.\p" .string "Are the new paintings up on\n" .string "the second floor?$" -LilycoveCity_LilycoveMuseum_1F_Text_CuratorHasBeenCheerful: @ 821959B +LilycoveCity_LilycoveMuseum_1F_Text_CuratorHasBeenCheerful: .string "Lately, the CURATOR has been\n" .string "unusually cheerful.\p" .string "I bet something good happened for him.\n" .string "Definitely.$" -LilycoveCity_LilycoveMuseum_1F_Text_AimToSeeGreatPaintings: @ 82195FF +LilycoveCity_LilycoveMuseum_1F_Text_AimToSeeGreatPaintings: .string "I aim to see many great paintings\n" .string "here and learn from them.\p" .string "I have this dream of one day having\n" .string "my artwork exhibited here.$" -LilycoveCity_LilycoveMuseum_1F_Text_MuseumTouristDestination: @ 821967A +LilycoveCity_LilycoveMuseum_1F_Text_MuseumTouristDestination: .string "The ART MUSEUM has become a favorite\n" .string "tourist destination.\p" .string "It's great for LILYCOVE…\n" diff --git a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc index 4cebebd823..27b59502cd 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc +++ b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc @@ -1,68 +1,68 @@ .set LOCALID_CURATOR, 1 -LilycoveCity_LilycoveMuseum_2F_MapScripts:: @ 821973A +LilycoveCity_LilycoveMuseum_2F_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, LilycoveCity_LilycoveMuseum_2F_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, LilycoveCity_LilycoveMuseum_2F_OnFrame .byte 0 -LilycoveCity_LilycoveMuseum_2F_OnLoad: @ 8219745 +LilycoveCity_LilycoveMuseum_2F_OnLoad: goto_if_set FLAG_COOL_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_SetCoolPainting goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckBeautyPainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_CheckBeautyPainting:: @ 8219754 +LilycoveCity_LilycoveMuseum_2F_EventScript_CheckBeautyPainting:: goto_if_set FLAG_BEAUTY_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_SetBeautyPainting goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckCutePainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_CheckCutePainting:: @ 8219763 +LilycoveCity_LilycoveMuseum_2F_EventScript_CheckCutePainting:: goto_if_set FLAG_CUTE_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_SetCutePainting goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckSmartPainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_CheckSmartPainting:: @ 8219772 +LilycoveCity_LilycoveMuseum_2F_EventScript_CheckSmartPainting:: goto_if_set FLAG_SMART_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_SetSmartPainting goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckToughPainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_CheckToughPainting:: @ 8219781 +LilycoveCity_LilycoveMuseum_2F_EventScript_CheckToughPainting:: goto_if_set FLAG_TOUGH_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_SetToughPainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_SetCoolPainting:: @ 821978B +LilycoveCity_LilycoveMuseum_2F_EventScript_SetCoolPainting:: setmetatile 10, 6, METATILE_LilycoveMuseum_Painting2_Left, 1 setmetatile 11, 6, METATILE_LilycoveMuseum_Painting2_Right, 1 goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckBeautyPainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_SetBeautyPainting:: @ 82197A3 +LilycoveCity_LilycoveMuseum_2F_EventScript_SetBeautyPainting:: setmetatile 18, 6, METATILE_LilycoveMuseum_Painting1_Left, 1 setmetatile 19, 6, METATILE_LilycoveMuseum_Painting1_Right, 1 goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckCutePainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_SetCutePainting:: @ 82197BB +LilycoveCity_LilycoveMuseum_2F_EventScript_SetCutePainting:: setmetatile 14, 10, METATILE_LilycoveMuseum_Painting3_Left, 1 setmetatile 15, 10, METATILE_LilycoveMuseum_Painting3_Right, 1 goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckSmartPainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_SetSmartPainting:: @ 82197D3 +LilycoveCity_LilycoveMuseum_2F_EventScript_SetSmartPainting:: setmetatile 6, 10, METATILE_LilycoveMuseum_Painting0_Left, 1 setmetatile 7, 10, METATILE_LilycoveMuseum_Painting0_Right, 1 goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckToughPainting end -LilycoveCity_LilycoveMuseum_2F_EventScript_SetToughPainting:: @ 82197EB +LilycoveCity_LilycoveMuseum_2F_EventScript_SetToughPainting:: setmetatile 2, 6, METATILE_LilycoveMuseum_Painting4_Left, 1 setmetatile 3, 6, METATILE_LilycoveMuseum_Painting4_Right, 1 end -LilycoveCity_LilycoveMuseum_2F_OnFrame: @ 82197FE +LilycoveCity_LilycoveMuseum_2F_OnFrame: map_script_2 VAR_LILYCOVE_MUSEUM_2F_STATE, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_ShowExhibitHall .2byte 0 -LilycoveCity_LilycoveMuseum_2F_EventScript_ShowExhibitHall:: @ 8219808 +LilycoveCity_LilycoveMuseum_2F_EventScript_ShowExhibitHall:: lockall applymovement LOCALID_CURATOR, Common_Movement_FacePlayer applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_LilycoveMuseum_2F_Movement_PlayerWalkInPlaceLeft @@ -82,19 +82,19 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_ShowExhibitHall:: @ 8219808 releaseall end -LilycoveCity_LilycoveMuseum_2F_Movement_PlayerWalkInPlaceLeft: @ 8219861 +LilycoveCity_LilycoveMuseum_2F_Movement_PlayerWalkInPlaceLeft: walk_in_place_fastest_left step_end -LilycoveCity_LilycoveMuseum_2F_Movement_FaceExhibitHall: @ 8219863 +LilycoveCity_LilycoveMuseum_2F_Movement_FaceExhibitHall: face_up delay_16 step_end -LilycoveCity_LilycoveMuseum_2F_EventScript_Curator:: @ 8219866 +LilycoveCity_LilycoveMuseum_2F_EventScript_Curator:: lockall goto_if_set FLAG_RECEIVED_GLASS_ORNAMENT, LilycoveCity_LilycoveMuseum_2F_EventScript_ReceivedGlassOrnament - specialvar VAR_0x8004, CountPlayerContestPaintings + specialvar VAR_0x8004, CountPlayerMuseumPaintings switch VAR_0x8004 case 1, LilycoveCity_LilycoveMuseum_2F_EventScript_AddedPainting case 2, LilycoveCity_LilycoveMuseum_2F_EventScript_AddedPainting @@ -104,11 +104,11 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_Curator:: @ 8219866 msgbox LilycoveCity_LilycoveMuseum_2F_Text_WishToFillExhibit, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_2F_EventScript_AddedPainting:: @ 82198BA +LilycoveCity_LilycoveMuseum_2F_EventScript_AddedPainting:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_ThanksAddedNewPainting, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_2F_EventScript_ThankPlayer:: @ 82198C3 +LilycoveCity_LilycoveMuseum_2F_EventScript_ThankPlayer:: applymovement LOCALID_CURATOR, Common_Movement_FacePlayer waitmovement 0 msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsYouPlayer, MSGBOX_DEFAULT @@ -117,7 +117,7 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_ThankPlayer:: @ 82198C3 goto LilycoveCity_LilycoveMuseum_2F_EventScript_GiveGlassOrnament end -LilycoveCity_LilycoveMuseum_2F_EventScript_GiveGlassOrnament:: @ 82198EA +LilycoveCity_LilycoveMuseum_2F_EventScript_GiveGlassOrnament:: applymovement LOCALID_CURATOR, Common_Movement_FacePlayer msgbox LilycoveCity_LilycoveMuseum_2F_Text_TokenOfGratitude, MSGBOX_DEFAULT givedecoration DECOR_GLASS_ORNAMENT @@ -128,99 +128,99 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_GiveGlassOrnament:: @ 82198EA releaseall end -LilycoveCity_LilycoveMuseum_2F_EventScript_NoRoomForGlassOrnament:: @ 8219911 +LilycoveCity_LilycoveMuseum_2F_EventScript_NoRoomForGlassOrnament:: call Common_EventScript_NoRoomForDecor msgbox LilycoveCity_LilycoveMuseum_2F_Text_KeepThisForYou, MSGBOX_DEFAULT closemessage releaseall end -LilycoveCity_LilycoveMuseum_2F_EventScript_ReceivedGlassOrnament:: @ 8219921 +LilycoveCity_LilycoveMuseum_2F_EventScript_ReceivedGlassOrnament:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_HonorToHaveYouVisit, MSGBOX_NPC releaseall end -LilycoveCity_LilycoveMuseum_2F_EventScript_CutePainting:: @ 821992B +LilycoveCity_LilycoveMuseum_2F_EventScript_CutePainting:: lockall goto_if_set FLAG_CUTE_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCutePainting msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPinkPictureFrame, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_2F_EventScript_ToughPainting:: @ 821993E +LilycoveCity_LilycoveMuseum_2F_EventScript_ToughPainting:: lockall goto_if_set FLAG_TOUGH_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_ShowToughPainting msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsYellowPictureFrame, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_2F_EventScript_CoolPainting:: @ 8219951 +LilycoveCity_LilycoveMuseum_2F_EventScript_CoolPainting:: lockall goto_if_set FLAG_COOL_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCoolPainting msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsRedPictureFrame, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_2F_EventScript_BeautyPainting:: @ 8219964 +LilycoveCity_LilycoveMuseum_2F_EventScript_BeautyPainting:: lockall goto_if_set FLAG_BEAUTY_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_ShowBeautyPainting msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsBluePictureFrame, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_2F_EventScript_SmartPainting:: @ 8219977 +LilycoveCity_LilycoveMuseum_2F_EventScript_SmartPainting:: lockall goto_if_set FLAG_SMART_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_ShowSmartPainting msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsGreenPictureFrame, MSGBOX_SIGN end -LilycoveCity_LilycoveMuseum_2F_EventScript_Girl:: @ 821998A +LilycoveCity_LilycoveMuseum_2F_EventScript_Girl:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_NewPaintingsSurprisedMe, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_2F_EventScript_ExpertM:: @ 8219993 +LilycoveCity_LilycoveMuseum_2F_EventScript_ExpertM:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_NewPaintingsRatherAmusing, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_2F_EventScript_RichBoy:: @ 821999C +LilycoveCity_LilycoveMuseum_2F_EventScript_RichBoy:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_ThesePaintingsOfYourPokemon, MSGBOX_NPC end -LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCoolPainting:: @ 82199A5 +LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCoolPainting:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_MUSEUM_COOL + showcontestpainting CONTEST_WINNER_MUSEUM_COOL releaseall end -LilycoveCity_LilycoveMuseum_2F_EventScript_ShowBeautyPainting:: @ 82199B3 +LilycoveCity_LilycoveMuseum_2F_EventScript_ShowBeautyPainting:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_MUSEUM_BEAUTY + showcontestpainting CONTEST_WINNER_MUSEUM_BEAUTY releaseall end -LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCutePainting:: @ 82199C1 +LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCutePainting:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_MUSEUM_CUTE + showcontestpainting CONTEST_WINNER_MUSEUM_CUTE releaseall end -LilycoveCity_LilycoveMuseum_2F_EventScript_ShowSmartPainting:: @ 82199CF +LilycoveCity_LilycoveMuseum_2F_EventScript_ShowSmartPainting:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_MUSEUM_SMART + showcontestpainting CONTEST_WINNER_MUSEUM_SMART releaseall end -LilycoveCity_LilycoveMuseum_2F_EventScript_ShowToughPainting:: @ 82199DD +LilycoveCity_LilycoveMuseum_2F_EventScript_ShowToughPainting:: msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN fadescreen FADE_TO_BLACK - showcontestwinner CONTEST_WINNER_MUSEUM_TOUGH + showcontestpainting CONTEST_WINNER_MUSEUM_TOUGH releaseall end -LilycoveCity_LilycoveMuseum_2F_Text_ThisIsExhibitHall: @ 82199EB +LilycoveCity_LilycoveMuseum_2F_Text_ThisIsExhibitHall: .string "This is our special exhibit hall.$" -LilycoveCity_LilycoveMuseum_2F_Text_ExplainExhibitHall: @ 8219A0D +LilycoveCity_LilycoveMuseum_2F_Text_ExplainExhibitHall: .string "As you can plainly see, there is not\n" .string "a single painting on exhibit.\p" .string "Here, I don't wish to exhibit works of\n" @@ -236,7 +236,7 @@ LilycoveCity_LilycoveMuseum_2F_Text_ExplainExhibitHall: @ 8219A0D .string "POKéMON seemingly ready to spring\l" .string "forth into glorious life!$" -LilycoveCity_LilycoveMuseum_2F_Text_PleaseObtainPaintingsForExhibit: @ 8219BC4 +LilycoveCity_LilycoveMuseum_2F_Text_PleaseObtainPaintingsForExhibit: .string "I beg your pardon. I didn't intend\n" .string "to monopolize the conversation.\p" .string "Now, as you are young, and yet\n" @@ -248,23 +248,23 @@ LilycoveCity_LilycoveMuseum_2F_Text_PleaseObtainPaintingsForExhibit: @ 8219BC4 .string "the artist's permission to exhibit\l" .string "it here?$" -LilycoveCity_LilycoveMuseum_2F_Text_WishToFillExhibit: @ 8219CF3 +LilycoveCity_LilycoveMuseum_2F_Text_WishToFillExhibit: .string "I wish to fill this exhibit hall with\n" .string "modern and vibrant paintings of\l" .string "POKéMON.$" -LilycoveCity_LilycoveMuseum_2F_Text_ThanksAddedNewPainting: @ 8219D42 +LilycoveCity_LilycoveMuseum_2F_Text_ThanksAddedNewPainting: .string "Thanks to you, we've added a new\n" .string "painting to our collection!\p" .string "I've heard it depicts your POKéMON.\n" .string "Truly magnificent!\p" .string "Thank you so very, very much!$" -LilycoveCity_LilycoveMuseum_2F_Text_ItsYouPlayer: @ 8219DD4 +LilycoveCity_LilycoveMuseum_2F_Text_ItsYouPlayer: .string "Ah! It's you!\n" .string "{PLAYER}!$" -LilycoveCity_LilycoveMuseum_2F_Text_PaintingsAttractedMoreGuests: @ 8219DE6 +LilycoveCity_LilycoveMuseum_2F_Text_PaintingsAttractedMoreGuests: .string "Isn't this marvelous?\n" .string "This collection of paintings!\p" .string "Each one of them flawless!\n" @@ -274,56 +274,56 @@ LilycoveCity_LilycoveMuseum_2F_Text_PaintingsAttractedMoreGuests: @ 8219DE6 .string "Sincerely, I thank you, {PLAYER}.\n" .string "This is my dream come true!$" -LilycoveCity_LilycoveMuseum_2F_Text_TokenOfGratitude: @ 8219EC5 +LilycoveCity_LilycoveMuseum_2F_Text_TokenOfGratitude: .string "This is merely a token of my gratitude.$" -LilycoveCity_LilycoveMuseum_2F_Text_KeepThisForYou: @ 8219EED +LilycoveCity_LilycoveMuseum_2F_Text_KeepThisForYou: .string "I will keep this for you until we\n" .string "meet again.$" -LilycoveCity_LilycoveMuseum_2F_Text_HonorToHaveYouVisit: @ 8219F1B +LilycoveCity_LilycoveMuseum_2F_Text_HonorToHaveYouVisit: .string "Ah, so good to see you, {PLAYER}!\p" .string "It's an honor to have you visit us\n" .string "on your busy journeys.\p" .string "Please, relax and do enjoy your\n" .string "visit with us.$" -LilycoveCity_LilycoveMuseum_2F_Text_ItsPinkPictureFrame: @ 8219FA0 +LilycoveCity_LilycoveMuseum_2F_Text_ItsPinkPictureFrame: .string "It's a picture frame with pink-colored\n" .string "adornments.$" -LilycoveCity_LilycoveMuseum_2F_Text_ItsYellowPictureFrame: @ 8219FD3 +LilycoveCity_LilycoveMuseum_2F_Text_ItsYellowPictureFrame: .string "It's a picture frame with\n" .string "yellow-colored adornments.$" -LilycoveCity_LilycoveMuseum_2F_Text_ItsBluePictureFrame: @ 821A008 +LilycoveCity_LilycoveMuseum_2F_Text_ItsBluePictureFrame: .string "It's a picture frame with\n" .string "blue-colored adornments.$" -LilycoveCity_LilycoveMuseum_2F_Text_ItsRedPictureFrame: @ 821A03B +LilycoveCity_LilycoveMuseum_2F_Text_ItsRedPictureFrame: .string "It's a picture frame with\n" .string "red-colored adornments.$" -LilycoveCity_LilycoveMuseum_2F_Text_ItsGreenPictureFrame: @ 821A06D +LilycoveCity_LilycoveMuseum_2F_Text_ItsGreenPictureFrame: .string "It's a picture frame with\n" .string "green-colored adornments.$" -LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon: @ 821A0A1 +LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon: .string "It's a painting of POKéMON.$" -LilycoveCity_LilycoveMuseum_2F_Text_NewPaintingsSurprisedMe: @ 821A0BD +LilycoveCity_LilycoveMuseum_2F_Text_NewPaintingsSurprisedMe: .string "I've been away awhile, so the new\n" .string "paintings up here surprised me.\p" .string "I wish someone would paint my POKéMON\n" .string "this pretty.$" -LilycoveCity_LilycoveMuseum_2F_Text_NewPaintingsRatherAmusing: @ 821A132 +LilycoveCity_LilycoveMuseum_2F_Text_NewPaintingsRatherAmusing: .string "Well… So this is where they show\n" .string "the topical POKéMON paintings.\p" .string "I see, these new paintings are indeed\n" .string "rather amusing.$" -LilycoveCity_LilycoveMuseum_2F_Text_ThesePaintingsOfYourPokemon: @ 821A1A8 +LilycoveCity_LilycoveMuseum_2F_Text_ThesePaintingsOfYourPokemon: .string "Wow, is that right?\n" .string "These paintings are of your POKéMON.\p" .string "Isn't that just the ultimate joy for\n" diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc index 1a27e3b8f1..ff340c9f33 100644 --- a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc +++ b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_MOVE_DELETER, 1 -LilycoveCity_MoveDeletersHouse_MapScripts:: @ 821EA0A +LilycoveCity_MoveDeletersHouse_MapScripts:: .byte 0 -LilycoveCity_MoveDeletersHouse_EventScript_MoveDeleter:: @ 821EA0B +LilycoveCity_MoveDeletersHouse_EventScript_MoveDeleter:: lockall applymovement LOCALID_MOVE_DELETER, Common_Movement_FacePlayer waitmovement 0 @@ -14,7 +14,7 @@ LilycoveCity_MoveDeletersHouse_EventScript_MoveDeleter:: @ 821EA0B releaseall end -LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget:: @ 821EA3B +LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget:: msgbox LilycoveCity_MoveDeletersHouse_Text_WhichMonShouldForget, MSGBOX_DEFAULT special ChoosePartyMon waitstate @@ -40,7 +40,7 @@ LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget:: @ 821EA3B releaseall end -LilycoveCity_MoveDeletersHouse_EventScript_TryForgetMove:: @ 821EAB0 +LilycoveCity_MoveDeletersHouse_EventScript_TryForgetMove:: special IsLastMonThatKnowsSurf compare VAR_RESULT, TRUE goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf @@ -51,62 +51,62 @@ LilycoveCity_MoveDeletersHouse_EventScript_TryForgetMove:: @ 821EAB0 releaseall end -LilycoveCity_MoveDeletersHouse_EventScript_MonOnlyKnowsOneMove:: @ 821EACF +LilycoveCity_MoveDeletersHouse_EventScript_MonOnlyKnowsOneMove:: special BufferMoveDeleterNicknameAndMove msgbox LilycoveCity_MoveDeletersHouse_Text_MonOnlyKnowsOneMove, MSGBOX_DEFAULT releaseall end -LilycoveCity_MoveDeletersHouse_EventScript_EggCantForgetMoves:: @ 821EADC +LilycoveCity_MoveDeletersHouse_EventScript_EggCantForgetMoves:: msgbox LilycoveCity_MoveDeletersHouse_Text_EggCantForgetMoves, MSGBOX_DEFAULT releaseall end -LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain:: @ 821EAE6 +LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain:: msgbox LilycoveCity_MoveDeletersHouse_Text_ComeAgain, MSGBOX_DEFAULT releaseall end -LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf:: @ 821EAF0 +LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf:: special BufferMoveDeleterNicknameAndMove msgbox LilycoveCity_MoveDeletersHouse_Text_CantForgetSurf, MSGBOX_DEFAULT releaseall end -LilycoveCity_MoveDeletersHouse_Text_ICanMakeMonForgetMove: @ 821EAFD +LilycoveCity_MoveDeletersHouse_Text_ICanMakeMonForgetMove: .string "Uh…\n" .string "Oh, yes, I'm the MOVE DELETER.\p" .string "I can make POKéMON forget their moves.\p" .string "Would you like me to do that?$" -LilycoveCity_MoveDeletersHouse_Text_WhichMonShouldForget: @ 821EB65 +LilycoveCity_MoveDeletersHouse_Text_WhichMonShouldForget: .string "Which POKéMON should forget a move?$" -LilycoveCity_MoveDeletersHouse_Text_WhichMoveShouldBeForgotten: @ 821EB89 +LilycoveCity_MoveDeletersHouse_Text_WhichMoveShouldBeForgotten: .string "Which move should be forgotten?$" -LilycoveCity_MoveDeletersHouse_Text_MonOnlyKnowsOneMove: @ 821EBA9 +LilycoveCity_MoveDeletersHouse_Text_MonOnlyKnowsOneMove: .string "{STR_VAR_1} knows only one move\n" .string "so it can't be forgotten…$" -LilycoveCity_MoveDeletersHouse_Text_MonsMoveShouldBeForgotten: @ 821EBDA +LilycoveCity_MoveDeletersHouse_Text_MonsMoveShouldBeForgotten: .string "Hm! {STR_VAR_1}'s {STR_VAR_2}?\n" .string "That move should be forgotten?$" -LilycoveCity_MoveDeletersHouse_Text_MonHasForgottenMove: @ 821EC06 +LilycoveCity_MoveDeletersHouse_Text_MonHasForgottenMove: .string "It worked to perfection!\p" .string "{STR_VAR_1} has forgotten\n" .string "{STR_VAR_2} completely.$" -LilycoveCity_MoveDeletersHouse_Text_ComeAgain: @ 821EC3F +LilycoveCity_MoveDeletersHouse_Text_ComeAgain: .string "Come again if there are moves that\n" .string "need to be forgotten.$" -LilycoveCity_MoveDeletersHouse_Text_EggCantForgetMoves: @ 821EC78 +LilycoveCity_MoveDeletersHouse_Text_EggCantForgetMoves: .string "What?\n" .string "No EGG should know any moves.$" -LilycoveCity_MoveDeletersHouse_Text_CantForgetSurf: @ 821EC9C +LilycoveCity_MoveDeletersHouse_Text_CantForgetSurf: .string "Hm!\p" .string "Your {STR_VAR_1} doesn't seem willing\n" .string "to forget SURF.$" diff --git a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc index 829c55646a..03f2657e71 100644 --- a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc @@ -1,17 +1,17 @@ .set LOCALID_NURSE, 1 -LilycoveCity_PokemonCenter_1F_MapScripts:: @ 821C5B2 +LilycoveCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LilycoveCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -LilycoveCity_PokemonCenter_1F_OnTransition: @ 821C5BD +LilycoveCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_LILYCOVE_CITY goto LilycoveCity_PokemonCenter_1F_EventScript_SetLilycoveLadyGfx end @ SetLilycoveLadyGfx returns TRUE if its the Contest Lady -LilycoveCity_PokemonCenter_1F_EventScript_SetLilycoveLadyGfx:: @ 821C5C6 +LilycoveCity_PokemonCenter_1F_EventScript_SetLilycoveLadyGfx:: special SetLilycoveLadyGfx compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_HideContestLadyMon @@ -19,15 +19,15 @@ LilycoveCity_PokemonCenter_1F_EventScript_SetLilycoveLadyGfx:: @ 821C5C6 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ShowContestLadyMon end -LilycoveCity_PokemonCenter_1F_EventScript_HideContestLadyMon:: @ 821C5E0 +LilycoveCity_PokemonCenter_1F_EventScript_HideContestLadyMon:: setflag FLAG_HIDE_LILYCOVE_POKEMON_CENTER_CONTEST_LADY_MON end -LilycoveCity_PokemonCenter_1F_EventScript_ShowContestLadyMon:: @ 821C5E4 +LilycoveCity_PokemonCenter_1F_EventScript_ShowContestLadyMon:: clearflag FLAG_HIDE_LILYCOVE_POKEMON_CENTER_CONTEST_LADY_MON end -LilycoveCity_PokemonCenter_1F_EventScript_Nurse:: @ 821C5E8 +LilycoveCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -35,11 +35,11 @@ LilycoveCity_PokemonCenter_1F_EventScript_Nurse:: @ 821C5E8 release end -LilycoveCity_PokemonCenter_1F_EventScript_Boy:: @ 821C5F6 +LilycoveCity_PokemonCenter_1F_EventScript_Boy:: msgbox LilycoveCity_PokemonCenter_1F_Text_HowManyKindsOfPokemon, MSGBOX_NPC end -LilycoveCity_PokemonCenter_1F_EventScript_Maniac:: @ 821C5FF +LilycoveCity_PokemonCenter_1F_EventScript_Maniac:: lock faceplayer goto_if_set FLAG_BADGE07_GET, LilycoveCity_PokemonCenter_1F_EventScript_ManiacBadTeamGone @@ -47,23 +47,23 @@ LilycoveCity_PokemonCenter_1F_EventScript_Maniac:: @ 821C5FF release end -LilycoveCity_PokemonCenter_1F_EventScript_ManiacBadTeamGone:: @ 821C614 +LilycoveCity_PokemonCenter_1F_EventScript_ManiacBadTeamGone:: msgbox LilycoveCity_PokemonCenter_1F_Text_HaventSeenRottenScoundrels, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_Text_HowManyKindsOfPokemon: @ 821C61E +LilycoveCity_PokemonCenter_1F_Text_HowManyKindsOfPokemon: .string "I wonder how many kinds of POKéMON\n" .string "there are in the world.\p" .string "It'd be great to cross seas and\n" .string "trade POKéMON with people far away.$" -LilycoveCity_PokemonCenter_1F_Text_HeardAboutRottenScoundrels: @ 821C69D +LilycoveCity_PokemonCenter_1F_Text_HeardAboutRottenScoundrels: .string "I've been hearing about some rotten\n" .string "scoundrels who steal POKéMON and rip\l" .string "off METEORITES.$" -LilycoveCity_PokemonCenter_1F_Text_HaventSeenRottenScoundrels: @ 821C6F6 +LilycoveCity_PokemonCenter_1F_Text_HaventSeenRottenScoundrels: .string "Those rotten scoundrels who steal\n" .string "POKéMON and rip off METEORITES…\p" .string "I haven't seen them around recently.$" diff --git a/data/maps/LilycoveCity_PokemonCenter_2F/scripts.inc b/data/maps/LilycoveCity_PokemonCenter_2F/scripts.inc index 965580da54..b5321cbe0c 100644 --- a/data/maps/LilycoveCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/LilycoveCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -LilycoveCity_PokemonCenter_2F_MapScripts:: @ 821C75D +LilycoveCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ LilycoveCity_PokemonCenter_2F_MapScripts:: @ 821C75D .byte 0 @ The below 3 are unused and leftover from RS -LilycoveCity_PokemonCenter_2F_EventScript_Colosseum:: @ 821C772 +LilycoveCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -LilycoveCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 821C778 +LilycoveCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -LilycoveCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 821C77E +LilycoveCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc index 6ff869db3a..211073c581 100644 --- a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc @@ -7,18 +7,18 @@ .set LOCALID_WOMAN, 7 .set LOCALID_EXPERT_F, 8 -LilycoveCity_PokemonTrainerFanClub_MapScripts:: @ 821C785 +LilycoveCity_PokemonTrainerFanClub_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, LilycoveCity_PokemonTrainerFanClub_OnFrame map_script MAP_SCRIPT_ON_TRANSITION, LilycoveCity_PokemonTrainerFanClub_OnTransition .byte 0 @ See field_specials.c for a breakdown of the Fan Club and its variables -LilycoveCity_PokemonTrainerFanClub_OnFrame: @ 821C790 +LilycoveCity_PokemonTrainerFanClub_OnFrame: map_script_2 VAR_LILYCOVE_FAN_CLUB_STATE, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_MeetFirstFans .2byte 0 -LilycoveCity_PokemonTrainerFanClub_EventScript_MeetFirstFans:: @ 821C79A +LilycoveCity_PokemonTrainerFanClub_EventScript_MeetFirstFans:: lockall applymovement LOCALID_LASS, Common_Movement_WalkInPlaceFastestDown waitmovement 0 @@ -39,7 +39,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_MeetFirstFans:: @ 821C79A releaseall end -LilycoveCity_PokemonTrainerFanClub_Movement_FanApproachPlayer: @ 821C7F5 +LilycoveCity_PokemonTrainerFanClub_Movement_FanApproachPlayer: delay_8 walk_in_place_fastest_down walk_down @@ -49,7 +49,7 @@ LilycoveCity_PokemonTrainerFanClub_Movement_FanApproachPlayer: @ 821C7F5 walk_left step_end -LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlWatchPlayer: @ 821C7FD +LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlWatchPlayer: walk_fast_left walk_fast_left walk_fast_down @@ -58,12 +58,12 @@ LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlWatchPlayer: @ 821C7FD walk_fast_down step_end -LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlMoveCloserToPlayer: @ 821C804 +LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlMoveCloserToPlayer: walk_down walk_in_place_fastest_right step_end -LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlHideFromPlayer: @ 821C807 +LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlHideFromPlayer: jump_in_place_right walk_fast_up walk_fast_up @@ -71,7 +71,7 @@ LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlHideFromPlayer: @ 821C807 walk_in_place_fastest_down step_end -LilycoveCity_PokemonTrainerFanClub_OnTransition: @ 821C80D +LilycoveCity_PokemonTrainerFanClub_OnTransition: call LilycoveCity_PokemonTrainerFanClub_EventScript_HideOrShowInterviewer compare VAR_LILYCOVE_FAN_CLUB_STATE, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_SetFanMemberPositionsForFirstFanMeeting @@ -79,7 +79,7 @@ LilycoveCity_PokemonTrainerFanClub_OnTransition: @ 821C80D goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions end -LilycoveCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions:: @ 821C829 +LilycoveCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions:: special TryLoseFansFromPlayTime call LilycoveCity_PokemonTrainerFanClub_EventScript_CheckSetUpTVShow setvar VAR_0x8004, FANCLUB_MEMBER1 @@ -116,7 +116,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions:: @ 821C call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable end -LilycoveCity_PokemonTrainerFanClub_EventScript_HideOrShowInterviewer:: @ 821C8DA +LilycoveCity_PokemonTrainerFanClub_EventScript_HideOrShowInterviewer:: specialvar VAR_RESULT, ShouldHideFanClubInterviewer compare VAR_RESULT, TRUE goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_HideInterviewer @@ -124,13 +124,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_HideOrShowInterviewer:: @ 821C8DA clearflag FLAG_FAN_CLUB_STRENGTH_SHARED return -LilycoveCity_PokemonTrainerFanClub_EventScript_HideInterviewer:: @ 821C8F1 +LilycoveCity_PokemonTrainerFanClub_EventScript_HideInterviewer:: setflag FLAG_HIDE_LILYCOVE_FAN_CLUB_INTERVIEWER return @ Set up the fan club TV show, if the player has at least 5 fans in the club @ Rather than counting up, 1 is subtracted from the total for each member not a fan of the players -LilycoveCity_PokemonTrainerFanClub_EventScript_CheckSetUpTVShow:: @ 821C8F5 +LilycoveCity_PokemonTrainerFanClub_EventScript_CheckSetUpTVShow:: setvar VAR_0x8005, NUM_TRAINER_FAN_CLUB_MEMBERS setvar VAR_0x8004, FANCLUB_MEMBER1 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer @@ -168,47 +168,47 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_CheckSetUpTVShow:: @ 821C8F5 goto_if_ge LilycoveCity_PokemonTrainerFanClub_EventScript_TrySetUpTVShow return -LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan:: @ 821C9AE +LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan:: subvar VAR_0x8005, 1 return -LilycoveCity_PokemonTrainerFanClub_EventScript_TrySetUpTVShow:: @ 821C9B4 - special TrySetUpTrainerFanClubSpecial +LilycoveCity_PokemonTrainerFanClub_EventScript_TrySetUpTVShow:: + special TryPutTrainerFanClubOnAir return -LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember1ToFarTable:: @ 821C9B8 +LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember1ToFarTable:: setobjectxyperm LOCALID_LASS, 7, 5 return -LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember2ToFarTable:: @ 821C9C0 +LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember2ToFarTable:: setobjectxyperm LOCALID_POKEFAN_M, 3, 4 return -LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember3ToFarTable:: @ 821C9C8 +LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember3ToFarTable:: setobjectxyperm LOCALID_LITTLE_GIRL, 7, 2 return -LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember4ToFarTable:: @ 821C9D0 +LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember4ToFarTable:: setobjectxyperm LOCALID_NINJA_BOY, 5, 5 return -LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember5ToFarTable:: @ 821C9D8 +LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember5ToFarTable:: setobjectxyperm LOCALID_BOY, 5, 2 return -LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember6ToFarTable:: @ 821C9E0 +LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember6ToFarTable:: setobjectxyperm LOCALID_MAN, 8, 4 return -LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember7ToFarTable:: @ 821C9E8 +LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember7ToFarTable:: setobjectxyperm LOCALID_WOMAN, 3, 3 return -LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable:: @ 821C9F0 +LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable:: setobjectxyperm LOCALID_EXPERT_F, 8, 3 return -LilycoveCity_PokemonTrainerFanClub_EventScript_SetFanMemberPositionsForFirstFanMeeting:: @ 821C9F8 +LilycoveCity_PokemonTrainerFanClub_EventScript_SetFanMemberPositionsForFirstFanMeeting:: call LilycoveCity_PokemonTrainerFanClub_EventScript_CheckSetUpTVShow call LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember2ToFarTable call LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember4ToFarTable @@ -217,7 +217,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_SetFanMemberPositionsForFirstFanM call LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable end -LilycoveCity_PokemonTrainerFanClub_EventScript_Man:: @ 821CA17 +LilycoveCity_PokemonTrainerFanClub_EventScript_Man:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER6 @@ -234,7 +234,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Man:: @ 821CA17 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayersFan:: @ 821CA56 +LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyFan @@ -242,22 +242,22 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayersFan:: @ 821CA56 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyFan:: @ 821CA70 +LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_OthersDontKnowYoureTheBest, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyNonFan:: @ 821CA7A +LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyNonFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsBestNoOneWantsToListen, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayerNotChampion:: @ 821CA84 +LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayerNotChampion:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_HearingAboutToughNewTrainer, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_Lass:: @ 821CA8E +LilycoveCity_PokemonTrainerFanClub_EventScript_Lass:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER1 @@ -274,7 +274,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Lass:: @ 821CA8E release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayersFan:: @ 821CACD +LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyFan @@ -282,22 +282,22 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayersFan:: @ 821CACD release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyFan:: @ 821CAE7 +LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_BrawlyNoImYourFan, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyNonFan:: @ 821CAF1 +LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyNonFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_NobodyUnderstandsBrawly, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayerNotChampion:: @ 821CAFB +LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayerNotChampion:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_MyFavoriteTrainerIsBrawly, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanM:: @ 821CB05 +LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanM:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER2 @@ -314,7 +314,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanM:: @ 821CB05 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayersFan:: @ 821CB44 +LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyFan @@ -322,22 +322,22 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayersFan:: @ 821CB44 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyFan:: @ 821CB5E +LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_YourFatherNeverGaveUpSoKeepOnBattling, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyNonFan:: @ 821CB68 +LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyNonFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_YouAndNormanAreDifferent, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayerNotChampion:: @ 821CB72 +LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayerNotChampion:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_WeDiscussStrongestTrainers, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirl:: @ 821CB7C +LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirl:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER3 @@ -354,7 +354,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirl:: @ 821CB7C release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayersFan:: @ 821CBBB +LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyFan @@ -362,22 +362,22 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayersFan:: @ 821CBBB release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyFan:: @ 821CBD5 +LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_AlwaysCheerForYou, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyNonFan:: @ 821CBDF +LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyNonFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsReallyCoolItsJustMe, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayerNotChampion:: @ 821CBE9 +LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayerNotChampion:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_WishThereWasTrainerLikeThat, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoy:: @ 821CBF3 +LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoy:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER4 @@ -392,7 +392,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoy:: @ 821CBF3 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyPlayersFan:: @ 821CC27 +LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyFan @@ -400,17 +400,17 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyPlayersFan:: @ 821CC27 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyFan:: @ 821CC41 +LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_OnlyOneWhoCheersForYou, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyNonFan:: @ 821CC4B +LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyNonFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_NeverGoingToStopBeingTrainersFan, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_Boy:: @ 821CC55 +LilycoveCity_PokemonTrainerFanClub_EventScript_Boy:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER5 @@ -425,7 +425,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Boy:: @ 821CC55 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_BoyPlayersFan:: @ 821CC89 +LilycoveCity_PokemonTrainerFanClub_EventScript_BoyPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyFan @@ -433,17 +433,17 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_BoyPlayersFan:: @ 821CC89 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyFan:: @ 821CCA3 +LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_ImInYourCorner, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyNonFan:: @ 821CCAD +LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyNonFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_YoureMaybeStrongerThanTrainer, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_Woman:: @ 821CCB7 +LilycoveCity_PokemonTrainerFanClub_EventScript_Woman:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER7 @@ -458,7 +458,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Woman:: @ 821CCB7 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_WomanPlayersFan:: @ 821CCEB +LilycoveCity_PokemonTrainerFanClub_EventScript_WomanPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyFan @@ -466,17 +466,17 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_WomanPlayersFan:: @ 821CCEB release end -LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyFan:: @ 821CD05 +LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_YouBattleAttractivelyInToughSituation, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyNonFan:: @ 821CD0F +LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyNonFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_NoOneCanKnockYouButTrainerStronger, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertF:: @ 821CD19 +LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertF:: lock faceplayer setvar VAR_0x8004, FANCLUB_MEMBER8 @@ -491,7 +491,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertF:: @ 821CD19 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFPlayersFan:: @ 821CD4D +LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyFan @@ -499,17 +499,17 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFPlayersFan:: @ 821CD4D release end -LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyFan:: @ 821CD67 +LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_OnlyIRecognizeYourTrueWorth, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyNonFan:: @ 821CD71 +LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyNonFan:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_YourePowerfulButNotTrueStrength, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_Interviewer:: @ 821CD7B +LilycoveCity_PokemonTrainerFanClub_EventScript_Interviewer:: lock faceplayer goto_if_set FLAG_FAN_CLUB_STRENGTH_SHARED, LilycoveCity_PokemonTrainerFanClub_EventScript_AlreadyInterviewed @@ -518,7 +518,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Interviewer:: @ 821CD7B @ The interviewer doesnt count as an individual fan club member @ Instead they always ask about whoever the Lass would be interested in, if not the player -LilycoveCity_PokemonTrainerFanClub_EventScript_Interview:: @ 821CD90 +LilycoveCity_PokemonTrainerFanClub_EventScript_Interview:: setvar VAR_0x8005, TVSHOW_FAN_CLUB_SPECIAL special InterviewBefore compare VAR_RESULT, TRUE @@ -538,12 +538,12 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Interview:: @ 821CD90 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion end -LilycoveCity_PokemonTrainerFanClub_EventScript_SubmitOpinion:: @ 821CDE0 +LilycoveCity_PokemonTrainerFanClub_EventScript_SubmitOpinion:: msgbox LilycoveCity_PokemonTrainerFanClub_Text_ThatsWhatYouThink, MSGBOX_DEFAULT goto LilycoveCity_PokemonTrainerFanClub_EventScript_RateTrainer end -LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion:: @ 821CDEE +LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName msgbox LilycoveCity_PokemonTrainerFanClub_Text_HaveYouForgottenTrainer, MSGBOX_YESNO @@ -553,7 +553,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion:: @ 821CDEE goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_AskForOpinion end -LilycoveCity_PokemonTrainerFanClub_EventScript_AskForOpinion:: @ 821CE15 +LilycoveCity_PokemonTrainerFanClub_EventScript_AskForOpinion:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName msgbox LilycoveCity_PokemonTrainerFanClub_Text_WhatsYourOpinionOfTrainer2, MSGBOX_DEFAULT @@ -568,7 +568,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_AskForOpinion:: @ 821CE15 goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion end -LilycoveCity_PokemonTrainerFanClub_EventScript_RateTrainer:: @ 821CE4D +LilycoveCity_PokemonTrainerFanClub_EventScript_RateTrainer:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName message LilycoveCity_PokemonTrainerFanClub_Text_HowStrongRateTrainer @@ -588,7 +588,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_RateTrainer:: @ 821CE4D goto LilycoveCity_PokemonTrainerFanClub_EventScript_CompleteInterview end -LilycoveCity_PokemonTrainerFanClub_EventScript_CancelRateTrainer:: @ 821CE9F +LilycoveCity_PokemonTrainerFanClub_EventScript_CancelRateTrainer:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName msgbox LilycoveCity_PokemonTrainerFanClub_Text_HaveYouForgottenTrainer2, MSGBOX_YESNO @@ -598,14 +598,14 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_CancelRateTrainer:: @ 821CE9F goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_RateTrainer end -LilycoveCity_PokemonTrainerFanClub_EventScript_ForgetTrainer:: @ 821CEC6 +LilycoveCity_PokemonTrainerFanClub_EventScript_ForgetTrainer:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName msgbox LilycoveCity_PokemonTrainerFanClub_Text_YouShouldMeetTrainer, MSGBOX_DEFAULT release end -LilycoveCity_PokemonTrainerFanClub_EventScript_CompleteInterview:: @ 821CED8 +LilycoveCity_PokemonTrainerFanClub_EventScript_CompleteInterview:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName msgbox LilycoveCity_PokemonTrainerFanClub_Text_ThankYouIllShareThisInfo, MSGBOX_DEFAULT @@ -613,7 +613,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_CompleteInterview:: @ 821CED8 release end -LilycoveCity_PokemonTrainerFanClub_EventScript_AlreadyInterviewed:: @ 821CEED +LilycoveCity_PokemonTrainerFanClub_EventScript_AlreadyInterviewed:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName msgbox LilycoveCity_PokemonTrainerFanClub_HopeYouCatchTVSpecial, MSGBOX_DEFAULT @@ -621,14 +621,14 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_AlreadyInterviewed:: @ 821CEED end @ Shouldnt be reached -LilycoveCity_PokemonTrainerFanClub_EventScript_AlreadyInterviewed2:: @ 821CEFF +LilycoveCity_PokemonTrainerFanClub_EventScript_AlreadyInterviewed2:: end -LilycoveCity_PokemonTrainerFanClub_Text_OhWowItsPlayer: @ 821CF00 +LilycoveCity_PokemonTrainerFanClub_Text_OhWowItsPlayer: .string "Oh, wow!\n" .string "It's {PLAYER}!$" -LilycoveCity_PokemonTrainerFanClub_Text_HeardAboutYouImYourFan: @ 821CF12 +LilycoveCity_PokemonTrainerFanClub_Text_HeardAboutYouImYourFan: .string "I've heard the news!\n" .string "You're really strong, aren't you?\p" .string "We always argue about who is the\n" @@ -644,29 +644,29 @@ LilycoveCity_PokemonTrainerFanClub_Text_HeardAboutYouImYourFan: @ 821CF12 .string "Remember, I'm cheering for you,\n" .string "{PLAYER}!$" -LilycoveCity_PokemonTrainerFanClub_Text_YoureOneWeWantToWin: @ 821D094 +LilycoveCity_PokemonTrainerFanClub_Text_YoureOneWeWantToWin: .string "Yo, {PLAYER}!\n" .string "You're the one we want to win!$" -LilycoveCity_PokemonTrainerFanClub_Text_OthersDontKnowYoureTheBest: @ 821D0BB +LilycoveCity_PokemonTrainerFanClub_Text_OthersDontKnowYoureTheBest: .string "The others, they don't know that\n" .string "you're the best of the best!\p" .string "Isn't that right, {PLAYER}?\n" .string "Show them you've got guts!$" -LilycoveCity_PokemonTrainerFanClub_Text_TrainersPowerIsOutOfTheOrdinary: @ 821D12A +LilycoveCity_PokemonTrainerFanClub_Text_TrainersPowerIsOutOfTheOrdinary: .string "I hate to say this, but the TRAINER\n" .string "everybody's talking about is\l" .string "{STR_VAR_1}, no question about it!\p" .string "That TRAINER's power…\n" .string "It's out of the ordinary.$" -LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsBestNoOneWantsToListen: @ 821D1B5 +LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsBestNoOneWantsToListen: .string "Darn it… I've been telling people\n" .string "that {STR_VAR_1} is the best now…\p" .string "But no one wants to listen…$" -LilycoveCity_PokemonTrainerFanClub_Text_HearingAboutToughNewTrainer: @ 821D20C +LilycoveCity_PokemonTrainerFanClub_Text_HearingAboutToughNewTrainer: .string "I've been hearing things about\n" .string "a tough new TRAINER.\p" .string "This TRAINER's supposed to be beating\n" @@ -674,13 +674,13 @@ LilycoveCity_PokemonTrainerFanClub_Text_HearingAboutToughNewTrainer: @ 821D20C .string "Do you know anything about this\n" .string "new TRAINER?$" -LilycoveCity_PokemonTrainerFanClub_Text_ImPullingForYou: @ 821D2A6 +LilycoveCity_PokemonTrainerFanClub_Text_ImPullingForYou: .string "Oh!\n" .string "{PLAYER}!\p" .string "Go for it!\n" .string "I'm pulling for you!$" -LilycoveCity_PokemonTrainerFanClub_Text_BrawlyNoImYourFan: @ 821D2CE +LilycoveCity_PokemonTrainerFanClub_Text_BrawlyNoImYourFan: .string "Sigh…\n" .string "BRAWLY…\p" .string "Oh, no! Wait!\n" @@ -689,36 +689,36 @@ LilycoveCity_PokemonTrainerFanClub_Text_BrawlyNoImYourFan: @ 821D2CE .string "So make me proud!\n" .string "Go for it!$" -LilycoveCity_PokemonTrainerFanClub_Text_ICantHelpLikingBrawly: @ 821D347 +LilycoveCity_PokemonTrainerFanClub_Text_ICantHelpLikingBrawly: .string "I can't help it, I can only get to\n" .string "like BRAWLY…$" -LilycoveCity_PokemonTrainerFanClub_Text_NobodyUnderstandsBrawly: @ 821D377 +LilycoveCity_PokemonTrainerFanClub_Text_NobodyUnderstandsBrawly: .string "Nobody understands the charm of\n" .string "BRAWLY…\p" .string "I don't care!\p" .string "Even if I'm the only one, I'm going\n" .string "to keep cheering for BRAWLY!$" -LilycoveCity_PokemonTrainerFanClub_Text_MyFavoriteTrainerIsBrawly: @ 821D3EE +LilycoveCity_PokemonTrainerFanClub_Text_MyFavoriteTrainerIsBrawly: .string "Whatever anyone says, my favorite\n" .string "TRAINER is DEWFORD's GYM LEADER\l" .string "BRAWLY!$" -LilycoveCity_PokemonTrainerFanClub_Text_YouveSurpassedYourFather: @ 821D438 +LilycoveCity_PokemonTrainerFanClub_Text_YouveSurpassedYourFather: .string "You've surpassed your own father in\n" .string "every regard!\p" .string "I'm telling you, so there's no question\n" .string "about it at all!$" -LilycoveCity_PokemonTrainerFanClub_Text_YourFatherNeverGaveUpSoKeepOnBattling: @ 821D4A3 +LilycoveCity_PokemonTrainerFanClub_Text_YourFatherNeverGaveUpSoKeepOnBattling: .string "Even when things turned bleak,\n" .string "your father never gave up.\p" .string "This I know to be true.\p" .string "You never give up even if you lose!\n" .string "So keep on battling!$" -LilycoveCity_PokemonTrainerFanClub_Text_LongWayToGoComparedToNorman: @ 821D52E +LilycoveCity_PokemonTrainerFanClub_Text_LongWayToGoComparedToNorman: .string "NORMAN battled with more power,\n" .string "charisma, and showmanship than you.\p" .string "Even though people may say that\n" @@ -726,7 +726,7 @@ LilycoveCity_PokemonTrainerFanClub_Text_LongWayToGoComparedToNorman: @ 821D52E .string "You've still got a long way to go\n" .string "compared to your father.$" -LilycoveCity_PokemonTrainerFanClub_Text_YouAndNormanAreDifferent: @ 821D5DC +LilycoveCity_PokemonTrainerFanClub_Text_YouAndNormanAreDifferent: .string "You're beginning to get the same\n" .string "air of awe NORMAN exudes.\p" .string "But there's something conclusively\n" @@ -734,7 +734,7 @@ LilycoveCity_PokemonTrainerFanClub_Text_YouAndNormanAreDifferent: @ 821D5DC .string "I can't tell you what that is.\n" .string "You'll have to find it yourself.$" -LilycoveCity_PokemonTrainerFanClub_Text_WeDiscussStrongestTrainers: @ 821D69C +LilycoveCity_PokemonTrainerFanClub_Text_WeDiscussStrongestTrainers: .string "Everyone here, we're all huge fans\n" .string "of POKéMON battles.\p" .string "We discuss who we consider to be\n" @@ -742,12 +742,12 @@ LilycoveCity_PokemonTrainerFanClub_Text_WeDiscussStrongestTrainers: @ 821D69C .string "If you were to become famous,\n" .string "we might even become your fans!$" -LilycoveCity_PokemonTrainerFanClub_Text_OhWoweeItsPlayer: @ 821D751 +LilycoveCity_PokemonTrainerFanClub_Text_OhWoweeItsPlayer: .string "Oh, woweee! It's {PLAYER}!\n" .string "For real, too!\p" .string "Please, shake my hand, shake my hand!$" -LilycoveCity_PokemonTrainerFanClub_Text_AlwaysCheerForYou: @ 821D79B +LilycoveCity_PokemonTrainerFanClub_Text_AlwaysCheerForYou: .string "I'll always cheer for you, {PLAYER}!\n" .string "Always, always!\p" .string "I don't want to see you lose ever,\n" @@ -755,60 +755,60 @@ LilycoveCity_PokemonTrainerFanClub_Text_AlwaysCheerForYou: @ 821D79B .string "Because I know you're really,\n" .string "really strong, {PLAYER}!$" -LilycoveCity_PokemonTrainerFanClub_Text_EveryoneThinksTrainerIsCool: @ 821D822 +LilycoveCity_PokemonTrainerFanClub_Text_EveryoneThinksTrainerIsCool: .string "{STR_VAR_1} is really cool…\p" .string "Everyone thinks so, right, right?$" -LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsReallyCoolItsJustMe: @ 821D857 +LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsReallyCoolItsJustMe: .string "{STR_VAR_1} really is cool, don't\n" .string "you think so?\p" .string "Even if it's just me, I'm going to keep\n" .string "cheering my favorite TRAINER.$" -LilycoveCity_PokemonTrainerFanClub_Text_WishThereWasTrainerLikeThat: @ 821D8C4 +LilycoveCity_PokemonTrainerFanClub_Text_WishThereWasTrainerLikeThat: .string "My favorite TRAINER is…\p" .string "Cool…\p" .string "Strong…\p" .string "And really nice…\p" .string "I wish there was a TRAINER like that…$" -LilycoveCity_PokemonTrainerFanClub_Text_WantToBeStrongLikeYou: @ 821D921 +LilycoveCity_PokemonTrainerFanClub_Text_WantToBeStrongLikeYou: .string "Whoa! It's {PLAYER}!\n" .string "Wicked!\p" .string "When I grow up, I want to be strong\n" .string "like you, {PLAYER}!$" -LilycoveCity_PokemonTrainerFanClub_Text_OnlyOneWhoCheersForYou: @ 821D96A +LilycoveCity_PokemonTrainerFanClub_Text_OnlyOneWhoCheersForYou: .string "Even if I'm the only one…\p" .string "You'll always be the only one\n" .string "I cheer for, {PLAYER}!\p" .string "Because I believe in you, {PLAYER}!$" -LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsWickedlyCool: @ 821D9D1 +LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsWickedlyCool: .string "{STR_VAR_1} is so wickedly cool…\n" .string "I want to shake hands with my hero.$" -LilycoveCity_PokemonTrainerFanClub_Text_NeverGoingToStopBeingTrainersFan: @ 821DA0D +LilycoveCity_PokemonTrainerFanClub_Text_NeverGoingToStopBeingTrainersFan: .string "Even if I'm the only one…\p" .string "I'm never going to stop being\n" .string "{STR_VAR_1}'s fan!\p" .string "Because I've heard, {STR_VAR_1}\n" .string "never loses!$" -LilycoveCity_PokemonTrainerFanClub_Text_YoureAmazingAfterAll: @ 821DA73 +LilycoveCity_PokemonTrainerFanClub_Text_YoureAmazingAfterAll: .string "{PLAYER}!\n" .string "You are amazing after all!\p" .string "Ever since I set eyes on you,\n" .string "I knew that you were great.\p" .string "It looks like my eyes didn't deceive me.$" -LilycoveCity_PokemonTrainerFanClub_Text_ImInYourCorner: @ 821DAF5 +LilycoveCity_PokemonTrainerFanClub_Text_ImInYourCorner: .string "Who cares about the others.\n" .string "I'm in your corner!\p" .string "You don't need to worry. Just get\n" .string "out there and battle like always.$" -LilycoveCity_PokemonTrainerFanClub_Text_ThinkTrainerIsNumberOne: @ 821DB69 +LilycoveCity_PokemonTrainerFanClub_Text_ThinkTrainerIsNumberOne: .string "You're a pretty decent TRAINER,\n" .string "I think.\p" .string "But I also think that {STR_VAR_1}\n" @@ -816,32 +816,32 @@ LilycoveCity_PokemonTrainerFanClub_Text_ThinkTrainerIsNumberOne: @ 821DB69 .string "That's just my opinion.\n" .string "Don't worry about it too much.$" -LilycoveCity_PokemonTrainerFanClub_Text_YoureMaybeStrongerThanTrainer: @ 821DBFB +LilycoveCity_PokemonTrainerFanClub_Text_YoureMaybeStrongerThanTrainer: .string "Wow, you really are strong.\n" .string "Maybe even stronger than {STR_VAR_1}.\p" .string "But {STR_VAR_1} needs me.\p" .string "If I don't cheer for {STR_VAR_1},\n" .string "who will?$" -LilycoveCity_PokemonTrainerFanClub_Text_YouChangedMyMind: @ 821DC68 +LilycoveCity_PokemonTrainerFanClub_Text_YouChangedMyMind: .string "You've changed my mind!\n" .string "You are strong, aren't you?\p" .string "I'd like you to tell me how you managed\n" .string "to get so strong!$" -LilycoveCity_PokemonTrainerFanClub_Text_YouBattleAttractivelyInToughSituation: @ 821DCD6 +LilycoveCity_PokemonTrainerFanClub_Text_YouBattleAttractivelyInToughSituation: .string "The tougher the situation, the more\n" .string "attractively you battle.\p" .string "I can't wait for your next battle!$" -LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsStandout: @ 821DD36 +LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsStandout: .string "Among the recently hot TRAINERS,\n" .string "{STR_VAR_1} is the standout.\p" .string "That toughness, it's simply not normal.\p" .string "You're doing okay, but you're not in\n" .string "the same class as {STR_VAR_1}.$" -LilycoveCity_PokemonTrainerFanClub_Text_NoOneCanKnockYouButTrainerStronger: @ 821DDCE +LilycoveCity_PokemonTrainerFanClub_Text_NoOneCanKnockYouButTrainerStronger: .string "You are really popular…\p" .string "You're strong, and you're caring to\n" .string "POKéMON. No one can knock you.\p" @@ -849,23 +849,23 @@ LilycoveCity_PokemonTrainerFanClub_Text_NoOneCanKnockYouButTrainerStronger: @ 82 .string "{STR_VAR_1} is definitely stronger!\n" .string "I'm positive!$" -LilycoveCity_PokemonTrainerFanClub_Text_YouImpressive: @ 821DE72 +LilycoveCity_PokemonTrainerFanClub_Text_YouImpressive: .string "You…\p" .string "Impressive!$" -LilycoveCity_PokemonTrainerFanClub_Text_OnlyIRecognizeYourTrueWorth: @ 821DE83 +LilycoveCity_PokemonTrainerFanClub_Text_OnlyIRecognizeYourTrueWorth: .string "Your true worth, it is fine if only\n" .string "I recognized it.\p" .string "The others I doubt will understand\n" .string "the hidden power that beats within.$" -LilycoveCity_PokemonTrainerFanClub_Text_HaventRealizedPotential: @ 821DEFF +LilycoveCity_PokemonTrainerFanClub_Text_HaventRealizedPotential: .string "Yes, I see strength in your eyes.\p" .string "But!\p" .string "You still haven't realized your\n" .string "potential.$" -LilycoveCity_PokemonTrainerFanClub_Text_YourePowerfulButNotTrueStrength: @ 821DF51 +LilycoveCity_PokemonTrainerFanClub_Text_YourePowerfulButNotTrueStrength: .string "It is true that you are tremendously\n" .string "powerful.\p" .string "But!\n" diff --git a/data/maps/LilycoveCity_UnusedMart/scripts.inc b/data/maps/LilycoveCity_UnusedMart/scripts.inc index fa0405f68c..5b98e21cd1 100644 --- a/data/maps/LilycoveCity_UnusedMart/scripts.inc +++ b/data/maps/LilycoveCity_UnusedMart/scripts.inc @@ -1,3 +1,3 @@ -LilycoveCity_UnusedMart_MapScripts:: @ 821C784 +LilycoveCity_UnusedMart_MapScripts:: .byte 0 diff --git a/data/maps/LittlerootTown/scripts.inc b/data/maps/LittlerootTown/scripts.inc index ba58323096..2d74a26183 100644 --- a/data/maps/LittlerootTown/scripts.inc +++ b/data/maps/LittlerootTown/scripts.inc @@ -3,7 +3,7 @@ .set LOCALID_RIVAL, 7 .set LOCALID_BIRCH, 8 -LittlerootTown_MapScripts:: @ 81E7DCB +LittlerootTown_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LittlerootTown_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, LittlerootTown_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, LittlerootTown_OnWarp @@ -39,7 +39,7 @@ LittlerootTown_MapScripts:: @ 81E7DCB @ 4: Received Pokedex -LittlerootTown_OnTransition: @ 81E7DDB +LittlerootTown_OnTransition: setflag FLAG_VISITED_LITTLEROOT_TOWN call Common_EventScript_SetupRivalGfxId compare VAR_LITTLEROOT_INTRO_STATE, 2 @@ -61,45 +61,45 @@ LittlerootTown_OnTransition: @ 81E7DDB call_if_eq LittlerootTown_EventScript_LeftLabAfterDexUpgrade end -LittlerootTown_EventScript_LeftLabAfterDexUpgrade:: @ 81E7E45 +LittlerootTown_EventScript_LeftLabAfterDexUpgrade:: setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3 return -LittlerootTown_EventScript_HideMapNamePopup:: @ 81E7E4B +LittlerootTown_EventScript_HideMapNamePopup:: setflag FLAG_HIDE_MAP_NAME_POPUP return -LittlerootTown_EventScript_SetRivalLeftForRoute103:: @ 81E7E4F +LittlerootTown_EventScript_SetRivalLeftForRoute103:: setflag FLAG_RIVAL_LEFT_FOR_ROUTE103 return -LittlerootTown_EventScript_MoveRivalFromOldale:: @ 81E7E53 +LittlerootTown_EventScript_MoveRivalFromOldale:: setvar VAR_OLDALE_RIVAL_STATE, 2 setflag FLAG_HIDE_OLDALE_TOWN_RIVAL return -LittlerootTown_EventScript_SetExitedHouseAfterLatiSSTicketEvent:: @ 81E7E5C +LittlerootTown_EventScript_SetExitedHouseAfterLatiSSTicketEvent:: setvar VAR_LITTLEROOT_HOUSES_STATE_MAY, 5 setvar VAR_LITTLEROOT_HOUSES_STATE_BRENDAN, 5 return -LittlerootTown_EventScript_MoveMomToMaysDoor:: @ 81E7E67 +LittlerootTown_EventScript_MoveMomToMaysDoor:: setobjectxyperm LOCALID_MOM, 14, 8 return -LittlerootTown_EventScript_SetTwinPos:: @ 81E7E6F +LittlerootTown_EventScript_SetTwinPos:: compare VAR_LITTLEROOT_TOWN_STATE, 0 goto_if_eq LittlerootTown_EventScript_SetTwinGuardingRoutePos setobjectxyperm LOCALID_TWIN, 10, 1 setobjectmovementtype LOCALID_TWIN, MOVEMENT_TYPE_FACE_UP return -LittlerootTown_EventScript_SetTwinGuardingRoutePos:: @ 81E7E86 +LittlerootTown_EventScript_SetTwinGuardingRoutePos:: setobjectxyperm LOCALID_TWIN, 7, 2 setobjectmovementtype LOCALID_TWIN, MOVEMENT_TYPE_FACE_DOWN return -LittlerootTown_EventScript_SetMomStandingInFrontOfDoorPos:: @ 81E7E92 +LittlerootTown_EventScript_SetMomStandingInFrontOfDoorPos:: clearflag FLAG_HIDE_LITTLEROOT_TOWN_MOM_OUTSIDE setobjectmovementtype LOCALID_MOM, MOVEMENT_TYPE_FACE_DOWN checkplayergender @@ -109,21 +109,21 @@ LittlerootTown_EventScript_SetMomStandingInFrontOfDoorPos:: @ 81E7E92 call_if_eq LittlerootTown_EventScript_SetMomInFrontOfDoorFemale return -LittlerootTown_EventScript_SetMomInFrontOfDoorMale:: @ 81E7EB1 +LittlerootTown_EventScript_SetMomInFrontOfDoorMale:: setobjectxyperm LOCALID_MOM, 5, 9 return -LittlerootTown_EventScript_SetMomInFrontOfDoorFemale:: @ 81E7EB9 +LittlerootTown_EventScript_SetMomInFrontOfDoorFemale:: setobjectxyperm LOCALID_MOM, 14, 9 return -LittlerootTown_OnFrame: @ 81E7EC1 +LittlerootTown_OnFrame: map_script_2 VAR_LITTLEROOT_INTRO_STATE, 1, LittlerootTown_EventScript_StepOffTruckMale map_script_2 VAR_LITTLEROOT_INTRO_STATE, 2, LittlerootTown_EventScript_StepOffTruckFemale map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_EventScript_BeginDexUpgradeScene .2byte 0 -LittlerootTown_EventScript_StepOffTruckMale:: @ 81E7EDB +LittlerootTown_EventScript_StepOffTruckMale:: lockall setvar VAR_0x8004, 5 setvar VAR_0x8005, 8 @@ -134,7 +134,7 @@ LittlerootTown_EventScript_StepOffTruckMale:: @ 81E7EDB releaseall end -LittlerootTown_EventScript_StepOffTruckFemale:: @ 81E7EF9 +LittlerootTown_EventScript_StepOffTruckFemale:: lockall setvar VAR_0x8004, 14 setvar VAR_0x8005, 8 @@ -145,7 +145,7 @@ LittlerootTown_EventScript_StepOffTruckFemale:: @ 81E7EF9 releaseall end -LittlerootTown_EventScript_GoInsideWithMom:: @ 81E7F17 +LittlerootTown_EventScript_GoInsideWithMom:: delay 15 playse SE_LEDGE applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_Movement_PlayerStepOffTruck @@ -179,46 +179,46 @@ LittlerootTown_EventScript_GoInsideWithMom:: @ 81E7F17 clearflag FLAG_HIDE_MAP_NAME_POPUP return -LittlerootTown_Movement_MomExitHouse: @ 81E7F98 +LittlerootTown_Movement_MomExitHouse: walk_down step_end -LittlerootTown_Movement_MomApproachPlayerAtTruck: @ 81E7F9A +LittlerootTown_Movement_MomApproachPlayerAtTruck: walk_down walk_in_place_fastest_left step_end -LittlerootTown_Movement_MomApproachDoor: @ 81E7F9D +LittlerootTown_Movement_MomApproachDoor: delay_16 delay_8 walk_up step_end -LittlerootTown_Movement_MomEnterHouse: @ 81E7FA1 +LittlerootTown_Movement_MomEnterHouse: walk_up set_invisible step_end -LittlerootTown_Movement_PlayerApproachDoor: @ 81E7FA4 +LittlerootTown_Movement_PlayerApproachDoor: delay_16 delay_8 walk_right walk_in_place_fastest_up step_end -LittlerootTown_Movement_PlayerEnterHouse: @ 81E7FA9 +LittlerootTown_Movement_PlayerEnterHouse: walk_up walk_up step_end -LittlerootTown_Movement_PlayerStepOffTruck: @ 81E7FAC +LittlerootTown_Movement_PlayerStepOffTruck: jump_right delay_16 delay_16 delay_16 step_end -LittlerootTown_EventScript_BeginDexUpgradeScene:: @ 81E7FB1 +LittlerootTown_EventScript_BeginDexUpgradeScene:: lockall playse SE_PIN applymovement LOCALID_BIRCH, Common_Movement_ExclamationMark @@ -235,11 +235,11 @@ LittlerootTown_EventScript_BeginDexUpgradeScene:: @ 81E7FB1 releaseall end -LittlerootTown_OnWarp: @ 81E7FE2 +LittlerootTown_OnWarp: map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_EventScript_SetRivalBirchPosForDexUpgrade .2byte 0 -LittlerootTown_EventScript_SetRivalBirchPosForDexUpgrade:: @ 81E7FEC +LittlerootTown_EventScript_SetRivalBirchPosForDexUpgrade:: addobject LOCALID_BIRCH addobject LOCALID_RIVAL checkplayergender @@ -248,25 +248,25 @@ LittlerootTown_EventScript_SetRivalBirchPosForDexUpgrade:: @ 81E7FEC goto LittlerootTown_EventScript_SetRivalBirchPosForDexUpgradeFemale end -LittlerootTown_EventScript_SetRivalBirchPosForDexUpgradeMale:: @ 81E8004 +LittlerootTown_EventScript_SetRivalBirchPosForDexUpgradeMale:: setobjectxy LOCALID_RIVAL, 6, 10 setobjectxy LOCALID_BIRCH, 5, 10 end -LittlerootTown_EventScript_SetRivalBirchPosForDexUpgradeFemale:: @ 81E8013 +LittlerootTown_EventScript_SetRivalBirchPosForDexUpgradeFemale:: setobjectxy LOCALID_RIVAL, 13, 10 setobjectxy LOCALID_BIRCH, 14, 10 end -LittlerootTown_EventScript_FatMan:: @ 81E8022 +LittlerootTown_EventScript_FatMan:: msgbox LittlerootTown_Text_CanUsePCToStoreItems, MSGBOX_NPC end -LittlerootTown_EventScript_Boy:: @ 81E802B +LittlerootTown_EventScript_Boy:: msgbox LittlerootTown_Text_BirchSpendsDaysInLab, MSGBOX_NPC end -LittlerootTown_EventScript_Twin:: @ 81E8034 +LittlerootTown_EventScript_Twin:: lock faceplayer goto_if_set FLAG_ADVENTURE_STARTED, LittlerootTown_EventScript_GoodLuck @@ -277,7 +277,7 @@ LittlerootTown_EventScript_Twin:: @ 81E8034 release end -LittlerootTown_EventScript_GoSaveBirch:: @ 81E805D +LittlerootTown_EventScript_GoSaveBirch:: special GetPlayerBigGuyGirlString msgbox LittlerootTown_Text_CanYouGoSeeWhatsHappening, MSGBOX_DEFAULT closemessage @@ -287,18 +287,18 @@ LittlerootTown_EventScript_GoSaveBirch:: @ 81E805D release end -LittlerootTown_EventScript_YouSavedBirch:: @ 81E807A +LittlerootTown_EventScript_YouSavedBirch:: special GetPlayerBigGuyGirlString msgbox LittlerootTown_Text_YouSavedBirch, MSGBOX_DEFAULT release end -LittlerootTown_EventScript_GoodLuck:: @ 81E8087 +LittlerootTown_EventScript_GoodLuck:: msgbox LittlerootTown_Text_GoodLuckCatchingPokemon, MSGBOX_DEFAULT release end -LittlerootTown_EventScript_NeedPokemonTriggerLeft:: @ 81E8091 +LittlerootTown_EventScript_NeedPokemonTriggerLeft:: lockall applymovement LOCALID_TWIN, LittlerootTown_Movement_TwinApproachPlayerLeft waitmovement 0 @@ -308,7 +308,7 @@ LittlerootTown_EventScript_NeedPokemonTriggerLeft:: @ 81E8091 releaseall end -LittlerootTown_EventScript_DangerousWithoutPokemon:: @ 81E80AD +LittlerootTown_EventScript_DangerousWithoutPokemon:: msgbox LittlerootTown_Text_IfYouGoInGrassPokemonWillJumpOut, MSGBOX_DEFAULT closemessage applymovement LOCALID_TWIN, LittlerootTown_Movement_TwinPushPlayerFromRoute @@ -318,7 +318,7 @@ LittlerootTown_EventScript_DangerousWithoutPokemon:: @ 81E80AD closemessage return -LittlerootTown_Movement_TwinApproachPlayerLeft: @ 81E80D1 +LittlerootTown_Movement_TwinApproachPlayerLeft: face_right delay_8 disable_jump_landing_ground_effect @@ -334,11 +334,11 @@ LittlerootTown_Movement_TwinApproachPlayerLeft: @ 81E80D1 face_down step_end -LittlerootTown_Movement_TwinPushPlayerFromRoute: @ 81E80DF +LittlerootTown_Movement_TwinPushPlayerFromRoute: walk_down step_end -LittlerootTown_Movement_TwinReturnLeft: @ 81E80E1 +LittlerootTown_Movement_TwinReturnLeft: walk_right walk_down walk_down @@ -350,13 +350,13 @@ LittlerootTown_Movement_TwinReturnLeft: @ 81E80E1 walk_in_place_fastest_down step_end -LittlerootTown_Movement_PushPlayerBackFromRoute: @ 81E80EB +LittlerootTown_Movement_PushPlayerBackFromRoute: lock_facing_direction walk_down unlock_facing_direction step_end -LittlerootTown_EventScript_NeedPokemonTriggerRight:: @ 81E80EF +LittlerootTown_EventScript_NeedPokemonTriggerRight:: lockall applymovement LOCALID_TWIN, LittlerootTown_Movement_TwinApproachPlayerRight waitmovement 0 @@ -366,7 +366,7 @@ LittlerootTown_EventScript_NeedPokemonTriggerRight:: @ 81E80EF releaseall end -LittlerootTown_Movement_TwinApproachPlayerRight: @ 81E810B +LittlerootTown_Movement_TwinApproachPlayerRight: face_right delay_8 disable_jump_landing_ground_effect @@ -381,7 +381,7 @@ LittlerootTown_Movement_TwinApproachPlayerRight: @ 81E810B face_down step_end -LittlerootTown_Movement_TwinReturnRight: @ 81E8118 +LittlerootTown_Movement_TwinReturnRight: walk_left walk_down walk_left @@ -390,7 +390,7 @@ LittlerootTown_Movement_TwinReturnRight: @ 81E8118 walk_in_place_fastest_down step_end -LittlerootTown_EventScript_GoSaveBirchTrigger:: @ 81E811F +LittlerootTown_EventScript_GoSaveBirchTrigger:: lockall applymovement LOCALID_TWIN, Common_Movement_WalkInPlaceFastestRight waitmovement 0 @@ -405,15 +405,15 @@ LittlerootTown_EventScript_GoSaveBirchTrigger:: @ 81E811F releaseall end -LittlerootTown_EventScript_TownSign:: @ 81E8151 +LittlerootTown_EventScript_TownSign:: msgbox LittlerootTown_Text_TownSign, MSGBOX_SIGN end -LittlerootTown_EventScript_BirchsLabSign:: @ 81E815A +LittlerootTown_EventScript_BirchsLabSign:: msgbox LittlerootTown_Text_ProfBirchsLab, MSGBOX_SIGN end -LittlerootTown_EventScript_BrendansHouseSign:: @ 81E8163 +LittlerootTown_EventScript_BrendansHouseSign:: lockall checkplayergender compare VAR_RESULT, MALE @@ -423,15 +423,15 @@ LittlerootTown_EventScript_BrendansHouseSign:: @ 81E8163 releaseall end -LittlerootTown_EventScript_PlayersHouseSignMale:: @ 81E817D +LittlerootTown_EventScript_PlayersHouseSignMale:: msgbox LittlerootTown_Text_PlayersHouse, MSGBOX_DEFAULT return -LittlerootTown_EventScript_BirchsHouseSignFemale:: @ 81E8186 +LittlerootTown_EventScript_BirchsHouseSignFemale:: msgbox LittlerootTown_Text_ProfBirchsHouse, MSGBOX_DEFAULT return -LittlerootTown_EventScript_MaysHouseSign:: @ 81E818F +LittlerootTown_EventScript_MaysHouseSign:: lockall checkplayergender compare VAR_RESULT, MALE @@ -441,53 +441,53 @@ LittlerootTown_EventScript_MaysHouseSign:: @ 81E818F releaseall end -LittlerootTown_EventScript_BirchsHouseSignMale:: @ 81E81A9 +LittlerootTown_EventScript_BirchsHouseSignMale:: msgbox LittlerootTown_Text_ProfBirchsHouse, MSGBOX_DEFAULT return -LittlerootTown_EventScript_PlayersHouseSignFemale:: @ 81E81B2 +LittlerootTown_EventScript_PlayersHouseSignFemale:: msgbox LittlerootTown_Text_PlayersHouse, MSGBOX_DEFAULT return -LittlerootTown_EventScript_GiveRunningShoesTrigger0:: @ 81E81BB +LittlerootTown_EventScript_GiveRunningShoesTrigger0:: lockall setvar VAR_0x8008, 0 setobjectxy LOCALID_MOM, 10, 9 goto LittlerootTown_EventScript_GiveRunningShoesTrigger end -LittlerootTown_EventScript_GiveRunningShoesTrigger1:: @ 81E81CE +LittlerootTown_EventScript_GiveRunningShoesTrigger1:: lockall setvar VAR_0x8008, 1 setobjectxy LOCALID_MOM, 11, 9 goto LittlerootTown_EventScript_GiveRunningShoesTrigger end -LittlerootTown_EventScript_GiveRunningShoesTrigger2:: @ 81E81E1 +LittlerootTown_EventScript_GiveRunningShoesTrigger2:: lockall setvar VAR_0x8008, 2 goto LittlerootTown_EventScript_GiveRunningShoesTrigger end -LittlerootTown_EventScript_GiveRunningShoesTrigger3:: @ 81E81ED +LittlerootTown_EventScript_GiveRunningShoesTrigger3:: lockall setvar VAR_0x8008, 3 goto LittlerootTown_EventScript_GiveRunningShoesTrigger end -LittlerootTown_EventScript_GiveRunningShoesTrigger4:: @ 81E81F9 +LittlerootTown_EventScript_GiveRunningShoesTrigger4:: lockall setvar VAR_0x8008, 4 goto LittlerootTown_EventScript_GiveRunningShoesTrigger end -LittlerootTown_EventScript_GiveRunningShoesTrigger5:: @ 81E8205 +LittlerootTown_EventScript_GiveRunningShoesTrigger5:: lockall setvar VAR_0x8008, 5 goto LittlerootTown_EventScript_GiveRunningShoesTrigger end -LittlerootTown_EventScript_GiveRunningShoesTrigger:: @ 81E8211 +LittlerootTown_EventScript_GiveRunningShoesTrigger:: checkplayergender compare VAR_RESULT, MALE call_if_eq LittlerootTown_EventScript_MomNoticePlayerMale @@ -514,27 +514,27 @@ LittlerootTown_EventScript_GiveRunningShoesTrigger:: @ 81E8211 goto LittlerootTown_EventScript_SetReceivedRunningShoes end -LittlerootTown_EventScript_SetHomeDoorCoordsMale:: @ 81E8281 +LittlerootTown_EventScript_SetHomeDoorCoordsMale:: setvar VAR_0x8009, 5 setvar VAR_0x800A, 8 return -LittlerootTown_EventScript_SetHomeDoorCoordsFemale:: @ 81E828C +LittlerootTown_EventScript_SetHomeDoorCoordsFemale:: setvar VAR_0x8009, 14 setvar VAR_0x800A, 8 return -LittlerootTown_EventScript_MomNoticePlayerMale:: @ 81E8297 +LittlerootTown_EventScript_MomNoticePlayerMale:: applymovement LOCALID_MOM, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -LittlerootTown_EventScript_MomNoticePlayerFemale:: @ 81E82A2 +LittlerootTown_EventScript_MomNoticePlayerFemale:: applymovement LOCALID_MOM, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerMale:: @ 81E82AD +LittlerootTown_EventScript_MomApproachPlayerMale:: compare VAR_0x8008, 0 call_if_eq LittlerootTown_EventScript_MomApproachPlayer0 compare VAR_0x8008, 1 @@ -549,7 +549,7 @@ LittlerootTown_EventScript_MomApproachPlayerMale:: @ 81E82AD call_if_eq LittlerootTown_EventScript_MomApproachPlayerMale5 return -LittlerootTown_EventScript_MomApproachPlayerFemale:: @ 81E82F0 +LittlerootTown_EventScript_MomApproachPlayerFemale:: compare VAR_0x8008, 0 call_if_eq LittlerootTown_EventScript_MomApproachPlayer0 compare VAR_0x8008, 1 @@ -564,77 +564,77 @@ LittlerootTown_EventScript_MomApproachPlayerFemale:: @ 81E82F0 call_if_eq LittlerootTown_EventScript_MomApproachPlayerFemale5 return -LittlerootTown_EventScript_MomApproachPlayer0:: @ 81E8333 +LittlerootTown_EventScript_MomApproachPlayer0:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayer0 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayer1:: @ 81E8348 +LittlerootTown_EventScript_MomApproachPlayer1:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayer1 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerMale2:: @ 81E835D +LittlerootTown_EventScript_MomApproachPlayerMale2:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayerMale2 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerMale3:: @ 81E8372 +LittlerootTown_EventScript_MomApproachPlayerMale3:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayerMale3 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerMale4:: @ 81E8387 +LittlerootTown_EventScript_MomApproachPlayerMale4:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayerMale4 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerMale5:: @ 81E839C +LittlerootTown_EventScript_MomApproachPlayerMale5:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayerMale5 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerFemale2:: @ 81E83B1 +LittlerootTown_EventScript_MomApproachPlayerFemale2:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayerFemale2 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerFemale3:: @ 81E83C6 +LittlerootTown_EventScript_MomApproachPlayerFemale3:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayerFemale3 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerFemale4:: @ 81E83DB +LittlerootTown_EventScript_MomApproachPlayerFemale4:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayerFemale4 waitmovement 0 return -LittlerootTown_EventScript_MomApproachPlayerFemale5:: @ 81E83F0 +LittlerootTown_EventScript_MomApproachPlayerFemale5:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 applymovement LOCALID_MOM, LittlerootTown_Movement_MomApproachPlayerFemale5 waitmovement 0 return -LittlerootTown_EventScript_MomReturnHomeMale:: @ 81E8405 +LittlerootTown_EventScript_MomReturnHomeMale:: compare VAR_0x8008, 0 call_if_eq LittlerootTown_EventScript_MomReturnHome0 compare VAR_0x8008, 1 @@ -649,7 +649,7 @@ LittlerootTown_EventScript_MomReturnHomeMale:: @ 81E8405 call_if_eq LittlerootTown_EventScript_MomReturnHomeMale5 return -LittlerootTown_EventScript_MomReturnHomeFemale:: @ 81E8448 +LittlerootTown_EventScript_MomReturnHomeFemale:: compare VAR_0x8008, 0 call_if_eq LittlerootTown_EventScript_MomReturnHome0 compare VAR_0x8008, 1 @@ -664,17 +664,17 @@ LittlerootTown_EventScript_MomReturnHomeFemale:: @ 81E8448 call_if_eq LittlerootTown_EventScript_MomReturnHomeFemale5 return -LittlerootTown_EventScript_MomReturnHome0:: @ 81E848B +LittlerootTown_EventScript_MomReturnHome0:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHome0 waitmovement 0 return -LittlerootTown_EventScript_MomReturnHome1:: @ 81E8496 +LittlerootTown_EventScript_MomReturnHome1:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHome1 waitmovement 0 return -LittlerootTown_EventScript_MomReturnHomeMale2:: @ 81E84A1 +LittlerootTown_EventScript_MomReturnHomeMale2:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHomeMale2 waitmovement 0 opendoor VAR_0x8009, VAR_0x800A @@ -686,7 +686,7 @@ LittlerootTown_EventScript_MomReturnHomeMale2:: @ 81E84A1 waitdooranim return -LittlerootTown_EventScript_MomReturnHomeMale3:: @ 81E84C7 +LittlerootTown_EventScript_MomReturnHomeMale3:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHomeMale3 waitmovement 0 opendoor VAR_0x8009, VAR_0x800A @@ -698,7 +698,7 @@ LittlerootTown_EventScript_MomReturnHomeMale3:: @ 81E84C7 waitdooranim return -LittlerootTown_EventScript_MomReturnHomeMale4:: @ 81E84ED +LittlerootTown_EventScript_MomReturnHomeMale4:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHomeMale4 waitmovement 0 opendoor VAR_0x8009, VAR_0x800A @@ -710,7 +710,7 @@ LittlerootTown_EventScript_MomReturnHomeMale4:: @ 81E84ED waitdooranim return -LittlerootTown_EventScript_MomReturnHomeMale5:: @ 81E8513 +LittlerootTown_EventScript_MomReturnHomeMale5:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHomeMale5 waitmovement 0 opendoor VAR_0x8009, VAR_0x800A @@ -722,7 +722,7 @@ LittlerootTown_EventScript_MomReturnHomeMale5:: @ 81E8513 waitdooranim return -LittlerootTown_EventScript_MomReturnHomeFemale2:: @ 81E8539 +LittlerootTown_EventScript_MomReturnHomeFemale2:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHomeFemale2 waitmovement 0 opendoor VAR_0x8009, VAR_0x800A @@ -734,7 +734,7 @@ LittlerootTown_EventScript_MomReturnHomeFemale2:: @ 81E8539 waitdooranim return -LittlerootTown_EventScript_MomReturnHomeFemale3:: @ 81E855F +LittlerootTown_EventScript_MomReturnHomeFemale3:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHomeFemale3 waitmovement 0 opendoor VAR_0x8009, VAR_0x800A @@ -746,7 +746,7 @@ LittlerootTown_EventScript_MomReturnHomeFemale3:: @ 81E855F waitdooranim return -LittlerootTown_EventScript_MomReturnHomeFemale4:: @ 81E8585 +LittlerootTown_EventScript_MomReturnHomeFemale4:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHomeFemale4 waitmovement 0 opendoor VAR_0x8009, VAR_0x800A @@ -758,7 +758,7 @@ LittlerootTown_EventScript_MomReturnHomeFemale4:: @ 81E8585 waitdooranim return -LittlerootTown_EventScript_MomReturnHomeFemale5:: @ 81E85AB +LittlerootTown_EventScript_MomReturnHomeFemale5:: applymovement LOCALID_MOM, LittlerootTown_Movement_MomReturnHomeFemale5 waitmovement 0 opendoor VAR_0x8009, VAR_0x800A @@ -770,7 +770,7 @@ LittlerootTown_EventScript_MomReturnHomeFemale5:: @ 81E85AB waitdooranim return -LittlerootTown_Movement_MomApproachPlayer0: @ 81E85D1 +LittlerootTown_Movement_MomApproachPlayer0: walk_up walk_up walk_up @@ -779,7 +779,7 @@ LittlerootTown_Movement_MomApproachPlayer0: @ 81E85D1 walk_up step_end -LittlerootTown_Movement_MomApproachPlayer1: @ 81E85D8 +LittlerootTown_Movement_MomApproachPlayer1: walk_up walk_up walk_up @@ -788,14 +788,14 @@ LittlerootTown_Movement_MomApproachPlayer1: @ 81E85D8 walk_up step_end -LittlerootTown_Movement_MomApproachPlayerMale2: @ 81E85DF +LittlerootTown_Movement_MomApproachPlayerMale2: walk_right walk_right walk_right walk_right step_end -LittlerootTown_Movement_MomApproachPlayerMale3: @ 81E85E4 +LittlerootTown_Movement_MomApproachPlayerMale3: walk_right walk_right walk_right @@ -803,29 +803,29 @@ LittlerootTown_Movement_MomApproachPlayerMale3: @ 81E85E4 walk_right step_end -LittlerootTown_Movement_MomApproachPlayerMale4: @ 81E85EA +LittlerootTown_Movement_MomApproachPlayerMale4: walk_right walk_right step_end -LittlerootTown_Movement_MomApproachPlayerMale5: @ 81E85ED +LittlerootTown_Movement_MomApproachPlayerMale5: walk_right walk_right walk_right step_end -LittlerootTown_Movement_MomApproachPlayerFemale2: @ 81E85F1 +LittlerootTown_Movement_MomApproachPlayerFemale2: walk_left walk_left walk_left step_end -LittlerootTown_Movement_MomApproachPlayerFemale3: @ 81E85F5 +LittlerootTown_Movement_MomApproachPlayerFemale3: walk_left walk_left step_end -LittlerootTown_Movement_MomApproachPlayerFemale4: @ 81E85F8 +LittlerootTown_Movement_MomApproachPlayerFemale4: walk_left walk_left walk_left @@ -833,14 +833,14 @@ LittlerootTown_Movement_MomApproachPlayerFemale4: @ 81E85F8 walk_left step_end -LittlerootTown_Movement_MomApproachPlayerFemale5: @ 81E85FE +LittlerootTown_Movement_MomApproachPlayerFemale5: walk_left walk_left walk_left walk_left step_end -LittlerootTown_Movement_MomReturnHome0: @ 81E8603 +LittlerootTown_Movement_MomReturnHome0: walk_down walk_down walk_down @@ -848,7 +848,7 @@ LittlerootTown_Movement_MomReturnHome0: @ 81E8603 walk_down step_end -LittlerootTown_Movement_MomReturnHome1: @ 81E8609 +LittlerootTown_Movement_MomReturnHome1: walk_down walk_down walk_down @@ -856,7 +856,7 @@ LittlerootTown_Movement_MomReturnHome1: @ 81E8609 walk_down step_end -LittlerootTown_Movement_MomReturnHomeMale2: @ 81E860F +LittlerootTown_Movement_MomReturnHomeMale2: walk_left walk_left walk_left @@ -864,7 +864,7 @@ LittlerootTown_Movement_MomReturnHomeMale2: @ 81E860F walk_in_place_fastest_up step_end -LittlerootTown_Movement_MomReturnHomeMale3: @ 81E8615 +LittlerootTown_Movement_MomReturnHomeMale3: walk_left walk_left walk_left @@ -873,33 +873,33 @@ LittlerootTown_Movement_MomReturnHomeMale3: @ 81E8615 walk_in_place_fastest_up step_end -LittlerootTown_Movement_MomReturnHomeMale4: @ 81E861C +LittlerootTown_Movement_MomReturnHomeMale4: walk_left walk_left walk_in_place_fastest_up step_end -LittlerootTown_Movement_MomReturnHomeMale5: @ 81E8620 +LittlerootTown_Movement_MomReturnHomeMale5: walk_left walk_left walk_left walk_in_place_fastest_up step_end -LittlerootTown_Movement_MomReturnHomeFemale2: @ 81E8625 +LittlerootTown_Movement_MomReturnHomeFemale2: walk_right walk_right walk_right walk_in_place_fastest_up step_end -LittlerootTown_Movement_MomReturnHomeFemale3: @ 81E862A +LittlerootTown_Movement_MomReturnHomeFemale3: walk_right walk_right walk_in_place_fastest_up step_end -LittlerootTown_Movement_MomReturnHomeFemale4: @ 81E862E +LittlerootTown_Movement_MomReturnHomeFemale4: walk_right walk_right walk_right @@ -908,7 +908,7 @@ LittlerootTown_Movement_MomReturnHomeFemale4: @ 81E862E walk_in_place_fastest_up step_end -LittlerootTown_Movement_MomReturnHomeFemale5: @ 81E8635 +LittlerootTown_Movement_MomReturnHomeFemale5: walk_right walk_right walk_right @@ -916,11 +916,11 @@ LittlerootTown_Movement_MomReturnHomeFemale5: @ 81E8635 walk_in_place_fastest_up step_end -LittlerootTown_Movement_MomExitThroughDoor: @ 81E863B +LittlerootTown_Movement_MomExitThroughDoor: walk_up step_end -LittlerootTown_EventScript_Mom:: @ 81E863D +LittlerootTown_EventScript_Mom:: lock faceplayer checkplayergender @@ -941,14 +941,14 @@ LittlerootTown_EventScript_Mom:: @ 81E863D goto LittlerootTown_EventScript_SetReceivedRunningShoes end -LittlerootTown_EventScript_SetReceivedRunningShoes:: @ 81E8686 +LittlerootTown_EventScript_SetReceivedRunningShoes:: removeobject LOCALID_MOM setflag FLAG_SYS_B_DASH setvar VAR_LITTLEROOT_TOWN_STATE, 4 release end -LittlerootTown_EventScript_GiveRunningShoes:: @ 81E8693 +LittlerootTown_EventScript_GiveRunningShoes:: msgbox LittlerootTown_Text_WearTheseRunningShoes, MSGBOX_DEFAULT playfanfare MUS_OBTAIN_ITEM message LittlerootTown_Text_SwitchShoesWithRunningShoes @@ -960,7 +960,7 @@ LittlerootTown_EventScript_GiveRunningShoes:: @ 81E8693 delay 30 return -LittlerootTown_Text_OurNewHomeLetsGoInside: @ 81E86BC +LittlerootTown_Text_OurNewHomeLetsGoInside: .string "MOM: {PLAYER}, we're here, honey!\p" .string "It must be tiring riding with our things\n" .string "in the moving truck.\p" @@ -972,10 +972,10 @@ LittlerootTown_Text_OurNewHomeLetsGoInside: @ 81E86BC .string "And, you get your own room, {PLAYER}!\n" .string "Let's go inside.$" -LittlerootTown_Text_WaitPlayer: @ 81E87E1 +LittlerootTown_Text_WaitPlayer: .string "MOM: Wait, {PLAYER}!$" -LittlerootTown_Text_WearTheseRunningShoes: @ 81E87F0 +LittlerootTown_Text_WearTheseRunningShoes: .string "MOM: {PLAYER}! {PLAYER}! Did you\n" .string "introduce yourself to PROF. BIRCH?\p" .string "Oh! What an adorable POKéMON!\n" @@ -986,11 +986,11 @@ LittlerootTown_Text_WearTheseRunningShoes: @ 81E87F0 .string "adventure, wear these RUNNING SHOES.\p" .string "They'll put a zip in your step!$" -LittlerootTown_Text_SwitchShoesWithRunningShoes: @ 81E8925 +LittlerootTown_Text_SwitchShoesWithRunningShoes: .string "{PLAYER} switched shoes with the\n" .string "RUNNING SHOES.$" -LittlerootTown_Text_ExplainRunningShoes: @ 81E894F +LittlerootTown_Text_ExplainRunningShoes: .string "MOM: {PLAYER}, those shoes came with\n" .string "instructions.\p" .string "“Press the B Button while wearing these\n" @@ -998,7 +998,7 @@ LittlerootTown_Text_ExplainRunningShoes: @ 81E894F .string "“Slip on these RUNNING SHOES and race\n" .string "in the great outdoors!”$" -LittlerootTown_Text_ComeHomeIfAnythingHappens: @ 81E8A03 +LittlerootTown_Text_ComeHomeIfAnythingHappens: .string "… … … … … … … …\n" .string "… … … … … … … …\p" .string "To think that you have your very own\n" @@ -1008,28 +1008,28 @@ LittlerootTown_Text_ComeHomeIfAnythingHappens: @ 81E8A03 .string "If anything happens, you can come home.\p" .string "Go on, go get them, honey!$" -LittlerootTown_Text_CanUsePCToStoreItems: @ 81E8ACF +LittlerootTown_Text_CanUsePCToStoreItems: .string "If you use a PC, you can store items\n" .string "and POKéMON.\p" .string "The power of science is staggering!$" -LittlerootTown_Text_BirchSpendsDaysInLab: @ 81E8B25 +LittlerootTown_Text_BirchSpendsDaysInLab: .string "PROF. BIRCH spends days in his LAB\n" .string "studying, then he'll suddenly go out in\l" .string "the wild to do more research…\p" .string "When does PROF. BIRCH spend time\n" .string "at home?$" -LittlerootTown_Text_IfYouGoInGrassPokemonWillJumpOut: @ 81E8BB8 +LittlerootTown_Text_IfYouGoInGrassPokemonWillJumpOut: .string "Um, um, um!\p" .string "If you go outside and go in the grass,\n" .string "wild POKéMON will jump out!$" -LittlerootTown_Text_DangerousIfYouDontHavePokemon: @ 81E8C07 +LittlerootTown_Text_DangerousIfYouDontHavePokemon: .string "It's dangerous if you don't have\n" .string "your own POKéMON.$" -LittlerootTown_Text_CanYouGoSeeWhatsHappening: @ 81E8C3A +LittlerootTown_Text_CanYouGoSeeWhatsHappening: .string "Um, hi!\p" .string "There are scary POKéMON outside!\n" .string "I can hear their cries!\p" @@ -1038,28 +1038,28 @@ LittlerootTown_Text_CanYouGoSeeWhatsHappening: @ 81E8C3A .string "Can you go see what's happening\n" .string "for me?$" -LittlerootTown_Text_YouSavedBirch: @ 81E8CE3 +LittlerootTown_Text_YouSavedBirch: .string "You saved PROF. BIRCH!\n" .string "I'm so glad!$" -LittlerootTown_Text_GoodLuckCatchingPokemon: @ 81E8D07 +LittlerootTown_Text_GoodLuckCatchingPokemon: .string "Are you going to catch POKéMON?\n" .string "Good luck!$" -LittlerootTown_Text_TownSign: @ 81E8D32 +LittlerootTown_Text_TownSign: .string "LITTLEROOT TOWN\n" .string "“A town that can't be shaded any hue.”$" -LittlerootTown_Text_ProfBirchsLab: @ 81E8D69 +LittlerootTown_Text_ProfBirchsLab: .string "PROF. BIRCH'S POKéMON LAB$" -LittlerootTown_Text_PlayersHouse: @ 81E8D83 +LittlerootTown_Text_PlayersHouse: .string "{PLAYER}'s HOUSE$" -LittlerootTown_Text_ProfBirchsHouse: @ 81E8D8E +LittlerootTown_Text_ProfBirchsHouse: .string "PROF. BIRCH'S HOUSE$" -LittlerootTown_Text_BirchSomethingToShowYouAtLab: @ 81E8DA2 +LittlerootTown_Text_BirchSomethingToShowYouAtLab: .string "PROF. BIRCH: Well, well, {PLAYER}{KUN}!\n" .string "That was good work out there!\p" .string "I knew there was something special\n" diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc index ee677fbff8..9d19519c81 100644 --- a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc @@ -2,34 +2,34 @@ .set LOCALID_RIVAL_MOM, 4 .set LOCALID_RIVAL, 7 -LittlerootTown_BrendansHouse_1F_MapScripts:: @ 81F7755 +LittlerootTown_BrendansHouse_1F_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, LittlerootTown_BrendansHouse_1F_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, LittlerootTown_BrendansHouse_1F_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, LittlerootTown_BrendansHouse_1F_OnFrame .byte 0 -LittlerootTown_BrendansHouse_1F_OnLoad: @ 81F7765 +LittlerootTown_BrendansHouse_1F_OnLoad: compare VAR_LITTLEROOT_INTRO_STATE, 6 call_if_lt LittlerootTown_BrendansHouse_1F_EventScript_SetMovingBoxes call_if_set FLAG_RECEIVED_RUNNING_SHOES, LittlerootTown_BrendansHouse_1F_EventScript_CheckShowShoesManual end -LittlerootTown_BrendansHouse_1F_EventScript_SetMovingBoxes:: @ 81F777A +LittlerootTown_BrendansHouse_1F_EventScript_SetMovingBoxes:: setmetatile 5, 4, METATILE_BrendansMaysHouse_MovingBox_Open, 1 setmetatile 5, 2, METATILE_BrendansMaysHouse_MovingBox_Closed, 1 return -LittlerootTown_BrendansHouse_1F_EventScript_CheckShowShoesManual:: @ 81F778D +LittlerootTown_BrendansHouse_1F_EventScript_CheckShowShoesManual:: checkplayergender compare VAR_RESULT, MALE goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_ShowRunningShoesManual return -LittlerootTown_BrendansHouse_1F_EventScript_ShowRunningShoesManual:: @ 81F779A +LittlerootTown_BrendansHouse_1F_EventScript_ShowRunningShoesManual:: setmetatile 3, 7, METATILE_BrendansMaysHouse_BookOnTable, 1 return -LittlerootTown_BrendansHouse_1F_OnTransition: @ 81F77A4 +LittlerootTown_BrendansHouse_1F_OnTransition: compare VAR_LITTLEROOT_INTRO_STATE, 3 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToDoor compare VAR_LITTLEROOT_INTRO_STATE, 5 @@ -38,24 +38,24 @@ LittlerootTown_BrendansHouse_1F_OnTransition: @ 81F77A4 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToTV end -LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToStairs:: @ 81F77C6 +LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToStairs:: setobjectxyperm LOCALID_MOM, 8, 4 setobjectmovementtype LOCALID_MOM, MOVEMENT_TYPE_FACE_UP return -LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToTV:: @ 81F77D2 +LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToTV:: setobjectxyperm LOCALID_MOM, 4, 5 setobjectmovementtype LOCALID_MOM, MOVEMENT_TYPE_FACE_UP return -LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToDoor:: @ 81F77DE +LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToDoor:: setobjectxyperm LOCALID_MOM, 9, 8 setobjectmovementtype LOCALID_MOM, MOVEMENT_TYPE_FACE_UP return @ Many of the below scripts have no gender check because they assume youre in the correct house @ The below SS Ticket script uses Mays house state by accident(?), but theyre both set identically after the intro -LittlerootTown_BrendansHouse_1F_OnFrame: @ 81F77EA +LittlerootTown_BrendansHouse_1F_OnFrame: map_script_2 VAR_LITTLEROOT_INTRO_STATE, 3, LittlerootTown_BrendansHouse_1F_EventScript_EnterHouseMovingIn map_script_2 VAR_LITTLEROOT_INTRO_STATE, 5, LittlerootTown_BrendansHouse_1F_EventScript_GoUpstairsToSetClock map_script_2 VAR_LITTLEROOT_INTRO_STATE, 6, LittlerootTown_BrendansHouse_1F_EventScript_PetalburgGymReport @@ -63,7 +63,7 @@ LittlerootTown_BrendansHouse_1F_OnFrame: @ 81F77EA map_script_2 VAR_LITTLEROOT_HOUSES_STATE_MAY, 3, PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV .2byte 0 -LittlerootTown_BrendansHouse_1F_EventScript_GoUpstairsToSetClock:: @ 81F7814 +LittlerootTown_BrendansHouse_1F_EventScript_GoUpstairsToSetClock:: lockall msgbox PlayersHouse_1F_Text_GoSetTheClock, MSGBOX_DEFAULT closemessage @@ -75,25 +75,25 @@ LittlerootTown_BrendansHouse_1F_EventScript_GoUpstairsToSetClock:: @ 81F7814 releaseall end -LittlerootTown_BrendansHouse_1F_Movement_PushTowardStairs: @ 81F783A +LittlerootTown_BrendansHouse_1F_Movement_PushTowardStairs: walk_up step_end -LittlerootTown_BrendansHouse_1F_EventScript_EnterHouseMovingIn:: @ 81F783C +LittlerootTown_BrendansHouse_1F_EventScript_EnterHouseMovingIn:: lockall setvar VAR_0x8004, LOCALID_MOM setvar VAR_0x8005, MALE goto PlayersHouse_1F_EventScript_EnterHouseMovingIn end -LittlerootTown_BrendansHouse_1F_EventScript_PetalburgGymReport:: @ 81F784D +LittlerootTown_BrendansHouse_1F_EventScript_PetalburgGymReport:: lockall setvar VAR_0x8004, MALE setvar VAR_0x8005, LOCALID_MOM goto PlayersHouse_1F_EventScript_PetalburgGymReportMale end -LittlerootTown_BrendansHouse_1F_EventScript_YoureNewNeighbor:: @ 81F785E +LittlerootTown_BrendansHouse_1F_EventScript_YoureNewNeighbor:: lockall playse SE_PIN applymovement LOCALID_RIVAL_MOM, Common_Movement_ExclamationMark @@ -110,7 +110,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_YoureNewNeighbor:: @ 81F785E releaseall end -LittlerootTown_BrendansHouse_1F_Movement_RivalMomApproach: @ 81F789C +LittlerootTown_BrendansHouse_1F_Movement_RivalMomApproach: walk_down walk_right walk_right @@ -119,7 +119,7 @@ LittlerootTown_BrendansHouse_1F_Movement_RivalMomApproach: @ 81F789C walk_right step_end -LittlerootTown_BrendansHouse_1F_EventScript_GoSeeRoom:: @ 81F78A3 +LittlerootTown_BrendansHouse_1F_EventScript_GoSeeRoom:: lockall setvar VAR_0x8004, LOCALID_MOM setvar VAR_0x8005, MALE @@ -128,25 +128,25 @@ LittlerootTown_BrendansHouse_1F_EventScript_GoSeeRoom:: @ 81F78A3 goto PlayersHouse_1F_EventScript_MomGoSeeRoom end -LittlerootTown_BrendansHouse_1F_EventScript_MeetRival0:: @ 81F78BE +LittlerootTown_BrendansHouse_1F_EventScript_MeetRival0:: lockall setvar VAR_0x8008, 0 goto LittlerootTown_BrendansHouse_1F_EventScript_MeetRival end -LittlerootTown_BrendansHouse_1F_EventScript_MeetRival1:: @ 81F78CA +LittlerootTown_BrendansHouse_1F_EventScript_MeetRival1:: lockall setvar VAR_0x8008, 1 goto LittlerootTown_BrendansHouse_1F_EventScript_MeetRival end -LittlerootTown_BrendansHouse_1F_EventScript_MeetRival2:: @ 81F78D6 +LittlerootTown_BrendansHouse_1F_EventScript_MeetRival2:: lockall setvar VAR_0x8008, 2 goto LittlerootTown_BrendansHouse_1F_EventScript_MeetRival end -LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 +LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: playse SE_EXIT delay 10 addobject LOCALID_RIVAL @@ -158,7 +158,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 waitmovement 0 compare VAR_0x8008, 1 call_if_ne LittlerootTown_BrendansHouse_1F_EventScript_PlayerFaceBrendan - playbgm MUS_ENCOUNTER_BRENDAN, 1 + playbgm MUS_ENCOUNTER_BRENDAN, TRUE compare VAR_0x8008, 0 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer0 compare VAR_0x8008, 1 @@ -186,27 +186,27 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 releaseall end -LittlerootTown_BrendansHouse_1F_EventScript_PlayerFaceBrendan:: @ 81F7981 +LittlerootTown_BrendansHouse_1F_EventScript_PlayerFaceBrendan:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer0:: @ 81F798C +LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer0:: applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer0 waitmovement 0 return -LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer1:: @ 81F7997 +LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer1:: applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer1 waitmovement 0 return -LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer2:: @ 81F79A2 +LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer2:: applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer2 waitmovement 0 return -LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer0: @ 81F79AD +LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer0: walk_in_place_fastest_left walk_left walk_in_place_fastest_up @@ -216,13 +216,13 @@ LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer0: @ 81F79AD walk_up step_end -LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer1: @ 81F79B5 +LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer1: walk_up walk_up walk_up step_end -LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer2: @ 81F79B9 +LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer2: walk_in_place_fastest_right walk_right walk_in_place_fastest_up @@ -232,31 +232,31 @@ LittlerootTown_BrendansHouse_1F_Movement_BrendanApproachPlayer2: @ 81F79B9 walk_up step_end -LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs0:: @ 81F79C1 +LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs0:: applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit0 applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs0 waitmovement 0 return -LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs1:: @ 81F79D3 +LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs1:: applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit1 applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs1 waitmovement 0 return -LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs2:: @ 81F79E5 +LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs2:: applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit2 applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs2 waitmovement 0 return -LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit0: @ 81F79F7 +LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit0: delay_16 delay_8 walk_in_place_fastest_right step_end -LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit1: @ 81F79FB +LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit1: delay_16 delay_8 walk_in_place_fastest_right @@ -265,13 +265,13 @@ LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit1: @ 81F79FB walk_in_place_fastest_up step_end -LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit2: @ 81F7A02 +LittlerootTown_BrendansHouse_1F_Movement_PlayerWatchBrendanExit2: delay_16 delay_8 walk_in_place_fastest_left step_end -LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs0: @ 81F7A06 +LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs0: walk_in_place_fastest_right walk_right walk_in_place_fastest_up @@ -279,7 +279,7 @@ LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs0: @ 81F7A06 walk_up step_end -LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs1: @ 81F7A0C +LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs1: walk_in_place_fastest_right walk_right walk_in_place_fastest_up @@ -291,7 +291,7 @@ LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs1: @ 81F7A0C walk_up step_end -LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs2: @ 81F7A16 +LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs2: walk_in_place_fastest_left walk_left walk_in_place_fastest_up @@ -299,11 +299,11 @@ LittlerootTown_BrendansHouse_1F_Movement_BrendanGoUpstairs2: @ 81F7A16 walk_up step_end -PlayersHouse_1F_Text_IsntItNiceInHere: @ 81F7A1C +PlayersHouse_1F_Text_IsntItNiceInHere: .string "MOM: See, {PLAYER}?\n" .string "Isn't it nice in here, too?$" -PlayersHouse_1F_Text_MoversPokemonGoSetClock: @ 81F7A46 +PlayersHouse_1F_Text_MoversPokemonGoSetClock: .string "The mover's POKéMON do all the work\n" .string "of moving us in and cleaning up after.\l" .string "This is so convenient!\p" @@ -313,87 +313,87 @@ PlayersHouse_1F_Text_MoversPokemonGoSetClock: @ 81F7A46 .string "our move here.\l" .string "Don't forget to set it!$" -PlayersHouse_1F_Text_ArentYouInterestedInRoom: @ 81F7B24 +PlayersHouse_1F_Text_ArentYouInterestedInRoom: .string "MOM: Well, {PLAYER}?\p" .string "Aren't you interested in seeing your\n" .string "very own room?$" -PlayersHouse_1F_Text_GoSetTheClock: @ 81F7B67 +PlayersHouse_1F_Text_GoSetTheClock: .string "MOM: {PLAYER}.\p" .string "Go set the clock in your room, honey.$" -PlayersHouse_1F_Text_OhComeQuickly: @ 81F7B96 +PlayersHouse_1F_Text_OhComeQuickly: .string "MOM: Oh! {PLAYER}, {PLAYER}!\n" .string "Quick! Come quickly!$" -PlayersHouse_1F_Text_MaybeDadWillBeOn: @ 81F7BBC +PlayersHouse_1F_Text_MaybeDadWillBeOn: .string "MOM: Look! It's PETALBURG GYM!\n" .string "Maybe DAD will be on!$" -PlayersHouse_1F_Text_ItsOverWeMissedHim: @ 81F7BF1 +PlayersHouse_1F_Text_ItsOverWeMissedHim: .string "MOM: Oh… It's over.\p" .string "I think DAD was on, but we missed him.\n" .string "Too bad.$" -PlayersHouse_1F_Text_GoIntroduceYourselfNextDoor: @ 81F7C35 +PlayersHouse_1F_Text_GoIntroduceYourselfNextDoor: .string "Oh, yes.\n" .string "One of DAD's friends lives in town.\p" .string "PROF. BIRCH is his name.\p" .string "He lives right next door, so you should\n" .string "go over and introduce yourself.$" -PlayersHouse_1F_Text_SeeYouHoney: @ 81F7CC3 +PlayersHouse_1F_Text_SeeYouHoney: .string "MOM: See you, honey!$" -PlayersHouse_1F_Text_DidYouMeetProfBirch: @ 81F7CD8 +PlayersHouse_1F_Text_DidYouMeetProfBirch: .string "MOM: Did you introduce yourself to\n" .string "PROF. BIRCH?$" -PlayersHouse_1F_Text_YouShouldRestABit: @ 81F7D08 +PlayersHouse_1F_Text_YouShouldRestABit: .string "MOM: How are you doing, {PLAYER}?\n" .string "You look a little tired.\p" .string "I think you should rest a bit.$" -PlayersHouse_1F_Text_TakeCareHoney: @ 81F7D5C +PlayersHouse_1F_Text_TakeCareHoney: .string "MOM: Take care, honey!$" -PlayersHouse_1F_Text_GotDadsBadgeHeresSomethingFromMom: @ 81F7D73 +PlayersHouse_1F_Text_GotDadsBadgeHeresSomethingFromMom: .string "MOM: Oh? Did DAD give you that BADGE?\p" .string "Then here's something from your MOM!$" -PlayersHouse_1F_Text_DontPushYourselfTooHard: @ 81F7DBE +PlayersHouse_1F_Text_DontPushYourselfTooHard: .string "Don't push yourself too hard, dear.\n" .string "You can always come home.\p" .string "Go for it, honey!$" -PlayersHouse_1F_Text_IsThatAPokenav: @ 81F7E0E +PlayersHouse_1F_Text_IsThatAPokenav: .string "MOM: What is that, honey? A POKéNAV?\n" .string "Someone from DEVON gave it to you?\p" .string "Well, honey, how about registering\n" .string "your mom?\p" .string "… … …$" -PlayersHouse_1F_Text_RegisteredMom: @ 81F7E89 +PlayersHouse_1F_Text_RegisteredMom: .string "Registered MOM\n" .string "in the POKéNAV.$" -PlayersHouse_1F_Text_Vigoroth1: @ 81F7EA8 +PlayersHouse_1F_Text_Vigoroth1: .string "Fugiiiiih!$" -PlayersHouse_1F_Text_Vigoroth2: @ 81F7EB3 +PlayersHouse_1F_Text_Vigoroth2: .string "Huggoh, uggo uggo…$" -PlayersHouse_1F_Text_ReportFromPetalburgGym: @ 81F7EC6 +PlayersHouse_1F_Text_ReportFromPetalburgGym: .string "INTERVIEWER: …We brought you this\n" .string "report from in front of PETALBURG GYM.$" -PlayersHouse_1F_Text_TheresAMovieOnTV: @ 81F7F0F +PlayersHouse_1F_Text_TheresAMovieOnTV: .string "There is a movie on TV.\p" .string "Two men are dancing on a big piano\n" .string "keyboard.\p" .string "Better get going!$" -PlayersHouse_1F_Text_RunningShoesManual: @ 81F7F66 +PlayersHouse_1F_Text_RunningShoesManual: .string "It's the instruction booklet for the\n" .string "RUNNING SHOES.\p" .string "“Press the B Button to run while\n" @@ -401,7 +401,7 @@ PlayersHouse_1F_Text_RunningShoesManual: @ 81F7F66 .string "“Lace up your RUNNING SHOES and hit\n" .string "the road running!”$" -PlayersHouse_1F_Text_TicketFromBrineyCameForYou: @ 81F800E +PlayersHouse_1F_Text_TicketFromBrineyCameForYou: .string "DAD: Hm?\p" .string "Hey, it's {PLAYER}!\p" .string "It's been a while since I saw you,\n" @@ -412,26 +412,26 @@ PlayersHouse_1F_Text_TicketFromBrineyCameForYou: @ 81F800E .string "This came to you from someone named\l" .string "MR. BRINEY.$" -PlayersHouse_1F_Text_PortsInSlateportLilycove: @ 81F80FE +PlayersHouse_1F_Text_PortsInSlateportLilycove: .string "DAD: Hm, a TICKET for a ferry?\p" .string "If I recall, there are ferry ports in\n" .string "SLATEPORT and LILYCOVE.$" -PlayersHouse_1F_Text_BetterGetBackToGym: @ 81F815B +PlayersHouse_1F_Text_BetterGetBackToGym: .string "I'd better get back to PETALBURG GYM.\p" .string "MOM, thanks for looking after the house\n" .string "while I'm away.$" -PlayersHouse_1F_Text_DadShouldStayLonger: @ 81F81B9 +PlayersHouse_1F_Text_DadShouldStayLonger: .string "MOM: That DAD of yours…\p" .string "He comes home for the first time in a\n" .string "while, but all he talks about is POKéMON.\p" .string "He should relax and stay a little longer.$" -PlayersHouse_1F_Text_IsThatABreakingStory: @ 81F824B +PlayersHouse_1F_Text_IsThatABreakingStory: .string "MOM: Is that a breaking news story?$" -PlayersHouse_1F_Text_LatiEmergencyNewsFlash: @ 81F826F +PlayersHouse_1F_Text_LatiEmergencyNewsFlash: .string "We bring you this emergency\n" .string "news flash!\p" .string "In various HOENN locales, there have\n" @@ -442,11 +442,11 @@ PlayersHouse_1F_Text_LatiEmergencyNewsFlash: @ 81F826F .string "We now return you to the regular\n" .string "movie program.$" -PlayersHouse_1F_Text_WhatColorDidTheySay: @ 81F8351 +PlayersHouse_1F_Text_WhatColorDidTheySay: .string "MOM: {PLAYER}, did you catch that?\p" .string "What color did the announcer say\n" .string "that POKéMON was?$" -PlayersHouse_1F_Text_StillUnknownPokemon: @ 81F83A1 +PlayersHouse_1F_Text_StillUnknownPokemon: .string "MOM: Well, isn't that something!\n" .string "There are still unknown POKéMON.$" diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/map.json b/data/maps/LittlerootTown_BrendansHouse_2F/map.json index 03e2dcd829..c938aaae21 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/map.json +++ b/data/maps/LittlerootTown_BrendansHouse_2F/map.json @@ -194,7 +194,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_LITTLE_ROOT_TOWN_PLAYERS_BEDROOM_MOM" + "flag": "FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_BEDROOM_MOM" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc index ab6f55af5d..5d6af5cf00 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc @@ -1,11 +1,11 @@ .set LOCALID_RIVAL, 1 -LittlerootTown_BrendansHouse_2F_MapScripts:: @ 81F83E3 +LittlerootTown_BrendansHouse_2F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LittlerootTown_BrendansHouse_2F_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, LittlerootTown_BrendansHouse_2F_OnWarp .byte 0 -LittlerootTown_BrendansHouse_2F_OnTransition: @ 81F83EE +LittlerootTown_BrendansHouse_2F_OnTransition: compare VAR_LITTLEROOT_RIVAL_STATE, 2 call_if_lt LittlerootTown_BrendansHouse_2F_EventScript_CheckSetReadyToMeetBrendan compare VAR_LITTLEROOT_RIVAL_STATE, 3 @@ -16,13 +16,13 @@ LittlerootTown_BrendansHouse_2F_OnTransition: @ 81F83EE setvar VAR_SECRET_BASE_INITIALIZED, 0 end -LittlerootTown_BrendansHouse_2F_EventScript_CheckShouldUpdateBrendanPos:: @ 81F841A +LittlerootTown_BrendansHouse_2F_EventScript_CheckShouldUpdateBrendanPos:: goto_if_set FLAG_MET_RIVAL_LILYCOVE, LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos compare VAR_BIRCH_LAB_STATE, 2 goto_if_ge LittlerootTown_BrendansHouse_2F_EventScript_Ret goto LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos -LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos:: @ 81F8433 +LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos:: checkplayergender compare VAR_RESULT, MALE goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_Ret @@ -32,30 +32,30 @@ LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos:: @ 81F8433 setobjectmovementtype LOCALID_RIVAL, MOVEMENT_TYPE_FACE_UP return -LittlerootTown_BrendansHouse_2F_EventScript_Ret:: @ 81F8456 +LittlerootTown_BrendansHouse_2F_EventScript_Ret:: return -LittlerootTown_BrendansHouse_2F_EventScript_CheckSetReadyToMeetBrendan:: @ 81F8457 +LittlerootTown_BrendansHouse_2F_EventScript_CheckSetReadyToMeetBrendan:: checkplayergender compare VAR_RESULT, FEMALE goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_SetReadyToMeetBrendan return -LittlerootTown_BrendansHouse_2F_EventScript_SetReadyToMeetBrendan:: @ 81F8464 +LittlerootTown_BrendansHouse_2F_EventScript_SetReadyToMeetBrendan:: setvar VAR_LITTLEROOT_RIVAL_STATE, 2 return -LittlerootTown_BrendansHouse_2F_OnWarp: @ 81F846A +LittlerootTown_BrendansHouse_2F_OnWarp: map_script_2 VAR_SECRET_BASE_INITIALIZED, 0, LittlerootTown_BrendansHouse_2F_EventScript_CheckInitDecor .2byte 0 -LittlerootTown_BrendansHouse_2F_EventScript_CheckInitDecor:: @ 81F8474 +LittlerootTown_BrendansHouse_2F_EventScript_CheckInitDecor:: checkplayergender compare VAR_RESULT, MALE goto_if_eq SecretBase_EventScript_InitDecorations end -LittlerootTown_BrendansHouse_2F_EventScript_RivalsPokeBall:: @ 81F8481 +LittlerootTown_BrendansHouse_2F_EventScript_RivalsPokeBall:: lockall compare VAR_LITTLEROOT_RIVAL_STATE, 2 goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan @@ -63,7 +63,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_RivalsPokeBall:: @ 81F8481 releaseall end -LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan:: @ 81F8497 +LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan:: delay 10 addobject LOCALID_RIVAL applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_2F_Movement_BrendanEnters @@ -74,7 +74,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan:: @ 81F8497 applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 10 - playbgm MUS_ENCOUNTER_BRENDAN, 1 + playbgm MUS_ENCOUNTER_BRENDAN, TRUE compare VAR_FACING, DIR_NORTH call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth compare VAR_FACING, DIR_SOUTH @@ -92,7 +92,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan:: @ 81F8497 releaseall end -LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth:: @ 81F8507 +LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth:: applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerNorth waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight @@ -104,7 +104,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth:: @ 81F8507 waitmovement 0 return -LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanSouth:: @ 81F8536 +LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanSouth:: applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerSouth waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight @@ -116,7 +116,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanSouth:: @ 81F8536 waitmovement 0 return -LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanWest:: @ 81F8565 +LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanWest:: applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerWest waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight @@ -128,7 +128,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanWest:: @ 81F8565 waitmovement 0 return -LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanEast:: @ 81F8594 +LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanEast:: applymovement LOCALID_RIVAL, LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerEast waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp @@ -139,13 +139,13 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanEast:: @ 81F8594 waitmovement 0 return -LittlerootTown_BrendansHouse_2F_Movement_BrendanEnters: @ 81F85BC +LittlerootTown_BrendansHouse_2F_Movement_BrendanEnters: walk_down walk_down walk_in_place_fastest_left step_end -LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerNorth: @ 81F85C0 +LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerNorth: walk_left walk_left walk_down @@ -153,7 +153,7 @@ LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerNorth: @ 81F85C0 walk_left step_end -LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCNorth: @ 81F85C6 +LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCNorth: walk_up walk_up walk_up @@ -164,7 +164,7 @@ LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCNorth: @ 81F85C6 walk_in_place_fastest_up step_end -LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanNorth: @ 81F85CF +LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanNorth: delay_16 walk_in_place_fastest_up delay_16 @@ -174,13 +174,13 @@ LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanNorth: @ 81F85CF walk_in_place_fastest_left step_end -LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerSouth: @ 81F85D7 +LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerSouth: walk_left walk_left walk_left step_end -LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCSouth: @ 81F85DB +LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCSouth: walk_up walk_left walk_left @@ -189,7 +189,7 @@ LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCSouth: @ 81F85DB walk_in_place_fastest_up step_end -LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanSouth: @ 81F85E2 +LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanSouth: delay_16 walk_in_place_fastest_up delay_16 @@ -197,14 +197,14 @@ LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanSouth: @ 81F85E2 walk_in_place_fastest_left step_end -LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerWest: @ 81F85E8 +LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerWest: walk_left walk_left walk_down walk_in_place_fastest_left step_end -LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCWest: @ 81F85ED +LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCWest: walk_up walk_up walk_left @@ -215,7 +215,7 @@ LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCWest: @ 81F85ED walk_in_place_fastest_up step_end -LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanWest: @ 81F85F6 +LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanWest: delay_8 delay_16 walk_in_place_fastest_up @@ -224,7 +224,7 @@ LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanWest: @ 81F85F6 walk_in_place_fastest_left step_end -LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerEast: @ 81F85FD +LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerEast: walk_left walk_left walk_left @@ -233,7 +233,7 @@ LittlerootTown_BrendansHouse_2F_Movement_BrendanApproachPlayerEast: @ 81F85FD walk_in_place_fastest_down step_end -LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCEast: @ 81F8604 +LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCEast: walk_up walk_left walk_left @@ -241,13 +241,13 @@ LittlerootTown_BrendansHouse_2F_Movement_BrendanWalkToPCEast: @ 81F8604 step_end @ Unused, the player is already facing this direction so its unneeded -LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanEast: @ 81F8609 +LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanEast: delay_16 delay_16 walk_in_place_fastest_left step_end -LittlerootTown_BrendansHouse_2F_EventScript_PC:: @ 81F860D +LittlerootTown_BrendansHouse_2F_EventScript_PC:: lockall checkplayergender compare VAR_RESULT, MALE @@ -256,7 +256,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_PC:: @ 81F860D goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_CheckRivalsPC end -LittlerootTown_BrendansHouse_2F_EventScript_CheckPlayersPC:: @ 81F8626 +LittlerootTown_BrendansHouse_2F_EventScript_CheckPlayersPC:: setvar VAR_0x8004, 1 special DoPCTurnOnEffect playse SE_PC_ON @@ -266,31 +266,31 @@ LittlerootTown_BrendansHouse_2F_EventScript_CheckPlayersPC:: @ 81F8626 releaseall end -LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC:: @ 81F863F +LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC:: setvar VAR_0x8004, 1 playse SE_PC_OFF special DoPCTurnOffEffect releaseall end -LittlerootTown_BrendansHouse_2F_EventScript_CheckRivalsPC:: @ 81F864C +LittlerootTown_BrendansHouse_2F_EventScript_CheckRivalsPC:: msgbox gText_PokemonTrainerSchoolEmail, MSGBOX_DEFAULT releaseall end -PlayersHouse_2F_EventScript_Notebook:: @ 81F8656 +PlayersHouse_2F_EventScript_Notebook:: msgbox PlayersHouse_2F_Text_Notebook, MSGBOX_SIGN end -PlayersHouse_2F_EventScript_GameCube:: @ 81F865F +PlayersHouse_2F_EventScript_GameCube:: msgbox PlayersHouse_2F_Text_ItsAGameCube, MSGBOX_SIGN end -PlayersHouse_2F_Text_ClockIsStopped: @ 81F8668 +PlayersHouse_2F_Text_ClockIsStopped: .string "The clock is stopped…\p" .string "Better set it and start it!$" -PlayersHouse_2F_Text_HowDoYouLikeYourRoom: @ 81F869A +PlayersHouse_2F_Text_HowDoYouLikeYourRoom: .string "MOM: {PLAYER}, how do you like your\n" .string "new room?\p" .string "Good! Everything's put away neatly!\p" @@ -300,7 +300,7 @@ PlayersHouse_2F_Text_HowDoYouLikeYourRoom: @ 81F869A .string "Oh, you should make sure that\n" .string "everything's all there on your desk.$" -PlayersHouse_2F_Text_Notebook: @ 81F877F +PlayersHouse_2F_Text_Notebook: .string "{PLAYER} flipped open the notebook.\p" .string "ADVENTURE RULE NO. 1\n" .string "Open the MENU with START.\p" @@ -308,11 +308,11 @@ PlayersHouse_2F_Text_Notebook: @ 81F877F .string "Record your progress with SAVE.\p" .string "The remaining pages are blank…$" -Common_Text_LookCloserAtMap: @ 81F8820 +Common_Text_LookCloserAtMap: .string "{PLAYER} took a closer look at the\n" .string "HOENN region map.$" -PlayersHouse_2F_Text_ItsAGameCube: @ 81F884F +PlayersHouse_2F_Text_ItsAGameCube: .string "It's a Nintendo GameCube.\p" .string "A Game Boy Advance is connected to\n" .string "serve as the Controller.$" diff --git a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc index 1e1bb0e119..80c8c919e3 100644 --- a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc @@ -2,34 +2,34 @@ .set LOCALID_RIVAL_MOM, 4 .set LOCALID_RIVAL, 7 -LittlerootTown_MaysHouse_1F_MapScripts:: @ 81F88A5 +LittlerootTown_MaysHouse_1F_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, LittlerootTown_MaysHouse_1F_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, LittlerootTown_MaysHouse_1F_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, LittlerootTown_MaysHouse_1F_OnFrame .byte 0 -LittlerootTown_MaysHouse_1F_OnLoad: @ 81F88B5 +LittlerootTown_MaysHouse_1F_OnLoad: compare VAR_LITTLEROOT_INTRO_STATE, 6 call_if_lt LittlerootTown_MaysHouse_1F_EventScript_SetMovingBoxes call_if_set FLAG_RECEIVED_RUNNING_SHOES, LittlerootTown_MaysHouse_1F_EventScript_CheckShowShoesManual end -LittlerootTown_MaysHouse_1F_EventScript_SetMovingBoxes:: @ 81F88CA +LittlerootTown_MaysHouse_1F_EventScript_SetMovingBoxes:: setmetatile 5, 4, METATILE_BrendansMaysHouse_MovingBox_Open, 1 setmetatile 5, 2, METATILE_BrendansMaysHouse_MovingBox_Closed, 1 return -LittlerootTown_MaysHouse_1F_EventScript_CheckShowShoesManual:: @ 81F88DD +LittlerootTown_MaysHouse_1F_EventScript_CheckShowShoesManual:: checkplayergender compare VAR_RESULT, FEMALE goto_if_eq LittlerootTown_MaysHouse_1F_EventScript_ShowRunningShoesManual return -LittlerootTown_MaysHouse_1F_EventScript_ShowRunningShoesManual:: @ 81F88EA +LittlerootTown_MaysHouse_1F_EventScript_ShowRunningShoesManual:: setmetatile 6, 7, METATILE_BrendansMaysHouse_BookOnTable, 1 return -LittlerootTown_MaysHouse_1F_OnTransition: @ 81F88F4 +LittlerootTown_MaysHouse_1F_OnTransition: compare VAR_LITTLEROOT_INTRO_STATE, 3 call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MoveMomToDoor compare VAR_LITTLEROOT_INTRO_STATE, 5 @@ -38,23 +38,23 @@ LittlerootTown_MaysHouse_1F_OnTransition: @ 81F88F4 call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MoveMomToTV end -LittlerootTown_MaysHouse_1F_EventScript_MoveMomToStairs:: @ 81F8916 +LittlerootTown_MaysHouse_1F_EventScript_MoveMomToStairs:: setobjectxyperm LOCALID_MOM, 2, 4 setobjectmovementtype LOCALID_MOM, MOVEMENT_TYPE_FACE_UP return -LittlerootTown_MaysHouse_1F_EventScript_MoveMomToTV:: @ 81F8922 +LittlerootTown_MaysHouse_1F_EventScript_MoveMomToTV:: setobjectxyperm LOCALID_MOM, 6, 5 setobjectmovementtype LOCALID_MOM, MOVEMENT_TYPE_FACE_UP return -LittlerootTown_MaysHouse_1F_EventScript_MoveMomToDoor:: @ 81F892E +LittlerootTown_MaysHouse_1F_EventScript_MoveMomToDoor:: setobjectxyperm LOCALID_MOM, 1, 8 setobjectmovementtype LOCALID_MOM, MOVEMENT_TYPE_FACE_UP return @ Many of the below scripts have no gender check because they assume youre in the correct house -LittlerootTown_MaysHouse_1F_OnFrame: @ 81F893A +LittlerootTown_MaysHouse_1F_OnFrame: map_script_2 VAR_LITTLEROOT_INTRO_STATE, 3, LittlerootTown_MaysHouse_1F_EventScript_EnterHouseMovingIn map_script_2 VAR_LITTLEROOT_INTRO_STATE, 5, LittlerootTown_MaysHouse_1F_EventScript_GoUpstairsToSetClock map_script_2 VAR_LITTLEROOT_INTRO_STATE, 6, LittlerootTown_MaysHouse_1F_EventScript_PetalburgGymReport @@ -62,7 +62,7 @@ LittlerootTown_MaysHouse_1F_OnFrame: @ 81F893A map_script_2 VAR_LITTLEROOT_HOUSES_STATE_MAY, 3, PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV .2byte 0 -LittlerootTown_MaysHouse_1F_EventScript_GoUpstairsToSetClock:: @ 81F8964 +LittlerootTown_MaysHouse_1F_EventScript_GoUpstairsToSetClock:: lockall msgbox PlayersHouse_1F_Text_GoSetTheClock, MSGBOX_DEFAULT closemessage @@ -74,25 +74,25 @@ LittlerootTown_MaysHouse_1F_EventScript_GoUpstairsToSetClock:: @ 81F8964 releaseall end -LittlerootTown_MaysHouse_1F_Movement_PushTowardStairs: @ 81F898A +LittlerootTown_MaysHouse_1F_Movement_PushTowardStairs: walk_up step_end -LittlerootTown_MaysHouse_1F_EventScript_EnterHouseMovingIn:: @ 81F898C +LittlerootTown_MaysHouse_1F_EventScript_EnterHouseMovingIn:: lockall setvar VAR_0x8004, LOCALID_MOM setvar VAR_0x8005, FEMALE goto PlayersHouse_1F_EventScript_EnterHouseMovingIn end -LittlerootTown_MaysHouse_1F_EventScript_PetalburgGymReport:: @ 81F899D +LittlerootTown_MaysHouse_1F_EventScript_PetalburgGymReport:: lockall setvar VAR_0x8004, FEMALE setvar VAR_0x8005, LOCALID_MOM goto PlayersHouse_1F_EventScript_PetalburgGymReportFemale end -LittlerootTown_MaysHouse_1F_EventScript_YoureNewNeighbor:: @ 81F89AE +LittlerootTown_MaysHouse_1F_EventScript_YoureNewNeighbor:: lockall playse SE_PIN applymovement LOCALID_RIVAL_MOM, Common_Movement_ExclamationMark @@ -109,7 +109,7 @@ LittlerootTown_MaysHouse_1F_EventScript_YoureNewNeighbor:: @ 81F89AE releaseall end -LittlerootTown_MaysHouse_1F_Movement_RivalMomApproach: @ 81F89EC +LittlerootTown_MaysHouse_1F_Movement_RivalMomApproach: walk_down walk_left walk_left @@ -118,7 +118,7 @@ LittlerootTown_MaysHouse_1F_Movement_RivalMomApproach: @ 81F89EC walk_left step_end -RivalsHouse_1F_EventScript_RivalMom:: @ 81F89F3 +RivalsHouse_1F_EventScript_RivalMom:: lock faceplayer goto_if_set FLAG_DEFEATED_RIVAL_ROUTE103, RivalsHouse_1F_EventScript_GoHomeEverySoOften @@ -130,22 +130,22 @@ RivalsHouse_1F_EventScript_RivalMom:: @ 81F89F3 release end -RivalsHouse_1F_EventScript_RivalTooBusy:: @ 81F8A1F +RivalsHouse_1F_EventScript_RivalTooBusy:: msgbox RivalsHouse_1F_Text_TooBusyToNoticeVisit, MSGBOX_DEFAULT release end -RivalsHouse_1F_EventScript_RivalIsOnRoute103:: @ 81F8A29 +RivalsHouse_1F_EventScript_RivalIsOnRoute103:: msgbox RivalsHouse_1F_Text_WentOutToRoute103, MSGBOX_DEFAULT release end -RivalsHouse_1F_EventScript_GoHomeEverySoOften:: @ 81F8A33 +RivalsHouse_1F_EventScript_GoHomeEverySoOften:: msgbox RivalsHouse_1F_Text_ShouldGoHomeEverySoOften, MSGBOX_DEFAULT release end -RivalsHouse_1F_EventScript_RivalSibling:: @ 81F8A3D +RivalsHouse_1F_EventScript_RivalSibling:: lock faceplayer special GetPlayerBigGuyGirlString @@ -153,7 +153,7 @@ RivalsHouse_1F_EventScript_RivalSibling:: @ 81F8A3D release end -LittlerootTown_MaysHouse_1F_EventScript_GoSeeRoom:: @ 81F8A4C +LittlerootTown_MaysHouse_1F_EventScript_GoSeeRoom:: lockall setvar VAR_0x8004, LOCALID_MOM setvar VAR_0x8005, FEMALE @@ -162,25 +162,25 @@ LittlerootTown_MaysHouse_1F_EventScript_GoSeeRoom:: @ 81F8A4C goto PlayersHouse_1F_EventScript_MomGoSeeRoom end -LittlerootTown_MaysHouse_1F_EventScript_MeetRival0:: @ 81F8A67 +LittlerootTown_MaysHouse_1F_EventScript_MeetRival0:: lockall setvar VAR_0x8008, 0 goto LittlerootTown_MaysHouse_1F_EventScript_MeetRival end -LittlerootTown_MaysHouse_1F_EventScript_MeetRival1:: @ 81F8A73 +LittlerootTown_MaysHouse_1F_EventScript_MeetRival1:: lockall setvar VAR_0x8008, 1 goto LittlerootTown_MaysHouse_1F_EventScript_MeetRival end -LittlerootTown_MaysHouse_1F_EventScript_MeetRival2:: @ 81F8A7F +LittlerootTown_MaysHouse_1F_EventScript_MeetRival2:: lockall setvar VAR_0x8008, 2 goto LittlerootTown_MaysHouse_1F_EventScript_MeetRival end -LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B +LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: playse SE_EXIT delay 10 addobject LOCALID_RIVAL @@ -192,7 +192,7 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B waitmovement 0 compare VAR_0x8008, 1 call_if_ne LittlerootTown_MaysHouse_1F_EventScript_PlayerFaceMay - playbgm MUS_ENCOUNTER_MAY, 1 + playbgm MUS_ENCOUNTER_MAY, TRUE compare VAR_0x8008, 0 call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer0 compare VAR_0x8008, 1 @@ -220,27 +220,27 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B releaseall end -LittlerootTown_MaysHouse_1F_EventScript_PlayerFaceMay:: @ 81F8B2A +LittlerootTown_MaysHouse_1F_EventScript_PlayerFaceMay:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer0:: @ 81F8B35 +LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer0:: applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer0 waitmovement 0 return -LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer1:: @ 81F8B40 +LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer1:: applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer1 waitmovement 0 return -LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer2:: @ 81F8B4B +LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer2:: applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer2 waitmovement 0 return -LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer0: @ 81F8B56 +LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer0: walk_in_place_fastest_left walk_left walk_in_place_fastest_up @@ -250,13 +250,13 @@ LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer0: @ 81F8B56 walk_up step_end -LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer1: @ 81F8B5E +LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer1: walk_up walk_up walk_up step_end -LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer2: @ 81F8B62 +LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer2: walk_in_place_fastest_right walk_right walk_in_place_fastest_up @@ -266,31 +266,31 @@ LittlerootTown_MaysHouse_1F_Movement_MayApproachPlayer2: @ 81F8B62 walk_up step_end -LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs0:: @ 81F8B6A +LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs0:: applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit0 applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs0 waitmovement 0 return -LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs1:: @ 81F8B7C +LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs1:: applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit1 applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs1 waitmovement 0 return -LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs2:: @ 81F8B8E +LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs2:: applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit2 applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs2 waitmovement 0 return -LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit0: @ 81F8BA0 +LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit0: delay_16 delay_8 walk_in_place_fastest_right step_end -LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit1: @ 81F8BA4 +LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit1: delay_16 delay_8 walk_in_place_fastest_right @@ -299,13 +299,13 @@ LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit1: @ 81F8BA4 walk_in_place_fastest_up step_end -LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit2: @ 81F8BAB +LittlerootTown_MaysHouse_1F_Movement_PlayerWatchMayExit2: delay_16 delay_8 walk_in_place_fastest_left step_end -LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs0: @ 81F8BAF +LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs0: walk_in_place_fastest_right walk_right walk_in_place_fastest_up @@ -313,7 +313,7 @@ LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs0: @ 81F8BAF walk_up step_end -LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs1: @ 81F8BB5 +LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs1: walk_in_place_fastest_right walk_right walk_in_place_fastest_up @@ -325,7 +325,7 @@ LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs1: @ 81F8BB5 walk_up step_end -LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs2: @ 81F8BBF +LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs2: walk_in_place_fastest_left walk_left walk_in_place_fastest_up @@ -333,7 +333,7 @@ LittlerootTown_MaysHouse_1F_Movement_MayGoUpstairs2: @ 81F8BBF walk_up step_end -RivalsHouse_1F_Text_OhYoureTheNewNeighbor: @ 81F8BC5 +RivalsHouse_1F_Text_OhYoureTheNewNeighbor: .string "Oh, hello. And you are?\p" .string "… … … … … … … … …\n" .string "… … … … … … … … …\p" @@ -345,26 +345,26 @@ RivalsHouse_1F_Text_OhYoureTheNewNeighbor: @ 81F8BC5 .string "a new friend.\p" .string "Our {STR_VAR_1} is upstairs, I think.$" -RivalsHouse_1F_Text_LikeChildLikeFather: @ 81F8CA5 +RivalsHouse_1F_Text_LikeChildLikeFather: .string "Like child, like father.\p" .string "My husband is as wild about POKéMON\n" .string "as our child.\p" .string "If he's not at his LAB, he's likely\n" .string "scrabbling about in grassy places.$" -RivalsHouse_1F_Text_TooBusyToNoticeVisit: @ 81F8D37 +RivalsHouse_1F_Text_TooBusyToNoticeVisit: .string "That {RIVAL}!\p" .string "I guess our child is too busy with\n" .string "POKéMON to notice that you came\l" .string "to visit, {PLAYER}{KUN}.$" -RivalsHouse_1F_Text_WentOutToRoute103: @ 81F8D93 +RivalsHouse_1F_Text_WentOutToRoute103: .string "Oh, {RIVAL} went out to ROUTE 103\n" .string "just a little while ago.\p" .string "Like father, like child.\n" .string "{RIVAL} can't stay quietly at home.$" -RivalsHouse_1F_Text_ShouldGoHomeEverySoOften: @ 81F8E01 +RivalsHouse_1F_Text_ShouldGoHomeEverySoOften: .string "I think it's wonderful for people to\n" .string "travel with POKéMON.\p" .string "But you should go home every so often\n" @@ -372,7 +372,7 @@ RivalsHouse_1F_Text_ShouldGoHomeEverySoOften: @ 81F8E01 .string "She might not say it, but I'm sure she\n" .string "worries about you, {PLAYER}{KUN}.$" -RivalsHouse_1F_Text_MayWhoAreYou: @ 81F8EC6 +RivalsHouse_1F_Text_MayWhoAreYou: .string "Huh?\n" .string "Who… Who are you?\p" .string "… … … … … … … …\n" @@ -396,7 +396,7 @@ RivalsHouse_1F_Text_MayWhoAreYou: @ 81F8EC6 .string "some wild POKéMON!\p" .string "{PLAYER}{KUN}, I'll catch you later!$" -RivalsHouse_1F_Text_BrendanWhoAreYou: @ 81F90B4 +RivalsHouse_1F_Text_BrendanWhoAreYou: .string "Hey!\n" .string "You…\p" .string "Who are you?\p" @@ -416,7 +416,7 @@ RivalsHouse_1F_Text_BrendanWhoAreYou: @ 81F90B4 .string "some wild POKéMON.\p" .string "Some other time, okay?$" -RivalsHouse_1F_Text_DoYouHavePokemon: @ 81F9262 +RivalsHouse_1F_Text_DoYouHavePokemon: .string "Hi, neighbor!\p" .string "Do you already have your\n" .string "own POKéMON?$" diff --git a/data/maps/LittlerootTown_MaysHouse_2F/map.json b/data/maps/LittlerootTown_MaysHouse_2F/map.json index 1fa2ff01d9..080eb0fe5a 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/map.json +++ b/data/maps/LittlerootTown_MaysHouse_2F/map.json @@ -194,7 +194,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_LITTLE_ROOT_TOWN_PLAYERS_BEDROOM_MOM" + "flag": "FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_BEDROOM_MOM" }, { "graphics_id": "OBJ_EVENT_GFX_PICHU_DOLL", diff --git a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc index dd22ed670b..1483a845c3 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc @@ -1,11 +1,11 @@ .set LOCALID_RIVAL, 1 -LittlerootTown_MaysHouse_2F_MapScripts:: @ 81F9296 +LittlerootTown_MaysHouse_2F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LittlerootTown_MaysHouse_2F_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, LittlerootTown_MaysHouse_2F_OnWarp .byte 0 -LittlerootTown_MaysHouse_2F_OnTransition: @ 81F92A1 +LittlerootTown_MaysHouse_2F_OnTransition: compare VAR_LITTLEROOT_RIVAL_STATE, 2 call_if_lt LittlerootTown_MaysHouse_2F_EventScript_CheckSetReadyToMeetMay compare VAR_LITTLEROOT_RIVAL_STATE, 3 @@ -16,13 +16,13 @@ LittlerootTown_MaysHouse_2F_OnTransition: @ 81F92A1 setvar VAR_SECRET_BASE_INITIALIZED, 0 end -LittlerootTown_MaysHouse_2F_EventScript_CheckShouldUpdateMayPos:: @ 81F92CD +LittlerootTown_MaysHouse_2F_EventScript_CheckShouldUpdateMayPos:: goto_if_set FLAG_MET_RIVAL_LILYCOVE, LittlerootTown_MaysHouse_2F_EventScript_TryUpdateMayPos compare VAR_BIRCH_LAB_STATE, 2 goto_if_ge LittlerootTown_MaysHouse_2F_EventScript_Ret goto LittlerootTown_MaysHouse_2F_EventScript_TryUpdateMayPos -LittlerootTown_MaysHouse_2F_EventScript_TryUpdateMayPos:: @ 81F92E6 +LittlerootTown_MaysHouse_2F_EventScript_TryUpdateMayPos:: checkplayergender compare VAR_RESULT, FEMALE goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_Ret @@ -32,30 +32,30 @@ LittlerootTown_MaysHouse_2F_EventScript_TryUpdateMayPos:: @ 81F92E6 setobjectmovementtype LOCALID_RIVAL, MOVEMENT_TYPE_FACE_UP return -LittlerootTown_MaysHouse_2F_EventScript_Ret:: @ 81F9309 +LittlerootTown_MaysHouse_2F_EventScript_Ret:: return -LittlerootTown_MaysHouse_2F_EventScript_CheckSetReadyToMeetMay:: @ 81F930A +LittlerootTown_MaysHouse_2F_EventScript_CheckSetReadyToMeetMay:: checkplayergender compare VAR_RESULT, MALE goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_SetReadyToMeetMay return -LittlerootTown_MaysHouse_2F_EventScript_SetReadyToMeetMay:: @ 81F9317 +LittlerootTown_MaysHouse_2F_EventScript_SetReadyToMeetMay:: setvar VAR_LITTLEROOT_RIVAL_STATE, 2 return -LittlerootTown_MaysHouse_2F_OnWarp: @ 81F931D +LittlerootTown_MaysHouse_2F_OnWarp: map_script_2 VAR_SECRET_BASE_INITIALIZED, 0, LittlerootTown_MaysHouse_2F_EventScript_CheckInitDecor .2byte 0 -LittlerootTown_MaysHouse_2F_EventScript_CheckInitDecor:: @ 81F9327 +LittlerootTown_MaysHouse_2F_EventScript_CheckInitDecor:: checkplayergender compare VAR_RESULT, FEMALE goto_if_eq SecretBase_EventScript_InitDecorations end -LittlerootTown_MaysHouse_2F_EventScript_RivalsPokeBall:: @ 81F9334 +LittlerootTown_MaysHouse_2F_EventScript_RivalsPokeBall:: lockall compare VAR_LITTLEROOT_RIVAL_STATE, 2 goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMay @@ -63,7 +63,7 @@ LittlerootTown_MaysHouse_2F_EventScript_RivalsPokeBall:: @ 81F9334 releaseall end -LittlerootTown_MaysHouse_2F_EventScript_MeetMay:: @ 81F934A +LittlerootTown_MaysHouse_2F_EventScript_MeetMay:: delay 10 addobject LOCALID_RIVAL applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_2F_Movement_MayEnters @@ -74,7 +74,7 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMay:: @ 81F934A applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 10 - playbgm MUS_ENCOUNTER_MAY, 1 + playbgm MUS_ENCOUNTER_MAY, TRUE compare VAR_FACING, DIR_NORTH call_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth compare VAR_FACING, DIR_SOUTH @@ -92,7 +92,7 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMay:: @ 81F934A releaseall end -LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth:: @ 81F93BA +LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth:: applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerNorth waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft @@ -104,7 +104,7 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth:: @ 81F93BA waitmovement 0 return -LittlerootTown_MaysHouse_2F_EventScript_MeetMaySouth:: @ 81F93E9 +LittlerootTown_MaysHouse_2F_EventScript_MeetMaySouth:: applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerSouth waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft @@ -116,7 +116,7 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMaySouth:: @ 81F93E9 waitmovement 0 return -LittlerootTown_MaysHouse_2F_EventScript_MeetMayWest:: @ 81F9418 +LittlerootTown_MaysHouse_2F_EventScript_MeetMayWest:: applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerWest waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp @@ -127,7 +127,7 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMayWest:: @ 81F9418 waitmovement 0 return -LittlerootTown_MaysHouse_2F_EventScript_MeetMayEast:: @ 81F9440 +LittlerootTown_MaysHouse_2F_EventScript_MeetMayEast:: applymovement LOCALID_RIVAL, LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerEast waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft @@ -139,13 +139,13 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMayEast:: @ 81F9440 waitmovement 0 return -LittlerootTown_MaysHouse_2F_Movement_MayEnters: @ 81F946F +LittlerootTown_MaysHouse_2F_Movement_MayEnters: walk_down walk_down walk_in_place_fastest_right step_end -LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerNorth: @ 81F9473 +LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerNorth: walk_right walk_right walk_down @@ -153,7 +153,7 @@ LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerNorth: @ 81F9473 walk_right step_end -LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCNorth: @ 81F9479 +LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCNorth: walk_up walk_up walk_up @@ -165,7 +165,7 @@ LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCNorth: @ 81F9479 walk_in_place_fastest_up step_end -LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMayNorth: @ 81F9483 +LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMayNorth: delay_16 walk_in_place_fastest_up delay_16 @@ -175,13 +175,13 @@ LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMayNorth: @ 81F9483 walk_in_place_fastest_right step_end -LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerSouth: @ 81F948B +LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerSouth: walk_right walk_right walk_right step_end -LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCSouth: @ 81F948F +LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCSouth: walk_up walk_in_place_fastest_right walk_right @@ -191,7 +191,7 @@ LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCSouth: @ 81F948F walk_in_place_fastest_up step_end -LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMaySouth: @ 81F9497 +LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMaySouth: delay_16 walk_in_place_fastest_up delay_16 @@ -199,7 +199,7 @@ LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMaySouth: @ 81F9497 walk_in_place_fastest_right step_end -LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerWest: @ 81F949D +LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerWest: walk_right walk_right walk_right @@ -208,7 +208,7 @@ LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerWest: @ 81F949D walk_in_place_fastest_down step_end -LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCWest: @ 81F94A4 +LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCWest: walk_up walk_right walk_right @@ -216,20 +216,20 @@ LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCWest: @ 81F94A4 step_end @ Unused, the player is already facing this direction so its unneeded -LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMayWest: @ 81F94A9 +LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMayWest: delay_16 delay_16 walk_in_place_fastest_right step_end -LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerEast: @ 81F94AD +LittlerootTown_MaysHouse_2F_Movement_MayApproachPlayerEast: walk_right walk_right walk_down walk_in_place_fastest_right step_end -LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCEast: @ 81F94B2 +LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCEast: walk_up walk_up walk_right @@ -240,7 +240,7 @@ LittlerootTown_MaysHouse_2F_Movement_MayWalkToPCEast: @ 81F94B2 walk_in_place_fastest_up step_end -LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMayEast: @ 81F94BB +LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMayEast: delay_16 walk_in_place_fastest_up delay_16 @@ -248,7 +248,7 @@ LittlerootTown_MaysHouse_2F_Movement_PlayerWatchMayEast: @ 81F94BB walk_in_place_fastest_right step_end -RivalsHouse_2F_EventScript_Rival:: @ 81F94C1 +RivalsHouse_2F_EventScript_Rival:: lockall goto_if_set FLAG_MET_RIVAL_LILYCOVE, RivalsHouse_2F_EventScript_RivalPostLilycove checkplayergender @@ -258,17 +258,17 @@ RivalsHouse_2F_EventScript_Rival:: @ 81F94C1 goto_if_eq RivalsHouse_2F_EventScript_Brendan end -RivalsHouse_2F_EventScript_May:: @ 81F94E3 +RivalsHouse_2F_EventScript_May:: msgbox RivalsHouse_2F_Text_MayGettingReady, MSGBOX_DEFAULT releaseall end -RivalsHouse_2F_EventScript_Brendan:: @ 81F94ED +RivalsHouse_2F_EventScript_Brendan:: msgbox RivalsHouse_2F_Text_BrendanGettingReady, MSGBOX_DEFAULT releaseall end -RivalsHouse_2F_EventScript_RivalPostLilycove:: @ 81F94F7 +RivalsHouse_2F_EventScript_RivalPostLilycove:: applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 checkplayergender @@ -280,25 +280,25 @@ RivalsHouse_2F_EventScript_RivalPostLilycove:: @ 81F94F7 releaseall end -RivalsHouse_2F_EventScript_MayPostLilycove:: @ 81F951D +RivalsHouse_2F_EventScript_MayPostLilycove:: goto_if_set FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE, RivalsHouse_2F_EventScript_MayWhereShouldIGoNext msgbox RivalsHouse_2F_Text_MayJustCheckingMyPokedex, MSGBOX_DEFAULT return -RivalsHouse_2F_EventScript_BrendanPostLilycove:: @ 81F952F +RivalsHouse_2F_EventScript_BrendanPostLilycove:: goto_if_set FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE, RivalsHouse_2F_EventScript_BrendanWhereShouldIGoNext msgbox RivalsHouse_2F_Text_BrendanJustCheckingMyPokedex, MSGBOX_DEFAULT return -RivalsHouse_2F_EventScript_MayWhereShouldIGoNext:: @ 81F9541 +RivalsHouse_2F_EventScript_MayWhereShouldIGoNext:: msgbox RivalsHouse_2F_Text_MayWhereShouldIGoNext, MSGBOX_DEFAULT return -RivalsHouse_2F_EventScript_BrendanWhereShouldIGoNext:: @ 81F954A +RivalsHouse_2F_EventScript_BrendanWhereShouldIGoNext:: msgbox RivalsHouse_2F_Text_BrendanWhereShouldIGoNext, MSGBOX_DEFAULT return -LittlerootTown_MaysHouse_2F_EventScript_PC:: @ 81F9553 +LittlerootTown_MaysHouse_2F_EventScript_PC:: lockall checkplayergender compare VAR_RESULT, MALE @@ -307,12 +307,12 @@ LittlerootTown_MaysHouse_2F_EventScript_PC:: @ 81F9553 goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_CheckPlayersPC end -LittlerootTown_MaysHouse_2F_EventScript_CheckRivalsPC:: @ 81F956C +LittlerootTown_MaysHouse_2F_EventScript_CheckRivalsPC:: msgbox gText_PokemonTrainerSchoolEmail, MSGBOX_DEFAULT releaseall end -LittlerootTown_MaysHouse_2F_EventScript_CheckPlayersPC:: @ 81F9576 +LittlerootTown_MaysHouse_2F_EventScript_CheckPlayersPC:: setvar VAR_0x8004, 2 special DoPCTurnOnEffect playse SE_PC_ON @@ -322,14 +322,14 @@ LittlerootTown_MaysHouse_2F_EventScript_CheckPlayersPC:: @ 81F9576 releaseall end -LittlerootTown_MaysHouse_2F_EventScript_TurnOffPlayerPC:: @ 81F958F +LittlerootTown_MaysHouse_2F_EventScript_TurnOffPlayerPC:: setvar VAR_0x8004, 2 playse SE_PC_OFF special DoPCTurnOffEffect releaseall end -RivalsHouse_2F_Text_MayWhoAreYou: @ 81F959C +RivalsHouse_2F_Text_MayWhoAreYou: .string "Huh?\n" .string "Who… Who are you?\p" .string "… … … … … … … …\n" @@ -353,11 +353,11 @@ RivalsHouse_2F_Text_MayWhoAreYou: @ 81F959C .string "some wild POKéMON!\p" .string "{PLAYER}{KUN}, I'll catch you later!$" -RivalsHouse_2F_Text_MayGettingReady: @ 81F978A +RivalsHouse_2F_Text_MayGettingReady: .string "POKéMON fully restored!\n" .string "Items ready, and…$" -RivalsHouse_2F_Text_BrendanWhoAreYou: @ 81F97B4 +RivalsHouse_2F_Text_BrendanWhoAreYou: .string "Hey!\n" .string "You…\p" .string "Who are you?\p" @@ -377,15 +377,15 @@ RivalsHouse_2F_Text_BrendanWhoAreYou: @ 81F97B4 .string "some wild POKéMON.\p" .string "Some other time, okay?$" -RivalsHouse_2F_Text_BrendanGettingReady: @ 81F9962 +RivalsHouse_2F_Text_BrendanGettingReady: .string "POKéMON fully restored…\n" .string "Items all packed, and…$" -RivalsHouse_2F_Text_ItsRivalsPokeBall: @ 81F9991 +RivalsHouse_2F_Text_ItsRivalsPokeBall: .string "It's {RIVAL}'s POKé BALL!\p" .string "Better leave it right where it is.$" -RivalsHouse_2F_Text_MayJustCheckingMyPokedex: @ 81F99C9 +RivalsHouse_2F_Text_MayJustCheckingMyPokedex: .string "MAY: {PLAYER}{KUN}!\p" .string "I was just checking my POKéDEX.\p" .string "There's still a lot of POKéMON that\n" @@ -395,13 +395,13 @@ RivalsHouse_2F_Text_MayJustCheckingMyPokedex: @ 81F99C9 .string "I wonder where I should go catch\n" .string "some POKéMON next?$" -RivalsHouse_2F_Text_MayWhereShouldIGoNext: @ 81F9A9E +RivalsHouse_2F_Text_MayWhereShouldIGoNext: .string "MAY: I wonder where I should go catch\n" .string "some POKéMON next?\p" .string "Wouldn't it be funny if we ran into each\n" .string "other, {PLAYER}{KUN}?$" -RivalsHouse_2F_Text_BrendanJustCheckingMyPokedex: @ 81F9B0D +RivalsHouse_2F_Text_BrendanJustCheckingMyPokedex: .string "BRENDAN: Hey, it's {PLAYER}.\p" .string "I was just checking out my POKéDEX.\p" .string "There are still many POKéMON that\n" @@ -410,7 +410,7 @@ RivalsHouse_2F_Text_BrendanJustCheckingMyPokedex: @ 81F9B0D .string "Checking this POKéDEX out gives me\n" .string "the urge to hit the road again.$" -RivalsHouse_2F_Text_BrendanWhereShouldIGoNext: @ 81F9BE7 +RivalsHouse_2F_Text_BrendanWhereShouldIGoNext: .string "BRENDAN: I'm having a hard time deciding\n" .string "where I should catch POKéMON next.\p" .string "Hey, {PLAYER}, if I see you while I'm out\n" diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index bc03be7b2f..2bff65b313 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -5,7 +5,7 @@ .set LOCALID_BALL_TOTODILE, 5 .set LOCALID_BALL_CHIKORITA, 6 -LittlerootTown_ProfessorBirchsLab_MapScripts:: @ 81F9C91 +LittlerootTown_ProfessorBirchsLab_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, LittlerootTown_ProfessorBirchsLab_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, LittlerootTown_ProfessorBirchsLab_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, LittlerootTown_ProfessorBirchsLab_OnFrame @@ -26,7 +26,7 @@ LittlerootTown_ProfessorBirchsLab_MapScripts:: @ 81F9C91 @ 4: Defeated rival on Route 103 @ 5: Received pokedex -LittlerootTown_ProfessorBirchsLab_OnTransition: @ 81F9CA1 +LittlerootTown_ProfessorBirchsLab_OnTransition: call Common_EventScript_SetupRivalGfxId call ProfBirch_EventScript_UpdateLocation compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 @@ -37,7 +37,7 @@ LittlerootTown_ProfessorBirchsLab_OnTransition: @ 81F9CA1 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_CheckReadyForJohtoStarter end -LittlerootTown_ProfessorBirchsLab_EventScript_CheckReadyForJohtoStarter:: @ 81F9CCD +LittlerootTown_ProfessorBirchsLab_EventScript_CheckReadyForJohtoStarter:: specialvar VAR_RESULT, HasAllHoennMons compare VAR_RESULT, TRUE goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_SetReadyForJohtoStarter @@ -45,21 +45,21 @@ LittlerootTown_ProfessorBirchsLab_EventScript_CheckReadyForJohtoStarter:: @ 81F9 setobjectxyperm LOCALID_RIVAL, 5, 10 end -LittlerootTown_ProfessorBirchsLab_EventScript_SetReadyForJohtoStarter:: @ 81F9CE9 +LittlerootTown_ProfessorBirchsLab_EventScript_SetReadyForJohtoStarter:: setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4 goto LittlerootTown_ProfessorBirchsLab_EventScript_SetJohtoStarterLayout -LittlerootTown_ProfessorBirchsLab_EventScript_SetJohtoStarterLayout:: @ 81F9CF3 +LittlerootTown_ProfessorBirchsLab_EventScript_SetJohtoStarterLayout:: setmaplayoutindex LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE end -LittlerootTown_ProfessorBirchsLab_EventScript_SetAfterJohtoStarterLayout:: @ 81F9CF7 +LittlerootTown_ProfessorBirchsLab_EventScript_SetAfterJohtoStarterLayout:: setmaplayoutindex LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE setobjectmovementtype LOCALID_RIVAL, MOVEMENT_TYPE_WANDER_UP_AND_DOWN setobjectxyperm LOCALID_RIVAL, 5, 10 end -LittlerootTown_ProfessorBirchsLab_OnWarp: @ 81F9D06 +LittlerootTown_ProfessorBirchsLab_OnWarp: map_script_2 VAR_BIRCH_LAB_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_SetPlayerPosForReceiveStarter map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForDexUpgrade map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForDexUpgrade @@ -69,11 +69,11 @@ LittlerootTown_ProfessorBirchsLab_OnWarp: @ 81F9D06 map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5, LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForJohtoStarters .2byte 0 -LittlerootTown_ProfessorBirchsLab_EventScript_SetPlayerPosForReceiveStarter:: @ 81F9D40 +LittlerootTown_ProfessorBirchsLab_EventScript_SetPlayerPosForReceiveStarter:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForDexUpgrade:: @ 81F9D45 +LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForDexUpgrade:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH addobject LOCALID_BIRCH addobject LOCALID_RIVAL @@ -85,11 +85,11 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForDexUpgrade:: @ 81F9 setobjectxy LOCALID_AIDE, 10, 10 end -LittlerootTown_ProfessorBirchsLab_EventScript_AddRivalObject:: @ 81F9D71 +LittlerootTown_ProfessorBirchsLab_EventScript_AddRivalObject:: addobject LOCALID_RIVAL end -LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForJohtoStarters:: @ 81F9D75 +LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForJohtoStarters:: addobject LOCALID_BALL_CYNDAQUIL addobject LOCALID_BALL_TOTODILE addobject LOCALID_BALL_CHIKORITA @@ -106,7 +106,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SetObjectPosForJohtoStarters:: @ 8 setobjectxy LOCALID_RIVAL, 5, 5 end -LittlerootTown_ProfessorBirchsLab_OnFrame: @ 81F9DB9 +LittlerootTown_ProfessorBirchsLab_OnFrame: map_script_2 VAR_BIRCH_LAB_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_GiveStarterEvent map_script_2 VAR_BIRCH_LAB_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedexEvent map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex @@ -115,7 +115,7 @@ LittlerootTown_ProfessorBirchsLab_OnFrame: @ 81F9DB9 @ The starter is technically given prior to this on Route 101 by special ChooseStarter @ This is just where the game tells you its yours and lets you nickname it -LittlerootTown_ProfessorBirchsLab_EventScript_GiveStarterEvent:: @ 81F9DDB +LittlerootTown_ProfessorBirchsLab_EventScript_GiveStarterEvent:: lockall bufferleadmonspeciesname 0 message LittlerootTown_ProfessorBirchsLab_Text_LikeYouToHavePokemon @@ -129,13 +129,13 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GiveStarterEvent:: @ 81F9DDB goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_GoSeeRival end -LittlerootTown_ProfessorBirchsLab_EventScript_NicknameStarter:: @ 81F9E07 +LittlerootTown_ProfessorBirchsLab_EventScript_NicknameStarter:: setvar VAR_0x8004, 0 call Common_EventScript_NameReceivedPartyMon goto LittlerootTown_ProfessorBirchsLab_EventScript_GoSeeRival end -LittlerootTown_ProfessorBirchsLab_EventScript_GoSeeRival:: @ 81F9E17 +LittlerootTown_ProfessorBirchsLab_EventScript_GoSeeRival:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MightBeGoodIdeaToGoSeeRival, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival @@ -143,14 +143,14 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GoSeeRival:: @ 81F9E17 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival end -LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival:: @ 81F9E36 +LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival:: msgbox LittlerootTown_ProfessorBirchsLab_Text_GetRivalToTeachYou, MSGBOX_DEFAULT clearflag FLAG_HIDE_ROUTE_101_BOY setvar VAR_BIRCH_LAB_STATE, 3 releaseall end -LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival:: @ 81F9E48 +LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival:: msgbox LittlerootTown_ProfessorBirchsLab_Text_DontBeThatWay, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival @@ -158,14 +158,14 @@ LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival:: @ 81F9E48 goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival end -LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedexEvent:: @ 81F9E67 +LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedexEvent:: lockall applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForPokedex waitmovement 0 goto LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedex end -LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForPokedex: @ 81F9E78 +LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForPokedex: walk_up walk_up walk_up @@ -175,7 +175,7 @@ LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForPokedex: @ 81F9E78 walk_up step_end -LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex:: @ 81F9E80 +LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex:: lockall delay 30 msgbox LittlerootTown_ProfessorBirchsLab_Text_OtherRegionsUpgradeToNational, MSGBOX_DEFAULT @@ -224,17 +224,17 @@ LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex:: @ 81F9E80 releaseall end -LittlerootTown_ProfessorBirchsLab_EventScript_MayUpgradeComment:: @ 81F9F32 +LittlerootTown_ProfessorBirchsLab_EventScript_MayUpgradeComment:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MayUpgradeSoCool, MSGBOX_DEFAULT closemessage return -LittlerootTown_ProfessorBirchsLab_EventScript_BrendanUpgradeComment:: @ 81F9F3C +LittlerootTown_ProfessorBirchsLab_EventScript_BrendanUpgradeComment:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BrendanYouCanThankMe, MSGBOX_DEFAULT closemessage return -LittlerootTown_ProfessorBirchsLab_Movement_BirchRetrievePokedexes: @ 81F9F46 +LittlerootTown_ProfessorBirchsLab_Movement_BirchRetrievePokedexes: walk_left walk_in_place_fastest_down delay_16 @@ -254,7 +254,7 @@ LittlerootTown_ProfessorBirchsLab_Movement_BirchRetrievePokedexes: @ 81F9F46 walk_in_place_fastest_up step_end -LittlerootTown_ProfessorBirchsLab_Movement_BirchReturnPokedex: @ 81F9F58 +LittlerootTown_ProfessorBirchsLab_Movement_BirchReturnPokedex: walk_left walk_left walk_left @@ -266,7 +266,7 @@ LittlerootTown_ProfessorBirchsLab_Movement_BirchReturnPokedex: @ 81F9F58 walk_in_place_fastest_down step_end -LittlerootTown_ProfessorBirchsLab_EventScript_ChooseJohtoStarter:: @ 81F9F62 +LittlerootTown_ProfessorBirchsLab_EventScript_ChooseJohtoStarter:: lockall applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForJohtoStarter waitmovement 0 @@ -275,7 +275,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ChooseJohtoStarter:: @ 81F9F62 releaseall end -LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForJohtoStarter: @ 81F9F7C +LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForJohtoStarter: walk_up walk_up walk_up @@ -285,7 +285,7 @@ LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForJohtoStarter: @ 81F9 walk_up step_end -LittlerootTown_ProfessorBirchsLab_EventScript_Aide:: @ 81F9F84 +LittlerootTown_ProfessorBirchsLab_EventScript_Aide:: lock faceplayer compare VAR_BIRCH_LAB_STATE, 3 @@ -296,17 +296,17 @@ LittlerootTown_ProfessorBirchsLab_EventScript_Aide:: @ 81F9F84 release end -LittlerootTown_ProfessorBirchsLab_EventScript_AideAlreadyMet:: @ 81F9FA7 +LittlerootTown_ProfessorBirchsLab_EventScript_AideAlreadyMet:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BirchIsntOneForDeskWork, MSGBOX_DEFAULT release end -LittlerootTown_ProfessorBirchsLab_EventScript_AideReceivedStarter:: @ 81F9FB1 +LittlerootTown_ProfessorBirchsLab_EventScript_AideReceivedStarter:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BirchEnjoysRivalsHelpToo, MSGBOX_DEFAULT release end -LittlerootTown_ProfessorBirchsLab_EventScript_Cyndaquil:: @ 81F9FBB +LittlerootTown_ProfessorBirchsLab_EventScript_Cyndaquil:: release compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter @@ -319,7 +319,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_Cyndaquil:: @ 81F9FBB goto LittlerootTown_ProfessorBirchsLab_EventScript_GiveCyndaquil end -LittlerootTown_ProfessorBirchsLab_EventScript_Totodile:: @ 81F9FEF +LittlerootTown_ProfessorBirchsLab_EventScript_Totodile:: release compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter @@ -332,7 +332,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_Totodile:: @ 81F9FEF goto LittlerootTown_ProfessorBirchsLab_EventScript_GiveTotodile end -LittlerootTown_ProfessorBirchsLab_EventScript_Chikorita:: @ 81FA023 +LittlerootTown_ProfessorBirchsLab_EventScript_Chikorita:: release compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter @@ -345,18 +345,18 @@ LittlerootTown_ProfessorBirchsLab_EventScript_Chikorita:: @ 81FA023 goto LittlerootTown_ProfessorBirchsLab_EventScript_GiveChikorita end -LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter:: @ 81FA057 +LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BetterLeaveOthersAlone, MSGBOX_DEFAULT releaseall end -LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime:: @ 81FA061 +LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime:: hidemonpic msgbox LittlerootTown_ProfessorBirchsLab_Text_TakeYourTimeAllInvaluable, MSGBOX_DEFAULT releaseall end -LittlerootTown_ProfessorBirchsLab_EventScript_GiveCyndaquil:: @ 81FA06C +LittlerootTown_ProfessorBirchsLab_EventScript_GiveCyndaquil:: bufferspeciesname 0, SPECIES_CYNDAQUIL setvar VAR_TEMP_1, SPECIES_CYNDAQUIL givemon SPECIES_CYNDAQUIL, 5, ITEM_NONE @@ -368,7 +368,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GiveCyndaquil:: @ 81FA06C goto Common_EventScript_NoMoreRoomForPokemon end -LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty:: @ 81FA0A1 +LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_CYNDAQUIL msgbox gText_NicknameThisPokemon, MSGBOX_YESNO @@ -379,7 +379,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty:: @ 81FA0A1 goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil end -LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC:: @ 81FA0CC +LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_CYNDAQUIL msgbox gText_NicknameThisPokemon, MSGBOX_YESNO @@ -389,19 +389,19 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC:: @ 81FA0CC goto LittlerootTown_ProfessorBirchsLab_EventScript_CyndaquilTransferredToPC end -LittlerootTown_ProfessorBirchsLab_EventScript_CyndaquilTransferredToPC:: @ 81FA0F2 +LittlerootTown_ProfessorBirchsLab_EventScript_CyndaquilTransferredToPC:: call Common_EventScript_TransferredToPC goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil end -LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil:: @ 81FA0FD +LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil:: hidemonpic msgbox LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting, MSGBOX_DEFAULT setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 releaseall end -LittlerootTown_ProfessorBirchsLab_EventScript_GiveTotodile:: @ 81FA10D +LittlerootTown_ProfessorBirchsLab_EventScript_GiveTotodile:: bufferspeciesname 0, SPECIES_TOTODILE setvar VAR_TEMP_1, SPECIES_TOTODILE givemon SPECIES_TOTODILE, 5, ITEM_NONE @@ -413,7 +413,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GiveTotodile:: @ 81FA10D goto Common_EventScript_NoMoreRoomForPokemon end -LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty:: @ 81FA142 +LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_TOTODILE msgbox gText_NicknameThisPokemon, MSGBOX_YESNO @@ -424,7 +424,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty:: @ 81FA142 goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile end -LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC:: @ 81FA16D +LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_TOTODILE msgbox gText_NicknameThisPokemon, MSGBOX_YESNO @@ -434,19 +434,19 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC:: @ 81FA16D goto LittlerootTown_ProfessorBirchsLab_EventScript_TotodileTransferredToPC end -LittlerootTown_ProfessorBirchsLab_EventScript_TotodileTransferredToPC:: @ 81FA193 +LittlerootTown_ProfessorBirchsLab_EventScript_TotodileTransferredToPC:: call Common_EventScript_TransferredToPC goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile end -LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile:: @ 81FA19E +LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile:: hidemonpic msgbox LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting, MSGBOX_DEFAULT setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 releaseall end -LittlerootTown_ProfessorBirchsLab_EventScript_GiveChikorita:: @ 81FA1AE +LittlerootTown_ProfessorBirchsLab_EventScript_GiveChikorita:: bufferspeciesname 0, SPECIES_CHIKORITA setvar VAR_TEMP_1, SPECIES_CHIKORITA givemon SPECIES_CHIKORITA, 5, ITEM_NONE @@ -458,7 +458,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GiveChikorita:: @ 81FA1AE goto Common_EventScript_NoMoreRoomForPokemon end -LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty:: @ 81FA1E3 +LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_CHIKORITA msgbox gText_NicknameThisPokemon, MSGBOX_YESNO @@ -469,7 +469,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty:: @ 81FA1E3 goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita end -LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC:: @ 81FA20E +LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_CHIKORITA msgbox gText_NicknameThisPokemon, MSGBOX_YESNO @@ -479,26 +479,26 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC:: @ 81FA20E goto LittlerootTown_ProfessorBirchsLab_EventScript_ChikoritaTransferredToPC end -LittlerootTown_ProfessorBirchsLab_EventScript_ChikoritaTransferredToPC:: @ 81FA234 +LittlerootTown_ProfessorBirchsLab_EventScript_ChikoritaTransferredToPC:: call Common_EventScript_TransferredToPC goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita end -LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita:: @ 81FA23F +LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita:: hidemonpic msgbox LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting, MSGBOX_DEFAULT setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 releaseall end -LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter:: @ 81FA24F +LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter:: playfanfare MUS_OBTAIN_ITEM message LittlerootTown_ProfessorBirchsLab_Text_ReceivedJohtoStarter waitmessage waitfanfare return -LittlerootTown_ProfessorBirchsLab_EventScript_Birch:: @ 81FA25A +LittlerootTown_ProfessorBirchsLab_EventScript_Birch:: lock faceplayer compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5 @@ -510,17 +510,17 @@ LittlerootTown_ProfessorBirchsLab_EventScript_Birch:: @ 81FA25A goto LittlerootTown_ProfessorBirchsLab_EventScript_TryRatePokedexOrRegister end -LittlerootTown_ProfessorBirchsLab_EventScript_CanHaveAnyOneOfRarePokemon:: @ 81FA28A +LittlerootTown_ProfessorBirchsLab_EventScript_CanHaveAnyOneOfRarePokemon:: msgbox LittlerootTown_ProfessorBirchsLab_Text_CanHaveAnyOneOfRarePokemon, MSGBOX_DEFAULT release end -LittlerootTown_ProfessorBirchsLab_EventScript_GrassyPatchWaiting:: @ 81FA294 +LittlerootTown_ProfessorBirchsLab_EventScript_GrassyPatchWaiting:: msgbox LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting2, MSGBOX_DEFAULT release end -LittlerootTown_ProfessorBirchsLab_EventScript_TryRatePokedexOrRegister:: @ 81FA29E +LittlerootTown_ProfessorBirchsLab_EventScript_TryRatePokedexOrRegister:: goto_if_unset FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380, ProfBirch_EventScript_RatePokedexOrRegister compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3 goto_if_eq ProfBirch_EventScript_RatePokedexOrRegister @@ -532,7 +532,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_TryRatePokedexOrRegister:: @ 81FA2 release end -EventScript_RegisterProfBirch:: @ 81FA2D2 +EventScript_RegisterProfBirch:: msgbox MatchCall_Text_BirchRegisterCall, MSGBOX_DEFAULT closemessage delay 30 @@ -546,7 +546,7 @@ EventScript_RegisterProfBirch:: @ 81FA2D2 release end -LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedex:: @ 81FA2F8 +LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedex:: msgbox LittlerootTown_ProfessorBirchsLab_Text_HeardYouBeatRivalTakePokedex, MSGBOX_DEFAULT call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex msgbox LittlerootTown_ProfessorBirchsLab_Text_ExplainPokedex, MSGBOX_DEFAULT @@ -568,7 +568,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedex:: @ 81FA2F8 releaseall end -LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls:: @ 81FA352 +LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MayGotPokedexTooTakeThese, MSGBOX_DEFAULT giveitem ITEM_POKE_BALL, 5 compare VAR_RESULT, FALSE @@ -577,7 +577,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls:: @ 81FA352 setvar VAR_RESULT, 0 return -LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls:: @ 81FA37F +LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BrendanGotPokedexTooTakeThese, MSGBOX_DEFAULT giveitem ITEM_POKE_BALL, 5 compare VAR_RESULT, FALSE @@ -586,7 +586,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls:: @ 81FA37F setvar VAR_RESULT, 1 return -LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex:: @ 81FA3AC +LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex:: playfanfare MUS_OBTAIN_ITEM message LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex waitfanfare @@ -596,29 +596,29 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex:: @ 81FA3AC setvar VAR_CABLE_CLUB_TUTORIAL_STATE, 1 return -LittlerootTown_ProfessorBirchsLab_EventScript_PokemonAwait:: @ 81FA3C4 +LittlerootTown_ProfessorBirchsLab_EventScript_PokemonAwait:: msgbox LittlerootTown_ProfessorBirchsLab_Text_CountlessPokemonAwait, MSGBOX_DEFAULT release end -LittlerootTown_ProfessorBirchsLab_EventScript_MayNoRoomForPokeBalls:: @ 81FA3CE +LittlerootTown_ProfessorBirchsLab_EventScript_MayNoRoomForPokeBalls:: msgbox LittlerootTown_ProfessorBirchsLab_Text_OhYourBagsFull, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_BrendanNoRoomForPokeBalls:: @ 81FA3D7 +LittlerootTown_ProfessorBirchsLab_EventScript_BrendanNoRoomForPokeBalls:: msgbox LittlerootTown_ProfessorBirchsLab_Text_HeyYourBagsFull, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_Movement_RivalApproachPlayer: @ 81FA3E0 +LittlerootTown_ProfessorBirchsLab_Movement_RivalApproachPlayer: walk_down walk_in_place_fastest_left step_end -LittlerootTown_ProfessorBirchsLab_EventScript_Machine:: @ 81FA3E3 +LittlerootTown_ProfessorBirchsLab_EventScript_Machine:: msgbox LittlerootTown_ProfessorBirchsLab_Text_SeriousLookingMachine, MSGBOX_SIGN end -LittlerootTown_ProfessorBirchsLab_EventScript_Rival:: @ 81FA3EC +LittlerootTown_ProfessorBirchsLab_EventScript_Rival:: lock faceplayer compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5 @@ -635,15 +635,15 @@ LittlerootTown_ProfessorBirchsLab_EventScript_Rival:: @ 81FA3EC release end -LittlerootTown_ProfessorBirchsLab_EventScript_MayWhereShouldIGoNext:: @ 81FA428 +LittlerootTown_ProfessorBirchsLab_EventScript_MayWhereShouldIGoNext:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MayWhereShouldIGoNext, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_BrendanWhereShouldIGoNext:: @ 81FA431 +LittlerootTown_ProfessorBirchsLab_EventScript_BrendanWhereShouldIGoNext:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BrendanWhereShouldIGoNext, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_RivalFuturePlans:: @ 81FA43A +LittlerootTown_ProfessorBirchsLab_EventScript_RivalFuturePlans:: checkplayergender compare VAR_RESULT, MALE call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayWhatNextImStayingHere @@ -652,15 +652,15 @@ LittlerootTown_ProfessorBirchsLab_EventScript_RivalFuturePlans:: @ 81FA43A release end -LittlerootTown_ProfessorBirchsLab_EventScript_MayWhatNextImStayingHere:: @ 81FA453 +LittlerootTown_ProfessorBirchsLab_EventScript_MayWhatNextImStayingHere:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MayWhatNextImStayingHere, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_BrendanPreferCollectingSlowly: @ 81FA45C +LittlerootTown_ProfessorBirchsLab_EventScript_BrendanPreferCollectingSlowly: msgbox LittlerootTown_ProfessorBirchsLab_Text_BrendanPreferCollectingSlowly, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_RivalHaveYouGoneToBattleFrontier:: @ 81FA465 +LittlerootTown_ProfessorBirchsLab_EventScript_RivalHaveYouGoneToBattleFrontier:: checkplayergender compare VAR_RESULT, MALE call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayHaveYouGoneToBattleFrontier @@ -669,15 +669,15 @@ LittlerootTown_ProfessorBirchsLab_EventScript_RivalHaveYouGoneToBattleFrontier:: release end -LittlerootTown_ProfessorBirchsLab_EventScript_MayHaveYouGoneToBattleFrontier:: @ 81FA47E +LittlerootTown_ProfessorBirchsLab_EventScript_MayHaveYouGoneToBattleFrontier:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MayHaveYouGoneToBattleFrontier, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_BrendanHaveYouGoneToBattleFrontier:: @ 81FA487 +LittlerootTown_ProfessorBirchsLab_EventScript_BrendanHaveYouGoneToBattleFrontier:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BrendanHaveYouGoneToBattleFrontier, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_RivalTakeBreakFromFieldwork:: @ 81FA490 +LittlerootTown_ProfessorBirchsLab_EventScript_RivalTakeBreakFromFieldwork:: checkplayergender compare VAR_RESULT, MALE call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayTakeBreakFromFieldwork @@ -686,27 +686,27 @@ LittlerootTown_ProfessorBirchsLab_EventScript_RivalTakeBreakFromFieldwork:: @ 81 release end -LittlerootTown_ProfessorBirchsLab_EventScript_MayTakeBreakFromFieldwork:: @ 81FA4A9 +LittlerootTown_ProfessorBirchsLab_EventScript_MayTakeBreakFromFieldwork:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MayTakeBreakFromFieldwork, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_BrendanTakeBreakFromFieldwork:: @ 81FA4B2 +LittlerootTown_ProfessorBirchsLab_EventScript_BrendanTakeBreakFromFieldwork:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BrendanTakeBreakFromFieldwork, MSGBOX_DEFAULT return -LittlerootTown_ProfessorBirchsLab_EventScript_PC:: @ 81FA4BB +LittlerootTown_ProfessorBirchsLab_EventScript_PC:: msgbox LittlerootTown_ProfessorBirchsLab_Text_PCUsedForResearch, MSGBOX_SIGN end -LittlerootTown_ProfessorBirchsLab_EventScript_Bookshelf:: @ 81FA4C4 +LittlerootTown_ProfessorBirchsLab_EventScript_Bookshelf:: msgbox LittlerootTown_ProfessorBirchsLab_Text_CrammedWithBooksOnPokemon, MSGBOX_SIGN end -LittlerootTown_ProfessorBirchsLab_EventScript_Book:: @ 81FA4CD +LittlerootTown_ProfessorBirchsLab_EventScript_Book:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BookTooHardToRead, MSGBOX_SIGN end -LittlerootTown_ProfessorBirchsLab_EventScript_ScottAboardSSTidalCall:: @ 81FA4D6 +LittlerootTown_ProfessorBirchsLab_EventScript_ScottAboardSSTidalCall:: lockall pokenavcall LittlerootTown_ProfessorBirchsLab_Text_ScottAboardSSTidalCall waitmessage @@ -714,7 +714,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ScottAboardSSTidalCall:: @ 81FA4D6 releaseall end -LittlerootTown_ProfessorBirchsLab_Text_BirchAwayOnFieldwork: @ 81FA4E2 +LittlerootTown_ProfessorBirchsLab_Text_BirchAwayOnFieldwork: .string "Hunh? PROF. BIRCH?\p" .string "The PROF's away on fieldwork.\n" .string "Ergo, he isn't here.\p" @@ -727,19 +727,19 @@ LittlerootTown_ProfessorBirchsLab_Text_BirchAwayOnFieldwork: @ 81FA4E2 .string "rather go outside and experience\l" .string "things than read about them here.$" -LittlerootTown_ProfessorBirchsLab_Text_BirchIsntOneForDeskWork: @ 81FA641 +LittlerootTown_ProfessorBirchsLab_Text_BirchIsntOneForDeskWork: .string "The PROF isn't one for doing desk work.\n" .string "He's the type of person who would\l" .string "rather go outside and experience\l" .string "things than read about them here.$" -LittlerootTown_ProfessorBirchsLab_Text_BirchEnjoysRivalsHelpToo: @ 81FA6CE +LittlerootTown_ProfessorBirchsLab_Text_BirchEnjoysRivalsHelpToo: .string "PROF. BIRCH is studying the habitats\n" .string "and distribution of POKéMON.\p" .string "The PROF enjoys {RIVAL}'s help, too.\n" .string "There's a lot of love there.$" -LittlerootTown_ProfessorBirchsLab_Text_LikeYouToHavePokemon: @ 81FA74D +LittlerootTown_ProfessorBirchsLab_Text_LikeYouToHavePokemon: .string "PROF. BIRCH: So, {PLAYER}{KUN}.\p" .string "I've heard so much about you from\n" .string "your father.\p" @@ -754,11 +754,11 @@ LittlerootTown_ProfessorBirchsLab_Text_LikeYouToHavePokemon: @ 81FA74D .string "used earlier.\p" .string "{PLAYER} received the {STR_VAR_1}!$" -LittlerootTown_ProfessorBirchsLab_Text_WhyNotGiveNicknameToMon: @ 81FA8B1 +LittlerootTown_ProfessorBirchsLab_Text_WhyNotGiveNicknameToMon: .string "PROF. BIRCH: While you're at it, why not\n" .string "give a nickname to that {STR_VAR_1}?$" -LittlerootTown_ProfessorBirchsLab_Text_MightBeGoodIdeaToGoSeeRival: @ 81FA8F6 +LittlerootTown_ProfessorBirchsLab_Text_MightBeGoodIdeaToGoSeeRival: .string "PROF. BIRCH: If you work at POKéMON\n" .string "and gain experience, I think you'll make\l" .string "an extremely good TRAINER.\p" @@ -767,17 +767,17 @@ LittlerootTown_ProfessorBirchsLab_Text_MightBeGoodIdeaToGoSeeRival: @ 81FA8F6 .string "{PLAYER}{KUN}, don't you think it might be\n" .string "a good idea to go see {RIVAL}?$" -LittlerootTown_ProfessorBirchsLab_Text_GetRivalToTeachYou: @ 81FA9D5 +LittlerootTown_ProfessorBirchsLab_Text_GetRivalToTeachYou: .string "PROF. BIRCH: Great!\n" .string "{RIVAL} should be happy, too.\p" .string "Get {RIVAL} to teach you what it\n" .string "means to be a TRAINER.$" -LittlerootTown_ProfessorBirchsLab_Text_DontBeThatWay: @ 81FAA35 +LittlerootTown_ProfessorBirchsLab_Text_DontBeThatWay: .string "PROF. BIRCH: Oh, don't be that way.\n" .string "You should go meet my kid.$" -LittlerootTown_ProfessorBirchsLab_Text_BirchRivalGoneHome: @ 81FAA74 +LittlerootTown_ProfessorBirchsLab_Text_BirchRivalGoneHome: .string "PROF. BIRCH: {RIVAL}?\n" .string "Gone home, I think.\p" .string "Or maybe that kid's scrabbling around\n" @@ -785,7 +785,7 @@ LittlerootTown_ProfessorBirchsLab_Text_BirchRivalGoneHome: @ 81FAA74 .string "If you or your POKéMON get tired,\n" .string "you should get some rest at home.$" -LittlerootTown_ProfessorBirchsLab_Text_HeardYouBeatRivalTakePokedex: @ 81FAB22 +LittlerootTown_ProfessorBirchsLab_Text_HeardYouBeatRivalTakePokedex: .string "PROF. BIRCH: Oh, hi, {PLAYER}{KUN}!\p" .string "I heard you beat {RIVAL} on\n" .string "your first try. That's excellent!\p" @@ -797,10 +797,10 @@ LittlerootTown_ProfessorBirchsLab_Text_HeardYouBeatRivalTakePokedex: @ 81FAB22 .string "research, but I think you should have\l" .string "this POKéDEX.$" -LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex: @ 81FAC32 +LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex: .string "{PLAYER} received the POKéDEX!$" -LittlerootTown_ProfessorBirchsLab_Text_ExplainPokedex: @ 81FAC4B +LittlerootTown_ProfessorBirchsLab_Text_ExplainPokedex: .string "PROF. BIRCH: The POKéDEX is a high-tech\n" .string "tool that automatically makes a record\l" .string "of any POKéMON you meet or catch.\p" @@ -811,19 +811,19 @@ LittlerootTown_ProfessorBirchsLab_Text_ExplainPokedex: @ 81FAC4B .string "why, {RIVAL} looks for me while I'm out\l" .string "doing fieldwork, and shows me.$" -LittlerootTown_ProfessorBirchsLab_Text_CountlessPokemonAwait: @ 81FAD6F +LittlerootTown_ProfessorBirchsLab_Text_CountlessPokemonAwait: .string "PROF. BIRCH: Countless POKéMON\n" .string "await you!\p" .string "Argh, I'm getting the itch to get out\n" .string "and do fieldwork again!$" -LittlerootTown_ProfessorBirchsLab_Text_MayGotPokedexTooTakeThese: @ 81FADD7 +LittlerootTown_ProfessorBirchsLab_Text_MayGotPokedexTooTakeThese: .string "MAY: Oh, wow, {PLAYER}{KUN}!\n" .string "You got a POKéDEX, too!\p" .string "That's great! Just like me!\n" .string "I've got something for you, too!$" -LittlerootTown_ProfessorBirchsLab_Text_CatchCutePokemonWithPokeBalls: @ 81FAE40 +LittlerootTown_ProfessorBirchsLab_Text_CatchCutePokemonWithPokeBalls: .string "MAY: It's fun if you can get a lot of\n" .string "POKéMON!\p" .string "I'm going to look all over the place\n" @@ -831,20 +831,20 @@ LittlerootTown_ProfessorBirchsLab_Text_CatchCutePokemonWithPokeBalls: @ 81FAE40 .string "If I find any cute POKéMON, I'll catch\n" .string "them with POKé BALLS!$" -LittlerootTown_ProfessorBirchsLab_Text_OhYourBagsFull: @ 81FAEF3 +LittlerootTown_ProfessorBirchsLab_Text_OhYourBagsFull: .string "Oh? Your BAG's full.$" -LittlerootTown_ProfessorBirchsLab_Text_MayWhereShouldIGoNext: @ 81FAF08 +LittlerootTown_ProfessorBirchsLab_Text_MayWhereShouldIGoNext: .string "MAY: I wonder where I should go look\n" .string "for POKéMON next?$" -LittlerootTown_ProfessorBirchsLab_Text_BrendanGotPokedexTooTakeThese: @ 81FAF3F +LittlerootTown_ProfessorBirchsLab_Text_BrendanGotPokedexTooTakeThese: .string "BRENDAN: Huh…\n" .string "So you got a POKéDEX, too.\p" .string "Well then, here.\n" .string "I'll give you these.$" -LittlerootTown_ProfessorBirchsLab_Text_CatchCoolPokemonWithPokeBalls: @ 81FAF8E +LittlerootTown_ProfessorBirchsLab_Text_CatchCoolPokemonWithPokeBalls: .string "BRENDAN: You know it's more fun to\n" .string "have a whole bunch of POKéMON.\p" .string "I'm going to explore all over the place\n" @@ -852,28 +852,28 @@ LittlerootTown_ProfessorBirchsLab_Text_CatchCoolPokemonWithPokeBalls: @ 81FAF8E .string "If I find any cool POKéMON, you bet\n" .string "I'll try to get them with POKé BALLS.$" -LittlerootTown_ProfessorBirchsLab_Text_HeyYourBagsFull: @ 81FB05D +LittlerootTown_ProfessorBirchsLab_Text_HeyYourBagsFull: .string "Hey, your BAG's full.$" -LittlerootTown_ProfessorBirchsLab_Text_BrendanWhereShouldIGoNext: @ 81FB073 +LittlerootTown_ProfessorBirchsLab_Text_BrendanWhereShouldIGoNext: .string "BRENDAN: Where should I look for\n" .string "POKéMON next…$" -LittlerootTown_ProfessorBirchsLab_Text_SeriousLookingMachine: @ 81FB0A2 +LittlerootTown_ProfessorBirchsLab_Text_SeriousLookingMachine: .string "It's a serious-looking machine.\n" .string "The PROF must use this for research.$" -LittlerootTown_ProfessorBirchsLab_Text_PCUsedForResearch: @ 81FB0E7 +LittlerootTown_ProfessorBirchsLab_Text_PCUsedForResearch: .string "It's a PC used for research.\n" .string "Better not mess around with it.$" -LittlerootTown_ProfessorBirchsLab_Text_CrammedWithBooksOnPokemon: @ 81FB124 +LittlerootTown_ProfessorBirchsLab_Text_CrammedWithBooksOnPokemon: .string "It's crammed with books on POKéMON.$" -LittlerootTown_ProfessorBirchsLab_Text_BookTooHardToRead: @ 81FB148 +LittlerootTown_ProfessorBirchsLab_Text_BookTooHardToRead: .string "It's a book that's too hard to read.$" -LittlerootTown_ProfessorBirchsLab_Text_OtherRegionsUpgradeToNational: @ 81FB16D +LittlerootTown_ProfessorBirchsLab_Text_OtherRegionsUpgradeToNational: .string "PROF. BIRCH: Now…\p" .string "{PLAYER}{KUN} and {RIVAL}, I've had the two\n" .string "of you help me study POKéMON.\p" @@ -890,28 +890,28 @@ LittlerootTown_ProfessorBirchsLab_Text_OtherRegionsUpgradeToNational: @ 81FB16D .string "the NATIONAL Mode.\p" .string "Here, let me see your POKéDEX units.$" -LittlerootTown_ProfessorBirchsLab_Text_MayUpgradeSoCool: @ 81FB30F +LittlerootTown_ProfessorBirchsLab_Text_MayUpgradeSoCool: .string "MAY: Eheheh!\p" .string "It's so cool that even my POKéDEX\n" .string "is getting updated!\p" .string "It's because you went out and caught\n" .string "so many POKéMON, {PLAYER}{KUN}!$" -LittlerootTown_ProfessorBirchsLab_Text_BrendanYouCanThankMe: @ 81FB38E +LittlerootTown_ProfessorBirchsLab_Text_BrendanYouCanThankMe: .string "BRENDAN: I went out all over HOENN\n" .string "and checked out POKéMON.\p" .string "You can thank me for getting\n" .string "the NATIONAL Mode POKéDEX.\p" .string "Yep, you're lucky, {PLAYER}!$" -LittlerootTown_ProfessorBirchsLab_Text_OkayAllDone: @ 81FB419 +LittlerootTown_ProfessorBirchsLab_Text_OkayAllDone: .string "PROF. BIRCH: Okay, all done!$" -LittlerootTown_ProfessorBirchsLab_Text_PokedexUpgradedToNational: @ 81FB436 +LittlerootTown_ProfessorBirchsLab_Text_PokedexUpgradedToNational: .string "{PLAYER}'s POKéDEX was upgraded\n" .string "to the NATIONAL Mode!$" -LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting2: @ 81FB466 +LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting2: .string "PROF. BIRCH: But listen.\n" .string "You've become the CHAMPION,\l" .string "but your POKéMON journey isn't over.\p" @@ -920,19 +920,19 @@ LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting2: @ 81FB466 .string "Somewhere, there is a grassy patch\n" .string "that's waiting for you!$" -LittlerootTown_ProfessorBirchsLab_Text_MayTakeBreakFromFieldwork: @ 81FB528 +LittlerootTown_ProfessorBirchsLab_Text_MayTakeBreakFromFieldwork: .string "MAY: I think I'll take a short break\n" .string "from fieldwork.\p" .string "I think I'll help the PROF here for\n" .string "a while.$" -LittlerootTown_ProfessorBirchsLab_Text_BrendanTakeBreakFromFieldwork: @ 81FB58A +LittlerootTown_ProfessorBirchsLab_Text_BrendanTakeBreakFromFieldwork: .string "BRENDAN: For the time being,\n" .string "I'm taking a break from fieldwork.\p" .string "I'll be helping out the PROF here\n" .string "for a while.$" -LittlerootTown_ProfessorBirchsLab_Text_CompletedDexChoosePokemon: @ 81FB5F9 +LittlerootTown_ProfessorBirchsLab_Text_CompletedDexChoosePokemon: .string "PROF. BIRCH: Oh, {PLAYER}{KUN}!\n" .string "Let's have a look at your POKéDEX.\p" .string "… … … … … …\n" @@ -949,50 +949,50 @@ LittlerootTown_ProfessorBirchsLab_Text_CompletedDexChoosePokemon: @ 81FB5F9 .string "You can have any one of these\n" .string "three POKéMON!$" -LittlerootTown_ProfessorBirchsLab_Text_CanHaveAnyOneOfRarePokemon: @ 81FB787 +LittlerootTown_ProfessorBirchsLab_Text_CanHaveAnyOneOfRarePokemon: .string "PROF. BIRCH: These are rare POKéMON\n" .string "only found in another region!\p" .string "You can have any one of these\n" .string "three POKéMON!$" -LittlerootTown_ProfessorBirchsLab_Text_YoullTakeCyndaquil: @ 81FB7F6 +LittlerootTown_ProfessorBirchsLab_Text_YoullTakeCyndaquil: .string "PROF. BIRCH: The FIRE POKéMON\n" .string "CYNDAQUIL caught your eye!\p" .string "You're as sharp as ever!\p" .string "So the CYNDAQUIL is your choice?$" -LittlerootTown_ProfessorBirchsLab_Text_YoullTakeTotodile: @ 81FB869 +LittlerootTown_ProfessorBirchsLab_Text_YoullTakeTotodile: .string "PROF. BIRCH: The WATER POKéMON\n" .string "TOTODILE is your choice!\p" .string "You know how to pick a good one.\p" .string "So, you'll take the TOTODILE?$" -LittlerootTown_ProfessorBirchsLab_Text_YoullTakeChikorita: @ 81FB8E0 +LittlerootTown_ProfessorBirchsLab_Text_YoullTakeChikorita: .string "PROF. BIRCH: The GRASS POKéMON\n" .string "CHIKORITA is your choice!\p" .string "You sure know what you're doing.\p" .string "So, you'll take the CHIKORITA?$" -LittlerootTown_ProfessorBirchsLab_Text_TakeYourTimeAllInvaluable: @ 81FB959 +LittlerootTown_ProfessorBirchsLab_Text_TakeYourTimeAllInvaluable: .string "PROF. BIRCH: Take your time before\n" .string "you decide.\p" .string "They're all invaluable POKéMON.$" @ Unused -LittlerootTown_ProfessorBirchsLab_Text_PickedFinePokemon: @ 81FB9A8 +LittlerootTown_ProfessorBirchsLab_Text_PickedFinePokemon: .string "PROF. BIRCH: I see!\n" .string "You picked a fine POKéMON!$" -LittlerootTown_ProfessorBirchsLab_Text_ReceivedJohtoStarter: @ 81FB9D7 +LittlerootTown_ProfessorBirchsLab_Text_ReceivedJohtoStarter: .string "{PLAYER} received the {STR_VAR_1}\n" .string "from PROF. BIRCH!$" @ Unused -LittlerootTown_ProfessorBirchsLab_Text_NicknameJohtoStarter: @ 81FB9FC +LittlerootTown_ProfessorBirchsLab_Text_NicknameJohtoStarter: .string "Want to give a nickname to\n" .string "the {STR_VAR_1} you received?$" -LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting: @ 81FBA2C +LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting: .string "PROF. BIRCH: Listen, {PLAYER}{KUN}.\n" .string "You've completed the HOENN POKéDEX,\l" .string "but your POKéMON journey isn't over.\p" @@ -1001,16 +1001,16 @@ LittlerootTown_ProfessorBirchsLab_Text_GrassyPatchWaiting: @ 81FBA2C .string "Somewhere, there is a grassy patch\n" .string "that's waiting for you!$" -LittlerootTown_ProfessorBirchsLab_Text_BetterLeaveOthersAlone: @ 81FBAF8 +LittlerootTown_ProfessorBirchsLab_Text_BetterLeaveOthersAlone: .string "You received the promised POKéMON.\n" .string "Better leave the others alone.$" @ Unused -LittlerootTown_ProfessorBirchsLab_Text_DontHaveAnyRoomForPokemon: @ 81FBB3A +LittlerootTown_ProfessorBirchsLab_Text_DontHaveAnyRoomForPokemon: .string "Oh, you don't have any room for\n" .string "this POKéMON.$" -LittlerootTown_ProfessorBirchsLab_Text_MayWhatNextImStayingHere: @ 81FBB68 +LittlerootTown_ProfessorBirchsLab_Text_MayWhatNextImStayingHere: .string "MAY: {PLAYER}{KUN}, after this…\n" .string "What are you going to do?\p" .string "Are you going to keep battling\n" @@ -1019,22 +1019,22 @@ LittlerootTown_ProfessorBirchsLab_Text_MayWhatNextImStayingHere: @ 81FBB68 .string "the NATIONAL POKéDEX?\p" .string "I'm staying here to help the PROF.$" -LittlerootTown_ProfessorBirchsLab_Text_BrendanPreferCollectingSlowly: @ 81FBC2D +LittlerootTown_ProfessorBirchsLab_Text_BrendanPreferCollectingSlowly: .string "BRENDAN: Rather than collecting\n" .string "POKéMON, I prefer slowly and \l" .string "steadily raising the one I chose.$" -LittlerootTown_ProfessorBirchsLab_Text_MayHaveYouGoneToBattleFrontier: @ 81FBC8D +LittlerootTown_ProfessorBirchsLab_Text_MayHaveYouGoneToBattleFrontier: .string "MAY: Oh, hi, {PLAYER}{KUN}!\n" .string "Have you gone to that place,\l" .string "the BATTLE FRONTIER?$" -LittlerootTown_ProfessorBirchsLab_Text_BrendanHaveYouGoneToBattleFrontier: @ 81FBCD2 +LittlerootTown_ProfessorBirchsLab_Text_BrendanHaveYouGoneToBattleFrontier: .string "BRENDAN: Hey, {PLAYER}!\n" .string "Have you gone out to that place,\l" .string "the BATTLE FRONTIER?$" -LittlerootTown_ProfessorBirchsLab_Text_ScottAboardSSTidalCall: @ 81FBD1A +LittlerootTown_ProfessorBirchsLab_Text_ScottAboardSSTidalCall: .string "… … … … … …\n" .string "… … … … … Beep!\p" .string "SCOTT: Hi, hi, {PLAYER}!\n" diff --git a/data/maps/MagmaHideout_1F/scripts.inc b/data/maps/MagmaHideout_1F/scripts.inc index 7c6997ca2c..d4e22477e3 100644 --- a/data/maps/MagmaHideout_1F/scripts.inc +++ b/data/maps/MagmaHideout_1F/scripts.inc @@ -1,38 +1,38 @@ -MagmaHideout_1F_MapScripts:: @ 8239880 +MagmaHideout_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MagmaHideout_1F_OnTransition .byte 0 -MagmaHideout_1F_OnTransition: @ 8239886 +MagmaHideout_1F_OnTransition: setvar VAR_JAGGED_PASS_ASH_WEATHER, 0 end -MagmaHideout_1F_EventScript_Grunt1:: @ 823988C +MagmaHideout_1F_EventScript_Grunt1:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_1, MagmaHideout_1F_Text_Grunt1Intro, MagmaHideout_1F_Text_Grunt1Defeat msgbox MagmaHideout_1F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_1F_EventScript_Grunt2:: @ 82398A3 +MagmaHideout_1F_EventScript_Grunt2:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_2, MagmaHideout_1F_Text_Grunt2Intro, MagmaHideout_1F_Text_Grunt2Defeat msgbox MagmaHideout_1F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_1F_Text_Grunt1Intro: @ 82398BA +MagmaHideout_1F_Text_Grunt1Intro: .string "When TEAM MAGMA has roll call, we get\n" .string "important guarding assignments in\l" .string "the order that we line up.\p" .string "That's why I'm stuck off in this corner.\n" .string "I'm always late to roll call!$" -MagmaHideout_1F_Text_Grunt1Defeat: @ 8239964 +MagmaHideout_1F_Text_Grunt1Defeat: .string "I'm always late for training sessions,\n" .string "too!\p" .string "I hate to say it, but I'm wimpy…$" -MagmaHideout_1F_Text_Grunt1PostBattle: @ 82399B1 +MagmaHideout_1F_Text_Grunt1PostBattle: .string "Okay, I'll try to put a little more\n" .string "effort into things from now on…$" -MagmaHideout_1F_Text_Grunt2Intro: @ 82399F5 +MagmaHideout_1F_Text_Grunt2Intro: .string "Our leader told us to dig into\n" .string "MT. CHIMNEY, so we dug and dug.\p" .string "And in the course of digging, we came\n" @@ -41,11 +41,11 @@ MagmaHideout_1F_Text_Grunt2Intro: @ 82399F5 .string "Fuhahaha!\n" .string "I'll tell you if you beat me!$" -MagmaHideout_1F_Text_Grunt2Defeat: @ 8239ABA +MagmaHideout_1F_Text_Grunt2Defeat: .string "Arrgh!\n" .string "Taken down!$" -MagmaHideout_1F_Text_Grunt2PostBattle: @ 8239ACD +MagmaHideout_1F_Text_Grunt2PostBattle: .string "I won't tell you after all.\n" .string "You'll find out when you get there!\p" .string "It'd be better if you saved surprises\n" diff --git a/data/maps/MagmaHideout_2F_1R/scripts.inc b/data/maps/MagmaHideout_2F_1R/scripts.inc index 6f117c0062..ab5603e4e6 100644 --- a/data/maps/MagmaHideout_2F_1R/scripts.inc +++ b/data/maps/MagmaHideout_2F_1R/scripts.inc @@ -1,27 +1,27 @@ -MagmaHideout_2F_1R_MapScripts:: @ 8239B50 +MagmaHideout_2F_1R_MapScripts:: .byte 0 -MagmaHideout_2F_1R_EventScript_Grunt14:: @ 8239B51 +MagmaHideout_2F_1R_EventScript_Grunt14:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_14, MagmaHideout_2F_1R_Text_Grunt14Intro, MagmaHideout_2F_1R_Text_Grunt14Defeat msgbox MagmaHideout_2F_1R_Text_Grunt14PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_2F_1R_EventScript_Grunt3:: @ 8239B68 +MagmaHideout_2F_1R_EventScript_Grunt3:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_3, MagmaHideout_2F_1R_Text_Grunt3Intro, MagmaHideout_2F_1R_Text_Grunt3Defeat msgbox MagmaHideout_2F_1R_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_2F_1R_EventScript_Grunt4:: @ 8239B7F +MagmaHideout_2F_1R_EventScript_Grunt4:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_4, MagmaHideout_2F_1R_Text_Grunt4Intro, MagmaHideout_2F_1R_Text_Grunt4Defeat msgbox MagmaHideout_2F_1R_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_2F_1R_EventScript_Grunt5:: @ 8239B96 +MagmaHideout_2F_1R_EventScript_Grunt5:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_5, MagmaHideout_2F_1R_Text_Grunt5Intro, MagmaHideout_2F_1R_Text_Grunt5Defeat msgbox MagmaHideout_2F_1R_Text_Grunt5PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_2F_1R_Text_Grunt14Intro: @ 8239BAD +MagmaHideout_2F_1R_Text_Grunt14Intro: .string "What, what, what?\p" .string "Only TEAM MAGMA members are supposed\n" .string "to be in here!\p" @@ -30,46 +30,46 @@ MagmaHideout_2F_1R_Text_Grunt14Intro: @ 8239BAD .string "You rouse my suspicion!\n" .string "Battle with me!$" -MagmaHideout_2F_1R_Text_Grunt14Defeat: @ 8239C4B +MagmaHideout_2F_1R_Text_Grunt14Defeat: .string "Aiyiyi…\n" .string "My pride as a TEAM MAGMA member…$" -MagmaHideout_2F_1R_Text_Grunt14PostBattle: @ 8239C74 +MagmaHideout_2F_1R_Text_Grunt14PostBattle: .string "If you suffer from chills, you should\n" .string "join TEAM MAGMA.$" -MagmaHideout_2F_1R_Text_Grunt3Intro: @ 8239CAB +MagmaHideout_2F_1R_Text_Grunt3Intro: .string "Hold it right there!\p" .string "You don't really expect me to keep\n" .string "my trap shut and let you waltz by me?$" -MagmaHideout_2F_1R_Text_Grunt3Defeat: @ 8239D09 +MagmaHideout_2F_1R_Text_Grunt3Defeat: .string "Ooh wow!\n" .string "I concede!$" -MagmaHideout_2F_1R_Text_Grunt3PostBattle: @ 8239D1D +MagmaHideout_2F_1R_Text_Grunt3PostBattle: .string "Maybe it would've been better if I did\n" .string "just let you go unchallenged…$" -MagmaHideout_2F_1R_Text_Grunt4Intro: @ 8239D62 +MagmaHideout_2F_1R_Text_Grunt4Intro: .string "Ahah!\n" .string "An intruder!$" -MagmaHideout_2F_1R_Text_Grunt4Defeat: @ 8239D75 +MagmaHideout_2F_1R_Text_Grunt4Defeat: .string "Graaah!$" -MagmaHideout_2F_1R_Text_Grunt4PostBattle: @ 8239D7D +MagmaHideout_2F_1R_Text_Grunt4PostBattle: .string "I've already lost.\p" .string "Do I really need to keep running\n" .string "around in a circle?$" -MagmaHideout_2F_1R_Text_Grunt5Intro: @ 8239DC5 +MagmaHideout_2F_1R_Text_Grunt5Intro: .string "Oh, oh!\n" .string "An intruder!$" -MagmaHideout_2F_1R_Text_Grunt5Defeat: @ 8239DDA +MagmaHideout_2F_1R_Text_Grunt5Defeat: .string "Mutter…$" -MagmaHideout_2F_1R_Text_Grunt5PostBattle: @ 8239DE2 +MagmaHideout_2F_1R_Text_Grunt5PostBattle: .string "Actually, I'm no expert at battling…$" diff --git a/data/maps/MagmaHideout_2F_2R/map.json b/data/maps/MagmaHideout_2F_2R/map.json index 4aa6896f6e..968c07fb7f 100644 --- a/data/maps/MagmaHideout_2F_2R/map.json +++ b/data/maps/MagmaHideout_2F_2R/map.json @@ -50,7 +50,7 @@ "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "MagmaHideout_2F_2R_EventScript_MaxElixir", + "script": "MagmaHideout_2F_2R_EventScript_ItemMaxElixir", "flag": "FLAG_ITEM_MAGMA_HIDEOUT_2F_2R_MAX_ELIXIR" }, { diff --git a/data/maps/MagmaHideout_2F_2R/scripts.inc b/data/maps/MagmaHideout_2F_2R/scripts.inc index d0121f9534..8c7702eebf 100644 --- a/data/maps/MagmaHideout_2F_2R/scripts.inc +++ b/data/maps/MagmaHideout_2F_2R/scripts.inc @@ -1,78 +1,78 @@ -MagmaHideout_2F_2R_MapScripts:: @ 8239E07 +MagmaHideout_2F_2R_MapScripts:: .byte 0 -MagmaHideout_2F_2R_EventScript_Grunt15:: @ 8239E08 +MagmaHideout_2F_2R_EventScript_Grunt15:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_15, MagmaHideout_2F_2R_Text_Grunt15Intro, MagmaHideout_2F_2R_Text_Grunt15Defeat msgbox MagmaHideout_2F_2R_Text_Grunt15PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_2F_2R_EventScript_Grunt6:: @ 8239E1F +MagmaHideout_2F_2R_EventScript_Grunt6:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_6, MagmaHideout_2F_2R_Text_Grunt6Intro, MagmaHideout_2F_2R_Text_Grunt6Defeat msgbox MagmaHideout_2F_2R_Text_Grunt6PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_2F_2R_EventScript_Grunt7:: @ 8239E36 +MagmaHideout_2F_2R_EventScript_Grunt7:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_7, MagmaHideout_2F_2R_Text_Grunt7Intro, MagmaHideout_2F_2R_Text_Grunt7Defeat msgbox MagmaHideout_2F_2R_Text_Grunt7PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_2F_2R_EventScript_Grunt8:: @ 8239E4D +MagmaHideout_2F_2R_EventScript_Grunt8:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_8, MagmaHideout_2F_2R_Text_Grunt8Intro, MagmaHideout_2F_2R_Text_Grunt8Defeat msgbox MagmaHideout_2F_2R_Text_Grunt8PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_2F_2R_Text_Grunt15Intro: @ 8239E64 +MagmaHideout_2F_2R_Text_Grunt15Intro: .string "I don't have a bone to pick with you.\n" .string "I'm just following orders!$" -MagmaHideout_2F_2R_Text_Grunt15Defeat: @ 8239EA5 +MagmaHideout_2F_2R_Text_Grunt15Defeat: .string "I may have lost, but…$" -MagmaHideout_2F_2R_Text_Grunt15PostBattle: @ 8239EBB +MagmaHideout_2F_2R_Text_Grunt15PostBattle: .string "We dug up something beyond belief!\n" .string "And, we got the BLUE ORB!\p" .string "All that's left is for our leader to…\n" .string "Fufufu… Fwahahaha!$" -MagmaHideout_2F_2R_Text_Grunt6Intro: @ 8239F31 +MagmaHideout_2F_2R_Text_Grunt6Intro: .string "I can't stand heat. Maybe I should've\n" .string "joined TEAM AQUA instead…$" -MagmaHideout_2F_2R_Text_Grunt6Defeat: @ 8239F71 +MagmaHideout_2F_2R_Text_Grunt6Defeat: .string "Yeah, I really may not be right for\n" .string "TEAM MAGMA…$" -MagmaHideout_2F_2R_Text_Grunt6PostBattle: @ 8239FA1 +MagmaHideout_2F_2R_Text_Grunt6PostBattle: .string "Don't you get lonely for the sea\n" .string "being in a place like this?$" -MagmaHideout_2F_2R_Text_Grunt7Intro: @ 8239FDE +MagmaHideout_2F_2R_Text_Grunt7Intro: .string "You can hear tremors here sometimes.\p" .string "Could it be the volcano rattling?\n" .string "Or is it GROU…\p" .string "Whoops!\n" .string "No, no, never mind!$" -MagmaHideout_2F_2R_Text_Grunt7Defeat: @ 823A050 +MagmaHideout_2F_2R_Text_Grunt7Defeat: .string "You're a fiery battler.\n" .string "Just like a volcano!$" -MagmaHideout_2F_2R_Text_Grunt7PostBattle: @ 823A07D +MagmaHideout_2F_2R_Text_Grunt7PostBattle: .string "You just happened to win this time,\n" .string "but that doesn't matter.\p" .string "TEAM MAGMA's goal is about to be\n" .string "reached!$" -MagmaHideout_2F_2R_Text_Grunt8Intro: @ 823A0E4 +MagmaHideout_2F_2R_Text_Grunt8Intro: .string "One of our guys was freaking out that\n" .string "he lost his MAGMA EMBLEM…\p" .string "Wait a minute!\n" .string "Was it you who found it?$" -MagmaHideout_2F_2R_Text_Grunt8Defeat: @ 823A14C +MagmaHideout_2F_2R_Text_Grunt8Defeat: .string "I'm having trouble believing this…$" -MagmaHideout_2F_2R_Text_Grunt8PostBattle: @ 823A16F +MagmaHideout_2F_2R_Text_Grunt8PostBattle: .string "I'm getting this feeling that our plan\n" .string "is going to end in failure…$" diff --git a/data/maps/MagmaHideout_2F_3R/scripts.inc b/data/maps/MagmaHideout_2F_3R/scripts.inc index cbcb3fd529..12b076d782 100644 --- a/data/maps/MagmaHideout_2F_3R/scripts.inc +++ b/data/maps/MagmaHideout_2F_3R/scripts.inc @@ -1,3 +1,3 @@ -MagmaHideout_2F_3R_MapScripts:: @ 823AD00 +MagmaHideout_2F_3R_MapScripts:: .byte 0 diff --git a/data/maps/MagmaHideout_3F_1R/scripts.inc b/data/maps/MagmaHideout_3F_1R/scripts.inc index 04e5526aee..dafb96a5cf 100644 --- a/data/maps/MagmaHideout_3F_1R/scripts.inc +++ b/data/maps/MagmaHideout_3F_1R/scripts.inc @@ -1,29 +1,29 @@ -MagmaHideout_3F_1R_MapScripts:: @ 823A1B2 +MagmaHideout_3F_1R_MapScripts:: .byte 0 -MagmaHideout_3F_1R_EventScript_Grunt9:: @ 823A1B3 +MagmaHideout_3F_1R_EventScript_Grunt9:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_9, MagmaHideout_3F_1R_Text_Grunt9Intro, MagmaHideout_3F_1R_Text_Grunt9Defeat msgbox MagmaHideout_3F_1R_Text_Grunt9PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_3F_1R_EventScript_Grunt16:: @ 823A1CA +MagmaHideout_3F_1R_EventScript_Grunt16:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_16, MagmaHideout_3F_1R_Text_Grunt16Intro, MagmaHideout_3F_1R_Text_Grunt16Defeat msgbox MagmaHideout_3F_1R_Text_Grunt16PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_3F_1R_Text_Grunt9Intro: @ 823A1E1 +MagmaHideout_3F_1R_Text_Grunt9Intro: .string "What did I do to deserve this guard\n" .string "posting?\p" .string "My left ear is burning up!$" -MagmaHideout_3F_1R_Text_Grunt9Defeat: @ 823A229 +MagmaHideout_3F_1R_Text_Grunt9Defeat: .string "I'm getting heat exhaustion…$" -MagmaHideout_3F_1R_Text_Grunt9PostBattle: @ 823A246 +MagmaHideout_3F_1R_Text_Grunt9PostBattle: .string "Do you think it's odd that we're wearing\n" .string "hoods in this magma-filled volcano?$" -MagmaHideout_3F_1R_Text_Grunt16Intro: @ 823A293 +MagmaHideout_3F_1R_Text_Grunt16Intro: .string "We joined so we can help our leader\n" .string "achieve his fantastic vision.\p" .string "I don't care if you're with TEAM AQUA\n" @@ -31,11 +31,11 @@ MagmaHideout_3F_1R_Text_Grunt16Intro: @ 823A293 .string "No one interferes with us and gets\n" .string "away with it!$" -MagmaHideout_3F_1R_Text_Grunt16Defeat: @ 823A353 +MagmaHideout_3F_1R_Text_Grunt16Defeat: .string "Oh, no!\n" .string "You're not to be trusted at all!$" -MagmaHideout_3F_1R_Text_Grunt16PostBattle: @ 823A37C +MagmaHideout_3F_1R_Text_Grunt16PostBattle: .string "Listen to me.\n" .string "TEAM MAGMA is right!\p" .string "Don't listen to TEAM AQUA.\n" diff --git a/data/maps/MagmaHideout_3F_2R/scripts.inc b/data/maps/MagmaHideout_3F_2R/scripts.inc index 06f371151e..93a25f4241 100644 --- a/data/maps/MagmaHideout_3F_2R/scripts.inc +++ b/data/maps/MagmaHideout_3F_2R/scripts.inc @@ -1,12 +1,12 @@ -MagmaHideout_3F_2R_MapScripts:: @ 823A3D4 +MagmaHideout_3F_2R_MapScripts:: .byte 0 -MagmaHideout_3F_2R_EventScript_Grunt10:: @ 823A3D5 +MagmaHideout_3F_2R_EventScript_Grunt10:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_10, MagmaHideout_3F_2R_Text_Grunt10Intro, MagmaHideout_3F_2R_Text_Grunt10Defeat msgbox MagmaHideout_3F_2R_Text_Grunt10PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_3F_2R_Text_Grunt10Intro: @ 823A3EC +MagmaHideout_3F_2R_Text_Grunt10Intro: .string "I understand everything our leader\n" .string "says. But you know what?\p" .string "Doing stuff like digging up a super-\n" @@ -15,11 +15,11 @@ MagmaHideout_3F_2R_Text_Grunt10Intro: @ 823A3EC .string "I think we're going a little too far.\n" .string "What do you think?$" -MagmaHideout_3F_2R_Text_Grunt10Defeat: @ 823A4BB +MagmaHideout_3F_2R_Text_Grunt10Defeat: .string "Yeah, I think we are doing something\n" .string "wrong somehow.$" -MagmaHideout_3F_2R_Text_Grunt10PostBattle: @ 823A4EF +MagmaHideout_3F_2R_Text_Grunt10PostBattle: .string "You know, losing to you cleared my mind.\p" .string "The next time I see our leader,\n" .string "I'm going to ask him about what we do.$" diff --git a/data/maps/MagmaHideout_3F_3R/scripts.inc b/data/maps/MagmaHideout_3F_3R/scripts.inc index e85cff9a31..94afdddbf1 100644 --- a/data/maps/MagmaHideout_3F_3R/scripts.inc +++ b/data/maps/MagmaHideout_3F_3R/scripts.inc @@ -1,3 +1,3 @@ -MagmaHideout_3F_3R_MapScripts:: @ 823ACFF +MagmaHideout_3F_3R_MapScripts:: .byte 0 diff --git a/data/maps/MagmaHideout_4F/map.json b/data/maps/MagmaHideout_4F/map.json index d38e85fdf8..67c11481fb 100644 --- a/data/maps/MagmaHideout_4F/map.json +++ b/data/maps/MagmaHideout_4F/map.json @@ -15,7 +15,7 @@ "connections": null, "object_events": [ { - "graphics_id": "OBJ_EVENT_GFX_GROUDON_1", + "graphics_id": "OBJ_EVENT_GFX_GROUDON_FRONT", "x": 16, "y": 17, "elevation": 0, @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1" + "flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON" }, { "graphics_id": "OBJ_EVENT_GFX_MAGMA_MEMBER_M", @@ -93,7 +93,7 @@ "flag": "FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS" }, { - "graphics_id": "OBJ_EVENT_GFX_GROUDON_2", + "graphics_id": "OBJ_EVENT_GFX_GROUDON_ASLEEP", "x": 16, "y": 17, "elevation": 3, @@ -103,7 +103,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_2" + "flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_ASLEEP" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", @@ -115,7 +115,7 @@ "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "MagmaHideout_4F_EventScript_MaxRevive", + "script": "MagmaHideout_4F_EventScript_ItemMaxRevive", "flag": "FLAG_ITEM_MAGMA_HIDEOUT_4F_MAX_REVIVE" } ], diff --git a/data/maps/MagmaHideout_4F/scripts.inc b/data/maps/MagmaHideout_4F/scripts.inc index 50382f44e3..a89054b7af 100644 --- a/data/maps/MagmaHideout_4F/scripts.inc +++ b/data/maps/MagmaHideout_4F/scripts.inc @@ -6,12 +6,12 @@ .set LOCALID_MAXIE, 6 .set LOCALID_GROUDON_SLEEPING, 7 -MagmaHideout_4F_MapScripts:: @ 823A55F +MagmaHideout_4F_MapScripts:: .byte 0 -MagmaHideout_4F_EventScript_Maxie:: @ 823A560 +MagmaHideout_4F_EventScript_Maxie:: lockall - playbgm MUS_ENCOUNTER_MAGMA, 0 + playbgm MUS_ENCOUNTER_MAGMA, FALSE msgbox MagmaHideout_4F_Text_MaxieAwakenGroudon, MSGBOX_DEFAULT closemessage delay 20 @@ -81,7 +81,7 @@ MagmaHideout_4F_EventScript_Maxie:: @ 823A560 releaseall end -MagmaHideout_4F_Movement_GroudonApproach: @ 823A672 +MagmaHideout_4F_Movement_GroudonApproach: delay_16 delay_16 walk_slow_down @@ -94,12 +94,12 @@ MagmaHideout_4F_Movement_GroudonApproach: @ 823A672 delay_16 step_end -MagmaHideout_4F_Movement_GroudonExit: @ 823A67D +MagmaHideout_4F_Movement_GroudonExit: slide_up slide_up step_end -MagmaHideout_4F_Movement_MaxieLookAround: @ 823A680 +MagmaHideout_4F_Movement_MaxieLookAround: face_left delay_16 face_right @@ -113,64 +113,64 @@ MagmaHideout_4F_Movement_MaxieLookAround: @ 823A680 delay_16 step_end -MagmaHideout_4F_EventScript_Grunt11:: @ 823A68C +MagmaHideout_4F_EventScript_Grunt11:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_11, MagmaHideout_4F_Text_Grunt11Intro, MagmaHideout_4F_Text_Grunt11Defeat msgbox MagmaHideout_4F_Text_Grunt11PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_4F_EventScript_Grunt12:: @ 823A6A3 +MagmaHideout_4F_EventScript_Grunt12:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_12, MagmaHideout_4F_Text_Grunt12Intro, MagmaHideout_4F_Text_Grunt12Defeat msgbox MagmaHideout_4F_Text_Grunt12PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_4F_EventScript_Grunt13:: @ 823A6BA +MagmaHideout_4F_EventScript_Grunt13:: trainerbattle_single TRAINER_GRUNT_MAGMA_HIDEOUT_13, MagmaHideout_4F_Text_Grunt13Intro, MagmaHideout_4F_Text_Grunt13Defeat msgbox MagmaHideout_4F_Text_Grunt13PostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_4F_EventScript_Tabitha:: @ 823A6D1 +MagmaHideout_4F_EventScript_Tabitha:: trainerbattle_single TRAINER_TABITHA_MAGMA_HIDEOUT, MagmaHideout_4F_Text_TabithaIntro, MagmaHideout_4F_Text_TabithaDefeat msgbox MagmaHideout_4F_Text_TabithaPostBattle, MSGBOX_AUTOCLOSE end -MagmaHideout_4F_Text_Grunt11Intro: @ 823A6E8 +MagmaHideout_4F_Text_Grunt11Intro: .string "I want to see GROUDON, too, but they\n" .string "won't let me see even its tail…\p" .string "It's got me feeling really frustrated.\p" .string "Oh, no!\n" .string "I blabbed about GROUDON!$" -MagmaHideout_4F_Text_Grunt11Defeat: @ 823A775 +MagmaHideout_4F_Text_Grunt11Defeat: .string "I guess it's impossible to win if one\n" .string "doesn't have a calm mind…$" -MagmaHideout_4F_Text_Grunt11PostBattle: @ 823A7B5 +MagmaHideout_4F_Text_Grunt11PostBattle: .string "I wonder if GROUDON even has a tail?$" -MagmaHideout_4F_Text_Grunt12Intro: @ 823A7DA +MagmaHideout_4F_Text_Grunt12Intro: .string "Fuhahaha!\n" .string "Soon! Very soon!\l" .string "Our grand objective will be achieved!$" -MagmaHideout_4F_Text_Grunt12Defeat: @ 823A81B +MagmaHideout_4F_Text_Grunt12Defeat: .string "Grrr…\n" .string "I've come so far, but now this?$" -MagmaHideout_4F_Text_Grunt12PostBattle: @ 823A841 +MagmaHideout_4F_Text_Grunt12PostBattle: .string "MAXIE, sir!\n" .string "An intruder is headed your way!$" -MagmaHideout_4F_Text_Grunt13Intro: @ 823A86D +MagmaHideout_4F_Text_Grunt13Intro: .string "You're not finished yet!\n" .string "You're not getting by me easily!$" -MagmaHideout_4F_Text_Grunt13Defeat: @ 823A8A7 +MagmaHideout_4F_Text_Grunt13Defeat: .string "Was I that easy to knock down?$" -MagmaHideout_4F_Text_Grunt13PostBattle: @ 823A8C6 +MagmaHideout_4F_Text_Grunt13PostBattle: .string "C-come on, one more match…$" -MagmaHideout_4F_Text_TabithaIntro: @ 823A8E1 +MagmaHideout_4F_Text_TabithaIntro: .string "Hehehe!\n" .string "You made it this far, so I'll tell you!\p" .string "That's right!\n" @@ -180,15 +180,15 @@ MagmaHideout_4F_Text_TabithaIntro: @ 823A8E1 .string "It's going to awaken real soon!\n" .string "Hehe! Hehehe!$" -MagmaHideout_4F_Text_TabithaDefeat: @ 823A994 +MagmaHideout_4F_Text_TabithaDefeat: .string "Taken down again…\n" .string "Hehe…$" -MagmaHideout_4F_Text_TabithaPostBattle: @ 823A9AC +MagmaHideout_4F_Text_TabithaPostBattle: .string "…And while you wasted time with me,\n" .string "MAXIE should have awakened GROUDON…$" -MagmaHideout_4F_Text_MaxieAwakenGroudon: @ 823A9F4 +MagmaHideout_4F_Text_MaxieAwakenGroudon: .string "MAXIE: GROUDON…\p" .string "Nothing could awaken you from your\n" .string "sleep bathed in magma…\p" @@ -199,25 +199,25 @@ MagmaHideout_4F_Text_MaxieAwakenGroudon: @ 823A9F4 .string "And show me…\n" .string "Show me the full extent of your power!$" -MagmaHideout_4F_Text_MaxieGroudonWhatsWrong: @ 823AADA +MagmaHideout_4F_Text_MaxieGroudonWhatsWrong: .string "MAXIE: GROUDON!\n" .string "What's wrong?\p" .string "Wasn't the BLUE ORB the key?\p" .string "GROUDON!\n" .string "Where have you gone…$" -MagmaHideout_4F_Text_MaxieOhItWasYou: @ 823AB33 +MagmaHideout_4F_Text_MaxieOhItWasYou: .string "MAXIE: Oh, so it was you?\p" .string "I've seen you poking around uninvited\n" .string "here and there…\p" .string "I get it now!\n" .string "You must have pulled a cheap stunt!$" -MagmaHideout_4F_Text_MaxieDefeat: @ 823ABB5 +MagmaHideout_4F_Text_MaxieDefeat: .string "What makes you so adept at handling\n" .string "POKéMON?$" -MagmaHideout_4F_Text_MaxieImGoingAfterGroudon: @ 823ABE2 +MagmaHideout_4F_Text_MaxieImGoingAfterGroudon: .string "MAXIE: There has to be some reason\n" .string "why GROUDON fled…\p" .string "That's what you're trying to say,\n" diff --git a/data/maps/MarineCave_End/map.json b/data/maps/MarineCave_End/map.json index d2e506a147..0beeb7a4cf 100644 --- a/data/maps/MarineCave_End/map.json +++ b/data/maps/MarineCave_End/map.json @@ -15,7 +15,7 @@ "connections": null, "object_events": [ { - "graphics_id": "OBJ_EVENT_GFX_KYOGRE_1", + "graphics_id": "OBJ_EVENT_GFX_KYOGRE_FRONT", "x": 9, "y": 22, "elevation": 1, diff --git a/data/maps/MarineCave_End/scripts.inc b/data/maps/MarineCave_End/scripts.inc index a6d8947934..47bbf9aada 100644 --- a/data/maps/MarineCave_End/scripts.inc +++ b/data/maps/MarineCave_End/scripts.inc @@ -1,31 +1,31 @@ .set LOCALID_KYOGRE, 1 -MarineCave_End_MapScripts:: @ 823AFDF +MarineCave_End_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, MarineCave_End_OnResume map_script MAP_SCRIPT_ON_TRANSITION, MarineCave_End_OnTransition .byte 0 -MarineCave_End_OnResume: @ 823AFEA +MarineCave_End_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, MarineCave_End_EventScript_TryRemoveKyogre end -MarineCave_End_EventScript_TryRemoveKyogre:: @ 823AFF4 +MarineCave_End_EventScript_TryRemoveKyogre:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject LOCALID_KYOGRE return -MarineCave_End_OnTransition: @ 823B008 +MarineCave_End_OnTransition: call_if_unset FLAG_DEFEATED_KYOGRE, MarineCave_End_EventScript_ShowKyogre end -MarineCave_End_EventScript_ShowKyogre:: @ 823B012 +MarineCave_End_EventScript_ShowKyogre:: clearflag FLAG_HIDE_MARINE_CAVE_KYOGRE setvar VAR_TEMP_1, 1 return -MarineCave_End_EventScript_Kyogre:: @ 823B01B +MarineCave_End_EventScript_Kyogre:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp waitmovement 0 @@ -54,18 +54,18 @@ MarineCave_End_EventScript_Kyogre:: @ 823B01B releaseall end -MarineCave_End_EventScript_DefeatedKyogre:: @ 823B084 +MarineCave_End_EventScript_DefeatedKyogre:: setvar VAR_SHOULD_END_ABNORMAL_WEATHER, 1 setflag FLAG_DEFEATED_KYOGRE goto Common_EventScript_RemoveStaticPokemon end -MarineCave_End_EventScript_RanFromKyogre:: @ 823B092 +MarineCave_End_EventScript_RanFromKyogre:: setvar VAR_0x8004, SPECIES_KYOGRE goto Common_EventScript_LegendaryFlewAway end -MarineCave_End_Movement_KyogreApproach: @ 823B09D +MarineCave_End_Movement_KyogreApproach: init_affine_anim walk_down_start_affine delay_16 diff --git a/data/maps/MarineCave_Entrance/scripts.inc b/data/maps/MarineCave_Entrance/scripts.inc index 1ba4546e31..a075d2c30d 100644 --- a/data/maps/MarineCave_Entrance/scripts.inc +++ b/data/maps/MarineCave_Entrance/scripts.inc @@ -1,8 +1,8 @@ -MarineCave_Entrance_MapScripts:: @ 823AFD0 +MarineCave_Entrance_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, MarineCave_Entrance_OnResume .byte 0 -MarineCave_Entrance_OnResume: @ 823AFD6 +MarineCave_Entrance_OnResume: setdivewarp MAP_UNDERWATER_MARINE_CAVE, 255, 9, 6 end diff --git a/data/maps/MauvilleCity/scripts.inc b/data/maps/MauvilleCity/scripts.inc index 7107f4754a..748fbd3c79 100644 --- a/data/maps/MauvilleCity/scripts.inc +++ b/data/maps/MauvilleCity/scripts.inc @@ -2,11 +2,11 @@ .set LOCALID_WALLYS_UNCLE, 7 .set LOCALID_SCOTT, 11 -MauvilleCity_MapScripts:: @ 81DF385 +MauvilleCity_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MauvilleCity_OnTransition .byte 0 -MauvilleCity_OnTransition: @ 81DF38B +MauvilleCity_OnTransition: setflag FLAG_VISITED_MAUVILLE_CITY clearflag FLAG_FORCE_MIRAGE_TOWER_VISIBLE clearflag FLAG_HIDE_SLATEPORT_MUSEUM_POPULATION @@ -16,45 +16,45 @@ MauvilleCity_OnTransition: @ 81DF38B call_if_set FLAG_GOT_TM24_FROM_WATTSON, MauvilleCity_EventScript_MoveWattsonBackToGym end -MauvilleCity_EventScript_MoveWattsonBackToGym:: @ 81DF3A9 +MauvilleCity_EventScript_MoveWattsonBackToGym:: clearflag FLAG_HIDE_MAUVILLE_GYM_WATTSON setflag FLAG_HIDE_MAUVILLE_CITY_WATTSON setflag FLAG_WATTSON_REMATCH_AVAILABLE return -MauvilleCity_EventScript_Boy:: @ 81DF3B3 +MauvilleCity_EventScript_Boy:: msgbox MauvilleCity_Text_NurseHurtMonBackToHealth, MSGBOX_NPC end -MauvilleCity_EventScript_Maniac:: @ 81DF3BC +MauvilleCity_EventScript_Maniac:: msgbox MauvilleCity_Text_AllSortsOfPeopleComeThrough, MSGBOX_NPC end -MauvilleCity_EventScript_Woman:: @ 81DF3C5 +MauvilleCity_EventScript_Woman:: msgbox MauvilleCity_Text_RydelVeryGenerous, MSGBOX_NPC end -MauvilleCity_EventScript_RichBoy:: @ 81DF3CE +MauvilleCity_EventScript_RichBoy:: msgbox MauvilleCity_Text_PokemonCanJumpYouOnBike, MSGBOX_NPC end -MauvilleCity_EventScript_CitySign:: @ 81DF3D7 +MauvilleCity_EventScript_CitySign:: msgbox MauvilleCity_Text_CitySign, MSGBOX_SIGN end -MauvilleCity_EventScript_GymSign:: @ 81DF3E0 +MauvilleCity_EventScript_GymSign:: msgbox MauvilleCity_Text_GymSign, MSGBOX_SIGN end -MauvilleCity_EventScript_BikeShopSign:: @ 81DF3E9 +MauvilleCity_EventScript_BikeShopSign:: msgbox MauvilleCity_Text_BikeShopSign, MSGBOX_SIGN end -MauvilleCity_EventScript_GameCornerSign:: @ 81DF3F2 +MauvilleCity_EventScript_GameCornerSign:: msgbox MauvilleCity_Text_GameCornerSign, MSGBOX_SIGN end -MauvilleCity_EventScript_SchoolKidM:: @ 81DF3FB +MauvilleCity_EventScript_SchoolKidM:: lock faceplayer goto_if_set FLAG_TV_EXPLAINED, MauvilleCity_EventScript_TVExplained @@ -63,12 +63,12 @@ MauvilleCity_EventScript_SchoolKidM:: @ 81DF3FB release end -MauvilleCity_EventScript_TVExplained:: @ 81DF413 +MauvilleCity_EventScript_TVExplained:: msgbox MauvilleCity_Text_BeenCheckingOutTV, MSGBOX_DEFAULT release end -MauvilleCity_EventScript_WallysUncle:: @ 81DF41D +MauvilleCity_EventScript_WallysUncle:: lock faceplayer goto_if_set FLAG_DECLINED_WALLY_BATTLE_MAUVILLE, MauvilleCity_EventScript_UncleAskPlayerToBattleWally @@ -79,7 +79,7 @@ MauvilleCity_EventScript_WallysUncle:: @ 81DF41D release end -MauvilleCity_EventScript_UncleAskPlayerToBattleWally:: @ 81DF43D +MauvilleCity_EventScript_UncleAskPlayerToBattleWally:: msgbox MauvilleCity_Text_UncleCanYouBattleWally, MSGBOX_DEFAULT closemessage applymovement LOCALID_WALLYS_UNCLE, Common_Movement_FaceOriginalDirection @@ -87,7 +87,7 @@ MauvilleCity_EventScript_UncleAskPlayerToBattleWally:: @ 81DF43D release end -MauvilleCity_EventScript_Wally:: @ 81DF452 +MauvilleCity_EventScript_Wally:: lockall goto_if_set FLAG_DECLINED_WALLY_BATTLE_MAUVILLE, MauvilleCity_EventScript_WallyRequestBattleAgain applymovement LOCALID_WALLY, Common_Movement_WalkInPlaceFastestRight @@ -106,7 +106,7 @@ MauvilleCity_EventScript_Wally:: @ 81DF452 goto MauvilleCity_EventScript_BattleWallyPrompt end -MauvilleCity_EventScript_BattleWallyPrompt:: @ 81DF4AD +MauvilleCity_EventScript_BattleWallyPrompt:: compare VAR_RESULT, YES call_if_eq MauvilleCity_EventScript_BattleWally compare VAR_RESULT, NO @@ -117,7 +117,7 @@ MauvilleCity_EventScript_BattleWallyPrompt:: @ 81DF4AD case DIR_EAST, MauvilleCity_EventScript_WallyAndUncleExitEast end -MauvilleCity_EventScript_WallyAndUncleExitNorth:: @ 81DF4E0 +MauvilleCity_EventScript_WallyAndUncleExitNorth:: applymovement OBJ_EVENT_ID_PLAYER, MauvilleCity_Movement_PlayerWatchWallyExitNorth1 applymovement LOCALID_WALLY, MauvilleCity_Movement_WallyExitNorth1 applymovement LOCALID_WALLYS_UNCLE, MauvilleCity_Movement_WallysUncleExitNorth1 @@ -137,7 +137,7 @@ MauvilleCity_EventScript_WallyAndUncleExitNorth:: @ 81DF4E0 goto MauvilleCity_EventScript_DefeatedWally end -MauvilleCity_EventScript_WallyAndUncleExitEast:: @ 81DF53D +MauvilleCity_EventScript_WallyAndUncleExitEast:: applymovement OBJ_EVENT_ID_PLAYER, MauvilleCity_Movement_PlayerWatchWallyExitEast1 applymovement LOCALID_WALLY, MauvilleCity_Movement_WallyExitEast1 applymovement LOCALID_WALLYS_UNCLE, MauvilleCity_Movement_WallysUncleExitEast1 @@ -156,7 +156,7 @@ MauvilleCity_EventScript_WallyAndUncleExitEast:: @ 81DF53D goto MauvilleCity_EventScript_DefeatedWally end -MauvilleCity_EventScript_DefeatedWally:: @ 81DF593 +MauvilleCity_EventScript_DefeatedWally:: removeobject LOCALID_WALLY removeobject LOCALID_WALLYS_UNCLE clearflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLY @@ -181,32 +181,32 @@ MauvilleCity_EventScript_DefeatedWally:: @ 81DF593 releaseall end -MauvilleCity_EventScript_ScottApproachPlayerNorth:: @ 81DF5F3 +MauvilleCity_EventScript_ScottApproachPlayerNorth:: addobject LOCALID_SCOTT applymovement LOCALID_SCOTT, MauvilleCity_Movement_ScottApproachPlayerNorth waitmovement 0 return -MauvilleCity_EventScript_ScottApproachPlayerEast:: @ 81DF601 +MauvilleCity_EventScript_ScottApproachPlayerEast:: setobjectxyperm LOCALID_SCOTT, 12, 13 addobject LOCALID_SCOTT applymovement LOCALID_SCOTT, MauvilleCity_Movement_ScottApproachPlayerEast waitmovement 0 return -MauvilleCity_EventScript_ScottExitNorth:: @ 81DF616 +MauvilleCity_EventScript_ScottExitNorth:: applymovement OBJ_EVENT_ID_PLAYER, MauvilleCity_Movement_PlayerWatchScottExitNorth applymovement LOCALID_SCOTT, MauvilleCity_Movement_ScottExitNorth waitmovement 0 return -MauvilleCity_EventScript_ScottExitEast:: @ 81DF628 +MauvilleCity_EventScript_ScottExitEast:: applymovement OBJ_EVENT_ID_PLAYER, MauvilleCity_Movement_PlayerWatchScottExitEast applymovement LOCALID_SCOTT, MauvilleCity_Movement_ScottExitEast waitmovement 0 return -MauvilleCity_EventScript_BattleWally:: @ 81DF63A +MauvilleCity_EventScript_BattleWally:: msgbox MauvilleCity_Text_WallyHereICome, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_WALLY_MAUVILLE, MauvilleCity_Text_WallyDefeat applymovement LOCALID_WALLY, Common_Movement_WalkInPlaceFastestRight @@ -220,20 +220,20 @@ MauvilleCity_EventScript_BattleWally:: @ 81DF63A msgbox MauvilleCity_Text_UncleNoNeedToBeDown, MSGBOX_DEFAULT return -MauvilleCity_EventScript_DeclineWallyBattle:: @ 81DF683 +MauvilleCity_EventScript_DeclineWallyBattle:: setflag FLAG_DECLINED_WALLY_BATTLE_MAUVILLE msgbox MauvilleCity_Text_WallyMyUncleWontKnowImStrong, MSGBOX_DEFAULT release end -MauvilleCity_EventScript_WallyRequestBattleAgain:: @ 81DF690 +MauvilleCity_EventScript_WallyRequestBattleAgain:: applymovement LOCALID_WALLY, Common_Movement_FacePlayer waitmovement 0 msgbox MauvilleCity_Text_WallyPleaseBattleMe, MSGBOX_YESNO goto MauvilleCity_EventScript_BattleWallyPrompt end -MauvilleCity_Movement_WallyExitNorth1: @ 81DF6A8 +MauvilleCity_Movement_WallyExitNorth1: walk_left walk_left walk_down @@ -241,7 +241,7 @@ MauvilleCity_Movement_WallyExitNorth1: @ 81DF6A8 walk_left step_end -MauvilleCity_Movement_WallyExitEast1: @ 81DF6AE +MauvilleCity_Movement_WallyExitEast1: walk_down walk_down walk_left @@ -249,7 +249,7 @@ MauvilleCity_Movement_WallyExitEast1: @ 81DF6AE walk_left step_end -MauvilleCity_Movement_WallyExitNorth2: @ 81DF6B4 +MauvilleCity_Movement_WallyExitNorth2: delay_16 delay_16 walk_left @@ -263,7 +263,7 @@ MauvilleCity_Movement_WallyExitNorth2: @ 81DF6B4 delay_8 step_end -MauvilleCity_Movement_WallyExitEast2: @ 81DF6C0 +MauvilleCity_Movement_WallyExitEast2: delay_16 delay_16 walk_left @@ -277,41 +277,41 @@ MauvilleCity_Movement_WallyExitEast2: @ 81DF6C0 delay_8 step_end -MauvilleCity_Movement_PlayerWatchWallyExitNorth2: @ 81DF6CC +MauvilleCity_Movement_PlayerWatchWallyExitNorth2: delay_16 delay_8 walk_in_place_fastest_left step_end -MauvilleCity_Movement_PlayerWatchWallyExitEast2: @ 81DF6D0 +MauvilleCity_Movement_PlayerWatchWallyExitEast2: delay_16 delay_16 delay_16 walk_in_place_fastest_left step_end -MauvilleCity_Movement_PlayerWatchScottExitNorth: @ 81DF6D5 +MauvilleCity_Movement_PlayerWatchScottExitNorth: delay_16 walk_in_place_fastest_left step_end -MauvilleCity_Movement_PlayerWatchScottExitEast: @ 81DF6D8 +MauvilleCity_Movement_PlayerWatchScottExitEast: delay_16 delay_16 walk_in_place_fastest_left step_end -MauvilleCity_Movement_PlayerWatchWallyExitEast1: @ 81DF6DC +MauvilleCity_Movement_PlayerWatchWallyExitEast1: delay_16 walk_in_place_fastest_down step_end -MauvilleCity_Movement_PlayerWatchWallyExitNorth1: @ 81DF6DF +MauvilleCity_Movement_PlayerWatchWallyExitNorth1: delay_16 walk_in_place_fastest_left step_end -MauvilleCity_Movement_WallysUncleExitNorth1: @ 81DF6E2 +MauvilleCity_Movement_WallysUncleExitNorth1: walk_left walk_left walk_left @@ -319,7 +319,7 @@ MauvilleCity_Movement_WallysUncleExitNorth1: @ 81DF6E2 walk_down step_end -MauvilleCity_Movement_WallysUncleExitEast1: @ 81DF6E8 +MauvilleCity_Movement_WallysUncleExitEast1: walk_left walk_down walk_down @@ -327,25 +327,25 @@ MauvilleCity_Movement_WallysUncleExitEast1: @ 81DF6E8 walk_left step_end -MauvilleCity_Movement_PlayerFaceUncleNorth: @ 81DF6EE +MauvilleCity_Movement_PlayerFaceUncleNorth: delay_16 delay_8 delay_4 walk_in_place_fastest_down step_end -MauvilleCity_Movement_WallysUncleApproachPlayerNorth: @ 81DF6F3 +MauvilleCity_Movement_WallysUncleApproachPlayerNorth: walk_right walk_right walk_in_place_fastest_up step_end -MauvilleCity_Movement_WallysUncleApproachPlayerEast: @ 81DF6F7 +MauvilleCity_Movement_WallysUncleApproachPlayerEast: walk_right walk_up step_end -MauvilleCity_Movement_WallysUncleExitNorth2: @ 81DF6FA +MauvilleCity_Movement_WallysUncleExitNorth2: walk_left walk_left walk_left @@ -356,7 +356,7 @@ MauvilleCity_Movement_WallysUncleExitNorth2: @ 81DF6FA walk_left step_end -MauvilleCity_Movement_WallysUncleExitEast2: @ 81DF703 +MauvilleCity_Movement_WallysUncleExitEast2: walk_down walk_left walk_left @@ -368,7 +368,7 @@ MauvilleCity_Movement_WallysUncleExitEast2: @ 81DF703 walk_left step_end -MauvilleCity_Movement_ScottApproachPlayerNorth: @ 81DF70D +MauvilleCity_Movement_ScottApproachPlayerNorth: walk_up walk_up walk_up @@ -382,7 +382,7 @@ MauvilleCity_Movement_ScottApproachPlayerNorth: @ 81DF70D walk_in_place_fastest_up step_end -MauvilleCity_Movement_ScottApproachPlayerEast: @ 81DF719 +MauvilleCity_Movement_ScottApproachPlayerEast: walk_up walk_up walk_up @@ -396,7 +396,7 @@ MauvilleCity_Movement_ScottApproachPlayerEast: @ 81DF719 walk_up step_end -MauvilleCity_Movement_ScottExitNorth: @ 81DF725 +MauvilleCity_Movement_ScottExitNorth: walk_left walk_left walk_left @@ -408,7 +408,7 @@ MauvilleCity_Movement_ScottExitNorth: @ 81DF725 walk_left step_end -MauvilleCity_Movement_ScottExitEast: @ 81DF72F +MauvilleCity_Movement_ScottExitEast: walk_down walk_left walk_left @@ -421,7 +421,7 @@ MauvilleCity_Movement_ScottExitEast: @ 81DF72F walk_left step_end -MauvilleCity_EventScript_Wattson:: @ 81DF73A +MauvilleCity_EventScript_Wattson:: lock faceplayer goto_if_set FLAG_GOT_TM24_FROM_WATTSON, MauvilleCity_EventScript_ReceivedThunderbolt @@ -435,12 +435,12 @@ MauvilleCity_EventScript_Wattson:: @ 81DF73A release end -MauvilleCity_EventScript_BegunNewMauville:: @ 81DF77A +MauvilleCity_EventScript_BegunNewMauville:: msgbox MauvilleCity_Text_WattsonWontBeChallenge, MSGBOX_DEFAULT release end -MauvilleCity_EventScript_CompletedNewMauville:: @ 81DF784 +MauvilleCity_EventScript_CompletedNewMauville:: msgbox MauvilleCity_Text_WattsonThanksTakeTM, MSGBOX_DEFAULT giveitem ITEM_TM24 compare VAR_RESULT, FALSE @@ -450,12 +450,12 @@ MauvilleCity_EventScript_CompletedNewMauville:: @ 81DF784 release end -MauvilleCity_EventScript_ReceivedThunderbolt:: @ 81DF7B0 +MauvilleCity_EventScript_ReceivedThunderbolt:: msgbox MauvilleCity_Text_WattsonYoungTakeCharge, MSGBOX_DEFAULT release end -MauvilleCity_EventScript_RegisterWallyCall:: @ 81DF7BA +MauvilleCity_EventScript_RegisterWallyCall:: lockall pokenavcall MauvilleCity_Text_WallyPokenavCall waitmessage @@ -470,30 +470,30 @@ MauvilleCity_EventScript_RegisterWallyCall:: @ 81DF7BA releaseall end -MauvilleCity_Text_UncleHesTooPeppy: @ 81DF7DC +MauvilleCity_Text_UncleHesTooPeppy: .string "UNCLE: It's because of POKéMON that\n" .string "this boy's got more pep, I suppose…\l" .string "But he's become a bit too peppy…$" -MauvilleCity_Text_WallyWantToChallengeGym: @ 81DF845 +MauvilleCity_Text_WallyWantToChallengeGym: .string "WALLY: Aww, UNCLE, please?\p" .string "I want to challenge this GYM and see\n" .string "how much better I've become.\p" .string "Please? May I, please?$" -MauvilleCity_Text_UncleYourePushingIt: @ 81DF8B9 +MauvilleCity_Text_UncleYourePushingIt: .string "UNCLE: Now hold on, WALLY.\p" .string "Since you started living with POKéMON,\n" .string "you have grown quite a lot stronger.\p" .string "But don't you think you're pushing it\n" .string "to suddenly challenge a GYM?$" -MauvilleCity_Text_WallyWeCanBeatAnyone: @ 81DF963 +MauvilleCity_Text_WallyWeCanBeatAnyone: .string "WALLY: I'm not pushing it.\p" .string "If I combine forces with RALTS,\n" .string "we can beat anyone!$" -MauvilleCity_Text_WallyWillYouBattleMe: @ 81DF9B2 +MauvilleCity_Text_WallyWillYouBattleMe: .string "WALLY: Oh! Hi, {PLAYER}!\p" .string "I've gotten a lot stronger since\n" .string "we met.\p" @@ -502,43 +502,43 @@ MauvilleCity_Text_WallyWillYouBattleMe: @ 81DF9B2 .string "{PLAYER}, please, will you have\n" .string "a battle with me?$" -MauvilleCity_Text_WallyMyUncleWontKnowImStrong: @ 81DFA4A +MauvilleCity_Text_WallyMyUncleWontKnowImStrong: .string "WALLY: Oh… If you won't battle me,\n" .string "{PLAYER}, my UNCLE won't know that I've\l" .string "become really strong.$" -MauvilleCity_Text_UncleCanYouBattleWally: @ 81DFAA5 +MauvilleCity_Text_UncleCanYouBattleWally: .string "UNCLE: {PLAYER}{KUN}, was it?\n" .string "On WALLY's behalf, can I ask you to\l" .string "battle with him just this once?\p" .string "I don't think he's going to listen to\n" .string "any reason the way he is now.$" -MauvilleCity_Text_WallyPleaseBattleMe: @ 81DFB42 +MauvilleCity_Text_WallyPleaseBattleMe: .string "WALLY: {PLAYER}, please!\n" .string "Battle with me, please.$" -MauvilleCity_Text_WallyHereICome: @ 81DFB6D +MauvilleCity_Text_WallyHereICome: .string "WALLY: {PLAYER}, thank you.\p" .string "Okay… Here I come!$" -MauvilleCity_Text_WallyDefeat: @ 81DFB96 +MauvilleCity_Text_WallyDefeat: .string "WALLY: … … … … … … …\p" .string "… … … … … … … …\p" .string "I lost…$" -MauvilleCity_Text_WallyIllGoBackToVerdanturf: @ 81DFBC3 +MauvilleCity_Text_WallyIllGoBackToVerdanturf: .string "WALLY: UNCLE…\n" .string "I'll go back to VERDANTURF…$" -MauvilleCity_Text_ThankYouNotEnoughToBattle: @ 81DFBED +MauvilleCity_Text_ThankYouNotEnoughToBattle: .string "{PLAYER}, thank you.\n" .string "Being a TRAINER is tough, isn't it?\p" .string "It's not enough just to have POKéMON\n" .string "and make them battle. That isn't what\l" .string "being a real TRAINER is about.$" -MauvilleCity_Text_UncleNoNeedToBeDown: @ 81DFC8A +MauvilleCity_Text_UncleNoNeedToBeDown: .string "UNCLE: WALLY, there's no need to be so\n" .string "down on yourself.\p" .string "Why, what's keeping you from becoming\n" @@ -546,7 +546,7 @@ MauvilleCity_Text_UncleNoNeedToBeDown: @ 81DFC8A .string "Come on, let's go home.\n" .string "Everyone's waiting for you.$" -MauvilleCity_Text_UncleVisitUsSometime: @ 81DFD34 +MauvilleCity_Text_UncleVisitUsSometime: .string "UNCLE: {PLAYER}{KUN}, it just dawned on me\n" .string "that you must be the TRAINER who kept\l" .string "an eye out for WALLY when he caught\l" @@ -556,7 +556,7 @@ MauvilleCity_Text_UncleVisitUsSometime: @ 81DFD34 .string "I'm sure WALLY would enjoy it.$" -MauvilleCity_Text_WallyPokenavCall: @ 81DFDFB +MauvilleCity_Text_WallyPokenavCall: .string "… … … … … …\n" .string "… … … … … Beep!\p" .string "WALLY: Oh, hello, {PLAYER}!\p" @@ -567,11 +567,11 @@ MauvilleCity_Text_WallyPokenavCall: @ 81DFDFB .string "… … … … … …\n" .string "… … … … … Click!$" -MauvilleCity_Text_RegisteredWally: @ 81DFEB4 +MauvilleCity_Text_RegisteredWally: .string "Registered WALLY\n" .string "in the POKéNAV.$" -MauvilleCity_Text_ScottYouDidntHoldBack: @ 81DFED5 +MauvilleCity_Text_ScottYouDidntHoldBack: .string "SCOTT: Hehe…\n" .string "I was watching that match!\p" .string "You're friends with that boy WALLY,\n" @@ -584,7 +584,7 @@ MauvilleCity_Text_ScottYouDidntHoldBack: @ 81DFED5 .string "… … … … … …\n" .string "I'll be cheering for you!$" -MauvilleCity_Text_WattsonNeedFavorTakeKey: @ 81DFFE4 +MauvilleCity_Text_WattsonNeedFavorTakeKey: .string "WATTSON: Oh, {PLAYER}{KUN}!\n" .string "You look like you have a lot of zip!\l" .string "That's a good thing, wahahahaha!\p" @@ -599,7 +599,7 @@ MauvilleCity_Text_WattsonNeedFavorTakeKey: @ 81DFFE4 .string "Here, this is the KEY to get into\n" .string "NEW MAUVILLE.$" -MauvilleCity_Text_WattsonWontBeChallenge: @ 81E0154 +MauvilleCity_Text_WattsonWontBeChallenge: .string "WATTSON: Don't you worry about it.\n" .string "It won't be a challenge to you.\p" .string "The entrance to NEW MAUVILLE is just\n" @@ -607,7 +607,7 @@ MauvilleCity_Text_WattsonWontBeChallenge: @ 81E0154 .string "That's it, then, you have my trust!\n" .string "Wahahahaha!$" -MauvilleCity_Text_WattsonThanksTakeTM: @ 81E020E +MauvilleCity_Text_WattsonThanksTakeTM: .string "WATTSON: Wahahahaha!\p" .string "I knew it, {PLAYER}{KUN}! I knew I'd made\n" .string "the right choice asking you!\p" @@ -615,51 +615,51 @@ MauvilleCity_Text_WattsonThanksTakeTM: @ 81E020E .string "THUNDERBOLT!\p" .string "Go on, you've earned it!$" -MauvilleCity_Text_WattsonYoungTakeCharge: @ 81E02AA +MauvilleCity_Text_WattsonYoungTakeCharge: .string "WATTSON: Wahahahaha!\p" .string "It pleases me to no end to see\n" .string "the young step up and take charge!$" -MauvilleCity_Text_NurseHurtMonBackToHealth: @ 81E0301 +MauvilleCity_Text_NurseHurtMonBackToHealth: .string "You know, it's cool to have POKéMON\n" .string "battles and stuff…\p" .string "But if your POKéMON gets hurt,\n" .string "you have to nurse it back to health.$" -MauvilleCity_Text_AllSortsOfPeopleComeThrough: @ 81E037C +MauvilleCity_Text_AllSortsOfPeopleComeThrough: .string "The roads of this town stretch north\n" .string "and south, and east and west.\p" .string "Because of that, we get all sorts of\n" .string "people coming through.$" -MauvilleCity_Text_RydelVeryGenerous: @ 81E03FB +MauvilleCity_Text_RydelVeryGenerous: .string "Have you been to RYDEL'S CYCLES yet?\p" .string "RYDEL, the owner, is a very generous\n" .string "man.$" -MauvilleCity_Text_PokemonCanJumpYouOnBike: @ 81E044A +MauvilleCity_Text_PokemonCanJumpYouOnBike: .string "Even if you're riding a BIKE,\n" .string "wild POKéMON could jump you.$" -MauvilleCity_Text_CitySign: @ 81E0485 +MauvilleCity_Text_CitySign: .string "MAUVILLE CITY\n" .string "“The bright and shiny city of fun!”$" -MauvilleCity_Text_GymSign: @ 81E04B7 +MauvilleCity_Text_GymSign: .string "MAUVILLE CITY POKéMON GYM\n" .string "LEADER: WATTSON\l" .string "“The cheerfully electrifying man!”$" -MauvilleCity_Text_BikeShopSign: @ 81E0504 +MauvilleCity_Text_BikeShopSign: .string "“Ride in gravel and shake up your\n" .string "soul!”\l" .string "RYDEL'S CYCLES$" -MauvilleCity_Text_GameCornerSign: @ 81E053C +MauvilleCity_Text_GameCornerSign: .string "“The play spot for all!”\n" .string "MAUVILLE GAME CORNER$" -MauvilleCity_Text_ExplainTV: @ 81E056A +MauvilleCity_Text_ExplainTV: .string "Hi, do you check out TV at all?\p" .string "They've added a bunch of cool new\n" .string "shows recently.\p" @@ -671,5 +671,5 @@ MauvilleCity_Text_ExplainTV: @ 81E056A .string "That's why I think you should check\n" .string "out TVs whenever you can.$" -MauvilleCity_Text_BeenCheckingOutTV: @ 81E0699 +MauvilleCity_Text_BeenCheckingOutTV: .string "Hi, have you been checking out TVs?$" diff --git a/data/maps/MauvilleCity_BikeShop/scripts.inc b/data/maps/MauvilleCity_BikeShop/scripts.inc index ffde9583b6..45efbe8f3b 100644 --- a/data/maps/MauvilleCity_BikeShop/scripts.inc +++ b/data/maps/MauvilleCity_BikeShop/scripts.inc @@ -1,7 +1,7 @@ -MauvilleCity_BikeShop_MapScripts:: @ 820EBBB +MauvilleCity_BikeShop_MapScripts:: .byte 0 -MauvilleCity_BikeShop_EventScript_Rydel:: @ 820EBBC +MauvilleCity_BikeShop_EventScript_Rydel:: lock faceplayer goto_if_set FLAG_RECEIVED_BIKE, MauvilleCity_BikeShop_EventScript_AskSwitchBikes @@ -14,7 +14,7 @@ MauvilleCity_BikeShop_EventScript_Rydel:: @ 820EBBC goto_if_eq MauvilleCity_BikeShop_EventScript_NotFar end -MauvilleCity_BikeShop_EventScript_SkipGreeting:: @ 820EBF7 +MauvilleCity_BikeShop_EventScript_SkipGreeting:: msgbox MauvilleCity_BikeShop_Text_DidYouComeFromFarAway, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq MauvilleCity_BikeShop_EventScript_YesFar @@ -22,45 +22,45 @@ MauvilleCity_BikeShop_EventScript_SkipGreeting:: @ 820EBF7 goto_if_eq MauvilleCity_BikeShop_EventScript_NotFar end -MauvilleCity_BikeShop_EventScript_ChooseBike:: @ 820EC16 +MauvilleCity_BikeShop_EventScript_ChooseBike:: message MauvilleCity_BikeShop_Text_ExplainBikesChooseWhichOne waitmessage - multichoice 21, 8, MULTI_BIKE, 1 + multichoice 21, 8, MULTI_BIKE, TRUE switch VAR_RESULT case 0, MauvilleCity_BikeShop_EventScript_GetMachBike case 1, MauvilleCity_BikeShop_EventScript_GetAcroBike end -MauvilleCity_BikeShop_EventScript_NotFar:: @ 820EC3D +MauvilleCity_BikeShop_EventScript_NotFar:: setflag FLAG_DECLINED_BIKE msgbox MauvilleCity_BikeShop_Text_GuessYouDontNeedBike, MSGBOX_DEFAULT release end -MauvilleCity_BikeShop_EventScript_YesFar:: @ 820EC4A +MauvilleCity_BikeShop_EventScript_YesFar:: setflag FLAG_RECEIVED_BIKE goto MauvilleCity_BikeShop_EventScript_ChooseBike end -MauvilleCity_BikeShop_EventScript_GetMachBike:: @ 820EC53 +MauvilleCity_BikeShop_EventScript_GetMachBike:: msgbox MauvilleCity_BikeShop_Text_ChoseMachBike, MSGBOX_DEFAULT giveitem ITEM_MACH_BIKE goto MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes end -MauvilleCity_BikeShop_EventScript_GetAcroBike:: @ 820EC6D +MauvilleCity_BikeShop_EventScript_GetAcroBike:: msgbox MauvilleCity_BikeShop_Text_ChoseAcroBike, MSGBOX_DEFAULT giveitem ITEM_ACRO_BIKE goto MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes end -MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes:: @ 820EC87 +MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes:: msgbox MauvilleCity_BikeShop_Text_ComeBackToSwitchBikes, MSGBOX_DEFAULT special SwapRegisteredBike release end -MauvilleCity_BikeShop_EventScript_AskSwitchBikes:: @ 820EC94 +MauvilleCity_BikeShop_EventScript_AskSwitchBikes:: msgbox MauvilleCity_BikeShop_Text_WantToSwitchBikes, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq MauvilleCity_BikeShop_EventScript_SwitchBikes @@ -69,7 +69,7 @@ MauvilleCity_BikeShop_EventScript_AskSwitchBikes:: @ 820EC94 end @ If the player does not have a bike on them Rydel assumes its stored in the PC -MauvilleCity_BikeShop_EventScript_SwitchBikes:: @ 820ECB3 +MauvilleCity_BikeShop_EventScript_SwitchBikes:: msgbox MauvilleCity_BikeShop_Text_IllSwitchBikes, MSGBOX_DEFAULT checkitem ITEM_ACRO_BIKE, 1 compare VAR_RESULT, TRUE @@ -81,12 +81,12 @@ MauvilleCity_BikeShop_EventScript_SwitchBikes:: @ 820ECB3 release end -MauvilleCity_BikeShop_EventScript_KeepBike:: @ 820ECE5 +MauvilleCity_BikeShop_EventScript_KeepBike:: msgbox MauvilleCity_BikeShop_Text_HappyYouLikeIt, MSGBOX_DEFAULT release end -MauvilleCity_BikeShop_EventScript_SwitchAcroForMach:: @ 820ECEF +MauvilleCity_BikeShop_EventScript_SwitchAcroForMach:: incrementgamestat GAME_STAT_TRADED_BIKES msgbox MauvilleCity_BikeShop_Text_ExchangedAcroForMach, MSGBOX_DEFAULT removeitem ITEM_ACRO_BIKE @@ -94,7 +94,7 @@ MauvilleCity_BikeShop_EventScript_SwitchAcroForMach:: @ 820ECEF goto MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes end -MauvilleCity_BikeShop_EventScript_SwitchMachForAcro:: @ 820ED10 +MauvilleCity_BikeShop_EventScript_SwitchMachForAcro:: incrementgamestat GAME_STAT_TRADED_BIKES msgbox MauvilleCity_BikeShop_Text_ExchangedMachForAcro, MSGBOX_DEFAULT removeitem ITEM_MACH_BIKE @@ -102,18 +102,18 @@ MauvilleCity_BikeShop_EventScript_SwitchMachForAcro:: @ 820ED10 goto MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes end -MauvilleCity_BikeShop_EventScript_Assistant:: @ 820ED31 +MauvilleCity_BikeShop_EventScript_Assistant:: msgbox MauvilleCity_BikeShop_Text_HandbooksAreInBack, MSGBOX_NPC end -MauvilleCity_BikeShop_EventScript_MachBikeHandbook:: @ 820ED3A +MauvilleCity_BikeShop_EventScript_MachBikeHandbook:: message MauvilleCity_BikeShop_Text_MachHandbookWhichPage waitmessage goto MauvilleCity_BikeShop_EventScript_ChooseMachHandbookPage end -MauvilleCity_BikeShop_EventScript_ChooseMachHandbookPage:: @ 820ED46 - multichoice 0, 0, MULTI_MACH_BIKE_INFO, 0 +MauvilleCity_BikeShop_EventScript_ChooseMachHandbookPage:: + multichoice 0, 0, MULTI_MACH_BIKE_INFO, FALSE switch VAR_RESULT case 0, MauvilleCity_BikeShop_EventScript_HowToRide case 1, MauvilleCity_BikeShop_EventScript_HowToTurn @@ -122,36 +122,36 @@ MauvilleCity_BikeShop_EventScript_ChooseMachHandbookPage:: @ 820ED46 case MULTI_B_PRESSED, MauvilleCity_BikeShop_EventScript_ExitMachHandbook end -MauvilleCity_BikeShop_EventScript_HowToRide:: @ 820ED88 +MauvilleCity_BikeShop_EventScript_HowToRide:: message MauvilleCity_BikeShop_Text_HowToRideMachBike waitmessage goto MauvilleCity_BikeShop_EventScript_ChooseMachHandbookPage end -MauvilleCity_BikeShop_EventScript_HowToTurn:: @ 820ED94 +MauvilleCity_BikeShop_EventScript_HowToTurn:: message MauvilleCity_BikeShop_Text_HowToTurnMachBike waitmessage goto MauvilleCity_BikeShop_EventScript_ChooseMachHandbookPage end -MauvilleCity_BikeShop_EventScript_SandySlopes:: @ 820EDA0 +MauvilleCity_BikeShop_EventScript_SandySlopes:: message MauvilleCity_BikeShop_Text_SandySlopes waitmessage goto MauvilleCity_BikeShop_EventScript_ChooseMachHandbookPage end -MauvilleCity_BikeShop_EventScript_ExitMachHandbook:: @ 820EDAC +MauvilleCity_BikeShop_EventScript_ExitMachHandbook:: release end -MauvilleCity_BikeShop_EventScript_AcroBikeHandbook:: @ 820EDAE +MauvilleCity_BikeShop_EventScript_AcroBikeHandbook:: message MauvilleCity_BikeShop_Text_AcroHandbookWhichPage waitmessage goto MauvilleCity_BikeShop_EventScript_ChooseAcroHandbookPage end -MauvilleCity_BikeShop_EventScript_ChooseAcroHandbookPage:: @ 820EDBA - multichoice 0, 0, MULTI_ACRO_BIKE_INFO, 0 +MauvilleCity_BikeShop_EventScript_ChooseAcroHandbookPage:: + multichoice 0, 0, MULTI_ACRO_BIKE_INFO, FALSE switch VAR_RESULT case 0, MauvilleCity_BikeShop_EventScript_Wheelies case 1, MauvilleCity_BikeShop_EventScript_BunnyHops @@ -160,45 +160,45 @@ MauvilleCity_BikeShop_EventScript_ChooseAcroHandbookPage:: @ 820EDBA case MULTI_B_PRESSED, MauvilleCity_BikeShop_EventScript_ExitAcroHandbook end -MauvilleCity_BikeShop_EventScript_Wheelies:: @ 820EDFC +MauvilleCity_BikeShop_EventScript_Wheelies:: message MauvilleCity_BikeShop_Text_Wheelies waitmessage goto MauvilleCity_BikeShop_EventScript_ChooseAcroHandbookPage end -MauvilleCity_BikeShop_EventScript_BunnyHops:: @ 820EE08 +MauvilleCity_BikeShop_EventScript_BunnyHops:: message MauvilleCity_BikeShop_Text_BunnyHops waitmessage goto MauvilleCity_BikeShop_EventScript_ChooseAcroHandbookPage end -MauvilleCity_BikeShop_EventScript_Jumps:: @ 820EE14 +MauvilleCity_BikeShop_EventScript_Jumps:: message MauvilleCity_BikeShop_Text_Jumps waitmessage goto MauvilleCity_BikeShop_EventScript_ChooseAcroHandbookPage end -MauvilleCity_BikeShop_EventScript_ExitAcroHandbook:: @ 820EE20 +MauvilleCity_BikeShop_EventScript_ExitAcroHandbook:: release end -MauvilleCity_BikeShop_Text_RydelGreeting: @ 820EE22 +MauvilleCity_BikeShop_Text_RydelGreeting: .string "Well, well, what have we here?\n" .string "A most energetic customer!\p" .string "Me? You may call me RYDEL.\n" .string "I'm the owner of this cycle shop.$" -MauvilleCity_BikeShop_Text_DidYouComeFromFarAway: @ 820EE99 +MauvilleCity_BikeShop_Text_DidYouComeFromFarAway: .string "RYDEL: Your RUNNING SHOES…\n" .string "They're awfully filthy.\p" .string "Did you come from far away?$" -MauvilleCity_BikeShop_Text_GuessYouDontNeedBike: @ 820EEE8 +MauvilleCity_BikeShop_Text_GuessYouDontNeedBike: .string "RYDEL: Is that right?\p" .string "Then, I guess you have no need for\n" .string "any of my BIKES.$" -MauvilleCity_BikeShop_Text_ExplainBikesChooseWhichOne: @ 820EF32 +MauvilleCity_BikeShop_Text_ExplainBikesChooseWhichOne: .string "RYDEL: Hm, hm… … … … …\p" .string "You're saying that you came all this\n" .string "way from LITTLEROOT?\p" @@ -222,37 +222,37 @@ MauvilleCity_BikeShop_Text_ExplainBikesChooseWhichOne: @ 820EF32 .string "have whichever one you like!\p" .string "Which one will you choose?$" -MauvilleCity_BikeShop_Text_ChoseMachBike: @ 820F18D +MauvilleCity_BikeShop_Text_ChoseMachBike: .string "{PLAYER} chose the MACH BIKE.$" -MauvilleCity_BikeShop_Text_ChoseAcroBike: @ 820F1A5 +MauvilleCity_BikeShop_Text_ChoseAcroBike: .string "{PLAYER} chose the ACRO BIKE.$" -MauvilleCity_BikeShop_Text_ComeBackToSwitchBikes: @ 820F1BD +MauvilleCity_BikeShop_Text_ComeBackToSwitchBikes: .string "RYDEL: If you get the urge to switch\n" .string "BIKES, just come see me!$" -MauvilleCity_BikeShop_Text_WantToSwitchBikes: @ 820F1FB +MauvilleCity_BikeShop_Text_WantToSwitchBikes: .string "RYDEL: Oh? Were you thinking about\n" .string "switching BIKES?$" -MauvilleCity_BikeShop_Text_IllSwitchBikes: @ 820F22F +MauvilleCity_BikeShop_Text_IllSwitchBikes: .string "RYDEL: Okay, no problem!\n" .string "I'll switch BIKES for you!$" -MauvilleCity_BikeShop_Text_ExchangedMachForAcro: @ 820F263 +MauvilleCity_BikeShop_Text_ExchangedMachForAcro: .string "{PLAYER} got the MACH BIKE exchanged\n" .string "for an ACRO BIKE.$" -MauvilleCity_BikeShop_Text_ExchangedAcroForMach: @ 820F294 +MauvilleCity_BikeShop_Text_ExchangedAcroForMach: .string "{PLAYER} got the ACRO BIKE exchanged\n" .string "for a MACH BIKE.$" -MauvilleCity_BikeShop_Text_HappyYouLikeIt: @ 820F2C4 +MauvilleCity_BikeShop_Text_HappyYouLikeIt: .string "RYDEL: Good, good!\n" .string "I'm happy that you like it!$" -MauvilleCity_BikeShop_Text_OhYourBikeIsInPC: @ 820F2F3 +MauvilleCity_BikeShop_Text_OhYourBikeIsInPC: .string "Oh? What happened to that BIKE\n" .string "I gave you?\p" .string "Oh, I get it, you stored it using your PC.\p" @@ -261,18 +261,18 @@ MauvilleCity_BikeShop_Text_OhYourBikeIsInPC: @ 820F2F3 .string "May the wind always be at your back\n" .string "on your adventure!$" -MauvilleCity_BikeShop_Text_HandbooksAreInBack: @ 820F3C3 +MauvilleCity_BikeShop_Text_HandbooksAreInBack: .string "I'm learning about BIKES while\n" .string "I work here.\p" .string "If you need advice on how to ride your\n" .string "BIKE, there're a couple handbooks in\l" .string "the back.$" -MauvilleCity_BikeShop_Text_MachHandbookWhichPage: @ 820F445 +MauvilleCity_BikeShop_Text_MachHandbookWhichPage: .string "It's a handbook on the MACH BIKE.\p" .string "Which page do you want to read?$" -MauvilleCity_BikeShop_Text_HowToRideMachBike: @ 820F487 +MauvilleCity_BikeShop_Text_HowToRideMachBike: .string "A BIKE moves in the direction that\n" .string "the + Control Pad is pressed.\p" .string "It will speed up once it gets rolling.\p" @@ -280,7 +280,7 @@ MauvilleCity_BikeShop_Text_HowToRideMachBike: @ 820F487 .string "The BIKE will slow to a stop.\p" .string "Want to read a different page?$" -MauvilleCity_BikeShop_Text_HowToTurnMachBike: @ 820F550 +MauvilleCity_BikeShop_Text_HowToTurnMachBike: .string "A MACH BIKE is speedy, but it can't\n" .string "stop very quickly.\p" .string "It gets a little tricky to get around\n" @@ -289,7 +289,7 @@ MauvilleCity_BikeShop_Text_HowToTurnMachBike: @ 820F550 .string "before the corner and slow down.\p" .string "Want to read a different page?$" -MauvilleCity_BikeShop_Text_SandySlopes: @ 820F61A +MauvilleCity_BikeShop_Text_SandySlopes: .string "There are small sandy slopes\n" .string "throughout the HOENN region.\p" .string "The loose, crumbly sand makes it\n" @@ -298,11 +298,11 @@ MauvilleCity_BikeShop_Text_SandySlopes: @ 820F61A .string "zip up a sandy slope.\p" .string "Want to read a different page?$" -MauvilleCity_BikeShop_Text_AcroHandbookWhichPage: @ 820F6ED +MauvilleCity_BikeShop_Text_AcroHandbookWhichPage: .string "It's a handbook on the ACRO BIKE.\p" .string "Which page do you want to read?$" -MauvilleCity_BikeShop_Text_Wheelies: @ 820F72F +MauvilleCity_BikeShop_Text_Wheelies: .string "Press the B Button while riding,\n" .string "and the front wheel lifts up.\p" .string "You can zip around with the front\n" @@ -310,14 +310,14 @@ MauvilleCity_BikeShop_Text_Wheelies: @ 820F72F .string "This technique is called a wheelie.\p" .string "Want to read a different page?$" -MauvilleCity_BikeShop_Text_BunnyHops: @ 820F7F5 +MauvilleCity_BikeShop_Text_BunnyHops: .string "Keeping the B Button pressed,\n" .string "your BIKE can hop on the spot.\p" .string "This technique is called a bunny hop.\p" .string "You can ride while hopping, too.\p" .string "Want to read a different page?$" -MauvilleCity_BikeShop_Text_Jumps: @ 820F898 +MauvilleCity_BikeShop_Text_Jumps: .string "Press the B Button and the + Control\n" .string "Pad at the same time to jump.\p" .string "Press the + Control Pad to the side\n" diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index ad3f7a407f..896dfa6807 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -1,4 +1,4 @@ -MauvilleCity_GameCorner_MapScripts:: @ 820FBB8 +MauvilleCity_GameCorner_MapScripts:: .byte 0 @ Game Corner prices @@ -12,7 +12,7 @@ MauvilleCity_GameCorner_MapScripts:: @ 820FBB8 .set COINS_PRICE_50, 1000 .set COINS_PRICE_500, 10000 -MauvilleCity_GameCorner_EventScript_CoinsClerk:: @ 820FBB9 +MauvilleCity_GameCorner_EventScript_CoinsClerk:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_ThisIsMauvilleGameCorner, MSGBOX_DEFAULT @@ -25,8 +25,8 @@ MauvilleCity_GameCorner_EventScript_CoinsClerk:: @ 820FBB9 showcoinsbox 1, 6 goto MauvilleCity_GameCorner_EventScript_ChooseCoinsDefault50 -MauvilleCity_GameCorner_EventScript_ChooseCoinsDefault50:: @ 820FBE5 - multichoicedefault 15, 0, MULTI_GAME_CORNER_COINS, 0, 0 +MauvilleCity_GameCorner_EventScript_ChooseCoinsDefault50:: + multichoicedefault 15, 0, MULTI_GAME_CORNER_COINS, 0, FALSE switch VAR_RESULT case 0, MauvilleCity_GameCorner_EventScript_Buy50Coins case 1, MauvilleCity_GameCorner_EventScript_Buy500Coins @@ -34,15 +34,15 @@ MauvilleCity_GameCorner_EventScript_ChooseCoinsDefault50:: @ 820FBE5 end @ Unused -MauvilleCity_GameCorner_EventScript_ChooseCoinsDefault500:: @ 820FC0C - multichoicedefault 15, 0, MULTI_GAME_CORNER_COINS, 1, 0 +MauvilleCity_GameCorner_EventScript_ChooseCoinsDefault500:: + multichoicedefault 15, 0, MULTI_GAME_CORNER_COINS, 1, FALSE switch VAR_RESULT case 0, MauvilleCity_GameCorner_EventScript_Buy50Coins case 1, MauvilleCity_GameCorner_EventScript_Buy500Coins goto MauvilleCity_GameCorner_EventScript_CancelBuyCoins end -MauvilleCity_GameCorner_EventScript_Buy50Coins:: @ 820FC33 +MauvilleCity_GameCorner_EventScript_Buy50Coins:: checkcoins VAR_TEMP_1 compare VAR_TEMP_1, (MAX_COINS + 1 - 50) goto_if_ge MauvilleCity_GameCorner_EventScript_NoRoomForCoins @@ -60,7 +60,7 @@ MauvilleCity_GameCorner_EventScript_Buy50Coins:: @ 820FC33 release end -MauvilleCity_GameCorner_EventScript_Buy500Coins:: @ 820FC75 +MauvilleCity_GameCorner_EventScript_Buy500Coins:: checkcoins VAR_TEMP_1 compare VAR_TEMP_1, (MAX_COINS + 1 - 500) goto_if_ge MauvilleCity_GameCorner_EventScript_NoRoomForCoins @@ -78,33 +78,33 @@ MauvilleCity_GameCorner_EventScript_Buy500Coins:: @ 820FC75 release end -MauvilleCity_GameCorner_EventScript_NeedCoinCase:: @ 820FCB7 +MauvilleCity_GameCorner_EventScript_NeedCoinCase:: msgbox MauvilleCity_GameCorner_Text_NeedCoinCaseForCoins, MSGBOX_DEFAULT release end -MauvilleCity_GameCorner_EventScript_NotEnoughMoney:: @ 820FCC1 +MauvilleCity_GameCorner_EventScript_NotEnoughMoney:: msgbox MauvilleCity_GameCorner_Text_DontHaveEnoughMoney, MSGBOX_DEFAULT hidemoneybox hidecoinsbox 0, 5 release end -MauvilleCity_GameCorner_EventScript_CancelBuyCoins:: @ 820FCD1 +MauvilleCity_GameCorner_EventScript_CancelBuyCoins:: msgbox MauvilleCity_GameCorner_Text_DontNeedCoinsThen, MSGBOX_DEFAULT hidemoneybox hidecoinsbox 0, 5 release end -MauvilleCity_GameCorner_EventScript_NoRoomForCoins:: @ 820FCE1 +MauvilleCity_GameCorner_EventScript_NoRoomForCoins:: msgbox MauvilleCity_GameCorner_Text_CoinCaseIsFull, MSGBOX_DEFAULT hidemoneybox hidecoinsbox 0, 5 release end -MauvilleCity_GameCorner_EventScript_PrizeCornerDolls:: @ 820FCF1 +MauvilleCity_GameCorner_EventScript_PrizeCornerDolls:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_ExchangeCoinsForPrizes, MSGBOX_DEFAULT @@ -114,20 +114,20 @@ MauvilleCity_GameCorner_EventScript_PrizeCornerDolls:: @ 820FCF1 release end -MauvilleCity_GameCorner_EventScript_ChooseDollPrizeMessage:: @ 820FD0D +MauvilleCity_GameCorner_EventScript_ChooseDollPrizeMessage:: message MauvilleCity_GameCorner_Text_WhichPrize waitmessage setvar VAR_TEMP_1, 0 showcoinsbox 1, 1 goto MauvilleCity_GameCorner_EventScript_ChooseDollPrize -MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize:: @ 820FD20 +MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize:: message MauvilleCity_GameCorner_Text_WhichPrize waitmessage goto MauvilleCity_GameCorner_EventScript_ChooseDollPrize -MauvilleCity_GameCorner_EventScript_ChooseDollPrize:: @ 820FD2B - multichoice 12, 0, MULTI_GAME_CORNER_DOLLS, 0 +MauvilleCity_GameCorner_EventScript_ChooseDollPrize:: + multichoice 12, 0, MULTI_GAME_CORNER_DOLLS, FALSE switch VAR_RESULT case 0, MauvilleCity_GameCorner_EventScript_TreeckoDoll case 1, MauvilleCity_GameCorner_EventScript_TorchicDoll @@ -136,22 +136,22 @@ MauvilleCity_GameCorner_EventScript_ChooseDollPrize:: @ 820FD2B goto MauvilleCity_GameCorner_EventScript_CancelDollSelect end -MauvilleCity_GameCorner_EventScript_TreeckoDoll:: @ 820FD67 +MauvilleCity_GameCorner_EventScript_TreeckoDoll:: setvar VAR_TEMP_1, 1 bufferdecorationname 0, DECOR_TREECKO_DOLL goto MauvilleCity_GameCorner_EventScript_ConfirmDollPrize -MauvilleCity_GameCorner_EventScript_TorchicDoll:: @ 820FD75 +MauvilleCity_GameCorner_EventScript_TorchicDoll:: setvar VAR_TEMP_1, 2 bufferdecorationname 0, DECOR_TORCHIC_DOLL goto MauvilleCity_GameCorner_EventScript_ConfirmDollPrize -MauvilleCity_GameCorner_EventScript_MudkipDoll:: @ 820FD83 +MauvilleCity_GameCorner_EventScript_MudkipDoll:: setvar VAR_TEMP_1, 3 bufferdecorationname 0, DECOR_MUDKIP_DOLL goto MauvilleCity_GameCorner_EventScript_ConfirmDollPrize -MauvilleCity_GameCorner_EventScript_ConfirmDollPrize:: @ 820FD91 +MauvilleCity_GameCorner_EventScript_ConfirmDollPrize:: msgbox MauvilleCity_GameCorner_Text_SoYourChoiceIsX, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq MauvilleCity_GameCorner_EventScript_CancelDollSelect @@ -161,7 +161,7 @@ MauvilleCity_GameCorner_EventScript_ConfirmDollPrize:: @ 820FD91 case 3, MauvilleCity_GameCorner_EventScript_BuyMudkipDoll end -MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll:: @ 820FDCB +MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll:: checkcoins VAR_TEMP_2 compare VAR_TEMP_2, DOLL_COINS goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll @@ -177,7 +177,7 @@ MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll:: @ 820FDCB goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end -MauvilleCity_GameCorner_EventScript_BuyTorchicDoll:: @ 820FE05 +MauvilleCity_GameCorner_EventScript_BuyTorchicDoll:: checkcoins VAR_TEMP_2 compare VAR_TEMP_2, DOLL_COINS goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll @@ -193,7 +193,7 @@ MauvilleCity_GameCorner_EventScript_BuyTorchicDoll:: @ 820FE05 goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end -MauvilleCity_GameCorner_EventScript_BuyMudkipDoll:: @ 820FE3F +MauvilleCity_GameCorner_EventScript_BuyMudkipDoll:: checkcoins VAR_TEMP_2 compare VAR_TEMP_2, DOLL_COINS goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll @@ -209,23 +209,23 @@ MauvilleCity_GameCorner_EventScript_BuyMudkipDoll:: @ 820FE3F goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end -MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll:: @ 820FE79 +MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll:: msgbox MauvilleCity_GameCorner_Text_NotEnoughCoins, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end -MauvilleCity_GameCorner_EventScript_NoRoomForDoll:: @ 820FE87 +MauvilleCity_GameCorner_EventScript_NoRoomForDoll:: call Common_EventScript_NoRoomForDecor goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end -MauvilleCity_GameCorner_EventScript_CancelDollSelect:: @ 820FE92 +MauvilleCity_GameCorner_EventScript_CancelDollSelect:: msgbox MauvilleCity_GameCorner_Text_OhIsThatSo, MSGBOX_DEFAULT hidecoinsbox 0, 0 release end -MauvilleCity_GameCorner_EventScript_PrizeCornerTMs:: @ 820FE9F +MauvilleCity_GameCorner_EventScript_PrizeCornerTMs:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_ExchangeCoinsForPrizes, MSGBOX_DEFAULT @@ -235,20 +235,20 @@ MauvilleCity_GameCorner_EventScript_PrizeCornerTMs:: @ 820FE9F release end -MauvilleCity_GameCorner_EventScript_ChooseTMPrizeMessage:: @ 820FEBB +MauvilleCity_GameCorner_EventScript_ChooseTMPrizeMessage:: message MauvilleCity_GameCorner_Text_WhichPrize waitmessage setvar VAR_TEMP_1, 0 showcoinsbox 1, 1 goto MauvilleCity_GameCorner_EventScript_ChooseTMPrize -MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize:: @ 820FECE +MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize:: message MauvilleCity_GameCorner_Text_WhichPrize waitmessage goto MauvilleCity_GameCorner_EventScript_ChooseTMPrize -MauvilleCity_GameCorner_EventScript_ChooseTMPrize:: @ 820FED9 - multichoice 12, 0, MULTI_GAME_CORNER_TMS, 0 +MauvilleCity_GameCorner_EventScript_ChooseTMPrize:: + multichoice 12, 0, MULTI_GAME_CORNER_TMS, FALSE switch VAR_RESULT case 0, MauvilleCity_GameCorner_EventScript_TM32 case 1, MauvilleCity_GameCorner_EventScript_TM29 @@ -259,37 +259,37 @@ MauvilleCity_GameCorner_EventScript_ChooseTMPrize:: @ 820FED9 goto MauvilleCity_GameCorner_EventScript_CancelTMSelect end -MauvilleCity_GameCorner_EventScript_TM32:: @ 820FF2B +MauvilleCity_GameCorner_EventScript_TM32:: setvar VAR_TEMP_1, 1 bufferitemname 0, ITEM_TM32 setvar VAR_0x8004, ITEM_TM32 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize -MauvilleCity_GameCorner_EventScript_TM29:: @ 820FF3E +MauvilleCity_GameCorner_EventScript_TM29:: setvar VAR_TEMP_1, 2 bufferitemname 0, ITEM_TM29 setvar VAR_0x8004, ITEM_TM29 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize -MauvilleCity_GameCorner_EventScript_TM35:: @ 820FF51 +MauvilleCity_GameCorner_EventScript_TM35:: setvar VAR_TEMP_1, 3 bufferitemname 0, ITEM_TM35 setvar VAR_0x8004, ITEM_TM35 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize -MauvilleCity_GameCorner_EventScript_TM24:: @ 820FF64 +MauvilleCity_GameCorner_EventScript_TM24:: setvar VAR_TEMP_1, 4 bufferitemname 0, ITEM_TM24 setvar VAR_0x8004, ITEM_TM24 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize -MauvilleCity_GameCorner_EventScript_TM13:: @ 820FF77 +MauvilleCity_GameCorner_EventScript_TM13:: setvar VAR_TEMP_1, 5 bufferitemname 0, ITEM_TM13 setvar VAR_0x8004, ITEM_TM13 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize -MauvilleCity_GameCorner_EventScript_ConfirmTMPrize:: @ 820FF8A +MauvilleCity_GameCorner_EventScript_ConfirmTMPrize:: special BufferTMHMMoveName msgbox MauvilleCity_GameCorner_Text_SoYourChoiceIsTheTMX, MSGBOX_YESNO compare VAR_RESULT, NO @@ -302,7 +302,7 @@ MauvilleCity_GameCorner_EventScript_ConfirmTMPrize:: @ 820FF8A case 5, MauvilleCity_GameCorner_EventScript_BuyTM13 end -MauvilleCity_GameCorner_EventScript_BuyTM32:: @ 820FFDD +MauvilleCity_GameCorner_EventScript_BuyTM32:: checkcoins VAR_TEMP_2 compare VAR_TEMP_2, TM32_COINS goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM @@ -317,7 +317,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM32:: @ 820FFDD goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end -MauvilleCity_GameCorner_EventScript_BuyTM29:: @ 8210017 +MauvilleCity_GameCorner_EventScript_BuyTM29:: checkcoins VAR_TEMP_2 compare VAR_TEMP_2, TM29_COINS goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM @@ -332,7 +332,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM29:: @ 8210017 goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end -MauvilleCity_GameCorner_EventScript_BuyTM35:: @ 8210051 +MauvilleCity_GameCorner_EventScript_BuyTM35:: checkcoins VAR_TEMP_2 compare VAR_TEMP_2, TM35_COINS goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM @@ -347,7 +347,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM35:: @ 8210051 goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end -MauvilleCity_GameCorner_EventScript_BuyTM24:: @ 821008B +MauvilleCity_GameCorner_EventScript_BuyTM24:: checkcoins VAR_TEMP_2 compare VAR_TEMP_2, TM24_COINS goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM @@ -362,7 +362,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM24:: @ 821008B goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end -MauvilleCity_GameCorner_EventScript_BuyTM13:: @ 82100C5 +MauvilleCity_GameCorner_EventScript_BuyTM13:: checkcoins VAR_TEMP_2 compare VAR_TEMP_2, TM13_COINS goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM @@ -377,31 +377,31 @@ MauvilleCity_GameCorner_EventScript_BuyTM13:: @ 82100C5 goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end -MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM:: @ 82100FF +MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM:: msgbox MauvilleCity_GameCorner_Text_NotEnoughCoins, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end -MauvilleCity_GameCorner_EventScript_NoRoomForTM:: @ 821010D +MauvilleCity_GameCorner_EventScript_NoRoomForTM:: call Common_EventScript_BagIsFull goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end -MauvilleCity_GameCorner_EventScript_CancelTMSelect:: @ 8210118 +MauvilleCity_GameCorner_EventScript_CancelTMSelect:: msgbox MauvilleCity_GameCorner_Text_OhIsThatSo, MSGBOX_DEFAULT hidecoinsbox 0, 0 release end -MauvilleCity_GameCorner_EventScript_Woman2:: @ 8210125 +MauvilleCity_GameCorner_EventScript_Woman2:: msgbox MauvilleCity_GameCorner_Text_CoinsAreNeededToPlay, MSGBOX_NPC end -MauvilleCity_GameCorner_EventScript_Gentleman:: @ 821012E +MauvilleCity_GameCorner_EventScript_Gentleman:: msgbox MauvilleCity_GameCorner_Text_RouletteOnlyLuck, MSGBOX_NPC end -MauvilleCity_GameCorner_EventScript_Girl:: @ 8210137 +MauvilleCity_GameCorner_EventScript_Girl:: lock faceplayer goto_if_set FLAG_RECEIVED_STARTER_DOLL, MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll @@ -414,7 +414,7 @@ MauvilleCity_GameCorner_EventScript_Girl:: @ 8210137 case 2, MauvilleCity_GameCorner_EventScript_GiveMudkipDoll end -MauvilleCity_GameCorner_EventScript_GiveTreeckoDoll:: @ 821017C +MauvilleCity_GameCorner_EventScript_GiveTreeckoDoll:: bufferdecorationname 1, DECOR_TREECKO_DOLL checkdecorspace DECOR_TREECKO_DOLL compare VAR_RESULT, FALSE @@ -425,7 +425,7 @@ MauvilleCity_GameCorner_EventScript_GiveTreeckoDoll:: @ 821017C goto MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll end -MauvilleCity_GameCorner_EventScript_GiveTorchicDoll:: @ 82101A6 +MauvilleCity_GameCorner_EventScript_GiveTorchicDoll:: bufferdecorationname 1, DECOR_TORCHIC_DOLL checkdecorspace DECOR_TORCHIC_DOLL compare VAR_RESULT, FALSE @@ -436,7 +436,7 @@ MauvilleCity_GameCorner_EventScript_GiveTorchicDoll:: @ 82101A6 goto MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll end -MauvilleCity_GameCorner_EventScript_GiveMudkipDoll:: @ 82101D0 +MauvilleCity_GameCorner_EventScript_GiveMudkipDoll:: bufferdecorationname 1, DECOR_MUDKIP_DOLL checkdecorspace DECOR_MUDKIP_DOLL compare VAR_RESULT, FALSE @@ -447,23 +447,23 @@ MauvilleCity_GameCorner_EventScript_GiveMudkipDoll:: @ 82101D0 goto MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll end -MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll:: @ 82101FA +MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll:: call Common_EventScript_NoRoomForDecor msgbox MauvilleCity_GameCorner_Text_YouWantItButNotNow, MSGBOX_DEFAULT release end -MauvilleCity_GameCorner_EventScript_DeclineStarterDoll:: @ 8210209 +MauvilleCity_GameCorner_EventScript_DeclineStarterDoll:: msgbox MauvilleCity_GameCorner_Text_DontBeNegative, MSGBOX_DEFAULT release end -MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll:: @ 8210213 +MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll:: msgbox MauvilleCity_GameCorner_Text_CantWinJackpot, MSGBOX_DEFAULT release end -MauvilleCity_GameCorner_EventScript_PokefanM:: @ 821021D +MauvilleCity_GameCorner_EventScript_PokefanM:: lock faceplayer checkitem ITEM_COIN_CASE, 1 @@ -473,7 +473,7 @@ MauvilleCity_GameCorner_EventScript_PokefanM:: @ 821021D goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end -MauvilleCity_GameCorner_EventScript_TryGive20Coins:: @ 821023D +MauvilleCity_GameCorner_EventScript_TryGive20Coins:: goto_if_set FLAG_RECEIVED_20_COINS, MauvilleCity_GameCorner_EventScript_PokefanMNormal checkcoins VAR_TEMP_1 compare VAR_TEMP_1, 1 @ Only give 20 coins if player has no coins @@ -485,54 +485,54 @@ MauvilleCity_GameCorner_EventScript_TryGive20Coins:: @ 821023D goto MauvilleCity_GameCorner_EventScript_PokefanMNormal end -MauvilleCity_GameCorner_EventScript_PokefanMNormal:: @ 821026B +MauvilleCity_GameCorner_EventScript_PokefanMNormal:: msgbox MauvilleCity_GameCorner_Text_MauvilleSomethingForEveryone, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end -MauvilleCity_GameCorner_EventScript_OldMan:: @ 8210279 +MauvilleCity_GameCorner_EventScript_OldMan:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_RouletteTablesDifferentRates, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end -MauvilleCity_GameCorner_EventScript_Cook:: @ 8210289 +MauvilleCity_GameCorner_EventScript_Cook:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_EasyToLoseTrackOfTime, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end -MauvilleCity_GameCorner_EventScript_Man:: @ 8210299 +MauvilleCity_GameCorner_EventScript_Man:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_UpTo3CoinsCanBeUsed, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end -MauvilleCity_GameCorner_EventScript_NPCReturnToSlots:: @ 82102A9 +MauvilleCity_GameCorner_EventScript_NPCReturnToSlots:: closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection waitmovement 0 release end -MauvilleCity_GameCorner_EventScript_Maniac:: @ 82102B6 +MauvilleCity_GameCorner_EventScript_Maniac:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_DifficultToStopOn7, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end -MauvilleCity_GameCorner_EventScript_Woman:: @ 82102C6 +MauvilleCity_GameCorner_EventScript_Woman:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_HeresSomeSlotsInfo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end -MauvilleCity_GameCorner_EventScript_SlotMachine0:: @ 82102D6 +MauvilleCity_GameCorner_EventScript_SlotMachine0:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -543,7 +543,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine0:: @ 82102D6 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine1:: @ 82102F6 +MauvilleCity_GameCorner_EventScript_SlotMachine1:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -554,7 +554,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine1:: @ 82102F6 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine2:: @ 8210316 +MauvilleCity_GameCorner_EventScript_SlotMachine2:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -565,7 +565,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine2:: @ 8210316 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine3:: @ 8210336 +MauvilleCity_GameCorner_EventScript_SlotMachine3:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -576,7 +576,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine3:: @ 8210336 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine4:: @ 8210356 +MauvilleCity_GameCorner_EventScript_SlotMachine4:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -587,7 +587,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine4:: @ 8210356 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine5:: @ 8210376 +MauvilleCity_GameCorner_EventScript_SlotMachine5:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -598,7 +598,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine5:: @ 8210376 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine6:: @ 8210396 +MauvilleCity_GameCorner_EventScript_SlotMachine6:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -609,7 +609,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine6:: @ 8210396 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine7:: @ 82103B6 +MauvilleCity_GameCorner_EventScript_SlotMachine7:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -620,7 +620,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine7:: @ 82103B6 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine8:: @ 82103D6 +MauvilleCity_GameCorner_EventScript_SlotMachine8:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -631,7 +631,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine8:: @ 82103D6 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine9:: @ 82103F6 +MauvilleCity_GameCorner_EventScript_SlotMachine9:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -642,7 +642,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine9:: @ 82103F6 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine10:: @ 8210416 +MauvilleCity_GameCorner_EventScript_SlotMachine10:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -653,7 +653,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine10:: @ 8210416 releaseall end -MauvilleCity_GameCorner_EventScript_SlotMachine11:: @ 8210436 +MauvilleCity_GameCorner_EventScript_SlotMachine11:: lockall checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE @@ -664,146 +664,146 @@ MauvilleCity_GameCorner_EventScript_SlotMachine11:: @ 8210436 releaseall end -MauvilleCity_GameCorner_EventScript_NoCoinCase:: @ 8210456 +MauvilleCity_GameCorner_EventScript_NoCoinCase:: msgbox MauvilleCity_GameCorner_Text_CantPlayWithNoCoinCase, MSGBOX_DEFAULT releaseall end -MauvilleCity_GameCorner_Text_ThisIsMauvilleGameCorner: @ 8210460 +MauvilleCity_GameCorner_Text_ThisIsMauvilleGameCorner: .string "This is MAUVILLE GAME CORNER.$" -MauvilleCity_GameCorner_Text_NeedCoinCaseForCoins: @ 821047E +MauvilleCity_GameCorner_Text_NeedCoinCaseForCoins: .string "Okay, you wanted some COINS for\n" .string "the games?\p" .string "But you don't have a COIN CASE for\n" .string "stowing the COINS.$" -MauvilleCity_GameCorner_Text_WereYouLookingForCoins: @ 82104DF +MauvilleCity_GameCorner_Text_WereYouLookingForCoins: .string "Were you looking for COINS?\p" .string "It's ¥1000 for 50 COINS.\n" .string "Would you like some?$" -MauvilleCity_GameCorner_Text_ThankYouHereAreYourCoins: @ 8210529 +MauvilleCity_GameCorner_Text_ThankYouHereAreYourCoins: .string "Thank you very much!\n" .string "Here are your COINS!$" -MauvilleCity_GameCorner_Text_DontHaveEnoughMoney: @ 8210553 +MauvilleCity_GameCorner_Text_DontHaveEnoughMoney: .string "Um… You don't appear to have\n" .string "enough money…$" -MauvilleCity_GameCorner_Text_CoinCaseIsFull: @ 821057E +MauvilleCity_GameCorner_Text_CoinCaseIsFull: .string "Oh?\n" .string "Your COIN CASE is full.$" -MauvilleCity_GameCorner_Text_DontNeedCoinsThen: @ 821059A +MauvilleCity_GameCorner_Text_DontNeedCoinsThen: .string "Oh… You don't need COINS, then?\n" .string "Good luck on your adventure!$" -MauvilleCity_GameCorner_Text_ExchangeCoinsForPrizes: @ 82105D7 +MauvilleCity_GameCorner_Text_ExchangeCoinsForPrizes: .string "Welcome.\p" .string "You can exchange your COINS for\n" .string "prizes here.$" -MauvilleCity_GameCorner_Text_WhichPrize: @ 821060D +MauvilleCity_GameCorner_Text_WhichPrize: .string "Which prize would you like?$" -MauvilleCity_GameCorner_Text_SoYourChoiceIsTheTMX: @ 8210629 +MauvilleCity_GameCorner_Text_SoYourChoiceIsTheTMX: .string "So your choice is\n" .string "the {STR_VAR_1} {STR_VAR_2}?$" -MauvilleCity_GameCorner_Text_SendToYourHomePC: @ 8210646 +MauvilleCity_GameCorner_Text_SendToYourHomePC: .string "Thank you!\n" .string "We'll send it to your PC at home.$" -MauvilleCity_GameCorner_Text_NotEnoughCoins: @ 8210673 +MauvilleCity_GameCorner_Text_NotEnoughCoins: .string "You don't have enough COINS.$" @ Unused -MauvilleCity_GameCorner_Text_NoRoomForPlacingDecor: @ 8210690 +MauvilleCity_GameCorner_Text_NoRoomForPlacingDecor: .string "There isn't any room available for\n" .string "placing {STR_VAR_1}.$" -MauvilleCity_GameCorner_Text_OhIsThatSo: @ 82106BF +MauvilleCity_GameCorner_Text_OhIsThatSo: .string "Oh, is that so? \n" .string "You need to save some COINS before\l" .string "coming back here.$" -MauvilleCity_GameCorner_Text_SoYourChoiceIsX: @ 8210705 +MauvilleCity_GameCorner_Text_SoYourChoiceIsX: .string "So your choice is {STR_VAR_1}?$" -MauvilleCity_GameCorner_Text_HereYouGo: @ 821071B +MauvilleCity_GameCorner_Text_HereYouGo: .string "Here you go!$" @ Unused -MauvilleCity_GameCorner_Text_CantCarryAnyMore: @ 8210728 +MauvilleCity_GameCorner_Text_CantCarryAnyMore: .string "Oh, you can't carry any more than that.$" -MauvilleCity_GameCorner_Text_GotTwoOfSameDollWantOne: @ 8210750 +MauvilleCity_GameCorner_Text_GotTwoOfSameDollWantOne: .string "I made a mistake and got two of\n" .string "the same DOLLS.\p" .string "Would you like one of them?$" -MauvilleCity_GameCorner_Text_HereYouGo2: @ 821079C +MauvilleCity_GameCorner_Text_HereYouGo2: .string "Here you go!$" -MauvilleCity_GameCorner_Text_YouWantItButNotNow: @ 82107A9 +MauvilleCity_GameCorner_Text_YouWantItButNotNow: .string "Huh?\n" .string "You want it, but not right now?$" -MauvilleCity_GameCorner_Text_DontBeNegative: @ 82107CE +MauvilleCity_GameCorner_Text_DontBeNegative: .string "Oh, don't be so negative!\n" .string "You can have this!$" -MauvilleCity_GameCorner_Text_CantWinJackpot: @ 82107FB +MauvilleCity_GameCorner_Text_CantWinJackpot: .string "There's a prize I want, but I can't win\n" .string "the jackpot.$" -MauvilleCity_GameCorner_Text_NeedCoinCaseGoNextDoor: @ 8210830 +MauvilleCity_GameCorner_Text_NeedCoinCaseGoNextDoor: .string "Hey, kid, if you want to play here,\n" .string "you need a COIN CASE.\p" .string "I think the young lady next door\n" .string "had one. Go see her!$" -MauvilleCity_GameCorner_Text_LuckOnlyLastSoLongTakeCoins: @ 82108A0 +MauvilleCity_GameCorner_Text_LuckOnlyLastSoLongTakeCoins: .string "My luck can only last so long.\n" .string "This is too much for me.\l" .string "Here, take some COINS!$" -MauvilleCity_GameCorner_Text_MauvilleSomethingForEveryone: @ 82108EF +MauvilleCity_GameCorner_Text_MauvilleSomethingForEveryone: .string "MAUVILLE has something for\n" .string "everyone.\p" .string "For me, it's the GAME CORNER.$" -MauvilleCity_GameCorner_Text_RouletteTablesDifferentRates: @ 8210932 +MauvilleCity_GameCorner_Text_RouletteTablesDifferentRates: .string "The ROULETTE tables have different\n" .string "rates.\p" .string "Check your COINS if you're going to\n" .string "pick a table.$" -MauvilleCity_GameCorner_Text_EasyToLoseTrackOfTime: @ 821098E +MauvilleCity_GameCorner_Text_EasyToLoseTrackOfTime: .string "It's easy to lose track of time in here. \n" .string "I should get back to work.$" -MauvilleCity_GameCorner_Text_CoinsAreNeededToPlay: @ 82109D3 +MauvilleCity_GameCorner_Text_CoinsAreNeededToPlay: .string "COINS are needed to play here\n" .string "in the GAME CORNER.$" -MauvilleCity_GameCorner_Text_RouletteOnlyLuck: @ 8210A05 +MauvilleCity_GameCorner_Text_RouletteOnlyLuck: .string "This ROULETTE thing…\n" .string "It's rather demanding.\p" .string "Win or lose, it's only by luck.$" -MauvilleCity_GameCorner_Text_UpTo3CoinsCanBeUsed: @ 8210A51 +MauvilleCity_GameCorner_Text_UpTo3CoinsCanBeUsed: .string "Up to three COINS can be used to play\n" .string "the SLOTS.$" -MauvilleCity_GameCorner_Text_DifficultToStopOn7: @ 8210A82 +MauvilleCity_GameCorner_Text_DifficultToStopOn7: .string "It's very difficult to make it stop\n" .string "right on “7.”\p" .string "If it stops on “7” during the REEL TIME\n" .string "bonus game, you'll receive extra COINS.$" -MauvilleCity_GameCorner_Text_HeresSomeSlotsInfo: @ 8210B04 +MauvilleCity_GameCorner_Text_HeresSomeSlotsInfo: .string "Here's some information for you\n" .string "about the SLOTS.\p" .string "The more lightning bolts you stock,\n" @@ -815,7 +815,7 @@ MauvilleCity_GameCorner_Text_HeresSomeSlotsInfo: @ 8210B04 .string "That would total 660 COINS, but it's\n" .string "very difficult to get.$" -MauvilleCity_GameCorner_Text_CantPlayWithNoCoinCase: @ 8210C2E +MauvilleCity_GameCorner_Text_CantPlayWithNoCoinCase: .string "You can't play if you don't have\n" .string "a COIN CASE.$" diff --git a/data/maps/MauvilleCity_Gym/scripts.inc b/data/maps/MauvilleCity_Gym/scripts.inc index 3fa7dc8c94..3c09ecfa20 100644 --- a/data/maps/MauvilleCity_Gym/scripts.inc +++ b/data/maps/MauvilleCity_Gym/scripts.inc @@ -1,8 +1,8 @@ -MauvilleCity_Gym_MapScripts:: @ 820DD6E +MauvilleCity_Gym_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, MauvilleCity_Gym_OnLoad .byte 0 -MauvilleCity_Gym_OnLoad: @ 820DD74 +MauvilleCity_Gym_OnLoad: goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_DeactivatePuzzle switch VAR_MAUVILLE_GYM_STATE case 0, MauvilleCity_Gym_EventScript_UpdateBarriers @@ -12,11 +12,11 @@ MauvilleCity_Gym_OnLoad: @ 820DD74 case 4, MauvilleCity_Gym_EventScript_Switch4Pressed end -MauvilleCity_Gym_EventScript_UpdateBarriers:: @ 820DDBA +MauvilleCity_Gym_EventScript_UpdateBarriers:: goto_if_set FLAG_MAUVILLE_GYM_BARRIERS_STATE, MauvilleCity_Gym_EventScript_SetAltBarriers end -MauvilleCity_Gym_EventScript_SetAltBarriers:: @ 820DDC4 +MauvilleCity_Gym_EventScript_SetAltBarriers:: setmetatile 3, 11, METATILE_MauvilleGym_RedBeamV1_On, 1 setmetatile 3, 12, METATILE_MauvilleGym_RedBeamV2_On, 1 setmetatile 3, 13, METATILE_MauvilleGym_PoleTop_On, 1 @@ -45,35 +45,35 @@ MauvilleCity_Gym_EventScript_SetAltBarriers:: @ 820DDC4 setmetatile 5, 7, METATILE_MauvilleGym_GreenBeamH4_Off, 0 end -MauvilleCity_Gym_EventScript_Switch1Pressed:: @ 820DEAF +MauvilleCity_Gym_EventScript_Switch1Pressed:: setvar VAR_0x8004, 0 special MauvilleGymPressSwitch goto MauvilleCity_Gym_EventScript_UpdateBarriers end -MauvilleCity_Gym_EventScript_Switch2Pressed:: @ 820DEBD +MauvilleCity_Gym_EventScript_Switch2Pressed:: setvar VAR_0x8004, 1 special MauvilleGymPressSwitch goto MauvilleCity_Gym_EventScript_UpdateBarriers end -MauvilleCity_Gym_EventScript_Switch3Pressed:: @ 820DECB +MauvilleCity_Gym_EventScript_Switch3Pressed:: setvar VAR_0x8004, 2 special MauvilleGymPressSwitch goto MauvilleCity_Gym_EventScript_UpdateBarriers end -MauvilleCity_Gym_EventScript_Switch4Pressed:: @ 820DED9 +MauvilleCity_Gym_EventScript_Switch4Pressed:: setvar VAR_0x8004, 3 special MauvilleGymPressSwitch goto MauvilleCity_Gym_EventScript_UpdateBarriers end -MauvilleCity_Gym_EventScript_DeactivatePuzzle:: @ 820DEE7 +MauvilleCity_Gym_EventScript_DeactivatePuzzle:: special MauvilleGymDeactivatePuzzle end -MauvilleCity_Gym_EventScript_Wattson:: @ 820DEEB +MauvilleCity_Gym_EventScript_Wattson:: trainerbattle_single TRAINER_WATTSON_1, MauvilleCity_Gym_Text_WattsonIntro, MauvilleCity_Gym_Text_WattsonDefeat, MauvilleCity_Gym_EventScript_WattsonDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -85,7 +85,7 @@ MauvilleCity_Gym_EventScript_Wattson:: @ 820DEEB release end -MauvilleCity_Gym_EventScript_WattsonDefeated:: @ 820DF2B +MauvilleCity_Gym_EventScript_WattsonDefeated:: message MauvilleCity_Gym_Text_ReceivedDynamoBadge waitmessage call Common_EventScript_PlayGymBadgeFanfare @@ -114,7 +114,7 @@ MauvilleCity_Gym_EventScript_WattsonDefeated:: @ 820DF2B release end -MauvilleCity_Gym_EventScript_GiveShockWave2:: @ 820DF8D +MauvilleCity_Gym_EventScript_GiveShockWave2:: giveitem ITEM_TM34 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -123,7 +123,7 @@ MauvilleCity_Gym_EventScript_GiveShockWave2:: @ 820DF8D release end -MauvilleCity_Gym_EventScript_GiveShockWave:: @ 820DFB1 +MauvilleCity_Gym_EventScript_GiveShockWave:: giveitem ITEM_TM34 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_BagIsFull @@ -131,17 +131,17 @@ MauvilleCity_Gym_EventScript_GiveShockWave:: @ 820DFB1 setflag FLAG_RECEIVED_TM34 return -MauvilleCity_Gym_EventScript_CompletedNewMauville:: @ 820DFD4 +MauvilleCity_Gym_EventScript_CompletedNewMauville:: msgbox MauvilleCity_Gym_Text_WattsonGoForthAndEndeavor, MSGBOX_DEFAULT release end -MauvilleCity_Gym_EventScript_WattsonRematch:: @ 820DFDE +MauvilleCity_Gym_EventScript_WattsonRematch:: trainerbattle_rematch_double TRAINER_WATTSON_1, MauvilleCity_Gym_Text_WattsonPreRematch, MauvilleCity_Gym_Text_WattsonRematchDefeat, MauvilleCity_Gym_Text_WattsonRematchNeedTwoMons msgbox MauvilleCity_Gym_Text_WattsonPostRematch, MSGBOX_AUTOCLOSE end -MauvilleCity_Gym_EventScript_Switch1:: @ 820DFF9 +MauvilleCity_Gym_EventScript_Switch1:: lockall goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_SwitchDoNothing compare VAR_MAUVILLE_GYM_STATE, 1 @@ -151,7 +151,7 @@ MauvilleCity_Gym_EventScript_Switch1:: @ 820DFF9 goto MauvilleCity_Gym_EventScript_PressFloorSwitch end -MauvilleCity_Gym_EventScript_Switch2:: @ 820E01E +MauvilleCity_Gym_EventScript_Switch2:: lockall goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_SwitchDoNothing compare VAR_MAUVILLE_GYM_STATE, 2 @@ -161,7 +161,7 @@ MauvilleCity_Gym_EventScript_Switch2:: @ 820E01E goto MauvilleCity_Gym_EventScript_PressFloorSwitch end -MauvilleCity_Gym_EventScript_Switch3:: @ 820E043 +MauvilleCity_Gym_EventScript_Switch3:: lockall goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_SwitchDoNothing compare VAR_MAUVILLE_GYM_STATE, 3 @@ -171,7 +171,7 @@ MauvilleCity_Gym_EventScript_Switch3:: @ 820E043 goto MauvilleCity_Gym_EventScript_PressFloorSwitch end -MauvilleCity_Gym_EventScript_Switch4:: @ 820E068 +MauvilleCity_Gym_EventScript_Switch4:: lockall goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_SwitchDoNothing compare VAR_MAUVILLE_GYM_STATE, 4 @@ -181,7 +181,7 @@ MauvilleCity_Gym_EventScript_Switch4:: @ 820E068 goto MauvilleCity_Gym_EventScript_PressFloorSwitch end -MauvilleCity_Gym_EventScript_PressFloorSwitch:: @ 820E08D +MauvilleCity_Gym_EventScript_PressFloorSwitch:: special MauvilleGymSetDefaultBarriers special MauvilleGymPressSwitch special DrawWholeMapView @@ -191,46 +191,46 @@ MauvilleCity_Gym_EventScript_PressFloorSwitch:: @ 820E08D releaseall end -MauvilleCity_Gym_EventScript_SwitchDoNothing:: @ 820E0AD +MauvilleCity_Gym_EventScript_SwitchDoNothing:: releaseall end -MauvilleCity_Gym_EventScript_SetBarriersAltState:: @ 820E0AF +MauvilleCity_Gym_EventScript_SetBarriersAltState:: setflag FLAG_MAUVILLE_GYM_BARRIERS_STATE releaseall end -MauvilleCity_Gym_EventScript_ClearBarriersAltState:: @ 820E0B4 +MauvilleCity_Gym_EventScript_ClearBarriersAltState:: clearflag FLAG_MAUVILLE_GYM_BARRIERS_STATE releaseall end -MauvilleCity_Gym_EventScript_Kirk:: @ 820E0B9 +MauvilleCity_Gym_EventScript_Kirk:: trainerbattle_single TRAINER_KIRK, MauvilleCity_Gym_Text_KirkIntro, MauvilleCity_Gym_Text_KirkDefeat msgbox MauvilleCity_Gym_Text_KirkPostBattle, MSGBOX_AUTOCLOSE end -MauvilleCity_Gym_EventScript_Shawn:: @ 820E0D0 +MauvilleCity_Gym_EventScript_Shawn:: trainerbattle_single TRAINER_SHAWN, MauvilleCity_Gym_Text_ShawnIntro, MauvilleCity_Gym_Text_ShawnDefeat msgbox MauvilleCity_Gym_Text_ShawnPostBattle, MSGBOX_AUTOCLOSE end -MauvilleCity_Gym_EventScript_Ben:: @ 820E0E7 +MauvilleCity_Gym_EventScript_Ben:: trainerbattle_single TRAINER_BEN, MauvilleCity_Gym_Text_BenIntro, MauvilleCity_Gym_Text_BenDefeat msgbox MauvilleCity_Gym_Text_BenPostBattle, MSGBOX_AUTOCLOSE end -MauvilleCity_Gym_EventScript_Vivian:: @ 820E0FE +MauvilleCity_Gym_EventScript_Vivian:: trainerbattle_single TRAINER_VIVIAN, MauvilleCity_Gym_Text_VivianIntro, MauvilleCity_Gym_Text_VivianDefeat msgbox MauvilleCity_Gym_Text_VivianPostBattle, MSGBOX_AUTOCLOSE end -MauvilleCity_Gym_EventScript_Angelo:: @ 820E115 +MauvilleCity_Gym_EventScript_Angelo:: trainerbattle_single TRAINER_ANGELO, MauvilleCity_Gym_Text_AngeloIntro, MauvilleCity_Gym_Text_AngeloDefeat msgbox MauvilleCity_Gym_Text_AngeloPostBattle, MSGBOX_AUTOCLOSE end -MauvilleCity_Gym_EventScript_GymGuide:: @ 820E12C +MauvilleCity_Gym_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_GymGuidePostVictory @@ -238,34 +238,34 @@ MauvilleCity_Gym_EventScript_GymGuide:: @ 820E12C release end -MauvilleCity_Gym_EventScript_GymGuidePostVictory:: @ 820E141 +MauvilleCity_Gym_EventScript_GymGuidePostVictory:: msgbox MauvilleCity_Gym_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end -MauvilleCity_Gym_EventScript_LeftGymStatue:: @ 820E14B +MauvilleCity_Gym_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE03_GET, MauvilleCity_Gym_EventScript_GymStatueCertified goto MauvilleCity_Gym_EventScript_GymStatue end -MauvilleCity_Gym_EventScript_RightGymStatue:: @ 820E15B +MauvilleCity_Gym_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE03_GET, MauvilleCity_Gym_EventScript_GymStatueCertified goto MauvilleCity_Gym_EventScript_GymStatue end -MauvilleCity_Gym_EventScript_GymStatueCertified:: @ 820E16B +MauvilleCity_Gym_EventScript_GymStatueCertified:: msgbox MauvilleCity_Gym_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end -MauvilleCity_Gym_EventScript_GymStatue:: @ 820E175 +MauvilleCity_Gym_EventScript_GymStatue:: msgbox MauvilleCity_Gym_Text_GymStatue, MSGBOX_DEFAULT releaseall end -MauvilleCity_Gym_Text_GymGuideAdvice: @ 820E17F +MauvilleCity_Gym_Text_GymGuideAdvice: .string "Hey, how's it going, CHAMPION-\n" .string "bound {PLAYER}?\p" .string "WATTSON, the LEADER of MAUVILLE\n" @@ -276,72 +276,72 @@ MauvilleCity_Gym_Text_GymGuideAdvice: @ 820E17F .string "doors all over his GYM! Eccentric!\p" .string "Hey, go for it!$" -MauvilleCity_Gym_Text_GymGuidePostVictory: @ 820E283 +MauvilleCity_Gym_Text_GymGuidePostVictory: .string "Whoa, you're electrifying!\n" .string "You've powered the door open!$" -MauvilleCity_Gym_Text_KirkIntro: @ 820E2BC +MauvilleCity_Gym_Text_KirkIntro: .string "My electric soul, it'll shatter your\n" .string "dreams whole, whoa-yeahah!$" -MauvilleCity_Gym_Text_KirkDefeat: @ 820E2FC +MauvilleCity_Gym_Text_KirkDefeat: .string "That was plugged in, amped up,\n" .string "over-driven electric, man!$" -MauvilleCity_Gym_Text_KirkPostBattle: @ 820E336 +MauvilleCity_Gym_Text_KirkPostBattle: .string "POKéMON and rock, it's all about heart,\n" .string "whoa-yeah!$" -MauvilleCity_Gym_Text_ShawnIntro: @ 820E369 +MauvilleCity_Gym_Text_ShawnIntro: .string "I trained under WATTSON!\n" .string "There ain't no way I'll lose easily!$" -MauvilleCity_Gym_Text_ShawnDefeat: @ 820E3A7 +MauvilleCity_Gym_Text_ShawnDefeat: .string "Unplugged and turned off…$" -MauvilleCity_Gym_Text_ShawnPostBattle: @ 820E3C1 +MauvilleCity_Gym_Text_ShawnPostBattle: .string "WATTSON, our GYM LEADER, has been\n" .string "around for a long, long time.\p" .string "He was battling even before your\n" .string "daddy was born, that tough coot.$" -MauvilleCity_Gym_Text_BenIntro: @ 820E443 +MauvilleCity_Gym_Text_BenIntro: .string "This GYM's got puzzles!\n" .string "Isn't it fun?$" -MauvilleCity_Gym_Text_BenDefeat: @ 820E469 +MauvilleCity_Gym_Text_BenDefeat: .string "It's no fun to lose…$" -MauvilleCity_Gym_Text_BenPostBattle: @ 820E47E +MauvilleCity_Gym_Text_BenPostBattle: .string "WATTSON says he likes setting up\n" .string "little traps with switches.$" -MauvilleCity_Gym_Text_VivianIntro: @ 820E4BB +MauvilleCity_Gym_Text_VivianIntro: .string "With my charm and my POKéMON's moves,\n" .string "you'll be shocked!$" -MauvilleCity_Gym_Text_VivianDefeat: @ 820E4F4 +MauvilleCity_Gym_Text_VivianDefeat: .string "I'm shocked by your power!$" -MauvilleCity_Gym_Text_VivianPostBattle: @ 820E50F +MauvilleCity_Gym_Text_VivianPostBattle: .string "I've heard that MAUVILLE was founded\n" .string "by WATTSON.\p" .string "He was a TRAINER long before we\n" .string "became TRAINERS.\l" .string "He must know all sorts of things!$" -MauvilleCity_Gym_Text_AngeloIntro: @ 820E593 +MauvilleCity_Gym_Text_AngeloIntro: .string "I love shiny things!$" -MauvilleCity_Gym_Text_AngeloDefeat: @ 820E5A8 +MauvilleCity_Gym_Text_AngeloDefeat: .string "Oh…\n" .string "My eyes are frazzled…$" -MauvilleCity_Gym_Text_AngeloPostBattle: @ 820E5C2 +MauvilleCity_Gym_Text_AngeloPostBattle: .string "MAUVILLE GYM's WATTSON has a shiny\n" .string "forehead. It makes me happy!$" -MauvilleCity_Gym_Text_WattsonIntro: @ 820E602 +MauvilleCity_Gym_Text_WattsonIntro: .string "I've given up on my plans to convert\n" .string "the city, I have.\p" .string "And so, I put my time into making\n" @@ -354,17 +354,17 @@ MauvilleCity_Gym_Text_WattsonIntro: @ 820E602 .string "Then, I, WATTSON, the LEADER of\n" .string "MAUVILLE GYM, shall electrify you!$" -MauvilleCity_Gym_Text_WattsonDefeat: @ 820E734 +MauvilleCity_Gym_Text_WattsonDefeat: .string "Wahahahah!\n" .string "Fine, I lost!\p" .string "You ended up giving me a thrill!\n" .string "Take this BADGE!$" -MauvilleCity_Gym_Text_ReceivedDynamoBadge: @ 820E77F +MauvilleCity_Gym_Text_ReceivedDynamoBadge: .string "{PLAYER} received the DYNAMO BADGE\n" .string "from WATTSON.$" -MauvilleCity_Gym_Text_ExplainDynamoBadgeTakeThis: @ 820E7AA +MauvilleCity_Gym_Text_ExplainDynamoBadgeTakeThis: .string "With the DYNAMO BADGE, POKéMON can\n" .string "use ROCK SMASH out of battle.\p" .string "And, it will make your POKéMON a little\n" @@ -372,33 +372,33 @@ MauvilleCity_Gym_Text_ExplainDynamoBadgeTakeThis: @ 820E7AA .string "Hmm…\n" .string "You should take this, too!$" -MauvilleCity_Gym_Text_ExplainShockWave: @ 820E844 +MauvilleCity_Gym_Text_ExplainShockWave: .string "That TM34 there contains SHOCK WAVE.\p" .string "It's a trustworthy move that never\n" .string "misses! You can count on it!\p" .string "… … … … … …$" -MauvilleCity_Gym_Text_RegisteredWattson: @ 820E8B5 +MauvilleCity_Gym_Text_RegisteredWattson: .string "Registered GYM LEADER WATTSON\n" .string "in the POKéNAV.$" -MauvilleCity_Gym_Text_WattsonPostBattle: @ 820E8E3 +MauvilleCity_Gym_Text_WattsonPostBattle: .string "I swell with optimism, seeing a promising\n" .string "young TRAINER like you!$" -MauvilleCity_Gym_Text_WattsonGoForthAndEndeavor: @ 820E925 +MauvilleCity_Gym_Text_WattsonGoForthAndEndeavor: .string "Wahahahah!\n" .string "Go forth and endeavor, youngster!$" -MauvilleCity_Gym_Text_GymStatue: @ 820E952 +MauvilleCity_Gym_Text_GymStatue: .string "MAUVILLE CITY POKéMON GYM$" -MauvilleCity_Gym_Text_GymStatueCertified: @ 820E96C +MauvilleCity_Gym_Text_GymStatueCertified: .string "MAUVILLE CITY POKéMON GYM\p" .string "WATTSON'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" -MauvilleCity_Gym_Text_WattsonPreRematch: @ 820E9A7 +MauvilleCity_Gym_Text_WattsonPreRematch: .string "WATTSON: Ah-ha! Here at last!\n" .string "I know what you want.\l" .string "You want to battle my POKéMON!\p" @@ -406,11 +406,11 @@ MauvilleCity_Gym_Text_WattsonPreRematch: @ 820E9A7 .string "I'll make sparks fly from you!\n" .string "Don't say I didn't warn you!$" -MauvilleCity_Gym_Text_WattsonRematchDefeat: @ 820EA42 +MauvilleCity_Gym_Text_WattsonRematchDefeat: .string "Oof…\n" .string "Our batteries ran dry…$" -MauvilleCity_Gym_Text_WattsonPostRematch: @ 820EA5E +MauvilleCity_Gym_Text_WattsonPostRematch: .string "WATTSON: We'll have to recharge our\n" .string "batteries again.\p" .string "When we're fully charged up, we'll\n" @@ -418,7 +418,7 @@ MauvilleCity_Gym_Text_WattsonPostRematch: @ 820EA5E .string "So, come back again sometime,\n" .string "won't you?$" -MauvilleCity_Gym_Text_WattsonRematchNeedTwoMons: @ 820EAFD +MauvilleCity_Gym_Text_WattsonRematchNeedTwoMons: .string "WATTSON: Ah-ha! Here at last!\n" .string "I know what you want.\l" .string "You want to battle my POKéMON!\p" diff --git a/data/maps/MauvilleCity_House1/scripts.inc b/data/maps/MauvilleCity_House1/scripts.inc index 21655a1b86..d0d3481a66 100644 --- a/data/maps/MauvilleCity_House1/scripts.inc +++ b/data/maps/MauvilleCity_House1/scripts.inc @@ -1,7 +1,7 @@ -MauvilleCity_House1_MapScripts:: @ 820F975 +MauvilleCity_House1_MapScripts:: .byte 0 -MauvilleCity_House1_EventScript_RockSmashDude:: @ 820F976 +MauvilleCity_House1_EventScript_RockSmashDude:: lock faceplayer goto_if_set FLAG_RECEIVED_HM06, MauvilleCity_House1_EventScript_ReceivedRockSmash @@ -13,12 +13,12 @@ MauvilleCity_House1_EventScript_RockSmashDude:: @ 820F976 release end -MauvilleCity_House1_EventScript_ReceivedRockSmash:: @ 820F9A5 +MauvilleCity_House1_EventScript_ReceivedRockSmash:: msgbox MauvilleCity_House1_Text_MonCanFlyOutOfSmashedRock, MSGBOX_DEFAULT release end -MauvilleCity_House1_Text_ImRockSmashDudeTakeThis: @ 820F9AF +MauvilleCity_House1_Text_ImRockSmashDudeTakeThis: .string "Woohoo!\p" .string "I hear people call me the ROCK SMASH\n" .string "GUY, but I find that sort of degrading.\p" @@ -30,7 +30,7 @@ MauvilleCity_House1_Text_ImRockSmashDudeTakeThis: @ 820F9AF .string "I like that!\n" .string "Here, take this HIDDEN MACHINE!$" -MauvilleCity_House1_Text_ExplainRockSmash: @ 820FAA9 +MauvilleCity_House1_Text_ExplainRockSmash: .string "That HM contains ROCK SMASH.\p" .string "If you come across large boulders\n" .string "that block your path…\p" @@ -39,7 +39,7 @@ MauvilleCity_House1_Text_ExplainRockSmash: @ 820FAA9 .string "Yes, sir! Smash rocks aside, I say!\n" .string "Woohoo!$" -MauvilleCity_House1_Text_MonCanFlyOutOfSmashedRock: @ 820FB67 +MauvilleCity_House1_Text_MonCanFlyOutOfSmashedRock: .string "Oh, yes, if you smash a rock, a POKéMON\n" .string "could come flying out of hiding.\p" .string "Woohoo!$" diff --git a/data/maps/MauvilleCity_House2/scripts.inc b/data/maps/MauvilleCity_House2/scripts.inc index 06ec830ea1..178b79f9b4 100644 --- a/data/maps/MauvilleCity_House2/scripts.inc +++ b/data/maps/MauvilleCity_House2/scripts.inc @@ -1,7 +1,7 @@ -MauvilleCity_House2_MapScripts:: @ 8210C5C +MauvilleCity_House2_MapScripts:: .byte 0 -MauvilleCity_House2_EventScript_Woman:: @ 8210C5D +MauvilleCity_House2_EventScript_Woman:: lock faceplayer goto_if_set FLAG_RECEIVED_COIN_CASE, MauvilleCity_House2_EventScript_ReceivedCoinCase @@ -12,7 +12,7 @@ MauvilleCity_House2_EventScript_Woman:: @ 8210C5D release end -MauvilleCity_House2_EventScript_AskToTradeForHarborMail:: @ 8210C82 +MauvilleCity_House2_EventScript_AskToTradeForHarborMail:: playse SE_PIN applymovement VAR_LAST_TALKED, Common_Movement_ExclamationMark waitmovement 0 @@ -25,7 +25,7 @@ MauvilleCity_House2_EventScript_AskToTradeForHarborMail:: @ 8210C82 goto_if_eq MauvilleCity_House2_EventScript_DeclineTrade end -MauvilleCity_House2_EventScript_AcceptTrade:: @ 8210CB8 +MauvilleCity_House2_EventScript_AcceptTrade:: msgbox MauvilleCity_House2_Text_IllTradeYouCoinCase, MSGBOX_DEFAULT removeitem ITEM_HARBOR_MAIL giveitem ITEM_COIN_CASE @@ -33,35 +33,35 @@ MauvilleCity_House2_EventScript_AcceptTrade:: @ 8210CB8 goto MauvilleCity_House2_EventScript_ReceivedCoinCase end -MauvilleCity_House2_EventScript_ReceivedCoinCase:: @ 8210CDA +MauvilleCity_House2_EventScript_ReceivedCoinCase:: msgbox MauvilleCity_House2_Text_UseCoinCaseAtGameCorner, MSGBOX_DEFAULT release end -MauvilleCity_House2_EventScript_DeclineTrade:: @ 8210CE4 +MauvilleCity_House2_EventScript_DeclineTrade:: msgbox MauvilleCity_House2_Text_ThatsDisappointing, MSGBOX_DEFAULT release end -MauvilleCity_House2_Text_BuyHarborMailAtSlateport: @ 8210CEE +MauvilleCity_House2_Text_BuyHarborMailAtSlateport: .string "If I had a BIKE, it'd be easy to cycle to\n" .string "SLATEPORT for some shopping.\p" .string "I'd be able to buy HARBOR MAIL at the\n" .string "POKéMON MART in SLATEPORT…$" -MauvilleCity_House2_Text_TradeHarborMailForCoinCase: @ 8210D76 +MauvilleCity_House2_Text_TradeHarborMailForCoinCase: .string "Oh! You have HARBOR MAIL?\n" .string "Will you trade it for a COIN CASE?$" -MauvilleCity_House2_Text_IllTradeYouCoinCase: @ 8210DB3 +MauvilleCity_House2_Text_IllTradeYouCoinCase: .string "Oh, I'm so happy!\n" .string "Okay, I'll trade you a COIN CASE!$" -MauvilleCity_House2_Text_UseCoinCaseAtGameCorner: @ 8210DE7 +MauvilleCity_House2_Text_UseCoinCaseAtGameCorner: .string "That COIN CASE can be used\n" .string "at the GAME CORNER.$" -MauvilleCity_House2_Text_ThatsDisappointing: @ 8210E16 +MauvilleCity_House2_Text_ThatsDisappointing: .string "Oh, that's disappointing.\p" .string "A COIN CASE is needed for the\n" .string "GAME CORNER.$" diff --git a/data/maps/MauvilleCity_Mart/scripts.inc b/data/maps/MauvilleCity_Mart/scripts.inc index b288d42b7d..4cf5bc20bb 100644 --- a/data/maps/MauvilleCity_Mart/scripts.inc +++ b/data/maps/MauvilleCity_Mart/scripts.inc @@ -1,7 +1,7 @@ -MauvilleCity_Mart_MapScripts:: @ 82110E5 +MauvilleCity_Mart_MapScripts:: .byte 0 -MauvilleCity_Mart_EventScript_Clerk:: @ 82110E6 +MauvilleCity_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -12,7 +12,7 @@ MauvilleCity_Mart_EventScript_Clerk:: @ 82110E6 end .align 2 -MauvilleCity_Mart_Pokemart: @ 8211100 +MauvilleCity_Mart_Pokemart: .2byte ITEM_POKE_BALL .2byte ITEM_GREAT_BALL .2byte ITEM_SUPER_POTION @@ -29,15 +29,15 @@ MauvilleCity_Mart_Pokemart: @ 8211100 release end -MauvilleCity_Mart_EventScript_ExpertM:: @ 821111C +MauvilleCity_Mart_EventScript_ExpertM:: msgbox MauvilleCity_Mart_Text_ItemsToTemporarilyElevateStats, MSGBOX_NPC end -MauvilleCity_Mart_EventScript_Man:: @ 8211125 +MauvilleCity_Mart_EventScript_Man:: msgbox MauvilleCity_Mart_Text_DecisionsDetermineBattle, MSGBOX_NPC end -MauvilleCity_Mart_Text_ItemsToTemporarilyElevateStats: @ 821112E +MauvilleCity_Mart_Text_ItemsToTemporarilyElevateStats: .string "There are items that temporarily\n" .string "elevate the stats of POKéMON.\p" .string "The ones I know you use in battle\n" @@ -45,7 +45,7 @@ MauvilleCity_Mart_Text_ItemsToTemporarilyElevateStats: @ 821112E .string "I do believe that there are others\n" .string "like them.$" -MauvilleCity_Mart_Text_DecisionsDetermineBattle: @ 82111D8 +MauvilleCity_Mart_Text_DecisionsDetermineBattle: .string "Use a certain move, or use an item\n" .string "instead…\p" .string "The TRAINER's decisions determine how\n" diff --git a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc index 179dfad8ab..4347c47734 100644 --- a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc @@ -1,21 +1,21 @@ .set LOCALID_NURSE, 1 -MauvilleCity_PokemonCenter_1F_MapScripts:: @ 8210E5B +MauvilleCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MauvilleCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -MauvilleCity_PokemonCenter_1F_OnTransition: @ 8210E66 +MauvilleCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_MAUVILLE_CITY call Common_EventScript_UpdateBrineyLocation goto MauvilleCity_PokemonCenter_1F_EventScript_SetMauvilleOldManGfx end -MauvilleCity_PokemonCenter_1F_EventScript_SetMauvilleOldManGfx:: @ 8210E74 +MauvilleCity_PokemonCenter_1F_EventScript_SetMauvilleOldManGfx:: special ScrSpecial_SetMauvilleOldManObjEventGfx end -MauvilleCity_PokemonCenter_1F_EventScript_Nurse:: @ 8210E78 +MauvilleCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -23,32 +23,32 @@ MauvilleCity_PokemonCenter_1F_EventScript_Nurse:: @ 8210E78 release end -MauvilleCity_PokemonCenter_1F_EventScript_Woman1:: @ 8210E86 +MauvilleCity_PokemonCenter_1F_EventScript_Woman1:: msgbox MauvilleCity_PokemonCenter_1F_Text_ManOverThereSaysWeirdThings, MSGBOX_NPC end -MauvilleCity_PokemonCenter_1F_EventScript_Woman2:: @ 8210E8F +MauvilleCity_PokemonCenter_1F_EventScript_Woman2:: msgbox MauvilleCity_PokemonCenter_1F_Text_MyDataUpdatedFromRecordCorner, MSGBOX_NPC end -MauvilleCity_PokemonCenter_1F_EventScript_Youngster:: @ 8210E98 +MauvilleCity_PokemonCenter_1F_EventScript_Youngster:: msgbox MauvilleCity_PokemonCenter_1F_Text_RecordCornerSoundsFun, MSGBOX_NPC end -MauvilleCity_PokemonCenter_1F_Text_ManOverThereSaysWeirdThings: @ 8210EA1 +MauvilleCity_PokemonCenter_1F_Text_ManOverThereSaysWeirdThings: .string "That man over there, he says weird\n" .string "things!\p" .string "He's funny in a weird way.\n" .string "I doubt I'll forget about him!$" -MauvilleCity_PokemonCenter_1F_Text_MyDataUpdatedFromRecordCorner: @ 8210F06 +MauvilleCity_PokemonCenter_1F_Text_MyDataUpdatedFromRecordCorner: .string "When I accessed the RECORD CORNER,\n" .string "the data for what's hot in DEWFORD\l" .string "got updated.\p" .string "Now that bit of data is the same\n" .string "as my friend's!$" -MauvilleCity_PokemonCenter_1F_Text_RecordCornerSoundsFun: @ 8210F8A +MauvilleCity_PokemonCenter_1F_Text_RecordCornerSoundsFun: .string "A RECORD CORNER opened upstairs in\n" .string "the POKéMON CENTER.\p" .string "I don't know what it's about, but it\n" diff --git a/data/maps/MauvilleCity_PokemonCenter_2F/scripts.inc b/data/maps/MauvilleCity_PokemonCenter_2F/scripts.inc index 9626e48826..e6a716ec26 100644 --- a/data/maps/MauvilleCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/MauvilleCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -MauvilleCity_PokemonCenter_2F_MapScripts:: @ 8211008 +MauvilleCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,23 +6,23 @@ MauvilleCity_PokemonCenter_2F_MapScripts:: @ 8211008 .byte 0 @ The below 3 are unused and leftover from RS -MauvilleCity_PokemonCenter_2F_EventScript_Colosseum:: @ 821101D +MauvilleCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -MauvilleCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 8211023 +MauvilleCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -MauvilleCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 8211029 +MauvilleCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end -MauvilleCity_PokemonCenter_2F_EventScript_Youngster:: @ 821102F +MauvilleCity_PokemonCenter_2F_EventScript_Youngster:: msgbox MauvilleCity_PokemonCenter_2F_Text_Youngster, MSGBOX_NPC end -MauvilleCity_PokemonCenter_2F_Text_Youngster: @ 8211038 +MauvilleCity_PokemonCenter_2F_Text_Youngster: .string "Did you know that you can link battle\n" .string "at the COLOSSEUM here?\p" .string "They put up your record on the wall\n" diff --git a/data/maps/MeteorFalls_1F_1R/scripts.inc b/data/maps/MeteorFalls_1F_1R/scripts.inc index c942e230ec..4a40912697 100644 --- a/data/maps/MeteorFalls_1F_1R/scripts.inc +++ b/data/maps/MeteorFalls_1F_1R/scripts.inc @@ -4,24 +4,24 @@ .set LOCALID_AQUA_GRUNT_1, 8 .set LOCALID_AQUA_GRUNT_2, 9 -MeteorFalls_1F_1R_MapScripts:: @ 822BD2A +MeteorFalls_1F_1R_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, MeteorFalls_1F_1R_OnLoad .byte 0 -MeteorFalls_1F_1R_OnLoad: @ 822BD30 +MeteorFalls_1F_1R_OnLoad: call_if_set FLAG_SYS_GAME_CLEAR, MeteorFalls_1F_1R_EventScript_OpenStevensCave end -MeteorFalls_1F_1R_EventScript_OpenStevensCave:: @ 822BD3A +MeteorFalls_1F_1R_EventScript_OpenStevensCave:: setmetatile 4, 1, METATILE_MeteorFalls_CaveEntrance_Top, 1 setmetatile 3, 2, METATILE_MeteorFalls_CaveEntrance_Left, 1 setmetatile 4, 2, METATILE_MeteorFalls_CaveEntrance_Bottom, 0 setmetatile 5, 2, METATILE_MeteorFalls_CaveEntrance_Right, 1 return -MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F +MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: lockall - playbgm MUS_ENCOUNTER_MAGMA, 0 + playbgm MUS_ENCOUNTER_MAGMA, FALSE applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceDown waitmovement 0 delay 30 @@ -50,7 +50,7 @@ MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F addobject LOCALID_ARCHIE addobject LOCALID_AQUA_GRUNT_1 addobject LOCALID_AQUA_GRUNT_2 - playbgm MUS_ENCOUNTER_AQUA, 0 + playbgm MUS_ENCOUNTER_AQUA, FALSE applymovement LOCALID_ARCHIE, MeteorFalls_1F_1R_Movement_ArchieArrive applymovement LOCALID_AQUA_GRUNT_1, MeteorFalls_1F_1R_Movement_AquaGrunt1Arrive applymovement LOCALID_AQUA_GRUNT_2, MeteorFalls_1F_1R_Movement_AquaGrunt2Arrive @@ -96,13 +96,13 @@ MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F releaseall end -MeteorFalls_1F_1R_Movement_MagmaGruntApproachPlayer: @ 822BEC0 +MeteorFalls_1F_1R_Movement_MagmaGruntApproachPlayer: walk_right walk_right walk_in_place_fastest_up step_end -MeteorFalls_1F_1R_Movement_MagmaGrunt1Exit: @ 822BEC4 +MeteorFalls_1F_1R_Movement_MagmaGrunt1Exit: walk_fast_up walk_fast_up walk_fast_right @@ -114,7 +114,7 @@ MeteorFalls_1F_1R_Movement_MagmaGrunt1Exit: @ 822BEC4 walk_fast_right step_end -MeteorFalls_1F_1R_Movement_MagmaGrunt2Exit: @ 822BECE +MeteorFalls_1F_1R_Movement_MagmaGrunt2Exit: walk_fast_up walk_fast_up walk_fast_up @@ -127,7 +127,7 @@ MeteorFalls_1F_1R_Movement_MagmaGrunt2Exit: @ 822BECE walk_fast_right step_end -MeteorFalls_1F_1R_Movement_ArchieArrive: @ 822BED9 +MeteorFalls_1F_1R_Movement_ArchieArrive: walk_right walk_right walk_right @@ -136,7 +136,7 @@ MeteorFalls_1F_1R_Movement_ArchieArrive: @ 822BED9 walk_right step_end -MeteorFalls_1F_1R_Movement_AquaGrunt1Arrive: @ 822BEE0 +MeteorFalls_1F_1R_Movement_AquaGrunt1Arrive: delay_16 delay_16 walk_right @@ -146,7 +146,7 @@ MeteorFalls_1F_1R_Movement_AquaGrunt1Arrive: @ 822BEE0 walk_right step_end -MeteorFalls_1F_1R_Movement_AquaGrunt2Arrive: @ 822BEE8 +MeteorFalls_1F_1R_Movement_AquaGrunt2Arrive: delay_16 delay_16 walk_right @@ -156,7 +156,7 @@ MeteorFalls_1F_1R_Movement_AquaGrunt2Arrive: @ 822BEE8 walk_right step_end -MeteorFalls_1F_1R_Movement_ArchieExit: @ 822BEF0 +MeteorFalls_1F_1R_Movement_ArchieExit: walk_right walk_right walk_right @@ -166,7 +166,7 @@ MeteorFalls_1F_1R_Movement_ArchieExit: @ 822BEF0 walk_right step_end -MeteorFalls_1F_1R_Movement_ArchieApproachPlayer: @ 822BEF8 +MeteorFalls_1F_1R_Movement_ArchieApproachPlayer: walk_right walk_right walk_up @@ -174,7 +174,7 @@ MeteorFalls_1F_1R_Movement_ArchieApproachPlayer: @ 822BEF8 walk_in_place_fastest_left step_end -MeteorFalls_1F_1R_Movement_AquaGrunt1Exit: @ 822BEFE +MeteorFalls_1F_1R_Movement_AquaGrunt1Exit: walk_up walk_up walk_right @@ -186,14 +186,14 @@ MeteorFalls_1F_1R_Movement_AquaGrunt1Exit: @ 822BEFE walk_right step_end -MeteorFalls_1F_1R_Movement_AquaGrunt1ApproachArchie: @ 822BF08 +MeteorFalls_1F_1R_Movement_AquaGrunt1ApproachArchie: walk_right walk_right walk_right walk_in_place_fastest_up step_end -MeteorFalls_1F_1R_Movement_AquaGrunt2Exit: @ 822BF0D +MeteorFalls_1F_1R_Movement_AquaGrunt2Exit: walk_up walk_up walk_up @@ -206,14 +206,14 @@ MeteorFalls_1F_1R_Movement_AquaGrunt2Exit: @ 822BF0D walk_right step_end -MeteorFalls_1F_1R_Movement_AquaGrunt2ApproachArchie: @ 822BF18 +MeteorFalls_1F_1R_Movement_AquaGrunt2ApproachArchie: walk_right walk_right walk_right walk_in_place_fastest_up step_end -MeteorFalls_1F_1R_Movement_PushPlayerOutOfWay: @ 822BF1D +MeteorFalls_1F_1R_Movement_PushPlayerOutOfWay: walk_in_place_fastest_down delay_4 walk_in_place_fastest_right @@ -223,7 +223,7 @@ MeteorFalls_1F_1R_Movement_PushPlayerOutOfWay: @ 822BF1D face_right step_end -MeteorFalls_1F_1R_EventScript_ProfCozmo:: @ 822BF25 +MeteorFalls_1F_1R_EventScript_ProfCozmo:: lock faceplayer goto_if_set FLAG_MET_PROF_COZMO, MeteorFalls_1F_1R_EventScript_MetCozmo @@ -232,28 +232,28 @@ MeteorFalls_1F_1R_EventScript_ProfCozmo:: @ 822BF25 release end -MeteorFalls_1F_1R_EventScript_MetCozmo:: @ 822BF3D +MeteorFalls_1F_1R_EventScript_MetCozmo:: msgbox MeteorFalls_1F_1R_Text_WhatsTeamMagmaDoingAtMtChimney, MSGBOX_DEFAULT release end -MeteorFalls_1F_1R_Text_WithThisMeteorite: @ 822BF47 +MeteorFalls_1F_1R_Text_WithThisMeteorite: .string "Hehehe!\p" .string "With this METEORITE, that thing in\n" .string "MT. CHIMNEY will…$" -MeteorFalls_1F_1R_Text_DontExpectMercyFromMagma: @ 822BF84 +MeteorFalls_1F_1R_Text_DontExpectMercyFromMagma: .string "Heh?\p" .string "I don't know who you are, but if you get\n" .string "in the way of TEAM MAGMA, don't\l" .string "expect any mercy!$" -MeteorFalls_1F_1R_Text_HoldItRightThereMagma: @ 822BFE4 +MeteorFalls_1F_1R_Text_HoldItRightThereMagma: .string "Hold it right there, TEAM MAGMA!\p" .string "You're badly mistaken if you think you\n" .string "can have your way with the world!$" -MeteorFalls_1F_1R_Text_BeSeeingYouTeamAqua: @ 822C04E +MeteorFalls_1F_1R_Text_BeSeeingYouTeamAqua: .string "Hehehe!\n" .string "Even TEAM AQUA joins us!\p" .string "But it's too much trouble to deal with\n" @@ -264,7 +264,7 @@ MeteorFalls_1F_1R_Text_BeSeeingYouTeamAqua: @ 822C04E .string "Hehehe! Be seeing you, you TEAM\n" .string "AQUA dingbats!$" -MeteorFalls_1F_1R_Text_ArchieSeenYouBefore: @ 822C11C +MeteorFalls_1F_1R_Text_ArchieSeenYouBefore: .string "ARCHIE: Didn't I see you before?\n" .string "At SLATEPORT's MUSEUM?\p" .string "Ah, so your name is {PLAYER}.\p" @@ -279,22 +279,22 @@ MeteorFalls_1F_1R_Text_ArchieSeenYouBefore: @ 822C11C .string "They are the rivals to us,\n" .string "the sea-loving TEAM AQUA!$" -MeteorFalls_1F_1R_Text_BossWeShouldChaseMagma: @ 822C268 +MeteorFalls_1F_1R_Text_BossWeShouldChaseMagma: .string "BOSS, we should give chase to\n" .string "TEAM MAGMA…$" -MeteorFalls_1F_1R_Text_ArchieYesNoTellingWhatMagmaWillDo: @ 822C292 +MeteorFalls_1F_1R_Text_ArchieYesNoTellingWhatMagmaWillDo: .string "ARCHIE: Yes, yes, we must!\n" .string "We've got to hurry.\p" .string "There's no telling what TEAM MAGMA\n" .string "will do at MT. CHIMNEY!$" -MeteorFalls_1F_1R_Text_ArchieFarewell: @ 822C2FC +MeteorFalls_1F_1R_Text_ArchieFarewell: .string "ARCHIE: {PLAYER}, you should keep\n" .string "an eye out for TEAM MAGMA, too.\p" .string "Farewell!$" -MeteorFalls_1F_1R_Text_MeetProfCozmo: @ 822C342 +MeteorFalls_1F_1R_Text_MeetProfCozmo: .string "I… I'm COZMO…\n" .string "I'm a PROFESSOR…\p" .string "TEAM MAGMA asked me to guide them\n" @@ -309,7 +309,7 @@ MeteorFalls_1F_1R_Text_MeetProfCozmo: @ 822C342 .string "What are they going to do with that\n" .string "METEORITE at MT. CHIMNEY?$" -MeteorFalls_1F_1R_Text_WhatsTeamMagmaDoingAtMtChimney: @ 822C47D +MeteorFalls_1F_1R_Text_WhatsTeamMagmaDoingAtMtChimney: .string "PROF. COZMO: But that TEAM MAGMA…\p" .string "What are they going to do with that\n" .string "METEORITE at MT. CHIMNEY?$" diff --git a/data/maps/MeteorFalls_1F_2R/scripts.inc b/data/maps/MeteorFalls_1F_2R/scripts.inc index 0fa73212e9..706d362bed 100644 --- a/data/maps/MeteorFalls_1F_2R/scripts.inc +++ b/data/maps/MeteorFalls_1F_2R/scripts.inc @@ -1,7 +1,7 @@ -MeteorFalls_1F_2R_MapScripts:: @ 822C4DD +MeteorFalls_1F_2R_MapScripts:: .byte 0 -MeteorFalls_1F_2R_EventScript_Nicolas:: @ 822C4DE +MeteorFalls_1F_2R_EventScript_Nicolas:: trainerbattle_single TRAINER_NICOLAS_1, MeteorFalls_1F_2R_Text_NicolasIntro, MeteorFalls_1F_2R_Text_NicolasDefeat, MeteorFalls_1F_2R_EventScript_RegisterNicolas specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -10,7 +10,7 @@ MeteorFalls_1F_2R_EventScript_Nicolas:: @ 822C4DE release end -MeteorFalls_1F_2R_EventScript_RegisterNicolas:: @ 822C50A +MeteorFalls_1F_2R_EventScript_RegisterNicolas:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox MeteorFalls_1F_2R_Text_NicolasRegister, MSGBOX_DEFAULT @@ -18,12 +18,12 @@ MeteorFalls_1F_2R_EventScript_RegisterNicolas:: @ 822C50A release end -MeteorFalls_1F_2R_EventScript_RematchNicolas:: @ 822C529 +MeteorFalls_1F_2R_EventScript_RematchNicolas:: trainerbattle_rematch TRAINER_NICOLAS_1, MeteorFalls_1F_2R_Text_NicolasRematchIntro, MeteorFalls_1F_2R_Text_NicolasRematchDefeat msgbox MeteorFalls_1F_2R_Text_NicolasPostRematch, MSGBOX_AUTOCLOSE end -MeteorFalls_1F_2R_EventScript_John:: @ 822C540 +MeteorFalls_1F_2R_EventScript_John:: trainerbattle_double TRAINER_JOHN_AND_JAY_1, MeteorFalls_1F_2R_Text_JohnIntro, MeteorFalls_1F_2R_Text_JohnDefeat, MeteorFalls_1F_2R_Text_JohnNotEnoughMons, MeteorFalls_1F_2R_EventScript_RegisterJohn specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -32,18 +32,18 @@ MeteorFalls_1F_2R_EventScript_John:: @ 822C540 release end -MeteorFalls_1F_2R_EventScript_RegisterJohn:: @ 822C570 +MeteorFalls_1F_2R_EventScript_RegisterJohn:: msgbox MeteorFalls_1F_2R_Text_JohnRegister, MSGBOX_DEFAULT register_matchcall TRAINER_JOHN_AND_JAY_1 release end -MeteorFalls_1F_2R_EventScript_RematchJohn:: @ 822C589 +MeteorFalls_1F_2R_EventScript_RematchJohn:: trainerbattle_rematch_double TRAINER_JOHN_AND_JAY_1, MeteorFalls_1F_2R_Text_JohnRematchIntro, MeteorFalls_1F_2R_Text_JohnRematchDefeat, MeteorFalls_1F_2R_Text_JohnRematchNotEnoughMons msgbox MeteorFalls_1F_2R_Text_JohnPostRematch, MSGBOX_AUTOCLOSE end -MeteorFalls_1F_2R_EventScript_Jay:: @ 822C5A4 +MeteorFalls_1F_2R_EventScript_Jay:: trainerbattle_double TRAINER_JOHN_AND_JAY_1, MeteorFalls_1F_2R_Text_JayIntro, MeteorFalls_1F_2R_Text_JayDefeat, MeteorFalls_1F_2R_Text_JayNotEnoughMons, MeteorFalls_1F_2R_EventScript_RegisterJay specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -52,133 +52,133 @@ MeteorFalls_1F_2R_EventScript_Jay:: @ 822C5A4 release end -MeteorFalls_1F_2R_EventScript_RegisterJay:: @ 822C5D4 +MeteorFalls_1F_2R_EventScript_RegisterJay:: msgbox MeteorFalls_1F_2R_Text_JohnRegister, MSGBOX_DEFAULT @ John speaks for both during register register_matchcall TRAINER_JOHN_AND_JAY_1 release end -MeteorFalls_1F_2R_EventScript_RematchJay:: @ 822C5ED +MeteorFalls_1F_2R_EventScript_RematchJay:: trainerbattle_rematch_double TRAINER_JOHN_AND_JAY_1, MeteorFalls_1F_2R_Text_JayRematchIntro, MeteorFalls_1F_2R_Text_JayRematchDefeat, MeteorFalls_1F_2R_Text_JayRematchNotEnoughMons msgbox MeteorFalls_1F_2R_Text_JayPostRematch, MSGBOX_AUTOCLOSE end -MeteorFalls_1F_2R_Text_NicolasIntro: @ 822C608 +MeteorFalls_1F_2R_Text_NicolasIntro: .string "This is where we DRAGON users do our\n" .string "training.\p" .string "The CHAMPION even visits.\n" .string "Now do you see how special it is here?$" -MeteorFalls_1F_2R_Text_NicolasDefeat: @ 822C678 +MeteorFalls_1F_2R_Text_NicolasDefeat: .string "Urgh!\n" .string "I didn't expect you to be so strong!$" -MeteorFalls_1F_2R_Text_NicolasPostBattle: @ 822C6A3 +MeteorFalls_1F_2R_Text_NicolasPostBattle: .string "The road ahead remains long and harsh.\p" .string "When will my POKéMON and I become\n" .string "the best?$" -MeteorFalls_1F_2R_Text_NicolasRegister: @ 822C6F6 +MeteorFalls_1F_2R_Text_NicolasRegister: .string "I want to know more about your power.\n" .string "Let me register you in my POKéNAV.$" -MeteorFalls_1F_2R_Text_NicolasRematchIntro: @ 822C73F +MeteorFalls_1F_2R_Text_NicolasRematchIntro: .string "Since we met, we have trained hard\n" .string "with our sights on number one.\p" .string "Help us see how much stronger we've\n" .string "become!$" -MeteorFalls_1F_2R_Text_NicolasRematchDefeat: @ 822C7AD +MeteorFalls_1F_2R_Text_NicolasRematchDefeat: .string "Urgh!\n" .string "I didn't expect you to be so strong!$" -MeteorFalls_1F_2R_Text_NicolasPostRematch: @ 822C7D8 +MeteorFalls_1F_2R_Text_NicolasPostRematch: .string "You've obviously kept up your\n" .string "POKéMON training.\p" .string "So long as you remain strong, I, too,\n" .string "can become stronger!$" -MeteorFalls_1F_2R_Text_JohnIntro: @ 822C843 +MeteorFalls_1F_2R_Text_JohnIntro: .string "JOHN: We've always battled POKéMON\n" .string "together as a twosome.\l" .string "We've confidence in ourselves.$" -MeteorFalls_1F_2R_Text_JohnDefeat: @ 822C89C +MeteorFalls_1F_2R_Text_JohnDefeat: .string "JOHN: Oh, my.\n" .string "We've lost, dear wife.$" -MeteorFalls_1F_2R_Text_JohnPostBattle: @ 822C8C1 +MeteorFalls_1F_2R_Text_JohnPostBattle: .string "JOHN: We've been married for\n" .string "fifty years.\p" .string "Come to think of it, I've yet to beat\n" .string "my dear wife in a battle.$" -MeteorFalls_1F_2R_Text_JohnNotEnoughMons: @ 822C92B +MeteorFalls_1F_2R_Text_JohnNotEnoughMons: .string "JOHN: Well, well, what a young TRAINER!\p" .string "Will you battle with us? If so, you'll\n" .string "have to return with more POKéMON.$" -MeteorFalls_1F_2R_Text_JohnRegister: @ 822C99C +MeteorFalls_1F_2R_Text_JohnRegister: .string "JOHN: Young TRAINER, if the chance\n" .string "arises, will you battle with us again?$" -MeteorFalls_1F_2R_Text_JayIntro: @ 822C9E6 +MeteorFalls_1F_2R_Text_JayIntro: .string "JAY: We've been married for\n" .string "fifty years.\p" .string "The bond we share as a couple could\n" .string "never be broken.$" -MeteorFalls_1F_2R_Text_JayDefeat: @ 822CA44 +MeteorFalls_1F_2R_Text_JayDefeat: .string "JAY: Oh, dear.\n" .string "We've lost, my dear husband.$" -MeteorFalls_1F_2R_Text_JayPostBattle: @ 822CA70 +MeteorFalls_1F_2R_Text_JayPostBattle: .string "JAY: Fifty years of marriage…\p" .string "If we ever argued, we always settled\n" .string "it with a POKéMON battle…$" -MeteorFalls_1F_2R_Text_JayNotEnoughMons: @ 822CACD +MeteorFalls_1F_2R_Text_JayNotEnoughMons: .string "JAY: Well, well, aren't you a young\n" .string "TRAINER?\p" .string "If you'd care to battle with us, you'll\n" .string "have to come back with more POKéMON.$" -MeteorFalls_1F_2R_Text_JohnRematchIntro: @ 822CB47 +MeteorFalls_1F_2R_Text_JohnRematchIntro: .string "JOHN: We've always battled POKéMON\n" .string "together as a twosome.\l" .string "We've confidence in ourselves.$" -MeteorFalls_1F_2R_Text_JohnRematchDefeat: @ 822CBA0 +MeteorFalls_1F_2R_Text_JohnRematchDefeat: .string "JOHN: Oh, my.\n" .string "We've lost, dear wife.$" -MeteorFalls_1F_2R_Text_JohnPostRematch: @ 822CBC5 +MeteorFalls_1F_2R_Text_JohnPostRematch: .string "JOHN: Married for fifty years…\p" .string "On reflection, the dear wife and I,\n" .string "we battled day in and day out…$" -MeteorFalls_1F_2R_Text_JohnRematchNotEnoughMons: @ 822CC27 +MeteorFalls_1F_2R_Text_JohnRematchNotEnoughMons: .string "JOHN: Well, well, what a young TRAINER!\p" .string "Will you battle with us? If so, you'll\n" .string "have to return with more POKéMON.$" -MeteorFalls_1F_2R_Text_JayRematchIntro: @ 822CC98 +MeteorFalls_1F_2R_Text_JayRematchIntro: .string "JAY: We've been married for\n" .string "fifty years.\p" .string "We've supported each other all that\n" .string "time. We've made ourselves strong.$" -MeteorFalls_1F_2R_Text_JayRematchDefeat: @ 822CD08 +MeteorFalls_1F_2R_Text_JayRematchDefeat: .string "JAY: Oh, dear.\n" .string "We've lost, my dear husband.$" -MeteorFalls_1F_2R_Text_JayPostRematch: @ 822CD34 +MeteorFalls_1F_2R_Text_JayPostRematch: .string "JAY: Fifty years of marriage…\n" .string "Many things have happened.\p" .string "I hope that we will continue to make\n" .string "happy memories together.$" -MeteorFalls_1F_2R_Text_JayRematchNotEnoughMons: @ 822CDAB +MeteorFalls_1F_2R_Text_JayRematchNotEnoughMons: .string "JAY: Well, well, aren't you a young\n" .string "TRAINER?\p" .string "If you'd care to battle with us, you'll\n" diff --git a/data/maps/MeteorFalls_B1F_1R/scripts.inc b/data/maps/MeteorFalls_B1F_1R/scripts.inc index 551e68180c..6d7af8ed94 100644 --- a/data/maps/MeteorFalls_B1F_1R/scripts.inc +++ b/data/maps/MeteorFalls_B1F_1R/scripts.inc @@ -1,3 +1,3 @@ -MeteorFalls_B1F_1R_MapScripts:: @ 822CE25 +MeteorFalls_B1F_1R_MapScripts:: .byte 0 diff --git a/data/maps/MeteorFalls_B1F_2R/scripts.inc b/data/maps/MeteorFalls_B1F_2R/scripts.inc index 775b5787c4..a1d8d5b65c 100644 --- a/data/maps/MeteorFalls_B1F_2R/scripts.inc +++ b/data/maps/MeteorFalls_B1F_2R/scripts.inc @@ -1,3 +1,3 @@ -MeteorFalls_B1F_2R_MapScripts:: @ 822CE26 +MeteorFalls_B1F_2R_MapScripts:: .byte 0 diff --git a/data/maps/MeteorFalls_StevensCave/scripts.inc b/data/maps/MeteorFalls_StevensCave/scripts.inc index 9ccc2ca68c..a1c9e74ece 100644 --- a/data/maps/MeteorFalls_StevensCave/scripts.inc +++ b/data/maps/MeteorFalls_StevensCave/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_STEVEN, 1 -MeteorFalls_StevensCave_MapScripts:: @ 823B181 +MeteorFalls_StevensCave_MapScripts:: .byte 0 -MeteorFalls_StevensCave_EventScript_Steven:: @ 823B182 +MeteorFalls_StevensCave_EventScript_Steven:: lock goto_if_set FLAG_DEFEATED_METEOR_FALLS_STEVEN, MeteorFalls_StevensCave_EventScript_Defeated waitse @@ -21,14 +21,14 @@ MeteorFalls_StevensCave_EventScript_Steven:: @ 823B182 release end -MeteorFalls_StevensCave_EventScript_Defeated:: @ 823B1CD +MeteorFalls_StevensCave_EventScript_Defeated:: applymovement LOCALID_STEVEN, Common_Movement_FacePlayer waitmovement 0 msgbox MeteorFalls_StevensCave_Text_MyPredictionCameTrue, MSGBOX_DEFAULT release end -MeteorFalls_StevensCave_Text_ShouldKnowHowGoodIAmExpectWorst: @ 823B1E1 +MeteorFalls_StevensCave_Text_ShouldKnowHowGoodIAmExpectWorst: .string "STEVEN: Oh, wow, {PLAYER}{KUN}.\n" .string "I'm amazed you knew where to find me.\p" .string "Do you, uh…maybe think of me as\n" @@ -41,11 +41,11 @@ MeteorFalls_StevensCave_Text_ShouldKnowHowGoodIAmExpectWorst: @ 823B1E1 .string "Okay, {PLAYER}{KUN}, if you're going to mount\n" .string "a serious challenge, expect the worst!$" -MeteorFalls_StevensCave_Text_StevenDefeat: @ 823B32D +MeteorFalls_StevensCave_Text_StevenDefeat: .string "You…\n" .string "I had no idea you'd become so strong…$" -MeteorFalls_StevensCave_Text_MyPredictionCameTrue: @ 823B358 +MeteorFalls_StevensCave_Text_MyPredictionCameTrue: .string "STEVEN: Come to think of it, ever since\n" .string "our paths first crossed in GRANITE\l" .string "CAVE in DEWFORD, I had this feeling.\p" diff --git a/data/maps/MirageTower_1F/scripts.inc b/data/maps/MirageTower_1F/scripts.inc index 74ec749fa9..6a6b4f50ed 100644 --- a/data/maps/MirageTower_1F/scripts.inc +++ b/data/maps/MirageTower_1F/scripts.inc @@ -1,8 +1,8 @@ -MirageTower_1F_MapScripts:: @ 823AD01 +MirageTower_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MirageTower_1F_OnTransition .byte 0 -MirageTower_1F_OnTransition: @ 823AD07 +MirageTower_1F_OnTransition: setflag FLAG_ENTERED_MIRAGE_TOWER setflag FLAG_FORCE_MIRAGE_TOWER_VISIBLE setflag FLAG_LANDMARK_MIRAGE_TOWER diff --git a/data/maps/MirageTower_2F/scripts.inc b/data/maps/MirageTower_2F/scripts.inc index 888288633d..3d53359d4c 100644 --- a/data/maps/MirageTower_2F/scripts.inc +++ b/data/maps/MirageTower_2F/scripts.inc @@ -1,10 +1,10 @@ -MirageTower_2F_MapScripts:: @ 823AD11 +MirageTower_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CaveHole_CheckFallDownHole map_script MAP_SCRIPT_ON_TRANSITION, CaveHole_FixCrackedGround map_script MAP_SCRIPT_ON_RESUME, MirageTower_2F_SetHoleWarp .byte 0 -MirageTower_2F_SetHoleWarp: @ 823AD21 +MirageTower_2F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR setholewarp MAP_MIRAGE_TOWER_1F, 255, 0, 0 end diff --git a/data/maps/MirageTower_3F/scripts.inc b/data/maps/MirageTower_3F/scripts.inc index a54b2cccaa..02b0864008 100644 --- a/data/maps/MirageTower_3F/scripts.inc +++ b/data/maps/MirageTower_3F/scripts.inc @@ -1,10 +1,10 @@ -MirageTower_3F_MapScripts:: @ 823AD2C +MirageTower_3F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CaveHole_CheckFallDownHole map_script MAP_SCRIPT_ON_TRANSITION, CaveHole_FixCrackedGround map_script MAP_SCRIPT_ON_RESUME, MirageTower_3F_SetHoleWarp .byte 0 -MirageTower_3F_SetHoleWarp: @ 823AD3C +MirageTower_3F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR setholewarp MAP_MIRAGE_TOWER_2F, 255, 0, 0 end diff --git a/data/maps/MirageTower_4F/scripts.inc b/data/maps/MirageTower_4F/scripts.inc index a258f9deca..2c96710d13 100644 --- a/data/maps/MirageTower_4F/scripts.inc +++ b/data/maps/MirageTower_4F/scripts.inc @@ -1,10 +1,10 @@ .set LOCALID_ROOT_FOSSIL, 1 .set LOCALID_CLAW_FOSSIL, 2 -MirageTower_4F_MapScripts:: @ 823AD47 +MirageTower_4F_MapScripts:: .byte 0 -MirageTower_4F_EventScript_RootFossil:: @ 823AD48 +MirageTower_4F_EventScript_RootFossil:: lock faceplayer msgbox MirageTower_4F_Text_TakeRootFossil, MSGBOX_YESNO @@ -20,12 +20,12 @@ MirageTower_4F_EventScript_RootFossil:: @ 823AD48 goto MirageTower_4F_EventScript_CollapseMirageTower end -MirageTower_4F_EventScript_LeaveRootFossil:: @ 823AD7F +MirageTower_4F_EventScript_LeaveRootFossil:: msgbox MirageTower_4F_Text_LeftRootFossilAlone, MSGBOX_DEFAULT release end -MirageTower_4F_EventScript_ClawFossil:: @ 823AD89 +MirageTower_4F_EventScript_ClawFossil:: lock faceplayer msgbox MirageTower_4F_Text_TakeClawFossil, MSGBOX_YESNO @@ -41,12 +41,12 @@ MirageTower_4F_EventScript_ClawFossil:: @ 823AD89 goto MirageTower_4F_EventScript_CollapseMirageTower end -MirageTower_4F_EventScript_LeaveClawFossil:: @ 823ADC0 +MirageTower_4F_EventScript_LeaveClawFossil:: msgbox MirageTower_4F_Text_LeaveClawFossilAlone, MSGBOX_DEFAULT release end -MirageTower_4F_EventScript_CollapseMirageTower:: @ 823ADCA +MirageTower_4F_EventScript_CollapseMirageTower:: setvar VAR_0x8004, 1 @ vertical pan setvar VAR_0x8005, 1 @ horizontal pan setvar VAR_0x8006, 32 @ num shakes @@ -62,21 +62,21 @@ MirageTower_4F_EventScript_CollapseMirageTower:: @ 823ADCA release end -MirageTower_4F_Text_TakeRootFossil: @ 823ADF9 +MirageTower_4F_Text_TakeRootFossil: .string "You found the ROOT FOSSIL.\p" .string "If this FOSSIL is taken, the ground\n" .string "around it will likely crumble away…\p" .string "Take the ROOT FOSSIL anyway?$" -MirageTower_4F_Text_LeftRootFossilAlone: @ 823AE79 +MirageTower_4F_Text_LeftRootFossilAlone: .string "{PLAYER} left the ROOT FOSSIL alone.$" -MirageTower_4F_Text_TakeClawFossil: @ 823AE98 +MirageTower_4F_Text_TakeClawFossil: .string "You found the CLAW FOSSIL.\p" .string "If this FOSSIL is taken, the ground\n" .string "around it will likely crumble away…\p" .string "Take the CLAW FOSSIL anyway?$" -MirageTower_4F_Text_LeaveClawFossilAlone: @ 823AF18 +MirageTower_4F_Text_LeaveClawFossilAlone: .string "{PLAYER} left the CLAW FOSSIL alone.$" diff --git a/data/maps/MossdeepCity/scripts.inc b/data/maps/MossdeepCity/scripts.inc index 963635ccd6..07758873d8 100644 --- a/data/maps/MossdeepCity/scripts.inc +++ b/data/maps/MossdeepCity/scripts.inc @@ -5,11 +5,11 @@ .set LOCALID_MAXIE, 14 .set LOCALID_SCOTT, 16 -MossdeepCity_MapScripts:: @ 81E4A96 +MossdeepCity_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MossdeepCity_OnTransition .byte 0 -MossdeepCity_OnTransition: @ 81E4A9C +MossdeepCity_OnTransition: clearflag FLAG_MOSSDEEP_GYM_SWITCH_1 clearflag FLAG_MOSSDEEP_GYM_SWITCH_2 clearflag FLAG_MOSSDEEP_GYM_SWITCH_3 @@ -17,7 +17,7 @@ MossdeepCity_OnTransition: @ 81E4A9C call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather end -MossdeepCity_EventScript_PokefanF:: @ 81E4AB2 +MossdeepCity_EventScript_PokefanF:: lock faceplayer goto_if_set FLAG_RECEIVED_HM08, MossdeepCity_EventScript_PokefanFMagmaGone @@ -25,12 +25,12 @@ MossdeepCity_EventScript_PokefanF:: @ 81E4AB2 release end -MossdeepCity_EventScript_PokefanFMagmaGone:: @ 81E4AC7 +MossdeepCity_EventScript_PokefanFMagmaGone:: msgbox MossdeepCity_Text_SpaceCenterLaunchingRockets, MSGBOX_DEFAULT release end -MossdeepCity_EventScript_Sailor:: @ 81E4AD1 +MossdeepCity_EventScript_Sailor:: lock faceplayer goto_if_set FLAG_RECEIVED_HM08, MossdeepCity_EventScript_SailorMagmaGone @@ -38,49 +38,49 @@ MossdeepCity_EventScript_Sailor:: @ 81E4AD1 release end -MossdeepCity_EventScript_SailorMagmaGone:: @ 81E4AE6 +MossdeepCity_EventScript_SailorMagmaGone:: msgbox MossdeepCity_Text_FeelReliefOnLand, MSGBOX_DEFAULT release end -MossdeepCity_EventScript_NinjaBoy:: @ 81E4AF0 +MossdeepCity_EventScript_NinjaBoy:: msgbox MossdeepCity_Text_WailmerWatching, MSGBOX_NPC end -MossdeepCity_EventScript_ExpertM:: @ 81E4AF9 +MossdeepCity_EventScript_ExpertM:: msgbox MossdeepCity_Text_LifeNeedsSeaToLive, MSGBOX_NPC end -MossdeepCity_EventScript_Girl:: @ 81E4B02 +MossdeepCity_EventScript_Girl:: msgbox MossdeepCity_Text_NiceIfWorldCoveredByFlowers, MSGBOX_NPC end -MossdeepCity_EventScript_Woman:: @ 81E4B0B +MossdeepCity_EventScript_Woman:: msgbox MossdeepCity_Text_SpecialSpaceCenterRock, MSGBOX_NPC end -MossdeepCity_EventScript_WhiteRock:: @ 81E4B14 +MossdeepCity_EventScript_WhiteRock:: msgbox MossdeepCity_Text_ItsAWhiteRock, MSGBOX_SIGN end -MossdeepCity_EventScript_GymSign:: @ 81E4B1D +MossdeepCity_EventScript_GymSign:: msgbox MossdeepCity_Text_GymSign, MSGBOX_SIGN end -MossdeepCity_EventScript_CitySign:: @ 81E4B26 +MossdeepCity_EventScript_CitySign:: msgbox MossdeepCity_Text_CitySign, MSGBOX_SIGN end -MossdeepCity_EventScript_SpaceCenterSign:: @ 81E4B2F +MossdeepCity_EventScript_SpaceCenterSign:: msgbox MossdeepCity_Text_SpaceCenterSign, MSGBOX_SIGN end -MossdeepCity_EventScript_VisitedMossdeep:: @ 81E4B38 +MossdeepCity_EventScript_VisitedMossdeep:: setflag FLAG_VISITED_MOSSDEEP_CITY setvar VAR_TEMP_1, 1 end -MossdeepCity_EventScript_TeamMagmaEnterSpaceCenter:: @ 81E4B41 +MossdeepCity_EventScript_TeamMagmaEnterSpaceCenter:: lockall applymovement LOCALID_MAXIE, MossdeepCity_Movement_MaxieGestureToSpaceCenter waitmovement 0 @@ -106,7 +106,7 @@ MossdeepCity_EventScript_TeamMagmaEnterSpaceCenter:: @ 81E4B41 releaseall end -MossdeepCity_Movement_MaxieGestureToSpaceCenter: @ 81E4BAD +MossdeepCity_Movement_MaxieGestureToSpaceCenter: delay_16 face_right delay_16 @@ -118,14 +118,14 @@ MossdeepCity_Movement_MaxieGestureToSpaceCenter: @ 81E4BAD delay_16 step_end -MossdeepCity_Movement_GruntFaceSpaceCenter: @ 81E4BB7 +MossdeepCity_Movement_GruntFaceSpaceCenter: face_right delay_16 delay_16 delay_16 step_end -MossdeepCity_Movement_MaxieEnterSpaceCenter: @ 81E4BBC +MossdeepCity_Movement_MaxieEnterSpaceCenter: walk_down walk_right walk_right @@ -141,7 +141,7 @@ MossdeepCity_Movement_MaxieEnterSpaceCenter: @ 81E4BBC walk_right step_end -MossdeepCity_Movement_Grunt1EnterSpaceCenter: @ 81E4BCA +MossdeepCity_Movement_Grunt1EnterSpaceCenter: delay_16 delay_8 walk_down @@ -162,7 +162,7 @@ MossdeepCity_Movement_Grunt1EnterSpaceCenter: @ 81E4BCA walk_right step_end -MossdeepCity_Movement_Grunt2EnterSpaceCenter: @ 81E4BDD +MossdeepCity_Movement_Grunt2EnterSpaceCenter: delay_16 delay_8 walk_down @@ -182,7 +182,7 @@ MossdeepCity_Movement_Grunt2EnterSpaceCenter: @ 81E4BDD walk_right step_end -MossdeepCity_Movement_Grunt3EnterSpaceCenter: @ 81E4BEF +MossdeepCity_Movement_Grunt3EnterSpaceCenter: delay_16 delay_8 walk_down @@ -201,7 +201,7 @@ MossdeepCity_Movement_Grunt3EnterSpaceCenter: @ 81E4BEF walk_right step_end -MossdeepCity_Movement_Grunt4EnterSpaceCenter: @ 81E4C00 +MossdeepCity_Movement_Grunt4EnterSpaceCenter: delay_16 delay_8 walk_right @@ -219,7 +219,7 @@ MossdeepCity_Movement_Grunt4EnterSpaceCenter: @ 81E4C00 walk_right step_end -MossdeepCity_EventScript_Man:: @ 81E4C10 +MossdeepCity_EventScript_Man:: lock faceplayer msgbox MossdeepCity_Text_SurfExhilarating, MSGBOX_DEFAULT @@ -228,7 +228,7 @@ MossdeepCity_EventScript_Man:: @ 81E4C10 release end -MossdeepCity_EventScript_KingsRockBoy:: @ 81E4C26 +MossdeepCity_EventScript_KingsRockBoy:: lock faceplayer goto_if_set FLAG_RECEIVED_KINGS_ROCK, MossdeepCity_EventScript_ReceivedKingsRock @@ -243,21 +243,21 @@ MossdeepCity_EventScript_KingsRockBoy:: @ 81E4C26 release end -MossdeepCity_EventScript_ReceivedKingsRock:: @ 81E4C68 +MossdeepCity_EventScript_ReceivedKingsRock:: msgbox MossdeepCity_Text_StevensHouseOverThere, MSGBOX_DEFAULT release end -MossdeepCity_EventScript_DeclineKingsRock:: @ 81E4C72 +MossdeepCity_EventScript_DeclineKingsRock:: msgbox MossdeepCity_Text_WhatToDoWithWeirdRock, MSGBOX_DEFAULT release end -MossdeepCity_EventScript_BlackBelt:: @ 81E4C7C +MossdeepCity_EventScript_BlackBelt:: msgbox MossdeepCity_Text_SootopolisNewGymLeader, MSGBOX_NPC end -MossdeepCity_EventScript_Scott:: @ 81E4C85 +MossdeepCity_EventScript_Scott:: lock faceplayer msgbox MossdeepCity_Text_ScottSomethingWrongWithTown, MSGBOX_DEFAULT @@ -271,25 +271,25 @@ MossdeepCity_EventScript_Scott:: @ 81E4C85 release end -MossdeepCity_EventScript_ScottExitNorth:: @ 81E4CB0 +MossdeepCity_EventScript_ScottExitNorth:: applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Movement_PlayerWatchScottExit applymovement LOCALID_SCOTT, MossdeepCity_Movement_ScottExitNorth waitmovement 0 return -MossdeepCity_EventScript_ScottExitEast:: @ 81E4CC2 +MossdeepCity_EventScript_ScottExitEast:: applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Movement_PlayerWatchScottExit applymovement LOCALID_SCOTT, MossdeepCity_Movement_ScottExitEast waitmovement 0 return -MossdeepCity_Movement_PlayerWatchScottExit: @ 81E4CD4 +MossdeepCity_Movement_PlayerWatchScottExit: delay_16 delay_16 walk_in_place_fastest_left step_end -MossdeepCity_Movement_ScottExitNorth: @ 81E4CD8 +MossdeepCity_Movement_ScottExitNorth: walk_left walk_left walk_left @@ -301,7 +301,7 @@ MossdeepCity_Movement_ScottExitNorth: @ 81E4CD8 walk_left step_end -MossdeepCity_Movement_ScottExitEast: @ 81E4CE2 +MossdeepCity_Movement_ScottExitEast: walk_down walk_left walk_left @@ -314,26 +314,26 @@ MossdeepCity_Movement_ScottExitEast: @ 81E4CE2 walk_left step_end -MossdeepCity_Text_WantKingsRockStevenGaveMe: @ 81E4CED +MossdeepCity_Text_WantKingsRockStevenGaveMe: .string "I got this from STEVEN, but I don't\n" .string "know what it's good for.\p" .string "I think it's called KING'S ROCK.\n" .string "Do you want it?$" -MossdeepCity_Text_YouCanKeepIt: @ 81E4D5B +MossdeepCity_Text_YouCanKeepIt: .string "Why would you want it?\n" .string "You're weird.\p" .string "You can keep it, but keep it a secret\n" .string "from STEVEN.$" -MossdeepCity_Text_StevensHouseOverThere: @ 81E4DB3 +MossdeepCity_Text_StevensHouseOverThere: .string "STEVEN's house is right over there!$" -MossdeepCity_Text_WhatToDoWithWeirdRock: @ 81E4DD7 +MossdeepCity_Text_WhatToDoWithWeirdRock: .string "Yeah, you think so, too! What are you\n" .string "supposed to do with some weird rock?$" -MossdeepCity_Text_WailmerWatching: @ 81E4E22 +MossdeepCity_Text_WailmerWatching: .string "Around MOSSDEEP, you can see wild\n" .string "WAILMER.\p" .string "It's called, uh…\n" @@ -341,17 +341,17 @@ MossdeepCity_Text_WailmerWatching: @ 81E4E22 .string "WAI, WAI, WAI…\p" .string "WAILMER watching!$" -MossdeepCity_Text_SpaceCenterReceivedLetter: @ 81E4E90 +MossdeepCity_Text_SpaceCenterReceivedLetter: .string "The island's SPACE CENTER has been\n" .string "launching huge rockets.\p" .string "There's been some kind of an uproar\n" .string "over a letter they received recently.$" -MossdeepCity_Text_SpaceCenterLaunchingRockets: @ 81E4F15 +MossdeepCity_Text_SpaceCenterLaunchingRockets: .string "The island's SPACE CENTER has been\n" .string "launching huge rockets.$" -MossdeepCity_Text_MossdeepTargetedByMagma: @ 81E4F50 +MossdeepCity_Text_MossdeepTargetedByMagma: .string "I heard from a SAILOR buddy that\n" .string "TEAM AQUA set up shop in LILYCOVE.\p" .string "I also heard that someone came along\n" @@ -361,18 +361,18 @@ MossdeepCity_Text_MossdeepTargetedByMagma: @ 81E4F50 .string "If you want to know what they're up to,\n" .string "go visit the SPACE CENTER.$" -MossdeepCity_Text_FeelReliefOnLand: @ 81E5051 +MossdeepCity_Text_FeelReliefOnLand: .string "I'm a SAILOR, so the sea's obviously\n" .string "more important to me.\p" .string "But you know? When I get back on land\n" .string "after a long voyage, I do feel relief!$" -MossdeepCity_Text_NiceIfWorldCoveredByFlowers: @ 81E50D9 +MossdeepCity_Text_NiceIfWorldCoveredByFlowers: .string "Wouldn't it be nice?\p" .string "If the whole world was covered in\n" .string "plants and flowers like this island?$" -MossdeepCity_Text_LifeNeedsSeaToLive: @ 81E5135 +MossdeepCity_Text_LifeNeedsSeaToLive: .string "All life needs the sea to live, even\n" .string "though it makes its home on the land.\p" .string "Life, having run its course, becomes\n" @@ -381,14 +381,14 @@ MossdeepCity_Text_LifeNeedsSeaToLive: @ 81E5135 .string "the land.\p" .string "Yes, like the very shoreline here.$" -MossdeepCity_Text_SurfExhilarating: @ 81E5213 +MossdeepCity_Text_SurfExhilarating: .string "A voyage on a ship is fine.\p" .string "But crossing the sea with POKéMON\n" .string "using SURF…\p" .string "Now that's an exhilarating trip!\n" .string "Wouldn't you agree, youngster?$" -MossdeepCity_Text_SpecialSpaceCenterRock: @ 81E529D +MossdeepCity_Text_SpecialSpaceCenterRock: .string "This rock has a special meaning to\n" .string "the people at the SPACE CENTER.\p" .string "They put it here as their wish for\n" @@ -398,23 +398,23 @@ MossdeepCity_Text_SpecialSpaceCenterRock: @ 81E529D .string "I use a wish tag to make it happen.\n" .string "That's what I do.$" -MossdeepCity_Text_ItsAWhiteRock: @ 81E5396 +MossdeepCity_Text_ItsAWhiteRock: .string "It's a white rock.$" -MossdeepCity_Text_GymSign: @ 81E53A9 +MossdeepCity_Text_GymSign: .string "MOSSDEEP CITY POKéMON GYM\n" .string "LEADERS: LIZA & TATE\p" .string "“The mystic combination!”$" -MossdeepCity_Text_CitySign: @ 81E53F2 +MossdeepCity_Text_CitySign: .string "MOSSDEEP CITY\n" .string "“Our slogan: Cherish POKéMON!”$" -MossdeepCity_Text_SpaceCenterSign: @ 81E541F +MossdeepCity_Text_SpaceCenterSign: .string "MOSSDEEP SPACE CENTER\n" .string "“The closest place to space.”$" -MossdeepCity_Text_ScottSomethingWrongWithTown: @ 81E5453 +MossdeepCity_Text_ScottSomethingWrongWithTown: .string "SCOTT: {PLAYER}{KUN}, feeling good?\n" .string "I'm doing great!\p" .string "I'd heard MOSSDEEP's GYM LEADER is\n" @@ -427,7 +427,7 @@ MossdeepCity_Text_ScottSomethingWrongWithTown: @ 81E5453 .string "I don't think it concerns me in any\n" .string "way, though.$" -MossdeepCity_Text_SootopolisNewGymLeader: @ 81E5581 +MossdeepCity_Text_SootopolisNewGymLeader: .string "Ahh… It feels great letting the waves\n" .string "wash over my feet…\p" .string "Speaking of the waves, you know that\n" diff --git a/data/maps/MossdeepCity_GameCorner_1F/scripts.inc b/data/maps/MossdeepCity_GameCorner_1F/scripts.inc index 95b08256e8..b2780df045 100644 --- a/data/maps/MossdeepCity_GameCorner_1F/scripts.inc +++ b/data/maps/MossdeepCity_GameCorner_1F/scripts.inc @@ -1,19 +1,19 @@ -MossdeepCity_GameCorner_1F_MapScripts:: @ 8224B27 +MossdeepCity_GameCorner_1F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, MossdeepCity_GameCorner_1F_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, MossdeepCity_GameCorner_1F_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad .byte 0 -MossdeepCity_GameCorner_1F_OnWarp: @ 8224B37 +MossdeepCity_GameCorner_1F_OnWarp: map_script_2 VAR_CABLE_CLUB_STATE, USING_MINIGAME, CableClub_EventScript_CheckTurnAttendant .2byte 0 -MossdeepCity_GameCorner_1F_OnFrame: @ 8224B41 +MossdeepCity_GameCorner_1F_OnFrame: map_script_2 VAR_CABLE_CLUB_STATE, USING_MINIGAME, CableClub_EventScript_ExitMinigameRoom .2byte 0 @ Script is redundant, the label in the goto also does lock and faceplayer -MossdeepCity_GameCorner_1F_EventScript_InfoMan:: @ 8224B4B +MossdeepCity_GameCorner_1F_EventScript_InfoMan:: lock faceplayer goto MossdeepCity_GameCorner_1F_EventScript_InfoMan2 @@ -21,7 +21,7 @@ MossdeepCity_GameCorner_1F_EventScript_InfoMan:: @ 8224B4B end @ Script is redundant, the label in the goto also does lock and faceplayer -MossdeepCity_GameCorner_1F_EventScript_OldMan:: @ 8224B54 +MossdeepCity_GameCorner_1F_EventScript_OldMan:: lock faceplayer goto MossdeepCity_GameCorner_1F_EventScript_OldMan2 @@ -34,54 +34,54 @@ MossdeepCity_GameCorner_1F_EventScript_OldMan:: @ 8224B54 @ The text below is unused and duplicated in its replacement in Sootopolis City @ And the BG Door event was moved inaccessibly into a wall -RS_MysteryEventsHouse_EventScript_Door:: @ 8224B5D +RS_MysteryEventsHouse_EventScript_Door:: msgbox RS_MysteryEventsHouse_Text_DoorIsLocked, MSGBOX_SIGN end -RS_MysteryEventsHouse_Text_OldManGreeting: @ 8224B66 +RS_MysteryEventsHouse_Text_OldManGreeting: .string "When I was young, I traveled the world\n" .string "as a POKéMON TRAINER.\p" .string "Now that I've become an old buzzard,\n" .string "my only amusement is watching young\l" .string "TRAINERS battle.$" -RS_MysteryEventsHouse_Text_DoorIsLocked: @ 8224BFD +RS_MysteryEventsHouse_Text_DoorIsLocked: .string "The door appears to be locked.$" -RS_MysteryEventsHouse_Text_ChallengeVisitingTrainer: @ 8224C1C +RS_MysteryEventsHouse_Text_ChallengeVisitingTrainer: .string "A TRAINER named {STR_VAR_1} is\n" .string "visiting my home.\p" .string "Would you like to challenge\n" .string "{STR_VAR_1}?$" -RS_MysteryEventsHouse_Text_YouWontBattle: @ 8224C64 +RS_MysteryEventsHouse_Text_YouWontBattle: .string "You won't battle? I'm disappointed\n" .string "that I can't see you battle…$" -RS_MysteryEventsHouse_Text_KeepItToA3On3: @ 8224CA4 +RS_MysteryEventsHouse_Text_KeepItToA3On3: .string "Oh, good, good!\p" .string "But my house isn't all that sturdy.\p" .string "Could I ask you to keep it down to\n" .string "a 3-on-3 match?$" -RS_MysteryEventsHouse_Text_SaveYourProgress: @ 8224D0B +RS_MysteryEventsHouse_Text_SaveYourProgress: .string "Before you two battle, you should\n" .string "save your progress.$" -RS_MysteryEventsHouse_Text_HopeToSeeAGoodMatch: @ 8224D41 +RS_MysteryEventsHouse_Text_HopeToSeeAGoodMatch: .string "I hope to see a good match!$" -RS_MysteryEventsHouse_Text_BattleTie: @ 8224D5D +RS_MysteryEventsHouse_Text_BattleTie: .string "So, it became a standoff.\p" .string "It was a brilliant match in which\n" .string "neither side conceded a step!$" -RS_MysteryEventsHouse_Text_BattleWon: @ 8224DB7 +RS_MysteryEventsHouse_Text_BattleWon: .string "That was superlative!\p" .string "Why, it was like seeing myself in\n" .string "my youth again!$" -RS_MysteryEventsHouse_Text_BattleLost: @ 8224DFF +RS_MysteryEventsHouse_Text_BattleLost: .string "Ah, too bad for you!\p" .string "But it was a good match.\n" .string "I hope you can win next time.$" diff --git a/data/maps/MossdeepCity_GameCorner_B1F/scripts.inc b/data/maps/MossdeepCity_GameCorner_B1F/scripts.inc index 695be3c6ec..c9387646a6 100644 --- a/data/maps/MossdeepCity_GameCorner_B1F/scripts.inc +++ b/data/maps/MossdeepCity_GameCorner_B1F/scripts.inc @@ -1,3 +1,3 @@ -MossdeepCity_GameCorner_B1F_MapScripts:: @ 8224E4B +MossdeepCity_GameCorner_B1F_MapScripts:: .byte 0 diff --git a/data/maps/MossdeepCity_Gym/scripts.inc b/data/maps/MossdeepCity_Gym/scripts.inc index 0e6487e16a..22c2e17ab9 100644 --- a/data/maps/MossdeepCity_Gym/scripts.inc +++ b/data/maps/MossdeepCity_Gym/scripts.inc @@ -1,54 +1,54 @@ -MossdeepCity_Gym_MapScripts:: @ 8220800 +MossdeepCity_Gym_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, MossdeepCity_Gym_OnLoad .byte 0 @ NOTE: Mossdeep Gym was redesigned between R/S and E. Leftover (and now functionally unused) scripts are commented below @ All the below checks are leftover from RS. FLAG_MOSSDEEP_GYM_SWITCH_X is never set -MossdeepCity_Gym_OnLoad: @ 8220806 +MossdeepCity_Gym_OnLoad: goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_1, MossdeepCity_Gym_EventScript_SetSwitch1Metatiles goto MossdeepCity_Gym_EventScript_CheckSwitch2 end -MossdeepCity_Gym_EventScript_CheckSwitch2:: @ 8220815 +MossdeepCity_Gym_EventScript_CheckSwitch2:: goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_2, MossdeepCity_Gym_EventScript_SetSwitch2Metatiles goto MossdeepCity_Gym_EventScript_CheckSwitch3 end -MossdeepCity_Gym_EventScript_CheckSwitch3:: @ 8220824 +MossdeepCity_Gym_EventScript_CheckSwitch3:: goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_3, MossdeepCity_Gym_EventScript_SetSwitch3Metatiles goto MossdeepCity_Gym_EventScript_CheckSwitch4 end -MossdeepCity_Gym_EventScript_CheckSwitch4:: @ 8220833 +MossdeepCity_Gym_EventScript_CheckSwitch4:: goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_4, MossdeepCity_Gym_EventScript_SetSwitch4Metatiles end @ All the below set metatile scripts are leftover from RS and are functionally unused -MossdeepCity_Gym_EventScript_SetSwitch1Metatiles:: @ 822083D +MossdeepCity_Gym_EventScript_SetSwitch1Metatiles:: setmetatile 5, 5, METATILE_RS_MossdeepGym_RedArrow_Right, 0 setmetatile 2, 7, METATILE_RS_MossdeepGym_Switch_Down, 1 goto MossdeepCity_Gym_EventScript_CheckSwitch2 end -MossdeepCity_Gym_EventScript_SetSwitch2Metatiles:: @ 8220855 +MossdeepCity_Gym_EventScript_SetSwitch2Metatiles:: setmetatile 8, 14, METATILE_RS_MossdeepGym_RedArrow_Right, 0 setmetatile 8, 10, METATILE_RS_MossdeepGym_Switch_Down, 1 goto MossdeepCity_Gym_EventScript_CheckSwitch3 end -MossdeepCity_Gym_EventScript_SetSwitch3Metatiles:: @ 822086D +MossdeepCity_Gym_EventScript_SetSwitch3Metatiles:: setmetatile 15, 17, METATILE_RS_MossdeepGym_RedArrow_Left, 0 setmetatile 17, 15, METATILE_RS_MossdeepGym_Switch_Down, 1 goto MossdeepCity_Gym_EventScript_CheckSwitch4 end -MossdeepCity_Gym_EventScript_SetSwitch4Metatiles:: @ 8220885 +MossdeepCity_Gym_EventScript_SetSwitch4Metatiles:: setmetatile 1, 23, METATILE_RS_MossdeepGym_RedArrow_Up, 0 setmetatile 5, 24, METATILE_RS_MossdeepGym_Switch_Down, 1 end -MossdeepCity_Gym_EventScript_TateAndLiza:: @ 8220898 +MossdeepCity_Gym_EventScript_TateAndLiza:: trainerbattle_double TRAINER_TATE_AND_LIZA_1, MossdeepCity_Gym_Text_TateAndLizaIntro, MossdeepCity_Gym_Text_TateAndLizaDefeat, MossdeepCity_Gym_Text_TateAndLizaNeedTwoMons, MossdeepCity_Gym_EventScript_TateAndLizaDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -58,7 +58,7 @@ MossdeepCity_Gym_EventScript_TateAndLiza:: @ 8220898 release end -MossdeepCity_Gym_EventScript_TateAndLizaDefeated:: @ 82208D1 +MossdeepCity_Gym_EventScript_TateAndLizaDefeated:: message MossdeepCity_Gym_Text_ReceivedMindBadge waitmessage call Common_EventScript_PlayGymBadgeFanfare @@ -90,7 +90,7 @@ MossdeepCity_Gym_EventScript_TateAndLizaDefeated:: @ 82208D1 release end -MossdeepCity_Gym_EventScript_GiveCalmMind2:: @ 8220937 +MossdeepCity_Gym_EventScript_GiveCalmMind2:: giveitem ITEM_TM04 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -99,7 +99,7 @@ MossdeepCity_Gym_EventScript_GiveCalmMind2:: @ 8220937 release end -MossdeepCity_Gym_EventScript_GiveCalmMind:: @ 822095B +MossdeepCity_Gym_EventScript_GiveCalmMind:: giveitem ITEM_TM04 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_BagIsFull @@ -107,13 +107,13 @@ MossdeepCity_Gym_EventScript_GiveCalmMind:: @ 822095B setflag FLAG_RECEIVED_TM04 return -MossdeepCity_Gym_EventScript_TateAndLizaRematch:: @ 822097E +MossdeepCity_Gym_EventScript_TateAndLizaRematch:: trainerbattle_rematch_double TRAINER_TATE_AND_LIZA_1, MossdeepCity_Gym_Text_TateAndLizaPreRematch, MossdeepCity_Gym_Text_TateAndLizaRematchDefeat, MossdeepCity_Gym_Text_TateAndLizaRematchNeedTwoMons msgbox MossdeepCity_Gym_Text_TateAndLizaPostRematch, MSGBOX_AUTOCLOSE end @ All the below switch scripts are leftover from RS and are functionally unused -MossdeepCity_Gym_EventScript_Switch1:: @ 8220999 +MossdeepCity_Gym_EventScript_Switch1:: lockall goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_1, MossdeepCity_Gym_EventScript_ClearSwitch1 setflag FLAG_MOSSDEEP_GYM_SWITCH_1 @@ -124,13 +124,13 @@ MossdeepCity_Gym_EventScript_Switch1:: @ 8220999 goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end -MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed:: @ 82209C8 +MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed:: special DrawWholeMapView playse SE_CLICK releaseall end -MossdeepCity_Gym_EventScript_ClearSwitch1:: @ 82209D0 +MossdeepCity_Gym_EventScript_ClearSwitch1:: clearflag FLAG_MOSSDEEP_GYM_SWITCH_1 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 @@ -139,7 +139,7 @@ MossdeepCity_Gym_EventScript_ClearSwitch1:: @ 82209D0 goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end -MossdeepCity_Gym_EventScript_Switch2:: @ 82209F5 +MossdeepCity_Gym_EventScript_Switch2:: lockall goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_2, MossdeepCity_Gym_EventScript_ClearSwitch2 setflag FLAG_MOSSDEEP_GYM_SWITCH_2 @@ -150,7 +150,7 @@ MossdeepCity_Gym_EventScript_Switch2:: @ 82209F5 goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end -MossdeepCity_Gym_EventScript_ClearSwitch2:: @ 8220A24 +MossdeepCity_Gym_EventScript_ClearSwitch2:: clearflag FLAG_MOSSDEEP_GYM_SWITCH_2 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 @@ -159,7 +159,7 @@ MossdeepCity_Gym_EventScript_ClearSwitch2:: @ 8220A24 goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end -MossdeepCity_Gym_EventScript_Switch3:: @ 8220A49 +MossdeepCity_Gym_EventScript_Switch3:: lockall goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_3, MossdeepCity_Gym_EventScript_ClearSwitch3 setflag FLAG_MOSSDEEP_GYM_SWITCH_3 @@ -170,7 +170,7 @@ MossdeepCity_Gym_EventScript_Switch3:: @ 8220A49 goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end -MossdeepCity_Gym_EventScript_ClearSwitch3:: @ 8220A78 +MossdeepCity_Gym_EventScript_ClearSwitch3:: clearflag FLAG_MOSSDEEP_GYM_SWITCH_3 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 @@ -179,7 +179,7 @@ MossdeepCity_Gym_EventScript_ClearSwitch3:: @ 8220A78 goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end -MossdeepCity_Gym_EventScript_Switch4:: @ 8220A9D +MossdeepCity_Gym_EventScript_Switch4:: lockall goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_4, MossdeepCity_Gym_EventScript_ClearSwitch4 setflag FLAG_MOSSDEEP_GYM_SWITCH_4 @@ -190,7 +190,7 @@ MossdeepCity_Gym_EventScript_Switch4:: @ 8220A9D goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end -MossdeepCity_Gym_EventScript_ClearSwitch4:: @ 8220ACC +MossdeepCity_Gym_EventScript_ClearSwitch4:: clearflag FLAG_MOSSDEEP_GYM_SWITCH_4 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 @@ -199,74 +199,74 @@ MossdeepCity_Gym_EventScript_ClearSwitch4:: @ 8220ACC goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end -MossdeepCity_Gym_EventScript_WarpToEntrance:: @ 8220AF1 +MossdeepCity_Gym_EventScript_WarpToEntrance:: lockall warpmossdeepgym MAP_MOSSDEEP_CITY_GYM, 255, 7, 30 waitstate releaseall end -MossdeepCity_Gym_EventScript_Preston:: @ 8220AFD +MossdeepCity_Gym_EventScript_Preston:: trainerbattle_single TRAINER_PRESTON, MossdeepCity_Gym_Text_PrestonIntro, MossdeepCity_Gym_Text_PrestonDefeat msgbox MossdeepCity_Gym_Text_PrestonPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Virgil:: @ 8220B14 +MossdeepCity_Gym_EventScript_Virgil:: trainerbattle_single TRAINER_VIRGIL, MossdeepCity_Gym_Text_VirgilIntro, MossdeepCity_Gym_Text_VirgilDefeat msgbox MossdeepCity_Gym_Text_VirgilPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Blake:: @ 8220B2B +MossdeepCity_Gym_EventScript_Blake:: trainerbattle_single TRAINER_BLAKE, MossdeepCity_Gym_Text_BlakeIntro, MossdeepCity_Gym_Text_BlakeDefeat msgbox MossdeepCity_Gym_Text_BlakePostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Hannah:: @ 8220B42 +MossdeepCity_Gym_EventScript_Hannah:: trainerbattle_single TRAINER_HANNAH, MossdeepCity_Gym_Text_HannahIntro, MossdeepCity_Gym_Text_HannahDefeat msgbox MossdeepCity_Gym_Text_HannahPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Samantha:: @ 8220B59 +MossdeepCity_Gym_EventScript_Samantha:: trainerbattle_single TRAINER_SAMANTHA, MossdeepCity_Gym_Text_SamanthaIntro, MossdeepCity_Gym_Text_SamanthaDefeat msgbox MossdeepCity_Gym_Text_SamanthaPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Maura:: @ 8220B70 +MossdeepCity_Gym_EventScript_Maura:: trainerbattle_single TRAINER_MAURA, MossdeepCity_Gym_Text_MauraIntro, MossdeepCity_Gym_Text_MauraDefeat msgbox MossdeepCity_Gym_Text_MauraPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Sylvia:: @ 8220B87 +MossdeepCity_Gym_EventScript_Sylvia:: trainerbattle_single TRAINER_SYLVIA, MossdeepCity_Gym_Text_SylviaIntro, MossdeepCity_Gym_Text_SylviaDefeat msgbox MossdeepCity_Gym_Text_SylviaPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Nate:: @ 8220B9E +MossdeepCity_Gym_EventScript_Nate:: trainerbattle_single TRAINER_NATE, MossdeepCity_Gym_Text_NateIntro, MossdeepCity_Gym_Text_NateDefeat msgbox MossdeepCity_Gym_Text_NatePostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Macey:: @ 8220BB5 +MossdeepCity_Gym_EventScript_Macey:: trainerbattle_single TRAINER_MACEY, MossdeepCity_Gym_Text_MaceyIntro, MossdeepCity_Gym_Text_MaceyDefeat msgbox MossdeepCity_Gym_Text_MaceyPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Clifford:: @ 8220BCC +MossdeepCity_Gym_EventScript_Clifford:: trainerbattle_single TRAINER_CLIFFORD, MossdeepCity_Gym_Text_CliffordIntro, MossdeepCity_Gym_Text_CliffordDefeat msgbox MossdeepCity_Gym_Text_CliffordPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Nicholas:: @ 8220BE3 +MossdeepCity_Gym_EventScript_Nicholas:: trainerbattle_single TRAINER_NICHOLAS, MossdeepCity_Gym_Text_NicholasIntro, MossdeepCity_Gym_Text_NicholasDefeat msgbox MossdeepCity_Gym_Text_NicholasPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_Kathleen:: @ 8220BFA +MossdeepCity_Gym_EventScript_Kathleen:: trainerbattle_single TRAINER_KATHLEEN, MossdeepCity_Gym_Text_KathleenIntro, MossdeepCity_Gym_Text_KathleenDefeat msgbox MossdeepCity_Gym_Text_KathleenPostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_Gym_EventScript_GymGuide:: @ 8220C11 +MossdeepCity_Gym_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_MOSSDEEP_GYM, MossdeepCity_Gym_EventScript_GymGuidePostVictory @@ -274,40 +274,40 @@ MossdeepCity_Gym_EventScript_GymGuide:: @ 8220C11 release end -MossdeepCity_Gym_EventScript_GymGuidePostVictory:: @ 8220C26 +MossdeepCity_Gym_EventScript_GymGuidePostVictory:: msgbox MossdeepCity_Gym_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end @ Leftover from RS, functionally unused -MossdeepCity_Gym_Movement_WaitAfterSwitchUse: @ 8220C30 +MossdeepCity_Gym_Movement_WaitAfterSwitchUse: delay_16 delay_16 step_end -MossdeepCity_Gym_EventScript_LeftGymStatue:: @ 8220C33 +MossdeepCity_Gym_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE07_GET, MossdeepCity_Gym_EventScript_GymStatueCertified goto MossdeepCity_Gym_EventScript_GymStatue end -MossdeepCity_Gym_EventScript_RightGymStatue:: @ 8220C43 +MossdeepCity_Gym_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE07_GET, MossdeepCity_Gym_EventScript_GymStatueCertified goto MossdeepCity_Gym_EventScript_GymStatue end -MossdeepCity_Gym_EventScript_GymStatueCertified:: @ 8220C53 +MossdeepCity_Gym_EventScript_GymStatueCertified:: msgbox MossdeepCity_Gym_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end -MossdeepCity_Gym_EventScript_GymStatue:: @ 8220C5D +MossdeepCity_Gym_EventScript_GymStatue:: msgbox MossdeepCity_Gym_Text_GymStatue, MSGBOX_DEFAULT releaseall end -MossdeepCity_Gym_EventScript_YellowFloorSwitch:: @ 8220C67 +MossdeepCity_Gym_EventScript_YellowFloorSwitch:: playse SE_SWITCH waitse playse SE_REPEL @@ -319,7 +319,7 @@ MossdeepCity_Gym_EventScript_YellowFloorSwitch:: @ 8220C67 freerotatingtilepuzzle end -MossdeepCity_Gym_EventScript_BlueFloorSwitch:: @ 8220C7D +MossdeepCity_Gym_EventScript_BlueFloorSwitch:: playse SE_SWITCH waitse playse SE_REPEL @@ -331,7 +331,7 @@ MossdeepCity_Gym_EventScript_BlueFloorSwitch:: @ 8220C7D freerotatingtilepuzzle end -MossdeepCity_Gym_EventScript_GreenFloorSwitch:: @ 8220C93 +MossdeepCity_Gym_EventScript_GreenFloorSwitch:: playse SE_SWITCH waitse playse SE_REPEL @@ -343,7 +343,7 @@ MossdeepCity_Gym_EventScript_GreenFloorSwitch:: @ 8220C93 freerotatingtilepuzzle end -MossdeepCity_Gym_EventScript_PurpleFloorSwitch:: @ 8220CA9 +MossdeepCity_Gym_EventScript_PurpleFloorSwitch:: playse SE_SWITCH waitse playse SE_REPEL @@ -355,7 +355,7 @@ MossdeepCity_Gym_EventScript_PurpleFloorSwitch:: @ 8220CA9 freerotatingtilepuzzle end -MossdeepCity_Gym_EventScript_RedFloorSwitch:: @ 8220CBF +MossdeepCity_Gym_EventScript_RedFloorSwitch:: playse SE_SWITCH waitse playse SE_REPEL @@ -367,7 +367,7 @@ MossdeepCity_Gym_EventScript_RedFloorSwitch:: @ 8220CBF freerotatingtilepuzzle end -MossdeepCity_Gym_Text_GymGuideAdvice: @ 8220CD5 +MossdeepCity_Gym_Text_GymGuideAdvice: .string "Yo, how's it going, CHAMPION-bound\n" .string "{PLAYER}?\p" .string "The GYM LEADERS here use\n" @@ -381,46 +381,46 @@ MossdeepCity_Gym_Text_GymGuideAdvice: @ 8220CD5 .string "them how tight you are with your\l" .string "POKéMON. Go for it!$" -MossdeepCity_Gym_Text_GymGuidePostVictory: @ 8220E2A +MossdeepCity_Gym_Text_GymGuidePostVictory: .string "Wow, you're astounding!\n" .string "You're one great TRAINER!$" -MossdeepCity_Gym_Text_PrestonIntro: @ 8220E5C +MossdeepCity_Gym_Text_PrestonIntro: .string "Battles hinge on the strength of your\n" .string "spirit! The weak-spirited will never win!$" -MossdeepCity_Gym_Text_PrestonDefeat: @ 8220EAC +MossdeepCity_Gym_Text_PrestonDefeat: .string "I lost!\n" .string "I must temper my spirit again!$" -MossdeepCity_Gym_Text_PrestonPostBattle: @ 8220ED3 +MossdeepCity_Gym_Text_PrestonPostBattle: .string "The indecisive lose.\n" .string "That's my warning to you.$" -MossdeepCity_Gym_Text_VirgilIntro: @ 8220F02 +MossdeepCity_Gym_Text_VirgilIntro: .string "Let me see your talent!$" -MossdeepCity_Gym_Text_VirgilDefeat: @ 8220F1A +MossdeepCity_Gym_Text_VirgilDefeat: .string "You possess spectacular talent!$" -MossdeepCity_Gym_Text_VirgilPostBattle: @ 8220F3A +MossdeepCity_Gym_Text_VirgilPostBattle: .string "If there are prodigies in the world,\n" .string "then our GYM LEADERS are them!\p" .string "However, you may be even more talented\n" .string "than them…$" -MossdeepCity_Gym_Text_BlakeIntro: @ 8220FB0 +MossdeepCity_Gym_Text_BlakeIntro: .string "Fufufufu… Watch me levitate a POKé\n" .string "BALL telekinetically!\p" .string "Wrooooooooaaaar!\n" .string "… … … … … … …\p" .string "Sometimes, I'm out of sync…$" -MossdeepCity_Gym_Text_BlakeDefeat: @ 8221024 +MossdeepCity_Gym_Text_BlakeDefeat: .string "My POKéMON battling skills are out\n" .string "of sync, too!$" -MossdeepCity_Gym_Text_BlakePostBattle: @ 8221055 +MossdeepCity_Gym_Text_BlakePostBattle: .string "A POKé BALL was too heavy to lift\n" .string "psychically. But this dust bunny…\p" .string "Whoooooooooooooooh!\n" @@ -428,127 +428,127 @@ MossdeepCity_Gym_Text_BlakePostBattle: @ 8221055 .string "No, I'm not cheating!\n" .string "I didn't blow on it! Honestly!$" -MossdeepCity_Gym_Text_HannahIntro: @ 82210EE +MossdeepCity_Gym_Text_HannahIntro: .string "When you lose to me, don't be too hard\n" .string "on yourself.\p" .string "It's not that you're weak--I'm just\n" .string "too strong!$" -MossdeepCity_Gym_Text_HannahDefeat: @ 8221152 +MossdeepCity_Gym_Text_HannahDefeat: .string "You're just too strong!$" -MossdeepCity_Gym_Text_HannahPostBattle: @ 822116A +MossdeepCity_Gym_Text_HannahPostBattle: .string "I'm not going to get down on myself for\n" .string "losing. I just need to train harder.\p" .string "Positive thinking--that's my strong\n" .string "point!$" -MossdeepCity_Gym_Text_SamanthaIntro: @ 82211E2 +MossdeepCity_Gym_Text_SamanthaIntro: .string "I see it…\n" .string "I see your future…\p" .string "If you can beat me, I will tell you\n" .string "your future!$" -MossdeepCity_Gym_Text_SamanthaDefeat: @ 8221230 +MossdeepCity_Gym_Text_SamanthaDefeat: .string "I surrender!$" -MossdeepCity_Gym_Text_SamanthaPostBattle: @ 822123D +MossdeepCity_Gym_Text_SamanthaPostBattle: .string "You will wage a terrifically intense\n" .string "battle with our GYM LEADERS…\p" .string "The result…\n" .string "You won't hear it from me!$" -MossdeepCity_Gym_Text_MauraIntro: @ 82212A6 +MossdeepCity_Gym_Text_MauraIntro: .string "The roads you have traveled…\n" .string "What you have experienced…\p" .string "Come at me with everything you've\n" .string "learned!$" -MossdeepCity_Gym_Text_MauraDefeat: @ 8221309 +MossdeepCity_Gym_Text_MauraDefeat: .string "You've traveled a path of greatness!$" -MossdeepCity_Gym_Text_MauraPostBattle: @ 822132E +MossdeepCity_Gym_Text_MauraPostBattle: .string "A bright future awaits those who have\n" .string "worked diligently.\p" .string "For those who lazed idly, there is\n" .string "only despair at the end.\p" .string "What goes around comes around…$" -MossdeepCity_Gym_Text_SylviaIntro: @ 82213C2 +MossdeepCity_Gym_Text_SylviaIntro: .string "Even at the risk of life, I will win\n" .string "this battle!$" -MossdeepCity_Gym_Text_SylviaDefeat: @ 82213F4 +MossdeepCity_Gym_Text_SylviaDefeat: .string "What you do…\n" .string "It horrifies me…$" -MossdeepCity_Gym_Text_SylviaPostBattle: @ 8221412 +MossdeepCity_Gym_Text_SylviaPostBattle: .string "How dare you beat me…\p" .string "It won't be my fault if something\n" .string "horrible befalls you…$" -MossdeepCity_Gym_Text_NateIntro: @ 8221460 +MossdeepCity_Gym_Text_NateIntro: .string "Hohoho.\p" .string "You need me to show you how tenacious\n" .string "the PSYCHIC type can be.$" -MossdeepCity_Gym_Text_NateDefeat: @ 82214A7 +MossdeepCity_Gym_Text_NateDefeat: .string "Oh! My, my!\n" .string "Your battle style is fantastic!$" -MossdeepCity_Gym_Text_NatePostBattle: @ 82214D3 +MossdeepCity_Gym_Text_NatePostBattle: .string "I… I don't let defeat rattle m-me,\n" .string "however b-badly.$" -MossdeepCity_Gym_Text_KathleenIntro: @ 8221507 +MossdeepCity_Gym_Text_KathleenIntro: .string "Let me show you a perfectly awful,\n" .string "horrifying time!$" -MossdeepCity_Gym_Text_KathleenDefeat: @ 822153B +MossdeepCity_Gym_Text_KathleenDefeat: .string "N-nooooo!$" -MossdeepCity_Gym_Text_KathleenPostBattle: @ 8221545 +MossdeepCity_Gym_Text_KathleenPostBattle: .string "Your vitality is contagious!\n" .string "Get away from me quickly!$" -MossdeepCity_Gym_Text_CliffordIntro: @ 822157C +MossdeepCity_Gym_Text_CliffordIntro: .string "I may be past my prime, but I suggest\n" .string "you not patronize me.$" -MossdeepCity_Gym_Text_CliffordDefeat: @ 82215B8 +MossdeepCity_Gym_Text_CliffordDefeat: .string "Ah, you overflow with the power\n" .string "of youth!$" -MossdeepCity_Gym_Text_CliffordPostBattle: @ 82215E2 +MossdeepCity_Gym_Text_CliffordPostBattle: .string "It seems that I could not overcome\n" .string "your youthful energy.$" -MossdeepCity_Gym_Text_MaceyIntro: @ 822161B +MossdeepCity_Gym_Text_MaceyIntro: .string "You're not getting through to the end!\n" .string "Not if I can help it!$" -MossdeepCity_Gym_Text_MaceyDefeat: @ 8221658 +MossdeepCity_Gym_Text_MaceyDefeat: .string "How could you be so ludicrously\n" .string "strong?$" -MossdeepCity_Gym_Text_MaceyPostBattle: @ 8221680 +MossdeepCity_Gym_Text_MaceyPostBattle: .string "Humph! You may be strong, but you're\n" .string "not suitable for the PSYCHIC type!\p" .string "The way you battle is somehow brutal!$" -MossdeepCity_Gym_Text_NicholasIntro: @ 82216EE +MossdeepCity_Gym_Text_NicholasIntro: .string "Wroooar! Have a taste of my super\n" .string "POKéMON hard-battling power!$" -MossdeepCity_Gym_Text_NicholasDefeat: @ 822172D +MossdeepCity_Gym_Text_NicholasDefeat: .string "Oh!\n" .string "Done in!$" -MossdeepCity_Gym_Text_NicholasPostBattle: @ 822173A +MossdeepCity_Gym_Text_NicholasPostBattle: .string "All right! I think I'll develop a special\n" .string "invincible POKéMON power next.$" -MossdeepCity_Gym_Text_TateAndLizaIntro: @ 8221783 +MossdeepCity_Gym_Text_TateAndLizaIntro: .string "TATE: Hehehe… Were you surprised?\p" .string "LIZA: Fufufu… Were you surprised?\p" .string "TATE: That there are two GYM LEADERS?\n" @@ -562,24 +562,24 @@ MossdeepCity_Gym_Text_TateAndLizaIntro: @ 8221783 .string "TATE: This combination of ours…\n" .string "LIZA: Can you beat it?$" -MossdeepCity_Gym_Text_TateAndLizaDefeat: @ 82218EC +MossdeepCity_Gym_Text_TateAndLizaDefeat: .string "TATE: What?! Our combination…\n" .string "LIZA: Was shattered!\p" .string "TATE: It can't be helped. You've won…\n" .string "LIZA: So, in recognition, take this.$" -MossdeepCity_Gym_Text_ReceivedMindBadge: @ 822196A +MossdeepCity_Gym_Text_ReceivedMindBadge: .string "{PLAYER} received the MIND BADGE\n" .string "from TATE and LIZA.$" -MossdeepCity_Gym_Text_ExplainMindBadgeTakeThis: @ 8221999 +MossdeepCity_Gym_Text_ExplainMindBadgeTakeThis: .string "TATE: The MIND BADGE enhances the\n" .string "SP. ATK and SP. DEF of POKéMON.\p" .string "LIZA: It also lets you use the HM move\n" .string "DIVE outside of battle.\p" .string "TATE: You should also take this, too.$" -MossdeepCity_Gym_Text_ExplainCalmMind: @ 8221A40 +MossdeepCity_Gym_Text_ExplainCalmMind: .string "TATE: That TM04 contains…\n" .string "LIZA: CALM MIND!\p" .string "TATE: It raises SP. ATK and…\n" @@ -588,18 +588,18 @@ MossdeepCity_Gym_Text_ExplainCalmMind: @ 8221A40 .string "LIZA: For PSYCHIC POKéMON!\p" .string "… … … … … …$" -MossdeepCity_Gym_Text_RegisteredTateAndLiza: @ 8221AEA +MossdeepCity_Gym_Text_RegisteredTateAndLiza: .string "Registered GYM LEADERS TATE & LIZA\n" .string "in the POKéNAV.$" -MossdeepCity_Gym_Text_TateAndLizaPostBattle: @ 8221B1D +MossdeepCity_Gym_Text_TateAndLizaPostBattle: .string "TATE: Looks like the bond between you\n" .string "and your POKéMON is far stronger than\l" .string "the bond that we share as twins.\p" .string "LIZA: You will become even stronger!\n" .string "We've battled you, so we know.$" -MossdeepCity_Gym_Text_TateAndLizaNeedTwoMons: @ 8221BCE +MossdeepCity_Gym_Text_TateAndLizaNeedTwoMons: .string "TATE: Hehehe… Were you surprised?\p" .string "LIZA: That there are two GYM LEADERS?\p" .string "TATE: Oops, you have only one…\n" @@ -608,15 +608,15 @@ MossdeepCity_Gym_Text_TateAndLizaNeedTwoMons: @ 8221BCE .string "LIZA: If you want to challenge us,\n" .string "bring some more POKéMON.$" -MossdeepCity_Gym_Text_GymStatue: @ 8221CB0 +MossdeepCity_Gym_Text_GymStatue: .string "MOSSDEEP CITY POKéMON GYM$" -MossdeepCity_Gym_Text_GymStatueCertified: @ 8221CCA +MossdeepCity_Gym_Text_GymStatueCertified: .string "MOSSDEEP CITY POKéMON GYM\p" .string "LIZA AND TATE'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" -MossdeepCity_Gym_Text_TateAndLizaPreRematch: @ 8221D0B +MossdeepCity_Gym_Text_TateAndLizaPreRematch: .string "TATE: POKéMON…\n" .string "LIZA: POKéMON…\p" .string "TATE: By changing the party's mix…\n" @@ -628,17 +628,17 @@ MossdeepCity_Gym_Text_TateAndLizaPreRematch: @ 8221D0B .string "TATE: Our combination…\n" .string "LIZA: We'll show you again and again!$" -MossdeepCity_Gym_Text_TateAndLizaRematchDefeat: @ 8221E05 +MossdeepCity_Gym_Text_TateAndLizaRematchDefeat: .string "TATE: You and your POKéMON…\n" .string "LIZA: It's as if you were siblings!$" -MossdeepCity_Gym_Text_TateAndLizaPostRematch: @ 8221E45 +MossdeepCity_Gym_Text_TateAndLizaPostRematch: .string "TATE: You can knock us down,\n" .string "but we'll never stay down!\p" .string "LIZA: Because the two of us,\n" .string "we always support each other!$" -MossdeepCity_Gym_Text_TateAndLizaRematchNeedTwoMons: @ 8221EB8 +MossdeepCity_Gym_Text_TateAndLizaRematchNeedTwoMons: .string "TATE: You're back again…\n" .string "LIZA: You're back again…\p" .string "TATE: To give us a rematch.\n" diff --git a/data/maps/MossdeepCity_House1/scripts.inc b/data/maps/MossdeepCity_House1/scripts.inc index 3ad07e0233..99224a795e 100644 --- a/data/maps/MossdeepCity_House1/scripts.inc +++ b/data/maps/MossdeepCity_House1/scripts.inc @@ -1,7 +1,7 @@ -MossdeepCity_House1_MapScripts:: @ 8221FD5 +MossdeepCity_House1_MapScripts:: .byte 0 -MossdeepCity_House1_EventScript_BlackBelt:: @ 8221FD6 +MossdeepCity_House1_EventScript_BlackBelt:: lock faceplayer bufferleadmonspeciesname 0 @@ -13,30 +13,30 @@ MossdeepCity_House1_EventScript_BlackBelt:: @ 8221FD6 release end -MossdeepCity_House1_EventScript_NeutralNature:: @ 8221FFC +MossdeepCity_House1_EventScript_NeutralNature:: msgbox MossdeepCity_House1_Text_DoesntLikeOrDislikePokeblocks, MSGBOX_DEFAULT release end -MossdeepCity_House1_EventScript_Woman:: @ 8222006 +MossdeepCity_House1_EventScript_Woman:: msgbox MossdeepCity_House1_Text_HusbandCanTellPokeblockMonLikes, MSGBOX_NPC end -MossdeepCity_House1_Text_HmmYourPokemon: @ 822200F +MossdeepCity_House1_Text_HmmYourPokemon: .string "Hmm!\n" .string "Your {STR_VAR_1}…$" -MossdeepCity_House1_Text_ItLikesXPokeblocks: @ 822201D +MossdeepCity_House1_Text_ItLikesXPokeblocks: .string "It likes {STR_VAR_1}S,\n" .string "doesn't it?\p" .string "No, I'm positive of it! It definitely\n" .string "likes {STR_VAR_1}S!$" -MossdeepCity_House1_Text_DoesntLikeOrDislikePokeblocks: @ 8222068 +MossdeepCity_House1_Text_DoesntLikeOrDislikePokeblocks: .string "It doesn't appear to like or dislike\n" .string "any {POKEBLOCK}S.$" -MossdeepCity_House1_Text_HusbandCanTellPokeblockMonLikes: @ 8222099 +MossdeepCity_House1_Text_HusbandCanTellPokeblockMonLikes: .string "My husband can tell what kind of\n" .string "{POKEBLOCK}S a POKéMON likes at a glance.$" diff --git a/data/maps/MossdeepCity_House2/scripts.inc b/data/maps/MossdeepCity_House2/scripts.inc index 5e4b3b3429..63036814b2 100644 --- a/data/maps/MossdeepCity_House2/scripts.inc +++ b/data/maps/MossdeepCity_House2/scripts.inc @@ -1,17 +1,17 @@ .set LOCALID_WINGULL, 3 -MossdeepCity_House2_MapScripts:: @ 82220DE +MossdeepCity_House2_MapScripts:: .byte 0 -MossdeepCity_House2_EventScript_Man:: @ 82220DF +MossdeepCity_House2_EventScript_Man:: msgbox MossdeepCity_House2_Text_SisterMailsBoyfriendInFortree, MSGBOX_NPC end -MossdeepCity_House2_EventScript_Twin:: @ 82220E8 +MossdeepCity_House2_EventScript_Twin:: msgbox MossdeepCity_House2_Text_PokemonCarriesMailBackAndForth, MSGBOX_NPC end -MossdeepCity_House2_EventScript_Wingull:: @ 82220F1 +MossdeepCity_House2_EventScript_Wingull:: lock faceplayer waitse @@ -29,17 +29,17 @@ MossdeepCity_House2_EventScript_Wingull:: @ 82220F1 release end -MossdeepCity_House2_EventScript_WingullExitNorth:: @ 8222124 +MossdeepCity_House2_EventScript_WingullExitNorth:: applymovement LOCALID_WINGULL, MossdeepCity_House2_Movement_WingullExitNorth waitmovement 0 return -MossdeepCity_House2_EventScript_WingullExitWest:: @ 822212F +MossdeepCity_House2_EventScript_WingullExitWest:: applymovement LOCALID_WINGULL, MossdeepCity_House2_Movement_WingullExitEast waitmovement 0 return -MossdeepCity_House2_Movement_WingullExitNorth: @ 822213A +MossdeepCity_House2_Movement_WingullExitNorth: walk_fast_right walk_fast_down walk_fast_down @@ -48,25 +48,25 @@ MossdeepCity_House2_Movement_WingullExitNorth: @ 822213A delay_8 step_end -MossdeepCity_House2_Movement_WingullExitEast: @ 8222141 +MossdeepCity_House2_Movement_WingullExitEast: walk_fast_down walk_fast_down walk_fast_down delay_8 step_end -MossdeepCity_House2_Text_SisterMailsBoyfriendInFortree: @ 8222146 +MossdeepCity_House2_Text_SisterMailsBoyfriendInFortree: .string "My little sister exchanges MAIL with\n" .string "her boyfriend in FORTREE.\p" .string "I don't envy her one bit at all.$" -MossdeepCity_House2_Text_PokemonCarriesMailBackAndForth: @ 82221A6 +MossdeepCity_House2_Text_PokemonCarriesMailBackAndForth: .string "Even though I can't see my friend in\n" .string "FORTREE, my POKéMON carries MAIL\l" .string "back and forth for us.\p" .string "I'm not lonesome, even though we're\n" .string "apart.$" -MossdeepCity_House2_Text_Wingull: @ 822222E +MossdeepCity_House2_Text_Wingull: .string "WINGULL: Pihyoh!$" diff --git a/data/maps/MossdeepCity_House3/scripts.inc b/data/maps/MossdeepCity_House3/scripts.inc index b968dfc045..51df05fe04 100644 --- a/data/maps/MossdeepCity_House3/scripts.inc +++ b/data/maps/MossdeepCity_House3/scripts.inc @@ -1,7 +1,7 @@ -MossdeepCity_House3_MapScripts:: @ 82225C2 +MossdeepCity_House3_MapScripts:: .byte 0 -MossdeepCity_House3_EventScript_SuperRodFisherman:: @ 82225C3 +MossdeepCity_House3_EventScript_SuperRodFisherman:: lock faceplayer goto_if_set FLAG_RECEIVED_SUPER_ROD, MossdeepCity_House3_EventScript_ReceivedSuperRod @@ -15,17 +15,17 @@ MossdeepCity_House3_EventScript_SuperRodFisherman:: @ 82225C3 release end -MossdeepCity_House3_EventScript_ReceivedSuperRod:: @ 8222602 +MossdeepCity_House3_EventScript_ReceivedSuperRod:: msgbox MossdeepCity_House3_Text_GoAfterSeafloorPokemon, MSGBOX_DEFAULT release end -MossdeepCity_House3_EventScript_DeclineSuperRod:: @ 822260C +MossdeepCity_House3_EventScript_DeclineSuperRod:: msgbox MossdeepCity_House3_Text_DontYouLikeToFish, MSGBOX_DEFAULT release end -MossdeepCity_House3_Text_YouWantSuperRod: @ 8222616 +MossdeepCity_House3_Text_YouWantSuperRod: .string "Hey there, TRAINER!\n" .string "A SUPER ROD really is super!\p" .string "Say all you want, but this baby can\n" @@ -33,19 +33,19 @@ MossdeepCity_House3_Text_YouWantSuperRod: @ 8222616 .string "What do you think?\n" .string "You want it, don't you?$" -MossdeepCity_House3_Text_SuperRodIsSuper: @ 82226B6 +MossdeepCity_House3_Text_SuperRodIsSuper: .string "You bet, you bet!\n" .string "After all, a SUPER ROD is really super!$" -MossdeepCity_House3_Text_TryDroppingRodInWater: @ 82226F0 +MossdeepCity_House3_Text_TryDroppingRodInWater: .string "If there's any water, try dropping in\n" .string "your ROD and see what bites!$" -MossdeepCity_House3_Text_DontYouLikeToFish: @ 8222733 +MossdeepCity_House3_Text_DontYouLikeToFish: .string "Hunh?\n" .string "Don't you like to fish?$" -MossdeepCity_House3_Text_GoAfterSeafloorPokemon: @ 8222751 +MossdeepCity_House3_Text_GoAfterSeafloorPokemon: .string "Go after the seafloor POKéMON with\n" .string "your SUPER ROD.$" diff --git a/data/maps/MossdeepCity_House4/scripts.inc b/data/maps/MossdeepCity_House4/scripts.inc index 473c1cfbde..85c0e5ebc0 100644 --- a/data/maps/MossdeepCity_House4/scripts.inc +++ b/data/maps/MossdeepCity_House4/scripts.inc @@ -1,7 +1,7 @@ -MossdeepCity_House4_MapScripts:: @ 8222DD7 +MossdeepCity_House4_MapScripts:: .byte 0 -MossdeepCity_House4_EventScript_Woman:: @ 8222DD8 +MossdeepCity_House4_EventScript_Woman:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_House4_EventScript_CanBattleAtSecretBases @@ -9,12 +9,12 @@ MossdeepCity_House4_EventScript_Woman:: @ 8222DD8 release end -MossdeepCity_House4_EventScript_CanBattleAtSecretBases:: @ 8222DED +MossdeepCity_House4_EventScript_CanBattleAtSecretBases:: msgbox MossdeepCity_House4_Text_BrotherLikesToVisitBasesAndBattle, MSGBOX_DEFAULT release end -MossdeepCity_House4_EventScript_NinjaBoy:: @ 8222DF7 +MossdeepCity_House4_EventScript_NinjaBoy:: lock faceplayer special CheckPlayerHasSecretBase @@ -25,12 +25,12 @@ MossdeepCity_House4_EventScript_NinjaBoy:: @ 8222DF7 release end -MossdeepCity_House4_EventScript_NoSecretBase:: @ 8222E14 +MossdeepCity_House4_EventScript_NoSecretBase:: msgbox MossdeepCity_House4_Text_MakeSecretBase, MSGBOX_DEFAULT release end -MossdeepCity_House4_EventScript_Skitty:: @ 8222E1E +MossdeepCity_House4_EventScript_Skitty:: lock faceplayer waitse @@ -40,23 +40,23 @@ MossdeepCity_House4_EventScript_Skitty:: @ 8222E1E release end -MossdeepCity_House4_Text_BrotherLikesToFindBases: @ 8222E31 +MossdeepCity_House4_Text_BrotherLikesToFindBases: .string "My little brother says he likes to go\n" .string "find people's SECRET BASES.$" -MossdeepCity_House4_Text_BrotherLikesToVisitBasesAndBattle: @ 8222E73 +MossdeepCity_House4_Text_BrotherLikesToVisitBasesAndBattle: .string "My little brother says he likes to\n" .string "visit people's SECRET BASES and have\l" .string "POKéMON battles.$" -MossdeepCity_House4_Text_YouMadeSecretBaseNearX: @ 8222ECC +MossdeepCity_House4_Text_YouMadeSecretBaseNearX: .string "Was it you who made a SECRET BASE\n" .string "near {STR_VAR_1}?$" -MossdeepCity_House4_Text_MakeSecretBase: @ 8222EF7 +MossdeepCity_House4_Text_MakeSecretBase: .string "You should make a SECRET BASE\n" .string "somewhere. I'll go find it!$" -MossdeepCity_House4_Text_Skitty: @ 8222F31 +MossdeepCity_House4_Text_Skitty: .string "SKITTY: Miyaan?$" diff --git a/data/maps/MossdeepCity_Mart/scripts.inc b/data/maps/MossdeepCity_Mart/scripts.inc index c0d0ae3116..50edddd09a 100644 --- a/data/maps/MossdeepCity_Mart/scripts.inc +++ b/data/maps/MossdeepCity_Mart/scripts.inc @@ -1,7 +1,7 @@ -MossdeepCity_Mart_MapScripts:: @ 82223C7 +MossdeepCity_Mart_MapScripts:: .byte 0 -MossdeepCity_Mart_EventScript_Clerk:: @ 82223C8 +MossdeepCity_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -12,7 +12,7 @@ MossdeepCity_Mart_EventScript_Clerk:: @ 82223C8 end .align 2 -MossdeepCity_Mart_Pokemart: @ 82223E0 +MossdeepCity_Mart_Pokemart: .2byte ITEM_ULTRA_BALL .2byte ITEM_NET_BALL .2byte ITEM_DIVE_BALL @@ -26,31 +26,31 @@ MossdeepCity_Mart_Pokemart: @ 82223E0 release end -MossdeepCity_Mart_EventScript_Woman:: @ 82223F6 +MossdeepCity_Mart_EventScript_Woman:: msgbox MossdeepCity_Mart_Text_ReviveIsFantastic, MSGBOX_NPC end -MossdeepCity_Mart_EventScript_Boy:: @ 82223FF +MossdeepCity_Mart_EventScript_Boy:: msgbox MossdeepCity_Mart_Text_MaxRepelLastsLongest, MSGBOX_NPC end -MossdeepCity_Mart_EventScript_Sailor:: @ 8222408 +MossdeepCity_Mart_EventScript_Sailor:: msgbox MossdeepCity_Mart_Text_NetAndDiveBallsRare, MSGBOX_NPC end -MossdeepCity_Mart_Text_ReviveIsFantastic: @ 8222411 +MossdeepCity_Mart_Text_ReviveIsFantastic: .string "REVIVE is fantastic!\p" .string "Give it to a fainted POKéMON,\n" .string "and the POKéMON will arise.\p" .string "But be careful, REVIVE doesn't restore\n" .string "the used-up PP of moves.$" -MossdeepCity_Mart_Text_MaxRepelLastsLongest: @ 82224A0 +MossdeepCity_Mart_Text_MaxRepelLastsLongest: .string "MAX REPEL keeps all weak POKéMON away.\p" .string "Out of all the REPEL sprays, it lasts\n" .string "the longest.$" -MossdeepCity_Mart_Text_NetAndDiveBallsRare: @ 82224FA +MossdeepCity_Mart_Text_NetAndDiveBallsRare: .string "The NET and DIVE BALLS are rare POKé\n" .string "BALLS that are only made in MOSSDEEP.\p" .string "A NET BALL is effective against\n" diff --git a/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc b/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc index 7cefc796a0..bfd3561d26 100644 --- a/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_NURSE, 1 -MossdeepCity_PokemonCenter_1F_MapScripts:: @ 822223F +MossdeepCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MossdeepCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -MossdeepCity_PokemonCenter_1F_OnTransition: @ 822224A +MossdeepCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_MOSSDEEP_CITY end -MossdeepCity_PokemonCenter_1F_EventScript_Nurse:: @ 822224E +MossdeepCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -17,21 +17,21 @@ MossdeepCity_PokemonCenter_1F_EventScript_Nurse:: @ 822224E release end -MossdeepCity_PokemonCenter_1F_EventScript_Woman:: @ 822225C +MossdeepCity_PokemonCenter_1F_EventScript_Woman:: msgbox MossdeepCity_PokemonCenter_1F_Text_GymLeaderDuoFormidable, MSGBOX_NPC end -MossdeepCity_PokemonCenter_1F_EventScript_Girl:: @ 8222265 +MossdeepCity_PokemonCenter_1F_EventScript_Girl:: msgbox MossdeepCity_PokemonCenter_1F_Text_AbilitiesMightChangeMoves, MSGBOX_NPC end -MossdeepCity_PokemonCenter_1F_Text_GymLeaderDuoFormidable: @ 822226E +MossdeepCity_PokemonCenter_1F_Text_GymLeaderDuoFormidable: .string "The GYM LEADERS in this town are\n" .string "a formidable duo.\p" .string "Their combination attacks are, like,\n" .string "excellent and wow!$" -MossdeepCity_PokemonCenter_1F_Text_AbilitiesMightChangeMoves: @ 82222D9 +MossdeepCity_PokemonCenter_1F_Text_AbilitiesMightChangeMoves: .string "Depending on the special abilities of\n" .string "POKéMON, some moves might change\l" .string "or not work at all.$" diff --git a/data/maps/MossdeepCity_PokemonCenter_2F/scripts.inc b/data/maps/MossdeepCity_PokemonCenter_2F/scripts.inc index 1d88c9ca2c..3b41bff6c0 100644 --- a/data/maps/MossdeepCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -MossdeepCity_PokemonCenter_2F_MapScripts:: @ 8222334 +MossdeepCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,23 +6,23 @@ MossdeepCity_PokemonCenter_2F_MapScripts:: @ 8222334 .byte 0 @ The below 3 are unused and leftover from RS -MossdeepCity_PokemonCenter_2F_EventScript_Colosseum:: @ 8222349 +MossdeepCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -MossdeepCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 822234F +MossdeepCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -MossdeepCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 8222355 +MossdeepCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end -MossdeepCity_PokemonCenter_2F_EventScript_Woman5:: @ 822235B +MossdeepCity_PokemonCenter_2F_EventScript_Woman5:: msgbox MossdeepCity_PokemonCenter_2F_Text_Woman5, MSGBOX_NPC end -MossdeepCity_PokemonCenter_2F_Text_Woman5: @ 8222364 +MossdeepCity_PokemonCenter_2F_Text_Woman5: .string "If I win a whole lot of link battles\n" .string "and show everyone how good I am,\l" .string "I might get a fan following!$" diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc index eb081dbbbb..4d69725b4c 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc @@ -5,17 +5,17 @@ .set LOCALID_WOMAN, 5 .set LOCALID_STAIR_GRUNT, 9 -MossdeepCity_SpaceCenter_1F_MapScripts:: @ 8222F41 +MossdeepCity_SpaceCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, MossdeepCity_SpaceCenter_1F_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, MossdeepCity_SpaceCenter_1F_OnTransition .byte 0 -MossdeepCity_SpaceCenter_1F_OnTransition: @ 8222F4C +MossdeepCity_SpaceCenter_1F_OnTransition: compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma end -MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma:: @ 8222F58 +MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma:: setobjectxyperm LOCALID_SAILOR, 1, 9 setobjectmovementtype LOCALID_SAILOR, MOVEMENT_TYPE_FACE_RIGHT setobjectxyperm LOCALID_WOMAN, 0, 8 @@ -33,29 +33,29 @@ MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma:: @ 8222F58 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardRight end -MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardLeft:: @ 8222FAA +MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardLeft:: setobjectxyperm LOCALID_STAIR_GRUNT, 12, 2 end -MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardDown:: @ 8222FB2 +MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardDown:: setobjectxyperm LOCALID_STAIR_GRUNT, 13, 3 end @ Functionally unused. See comment on MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast -MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardRight:: @ 8222FBA +MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardRight:: setobjectxyperm LOCALID_STAIR_GRUNT, 14, 2 end -MossdeepCity_SpaceCenter_1F_OnLoad: @ 8222FC2 +MossdeepCity_SpaceCenter_1F_OnLoad: compare VAR_MOSSDEEP_CITY_STATE, 2 goto_if_le MossdeepCity_SpaceCenter_1F_EventScript_SetMagmaNote end -MossdeepCity_SpaceCenter_1F_EventScript_SetMagmaNote:: @ 8222FCE +MossdeepCity_SpaceCenter_1F_EventScript_SetMagmaNote:: setmetatile 2, 5, METATILE_Facility_DataPad, 1 return -MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounter:: @ 8222FD8 +MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounter:: lock faceplayer compare VAR_MOSSDEEP_CITY_STATE, 2 @@ -73,15 +73,15 @@ MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounter:: @ 8222FD8 release end -MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYet:: @ 8223012 +MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYet:: msgbox MossdeepCity_SpaceCenter_1F_Text_RocketLaunchImminent, MSGBOX_DEFAULT return -MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumber:: @ 822301B +MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumber:: msgbox MossdeepCity_SpaceCenter_1F_Text_SuccessfulLaunchNumber, MSGBOX_DEFAULT return -MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounterMagma:: @ 8223024 +MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounterMagma:: dotimebasedevents specialvar VAR_RESULT, GetWeekCount buffernumberstring 0, VAR_RESULT @@ -95,15 +95,15 @@ MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounterMagma:: @ 8223024 release end -MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYetMagma:: @ 8223051 +MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYetMagma:: msgbox MossdeepCity_SpaceCenter_1F_Text_HaywireButRocketLaunchImminent, MSGBOX_DEFAULT return -MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumberMagma:: @ 822305A +MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumberMagma:: msgbox MossdeepCity_SpaceCenter_1F_Text_HaywireButSuccessfulLaunchNumber, MSGBOX_DEFAULT return -MossdeepCity_SpaceCenter_1F_EventScript_Scientist:: @ 8223063 +MossdeepCity_SpaceCenter_1F_EventScript_Scientist:: lock faceplayer compare VAR_MOSSDEEP_CITY_STATE, 2 @@ -112,14 +112,14 @@ MossdeepCity_SpaceCenter_1F_EventScript_Scientist:: @ 8223063 release end -MossdeepCity_SpaceCenter_1F_EventScript_ScientistMagma:: @ 822307A +MossdeepCity_SpaceCenter_1F_EventScript_ScientistMagma:: msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaHaveSightsOnSpaceCenter, MSGBOX_DEFAULT applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestRight waitmovement 0 release end -MossdeepCity_SpaceCenter_1F_EventScript_SunStoneMan:: @ 822308E +MossdeepCity_SpaceCenter_1F_EventScript_SunStoneMan:: lock faceplayer compare VAR_MOSSDEEP_CITY_STATE, 2 @@ -134,12 +134,12 @@ MossdeepCity_SpaceCenter_1F_EventScript_SunStoneMan:: @ 822308E release end -MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStone:: @ 82230D0 +MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStone:: msgbox MossdeepCity_SpaceCenter_1F_Text_HoennFamousForMeteorShowers, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma:: @ 82230DA +MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma:: goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStoneMagma msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaCantStealFuelTakeThis, MSGBOX_DEFAULT giveitem ITEM_SUN_STONE @@ -152,14 +152,14 @@ MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma:: @ 82230DA release end -MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStoneMagma:: @ 8223119 +MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStoneMagma:: msgbox MossdeepCity_SpaceCenter_1F_Text_CantStrollOnBeachWithMagma, MSGBOX_DEFAULT applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestRight waitmovement 0 release end -MossdeepCity_SpaceCenter_1F_EventScript_Woman:: @ 822312D +MossdeepCity_SpaceCenter_1F_EventScript_Woman:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal @@ -170,17 +170,17 @@ MossdeepCity_SpaceCenter_1F_EventScript_Woman:: @ 822312D goto MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma end -MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal:: @ 8223154 +MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal:: msgbox MossdeepCity_SpaceCenter_1F_Text_DidPokemonComeFromSpace, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma:: @ 822315E +MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma:: msgbox MossdeepCity_SpaceCenter_1F_Text_AquaShouldBeatMagma, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_1F_EventScript_OldMan:: @ 8223168 +MossdeepCity_SpaceCenter_1F_EventScript_OldMan:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal @@ -191,7 +191,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_OldMan:: @ 8223168 goto MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma end -MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal:: @ 822318F +MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal:: msgbox MossdeepCity_SpaceCenter_1F_Text_RocketsBoggleMyMind, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection @@ -199,7 +199,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal:: @ 822318F release end -MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma:: @ 82231A4 +MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma:: msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaWantsToSpoilMyDream, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection @@ -207,7 +207,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma:: @ 82231A4 release end -MossdeepCity_SpaceCenter_1F_EventScript_Steven:: @ 82231B9 +MossdeepCity_SpaceCenter_1F_EventScript_Steven:: lock faceplayer msgbox MossdeepCity_SpaceCenter_1F_Text_StevenMagmaCantBeAllowedToTakeFuel, MSGBOX_DEFAULT @@ -216,28 +216,28 @@ MossdeepCity_SpaceCenter_1F_EventScript_Steven:: @ 82231B9 release end -MossdeepCity_SpaceCenter_1F_EventScript_MagmaNote:: @ 82231CF +MossdeepCity_SpaceCenter_1F_EventScript_MagmaNote:: lockall msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaIntentToStealNotice, MSGBOX_DEFAULT releaseall end -MossdeepCity_SpaceCenter_1F_EventScript_Grunt3:: @ 82231DA +MossdeepCity_SpaceCenter_1F_EventScript_Grunt3:: trainerbattle_single TRAINER_GRUNT_SPACE_CENTER_3, MossdeepCity_SpaceCenter_1F_Text_Grunt3Intro, MossdeepCity_SpaceCenter_1F_Text_Grunt3Defeat msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_SpaceCenter_1F_EventScript_Grunt1:: @ 82231F1 +MossdeepCity_SpaceCenter_1F_EventScript_Grunt1:: trainerbattle_single TRAINER_GRUNT_SPACE_CENTER_1, MossdeepCity_SpaceCenter_1F_Text_Grunt1Intro, MossdeepCity_SpaceCenter_1F_Text_Grunt1Defeat msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_SpaceCenter_1F_EventScript_Grunt4:: @ 8223208 +MossdeepCity_SpaceCenter_1F_EventScript_Grunt4:: trainerbattle_single TRAINER_GRUNT_SPACE_CENTER_4, MossdeepCity_SpaceCenter_1F_Text_Grunt4Intro, MossdeepCity_SpaceCenter_1F_Text_Grunt4Defeat msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE end -MossdeepCity_SpaceCenter_1F_EventScript_Grunt2:: @ 822321F +MossdeepCity_SpaceCenter_1F_EventScript_Grunt2:: lock faceplayer goto_if_set FLAG_DEFEATED_GRUNT_SPACE_CENTER_1F, MossdeepCity_SpaceCenter_1F_EventScript_Grunt2Defeated @@ -258,12 +258,12 @@ MossdeepCity_SpaceCenter_1F_EventScript_Grunt2:: @ 822321F release end -MossdeepCity_SpaceCenter_1F_EventScript_Grunt2Defeated:: @ 822326E +MossdeepCity_SpaceCenter_1F_EventScript_Grunt2Defeated:: msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt2PostBattle, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsWest:: @ 8223278 +MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsWest:: applymovement LOCALID_STAIR_GRUNT, MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsWest waitmovement 0 setvar VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 1 @@ -272,53 +272,53 @@ MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsWest:: @ 8223278 @ Functionally unused by mistake. The movement is handled anyway after the switch (see above) @ This also means VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE can never be 3 -MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast:: @ 8223289 +MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast:: applymovement LOCALID_STAIR_GRUNT, MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsEast waitmovement 0 setvar VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 3 release end -MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsWest: @ 822329A +MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsWest: lock_facing_direction walk_left unlock_facing_direction step_end @ Functionally unused. See above -MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsEast: @ 822329E +MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsEast: lock_facing_direction walk_right unlock_facing_direction step_end @ This was meant to only handle the player facing North, but by mistake(?) it also handles the player facing East -MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairs: @ 82232A2 +MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairs: face_left lock_facing_direction walk_right unlock_facing_direction step_end -MossdeepCity_SpaceCenter_1F_Text_RocketLaunchImminent: @ 82232A7 +MossdeepCity_SpaceCenter_1F_Text_RocketLaunchImminent: .string "The rocket's launch is imminent!$" -MossdeepCity_SpaceCenter_1F_Text_SuccessfulLaunchNumber: @ 82232C8 +MossdeepCity_SpaceCenter_1F_Text_SuccessfulLaunchNumber: .string "The rocket launched safely!\n" .string "That's successful launch no. {STR_VAR_1}!$" -MossdeepCity_SpaceCenter_1F_Text_HaywireButRocketLaunchImminent: @ 8223305 +MossdeepCity_SpaceCenter_1F_Text_HaywireButRocketLaunchImminent: .string "I know that things are a little\n" .string "haywire right now, but…\p" .string "The rocket's launch is imminent!$" -MossdeepCity_SpaceCenter_1F_Text_HaywireButSuccessfulLaunchNumber: @ 822335E +MossdeepCity_SpaceCenter_1F_Text_HaywireButSuccessfulLaunchNumber: .string "I know that things are a little\n" .string "haywire right now, but…\p" .string "The rocket launched safely!\n" .string "That's successful launch no. {STR_VAR_1}!$" -MossdeepCity_SpaceCenter_1F_Text_RocketLaunchDemandsPerfection: @ 82233D3 +MossdeepCity_SpaceCenter_1F_Text_RocketLaunchDemandsPerfection: .string "A rocket launch demands perfection.\n" .string "Not even a 1% margin of error is allowed.\p" .string "Even if it's 99% okay, the whole thing\n" @@ -326,55 +326,55 @@ MossdeepCity_SpaceCenter_1F_Text_RocketLaunchDemandsPerfection: @ 82233D3 .string "Despite that, we never stop trying.\n" .string "Why? It's a dream that never ends.$" -MossdeepCity_SpaceCenter_1F_Text_MagmaHaveSightsOnSpaceCenter: @ 82234B7 +MossdeepCity_SpaceCenter_1F_Text_MagmaHaveSightsOnSpaceCenter: .string "Those MAGMA thugs have their sights\n" .string "set on our SPACE CENTER.\p" .string "But we can't allow anything that minor\n" .string "to interfere with our rocket launch!$" -MossdeepCity_SpaceCenter_1F_Text_FoundThisYouCanHaveIt: @ 8223540 +MossdeepCity_SpaceCenter_1F_Text_FoundThisYouCanHaveIt: .string "I was taking a stroll down the beach\n" .string "when I found this.\p" .string "It's not anything I need, so you can\n" .string "have it.$" -MossdeepCity_SpaceCenter_1F_Text_HoennFamousForMeteorShowers: @ 82235A6 +MossdeepCity_SpaceCenter_1F_Text_HoennFamousForMeteorShowers: .string "The HOENN region has been famous for \n" .string "its meteor showers for a long time.$" -MossdeepCity_SpaceCenter_1F_Text_MagmaCantStealFuelTakeThis: @ 82235F0 +MossdeepCity_SpaceCenter_1F_Text_MagmaCantStealFuelTakeThis: .string "TEAM MAGMA can't be allowed to steal\n" .string "the rocket fuel.\p" .string "Oh, by the way, you can have this stone\n" .string "I found on the beach.$" -MossdeepCity_SpaceCenter_1F_Text_CantStrollOnBeachWithMagma: @ 8223664 +MossdeepCity_SpaceCenter_1F_Text_CantStrollOnBeachWithMagma: .string "With TEAM MAGMA around, I guess\n" .string "strolls on the beach aren't safe.$" -MossdeepCity_SpaceCenter_1F_Text_DidPokemonComeFromSpace: @ 82236A6 +MossdeepCity_SpaceCenter_1F_Text_DidPokemonComeFromSpace: .string "Some people claim that POKéMON came\n" .string "from space. Could it be true?$" -MossdeepCity_SpaceCenter_1F_Text_AquaShouldBeatMagma: @ 82236E8 +MossdeepCity_SpaceCenter_1F_Text_AquaShouldBeatMagma: .string "TEAM AQUA should take care of\n" .string "TEAM MAGMA!\p" .string "But if they did that, TEAM AQUA will\n" .string "become bold and brazen, won't they?$" -MossdeepCity_SpaceCenter_1F_Text_RocketsBoggleMyMind: @ 822375B +MossdeepCity_SpaceCenter_1F_Text_RocketsBoggleMyMind: .string "A giant chunk of metal bursts through\n" .string "the skies and flies into space…\p" .string "It boggles my mind!$" -MossdeepCity_SpaceCenter_1F_Text_MagmaWantsToSpoilMyDream: @ 82237B5 +MossdeepCity_SpaceCenter_1F_Text_MagmaWantsToSpoilMyDream: .string "A giant chunk of metal bursts through\n" .string "the skies and flies into space…\p" .string "But TEAM MAGMA wants to spoil\n" .string "that dream of mine!\p" .string "I'm not having any of that!$" -MossdeepCity_SpaceCenter_1F_Text_StevenMagmaCantBeAllowedToTakeFuel: @ 8223849 +MossdeepCity_SpaceCenter_1F_Text_StevenMagmaCantBeAllowedToTakeFuel: .string "STEVEN: {PLAYER}{KUN}, have you read that\n" .string "proclamation already?\p" .string "TEAM MAGMA is coming after the rocket\n" @@ -386,57 +386,57 @@ MossdeepCity_SpaceCenter_1F_Text_StevenMagmaCantBeAllowedToTakeFuel: @ 8223849 .string "In the meantime, why don't you go\n" .string "check out the town?$" -MossdeepCity_SpaceCenter_1F_Text_Grunt3Intro: @ 822396C +MossdeepCity_SpaceCenter_1F_Text_Grunt3Intro: .string "As promised, we've come for\n" .string "the rocket fuel!$" -MossdeepCity_SpaceCenter_1F_Text_Grunt3Defeat: @ 8223999 +MossdeepCity_SpaceCenter_1F_Text_Grunt3Defeat: .string "Ran out of fuel…$" -MossdeepCity_SpaceCenter_1F_Text_Grunt3PostBattle: @ 82239AA +MossdeepCity_SpaceCenter_1F_Text_Grunt3PostBattle: .string "Don't think you're on a roll just\n" .string "because you've beaten me!$" -MossdeepCity_SpaceCenter_1F_Text_Grunt1Intro: @ 82239E6 +MossdeepCity_SpaceCenter_1F_Text_Grunt1Intro: .string "We gave you fair warning!\n" .string "There's nothing sneaky about us!$" -MossdeepCity_SpaceCenter_1F_Text_Grunt1Defeat: @ 8223A21 +MossdeepCity_SpaceCenter_1F_Text_Grunt1Defeat: .string "Grrr…\n" .string "We should've used sneaky treachery…$" -MossdeepCity_SpaceCenter_1F_Text_Grunt1PostBattle: @ 8223A4B +MossdeepCity_SpaceCenter_1F_Text_Grunt1PostBattle: .string "Okay, I get it already! The next time,\n" .string "we'll come unannounced.$" -MossdeepCity_SpaceCenter_1F_Text_Grunt4Intro: @ 8223A8A +MossdeepCity_SpaceCenter_1F_Text_Grunt4Intro: .string "The rocket fuel the SPACE CENTER has\n" .string "in storage--that's what we're after.\p" .string "We mean to take every last bit of it!$" -MossdeepCity_SpaceCenter_1F_Text_Grunt4Defeat: @ 8223AFA +MossdeepCity_SpaceCenter_1F_Text_Grunt4Defeat: .string "Please, can you spare some fuel?\n" .string "Even a chintzy cup will do!$" -MossdeepCity_SpaceCenter_1F_Text_Grunt4PostBattle: @ 8223B37 +MossdeepCity_SpaceCenter_1F_Text_Grunt4PostBattle: .string "What are we going to do with\n" .string "the rocket fuel?\p" .string "How would I know?\n" .string "Ask our leader upstairs!$" -MossdeepCity_SpaceCenter_1F_Text_Grunt2Intro: @ 8223B90 +MossdeepCity_SpaceCenter_1F_Text_Grunt2Intro: .string "Our leader said no one, but no one,\n" .string "gets past me!$" -MossdeepCity_SpaceCenter_1F_Text_Grunt2Defeat: @ 8223BC2 +MossdeepCity_SpaceCenter_1F_Text_Grunt2Defeat: .string "Ack! Ack! Aaack!$" -MossdeepCity_SpaceCenter_1F_Text_Grunt2PostBattle: @ 8223BD3 +MossdeepCity_SpaceCenter_1F_Text_Grunt2PostBattle: .string "Please, tell our leader that\n" .string "I never abandoned my post.\l" .string "That I stayed to the bitter end…$" -MossdeepCity_SpaceCenter_1F_Text_MagmaIntentToStealNotice: @ 8223C2C +MossdeepCity_SpaceCenter_1F_Text_MagmaIntentToStealNotice: .string "This is…\n" .string "An intent-to-steal notice?\p" .string "“To the staff of the SPACE CENTER:\n" diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 62550d7c63..839ab8f248 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -9,19 +9,19 @@ .set LOCALID_TABITHA, 8 .set LOCALID_MAXIE, 9 -MossdeepCity_SpaceCenter_2F_MapScripts:: @ 8223D58 +MossdeepCity_SpaceCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MossdeepCity_SpaceCenter_2F_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, MossdeepCity_SpaceCenter_2F_OnFrame .byte 0 -MossdeepCity_SpaceCenter_2F_OnTransition: @ 8223D63 +MossdeepCity_SpaceCenter_2F_OnTransition: compare VAR_MOSSDEEP_CITY_STATE, 2 call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_MoveCivilians compare VAR_MOSSDEEP_SPACE_CENTER_STATE, 2 call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_MoveDefeatedGrunts end -MossdeepCity_SpaceCenter_2F_EventScript_MoveCivilians:: @ 8223D7A +MossdeepCity_SpaceCenter_2F_EventScript_MoveCivilians:: clearflag FLAG_INTERACTED_WITH_STEVEN_SPACE_CENTER setobjectxyperm LOCALID_SCIENTIST, 5, 3 setobjectmovementtype LOCALID_SCIENTIST, MOVEMENT_TYPE_FACE_RIGHT @@ -31,17 +31,17 @@ MossdeepCity_SpaceCenter_2F_EventScript_MoveCivilians:: @ 8223D7A setobjectmovementtype LOCALID_GENTLEMAN, MOVEMENT_TYPE_FACE_RIGHT return -MossdeepCity_SpaceCenter_2F_EventScript_MoveDefeatedGrunts:: @ 8223D9F +MossdeepCity_SpaceCenter_2F_EventScript_MoveDefeatedGrunts:: setobjectxyperm LOCALID_GRUNT_6, 11, 2 setobjectxyperm LOCALID_GRUNT_7, 15, 2 setobjectxyperm LOCALID_GRUNT_5, 13, 4 return -MossdeepCity_SpaceCenter_2F_OnFrame: @ 8223DB5 +MossdeepCity_SpaceCenter_2F_OnFrame: map_script_2 VAR_MOSSDEEP_SPACE_CENTER_STATE, 1, MossdeepCity_SpaceCenter_2F_EventScript_ThreeMagmaGrunts .2byte 0 -MossdeepCity_SpaceCenter_2F_EventScript_ThreeMagmaGrunts:: @ 8223DBF +MossdeepCity_SpaceCenter_2F_EventScript_ThreeMagmaGrunts:: playse SE_PIN applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_ExclamationMark waitmovement 0 @@ -59,11 +59,11 @@ MossdeepCity_SpaceCenter_2F_EventScript_ThreeMagmaGrunts:: @ 8223DBF releaseall end -MossdeepCity_SpaceCenter_2F_Movement_PlayerExit: @ 8223E07 +MossdeepCity_SpaceCenter_2F_Movement_PlayerExit: walk_up step_end -MossdeepCity_SpaceCenter_2F_EventScript_BattleThreeMagmaGrunts:: @ 8223E09 +MossdeepCity_SpaceCenter_2F_EventScript_BattleThreeMagmaGrunts:: msgbox MossdeepCity_SpaceCenter_2F_Text_Grunt5Intro, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GRUNT_SPACE_CENTER_5, MossdeepCity_SpaceCenter_2F_Text_Grunt5Defeat applymovement LOCALID_GRUNT_5, MossdeepCity_SpaceCenter_2F_Movement_Grunt5Defeated @@ -87,25 +87,25 @@ MossdeepCity_SpaceCenter_2F_EventScript_BattleThreeMagmaGrunts:: @ 8223E09 releaseall end -MossdeepCity_SpaceCenter_2F_Movement_Grunt6Defeated: @ 8223E81 +MossdeepCity_SpaceCenter_2F_Movement_Grunt6Defeated: lock_facing_direction walk_left unlock_facing_direction step_end -MossdeepCity_SpaceCenter_2F_Movement_Grunt5Defeated: @ 8223E85 +MossdeepCity_SpaceCenter_2F_Movement_Grunt5Defeated: lock_facing_direction walk_down unlock_facing_direction step_end -MossdeepCity_SpaceCenter_2F_Movement_Grunt7Defeated: @ 8223E89 +MossdeepCity_SpaceCenter_2F_Movement_Grunt7Defeated: lock_facing_direction walk_right unlock_facing_direction step_end -MossdeepCity_SpaceCenter_2F_EventScript_Scientist:: @ 8223E8D +MossdeepCity_SpaceCenter_2F_EventScript_Scientist:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_ScientistNormal @@ -116,17 +116,17 @@ MossdeepCity_SpaceCenter_2F_EventScript_Scientist:: @ 8223E8D goto MossdeepCity_SpaceCenter_2F_EventScript_ScientistMagma end -MossdeepCity_SpaceCenter_2F_EventScript_ScientistNormal:: @ 8223EB4 +MossdeepCity_SpaceCenter_2F_EventScript_ScientistNormal:: msgbox MossdeepCity_SpaceCenter_2F_Text_MossdeepIdealForRockets, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_2F_EventScript_ScientistMagma:: @ 8223EBE +MossdeepCity_SpaceCenter_2F_EventScript_ScientistMagma:: msgbox MossdeepCity_SpaceCenter_2F_Text_WhyWouldMagmaStealRocketFuel, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_2F_EventScript_Gentleman:: @ 8223EC8 +MossdeepCity_SpaceCenter_2F_EventScript_Gentleman:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_GentlemanNormal @@ -137,17 +137,17 @@ MossdeepCity_SpaceCenter_2F_EventScript_Gentleman:: @ 8223EC8 goto MossdeepCity_SpaceCenter_2F_EventScript_GentlemanMagma end -MossdeepCity_SpaceCenter_2F_EventScript_GentlemanNormal:: @ 8223EEF +MossdeepCity_SpaceCenter_2F_EventScript_GentlemanNormal:: msgbox MossdeepCity_SpaceCenter_2F_Text_WouldveLikedToBeAstronaut, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_2F_EventScript_GentlemanMagma:: @ 8223EF9 +MossdeepCity_SpaceCenter_2F_EventScript_GentlemanMagma:: msgbox MossdeepCity_SpaceCenter_2F_Text_MagmaCantGetAwayWithThis, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_2F_EventScript_RichBoy:: @ 8223F03 +MossdeepCity_SpaceCenter_2F_EventScript_RichBoy:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_RichBoyNormal @@ -158,30 +158,30 @@ MossdeepCity_SpaceCenter_2F_EventScript_RichBoy:: @ 8223F03 goto MossdeepCity_SpaceCenter_2F_EventScript_RichBoyMagma end -MossdeepCity_SpaceCenter_2F_EventScript_RichBoyNormal:: @ 8223F2A +MossdeepCity_SpaceCenter_2F_EventScript_RichBoyNormal:: msgbox MossdeepCity_SpaceCenter_2F_Text_WishOrdinaryPeopleCouldGoIntoSpace, MSGBOX_DEFAULT release end -MossdeepCity_SpaceCenter_2F_EventScript_RichBoyMagma:: @ 8223F34 +MossdeepCity_SpaceCenter_2F_EventScript_RichBoyMagma:: msgbox MossdeepCity_SpaceCenter_2F_Text_DoesMagmaWantToGoToSpace, MSGBOX_DEFAULT release end @ Battle for the below 3 grunts is handled in MossdeepCity_SpaceCenter_2F_EventScript_BattleThreeMagmaGrunts -MossdeepCity_SpaceCenter_2F_EventScript_Grunt6:: @ 8223F3E +MossdeepCity_SpaceCenter_2F_EventScript_Grunt6:: msgbox MossdeepCity_SpaceCenter_2F_Text_Grunt6PostBattle, MSGBOX_NPC end -MossdeepCity_SpaceCenter_2F_EventScript_Grunt7:: @ 8223F47 +MossdeepCity_SpaceCenter_2F_EventScript_Grunt7:: msgbox MossdeepCity_SpaceCenter_2F_Text_Grunt7PostBattle, MSGBOX_NPC end -MossdeepCity_SpaceCenter_2F_EventScript_Grunt5:: @ 8223F50 +MossdeepCity_SpaceCenter_2F_EventScript_Grunt5:: msgbox MossdeepCity_SpaceCenter_2F_Text_Grunt5PostBattle, MSGBOX_NPC end -MossdeepCity_SpaceCenter_2F_EventScript_Tabitha:: @ 8223F59 +MossdeepCity_SpaceCenter_2F_EventScript_Tabitha:: lock faceplayer msgbox MossdeepCity_SpaceCenter_2F_Text_WellTakeCareOfYou, MSGBOX_DEFAULT @@ -190,13 +190,13 @@ MossdeepCity_SpaceCenter_2F_EventScript_Tabitha:: @ 8223F59 release end -MossdeepCity_SpaceCenter_2F_EventScript_Maxie:: @ 8223F6F +MossdeepCity_SpaceCenter_2F_EventScript_Maxie:: lockall msgbox MossdeepCity_SpaceCenter_2F_Text_MaxieDontInterfere, MSGBOX_DEFAULT releaseall end -MossdeepCity_SpaceCenter_2F_EventScript_Steven:: @ 8223F7A +MossdeepCity_SpaceCenter_2F_EventScript_Steven:: lockall goto_if_set FLAG_INTERACTED_WITH_STEVEN_SPACE_CENTER, MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt setflag FLAG_INTERACTED_WITH_STEVEN_SPACE_CENTER @@ -212,13 +212,13 @@ MossdeepCity_SpaceCenter_2F_EventScript_Steven:: @ 8223F7A releaseall end -MossdeepCity_SpaceCenter_2F_EventScript_StevenFightMovementSouth:: @ 8223FBA +MossdeepCity_SpaceCenter_2F_EventScript_StevenFightMovementSouth:: applymovement LOCALID_STEVEN, MossdeepCity_SpaceCenter_2F_Movement_StevenFightSouth waitmovement 0 releaseall end -MossdeepCity_SpaceCenter_2F_Movement_StevenFight: @ 8223FC6 +MossdeepCity_SpaceCenter_2F_Movement_StevenFight: lock_facing_direction walk_fast_up walk_fast_up @@ -229,7 +229,7 @@ MossdeepCity_SpaceCenter_2F_Movement_StevenFight: @ 8223FC6 walk_slow_down step_end -MossdeepCity_SpaceCenter_2F_Movement_StevenFightSouth: @ 8223FCF +MossdeepCity_SpaceCenter_2F_Movement_StevenFightSouth: face_left lock_facing_direction walk_fast_right @@ -242,7 +242,7 @@ MossdeepCity_SpaceCenter_2F_Movement_StevenFightSouth: @ 8223FCF face_down step_end -MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt:: @ 8223FDA +MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt:: applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 msgbox MossdeepCity_SpaceCenter_2F_Text_StevenAreYouReadyToBattle, MSGBOX_YESNO @@ -255,7 +255,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt:: @ 8223FDA releaseall end -MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: @ 822400C +MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestDown waitmovement 0 special SavePlayerParty @@ -267,7 +267,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: @ 822400C special LoadPlayerParty goto MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt -MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle:: @ 8224032 +MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle:: special ReducePlayerPartyToSelectedMons frontier_set FRONTIER_DATA_SELECTED_MON_ORDER setvar VAR_0x8004, SPECIAL_BATTLE_STEVEN @@ -282,7 +282,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle:: @ 8224032 special SetCB2WhiteOut waitstate -MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha:: @ 8224071 +MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha:: msgbox MossdeepCity_SpaceCenter_2F_Text_MaxieWeFailedIsAquaAlsoMisguided, MSGBOX_DEFAULT closemessage delay 20 @@ -333,29 +333,29 @@ MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha:: @ 8224071 fadescreen FADE_FROM_BLACK end -MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayer:: @ 8224131 +MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayer:: switch VAR_FACING case DIR_SOUTH, MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerSouth case DIR_WEST, MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerWest return -MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerSouth:: @ 822414D +MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerSouth:: turnobject LOCALID_STEVEN, DIR_NORTH return -MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerWest:: @ 8224152 +MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerWest:: turnobject LOCALID_STEVEN, DIR_EAST return -MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer:: @ 8224157 +MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer:: trainerbattle TRAINER_BATTLE_SET_TRAINER_A, TRAINER_MAXIE_MOSSDEEP, 0, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand end -MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer:: @ 8224166 +MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer:: trainerbattle TRAINER_BATTLE_SET_TRAINER_B, TRAINER_TABITHA_MOSSDEEP, 0, MossdeepCity_SpaceCenter_Text_TabithaDefeat, MossdeepCity_SpaceCenter_Text_TabithaDefeat end -MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall:: @ 8224175 +MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall:: lockall checkplayergender compare VAR_RESULT, MALE @@ -367,108 +367,108 @@ MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall:: @ 8224175 releaseall end -MossdeepCity_SpaceCenter_2F_EventScript_MayRayquazaCall:: @ 8224193 +MossdeepCity_SpaceCenter_2F_EventScript_MayRayquazaCall:: pokenavcall MatchCall_Text_MayRayquazaCall waitmessage return -MossdeepCity_SpaceCenter_2F_EventScript_BrendanRayquazaCall:: @ 822419A +MossdeepCity_SpaceCenter_2F_EventScript_BrendanRayquazaCall:: pokenavcall MatchCall_Text_BrendanRayquazaCall waitmessage return -MossdeepCity_SpaceCenter_2F_Text_MossdeepIdealForRockets: @ 82241A1 +MossdeepCity_SpaceCenter_2F_Text_MossdeepIdealForRockets: .string "MOSSDEEP has mainly sunny weather,\n" .string "and its winds are stable.\p" .string "It's an ideal location for launching\n" .string "rockets.$" -MossdeepCity_SpaceCenter_2F_Text_WhyWouldMagmaStealRocketFuel: @ 822420C +MossdeepCity_SpaceCenter_2F_Text_WhyWouldMagmaStealRocketFuel: .string "Why would TEAM MAGMA want to steal\n" .string "our rocket fuel in the first place?$" -MossdeepCity_SpaceCenter_2F_Text_WouldveLikedToBeAstronaut: @ 8224253 +MossdeepCity_SpaceCenter_2F_Text_WouldveLikedToBeAstronaut: .string "If only I was a little younger, I would\n" .string "have liked being an astronaut…\p" .string "No… It's not too late!\n" .string "I can and will try!$" -MossdeepCity_SpaceCenter_2F_Text_MagmaCantGetAwayWithThis: @ 82242C5 +MossdeepCity_SpaceCenter_2F_Text_MagmaCantGetAwayWithThis: .string "If TEAM MAGMA takes the rocket fuel,\n" .string "I won't be able to go to space!\p" .string "They can't be allowed to get away\n" .string "with such an outrage!$" -MossdeepCity_SpaceCenter_2F_Text_WishOrdinaryPeopleCouldGoIntoSpace: @ 8224342 +MossdeepCity_SpaceCenter_2F_Text_WishOrdinaryPeopleCouldGoIntoSpace: .string "I wish ordinary people could go into\n" .string "space one day…$" -MossdeepCity_SpaceCenter_2F_Text_DoesMagmaWantToGoToSpace: @ 8224376 +MossdeepCity_SpaceCenter_2F_Text_DoesMagmaWantToGoToSpace: .string "TEAM MAGMA…\n" .string "Do they want to go to space, too?$" -MossdeepCity_SpaceCenter_2F_Text_YoureOutnumberedTakeUsOn: @ 82243A4 +MossdeepCity_SpaceCenter_2F_Text_YoureOutnumberedTakeUsOn: .string "What's wrong with you?\p" .string "You're outnumbered three to one,\n" .string "but you still want to take us on?$" -MossdeepCity_SpaceCenter_2F_Text_GoodAnswer: @ 82243FE +MossdeepCity_SpaceCenter_2F_Text_GoodAnswer: .string "Good answer!\n" .string "That's what a smart person'll do!$" -MossdeepCity_SpaceCenter_2F_Text_Grunt5Intro: @ 822442D +MossdeepCity_SpaceCenter_2F_Text_Grunt5Intro: .string "A reckless go-getter, are you?\n" .string "Okay, I'll go first!$" -MossdeepCity_SpaceCenter_2F_Text_Grunt5Defeat: @ 8224461 +MossdeepCity_SpaceCenter_2F_Text_Grunt5Defeat: .string "I lost!\n" .string "But!$" -MossdeepCity_SpaceCenter_2F_Text_Grunt6Intro: @ 822446E +MossdeepCity_SpaceCenter_2F_Text_Grunt6Intro: .string "It's too soon to be relieved!\n" .string "I'm up next!$" -MossdeepCity_SpaceCenter_2F_Text_Grunt6Defeat: @ 8224499 +MossdeepCity_SpaceCenter_2F_Text_Grunt6Defeat: .string "I lost, too!\n" .string "But!$" -MossdeepCity_SpaceCenter_2F_Text_Grunt7Intro: @ 82244AB +MossdeepCity_SpaceCenter_2F_Text_Grunt7Intro: .string "I bet you want to take a break.\n" .string "But I'm not about to let you do that!$" -MossdeepCity_SpaceCenter_2F_Text_Grunt7Defeat: @ 82244F1 +MossdeepCity_SpaceCenter_2F_Text_Grunt7Defeat: .string "We should've taken a break…\n" .string "That's what we should've done…$" -MossdeepCity_SpaceCenter_2F_Text_Grunt6PostBattle: @ 822452C +MossdeepCity_SpaceCenter_2F_Text_Grunt6PostBattle: .string "Three of us here, and look at the sorry\n" .string "mess we got ourselves into.$" -MossdeepCity_SpaceCenter_2F_Text_Grunt7PostBattle: @ 8224570 +MossdeepCity_SpaceCenter_2F_Text_Grunt7PostBattle: .string "We three losing like this…\n" .string "We look worse than usual by triple!$" -MossdeepCity_SpaceCenter_2F_Text_Grunt5PostBattle: @ 82245AF +MossdeepCity_SpaceCenter_2F_Text_Grunt5PostBattle: .string "Are we being useful to our leader\n" .string "at all?$" -MossdeepCity_SpaceCenter_2F_Text_WellTakeCareOfYou: @ 82245D9 +MossdeepCity_SpaceCenter_2F_Text_WellTakeCareOfYou: .string "Hehehe!\p" .string "We come all the way here to get some\n" .string "fuel, and we're interfered with again!\p" .string "If you're going to mess with us too,\n" .string "we'll take care of you at the same time!$" -MossdeepCity_SpaceCenter_2F_Text_MaxieDontInterfere: @ 822467B +MossdeepCity_SpaceCenter_2F_Text_MaxieDontInterfere: .string "MAXIE: Clear out of the way!\n" .string "Don't you dare interfere!$" -MossdeepCity_SpaceCenter_2F_Text_StevenWhyStealRocketFuel: @ 82246B2 +MossdeepCity_SpaceCenter_2F_Text_StevenWhyStealRocketFuel: .string "STEVEN: TEAM MAGMA…\p" .string "What's the point of stealing rocket\n" .string "fuel?$" -MossdeepCity_SpaceCenter_2F_Text_MaxieUseFuelToEruptVolcano: @ 82246F0 +MossdeepCity_SpaceCenter_2F_Text_MaxieUseFuelToEruptVolcano: .string "MAXIE: Fufufu… Since you're so\n" .string "curious, you deserve an explanation.\p" .string "We're going to jettison the entire\n" @@ -479,24 +479,24 @@ MossdeepCity_SpaceCenter_2F_Text_MaxieUseFuelToEruptVolcano: @ 82246F0 .string "the volcano erupt!\p" .string "It will be savage!$" -MossdeepCity_SpaceCenter_2F_Text_StevenAreYouReadyToBattle: @ 82247FF +MossdeepCity_SpaceCenter_2F_Text_StevenAreYouReadyToBattle: .string "STEVEN: {PLAYER}{KUN}!\n" .string "You're going to help me?\p" .string "Let's go into battle together!\n" .string "Are you ready?$" -MossdeepCity_SpaceCenter_2F_Text_StevenHurryGetReadyQuickly: @ 8224854 +MossdeepCity_SpaceCenter_2F_Text_StevenHurryGetReadyQuickly: .string "STEVEN: Then, hurry!\n" .string "Get ready quickly!$" -MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand: @ 822487C +MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand: .string "All I want…\n" .string "I just want to expand the land mass…$" -MossdeepCity_SpaceCenter_Text_TabithaDefeat: @ 82248AD +MossdeepCity_SpaceCenter_Text_TabithaDefeat: .string "I'm with our leader…$" -MossdeepCity_SpaceCenter_2F_Text_MaxieWeFailedIsAquaAlsoMisguided: @ 82248C2 +MossdeepCity_SpaceCenter_2F_Text_MaxieWeFailedIsAquaAlsoMisguided: .string "MAXIE: We failed to make the volcano\n" .string "erupt…\p" .string "We failed to control GROUDON after\n" @@ -511,13 +511,13 @@ MossdeepCity_SpaceCenter_2F_Text_MaxieWeFailedIsAquaAlsoMisguided: @ 82248C2 .string "Then might TEAM AQUA's goal to expand\n" .string "the sea also be equally misguided?$" -MossdeepCity_SpaceCenter_2F_Text_MaxieWeWillGiveUp: @ 82249DC +MossdeepCity_SpaceCenter_2F_Text_MaxieWeWillGiveUp: .string "MAXIE: All right…\n" .string "We will give up on the fuel…\p" .string "There appear to be more important\n" .string "matters that I must examine…$" -MossdeepCity_SpaceCenter_2F_Text_StevenThankYouComeSeeMeAtHome: @ 8224A4A +MossdeepCity_SpaceCenter_2F_Text_StevenThankYouComeSeeMeAtHome: .string "STEVEN: Whew, that was too tense.\n" .string "{PLAYER}{KUN}, thank you.\p" .string "I have something to give you as\n" diff --git a/data/maps/MossdeepCity_StevensHouse/scripts.inc b/data/maps/MossdeepCity_StevensHouse/scripts.inc index 1d384efe1f..1f5a9e09a9 100644 --- a/data/maps/MossdeepCity_StevensHouse/scripts.inc +++ b/data/maps/MossdeepCity_StevensHouse/scripts.inc @@ -1,35 +1,35 @@ .set LOCALID_STEVEN, 1 .set LOCALID_BELDUM_BALL, 2 -MossdeepCity_StevensHouse_MapScripts:: @ 8222784 +MossdeepCity_StevensHouse_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, MossdeepCity_StevensHouse_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, MossdeepCity_StevensHouse_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, MossdeepCity_StevensHouse_OnFrame .byte 0 -MossdeepCity_StevensHouse_OnLoad: @ 8222794 +MossdeepCity_StevensHouse_OnLoad: call_if_unset FLAG_SYS_GAME_CLEAR, MossdeepCity_StevensHouse_EventScript_HideStevensNote end -MossdeepCity_StevensHouse_EventScript_HideStevensNote:: @ 822279E +MossdeepCity_StevensHouse_EventScript_HideStevensNote:: setmetatile 6, 4, METATILE_GenericBuilding_TableEdge, 1 return -MossdeepCity_StevensHouse_OnTransition: @ 82227A8 +MossdeepCity_StevensHouse_OnTransition: compare VAR_STEVENS_HOUSE_STATE, 2 call_if_eq MossdeepCity_StevensHouse_EventScript_SetStevenPos end -MossdeepCity_StevensHouse_EventScript_SetStevenPos:: @ 82227B4 +MossdeepCity_StevensHouse_EventScript_SetStevenPos:: setobjectxyperm LOCALID_STEVEN, 6, 5 setobjectmovementtype LOCALID_STEVEN, MOVEMENT_TYPE_FACE_UP return -MossdeepCity_StevensHouse_OnFrame: @ 82227C0 +MossdeepCity_StevensHouse_OnFrame: map_script_2 VAR_STEVENS_HOUSE_STATE, 1, MossdeepCity_StevensHouse_EventScript_StevenGivesDive .2byte 0 -MossdeepCity_StevensHouse_EventScript_StevenGivesDive:: @ 82227CA +MossdeepCity_StevensHouse_EventScript_StevenGivesDive:: lockall applymovement LOCALID_STEVEN, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 @@ -55,7 +55,7 @@ MossdeepCity_StevensHouse_EventScript_StevenGivesDive:: @ 82227CA releaseall end -MossdeepCity_StevensHouse_Movement_StevenApproachPlayer: @ 8222833 +MossdeepCity_StevensHouse_Movement_StevenApproachPlayer: walk_left walk_left walk_left @@ -65,7 +65,7 @@ MossdeepCity_StevensHouse_Movement_StevenApproachPlayer: @ 8222833 walk_in_place_fastest_down step_end -MossdeepCity_StevensHouse_Movement_StevenReturn: @ 822283B +MossdeepCity_StevensHouse_Movement_StevenReturn: walk_up walk_right walk_right @@ -73,7 +73,7 @@ MossdeepCity_StevensHouse_Movement_StevenReturn: @ 822283B walk_in_place_fastest_up step_end -MossdeepCity_StevensHouse_EventScript_BeldumPokeball:: @ 8222841 +MossdeepCity_StevensHouse_EventScript_BeldumPokeball:: lockall msgbox MossdeepCity_StevensHouse_Text_TakeBallContainingBeldum, MSGBOX_YESNO compare VAR_RESULT, NO @@ -81,12 +81,12 @@ MossdeepCity_StevensHouse_EventScript_BeldumPokeball:: @ 8222841 goto MossdeepCity_StevensHouse_EventScript_GiveBeldum end -MossdeepCity_StevensHouse_EventScript_LeaveBeldum:: @ 822285B +MossdeepCity_StevensHouse_EventScript_LeaveBeldum:: msgbox MossdeepCity_StevensHouse_Text_LeftPokeBallWhereItWas, MSGBOX_DEFAULT releaseall end -MossdeepCity_StevensHouse_EventScript_GiveBeldum:: @ 8222865 +MossdeepCity_StevensHouse_EventScript_GiveBeldum:: setvar VAR_TEMP_1, SPECIES_BELDUM givemon SPECIES_BELDUM, 5, ITEM_NONE compare VAR_RESULT, 0 @@ -96,7 +96,7 @@ MossdeepCity_StevensHouse_EventScript_GiveBeldum:: @ 8222865 goto Common_EventScript_NoMoreRoomForPokemon end -MossdeepCity_StevensHouse_EventScript_SendBeldumParty:: @ 8222895 +MossdeepCity_StevensHouse_EventScript_SendBeldumParty:: call MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO compare VAR_RESULT, NO @@ -106,7 +106,7 @@ MossdeepCity_StevensHouse_EventScript_SendBeldumParty:: @ 8222895 goto MossdeepCity_StevensHouse_EventScript_ReceivedBeldum end -MossdeepCity_StevensHouse_EventScript_SendBeldumPC:: @ 82228BD +MossdeepCity_StevensHouse_EventScript_SendBeldumPC:: call MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO compare VAR_RESULT, NO @@ -115,12 +115,12 @@ MossdeepCity_StevensHouse_EventScript_SendBeldumPC:: @ 82228BD goto MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC end -MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC:: @ 82228E0 +MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC:: call Common_EventScript_TransferredToPC goto MossdeepCity_StevensHouse_EventScript_ReceivedBeldum end -MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare:: @ 82228EB +MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare:: bufferspeciesname 1, SPECIES_BELDUM removeobject LOCALID_BELDUM_BALL playfanfare MUS_OBTAIN_ITEM @@ -130,33 +130,33 @@ MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare:: @ 82228EB bufferspeciesname 0, SPECIES_BELDUM return -MossdeepCity_StevensHouse_EventScript_ReceivedBeldum:: @ 8222901 +MossdeepCity_StevensHouse_EventScript_ReceivedBeldum:: setflag FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_BELDUM_POKEBALL setflag FLAG_RECEIVED_BELDUM releaseall end -MossdeepCity_StevensHouse_EventScript_RockDisplay:: @ 8222909 +MossdeepCity_StevensHouse_EventScript_RockDisplay:: msgbox MossdeepCity_StevensHouse_Text_CollectionOfRareRocks, MSGBOX_SIGN end -MossdeepCity_StevensHouse_EventScript_Steven:: @ 8222912 +MossdeepCity_StevensHouse_EventScript_Steven:: msgbox MossdeepCity_StevensHouse_Text_UnderwateCavernBetweenMossdeepSootopolis, MSGBOX_NPC end -MossdeepCity_StevensHouse_EventScript_Letter:: @ 822291B +MossdeepCity_StevensHouse_EventScript_Letter:: lockall msgbox MossdeepCity_StevensHouse_Text_LetterFromSteven, MSGBOX_DEFAULT releaseall end @ Unused, leftover from RS -MossdeepCity_StevensHouse_EventScript_DiveItemBall:: @ 8222926 +MossdeepCity_StevensHouse_EventScript_DiveItemBall:: finditem ITEM_HM08 setflag FLAG_RECEIVED_HM08 end -MossdeepCity_StevensHouse_Text_YouveEarnedHMDive: @ 8222936 +MossdeepCity_StevensHouse_Text_YouveEarnedHMDive: .string "STEVEN: {PLAYER}{KUN}…\p" .string "As you can see, there's not much here,\n" .string "but this is my home.\p" @@ -166,7 +166,7 @@ MossdeepCity_StevensHouse_Text_YouveEarnedHMDive: @ 8222936 .string "No need to be shy--you've earned\n" .string "this HM.$" -MossdeepCity_StevensHouse_Text_ExplainDive: @ 8222A0E +MossdeepCity_StevensHouse_Text_ExplainDive: .string "STEVEN: While you're using SURF, you\n" .string "should notice dark patches of water.\p" .string "Use DIVE if you come to deep water\n" @@ -176,31 +176,31 @@ MossdeepCity_StevensHouse_Text_ExplainDive: @ 8222A0E .string "In some places, it won't be possible\n" .string "for you to surface, though.$" -MossdeepCity_StevensHouse_Text_UnderwateCavernBetweenMossdeepSootopolis: @ 8222B11 +MossdeepCity_StevensHouse_Text_UnderwateCavernBetweenMossdeepSootopolis: .string "STEVEN: Apparently, there's an\n" .string "underwater cavern between\l" .string "MOSSDEEP and SOOTOPOLIS.\p" .string "You know, the one that CAPT. STERN\n" .string "found in his submarine.$" -MossdeepCity_StevensHouse_Text_TakeBallContainingBeldum: @ 8222B9E +MossdeepCity_StevensHouse_Text_TakeBallContainingBeldum: .string "{PLAYER} checked the POKé BALL.\p" .string "It contained the POKéMON\n" .string "BELDUM.\p" .string "Take the POKé BALL?$" -MossdeepCity_StevensHouse_Text_ObtainedBeldum: @ 8222BED +MossdeepCity_StevensHouse_Text_ObtainedBeldum: .string "{PLAYER} obtained a BELDUM.$" @ Unused -MossdeepCity_StevensHouse_Text_NoSpaceForAnotherMon: @ 8222C03 +MossdeepCity_StevensHouse_Text_NoSpaceForAnotherMon: .string "There is no space for another POKéMON.$" -MossdeepCity_StevensHouse_Text_LeftPokeBallWhereItWas: @ 8222C2A +MossdeepCity_StevensHouse_Text_LeftPokeBallWhereItWas: .string "{PLAYER} left the POKé BALL where\n" .string "it was.$" -MossdeepCity_StevensHouse_Text_LetterFromSteven: @ 8222C4E +MossdeepCity_StevensHouse_Text_LetterFromSteven: .string "It's a letter.\p" .string "… … … … … …\p" .string "To {PLAYER}{KUN}…\p" @@ -217,7 +217,7 @@ MossdeepCity_StevensHouse_Text_LetterFromSteven: @ 8222C4E .string "May our paths cross someday.\p" .string "STEVEN STONE$" -MossdeepCity_StevensHouse_Text_CollectionOfRareRocks: @ 8222D97 +MossdeepCity_StevensHouse_Text_CollectionOfRareRocks: .string "It's a collection of rare rocks and\n" .string "stones assembled by STEVEN.$" diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc index c633d93135..cd07667b5b 100644 --- a/data/maps/MtChimney/scripts.inc +++ b/data/maps/MtChimney/scripts.inc @@ -5,20 +5,20 @@ .set LOCALID_MAGMA_GRUNT_1, 29 -MtChimney_MapScripts:: @ 822EDC1 +MtChimney_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, MtChimney_OnResume map_script MAP_SCRIPT_ON_TRANSITION, MtChimney_OnTransition .byte 0 -MtChimney_OnTransition: @ 822EDCC +MtChimney_OnTransition: setvar VAR_JAGGED_PASS_ASH_WEATHER, 1 end -MtChimney_OnResume: @ 822EDD2 +MtChimney_OnResume: setstepcallback STEP_CB_ASH end -MtChimney_EventScript_Archie:: @ 822EDD5 +MtChimney_EventScript_Archie:: lock faceplayer call_if_unset FLAG_EVIL_LEADER_PLEASE_STOP, MtChimney_EventScript_ArchieGoStopTeamMagma @@ -30,17 +30,17 @@ MtChimney_EventScript_Archie:: @ 822EDD5 release end -MtChimney_EventScript_ArchieGoStopTeamMagma:: @ 822EDF9 +MtChimney_EventScript_ArchieGoStopTeamMagma:: msgbox MtChimney_Text_ArchieGoStopTeamMagma, MSGBOX_DEFAULT return -MtChimney_EventScript_ArchieBusyFighting:: @ 822EE02 +MtChimney_EventScript_ArchieBusyFighting:: msgbox MtChimney_Text_ArchieIHaveMyHandsFull, MSGBOX_DEFAULT return -MtChimney_EventScript_Maxie:: @ 822EE0B +MtChimney_EventScript_Maxie:: lockall - playbgm MUS_ENCOUNTER_MAGMA, 0 + playbgm MUS_ENCOUNTER_MAGMA, FALSE msgbox MtChimney_Text_MeteoriteWillActivateVolcano, MSGBOX_DEFAULT applymovement LOCALID_MAXIE, Common_Movement_FacePlayer waitmovement 0 @@ -84,27 +84,27 @@ MtChimney_EventScript_Maxie:: @ 822EE0B releaseall end -MtChimney_EventScript_ArchieApproachPlayerEast:: @ 822EEC7 +MtChimney_EventScript_ArchieApproachPlayerEast:: applymovement LOCALID_ARCHIE, MtChimney_Movement_ArchieApproachPlayerEast waitmovement 0 return -MtChimney_EventScript_ArchieApproachPlayerNorth:: @ 822EED2 +MtChimney_EventScript_ArchieApproachPlayerNorth:: applymovement LOCALID_ARCHIE, MtChimney_Movement_ArchieApproachPlayerNorth waitmovement 0 return -MtChimney_EventScript_ArchieExitEast:: @ 822EEDD +MtChimney_EventScript_ArchieExitEast:: applymovement LOCALID_ARCHIE, MtChimney_Movement_ArchieExitEast waitmovement 0 return -MtChimney_EventScript_ArchieExitNorth:: @ 822EEE8 +MtChimney_EventScript_ArchieExitNorth:: applymovement LOCALID_ARCHIE, MtChimney_Movement_ArchieExitNorth waitmovement 0 return -MtChimney_EventScript_LavaCookieLady:: @ 822EEF3 +MtChimney_EventScript_LavaCookieLady:: lock faceplayer showmoneybox 0, 0, 0 @@ -125,30 +125,30 @@ MtChimney_EventScript_LavaCookieLady:: @ 822EEF3 release end -MtChimney_EventScript_BagIsFull:: @ 822EF51 +MtChimney_EventScript_BagIsFull:: msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT hidemoneybox release end -MtChimney_EventScript_RemoveMoney:: @ 822EF5E +MtChimney_EventScript_RemoveMoney:: removemoney 200, 0 updatemoneybox 0, 0 return -MtChimney_EventScript_DeclineLavaCookie:: @ 822EF69 +MtChimney_EventScript_DeclineLavaCookie:: msgbox MtChimney_Text_OhFineThen, MSGBOX_DEFAULT hidemoneybox release end -MtChimney_EventScript_NotEnoughMoney:: @ 822EF76 +MtChimney_EventScript_NotEnoughMoney:: msgbox MtChimney_Text_YouveNotGotTheMoney, MSGBOX_DEFAULT hidemoneybox release end -MtChimney_Movement_ArchieApproachPlayerEast: @ 822EF83 +MtChimney_Movement_ArchieApproachPlayerEast: walk_up walk_up walk_up @@ -158,7 +158,7 @@ MtChimney_Movement_ArchieApproachPlayerEast: @ 822EF83 walk_right step_end -MtChimney_Movement_ArchieExitEast: @ 822EF8B +MtChimney_Movement_ArchieExitEast: walk_left walk_down walk_down @@ -169,7 +169,7 @@ MtChimney_Movement_ArchieExitEast: @ 822EF8B walk_down step_end -MtChimney_Movement_ArchieApproachPlayerNorth: @ 822EF94 +MtChimney_Movement_ArchieApproachPlayerNorth: walk_up walk_up walk_up @@ -179,7 +179,7 @@ MtChimney_Movement_ArchieApproachPlayerNorth: @ 822EF94 walk_right step_end -MtChimney_Movement_ArchieExitNorth: @ 822EF9C +MtChimney_Movement_ArchieExitNorth: walk_left walk_left walk_down @@ -191,7 +191,7 @@ MtChimney_Movement_ArchieExitNorth: @ 822EF9C walk_down step_end -MtChimney_Movement_Unused1: @ 822EFA6 +MtChimney_Movement_Unused1: walk_down walk_down walk_down @@ -211,7 +211,7 @@ MtChimney_Movement_Unused1: @ 822EFA6 walk_down step_end -MtChimney_Movement_Unused2: @ 822EFB8 +MtChimney_Movement_Unused2: walk_down walk_down walk_down @@ -222,7 +222,7 @@ MtChimney_Movement_Unused2: @ 822EFB8 walk_down step_end -MtChimney_Movement_Unused3: @ 822EFC1 +MtChimney_Movement_Unused3: walk_right walk_down walk_down @@ -239,7 +239,7 @@ MtChimney_Movement_Unused3: @ 822EFC1 walk_down step_end -MtChimney_Movement_Unused4: @ 822EFD0 +MtChimney_Movement_Unused4: walk_fast_down walk_fast_down walk_fast_down @@ -266,7 +266,7 @@ MtChimney_Movement_Unused4: @ 822EFD0 walk_down step_end -MtChimney_Movement_Unused5: @ 822EFE9 +MtChimney_Movement_Unused5: delay_16 delay_16 delay_16 @@ -279,7 +279,7 @@ MtChimney_Movement_Unused5: @ 822EFE9 walk_down step_end -MtChimney_Movement_Unused6: @ 822EFF4 +MtChimney_Movement_Unused6: delay_16 walk_left walk_down @@ -297,7 +297,7 @@ MtChimney_Movement_Unused6: @ 822EFF4 walk_down step_end -MtChimney_Movement_Unused7: @ 822F004 +MtChimney_Movement_Unused7: delay_16 walk_left walk_left @@ -316,7 +316,7 @@ MtChimney_Movement_Unused7: @ 822F004 walk_down step_end -MtChimney_Movement_Unused8: @ 822F015 +MtChimney_Movement_Unused8: delay_16 walk_down walk_left @@ -326,7 +326,7 @@ MtChimney_Movement_Unused8: @ 822F015 walk_in_place_fastest_down step_end -MtChimney_Movement_Unused9: @ 822F01D +MtChimney_Movement_Unused9: walk_down walk_down walk_down @@ -342,11 +342,11 @@ MtChimney_Movement_Unused9: @ 822F01D walk_down step_end -MtChimney_Movement_Unused10: @ 822F02B +MtChimney_Movement_Unused10: walk_down step_end -MtChimney_Movement_Unused11: @ 822F02D +MtChimney_Movement_Unused11: walk_down walk_down walk_down @@ -356,7 +356,7 @@ MtChimney_Movement_Unused11: @ 822F02D walk_down step_end -MtChimney_Movement_Unused12: @ 822F035 +MtChimney_Movement_Unused12: delay_16 delay_16 walk_in_place_fastest_left @@ -368,7 +368,7 @@ MtChimney_Movement_Unused12: @ 822F035 walk_down step_end -MtChimney_Movement_Unused13: @ 822F03F +MtChimney_Movement_Unused13: delay_16 delay_16 delay_16 @@ -381,74 +381,74 @@ MtChimney_Movement_Unused13: @ 822F03F walk_down step_end -MtChimney_Movement_Unused14: @ 822F04A +MtChimney_Movement_Unused14: lock_facing_direction walk_fast_left unlock_facing_direction face_right step_end -MtChimney_Movement_Unused15: @ 822F04F +MtChimney_Movement_Unused15: walk_left walk_in_place_fastest_right delay_16 step_end -MtChimney_EventScript_BusyAquaGrunt1:: @ 822F053 +MtChimney_EventScript_BusyAquaGrunt1:: msgbox MtChimney_Text_MagmaOutnumbersUs, MSGBOX_SIGN end -MtChimney_EventScript_BusyAquaGrunt2:: @ 822F05C +MtChimney_EventScript_BusyAquaGrunt2:: msgbox MtChimney_Text_LessHabitatForWaterPokemon, MSGBOX_SIGN end -MtChimney_EventScript_BusyAquaGrunt3:: @ 822F065 +MtChimney_EventScript_BusyAquaGrunt3:: msgbox MtChimney_Text_MagmasNameSimilar, MSGBOX_SIGN end -MtChimney_EventScript_Tabitha:: @ 822F06E +MtChimney_EventScript_Tabitha:: trainerbattle_single TRAINER_TABITHA_MT_CHIMNEY, MtChimney_Text_TabithaIntro, MtChimney_Text_TabithaDefeat msgbox MtChimney_Text_TabithaPostBattle, MSGBOX_AUTOCLOSE end -MtChimney_EventScript_Grunt2:: @ 822F085 +MtChimney_EventScript_Grunt2:: trainerbattle_single TRAINER_GRUNT_MT_CHIMNEY_2, MtChimney_Text_Grunt2Intro, MtChimney_Text_Grunt2Defeat msgbox MtChimney_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE end -MtChimney_EventScript_BusyMagmaGrunt1:: @ 822F09C +MtChimney_EventScript_BusyMagmaGrunt1:: msgbox MtChimney_Text_TeamAquaAlwaysMessingWithPlans, MSGBOX_SIGN end -MtChimney_EventScript_BusyMagmaGrunt2:: @ 822F0A5 +MtChimney_EventScript_BusyMagmaGrunt2:: msgbox MtChimney_Text_MeteoritesPackAmazingPower, MSGBOX_SIGN end -MtChimney_EventScript_BusyMagmaGrunt3:: @ 822F0AE +MtChimney_EventScript_BusyMagmaGrunt3:: msgbox MtChimney_Text_YouBetterNotMessWithUs, MSGBOX_SIGN end -MtChimney_EventScript_BusyMagmaGrunt4:: @ 822F0B7 +MtChimney_EventScript_BusyMagmaGrunt4:: msgbox MtChimney_Text_AquasNameSimilar, MSGBOX_SIGN end -MtChimney_EventScript_BusyMagmaGrunt5:: @ 822F0C0 +MtChimney_EventScript_BusyMagmaGrunt5:: msgbox MtChimney_Text_DouseThemInFire, MSGBOX_SIGN end -MtChimney_EventScript_BusyMagmaGrunt6:: @ 822F0C9 +MtChimney_EventScript_BusyMagmaGrunt6:: msgbox MtChimney_Text_KeepMakingMoreLand, MSGBOX_SIGN end -MtChimney_EventScript_MagmaPoochyena:: @ 822F0D2 +MtChimney_EventScript_MagmaPoochyena:: msgbox MtChimney_Text_Bufoh, MSGBOX_SIGN end -MtChimney_EventScript_AquaPoochyena:: @ 822F0DB +MtChimney_EventScript_AquaPoochyena:: msgbox MtChimney_Text_Bushaa, MSGBOX_SIGN end -MtChimney_EventScript_MeteoriteMachine:: @ 822F0E4 +MtChimney_EventScript_MeteoriteMachine:: lockall goto_if_unset FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, MtChimney_EventScript_MachineOn goto_if_set FLAG_RECEIVED_METEORITE, MtChimney_EventScript_MachineOff @@ -461,26 +461,26 @@ MtChimney_EventScript_MeteoriteMachine:: @ 822F0E4 releaseall end -MtChimney_EventScript_LeaveMeteoriteAlone:: @ 822F123 +MtChimney_EventScript_LeaveMeteoriteAlone:: msgbox MtChimney_Text_PlayerLeftMeteorite, MSGBOX_DEFAULT releaseall end -MtChimney_EventScript_MachineOff:: @ 822F12D +MtChimney_EventScript_MachineOff:: msgbox MtChimney_Text_MachineMakesNoResponse, MSGBOX_DEFAULT releaseall end -MtChimney_EventScript_MachineOn:: @ 822F137 +MtChimney_EventScript_MachineOn:: msgbox MtChimney_Text_MetoriteFittedOnMachine, MSGBOX_DEFAULT releaseall end -MtChimney_EventScript_RouteSign:: @ 822F141 +MtChimney_EventScript_RouteSign:: msgbox MtChimney_Text_RouteSign, MSGBOX_SIGN end -MtChimney_EventScript_Shelby:: @ 822F14A +MtChimney_EventScript_Shelby:: trainerbattle_single TRAINER_SHELBY_1, MtChimney_Text_ShelbyIntro, MtChimney_Text_ShelbyDefeat, MtChimney_EventScript_DefeatedShelby specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -489,7 +489,7 @@ MtChimney_EventScript_Shelby:: @ 822F14A release end -MtChimney_EventScript_DefeatedShelby:: @ 822F176 +MtChimney_EventScript_DefeatedShelby:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox MtChimney_Text_ShelbyRegister, MSGBOX_DEFAULT @@ -497,32 +497,32 @@ MtChimney_EventScript_DefeatedShelby:: @ 822F176 release end -MtChimney_EventScript_RematchShelby:: @ 822F195 +MtChimney_EventScript_RematchShelby:: trainerbattle_rematch TRAINER_SHELBY_1, MtChimney_Text_ShelbyRematchIntro, MtChimney_Text_ShelbyRematchDefeat msgbox MtChimney_Text_ShelbyPostRematch, MSGBOX_AUTOCLOSE end -MtChimney_EventScript_Melissa:: @ 822F1AC +MtChimney_EventScript_Melissa:: trainerbattle_single TRAINER_MELISSA, MtChimney_Text_MelissaIntro, MtChimney_Text_MelissaDefeat msgbox MtChimney_Text_MelissaPostBattle, MSGBOX_AUTOCLOSE end -MtChimney_EventScript_Sheila:: @ 822F1C3 +MtChimney_EventScript_Sheila:: trainerbattle_single TRAINER_SHEILA, MtChimney_Text_SheilaIntro, MtChimney_Text_SheilaDefeat msgbox MtChimney_Text_SheilaPostBattle, MSGBOX_AUTOCLOSE end -MtChimney_EventScript_Shirley:: @ 822F1DA +MtChimney_EventScript_Shirley:: trainerbattle_single TRAINER_SHIRLEY, MtChimney_Text_ShirleyIntro, MtChimney_Text_ShirleyDefeat msgbox MtChimney_Text_ShirleyPostBattle, MSGBOX_AUTOCLOSE end -MtChimney_EventScript_Grunt1:: @ 822F1F1 +MtChimney_EventScript_Grunt1:: trainerbattle_single TRAINER_GRUNT_MT_CHIMNEY_1, MtChimney_Text_Grunt1Intro, MtChimney_Text_Grunt1Defeat msgbox MtChimney_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE end -MtChimney_EventScript_Sawyer:: @ 822F208 +MtChimney_EventScript_Sawyer:: trainerbattle_single TRAINER_SAWYER_1, MtChimney_Text_SawyerIntro, MtChimney_Text_SawyerDefeat, MtChimney_EventScript_SawyerDefeated specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -531,7 +531,7 @@ MtChimney_EventScript_Sawyer:: @ 822F208 release end -MtChimney_EventScript_SawyerDefeated:: @ 822F234 +MtChimney_EventScript_SawyerDefeated:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox MtChimney_Text_SawyerRegister, MSGBOX_DEFAULT @@ -539,12 +539,12 @@ MtChimney_EventScript_SawyerDefeated:: @ 822F234 release end -MtChimney_EventScript_SawyerRematch:: @ 822F253 +MtChimney_EventScript_SawyerRematch:: trainerbattle_rematch TRAINER_SAWYER_1, MtChimney_Text_SawyerRematchIntro, MtChimney_Text_SawyerRematchDefeat msgbox MtChimney_Text_SawyerPostRematch, MSGBOX_AUTOCLOSE end -MtChimney_Text_MeteoriteWillActivateVolcano: @ 822F26A +MtChimney_Text_MeteoriteWillActivateVolcano: .string "The power contained in the METEORITE…\p" .string "By amplifying its power with this\n" .string "machine, MT. CHIMNEY's volcanic\l" @@ -553,7 +553,7 @@ MtChimney_Text_MeteoriteWillActivateVolcano: @ 822F26A .string "the crater and…\l" .string "Fufufu…$" -MtChimney_Text_MaxieIntro: @ 822F32E +MtChimney_Text_MaxieIntro: .string "MAXIE: Hm?\n" .string "Who are you?\p" .string "… … … … … …\n" @@ -581,11 +581,11 @@ MtChimney_Text_MaxieIntro: @ 822F32E .string "I'll teach you the consequences of\l" .string "meddling in our grand design!$" -MtChimney_Text_MaxieDefeat: @ 822F5CF +MtChimney_Text_MaxieDefeat: .string "What?!\p" .string "I, MAXIE, was caught off guard?!$" -MtChimney_Text_MaxieYouHaventSeenLastOfMagma: @ 822F5F7 +MtChimney_Text_MaxieYouHaventSeenLastOfMagma: .string "MAXIE: But, enough.\n" .string "I will back off this time.\p" .string "But don't think that this is the last\n" @@ -594,81 +594,81 @@ MtChimney_Text_MaxieYouHaventSeenLastOfMagma: @ 822F5F7 .string "Even without the METEORITE, if we\n" .string "obtain that ORB… Fufufu…$" -MtChimney_Text_TabithaIntro: @ 822F6AA +MtChimney_Text_TabithaIntro: .string "Hehehe!\p" .string "So you've come all the way here!\p" .string "But you're too late!\n" .string "I've already delivered the METEORITE\l" .string "from METEOR FALLS to the BOSS!$" -MtChimney_Text_TabithaDefeat: @ 822F72C +MtChimney_Text_TabithaDefeat: .string "Hehehe…\p" .string "Even though I've lost, if our leader\n" .string "awakens that thing…$" -MtChimney_Text_TabithaPostBattle: @ 822F76D +MtChimney_Text_TabithaPostBattle: .string "BOSS, hurry!\n" .string "Give it the METEORITE's energy!\p" .string "Hehehe…$" -MtChimney_Text_Grunt2Intro: @ 822F7A2 +MtChimney_Text_Grunt2Intro: .string "We of TEAM MAGMA are working hard for\n" .string "everyone's sake.\p" .string "Like, if that thing's power made more\n" .string "land, there'd be more places to live.\p" .string "Everyone'd be happy!$" -MtChimney_Text_Grunt2Defeat: @ 822F83A +MtChimney_Text_Grunt2Defeat: .string "Hunh?\n" .string "What do you mean I lost?$" -MtChimney_Text_Grunt2PostBattle: @ 822F859 +MtChimney_Text_Grunt2PostBattle: .string "Our BOSS says, “It will make everyone\n" .string "happy.”\p" .string "But why does everyone keep getting\n" .string "in our way?$" -MtChimney_Text_Grunt1Intro: @ 822F8B6 +MtChimney_Text_Grunt1Intro: .string "If there were more land, I'd be able\n" .string "to get a big house of my own!\p" .string "I'm going to build it on hardened lava!$" -MtChimney_Text_Grunt1Defeat: @ 822F921 +MtChimney_Text_Grunt1Defeat: .string "My dream of a big house…$" -MtChimney_Text_Grunt1PostBattle: @ 822F93A +MtChimney_Text_Grunt1PostBattle: .string "A kid like you, you ought to be\n" .string "splashing about in the waves!$" -MtChimney_Text_TeamAquaAlwaysMessingWithPlans: @ 822F978 +MtChimney_Text_TeamAquaAlwaysMessingWithPlans: .string "That annoying TEAM AQUA…\n" .string "They always mess with our plans!$" -MtChimney_Text_MeteoritesPackAmazingPower: @ 822F9B2 +MtChimney_Text_MeteoritesPackAmazingPower: .string "METEORITES pack amazing power!$" -MtChimney_Text_YouBetterNotMessWithUs: @ 822F9D1 +MtChimney_Text_YouBetterNotMessWithUs: .string "You'd better not mess with us!\p" .string "We're trying to awaken that thing\n" .string "for the benefit of everyone!$" -MtChimney_Text_AquasNameSimilar: @ 822FA2F +MtChimney_Text_AquasNameSimilar: .string "We're TEAM MAGMA!\p" .string "They're TEAM AQUA!\p" .string "It totally annoys me that they'd\n" .string "use a name like ours!$" -MtChimney_Text_DouseThemInFire: @ 822FA8B +MtChimney_Text_DouseThemInFire: .string "Yeah!\n" .string "Douse them in fire!$" -MtChimney_Text_KeepMakingMoreLand: @ 822FAA5 +MtChimney_Text_KeepMakingMoreLand: .string "We're going to keep making more land!$" -MtChimney_Text_Bufoh: @ 822FACB +MtChimney_Text_Bufoh: .string "Bufoh!$" -MtChimney_Text_ArchieGoStopTeamMagma: @ 822FAD2 +MtChimney_Text_ArchieGoStopTeamMagma: .string "ARCHIE: Grr, {PLAYER}!\n" .string "I should've guessed you'd show up!\p" .string "See for yourself what the fanatics\n" @@ -678,14 +678,14 @@ MtChimney_Text_ArchieGoStopTeamMagma: @ 822FAD2 .string "Doing something like that will cause\n" .string "the volcano's eruption!$" -MtChimney_Text_ArchieIHaveMyHandsFull: @ 822FBC7 +MtChimney_Text_ArchieIHaveMyHandsFull: .string "ARCHIE: Grrr…\p" .string "I want to stop that MAXIE,\n" .string "but I can't!\p" .string "Not when I have my hands full battling\n" .string "three opponents at once!$" -MtChimney_Text_ArchieThankYou: @ 822FC3D +MtChimney_Text_ArchieThankYou: .string "ARCHIE: {PLAYER}!\n" .string "Thank you!\p" .string "With your help, we thwarted TEAM\n" @@ -697,161 +697,161 @@ MtChimney_Text_ArchieThankYou: @ 822FC3D .string "our pursuit of TEAM MAGMA.\p" .string "{PLAYER}, we shall meet again!$" -MtChimney_Text_MagmaOutnumbersUs: @ 822FD1F +MtChimney_Text_MagmaOutnumbersUs: .string "Darn… TEAM MAGMA outnumbers us!\n" .string "We can't keep up with them!$" -MtChimney_Text_LessHabitatForWaterPokemon: @ 822FD5B +MtChimney_Text_LessHabitatForWaterPokemon: .string "If they expand the land, there'll be\n" .string "less habitats for WATER POKéMON!$" -MtChimney_Text_MagmasNameSimilar: @ 822FDA1 +MtChimney_Text_MagmasNameSimilar: .string "We're TEAM AQUA!\p" .string "They're TEAM MAGMA!\p" .string "It burns me up that they'd use such\n" .string "a confusing name!$" -MtChimney_Text_Bushaa: @ 822FDFC +MtChimney_Text_Bushaa: .string "Bushaa!$" -MtChimney_Text_LavaCookiesJust200: @ 822FE04 +MtChimney_Text_LavaCookiesJust200: .string "LAVA COOKIES are MT. CHIMNEY's local\n" .string "specialty.\p" .string "Try one. It's just ¥200.$" -MtChimney_Text_ThankYouDear: @ 822FE4D +MtChimney_Text_ThankYouDear: .string "Thank you, dear!$" -MtChimney_Text_YouveNotGotTheMoney: @ 822FE5E +MtChimney_Text_YouveNotGotTheMoney: .string "Oh, dear. You can't buy a thing if\n" .string "you've not got the money.$" -MtChimney_Text_OhFineThen: @ 822FE9B +MtChimney_Text_OhFineThen: .string "Oh, fine then.$" -MtChimney_Text_MetoriteFittedOnMachine: @ 822FEAA +MtChimney_Text_MetoriteFittedOnMachine: .string "A METEORITE is fitted on a mysterious\n" .string "machine…\p" .string "The machine seems to be storing\n" .string "energy in the METEORITE.$" -MtChimney_Text_RemoveTheMeteorite: @ 822FF12 +MtChimney_Text_RemoveTheMeteorite: .string "A METEORITE is fitted on a mysterious\n" .string "machine…\p" .string "Do you want to remove the METEORITE?$" -MtChimney_Text_PlayerRemovedMeteorite: @ 822FF66 +MtChimney_Text_PlayerRemovedMeteorite: .string "{PLAYER} removed the METEORITE from\n" .string "the mysterious machine.$" -MtChimney_Text_PlayerLeftMeteorite: @ 822FF9C +MtChimney_Text_PlayerLeftMeteorite: .string "{PLAYER} left the METEORITE where\n" .string "it was.$" -MtChimney_Text_MachineMakesNoResponse: @ 822FFC0 +MtChimney_Text_MachineMakesNoResponse: .string "This mysterious machine…\n" .string "It makes no response whatsoever.$" -MtChimney_Text_RouteSign: @ 822FFFA +MtChimney_Text_RouteSign: .string "{DOWN_ARROW} JAGGED PATH\n" .string "LAVARIDGE TOWN AHEAD$" -MtChimney_Text_ShelbyIntro: @ 823001D +MtChimney_Text_ShelbyIntro: .string "I've been to the hot springs and\n" .string "refreshed my tired bones.\l" .string "Right now I'm feeling strong!$" -MtChimney_Text_ShelbyDefeat: @ 8230076 +MtChimney_Text_ShelbyDefeat: .string "Oh, my goodness.\n" .string "Now, aren't you something!$" -MtChimney_Text_ShelbyPostBattle: @ 82300A2 +MtChimney_Text_ShelbyPostBattle: .string "Well, well, I've lost. I can't call\n" .string "myself an EXPERT now, can I?$" -MtChimney_Text_ShelbyRegister: @ 82300E3 +MtChimney_Text_ShelbyRegister: .string "Thank you, child. It was fun, as if\n" .string "I were battling my own grandchild.\p" .string "Please, come see me again for\n" .string "a rematch.$" -MtChimney_Text_ShelbyRematchIntro: @ 8230153 +MtChimney_Text_ShelbyRematchIntro: .string "If you can mesh your heart with those\n" .string "of your POKéMON, why, you should be\l" .string "able to achieve great things.$" -MtChimney_Text_ShelbyRematchDefeat: @ 82301BB +MtChimney_Text_ShelbyRematchDefeat: .string "Oh, my goodness.\n" .string "Now, aren't you something!$" -MtChimney_Text_ShelbyPostRematch: @ 82301E7 +MtChimney_Text_ShelbyPostRematch: .string "Perhaps your heart has become one\n" .string "with the hearts of your POKéMON.$" -MtChimney_Text_MelissaIntro: @ 823022A +MtChimney_Text_MelissaIntro: .string "I've got the fire in me, baby.\n" .string "I can't stand it! I have to battle!$" -MtChimney_Text_MelissaDefeat: @ 823026D +MtChimney_Text_MelissaDefeat: .string "Ooh, that was a scorching-hot match!$" -MtChimney_Text_MelissaPostBattle: @ 8230292 +MtChimney_Text_MelissaPostBattle: .string "The heat of MT. CHIMNEY warms\n" .string "me up, baby!$" -MtChimney_Text_SheilaIntro: @ 82302BD +MtChimney_Text_SheilaIntro: .string "I've finally made it to MT. CHIMNEY.\n" .string "I want to make my POKéMON battle!$" -MtChimney_Text_SheilaDefeat: @ 8230304 +MtChimney_Text_SheilaDefeat: .string "The way you battle…\n" .string "It's like a MT. CHIMNEY eruption!$" -MtChimney_Text_SheilaPostBattle: @ 823033A +MtChimney_Text_SheilaPostBattle: .string "Like I said, I've finally made it to\n" .string "MT. CHIMNEY. It would be a shame if\l" .string "I only do a little sightseeing…\p" .string "I want to get in some battles and buy\n" .string "COOKIES as souvenirs.$" -MtChimney_Text_ShirleyIntro: @ 82303DF +MtChimney_Text_ShirleyIntro: .string "Since I bathed in the hot springs,\n" .string "I've been feeling great!\l" .string "I'm sure I'm going to win!$" -MtChimney_Text_ShirleyDefeat: @ 8230436 +MtChimney_Text_ShirleyDefeat: .string "Yowch!\n" .string "I'm getting a chill out of the water.$" -MtChimney_Text_ShirleyPostBattle: @ 8230463 +MtChimney_Text_ShirleyPostBattle: .string "I'll have to take another dip in the\n" .string "hot springs. Want to join me?\p" .string "Just joking!$" -MtChimney_Text_SawyerIntro: @ 82304B3 +MtChimney_Text_SawyerIntro: .string "This is one fine mountain! Plenty of\n" .string "hot people around for company!$" -MtChimney_Text_SawyerDefeat: @ 82304F7 +MtChimney_Text_SawyerDefeat: .string "Oh, you're a real firebrand, too!$" -MtChimney_Text_SawyerPostBattle: @ 8230519 +MtChimney_Text_SawyerPostBattle: .string "I think I need a dip in LAVARIDGE\n" .string "HOT SPRING with the locals!$" -MtChimney_Text_SawyerRegister: @ 8230557 +MtChimney_Text_SawyerRegister: .string "I like little fireballs like you.\n" .string "Let me register you in my POKéNAV.$" -MtChimney_Text_SawyerRematchIntro: @ 823059C +MtChimney_Text_SawyerRematchIntro: .string "I'm happily surrounded by hot people\n" .string "around these parts. I won't lose!$" -MtChimney_Text_SawyerRematchDefeat: @ 82305E3 +MtChimney_Text_SawyerRematchDefeat: .string "Gosh, you're still the same\n" .string "firebrand as before!$" -MtChimney_Text_SawyerPostRematch: @ 8230614 +MtChimney_Text_SawyerPostRematch: .string "Actually, it really is hot here.\n" .string "I'm overdressed for these parts.$" diff --git a/data/maps/MtChimney_CableCarStation/scripts.inc b/data/maps/MtChimney_CableCarStation/scripts.inc index 5eebdb7673..c2e8da486e 100644 --- a/data/maps/MtChimney_CableCarStation/scripts.inc +++ b/data/maps/MtChimney_CableCarStation/scripts.inc @@ -1,25 +1,25 @@ .set LOCALID_ATTENDANT, 1 -MtChimney_CableCarStation_MapScripts:: @ 822ABFA +MtChimney_CableCarStation_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MtChimney_CableCarStation_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, MtChimney_CableCarStation_OnFrame .byte 0 -MtChimney_CableCarStation_OnTransition: @ 822AC05 +MtChimney_CableCarStation_OnTransition: compare VAR_CABLE_CAR_STATION_STATE, 1 call_if_eq MtChimney_CableCarStation_EventScript_MoveAttendantAside end -MtChimney_CableCarStation_EventScript_MoveAttendantAside:: @ 822AC11 +MtChimney_CableCarStation_EventScript_MoveAttendantAside:: setobjectxyperm LOCALID_ATTENDANT, 5, 4 setobjectmovementtype LOCALID_ATTENDANT, MOVEMENT_TYPE_FACE_RIGHT return -MtChimney_CableCarStation_OnFrame: @ 822AC1D +MtChimney_CableCarStation_OnFrame: map_script_2 VAR_CABLE_CAR_STATION_STATE, 1, MtChimney_CableCarStation_EventScript_ExitCableCar .2byte 0 -MtChimney_CableCarStation_EventScript_ExitCableCar:: @ 822AC27 +MtChimney_CableCarStation_EventScript_ExitCableCar:: lockall applymovement OBJ_EVENT_ID_PLAYER, MtChimney_CableCarStation_Movement_ExitCableCar applymovement LOCALID_ATTENDANT, MtChimney_CableCarStation_Movement_FollowPlayerOutFromCableCar @@ -30,7 +30,7 @@ MtChimney_CableCarStation_EventScript_ExitCableCar:: @ 822AC27 releaseall end -MtChimney_CableCarStation_EventScript_Attendant:: @ 822AC4B +MtChimney_CableCarStation_EventScript_Attendant:: lock faceplayer msgbox MtChimney_CableCarStation_Text_CableCarReadyGetOn, MSGBOX_YESNO @@ -40,7 +40,7 @@ MtChimney_CableCarStation_EventScript_Attendant:: @ 822AC4B goto_if_eq MtChimney_CableCarStation_EventScript_DeclineRide end -MtChimney_CableCarStation_EventScript_RideCableCar:: @ 822AC6C +MtChimney_CableCarStation_EventScript_RideCableCar:: msgbox MtChimney_CableCarStation_Text_StepThisWay, MSGBOX_DEFAULT closemessage applymovement LOCALID_ATTENDANT, MtChimney_CableCarStation_Movement_LeadPlayerToCableCar @@ -55,46 +55,46 @@ MtChimney_CableCarStation_EventScript_RideCableCar:: @ 822AC6C release end -MtChimney_CableCarStation_EventScript_DeclineRide:: @ 822AC9B +MtChimney_CableCarStation_EventScript_DeclineRide:: msgbox MtChimney_CableCarStation_Text_RideAnotherTime, MSGBOX_DEFAULT release end -MtChimney_CableCarStation_Movement_LeadPlayerToCableCar: @ 822ACA5 +MtChimney_CableCarStation_Movement_LeadPlayerToCableCar: walk_up walk_up walk_left walk_in_place_fastest_right step_end -MtChimney_CableCarStation_Movement_FollowPlayerOutFromCableCar: @ 822ACAA +MtChimney_CableCarStation_Movement_FollowPlayerOutFromCableCar: delay_16 walk_right walk_down walk_down step_end -MtChimney_CableCarStation_Movement_BoardCableCar: @ 822ACAF +MtChimney_CableCarStation_Movement_BoardCableCar: walk_up walk_up walk_up delay_16 step_end -MtChimney_CableCarStation_Movement_ExitCableCar: @ 822ACB4 +MtChimney_CableCarStation_Movement_ExitCableCar: walk_down walk_down walk_down delay_16 step_end -MtChimney_CableCarStation_Text_CableCarReadyGetOn: @ 822ACB9 +MtChimney_CableCarStation_Text_CableCarReadyGetOn: .string "The CABLE CAR is ready to go down.\n" .string "Would you like to be on it?$" -MtChimney_CableCarStation_Text_StepThisWay: @ 822ACF8 +MtChimney_CableCarStation_Text_StepThisWay: .string "Please step this way.$" -MtChimney_CableCarStation_Text_RideAnotherTime: @ 822AD0E +MtChimney_CableCarStation_Text_RideAnotherTime: .string "Please ride with us another time.$" diff --git a/data/maps/MtPyre_1F/scripts.inc b/data/maps/MtPyre_1F/scripts.inc index a303cb2c10..1354b2ac1b 100644 --- a/data/maps/MtPyre_1F/scripts.inc +++ b/data/maps/MtPyre_1F/scripts.inc @@ -1,7 +1,7 @@ -MtPyre_1F_MapScripts:: @ 8230F3E +MtPyre_1F_MapScripts:: .byte 0 -MtPyre_1F_EventScript_CleanseTagWoman:: @ 8230F3F +MtPyre_1F_EventScript_CleanseTagWoman:: lock faceplayer goto_if_set FLAG_RECEIVED_CLEANSE_TAG, MtPyre_1F_EventScript_ReceivedCleanseTag @@ -13,36 +13,36 @@ MtPyre_1F_EventScript_CleanseTagWoman:: @ 8230F3F release end -MtPyre_1F_EventScript_ReceivedCleanseTag:: @ 8230F6E +MtPyre_1F_EventScript_ReceivedCleanseTag:: msgbox MtPyre_1F_Text_ExplainCleanseTag, MSGBOX_DEFAULT release end -MtPyre_1F_EventScript_PokefanF:: @ 8230F78 +MtPyre_1F_EventScript_PokefanF:: msgbox MtPyre_1F_Text_ComeToPayRespects, MSGBOX_NPC end -MtPyre_1F_EventScript_Man:: @ 8230F81 +MtPyre_1F_EventScript_Man:: msgbox MtPyre_1F_Text_RestingPlaceOfZigzagoon, MSGBOX_NPC end -MtPyre_1F_Text_TakeThisForYourOwnGood: @ 8230F8A +MtPyre_1F_Text_TakeThisForYourOwnGood: .string "All sorts of beings wander the slopes\n" .string "of MT. PYRE…\p" .string "There is no telling what may happen.\n" .string "Take this. It's for your own good.$" -MtPyre_1F_Text_ExplainCleanseTag: @ 8231005 +MtPyre_1F_Text_ExplainCleanseTag: .string "Have a POKéMON hold that\n" .string "CLEANSE TAG.\p" .string "It will help ward off wild POKéMON.$" -MtPyre_1F_Text_ComeToPayRespects: @ 823104F +MtPyre_1F_Text_ComeToPayRespects: .string "Did you come to pay your respect\n" .string "to the spirits of departed POKéMON?\p" .string "You must care for your POKéMON a lot.$" -MtPyre_1F_Text_RestingPlaceOfZigzagoon: @ 82310BA +MtPyre_1F_Text_RestingPlaceOfZigzagoon: .string "This is the final resting place of my\n" .string "ZIGZAGOON. I cherished it…$" diff --git a/data/maps/MtPyre_2F/scripts.inc b/data/maps/MtPyre_2F/scripts.inc index 52c1a154cc..9fe7bf9d2f 100644 --- a/data/maps/MtPyre_2F/scripts.inc +++ b/data/maps/MtPyre_2F/scripts.inc @@ -1,91 +1,91 @@ -MtPyre_2F_MapScripts:: @ 82310FB +MtPyre_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CaveHole_CheckFallDownHole map_script MAP_SCRIPT_ON_TRANSITION, CaveHole_FixCrackedGround map_script MAP_SCRIPT_ON_RESUME, MtPyre_2F_SetHoleWarp .byte 0 -MtPyre_2F_SetHoleWarp: @ 823110B +MtPyre_2F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR setholewarp MAP_MT_PYRE_1F, 255, 0, 0 end -MtPyre_2F_EventScript_Woman:: @ 8231116 +MtPyre_2F_EventScript_Woman:: msgbox MtPyre_2F_Text_MemoriesOfSkitty, MSGBOX_NPC end -MtPyre_2F_EventScript_PokefanM:: @ 823111F +MtPyre_2F_EventScript_PokefanM:: msgbox MtPyre_2F_Text_TumbledFromFloorAbove, MSGBOX_NPC end -MtPyre_2F_EventScript_Mark:: @ 8231128 +MtPyre_2F_EventScript_Mark:: trainerbattle_single TRAINER_MARK, MtPyre_2F_Text_MarkIntro, MtPyre_2F_Text_MarkDefeat msgbox MtPyre_2F_Text_MarkPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_2F_EventScript_Luke:: @ 823113F +MtPyre_2F_EventScript_Luke:: trainerbattle_double TRAINER_DEZ_AND_LUKE, MtPyre_2F_Text_LukeIntro, MtPyre_2F_Text_LukeDefeat, MtPyre_2F_Text_LukeNotEnoughMons msgbox MtPyre_2F_Text_LukePostBattle, MSGBOX_AUTOCLOSE end -MtPyre_2F_EventScript_Dez:: @ 823115A +MtPyre_2F_EventScript_Dez:: trainerbattle_double TRAINER_DEZ_AND_LUKE, MtPyre_2F_Text_DezIntro, MtPyre_2F_Text_DezDefeat, MtPyre_2F_Text_DezNotEnoughMons msgbox MtPyre_2F_Text_DezPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_2F_EventScript_Leah:: @ 8231175 +MtPyre_2F_EventScript_Leah:: trainerbattle_single TRAINER_LEAH, MtPyre_2F_Text_LeahIntro, MtPyre_2F_Text_LeahDefeat msgbox MtPyre_2F_Text_LeahPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_2F_EventScript_Zander:: @ 823118C +MtPyre_2F_EventScript_Zander:: trainerbattle_single TRAINER_ZANDER, MtPyre_2F_Text_ZanderIntro, MtPyre_2F_Text_ZanderDefeat msgbox MtPyre_2F_Text_ZanderPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_2F_Text_MemoriesOfSkitty: @ 82311A3 +MtPyre_2F_Text_MemoriesOfSkitty: .string "Memories of my darling SKITTY…\n" .string "My eyes overflow thinking about it.$" -MtPyre_2F_Text_TumbledFromFloorAbove: @ 82311E6 +MtPyre_2F_Text_TumbledFromFloorAbove: .string "Ooch, ouch… There are holes in the\n" .string "ground here and there.\p" .string "I didn't notice and took a tumble from\n" .string "the floor above.$" -MtPyre_2F_Text_MarkIntro: @ 8231258 +MtPyre_2F_Text_MarkIntro: .string "Hey! Are you searching for POKéMON?\n" .string "You came along after me! You're rude!$" -MtPyre_2F_Text_MarkDefeat: @ 82312A2 +MtPyre_2F_Text_MarkDefeat: .string "Ayieeeeh!\n" .string "I'm sorry, forgive me, please!$" -MtPyre_2F_Text_MarkPostBattle: @ 82312CB +MtPyre_2F_Text_MarkPostBattle: .string "People don't come here often, so\n" .string "I thought there'd be rare POKéMON.$" -MtPyre_2F_Text_LukeIntro: @ 823130F +MtPyre_2F_Text_LukeIntro: .string "LUKE: We're here on a dare.\p" .string "Heheh, if I show her how cool I am,\n" .string "she'll fall for me. I know it!\p" .string "I know! I'll cream you and show her\n" .string "how cool I am!$" -MtPyre_2F_Text_LukeDefeat: @ 82313A1 +MtPyre_2F_Text_LukeDefeat: .string "LUKE: Whoopsie!$" -MtPyre_2F_Text_LukePostBattle: @ 82313B1 +MtPyre_2F_Text_LukePostBattle: .string "LUKE: Well, we lost but that's okay!\n" .string "I'm right here by your side.\l" .string "We'll make it through this dare!$" -MtPyre_2F_Text_LukeNotEnoughMons: @ 8231414 +MtPyre_2F_Text_LukeNotEnoughMons: .string "LUKE: If you want to take me on,\n" .string "bring some more POKéMON.\p" .string "If you don't, I won't be able to show\n" .string "off to my girl how cool I am!$" -MtPyre_2F_Text_DezIntro: @ 8231492 +MtPyre_2F_Text_DezIntro: .string "DEZ: I came here on a dare with my\n" .string "boyfriend.\p" .string "It's really scary, but I'm with my\n" @@ -93,42 +93,42 @@ MtPyre_2F_Text_DezIntro: @ 8231492 .string "I know! I'll get my boyfriend to look\n" .string "cool by beating you!$" -MtPyre_2F_Text_DezDefeat: @ 8231534 +MtPyre_2F_Text_DezDefeat: .string "DEZ: Waaaah! I'm scared!$" -MtPyre_2F_Text_DezPostBattle: @ 823154D +MtPyre_2F_Text_DezPostBattle: .string "DEZ: We're lovey-dovey, so we don't\n" .string "care if we lose!$" -MtPyre_2F_Text_DezNotEnoughMons: @ 8231582 +MtPyre_2F_Text_DezNotEnoughMons: .string "DEZ: If you want to challenge us, you\n" .string "should bring at least two POKéMON.\p" .string "My boyfriend's strong.\n" .string "Just one POKéMON won't do at all.$" -MtPyre_2F_Text_LeahIntro: @ 8231604 +MtPyre_2F_Text_LeahIntro: .string "You are an unfamiliar sight…\n" .string "Depart before anything befalls you!$" -MtPyre_2F_Text_LeahDefeat: @ 8231645 +MtPyre_2F_Text_LeahDefeat: .string "Hmm…\n" .string "You're durable.$" -MtPyre_2F_Text_LeahPostBattle: @ 823165A +MtPyre_2F_Text_LeahPostBattle: .string "Our family has been TRAINERS here\n" .string "since my great-grandmother's time…\p" .string "It is my duty to protect this\n" .string "mountain…$" -MtPyre_2F_Text_ZanderIntro: @ 82316C7 +MtPyre_2F_Text_ZanderIntro: .string "Kiyaaaaah!\n" .string "I'm terrified!$" -MtPyre_2F_Text_ZanderDefeat: @ 82316E1 +MtPyre_2F_Text_ZanderDefeat: .string "Nooooooo!\n" .string "I lost my wits!$" -MtPyre_2F_Text_ZanderPostBattle: @ 82316FB +MtPyre_2F_Text_ZanderPostBattle: .string "I get freaked out every time I see\n" .string "anything move…\p" .string "I shouldn't have come here to train…$" diff --git a/data/maps/MtPyre_3F/scripts.inc b/data/maps/MtPyre_3F/scripts.inc index 02cea0c22a..b91a589bc0 100644 --- a/data/maps/MtPyre_3F/scripts.inc +++ b/data/maps/MtPyre_3F/scripts.inc @@ -1,17 +1,17 @@ -MtPyre_3F_MapScripts:: @ 8231752 +MtPyre_3F_MapScripts:: .byte 0 -MtPyre_3F_EventScript_William:: @ 8231753 +MtPyre_3F_EventScript_William:: trainerbattle_single TRAINER_WILLIAM, MtPyre_3F_Text_WilliamIntro, MtPyre_3F_Text_WilliamDefeat msgbox MtPyre_3F_Text_WilliamPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_3F_EventScript_Kayla:: @ 823176A +MtPyre_3F_EventScript_Kayla:: trainerbattle_single TRAINER_KAYLA, MtPyre_3F_Text_KaylaIntro MtPyre_3F_Text_KaylaDefeat msgbox MtPyre_3F_Text_KaylaPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_3F_EventScript_Gabrielle:: @ 8231781 +MtPyre_3F_EventScript_Gabrielle:: trainerbattle_single TRAINER_GABRIELLE_1, MtPyre_3F_Text_GabrielleIntro, MtPyre_3F_Text_GabrielleDefeat, MtPyre_3F_EventScript_RegisterGabrielle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -20,7 +20,7 @@ MtPyre_3F_EventScript_Gabrielle:: @ 8231781 release end -MtPyre_3F_EventScript_RegisterGabrielle:: @ 82317AD +MtPyre_3F_EventScript_RegisterGabrielle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox MtPyre_3F_Text_GabrielleRegister, MSGBOX_DEFAULT @@ -28,47 +28,47 @@ MtPyre_3F_EventScript_RegisterGabrielle:: @ 82317AD release end -MtPyre_3F_EventScript_RematchGabrielle:: @ 82317CC +MtPyre_3F_EventScript_RematchGabrielle:: trainerbattle_rematch TRAINER_GABRIELLE_1, MtPyre_3F_Text_GabrielleRematchIntro, MtPyre_3F_Text_GabrielleRematchDefeat msgbox MtPyre_3F_Text_GabriellePostRematch, MSGBOX_AUTOCLOSE end -MtPyre_3F_Text_WilliamIntro: @ 82317E3 +MtPyre_3F_Text_WilliamIntro: .string "The rich atmosphere of the mountain\n" .string "has elevated my psychic power!\p" .string "A mere child like you…\n" .string "You dream of winning?$" -MtPyre_3F_Text_WilliamDefeat: @ 8231853 +MtPyre_3F_Text_WilliamDefeat: .string "I drown in self-pity…$" -MtPyre_3F_Text_WilliamPostBattle: @ 8231869 +MtPyre_3F_Text_WilliamPostBattle: .string "My psychic powers have surely\n" .string "grown several times, but…$" -MtPyre_3F_Text_KaylaIntro: @ 82318A1 +MtPyre_3F_Text_KaylaIntro: .string "Ahahahaha!\p" .string "This is no place for children, least\n" .string "of all you!$" -MtPyre_3F_Text_KaylaDefeat: @ 82318DD +MtPyre_3F_Text_KaylaDefeat: .string "I lost that cleanly…$" -MtPyre_3F_Text_KaylaPostBattle: @ 82318F2 +MtPyre_3F_Text_KaylaPostBattle: .string "This means my training is still not\n" .string "enough…\p" .string "I've got to keep working toward the\n" .string "summit…\p" .string "Go, me!$" -MtPyre_3F_Text_GabrielleIntro: @ 8231952 +MtPyre_3F_Text_GabrielleIntro: .string "Why have you come here?$" -MtPyre_3F_Text_GabrielleDefeat: @ 823196A +MtPyre_3F_Text_GabrielleDefeat: .string "That was amazing!\n" .string "You're a very special TRAINER.$" -MtPyre_3F_Text_GabriellePostBattle: @ 823199B +MtPyre_3F_Text_GabriellePostBattle: .string "POKéMON no longer of this world.\n" .string "POKéMON that are with you now.\p" .string "And the POKéMON that you will meet\n" @@ -76,21 +76,21 @@ MtPyre_3F_Text_GabriellePostBattle: @ 823199B .string "They are all to be equally cherished.\n" .string "Please remember that.$" -MtPyre_3F_Text_GabrielleRegister: @ 8231A49 +MtPyre_3F_Text_GabrielleRegister: .string "I would like to see your POKéMON\n" .string "when they grow up some more…\p" .string "Please, I need to see your POKéNAV.$" -MtPyre_3F_Text_GabrielleRematchIntro: @ 8231AAB +MtPyre_3F_Text_GabrielleRematchIntro: .string "Oh, it's you…\p" .string "Have you come to show me your grown\n" .string "POKéMON?$" -MtPyre_3F_Text_GabrielleRematchDefeat: @ 8231AE6 +MtPyre_3F_Text_GabrielleRematchDefeat: .string "How amazing!\n" .string "You are a special person.$" -MtPyre_3F_Text_GabriellePostRematch: @ 8231B0D +MtPyre_3F_Text_GabriellePostRematch: .string "POKéMON no longer of this world.\n" .string "POKéMON that are with you now.\p" .string "And the POKéMON that you will meet\n" diff --git a/data/maps/MtPyre_4F/scripts.inc b/data/maps/MtPyre_4F/scripts.inc index 683b38607a..0127e68562 100644 --- a/data/maps/MtPyre_4F/scripts.inc +++ b/data/maps/MtPyre_4F/scripts.inc @@ -1,22 +1,22 @@ -MtPyre_4F_MapScripts:: @ 8231BC8 +MtPyre_4F_MapScripts:: .byte 0 @ Seems like the scripts for the 4F and 5F were swapped -MtPyre_5F_EventScript_Atsushi:: @ 8231BC9 +MtPyre_5F_EventScript_Atsushi:: trainerbattle_single TRAINER_ATSUSHI, MtPyre_5F_Text_AtsushiIntro, MtPyre_5F_Text_AtsushiDefeat msgbox MtPyre_5F_Text_AtsushiPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_5F_Text_AtsushiIntro: @ 8231BE0 +MtPyre_5F_Text_AtsushiIntro: .string "Teacher…\n" .string "Please watch over my progress!$" -MtPyre_5F_Text_AtsushiDefeat: @ 8231C08 +MtPyre_5F_Text_AtsushiDefeat: .string "Teacher…\n" .string "Please forgive me!$" -MtPyre_5F_Text_AtsushiPostBattle: @ 8231C24 +MtPyre_5F_Text_AtsushiPostBattle: .string "Until I improve, my teacher, who rests\n" .string "here, will never find true peace…$" diff --git a/data/maps/MtPyre_5F/scripts.inc b/data/maps/MtPyre_5F/scripts.inc index f27370d7c6..1c8a3fc7df 100644 --- a/data/maps/MtPyre_5F/scripts.inc +++ b/data/maps/MtPyre_5F/scripts.inc @@ -1,23 +1,23 @@ -MtPyre_5F_MapScripts:: @ 8231C6D +MtPyre_5F_MapScripts:: .byte 0 @ Seems like the scripts for the 4F and 5F were swapped -MtPyre_4F_EventScript_Tasha:: @ 8231C6E +MtPyre_4F_EventScript_Tasha:: trainerbattle_single TRAINER_TASHA, MtPyre_4F_Text_TashaIntro, MtPyre_4F_Text_TashaDefeat msgbox MtPyre_4F_Text_TashaPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_4F_Text_TashaIntro: @ 8231C85 +MtPyre_4F_Text_TashaIntro: .string "I love all things horrifying…\n" .string "It's like a disease…\p" .string "When I'm here…\n" .string "I shiver with fear…$" -MtPyre_4F_Text_TashaDefeat: @ 8231CDB +MtPyre_4F_Text_TashaDefeat: .string "Losing, I dislike…$" -MtPyre_4F_Text_TashaPostBattle: @ 8231CEE +MtPyre_4F_Text_TashaPostBattle: .string "I want to see dreadful things…\n" .string "I can't leave…\p" .string "Stay…\n" diff --git a/data/maps/MtPyre_6F/scripts.inc b/data/maps/MtPyre_6F/scripts.inc index e3bdd928e9..4b7df8e7cf 100644 --- a/data/maps/MtPyre_6F/scripts.inc +++ b/data/maps/MtPyre_6F/scripts.inc @@ -1,7 +1,7 @@ -MtPyre_6F_MapScripts:: @ 8231D3A +MtPyre_6F_MapScripts:: .byte 0 -MtPyre_6F_EventScript_Valerie:: @ 8231D3B +MtPyre_6F_EventScript_Valerie:: trainerbattle_single TRAINER_VALERIE_1, MtPyre_6F_Text_ValerieIntro, MtPyre_6F_Text_ValerieDefeat, MtPyre_6F_EventScript_RegisterValerie specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -10,7 +10,7 @@ MtPyre_6F_EventScript_Valerie:: @ 8231D3B release end -MtPyre_6F_EventScript_RegisterValerie:: @ 8231D67 +MtPyre_6F_EventScript_RegisterValerie:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox MtPyre_6F_Text_ValerieRegister, MSGBOX_DEFAULT @@ -18,52 +18,52 @@ MtPyre_6F_EventScript_RegisterValerie:: @ 8231D67 release end -MtPyre_6F_EventScript_RematchValerie:: @ 8231D86 +MtPyre_6F_EventScript_RematchValerie:: trainerbattle_rematch TRAINER_VALERIE_1, MtPyre_6F_Text_ValerieRematchIntro, MtPyre_6F_Text_ValerieRematchDefeat msgbox MtPyre_6F_Text_ValeriePostRematch, MSGBOX_AUTOCLOSE end -MtPyre_6F_EventScript_Cedric:: @ 8231D9D +MtPyre_6F_EventScript_Cedric:: trainerbattle_single TRAINER_CEDRIC, MtPyre_6F_Text_CedricIntro, MtPyre_6F_Text_CedricDefeat msgbox MtPyre_6F_Text_CedricPostBattle, MSGBOX_AUTOCLOSE end -MtPyre_6F_Text_ValerieIntro: @ 8231DB4 +MtPyre_6F_Text_ValerieIntro: .string "When I'm here…\n" .string "A curious power flows into me…$" -MtPyre_6F_Text_ValerieDefeat: @ 8231DE2 +MtPyre_6F_Text_ValerieDefeat: .string "The power is ebbing away…$" -MtPyre_6F_Text_ValeriePostBattle: @ 8231DFC +MtPyre_6F_Text_ValeriePostBattle: .string "Perhaps the power is from the spirits\n" .string "of POKéMON in fitful sleep here…$" -MtPyre_6F_Text_ValerieRegister: @ 8231E43 +MtPyre_6F_Text_ValerieRegister: .string "Fufufu… I lost the match, but…\n" .string "I have this little ability…\p" .string "Without ever laying my hands on\n" .string "your POKéNAV… Hiyah!$" -MtPyre_6F_Text_ValerieRematchIntro: @ 8231EB3 +MtPyre_6F_Text_ValerieRematchIntro: .string "Behind you…\n" .string "What is it…$" -MtPyre_6F_Text_ValerieRematchDefeat: @ 8231ECB +MtPyre_6F_Text_ValerieRematchDefeat: .string "Something faded away…$" -MtPyre_6F_Text_ValeriePostRematch: @ 8231EE1 +MtPyre_6F_Text_ValeriePostRematch: .string "The POKéMON at rest here…\n" .string "Sometimes, they play…$" -MtPyre_6F_Text_CedricIntro: @ 8231F11 +MtPyre_6F_Text_CedricIntro: .string "Have you lost your bearings?\n" .string "Have no fear for I am here!$" -MtPyre_6F_Text_CedricDefeat: @ 8231F4A +MtPyre_6F_Text_CedricDefeat: .string "Weren't you lost?$" -MtPyre_6F_Text_CedricPostBattle: @ 8231F5C +MtPyre_6F_Text_CedricPostBattle: .string "I had this feeling that a lost TRAINER\n" .string "would be panicked and easy to beat.\p" .string "It's dirty and I won't try it again…$" diff --git a/data/maps/MtPyre_Exterior/scripts.inc b/data/maps/MtPyre_Exterior/scripts.inc index 56a990266f..01279d645c 100644 --- a/data/maps/MtPyre_Exterior/scripts.inc +++ b/data/maps/MtPyre_Exterior/scripts.inc @@ -1,27 +1,27 @@ -MtPyre_Exterior_MapScripts:: @ 8231FCC +MtPyre_Exterior_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MtPyre_Exterior_OnTransition .byte 0 -MtPyre_Exterior_OnTransition: @ 8231FD2 +MtPyre_Exterior_OnTransition: call MtPyre_Exterior_EventScript_CheckEnterFromSummit end -MtPyre_Exterior_EventScript_CheckEnterFromSummit:: @ 8231FD8 +MtPyre_Exterior_EventScript_CheckEnterFromSummit:: getplayerxy VAR_TEMP_0, VAR_TEMP_1 compare VAR_TEMP_1, 12 goto_if_lt MtPyre_Exterior_EventScript_EnterFromSummit return -MtPyre_Exterior_EventScript_EnterFromSummit:: @ 8231FE9 +MtPyre_Exterior_EventScript_EnterFromSummit:: setweather WEATHER_FOG_HORIZONTAL return -MtPyre_Exterior_EventScript_FogTrigger:: @ 8231FED +MtPyre_Exterior_EventScript_FogTrigger:: setweather WEATHER_FOG_HORIZONTAL doweather end -MtPyre_Exterior_EventScript_SunTrigger:: @ 8231FF2 +MtPyre_Exterior_EventScript_SunTrigger:: setweather WEATHER_SUNNY doweather end diff --git a/data/maps/MtPyre_Summit/scripts.inc b/data/maps/MtPyre_Summit/scripts.inc index c2692ff20d..d55872792b 100644 --- a/data/maps/MtPyre_Summit/scripts.inc +++ b/data/maps/MtPyre_Summit/scripts.inc @@ -6,40 +6,40 @@ .set LOCALID_GRUNT_4, 7 .set LOCALID_MAXIE, 8 -MtPyre_Summit_MapScripts:: @ 8231FF7 +MtPyre_Summit_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, MtPyre_Summit_OnTransition .byte 0 -MtPyre_Summit_OnTransition: @ 8231FFD +MtPyre_Summit_OnTransition: compare VAR_MT_PYRE_STATE, 2 call_if_eq MtPyre_Summit_EventScript_SetArchieMaxiePositions end -MtPyre_Summit_EventScript_SetArchieMaxiePositions:: @ 8232009 +MtPyre_Summit_EventScript_SetArchieMaxiePositions:: setobjectxyperm LOCALID_MAXIE, 23, 6 setobjectxyperm LOCALID_ARCHIE, 22, 6 end -MtPyre_Summit_EventScript_TeamAquaTrigger0:: @ 8232018 +MtPyre_Summit_EventScript_TeamAquaTrigger0:: lockall setvar VAR_0x8008, 0 goto MtPyre_Summit_EventScript_TeamAquaExits end -MtPyre_Summit_EventScript_TeamAquaTrigger1:: @ 8232024 +MtPyre_Summit_EventScript_TeamAquaTrigger1:: lockall setvar VAR_0x8008, 1 goto MtPyre_Summit_EventScript_TeamAquaExits end -MtPyre_Summit_EventScript_TeamAquaTrigger2:: @ 8232030 +MtPyre_Summit_EventScript_TeamAquaTrigger2:: lockall setvar VAR_0x8008, 2 goto MtPyre_Summit_EventScript_TeamAquaExits end -MtPyre_Summit_EventScript_TeamAquaExits:: @ 823203C - playbgm MUS_ENCOUNTER_AQUA, 0 +MtPyre_Summit_EventScript_TeamAquaExits:: + playbgm MUS_ENCOUNTER_AQUA, FALSE applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp waitmovement 0 applymovement LOCALID_ARCHIE, Common_Movement_WalkInPlaceFastestDown @@ -78,66 +78,66 @@ MtPyre_Summit_EventScript_TeamAquaExits:: @ 823203C releaseall end -MtPyre_Summit_EventScript_ArchieFacePlayer0:: @ 82320E0 +MtPyre_Summit_EventScript_ArchieFacePlayer0:: applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieFacePlayer0 waitmovement 0 return @ Archie is already facing player -MtPyre_Summit_EventScript_ArchieFacePlayer1:: @ 82320EB +MtPyre_Summit_EventScript_ArchieFacePlayer1:: return -MtPyre_Summit_EventScript_ArchieFacePlayer2:: @ 82320EC +MtPyre_Summit_EventScript_ArchieFacePlayer2:: applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieFacePlayer2 waitmovement 0 return -MtPyre_Summit_EventScript_OldLadyApproachPlayer0:: @ 82320F7 +MtPyre_Summit_EventScript_OldLadyApproachPlayer0:: applymovement LOCALID_OLD_LADY, MtPyre_Summit_Movement_OldLadyApproachPlayer0 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -MtPyre_Summit_EventScript_OldLadyApproachPlayer1:: @ 823210C +MtPyre_Summit_EventScript_OldLadyApproachPlayer1:: applymovement LOCALID_OLD_LADY, MtPyre_Summit_Movement_OldLadyApproachPlayer1 waitmovement 0 return -MtPyre_Summit_EventScript_OldLadyApproachPlayer2:: @ 8232117 +MtPyre_Summit_EventScript_OldLadyApproachPlayer2:: applymovement LOCALID_OLD_LADY, MtPyre_Summit_Movement_OldLadyApproachPlayer2 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -MtPyre_Summit_Movement_OldLadyApproachPlayer0: @ 823212C +MtPyre_Summit_Movement_OldLadyApproachPlayer0: walk_down walk_down walk_in_place_fastest_left step_end -MtPyre_Summit_Movement_OldLadyApproachPlayer1: @ 8232130 +MtPyre_Summit_Movement_OldLadyApproachPlayer1: walk_down step_end -MtPyre_Summit_Movement_OldLadyApproachPlayer2: @ 8232132 +MtPyre_Summit_Movement_OldLadyApproachPlayer2: walk_down walk_down walk_in_place_fastest_right step_end -MtPyre_Summit_Movement_ArchieFacePlayer0: @ 8232136 +MtPyre_Summit_Movement_ArchieFacePlayer0: walk_left walk_in_place_fastest_down step_end -MtPyre_Summit_Movement_ArchieFacePlayer2: @ 8232139 +MtPyre_Summit_Movement_ArchieFacePlayer2: walk_right walk_in_place_fastest_down step_end -MtPyre_Summit_EventScript_OldMan:: @ 823213C +MtPyre_Summit_EventScript_OldMan:: lock faceplayer goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, MtPyre_Summit_EventScript_OldManAfterRayquaza @@ -149,7 +149,7 @@ MtPyre_Summit_EventScript_OldMan:: @ 823213C release end -MtPyre_Summit_EventScript_OldManAfterRayquaza:: @ 8232167 +MtPyre_Summit_EventScript_OldManAfterRayquaza:: msgbox MtPyre_Summit_Text_HearTheNewLegendOfHoenn, MSGBOX_YESNO compare VAR_RESULT, YES call_if_eq MtPyre_Summit_EventScript_OldManNewTale @@ -158,19 +158,19 @@ MtPyre_Summit_EventScript_OldManAfterRayquaza:: @ 8232167 release end -MtPyre_Summit_EventScript_OldManTale:: @ 8232187 +MtPyre_Summit_EventScript_OldManTale:: msgbox MtPyre_Summit_Text_GroudonKyogreTale, MSGBOX_DEFAULT return -MtPyre_Summit_EventScript_DeclineOldManTale:: @ 8232190 +MtPyre_Summit_EventScript_DeclineOldManTale:: msgbox MtPyre_Summit_Text_WellThatTooIsFine, MSGBOX_DEFAULT return -MtPyre_Summit_EventScript_OldManNewTale:: @ 8232199 +MtPyre_Summit_EventScript_OldManNewTale:: msgbox MtPyre_Summit_Text_HoennTrioTale, MSGBOX_DEFAULT return -MtPyre_Summit_EventScript_OldLady:: @ 82321A2 +MtPyre_Summit_EventScript_OldLady:: lock faceplayer goto_if_set FLAG_RETURNED_RED_OR_BLUE_ORB, MtPyre_Summit_EventScript_OldLadyAfterOrbsReturned @@ -181,41 +181,41 @@ MtPyre_Summit_EventScript_OldLady:: @ 82321A2 release end -MtPyre_Summit_EventScript_OldLadyOrbsReturned:: @ 82321CB +MtPyre_Summit_EventScript_OldLadyOrbsReturned:: msgbox MtPyre_Summit_Text_ThoseTwoMenReturnedOrbs, MSGBOX_DEFAULT setflag FLAG_RETURNED_RED_OR_BLUE_ORB release end -MtPyre_Summit_EventScript_OldLadyLegendariesAwake:: @ 82321D8 +MtPyre_Summit_EventScript_OldLadyLegendariesAwake:: msgbox MtPyre_Summit_Text_GroudonKyogreAwakened, MSGBOX_DEFAULT release end -MtPyre_Summit_EventScript_OldLadyAfterOrbsReturned:: @ 82321E2 +MtPyre_Summit_EventScript_OldLadyAfterOrbsReturned:: msgbox MtPyre_Summit_Text_SuperAncientPokemonTaughtUs, MSGBOX_DEFAULT release end -MtPyre_Summit_EventScript_ArchieMaxieTrigger0:: @ 82321EC +MtPyre_Summit_EventScript_ArchieMaxieTrigger0:: lockall setvar VAR_0x8008, 0 goto MtPyre_Summit_EventScript_ArchieMaxieReturnOrbs end -MtPyre_Summit_EventScript_ArchieMaxieTrigger1:: @ 82321F8 +MtPyre_Summit_EventScript_ArchieMaxieTrigger1:: lockall setvar VAR_0x8008, 1 goto MtPyre_Summit_EventScript_ArchieMaxieReturnOrbs end -MtPyre_Summit_EventScript_ArchieMaxieTrigger2:: @ 8232204 +MtPyre_Summit_EventScript_ArchieMaxieTrigger2:: lockall setvar VAR_0x8008, 2 goto MtPyre_Summit_EventScript_ArchieMaxieReturnOrbs end -MtPyre_Summit_EventScript_ArchieMaxieReturnOrbs:: @ 8232210 +MtPyre_Summit_EventScript_ArchieMaxieReturnOrbs:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 delay 60 @@ -255,49 +255,49 @@ MtPyre_Summit_EventScript_ArchieMaxieReturnOrbs:: @ 8232210 releaseall end -MtPyre_Summit_EventScript_ArchieMaxieBeginExit0:: @ 82322C4 +MtPyre_Summit_EventScript_ArchieMaxieBeginExit0:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit0 applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieExit applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieExit waitmovement 0 return -MtPyre_Summit_EventScript_ArchieMaxieBeginExit1:: @ 82322DD +MtPyre_Summit_EventScript_ArchieMaxieBeginExit1:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit1 applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieExit applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieExit waitmovement 0 return -MtPyre_Summit_EventScript_ArchieMaxieBeginExit2:: @ 82322F6 +MtPyre_Summit_EventScript_ArchieMaxieBeginExit2:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit2 applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieExit applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieExit waitmovement 0 return -MtPyre_Summit_EventScript_MaxieApproachPlayer0:: @ 823230F +MtPyre_Summit_EventScript_MaxieApproachPlayer0:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerFaceMaxie0 applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieWatchMaxie applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieApproachPlayer0 waitmovement 0 return -MtPyre_Summit_EventScript_MaxieApproachPlayer1:: @ 8232328 +MtPyre_Summit_EventScript_MaxieApproachPlayer1:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerFaceMaxie applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieWatchMaxie applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieApproachPlayer1 waitmovement 0 return -MtPyre_Summit_EventScript_MaxieApproachPlayer2:: @ 8232341 +MtPyre_Summit_EventScript_MaxieApproachPlayer2:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerFaceMaxie applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieWatchMaxie applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieApproachPlayer2 waitmovement 0 return -MtPyre_Summit_EventScript_MaxieApproachArchie0:: @ 823235A +MtPyre_Summit_EventScript_MaxieApproachArchie0:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerWatchMaxie applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieApproachArchie0 waitmovement 0 @@ -305,7 +305,7 @@ MtPyre_Summit_EventScript_MaxieApproachArchie0:: @ 823235A waitmovement 0 return -MtPyre_Summit_EventScript_MaxieApproachArchie1:: @ 8232376 +MtPyre_Summit_EventScript_MaxieApproachArchie1:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerWatchMaxie applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieApproachArchie1 waitmovement 0 @@ -313,7 +313,7 @@ MtPyre_Summit_EventScript_MaxieApproachArchie1:: @ 8232376 waitmovement 0 return -MtPyre_Summit_EventScript_MaxieApproachArchie2:: @ 8232392 +MtPyre_Summit_EventScript_MaxieApproachArchie2:: applymovement OBJ_EVENT_ID_PLAYER, MtPyre_Summit_Movement_PlayerWatchMaxie applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieApproachArchie2 waitmovement 0 @@ -321,19 +321,19 @@ MtPyre_Summit_EventScript_MaxieApproachArchie2:: @ 8232392 waitmovement 0 return -MtPyre_Summit_Movement_PlayerFaceMaxie0: @ 82323AE +MtPyre_Summit_Movement_PlayerFaceMaxie0: delay_16 delay_16 walk_in_place_fastest_right step_end -MtPyre_Summit_Movement_PlayerFaceMaxie: @ 82323B2 +MtPyre_Summit_Movement_PlayerFaceMaxie: delay_16 delay_16 walk_in_place_fastest_left step_end -MtPyre_Summit_Movement_ArchieExit: @ 82323B6 +MtPyre_Summit_Movement_ArchieExit: walk_down walk_down walk_down @@ -342,7 +342,7 @@ MtPyre_Summit_Movement_ArchieExit: @ 82323B6 walk_down step_end -MtPyre_Summit_Movement_MaxieExit: @ 82323BD +MtPyre_Summit_Movement_MaxieExit: walk_down walk_down walk_down @@ -351,7 +351,7 @@ MtPyre_Summit_Movement_MaxieExit: @ 82323BD walk_down step_end -MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit0: @ 82323C4 +MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit0: delay_16 delay_8 walk_left @@ -360,7 +360,7 @@ MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit0: @ 82323C4 walk_in_place_fastest_down step_end -MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit1: @ 82323CB +MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit1: delay_16 delay_8 walk_right @@ -369,7 +369,7 @@ MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit1: @ 82323CB walk_in_place_fastest_down step_end -MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit2: @ 82323D2 +MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit2: delay_16 delay_8 walk_in_place_fastest_left @@ -377,38 +377,38 @@ MtPyre_Summit_Movement_PlayerWatchArchieMaxieExit2: @ 82323D2 walk_in_place_fastest_down step_end -MtPyre_Summit_Movement_MaxieApproachPlayer0: @ 82323D8 +MtPyre_Summit_Movement_MaxieApproachPlayer0: walk_up walk_up walk_up walk_left step_end -MtPyre_Summit_Movement_MaxieApproachPlayer1: @ 82323DD +MtPyre_Summit_Movement_MaxieApproachPlayer1: walk_up walk_up walk_up walk_in_place_fastest_right step_end -MtPyre_Summit_Movement_MaxieApproachPlayer2: @ 82323E2 +MtPyre_Summit_Movement_MaxieApproachPlayer2: walk_up walk_up walk_up walk_in_place_fastest_right step_end -MtPyre_Summit_Movement_ArchieWatchMaxie: @ 82323E7 +MtPyre_Summit_Movement_ArchieWatchMaxie: delay_16 walk_in_place_fastest_up step_end -MtPyre_Summit_Movement_PlayerWatchMaxie: @ 82323EA +MtPyre_Summit_Movement_PlayerWatchMaxie: delay_16 walk_in_place_fastest_down step_end -MtPyre_Summit_Movement_MaxieApproachArchie0: @ 82323ED +MtPyre_Summit_Movement_MaxieApproachArchie0: walk_down walk_right walk_down @@ -416,54 +416,54 @@ MtPyre_Summit_Movement_MaxieApproachArchie0: @ 82323ED walk_in_place_fastest_left step_end -MtPyre_Summit_Movement_MaxieApproachArchie1: @ 82323F3 +MtPyre_Summit_Movement_MaxieApproachArchie1: walk_down walk_down walk_down walk_in_place_fastest_left step_end -MtPyre_Summit_Movement_MaxieApproachArchie2: @ 82323F8 +MtPyre_Summit_Movement_MaxieApproachArchie2: walk_down walk_down walk_down walk_in_place_fastest_left step_end -MtPyre_Summit_EventScript_Grunt1:: @ 82323FD +MtPyre_Summit_EventScript_Grunt1:: trainerbattle_single TRAINER_GRUNT_MT_PYRE_1, MtPyre_Summit_Text_Grunt1Intro, MtPyre_Summit_Text_Grunt1Defeat msgbox MtPyre_Summit_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE end -MtPyre_Summit_EventScript_Grunt2:: @ 8232414 +MtPyre_Summit_EventScript_Grunt2:: trainerbattle_single TRAINER_GRUNT_MT_PYRE_2, MtPyre_Summit_Text_Grunt2Intro, MtPyre_Summit_Text_Grunt2Defeat msgbox MtPyre_Summit_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE end -MtPyre_Summit_EventScript_Grunt3:: @ 823242B +MtPyre_Summit_EventScript_Grunt3:: trainerbattle_single TRAINER_GRUNT_MT_PYRE_3, MtPyre_Summit_Text_Grunt3Intro, MtPyre_Summit_Text_Grunt3Defeat msgbox MtPyre_Summit_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE end -MtPyre_Summit_EventScript_Grunt4:: @ 8232442 +MtPyre_Summit_EventScript_Grunt4:: trainerbattle_single TRAINER_GRUNT_MT_PYRE_4, MtPyre_Summit_Text_Grunt4Intro, MtPyre_Summit_Text_Grunt4Defeat msgbox MtPyre_Summit_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE end -MtPyre_Summit_Text_Grunt1Intro: @ 8232459 +MtPyre_Summit_Text_Grunt1Intro: .string "No! Those TEAM MAGMA goons got\n" .string "here ahead of us!\p" .string "We can't fall behind!$" -MtPyre_Summit_Text_Grunt1Defeat: @ 82324A0 +MtPyre_Summit_Text_Grunt1Defeat: .string "I thought you were one of the MAGMAS\n" .string "who happened to come back…$" -MtPyre_Summit_Text_Grunt1PostBattle: @ 82324E0 +MtPyre_Summit_Text_Grunt1PostBattle: .string "Yeah, so you are strong…\n" .string "But there're a lot of us!$" -MtPyre_Summit_Text_Grunt2Intro: @ 8232513 +MtPyre_Summit_Text_Grunt2Intro: .string "Hah!\n" .string "Too bad for you!\p" .string "If you came earlier, you only would've\n" @@ -471,46 +471,46 @@ MtPyre_Summit_Text_Grunt2Intro: @ 8232513 .string "But since you arrived now, you have\n" .string "to take on us toughies!$" -MtPyre_Summit_Text_Grunt2Defeat: @ 82325B0 +MtPyre_Summit_Text_Grunt2Defeat: .string "Urgh… I should've let you take on\n" .string "TEAM MAGMA first…$" -MtPyre_Summit_Text_Grunt2PostBattle: @ 82325E4 +MtPyre_Summit_Text_Grunt2PostBattle: .string "You don't know anything!\n" .string "So why are you messing with us?$" -MtPyre_Summit_Text_Grunt3Intro: @ 823261D +MtPyre_Summit_Text_Grunt3Intro: .string "You…\n" .string "We saw you at MT. CHIMNEY.\p" .string "You don't belong to either TEAM,\n" .string "so why would you be here?$" -MtPyre_Summit_Text_Grunt3Defeat: @ 8232678 +MtPyre_Summit_Text_Grunt3Defeat: .string "If you're going to mess with anyone,\n" .string "let it be TEAM MAGMA…$" -MtPyre_Summit_Text_Grunt3PostBattle: @ 82326B3 +MtPyre_Summit_Text_Grunt3PostBattle: .string "Heh, it doesn't matter!\n" .string "We bought ourselves some time!\p" .string "The BOSS should have snatched what\n" .string "he was after!$" -MtPyre_Summit_Text_Grunt4Intro: @ 823271B +MtPyre_Summit_Text_Grunt4Intro: .string "Oh, I know!\n" .string "You tried to join TEAM MAGMA,\l" .string "but they wouldn't have you!\p" .string "Well, don't think that we'll let you\n" .string "join our TEAM AQUA!$" -MtPyre_Summit_Text_Grunt4Defeat: @ 823279A +MtPyre_Summit_Text_Grunt4Defeat: .string "If you want to join TEAM AQUA that\n" .string "badly, we can consider it…$" -MtPyre_Summit_Text_Grunt4PostBattle: @ 82327D8 +MtPyre_Summit_Text_Grunt4PostBattle: .string "We have a great combination going\n" .string "with us members and our leader.$" -MtPyre_Summit_Text_ArchieWeGotTheOrbLetsGo: @ 823281A +MtPyre_Summit_Text_ArchieWeGotTheOrbLetsGo: .string "ARCHIE: TEAM MAGMA's MAXIE got ahead\n" .string "of us, but we also got what we wanted.\p" .string "The RED ORB preserved at MT. PYRE…\n" @@ -520,7 +520,7 @@ MtPyre_Summit_Text_ArchieWeGotTheOrbLetsGo: @ 823281A .string "Okay, TEAM!\n" .string "We're pulling out!$" -MtPyre_Summit_Text_BothOrbsTakenMagmaLeftThis: @ 823290E +MtPyre_Summit_Text_BothOrbsTakenMagmaLeftThis: .string "Oh, no…\n" .string "This cannot happen…\p" .string "Not only the BLUE ORB, but even\n" @@ -540,13 +540,13 @@ MtPyre_Summit_Text_BothOrbsTakenMagmaLeftThis: @ 823290E .string "I would like you to have it.\n" .string "Perhaps it will be useful in some way.$" -MtPyre_Summit_Text_OrbsHaveBeenTaken: @ 8232AD8 +MtPyre_Summit_Text_OrbsHaveBeenTaken: .string "The BLUE ORB and RED ORB taken by\n" .string "those sinister men…\p" .string "They must never be apart…\n" .string "I fear something terrible will happen…$" -MtPyre_Summit_Text_GroudonKyogreAwakened: @ 8232B4F +MtPyre_Summit_Text_GroudonKyogreAwakened: .string "Oh, my goodness…\p" .string "You say that both GROUDON and KYOGRE\n" .string "have been awakened?\p" @@ -560,13 +560,13 @@ MtPyre_Summit_Text_GroudonKyogreAwakened: @ 8232B4F .string "It could be a human, or perhaps\n" .string "a POKéMON, but no one knows.$" -MtPyre_Summit_Text_ThoseTwoMenReturnedOrbs: @ 8232CA6 +MtPyre_Summit_Text_ThoseTwoMenReturnedOrbs: .string "The two men who took the ORBS came\n" .string "back to return them on their own.\p" .string "Those men…\n" .string "Perhaps they are not so evil after all…$" -MtPyre_Summit_Text_SuperAncientPokemonTaughtUs: @ 8232D1E +MtPyre_Summit_Text_SuperAncientPokemonTaughtUs: .string "The embodiments of the land, sea,\n" .string "and the sky…\p" .string "That is said to be the identities of\n" @@ -577,7 +577,7 @@ MtPyre_Summit_Text_SuperAncientPokemonTaughtUs: @ 8232D1E .string "The super-ancient POKéMON have\n" .string "taught us that…$" -MtPyre_Summit_Text_WillYouHearOutMyTale: @ 8232E0C +MtPyre_Summit_Text_WillYouHearOutMyTale: .string "MT. PYRE is where we calm the spirits\n" .string "of POKéMON that have passed on…\p" .string "This is a high place where one can\n" @@ -588,7 +588,7 @@ MtPyre_Summit_Text_WillYouHearOutMyTale: @ 8232E0C .string "Will you hear out my tale? A tale long\n" .string "told in the HOENN region?$" -MtPyre_Summit_Text_GroudonKyogreTale: @ 8232F27 +MtPyre_Summit_Text_GroudonKyogreTale: .string "It happened long, long ago…\p" .string "The world was wracked by a ferocious\n" .string "clash between the POKéMON of the land\l" @@ -608,16 +608,16 @@ MtPyre_Summit_Text_GroudonKyogreTale: @ 8232F27 .string "the sea where eventually they\l" .string "disappeared…$" -MtPyre_Summit_Text_WellThatTooIsFine: @ 8233162 +MtPyre_Summit_Text_WellThatTooIsFine: .string "I see…\n" .string "Well, that, too, is fine…$" -MtPyre_Summit_Text_MaxieSilence: @ 8233183 +MtPyre_Summit_Text_MaxieSilence: .string "MAXIE: {PLAYER}…\p" .string "… … … … … …\n" .string "… … … … … …$" -MtPyre_Summit_Text_HearTheNewLegendOfHoenn: @ 82331A6 +MtPyre_Summit_Text_HearTheNewLegendOfHoenn: .string "It is my role to pass on the legends\n" .string "of HOENN to future generations.\p" .string "And the crisis that just ended in\n" @@ -625,7 +625,7 @@ MtPyre_Summit_Text_HearTheNewLegendOfHoenn: @ 82331A6 .string "Have you the time to hear the new\n" .string "legend of HOENN?$" -MtPyre_Summit_Text_HoennTrioTale: @ 823325D +MtPyre_Summit_Text_HoennTrioTale: .string "It happened long, long ago…\p" .string "The world was wracked by a ferocious\n" .string "clash between the POKéMON of the land\l" diff --git a/data/maps/NavelRock_B1F/scripts.inc b/data/maps/NavelRock_B1F/scripts.inc index a8906f24da..17e9c442e8 100644 --- a/data/maps/NavelRock_B1F/scripts.inc +++ b/data/maps/NavelRock_B1F/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_B1F_MapScripts:: @ 826910D +NavelRock_B1F_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc index 9c438fc5cf..da9e06cff3 100644 --- a/data/maps/NavelRock_Bottom/scripts.inc +++ b/data/maps/NavelRock_Bottom/scripts.inc @@ -1,36 +1,36 @@ .set LOCALID_LUGIA, 1 -NavelRock_Bottom_MapScripts:: @ 8269255 +NavelRock_Bottom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, NavelRock_Bottom_OnTransition map_script MAP_SCRIPT_ON_RESUME, NavelRock_Bottom_OnResume .byte 0 -NavelRock_Bottom_OnTransition: @ 8269260 +NavelRock_Bottom_OnTransition: call_if_set FLAG_CAUGHT_LUGIA, NavelRock_Bottom_EventScript_HideLugia call_if_unset FLAG_CAUGHT_LUGIA, NavelRock_Bottom_EventScript_TryShowLugia end -NavelRock_Bottom_EventScript_HideLugia:: @ 8269273 +NavelRock_Bottom_EventScript_HideLugia:: setflag FLAG_HIDE_LUGIA return -NavelRock_Bottom_EventScript_TryShowLugia:: @ 8269277 +NavelRock_Bottom_EventScript_TryShowLugia:: goto_if_set FLAG_DEFEATED_LUGIA, Common_EventScript_NopReturn clearflag FLAG_HIDE_LUGIA return -NavelRock_Bottom_OnResume: @ 8269284 +NavelRock_Bottom_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, NavelRock_Bottom_EventScript_TryRemoveLugia end -NavelRock_Bottom_EventScript_TryRemoveLugia:: @ 826928E +NavelRock_Bottom_EventScript_TryRemoveLugia:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject LOCALID_LUGIA return -NavelRock_Bottom_EventScript_Lugia:: @ 82692A2 +NavelRock_Bottom_EventScript_Lugia:: lock faceplayer waitse @@ -57,7 +57,7 @@ NavelRock_Bottom_EventScript_Lugia:: @ 82692A2 setvar VAR_0x8004, SPECIES_LUGIA setvar VAR_0x8005, 70 @ level setvar VAR_0x8006, ITEM_NONE - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate @@ -73,13 +73,13 @@ NavelRock_Bottom_EventScript_Lugia:: @ 82692A2 release end -NavelRock_Bottom_EventScript_DefeatedLugia:: @ 8269336 +NavelRock_Bottom_EventScript_DefeatedLugia:: setflag FLAG_DEFEATED_LUGIA setvar VAR_0x8004, SPECIES_LUGIA goto Common_EventScript_LegendaryFlewAway end -NavelRock_Bottom_EventScript_RanFromLugia:: @ 8269344 +NavelRock_Bottom_EventScript_RanFromLugia:: setvar VAR_0x8004, SPECIES_LUGIA goto Common_EventScript_LegendaryFlewAway end diff --git a/data/maps/NavelRock_Down01/scripts.inc b/data/maps/NavelRock_Down01/scripts.inc index 9677167eb9..b3dd63931f 100644 --- a/data/maps/NavelRock_Down01/scripts.inc +++ b/data/maps/NavelRock_Down01/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down01_MapScripts:: @ 826924A +NavelRock_Down01_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down02/scripts.inc b/data/maps/NavelRock_Down02/scripts.inc index 946530a4a1..2cca3e3ebe 100644 --- a/data/maps/NavelRock_Down02/scripts.inc +++ b/data/maps/NavelRock_Down02/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down02_MapScripts:: @ 826924B +NavelRock_Down02_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down03/scripts.inc b/data/maps/NavelRock_Down03/scripts.inc index 2a2a702c18..0d0feaf4f5 100644 --- a/data/maps/NavelRock_Down03/scripts.inc +++ b/data/maps/NavelRock_Down03/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down03_MapScripts:: @ 826924C +NavelRock_Down03_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down04/scripts.inc b/data/maps/NavelRock_Down04/scripts.inc index acf5aa4564..6ac0cfd01a 100644 --- a/data/maps/NavelRock_Down04/scripts.inc +++ b/data/maps/NavelRock_Down04/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down04_MapScripts:: @ 826924D +NavelRock_Down04_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down05/scripts.inc b/data/maps/NavelRock_Down05/scripts.inc index 22a0c2059d..0fcc279b8f 100644 --- a/data/maps/NavelRock_Down05/scripts.inc +++ b/data/maps/NavelRock_Down05/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down05_MapScripts:: @ 826924E +NavelRock_Down05_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down06/scripts.inc b/data/maps/NavelRock_Down06/scripts.inc index 9acfe1e6a3..7669b77140 100644 --- a/data/maps/NavelRock_Down06/scripts.inc +++ b/data/maps/NavelRock_Down06/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down06_MapScripts:: @ 826924F +NavelRock_Down06_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down07/scripts.inc b/data/maps/NavelRock_Down07/scripts.inc index 6c08fcc85a..0a4dc3f35c 100644 --- a/data/maps/NavelRock_Down07/scripts.inc +++ b/data/maps/NavelRock_Down07/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down07_MapScripts:: @ 8269250 +NavelRock_Down07_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down08/scripts.inc b/data/maps/NavelRock_Down08/scripts.inc index 5a40a72a5d..329c73d919 100644 --- a/data/maps/NavelRock_Down08/scripts.inc +++ b/data/maps/NavelRock_Down08/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down08_MapScripts:: @ 8269251 +NavelRock_Down08_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down09/scripts.inc b/data/maps/NavelRock_Down09/scripts.inc index 80bbbc0e58..172d6c9756 100644 --- a/data/maps/NavelRock_Down09/scripts.inc +++ b/data/maps/NavelRock_Down09/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down09_MapScripts:: @ 8269252 +NavelRock_Down09_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down10/scripts.inc b/data/maps/NavelRock_Down10/scripts.inc index 2b27edeb58..849ad2cfde 100644 --- a/data/maps/NavelRock_Down10/scripts.inc +++ b/data/maps/NavelRock_Down10/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down10_MapScripts:: @ 8269253 +NavelRock_Down10_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Down11/scripts.inc b/data/maps/NavelRock_Down11/scripts.inc index 91c6fa36a4..a45962fc13 100644 --- a/data/maps/NavelRock_Down11/scripts.inc +++ b/data/maps/NavelRock_Down11/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Down11_MapScripts:: @ 8269254 +NavelRock_Down11_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Entrance/scripts.inc b/data/maps/NavelRock_Entrance/scripts.inc index 9c25f50546..419ec493c9 100644 --- a/data/maps/NavelRock_Entrance/scripts.inc +++ b/data/maps/NavelRock_Entrance/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Entrance_MapScripts:: @ 826910C +NavelRock_Entrance_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Exterior/scripts.inc b/data/maps/NavelRock_Exterior/scripts.inc index 827408068c..37b69616c5 100644 --- a/data/maps/NavelRock_Exterior/scripts.inc +++ b/data/maps/NavelRock_Exterior/scripts.inc @@ -1,8 +1,8 @@ -NavelRock_Exterior_MapScripts:: @ 82690B2 +NavelRock_Exterior_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, NavelRock_Exterior_OnTransition .byte 0 -NavelRock_Exterior_OnTransition: @ 82690B8 +NavelRock_Exterior_OnTransition: setflag FLAG_ARRIVED_AT_NAVEL_ROCK end diff --git a/data/maps/NavelRock_Fork/scripts.inc b/data/maps/NavelRock_Fork/scripts.inc index 4269feeacf..d83cba8494 100644 --- a/data/maps/NavelRock_Fork/scripts.inc +++ b/data/maps/NavelRock_Fork/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Fork_MapScripts:: @ 826910E +NavelRock_Fork_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Harbor/scripts.inc b/data/maps/NavelRock_Harbor/scripts.inc index 7c0cbed6a6..586085cbfb 100644 --- a/data/maps/NavelRock_Harbor/scripts.inc +++ b/data/maps/NavelRock_Harbor/scripts.inc @@ -1,10 +1,10 @@ .set LOCALID_SAILOR, 1 .set LOCALID_SS_TIDAL, 2 -NavelRock_Harbor_MapScripts:: @ 82690BC +NavelRock_Harbor_MapScripts:: .byte 0 -NavelRock_Harbor_EventScript_Sailor:: @ 82690BD +NavelRock_Harbor_EventScript_Sailor:: lock faceplayer msgbox NavelRock_Harbor_Text_SailorReturn, MSGBOX_YESNO @@ -23,7 +23,7 @@ NavelRock_Harbor_EventScript_Sailor:: @ 82690BD release end -NavelRock_Harbor_EventScript_AsYouLike:: @ 8269102 +NavelRock_Harbor_EventScript_AsYouLike:: msgbox EventTicket_Text_AsYouLike, MSGBOX_DEFAULT release end diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc index c95596ff68..4355699ee5 100644 --- a/data/maps/NavelRock_Top/scripts.inc +++ b/data/maps/NavelRock_Top/scripts.inc @@ -1,39 +1,39 @@ .set LOCALID_HO_OH, 1 -NavelRock_Top_MapScripts:: @ 8269113 +NavelRock_Top_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, NavelRock_Top_OnTransition map_script MAP_SCRIPT_ON_RESUME, NavelRock_Top_OnResume .byte 0 -NavelRock_Top_OnTransition: @ 826911E +NavelRock_Top_OnTransition: call_if_set FLAG_CAUGHT_HO_OH, NavelRock_Top_EventScript_HideHoOh call_if_unset FLAG_CAUGHT_HO_OH, NavelRock_Top_EventScript_TryShowHoOh end -NavelRock_Top_EventScript_HideHoOh:: @ 8269131 +NavelRock_Top_EventScript_HideHoOh:: setvar VAR_TEMP_1, 1 setflag FLAG_HIDE_HO_OH return -NavelRock_Top_EventScript_TryShowHoOh:: @ 826913A +NavelRock_Top_EventScript_TryShowHoOh:: setvar VAR_TEMP_1, 1 goto_if_set FLAG_DEFEATED_HO_OH, Common_EventScript_NopReturn setvar VAR_TEMP_1, 0 clearflag FLAG_HIDE_HO_OH return -NavelRock_Top_OnResume: @ 8269151 +NavelRock_Top_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, NavelRock_Top_EventScript_TryRemoveHoOh end -NavelRock_Top_EventScript_TryRemoveHoOh:: @ 826915B +NavelRock_Top_EventScript_TryRemoveHoOh:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject LOCALID_HO_OH return -NavelRock_Top_EventScript_HoOh:: @ 826916F +NavelRock_Top_EventScript_HoOh:: lockall setvar VAR_TEMP_1, 1 special SpawnCameraObject @@ -61,7 +61,7 @@ NavelRock_Top_EventScript_HoOh:: @ 826916F setvar VAR_0x8004, SPECIES_HO_OH setvar VAR_0x8005, 70 @ level setvar VAR_0x8006, ITEM_NONE - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate @@ -78,24 +78,24 @@ NavelRock_Top_EventScript_HoOh:: @ 826916F releaseall end -NavelRock_Top_EventScript_DefeatedHoOh:: @ 8269217 +NavelRock_Top_EventScript_DefeatedHoOh:: setflag FLAG_DEFEATED_HO_OH setvar VAR_0x8004, SPECIES_HO_OH goto Common_EventScript_LegendaryFlewAway end -NavelRock_Top_EventScript_RanFromHoOh:: @ 8269225 +NavelRock_Top_EventScript_RanFromHoOh:: setvar VAR_0x8004, SPECIES_HO_OH goto Common_EventScript_LegendaryFlewAway end -NavelRock_Top_Movement_CameraPanUp: @ 8269230 +NavelRock_Top_Movement_CameraPanUp: walk_up walk_up walk_up step_end -NavelRock_Top_Movement_CameraPanDown: @ 8269234 +NavelRock_Top_Movement_CameraPanDown: delay_16 delay_16 walk_down @@ -103,7 +103,7 @@ NavelRock_Top_Movement_CameraPanDown: @ 8269234 walk_down step_end -NavelRock_Top_Movement_HoOhApproach: @ 826923A +NavelRock_Top_Movement_HoOhApproach: walk_down walk_down walk_down @@ -114,7 +114,7 @@ NavelRock_Top_Movement_HoOhApproach: @ 826923A delay_16 step_end -NavelRock_Top_Movement_HoOhAppear: @ 8269243 +NavelRock_Top_Movement_HoOhAppear: delay_16 delay_16 walk_in_place_down diff --git a/data/maps/NavelRock_Up1/scripts.inc b/data/maps/NavelRock_Up1/scripts.inc index c85af5f0c9..5c73a3eb86 100644 --- a/data/maps/NavelRock_Up1/scripts.inc +++ b/data/maps/NavelRock_Up1/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Up1_MapScripts:: @ 826910F +NavelRock_Up1_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Up2/scripts.inc b/data/maps/NavelRock_Up2/scripts.inc index 27ae521909..69147ed1a5 100644 --- a/data/maps/NavelRock_Up2/scripts.inc +++ b/data/maps/NavelRock_Up2/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Up2_MapScripts:: @ 8269110 +NavelRock_Up2_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Up3/scripts.inc b/data/maps/NavelRock_Up3/scripts.inc index a9c3e2a3ce..c2cd971de4 100644 --- a/data/maps/NavelRock_Up3/scripts.inc +++ b/data/maps/NavelRock_Up3/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Up3_MapScripts:: @ 8269111 +NavelRock_Up3_MapScripts:: .byte 0 diff --git a/data/maps/NavelRock_Up4/scripts.inc b/data/maps/NavelRock_Up4/scripts.inc index c6beead6da..a3c1fa72df 100644 --- a/data/maps/NavelRock_Up4/scripts.inc +++ b/data/maps/NavelRock_Up4/scripts.inc @@ -1,3 +1,3 @@ -NavelRock_Up4_MapScripts:: @ 8269112 +NavelRock_Up4_MapScripts:: .byte 0 diff --git a/data/maps/NewMauville_Entrance/scripts.inc b/data/maps/NewMauville_Entrance/scripts.inc index d398a03ead..7bc134d502 100644 --- a/data/maps/NewMauville_Entrance/scripts.inc +++ b/data/maps/NewMauville_Entrance/scripts.inc @@ -1,14 +1,14 @@ -NewMauville_Entrance_MapScripts:: @ 82372AD +NewMauville_Entrance_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, NewMauville_Entrance_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, NewMauville_Entrance_OnTransition .byte 0 -NewMauville_Entrance_OnLoad: @ 82372B8 +NewMauville_Entrance_OnLoad: compare VAR_NEW_MAUVILLE_STATE, 0 call_if_eq NewMauville_Entrance_EventScript_CloseDoor end -NewMauville_Entrance_EventScript_CloseDoor:: @ 82372C4 +NewMauville_Entrance_EventScript_CloseDoor:: setmetatile 3, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile0, 1 setmetatile 4, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile1, 1 setmetatile 5, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile2, 1 @@ -17,11 +17,11 @@ NewMauville_Entrance_EventScript_CloseDoor:: @ 82372C4 setmetatile 5, 1, METATILE_Facility_NewMauvilleDoor_Closed_Tile5, 1 return -NewMauville_Entrance_OnTransition: @ 82372FB +NewMauville_Entrance_OnTransition: setflag FLAG_LANDMARK_NEW_MAUVILLE end -NewMauville_Entrance_EventScript_Door:: @ 82372FF +NewMauville_Entrance_EventScript_Door:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 @@ -45,17 +45,17 @@ NewMauville_Entrance_EventScript_Door:: @ 82372FF releaseall end -NewMauville_Entrance_EventScript_DontOpenDoor:: @ 8237380 +NewMauville_Entrance_EventScript_DontOpenDoor:: releaseall end -NewMauville_Entrance_Text_DoorIsLocked: @ 8237382 +NewMauville_Entrance_Text_DoorIsLocked: .string "The door is locked.$" -NewMauville_Entrance_Text_UseBasementKey: @ 8237396 +NewMauville_Entrance_Text_UseBasementKey: .string "Use the BASEMENT KEY?$" -NewMauville_Entrance_Text_UsedBasementKey: @ 82373AC +NewMauville_Entrance_Text_UsedBasementKey: .string "{PLAYER} used the BASEMENT KEY.\p" .string "The door opened!$" diff --git a/data/maps/NewMauville_Inside/scripts.inc b/data/maps/NewMauville_Inside/scripts.inc index 7675799eb9..ac9572ea85 100644 --- a/data/maps/NewMauville_Inside/scripts.inc +++ b/data/maps/NewMauville_Inside/scripts.inc @@ -1,10 +1,10 @@ -NewMauville_Inside_MapScripts:: @ 82373D7 +NewMauville_Inside_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, NewMauville_Inside_OnResume map_script MAP_SCRIPT_ON_TRANSITION, NewMauville_Inside_OnTransition map_script MAP_SCRIPT_ON_LOAD, NewMauville_Inside_OnLoad .byte 0 -NewMauville_Inside_OnResume: @ 82373E7 +NewMauville_Inside_OnResume: compare VAR_TEMP_1, 1 call_if_eq NewMauville_Inside_EventScript_SetBarrierStateBlueButton compare VAR_TEMP_2, 1 @@ -12,14 +12,14 @@ NewMauville_Inside_OnResume: @ 82373E7 call_if_set FLAG_SYS_CTRL_OBJ_DELETE, NewMauville_Inside_EventScript_TryRemoveVoltorb end -NewMauville_Inside_EventScript_TryRemoveVoltorb:: @ 8237407 +NewMauville_Inside_EventScript_TryRemoveVoltorb:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -NewMauville_Inside_OnTransition: @ 823741B +NewMauville_Inside_OnTransition: setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 0 call_if_unset FLAG_DEFEATED_VOLTORB_1_NEW_MAUVILLE, NewMauville_Inside_EventScript_ShowVoltorb1 @@ -27,24 +27,24 @@ NewMauville_Inside_OnTransition: @ 823741B call_if_unset FLAG_DEFEATED_VOLTORB_3_NEW_MAUVILLE, NewMauville_Inside_EventScript_ShowVoltorb3 end -NewMauville_Inside_EventScript_ShowVoltorb1:: @ 8237441 +NewMauville_Inside_EventScript_ShowVoltorb1:: clearflag FLAG_HIDE_NEW_MAUVILLE_VOLTORB_1 return -NewMauville_Inside_EventScript_ShowVoltorb2:: @ 8237445 +NewMauville_Inside_EventScript_ShowVoltorb2:: clearflag FLAG_HIDE_NEW_MAUVILLE_VOLTORB_2 return -NewMauville_Inside_EventScript_ShowVoltorb3:: @ 8237449 +NewMauville_Inside_EventScript_ShowVoltorb3:: clearflag FLAG_HIDE_NEW_MAUVILLE_VOLTORB_3 return -NewMauville_Inside_OnLoad: @ 823744D +NewMauville_Inside_OnLoad: compare VAR_NEW_MAUVILLE_STATE, 2 call_if_eq NewMauville_Inside_EventScript_SetGeneratorOffMetatiles end -NewMauville_Inside_EventScript_BlueButton:: @ 8237459 +NewMauville_Inside_EventScript_BlueButton:: lockall setvar VAR_TEMP_1, 1 setvar VAR_TEMP_2, 0 @@ -54,7 +54,7 @@ NewMauville_Inside_EventScript_BlueButton:: @ 8237459 releaseall end -NewMauville_Inside_EventScript_GreenButton:: @ 8237471 +NewMauville_Inside_EventScript_GreenButton:: lockall setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 1 @@ -64,7 +64,7 @@ NewMauville_Inside_EventScript_GreenButton:: @ 8237471 releaseall end -NewMauville_Inside_EventScript_SetBarrierStateBlueButton:: @ 8237489 +NewMauville_Inside_EventScript_SetBarrierStateBlueButton:: setmetatile 23, 34, METATILE_BikeShop_Barrier_Hidden_Top, 1 setmetatile 23, 35, METATILE_BikeShop_Barrier_Hidden_Bottom, 1 setmetatile 23, 36, METATILE_BikeShop_Floor_Shadow_Top, 0 @@ -104,7 +104,7 @@ NewMauville_Inside_EventScript_SetBarrierStateBlueButton:: @ 8237489 setmetatile 18, 36, METATILE_BikeShop_Button_Green, 0 return -NewMauville_Inside_EventScript_SetBarrierStateGreenButton:: @ 82375D7 +NewMauville_Inside_EventScript_SetBarrierStateGreenButton:: setmetatile 23, 34, METATILE_BikeShop_Barrier_Blue_Top, 1 setmetatile 23, 35, METATILE_BikeShop_Barrier_Blue_TopMid, 1 setmetatile 23, 36, METATILE_BikeShop_Barrier_Blue_BottomMid, 1 @@ -144,7 +144,7 @@ NewMauville_Inside_EventScript_SetBarrierStateGreenButton:: @ 82375D7 setmetatile 30, 38, METATILE_BikeShop_Button_Blue, 0 return -NewMauville_Inside_EventScript_RedButton:: @ 8237725 +NewMauville_Inside_EventScript_RedButton:: lockall msgbox NewMauville_Inside_Text_SteppedOnSwitchGeneratorStopped, MSGBOX_DEFAULT call NewMauville_Inside_EventScript_SetGeneratorOffMetatiles @@ -152,7 +152,7 @@ NewMauville_Inside_EventScript_RedButton:: @ 8237725 releaseall end -NewMauville_Inside_EventScript_SetGeneratorOffMetatiles:: @ 823773A +NewMauville_Inside_EventScript_SetGeneratorOffMetatiles:: setmetatile 33, 6, METATILE_BikeShop_Button_Pressed, 0 setmetatile 32, 2, METATILE_BikeShop_Generator_Off_Tile0, 1 setmetatile 33, 2, METATILE_BikeShop_Generator_Off_Tile1, 1 @@ -165,7 +165,7 @@ NewMauville_Inside_EventScript_SetGeneratorOffMetatiles:: @ 823773A special DrawWholeMapView return -NewMauville_Inside_EventScript_Generator:: @ 823778F +NewMauville_Inside_EventScript_Generator:: lockall compare VAR_NEW_MAUVILLE_STATE, 2 goto_if_eq NewMauville_Inside_EventScript_GeneratorOff @@ -173,12 +173,12 @@ NewMauville_Inside_EventScript_Generator:: @ 823778F releaseall end -NewMauville_Inside_EventScript_GeneratorOff:: @ 82377A5 +NewMauville_Inside_EventScript_GeneratorOff:: msgbox NewMauville_Inside_Text_GeneratorQuietedDown, MSGBOX_DEFAULT releaseall end -NewMauville_Inside_EventScript_Voltorb1:: @ 82377AF +NewMauville_Inside_EventScript_Voltorb1:: lock faceplayer setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE @@ -200,12 +200,12 @@ NewMauville_Inside_EventScript_Voltorb1:: @ 82377AF release end -NewMauville_Inside_EventScript_DefeatedVoltorb1:: @ 82377F3 +NewMauville_Inside_EventScript_DefeatedVoltorb1:: setflag FLAG_DEFEATED_VOLTORB_1_NEW_MAUVILLE goto Common_EventScript_RemoveStaticPokemon end -NewMauville_Inside_EventScript_Voltorb2:: @ 82377FC +NewMauville_Inside_EventScript_Voltorb2:: lock faceplayer setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE @@ -227,12 +227,12 @@ NewMauville_Inside_EventScript_Voltorb2:: @ 82377FC release end -NewMauville_Inside_EventScript_DefeatedVoltorb2:: @ 8237840 +NewMauville_Inside_EventScript_DefeatedVoltorb2:: setflag FLAG_DEFEATED_VOLTORB_2_NEW_MAUVILLE goto Common_EventScript_RemoveStaticPokemon end -NewMauville_Inside_EventScript_Voltorb3:: @ 8237849 +NewMauville_Inside_EventScript_Voltorb3:: lock faceplayer setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE @@ -254,21 +254,21 @@ NewMauville_Inside_EventScript_Voltorb3:: @ 8237849 release end -NewMauville_Inside_EventScript_DefeatedVoltorb3:: @ 823788D +NewMauville_Inside_EventScript_DefeatedVoltorb3:: setflag FLAG_DEFEATED_VOLTORB_3_NEW_MAUVILLE goto Common_EventScript_RemoveStaticPokemon end -NewMauville_Inside_Text_GeneratorRadiatingHeat: @ 8237896 +NewMauville_Inside_Text_GeneratorRadiatingHeat: .string "The generator is radiating heat that\n" .string "can be felt even at a distance.\p" .string "It looks like it should be turned off\n" .string "as soon as possible.$" -NewMauville_Inside_Text_GeneratorQuietedDown: @ 8237916 +NewMauville_Inside_Text_GeneratorQuietedDown: .string "The generator quieted down.$" -NewMauville_Inside_Text_SteppedOnSwitchGeneratorStopped: @ 8237932 +NewMauville_Inside_Text_SteppedOnSwitchGeneratorStopped: .string "{PLAYER} stepped on the switch.\p" .string "Click…\p" .string "… … … … … … … …\n" diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc index f99c65d2c0..8ba0e4d25d 100644 --- a/data/maps/OldaleTown/scripts.inc +++ b/data/maps/OldaleTown/scripts.inc @@ -2,11 +2,11 @@ .set LOCALID_FOOTPRINTS_MAN, 3 .set LOCALID_RIVAL, 4 -OldaleTown_MapScripts:: @ 81E8EA2 +OldaleTown_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, OldaleTown_OnTransition .byte 0 -OldaleTown_OnTransition: @ 81E8EA8 +OldaleTown_OnTransition: call Common_EventScript_SetupRivalGfxId setflag FLAG_VISITED_OLDALE_TOWN call_if_unset FLAG_ADVENTURE_STARTED, OldaleTown_EventScript_BlockWestEntrance @@ -15,35 +15,35 @@ OldaleTown_OnTransition: @ 81E8EA8 end @ This script seems pointless because nothing uses VAR_OLDALE_TOWN_STATE -OldaleTown_EventScript_SetOldaleState:: @ 81E8ECC +OldaleTown_EventScript_SetOldaleState:: setvar VAR_OLDALE_TOWN_STATE, 1 return -OldaleTown_EventScript_BlockWestEntrance:: @ 81E8ED2 +OldaleTown_EventScript_BlockWestEntrance:: setobjectxyperm LOCALID_FOOTPRINTS_MAN, 1, 11 setobjectmovementtype LOCALID_FOOTPRINTS_MAN, MOVEMENT_TYPE_FACE_LEFT return -OldaleTown_EventScript_MoveMartEmployee:: @ 81E8EDE +OldaleTown_EventScript_MoveMartEmployee:: setobjectxyperm LOCALID_MART_EMPLOYEE, 13, 14 setobjectmovementtype LOCALID_MART_EMPLOYEE, MOVEMENT_TYPE_FACE_DOWN return -OldaleTown_EventScript_CitySign:: @ 81E8EEA +OldaleTown_EventScript_CitySign:: msgbox OldaleTown_Text_CitySign, MSGBOX_SIGN end -OldaleTown_EventScript_Girl:: @ 81E8EF3 +OldaleTown_EventScript_Girl:: msgbox OldaleTown_Text_SavingMyProgress, MSGBOX_NPC end -OldaleTown_EventScript_MartEmployee:: @ 81E8EFC +OldaleTown_EventScript_MartEmployee:: lock faceplayer goto_if_set FLAG_RECEIVED_POTION_OLDALE, OldaleTown_EventScript_ExplainPotion goto_if_set FLAG_TEMP_1, OldaleTown_EventScript_ExplainPotion setflag FLAG_TEMP_1 - playbgm MUS_FOLLOW_ME, 0 + playbgm MUS_FOLLOW_ME, FALSE msgbox OldaleTown_Text_IWorkAtPokemonMart, MSGBOX_DEFAULT closemessage switch VAR_FACING @@ -52,28 +52,28 @@ OldaleTown_EventScript_MartEmployee:: @ 81E8EFC case DIR_EAST, OldaleTown_EventScript_GoToMartEast end -OldaleTown_EventScript_GoToMartSouth:: @ 81E8F47 +OldaleTown_EventScript_GoToMartSouth:: applymovement LOCALID_MART_EMPLOYEE, OldaleTown_Movement_EmployeeSouth applymovement OBJ_EVENT_ID_PLAYER, OldaleTown_Movement_PlayerSouth waitmovement 0 goto OldaleTown_EventScript_ExplainPokemonMart end -OldaleTown_EventScript_GoToMartNorth:: @ 81E8F5E +OldaleTown_EventScript_GoToMartNorth:: applymovement LOCALID_MART_EMPLOYEE, OldaleTown_Movement_EmployeeNorth applymovement OBJ_EVENT_ID_PLAYER, OldaleTown_Movement_PlayerNorth waitmovement 0 goto OldaleTown_EventScript_ExplainPokemonMart end -OldaleTown_EventScript_GoToMartEast:: @ 81E8F75 +OldaleTown_EventScript_GoToMartEast:: applymovement OBJ_EVENT_ID_PLAYER, OldaleTown_Movement_PlayerEast applymovement LOCALID_MART_EMPLOYEE, OldaleTown_Movement_EmployeeEast waitmovement 0 goto OldaleTown_EventScript_ExplainPokemonMart end -OldaleTown_EventScript_ExplainPokemonMart:: @ 81E8F8C +OldaleTown_EventScript_ExplainPokemonMart:: msgbox OldaleTown_Text_ThisIsAPokemonMart, MSGBOX_DEFAULT giveitem ITEM_POTION compare VAR_RESULT, FALSE @@ -84,18 +84,18 @@ OldaleTown_EventScript_ExplainPokemonMart:: @ 81E8F8C release end -OldaleTown_EventScript_ExplainPotion:: @ 81E8FB9 +OldaleTown_EventScript_ExplainPotion:: msgbox OldaleTown_Text_PotionExplanation, MSGBOX_DEFAULT release end -OldaleTown_EventScript_BagIsFull:: @ 81E8FC3 +OldaleTown_EventScript_BagIsFull:: msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT fadedefaultbgm release end -OldaleTown_Movement_EmployeeEast: @ 81E8FCE +OldaleTown_Movement_EmployeeEast: walk_up walk_up walk_up @@ -106,7 +106,7 @@ OldaleTown_Movement_EmployeeEast: @ 81E8FCE walk_in_place_fastest_down step_end -OldaleTown_Movement_EmployeeSouth: @ 81E8FD7 +OldaleTown_Movement_EmployeeSouth: walk_left walk_up walk_up @@ -119,7 +119,7 @@ OldaleTown_Movement_EmployeeSouth: @ 81E8FD7 walk_in_place_fastest_down step_end -OldaleTown_Movement_EmployeeNorth: @ 81E8FE2 +OldaleTown_Movement_EmployeeNorth: walk_up walk_up walk_up @@ -130,7 +130,7 @@ OldaleTown_Movement_EmployeeNorth: @ 81E8FE2 walk_in_place_fastest_down step_end -OldaleTown_Movement_Unknown1: @ 81E8FEB +OldaleTown_Movement_Unknown1: walk_up walk_up walk_right @@ -146,7 +146,7 @@ OldaleTown_Movement_Unknown1: @ 81E8FEB walk_in_place_fastest_down step_end -OldaleTown_Movement_PlayerEast: @ 81E8FF9 +OldaleTown_Movement_PlayerEast: walk_right walk_up walk_up @@ -156,7 +156,7 @@ OldaleTown_Movement_PlayerEast: @ 81E8FF9 walk_up step_end -OldaleTown_Movement_PlayerSouth: @ 81E9001 +OldaleTown_Movement_PlayerSouth: delay_16 delay_16 delay_16 @@ -168,7 +168,7 @@ OldaleTown_Movement_PlayerSouth: @ 81E9001 walk_up step_end -OldaleTown_Movement_PlayerNorth: @ 81E900B +OldaleTown_Movement_PlayerNorth: walk_up walk_up walk_up @@ -178,7 +178,7 @@ OldaleTown_Movement_PlayerNorth: @ 81E900B walk_up step_end -OldaleTown_Movement_Unknown2: @ 81E9013 +OldaleTown_Movement_Unknown2: walk_left walk_up walk_up @@ -192,7 +192,7 @@ OldaleTown_Movement_Unknown2: @ 81E9013 walk_up step_end -OldaleTown_EventScript_FootprintsMan:: @ 81E901F +OldaleTown_EventScript_FootprintsMan:: lock faceplayer goto_if_set FLAG_ADVENTURE_STARTED, OldaleTown_EventScript_NotBlockingPath @@ -203,7 +203,7 @@ OldaleTown_EventScript_FootprintsMan:: @ 81E901F release end -OldaleTown_EventScript_BlockedPath:: @ 81E903F +OldaleTown_EventScript_BlockedPath:: lockall applymovement OBJ_EVENT_ID_PLAYER, OldaleTown_Movement_PlayerStepBack applymovement LOCALID_FOOTPRINTS_MAN, OldaleTown_Movement_BackUp @@ -215,12 +215,12 @@ OldaleTown_EventScript_BlockedPath:: @ 81E903F releaseall end -OldaleTown_EventScript_NotBlockingPath:: @ 81E9066 +OldaleTown_EventScript_NotBlockingPath:: msgbox OldaleTown_Text_FinishedSketchingFootprints, MSGBOX_DEFAULT release end -OldaleTown_EventScript_Rival:: @ 81E9070 +OldaleTown_EventScript_Rival:: lockall applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 @@ -228,7 +228,7 @@ OldaleTown_EventScript_Rival:: @ 81E9070 goto OldaleTown_EventScript_ShowRivalMessage end -OldaleTown_EventScript_RivalTrigger1:: @ 81E9086 +OldaleTown_EventScript_RivalTrigger1:: lockall applymovement LOCALID_RIVAL, OldaleTown_Movement_RivalApproachPlayer1 waitmovement 0 @@ -238,7 +238,7 @@ OldaleTown_EventScript_RivalTrigger1:: @ 81E9086 goto OldaleTown_EventScript_ShowRivalMessage end -OldaleTown_EventScript_RivalTrigger2:: @ 81E90A6 +OldaleTown_EventScript_RivalTrigger2:: lockall applymovement LOCALID_RIVAL, OldaleTown_Movement_RivalApproachPlayer2 waitmovement 0 @@ -248,7 +248,7 @@ OldaleTown_EventScript_RivalTrigger2:: @ 81E90A6 goto OldaleTown_EventScript_ShowRivalMessage end -OldaleTown_EventScript_RivalTrigger3:: @ 81E90C6 +OldaleTown_EventScript_RivalTrigger3:: lockall applymovement LOCALID_RIVAL, OldaleTown_Movement_RivalApproachPlayer3 waitmovement 0 @@ -258,7 +258,7 @@ OldaleTown_EventScript_RivalTrigger3:: @ 81E90C6 goto OldaleTown_EventScript_ShowRivalMessage end -OldaleTown_EventScript_ShowRivalMessage:: @ 81E90E6 +OldaleTown_EventScript_ShowRivalMessage:: checkplayergender compare VAR_RESULT, MALE goto_if_eq OldaleTown_EventScript_ShowMayMessage @@ -266,17 +266,17 @@ OldaleTown_EventScript_ShowRivalMessage:: @ 81E90E6 goto_if_eq OldaleTown_EventScript_ShowBrendanMessage end -OldaleTown_EventScript_ShowMayMessage:: @ 81E90FE +OldaleTown_EventScript_ShowMayMessage:: msgbox OldaleTown_Text_MayLetsGoBack, MSGBOX_DEFAULT goto OldaleTown_EventScript_RivalFinish end -OldaleTown_EventScript_ShowBrendanMessage:: @ 81E910C +OldaleTown_EventScript_ShowBrendanMessage:: msgbox OldaleTown_Text_BrendanLetsGoBack, MSGBOX_DEFAULT goto OldaleTown_EventScript_RivalFinish end -OldaleTown_EventScript_RivalFinish:: @ 81E911A +OldaleTown_EventScript_RivalFinish:: closemessage compare VAR_0x8009, 0 call_if_eq OldaleTown_EventScript_DoExitMovement1 @@ -290,33 +290,33 @@ OldaleTown_EventScript_RivalFinish:: @ 81E911A releaseall end -OldaleTown_EventScript_DoExitMovement1:: @ 81E9148 +OldaleTown_EventScript_DoExitMovement1:: compare VAR_FACING, DIR_SOUTH goto_if_ne OldaleTown_EventScript_DoExitMovement2 applymovement LOCALID_RIVAL, OldaleTown_Movement_RivalExit waitmovement 0 return -OldaleTown_EventScript_DoExitMovement2:: @ 81E915E +OldaleTown_EventScript_DoExitMovement2:: applymovement OBJ_EVENT_ID_PLAYER, OldaleTown_Movement_WatchRivalExit applymovement LOCALID_RIVAL, OldaleTown_Movement_RivalExit waitmovement 0 return -OldaleTown_Movement_RivalApproachPlayer1: @ 81E9170 +OldaleTown_Movement_RivalApproachPlayer1: walk_left walk_left step_end -OldaleTown_Movement_RivalApproachPlayer2: @ 81E9173 +OldaleTown_Movement_RivalApproachPlayer2: walk_left step_end -OldaleTown_Movement_RivalApproachPlayer3: @ 81E9175 +OldaleTown_Movement_RivalApproachPlayer3: face_left step_end -OldaleTown_Movement_RivalExit: @ 81E9177 +OldaleTown_Movement_RivalExit: walk_down walk_down walk_down @@ -325,18 +325,18 @@ OldaleTown_Movement_RivalExit: @ 81E9177 walk_down step_end -OldaleTown_Movement_WatchRivalExit: @ 81E917E +OldaleTown_Movement_WatchRivalExit: delay_8 delay_4 walk_in_place_fastest_down step_end -OldaleTown_Movement_PlayerStepBack: @ 81E9182 +OldaleTown_Movement_PlayerStepBack: delay_8 walk_right step_end -OldaleTown_Movement_BackUp: @ 81E9185 +OldaleTown_Movement_BackUp: walk_fast_up walk_in_place_fastest_left lock_facing_direction @@ -344,21 +344,21 @@ OldaleTown_Movement_BackUp: @ 81E9185 unlock_facing_direction step_end -OldaleTown_Movement_ReturnToOriginalPosition: @ 81E918B +OldaleTown_Movement_ReturnToOriginalPosition: walk_down walk_left step_end -OldaleTown_Text_SavingMyProgress: @ 81E918E +OldaleTown_Text_SavingMyProgress: .string "I want to take a rest, so I'm saving my\n" .string "progress.$" -OldaleTown_Text_IWorkAtPokemonMart: @ 81E91C0 +OldaleTown_Text_IWorkAtPokemonMart: .string "Hi!\n" .string "I work at a POKéMON MART.\p" .string "Can I get you to come with me?$" -OldaleTown_Text_ThisIsAPokemonMart: @ 81E91FD +OldaleTown_Text_ThisIsAPokemonMart: .string "This is a POKéMON MART.\n" .string "Just look for our blue roof.\p" .string "We sell a variety of goods including\n" @@ -366,12 +366,12 @@ OldaleTown_Text_ThisIsAPokemonMart: @ 81E91FD .string "Here, I'd like you to have this as\n" .string "a promotional item.$" -OldaleTown_Text_PotionExplanation: @ 81E92AF +OldaleTown_Text_PotionExplanation: .string "A POTION can be used anytime, so it's\n" .string "even more useful than a POKéMON CENTER\l" .string "in certain situations.$" -OldaleTown_Text_WaitDontComeInHere: @ 81E9313 +OldaleTown_Text_WaitDontComeInHere: .string "Aaaaah! Wait!\n" .string "Please don't come in here.\p" .string "I just discovered the footprints of\n" @@ -379,29 +379,29 @@ OldaleTown_Text_WaitDontComeInHere: @ 81E9313 .string "Wait until I finish sketching\n" .string "them, okay?$" -OldaleTown_Text_DiscoveredFootprints: @ 81E939A +OldaleTown_Text_DiscoveredFootprints: .string "I just discovered the footprints of\n" .string "a rare POKéMON!\p" .string "Wait until I finish sketching\n" .string "them, okay?$" -OldaleTown_Text_FinishedSketchingFootprints: @ 81E93F8 +OldaleTown_Text_FinishedSketchingFootprints: .string "I finished sketching the footprints of\n" .string "a rare POKéMON.\p" .string "But it turns out they were only my\n" .string "own footprints…$" -OldaleTown_Text_MayLetsGoBack: @ 81E9462 +OldaleTown_Text_MayLetsGoBack: .string "MAY: {PLAYER}{KUN}!\n" .string "Over here!\l" .string "Let's hurry home!$" -OldaleTown_Text_BrendanLetsGoBack: @ 81E948A +OldaleTown_Text_BrendanLetsGoBack: .string "BRENDAN: I'm heading back to my dad's\n" .string "LAB now.\l" .string "{PLAYER}, you should hustle back, too.$" -OldaleTown_Text_CitySign: @ 81E94DA +OldaleTown_Text_CitySign: .string "OLDALE TOWN\n" .string "“Where things start off scarce.”$" diff --git a/data/maps/OldaleTown_House1/scripts.inc b/data/maps/OldaleTown_House1/scripts.inc index 1cb5622efe..5211f583ed 100644 --- a/data/maps/OldaleTown_House1/scripts.inc +++ b/data/maps/OldaleTown_House1/scripts.inc @@ -1,11 +1,11 @@ -OldaleTown_House1_MapScripts:: @ 81FBE85 +OldaleTown_House1_MapScripts:: .byte 0 -OldaleTown_House1_EventScript_Woman:: @ 81FBE86 +OldaleTown_House1_EventScript_Woman:: msgbox OldaleTown_House1_Text_LeftPokemonGoesOutFirst, MSGBOX_NPC end -OldaleTown_House1_Text_LeftPokemonGoesOutFirst: @ 81FBE8F +OldaleTown_House1_Text_LeftPokemonGoesOutFirst: .string "When a POKéMON battle starts, the one\n" .string "at the left of the list goes out first.\p" .string "So, when you get more POKéMON in your\n" diff --git a/data/maps/OldaleTown_House2/scripts.inc b/data/maps/OldaleTown_House2/scripts.inc index 3259e319c2..49e317bac4 100644 --- a/data/maps/OldaleTown_House2/scripts.inc +++ b/data/maps/OldaleTown_House2/scripts.inc @@ -1,19 +1,19 @@ -OldaleTown_House2_MapScripts:: @ 81FBF5A +OldaleTown_House2_MapScripts:: .byte 0 -OldaleTown_House2_EventScript_Woman:: @ 81FBF5B +OldaleTown_House2_EventScript_Woman:: msgbox OldaleTown_House2_Text_PokemonLevelUp, MSGBOX_NPC end -OldaleTown_House2_EventScript_Man:: @ 81FBF64 +OldaleTown_House2_EventScript_Man:: msgbox OldaleTown_House2_Text_YoullGoFurtherWithStrongPokemon, MSGBOX_NPC end -OldaleTown_House2_Text_PokemonLevelUp: @ 81FBF6D +OldaleTown_House2_Text_PokemonLevelUp: .string "When POKéMON battle, they eventually\n" .string "level up and become stronger.$" -OldaleTown_House2_Text_YoullGoFurtherWithStrongPokemon: @ 81FBFB0 +OldaleTown_House2_Text_YoullGoFurtherWithStrongPokemon: .string "If the POKéMON with you become\n" .string "stronger, you'll be able to go farther\l" .string "away from here.$" diff --git a/data/maps/OldaleTown_Mart/scripts.inc b/data/maps/OldaleTown_Mart/scripts.inc index 33d26cbfb1..0b3c7b1a34 100644 --- a/data/maps/OldaleTown_Mart/scripts.inc +++ b/data/maps/OldaleTown_Mart/scripts.inc @@ -1,7 +1,7 @@ -OldaleTown_Mart_MapScripts:: @ 81FC23F +OldaleTown_Mart_MapScripts:: .byte 0 -OldaleTown_Mart_EventScript_Clerk:: @ 81FC240 +OldaleTown_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -12,7 +12,8 @@ OldaleTown_Mart_EventScript_Clerk:: @ 81FC240 release end -OldaleTown_Mart_Pokemart_Basic: @ 81FC260 + .align 2 +OldaleTown_Mart_Pokemart_Basic: .2byte ITEM_POTION .2byte ITEM_ANTIDOTE .2byte ITEM_PARALYZE_HEAL @@ -21,14 +22,14 @@ OldaleTown_Mart_Pokemart_Basic: @ 81FC260 release end -OldaleTown_Mart_ExpandedItems:: @ 81FC26C +OldaleTown_Mart_ExpandedItems:: pokemart OldaleTown_Mart_Pokemart_Expanded msgbox gText_PleaseComeAgain, MSGBOX_DEFAULT release end .align 2 -OldaleTown_Mart_Pokemart_Expanded: @ 81FC27C +OldaleTown_Mart_Pokemart_Expanded: .2byte ITEM_POKE_BALL .2byte ITEM_POTION .2byte ITEM_ANTIDOTE @@ -38,7 +39,7 @@ OldaleTown_Mart_Pokemart_Expanded: @ 81FC27C release end -OldaleTown_Mart_EventScript_Woman:: @ 81FC28A +OldaleTown_Mart_EventScript_Woman:: lock faceplayer goto_if_set FLAG_ADVENTURE_STARTED, OldaleTown_Mart_EventScript_PokeBallsInStock @@ -46,24 +47,24 @@ OldaleTown_Mart_EventScript_Woman:: @ 81FC28A release end -OldaleTown_Mart_EventScript_PokeBallsInStock:: @ 81FC29F +OldaleTown_Mart_EventScript_PokeBallsInStock:: msgbox OldaleTown_Mart_Text_ImGoingToBuyPokeBalls, MSGBOX_DEFAULT release end -OldaleTown_Mart_EventScript_Boy:: @ 81FC2A9 +OldaleTown_Mart_EventScript_Boy:: msgbox OldaleTown_Mart_Text_RestoreHPWithPotion, MSGBOX_NPC end -OldaleTown_Mart_Text_PokeBallsAreSoldOut: @ 81FC2B2 +OldaleTown_Mart_Text_PokeBallsAreSoldOut: .string "The clerk says they're all sold out.\n" .string "I can't buy any POKé BALLS.$" -OldaleTown_Mart_Text_ImGoingToBuyPokeBalls: @ 81FC2F3 +OldaleTown_Mart_Text_ImGoingToBuyPokeBalls: .string "I'm going to buy a bunch of POKé BALLS\n" .string "and catch a bunch of POKéMON!$" -OldaleTown_Mart_Text_RestoreHPWithPotion: @ 81FC338 +OldaleTown_Mart_Text_RestoreHPWithPotion: .string "If a POKéMON gets hurt and loses its HP\n" .string "and faints, it won't be able to battle.\p" .string "To prevent your POKéMON from fainting,\n" diff --git a/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc b/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc index 0918f3c39d..07549592f8 100644 --- a/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc @@ -1,16 +1,16 @@ .set LOCALID_NURSE, 1 -OldaleTown_PokemonCenter_1F_MapScripts:: @ 81FC006 +OldaleTown_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, OldaleTown_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -OldaleTown_PokemonCenter_1F_OnTransition: @ 81FC011 +OldaleTown_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_OLDALE_TOWN call Common_EventScript_UpdateBrineyLocation end -OldaleTown_PokemonCenter_1F_EventScript_Nurse:: @ 81FC01A +OldaleTown_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -18,15 +18,15 @@ OldaleTown_PokemonCenter_1F_EventScript_Nurse:: @ 81FC01A release end -OldaleTown_PokemonCenter_1F_EventScript_Gentleman:: @ 81FC028 +OldaleTown_PokemonCenter_1F_EventScript_Gentleman:: msgbox OldaleTown_PokemonCenter_1F_Text_TrainersCanUsePC, MSGBOX_NPC end -OldaleTown_PokemonCenter_1F_EventScript_Boy:: @ 81FC031 +OldaleTown_PokemonCenter_1F_EventScript_Boy:: msgbox OldaleTown_PokemonCenter_1F_Text_PokemonCentersAreGreat, MSGBOX_NPC end -OldaleTown_PokemonCenter_1F_EventScript_Girl:: @ 81FC03A +OldaleTown_PokemonCenter_1F_EventScript_Girl:: lock faceplayer goto_if_set FLAG_SYS_POKEDEX_GET, OldaleTown_PokemonCenter_1F_EventScript_WirelessClubAvailable @@ -34,30 +34,30 @@ OldaleTown_PokemonCenter_1F_EventScript_Girl:: @ 81FC03A release end -OldaleTown_PokemonCenter_1F_EventScript_WirelessClubAvailable:: @ 81FC04F +OldaleTown_PokemonCenter_1F_EventScript_WirelessClubAvailable:: msgbox OldaleTown_PokemonCenter_1F_Text_TradedInWirelessClub, MSGBOX_DEFAULT release end -OldaleTown_PokemonCenter_1F_Text_TrainersCanUsePC: @ 81FC059 +OldaleTown_PokemonCenter_1F_Text_TrainersCanUsePC: .string "That PC in the corner there is\n" .string "for any POKéMON TRAINER to use.\p" .string "Naturally, that means you're welcome\n" .string "to use it, too.$" -OldaleTown_PokemonCenter_1F_Text_PokemonCentersAreGreat: @ 81FC0CD +OldaleTown_PokemonCenter_1F_Text_PokemonCentersAreGreat: .string "POKéMON CENTERS are great!\p" .string "You can use their services as much\n" .string "as you like, and it's all for free.\l" .string "You never have to worry!$" -OldaleTown_PokemonCenter_1F_Text_WirelessClubNotAvailable: @ 81FC148 +OldaleTown_PokemonCenter_1F_Text_WirelessClubNotAvailable: .string "The POKéMON WIRELESS CLUB on\n" .string "the second floor was built recently.\p" .string "But they say they're still making\n" .string "adjustments.$" -OldaleTown_PokemonCenter_1F_Text_TradedInWirelessClub: @ 81FC1B9 +OldaleTown_PokemonCenter_1F_Text_TradedInWirelessClub: .string "The POKéMON WIRELESS CLUB on\n" .string "the second floor was built recently.\p" .string "I traded POKéMON right away.$" diff --git a/data/maps/OldaleTown_PokemonCenter_2F/scripts.inc b/data/maps/OldaleTown_PokemonCenter_2F/scripts.inc index 125805f50f..4dbe7cdd1d 100644 --- a/data/maps/OldaleTown_PokemonCenter_2F/scripts.inc +++ b/data/maps/OldaleTown_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -OldaleTown_PokemonCenter_2F_MapScripts:: @ 81FC218 +OldaleTown_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ OldaleTown_PokemonCenter_2F_MapScripts:: @ 81FC218 .byte 0 @ The below 3 are unused and leftover from RS -OldaleTown_PokemonCenter_2F_EventScript_Colosseum:: @ 81FC22D +OldaleTown_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -OldaleTown_PokemonCenter_2F_EventScript_TradeCenter:: @ 81FC233 +OldaleTown_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -OldaleTown_PokemonCenter_2F_EventScript_RecordCorner:: @ 81FC239 +OldaleTown_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/PacifidlogTown/scripts.inc b/data/maps/PacifidlogTown/scripts.inc index fc491cfe30..384fa0753c 100644 --- a/data/maps/PacifidlogTown/scripts.inc +++ b/data/maps/PacifidlogTown/scripts.inc @@ -1,44 +1,44 @@ -PacifidlogTown_MapScripts:: @ 81EBAB1 +PacifidlogTown_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, PacifidlogTown_OnTransition map_script MAP_SCRIPT_ON_RESUME, PacifidlogTown_OnResume .byte 0 -PacifidlogTown_OnTransition: @ 81EBABC +PacifidlogTown_OnTransition: setflag FLAG_VISITED_PACIFIDLOG_TOWN end -PacifidlogTown_OnResume: @ 81EBAC0 +PacifidlogTown_OnResume: setstepcallback STEP_CB_PACIFIDLOG_BRIDGE end -PacifidlogTown_EventScript_NinjaBoy:: @ 81EBAC3 +PacifidlogTown_EventScript_NinjaBoy:: msgbox PacifidlogTown_Text_NeatHousesOnWater, MSGBOX_NPC end -PacifidlogTown_EventScript_Girl:: @ 81EBACC +PacifidlogTown_EventScript_Girl:: msgbox PacifidlogTown_Text_FastRunningCurrent, MSGBOX_NPC end -PacifidlogTown_EventScript_Fisherman:: @ 81EBAD5 +PacifidlogTown_EventScript_Fisherman:: msgbox PacifidlogTown_Text_SkyPillarTooScary, MSGBOX_NPC end -PacifidlogTown_EventScript_TownSign:: @ 81EBADE +PacifidlogTown_EventScript_TownSign:: msgbox PacifidlogTown_Text_TownSign, MSGBOX_SIGN end -PacifidlogTown_Text_FastRunningCurrent: @ 81EBAE7 +PacifidlogTown_Text_FastRunningCurrent: .string "The sea between PACIFIDLOG and\n" .string "SLATEPORT has a fast-running tide.\p" .string "If you decide to SURF, you could end\n" .string "up swept away somewhere else.$" -PacifidlogTown_Text_NeatHousesOnWater: @ 81EBB6C +PacifidlogTown_Text_NeatHousesOnWater: .string "See, isn't it neat?\n" .string "These houses are on water!\p" .string "I was born here!$" -PacifidlogTown_Text_SkyPillarTooScary: @ 81EBBAC +PacifidlogTown_Text_SkyPillarTooScary: .string "The SKY PILLAR?\p" .string "…Oh, you must mean that tall, tall\n" .string "tower a little further out.\p" @@ -47,7 +47,7 @@ PacifidlogTown_Text_SkyPillarTooScary: @ 81EBBAC .string "Life at sea level in PACIFIDLOG,\n" .string "that suits me fine.$" -PacifidlogTown_Text_TownSign: @ 81EBC7A +PacifidlogTown_Text_TownSign: .string "PACIFIDLOG TOWN\p" .string "“Where the morning sun smiles upon\n" .string "the waters.”$" diff --git a/data/maps/PacifidlogTown_House1/scripts.inc b/data/maps/PacifidlogTown_House1/scripts.inc index 7759cb29a6..b3a39a59d8 100644 --- a/data/maps/PacifidlogTown_House1/scripts.inc +++ b/data/maps/PacifidlogTown_House1/scripts.inc @@ -1,15 +1,15 @@ -PacifidlogTown_House1_MapScripts:: @ 820365C +PacifidlogTown_House1_MapScripts:: .byte 0 -PacifidlogTown_House1_EventScript_Man:: @ 820365D +PacifidlogTown_House1_EventScript_Man:: msgbox PacifidlogTown_House1_Text_RegiStory, MSGBOX_NPC end -PacifidlogTown_House1_EventScript_Woman:: @ 8203666 +PacifidlogTown_House1_EventScript_Woman:: msgbox PacifidlogTown_House1_Text_SixDotsOpenThreeDoors, MSGBOX_NPC end -PacifidlogTown_House1_Text_RegiStory: @ 820366F +PacifidlogTown_House1_Text_RegiStory: .string "In the HOENN region, there are three\n" .string "POKéMON that represent the power of\l" .string "rock, ice, and steel.\p" @@ -18,7 +18,7 @@ PacifidlogTown_House1_Text_RegiStory: @ 820366F .string "That's the story I heard when I was\n" .string "just a little kid.$" -PacifidlogTown_House1_Text_SixDotsOpenThreeDoors: @ 820373A +PacifidlogTown_House1_Text_SixDotsOpenThreeDoors: .string "“Six dots open three doors.”\p" .string "Grandpa used to say that, but I don't\n" .string "know what he meant.$" diff --git a/data/maps/PacifidlogTown_House2/scripts.inc b/data/maps/PacifidlogTown_House2/scripts.inc index 60b6c9961e..3c0be269e2 100644 --- a/data/maps/PacifidlogTown_House2/scripts.inc +++ b/data/maps/PacifidlogTown_House2/scripts.inc @@ -1,7 +1,7 @@ -PacifidlogTown_House2_MapScripts:: @ 8203791 +PacifidlogTown_House2_MapScripts:: .byte 0 -PacifidlogTown_House2_EventScript_FanClubYoungerBrother:: @ 8203792 +PacifidlogTown_House2_EventScript_FanClubYoungerBrother:: lock faceplayer dotimebasedevents @@ -19,27 +19,27 @@ PacifidlogTown_House2_EventScript_FanClubYoungerBrother:: @ 8203792 goto PacifidlogTown_House2_EventScript_GiveFrustration end -PacifidlogTown_House2_EventScript_UpdateFanClubTMFlag:: @ 82037DE +PacifidlogTown_House2_EventScript_UpdateFanClubTMFlag:: goto_if_unset FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK, Common_EventScript_NopReturn specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable compare VAR_RESULT, 0 call_if_eq PacifidlogTown_House2_EventScript_ClearReceivedFanClubTM return -PacifidlogTown_House2_EventScript_MonAssessment:: @ 82037F8 +PacifidlogTown_House2_EventScript_MonAssessment:: msgbox PacifidlogTown_House2_Text_AhYourPokemon, MSGBOX_DEFAULT return -PacifidlogTown_House2_EventScript_FirstMonAssessment:: @ 8203801 +PacifidlogTown_House2_EventScript_FirstMonAssessment:: msgbox PacifidlogTown_House2_Text_ChairmansYoungerBrotherOnVacation, MSGBOX_DEFAULT msgbox PacifidlogTown_House2_Text_AhYourPokemon, MSGBOX_DEFAULT return -PacifidlogTown_House2_EventScript_ClearReceivedFanClubTM:: @ 8203812 +PacifidlogTown_House2_EventScript_ClearReceivedFanClubTM:: clearflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK return -PacifidlogTown_House2_EventScript_GiveReturn:: @ 8203816 +PacifidlogTown_House2_EventScript_GiveReturn:: msgbox PacifidlogTown_House2_Text_AdoringPokemonTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM27 compare VAR_RESULT, FALSE @@ -50,12 +50,12 @@ PacifidlogTown_House2_EventScript_GiveReturn:: @ 8203816 release end -PacifidlogTown_House2_EventScript_PutInEffort:: @ 8203845 +PacifidlogTown_House2_EventScript_PutInEffort:: msgbox PacifidlogTown_House2_Text_PutInSomeMoreEffort, MSGBOX_DEFAULT release end -PacifidlogTown_House2_EventScript_GiveFrustration:: @ 820384F +PacifidlogTown_House2_EventScript_GiveFrustration:: msgbox PacifidlogTown_House2_Text_ViciousPokemonTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM21 compare VAR_RESULT, FALSE @@ -66,14 +66,14 @@ PacifidlogTown_House2_EventScript_GiveFrustration:: @ 820384F release end -PacifidlogTown_House2_EventScript_ComeBackInXDays:: @ 820387E +PacifidlogTown_House2_EventScript_ComeBackInXDays:: specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable buffernumberstring 0, VAR_RESULT msgbox PacifidlogTown_House2_Text_GetGoodTMInXDays, MSGBOX_DEFAULT release end -PacifidlogTown_House2_EventScript_HappyAzurill:: @ 8203891 +PacifidlogTown_House2_EventScript_HappyAzurill:: lock faceplayer waitse @@ -84,7 +84,7 @@ PacifidlogTown_House2_EventScript_HappyAzurill:: @ 8203891 release end -PacifidlogTown_House2_EventScript_UnhappyAzurill:: @ 82038AC +PacifidlogTown_House2_EventScript_UnhappyAzurill:: lock faceplayer waitse @@ -95,7 +95,7 @@ PacifidlogTown_House2_EventScript_UnhappyAzurill:: @ 82038AC release end -PacifidlogTown_House2_Text_ChairmansYoungerBrotherOnVacation: @ 82038C7 +PacifidlogTown_House2_Text_ChairmansYoungerBrotherOnVacation: .string "Er-hem!\p" .string "I am the POKéMON FAN CLUB's most\n" .string "important person, the CHAIRMAN's\l" @@ -103,50 +103,50 @@ PacifidlogTown_House2_Text_ChairmansYoungerBrotherOnVacation: @ 82038C7 .string "I'm here enjoying my vacation with\n" .string "POKéMON, yes, indeed.$" -PacifidlogTown_House2_Text_AhYourPokemon: @ 820395B +PacifidlogTown_House2_Text_AhYourPokemon: .string "Ah!\n" .string "Your POKéMON…$" -PacifidlogTown_House2_Text_AdoringPokemonTakeThis: @ 820396D +PacifidlogTown_House2_Text_AdoringPokemonTakeThis: .string "It clearly likes you very much.\p" .string "A POKéMON that adoring and adorable\n" .string "deserves a TM like this, no?$" -PacifidlogTown_House2_Text_PutInSomeMoreEffort: @ 82039CE +PacifidlogTown_House2_Text_PutInSomeMoreEffort: .string "Hmm…\n" .string "It's not bad, but it's also not good.\p" .string "You, as the TRAINER, need to put in\n" .string "some more effort.$" -PacifidlogTown_House2_Text_ViciousPokemonTakeThis: @ 8203A2F +PacifidlogTown_House2_Text_ViciousPokemonTakeThis: .string "It has a vicious look to it.\p" .string "A frightening POKéMON like that\n" .string "deserves a TM like this.$" -PacifidlogTown_House2_Text_ExplainReturnFrustration: @ 8203A85 +PacifidlogTown_House2_Text_ExplainReturnFrustration: .string "If a POKéMON likes you a lot, RETURN's\n" .string "power is enhanced.\p" .string "If it doesn't like you, FRUSTRATION's\n" .string "power goes up.$" -PacifidlogTown_House2_Text_GetGoodTMInXDays: @ 8203AF4 +PacifidlogTown_House2_Text_GetGoodTMInXDays: .string "Oh, yes. In about {STR_VAR_1} or so days,\n" .string "I should be getting a good TM or two.\p" .string "You should come see me then.\n" .string "I'll give you a TM that's suitable for\l" .string "your POKéMON.$" -PacifidlogTown_House2_Text_Rurii: @ 8203B8D +PacifidlogTown_House2_Text_Rurii: .string "AZURILL: Rurii.$" -PacifidlogTown_House2_Text_VeryFriendlyWithTrainer: @ 8203B9D +PacifidlogTown_House2_Text_VeryFriendlyWithTrainer: .string "It appears to be very friendly with the\n" .string "TRAINER.$" -PacifidlogTown_House2_Text_Rururi: @ 8203BCE +PacifidlogTown_House2_Text_Rururi: .string "AZURILL: Rururi!$" -PacifidlogTown_House2_Text_DoesntLikeTrainerVeryMuch: @ 8203BDF +PacifidlogTown_House2_Text_DoesntLikeTrainerVeryMuch: .string "It doesn't appear to like the TRAINER\n" .string "very much.$" diff --git a/data/maps/PacifidlogTown_House3/scripts.inc b/data/maps/PacifidlogTown_House3/scripts.inc index ea33c8d01c..c53ef05196 100644 --- a/data/maps/PacifidlogTown_House3/scripts.inc +++ b/data/maps/PacifidlogTown_House3/scripts.inc @@ -1,7 +1,7 @@ -PacifidlogTown_House3_MapScripts:: @ 8203C10 +PacifidlogTown_House3_MapScripts:: .byte 0 -PacifidlogTown_House3_EventScript_Trader:: @ 8203C11 +PacifidlogTown_House3_EventScript_Trader:: lock faceplayer goto_if_set FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED, PacifidlogTown_House3_EventScript_TradeCompleted @@ -33,27 +33,27 @@ PacifidlogTown_House3_EventScript_Trader:: @ 8203C11 release end -PacifidlogTown_House3_EventScript_DeclineTrade:: @ 8203C93 +PacifidlogTown_House3_EventScript_DeclineTrade:: msgbox PacifidlogTown_House3_Text_NotDesperateOrAnything, MSGBOX_DEFAULT release end -PacifidlogTown_House3_EventScript_NotRequestedMon:: @ 8203C9D +PacifidlogTown_House3_EventScript_NotRequestedMon:: bufferspeciesname 0, VAR_0x8009 msgbox PacifidlogTown_House3_Text_WontAcceptAnyLessThanRealMon, MSGBOX_DEFAULT release end -PacifidlogTown_House3_EventScript_TradeCompleted:: @ 8203CAB +PacifidlogTown_House3_EventScript_TradeCompleted:: msgbox PacifidlogTown_House3_Text_ReallyWantedToGetBagon, MSGBOX_DEFAULT release end -PacifidlogTown_House3_EventScript_Girl:: @ 8203CB5 +PacifidlogTown_House3_EventScript_Girl:: msgbox PacifidlogTown_House3_Text_IsThatAPokedex, MSGBOX_NPC end -PacifidlogTown_House3_Text_WillingToTradeIt: @ 8203CBE +PacifidlogTown_House3_Text_WillingToTradeIt: .string "Check out this {STR_VAR_2}!\p" .string "It's the {STR_VAR_2} that I caught\n" .string "yesterday to celebrate my birthday!\p" @@ -62,29 +62,29 @@ PacifidlogTown_House3_Text_WillingToTradeIt: @ 8203CBE .string "I'll tell you what. I might be willing\n" .string "to trade it for a {STR_VAR_1}.$" -PacifidlogTown_House3_Text_ItsSubtlyDifferentThankYou: @ 8203D87 +PacifidlogTown_House3_Text_ItsSubtlyDifferentThankYou: .string "Oh, so this is a {STR_VAR_1}?\p" .string "It's sort of like a {STR_VAR_2},\n" .string "and yet it's subtly different.\p" .string "Thank you!$" -PacifidlogTown_House3_Text_WontAcceptAnyLessThanRealMon: @ 8203DDE +PacifidlogTown_House3_Text_WontAcceptAnyLessThanRealMon: .string "No, no, no! I won't accept any\n" .string "less than a real {STR_VAR_1}!$" -PacifidlogTown_House3_Text_NotDesperateOrAnything: @ 8203E12 +PacifidlogTown_House3_Text_NotDesperateOrAnything: .string "Oh, so you're not going to go through\n" .string "with this?\p" .string "That's cool. I'm not desperate to make\n" .string "a trade or anything.$" -PacifidlogTown_House3_Text_ReallyWantedToGetBagon: @ 8203E7F +PacifidlogTown_House3_Text_ReallyWantedToGetBagon: .string "I know I could go looking for one\n" .string "on my own, but…\p" .string "But I really wanted to get a BAGON\n" .string "that another TRAINER caught…$" -PacifidlogTown_House3_Text_IsThatAPokedex: @ 8203EF1 +PacifidlogTown_House3_Text_IsThatAPokedex: .string "Is that a POKéDEX?\p" .string "Did you get to meet a lot of different\n" .string "POKéMON?\p" diff --git a/data/maps/PacifidlogTown_House4/scripts.inc b/data/maps/PacifidlogTown_House4/scripts.inc index 42a988bc21..12d7197bd1 100644 --- a/data/maps/PacifidlogTown_House4/scripts.inc +++ b/data/maps/PacifidlogTown_House4/scripts.inc @@ -1,15 +1,15 @@ -PacifidlogTown_House4_MapScripts:: @ 8203F4B +PacifidlogTown_House4_MapScripts:: .byte 0 -PacifidlogTown_House4_EventScript_LittleGirl:: @ 8203F4C +PacifidlogTown_House4_EventScript_LittleGirl:: msgbox PacifidlogTown_House4_Text_SkyPokemon, MSGBOX_NPC end -PacifidlogTown_House4_EventScript_Woman:: @ 8203F55 +PacifidlogTown_House4_EventScript_Woman:: msgbox PacifidlogTown_House4_Text_PeopleSawHighFlyingPokemon, MSGBOX_NPC end -PacifidlogTown_House4_EventScript_Boy:: @ 8203F5E +PacifidlogTown_House4_EventScript_Boy:: lock faceplayer msgbox PacifidlogTown_House4_Text_WhereDidYouComeFrom, MSGBOX_YESNO @@ -19,35 +19,35 @@ PacifidlogTown_House4_EventScript_Boy:: @ 8203F5E goto_if_eq PacifidlogTown_House4_EventScript_No end -PacifidlogTown_House4_EventScript_Yes:: @ 8203F7F +PacifidlogTown_House4_EventScript_Yes:: msgbox PacifidlogTown_House4_Text_YesTown, MSGBOX_DEFAULT release end -PacifidlogTown_House4_EventScript_No:: @ 8203F89 +PacifidlogTown_House4_EventScript_No:: msgbox PacifidlogTown_House4_Text_YouHaveToComeFromSomewhere, MSGBOX_DEFAULT release end -PacifidlogTown_House4_Text_PeopleSawHighFlyingPokemon: @ 8203F93 +PacifidlogTown_House4_Text_PeopleSawHighFlyingPokemon: .string "People were saying they saw a POKéMON\n" .string "flying high above HOENN.\p" .string "Is it flying around all the time?\n" .string "Doesn't it need to rest somewhere?$" -PacifidlogTown_House4_Text_SkyPokemon: @ 8204017 +PacifidlogTown_House4_Text_SkyPokemon: .string "A sky POKéMON!\n" .string "A sky POKéMON!$" -PacifidlogTown_House4_Text_WhereDidYouComeFrom: @ 8204035 +PacifidlogTown_House4_Text_WhereDidYouComeFrom: .string "Where did you come from?$" -PacifidlogTown_House4_Text_YesTown: @ 820404E +PacifidlogTown_House4_Text_YesTown: .string "Yes?\n" .string "YES TOWN?\p" .string "I've never heard of a place like that.$" -PacifidlogTown_House4_Text_YouHaveToComeFromSomewhere: @ 8204084 +PacifidlogTown_House4_Text_YouHaveToComeFromSomewhere: .string "No? That doesn't make any sense.\n" .string "You have to come from somewhere.\p" .string "Oh! Wait! You're not going to say you\n" diff --git a/data/maps/PacifidlogTown_House5/scripts.inc b/data/maps/PacifidlogTown_House5/scripts.inc index f8be20f471..5da4fb9022 100644 --- a/data/maps/PacifidlogTown_House5/scripts.inc +++ b/data/maps/PacifidlogTown_House5/scripts.inc @@ -1,7 +1,7 @@ -PacifidlogTown_House5_MapScripts:: @ 8204110 +PacifidlogTown_House5_MapScripts:: .byte 0 -PacifidlogTown_House5_EventScript_MirageIslandWatcher:: @ 8204111 +PacifidlogTown_House5_EventScript_MirageIslandWatcher:: lock faceplayer specialvar VAR_RESULT, IsMirageIslandPresent @@ -11,23 +11,23 @@ PacifidlogTown_House5_EventScript_MirageIslandWatcher:: @ 8204111 release end -PacifidlogTown_House5_EventScript_MirageIslandPresent:: @ 820412D +PacifidlogTown_House5_EventScript_MirageIslandPresent:: msgbox PacifidlogTown_House5_Text_CanSeeMirageIslandToday, MSGBOX_DEFAULT release end -PacifidlogTown_House5_EventScript_Gentleman:: @ 8204137 +PacifidlogTown_House5_EventScript_Gentleman:: msgbox PacifidlogTown_House5_Text_MirageIslandAppearDependingOnWeather, MSGBOX_NPC end -PacifidlogTown_House5_Text_CantSeeMirageIslandToday: @ 8204140 +PacifidlogTown_House5_Text_CantSeeMirageIslandToday: .string "I can't see MIRAGE ISLAND today…$" -PacifidlogTown_House5_Text_CanSeeMirageIslandToday: @ 8204161 +PacifidlogTown_House5_Text_CanSeeMirageIslandToday: .string "Oh! Oh my!\n" .string "I can see MIRAGE ISLAND today!$" -PacifidlogTown_House5_Text_MirageIslandAppearDependingOnWeather: @ 820418B +PacifidlogTown_House5_Text_MirageIslandAppearDependingOnWeather: .string "MIRAGE ISLAND…\p" .string "It must become visible and invisible\n" .string "depending on the weather conditions\l" diff --git a/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc b/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc index fbe42ce995..32db89f8dc 100644 --- a/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_NURSE, 1 -PacifidlogTown_PokemonCenter_1F_MapScripts:: @ 82034A7 +PacifidlogTown_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, PacifidlogTown_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -PacifidlogTown_PokemonCenter_1F_OnTransition: @ 82034B2 +PacifidlogTown_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_PACIFIDLOG_TOWN end -PacifidlogTown_PokemonCenter_1F_EventScript_Nurse:: @ 82034B6 +PacifidlogTown_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -17,29 +17,29 @@ PacifidlogTown_PokemonCenter_1F_EventScript_Nurse:: @ 82034B6 release end -PacifidlogTown_PokemonCenter_1F_EventScript_Girl:: @ 82034C4 +PacifidlogTown_PokemonCenter_1F_EventScript_Girl:: msgbox PacifidlogTown_PokemonCenter_1F_Text_WhatColorTrainerCard, MSGBOX_NPC end -PacifidlogTown_PokemonCenter_1F_EventScript_Woman:: @ 82034CD +PacifidlogTown_PokemonCenter_1F_EventScript_Woman:: msgbox PacifidlogTown_PokemonCenter_1F_Text_OnColonyOfCorsola, MSGBOX_NPC end -PacifidlogTown_PokemonCenter_1F_EventScript_OldMan:: @ 82034D6 +PacifidlogTown_PokemonCenter_1F_EventScript_OldMan:: msgbox PacifidlogTown_PokemonCenter_1F_Text_AncestorsLivedOnBoats, MSGBOX_NPC end -PacifidlogTown_PokemonCenter_1F_Text_WhatColorTrainerCard: @ 82034DF +PacifidlogTown_PokemonCenter_1F_Text_WhatColorTrainerCard: .string "What color is your TRAINER CARD?\n" .string "Mine's copper!$" -PacifidlogTown_PokemonCenter_1F_Text_OnColonyOfCorsola: @ 820350F +PacifidlogTown_PokemonCenter_1F_Text_OnColonyOfCorsola: .string "PACIFIDLOG TOWN floats on top of\n" .string "a colony of CORSOLA.\p" .string "If I told you that, would you believe\n" .string "me?$" -PacifidlogTown_PokemonCenter_1F_Text_AncestorsLivedOnBoats: @ 820356F +PacifidlogTown_PokemonCenter_1F_Text_AncestorsLivedOnBoats: .string "The ancestors of the people in\n" .string "PACIFIDLOG were said to have been\l" .string "born on boats and then lived and died \l" diff --git a/data/maps/PacifidlogTown_PokemonCenter_2F/scripts.inc b/data/maps/PacifidlogTown_PokemonCenter_2F/scripts.inc index 576c1679c0..61a3011750 100644 --- a/data/maps/PacifidlogTown_PokemonCenter_2F/scripts.inc +++ b/data/maps/PacifidlogTown_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -PacifidlogTown_PokemonCenter_2F_MapScripts:: @ 8203635 +PacifidlogTown_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ PacifidlogTown_PokemonCenter_2F_MapScripts:: @ 8203635 .byte 0 @ The below 3 are unused and leftover from RS -PacifidlogTown_PokemonCenter_2F_EventScript_Colosseum:: @ 820364A +PacifidlogTown_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -PacifidlogTown_PokemonCenter_2F_EventScript_TradeCenter:: @ 8203650 +PacifidlogTown_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -PacifidlogTown_PokemonCenter_2F_EventScript_RecordCorner:: @ 8203656 +PacifidlogTown_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index ab77e18e0b..49f1efadb2 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -9,7 +9,7 @@ PetalburgCity_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, PetalburgCity_OnFrame .byte 0 -PetalburgCity_OnTransition: @ 81DC2D7 +PetalburgCity_OnTransition: setflag FLAG_VISITED_PETALBURG_CITY compare VAR_PETALBURG_CITY_STATE, 0 call_if_eq PetalburgCity_EventScript_MoveGymBoyToWestEntrance @@ -21,25 +21,25 @@ PetalburgCity_OnTransition: @ 81DC2D7 call_if_eq PetalburgCity_EventScript_SetGymDoorsUnlocked end -PetalburgCity_EventScript_MoveGymBoyToWestEntrance:: @ 81DC307 +PetalburgCity_EventScript_MoveGymBoyToWestEntrance:: setobjectxyperm LOCALID_GYM_BOY, 5, 11 return -PetalburgCity_EventScript_DisableMapNameAndMusic:: @ 81DC30F +PetalburgCity_EventScript_DisableMapNameAndMusic:: setflag FLAG_HIDE_MAP_NAME_POPUP savebgm MUS_FOLLOW_ME return -PetalburgCity_EventScript_SetGymDoorsUnlocked:: @ 81DC316 +PetalburgCity_EventScript_SetGymDoorsUnlocked:: setvar VAR_PETALBURG_GYM_STATE, 7 return -PetalburgCity_OnFrame: @ 81DC31C +PetalburgCity_OnFrame: map_script_2 VAR_PETALBURG_CITY_STATE, 2, PetalburgCity_EventScript_WallyTutorial map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_EventScript_WalkToWallyHouse .2byte 0 -PetalburgCity_EventScript_WallyTutorial:: @ 81DC32E +PetalburgCity_EventScript_WallyTutorial:: lockall special SavePlayerParty special PutZigzagoonInPlayerParty @@ -65,7 +65,7 @@ PetalburgCity_EventScript_WallyTutorial:: @ 81DC32E releaseall end -PetalburgCity_EventScript_WalkToWallyHouse:: @ 81DC390 +PetalburgCity_EventScript_WalkToWallyHouse:: lockall setflag FLAG_HIDE_MAP_NAME_POPUP applymovement LOCALID_WALLYS_DAD, PetalburgCity_Movement_WalkToWallyHouseWallysDad @@ -90,7 +90,7 @@ PetalburgCity_EventScript_WalkToWallyHouse:: @ 81DC390 releaseall end -PetalburgCity_EventScript_Boy:: @ 81DC3E6 +PetalburgCity_EventScript_Boy:: lock faceplayer msgbox PetalburgCity_Text_WaterReflection, MSGBOX_DEFAULT @@ -100,11 +100,11 @@ PetalburgCity_EventScript_Boy:: @ 81DC3E6 release end -PetalburgCity_EventScript_WallysMom:: @ 81DC3FD +PetalburgCity_EventScript_WallysMom:: msgbox PetalburgCity_Text_WhereIsWally, MSGBOX_NPC end -PetalburgCity_Movement_WalkToWallyHousePlayer: @ 81DC406 +PetalburgCity_Movement_WalkToWallyHousePlayer: delay_8 walk_down walk_down @@ -124,12 +124,12 @@ PetalburgCity_Movement_WalkToWallyHousePlayer: @ 81DC406 walk_up step_end -PetalburgCity_Movement_WalkInsideHousePlayer: @ 81DC418 +PetalburgCity_Movement_WalkInsideHousePlayer: walk_up walk_up step_end -PetalburgCity_Movement_WalkToWallyHouseWallysDad: @ 81DC41B +PetalburgCity_Movement_WalkToWallyHouseWallysDad: delay_8 walk_down walk_down @@ -149,12 +149,12 @@ PetalburgCity_Movement_WalkToWallyHouseWallysDad: @ 81DC41B walk_up step_end -PetalburgCity_Movement_WalkInsideHouseWallysDad: @ 81DC42D +PetalburgCity_Movement_WalkInsideHouseWallysDad: walk_up set_invisible step_end -PetalburgCity_Movement_WallyTutorialPlayer: @ 81DC430 +PetalburgCity_Movement_WallyTutorialPlayer: delay_8 walk_down walk_down @@ -189,7 +189,7 @@ PetalburgCity_Movement_WallyTutorialPlayer: @ 81DC430 walk_in_place_fastest_right step_end -PetalburgCity_Movement_WallyTutorialWally: @ 81DC451 +PetalburgCity_Movement_WallyTutorialWally: delay_8 walk_down walk_down @@ -228,50 +228,50 @@ PetalburgCity_Movement_WallyTutorialWally: @ 81DC451 walk_in_place_fastest_right step_end -PetalburgCity_EventScript_GymSign:: @ 81DC476 +PetalburgCity_EventScript_GymSign:: msgbox PetalburgCity_Text_GymSign, MSGBOX_SIGN end -PetalburgCity_EventScript_CitySign:: @ 81DC47F +PetalburgCity_EventScript_CitySign:: msgbox PetalburgCity_Text_CitySign, MSGBOX_SIGN end -PetalburgCity_EventScript_Gentleman:: @ 81DC488 +PetalburgCity_EventScript_Gentleman:: msgbox PetalburgCity_Text_FullPartyExplanation, MSGBOX_NPC end -PetalburgCity_EventScript_WallyHouseSign:: @ 81DC491 +PetalburgCity_EventScript_WallyHouseSign:: msgbox PetalburgCity_Text_WallyHouseSign, MSGBOX_SIGN end -PetalburgCity_EventScript_ShowGymToPlayer0:: @ 81DC49A +PetalburgCity_EventScript_ShowGymToPlayer0:: lockall setvar VAR_0x8008, 0 goto PetalburgCity_EventScript_ShowGymToPlayer end -PetalburgCity_EventScript_ShowGymToPlayer1:: @ 81DC4A6 +PetalburgCity_EventScript_ShowGymToPlayer1:: lockall setvar VAR_0x8008, 1 goto PetalburgCity_EventScript_ShowGymToPlayer end -PetalburgCity_EventScript_ShowGymToPlayer2:: @ 81DC4B2 +PetalburgCity_EventScript_ShowGymToPlayer2:: lockall setvar VAR_0x8008, 2 goto PetalburgCity_EventScript_ShowGymToPlayer end -PetalburgCity_EventScript_ShowGymToPlayer3:: @ 81DC4BE +PetalburgCity_EventScript_ShowGymToPlayer3:: lockall setvar VAR_0x8008, 3 goto PetalburgCity_EventScript_ShowGymToPlayer end -PetalburgCity_EventScript_ShowGymToPlayer:: @ 81DC4CA +PetalburgCity_EventScript_ShowGymToPlayer:: applymovement LOCALID_GYM_BOY, Common_Movement_FacePlayer waitmovement 0 - playbgm MUS_FOLLOW_ME, 0 + playbgm MUS_FOLLOW_ME, FALSE playse SE_PIN applymovement LOCALID_GYM_BOY, Common_Movement_ExclamationMark waitmovement 0 @@ -307,83 +307,83 @@ PetalburgCity_EventScript_ShowGymToPlayer:: @ 81DC4CA releaseall end -PetalburgCity_EventScript_BoyApproachPlayer0:: @ 81DC57F +PetalburgCity_EventScript_BoyApproachPlayer0:: applymovement LOCALID_GYM_BOY, PetalburgCity_Movement_BoyApproachPlayer0 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_EventScript_BoyApproachPlayer1:: @ 81DC594 +PetalburgCity_EventScript_BoyApproachPlayer1:: applymovement LOCALID_GYM_BOY, PetalburgCity_Movement_BoyApproachPlayer1 waitmovement 0 return -PetalburgCity_EventScript_BoyApproachPlayer2:: @ 81DC59F +PetalburgCity_EventScript_BoyApproachPlayer2:: applymovement LOCALID_GYM_BOY, PetalburgCity_Movement_BoyApproachPlayer2 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -PetalburgCity_EventScript_BoyApproachPlayer3:: @ 81DC5B4 +PetalburgCity_EventScript_BoyApproachPlayer3:: applymovement LOCALID_GYM_BOY, PetalburgCity_Movement_BoyApproachPlayer3 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -PetalburgCity_EventScript_LeadPlayerToGym0:: @ 81DC5C9 +PetalburgCity_EventScript_LeadPlayerToGym0:: applymovement LOCALID_GYM_BOY, PetalburgCity_Movement_BoyWalkToGym0 applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_PlayerWalkToGym0 waitmovement 0 return -PetalburgCity_EventScript_LeadPlayerToGym1:: @ 81DC5DB +PetalburgCity_EventScript_LeadPlayerToGym1:: applymovement LOCALID_GYM_BOY, PetalburgCity_Movement_BoyWalkToGym1 applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_PlayerWalkToGym1 waitmovement 0 return -PetalburgCity_EventScript_LeadPlayerToGym2:: @ 81DC5ED +PetalburgCity_EventScript_LeadPlayerToGym2:: applymovement LOCALID_GYM_BOY, PetalburgCity_Movement_BoyWalkToGym2 applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_PlayerWalkToGym2 waitmovement 0 return -PetalburgCity_EventScript_LeadPlayerToGym3:: @ 81DC5FF +PetalburgCity_EventScript_LeadPlayerToGym3:: applymovement LOCALID_GYM_BOY, PetalburgCity_Movement_BoyWalkToGym3 applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_PlayerWalkToGym3 waitmovement 0 return @ Unused -PetalburgCity_Movement_Delay48:: @ 81DC611 +PetalburgCity_Movement_Delay48:: delay_16 delay_16 delay_16 step_end -PetalburgCity_Movement_BoyApproachPlayer0: @ 81DC615 +PetalburgCity_Movement_BoyApproachPlayer0: walk_right walk_right walk_right walk_in_place_fastest_up step_end -PetalburgCity_Movement_BoyApproachPlayer1: @ 81DC61A +PetalburgCity_Movement_BoyApproachPlayer1: walk_right walk_right step_end -PetalburgCity_Movement_BoyApproachPlayer2: @ 81DC61D +PetalburgCity_Movement_BoyApproachPlayer2: walk_right walk_right walk_right walk_in_place_fastest_down step_end -PetalburgCity_Movement_BoyApproachPlayer3: @ 81DC622 +PetalburgCity_Movement_BoyApproachPlayer3: walk_down walk_right walk_right @@ -391,7 +391,7 @@ PetalburgCity_Movement_BoyApproachPlayer3: @ 81DC622 walk_in_place_fastest_down step_end -PetalburgCity_Movement_BoyWalkToGym0: @ 81DC628 +PetalburgCity_Movement_BoyWalkToGym0: walk_right walk_right walk_right @@ -404,7 +404,7 @@ PetalburgCity_Movement_BoyWalkToGym0: @ 81DC628 walk_in_place_fastest_up step_end -PetalburgCity_Movement_BoyWalkToGym1: @ 81DC633 +PetalburgCity_Movement_BoyWalkToGym1: walk_down walk_right walk_right @@ -420,7 +420,7 @@ PetalburgCity_Movement_BoyWalkToGym1: @ 81DC633 walk_in_place_fastest_up step_end -PetalburgCity_Movement_BoyWalkToGym2: @ 81DC641 +PetalburgCity_Movement_BoyWalkToGym2: walk_right walk_right walk_right @@ -433,7 +433,7 @@ PetalburgCity_Movement_BoyWalkToGym2: @ 81DC641 walk_in_place_fastest_up step_end -PetalburgCity_Movement_BoyWalkToGym3: @ 81DC64C +PetalburgCity_Movement_BoyWalkToGym3: walk_right walk_right walk_right @@ -447,7 +447,7 @@ PetalburgCity_Movement_BoyWalkToGym3: @ 81DC64C walk_in_place_fastest_up step_end -PetalburgCity_Movement_BoyWalkAway: @ 81DC658 +PetalburgCity_Movement_BoyWalkAway: walk_down walk_left walk_left @@ -462,7 +462,7 @@ PetalburgCity_Movement_BoyWalkAway: @ 81DC658 walk_left step_end -PetalburgCity_Movement_PlayerWalkToGym0: @ 81DC665 +PetalburgCity_Movement_PlayerWalkToGym0: walk_down walk_right walk_right @@ -474,7 +474,7 @@ PetalburgCity_Movement_PlayerWalkToGym0: @ 81DC665 walk_up step_end -PetalburgCity_Movement_PlayerWalkToGym1: @ 81DC66F +PetalburgCity_Movement_PlayerWalkToGym1: delay_16 delay_16 walk_down @@ -489,7 +489,7 @@ PetalburgCity_Movement_PlayerWalkToGym1: @ 81DC66F walk_up step_end -PetalburgCity_Movement_PlayerWalkToGym2: @ 81DC67C +PetalburgCity_Movement_PlayerWalkToGym2: walk_up walk_right walk_right @@ -501,7 +501,7 @@ PetalburgCity_Movement_PlayerWalkToGym2: @ 81DC67C walk_up step_end -PetalburgCity_Movement_PlayerWalkToGym3: @ 81DC686 +PetalburgCity_Movement_PlayerWalkToGym3: walk_up walk_right walk_right @@ -514,7 +514,7 @@ PetalburgCity_Movement_PlayerWalkToGym3: @ 81DC686 walk_up step_end -PetalburgCity_EventScript_Scott0:: @ 81DC691 +PetalburgCity_EventScript_Scott0:: lockall addobject LOCALID_SCOTT setvar VAR_0x8008, 0 @@ -522,7 +522,7 @@ PetalburgCity_EventScript_Scott0:: @ 81DC691 goto PetalburgCity_EventScript_Scott end -PetalburgCity_EventScript_Scott1:: @ 81DC6A7 +PetalburgCity_EventScript_Scott1:: lockall addobject LOCALID_SCOTT setvar VAR_0x8008, 1 @@ -530,7 +530,7 @@ PetalburgCity_EventScript_Scott1:: @ 81DC6A7 goto PetalburgCity_EventScript_Scott end -PetalburgCity_EventScript_Scott2:: @ 81DC6BD +PetalburgCity_EventScript_Scott2:: lockall addobject LOCALID_SCOTT setvar VAR_0x8008, 2 @@ -538,7 +538,7 @@ PetalburgCity_EventScript_Scott2:: @ 81DC6BD goto PetalburgCity_EventScript_Scott end -PetalburgCity_EventScript_Scott3:: @ 81DC6D3 +PetalburgCity_EventScript_Scott3:: lockall addobject LOCALID_SCOTT setvar VAR_0x8008, 3 @@ -546,7 +546,7 @@ PetalburgCity_EventScript_Scott3:: @ 81DC6D3 goto PetalburgCity_EventScript_Scott end -PetalburgCity_EventScript_Scott:: @ 81DC6E9 +PetalburgCity_EventScript_Scott:: applymovement LOCALID_SCOTT, PetalburgCity_Movement_ScottStartWalkLeft waitmovement 0 playse SE_PIN @@ -584,45 +584,45 @@ PetalburgCity_EventScript_Scott:: @ 81DC6E9 releaseall end -PetalburgCity_EventScript_ScottExit0:: @ 81DC78E +PetalburgCity_EventScript_ScottExit0:: applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_PlayerWatchScottExit0 applymovement LOCALID_SCOTT, PetalburgCity_Movement_ScottExit0 waitmovement 0 return -PetalburgCity_EventScript_ScottExit1:: @ 81DC7A0 +PetalburgCity_EventScript_ScottExit1:: applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_PlayerWatchScottExit1 applymovement LOCALID_SCOTT, PetalburgCity_Movement_ScottExit1 waitmovement 0 return -PetalburgCity_EventScript_ScottExit2:: @ 81DC7B2 +PetalburgCity_EventScript_ScottExit2:: applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_PlayerWatchScottExit2 applymovement LOCALID_SCOTT, PetalburgCity_Movement_ScottExit2 waitmovement 0 return -PetalburgCity_EventScript_ScottExit3:: @ 81DC7C4 +PetalburgCity_EventScript_ScottExit3:: applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_PlayerWatchScottExit3 applymovement LOCALID_SCOTT, PetalburgCity_Movement_ScottExit3 waitmovement 0 return -PetalburgCity_Movement_ScottStartWalkLeft: @ 81DC7D6 +PetalburgCity_Movement_ScottStartWalkLeft: walk_left walk_left walk_left walk_left step_end -PetalburgCity_Movement_ScottApproachPlayer: @ 81DC7DB +PetalburgCity_Movement_ScottApproachPlayer: walk_left walk_left walk_left walk_left step_end -PetalburgCity_Movement_ScottExit0: @ 81DC7E0 +PetalburgCity_Movement_ScottExit0: walk_down walk_down walk_left @@ -638,7 +638,7 @@ PetalburgCity_Movement_ScottExit0: @ 81DC7E0 walk_left step_end -PetalburgCity_Movement_PlayerWatchScottExit0: @ 81DC7EE +PetalburgCity_Movement_PlayerWatchScottExit0: delay_16 walk_in_place_fastest_down delay_16 @@ -647,7 +647,7 @@ PetalburgCity_Movement_PlayerWatchScottExit0: @ 81DC7EE walk_in_place_fastest_left step_end -PetalburgCity_Movement_ScottExit1: @ 81DC7F5 +PetalburgCity_Movement_ScottExit1: walk_down walk_left walk_left @@ -662,7 +662,7 @@ PetalburgCity_Movement_ScottExit1: @ 81DC7F5 walk_left step_end -PetalburgCity_Movement_PlayerWatchScottExit1: @ 81DC802 +PetalburgCity_Movement_PlayerWatchScottExit1: delay_16 walk_in_place_fastest_down delay_16 @@ -670,7 +670,7 @@ PetalburgCity_Movement_PlayerWatchScottExit1: @ 81DC802 walk_in_place_fastest_left step_end -PetalburgCity_Movement_ScottExit2: @ 81DC808 +PetalburgCity_Movement_ScottExit2: walk_down walk_left walk_left @@ -685,7 +685,7 @@ PetalburgCity_Movement_ScottExit2: @ 81DC808 walk_left step_end -PetalburgCity_Movement_PlayerWatchScottExit2: @ 81DC815 +PetalburgCity_Movement_PlayerWatchScottExit2: delay_16 walk_in_place_fastest_down delay_16 @@ -693,7 +693,7 @@ PetalburgCity_Movement_PlayerWatchScottExit2: @ 81DC815 walk_in_place_fastest_left step_end -PetalburgCity_Movement_ScottExit3: @ 81DC81B +PetalburgCity_Movement_ScottExit3: walk_up walk_left walk_left @@ -708,7 +708,7 @@ PetalburgCity_Movement_ScottExit3: @ 81DC81B walk_left step_end -PetalburgCity_Movement_PlayerWatchScottExit3: @ 81DC828 +PetalburgCity_Movement_PlayerWatchScottExit3: delay_16 walk_in_place_fastest_up delay_16 @@ -716,16 +716,16 @@ PetalburgCity_Movement_PlayerWatchScottExit3: @ 81DC828 walk_in_place_fastest_left step_end -PetalburgCity_EventScript_GymBoy:: @ 81DC82E +PetalburgCity_EventScript_GymBoy:: msgbox PetalburgCity_Text_AreYouRookieTrainer, MSGBOX_NPC end -PetalburgCity_Text_WhereIsWally: @ 81DC837 +PetalburgCity_Text_WhereIsWally: .string "Where has our WALLY gone?\p" .string "We have to leave for VERDANTURF TOWN\n" .string "very soon…$" -PetalburgCity_Text_AreYouRookieTrainer: @ 81DC881 +PetalburgCity_Text_AreYouRookieTrainer: .string "Hiya! Are you maybe…\n" .string "A rookie TRAINER?\p" .string "Do you know what POKéMON TRAINERS\n" @@ -733,51 +733,51 @@ PetalburgCity_Text_AreYouRookieTrainer: @ 81DC881 .string "They first check what kind of GYM\n" .string "is in the town.$" -PetalburgCity_Text_ThisIsPetalburgGym: @ 81DC91B +PetalburgCity_Text_ThisIsPetalburgGym: .string "See? This is PETALBURG CITY's GYM.$" -PetalburgCity_Text_ThisIsGymSign: @ 81DC93E +PetalburgCity_Text_ThisIsGymSign: .string "This is the GYM's sign. Look for it\n" .string "whenever you're looking for a GYM.$" -PetalburgCity_Text_WaterReflection: @ 81DC985 +PetalburgCity_Text_WaterReflection: .string "My face is reflected in the water.\p" .string "It's a shining grin full of hope…\p" .string "Or it could be a look of somber silence\n" .string "struggling with fear…\p" .string "What do you see reflected in your face?$" -PetalburgCity_Text_FullPartyExplanation: @ 81DCA30 +PetalburgCity_Text_FullPartyExplanation: .string "Let's say you have six POKéMON.\n" .string "If you catch another one…\p" .string "It is automatically sent to a STORAGE\n" .string "BOX over a PC connection.$" -PetalburgCity_Text_GymSign: @ 81DCAAA +PetalburgCity_Text_GymSign: .string "PETALBURG CITY POKéMON GYM\n" .string "LEADER: NORMAN\l" .string "“A man in pursuit of power!”$" -PetalburgCity_Text_CitySign: @ 81DCAF1 +PetalburgCity_Text_CitySign: .string "PETALBURG CITY\n" .string "“Where people mingle with nature.”$" -PetalburgCity_Text_WallyHouseSign: @ 81DCB23 +PetalburgCity_Text_WallyHouseSign: .string "WALLY'S HOUSE$" -PetalburgCity_Text_AreYouATrainer: @ 81DCB31 +PetalburgCity_Text_AreYouATrainer: .string "Excuse me!\p" .string "Let me guess, from the way you're\n" .string "dressed, are you a POKéMON TRAINER?$" -PetalburgCity_Text_WellMaybeNot: @ 81DCB82 +PetalburgCity_Text_WellMaybeNot: .string "… … … … … …\p" .string "Well, maybe not.\n" .string "Your clothes aren't all that dirty.\p" .string "You're either a rookie TRAINER,\n" .string "or maybe you're just an ordinary kid.$" -PetalburgCity_Text_ImLookingForTalentedTrainers: @ 81DCC09 +PetalburgCity_Text_ImLookingForTalentedTrainers: .string "I'm roaming the land in search of\n" .string "talented TRAINERS.\p" .string "I'm sorry to have taken your time.$" diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index 2bdd5320fb..43e8c4108c 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -2,14 +2,14 @@ .set LOCALID_WALLY, 10 .set LOCALID_WALLYS_DAD, 11 -PetalburgCity_Gym_MapScripts:: @ 8204889 +PetalburgCity_Gym_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, PetalburgCity_Gym_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, PetalburgCity_Gym_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PetalburgCity_Gym_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, PetalburgCity_Gym_OnFrame .byte 0 -PetalburgCity_Gym_OnLoad: @ 820489E +PetalburgCity_Gym_OnLoad: compare VAR_PETALBURG_GYM_STATE, 6 goto_if_eq PetalburgCity_Gym_EventScript_OpenUnlockedDoors compare VAR_PETALBURG_GYM_STATE, 7 @@ -17,7 +17,7 @@ PetalburgCity_Gym_OnLoad: @ 820489E end @ NOTE: Strength and OHKO rooms are misleading. Both are more accurately Critical-Hit -PetalburgCity_Gym_EventScript_OpenUnlockedDoors:: @ 82048B5 +PetalburgCity_Gym_EventScript_OpenUnlockedDoors:: setvar VAR_0x8005, 1 call PetalburgCity_Gym_EventScript_OpenGymEntranceDoors call_if_defeated TRAINER_RANDALL, PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors @@ -29,7 +29,7 @@ PetalburgCity_Gym_EventScript_OpenUnlockedDoors:: @ 82048B5 call_if_defeated TRAINER_BERKE, PetalburgCity_Gym_EventScript_OpenOHKORoomDoors end -PetalburgCity_Gym_EventScript_UnlockAllDoors:: @ 82048FF +PetalburgCity_Gym_EventScript_UnlockAllDoors:: setvar VAR_0x8005, 1 call PetalburgCity_Gym_EventScript_OpenGymEntranceDoors call PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors @@ -41,7 +41,7 @@ PetalburgCity_Gym_EventScript_UnlockAllDoors:: @ 82048FF call PetalburgCity_Gym_EventScript_OpenOHKORoomDoors return -PetalburgCity_Gym_OnTransition: @ 820492D +PetalburgCity_Gym_OnTransition: compare VAR_PETALBURG_GYM_STATE, 1 call_if_eq PetalburgCity_Gym_EventScript_MoveWallyToEntrance compare VAR_PETALBURG_GYM_STATE, 6 @@ -49,15 +49,15 @@ PetalburgCity_Gym_OnTransition: @ 820492D call_if_set FLAG_SYS_GAME_CLEAR, PetalburgCity_Gym_EventScript_CheckNormanForRematch end -PetalburgCity_Gym_EventScript_MoveWallyToEntrance:: @ 820494D +PetalburgCity_Gym_EventScript_MoveWallyToEntrance:: setobjectxyperm LOCALID_WALLY, 5, 108 return -PetalburgCity_Gym_EventScript_MoveNormanToEntrance:: @ 8204955 +PetalburgCity_Gym_EventScript_MoveNormanToEntrance:: setobjectxyperm LOCALID_NORMAN, 4, 107 return -PetalburgCity_Gym_EventScript_CheckNormanForRematch:: @ 820495D +PetalburgCity_Gym_EventScript_CheckNormanForRematch:: setorcopyvar VAR_TRAINER_BATTLE_OPPONENT_A, TRAINER_NORMAN_1 specialvar VAR_RESULT, IsTrainerReadyForRematch compare VAR_RESULT, TRUE @@ -67,23 +67,23 @@ PetalburgCity_Gym_EventScript_CheckNormanForRematch:: @ 820495D setobjectxyperm LOCALID_NORMAN, 4, 107 return -PetalburgCity_Gym_EventScript_DontMoveNormanToFront:: @ 8204985 +PetalburgCity_Gym_EventScript_DontMoveNormanToFront:: setvar VAR_PETALBURG_GYM_STATE, 8 end -PetalburgCity_Gym_OnWarp: @ 820498B +PetalburgCity_Gym_OnWarp: map_script_2 VAR_PETALBURG_GYM_STATE, 1, PetalburgCity_Gym_EventScript_TurnPlayerNorth .2byte 0 -PetalburgCity_Gym_EventScript_TurnPlayerNorth:: @ 8204995 +PetalburgCity_Gym_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -PetalburgCity_Gym_OnFrame: @ 820499A +PetalburgCity_Gym_OnFrame: map_script_2 VAR_PETALBURG_GYM_STATE, 1, PetalburgCity_Gym_EventScript_ReturnFromWallyTutorial .2byte 0 -PetalburgCity_Gym_EventScript_ReturnFromWallyTutorial:: @ 82049A4 +PetalburgCity_Gym_EventScript_ReturnFromWallyTutorial:: lockall msgbox PetalburgCity_Gym_Text_DadSoDidItWorkOut, MSGBOX_DEFAULT msgbox PetalburgCity_Gym_Text_WallyThankYouBye, MSGBOX_DEFAULT @@ -102,14 +102,14 @@ PetalburgCity_Gym_EventScript_ReturnFromWallyTutorial:: @ 82049A4 releaseall end -PetalburgCity_Gym_Movement_WallyExitGym: @ 82049EC +PetalburgCity_Gym_Movement_WallyExitGym: walk_down walk_down walk_down delay_16 step_end -PetalburgCity_Gym_EventScript_Norman:: @ 82049F1 +PetalburgCity_Gym_EventScript_Norman:: lock faceplayer switch VAR_PETALBURG_GYM_STATE @@ -129,27 +129,27 @@ PetalburgCity_Gym_EventScript_Norman:: @ 82049F1 case DIR_EAST, PetalburgCity_Gym_EventScript_BeginWallyTutorialEast end -PetalburgCity_Gym_EventScript_BeginWallyTutorialSouth:: @ 8204A80 +PetalburgCity_Gym_EventScript_BeginWallyTutorialSouth:: setvar VAR_0x8008, 0 goto PetalburgCity_Gym_EventScript_BeginWallyTutorial end -PetalburgCity_Gym_EventScript_BeginWallyTutorialNorth:: @ 8204A8B +PetalburgCity_Gym_EventScript_BeginWallyTutorialNorth:: setvar VAR_0x8008, 1 goto PetalburgCity_Gym_EventScript_BeginWallyTutorial end -PetalburgCity_Gym_EventScript_BeginWallyTutorialWest:: @ 8204A96 +PetalburgCity_Gym_EventScript_BeginWallyTutorialWest:: setvar VAR_0x8008, 2 goto PetalburgCity_Gym_EventScript_BeginWallyTutorial end -PetalburgCity_Gym_EventScript_BeginWallyTutorialEast:: @ 8204AA1 +PetalburgCity_Gym_EventScript_BeginWallyTutorialEast:: setvar VAR_0x8008, 3 goto PetalburgCity_Gym_EventScript_BeginWallyTutorial end -PetalburgCity_Gym_EventScript_BeginWallyTutorial:: @ 8204AAC +PetalburgCity_Gym_EventScript_BeginWallyTutorial:: addobject LOCALID_WALLY playse SE_DOOR compare VAR_0x8008, 0 @@ -203,7 +203,7 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorial:: @ 8204AAC msgbox PetalburgCity_Gym_Text_WouldYouReallyComeWithMe, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_FOLLOW_ME, 0 + playbgm MUS_FOLLOW_ME, FALSE compare VAR_0x8008, 0 call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallySouth compare VAR_0x8008, 1 @@ -225,13 +225,13 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorial:: @ 8204AAC release end -PetalburgCity_Gym_EventScript_WallyArriveSouth:: @ 8204C31 +PetalburgCity_Gym_EventScript_WallyArriveSouth:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyArrive waitmovement 0 return -PetalburgCity_Gym_EventScript_WallyArriveNorth:: @ 8204C43 +PetalburgCity_Gym_EventScript_WallyArriveNorth:: applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyArriveNorth waitmovement 0 applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestRight @@ -239,127 +239,127 @@ PetalburgCity_Gym_EventScript_WallyArriveNorth:: @ 8204C43 waitmovement 0 return -PetalburgCity_Gym_EventScript_WallyArriveWestEast:: @ 8204C5F +PetalburgCity_Gym_EventScript_WallyArriveWestEast:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyArrive waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallySouth:: @ 8204C78 +PetalburgCity_Gym_EventScript_ExitGymWithWallySouth:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyExitSouthWest applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallySouth waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallyNorth:: @ 8204C91 +PetalburgCity_Gym_EventScript_ExitGymWithWallyNorth:: applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyExitNorth applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallyNorth waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallyWest:: @ 8204CA3 +PetalburgCity_Gym_EventScript_ExitGymWithWallyWest:: applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyExitSouthWest applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallyWest waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallyEast:: @ 8204CB5 +PetalburgCity_Gym_EventScript_ExitGymWithWallyEast:: applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyExitEast applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallyEast waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanAddressPlayerSouth:: @ 8204CC7 +PetalburgCity_Gym_EventScript_NormanAddressPlayerSouth:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanAddressPlayerNorth:: @ 8204CD2 +PetalburgCity_Gym_EventScript_NormanAddressPlayerNorth:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanAddressPlayerWest:: @ 8204CE4 +PetalburgCity_Gym_EventScript_NormanAddressPlayerWest:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestRight applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanAddressPlayerEast:: @ 8204CF6 +PetalburgCity_Gym_EventScript_NormanAddressPlayerEast:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestLeft applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanAddressWallySouth:: @ 8204D08 +PetalburgCity_Gym_EventScript_NormanAddressWallySouth:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanAddressWallyNorth:: @ 8204D13 +PetalburgCity_Gym_EventScript_NormanAddressWallyNorth:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanAddressWallyWest:: @ 8204D1E +PetalburgCity_Gym_EventScript_NormanAddressWallyWest:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanAddressWallyEast:: @ 8204D29 +PetalburgCity_Gym_EventScript_NormanAddressWallyEast:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_WallyFacePlayer:: @ 8204D34 +PetalburgCity_Gym_EventScript_WallyFacePlayer:: applymovement LOCALID_WALLY, Common_Movement_FacePlayer waitmovement 0 return -PetalburgCity_Gym_EventScript_WallyFaceDown:: @ 8204D3F +PetalburgCity_Gym_EventScript_WallyFaceDown:: applymovement LOCALID_WALLY, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanNoBadges:: @ 8204D4A +PetalburgCity_Gym_EventScript_NormanNoBadges:: msgbox PetalburgCity_Gym_Text_NormanGoToRustboro, MSGBOX_DEFAULT release end -PetalburgCity_Gym_EventScript_NormanOneBadge:: @ 8204D54 +PetalburgCity_Gym_EventScript_NormanOneBadge:: msgbox PetalburgCity_Gym_Text_NormanGoToDewford, MSGBOX_DEFAULT release end -PetalburgCity_Gym_EventScript_NormanTwoBadges:: @ 8204D5E +PetalburgCity_Gym_EventScript_NormanTwoBadges:: msgbox PetalburgCity_Gym_Text_YouHaveGottenStronger, MSGBOX_DEFAULT release end -PetalburgCity_Gym_EventScript_NormanThreeBadges:: @ 8204D68 +PetalburgCity_Gym_EventScript_NormanThreeBadges:: msgbox PetalburgCity_Gym_Text_YouHaveGottenStronger, MSGBOX_DEFAULT release end -PetalburgCity_Gym_EventScript_NormanFaceDoorSouth:: @ 8204D72 +PetalburgCity_Gym_EventScript_NormanFaceDoorSouth:: return @ For all other NormanFaceDoorX, Norman is already facing the door from NormanAddressWallyX -PetalburgCity_Gym_EventScript_NormanFaceDoorNorth:: @ 8204D73 +PetalburgCity_Gym_EventScript_NormanFaceDoorNorth:: applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_NormanFaceDoorWest:: @ 8204D7E +PetalburgCity_Gym_EventScript_NormanFaceDoorWest:: return -PetalburgCity_Gym_EventScript_NormanFaceDoorEast:: @ 8204D7F +PetalburgCity_Gym_EventScript_NormanFaceDoorEast:: return -PetalburgCity_Gym_EventScript_NormanPostBattle:: @ 8204D80 +PetalburgCity_Gym_EventScript_NormanPostBattle:: call PetalburgCity_Gym_EventScript_ShouldGiveEnigmaBerry compare VAR_RESULT, TRUE goto_if_eq PetalburgCity_Gym_EventScript_GiveEnigmaBerry @@ -369,17 +369,17 @@ PetalburgCity_Gym_EventScript_NormanPostBattle:: @ 8204D80 release end -PetalburgCity_Gym_EventScript_GiveFacade2:: @ 8204DAC +PetalburgCity_Gym_EventScript_GiveFacade2:: call PetalburgCity_Gym_EventScript_GiveFacade release end -PetalburgCity_Gym_EventScript_NormanRematch:: @ 8204DB3 +PetalburgCity_Gym_EventScript_NormanRematch:: trainerbattle_rematch_double TRAINER_NORMAN_1, PetalburgCity_Gym_Text_NormanPreRematch, PetalburgCity_Gym_Text_NormanRematchDefeat, PetalburgCity_Gym_Text_NormanRematchNeedTwoMons msgbox PetalburgCity_Gym_Text_NormanPostRematch, MSGBOX_AUTOCLOSE end -PetalburgCity_Gym_EventScript_ShouldGiveEnigmaBerry:: @ 8204DCE +PetalburgCity_Gym_EventScript_ShouldGiveEnigmaBerry:: specialvar VAR_RESULT, IsEnigmaBerryValid compare VAR_RESULT, FALSE goto_if_eq PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry @@ -395,11 +395,11 @@ PetalburgCity_Gym_EventScript_ShouldGiveEnigmaBerry:: @ 8204DCE setvar VAR_RESULT, TRUE return -PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry:: @ 8204E17 +PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry:: setvar VAR_RESULT, FALSE return -PetalburgCity_Gym_EventScript_GiveEnigmaBerry:: @ 8204E1D +PetalburgCity_Gym_EventScript_GiveEnigmaBerry:: giveitem ITEM_ENIGMA_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -407,7 +407,7 @@ PetalburgCity_Gym_EventScript_GiveEnigmaBerry:: @ 8204E1D release end -PetalburgCity_Gym_EventScript_NormanBattle:: @ 8204E3B +PetalburgCity_Gym_EventScript_NormanBattle:: msgbox PetalburgCity_Gym_Text_NormanIntro, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_NORMAN_1, PetalburgCity_Gym_Text_NormanDefeat message PetalburgCity_Gym_Text_ReceivedBalanceBadge @@ -440,7 +440,7 @@ PetalburgCity_Gym_EventScript_NormanBattle:: @ 8204E3B case DIR_EAST, PetalburgCity_Gym_EventScript_WallysDadArrivesEast end -PetalburgCity_Gym_EventScript_GiveFacade:: @ 8204ED2 +PetalburgCity_Gym_EventScript_GiveFacade:: giveitem ITEM_TM42 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_BagIsFull @@ -448,19 +448,19 @@ PetalburgCity_Gym_EventScript_GiveFacade:: @ 8204ED2 msgbox PetalburgCity_Gym_Text_ExplainFacade, MSGBOX_DEFAULT return -PetalburgCity_Gym_EventScript_WallysDadArrivesNorth:: @ 8204EF5 +PetalburgCity_Gym_EventScript_WallysDadArrivesNorth:: setvar VAR_0x8008, 1 goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysDadArrivesEast:: @ 8204EFF +PetalburgCity_Gym_EventScript_WallysDadArrivesEast:: setvar VAR_0x8008, 2 goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysDadArrivesWest:: @ 8204F09 +PetalburgCity_Gym_EventScript_WallysDadArrivesWest:: setvar VAR_0x8008, 3 goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysDadArrives:: @ 8204F13 +PetalburgCity_Gym_EventScript_WallysDadArrives:: applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadEnterGym waitmovement 0 playse SE_PIN @@ -487,7 +487,7 @@ PetalburgCity_Gym_EventScript_WallysDadArrives:: @ 8204F13 msgbox PetalburgCity_Gym_Text_LetMeBorrowPlayer, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_FOLLOW_ME, 0 + playbgm MUS_FOLLOW_ME, FALSE compare VAR_0x8008, 1 call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth compare VAR_0x8008, 2 @@ -502,22 +502,22 @@ PetalburgCity_Gym_EventScript_WallysDadArrives:: @ 8204F13 release end -PetalburgCity_Gym_EventScript_WallysDadFaceNormanNorth:: @ 8204FCC +PetalburgCity_Gym_EventScript_WallysDadFaceNormanNorth:: applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysDadFaceNormanEast:: @ 8204FD7 +PetalburgCity_Gym_EventScript_WallysDadFaceNormanEast:: applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysDadFaceNormanWest:: @ 8204FE2 +PetalburgCity_Gym_EventScript_WallysDadFaceNormanWest:: applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth:: @ 8204FED +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth:: applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerNorth waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft @@ -525,7 +525,7 @@ PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth:: @ 8204FED waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast:: @ 8205009 +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast:: applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerEast waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown @@ -533,7 +533,7 @@ PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast:: @ 8205009 waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest:: @ 8205025 +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest:: applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerWest waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown @@ -541,26 +541,26 @@ PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest:: @ 8205025 waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth:: @ 8205041 +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth:: applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitNorth applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadNorth waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysDadEast:: @ 820505A +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadEast:: applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitEast applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadEast waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysDadWest:: @ 820506C +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadWest:: applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitWest applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadWest waitmovement 0 return -PetalburgCity_Gym_Movement_WallysDadExitNorth: @ 820507E +PetalburgCity_Gym_Movement_WallysDadExitNorth: walk_down walk_down walk_left @@ -573,7 +573,7 @@ PetalburgCity_Gym_Movement_WallysDadExitNorth: @ 820507E set_invisible step_end -PetalburgCity_Gym_Movement_WallysDadExitEast: @ 8205089 +PetalburgCity_Gym_Movement_WallysDadExitEast: walk_down walk_down walk_left @@ -586,7 +586,7 @@ PetalburgCity_Gym_Movement_WallysDadExitEast: @ 8205089 set_invisible step_end -PetalburgCity_Gym_Movement_WallysDadExitWest: @ 8205094 +PetalburgCity_Gym_Movement_WallysDadExitWest: walk_down walk_down walk_left @@ -601,7 +601,7 @@ PetalburgCity_Gym_Movement_WallysDadExitWest: @ 8205094 set_invisible step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysDadNorth: @ 82050A1 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadNorth: delay_16 walk_down walk_down @@ -611,7 +611,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysDadNorth: @ 82050A1 walk_down step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysDadEast: @ 82050A9 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadEast: delay_16 walk_down walk_down @@ -621,7 +621,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysDadEast: @ 82050A9 walk_down step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysDadWest: @ 82050B1 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadWest: delay_16 walk_down walk_down @@ -633,7 +633,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysDadWest: @ 82050B1 walk_down step_end -PetalburgCity_Gym_Movement_WallysDadEnterGym: @ 82050BB +PetalburgCity_Gym_Movement_WallysDadEnterGym: walk_up delay_8 walk_in_place_fastest_right @@ -643,7 +643,7 @@ PetalburgCity_Gym_Movement_WallysDadEnterGym: @ 82050BB walk_in_place_fastest_up step_end -PetalburgCity_Gym_Movement_WallysDadApproachPlayerNorth: @ 82050C3 +PetalburgCity_Gym_Movement_WallysDadApproachPlayerNorth: walk_right walk_right walk_up @@ -652,7 +652,7 @@ PetalburgCity_Gym_Movement_WallysDadApproachPlayerNorth: @ 82050C3 walk_in_place_fastest_right step_end -PetalburgCity_Gym_Movement_WallysDadApproachPlayerEast: @ 82050CA +PetalburgCity_Gym_Movement_WallysDadApproachPlayerEast: walk_right walk_right walk_up @@ -660,7 +660,7 @@ PetalburgCity_Gym_Movement_WallysDadApproachPlayerEast: @ 82050CA walk_up step_end -PetalburgCity_Gym_Movement_WallysDadApproachPlayerWest: @ 82050D0 +PetalburgCity_Gym_Movement_WallysDadApproachPlayerWest: walk_right walk_right walk_up @@ -670,7 +670,7 @@ PetalburgCity_Gym_Movement_WallysDadApproachPlayerWest: @ 82050D0 walk_up step_end -PetalburgCity_Gym_Movement_Unused: @ 82050D8 +PetalburgCity_Gym_Movement_Unused: walk_in_place_fastest_up delay_16 delay_16 @@ -681,7 +681,7 @@ PetalburgCity_Gym_Movement_Unused: @ 82050D8 walk_in_place_fastest_down step_end -PetalburgCity_Gym_Movement_WallyArriveNorth: @ 82050E1 +PetalburgCity_Gym_Movement_WallyArriveNorth: delay_16 walk_up delay_16 @@ -693,7 +693,7 @@ PetalburgCity_Gym_Movement_WallyArriveNorth: @ 82050E1 walk_in_place_fastest_left step_end -PetalburgCity_Gym_Movement_WallyArrive: @ 82050EB +PetalburgCity_Gym_Movement_WallyArrive: delay_16 walk_up delay_16 @@ -702,7 +702,7 @@ PetalburgCity_Gym_Movement_WallyArrive: @ 82050EB walk_up step_end -PetalburgCity_Gym_Movement_WallyExitNorth: @ 82050F2 +PetalburgCity_Gym_Movement_WallyExitNorth: walk_down walk_down walk_down @@ -712,7 +712,7 @@ PetalburgCity_Gym_Movement_WallyExitNorth: @ 82050F2 walk_in_place_down step_end -PetalburgCity_Gym_Movement_WallyExitEast: @ 82050FA +PetalburgCity_Gym_Movement_WallyExitEast: walk_down walk_down walk_right @@ -722,7 +722,7 @@ PetalburgCity_Gym_Movement_WallyExitEast: @ 82050FA walk_in_place_down step_end -PetalburgCity_Gym_Movement_WallyExitSouthWest: @ 8205102 +PetalburgCity_Gym_Movement_WallyExitSouthWest: walk_down walk_down walk_down @@ -731,7 +731,7 @@ PetalburgCity_Gym_Movement_WallyExitSouthWest: @ 8205102 walk_in_place_down step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallyNorth: @ 8205109 +PetalburgCity_Gym_Movement_PlayerExitWithWallyNorth: delay_16 delay_16 delay_16 @@ -741,7 +741,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallyNorth: @ 8205109 delay_8 step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallySouth: @ 8205111 +PetalburgCity_Gym_Movement_PlayerExitWithWallySouth: delay_16 delay_16 walk_right @@ -753,7 +753,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallySouth: @ 8205111 delay_8 step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallyWest: @ 820511B +PetalburgCity_Gym_Movement_PlayerExitWithWallyWest: delay_16 delay_16 walk_down @@ -763,7 +763,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallyWest: @ 820511B delay_8 step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallyEast: @ 8205123 +PetalburgCity_Gym_Movement_PlayerExitWithWallyEast: walk_in_place_fastest_down delay_16 delay_16 @@ -775,12 +775,12 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallyEast: @ 8205123 delay_8 step_end -PetalburgCity_Gym_EventScript_NoAmountOfTrainingIsEnough:: @ 820512D +PetalburgCity_Gym_EventScript_NoAmountOfTrainingIsEnough:: msgbox PetalburgCity_Gym_Text_DadNoAmountOfTrainingIsEnough, MSGBOX_DEFAULT release end -PetalburgCity_Gym_EventScript_SpeedRoomDoor:: @ 8205137 +PetalburgCity_Gym_EventScript_SpeedRoomDoor:: lockall compare VAR_PETALBURG_GYM_STATE, 6 goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked @@ -793,7 +793,7 @@ PetalburgCity_Gym_EventScript_SpeedRoomDoor:: @ 8205137 goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_EnterRoom:: @ 820516C +PetalburgCity_Gym_EventScript_EnterRoom:: closemessage delay 30 warpdoor MAP_PETALBURG_CITY_GYM, 255, VAR_0x8008, VAR_0x8009 @@ -801,17 +801,17 @@ PetalburgCity_Gym_EventScript_EnterRoom:: @ 820516C releaseall end -PetalburgCity_Gym_EventScript_DontEnterRoom:: @ 820517B +PetalburgCity_Gym_EventScript_DontEnterRoom:: releaseall end -PetalburgCity_Gym_EventScript_DoorLocked:: @ 820517D +PetalburgCity_Gym_EventScript_DoorLocked:: msgbox PetalburgCity_Gym_Text_DoorAppearsLocked, MSGBOX_DEFAULT releaseall end @ VAR_0x8008 and VAR_0x8009 below are the x and y coordinates of the warp -PetalburgCity_Gym_EventScript_AccuracyRoomDoor:: @ 8205187 +PetalburgCity_Gym_EventScript_AccuracyRoomDoor:: lockall compare VAR_PETALBURG_GYM_STATE, 6 goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked @@ -824,7 +824,7 @@ PetalburgCity_Gym_EventScript_AccuracyRoomDoor:: @ 8205187 goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_ConfusionRoomDoor:: @ 82051BC +PetalburgCity_Gym_EventScript_ConfusionRoomDoor:: lockall goto_if_not_defeated TRAINER_RANDALL, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 @@ -836,7 +836,7 @@ PetalburgCity_Gym_EventScript_ConfusionRoomDoor:: @ 82051BC goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_LeftDefenseRoomDoor:: @ 82051EF +PetalburgCity_Gym_EventScript_LeftDefenseRoomDoor:: lockall goto_if_not_defeated TRAINER_RANDALL, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 @@ -848,7 +848,7 @@ PetalburgCity_Gym_EventScript_LeftDefenseRoomDoor:: @ 82051EF goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_RightDefenseRoomDoor:: @ 8205222 +PetalburgCity_Gym_EventScript_RightDefenseRoomDoor:: lockall goto_if_not_defeated TRAINER_MARY, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 @@ -860,7 +860,7 @@ PetalburgCity_Gym_EventScript_RightDefenseRoomDoor:: @ 8205222 goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_RecoveryRoomDoor:: @ 8205255 +PetalburgCity_Gym_EventScript_RecoveryRoomDoor:: lockall goto_if_not_defeated TRAINER_MARY, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 @@ -872,7 +872,7 @@ PetalburgCity_Gym_EventScript_RecoveryRoomDoor:: @ 8205255 goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_LeftStrengthRoomDoor:: @ 8205288 +PetalburgCity_Gym_EventScript_LeftStrengthRoomDoor:: lockall goto_if_not_defeated TRAINER_PARKER, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 @@ -884,7 +884,7 @@ PetalburgCity_Gym_EventScript_LeftStrengthRoomDoor:: @ 8205288 goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_RightStrengthRoomDoor:: @ 82052BB +PetalburgCity_Gym_EventScript_RightStrengthRoomDoor:: lockall goto_if_not_defeated TRAINER_ALEXIA, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 @@ -896,7 +896,7 @@ PetalburgCity_Gym_EventScript_RightStrengthRoomDoor:: @ 82052BB goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_LeftOHKORoomDoor:: @ 82052EE +PetalburgCity_Gym_EventScript_LeftOHKORoomDoor:: lockall goto_if_not_defeated TRAINER_ALEXIA, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 @@ -908,7 +908,7 @@ PetalburgCity_Gym_EventScript_LeftOHKORoomDoor:: @ 82052EE goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_RightOHKORoomDoor:: @ 8205321 +PetalburgCity_Gym_EventScript_RightOHKORoomDoor:: lockall goto_if_not_defeated TRAINER_GEORGE, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 @@ -920,7 +920,7 @@ PetalburgCity_Gym_EventScript_RightOHKORoomDoor:: @ 8205321 goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_LeftGymLeadersRoomDoor:: @ 8205354 +PetalburgCity_Gym_EventScript_LeftGymLeadersRoomDoor:: lockall goto_if_not_defeated TRAINER_JODY, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 @@ -932,7 +932,7 @@ PetalburgCity_Gym_EventScript_LeftGymLeadersRoomDoor:: @ 8205354 goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_RightGymLeadersRoomDoor:: @ 8205387 +PetalburgCity_Gym_EventScript_RightGymLeadersRoomDoor:: lockall goto_if_not_defeated TRAINER_BERKE, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 @@ -944,128 +944,128 @@ PetalburgCity_Gym_EventScript_RightGymLeadersRoomDoor:: @ 8205387 goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom end -PetalburgCity_Gym_EventScript_Randall:: @ 82053BA +PetalburgCity_Gym_EventScript_Randall:: trainerbattle_single TRAINER_RANDALL, PetalburgCity_Gym_Text_RandallIntro, PetalburgCity_Gym_Text_RandallDefeat, PetalburgCity_Gym_EventScript_SlideOpenSpeedRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_RandallPostBadge msgbox PetalburgCity_Gym_Text_RandallPostBattle, MSGBOX_AUTOCLOSE end -PetalburgCity_Gym_EventScript_SlideOpenSpeedRoomDoors:: @ 82053DE +PetalburgCity_Gym_EventScript_SlideOpenSpeedRoomDoors:: setvar VAR_0x8005, 0 call PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors special DrawWholeMapView release end -PetalburgCity_Gym_EventScript_RandallPostBadge:: @ 82053ED +PetalburgCity_Gym_EventScript_RandallPostBadge:: msgbox PetalburgCity_Gym_Text_RandallPostBadge, MSGBOX_NPC end -PetalburgCity_Gym_EventScript_Parker:: @ 82053F6 +PetalburgCity_Gym_EventScript_Parker:: trainerbattle_single TRAINER_PARKER, PetalburgCity_Gym_Text_ParkerIntro, PetalburgCity_Gym_Text_ParkerDefeat, PetalburgCity_Gym_EventScript_SlideOpenConfusionRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_ParkerPostBadge msgbox PetalburgCity_Gym_Text_ParkerPostBattle, MSGBOX_AUTOCLOSE end -PetalburgCity_Gym_EventScript_SlideOpenConfusionRoomDoors:: @ 820541A +PetalburgCity_Gym_EventScript_SlideOpenConfusionRoomDoors:: setvar VAR_0x8005, 0 call PetalburgCity_Gym_EventScript_OpenConfusionRoomDoors special DrawWholeMapView release end -PetalburgCity_Gym_EventScript_ParkerPostBadge:: @ 8205429 +PetalburgCity_Gym_EventScript_ParkerPostBadge:: msgbox PetalburgCity_Gym_Text_ParkerPostBadge, MSGBOX_NPC end -PetalburgCity_Gym_EventScript_George:: @ 8205432 +PetalburgCity_Gym_EventScript_George:: trainerbattle_single TRAINER_GEORGE, PetalburgCity_Gym_Text_GeorgeIntro, PetalburgCity_Gym_Text_GeorgeDefeat, PetalburgCity_Gym_EventScript_SlideOpenRecoveryRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_GeorgePostBadge msgbox PetalburgCity_Gym_Text_GeorgePostBattle, MSGBOX_AUTOCLOSE end -PetalburgCity_Gym_EventScript_SlideOpenRecoveryRoomDoors:: @ 8205456 +PetalburgCity_Gym_EventScript_SlideOpenRecoveryRoomDoors:: setvar VAR_0x8005, 0 call PetalburgCity_Gym_EventScript_OpenRecoveryRoomDoors special DrawWholeMapView release end -PetalburgCity_Gym_EventScript_GeorgePostBadge:: @ 8205465 +PetalburgCity_Gym_EventScript_GeorgePostBadge:: msgbox PetalburgCity_Gym_Text_GeorgePostBadge, MSGBOX_NPC end -PetalburgCity_Gym_EventScript_Berke:: @ 820546E +PetalburgCity_Gym_EventScript_Berke:: trainerbattle_single TRAINER_BERKE, PetalburgCity_Gym_Text_BerkeIntro, PetalburgCity_Gym_Text_BerkeDefeat, PetalburgCity_Gym_EventScript_SlideOpenOHKORoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_BerkePostBadge msgbox PetalburgCity_Gym_Text_BerkePostBattle, MSGBOX_AUTOCLOSE end -PetalburgCity_Gym_EventScript_SlideOpenOHKORoomDoors:: @ 8205492 +PetalburgCity_Gym_EventScript_SlideOpenOHKORoomDoors:: setvar VAR_0x8005, 0 call PetalburgCity_Gym_EventScript_OpenOHKORoomDoors special DrawWholeMapView release end -PetalburgCity_Gym_EventScript_BerkePostBadge:: @ 82054A1 +PetalburgCity_Gym_EventScript_BerkePostBadge:: msgbox PetalburgCity_Gym_Text_BerkePostBadge, MSGBOX_NPC end -PetalburgCity_Gym_EventScript_Mary:: @ 82054AA +PetalburgCity_Gym_EventScript_Mary:: trainerbattle_single TRAINER_MARY, PetalburgCity_Gym_Text_MaryIntro, PetalburgCity_Gym_Text_MaryDefeat, PetalburgCity_Gym_EventScript_SlideOpenAccuracyRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_MaryPostBadge msgbox PetalburgCity_Gym_Text_MaryPostBattle, MSGBOX_AUTOCLOSE end -PetalburgCity_Gym_EventScript_SlideOpenAccuracyRoomDoors:: @ 82054CE +PetalburgCity_Gym_EventScript_SlideOpenAccuracyRoomDoors:: setvar VAR_0x8005, 0 call PetalburgCity_Gym_EventScript_OpenAccuracyRoomDoors special DrawWholeMapView release end -PetalburgCity_Gym_EventScript_MaryPostBadge:: @ 82054DD +PetalburgCity_Gym_EventScript_MaryPostBadge:: msgbox PetalburgCity_Gym_Text_MaryPostBadge, MSGBOX_NPC end -PetalburgCity_Gym_EventScript_Alexia:: @ 82054E6 +PetalburgCity_Gym_EventScript_Alexia:: trainerbattle_single TRAINER_ALEXIA, PetalburgCity_Gym_Text_AlexiaIntro, PetalburgCity_Gym_Text_AlexiaDefeat, PetalburgCity_Gym_EventScript_SlideOpenDefenseRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_AlexiaPostBadge msgbox PetalburgCity_Gym_Text_AlexiaPostBattle, MSGBOX_AUTOCLOSE end -PetalburgCity_Gym_EventScript_SlideOpenDefenseRoomDoors:: @ 820550A +PetalburgCity_Gym_EventScript_SlideOpenDefenseRoomDoors:: setvar VAR_0x8005, 0 call PetalburgCity_Gym_EventScript_OpenDefenseRoomDoors special DrawWholeMapView release end -PetalburgCity_Gym_EventScript_AlexiaPostBadge:: @ 8205519 +PetalburgCity_Gym_EventScript_AlexiaPostBadge:: msgbox PetalburgCity_Gym_Text_AlexiaPostBadge, MSGBOX_NPC end -PetalburgCity_Gym_EventScript_Jody:: @ 8205522 +PetalburgCity_Gym_EventScript_Jody:: trainerbattle_single TRAINER_JODY, PetalburgCity_Gym_Text_JodyIntro, PetalburgCity_Gym_Text_JodyDefeat, PetalburgCity_Gym_EventScript_SlideOpenStrengthRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_JodyPostBadge msgbox PetalburgCity_Gym_Text_JodyPostBattle, MSGBOX_AUTOCLOSE end -PetalburgCity_Gym_EventScript_SlideOpenStrengthRoomDoors:: @ 8205546 +PetalburgCity_Gym_EventScript_SlideOpenStrengthRoomDoors:: setvar VAR_0x8005, 0 call PetalburgCity_Gym_EventScript_OpenStrengthRoomDoors special DrawWholeMapView release end -PetalburgCity_Gym_EventScript_JodyPostBadge:: @ 8205555 +PetalburgCity_Gym_EventScript_JodyPostBadge:: msgbox PetalburgCity_Gym_Text_JodyPostBadge, MSGBOX_NPC end @ VAR_0x8004 below is the room number @ VAR_0x8005 below is 0 when the door should be slid open and 1 when it should be unlocked immediately -PetalburgCity_Gym_EventScript_OpenGymEntranceDoors:: @ 820555E +PetalburgCity_Gym_EventScript_OpenGymEntranceDoors:: setvar VAR_0x8004, 1 compare VAR_0x8005, 0 call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors @@ -1074,7 +1074,7 @@ PetalburgCity_Gym_EventScript_OpenGymEntranceDoors:: @ 820555E call PetalburgCity_Gym_EventScript_SetEntranceRoomDoorMetatiles return -PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors:: @ 820557F +PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors:: setvar VAR_0x8004, 2 compare VAR_0x8005, 0 call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors @@ -1083,7 +1083,7 @@ PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors:: @ 820557F call PetalburgCity_Gym_EventScript_SetSpeedRoomDoorMetatiles return -PetalburgCity_Gym_EventScript_OpenAccuracyRoomDoors:: @ 82055A0 +PetalburgCity_Gym_EventScript_OpenAccuracyRoomDoors:: setvar VAR_0x8004, 3 compare VAR_0x8005, 0 call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors @@ -1092,7 +1092,7 @@ PetalburgCity_Gym_EventScript_OpenAccuracyRoomDoors:: @ 82055A0 call PetalburgCity_Gym_EventScript_SetAccuracyRoomDoorMetatiles return -PetalburgCity_Gym_EventScript_OpenConfusionRoomDoors:: @ 82055C1 +PetalburgCity_Gym_EventScript_OpenConfusionRoomDoors:: setvar VAR_0x8004, 4 compare VAR_0x8005, 0 call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors @@ -1101,7 +1101,7 @@ PetalburgCity_Gym_EventScript_OpenConfusionRoomDoors:: @ 82055C1 call PetalburgCity_Gym_EventScript_SetConfusionRoomDoorMetatiles return -PetalburgCity_Gym_EventScript_OpenDefenseRoomDoors:: @ 82055E2 +PetalburgCity_Gym_EventScript_OpenDefenseRoomDoors:: setvar VAR_0x8004, 5 compare VAR_0x8005, 0 call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors @@ -1110,7 +1110,7 @@ PetalburgCity_Gym_EventScript_OpenDefenseRoomDoors:: @ 82055E2 call PetalburgCity_Gym_EventScript_SetDefenseRoomDoorMetatiles return -PetalburgCity_Gym_EventScript_OpenRecoveryRoomDoors:: @ 8205603 +PetalburgCity_Gym_EventScript_OpenRecoveryRoomDoors:: setvar VAR_0x8004, 6 compare VAR_0x8005, 0 call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors @@ -1119,7 +1119,7 @@ PetalburgCity_Gym_EventScript_OpenRecoveryRoomDoors:: @ 8205603 call PetalburgCity_Gym_EventScript_SetRecoveryRoomDoorMetatiles return -PetalburgCity_Gym_EventScript_OpenStrengthRoomDoors:: @ 8205624 +PetalburgCity_Gym_EventScript_OpenStrengthRoomDoors:: setvar VAR_0x8004, 7 compare VAR_0x8005, 0 call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors @@ -1128,7 +1128,7 @@ PetalburgCity_Gym_EventScript_OpenStrengthRoomDoors:: @ 8205624 call PetalburgCity_Gym_EventScript_SetStrengthRoomDoorMetatiles return -PetalburgCity_Gym_EventScript_OpenOHKORoomDoors:: @ 8205645 +PetalburgCity_Gym_EventScript_OpenOHKORoomDoors:: setvar VAR_0x8004, 8 compare VAR_0x8005, 0 call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors @@ -1137,64 +1137,64 @@ PetalburgCity_Gym_EventScript_OpenOHKORoomDoors:: @ 8205645 call PetalburgCity_Gym_EventScript_SetOHKORoomDoorMetatiles return -PetalburgCity_Gym_EventScript_SetEntranceRoomDoorMetatiles:: @ 8205666 +PetalburgCity_Gym_EventScript_SetEntranceRoomDoorMetatiles:: setmetatile 6, 85, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 7, 85, METATILE_PetalburgGym_RoomEntrance_Right, 0 setmetatile 1, 98, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 2, 98, METATILE_PetalburgGym_RoomEntrance_Right, 0 return -PetalburgCity_Gym_EventScript_SetSpeedRoomDoorMetatiles:: @ 820568B +PetalburgCity_Gym_EventScript_SetSpeedRoomDoorMetatiles:: setmetatile 6, 46, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 7, 46, METATILE_PetalburgGym_RoomEntrance_Right, 0 setmetatile 1, 59, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 2, 59, METATILE_PetalburgGym_RoomEntrance_Right, 0 return -PetalburgCity_Gym_EventScript_SetAccuracyRoomDoorMetatiles:: @ 82056B0 +PetalburgCity_Gym_EventScript_SetAccuracyRoomDoorMetatiles:: setmetatile 6, 59, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 7, 59, METATILE_PetalburgGym_RoomEntrance_Right, 0 setmetatile 1, 72, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 2, 72, METATILE_PetalburgGym_RoomEntrance_Right, 0 return -PetalburgCity_Gym_EventScript_SetConfusionRoomDoorMetatiles:: @ 82056D5 +PetalburgCity_Gym_EventScript_SetConfusionRoomDoorMetatiles:: setmetatile 1, 20, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 2, 20, METATILE_PetalburgGym_RoomEntrance_Right, 0 return -PetalburgCity_Gym_EventScript_SetDefenseRoomDoorMetatiles:: @ 82056E8 +PetalburgCity_Gym_EventScript_SetDefenseRoomDoorMetatiles:: setmetatile 6, 20, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 7, 20, METATILE_PetalburgGym_RoomEntrance_Right, 0 setmetatile 1, 33, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 2, 33, METATILE_PetalburgGym_RoomEntrance_Right, 0 return -PetalburgCity_Gym_EventScript_SetRecoveryRoomDoorMetatiles:: @ 820570D +PetalburgCity_Gym_EventScript_SetRecoveryRoomDoorMetatiles:: setmetatile 6, 33, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 7, 33, METATILE_PetalburgGym_RoomEntrance_Right, 0 return -PetalburgCity_Gym_EventScript_SetStrengthRoomDoorMetatiles:: @ 8205720 +PetalburgCity_Gym_EventScript_SetStrengthRoomDoorMetatiles:: setmetatile 1, 7, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 2, 7, METATILE_PetalburgGym_RoomEntrance_Right, 0 return -PetalburgCity_Gym_EventScript_SetOHKORoomDoorMetatiles:: @ 8205733 +PetalburgCity_Gym_EventScript_SetOHKORoomDoorMetatiles:: setmetatile 6, 7, METATILE_PetalburgGym_RoomEntrance_Left, 0 setmetatile 7, 7, METATILE_PetalburgGym_RoomEntrance_Right, 0 return -PetalburgCity_Gym_EventScript_SlideOpenRoomDoors:: @ 8205746 +PetalburgCity_Gym_EventScript_SlideOpenRoomDoors:: special PetalburgGymSlideOpenRoomDoors waitstate return -PetalburgCity_Gym_EventScript_UnlockRoomDoors:: @ 820574B +PetalburgCity_Gym_EventScript_UnlockRoomDoors:: special PetalburgGymUnlockRoomDoors return -PetalburgCity_Gym_EventScript_GymGuide:: @ 820574F +PetalburgCity_Gym_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_GymGuidePostVictory @@ -1202,34 +1202,34 @@ PetalburgCity_Gym_EventScript_GymGuide:: @ 820574F release end -PetalburgCity_Gym_EventScript_GymGuidePostVictory:: @ 8205764 +PetalburgCity_Gym_EventScript_GymGuidePostVictory:: msgbox PetalburgCity_Gym_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end -PetalburgCity_Gym_EventScript_LeftGymStatue:: @ 820576E +PetalburgCity_Gym_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE05_GET, PetalburgCity_Gym_EventScript_GymStatueCertified goto PetalburgCity_Gym_EventScript_GymStatue end -PetalburgCity_Gym_EventScript_RightGymStatue:: @ 820577E +PetalburgCity_Gym_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE05_GET, PetalburgCity_Gym_EventScript_GymStatueCertified goto PetalburgCity_Gym_EventScript_GymStatue end -PetalburgCity_Gym_EventScript_GymStatueCertified:: @ 820578E +PetalburgCity_Gym_EventScript_GymStatueCertified:: msgbox PetalburgCity_Gym_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end -PetalburgCity_Gym_EventScript_GymStatue:: @ 8205798 +PetalburgCity_Gym_EventScript_GymStatue:: msgbox PetalburgCity_Gym_Text_GymStatue, MSGBOX_DEFAULT releaseall end -PetalburgCity_Gym_Text_DadYoureHereWithYourPokemon: @ 82057A2 +PetalburgCity_Gym_Text_DadYoureHereWithYourPokemon: .string "DAD: Hm?\p" .string "Well, if it isn't {PLAYER}!\n" .string "So you're all finished moving in?\p" @@ -1242,15 +1242,15 @@ PetalburgCity_Gym_Text_DadYoureHereWithYourPokemon: @ 82057A2 .string "That's great news!\n" .string "I'll be looking forward to it!$" -PetalburgCity_Gym_Text_WallyIdLikeAPokemon: @ 82058B1 +PetalburgCity_Gym_Text_WallyIdLikeAPokemon: .string "Um… I…\n" .string "I'd like to get a POKéMON, please…$" -PetalburgCity_Gym_Text_DadOhYoureWallyRight: @ 82058DB +PetalburgCity_Gym_Text_DadOhYoureWallyRight: .string "DAD: Hm? You're… Uh… Oh, right.\n" .string "You're WALLY, right?$" -PetalburgCity_Gym_Text_WallyIveNeverCaughtAPokemon: @ 8205910 +PetalburgCity_Gym_Text_WallyIveNeverCaughtAPokemon: .string "WALLY: I'm going to go stay with my\n" .string "relatives in VERDANTURF TOWN.\p" .string "I thought I would be lonely by myself,\n" @@ -1258,38 +1258,38 @@ PetalburgCity_Gym_Text_WallyIveNeverCaughtAPokemon: @ 8205910 .string "But I've never caught a POKéMON before.\n" .string "I don't know how…$" -PetalburgCity_Gym_Text_DadHmISee: @ 82059D8 +PetalburgCity_Gym_Text_DadHmISee: .string "DAD: Hm. I see.$" -PetalburgCity_Gym_Text_DadPlayerGoWithWally: @ 82059E8 +PetalburgCity_Gym_Text_DadPlayerGoWithWally: .string "DAD: {PLAYER}, you heard that,\n" .string "right?\p" .string "Go with WALLY and make sure that he\n" .string "safely catches a POKéMON.$" -PetalburgCity_Gym_Text_IllLoanYouMyZigzagoon: @ 8205A46 +PetalburgCity_Gym_Text_IllLoanYouMyZigzagoon: .string "WALLY, here, I'll loan you my POKéMON.\p" .string "WALLY received a ZIGZAGOON!$" -PetalburgCity_Gym_Text_WallyThankYouAndDadGivesPokeBall: @ 8205A89 +PetalburgCity_Gym_Text_WallyThankYouAndDadGivesPokeBall: .string "WALLY: Oh, wow!\n" .string "A POKéMON!\p" .string "DAD: Hm. I'll give you a POKé BALL, too.\n" .string "Go for it!\p" .string "WALLY received a POKé BALL!$" -PetalburgCity_Gym_Text_WallyOhWowThankYou: @ 8205AF4 +PetalburgCity_Gym_Text_WallyOhWowThankYou: .string "WALLY: Oh, wow!\n" .string "Thank you!$" -PetalburgCity_Gym_Text_WouldYouReallyComeWithMe: @ 8205B0F +PetalburgCity_Gym_Text_WouldYouReallyComeWithMe: .string "{PLAYER}… Would you really come\n" .string "with me?$" -PetalburgCity_Gym_Text_DadSoDidItWorkOut: @ 8205B32 +PetalburgCity_Gym_Text_DadSoDidItWorkOut: .string "DAD: So, did it work out?$" -PetalburgCity_Gym_Text_WallyThankYouBye: @ 8205B4C +PetalburgCity_Gym_Text_WallyThankYouBye: .string "WALLY: Thank you, yes, it did.\n" .string "Here's your POKéMON back.\p" .string "{PLAYER}, thank you for coming along\n" @@ -1302,7 +1302,7 @@ PetalburgCity_Gym_Text_WallyThankYouBye: @ 8205B4C .string "so I have to go!\p" .string "Bye, {PLAYER}!$" -PetalburgCity_Gym_Text_DadGoCollectBadges: @ 8205C40 +PetalburgCity_Gym_Text_DadGoCollectBadges: .string "DAD: Now…\p" .string "{PLAYER}, if you want to become a\n" .string "strong TRAINER, here's my advice.\p" @@ -1319,7 +1319,7 @@ PetalburgCity_Gym_Text_DadGoCollectBadges: @ 8205C40 .string "But that's only after you become\n" .string "stronger.$" -PetalburgCity_Gym_Text_NormanGoToRustboro: @ 8205DB4 +PetalburgCity_Gym_Text_NormanGoToRustboro: .string "DAD: Hm? Aren't you going to the\n" .string "POKéMON GYM in RUSTBORO CITY?\p" .string "There's no challenge for me to\n" @@ -1329,7 +1329,7 @@ PetalburgCity_Gym_Text_NormanGoToRustboro: @ 8205DB4 .string "I'll battle you, {PLAYER}, when you\n" .string "can show me four GYM BADGES, okay?$" -PetalburgCity_Gym_Text_NormanGoToDewford: @ 8205EAE +PetalburgCity_Gym_Text_NormanGoToDewford: .string "DAD: I see… So, you've beaten\n" .string "the GYM LEADER in RUSTBORO CITY.\p" .string "But there are many more TRAINERS\n" @@ -1338,13 +1338,13 @@ PetalburgCity_Gym_Text_NormanGoToDewford: @ 8205EAE .string "GYM LEADER named BRAWLY.\p" .string "You should go challenge him.$" -PetalburgCity_Gym_Text_YouHaveGottenStronger: @ 8205F87 +PetalburgCity_Gym_Text_YouHaveGottenStronger: .string "DAD: Hm… {PLAYER}, you have gotten\n" .string "stronger.\p" .string "I can tell by the number of BADGES\n" .string "that you've earned.$" -PetalburgCity_Gym_Text_NormanIntro: @ 8205FE5 +PetalburgCity_Gym_Text_NormanIntro: .string "DAD: Hm…\n" .string "So, you did get four GYM BADGES.\p" .string "Fine, as I promised, we will have\n" @@ -1358,7 +1358,7 @@ PetalburgCity_Gym_Text_NormanIntro: @ 8205FE5 .string "{PLAYER}, you'd better give it your\n" .string "best shot, too!$" -PetalburgCity_Gym_Text_NormanDefeat: @ 8206107 +PetalburgCity_Gym_Text_NormanDefeat: .string "…\p" .string "I… I can't…\p" .string "I can't believe it. {PLAYER}…\p" @@ -1366,11 +1366,11 @@ PetalburgCity_Gym_Text_NormanDefeat: @ 8206107 .string "But, rules are rules!\n" .string "Here, take this.$" -PetalburgCity_Gym_Text_ReceivedBalanceBadge: @ 8206162 +PetalburgCity_Gym_Text_ReceivedBalanceBadge: .string "{PLAYER} received the BALANCE BADGE\n" .string "from DAD!$" -PetalburgCity_Gym_Text_ExplainBalanceBadgeTakeThis: @ 820618A +PetalburgCity_Gym_Text_ExplainBalanceBadgeTakeThis: .string "DAD: With that BADGE, the DEFENSE\n" .string "of all your POKéMON will increase.\p" .string "POKéMON that know the HM move SURF\n" @@ -1378,7 +1378,7 @@ PetalburgCity_Gym_Text_ExplainBalanceBadgeTakeThis: @ 820618A .string "This is my gift to you. {PLAYER}, I'm\n" .string "sure you can use it correctly.$" -PetalburgCity_Gym_Text_ExplainFacade: @ 8206254 +PetalburgCity_Gym_Text_ExplainFacade: .string "DAD: TM42 contains FACADE.\p" .string "It doubles the power of moves if\n" .string "the POKéMON is poisoned, paralyzed,\l" @@ -1386,23 +1386,23 @@ PetalburgCity_Gym_Text_ExplainFacade: @ 8206254 .string "It might be able to turn a bad\n" .string "situation into an advantage.$" -PetalburgCity_Gym_Text_DadHappyAndSad: @ 82062FB +PetalburgCity_Gym_Text_DadHappyAndSad: .string "DAD: As the GYM LEADER, I can't\n" .string "express how upset I am…\p" .string "But as a father, it makes me both\n" .string "happy and a little sad. It's odd…$" -PetalburgCity_Gym_Text_PleaseComeWithMe: @ 8206377 +PetalburgCity_Gym_Text_PleaseComeWithMe: .string "Ah, there you are, {PLAYER}{KUN}!\p" .string "Please come with me.\n" .string "I have something I want you to have.$" -PetalburgCity_Gym_Text_LetMeBorrowPlayer: @ 82063CA +PetalburgCity_Gym_Text_LetMeBorrowPlayer: .string "NORMAN, you don't mind, do you?\p" .string "Let me borrow your {PLAYER}{KUN} for\n" .string "a minute or two.$" -PetalburgCity_Gym_Text_DadGoingToKeepTraining: @ 8206417 +PetalburgCity_Gym_Text_DadGoingToKeepTraining: .string "DAD: {PLAYER}, you should go visit\n" .string "your mother every so often.\p" .string "I'm going to stay here and redouble\n" @@ -1410,13 +1410,13 @@ PetalburgCity_Gym_Text_DadGoingToKeepTraining: @ 8206417 .string "It would bother me as a TRAINER to\n" .string "not avenge my loss to you, {PLAYER}!$" -PetalburgCity_Gym_Text_DadNoAmountOfTrainingIsEnough: @ 82064C3 +PetalburgCity_Gym_Text_DadNoAmountOfTrainingIsEnough: .string "DAD: {PLAYER}, how are things going?\p" .string "The world of POKéMON is deep.\p" .string "I honestly think that no amount of\n" .string "training would ever be enough.$" -PetalburgCity_Gym_Text_GymGuideAdvice: @ 8206542 +PetalburgCity_Gym_Text_GymGuideAdvice: .string "Hey, how's it going, CHAMPION-\n" .string "bound {PLAYER}?\p" .string "The doors in this GYM open when you\n" @@ -1434,53 +1434,53 @@ PetalburgCity_Gym_Text_GymGuideAdvice: @ 8206542 .string "Once you've chosen the door…\n" .string "Well, hey, go for it!$" -PetalburgCity_Gym_Text_GymGuidePostVictory: @ 82066F3 +PetalburgCity_Gym_Text_GymGuidePostVictory: .string "{PLAYER}! Whoa! You've overcome even\n" .string "your own father!\p" .string "Like, whoa!\n" .string "What a stunning turn of events!$" -PetalburgCity_Gym_Text_RandallIntro: @ 820674F +PetalburgCity_Gym_Text_RandallIntro: .string "The ability to attack before the\n" .string "opponent…\p" .string "Just that alone puts me at a great\n" .string "advantage, don't you agree?$" -PetalburgCity_Gym_Text_RandallDefeat: @ 82067B9 +PetalburgCity_Gym_Text_RandallDefeat: .string "That was a magnificent battle!$" -PetalburgCity_Gym_Text_RandallPostBattle: @ 82067D8 +PetalburgCity_Gym_Text_RandallPostBattle: .string "Go on to the next room where a new\n" .string "challenge awaits you.\p" .string "At the left is the CONFUSION ROOM.\p" .string "The right door leads to the DEFENSE\n" .string "ROOM.$" -PetalburgCity_Gym_Text_RandallPostBadge: @ 820685E +PetalburgCity_Gym_Text_RandallPostBadge: .string "Whomever you beat, and whomever you\n" .string "may lose to, you never shirk from\l" .string "training yourself and your POKéMON.\p" .string "That's what I think being a\n" .string "GYM LEADER is all about.$" -PetalburgCity_Gym_Text_ParkerIntro: @ 82068FD +PetalburgCity_Gym_Text_ParkerIntro: .string "This is the CONFUSION ROOM.\p" .string "Let me see how well bonded you are\n" .string "with your POKéMON!$" -PetalburgCity_Gym_Text_ParkerDefeat: @ 820694F +PetalburgCity_Gym_Text_ParkerDefeat: .string "I couldn't confuse your team enough…\n" .string "You share a strong bond together.$" -PetalburgCity_Gym_Text_ParkerPostBattle: @ 8206996 +PetalburgCity_Gym_Text_ParkerPostBattle: .string "The next room is the STRENGTH ROOM.\n" .string "Can you withstand brute force?$" -PetalburgCity_Gym_Text_ParkerPostBadge: @ 82069D9 +PetalburgCity_Gym_Text_ParkerPostBadge: .string "After you beat our LEADER, the\n" .string "training has become a lot tougher.$" -PetalburgCity_Gym_Text_GeorgeIntro: @ 8206A1B +PetalburgCity_Gym_Text_GeorgeIntro: .string "Just when you think you're going to\n" .string "win, your opponent restores HP…\p" .string "Can you just imagine how awful that\n" @@ -1488,11 +1488,11 @@ PetalburgCity_Gym_Text_GeorgeIntro: @ 8206A1B .string "I'll show you exactly how awful it\n" .string "feels!$" -PetalburgCity_Gym_Text_GeorgeDefeat: @ 8206AB8 +PetalburgCity_Gym_Text_GeorgeDefeat: .string "I couldn't restore HP enough…\n" .string "What ATTACK power…$" -PetalburgCity_Gym_Text_GeorgePostBattle: @ 8206AE9 +PetalburgCity_Gym_Text_GeorgePostBattle: .string "I should have expected no less from\n" .string "our LEADER's kid.\p" .string "No, wait! A TRAINER's abilities are\n" @@ -1501,21 +1501,21 @@ PetalburgCity_Gym_Text_GeorgePostBattle: @ 8206AE9 .string "weren't enough.\p" .string "Go on! The ONE-HIT KO ROOM is next.$" -PetalburgCity_Gym_Text_GeorgePostBadge: @ 8206BB1 +PetalburgCity_Gym_Text_GeorgePostBadge: .string "I'm going to keep training at GYMS.\n" .string "One day, I'll become a LEADER.$" -PetalburgCity_Gym_Text_BerkeIntro: @ 8206BF4 +PetalburgCity_Gym_Text_BerkeIntro: .string "I'm not going to take it easy just\n" .string "because you're our LEADER's kid.\p" .string "I'll show you how horrid it is for\n" .string "a POKéMON to take a critical hit!$" -PetalburgCity_Gym_Text_BerkeDefeat: @ 8206C7D +PetalburgCity_Gym_Text_BerkeDefeat: .string "Your power…\n" .string "You're the real deal.$" -PetalburgCity_Gym_Text_BerkePostBattle: @ 8206C9F +PetalburgCity_Gym_Text_BerkePostBattle: .string "Your father really is strong.\n" .string "He's a TRAINER worth my respect.\p" .string "And, I sense the same glow coming\n" @@ -1523,21 +1523,21 @@ PetalburgCity_Gym_Text_BerkePostBattle: @ 8206C9F .string "I hope that you'll stage a terrific\n" .string "battle with your father!$" -PetalburgCity_Gym_Text_BerkePostBadge: @ 8206D56 +PetalburgCity_Gym_Text_BerkePostBadge: .string "Since your dad became the LEADER,\n" .string "the TRAINERS of PETALBURG CITY have\l" .string "become a lot tougher.$" -PetalburgCity_Gym_Text_MaryIntro: @ 8206DB2 +PetalburgCity_Gym_Text_MaryIntro: .string "Giggle…\n" .string "This is the ACCURACY ROOM.\p" .string "It's pretty nasty when every attack\n" .string "lands without fail.$" -PetalburgCity_Gym_Text_MaryDefeat: @ 8206E0D +PetalburgCity_Gym_Text_MaryDefeat: .string "You were a cut above me…$" -PetalburgCity_Gym_Text_MaryPostBattle: @ 8206E26 +PetalburgCity_Gym_Text_MaryPostBattle: .string "There are some even stronger\n" .string "TRAINERS waiting for you.\p" .string "The left is the DEFENSE ROOM, and\n" @@ -1545,20 +1545,20 @@ PetalburgCity_Gym_Text_MaryPostBattle: @ 8206E26 .string "Your POKéMON's ATTACK power will be\n" .string "on trial either way.$" -PetalburgCity_Gym_Text_MaryPostBadge: @ 8206ED8 +PetalburgCity_Gym_Text_MaryPostBadge: .string "Do you know what we're trying to\n" .string "achieve as TRAINERS?\p" .string "We're striving to become soul mates\n" .string "with our POKéMON.$" -PetalburgCity_Gym_Text_AlexiaIntro: @ 8206F44 +PetalburgCity_Gym_Text_AlexiaIntro: .string "The higher the DEFENSE, the more\n" .string "reckless I can be in attack.$" -PetalburgCity_Gym_Text_AlexiaDefeat: @ 8206F82 +PetalburgCity_Gym_Text_AlexiaDefeat: .string "Our defenses weren't enough…$" -PetalburgCity_Gym_Text_AlexiaPostBattle: @ 8206F9F +PetalburgCity_Gym_Text_AlexiaPostBattle: .string "I think you've taught me a valuable\n" .string "lesson here.\p" .string "Now, go on! The left door goes to\n" @@ -1568,83 +1568,83 @@ PetalburgCity_Gym_Text_AlexiaPostBattle: @ 8206F9F .string "Both of them have TRAINERS who are\n" .string "skilled at offense.$" -PetalburgCity_Gym_Text_AlexiaPostBadge: @ 8207069 +PetalburgCity_Gym_Text_AlexiaPostBadge: .string "Hi! Have you tried using SURF?$" -PetalburgCity_Gym_Text_JodyIntro: @ 8207088 +PetalburgCity_Gym_Text_JodyIntro: .string "Our GYM LEADER told us to go all out\n" .string "and beat you.\p" .string "Even if you happen to be the\n" .string "LEADER's kid!$" -PetalburgCity_Gym_Text_JodyDefeat: @ 82070E6 +PetalburgCity_Gym_Text_JodyDefeat: .string "But… I went all out!$" -PetalburgCity_Gym_Text_JodyPostBattle: @ 82070FB +PetalburgCity_Gym_Text_JodyPostBattle: .string "The way you use your POKéMON…\n" .string "It's like your father's style.\p" .string "Go on through! The GYM LEADER, your\n" .string "father, is waiting!$" -PetalburgCity_Gym_Text_JodyPostBadge: @ 8207170 +PetalburgCity_Gym_Text_JodyPostBadge: .string "Sure, it's fine to make your POKéMON\n" .string "stronger.\p" .string "But what decides the winner?\p" .string "Why, it's the feelings TRAINERS have\n" .string "for their POKéMON.$" -PetalburgCity_Gym_Text_DoorAppearsLocked: @ 82071F4 +PetalburgCity_Gym_Text_DoorAppearsLocked: .string "This door appears to be locked\n" .string "right now…$" -PetalburgCity_Gym_Text_EnterSpeedRoom: @ 820721E +PetalburgCity_Gym_Text_EnterSpeedRoom: .string "“SPEED ROOM,” the sign says.\p" .string "Do you want to go through?$" @ Unused -PetalburgCity_Gym_Text_DoorAppearsLocked2: @ 8207256 +PetalburgCity_Gym_Text_DoorAppearsLocked2: .string "This door appears to be locked\n" .string "right now…$" -PetalburgCity_Gym_Text_EnterAccuracyRoom: @ 8207280 +PetalburgCity_Gym_Text_EnterAccuracyRoom: .string "“ACCURACY ROOM,” the sign says.\p" .string "Do you want to go through?$" -PetalburgCity_Gym_Text_EnterConfusionRoom: @ 82072BB +PetalburgCity_Gym_Text_EnterConfusionRoom: .string "“CONFUSION ROOM,” the sign says.\p" .string "Do you want to go through?$" -PetalburgCity_Gym_Text_EnterDefenseRoom: @ 82072F7 +PetalburgCity_Gym_Text_EnterDefenseRoom: .string "“DEFENSE ROOM,” the sign says.\p" .string "Do you want to go through?$" -PetalburgCity_Gym_Text_EnterRecoveryRoom: @ 8207331 +PetalburgCity_Gym_Text_EnterRecoveryRoom: .string "“RECOVERY ROOM,” the sign says.\p" .string "Do you want to go through?$" -PetalburgCity_Gym_Text_EnterStrengthRoom: @ 820736C +PetalburgCity_Gym_Text_EnterStrengthRoom: .string "“STRENGTH ROOM,” the sign says.\p" .string "Do you want to go through?$" -PetalburgCity_Gym_Text_EnterOHKORoom: @ 82073A7 +PetalburgCity_Gym_Text_EnterOHKORoom: .string "“ONE-HIT KO ROOM,” the sign says.\p" .string "Do you want to go through?$" -PetalburgCity_Gym_Text_EnterGymLeadersRoom: @ 82073E4 +PetalburgCity_Gym_Text_EnterGymLeadersRoom: .string "“GYM LEADER'S ROOM\p" .string "“See for yourself what POKéMON await\n" .string "you!” the sign says.\p" .string "Do you want to go through?$" -PetalburgCity_Gym_Text_GymStatue: @ 820744C +PetalburgCity_Gym_Text_GymStatue: .string "PETALBURG CITY POKéMON GYM$" -PetalburgCity_Gym_Text_GymStatueCertified: @ 8207467 +PetalburgCity_Gym_Text_GymStatueCertified: .string "PETALBURG CITY POKéMON GYM\p" .string "NORMAN'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" -PetalburgCity_Gym_Text_NormanPreRematch: @ 82074A2 +PetalburgCity_Gym_Text_NormanPreRematch: .string "DAD: {PLAYER}…\n" .string "I had a feeling that you would come.\p" .string "I would never refuse to accept\n" @@ -1656,18 +1656,18 @@ PetalburgCity_Gym_Text_NormanPreRematch: @ 82074A2 .string "we owe it to each other to do the best\l" .string "we can. Isn't that right, {PLAYER}?$" -PetalburgCity_Gym_Text_NormanRematchDefeat: @ 82075CE +PetalburgCity_Gym_Text_NormanRematchDefeat: .string "Uh… Haha…\n" .string "Maybe that was going too hard…$" -PetalburgCity_Gym_Text_NormanPostRematch: @ 82075F7 +PetalburgCity_Gym_Text_NormanPostRematch: .string "DAD: {PLAYER}…\n" .string "What is your dream?\p" .string "My dream…\n" .string "Hahaha…\l" .string "It has already come true, actually.$" -PetalburgCity_Gym_Text_NormanRematchNeedTwoMons: @ 820764A +PetalburgCity_Gym_Text_NormanRematchNeedTwoMons: .string "DAD: {PLAYER}…\n" .string "I had a feeling that you would come.\p" .string "I would never refuse to accept\n" diff --git a/data/maps/PetalburgCity_House1/scripts.inc b/data/maps/PetalburgCity_House1/scripts.inc index 2fe46437ee..ac803259c4 100644 --- a/data/maps/PetalburgCity_House1/scripts.inc +++ b/data/maps/PetalburgCity_House1/scripts.inc @@ -1,20 +1,20 @@ -PetalburgCity_House1_MapScripts:: @ 8207799 +PetalburgCity_House1_MapScripts:: .byte 0 -PetalburgCity_House1_EventScript_Man:: @ 820779A +PetalburgCity_House1_EventScript_Man:: msgbox PetalburgCity_House1_Text_TravelingIsWonderful, MSGBOX_NPC end -PetalburgCity_House1_EventScript_Woman:: @ 82077A3 +PetalburgCity_House1_EventScript_Woman:: msgbox PetalburgCity_House1_Text_GoOnAdventure, MSGBOX_NPC end -PetalburgCity_House1_Text_TravelingIsWonderful: @ 82077AC +PetalburgCity_House1_Text_TravelingIsWonderful: .string "Traveling is wonderful!\p" .string "When I was young, I roamed the seas\n" .string "and the mountains!$" -PetalburgCity_House1_Text_GoOnAdventure: @ 82077FB +PetalburgCity_House1_Text_GoOnAdventure: .string "Sigh…\p" .string "I wish I could go on an adventure\n" .string "with some POKéMON…\p" diff --git a/data/maps/PetalburgCity_House2/scripts.inc b/data/maps/PetalburgCity_House2/scripts.inc index 3be93cbd04..1770627ed0 100644 --- a/data/maps/PetalburgCity_House2/scripts.inc +++ b/data/maps/PetalburgCity_House2/scripts.inc @@ -1,21 +1,21 @@ -PetalburgCity_House2_MapScripts:: @ 82078F2 +PetalburgCity_House2_MapScripts:: .byte 0 -PetalburgCity_House2_EventScript_Woman:: @ 82078F3 +PetalburgCity_House2_EventScript_Woman:: msgbox PetalburgCity_House2_Text_NormanBecameGymLeader, MSGBOX_NPC end -PetalburgCity_House2_EventScript_SchoolKid:: @ 82078FC +PetalburgCity_House2_EventScript_SchoolKid:: msgbox PetalburgCity_House2_Text_BattledNormanOnce, MSGBOX_NPC end -PetalburgCity_House2_Text_NormanBecameGymLeader: @ 8207905 +PetalburgCity_House2_Text_NormanBecameGymLeader: .string "NORMAN became our town's new\n" .string "GYM LEADER.\p" .string "I think he called his family over from\n" .string "somewhere far away.$" -PetalburgCity_House2_Text_BattledNormanOnce: @ 8207969 +PetalburgCity_House2_Text_BattledNormanOnce: .string "I battled NORMAN once, but, whew,\n" .string "he was way too strong.\p" .string "How would I put it?\p" diff --git a/data/maps/PetalburgCity_Mart/scripts.inc b/data/maps/PetalburgCity_Mart/scripts.inc index f27f0aeb5d..abaa7b5b0e 100644 --- a/data/maps/PetalburgCity_Mart/scripts.inc +++ b/data/maps/PetalburgCity_Mart/scripts.inc @@ -1,7 +1,7 @@ -PetalburgCity_Mart_MapScripts:: @ 8207D68 +PetalburgCity_Mart_MapScripts:: .byte 0 -PetalburgCity_Mart_EventScript_Clerk:: @ 8207D69 +PetalburgCity_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -13,7 +13,7 @@ PetalburgCity_Mart_EventScript_Clerk:: @ 8207D69 end .align 2 -PetalburgCity_Mart_Pokemart_Basic: @ 8207D8C +PetalburgCity_Mart_Pokemart_Basic: .2byte ITEM_POKE_BALL .2byte ITEM_POTION .2byte ITEM_ANTIDOTE @@ -29,14 +29,14 @@ PetalburgCity_Mart_Pokemart_Basic: @ 8207D8C release end -PetalburgCity_Mart_EventScript_ExpandedItems:: @ 8207DA6 +PetalburgCity_Mart_EventScript_ExpandedItems:: pokemart PetalburgCity_Mart_Pokemart_Expanded msgbox gText_PleaseComeAgain, MSGBOX_DEFAULT release end .align 2 -PetalburgCity_Mart_Pokemart_Expanded: @ 8207DB8 +PetalburgCity_Mart_Pokemart_Expanded: .2byte ITEM_POKE_BALL .2byte ITEM_GREAT_BALL .2byte ITEM_POTION @@ -54,30 +54,30 @@ PetalburgCity_Mart_Pokemart_Expanded: @ 8207DB8 release end -PetalburgCity_Mart_EventScript_Woman:: @ 8207DD6 +PetalburgCity_Mart_EventScript_Woman:: msgbox PetalburgCity_Mart_Text_WeakWillGrowStronger, MSGBOX_NPC end -PetalburgCity_Mart_EventScript_Boy:: @ 8207DDF +PetalburgCity_Mart_EventScript_Boy:: msgbox PetalburgCity_Mart_Text_RepelIsUseful, MSGBOX_NPC end -PetalburgCity_Mart_EventScript_Man:: @ 8207DE8 +PetalburgCity_Mart_EventScript_Man:: msgbox PetalburgCity_Mart_Text_TakeSomeAntidotesWithYou, MSGBOX_NPC end -PetalburgCity_Mart_Text_WeakWillGrowStronger: @ 8207DF1 +PetalburgCity_Mart_Text_WeakWillGrowStronger: .string "Even if a POKéMON is weak now,\n" .string "it will grow stronger.\p" .string "The most important thing is love!\n" .string "Love for your POKéMON!$" -PetalburgCity_Mart_Text_RepelIsUseful: @ 8207E60 +PetalburgCity_Mart_Text_RepelIsUseful: .string "Do you use REPEL?\n" .string "It keeps POKéMON away, so it's\l" .string "useful when you're in a hurry.$" -PetalburgCity_Mart_Text_TakeSomeAntidotesWithYou: @ 8207EB0 +PetalburgCity_Mart_Text_TakeSomeAntidotesWithYou: .string "Do you have any ANTIDOTES with\n" .string "you?\p" .string "If you walk around with a poisoned\n" diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc index 5910141644..58b58054f2 100644 --- a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc @@ -1,16 +1,16 @@ .set LOCALID_NURSE, 1 -PetalburgCity_PokemonCenter_1F_MapScripts:: @ 82079E8 +PetalburgCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, PetalburgCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -PetalburgCity_PokemonCenter_1F_OnTransition: @ 82079F3 +PetalburgCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_PETALBURG_CITY call Common_EventScript_UpdateBrineyLocation end -PetalburgCity_PokemonCenter_1F_EventScript_Nurse:: @ 82079FC +PetalburgCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -18,15 +18,15 @@ PetalburgCity_PokemonCenter_1F_EventScript_Nurse:: @ 82079FC release end -PetalburgCity_PokemonCenter_1F_EventScript_FatMan:: @ 8207A0A +PetalburgCity_PokemonCenter_1F_EventScript_FatMan:: msgbox PetalburgCity_PokemonCenter_1F_Text_PCStorageSystem, MSGBOX_NPC end -PetalburgCity_PokemonCenter_1F_EventScript_Youngster:: @ 8207A13 +PetalburgCity_PokemonCenter_1F_EventScript_Youngster:: msgbox PetalburgCity_PokemonCenter_1F_Text_OranBerryRegainedHP, MSGBOX_NPC end -PetalburgCity_PokemonCenter_1F_EventScript_Woman:: @ 8207A1C +PetalburgCity_PokemonCenter_1F_EventScript_Woman:: lock faceplayer msgbox PetalburgCity_PokemonCenter_1F_Text_ManyTypesOfPokemon, MSGBOX_DEFAULT @@ -36,7 +36,7 @@ PetalburgCity_PokemonCenter_1F_EventScript_Woman:: @ 8207A1C release end -PetalburgCity_PokemonCenter_1F_EventScript_SayStarterTypeInfo:: @ 8207A38 +PetalburgCity_PokemonCenter_1F_EventScript_SayStarterTypeInfo:: compare VAR_STARTER_MON, 0 call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_SayTreeckoType compare VAR_STARTER_MON, 1 @@ -46,36 +46,36 @@ PetalburgCity_PokemonCenter_1F_EventScript_SayStarterTypeInfo:: @ 8207A38 release end -PetalburgCity_PokemonCenter_1F_EventScript_SayTreeckoType:: @ 8207A5B +PetalburgCity_PokemonCenter_1F_EventScript_SayTreeckoType:: msgbox PetalburgCity_PokemonCenter_1F_Text_TreeckoIsGrassType, MSGBOX_DEFAULT return -PetalburgCity_PokemonCenter_1F_EventScript_SayTorchicType:: @ 8207A64 +PetalburgCity_PokemonCenter_1F_EventScript_SayTorchicType:: msgbox PetalburgCity_PokemonCenter_1F_Text_TorchicIsFireType, MSGBOX_DEFAULT return -PetalburgCity_PokemonCenter_1F_EventScript_SayMudkipType:: @ 8207A6D +PetalburgCity_PokemonCenter_1F_EventScript_SayMudkipType:: msgbox PetalburgCity_PokemonCenter_1F_Text_MudkipIsWaterType, MSGBOX_DEFAULT return -PetalburgCity_PokemonCenter_1F_Text_PCStorageSystem: @ 8207A76 +PetalburgCity_PokemonCenter_1F_Text_PCStorageSystem: .string "That PC-based POKéMON Storage\n" .string "System…\p" .string "Whoever made it must be some kind\n" .string "of a scientific wizard!$" -PetalburgCity_PokemonCenter_1F_Text_OranBerryRegainedHP: @ 8207AD6 +PetalburgCity_PokemonCenter_1F_Text_OranBerryRegainedHP: .string "When my POKéMON ate an\n" .string "ORAN BERRY, it regained HP!$" -PetalburgCity_PokemonCenter_1F_Text_ManyTypesOfPokemon: @ 8207B09 +PetalburgCity_PokemonCenter_1F_Text_ManyTypesOfPokemon: .string "There are many types of POKéMON.\p" .string "All types have their strengths and\n" .string "weaknesses against other types.\p" .string "Depending on the types of POKéMON,\n" .string "a battle could be easy or hard.$" -PetalburgCity_PokemonCenter_1F_Text_TreeckoIsGrassType: @ 8207BB0 +PetalburgCity_PokemonCenter_1F_Text_TreeckoIsGrassType: .string "For example, your TREECKO\n" .string "is a GRASS type.\p" .string "It's strong against the WATER and\n" @@ -83,7 +83,7 @@ PetalburgCity_PokemonCenter_1F_Text_TreeckoIsGrassType: @ 8207BB0 .string "But, it's weak against FIRE-type\n" .string "POKéMON.$" -PetalburgCity_PokemonCenter_1F_Text_TorchicIsFireType: @ 8207C35 +PetalburgCity_PokemonCenter_1F_Text_TorchicIsFireType: .string "For example, your TORCHIC\n" .string "is a FIRE type.\p" .string "It's strong against the GRASS and\n" @@ -91,7 +91,7 @@ PetalburgCity_PokemonCenter_1F_Text_TorchicIsFireType: @ 8207C35 .string "But, it's weak against WATER-type\n" .string "POKéMON.$" -PetalburgCity_PokemonCenter_1F_Text_MudkipIsWaterType: @ 8207CB7 +PetalburgCity_PokemonCenter_1F_Text_MudkipIsWaterType: .string "For example, your MUDKIP\n" .string "is a WATER type.\p" .string "It's strong against the FIRE type.\p" diff --git a/data/maps/PetalburgCity_PokemonCenter_2F/scripts.inc b/data/maps/PetalburgCity_PokemonCenter_2F/scripts.inc index 8485ae2c69..bd3e30f9ab 100644 --- a/data/maps/PetalburgCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/PetalburgCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -PetalburgCity_PokemonCenter_2F_MapScripts:: @ 8207D41 +PetalburgCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ PetalburgCity_PokemonCenter_2F_MapScripts:: @ 8207D41 .byte 0 @ The below 3 are unused and leftover from RS -PetalburgCity_PokemonCenter_2F_EventScript_Colosseum:: @ 8207D56 +PetalburgCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -PetalburgCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 8207D5C +PetalburgCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -PetalburgCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 8207D62 +PetalburgCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/PetalburgCity_WallysHouse/scripts.inc b/data/maps/PetalburgCity_WallysHouse/scripts.inc index 1e4e75987f..3a06208a78 100644 --- a/data/maps/PetalburgCity_WallysHouse/scripts.inc +++ b/data/maps/PetalburgCity_WallysHouse/scripts.inc @@ -1,24 +1,24 @@ .set LOCALID_WALLYS_DAD, 1 -PetalburgCity_WallysHouse_MapScripts:: @ 8204229 +PetalburgCity_WallysHouse_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, PetalburgCity_WallysHouse_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PetalburgCity_WallysHouse_OnWarp .byte 0 -PetalburgCity_WallysHouse_OnWarp: @ 8204234 +PetalburgCity_WallysHouse_OnWarp: map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_PlayerWallysDadFaceEachOther .2byte 0 -PetalburgCity_WallysHouse_EventScript_PlayerWallysDadFaceEachOther:: @ 820423E +PetalburgCity_WallysHouse_EventScript_PlayerWallysDadFaceEachOther:: turnobject OBJ_EVENT_ID_PLAYER, DIR_EAST turnobject LOCALID_WALLYS_DAD, DIR_WEST end -PetalburgCity_WallysHouse_OnFrame: @ 8204247 +PetalburgCity_WallysHouse_OnFrame: map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_GiveHM03Surf .2byte 0 -PetalburgCity_WallysHouse_EventScript_GiveHM03Surf:: @ 8204251 +PetalburgCity_WallysHouse_EventScript_GiveHM03Surf:: lockall msgbox PetalburgCity_WallysHouse_Text_PleaseExcuseUs, MSGBOX_DEFAULT giveitem ITEM_HM03 @@ -28,7 +28,7 @@ PetalburgCity_WallysHouse_EventScript_GiveHM03Surf:: @ 8204251 releaseall end -PetalburgCity_WallysHouse_EventScript_WallysDad:: @ 8204278 +PetalburgCity_WallysHouse_EventScript_WallysDad:: lock faceplayer goto_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, PetalburgCity_WallysHouse_EventScript_DefeatedWallyInVictoryRoad @@ -39,22 +39,22 @@ PetalburgCity_WallysHouse_EventScript_WallysDad:: @ 8204278 release end -PetalburgCity_WallysHouse_EventScript_ReceievedHM03Surf:: @ 82042A2 +PetalburgCity_WallysHouse_EventScript_ReceievedHM03Surf:: msgbox PetalburgCity_WallysHouse_Text_WallyIsComingHomeSoon, MSGBOX_DEFAULT release end -PetalburgCity_WallysHouse_EventScript_DefeatedWallyInVictoryRoad:: @ 82042AC +PetalburgCity_WallysHouse_EventScript_DefeatedWallyInVictoryRoad:: msgbox PetalburgCity_WallysHouse_Text_YouMetWallyInEverGrandeCity, MSGBOX_DEFAULT release end -PetalburgCity_WallysHouse_EventScript_PlayedWithWally:: @ 82042B6 +PetalburgCity_WallysHouse_EventScript_PlayedWithWally:: msgbox PetalburgCity_WallysHouse_Text_WonderHowWallyIsDoing, MSGBOX_DEFAULT release end -PetalburgCity_WallysHouse_EventScript_WallysMom:: @ 82042C0 +PetalburgCity_WallysHouse_EventScript_WallysMom:: lock faceplayer goto_if_set FLAG_RECEIVED_HM03, PetalburgCity_WallysHouse_EventScript_ReceivedHM03Surf @@ -62,12 +62,12 @@ PetalburgCity_WallysHouse_EventScript_WallysMom:: @ 82042C0 release end -PetalburgCity_WallysHouse_EventScript_ReceivedHM03Surf:: @ 82042D5 +PetalburgCity_WallysHouse_EventScript_ReceivedHM03Surf:: msgbox PetalburgCity_WallysHouse_Text_WallyLeftWithoutTelling, MSGBOX_DEFAULT release end -PetalburgCity_WallysHouse_Text_ThanksForPlayingWithWally: @ 82042DF +PetalburgCity_WallysHouse_Text_ThanksForPlayingWithWally: .string "You're…\n" .string "Ah, you must be {PLAYER}{KUN}, right?\p" .string "Thank you for playing with WALLY a\n" @@ -83,10 +83,10 @@ PetalburgCity_WallysHouse_Text_ThanksForPlayingWithWally: @ 82042DF .string "I wonder where he could have\n" .string "gotten by now?$" -PetalburgCity_WallysHouse_Text_WonderHowWallyIsDoing: @ 820444D +PetalburgCity_WallysHouse_Text_WonderHowWallyIsDoing: .string "I wonder how our WALLY is doing?$" -PetalburgCity_WallysHouse_Text_PleaseExcuseUs: @ 820446E +PetalburgCity_WallysHouse_Text_PleaseExcuseUs: .string "{PLAYER}{KUN}! Please excuse us for\n" .string "dragging you here this way.\p" .string "But our WALLY's become very healthy\n" @@ -103,15 +103,15 @@ PetalburgCity_WallysHouse_Text_PleaseExcuseUs: @ 820446E .string "This isn't a bribe or anything, but\n" .string "I'd really like you to have this.$" -PetalburgCity_WallysHouse_Text_SurfGoAllSortsOfPlaces: @ 820461A +PetalburgCity_WallysHouse_Text_SurfGoAllSortsOfPlaces: .string "If your POKéMON can SURF, you'll be\n" .string "able to go to all sorts of places.$" -PetalburgCity_WallysHouse_Text_WallyIsComingHomeSoon: @ 8204661 +PetalburgCity_WallysHouse_Text_WallyIsComingHomeSoon: .string "WALLY's coming home soon.\n" .string "I'm looking forward to that.$" -PetalburgCity_WallysHouse_Text_YouMetWallyInEverGrandeCity: @ 8204698 +PetalburgCity_WallysHouse_Text_YouMetWallyInEverGrandeCity: .string "Oh? You met WALLY in\n" .string "EVER GRANDE CITY?\p" .string "Oh, {PLAYER}{KUN}, don't be silly.\p" @@ -119,13 +119,13 @@ PetalburgCity_WallysHouse_Text_YouMetWallyInEverGrandeCity: @ 8204698 .string "can't go somewhere far away like\l" .string "that all by himself.$" -PetalburgCity_WallysHouse_Text_WallyWasReallyHappy: @ 8204732 +PetalburgCity_WallysHouse_Text_WallyWasReallyHappy: .string "WALLY was really happy when he told\n" .string "us that he caught a POKéMON.\p" .string "It's been ages since I've seen him\n" .string "smile like that.$" -PetalburgCity_WallysHouse_Text_WallyLeftWithoutTelling: @ 82047A7 +PetalburgCity_WallysHouse_Text_WallyLeftWithoutTelling: .string "I want you to keep this a secret\n" .string "from my husband…\p" .string "But our WALLY left VERDANTURF TOWN\n" diff --git a/data/maps/PetalburgWoods/scripts.inc b/data/maps/PetalburgWoods/scripts.inc index dbdb66b0b8..2ade896421 100644 --- a/data/maps/PetalburgWoods/scripts.inc +++ b/data/maps/PetalburgWoods/scripts.inc @@ -1,17 +1,17 @@ .set LOCALID_GRUNT, 3 .set LOCALID_DEVON_EMPLOYEE, 4 -PetalburgWoods_MapScripts:: @ 822DFD6 +PetalburgWoods_MapScripts:: .byte 0 -PetalburgWoods_EventScript_DevonResearcherLeft:: @ 822DFD7 +PetalburgWoods_EventScript_DevonResearcherLeft:: lockall call PetalburgWoods_EventScript_DevonResearcherIntro applymovement LOCALID_DEVON_EMPLOYEE, PetalburgWoods_Movement_DevonResearcherApproachPlayerLeft waitmovement 0 msgbox PetalburgWoods_Text_HaveYouSeenShroomish, MSGBOX_DEFAULT closemessage - playbgm MUS_ENCOUNTER_AQUA, 0 + playbgm MUS_ENCOUNTER_AQUA, FALSE applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaEntrance waitmovement 0 msgbox PetalburgWoods_Text_IWasGoingToAmbushYou, MSGBOX_DEFAULT @@ -39,7 +39,7 @@ PetalburgWoods_EventScript_DevonResearcherLeft:: @ 822DFD7 goto PetalburgWoods_EventScript_RemoveDevonResearcher end -PetalburgWoods_EventScript_DevonResearcherRight:: @ 822E079 +PetalburgWoods_EventScript_DevonResearcherRight:: lockall call PetalburgWoods_EventScript_DevonResearcherIntro applymovement LOCALID_DEVON_EMPLOYEE, PetalburgWoods_Movement_DevonResearcherApproachPlayerRight @@ -48,7 +48,7 @@ PetalburgWoods_EventScript_DevonResearcherRight:: @ 822E079 waitmovement 0 msgbox PetalburgWoods_Text_HaveYouSeenShroomish, MSGBOX_DEFAULT closemessage - playbgm MUS_ENCOUNTER_AQUA, 0 + playbgm MUS_ENCOUNTER_AQUA, FALSE applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaEntrance waitmovement 0 msgbox PetalburgWoods_Text_IWasGoingToAmbushYou, MSGBOX_DEFAULT @@ -75,14 +75,14 @@ PetalburgWoods_EventScript_DevonResearcherRight:: @ 822E079 goto PetalburgWoods_EventScript_RemoveDevonResearcher end -PetalburgWoods_EventScript_DevonResearcherIntro:: @ 822E124 +PetalburgWoods_EventScript_DevonResearcherIntro:: applymovement LOCALID_DEVON_EMPLOYEE, PetalburgWoods_Movement_DevonResearcherLookAround waitmovement 0 msgbox PetalburgWoods_Text_NotAOneToBeFound, MSGBOX_DEFAULT closemessage return -PetalburgWoods_EventScript_DevonResearcherPostBattle:: @ 822E138 +PetalburgWoods_EventScript_DevonResearcherPostBattle:: msgbox PetalburgWoods_Text_YouveGotSomeNerve, MSGBOX_DEFAULT closemessage applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaRunAway @@ -97,12 +97,12 @@ PetalburgWoods_EventScript_DevonResearcherPostBattle:: @ 822E138 goto PetalburgWoods_EventScript_DevonResearcherFinish end -PetalburgWoods_EventScript_BagFull:: @ 822E17D +PetalburgWoods_EventScript_BagFull:: msgbox PetalburgWoods_Text_YoureLoadedWithItems, MSGBOX_DEFAULT goto PetalburgWoods_EventScript_DevonResearcherFinish end -PetalburgWoods_EventScript_DevonResearcherFinish:: @ 822E18B +PetalburgWoods_EventScript_DevonResearcherFinish:: msgbox PetalburgWoods_Text_TeamAquaAfterSomethingInRustboro, MSGBOX_DEFAULT applymovement LOCALID_DEVON_EMPLOYEE, PetalburgWoods_Movement_DevonResearcherStartExit waitmovement 0 @@ -110,13 +110,13 @@ PetalburgWoods_EventScript_DevonResearcherFinish:: @ 822E18B closemessage return -PetalburgWoods_EventScript_RemoveDevonResearcher:: @ 822E1A7 +PetalburgWoods_EventScript_RemoveDevonResearcher:: removeobject LOCALID_DEVON_EMPLOYEE setvar VAR_PETALBURG_WOODS_STATE, 1 releaseall end -PetalburgWoods_Movement_DevonResearcherLookAround: @ 822E1B1 +PetalburgWoods_Movement_DevonResearcherLookAround: face_up delay_16 delay_4 @@ -135,7 +135,7 @@ PetalburgWoods_Movement_DevonResearcherLookAround: @ 822E1B1 delay_16 step_end -PetalburgWoods_Movement_DevonResearcherExitLeft: @ 822E1C2 +PetalburgWoods_Movement_DevonResearcherExitLeft: walk_fast_right walk_fast_up walk_fast_up @@ -146,14 +146,14 @@ PetalburgWoods_Movement_DevonResearcherExitLeft: @ 822E1C2 walk_fast_up step_end -PetalburgWoods_Movement_DevonResearcherApproachPlayerLeft: @ 822E1CB +PetalburgWoods_Movement_DevonResearcherApproachPlayerLeft: delay_16 face_player walk_down walk_down step_end -PetalburgWoods_Movement_DevonResearcherApproachPlayerRight: @ 822E1D0 +PetalburgWoods_Movement_DevonResearcherApproachPlayerRight: delay_16 face_player walk_down @@ -162,7 +162,7 @@ PetalburgWoods_Movement_DevonResearcherApproachPlayerRight: @ 822E1D0 walk_in_place_fastest_right step_end -PetalburgWoods_Movement_DevonResearcherExitRight: @ 822E1D7 +PetalburgWoods_Movement_DevonResearcherExitRight: walk_fast_left walk_fast_up walk_fast_up @@ -173,13 +173,13 @@ PetalburgWoods_Movement_DevonResearcherExitRight: @ 822E1D7 walk_fast_up step_end -PetalburgWoods_Movement_WatchResearcherLeave: @ 822E1E0 +PetalburgWoods_Movement_WatchResearcherLeave: delay_16 delay_16 walk_in_place_fastest_up step_end -PetalburgWoods_Movement_DevonResearcherFleeToPlayerLeft: @ 822E1E4 +PetalburgWoods_Movement_DevonResearcherFleeToPlayerLeft: walk_fast_right walk_fast_down walk_fast_down @@ -187,13 +187,13 @@ PetalburgWoods_Movement_DevonResearcherFleeToPlayerLeft: @ 822E1E4 walk_in_place_fastest_up step_end -PetalburgWoods_Movement_DevonResearcherFleeToPlayerRight: @ 822E1EA +PetalburgWoods_Movement_DevonResearcherFleeToPlayerRight: walk_fast_down walk_fast_right walk_in_place_fastest_up step_end -PetalburgWoods_Movement_DevonResearcherStartExit: @ 822E1EE +PetalburgWoods_Movement_DevonResearcherStartExit: walk_in_place_fastest_down delay_16 delay_16 @@ -203,18 +203,18 @@ PetalburgWoods_Movement_DevonResearcherStartExit: @ 822E1EE face_up step_end -PetalburgWoods_Movement_AquaApproachResearcherLeft: @ 822E1F6 +PetalburgWoods_Movement_AquaApproachResearcherLeft: walk_fast_down walk_fast_down step_end -PetalburgWoods_Movement_AquaBackOff: @ 822E1F9 +PetalburgWoods_Movement_AquaBackOff: lock_facing_direction walk_up unlock_facing_direction step_end -PetalburgWoods_Movement_AquaRunAway: @ 822E1FD +PetalburgWoods_Movement_AquaRunAway: walk_fast_up walk_fast_up walk_fast_up @@ -224,32 +224,32 @@ PetalburgWoods_Movement_AquaRunAway: @ 822E1FD delay_16 step_end -PetalburgWoods_Movement_AquaApproachResearcherRight: @ 822E205 +PetalburgWoods_Movement_AquaApproachResearcherRight: walk_fast_down walk_fast_down walk_fast_down step_end -PetalburgWoods_Movement_AquaEntrance: @ 822E209 +PetalburgWoods_Movement_AquaEntrance: walk_down walk_down delay_16 delay_16 step_end -PetalburgWoods_Movement_AquaApproachPlayer: @ 822E20E +PetalburgWoods_Movement_AquaApproachPlayer: walk_down step_end -PetalburgWoods_EventScript_Boy1:: @ 822E210 +PetalburgWoods_EventScript_Boy1:: msgbox PetalburgWoods_Text_StayOutOfTallGrass, MSGBOX_NPC end -PetalburgWoods_EventScript_Boy2:: @ 822E219 +PetalburgWoods_EventScript_Boy2:: msgbox PetalburgWoods_Text_HiddenItemsExplanation, MSGBOX_NPC end -PetalburgWoods_EventScript_Girl:: @ 822E222 +PetalburgWoods_EventScript_Girl:: lock faceplayer goto_if_set FLAG_RECEIVED_MIRACLE_SEED, PetalburgWoods_EventScript_ExplainMiracleSeed @@ -261,25 +261,25 @@ PetalburgWoods_EventScript_Girl:: @ 822E222 release end -PetalburgWoods_EventScript_ExplainMiracleSeed:: @ 822E251 +PetalburgWoods_EventScript_ExplainMiracleSeed:: msgbox PetalburgWoods_Text_MiracleSeedExplanation, MSGBOX_DEFAULT release end -PetalburgWoods_EventScript_Sign1:: @ 822E25B +PetalburgWoods_EventScript_Sign1:: msgbox PetalburgWoods_Text_TrainerTipsExperience, MSGBOX_SIGN end -PetalburgWoods_EventScript_Sign2:: @ 822E264 +PetalburgWoods_EventScript_Sign2:: msgbox PetalburgWoods_Text_TrainerTipsPP, MSGBOX_SIGN end -PetalburgWoods_EventScript_Lyle:: @ 822E26D +PetalburgWoods_EventScript_Lyle:: trainerbattle_single TRAINER_LYLE, PetalburgWoods_Text_GoBugPokemonTeam, PetalburgWoods_Text_ICouldntWin msgbox PetalburgWoods_Text_ImOutOfPokeBalls, MSGBOX_AUTOCLOSE end -PetalburgWoods_EventScript_James:: @ 822E284 +PetalburgWoods_EventScript_James:: trainerbattle_single TRAINER_JAMES_1, PetalburgWoods_Text_InstantlyPopularWithBugPokemon, PetalburgWoods_Text_CantBePopularIfILose, PetalburgWoods_EventScript_TryRegisterJames specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -292,71 +292,71 @@ PetalburgWoods_EventScript_James:: @ 822E284 release end -PetalburgWoods_EventScript_TryRegisterJames:: @ 822E2C5 +PetalburgWoods_EventScript_TryRegisterJames:: special PlayerFaceTrainerAfterBattle waitmovement 0 goto_if_set FLAG_HAS_MATCH_CALL, PetalburgWoods_EventScript_RegisterJames release end -PetalburgWoods_EventScript_RegisterJames:: @ 822E2D6 +PetalburgWoods_EventScript_RegisterJames:: msgbox PetalburgWoods_Text_IWantRematch1, MSGBOX_DEFAULT register_matchcall TRAINER_JAMES_1 release end -PetalburgWoods_EventScript_TryRegisterJames2:: @ 822E2EF +PetalburgWoods_EventScript_TryRegisterJames2:: goto_if_set FLAG_HAS_MATCH_CALL, PetalburgWoods_EventScript_RegisterJames2 msgbox PetalburgWoods_Text_PeopleRespectYou, MSGBOX_DEFAULT release end -PetalburgWoods_EventScript_RegisterJames2:: @ 822E302 +PetalburgWoods_EventScript_RegisterJames2:: msgbox PetalburgWoods_Text_IWantRematch2, MSGBOX_DEFAULT register_matchcall TRAINER_JAMES_1 release end -PetalburgWoods_EventScript_JamesRematch:: @ 822E31B +PetalburgWoods_EventScript_JamesRematch:: trainerbattle_rematch TRAINER_JAMES_1, PetalburgWoods_Text_MyPokemonHaveGrown, PetalburgWoods_Text_CantBePopularIfLose msgbox PetalburgWoods_Text_IveBeenTrainingHard, MSGBOX_AUTOCLOSE end -PetalburgWoods_Text_NotAOneToBeFound: @ 822E332 +PetalburgWoods_Text_NotAOneToBeFound: .string "Hmmm…\n" .string "Not a one to be found…$" -PetalburgWoods_Text_HaveYouSeenShroomish: @ 822E34F +PetalburgWoods_Text_HaveYouSeenShroomish: .string "Hello, have you seen any POKéMON\n" .string "called SHROOMISH around here?\p" .string "I really love that POKéMON.$" -PetalburgWoods_Text_IWasGoingToAmbushYou: @ 822E3AA +PetalburgWoods_Text_IWasGoingToAmbushYou: .string "I was going to ambush you, but you\n" .string "had to dawdle in PETALBURG WOODS\l" .string "forever, didn't you?\p" .string "I got sick of waiting, so here I am!$" -PetalburgWoods_Text_HandOverThosePapers: @ 822E428 +PetalburgWoods_Text_HandOverThosePapers: .string "You! DEVON RESEARCHER!\p" .string "Hand over those papers!$" -PetalburgWoods_Text_YouHaveToHelpMe: @ 822E457 +PetalburgWoods_Text_YouHaveToHelpMe: .string "Aiyeeeh!\p" .string "You're a POKéMON TRAINER, aren't you?\n" .string "You've got to help me, please!$" -PetalburgWoods_Text_NoOneCrossesTeamAqua: @ 822E4A5 +PetalburgWoods_Text_NoOneCrossesTeamAqua: .string "Hunh? What do you think you're doing?\n" .string "What, you're going to protect him?\p" .string "No one who crosses TEAM AQUA\n" .string "gets any mercy, not even a kid!\p" .string "Come on and battle me!$" -PetalburgWoods_Text_YoureKiddingMe: @ 822E542 +PetalburgWoods_Text_YoureKiddingMe: .string "You're kidding me! You're tough!$" -PetalburgWoods_Text_YouveGotSomeNerve: @ 822E563 +PetalburgWoods_Text_YouveGotSomeNerve: .string "Grrr… You've got some nerve\n" .string "meddling with TEAM AQUA!\l" .string "Come on and battle me again!\p" @@ -366,7 +366,7 @@ PetalburgWoods_Text_YouveGotSomeNerve: @ 822E563 .string "after something in RUSTBORO.\p" .string "I'll let you go today!$" -PetalburgWoods_Text_ThatWasAwfullyClose: @ 822E63D +PetalburgWoods_Text_ThatWasAwfullyClose: .string "Whew…\n" .string "That was awfully close!\p" .string "Thanks to you, he didn't rob me of\n" @@ -374,85 +374,85 @@ PetalburgWoods_Text_ThatWasAwfullyClose: @ 822E63D .string "I know, I'll give you a GREAT BALL as\n" .string "my thanks!$" -PetalburgWoods_Text_TeamAquaAfterSomethingInRustboro: @ 822E6C7 +PetalburgWoods_Text_TeamAquaAfterSomethingInRustboro: .string "Didn't that TEAM AQUA thug say\n" .string "they were after something in\l" .string "RUSTBORO, too?$" -PetalburgWoods_Text_ICantBeWastingTime: @ 822E712 +PetalburgWoods_Text_ICantBeWastingTime: .string "Uh-oh! It's a crisis!\n" .string "I can't be wasting time!$" -PetalburgWoods_Text_YoureLoadedWithItems: @ 822E741 +PetalburgWoods_Text_YoureLoadedWithItems: .string "You're loaded with items.\n" .string "I can't give you this GREAT BALL.$" -PetalburgWoods_Text_GoBugPokemonTeam: @ 822E77D +PetalburgWoods_Text_GoBugPokemonTeam: .string "I caught a whole bunch of POKéMON!\p" .string "Go, go, go!\n" .string "My BUG POKéMON team!$" -PetalburgWoods_Text_ICouldntWin: @ 822E7C1 +PetalburgWoods_Text_ICouldntWin: .string "I have all these POKéMON,\n" .string "but I couldn't win…$" -PetalburgWoods_Text_ImOutOfPokeBalls: @ 822E7EF +PetalburgWoods_Text_ImOutOfPokeBalls: .string "I caught a bunch of POKéMON.\n" .string "Now I'm out of POKé BALLS.$" -PetalburgWoods_Text_InstantlyPopularWithBugPokemon: @ 822E827 +PetalburgWoods_Text_InstantlyPopularWithBugPokemon: .string "If you take BUG POKéMON to school,\n" .string "you get to be instantly popular!$" -PetalburgWoods_Text_CantBePopularIfILose: @ 822E86B +PetalburgWoods_Text_CantBePopularIfILose: .string "I can't be popular if I lose.$" -PetalburgWoods_Text_PeopleRespectYou: @ 822E889 +PetalburgWoods_Text_PeopleRespectYou: .string "If you have a big BUG POKéMON,\n" .string "people respect you for it.$" -PetalburgWoods_Text_IWantRematch1: @ 822E8C3 +PetalburgWoods_Text_IWantRematch1: .string "I want a rematch when my BUG\n" .string "POKéMON grow up!\p" .string "I'm registering you in my POKéNAV!$" -PetalburgWoods_Text_IWantRematch2: @ 822E914 +PetalburgWoods_Text_IWantRematch2: .string "I want a rematch when my BUG \n" .string "POKéMON grow up!\p" .string "I'm registering you in my POKéNAV!$" -PetalburgWoods_Text_MyPokemonHaveGrown: @ 822E966 +PetalburgWoods_Text_MyPokemonHaveGrown: .string "My BUG POKéMON have grown.\n" .string "I'll be popular again.$" -PetalburgWoods_Text_CantBePopularIfLose: @ 822E998 +PetalburgWoods_Text_CantBePopularIfLose: .string "I can't be popular if I lose.$" -PetalburgWoods_Text_IveBeenTrainingHard: @ 822E9B6 +PetalburgWoods_Text_IveBeenTrainingHard: .string "You get to be popular if you have\n" .string "strong POKéMON, right?\l" .string "So, I've been training hard.$" -PetalburgWoods_Text_StayOutOfTallGrass: @ 822EA0C +PetalburgWoods_Text_StayOutOfTallGrass: .string "Yo, there!\n" .string "Your POKéMON doing okay?\p" .string "If your POKéMON are weak and you want\n" .string "to avoid battles, you should stay out\l" .string "of tall grass.$" -PetalburgWoods_Text_HiddenItemsExplanation: @ 822EA8B +PetalburgWoods_Text_HiddenItemsExplanation: .string "Sometimes, there are things on the\n" .string "ground even if you can't see them.\p" .string "That's why I always check where I'm\n" .string "walking.$" -PetalburgWoods_Text_TryUsingThisItem: @ 822EAFE +PetalburgWoods_Text_TryUsingThisItem: .string "Oh, neat!\n" .string "That's the BADGE from RUSTBORO GYM!\p" .string "You must be a TRAINER.\n" .string "You should try using this item.$" -PetalburgWoods_Text_MiracleSeedExplanation: @ 822EB63 +PetalburgWoods_Text_MiracleSeedExplanation: .string "It's a MIRACLE SEED.\n" .string "If a POKéMON holds that item, its\l" .string "GRASS-type moves become stronger.\p" @@ -460,7 +460,7 @@ PetalburgWoods_Text_MiracleSeedExplanation: @ 822EB63 .string "other convenient items for POKéMON\l" .string "to hold.$" -PetalburgWoods_Text_TrainerTipsExperience: @ 822EC10 +PetalburgWoods_Text_TrainerTipsExperience: .string "TRAINER TIPS\p" .string "Any POKéMON that appears even once\n" .string "in a battle is awarded EXP Points.\p" @@ -470,7 +470,7 @@ PetalburgWoods_Text_TrainerTipsExperience: @ 822EC10 .string "out. It will earn EXP Points without\l" .string "being exposed to any harm.$" -PetalburgWoods_Text_TrainerTipsPP: @ 822ED07 +PetalburgWoods_Text_TrainerTipsPP: .string "TRAINER TIPS\p" .string "In addition to Hit Points (HP), POKéMON\n" .string "have Power Points (PP) that are used to\l" diff --git a/data/maps/RecordCorner/scripts.inc b/data/maps/RecordCorner/scripts.inc index 4f342b860e..b317920de8 100644 --- a/data/maps/RecordCorner/scripts.inc +++ b/data/maps/RecordCorner/scripts.inc @@ -1,3 +1,3 @@ -RecordCorner_MapScripts:: @ 823B77F +RecordCorner_MapScripts:: .byte 0 diff --git a/data/maps/Route101/scripts.inc b/data/maps/Route101/scripts.inc index 66ce4abc8f..d83c8213b6 100644 --- a/data/maps/Route101/scripts.inc +++ b/data/maps/Route101/scripts.inc @@ -1,27 +1,27 @@ .set LOCALID_BIRCH, 2 .set LOCALID_ZIGZAGOON, 4 -Route101_MapScripts:: @ 81EBCBA +Route101_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route101_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, Route101_OnFrame .byte 0 -Route101_OnTransition: @ 81EBCC5 +Route101_OnTransition: call ProfBirch_EventScript_UpdateLocation end -Route101_OnFrame: @ 81EBCCB +Route101_OnFrame: map_script_2 VAR_ROUTE101_STATE, 0, Route101_EventScript_HideMapNamePopup .2byte 0 -Route101_EventScript_HideMapNamePopup:: @ 81EBCD5 +Route101_EventScript_HideMapNamePopup:: setflag FLAG_HIDE_MAP_NAME_POPUP setvar VAR_ROUTE101_STATE, 1 end -Route101_EventScript_StartBirchRescue:: @ 81EBCDE +Route101_EventScript_StartBirchRescue:: lockall - playbgm MUS_HELP, 1 + playbgm MUS_HELP, TRUE msgbox Route101_Text_HelpMe, MSGBOX_DEFAULT closemessage setobjectxy LOCALID_BIRCH, 0, 15 @@ -44,7 +44,7 @@ Route101_EventScript_StartBirchRescue:: @ 81EBCDE releaseall end -Route101_EventScript_PreventExitSouth:: @ 81EBD4E +Route101_EventScript_PreventExitSouth:: lockall msgbox Route101_Text_DontLeaveMe, MSGBOX_DEFAULT closemessage @@ -53,7 +53,7 @@ Route101_EventScript_PreventExitSouth:: @ 81EBD4E releaseall end -Route101_EventScript_PreventExitWest:: @ 81EBD64 +Route101_EventScript_PreventExitWest:: lockall msgbox Route101_Text_DontLeaveMe, MSGBOX_DEFAULT closemessage @@ -62,7 +62,7 @@ Route101_EventScript_PreventExitWest:: @ 81EBD64 releaseall end -Route101_EventScript_PreventExitNorth:: @ 81EBD7A +Route101_EventScript_PreventExitNorth:: lockall msgbox Route101_Text_DontLeaveMe, MSGBOX_DEFAULT closemessage @@ -71,19 +71,19 @@ Route101_EventScript_PreventExitNorth:: @ 81EBD7A releaseall end -Route101_Movement_PreventExitSouth: @ 81EBD90 +Route101_Movement_PreventExitSouth: walk_up step_end -Route101_Movement_PreventExitWest: @ 81EBD92 +Route101_Movement_PreventExitWest: walk_right step_end -Route101_Movement_PreventExitNorth: @ 81EBD94 +Route101_Movement_PreventExitNorth: walk_down step_end -Route101_Movement_ZigzagoonChaseInCircles: @ 81EBD96 +Route101_Movement_ZigzagoonChaseInCircles: walk_fast_up walk_fast_up walk_fast_up @@ -116,7 +116,7 @@ Route101_Movement_ZigzagoonChaseInCircles: @ 81EBD96 walk_fast_left step_end -Route101_Movement_ZigzagoonChase1: @ 81EBDB5 +Route101_Movement_ZigzagoonChase1: walk_fast_up walk_fast_right walk_fast_right @@ -128,14 +128,14 @@ Route101_Movement_ZigzagoonChase1: @ 81EBDB5 @ Leftover data? This command is unused. step_end -Route101_Movement_ZigzagoonFaceBirch: @ 81EBDBD +Route101_Movement_ZigzagoonFaceBirch: walk_in_place_fast_left walk_in_place_fast_left walk_in_place_fast_left walk_in_place_fast_left step_end -Route101_Movement_EnterScene: @ 81EBDC2 +Route101_Movement_EnterScene: walk_fast_up walk_fast_up walk_fast_up @@ -143,7 +143,7 @@ Route101_Movement_EnterScene: @ 81EBDC2 walk_in_place_fastest_left step_end -Route101_Movement_BirchRunInCircles: @ 81EBDC8 +Route101_Movement_BirchRunInCircles: walk_fast_up walk_fast_up walk_fast_right @@ -176,7 +176,7 @@ Route101_Movement_BirchRunInCircles: @ 81EBDC8 walk_fast_left step_end -Route101_Movement_BirchRunAway1: @ 81EBDE7 +Route101_Movement_BirchRunAway1: walk_fast_right walk_fast_right walk_fast_right @@ -188,37 +188,37 @@ Route101_Movement_BirchRunAway1: @ 81EBDE7 @ Leftover data? This command is unused. step_end -Route101_Movement_BirchFaceZigzagoon: @ 81EBDEF +Route101_Movement_BirchFaceZigzagoon: walk_in_place_fast_right walk_in_place_fast_right walk_in_place_fast_right walk_in_place_fast_right step_end -Route101_Movement_Unused1: @ 81EBDF4 +Route101_Movement_Unused1: walk_up walk_up step_end -Route101_Movement_Unused2: @ 81EBDF7 +Route101_Movement_Unused2: walk_up walk_left walk_up step_end -Route101_EventScript_Youngster:: @ 81EBDFB +Route101_EventScript_Youngster:: msgbox Route101_Text_TakeTiredPokemonToPokeCenter, MSGBOX_NPC end -Route101_EventScript_Boy:: @ 81EBE04 +Route101_EventScript_Boy:: msgbox Route101_Text_WildPokemonInTallGrass, MSGBOX_NPC end -Route101_EventScript_RouteSign:: @ 81EBE0D +Route101_EventScript_RouteSign:: msgbox Route101_Text_RouteSign, MSGBOX_SIGN end -Route101_EventScript_BirchsBag:: @ 81EBE16 +Route101_EventScript_BirchsBag:: lock faceplayer setflag FLAG_SYS_POKEMON_GET @@ -250,32 +250,32 @@ Route101_EventScript_BirchsBag:: @ 81EBE16 release end -Route101_EventScript_HideMayInBedroom:: @ 81EBE85 +Route101_EventScript_HideMayInBedroom:: setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM return -Route101_EventScript_HideBrendanInBedroom:: @ 81EBE89 +Route101_EventScript_HideBrendanInBedroom:: setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM return -Route101_Movement_BirchApproachPlayer: @ 81EBE8D +Route101_Movement_BirchApproachPlayer: walk_right step_end -Route101_Text_HelpMe: @ 81EBE8F +Route101_Text_HelpMe: .string "H-help me!$" -Route101_Text_PleaseHelp: @ 81EBE9A +Route101_Text_PleaseHelp: .string "Hello! You over there!\n" .string "Please! Help!\p" .string "In my BAG!\n" .string "There's a POKé BALL!$" -Route101_Text_DontLeaveMe: @ 81EBEDF +Route101_Text_DontLeaveMe: .string "Wh-Where are you going?!\n" .string "Don't leave me like this!$" -Route101_Text_YouSavedMe: @ 81EBF12 +Route101_Text_YouSavedMe: .string "PROF. BIRCH: Whew…\p" .string "I was in the tall grass studying wild\n" .string "POKéMON when I was jumped.\p" @@ -286,19 +286,19 @@ Route101_Text_YouSavedMe: @ 81EBF12 .string "This is not the place to chat, so come\n" .string "by my POKéMON LAB later, okay?$" -Route101_Text_TakeTiredPokemonToPokeCenter: @ 81EBFDD +Route101_Text_TakeTiredPokemonToPokeCenter: .string "If POKéMON get tired, take them to\n" .string "a POKéMON CENTER.\p" .string "There's a POKéMON CENTER in OLDALE\n" .string "TOWN right close by.$" -Route101_Text_WildPokemonInTallGrass: @ 81EC04A +Route101_Text_WildPokemonInTallGrass: .string "Wild POKéMON will jump out at you in\n" .string "tall grass.\p" .string "If you want to catch POKéMON, you have\n" .string "to go into the tall grass and search.$" -Route101_Text_RouteSign: @ 81EC0C8 +Route101_Text_RouteSign: .string "ROUTE 101\n" .string "{UP_ARROW} OLDALE TOWN$" diff --git a/data/maps/Route102/map.json b/data/maps/Route102/map.json index fc9adee3bf..aaa63b11f6 100644 --- a/data/maps/Route102/map.json +++ b/data/maps/Route102/map.json @@ -112,7 +112,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "2", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_102_ORAN", "script": "BerryTreeScript", "flag": "0" }, @@ -125,7 +125,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "1", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_102_PECHA", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route102/scripts.inc b/data/maps/Route102/scripts.inc index b14f204e58..cc1eaa4bb7 100644 --- a/data/maps/Route102/scripts.inc +++ b/data/maps/Route102/scripts.inc @@ -1,23 +1,23 @@ -Route102_MapScripts:: @ 81EC0E0 +Route102_MapScripts:: .byte 0 -Route102_EventScript_LittleBoy:: @ 81EC0E1 +Route102_EventScript_LittleBoy:: msgbox Route102_Text_ImNotVeryTall, MSGBOX_NPC end -Route102_EventScript_RouteSignOldale:: @ 81EC0EA +Route102_EventScript_RouteSignOldale:: msgbox Route102_Text_RouteSignOldale, MSGBOX_SIGN end -Route102_EventScript_RouteSignPetalburg:: @ 81EC0F3 +Route102_EventScript_RouteSignPetalburg:: msgbox Route102_Text_RouteSignPetalburg, MSGBOX_SIGN end -Route102_EventScript_Boy:: @ 81EC0FC +Route102_EventScript_Boy:: msgbox Route102_Text_CatchWholeBunchOfPokemon, MSGBOX_NPC end -Route102_EventScript_Calvin:: @ 81EC105 +Route102_EventScript_Calvin:: trainerbattle_single TRAINER_CALVIN_1, Route102_Text_CalvinIntro, Route102_Text_CalvinDefeated, Route102_EventScript_CalvinRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -30,52 +30,52 @@ Route102_EventScript_Calvin:: @ 81EC105 release end -Route102_EventScript_CalvinRegisterMatchCallAfterBattle:: @ 81EC146 +Route102_EventScript_CalvinRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 goto_if_set FLAG_HAS_MATCH_CALL, Route102_EventScript_CalvinRegisterMatchCall release end -Route102_EventScript_CalvinRegisterMatchCall:: @ 81EC157 +Route102_EventScript_CalvinRegisterMatchCall:: msgbox Route102_Text_CalvinRegisterShort, MSGBOX_DEFAULT register_matchcall TRAINER_CALVIN_1 release end -Route102_EventScript_CalvinTryRegister:: @ 81EC170 +Route102_EventScript_CalvinTryRegister:: goto_if_set FLAG_HAS_MATCH_CALL, Route102_EventScript_CalvinRegister msgbox Route102_Text_CalvinPostBattle, MSGBOX_DEFAULT release end -Route102_EventScript_CalvinRegister:: @ 81EC183 +Route102_EventScript_CalvinRegister:: msgbox Route102_Text_CalvinRegister, MSGBOX_DEFAULT register_matchcall TRAINER_CALVIN_1 release end -Route102_EventScript_CalvinRematch:: @ 81EC19C +Route102_EventScript_CalvinRematch:: trainerbattle_rematch TRAINER_CALVIN_1, Route102_Text_CalvinRematchIntro, Route102_Text_CalvinRematchDefeated msgbox Route102_Text_CalvinRematchPostBattle, MSGBOX_AUTOCLOSE end -Route102_EventScript_Rick:: @ 81EC1B3 +Route102_EventScript_Rick:: trainerbattle_single TRAINER_RICK, Route102_Text_RickIntro, Route102_Text_RickDefeated msgbox Route102_Text_RickPostBattle, MSGBOX_AUTOCLOSE end -Route102_EventScript_Tiana:: @ 81EC1CA +Route102_EventScript_Tiana:: trainerbattle_single TRAINER_TIANA, Route102_Text_TianaIntro, Route102_Text_TianaDefeated msgbox Route102_Text_TianaPostBattle, MSGBOX_AUTOCLOSE end -Route102_EventScript_Allen:: @ 81EC1E1 +Route102_EventScript_Allen:: trainerbattle_single TRAINER_ALLEN, Route102_Text_AllenIntro, Route102_Text_AllenDefeated msgbox Route102_Text_AllenPostBattle, MSGBOX_AUTOCLOSE end -Route102_Text_WatchMeCatchPokemon: @ 81EC1F8 +Route102_Text_WatchMeCatchPokemon: .string "WALLY: {PLAYER}…\n" .string "POKéMON hide in tall grass like this,\l" .string "don't they?\p" @@ -83,29 +83,29 @@ Route102_Text_WatchMeCatchPokemon: @ 81EC1F8 .string "catch one properly.\p" .string "…Whoa!$" -Route102_Text_WallyIDidIt: @ 81EC271 +Route102_Text_WallyIDidIt: .string "WALLY: I did it… It's my…\n" .string "My POKéMON!$" -Route102_Text_LetsGoBack: @ 81EC297 +Route102_Text_LetsGoBack: .string "{PLAYER}, thank you!\n" .string "Let's go back to the GYM!$" -Route102_Text_ImNotVeryTall: @ 81EC2C0 +Route102_Text_ImNotVeryTall: .string "I'm…not very tall, so I sink right\n" .string "into tall grass.\p" .string "The grass goes up my nose and…\n" .string "Fwafwafwafwafwa…\p" .string "Fwatchoo!$" -Route102_Text_CatchWholeBunchOfPokemon: @ 81EC32E +Route102_Text_CatchWholeBunchOfPokemon: .string "I'm going to catch a whole bunch of\n" .string "POKéMON!$" -Route102_Text_RouteSignOldale: @ 81EC35B +Route102_Text_RouteSignOldale: .string "ROUTE 102\n" .string "{RIGHT_ARROW} OLDALE TOWN$" -Route102_Text_RouteSignPetalburg: @ 81EC373 +Route102_Text_RouteSignPetalburg: .string "ROUTE 102\n" .string "{LEFT_ARROW} PETALBURG CITY$" diff --git a/data/maps/Route103/map.json b/data/maps/Route103/map.json index 4b91f913b8..fbf92dd0c1 100644 --- a/data/maps/Route103/map.json +++ b/data/maps/Route103/map.json @@ -112,7 +112,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "5", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_CHERI_1", "script": "BerryTreeScript", "flag": "0" }, @@ -125,7 +125,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "6", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_LEPPA", "script": "BerryTreeScript", "flag": "0" }, @@ -138,7 +138,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "7", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_CHERI_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc index 965b5ff5cd..f0ac53949d 100644 --- a/data/maps/Route103/scripts.inc +++ b/data/maps/Route103/scripts.inc @@ -1,25 +1,25 @@ .set LOCALID_RIVAL, 2 -Route103_MapScripts:: @ 81EC38E +Route103_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route103_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route103_OnLoad .byte 0 -Route103_OnTransition: @ 81EC399 +Route103_OnTransition: call Common_EventScript_SetupRivalGfxId call ProfBirch_EventScript_UpdateLocation end -Route103_OnLoad: @ 81EC3A4 +Route103_OnLoad: call_if_set FLAG_SYS_GAME_CLEAR, Route103_EventScript_OpenAlteringCave end -Route103_EventScript_OpenAlteringCave:: @ 81EC3AE +Route103_EventScript_OpenAlteringCave:: setmetatile 45, 5, METATILE_General_CaveEntrance_Top, 1 setmetatile 45, 6, METATILE_General_CaveEntrance_Bottom, 0 return -Route103_EventScript_Rival:: @ 81EC3C1 +Route103_EventScript_Rival:: lockall checkplayergender compare VAR_RESULT, MALE @@ -28,10 +28,10 @@ Route103_EventScript_Rival:: @ 81EC3C1 goto_if_eq Route103_EventScript_RivalBrendan end -Route103_EventScript_RivalMay:: @ 81EC3DA +Route103_EventScript_RivalMay:: msgbox Route103_Text_MayRoute103Pokemon, MSGBOX_DEFAULT closemessage - playbgm MUS_ENCOUNTER_MAY, 1 + playbgm MUS_ENCOUNTER_MAY, TRUE applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark @@ -45,10 +45,10 @@ Route103_EventScript_RivalMay:: @ 81EC3DA case 2, Route103_EventScript_StartMayBattleMudkip end -Route103_EventScript_RivalBrendan:: @ 81EC434 +Route103_EventScript_RivalBrendan:: msgbox Route103_Text_BrendanRoute103Pokemon, MSGBOX_DEFAULT closemessage - playbgm MUS_ENCOUNTER_BRENDAN, 1 + playbgm MUS_ENCOUNTER_BRENDAN, TRUE applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark @@ -62,47 +62,47 @@ Route103_EventScript_RivalBrendan:: @ 81EC434 case 2, Route103_EventScript_StartBrendanBattleMudkip end -Route103_EventScript_StartMayBattleTreecko:: @ 81EC48E +Route103_EventScript_StartMayBattleTreecko:: trainerbattle_no_intro TRAINER_MAY_ROUTE_103_TREECKO, Route103_Text_MayDefeated goto Route103_EventScript_AfterMayBattle end -Route103_EventScript_StartMayBattleTorchic:: @ 81EC49E +Route103_EventScript_StartMayBattleTorchic:: trainerbattle_no_intro TRAINER_MAY_ROUTE_103_TORCHIC, Route103_Text_MayDefeated goto Route103_EventScript_AfterMayBattle end -Route103_EventScript_StartMayBattleMudkip:: @ 81EC4AE +Route103_EventScript_StartMayBattleMudkip:: trainerbattle_no_intro TRAINER_MAY_ROUTE_103_MUDKIP, Route103_Text_MayDefeated goto Route103_EventScript_AfterMayBattle end -Route103_EventScript_StartBrendanBattleTreecko:: @ 81EC4BE +Route103_EventScript_StartBrendanBattleTreecko:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_103_TREECKO, Route103_Text_BrendanDefeated goto Route103_EventScript_AfterBrendanBattle end -Route103_EventScript_StartBrendanBattleTorchic:: @ 81EC4CE +Route103_EventScript_StartBrendanBattleTorchic:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_103_TORCHIC, Route103_Text_BrendanDefeated goto Route103_EventScript_AfterBrendanBattle end -Route103_EventScript_StartBrendanBattleMudkip:: @ 81EC4DE +Route103_EventScript_StartBrendanBattleMudkip:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_103_MUDKIP, Route103_Text_BrendanDefeated goto Route103_EventScript_AfterBrendanBattle end -Route103_EventScript_AfterMayBattle:: @ 81EC4EE +Route103_EventScript_AfterMayBattle:: msgbox Route103_Text_MayTimeToHeadBack, MSGBOX_DEFAULT goto Route103_EventScript_RivalExit end -Route103_EventScript_AfterBrendanBattle:: @ 81EC4FC +Route103_EventScript_AfterBrendanBattle:: msgbox Route103_Text_BrendanTimeToHeadBack, MSGBOX_DEFAULT goto Route103_EventScript_RivalExit end -Route103_EventScript_RivalExit:: @ 81EC50A +Route103_EventScript_RivalExit:: closemessage switch VAR_FACING case DIR_SOUTH, Route103_EventScript_RivalExitFacingSouth @@ -111,7 +111,7 @@ Route103_EventScript_RivalExit:: @ 81EC50A case DIR_EAST, Route103_EventScript_RivalExitFacingEastOrWest end -Route103_EventScript_RivalExitFacingNorth:: @ 81EC53D +Route103_EventScript_RivalExitFacingNorth:: applymovement OBJ_EVENT_ID_PLAYER, Route103_Movement_WatchRivalExitFacingNorth applymovement LOCALID_RIVAL, Route103_Movement_RivalExitFacingNorth1 waitmovement 0 @@ -121,7 +121,7 @@ Route103_EventScript_RivalExitFacingNorth:: @ 81EC53D goto Route103_EventScript_RivalEnd end -Route103_EventScript_RivalExitFacingEastOrWest:: @ 81EC561 +Route103_EventScript_RivalExitFacingEastOrWest:: applymovement OBJ_EVENT_ID_PLAYER, Route103_Movement_WatchRivalExitFacingEastOrWest applymovement LOCALID_RIVAL, Route103_Movement_RivalExit1 waitmovement 0 @@ -131,7 +131,7 @@ Route103_EventScript_RivalExitFacingEastOrWest:: @ 81EC561 goto Route103_EventScript_RivalEnd end -Route103_EventScript_RivalExitFacingSouth:: @ 81EC585 +Route103_EventScript_RivalExitFacingSouth:: applymovement LOCALID_RIVAL, Route103_Movement_RivalExit1 waitmovement 0 playse SE_LEDGE @@ -140,7 +140,7 @@ Route103_EventScript_RivalExitFacingSouth:: @ 81EC585 goto Route103_EventScript_RivalEnd end -Route103_EventScript_RivalEnd:: @ 81EC5A2 +Route103_EventScript_RivalEnd:: removeobject LOCALID_RIVAL setvar VAR_BIRCH_LAB_STATE, 4 clearflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_RIVAL @@ -152,12 +152,12 @@ Route103_EventScript_RivalEnd:: @ 81EC5A2 releaseall end -Route103_Movement_RivalExitFacingNorth1: @ 81EC5BE +Route103_Movement_RivalExitFacingNorth1: walk_left walk_down step_end -Route103_EventScript_RivalExitFacingNorth2: @ 81EC5C1 +Route103_EventScript_RivalExitFacingNorth2: jump_2_down delay_16 walk_down @@ -166,7 +166,7 @@ Route103_EventScript_RivalExitFacingNorth2: @ 81EC5C1 walk_down step_end -Route103_Movement_WatchRivalExitFacingNorth: @ 81EC5C8 +Route103_Movement_WatchRivalExitFacingNorth: delay_16 delay_4 walk_in_place_fastest_left @@ -174,11 +174,11 @@ Route103_Movement_WatchRivalExitFacingNorth: @ 81EC5C8 walk_in_place_fastest_down step_end -Route103_Movement_RivalExit1: @ 81EC5CE +Route103_Movement_RivalExit1: walk_down step_end -Route103_Movement_RivalExit2: @ 81EC5D0 +Route103_Movement_RivalExit2: jump_2_down delay_16 walk_down @@ -186,29 +186,29 @@ Route103_Movement_RivalExit2: @ 81EC5D0 walk_down step_end -Route103_Movement_WatchRivalExitFacingEastOrWest: @ 81EC5D6 +Route103_Movement_WatchRivalExitFacingEastOrWest: delay_16 walk_in_place_fastest_down step_end -Route103_EventScript_Boy:: @ 81EC5D9 +Route103_EventScript_Boy:: msgbox Route103_Text_ShouldHaveBroughtPotion, MSGBOX_NPC end -Route103_EventScript_Man:: @ 81EC5E2 +Route103_EventScript_Man:: msgbox Route103_Text_ShortcutToOldale, MSGBOX_NPC end -Route103_EventScript_RouteSign:: @ 81EC5EB +Route103_EventScript_RouteSign:: msgbox Route103_Text_RouteSign, MSGBOX_SIGN end -Route103_EventScript_Daisy:: @ 81EC5F4 +Route103_EventScript_Daisy:: trainerbattle_single TRAINER_DAISY, Route103_Text_DaisyIntro, Route103_Text_DaisyDefeated msgbox Route103_Text_DaisyPostBattle, MSGBOX_AUTOCLOSE end -Route103_EventScript_Amy:: @ 81EC60B +Route103_EventScript_Amy:: trainerbattle_double TRAINER_AMY_AND_LIV_1, Route103_Text_AmyIntro, Route103_Text_AmyDefeated, Route103_Text_AmyNotEnoughPokemon, Route102_EventScript_AmyRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -216,18 +216,18 @@ Route103_EventScript_Amy:: @ 81EC60B msgbox Route103_Text_AmyPostBattle, MSGBOX_AUTOCLOSE end -Route102_EventScript_AmyRegisterMatchCallAfterBattle:: @ 81EC63A +Route102_EventScript_AmyRegisterMatchCallAfterBattle:: msgbox Route103_Text_AmyLivRegister, MSGBOX_DEFAULT register_matchcall TRAINER_AMY_AND_LIV_1 release end -Route102_EventScript_AmyRematch:: @ 81EC653 +Route102_EventScript_AmyRematch:: trainerbattle_rematch_double TRAINER_AMY_AND_LIV_1, Route103_Text_AmyRematchIntro, Route103_Text_AmyRematchDefeated, Route103_Text_AmyRematchNotEnoughPokemon msgbox Route103_Text_AmyRematchPostBattle, MSGBOX_AUTOCLOSE end -Route103_EventScript_Liv:: @ 81EC66E +Route103_EventScript_Liv:: trainerbattle_double TRAINER_AMY_AND_LIV_1, Route103_Text_LivIntro, Route103_Text_LivDefeated, Route103_Text_LivNotEnoughPokemon, Route102_EventScript_LivRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -235,23 +235,23 @@ Route103_EventScript_Liv:: @ 81EC66E msgbox Route103_Text_LivPostBattle, MSGBOX_AUTOCLOSE end -Route102_EventScript_LivRegisterMatchCallAfterBattle:: @ 81EC69D +Route102_EventScript_LivRegisterMatchCallAfterBattle:: msgbox Route103_Text_AmyLivRegister, MSGBOX_DEFAULT register_matchcall TRAINER_AMY_AND_LIV_1 release end -Route102_EventScript_LivRematch:: @ 81EC6B6 +Route102_EventScript_LivRematch:: trainerbattle_rematch_double TRAINER_AMY_AND_LIV_1, Route103_Text_LivRematchIntro, Route103_Text_LivRematchDefeated, Route103_Text_LivRematchNotEnoughPokemon msgbox Route103_Text_LivRematchPostBattle, MSGBOX_AUTOCLOSE end -Route103_EventScript_Andrew:: @ 81EC6D1 +Route103_EventScript_Andrew:: trainerbattle_single TRAINER_ANDREW, Route103_Text_AndrewIntro, Route103_Text_AndrewDefeated msgbox Route103_Text_AndrewPostBattle, MSGBOX_AUTOCLOSE end -Route103_EventScript_Miguel:: @ 81EC6E8 +Route103_EventScript_Miguel:: trainerbattle_single TRAINER_MIGUEL_1, Route103_Text_MiguelIntro, Route103_Text_MiguelDefeated, Route102_EventScript_MiguelRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -260,7 +260,7 @@ Route103_EventScript_Miguel:: @ 81EC6E8 release end -Route102_EventScript_MiguelRegisterMatchCallAfterBattle:: @ 81EC714 +Route102_EventScript_MiguelRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route103_Text_MiguelRegister, MSGBOX_DEFAULT @@ -268,36 +268,36 @@ Route102_EventScript_MiguelRegisterMatchCallAfterBattle:: @ 81EC714 release end -Route103_EventScript_MiguelRematch:: @ 81EC733 +Route103_EventScript_MiguelRematch:: trainerbattle_rematch TRAINER_MIGUEL_1, Route103_Text_MiguelRematchIntro, Route103_Text_MiguelRematchDefeated msgbox Route103_Text_MiguelRematchPostBattle, MSGBOX_AUTOCLOSE end -Route103_EventScript_Marcos:: @ 81EC74A +Route103_EventScript_Marcos:: trainerbattle_single TRAINER_MARCOS, Route103_Text_MarcosIntro, Route103_Text_MarcosDefeated msgbox Route103_Text_MarcosPostBattle, MSGBOX_AUTOCLOSE end -Route103_EventScript_Rhett:: @ 81EC761 +Route103_EventScript_Rhett:: trainerbattle_single TRAINER_RHETT, Route103_Text_RhettIntro, Route103_Text_RhettDefeated msgbox Route103_Text_RhettPostBattle, MSGBOX_AUTOCLOSE end -Route103_EventScript_Pete:: @ 81EC778 +Route103_EventScript_Pete:: trainerbattle_single TRAINER_PETE, Route103_Text_PeteIntro, Route103_Text_PeteDefeated msgbox Route103_Text_PetePostBattle, MSGBOX_AUTOCLOSE end -Route103_EventScript_Isabelle:: @ 81EC78F +Route103_EventScript_Isabelle:: trainerbattle_single TRAINER_ISABELLE, Route103_Text_IsabelleIntro, Route103_Text_IsabelleDefeated msgbox Route103_Text_IsabellePostBattle, MSGBOX_AUTOCLOSE end -Route103_Text_MayRoute103Pokemon: @ 81EC7A6 +Route103_Text_MayRoute103Pokemon: .string "MAY: Let's see… The POKéMON found\n" .string "on ROUTE 103 include…$" -Route103_Text_MayLetsBattle: @ 81EC7DE +Route103_Text_MayLetsBattle: .string "Oh, hi, {PLAYER}{KUN}!\p" .string "…Oh, I see, my dad gave you\n" .string "a POKéMON as a gift.\p" @@ -306,11 +306,11 @@ Route103_Text_MayLetsBattle: @ 81EC7DE .string "I'll give you a taste of what being\n" .string "a TRAINER is like.$" -Route103_Text_MayDefeated: @ 81EC881 +Route103_Text_MayDefeated: .string "Wow! That's great!\n" .string "{PLAYER}{KUN}, you're pretty good!$" -Route103_Text_MayTimeToHeadBack: @ 81EC8AE +Route103_Text_MayTimeToHeadBack: .string "MAY: I think I know why my dad has\n" .string "an eye out for you now.\p" .string "I mean, you just got that POKéMON,\n" @@ -320,11 +320,11 @@ Route103_Text_MayTimeToHeadBack: @ 81EC8AE .string "Well, it's time to head back to\n" .string "the LAB.$" -Route103_Text_BrendanRoute103Pokemon: @ 81EC989 +Route103_Text_BrendanRoute103Pokemon: .string "BRENDAN: Okay, so it's this one and\n" .string "that one that live on ROUTE 103…$" -Route103_Text_BrendanLetsBattle: @ 81EC9CE +Route103_Text_BrendanLetsBattle: .string "Hey, it's {PLAYER}!\p" .string "…Oh, yeah, Dad gave you a POKéMON.\p" .string "Since we're here, how about a little\n" @@ -332,10 +332,10 @@ Route103_Text_BrendanLetsBattle: @ 81EC9CE .string "I'll teach you what being a TRAINER's\n" .string "about!$" -Route103_Text_BrendanDefeated: @ 81ECA59 +Route103_Text_BrendanDefeated: .string "Huh, {PLAYER}, you're not too shabby.$" -Route103_Text_BrendanTimeToHeadBack: @ 81ECA79 +Route103_Text_BrendanTimeToHeadBack: .string "BRENDAN: I think I get it.\n" .string "I think I know why my dad has his eye\l" .string "out for you now.\p" @@ -345,16 +345,16 @@ Route103_Text_BrendanTimeToHeadBack: @ 81ECA79 .string "could befriend any POKéMON with ease.\p" .string "We should head back to the LAB.$" -Route103_Text_ShouldHaveBroughtPotion: @ 81ECB73 +Route103_Text_ShouldHaveBroughtPotion: .string "My POKéMON is staggeringly tired…\n" .string "I should have brought a POTION…$" -Route103_Text_ShortcutToOldale: @ 81ECBB5 +Route103_Text_ShortcutToOldale: .string "If you cross the sea from here,\n" .string "it'll be a shortcut to OLDALE TOWN.\p" .string "Fufufu, that's useful, isn't it?$" -Route103_Text_RouteSign: @ 81ECC1A +Route103_Text_RouteSign: .string "ROUTE 103\n" .string "{DOWN_ARROW} OLDALE TOWN$" diff --git a/data/maps/Route104/map.json b/data/maps/Route104/map.json index 69e5faf27b..6ec8b37526 100644 --- a/data/maps/Route104/map.json +++ b/data/maps/Route104/map.json @@ -156,7 +156,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "8", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_CHERI_1", "script": "BerryTreeScript", "flag": "0" }, @@ -169,7 +169,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "9", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_2", "script": "BerryTreeScript", "flag": "0" }, @@ -182,7 +182,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "10", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_LEPPA", "script": "BerryTreeScript", "flag": "0" }, @@ -195,7 +195,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "11", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_ORAN_2", "script": "BerryTreeScript", "flag": "0" }, @@ -208,7 +208,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "12", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_3", "script": "BerryTreeScript", "flag": "0" }, @@ -221,7 +221,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "13", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_PECHA", "script": "BerryTreeScript", "flag": "0" }, @@ -247,7 +247,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "3", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_1", "script": "BerryTreeScript", "flag": "0" }, @@ -260,7 +260,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "4", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_ORAN_1", "script": "BerryTreeScript", "flag": "0" }, @@ -273,7 +273,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "75", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_4", "script": "BerryTreeScript", "flag": "0" }, @@ -286,7 +286,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "76", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_CHERI_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index d1faca53a7..87880ab59b 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -2,37 +2,37 @@ @ These are labeled in DewfordTown/scripts.inc .set LOCALID_RIVAL, 34 -Route104_MapScripts:: @ 81ECC32 +Route104_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, Route104_OnFrame map_script MAP_SCRIPT_ON_TRANSITION, Route104_OnTransition .byte 0 -Route104_OnFrame: @ 81ECC3D +Route104_OnFrame: map_script_2 VAR_BOARD_BRINEY_BOAT_STATE, 1, Route104_EventScript_StartSailToDewford .2byte 0 -Route104_EventScript_StartSailToDewford:: @ 81ECC47 +Route104_EventScript_StartSailToDewford:: lockall goto Route104_EventScript_SailToDewford end -Route104_OnTransition: @ 81ECC4E +Route104_OnTransition: call Common_EventScript_SetupRivalGfxId call Route104_EventScript_TrySetRivalPos call Route104_EventScript_ShowOrHideWhiteHerbFlorist end -Route104_EventScript_ShowOrHideWhiteHerbFlorist:: @ 81ECC5E +Route104_EventScript_ShowOrHideWhiteHerbFlorist:: goto_if_unset FLAG_MET_PRETTY_PETAL_SHOP_OWNER, Route104_EventScript_HideWhiteHerbFlorist goto_if_unset FLAG_BADGE03_GET, Route104_EventScript_HideWhiteHerbFlorist clearflag FLAG_HIDE_ROUTE_104_WHITE_HERB_FLORIST return -Route104_EventScript_HideWhiteHerbFlorist:: @ 81ECC74 +Route104_EventScript_HideWhiteHerbFlorist:: setflag FLAG_HIDE_ROUTE_104_WHITE_HERB_FLORIST return -Route104_EventScript_TrySetRivalPos:: @ 81ECC78 +Route104_EventScript_TrySetRivalPos:: compare VAR_BOARD_BRINEY_BOAT_STATE, 1 goto_if_ge Route104_EventScript_DontSetRivalPos goto_if_set FLAG_MET_RIVAL_RUSTBORO, Route104_EventScript_DontSetRivalPos @@ -40,17 +40,17 @@ Route104_EventScript_TrySetRivalPos:: @ 81ECC78 setobjectxyperm LOCALID_RIVAL, 17, 52 return -Route104_EventScript_DontSetRivalPos:: @ 81ECC9D +Route104_EventScript_DontSetRivalPos:: return -Route104_EventScript_Rival:: @ 81ECC9E +Route104_EventScript_Rival:: lockall setvar VAR_0x8008, 1 applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 goto Route104_EventScript_RivalEncounter -Route104_EventScript_RivalTrigger:: @ 81ECCB3 +Route104_EventScript_RivalTrigger:: lockall setflag FLAG_HIDE_RUSTBORO_CITY_RIVAL setvar VAR_RUSTBORO_CITY_STATE, 8 @@ -75,7 +75,7 @@ Route104_EventScript_RivalTrigger:: @ 81ECCB3 goto Route104_EventScript_RivalEncounter @ Unused, shares script with Rustboro encounter instead -Route104_EventScript_PlayRivalMusic:: @ 81ECD11 +Route104_EventScript_PlayRivalMusic:: checkplayergender compare VAR_RESULT, MALE goto_if_eq Route104_EventScript_PlayMayMusic @@ -83,15 +83,15 @@ Route104_EventScript_PlayRivalMusic:: @ 81ECD11 goto_if_eq Route104_EventScript_PlayBrendanMusic return -Route104_EventScript_PlayMayMusic:: @ 81ECD29 - playbgm MUS_ENCOUNTER_MAY, 1 +Route104_EventScript_PlayMayMusic:: + playbgm MUS_ENCOUNTER_MAY, TRUE return -Route104_EventScript_PlayBrendanMusic:: @ 81ECD2E - playbgm MUS_ENCOUNTER_BRENDAN, 1 +Route104_EventScript_PlayBrendanMusic:: + playbgm MUS_ENCOUNTER_BRENDAN, TRUE return -Route104_EventScript_RivalEncounter:: @ 81ECD33 +Route104_EventScript_RivalEncounter:: checkplayergender compare VAR_RESULT, MALE goto_if_eq Route104_EventScript_MayEncounter @@ -99,7 +99,7 @@ Route104_EventScript_RivalEncounter:: @ 81ECD33 goto_if_eq Route104_EventScript_BrendanEncounter end -Route104_EventScript_MayEncounter:: @ 81ECD4B +Route104_EventScript_MayEncounter:: goto_if_set FLAG_DEFEATED_RIVAL_ROUTE_104, Route104_EventScript_MayDefeated goto_if_set FLAG_REGISTER_RIVAL_POKENAV, Route104_EventScript_MayAskToBattle setflag FLAG_REGISTER_RIVAL_POKENAV @@ -128,21 +128,21 @@ Route104_EventScript_MayEncounter:: @ 81ECD4B releaseall end -Route104_Movement_RivalWalkSlowLeft: @ 81ECDC8 +Route104_Movement_RivalWalkSlowLeft: walk_slow_left step_end -Route104_Movement_RivalApproachPlayer: @ 81ECDCA +Route104_Movement_RivalApproachPlayer: walk_down face_right step_end -Route104_Movement_PlayerFaceRival: @ 81ECDCD +Route104_Movement_PlayerFaceRival: delay_4 walk_in_place_fastest_left step_end -Route104_EventScript_MayAskToBattle:: @ 81ECDD0 +Route104_EventScript_MayAskToBattle:: msgbox Route104_Text_MayLetsBattle, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq Route104_EventScript_BattleMay @@ -150,7 +150,7 @@ Route104_EventScript_MayAskToBattle:: @ 81ECDD0 releaseall end -Route104_EventScript_BattleMay:: @ 81ECDED +Route104_EventScript_BattleMay:: msgbox Route104_Text_MayIntro, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, Route104_EventScript_BattleMayTreecko @@ -158,37 +158,37 @@ Route104_EventScript_BattleMay:: @ 81ECDED case 2, Route104_EventScript_BattleMayMudkip end -Route104_EventScript_MayDefeated:: @ 81ECE1C +Route104_EventScript_MayDefeated:: msgbox Route104_Text_MayPostBattle, MSGBOX_DEFAULT compare VAR_0x8008, 0 call_if_eq Route104_EventScript_RestoreMusic releaseall end -Route104_EventScript_RestoreMusic:: @ 81ECE31 +Route104_EventScript_RestoreMusic:: savebgm MUS_DUMMY fadedefaultbgm return -Route104_EventScript_BattleMayTreecko:: @ 81ECE36 +Route104_EventScript_BattleMayTreecko:: trainerbattle_no_intro TRAINER_MAY_RUSTBORO_TREECKO, Route104_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_MayDefeated end -Route104_EventScript_BattleMayTorchic:: @ 81ECE49 +Route104_EventScript_BattleMayTorchic:: trainerbattle_no_intro TRAINER_MAY_RUSTBORO_TORCHIC, Route104_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_MayDefeated end -Route104_EventScript_BattleMayMudkip:: @ 81ECE5C +Route104_EventScript_BattleMayMudkip:: trainerbattle_no_intro TRAINER_MAY_RUSTBORO_MUDKIP, Route104_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_MayDefeated end -Route104_EventScript_BrendanEncounter:: @ 81ECE6F +Route104_EventScript_BrendanEncounter:: goto_if_set FLAG_DEFEATED_RIVAL_ROUTE_104, Route104_EventScript_BrendanDefeated goto_if_set FLAG_REGISTER_RIVAL_POKENAV, Route104_EventScript_BrendanAskToBattle setflag FLAG_REGISTER_RIVAL_POKENAV @@ -217,7 +217,7 @@ Route104_EventScript_BrendanEncounter:: @ 81ECE6F releaseall end -Route104_EventScript_BrendanAskToBattle:: @ 81ECEEC +Route104_EventScript_BrendanAskToBattle:: msgbox Route104_Text_BrendanLetsBattle, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq Route104_EventScript_BattleBrendan @@ -225,7 +225,7 @@ Route104_EventScript_BrendanAskToBattle:: @ 81ECEEC releaseall end -Route104_EventScript_BattleBrendan:: @ 81ECF09 +Route104_EventScript_BattleBrendan:: msgbox Route104_Text_BrendanIntro, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, Route104_EventScript_BattleBrendanTreecko @@ -233,42 +233,42 @@ Route104_EventScript_BattleBrendan:: @ 81ECF09 case 2, Route104_EventScript_BattleBrendanMudkip end -Route104_EventScript_BrendanDefeated:: @ 81ECF38 +Route104_EventScript_BrendanDefeated:: msgbox Route104_Text_BrendanPostBattle, MSGBOX_DEFAULT compare VAR_0x8008, 0 call_if_eq Route104_EventScript_RestoreMusic releaseall end -Route104_EventScript_BattleBrendanTreecko:: @ 81ECF4D +Route104_EventScript_BattleBrendanTreecko:: trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_TREECKO, Route104_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_BrendanDefeated end -Route104_EventScript_BattleBrendanTorchic:: @ 81ECF60 +Route104_EventScript_BattleBrendanTorchic:: trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_TORCHIC, Route104_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_BrendanDefeated end -Route104_EventScript_BattleBrendanMudkip:: @ 81ECF73 +Route104_EventScript_BattleBrendanMudkip:: trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_MUDKIP, Route104_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_BrendanDefeated end -Route104_Movement_PlayerBackUp: @ 81ECF86 +Route104_Movement_PlayerBackUp: lock_facing_direction walk_down unlock_facing_direction step_end -Route104_Movement_RivalExitBrineysCottage: @ 81ECF8A +Route104_Movement_RivalExitBrineysCottage: walk_down step_end -Route104_EventScript_ExpertF:: @ 81ECF8C +Route104_EventScript_ExpertF:: lock faceplayer goto_if_set FLAG_RECEIVED_CHESTO_BERRY_ROUTE_104, Route104_EventScript_ReceivedBerry @@ -281,12 +281,12 @@ Route104_EventScript_ExpertF:: @ 81ECF8C release end -Route104_EventScript_ReceivedBerry:: @ 81ECFC3 +Route104_EventScript_ReceivedBerry:: msgbox Route104_Text_TrainersOftenMakeMonHoldBerries, MSGBOX_DEFAULT release end -Route104_EventScript_WhiteHerbFlorist:: @ 81ECFCD +Route104_EventScript_WhiteHerbFlorist:: lock faceplayer goto_if_set FLAG_RECEIVED_WHITE_HERB, Route104_EventScript_ReceivedWhiteHerb @@ -298,48 +298,48 @@ Route104_EventScript_WhiteHerbFlorist:: @ 81ECFCD release end -Route104_EventScript_ReceivedWhiteHerb:: @ 81ECFFC +Route104_EventScript_ReceivedWhiteHerb:: msgbox Route104_Text_FlowerShopSellingSaplings, MSGBOX_DEFAULT release end -Route104_EventScript_Girl1:: @ 81ED006 +Route104_EventScript_Girl1:: msgbox Route104_Text_BrineyLivesInSeasideCottage, MSGBOX_NPC end -Route104_EventScript_BugCatcher:: @ 81ED00F +Route104_EventScript_BugCatcher:: msgbox Route104_Text_WhatsItLikeAtBottomOfSea, MSGBOX_SIGN end -Route104_EventScript_BrineysCottageSign:: @ 81ED018 +Route104_EventScript_BrineysCottageSign:: msgbox Route104_Text_MrBrineysCottage, MSGBOX_SIGN end -Route104_EventScript_RouteSignPetalburg:: @ 81ED021 +Route104_EventScript_RouteSignPetalburg:: msgbox Route104_Text_RouteSignPetalburg, MSGBOX_SIGN end -Route104_EventScript_RouteSignRustboro:: @ 81ED02A +Route104_EventScript_RouteSignRustboro:: msgbox Route104_Text_RouteSignRustboro, MSGBOX_SIGN end -Route104_EventScript_FlowerShopSign:: @ 81ED033 +Route104_EventScript_FlowerShopSign:: msgbox Route104_Text_PrettyPetalFlowShop, MSGBOX_SIGN end -Route104_EventScript_TrainerTipsDoubleBattles:: @ 81ED03C +Route104_EventScript_TrainerTipsDoubleBattles:: msgbox Route104_Text_TrainerTipsDoubleBattles, MSGBOX_SIGN end -Route104_EventScript_Boy1:: @ 81ED045 +Route104_EventScript_Boy1:: msgbox Route104_Text_ThrowBallAtWeakenedPokemon, MSGBOX_NPC end -Route104_EventScript_Woman:: @ 81ED04E +Route104_EventScript_Woman:: msgbox Route104_Text_OnlyThrowBallAtWildPokemon, MSGBOX_NPC end -Route104_EventScript_Boy2:: @ 81ED057 +Route104_EventScript_Boy2:: lock faceplayer goto_if_set FLAG_RECEIVED_TM09, Route104_EventScript_ReceivedBulletSeed @@ -351,16 +351,16 @@ Route104_EventScript_Boy2:: @ 81ED057 release end -Route104_EventScript_ReceivedBulletSeed:: @ 81ED086 +Route104_EventScript_ReceivedBulletSeed:: msgbox Route104_Text_TMsAreOneTimeUse, MSGBOX_DEFAULT release end -Route104_EventScript_Girl2:: @ 81ED090 +Route104_EventScript_Girl2:: msgbox Route104_Text_ImNotATrainer, MSGBOX_NPC end -Route104_EventScript_SailToDewford:: @ 81ED099 +Route104_EventScript_SailToDewford:: setobjectpriority LOCALID_BRINEY_R104, MAP_ROUTE104, 0 setobjectpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE104, 0 applymovement LOCALID_BRINEY_R104, Route104_Movement_BrineyBoardBoat @@ -374,13 +374,13 @@ Route104_EventScript_SailToDewford:: @ 81ED099 goto_if_unset FLAG_ENABLE_NORMAN_MATCH_CALL, Route104_EventScript_SailToDewfordDadCalls end -Route104_EventScript_SailToDewfordNoCall:: @ 81ED0D9 +Route104_EventScript_SailToDewfordNoCall:: applymovement LOCALID_BOAT_R104, Route104_Movement_SailToDewford applymovement OBJ_EVENT_ID_PLAYER, Route104_Movement_SailToDewford waitmovement 0 goto Route104_EventScript_ArriveInDewford -Route104_EventScript_SailToDewfordDadCalls:: @ 81ED0EF +Route104_EventScript_SailToDewfordDadCalls:: applymovement LOCALID_BOAT_R104, Route104_Movement_SailToDewfordBeforeDadCalls applymovement OBJ_EVENT_ID_PLAYER, Route104_Movement_SailToDewfordBeforeDadCalls waitmovement 0 @@ -399,7 +399,7 @@ Route104_EventScript_SailToDewfordDadCalls:: @ 81ED0EF waitmovement 0 goto Route104_EventScript_ArriveInDewford -Route104_EventScript_ArriveInDewford:: @ 81ED139 +Route104_EventScript_ArriveInDewford:: delay 50 applymovement OBJ_EVENT_ID_PLAYER, Route104_Movement_PlayerExitBoat waitmovement 0 @@ -427,17 +427,17 @@ Route104_EventScript_ArriveInDewford:: @ 81ED139 goto_if_set FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_LandedInDewford end -Route104_EventScript_DeliverLetterReminder:: @ 81ED1B4 +Route104_EventScript_DeliverLetterReminder:: msgbox Route104_Text_LandedInDewfordDeliverLetter, MSGBOX_DEFAULT releaseall end -Route104_EventScript_LandedInDewford:: @ 81ED1BE +Route104_EventScript_LandedInDewford:: msgbox DewfordTown_Text_BrineyLandedInDewford, MSGBOX_DEFAULT releaseall end -Route104_Movement_SailToDewfordBeforeDadCalls: @ 81ED1C8 +Route104_Movement_SailToDewfordBeforeDadCalls: walk_down walk_down walk_down @@ -537,7 +537,7 @@ Route104_Movement_SailToDewfordBeforeDadCalls: @ 81ED1C8 walk_fastest_down step_end -Route104_Movement_SailToDewfordAfterDadCalls: @ 81ED22A +Route104_Movement_SailToDewfordAfterDadCalls: walk_fastest_down walk_fastest_down walk_fastest_down @@ -637,7 +637,7 @@ Route104_Movement_SailToDewfordAfterDadCalls: @ 81ED22A walk_down step_end -Route104_Movement_SailToDewford: @ 81ED28C +Route104_Movement_SailToDewford: walk_down walk_down walk_down @@ -834,43 +834,43 @@ Route104_Movement_SailToDewford: @ 81ED28C walk_down step_end -Route104_Movement_PlayerBoardBoat: @ 81ED34F +Route104_Movement_PlayerBoardBoat: walk_left walk_down walk_down step_end -Route104_Movement_PlayerExitBoat: @ 81ED353 +Route104_Movement_PlayerExitBoat: walk_down step_end -Route104_Movement_PlayerMoveForBriney: @ 81ED355 +Route104_Movement_PlayerMoveForBriney: walk_down walk_left walk_in_place_fastest_right step_end -Route104_Movement_BrineyBoardBoat: @ 81ED359 +Route104_Movement_BrineyBoardBoat: walk_down walk_down step_end -Route104_Movement_BrineyExitBoat: @ 81ED35C +Route104_Movement_BrineyExitBoat: walk_down walk_in_place_fastest_left step_end -Route104_EventScript_Ivan:: @ 81ED35F +Route104_EventScript_Ivan:: trainerbattle_single TRAINER_IVAN, Route104_Text_IvanIntro, Route104_Text_IvanDefeat msgbox Route104_Text_IvanPostBattle, MSGBOX_AUTOCLOSE end -Route104_EventScript_Billy:: @ 81ED376 +Route104_EventScript_Billy:: trainerbattle_single TRAINER_BILLY, Route104_Text_BillyIntro, Route104_Text_BillyDefeat msgbox Route104_Text_BillyPostBattle, MSGBOX_AUTOCLOSE end -Route104_EventScript_Haley:: @ 81ED38D +Route104_EventScript_Haley:: trainerbattle_single TRAINER_HALEY_1, Route104_Text_HaleyIntro, Route104_Text_HaleyDefeat, Route104_EventScript_TryRegisterHaleyAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -883,37 +883,37 @@ Route104_EventScript_Haley:: @ 81ED38D release end -Route104_EventScript_TryRegisterHaleyAfterBattle:: @ 81ED3CE +Route104_EventScript_TryRegisterHaleyAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 goto_if_set FLAG_HAS_MATCH_CALL, Route104_EventScript_RegisterHaleyAfterBattle release end -Route104_EventScript_RegisterHaleyAfterBattle:: @ 81ED3DF +Route104_EventScript_RegisterHaleyAfterBattle:: msgbox Route104_Text_HaleyRegister2, MSGBOX_DEFAULT register_matchcall TRAINER_HALEY_1 release end -Route104_EventScript_TryRegisterHaley:: @ 81ED3F8 +Route104_EventScript_TryRegisterHaley:: goto_if_set FLAG_HAS_MATCH_CALL, Route104_EventScript_RegisterHaley msgbox Route104_Text_HaleyPostBattle, MSGBOX_DEFAULT release end -Route104_EventScript_RegisterHaley:: @ 81ED40B +Route104_EventScript_RegisterHaley:: msgbox Route104_Text_HaleyRegister1, MSGBOX_DEFAULT register_matchcall TRAINER_HALEY_1 release end -Route104_EventScript_RematchHaley:: @ 81ED424 +Route104_EventScript_RematchHaley:: trainerbattle_rematch TRAINER_HALEY_1, Route104_Text_HaleyRematchIntro, Route104_Text_HaleyRematchDefeat msgbox Route104_Text_HaleyPostRematch, MSGBOX_AUTOCLOSE end -Route104_EventScript_Winston:: @ 81ED43B +Route104_EventScript_Winston:: trainerbattle_single TRAINER_WINSTON_1, Route104_Text_WinstonIntro, Route104_Text_WinstonDefeat, Route104_EventScript_TryRegisterWinstonAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -926,37 +926,37 @@ Route104_EventScript_Winston:: @ 81ED43B release end -Route104_EventScript_TryRegisterWinstonAfterBattle:: @ 81ED47C +Route104_EventScript_TryRegisterWinstonAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 goto_if_set FLAG_HAS_MATCH_CALL, Route104_EventScript_RegisterWinstonAfterBattle release end -Route104_EventScript_RegisterWinstonAfterBattle:: @ 81ED48D +Route104_EventScript_RegisterWinstonAfterBattle:: msgbox Route104_Text_WinstonRegister2, MSGBOX_DEFAULT register_matchcall TRAINER_WINSTON_1 release end -Route104_EventScript_TryRegisterWinston:: @ 81ED4A6 +Route104_EventScript_TryRegisterWinston:: goto_if_set FLAG_HAS_MATCH_CALL, Route104_EventScript_RegisterWinston msgbox Route104_Text_WinstonPostBattle, MSGBOX_DEFAULT release end -Route104_EventScript_RegisterWinston:: @ 81ED4B9 +Route104_EventScript_RegisterWinston:: msgbox Route104_Text_WinstonRegister1, MSGBOX_DEFAULT register_matchcall TRAINER_WINSTON_1 release end -Route104_EventScript_RematchWinston:: @ 81ED4D2 +Route104_EventScript_RematchWinston:: trainerbattle_rematch TRAINER_WINSTON_1, Route104_Text_WinstonRematchIntro, Route104_Text_WinstonRematchDefeat msgbox Route104_Text_WinstonPostRematch, MSGBOX_AUTOCLOSE end -Route104_EventScript_Cindy:: @ 81ED4E9 +Route104_EventScript_Cindy:: trainerbattle_single TRAINER_CINDY_1, Route104_Text_CindyIntro, Route104_Text_CindyDefeat, Route104_EventScript_TryRegisterCindyAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -969,100 +969,100 @@ Route104_EventScript_Cindy:: @ 81ED4E9 release end -Route104_EventScript_TryRegisterCindyAfterBattle:: @ 81ED52A +Route104_EventScript_TryRegisterCindyAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 goto_if_set FLAG_HAS_MATCH_CALL, Route104_EventScript_RegisterCindyAfterBattle release end -Route104_EventScript_RegisterCindyAfterBattle:: @ 81ED53B +Route104_EventScript_RegisterCindyAfterBattle:: msgbox Route104_Text_CindyRegister2, MSGBOX_DEFAULT register_matchcall TRAINER_CINDY_1 release end -Route104_EventScript_TryRegisterCindy:: @ 81ED554 +Route104_EventScript_TryRegisterCindy:: goto_if_set FLAG_HAS_MATCH_CALL, Route104_EventScript_RegisterCindy msgbox Route104_Text_CindyPostBattle, MSGBOX_DEFAULT release end -Route104_EventScript_RegisterCindy:: @ 81ED567 +Route104_EventScript_RegisterCindy:: msgbox Route104_Text_CindyRegister1, MSGBOX_DEFAULT register_matchcall TRAINER_CINDY_1 release end -Route104_EventScript_RematchCindy:: @ 81ED580 +Route104_EventScript_RematchCindy:: trainerbattle_rematch TRAINER_CINDY_1, Route104_Text_CindyRematchIntro, Route104_Text_CindyRematchDefeat msgbox Route104_Text_CindyPostRematch, MSGBOX_AUTOCLOSE end -Route104_EventScript_Gina:: @ 81ED597 +Route104_EventScript_Gina:: trainerbattle_double TRAINER_GINA_AND_MIA_1, Route104_Text_GinaIntro, Route104_Text_GinaDefeat, Route104_Text_GinaNotEnoughMons special GetPlayerBigGuyGirlString msgbox Route104_Text_GinaPostBattle, MSGBOX_DEFAULT release end -Route104_EventScript_Mia:: @ 81ED5B6 +Route104_EventScript_Mia:: trainerbattle_double TRAINER_GINA_AND_MIA_1, Route104_Text_MiaIntro, Route104_Text_MiaDefeat, Route104_Text_MiaNotEnoughMons special GetPlayerBigGuyGirlString msgbox Route104_Text_MiaPostBattle, MSGBOX_DEFAULT release end -Route104_EventScript_Darian:: @ 81ED5D5 +Route104_EventScript_Darian:: trainerbattle_single TRAINER_DARIAN, Route104_Text_DarianIntro, Route104_Text_DarianDefeat msgbox Route104_Text_DarianPostBattle, MSGBOX_AUTOCLOSE end -Route104_Text_BrineyLivesInSeasideCottage: @ 81ED5EC +Route104_Text_BrineyLivesInSeasideCottage: .string "That seaside cottage is where\n" .string "MR. BRINEY lives.\p" .string "He was once a mighty sailor who never\n" .string "feared the sea, however stormy.$" -Route104_Text_WhatsItLikeAtBottomOfSea: @ 81ED662 +Route104_Text_WhatsItLikeAtBottomOfSea: .string "The sea, huh?\p" .string "I wonder what it's like at the bottom\n" .string "of the sea?$" -Route104_Text_ThrowBallAtWeakenedPokemon: @ 81ED6A2 +Route104_Text_ThrowBallAtWeakenedPokemon: .string "If you're going to throw a POKé BALL,\n" .string "weaken the wild POKéMON first.\p" .string "It will be easier to catch if it's been\n" .string "poisoned, burned, or lulled to sleep.$" -Route104_Text_OnlyThrowBallAtWildPokemon: @ 81ED735 +Route104_Text_OnlyThrowBallAtWildPokemon: .string "You're a thief if you try to steal\n" .string "someone else's POKéMON.\p" .string "You should throw POKé BALLS only at\n" .string "wild POKéMON.$" -Route104_Text_ImNotATrainer: @ 81ED7A2 +Route104_Text_ImNotATrainer: .string "Oh, no, I'm not a TRAINER.\p" .string "But that's right, if TRAINERS lock eyes,\n" .string "it's a challenge to battle.\p" .string "If you don't want to battle, stay out\n" .string "of their sight.$" -Route104_Text_LikeFillingMouthWithSeedsTakeThis: @ 81ED838 +Route104_Text_LikeFillingMouthWithSeedsTakeThis: .string "I like filling my mouth with seeds,\n" .string "then spitting them out fast!\p" .string "You can have this, so you try it out!\p" .string "Use it on a POKéMON, and it will learn\n" .string "a move for firing seeds rapidly.$" -Route104_Text_TMsAreOneTimeUse: @ 81ED8E7 +Route104_Text_TMsAreOneTimeUse: .string "A word of advice!\p" .string "A TM, TECHNICAL MACHINE, is good only\n" .string "for one-time use.\p" .string "Once you use it, it's gone.\n" .string "Think twice before using it!$" -Route104_Text_DontNeedThisTakeIt: @ 81ED96A +Route104_Text_DontNeedThisTakeIt: .string "This FLOWER SHOP started selling\n" .string "saplings recently.\p" .string "It made me so happy, I went overboard\n" @@ -1070,27 +1070,27 @@ Route104_Text_DontNeedThisTakeIt: @ 81ED96A .string "I don't need this WHITE HERB anymore.\n" .string "Would you take it, please?$" -Route104_Text_FlowerShopSellingSaplings: @ 81EDA0F +Route104_Text_FlowerShopSellingSaplings: .string "This FLOWER SHOP started selling\n" .string "saplings recently.\p" .string "It made me so happy, I went overboard\n" .string "shopping. Where should I put them?$" -Route104_Text_MrBrineysCottage: @ 81EDA8C +Route104_Text_MrBrineysCottage: .string "MR. BRINEY'S COTTAGE$" -Route104_Text_RouteSignPetalburg: @ 81EDAA1 +Route104_Text_RouteSignPetalburg: .string "ROUTE 1O4\n" .string "{RIGHT_ARROW} PETALBURG CITY$" -Route104_Text_RouteSignRustboro: @ 81EDABC +Route104_Text_RouteSignRustboro: .string "ROUTE 1O4\n" .string "{UP_ARROW} RUSTBORO CITY$" -Route104_Text_PrettyPetalFlowShop: @ 81EDAD6 +Route104_Text_PrettyPetalFlowShop: .string "PRETTY PETAL FLOWER SHOP$" -Route104_Text_TrainerTipsDoubleBattles: @ 81EDAEF +Route104_Text_TrainerTipsDoubleBattles: .string "TRAINER TIPS\p" .string "In the HOENN region there are pairs\n" .string "of TRAINERS who challenge others\l" @@ -1101,45 +1101,45 @@ Route104_Text_TrainerTipsDoubleBattles: @ 81EDAEF .string "left of the list and the top one.\l" .string "Watch how POKéMON are lined up.$" -Route104_Text_MayWeShouldRegister: @ 81EDBFF +Route104_Text_MayWeShouldRegister: .string "MAY: Oh, hi, {PLAYER}{KUN}!\p" .string "DEVON upgraded your POKéNAV with\n" .string "the MATCH CALL system, huh?\p" .string "We should register each other so we\n" .string "can get in contact anytime.$" -Route104_Text_RegisteredMay: @ 81EDC8F +Route104_Text_RegisteredMay: .string "{PLAYER} registered MAY\n" .string "in the POKéNAV.$" -Route104_Text_MayHowsYourPokedex: @ 81EDCB1 +Route104_Text_MayHowsYourPokedex: .string "MAY: Oh, by the way, {PLAYER}{KUN},\n" .string "how's your POKéDEX coming along?$" -Route104_Text_MayMinesDecentLetsBattle: @ 81EDCED +Route104_Text_MayMinesDecentLetsBattle: .string "Mine's looking pretty decent.\n" .string "So…\l" .string "How about a little battle?$" -Route104_Text_MayHaventRaisedPokemon: @ 81EDD2A +Route104_Text_MayHaventRaisedPokemon: .string "MAY: Oh, what's the matter?\p" .string "Haven't you caught or raised your\n" .string "POKéMON very much?\p" .string "That's not very good for a TRAINER!$" -Route104_Text_MayLetsBattle: @ 81EDD9F +Route104_Text_MayLetsBattle: .string "MAY: So, what do you think?\n" .string "How about a little battle here?$" -Route104_Text_MayIntro: @ 81EDDDB +Route104_Text_MayIntro: .string "MAY: You just became a TRAINER,\n" .string "{PLAYER}{KUN}. I'm not going to lose!$" -Route104_Text_MayDefeat: @ 81EDE18 +Route104_Text_MayDefeat: .string "Yikes!\n" .string "You're better than I expected!$" -Route104_Text_MayPostBattle: @ 81EDE3E +Route104_Text_MayPostBattle: .string "MAY: I can tell you've gotten pretty\n" .string "good with the way you handle POKéMON.\p" .string "But instead of only making them\n" @@ -1147,43 +1147,43 @@ Route104_Text_MayPostBattle: @ 81EDE3E .string "It's important to become friends with\n" .string "POKéMON, too.$" -Route104_Text_BrendanWeShouldRegister: @ 81EDF04 +Route104_Text_BrendanWeShouldRegister: .string "BRENDAN: Oh, hey, {PLAYER}!\p" .string "Cool, you had DEVON install the MATCH\n" .string "CALL system on your POKéNAV!\p" .string "Let's register each other in our\n" .string "POKéNAVS so we can keep in touch.$" -Route104_Text_RegisteredBrendan: @ 81EDFA0 +Route104_Text_RegisteredBrendan: .string "{PLAYER} registered BRENDAN\n" .string "in the POKéNAV.$" -Route104_Text_BrendanHowsYourPokedex: @ 81EDFC6 +Route104_Text_BrendanHowsYourPokedex: .string "BRENDAN: {PLAYER}, how's your POKéDEX?\n" .string "Have you filled in any pages yet?$" -Route104_Text_BrendanDoingGreatLetsBattle: @ 81EE009 +Route104_Text_BrendanDoingGreatLetsBattle: .string "Me, I'm doing great!\p" .string "Want to check out how good I am with\n" .string "a battle?$" -Route104_Text_BrendanNoConfidence: @ 81EE04D +Route104_Text_BrendanNoConfidence: .string "BRENDAN: What's the matter? Don't have\n" .string "any confidence in your POKéMON?$" -Route104_Text_BrendanLetsBattle: @ 81EE094 +Route104_Text_BrendanLetsBattle: .string "BRENDAN: What's up?\n" .string "Want to have a battle with me?$" -Route104_Text_BrendanIntro: @ 81EE0C7 +Route104_Text_BrendanIntro: .string "BRENDAN: I know you just became\n" .string "a TRAINER, but I won't go easy!$" -Route104_Text_BrendanDefeat: @ 81EE107 +Route104_Text_BrendanDefeat: .string "Hmm…\n" .string "You're pretty good.$" -Route104_Text_BrendanPostBattle: @ 81EE120 +Route104_Text_BrendanPostBattle: .string "BRENDAN: You've gotten pretty decent\n" .string "at handling POKéMON.\p" .string "But, you know, you shouldn't just be\n" diff --git a/data/maps/Route104_MrBrineysHouse/scripts.inc b/data/maps/Route104_MrBrineysHouse/scripts.inc index aef3ae80fe..60e08c7b89 100644 --- a/data/maps/Route104_MrBrineysHouse/scripts.inc +++ b/data/maps/Route104_MrBrineysHouse/scripts.inc @@ -1,29 +1,29 @@ .set LOCALID_BRINEY, 1 .set LOCALID_PEEKO, 2 -Route104_MrBrineysHouse_MapScripts:: @ 8229D2E +Route104_MrBrineysHouse_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route104_MrBrineysHouse_OnTransition .byte 0 -Route104_MrBrineysHouse_OnTransition: @ 8229D34 +Route104_MrBrineysHouse_OnTransition: setflag FLAG_LANDMARK_MR_BRINEY_HOUSE compare VAR_BRINEY_HOUSE_STATE, 1 call_if_eq Route104_MrBrineysHouse_EventScript_SetBrineyPeekoPos call_if_set FLAG_RECEIVED_POKENAV, Route104_MrBrineysHouse_EventScript_HideRustboroRival end -Route104_MrBrineysHouse_EventScript_HideRustboroRival:: @ 8229D4C +Route104_MrBrineysHouse_EventScript_HideRustboroRival:: setflag FLAG_HIDE_RUSTBORO_CITY_RIVAL return -Route104_MrBrineysHouse_EventScript_SetBrineyPeekoPos:: @ 8229D50 +Route104_MrBrineysHouse_EventScript_SetBrineyPeekoPos:: setobjectxyperm LOCALID_BRINEY, 9, 3 setobjectmovementtype LOCALID_BRINEY, MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT setobjectxyperm LOCALID_PEEKO, 9, 6 setobjectmovementtype LOCALID_PEEKO, MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN return -Route104_MrBrineysHouse_EventScript_Briney:: @ 8229D67 +Route104_MrBrineysHouse_EventScript_Briney:: lock faceplayer call_if_unset FLAG_MR_BRINEY_SAILING_INTRO, Route104_MrBrineysHouse_EventScript_SailingIntro @@ -32,7 +32,7 @@ Route104_MrBrineysHouse_EventScript_Briney:: @ 8229D67 goto Route104_MrBrineysHouse_EventScript_WhereAreWeBound end -Route104_MrBrineysHouse_EventScript_SailingIntro:: @ 8229D8A +Route104_MrBrineysHouse_EventScript_SailingIntro:: setflag FLAG_MR_BRINEY_SAILING_INTRO msgbox Route104_MrBrineysHouse_Text_WaitUpPeeko, MSGBOX_DEFAULT msgbox Route104_MrBrineysHouse_Text_ItsYouLetsSailToDewford, MSGBOX_YESNO @@ -41,41 +41,41 @@ Route104_MrBrineysHouse_EventScript_SailingIntro:: @ 8229D8A goto Route104_MrBrineysHouse_EventScript_SailToDewford end -Route104_MrBrineysHouse_EventScript_WhereAreWeBound:: @ 8229DAE +Route104_MrBrineysHouse_EventScript_WhereAreWeBound:: message Route104_MrBrineysHouse_Text_WhereAreWeBound waitmessage - multichoicedefault 20, 8, MULTI_BRINEY_OFF_DEWFORD, 1, 0 + multichoicedefault 20, 8, MULTI_BRINEY_OFF_DEWFORD, 1, FALSE switch VAR_RESULT case 0, Route104_MrBrineysHouse_EventScript_SailToDewford case 1, Route104_MrBrineysHouse_EventScript_DeclineSailing case MULTI_B_PRESSED, Route104_MrBrineysHouse_EventScript_DeclineSailing end -Route104_MrBrineysHouse_EventScript_SailBothDeliveries:: @ 8229DE1 +Route104_MrBrineysHouse_EventScript_SailBothDeliveries:: msgbox Route104_MrBrineysHouse_Text_NeedToMakeDeliveriesSailToDewford, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing goto Route104_MrBrineysHouse_EventScript_SailToDewford end -Route104_MrBrineysHouse_EventScript_SailDeliverPackage:: @ 8229DFA +Route104_MrBrineysHouse_EventScript_SailDeliverPackage:: msgbox Route104_MrBrineysHouse_Text_NeedToDeliverPackageSailToDewford, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing goto Route104_MrBrineysHouse_EventScript_SailToDewford end -Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing:: @ 8229E13 +Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing:: msgbox Route104_MrBrineysHouse_Text_DeclineDeliverySail, MSGBOX_DEFAULT release end -Route104_MrBrineysHouse_EventScript_DeclineSailing:: @ 8229E1D +Route104_MrBrineysHouse_EventScript_DeclineSailing:: msgbox Route104_MrBrineysHouse_Text_TellMeWheneverYouWantToSail, MSGBOX_DEFAULT release end -Route104_MrBrineysHouse_EventScript_SailToDewford:: @ 8229E27 +Route104_MrBrineysHouse_EventScript_SailToDewford:: msgbox Route104_MrBrineysHouse_Text_SetSailForDewford, MSGBOX_DEFAULT call EventScript_BackupMrBrineyLocation setvar VAR_BOARD_BRINEY_BOAT_STATE, 1 @@ -91,7 +91,7 @@ Route104_MrBrineysHouse_EventScript_SailToDewford:: @ 8229E27 releaseall end -Route104_MrBrineysHouse_EventScript_Peeko:: @ 8229E5D +Route104_MrBrineysHouse_EventScript_Peeko:: lock faceplayer waitse @@ -101,11 +101,11 @@ Route104_MrBrineysHouse_EventScript_Peeko:: @ 8229E5D release end -Route104_MrBrineysHouse_Text_WaitUpPeeko: @ 8229E70 +Route104_MrBrineysHouse_Text_WaitUpPeeko: .string "MR. BRINEY: Hold on, lass!\n" .string "Wait up, PEEKO!$" -Route104_MrBrineysHouse_Text_ItsYouLetsSailToDewford: @ 8229E9B +Route104_MrBrineysHouse_Text_ItsYouLetsSailToDewford: .string "Hm? You're {PLAYER}{KUN}!\n" .string "You saved my darling PEEKO!\l" .string "We owe so much to you!\p" @@ -120,18 +120,18 @@ Route104_MrBrineysHouse_Text_ItsYouLetsSailToDewford: @ 8229E9B .string "You've come to the right man!\n" .string "We'll set sail for DEWFORD.$" -Route104_MrBrineysHouse_Text_SetSailForDewford: @ 8229FE9 +Route104_MrBrineysHouse_Text_SetSailForDewford: .string "MR. BRINEY: DEWFORD it is, then!\p" .string "Anchors aweigh!\n" .string "PEEKO, we're setting sail, my darling!$" -Route104_MrBrineysHouse_Text_DeclineDeliverySail: @ 822A041 +Route104_MrBrineysHouse_Text_DeclineDeliverySail: .string "MR. BRINEY: Is that so?\n" .string "Your deliveries can wait?\p" .string "You just go on and tell me whenever\n" .string "you want to set sail!$" -Route104_MrBrineysHouse_Text_NeedToMakeDeliveriesSailToDewford: @ 822A0AD +Route104_MrBrineysHouse_Text_NeedToMakeDeliveriesSailToDewford: .string "MR. BRINEY: Ahoy!\n" .string "I know exactly what you want to say!\p" .string "You're to deliver a LETTER to DEWFORD\n" @@ -140,7 +140,7 @@ Route104_MrBrineysHouse_Text_NeedToMakeDeliveriesSailToDewford: @ 822A0AD .string "at all--I'm the man for the job!\p" .string "First, we'll set sail for DEWFORD.$" -Route104_MrBrineysHouse_Text_NeedToDeliverPackageSailToDewford: @ 822A18F +Route104_MrBrineysHouse_Text_NeedToDeliverPackageSailToDewford: .string "MR. BRINEY: Ahoy!\n" .string "I know exactly what you want to say!\p" .string "You're to deliver a package to\n" @@ -149,17 +149,17 @@ Route104_MrBrineysHouse_Text_NeedToDeliverPackageSailToDewford: @ 822A18F .string "at all--I'm the man for the job!\p" .string "First, we'll set sail for DEWFORD.$" -Route104_MrBrineysHouse_Text_WhereAreWeBound: @ 822A268 +Route104_MrBrineysHouse_Text_WhereAreWeBound: .string "MR. BRINEY: Ahoy!\n" .string "For you, I'll go out to sea anytime!\p" .string "Now, my friend, where are we bound?$" -Route104_MrBrineysHouse_Text_TellMeWheneverYouWantToSail: @ 822A2C3 +Route104_MrBrineysHouse_Text_TellMeWheneverYouWantToSail: .string "MR. BRINEY: Is that so?\n" .string "Well, PEEKO owes her life to you.\p" .string "You just go on and tell me whenever\n" .string "you want to set sail!$" -Route104_MrBrineysHouse_Text_Peeko: @ 822A337 +Route104_MrBrineysHouse_Text_Peeko: .string "PEEKO: Pii piihyoro!$" diff --git a/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc b/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc index e2ed46ddc2..34f5ba42c4 100644 --- a/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc +++ b/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc @@ -1,21 +1,21 @@ .set LOCALID_OWNER, 1 -Route104_PrettyPetalFlowerShop_MapScripts:: @ 822A34C +Route104_PrettyPetalFlowerShop_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route104_PrettyPetalFlowerShop_OnTransition .byte 0 -Route104_PrettyPetalFlowerShop_OnTransition: @ 822A352 +Route104_PrettyPetalFlowerShop_OnTransition: setflag FLAG_LANDMARK_FLOWER_SHOP goto_if_unset FLAG_MET_PRETTY_PETAL_SHOP_OWNER, Route104_PrettyPetalFlowerShop_EventScript_MoveShopOwner goto_if_unset FLAG_BADGE03_GET, Route104_PrettyPetalFlowerShop_EventScript_MoveShopOwner setflag FLAG_TEMP_1 end -Route104_PrettyPetalFlowerShop_EventScript_MoveShopOwner:: @ 822A36B +Route104_PrettyPetalFlowerShop_EventScript_MoveShopOwner:: setobjectxyperm LOCALID_OWNER, 4, 6 end -Route104_PrettyPetalFlowerShop_EventScript_ShopOwner:: @ 822A373 +Route104_PrettyPetalFlowerShop_EventScript_ShopOwner:: lock faceplayer goto_if_set FLAG_TEMP_1, Route104_PrettyPetalFlowerShop_EventScript_SellDecorations @@ -30,7 +30,7 @@ Route104_PrettyPetalFlowerShop_EventScript_ShopOwner:: @ 822A373 release end -Route104_PrettyPetalFlowerShop_EventScript_AlreadyMet:: @ 822A3B2 +Route104_PrettyPetalFlowerShop_EventScript_AlreadyMet:: msgbox Route104_PrettyPetalFlowerShop_Text_LearnAboutBerries, MSGBOX_YESNO compare VAR_RESULT, YES call_if_eq Route104_PrettyPetalFlowerShop_EventScript_ExplainBerries @@ -39,15 +39,15 @@ Route104_PrettyPetalFlowerShop_EventScript_AlreadyMet:: @ 822A3B2 release end -Route104_PrettyPetalFlowerShop_EventScript_ExplainBerries:: @ 822A3D2 +Route104_PrettyPetalFlowerShop_EventScript_ExplainBerries:: msgbox Route104_PrettyPetalFlowerShop_Text_BerriesExplanation, MSGBOX_DEFAULT return -Route104_PrettyPetalFlowerShop_EventScript_DontExplainBerries:: @ 822A3DB +Route104_PrettyPetalFlowerShop_EventScript_DontExplainBerries:: msgbox Route104_PrettyPetalFlowerShop_Text_FlowersBringHappiness, MSGBOX_DEFAULT return -Route104_PrettyPetalFlowerShop_EventScript_SellDecorations:: @ 822A3E4 +Route104_PrettyPetalFlowerShop_EventScript_SellDecorations:: message gText_PlayerWhatCanIDoForYou waitmessage pokemartdecoration2 Route104_PrettyPetalFlowerShop_Pokemart_Plants @@ -56,7 +56,7 @@ Route104_PrettyPetalFlowerShop_EventScript_SellDecorations:: @ 822A3E4 end .align 2 -Route104_PrettyPetalFlowerShop_Pokemart_Plants: @ 822A3FC +Route104_PrettyPetalFlowerShop_Pokemart_Plants: .2byte DECOR_RED_PLANT .2byte DECOR_TROPICAL_PLANT .2byte DECOR_PRETTY_FLOWERS @@ -67,7 +67,7 @@ Route104_PrettyPetalFlowerShop_Pokemart_Plants: @ 822A3FC release end -Route104_PrettyPetalFlowerShop_EventScript_WailmerPailGirl:: @ 822A40C +Route104_PrettyPetalFlowerShop_EventScript_WailmerPailGirl:: lock faceplayer goto_if_unset FLAG_RECEIVED_WAILMER_PAIL, Route104_PrettyPetalFlowerShop_EventScript_GiveWailmerPail @@ -75,7 +75,7 @@ Route104_PrettyPetalFlowerShop_EventScript_WailmerPailGirl:: @ 822A40C release end -Route104_PrettyPetalFlowerShop_EventScript_GiveWailmerPail:: @ 822A421 +Route104_PrettyPetalFlowerShop_EventScript_GiveWailmerPail:: msgbox Route104_PrettyPetalFlowerShop_Text_YouCanHaveThis, MSGBOX_DEFAULT giveitem ITEM_WAILMER_PAIL msgbox Route104_PrettyPetalFlowerShop_Text_WailmerPailExplanation, MSGBOX_DEFAULT @@ -83,7 +83,7 @@ Route104_PrettyPetalFlowerShop_EventScript_GiveWailmerPail:: @ 822A421 release end -Route104_PrettyPetalFlowerShop_EventScript_RandomBerryGirl:: @ 822A442 +Route104_PrettyPetalFlowerShop_EventScript_RandomBerryGirl:: lock faceplayer dotimebasedevents @@ -99,7 +99,7 @@ Route104_PrettyPetalFlowerShop_EventScript_RandomBerryGirl:: @ 822A442 release end -Route104_PrettyPetalFlowerShop_EventScript_AlreadyReceivedBerry:: @ 822A482 +Route104_PrettyPetalFlowerShop_EventScript_AlreadyReceivedBerry:: msgbox Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries, MSGBOX_DEFAULT release end diff --git a/data/maps/Route104_Prototype/scripts.inc b/data/maps/Route104_Prototype/scripts.inc index d8274fffc1..3ad060c6de 100644 --- a/data/maps/Route104_Prototype/scripts.inc +++ b/data/maps/Route104_Prototype/scripts.inc @@ -1,3 +1,3 @@ -Route104_Prototype_MapScripts:: @ 82693F2 +Route104_Prototype_MapScripts:: .byte 0 diff --git a/data/maps/Route104_PrototypePrettyPetalFlowerShop/scripts.inc b/data/maps/Route104_PrototypePrettyPetalFlowerShop/scripts.inc index bacbad7e90..a94eb24ec5 100644 --- a/data/maps/Route104_PrototypePrettyPetalFlowerShop/scripts.inc +++ b/data/maps/Route104_PrototypePrettyPetalFlowerShop/scripts.inc @@ -1,3 +1,3 @@ -Route104_PrototypePrettyPetalFlowerShop_MapScripts:: @ 82693F3 +Route104_PrototypePrettyPetalFlowerShop_MapScripts:: .byte 0 diff --git a/data/maps/Route105/scripts.inc b/data/maps/Route105/scripts.inc index a42446e728..b60cd181fa 100644 --- a/data/maps/Route105/scripts.inc +++ b/data/maps/Route105/scripts.inc @@ -1,10 +1,10 @@ -Route105_MapScripts:: @ 81EE1DB +Route105_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, Route105_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, Route105_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, Route105_OnFrame .byte 0 -Route105_OnLoad: @ 81EE1EB +Route105_OnLoad: call_if_unset FLAG_REGI_DOORS_OPENED, Route105_CloseRegiEntrance compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_NORTH call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute105North @@ -12,12 +12,12 @@ Route105_OnLoad: @ 81EE1EB call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute105South end -Route105_CloseRegiEntrance:: @ 81EE20B +Route105_CloseRegiEntrance:: setmetatile 9, 19, METATILE_General_RockWall_RockBase, 1 setmetatile 9, 20, METATILE_General_RockWall_SandBase, 1 return -Route105_OnTransition: @ 81EE21E +Route105_OnTransition: compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 call_if_eq AbnormalWeather_EventScript_HideMapNamePopup compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_NORTH @@ -26,41 +26,41 @@ Route105_OnTransition: @ 81EE21E call_if_eq AbnormalWeather_StartKyogreWeather end -Route105_OnFrame: @ 81EE240 +Route105_OnFrame: map_script_2 VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_EndEventAndCleanup_1 .2byte 0 -Route105_EventScript_Foster:: @ 81EE24A +Route105_EventScript_Foster:: trainerbattle_single TRAINER_FOSTER, Route105_Text_FosterIntro, Route105_Text_FosterDefeated msgbox Route105_Text_FosterPostBattle, MSGBOX_AUTOCLOSE end -Route105_EventScript_Luis:: @ 81EE261 +Route105_EventScript_Luis:: trainerbattle_single TRAINER_LUIS, Route105_Text_LuisIntro, Route105_Text_LuisDefeated msgbox Route105_Text_LuisPostBattle, MSGBOX_AUTOCLOSE end -Route105_EventScript_Dominik:: @ 81EE278 +Route105_EventScript_Dominik:: trainerbattle_single TRAINER_DOMINIK, Route105_Text_DominikIntro, Route105_Text_DominikDefeated msgbox Route105_Text_DominikPostBattle, MSGBOX_AUTOCLOSE end -Route105_EventScript_Beverly:: @ 81EE28F +Route105_EventScript_Beverly:: trainerbattle_single TRAINER_BEVERLY, Route105_Text_BeverlyIntro, Route105_Text_BeverlyDefeated msgbox Route105_Text_PostBattle, MSGBOX_AUTOCLOSE end -Route105_EventScript_Imani:: @ 81EE2A6 +Route105_EventScript_Imani:: trainerbattle_single TRAINER_IMANI, Route105_Text_ImaniIntro, Route105_Text_ImaniDefeated msgbox Route105_Text_ImaniPostBattle, MSGBOX_AUTOCLOSE end -Route105_EventScript_Josue:: @ 81EE2BD +Route105_EventScript_Josue:: trainerbattle_single TRAINER_JOSUE, Route105_Text_JosueIntro, Route105_Text_JosueDefeated msgbox Route105_Text_JosuePostBattle, MSGBOX_AUTOCLOSE end -Route105_EventScript_Andres:: @ 81EE2D4 +Route105_EventScript_Andres:: trainerbattle_single TRAINER_ANDRES_1, Route105_Text_AndresIntro, Route105_Text_AndresDefeated, Route105_EventScript_AndresRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -69,7 +69,7 @@ Route105_EventScript_Andres:: @ 81EE2D4 release end -Route105_EventScript_AndresRegisterMatchCallAfterBattle:: @ 81EE300 +Route105_EventScript_AndresRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route105_Text_AndresRegister, MSGBOX_DEFAULT @@ -77,12 +77,12 @@ Route105_EventScript_AndresRegisterMatchCallAfterBattle:: @ 81EE300 release end -Route105_EventScript_AndresRematch:: @ 81EE31F +Route105_EventScript_AndresRematch:: trainerbattle_rematch TRAINER_ANDRES_1, Route105_Text_AndresRematchIntro, Route105_Text_AndresRematchDefeated msgbox Route105_Text_AndresRematchPostBattle, MSGBOX_AUTOCLOSE end -Route104_Text_DadPokenavCall: @ 81EE336 +Route104_Text_DadPokenavCall: .string "… … … … … …\n" .string "… … … … … Beep!\p" .string "DAD: Oh, {PLAYER}?\p" @@ -98,6 +98,6 @@ Route104_Text_DadPokenavCall: @ 81EE336 .string "… … … … … …\n" .string "… … … … … Click!$" -Route104_Text_RegisteredDadInPokenav: @ 81EE463 +Route104_Text_RegisteredDadInPokenav: .string "Registered DAD NORMAN\n" .string "in the POKéNAV.$" diff --git a/data/maps/Route106/scripts.inc b/data/maps/Route106/scripts.inc index f9d3fb3b93..2107ce1c3b 100644 --- a/data/maps/Route106/scripts.inc +++ b/data/maps/Route106/scripts.inc @@ -1,21 +1,21 @@ -Route106_MapScripts:: @ 81EE489 +Route106_MapScripts:: .byte 0 -Route106_EventScript_TrainerTipsSign:: @ 81EE48A +Route106_EventScript_TrainerTipsSign:: msgbox Route106_Text_TrainerTips, MSGBOX_SIGN end -Route106_EventScript_Douglas:: @ 81EE493 +Route106_EventScript_Douglas:: trainerbattle_single TRAINER_DOUGLAS, Route106_Text_DouglasIntro, Route106_Text_DouglasDefeated msgbox Route106_Text_DouglasPostBattle, MSGBOX_AUTOCLOSE end -Route106_EventScript_Kyla:: @ 81EE4AA +Route106_EventScript_Kyla:: trainerbattle_single TRAINER_KYLA, Route106_Text_KylaIntro, Route106_Text_KylaDefeated msgbox Route106_Text_KylaPostBattle, MSGBOX_AUTOCLOSE end -Route106_EventScript_Elliot:: @ 81EE4C1 +Route106_EventScript_Elliot:: trainerbattle_single TRAINER_ELLIOT_1, Route106_Text_ElliotIntro, Route106_Text_ElliotDefeated, Route106_EventScript_ElliotRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -24,7 +24,7 @@ Route106_EventScript_Elliot:: @ 81EE4C1 release end -Route106_EventScript_ElliotRegisterMatchCallAfterBattle:: @ 81EE4ED +Route106_EventScript_ElliotRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route106_Text_ElliotRegister, MSGBOX_DEFAULT @@ -32,17 +32,17 @@ Route106_EventScript_ElliotRegisterMatchCallAfterBattle:: @ 81EE4ED release end -Route106_EventScript_ElliotRematch:: @ 81EE50C +Route106_EventScript_ElliotRematch:: trainerbattle_rematch TRAINER_ELLIOT_1, Route106_Text_ElliotRematchIntro, Route106_Text_ElliotRematchDefeated msgbox Route106_Text_ElliotRematchPostBattle, MSGBOX_AUTOCLOSE end -Route106_EventScript_Ned:: @ 81EE523 +Route106_EventScript_Ned:: trainerbattle_single TRAINER_NED, Route106_Text_NedIntro, Route106_Text_NedDefeated msgbox Route106_Text_NedPostBattle, MSGBOX_AUTOCLOSE end -Route106_Text_TrainerTips: @ 81EE53A +Route106_Text_TrainerTips: .string "TRAINER TIPS\p" .string "Advice on catching POKéMON with a ROD:\n" .string "Press the A Button if you get a bite.$" diff --git a/data/maps/Route107/scripts.inc b/data/maps/Route107/scripts.inc index 0642c457fa..cffeafb08f 100644 --- a/data/maps/Route107/scripts.inc +++ b/data/maps/Route107/scripts.inc @@ -1,12 +1,12 @@ -Route107_MapScripts:: @ 81EE594 +Route107_MapScripts:: .byte 0 -Route107_EventScript_Darrin:: @ 81EE595 +Route107_EventScript_Darrin:: trainerbattle_single TRAINER_DARRIN, Route107_Text_DarrinIntro, Route107_Text_DarrinDefeated msgbox Route107_Text_DarrinPostBattle, MSGBOX_AUTOCLOSE end -Route107_EventScript_Tony:: @ 81EE5AC +Route107_EventScript_Tony:: trainerbattle_single TRAINER_TONY_1, Route107_Text_TonyIntro, Route107_Text_TonyDefeated, Route107_EventScript_TonyRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -15,7 +15,7 @@ Route107_EventScript_Tony:: @ 81EE5AC release end -Route107_EventScript_TonyRegisterMatchCallAfterBattle:: @ 81EE5D8 +Route107_EventScript_TonyRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route107_Text_TonyRegister, MSGBOX_DEFAULT @@ -23,32 +23,32 @@ Route107_EventScript_TonyRegisterMatchCallAfterBattle:: @ 81EE5D8 release end -Route107_EventScript_TonyRematch:: @ 81EE5F7 +Route107_EventScript_TonyRematch:: trainerbattle_rematch TRAINER_TONY_1, Route107_Text_TonyRematchIntro, Route107_Text_TonyRematchDefeated msgbox Route107_Text_TonyRematchPostBattle, MSGBOX_AUTOCLOSE end -Route107_EventScript_Denise:: @ 81EE60E +Route107_EventScript_Denise:: trainerbattle_single TRAINER_DENISE, Route107_Text_DeniseIntro, Route107_Text_DeniseDefeated msgbox Route107_Text_DenisePostBattle, MSGBOX_AUTOCLOSE end -Route107_EventScript_Beth:: @ 81EE625 +Route107_EventScript_Beth:: trainerbattle_single TRAINER_BETH, Route107_Text_BethIntro, Route107_Text_BethDefeated msgbox Route107_Text_BethPostBattle, MSGBOX_AUTOCLOSE end -Route107_EventScript_Lisa:: @ 81EE63C +Route107_EventScript_Lisa:: trainerbattle_double TRAINER_LISA_AND_RAY, Route107_Text_LisaIntro, Route107_Text_LisaDefeated, Route107_Text_LisaNotEnoughPokemon msgbox Route107_Text_LisaPostBattle, MSGBOX_AUTOCLOSE end -Route107_EventScript_Ray:: @ 81EE657 +Route107_EventScript_Ray:: trainerbattle_double TRAINER_LISA_AND_RAY, Route107_Text_RayIntro, Route107_Text_RayDefeated, Route107_Text_RayNotEnoughPokemon msgbox Route107_Text_RayPostBattle, MSGBOX_AUTOCLOSE end -Route107_EventScript_Camron:: @ 81EE672 +Route107_EventScript_Camron:: trainerbattle_single TRAINER_CAMRON, Route107_Text_CamronIntro, Route107_Text_CamronDefeated msgbox Route107_Text_CamronPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route108/scripts.inc b/data/maps/Route108/scripts.inc index 57f353bd13..8663915545 100644 --- a/data/maps/Route108/scripts.inc +++ b/data/maps/Route108/scripts.inc @@ -1,32 +1,32 @@ -Route108_MapScripts:: @ 81EE689 +Route108_MapScripts:: .byte 0 -Route108_EventScript_Jerome:: @ 81EE68A +Route108_EventScript_Jerome:: trainerbattle_single TRAINER_JEROME, Route108_Text_JeromeIntro, Route108_Text_JeromeDefeated msgbox Route108_Text_JeromePostBattle, MSGBOX_AUTOCLOSE end -Route108_EventScript_Matthew:: @ 81EE6A1 +Route108_EventScript_Matthew:: trainerbattle_single TRAINER_MATTHEW, Route108_Text_MatthewIntro, Route108_Text_MatthewDefeated msgbox Route108_Text_MatthewPostBattle, MSGBOX_AUTOCLOSE end -Route108_EventScript_Tara:: @ 81EE6B8 +Route108_EventScript_Tara:: trainerbattle_single TRAINER_TARA, Route108_Text_TaraIntro, Route108_Text_TaraDefeated msgbox Route108_Text_TaraPostBattle, MSGBOX_AUTOCLOSE end -Route108_EventScript_Missy:: @ 81EE6CF +Route108_EventScript_Missy:: trainerbattle_single TRAINER_MISSY, Route108_Text_MissyIntro, Route108_Text_MissyDefeated msgbox Route108_Text_MissyPostBattle, MSGBOX_AUTOCLOSE end -Route108_EventScript_Carolina:: @ 81EE6E6 +Route108_EventScript_Carolina:: trainerbattle_single TRAINER_CAROLINA, Route108_Text_CarolinaIntro, Route108_Text_CarolinaDefeated msgbox Route108_Text_CarolinaPostBattle, MSGBOX_AUTOCLOSE end -Route108_EventScript_Cory:: @ 81EE6FD +Route108_EventScript_Cory:: trainerbattle_single TRAINER_CORY_1, Route108_Text_CoryIntro, Route108_Text_CoryDefeated, Route108_EventScript_CoryRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -35,7 +35,7 @@ Route108_EventScript_Cory:: @ 81EE6FD release end -Route108_EventScript_CoryRegisterMatchCallAfterBattle:: @ 81EE729 +Route108_EventScript_CoryRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route108_Text_CoryRegister, MSGBOX_DEFAULT @@ -43,7 +43,7 @@ Route108_EventScript_CoryRegisterMatchCallAfterBattle:: @ 81EE729 release end -Route108_EventScript_CoryRematch:: @ 81EE748 +Route108_EventScript_CoryRematch:: trainerbattle_rematch TRAINER_CORY_1, Route108_Text_CoryRematchIntro, Route108_Text_CoryRematchDefeated msgbox Route108_Text_CoryRematchPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route109/scripts.inc b/data/maps/Route109/scripts.inc index 26da7f2b59..ff1ac4ac05 100644 --- a/data/maps/Route109/scripts.inc +++ b/data/maps/Route109/scripts.inc @@ -1,10 +1,10 @@ @ NOTE: Route 109's sail to Dewford script references local IDs from Dewford's map. @ These are labeled in DewfordTown/scripts.inc -Route109_MapScripts:: @ 81EE75F +Route109_MapScripts:: .byte 0 -Route109_EventScript_StartDepartForDewford:: @ 81EE760 +Route109_EventScript_StartDepartForDewford:: call EventScript_BackupMrBrineyLocation setobjectpriority LOCALID_BRINEY_R109, MAP_ROUTE109, 0 setobjectpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE109, 0 @@ -17,25 +17,25 @@ Route109_EventScript_StartDepartForDewford:: @ 81EE760 case DIR_EAST, Route109_EventScript_EnterBoatEast end -Route109_EventScript_EnterBoatSouth:: @ 81EE7A5 +Route109_EventScript_EnterBoatSouth:: applymovement OBJ_EVENT_ID_PLAYER, Route109_Movement_PlayerEnterBoatSouth waitmovement 0 goto Route109_EventScript_DoSailToDewford end -Route109_EventScript_EnterBoatEast:: @ 81EE7B5 +Route109_EventScript_EnterBoatEast:: applymovement OBJ_EVENT_ID_PLAYER, Route109_Movement_PlayerEnterBoatEast waitmovement 0 goto Route109_EventScript_DoSailToDewford end -Route109_EventScript_EnterBoatWest:: @ 81EE7C5 +Route109_EventScript_EnterBoatWest:: applymovement OBJ_EVENT_ID_PLAYER, Route109_Movement_PlayerEnterBoatWest waitmovement 0 goto Route109_EventScript_DoSailToDewford end -Route109_EventScript_DoSailToDewford:: @ 81EE7D5 +Route109_EventScript_DoSailToDewford:: hideobjectat OBJ_EVENT_ID_PLAYER, MAP_ROUTE109 call Common_EventScript_PlayBrineysBoatMusic applymovement LOCALID_BOAT_R109, Route109_Movement_SailToDewford @@ -65,7 +65,7 @@ Route109_EventScript_DoSailToDewford:: @ 81EE7D5 release end -Route109_Movement_SailToDewford: @ 81EE84F +Route109_Movement_SailToDewford: walk_in_place_fastest_down walk_down walk_down @@ -241,45 +241,45 @@ Route109_Movement_SailToDewford: @ 81EE84F walk_in_place_fastest_down step_end -Route109_Movement_PlayerEnterBoatSouth: @ 81EE8FD +Route109_Movement_PlayerEnterBoatSouth: walk_down walk_down step_end -Route109_Movement_PlayerExitBoat: @ 81EE900 +Route109_Movement_PlayerExitBoat: walk_down walk_down walk_left walk_in_place_fastest_right step_end -Route109_Movement_PlayerEnterBoatEast: @ 81EE905 +Route109_Movement_PlayerEnterBoatEast: walk_right walk_down step_end -Route109_Movement_PlayerEnterBoatWest: @ 81EE908 +Route109_Movement_PlayerEnterBoatWest: walk_left walk_down step_end -Route109_Movement_BrineyEnterBoat: @ 81EE90B +Route109_Movement_BrineyEnterBoat: walk_down step_end -Route109_Movement_BrineyExitBoat: @ 81EE90D +Route109_Movement_BrineyExitBoat: walk_down walk_in_place_fastest_left step_end -Route109_EventScript_MrBriney:: @ 81EE910 +Route109_EventScript_MrBriney:: lock faceplayer goto_if_unset FLAG_DELIVERED_DEVON_GOODS, Route109_EventScript_HaveNotDeliveredDevonGood goto Route109_EventScript_DeliveredDevonGoods end -Route109_EventScript_HaveNotDeliveredDevonGood:: @ 81EE921 +Route109_EventScript_HaveNotDeliveredDevonGood:: message Route109_Text_BrineySailToDewfordQuestion msgbox Route109_Text_BrineySailToDewfordQuestion, MSGBOX_YESNO compare VAR_RESULT, NO @@ -287,37 +287,37 @@ Route109_EventScript_HaveNotDeliveredDevonGood:: @ 81EE921 goto Route109_EventScript_SailToDewford end -Route109_EventScript_DeliveredDevonGoods:: @ 81EE93F +Route109_EventScript_DeliveredDevonGoods:: message Route109_Text_BrineyWhereAreWeBound waitmessage - multichoicedefault 21, 8, MULTI_BRINEY_OFF_DEWFORD, 1, 0 + multichoicedefault 21, 8, MULTI_BRINEY_OFF_DEWFORD, 1, FALSE switch VAR_RESULT case 0, Route109_EventScript_SailToDewford case 1, Route109_EventScript_ChoseNotToSail case MULTI_B_PRESSED, Route109_EventScript_ChoseNotToSail end -Route109_EventScript_SailToDewford:: @ 81EE972 +Route109_EventScript_SailToDewford:: msgbox Route109_Text_BrineyDewfordItIs, MSGBOX_DEFAULT closemessage goto Route109_EventScript_StartDepartForDewford end -Route109_EventScript_StayHere:: @ 81EE981 +Route109_EventScript_StayHere:: msgbox Route109_Text_BrineyDeliverDevonGoods, MSGBOX_DEFAULT release end -Route109_EventScript_ChoseNotToSail:: @ 81EE98B +Route109_EventScript_ChoseNotToSail:: msgbox Route109_Text_BrineyTellMeWhenYouNeedToSail, MSGBOX_DEFAULT release end -Route109_EventScript_SeashoreHouseGirl:: @ 81EE995 +Route109_EventScript_SeashoreHouseGirl:: msgbox Route109_Text_ChillAtMyPapasSpot, MSGBOX_NPC end -Route109_EventScript_SandCastleBoy:: @ 81EE99E +Route109_EventScript_SandCastleBoy:: lock faceplayer msgbox Route109_Text_SandCastleTakingLongTime, MSGBOX_DEFAULT @@ -327,7 +327,7 @@ Route109_EventScript_SandCastleBoy:: @ 81EE99E release end -Route109_EventScript_SoftSandGirl:: @ 81EE9B5 +Route109_EventScript_SoftSandGirl:: lock faceplayer special GetPlayerBigGuyGirlString @@ -343,22 +343,22 @@ Route109_EventScript_SoftSandGirl:: @ 81EE9B5 release end -Route109_EventScript_AlreadyReceivedSoftSand:: @ 81EE9F2 +Route109_EventScript_AlreadyReceivedSoftSand:: msgbox Route109_Text_WereGoingToMakeBigCastle, MSGBOX_DEFAULT applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection waitmovement 0 release end -Route109_EventScript_Woman:: @ 81EEA06 +Route109_EventScript_Woman:: msgbox Route109_Text_LittleKidsDartAround, MSGBOX_NPC end -Route109_EventScript_OldMan:: @ 81EEA0F +Route109_EventScript_OldMan:: msgbox Route109_Text_ZigzagoonPicksUpLitter, MSGBOX_NPC end -Route109_EventScript_Zigzagoon:: @ 81EEA18 +Route109_EventScript_Zigzagoon:: lock faceplayer waitse @@ -368,35 +368,35 @@ Route109_EventScript_Zigzagoon:: @ 81EEA18 release end -Route109_EventScript_SeashoreHouseSign:: @ 81EEA2B +Route109_EventScript_SeashoreHouseSign:: msgbox Route109_Text_SeashoreHouseSign, MSGBOX_SIGN end -Route109_EventScript_TrainerTipsSign:: @ 81EEA34 +Route109_EventScript_TrainerTipsSign:: msgbox Route109_Text_TrainerTipsSign, MSGBOX_SIGN end -Route109_EventScript_David:: @ 81EEA3D +Route109_EventScript_David:: trainerbattle_single TRAINER_DAVID, Route109_Text_DavidIntro, Route109_Text_DavidDefeated msgbox Route109_Text_DavidPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Alice:: @ 81EEA54 +Route109_EventScript_Alice:: trainerbattle_single TRAINER_ALICE, Route109_Text_AliceIntro, Route109_Text_AliceDefeated msgbox Route109_Text_AlicePostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Huey:: @ 81EEA6B +Route109_EventScript_Huey:: trainerbattle_single TRAINER_HUEY, Route109_Text_HueyIntro, Route109_Text_HueyDefeated msgbox Route109_Text_HueyPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Edmond:: @ 81EEA82 +Route109_EventScript_Edmond:: trainerbattle_single TRAINER_EDMOND, Route109_Text_EdmondIntro, Route109_Text_EdmondDefeated msgbox Route109_Text_EdmondPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Ricky:: @ 81EEA99 +Route109_EventScript_Ricky:: trainerbattle_single TRAINER_RICKY_1, Route109_Text_RickyIntro, Route109_Text_RickyDefeated, Route109_EventScript_RickyRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -405,7 +405,7 @@ Route109_EventScript_Ricky:: @ 81EEA99 release end -Route109_EventScript_RickyRegisterMatchCallAfterBattle:: @ 81EEAC5 +Route109_EventScript_RickyRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route109_Text_RickyRegister, MSGBOX_DEFAULT @@ -413,12 +413,12 @@ Route109_EventScript_RickyRegisterMatchCallAfterBattle:: @ 81EEAC5 release end -Route109_EventScript_RickyRematch:: @ 81EEAE4 +Route109_EventScript_RickyRematch:: trainerbattle_rematch TRAINER_RICKY_1, Route109_Text_RickyRematchIntro, Route109_Text_RickyRematchDefeated msgbox Route109_Text_RickyRematchPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Lola:: @ 81EEAFB +Route109_EventScript_Lola:: trainerbattle_single TRAINER_LOLA_1, Route109_Text_LolaIntro, Route109_Text_LolaDefeated, Route109_EventScript_LolaRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -427,7 +427,7 @@ Route109_EventScript_Lola:: @ 81EEAFB release end -Route109_EventScript_LolaRegisterMatchCallAfterBattle:: @ 81EEB27 +Route109_EventScript_LolaRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route109_Text_LolaRegister, MSGBOX_DEFAULT @@ -435,115 +435,115 @@ Route109_EventScript_LolaRegisterMatchCallAfterBattle:: @ 81EEB27 release end -Route109_EventScript_LolaRematch:: @ 81EEB46 +Route109_EventScript_LolaRematch:: trainerbattle_rematch TRAINER_LOLA_1, Route109_Text_LolaRematchIntro, Route109_Text_LolaRematchDefeated msgbox Route109_Text_LolaRematchPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Austina:: @ 81EEB5D +Route109_EventScript_Austina:: trainerbattle_single TRAINER_AUSTINA, Route109_Text_AustinaIntro, Route109_Text_AustinaDefeated msgbox Route109_Text_AustinaPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Gwen:: @ 81EEB74 +Route109_EventScript_Gwen:: trainerbattle_single TRAINER_GWEN, Route109_Text_GwenIntro, Route109_Text_GwenDefeated msgbox Route109_Text_GwenPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Carter:: @ 81EEB8B +Route109_EventScript_Carter:: trainerbattle_single TRAINER_CARTER, Route109_Text_CarterIntro, Route109_Text_CarterDefeated msgbox Route109_Text_CarterPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Paul:: @ 81EEBA2 +Route109_EventScript_Paul:: trainerbattle_double TRAINER_MEL_AND_PAUL, Route109_Text_PaulIntro, Route109_Text_PaulDefeated, Route109_Text_PaulNotEnoughPokemon msgbox Route109_Text_PaulPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Mel:: @ 81EEBBD +Route109_EventScript_Mel:: trainerbattle_double TRAINER_MEL_AND_PAUL, Route109_Text_MelIntro, Route109_Text_MelDefeated, Route109_Text_MelNotEnoughPokemon msgbox Route109_Text_MelPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Chandler:: @ 81EEBD8 +Route109_EventScript_Chandler:: trainerbattle_single TRAINER_CHANDLER, Route109_Text_ChandlerIntro, Route109_Text_ChandlerDefeated msgbox Route109_Text_ChandlerPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Hailey:: @ 81EEBEF +Route109_EventScript_Hailey:: trainerbattle_single TRAINER_HAILEY, Route109_Text_HaileyIntro, Route109_Text_HaileyDefeated msgbox Route109_Text_HaileyPostBattle, MSGBOX_AUTOCLOSE end -Route109_EventScript_Elijah:: @ 81EEC06 +Route109_EventScript_Elijah:: trainerbattle_single TRAINER_ELIJAH, Route109_Text_ElijahIntro, Route109_Text_ElijahDefeated msgbox Route109_Text_ElijahPostBattle, MSGBOX_AUTOCLOSE end -DewfordTown_Text_BrineyLandedInSlateportDeliverGoods: @ 81EEC1D +DewfordTown_Text_BrineyLandedInSlateportDeliverGoods: .string "MR. BRINEY: Ahoy!\n" .string "We've made land in SLATEPORT!\p" .string "I suppose you're going to visit CAPT.\n" .string "STERN and deliver the DEVON GOODS?$" -Route109_Text_BrineySailToDewfordQuestion: @ 81EEC96 +Route109_Text_BrineySailToDewfordQuestion: .string "MR. BRINEY: I thought you're supposed\n" .string "to deliver the DEVON GOODS.\p" .string "Would you like to sail back to\n" .string "DEWFORD, then?$" -Route109_Text_BrineyDewfordItIs: @ 81EED06 +Route109_Text_BrineyDewfordItIs: .string "MR. BRINEY: DEWFORD it is, then!\p" .string "Anchors aweigh!\n" .string "PEEKO, we're setting sail, my darling!$" -Route109_Text_BrineyDeliverDevonGoods: @ 81EED5E +Route109_Text_BrineyDeliverDevonGoods: .string "MR. BRINEY: Then you go on and deliver\n" .string "the DEVON GOODS. I'll be waiting.$" -DewfordTown_Text_BrineyLandedInSlateport: @ 81EEDA7 +DewfordTown_Text_BrineyLandedInSlateport: .string "MR. BRINEY: Ahoy! We've made land in\n" .string "SLATEPORT!\p" .string "You just go on and tell me whenever\n" .string "you want to set sail again!$" -Route109_Text_BrineyWhereAreWeBound: @ 81EEE17 +Route109_Text_BrineyWhereAreWeBound: .string "MR. BRINEY: Ahoy!\n" .string "For you, I'll go out to sea anytime!\p" .string "Now, my friend, where are we bound?$" -Route109_Text_BrineyTellMeWhenYouNeedToSail: @ 81EEE72 +Route109_Text_BrineyTellMeWhenYouNeedToSail: .string "MR. BRINEY: You just tell me whenever\n" .string "you need to set sail again!$" -Route109_Text_ChillAtMyPapasSpot: @ 81EEEB4 +Route109_Text_ChillAtMyPapasSpot: .string "Yo, TRAINERS!\n" .string "Whether you're hot to trot,\l" .string "or cool cat not,\l" .string "chill at my papa's spot!$" -Route109_Text_LittleKidsDartAround: @ 81EEF08 +Route109_Text_LittleKidsDartAround: .string "Little kids can dart around so quickly…\p" .string "You don't dare take your eyes off them\n" .string "for an instant. It's very taxing.\p" .string "Mine are with my POKéMON, so they\n" .string "should be okay, but…$" -Route109_Text_SandCastleTakingLongTime: @ 81EEFB0 +Route109_Text_SandCastleTakingLongTime: .string "Our sand castle's taking a long time\n" .string "to make.$" -Route109_Text_YouCanHaveThis: @ 81EEFDE +Route109_Text_YouCanHaveThis: .string "You can have this!$" -Route109_Text_WereGoingToMakeBigCastle: @ 81EEFF1 +Route109_Text_WereGoingToMakeBigCastle: .string "We're going to get all the sand from\n" .string "the beach and make a big castle!\p" .string "And then we're going to be a king and\n" .string "queen.\p" .string "We'll let you be a servant.$" -Route109_Text_ZigzagoonPicksUpLitter: @ 81EF080 +Route109_Text_ZigzagoonPicksUpLitter: .string "The water around these parts is clean.\p" .string "But, I get my ZIGZAGOON to pick up\n" .string "litter from the shoreline at times.\p" @@ -552,15 +552,15 @@ Route109_Text_ZigzagoonPicksUpLitter: @ 81EF080 .string "If we pollute the sea, it all comes\n" .string "back to haunt us eventually.$" -Route109_Text_ZigzagoonCry: @ 81EF173 +Route109_Text_ZigzagoonCry: .string "ZIGZAGOON: Guguu?$" -Route109_Text_SeashoreHouseSign: @ 81EF185 +Route109_Text_SeashoreHouseSign: .string "SEASHORE HOUSE\p" .string "“May hot battles rage on hot sands!\n" .string "The place for hot TRAINERS!”$" -Route109_Text_TrainerTipsSign: @ 81EF1D5 +Route109_Text_TrainerTipsSign: .string "TRAINER TIPS\p" .string "POKéMON at the same level may not\n" .string "always have identical stats.\p" diff --git a/data/maps/Route109_SeashoreHouse/scripts.inc b/data/maps/Route109_SeashoreHouse/scripts.inc index 9334772d6b..c4cfd1576e 100644 --- a/data/maps/Route109_SeashoreHouse/scripts.inc +++ b/data/maps/Route109_SeashoreHouse/scripts.inc @@ -1,12 +1,12 @@ -Route109_SeashoreHouse_MapScripts:: @ 82693F4 +Route109_SeashoreHouse_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route109_SeashoreHouse_OnTransition .byte 0 -Route109_SeashoreHouse_OnTransition: @ 82693FA +Route109_SeashoreHouse_OnTransition: setflag FLAG_LANDMARK_SEASHORE_HOUSE end -Route109_SeashoreHouse_EventScript_Owner:: @ 82693FE +Route109_SeashoreHouse_EventScript_Owner:: lock faceplayer goto_if_set FLAG_RECEIVED_6_SODA_POP, Route109_SeashoreHouse_EventScript_AlreadyReceivedSodaPop @@ -17,12 +17,12 @@ Route109_SeashoreHouse_EventScript_Owner:: @ 82693FE release end -Route109_SeashoreHouse_EventScript_AlreadyGaveIntroduction:: @ 8269428 +Route109_SeashoreHouse_EventScript_AlreadyGaveIntroduction:: msgbox Route109_SeashoreHouse_Text_ShowMeSomeHotMatches, MSGBOX_DEFAULT release end -Route109_SeashoreHouse_EventScript_DefeatedTrainers:: @ 8269432 +Route109_SeashoreHouse_EventScript_DefeatedTrainers:: msgbox Route109_SeashoreHouse_Text_TakeTheseSodaPopBottles, MSGBOX_DEFAULT giveitem ITEM_SODA_POP, 6 compare VAR_RESULT, FALSE @@ -31,12 +31,12 @@ Route109_SeashoreHouse_EventScript_DefeatedTrainers:: @ 8269432 release end -Route109_SeashoreHouse_EventScript_BagFull:: @ 8269456 +Route109_SeashoreHouse_EventScript_BagFull:: msgbox Route109_SeashoreHouse_Text_BagFull, MSGBOX_DEFAULT release end -Route109_SeashoreHouse_EventScript_AlreadyReceivedSodaPop:: @ 8269460 +Route109_SeashoreHouse_EventScript_AlreadyReceivedSodaPop:: showmoneybox 0, 0, 0 msgbox Route109_SeashoreHouse_Text_WantToBuySodaPop, MSGBOX_YESNO compare VAR_RESULT, YES @@ -46,7 +46,7 @@ Route109_SeashoreHouse_EventScript_AlreadyReceivedSodaPop:: @ 8269460 release end -Route109_SeashoreHouse_EventScript_BuySodaPop:: @ 8269484 +Route109_SeashoreHouse_EventScript_BuySodaPop:: checkmoney 300, 0 compare VAR_RESULT, FALSE goto_if_eq Route109_SeashoreHouse_EventScript_NotEnoughMoney @@ -61,34 +61,34 @@ Route109_SeashoreHouse_EventScript_BuySodaPop:: @ 8269484 release end -Route109_SeashoreHouse_EventScript_NotEnoughMoney:: @ 82694C8 +Route109_SeashoreHouse_EventScript_NotEnoughMoney:: msgbox Route109_SeashoreHouse_Text_NotEnoughMoney, MSGBOX_DEFAULT hidemoneybox release end -Route109_SeashoreHouse_EventScript_NotEnoughSpace:: @ 82694D5 +Route109_SeashoreHouse_EventScript_NotEnoughSpace:: msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT hidemoneybox release end -Route109_SeashoreHouse_EventScript_Dwayne:: @ 82694E2 +Route109_SeashoreHouse_EventScript_Dwayne:: trainerbattle_single TRAINER_DWAYNE, Route109_SeashoreHouse_Text_DwayneIntro, Route109_SeashoreHouse_Text_DwayneDefeated, Route109_SeashoreHouse_EventScript_CheckTrainersCompletion msgbox Route109_SeashoreHouse_Text_DwaynePostBattle, MSGBOX_AUTOCLOSE end -Route109_SeashoreHouse_EventScript_Johanna:: @ 82694FD +Route109_SeashoreHouse_EventScript_Johanna:: trainerbattle_single TRAINER_JOHANNA, Route109_SeashoreHouse_Text_JohannaIntro, Route109_SeashoreHouse_Text_JohannaDefeated, Route109_SeashoreHouse_EventScript_CheckTrainersCompletion msgbox Route109_SeashoreHouse_Text_JohannaPostBattle, MSGBOX_AUTOCLOSE end -Route109_SeashoreHouse_EventScript_Simon:: @ 8269518 +Route109_SeashoreHouse_EventScript_Simon:: trainerbattle_single TRAINER_SIMON, Route109_SeashoreHouse_Text_SimonIntro, Route109_SeashoreHouse_Text_SimonDefeated, Route109_SeashoreHouse_EventScript_CheckTrainersCompletion msgbox Route109_SeashoreHouse_Text_SimonPostBattle, MSGBOX_AUTOCLOSE end -Route109_SeashoreHouse_EventScript_CheckTrainersCompletion:: @ 8269533 +Route109_SeashoreHouse_EventScript_CheckTrainersCompletion:: goto_if_not_defeated TRAINER_DWAYNE, Route109_SeashoreHouse_EventScript_TrainersNotCompleted goto_if_not_defeated TRAINER_JOHANNA, Route109_SeashoreHouse_EventScript_TrainersNotCompleted goto_if_not_defeated TRAINER_SIMON, Route109_SeashoreHouse_EventScript_TrainersNotCompleted @@ -96,11 +96,11 @@ Route109_SeashoreHouse_EventScript_CheckTrainersCompletion:: @ 8269533 release end -Route109_SeashoreHouse_EventScript_TrainersNotCompleted:: @ 8269553 +Route109_SeashoreHouse_EventScript_TrainersNotCompleted:: release end -Route109_SeashoreHouse_Text_SeashoreHouseIntro: @ 8269555 +Route109_SeashoreHouse_Text_SeashoreHouseIntro: .string "I'm the owner of the SEASHORE HOUSE.\n" .string "But you can call me MR. SEA!\p" .string "What I love above all is to see hot\n" @@ -109,12 +109,12 @@ Route109_SeashoreHouse_Text_SeashoreHouseIntro: @ 8269555 .string "If you can defeat all the TRAINERS\n" .string "here, I'll reward your efforts.$" -Route109_SeashoreHouse_Text_ShowMeSomeHotMatches: @ 8269635 +Route109_SeashoreHouse_Text_ShowMeSomeHotMatches: .string "Show me some hot matches!\p" .string "I run this SEASHORE HOUSE just for\n" .string "that reason alone!$" -Route109_SeashoreHouse_Text_TakeTheseSodaPopBottles: @ 8269685 +Route109_SeashoreHouse_Text_TakeTheseSodaPopBottles: .string "You're scorching hot!\n" .string "Those battles blazed!\l" .string "I'm more than just satisfied!\p" @@ -122,59 +122,59 @@ Route109_SeashoreHouse_Text_TakeTheseSodaPopBottles: @ 8269685 .string "streak, I want you to take these.\p" .string "It's half a dozen bottles of SODA POP!$" -Route109_SeashoreHouse_Text_BagFull: @ 826973A +Route109_SeashoreHouse_Text_BagFull: .string "Oh, but hey, your BAG's jammed full.\n" .string "I'll hang on to these for you.$" -Route109_SeashoreHouse_Text_WantToBuySodaPop: @ 826977E +Route109_SeashoreHouse_Text_WantToBuySodaPop: .string "Want to buy some SODA POP?\n" .string "POKéMON love it!\p" .string "Just ¥300 a bottle!\n" .string "Buy some!$" -Route109_SeashoreHouse_Text_HereYouGo: @ 82697C8 +Route109_SeashoreHouse_Text_HereYouGo: .string "Here you go!$" -Route109_SeashoreHouse_Text_NotEnoughMoney: @ 82697D5 +Route109_SeashoreHouse_Text_NotEnoughMoney: .string "You don't have the money.$" -Route109_SeashoreHouse_Text_ThatsTooBad: @ 82697EF +Route109_SeashoreHouse_Text_ThatsTooBad: .string "No?\n" .string "That's too bad.$" -Route109_SeashoreHouse_Text_DwayneIntro: @ 8269803 +Route109_SeashoreHouse_Text_DwayneIntro: .string "If you're looking for a battle in the\n" .string "SEASHORE HOUSE, you'll find no\l" .string "hotter TRAINER than me, matey!$" -Route109_SeashoreHouse_Text_DwayneDefeated: @ 8269867 +Route109_SeashoreHouse_Text_DwayneDefeated: .string "That was a hot battle!\n" .string "I can accept that loss, matey!$" -Route109_SeashoreHouse_Text_DwaynePostBattle: @ 826989D +Route109_SeashoreHouse_Text_DwaynePostBattle: .string "Whenever I'm in SLATEPORT, I enjoy\n" .string "hot battles and ice-cold SODA POP!$" -Route109_SeashoreHouse_Text_JohannaIntro: @ 82698E3 +Route109_SeashoreHouse_Text_JohannaIntro: .string "Boring battles aren't worth the effort.\p" .string "Fiery hot battles are what toughen up\n" .string "TRAINERS and POKéMON!$" -Route109_SeashoreHouse_Text_JohannaDefeated: @ 8269947 +Route109_SeashoreHouse_Text_JohannaDefeated: .string "That's hot!$" -Route109_SeashoreHouse_Text_JohannaPostBattle: @ 8269953 +Route109_SeashoreHouse_Text_JohannaPostBattle: .string "Whew, I'm all thirsty.\n" .string "Maybe I'll have a SODA POP.$" -Route109_SeashoreHouse_Text_SimonIntro: @ 8269986 +Route109_SeashoreHouse_Text_SimonIntro: .string "I'm going to show you how great\n" .string "my POKéMON are, but don't cry!$" -Route109_SeashoreHouse_Text_SimonDefeated: @ 82699C5 +Route109_SeashoreHouse_Text_SimonDefeated: .string "…I lost, but I won't cry…$" -Route109_SeashoreHouse_Text_SimonPostBattle: @ 82699DF +Route109_SeashoreHouse_Text_SimonPostBattle: .string "If one of my POKéMON knew the move\n" .string "for carrying me across water on its\l" .string "back, I could get rid of this inner tube.$" diff --git a/data/maps/Route110/map.json b/data/maps/Route110/map.json index bb5df5eb4a..abfc2b767d 100644 --- a/data/maps/Route110/map.json +++ b/data/maps/Route110/map.json @@ -234,7 +234,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "16", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_1", "script": "BerryTreeScript", "flag": "0" }, @@ -247,7 +247,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "17", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_2", "script": "BerryTreeScript", "flag": "0" }, @@ -260,7 +260,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "18", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_3", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index 50f3d1f48c..e9caf68ade 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -3,37 +3,37 @@ .set LOCALID_RIVAL_ON_BIKE, 29 .set LOCALID_BIRCH, 36 -Route110_MapScripts:: @ 81EF269 +Route110_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route110_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Route110_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, Route110_OnFrame .byte 0 -Route110_OnResume: @ 81EF279 +Route110_OnResume: special UpdateCyclingRoadState end -Route110_OnTransition: @ 81EF27D +Route110_OnTransition: call Common_EventScript_SetupRivalGfxId call Common_EventScript_SetupRivalOnBikeGfxId compare VAR_CYCLING_CHALLENGE_STATE, 1 call_if_eq Route110_EventScript_SaveCyclingMusic end -Route110_EventScript_SaveCyclingMusic:: @ 81EF293 +Route110_EventScript_SaveCyclingMusic:: savebgm MUS_CYCLING return -Route110_OnFrame: @ 81EF297 +Route110_OnFrame: map_script_2 VAR_CYCLING_CHALLENGE_STATE, 1, Route110_EventScript_BeginCylcingRoadChallenge .2byte 0 -Route110_EventScript_BeginCylcingRoadChallenge:: @ 81EF2A1 +Route110_EventScript_BeginCylcingRoadChallenge:: special Special_BeginCyclingRoadChallenge setvar VAR_CYCLING_CHALLENGE_STATE, 2 return -Route110_EventScript_AquaGrunt1:: @ 81EF2AA +Route110_EventScript_AquaGrunt1:: lock faceplayer msgbox Route110_Text_WeCantTalkAboutAquaActivities, MSGBOX_DEFAULT @@ -42,7 +42,7 @@ Route110_EventScript_AquaGrunt1:: @ 81EF2AA release end -Route110_EventScript_AquaGrunt2:: @ 81EF2C0 +Route110_EventScript_AquaGrunt2:: lock faceplayer msgbox Route110_Text_KickUpARuckus, MSGBOX_DEFAULT @@ -51,7 +51,7 @@ Route110_EventScript_AquaGrunt2:: @ 81EF2C0 release end -Route110_EventScript_AquaGrunt3:: @ 81EF2D6 +Route110_EventScript_AquaGrunt3:: lock faceplayer msgbox Route110_Text_MyFirstJobInAqua, MSGBOX_DEFAULT @@ -60,7 +60,7 @@ Route110_EventScript_AquaGrunt3:: @ 81EF2D6 release end -Route110_EventScript_AquaGrunt4:: @ 81EF2EC +Route110_EventScript_AquaGrunt4:: lock faceplayer msgbox Route110_Text_AquaActionsBringSmiles, MSGBOX_DEFAULT @@ -69,71 +69,71 @@ Route110_EventScript_AquaGrunt4:: @ 81EF2EC release end -Route110_EventScript_Boy1:: @ 81EF302 +Route110_EventScript_Boy1:: msgbox Route110_Text_RideBikeAtFullSpeed, MSGBOX_NPC end -Route110_EventScript_CyclingGirl1:: @ 81EF30B +Route110_EventScript_CyclingGirl1:: msgbox Route110_Text_HairStreamsBehindMe, MSGBOX_NPC end -Route110_EventScript_CyclingGuy1:: @ 81EF314 +Route110_EventScript_CyclingGuy1:: msgbox Route110_Text_YouGotBikeFromRydel, MSGBOX_NPC end -Route110_EventScript_OldMan:: @ 81EF31D +Route110_EventScript_OldMan:: msgbox Route110_Text_TwoRoads, MSGBOX_NPC end -Route110_EventScript_OldWoman:: @ 81EF326 +Route110_EventScript_OldWoman:: msgbox Route110_Text_WalkOnTheLowRoad, MSGBOX_NPC end -Route110_EventScript_CyclingGuy2:: @ 81EF32F +Route110_EventScript_CyclingGuy2:: msgbox Route110_Text_BikeTechniques, MSGBOX_NPC end -Route110_EventScript_Boy2:: @ 81EF338 +Route110_EventScript_Boy2:: msgbox Route110_Text_WhichShouldIChoose, MSGBOX_NPC end -Route110_EventScript_SlateportCitySign:: @ 81EF341 +Route110_EventScript_SlateportCitySign:: msgbox Route110_Text_SlateportCitySign, MSGBOX_SIGN end -Route110_EventScript_CyclingRoadSign:: @ 81EF34A +Route110_EventScript_CyclingRoadSign:: msgbox Route110_Text_CyclingRoadSign, MSGBOX_SIGN end -Route110_EventScript_VandalizedSign:: @ 81EF353 +Route110_EventScript_VandalizedSign:: msgbox Route110_Text_AquaWasHere, MSGBOX_SIGN end -Route110_EventScript_Route103Sign:: @ 81EF35C +Route110_EventScript_Route103Sign:: msgbox Route110_Text_Route103Sign, MSGBOX_SIGN end -Route110_EventScript_SeasideParkingSign:: @ 81EF365 +Route110_EventScript_SeasideParkingSign:: msgbox Route110_Text_SeasideParkingSign, MSGBOX_SIGN end -Route110_EventScript_MauvilleCitySign:: @ 81EF36E +Route110_EventScript_MauvilleCitySign:: msgbox Route110_Text_MauvilleCitySign, MSGBOX_SIGN end -Route110_EventScript_TrainerTipsPrlzSleep:: @ 81EF377 +Route110_EventScript_TrainerTipsPrlzSleep:: msgbox Route110_Text_TrainerTipsPrlzSleep, MSGBOX_SIGN end -Route110_EventScript_TrainerTipsRegisterItems:: @ 81EF380 +Route110_EventScript_TrainerTipsRegisterItems:: msgbox Route110_Text_TrainerTipsRegisterItems, MSGBOX_SIGN end -Route110_EventScript_TrickHouseSign:: @ 81EF389 +Route110_EventScript_TrickHouseSign:: msgbox Route110_Text_TrickHouseSign, MSGBOX_SIGN end -Route110_EventScript_CyclingRoadResultsSign:: @ 81EF392 +Route110_EventScript_CyclingRoadResultsSign:: lockall specialvar VAR_RESULT, GetRecordedCyclingRoadResults compare VAR_RESULT, FALSE @@ -142,12 +142,12 @@ Route110_EventScript_CyclingRoadResultsSign:: @ 81EF392 releaseall end -Route110_EventScript_NoRecordSet:: @ 81EF3AD +Route110_EventScript_NoRecordSet:: msgbox Route110_Text_ThereIsNoRecord, MSGBOX_DEFAULT releaseall end -Route110_EventScript_ChallengeGuy:: @ 81EF3B7 +Route110_EventScript_ChallengeGuy:: lock faceplayer specialvar VAR_RESULT, GetPlayerAvatarBike @@ -159,27 +159,27 @@ Route110_EventScript_ChallengeGuy:: @ 81EF3B7 release end -Route110_EventScript_PlayerNotRidingBike:: @ 81EF3DE +Route110_EventScript_PlayerNotRidingBike:: msgbox Route110_Text_RatedForNumberOfCollisions, MSGBOX_DEFAULT release end -Route110_EventScript_PlayerRidingAcroBike:: @ 81EF3E8 +Route110_EventScript_PlayerRidingAcroBike:: msgbox Route110_Text_AcroBikesDoNotQualify, MSGBOX_DEFAULT release end -Route110_EventScript_Edward:: @ 81EF3F2 +Route110_EventScript_Edward:: trainerbattle_single TRAINER_EDWARD, Route110_Text_EdwardIntro, Route110_Text_EdwardDefeated msgbox Route110_Text_EdwardPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Jaclyn:: @ 81EF409 +Route110_EventScript_Jaclyn:: trainerbattle_single TRAINER_JACLYN, Route110_Text_JaclynIntro, Route110_Text_JaclynDefeated msgbox Route110_Text_JaclynPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Edwin:: @ 81EF420 +Route110_EventScript_Edwin:: trainerbattle_single TRAINER_EDWIN_1, Route110_Text_EdwinIntro, Route110_Text_EdwinDefeated, Route110_EventScript_EdwinRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -188,7 +188,7 @@ Route110_EventScript_Edwin:: @ 81EF420 release end -Route110_EventScript_EdwinRegisterMatchCallAfterBattle:: @ 81EF44C +Route110_EventScript_EdwinRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route110_Text_EdwinRegister, MSGBOX_DEFAULT @@ -196,27 +196,27 @@ Route110_EventScript_EdwinRegisterMatchCallAfterBattle:: @ 81EF44C release end -Route110_EventScript_EdwinRematch:: @ 81EF46B +Route110_EventScript_EdwinRematch:: trainerbattle_rematch TRAINER_EDWIN_1, Route110_Text_EdwinRematchIntro, Route110_Text_EdwinRematchDefeated msgbox Route110_Text_EdwinRematchPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Dale:: @ 81EF482 +Route110_EventScript_Dale:: trainerbattle_single TRAINER_DALE, Route110_Text_DaleIntro, Route110_Text_DaleDefeated msgbox Route110_Text_DalePostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Jacob:: @ 81EF499 +Route110_EventScript_Jacob:: trainerbattle_single TRAINER_JACOB, Route110_Text_JacobIntro, Route110_Text_JacobDefeated msgbox Route110_Text_JacobPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Anthony:: @ 81EF4B0 +Route110_EventScript_Anthony:: trainerbattle_single TRAINER_ANTHONY, Route110_Text_AnthonyIntro, Route110_Text_AnthonyDefeated msgbox Route110_Text_AnthonyPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Benjamin:: @ 81EF4C7 +Route110_EventScript_Benjamin:: trainerbattle_single TRAINER_BENJAMIN_1, Route110_Text_BenjaminIntro, Route110_Text_BenjaminDefeated, Route110_EventScript_BenjaminRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -225,7 +225,7 @@ Route110_EventScript_Benjamin:: @ 81EF4C7 release end -Route110_EventScript_BenjaminRegisterMatchCallAfterBattle:: @ 81EF4F3 +Route110_EventScript_BenjaminRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route110_Text_BenjaminRegister, MSGBOX_DEFAULT @@ -233,17 +233,17 @@ Route110_EventScript_BenjaminRegisterMatchCallAfterBattle:: @ 81EF4F3 release end -Route110_EventScript_BenjaminRematch:: @ 81EF512 +Route110_EventScript_BenjaminRematch:: trainerbattle_rematch TRAINER_BENJAMIN_1, Route110_Text_BenjaminRematchIntro, Route110_Text_BenjaminRematchDefeated msgbox Route110_Text_BenjaminRematchPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Jasmine:: @ 81EF529 +Route110_EventScript_Jasmine:: trainerbattle_single TRAINER_JASMINE, Route110_Text_JasmineIntro, Route110_Text_JasmineDefeated msgbox Route110_Text_JasminePostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Abigail:: @ 81EF540 +Route110_EventScript_Abigail:: trainerbattle_single TRAINER_ABIGAIL_1, Route110_Text_AbigailIntro, Route110_Text_AbigailDefeated, Route110_EventScript_AbigailRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -252,7 +252,7 @@ Route110_EventScript_Abigail:: @ 81EF540 release end -Route110_EventScript_AbigailRegisterMatchCallAfterBattle:: @ 81EF56C +Route110_EventScript_AbigailRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route110_Text_AbigailRegister, MSGBOX_DEFAULT @@ -260,12 +260,12 @@ Route110_EventScript_AbigailRegisterMatchCallAfterBattle:: @ 81EF56C release end -Route110_EventScript_AbigailRematch:: @ 81EF58B +Route110_EventScript_AbigailRematch:: trainerbattle_rematch TRAINER_ABIGAIL_1, Route110_Text_AbigailRematchIntro, Route110_Text_AbigailRematchDefeated msgbox Route110_Text_AbigailRematchPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Isabel:: @ 81EF5A2 +Route110_EventScript_Isabel:: trainerbattle_single TRAINER_ISABEL_1, Route110_Text_IsabelIntro, Route110_Text_IsabelDefeated, Route110_EventScript_IsabelRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -274,7 +274,7 @@ Route110_EventScript_Isabel:: @ 81EF5A2 release end -Route110_EventScript_IsabelRegisterMatchCallAfterBattle:: @ 81EF5CE +Route110_EventScript_IsabelRegisterMatchCallAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route110_Text_IsabelRegister, MSGBOX_DEFAULT @@ -282,35 +282,35 @@ Route110_EventScript_IsabelRegisterMatchCallAfterBattle:: @ 81EF5CE release end -Route110_EventScript_IsabelRematch:: @ 81EF5ED +Route110_EventScript_IsabelRematch:: trainerbattle_rematch TRAINER_ISABEL_1, Route110_Text_IsabelRematchIntro, Route110_Text_IsabelRematchDefeated msgbox Route110_Text_IsabelRematchPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Timmy:: @ 81EF604 +Route110_EventScript_Timmy:: trainerbattle_single TRAINER_TIMMY, Route110_Text_TimmyIntro, Route110_Text_TimmyDefeated msgbox Route110_Text_TimmyPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Unused:: @ 81EF61B +Route110_EventScript_Unused:: end -Route110_EventScript_Kaleb:: @ 81EF61C +Route110_EventScript_Kaleb:: trainerbattle_single TRAINER_KALEB, Route110_Text_KalebIntro, Route110_Text_KalebDefeated msgbox Route110_Text_KalebPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Joseph:: @ 81EF633 +Route110_EventScript_Joseph:: trainerbattle_single TRAINER_JOSEPH, Route110_Text_JosephIntro, Route110_Text_JosephDefeated msgbox Route110_Text_JosephPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_Alyssa:: @ 81EF64A +Route110_EventScript_Alyssa:: trainerbattle_single TRAINER_ALYSSA, Route110_Text_AlyssaIntro, Route110_Text_AlyssaDefeated msgbox Route110_Text_AlyssaPostBattle, MSGBOX_AUTOCLOSE end -Route110_EventScript_CyclingChallengeEnd:: @ 81EF661 +Route110_EventScript_CyclingChallengeEnd:: lockall applymovement LOCALID_CHALLENGE_BIKER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 @@ -318,7 +318,7 @@ Route110_EventScript_CyclingChallengeEnd:: @ 81EF661 releaseall end -Route110_EventScript_CyclingChallengeResults:: @ 81EF673 +Route110_EventScript_CyclingChallengeResults:: special FinishCyclingRoadChallenge msgbox Route110_Text_CyclingChallengeResultSummary, MSGBOX_DEFAULT switch VAR_RESULT @@ -335,53 +335,53 @@ Route110_EventScript_CyclingChallengeResults:: @ 81EF673 case 0, Route110_EventScript_ChallengeReactionWorst end -Route110_EventScript_ChallengeReactionBest:: @ 81EF6FD +Route110_EventScript_ChallengeReactionBest:: msgbox Route110_Text_ChallengeReactionBest, MSGBOX_DEFAULT goto Route110_EventScript_EndChallenge end -Route110_EventScript_ChallengeReactionGood:: @ 81EF70B +Route110_EventScript_ChallengeReactionGood:: msgbox Route110_Text_ChallengeReactionGood, MSGBOX_DEFAULT goto Route110_EventScript_EndChallenge end -Route110_EventScript_ChallengeReactionOk:: @ 81EF719 +Route110_EventScript_ChallengeReactionOk:: msgbox Route110_Text_ChallengeReactionOk, MSGBOX_DEFAULT goto Route110_EventScript_EndChallenge end -Route110_EventScript_ChallengeReactionBad:: @ 81EF727 +Route110_EventScript_ChallengeReactionBad:: msgbox Route110_Text_ChallengeReactionBad, MSGBOX_DEFAULT goto Route110_EventScript_EndChallenge end -Route110_EventScript_ChallengeReactionWorst:: @ 81EF735 +Route110_EventScript_ChallengeReactionWorst:: msgbox Route110_Text_ChallengeReactionWorst, MSGBOX_DEFAULT goto Route110_EventScript_EndChallenge end -Route110_EventScript_EndChallenge:: @ 81EF743 +Route110_EventScript_EndChallenge:: setvar VAR_CYCLING_CHALLENGE_STATE, 3 savebgm MUS_DUMMY fadedefaultbgm return -Route110_EventScript_RivalTrigger1:: @ 81EF74D +Route110_EventScript_RivalTrigger1:: setvar VAR_0x8008, 1 goto Route110_EventScript_RivalScene end -Route110_EventScript_RivalTrigger2:: @ 81EF758 +Route110_EventScript_RivalTrigger2:: setvar VAR_0x8008, 2 goto Route110_EventScript_RivalScene end -Route110_EventScript_RivalTrigger3:: @ 81EF763 +Route110_EventScript_RivalTrigger3:: setvar VAR_0x8008, 3 goto Route110_EventScript_RivalScene end -Route110_EventScript_RivalScene:: @ 81EF76E +Route110_EventScript_RivalScene:: lockall checkplayergender compare VAR_RESULT, MALE @@ -409,15 +409,15 @@ Route110_EventScript_RivalScene:: @ 81EF76E releaseall end -Route110_EventScript_PlayMayMusic:: @ 81EF7E1 - playbgm MUS_ENCOUNTER_MAY, 1 +Route110_EventScript_PlayMayMusic:: + playbgm MUS_ENCOUNTER_MAY, TRUE return -Route110_EventScript_PlayBrendanMusic:: @ 81EF7E6 - playbgm MUS_ENCOUNTER_BRENDAN, 1 +Route110_EventScript_PlayBrendanMusic:: + playbgm MUS_ENCOUNTER_BRENDAN, TRUE return -Route110_EventScript_MayBattle:: @ 81EF7EB +Route110_EventScript_MayBattle:: msgbox Route110_Text_MayLetsBattle, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, Route110_EventScript_MayBattleTreecko @@ -425,29 +425,29 @@ Route110_EventScript_MayBattle:: @ 81EF7EB case 2, Route110_EventScript_MayBattleMudkip end -Route110_EventScript_MayBattleTreecko:: @ 81EF81A +Route110_EventScript_MayBattleTreecko:: trainerbattle_no_intro TRAINER_MAY_ROUTE_110_TREECKO, Route110_Text_MayDefeated goto Route110_EventScript_MayDefeated end -Route110_EventScript_MayBattleTorchic:: @ 81EF82A +Route110_EventScript_MayBattleTorchic:: trainerbattle_no_intro TRAINER_MAY_ROUTE_110_TORCHIC, Route110_Text_MayDefeated goto Route110_EventScript_MayDefeated end -Route110_EventScript_MayBattleMudkip:: @ 81EF83A +Route110_EventScript_MayBattleMudkip:: trainerbattle_no_intro TRAINER_MAY_ROUTE_110_MUDKIP, Route110_Text_MayDefeated goto Route110_EventScript_MayDefeated end -Route110_EventScript_MayDefeated:: @ 81EF84A +Route110_EventScript_MayDefeated:: msgbox Route110_Text_MayTakeThis, MSGBOX_DEFAULT call Route110_EventScript_GiveItemfinder msgbox Route110_Text_MayExplainItemfinder, MSGBOX_DEFAULT goto Route110_EventScript_RivalExit end -Route110_EventScript_BrendanBattle:: @ 81EF865 +Route110_EventScript_BrendanBattle:: msgbox Route110_Text_BrendanLetsBattle, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, Route110_EventScript_BrendanBattleTreecko @@ -455,33 +455,33 @@ Route110_EventScript_BrendanBattle:: @ 81EF865 case 2, Route110_EventScript_BrendanBattleMudkip end -Route110_EventScript_BrendanBattleTreecko:: @ 81EF894 +Route110_EventScript_BrendanBattleTreecko:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_110_TREECKO, Route110_Text_BrendanDefeated goto Route110_EventScript_BrendanDefeated end -Route110_EventScript_BrendanBattleTorchic:: @ 81EF8A4 +Route110_EventScript_BrendanBattleTorchic:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_110_TORCHIC, Route110_Text_BrendanDefeated goto Route110_EventScript_BrendanDefeated end -Route110_EventScript_BrendanBattleMudkip:: @ 81EF8B4 +Route110_EventScript_BrendanBattleMudkip:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_110_MUDKIP, Route110_Text_BrendanDefeated goto Route110_EventScript_BrendanDefeated end -Route110_EventScript_BrendanDefeated:: @ 81EF8C4 +Route110_EventScript_BrendanDefeated:: msgbox Route110_Text_BrendanTakeThis, MSGBOX_DEFAULT call Route110_EventScript_GiveItemfinder msgbox Route110_Text_BrendanExplainItemfinder, MSGBOX_DEFAULT goto Route110_EventScript_RivalExit end -Route110_EventScript_GiveItemfinder:: @ 81EF8DF +Route110_EventScript_GiveItemfinder:: giveitem ITEM_ITEMFINDER return -Route110_EventScript_RivalExit:: @ 81EF8EC +Route110_EventScript_RivalExit:: closemessage compare VAR_0x8008, 1 call_if_eq Route110_EventScript_MoveRival1 @@ -507,65 +507,65 @@ Route110_EventScript_RivalExit:: @ 81EF8EC releaseall end -Route110_EventScript_RivalApproachPlayer1:: @ 81EF94E +Route110_EventScript_RivalApproachPlayer1:: applymovement LOCALID_RIVAL, Route110_Movement_RivalApproachPlayer1 waitmovement 0 return -Route110_EventScript_RivalApproachPlayer2:: @ 81EF959 +Route110_EventScript_RivalApproachPlayer2:: applymovement LOCALID_RIVAL, Route110_Movement_RivalApproachPlayer2 waitmovement 0 return -Route110_EventScript_RivalApproachPlayer3:: @ 81EF964 +Route110_EventScript_RivalApproachPlayer3:: applymovement LOCALID_RIVAL, Route110_Movement_RivalApproachPlayer3 waitmovement 0 return -Route110_EventScript_RivalExit1:: @ 81EF96F +Route110_EventScript_RivalExit1:: applymovement LOCALID_RIVAL_ON_BIKE, Route110_Movement_RivalExit1 waitmovement 0 return -Route110_EventScript_RivalExit2:: @ 81EF97A +Route110_EventScript_RivalExit2:: applymovement LOCALID_RIVAL_ON_BIKE, Route110_Movement_RivalExit2 waitmovement 0 return -Route110_EventScript_RivalExit3:: @ 81EF985 +Route110_EventScript_RivalExit3:: applymovement LOCALID_RIVAL_ON_BIKE, Route110_Movement_RivalExit3 waitmovement 0 return -Route110_EventScript_MoveRival1:: @ 81EF990 +Route110_EventScript_MoveRival1:: setobjectxyperm LOCALID_RIVAL_ON_BIKE, 33, 55 return -Route110_EventScript_MoveRival2:: @ 81EF998 +Route110_EventScript_MoveRival2:: setobjectxyperm LOCALID_RIVAL_ON_BIKE, 34, 55 return -Route110_EventScript_MoveRival3:: @ 81EF9A0 +Route110_EventScript_MoveRival3:: setobjectxyperm LOCALID_RIVAL_ON_BIKE, 35, 55 return -Route110_Movement_RivalApproachPlayer1: @ 81EF9A8 +Route110_Movement_RivalApproachPlayer1: walk_down walk_left walk_in_place_fastest_down step_end -Route110_Movement_RivalApproachPlayer2: @ 81EF9AC +Route110_Movement_RivalApproachPlayer2: walk_down step_end -Route110_Movement_RivalApproachPlayer3: @ 81EF9AE +Route110_Movement_RivalApproachPlayer3: walk_down walk_right walk_in_place_fastest_down step_end -Route110_Movement_RivalExit1: @ 81EF9B2 +Route110_Movement_RivalExit1: walk_fast_up walk_fast_up walk_fast_up @@ -575,7 +575,7 @@ Route110_Movement_RivalExit1: @ 81EF9B2 walk_fast_up step_end -Route110_Movement_RivalExit2: @ 81EF9BA +Route110_Movement_RivalExit2: walk_fast_up walk_fast_up walk_fast_up @@ -586,7 +586,7 @@ Route110_Movement_RivalExit2: @ 81EF9BA walk_fast_down step_end -Route110_Movement_RivalExit3: @ 81EF9C3 +Route110_Movement_RivalExit3: walk_fast_up walk_fast_up walk_fast_up @@ -596,27 +596,27 @@ Route110_Movement_RivalExit3: @ 81EF9C3 walk_fast_up step_end -Route110_EventScript_BirchScene1:: @ 81EF9CB +Route110_EventScript_BirchScene1:: lockall setvar VAR_0x8008, 1 goto Route110_EventScript_BirchScene -Route110_EventScript_BirchScene2:: @ 81EF9D6 +Route110_EventScript_BirchScene2:: lockall setvar VAR_0x8008, 2 goto Route110_EventScript_BirchScene -Route110_EventScript_BirchScene3:: @ 81EF9E1 +Route110_EventScript_BirchScene3:: lockall setvar VAR_0x8008, 3 goto Route110_EventScript_BirchScene -Route110_EventScript_BirchScene4:: @ 81EF9EC +Route110_EventScript_BirchScene4:: lockall setvar VAR_0x8008, 4 goto Route110_EventScript_BirchScene -Route110_EventScript_BirchScene:: @ 81EF9F7 +Route110_EventScript_BirchScene:: addobject LOCALID_BIRCH applymovement LOCALID_BIRCH, Route110_Movement_BirchEntrance waitmovement 0 @@ -669,77 +669,77 @@ Route110_EventScript_BirchScene:: @ 81EF9F7 releaseall end -Route110_EventScript_BirchApproachPlayer1:: @ 81EFAD8 +Route110_EventScript_BirchApproachPlayer1:: applymovement LOCALID_BIRCH, Route110_Movement_BirchApproachPlayer1 waitmovement 0 return -Route110_EventScript_BirchApproachPlayer2:: @ 81EFAE3 +Route110_EventScript_BirchApproachPlayer2:: applymovement LOCALID_BIRCH, Route110_Movement_BirchApproachPlayer2 waitmovement 0 return -Route110_EventScript_BirchApproachPlayer3:: @ 81EFAEE +Route110_EventScript_BirchApproachPlayer3:: applymovement LOCALID_BIRCH, Route110_Movement_BirchApproachPlayer3 waitmovement 0 return -Route110_EventScript_BirchApproachPlayer4:: @ 81EFAF9 +Route110_EventScript_BirchApproachPlayer4:: applymovement LOCALID_BIRCH, Route110_Movement_BirchApproachPlayer4 waitmovement 0 return -Route110_EventScript_BirchExit1:: @ 81EFB04 +Route110_EventScript_BirchExit1:: applymovement LOCALID_BIRCH, Route110_Movement_BirchExit1 waitmovement 0 return -Route110_EventScript_BirchExit2:: @ 81EFB0F +Route110_EventScript_BirchExit2:: applymovement LOCALID_BIRCH, Route110_Movement_BirchExit2 waitmovement 0 return -Route110_EventScript_BirchExit3:: @ 81EFB1A +Route110_EventScript_BirchExit3:: applymovement LOCALID_BIRCH, Route110_Movement_BirchExit3 waitmovement 0 return -Route110_EventScript_BirchExit4:: @ 81EFB25 +Route110_EventScript_BirchExit4:: applymovement LOCALID_BIRCH, Route110_Movement_BirchExit4 waitmovement 0 return -Route110_Movement_BirchEntrance: @ 81EFB30 +Route110_Movement_BirchEntrance: walk_down walk_down walk_down step_end -Route110_Movement_BirchApproachPlayer1: @ 81EFB34 +Route110_Movement_BirchApproachPlayer1: walk_down walk_left walk_left walk_down step_end -Route110_Movement_BirchApproachPlayer2: @ 81EFB39 +Route110_Movement_BirchApproachPlayer2: walk_down walk_left walk_down step_end -Route110_Movement_BirchApproachPlayer3: @ 81EFB3D +Route110_Movement_BirchApproachPlayer3: walk_down walk_down step_end -Route110_Movement_BirchApproachPlayer4: @ 81EFB40 +Route110_Movement_BirchApproachPlayer4: walk_down walk_right walk_down step_end -Route110_Movement_BirchExit1: @ 81EFB44 +Route110_Movement_BirchExit1: walk_up walk_up walk_right @@ -748,7 +748,7 @@ Route110_Movement_BirchExit1: @ 81EFB44 walk_up step_end -Route110_Movement_BirchExit2: @ 81EFB4B +Route110_Movement_BirchExit2: walk_up walk_up walk_up @@ -756,7 +756,7 @@ Route110_Movement_BirchExit2: @ 81EFB4B walk_up step_end -Route110_Movement_BirchExit3: @ 81EFB51 +Route110_Movement_BirchExit3: walk_up walk_up walk_up @@ -764,7 +764,7 @@ Route110_Movement_BirchExit3: @ 81EFB51 walk_up step_end -Route110_Movement_BirchExit4: @ 81EFB57 +Route110_Movement_BirchExit4: walk_up walk_up walk_up @@ -772,40 +772,40 @@ Route110_Movement_BirchExit4: @ 81EFB57 walk_up step_end -Route110_Text_WeCantTalkAboutAquaActivities: @ 81EFB5D +Route110_Text_WeCantTalkAboutAquaActivities: .string "TEAM AQUA's activities…\n" .string "We can't talk about them yet.$" -Route110_Text_KickUpARuckus: @ 81EFB93 +Route110_Text_KickUpARuckus: .string "I want to get going to SLATEPORT and\n" .string "kick up a ruckus!$" -Route110_Text_MyFirstJobInAqua: @ 81EFBCA +Route110_Text_MyFirstJobInAqua: .string "This is my first job after joining\n" .string "TEAM AQUA. It's a little scary.$" -Route110_Text_AquaActionsBringSmiles: @ 81EFC0D +Route110_Text_AquaActionsBringSmiles: .string "TEAM AQUA's actions should bring\n" .string "smiles to people's faces!$" -Route110_Text_MayLetsBattle: @ 81EFC48 +Route110_Text_MayLetsBattle: .string "MAY: Hi, {PLAYER}{KUN}, long time no see!\p" .string "While I was searching for other\n" .string "POKéMON, my POKéMON grew stronger.\p" .string "So…\n" .string "How about a little battle?$" -Route110_Text_MayDefeated: @ 81EFCCB +Route110_Text_MayDefeated: .string "Yikes!\n" .string "You're better than I expected!$" -Route110_Text_MayTakeThis: @ 81EFCF1 +Route110_Text_MayTakeThis: .string "MAY: {PLAYER}{KUN}, you've been busy\n" .string "training, too, haven't you?\p" .string "I think you deserve a reward!\n" .string "This is from me!$" -Route110_Text_MayExplainItemfinder: @ 81EFD58 +Route110_Text_MayExplainItemfinder: .string "MAY: That's an ITEMFINDER.\p" .string "Try it out. If there is an item that's\n" .string "not visible, it emits a sound.\p" @@ -814,24 +814,24 @@ Route110_Text_MayExplainItemfinder: @ 81EFD58 .string "me, but I think you should train a lot\l" .string "harder for the next time.$" -Route110_Text_BrendanLetsBattle: @ 81EFE3F +Route110_Text_BrendanLetsBattle: .string "BRENDAN: Hey, {PLAYER}.\n" .string "So this is where you were.\l" .string "How's it going?\p" .string "Have you been raising your POKéMON?\n" .string "I'll check for you.$" -Route110_Text_BrendanDefeated: @ 81EFEB4 +Route110_Text_BrendanDefeated: .string "Hmm…\n" .string "You're pretty good.$" -Route110_Text_BrendanTakeThis: @ 81EFECD +Route110_Text_BrendanTakeThis: .string "BRENDAN: {PLAYER}, you've trained\n" .string "without me noticing…\p" .string "Good enough!\n" .string "Here, take this.$" -Route110_Text_BrendanExplainItemfinder: @ 81EFF1C +Route110_Text_BrendanExplainItemfinder: .string "BRENDAN: That's an ITEMFINDER.\p" .string "Use it to root around for items that\n" .string "aren't visible.\p" @@ -840,16 +840,16 @@ Route110_Text_BrendanExplainItemfinder: @ 81EFF1C .string "Anyway, I'm off to look for new\n" .string "POKéMON.$" -Route110_Text_RideBikeAtFullSpeed: @ 81EFFC3 +Route110_Text_RideBikeAtFullSpeed: .string "Wouldn't it be great to ride a BIKE\n" .string "at full speed on CYCLING ROAD?$" -Route110_Text_HairStreamsBehindMe: @ 81F0006 +Route110_Text_HairStreamsBehindMe: .string "How do you like the way my raven-\n" .string "colored hair streams behind me?\p" .string "I grew my hair out just for that.$" -Route110_Text_YouGotBikeFromRydel: @ 81F006A +Route110_Text_YouGotBikeFromRydel: .string "Oh, hey, you got that BIKE from RYDEL!\p" .string "Oh, it's glaringly obvious.\n" .string "It says right on your bike…\p" @@ -866,139 +866,139 @@ Route110_Text_YouGotBikeFromRydel: @ 81F006A .string "You should ride it around all over\n" .string "the place--it's good advertising!$" -Route110_Text_TwoRoads: @ 81F0261 +Route110_Text_TwoRoads: .string "The two roads, one above, one below…\p" .string "A road each for people and POKéMON.\n" .string "Perhaps that is right and fair.$" -Route110_Text_WalkOnTheLowRoad: @ 81F02CA +Route110_Text_WalkOnTheLowRoad: .string "I don't have a BIKE, so I'll take\n" .string "a leisurely walk on the low road.$" -Route110_Text_BikeTechniques: @ 81F030E +Route110_Text_BikeTechniques: .string "Learning techniques will make BIKE\n" .string "riding even more fun.\p" .string "There are some places that you can\n" .string "reach only by using a BIKE technique.$" -Route110_Text_WhichShouldIChoose: @ 81F0390 +Route110_Text_WhichShouldIChoose: .string "Which should I choose?\p" .string "Make a beeline for MAUVILLE on\n" .string "CYCLING ROAD, or take the low road\l" .string "and look for POKéMON?$" -Route110_Text_CyclingChallengeResultSummary: @ 81F03FF +Route110_Text_CyclingChallengeResultSummary: .string "Number of collisions:\n" .string "… … {STR_VAR_1}!\p" .string "Total time:\n" .string "… … {STR_VAR_2}!$" -Route110_Text_ChallengeReactionBest: @ 81F0431 +Route110_Text_ChallengeReactionBest: .string "Bravo! Splendid showing!\p" .string "Your love of cycling comes from deep\n" .string "within your heart.\l" .string "You've shaken me to my very soul!$" -Route110_Text_ChallengeReactionGood: @ 81F04A4 +Route110_Text_ChallengeReactionGood: .string "Your technique is remarkable.\p" .string "I suggest you speed up a bit while\n" .string "still avoiding collisions.$" -Route110_Text_ChallengeReactionOk: @ 81F0500 +Route110_Text_ChallengeReactionOk: .string "I would consider you a work in\n" .string "progress.\p" .string "Still, I hope you don't forget the\n" .string "sheer pleasure of cycling.$" -Route110_Text_ChallengeReactionBad: @ 81F0567 +Route110_Text_ChallengeReactionBad: .string "My word… Your cycling skills border\n" .string "on terrifying.\p" .string "Most certainly, you need much more\n" .string "practice riding.$" -Route110_Text_ChallengeReactionWorst: @ 81F05CE +Route110_Text_ChallengeReactionWorst: .string "…I am aghast…\p" .string "You're perhaps not cut out for this\n" .string "unfortunate cycling business.\p" .string "You ought to give serious thought to\n" .string "returning that BIKE to RYDEL.$" -Route110_Text_RatedForNumberOfCollisions: @ 81F0661 +Route110_Text_RatedForNumberOfCollisions: .string "This is CYCLING ROAD.\p" .string "If you were to ride from MAUVILLE to\n" .string "SLATEPORT on a MACH BIKE, you would\l" .string "be rated for the number of collisions\l" .string "and your total time.$" -Route110_Text_AlwaysAimHigher: @ 81F06FB +Route110_Text_AlwaysAimHigher: .string "Regardless of the results, I count on\n" .string "seeing more challenges from you.\l" .string "Always aim higher!$" -Route110_Text_AcroBikesDoNotQualify: @ 81F0755 +Route110_Text_AcroBikesDoNotQualify: .string "On this CYCLING ROAD, those riding\n" .string "MACH BIKES are rated for their number\l" .string "of collisions and their total times.\p" .string "ACRO BIKES do not qualify for rating.\n" .string "They are easy to turn, so it's not fair.$" -Route110_Text_SlateportCitySign: @ 81F0812 +Route110_Text_SlateportCitySign: .string "ROUTE 110\n" .string "{DOWN_ARROW} SLATEPORT CITY$" -Route110_Text_CyclingRoadSign: @ 81F082D +Route110_Text_CyclingRoadSign: .string "SEASIDE CYCLING ROAD$" -Route110_Text_AquaWasHere: @ 81F0842 +Route110_Text_AquaWasHere: .string "“TEAM AQUA was here!”\p" .string "Someone painted that onto this sign,\n" .string "but then someone else painted over it.\p" .string "“TEAM MAGMA rules!” is what it\n" .string "says now.$" -Route110_Text_Route103Sign: @ 81F08CD +Route110_Text_Route103Sign: .string "ROUTE 110\n" .string "{LEFT_ARROW} ROUTE 103$" -Route110_Text_SeasideParkingSign: @ 81F08E3 +Route110_Text_SeasideParkingSign: .string "SEASIDE PARKING$" -Route110_Text_MauvilleCitySign: @ 81F08F3 +Route110_Text_MauvilleCitySign: .string "ROUTE 110\n" .string "{UP_ARROW} MAUVILLE CITY$" -Route110_Text_TrainerTipsPrlzSleep: @ 81F090D +Route110_Text_TrainerTipsPrlzSleep: .string "TRAINER TIPS\p" .string "The foe can be made helpless by\n" .string "paralyzing it or causing it to sleep.\p" .string "It is an important technique for\n" .string "POKéMON battles.$" -Route110_Text_TrainerTipsRegisterItems: @ 81F0992 +Route110_Text_TrainerTipsRegisterItems: .string "TRAINER TIPS\p" .string "The items in the BAG can be reorganized\n" .string "by pressing SELECT.$" -Route110_Text_TrickHouseSign: @ 81F09DB +Route110_Text_TrickHouseSign: .string "“Three steps {RIGHT_ARROW} and two steps {UP_ARROW}\n" .string "to reach the wondrous TRICK HOUSE.”$" -Route110_Text_BestRecord: @ 81F0A1E +Route110_Text_BestRecord: .string "THE BEST RECORD TO DATE…\p" .string "No. of collisions: {STR_VAR_1}\p" .string "Elapsed time: {STR_VAR_2}$" -Route110_Text_ThereIsNoRecord: @ 81F0A5E +Route110_Text_ThereIsNoRecord: .string "THE BEST RECORD TO DATE…\p" .string "No one seems to have taken the\n" .string "challenge. There is no record…$" -Route110_Text_ImagineSeeingYouHere: @ 81F0AB5 +Route110_Text_ImagineSeeingYouHere: .string "PROF. BIRCH: Oh, {PLAYER}{KUN}!\n" .string "Imagine seeing you here!\p" .string "And where might my {RIVAL} be?$" -Route110_Text_HeardYouInstallMatchCall: @ 81F0AFF +Route110_Text_HeardYouInstallMatchCall: .string "Oh, I see!\n" .string "You two are running separately.\l" .string "Well, that's fine.\p" @@ -1010,11 +1010,11 @@ Route110_Text_HeardYouInstallMatchCall: @ 81F0AFF .string "I can rate your POKéDEX anytime.\p" .string "… … … … … …$" -Route110_Text_RegisteredBirchInPokenav: @ 81F0C0C +Route110_Text_RegisteredBirchInPokenav: .string "Registered PROF. BIRCH\n" .string "in the POKéNAV.$" -Route110_Text_KeepAnEyeOutForRival: @ 81F0C33 +Route110_Text_KeepAnEyeOutForRival: .string "PROF. BIRCH: {PLAYER}{KUN}…\p" .string "Please keep an eye out for my {RIVAL}.\n" .string "… … … … … …\p" diff --git a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc index 17ecd2be3b..4bad754c4d 100644 --- a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc +++ b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc @@ -1,14 +1,14 @@ -Route110_SeasideCyclingRoadNorthEntrance_MapScripts:: @ 826EA77 +Route110_SeasideCyclingRoadNorthEntrance_MapScripts:: .byte 0 -Route110_SeasideCyclingRoadNorthEntrance_EventScript_Clerk:: @ 826EA78 +Route110_SeasideCyclingRoadNorthEntrance_EventScript_Clerk:: lock faceplayer msgbox Route110_SeasideCyclingRoadNorthEntrance_Text_GoAllOutOnCyclingRoad, MSGBOX_DEFAULT release end -Route110_SeasideCyclingRoadNorthEntrance_EventScript_BikeCheck:: @ 826EA84 +Route110_SeasideCyclingRoadNorthEntrance_EventScript_BikeCheck:: lockall specialvar VAR_RESULT, GetPlayerAvatarBike compare VAR_RESULT, 0 @@ -18,7 +18,7 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_BikeCheck:: @ 826EA84 releaseall end -Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike:: @ 826EA9F +Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike:: msgbox Route110_SeasideCyclingRoadNorthEntrance_Text_TooDangerousToWalk, MSGBOX_DEFAULT closemessage applymovement OBJ_EVENT_ID_PLAYER, Route110_SeasideCyclingRoadNorthEntrance_Movement_PushPlayerBackFromCounter @@ -26,24 +26,24 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike:: @ 826EA9F releaseall end -Route110_SeasideCyclingRoadNorthEntrance_Movement_PushPlayerBackFromCounter: @ 826EAB4 +Route110_SeasideCyclingRoadNorthEntrance_Movement_PushPlayerBackFromCounter: walk_left step_end -Route110_SeasideCyclingRoadNorthEntrance_EventScript_ClearCyclingRoad:: @ 826EAB6 +Route110_SeasideCyclingRoadNorthEntrance_EventScript_ClearCyclingRoad:: lockall clearflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 0 releaseall end -Route110_SeasideCyclingRoadNorthEntrance_Text_GoAllOutOnCyclingRoad: @ 826EAC1 +Route110_SeasideCyclingRoadNorthEntrance_Text_GoAllOutOnCyclingRoad: .string "On CYCLING ROAD, you can go all out\n" .string "and cycle as fast as you'd like.\p" .string "It feels great to go that fast, but try\n" .string "not to crash into anyone!$" -Route110_SeasideCyclingRoadNorthEntrance_Text_TooDangerousToWalk: @ 826EB48 +Route110_SeasideCyclingRoadNorthEntrance_Text_TooDangerousToWalk: .string "Sorry, you can't walk on CYCLING\n" .string "ROAD. It's too dangerous.\p" .string "Please come back with a BIKE.$" diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc index 1799f0f5f3..92b4b3e44c 100644 --- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc +++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc @@ -1,26 +1,26 @@ -Route110_SeasideCyclingRoadSouthEntrance_MapScripts:: @ 826EBA1 +Route110_SeasideCyclingRoadSouthEntrance_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route110_SeasideCyclingRoadSouthEntrance_OnTransition .byte 0 -Route110_SeasideCyclingRoadSouthEntrance_OnTransition: @ 826EBA7 +Route110_SeasideCyclingRoadSouthEntrance_OnTransition: compare VAR_CYCLING_CHALLENGE_STATE, 3 call_if_eq Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge compare VAR_CYCLING_CHALLENGE_STATE, 2 call_if_eq Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge end -Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge:: @ 826EBBE +Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge:: setvar VAR_CYCLING_CHALLENGE_STATE, 1 return -Route110_SeasideCyclingRoadSouthEntrance_EventScript_Clerk:: @ 826EBC4 +Route110_SeasideCyclingRoadSouthEntrance_EventScript_Clerk:: lock faceplayer msgbox Route110_SeasideCyclingRoadSouthEntrance_Text_GoAllOutOnCyclingRoad, MSGBOX_DEFAULT release end -Route110_SeasideCyclingRoadSouthEntrance_EventScript_BikeCheck:: @ 826EBD0 +Route110_SeasideCyclingRoadSouthEntrance_EventScript_BikeCheck:: lockall specialvar VAR_RESULT, GetPlayerAvatarBike compare VAR_RESULT, 2 @@ -32,11 +32,11 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_BikeCheck:: @ 826EBD0 releaseall end -Route110_SeasideCyclingRoadSouthEntrance_EventScript_OnMachBike:: @ 826EBF6 +Route110_SeasideCyclingRoadSouthEntrance_EventScript_OnMachBike:: setvar VAR_CYCLING_CHALLENGE_STATE, 1 return -Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike:: @ 826EBFC +Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike:: msgbox Route110_SeasideCyclingRoadSouthEntrance_Text_TooDangerousToWalk, MSGBOX_DEFAULT closemessage applymovement OBJ_EVENT_ID_PLAYER, Route110_SeasideCyclingRoadSouthEntrance_Movement_PushPlayerBackFromCounter @@ -44,11 +44,11 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike:: @ 826EBFC releaseall end -Route110_SeasideCyclingRoadSouthEntrance_Movement_PushPlayerBackFromCounter: @ 826EC11 +Route110_SeasideCyclingRoadSouthEntrance_Movement_PushPlayerBackFromCounter: walk_left step_end -Route110_SeasideCyclingRoadSouthEntrance_EventScript_ClearCyclingRoad:: @ 826EC13 +Route110_SeasideCyclingRoadSouthEntrance_EventScript_ClearCyclingRoad:: lockall setvar VAR_CYCLING_CHALLENGE_STATE, 0 clearflag FLAG_SYS_CYCLING_ROAD @@ -56,13 +56,13 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_ClearCyclingRoad:: @ 826EC1 releaseall end -Route110_SeasideCyclingRoadSouthEntrance_Text_GoAllOutOnCyclingRoad: @ 826EC23 +Route110_SeasideCyclingRoadSouthEntrance_Text_GoAllOutOnCyclingRoad: .string "On CYCLING ROAD, you can go all out\n" .string "and cycle as fast as you'd like.\p" .string "It feels great to go that fast, but try\n" .string "not to crash into anyone!$" -Route110_SeasideCyclingRoadSouthEntrance_Text_TooDangerousToWalk: @ 826ECAA +Route110_SeasideCyclingRoadSouthEntrance_Text_TooDangerousToWalk: .string "Sorry, you can't walk on CYCLING\n" .string "ROAD. It's too dangerous.\p" .string "Please come back with a BIKE.$" diff --git a/data/maps/Route110_TrickHouseCorridor/scripts.inc b/data/maps/Route110_TrickHouseCorridor/scripts.inc index ad469bc48b..ee7791a28b 100644 --- a/data/maps/Route110_TrickHouseCorridor/scripts.inc +++ b/data/maps/Route110_TrickHouseCorridor/scripts.inc @@ -1,8 +1,8 @@ -Route110_TrickHouseCorridor_MapScripts:: @ 826B903 +Route110_TrickHouseCorridor_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route110_TrickHouseCorridor_OnTransition .byte 0 -Route110_TrickHouseCorridor_OnTransition: @ 826B909 +Route110_TrickHouseCorridor_OnTransition: setvar VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR, 1 end diff --git a/data/maps/Route110_TrickHouseEnd/scripts.inc b/data/maps/Route110_TrickHouseEnd/scripts.inc index 0852b4e334..9167cbd34a 100644 --- a/data/maps/Route110_TrickHouseEnd/scripts.inc +++ b/data/maps/Route110_TrickHouseEnd/scripts.inc @@ -1,48 +1,48 @@ .set LOCALID_TRICK_MASTER, 1 -Route110_TrickHouseEnd_MapScripts:: @ 826ACAF +Route110_TrickHouseEnd_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route110_TrickHouseEnd_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Route110_TrickHouseEnd_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, Route110_TrickHouseEnd_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, Route110_TrickHouseEnd_OnWarp .byte 0 -Route110_TrickHouseEnd_OnResume: @ 826ACC4 +Route110_TrickHouseEnd_OnResume: compare VAR_TEMP_1, 1 call_if_eq Route110_TrickHouseEnd_EventScript_SetDoorClosedMetatile end -Route110_TrickHouseEnd_OnTransition: @ 826ACD0 +Route110_TrickHouseEnd_OnTransition: setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 0 special SetTrickHouseNuggetFlag end -Route110_TrickHouseEnd_OnWarp: @ 826ACDE +Route110_TrickHouseEnd_OnWarp: map_script_2 VAR_TEMP_2, 0, Route110_TrickHouseEnd_EventScript_SetTrickMasterPos .2byte 0 -Route110_TrickHouseEnd_EventScript_SetTrickMasterPos:: @ 826ACE8 +Route110_TrickHouseEnd_EventScript_SetTrickMasterPos:: addobject LOCALID_TRICK_MASTER showobjectat LOCALID_TRICK_MASTER, MAP_ROUTE110_TRICK_HOUSE_END turnobject LOCALID_TRICK_MASTER, DIR_EAST end -Route110_TrickHouseEnd_OnFrame: @ 826ACF5 +Route110_TrickHouseEnd_OnFrame: map_script_2 VAR_TEMP_1, 0, Route110_TrickHouseEnd_EventScript_CloseDoor .2byte 0 -Route110_TrickHouseEnd_EventScript_CloseDoor:: @ 826ACFF +Route110_TrickHouseEnd_EventScript_CloseDoor:: setvar VAR_TEMP_1, 1 call Route110_TrickHouseEnd_EventScript_SetDoorClosedMetatile special DrawWholeMapView end -Route110_TrickHouseEnd_EventScript_SetDoorClosedMetatile:: @ 826AD0D +Route110_TrickHouseEnd_EventScript_SetDoorClosedMetatile:: setmetatile 10, 1, METATILE_GenericBuilding_TrickHouse_Door_Closed, 1 return -Route110_TrickHouseEnd_EventScript_TrickMaster:: @ 826AD17 +Route110_TrickHouseEnd_EventScript_TrickMaster:: lock faceplayer msgbox Route110_TrickHouseEnd_Text_YouveMadeItToMe, MSGBOX_DEFAULT @@ -58,7 +58,7 @@ Route110_TrickHouseEnd_EventScript_TrickMaster:: @ 826AD17 case 7, Route110_TrickHouseEnd_EventScript_CompletedPuzzle8 end -Route110_TrickHouseEnd_EventScript_CompletedPuzzle1:: @ 826AD84 +Route110_TrickHouseEnd_EventScript_CompletedPuzzle1:: msgbox Route110_TrickHouseEnd_Text_AllNightToPlantTrees, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 @@ -71,7 +71,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle1:: @ 826AD84 release end -Route110_TrickHouseEnd_EventScript_CompletedPuzzle2:: @ 826ADC0 +Route110_TrickHouseEnd_EventScript_CompletedPuzzle2:: msgbox Route110_TrickHouseEnd_Text_AllNightToMakeMaze, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 @@ -84,7 +84,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle2:: @ 826ADC0 release end -Route110_TrickHouseEnd_EventScript_CompletedPuzzle3:: @ 826ADFC +Route110_TrickHouseEnd_EventScript_CompletedPuzzle3:: msgbox Route110_TrickHouseEnd_Text_AllNightToPreparePanels, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 @@ -97,7 +97,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle3:: @ 826ADFC release end -Route110_TrickHouseEnd_EventScript_CompletedPuzzle4:: @ 826AE38 +Route110_TrickHouseEnd_EventScript_CompletedPuzzle4:: msgbox Route110_TrickHouseEnd_Text_AllNightToShoveBoulders, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 @@ -110,7 +110,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle4:: @ 826AE38 release end -Route110_TrickHouseEnd_EventScript_CompletedPuzzle5:: @ 826AE74 +Route110_TrickHouseEnd_EventScript_CompletedPuzzle5:: msgbox Route110_TrickHouseEnd_Text_AllNightToMakeMechadolls, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 @@ -123,7 +123,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle5:: @ 826AE74 release end -Route110_TrickHouseEnd_EventScript_CompletedPuzzle6:: @ 826AEB0 +Route110_TrickHouseEnd_EventScript_CompletedPuzzle6:: msgbox Route110_TrickHouseEnd_Text_AllNightToInstallDoors, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 @@ -136,7 +136,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle6:: @ 826AEB0 release end -Route110_TrickHouseEnd_EventScript_CompletedPuzzle7:: @ 826AEEC +Route110_TrickHouseEnd_EventScript_CompletedPuzzle7:: msgbox Route110_TrickHouseEnd_Text_AllNightSettingUpArrows, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 @@ -149,7 +149,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle7:: @ 826AEEC release end -Route110_TrickHouseEnd_EventScript_CompletedPuzzle8:: @ 826AF28 +Route110_TrickHouseEnd_EventScript_CompletedPuzzle8:: msgbox Route110_TrickHouseEnd_Text_AllNightPolishingFloors, MSGBOX_DEFAULT closemessage compare VAR_FACING, DIR_SOUTH @@ -177,21 +177,21 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle8:: @ 826AF28 release end -Route110_TrickHouseEnd_EventScript_ChooseTent:: @ 826AFA5 - multichoice 0, 0, MULTI_TENT, 1 +Route110_TrickHouseEnd_EventScript_ChooseTent:: + multichoice 0, 0, MULTI_TENT, TRUE switch VAR_RESULT case 0, Route110_TrickHouseEnd_EventScript_GiveRedTent goto Route110_TrickHouseEnd_EventScript_GiveBlueTent -Route110_TrickHouseEnd_EventScript_GiveRedTent:: @ 826AFBF +Route110_TrickHouseEnd_EventScript_GiveRedTent:: givedecoration DECOR_RED_TENT return -Route110_TrickHouseEnd_EventScript_GiveBlueTent:: @ 826AFC7 +Route110_TrickHouseEnd_EventScript_GiveBlueTent:: givedecoration DECOR_BLUE_TENT return -Route110_TrickHouseEnd_EventScript_TrickMasterExit:: @ 826AFCF +Route110_TrickHouseEnd_EventScript_TrickMasterExit:: applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterSpin waitmovement 0 playse SE_M_EXPLOSION @@ -201,39 +201,39 @@ Route110_TrickHouseEnd_EventScript_TrickMasterExit:: @ 826AFCF addvar VAR_TRICK_HOUSE_LEVEL, 1 return -Route110_TrickHouseEnd_EventScript_BagFull:: @ 826AFEF +Route110_TrickHouseEnd_EventScript_BagFull:: call Common_EventScript_BagIsFull msgbox Route110_TrickHouseEnd_Text_NoRoomForThis, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 1 return -Route110_TrickHouseEnd_EventScript_NoRoomForTent:: @ 826B002 +Route110_TrickHouseEnd_EventScript_NoRoomForTent:: call Common_EventScript_NoRoomForDecor msgbox Route110_TrickHouseEnd_Text_NoRoomInPC, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 1 return -Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwaySouth:: @ 826B015 +Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwaySouth:: applymovement LOCALID_TRICK_MASTER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayNorth:: @ 826B020 +Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayNorth:: applymovement LOCALID_TRICK_MASTER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayWest:: @ 826B02B +Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayWest:: applymovement LOCALID_TRICK_MASTER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayEast:: @ 826B036 +Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayEast:: applymovement LOCALID_TRICK_MASTER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -Route110_TrickHouseEnd_EventScript_TrickMasterExitTrigger:: @ 826B041 +Route110_TrickHouseEnd_EventScript_TrickMasterExitTrigger:: lockall turnobject LOCALID_TRICK_MASTER, DIR_WEST playse SE_PIN @@ -254,70 +254,70 @@ Route110_TrickHouseEnd_EventScript_TrickMasterExitTrigger:: @ 826B041 releaseall end -Route110_TrickHouseEnd_Movement_KeepPlayerInRoom: @ 826B089 +Route110_TrickHouseEnd_Movement_KeepPlayerInRoom: walk_down step_end -Route110_TrickHouseEnd_Movement_TrickMasterSurprise: @ 826B08B +Route110_TrickHouseEnd_Movement_TrickMasterSurprise: jump_in_place_left step_end -Route110_TrickHouseEnd_Text_YouveMadeItToMe: @ 826B08D +Route110_TrickHouseEnd_Text_YouveMadeItToMe: .string "Aak!\n" .string "You've made it to me?\l" .string "Hmmm… You're sharp!$" -Route110_TrickHouseEnd_Text_AllNightToPlantTrees: @ 826B0BC +Route110_TrickHouseEnd_Text_AllNightToPlantTrees: .string "It took me all night to plant all those\n" .string "trees…\p" .string "You're almost my equal in greatness by\n" .string "one, two, three, four, five, six places!$" -Route110_TrickHouseEnd_Text_AllNightToMakeMaze: @ 826B13B +Route110_TrickHouseEnd_Text_AllNightToMakeMaze: .string "It took me all night to make the maze…\p" .string "You're almost my equal in greatness by\n" .string "one, two, three, four, five places!$" -Route110_TrickHouseEnd_Text_AllNightToPreparePanels: @ 826B1AD +Route110_TrickHouseEnd_Text_AllNightToPreparePanels: .string "It took me all night to prepare\n" .string "the wall panels…\p" .string "You're almost my equal in greatness by\n" .string "one, two, three, four places!$" -Route110_TrickHouseEnd_Text_AllNightToShoveBoulders: @ 826B223 +Route110_TrickHouseEnd_Text_AllNightToShoveBoulders: .string "It took me all night to shove in those\n" .string "boulders…\p" .string "You're almost my equal in greatness by\n" .string "one, two, three places!$" -Route110_TrickHouseEnd_Text_AllNightToMakeMechadolls: @ 826B293 +Route110_TrickHouseEnd_Text_AllNightToMakeMechadolls: .string "It took me all night to make MECHADOLLS\n" .string "and another to think up the quiz…\p" .string "You're almost my equal in greatness by\n" .string "one, two places!$" -Route110_TrickHouseEnd_Text_AllNightToInstallDoors: @ 826B315 +Route110_TrickHouseEnd_Text_AllNightToInstallDoors: .string "It took me all night to install\n" .string "the doors…\p" .string "You're almost my equal in greatness!$" -Route110_TrickHouseEnd_Text_AllNightSettingUpArrows: @ 826B365 +Route110_TrickHouseEnd_Text_AllNightSettingUpArrows: .string "It took me all night setting up arrows…\p" .string "You're my equal in greatness!$" -Route110_TrickHouseEnd_Text_AllNightPolishingFloors: @ 826B3AB +Route110_TrickHouseEnd_Text_AllNightPolishingFloors: .string "It took me all night polishing floors…\p" .string "You're above me in greatness!\n" .string "Possibly…$" -Route110_TrickHouseEnd_Text_FountainOfIdeasRunDry: @ 826B3FA +Route110_TrickHouseEnd_Text_FountainOfIdeasRunDry: .string "Wh-what should I do?\n" .string "My fountain of ideas for tricks has\l" .string "run dry…\p" .string "Perhaps it is time I toured the country\n" .string "on a quest to devise new tricks…$" -Route110_TrickHouseEnd_Text_DefeatedMePreferWhichTent: @ 826B485 +Route110_TrickHouseEnd_Text_DefeatedMePreferWhichTent: .string "I hate to admit defeat, but you have\n" .string "bested me!\p" .string "Still, you must have been reeled in by\n" @@ -333,13 +333,13 @@ Route110_TrickHouseEnd_Text_DefeatedMePreferWhichTent: @ 826B485 .string "a RED TENT and a BLUE TENT.\l" .string "Which do you prefer?$" -Route110_TrickHouseEnd_Text_NoRoomInPC: @ 826B615 +Route110_TrickHouseEnd_Text_NoRoomInPC: .string "What? No room in your PC?\n" .string "What am I to make of that?\p" .string "I wish I could say that, but I am much\n" .string "too kind and caring, so come back later!$" -Route110_TrickHouseEnd_Text_LeavingOnJourney: @ 826B69A +Route110_TrickHouseEnd_Text_LeavingOnJourney: .string "… … … … … …\p" .string "I am leaving on a journey of discovery.\n" .string "A quest in search of new tricks.\p" @@ -347,17 +347,17 @@ Route110_TrickHouseEnd_Text_LeavingOnJourney: @ 826B69A .string "entertain me again.\p" .string "And now, farewell!$" -Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward: @ 826B73D +Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward: .string "Fine!\n" .string "You have earned this reward!$" -Route110_TrickHouseEnd_Text_NoRoomForThis: @ 826B760 +Route110_TrickHouseEnd_Text_NoRoomForThis: .string "What? Have you no room for this?\n" .string "What manner of items do you carry?\p" .string "But fine, since you've reached me,\n" .string "your reward will be with me till later.$" -Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou: @ 826B7EF +Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou: .string "Scrub that smug smirk from your face!\n" .string "It's much too early to think you've won!\p" .string "I'll make new tricks to stump you, I will.\n" @@ -365,7 +365,7 @@ Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou: @ 826B7EF .string "Come back for the next exciting\n" .string "installment!$" -Route110_TrickHouseEnd_Text_YoureIgnoringMe: @ 826B8BD +Route110_TrickHouseEnd_Text_YoureIgnoringMe: .string "Now, now! You're ignoring me now?\n" .string "Now that, I consider heartbreaking!$" diff --git a/data/maps/Route110_TrickHouseEntrance/scripts.inc b/data/maps/Route110_TrickHouseEntrance/scripts.inc index adfcf6bbc4..9375f2046f 100644 --- a/data/maps/Route110_TrickHouseEntrance/scripts.inc +++ b/data/maps/Route110_TrickHouseEntrance/scripts.inc @@ -1,6 +1,6 @@ .set LOCALID_TRICK_MASTER, 1 -Route110_TrickHouseEntrance_MapScripts:: @ 8269A50 +Route110_TrickHouseEntrance_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route110_TrickHouseEntrance_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, Route110_TrickHouseEntrance_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, Route110_TrickHouseEntrance_OnWarp @@ -15,7 +15,7 @@ Route110_TrickHouseEntrance_MapScripts:: @ 8269A50 @ 5: Completed previous challenge @ 6: 'Trick Master' mechadoll ready to give Tent reward from final challenge (if bag was full) -Route110_TrickHouseEntrance_OnTransition: @ 8269A60 +Route110_TrickHouseEntrance_OnTransition: setflag FLAG_LANDMARK_TRICK_HOUSE compare VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR, 1 goto_if_eq Route110_TrickHouseEntrance_EventScript_EnterFromCorridor @@ -36,24 +36,24 @@ Route110_TrickHouseEntrance_OnTransition: @ 8269A60 case 4, Route110_TrickHouseEntrance_EventScript_SetNotBeingWatched3 end -Route110_TrickHouseEntrance_EventScript_SetReadyToGiveReward:: @ 8269AD7 +Route110_TrickHouseEntrance_EventScript_SetReadyToGiveReward:: setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 1 compare VAR_TRICK_HOUSE_LEVEL, 8 goto_if_eq Route110_TrickHouseEntrance_EventScript_ReadyToGiveTentReward setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 2 end -Route110_TrickHouseEntrance_EventScript_ReadyToGiveTentReward:: @ 8269AED +Route110_TrickHouseEntrance_EventScript_ReadyToGiveTentReward:: setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 6 end -Route110_TrickHouseEntrance_EventScript_EnterFromCorridor:: @ 8269AF3 +Route110_TrickHouseEntrance_EventScript_EnterFromCorridor:: setvar VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR, 0 setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 5 setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 1 end -Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle:: @ 8269B03 +Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle:: setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 0 compare VAR_TRICK_HOUSE_LEVEL, 1 call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle2 @@ -73,63 +73,63 @@ Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle:: @ 8269B03 call_if_eq Route110_TrickHouseEntrance_EventScript_FinishedPuzzles return -Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle2:: @ 8269B61 +Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle2:: call_if_unset FLAG_BADGE03_GET, Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle return -Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle3:: @ 8269B6B +Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle3:: call_if_unset FLAG_BADGE04_GET, Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle return -Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle4:: @ 8269B75 +Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle4:: call_if_unset FLAG_BADGE05_GET, Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle return -Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle5:: @ 8269B7F +Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle5:: call_if_unset FLAG_BADGE06_GET, Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle return -Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle6:: @ 8269B89 +Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle6:: call_if_unset FLAG_BADGE07_GET, Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle return -Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle7:: @ 8269B93 +Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle7:: call_if_unset FLAG_BADGE08_GET, Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle return -Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle8:: @ 8269B9D +Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle8:: call_if_unset FLAG_SYS_GAME_CLEAR, Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle return -Route110_TrickHouseEntrance_EventScript_FinishedPuzzles:: @ 8269BA7 +Route110_TrickHouseEntrance_EventScript_FinishedPuzzles:: setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 4 return -Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle:: @ 8269BAD +Route110_TrickHouseEntrance_EventScript_NotReadyForPuzzle:: setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 3 return -Route110_TrickHouseEntrance_EventScript_MoveTrickMasterToDoor:: @ 8269BB3 +Route110_TrickHouseEntrance_EventScript_MoveTrickMasterToDoor:: setobjectxyperm LOCALID_TRICK_MASTER, 5, 2 end -Route110_TrickHouseEntrance_EventScript_ReadyBeingWatchedTrigger:: @ 8269BBB +Route110_TrickHouseEntrance_EventScript_ReadyBeingWatchedTrigger:: setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 0 end -Route110_TrickHouseEntrance_EventScript_SetNotBeingWatched1:: @ 8269BC1 +Route110_TrickHouseEntrance_EventScript_SetNotBeingWatched1:: setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 1 end -Route110_TrickHouseEntrance_EventScript_SetNotBeingWatched2:: @ 8269BC7 +Route110_TrickHouseEntrance_EventScript_SetNotBeingWatched2:: setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 1 end -Route110_TrickHouseEntrance_EventScript_SetNotBeingWatched3:: @ 8269BCD +Route110_TrickHouseEntrance_EventScript_SetNotBeingWatched3:: setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 1 end -Route110_TrickHouseEntrance_OnWarp: @ 8269BD3 +Route110_TrickHouseEntrance_OnWarp: map_script_2 VAR_TRICK_HOUSE_FOUND_TRICK_MASTER, 1, Route110_TrickHouseEntrance_EventScript_TrickMasterFound map_script_2 VAR_TRICK_HOUSE_ENTRANCE_STATE, 0, Route110_TrickHouseEntrance_EventScript_SetTrickMasterHidingSpot map_script_2 VAR_TRICK_HOUSE_ENTRANCE_STATE, 1, Route110_TrickHouseEntrance_EventScript_RemoveTrickMaster @@ -140,14 +140,14 @@ Route110_TrickHouseEntrance_OnWarp: @ 8269BD3 map_script_2 VAR_TRICK_HOUSE_ENTRANCE_STATE, 6, Route110_TrickHouseEntrance_EventScript_SetTrickMasterInFrontOfDoor .2byte 0 -Route110_TrickHouseEntrance_EventScript_TrickMasterFound:: @ 8269C15 +Route110_TrickHouseEntrance_EventScript_TrickMasterFound:: addobject LOCALID_TRICK_MASTER showobjectat LOCALID_TRICK_MASTER, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE turnobject LOCALID_TRICK_MASTER, DIR_EAST turnobject OBJ_EVENT_ID_PLAYER, DIR_WEST end -Route110_TrickHouseEntrance_EventScript_SetTrickMasterHidingSpot:: @ 8269C26 +Route110_TrickHouseEntrance_EventScript_SetTrickMasterHidingSpot:: addobject LOCALID_TRICK_MASTER hideobjectat LOCALID_TRICK_MASTER, MAP_ROUTE110_TRICK_HOUSE_ENTRANCE switch VAR_TRICK_HOUSE_LEVEL @@ -161,59 +161,59 @@ Route110_TrickHouseEntrance_EventScript_SetTrickMasterHidingSpot:: @ 8269C26 case 7, Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle8 end -Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle1:: @ 8269C8C +Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle1:: setobjectxy LOCALID_TRICK_MASTER, 6, 3 end -Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle2:: @ 8269C94 +Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle2:: setobjectxy LOCALID_TRICK_MASTER, 11, 5 end -Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle3:: @ 8269C9C +Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle3:: setobjectxy LOCALID_TRICK_MASTER, 9, 1 end -Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle4:: @ 8269CA4 +Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle4:: setobjectxy LOCALID_TRICK_MASTER, 3, 1 end -Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle5:: @ 8269CAC +Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle5:: setobjectxy LOCALID_TRICK_MASTER, 0, 5 end -Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle6:: @ 8269CB4 +Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle6:: setobjectxy LOCALID_TRICK_MASTER, 11, 1 end -Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle7:: @ 8269CBC +Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle7:: setobjectxy LOCALID_TRICK_MASTER, 8, 1 end -Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle8:: @ 8269CC4 +Route110_TrickHouseEntrance_EventScript_SetHidingSpotPuzzle8:: setobjectxy LOCALID_TRICK_MASTER, 4, 4 end -Route110_TrickHouseEntrance_EventScript_RemoveTrickMaster:: @ 8269CCC +Route110_TrickHouseEntrance_EventScript_RemoveTrickMaster:: removeobject LOCALID_TRICK_MASTER end -Route110_TrickHouseEntrance_EventScript_SetTrickMasterFacingDoor:: @ 8269CD0 +Route110_TrickHouseEntrance_EventScript_SetTrickMasterFacingDoor:: addobject LOCALID_TRICK_MASTER setobjectxy LOCALID_TRICK_MASTER, 5, 2 turnobject LOCALID_TRICK_MASTER, DIR_NORTH end -Route110_TrickHouseEntrance_EventScript_SetTrickMasterInFrontOfDoor:: @ 8269CDF +Route110_TrickHouseEntrance_EventScript_SetTrickMasterInFrontOfDoor:: addobject LOCALID_TRICK_MASTER setobjectxy LOCALID_TRICK_MASTER, 5, 2 turnobject LOCALID_TRICK_MASTER, DIR_SOUTH end -Route110_TrickHouseEntrance_OnFrame: @ 8269CEE +Route110_TrickHouseEntrance_OnFrame: map_script_2 VAR_TRICK_HOUSE_FOUND_TRICK_MASTER, 1, Route110_TrickHouseEntrance_EventScript_BeginChallenge .2byte 0 -Route110_TrickHouseEntrance_EventScript_BeginChallenge:: @ 8269CF8 +Route110_TrickHouseEntrance_EventScript_BeginChallenge:: lockall delay 20 compare VAR_TRICK_HOUSE_LEVEL, 0 @@ -232,11 +232,11 @@ Route110_TrickHouseEntrance_EventScript_BeginChallenge:: @ 8269CF8 releaseall end -Route110_TrickHouseEntrance_EventScript_UnusedRelease:: @ 8269D39 +Route110_TrickHouseEntrance_EventScript_UnusedRelease:: releaseall end -Route110_TrickHouseEntrance_EventScript_TrickMaster:: @ 8269D3B +Route110_TrickHouseEntrance_EventScript_TrickMaster:: lockall switch VAR_TRICK_HOUSE_ENTRANCE_STATE case 0, Route110_TrickHouseEntrance_EventScript_FoundTrickMaster @@ -245,7 +245,7 @@ Route110_TrickHouseEntrance_EventScript_TrickMaster:: @ 8269D3B case 6, Route110_TrickHouseEntrance_EventScript_MechadollReward end -Route110_TrickHouseEntrance_EventScript_FoundTrickMaster:: @ 8269D6E +Route110_TrickHouseEntrance_EventScript_FoundTrickMaster:: playse SE_PIN applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_ExclamationMark waitmovement 0 @@ -274,39 +274,39 @@ Route110_TrickHouseEntrance_EventScript_FoundTrickMaster:: @ 8269D6E releaseall end -Route110_TrickHouseEntrance_EventScript_FoundBeneathDesk:: @ 8269DEE +Route110_TrickHouseEntrance_EventScript_FoundBeneathDesk:: msgbox Route110_TrickHouseEntrance_Text_ConcealedBeneathDesk, MSGBOX_DEFAULT return -Route110_TrickHouseEntrance_EventScript_FoundBehindTree:: @ 8269DF7 +Route110_TrickHouseEntrance_EventScript_FoundBehindTree:: msgbox Route110_TrickHouseEntrance_Text_ConcealedBehindTree, MSGBOX_DEFAULT return -Route110_TrickHouseEntrance_EventScript_FoundInDresser:: @ 8269E00 +Route110_TrickHouseEntrance_EventScript_FoundInDresser:: msgbox Route110_TrickHouseEntrance_Text_ConcealedInDresser, MSGBOX_DEFAULT return -Route110_TrickHouseEntrance_EventScript_FoundBeyondWindow:: @ 8269E09 +Route110_TrickHouseEntrance_EventScript_FoundBeyondWindow:: msgbox Route110_TrickHouseEntrance_Text_ConealedBeyondWindow, MSGBOX_DEFAULT return -Route110_TrickHouseEntrance_EventScript_FoundInPlanter:: @ 8269E12 +Route110_TrickHouseEntrance_EventScript_FoundInPlanter:: msgbox Route110_TrickHouseEntrance_Text_ConcealedInPlanter, MSGBOX_DEFAULT return -Route110_TrickHouseEntrance_EventScript_FoundInCupboard:: @ 8269E1B +Route110_TrickHouseEntrance_EventScript_FoundInCupboard:: msgbox Route110_TrickHouseEntrance_Text_ConcealedInCupboard, MSGBOX_DEFAULT return -Route110_TrickHouseEntrance_EventScript_FoundBehindWindow:: @ 8269E24 +Route110_TrickHouseEntrance_EventScript_FoundBehindWindow:: msgbox Route110_TrickHouseEntrance_Text_ConcealedBehindWindow, MSGBOX_DEFAULT return -Route110_TrickHouseEntrance_EventScript_FoundBeneathCushion:: @ 8269E2D +Route110_TrickHouseEntrance_EventScript_FoundBeneathCushion:: msgbox Route110_TrickHouseEntrance_Text_ConcealedBeneathCushion, MSGBOX_DEFAULT return -Route110_TrickHouse_Movement_TrickMasterSpin: @ 8269E36 +Route110_TrickHouse_Movement_TrickMasterSpin: face_up delay_4 face_left @@ -317,7 +317,7 @@ Route110_TrickHouse_Movement_TrickMasterSpin: @ 8269E36 delay_4 step_end -Route110_TrickHouse_Movement_TrickMasterJumpAway: @ 8269E3F +Route110_TrickHouse_Movement_TrickMasterJumpAway: face_up disable_anim slide_up @@ -328,11 +328,11 @@ Route110_TrickHouse_Movement_TrickMasterJumpAway: @ 8269E3F slide_up step_end -Route110_TrickHouseEntrance_EventScript_MeetTrickMaster:: @ 8269E48 +Route110_TrickHouseEntrance_EventScript_MeetTrickMaster:: msgbox Route110_TrickHouseEntrance_Text_TheyCallMeTrickMaster, MSGBOX_DEFAULT return -Route110_TrickHouseEntrance_EventScript_StillMakingPuzzle:: @ 8269E51 +Route110_TrickHouseEntrance_EventScript_StillMakingPuzzle:: msgbox Route110_TrickHouseEntrance_Text_NextTimeUseThisTrick, MSGBOX_DEFAULT closemessage applymovement LOCALID_TRICK_MASTER, Common_Movement_FacePlayer @@ -348,7 +348,7 @@ Route110_TrickHouseEntrance_EventScript_StillMakingPuzzle:: @ 8269E51 releaseall end -Route110_TrickHouseEntrance_EventScript_GiveReward:: @ 8269E8F +Route110_TrickHouseEntrance_EventScript_GiveReward:: applymovement LOCALID_TRICK_MASTER, Common_Movement_FacePlayer waitmovement 0 msgbox Route110_TrickHouseEntrance_Text_YoureHereToAcceptReward, MSGBOX_DEFAULT @@ -368,7 +368,7 @@ Route110_TrickHouseEntrance_EventScript_GiveReward:: @ 8269E8F goto_if_eq Route110_TrickHouseEntrance_EventScript_GivePuzzle7Reward end -Route110_TrickHouseEntrance_EventScript_GivePuzzle1Reward:: @ 8269EEF +Route110_TrickHouseEntrance_EventScript_GivePuzzle1Reward:: giveitem ITEM_RARE_CANDY compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward @@ -378,7 +378,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle1Reward:: @ 8269EEF releaseall end -Route110_TrickHouseEntrance_EventScript_GivePuzzle2Reward:: @ 8269F1B +Route110_TrickHouseEntrance_EventScript_GivePuzzle2Reward:: giveitem ITEM_TIMER_BALL compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward @@ -388,7 +388,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle2Reward:: @ 8269F1B releaseall end -Route110_TrickHouseEntrance_EventScript_GivePuzzle3Reward:: @ 8269F47 +Route110_TrickHouseEntrance_EventScript_GivePuzzle3Reward:: giveitem ITEM_HARD_STONE compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward @@ -398,7 +398,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle3Reward:: @ 8269F47 releaseall end -Route110_TrickHouseEntrance_EventScript_GivePuzzle4Reward:: @ 8269F73 +Route110_TrickHouseEntrance_EventScript_GivePuzzle4Reward:: giveitem ITEM_SMOKE_BALL compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward @@ -408,7 +408,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle4Reward:: @ 8269F73 releaseall end -Route110_TrickHouseEntrance_EventScript_GivePuzzle5Reward:: @ 8269F9F +Route110_TrickHouseEntrance_EventScript_GivePuzzle5Reward:: giveitem ITEM_TM12 compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward @@ -418,7 +418,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle5Reward:: @ 8269F9F releaseall end -Route110_TrickHouseEntrance_EventScript_GivePuzzle6Reward:: @ 8269FCB +Route110_TrickHouseEntrance_EventScript_GivePuzzle6Reward:: giveitem ITEM_MAGNET compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward @@ -428,7 +428,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle6Reward:: @ 8269FCB releaseall end -Route110_TrickHouseEntrance_EventScript_GivePuzzle7Reward:: @ 8269FF7 +Route110_TrickHouseEntrance_EventScript_GivePuzzle7Reward:: giveitem ITEM_PP_MAX compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward @@ -438,7 +438,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle7Reward:: @ 8269FF7 releaseall end -Route110_TrickHouseEntrance_EventScript_GotReward:: @ 826A023 +Route110_TrickHouseEntrance_EventScript_GotReward:: setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 3 applymovement LOCALID_TRICK_MASTER, Common_Movement_WalkInPlaceFastestUp @@ -446,7 +446,7 @@ Route110_TrickHouseEntrance_EventScript_GotReward:: @ 826A023 releaseall end -Route110_TrickHouseEntrance_EventScript_MechadollReward:: @ 826A039 +Route110_TrickHouseEntrance_EventScript_MechadollReward:: applymovement LOCALID_TRICK_MASTER, Common_Movement_FacePlayer waitmovement 0 msgbox Route110_TrickHouseEntrance_Text_MechadollWhichTent, MSGBOX_DEFAULT @@ -459,21 +459,21 @@ Route110_TrickHouseEntrance_EventScript_MechadollReward:: @ 826A039 releaseall end -Route110_TrickHouseEntrance_EventScript_ChooseTent:: @ 826A070 - multichoice 0, 0, MULTI_TENT, 1 +Route110_TrickHouseEntrance_EventScript_ChooseTent:: + multichoice 0, 0, MULTI_TENT, TRUE switch VAR_RESULT case 0, Route110_TrickHouseEntrance_EventScript_GiveRedTent goto Route110_TrickHouseEntrance_EventScript_GiveBlueTent -Route110_TrickHouseEntrance_EventScript_GiveRedTent:: @ 826A08A +Route110_TrickHouseEntrance_EventScript_GiveRedTent:: givedecoration DECOR_RED_TENT return -Route110_TrickHouseEntrance_EventScript_GiveBlueTent:: @ 826A092 +Route110_TrickHouseEntrance_EventScript_GiveBlueTent:: givedecoration DECOR_BLUE_TENT return -Route110_TrickHouseEntrance_EventScript_ReceivedTent:: @ 826A09A +Route110_TrickHouseEntrance_EventScript_ReceivedTent:: msgbox Route110_TrickHouseEntrance_Text_ThenFarewell, MSGBOX_DEFAULT closemessage applymovement LOCALID_TRICK_MASTER, Route110_TrickHousePuzzle5_Movement_MechadollShake @@ -489,7 +489,7 @@ Route110_TrickHouseEntrance_EventScript_ReceivedTent:: @ 826A09A releaseall end -Route110_TrickHouseEntrance_EventScript_Door:: @ 826A0D3 +Route110_TrickHouseEntrance_EventScript_Door:: lockall switch VAR_TRICK_HOUSE_ENTRANCE_STATE case 0, Route110_TrickHouseEntrance_EventScript_ItsAScroll @@ -498,12 +498,12 @@ Route110_TrickHouseEntrance_EventScript_Door:: @ 826A0D3 case 5, Route110_TrickHouseEntrance_EventScript_CheckLevelForMessage end -Route110_TrickHouseEntrance_EventScript_ItsAScroll:: @ 826A106 +Route110_TrickHouseEntrance_EventScript_ItsAScroll:: msgbox Route110_TrickHouseEntrance_Text_ItsAScroll, MSGBOX_DEFAULT releaseall end -Route110_TrickHouseEntrance_EventScript_GoInHolePrompt:: @ 826A110 +Route110_TrickHouseEntrance_EventScript_GoInHolePrompt:: msgbox Route110_TrickHouseEntrance_Text_GoInHoleBehindScroll, MSGBOX_YESNO closemessage compare VAR_RESULT, YES @@ -511,7 +511,7 @@ Route110_TrickHouseEntrance_EventScript_GoInHolePrompt:: @ 826A110 releaseall end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom:: @ 826A126 +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom:: setmetatile 5, 1, METATILE_GenericBuilding_TrickHouse_Stairs_Down, 0 special DrawWholeMapView delay 20 @@ -530,76 +530,76 @@ Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom:: @ 826A126 case 7, Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom8 end -Route110_TrickHouseEntrance_Movement_EnterRoom: @ 826A1A7 +Route110_TrickHouseEntrance_Movement_EnterRoom: set_invisible step_end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom1:: @ 826A1A9 +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom1:: warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE1, 255, 0, 21 waitstate releaseall end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom2:: @ 826A1B4 +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom2:: warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE2, 255, 0, 21 waitstate releaseall end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom3:: @ 826A1BF +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom3:: warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE3, 255, 0, 21 waitstate releaseall end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom4:: @ 826A1CA +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom4:: warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE4, 255, 0, 21 waitstate releaseall end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom5:: @ 826A1D5 +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom5:: warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE5, 255, 0, 21 waitstate releaseall end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom6:: @ 826A1E0 +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom6:: warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE6, 255, 0, 21 waitstate releaseall end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom7:: @ 826A1EB +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom7:: warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE7, 255, 0, 21 waitstate releaseall end -Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom8:: @ 826A1F6 +Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom8:: warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE8, 255, 0, 21 waitstate releaseall end -Route110_TrickHouseEntrance_EventScript_LeftOnJourneyNote:: @ 826A201 +Route110_TrickHouseEntrance_EventScript_LeftOnJourneyNote:: msgbox Route110_TrickHouseEntrance_Text_LeavingOnJourneyNote, MSGBOX_DEFAULT releaseall end -Route110_TrickHouseEntrance_EventScript_CheckLevelForMessage:: @ 826A20B +Route110_TrickHouseEntrance_EventScript_CheckLevelForMessage:: compare VAR_TRICK_HOUSE_LEVEL, 8 goto_if_eq Route110_TrickHouseEntrance_EventScript_LeftOnJourneyNote2 msgbox Route110_TrickHouseEntrance_Text_ItsAScroll, MSGBOX_DEFAULT releaseall end -Route110_TrickHouseEntrance_EventScript_LeftOnJourneyNote2:: @ 826A220 +Route110_TrickHouseEntrance_EventScript_LeftOnJourneyNote2:: msgbox Route110_TrickHouseEntrance_Text_LeavingOnJourneyNote, MSGBOX_DEFAULT releaseall end -Route110_TrickHousePuzzle_EventScript_Door:: @ 826A22A +Route110_TrickHousePuzzle_EventScript_Door:: lockall switch VAR_TRICK_HOUSE_LEVEL case 0, Route110_TrickHousePuzzle1_EventScript_Door @@ -612,7 +612,7 @@ Route110_TrickHousePuzzle_EventScript_Door:: @ 826A22A case 7, Route110_TrickHousePuzzle8_EventScript_Door end -Route110_TrickHousePuzzle1_EventScript_Door:: @ 826A289 +Route110_TrickHousePuzzle1_EventScript_Door:: compare VAR_TRICK_HOUSE_PUZZLE_1_STATE, 0 goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle1_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT @@ -623,7 +623,7 @@ Route110_TrickHousePuzzle1_EventScript_Door:: @ 826A289 releaseall end -Route110_TrickHousePuzzle2_EventScript_Door:: @ 826A2B2 +Route110_TrickHousePuzzle2_EventScript_Door:: compare VAR_TRICK_HOUSE_PUZZLE_2_STATE, 0 goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle2_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT @@ -634,7 +634,7 @@ Route110_TrickHousePuzzle2_EventScript_Door:: @ 826A2B2 releaseall end -Route110_TrickHousePuzzle3_EventScript_Door:: @ 826A2DB +Route110_TrickHousePuzzle3_EventScript_Door:: compare VAR_TRICK_HOUSE_PUZZLE_3_STATE, 0 goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle3_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT @@ -645,7 +645,7 @@ Route110_TrickHousePuzzle3_EventScript_Door:: @ 826A2DB releaseall end -Route110_TrickHousePuzzle4_EventScript_Door:: @ 826A304 +Route110_TrickHousePuzzle4_EventScript_Door:: compare VAR_TRICK_HOUSE_PUZZLE_4_STATE, 0 goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle4_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT @@ -656,7 +656,7 @@ Route110_TrickHousePuzzle4_EventScript_Door:: @ 826A304 releaseall end -Route110_TrickHousePuzzle5_EventScript_Door:: @ 826A32D +Route110_TrickHousePuzzle5_EventScript_Door:: compare VAR_TRICK_HOUSE_PUZZLE_5_STATE, 0 goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle5_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT @@ -667,7 +667,7 @@ Route110_TrickHousePuzzle5_EventScript_Door:: @ 826A32D releaseall end -Route110_TrickHousePuzzle6_EventScript_Door:: @ 826A356 +Route110_TrickHousePuzzle6_EventScript_Door:: compare VAR_TRICK_HOUSE_PUZZLE_6_STATE, 0 goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle6_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT @@ -678,7 +678,7 @@ Route110_TrickHousePuzzle6_EventScript_Door:: @ 826A356 releaseall end -Route110_TrickHousePuzzle7_EventScript_Door:: @ 826A37F +Route110_TrickHousePuzzle7_EventScript_Door:: compare VAR_TRICK_HOUSE_PUZZLE_7_STATE, 0 goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle7_EventScript_WroteSecretCodeLockOpened, MSGBOX_DEFAULT @@ -689,7 +689,7 @@ Route110_TrickHousePuzzle7_EventScript_Door:: @ 826A37F releaseall end -Route110_TrickHousePuzzle8_EventScript_Door:: @ 826A3A8 +Route110_TrickHousePuzzle8_EventScript_Door:: compare VAR_TRICK_HOUSE_PUZZLE_8_STATE, 0 goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle8_EventScript_WroteSecretCodeLockOpened, MSGBOX_DEFAULT @@ -700,17 +700,17 @@ Route110_TrickHousePuzzle8_EventScript_Door:: @ 826A3A8 releaseall end -Route110_TrickHousePuzzle_EventScript_DoorLocked:: @ 826A3D1 +Route110_TrickHousePuzzle_EventScript_DoorLocked:: msgbox Route110_TrickHouseEntrance_Text_DoorLockedWriteSecretCodeHere, MSGBOX_DEFAULT releaseall end -Route110_TrickHousePuzzle_EventScript_ReadScrollAgain:: @ 826A3DB +Route110_TrickHousePuzzle_EventScript_ReadScrollAgain:: msgbox Route110_TrickHousePuzzle_Text_SecretCodeWrittenOnIt, MSGBOX_DEFAULT releaseall end -Route110_TrickHousePuzzle_EventScript_FoundScroll:: @ 826A3E5 +Route110_TrickHousePuzzle_EventScript_FoundScroll:: playfanfare MUS_OBTAIN_ITEM message Route110_TrickHousePuzzle_Text_FoundAScroll waitfanfare @@ -718,7 +718,7 @@ Route110_TrickHousePuzzle_EventScript_FoundScroll:: @ 826A3E5 releaseall end -Route110_TrickHouseEntrance_EventScript_TrickMasterHiding:: @ 826A3F8 +Route110_TrickHouseEntrance_EventScript_TrickMasterHiding:: lockall msgbox Route110_TrickHouseEntrance_Text_YoureBeingWatched, MSGBOX_DEFAULT releaseall @@ -731,75 +731,75 @@ Route110_TrickHouseEntrance_EventScript_TrickMasterHiding:: @ 826A3F8 setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 1 end -Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle1:: @ 826A429 +Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle1:: setvar VAR_0x8004, 6 @ x setvar VAR_0x8005, 3 @ y call Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle return -Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle2:: @ 826A439 +Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle2:: setvar VAR_0x8004, 11 @ x setvar VAR_0x8005, 5 @ y call Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle return -Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle3:: @ 826A449 +Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle3:: setvar VAR_0x8004, 9 @ x setvar VAR_0x8005, 2 @ y call Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle return -Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle:: @ 826A459 +Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle:: setvar VAR_0x8006, 0 dofieldeffectsparkle VAR_0x8004, VAR_0x8005, VAR_0x8006 waitfieldeffect FLDEFF_SPARKLE delay 10 return -Route110_TrickHouseEntrance_Text_YoureBeingWatched: @ 826A474 +Route110_TrickHouseEntrance_Text_YoureBeingWatched: .string "You're being watched…$" -Route110_TrickHouseEntrance_Text_ConcealedBeneathDesk: @ 826A48A +Route110_TrickHouseEntrance_Text_ConcealedBeneathDesk: .string "Hah? Grrr…\p" .string "How did you know I concealed myself\n" .string "beneath this desk? You're sharp!$" -Route110_TrickHouseEntrance_Text_ConcealedBehindTree: @ 826A4DA +Route110_TrickHouseEntrance_Text_ConcealedBehindTree: .string "Hah? Grrr…\p" .string "How did you know I concealed myself\n" .string "behind this tree? You're sharp!$" -Route110_TrickHouseEntrance_Text_ConcealedInDresser: @ 826A529 +Route110_TrickHouseEntrance_Text_ConcealedInDresser: .string "Hah? Grrr…\p" .string "How did you know I concealed myself\n" .string "in this dresser? You're sharp!$" -Route110_TrickHouseEntrance_Text_ConealedBeyondWindow: @ 826A577 +Route110_TrickHouseEntrance_Text_ConealedBeyondWindow: .string "Hah? Grrr…\p" .string "How did you know I concealed myself\n" .string "beyond this window? You're sharp!$" -Route110_TrickHouseEntrance_Text_ConcealedInPlanter: @ 826A5C8 +Route110_TrickHouseEntrance_Text_ConcealedInPlanter: .string "Hah? Grrr…\p" .string "How did you know I concealed myself\n" .string "in this planter? You're sharp!$" -Route110_TrickHouseEntrance_Text_ConcealedInCupboard: @ 826A616 +Route110_TrickHouseEntrance_Text_ConcealedInCupboard: .string "Hah? Grrr…\p" .string "How did you know I concealed myself\n" .string "in this cupboard? You're sharp!$" -Route110_TrickHouseEntrance_Text_ConcealedBehindWindow: @ 826A665 +Route110_TrickHouseEntrance_Text_ConcealedBehindWindow: .string "Hah? Grrr…\p" .string "How did you know I concealed myself\n" .string "behind this window? You're sharp!$" -Route110_TrickHouseEntrance_Text_ConcealedBeneathCushion: @ 826A6B6 +Route110_TrickHouseEntrance_Text_ConcealedBeneathCushion: .string "Hah? Grrr…\p" .string "How did you know I concealed myself\n" .string "beneath this cushion? You're sharp!$" -Route110_TrickHouseEntrance_Text_TheyCallMeTrickMaster: @ 826A709 +Route110_TrickHouseEntrance_Text_TheyCallMeTrickMaster: .string "Behold!\p" .string "For I am the greatest living mystery\n" .string "of a man in all of HOENN!\l" @@ -807,7 +807,7 @@ Route110_TrickHouseEntrance_Text_TheyCallMeTrickMaster: @ 826A709 .string "The TRICK MASTER!\n" .string "Wahahaha! Glad to meet you!$" -Route110_TrickHouseEntrance_Text_ComeToChallengeTrickHouse: @ 826A78C +Route110_TrickHouseEntrance_Text_ComeToChallengeTrickHouse: .string "You, you've come to challenge\n" .string "my TRICK HOUSE, haven't you?\p" .string "That's why you're here, isn't it?\n" @@ -817,25 +817,25 @@ Route110_TrickHouseEntrance_Text_ComeToChallengeTrickHouse: @ 826A78C .string "and let your challenge commence!\p" .string "I shall be waiting in the back!$" -Route110_TrickHouseEntrance_Text_ItsAScroll: @ 826A878 +Route110_TrickHouseEntrance_Text_ItsAScroll: .string "It's a scroll.$" -Route110_TrickHouseEntrance_Text_GoInHoleBehindScroll: @ 826A887 +Route110_TrickHouseEntrance_Text_GoInHoleBehindScroll: .string "There is a big hole behind the scroll!\p" .string "Want to go in?$" -Route110_TrickHouseEntrance_Text_LeavingOnJourneyNote: @ 826A8BD +Route110_TrickHouseEntrance_Text_LeavingOnJourneyNote: .string "There is a note affixed to the scroll…\p" .string "“I am leaving on a journey.\n" .string "Don't look for me. TRICK MASTER”$" -Route110_TrickHouseEntrance_Text_NextTimeUseThisTrick: @ 826A921 +Route110_TrickHouseEntrance_Text_NextTimeUseThisTrick: .string "For the next time, I'll use this trick,\n" .string "and that scheme, and those ruses…\p" .string "Mufufufu… If I may say so, it's\n" .string "brilliantly difficult, even for me!$" -Route110_TrickHouseEntrance_Text_InMidstOfDevisingNewChallenges: @ 826A9AF +Route110_TrickHouseEntrance_Text_InMidstOfDevisingNewChallenges: .string "Hah? What?!\n" .string "Oh, it's you!\p" .string "I'm in the midst of devising new tricky\n" @@ -845,42 +845,42 @@ Route110_TrickHouseEntrance_Text_InMidstOfDevisingNewChallenges: @ 826A9AF .string "You wouldn't begrudge me that?\l" .string "Come back in a little while!$" -Route110_TrickHouseEntrance_Text_YoureHereToAcceptReward: @ 826AA82 +Route110_TrickHouseEntrance_Text_YoureHereToAcceptReward: .string "Ah, it's you! You're here to accept the\n" .string "reward from before, isn't that right?\l" .string "Yes, right I am!\p" .string "Here!\n" .string "I'll give it to you now!$" -Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward: @ 826AB00 +Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward: .string "Hah?\n" .string "Did you not come to claim your reward?$" -Route110_TrickHouseEntrance_Text_MechadollWhichTent: @ 826AB2C +Route110_TrickHouseEntrance_Text_MechadollWhichTent: .string "MECHADOLL 5 I AM!\n" .string "IF REWARD IS NOT TAKEN BY YOU,\l" .string "THEN TRICK MASTER YOU CANNOT FOLLOW.\p" .string "RED TENT OR BLUE TENT,\n" .string "WHICH DO YOU PREFER?$" -Route110_TrickHouseEntrance_Text_ThenFarewell: @ 826ABAE +Route110_TrickHouseEntrance_Text_ThenFarewell: .string "THEN FAREWELL.$" -Route110_TrickHouseEntrance_Text_PCFullAgain: @ 826ABBD +Route110_TrickHouseEntrance_Text_PCFullAgain: .string "YOUR PC STATUS: FULL AGAIN.\n" .string "MEAN, YOU ARE.$" -Route110_TrickHousePuzzle_Text_FoundAScroll: @ 826ABE8 +Route110_TrickHousePuzzle_Text_FoundAScroll: .string "{PLAYER} found a scroll.$" -Route110_TrickHousePuzzle_Text_MemorizedSecretCode: @ 826ABFB +Route110_TrickHousePuzzle_Text_MemorizedSecretCode: .string "{PLAYER} memorized the secret code\n" .string "written on the scroll.$" -Route110_TrickHousePuzzle_Text_SecretCodeWrittenOnIt: @ 826AC2F +Route110_TrickHousePuzzle_Text_SecretCodeWrittenOnIt: .string "A secret code is written on it.$" -Route110_TrickHouseEntrance_Text_DoorLockedWriteSecretCodeHere: @ 826AC4F +Route110_TrickHouseEntrance_Text_DoorLockedWriteSecretCodeHere: .string "The door is locked.\p" .string "…On closer inspection, this is written\n" .string "on it: “Write the secret code here.”$" diff --git a/data/maps/Route110_TrickHousePuzzle1/scripts.inc b/data/maps/Route110_TrickHousePuzzle1/scripts.inc index 3797ec29dc..6fc6adcd56 100644 --- a/data/maps/Route110_TrickHousePuzzle1/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle1/scripts.inc @@ -1,79 +1,79 @@ -Route110_TrickHousePuzzle1_MapScripts:: @ 826B90F +Route110_TrickHousePuzzle1_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, Route110_TrickHousePuzzle1_OnLoad .byte 0 -Route110_TrickHousePuzzle1_OnLoad: @ 826B915 +Route110_TrickHousePuzzle1_OnLoad: compare VAR_TRICK_HOUSE_PUZZLE_1_STATE, 2 goto_if_eq Route110_TrickHousePuzzle1_EventScript_OpenDoor end -Route110_TrickHousePuzzle1_EventScript_OpenDoor:: @ 826B921 +Route110_TrickHousePuzzle1_EventScript_OpenDoor:: setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 end -Route110_TrickHousePuzzle1_EventScript_Scroll:: @ 826B92B +Route110_TrickHousePuzzle1_EventScript_Scroll:: lockall compare VAR_TRICK_HOUSE_PUZZLE_1_STATE, 0 goto_if_eq Route110_TrickHousePuzzle1_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end -Route110_TrickHousePuzzle1_EventScript_FoundScroll:: @ 826B93D +Route110_TrickHousePuzzle1_EventScript_FoundScroll:: setvar VAR_TRICK_HOUSE_PUZZLE_1_STATE, 1 goto Route110_TrickHousePuzzle_EventScript_FoundScroll end -Route110_TrickHousePuzzle1_EventScript_Sally:: @ 826B948 +Route110_TrickHousePuzzle1_EventScript_Sally:: trainerbattle_single TRAINER_SALLY, Route110_TrickHousePuzzle1_Text_SallyIntro, Route110_TrickHousePuzzle1_Text_SallyDefeat msgbox Route110_TrickHousePuzzle1_Text_SallyPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle1_EventScript_Eddie:: @ 826B95F +Route110_TrickHousePuzzle1_EventScript_Eddie:: trainerbattle_single TRAINER_EDDIE, Route110_TrickHousePuzzle1_Text_EddieIntro, Route110_TrickHousePuzzle1_Text_EddieDefeat msgbox Route110_TrickHousePuzzle1_Text_EddiePostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle1_EventScript_Robin:: @ 826B976 +Route110_TrickHousePuzzle1_EventScript_Robin:: trainerbattle_single TRAINER_ROBIN, Route110_TrickHousePuzzle1_Text_RobinIntro, Route110_TrickHousePuzzle1_Text_RobinDefeat msgbox Route110_TrickHousePuzzle1_Text_RobinPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle1_Text_WroteSecretCodeLockOpened:: @ 826B98D +Route110_TrickHousePuzzle1_Text_WroteSecretCodeLockOpened:: .string "{PLAYER} wrote down the secret code\n" .string "on the door.\p" .string "“TRICK MASTER is fabulous.”\n" .string "… … … … … … … …\p" .string "The lock clicked open!$" -Route110_TrickHousePuzzle1_Text_SallyIntro: @ 826B9FB +Route110_TrickHousePuzzle1_Text_SallyIntro: .string "I'll hack and slash my way to victory\n" .string "with the CUT we just learned!$" -Route110_TrickHousePuzzle1_Text_SallyDefeat: @ 826BA3F +Route110_TrickHousePuzzle1_Text_SallyDefeat: .string "Why are you so serious?$" -Route110_TrickHousePuzzle1_Text_SallyPostBattle: @ 826BA57 +Route110_TrickHousePuzzle1_Text_SallyPostBattle: .string "I never get tired of hacking\n" .string "and slashing!$" -Route110_TrickHousePuzzle1_Text_EddieIntro: @ 826BA82 +Route110_TrickHousePuzzle1_Text_EddieIntro: .string "I wandered into this weird house\n" .string "by accident…$" -Route110_TrickHousePuzzle1_Text_EddieDefeat: @ 826BAB0 +Route110_TrickHousePuzzle1_Text_EddieDefeat: .string "And now I've lost…$" -Route110_TrickHousePuzzle1_Text_EddiePostBattle: @ 826BAC3 +Route110_TrickHousePuzzle1_Text_EddiePostBattle: .string "I lost my way, I lost a battle, and I'm\n" .string "now even more lost… I can't get out…$" -Route110_TrickHousePuzzle1_Text_RobinIntro: @ 826BB10 +Route110_TrickHousePuzzle1_Text_RobinIntro: .string "Just who is the TRICK MASTER?$" -Route110_TrickHousePuzzle1_Text_RobinDefeat: @ 826BB2E +Route110_TrickHousePuzzle1_Text_RobinDefeat: .string "I lost while I was lost in thought!$" -Route110_TrickHousePuzzle1_Text_RobinPostBattle: @ 826BB52 +Route110_TrickHousePuzzle1_Text_RobinPostBattle: .string "You're strong!\n" .string "Just who are you?$" diff --git a/data/maps/Route110_TrickHousePuzzle2/scripts.inc b/data/maps/Route110_TrickHousePuzzle2/scripts.inc index 2b65ca95cd..a0222733a9 100644 --- a/data/maps/Route110_TrickHousePuzzle2/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle2/scripts.inc @@ -1,9 +1,9 @@ -Route110_TrickHousePuzzle2_MapScripts:: @ 826BB73 +Route110_TrickHousePuzzle2_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route110_TrickHousePuzzle2_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Route110_TrickHousePuzzle2_OnTransition .byte 0 -Route110_TrickHousePuzzle2_OnResume: @ 826BB7E +Route110_TrickHousePuzzle2_OnResume: compare VAR_TEMP_1, 1 call_if_eq Route110_TrickHousePuzzle2_EventScript_PressButton1 compare VAR_TEMP_2, 1 @@ -14,26 +14,26 @@ Route110_TrickHousePuzzle2_OnResume: @ 826BB7E call_if_eq Route110_TrickHousePuzzle2_EventScript_PressButton4 end -Route110_TrickHousePuzzle2_OnTransition: @ 826BBAB +Route110_TrickHousePuzzle2_OnTransition: setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 0 setvar VAR_TEMP_3, 0 setvar VAR_TEMP_4, 0 end -Route110_TrickHousePuzzle2_EventScript_Scroll:: @ 826BBC0 +Route110_TrickHousePuzzle2_EventScript_Scroll:: lockall compare VAR_TRICK_HOUSE_PUZZLE_2_STATE, 0 goto_if_eq Route110_TrickHousePuzzle2_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end -Route110_TrickHousePuzzle2_EventScript_FoundScroll:: @ 826BBD2 +Route110_TrickHousePuzzle2_EventScript_FoundScroll:: setvar VAR_TRICK_HOUSE_PUZZLE_2_STATE, 1 goto Route110_TrickHousePuzzle_EventScript_FoundScroll end -Route110_TrickHousePuzzle2_EventScript_Button1:: @ 826BBDD +Route110_TrickHousePuzzle2_EventScript_Button1:: lockall setvar VAR_TEMP_1, 1 playse SE_PIN @@ -42,7 +42,7 @@ Route110_TrickHousePuzzle2_EventScript_Button1:: @ 826BBDD releaseall end -Route110_TrickHousePuzzle2_EventScript_Button2:: @ 826BBF0 +Route110_TrickHousePuzzle2_EventScript_Button2:: lockall setvar VAR_TEMP_2, 1 playse SE_PIN @@ -51,7 +51,7 @@ Route110_TrickHousePuzzle2_EventScript_Button2:: @ 826BBF0 releaseall end -Route110_TrickHousePuzzle2_EventScript_Button3:: @ 826BC03 +Route110_TrickHousePuzzle2_EventScript_Button3:: lockall setvar VAR_TEMP_3, 1 playse SE_PIN @@ -60,7 +60,7 @@ Route110_TrickHousePuzzle2_EventScript_Button3:: @ 826BC03 releaseall end -Route110_TrickHousePuzzle2_EventScript_Button4:: @ 826BC16 +Route110_TrickHousePuzzle2_EventScript_Button4:: lockall setvar VAR_TEMP_4, 1 playse SE_PIN @@ -69,78 +69,78 @@ Route110_TrickHousePuzzle2_EventScript_Button4:: @ 826BC16 releaseall end -Route110_TrickHousePuzzle2_EventScript_PressButton1:: @ 826BC29 +Route110_TrickHousePuzzle2_EventScript_PressButton1:: setmetatile 11, 12, METATILE_TrickHousePuzzle_Button_Pressed, 0 setmetatile 1, 13, METATILE_TrickHousePuzzle_Door_Shuttered, 0 return -Route110_TrickHousePuzzle2_EventScript_PressButton2:: @ 826BC3C +Route110_TrickHousePuzzle2_EventScript_PressButton2:: setmetatile 0, 4, METATILE_TrickHousePuzzle_Button_Pressed, 0 setmetatile 5, 6, METATILE_TrickHousePuzzle_Door_Shuttered, 0 return -Route110_TrickHousePuzzle2_EventScript_PressButton3:: @ 826BC4F +Route110_TrickHousePuzzle2_EventScript_PressButton3:: setmetatile 14, 5, METATILE_TrickHousePuzzle_Button_Pressed, 0 setmetatile 7, 15, METATILE_TrickHousePuzzle_Door_Shuttered, 0 return -Route110_TrickHousePuzzle2_EventScript_PressButton4:: @ 826BC62 +Route110_TrickHousePuzzle2_EventScript_PressButton4:: setmetatile 7, 11, METATILE_TrickHousePuzzle_Button_Pressed, 0 setmetatile 14, 12, METATILE_TrickHousePuzzle_Door_Shuttered, 0 return -Route110_TrickHousePuzzle2_EventScript_Ted:: @ 826BC75 +Route110_TrickHousePuzzle2_EventScript_Ted:: trainerbattle_single TRAINER_TED, Route110_TrickHousePuzzle2_Text_TedIntro, Route110_TrickHousePuzzle2_Text_TedDefeat msgbox Route110_TrickHousePuzzle2_Text_TedPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle2_EventScript_Paul:: @ 826BC8C +Route110_TrickHousePuzzle2_EventScript_Paul:: trainerbattle_single TRAINER_PAUL, Route110_TrickHousePuzzle2_Text_PaulIntro, Route110_TrickHousePuzzle2_Text_PaulDefeat msgbox Route110_TrickHousePuzzle2_Text_PaulPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle2_EventScript_Georgia:: @ 826BCA3 +Route110_TrickHousePuzzle2_EventScript_Georgia:: trainerbattle_single TRAINER_GEORGIA, Route110_TrickHousePuzzle2_Text_GeorgiaIntro, Route110_TrickHousePuzzle2_Text_GeorgiaDefeat msgbox Route110_TrickHousePuzzle2_Text_GeorgiaPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle2_Text_WroteSecretCodeLockOpened: @ 826BCBA +Route110_TrickHousePuzzle2_Text_WroteSecretCodeLockOpened: .string "{PLAYER} wrote down the secret code\n" .string "on the door.\p" .string "“TRICK MASTER is smart.”\n" .string "… … … … … … … …\p" .string "The lock clicked open!$" -Route110_TrickHousePuzzle2_Text_TedIntro: @ 826BD25 +Route110_TrickHousePuzzle2_Text_TedIntro: .string "Which switch closes which hole?$" -Route110_TrickHousePuzzle2_Text_TedDefeat: @ 826BD45 +Route110_TrickHousePuzzle2_Text_TedDefeat: .string "After that battle, I'm even more\n" .string "confused!$" -Route110_TrickHousePuzzle2_Text_TedPostBattle: @ 826BD70 +Route110_TrickHousePuzzle2_Text_TedPostBattle: .string "Can I get you to push all the buttons\n" .string "for me?$" -Route110_TrickHousePuzzle2_Text_PaulIntro: @ 826BD9E +Route110_TrickHousePuzzle2_Text_PaulIntro: .string "Oh! You're on your second TRICK HOUSE\n" .string "challenge!$" -Route110_TrickHousePuzzle2_Text_PaulDefeat: @ 826BDCF +Route110_TrickHousePuzzle2_Text_PaulDefeat: .string "You're good at battling too?$" -Route110_TrickHousePuzzle2_Text_PaulPostBattle: @ 826BDEC +Route110_TrickHousePuzzle2_Text_PaulPostBattle: .string "The TRICK MASTER rigged all the tricks\n" .string "in this house all by himself.$" -Route110_TrickHousePuzzle2_Text_GeorgiaIntro: @ 826BE31 +Route110_TrickHousePuzzle2_Text_GeorgiaIntro: .string "I want to make my own GYM one day.\n" .string "So, I'm studying how to set traps.$" -Route110_TrickHousePuzzle2_Text_GeorgiaDefeat: @ 826BE77 +Route110_TrickHousePuzzle2_Text_GeorgiaDefeat: .string "I didn't study battling enough!$" -Route110_TrickHousePuzzle2_Text_GeorgiaPostBattle: @ 826BE97 +Route110_TrickHousePuzzle2_Text_GeorgiaPostBattle: .string "You're strong, aren't you?\n" .string "Maybe even enough to be a GYM LEADER!$" diff --git a/data/maps/Route110_TrickHousePuzzle3/scripts.inc b/data/maps/Route110_TrickHousePuzzle3/scripts.inc index ddad0d5493..4e706268c0 100644 --- a/data/maps/Route110_TrickHousePuzzle3/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle3/scripts.inc @@ -1,9 +1,9 @@ -Route110_TrickHousePuzzle3_MapScripts:: @ 826BED8 +Route110_TrickHousePuzzle3_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route110_TrickHousePuzzle3_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Route110_TrickHousePuzzle3_OnTransition .byte 0 -Route110_TrickHousePuzzle3_OnResume: @ 826BEE3 +Route110_TrickHousePuzzle3_OnResume: call Route110_TrickHousePuzzle3_EventScript_UpdateButtonMetatiles compare VAR_TEMP_9, 0 call_if_eq Route110_TrickHousePuzzle3_EventScript_SetDoorsState0 @@ -11,7 +11,7 @@ Route110_TrickHousePuzzle3_OnResume: @ 826BEE3 call_if_eq Route110_TrickHousePuzzle3_EventScript_SetDoorsState1 end -Route110_TrickHousePuzzle3_OnTransition: @ 826BEFF +Route110_TrickHousePuzzle3_OnTransition: setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 0 setvar VAR_TEMP_3, 0 @@ -20,7 +20,7 @@ Route110_TrickHousePuzzle3_OnTransition: @ 826BEFF setvar VAR_TEMP_9, 0 end -Route110_TrickHousePuzzle3_EventScript_UpdateButtonMetatiles:: @ 826BF1E +Route110_TrickHousePuzzle3_EventScript_UpdateButtonMetatiles:: setmetatile 4, 14, METATILE_TrickHousePuzzle_Button_Up, 0 setmetatile 3, 11, METATILE_TrickHousePuzzle_Button_Up, 0 setmetatile 12, 5, METATILE_TrickHousePuzzle_Button_Up, 0 @@ -35,23 +35,23 @@ Route110_TrickHousePuzzle3_EventScript_UpdateButtonMetatiles:: @ 826BF1E call_if_eq Route110_TrickHousePuzzle3_EventScript_PressedButton4Metatile return -Route110_TrickHousePuzzle3_EventScript_PressedButton1Metatile:: @ 826BF6F +Route110_TrickHousePuzzle3_EventScript_PressedButton1Metatile:: setmetatile 4, 14, METATILE_TrickHousePuzzle_Button_Pressed, 0 return -Route110_TrickHousePuzzle3_EventScript_PressedButton2Metatile:: @ 826BF79 +Route110_TrickHousePuzzle3_EventScript_PressedButton2Metatile:: setmetatile 3, 11, METATILE_TrickHousePuzzle_Button_Pressed, 0 return -Route110_TrickHousePuzzle3_EventScript_PressedButton3Metatile:: @ 826BF83 +Route110_TrickHousePuzzle3_EventScript_PressedButton3Metatile:: setmetatile 12, 5, METATILE_TrickHousePuzzle_Button_Pressed, 0 return -Route110_TrickHousePuzzle3_EventScript_PressedButton4Metatile:: @ 826BF8D +Route110_TrickHousePuzzle3_EventScript_PressedButton4Metatile:: setmetatile 8, 2, METATILE_TrickHousePuzzle_Button_Pressed, 0 return -Route110_TrickHousePuzzle3_EventScript_SetDoorsState0:: @ 826BF97 +Route110_TrickHousePuzzle3_EventScript_SetDoorsState0:: setmetatile 1, 6, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, 0 setmetatile 2, 6, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, 0 setmetatile 1, 7, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, 0 @@ -128,7 +128,7 @@ Route110_TrickHousePuzzle3_EventScript_SetDoorsState0:: @ 826BF97 setmetatile 9, 5, METATILE_TrickHousePuzzle_RedDoorV_Open1, 1 return -Route110_TrickHousePuzzle3_EventScript_SetDoorsState1:: @ 826C232 +Route110_TrickHousePuzzle3_EventScript_SetDoorsState1:: setmetatile 1, 6, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, 0 setmetatile 2, 6, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, 0 setmetatile 1, 7, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, 1 @@ -205,38 +205,38 @@ Route110_TrickHousePuzzle3_EventScript_SetDoorsState1:: @ 826C232 setmetatile 9, 5, METATILE_TrickHousePuzzle_Floor_ShadowTop_Alt, 0 return -Route110_TrickHousePuzzle3_EventScript_Button1:: @ 826C4CD +Route110_TrickHousePuzzle3_EventScript_Button1:: lockall setvar VAR_TEMP_8, 1 goto Route110_TrickHousePuzzle3_EventScript_PressButton end -Route110_TrickHousePuzzle3_EventScript_Button2:: @ 826C4D9 +Route110_TrickHousePuzzle3_EventScript_Button2:: lockall setvar VAR_TEMP_8, 2 goto Route110_TrickHousePuzzle3_EventScript_PressButton end -Route110_TrickHousePuzzle3_EventScript_Button3:: @ 826C4E5 +Route110_TrickHousePuzzle3_EventScript_Button3:: lockall setvar VAR_TEMP_8, 3 goto Route110_TrickHousePuzzle3_EventScript_PressButton end -Route110_TrickHousePuzzle3_EventScript_Button4:: @ 826C4F1 +Route110_TrickHousePuzzle3_EventScript_Button4:: lockall setvar VAR_TEMP_8, 4 goto Route110_TrickHousePuzzle3_EventScript_PressButton end -Route110_TrickHousePuzzle3_EventScript_PressButton:: @ 826C4FD +Route110_TrickHousePuzzle3_EventScript_PressButton:: call Route110_TrickHousePuzzle3_EventScript_SetButton playse SE_PIN call Route110_TrickHousePuzzle3_EventScript_UpdateButtonMetatiles goto Route110_TrickHousePuzzle3_EventScript_AlternateDoors end -Route110_TrickHousePuzzle3_EventScript_SetButton:: @ 826C510 +Route110_TrickHousePuzzle3_EventScript_SetButton:: setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 0 setvar VAR_TEMP_3, 0 @@ -251,23 +251,23 @@ Route110_TrickHousePuzzle3_EventScript_SetButton:: @ 826C510 call_if_eq Route110_TrickHousePuzzle3_EventScript_SetButton4 return -Route110_TrickHousePuzzle3_EventScript_SetButton1:: @ 826C551 +Route110_TrickHousePuzzle3_EventScript_SetButton1:: setvar VAR_TEMP_1, 1 return -Route110_TrickHousePuzzle3_EventScript_SetButton2:: @ 826C557 +Route110_TrickHousePuzzle3_EventScript_SetButton2:: setvar VAR_TEMP_2, 1 return -Route110_TrickHousePuzzle3_EventScript_SetButton3:: @ 826C55D +Route110_TrickHousePuzzle3_EventScript_SetButton3:: setvar VAR_TEMP_3, 1 return -Route110_TrickHousePuzzle3_EventScript_SetButton4:: @ 826C563 +Route110_TrickHousePuzzle3_EventScript_SetButton4:: setvar VAR_TEMP_4, 1 return -Route110_TrickHousePuzzle3_EventScript_AlternateDoors:: @ 826C569 +Route110_TrickHousePuzzle3_EventScript_AlternateDoors:: compare VAR_TEMP_9, 1 call_if_eq Route110_TrickHousePuzzle3_EventScript_SetDoorsState0 compare VAR_TEMP_9, 0 @@ -279,81 +279,81 @@ Route110_TrickHousePuzzle3_EventScript_AlternateDoors:: @ 826C569 goto_if_eq Route110_TrickHousePuzzle3_EventScript_SetAltDoorState end -Route110_TrickHousePuzzle3_EventScript_ClearAltDoorState:: @ 826C599 +Route110_TrickHousePuzzle3_EventScript_ClearAltDoorState:: setvar VAR_TEMP_9, 0 releaseall end -Route110_TrickHousePuzzle3_EventScript_SetAltDoorState:: @ 826C5A0 +Route110_TrickHousePuzzle3_EventScript_SetAltDoorState:: setvar VAR_TEMP_9, 1 releaseall end -Route110_TrickHousePuzzle3_EventScript_Scroll:: @ 826C5A7 +Route110_TrickHousePuzzle3_EventScript_Scroll:: lockall compare VAR_TRICK_HOUSE_PUZZLE_3_STATE, 0 goto_if_eq Route110_TrickHousePuzzle3_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end -Route110_TrickHousePuzzle3_EventScript_FoundScroll:: @ 826C5B9 +Route110_TrickHousePuzzle3_EventScript_FoundScroll:: setvar VAR_TRICK_HOUSE_PUZZLE_3_STATE, 1 goto Route110_TrickHousePuzzle_EventScript_FoundScroll end -Route110_TrickHousePuzzle3_EventScript_Justin:: @ 826C5C4 +Route110_TrickHousePuzzle3_EventScript_Justin:: trainerbattle_single TRAINER_JUSTIN, Route110_TrickHousePuzzle3_Text_JustinIntro, Route110_TrickHousePuzzle3_Text_JustinDefeat msgbox Route110_TrickHousePuzzle3_Text_JustinPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle3_EventScript_Martha:: @ 826C5DB +Route110_TrickHousePuzzle3_EventScript_Martha:: trainerbattle_single TRAINER_MARTHA, Route110_TrickHousePuzzle3_Text_MarthaIntro, Route110_TrickHousePuzzle3_Text_MarthaDefeat msgbox Route110_TrickHousePuzzle3_Text_MarthaPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle3_EventScript_Alan:: @ 826C5F2 +Route110_TrickHousePuzzle3_EventScript_Alan:: trainerbattle_single TRAINER_ALAN, Route110_TrickHousePuzzle3_Text_AlanIntro, Route110_TrickHousePuzzle3_Text_AlanDefeat msgbox Route110_TrickHousePuzzle3_Text_AlanPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle3_Text_WroteSecretCodeLockOpened: @ 826C609 +Route110_TrickHousePuzzle3_Text_WroteSecretCodeLockOpened: .string "{PLAYER} wrote down the secret code\n" .string "on the door.\p" .string "“TRICK MASTER is coveted.”\n" .string "… … … … … … … …\p" .string "The lock clicked open!$" -Route110_TrickHousePuzzle3_Text_JustinIntro: @ 826C676 +Route110_TrickHousePuzzle3_Text_JustinIntro: .string "I keep coming back to this same place!$" -Route110_TrickHousePuzzle3_Text_JustinDefeat: @ 826C69D +Route110_TrickHousePuzzle3_Text_JustinDefeat: .string "I'm already having trouble, and then\n" .string "you have to beat me? It's not fair!$" -Route110_TrickHousePuzzle3_Text_JustinPostBattle: @ 826C6E6 +Route110_TrickHousePuzzle3_Text_JustinPostBattle: .string "It's full of doors here!\n" .string "It's too small and dark in here! Help!$" -Route110_TrickHousePuzzle3_Text_MarthaIntro: @ 826C726 +Route110_TrickHousePuzzle3_Text_MarthaIntro: .string "I don't know what's going on here.\n" .string "I'm starting to feel sad…$" -Route110_TrickHousePuzzle3_Text_MarthaDefeat: @ 826C763 +Route110_TrickHousePuzzle3_Text_MarthaDefeat: .string "You… You're awful!$" -Route110_TrickHousePuzzle3_Text_MarthaPostBattle: @ 826C776 +Route110_TrickHousePuzzle3_Text_MarthaPostBattle: .string "I know I'm weak!\n" .string "And, I have no sense of direction!$" -Route110_TrickHousePuzzle3_Text_AlanIntro: @ 826C7AA +Route110_TrickHousePuzzle3_Text_AlanIntro: .string "I don't get it. What would anyone want\n" .string "with a house this bizarre?$" -Route110_TrickHousePuzzle3_Text_AlanDefeat: @ 826C7EC +Route110_TrickHousePuzzle3_Text_AlanDefeat: .string "I don't get it.\n" .string "How did I lose?$" -Route110_TrickHousePuzzle3_Text_AlanPostBattle: @ 826C80C +Route110_TrickHousePuzzle3_Text_AlanPostBattle: .string "I don't get it.\n" .string "How many traps are in this house?\p" .string "You may be the one to solve that.$" diff --git a/data/maps/Route110_TrickHousePuzzle4/scripts.inc b/data/maps/Route110_TrickHousePuzzle4/scripts.inc index 44610a10f7..10f49adb50 100644 --- a/data/maps/Route110_TrickHousePuzzle4/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle4/scripts.inc @@ -1,71 +1,71 @@ -Route110_TrickHousePuzzle4_MapScripts:: @ 826C860 +Route110_TrickHousePuzzle4_MapScripts:: .byte 0 -Route110_TrickHousePuzzle4_EventScript_Scroll:: @ 826C861 +Route110_TrickHousePuzzle4_EventScript_Scroll:: lockall compare VAR_TRICK_HOUSE_PUZZLE_4_STATE, 0 goto_if_eq Route110_TrickHousePuzzle4_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end -Route110_TrickHousePuzzle4_EventScript_FoundScroll:: @ 826C873 +Route110_TrickHousePuzzle4_EventScript_FoundScroll:: setvar VAR_TRICK_HOUSE_PUZZLE_4_STATE, 1 goto Route110_TrickHousePuzzle_EventScript_FoundScroll end -Route110_TrickHousePuzzle4_EventScript_Cora:: @ 826C87E +Route110_TrickHousePuzzle4_EventScript_Cora:: trainerbattle_single TRAINER_CORA, Route110_TrickHousePuzzle4_Text_CoraIntro, Route110_TrickHousePuzzle4_Text_CoraDefeat msgbox Route110_TrickHousePuzzle4_Text_CoraPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle4_EventScript_Yuji:: @ 826C895 +Route110_TrickHousePuzzle4_EventScript_Yuji:: trainerbattle_single TRAINER_YUJI, Route110_TrickHousePuzzle4_Text_YujiIntro, Route110_TrickHousePuzzle4_Text_YujiDefeat msgbox Route110_TrickHousePuzzle4_Text_YujiPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle4_EventScript_Paula:: @ 826C8AC +Route110_TrickHousePuzzle4_EventScript_Paula:: trainerbattle_single TRAINER_PAULA, Route110_TrickHousePuzzle4_Text_PaulaIntro, Route110_TrickHousePuzzle4_Text_PaulaDefeat msgbox Route110_TrickHousePuzzle4_Text_PaulaPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle4_Text_WroteSecretCodeLockOpened: @ 826C8C3 +Route110_TrickHousePuzzle4_Text_WroteSecretCodeLockOpened: .string "{PLAYER} wrote down the secret code\n" .string "on the door.\p" .string "“TRICK MASTER is cool.”\n" .string "… … … … … … … …\p" .string "The lock clicked open!$" -Route110_TrickHousePuzzle4_Text_CoraIntro: @ 826C92D +Route110_TrickHousePuzzle4_Text_CoraIntro: .string "It's too much bother to think this out.\n" .string "I only wanted to battle!$" -Route110_TrickHousePuzzle4_Text_CoraDefeat: @ 826C96E +Route110_TrickHousePuzzle4_Text_CoraDefeat: .string "Even though I lost, I still like battling\n" .string "the best!$" -Route110_TrickHousePuzzle4_Text_CoraPostBattle: @ 826C9A2 +Route110_TrickHousePuzzle4_Text_CoraPostBattle: .string "Wouldn't you agree? You would go\n" .string "anywhere if TRAINERS were there.$" -Route110_TrickHousePuzzle4_Text_YujiIntro: @ 826C9E4 +Route110_TrickHousePuzzle4_Text_YujiIntro: .string "Heh! Boulders like this, I can brush\n" .string "aside with one finger!$" -Route110_TrickHousePuzzle4_Text_YujiDefeat: @ 826CA20 +Route110_TrickHousePuzzle4_Text_YujiDefeat: .string "I can push boulders, but I can't solve\n" .string "the puzzle…$" -Route110_TrickHousePuzzle4_Text_YujiPostBattle: @ 826CA53 +Route110_TrickHousePuzzle4_Text_YujiPostBattle: .string "It's not good enough to be brawny…\n" .string "You have to use your head. Be brainy!$" -Route110_TrickHousePuzzle4_Text_PaulaIntro: @ 826CA9C +Route110_TrickHousePuzzle4_Text_PaulaIntro: .string "The TRICK HOUSE is getting trickier,\n" .string "isn't it?$" -Route110_TrickHousePuzzle4_Text_PaulaDefeat: @ 826CACB +Route110_TrickHousePuzzle4_Text_PaulaDefeat: .string "Aaak!$" -Route110_TrickHousePuzzle4_Text_PaulaPostBattle: @ 826CAD1 +Route110_TrickHousePuzzle4_Text_PaulaPostBattle: .string "Has anyone made it to the end?$" diff --git a/data/maps/Route110_TrickHousePuzzle5/scripts.inc b/data/maps/Route110_TrickHousePuzzle5/scripts.inc index 36162f42f7..3c574441ec 100644 --- a/data/maps/Route110_TrickHousePuzzle5/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle5/scripts.inc @@ -4,11 +4,11 @@ .set LOCALID_MECHADOLL_4, 4 .set LOCALID_MECHADOLL_5, 5 -Route110_TrickHousePuzzle5_MapScripts:: @ 826CAF0 +Route110_TrickHousePuzzle5_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route110_TrickHousePuzzle5_OnTransition .byte 0 -Route110_TrickHousePuzzle5_OnTransition: @ 826CAF6 +Route110_TrickHousePuzzle5_OnTransition: setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 0 setvar VAR_TEMP_3, 0 @@ -17,19 +17,19 @@ Route110_TrickHousePuzzle5_OnTransition: @ 826CAF6 setvar VAR_TEMP_8, 0 end -Route110_TrickHousePuzzle5_EventScript_Scroll:: @ 826CB15 +Route110_TrickHousePuzzle5_EventScript_Scroll:: lockall compare VAR_TRICK_HOUSE_PUZZLE_5_STATE, 0 goto_if_eq Route110_TrickHousePuzzle5_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end -Route110_TrickHousePuzzle5_EventScript_FoundScroll:: @ 826CB27 +Route110_TrickHousePuzzle5_EventScript_FoundScroll:: setvar VAR_TRICK_HOUSE_PUZZLE_5_STATE, 1 goto Route110_TrickHousePuzzle_EventScript_FoundScroll end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1:: @ 826CB32 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1:: lockall applymovement LOCALID_MECHADOLL_1, Common_Movement_FacePlayer waitmovement 0 @@ -39,7 +39,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll1:: @ 826CB32 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2:: @ 826CB53 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2:: lockall applymovement LOCALID_MECHADOLL_2, Common_Movement_FacePlayer waitmovement 0 @@ -49,7 +49,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll2:: @ 826CB53 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3:: @ 826CB74 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3:: lockall applymovement LOCALID_MECHADOLL_3, Common_Movement_FacePlayer waitmovement 0 @@ -59,7 +59,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll3:: @ 826CB74 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4:: @ 826CB95 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4:: lockall applymovement LOCALID_MECHADOLL_4, Common_Movement_FacePlayer waitmovement 0 @@ -69,7 +69,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll4:: @ 826CB95 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll5:: @ 826CBB6 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5:: lockall applymovement LOCALID_MECHADOLL_5, Common_Movement_FacePlayer waitmovement 0 @@ -79,146 +79,146 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll5:: @ 826CBB6 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll5Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger0:: @ 826CBD7 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger0:: lockall setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger1:: @ 826CBE3 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger1:: lockall setvar VAR_TEMP_9, 1 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger2:: @ 826CBEF +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger2:: lockall setvar VAR_TEMP_9, 2 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger3:: @ 826CBFB +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger3:: lockall setvar VAR_TEMP_9, 3 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger4:: @ 826CC07 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Trigger4:: lockall setvar VAR_TEMP_9, 4 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger0:: @ 826CC13 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger0:: lockall setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger1:: @ 826CC1F +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger1:: lockall setvar VAR_TEMP_9, 1 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger2:: @ 826CC2B +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger2:: lockall setvar VAR_TEMP_9, 2 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger3:: @ 826CC37 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger3:: lockall setvar VAR_TEMP_9, 3 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger4:: @ 826CC43 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger4:: lockall setvar VAR_TEMP_9, 4 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger5:: @ 826CC4F +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Trigger5:: lockall setvar VAR_TEMP_9, 5 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger0:: @ 826CC5B +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger0:: lockall setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger1:: @ 826CC67 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger1:: lockall setvar VAR_TEMP_9, 1 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger2:: @ 826CC73 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger2:: lockall setvar VAR_TEMP_9, 2 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger3:: @ 826CC7F +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger3:: lockall setvar VAR_TEMP_9, 3 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger4:: @ 826CC8B +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Trigger4:: lockall setvar VAR_TEMP_9, 4 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger0:: @ 826CC97 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger0:: lockall setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger1:: @ 826CCA3 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger1:: lockall setvar VAR_TEMP_9, 1 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger2:: @ 826CCAF +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger2:: lockall setvar VAR_TEMP_9, 2 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger3:: @ 826CCBB +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger3:: lockall setvar VAR_TEMP_9, 3 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger4:: @ 826CCC7 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger4:: lockall setvar VAR_TEMP_9, 4 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate end @ Unused -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger5:: @ 826CCD3 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Trigger5:: lockall setvar VAR_TEMP_9, 5 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll5Trigger0:: @ 826CCDF +Route110_TrickHousePuzzle5_EventScript_Mechadoll5Trigger0:: lockall setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll5Activate end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate:: @ 826CCEB +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate:: setvar VAR_TEMP_1, 1 setvar VAR_TEMP_8, LOCALID_MECHADOLL_1 playse SE_PIN @@ -242,7 +242,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate:: @ 826CCEB case 2, Route110_TrickHousePuzzle5_EventScript_Mechadoll1Quiz3 end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate:: @ 826CD6A +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate:: setvar VAR_TEMP_2, 1 setvar VAR_TEMP_8, LOCALID_MECHADOLL_2 playse SE_PIN @@ -268,7 +268,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate:: @ 826CD6A case 2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2Quiz3 end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate:: @ 826CDF4 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate:: setvar VAR_TEMP_3, 1 setvar VAR_TEMP_8, LOCALID_MECHADOLL_3 playse SE_PIN @@ -292,7 +292,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate:: @ 826CDF4 case 2, Route110_TrickHousePuzzle5_EventScript_Mechadoll3Quiz3 end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate:: @ 826CE73 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate:: setvar VAR_TEMP_4, 1 setvar VAR_TEMP_8, LOCALID_MECHADOLL_4 playse SE_PIN @@ -316,7 +316,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate:: @ 826CE73 case 2, Route110_TrickHousePuzzle5_EventScript_Mechadoll4Quiz3 end -Route110_TrickHousePuzzle5_EventScript_Mechadoll5Activate:: @ 826CEF2 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5Activate:: setvar VAR_TEMP_5, 1 setvar VAR_TEMP_8, LOCALID_MECHADOLL_5 playse SE_PIN @@ -332,127 +332,127 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll5Activate:: @ 826CEF2 case 2, Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz3 end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Quiz1:: @ 826CF45 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Quiz1:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz1, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL1_Q1, 1 + multichoice 0, 0, MULTI_MECHADOLL1_Q1, TRUE switch VAR_RESULT case 2, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Quiz2:: @ 826CF68 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Quiz2:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz2, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL1_Q2, 1 + multichoice 0, 0, MULTI_MECHADOLL1_Q2, TRUE switch VAR_RESULT case 0, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll1Quiz3:: @ 826CF8B +Route110_TrickHousePuzzle5_EventScript_Mechadoll1Quiz3:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz3, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL1_Q3, 1 + multichoice 0, 0, MULTI_MECHADOLL1_Q3, TRUE switch VAR_RESULT case 0, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Quiz1:: @ 826CFAE +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Quiz1:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz1, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL2_Q1, 1 + multichoice 0, 0, MULTI_MECHADOLL2_Q1, TRUE switch VAR_RESULT case 1, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Quiz2:: @ 826CFD1 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Quiz2:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz2, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL2_Q2, 1 + multichoice 0, 0, MULTI_MECHADOLL2_Q2, TRUE switch VAR_RESULT case 2, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll2Quiz3:: @ 826CFF4 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2Quiz3:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz3, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL2_Q3, 1 + multichoice 0, 0, MULTI_MECHADOLL2_Q3, TRUE switch VAR_RESULT case 0, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Quiz1:: @ 826D017 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Quiz1:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz1, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL3_Q1, 1 + multichoice 0, 0, MULTI_MECHADOLL3_Q1, TRUE switch VAR_RESULT case 0, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Quiz2:: @ 826D03A +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Quiz2:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz2, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL3_Q2, 1 + multichoice 0, 0, MULTI_MECHADOLL3_Q2, TRUE switch VAR_RESULT case 2, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll3Quiz3:: @ 826D05D +Route110_TrickHousePuzzle5_EventScript_Mechadoll3Quiz3:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz3, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL3_Q3, 1 + multichoice 0, 0, MULTI_MECHADOLL3_Q3, TRUE switch VAR_RESULT case 1, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Quiz1:: @ 826D080 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Quiz1:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz1, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL4_Q1, 1 + multichoice 0, 0, MULTI_MECHADOLL4_Q1, TRUE switch VAR_RESULT case 0, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Quiz2:: @ 826D0A3 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Quiz2:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz2, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL4_Q2, 1 + multichoice 0, 0, MULTI_MECHADOLL4_Q2, TRUE switch VAR_RESULT case 0, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll4Quiz3:: @ 826D0C6 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4Quiz3:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz3, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL4_Q3, 1 + multichoice 0, 0, MULTI_MECHADOLL4_Q3, TRUE switch VAR_RESULT case 1, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz1:: @ 826D0E9 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz1:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz1, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL5_Q1, 1 + multichoice 0, 0, MULTI_MECHADOLL5_Q1, TRUE switch VAR_RESULT case 1, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz2:: @ 826D10C +Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz2:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz2, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL5_Q2, 1 + multichoice 0, 0, MULTI_MECHADOLL5_Q2, TRUE switch VAR_RESULT case 0, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz3:: @ 826D12F +Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz3:: msgbox Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz3, MSGBOX_DEFAULT - multichoice 0, 0, MULTI_MECHADOLL5_Q3, 1 + multichoice 0, 0, MULTI_MECHADOLL5_Q3, TRUE switch VAR_RESULT case 2, Route110_TrickHousePuzzle5_EventScript_CorrectAnswer goto Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer end -Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer:: @ 826D152 +Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer:: waitse playse SE_FAILURE msgbox Route110_TrickHousePuzzle5_Text_DisappointmentError, MSGBOX_DEFAULT @@ -470,13 +470,13 @@ Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer:: @ 826D152 releaseall end -Route110_TrickHousePuzzle5_EventScript_CorrectAnswer:: @ 826D1A0 +Route110_TrickHousePuzzle5_EventScript_CorrectAnswer:: waitse playse SE_SUCCESS goto Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough end -Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough:: @ 826D1AA +Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough:: msgbox Route110_TrickHousePuzzle5_Text_CorrectGoThrough, MSGBOX_DEFAULT releaseall end @@ -486,7 +486,7 @@ Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough:: @ 826D1AA @ Mechadoll 2 is the only mechadoll to walk right, all the other WalkRight scripts are unused @ Mechadoll 5 never walks, all the Mechadoll5Walk scripts are unused @ No mechadoll walks left 5 paces, all the WalkLeft5 scripts are unused -Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1:: @ 826D1B4 +Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft1 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -499,7 +499,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1:: @ 826D1B4 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft1 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2:: @ 826D1EC +Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft2 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -512,7 +512,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2:: @ 826D1EC call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft2 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3:: @ 826D224 +Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft3 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -525,7 +525,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3:: @ 826D224 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft3 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4:: @ 826D25C +Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft4 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -538,7 +538,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4:: @ 826D25C call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft4 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft5:: @ 826D294 +Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft5:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft5 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -551,7 +551,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft5:: @ 826D294 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft5 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight1:: @ 826D2CC +Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight1:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight1 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -564,7 +564,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight1:: @ 826D2CC call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight1 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight2:: @ 826D304 +Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight2:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight2 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -577,7 +577,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight2:: @ 826D304 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight2 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight3:: @ 826D33C +Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight3:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight3 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -590,7 +590,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight3:: @ 826D33C call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight3 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight4:: @ 826D374 +Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight4:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight4 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -603,7 +603,7 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight4:: @ 826D374 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight4 return -Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight5:: @ 826D3AC +Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight5:: compare VAR_TEMP_8, LOCALID_MECHADOLL_1 call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight5 compare VAR_TEMP_8, LOCALID_MECHADOLL_2 @@ -616,279 +616,279 @@ Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight5:: @ 826D3AC call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight5 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft1:: @ 826D3E4 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft1:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkLeft1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft1:: @ 826D3EF +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft1:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkLeft1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft1:: @ 826D3FA +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft1:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkLeft1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft1:: @ 826D405 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft1:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkLeft1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft1:: @ 826D410 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft1:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkLeft1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft2:: @ 826D41B +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft2:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkLeft2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft2:: @ 826D426 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft2:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkLeft2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft2:: @ 826D431 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft2:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkLeft2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft2:: @ 826D43C +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft2:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkLeft2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft2:: @ 826D447 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft2:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkLeft2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft3:: @ 826D452 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft3:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkLeft3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft3:: @ 826D45D +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft3:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkLeft3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft3:: @ 826D468 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft3:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkLeft3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft3:: @ 826D473 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft3:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkLeft3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft3:: @ 826D47E +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft3:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkLeft3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft4:: @ 826D489 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft4:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkLeft4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft4:: @ 826D494 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft4:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkLeft4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft4:: @ 826D49F +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft4:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkLeft4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft4:: @ 826D4AA +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft4:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkLeft4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft4:: @ 826D4B5 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft4:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkLeft4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft5:: @ 826D4C0 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft5:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkLeft5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft5:: @ 826D4CB +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft5:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkLeft5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft5:: @ 826D4D6 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft5:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkLeft5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft5:: @ 826D4E1 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft5:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkLeft5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft5:: @ 826D4EC +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft5:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkLeft5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight1:: @ 826D4F7 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight1:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkRight1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight1:: @ 826D502 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight1:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkRight1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight1:: @ 826D50D +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight1:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkRight1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight1:: @ 826D518 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight1:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkRight1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight1:: @ 826D523 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight1:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkRight1 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight2:: @ 826D52E +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight2:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkRight2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight2:: @ 826D539 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight2:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkRight2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight2:: @ 826D544 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight2:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkRight2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight2:: @ 826D54F +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight2:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkRight2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight2:: @ 826D55A +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight2:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkRight2 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight3:: @ 826D565 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight3:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkRight3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight3:: @ 826D570 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight3:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkRight3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight3:: @ 826D57B +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight3:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkRight3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight3:: @ 826D586 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight3:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkRight3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight3:: @ 826D591 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight3:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkRight3 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight4:: @ 826D59C +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight4:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkRight4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight4:: @ 826D5A7 +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight4:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkRight4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight4:: @ 826D5B2 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight4:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkRight4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight4:: @ 826D5BD +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight4:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkRight4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight4:: @ 826D5C8 +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight4:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkRight4 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight5:: @ 826D5D3 +Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight5:: applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_WalkRight5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight5:: @ 826D5DE +Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight5:: applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_WalkRight5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight5:: @ 826D5E9 +Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight5:: applymovement LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_Movement_WalkRight5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight5:: @ 826D5F4 +Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight5:: applymovement LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_Movement_WalkRight5 waitmovement 0 return -Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight5:: @ 826D5FF +Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight5:: applymovement LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_Movement_WalkRight5 waitmovement 0 return -Route110_TrickHousePuzzle5_Movement_WalkLeft1: @ 826D60A +Route110_TrickHousePuzzle5_Movement_WalkLeft1: walk_left step_end -Route110_TrickHousePuzzle5_Movement_WalkLeft2: @ 826D60C +Route110_TrickHousePuzzle5_Movement_WalkLeft2: walk_left walk_left step_end -Route110_TrickHousePuzzle5_Movement_WalkLeft3: @ 826D60F +Route110_TrickHousePuzzle5_Movement_WalkLeft3: walk_left walk_left walk_left step_end -Route110_TrickHousePuzzle5_Movement_WalkLeft4: @ 826D613 +Route110_TrickHousePuzzle5_Movement_WalkLeft4: walk_left walk_left walk_left walk_left step_end -Route110_TrickHousePuzzle5_Movement_WalkLeft5: @ 826D618 +Route110_TrickHousePuzzle5_Movement_WalkLeft5: walk_left walk_left walk_left @@ -896,29 +896,29 @@ Route110_TrickHousePuzzle5_Movement_WalkLeft5: @ 826D618 walk_left step_end -Route110_TrickHousePuzzle5_Movement_WalkRight1: @ 826D61E +Route110_TrickHousePuzzle5_Movement_WalkRight1: walk_right step_end -Route110_TrickHousePuzzle5_Movement_WalkRight2: @ 826D620 +Route110_TrickHousePuzzle5_Movement_WalkRight2: walk_right walk_right step_end -Route110_TrickHousePuzzle5_Movement_WalkRight3: @ 826D623 +Route110_TrickHousePuzzle5_Movement_WalkRight3: walk_right walk_right walk_right step_end -Route110_TrickHousePuzzle5_Movement_WalkRight4: @ 826D627 +Route110_TrickHousePuzzle5_Movement_WalkRight4: walk_right walk_right walk_right walk_right step_end -Route110_TrickHousePuzzle5_Movement_WalkRight5: @ 826D62C +Route110_TrickHousePuzzle5_Movement_WalkRight5: walk_right walk_right walk_right @@ -926,7 +926,7 @@ Route110_TrickHousePuzzle5_Movement_WalkRight5: @ 826D62C walk_right step_end -Route110_TrickHousePuzzle5_Movement_MechadollShake: @ 826D632 +Route110_TrickHousePuzzle5_Movement_MechadollShake: face_left delay_2 face_right @@ -974,128 +974,128 @@ Route110_TrickHousePuzzle5_Movement_MechadollShake: @ 826D632 face_down step_end -Route110_TrickHousePuzzle5_Text_WroteSecretCodeLockOpened: @ 826D660 +Route110_TrickHousePuzzle5_Text_WroteSecretCodeLockOpened: .string "{PLAYER} wrote down the secret code\n" .string "on the door.\p" .string "“TRICK MASTER is a genius.”\n" .string "… … … … … … … …\p" .string "The lock clicked open!$" -Route110_TrickHousePuzzle5_Text_Mechadoll1Intro: @ 826D6CE +Route110_TrickHousePuzzle5_Text_Mechadoll1Intro: .string "CLICKETY-CLACK…\n" .string "MECHADOLL 1 AM I!\p" .string "IF YOU ANSWER QUIZZES CORRECTLY,\n" .string "THEN YOU WILL GO TO MECHADOLL 5.\l" .string "THEN YOU CAN OBTAIN THE SECRET CODE.$" -Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz1: @ 826D757 +Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz1: .string "MECHADOLL 1 QUIZ.\p" .string "One of these POKéMON is not found\n" .string "on ROUTE 110. Which one is it?$" -Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz2: @ 826D7AA +Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz2: .string "MECHADOLL 1 QUIZ.\p" .string "One of these POKéMON is not of the\n" .string "WATER type. Which one is it?$" -Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz3: @ 826D7FC +Route110_TrickHousePuzzle5_Text_Mechadoll1Quiz3: .string "MECHADOLL 1 QUIZ.\p" .string "One of these POKéMON does not use\n" .string "LEECH LIFE. Which one is it?$" -Route110_TrickHousePuzzle5_Text_CorrectGoThrough: @ 826D84D +Route110_TrickHousePuzzle5_Text_CorrectGoThrough: .string "CONGRATULATIONS. CORRECT YOU ARE.\n" .string "GO THROUGH. PLEASE.$" -Route110_TrickHousePuzzle5_Text_DisappointmentError: @ 826D883 +Route110_TrickHousePuzzle5_Text_DisappointmentError: .string "BZZZT. DISAPPOINTMENT.\n" .string "ERROR.$" -Route110_TrickHousePuzzle5_Text_Wahahahaha: @ 826D8A1 +Route110_TrickHousePuzzle5_Text_Wahahahaha: .string "WAHAHAHAHA! WAHAHAHAHA!\n" .string "CLICKETY-CLACK!$" -Route110_TrickHousePuzzle5_Text_WaitForNextChallenge: @ 826D8C9 +Route110_TrickHousePuzzle5_Text_WaitForNextChallenge: .string "YOUR NEXT CHALLENGE WE WAIT FOR.$" -Route110_TrickHousePuzzle5_Text_Mechadoll2Intro: @ 826D8EA +Route110_TrickHousePuzzle5_Text_Mechadoll2Intro: .string "CLICKETY-CLACK…\n" .string "MECHADOLL 2 AM I!\p" .string "MECHADOLL 1'S QUIZ DIFFICULTY LEVEL\n" .string "IS SET TOO LOW.$" -Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz1: @ 826D940 +Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz1: .string "MECHADOLL 2 QUIZ.\p" .string "Which of these POKéMON did WALLY\n" .string "borrow from your father?$" -Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz2: @ 826D98C +Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz2: .string "MECHADOLL 2 QUIZ.\p" .string "Which of these POKéMON was chasing\n" .string "PROF. BIRCH?$" -Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz3: @ 826D9CE +Route110_TrickHousePuzzle5_Text_Mechadoll2Quiz3: .string "MECHADOLL 2 QUIZ.\p" .string "Which of these POKéMON did TEAM AQUA\n" .string "use in PETALBURG FOREST?$" -Route110_TrickHousePuzzle5_Text_Mechadoll3Intro: @ 826DA1E +Route110_TrickHousePuzzle5_Text_Mechadoll3Intro: .string "CLICKETY-CLACK…\n" .string "MECHADOLL 3 AM I!\p" .string "MATTERS OF MONEY ARE MY SOLE FOCUS.$" -Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz1: @ 826DA64 +Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz1: .string "MECHADOLL 3 QUIZ.\p" .string "Which costs more?\n" .string "Three HARBOR MAILS or one BURN HEAL?$" -Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz2: @ 826DAAD +Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz2: .string "MECHADOLL 3 QUIZ.\p" .string "Sell one GREAT BALL and buy\n" .string "one POTION. How much money remains?$" -Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz3: @ 826DAFF +Route110_TrickHousePuzzle5_Text_Mechadoll3Quiz3: .string "MECHADOLL 3 QUIZ.\p" .string "Do one REPEL and SODA POP cost\n" .string "more than one SUPER POTION?$" -Route110_TrickHousePuzzle5_Text_Mechadoll4Intro: @ 826DB4C +Route110_TrickHousePuzzle5_Text_Mechadoll4Intro: .string "CLICKETY-CLACK…\n" .string "MECHADOLL 4 THAT IS ME!\p" .string "MY QUIZ IS AN OBJECT OF BEAUTY.$" -Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz1: @ 826DB94 +Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz1: .string "MECHADOLL 4 QUIZ.\p" .string "In SEASHORE HOUSE, were there more men\n" .string "or women?$" -Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz2: @ 826DBD7 +Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz2: .string "MECHADOLL 4 QUIZ.\p" .string "In LAVARIDGE TOWN, were there more\n" .string "elderly men or elderly women?$" -Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz3: @ 826DC2A +Route110_TrickHousePuzzle5_Text_Mechadoll4Quiz3: .string "MECHADOLL 4 QUIZ.\p" .string "In the TRAINER'S SCHOOL, how many\n" .string "girl students were there?$" -Route110_TrickHousePuzzle5_Text_Mechadoll5Intro: @ 826DC78 +Route110_TrickHousePuzzle5_Text_Mechadoll5Intro: .string "CLICKETY-CLACK…\n" .string "MECHADOLL 5 AM I!\p" .string "THE MASTER'S BEST AND PROUDEST\n" .string "ACHIEVEMENT AM I.$" -Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz1: @ 826DCCB +Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz1: .string "MECHADOLL 5 QUIZ.\p" .string "In SLATEPORT's POKéMON FAN CLUB,\n" .string "how many POKéMON were there?$" -Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz2: @ 826DD1B +Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz2: .string "MECHADOLL 5 QUIZ.\p" .string "In FORTREE CITY, how many\n" .string "tree houses were there?$" -Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz3: @ 826DD5F +Route110_TrickHousePuzzle5_Text_Mechadoll5Quiz3: .string "MECHADOLL 5 QUIZ.\p" .string "On the CYCLING ROAD, how many\n" .string "TRIATHLETES were there?$" diff --git a/data/maps/Route110_TrickHousePuzzle6/scripts.inc b/data/maps/Route110_TrickHousePuzzle6/scripts.inc index 142b89f424..35d657acc3 100644 --- a/data/maps/Route110_TrickHousePuzzle6/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle6/scripts.inc @@ -1,87 +1,87 @@ -Route110_TrickHousePuzzle6_MapScripts:: @ 826DDA7 +Route110_TrickHousePuzzle6_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route110_TrickHousePuzzle6_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, Route110_TrickHousePuzzle6_OnWarp .byte 0 -Route110_TrickHousePuzzle6_OnTransition: @ 826DDB2 +Route110_TrickHousePuzzle6_OnTransition: special RotatingGate_InitPuzzle end -Route110_TrickHousePuzzle6_OnWarp: @ 826DDB6 +Route110_TrickHousePuzzle6_OnWarp: map_script_2 VAR_TEMP_0, VAR_TEMP_0, Route110_TrickHousePuzzle6_EventScript_InitPuzzle .2byte 0 -Route110_TrickHousePuzzle6_EventScript_InitPuzzle:: @ 826DDC0 +Route110_TrickHousePuzzle6_EventScript_InitPuzzle:: special RotatingGate_InitPuzzleAndGraphics end -Route110_TrickHousePuzzle6_EventScript_Scroll:: @ 826DDC4 +Route110_TrickHousePuzzle6_EventScript_Scroll:: lockall compare VAR_TRICK_HOUSE_PUZZLE_6_STATE, 0 goto_if_eq Route110_TrickHousePuzzle6_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end -Route110_TrickHousePuzzle6_EventScript_FoundScroll:: @ 826DDD6 +Route110_TrickHousePuzzle6_EventScript_FoundScroll:: setvar VAR_TRICK_HOUSE_PUZZLE_6_STATE, 1 goto Route110_TrickHousePuzzle_EventScript_FoundScroll end -Route110_TrickHousePuzzle6_EventScript_Sophia:: @ 826DDE1 +Route110_TrickHousePuzzle6_EventScript_Sophia:: trainerbattle_single TRAINER_SOPHIA, Route110_TrickHousePuzzle6_Text_SophiaIntro, Route110_TrickHousePuzzle6_Text_SophiaDefeat msgbox Route110_TrickHousePuzzle6_Text_SophiaPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle6_EventScript_Benny:: @ 826DDF8 +Route110_TrickHousePuzzle6_EventScript_Benny:: trainerbattle_single TRAINER_BENNY, Route110_TrickHousePuzzle6_Text_BennyIntro, Route110_TrickHousePuzzle6_Text_BennyDefeat msgbox Route110_TrickHousePuzzle6_Text_BennyPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle6_EventScript_Sebastian:: @ 826DE0F +Route110_TrickHousePuzzle6_EventScript_Sebastian:: trainerbattle_single TRAINER_SEBASTIAN, Route110_TrickHousePuzzle6_Text_SebastianIntro, Route110_TrickHousePuzzle6_Text_SebastianDefeat msgbox Route110_TrickHousePuzzle6_Text_SebastianPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle6_Text_WroteSecretCodeLockOpened: @ 826DE26 +Route110_TrickHousePuzzle6_Text_WroteSecretCodeLockOpened: .string "{PLAYER} wrote down the secret code\n" .string "on the door.\p" .string "“TRICK MASTER is my life.”\n" .string "… … … … … … … …\p" .string "The lock clicked open!$" -Route110_TrickHousePuzzle6_Text_SophiaIntro: @ 826DE93 +Route110_TrickHousePuzzle6_Text_SophiaIntro: .string "When I heard there was a strange\n" .string "house, I had to check it out.$" -Route110_TrickHousePuzzle6_Text_SophiaDefeat: @ 826DED2 +Route110_TrickHousePuzzle6_Text_SophiaDefeat: .string "I've discovered a tough TRAINER!$" -Route110_TrickHousePuzzle6_Text_SophiaPostBattle: @ 826DEF3 +Route110_TrickHousePuzzle6_Text_SophiaPostBattle: .string "I'm sure having a good time checking\n" .string "this place out.\p" .string "It's a challenge I've found worth\n" .string "repeating!$" -Route110_TrickHousePuzzle6_Text_BennyIntro: @ 826DF55 +Route110_TrickHousePuzzle6_Text_BennyIntro: .string "Maybe I could get my BIRD POKéMON\n" .string "to fly over the wall…$" -Route110_TrickHousePuzzle6_Text_BennyDefeat: @ 826DF8D +Route110_TrickHousePuzzle6_Text_BennyDefeat: .string "Gwaaah! I blew it!$" -Route110_TrickHousePuzzle6_Text_BennyPostBattle: @ 826DFA0 +Route110_TrickHousePuzzle6_Text_BennyPostBattle: .string "Ehehehe… I guess I lost because\n" .string "I was trying to cheat.$" -Route110_TrickHousePuzzle6_Text_SebastianIntro: @ 826DFD7 +Route110_TrickHousePuzzle6_Text_SebastianIntro: .string "I'm getting dizzy from these rotating\n" .string "doors…$" -Route110_TrickHousePuzzle6_Text_SebastianDefeat: @ 826E004 +Route110_TrickHousePuzzle6_Text_SebastianDefeat: .string "Everything's spinning around and\n" .string "around. I can't take this anymore…$" -Route110_TrickHousePuzzle6_Text_SebastianPostBattle: @ 826E048 +Route110_TrickHousePuzzle6_Text_SebastianPostBattle: .string "You don't seem to be affected at all.\n" .string "Or do you have your poker face on?$" diff --git a/data/maps/Route110_TrickHousePuzzle7/scripts.inc b/data/maps/Route110_TrickHousePuzzle7/scripts.inc index b0cbd38139..b0f1cbea12 100644 --- a/data/maps/Route110_TrickHousePuzzle7/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle7/scripts.inc @@ -1,4 +1,4 @@ -Route110_TrickHousePuzzle7_MapScripts:: @ 826E091 +Route110_TrickHousePuzzle7_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route110_TrickHousePuzzle7_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Route110_TrickHousePuzzle7_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route110_TrickHousePuzzle7_OnLoad @@ -8,11 +8,11 @@ Route110_TrickHousePuzzle7_MapScripts:: @ 826E091 @ Puzzle Room 7 in RSE uses whatever puzzle Mossdeep Gym uses @ Because Mossdeep Gym was redesigned for Emerald, theres a good deal of leftover script from the old R/S puzzle -Route110_TrickHousePuzzle7_OnResume: @ 826E0A6 +Route110_TrickHousePuzzle7_OnResume: call Route110_TrickHousePuzzle7_EventScript_UpdateSwitchMetatiles end -Route110_TrickHousePuzzle7_EventScript_UpdateSwitchMetatiles:: @ 826E0AC +Route110_TrickHousePuzzle7_EventScript_UpdateSwitchMetatiles:: call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOn @@ -21,57 +21,57 @@ Route110_TrickHousePuzzle7_EventScript_UpdateSwitchMetatiles:: @ 826E0AC return @ Leftover from R/S, none of the below metatile scripts are ever called -Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOn:: @ 826E0DA +Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOn:: setmetatile 13, 17, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, 0 setmetatile 12, 16, METATILE_TrickHousePuzzle_Lever_On, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOn:: @ 826E0ED +Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOn:: setmetatile 12, 13, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, 0 setmetatile 12, 11, METATILE_TrickHousePuzzle_Lever_On, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOn:: @ 826E100 +Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOn:: setmetatile 7, 12, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, 0 setmetatile 5, 10, METATILE_TrickHousePuzzle_Lever_On, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOn:: @ 826E113 +Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOn:: setmetatile 6, 6, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right_Alt, 0 setmetatile 4, 4, METATILE_TrickHousePuzzle_Lever_On, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOn:: @ 826E126 +Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOn:: setmetatile 8, 4, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left, 0 setmetatile 7, 5, METATILE_TrickHousePuzzle_Lever_On, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOff:: @ 826E139 +Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOff:: setmetatile 13, 17, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down, 0 setmetatile 12, 16, METATILE_TrickHousePuzzle_Lever_Off, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOff:: @ 826E14C +Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOff:: setmetatile 12, 13, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left, 0 setmetatile 12, 11, METATILE_TrickHousePuzzle_Lever_Off, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOff:: @ 826E15F +Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOff:: setmetatile 7, 12, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down, 0 setmetatile 5, 10, METATILE_TrickHousePuzzle_Lever_Off, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOff:: @ 826E172 +Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOff:: setmetatile 6, 6, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left_Alt, 0 setmetatile 4, 4, METATILE_TrickHousePuzzle_Lever_Off, 1 return -Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOff:: @ 826E185 +Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOff:: setmetatile 8, 4, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right, 0 setmetatile 7, 5, METATILE_TrickHousePuzzle_Lever_Off, 1 return -Route110_TrickHousePuzzle7_OnTransition: @ 826E198 +Route110_TrickHousePuzzle7_OnTransition: compare VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1 goto_if_eq Route110_TrickHousePuzzle7_EventScript_TeleportedTransition clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 @@ -81,36 +81,36 @@ Route110_TrickHousePuzzle7_OnTransition: @ 826E198 clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 end -Route110_TrickHousePuzzle7_EventScript_TeleportedTransition:: @ 826E1B3 +Route110_TrickHousePuzzle7_EventScript_TeleportedTransition:: end -Route110_TrickHousePuzzle7_OnLoad: @ 826E1B4 +Route110_TrickHousePuzzle7_OnLoad: compare VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1 call_if_eq Route110_TrickHousePuzzle7_EventScript_UpdateSwitchMetatiles end -Route110_TrickHousePuzzle7_OnFrame: @ 826E1C0 +Route110_TrickHousePuzzle7_OnFrame: map_script_2 VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1, Route110_TrickHousePuzzle7_EventScript_ClearState2 .2byte 0 -Route110_TrickHousePuzzle7_EventScript_ClearState2:: @ 826E1CA +Route110_TrickHousePuzzle7_EventScript_ClearState2:: setvar VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 0 end -Route110_TrickHousePuzzle7_EventScript_Scroll:: @ 826E1D0 +Route110_TrickHousePuzzle7_EventScript_Scroll:: lockall compare VAR_TRICK_HOUSE_PUZZLE_7_STATE, 0 goto_if_eq Route110_TrickHousePuzzle7_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end -Route110_TrickHousePuzzle7_EventScript_FoundScroll:: @ 826E1E2 +Route110_TrickHousePuzzle7_EventScript_FoundScroll:: setvar VAR_TRICK_HOUSE_PUZZLE_7_STATE, 1 goto Route110_TrickHousePuzzle_EventScript_FoundScroll end @ Unused, leftover from R/S -Route110_TrickHousePuzzle7_EventScript_TeleportPad:: @ 826E1ED +Route110_TrickHousePuzzle7_EventScript_TeleportPad:: lockall setvar VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1 warpteleport MAP_ROUTE110_TRICK_HOUSE_PUZZLE7, 255, 3, 19 @@ -119,7 +119,7 @@ Route110_TrickHousePuzzle7_EventScript_TeleportPad:: @ 826E1ED end @ All the below switch scripts are unused leftover from R/S -Route110_TrickHousePuzzle7_EventScript_Switch1:: @ 826E1FE +Route110_TrickHousePuzzle7_EventScript_Switch1:: lockall delay 32 call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOn @@ -130,7 +130,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch1:: @ 826E1FE goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1Off end -Route110_TrickHousePuzzle7_EventScript_Switch2:: @ 826E22D +Route110_TrickHousePuzzle7_EventScript_Switch2:: lockall delay 32 call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOn @@ -141,7 +141,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch2:: @ 826E22D goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2Off end -Route110_TrickHousePuzzle7_EventScript_Switch3:: @ 826E25C +Route110_TrickHousePuzzle7_EventScript_Switch3:: lockall delay 32 call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOn @@ -152,7 +152,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch3:: @ 826E25C goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3Off end -Route110_TrickHousePuzzle7_EventScript_Switch4:: @ 826E28B +Route110_TrickHousePuzzle7_EventScript_Switch4:: lockall delay 32 call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOn @@ -163,7 +163,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch4:: @ 826E28B goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4Off end -Route110_TrickHousePuzzle7_EventScript_Switch5:: @ 826E2BA +Route110_TrickHousePuzzle7_EventScript_Switch5:: lockall delay 32 call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOn @@ -175,58 +175,58 @@ Route110_TrickHousePuzzle7_EventScript_Switch5:: @ 826E2BA end @ All the below switch scripts are unused leftover from R/S -Route110_TrickHousePuzzle7_EventScript_SetSwitch1On:: @ 826E2E9 +Route110_TrickHousePuzzle7_EventScript_SetSwitch1On:: setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch1Off:: @ 826E2EE +Route110_TrickHousePuzzle7_EventScript_SetSwitch1Off:: clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch2On:: @ 826E2F3 +Route110_TrickHousePuzzle7_EventScript_SetSwitch2On:: setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch2Off:: @ 826E2F8 +Route110_TrickHousePuzzle7_EventScript_SetSwitch2Off:: clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch3On:: @ 826E2FD +Route110_TrickHousePuzzle7_EventScript_SetSwitch3On:: setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch3Off:: @ 826E302 +Route110_TrickHousePuzzle7_EventScript_SetSwitch3Off:: clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch4On:: @ 826E307 +Route110_TrickHousePuzzle7_EventScript_SetSwitch4On:: setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch4Off:: @ 826E30C +Route110_TrickHousePuzzle7_EventScript_SetSwitch4Off:: clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch5On:: @ 826E311 +Route110_TrickHousePuzzle7_EventScript_SetSwitch5On:: setflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 releaseall end -Route110_TrickHousePuzzle7_EventScript_SetSwitch5Off:: @ 826E316 +Route110_TrickHousePuzzle7_EventScript_SetSwitch5Off:: clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 releaseall end @ From here is where the new, actually used puzzle scripts begin -Route110_TrickHousePuzzle7_EventScript_YellowButton:: @ 826E31B +Route110_TrickHousePuzzle7_EventScript_YellowButton:: playse SE_SWITCH waitse playse SE_REPEL @@ -238,7 +238,7 @@ Route110_TrickHousePuzzle7_EventScript_YellowButton:: @ 826E31B freerotatingtilepuzzle end -Route110_TrickHousePuzzle7_EventScript_BlueButton:: @ 826E331 +Route110_TrickHousePuzzle7_EventScript_BlueButton:: playse SE_SWITCH waitse playse SE_REPEL @@ -250,7 +250,7 @@ Route110_TrickHousePuzzle7_EventScript_BlueButton:: @ 826E331 freerotatingtilepuzzle end -Route110_TrickHousePuzzle7_EventScript_GreenButton:: @ 826E347 +Route110_TrickHousePuzzle7_EventScript_GreenButton:: playse SE_SWITCH waitse playse SE_REPEL @@ -262,7 +262,7 @@ Route110_TrickHousePuzzle7_EventScript_GreenButton:: @ 826E347 freerotatingtilepuzzle end -Route110_TrickHousePuzzle7_EventScript_PurpleButton:: @ 826E35D +Route110_TrickHousePuzzle7_EventScript_PurpleButton:: playse SE_SWITCH waitse playse SE_REPEL @@ -275,7 +275,7 @@ Route110_TrickHousePuzzle7_EventScript_PurpleButton:: @ 826E35D end @ Unused -Route110_TrickHousePuzzle7_EventScript_RedButton:: @ 826E373 +Route110_TrickHousePuzzle7_EventScript_RedButton:: playse SE_SWITCH waitse playse SE_REPEL @@ -287,109 +287,109 @@ Route110_TrickHousePuzzle7_EventScript_RedButton:: @ 826E373 freerotatingtilepuzzle end -Route110_TrickHousePuzzle7_EventScript_Joshua:: @ 826E389 +Route110_TrickHousePuzzle7_EventScript_Joshua:: trainerbattle_single TRAINER_JOSHUA, Route110_TrickHousePuzzle7_Text_JoshuaIntro, Route110_TrickHousePuzzle7_Text_JoshuaDefeat msgbox Route110_TrickHousePuzzle7_Text_JoshuaPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle7_EventScript_Patricia:: @ 826E3A0 +Route110_TrickHousePuzzle7_EventScript_Patricia:: trainerbattle_single TRAINER_PATRICIA, Route110_TrickHousePuzzle7_Text_PatriciaIntro, Route110_TrickHousePuzzle7_Text_PatriciaDefeat msgbox Route110_TrickHousePuzzle7_Text_PatriciaPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle7_EventScript_Alexis:: @ 826E3B7 +Route110_TrickHousePuzzle7_EventScript_Alexis:: trainerbattle_single TRAINER_ALEXIS, Route110_TrickHousePuzzle7_Text_AlexisIntro, Route110_TrickHousePuzzle7_Text_AlexisDefeat msgbox Route110_TrickHousePuzzle7_Text_AlexisPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle7_EventScript_Mariela:: @ 826E3CE +Route110_TrickHousePuzzle7_EventScript_Mariela:: trainerbattle_single TRAINER_MARIELA, Route110_TrickHousePuzzle7_Text_MarielaIntro, Route110_TrickHousePuzzle7_Text_MarielaDefeat msgbox Route110_TrickHousePuzzle7_Text_MarielaPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle7_EventScript_Alvaro:: @ 826E3E5 +Route110_TrickHousePuzzle7_EventScript_Alvaro:: trainerbattle_single TRAINER_ALVARO, Route110_TrickHousePuzzle7_Text_AlvaroIntro, Route110_TrickHousePuzzle7_Text_AlvaroDefeat msgbox Route110_TrickHousePuzzle7_Text_AlvaroPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle7_EventScript_Everett:: @ 826E3FC +Route110_TrickHousePuzzle7_EventScript_Everett:: trainerbattle_single TRAINER_EVERETT, Route110_TrickHousePuzzle7_Text_EverettIntro, Route110_TrickHousePuzzle7_Text_EverettDefeat msgbox Route110_TrickHousePuzzle7_Text_EverettPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle7_EventScript_WroteSecretCodeLockOpened:: @ 826E413 +Route110_TrickHousePuzzle7_EventScript_WroteSecretCodeLockOpened:: .string "{PLAYER} wrote down the secret code\n" .string "on the door.\p" .string "“TRICK MASTER is huggable.”\n" .string "… … … … … … … …\p" .string "The lock clicked open!$" -Route110_TrickHousePuzzle7_Text_JoshuaIntro: @ 826E481 +Route110_TrickHousePuzzle7_Text_JoshuaIntro: .string "The TRICK MASTER always vanishes\n" .string "like smoke. How does he do it?$" -Route110_TrickHousePuzzle7_Text_JoshuaDefeat: @ 826E4C1 +Route110_TrickHousePuzzle7_Text_JoshuaDefeat: .string "Aiyeeeh! You're much too strong!\n" .string "How do you do it?$" -Route110_TrickHousePuzzle7_Text_JoshuaPostBattle: @ 826E4F4 +Route110_TrickHousePuzzle7_Text_JoshuaPostBattle: .string "I wish I could appear and disappear as\n" .string "if I were smoke, too.$" -Route110_TrickHousePuzzle7_Text_PatriciaIntro: @ 826E531 +Route110_TrickHousePuzzle7_Text_PatriciaIntro: .string "Going around the same spot…\n" .string "It begets ill fortune…$" -Route110_TrickHousePuzzle7_Text_PatriciaDefeat: @ 826E564 +Route110_TrickHousePuzzle7_Text_PatriciaDefeat: .string "Defeated!\n" .string "It's a bad sign…$" -Route110_TrickHousePuzzle7_Text_PatriciaPostBattle: @ 826E57F +Route110_TrickHousePuzzle7_Text_PatriciaPostBattle: .string "I've circled the same spot over ten\n" .string "times now… It's ill fortune…$" -Route110_TrickHousePuzzle7_Text_AlexisIntro: @ 826E5C0 +Route110_TrickHousePuzzle7_Text_AlexisIntro: .string "Whoever wins will get through here\n" .string "first. That's the feeling I get.$" -Route110_TrickHousePuzzle7_Text_AlexisDefeat: @ 826E604 +Route110_TrickHousePuzzle7_Text_AlexisDefeat: .string "Oh!\n" .string "Well, go ahead, then!$" -Route110_TrickHousePuzzle7_Text_AlexisPostBattle: @ 826E61E +Route110_TrickHousePuzzle7_Text_AlexisPostBattle: .string "You're solving all the puzzles in the\n" .string "TRICK HOUSE. That's the feeling I get.$" -Route110_TrickHousePuzzle7_Text_MarielaIntro: @ 826E66B +Route110_TrickHousePuzzle7_Text_MarielaIntro: .string "Nufufufu, here at last!\n" .string "Let's get right with it!$" -Route110_TrickHousePuzzle7_Text_MarielaDefeat: @ 826E69C +Route110_TrickHousePuzzle7_Text_MarielaDefeat: .string "You're so casual about winning!$" -Route110_TrickHousePuzzle7_Text_MarielaPostBattle: @ 826E6BC +Route110_TrickHousePuzzle7_Text_MarielaPostBattle: .string "Humph! I'm not upset!\n" .string "Not me!$" -Route110_TrickHousePuzzle7_Text_AlvaroIntro: @ 826E6DA +Route110_TrickHousePuzzle7_Text_AlvaroIntro: .string "I ever so closely watched you coming!$" -Route110_TrickHousePuzzle7_Text_AlvaroDefeat: @ 826E700 +Route110_TrickHousePuzzle7_Text_AlvaroDefeat: .string "This outcome I didn't see coming…$" -Route110_TrickHousePuzzle7_Text_AlvaroPostBattle: @ 826E722 +Route110_TrickHousePuzzle7_Text_AlvaroPostBattle: .string "Well, anyway, we both picked a weird\n" .string "place to get acquainted.\p" .string "As one weirdo to another,\n" .string "let's do our best!$" -Route110_TrickHousePuzzle7_Text_EverettIntro: @ 826E78D +Route110_TrickHousePuzzle7_Text_EverettIntro: .string "It's awfully cramped in here…$" -Route110_TrickHousePuzzle7_Text_EverettDefeat: @ 826E7AB +Route110_TrickHousePuzzle7_Text_EverettDefeat: .string "Oh, yes, strong you are.$" -Route110_TrickHousePuzzle7_Text_EverettPostBattle: @ 826E7C4 +Route110_TrickHousePuzzle7_Text_EverettPostBattle: .string "I was hoping to switch places with you\n" .string "when I beat you, but…$" diff --git a/data/maps/Route110_TrickHousePuzzle8/scripts.inc b/data/maps/Route110_TrickHousePuzzle8/scripts.inc index 9e42182342..310751e5df 100644 --- a/data/maps/Route110_TrickHousePuzzle8/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle8/scripts.inc @@ -1,72 +1,72 @@ -Route110_TrickHousePuzzle8_MapScripts:: @ 826E801 +Route110_TrickHousePuzzle8_MapScripts:: .byte 0 -Route110_TrickHousePuzzle8_EventScript_Scroll:: @ 826E802 +Route110_TrickHousePuzzle8_EventScript_Scroll:: lockall compare VAR_TRICK_HOUSE_PUZZLE_8_STATE, 0 goto_if_eq Route110_TrickHousePuzzle8_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end -Route110_TrickHousePuzzle8_EventScript_FoundScroll:: @ 826E814 +Route110_TrickHousePuzzle8_EventScript_FoundScroll:: setvar VAR_TRICK_HOUSE_PUZZLE_8_STATE, 1 goto Route110_TrickHousePuzzle_EventScript_FoundScroll end -Route110_TrickHousePuzzle8_EventScript_Vincent:: @ 826E81F +Route110_TrickHousePuzzle8_EventScript_Vincent:: trainerbattle_single TRAINER_VINCENT, Route110_TrickHousePuzzle8_Text_VincentIntro, Route110_TrickHousePuzzle8_Text_VincentDefeat msgbox Route110_TrickHousePuzzle8_Text_VincentPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle8_EventScript_Keira:: @ 826E836 +Route110_TrickHousePuzzle8_EventScript_Keira:: trainerbattle_single TRAINER_KEIRA, Route110_TrickHousePuzzle8_Text_KeiraIntro, Route110_TrickHousePuzzle8_Text_KeiraDefeat msgbox Route110_TrickHousePuzzle8_Text_KeiraPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle8_EventScript_Leroy:: @ 826E84D +Route110_TrickHousePuzzle8_EventScript_Leroy:: trainerbattle_single TRAINER_LEROY, Route110_TrickHousePuzzle8_Text_LeroyIntro, Route110_TrickHousePuzzle8_Text_LeroyDefeat msgbox Route110_TrickHousePuzzle8_Text_LeroyPostBattle, MSGBOX_AUTOCLOSE end -Route110_TrickHousePuzzle8_EventScript_WroteSecretCodeLockOpened:: @ 826E864 +Route110_TrickHousePuzzle8_EventScript_WroteSecretCodeLockOpened:: .string "{PLAYER} wrote down the secret code\n" .string "on the door.\p" .string "“TRICK MASTER I love.”\n" .string "… … … … … … … …\p" .string "The lock clicked open!$" -Route110_TrickHousePuzzle8_Text_VincentIntro: @ 826E8CD +Route110_TrickHousePuzzle8_Text_VincentIntro: .string "Not many TRAINERS have made it\n" .string "this far.$" -Route110_TrickHousePuzzle8_Text_VincentDefeat: @ 826E8F6 +Route110_TrickHousePuzzle8_Text_VincentDefeat: .string "That must mean you're tough, too…$" -Route110_TrickHousePuzzle8_Text_VincentPostBattle: @ 826E918 +Route110_TrickHousePuzzle8_Text_VincentPostBattle: .string "You've beaten the POKéMON LEAGUE\n" .string "CHAMPION? That's too much!$" -Route110_TrickHousePuzzle8_Text_KeiraIntro: @ 826E954 +Route110_TrickHousePuzzle8_Text_KeiraIntro: .string "Consider yourself lucky to be\n" .string "battling me!$" -Route110_TrickHousePuzzle8_Text_KeiraDefeat: @ 826E97F +Route110_TrickHousePuzzle8_Text_KeiraDefeat: .string "This isn't right!\n" .string "I can't lose!$" -Route110_TrickHousePuzzle8_Text_KeiraPostBattle: @ 826E99F +Route110_TrickHousePuzzle8_Text_KeiraPostBattle: .string "It's a miracle that you beat me.\n" .string "You can brag about it.$" -Route110_TrickHousePuzzle8_Text_LeroyIntro: @ 826E9D7 +Route110_TrickHousePuzzle8_Text_LeroyIntro: .string "You've been slugging through the TRICK\n" .string "HOUSE challenge, too.$" -Route110_TrickHousePuzzle8_Text_LeroyDefeat: @ 826EA14 +Route110_TrickHousePuzzle8_Text_LeroyDefeat: .string "I see…\n" .string "You possess an extraordinary style.$" -Route110_TrickHousePuzzle8_Text_LeroyPostBattle: @ 826EA3F +Route110_TrickHousePuzzle8_Text_LeroyPostBattle: .string "Seeing someone like you should please\n" .string "the TRICK MASTER.$" diff --git a/data/maps/Route111/map.json b/data/maps/Route111/map.json index 014ac084cc..4621591e43 100644 --- a/data/maps/Route111/map.json +++ b/data/maps/Route111/map.json @@ -104,7 +104,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "19", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_RAZZ_1", "script": "BerryTreeScript", "flag": "0" }, @@ -117,7 +117,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "20", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_RAZZ_2", "script": "BerryTreeScript", "flag": "0" }, @@ -273,7 +273,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "80", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_ORAN_1", "script": "BerryTreeScript", "flag": "0" }, @@ -286,7 +286,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "81", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_ORAN_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc index 322c9a2b72..95f262dd24 100644 --- a/data/maps/Route111/scripts.inc +++ b/data/maps/Route111/scripts.inc @@ -2,29 +2,30 @@ .set LOCALID_VICTORIA, 2 .set LOCALID_VIVI, 3 .set LOCALID_VICKY, 4 -.set LOCALID_PLAYER_FALLING, 45 .set LOCALID_ROCK_SMASH_MAN, 46 -Route111_MapScripts:: @ 81F0CA7 +@ Note: LOCALID_ROUTE111_PLAYER_FALLING is a local id for this map used elsewhere. It's defined in event_objects.h + +Route111_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, Route111_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, Route111_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, Route111_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, Route111_OnFrame .byte 0 -Route111_OnLoad: @ 81F0CBC +Route111_OnLoad: call_if_unset FLAG_REGI_DOORS_OPENED, Route111_EventScript_CloseDesertRuins compare VAR_MIRAGE_TOWER_STATE, 1 call_if_eq Route111_EventScript_ShowTemporaryMirageTower end -Route111_EventScript_CloseDesertRuins:: @ 81F0CD1 +Route111_EventScript_CloseDesertRuins:: setmetatile 29, 86, METATILE_General_RockWall_RockBase, 1 setmetatile 29, 87, METATILE_General_RockWall_SandBase, 1 return @ Show Mirage Tower just prior to disintegration. Mirage Tower is otherwise handled by the map layout -Route111_EventScript_ShowTemporaryMirageTower:: @ 81F0CE4 +Route111_EventScript_ShowTemporaryMirageTower:: setmetatile 18, 53, METATILE_Mauville_MirageTower_Tile0, 0 setmetatile 19, 53, METATILE_Mauville_MirageTower_Tile1, 0 setmetatile 20, 53, METATILE_Mauville_MirageTower_Tile2, 0 @@ -45,7 +46,7 @@ Route111_EventScript_ShowTemporaryMirageTower:: @ 81F0CE4 setmetatile 20, 58, METATILE_Mauville_MirageTower_Tile11, 0 return -Route111_OnTransition: @ 81F0D87 +Route111_OnTransition: setvar VAR_TRAINER_HILL_IS_ACTIVE, 0 special SetMirageTowerVisibility call_if_unset FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_SetLayoutNoMirageTower @@ -58,7 +59,7 @@ Route111_OnTransition: @ 81F0D87 goto_if_not_defeated TRAINER_VICKY, Route111_EventScript_SetWinstratesNotDefeated end -Route111_EventScript_SetFallingPlayerGfx:: @ 81F0DC2 +Route111_EventScript_SetFallingPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq Route111_EventScript_SetFallingPlayerGfxMale @@ -66,15 +67,15 @@ Route111_EventScript_SetFallingPlayerGfx:: @ 81F0DC2 goto_if_eq Route111_EventScript_SetFallingPlayerGfxFemale return -Route111_EventScript_SetFallingPlayerGfxMale:: @ 81F0DDA +Route111_EventScript_SetFallingPlayerGfxMale:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -Route111_EventScript_SetFallingPlayerGfxFemale:: @ 81F0DE0 +Route111_EventScript_SetFallingPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -Route111_EventScript_CheckSetSandstorm:: @ 81F0DE6 +Route111_EventScript_CheckSetSandstorm:: getplayerxy VAR_TEMP_0, VAR_TEMP_1 compare VAR_TEMP_1, 34 goto_if_lt Route111_EventScript_EndCheckSetSandstorm @@ -86,12 +87,12 @@ Route111_EventScript_CheckSetSandstorm:: @ 81F0DE6 goto_if_gt Route111_EventScript_EndCheckSetSandstorm compare VAR_TEMP_0, 8 goto_if_lt Route111_EventScript_EndCheckSetSandstorm -Route111_EventScript_SetSandstorm:: @ 81F0E22 +Route111_EventScript_SetSandstorm:: setweather WEATHER_SANDSTORM -Route111_EventScript_EndCheckSetSandstorm:: @ 81F0E25 +Route111_EventScript_EndCheckSetSandstorm:: return -Route111_EventScript_SetWinstratesNotDefeated:: @ 81F0E26 +Route111_EventScript_SetWinstratesNotDefeated:: clearflag FLAG_HIDE_ROUTE_111_VICTOR_WINSTRATE setflag FLAG_HIDE_ROUTE_111_VICTORIA_WINSTRATE setflag FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE @@ -101,37 +102,37 @@ Route111_EventScript_SetWinstratesNotDefeated:: @ 81F0E26 cleartrainerflag TRAINER_VIVI end -Route111_EventScript_SetLayoutNoMirageTower:: @ 81F0E3C +Route111_EventScript_SetLayoutNoMirageTower:: setmaplayoutindex LAYOUT_ROUTE111_NO_MIRAGE_TOWER return -Route111_EventScript_SetMirageTowerGone:: @ 81F0E40 +Route111_EventScript_SetMirageTowerGone:: setvar VAR_MIRAGE_TOWER_STATE, 3 return -Route111_OnWarp: @ 81F0E46 +Route111_OnWarp: map_script_2 VAR_MIRAGE_TOWER_STATE, 1, Route111_EventScript_HidePlayerForMirageTower .2byte 0 -Route111_EventScript_HidePlayerForMirageTower:: @ 81F0E50 +Route111_EventScript_HidePlayerForMirageTower:: hideobjectat OBJ_EVENT_ID_PLAYER, MAP_LITTLEROOT_TOWN end -Route111_OnFrame: @ 81F0E56 +Route111_OnFrame: map_script_2 VAR_MIRAGE_TOWER_STATE, 1, Route111_EventScript_MirageTowerDisappear .2byte 0 -Route111_EventScript_MirageTowerDisappear:: @ 81F0E60 +Route111_EventScript_MirageTowerDisappear:: lockall special StartMirageTowerShake waitstate delay 24 playse SE_FALL - addobject LOCALID_PLAYER_FALLING + addobject LOCALID_ROUTE111_PLAYER_FALLING special StartPlayerDescendMirageTower waitstate showobjectat OBJ_EVENT_ID_PLAYER, MAP_LITTLEROOT_TOWN - removeobject LOCALID_PLAYER_FALLING + removeobject LOCALID_ROUTE111_PLAYER_FALLING delay 16 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH delay 16 @@ -146,13 +147,13 @@ Route111_EventScript_MirageTowerDisappear:: @ 81F0E60 releaseall end -Route111_EventScript_RootFossilDisappeared:: @ 81F0EA7 +Route111_EventScript_RootFossilDisappeared:: msgbox Route111_Text_RootFossilDisappeared, MSGBOX_DEFAULT releaseall end @ Unused -Route111_Movement_PlayerFall:: @ 81F0EB1 +Route111_Movement_PlayerFall:: store_lock_anim walk_fast_down walk_fast_down @@ -162,7 +163,7 @@ Route111_Movement_PlayerFall:: @ 81F0EB1 walk_fast_down step_end -Route111_EventScript_Girl:: @ 81F0EB9 +Route111_EventScript_Girl:: lock faceplayer dotimebasedevents @@ -177,38 +178,38 @@ Route111_EventScript_Girl:: @ 81F0EB9 release end -Route111_EventScript_ReceivedBerry:: @ 81F0EF4 +Route111_EventScript_ReceivedBerry:: msgbox Route111_Text_WhatColorBerriesToLookForToday, MSGBOX_DEFAULT release end @ Unused -Route111_EventScript_ViciousSandstormTriggerUp:: @ 81F0EFE +Route111_EventScript_ViciousSandstormTriggerUp:: lockall setvar VAR_0x8004, 0 goto Route111_EventScript_ViciousSandstormTrigger end -Route111_EventScript_ViciousSandstormTriggerDown:: @ 81F0F0A +Route111_EventScript_ViciousSandstormTriggerDown:: lockall setvar VAR_0x8004, 1 goto Route111_EventScript_ViciousSandstormTrigger end -Route111_EventScript_ViciousSandstormTriggerLeft:: @ 81F0F16 +Route111_EventScript_ViciousSandstormTriggerLeft:: lockall setvar VAR_0x8004, 2 goto Route111_EventScript_ViciousSandstormTrigger end @ Unused -Route111_EventScript_ViciousSandstormTriggerRight:: @ 81F0F22 +Route111_EventScript_ViciousSandstormTriggerRight:: lockall setvar VAR_0x8004, 3 goto Route111_EventScript_ViciousSandstormTrigger end -Route111_EventScript_ViciousSandstormTrigger:: @ 81F0F2E +Route111_EventScript_ViciousSandstormTrigger:: checkitem ITEM_GO_GOGGLES, 1 compare VAR_RESULT, FALSE goto_if_eq Route111_EventScript_PreventRouteAccess @@ -216,7 +217,7 @@ Route111_EventScript_ViciousSandstormTrigger:: @ 81F0F2E releaseall end -Route111_EventScript_PreventRouteAccess:: @ 81F0F45 +Route111_EventScript_PreventRouteAccess:: msgbox gText_SandstormIsVicious, MSGBOX_DEFAULT closemessage compare VAR_0x8004, 0 @@ -230,56 +231,56 @@ Route111_EventScript_PreventRouteAccess:: @ 81F0F45 releaseall end -Route111_EventScript_PushUpFromRoute:: @ 81F0F7C +Route111_EventScript_PushUpFromRoute:: applymovement OBJ_EVENT_ID_PLAYER, Route111_Movement_PushUpFromRoute waitmovement 0 return -Route111_EventScript_PushDownFromRoute:: @ 81F0F87 +Route111_EventScript_PushDownFromRoute:: applymovement OBJ_EVENT_ID_PLAYER, Route111_Movement_PushDownFromRoute waitmovement 0 return -Route111_EventScript_PushLeftFromRoute:: @ 81F0F92 +Route111_EventScript_PushLeftFromRoute:: applymovement OBJ_EVENT_ID_PLAYER, Route111_Movement_PushLeftFromRoute waitmovement 0 return -Route111_EventScript_PushRightFromRoute:: @ 81F0F9D +Route111_EventScript_PushRightFromRoute:: applymovement OBJ_EVENT_ID_PLAYER, Route111_Movement_PushRightFromRoute waitmovement 0 return -Route111_Movement_PushUpFromRoute: @ 81F0FA8 +Route111_Movement_PushUpFromRoute: walk_up step_end -Route111_Movement_PushDownFromRoute: @ 81F0FAA +Route111_Movement_PushDownFromRoute: walk_down step_end -Route111_Movement_PushLeftFromRoute: @ 81F0FAC +Route111_Movement_PushLeftFromRoute: walk_left step_end -Route111_Movement_PushRightFromRoute: @ 81F0FAE +Route111_Movement_PushRightFromRoute: walk_right step_end -Route111_EventScript_SunTrigger:: @ 81F0FB0 +Route111_EventScript_SunTrigger:: setweather WEATHER_SUNNY fadenewbgm MUS_ROUTE110 doweather setvar VAR_TEMP_3, 0 end -Route111_EventScript_SandstormTrigger:: @ 81F0FBD +Route111_EventScript_SandstormTrigger:: setweather WEATHER_SANDSTORM fadenewbgm MUS_ROUTE111 doweather end -Route111_EventScript_Victor:: @ 81F0FC5 +Route111_EventScript_Victor:: lock faceplayer setflag FLAG_LANDMARK_WINSTRATE_FAMILY @@ -290,7 +291,7 @@ Route111_EventScript_Victor:: @ 81F0FC5 release end -Route111_EventScript_BattleWinstrates:: @ 81F0FE7 +Route111_EventScript_BattleWinstrates:: msgbox Route111_Text_VictorIntro, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_VICTOR, Route111_Text_VictorDefeat applymovement LOCALID_VICTOR, Common_Movement_WalkInPlaceFastestUp @@ -359,64 +360,64 @@ Route111_EventScript_BattleWinstrates:: @ 81F0FE7 release end -Route111_EventScript_OpenWinstrateDoor:: @ 81F113C +Route111_EventScript_OpenWinstrateDoor:: opendoor 13, 113 waitdooranim return -Route111_EventScript_CloseWinstrateDoor:: @ 81F1143 +Route111_EventScript_CloseWinstrateDoor:: closedoor 13, 113 waitdooranim return -Route111_Movement_WinstrateEnterHouse: @ 81F114A +Route111_Movement_WinstrateEnterHouse: walk_in_place_fastest_up walk_up step_end -Route111_Movement_WinstrateExitHouse: @ 81F114D +Route111_Movement_WinstrateExitHouse: walk_down step_end -Route111_Movement_WaitForNextWinstrate: @ 81F114F +Route111_Movement_WaitForNextWinstrate: delay_16 delay_16 delay_16 step_end -Route111_EventScript_RouteSignMauville:: @ 81F1153 +Route111_EventScript_RouteSignMauville:: msgbox Route111_Text_RouteSignMauville, MSGBOX_SIGN end -Route111_EventScript_WinstrateHouseSign:: @ 81F115C +Route111_EventScript_WinstrateHouseSign:: msgbox Route111_Text_WinstrateHouseSign, MSGBOX_SIGN end -Route111_EventScript_RouteSign112:: @ 81F1165 +Route111_EventScript_RouteSign112:: msgbox Route111_Text_RouteSign112, MSGBOX_SIGN end -Route111_EventScript_RouteSign113:: @ 81F116E +Route111_EventScript_RouteSign113:: msgbox Route111_Text_RouteSign113, MSGBOX_SIGN end -Route111_EventScript_OldLadysRestStopSign:: @ 81F1177 +Route111_EventScript_OldLadysRestStopSign:: msgbox Route111_Text_OldLadysRestStopSign, MSGBOX_SIGN end -Route111_EventScript_TrainerTipsSpAtkSpDef:: @ 81F1180 +Route111_EventScript_TrainerTipsSpAtkSpDef:: msgbox Route111_Text_TrainerTipsSpAtkSpDef, MSGBOX_SIGN end -Route111_EventScript_Man1:: @ 81F1189 +Route111_EventScript_Man1:: msgbox Route111_Text_ToughToKeepWinningUpTheRanks, MSGBOX_NPC end -Route111_EventScript_Man2:: @ 81F1192 +Route111_EventScript_Man2:: msgbox Route111_Text_WinstrateFamilyDestroyedMe, MSGBOX_NPC end -Route111_EventScript_Hiker:: @ 81F119B +Route111_EventScript_Hiker:: lock faceplayer compare VAR_MIRAGE_TOWER_STATE, 3 @@ -428,22 +429,22 @@ Route111_EventScript_Hiker:: @ 81F119B release end -Route111_EventScript_HikerMirageTowerGone:: @ 81F11C6 +Route111_EventScript_HikerMirageTowerGone:: msgbox Route111_Text_MirageTowerHasntBeenSeenSince, MSGBOX_DEFAULT release end -Route111_EventScript_HikerMirageTowerDisintegrated:: @ 81F11D0 +Route111_EventScript_HikerMirageTowerDisintegrated:: msgbox Route111_Text_ThatWasShockingSandRainedDown, MSGBOX_DEFAULT release end -Route111_EventScript_HikerMirageTowerVisible:: @ 81F11DA +Route111_EventScript_HikerMirageTowerVisible:: msgbox Route111_Text_MirageTowerClearlyVisible, MSGBOX_DEFAULT release end -Route111_EventScript_RockSmashTipFatMan:: @ 81F11E4 +Route111_EventScript_RockSmashTipFatMan:: lockall applymovement LOCALID_ROCK_SMASH_MAN, Common_Movement_FacePlayer waitmovement 0 @@ -454,27 +455,27 @@ Route111_EventScript_RockSmashTipFatMan:: @ 81F11E4 releaseall end -Route111_EventScript_Drew:: @ 81F1204 +Route111_EventScript_Drew:: trainerbattle_single TRAINER_DREW, Route111_Text_DrewIntro, Route111_Text_DrewDefeat msgbox Route111_Text_DrewPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Heidi:: @ 81F121B +Route111_EventScript_Heidi:: trainerbattle_single TRAINER_HEIDI, Route111_Text_HeidiIntro, Route111_Text_HeidiDefeat msgbox Route111_Text_HeidiPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Beau:: @ 81F1232 +Route111_EventScript_Beau:: trainerbattle_single TRAINER_BEAU, Route111_Text_BeauIntro, Route111_Text_BeauDefeat msgbox Route111_Text_BeauPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Becky:: @ 81F1249 +Route111_EventScript_Becky:: trainerbattle_single TRAINER_BECKY, Route111_Text_BeckyIntro, Route111_Text_BeckyDefeat msgbox Route111_Text_BeckyPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Dusty:: @ 81F1260 +Route111_EventScript_Dusty:: trainerbattle_single TRAINER_DUSTY_1, Route111_Text_DustyIntro, Route111_Text_DustyDefeat, Route111_EventScript_RegisterDusty specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -483,7 +484,7 @@ Route111_EventScript_Dusty:: @ 81F1260 release end -Route111_EventScript_RegisterDusty:: @ 81F128C +Route111_EventScript_RegisterDusty:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route111_Text_DustyRegister, MSGBOX_DEFAULT @@ -491,27 +492,27 @@ Route111_EventScript_RegisterDusty:: @ 81F128C release end -Route111_EventScript_RematchDusty:: @ 81F12AB +Route111_EventScript_RematchDusty:: trainerbattle_rematch TRAINER_DUSTY_1, Route111_Text_DustyRematchIntro, Route111_Text_DustyRematchDefeat msgbox Route111_Text_DustyPostRematch, MSGBOX_AUTOCLOSE end -Route111_EventScript_Travis:: @ 81F12C2 +Route111_EventScript_Travis:: trainerbattle_single TRAINER_TRAVIS, Route111_Text_TravisIntro, Route111_Text_TravisDefeat msgbox Route111_Text_TravisPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Irene:: @ 81F12D9 +Route111_EventScript_Irene:: trainerbattle_single TRAINER_IRENE, Route111_Text_IreneIntro, Route111_Text_IreneDefeat msgbox Route111_Text_IrenePostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Daisuke:: @ 81F12F0 +Route111_EventScript_Daisuke:: trainerbattle_single TRAINER_DAISUKE, Route111_Text_DaisukeIntro, Route111_Text_DaisukeDefeat msgbox Route111_Text_DaisukePostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Wilton:: @ 81F1307 +Route111_EventScript_Wilton:: trainerbattle_single TRAINER_WILTON_1, Route111_Text_WiltonIntro, Route111_Text_WiltonDefeat, Route111_EventScript_RegisterWilton specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -520,7 +521,7 @@ Route111_EventScript_Wilton:: @ 81F1307 release end -Route111_EventScript_RegisterWilton:: @ 81F1333 +Route111_EventScript_RegisterWilton:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route111_Text_WiltonRegister, MSGBOX_DEFAULT @@ -528,12 +529,12 @@ Route111_EventScript_RegisterWilton:: @ 81F1333 release end -Route111_EventScript_RematchWilton:: @ 81F1352 +Route111_EventScript_RematchWilton:: trainerbattle_rematch TRAINER_WILTON_1, Route111_Text_WiltonRematchIntro, Route111_Text_WiltonRematchDefeat msgbox Route111_Text_WiltonPostRematch, MSGBOX_AUTOCLOSE end -Route111_EventScript_Brooke:: @ 81F1369 +Route111_EventScript_Brooke:: trainerbattle_single TRAINER_BROOKE_1, Route111_Text_BrookeIntro, Route111_Text_BrookeDefeat, Route111_EventScript_RegisterBrooke specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -542,7 +543,7 @@ Route111_EventScript_Brooke:: @ 81F1369 release end -Route111_EventScript_RegisterBrooke:: @ 81F1395 +Route111_EventScript_RegisterBrooke:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route111_Text_BrookeRegister, MSGBOX_DEFAULT @@ -550,112 +551,112 @@ Route111_EventScript_RegisterBrooke:: @ 81F1395 release end -Route111_EventScript_RematchBrooke:: @ 81F13B4 +Route111_EventScript_RematchBrooke:: trainerbattle_rematch TRAINER_BROOKE_1, Route111_Text_BrookeRematchIntro, Route111_Text_BrookeRematchDefeat msgbox Route111_Text_BrookePostRematch, MSGBOX_AUTOCLOSE end -Route111_EventScript_Hayden:: @ 81F13CB +Route111_EventScript_Hayden:: trainerbattle_single TRAINER_HAYDEN, Route111_Text_HaydenIntro, Route111_Text_HaydenDefeat msgbox Route111_Text_HaydenPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Bianca:: @ 81F13E2 +Route111_EventScript_Bianca:: trainerbattle_single TRAINER_BIANCA, Route111_Text_BiancaIntro, Route111_Text_BiancaDefeat msgbox Route111_Text_BiancaPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Tyron:: @ 81F13F9 +Route111_EventScript_Tyron:: trainerbattle_single TRAINER_TYRON, Route111_Text_TyronIntro, Route111_Text_TyronDefeat msgbox Route111_Text_TyronPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Celina:: @ 81F1410 +Route111_EventScript_Celina:: trainerbattle_single TRAINER_CELINA, Route111_Text_CelinaIntro, Route111_Text_CelinaDefeat msgbox Route111_Text_CelinaPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Celia:: @ 81F1427 +Route111_EventScript_Celia:: trainerbattle_single TRAINER_CELIA, Route111_Text_CeliaIntro, Route111_Text_CeliaDefeat msgbox Route111_Text_CeliaPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Bryan:: @ 81F143E +Route111_EventScript_Bryan:: trainerbattle_single TRAINER_BRYAN, Route111_Text_BryanIntro, Route111_Text_BryanDefeat msgbox Route111_Text_BryanPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_Branden:: @ 81F1455 +Route111_EventScript_Branden:: trainerbattle_single TRAINER_BRANDEN, Route111_Text_BrandenIntro, Route111_Text_BrandenDefeat msgbox Route111_Text_BrandenPostBattle, MSGBOX_AUTOCLOSE end -Route111_EventScript_TrainerHillSign:: @ 81F146C +Route111_EventScript_TrainerHillSign:: msgbox Route111_Text_TrainerHillSign, MSGBOX_SIGN end -Route111_Text_BattleOurFamily: @ 81F1475 +Route111_Text_BattleOurFamily: .string "Hello! I take it you're a traveler.\p" .string "How's this? What do you say to taking\n" .string "on our family of four in a series of\l" .string "POKéMON battles?$" -Route111_Text_IsThatSo: @ 81F14F5 +Route111_Text_IsThatSo: .string "Is that so?\n" .string "Drop in, if you change your mind!$" -Route111_Text_VictorIntro: @ 81F1523 +Route111_Text_VictorIntro: .string "That's the spirit! I like you!$" -Route111_Text_VictorDefeat: @ 81F1542 +Route111_Text_VictorDefeat: .string "Aiyah!\n" .string "You're a lot tougher than I expected!$" -Route111_Text_VictorPostBattle: @ 81F156F +Route111_Text_VictorPostBattle: .string "Hey, all!\n" .string "I've found a pretty strong TRAINER!$" -Route111_Text_VictoriaIntro: @ 81F159D +Route111_Text_VictoriaIntro: .string "Oh, my goodness! Aren't you young?\p" .string "You must be quite the TRAINER to beat\n" .string "my husband, though.\p" .string "It's my turn to battle now!$" -Route111_Text_VictoriaDefeat: @ 81F1616 +Route111_Text_VictoriaDefeat: .string "Oh, gosh!\n" .string "I can't get over how strong you are!$" -Route111_Text_VictoriaPostBattle: @ 81F1645 +Route111_Text_VictoriaPostBattle: .string "There's a strong TRAINER here!\n" .string "This one's really strong!$" -Route111_Text_ViviIntro: @ 81F167E +Route111_Text_ViviIntro: .string "You're stronger than Mommy? Wow!\p" .string "But I'm strong, too!\n" .string "Really! Honestly!$" -Route111_Text_ViviDefeat: @ 81F16C6 +Route111_Text_ViviDefeat: .string "Huh? Did I just lose?$" -Route111_Text_ViviPostBattle: @ 81F16DC +Route111_Text_ViviPostBattle: .string "This stinks…\p" .string "…Snivel… Grandma!$" -Route111_Text_VickyIntro: @ 81F16FB +Route111_Text_VickyIntro: .string "How dare you make my granddaughter\n" .string "cry!\p" .string "For that, I'm going to smack you!\n" .string "Prepare to lose!$" -Route111_Text_VickyDefeat: @ 81F1756 +Route111_Text_VickyDefeat: .string "Kwah! You are strong…\n" .string "My granddaughter was right…$" -Route111_Text_VickyPostBattle: @ 81F1788 +Route111_Text_VickyPostBattle: .string "If you're not in any hurry,\n" .string "visit with us awhile.$" -Route111_Text_ToughToKeepWinningUpTheRanks: @ 81F17BA +Route111_Text_ToughToKeepWinningUpTheRanks: .string "If you don't raise your POKéMON some\n" .string "more, it could be tough to keep winning\l" .string "up through the ranks.\p" @@ -663,32 +664,32 @@ Route111_Text_ToughToKeepWinningUpTheRanks: @ 81F17BA .string "ELITE FOUR are far stronger than\l" .string "any GYM LEADER.$" -Route111_Text_WinstrateFamilyDestroyedMe: @ 81F186E +Route111_Text_WinstrateFamilyDestroyedMe: .string "I challenged the WINSTRATE family,\n" .string "but four matches in a row is tough\l" .string "going… They destroyed me.$" -Route111_Text_RouteSignMauville: @ 81F18CE +Route111_Text_RouteSignMauville: .string "ROUTE 111\n" .string "{DOWN_ARROW} MAUVILLE CITY$" -Route111_Text_WinstrateHouseSign: @ 81F18E8 +Route111_Text_WinstrateHouseSign: .string "“Our family's hearts beat as one!”\n" .string "THE WINSTRATE'S HOUSE$" -Route111_Text_RouteSign112: @ 81F1921 +Route111_Text_RouteSign112: .string "ROUTE 111\n" .string "{LEFT_ARROW} ROUTE 112$" -Route111_Text_RouteSign113: @ 81F1937 +Route111_Text_RouteSign113: .string "ROUTE 111\n" .string "{LEFT_ARROW} ROUTE 113$" -Route111_Text_OldLadysRestStopSign: @ 81F194D +Route111_Text_OldLadysRestStopSign: .string "OLD LADY'S REST STOP\n" .string "“Come in and rest your tired bones.”$" -Route111_Text_TrainerTipsSpAtkSpDef: @ 81F1987 +Route111_Text_TrainerTipsSpAtkSpDef: .string "TRAINER TIPS\p" .string "One of the indicators of a POKéMON's\n" .string "powerfulness is SP. ATK. It stands for\l" @@ -696,14 +697,14 @@ Route111_Text_TrainerTipsSpAtkSpDef: @ 81F1987 .string "Likewise, SP. DEF stands for “SPECIAL\n" .string "DEFENSE.”$" -Route111_Text_ShouldBeMirageTowerAroundHere: @ 81F1A22 +Route111_Text_ShouldBeMirageTowerAroundHere: .string "There should be a tower made of sand\n" .string "around here somewhere.\p" .string "But for some reason, it can be seen\n" .string "sometimes, and sometimes not.\p" .string "That's why I call it the MIRAGE TOWER.$" -Route111_Text_MirageTowerClearlyVisible: @ 81F1AC7 +Route111_Text_MirageTowerClearlyVisible: .string "I see it!\n" .string "The tower of sand!\p" .string "The sand tower they called a mirage\n" @@ -713,7 +714,7 @@ Route111_Text_MirageTowerClearlyVisible: @ 81F1AC7 .string "I want to go inside it, but I can't\n" .string "get my courage up for it…$" -Route111_Text_ThatWasShockingSandRainedDown: @ 81F1B92 +Route111_Text_ThatWasShockingSandRainedDown: .string "Whoa…\n" .string "That was shocking.\p" .string "Sand rained down in chunks all of\n" @@ -721,21 +722,21 @@ Route111_Text_ThatWasShockingSandRainedDown: @ 81F1B92 .string "What was it like inside?\n" .string "Were there sandy ghosts and such?$" -Route111_Text_MirageTowerHasntBeenSeenSince: @ 81F1C12 +Route111_Text_MirageTowerHasntBeenSeenSince: .string "Since I spoke to you, the tower of sand\n" .string "hasn't been seen.\p" .string "Perhaps it really was\n" .string "the MIRAGE TOWER…$" -Route111_Text_ClawFossilDisappeared: @ 81F1C74 +Route111_Text_ClawFossilDisappeared: .string "The CLAW FOSSIL disappeared into\n" .string "the sand…$" -Route111_Text_RootFossilDisappeared: @ 81F1C9F +Route111_Text_RootFossilDisappeared: .string "The ROOT FOSSIL disappeared into\n" .string "the sand…$" -Route111_Text_MauvilleUncleToldMeToTakeRockSmash: @ 81F1CCA +Route111_Text_MauvilleUncleToldMeToTakeRockSmash: .string "Oh, no!\p" .string "My uncle in MAUVILLE told me to take\n" .string "ROCK SMASH with me if I was going to\l" @@ -743,7 +744,7 @@ Route111_Text_MauvilleUncleToldMeToTakeRockSmash: @ 81F1CCA .string "My uncle? He lives across from\n" .string "the bike shop in MAUVILLE.$" -Route111_Text_TrainerHillSign: @ 81F1D61 +Route111_Text_TrainerHillSign: .string "{RIGHT_ARROW} TRAINER HILL ENTRANCE\p" .string "“Scale the heights, you hot-blooded\n" .string "TRAINERS!”$" diff --git a/data/maps/Route111_OldLadysRestStop/scripts.inc b/data/maps/Route111_OldLadysRestStop/scripts.inc index 0df1e6b6e7..645ce4de41 100644 --- a/data/maps/Route111_OldLadysRestStop/scripts.inc +++ b/data/maps/Route111_OldLadysRestStop/scripts.inc @@ -1,12 +1,12 @@ -Route111_OldLadysRestStop_MapScripts:: @ 822A916 +Route111_OldLadysRestStop_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route111_OldLadysRestStop_OnTransition .byte 0 -Route111_OldLadysRestStop_OnTransition: @ 822A91C +Route111_OldLadysRestStop_OnTransition: setflag FLAG_LANDMARK_OLD_LADY_REST_SHOP end -Route111_OldLadysRestStop_EventScript_OldLady:: @ 822A920 +Route111_OldLadysRestStop_EventScript_OldLady:: lock faceplayer msgbox Route111_OldLadysRestStop_Text_RestUpHere, MSGBOX_YESNO @@ -16,7 +16,7 @@ Route111_OldLadysRestStop_EventScript_OldLady:: @ 822A920 goto_if_eq Route111_OldLadysRestStop_EventScript_DeclineRest end -Route111_OldLadysRestStop_EventScript_Rest:: @ 822A941 +Route111_OldLadysRestStop_EventScript_Rest:: msgbox Route111_OldLadysRestStop_Text_TakeYourTimeRestUp, MSGBOX_DEFAULT closemessage call Common_EventScript_OutOfCenterPartyHeal @@ -27,28 +27,28 @@ Route111_OldLadysRestStop_EventScript_Rest:: @ 822A941 goto_if_eq Route111_OldLadysRestStop_EventScript_DeclineRest end -Route111_OldLadysRestStop_EventScript_DeclineRest:: @ 822A96E +Route111_OldLadysRestStop_EventScript_DeclineRest:: msgbox Route111_OldLadysRestStop_Text_DontNeedToBeShy, MSGBOX_DEFAULT release end -Route111_OldLadysRestStop_Text_RestUpHere: @ 822A978 +Route111_OldLadysRestStop_Text_RestUpHere: .string "Oh, dear, dear.\n" .string "Aren't your POKéMON exhausted?\p" .string "If you'd like, rest up here.\n" .string "That's a fine idea! You should do that.$" -Route111_OldLadysRestStop_Text_TakeYourTimeRestUp: @ 822A9EC +Route111_OldLadysRestStop_Text_TakeYourTimeRestUp: .string "That's right.\n" .string "Take your time and rest up!$" -Route111_OldLadysRestStop_Text_StillTiredTakeAnotherRest: @ 822AA16 +Route111_OldLadysRestStop_Text_StillTiredTakeAnotherRest: .string "Oh, dear, dear.\n" .string "Are your POKéMON still tired?\p" .string "You should take another rest here.\n" .string "That's a fine idea. You should do that.$" -Route111_OldLadysRestStop_Text_DontNeedToBeShy: @ 822AA8F +Route111_OldLadysRestStop_Text_DontNeedToBeShy: .string "Is that so?\n" .string "You don't need to be shy about it.$" diff --git a/data/maps/Route111_WinstrateFamilysHouse/scripts.inc b/data/maps/Route111_WinstrateFamilysHouse/scripts.inc index 28bf17dbfb..eedd83f068 100644 --- a/data/maps/Route111_WinstrateFamilysHouse/scripts.inc +++ b/data/maps/Route111_WinstrateFamilysHouse/scripts.inc @@ -3,10 +3,10 @@ .set LOCALID_VICTORIA, 3 .set LOCALID_VICKY, 4 -Route111_WinstrateFamilysHouse_MapScripts:: @ 822A48C +Route111_WinstrateFamilysHouse_MapScripts:: .byte 0 -Route111_WinstrateFamilysHouse_EventScript_Victor:: @ 822A48D +Route111_WinstrateFamilysHouse_EventScript_Victor:: lock faceplayer setvar VAR_0x8008, LOCALID_VICTOR @@ -14,7 +14,7 @@ Route111_WinstrateFamilysHouse_EventScript_Victor:: @ 822A48D goto Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection end -Route111_WinstrateFamilysHouse_EventScript_Victoria:: @ 822A4A2 +Route111_WinstrateFamilysHouse_EventScript_Victoria:: lock faceplayer setvar VAR_0x8008, LOCALID_VICTORIA @@ -27,12 +27,12 @@ Route111_WinstrateFamilysHouse_EventScript_Victoria:: @ 822A4A2 goto Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection end -Route111_WinstrateFamilysHouse_EventScript_ReceivedMachoBrace:: @ 822A4DA +Route111_WinstrateFamilysHouse_EventScript_ReceivedMachoBrace:: msgbox Route111_WinstrateFamilysHouse_Text_PassionateAboutBattles, MSGBOX_DEFAULT goto Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection end -Route111_WinstrateFamilysHouse_EventScript_Vivi:: @ 822A4E8 +Route111_WinstrateFamilysHouse_EventScript_Vivi:: lock faceplayer setvar VAR_0x8008, LOCALID_VIVI @@ -40,7 +40,7 @@ Route111_WinstrateFamilysHouse_EventScript_Vivi:: @ 822A4E8 goto Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection end -Route111_WinstrateFamilysHouse_EventScript_Vicky:: @ 822A4FD +Route111_WinstrateFamilysHouse_EventScript_Vicky:: lock faceplayer setvar VAR_0x8008, LOCALID_VICKY @@ -50,19 +50,19 @@ Route111_WinstrateFamilysHouse_EventScript_Vicky:: @ 822A4FD goto Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection end -Route111_WinstrateFamilysHouse_EventScript_AlreadySpokenTo:: @ 822A51E +Route111_WinstrateFamilysHouse_EventScript_AlreadySpokenTo:: msgbox Route111_WinstrateFamilysHouse_Text_GrandsonStrongShort, MSGBOX_DEFAULT goto Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection end -Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection:: @ 822A52C +Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection:: closemessage applymovement VAR_0x8008, Common_Movement_FaceOriginalDirection waitmovement 0 release end -Route111_WinstrateFamilysHouse_Text_MySonIsStrongerThanYou: @ 822A539 +Route111_WinstrateFamilysHouse_Text_MySonIsStrongerThanYou: .string "You're the first TRAINER I've seen who\n" .string "deploys POKéMON so masterfully.\p" .string "But, I should tell you--my son is\n" @@ -70,7 +70,7 @@ Route111_WinstrateFamilysHouse_Text_MySonIsStrongerThanYou: @ 822A539 .string "He even took the POKéMON LEAGUE\n" .string "challenge, I'll have you know.$" -Route111_WinstrateFamilysHouse_Text_LikeYouToHaveMachoBrace: @ 822A5F4 +Route111_WinstrateFamilysHouse_Text_LikeYouToHaveMachoBrace: .string "We use this MACHO BRACE to more\n" .string "effectively strengthen our POKéMON\l" .string "in training.\p" @@ -78,18 +78,18 @@ Route111_WinstrateFamilysHouse_Text_LikeYouToHaveMachoBrace: @ 822A5F4 .string "I don't know if you need it, but we\l" .string "would like you to have our MACHO BRACE.$" -Route111_WinstrateFamilysHouse_Text_PassionateAboutBattles: @ 822A6B4 +Route111_WinstrateFamilysHouse_Text_PassionateAboutBattles: .string "When it comes to POKéMON battles,\n" .string "we tend to be pretty passionate.$" -Route111_WinstrateFamilysHouse_Text_StrongerFamilyMembers: @ 822A6F7 +Route111_WinstrateFamilysHouse_Text_StrongerFamilyMembers: .string "Mommy is stronger than Daddy.\p" .string "I'm stronger than Mommy.\p" .string "And Grandma's stronger than me!\p" .string "But my big brother is even stronger\n" .string "than Grandma.$" -Route111_WinstrateFamilysHouse_Text_GrandsonStrong: @ 822A780 +Route111_WinstrateFamilysHouse_Text_GrandsonStrong: .string "There's no question that you're strong.\p" .string "But if you were to battle my grandson,\n" .string "you'd end up crying in frustration.\p" @@ -100,7 +100,7 @@ Route111_WinstrateFamilysHouse_Text_GrandsonStrong: @ 822A780 .string "Knowing my grandson, he could be the\n" .string "CHAMPION already!$" -Route111_WinstrateFamilysHouse_Text_GrandsonStrongShort: @ 822A89B +Route111_WinstrateFamilysHouse_Text_GrandsonStrongShort: .string "My grandson must be challenging the\n" .string "POKéMON LEAGUE CHAMPION by now.\p" .string "Knowing my grandson, he could be the\n" diff --git a/data/maps/Route112/map.json b/data/maps/Route112/map.json index d4d650857f..04b2e6d126 100644 --- a/data/maps/Route112/map.json +++ b/data/maps/Route112/map.json @@ -117,7 +117,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "24", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_RAWST_2", "script": "BerryTreeScript", "flag": "0" }, @@ -130,7 +130,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "23", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_PECHA_2", "script": "BerryTreeScript", "flag": "0" }, @@ -143,7 +143,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "22", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_PECHA_1", "script": "BerryTreeScript", "flag": "0" }, @@ -156,7 +156,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "21", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_RAWST_1", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route112/scripts.inc b/data/maps/Route112/scripts.inc index 67f776f676..4f9d60206b 100644 --- a/data/maps/Route112/scripts.inc +++ b/data/maps/Route112/scripts.inc @@ -1,16 +1,16 @@ .set LOCALID_GRUNT_1, 1 .set LOCALID_GRUNT_2, 6 -Route112_MapScripts:: @ 81F1DA8 +Route112_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route112_OnTransition .byte 0 -Route112_OnTransition: @ 81F1DAE +Route112_OnTransition: clearflag FLAG_FORCE_MIRAGE_TOWER_VISIBLE setvar VAR_JAGGED_PASS_ASH_WEATHER, 0 end -Route112_EventScript_MagmaGrunts:: @ 81F1DB7 +Route112_EventScript_MagmaGrunts:: lockall delay 40 applymovement LOCALID_GRUNT_1, Common_Movement_WalkInPlaceFastestRight @@ -47,28 +47,28 @@ Route112_EventScript_MagmaGrunts:: @ 81F1DB7 releaseall end -Route112_EventScript_MtChimneyCableCarSign:: @ 81F1E46 +Route112_EventScript_MtChimneyCableCarSign:: msgbox Route112_Text_MtChimneyCableCarSign, MSGBOX_SIGN end -Route112_EventScript_MtChimneySign:: @ 81F1E4F +Route112_EventScript_MtChimneySign:: msgbox Route112_Text_MtChimneySign, MSGBOX_SIGN end -Route112_EventScript_RouteSignLavaridge:: @ 81F1E58 +Route112_EventScript_RouteSignLavaridge:: msgbox Route112_Text_RouteSignLavaridge, MSGBOX_SIGN end -Route112_EventScript_Hiker:: @ 81F1E61 +Route112_EventScript_Hiker:: msgbox Route112_Text_NotEasyToGetBackToLavaridge, MSGBOX_NPC end -Route112_EventScript_Brice:: @ 81F1E6A +Route112_EventScript_Brice:: trainerbattle_single TRAINER_BRICE, Route112_Text_BriceIntro, Route112_Text_BriceDefeat msgbox Route112_Text_BricePostBattle, MSGBOX_AUTOCLOSE end -Route112_EventScript_Trent:: @ 81F1E81 +Route112_EventScript_Trent:: trainerbattle_single TRAINER_TRENT_1, Route112_Text_TrentIntro, Route112_Text_TrentDefeat, Route112_EventScript_RegisterTrent specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -77,7 +77,7 @@ Route112_EventScript_Trent:: @ 81F1E81 release end -Route112_EventScript_RegisterTrent:: @ 81F1EAD +Route112_EventScript_RegisterTrent:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route112_Text_TrentRegister, MSGBOX_DEFAULT @@ -85,62 +85,62 @@ Route112_EventScript_RegisterTrent:: @ 81F1EAD release end -Route112_EventScript_RematchTrent:: @ 81F1ECC +Route112_EventScript_RematchTrent:: trainerbattle_rematch TRAINER_TRENT_1, Route112_Text_TrentRematchIntro, Route112_Text_TrentRematchDefeat msgbox Route112_Text_TrentRematchPostBattle, MSGBOX_AUTOCLOSE end -Route112_EventScript_Larry:: @ 81F1EE3 +Route112_EventScript_Larry:: trainerbattle_single TRAINER_LARRY, Route112_Text_LarryIntro, Route112_Text_LarryDefeat msgbox Route112_Text_LarryPostBattle, MSGBOX_AUTOCLOSE end -Route112_EventScript_Carol:: @ 81F1EFA +Route112_EventScript_Carol:: trainerbattle_single TRAINER_CAROL, Route112_Text_CarolIntro, Route112_Text_CarolDefeat msgbox Route112_Text_CarolPostBattle, MSGBOX_AUTOCLOSE end -Route112_EventScript_Bryant:: @ 81F1F11 +Route112_EventScript_Bryant:: trainerbattle_single TRAINER_BRYANT, Route112_Text_BryantIntro, Route112_Text_BryantDefeat msgbox Route112_Text_BryantPostBattle, MSGBOX_AUTOCLOSE end -Route112_EventScript_Shayla:: @ 81F1F28 +Route112_EventScript_Shayla:: trainerbattle_single TRAINER_SHAYLA, Route112_Text_ShaylaIntro, Route112_Text_ShaylaDefeat msgbox Route112_Text_ShaylaPostBattle, MSGBOX_AUTOCLOSE end -Route112_Text_LeaderGoingToAwakenThing: @ 81F1F3F +Route112_Text_LeaderGoingToAwakenThing: .string "Hey, man, is our leader really going\n" .string "to awaken that thing?$" -Route112_Text_YeahWeNeedMeteorite: @ 81F1F7A +Route112_Text_YeahWeNeedMeteorite: .string "Sounds like it, yeah. But I heard\n" .string "we need a METEORITE to do it.$" -Route112_Text_OhThatsWhyCrewWentToFallarbor: @ 81F1FBA +Route112_Text_OhThatsWhyCrewWentToFallarbor: .string "Oh, I get it now. That's why the rest\n" .string "of the crew went out to FALLARBOR.$" -Route112_Text_CantLetAnyonePassUntilTheyreBack: @ 81F2003 +Route112_Text_CantLetAnyonePassUntilTheyreBack: .string "You got it. And until they come back,\n" .string "we're not to let anyone pass, right.$" -Route112_Text_NotEasyToGetBackToLavaridge: @ 81F204E +Route112_Text_NotEasyToGetBackToLavaridge: .string "Eh, I'd like to get to MAUVILLE, but if\n" .string "I went down these ledges, it'd be no\l" .string "easy matter to get back to LAVARIDGE.$" -Route112_Text_MtChimneyCableCarSign: @ 81F20C1 +Route112_Text_MtChimneyCableCarSign: .string "MT. CHIMNEY CABLE CAR\n" .string "“A short walk {UP_ARROW} way!”$" -Route112_Text_MtChimneySign: @ 81F20ED +Route112_Text_MtChimneySign: .string "MT. CHIMNEY\p" .string "“For LAVARIDGE TOWN or the summit,\n" .string "please take the CABLE CAR.”$" -Route112_Text_RouteSignLavaridge: @ 81F2138 +Route112_Text_RouteSignLavaridge: .string "ROUTE 112\n" .string "{LEFT_ARROW} LAVARIDGE TOWN$" diff --git a/data/maps/Route112_CableCarStation/scripts.inc b/data/maps/Route112_CableCarStation/scripts.inc index 6781b154c5..ebc5142ae2 100644 --- a/data/maps/Route112_CableCarStation/scripts.inc +++ b/data/maps/Route112_CableCarStation/scripts.inc @@ -1,26 +1,26 @@ .set LOCALID_ATTENDANT, 1 -Route112_CableCarStation_MapScripts:: @ 822AABE +Route112_CableCarStation_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route112_CableCarStation_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, Route112_CableCarStation_OnFrame .byte 0 -Route112_CableCarStation_OnTransition: @ 822AAC9 +Route112_CableCarStation_OnTransition: setescapewarp MAP_ROUTE112, 255, 28, 28 compare VAR_CABLE_CAR_STATION_STATE, 2 call_if_eq Route112_CableCarStation_EventScript_MoveAttendantAside end -Route112_CableCarStation_EventScript_MoveAttendantAside:: @ 822AADD +Route112_CableCarStation_EventScript_MoveAttendantAside:: setobjectxyperm LOCALID_ATTENDANT, 7, 4 setobjectmovementtype LOCALID_ATTENDANT, MOVEMENT_TYPE_FACE_LEFT return -Route112_CableCarStation_OnFrame: @ 822AAE9 +Route112_CableCarStation_OnFrame: map_script_2 VAR_CABLE_CAR_STATION_STATE, 2, Route112_CableCarStation_EventScript_ExitCableCar .2byte 0 -Route112_CableCarStation_EventScript_ExitCableCar:: @ 822AAF3 +Route112_CableCarStation_EventScript_ExitCableCar:: lockall applymovement OBJ_EVENT_ID_PLAYER, Route112_CableCarStation_Movement_ExitCableCar applymovement LOCALID_ATTENDANT, Route112_CableCarStation_Movement_FollowPlayerOutFromCableCar @@ -31,7 +31,7 @@ Route112_CableCarStation_EventScript_ExitCableCar:: @ 822AAF3 releaseall end -Route112_CableCarStation_EventScript_Attendant:: @ 822AB17 +Route112_CableCarStation_EventScript_Attendant:: lock faceplayer msgbox Route112_CableCarStation_Text_CableCarReadyGetOn, MSGBOX_YESNO @@ -41,7 +41,7 @@ Route112_CableCarStation_EventScript_Attendant:: @ 822AB17 goto_if_eq Route112_CableCarStation_EventScript_DeclineRide end -Route112_CableCarStation_EventScript_RideCableCar:: @ 822AB38 +Route112_CableCarStation_EventScript_RideCableCar:: msgbox Route112_CableCarStation_Text_StepThisWay, MSGBOX_DEFAULT closemessage applymovement LOCALID_ATTENDANT, Route112_CableCarStation_Movement_LeadPlayerToCableCar @@ -56,46 +56,46 @@ Route112_CableCarStation_EventScript_RideCableCar:: @ 822AB38 release end -Route112_CableCarStation_EventScript_DeclineRide:: @ 822AB67 +Route112_CableCarStation_EventScript_DeclineRide:: msgbox Route112_CableCarStation_Text_RideAnotherTime, MSGBOX_DEFAULT release end -Route112_CableCarStation_Movement_LeadPlayerToCableCar: @ 822AB71 +Route112_CableCarStation_Movement_LeadPlayerToCableCar: walk_up walk_up walk_right walk_in_place_fastest_left step_end -Route112_CableCarStation_Movement_FollowPlayerOutFromCableCar: @ 822AB76 +Route112_CableCarStation_Movement_FollowPlayerOutFromCableCar: delay_16 walk_left walk_down walk_down step_end -Route112_CableCarStation_Movement_BoardCableCar: @ 822AB7B +Route112_CableCarStation_Movement_BoardCableCar: walk_up walk_up walk_up delay_16 step_end -Route112_CableCarStation_Movement_ExitCableCar: @ 822AB80 +Route112_CableCarStation_Movement_ExitCableCar: walk_down walk_down walk_down delay_16 step_end -Route112_CableCarStation_Text_CableCarReadyGetOn: @ 822AB85 +Route112_CableCarStation_Text_CableCarReadyGetOn: .string "The CABLE CAR is ready to go up.\n" .string "Would you like to be on it?$" -Route112_CableCarStation_Text_StepThisWay: @ 822ABC2 +Route112_CableCarStation_Text_StepThisWay: .string "Please step this way.$" -Route112_CableCarStation_Text_RideAnotherTime: @ 822ABD8 +Route112_CableCarStation_Text_RideAnotherTime: .string "Please ride with us another time.$" diff --git a/data/maps/Route113/map.json b/data/maps/Route113/map.json index 8d9d740280..422b88e6ef 100644 --- a/data/maps/Route113/map.json +++ b/data/maps/Route113/map.json @@ -126,7 +126,7 @@ "x": 29, "y": 6, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_HIDDEN", + "movement_type": "MOVEMENT_TYPE_BURIED", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_BURIED", @@ -139,7 +139,7 @@ "x": 71, "y": 2, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_HIDDEN", + "movement_type": "MOVEMENT_TYPE_BURIED", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_BURIED", diff --git a/data/maps/Route113/scripts.inc b/data/maps/Route113/scripts.inc index 24c57c29c1..0a8bb092c3 100644 --- a/data/maps/Route113/scripts.inc +++ b/data/maps/Route113/scripts.inc @@ -1,18 +1,18 @@ -Route113_MapScripts:: @ 81F2153 +Route113_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route113_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Route113_OnTransition .byte 0 -Route113_OnResume: @ 81F215E +Route113_OnResume: setstepcallback STEP_CB_ASH end -Route113_OnTransition: @ 81F2161 +Route113_OnTransition: clearflag FLAG_FORCE_MIRAGE_TOWER_VISIBLE call Route113_EventScript_CheckSetAshWeather end -Route113_EventScript_CheckSetAshWeather:: @ 81F216A +Route113_EventScript_CheckSetAshWeather:: getplayerxy VAR_TEMP_0, VAR_TEMP_1 compare VAR_TEMP_0, 19 goto_if_lt Route113_EventScript_DontSetAshWeather @@ -21,44 +21,44 @@ Route113_EventScript_CheckSetAshWeather:: @ 81F216A setweather WEATHER_VOLCANIC_ASH return -Route113_EventScript_DontSetAshWeather:: @ 81F2189 +Route113_EventScript_DontSetAshWeather:: return -Route113_EventScript_Gentleman:: @ 81F218A +Route113_EventScript_Gentleman:: msgbox Route113_Text_AshCanBeFashionedIntoGlass, MSGBOX_NPC end -Route113_EventScript_NinjaBoy:: @ 81F2193 +Route113_EventScript_NinjaBoy:: msgbox Route113_Text_FunWalkingThroughAsh, MSGBOX_NPC end -Route113_EventScript_RouteSign111:: @ 81F219C +Route113_EventScript_RouteSign111:: msgbox Route113_Text_RouteSign111, MSGBOX_SIGN end -Route113_EventScript_RouteSignFallarbor:: @ 81F21A5 +Route113_EventScript_RouteSignFallarbor:: msgbox Route113_Text_RouteSignFallarbor, MSGBOX_SIGN end -Route113_EventScript_GlassWorkshopSign:: @ 81F21AE +Route113_EventScript_GlassWorkshopSign:: msgbox Route113_Text_GlassWorkshopSign, MSGBOX_SIGN end -Route113_EventScript_TrainerTipsRegisterKeyItems:: @ 81F21B7 +Route113_EventScript_TrainerTipsRegisterKeyItems:: msgbox Route113_Text_TrainerTipsRegisterKeyItems, MSGBOX_SIGN end -Route113_EventScript_Jaylen:: @ 81F21C0 +Route113_EventScript_Jaylen:: trainerbattle_single TRAINER_JAYLEN, Route113_Text_JaylenIntro, Route113_Text_JaylenDefeat msgbox Route113_Text_JaylenPostBattle, MSGBOX_AUTOCLOSE end -Route113_EventScript_Dillon:: @ 81F21D7 +Route113_EventScript_Dillon:: trainerbattle_single TRAINER_DILLON, Route113_Text_DillonIntro, Route113_Text_DillonDefeat msgbox Route113_Text_DillonPostBattle, MSGBOX_AUTOCLOSE end -Route113_EventScript_Madeline:: @ 81F21EE +Route113_EventScript_Madeline:: trainerbattle_single TRAINER_MADELINE_1, Route113_Text_MadelineIntro, Route113_Text_MadelineDefeat, Route113_EventScript_RegisterMadeline specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -67,7 +67,7 @@ Route113_EventScript_Madeline:: @ 81F21EE release end -Route113_EventScript_RegisterMadeline:: @ 81F221A +Route113_EventScript_RegisterMadeline:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route113_Text_MadelineRegister, MSGBOX_DEFAULT @@ -75,12 +75,12 @@ Route113_EventScript_RegisterMadeline:: @ 81F221A release end -Route113_EventScript_RematchMadeline:: @ 81F2239 +Route113_EventScript_RematchMadeline:: trainerbattle_rematch TRAINER_MADELINE_1, Route113_Text_MadelineRematchIntro, Route113_Text_MadelineRematchDefeat msgbox Route113_Text_MadelinePostRematch, MSGBOX_AUTOCLOSE end -Route113_EventScript_Lao:: @ 81F2250 +Route113_EventScript_Lao:: trainerbattle_single TRAINER_LAO_1, Route113_Text_LaoIntro, Route113_Text_LaoDefeat, Route113_EventScript_RegisterLao specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -89,7 +89,7 @@ Route113_EventScript_Lao:: @ 81F2250 release end -Route113_EventScript_RegisterLao:: @ 81F227C +Route113_EventScript_RegisterLao:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route113_Text_LaoRegister, MSGBOX_DEFAULT @@ -97,74 +97,74 @@ Route113_EventScript_RegisterLao:: @ 81F227C release end -Route113_EventScript_RematchLao:: @ 81F229B +Route113_EventScript_RematchLao:: trainerbattle_rematch TRAINER_LAO_1, Route113_Text_LaoRematchIntro, Route113_Text_LaoRematchDefeat msgbox Route113_Text_LaoPostRematch, MSGBOX_AUTOCLOSE end -Route113_EventScript_Lung:: @ 81F22B2 +Route113_EventScript_Lung:: trainerbattle_single TRAINER_LUNG, Route113_Text_LungIntro, Route113_Text_LungDefeat msgbox Route113_Text_LungPostBattle, MSGBOX_AUTOCLOSE end -Route113_EventScript_Tori:: @ 81F22C9 +Route113_EventScript_Tori:: trainerbattle_double TRAINER_TORI_AND_TIA, Route113_Text_ToriIntro, Route113_Text_ToriDefeat, Route113_Text_ToriNotEnoughMons msgbox Route113_Text_ToriPostBattle, MSGBOX_AUTOCLOSE end -Route113_EventScript_Tia:: @ 81F22E4 +Route113_EventScript_Tia:: trainerbattle_double TRAINER_TORI_AND_TIA, Route113_Text_TiaIntro, Route113_Text_TiaDefeat, Route113_Text_TiaNotEnoughMons msgbox Route113_Text_TiaPostBattle, MSGBOX_AUTOCLOSE end -Route113_EventScript_Sophie:: @ 81F22FF +Route113_EventScript_Sophie:: trainerbattle_single TRAINER_SOPHIE, Route113_Text_SophieIntro, Route113_Text_SophieDefeat msgbox Route113_Text_SophiePostBattle, MSGBOX_AUTOCLOSE end -Route113_EventScript_Coby:: @ 81F2316 +Route113_EventScript_Coby:: trainerbattle_single TRAINER_COBY, Route113_Text_CobyIntro, Route113_Text_CobyDefeat msgbox Route113_Text_CobyPostBattle, MSGBOX_AUTOCLOSE end -Route113_EventScript_Lawrence:: @ 81F232D +Route113_EventScript_Lawrence:: trainerbattle_single TRAINER_LAWRENCE, Route113_Text_LawrenceIntro, Route113_Text_LawrenceDefeat msgbox Route113_Text_LawrencePostBattle, MSGBOX_AUTOCLOSE end -Route113_EventScript_Wyatt:: @ 81F2344 +Route113_EventScript_Wyatt:: trainerbattle_single TRAINER_WYATT, Route113_Text_WyattIntro, Route113_Text_WyattDefeat msgbox Route113_Text_WyattPostBattle, MSGBOX_AUTOCLOSE end -Route113_Text_AshCanBeFashionedIntoGlass: @ 81F235B +Route113_Text_AshCanBeFashionedIntoGlass: .string "Wahahaha! Today's technology is a\n" .string "wondrous thing!\p" .string "Take this volcanic ash here.\n" .string "It can be fashioned into glass.$" -Route113_Text_FunWalkingThroughAsh: @ 81F23CA +Route113_Text_FunWalkingThroughAsh: .string "It's fun walking through the volcano's\n" .string "ashes on the ground and grass.\p" .string "You can see where you walked--it's\n" .string "really neat!$" -Route113_Text_RouteSign111: @ 81F2440 +Route113_Text_RouteSign111: .string "ROUTE 113\n" .string "{RIGHT_ARROW} ROUTE 111$" -Route113_Text_RouteSignFallarbor: @ 81F2456 +Route113_Text_RouteSignFallarbor: .string "ROUTE 113\n" .string "{LEFT_ARROW} FALLARBOR TOWN$" -Route113_Text_TrainerTipsRegisterKeyItems: @ 81F2471 +Route113_Text_TrainerTipsRegisterKeyItems: .string "TRAINER TIPS\p" .string "You may register one of the KEY ITEMS\n" .string "in your BAG as SELECT.\p" .string "Simply press SELECT to use\n" .string "the registered item conveniently.$" -Route113_Text_GlassWorkshopSign: @ 81F24F8 +Route113_Text_GlassWorkshopSign: .string "GLASS WORKSHOP\n" .string "“Turning Volcanic Ash into Glass Items”$" diff --git a/data/maps/Route113_GlassWorkshop/scripts.inc b/data/maps/Route113_GlassWorkshop/scripts.inc index eed6d8eaba..bad739806f 100644 --- a/data/maps/Route113_GlassWorkshop/scripts.inc +++ b/data/maps/Route113_GlassWorkshop/scripts.inc @@ -1,4 +1,4 @@ -Route113_GlassWorkshop_MapScripts:: @ 826ED03 +Route113_GlassWorkshop_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route113_GlassWorkshop_OnTransition .byte 0 @@ -11,17 +11,17 @@ Route113_GlassWorkshop_MapScripts:: @ 826ED03 .set PRETTY_DESK_PRICE, 8000 .set LOWEST_ASH_PRICE, BLUE_FLUTE_PRICE -Route113_GlassWorkshop_OnTransition: @ 826ED09 +Route113_GlassWorkshop_OnTransition: setflag FLAG_LANDMARK_GLASS_WORKSHOP compare VAR_GLASS_WORKSHOP_STATE, 1 call_if_eq Route113_GlassWorkshop_EventScript_ReenterWorkshopAfterSootSack end -Route113_GlassWorkshop_EventScript_ReenterWorkshopAfterSootSack:: @ 826ED18 +Route113_GlassWorkshop_EventScript_ReenterWorkshopAfterSootSack:: setvar VAR_GLASS_WORKSHOP_STATE, 2 return -Route113_GlassWorkshop_EventScript_GlassWorker:: @ 826ED1E +Route113_GlassWorkshop_EventScript_GlassWorker:: lock faceplayer compare VAR_GLASS_WORKSHOP_STATE, 10 @@ -37,12 +37,12 @@ Route113_GlassWorkshop_EventScript_GlassWorker:: @ 826ED1E release end -Route113_GlassWorkshop_EventScript_ExplainSootSack:: @ 826ED64 +Route113_GlassWorkshop_EventScript_ExplainSootSack:: msgbox Route113_GlassWorkshop_Text_ExplainSootSack, MSGBOX_DEFAULT release end -Route113_GlassWorkshop_EventScript_CheckCollectedAsh:: @ 826ED6E +Route113_GlassWorkshop_EventScript_CheckCollectedAsh:: checkitem ITEM_SOOT_SACK, 1 compare VAR_RESULT, FALSE goto_if_eq Route113_GlassWorkshop_EventScript_SootSackNotInBag @@ -54,12 +54,12 @@ Route113_GlassWorkshop_EventScript_CheckCollectedAsh:: @ 826ED6E goto Route113_GlassWorkshop_EventScript_ChooseGlassItem end -Route113_GlassWorkshop_EventScript_SootSackNotInBag:: @ 826ED9D +Route113_GlassWorkshop_EventScript_SootSackNotInBag:: msgbox Route113_GlassWorkshop_Text_HaventGotYourSootSack, MSGBOX_DEFAULT release end -Route113_GlassWorkshop_EventScript_ChooseGlassItem:: @ 826EDA7 +Route113_GlassWorkshop_EventScript_ChooseGlassItem:: setvar VAR_0x8009, 0 setvar VAR_0x8004, SCROLL_MULTI_GLASS_WORKSHOP_VENDOR special ShowScrollableMultichoice @@ -76,7 +76,7 @@ Route113_GlassWorkshop_EventScript_ChooseGlassItem:: @ 826EDA7 case MULTI_B_PRESSED, Route113_GlassWorkshop_EventScript_CancelGlassItemSelect end -Route113_GlassWorkshop_EventScript_BlueFlute:: @ 826EE1E +Route113_GlassWorkshop_EventScript_BlueFlute:: setvar VAR_0x8008, ITEM_BLUE_FLUTE bufferitemname 0, VAR_0x8008 setvar VAR_0x800A, BLUE_FLUTE_PRICE @@ -90,7 +90,7 @@ Route113_GlassWorkshop_EventScript_BlueFlute:: @ 826EE1E goto Route113_GlassWorkshop_EventScript_MakeGlassItem end -Route113_GlassWorkshop_EventScript_YellowFlute:: @ 826EE5A +Route113_GlassWorkshop_EventScript_YellowFlute:: setvar VAR_0x8008, ITEM_YELLOW_FLUTE bufferitemname 0, VAR_0x8008 setvar VAR_0x800A, YELLOW_FLUTE_PRICE @@ -104,7 +104,7 @@ Route113_GlassWorkshop_EventScript_YellowFlute:: @ 826EE5A goto Route113_GlassWorkshop_EventScript_MakeGlassItem end -Route113_GlassWorkshop_EventScript_RedFlute:: @ 826EE96 +Route113_GlassWorkshop_EventScript_RedFlute:: setvar VAR_0x8008, ITEM_RED_FLUTE bufferitemname 0, VAR_0x8008 setvar VAR_0x800A, RED_FLUTE_PRICE @@ -118,7 +118,7 @@ Route113_GlassWorkshop_EventScript_RedFlute:: @ 826EE96 goto Route113_GlassWorkshop_EventScript_MakeGlassItem end -Route113_GlassWorkshop_EventScript_WhiteFlute:: @ 826EED2 +Route113_GlassWorkshop_EventScript_WhiteFlute:: setvar VAR_0x8008, ITEM_WHITE_FLUTE bufferitemname 0, VAR_0x8008 setvar VAR_0x800A, WHITE_FLUTE_PRICE @@ -132,7 +132,7 @@ Route113_GlassWorkshop_EventScript_WhiteFlute:: @ 826EED2 goto Route113_GlassWorkshop_EventScript_MakeGlassItem end -Route113_GlassWorkshop_EventScript_BlackFlute:: @ 826EF0E +Route113_GlassWorkshop_EventScript_BlackFlute:: setvar VAR_0x8008, ITEM_BLACK_FLUTE bufferitemname 0, VAR_0x8008 setvar VAR_0x800A, BLACK_FLUTE_PRICE @@ -146,7 +146,7 @@ Route113_GlassWorkshop_EventScript_BlackFlute:: @ 826EF0E goto Route113_GlassWorkshop_EventScript_MakeGlassItem end -Route113_GlassWorkshop_EventScript_PrettyChair:: @ 826EF4A +Route113_GlassWorkshop_EventScript_PrettyChair:: setvar VAR_0x8009, 1 setvar VAR_0x8008, DECOR_PRETTY_CHAIR bufferdecorationname 0, VAR_0x8008 @@ -161,7 +161,7 @@ Route113_GlassWorkshop_EventScript_PrettyChair:: @ 826EF4A goto Route113_GlassWorkshop_EventScript_MakeGlassItem end -Route113_GlassWorkshop_EventScript_PrettyDesk:: @ 826EF8B +Route113_GlassWorkshop_EventScript_PrettyDesk:: setvar VAR_0x8009, 1 setvar VAR_0x8008, DECOR_PRETTY_DESK bufferdecorationname 0, VAR_0x8008 @@ -176,12 +176,12 @@ Route113_GlassWorkshop_EventScript_PrettyDesk:: @ 826EF8B goto Route113_GlassWorkshop_EventScript_MakeGlassItem end -Route113_GlassWorkshop_EventScript_CancelGlassItemSelect:: @ 826EFCC +Route113_GlassWorkshop_EventScript_CancelGlassItemSelect:: msgbox Route113_GlassWorkshop_Text_AllThatAshButDontWantAnything, MSGBOX_DEFAULT release end -Route113_GlassWorkshop_EventScript_NotEnoughAsh:: @ 826EFD6 +Route113_GlassWorkshop_EventScript_NotEnoughAsh:: setvar VAR_0x800A, LOWEST_ASH_PRICE subvar VAR_0x800A, VAR_ASH_GATHER_COUNT buffernumberstring 0, VAR_0x800A @@ -189,7 +189,7 @@ Route113_GlassWorkshop_EventScript_NotEnoughAsh:: @ 826EFD6 release end -Route113_GlassWorkshop_EventScript_NotEnoughAshForItem:: @ 826EFEE +Route113_GlassWorkshop_EventScript_NotEnoughAshForItem:: subvar VAR_0x800A, VAR_ASH_GATHER_COUNT buffernumberstring 1, VAR_0x800A message Route113_GlassWorkshop_Text_NotEnoughAshToMakeItem @@ -197,13 +197,13 @@ Route113_GlassWorkshop_EventScript_NotEnoughAshForItem:: @ 826EFEE goto Route113_GlassWorkshop_EventScript_ChooseGlassItem end -Route113_GlassWorkshop_EventScript_ChooseDifferentItem:: @ 826F003 +Route113_GlassWorkshop_EventScript_ChooseDifferentItem:: message Route113_GlassWorkshop_Text_WhichWouldYouLike waitmessage goto Route113_GlassWorkshop_EventScript_ChooseGlassItem end -Route113_GlassWorkshop_EventScript_MakeGlassItem:: @ 826F00F +Route113_GlassWorkshop_EventScript_MakeGlassItem:: msgbox Route113_GlassWorkshop_Text_IllMakeItemForYou, MSGBOX_DEFAULT closemessage fadescreen FADE_TO_BLACK @@ -219,31 +219,31 @@ Route113_GlassWorkshop_EventScript_MakeGlassItem:: @ 826F00F release end -Route113_GlassWorkshop_EventScript_GiveGlassFlute:: @ 826F047 +Route113_GlassWorkshop_EventScript_GiveGlassFlute:: giveitem VAR_0x8008 compare VAR_RESULT, FALSE goto_if_eq Route113_GlassWorkshop_EventScript_NoRoomForFlute return -Route113_GlassWorkshop_EventScript_GiveGlassDecor:: @ 826F05F +Route113_GlassWorkshop_EventScript_GiveGlassDecor:: givedecoration VAR_0x8008 compare VAR_RESULT, FALSE goto_if_eq Route113_GlassWorkshop_EventScript_NoRoomForDecor return -Route113_GlassWorkshop_EventScript_NoRoomForFlute:: @ 826F072 +Route113_GlassWorkshop_EventScript_NoRoomForFlute:: call Common_EventScript_BagIsFull msgbox Route113_GlassWorkshop_Text_NoRoomInBag, MSGBOX_DEFAULT release end -Route113_GlassWorkshop_EventScript_NoRoomForDecor:: @ 826F081 +Route113_GlassWorkshop_EventScript_NoRoomForDecor:: call Common_EventScript_NoRoomForDecor msgbox Route113_GlassWorkshop_Text_NoRoomInPC, MSGBOX_DEFAULT release end -Route113_GlassWorkshop_EventScript_GiveItemAfterNoRoom:: @ 826F090 +Route113_GlassWorkshop_EventScript_GiveItemAfterNoRoom:: switch VAR_GLASS_WORKSHOP_STATE case 10, Route113_GlassWorkshop_EventScript_GiveBlueFlute case 11, Route113_GlassWorkshop_EventScript_GiveYellowFlute @@ -254,56 +254,56 @@ Route113_GlassWorkshop_EventScript_GiveItemAfterNoRoom:: @ 826F090 case 16, Route113_GlassWorkshop_EventScript_GivePrettyDesk end -Route113_GlassWorkshop_EventScript_GiveBlueFlute:: @ 826F0E3 +Route113_GlassWorkshop_EventScript_GiveBlueFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_BLUE_FLUTE bufferitemname 0, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end -Route113_GlassWorkshop_EventScript_GiveYellowFlute:: @ 826F0F7 +Route113_GlassWorkshop_EventScript_GiveYellowFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_YELLOW_FLUTE bufferitemname 0, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end -Route113_GlassWorkshop_EventScript_GiveRedFlute:: @ 826F10B +Route113_GlassWorkshop_EventScript_GiveRedFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_RED_FLUTE bufferitemname 0, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end -Route113_GlassWorkshop_EventScript_GiveWhiteFlute:: @ 826F11F +Route113_GlassWorkshop_EventScript_GiveWhiteFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_WHITE_FLUTE bufferitemname 0, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end -Route113_GlassWorkshop_EventScript_GiveBlackFlute:: @ 826F133 +Route113_GlassWorkshop_EventScript_GiveBlackFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_BLACK_FLUTE bufferitemname 0, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end -Route113_GlassWorkshop_EventScript_GivePrettyChair:: @ 826F147 +Route113_GlassWorkshop_EventScript_GivePrettyChair:: setvar VAR_0x8009, 1 setvar VAR_0x8008, DECOR_PRETTY_CHAIR bufferdecorationname 0, DECOR_PRETTY_CHAIR goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end -Route113_GlassWorkshop_EventScript_GivePrettyDesk:: @ 826F15B +Route113_GlassWorkshop_EventScript_GivePrettyDesk:: setvar VAR_0x8009, 1 setvar VAR_0x8008, DECOR_PRETTY_DESK bufferdecorationname 0, DECOR_PRETTY_DESK goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end -Route113_GlassWorkshop_EventScript_TryGiveItemAgain:: @ 826F16F +Route113_GlassWorkshop_EventScript_TryGiveItemAgain:: msgbox Route113_GlassWorkshop_Text_IveFinishedGlassItem, MSGBOX_DEFAULT compare VAR_0x8009, 0 call_if_eq Route113_GlassWorkshop_EventScript_GiveGlassFlute @@ -313,11 +313,11 @@ Route113_GlassWorkshop_EventScript_TryGiveItemAgain:: @ 826F16F release end -Route113_GlassWorkshop_EventScript_NinjaBoy:: @ 826F194 +Route113_GlassWorkshop_EventScript_NinjaBoy:: msgbox Route113_GlassWorkshop_Text_FunToBlowGlassFlute, MSGBOX_NPC end -Route113_GlassWorkshop_Text_GoCollectAshWithThis: @ 826F19D +Route113_GlassWorkshop_Text_GoCollectAshWithThis: .string "This area is covered in volcanic ash,\n" .string "huff-puff!\p" .string "I'm specially gifted, huff-puff.\p" @@ -325,7 +325,7 @@ Route113_GlassWorkshop_Text_GoCollectAshWithThis: @ 826F19D .string "and make items, huff-puff.\p" .string "Go collect ashes with this, huff-puff.$" -Route113_GlassWorkshop_Text_ExplainSootSack: @ 826F252 +Route113_GlassWorkshop_Text_ExplainSootSack: .string "Just take that SOOT SACK and walk\n" .string "through piles of ash, huff-puff.\p" .string "And it will fill up with the volcanic ash,\n" @@ -333,11 +333,11 @@ Route113_GlassWorkshop_Text_ExplainSootSack: @ 826F252 .string "Once you think you've collected a good\n" .string "amount, come see me, huff-puff.$" -Route113_GlassWorkshop_Text_LetsSeeCollectedAshes: @ 826F312 +Route113_GlassWorkshop_Text_LetsSeeCollectedAshes: .string "Have you collected ashes, huff-puff?\n" .string "Let me see, huff-puff.$" -Route113_GlassWorkshop_Text_NotEnoughAshNeedX: @ 826F34E +Route113_GlassWorkshop_Text_NotEnoughAshNeedX: .string "Hmmm…\n" .string "There's not enough ash here, huff-puff.\l" .string "I can't make glass with this, huff-puff.\p" @@ -345,25 +345,25 @@ Route113_GlassWorkshop_Text_NotEnoughAshNeedX: @ 826F34E .string "you'll need to walk for me to make you\l" .string "a BLUE FLUTE, huff-puff.$" -Route113_GlassWorkshop_Text_WhichGlassItemWoudYouLike: @ 826F40A +Route113_GlassWorkshop_Text_WhichGlassItemWoudYouLike: .string "Oh!\n" .string "You've got a lot of ashes, huff-puff!\p" .string "I'll make you a glass item, huff-puff!\n" .string "Which one would you like, huff-puff?$" -Route113_GlassWorkshop_Text_IsThatTheItemForYou: @ 826F480 +Route113_GlassWorkshop_Text_IsThatTheItemForYou: .string "A {STR_VAR_1}, huff-puff?\n" .string "Is that the one for you, huff-puff?$" -Route113_GlassWorkshop_Text_WhichWouldYouLike: @ 826F4B5 +Route113_GlassWorkshop_Text_WhichWouldYouLike: .string "Which one would you like, huff-puff?$" -Route113_GlassWorkshop_Text_IllMakeItemForYou: @ 826F4DA +Route113_GlassWorkshop_Text_IllMakeItemForYou: .string "A {STR_VAR_1} it is, then, huff-puff!\p" .string "Okay! I'll make it for you, huff-puff.\n" .string "Just wait a little while, huff-puff.$" -Route113_GlassWorkshop_Text_NotEnoughAshToMakeItem: @ 826F543 +Route113_GlassWorkshop_Text_NotEnoughAshToMakeItem: .string "A {STR_VAR_1}, huff-puff?\p" .string "There's not enough ash here to make\n" .string "that, though, huff-puff.\p" @@ -373,33 +373,33 @@ Route113_GlassWorkshop_Text_NotEnoughAshToMakeItem: @ 826F543 .string "Which item would you rather have me\n" .string "make instead, huff-puff?$" -Route113_GlassWorkshop_Text_AllThatAshButDontWantAnything: @ 826F641 +Route113_GlassWorkshop_Text_AllThatAshButDontWantAnything: .string "You've collected all that ash, but you\n" .string "don't want anything, huff-puff?$" -Route113_GlassWorkshop_Text_IveFinishedGlassItem: @ 826F688 +Route113_GlassWorkshop_Text_IveFinishedGlassItem: .string "Ah, I've finished your {STR_VAR_1}.\n" .string "Take it, huff-puff.$" -Route113_GlassWorkshop_Text_NoRoomInBag: @ 826F6B7 +Route113_GlassWorkshop_Text_NoRoomInBag: .string "Oh?\n" .string "You've no room in your BAG, huff-puff.\p" .string "I'll hold on to it, so come back later,\n" .string "huff-puff.$" -Route113_GlassWorkshop_Text_NoRoomInPC: @ 826F715 +Route113_GlassWorkshop_Text_NoRoomInPC: .string "Oh?\n" .string "You've no room in your PC, huff-puff?\p" .string "I'll hold on to it, so come back later,\n" .string "huff-puff.$" -Route113_GlassWorkshop_Text_HaventGotYourSootSack: @ 826F772 +Route113_GlassWorkshop_Text_HaventGotYourSootSack: .string "Hah? You haven't got your SOOT SACK\n" .string "with you, huff-puff.\p" .string "You have to keep it with you to collect\n" .string "volcanic ash, huff-puff.$" -Route113_GlassWorkshop_Text_FunToBlowGlassFlute: @ 826F7EC +Route113_GlassWorkshop_Text_FunToBlowGlassFlute: .string "It's fun to blow a glass flute while\n" .string "my boss is talking.\p" .string "Huff-huff! Puff-puff!$" diff --git a/data/maps/Route114/map.json b/data/maps/Route114/map.json index 37edf509d0..38891b5183 100644 --- a/data/maps/Route114/map.json +++ b/data/maps/Route114/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "77", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_2", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "78", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_3", "script": "BerryTreeScript", "flag": "0" }, @@ -125,7 +125,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "68", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_1", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route114/scripts.inc b/data/maps/Route114/scripts.inc index dda7f270d1..3eb92d0f1e 100644 --- a/data/maps/Route114/scripts.inc +++ b/data/maps/Route114/scripts.inc @@ -1,10 +1,10 @@ -Route114_MapScripts:: @ 81F252F +Route114_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route114_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route114_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, Route114_OnFrame .byte 0 -Route114_OnTransition: @ 81F253F +Route114_OnTransition: compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 call_if_eq AbnormalWeather_EventScript_HideMapNamePopup compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_NORTH @@ -13,18 +13,18 @@ Route114_OnTransition: @ 81F253F call_if_eq AbnormalWeather_StartGroudonWeather end -Route114_OnLoad: @ 81F2561 +Route114_OnLoad: compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_NORTH call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute114North compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_SOUTH call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute114South end -Route114_OnFrame: @ 81F2578 +Route114_OnFrame: map_script_2 VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_EndEventAndCleanup_1 .2byte 0 -Route114_EventScript_Man:: @ 81F2582 +Route114_EventScript_Man:: lock faceplayer dotimebasedevents @@ -41,12 +41,12 @@ Route114_EventScript_Man:: @ 81F2582 release end -Route114_EventScript_ReceivedBerry:: @ 81F25C7 +Route114_EventScript_ReceivedBerry:: msgbox Route114_Text_FunToThinkAboutBerries, MSGBOX_DEFAULT release end -Route114_EventScript_RoarGentleman:: @ 81F25D1 +Route114_EventScript_RoarGentleman:: lock faceplayer goto_if_set FLAG_RECEIVED_TM05, Route114_EventScript_ReceivedRoar @@ -59,12 +59,12 @@ Route114_EventScript_RoarGentleman:: @ 81F25D1 release end -Route114_EventScript_ReceivedRoar:: @ 81F2608 +Route114_EventScript_ReceivedRoar:: msgbox Route114_Text_ExplainRoar, MSGBOX_DEFAULT release end -Route114_EventScript_Poochyena:: @ 81F2612 +Route114_EventScript_Poochyena:: lock faceplayer waitse @@ -74,39 +74,39 @@ Route114_EventScript_Poochyena:: @ 81F2612 release end -Route114_EventScript_MeteorFallsSign:: @ 81F2625 +Route114_EventScript_MeteorFallsSign:: msgbox Route114_Text_MeteorFallsSign, MSGBOX_SIGN end -Route114_EventScript_FossilManiacsHouseSign:: @ 81F262E +Route114_EventScript_FossilManiacsHouseSign:: msgbox Route114_Text_FossilManiacsHouseSign, MSGBOX_SIGN end -Route114_EventScript_LanettesHouseSign:: @ 81F2637 +Route114_EventScript_LanettesHouseSign:: msgbox Route114_Text_LanettesHouse, MSGBOX_SIGN end -Route114_EventScript_Lenny:: @ 81F2640 +Route114_EventScript_Lenny:: trainerbattle_single TRAINER_LENNY, Route114_Text_LennyIntro, Route114_Text_LennyDefeat msgbox Route114_Text_LennyPostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Lucas:: @ 81F2657 +Route114_EventScript_Lucas:: trainerbattle_single TRAINER_LUCAS_1, Route114_Text_LucasIntro, Route114_Text_LucasDefeat msgbox Route114_Text_LucasPostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Shane:: @ 81F266E +Route114_EventScript_Shane:: trainerbattle_single TRAINER_SHANE, Route114_Text_ShaneIntro, Route114_Text_ShaneDefeat msgbox Route114_Text_ShanePostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Nancy:: @ 81F2685 +Route114_EventScript_Nancy:: trainerbattle_single TRAINER_NANCY, Route114_Text_NancyIntro, Route114_Text_NancyDefeat msgbox Route114_Text_NancyPostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Steve:: @ 81F269C +Route114_EventScript_Steve:: trainerbattle_single TRAINER_STEVE_1, Route114_Text_SteveIntro, Route114_Text_SteveDefeat, Route114_EventScript_RegisterSteve specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -115,7 +115,7 @@ Route114_EventScript_Steve:: @ 81F269C release end -Route114_EventScript_RegisterSteve:: @ 81F26C8 +Route114_EventScript_RegisterSteve:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route114_Text_SteveRegister, MSGBOX_DEFAULT @@ -123,12 +123,12 @@ Route114_EventScript_RegisterSteve:: @ 81F26C8 release end -Route114_EventScript_RematchSteve:: @ 81F26E7 +Route114_EventScript_RematchSteve:: trainerbattle_rematch TRAINER_STEVE_1, Route114_Text_SteveRematchIntro, Route114_Text_SteveRematchDefeat msgbox Route114_Text_StevePostRematch, MSGBOX_AUTOCLOSE end -Route114_EventScript_Bernie:: @ 81F26FE +Route114_EventScript_Bernie:: trainerbattle_single TRAINER_BERNIE_1, Route114_Text_BernieIntro, Route114_Text_BernieDefeat, Route114_EventScript_RegisterBernie specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -137,7 +137,7 @@ Route114_EventScript_Bernie:: @ 81F26FE release end -Route114_EventScript_RegisterBernie:: @ 81F272A +Route114_EventScript_RegisterBernie:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route114_Text_BernieRegister, MSGBOX_DEFAULT @@ -145,67 +145,67 @@ Route114_EventScript_RegisterBernie:: @ 81F272A release end -Route114_EventScript_RematchBernie:: @ 81F2749 +Route114_EventScript_RematchBernie:: trainerbattle_rematch TRAINER_BERNIE_1, Route114_Text_BernieRematchIntro, Route114_Text_BernieRematchDefeat msgbox Route114_Text_BerniePostRematch, MSGBOX_AUTOCLOSE end -Route114_EventScript_Claude:: @ 81F2760 +Route114_EventScript_Claude:: trainerbattle_single TRAINER_CLAUDE, Route114_Text_ClaudeIntro, Route114_Text_ClaudeDefeat msgbox Route114_Text_ClaudePostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Nolan:: @ 81F2777 +Route114_EventScript_Nolan:: trainerbattle_single TRAINER_NOLAN, Route114_Text_NolanIntro, Route114_Text_NolanDefeat msgbox Route114_Text_NolanPostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Tyra:: @ 81F278E +Route114_EventScript_Tyra:: trainerbattle_double TRAINER_TYRA_AND_IVY, Route114_Text_TyraIntro, Route114_Text_TyraDefeat, Route114_Text_TyraNotEnoughMons msgbox Route114_Text_TyraPostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Ivy:: @ 81F27A9 +Route114_EventScript_Ivy:: trainerbattle_double TRAINER_TYRA_AND_IVY, Route114_Text_IvyIntro, Route114_Text_IvyDefeat, Route114_Text_IvyNotEnoughMons msgbox Route114_Text_IvyPostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Angelina:: @ 81F27C4 +Route114_EventScript_Angelina:: trainerbattle_single TRAINER_ANGELINA, Route114_Text_AngelinaIntro, Route114_Text_AngelinaDefeat msgbox Route114_Text_AngelinaPostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Charlotte:: @ 81F27DB +Route114_EventScript_Charlotte:: trainerbattle_single TRAINER_CHARLOTTE, Route114_Text_CharlotteIntro, Route114_Text_CharlotteDefeat msgbox Route114_Text_CharlottePostBattle, MSGBOX_AUTOCLOSE end -Route114_EventScript_Kai:: @ 81F27F2 +Route114_EventScript_Kai:: trainerbattle_single TRAINER_KAI, Route114_Text_KaiIntro, Route114_Text_KaiDefeat msgbox Route114_Text_KaiPostBattle, MSGBOX_AUTOCLOSE end -Route114_Text_AllMyMonDoesIsRoarTakeThis: @ 81F2809 +Route114_Text_AllMyMonDoesIsRoarTakeThis: .string "All my POKéMON does is ROAR…\n" .string "No one dares to come near me…\p" .string "Sigh… If you would, please take\n" .string "this TM away…$" -Route114_Text_ExplainRoar: @ 81F2872 +Route114_Text_ExplainRoar: .string "TM05 contains ROAR.\n" .string "A ROAR sends POKéMON scurrying.$" -Route114_Text_Poochyena: @ 81F28A6 +Route114_Text_Poochyena: .string "Bow! Bowwow!$" -Route114_Text_MeteorFallsSign: @ 81F28B3 +Route114_Text_MeteorFallsSign: .string "METEOR FALLS\n" .string "RUSTBORO CITY THROUGH HERE$" -Route114_Text_FossilManiacsHouseSign: @ 81F28DB +Route114_Text_FossilManiacsHouseSign: .string "FOSSIL MANIAC'S HOUSE\n" .string "“Fossils gratefully accepted!”$" -Route114_Text_LanettesHouse: @ 81F2910 +Route114_Text_LanettesHouse: .string "LANETTE'S HOUSE$" diff --git a/data/maps/Route114_FossilManiacsHouse/scripts.inc b/data/maps/Route114_FossilManiacsHouse/scripts.inc index 8db686d10b..f291cd5ee4 100644 --- a/data/maps/Route114_FossilManiacsHouse/scripts.inc +++ b/data/maps/Route114_FossilManiacsHouse/scripts.inc @@ -1,12 +1,12 @@ -Route114_FossilManiacsHouse_MapScripts:: @ 822AD30 +Route114_FossilManiacsHouse_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route114_FossilManiacsHouse_OnTransition .byte 0 -Route114_FossilManiacsHouse_OnTransition: @ 822AD36 +Route114_FossilManiacsHouse_OnTransition: setflag FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE end -Route114_FossilManiacsHouse_EventScript_FossilManiacsBrother:: @ 822AD3A +Route114_FossilManiacsHouse_EventScript_FossilManiacsBrother:: lock faceplayer goto_if_set FLAG_RECEIVED_TM28, Route114_FossilManiacsHouse_EventScript_ReceivedDig @@ -18,20 +18,20 @@ Route114_FossilManiacsHouse_EventScript_FossilManiacsBrother:: @ 822AD3A release end -Route114_FossilManiacsHouse_EventScript_ReceivedDig:: @ 822AD69 +Route114_FossilManiacsHouse_EventScript_ReceivedDig:: msgbox Route114_FossilManiacsHouse_Text_DigReturnsYouToEntrance, MSGBOX_DEFAULT release end -Route114_FossilManiacsHouse_EventScript_RockDisplay:: @ 822AD73 +Route114_FossilManiacsHouse_EventScript_RockDisplay:: msgbox Route114_FossilManiacsHouse_Text_RocksFillDisplayCase, MSGBOX_SIGN end -Route114_FossilManiacsHouse_EventScript_Bookshelf:: @ 822AD7C +Route114_FossilManiacsHouse_EventScript_Bookshelf:: msgbox Route114_FossilManiacsHouse_Text_CrammedWithBooks, MSGBOX_SIGN end -Route114_FossilManiacsHouse_Text_HaveThisToDigLikeMyBrother: @ 822AD85 +Route114_FossilManiacsHouse_Text_HaveThisToDigLikeMyBrother: .string "My big brother's the FOSSIL MANIAC…\n" .string "He's a nice guy who loves FOSSILS…\p" .string "He loves digging holes, too…\n" @@ -39,15 +39,15 @@ Route114_FossilManiacsHouse_Text_HaveThisToDigLikeMyBrother: @ 822AD85 .string "You can have this, so you can DIG\n" .string "holes just like my big brother…$" -Route114_FossilManiacsHouse_Text_DigReturnsYouToEntrance: @ 822AE48 +Route114_FossilManiacsHouse_Text_DigReturnsYouToEntrance: .string "If you make a POKéMON DIG inside a\n" .string "cave, you're returned to the entrance…$" -Route114_FossilManiacsHouse_Text_RocksFillDisplayCase: @ 822AE92 +Route114_FossilManiacsHouse_Text_RocksFillDisplayCase: .string "Rocks in peculiar shapes fill\n" .string "the display case…$" -Route114_FossilManiacsHouse_Text_CrammedWithBooks: @ 822AEC2 +Route114_FossilManiacsHouse_Text_CrammedWithBooks: .string "THE COMPOSITION OF STRATA…\n" .string "HOW RAIN SHAPES THE LAND…\l" .string "STONES, SOIL, AND ROCK…\p" diff --git a/data/maps/Route114_FossilManiacsTunnel/scripts.inc b/data/maps/Route114_FossilManiacsTunnel/scripts.inc index 86bb20eed9..a5181be793 100644 --- a/data/maps/Route114_FossilManiacsTunnel/scripts.inc +++ b/data/maps/Route114_FossilManiacsTunnel/scripts.inc @@ -1,29 +1,29 @@ .set LOCALID_FOSSIL_MANIAC, 1 -Route114_FossilManiacsTunnel_MapScripts:: @ 822AF28 +Route114_FossilManiacsTunnel_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route114_FossilManiacsTunnel_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route114_FossilManiacsTunnel_OnLoad .byte 0 -Route114_FossilManiacsTunnel_OnTransition: @ 822AF33 +Route114_FossilManiacsTunnel_OnTransition: call_if_set FLAG_SYS_GAME_CLEAR, Route114_FossilManiacsTunnel_EventScript_MoveFossilManiac end -Route114_FossilManiacsTunnel_EventScript_MoveFossilManiac:: @ 822AF3D +Route114_FossilManiacsTunnel_EventScript_MoveFossilManiac:: setobjectxyperm LOCALID_FOSSIL_MANIAC, 6, 5 setobjectmovementtype LOCALID_FOSSIL_MANIAC, MOVEMENT_TYPE_FACE_DOWN return -Route114_FossilManiacsTunnel_OnLoad: @ 822AF49 +Route114_FossilManiacsTunnel_OnLoad: call_if_unset FLAG_SYS_GAME_CLEAR, Route114_FossilManiacsTunnel_EventScript_CloseDesertUnderpass end -Route114_FossilManiacsTunnel_EventScript_CloseDesertUnderpass:: @ 822AF53 +Route114_FossilManiacsTunnel_EventScript_CloseDesertUnderpass:: setmetatile 6, 1, METATILE_Fallarbor_RedRockWall, 1 setmetatile 6, 2, METATILE_Fallarbor_RedRockWall, 1 return -Route114_FossilManiacsTunnel_EventScript_ManiacMentionCaveIn:: @ 822AF66 +Route114_FossilManiacsTunnel_EventScript_ManiacMentionCaveIn:: lockall applymovement LOCALID_FOSSIL_MANIAC, Common_Movement_WalkInPlaceFastestUp applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown @@ -33,7 +33,7 @@ Route114_FossilManiacsTunnel_EventScript_ManiacMentionCaveIn:: @ 822AF66 releaseall end -Route114_FossilManiacsTunnel_EventScript_FossilManiac:: @ 822AF87 +Route114_FossilManiacsTunnel_EventScript_FossilManiac:: lock faceplayer goto_if_set FLAG_RECEIVED_REVIVED_FOSSIL_MON, Route114_FossilManiacsTunnel_EventScript_PlayerRevivedFossil @@ -47,17 +47,17 @@ Route114_FossilManiacsTunnel_EventScript_FossilManiac:: @ 822AF87 release end -Route114_FossilManiacsTunnel_EventScript_PlayerHasFossil:: @ 822AFBC +Route114_FossilManiacsTunnel_EventScript_PlayerHasFossil:: msgbox Route114_FossilManiacsTunnel_Text_DevonCorpRevivingFossils, MSGBOX_DEFAULT release end -Route114_FossilManiacsTunnel_EventScript_PlayerRevivedFossil:: @ 822AFC6 +Route114_FossilManiacsTunnel_EventScript_PlayerRevivedFossil:: msgbox Route114_FossilManiacsTunnel_Text_FossilsAreWonderful, MSGBOX_DEFAULT release end -Route114_FossilManiacsTunnel_Text_LookInDesertForFossils: @ 822AFD0 +Route114_FossilManiacsTunnel_Text_LookInDesertForFossils: .string "I'm the FOSSIL MANIAC…\n" .string "I'm a nice guy who loves FOSSILS…\p" .string "Do you want a FOSSIL?\p" @@ -68,7 +68,7 @@ Route114_FossilManiacsTunnel_Text_LookInDesertForFossils: @ 822AFD0 .string "are boulders and sand that may hide\l" .string "FOSSILS…$" -Route114_FossilManiacsTunnel_Text_DevonCorpRevivingFossils: @ 822B0D6 +Route114_FossilManiacsTunnel_Text_DevonCorpRevivingFossils: .string "You found a FOSSIL, didn't you?\n" .string "That's so nice… It's so dreamy…\p" .string "What are you going to do with that\n" @@ -79,11 +79,11 @@ Route114_FossilManiacsTunnel_Text_DevonCorpRevivingFossils: @ 822B0D6 .string "I love my FOSSILS, so I would never\n" .string "do anything like that…$" -Route114_FossilManiacsTunnel_Text_FossilsAreWonderful: @ 822B1CC +Route114_FossilManiacsTunnel_Text_FossilsAreWonderful: .string "FOSSILS are so… Wonderful…\n" .string "It's so dreamy…$" -Route114_FossilManiacsTunnel_Text_NotSafeThatWay: @ 822B1F7 +Route114_FossilManiacsTunnel_Text_NotSafeThatWay: .string "Oh…\n" .string "It's not safe that way…\p" .string "I was digging away, you see…\n" diff --git a/data/maps/Route114_LanettesHouse/scripts.inc b/data/maps/Route114_LanettesHouse/scripts.inc index cd2f808fca..5a7ccb3415 100644 --- a/data/maps/Route114_LanettesHouse/scripts.inc +++ b/data/maps/Route114_LanettesHouse/scripts.inc @@ -1,12 +1,12 @@ -Route114_LanettesHouse_MapScripts:: @ 822B2C8 +Route114_LanettesHouse_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route114_LanettesHouse_OnTransition .byte 0 -Route114_LanettesHouse_OnTransition: @ 822B2CE +Route114_LanettesHouse_OnTransition: setflag FLAG_LANDMARK_LANETTES_HOUSE end -Route114_LanettesHouse_EventScript_Lanette:: @ 822B2D2 +Route114_LanettesHouse_EventScript_Lanette:: lock faceplayer goto_if_set FLAG_RECEIVED_DOLL_LANETTE, Route114_LanettesHouse_EventScript_OfferAdvice @@ -19,12 +19,12 @@ Route114_LanettesHouse_EventScript_Lanette:: @ 822B2D2 release end -Route114_LanettesHouse_EventScript_OfferAdvice:: @ 822B2FF +Route114_LanettesHouse_EventScript_OfferAdvice:: msgbox Route114_LanettesHouse_Text_OrganizeYourBoxes, MSGBOX_DEFAULT release end -Route114_LanettesHouse_EventScript_Notebook:: @ 822B309 +Route114_LanettesHouse_EventScript_Notebook:: lockall msgbox Route114_LanettesHouse_Text_ResearchNotesPage1, MSGBOX_YESNO compare VAR_RESULT, YES @@ -33,22 +33,22 @@ Route114_LanettesHouse_EventScript_Notebook:: @ 822B309 releaseall end -Route114_LanettesHouse_EventScript_NotebookPage2:: @ 822B327 +Route114_LanettesHouse_EventScript_NotebookPage2:: msgbox Route114_LanettesHouse_Text_ResearchNotesPage2, MSGBOX_YESNO compare VAR_RESULT, YES call_if_eq Route114_LanettesHouse_EventScript_NotebookPage3 releaseall end -Route114_LanettesHouse_EventScript_NotebookPage3:: @ 822B33C +Route114_LanettesHouse_EventScript_NotebookPage3:: msgbox Route114_LanettesHouse_Text_ResearchNotesPage3, MSGBOX_DEFAULT return -Route114_LanettesHouse_EventScript_PC:: @ 822B345 +Route114_LanettesHouse_EventScript_PC:: msgbox Route114_LanettesHouse_Text_EmailFromBill, MSGBOX_SIGN end -Route114_LanettesHouse_Text_EverythingClutteredKeepThis: @ 822B34E +Route114_LanettesHouse_Text_EverythingClutteredKeepThis: .string "LANETTE: Oh! {PLAYER}{KUN}!\p" .string "I'm sorry everything is so cluttered…\n" .string "When I get engrossed in research,\l" @@ -56,13 +56,13 @@ Route114_LanettesHouse_Text_EverythingClutteredKeepThis: @ 822B34E .string "This is embarrassing… Please keep\n" .string "this a secret in exchange for this.$" -Route114_LanettesHouse_Text_OrganizeYourBoxes: @ 822B407 +Route114_LanettesHouse_Text_OrganizeYourBoxes: .string "May I offer advice about my POKéMON\n" .string "Storage System?\p" .string "You should organize your BOXES so you\n" .string "can tell which POKéMON are in them.$" -Route114_LanettesHouse_Text_ResearchNotesPage1: @ 822B485 +Route114_LanettesHouse_Text_ResearchNotesPage1: .string "It's LANETTE's research notes.\n" .string "There's information about BOXES.\p" .string "Design BOXES to hold 30 POKéMON each.\p" @@ -70,7 +70,7 @@ Route114_LanettesHouse_Text_ResearchNotesPage1: @ 822B485 .string "420 POKéMON on the PC system.\p" .string "Keep reading?$" -Route114_LanettesHouse_Text_ResearchNotesPage2: @ 822B53C +Route114_LanettesHouse_Text_ResearchNotesPage2: .string "A marking system should be added to\n" .string "make POKéMON easier to organize.\p" .string "The name and wallpaper design of each\n" @@ -78,7 +78,7 @@ Route114_LanettesHouse_Text_ResearchNotesPage2: @ 822B53C .string "the stored POKéMON.\p" .string "Keep reading?$" -Route114_LanettesHouse_Text_ResearchNotesPage3: @ 822B5EF +Route114_LanettesHouse_Text_ResearchNotesPage3: .string "When storing a POKéMON, it should be\n" .string "sent to the BOX inspected last.\p" .string "If that BOX is full, the received\n" @@ -87,10 +87,10 @@ Route114_LanettesHouse_Text_ResearchNotesPage3: @ 822B5EF .string "it is automatically selected as the BOX\l" .string "to which POKéMON are sent.$" -Route114_LanettesHouse_Text_ClosedTheNotebook: @ 822B6E4 +Route114_LanettesHouse_Text_ClosedTheNotebook: .string "{PLAYER} closed the notebook.$" -Route114_LanettesHouse_Text_EmailFromBill: @ 822B6FC +Route114_LanettesHouse_Text_EmailFromBill: .string "There's an e-mail from someone on\n" .string "the PC.\p" .string "“… … … … … … …\p" diff --git a/data/maps/Route115/map.json b/data/maps/Route115/map.json index 2d0dbdbaa9..bbac132f52 100644 --- a/data/maps/Route115/map.json +++ b/data/maps/Route115/map.json @@ -73,7 +73,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "69", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_1", "script": "BerryTreeScript", "flag": "0" }, @@ -86,7 +86,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "70", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_2", "script": "BerryTreeScript", "flag": "0" }, @@ -99,7 +99,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "71", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_3", "script": "BerryTreeScript", "flag": "0" }, @@ -190,7 +190,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "55", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_BLUK_1", "script": "BerryTreeScript", "flag": "0" }, @@ -203,7 +203,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "56", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_BLUK_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route115/scripts.inc b/data/maps/Route115/scripts.inc index a9d0d93c15..600e6751f2 100644 --- a/data/maps/Route115/scripts.inc +++ b/data/maps/Route115/scripts.inc @@ -1,17 +1,17 @@ -Route115_MapScripts:: @ 81F2920 +Route115_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, Route115_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, Route115_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, Route115_OnFrame .byte 0 -Route115_OnLoad: @ 81F2930 +Route115_OnLoad: compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_WEST call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute115West compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_EAST call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute115East end -Route115_OnTransition: @ 81F2947 +Route115_OnTransition: compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 call_if_eq AbnormalWeather_EventScript_HideMapNamePopup compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_WEST @@ -20,23 +20,23 @@ Route115_OnTransition: @ 81F2947 call_if_eq AbnormalWeather_StartGroudonWeather end -Route115_OnFrame: @ 81F2969 +Route115_OnFrame: map_script_2 VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_EndEventAndCleanup_1 .2byte 0 -Route115_EventScript_Woman:: @ 81F2973 +Route115_EventScript_Woman:: msgbox Route115_Text_NeverKnowWhenCavePokemonWillAppear, MSGBOX_NPC end -Route115_EventScript_RouteSignRustboro:: @ 81F297C +Route115_EventScript_RouteSignRustboro:: msgbox Route115_Text_RouteSignRustboro, MSGBOX_SIGN end -Route115_EventScript_MeteorFallsSign:: @ 81F2985 +Route115_EventScript_MeteorFallsSign:: msgbox Route115_Text_MeteorFallsSign, MSGBOX_SIGN end -Route115_EventScript_Timothy:: @ 81F298E +Route115_EventScript_Timothy:: trainerbattle_single TRAINER_TIMOTHY_1, Route115_Text_TimothyIntro, Route115_Text_TimothyDefeat, Route115_EventScript_RegisterTimothy specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -45,7 +45,7 @@ Route115_EventScript_Timothy:: @ 81F298E release end -Route115_EventScript_RegisterTimothy:: @ 81F29BA +Route115_EventScript_RegisterTimothy:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route115_Text_TimothyRegister, MSGBOX_DEFAULT @@ -53,17 +53,17 @@ Route115_EventScript_RegisterTimothy:: @ 81F29BA release end -Route115_EventScript_RematchTimothy:: @ 81F29D9 +Route115_EventScript_RematchTimothy:: trainerbattle_rematch TRAINER_TIMOTHY_1, Route115_Text_TimothyRematchIntro, Route115_Text_TimothyRematchDefeat msgbox Route115_Text_TimothyPostRematch, MSGBOX_AUTOCLOSE end -Route115_EventScript_Koichi:: @ 81F29F0 +Route115_EventScript_Koichi:: trainerbattle_single TRAINER_KOICHI, Route115_Text_KoichiIntro, Route115_Text_KoichiDefeat msgbox Route115_Text_KoichiPostBattle, MSGBOX_AUTOCLOSE end -Route115_EventScript_Nob:: @ 81F2A07 +Route115_EventScript_Nob:: trainerbattle_single TRAINER_NOB_1, Route115_Text_NobIntro, Route115_Text_NobDefeat, Route115_EventScript_RegisterNob specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -72,7 +72,7 @@ Route115_EventScript_Nob:: @ 81F2A07 release end -Route115_EventScript_RegisterNob:: @ 81F2A33 +Route115_EventScript_RegisterNob:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route115_Text_NobRegister, MSGBOX_DEFAULT @@ -80,12 +80,12 @@ Route115_EventScript_RegisterNob:: @ 81F2A33 release end -Route115_EventScript_RematchNob:: @ 81F2A52 +Route115_EventScript_RematchNob:: trainerbattle_rematch TRAINER_NOB_1, Route115_Text_NobRematchIntro, Route115_Text_NobRematchDefeat msgbox Route115_Text_NobPostRematch, MSGBOX_AUTOCLOSE end -Route115_EventScript_Cyndy:: @ 81F2A69 +Route115_EventScript_Cyndy:: trainerbattle_single TRAINER_CYNDY_1, Route115_Text_CyndyIntro, Route115_Text_CyndyDefeat, Route115_EventScript_RegisterCyndy specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -94,7 +94,7 @@ Route115_EventScript_Cyndy:: @ 81F2A69 release end -Route115_EventScript_RegisterCyndy:: @ 81F2A95 +Route115_EventScript_RegisterCyndy:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route115_Text_CyndyRegister, MSGBOX_DEFAULT @@ -102,52 +102,52 @@ Route115_EventScript_RegisterCyndy:: @ 81F2A95 release end -Route115_EventScript_RematchCyndy:: @ 81F2AB4 +Route115_EventScript_RematchCyndy:: trainerbattle_rematch TRAINER_CYNDY_1, Route115_Text_CyndyRematchIntro, Route115_Text_CyndyRematchDefeat msgbox Route115_Text_CyndyPostRematch, MSGBOX_AUTOCLOSE end -Route115_EventScript_Hector:: @ 81F2ACB +Route115_EventScript_Hector:: trainerbattle_single TRAINER_HECTOR, Route115_Text_HectorIntro, Route115_Text_HectorDefeat msgbox Route115_Text_HectorPostBattle, MSGBOX_AUTOCLOSE end -Route115_EventScript_Kyra:: @ 81F2AE2 +Route115_EventScript_Kyra:: trainerbattle_single TRAINER_KYRA, Route115_Text_KyraIntro, Route115_Text_KyraDefeat msgbox Route115_Text_KyraPostBattle, MSGBOX_AUTOCLOSE end -Route115_EventScript_Jaiden:: @ 81F2AF9 +Route115_EventScript_Jaiden:: trainerbattle_single TRAINER_JAIDEN, Route115_Text_JaidenIntro, Route115_Text_JaidenDefeat msgbox Route115_Text_JaidenPostBattle, MSGBOX_AUTOCLOSE end -Route115_EventScript_Alix:: @ 81F2B10 +Route115_EventScript_Alix:: trainerbattle_single TRAINER_ALIX, Route115_Text_AlixIntro, Route115_Text_AlixDefeat msgbox Route115_Text_AlixPostBattle, MSGBOX_AUTOCLOSE end -Route115_EventScript_Helene:: @ 81F2B27 +Route115_EventScript_Helene:: trainerbattle_single TRAINER_HELENE, Route115_Text_HeleneIntro, Route115_Text_HeleneDefeat msgbox Route115_Text_HelenePostBattle, MSGBOX_AUTOCLOSE end -Route115_EventScript_Marlene:: @ 81F2B3E +Route115_EventScript_Marlene:: trainerbattle_single TRAINER_MARLENE, Route115_Text_MarleneIntro, Route115_Text_MarleneDefeat msgbox Route115_Text_MarlenePostBattle, MSGBOX_AUTOCLOSE end -Route115_Text_NeverKnowWhenCavePokemonWillAppear: @ 81F2B55 +Route115_Text_NeverKnowWhenCavePokemonWillAppear: .string "Exploring a cave isn't like walking\n" .string "on a road.\p" .string "You never know when wild POKéMON will\n" .string "appear. It's full of suspense.$" -Route115_Text_RouteSignRustboro: @ 81F2BC9 +Route115_Text_RouteSignRustboro: .string "ROUTE 115\n" .string "{DOWN_ARROW} RUSTBORO CITY$" -Route115_Text_MeteorFallsSign: @ 81F2BE3 +Route115_Text_MeteorFallsSign: .string "METEOR FALLS\n" .string "FALLARBOR TOWN THROUGH HERE$" diff --git a/data/maps/Route116/map.json b/data/maps/Route116/map.json index 247a4b7b15..13b4bac1cf 100644 --- a/data/maps/Route116/map.json +++ b/data/maps/Route116/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "25", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_PINAP_1", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "26", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_CHESTO_1", "script": "BerryTreeScript", "flag": "0" }, @@ -138,7 +138,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "66", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_CHESTO_2", "script": "BerryTreeScript", "flag": "0" }, @@ -151,7 +151,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "67", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_PINAP_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc index d904fb9eb8..2b974035a0 100644 --- a/data/maps/Route116/scripts.inc +++ b/data/maps/Route116/scripts.inc @@ -1,13 +1,13 @@ .set LOCALID_BRINEY, 11 .set LOCALID_WANDAS_BF_OUTSIDE, 21 -Route116_MapScripts:: @ 81F2C0C +Route116_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route116_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route116_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, Route116_OnFrame .byte 0 -Route116_OnTransition: @ 81F2C1C +Route116_OnTransition: call_if_set FLAG_RECOVERED_DEVON_GOODS, Route116_EventScript_SetWandasBoyfriendPos compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 call_if_eq AbnormalWeather_EventScript_HideMapNamePopup @@ -17,22 +17,22 @@ Route116_OnTransition: @ 81F2C1C call_if_eq AbnormalWeather_StartGroudonWeather end -Route116_EventScript_SetWandasBoyfriendPos:: @ 81F2C47 +Route116_EventScript_SetWandasBoyfriendPos:: setobjectxyperm LOCALID_WANDAS_BF_OUTSIDE, 38, 10 return -Route116_OnLoad: @ 81F2C4F +Route116_OnLoad: compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_NORTH call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute116North compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_SOUTH call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute116South end -Route116_OnFrame: @ 81F2C66 +Route116_OnFrame: map_script_2 VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_EndEventAndCleanup_1 .2byte 0 -Route116_EventScript_WandasBoyfriend:: @ 81F2C70 +Route116_EventScript_WandasBoyfriend:: lock faceplayer goto_if_set FLAG_RECOVERED_DEVON_GOODS, Route116_EventScript_BoyfriendGruntLeftTunnel @@ -41,17 +41,17 @@ Route116_EventScript_WandasBoyfriend:: @ 81F2C70 release end -Route116_EventScript_BoyfriendGruntLeftTunnel:: @ 81F2C8E +Route116_EventScript_BoyfriendGruntLeftTunnel:: msgbox Route116_Text_GoonHightailedItOutOfTunnel, MSGBOX_DEFAULT release end -Route116_EventScript_BoyfriendGruntInTunnel:: @ 81F2C98 +Route116_EventScript_BoyfriendGruntInTunnel:: msgbox Route116_Text_DiggingTunnelWhenGoonOrderedMeOut, MSGBOX_DEFAULT release end -Route116_EventScript_DevonEmployee:: @ 81F2CA2 +Route116_EventScript_DevonEmployee:: lock faceplayer goto_if_set FLAG_MET_DEVON_EMPLOYEE, Route116_EventScript_TryGiveRepeatBallAgain @@ -59,7 +59,7 @@ Route116_EventScript_DevonEmployee:: @ 81F2CA2 goto Route116_EventScript_GiveRepeatBall end -Route116_EventScript_GiveRepeatBall:: @ 81F2CBB +Route116_EventScript_GiveRepeatBall:: setflag FLAG_MET_DEVON_EMPLOYEE giveitem ITEM_REPEAT_BALL compare VAR_RESULT, FALSE @@ -80,27 +80,27 @@ Route116_EventScript_GiveRepeatBall:: @ 81F2CBB release end -Route116_EventScript_DevonEmployeeExit:: @ 81F2D15 +Route116_EventScript_DevonEmployeeExit:: applymovement VAR_LAST_TALKED, Route116_Movement_DevonEmployeeExit waitmovement 0 return -Route116_EventScript_DevonEmployeeExitEast:: @ 81F2D20 +Route116_EventScript_DevonEmployeeExitEast:: applymovement VAR_LAST_TALKED, Route116_Movement_DevonEmployeeExitEast waitmovement 0 return -Route116_EventScript_TryGiveRepeatBallAgain:: @ 81F2D2B +Route116_EventScript_TryGiveRepeatBallAgain:: msgbox Route116_Text_TokenOfAppreciation, MSGBOX_DEFAULT goto Route116_EventScript_GiveRepeatBall end -Route116_EventScript_NoRoomForRepeatBall:: @ 81F2D39 +Route116_EventScript_NoRoomForRepeatBall:: msgbox Route116_Text_BagIsJamPacked, MSGBOX_DEFAULT release end -Route116_Movement_DevonEmployeeExit: @ 81F2D43 +Route116_Movement_DevonEmployeeExit: walk_left walk_left walk_left @@ -111,7 +111,7 @@ Route116_Movement_DevonEmployeeExit: @ 81F2D43 walk_left step_end -Route116_Movement_DevonEmployeeExitEast: @ 81F2D4C +Route116_Movement_DevonEmployeeExitEast: walk_down walk_left walk_left @@ -124,27 +124,27 @@ Route116_Movement_DevonEmployeeExitEast: @ 81F2D4C walk_left step_end -Route116_EventScript_RouteSignRustboro:: @ 81F2D57 +Route116_EventScript_RouteSignRustboro:: msgbox Route116_Text_RouteSignRustboro, MSGBOX_SIGN end -Route116_EventScript_RusturfTunnelSign:: @ 81F2D60 +Route116_EventScript_RusturfTunnelSign:: msgbox Route116_Text_RusturfTunnelSign, MSGBOX_SIGN end -Route116_EventScript_TunnelersRestHouseSign:: @ 81F2D69 +Route116_EventScript_TunnelersRestHouseSign:: msgbox Route116_Text_TunnelersRestHouse, MSGBOX_SIGN end -Route116_EventScript_TrainerTipsBToStopEvolution:: @ 81F2D72 +Route116_EventScript_TrainerTipsBToStopEvolution:: msgbox Route116_Text_TrainerTipsBToStopEvolution, MSGBOX_SIGN end -Route116_EventScript_TrainerTipsBagHasPockets:: @ 81F2D7B +Route116_EventScript_TrainerTipsBagHasPockets:: msgbox Route116_Text_TrainerTipsBagHasPockets, MSGBOX_SIGN end -Route116_EventScript_Briney:: @ 81F2D84 +Route116_EventScript_Briney:: lock faceplayer msgbox Route116_Text_ScoundrelMadeOffWithPeeko, MSGBOX_DEFAULT @@ -152,7 +152,7 @@ Route116_EventScript_Briney:: @ 81F2D84 release end -Route116_EventScript_BrineyTrigger:: @ 81F2D95 +Route116_EventScript_BrineyTrigger:: lockall applymovement LOCALID_BRINEY, Common_Movement_WalkInPlaceFastestRight applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft @@ -162,7 +162,7 @@ Route116_EventScript_BrineyTrigger:: @ 81F2D95 releaseall end -Route116_EventScript_GlassesMan:: @ 81F2DB6 +Route116_EventScript_GlassesMan:: lock faceplayer checkitem ITEM_BLACK_GLASSES, 1 @@ -175,13 +175,13 @@ Route116_EventScript_GlassesMan:: @ 81F2DB6 release end -Route116_EventScript_FoundGlassesNotOnPlayer:: @ 81F2DE2 +Route116_EventScript_FoundGlassesNotOnPlayer:: msgbox Route116_Text_CantFindGlassesNotHere, MSGBOX_DEFAULT closemessage goto Route116_EventScript_GlassesManExit end -Route116_EventScript_PlayerHasGlasses:: @ 81F2DF1 +Route116_EventScript_PlayerHasGlasses:: msgbox Route116_Text_CanYouHelpMeFindGlasses, MSGBOX_DEFAULT msgbox Route116_Text_MayISeeThoseGlasses, MSGBOX_DEFAULT specialvar VAR_RESULT, FoundBlackGlasses @@ -191,13 +191,13 @@ Route116_EventScript_PlayerHasGlasses:: @ 81F2DF1 release end -Route116_EventScript_FoundGlassesOnPlayer:: @ 81F2E1B +Route116_EventScript_FoundGlassesOnPlayer:: msgbox Route116_Text_NotWhatImLookingForMaybeTheyArentHere, MSGBOX_DEFAULT closemessage goto Route116_EventScript_GlassesManExit end -Route116_EventScript_GlassesManExit:: @ 81F2E2A +Route116_EventScript_GlassesManExit:: delay 20 compare VAR_FACING, DIR_NORTH call_if_eq Route116_EventScript_GlassesManExitNormal @@ -211,17 +211,17 @@ Route116_EventScript_GlassesManExit:: @ 81F2E2A release end -Route116_EventScript_GlassesManExitNormal:: @ 81F2E5E +Route116_EventScript_GlassesManExitNormal:: applymovement VAR_LAST_TALKED, Route116_Movement_GlassesManExit waitmovement 0 return -Route116_EventScript_GlassesManExitEast:: @ 81F2E69 +Route116_EventScript_GlassesManExitEast:: applymovement VAR_LAST_TALKED, Route116_Movement_GlassesManExitEast waitmovement 0 return -Route116_Movement_GlassesManExit: @ 81F2E74 +Route116_Movement_GlassesManExit: walk_left walk_left walk_left @@ -233,7 +233,7 @@ Route116_Movement_GlassesManExit: @ 81F2E74 walk_left step_end -Route116_Movement_GlassesManExitEast: @ 81F2E7E +Route116_Movement_GlassesManExitEast: walk_up walk_left walk_left @@ -246,17 +246,17 @@ Route116_Movement_GlassesManExitEast: @ 81F2E7E walk_left step_end -Route116_EventScript_Joey:: @ 81F2E89 +Route116_EventScript_Joey:: trainerbattle_single TRAINER_JOEY, Route116_Text_JoeyIntro, Route116_Text_JoeyDefeat msgbox Route116_Text_JoeyPostBattle, MSGBOX_AUTOCLOSE end -Route116_EventScript_Jose:: @ 81F2EA0 +Route116_EventScript_Jose:: trainerbattle_single TRAINER_JOSE, Route116_Text_JoseIntro, Route116_Text_JoseDefeat msgbox Route116_Text_JosePostBattle, MSGBOX_AUTOCLOSE end -Route116_EventScript_Jerry:: @ 81F2EB7 +Route116_EventScript_Jerry:: trainerbattle_single TRAINER_JERRY_1, Route116_Text_JerryIntro, Route116_Text_JerryDefeat, Route116_EventScript_TryRegisterJerryAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -269,12 +269,12 @@ Route116_EventScript_Jerry:: @ 81F2EB7 release end -Route116_EventScript_TryRegisterJerryAfterBattle:: @ 81F2EF8 +Route116_EventScript_TryRegisterJerryAfterBattle:: goto_if_set FLAG_HAS_MATCH_CALL, Route116_EventScript_RegisterJerryAfterBattle release end -Route116_EventScript_RegisterJerryAfterBattle:: @ 81F2F03 +Route116_EventScript_RegisterJerryAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route116_Text_JerryRegister2, MSGBOX_DEFAULT @@ -282,34 +282,34 @@ Route116_EventScript_RegisterJerryAfterBattle:: @ 81F2F03 release end -Route116_EventScript_TryRegisterJerry:: @ 81F2F22 +Route116_EventScript_TryRegisterJerry:: goto_if_set FLAG_HAS_MATCH_CALL, Route116_EventScript_RegisterJerry msgbox Route116_Text_JerryPostBattle, MSGBOX_DEFAULT release end -Route116_EventScript_RegisterJerry:: @ 81F2F35 +Route116_EventScript_RegisterJerry:: msgbox Route116_Text_JerryRegister1, MSGBOX_DEFAULT register_matchcall TRAINER_JERRY_1 release end -Route116_EventScript_RematchJerry:: @ 81F2F4E +Route116_EventScript_RematchJerry:: trainerbattle_rematch TRAINER_JERRY_1, Route116_Text_JerryRematchIntro, Route116_Text_JerryRematchDefeat msgbox Route116_Text_JerryPostRematch, MSGBOX_AUTOCLOSE end -Route116_EventScript_Clark:: @ 81F2F65 +Route116_EventScript_Clark:: trainerbattle_single TRAINER_CLARK, Route116_Text_ClarkIntro, Route116_Text_ClarkDefeat msgbox Route116_Text_ClarkPostBattle, MSGBOX_AUTOCLOSE end -Route116_EventScript_Janice:: @ 81F2F7C +Route116_EventScript_Janice:: trainerbattle_single TRAINER_JANICE, Route116_Text_JaniceIntro, Route116_Text_JaniceDefeat msgbox Route116_Text_JanicePostBattle, MSGBOX_AUTOCLOSE end -Route116_EventScript_Karen:: @ 81F2F93 +Route116_EventScript_Karen:: trainerbattle_single TRAINER_KAREN_1, Route116_Text_KarenIntro, Route116_Text_KarenDefeat, Route116_EventScript_TryRegisterKarenAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -322,12 +322,12 @@ Route116_EventScript_Karen:: @ 81F2F93 release end -Route116_EventScript_TryRegisterKarenAfterBattle:: @ 81F2FD4 +Route116_EventScript_TryRegisterKarenAfterBattle:: goto_if_set FLAG_HAS_MATCH_CALL, Route116_EventScript_RegisterKarenAfterBattle release end -Route116_EventScript_RegisterKarenAfterBattle:: @ 81F2FDF +Route116_EventScript_RegisterKarenAfterBattle:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route116_Text_KarenRegister2, MSGBOX_DEFAULT @@ -335,44 +335,44 @@ Route116_EventScript_RegisterKarenAfterBattle:: @ 81F2FDF release end -Route116_EventScript_TryRegisterKaren:: @ 81F2FFE +Route116_EventScript_TryRegisterKaren:: goto_if_set FLAG_HAS_MATCH_CALL, Route116_EventScript_RegisterKaren msgbox Route116_Text_KarenPostBattle, MSGBOX_DEFAULT release end -Route116_EventScript_RegisterKaren:: @ 81F3011 +Route116_EventScript_RegisterKaren:: msgbox Route116_Text_KarenRegister1, MSGBOX_DEFAULT register_matchcall TRAINER_KAREN_1 release end -Route116_EventScript_RematchKaren:: @ 81F302A +Route116_EventScript_RematchKaren:: trainerbattle_rematch TRAINER_KAREN_1, Route116_Text_KarenRematchIntro, Route116_Text_KarenRematchDefeat msgbox Route116_Text_KarenPostRematch, MSGBOX_AUTOCLOSE end -Route116_EventScript_Sarah:: @ 81F3041 +Route116_EventScript_Sarah:: trainerbattle_single TRAINER_SARAH, Route116_Text_SarahIntro, Route116_Text_SarahDefeat msgbox Route116_Text_SarahPostBattle, MSGBOX_AUTOCLOSE end -Route116_EventScript_Dawson:: @ 81F3058 +Route116_EventScript_Dawson:: trainerbattle_single TRAINER_DAWSON, Route116_Text_DawsonIntro, Route116_Text_DawsonDefeat msgbox Route116_Text_DawsonPostBattle, MSGBOX_AUTOCLOSE end -Route116_EventScript_Devan:: @ 81F306F +Route116_EventScript_Devan:: trainerbattle_single TRAINER_DEVAN, Route116_Text_DevanIntro, Route116_Text_DevanDefeat msgbox Route116_Text_DevanPostBattle, MSGBOX_AUTOCLOSE end -Route116_EventScript_Johnson:: @ 81F3086 +Route116_EventScript_Johnson:: trainerbattle_single TRAINER_JOHNSON, Route116_Text_JohnsonIntro, Route116_Text_JohnsonDefeat msgbox Route116_Text_JohnsonPostBattle, MSGBOX_AUTOCLOSE end -Route116_Text_ScoundrelMadeOffWithPeeko: @ 81F309D +Route116_Text_ScoundrelMadeOffWithPeeko: .string "Ohhh, what am I to do?\p" .string "We were on our walk, PEEKO and I, when\n" .string "we were jumped by an odd thug…\p" @@ -380,11 +380,11 @@ Route116_Text_ScoundrelMadeOffWithPeeko: @ 81F309D .string "darling PEEKO!\p" .string "Wrrrooooooaaaar! PEEKO!$" -Route116_Text_WantToDigTunnel: @ 81F3140 +Route116_Text_WantToDigTunnel: .string "Nnn… Roar!\p" .string "I want to dig that tunnel!$" -Route116_Text_DiggingTunnelWhenGoonOrderedMeOut: @ 81F3166 +Route116_Text_DiggingTunnelWhenGoonOrderedMeOut: .string "Nnn… Roar!\n" .string "What's going on?\p" .string "I was digging the tunnel without any\n" @@ -398,12 +398,12 @@ Route116_Text_DiggingTunnelWhenGoonOrderedMeOut: @ 81F3166 .string "something stupid and startle the\l" .string "POKéMON into an uproar.$" -Route116_Text_GoonHightailedItOutOfTunnel: @ 81F32C1 +Route116_Text_GoonHightailedItOutOfTunnel: .string "Nnn… Roar!\p" .string "That goofy goon hightailed it out of\n" .string "the tunnel! I can go back to digging!$" -Route116_Text_ThankYouTokenOfAppreciation: @ 81F3317 +Route116_Text_ThankYouTokenOfAppreciation: .string "Oh! It's you!\p" .string "You're that person who not only helped\n" .string "me in PETALBURG WOODS, but also got\l" @@ -422,61 +422,61 @@ Route116_Text_ThankYouTokenOfAppreciation: @ 81F3317 .string "As a token of our appreciation, this\n" .string "is our gift to our wonderful TRAINER!$" -Route116_Text_NewBallAvailableAtMart: @ 81F3521 +Route116_Text_NewBallAvailableAtMart: .string "Our new POKé BALL will be available\n" .string "at the POKéMON MART in RUSTBORO.\p" .string "Please do try it out!\n" .string "Thank you and bye-bye!$" -Route116_Text_BagIsJamPacked: @ 81F3593 +Route116_Text_BagIsJamPacked: .string "Your BAG is jam-packed.\n" .string "I can't give you this REPEAT BALL.$" -Route116_Text_TokenOfAppreciation: @ 81F35CE +Route116_Text_TokenOfAppreciation: .string "As a token of our appreciation for\n" .string "your delivering our package, I have\l" .string "a gift of a new kind of POKé BALL\l" .string "for our most wonderful TRAINER!$" -Route116_Text_CanYouHelpMeFindGlasses: @ 81F3657 +Route116_Text_CanYouHelpMeFindGlasses: .string "I dropped my glasses…\n" .string "Can you help me find them?$" -Route116_Text_MayISeeThoseGlasses: @ 81F3688 +Route116_Text_MayISeeThoseGlasses: .string "Those glasses!\n" .string "May I see them for a second?$" -Route116_Text_NotWhatImLookingForMaybeTheyArentHere: @ 81F36B4 +Route116_Text_NotWhatImLookingForMaybeTheyArentHere: .string "Hmm…\n" .string "These are BLACKGLASSES.\l" .string "They're not what I'm looking for…\p" .string "Maybe my glasses aren't around\n" .string "here…$" -Route116_Text_CantFindGlassesNotHere: @ 81F3718 +Route116_Text_CantFindGlassesNotHere: .string "Hmm…\n" .string "I can't find my glasses anywhere…\l" .string "Maybe they're not around here…$" -Route116_Text_NotWhatImLookingFor: @ 81F375E +Route116_Text_NotWhatImLookingFor: .string "Hmm…\n" .string "These are BLACKGLASSES.\l" .string "They're not what I'm looking for…$" -Route116_Text_RouteSignRustboro: @ 81F379D +Route116_Text_RouteSignRustboro: .string "ROUTE 116\n" .string "{LEFT_ARROW} RUSTBORO CITY$" -Route116_Text_RusturfTunnelSign: @ 81F37B7 +Route116_Text_RusturfTunnelSign: .string "RUSTURF TUNNEL\n" .string "“Linking RUSTBORO and VERDANTURF\p" .string "“The tunnel project has been\n" .string "canceled.”$" -Route116_Text_TunnelersRestHouse: @ 81F380F +Route116_Text_TunnelersRestHouse: .string "TUNNELER'S REST HOUSE$" -Route116_Text_TrainerTipsBToStopEvolution: @ 81F3825 +Route116_Text_TrainerTipsBToStopEvolution: .string "TRAINER TIPS\p" .string "If you want to stop a POKéMON from\n" .string "evolving, press the B Button while it\l" @@ -484,7 +484,7 @@ Route116_Text_TrainerTipsBToStopEvolution: @ 81F3825 .string "The startled POKéMON will stop.\p" .string "This is called an evolution cancel.$" -Route116_Text_TrainerTipsBagHasPockets: @ 81F38D4 +Route116_Text_TrainerTipsBagHasPockets: .string "TRAINER TIPS\p" .string "Your BAG has several POCKETS.\p" .string "Items you obtain are automatically\n" diff --git a/data/maps/Route116_TunnelersRestHouse/scripts.inc b/data/maps/Route116_TunnelersRestHouse/scripts.inc index 42a80fc780..bc46cec731 100644 --- a/data/maps/Route116_TunnelersRestHouse/scripts.inc +++ b/data/maps/Route116_TunnelersRestHouse/scripts.inc @@ -1,20 +1,20 @@ -Route116_TunnelersRestHouse_MapScripts:: @ 822B850 +Route116_TunnelersRestHouse_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route116_TunnelersRestHouse_OnTransition .byte 0 -Route116_TunnelersRestHouse_OnTransition: @ 822B856 +Route116_TunnelersRestHouse_OnTransition: setflag FLAG_LANDMARK_TUNNELERS_REST_HOUSE end -Route116_TunnelersRestHouse_EventScript_Tunneler1:: @ 822B85A +Route116_TunnelersRestHouse_EventScript_Tunneler1:: msgbox Route116_TunnelersRestHouse_Text_WeHadToStopBoring, MSGBOX_NPC end -Route116_TunnelersRestHouse_EventScript_Tunneler2:: @ 822B863 +Route116_TunnelersRestHouse_EventScript_Tunneler2:: msgbox Route116_TunnelersRestHouse_Text_ManDiggingHisWayToVerdanturf, MSGBOX_NPC end -Route116_TunnelersRestHouse_EventScript_Tunneler3:: @ 822B86C +Route116_TunnelersRestHouse_EventScript_Tunneler3:: lock faceplayer goto_if_set FLAG_RUSTURF_TUNNEL_OPENED, Route116_TunnelersRestHouse_EventScript_TunnelOpened @@ -22,12 +22,12 @@ Route116_TunnelersRestHouse_EventScript_Tunneler3:: @ 822B86C release end -Route116_TunnelersRestHouse_EventScript_TunnelOpened:: @ 822B881 +Route116_TunnelersRestHouse_EventScript_TunnelOpened:: msgbox Route116_TunnelersRestHouse_Text_TunnelHasGoneThrough, MSGBOX_DEFAULT release end -Route116_TunnelersRestHouse_Text_WeHadToStopBoring: @ 822B88B +Route116_TunnelersRestHouse_Text_WeHadToStopBoring: .string "That RUSTURF TUNNEL there…\p" .string "At first, we had a huge work crew boring\n" .string "through rock with the latest machinery.\l" @@ -38,7 +38,7 @@ Route116_TunnelersRestHouse_Text_WeHadToStopBoring: @ 822B88B .string "So, we've got nothing to do but loll\n" .string "around here doing nothing.$" -Route116_TunnelersRestHouse_Text_ManDiggingHisWayToVerdanturf: @ 822B99F +Route116_TunnelersRestHouse_Text_ManDiggingHisWayToVerdanturf: .string "There's a man digging his way to\n" .string "VERDANTURF all by his lonesome.\l" .string "He's desperate to get through.\p" @@ -48,13 +48,13 @@ Route116_TunnelersRestHouse_Text_ManDiggingHisWayToVerdanturf: @ 822B99F .string "harming the natural environment.\p" .string "I wonder if he made it through yet.$" -Route116_TunnelersRestHouse_Text_GetToVerdanturfWithoutTunnel: @ 822BAAF +Route116_TunnelersRestHouse_Text_GetToVerdanturfWithoutTunnel: .string "To get to VERDANTURF without using\n" .string "this TUNNEL, you'd have to cross the\l" .string "sea to DEWFORD, sail on to SLATEPORT,\l" .string "then travel through MAUVILLE.$" -Route116_TunnelersRestHouse_Text_TunnelHasGoneThrough: @ 822BB3B +Route116_TunnelersRestHouse_Text_TunnelHasGoneThrough: .string "Did you hear? The TUNNEL to VERDANTURF\n" .string "has gone through!\p" .string "Sometimes, if you hope strongly enough,\n" diff --git a/data/maps/Route117/map.json b/data/maps/Route117/map.json index dd923a7cdd..b728667418 100644 --- a/data/maps/Route117/map.json +++ b/data/maps/Route117/map.json @@ -164,7 +164,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "29", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_3", "script": "BerryTreeScript", "flag": "0" }, @@ -177,7 +177,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "28", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_2", "script": "BerryTreeScript", "flag": "0" }, @@ -190,7 +190,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "27", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_1", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route117/scripts.inc b/data/maps/Route117/scripts.inc index 08f8d05002..f6ab885917 100644 --- a/data/maps/Route117/scripts.inc +++ b/data/maps/Route117/scripts.inc @@ -1,44 +1,44 @@ .set LOCALID_DAYCARE_MAN, 3 -Route117_MapScripts:: @ 81F397D +Route117_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route117_OnTransition .byte 0 -Route117_OnTransition: @ 81F3983 +Route117_OnTransition: call Route117_EventScript_TryMoveDayCareMan end -Route117_EventScript_TryMoveDayCareMan:: @ 81F3989 +Route117_EventScript_TryMoveDayCareMan:: goto_if_unset FLAG_PENDING_DAYCARE_EGG, Route117_EventScript_StopMoveDayCareMan setobjectxyperm LOCALID_DAYCARE_MAN, 47, 6 -Route117_EventScript_StopMoveDayCareMan:: @ 81F3999 +Route117_EventScript_StopMoveDayCareMan:: return -Route117_EventScript_Woman:: @ 81F399A +Route117_EventScript_Woman:: msgbox Route117_Text_ArentTheseFlowersPretty, MSGBOX_NPC end -Route117_EventScript_LittleBoy:: @ 81F39A3 +Route117_EventScript_LittleBoy:: msgbox Route117_Text_AirIsTastyHere, MSGBOX_NPC end -Route117_EventScript_Girl:: @ 81F39AC +Route117_EventScript_Girl:: msgbox Route117_Text_DayCarePokemonHadNewMove, MSGBOX_NPC end -Route117_EventScript_RouteSignVerdanturf:: @ 81F39B5 +Route117_EventScript_RouteSignVerdanturf:: msgbox Route117_Text_RouteSignVerdanturf, MSGBOX_SIGN end -Route117_EventScript_RouteSignMauville:: @ 81F39BE +Route117_EventScript_RouteSignMauville:: msgbox Route117_Text_RouteSignMauville, MSGBOX_SIGN end -Route117_EventScript_DayCareSign:: @ 81F39C7 +Route117_EventScript_DayCareSign:: msgbox Route117_Text_DayCareSign, MSGBOX_SIGN end -Route117_EventScript_Isaac:: @ 81F39D0 +Route117_EventScript_Isaac:: trainerbattle_single TRAINER_ISAAC_1, Route117_Text_IsaacIntro, Route117_Text_IsaacDefeat, Route117_EventScript_RegisterIsaac specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -47,7 +47,7 @@ Route117_EventScript_Isaac:: @ 81F39D0 release end -Route117_EventScript_RegisterIsaac:: @ 81F39FC +Route117_EventScript_RegisterIsaac:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route117_Text_IsaacRegister, MSGBOX_DEFAULT @@ -55,12 +55,12 @@ Route117_EventScript_RegisterIsaac:: @ 81F39FC release end -Route117_EventScript_RematchIsaac:: @ 81F3A1B +Route117_EventScript_RematchIsaac:: trainerbattle_rematch TRAINER_ISAAC_1, Route117_Text_IsaacRematchIntro, Route117_Text_IsaacRematchDefeat msgbox Route117_Text_IsaacPostRematch, MSGBOX_AUTOCLOSE end -Route117_EventScript_Lydia:: @ 81F3A32 +Route117_EventScript_Lydia:: trainerbattle_single TRAINER_LYDIA_1, Route117_Text_LydiaIntro, Route117_Text_LydiaDefeat, Route117_EventScript_RegisterLydia specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -69,7 +69,7 @@ Route117_EventScript_Lydia:: @ 81F3A32 release end -Route117_EventScript_RegisterLydia:: @ 81F3A5E +Route117_EventScript_RegisterLydia:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route117_Text_LydiaRegister, MSGBOX_DEFAULT @@ -77,12 +77,12 @@ Route117_EventScript_RegisterLydia:: @ 81F3A5E release end -Route117_EventScript_RematchLydia:: @ 81F3A7D +Route117_EventScript_RematchLydia:: trainerbattle_rematch TRAINER_LYDIA_1, Route117_Text_LydiaRematchIntro, Route117_Text_LydiaRematchDefeat msgbox Route117_Text_LydiaPostRematch, MSGBOX_AUTOCLOSE end -Route117_EventScript_Dylan:: @ 81F3A94 +Route117_EventScript_Dylan:: trainerbattle_single TRAINER_DYLAN_1, Route117_Text_DylanIntro, Route117_Text_DylanDefeat, Route117_EventScript_RegisterDylan specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -91,7 +91,7 @@ Route117_EventScript_Dylan:: @ 81F3A94 release end -Route117_EventScript_RegisterDylan:: @ 81F3AC0 +Route117_EventScript_RegisterDylan:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route117_Text_DylanRegister, MSGBOX_DEFAULT @@ -99,12 +99,12 @@ Route117_EventScript_RegisterDylan:: @ 81F3AC0 release end -Route117_EventScript_RematchDylan:: @ 81F3ADF +Route117_EventScript_RematchDylan:: trainerbattle_rematch TRAINER_DYLAN_1, Route117_Text_DylanRematchIntro, Route117_Text_DylanRematchDefeat msgbox Route117_Text_DylanPostRematch, MSGBOX_AUTOCLOSE end -Route117_EventScript_Maria:: @ 81F3AF6 +Route117_EventScript_Maria:: trainerbattle_single TRAINER_MARIA_1, Route117_Text_MariaIntro, Route117_Text_MariaDefeat, Route117_EventScript_RegisterMaria specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -113,7 +113,7 @@ Route117_EventScript_Maria:: @ 81F3AF6 release end -Route117_EventScript_RegisterMaria:: @ 81F3B22 +Route117_EventScript_RegisterMaria:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route117_Text_MariaRegister, MSGBOX_DEFAULT @@ -121,17 +121,17 @@ Route117_EventScript_RegisterMaria:: @ 81F3B22 release end -Route117_EventScript_RematchMaria:: @ 81F3B41 +Route117_EventScript_RematchMaria:: trainerbattle_rematch TRAINER_MARIA_1, Route117_Text_MariaRematchIntro, Route117_Text_MariaRematchDefeat msgbox Route117_Text_MariaPostRematch, MSGBOX_AUTOCLOSE end -Route117_EventScript_Derek:: @ 81F3B58 +Route117_EventScript_Derek:: trainerbattle_single TRAINER_DEREK, Route117_Text_DerekIntro, Route117_Text_DerekDefeat msgbox Route117_Text_DerekPostBattle, MSGBOX_AUTOCLOSE end -Route117_EventScript_Anna:: @ 81F3B6F +Route117_EventScript_Anna:: trainerbattle_double TRAINER_ANNA_AND_MEG_1, Route117_Text_AnnaIntro, Route117_Text_AnnaDefeat, Route117_Text_AnnaNotEnoughMons, Route117_EventScript_RegisterAnna specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -140,18 +140,18 @@ Route117_EventScript_Anna:: @ 81F3B6F release end -Route117_EventScript_RegisterAnna:: @ 81F3B9F +Route117_EventScript_RegisterAnna:: msgbox Route117_Text_AnnaAndMegRegister, MSGBOX_DEFAULT register_matchcall TRAINER_ANNA_AND_MEG_1 release end -Route117_EventScript_RematchAnna:: @ 81F3BB8 +Route117_EventScript_RematchAnna:: trainerbattle_rematch_double TRAINER_ANNA_AND_MEG_1, Route117_Text_AnnaRematchIntro, Route117_Text_AnnaRematchDefeat, Route117_Text_AnnaRematchNotEnoughMons msgbox Route117_Text_AnnaPostRematch, MSGBOX_AUTOCLOSE end -Route117_EventScript_Meg:: @ 81F3BD3 +Route117_EventScript_Meg:: trainerbattle_double TRAINER_ANNA_AND_MEG_1, Route117_Text_MegIntro, Route117_Text_MegDefeat, Route117_Text_MegNotEnoughMons, Route117_EventScript_RegisterMeg specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -160,55 +160,55 @@ Route117_EventScript_Meg:: @ 81F3BD3 release end -Route117_EventScript_RegisterMeg:: @ 81F3C03 +Route117_EventScript_RegisterMeg:: msgbox Route117_Text_AnnaAndMegRegister, MSGBOX_DEFAULT register_matchcall TRAINER_ANNA_AND_MEG_1 release end -Route117_EventScript_RematchMeg:: @ 81F3C1C +Route117_EventScript_RematchMeg:: trainerbattle_rematch_double TRAINER_ANNA_AND_MEG_1, Route117_Text_MegRematchIntro, Route117_Text_MegRematchDefeat, Route117_Text_MegRematchNotEnoughMons msgbox Route117_Text_MegPostRematch, MSGBOX_AUTOCLOSE end -Route117_EventScript_Melina:: @ 81F3C37 +Route117_EventScript_Melina:: trainerbattle_single TRAINER_MELINA, Route117_Text_MelinaIntro, Route117_Text_MelinaDefeat msgbox Route117_Text_MelinaPostBattle, MSGBOX_AUTOCLOSE end -Route117_EventScript_Brandi:: @ 81F3C4E +Route117_EventScript_Brandi:: trainerbattle_single TRAINER_BRANDI, Route117_Text_BrandiIntro, Route117_Text_BrandiDefeat msgbox Route117_Text_BrandiPostBattle, MSGBOX_AUTOCLOSE end -Route117_EventScript_Aisha:: @ 81F3C65 +Route117_EventScript_Aisha:: trainerbattle_single TRAINER_AISHA, Route117_Text_AishaIntro, Route117_Text_AishaDefeat msgbox Route117_Text_AishaPostBattle, MSGBOX_AUTOCLOSE end -Route117_Text_DayCarePokemonHadNewMove: @ 81F3C7C +Route117_Text_DayCarePokemonHadNewMove: .string "I left my POKéMON at the DAY CARE.\p" .string "When I got it back, it had a new move\n" .string "that I didn't teach it.\l" .string "I was really, really surprised.$" -Route117_Text_ArentTheseFlowersPretty: @ 81F3CFD +Route117_Text_ArentTheseFlowersPretty: .string "What do you think?\n" .string "Aren't these flowers pretty?\p" .string "I planted them all!$" -Route117_Text_AirIsTastyHere: @ 81F3D41 +Route117_Text_AirIsTastyHere: .string "The air is tasty here!$" -Route117_Text_RouteSignVerdanturf: @ 81F3D58 +Route117_Text_RouteSignVerdanturf: .string "ROUTE 117\n" .string "{LEFT_ARROW} VERDANTURF TOWN$" -Route117_Text_RouteSignMauville: @ 81F3D74 +Route117_Text_RouteSignMauville: .string "ROUTE 117\n" .string "{RIGHT_ARROW} MAUVILLE CITY$" -Route117_Text_DayCareSign: @ 81F3D8E +Route117_Text_DayCareSign: .string "POKéMON DAY CARE\n" .string "“Let us raise your POKéMON.”$" diff --git a/data/maps/Route117_PokemonDayCare/scripts.inc b/data/maps/Route117_PokemonDayCare/scripts.inc index 898935b26a..264778dcea 100644 --- a/data/maps/Route117_PokemonDayCare/scripts.inc +++ b/data/maps/Route117_PokemonDayCare/scripts.inc @@ -1,8 +1,8 @@ -Route117_PokemonDayCare_MapScripts:: @ 822BBB1 +Route117_PokemonDayCare_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route117_PokemonDayCare_OnTransition .byte 0 -Route117_PokemonDayCare_OnTransition: @ 822BBB7 +Route117_PokemonDayCare_OnTransition: setflag FLAG_LANDMARK_POKEMON_DAYCARE end diff --git a/data/maps/Route118/map.json b/data/maps/Route118/map.json index 7b541e629e..67acb1b984 100644 --- a/data/maps/Route118/map.json +++ b/data/maps/Route118/map.json @@ -39,7 +39,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "31", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SITRUS_1", "script": "BerryTreeScript", "flag": "0" }, @@ -52,7 +52,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "32", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SOIL", "script": "BerryTreeScript", "flag": "0" }, @@ -65,7 +65,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "33", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SITRUS_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc index 0197508bb2..723f3c0b54 100644 --- a/data/maps/Route118/scripts.inc +++ b/data/maps/Route118/scripts.inc @@ -1,12 +1,12 @@ .set LOCALID_STEVEN, 19 -Route118_MapScripts:: @ 81F3DBC +Route118_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route118_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route118_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, Route118_OnFrame .byte 0 -Route118_OnTransition: @ 81F3DCC +Route118_OnTransition: call GabbyAndTy_EventScript_UpdateLocation compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 call_if_eq AbnormalWeather_EventScript_HideMapNamePopup @@ -16,18 +16,18 @@ Route118_OnTransition: @ 81F3DCC call_if_eq AbnormalWeather_StartGroudonWeather end -Route118_OnLoad: @ 81F3DF3 +Route118_OnLoad: compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_EAST call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute118East compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_WEST call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute118West end -Route118_OnFrame: @ 81F3E0A +Route118_OnFrame: map_script_2 VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_EndEventAndCleanup_1 .2byte 0 -Route118_EventScript_GoodRodFisherman:: @ 81F3E14 +Route118_EventScript_GoodRodFisherman:: lock faceplayer goto_if_set FLAG_RECEIVED_GOOD_ROD, Route118_EventScript_ReceivedGoodRod @@ -38,7 +38,7 @@ Route118_EventScript_GoodRodFisherman:: @ 81F3E14 goto_if_eq Route118_EventScript_DeclineGoodRod end -Route118_EventScript_ReceiveGoodRod:: @ 81F3E3E +Route118_EventScript_ReceiveGoodRod:: msgbox Route118_Text_IdenticalMindsTakeThis, MSGBOX_DEFAULT giveitem ITEM_GOOD_ROD setflag FLAG_RECEIVED_GOOD_ROD @@ -46,29 +46,29 @@ Route118_EventScript_ReceiveGoodRod:: @ 81F3E3E release end -Route118_EventScript_DeclineGoodRod:: @ 81F3E5F +Route118_EventScript_DeclineGoodRod:: msgbox Route118_Text_DontYouLikeToFish, MSGBOX_DEFAULT release end -Route118_EventScript_ReceivedGoodRod:: @ 81F3E69 +Route118_EventScript_ReceivedGoodRod:: msgbox Route118_Text_TryCatchingMonWithGoodRod, MSGBOX_DEFAULT release end -Route118_EventScript_Girl:: @ 81F3E73 +Route118_EventScript_Girl:: msgbox Route118_Text_CanCrossRiversWithSurf, MSGBOX_NPC end -Route118_EventScript_RouteSignMauville:: @ 81F3E7C +Route118_EventScript_RouteSignMauville:: msgbox Route118_Text_RouteSignMauville, MSGBOX_SIGN end -Route118_EventScript_RouteSign119:: @ 81F3E85 +Route118_EventScript_RouteSign119:: msgbox Route118_Text_RouteSign119, MSGBOX_SIGN end -Route118_EventScript_StevenTrigger0:: @ 81F3E8E +Route118_EventScript_StevenTrigger0:: lockall setvar VAR_0x8008, 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp @@ -78,7 +78,7 @@ Route118_EventScript_StevenTrigger0:: @ 81F3E8E goto Route118_EventScript_StevenTrigger end -Route118_EventScript_StevenTrigger1:: @ 81F3EAE +Route118_EventScript_StevenTrigger1:: lockall setvar VAR_0x8008, 1 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp @@ -86,7 +86,7 @@ Route118_EventScript_StevenTrigger1:: @ 81F3EAE goto Route118_EventScript_StevenTrigger end -Route118_EventScript_StevenTrigger2:: @ 81F3EC4 +Route118_EventScript_StevenTrigger2:: lockall setvar VAR_0x8008, 2 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp @@ -96,7 +96,7 @@ Route118_EventScript_StevenTrigger2:: @ 81F3EC4 goto Route118_EventScript_StevenTrigger end -Route118_EventScript_StevenTrigger:: @ 81F3EE4 +Route118_EventScript_StevenTrigger:: playse SE_LEDGE applymovement LOCALID_STEVEN, Route118_Movement_StevenJumpLedge waitmovement 0 @@ -114,44 +114,44 @@ Route118_EventScript_StevenTrigger:: @ 81F3EE4 releaseall end -Route118_EventScript_StevenExit0:: @ 81F3F28 +Route118_EventScript_StevenExit0:: applymovement OBJ_EVENT_ID_PLAYER, Route118_Movement_PlayerWatchStevenExit applymovement LOCALID_STEVEN, Route118_Movement_StevenExit0 waitmovement 0 return -Route118_EventScript_StevenExit1:: @ 81F3F3A +Route118_EventScript_StevenExit1:: applymovement OBJ_EVENT_ID_PLAYER, Route118_Movement_PlayerWatchStevenExit applymovement LOCALID_STEVEN, Route118_Movement_StevenExit1 waitmovement 0 return -Route118_EventScript_StevenExit2:: @ 81F3F4C +Route118_EventScript_StevenExit2:: applymovement OBJ_EVENT_ID_PLAYER, Route118_Movement_PlayerWatchStevenExit applymovement LOCALID_STEVEN, Route118_Movement_StevenExit2 waitmovement 0 return -Route118_Movement_PlayerWatchStevenExit: @ 81F3F5E +Route118_Movement_PlayerWatchStevenExit: delay_16 walk_in_place_fastest_right step_end -Route118_Movement_StevenApproachLedge0: @ 81F3F61 +Route118_Movement_StevenApproachLedge0: walk_left step_end -Route118_Movement_StevenApproachLedge2: @ 81F3F63 +Route118_Movement_StevenApproachLedge2: walk_right step_end -Route118_Movement_StevenJumpLedge: @ 81F3F65 +Route118_Movement_StevenJumpLedge: jump_2_down delay_16 walk_down step_end -Route118_Movement_StevenExit0: @ 81F3F69 +Route118_Movement_StevenExit0: walk_right walk_right walk_right @@ -164,7 +164,7 @@ Route118_Movement_StevenExit0: @ 81F3F69 walk_right step_end -Route118_Movement_StevenExit1: @ 81F3F74 +Route118_Movement_StevenExit1: walk_right walk_right walk_right @@ -176,7 +176,7 @@ Route118_Movement_StevenExit1: @ 81F3F74 walk_right step_end -Route118_Movement_StevenExit2: @ 81F3F7E +Route118_Movement_StevenExit2: walk_right walk_right walk_right @@ -187,7 +187,7 @@ Route118_Movement_StevenExit2: @ 81F3F7E walk_right step_end -Route118_EventScript_Rose:: @ 81F3F87 +Route118_EventScript_Rose:: trainerbattle_single TRAINER_ROSE_1, Route118_Text_RoseIntro, Route118_Text_RoseDefeat, Route118_EventScript_RegisterRose specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -196,7 +196,7 @@ Route118_EventScript_Rose:: @ 81F3F87 release end -Route118_EventScript_RegisterRose:: @ 81F3FB3 +Route118_EventScript_RegisterRose:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route118_Text_RoseRegister, MSGBOX_DEFAULT @@ -204,22 +204,22 @@ Route118_EventScript_RegisterRose:: @ 81F3FB3 release end -Route118_EventScript_RematchRose:: @ 81F3FD2 +Route118_EventScript_RematchRose:: trainerbattle_rematch TRAINER_ROSE_1, Route118_Text_RoseRematchIntro, Route118_Text_RoseRematchDefeat msgbox Route118_Text_RosePostRematch, MSGBOX_AUTOCLOSE end -Route118_EventScript_Barny:: @ 81F3FE9 +Route118_EventScript_Barny:: trainerbattle_single TRAINER_BARNY, Route118_Text_BarnyIntro, Route118_Text_BarnyDefeat msgbox Route118_Text_BarnyPostBattle, MSGBOX_AUTOCLOSE end -Route118_EventScript_Wade:: @ 81F4000 +Route118_EventScript_Wade:: trainerbattle_single TRAINER_WADE, Route118_Text_WadeIntro, Route118_Text_WadeDefeat msgbox Route118_Text_WadePostBattle, MSGBOX_AUTOCLOSE end -Route118_EventScript_Dalton:: @ 81F4017 +Route118_EventScript_Dalton:: trainerbattle_single TRAINER_DALTON_1, Route118_Text_DaltonIntro, Route118_Text_DaltonDefeat, Route118_EventScript_RegisterDalton specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -228,7 +228,7 @@ Route118_EventScript_Dalton:: @ 81F4017 release end -Route118_EventScript_RegisterDalton:: @ 81F4043 +Route118_EventScript_RegisterDalton:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route118_Text_DaltonRegister, MSGBOX_DEFAULT @@ -236,27 +236,27 @@ Route118_EventScript_RegisterDalton:: @ 81F4043 release end -Route118_EventScript_RematchDalton:: @ 81F4062 +Route118_EventScript_RematchDalton:: trainerbattle_rematch TRAINER_DALTON_1, Route118_Text_DaltonRematchIntro, Route118_Text_DaltonRematchDefeat msgbox Route118_Text_DaltonPostRematch, MSGBOX_AUTOCLOSE end -Route118_EventScript_Perry:: @ 81F4079 +Route118_EventScript_Perry:: trainerbattle_single TRAINER_PERRY, Route118_Text_PerryIntro, Route118_Text_PerryDefeat msgbox Route118_Text_PerryPostBattle, MSGBOX_AUTOCLOSE end -Route118_EventScript_Chester:: @ 81F4090 +Route118_EventScript_Chester:: trainerbattle_single TRAINER_CHESTER, Route118_Text_ChesterIntro, Route118_Text_ChesterDefeat msgbox Route118_Text_ChesterPostBattle, MSGBOX_AUTOCLOSE end -Route118_EventScript_Deandre:: @ 81F40A7 +Route118_EventScript_Deandre:: trainerbattle_single TRAINER_DEANDRE, Route118_Text_DeandreIntro, Route118_Text_DeandreDefeat msgbox Route118_Text_DeandrePostBattle, MSGBOX_AUTOCLOSE end -Route118_Text_StevenQuestions: @ 81F40BE +Route118_Text_StevenQuestions: .string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "It's me, STEVEN!\n" .string "We met in the cave near DEWFORD.\p" @@ -274,40 +274,40 @@ Route118_Text_StevenQuestions: @ 81F40BE .string "It would be nice if we were to meet\n" .string "again somewhere.$" -Route118_Text_YouAgreeGoodRodIsGood: @ 81F427B +Route118_Text_YouAgreeGoodRodIsGood: .string "Hmm!\n" .string "A GOOD ROD is really good!\p" .string "Wouldn't you agree?$" -Route118_Text_IdenticalMindsTakeThis: @ 81F42AF +Route118_Text_IdenticalMindsTakeThis: .string "Hmm!\n" .string "We're of identical minds!\p" .string "Hmm!\n" .string "Take this GOOD ROD!$" -Route118_Text_TryYourLuckFishing: @ 81F42E7 +Route118_Text_TryYourLuckFishing: .string "Wherever there's water, try your luck\n" .string "at fishing.$" -Route118_Text_DontYouLikeToFish: @ 81F4319 +Route118_Text_DontYouLikeToFish: .string "Don't you like to fish?$" -Route118_Text_TryCatchingMonWithGoodRod: @ 81F4331 +Route118_Text_TryCatchingMonWithGoodRod: .string "Try catching all sorts of POKéMON\n" .string "with your GOOD ROD.$" -Route118_Text_CanCrossRiversWithSurf: @ 81F4367 +Route118_Text_CanCrossRiversWithSurf: .string "Even if there isn't a boat, you can\n" .string "cross rivers and the sea if you have\l" .string "a POKéMON that knows SURF.\p" .string "POKéMON can be counted on to do so\n" .string "much!$" -Route118_Text_RouteSignMauville: @ 81F43F4 +Route118_Text_RouteSignMauville: .string "ROUTE 118\n" .string "{LEFT_ARROW} MAUVILLE CITY$" -Route118_Text_RouteSign119: @ 81F440E +Route118_Text_RouteSign119: .string "ROUTE 118\n" .string "{UP_ARROW} ROUTE 119$" diff --git a/data/maps/Route119/map.json b/data/maps/Route119/map.json index 8d78d1065b..c5715daa20 100644 --- a/data/maps/Route119/map.json +++ b/data/maps/Route119/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "34", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_1", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "35", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_2", "script": "BerryTreeScript", "flag": "0" }, @@ -60,7 +60,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "36", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_3", "script": "BerryTreeScript", "flag": "0" }, @@ -372,7 +372,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "83", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_HONDEW_1", "script": "BerryTreeScript", "flag": "0" }, @@ -385,7 +385,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "84", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_HONDEW_2", "script": "BerryTreeScript", "flag": "0" }, @@ -398,7 +398,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "85", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_SITRUS", "script": "BerryTreeScript", "flag": "0" }, @@ -411,7 +411,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "86", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_LEPPA", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc index 734934d170..5e53f4ac8f 100644 --- a/data/maps/Route119/scripts.inc +++ b/data/maps/Route119/scripts.inc @@ -2,23 +2,23 @@ .set LOCALID_RIVAL_ON_BIKE, 25 .set LOCALID_SCOTT, 43 -Route119_MapScripts:: @ 81F4424 +Route119_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route119_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Route119_OnTransition .byte 0 -Route119_OnResume: @ 81F442F +Route119_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, Route119_EventScript_TryRemoveKecleon end -Route119_EventScript_TryRemoveKecleon:: @ 81F4439 +Route119_EventScript_TryRemoveKecleon:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -Route119_OnTransition: @ 81F444D +Route119_OnTransition: call Common_EventScript_SetupRivalGfxId call Common_EventScript_SetupRivalOnBikeGfxId compare VAR_WEATHER_INSTITUTE_STATE, 1 @@ -26,23 +26,23 @@ Route119_OnTransition: @ 81F444D special SetRoute119Weather end -Route119_EventScript_MoveInstituteWorkersDownstairs:: @ 81F4466 +Route119_EventScript_MoveInstituteWorkersDownstairs:: setflag FLAG_HIDE_WEATHER_INSTITUTE_2F_WORKERS clearflag FLAG_HIDE_WEATHER_INSTITUTE_1F_WORKERS setvar VAR_WEATHER_INSTITUTE_STATE, 2 return -Route119_EventScript_RivalTrigger1:: @ 81F4472 +Route119_EventScript_RivalTrigger1:: setvar VAR_TEMP_1, 1 goto Route119_EventScript_RivalEncounter end -Route119_EventScript_RivalTrigger2:: @ 81F447D +Route119_EventScript_RivalTrigger2:: setvar VAR_TEMP_1, 2 goto Route119_EventScript_RivalEncounter end -Route119_EventScript_RivalEncounter:: @ 81F4488 +Route119_EventScript_RivalEncounter:: lockall addobject LOCALID_RIVAL_ON_BIKE checkplayergender @@ -73,15 +73,15 @@ Route119_EventScript_RivalEncounter:: @ 81F4488 releaseall end -Route119_EventScript_PlayMayMusic:: @ 81F4501 - playbgm MUS_ENCOUNTER_MAY, 1 +Route119_EventScript_PlayMayMusic:: + playbgm MUS_ENCOUNTER_MAY, TRUE return -Route119_EventScript_PlayBrendanMusic:: @ 81F4506 - playbgm MUS_ENCOUNTER_BRENDAN, 1 +Route119_EventScript_PlayBrendanMusic:: + playbgm MUS_ENCOUNTER_BRENDAN, TRUE return -Route119_EventScript_BattleMay:: @ 81F450B +Route119_EventScript_BattleMay:: msgbox Route119_Text_MayIntro, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, Route119_EventScript_BattleMayTreecko @@ -89,29 +89,29 @@ Route119_EventScript_BattleMay:: @ 81F450B case 2, Route119_EventScript_BattleMayMudkip end -Route119_EventScript_BattleMayTreecko:: @ 81F453A +Route119_EventScript_BattleMayTreecko:: trainerbattle_no_intro TRAINER_MAY_ROUTE_119_TREECKO, Route119_Text_MayDefeat goto Route119_EventScript_DefeatedMay end -Route119_EventScript_BattleMayTorchic:: @ 81F454A +Route119_EventScript_BattleMayTorchic:: trainerbattle_no_intro TRAINER_MAY_ROUTE_119_TORCHIC, Route119_Text_MayDefeat goto Route119_EventScript_DefeatedMay end -Route119_EventScript_BattleMayMudkip:: @ 81F455A +Route119_EventScript_BattleMayMudkip:: trainerbattle_no_intro TRAINER_MAY_ROUTE_119_MUDKIP, Route119_Text_MayDefeat goto Route119_EventScript_DefeatedMay end -Route119_EventScript_DefeatedMay:: @ 81F456A +Route119_EventScript_DefeatedMay:: msgbox Route119_Text_MayPresentForYou, MSGBOX_DEFAULT call Route119_EventScript_GiveFlyHM msgbox Route119_Text_MayExplainFly, MSGBOX_DEFAULT goto Route119_EventScript_RivalExitScottArrive end -Route119_EventScript_BattleBrendan:: @ 81F4585 +Route119_EventScript_BattleBrendan:: msgbox Route119_Text_BrendanIntro, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, Route119_EventScript_BattleBrendanTreecko @@ -119,34 +119,34 @@ Route119_EventScript_BattleBrendan:: @ 81F4585 case 2, Route119_EventScript_BattleBrendanMudkip end -Route119_EventScript_BattleBrendanTreecko:: @ 81F45B4 +Route119_EventScript_BattleBrendanTreecko:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_119_TREECKO, Route119_Text_BrendanDefeat goto Route119_EventScript_DefeatedBrendan end -Route119_EventScript_BattleBrendanTorchic:: @ 81F45C4 +Route119_EventScript_BattleBrendanTorchic:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_119_TORCHIC, Route119_Text_BrendanDefeat goto Route119_EventScript_DefeatedBrendan end -Route119_EventScript_BattleBrendanMudkip:: @ 81F45D4 +Route119_EventScript_BattleBrendanMudkip:: trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_119_MUDKIP, Route119_Text_BrendanDefeat goto Route119_EventScript_DefeatedBrendan end -Route119_EventScript_DefeatedBrendan:: @ 81F45E4 +Route119_EventScript_DefeatedBrendan:: msgbox Route119_Text_BrendanIllGiveYouThis, MSGBOX_DEFAULT call Route119_EventScript_GiveFlyHM msgbox Route119_Text_BrendanExplainFly, MSGBOX_DEFAULT goto Route119_EventScript_RivalExitScottArrive end -Route119_EventScript_GiveFlyHM:: @ 81F45FF +Route119_EventScript_GiveFlyHM:: giveitem ITEM_HM02 setflag FLAG_RECEIVED_HM02 return -Route119_EventScript_RivalExitScottArrive:: @ 81F460F +Route119_EventScript_RivalExitScottArrive:: closemessage compare VAR_TEMP_1, 1 call_if_eq Route119_EventScript_SetRivalPos1 @@ -182,71 +182,71 @@ Route119_EventScript_RivalExitScottArrive:: @ 81F460F releaseall end -Route119_EventScript_SetScottPos1:: @ 81F46A0 +Route119_EventScript_SetScottPos1:: setobjectxyperm LOCALID_SCOTT, 27, 25 return -Route119_EventScript_SetScottPos2:: @ 81F46A8 +Route119_EventScript_SetScottPos2:: setobjectxyperm LOCALID_SCOTT, 28, 25 return -Route119_EventScript_ScottExit1:: @ 81F46B0 +Route119_EventScript_ScottExit1:: applymovement LOCALID_SCOTT, Route119_Movement_ScottExit1 waitmovement 0 return -Route119_EventScript_ScottExit2:: @ 81F46BB +Route119_EventScript_ScottExit2:: applymovement LOCALID_SCOTT, Route119_Movement_ScottExit2 waitmovement 0 return -Route119_EventScript_RivalEnter1:: @ 81F46C6 +Route119_EventScript_RivalEnter1:: applymovement LOCALID_RIVAL_ON_BIKE, Route119_Movement_RivalEnter1 waitmovement 0 return -Route119_EventScript_RivalEnter2:: @ 81F46D1 +Route119_EventScript_RivalEnter2:: applymovement LOCALID_RIVAL_ON_BIKE, Route119_Movement_RivalEnter2 waitmovement 0 return -Route119_EventScript_RivalExit1:: @ 81F46DC +Route119_EventScript_RivalExit1:: applymovement OBJ_EVENT_ID_PLAYER, Route119_Movement_PlayerWatchRivalExit1 applymovement LOCALID_RIVAL_ON_BIKE, Route119_Movement_RivalExit1 waitmovement 0 return -Route119_EventScript_RivalExit2:: @ 81F46EE +Route119_EventScript_RivalExit2:: applymovement OBJ_EVENT_ID_PLAYER, Route119_Movement_PlayerWatchRivalExit2 applymovement LOCALID_RIVAL_ON_BIKE, Route119_Movement_RivalExit2 waitmovement 0 return -Route119_EventScript_SetRivalPos1:: @ 81F4700 +Route119_EventScript_SetRivalPos1:: setobjectxyperm LOCALID_RIVAL, 25, 32 setobjectxyperm LOCALID_RIVAL_ON_BIKE, 25, 32 return -Route119_EventScript_SetRivalPos2:: @ 81F470F +Route119_EventScript_SetRivalPos2:: setobjectxyperm LOCALID_RIVAL, 26, 32 setobjectxyperm LOCALID_RIVAL_ON_BIKE, 26, 32 return -Route119_Movement_PlayerWatchRivalExit1: @ 81F471E +Route119_Movement_PlayerWatchRivalExit1: delay_16 walk_in_place_fastest_right delay_8 walk_in_place_fastest_up step_end -Route119_Movement_PlayerWatchRivalExit2: @ 81F4723 +Route119_Movement_PlayerWatchRivalExit2: delay_16 walk_in_place_fastest_left delay_8 walk_in_place_fastest_up step_end -Route119_Movement_RivalEnter1: @ 81F4728 +Route119_Movement_RivalEnter1: walk_fast_right walk_fast_right walk_fast_right @@ -258,7 +258,7 @@ Route119_Movement_RivalEnter1: @ 81F4728 walk_fast_up step_end -Route119_Movement_RivalEnter2: @ 81F4732 +Route119_Movement_RivalEnter2: walk_fast_right walk_fast_right walk_fast_right @@ -271,7 +271,7 @@ Route119_Movement_RivalEnter2: @ 81F4732 walk_fast_up step_end -Route119_Movement_RivalExit1: @ 81F473D +Route119_Movement_RivalExit1: walk_fast_right walk_fast_up walk_fast_up @@ -283,7 +283,7 @@ Route119_Movement_RivalExit1: @ 81F473D walk_fast_up step_end -Route119_Movement_RivalExit2: @ 81F4747 +Route119_Movement_RivalExit2: walk_fast_left walk_fast_up walk_fast_up @@ -296,7 +296,7 @@ Route119_Movement_RivalExit2: @ 81F4747 walk_fast_up step_end -Route119_Movement_ScottEnter: @ 81F4752 +Route119_Movement_ScottEnter: walk_down walk_down walk_down @@ -306,7 +306,7 @@ Route119_Movement_ScottEnter: @ 81F4752 walk_down step_end -Route119_Movement_ScottExit1: @ 81F475A +Route119_Movement_ScottExit1: walk_up walk_right walk_right @@ -317,7 +317,7 @@ Route119_Movement_ScottExit1: @ 81F475A walk_up step_end -Route119_Movement_ScottExit2: @ 81F4763 +Route119_Movement_ScottExit2: walk_up walk_right walk_up @@ -327,49 +327,49 @@ Route119_Movement_ScottExit2: @ 81F4763 walk_up step_end -Route119_EventScript_CyclingTriathleteM:: @ 81F476B +Route119_EventScript_CyclingTriathleteM:: msgbox Route119_Text_TallGrassSnaresBikeTires, MSGBOX_NPC end -Route119_EventScript_RouteSignFortree:: @ 81F4774 +Route119_EventScript_RouteSignFortree:: msgbox Route119_Text_RouteSignFortree, MSGBOX_SIGN end -Route119_EventScript_WeatherInstituteSign:: @ 81F477D +Route119_EventScript_WeatherInstituteSign:: msgbox Route119_Text_WeatherInstitute, MSGBOX_SIGN end -Route119_EventScript_Brent:: @ 81F4786 +Route119_EventScript_Brent:: trainerbattle_single TRAINER_BRENT, Route119_Text_BrentIntro, Route119_Text_BrentDefeat msgbox Route119_Text_BrentPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Donald:: @ 81F479D +Route119_EventScript_Donald:: trainerbattle_single TRAINER_DONALD, Route119_Text_DonaldIntro, Route119_Text_DonaldDefeat msgbox Route119_Text_DonaldPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Taylor:: @ 81F47B4 +Route119_EventScript_Taylor:: trainerbattle_single TRAINER_TAYLOR, Route119_Text_TaylorIntro, Route119_Text_TaylorDefeat msgbox Route119_Text_TaylorPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Doug:: @ 81F47CB +Route119_EventScript_Doug:: trainerbattle_single TRAINER_DOUG, Route119_Text_DougIntro, Route119_Text_DougDefeat msgbox Route119_Text_DougPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Greg:: @ 81F47E2 +Route119_EventScript_Greg:: trainerbattle_single TRAINER_GREG, Route119_Text_GregIntro, Route119_Text_GregDefeat msgbox Route119_Text_GregPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Kent:: @ 81F47F9 +Route119_EventScript_Kent:: trainerbattle_single TRAINER_KENT, Route119_Text_KentIntro, Route119_Text_KentDefeat msgbox Route119_Text_KentPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Jackson:: @ 81F4810 +Route119_EventScript_Jackson:: trainerbattle_single TRAINER_JACKSON_1, Route119_Text_JacksonIntro, Route119_Text_JacksonDefeat, Route119_EventScript_RegisterJackson specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -378,7 +378,7 @@ Route119_EventScript_Jackson:: @ 81F4810 release end -Route119_EventScript_RegisterJackson:: @ 81F483C +Route119_EventScript_RegisterJackson:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route119_Text_JacksonRegister, MSGBOX_DEFAULT @@ -386,12 +386,12 @@ Route119_EventScript_RegisterJackson:: @ 81F483C release end -Route119_EventScript_RematchJackson:: @ 81F485B +Route119_EventScript_RematchJackson:: trainerbattle_rematch TRAINER_JACKSON_1, Route119_Text_JacksonRematchIntro, Route119_Text_JacksonRematchDefeat msgbox Route119_Text_JacksonPostRematch, MSGBOX_AUTOCLOSE end -Route119_EventScript_Catherine:: @ 81F4872 +Route119_EventScript_Catherine:: trainerbattle_single TRAINER_CATHERINE_1, Route119_Text_CatherineIntro, Route119_Text_CatherineDefeat, Route119_EventScript_RegisterCatherine specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -400,7 +400,7 @@ Route119_EventScript_Catherine:: @ 81F4872 release end -Route119_EventScript_RegisterCatherine:: @ 81F489E +Route119_EventScript_RegisterCatherine:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route119_Text_CatherineRegister, MSGBOX_DEFAULT @@ -408,57 +408,57 @@ Route119_EventScript_RegisterCatherine:: @ 81F489E release end -Route119_EventScript_RematchCatherine:: @ 81F48BD +Route119_EventScript_RematchCatherine:: trainerbattle_rematch TRAINER_CATHERINE_1, Route119_Text_CatherineRematchIntro, Route119_Text_CatherineRematchDefeat msgbox Route119_Text_CatherinePostRematch, MSGBOX_AUTOCLOSE end -Route119_EventScript_Hugh:: @ 81F48D4 +Route119_EventScript_Hugh:: trainerbattle_single TRAINER_HUGH, Route119_Text_HughIntro, Route119_Text_HughDefeat msgbox Route119_Text_HughPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Phil:: @ 81F48EB +Route119_EventScript_Phil:: trainerbattle_single TRAINER_PHIL, Route119_Text_PhilIntro, Route119_Text_PhilDefeat msgbox Route119_Text_PhilPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Yasu:: @ 81F4902 +Route119_EventScript_Yasu:: trainerbattle_single TRAINER_YASU, Route119_Text_YasuIntro, Route119_Text_YasuDefeat msgbox Route119_Text_YasuPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Takashi:: @ 81F4919 +Route119_EventScript_Takashi:: trainerbattle_single TRAINER_TAKASHI, Route119_Text_TakashiIntro, Route119_Text_TakashiDefeat msgbox Route119_Text_TakashiPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Hideo:: @ 81F4930 +Route119_EventScript_Hideo:: trainerbattle_single TRAINER_HIDEO, Route119_Text_HideoIntro, Route119_Text_HideoDefeat msgbox Route119_Text_HideoPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Chris:: @ 81F4947 +Route119_EventScript_Chris:: trainerbattle_single TRAINER_CHRIS, Route119_Text_ChrisIntro, Route119_Text_ChrisDefeat msgbox Route119_Text_ChrisPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Fabian:: @ 81F495E +Route119_EventScript_Fabian:: trainerbattle_single TRAINER_FABIAN, Route119_Text_FabianIntro, Route119_Text_FabianDefeat msgbox Route119_Text_FabianPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Dayton:: @ 81F4975 +Route119_EventScript_Dayton:: trainerbattle_single TRAINER_DAYTON, Route119_Text_DaytonIntro, Route119_Text_DaytonDefeat msgbox Route119_Text_DaytonPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_Rachel:: @ 81F498C +Route119_EventScript_Rachel:: trainerbattle_single TRAINER_RACHEL, Route119_Text_RachelIntro, Route119_Text_RachelDefeat msgbox Route119_Text_RachelPostBattle, MSGBOX_AUTOCLOSE end -Route119_EventScript_BridgeAquaGrunt1:: @ 81F49A3 +Route119_EventScript_BridgeAquaGrunt1:: lock faceplayer msgbox Route119_Text_StayAwayFromWeatherInstitute, MSGBOX_DEFAULT @@ -468,7 +468,7 @@ Route119_EventScript_BridgeAquaGrunt1:: @ 81F49A3 release end -Route119_EventScript_BridgeAquaGrunt2:: @ 81F49BA +Route119_EventScript_BridgeAquaGrunt2:: lock faceplayer msgbox Route119_Text_DontGoNearWeatherInstitute, MSGBOX_DEFAULT @@ -478,19 +478,19 @@ Route119_EventScript_BridgeAquaGrunt2:: @ 81F49BA release end -Route119_EventScript_Boy1:: @ 81F49D1 +Route119_EventScript_Boy1:: msgbox Route119_Text_ThoughtFlyByCatchingBirdMons, MSGBOX_NPC end -Route119_EventScript_Boy2:: @ 81F49DA +Route119_EventScript_Boy2:: msgbox Route119_Text_CanYourMonMakeSecretBase, MSGBOX_NPC end -Route119_EventScript_TrainerTipsDecoration:: @ 81F49E3 +Route119_EventScript_TrainerTipsDecoration:: msgbox Route119_Text_TrainerTipsDecoration, MSGBOX_SIGN end -Route119_EventScript_ScottWonAtFortreeGymCall:: @ 81F49EC +Route119_EventScript_ScottWonAtFortreeGymCall:: lockall pokenavcall Route119_Text_ScottYouWonAtFortreeGym waitmessage @@ -499,7 +499,7 @@ Route119_EventScript_ScottWonAtFortreeGymCall:: @ 81F49EC releaseall end -Route119_Text_MayIntro: @ 81F49FD +Route119_Text_MayIntro: .string "MAY: {PLAYER}{KUN}!\n" .string "Where were you? I was looking for you!\p" .string "How much stronger have you gotten?\n" @@ -507,18 +507,18 @@ Route119_Text_MayIntro: @ 81F49FD .string "Ready with your POKéMON?\n" .string "Of course you are! Go!$" -Route119_Text_MayDefeat: @ 81F4A98 +Route119_Text_MayDefeat: .string "Achah!\n" .string "{PLAYER}{KUN}, you're strong!\p" .string "I was worried that you might be\n" .string "struggling with your training.$" -Route119_Text_MayPresentForYou: @ 81F4AF3 +Route119_Text_MayPresentForYou: .string "MAY: But I had absolutely nothing to\n" .string "worry about! Keep it up!\p" .string "And, here! I have a present for you.$" -Route119_Text_MayExplainFly: @ 81F4B56 +Route119_Text_MayExplainFly: .string "MAY: Use FLY, and your POKéMON will\n" .string "instantly carry you to any town you've\l" .string "already visited.\p" @@ -531,7 +531,7 @@ Route119_Text_MayExplainFly: @ 81F4B56 .string "{PLAYER}{KUN}.\p" .string "Well, let's meet again somewhere!$" -Route119_Text_BrendanIntro: @ 81F4C9A +Route119_Text_BrendanIntro: .string "BRENDAN: {PLAYER}! So this is where\n" .string "you've been looking for POKéMON?\p" .string "Let me see how good you got.\n" @@ -539,17 +539,17 @@ Route119_Text_BrendanIntro: @ 81F4C9A .string "Now!\n" .string "It's a battle, so battle!$" -Route119_Text_BrendanDefeat: @ 81F4D24 +Route119_Text_BrendanDefeat: .string "Hmm…\n" .string "You've gotten pretty darn decent.$" -Route119_Text_BrendanIllGiveYouThis: @ 81F4D4B +Route119_Text_BrendanIllGiveYouThis: .string "BRENDAN: I'd say you're good enough\n" .string "to search for POKéMON anywhere.\p" .string "Here, I'll give you this.\n" .string "Try it out.$" -Route119_Text_BrendanExplainFly: @ 81F4DB5 +Route119_Text_BrendanExplainFly: .string "BRENDAN: Use FLY, and your POKéMON\n" .string "instantly carries you to any town\l" .string "you've already visited.\p" @@ -557,7 +557,7 @@ Route119_Text_BrendanExplainFly: @ 81F4DB5 .string "to do that.\p" .string "Anyway, I have to move along.$" -Route119_Text_ScottWayToGoBeSeeingYou: @ 81F4E60 +Route119_Text_ScottWayToGoBeSeeingYou: .string "SCOTT: Hahahah!\n" .string "Way to go, {PLAYER}{KUN}!\p" .string "I just passed by a TRAINER riding\n" @@ -572,7 +572,7 @@ Route119_Text_ScottWayToGoBeSeeingYou: @ 81F4E60 .string "Well, I'll be seeing you!$" -Route119_Text_ScottYouWonAtFortreeGym: @ 81F4FBA +Route119_Text_ScottYouWonAtFortreeGym: .string "… … … … … …\n" .string "… … … … … Beep!\p" .string "SCOTT: Hiya, {PLAYER}{KUN}, it's me!\p" @@ -587,17 +587,17 @@ Route119_Text_ScottYouWonAtFortreeGym: @ 81F4FBA .string "… … … … … …\n" .string "… … … … … Click!$" -Route119_Text_StayAwayFromWeatherInstitute: @ 81F50EB +Route119_Text_StayAwayFromWeatherInstitute: .string "We're standing lookout here.\p" .string "Hey, you! Stay away from the WEATHER\n" .string "INSTITUTE. It's not safe.$" -Route119_Text_DontGoNearWeatherInstitute: @ 81F5147 +Route119_Text_DontGoNearWeatherInstitute: .string "Lookout duty is surprisingly boring.\p" .string "Hey, you! Please don't go near the\n" .string "WEATHER INSTITUTE.$" -Route119_Text_ThoughtFlyByCatchingBirdMons: @ 81F51A2 +Route119_Text_ThoughtFlyByCatchingBirdMons: .string "I thought you FLY by catching a whole\n" .string "flock of BIRD POKéMON, and then\l" .string "hanging on to them somehow.\p" @@ -606,25 +606,25 @@ Route119_Text_ThoughtFlyByCatchingBirdMons: @ 81F51A2 .string "I wish I'd known about that a long\n" .string "time ago…$" -Route119_Text_TallGrassSnaresBikeTires: @ 81F5261 +Route119_Text_TallGrassSnaresBikeTires: .string "Tch…\n" .string "It's a no-go…\p" .string "The tall grass snares BIKE tires.\n" .string "There's no way you can cycle here.$" -Route119_Text_CanYourMonMakeSecretBase: @ 81F52B9 +Route119_Text_CanYourMonMakeSecretBase: .string "Can your POKéMON use its SECRET POWER\n" .string "on a big pile of grass and make a\l" .string "SECRET BASE?$" -Route119_Text_RouteSignFortree: @ 81F530E +Route119_Text_RouteSignFortree: .string "ROUTE 119\n" .string "{RIGHT_ARROW} FORTREE CITY$" -Route119_Text_WeatherInstitute: @ 81F5327 +Route119_Text_WeatherInstitute: .string "WEATHER INSTITUTE$" -Route119_Text_TrainerTipsDecoration: @ 81F5339 +Route119_Text_TrainerTipsDecoration: .string "TRAINER TIPS\p" .string "Up to sixteen decorations and\n" .string "furniture items can be placed in\l" diff --git a/data/maps/Route119_House/scripts.inc b/data/maps/Route119_House/scripts.inc index b6915aaa30..548b2c3948 100644 --- a/data/maps/Route119_House/scripts.inc +++ b/data/maps/Route119_House/scripts.inc @@ -1,11 +1,11 @@ -Route119_House_MapScripts:: @ 8270965 +Route119_House_MapScripts:: .byte 0 -Route119_House_EventScript_Woman:: @ 8270966 +Route119_House_EventScript_Woman:: msgbox Route119_House_Text_RumorAboutCaveOfOrigin, MSGBOX_NPC end -Route119_House_EventScript_Wingull:: @ 827096F +Route119_House_EventScript_Wingull:: lock faceplayer waitse @@ -15,13 +15,13 @@ Route119_House_EventScript_Wingull:: @ 827096F release end -Route119_House_Text_RumorAboutCaveOfOrigin: @ 8270982 +Route119_House_Text_RumorAboutCaveOfOrigin: .string "I heard about a cave called the CAVE\n" .string "OF ORIGIN.\p" .string "People rumor that the spirits of\n" .string "POKéMON are revived there. Could\l" .string "something like that really happen?$" -Route119_House_Text_Wingull: @ 8270A17 +Route119_House_Text_Wingull: .string "WINGULL: Pihyoh!$" diff --git a/data/maps/Route119_WeatherInstitute_1F/scripts.inc b/data/maps/Route119_WeatherInstitute_1F/scripts.inc index 03c537cf07..33ba0b025d 100644 --- a/data/maps/Route119_WeatherInstitute_1F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_1F/scripts.inc @@ -1,20 +1,20 @@ .set LOCALID_LITTLE_BOY, 5 -Route119_WeatherInstitute_1F_MapScripts:: @ 826FA86 +Route119_WeatherInstitute_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route119_WeatherInstitute_1F_OnTransition .byte 0 -Route119_WeatherInstitute_1F_OnTransition: @ 826FA8C +Route119_WeatherInstitute_1F_OnTransition: compare VAR_WEATHER_INSTITUTE_STATE, 0 call_if_eq Route119_WeatherInstitute_1F_EventScript_SetLittleBoyPos end -Route119_WeatherInstitute_1F_EventScript_SetLittleBoyPos:: @ 826FA98 +Route119_WeatherInstitute_1F_EventScript_SetLittleBoyPos:: setobjectxyperm LOCALID_LITTLE_BOY, 0, 5 setobjectmovementtype LOCALID_LITTLE_BOY, MOVEMENT_TYPE_FACE_RIGHT return -Route119_WeatherInstitute_1F_EventScript_LittleBoy:: @ 826FAA4 +Route119_WeatherInstitute_1F_EventScript_LittleBoy:: lock faceplayer special GetPlayerBigGuyGirlString @@ -24,12 +24,12 @@ Route119_WeatherInstitute_1F_EventScript_LittleBoy:: @ 826FAA4 release end -Route119_WeatherInstitute_1F_EventScript_LittleBoyTeamAquaHere:: @ 826FABE +Route119_WeatherInstitute_1F_EventScript_LittleBoyTeamAquaHere:: msgbox Route119_WeatherInstitute_1F_Text_EveryoneWentUpstairs, MSGBOX_DEFAULT release end -Route119_WeatherInstitute_1F_EventScript_InstituteWorker1:: @ 826FAC8 +Route119_WeatherInstitute_1F_EventScript_InstituteWorker1:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, Route119_WeatherInstitute_1F_EventScript_StudyingRain @@ -42,20 +42,20 @@ Route119_WeatherInstitute_1F_EventScript_InstituteWorker1:: @ 826FAC8 release end -Route119_WeatherInstitute_1F_EventScript_LegendaryDefeated:: @ 826FAFF +Route119_WeatherInstitute_1F_EventScript_LegendaryDefeated:: addvar VAR_0x8004, 1 return -Route119_WeatherInstitute_1F_EventScript_StudyingRain:: @ 826FB05 +Route119_WeatherInstitute_1F_EventScript_StudyingRain:: msgbox Route119_WeatherInstitute_1F_Text_ProfStudyingRain, MSGBOX_DEFAULT release end -Route119_WeatherInstitute_1F_EventScript_InstituteWorker2:: @ 826FB0F +Route119_WeatherInstitute_1F_EventScript_InstituteWorker2:: msgbox Route119_WeatherInstitute_1F_Text_WhatWereAquasUpTo, MSGBOX_NPC end -Route119_WeatherInstitute_1F_EventScript_Bed:: @ 826FB18 +Route119_WeatherInstitute_1F_EventScript_Bed:: lockall msgbox Route119_WeatherInstitute_1F_Text_TakeRestInBed, MSGBOX_DEFAULT closemessage @@ -63,54 +63,54 @@ Route119_WeatherInstitute_1F_EventScript_Bed:: @ 826FB18 releaseall end -Route119_WeatherInstitute_1F_EventScript_Grunt1:: @ 826FB29 +Route119_WeatherInstitute_1F_EventScript_Grunt1:: trainerbattle_single TRAINER_GRUNT_WEATHER_INST_1, Route119_WeatherInstitute_1F_Text_Grunt1Intro, Route119_WeatherInstitute_1F_Text_Grunt1Defeat msgbox Route119_WeatherInstitute_1F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE end -Route119_WeatherInstitute_1F_EventScript_Grunt4:: @ 826FB40 +Route119_WeatherInstitute_1F_EventScript_Grunt4:: trainerbattle_single TRAINER_GRUNT_WEATHER_INST_4, Route119_WeatherInstitute_1F_Text_Grunt4Intro, Route119_WeatherInstitute_1F_Text_Grunt4Defeat msgbox Route119_WeatherInstitute_1F_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE end -Route119_WeatherInstitute_1F_Text_Grunt1Intro: @ 826FB57 +Route119_WeatherInstitute_1F_Text_Grunt1Intro: .string "The BOSS got interested in\n" .string "the research they have going here,\l" .string "so he sent us out.\p" .string "You quit meddling!$" -Route119_WeatherInstitute_1F_Text_Grunt1Defeat: @ 826FBBB +Route119_WeatherInstitute_1F_Text_Grunt1Defeat: .string "Blast it…\n" .string "Blasted by a kid…$" -Route119_WeatherInstitute_1F_Text_Grunt1PostBattle: @ 826FBD7 +Route119_WeatherInstitute_1F_Text_Grunt1PostBattle: .string "Our BOSS knows everything.\p" .string "But I'm just a GRUNT. What would I know\n" .string "about what he's thinking?$" -Route119_WeatherInstitute_1F_Text_Grunt4Intro: @ 826FC34 +Route119_WeatherInstitute_1F_Text_Grunt4Intro: .string "Huh?\n" .string "What's a kid doing here?$" -Route119_WeatherInstitute_1F_Text_Grunt4Defeat: @ 826FC52 +Route119_WeatherInstitute_1F_Text_Grunt4Defeat: .string "Huh?\n" .string "I lost?!$" -Route119_WeatherInstitute_1F_Text_Grunt4PostBattle: @ 826FC60 +Route119_WeatherInstitute_1F_Text_Grunt4PostBattle: .string "Oh, no…\n" .string "I'll catch an earful for losing to a kid…\p" .string "I should just take a nap in the bed…$" -Route119_WeatherInstitute_1F_Text_EveryoneWentUpstairs: @ 826FCB7 +Route119_WeatherInstitute_1F_Text_EveryoneWentUpstairs: .string "While I was sleeping, everyone went\n" .string "upstairs!$" -Route119_WeatherInstitute_1F_Text_WowYoureStrong: @ 826FCE5 +Route119_WeatherInstitute_1F_Text_WowYoureStrong: .string "Wow, you're really strong!\p" .string "I wish I could be a POKéMON TRAINER\n" .string "like you!$" -Route119_WeatherInstitute_1F_Text_ProfStudyingRain: @ 826FD2E +Route119_WeatherInstitute_1F_Text_ProfStudyingRain: .string "The PROFESSOR loves rain.\n" .string "That's a fact.\p" .string "But if it keeps raining, people will be in\n" @@ -118,7 +118,7 @@ Route119_WeatherInstitute_1F_Text_ProfStudyingRain: @ 826FD2E .string "And thus, the PROFESSOR is studying\n" .string "if the rain can be put to good use.$" -Route119_WeatherInstitute_1F_Text_NoticingAbnormalWeather: @ 826FDE8 +Route119_WeatherInstitute_1F_Text_NoticingAbnormalWeather: .string "On the 2nd floor of the INSTITUTE,\n" .string "we study the weather patterns over\l" .string "the HOENN region.\p" @@ -126,13 +126,13 @@ Route119_WeatherInstitute_1F_Text_NoticingAbnormalWeather: @ 826FDE8 .string "isolated cases of droughts and\l" .string "heavy rain lately…$" -Route119_WeatherInstitute_1F_Text_WhatWereAquasUpTo: @ 826FE94 +Route119_WeatherInstitute_1F_Text_WhatWereAquasUpTo: .string "Hello!\n" .string "We've been saved by your actions!\p" .string "What I don't understand is what on\n" .string "earth the AQUAS were up to.$" -Route119_WeatherInstitute_1F_Text_TakeRestInBed: @ 826FEFC +Route119_WeatherInstitute_1F_Text_TakeRestInBed: .string "There's a bed…\n" .string "Let's take a rest.$" diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index 85d9d928fb..af281ea0a5 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -5,11 +5,11 @@ .set LOCALID_GRUNT_3, 7 .set LOCALID_GRUNT_4, 8 -Route119_WeatherInstitute_2F_MapScripts:: @ 826FF1E +Route119_WeatherInstitute_2F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route119_WeatherInstitute_2F_OnTransition .byte 0 -Route119_WeatherInstitute_2F_OnTransition: @ 826FF24 +Route119_WeatherInstitute_2F_OnTransition: compare VAR_WEATHER_INSTITUTE_STATE, 0 call_if_eq Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaHere compare VAR_WEATHER_INSTITUTE_STATE, 1 @@ -17,42 +17,42 @@ Route119_WeatherInstitute_2F_OnTransition: @ 826FF24 call_if_set FLAG_SYS_GAME_CLEAR, Route119_WeatherInstitute_2F_EventScript_SetScientistPosGameClear end -Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaHere:: @ 826FF44 +Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaHere:: setobjectxyperm LOCALID_SCIENTIST, 1, 6 setobjectmovementtype LOCALID_SCIENTIST, MOVEMENT_TYPE_FACE_RIGHT return -Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaGone:: @ 826FF50 +Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaGone:: setobjectxyperm LOCALID_SCIENTIST, 4, 6 setobjectmovementtype LOCALID_SCIENTIST, MOVEMENT_TYPE_FACE_RIGHT return -Route119_WeatherInstitute_2F_EventScript_SetScientistPosGameClear:: @ 826FF5C +Route119_WeatherInstitute_2F_EventScript_SetScientistPosGameClear:: setobjectxyperm LOCALID_SCIENTIST, 2, 2 setobjectmovementtype LOCALID_SCIENTIST, MOVEMENT_TYPE_FACE_UP return -Route119_WeatherInstitute_2F_EventScript_Grunt5:: @ 826FF68 +Route119_WeatherInstitute_2F_EventScript_Grunt5:: trainerbattle_single TRAINER_GRUNT_WEATHER_INST_5, Route119_WeatherInstitute_2F_Text_Grunt5Intro, Route119_WeatherInstitute_2F_Text_Grunt5Defeat msgbox Route119_WeatherInstitute_2F_Text_Grunt5PostBattle, MSGBOX_AUTOCLOSE end -Route119_WeatherInstitute_2F_EventScript_Grunt2:: @ 826FF7F +Route119_WeatherInstitute_2F_EventScript_Grunt2:: trainerbattle_single TRAINER_GRUNT_WEATHER_INST_2, Route119_WeatherInstitute_2F_Text_Grunt2Intro, Route119_WeatherInstitute_2F_Text_Grunt2Defeat msgbox Route119_WeatherInstitute_2F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE end -Route119_WeatherInstitute_2F_EventScript_Grunt3:: @ 826FF96 +Route119_WeatherInstitute_2F_EventScript_Grunt3:: trainerbattle_single TRAINER_GRUNT_WEATHER_INST_3, Route119_WeatherInstitute_2F_Text_Grunt3Intro, Route119_WeatherInstitute_2F_Text_Grunt3Defeat msgbox Route119_WeatherInstitute_2F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE end -Route119_WeatherInstitute_2F_EventScript_Shelly:: @ 826FFAD +Route119_WeatherInstitute_2F_EventScript_Shelly:: trainerbattle_single TRAINER_SHELLY_WEATHER_INSTITUTE, Route119_WeatherInstitute_2F_Text_ShellyIntro, Route119_WeatherInstitute_2F_Text_ShellyDefeat, Route119_WeatherInstitute_2F_EventScript_ShellyDefeated msgbox Route119_WeatherInstitute_2F_Text_ShellyPostBattle, MSGBOX_AUTOCLOSE end -Route119_WeatherInstitute_2F_EventScript_ShellyDefeated:: @ 826FFC8 +Route119_WeatherInstitute_2F_EventScript_ShellyDefeated:: msgbox Route119_WeatherInstitute_2F_Text_ShellyPostBattle, MSGBOX_DEFAULT closemessage addobject LOCALID_GRUNT_3 @@ -88,7 +88,7 @@ Route119_WeatherInstitute_2F_EventScript_ShellyDefeated:: @ 826FFC8 goto Route119_WeatherInstitute_2F_EventScript_ReceiveCastform end -Route119_WeatherInstitute_2F_EventScript_ReceiveCastform:: @ 827004D +Route119_WeatherInstitute_2F_EventScript_ReceiveCastform:: msgbox Route119_WeatherInstitute_2F_Text_ThanksPleaseTakePokemon, MSGBOX_DEFAULT setvar VAR_TEMP_1, SPECIES_CASTFORM givemon SPECIES_CASTFORM, 25, ITEM_MYSTIC_WATER @@ -99,7 +99,7 @@ Route119_WeatherInstitute_2F_EventScript_ReceiveCastform:: @ 827004D goto Common_EventScript_NoMoreRoomForPokemon end -Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty:: @ 8270085 +Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty:: call Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO compare VAR_RESULT, NO @@ -109,7 +109,7 @@ Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty:: @ 8270085 goto Route119_WeatherInstitute_2F_EventScript_ExplainCastform end -Route119_WeatherInstitute_2F_EventScript_ReceiveCastformPC:: @ 82700AD +Route119_WeatherInstitute_2F_EventScript_ReceiveCastformPC:: call Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO compare VAR_RESULT, NO @@ -118,12 +118,12 @@ Route119_WeatherInstitute_2F_EventScript_ReceiveCastformPC:: @ 82700AD goto Route119_WeatherInstitute_2F_EventScript_SendCastformToPC end -Route119_WeatherInstitute_2F_EventScript_SendCastformToPC:: @ 82700D0 +Route119_WeatherInstitute_2F_EventScript_SendCastformToPC:: call Common_EventScript_TransferredToPC goto Route119_WeatherInstitute_2F_EventScript_ExplainCastform end -Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare:: @ 82700DB +Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare:: playfanfare MUS_OBTAIN_ITEM message Route119_WeatherInstitute_2F_Text_PlayerReceivedCastform waitmessage @@ -131,19 +131,19 @@ Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare:: @ 82700DB bufferspeciesname 0, SPECIES_CASTFORM return -Route119_WeatherInstitute_2F_EventScript_ExplainCastform:: @ 82700EA +Route119_WeatherInstitute_2F_EventScript_ExplainCastform:: msgbox Route119_WeatherInstitute_2F_Text_PokemonChangesWithWeather, MSGBOX_DEFAULT setflag FLAG_RECEIVED_CASTFORM release end -Route119_WeatherInstitute_2F_EventScript_ScientistMentionWeather:: @ 82700F7 +Route119_WeatherInstitute_2F_EventScript_ScientistMentionWeather:: goto_if_set FLAG_SYS_GAME_CLEAR, Route119_WeatherInstitute_2F_EventScript_TryStartAbnormalWeather msgbox Route119_WeatherInstitute_2F_Text_ChangingWeatherRidiculous, MSGBOX_DEFAULT release end -Route119_WeatherInstitute_2F_EventScript_TryStartAbnormalWeather:: @ 827010A +Route119_WeatherInstitute_2F_EventScript_TryStartAbnormalWeather:: setvar VAR_0x8004, 0 call_if_set FLAG_DEFEATED_KYOGRE, Route119_WeatherInstitute_2F_EventScript_LegendaryDefeated call_if_set FLAG_DEFEATED_GROUDON, Route119_WeatherInstitute_2F_EventScript_LegendaryDefeated @@ -157,26 +157,26 @@ Route119_WeatherInstitute_2F_EventScript_TryStartAbnormalWeather:: @ 827010A release end -Route119_WeatherInstitute_2F_EventScript_KyogreWeather:: @ 827014F +Route119_WeatherInstitute_2F_EventScript_KyogreWeather:: msgbox Route119_WeatherInstitute_2F_Text_KyogreWeather, MSGBOX_DEFAULT release end -Route119_WeatherInstitute_2F_EventScript_CreateAbnormalWeather:: @ 8270159 +Route119_WeatherInstitute_2F_EventScript_CreateAbnormalWeather:: special CreateAbnormalWeatherEvent setflag FLAG_TEMP_2 return -Route119_WeatherInstitute_2F_EventScript_LegendaryDefeated:: @ 8270160 +Route119_WeatherInstitute_2F_EventScript_LegendaryDefeated:: addvar VAR_0x8004, 1 return -Route119_WeatherInstitute_2F_EventScript_NoAbnormalWeather:: @ 8270166 +Route119_WeatherInstitute_2F_EventScript_NoAbnormalWeather:: msgbox Route119_WeatherInstitute_2F_Text_NoAbnormalWeather, MSGBOX_DEFAULT release end -Route119_WeatherInstitute_2F_Movement_GruntApproachShelly: @ 8270170 +Route119_WeatherInstitute_2F_Movement_GruntApproachShelly: walk_fast_left walk_fast_left walk_fast_left @@ -190,7 +190,7 @@ Route119_WeatherInstitute_2F_Movement_GruntApproachShelly: @ 8270170 walk_fast_left step_end -Route119_WeatherInstitute_2F_Movement_ShovePlayerOutOfWay: @ 827017C +Route119_WeatherInstitute_2F_Movement_ShovePlayerOutOfWay: delay_16 delay_16 delay_16 @@ -200,66 +200,66 @@ Route119_WeatherInstitute_2F_Movement_ShovePlayerOutOfWay: @ 827017C walk_in_place_fastest_down step_end -Route119_WeatherInstitute_2F_Movement_PlayerReturnToPosition: @ 8270184 +Route119_WeatherInstitute_2F_Movement_PlayerReturnToPosition: slide_down walk_in_place_fastest_left step_end -Route119_WeatherInstitute_2F_Movement_ScientistApproachPlayer: @ 8270187 +Route119_WeatherInstitute_2F_Movement_ScientistApproachPlayer: walk_right walk_right walk_right step_end -Route119_WeatherInstitute_2F_EventScript_WeatherScientist:: @ 827018B +Route119_WeatherInstitute_2F_EventScript_WeatherScientist:: lock faceplayer goto_if_set FLAG_RECEIVED_CASTFORM, Route119_WeatherInstitute_2F_EventScript_ScientistMentionWeather goto Route119_WeatherInstitute_2F_EventScript_ReceiveCastform end -Route119_WeatherInstitute_2F_Text_Grunt2Intro: @ 827019C +Route119_WeatherInstitute_2F_Text_Grunt2Intro: .string "The INSTITUTE created a type of\n" .string "POKéMON that has something to do with\l" .string "the weather. We're here to take them!$" -Route119_WeatherInstitute_2F_Text_Grunt2Defeat: @ 8270208 +Route119_WeatherInstitute_2F_Text_Grunt2Defeat: .string "Our plan's being spoiled by a kid?$" -Route119_WeatherInstitute_2F_Text_Grunt2PostBattle: @ 827022B +Route119_WeatherInstitute_2F_Text_Grunt2PostBattle: .string "If the POKéMON they made here can\n" .string "control the weather freely, then we of\l" .string "TEAM AQUA definitely need it!$" -Route119_WeatherInstitute_2F_Text_Grunt3Intro: @ 8270292 +Route119_WeatherInstitute_2F_Text_Grunt3Intro: .string "We're TEAM AQUA!\n" .string "We appear wherever anything rare is\l" .string "found!$" -Route119_WeatherInstitute_2F_Text_Grunt3Defeat: @ 82702CE +Route119_WeatherInstitute_2F_Text_Grunt3Defeat: .string "You got me!$" -Route119_WeatherInstitute_2F_Text_Grunt3PostBattle: @ 82702DA +Route119_WeatherInstitute_2F_Text_Grunt3PostBattle: .string "You don't have any idea what we of\n" .string "TEAM AQUA are working towards!\l" .string "You stay out of our way!$" -Route119_WeatherInstitute_2F_Text_Grunt5Intro: @ 8270335 +Route119_WeatherInstitute_2F_Text_Grunt5Intro: .string "Don't tell me you're looking for that\n" .string "weather POKéMON, too?\p" .string "That's a no-no!\n" .string "We were here to get it first!$" -Route119_WeatherInstitute_2F_Text_Grunt5Defeat: @ 827039F +Route119_WeatherInstitute_2F_Text_Grunt5Defeat: .string "Oh, will you look at my POKéMON?$" -Route119_WeatherInstitute_2F_Text_Grunt5PostBattle: @ 82703C0 +Route119_WeatherInstitute_2F_Text_Grunt5PostBattle: .string "Humph, so what?\n" .string "What we want…\p" .string "What we really want isn't here…\n" .string "Ihihihihi…$" -Route119_WeatherInstitute_2F_Text_ShellyIntro: @ 8270409 +Route119_WeatherInstitute_2F_Text_ShellyIntro: .string "Ahahahaha!\p" .string "You're going to meddle in TEAM AQUA's\n" .string "affairs?\p" @@ -268,56 +268,56 @@ Route119_WeatherInstitute_2F_Text_ShellyIntro: @ 8270409 .string "You're so cute, you're disgusting!\n" .string "I'll put you down, kiddy!$" -Route119_WeatherInstitute_2F_Text_ShellyDefeat: @ 82704BD +Route119_WeatherInstitute_2F_Text_ShellyDefeat: .string "Ahahahaha!\n" .string "You're disgustingly strong!$" -Route119_WeatherInstitute_2F_Text_ShellyPostBattle: @ 82704E4 +Route119_WeatherInstitute_2F_Text_ShellyPostBattle: .string "It's bad enough to have TEAM MAGMA\n" .string "blunder about, but now there's you!\p" .string "What makes you want to sniff around\n" .string "in our business, anyway?$" -Route119_WeatherInstitute_2F_Text_TeamMagmaJustPassedBy: @ 8270568 +Route119_WeatherInstitute_2F_Text_TeamMagmaJustPassedBy: .string "We have a situation here!\p" .string "A TEAM MAGMA mob just passed\n" .string "the WEATHER INSTITUTE.\p" .string "They appear to be headed for\n" .string "MT. PYRE!$" -Route119_WeatherInstitute_2F_Text_WeHaveToHurryToMtPyre: @ 82705DD +Route119_WeatherInstitute_2F_Text_WeHaveToHurryToMtPyre: .string "What?!\p" .string "We can't waste any more time here!\n" .string "We have to hurry to MT. PYRE, too!\p" .string "Ahahahaha!\n" .string "TEAM MAGMA, just you wait!$" -Route119_WeatherInstitute_2F_Text_ThanksPleaseTakePokemon: @ 8270650 +Route119_WeatherInstitute_2F_Text_ThanksPleaseTakePokemon: .string "Thanks!\n" .string "Thanks to you, we're safe!\p" .string "It might be an odd way of thanking you,\n" .string "but take this POKéMON.$" @ Unused -Route119_WeatherInstitute_2F_Text_NoRoomForPokemon: @ 82706B2 +Route119_WeatherInstitute_2F_Text_NoRoomForPokemon: .string "Hm? You don't seem to have any room\n" .string "for this POKéMON.$" -Route119_WeatherInstitute_2F_Text_PlayerReceivedCastform: @ 82706E8 +Route119_WeatherInstitute_2F_Text_PlayerReceivedCastform: .string "{PLAYER} received CASTFORM!$" -Route119_WeatherInstitute_2F_Text_PokemonChangesWithWeather: @ 82706FE +Route119_WeatherInstitute_2F_Text_PokemonChangesWithWeather: .string "That POKéMON changes shape according\n" .string "to the weather conditions.\p" .string "There're plenty of them in the\n" .string "INSTITUTE--go ahead and take it.$" -Route119_WeatherInstitute_2F_Text_ChangingWeatherRidiculous: @ 827077E +Route119_WeatherInstitute_2F_Text_ChangingWeatherRidiculous: .string "I've been researching rain for many\n" .string "years, but it's ridiculous to think that\l" .string "humans can freely change the weather.$" -Route119_WeatherInstitute_2F_Text_GroudonWeather: @ 82707F1 +Route119_WeatherInstitute_2F_Text_GroudonWeather: .string "I track weather patterns over\n" .string "the HOENN region.\p" .string "Presently, a drought has been recorded\n" @@ -325,7 +325,7 @@ Route119_WeatherInstitute_2F_Text_GroudonWeather: @ 82707F1 .string "Could that mean, somewhere near\n" .string "{STR_VAR_1}…$" -Route119_WeatherInstitute_2F_Text_KyogreWeather: @ 8270873 +Route119_WeatherInstitute_2F_Text_KyogreWeather: .string "I track weather patterns over\n" .string "the HOENN region.\p" .string "Presently, heavy rainfall has been\n" @@ -333,7 +333,7 @@ Route119_WeatherInstitute_2F_Text_KyogreWeather: @ 8270873 .string "Could that mean, somewhere near\n" .string "{STR_VAR_1}…$" -Route119_WeatherInstitute_2F_Text_NoAbnormalWeather: @ 82708FC +Route119_WeatherInstitute_2F_Text_NoAbnormalWeather: .string "Abnormal weather conditions are\n" .string "no longer being reported.\p" .string "The occasional rainfall is a blessing,\n" diff --git a/data/maps/Route120/map.json b/data/maps/Route120/map.json index 787f51361a..6b67310d3a 100644 --- a/data/maps/Route120/map.json +++ b/data/maps/Route120/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "46", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_WEPEAR", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "45", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PINAP", "script": "BerryTreeScript", "flag": "0" }, @@ -60,7 +60,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "44", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_NANAB", "script": "BerryTreeScript", "flag": "0" }, @@ -73,7 +73,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "43", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_RAZZ", "script": "BerryTreeScript", "flag": "0" }, @@ -86,7 +86,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "37", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_1", "script": "BerryTreeScript", "flag": "0" }, @@ -99,7 +99,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "38", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_2", "script": "BerryTreeScript", "flag": "0" }, @@ -112,7 +112,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "39", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_3", "script": "BerryTreeScript", "flag": "0" }, @@ -125,7 +125,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "40", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_1", "script": "BerryTreeScript", "flag": "0" }, @@ -138,7 +138,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "41", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_2", "script": "BerryTreeScript", "flag": "0" }, @@ -151,7 +151,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "42", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_3", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc index 0056acbd79..f073958246 100644 --- a/data/maps/Route120/scripts.inc +++ b/data/maps/Route120/scripts.inc @@ -2,17 +2,17 @@ .set LOCALID_STEVEN, 31 .set LOCALID_BRIDGE_KECLEON_SHADOW, 36 @ They use a second object which is identical to Kecleon but has a reflection palette tag for the bridge shadow -Route120_MapScripts:: @ 81F53EC +Route120_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route120_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Route120_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route120_OnLoad .byte 0 -Route120_OnResume: @ 81F53FC +Route120_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, Route120_EventScript_RemoveKecleonObject end -Route120_EventScript_RemoveKecleonObject:: @ 81F5406 +Route120_EventScript_RemoveKecleonObject:: compare VAR_0x8009, 0 call_if_eq Route120_EventScript_RemoveBridgeKecleon compare VAR_0x8009, 1 @@ -27,7 +27,7 @@ Route120_EventScript_RemoveKecleonObject:: @ 81F5406 call_if_eq Route120_EventScript_RemoveKecleon return -Route120_EventScript_RemoveBridgeKecleon:: @ 81F5449 +Route120_EventScript_RemoveBridgeKecleon:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn @@ -35,41 +35,41 @@ Route120_EventScript_RemoveBridgeKecleon:: @ 81F5449 removeobject LOCALID_BRIDGE_KECLEON_SHADOW return -Route120_EventScript_RemoveKecleon:: @ 81F5460 +Route120_EventScript_RemoveKecleon:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -Route120_OnLoad: @ 81F5474 +Route120_OnLoad: call_if_unset FLAG_REGI_DOORS_OPENED, Route120_EventScript_CloseAncientTomb call_if_set FLAG_RECEIVED_DEVON_SCOPE, Route120_EventScript_SetBridgeClearMetatiles call_if_unset FLAG_RECEIVED_DEVON_SCOPE, Route120_EventScript_SetBridgeKecleonMovement end -Route120_EventScript_CloseAncientTomb:: @ 81F5490 +Route120_EventScript_CloseAncientTomb:: setmetatile 7, 54, METATILE_General_RockWall_RockBase, 1 setmetatile 7, 55, METATILE_General_RockWall_SandBase, 1 return -Route120_EventScript_SetBridgeClearMetatiles:: @ 81F54A3 +Route120_EventScript_SetBridgeClearMetatiles:: setmetatile 13, 15, METATILE_Fortree_WoodBridge1_Top, 0 setmetatile 12, 16, METATILE_Fortree_WoodBridge1_Bottom, 0 setmetatile 12, 17, METATILE_General_ReflectiveWater, 0 setmetatile 13, 17, METATILE_General_ReflectiveWater, 0 return -Route120_EventScript_SetBridgeKecleonMovement:: @ 81F54C8 +Route120_EventScript_SetBridgeKecleonMovement:: setobjectmovementtype LOCALID_BRIDGE_KECLEON_SHADOW, MOVEMENT_TYPE_FACE_RIGHT return -Route120_OnTransition: @ 81F54CD +Route120_OnTransition: call GabbyAndTy_EventScript_UpdateLocation call Route120_EventScript_SetWeather end -Route120_EventScript_SetWeather:: @ 81F54D8 +Route120_EventScript_SetWeather:: getplayerxy VAR_TEMP_0, VAR_TEMP_1 compare VAR_TEMP_1, 14 goto_if_le Route120_EventScript_SetSunnyWeather @@ -79,15 +79,15 @@ Route120_EventScript_SetWeather:: @ 81F54D8 goto_if_ge Route120_EventScript_SetCloudyWeather return -Route120_EventScript_SetCloudyWeather:: @ 81F54FF +Route120_EventScript_SetCloudyWeather:: setweather WEATHER_SUNNY_CLOUDS return -Route120_EventScript_SetSunnyWeather:: @ 81F5503 +Route120_EventScript_SetSunnyWeather:: setweather WEATHER_SUNNY return -Route120_EventScript_TrySetRainyWeather:: @ 81F5507 +Route120_EventScript_TrySetRainyWeather:: compare VAR_TEMP_0, 7 goto_if_le Route120_EventScript_SetRainyWeather compare VAR_TEMP_0, 19 @@ -95,11 +95,11 @@ Route120_EventScript_TrySetRainyWeather:: @ 81F5507 goto Route120_EventScript_SetRainyWeather end -Route120_EventScript_SetRainyWeather:: @ 81F5523 +Route120_EventScript_SetRainyWeather:: setweather WEATHER_RAIN return -Route120_EventScript_BerryBeauty:: @ 81F5527 +Route120_EventScript_BerryBeauty:: lock faceplayer dotimebasedevents @@ -123,32 +123,32 @@ Route120_EventScript_BerryBeauty:: @ 81F5527 case 9, Route120_EventScript_GiveIapapaBerry end -Route120_EventScript_GiveFigyBerry:: @ 81F55CA +Route120_EventScript_GiveFigyBerry:: setvar VAR_0x8004, ITEM_FIGY_BERRY goto Route120_EventScript_GiveBerry end -Route120_EventScript_GiveWikiBerry:: @ 81F55D5 +Route120_EventScript_GiveWikiBerry:: setvar VAR_0x8004, ITEM_WIKI_BERRY goto Route120_EventScript_GiveBerry end -Route120_EventScript_GiveMagoBerry:: @ 81F55E0 +Route120_EventScript_GiveMagoBerry:: setvar VAR_0x8004, ITEM_MAGO_BERRY goto Route120_EventScript_GiveBerry end -Route120_EventScript_GiveAguavBerry:: @ 81F55EB +Route120_EventScript_GiveAguavBerry:: setvar VAR_0x8004, ITEM_AGUAV_BERRY goto Route120_EventScript_GiveBerry end -Route120_EventScript_GiveIapapaBerry:: @ 81F55F6 +Route120_EventScript_GiveIapapaBerry:: setvar VAR_0x8004, ITEM_IAPAPA_BERRY goto Route120_EventScript_GiveBerry end -Route120_EventScript_GiveBerry:: @ 81F5601 +Route120_EventScript_GiveBerry:: giveitem VAR_0x8004 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -157,20 +157,20 @@ Route120_EventScript_GiveBerry:: @ 81F5601 release end -Route120_EventScript_ReceivedBerry:: @ 81F5625 +Route120_EventScript_ReceivedBerry:: msgbox Route120_Text_IllGetMoreBerriesFromBerryMaster, MSGBOX_DEFAULT release end -Route120_EventScript_BerryLove:: @ 81F562F +Route120_EventScript_BerryLove:: msgbox Route120_Text_YesYouUnderstand, MSGBOX_DEFAULT return -Route120_EventScript_BerryNotLove:: @ 81F5638 +Route120_EventScript_BerryNotLove:: msgbox Route120_Text_MakeYourOwnImpressions, MSGBOX_DEFAULT return -Route120_EventScript_Steven:: @ 81F5641 +Route120_EventScript_Steven:: lock faceplayer goto_if_set FLAG_NOT_READY_FOR_BATTLE_ROUTE_120, Route120_EventScript_StevenAskReadyForBattle @@ -180,20 +180,20 @@ Route120_EventScript_Steven:: @ 81F5641 goto Route120_EventScript_StevenBattleKecleon end -Route120_EventScript_StevenNotReady:: @ 81F5665 +Route120_EventScript_StevenNotReady:: msgbox Route120_Text_StevenIllWaitHere, MSGBOX_DEFAULT setflag FLAG_NOT_READY_FOR_BATTLE_ROUTE_120 release end -Route120_EventScript_StevenAskReadyForBattle:: @ 81F5672 +Route120_EventScript_StevenAskReadyForBattle:: msgbox Route120_Text_StevenReadyForBattle, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq Route120_EventScript_StevenNotReady goto Route120_EventScript_StevenBattleKecleon end -Route120_EventScript_StevenBattleKecleon:: @ 81F568B +Route120_EventScript_StevenBattleKecleon:: msgbox Route120_Text_StevenShowMeYourPower, MSGBOX_DEFAULT closemessage compare VAR_FACING, DIR_NORTH @@ -228,7 +228,7 @@ Route120_EventScript_StevenBattleKecleon:: @ 81F568B goto Route120_EventScript_StevenGiveDeconScope end -Route120_EventScript_RemoveBridgeKecleonPostBattle:: @ 81F571C +Route120_EventScript_RemoveBridgeKecleonPostBattle:: fadescreenswapbuffers FADE_TO_BLACK removeobject LOCALID_BRIDGE_KECLEON removeobject LOCALID_BRIDGE_KECLEON_SHADOW @@ -236,7 +236,7 @@ Route120_EventScript_RemoveBridgeKecleonPostBattle:: @ 81F571C goto Route120_EventScript_StevenGiveDeconScope end -Route120_EventScript_StevenGiveDeconScope:: @ 81F572C +Route120_EventScript_StevenGiveDeconScope:: applymovement LOCALID_STEVEN, Common_Movement_WalkInPlaceFastestDown applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 @@ -261,39 +261,39 @@ Route120_EventScript_StevenGiveDeconScope:: @ 81F572C release end -Route120_EventScript_PlayerApproachKecleonNorth:: @ 81F57A3 +Route120_EventScript_PlayerApproachKecleonNorth:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -Route120_EventScript_PlayerApproachKecleonWest:: @ 81F57AE +Route120_EventScript_PlayerApproachKecleonWest:: applymovement OBJ_EVENT_ID_PLAYER, Route120_Movement_ApproachKecleonWest waitmovement 0 return -Route120_Movement_ApproachKecleonWest: @ 81F57B9 +Route120_Movement_ApproachKecleonWest: walk_down walk_left step_end -Route120_EventScript_BridgeKecleon:: @ 81F57BC +Route120_EventScript_BridgeKecleon:: msgbox Kecleon_Text_SomethingUnseeable, MSGBOX_NPC end -Route120_EventScript_RouteSignFortree:: @ 81F57C5 +Route120_EventScript_RouteSignFortree:: msgbox Route120_Text_RouteSignFortree, MSGBOX_SIGN end -Route120_EventScript_RouteSign121:: @ 81F57CE +Route120_EventScript_RouteSign121:: msgbox Route120_Text_RouteSign121, MSGBOX_SIGN end -Route120_EventScript_Colin:: @ 81F57D7 +Route120_EventScript_Colin:: trainerbattle_single TRAINER_COLIN, Route120_Text_ColinIntro, Route120_Text_ColinDefeat msgbox Route120_Text_ColinPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Robert:: @ 81F57EE +Route120_EventScript_Robert:: trainerbattle_single TRAINER_ROBERT_1, Route120_Text_RobertIntro, Route120_Text_RobertDefeat, Route120_EventScript_RegisterRobert specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -302,7 +302,7 @@ Route120_EventScript_Robert:: @ 81F57EE release end -Route120_EventScript_RegisterRobert:: @ 81F581A +Route120_EventScript_RegisterRobert:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route120_Text_RobertRegister, MSGBOX_DEFAULT @@ -310,22 +310,22 @@ Route120_EventScript_RegisterRobert:: @ 81F581A release end -Route120_EventScript_RematchRobert:: @ 81F5839 +Route120_EventScript_RematchRobert:: trainerbattle_rematch TRAINER_ROBERT_1, Route120_Text_RobertRematchIntro, Route120_Text_RobertRematchDefeat msgbox Route120_Text_RobertPostRematch, MSGBOX_AUTOCLOSE end -Route120_EventScript_Lorenzo:: @ 81F5850 +Route120_EventScript_Lorenzo:: trainerbattle_single TRAINER_LORENZO, Route120_Text_LorenzoIntro, Route120_Text_LorenzoDefeat msgbox Route120_Text_LorenzoPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Jenna:: @ 81F5867 +Route120_EventScript_Jenna:: trainerbattle_single TRAINER_JENNA, Route120_Text_JennaIntro, Route120_Text_JennaDefeat msgbox Route120_Text_JennaPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Jeffrey:: @ 81F587E +Route120_EventScript_Jeffrey:: trainerbattle_single TRAINER_JEFFREY_1, Route120_Text_JeffreyIntro, Route120_Text_JeffreyDefeat, Route120_EventScript_RegisterJeffrey specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -334,7 +334,7 @@ Route120_EventScript_Jeffrey:: @ 81F587E release end -Route120_EventScript_RegisterJeffrey:: @ 81F58AA +Route120_EventScript_RegisterJeffrey:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route120_Text_JeffreyRegister, MSGBOX_DEFAULT @@ -342,52 +342,52 @@ Route120_EventScript_RegisterJeffrey:: @ 81F58AA release end -Route120_EventScript_RematchJeffrey:: @ 81F58C9 +Route120_EventScript_RematchJeffrey:: trainerbattle_rematch TRAINER_JEFFREY_1, Route120_Text_JeffreyRematchIntro, Route120_Text_JeffreyRematchDefeat msgbox Route120_Text_JeffreyPostRematch, MSGBOX_AUTOCLOSE end -Route120_EventScript_Jennifer:: @ 81F58E0 +Route120_EventScript_Jennifer:: trainerbattle_single TRAINER_JENNIFER, Route120_Text_JenniferIntro, Route120_Text_JenniferDefeat msgbox Route120_Text_JenniferPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Chip:: @ 81F58F7 +Route120_EventScript_Chip:: trainerbattle_single TRAINER_CHIP, Route120_Text_ChipIntro, Route120_Text_ChipDefeat msgbox Route120_Text_ChipPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Clarissa:: @ 81F590E +Route120_EventScript_Clarissa:: trainerbattle_single TRAINER_CLARISSA, Route120_Text_ClarissaIntro, Route120_Text_ClarissaDefeat msgbox Route120_Text_ClarissaPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Angelica:: @ 81F5925 +Route120_EventScript_Angelica:: trainerbattle_single TRAINER_ANGELICA, Route120_Text_AngelicaIntro, Route120_Text_AngelicaDefeat msgbox Route120_Text_AngelicaPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Keigo:: @ 81F593C +Route120_EventScript_Keigo:: trainerbattle_single TRAINER_KEIGO, Route120_Text_KeigoIntro, Route120_Text_KeigoDefeat msgbox Route120_Text_KeigoPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Riley:: @ 81F5953 +Route120_EventScript_Riley:: trainerbattle_single TRAINER_RILEY, Route120_Text_RileyIntro, Route120_Text_RileyDefeat msgbox Route120_Text_RileyPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Leonel:: @ 81F596A +Route120_EventScript_Leonel:: trainerbattle_single TRAINER_LEONEL, Route120_Text_LeonelIntro, Route120_Text_LeonelDefeat msgbox Route120_Text_LeonelPostBattle, MSGBOX_AUTOCLOSE end -Route120_EventScript_Callie:: @ 81F5981 +Route120_EventScript_Callie:: trainerbattle_single TRAINER_CALLIE, Route120_Text_CallieIntro, Route120_Text_CallieDefeat msgbox Route120_Text_CalliePostBattle, MSGBOX_AUTOCLOSE end -Route120_Text_StevenGreeting: @ 81F5998 +Route120_Text_StevenGreeting: .string "STEVEN: Hm? {PLAYER}{KUN}, hi.\n" .string "It's been a while.\p" .string "There's something here that you can't\n" @@ -400,25 +400,25 @@ Route120_Text_StevenGreeting: @ 81F5998 .string "{PLAYER}{KUN}, are your POKéMON ready for\n" .string "battle?$" -Route120_Text_StevenIllWaitHere: @ 81F5AAC +Route120_Text_StevenIllWaitHere: .string "STEVEN: No?\p" .string "I'll wait here, so you can get ready.$" -Route120_Text_StevenReadyForBattle: @ 81F5ADE +Route120_Text_StevenReadyForBattle: .string "STEVEN: {PLAYER}{KUN}, are your POKéMON\n" .string "ready for battle?$" -Route120_Text_StevenShowMeYourPower: @ 81F5B0F +Route120_Text_StevenShowMeYourPower: .string "STEVEN: {PLAYER}{KUN}, show me your true\n" .string "power as a TRAINER!$" -Route120_Text_StevenUsedDevonScope: @ 81F5B43 +Route120_Text_StevenUsedDevonScope: .string "STEVEN used the DEVON SCOPE.\p" .string "An invisible POKéMON became completely\n" .string "visible!\p" .string "The startled POKéMON attacked!$" -Route120_Text_StevenGiveDevonScope: @ 81F5BAF +Route120_Text_StevenGiveDevonScope: .string "STEVEN: I see…\n" .string "Your battle style is intriguing.\p" .string "Your POKéMON have obviously grown\n" @@ -428,30 +428,30 @@ Route120_Text_StevenGiveDevonScope: @ 81F5BAF .string "Who knows, there may be other\n" .string "concealed POKéMON.$" -Route120_Text_StevenGoodbye: @ 81F5C7B +Route120_Text_StevenGoodbye: .string "STEVEN: {PLAYER}{KUN}.\p" .string "I enjoy seeing POKéMON and TRAINERS\n" .string "who strive together.\p" .string "I think you're doing great.\p" .string "Well, let's meet again somewhere.$" -Kecleon_Text_SomethingUnseeable: @ 81F5D00 +Kecleon_Text_SomethingUnseeable: .string "Something unseeable is in the way.$" -Kecleon_Text_WantToUseDevonScope: @ 81F5D23 +Kecleon_Text_WantToUseDevonScope: .string "Something unseeable is in the way.\p" .string "Want to use the DEVON SCOPE?$" -Kecleon_Text_UseDevonScopeMonAttacked: @ 81F5D63 +Kecleon_Text_UseDevonScopeMonAttacked: .string "{PLAYER} used the DEVON SCOPE.\p" .string "An invisible POKéMON became completely\n" .string "visible!\p" .string "The startled POKéMON attacked!$" -Route120_Text_RouteSignFortree: @ 81F5DCB +Route120_Text_RouteSignFortree: .string "ROUTE 120\n" .string "{LEFT_ARROW} FORTREE CITY$" -Route120_Text_RouteSign121: @ 81F5DE4 +Route120_Text_RouteSign121: .string "{RIGHT_ARROW} ROUTE 121\n" .string "{LEFT_ARROW} ROUTE 120$" diff --git a/data/maps/Route121/map.json b/data/maps/Route121/map.json index e956f62514..aa8f070859 100644 --- a/data/maps/Route121/map.json +++ b/data/maps/Route121/map.json @@ -52,7 +52,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "47", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_PERSIM", "script": "BerryTreeScript", "flag": "0" }, @@ -65,7 +65,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "48", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_ASPEAR", "script": "BerryTreeScript", "flag": "0" }, @@ -78,7 +78,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "49", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_RAWST", "script": "BerryTreeScript", "flag": "0" }, @@ -91,7 +91,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "50", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_CHESTO", "script": "BerryTreeScript", "flag": "0" }, @@ -104,7 +104,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "51", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_SOIL_1", "script": "BerryTreeScript", "flag": "0" }, @@ -117,7 +117,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "52", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_NANAB_1", "script": "BerryTreeScript", "flag": "0" }, @@ -130,7 +130,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "53", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_NANAB_2", "script": "BerryTreeScript", "flag": "0" }, @@ -143,7 +143,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "54", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_SOIL_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route121/scripts.inc b/data/maps/Route121/scripts.inc index fdc191ea82..3bd0a42ee1 100644 --- a/data/maps/Route121/scripts.inc +++ b/data/maps/Route121/scripts.inc @@ -2,24 +2,24 @@ .set LOCALID_GRUNT_2, 13 .set LOCALID_GRUNT_3, 14 -Route121_MapScripts:: @ 81F5DFC +Route121_MapScripts:: .byte 0 -Route121_EventScript_Woman:: @ 81F5DFD +Route121_EventScript_Woman:: msgbox Route121_Text_AheadLoomsMtPyre, MSGBOX_NPC end -Route121_EventScript_MtPyrePierSign:: @ 81F5E06 +Route121_EventScript_MtPyrePierSign:: msgbox Route121_Text_MtPyrePierSign, MSGBOX_SIGN end -Route121_EventScript_SafariZoneSign:: @ 81F5E0F +Route121_EventScript_SafariZoneSign:: msgbox Route121_Text_SafariZoneSign, MSGBOX_SIGN end -Route121_EventScript_AquaGruntsMoveOut:: @ 81F5E18 +Route121_EventScript_AquaGruntsMoveOut:: lockall - playbgm MUS_ENCOUNTER_AQUA, 0 + playbgm MUS_ENCOUNTER_AQUA, FALSE applymovement LOCALID_GRUNT_2, Common_Movement_WalkInPlaceRight waitmovement 0 msgbox Route121_Text_OkayMoveOutToMtPyre, MSGBOX_DEFAULT @@ -36,7 +36,7 @@ Route121_EventScript_AquaGruntsMoveOut:: @ 81F5E18 releaseall end -Route121_Movement_Grunt1Exit: @ 81F5E59 +Route121_Movement_Grunt1Exit: walk_down walk_down walk_down @@ -47,7 +47,7 @@ Route121_Movement_Grunt1Exit: @ 81F5E59 walk_down step_end -Route121_Movement_Grunt2Exit: @ 81F5E62 +Route121_Movement_Grunt2Exit: walk_down walk_down walk_down @@ -58,7 +58,7 @@ Route121_Movement_Grunt2Exit: @ 81F5E62 walk_down step_end -Route121_Movement_Grunt3Exit: @ 81F5E6B +Route121_Movement_Grunt3Exit: walk_down walk_down walk_down @@ -69,12 +69,12 @@ Route121_Movement_Grunt3Exit: @ 81F5E6B walk_down step_end -Route121_EventScript_Vanessa:: @ 81F5E74 +Route121_EventScript_Vanessa:: trainerbattle_single TRAINER_VANESSA, Route121_Text_VanessaIntro, Route121_Text_VanessaDefeat msgbox Route121_Text_VanessaPostBattle, MSGBOX_AUTOCLOSE end -Route121_EventScript_Walter:: @ 81F5E8B +Route121_EventScript_Walter:: trainerbattle_single TRAINER_WALTER_1, Route121_Text_WalterIntro, Route121_Text_WalterDefeat, Route121_EventScript_RegisterWalter specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -83,7 +83,7 @@ Route121_EventScript_Walter:: @ 81F5E8B release end -Route121_EventScript_RegisterWalter:: @ 81F5EB7 +Route121_EventScript_RegisterWalter:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route121_Text_WalterRegister, MSGBOX_DEFAULT @@ -91,27 +91,27 @@ Route121_EventScript_RegisterWalter:: @ 81F5EB7 release end -Route121_EventScript_RematchWalter:: @ 81F5ED6 +Route121_EventScript_RematchWalter:: trainerbattle_rematch TRAINER_WALTER_1, Route121_Text_WalterRematchIntro, Route121_Text_WalterRematchDefeat msgbox Route121_Text_WalterPostRematch, MSGBOX_AUTOCLOSE end -Route121_EventScript_Tammy:: @ 81F5EED +Route121_EventScript_Tammy:: trainerbattle_single TRAINER_TAMMY, Route121_Text_TammyIntro, Route121_Text_TammyDefeat msgbox Route121_Text_TammyPostBattle, MSGBOX_AUTOCLOSE end -Route121_EventScript_Kate:: @ 81F5F04 +Route121_EventScript_Kate:: trainerbattle_double TRAINER_KATE_AND_JOY, Route121_Text_KateIntro, Route121_Text_KateDefeat, Route121_Text_KateNotEnoughMons msgbox Route121_Text_KatePostBattle, MSGBOX_AUTOCLOSE end -Route121_EventScript_Joy:: @ 81F5F1F +Route121_EventScript_Joy:: trainerbattle_double TRAINER_KATE_AND_JOY, Route121_Text_JoyIntro, Route121_Text_JoyDefeat, Route121_Text_JoyNotEnoughMons msgbox Route121_Text_JoyPostBattle, MSGBOX_AUTOCLOSE end -Route121_EventScript_Jessica:: @ 81F5F3A +Route121_EventScript_Jessica:: trainerbattle_single TRAINER_JESSICA_1, Route121_Text_JessicaIntro, Route121_Text_JessicaDefeat, Route121_EventScript_RegisterJessica specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -120,7 +120,7 @@ Route121_EventScript_Jessica:: @ 81F5F3A release end -Route121_EventScript_RegisterJessica:: @ 81F5F66 +Route121_EventScript_RegisterJessica:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route121_Text_JessicaRegister, MSGBOX_DEFAULT @@ -128,32 +128,32 @@ Route121_EventScript_RegisterJessica:: @ 81F5F66 release end -Route121_EventScript_RematchJessica:: @ 81F5F85 +Route121_EventScript_RematchJessica:: trainerbattle_rematch TRAINER_JESSICA_1, Route121_Text_JessicaRematchIntro, Route121_Text_JessicaRematchDefeat msgbox Route121_Text_JessicaPostRematch, MSGBOX_AUTOCLOSE end -Route121_EventScript_Cale:: @ 81F5F9C +Route121_EventScript_Cale:: trainerbattle_single TRAINER_CALE, Route121_Text_CaleIntro, Route121_Text_CaleDefeat msgbox Route121_Text_CalePostBattle, MSGBOX_AUTOCLOSE end -Route121_EventScript_Myles:: @ 81F5FB3 +Route121_EventScript_Myles:: trainerbattle_single TRAINER_MYLES, Route121_Text_MylesIntro, Route121_Text_MylesDefeat msgbox Route121_Text_MylesPostBattle, MSGBOX_AUTOCLOSE end -Route121_EventScript_Pat:: @ 81F5FCA +Route121_EventScript_Pat:: trainerbattle_single TRAINER_PAT, Route121_Text_PatIntro, Route121_Text_PatDefeat msgbox Route121_Text_PatPostBattle, MSGBOX_AUTOCLOSE end -Route121_EventScript_Marcel:: @ 81F5FE1 +Route121_EventScript_Marcel:: trainerbattle_single TRAINER_MARCEL, Route121_Text_MarcelIntro, Route121_Text_MarcelDefeat msgbox Route121_Text_MarcelPostBattle, MSGBOX_AUTOCLOSE end -Route121_EventScript_Cristin:: @ 81F5FF8 +Route121_EventScript_Cristin:: trainerbattle_single TRAINER_CRISTIN_1, Route121_Text_CristinIntro, Route121_Text_CristinDefeat, Route121_EventScript_RegisterCristin specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -162,7 +162,7 @@ Route121_EventScript_Cristin:: @ 81F5FF8 release end -Route121_EventScript_RegisterCristin:: @ 81F6024 +Route121_EventScript_RegisterCristin:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route121_Text_CristinRegister, MSGBOX_DEFAULT @@ -170,26 +170,26 @@ Route121_EventScript_RegisterCristin:: @ 81F6024 release end -Route121_EventScript_RematchCristin:: @ 81F6043 +Route121_EventScript_RematchCristin:: trainerbattle_rematch TRAINER_CRISTIN_1, Route121_Text_CristinRematchIntro, Route121_Text_CristinRematchDefeat msgbox Route121_Text_CristinPostRematch, MSGBOX_AUTOCLOSE end -Route121_Text_OkayMoveOutToMtPyre: @ 81F605A +Route121_Text_OkayMoveOutToMtPyre: .string "Okay!\n" .string "We're to move out to MT. PYRE!$" -Route121_Text_AheadLoomsMtPyre: @ 81F607F +Route121_Text_AheadLoomsMtPyre: .string "Ahead looms MT. PYRE…\p" .string "It is a natural monument to the spirits \n" .string "of departed POKéMON…$" -Route121_Text_MtPyrePierSign: @ 81F60D3 +Route121_Text_MtPyrePierSign: .string "MT. PYRE PIER\p" .string "…The sign is old and worn out.\n" .string "The words are barely legible…$" -Route121_Text_SafariZoneSign: @ 81F611E +Route121_Text_SafariZoneSign: .string "“Filled with rare POKéMON!”\n" .string "SAFARI ZONE$" diff --git a/data/maps/Route121_SafariZoneEntrance/scripts.inc b/data/maps/Route121_SafariZoneEntrance/scripts.inc index a87a374d2a..6945f69dcb 100644 --- a/data/maps/Route121_SafariZoneEntrance/scripts.inc +++ b/data/maps/Route121_SafariZoneEntrance/scripts.inc @@ -1,12 +1,12 @@ -Route121_SafariZoneEntrance_MapScripts:: @ 822BBBB +Route121_SafariZoneEntrance_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, Route121_SafariZoneEntrance_OnFrame .byte 0 -Route121_SafariZoneEntrance_OnFrame: @ 822BBC1 +Route121_SafariZoneEntrance_OnFrame: map_script_2 VAR_SAFARI_ZONE_STATE, 1, Route121_SafariZoneEntrance_EventScript_ExitSafariZone .2byte 0 -Route121_SafariZoneEntrance_EventScript_ExitSafariZone:: @ 822BBCB +Route121_SafariZoneEntrance_EventScript_ExitSafariZone:: lockall applymovement OBJ_EVENT_ID_PLAYER, Route121_SafariZoneEntrance_Movement_ExitSafariZone waitmovement 0 @@ -14,7 +14,7 @@ Route121_SafariZoneEntrance_EventScript_ExitSafariZone:: @ 822BBCB releaseall end -Route121_SafariZoneEntrance_Movement_ExitSafariZone: @ 822BBDD +Route121_SafariZoneEntrance_Movement_ExitSafariZone: walk_up walk_right walk_right @@ -25,11 +25,11 @@ Route121_SafariZoneEntrance_Movement_ExitSafariZone: @ 822BBDD walk_right step_end -Route121_SafariZoneEntrance_EventScript_WelcomeAttendant:: @ 822BBE6 +Route121_SafariZoneEntrance_EventScript_WelcomeAttendant:: msgbox Route121_SafariZoneEntrance_Text_WelcomeToSafariZone, MSGBOX_NPC end -Route121_SafariZoneEntrance_EventScript_InfoAttendant:: @ 822BBEF +Route121_SafariZoneEntrance_EventScript_InfoAttendant:: lock faceplayer msgbox Route121_SafariZoneEntrance_Text_WelcomeFirstTime, MSGBOX_YESNO @@ -39,12 +39,12 @@ Route121_SafariZoneEntrance_EventScript_InfoAttendant:: @ 822BBEF release end -Route121_SafariZoneEntrance_EventScript_FirstTimeInfo:: @ 822BC0E +Route121_SafariZoneEntrance_EventScript_FirstTimeInfo:: msgbox Route121_SafariZoneEntrance_Text_FirstTimeInfo, MSGBOX_DEFAULT release end -Route121_SafariZoneEntrance_EventScript_EntranceCounterTrigger:: @ 822BC18 +Route121_SafariZoneEntrance_EventScript_EntranceCounterTrigger:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 @@ -56,7 +56,7 @@ Route121_SafariZoneEntrance_EventScript_EntranceCounterTrigger:: @ 822BC18 goto Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter end -Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone:: @ 822BC48 +Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone:: checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, 0 goto_if_eq Route121_SafariZoneEntrance_EventScript_NoPokeblockCase @@ -84,7 +84,7 @@ Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone:: @ 822BC48 waitstate end -Route121_SafariZoneEntrance_EventScript_CheckHasRoomForPokemon:: @ 822BCBF +Route121_SafariZoneEntrance_EventScript_CheckHasRoomForPokemon:: getpartysize compare VAR_RESULT, PARTY_SIZE goto_if_ne Route121_SafariZoneEntrance_EventScript_HasRoomForPokemon @@ -95,20 +95,20 @@ Route121_SafariZoneEntrance_EventScript_CheckHasRoomForPokemon:: @ 822BCBF goto Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter end -Route121_SafariZoneEntrance_EventScript_HasRoomForPokemon:: @ 822BCE9 +Route121_SafariZoneEntrance_EventScript_HasRoomForPokemon:: return -Route121_SafariZoneEntrance_EventScript_NoPokeblockCase:: @ 822BCEA +Route121_SafariZoneEntrance_EventScript_NoPokeblockCase:: msgbox Route121_SafariZoneEntrance_Text_YouNeedPokeblockCase, MSGBOX_DEFAULT goto Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter end -Route121_SafariZoneEntrance_EventScript_NotEnoughMoney:: @ 822BCF8 +Route121_SafariZoneEntrance_EventScript_NotEnoughMoney:: msgbox Route121_SafariZoneEntrance_Text_NotEnoughMoney, MSGBOX_DEFAULT goto Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter end -Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter:: @ 822BD06 +Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter:: closemessage hidemoneybox applymovement OBJ_EVENT_ID_PLAYER, Route121_SafariZoneEntrance_Movement_BackAwayFromCounter @@ -116,11 +116,11 @@ Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter:: @ 822BD06 releaseall end -Route121_SafariZoneEntrance_Movement_BackAwayFromCounter: @ 822BD16 +Route121_SafariZoneEntrance_Movement_BackAwayFromCounter: walk_right step_end -Route121_SafariZoneEntrance_Movement_EnterSafariZone: @ 822BD18 +Route121_SafariZoneEntrance_Movement_EnterSafariZone: walk_left walk_left walk_left @@ -131,7 +131,7 @@ Route121_SafariZoneEntrance_Movement_EnterSafariZone: @ 822BD18 delay_16 step_end -Route121_SafariZoneEntrance_EventScript_TrainerTipSign:: @ 822BD21 +Route121_SafariZoneEntrance_EventScript_TrainerTipSign:: msgbox Route121_SafariZoneEntrance_Text_TrainerTip, MSGBOX_SIGN end diff --git a/data/maps/Route122/scripts.inc b/data/maps/Route122/scripts.inc index 8fcfb4c09d..3c23a3982e 100644 --- a/data/maps/Route122/scripts.inc +++ b/data/maps/Route122/scripts.inc @@ -1,3 +1,3 @@ -Route122_MapScripts:: @ 81F6146 +Route122_MapScripts:: .byte 0 diff --git a/data/maps/Route123/map.json b/data/maps/Route123/map.json index 1bd25310a1..695b50acd4 100644 --- a/data/maps/Route123/map.json +++ b/data/maps/Route123/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "58", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_3", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "59", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_4", "script": "BerryTreeScript", "flag": "0" }, @@ -60,7 +60,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "60", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_1", "script": "BerryTreeScript", "flag": "0" }, @@ -73,7 +73,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "61", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_2", "script": "BerryTreeScript", "flag": "0" }, @@ -86,7 +86,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "62", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_LEPPA_1", "script": "BerryTreeScript", "flag": "0" }, @@ -99,7 +99,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "63", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_SOIL", "script": "BerryTreeScript", "flag": "0" }, @@ -112,7 +112,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "64", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_LEPPA_2", "script": "BerryTreeScript", "flag": "0" }, @@ -151,7 +151,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "65", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_3", "script": "BerryTreeScript", "flag": "0" }, @@ -164,7 +164,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "72", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_4", "script": "BerryTreeScript", "flag": "0" }, @@ -177,7 +177,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "73", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_2", "script": "BerryTreeScript", "flag": "0" }, @@ -190,7 +190,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "74", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_3", "script": "BerryTreeScript", "flag": "0" }, @@ -203,7 +203,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "79", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_4", "script": "BerryTreeScript", "flag": "0" }, @@ -216,7 +216,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "14", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_1", "script": "BerryTreeScript", "flag": "0" }, @@ -229,7 +229,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "15", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_1", "script": "BerryTreeScript", "flag": "0" }, @@ -242,7 +242,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "30", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_2", "script": "BerryTreeScript", "flag": "0" }, @@ -320,7 +320,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "87", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_PECHA", "script": "BerryTreeScript", "flag": "0" }, @@ -333,7 +333,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "88", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_SITRUS", "script": "BerryTreeScript", "flag": "0" }, @@ -346,7 +346,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "89", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_RAWST", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route123/scripts.inc b/data/maps/Route123/scripts.inc index 0c57d209cb..6ce0de6544 100644 --- a/data/maps/Route123/scripts.inc +++ b/data/maps/Route123/scripts.inc @@ -1,12 +1,12 @@ -Route123_MapScripts:: @ 81F6147 +Route123_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route123_OnTransition .byte 0 -Route123_OnTransition: @ 81F614D +Route123_OnTransition: special SetRoute123Weather end -Route123_EventScript_GigaDrainGirl:: @ 81F6151 +Route123_EventScript_GigaDrainGirl:: lock faceplayer goto_if_set FLAG_RECEIVED_TM19, Route123_EventScript_ReceivedGigaDrain @@ -23,43 +23,43 @@ Route123_EventScript_GigaDrainGirl:: @ 81F6151 release end -Route123_EventScript_NoGrassMons:: @ 81F619E +Route123_EventScript_NoGrassMons:: release end -Route123_EventScript_ReceivedGigaDrain:: @ 81F61A0 +Route123_EventScript_ReceivedGigaDrain:: msgbox Route123_Text_CheckTreesWithMyGrassMon, MSGBOX_DEFAULT release end -Route123_EventScript_RouteSign:: @ 81F61AA +Route123_EventScript_RouteSign:: msgbox Route123_Text_RouteSign, MSGBOX_SIGN end -Route123_EventScript_RouteSignMtPyre:: @ 81F61B3 +Route123_EventScript_RouteSignMtPyre:: msgbox Route123_Text_RouteSignMtPyre, MSGBOX_SIGN end -Route123_EventScript_BerryMastersHouseSign:: @ 81F61BC +Route123_EventScript_BerryMastersHouseSign:: msgbox Route123_Text_BerryMastersHouse, MSGBOX_SIGN end -Route123_EventScript_Wendy:: @ 81F61C5 +Route123_EventScript_Wendy:: trainerbattle_single TRAINER_WENDY, Route123_Text_WendyIntro, Route123_Text_WendyDefeat msgbox Route123_Text_WendyPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Braxton:: @ 81F61DC +Route123_EventScript_Braxton:: trainerbattle_single TRAINER_BRAXTON, Route123_Text_BraxtonIntro, Route123_Text_BraxtonDefeat msgbox Route123_Text_BraxtonPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Violet:: @ 81F61F3 +Route123_EventScript_Violet:: trainerbattle_single TRAINER_VIOLET, Route123_Text_VioletIntro, Route123_Text_VioletDefeat msgbox Route123_Text_VioletPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Cameron:: @ 81F620A +Route123_EventScript_Cameron:: trainerbattle_single TRAINER_CAMERON_1, Route123_Text_CameronIntro, Route123_Text_CameronDefeat, Route123_EventScript_RegisterCameron specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -68,7 +68,7 @@ Route123_EventScript_Cameron:: @ 81F620A release end -Route123_EventScript_RegisterCameron:: @ 81F6236 +Route123_EventScript_RegisterCameron:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route123_Text_CameronRegister, MSGBOX_DEFAULT @@ -76,12 +76,12 @@ Route123_EventScript_RegisterCameron:: @ 81F6236 release end -Route123_EventScript_RematchCameron:: @ 81F6255 +Route123_EventScript_RematchCameron:: trainerbattle_rematch TRAINER_CAMERON_1, Route123_Text_CameronRematchIntro, Route123_Text_CameronRematchDefeat msgbox Route123_Text_CameronPostRematch, MSGBOX_AUTOCLOSE end -Route123_EventScript_Jacki:: @ 81F626C +Route123_EventScript_Jacki:: trainerbattle_single TRAINER_JACKI_1, Route123_Text_JackiIntro, Route123_Text_JackiDefeat, Route123_EventScript_RegisterJacki specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -90,7 +90,7 @@ Route123_EventScript_Jacki:: @ 81F626C release end -Route123_EventScript_RegisterJacki:: @ 81F6298 +Route123_EventScript_RegisterJacki:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route123_Text_JackiRegister, MSGBOX_DEFAULT @@ -98,62 +98,62 @@ Route123_EventScript_RegisterJacki:: @ 81F6298 release end -Route123_EventScript_RematchJacki:: @ 81F62B7 +Route123_EventScript_RematchJacki:: trainerbattle_rematch TRAINER_JACKI_1, Route123_Text_JackiRematchIntro, Route123_Text_JackiRematchDefeat msgbox Route123_Text_JackiPostRematch, MSGBOX_AUTOCLOSE end -Route123_EventScript_Miu:: @ 81F62CE +Route123_EventScript_Miu:: trainerbattle_double TRAINER_MIU_AND_YUKI, Route123_Text_MiuIntro, Route123_Text_MiuDefeat, Route123_Text_MiuNotEnoughMons msgbox Route123_Text_MiuPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Yuki:: @ 81F62E9 +Route123_EventScript_Yuki:: trainerbattle_double TRAINER_MIU_AND_YUKI, Route123_Text_YukiIntro, Route123_Text_YukiDefeat, Route123_Text_YukiNotEnoughMons msgbox Route123_Text_YukiPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Kindra:: @ 81F6304 +Route123_EventScript_Kindra:: trainerbattle_single TRAINER_KINDRA, Route123_Text_KindraIntro, Route123_Text_KindraDefeat msgbox Route123_Text_KindraPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Frederick:: @ 81F631B +Route123_EventScript_Frederick:: trainerbattle_single TRAINER_FREDRICK, Route123_Text_FrederickIntro, Route123_Text_FrederickDefeat msgbox Route123_Text_FrederickPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Alberto:: @ 81F6332 +Route123_EventScript_Alberto:: trainerbattle_single TRAINER_ALBERTO, Route123_Text_AlbertoIntro, Route123_Text_AlbertoDefeat msgbox Route123_Text_AlbertoPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Ed:: @ 81F6349 +Route123_EventScript_Ed:: trainerbattle_single TRAINER_ED, Route123_Text_EdIntro, Route123_Text_EdDefeat msgbox Route123_Text_EdPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Kayley:: @ 81F6360 +Route123_EventScript_Kayley:: trainerbattle_single TRAINER_KAYLEY, Route123_Text_KayleyIntro, Route123_Text_KayleyDefeat msgbox Route123_Text_KayleyPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Jonas:: @ 81F6377 +Route123_EventScript_Jonas:: trainerbattle_single TRAINER_JONAS, Route123_Text_JonasIntro, Route123_Text_JonasDefeat msgbox Route123_Text_JonasPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Jazmyn:: @ 81F638E +Route123_EventScript_Jazmyn:: trainerbattle_single TRAINER_JAZMYN, Route123_Text_JazmynIntro, Route123_Text_JazmynDefeat msgbox Route123_Text_JazmynPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Davis:: @ 81F63A5 +Route123_EventScript_Davis:: trainerbattle_single TRAINER_DAVIS, Route123_Text_DavisIntro, Route123_Text_DavisDefeat msgbox Route123_Text_DavisPostBattle, MSGBOX_AUTOCLOSE end -Route123_EventScript_Fernando:: @ 81F63BC +Route123_EventScript_Fernando:: trainerbattle_single TRAINER_FERNANDO_1, Route123_Text_FernandoIntro, Route123_Text_FernandoDefeat, Route123_EventScript_RegisterFernando specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -162,7 +162,7 @@ Route123_EventScript_Fernando:: @ 81F63BC release end -Route123_EventScript_RegisterFernando:: @ 81F63E8 +Route123_EventScript_RegisterFernando:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route123_Text_FernandoRegister, MSGBOX_DEFAULT @@ -170,34 +170,34 @@ Route123_EventScript_RegisterFernando:: @ 81F63E8 release end -Route123_EventScript_RematchFernando:: @ 81F6407 +Route123_EventScript_RematchFernando:: trainerbattle_rematch TRAINER_FERNANDO_1, Route123_Text_FernandoRematchIntro, Route123_Text_FernandoRematchDefeat msgbox Route123_Text_FernandoPostRematch, MSGBOX_AUTOCLOSE end -Route123_Text_LoveGrassMonsHaveAny: @ 81F641E +Route123_Text_LoveGrassMonsHaveAny: .string "I love GRASS-type POKéMON!\p" .string "Do you have any GRASS-type POKéMON?$" -Route123_Text_YouLikeGrassMonsTooHaveThis: @ 81F645D +Route123_Text_YouLikeGrassMonsTooHaveThis: .string "Oh?\p" .string "You like GRASS-type POKéMON, too,\n" .string "don't you?\p" .string "I'm so happy, you can have this!\n" .string "It's a token of our friendship.$" -Route123_Text_CheckTreesWithMyGrassMon: @ 81F64CF +Route123_Text_CheckTreesWithMyGrassMon: .string "I check trees with my GRASS-type\n" .string "POKéMON. I'm like a tree doctor.$" -Route123_Text_RouteSign: @ 81F6511 +Route123_Text_RouteSign: .string "{RIGHT_ARROW} ROUTE 123\n" .string "{LEFT_ARROW} ROUTE 118$" -Route123_Text_RouteSignMtPyre: @ 81F6529 +Route123_Text_RouteSignMtPyre: .string "{UP_ARROW} MT. PYRE\n" .string "“Forbidden to the faint of heart.”$" -Route123_Text_BerryMastersHouse: @ 81F6557 +Route123_Text_BerryMastersHouse: .string "BERRY MASTER'S HOUSE$" diff --git a/data/maps/Route123_BerryMastersHouse/scripts.inc b/data/maps/Route123_BerryMastersHouse/scripts.inc index 8b2cc59191..a9fbfd9d0a 100644 --- a/data/maps/Route123_BerryMastersHouse/scripts.inc +++ b/data/maps/Route123_BerryMastersHouse/scripts.inc @@ -1,12 +1,12 @@ -Route123_BerryMastersHouse_MapScripts:: @ 826F83B +Route123_BerryMastersHouse_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route123_BerryMastersHouse_OnTransition .byte 0 -Route123_BerryMastersHouse_OnTransition: @ 826F841 +Route123_BerryMastersHouse_OnTransition: setflag FLAG_LANDMARK_BERRY_MASTERS_HOUSE end -Route123_BerryMastersHouse_EventScript_BerryMaster:: @ 826F845 +Route123_BerryMastersHouse_EventScript_BerryMaster:: lock faceplayer dotimebasedevents @@ -30,12 +30,12 @@ Route123_BerryMastersHouse_EventScript_BerryMaster:: @ 826F845 release end -Route123_BerryMastersHouse_EventScript_ReceivedBerryToday:: @ 826F8B6 +Route123_BerryMastersHouse_EventScript_ReceivedBerryToday:: msgbox Route123_BerryMastersHouse_Text_DoneForToday, MSGBOX_DEFAULT release end -Route123_BerryMastersHouse_EventScript_BerryMastersWife:: @ 826F8C0 +Route123_BerryMastersHouse_EventScript_BerryMastersWife:: lock faceplayer dotimebasedevents @@ -51,13 +51,13 @@ Route123_BerryMastersHouse_EventScript_BerryMastersWife:: @ 826F8C0 goto_if_eq Route123_BerryMastersHouse_EventScript_CancelPhrase end -Route123_BerryMastersHouse_EventScript_CancelPhrase:: @ 826F8F7 +Route123_BerryMastersHouse_EventScript_CancelPhrase:: msgbox Route123_BerryMastersHouse_Text_Ah, MSGBOX_DEFAULT msgbox Route123_BerryMastersHouse_Text_JoyNeverGoesOutOfMyLife, MSGBOX_DEFAULT release end -Route123_BerryMastersHouse_EventScript_GavePhrase:: @ 826F909 +Route123_BerryMastersHouse_EventScript_GavePhrase:: compare VAR_0x8004, NOT_SPECIAL_PHRASE goto_if_eq Route123_BerryMastersHouse_EventScript_GiveNormalBerry compare VAR_0x8004, PHRASE_GREAT_BATTLE @@ -72,7 +72,7 @@ Route123_BerryMastersHouse_EventScript_GavePhrase:: @ 826F909 goto_if_eq Route123_BerryMastersHouse_EventScript_GiveBelueBerry end -Route123_BerryMastersHouse_EventScript_GiveNormalBerry:: @ 826F94C +Route123_BerryMastersHouse_EventScript_GiveNormalBerry:: msgbox Route123_BerryMastersHouse_Text_GoodSayingTakeThis, MSGBOX_DEFAULT random NUM_BERRY_MASTER_WIFE_BERRIES addvar VAR_RESULT, FIRST_BERRY_INDEX @@ -83,7 +83,7 @@ Route123_BerryMastersHouse_EventScript_GiveNormalBerry:: @ 826F94C release end -Route123_BerryMastersHouse_EventScript_GiveSpelonBerry:: @ 826F97A +Route123_BerryMastersHouse_EventScript_GiveSpelonBerry:: goto_if_set FLAG_RECEIVED_SPELON_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_SPELON_BERRY @@ -93,7 +93,7 @@ Route123_BerryMastersHouse_EventScript_GiveSpelonBerry:: @ 826F97A goto Route123_BerryMastersHouse_EventScript_GaveBerry end -Route123_BerryMastersHouse_EventScript_GivePamtreBerry:: @ 826F9AB +Route123_BerryMastersHouse_EventScript_GivePamtreBerry:: goto_if_set FLAG_RECEIVED_PAMTRE_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_PAMTRE_BERRY @@ -103,7 +103,7 @@ Route123_BerryMastersHouse_EventScript_GivePamtreBerry:: @ 826F9AB goto Route123_BerryMastersHouse_EventScript_GaveBerry end -Route123_BerryMastersHouse_EventScript_GiveWatmelBerry:: @ 826F9DC +Route123_BerryMastersHouse_EventScript_GiveWatmelBerry:: goto_if_set FLAG_RECEIVED_WATMEL_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_WATMEL_BERRY @@ -113,7 +113,7 @@ Route123_BerryMastersHouse_EventScript_GiveWatmelBerry:: @ 826F9DC goto Route123_BerryMastersHouse_EventScript_GaveBerry end -Route123_BerryMastersHouse_EventScript_GiveDurinBerry:: @ 826FA0D +Route123_BerryMastersHouse_EventScript_GiveDurinBerry:: goto_if_set FLAG_RECEIVED_DURIN_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_DURIN_BERRY @@ -123,7 +123,7 @@ Route123_BerryMastersHouse_EventScript_GiveDurinBerry:: @ 826FA0D goto Route123_BerryMastersHouse_EventScript_GaveBerry end -Route123_BerryMastersHouse_EventScript_GiveBelueBerry:: @ 826FA3E +Route123_BerryMastersHouse_EventScript_GiveBelueBerry:: goto_if_set FLAG_RECEIVED_BELUE_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_BELUE_BERRY @@ -133,12 +133,12 @@ Route123_BerryMastersHouse_EventScript_GiveBelueBerry:: @ 826FA3E goto Route123_BerryMastersHouse_EventScript_GaveBerry end -Route123_BerryMastersHouse_EventScript_ReceivedWifeBerryToday:: @ 826FA6F +Route123_BerryMastersHouse_EventScript_ReceivedWifeBerryToday:: msgbox Route123_BerryMastersHouse_Text_JoyNeverGoesOutOfMyLife, MSGBOX_DEFAULT release end -Route123_BerryMastersHouse_EventScript_GaveBerry:: @ 826FA79 +Route123_BerryMastersHouse_EventScript_GaveBerry:: setflag FLAG_DAILY_BERRY_MASTERS_WIFE msgbox Route123_BerryMastersHouse_Text_JoyNeverGoesOutOfMyLife, MSGBOX_DEFAULT release diff --git a/data/maps/Route124/scripts.inc b/data/maps/Route124/scripts.inc index 92d43e6adc..d1cd8ef8c2 100644 --- a/data/maps/Route124/scripts.inc +++ b/data/maps/Route124/scripts.inc @@ -1,26 +1,26 @@ -Route124_MapScripts:: @ 81F656C +Route124_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route124_OnTransition .byte 0 -Route124_OnTransition: @ 81F6572 +Route124_OnTransition: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather end -Route124_EventScript_HuntersHouseSign:: @ 81F657C +Route124_EventScript_HuntersHouseSign:: msgbox Route124_Text_HuntersHouse, MSGBOX_SIGN end -Route124_EventScript_Spencer:: @ 81F6585 +Route124_EventScript_Spencer:: trainerbattle_single TRAINER_SPENCER, Route124_Text_SpencerIntro, Route124_Text_SpencerDefeat msgbox Route124_Text_SpencerPostBattle, MSGBOX_AUTOCLOSE end -Route124_EventScript_Roland:: @ 81F659C +Route124_EventScript_Roland:: trainerbattle_single TRAINER_ROLAND, Route124_Text_RolandIntro, Route124_Text_RolandDefeat msgbox Route124_Text_RolandPostBattle, MSGBOX_AUTOCLOSE end -Route124_EventScript_Jenny:: @ 81F65B3 +Route124_EventScript_Jenny:: trainerbattle_single TRAINER_JENNY_1, Route124_Text_JennyIntro, Route124_Text_JennyDefeat, Route124_EventScript_RegisterJenny specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -29,7 +29,7 @@ Route124_EventScript_Jenny:: @ 81F65B3 release end -Route124_EventScript_RegisterJenny:: @ 81F65DF +Route124_EventScript_RegisterJenny:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route124_Text_JennyRegister, MSGBOX_DEFAULT @@ -37,22 +37,22 @@ Route124_EventScript_RegisterJenny:: @ 81F65DF release end -Route124_EventScript_RematchJenny:: @ 81F65FE +Route124_EventScript_RematchJenny:: trainerbattle_rematch TRAINER_JENNY_1, Route124_Text_JennyRematchIntro, Route124_Text_JennyRematchDefeat msgbox Route124_Text_JennyPostRematch, MSGBOX_AUTOCLOSE end -Route124_EventScript_Grace:: @ 81F6615 +Route124_EventScript_Grace:: trainerbattle_single TRAINER_GRACE, Route124_Text_GraceIntro, Route124_Text_GraceDefeat msgbox Route124_Text_GracePostBattle, MSGBOX_AUTOCLOSE end -Route124_EventScript_Chad:: @ 81F662C +Route124_EventScript_Chad:: trainerbattle_single TRAINER_CHAD, Route124_Text_ChadIntro, Route124_Text_ChadDefeat msgbox Route124_Text_ChadPostBattle, MSGBOX_AUTOCLOSE end -Route124_EventScript_Lila:: @ 81F6643 +Route124_EventScript_Lila:: trainerbattle_double TRAINER_LILA_AND_ROY_1, Route124_Text_LilaIntro, Route124_Text_LilaDefeat, Route124_Text_LilaNotEnoughMons, Route124_EventScript_RegisterLila specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -61,18 +61,18 @@ Route124_EventScript_Lila:: @ 81F6643 release end -Route124_EventScript_RegisterLila:: @ 81F6673 +Route124_EventScript_RegisterLila:: msgbox Route124_Text_LilaRoyRegister, MSGBOX_DEFAULT register_matchcall TRAINER_LILA_AND_ROY_1 release end -Route124_EventScript_RematchLila:: @ 81F668C +Route124_EventScript_RematchLila:: trainerbattle_rematch_double TRAINER_LILA_AND_ROY_1, Route124_Text_LilaRematchIntro, Route124_Text_LilaRematchDefeat, Route124_Text_LilaRematchNotEnoughMons msgbox Route124_Text_LilaPostRematch, MSGBOX_AUTOCLOSE end -Route124_EventScript_Roy:: @ 81F66A7 +Route124_EventScript_Roy:: trainerbattle_double TRAINER_LILA_AND_ROY_1, Route124_Text_RoyIntro, Route124_Text_RoyDefeat, Route124_Text_RoyNotEnoughMons, Route124_EventScript_RegisterRoy specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -81,27 +81,27 @@ Route124_EventScript_Roy:: @ 81F66A7 release end -Route124_EventScript_RegisterRoy:: @ 81F66D7 +Route124_EventScript_RegisterRoy:: msgbox Route124_Text_LilaRoyRegister, MSGBOX_DEFAULT register_matchcall TRAINER_LILA_AND_ROY_1 release end -Route124_EventScript_RematchRoy:: @ 81F66F0 +Route124_EventScript_RematchRoy:: trainerbattle_rematch_double TRAINER_LILA_AND_ROY_1, Route124_Text_RoyRematchIntro, Route124_Text_RoyRematchDefeat, Route124_Text_RoyRematchNotEnoughMons msgbox Route124_Text_RoyPostRematch, MSGBOX_AUTOCLOSE end -Route124_EventScript_Declan:: @ 81F670B +Route124_EventScript_Declan:: trainerbattle_single TRAINER_DECLAN, Route124_Text_DeclanIntro, Route124_Text_DeclanDefeat msgbox Route124_Text_DeclanPostBattle, MSGBOX_AUTOCLOSE end -Route124_EventScript_Isabella:: @ 81F6722 +Route124_EventScript_Isabella:: trainerbattle_single TRAINER_ISABELLA, Route124_Text_IsabellaIntro, Route124_Text_IsabellaDefeat msgbox Route124_Text_IsabellaPostBattle, MSGBOX_AUTOCLOSE end -Route124_Text_HuntersHouse: @ 81F6739 +Route124_Text_HuntersHouse: .string "HUNTER'S HOUSE$" diff --git a/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc b/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc index c5d43799d9..63bee6ed5b 100644 --- a/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc +++ b/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc @@ -1,12 +1,12 @@ -Route124_DivingTreasureHuntersHouse_MapScripts:: @ 8270A28 +Route124_DivingTreasureHuntersHouse_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route124_DivingTreasureHuntersHouse_OnTransition .byte 0 -Route124_DivingTreasureHuntersHouse_OnTransition: @ 8270A2E +Route124_DivingTreasureHuntersHouse_OnTransition: setflag FLAG_LANDMARK_HUNTERS_HOUSE end -Route124_DivingTreasureHuntersHouse_EventScript_TreasureHunter:: @ 8270A32 +Route124_DivingTreasureHuntersHouse_EventScript_TreasureHunter:: lock faceplayer goto_if_set FLAG_MET_DIVING_TREASURE_HUNTER, Route124_DivingTreasureHuntersHouse_EventScript_SkipGreeting @@ -15,19 +15,19 @@ Route124_DivingTreasureHuntersHouse_EventScript_TreasureHunter:: @ 8270A32 goto Route124_DivingTreasureHuntersHouse_EventScript_CheckPlayerHasShard end -Route124_DivingTreasureHuntersHouse_EventScript_SkipGreeting:: @ 8270A4E +Route124_DivingTreasureHuntersHouse_EventScript_SkipGreeting:: msgbox Route124_DivingTreasureHuntersHouse_Text_HaveYouSeenAnyShards, MSGBOX_DEFAULT goto Route124_DivingTreasureHuntersHouse_EventScript_CheckPlayerHasShard end -Route124_DivingTreasureHuntersHouse_EventScript_CheckPlayerHasShard:: @ 8270A5C +Route124_DivingTreasureHuntersHouse_EventScript_CheckPlayerHasShard:: call Route124_DivingTreasureHuntersHouse_EventScript_GetPlayersShards compare VAR_TEMP_1, 0 goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_NoShards goto Route124_DivingTreasureHuntersHouse_EventScript_HasShard end -Route124_DivingTreasureHuntersHouse_EventScript_GetPlayersShards:: @ 8270A72 +Route124_DivingTreasureHuntersHouse_EventScript_GetPlayersShards:: setvar VAR_TEMP_1, 0 checkitem ITEM_RED_SHARD, 1 compare VAR_RESULT, TRUE @@ -43,28 +43,28 @@ Route124_DivingTreasureHuntersHouse_EventScript_GetPlayersShards:: @ 8270A72 call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_HasGreenShard return -Route124_DivingTreasureHuntersHouse_EventScript_HasRedShard:: @ 8270AB8 +Route124_DivingTreasureHuntersHouse_EventScript_HasRedShard:: addvar VAR_TEMP_1, 1 return -Route124_DivingTreasureHuntersHouse_EventScript_HasYellowShard:: @ 8270ABE +Route124_DivingTreasureHuntersHouse_EventScript_HasYellowShard:: addvar VAR_TEMP_1, 2 return -Route124_DivingTreasureHuntersHouse_EventScript_HasBlueShard:: @ 8270AC4 +Route124_DivingTreasureHuntersHouse_EventScript_HasBlueShard:: addvar VAR_TEMP_1, 4 return -Route124_DivingTreasureHuntersHouse_EventScript_HasGreenShard:: @ 8270ACA +Route124_DivingTreasureHuntersHouse_EventScript_HasGreenShard:: addvar VAR_TEMP_1, 8 return -Route124_DivingTreasureHuntersHouse_EventScript_HasShard:: @ 8270AD0 +Route124_DivingTreasureHuntersHouse_EventScript_HasShard:: msgbox Route124_DivingTreasureHuntersHouse_Text_ThatsAShardIllTradeYou, MSGBOX_DEFAULT goto Route124_DivingTreasureHuntersHouse_EventScript_ShowTradeOptions end -Route124_DivingTreasureHuntersHouse_EventScript_ShowTradeOptions:: @ 8270ADE +Route124_DivingTreasureHuntersHouse_EventScript_ShowTradeOptions:: message Route124_DivingTreasureHuntersHouse_Text_WhatDoYouWantToTrade waitmessage switch VAR_TEMP_1 @@ -85,24 +85,24 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShowTradeOptions:: @ 8270ADE case 15, Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYBG end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsR:: @ 8270B8F - multichoice 0, 0, MULTI_SHARDS_R, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsR:: + multichoice 0, 0, MULTI_SHARDS_R, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsY:: @ 8270BB5 - multichoice 0, 0, MULTI_SHARDS_Y, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsY:: + multichoice 0, 0, MULTI_SHARDS_Y, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRY:: @ 8270BDB - multichoice 0, 0, MULTI_SHARDS_RY, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRY:: + multichoice 0, 0, MULTI_SHARDS_RY, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard @@ -110,16 +110,16 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRY:: @ 8270BDB goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsB:: @ 8270C0C - multichoice 0, 0, MULTI_SHARDS_B, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsB:: + multichoice 0, 0, MULTI_SHARDS_B, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeBlueShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRB:: @ 8270C32 - multichoice 0, 0, MULTI_SHARDS_RB, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRB:: + multichoice 0, 0, MULTI_SHARDS_RB, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeBlueShard @@ -127,8 +127,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRB:: @ 8270C32 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYB:: @ 8270C63 - multichoice 0, 0, MULTI_SHARDS_YB, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYB:: + multichoice 0, 0, MULTI_SHARDS_YB, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeBlueShard @@ -136,8 +136,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYB:: @ 8270C63 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYB:: @ 8270C94 - multichoice 0, 0, MULTI_SHARDS_RYB, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYB:: + multichoice 0, 0, MULTI_SHARDS_RYB, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard @@ -146,16 +146,16 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYB:: @ 8270C94 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsG:: @ 8270CD0 - multichoice 0, 0, MULTI_SHARDS_G, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsG:: + multichoice 0, 0, MULTI_SHARDS_G, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeGreenShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRG:: @ 8270CF6 - multichoice 0, 0, MULTI_SHARDS_RG, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRG:: + multichoice 0, 0, MULTI_SHARDS_RG, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeGreenShard @@ -163,8 +163,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRG:: @ 8270CF6 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYG:: @ 8270D27 - multichoice 0, 0, MULTI_SHARDS_YG, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYG:: + multichoice 0, 0, MULTI_SHARDS_YG, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeGreenShard @@ -172,8 +172,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYG:: @ 8270D27 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYG:: @ 8270D58 - multichoice 0, 0, MULTI_SHARDS_RYG, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYG:: + multichoice 0, 0, MULTI_SHARDS_RYG, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard @@ -182,8 +182,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYG:: @ 8270D58 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsBG:: @ 8270D94 - multichoice 0, 0, MULTI_SHARDS_BG, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsBG:: + multichoice 0, 0, MULTI_SHARDS_BG, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeBlueShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeGreenShard @@ -191,8 +191,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsBG:: @ 8270D94 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRBG:: @ 8270DC5 - multichoice 0, 0, MULTI_SHARDS_RBG, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRBG:: + multichoice 0, 0, MULTI_SHARDS_RBG, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeBlueShard @@ -201,8 +201,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRBG:: @ 8270DC5 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYBG:: @ 8270E01 - multichoice 0, 0, MULTI_SHARDS_YBG, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYBG:: + multichoice 0, 0, MULTI_SHARDS_YBG, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeBlueShard @@ -211,8 +211,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsYBG:: @ 8270E01 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYBG:: @ 8270E3D - multichoice 0, 0, MULTI_SHARDS_RYBG, 0 +Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYBG:: + multichoice 0, 0, MULTI_SHARDS_RYBG, FALSE switch VAR_RESULT case 0, Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard case 1, Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard @@ -222,27 +222,27 @@ Route124_DivingTreasureHuntersHouse_EventScript_ShardOptionsRYBG:: @ 8270E3D goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard:: @ 8270E84 +Route124_DivingTreasureHuntersHouse_EventScript_TradeRedShard:: setvar VAR_0x8008, ITEM_RED_SHARD setvar VAR_0x8009, ITEM_FIRE_STONE goto Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard -Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard:: @ 8270E93 +Route124_DivingTreasureHuntersHouse_EventScript_TradeYellowShard:: setvar VAR_0x8008, ITEM_YELLOW_SHARD setvar VAR_0x8009, ITEM_THUNDER_STONE goto Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard -Route124_DivingTreasureHuntersHouse_EventScript_TradeBlueShard:: @ 8270EA2 +Route124_DivingTreasureHuntersHouse_EventScript_TradeBlueShard:: setvar VAR_0x8008, ITEM_BLUE_SHARD setvar VAR_0x8009, ITEM_WATER_STONE goto Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard -Route124_DivingTreasureHuntersHouse_EventScript_TradeGreenShard:: @ 8270EB1 +Route124_DivingTreasureHuntersHouse_EventScript_TradeGreenShard:: setvar VAR_0x8008, ITEM_GREEN_SHARD setvar VAR_0x8009, ITEM_LEAF_STONE goto Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard -Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard:: @ 8270EC0 +Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard:: bufferitemname 0, VAR_0x8008 bufferitemname 1, VAR_0x8009 msgbox Route124_DivingTreasureHuntersHouse_Text_YoullTradeShardForStone, MSGBOX_YESNO @@ -257,7 +257,7 @@ Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard:: @ 8270EC0 goto Route124_DivingTreasureHuntersHouse_EventScript_BagFull end -Route124_DivingTreasureHuntersHouse_EventScript_TradeShard:: @ 8270F01 +Route124_DivingTreasureHuntersHouse_EventScript_TradeShard:: removeitem VAR_0x8008 giveitem VAR_0x8009 msgbox Route124_DivingTreasureHuntersHouse_Text_ItsADeal, MSGBOX_DEFAULT @@ -270,74 +270,74 @@ Route124_DivingTreasureHuntersHouse_EventScript_TradeShard:: @ 8270F01 goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end -Route124_DivingTreasureHuntersHouse_EventScript_BagFull:: @ 8270F43 +Route124_DivingTreasureHuntersHouse_EventScript_BagFull:: msgbox Route124_DivingTreasureHuntersHouse_Text_BagFull, MSGBOX_DEFAULT release end -Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade:: @ 8270F4D +Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade:: msgbox Route124_DivingTreasureHuntersHouse_Text_ComeBackIfYouChangeMind, MSGBOX_DEFAULT release end -Route124_DivingTreasureHuntersHouse_EventScript_NoShards:: @ 8270F57 +Route124_DivingTreasureHuntersHouse_EventScript_NoShards:: msgbox Route124_DivingTreasureHuntersHouse_Text_YouHaventGotAnyShards, MSGBOX_DEFAULT release end -Route124_DivingTreasureHuntersHouse_EventScript_EndTrade:: @ 8270F61 +Route124_DivingTreasureHuntersHouse_EventScript_EndTrade:: release end -Route124_DivingTreasureHuntersHouse_EventScript_ShardTradeBoard:: @ 8270F63 +Route124_DivingTreasureHuntersHouse_EventScript_ShardTradeBoard:: msgbox Route124_DivingTreasureHuntersHouse_Text_ShardTradeBoard, MSGBOX_SIGN end -Route124_DivingTreasureHuntersHouse_Text_Greeting: @ 8270F6C +Route124_DivingTreasureHuntersHouse_Text_Greeting: .string "I'm the DIVING TREASURE HUNTER!\p" .string "I'm the awesome dude who makes\n" .string "deep-sea dives to gather treasures\l" .string "resting at the bottom.$" -Route124_DivingTreasureHuntersHouse_Text_HaveYouSeenAnyShards: @ 8270FE5 +Route124_DivingTreasureHuntersHouse_Text_HaveYouSeenAnyShards: .string "Tell me, have you seen any SHARDS of\n" .string "tools made in ancient times?$" -Route124_DivingTreasureHuntersHouse_Text_YouHaventGotAnyShards: @ 8271027 +Route124_DivingTreasureHuntersHouse_Text_YouHaventGotAnyShards: .string "You haven't got any treasures\n" .string "for me…\p" .string "If you see any SHARDS, like the RED\n" .string "SHARD, you've got to trade it with me!$" -Route124_DivingTreasureHuntersHouse_Text_ThatsAShardIllTradeYou: @ 8271098 +Route124_DivingTreasureHuntersHouse_Text_ThatsAShardIllTradeYou: .string "Oh, hey! That…\n" .string "That's a SHARD! I'm looking for those!\p" .string "Oh, man, you've got to trade that\n" .string "with me! I'll give you something good!$" -Route124_DivingTreasureHuntersHouse_Text_WhatDoYouWantToTrade: @ 8271117 +Route124_DivingTreasureHuntersHouse_Text_WhatDoYouWantToTrade: .string "What do you want to trade?$" -Route124_DivingTreasureHuntersHouse_Text_YoullTradeShardForStone: @ 8271132 +Route124_DivingTreasureHuntersHouse_Text_YoullTradeShardForStone: .string "You'll trade your {STR_VAR_1} for\n" .string "my {STR_VAR_2}, then?$" -Route124_DivingTreasureHuntersHouse_Text_ItsADeal: @ 8271158 +Route124_DivingTreasureHuntersHouse_Text_ItsADeal: .string "It's a done deal!\n" .string "Use that wisely!$" -Route124_DivingTreasureHuntersHouse_Text_TradeSomethingElse: @ 827117B +Route124_DivingTreasureHuntersHouse_Text_TradeSomethingElse: .string "Do you want to trade something else?$" -Route124_DivingTreasureHuntersHouse_Text_BagFull: @ 82711A0 +Route124_DivingTreasureHuntersHouse_Text_BagFull: .string "Whoops, your BAG's full.\n" .string "Get rid of some items, friend!$" -Route124_DivingTreasureHuntersHouse_Text_ComeBackIfYouChangeMind: @ 82711D8 +Route124_DivingTreasureHuntersHouse_Text_ComeBackIfYouChangeMind: .string "No? That's a downer.\n" .string "Well, if you change your mind, come back.$" -Route124_DivingTreasureHuntersHouse_Text_ShardTradeBoard: @ 8271217 +Route124_DivingTreasureHuntersHouse_Text_ShardTradeBoard: .string "{CLEAR_TO 0x0a}Wanted item{CLEAR_TO 0x7c}Trade item\n" .string "{CLEAR_TO 0x0f}RED SHARD{CLEAR_TO 0x59}{LEFT_ARROW}{RIGHT_ARROW}{CLEAR_TO 0x7b}FIRE STONE{CLEAR_TO 0xc8}\p" .string "{CLEAR_TO 0x0a}Wanted item{CLEAR_TO 0x7c}Trade item\n" diff --git a/data/maps/Route125/scripts.inc b/data/maps/Route125/scripts.inc index b771e75f9a..7a2d3f15fa 100644 --- a/data/maps/Route125/scripts.inc +++ b/data/maps/Route125/scripts.inc @@ -1,10 +1,10 @@ -Route125_MapScripts:: @ 81F6748 +Route125_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route125_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route125_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, Route125_OnFrame .byte 0 -Route125_OnTransition: @ 81F6758 +Route125_OnTransition: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 call_if_eq AbnormalWeather_EventScript_HideMapNamePopup @@ -14,38 +14,38 @@ Route125_OnTransition: @ 81F6758 call_if_eq AbnormalWeather_StartKyogreWeather end -Route125_OnLoad: @ 81F6783 +Route125_OnLoad: compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_WEST call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute125West compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_EAST call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute125East end -Route125_OnFrame: @ 81F679A +Route125_OnFrame: map_script_2 VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_EndEventAndCleanup_1 .2byte 0 -Route125_EventScript_Nolen:: @ 81F67A4 +Route125_EventScript_Nolen:: trainerbattle_single TRAINER_NOLEN, Route125_Text_NolenIntro, Route125_Text_NolenDefeat msgbox Route125_Text_NolenPostBattle, MSGBOX_AUTOCLOSE end -Route125_EventScript_Stan:: @ 81F67BB +Route125_EventScript_Stan:: trainerbattle_single TRAINER_STAN, Route125_Text_StanIntro, Route125_Text_StanDefeat msgbox Route125_Text_StanPostBattle, MSGBOX_AUTOCLOSE end -Route125_EventScript_Tanya:: @ 81F67D2 +Route125_EventScript_Tanya:: trainerbattle_single TRAINER_TANYA, Route125_Text_TanyaIntro, Route125_Text_TanyaDefeat msgbox Route125_Text_TanyaPostBattle, MSGBOX_AUTOCLOSE end -Route125_EventScript_Sharon:: @ 81F67E9 +Route125_EventScript_Sharon:: trainerbattle_single TRAINER_SHARON, Route125_Text_SharonIntro, Route125_Text_SharonDefeat msgbox Route125_Text_SharonPostBattle, MSGBOX_AUTOCLOSE end -Route125_EventScript_Ernest:: @ 81F6800 +Route125_EventScript_Ernest:: trainerbattle_single TRAINER_ERNEST_1, Route125_Text_ErnestIntro, Route125_Text_ErnestDefeat, Route125_EventScript_RegisterErnest specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -54,7 +54,7 @@ Route125_EventScript_Ernest:: @ 81F6800 release end -Route125_EventScript_RegisterErnest:: @ 81F682C +Route125_EventScript_RegisterErnest:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route125_Text_ErnestRegister, MSGBOX_DEFAULT @@ -62,27 +62,27 @@ Route125_EventScript_RegisterErnest:: @ 81F682C release end -Route125_EventScript_RematchErnest:: @ 81F684B +Route125_EventScript_RematchErnest:: trainerbattle_rematch TRAINER_ERNEST_1, Route125_Text_ErnestRematchIntro, Route125_Text_ErnestRematchDefeat msgbox Route125_Text_ErnestRematchPostBattle, MSGBOX_AUTOCLOSE end -Route125_EventScript_Kim:: @ 81F6862 +Route125_EventScript_Kim:: trainerbattle_double TRAINER_KIM_AND_IRIS, Route125_Text_KimIntro, Route125_Text_KimDefeat, Route125_Text_KimNotEnoughMons msgbox Route125_Text_KimPostBattle, MSGBOX_AUTOCLOSE end -Route125_EventScript_Iris:: @ 81F687D +Route125_EventScript_Iris:: trainerbattle_double TRAINER_KIM_AND_IRIS, Route125_Text_IrisIntro, Route125_Text_IrisDefeat, Route125_Text_IrisNotEnoughMons msgbox Route125_Text_IrisPostBattle, MSGBOX_AUTOCLOSE end -Route125_EventScript_Presley:: @ 81F6898 +Route125_EventScript_Presley:: trainerbattle_single TRAINER_PRESLEY, Route125_Text_PresleyIntro, Route125_Text_PresleyDefeat msgbox Route125_Text_PresleyPostBattle, MSGBOX_AUTOCLOSE end -Route125_EventScript_Auron:: @ 81F68AF +Route125_EventScript_Auron:: trainerbattle_single TRAINER_AURON, Route125_Text_AuronIntro, Route125_Text_AuronDefeat msgbox Route125_Text_AuronPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route126/scripts.inc b/data/maps/Route126/scripts.inc index 6fbc435924..79f5bb11be 100644 --- a/data/maps/Route126/scripts.inc +++ b/data/maps/Route126/scripts.inc @@ -1,47 +1,47 @@ -Route126_MapScripts:: @ 81F68C6 +Route126_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route126_OnTransition .byte 0 -Route126_OnTransition: @ 81F68CC +Route126_OnTransition: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather end -Route126_EventScript_Barry:: @ 81F68D6 +Route126_EventScript_Barry:: trainerbattle_single TRAINER_BARRY, Route126_Text_BarryIntro, Route126_Text_BarryDefeat msgbox Route126_Text_BarryPostBattle, MSGBOX_AUTOCLOSE end -Route126_EventScript_Dean:: @ 81F68ED +Route126_EventScript_Dean:: trainerbattle_single TRAINER_DEAN, Route126_Text_DeanIntro, Route126_Text_DeanDefeat msgbox Route126_Text_DeanPostBattle, MSGBOX_AUTOCLOSE end -Route126_EventScript_Nikki:: @ 81F6904 +Route126_EventScript_Nikki:: trainerbattle_single TRAINER_NIKKI, Route126_Text_NikkiIntro, Route126_Text_NikkiDefeat msgbox Route126_Text_NikkiPostBattle, MSGBOX_AUTOCLOSE end -Route126_EventScript_Brenda:: @ 81F691B +Route126_EventScript_Brenda:: trainerbattle_single TRAINER_BRENDA, Route126_Text_BrendaIntro, Route126_Text_BrendaDefeat msgbox Route126_Text_BrendaPostBattle, MSGBOX_AUTOCLOSE end -Route126_EventScript_Leonardo:: @ 81F6932 +Route126_EventScript_Leonardo:: trainerbattle_single TRAINER_LEONARDO, Route126_Text_LeonardoIntro, Route126_Text_LeonardoDefeat msgbox Route126_Text_LeonardoPostBattle, MSGBOX_AUTOCLOSE end -Route126_EventScript_Isobel:: @ 81F6949 +Route126_EventScript_Isobel:: trainerbattle_single TRAINER_ISOBEL, Route126_Text_IsobelIntro, Route126_Text_IsobelDefeat msgbox Route126_Text_IsobelPostBattle, MSGBOX_AUTOCLOSE end -Route126_EventScript_Sienna:: @ 81F6960 +Route126_EventScript_Sienna:: trainerbattle_single TRAINER_SIENNA, Route126_Text_SiennaIntro, Route126_Text_SiennaDefeat msgbox Route126_Text_SiennaPostBattle, MSGBOX_AUTOCLOSE end -Route126_EventScript_Pablo:: @ 81F6977 +Route126_EventScript_Pablo:: trainerbattle_single TRAINER_PABLO_1, Route126_Text_PabloIntro, Route126_Text_PabloDefeat, Route126_EventScript_RegisterPablo specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -50,7 +50,7 @@ Route126_EventScript_Pablo:: @ 81F6977 release end -Route126_EventScript_RegisterPablo:: @ 81F69A3 +Route126_EventScript_RegisterPablo:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route126_Text_PabloRegister, MSGBOX_DEFAULT @@ -58,7 +58,7 @@ Route126_EventScript_RegisterPablo:: @ 81F69A3 release end -Route126_EventScript_RematchPablo:: @ 81F69C2 +Route126_EventScript_RematchPablo:: trainerbattle_rematch TRAINER_PABLO_1, Route126_Text_PabloRematchIntro, Route126_Text_PabloRematchDefeat msgbox Route126_Text_PabloPostRematch, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route127/scripts.inc b/data/maps/Route127/scripts.inc index 323315b04f..426e814702 100644 --- a/data/maps/Route127/scripts.inc +++ b/data/maps/Route127/scripts.inc @@ -1,10 +1,10 @@ -Route127_MapScripts:: @ 81F69D9 +Route127_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route127_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route127_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, Route127_OnFrame .byte 0 -Route127_OnTransition: @ 81F69E9 +Route127_OnTransition: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 call_if_eq AbnormalWeather_EventScript_HideMapNamePopup @@ -14,53 +14,53 @@ Route127_OnTransition: @ 81F69E9 call_if_eq AbnormalWeather_StartKyogreWeather end -Route127_OnLoad: @ 81F6A14 +Route127_OnLoad: compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_NORTH call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute127North compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_SOUTH call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute127South end -Route127_OnFrame: @ 81F6A2B +Route127_OnFrame: map_script_2 VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_EndEventAndCleanup_1 .2byte 0 -Route127_EventScript_Camden:: @ 81F6A35 +Route127_EventScript_Camden:: trainerbattle_single TRAINER_CAMDEN, Route127_Text_CamdenIntro, Route127_Text_CamdenDefeat msgbox Route127_Text_CamdenPostBattle, MSGBOX_AUTOCLOSE end -Route127_EventScript_Donny:: @ 81F6A4C +Route127_EventScript_Donny:: trainerbattle_single TRAINER_DONNY, Route127_Text_DonnyIntro, Route127_Text_DonnyDefeat msgbox Route127_Text_DonnyPostBattle, MSGBOX_AUTOCLOSE end -Route127_EventScript_Jonah:: @ 81F6A63 +Route127_EventScript_Jonah:: trainerbattle_single TRAINER_JONAH, Route127_Text_JonahIntro, Route127_Text_JonahDefeat msgbox Route127_Text_JonahPostBattle, MSGBOX_AUTOCLOSE end -Route127_EventScript_Henry:: @ 81F6A7A +Route127_EventScript_Henry:: trainerbattle_single TRAINER_HENRY, Route127_Text_HenryIntro, Route127_Text_HenryDefeat msgbox Route127_Text_HenryPostBattle, MSGBOX_AUTOCLOSE end -Route127_EventScript_Roger:: @ 81F6A91 +Route127_EventScript_Roger:: trainerbattle_single TRAINER_ROGER, Route127_Text_RogerIntro, Route127_Text_RogerDefeat msgbox Route127_Text_RogerPostBattle, MSGBOX_AUTOCLOSE end -Route127_EventScript_Aidan:: @ 81F6AA8 +Route127_EventScript_Aidan:: trainerbattle_single TRAINER_AIDAN, Route127_Text_AidanIntro, Route127_Text_AidanDefeat msgbox Route127_Text_AidanPostBattle, MSGBOX_AUTOCLOSE end -Route127_EventScript_Athena:: @ 81F6ABF +Route127_EventScript_Athena:: trainerbattle_single TRAINER_ATHENA, Route127_Text_AthenaIntro, Route127_Text_AthenaDefeat msgbox Route127_Text_AthenaPostBattle, MSGBOX_AUTOCLOSE end -Route127_EventScript_Koji:: @ 81F6AD6 +Route127_EventScript_Koji:: trainerbattle_single TRAINER_KOJI_1, Route127_Text_KojiIntro, Route127_Text_KojiDefeat, Route127_EventScript_RegisterKoji specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -69,7 +69,7 @@ Route127_EventScript_Koji:: @ 81F6AD6 release end -Route127_EventScript_RegisterKoji:: @ 81F6B02 +Route127_EventScript_RegisterKoji:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route127_Text_KojiRegister, MSGBOX_DEFAULT @@ -77,7 +77,7 @@ Route127_EventScript_RegisterKoji:: @ 81F6B02 release end -Route127_EventScript_RematchKoji:: @ 81F6B21 +Route127_EventScript_RematchKoji:: trainerbattle_rematch TRAINER_KOJI_1, Route127_Text_KojiRematchIntro, Route127_Text_KojiRematchDefeat msgbox Route127_Text_KojiPostRematch, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route128/scripts.inc b/data/maps/Route128/scripts.inc index 2e69a50adf..09b5c404ac 100644 --- a/data/maps/Route128/scripts.inc +++ b/data/maps/Route128/scripts.inc @@ -2,20 +2,20 @@ .set LOCALID_ARCHIE, 4 .set LOCALID_MAXIE, 5 -Route128_MapScripts:: @ 81F6B38 +Route128_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route128_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, Route128_OnFrame .byte 0 -Route128_OnTransition: @ 81F6B43 +Route128_OnTransition: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather end -Route128_OnFrame: @ 81F6B4D +Route128_OnFrame: map_script_2 VAR_ROUTE128_STATE, 1, Route128_EventScript_KyogreAwakenedScene .2byte 0 -Route128_EventScript_KyogreAwakenedScene:: @ 81F6B57 +Route128_EventScript_KyogreAwakenedScene:: lockall delay 20 applymovement LOCALID_ARCHIE, Route128_Movement_ArchieLookAround @@ -82,11 +82,11 @@ Route128_EventScript_KyogreAwakenedScene:: @ 81F6B57 releaseall end -Route128_Movement_Unused1: @ 81F6C76 +Route128_Movement_Unused1: walk_fast_left step_end -Route128_Movement_Unused2: @ 81F6C78 +Route128_Movement_Unused2: walk_left walk_left walk_left @@ -101,15 +101,15 @@ Route128_Movement_Unused2: @ 81F6C78 walk_up step_end -Route128_Movement_StevenWalkUp: @ 81F6C85 +Route128_Movement_StevenWalkUp: walk_up step_end -Route128_Movement_StevenApproachPlayer: @ 81F6C87 +Route128_Movement_StevenApproachPlayer: walk_fast_left step_end -Route128_Movement_ArchieLookAround: @ 81F6C89 +Route128_Movement_ArchieLookAround: walk_fast_down walk_in_place_fastest_left delay_16 @@ -119,21 +119,21 @@ Route128_Movement_ArchieLookAround: @ 81F6C89 walk_in_place_fastest_down step_end -Route128_Movement_ArchieBackUp: @ 81F6C91 +Route128_Movement_ArchieBackUp: lock_facing_direction walk_slow_up delay_16 unlock_facing_direction step_end -Route128_Movement_ArchieRunLeft: @ 81F6C96 +Route128_Movement_ArchieRunLeft: walk_fast_left walk_fast_left walk_fast_left walk_in_place_fastest_right step_end -Route128_Movement_ArchieExit: @ 81F6C9B +Route128_Movement_ArchieExit: delay_16 delay_16 walk_fast_up @@ -148,19 +148,19 @@ Route128_Movement_ArchieExit: @ 81F6C9B walk_fast_up step_end -Route128_Movement_MaxieWalkLeft: @ 81F6CA8 +Route128_Movement_MaxieWalkLeft: walk_left walk_left delay_8 delay_4 step_end -Route128_Movement_MaxieApproachArchie: @ 81F6CAD +Route128_Movement_MaxieApproachArchie: walk_left walk_in_place_fastest_down step_end -Route128_Movement_MaxieExit: @ 81F6CB0 +Route128_Movement_MaxieExit: walk_fast_left walk_fast_left walk_fast_left @@ -173,12 +173,12 @@ Route128_Movement_MaxieExit: @ 81F6CB0 walk_fast_up step_end -Route128_Movement_MaxieApproachPlayer: @ 81F6CBB +Route128_Movement_MaxieApproachPlayer: walk_right walk_in_place_fastest_down step_end -Route128_EventScript_Isaiah:: @ 81F6CBE +Route128_EventScript_Isaiah:: trainerbattle_single TRAINER_ISAIAH_1, Route128_Text_IsaiahIntro, Route128_Text_IsaiahDefeat, Route128_EventScript_RegisterIsaiah specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -187,7 +187,7 @@ Route128_EventScript_Isaiah:: @ 81F6CBE release end -Route128_EventScript_RegisterIsaiah:: @ 81F6CEA +Route128_EventScript_RegisterIsaiah:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route128_Text_IsaiahRegister, MSGBOX_DEFAULT @@ -195,12 +195,12 @@ Route128_EventScript_RegisterIsaiah:: @ 81F6CEA release end -Route128_EventScript_RematchIsaiah:: @ 81F6D09 +Route128_EventScript_RematchIsaiah:: trainerbattle_rematch TRAINER_ISAIAH_1, Route128_Text_IsaiahRematchIntro, Route128_Text_IsaiahRematchDefeat msgbox Route128_Text_IsaiahPostRematch, MSGBOX_AUTOCLOSE end -Route128_EventScript_Katelyn:: @ 81F6D20 +Route128_EventScript_Katelyn:: trainerbattle_single TRAINER_KATELYN_1, Route128_Text_KatelynIntro, Route128_Text_KatelynDefeat, Route128_EventScript_RegisterKatelyn specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -209,7 +209,7 @@ Route128_EventScript_Katelyn:: @ 81F6D20 release end -Route128_EventScript_RegisterKatelyn:: @ 81F6D4C +Route128_EventScript_RegisterKatelyn:: special PlayerFaceTrainerAfterBattle waitmovement 0 msgbox Route128_Text_KatelynRegister, MSGBOX_DEFAULT @@ -217,46 +217,46 @@ Route128_EventScript_RegisterKatelyn:: @ 81F6D4C release end -Route128_EventScript_RematchKatelyn:: @ 81F6D6B +Route128_EventScript_RematchKatelyn:: trainerbattle_rematch TRAINER_KATELYN_1, Route128_Text_KatelynRematchIntro, Route128_Text_KatelynRematchDefeat msgbox Route128_Text_KatelynPostRematch, MSGBOX_AUTOCLOSE end -Route128_EventScript_Alexa:: @ 81F6D82 +Route128_EventScript_Alexa:: trainerbattle_single TRAINER_ALEXA, Route128_Text_AlexaIntro, Route128_Text_AlexaDefeat msgbox Route128_Text_AlexaPostBattle, MSGBOX_AUTOCLOSE end -Route128_EventScript_Ruben:: @ 81F6D99 +Route128_EventScript_Ruben:: trainerbattle_single TRAINER_RUBEN, Route128_Text_RubenIntro, Route128_Text_RubenDefeat msgbox Route128_Text_RubenPostBattle, MSGBOX_AUTOCLOSE end -Route128_EventScript_Wayne:: @ 81F6DB0 +Route128_EventScript_Wayne:: trainerbattle_single TRAINER_WAYNE, Route128_Text_WayneIntro, Route128_Text_WayneDefeat msgbox Route128_Text_WaynePostBattle, MSGBOX_AUTOCLOSE end -Route128_EventScript_Harrison:: @ 81F6DC7 +Route128_EventScript_Harrison:: trainerbattle_single TRAINER_HARRISON, Route128_Text_HarrisonIntro, Route128_Text_HarrisonDefeat msgbox Route128_Text_HarrisonPostBattle, MSGBOX_AUTOCLOSE end -Route128_EventScript_Carlee:: @ 81F6DDE +Route128_EventScript_Carlee:: trainerbattle_single TRAINER_CARLEE, Route128_Text_CarleeIntro, Route128_Text_CarleeDefeat msgbox Route128_Text_CarleePostBattle, MSGBOX_AUTOCLOSE end -Route128_Text_ArchieWhatHappened: @ 81F6DF5 +Route128_Text_ArchieWhatHappened: .string "ARCHIE: What happened…\n" .string "What is this wretched scene…\p" .string "Did I…make a horrible mistake?$" -Route128_Text_ArchieIOnlyWanted: @ 81F6E48 +Route128_Text_ArchieIOnlyWanted: .string "I…\n" .string "I only wanted…$" -Route128_Text_MaxieDoYouUnderstandNow: @ 81F6E5A +Route128_Text_MaxieDoYouUnderstandNow: .string "MAXIE: Do you understand now,\n" .string "ARCHIE?\p" .string "Do you finally see how disastrous\n" @@ -265,7 +265,7 @@ Route128_Text_MaxieDoYouUnderstandNow: @ 81F6E5A .string "something before the situation goes\l" .string "completely out of control!$" -Route128_Text_MaxieResposibilityFallsToArchieAndMe: @ 81F6F1E +Route128_Text_MaxieResposibilityFallsToArchieAndMe: .string "MAXIE: {PLAYER}, don't say anything.\p" .string "I know that I have no right to be\n" .string "critical of ARCHIE…\p" @@ -277,17 +277,17 @@ Route128_Text_MaxieResposibilityFallsToArchieAndMe: @ 81F6F1E .string "The responsibility for putting an end\n" .string "to this falls to ARCHIE and me…$" -Route128_Text_MaxieThisDefiesBelief: @ 81F704F +Route128_Text_MaxieThisDefiesBelief: .string "MAXIE: This defies belief…\p" .string "Those super-ancient POKéMON…\p" .string "Their power is unbelievable.\n" .string "They've upset the balance of nature…$" -Route128_Text_StevenWhatIsHappening: @ 81F70C9 +Route128_Text_StevenWhatIsHappening: .string "STEVEN: {PLAYER}{KUN}!\n" .string "What is happening?$" -Route128_Text_StevenWholeWorldWillDrown: @ 81F70EA +Route128_Text_StevenWholeWorldWillDrown: .string "This is terrible…\p" .string "After the scorching heat wave ended,\n" .string "this deluge began.\p" @@ -299,7 +299,7 @@ Route128_Text_StevenWholeWorldWillDrown: @ 81F70EA .string "There's no point arguing here…\n" .string "SOOTOPOLIS might provide answers…$" -Route128_Text_StevenImGoingToSootopolis: @ 81F721B +Route128_Text_StevenImGoingToSootopolis: .string "{PLAYER}{KUN}…\n" .string "I don't know what you intend to do,\l" .string "but don't do anything reckless.\p" diff --git a/data/maps/Route129/scripts.inc b/data/maps/Route129/scripts.inc index ea53c3bf26..e996722cc9 100644 --- a/data/maps/Route129/scripts.inc +++ b/data/maps/Route129/scripts.inc @@ -1,17 +1,17 @@ -Route129_MapScripts:: @ 81F7284 +Route129_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route129_OnTransition map_script MAP_SCRIPT_ON_LOAD, Route129_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, Route129_OnFrame .byte 0 -Route129_OnLoad: @ 81F7294 +Route129_OnLoad: compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_WEST call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute129West compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_EAST call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute129East end -Route129_OnTransition: @ 81F72AB +Route129_OnTransition: compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 call_if_eq AbnormalWeather_EventScript_HideMapNamePopup compare VAR_SOOTOPOLIS_CITY_STATE, 4 @@ -22,35 +22,35 @@ Route129_OnTransition: @ 81F72AB call_if_eq AbnormalWeather_StartKyogreWeather end -Route129_EventScript_CheckSetAbnormalWeather:: @ 81F72D8 +Route129_EventScript_CheckSetAbnormalWeather:: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather return -Route129_OnFrame: @ 81F72E2 +Route129_OnFrame: map_script_2 VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_EndEventAndCleanup_1 .2byte 0 -Route129_EventScript_Chase:: @ 81F72EC +Route129_EventScript_Chase:: trainerbattle_single TRAINER_CHASE, Route129_Text_ChaseIntro, Route129_Text_ChaseDefeat msgbox Route129_Text_ChasePostBattle, MSGBOX_AUTOCLOSE end -Route129_EventScript_Allison:: @ 81F7303 +Route129_EventScript_Allison:: trainerbattle_single TRAINER_ALLISON, Route129_Text_AllisonIntro, Route129_Text_AllisonDefeat msgbox Route129_Text_AllisonPostBattle, MSGBOX_AUTOCLOSE end -Route129_EventScript_Reed:: @ 81F731A +Route129_EventScript_Reed:: trainerbattle_single TRAINER_REED, Route129_Text_ReedIntro, Route129_Text_ReedDefeat msgbox Route129_Text_ReedPostBattle, MSGBOX_AUTOCLOSE end -Route129_EventScript_Tisha:: @ 81F7331 +Route129_EventScript_Tisha:: trainerbattle_single TRAINER_TISHA, Route129_Text_TishaIntro, Route129_Text_TishaDefeat msgbox Route129_Text_TishaPostBattle, MSGBOX_AUTOCLOSE end -Route129_EventScript_Clarence:: @ 81F7348 +Route129_EventScript_Clarence:: trainerbattle_single TRAINER_CLARENCE, Route129_Text_ClarenceIntro, Route129_Text_ClarenceDefeat msgbox Route129_Text_ClarencePostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route130/map.json b/data/maps/Route130/map.json index 7b4cf047c9..c612eccb54 100644 --- a/data/maps/Route130/map.json +++ b/data/maps/Route130/map.json @@ -60,7 +60,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "82", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_130_LIECHI", "script": "BerryTreeScript", "flag": "FLAG_TEMP_11" }, diff --git a/data/maps/Route130/scripts.inc b/data/maps/Route130/scripts.inc index 141196a2dd..fe360a36bb 100644 --- a/data/maps/Route130/scripts.inc +++ b/data/maps/Route130/scripts.inc @@ -1,8 +1,8 @@ -Route130_MapScripts:: @ 81F735F +Route130_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route130_OnTransition .byte 0 -Route130_OnTransition: @ 81F7365 +Route130_OnTransition: compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_ge Route130_EventScript_CheckSetAbnormalWeather specialvar VAR_RESULT, IsMirageIslandPresent @@ -26,25 +26,25 @@ Route130_OnTransition: @ 81F7365 setmaplayoutindex LAYOUT_ROUTE130 end -Route130_EventScript_SetMirageIslandLayout:: @ 81F73B1 +Route130_EventScript_SetMirageIslandLayout:: setmaplayoutindex LAYOUT_ROUTE130_MIRAGE_ISLAND end -Route130_EventScript_CheckSetAbnormalWeather:: @ 81F73B5 +Route130_EventScript_CheckSetAbnormalWeather:: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather return -Route130_EventScript_Rodney:: @ 81F73BF +Route130_EventScript_Rodney:: trainerbattle_single TRAINER_RODNEY, Route130_Text_RodneyIntro, Route130_Text_RodneyDefeat msgbox Route130_Text_RodneyPostBattle, MSGBOX_AUTOCLOSE end -Route130_EventScript_Katie:: @ 81F73D6 +Route130_EventScript_Katie:: trainerbattle_single TRAINER_KATIE, Route130_Text_KatieIntro, Route130_Text_KatieDefeat msgbox Route130_Text_KatiePostBattle, MSGBOX_AUTOCLOSE end -Route130_EventScript_Santiago:: @ 81F73ED +Route130_EventScript_Santiago:: trainerbattle_single TRAINER_SANTIAGO, Route130_Text_SantiagoIntro, Route130_Text_SantiagoDefeat msgbox Route130_Text_SantiagoPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route131/scripts.inc b/data/maps/Route131/scripts.inc index b419adcf68..846998bfe9 100644 --- a/data/maps/Route131/scripts.inc +++ b/data/maps/Route131/scripts.inc @@ -1,57 +1,57 @@ -Route131_MapScripts:: @ 81F7404 +Route131_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, Route131_OnTransition .byte 0 -Route131_OnTransition: @ 81F740A +Route131_OnTransition: compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_ge Route131_EventScript_CheckSetAbnormalWeather call Route131_EventScript_SetLayout end -Route131_EventScript_SetLayout:: @ 81F741B +Route131_EventScript_SetLayout:: setmaplayoutindex LAYOUT_ROUTE131_SKY_PILLAR return -Route131_EventScript_CheckSetAbnormalWeather:: @ 81F741F +Route131_EventScript_CheckSetAbnormalWeather:: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather return -Route131_EventScript_Richard:: @ 81F7429 +Route131_EventScript_Richard:: trainerbattle_single TRAINER_RICHARD, Route131_Text_RichardIntro, Route131_Text_RichardDefeat msgbox Route131_Text_RichardPostBattle, MSGBOX_AUTOCLOSE end -Route131_EventScript_Herman:: @ 81F7440 +Route131_EventScript_Herman:: trainerbattle_single TRAINER_HERMAN, Route131_Text_HermanIntro, Route131_Text_HermanDefeat msgbox Route131_Text_HermanPostBattle, MSGBOX_AUTOCLOSE end -Route131_EventScript_Susie:: @ 81F7457 +Route131_EventScript_Susie:: trainerbattle_single TRAINER_SUSIE, Route131_Text_SusieIntro, Route131_Text_SusieDefeat msgbox Route131_Text_SusiePostBattle, MSGBOX_AUTOCLOSE end -Route131_EventScript_Kara:: @ 81F746E +Route131_EventScript_Kara:: trainerbattle_single TRAINER_KARA, Route131_Text_KaraIntro, Route131_Text_KaraDefeat msgbox Route131_Text_KaraPostBattle, MSGBOX_AUTOCLOSE end -Route131_EventScript_Reli:: @ 81F7485 +Route131_EventScript_Reli:: trainerbattle_double TRAINER_RELI_AND_IAN, Route131_Text_ReliIntro, Route131_Text_ReliDefeat, Route131_Text_ReliNotEnoughMons msgbox Route131_Text_ReliPostBattle, MSGBOX_AUTOCLOSE end -Route131_EventScript_Ian:: @ 81F74A0 +Route131_EventScript_Ian:: trainerbattle_double TRAINER_RELI_AND_IAN, Route131_Text_IanIntro, Route131_Text_IanDefeat, Route131_Text_IanNotEnoughMons msgbox Route131_Text_IanPostBattle, MSGBOX_AUTOCLOSE end -Route131_EventScript_Talia:: @ 81F74BB +Route131_EventScript_Talia:: trainerbattle_single TRAINER_TALIA, Route131_Text_TaliaIntro, Route131_Text_TaliaDefeat msgbox Route131_Text_TaliaPostBattle, MSGBOX_AUTOCLOSE end -Route131_EventScript_Kevin:: @ 81F74D2 +Route131_EventScript_Kevin:: trainerbattle_single TRAINER_KEVIN, Route131_Text_KevinIntro, Route131_Text_KevinDefeat msgbox Route131_Text_KevinPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route132/scripts.inc b/data/maps/Route132/scripts.inc index 6b82102beb..40d47a630f 100644 --- a/data/maps/Route132/scripts.inc +++ b/data/maps/Route132/scripts.inc @@ -1,42 +1,42 @@ -Route132_MapScripts:: @ 81F74E9 +Route132_MapScripts:: .byte 0 -Route132_EventScript_Gilbert:: @ 81F74EA +Route132_EventScript_Gilbert:: trainerbattle_single TRAINER_GILBERT, Route132_Text_GilbertIntro, Route132_Text_GilbertDefeat msgbox Route132_Text_GilbertPostBattle, MSGBOX_AUTOCLOSE end -Route132_EventScript_Dana:: @ 81F7501 +Route132_EventScript_Dana:: trainerbattle_single TRAINER_DANA, Route132_Text_DanaIntro, Route132_Text_DanaDefeat msgbox Route132_Text_DanaPostBattle, MSGBOX_AUTOCLOSE end -Route132_EventScript_Ronald:: @ 81F7518 +Route132_EventScript_Ronald:: trainerbattle_single TRAINER_RONALD, Route132_Text_RonaldIntro, Route132_Text_RonaldDefeat msgbox Route132_Text_RonaldPostBattle, MSGBOX_AUTOCLOSE end -Route132_EventScript_Kiyo:: @ 81F752F +Route132_EventScript_Kiyo:: trainerbattle_single TRAINER_KIYO, Route132_Text_KiyoIntro, Route132_Text_KiyoDefeat msgbox Route132_Text_KiyoPostBattle, MSGBOX_AUTOCLOSE end -Route132_EventScript_Paxton:: @ 81F7546 +Route132_EventScript_Paxton:: trainerbattle_single TRAINER_PAXTON, Route132_Text_PaxtonIntro, Route132_Text_PaxtonDefeat msgbox Route132_Text_PaxtonPostBattle, MSGBOX_AUTOCLOSE end -Route132_EventScript_Darcy:: @ 81F755D +Route132_EventScript_Darcy:: trainerbattle_single TRAINER_DARCY, Route132_Text_DarcyIntro, Route132_Text_DarcyDefeat msgbox Route132_Text_DarcyPostBattle, MSGBOX_AUTOCLOSE end -Route132_EventScript_Jonathan:: @ 81F7574 +Route132_EventScript_Jonathan:: trainerbattle_single TRAINER_JONATHAN, Route132_Text_JonathanIntro, Route132_Text_JonathanDefeat msgbox Route132_Text_JonathanPostBattle, MSGBOX_AUTOCLOSE end -Route132_EventScript_Makayla:: @ 81F758B +Route132_EventScript_Makayla:: trainerbattle_single TRAINER_MAKAYLA, Route132_Text_MakaylaIntro, Route132_Text_MakaylaDefeat msgbox Route132_Text_MakaylaPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route133/scripts.inc b/data/maps/Route133/scripts.inc index ebe28f5db4..c9350b6830 100644 --- a/data/maps/Route133/scripts.inc +++ b/data/maps/Route133/scripts.inc @@ -1,37 +1,37 @@ -Route133_MapScripts:: @ 81F75A2 +Route133_MapScripts:: .byte 0 -Route133_EventScript_Franklin:: @ 81F75A3 +Route133_EventScript_Franklin:: trainerbattle_single TRAINER_FRANKLIN, Route133_Text_FranklinIntro, Route133_Text_FranklinDefeat msgbox Route133_Text_FranklinPostBattle, MSGBOX_AUTOCLOSE end -Route133_EventScript_Debra:: @ 81F75BA +Route133_EventScript_Debra:: trainerbattle_single TRAINER_DEBRA, Route133_Text_DebraIntro, Route133_Text_DebraDefeat msgbox Route133_Text_DebraPostBattle, MSGBOX_AUTOCLOSE end -Route133_EventScript_Linda:: @ 81F75D1 +Route133_EventScript_Linda:: trainerbattle_single TRAINER_LINDA, Route133_Text_LindaIntro, Route133_Text_LindaDefeat msgbox Route133_Text_LindaPostBattle, MSGBOX_AUTOCLOSE end -Route133_EventScript_Warren:: @ 81F75E8 +Route133_EventScript_Warren:: trainerbattle_single TRAINER_WARREN, Route133_Text_WarrenIntro, Route133_Text_WarrenDefeat msgbox Route133_Text_WarrenPostBattle, MSGBOX_AUTOCLOSE end -Route133_EventScript_Beck:: @ 81F75FF +Route133_EventScript_Beck:: trainerbattle_single TRAINER_BECK, Route133_Text_BeckIntro, Route133_Text_BeckDefeat msgbox Route133_Text_BeckPostBattle, MSGBOX_AUTOCLOSE end -Route133_EventScript_Mollie:: @ 81F7616 +Route133_EventScript_Mollie:: trainerbattle_single TRAINER_MOLLIE, Route133_Text_MollieIntro, Route133_Text_MollieDefeat msgbox Route133_Text_MolliePostBattle, MSGBOX_AUTOCLOSE end -Route133_EventScript_Conor:: @ 81F762D +Route133_EventScript_Conor:: trainerbattle_single TRAINER_CONOR, Route133_Text_ConorIntro, Route133_Text_ConorDefeat msgbox Route133_Text_ConorPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route134/scripts.inc b/data/maps/Route134/scripts.inc index 3da2781b9b..043835373e 100644 --- a/data/maps/Route134/scripts.inc +++ b/data/maps/Route134/scripts.inc @@ -1,52 +1,52 @@ -Route134_MapScripts:: @ 81F7644 +Route134_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Route134_OnResume .byte 0 -Route134_OnResume: @ 81F764A +Route134_OnResume: setdivewarp MAP_UNDERWATER_ROUTE134, 255, 8, 6 end -Route134_EventScript_Jack:: @ 81F7653 +Route134_EventScript_Jack:: trainerbattle_single TRAINER_JACK, Route134_Text_JackIntro, Route134_Text_JackDefeat msgbox Route134_Text_JackPostBattle, MSGBOX_AUTOCLOSE end -Route134_EventScript_Laurel:: @ 81F766A +Route134_EventScript_Laurel:: trainerbattle_single TRAINER_LAUREL, Route134_Text_LaurelIntro, Route134_Text_LaurelDefeat msgbox Route134_Text_LaurelPostBattle, MSGBOX_AUTOCLOSE end -Route134_EventScript_Alex:: @ 81F7681 +Route134_EventScript_Alex:: trainerbattle_single TRAINER_ALEX, Route134_Text_AlexIntro, Route134_Text_AlexDefeat msgbox Route134_Text_AlexPostBattle, MSGBOX_AUTOCLOSE end -Route134_EventScript_Aaron:: @ 81F7698 +Route134_EventScript_Aaron:: trainerbattle_single TRAINER_AARON, Route134_Text_AaronIntro, Route134_Text_AaronDefeat msgbox Route134_Text_AaronPostBattle, MSGBOX_AUTOCLOSE end -Route134_EventScript_Hitoshi:: @ 81F76AF +Route134_EventScript_Hitoshi:: trainerbattle_single TRAINER_HITOSHI, Route134_Text_HitoshiIntro, Route134_Text_HitoshiDefeat msgbox Route134_Text_HitoshiPostBattle, MSGBOX_AUTOCLOSE end -Route134_EventScript_Hudson:: @ 81F76C6 +Route134_EventScript_Hudson:: trainerbattle_single TRAINER_HUDSON, Route134_Text_HudsonIntro, Route134_Text_HudsonDefeat msgbox Route134_Text_HudsonPostBattle, MSGBOX_AUTOCLOSE end -Route134_EventScript_Reyna:: @ 81F76DD +Route134_EventScript_Reyna:: trainerbattle_single TRAINER_REYNA, Route134_Text_ReynaIntro, Route134_Text_ReynaDefeat msgbox Route134_Text_ReynaPostBattle, MSGBOX_AUTOCLOSE end -Route134_EventScript_Marley:: @ 81F76F4 +Route134_EventScript_Marley:: trainerbattle_single TRAINER_MARLEY, Route134_Text_MarleyIntro, Route134_Text_MarleyDefeat msgbox Route134_Text_MarleyPostBattle, MSGBOX_AUTOCLOSE end -Route134_EventScript_Kelvin:: @ 81F770B +Route134_EventScript_Kelvin:: trainerbattle_single TRAINER_KELVIN, Route134_Text_KelvinIntro, Route134_Text_KelvinDefeat msgbox Route134_Text_KelvinPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index 7b1f4a3d81..5c6ef09022 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -5,12 +5,12 @@ .set LOCALID_RIVAL, 14 .set LOCALID_SCIENTIST, 15 -RustboroCity_MapScripts:: @ 81E06BD +RustboroCity_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, RustboroCity_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, RustboroCity_OnFrame .byte 0 -RustboroCity_OnTransition: @ 81E06C8 +RustboroCity_OnTransition: setflag FLAG_VISITED_RUSTBORO_CITY call Common_EventScript_SetupRivalGfxId compare VAR_RUSTBORO_CITY_STATE, 6 @@ -20,25 +20,25 @@ RustboroCity_OnTransition: @ 81E06C8 goto_if_eq RustboroCity_EventScript_PositionScientistForExit end -RustboroCity_EventScript_PositionScientistForExit:: @ 81E06EC +RustboroCity_EventScript_PositionScientistForExit:: compare VAR_TEMP_0, 11 goto_if_eq RustboroCity_EventScript_PositionScientistLeftExit setobjectxyperm LOCALID_SCIENTIST, 12, 15 end -RustboroCity_EventScript_PositionScientistLeftExit:: @ 81E06FF +RustboroCity_EventScript_PositionScientistLeftExit:: setobjectxyperm LOCALID_SCIENTIST, 11, 15 end -RustboroCity_EventScript_HideMapNamePopup:: @ 81E0707 +RustboroCity_EventScript_HideMapNamePopup:: setflag FLAG_HIDE_MAP_NAME_POPUP return -RustboroCity_OnFrame: @ 81E070B +RustboroCity_OnFrame: map_script_2 VAR_RUSTBORO_CITY_STATE, 6, RustboroCity_EventScript_ScientistAddMatchCall .2byte 0 -RustboroCity_EventScript_ScientistAddMatchCall:: @ 81E0715 +RustboroCity_EventScript_ScientistAddMatchCall:: lockall setvar VAR_ROUTE104_STATE, 1 applymovement OBJ_EVENT_ID_PLAYER, RustboroCity_Movement_PlayerWalkDown @@ -77,13 +77,13 @@ RustboroCity_EventScript_ScientistAddMatchCall:: @ 81E0715 delay 20 goto RustboroCity_EventScript_MatchCallTutorial -RustboroCity_EventScript_PleaseSelectPokenav:: @ 81E07AC +RustboroCity_EventScript_PleaseSelectPokenav:: msgbox RustboroCity_Text_PleaseSelectPokenav, MSGBOX_DEFAULT closemessage delay 10 goto RustboroCity_EventScript_MatchCallTutorial -RustboroCity_EventScript_MatchCallTutorial:: @ 81E07BD +RustboroCity_EventScript_MatchCallTutorial:: setflag FLAG_ADDED_MATCH_CALL_TO_POKENAV special ScriptMenu_CreateStartMenuForPokenavTutorial waitstate @@ -111,21 +111,21 @@ RustboroCity_EventScript_MatchCallTutorial:: @ 81E07BD releaseall end -RustboroCity_Movement_ScientistWalkInPlaceDown: @ 81E084E +RustboroCity_Movement_ScientistWalkInPlaceDown: walk_in_place_down step_end -RustboroCity_Movement_PlayerWalkDown: @ 81E0850 +RustboroCity_Movement_PlayerWalkDown: walk_down step_end -RustboroCity_Movement_ScientistApproachPlayer: @ 81E0852 +RustboroCity_Movement_ScientistApproachPlayer: walk_down delay_16 step_end @ Unused -RustboroCity_Movement_ScientistWalkAroundPlayer: @ 81E0855 +RustboroCity_Movement_ScientistWalkAroundPlayer: delay_16 walk_left walk_down @@ -135,11 +135,11 @@ RustboroCity_Movement_ScientistWalkAroundPlayer: @ 81E0855 delay_16 step_end -RustboroCity_Movement_ScientistLeave: @ 81E085D +RustboroCity_Movement_ScientistLeave: walk_up step_end -RustboroCity_EventScript_FatMan:: @ 81E085F +RustboroCity_EventScript_FatMan:: lock faceplayer goto_if_set FLAG_DEVON_GOODS_STOLEN, RustboroCity_EventScript_FatManSawGrunt @@ -147,23 +147,23 @@ RustboroCity_EventScript_FatMan:: @ 81E085F release end -RustboroCity_EventScript_FatManSawGrunt:: @ 81E0874 +RustboroCity_EventScript_FatManSawGrunt:: msgbox RustboroCity_Text_SneakyLookingManWentAroundCorner, MSGBOX_DEFAULT release end -RustboroCity_EventScript_DevonEmployee2:: @ 81E087E +RustboroCity_EventScript_DevonEmployee2:: lock faceplayer msgbox RustboroCity_Text_YoureNewAroundHere, MSGBOX_DEFAULT release end -RustboroCity_EventScript_Woman:: @ 81E088A +RustboroCity_EventScript_Woman:: msgbox RustboroCity_Text_GymLeaderIsntEasyWithFire, MSGBOX_NPC end -RustboroCity_EventScript_Man1:: @ 81E0893 +RustboroCity_EventScript_Man1:: lock faceplayer goto_if_set FLAG_BADGE01_GET, RustboroCity_EventScript_Man1HaveBadge @@ -171,12 +171,12 @@ RustboroCity_EventScript_Man1:: @ 81E0893 release end -RustboroCity_EventScript_Man1HaveBadge:: @ 81E08A8 +RustboroCity_EventScript_Man1HaveBadge:: msgbox RustboroCity_Text_HeyThatsRustborosGymBadge, MSGBOX_DEFAULT release end -RustboroCity_EventScript_Boy2:: @ 81E08B2 +RustboroCity_EventScript_Boy2:: lock faceplayer goto_if_set FLAG_RECEIVED_POKENAV, RustboroCity_EventScript_Boy2BrineyLeftTunnel @@ -184,49 +184,49 @@ RustboroCity_EventScript_Boy2:: @ 81E08B2 release end -RustboroCity_EventScript_Boy2BrineyLeftTunnel:: @ 81E08C7 +RustboroCity_EventScript_Boy2BrineyLeftTunnel:: msgbox RustboroCity_Text_MrBrineyLovesPeeko, MSGBOX_DEFAULT release end -RustboroCity_EventScript_Twin:: @ 81E08D1 +RustboroCity_EventScript_Twin:: msgbox RustboroCity_Text_WowYouHavePokemon, MSGBOX_NPC end -RustboroCity_EventScript_NinjaBoy:: @ 81E08DA +RustboroCity_EventScript_NinjaBoy:: msgbox RustboroCity_Text_CatchRarePokemonIfIGoToSchool, MSGBOX_SIGN end -RustboroCity_EventScript_TunnelSign:: @ 81E08E3 +RustboroCity_EventScript_TunnelSign:: msgbox RustboroCity_Text_TunnelNearingCompletion, MSGBOX_SIGN end -RustboroCity_EventScript_DevonCorpSign:: @ 81E08EC +RustboroCity_EventScript_DevonCorpSign:: msgbox RustboroCity_Text_DevonCorpSign, MSGBOX_SIGN end -RustboroCity_EventScript_GymSign:: @ 81E08F5 +RustboroCity_EventScript_GymSign:: msgbox RustboroCity_Text_GymSign, MSGBOX_SIGN end @ Unused -RustboroCity_EventScript_DevonCorpBranchOfficeSign:: @ 81E08FE +RustboroCity_EventScript_DevonCorpBranchOfficeSign:: msgbox RustboroCity_Text_DevonCorpBranchOfficeSign, MSGBOX_SIGN end -RustboroCity_EventScript_CitySign:: @ 81E0907 +RustboroCity_EventScript_CitySign:: msgbox RustboroCity_Text_CitySign, MSGBOX_SIGN end -RustboroCity_EventScript_TrainersSchoolSign:: @ 81E0910 +RustboroCity_EventScript_TrainersSchoolSign:: msgbox RustboroCity_Text_TrainersSchoolSign, MSGBOX_SIGN end -RustboroCity_EventScript_CuttersHouseSign:: @ 81E0919 +RustboroCity_EventScript_CuttersHouseSign:: msgbox RustboroCity_Text_CuttersHouse, MSGBOX_SIGN end -RustboroCity_EventScript_LittleBoy:: @ 81E0922 +RustboroCity_EventScript_LittleBoy:: lock faceplayer msgbox RustboroCity_Text_PokemonCanChangeLookFromExp, MSGBOX_DEFAULT @@ -235,7 +235,7 @@ RustboroCity_EventScript_LittleBoy:: @ 81E0922 release end -RustboroCity_EventScript_LittleGirl:: @ 81E0938 +RustboroCity_EventScript_LittleGirl:: lock faceplayer msgbox RustboroCity_Text_PokemonChangeShape, MSGBOX_DEFAULT @@ -244,14 +244,14 @@ RustboroCity_EventScript_LittleGirl:: @ 81E0938 release end -RustboroCity_EventScript_Man2:: @ 81E094E +RustboroCity_EventScript_Man2:: lock faceplayer msgbox RustboroCity_Text_TradePokemonGrowFast, MSGBOX_DEFAULT release end -RustboroCity_EventScript_StolenGoodsTrigger0:: @ 81E095A +RustboroCity_EventScript_StolenGoodsTrigger0:: lockall setobjectxyperm LOCALID_DEVON_EMPLOYEE, 14, 21 setobjectmovementtype LOCALID_DEVON_EMPLOYEE, MOVEMENT_TYPE_FACE_RIGHT @@ -259,7 +259,7 @@ RustboroCity_EventScript_StolenGoodsTrigger0:: @ 81E095A goto RustboroCity_EventScript_StolenGoodsScene end -RustboroCity_EventScript_StolenGoodsTrigger1:: @ 81E0971 +RustboroCity_EventScript_StolenGoodsTrigger1:: lockall setobjectxyperm LOCALID_DEVON_EMPLOYEE, 14, 21 setobjectmovementtype LOCALID_DEVON_EMPLOYEE, MOVEMENT_TYPE_FACE_RIGHT @@ -267,7 +267,7 @@ RustboroCity_EventScript_StolenGoodsTrigger1:: @ 81E0971 goto RustboroCity_EventScript_StolenGoodsScene end -RustboroCity_EventScript_StolenGoodsTrigger2:: @ 81E0988 +RustboroCity_EventScript_StolenGoodsTrigger2:: lockall setobjectxyperm LOCALID_DEVON_EMPLOYEE, 14, 21 setobjectmovementtype LOCALID_DEVON_EMPLOYEE, MOVEMENT_TYPE_FACE_RIGHT @@ -275,7 +275,7 @@ RustboroCity_EventScript_StolenGoodsTrigger2:: @ 81E0988 goto RustboroCity_EventScript_StolenGoodsScene end -RustboroCity_EventScript_StolenGoodsTrigger3:: @ 81E099F +RustboroCity_EventScript_StolenGoodsTrigger3:: lockall setobjectxyperm LOCALID_DEVON_EMPLOYEE, 14, 21 setobjectmovementtype LOCALID_DEVON_EMPLOYEE, MOVEMENT_TYPE_FACE_RIGHT @@ -283,7 +283,7 @@ RustboroCity_EventScript_StolenGoodsTrigger3:: @ 81E099F goto RustboroCity_EventScript_StolenGoodsScene end -RustboroCity_EventScript_StolenGoodsTrigger4:: @ 81E09B6 +RustboroCity_EventScript_StolenGoodsTrigger4:: lockall setobjectxyperm LOCALID_DEVON_EMPLOYEE, 14, 21 setobjectmovementtype LOCALID_DEVON_EMPLOYEE, MOVEMENT_TYPE_FACE_RIGHT @@ -291,10 +291,10 @@ RustboroCity_EventScript_StolenGoodsTrigger4:: @ 81E09B6 goto RustboroCity_EventScript_StolenGoodsScene end -RustboroCity_EventScript_StolenGoodsScene:: @ 81E09CD +RustboroCity_EventScript_StolenGoodsScene:: msgbox RustboroCity_Text_OutOfTheWay, MSGBOX_DEFAULT closemessage - playbgm MUS_ENCOUNTER_AQUA, 0 + playbgm MUS_ENCOUNTER_AQUA, FALSE addobject LOCALID_GRUNT addobject LOCALID_DEVON_EMPLOYEE applymovement LOCALID_GRUNT, RustboroCity_Movement_GruntEscape @@ -323,41 +323,41 @@ RustboroCity_EventScript_StolenGoodsScene:: @ 81E09CD end @ Unused -RustboroCity_EventScript_ShadyCharacterTookOff:: @ 81E0A3B +RustboroCity_EventScript_ShadyCharacterTookOff:: msgbox RustboroCity_Text_ShadyCharacterTookOffTowardsTunnel, MSGBOX_DEFAULT return @ Unused -RustboroCity_EventScript_YouGotItThankYou:: @ 81E0A44 +RustboroCity_EventScript_YouGotItThankYou:: msgbox RustboroCity_Text_YouGotItThankYou, MSGBOX_DEFAULT return @ Unknown, unused employee movements. Based on the differences in movement theyre for approaching an object (probably the player) in different positions -RustboroCity_EventScript_EmployeeApproachUp:: @ 81E0A4D +RustboroCity_EventScript_EmployeeApproachUp:: applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_Movement_EmployeeApproachUp waitmovement 0 return @ Unused, see above -RustboroCity_EventScript_EmployeeApproachLeft:: @ 81E0A58 +RustboroCity_EventScript_EmployeeApproachLeft:: applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_Movement_EmployeeApproachLeft waitmovement 0 return @ Unused, see above -RustboroCity_EventScript_EmployeeApproachRight:: @ 81E0A63 +RustboroCity_EventScript_EmployeeApproachRight:: applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_Movement_EmployeeApproachRight waitmovement 0 return @ Unused, see above -RustboroCity_EventScript_EmployeeApproachDown:: @ 81E0A6E +RustboroCity_EventScript_EmployeeApproachDown:: applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_Movement_EmployeeApproachDown waitmovement 0 return @ Unused, similar movement to the above scripts -RustboroCity_EventScript_EmployeeApproachPlayerFar:: @ 81E0A79 +RustboroCity_EventScript_EmployeeApproachPlayerFar:: applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_Movement_EmployeeApproachPlayerFar waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp @@ -365,7 +365,7 @@ RustboroCity_EventScript_EmployeeApproachPlayerFar:: @ 81E0A79 return @ Unused -RustboroCity_Movement_GruntEscapeExtended: @ 81E0A8E +RustboroCity_Movement_GruntEscapeExtended: walk_fastest_right walk_fastest_right walk_fast_right @@ -385,7 +385,7 @@ RustboroCity_Movement_GruntEscapeExtended: @ 81E0A8E walk_fast_up step_end -RustboroCity_Movement_GruntEscape: @ 81E0AA0 +RustboroCity_Movement_GruntEscape: walk_fastest_right walk_fastest_right walk_fast_right @@ -404,7 +404,7 @@ RustboroCity_Movement_GruntEscape: @ 81E0AA0 walk_fast_up step_end -RustboroCity_Movement_EmployeeChaseGrunt1: @ 81E0AB1 +RustboroCity_Movement_EmployeeChaseGrunt1: walk_right walk_right walk_right @@ -414,7 +414,7 @@ RustboroCity_Movement_EmployeeChaseGrunt1: @ 81E0AB1 walk_in_place_fastest_up step_end -RustboroCity_Movement_EmployeeChaseGrunt2: @ 81E0AB9 +RustboroCity_Movement_EmployeeChaseGrunt2: walk_up walk_up walk_up @@ -425,14 +425,14 @@ RustboroCity_Movement_EmployeeChaseGrunt2: @ 81E0AB9 step_end @ Functionally unused -RustboroCity_Movement_EmployeeApproachUp: @ 81E0AC1 +RustboroCity_Movement_EmployeeApproachUp: walk_down walk_right walk_right step_end @ Functionally unused -RustboroCity_Movement_EmployeeApproachLeft: @ 81E0AC5 +RustboroCity_Movement_EmployeeApproachLeft: walk_down walk_down walk_right @@ -440,7 +440,7 @@ RustboroCity_Movement_EmployeeApproachLeft: @ 81E0AC5 step_end @ Functionally unused -RustboroCity_Movement_EmployeeApproachRight: @ 81E0ACA +RustboroCity_Movement_EmployeeApproachRight: walk_down walk_down walk_right @@ -448,7 +448,7 @@ RustboroCity_Movement_EmployeeApproachRight: @ 81E0ACA step_end @ Functionally unused -RustboroCity_Movement_EmployeeApproachDown: @ 81E0ACF +RustboroCity_Movement_EmployeeApproachDown: walk_down walk_down walk_down @@ -457,7 +457,7 @@ RustboroCity_Movement_EmployeeApproachDown: @ 81E0ACF step_end @ Functionally unused -RustboroCity_Movement_EmployeeApproachPlayerFar: @ 81E0AD5 +RustboroCity_Movement_EmployeeApproachPlayerFar: walk_down walk_down walk_down @@ -467,7 +467,7 @@ RustboroCity_Movement_EmployeeApproachPlayerFar: @ 81E0AD5 walk_in_place_fastest_down step_end -RustboroCity_EventScript_DevonEmployee1:: @ 81E0ADD +RustboroCity_EventScript_DevonEmployee1:: lock faceplayer goto_if_set FLAG_RECOVERED_DEVON_GOODS, RustboroCity_EventScript_ReturnGoodsSpokeToEmployee @@ -475,37 +475,37 @@ RustboroCity_EventScript_DevonEmployee1:: @ 81E0ADD release end -RustboroCity_EventScript_ReturnGoodsSpokeToEmployee:: @ 81E0AF2 +RustboroCity_EventScript_ReturnGoodsSpokeToEmployee:: waitse setvar VAR_TEMP_1, 4 goto RustboroCity_EventScript_ReturnGoods end -RustboroCity_EventScript_HelpGetGoodsTrigger0:: @ 81E0AFE +RustboroCity_EventScript_HelpGetGoodsTrigger0:: lockall setvar VAR_TEMP_1, 0 goto RustboroCity_EventScript_EmployeeAskToGetGoods end -RustboroCity_EventScript_HelpGetGoodsTrigger1:: @ 81E0B0A +RustboroCity_EventScript_HelpGetGoodsTrigger1:: lockall setvar VAR_TEMP_1, 1 goto RustboroCity_EventScript_EmployeeAskToGetGoods end -RustboroCity_EventScript_HelpGetGoodsTrigger2:: @ 81E0B16 +RustboroCity_EventScript_HelpGetGoodsTrigger2:: lockall setvar VAR_TEMP_1, 2 goto RustboroCity_EventScript_EmployeeAskToGetGoods end -RustboroCity_EventScript_HelpGetGoodsTrigger3:: @ 81E0B22 +RustboroCity_EventScript_HelpGetGoodsTrigger3:: lockall setvar VAR_TEMP_1, 3 goto RustboroCity_EventScript_EmployeeAskToGetGoods end -RustboroCity_EventScript_EmployeeAskToGetGoods:: @ 81E0B2E +RustboroCity_EventScript_EmployeeAskToGetGoods:: compare VAR_TEMP_1, 0 call_if_eq RustboroCity_EventScript_EmployeeFacePlayerUp1 compare VAR_TEMP_1, 1 @@ -522,7 +522,7 @@ RustboroCity_EventScript_EmployeeAskToGetGoods:: @ 81E0B2E end @ The below movement scripts are either partially or fully duplicated by the movement scripts when the player returns the goods -RustboroCity_EventScript_EmployeeFacePlayerUp1:: @ 81E0B6F +RustboroCity_EventScript_EmployeeFacePlayerUp1:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestUp waitmovement 0 playse SE_PIN @@ -534,7 +534,7 @@ RustboroCity_EventScript_EmployeeFacePlayerUp1:: @ 81E0B6F waitmovement 0 return -RustboroCity_EventScript_EmployeeFacePlayerLeft1:: @ 81E0B9B +RustboroCity_EventScript_EmployeeFacePlayerLeft1:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 playse SE_PIN @@ -546,7 +546,7 @@ RustboroCity_EventScript_EmployeeFacePlayerLeft1:: @ 81E0B9B waitmovement 0 return -RustboroCity_EventScript_EmployeeFacePlayerDown1:: @ 81E0BC7 +RustboroCity_EventScript_EmployeeFacePlayerDown1:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestDown waitmovement 0 playse SE_PIN @@ -558,7 +558,7 @@ RustboroCity_EventScript_EmployeeFacePlayerDown1:: @ 81E0BC7 waitmovement 0 return -RustboroCity_EventScript_EmployeeApproachPlayerDown1:: @ 81E0BF3 +RustboroCity_EventScript_EmployeeApproachPlayerDown1:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestDown waitmovement 0 playse SE_PIN @@ -572,35 +572,35 @@ RustboroCity_EventScript_EmployeeApproachPlayerDown1:: @ 81E0BF3 waitmovement 0 return -RustboroCity_Movement_EmployeeApproachPlayerDown: @ 81E0C29 +RustboroCity_Movement_EmployeeApproachPlayerDown: walk_down step_end -RustboroCity_EventScript_ReturnGoodsTrigger0:: @ 81E0C2B +RustboroCity_EventScript_ReturnGoodsTrigger0:: lockall setvar VAR_TEMP_1, 0 goto RustboroCity_EventScript_ReturnGoods end -RustboroCity_EventScript_ReturnGoodsTrigger1:: @ 81E0C37 +RustboroCity_EventScript_ReturnGoodsTrigger1:: lockall setvar VAR_TEMP_1, 1 goto RustboroCity_EventScript_ReturnGoods end -RustboroCity_EventScript_ReturnGoodsTrigger2:: @ 81E0C43 +RustboroCity_EventScript_ReturnGoodsTrigger2:: lockall setvar VAR_TEMP_1, 2 goto RustboroCity_EventScript_ReturnGoods end -RustboroCity_EventScript_ReturnGoodsTrigger3:: @ 81E0C4F +RustboroCity_EventScript_ReturnGoodsTrigger3:: lockall setvar VAR_TEMP_1, 3 goto RustboroCity_EventScript_ReturnGoods end -RustboroCity_EventScript_ReturnGoods:: @ 81E0C5B +RustboroCity_EventScript_ReturnGoods:: compare VAR_TEMP_1, 0 call_if_eq RustboroCity_EventScript_EmployeeFacePlayerUp2 compare VAR_TEMP_1, 1 @@ -626,11 +626,11 @@ RustboroCity_EventScript_ReturnGoods:: @ 81E0C5B releaseall end -RustboroCity_EventScript_BagFull:: @ 81E0CD3 +RustboroCity_EventScript_BagFull:: msgbox RustboroCity_Text_YoureLoadedWithItems, MSGBOX_DEFAULT return -RustboroCity_EventScript_EmployeeFacePlayerUp2:: @ 81E0CDC +RustboroCity_EventScript_EmployeeFacePlayerUp2:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestUp waitmovement 0 playse SE_PIN @@ -642,7 +642,7 @@ RustboroCity_EventScript_EmployeeFacePlayerUp2:: @ 81E0CDC waitmovement 0 return -RustboroCity_EventScript_EmployeeFacePlayerLeft2:: @ 81E0D08 +RustboroCity_EventScript_EmployeeFacePlayerLeft2:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestRight waitmovement 0 playse SE_PIN @@ -654,7 +654,7 @@ RustboroCity_EventScript_EmployeeFacePlayerLeft2:: @ 81E0D08 waitmovement 0 return -RustboroCity_EventScript_EmployeeFacePlayerDown2:: @ 81E0D34 +RustboroCity_EventScript_EmployeeFacePlayerDown2:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestDown waitmovement 0 playse SE_PIN @@ -666,7 +666,7 @@ RustboroCity_EventScript_EmployeeFacePlayerDown2:: @ 81E0D34 waitmovement 0 return -RustboroCity_EventScript_EmployeeApproachPlayerDown2:: @ 81E0D60 +RustboroCity_EventScript_EmployeeApproachPlayerDown2:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestDown waitmovement 0 playse SE_PIN @@ -680,7 +680,7 @@ RustboroCity_EventScript_EmployeeApproachPlayerDown2:: @ 81E0D60 waitmovement 0 return -RustboroCity_EventScript_EmployeeFacePlayerRight:: @ 81E0D96 +RustboroCity_EventScript_EmployeeFacePlayerRight:: applymovement LOCALID_DEVON_EMPLOYEE, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 playse SE_PIN @@ -690,14 +690,14 @@ RustboroCity_EventScript_EmployeeFacePlayerRight:: @ 81E0D96 waitmovement 0 return -RustboroCity_EventScript_Rival:: @ 81E0DB8 +RustboroCity_EventScript_Rival:: lockall call_if_unset FLAG_MET_RIVAL_RUSTBORO, RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_PlayRivalMusic:: @ 81E0DD1 +RustboroCity_EventScript_PlayRivalMusic:: checkplayergender compare VAR_RESULT, MALE goto_if_eq RustboroCity_EventScript_PlayMayMusic @@ -705,15 +705,15 @@ RustboroCity_EventScript_PlayRivalMusic:: @ 81E0DD1 goto_if_eq RustboroCity_EventScript_PlayBrendanMusic return -RustboroCity_EventScript_PlayMayMusic:: @ 81E0DE9 - playbgm MUS_ENCOUNTER_MAY, 1 +RustboroCity_EventScript_PlayMayMusic:: + playbgm MUS_ENCOUNTER_MAY, TRUE return -RustboroCity_EventScript_PlayBrendanMusic:: @ 81E0DEE - playbgm MUS_ENCOUNTER_BRENDAN, 1 +RustboroCity_EventScript_PlayBrendanMusic:: + playbgm MUS_ENCOUNTER_BRENDAN, TRUE return -RustboroCity_EventScript_RivalTrigger0:: @ 81E0DF3 +RustboroCity_EventScript_RivalTrigger0:: lockall call RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestDown @@ -729,7 +729,7 @@ RustboroCity_EventScript_RivalTrigger0:: @ 81E0DF3 waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_RivalTrigger1:: @ 81E0E33 +RustboroCity_EventScript_RivalTrigger1:: lockall call RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestDown @@ -745,7 +745,7 @@ RustboroCity_EventScript_RivalTrigger1:: @ 81E0E33 waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_RivalTrigger2:: @ 81E0E73 +RustboroCity_EventScript_RivalTrigger2:: lockall call RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestDown @@ -761,7 +761,7 @@ RustboroCity_EventScript_RivalTrigger2:: @ 81E0E73 waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_RivalTrigger3:: @ 81E0EB3 +RustboroCity_EventScript_RivalTrigger3:: lockall call RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestDown @@ -777,7 +777,7 @@ RustboroCity_EventScript_RivalTrigger3:: @ 81E0EB3 waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_RivalTrigger4:: @ 81E0EF3 +RustboroCity_EventScript_RivalTrigger4:: lockall call RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestDown @@ -793,7 +793,7 @@ RustboroCity_EventScript_RivalTrigger4:: @ 81E0EF3 waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_RivalTrigger5:: @ 81E0F33 +RustboroCity_EventScript_RivalTrigger5:: lockall call RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestDown @@ -809,7 +809,7 @@ RustboroCity_EventScript_RivalTrigger5:: @ 81E0F33 waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_RivalTrigger6:: @ 81E0F73 +RustboroCity_EventScript_RivalTrigger6:: lockall call RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestDown @@ -825,7 +825,7 @@ RustboroCity_EventScript_RivalTrigger6:: @ 81E0F73 waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_RivalTrigger7:: @ 81E0FB3 +RustboroCity_EventScript_RivalTrigger7:: lockall call RustboroCity_EventScript_PlayRivalMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestDown @@ -841,7 +841,7 @@ RustboroCity_EventScript_RivalTrigger7:: @ 81E0FB3 waitmovement 0 goto RustboroCity_EventScript_RivalEncounter -RustboroCity_EventScript_RivalEncounter:: @ 81E0FF3 +RustboroCity_EventScript_RivalEncounter:: checkplayergender compare VAR_RESULT, MALE goto_if_eq RustboroCity_EventScript_MayEncounter @@ -849,7 +849,7 @@ RustboroCity_EventScript_RivalEncounter:: @ 81E0FF3 goto_if_eq RustboroCity_EventScript_BrendanEncounter end -RustboroCity_EventScript_MayEncounter:: @ 81E100B +RustboroCity_EventScript_MayEncounter:: goto_if_set FLAG_DEFEATED_RIVAL_RUSTBORO, RustboroCity_EventScript_MayBrineyHint goto_if_set FLAG_MET_RIVAL_RUSTBORO, RustboroCity_EventScript_MayAskToBattle setflag FLAG_MET_RIVAL_RUSTBORO @@ -873,7 +873,7 @@ RustboroCity_EventScript_MayEncounter:: @ 81E100B releaseall end -RustboroCity_EventScript_MayAskToBattle:: @ 81E1070 +RustboroCity_EventScript_MayAskToBattle:: setvar VAR_0x8008, 1 msgbox RustboroCity_Text_MayWantToBattle, MSGBOX_YESNO compare VAR_RESULT, YES @@ -882,7 +882,7 @@ RustboroCity_EventScript_MayAskToBattle:: @ 81E1070 releaseall end -RustboroCity_EventScript_BattleMay:: @ 81E1092 +RustboroCity_EventScript_BattleMay:: msgbox RustboroCity_Text_MayImNotGoingToLose, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, RustboroCity_EventScript_BattleMayTreecko @@ -890,37 +890,37 @@ RustboroCity_EventScript_BattleMay:: @ 81E1092 case 2, RustboroCity_EventScript_BattleMayMudkip end -RustboroCity_EventScript_MayBrineyHint:: @ 81E10C1 +RustboroCity_EventScript_MayBrineyHint:: msgbox RustboroCity_Text_MayMrBrineyHint, MSGBOX_DEFAULT compare VAR_0x8008, 0 call_if_eq RustboroCity_EventScript_RestoreBgm releaseall end -RustboroCity_EventScript_RestoreBgm:: @ 81E10D6 +RustboroCity_EventScript_RestoreBgm:: savebgm MUS_DUMMY fadedefaultbgm return -RustboroCity_EventScript_BattleMayTreecko:: @ 81E10DB +RustboroCity_EventScript_BattleMayTreecko:: trainerbattle_no_intro TRAINER_MAY_RUSTBORO_TREECKO, RustboroCity_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_MayBrineyHint end -RustboroCity_EventScript_BattleMayTorchic:: @ 81E10EE +RustboroCity_EventScript_BattleMayTorchic:: trainerbattle_no_intro TRAINER_MAY_RUSTBORO_TORCHIC, RustboroCity_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_MayBrineyHint end -RustboroCity_EventScript_BattleMayMudkip:: @ 81E1101 +RustboroCity_EventScript_BattleMayMudkip:: trainerbattle_no_intro TRAINER_MAY_RUSTBORO_MUDKIP, RustboroCity_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_MayBrineyHint end -RustboroCity_EventScript_BrendanEncounter:: @ 81E1114 +RustboroCity_EventScript_BrendanEncounter:: goto_if_set FLAG_DEFEATED_RIVAL_RUSTBORO, RustboroCity_EventScript_BrendanBrineyHint goto_if_set FLAG_MET_RIVAL_RUSTBORO, RustboroCity_EventScript_BrendanAskToBattle setflag FLAG_MET_RIVAL_RUSTBORO @@ -943,7 +943,7 @@ RustboroCity_EventScript_BrendanEncounter:: @ 81E1114 releaseall end -RustboroCity_EventScript_BrendanAskToBattle:: @ 81E1174 +RustboroCity_EventScript_BrendanAskToBattle:: msgbox RustboroCity_Text_BrendanWantToBattle, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq RustboroCity_EventScript_BattleBrendan @@ -951,7 +951,7 @@ RustboroCity_EventScript_BrendanAskToBattle:: @ 81E1174 releaseall end -RustboroCity_EventScript_BattleBrendan:: @ 81E1191 +RustboroCity_EventScript_BattleBrendan:: msgbox RustboroCity_Text_BrendanIWontGoEasy, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, RustboroCity_EventScript_BattleBrendanTreecko @@ -959,32 +959,32 @@ RustboroCity_EventScript_BattleBrendan:: @ 81E1191 case 2, RustboroCity_EventScript_BattleBrendanMudkip end -RustboroCity_EventScript_BrendanBrineyHint:: @ 81E11C0 +RustboroCity_EventScript_BrendanBrineyHint:: msgbox RustboroCity_Text_BrendanMrBrineyHint, MSGBOX_DEFAULT compare VAR_0x8008, 0 call_if_eq RustboroCity_EventScript_RestoreBgm releaseall end -RustboroCity_EventScript_BattleBrendanTreecko:: @ 81E11D5 +RustboroCity_EventScript_BattleBrendanTreecko:: trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_TREECKO, RustboroCity_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_BrendanBrineyHint end -RustboroCity_EventScript_BattleBrendanTorchic:: @ 81E11E8 +RustboroCity_EventScript_BattleBrendanTorchic:: trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_TORCHIC, RustboroCity_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_BrendanBrineyHint end -RustboroCity_EventScript_BattleBrendanMudkip:: @ 81E11FB +RustboroCity_EventScript_BattleBrendanMudkip:: trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_MUDKIP, RustboroCity_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_BrendanBrineyHint end -RustboroCity_Movement_RivalApproachPlayer0: @ 81E120E +RustboroCity_Movement_RivalApproachPlayer0: walk_down walk_left walk_left @@ -993,7 +993,7 @@ RustboroCity_Movement_RivalApproachPlayer0: @ 81E120E walk_down step_end -RustboroCity_Movement_RivalApproachPlayer1: @ 81E1215 +RustboroCity_Movement_RivalApproachPlayer1: walk_down walk_left walk_left @@ -1001,38 +1001,38 @@ RustboroCity_Movement_RivalApproachPlayer1: @ 81E1215 walk_down step_end -RustboroCity_Movement_RivalApproachPlayer2: @ 81E121B +RustboroCity_Movement_RivalApproachPlayer2: walk_down walk_left walk_left walk_down step_end -RustboroCity_Movement_RivalApproachPlayer3: @ 81E1220 +RustboroCity_Movement_RivalApproachPlayer3: walk_down walk_left walk_down step_end -RustboroCity_Movement_RivalApproachPlayer4: @ 81E1224 +RustboroCity_Movement_RivalApproachPlayer4: walk_down walk_down step_end -RustboroCity_Movement_RivalApproachPlayer5: @ 81E1227 +RustboroCity_Movement_RivalApproachPlayer5: walk_down walk_right walk_down step_end -RustboroCity_Movement_RivalApproachPlayer6: @ 81E122B +RustboroCity_Movement_RivalApproachPlayer6: walk_down walk_right walk_right walk_down step_end -RustboroCity_Movement_RivalApproachPlayer7: @ 81E1230 +RustboroCity_Movement_RivalApproachPlayer7: walk_down walk_right walk_right @@ -1040,53 +1040,53 @@ RustboroCity_Movement_RivalApproachPlayer7: @ 81E1230 walk_down step_end -RustboroCity_EventScript_Boy1:: @ 81E1236 +RustboroCity_EventScript_Boy1:: msgbox RustboroCity_Text_YouCanHave2On2Battle, MSGBOX_NPC end -RustboroCity_Text_WeShortenItToDevon: @ 81E123F +RustboroCity_Text_WeShortenItToDevon: .string "The DEVON CORPORATION…\n" .string "We all just shorten it to DEVON.\p" .string "That company makes all sorts of\n" .string "convenient products.$" -RustboroCity_Text_SneakyLookingManWentAroundCorner: @ 81E12AC +RustboroCity_Text_SneakyLookingManWentAroundCorner: .string "Hm? A sneaky-looking man?\p" .string "Come to think of it, yes, a shady-\n" .string "looking guy went around the corner.$" -RustboroCity_Text_HaveYouChallengedGym: @ 81E130D +RustboroCity_Text_HaveYouChallengedGym: .string "Have you taken the POKéMON GYM\n" .string "challenge?\p" .string "When you get that shiny GYM BADGE\n" .string "in hand, I guess TRAINERS begin to\l" .string "realize what is required of them.$" -RustboroCity_Text_HeyThatsRustborosGymBadge: @ 81E139E +RustboroCity_Text_HeyThatsRustborosGymBadge: .string "Hey, that's RUSTBORO's GYM BADGE!\p" .string "Out of all the POKéMON GYM BADGES,\n" .string "RUSTBORO's is the coolest, I'd say.$" -RustboroCity_Text_YoureNewAroundHere: @ 81E1407 +RustboroCity_Text_YoureNewAroundHere: .string "Oh? Who might you be?\n" .string "You're a new face around these parts.\p" .string "Have you just transferred into the\n" .string "POKéMON TRAINER'S SCHOOL?$" -RustboroCity_Text_GymLeaderIsntEasyWithFire: @ 81E1480 +RustboroCity_Text_GymLeaderIsntEasyWithFire: .string "I challenged the GYM LEADER, but…\p" .string "It's not going to be easy winning with\n" .string "my FIRE-type POKéMON…\p" .string "FIRE-type POKéMON don't match up\n" .string "well against ROCK-type POKéMON…$" -RustboroCity_Text_MrBrineyWalksInTheTunnel: @ 81E1520 +RustboroCity_Text_MrBrineyWalksInTheTunnel: .string "The old sailor MR. BRINEY lives in\n" .string "a cottage by the sea.\p" .string "He goes for walks in the tunnel every\n" .string "so often.$" -RustboroCity_Text_MrBrineyLovesPeeko: @ 81E1589 +RustboroCity_Text_MrBrineyLovesPeeko: .string "The old sailor MR. BRINEY lives in\n" .string "a cottage by the sea.\p" .string "He said he was going shopping in\n" @@ -1094,40 +1094,40 @@ RustboroCity_Text_MrBrineyLovesPeeko: @ 81E1589 .string "That old sea dog, he must really love\n" .string "that PEEKO.$" -RustboroCity_Text_WowYouHavePokemon: @ 81E1633 +RustboroCity_Text_WowYouHavePokemon: .string "Wow, you have POKéMON with you, too.\p" .string "When I get bigger, I'm going to go\n" .string "places with POKéMON, too.$" -RustboroCity_Text_CatchRarePokemonIfIGoToSchool: @ 81E1695 +RustboroCity_Text_CatchRarePokemonIfIGoToSchool: .string "POKéMON TRAINER'S SCHOOL!\p" .string "If I go to this school, will I be able\n" .string "to catch rare POKéMON easily?$" -RustboroCity_Text_PokemonCanChangeLookFromExp: @ 81E16F4 +RustboroCity_Text_PokemonCanChangeLookFromExp: .string "If a POKéMON gains experience in\n" .string "battles, it can sometimes change in\l" .string "the way it looks.$" -RustboroCity_Text_PokemonChangeShape: @ 81E174B +RustboroCity_Text_PokemonChangeShape: .string "A POKéMON changes shape?\n" .string "If one did that, I would be shocked!$" -RustboroCity_Text_TradePokemonGrowFast: @ 81E1789 +RustboroCity_Text_TradePokemonGrowFast: .string "A POKéMON you get in a trade from\n" .string "someone grows fast.\p" .string "But if you don't have certain GYM\n" .string "BADGES, it may not obey you…$" -RustboroCity_Text_OutOfTheWay: @ 81E17FE +RustboroCity_Text_OutOfTheWay: .string "Get out!\n" .string "Out of the way!$" -RustboroCity_Text_WaitDontTakeMyGoods: @ 81E1817 +RustboroCity_Text_WaitDontTakeMyGoods: .string "Wait! Pleeeaaase!\p" .string "Don't take my GOODS!$" -RustboroCity_Text_HelpMeIWasRobbed: @ 81E183E +RustboroCity_Text_HelpMeIWasRobbed: .string "Oh, it's you!\p" .string "You're that fantastic TRAINER who\n" .string "helped me in PETALBURG WOODS!\p" @@ -1136,11 +1136,11 @@ RustboroCity_Text_HelpMeIWasRobbed: @ 81E183E .string "If I don't…\n" .string "I'm going to be in serious trouble.$" -RustboroCity_Text_ShadyCharacterTookOffTowardsTunnel: @ 81E1904 +RustboroCity_Text_ShadyCharacterTookOffTowardsTunnel: .string "That shady character, I think he took\n" .string "off towards the tunnel over there.$" -RustboroCity_Text_YouGotItThankYou: @ 81E194D +RustboroCity_Text_YouGotItThankYou: .string "Oh! How did it go?\n" .string "The DEVON GOODS?\p" .string "You did!\n" @@ -1149,15 +1149,15 @@ RustboroCity_Text_YouGotItThankYou: @ 81E194D .string "I know! As my thanks, I'll give you\n" .string "another GREAT BALL!$" -RustboroCity_Text_YoureLoadedWithItems: @ 81E19E5 +RustboroCity_Text_YoureLoadedWithItems: .string "You're loaded with items.\n" .string "I can't give you this GREAT BALL.$" -RustboroCity_Text_PleaseComeWithMe: @ 81E1A21 +RustboroCity_Text_PleaseComeWithMe: .string "Excuse me, please!\n" .string "Please come with me!$" -RustboroCity_Text_MayHiLetsRegister: @ 81E1A49 +RustboroCity_Text_MayHiLetsRegister: .string "MAY: Oh, hi, {PLAYER}{KUN}!\p" .string "You had a MATCH CALL feature put\n" .string "on your POKéNAV!\p" @@ -1165,11 +1165,11 @@ RustboroCity_Text_MayHiLetsRegister: @ 81E1A49 .string "contact one another anytime!\p" .string "… … … … … …$" -RustboroCity_Text_RegisteredMay: @ 81E1ADB +RustboroCity_Text_RegisteredMay: .string "Registered MAY\n" .string "in the POKéNAV.$" -RustboroCity_Text_MayPassedBrineyWantToBattle: @ 81E1AFA +RustboroCity_Text_MayPassedBrineyWantToBattle: .string "MAY: Oh, by the way, I passed\n" .string "MR. BRINEY in PETALBURG WOODS.\p" .string "I guess he's on his way home to his\n" @@ -1179,32 +1179,32 @@ RustboroCity_Text_MayPassedBrineyWantToBattle: @ 81E1AFA .string "So…\n" .string "How about a little battle?$" -RustboroCity_Text_MayOhHaventRaisedPokemonEnough: @ 81E1BD3 +RustboroCity_Text_MayOhHaventRaisedPokemonEnough: .string "MAY: Oh, what's the matter?\p" .string "Haven't you caught or raised your\n" .string "POKéMON very much?\p" .string "That's not very good for a TRAINER!$" -RustboroCity_Text_MayWantToBattle: @ 81E1C48 +RustboroCity_Text_MayWantToBattle: .string "MAY: So, what do you think?\n" .string "How about a little battle here?$" -RustboroCity_Text_MayImNotGoingToLose: @ 81E1C84 +RustboroCity_Text_MayImNotGoingToLose: .string "MAY: You just became a TRAINER,\n" .string "{PLAYER}{KUN}. I'm not going to lose!$" -RustboroCity_Text_MayDefeat: @ 81E1CC1 +RustboroCity_Text_MayDefeat: .string "Yikes!\n" .string "You're better than I expected!$" -RustboroCity_Text_MayMrBrineyHint: @ 81E1CE7 +RustboroCity_Text_MayMrBrineyHint: .string "MAY: Oh, by the way, MR. BRINEY, who\n" .string "I just passed…\p" .string "{PLAYER}{KUN}, you just moved here so you\n" .string "might not know this, but MR. BRINEY\l" .string "was once a revered seafarer.$" -RustboroCity_Text_BrendanHiLetsRegister: @ 81E1D7D +RustboroCity_Text_BrendanHiLetsRegister: .string "BRENDAN: Oh, hey, {PLAYER}!\p" .string "You had a MATCH CALL feature put\n" .string "on your POKéNAV! Cool!\p" @@ -1212,11 +1212,11 @@ RustboroCity_Text_BrendanHiLetsRegister: @ 81E1D7D .string "get in touch anytime!\p" .string "… … … … … …$" -RustboroCity_Text_RegisteredBrendan: @ 81E1E11 +RustboroCity_Text_RegisteredBrendan: .string "Registered BRENDAN\n" .string "in the POKéNAV.$" -RustboroCity_Text_BrendanPassedBrineyWantToBattle: @ 81E1E34 +RustboroCity_Text_BrendanPassedBrineyWantToBattle: .string "BRENDAN: By the way, {PLAYER}, I walked\n" .string "by MR. BRINEY in PETALBURG WOODS.\p" .string "I bet he was on his way home to his\n" @@ -1227,72 +1227,72 @@ RustboroCity_Text_BrendanPassedBrineyWantToBattle: @ 81E1E34 .string "Want to have a battle to test how\n" .string "far you've progressed?$" -RustboroCity_Text_BrendanNoConfidenceInPokemon: @ 81E1F2F +RustboroCity_Text_BrendanNoConfidenceInPokemon: .string "BRENDAN: What's the matter? Don't have\n" .string "any confidence in your POKéMON?$" -RustboroCity_Text_BrendanWantToBattle: @ 81E1F76 +RustboroCity_Text_BrendanWantToBattle: .string "BRENDAN: What's up?\n" .string "Want to have a battle with me?$" -RustboroCity_Text_BrendanIWontGoEasy: @ 81E1FA9 +RustboroCity_Text_BrendanIWontGoEasy: .string "BRENDAN: I know you just became\n" .string "a TRAINER, but I won't go easy!$" -RustboroCity_Text_BrendanDefeat: @ 81E1FE9 +RustboroCity_Text_BrendanDefeat: .string "Hmm…\n" .string "You're pretty good.$" -RustboroCity_Text_BrendanMrBrineyHint: @ 81E2002 +RustboroCity_Text_BrendanMrBrineyHint: .string "BRENDAN: By the way, you know\n" .string "MR. BRINEY? The guy I just passed?\p" .string "I bet you didn't know this, since you\n" .string "just moved here, {PLAYER}, but\l" .string "MR. BRINEY was once a great sailor.$" -RustboroCity_Text_TunnelNearingCompletion: @ 81E20A6 +RustboroCity_Text_TunnelNearingCompletion: .string "“Timesaving tunnel nearing\n" .string "completion!”\p" .string "…Is what it says on the sign, but\n" .string "there's also a big “X” splashed\l" .string "across it in red paint…$" -RustboroCity_Text_DevonCorpSign: @ 81E2128 +RustboroCity_Text_DevonCorpSign: .string "DEVON CORPORATION\p" .string "“For all your living needs, we make\n" .string "it all.”$" -RustboroCity_Text_GymSign: @ 81E2167 +RustboroCity_Text_GymSign: .string "RUSTBORO CITY POKéMON GYM\n" .string "LEADER: ROXANNE\p" .string "“The ROCK-loving honors student!”$" -RustboroCity_Text_DevonCorpBranchOfficeSign: @ 81E21B3 +RustboroCity_Text_DevonCorpBranchOfficeSign: .string "DEVON CORP. BRANCH OFFICE\p" .string "“Access limited to DEVON employees\n" .string "and authorized personnel.”$" -RustboroCity_Text_CitySign: @ 81E220B +RustboroCity_Text_CitySign: .string "RUSTBORO CITY\p" .string "“The city probing the integration of\n" .string "nature and science.”$" -RustboroCity_Text_TrainersSchoolSign: @ 81E2253 +RustboroCity_Text_TrainersSchoolSign: .string "POKéMON TRAINER'S SCHOOL\p" .string "“We'll teach you anything about\n" .string "POKéMON!”$" -RustboroCity_Text_CuttersHouse: @ 81E2296 +RustboroCity_Text_CuttersHouse: .string "CUTTER'S HOUSE$" -RustboroCity_Text_DevelopedNewPokenavFeature: @ 81E22A5 +RustboroCity_Text_DevelopedNewPokenavFeature: .string "I've been developing an added feature\n" .string "for the POKéNAV…\p" .string "And it turned out great!\p" .string "{PLAYER}, may I see that POKéNAV?\n" .string "The one our PRESIDENT gave you?$" -RustboroCity_Text_AddedMatchCallPleaseCallMrStone: @ 81E2331 +RustboroCity_Text_AddedMatchCallPleaseCallMrStone: .string "There you go, {PLAYER}!\p" .string "I added a new feature named\n" .string "MATCH CALL to your POKéNAV.\p" @@ -1304,14 +1304,14 @@ RustboroCity_Text_AddedMatchCallPleaseCallMrStone: @ 81E2331 .string "Test it out.\n" .string "Please give our PRESIDENT a call.$" -RustboroCity_Text_PleaseSelectPokenav: @ 81E2449 +RustboroCity_Text_PleaseSelectPokenav: .string "Please select the POKéNAV.$" -RustboroCity_Text_IdBetterGetBackToWork: @ 81E2464 +RustboroCity_Text_IdBetterGetBackToWork: .string "Okay, I'd better get back to work.\n" .string "Please take care, {PLAYER}!$" -RustboroCity_Text_YouCanHave2On2Battle: @ 81E249D +RustboroCity_Text_YouCanHave2On2Battle: .string "Did you know this?\p" .string "You can have a 2-on-2 battle even\n" .string "if you're not with another TRAINER.\p" diff --git a/data/maps/RustboroCity_CuttersHouse/scripts.inc b/data/maps/RustboroCity_CuttersHouse/scripts.inc index 9ee4fc5756..f1d6030761 100644 --- a/data/maps/RustboroCity_CuttersHouse/scripts.inc +++ b/data/maps/RustboroCity_CuttersHouse/scripts.inc @@ -1,7 +1,7 @@ -RustboroCity_CuttersHouse_MapScripts:: @ 8215BD3 +RustboroCity_CuttersHouse_MapScripts:: .byte 0 -RustboroCity_CuttersHouse_EventScript_Cutter:: @ 8215BD4 +RustboroCity_CuttersHouse_EventScript_Cutter:: lock faceplayer goto_if_set FLAG_RECEIVED_HM01, RustboroCity_CuttersHouse_EventScript_ExplainCut @@ -12,16 +12,16 @@ RustboroCity_CuttersHouse_EventScript_Cutter:: @ 8215BD4 release end -RustboroCity_CuttersHouse_EventScript_ExplainCut:: @ 8215C00 +RustboroCity_CuttersHouse_EventScript_ExplainCut:: msgbox RustboroCity_CuttersHouse_Text_ExplainCut, MSGBOX_DEFAULT release end -RustboroCity_CuttersHouse_EventScript_Lass:: @ 8215C0A +RustboroCity_CuttersHouse_EventScript_Lass:: msgbox RustboroCity_CuttersHouse_Text_DadHelpedClearLandOfTrees, MSGBOX_NPC end -RustboroCity_CuttersHouse_Text_YouCanPutThisHMToGoodUse: @ 8215C13 +RustboroCity_CuttersHouse_Text_YouCanPutThisHMToGoodUse: .string "That determined expression…\n" .string "That limber way you move…\l" .string "And your well-trained POKéMON…\p" @@ -33,7 +33,7 @@ RustboroCity_CuttersHouse_Text_YouCanPutThisHMToGoodUse: @ 8215C13 .string "No need to be modest or shy.\n" .string "Go on, take it!$" -RustboroCity_CuttersHouse_Text_ExplainCut: @ 8215D33 +RustboroCity_CuttersHouse_Text_ExplainCut: .string "That HIDDEN MACHINE, or HM for\n" .string "short, is CUT.\p" .string "An HM move is one that can be used\n" @@ -44,7 +44,7 @@ RustboroCity_CuttersHouse_Text_ExplainCut: @ 8215D33 .string "And, unlike a TM, an HM can be used\n" .string "more than once.$" -RustboroCity_CuttersHouse_Text_DadHelpedClearLandOfTrees: @ 8215E39 +RustboroCity_CuttersHouse_Text_DadHelpedClearLandOfTrees: .string "When they were expanding the city of\n" .string "RUSTBORO, my dad helped out.\p" .string "He made his POKéMON use CUT to clear\n" diff --git a/data/maps/RustboroCity_DevonCorp_1F/scripts.inc b/data/maps/RustboroCity_DevonCorp_1F/scripts.inc index 80e8f3cf1a..11953d3386 100644 --- a/data/maps/RustboroCity_DevonCorp_1F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_1F/scripts.inc @@ -1,19 +1,19 @@ .set LOCALID_STAIR_GUARD, 2 -RustboroCity_DevonCorp_1F_MapScripts:: @ 8211245 +RustboroCity_DevonCorp_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, RustboroCity_DevonCorp_1F_OnTransition .byte 0 -RustboroCity_DevonCorp_1F_OnTransition: @ 821124B +RustboroCity_DevonCorp_1F_OnTransition: call_if_unset FLAG_RETURNED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_BlockStairs end -RustboroCity_DevonCorp_1F_EventScript_BlockStairs:: @ 8211255 +RustboroCity_DevonCorp_1F_EventScript_BlockStairs:: setobjectxyperm LOCALID_STAIR_GUARD, 14, 2 setobjectmovementtype LOCALID_STAIR_GUARD, MOVEMENT_TYPE_FACE_DOWN return -RustboroCity_DevonCorp_1F_EventScript_Employee:: @ 8211261 +RustboroCity_DevonCorp_1F_EventScript_Employee:: lock faceplayer goto_if_set FLAG_RETURNED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_GoodsRecovered @@ -22,17 +22,17 @@ RustboroCity_DevonCorp_1F_EventScript_Employee:: @ 8211261 release end -RustboroCity_DevonCorp_1F_EventScript_RobberWasntBright:: @ 821127F +RustboroCity_DevonCorp_1F_EventScript_RobberWasntBright:: msgbox RustboroCity_DevonCorp_1F_Text_RobberWasntVeryBright, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_1F_EventScript_GoodsRecovered:: @ 8211289 +RustboroCity_DevonCorp_1F_EventScript_GoodsRecovered:: msgbox RustboroCity_DevonCorp_1F_Text_SoundsLikeStolenGoodsRecovered, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_1F_EventScript_StairGuard:: @ 8211293 +RustboroCity_DevonCorp_1F_EventScript_StairGuard:: lock faceplayer goto_if_set FLAG_RETURNED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_AlwaysWelcome @@ -42,17 +42,17 @@ RustboroCity_DevonCorp_1F_EventScript_StairGuard:: @ 8211293 release end -RustboroCity_DevonCorp_1F_EventScript_AlwaysWelcome:: @ 82112BA +RustboroCity_DevonCorp_1F_EventScript_AlwaysWelcome:: msgbox RustboroCity_DevonCorp_1F_Text_YoureAlwaysWelcomeHere, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_1F_EventScript_GotRobbed:: @ 82112C4 +RustboroCity_DevonCorp_1F_EventScript_GotRobbed:: msgbox RustboroCity_DevonCorp_1F_Text_HowCouldWeGetRobbed, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_1F_EventScript_Greeter:: @ 82112CE +RustboroCity_DevonCorp_1F_EventScript_Greeter:: lock faceplayer goto_if_set FLAG_RETURNED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_WelcomeToDevonCorp @@ -62,64 +62,64 @@ RustboroCity_DevonCorp_1F_EventScript_Greeter:: @ 82112CE release end -RustboroCity_DevonCorp_1F_EventScript_WelcomeToDevonCorp:: @ 82112F5 +RustboroCity_DevonCorp_1F_EventScript_WelcomeToDevonCorp:: msgbox RustboroCity_DevonCorp_1F_Text_WelcomeToDevonCorp, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_1F_EventScript_StaffGotRobbed:: @ 82112FF +RustboroCity_DevonCorp_1F_EventScript_StaffGotRobbed:: msgbox RustboroCity_DevonCorp_1F_Text_StaffGotRobbed, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_1F_EventScript_RocksMetalDisplay:: @ 8211309 +RustboroCity_DevonCorp_1F_EventScript_RocksMetalDisplay:: msgbox RustboroCity_DevonCorp_1F_Text_RocksMetalDisplay, MSGBOX_SIGN end -RustboroCity_DevonCorp_1F_EventScript_ProductsDisplay:: @ 8211312 +RustboroCity_DevonCorp_1F_EventScript_ProductsDisplay:: msgbox RustboroCity_DevonCorp_1F_Text_ProductDisplay, MSGBOX_SIGN end -RustboroCity_DevonCorp_1F_Text_WelcomeToDevonCorp: @ 821131B +RustboroCity_DevonCorp_1F_Text_WelcomeToDevonCorp: .string "Hello and welcome to the DEVON\n" .string "CORPORATION.\p" .string "We're proud producers of items and\n" .string "medicine that enhance your life.$" -RustboroCity_DevonCorp_1F_Text_StaffGotRobbed: @ 821138B +RustboroCity_DevonCorp_1F_Text_StaffGotRobbed: .string "One of our research staff stupidly\n" .string "got robbed of an important parcel.$" -RustboroCity_DevonCorp_1F_Text_ThoseShoesAreOurProduct: @ 82113D1 +RustboroCity_DevonCorp_1F_Text_ThoseShoesAreOurProduct: .string "Hey, those RUNNING SHOES!\n" .string "They're one of our products!\p" .string "It makes me happy when I see someone\n" .string "using something we made.$" -RustboroCity_DevonCorp_1F_Text_RobberWasntVeryBright: @ 8211446 +RustboroCity_DevonCorp_1F_Text_RobberWasntVeryBright: .string "That stolen parcel…\p" .string "Well, sure it's important, but it's not\n" .string "anything that anyone can use.\p" .string "In my estimation, that robber must not\n" .string "have been very bright.$" -RustboroCity_DevonCorp_1F_Text_SoundsLikeStolenGoodsRecovered: @ 82114DE +RustboroCity_DevonCorp_1F_Text_SoundsLikeStolenGoodsRecovered: .string "It sounds like they've recovered\n" .string "the ripped-off DEVON GOODS.$" -RustboroCity_DevonCorp_1F_Text_OnlyAuthorizedPeopleEnter: @ 821151B +RustboroCity_DevonCorp_1F_Text_OnlyAuthorizedPeopleEnter: .string "I'm sorry, only authorized people\n" .string "are allowed to enter here.$" -RustboroCity_DevonCorp_1F_Text_HowCouldWeGetRobbed: @ 8211558 +RustboroCity_DevonCorp_1F_Text_HowCouldWeGetRobbed: .string "It's beyond stupid.\n" .string "How could we get robbed?$" -RustboroCity_DevonCorp_1F_Text_YoureAlwaysWelcomeHere: @ 8211585 +RustboroCity_DevonCorp_1F_Text_YoureAlwaysWelcomeHere: .string "Hi, there!\n" .string "You're always welcome here!$" -RustboroCity_DevonCorp_1F_Text_RocksMetalDisplay: @ 82115AC +RustboroCity_DevonCorp_1F_Text_RocksMetalDisplay: .string "Samples of rocks and metal are\n" .string "displayed in the glass case.\p" .string "There's a panel with some writing\n" @@ -133,7 +133,7 @@ RustboroCity_DevonCorp_1F_Text_RocksMetalDisplay: @ 82115AC .string "“DEVON is now a manufacturer of a wide\n" .string "range of industrial products.”$" -RustboroCity_DevonCorp_1F_Text_ProductDisplay: @ 8211722 +RustboroCity_DevonCorp_1F_Text_ProductDisplay: .string "Prototypes and test products fill\n" .string "the glass display case.\p" .string "There's a panel with a description…\p" diff --git a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc index eb22fcc43a..326cd946e6 100644 --- a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc @@ -1,19 +1,19 @@ .set LOCALID_FOSSIL_SCIENTIST, 5 -RustboroCity_DevonCorp_2F_MapScripts:: @ 8211857 +RustboroCity_DevonCorp_2F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, RustboroCity_DevonCorp_2F_OnTransition .byte 0 -RustboroCity_DevonCorp_2F_OnTransition: @ 821185D +RustboroCity_DevonCorp_2F_OnTransition: compare VAR_FOSSIL_RESURRECTION_STATE, 1 call_if_eq RustboroCity_DevonCorp_2F_EventScript_SetFossilReady end -RustboroCity_DevonCorp_2F_EventScript_SetFossilReady:: @ 8211869 +RustboroCity_DevonCorp_2F_EventScript_SetFossilReady:: setvar VAR_FOSSIL_RESURRECTION_STATE, 2 return -RustboroCity_DevonCorp_2F_EventScript_TalkToPokemonScientist:: @ 821186F +RustboroCity_DevonCorp_2F_EventScript_TalkToPokemonScientist:: lock faceplayer compare VAR_FOSSIL_RESURRECTION_STATE, 1 @@ -22,7 +22,7 @@ RustboroCity_DevonCorp_2F_EventScript_TalkToPokemonScientist:: @ 821186F release end -RustboroCity_DevonCorp_2F_EventScript_BallScientist:: @ 8211886 +RustboroCity_DevonCorp_2F_EventScript_BallScientist:: lock faceplayer compare VAR_FOSSIL_RESURRECTION_STATE, 1 @@ -32,12 +32,12 @@ RustboroCity_DevonCorp_2F_EventScript_BallScientist:: @ 8211886 release end -RustboroCity_DevonCorp_2F_EventScript_DevelopedBalls:: @ 82118A6 +RustboroCity_DevonCorp_2F_EventScript_DevelopedBalls:: msgbox RustboroCity_DevonCorp_2F_Text_WeFinallyMadeNewBalls, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_2F_EventScript_PokenavScientist:: @ 82118B0 +RustboroCity_DevonCorp_2F_EventScript_PokenavScientist:: lock faceplayer compare VAR_FOSSIL_RESURRECTION_STATE, 1 @@ -47,12 +47,12 @@ RustboroCity_DevonCorp_2F_EventScript_PokenavScientist:: @ 82118B0 release end -RustboroCity_DevonCorp_2F_EventScript_HasPokenav:: @ 82118D0 +RustboroCity_DevonCorp_2F_EventScript_HasPokenav:: msgbox RustboroCity_DevonCorp_2F_Text_WowThatsAPokenav, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_2F_EventScript_PokemonDreamsScientist:: @ 82118DA +RustboroCity_DevonCorp_2F_EventScript_PokemonDreamsScientist:: lock faceplayer compare VAR_FOSSIL_RESURRECTION_STATE, 1 @@ -61,7 +61,7 @@ RustboroCity_DevonCorp_2F_EventScript_PokemonDreamsScientist:: @ 82118DA release end -RustboroCity_DevonCorp_2F_EventScript_FossilScientist:: @ 82118F1 +RustboroCity_DevonCorp_2F_EventScript_FossilScientist:: lock faceplayer compare VAR_FOSSIL_RESURRECTION_STATE, 2 @@ -79,7 +79,7 @@ RustboroCity_DevonCorp_2F_EventScript_FossilScientist:: @ 82118F1 end @ This whole section has needless duplication and could be condensed considerably -RustboroCity_DevonCorp_2F_EventScript_NoticeRootFossil:: @ 8211933 +RustboroCity_DevonCorp_2F_EventScript_NoticeRootFossil:: closemessage playse SE_PIN applymovement LOCALID_FOSSIL_SCIENTIST, Common_Movement_ExclamationMark @@ -95,7 +95,7 @@ RustboroCity_DevonCorp_2F_EventScript_NoticeRootFossil:: @ 8211933 goto RustboroCity_DevonCorp_2F_EventScript_GiveRootFossil end -RustboroCity_DevonCorp_2F_EventScript_GiveRootFossil:: @ 8211974 +RustboroCity_DevonCorp_2F_EventScript_GiveRootFossil:: bufferitemname 0, ITEM_ROOT_FOSSIL msgbox RustboroCity_DevonCorp_2F_Text_HandedFossilToResearcher, MSGBOX_DEFAULT removeitem ITEM_ROOT_FOSSIL @@ -104,7 +104,7 @@ RustboroCity_DevonCorp_2F_EventScript_GiveRootFossil:: @ 8211974 release end -RustboroCity_DevonCorp_2F_EventScript_NoticeClawFossil:: @ 8211991 +RustboroCity_DevonCorp_2F_EventScript_NoticeClawFossil:: closemessage playse SE_PIN applymovement LOCALID_FOSSIL_SCIENTIST, Common_Movement_ExclamationMark @@ -120,7 +120,7 @@ RustboroCity_DevonCorp_2F_EventScript_NoticeClawFossil:: @ 8211991 goto RustboroCity_DevonCorp_2F_EventScript_GiveClawFossil end -RustboroCity_DevonCorp_2F_EventScript_GiveClawFossil:: @ 82119D2 +RustboroCity_DevonCorp_2F_EventScript_GiveClawFossil:: bufferitemname 0, ITEM_CLAW_FOSSIL msgbox RustboroCity_DevonCorp_2F_Text_HandedFossilToResearcher, MSGBOX_DEFAULT removeitem ITEM_CLAW_FOSSIL @@ -129,36 +129,36 @@ RustboroCity_DevonCorp_2F_EventScript_GiveClawFossil:: @ 82119D2 release end -RustboroCity_DevonCorp_2F_EventScript_DeclineGiveFossil:: @ 82119EF +RustboroCity_DevonCorp_2F_EventScript_DeclineGiveFossil:: msgbox RustboroCity_DevonCorp_2F_Text_OhIsThatSo, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_2F_EventScript_StillRegenerating:: @ 82119F9 +RustboroCity_DevonCorp_2F_EventScript_StillRegenerating:: msgbox RustboroCity_DevonCorp_2F_Text_FossilRegeneratorTakesTime, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_2F_EventScript_FossilMonReady:: @ 8211A03 +RustboroCity_DevonCorp_2F_EventScript_FossilMonReady:: compare VAR_WHICH_FOSSIL_REVIVED, 1 goto_if_eq RustboroCity_DevonCorp_2F_EventScript_LileepReady compare VAR_WHICH_FOSSIL_REVIVED, 2 goto_if_eq RustboroCity_DevonCorp_2F_EventScript_AnorithReady end -RustboroCity_DevonCorp_2F_EventScript_LileepReady:: @ 8211A1A +RustboroCity_DevonCorp_2F_EventScript_LileepReady:: bufferspeciesname 1, SPECIES_LILEEP msgbox RustboroCity_DevonCorp_2F_Text_FossilizedMonBroughtBackToLife, MSGBOX_DEFAULT goto RustboroCity_DevonCorp_2F_EventScript_ReceiveLileep end -RustboroCity_DevonCorp_2F_EventScript_AnorithReady:: @ 8211A2C +RustboroCity_DevonCorp_2F_EventScript_AnorithReady:: bufferspeciesname 1, SPECIES_ANORITH msgbox RustboroCity_DevonCorp_2F_Text_FossilizedMonBroughtBackToLife, MSGBOX_DEFAULT goto RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorith end -RustboroCity_DevonCorp_2F_EventScript_ReceiveLileep:: @ 8211A3E +RustboroCity_DevonCorp_2F_EventScript_ReceiveLileep:: setvar VAR_TEMP_1, SPECIES_LILEEP givemon SPECIES_LILEEP, 20, ITEM_NONE compare VAR_RESULT, 0 @@ -168,7 +168,7 @@ RustboroCity_DevonCorp_2F_EventScript_ReceiveLileep:: @ 8211A3E goto Common_EventScript_NoMoreRoomForPokemon end -RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty:: @ 8211A6E +RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty:: call RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO compare VAR_RESULT, NO @@ -178,7 +178,7 @@ RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty:: @ 8211A6E goto RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep end -RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepPC:: @ 8211A96 +RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepPC:: call RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO compare VAR_RESULT, NO @@ -187,12 +187,12 @@ RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepPC:: @ 8211A96 goto RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC end -RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC:: @ 8211AB9 +RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC:: call Common_EventScript_TransferredToPC goto RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep end -RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare:: @ 8211AC4 +RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare:: bufferspeciesname 1, SPECIES_LILEEP playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher @@ -201,13 +201,13 @@ RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare:: @ 8211AC4 bufferspeciesname 0, SPECIES_LILEEP return -RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep:: @ 8211AD7 +RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep:: setvar VAR_FOSSIL_RESURRECTION_STATE, 0 setflag FLAG_RECEIVED_REVIVED_FOSSIL_MON release end -RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorith:: @ 8211AE1 +RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorith:: setvar VAR_TEMP_1, SPECIES_ANORITH givemon SPECIES_ANORITH, 20, ITEM_NONE compare VAR_RESULT, 0 @@ -217,7 +217,7 @@ RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorith:: @ 8211AE1 goto Common_EventScript_NoMoreRoomForPokemon end -RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty:: @ 8211B11 +RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty:: call RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO compare VAR_RESULT, NO @@ -227,7 +227,7 @@ RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty:: @ 8211B11 goto RustboroCity_DevonCorp_2F_EventScript_FinishReceivingAnorith end -RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithPC:: @ 8211B39 +RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithPC:: call RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO compare VAR_RESULT, NO @@ -236,12 +236,12 @@ RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithPC:: @ 8211B39 goto RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC end -RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC:: @ 8211B5C +RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC:: call Common_EventScript_TransferredToPC goto RustboroCity_DevonCorp_2F_EventScript_FinishReceivingAnorith end -RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare:: @ 8211B67 +RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare:: bufferspeciesname 1, SPECIES_ANORITH playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher @@ -250,16 +250,16 @@ RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare:: @ 8211B67 bufferspeciesname 0, SPECIES_ANORITH return -RustboroCity_DevonCorp_2F_EventScript_FinishReceivingAnorith:: @ 8211B7A +RustboroCity_DevonCorp_2F_EventScript_FinishReceivingAnorith:: setvar VAR_FOSSIL_RESURRECTION_STATE, 0 setflag FLAG_RECEIVED_REVIVED_FOSSIL_MON release end -RustboroCity_DevonCorp_2F_EventScript_ChooseFossil:: @ 8211B84 +RustboroCity_DevonCorp_2F_EventScript_ChooseFossil:: message RustboroCity_DevonCorp_2F_Text_TwoFossilsPickOne waitmessage - multichoice 17, 6, MULTI_FOSSIL, 0 + multichoice 17, 6, MULTI_FOSSIL, FALSE switch VAR_RESULT case 0, RustboroCity_DevonCorp_2F_EventScript_ChooseClawFossil case 1, RustboroCity_DevonCorp_2F_EventScript_ChooseRootFossil @@ -267,19 +267,19 @@ RustboroCity_DevonCorp_2F_EventScript_ChooseFossil:: @ 8211B84 case MULTI_B_PRESSED, RustboroCity_DevonCorp_2F_EventScript_CancelFossilSelect end -RustboroCity_DevonCorp_2F_EventScript_ChooseClawFossil:: @ 8211BC1 +RustboroCity_DevonCorp_2F_EventScript_ChooseClawFossil:: goto RustboroCity_DevonCorp_2F_EventScript_GiveClawFossil end -RustboroCity_DevonCorp_2F_EventScript_ChooseRootFossil:: @ 8211BC7 +RustboroCity_DevonCorp_2F_EventScript_ChooseRootFossil:: goto RustboroCity_DevonCorp_2F_EventScript_GiveRootFossil end -RustboroCity_DevonCorp_2F_EventScript_CancelFossilSelect:: @ 8211BCD +RustboroCity_DevonCorp_2F_EventScript_CancelFossilSelect:: release end -RustboroCity_DevonCorp_2F_EventScript_MatchCallScientist:: @ 8211BCF +RustboroCity_DevonCorp_2F_EventScript_MatchCallScientist:: lock faceplayer compare VAR_FOSSIL_RESURRECTION_STATE, 1 @@ -290,22 +290,22 @@ RustboroCity_DevonCorp_2F_EventScript_MatchCallScientist:: @ 8211BCF release end -RustboroCity_DevonCorp_2F_EventScript_WorkOnNext:: @ 8211BF1 +RustboroCity_DevonCorp_2F_EventScript_WorkOnNext:: msgbox RustboroCity_DevonCorp_2F_Text_WhatToWorkOnNext, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_2F_Text_DeviceForTalkingToPokemon: @ 8211BFB +RustboroCity_DevonCorp_2F_Text_DeviceForTalkingToPokemon: .string "We're developing a device for talking\n" .string "with POKéMON.\p" .string "But we haven't had much success…$" -RustboroCity_DevonCorp_2F_Text_DevelopingNewBalls: @ 8211C50 +RustboroCity_DevonCorp_2F_Text_DevelopingNewBalls: .string "I'm developing new kinds of\n" .string "POKé BALLS…\p" .string "But I haven't made much headway…$" -RustboroCity_DevonCorp_2F_Text_WeFinallyMadeNewBalls: @ 8211C99 +RustboroCity_DevonCorp_2F_Text_WeFinallyMadeNewBalls: .string "We finally made new kinds of\n" .string "POKé BALLS!\p" .string "The REPEAT BALL makes it easier to\n" @@ -316,12 +316,12 @@ RustboroCity_DevonCorp_2F_Text_WeFinallyMadeNewBalls: @ 8211C99 .string "the DEVON CORPORATION.\p" .string "Please give them a try!$" -RustboroCity_DevonCorp_2F_Text_IMadePokenav: @ 8211D9F +RustboroCity_DevonCorp_2F_Text_IMadePokenav: .string "I made the POKéNAV!\p" .string "As an engineer, I feel blessed to have\n" .string "made something so great!$" -RustboroCity_DevonCorp_2F_Text_WowThatsAPokenav: @ 8211DF3 +RustboroCity_DevonCorp_2F_Text_WowThatsAPokenav: .string "Oh, wow!\n" .string "That's a POKéNAV!\p" .string "It came about as a result of our\n" @@ -332,18 +332,18 @@ RustboroCity_DevonCorp_2F_Text_WowThatsAPokenav: @ 8211DF3 .string "No, no. I think you'll find out just by\n" .string "trying the POKéNAV out.$" -RustboroCity_DevonCorp_2F_Text_DeviceToVisualizePokemonDreams: @ 8211EE0 +RustboroCity_DevonCorp_2F_Text_DeviceToVisualizePokemonDreams: .string "I'm trying to develop a device that\n" .string "visually reproduces the dreams of\l" .string "POKéMON…\p" .string "But it's not going well.$" -RustboroCity_DevonCorp_2F_Text_DevelopDeviceToResurrectFossils: @ 8211F48 +RustboroCity_DevonCorp_2F_Text_DevelopDeviceToResurrectFossils: .string "I've been trying to develop a device\n" .string "that resurrects POKéMON from fossils…\p" .string "And, it's working!$" -RustboroCity_DevonCorp_2F_Text_WantToBringFossilBackToLife: @ 8211FA6 +RustboroCity_DevonCorp_2F_Text_WantToBringFossilBackToLife: .string "Wait! That thing you have there…\n" .string "Is that a POKéMON fossil?\p" .string "Would you like to bring that POKéMON\n" @@ -351,12 +351,12 @@ RustboroCity_DevonCorp_2F_Text_WantToBringFossilBackToLife: @ 8211FA6 .string "I can with my newly developed\n" .string "FOSSIL REGENERATOR.$" -RustboroCity_DevonCorp_2F_Text_OhIsThatSo: @ 8212046 +RustboroCity_DevonCorp_2F_Text_OhIsThatSo: .string "Oh, is that so?\p" .string "DEVON's technological expertise\n" .string "is outstanding, I tell you.$" -RustboroCity_DevonCorp_2F_Text_TwoFossilsPickOne: @ 8212092 +RustboroCity_DevonCorp_2F_Text_TwoFossilsPickOne: .string "Oh, now that's a surprise!\n" .string "You have not one, but two, fossils?\p" .string "Unfortunately, my machine can only\n" @@ -364,13 +364,13 @@ RustboroCity_DevonCorp_2F_Text_TwoFossilsPickOne: @ 8212092 .string "Would you like to pick one of your\n" .string "fossils for regeneration?$" -RustboroCity_DevonCorp_2F_Text_HandedFossilToResearcher: @ 8212153 +RustboroCity_DevonCorp_2F_Text_HandedFossilToResearcher: .string "Excellent!\n" .string "Let's do this right away.\p" .string "{PLAYER} handed the {STR_VAR_1} to\n" .string "the DEVON RESEARCHER.$" -RustboroCity_DevonCorp_2F_Text_FossilRegeneratorTakesTime: @ 82121A2 +RustboroCity_DevonCorp_2F_Text_FossilRegeneratorTakesTime: .string "The FOSSIL REGENERATOR, which I made,\n" .string "is incredible.\p" .string "But it has one drawback--it takes\n" @@ -378,28 +378,28 @@ RustboroCity_DevonCorp_2F_Text_FossilRegeneratorTakesTime: @ 82121A2 .string "So, uh… How about you go for a stroll\n" .string "and look around for a while?$" -RustboroCity_DevonCorp_2F_Text_FossilizedMonBroughtBackToLife: @ 8212251 +RustboroCity_DevonCorp_2F_Text_FossilizedMonBroughtBackToLife: .string "Thanks for waiting!\p" .string "Your fossilized POKéMON has been\n" .string "brought back to life!\p" .string "The fossil was an ancient POKéMON.\n" .string "{STR_VAR_2}, it was!$" -RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher: @ 82122CB +RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher: .string "{PLAYER} received {STR_VAR_2} from\n" .string "the DEVON RESEARCHER.$" @ Unused -RustboroCity_DevonCorp_2F_Text_TooManyPokemon: @ 82122F5 +RustboroCity_DevonCorp_2F_Text_TooManyPokemon: .string "Uh-oh, you've got too many POKéMON.\n" .string "You have no room for this one.$" -RustboroCity_DevonCorp_2F_Text_DevelopNewPokenavFeature: @ 8212338 +RustboroCity_DevonCorp_2F_Text_DevelopNewPokenavFeature: .string "I'm trying to develop a new feature\n" .string "for the POKéNAV…\p" .string "But it's not going well.$" -RustboroCity_DevonCorp_2F_Text_WhatToWorkOnNext: @ 8212386 +RustboroCity_DevonCorp_2F_Text_WhatToWorkOnNext: .string "Well, now what shall I work on\n" .string "developing next?\p" .string "Our company allows us to make our\n" diff --git a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc index 34a31c692d..cfd6709983 100644 --- a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc @@ -1,34 +1,34 @@ .set LOCALID_DEVON_EMPLOYEE, 2 -RustboroCity_DevonCorp_3F_MapScripts:: @ 821242D +RustboroCity_DevonCorp_3F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, RustboroCity_DevonCorp_3F_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, RustboroCity_DevonCorp_3F_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, RustboroCity_DevonCorp_3F_OnFrame .byte 0 -RustboroCity_DevonCorp_3F_OnTransition: @ 821243D +RustboroCity_DevonCorp_3F_OnTransition: compare VAR_DEVON_CORP_3F_STATE, 0 call_if_eq RustboroCity_DevonCorp_3F_EventScript_SetEmployeePos end -RustboroCity_DevonCorp_3F_EventScript_SetEmployeePos:: @ 8212449 +RustboroCity_DevonCorp_3F_EventScript_SetEmployeePos:: setobjectxyperm LOCALID_DEVON_EMPLOYEE, 3, 2 setobjectmovementtype LOCALID_DEVON_EMPLOYEE, MOVEMENT_TYPE_FACE_LEFT return -RustboroCity_DevonCorp_3F_OnWarp: @ 8212455 +RustboroCity_DevonCorp_3F_OnWarp: map_script_2 VAR_DEVON_CORP_3F_STATE, 0, RustboroCity_DevonCorp_3F_EventScript_PlayerFaceEast .2byte 0 -RustboroCity_DevonCorp_3F_EventScript_PlayerFaceEast:: @ 821245F +RustboroCity_DevonCorp_3F_EventScript_PlayerFaceEast:: turnobject OBJ_EVENT_ID_PLAYER, DIR_EAST end -RustboroCity_DevonCorp_3F_OnFrame: @ 8212464 +RustboroCity_DevonCorp_3F_OnFrame: map_script_2 VAR_DEVON_CORP_3F_STATE, 0, RustboroCity_DevonCorp_3F_EventScript_MeetPresident .2byte 0 -RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E +RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: lockall msgbox RustboroCity_DevonCorp_3F_Text_ThisIs3rdFloorWaitHere, MSGBOX_DEFAULT closemessage @@ -39,7 +39,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E waitmovement 0 msgbox RustboroCity_DevonCorp_3F_Text_WordWithPresidentComeWithMe, MSGBOX_DEFAULT closemessage - playbgm MUS_FOLLOW_ME, 0 + playbgm MUS_FOLLOW_ME, FALSE applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_DevonCorp_3F_Movement_LeadPlayerToPresident applymovement OBJ_EVENT_ID_PLAYER, RustboroCity_DevonCorp_3F_Movement_PlayerFollowToPresident waitmovement 0 @@ -74,14 +74,14 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E releaseall end -RustboroCity_DevonCorp_3F_Movement_Unused: @ 821252F +RustboroCity_DevonCorp_3F_Movement_Unused: walk_up walk_up walk_up walk_in_place_fastest_left step_end -RustboroCity_DevonCorp_3F_Movement_LeadPlayerToPresident: @ 8212534 +RustboroCity_DevonCorp_3F_Movement_LeadPlayerToPresident: walk_right walk_right walk_right @@ -98,12 +98,12 @@ RustboroCity_DevonCorp_3F_Movement_LeadPlayerToPresident: @ 8212534 walk_in_place_fastest_left step_end -RustboroCity_DevonCorp_3F_Movement_EmployeeFaceDesk: @ 8212543 +RustboroCity_DevonCorp_3F_Movement_EmployeeFaceDesk: delay_16 walk_in_place_fastest_down step_end -RustboroCity_DevonCorp_3F_Movement_EmployeeWalkOffscreen: @ 8212546 +RustboroCity_DevonCorp_3F_Movement_EmployeeWalkOffscreen: walk_right walk_right walk_right @@ -114,7 +114,7 @@ RustboroCity_DevonCorp_3F_Movement_EmployeeWalkOffscreen: @ 8212546 walk_right step_end -RustboroCity_DevonCorp_3F_Movement_EmployeeReturnToPlayer: @ 821254F +RustboroCity_DevonCorp_3F_Movement_EmployeeReturnToPlayer: walk_left walk_left walk_left @@ -125,7 +125,7 @@ RustboroCity_DevonCorp_3F_Movement_EmployeeReturnToPlayer: @ 821254F walk_left step_end -RustboroCity_DevonCorp_3F_Movement_PlayerFollowToPresident: @ 8212558 +RustboroCity_DevonCorp_3F_Movement_PlayerFollowToPresident: walk_right walk_right walk_right @@ -141,7 +141,7 @@ RustboroCity_DevonCorp_3F_Movement_PlayerFollowToPresident: @ 8212558 walk_right step_end -RustboroCity_DevonCorp_3F_Movement_PlayerApproachDesk: @ 8212566 +RustboroCity_DevonCorp_3F_Movement_PlayerApproachDesk: delay_16 delay_16 walk_down @@ -149,7 +149,7 @@ RustboroCity_DevonCorp_3F_Movement_PlayerApproachDesk: @ 8212566 walk_in_place_fastest_right step_end -RustboroCity_DevonCorp_3F_EventScript_MrStone:: @ 821256C +RustboroCity_DevonCorp_3F_EventScript_MrStone:: lock faceplayer goto_if_set FLAG_RECEIVED_EXP_SHARE, RustboroCity_DevonCorp_3F_EventScript_MrStoneAfterFavor @@ -161,7 +161,7 @@ RustboroCity_DevonCorp_3F_EventScript_MrStone:: @ 821256C release end -RustboroCity_DevonCorp_3F_EventScript_GiveExpShare:: @ 8212595 +RustboroCity_DevonCorp_3F_EventScript_GiveExpShare:: msgbox RustboroCity_DevonCorp_3F_Text_ThankYouForDeliveringLetter, MSGBOX_DEFAULT giveitem ITEM_EXP_SHARE compare VAR_RESULT, FALSE @@ -174,7 +174,7 @@ RustboroCity_DevonCorp_3F_EventScript_GiveExpShare:: @ 8212595 release end -RustboroCity_DevonCorp_3F_EventScript_MrStoneAfterFavor:: @ 82125CC +RustboroCity_DevonCorp_3F_EventScript_MrStoneAfterFavor:: msgbox RustboroCity_DevonCorp_3F_Text_NotFamiliarWithTrends, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection @@ -182,7 +182,7 @@ RustboroCity_DevonCorp_3F_EventScript_MrStoneAfterFavor:: @ 82125CC release end -RustboroCity_DevonCorp_3F_EventScript_Employee:: @ 82125E1 +RustboroCity_DevonCorp_3F_EventScript_Employee:: lock faceplayer goto_if_set FLAG_RECEIVED_REPEAT_BALL, RustboroCity_DevonCorp_3F_EventScript_EmployeeBalls @@ -190,16 +190,16 @@ RustboroCity_DevonCorp_3F_EventScript_Employee:: @ 82125E1 release end -RustboroCity_DevonCorp_3F_EventScript_EmployeeBalls:: @ 82125F6 +RustboroCity_DevonCorp_3F_EventScript_EmployeeBalls:: msgbox RustboroCity_DevonCorp_3F_Text_RepeatAndTimerHugelyPopular, MSGBOX_DEFAULT release end -RustboroCity_DevonCorp_3F_EventScript_RareRocksDisplay:: @ 8212600 +RustboroCity_DevonCorp_3F_EventScript_RareRocksDisplay:: msgbox RustboroCity_DevonCorp_3F_Text_RareRocksDisplay, MSGBOX_SIGN end -RustboroCity_DevonCorp_3F_Text_MrStoneIHaveFavor: @ 8212609 +RustboroCity_DevonCorp_3F_Text_MrStoneIHaveFavor: .string "I'm MR. STONE, the PRESIDENT of\n" .string "the DEVON CORPORATION.\p" .string "I'd just got word about you!\p" @@ -214,17 +214,17 @@ RustboroCity_DevonCorp_3F_Text_MrStoneIHaveFavor: @ 8212609 .string "I was hoping that you'd deliver a\n" .string "LETTER to STEVEN in DEWFORD.$" -RustboroCity_DevonCorp_3F_Text_MrStoneWantYouToHaveThis: @ 821277C +RustboroCity_DevonCorp_3F_Text_MrStoneWantYouToHaveThis: .string "MR. STONE: Now, you should know that\n" .string "I am a great PRESIDENT.\p" .string "So, I'd never be so cheap as to ask\n" .string "a favor for nothing in return.\p" .string "That's why I want you to have this!$" -RustboroCity_DevonCorp_3F_Text_ReceivedPokenav: @ 8212820 +RustboroCity_DevonCorp_3F_Text_ReceivedPokenav: .string "{PLAYER} received a POKéNAV.$" -RustboroCity_DevonCorp_3F_Text_MrStoneExplainPokenavRestUp: @ 8212837 +RustboroCity_DevonCorp_3F_Text_MrStoneExplainPokenavRestUp: .string "MR. STONE: That device…\p" .string "It's a POKéMON NAVIGATOR, or POKéNAV\n" .string "for short.\p" @@ -239,20 +239,20 @@ RustboroCity_DevonCorp_3F_Text_MrStoneExplainPokenavRestUp: @ 8212837 .string "I think it would be best if you rested\n" .string "up before you go on your way.$" -RustboroCity_DevonCorp_3F_Text_MrStoneGoWithCautionAndCare: @ 82129D2 +RustboroCity_DevonCorp_3F_Text_MrStoneGoWithCautionAndCare: .string "MR. STONE: Well, then, {PLAYER}{KUN},\n" .string "go with caution and care!$" -RustboroCity_DevonCorp_3F_Text_CountingOnYou: @ 8212A09 +RustboroCity_DevonCorp_3F_Text_CountingOnYou: .string "MR. STONE: I'm counting on you!$" -RustboroCity_DevonCorp_3F_Text_ThankYouForDeliveringLetter: @ 8212A29 +RustboroCity_DevonCorp_3F_Text_ThankYouForDeliveringLetter: .string "MR. STONE: You delivered my LETTER?\n" .string "Thank you kindly!\p" .string "This is my way of thanking you.\n" .string "It should help you, a TRAINER.$" -RustboroCity_DevonCorp_3F_Text_ExplainExpShare: @ 8212A9E +RustboroCity_DevonCorp_3F_Text_ExplainExpShare: .string "MR. STONE: A POKéMON holding that\n" .string "EXP. SHARE will be given some of the\l" .string "EXP Points from battle.\p" @@ -261,7 +261,7 @@ RustboroCity_DevonCorp_3F_Text_ExplainExpShare: @ 8212A9E .string "I would say EXP. SHARE is quite useful\n" .string "for raising weak POKéMON.$" -RustboroCity_DevonCorp_3F_Text_NotFamiliarWithTrends: @ 8212B78 +RustboroCity_DevonCorp_3F_Text_NotFamiliarWithTrends: .string "MR. STONE: Since my youth, I've immersed\n" .string "myself in work.\p" .string "Consequently, I'm not familiar with\n" @@ -269,7 +269,7 @@ RustboroCity_DevonCorp_3F_Text_NotFamiliarWithTrends: @ 8212B78 .string "But do young people all want to be\n" .string "TRAINERS in the POKéMON LEAGUE?$" -RustboroCity_DevonCorp_3F_Text_ThisIs3rdFloorWaitHere: @ 8212C37 +RustboroCity_DevonCorp_3F_Text_ThisIs3rdFloorWaitHere: .string "This is the DEVON CORPORATION's\n" .string "third floor.\p" .string "Our PRESIDENT's OFFICE is on\n" @@ -287,24 +287,24 @@ RustboroCity_DevonCorp_3F_Text_ThisIs3rdFloorWaitHere: @ 8212C37 .string "Oh, that's right.\n" .string "Could you wait here a second?$" -RustboroCity_DevonCorp_3F_Text_WordWithPresidentComeWithMe: @ 8212DE8 +RustboroCity_DevonCorp_3F_Text_WordWithPresidentComeWithMe: .string "Our PRESIDENT would like to have\n" .string "a word with you.\p" .string "Please come with me.$" -RustboroCity_DevonCorp_3F_Text_PleaseGoAhead: @ 8212E2F +RustboroCity_DevonCorp_3F_Text_PleaseGoAhead: .string "Please, go ahead.$" -RustboroCity_DevonCorp_3F_Text_VisitCaptSternShipyard: @ 8212E41 +RustboroCity_DevonCorp_3F_Text_VisitCaptSternShipyard: .string "If you visit the SHIPYARD in SLATEPORT,\n" .string "you should go see CAPT. STERN.$" -RustboroCity_DevonCorp_3F_Text_RepeatAndTimerHugelyPopular: @ 8212E88 +RustboroCity_DevonCorp_3F_Text_RepeatAndTimerHugelyPopular: .string "DEVON's new products, the REPEAT BALL\n" .string "and TIMER BALL, have become hugely\l" .string "popular among TRAINERS.$" -RustboroCity_DevonCorp_3F_Text_RareRocksDisplay: @ 8212EE9 +RustboroCity_DevonCorp_3F_Text_RareRocksDisplay: .string "It's a collection of rare rocks and\n" .string "stones assembled by the PRESIDENT.$" diff --git a/data/maps/RustboroCity_Flat1_1F/scripts.inc b/data/maps/RustboroCity_Flat1_1F/scripts.inc index c52c7f0691..43b09a2dc6 100644 --- a/data/maps/RustboroCity_Flat1_1F/scripts.inc +++ b/data/maps/RustboroCity_Flat1_1F/scripts.inc @@ -1,18 +1,18 @@ -RustboroCity_Flat1_1F_MapScripts:: @ 82150CD +RustboroCity_Flat1_1F_MapScripts:: .byte 0 -RustboroCity_Flat1_1F_EventScript_Man:: @ 82150CE +RustboroCity_Flat1_1F_EventScript_Man:: msgbox RustboroCity_Flat1_1F_Text_EveryPokemonHasAbility, MSGBOX_NPC end -RustboroCity_Flat1_1F_EventScript_Woman:: @ 82150D7 +RustboroCity_Flat1_1F_EventScript_Woman:: msgbox RustboroCity_Flat1_1F_Text_PokemonStrange, MSGBOX_NPC end -RustboroCity_Flat1_1F_Text_EveryPokemonHasAbility: @ 82150E0 +RustboroCity_Flat1_1F_Text_EveryPokemonHasAbility: .string "Every POKéMON has a special ability\n" .string "that it can use.$" -RustboroCity_Flat1_1F_Text_PokemonStrange: @ 8215115 +RustboroCity_Flat1_1F_Text_PokemonStrange: .string "POKéMON are such strange creatures.$" diff --git a/data/maps/RustboroCity_Flat1_2F/scripts.inc b/data/maps/RustboroCity_Flat1_2F/scripts.inc index a1943adaec..a9d24092f8 100644 --- a/data/maps/RustboroCity_Flat1_2F/scripts.inc +++ b/data/maps/RustboroCity_Flat1_2F/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_WALDAS_DAD, 6 -RustboroCity_Flat1_2F_MapScripts:: @ 8215139 +RustboroCity_Flat1_2F_MapScripts:: .byte 0 -RustboroCity_Flat1_2F_EventScript_WaldasDad:: @ 821513A +RustboroCity_Flat1_2F_EventScript_WaldasDad:: lock faceplayer specialvar VAR_RESULT, TryBufferWaldaPhrase @@ -12,7 +12,7 @@ RustboroCity_Flat1_2F_EventScript_WaldasDad:: @ 821513A compare VAR_RESULT, TRUE goto_if_eq RustboroCity_Flat1_2F_EventScript_WaldasDadNewPhrase -RustboroCity_Flat1_2F_EventScript_GivePhrase:: @ 8215157 +RustboroCity_Flat1_2F_EventScript_GivePhrase:: special DoWaldaNamingScreen waitstate compare VAR_0x8004, 1 @@ -26,38 +26,38 @@ RustboroCity_Flat1_2F_EventScript_GivePhrase:: @ 8215157 goto_if_eq RustboroCity_Flat1_2F_EventScript_WaldaDoesntLikePhrase end -RustboroCity_Flat1_2F_EventScript_WaldasDadFirstPhrase:: @ 821518D +RustboroCity_Flat1_2F_EventScript_WaldasDadFirstPhrase:: msgbox RustboroCity_Flat1_2F_Text_HelloDoYouKnowFunnyPhrase, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq RustboroCity_Flat1_2F_EventScript_DeclineGivePhrase msgbox RustboroCity_Flat1_2F_Text_WonderfulLetsHearSuggestion, MSGBOX_DEFAULT goto RustboroCity_Flat1_2F_EventScript_GivePhrase -RustboroCity_Flat1_2F_EventScript_WaldasDadNewPhrase:: @ 82151AD +RustboroCity_Flat1_2F_EventScript_WaldasDadNewPhrase:: msgbox RustboroCity_Flat1_2F_Text_BeenSayingXDoYouKnowBetterPhrase, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq RustboroCity_Flat1_2F_EventScript_DeclineGivePhrase msgbox RustboroCity_Flat1_2F_Text_WonderfulLetsHearSuggestion, MSGBOX_DEFAULT goto RustboroCity_Flat1_2F_EventScript_GivePhrase -RustboroCity_Flat1_2F_EventScript_DeclineGivePhrase:: @ 82151CD +RustboroCity_Flat1_2F_EventScript_DeclineGivePhrase:: msgbox RustboroCity_Flat1_2F_Text_OhIsThatRight, MSGBOX_DEFAULT release end -RustboroCity_Flat1_2F_EventScript_CancelGivePhrase:: @ 82151D7 +RustboroCity_Flat1_2F_EventScript_CancelGivePhrase:: msgbox RustboroCity_Flat1_2F_Text_OhYouDontKnowAny, MSGBOX_DEFAULT release end -RustboroCity_Flat1_2F_EventScript_CancelGiveFirstPhrase:: @ 82151E1 +RustboroCity_Flat1_2F_EventScript_CancelGiveFirstPhrase:: msgbox RustboroCity_Flat1_2F_Text_ThinkOfMyOwnPhrase, MSGBOX_DEFAULT call RustboroCity_Flat1_2F_EventScript_WaldasDadFaceWalda msgbox RustboroCity_Flat1_2F_Text_ShesNotSmilingAtAll2, MSGBOX_DEFAULT release end -RustboroCity_Flat1_2F_EventScript_WaldaLikesPhrase:: @ 82151F8 +RustboroCity_Flat1_2F_EventScript_WaldaLikesPhrase:: msgbox RustboroCity_Flat1_2F_Text_LetsGiveItATry2, MSGBOX_DEFAULT call RustboroCity_Flat1_2F_EventScript_WaldasDadFaceWalda msgbox RustboroCity_Flat1_2F_Text_OhShesLaughing, MSGBOX_DEFAULT @@ -67,26 +67,26 @@ RustboroCity_Flat1_2F_EventScript_WaldaLikesPhrase:: @ 82151F8 release end -RustboroCity_Flat1_2F_EventScript_WaldaDoesntLikePhrase:: @ 8215221 +RustboroCity_Flat1_2F_EventScript_WaldaDoesntLikePhrase:: msgbox RustboroCity_Flat1_2F_Text_LetsGiveItATry, MSGBOX_DEFAULT call RustboroCity_Flat1_2F_EventScript_WaldasDadFaceWalda msgbox RustboroCity_Flat1_2F_Text_ShesNotSmilingAtAll, MSGBOX_DEFAULT release end -RustboroCity_Flat1_2F_EventScript_WaldasDadFaceWalda:: @ 8215238 +RustboroCity_Flat1_2F_EventScript_WaldasDadFaceWalda:: turnobject LOCALID_WALDAS_DAD, DIR_EAST return -RustboroCity_Flat1_2F_EventScript_WaldasMom:: @ 821523D +RustboroCity_Flat1_2F_EventScript_WaldasMom:: msgbox RustboroCity_Flat1_2F_Text_ComingUpWithMealsIsHard, MSGBOX_NPC end -RustboroCity_Flat1_2F_EventScript_PokeDoll:: @ 8215246 +RustboroCity_Flat1_2F_EventScript_PokeDoll:: msgbox RustboroCity_Flat1_2F_Text_ItsAPokemonPlushDoll, MSGBOX_SIGN end -RustboroCity_Flat1_2F_Text_ComingUpWithMealsIsHard: @ 821524F +RustboroCity_Flat1_2F_Text_ComingUpWithMealsIsHard: .string "Oh, it's so hard every day…\p" .string "What's hard?\n" .string "You need to ask?\p" @@ -95,7 +95,7 @@ RustboroCity_Flat1_2F_Text_ComingUpWithMealsIsHard: @ 821524F .string "It really isn't easy coming up with\n" .string "meals every day.$" -RustboroCity_Flat1_2F_Text_HelloDoYouKnowFunnyPhrase: @ 82152FA +RustboroCity_Flat1_2F_Text_HelloDoYouKnowFunnyPhrase: .string "Oh, hello!\n" .string "Welcome to the PEPPER household.\p" .string "I have a question for you.\n" @@ -109,62 +109,62 @@ RustboroCity_Flat1_2F_Text_HelloDoYouKnowFunnyPhrase: @ 82152FA .string "Do you know of a funny word or\n" .string "phrase you can tell me?$" -RustboroCity_Flat1_2F_Text_BeenSayingXDoYouKnowBetterPhrase: @ 8215448 +RustboroCity_Flat1_2F_Text_BeenSayingXDoYouKnowBetterPhrase: .string "I've been saying “{STR_VAR_1}”\n" .string "to amuse her lately.\p" .string "Do you know of a better word or\n" .string "a phrase that might work?$" -RustboroCity_Flat1_2F_Text_WonderfulLetsHearSuggestion: @ 82154AD +RustboroCity_Flat1_2F_Text_WonderfulLetsHearSuggestion: .string "Oh, that's wonderful.\n" .string "So, let's hear it, your suggestion.$" -RustboroCity_Flat1_2F_Text_OhIsThatRight: @ 82154E7 +RustboroCity_Flat1_2F_Text_OhIsThatRight: .string "Oh, is that right?\p" .string "Well, if you come up with a good\n" .string "suggestion, I'm all ears.$" -RustboroCity_Flat1_2F_Text_LetsGiveItATry2: @ 8215535 +RustboroCity_Flat1_2F_Text_LetsGiveItATry2: .string "Ah, I see.\n" .string "Well, let's give it a try, shall we?$" -RustboroCity_Flat1_2F_Text_OhShesLaughing: @ 8215565 +RustboroCity_Flat1_2F_Text_OhShesLaughing: .string "{STR_VAR_1}.\n" .string "{STR_VAR_1}.\p" .string "Oh, yes! She's laughing!\n" .string "Oh, I am as delighted as she!$" -RustboroCity_Flat1_2F_Text_LetsGiveItATry: @ 82155A4 +RustboroCity_Flat1_2F_Text_LetsGiveItATry: .string "Ah, I see.\n" .string "Well, let's give it a try, shall we?$" -RustboroCity_Flat1_2F_Text_ShesNotSmilingAtAll: @ 82155D4 +RustboroCity_Flat1_2F_Text_ShesNotSmilingAtAll: .string "{STR_VAR_1}.\n" .string "{STR_VAR_1}.\p" .string "Hmmm… She's not smiling at all.\n" .string "Maybe WALDA is one serious child…$" -RustboroCity_Flat1_2F_Text_ThinkOfMyOwnPhrase: @ 821561E +RustboroCity_Flat1_2F_Text_ThinkOfMyOwnPhrase: .string "Oh, so you don't know any good words.\n" .string "I'd better think for myself, then.\p" .string "Hmm…\n" .string "How about “{STR_VAR_1}”?\l" .string "Let's see if that will work.$" -RustboroCity_Flat1_2F_Text_ShesNotSmilingAtAll2: @ 8215699 +RustboroCity_Flat1_2F_Text_ShesNotSmilingAtAll2: .string "{STR_VAR_1}.\n" .string "{STR_VAR_1}.\p" .string "Hmmm… She's not smiling at all.\n" .string "Maybe WALDA is one serious child…$" -RustboroCity_Flat1_2F_Text_OhYouDontKnowAny: @ 82156E3 +RustboroCity_Flat1_2F_Text_OhYouDontKnowAny: .string "Oh, so you don't know any good words.\n" .string "I guess I'll try to amuse her with\l" .string "the saying I used before.\p" .string "Anyways, if you have a good suggestion,\n" .string "don't hesitate in telling me, okay?$" -RustboroCity_Flat1_2F_Text_ThankYouIllGiveYouWallpaper: @ 8215792 +RustboroCity_Flat1_2F_Text_ThankYouIllGiveYouWallpaper: .string "Thank you!\p" .string "Thanks to you, my darling WALDA\n" .string "laughed for me!\p" @@ -181,6 +181,6 @@ RustboroCity_Flat1_2F_Text_ThankYouIllGiveYouWallpaper: @ 8215792 .string "That will give you access to the new\n" .string "wallpaper patterns.$" -RustboroCity_Flat1_2F_Text_ItsAPokemonPlushDoll: @ 8215923 +RustboroCity_Flat1_2F_Text_ItsAPokemonPlushDoll: .string "It's a POKéMON plush DOLL!$" diff --git a/data/maps/RustboroCity_Flat2_1F/scripts.inc b/data/maps/RustboroCity_Flat2_1F/scripts.inc index 1820609551..eda27c7168 100644 --- a/data/maps/RustboroCity_Flat2_1F/scripts.inc +++ b/data/maps/RustboroCity_Flat2_1F/scripts.inc @@ -1,11 +1,11 @@ -RustboroCity_Flat2_1F_MapScripts:: @ 8215F76 +RustboroCity_Flat2_1F_MapScripts:: .byte 0 -RustboroCity_Flat2_1F_EventScript_OldWoman:: @ 8215F77 +RustboroCity_Flat2_1F_EventScript_OldWoman:: msgbox RustboroCity_Flat2_1F_Text_DevonWorkersLiveHere, MSGBOX_NPC end -RustboroCity_Flat2_1F_EventScript_Skitty:: @ 8215F80 +RustboroCity_Flat2_1F_EventScript_Skitty:: lock faceplayer waitse @@ -15,10 +15,10 @@ RustboroCity_Flat2_1F_EventScript_Skitty:: @ 8215F80 release end -RustboroCity_Flat2_1F_Text_DevonWorkersLiveHere: @ 8215F93 +RustboroCity_Flat2_1F_Text_DevonWorkersLiveHere: .string "DEVON CORPORATION's workers live in\n" .string "this building.$" -RustboroCity_Flat2_1F_Text_Skitty: @ 8215FC6 +RustboroCity_Flat2_1F_Text_Skitty: .string "SKITTY: Gyaaaah!$" diff --git a/data/maps/RustboroCity_Flat2_2F/scripts.inc b/data/maps/RustboroCity_Flat2_2F/scripts.inc index e7909d54ba..29edb7b586 100644 --- a/data/maps/RustboroCity_Flat2_2F/scripts.inc +++ b/data/maps/RustboroCity_Flat2_2F/scripts.inc @@ -1,11 +1,11 @@ -RustboroCity_Flat2_2F_MapScripts:: @ 8215FD7 +RustboroCity_Flat2_2F_MapScripts:: .byte 0 -RustboroCity_Flat2_2F_EventScript_OldMan:: @ 8215FD8 +RustboroCity_Flat2_2F_EventScript_OldMan:: msgbox RustboroCity_Flat2_2F_Text_DevonWasTinyInOldDays, MSGBOX_NPC end -RustboroCity_Flat2_2F_EventScript_NinjaBoy:: @ 8215FE1 +RustboroCity_Flat2_2F_EventScript_NinjaBoy:: lock faceplayer goto_if_set FLAG_RECEIVED_PREMIER_BALL_RUSTBORO, RustboroCity_Flat2_2F_EventScript_GavePremierBall @@ -17,21 +17,21 @@ RustboroCity_Flat2_2F_EventScript_NinjaBoy:: @ 8215FE1 release end -RustboroCity_Flat2_2F_EventScript_GavePremierBall:: @ 8216010 +RustboroCity_Flat2_2F_EventScript_GavePremierBall:: msgbox RustboroCity_Flat2_2F_Text_GoingToWorkAtDevonToo, MSGBOX_DEFAULT release end -RustboroCity_Flat2_2F_Text_DevonWasTinyInOldDays: @ 821601A +RustboroCity_Flat2_2F_Text_DevonWasTinyInOldDays: .string "Way back in the old days, DEVON was just\n" .string "a teeny, tiny company.$" -RustboroCity_Flat2_2F_Text_MyDaddyMadeThisYouCanHaveIt: @ 821605A +RustboroCity_Flat2_2F_Text_MyDaddyMadeThisYouCanHaveIt: .string "My daddy's working at the CORPORATION.\p" .string "My daddy made this!\n" .string "But I can't use it, so you can have it.$" -RustboroCity_Flat2_2F_Text_GoingToWorkAtDevonToo: @ 82160BD +RustboroCity_Flat2_2F_Text_GoingToWorkAtDevonToo: .string "My daddy's working at the CORPORATION.\p" .string "When I grow up, I'm going to work for\n" .string "DEVON, too.$" diff --git a/data/maps/RustboroCity_Flat2_3F/scripts.inc b/data/maps/RustboroCity_Flat2_3F/scripts.inc index 8af31531d2..3f644f19c2 100644 --- a/data/maps/RustboroCity_Flat2_3F/scripts.inc +++ b/data/maps/RustboroCity_Flat2_3F/scripts.inc @@ -1,19 +1,19 @@ -RustboroCity_Flat2_3F_MapScripts:: @ 8216116 +RustboroCity_Flat2_3F_MapScripts:: .byte 0 -RustboroCity_Flat2_3F_EventScript_DevonEmployee:: @ 8216117 +RustboroCity_Flat2_3F_EventScript_DevonEmployee:: msgbox RustboroCity_Flat2_3F_Text_PresidentCollectsRareStones, MSGBOX_NPC end -RustboroCity_Flat2_3F_EventScript_Woman:: @ 8216120 +RustboroCity_Flat2_3F_EventScript_Woman:: msgbox RustboroCity_Flat2_3F_Text_PresidentsSonAlsoCollectsRareStones, MSGBOX_NPC end -RustboroCity_Flat2_3F_Text_PresidentCollectsRareStones: @ 8216129 +RustboroCity_Flat2_3F_Text_PresidentCollectsRareStones: .string "DEVON's PRESIDENT likes to collect\n" .string "rare stones.$" -RustboroCity_Flat2_3F_Text_PresidentsSonAlsoCollectsRareStones: @ 8216159 +RustboroCity_Flat2_3F_Text_PresidentsSonAlsoCollectsRareStones: .string "I think the PRESIDENT's son also\n" .string "collects rare stones.$" diff --git a/data/maps/RustboroCity_Gym/scripts.inc b/data/maps/RustboroCity_Gym/scripts.inc index 6d9895fe50..11354fac0a 100644 --- a/data/maps/RustboroCity_Gym/scripts.inc +++ b/data/maps/RustboroCity_Gym/scripts.inc @@ -1,7 +1,7 @@ -RustboroCity_Gym_MapScripts:: @ 8212F30 +RustboroCity_Gym_MapScripts:: .byte 0 -RustboroCity_Gym_EventScript_Roxanne:: @ 8212F31 +RustboroCity_Gym_EventScript_Roxanne:: trainerbattle_single TRAINER_ROXANNE_1, RustboroCity_Gym_Text_RoxanneIntro, RustboroCity_Gym_Text_RoxanneDefeat, RustboroCity_Gym_EventScript_RoxanneDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -11,7 +11,7 @@ RustboroCity_Gym_EventScript_Roxanne:: @ 8212F31 release end -RustboroCity_Gym_EventScript_RoxanneDefeated:: @ 8212F66 +RustboroCity_Gym_EventScript_RoxanneDefeated:: message RustboroCity_Gym_Text_ReceivedStoneBadge waitmessage call Common_EventScript_PlayGymBadgeFanfare @@ -27,7 +27,7 @@ RustboroCity_Gym_EventScript_RoxanneDefeated:: @ 8212F66 goto RustboroCity_Gym_EventScript_GiveRockTomb end -RustboroCity_Gym_EventScript_GiveRockTomb:: @ 8212FA4 +RustboroCity_Gym_EventScript_GiveRockTomb:: giveitem ITEM_TM39 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -36,27 +36,27 @@ RustboroCity_Gym_EventScript_GiveRockTomb:: @ 8212FA4 release end -RustboroCity_Gym_EventScript_RoxanneRematch:: @ 8212FC8 +RustboroCity_Gym_EventScript_RoxanneRematch:: trainerbattle_rematch_double TRAINER_ROXANNE_1, RustboroCity_Gym_Text_RoxannePreRematch, RustboroCity_Gym_Text_RoxanneRematchDefeat, RustboroCity_Gym_Text_RoxanneRematchNeedTwoMons msgbox RustboroCity_Gym_Text_RoxannePostRematch, MSGBOX_AUTOCLOSE end -RustboroCity_Gym_EventScript_Josh:: @ 8212FE3 +RustboroCity_Gym_EventScript_Josh:: trainerbattle_single TRAINER_JOSH, RustboroCity_Gym_Text_JoshIntro, RustboroCity_Gym_Text_JoshDefeat msgbox RustboroCity_Gym_Text_JoshPostBattle, MSGBOX_AUTOCLOSE end -RustboroCity_Gym_EventScript_Tommy:: @ 8212FFA +RustboroCity_Gym_EventScript_Tommy:: trainerbattle_single TRAINER_TOMMY, RustboroCity_Gym_Text_TommyIntro, RustboroCity_Gym_Text_TommyDefeat msgbox RustboroCity_Gym_Text_TommyPostBattle, MSGBOX_AUTOCLOSE end -RustboroCity_Gym_EventScript_Marc:: @ 8213011 +RustboroCity_Gym_EventScript_Marc:: trainerbattle_single TRAINER_MARC, RustboroCity_Gym_Text_MarcIntro, RustboroCity_Gym_Text_MarcDefeat msgbox RustboroCity_Gym_Text_MarcPostBattle, MSGBOX_AUTOCLOSE end -RustboroCity_Gym_EventScript_GymGuide:: @ 8213028 +RustboroCity_Gym_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_RUSTBORO_GYM, RustboroCity_Gym_EventScript_GymGuidePostVictory @@ -64,34 +64,34 @@ RustboroCity_Gym_EventScript_GymGuide:: @ 8213028 release end -RustboroCity_Gym_EventScript_GymGuidePostVictory:: @ 821303D +RustboroCity_Gym_EventScript_GymGuidePostVictory:: msgbox RustboroCity_Gym_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end -RustboroCity_Gym_EventScript_LeftGymStatue:: @ 8213047 +RustboroCity_Gym_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE01_GET, RustboroCity_Gym_EventScript_GymStatueCertified goto RustboroCity_Gym_EventScript_GymStatue end -RustboroCity_Gym_EventScript_RightGymStatue:: @ 8213057 +RustboroCity_Gym_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE01_GET, RustboroCity_Gym_EventScript_GymStatueCertified goto RustboroCity_Gym_EventScript_GymStatue end -RustboroCity_Gym_EventScript_GymStatueCertified:: @ 8213067 +RustboroCity_Gym_EventScript_GymStatueCertified:: msgbox RustboroCity_Gym_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end -RustboroCity_Gym_EventScript_GymStatue:: @ 8213071 +RustboroCity_Gym_EventScript_GymStatue:: msgbox RustboroCity_Gym_Text_GymStatue, MSGBOX_DEFAULT releaseall end -RustboroCity_Gym_EventScript_RegisterRoxanne:: @ 821307B +RustboroCity_Gym_EventScript_RegisterRoxanne:: lockall pokenavcall RustboroCity_Gym_Text_RoxanneRegisterCall waitmessage @@ -106,7 +106,7 @@ RustboroCity_Gym_EventScript_RegisterRoxanne:: @ 821307B releaseall end -RustboroCity_Gym_Text_GymGuideAdvice: @ 821309D +RustboroCity_Gym_Text_GymGuideAdvice: .string "Yo, how's it going?\p" .string "Listen, my friend!\n" .string "Would you like to become the CHAMPION?\p" @@ -128,7 +128,7 @@ RustboroCity_Gym_Text_GymGuideAdvice: @ 821309D .string "the GYM LEADER.\p" .string "Well, go for it!$" -RustboroCity_Gym_Text_GymGuidePostVictory: @ 82132E2 +RustboroCity_Gym_Text_GymGuidePostVictory: .string "Whoa! What a breathtaking victory!\n" .string "My cheering must've worked!\p" .string "Great!\n" @@ -140,45 +140,45 @@ RustboroCity_Gym_Text_GymGuidePostVictory: @ 82132E2 .string "the stairs to the CHAMPIONSHIP!\p" .string "That's got to feel awesome!$" -RustboroCity_Gym_Text_JoshIntro: @ 82133E9 +RustboroCity_Gym_Text_JoshIntro: .string "Don't take us GYM TRAINERS lightly!\n" .string "I'll show you why we're better!$" -RustboroCity_Gym_Text_JoshDefeat: @ 821342D +RustboroCity_Gym_Text_JoshDefeat: .string "You were too good for me…$" -RustboroCity_Gym_Text_JoshPostBattle: @ 8213447 +RustboroCity_Gym_Text_JoshPostBattle: .string "You haven't seen anything of the ROCK\n" .string "type's terrifying power!$" -RustboroCity_Gym_Text_TommyIntro: @ 8213486 +RustboroCity_Gym_Text_TommyIntro: .string "If you can't beat me, you won't stand\n" .string "a chance against ROXANNE!$" -RustboroCity_Gym_Text_TommyDefeat: @ 82134C6 +RustboroCity_Gym_Text_TommyDefeat: .string "Wow! You've got some potential!$" -RustboroCity_Gym_Text_TommyPostBattle: @ 82134E6 +RustboroCity_Gym_Text_TommyPostBattle: .string "ROXANNE is stronger than me by\n" .string "several times.\p" .string "You'd better be on your guard!$" -RustboroCity_Gym_Text_MarcIntro: @ 8213533 +RustboroCity_Gym_Text_MarcIntro: .string "We might be in the middle of town,\n" .string "but so what?\p" .string "My ROCK POKéMON need room to\n" .string "rampage!$" -RustboroCity_Gym_Text_MarcDefeat: @ 8213589 +RustboroCity_Gym_Text_MarcDefeat: .string "Oh, man oh man!\n" .string "Our challenger is one feisty customer!$" -RustboroCity_Gym_Text_MarcPostBattle: @ 82135C0 +RustboroCity_Gym_Text_MarcPostBattle: .string "I have to hand it to our LEADER.\p" .string "It took smarts and sense for her to\n" .string "pick the ROCK type at her young age.$" -RustboroCity_Gym_Text_RoxanneIntro: @ 821362A +RustboroCity_Gym_Text_RoxanneIntro: .string "Hello, I am ROXANNE, the RUSTBORO\n" .string "POKéMON GYM LEADER.\p" .string "I became a GYM LEADER so that I might\n" @@ -187,7 +187,7 @@ RustboroCity_Gym_Text_RoxanneIntro: @ 821362A .string "Would you kindly demonstrate how you\n" .string "battle, and with which POKéMON?$" -RustboroCity_Gym_Text_RoxanneDefeat: @ 821370B +RustboroCity_Gym_Text_RoxanneDefeat: .string "So…\n" .string "I lost…\p" .string "It seems that I still have much more\n" @@ -199,18 +199,18 @@ RustboroCity_Gym_Text_RoxanneDefeat: @ 821370B .string "Please accept the official POKéMON\n" .string "LEAGUE STONE BADGE.$" -RustboroCity_Gym_Text_ReceivedStoneBadge: @ 82137EC +RustboroCity_Gym_Text_ReceivedStoneBadge: .string "{PLAYER} received the STONE BADGE\n" .string "from ROXANNE.$" -RustboroCity_Gym_Text_StoneBadgeInfoTakeThis: @ 8213816 +RustboroCity_Gym_Text_StoneBadgeInfoTakeThis: .string "The STONE BADGE heightens the ATTACK\n" .string "power of your POKéMON.\p" .string "It also enables them to use the HM move\n" .string "CUT outside of battle.\p" .string "Please take this with you, too.$" -RustboroCity_Gym_Text_ExplainRockTomb: @ 82138B1 +RustboroCity_Gym_Text_ExplainRockTomb: .string "That TECHNICAL MACHINE, TM39,\n" .string "contains ROCK TOMB.\p" .string "It not only inflicts damage by dropping\n" @@ -220,21 +220,21 @@ RustboroCity_Gym_Text_ExplainRockTomb: @ 82138B1 .string "Remember, a TM can be used only once,\n" .string "so think before you use it.$" -RustboroCity_Gym_Text_RoxannePostBattle: @ 82139A7 +RustboroCity_Gym_Text_RoxannePostBattle: .string "Since you are so strong, you should\n" .string "challenge other GYM LEADERS.\p" .string "By battling many TRAINERS, you should\n" .string "learn many things.$" -RustboroCity_Gym_Text_GymStatue: @ 8213A21 +RustboroCity_Gym_Text_GymStatue: .string "RUSTBORO CITY POKéMON GYM$" -RustboroCity_Gym_Text_GymStatueCertified: @ 8213A3B +RustboroCity_Gym_Text_GymStatueCertified: .string "RUSTBORO CITY POKéMON GYM\p" .string "ROXANNE'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" -RustboroCity_Gym_Text_RoxanneRegisterCall: @ 8213A76 +RustboroCity_Gym_Text_RoxanneRegisterCall: .string "… … … … … …\n" .string "… … … … … Beep!\p" .string "ROXANNE: Oh, hello, {PLAYER}?\n" @@ -251,11 +251,11 @@ RustboroCity_Gym_Text_RoxanneRegisterCall: @ 8213A76 .string "… … … … … …\n" .string "… … … … … Click!$" -RustboroCity_Gym_Text_RegisteredRoxanne: @ 8213C01 +RustboroCity_Gym_Text_RegisteredRoxanne: .string "Registered GYM LEADER ROXANNE\n" .string "in the POKéNAV.$" -RustboroCity_Gym_Text_RoxannePreRematch: @ 8213C2F +RustboroCity_Gym_Text_RoxannePreRematch: .string "ROXANNE: I'm so glad to see you again.\n" .string "I'm ROXANNE, the GYM LEADER here.\p" .string "I'm sure we've both experienced many\n" @@ -263,17 +263,17 @@ RustboroCity_Gym_Text_RoxannePreRematch: @ 8213C2F .string "I would like to see how much better\n" .string "we've become. Let us battle!$" -RustboroCity_Gym_Text_RoxanneRematchDefeat: @ 8213CF9 +RustboroCity_Gym_Text_RoxanneRematchDefeat: .string "Grr…\n" .string "Again, I have lost…$" -RustboroCity_Gym_Text_RoxannePostRematch: @ 8213D12 +RustboroCity_Gym_Text_RoxannePostRematch: .string "ROXANNE: I still have much to learn\n" .string "when it comes to battling POKéMON.\p" .string "That awareness makes me love battling\n" .string "all that much more!$" -RustboroCity_Gym_Text_RoxanneRematchNeedTwoMons: @ 8213D93 +RustboroCity_Gym_Text_RoxanneRematchNeedTwoMons: .string "ROXANNE: I'm so glad to see you again.\n" .string "I'm ROXANNE, the GYM LEADER here.\p" .string "I'm sure we've both experienced many\n" diff --git a/data/maps/RustboroCity_House1/scripts.inc b/data/maps/RustboroCity_House1/scripts.inc index cf1cec6105..0b7de48bc5 100644 --- a/data/maps/RustboroCity_House1/scripts.inc +++ b/data/maps/RustboroCity_House1/scripts.inc @@ -1,7 +1,7 @@ -RustboroCity_House1_MapScripts:: @ 821593E +RustboroCity_House1_MapScripts:: .byte 0 -RustboroCity_House1_EventScript_Trader:: @ 821593F +RustboroCity_House1_EventScript_Trader:: lock faceplayer goto_if_set FLAG_RUSTBORO_NPC_TRADE_COMPLETED, RustboroCity_House1_EventScript_TradeCompleted @@ -32,27 +32,27 @@ RustboroCity_House1_EventScript_Trader:: @ 821593F release end -RustboroCity_House1_EventScript_DeclineTrade:: @ 82159BD +RustboroCity_House1_EventScript_DeclineTrade:: msgbox RustboroCity_House1_Text_YouDontWantToThatsOkay, MSGBOX_DEFAULT release end -RustboroCity_House1_EventScript_NotRequestedMon:: @ 82159C7 +RustboroCity_House1_EventScript_NotRequestedMon:: bufferspeciesname 0, VAR_0x8009 msgbox RustboroCity_House1_Text_DoesntLookLikeMonToMe, MSGBOX_DEFAULT release end -RustboroCity_House1_EventScript_TradeCompleted:: @ 82159D5 +RustboroCity_House1_EventScript_TradeCompleted:: msgbox RustboroCity_House1_Text_AnyPokemonCanBeCute, MSGBOX_DEFAULT release end -RustboroCity_House1_EventScript_Hiker:: @ 82159DF +RustboroCity_House1_EventScript_Hiker:: msgbox RustboroCity_House1_Text_AllSortsOfPlaces, MSGBOX_NPC end -RustboroCity_House1_Text_IllTradeIfYouWant: @ 82159E8 +RustboroCity_House1_Text_IllTradeIfYouWant: .string "Huh? My POKéMON is cute?\n" .string "Sure, I knew that.\p" .string "But if you really want, I'm willing\n" @@ -60,23 +60,23 @@ RustboroCity_House1_Text_IllTradeIfYouWant: @ 82159E8 .string "I'll trade you my {STR_VAR_2} for\n" .string "a {STR_VAR_1} if you want.$" -RustboroCity_House1_Text_PleaseBeGoodToMyPokemon: @ 8215A77 +RustboroCity_House1_Text_PleaseBeGoodToMyPokemon: .string "Eheheh…\n" .string "Please be good to my POKéMON.$" -RustboroCity_House1_Text_DoesntLookLikeMonToMe: @ 8215A9D +RustboroCity_House1_Text_DoesntLookLikeMonToMe: .string "Huh? That doesn't look anything like\n" .string "a {STR_VAR_1} to me.$" -RustboroCity_House1_Text_YouDontWantToThatsOkay: @ 8215ACE +RustboroCity_House1_Text_YouDontWantToThatsOkay: .string "Oh, if you don't want to, that's okay.\n" .string "But my POKéMON is cute, you know…$" -RustboroCity_House1_Text_AnyPokemonCanBeCute: @ 8215B17 +RustboroCity_House1_Text_AnyPokemonCanBeCute: .string "Any POKéMON can be cute if you raise\n" .string "it with care and kindness.$" -RustboroCity_House1_Text_AllSortsOfPlaces: @ 8215B57 +RustboroCity_House1_Text_AllSortsOfPlaces: .string "In all sorts of places, there are all\n" .string "sorts of POKéMON and people.\p" .string "I find that fascinating, so I go to all\n" diff --git a/data/maps/RustboroCity_House2/scripts.inc b/data/maps/RustboroCity_House2/scripts.inc index c8e80ee9f3..6b517a04a3 100644 --- a/data/maps/RustboroCity_House2/scripts.inc +++ b/data/maps/RustboroCity_House2/scripts.inc @@ -1,20 +1,20 @@ -RustboroCity_House2_MapScripts:: @ 8215EB3 +RustboroCity_House2_MapScripts:: .byte 0 -RustboroCity_House2_EventScript_PokefanF:: @ 8215EB4 +RustboroCity_House2_EventScript_PokefanF:: msgbox RustboroCity_House2_Text_TrainerSchoolExcellent, MSGBOX_NPC end -RustboroCity_House2_EventScript_LittleGirl:: @ 8215EBD +RustboroCity_House2_EventScript_LittleGirl:: msgbox RustboroCity_House2_Text_RoxanneKnowsALot, MSGBOX_NPC end -RustboroCity_House2_Text_TrainerSchoolExcellent: @ 8215EC6 +RustboroCity_House2_Text_TrainerSchoolExcellent: .string "The TRAINER'S SCHOOL is excellent.\p" .string "If you study there, you could even\n" .string "become a GYM LEADER.$" -RustboroCity_House2_Text_RoxanneKnowsALot: @ 8215F21 +RustboroCity_House2_Text_RoxanneKnowsALot: .string "ROXANNE, the GYM LEADER, really knows\n" .string "a lot about POKéMON.\p" .string "She's really strong, too!$" diff --git a/data/maps/RustboroCity_House3/scripts.inc b/data/maps/RustboroCity_House3/scripts.inc index d55166e674..70a359df63 100644 --- a/data/maps/RustboroCity_House3/scripts.inc +++ b/data/maps/RustboroCity_House3/scripts.inc @@ -1,16 +1,16 @@ -RustboroCity_House3_MapScripts:: @ 8216190 +RustboroCity_House3_MapScripts:: .byte 0 -RustboroCity_House3_EventScript_OldMan:: @ 8216191 +RustboroCity_House3_EventScript_OldMan:: msgbox RustboroCity_House3_Text_IGivePerfectlySuitedNicknames, MSGBOX_NPC end -RustboroCity_House3_EventScript_OldWoman:: @ 821619A +RustboroCity_House3_EventScript_OldWoman:: msgbox RustboroCity_House3_Text_NamingPikachuPekachu, MSGBOX_NPC end @ Misspelling on purpose, see nickname -RustboroCity_House3_EventScript_Pekachu:: @ 82161A3 +RustboroCity_House3_EventScript_Pekachu:: lock faceplayer waitse @@ -20,18 +20,18 @@ RustboroCity_House3_EventScript_Pekachu:: @ 82161A3 release end -RustboroCity_House3_Text_IGivePerfectlySuitedNicknames: @ 82161B6 +RustboroCity_House3_Text_IGivePerfectlySuitedNicknames: .string "For my own POKéMON, I give them\n" .string "perfectly suited nicknames!\p" .string "It's my expression of, uh…\n" .string "originality, yes, that's it!$" -RustboroCity_House3_Text_NamingPikachuPekachu: @ 821622A +RustboroCity_House3_Text_NamingPikachuPekachu: .string "But giving the name PEKACHU to\n" .string "a PIKACHU? It seems pointless.\p" .string "I suppose it is good to use a name\n" .string "that's easy to understand, but…$" -RustboroCity_House3_Text_Pekachu: @ 82162AB +RustboroCity_House3_Text_Pekachu: .string "PEKACHU: Peka!$" diff --git a/data/maps/RustboroCity_Mart/scripts.inc b/data/maps/RustboroCity_Mart/scripts.inc index 063c5b64f5..18120cb4de 100644 --- a/data/maps/RustboroCity_Mart/scripts.inc +++ b/data/maps/RustboroCity_Mart/scripts.inc @@ -1,7 +1,7 @@ -RustboroCity_Mart_MapScripts:: @ 8214F05 +RustboroCity_Mart_MapScripts:: .byte 0 -RustboroCity_Mart_EventScript_Clerk:: @ 8214F06 +RustboroCity_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -10,13 +10,14 @@ RustboroCity_Mart_EventScript_Clerk:: @ 8214F06 goto_if_set FLAG_MET_DEVON_EMPLOYEE, RustboroCity_Mart_EventScript_PokemartExpanded end -RustboroCity_Mart_EventScript_PokemartBasic:: @ 8214F21 +RustboroCity_Mart_EventScript_PokemartBasic:: pokemart RustboroCity_Mart_Pokemart_Basic msgbox gText_PleaseComeAgain, MSGBOX_DEFAULT release end -RustboroCity_Mart_Pokemart_Basic: @ 8214F30 + .align 2 +RustboroCity_Mart_Pokemart_Basic: .2byte ITEM_POKE_BALL .2byte ITEM_POTION .2byte ITEM_SUPER_POTION @@ -31,14 +32,14 @@ RustboroCity_Mart_Pokemart_Basic: @ 8214F30 release end -RustboroCity_Mart_EventScript_PokemartExpanded:: @ 8214F48 +RustboroCity_Mart_EventScript_PokemartExpanded:: pokemart RustboroCity_Mart_Pokemart_Expanded msgbox gText_PleaseComeAgain, MSGBOX_DEFAULT release end .align 2 -RustboroCity_Mart_Pokemart_Expanded: @ 8214F58 +RustboroCity_Mart_Pokemart_Expanded: .2byte ITEM_POKE_BALL .2byte ITEM_TIMER_BALL .2byte ITEM_REPEAT_BALL @@ -55,31 +56,31 @@ RustboroCity_Mart_Pokemart_Expanded: @ 8214F58 release end -RustboroCity_Mart_EventScript_PokefanF:: @ 8214F74 +RustboroCity_Mart_EventScript_PokefanF:: msgbox RustboroCity_Mart_Text_BuyingHealsInCaseOfShroomish, MSGBOX_NPC end -RustboroCity_Mart_EventScript_Boy:: @ 8214F7D +RustboroCity_Mart_EventScript_Boy:: msgbox RustboroCity_Mart_Text_ShouldBuySuperPotionsInstead, MSGBOX_NPC end -RustboroCity_Mart_EventScript_BugCatcher:: @ 8214F86 +RustboroCity_Mart_EventScript_BugCatcher:: msgbox RustboroCity_Mart_Text_GettingEscapeRopeJustInCase, MSGBOX_NPC end -RustboroCity_Mart_Text_BuyingHealsInCaseOfShroomish: @ 8214F8F +RustboroCity_Mart_Text_BuyingHealsInCaseOfShroomish: .string "I'm buying some PARLYZ HEALS and\n" .string "ANTIDOTES.\p" .string "Just in case I run into SHROOMISH\n" .string "in PETALBURG WOODS.$" -RustboroCity_Mart_Text_ShouldBuySuperPotionsInstead: @ 8214FF1 +RustboroCity_Mart_Text_ShouldBuySuperPotionsInstead: .string "My POKéMON evolved.\n" .string "It has a lot of HP now.\p" .string "I should buy SUPER POTIONS for it\n" .string "instead of ordinary POTIONS.$" -RustboroCity_Mart_Text_GettingEscapeRopeJustInCase: @ 821505C +RustboroCity_Mart_Text_GettingEscapeRopeJustInCase: .string "I'm getting an ESCAPE ROPE just in\n" .string "case I get lost in a cave.\p" .string "I just need to use it to get back to\n" diff --git a/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc b/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc index fbe1ac739d..ff7d765682 100644 --- a/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc @@ -1,16 +1,16 @@ .set LOCALID_NURSE, 1 -RustboroCity_PokemonCenter_1F_MapScripts:: @ 8214D62 +RustboroCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, RustboroCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -RustboroCity_PokemonCenter_1F_OnTransition: @ 8214D6D +RustboroCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_RUSTBORO_CITY call Common_EventScript_UpdateBrineyLocation end -RustboroCity_PokemonCenter_1F_EventScript_Nurse:: @ 8214D76 +RustboroCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -18,31 +18,31 @@ RustboroCity_PokemonCenter_1F_EventScript_Nurse:: @ 8214D76 release end -RustboroCity_PokemonCenter_1F_EventScript_Man:: @ 8214D84 +RustboroCity_PokemonCenter_1F_EventScript_Man:: msgbox RustboroCity_PokemonCenter_1F_Text_PokemonHavePersonalities, MSGBOX_NPC end -RustboroCity_PokemonCenter_1F_EventScript_Boy:: @ 8214D8D +RustboroCity_PokemonCenter_1F_EventScript_Boy:: msgbox RustboroCity_PokemonCenter_1F_Text_MaleAndFemalePokemon, MSGBOX_NPC end -RustboroCity_PokemonCenter_1F_EventScript_Girl:: @ 8214D96 +RustboroCity_PokemonCenter_1F_EventScript_Girl:: msgbox RustboroCity_PokemonCenter_1F_Text_HMCutNextDoor, MSGBOX_NPC end -RustboroCity_PokemonCenter_1F_Text_PokemonHavePersonalities: @ 8214D9F +RustboroCity_PokemonCenter_1F_Text_PokemonHavePersonalities: .string "My POKéMON has a NAIVE nature, and my\n" .string "friend's has a JOLLY nature.\p" .string "It's fascinating how POKéMON have\n" .string "personalities!$" -RustboroCity_PokemonCenter_1F_Text_MaleAndFemalePokemon: @ 8214E13 +RustboroCity_PokemonCenter_1F_Text_MaleAndFemalePokemon: .string "Just like people, there are male and\n" .string "female POKéMON.\p" .string "But no one seems to have any idea how\n" .string "they're different.$" -RustboroCity_PokemonCenter_1F_Text_HMCutNextDoor: @ 8214E81 +RustboroCity_PokemonCenter_1F_Text_HMCutNextDoor: .string "The man next door gave me an HM!\p" .string "I used it to teach my POKéMON how to\n" .string "CUT down skinny trees.$" diff --git a/data/maps/RustboroCity_PokemonCenter_2F/scripts.inc b/data/maps/RustboroCity_PokemonCenter_2F/scripts.inc index ba7b5b285c..693204377f 100644 --- a/data/maps/RustboroCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/RustboroCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -RustboroCity_PokemonCenter_2F_MapScripts:: @ 8214EDE +RustboroCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ RustboroCity_PokemonCenter_2F_MapScripts:: @ 8214EDE .byte 0 @ The below 3 are unused and leftover from RS -RustboroCity_PokemonCenter_2F_EventScript_Colosseum:: @ 8214EF3 +RustboroCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -RustboroCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 8214EF9 +RustboroCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -RustboroCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 8214EFF +RustboroCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/RustboroCity_PokemonSchool/scripts.inc b/data/maps/RustboroCity_PokemonSchool/scripts.inc index 6e5bf0fced..791f5ee841 100644 --- a/data/maps/RustboroCity_PokemonSchool/scripts.inc +++ b/data/maps/RustboroCity_PokemonSchool/scripts.inc @@ -1,16 +1,16 @@ -RustboroCity_PokemonSchool_MapScripts:: @ 8213EA8 +RustboroCity_PokemonSchool_MapScripts:: .byte 0 -RustboroCity_PokemonSchool_EventScript_Blackboard:: @ 8213EA9 +RustboroCity_PokemonSchool_EventScript_Blackboard:: lockall msgbox RustboroCity_PokemonSchool_Text_BlackboardListsStatusChanges, MSGBOX_DEFAULT goto RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic end -RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic:: @ 8213EB8 +RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic:: message RustboroCity_PokemonSchool_Text_ReadWhichTopic waitmessage - multichoicegrid 8, 1, MULTI_STATUS_INFO, 3, 0 + multichoicegrid 8, 1, MULTI_STATUS_INFO, 3, FALSE switch VAR_RESULT case 0, RustboroCity_PokemonSchool_EventScript_Poison case 1, RustboroCity_PokemonSchool_EventScript_Paralysis @@ -21,60 +21,60 @@ RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic:: @ 8213EB8 case MULTI_B_PRESSED, RustboroCity_PokemonSchool_EventScript_ExitTopicSelect end -RustboroCity_PokemonSchool_EventScript_Poison:: @ 8213F17 +RustboroCity_PokemonSchool_EventScript_Poison:: msgbox RustboroCity_PokemonSchool_Text_ExplainPoison, MSGBOX_DEFAULT goto RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic end -RustboroCity_PokemonSchool_EventScript_Paralysis:: @ 8213F25 +RustboroCity_PokemonSchool_EventScript_Paralysis:: msgbox RustboroCity_PokemonSchool_Text_ExplainParalysis, MSGBOX_DEFAULT goto RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic end -RustboroCity_PokemonSchool_EventScript_Sleep:: @ 8213F33 +RustboroCity_PokemonSchool_EventScript_Sleep:: msgbox RustboroCity_PokemonSchool_Text_ExplainSleep, MSGBOX_DEFAULT goto RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic end -RustboroCity_PokemonSchool_EventScript_Burn:: @ 8213F41 +RustboroCity_PokemonSchool_EventScript_Burn:: msgbox RustboroCity_PokemonSchool_Text_ExplainBurn, MSGBOX_DEFAULT goto RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic end -RustboroCity_PokemonSchool_EventScript_Freeze:: @ 8213F4F +RustboroCity_PokemonSchool_EventScript_Freeze:: msgbox RustboroCity_PokemonSchool_Text_ExplainFreeze, MSGBOX_DEFAULT goto RustboroCity_PokemonSchool_EventScript_ChooseBlackboardTopic end -RustboroCity_PokemonSchool_EventScript_ExitTopicSelect:: @ 8213F5D +RustboroCity_PokemonSchool_EventScript_ExitTopicSelect:: releaseall end -RustboroCity_PokemonSchool_EventScript_GameboyKid1:: @ 8213F5F +RustboroCity_PokemonSchool_EventScript_GameboyKid1:: msgbox RustboroCity_PokemonSchool_Text_TradingRightNow, MSGBOX_NPC end -RustboroCity_PokemonSchool_EventScript_GameboyKid2:: @ 8213F68 +RustboroCity_PokemonSchool_EventScript_GameboyKid2:: msgbox RustboroCity_PokemonSchool_Text_AlwaysWantedSeedot, MSGBOX_NPC end -RustboroCity_PokemonSchool_EventScript_RichBoy:: @ 8213F71 +RustboroCity_PokemonSchool_EventScript_RichBoy:: msgbox RustboroCity_PokemonSchool_Text_PokemontCantUseManMadeItems, MSGBOX_NPC end -RustboroCity_PokemonSchool_EventScript_Lass:: @ 8213F7A +RustboroCity_PokemonSchool_EventScript_Lass:: msgbox RustboroCity_PokemonSchool_Text_ConfusedPokemonAttacksItself, MSGBOX_NPC end -RustboroCity_PokemonSchool_EventScript_SchoolKidM:: @ 8213F83 +RustboroCity_PokemonSchool_EventScript_SchoolKidM:: msgbox RustboroCity_PokemonSchool_Text_PokemonHealItselfWithBerry, MSGBOX_NPC end -RustboroCity_PokemonSchool_EventScript_StudentNotebook:: @ 8213F8C +RustboroCity_PokemonSchool_EventScript_StudentNotebook:: msgbox RustboroCity_PokemonSchool_Text_StudentsNotes, MSGBOX_SIGN end -RustboroCity_PokemonSchool_EventScript_Teacher:: @ 8213F95 +RustboroCity_PokemonSchool_EventScript_Teacher:: lock faceplayer goto_if_set FLAG_RECEIVED_QUICK_CLAW, RustboroCity_PokemonSchool_EventScript_GaveQuickClaw @@ -93,17 +93,17 @@ RustboroCity_PokemonSchool_EventScript_Teacher:: @ 8213F95 release end -RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsEast:: @ 8213FE5 +RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsEast:: applymovement VAR_LAST_TALKED, RustboroCity_PokemonSchool_Movement_TeacherCheckOnStudentsEast waitmovement 0 return -RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsWest:: @ 8213FF0 +RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsWest:: applymovement VAR_LAST_TALKED, RustboroCity_PokemonSchool_Movement_TeacherCheckOnStudentsWest waitmovement 0 return -RustboroCity_PokemonSchool_EventScript_GaveQuickClaw:: @ 8213FFB +RustboroCity_PokemonSchool_EventScript_GaveQuickClaw:: msgbox RustboroCity_PokemonSchool_Text_ExplainQuickClaw, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestDown @@ -111,7 +111,7 @@ RustboroCity_PokemonSchool_EventScript_GaveQuickClaw:: @ 8213FFB release end -RustboroCity_PokemonSchool_Movement_TeacherCheckOnStudentsWest: @ 8214010 +RustboroCity_PokemonSchool_Movement_TeacherCheckOnStudentsWest: walk_left walk_down walk_down @@ -136,7 +136,7 @@ RustboroCity_PokemonSchool_Movement_TeacherCheckOnStudentsWest: @ 8214010 walk_right step_end -RustboroCity_PokemonSchool_Movement_TeacherCheckOnStudentsEast: @ 8214027 +RustboroCity_PokemonSchool_Movement_TeacherCheckOnStudentsEast: walk_right walk_right walk_down @@ -163,7 +163,7 @@ RustboroCity_PokemonSchool_Movement_TeacherCheckOnStudentsEast: @ 8214027 walk_left step_end -RustboroCity_PokemonSchool_EventScript_Scott:: @ 8214040 +RustboroCity_PokemonSchool_EventScript_Scott:: lock faceplayer goto_if_set FLAG_MET_SCOTT_AFTER_OBTAINING_STONE_BADGE, RustboroCity_PokemonSchool_EventScript_ScottWatchStudents @@ -175,41 +175,41 @@ RustboroCity_PokemonSchool_EventScript_Scott:: @ 8214040 release end -RustboroCity_PokemonSchool_EventScript_ScottSpokeAlready:: @ 821406F +RustboroCity_PokemonSchool_EventScript_ScottSpokeAlready:: goto_if_set FLAG_BADGE01_GET, RustboroCity_PokemonSchool_EventScript_ScottNoticeBadge msgbox RustboroCity_PokemonSchool_Text_StudentTalentLevelUnknown, MSGBOX_DEFAULT release end -RustboroCity_PokemonSchool_EventScript_ScottGreetHasBadge:: @ 8214082 +RustboroCity_PokemonSchool_EventScript_ScottGreetHasBadge:: msgbox RustboroCity_PokemonSchool_Text_ScottMetAlreadyStoneBadge, MSGBOX_DEFAULT goto RustboroCity_PokemonSchool_EventScript_MetScottAfterBadge end -RustboroCity_PokemonSchool_EventScript_ScottNoticeBadge:: @ 8214090 +RustboroCity_PokemonSchool_EventScript_ScottNoticeBadge:: msgbox RustboroCity_PokemonSchool_Text_ScottStoneBadge, MSGBOX_DEFAULT goto RustboroCity_PokemonSchool_EventScript_MetScottAfterBadge end -RustboroCity_PokemonSchool_EventScript_MetScottAfterBadge:: @ 821409E +RustboroCity_PokemonSchool_EventScript_MetScottAfterBadge:: addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_AFTER_OBTAINING_STONE_BADGE release end -RustboroCity_PokemonSchool_EventScript_ScottWatchStudents:: @ 82140A8 +RustboroCity_PokemonSchool_EventScript_ScottWatchStudents:: msgbox RustboroCity_PokemonSchool_Text_StudentTalentLevelUnknown, MSGBOX_DEFAULT release end -RustboroCity_PokemonSchool_Text_BlackboardListsStatusChanges: @ 82140B2 +RustboroCity_PokemonSchool_Text_BlackboardListsStatusChanges: .string "The blackboard lists status changes\n" .string "that may affect POKéMON in battle.$" -RustboroCity_PokemonSchool_Text_ReadWhichTopic: @ 82140F9 +RustboroCity_PokemonSchool_Text_ReadWhichTopic: .string "Which topic do you want to read?$" -RustboroCity_PokemonSchool_Text_ExplainPoison: @ 821411A +RustboroCity_PokemonSchool_Text_ExplainPoison: .string "If a POKéMON is poisoned, it will\n" .string "steadily lose HP.\p" .string "The effects of poison remain after\n" @@ -218,7 +218,7 @@ RustboroCity_PokemonSchool_Text_ExplainPoison: @ 821411A .string "while it is traveling.\p" .string "Heal a poisoning using an ANTIDOTE.$" -RustboroCity_PokemonSchool_Text_ExplainParalysis: @ 82141D8 +RustboroCity_PokemonSchool_Text_ExplainParalysis: .string "If a POKéMON becomes paralyzed,\n" .string "its SPEED drops.\p" .string "It may also not be able to move while\n" @@ -226,7 +226,7 @@ RustboroCity_PokemonSchool_Text_ExplainParalysis: @ 82141D8 .string "Paralysis remains after battle.\n" .string "Cure it using a PARLYZ HEAL.$" -RustboroCity_PokemonSchool_Text_ExplainSleep: @ 821427D +RustboroCity_PokemonSchool_Text_ExplainSleep: .string "If a POKéMON falls asleep, it will be\n" .string "unable to attack.\p" .string "A POKéMON may wake up on its own,\n" @@ -234,26 +234,26 @@ RustboroCity_PokemonSchool_Text_ExplainSleep: @ 821427D .string "sleeping, it will stay asleep.\p" .string "Wake it up using an AWAKENING.$" -RustboroCity_PokemonSchool_Text_ExplainBurn: @ 8214336 +RustboroCity_PokemonSchool_Text_ExplainBurn: .string "A burn reduces ATTACK power, and it\n" .string "steadily reduces the victim's HP.\p" .string "A burn lingers after battle.\n" .string "Cure a burn using a BURN HEAL.$" -RustboroCity_PokemonSchool_Text_ExplainFreeze: @ 82143B8 +RustboroCity_PokemonSchool_Text_ExplainFreeze: .string "If a POKéMON is frozen, it becomes\n" .string "completely helpless.\p" .string "It will remain frozen after battle.\n" .string "Thaw it out using an ICE HEAL.$" -RustboroCity_PokemonSchool_Text_StudentsWhoDontStudyGetQuickClaw: @ 8214433 +RustboroCity_PokemonSchool_Text_StudentsWhoDontStudyGetQuickClaw: .string "Students who don't study get a little\n" .string "taste of my QUICK CLAW.\p" .string "Whether or not you are a good student \n" .string "will be evident from the way you use\l" .string "this item.$" -RustboroCity_PokemonSchool_Text_ExplainQuickClaw: @ 82144C8 +RustboroCity_PokemonSchool_Text_ExplainQuickClaw: .string "A POKéMON holding the QUICK CLAW will\n" .string "occasionally speed up and get to move\l" .string "before its opponent.\p" @@ -262,20 +262,20 @@ RustboroCity_PokemonSchool_Text_ExplainQuickClaw: @ 82144C8 .string "Just those alone will give you many\n" .string "topics to study!$" -RustboroCity_PokemonSchool_Text_TradingRightNow: @ 821459F +RustboroCity_PokemonSchool_Text_TradingRightNow: .string "I'm trading POKéMON with my friend\n" .string "right now.$" -RustboroCity_PokemonSchool_Text_AlwaysWantedSeedot: @ 82145CD +RustboroCity_PokemonSchool_Text_AlwaysWantedSeedot: .string "I always wanted a SEEDOT, and\n" .string "I'm finally getting one!$" -RustboroCity_PokemonSchool_Text_PokemontCantUseManMadeItems: @ 8214604 +RustboroCity_PokemonSchool_Text_PokemontCantUseManMadeItems: .string "POKéMON can hold items, but they\n" .string "don't know what to do with man-made\l" .string "items like POTION and ANTIDOTE.$" -RustboroCity_PokemonSchool_Text_ConfusedPokemonAttacksItself: @ 8214669 +RustboroCity_PokemonSchool_Text_ConfusedPokemonAttacksItself: .string "You know how some POKéMON moves can\n" .string "confuse a POKéMON?\p" .string "A confused POKéMON will sometimes\n" @@ -283,7 +283,7 @@ RustboroCity_PokemonSchool_Text_ConfusedPokemonAttacksItself: @ 8214669 .string "But once it leaves battle, it will\n" .string "return to normal.$" -RustboroCity_PokemonSchool_Text_PokemonHealItselfWithBerry: @ 8214719 +RustboroCity_PokemonSchool_Text_PokemonHealItselfWithBerry: .string "A POKéMON holding a BERRY will heal\n" .string "itself…\p" .string "There are many kinds of items that\n" @@ -291,7 +291,7 @@ RustboroCity_PokemonSchool_Text_PokemonHealItselfWithBerry: @ 8214719 .string "Boy, it sure is hard taking notes\n" .string "down…$" -RustboroCity_PokemonSchool_Text_StudentsNotes: @ 82147A2 +RustboroCity_PokemonSchool_Text_StudentsNotes: .string "It's this student's notebook…\p" .string "POKéMON are to be caught using\n" .string "POKé BALLS.\p" @@ -304,7 +304,7 @@ RustboroCity_PokemonSchool_Text_StudentsNotes: @ 82147A2 .string "the strong TRAINERS who await\l" .string "challengers in POKéMON GYMS.$" -RustboroCity_PokemonSchool_Text_ScottMetAlreadyCut: @ 82148C0 +RustboroCity_PokemonSchool_Text_ScottMetAlreadyCut: .string "Hello? Didn't we meet before?\n" .string "I think back in PETALBURG CITY.\p" .string "Let me introduce myself.\n" @@ -320,12 +320,12 @@ RustboroCity_PokemonSchool_Text_ScottMetAlreadyCut: @ 82148C0 .string "If I remember correctly, someone in\n" .string "this town has CUT.$" -RustboroCity_PokemonSchool_Text_StudentTalentLevelUnknown: @ 8214A5F +RustboroCity_PokemonSchool_Text_StudentTalentLevelUnknown: .string "SCOTT: Hmm…\p" .string "The talent levels of the students here\n" .string "are unknown. The potential's there.$" -RustboroCity_PokemonSchool_Text_ScottStoneBadge: @ 8214AB6 +RustboroCity_PokemonSchool_Text_ScottStoneBadge: .string "SCOTT: Oh, what's that?\p" .string "It's a STONE BADGE, isn't it?\n" .string "That's pretty impressive, I'd say.\p" @@ -334,7 +334,7 @@ RustboroCity_PokemonSchool_Text_ScottStoneBadge: @ 8214AB6 .string "It's hard to tell what you're like as\n" .string "a TRAINER from a LEAGUE BADGE.$" -RustboroCity_PokemonSchool_Text_ScottMetAlreadyStoneBadge: @ 8214B8A +RustboroCity_PokemonSchool_Text_ScottMetAlreadyStoneBadge: .string "Hello? Didn't we meet before?\n" .string "I think back in PETALBURG CITY.\p" .string "Let me introduce myself.\n" diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index 17a229ab54..1ba3c240c4 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -4,27 +4,27 @@ .set LOCALID_PEEKO, 7 .equ LOCALID_WANDA, 10 -RusturfTunnel_MapScripts:: @ 822CE27 +RusturfTunnel_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, RusturfTunnel_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, RusturfTunnel_OnFrame .byte 0 -RusturfTunnel_OnFrame: @ 822CE32 +RusturfTunnel_OnFrame: map_script_2 VAR_RUSTURF_TUNNEL_STATE, 4, RusturfTunnel_EventScript_ClearTunnelScene map_script_2 VAR_RUSTURF_TUNNEL_STATE, 5, RusturfTunnel_EventScript_ClearTunnelScene .2byte 0 -RusturfTunnel_OnTransition: @ 822CE44 +RusturfTunnel_OnTransition: compare VAR_RUSTURF_TUNNEL_STATE, 2 call_if_eq RusturfTunnel_EventScript_SetAquaGruntAndPeekoPos end -RusturfTunnel_EventScript_SetAquaGruntAndPeekoPos:: @ 822CE50 +RusturfTunnel_EventScript_SetAquaGruntAndPeekoPos:: setobjectxyperm LOCALID_PEEKO, 13, 4 setobjectxyperm LOCALID_GRUNT, 13, 5 return -RusturfTunnel_EventScript_Wanda:: @ 822CE5F +RusturfTunnel_EventScript_Wanda:: lock faceplayer msgbox RusturfTunnel_Text_BoyfriendOnOtherSideOfRock, MSGBOX_DEFAULT @@ -34,7 +34,7 @@ RusturfTunnel_EventScript_Wanda:: @ 822CE5F release end -RusturfTunnel_EventScript_WandasBoyfriend:: @ 822CE76 +RusturfTunnel_EventScript_WandasBoyfriend:: lock faceplayer goto_if_set FLAG_TEMP_1, RusturfTunnel_EventScript_AlreadySpokenTo @@ -46,7 +46,7 @@ RusturfTunnel_EventScript_WandasBoyfriend:: @ 822CE76 release end -RusturfTunnel_EventScript_AlreadySpokenTo:: @ 822CE99 +RusturfTunnel_EventScript_AlreadySpokenTo:: msgbox RusturfTunnel_Text_ToGetToVerdanturf, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection @@ -54,7 +54,7 @@ RusturfTunnel_EventScript_AlreadySpokenTo:: @ 822CE99 release end -RusturfTunnel_EventScript_ClearTunnelScene:: @ 822CEAE +RusturfTunnel_EventScript_ClearTunnelScene:: lockall compare VAR_TEMP_1, 1 call_if_eq RusturfTunnel_EventScript_FaceWandasBoyfriend1 @@ -90,13 +90,13 @@ RusturfTunnel_EventScript_ClearTunnelScene:: @ 822CEAE releaseall end -RusturfTunnel_EventScript_BoyfriendApproachWanda1:: @ 822CF5D +RusturfTunnel_EventScript_BoyfriendApproachWanda1:: applymovement OBJ_EVENT_ID_PLAYER, RusturfTunnel_Movement_PlayerWatchBoyfriend1 applymovement LOCALID_WANDAS_BF, RusturfTunnel_Movement_BoyfriendApproachWanda1 waitmovement 0 return -RusturfTunnel_EventScript_BoyfriendApproachWanda2:: @ 822CF6F +RusturfTunnel_EventScript_BoyfriendApproachWanda2:: applymovement OBJ_EVENT_ID_PLAYER, RusturfTunnel_Movement_PlayerWatchBoyfriend applymovement LOCALID_WANDAS_BF, RusturfTunnel_Movement_BoyfriendApproachWanda waitmovement 0 @@ -104,7 +104,7 @@ RusturfTunnel_EventScript_BoyfriendApproachWanda2:: @ 822CF6F waitmovement 0 return -RusturfTunnel_EventScript_BoyfriendApproachWanda3:: @ 822CF8B +RusturfTunnel_EventScript_BoyfriendApproachWanda3:: applymovement OBJ_EVENT_ID_PLAYER, RusturfTunnel_Movement_PlayerWatchBoyfriend applymovement LOCALID_WANDAS_BF, RusturfTunnel_Movement_BoyfriendApproachWanda waitmovement 0 @@ -112,41 +112,41 @@ RusturfTunnel_EventScript_BoyfriendApproachWanda3:: @ 822CF8B waitmovement 0 return -RusturfTunnel_EventScript_FaceWandasBoyfriend1:: @ 822CFA7 +RusturfTunnel_EventScript_FaceWandasBoyfriend1:: applymovement LOCALID_WANDAS_BF, Common_Movement_WalkInPlaceFastestUp waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -RusturfTunnel_EventScript_FaceWandasBoyfriend2:: @ 822CFBC +RusturfTunnel_EventScript_FaceWandasBoyfriend2:: applymovement LOCALID_WANDAS_BF, RusturfTunnel_Movement_BoyfriendFaceRight waitmovement 0 return -RusturfTunnel_EventScript_FaceWandasBoyfriend3:: @ 822CFC7 +RusturfTunnel_EventScript_FaceWandasBoyfriend3:: return -RusturfTunnel_EventScript_WandasBoyfriendApproachPlayer:: @ 822CFC8 +RusturfTunnel_EventScript_WandasBoyfriendApproachPlayer:: closemessage applymovement LOCALID_WANDAS_BF, RusturfTunnel_Movement_WandasBoyfriendApproachPlayer waitmovement 0 return -RusturfTunnel_EventScript_WandaAndBoyfriendExit1:: @ 822CFD4 +RusturfTunnel_EventScript_WandaAndBoyfriendExit1:: applymovement LOCALID_WANDA, RusturfTunnel_Movement_WandaExit1 applymovement LOCALID_WANDAS_BF, RusturfTunnel_Movement_WandasBoyfriendExit1 waitmovement 0 return -RusturfTunnel_EventScript_WandaAndBoyfriendExit:: @ 822CFE6 +RusturfTunnel_EventScript_WandaAndBoyfriendExit:: applymovement OBJ_EVENT_ID_PLAYER, RusturfTunnel_Movement_PlayerWatchWandaExit applymovement LOCALID_WANDA, RusturfTunnel_Movement_WandaExit applymovement LOCALID_WANDAS_BF, RusturfTunnel_Movement_WandasBoyfriendExit waitmovement 0 return -RusturfTunnel_EventScript_WandasBoyfriendNotice:: @ 822CFFF +RusturfTunnel_EventScript_WandasBoyfriendNotice:: playse SE_PIN applymovement LOCALID_WANDAS_BF, Common_Movement_ExclamationMark waitmovement 0 @@ -154,7 +154,7 @@ RusturfTunnel_EventScript_WandasBoyfriendNotice:: @ 822CFFF waitmovement 0 return -RusturfTunnel_Movement_WandaExit1: @ 822D017 +RusturfTunnel_Movement_WandaExit1: walk_right walk_right walk_right @@ -168,7 +168,7 @@ RusturfTunnel_Movement_WandaExit1: @ 822D017 walk_down step_end -RusturfTunnel_Movement_WandaExit: @ 822D023 +RusturfTunnel_Movement_WandaExit: walk_right walk_right walk_right @@ -182,7 +182,7 @@ RusturfTunnel_Movement_WandaExit: @ 822D023 walk_down step_end -RusturfTunnel_Movement_PlayerWatchWandaExit: @ 822D02F +RusturfTunnel_Movement_PlayerWatchWandaExit: delay_8 walk_in_place_fastest_up delay_16 @@ -190,41 +190,41 @@ RusturfTunnel_Movement_PlayerWatchWandaExit: @ 822D02F walk_in_place_fastest_right step_end -RusturfTunnel_Movement_Unused1: @ 822D035 +RusturfTunnel_Movement_Unused1: walk_left walk_in_place_fastest_right step_end -RusturfTunnel_Movement_Unused2: @ 822D038 +RusturfTunnel_Movement_Unused2: walk_down walk_in_place_fastest_up delay_8 walk_in_place_fastest_right step_end -RusturfTunnel_Movement_Unused3: @ 822D03D +RusturfTunnel_Movement_Unused3: walk_up walk_in_place_fastest_down delay_8 walk_in_place_fastest_right step_end -RusturfTunnel_Movement_PlayerWatchBoyfriend1: @ 822D042 +RusturfTunnel_Movement_PlayerWatchBoyfriend1: walk_left walk_in_place_fastest_right step_end -RusturfTunnel_Movement_PlayerWatchBoyfriend: @ 822D045 +RusturfTunnel_Movement_PlayerWatchBoyfriend: walk_right walk_in_place_fastest_left step_end -RusturfTunnel_Movement_BoyfriendFaceRight: @ 822D048 +RusturfTunnel_Movement_BoyfriendFaceRight: walk_up walk_in_place_fastest_right step_end -RusturfTunnel_Movement_WandasBoyfriendExit1: @ 822D04B +RusturfTunnel_Movement_WandasBoyfriendExit1: walk_right walk_right walk_right @@ -239,7 +239,7 @@ RusturfTunnel_Movement_WandasBoyfriendExit1: @ 822D04B walk_down step_end -RusturfTunnel_Movement_WandasBoyfriendExit: @ 822D058 +RusturfTunnel_Movement_WandasBoyfriendExit: walk_up walk_right walk_right @@ -254,37 +254,37 @@ RusturfTunnel_Movement_WandasBoyfriendExit: @ 822D058 walk_down step_end -RusturfTunnel_Movement_WandasBoyfriendApproachPlayer: @ 822D065 +RusturfTunnel_Movement_WandasBoyfriendApproachPlayer: walk_right step_end -RusturfTunnel_Movement_BoyfriendApproachWanda1: @ 822D067 +RusturfTunnel_Movement_BoyfriendApproachWanda1: walk_in_place_fast_up walk_in_place_fast_up walk_fast_up walk_fast_right step_end -RusturfTunnel_Movement_BoyfriendApproachWanda: @ 822D06C +RusturfTunnel_Movement_BoyfriendApproachWanda: walk_in_place_fast_right walk_in_place_fast_right walk_fast_right walk_in_place_fastest_up step_end -RusturfTunnel_EventScript_TunnelBlockagePos1:: @ 822D071 +RusturfTunnel_EventScript_TunnelBlockagePos1:: setvar VAR_TEMP_1, 1 end -RusturfTunnel_EventScript_TunnelBlockagePos2:: @ 822D077 +RusturfTunnel_EventScript_TunnelBlockagePos2:: setvar VAR_TEMP_1, 2 end -RusturfTunnel_EventScript_TunnelBlockagePos3:: @ 822D07D +RusturfTunnel_EventScript_TunnelBlockagePos3:: setvar VAR_TEMP_1, 3 end -RusturfTunnel_EventScript_AquaGruntBackUp:: @ 822D083 +RusturfTunnel_EventScript_AquaGruntBackUp:: lockall msgbox RusturfTunnel_Text_ComeAndGetSome, MSGBOX_DEFAULT closemessage @@ -297,13 +297,13 @@ RusturfTunnel_EventScript_AquaGruntBackUp:: @ 822D083 releaseall end -RusturfTunnel_Movement_GruntAndPeekoBackUp: @ 822D0AB +RusturfTunnel_Movement_GruntAndPeekoBackUp: lock_facing_direction walk_right unlock_facing_direction step_end -RusturfTunnel_EventScript_Peeko:: @ 822D0AF +RusturfTunnel_EventScript_Peeko:: lock faceplayer waitse @@ -313,10 +313,10 @@ RusturfTunnel_EventScript_Peeko:: @ 822D0AF release end -RusturfTunnel_EventScript_Grunt:: @ 822D0C2 +RusturfTunnel_EventScript_Grunt:: lock faceplayer - playbgm MUS_ENCOUNTER_AQUA, 0 + playbgm MUS_ENCOUNTER_AQUA, FALSE msgbox RusturfTunnel_Text_GruntIntro, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GRUNT_RUSTURF_TUNNEL, RusturfTunnel_Text_GruntDefeat msgbox RusturfTunnel_Text_GruntTakePackage, MSGBOX_DEFAULT @@ -357,7 +357,7 @@ RusturfTunnel_EventScript_Grunt:: @ 822D0C2 release end -RusturfTunnel_Movement_PushPlayerAsideForGrunt: @ 822D178 +RusturfTunnel_Movement_PushPlayerAsideForGrunt: face_down lock_facing_direction walk_up @@ -365,12 +365,12 @@ RusturfTunnel_Movement_PushPlayerAsideForGrunt: @ 822D178 walk_in_place_fastest_left step_end -RusturfTunnel_Movement_PlayerMoveAsideForBriney: @ 822D17E +RusturfTunnel_Movement_PlayerMoveAsideForBriney: walk_down walk_in_place_fastest_up step_end -RusturfTunnel_Movement_GruntEscape: @ 822D181 +RusturfTunnel_Movement_GruntEscape: walk_fast_left walk_fast_left walk_fast_left @@ -382,7 +382,7 @@ RusturfTunnel_Movement_GruntEscape: @ 822D181 walk_fast_left step_end -RusturfTunnel_Movement_BrineyApproachPeeko1: @ 822D18B +RusturfTunnel_Movement_BrineyApproachPeeko1: walk_right walk_right walk_right @@ -392,7 +392,7 @@ RusturfTunnel_Movement_BrineyApproachPeeko1: @ 822D18B walk_right step_end -RusturfTunnel_Movement_BrineyExit: @ 822D193 +RusturfTunnel_Movement_BrineyExit: walk_left walk_left walk_left @@ -406,19 +406,19 @@ RusturfTunnel_Movement_BrineyExit: @ 822D193 walk_left step_end -RusturfTunnel_Movement_PlayerWatchBrineyExit: @ 822D19F +RusturfTunnel_Movement_PlayerWatchBrineyExit: delay_16 delay_8 delay_4 walk_in_place_fastest_left step_end -RusturfTunnel_Movement_BrineyApproachPeeko2: @ 822D1A4 +RusturfTunnel_Movement_BrineyApproachPeeko2: delay_16 walk_right step_end -RusturfTunnel_Movement_PeekoExit: @ 822D1A7 +RusturfTunnel_Movement_PeekoExit: walk_left walk_left walk_left @@ -430,19 +430,19 @@ RusturfTunnel_Movement_PeekoExit: @ 822D1A7 walk_left step_end -RusturfTunnel_EventScript_Mike:: @ 822D1B1 +RusturfTunnel_EventScript_Mike:: trainerbattle_single TRAINER_MIKE_2, RusturfTunnel_Text_MikeIntro, RusturfTunnel_Text_MikeDefeat msgbox RusturfTunnel_Text_MikePostBattle, MSGBOX_AUTOCLOSE end -RusturfTunnel_Text_ComeAndGetSome: @ 822D1C8 +RusturfTunnel_Text_ComeAndGetSome: .string "What, are you coming?\n" .string "Come and get some, then!$" -RusturfTunnel_Text_Peeko: @ 822D1F7 +RusturfTunnel_Text_Peeko: .string "PEEKO: Pii pihyoh!$" -RusturfTunnel_Text_GruntIntro: @ 822D20A +RusturfTunnel_Text_GruntIntro: .string "Grah, keelhaul it all!\p" .string "That hostage POKéMON turned out to\n" .string "be worthless!\p" @@ -451,11 +451,11 @@ RusturfTunnel_Text_GruntIntro: @ 822D20A .string "Hey! You!\n" .string "So you want to battle me?$" -RusturfTunnel_Text_GruntDefeat: @ 822D2B0 +RusturfTunnel_Text_GruntDefeat: .string "Urrrggh! My career in crime comes to\n" .string "a dead end!$" -RusturfTunnel_Text_GruntTakePackage: @ 822D2E1 +RusturfTunnel_Text_GruntTakePackage: .string "This is plain not right…\p" .string "The BOSS told me this would be a\n" .string "slick-and-easy job to pull.\p" @@ -464,11 +464,11 @@ RusturfTunnel_Text_GruntTakePackage: @ 822D2E1 .string "Tch!\n" .string "You want it back that badly, take it!$" -RusturfTunnel_Text_PeekoGladToSeeYouSafe: @ 822D395 +RusturfTunnel_Text_PeekoGladToSeeYouSafe: .string "PEEKO!\n" .string "Am I glad to see you're safe!$" -RusturfTunnel_Text_ThankYouLetsGoHomePeeko: @ 822D3BA +RusturfTunnel_Text_ThankYouLetsGoHomePeeko: .string "PEEKO owes her life to you!\p" .string "They call me MR. BRINEY.\n" .string "And, you are?\p" @@ -484,7 +484,7 @@ RusturfTunnel_Text_ThankYouLetsGoHomePeeko: @ 822D3BA .string "home.\p" .string "PEEKO: Pihyoh!$" -RusturfTunnel_Text_WhyCantTheyKeepDigging: @ 822D510 +RusturfTunnel_Text_WhyCantTheyKeepDigging: .string "… …\p" .string "Why can't they keep digging?\n" .string "Is the bedrock too hard?\p" @@ -496,30 +496,30 @@ RusturfTunnel_Text_WhyCantTheyKeepDigging: @ 822D510 .string "But this…\n" .string "What am I to do?$" -RusturfTunnel_Text_ToGetToVerdanturf: @ 822D5F3 +RusturfTunnel_Text_ToGetToVerdanturf: .string "To get from RUSTBORO to VERDANTURF,\n" .string "you need to go to DEWFORD, then pass\l" .string "through SLATEPORT and MAUVILLE…$" -RusturfTunnel_Text_YouShatteredBoulderTakeHM: @ 822D65C +RusturfTunnel_Text_YouShatteredBoulderTakeHM: .string "Wow! You shattered that boulder\n" .string "blocking the way.\p" .string "To show you how much I appreciate it,\n" .string "I'd like you to have this HM.$" -RusturfTunnel_Text_ExplainStrength: @ 822D6D2 +RusturfTunnel_Text_ExplainStrength: .string "That HM contains STRENGTH.\p" .string "If a muscular POKéMON were to learn\n" .string "that, it would be able to move even\l" .string "large boulders.$" -RusturfTunnel_Text_WandaReunion: @ 822D745 +RusturfTunnel_Text_WandaReunion: .string "WANDA!\n" .string "Now I can see you anytime!\p" .string "WANDA: That's…wonderful.\p" .string "Please, take some rest at my home.$" -RusturfTunnel_Text_BoyfriendOnOtherSideOfRock: @ 822D7A3 +RusturfTunnel_Text_BoyfriendOnOtherSideOfRock: .string "On the other side of this rock…\n" .string "My boyfriend is there.\p" .string "He… He's not just digging the tunnel\n" @@ -527,17 +527,17 @@ RusturfTunnel_Text_BoyfriendOnOtherSideOfRock: @ 822D7A3 .string "He works his hands raw and rough\n" .string "for the benefit of everyone.$" -RusturfTunnel_Text_MikeIntro: @ 822D84D +RusturfTunnel_Text_MikeIntro: .string "What do you call a wild man up in the\n" .string "mountains? A mountain man, right?\p" .string "So why don't they call a POKéMON in\n" .string "the mountains a mountain POKéMON?$" -RusturfTunnel_Text_MikeDefeat: @ 822D8DB +RusturfTunnel_Text_MikeDefeat: .string "My POKéMON…\n" .string "Ran out of power…$" -RusturfTunnel_Text_MikePostBattle: @ 822D8F9 +RusturfTunnel_Text_MikePostBattle: .string "They halted development here to\n" .string "protect POKéMON, right?\l" .string "There's a feel-good story!$" diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index b6fa7428e0..07c397e8c8 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -1,11 +1,11 @@ .set LOCALID_SAILOR, 1 .set LOCALID_SCOTT, 5 -SSTidalCorridor_MapScripts:: @ 823BFCF +SSTidalCorridor_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, SSTidalCorridor_OnFrame .byte 0 -SSTidalCorridor_OnFrame: @ 823BFD5 +SSTidalCorridor_OnFrame: map_script_2 VAR_SS_TIDAL_SCOTT_STATE, 0, SSTidalCorridor_EventScript_ScottScene map_script_2 VAR_SS_TIDAL_STATE, SS_TIDAL_BOARD_SLATEPORT, SSTidalCorridor_EventScript_DepartSlateportForLilycove map_script_2 VAR_SS_TIDAL_STATE, SS_TIDAL_BOARD_LILYCOVE, SSTidalCorridor_EventScript_DepartLilycoveForSlateport @@ -13,7 +13,7 @@ SSTidalCorridor_OnFrame: @ 823BFD5 map_script_2 VAR_SS_TIDAL_STATE, SS_TIDAL_EXIT_CURRENTS_LEFT, SSTidalCorridor_EventScript_ArrivedInSlateport .2byte 0 -SSTidalCorridor_EventScript_DepartSlateportForLilycove:: @ 823BFFF +SSTidalCorridor_EventScript_DepartSlateportForLilycove:: special SetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT lockall @@ -22,7 +22,7 @@ SSTidalCorridor_EventScript_DepartSlateportForLilycove:: @ 823BFFF releaseall end -SSTidalCorridor_EventScript_DepartLilycoveForSlateport:: @ 823C015 +SSTidalCorridor_EventScript_DepartLilycoveForSlateport:: setvar VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_LILYCOVE lockall playse SE_DING_DONG @@ -30,28 +30,28 @@ SSTidalCorridor_EventScript_DepartLilycoveForSlateport:: @ 823C015 releaseall end -SSTidalRooms_EventScript_HalfwayToSlateport:: @ 823C028 +SSTidalRooms_EventScript_HalfwayToSlateport:: special SetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_SLATEPORT playse SE_DING_DONG msgbox SSTidal_Text_FastCurrentsHopeYouEnjoyVoyage, MSGBOX_DEFAULT return -SSTidalRooms_EventScript_ArrivedInLilycove:: @ 823C03C +SSTidalRooms_EventScript_ArrivedInLilycove:: special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_LILYCOVE playse SE_DING_DONG msgbox SSTidal_Text_MadeLandInLilycove, MSGBOX_DEFAULT return -SSTidalCorridor_EventScript_ReachedStepCount:: @ 823C050 +SSTidalCorridor_EventScript_ReachedStepCount:: compare VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT goto_if_eq SSTidalCorridor_EventScript_HalfwayToLilycove compare VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_SLATEPORT goto_if_eq SSTidalCorridor_EventScript_ArrivedInSlateport end -SSTidalCorridor_EventScript_HalfwayToLilycove:: @ 823C067 +SSTidalCorridor_EventScript_HalfwayToLilycove:: special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_LILYCOVE lockall @@ -60,7 +60,7 @@ SSTidalCorridor_EventScript_HalfwayToLilycove:: @ 823C067 releaseall end -SSTidalCorridor_EventScript_ArrivedInSlateport:: @ 823C07D +SSTidalCorridor_EventScript_ArrivedInSlateport:: special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_SLATEPORT lockall @@ -69,14 +69,14 @@ SSTidalCorridor_EventScript_ArrivedInSlateport:: @ 823C07D releaseall end -SSTidalRooms_EventScript_ArrivedInSlateport:: @ 823C093 +SSTidalRooms_EventScript_ArrivedInSlateport:: special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_SLATEPORT playse SE_DING_DONG msgbox SSTidal_Text_MadeLandInSlateport, MSGBOX_DEFAULT return -SSTidalRooms_EventScript_ProgessCruiseAfterBed:: @ 823C0A7 +SSTidalRooms_EventScript_ProgessCruiseAfterBed:: switch VAR_SS_TIDAL_STATE case SS_TIDAL_DEPART_SLATEPORT, SSTidalRooms_EventScript_ArrivedInLilycove case SS_TIDAL_HALFWAY_LILYCOVE, SSTidalRooms_EventScript_ArrivedInLilycove @@ -84,11 +84,11 @@ SSTidalRooms_EventScript_ProgessCruiseAfterBed:: @ 823C0A7 case SS_TIDAL_HALFWAY_SLATEPORT, SSTidalRooms_EventScript_ArrivedInSlateport return -SSTidalCorridor_EventScript_Briney:: @ 823C0D9 +SSTidalCorridor_EventScript_Briney:: msgbox SSTidalCorridor_Text_BrineyWelcomeAboard, MSGBOX_NPC end -SSTidalCorridor_EventScript_Peeko:: @ 823C0E2 +SSTidalCorridor_EventScript_Peeko:: lock faceplayer waitse @@ -98,23 +98,23 @@ SSTidalCorridor_EventScript_Peeko:: @ 823C0E2 release end -SSTidalCorridor_EventScript_Cabin1Sign:: @ 823C0F5 +SSTidalCorridor_EventScript_Cabin1Sign:: msgbox SSTidalCorridor_Text_Cabin1, MSGBOX_SIGN end -SSTidalCorridor_EventScript_Cabin2Sign:: @ 823C0FE +SSTidalCorridor_EventScript_Cabin2Sign:: msgbox SSTidalCorridor_Text_Cabin2, MSGBOX_SIGN end -SSTidalCorridor_EventScript_Cabin3Sign:: @ 823C107 +SSTidalCorridor_EventScript_Cabin3Sign:: msgbox SSTidalCorridor_Text_Cabin3, MSGBOX_SIGN end -SSTidalCorridor_EventScript_Cabin4Sign:: @ 823C110 +SSTidalCorridor_EventScript_Cabin4Sign:: msgbox SSTidalCorridor_Text_Cabin4, MSGBOX_SIGN end -SSTidalCorridor_EventScript_ExitSailor:: @ 823C119 +SSTidalCorridor_EventScript_ExitSailor:: lock faceplayer compare VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_LILYCOVE @@ -125,7 +125,7 @@ SSTidalCorridor_EventScript_ExitSailor:: @ 823C119 release end -SSTidalCorridor_EventScript_ExitLilycove:: @ 823C13B +SSTidalCorridor_EventScript_ExitLilycove:: setrespawn HEAL_LOCATION_LILYCOVE_CITY msgbox SSTidalCorridor_Text_WeveArrived, MSGBOX_DEFAULT call_if_set FLAG_RECEIVED_TM49, SSTidalCorridor_EventScript_HideSnatchGiver @@ -134,7 +134,7 @@ SSTidalCorridor_EventScript_ExitLilycove:: @ 823C13B release end -SSTidalCorridor_EventScript_ExitSlateport:: @ 823C15A +SSTidalCorridor_EventScript_ExitSlateport:: setrespawn HEAL_LOCATION_SLATEPORT_CITY msgbox SSTidalCorridor_Text_WeveArrived, MSGBOX_DEFAULT call_if_set FLAG_RECEIVED_TM49, SSTidalCorridor_EventScript_HideSnatchGiver @@ -143,11 +143,11 @@ SSTidalCorridor_EventScript_ExitSlateport:: @ 823C15A release end -SSTidalCorridor_EventScript_HideSnatchGiver:: @ 823C179 +SSTidalCorridor_EventScript_HideSnatchGiver:: setflag FLAG_HIDE_SS_TIDAL_ROOMS_SNATCH_GIVER return -SSTidalCorridor_EventScript_Porthole:: @ 823C17D +SSTidalCorridor_EventScript_Porthole:: lockall compare VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT goto_if_eq SSTidalCorridor_EventScript_LookThroughPorthole @@ -157,12 +157,12 @@ SSTidalCorridor_EventScript_Porthole:: @ 823C17D releaseall end -SSTidalCorridor_EventScript_LookThroughPorthole:: @ 823C19E +SSTidalCorridor_EventScript_LookThroughPorthole:: special LookThroughPorthole waitstate end -SSTidalCorridor_EventScript_Sailor:: @ 823C1A3 +SSTidalCorridor_EventScript_Sailor:: lock faceplayer goto_if_set FLAG_DEFEATED_SS_TIDAL_TRAINERS, SSTidalCorridor_EventScript_EnjoyYourCruise @@ -171,12 +171,12 @@ SSTidalCorridor_EventScript_Sailor:: @ 823C1A3 release end -SSTidalCorridor_EventScript_EnjoyYourCruise:: @ 823C1BD +SSTidalCorridor_EventScript_EnjoyYourCruise:: msgbox SSTidalCorridor_Text_EnjoyYourCruise, MSGBOX_DEFAULT release end -SSTidalCorridor_EventScript_CheckIfTrainersDefeated:: @ 823C1C7 +SSTidalCorridor_EventScript_CheckIfTrainersDefeated:: goto_if_not_defeated TRAINER_PHILLIP, SSTidalCorridor_EventScript_TrainerNotDefeated goto_if_not_defeated TRAINER_LEONARD, SSTidalCorridor_EventScript_TrainerNotDefeated goto_if_not_defeated TRAINER_COLTON, SSTidalCorridor_EventScript_TrainerNotDefeated @@ -189,10 +189,10 @@ SSTidalCorridor_EventScript_CheckIfTrainersDefeated:: @ 823C1C7 goto SSTidalCorridor_EventScript_EnjoyYourCruise return -SSTidalCorridor_EventScript_TrainerNotDefeated:: @ 823C218 +SSTidalCorridor_EventScript_TrainerNotDefeated:: return -SSTidalCorridor_EventScript_ScottScene:: @ 823C219 +SSTidalCorridor_EventScript_ScottScene:: lockall applymovement LOCALID_SCOTT, SSTidalCorridor_Movement_ScottApproachPlayer waitmovement 0 @@ -215,7 +215,7 @@ SSTidalCorridor_EventScript_ScottScene:: @ 823C219 releaseall end -SSTidalCorridor_Movement_ScottApproachPlayer: @ 823C26D +SSTidalCorridor_Movement_ScottApproachPlayer: walk_left walk_left walk_left @@ -225,7 +225,7 @@ SSTidalCorridor_Movement_ScottApproachPlayer: @ 823C26D walk_left step_end -SSTidalCorridor_Movement_ScottExit: @ 823C275 +SSTidalCorridor_Movement_ScottExit: walk_in_place_fastest_down delay_16 delay_16 @@ -235,7 +235,7 @@ SSTidalCorridor_Movement_ScottExit: @ 823C275 walk_left step_end -SSTidalCorridor_Movement_PlayerWatchScottExit: @ 823C27D +SSTidalCorridor_Movement_PlayerWatchScottExit: delay_16 delay_16 delay_16 @@ -244,7 +244,7 @@ SSTidalCorridor_Movement_PlayerWatchScottExit: @ 823C27D walk_in_place_fastest_down step_end -SSTidalCorridor_Movement_SailorMoveForScott: @ 823C284 +SSTidalCorridor_Movement_SailorMoveForScott: delay_16 walk_right walk_right @@ -253,13 +253,13 @@ SSTidalCorridor_Movement_SailorMoveForScott: @ 823C284 walk_in_place_fastest_left step_end -SSTidalCorridor_Movement_SailorReturn: @ 823C28B +SSTidalCorridor_Movement_SailorReturn: walk_left walk_left walk_in_place_fastest_up step_end -SSTidalCorridor_Text_ScottBattleFrontierInvite: @ 823C28F +SSTidalCorridor_Text_ScottBattleFrontierInvite: .string "SCOTT: Well, hi, hi!\n" .string "{PLAYER}{KUN}, {PLAYER}{KUN}!\p" .string "Something's come up, so I have to\n" @@ -279,25 +279,25 @@ SSTidalCorridor_Text_ScottBattleFrontierInvite: @ 823C28F .string "Okay, {PLAYER}{KUN}, I'll be waiting for you\n" .string "at the BATTLE FRONTIER!$" -SSTidal_Text_FastCurrentsHopeYouEnjoyVoyage: @ 823C462 +SSTidal_Text_FastCurrentsHopeYouEnjoyVoyage: .string "This ferry is built to plow through\n" .string "fast-running currents.\p" .string "We hope you enjoy your voyage with us.\n" .string "Feel free to explore the ship.$" -SSTidal_Text_HopeYouEnjoyVoyage: @ 823C4E3 +SSTidal_Text_HopeYouEnjoyVoyage: .string "We hope you enjoy your voyage on\n" .string "our ferry.$" -SSTidal_Text_MadeLandInSlateport: @ 823C50F +SSTidal_Text_MadeLandInSlateport: .string "We have made land in SLATEPORT CITY.\n" .string "Thank you for sailing with us.$" -SSTidal_Text_MadeLandInLilycove: @ 823C553 +SSTidal_Text_MadeLandInLilycove: .string "We have made land in LILYCOVE CITY.\n" .string "Thank you for sailing with us.$" -SSTidalCorridor_Text_CanRestInCabin2: @ 823C596 +SSTidalCorridor_Text_CanRestInCabin2: .string "It'll be some time before we make land,\n" .string "I reckon.\p" .string "You can rest up in your cabin if you'd\n" @@ -305,22 +305,22 @@ SSTidalCorridor_Text_CanRestInCabin2: @ 823C596 .string "The bed in there is soft and plushy.\n" .string "I can attest to how comfy it is!$" -SSTidalCorridor_Text_WeveArrived: @ 823C64F +SSTidalCorridor_Text_WeveArrived: .string "We've arrived!$" -SSTidalCorridor_Text_VisitOtherCabins: @ 823C65E +SSTidalCorridor_Text_VisitOtherCabins: .string "Go visit other cabins.\n" .string "TRAINERS bored of the boat trip will\l" .string "be itching to battle.$" -SSTidalCorridor_Text_EnjoyYourCruise: @ 823C6B0 +SSTidalCorridor_Text_EnjoyYourCruise: .string "Enjoy your cruise!$" -SSTidalCorridor_Text_HorizonSpreadsBeyondPorthole: @ 823C6C3 +SSTidalCorridor_Text_HorizonSpreadsBeyondPorthole: .string "The horizon spreads beyond\n" .string "the porthole.$" -SSTidalCorridor_Text_BrineyWelcomeAboard: @ 823C6EC +SSTidalCorridor_Text_BrineyWelcomeAboard: .string "MR. BRINEY: Welcome aboard, {PLAYER}{KUN}!\p" .string "They made me honorary captain of\n" .string "the S.S. TIDAL!\p" @@ -330,17 +330,17 @@ SSTidalCorridor_Text_BrineyWelcomeAboard: @ 823C6EC .string "Let me just say, it stirred my sleeping\n" .string "soul as a sailor!$" -SSTidalCorridor_Text_Peeko: @ 823C7E1 +SSTidalCorridor_Text_Peeko: .string "PEEKO: Pihyo pihyohyo…$" -SSTidalCorridor_Text_Cabin1: @ 823C7F8 +SSTidalCorridor_Text_Cabin1: .string "Cabin 1$" -SSTidalCorridor_Text_Cabin2: @ 823C800 +SSTidalCorridor_Text_Cabin2: .string "Cabin 2$" -SSTidalCorridor_Text_Cabin3: @ 823C808 +SSTidalCorridor_Text_Cabin3: .string "Cabin 3$" -SSTidalCorridor_Text_Cabin4: @ 823C810 +SSTidalCorridor_Text_Cabin4: .string "Cabin 4$" diff --git a/data/maps/SSTidalLowerDeck/scripts.inc b/data/maps/SSTidalLowerDeck/scripts.inc index c90366c23a..7f1d92c9eb 100644 --- a/data/maps/SSTidalLowerDeck/scripts.inc +++ b/data/maps/SSTidalLowerDeck/scripts.inc @@ -1,38 +1,38 @@ -SSTidalLowerDeck_MapScripts:: @ 823C818 +SSTidalLowerDeck_MapScripts:: .byte 0 -SSTidalLowerDeck_EventScript_Phillip:: @ 823C819 +SSTidalLowerDeck_EventScript_Phillip:: trainerbattle_single TRAINER_PHILLIP, SSTidalLowerDeck_Text_PhillipIntro, SSTidalLowerDeck_Text_PhillipDefeat msgbox SSTidalLowerDeck_Text_PhillipPostBattle, MSGBOX_AUTOCLOSE end -SSTidalLowerDeck_EventScript_Leonard:: @ 823C830 +SSTidalLowerDeck_EventScript_Leonard:: trainerbattle_single TRAINER_LEONARD, SSTidalLowerDeck_Text_LeonardIntro, SSTidalLowerDeck_Text_LeonardDefeat msgbox SSTidalLowerDeck_Text_LeonardPostBattle, MSGBOX_AUTOCLOSE end -SSTidalLowerDeck_Text_PhillipIntro: @ 823C847 +SSTidalLowerDeck_Text_PhillipIntro: .string "Arrrgh! I'm fed up and dog-tired of\n" .string "cleaning this huge place!\p" .string "Let's have a quick battle!$" -SSTidalLowerDeck_Text_PhillipDefeat: @ 823C8A0 +SSTidalLowerDeck_Text_PhillipDefeat: .string "Little bro, I lost!$" -SSTidalLowerDeck_Text_PhillipPostBattle: @ 823C8B4 +SSTidalLowerDeck_Text_PhillipPostBattle: .string "We're the CLEANUP BROTHERS!\p" .string "The old one dumps the detergent,\n" .string "and the young one does the scrubbing!$" -SSTidalLowerDeck_Text_LeonardIntro: @ 823C917 +SSTidalLowerDeck_Text_LeonardIntro: .string "This is the bottom of the ship's hull.\n" .string "There's plenty of room.\l" .string "It'll be alright for a POKéMON battle.$" -SSTidalLowerDeck_Text_LeonardDefeat: @ 823C97D +SSTidalLowerDeck_Text_LeonardDefeat: .string "Big bro, I lost!$" -SSTidalLowerDeck_Text_LeonardPostBattle: @ 823C98E +SSTidalLowerDeck_Text_LeonardPostBattle: .string "We're the CLEANUP BROTHERS!\p" .string "The old one dumps the detergent,\n" .string "and the young one does the scrubbing!$" diff --git a/data/maps/SSTidalRooms/scripts.inc b/data/maps/SSTidalRooms/scripts.inc index 1cf464d0de..c5cade489e 100644 --- a/data/maps/SSTidalRooms/scripts.inc +++ b/data/maps/SSTidalRooms/scripts.inc @@ -1,7 +1,7 @@ -SSTidalRooms_MapScripts:: @ 823C9F1 +SSTidalRooms_MapScripts:: .byte 0 -SSTidalRooms_EventScript_SnatchGiver:: @ 823C9F2 +SSTidalRooms_EventScript_SnatchGiver:: lock faceplayer goto_if_set FLAG_RECEIVED_TM49, SSTidalRooms_EventScript_ExplainSnatch @@ -14,12 +14,12 @@ SSTidalRooms_EventScript_SnatchGiver:: @ 823C9F2 release end -SSTidalRooms_EventScript_ExplainSnatch:: @ 823CA29 +SSTidalRooms_EventScript_ExplainSnatch:: msgbox SSTidalRooms_Text_ExplainSnatch, MSGBOX_DEFAULT release end -SSTidalRooms_EventScript_Bed:: @ 823CA33 +SSTidalRooms_EventScript_Bed:: lockall msgbox SSTidalRooms_Text_TakeRestOnBed, MSGBOX_DEFAULT closemessage @@ -28,148 +28,148 @@ SSTidalRooms_EventScript_Bed:: @ 823CA33 releaseall end -SSTidalRooms_EventScript_Colton:: @ 823CA49 +SSTidalRooms_EventScript_Colton:: trainerbattle_single TRAINER_COLTON, SSTidalRooms_Text_ColtonIntro, SSTidalRooms_Text_ColtonDefeat msgbox SSTidalRooms_Text_ColtonPostBattle, MSGBOX_AUTOCLOSE end -SSTidalRooms_EventScript_Micah:: @ 823CA60 +SSTidalRooms_EventScript_Micah:: trainerbattle_single TRAINER_MICAH, SSTidalRooms_Text_MicahIntro, SSTidalRooms_Text_MicahDefeat msgbox SSTidalRooms_Text_MicahPostBattle, MSGBOX_AUTOCLOSE end -SSTidalRooms_EventScript_Thomas:: @ 823CA77 +SSTidalRooms_EventScript_Thomas:: trainerbattle_single TRAINER_THOMAS, SSTidalRooms_Text_ThomasIntro, SSTidalRooms_Text_ThomasDefeat msgbox SSTidalRooms_Text_ThomasPostBattle, MSGBOX_AUTOCLOSE end -SSTidalRooms_EventScript_Jed:: @ 823CA8E +SSTidalRooms_EventScript_Jed:: trainerbattle_double TRAINER_LEA_AND_JED, SSTidalRooms_Text_JedIntro, SSTidalRooms_Text_JedDefeat, SSTidalRooms_Text_JedNotEnoughMons msgbox SSTidalRooms_Text_JedPostBattle, MSGBOX_AUTOCLOSE end -SSTidalRooms_EventScript_Lea:: @ 823CAA9 +SSTidalRooms_EventScript_Lea:: trainerbattle_double TRAINER_LEA_AND_JED, SSTidalRooms_Text_LeaIntro, SSTidalRooms_Text_LeaDefeat, SSTidalRooms_Text_LeaNotEnoughMons msgbox SSTidalRooms_Text_LeaPostBattle, MSGBOX_AUTOCLOSE end -SSTidalRooms_EventScript_Garret:: @ 823CAC4 +SSTidalRooms_EventScript_Garret:: trainerbattle_single TRAINER_GARRET, SSTidalRooms_Text_GarretIntro, SSTidalRooms_Text_GarretDefeat msgbox SSTidalRooms_Text_GarretPostBattle, MSGBOX_AUTOCLOSE end -SSTidalRooms_EventScript_Naomi:: @ 823CADB +SSTidalRooms_EventScript_Naomi:: trainerbattle_single TRAINER_NAOMI, SSTidalRooms_Text_NaomiIntro, SSTidalRooms_Text_NaomiDefeat msgbox SSTidalRooms_Text_NaomiPostBattle, MSGBOX_AUTOCLOSE end -SSTidalRooms_Text_TakeRestOnBed: @ 823CAF2 +SSTidalRooms_Text_TakeRestOnBed: .string "There's a bed…\n" .string "Let's take a rest.$" -SSTidalRooms_Text_ColtonIntro: @ 823CB14 +SSTidalRooms_Text_ColtonIntro: .string "I often sail to LILYCOVE CITY.\p" .string "I enjoy attending CONTESTS,\n" .string "you see.$" -SSTidalRooms_Text_ColtonDefeat: @ 823CB58 +SSTidalRooms_Text_ColtonDefeat: .string "That was an enjoyable match!$" -SSTidalRooms_Text_ColtonPostBattle: @ 823CB75 +SSTidalRooms_Text_ColtonPostBattle: .string "I get so excited imagining what kinds\n" .string "of POKéMON I'll get to see in the next\l" .string "CONTEST. The anticipation of it thrills!$" -SSTidalRooms_Text_MicahIntro: @ 823CBEB +SSTidalRooms_Text_MicahIntro: .string "Are your friends strong?$" -SSTidalRooms_Text_MicahDefeat: @ 823CC04 +SSTidalRooms_Text_MicahDefeat: .string "Your friends are, indeed, strong.$" -SSTidalRooms_Text_MicahPostBattle: @ 823CC26 +SSTidalRooms_Text_MicahPostBattle: .string "Friends need not be human.\n" .string "For me, POKéMON are treasured friends!$" -SSTidalRooms_Text_ThomasIntro: @ 823CC68 +SSTidalRooms_Text_ThomasIntro: .string "Child…\n" .string "Did you knock on the door?$" -SSTidalRooms_Text_ThomasDefeat: @ 823CC8A +SSTidalRooms_Text_ThomasDefeat: .string "A loss is to be accepted without haste\n" .string "or panic.$" -SSTidalRooms_Text_ThomasPostBattle: @ 823CCBB +SSTidalRooms_Text_ThomasPostBattle: .string "To be never ruffled in any situation is\n" .string "the GENTLEMAN's code of conduct.$" -SSTidalRooms_Text_JedIntro: @ 823CD04 +SSTidalRooms_Text_JedIntro: .string "JED: I feel a little shy about this, but…\n" .string "We'll show you our lovey-dovey power!$" -SSTidalRooms_Text_JedDefeat: @ 823CD54 +SSTidalRooms_Text_JedDefeat: .string "JED: Sigh…$" -SSTidalRooms_Text_JedPostBattle: @ 823CD5F +SSTidalRooms_Text_JedPostBattle: .string "JED: It's the first time that our lovey-\n" .string "dovey power couldn't prevail!\l" .string "You must be an awesome TRAINER!$" -SSTidalRooms_Text_JedNotEnoughMons: @ 823CDC6 +SSTidalRooms_Text_JedNotEnoughMons: .string "JED: You only have one POKéMON?\n" .string "Isn't that just too lonesome?$" -SSTidalRooms_Text_LeaIntro: @ 823CE04 +SSTidalRooms_Text_LeaIntro: .string "LEA: I feel a little silly, but…\n" .string "We'll show you our lovey-dovey power!$" -SSTidalRooms_Text_LeaDefeat: @ 823CE4B +SSTidalRooms_Text_LeaDefeat: .string "LEA: Oh, boo!$" -SSTidalRooms_Text_LeaPostBattle: @ 823CE59 +SSTidalRooms_Text_LeaPostBattle: .string "LEA: I can't believe it!\n" .string "Our lovey-dovey power failed…\l" .string "You must be an awesome TRAINER!$" -SSTidalRooms_Text_LeaNotEnoughMons: @ 823CEB0 +SSTidalRooms_Text_LeaNotEnoughMons: .string "LEA: I wanted to battle…\n" .string "But you don't even have two POKéMON…$" -SSTidalRooms_Text_GarretIntro: @ 823CEEE +SSTidalRooms_Text_GarretIntro: .string "Ah, you've come just in time.\p" .string "I'm bored, you see.\n" .string "You may entertain me.$" -SSTidalRooms_Text_GarretDefeat: @ 823CF36 +SSTidalRooms_Text_GarretDefeat: .string "…That will do.$" -SSTidalRooms_Text_GarretPostBattle: @ 823CF45 +SSTidalRooms_Text_GarretPostBattle: .string "Perhaps I shall get Father to acquire\n" .string "a yacht for me.\l" .string "A yacht for me and POKéMON!$" -SSTidalRooms_Text_NaomiIntro: @ 823CF97 +SSTidalRooms_Text_NaomiIntro: .string "Oh, you're such an adorable TRAINER.\n" .string "Would you like to have tea?\l" .string "Or would you rather battle?$" -SSTidalRooms_Text_NaomiDefeat: @ 823CFF4 +SSTidalRooms_Text_NaomiDefeat: .string "I see.\n" .string "You're the active sort.$" -SSTidalRooms_Text_NaomiPostBattle: @ 823D013 +SSTidalRooms_Text_NaomiPostBattle: .string "A world cruise on a luxury liner has its\n" .string "charms, I must say…\p" .string "But, I will admit there is an appealing\n" .string "side to touring HOENN by ferry.$" -SSTidalRooms_Text_NotSuspiciousTakeThis: @ 823D098 +SSTidalRooms_Text_NotSuspiciousTakeThis: .string "Uh… Hi! I… I'm not acting suspicious!\n" .string "Uh… You can have this! For free!\p" .string "It… Honestly, I didn't SNATCH it from\n" .string "someone! I'd never do such a thing!\l" .string "It's clean! You can use it!$" -SSTidalRooms_Text_ExplainSnatch: @ 823D145 +SSTidalRooms_Text_ExplainSnatch: .string "SNATCH steals the beneficial effects\n" .string "of certain moves before they can be\l" .string "used by a foe or ally.$" diff --git a/data/maps/SafariZone_North/scripts.inc b/data/maps/SafariZone_North/scripts.inc index 365266b4b2..6fb6f2e2ac 100644 --- a/data/maps/SafariZone_North/scripts.inc +++ b/data/maps/SafariZone_North/scripts.inc @@ -1,11 +1,11 @@ -SafariZone_North_MapScripts:: @ 823D253 +SafariZone_North_MapScripts:: .byte 0 -SafariZone_North_EventScript_Fisherman:: @ 823D254 +SafariZone_North_EventScript_Fisherman:: msgbox SafariZone_North_Text_Fisherman, MSGBOX_NPC end -SafariZone_North_EventScript_Man:: @ 823D25D +SafariZone_North_EventScript_Man:: msgbox SafariZone_North_Text_Man, MSGBOX_NPC end diff --git a/data/maps/SafariZone_Northeast/scripts.inc b/data/maps/SafariZone_Northeast/scripts.inc index a34d6ab951..5fa40e13d0 100644 --- a/data/maps/SafariZone_Northeast/scripts.inc +++ b/data/maps/SafariZone_Northeast/scripts.inc @@ -1,4 +1,4 @@ -SafariZone_Northeast_MapScripts:: @ 8242C02 +SafariZone_Northeast_MapScripts:: .byte 0 @ Event scripts for SafariZone_Northeast are in SafariZone_South/scripts.inc diff --git a/data/maps/SafariZone_Northwest/scripts.inc b/data/maps/SafariZone_Northwest/scripts.inc index 5e6261a2e3..ab51f09bc0 100644 --- a/data/maps/SafariZone_Northwest/scripts.inc +++ b/data/maps/SafariZone_Northwest/scripts.inc @@ -1,7 +1,7 @@ -SafariZone_Northwest_MapScripts:: @ 823D249 +SafariZone_Northwest_MapScripts:: .byte 0 -SafariZone_Northwest_EventScript_Man:: @ 823D24A +SafariZone_Northwest_EventScript_Man:: msgbox SafariZone_Northwest_Text_Man, MSGBOX_NPC end diff --git a/data/maps/SafariZone_RestHouse/scripts.inc b/data/maps/SafariZone_RestHouse/scripts.inc index bc5688f0fe..672b5123fc 100644 --- a/data/maps/SafariZone_RestHouse/scripts.inc +++ b/data/maps/SafariZone_RestHouse/scripts.inc @@ -1,15 +1,15 @@ -SafariZone_RestHouse_MapScripts:: @ 8242BE6 +SafariZone_RestHouse_MapScripts:: .byte 0 -SafariZone_RestHouse_EventScript_Youngster:: @ 8242BE7 +SafariZone_RestHouse_EventScript_Youngster:: msgbox SafariZone_RestHouse_Text_Youngster, MSGBOX_NPC end -SafariZone_RestHouse_EventScript_PsychicM:: @ 8242BF0 +SafariZone_RestHouse_EventScript_PsychicM:: msgbox SafariZone_RestHouse_Text_PsychicM, MSGBOX_NPC end -SafariZone_RestHouse_EventScript_FatMan:: @ 8242BF9 +SafariZone_RestHouse_EventScript_FatMan:: msgbox SafariZone_RestHouse_Text_FatMan, MSGBOX_NPC end diff --git a/data/maps/SafariZone_South/scripts.inc b/data/maps/SafariZone_South/scripts.inc index 75ea523473..ee98443400 100644 --- a/data/maps/SafariZone_South/scripts.inc +++ b/data/maps/SafariZone_South/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_ATTENDANT, 1 -SafariZone_South_MapScripts:: @ 823D279 +SafariZone_South_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SafariZone_South_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, SafariZone_South_OnFrame .byte 0 -SafariZone_South_OnFrame: @ 823D284 +SafariZone_South_OnFrame: map_script_2 VAR_SAFARI_ZONE_STATE, 2, SafariZone_South_EventScript_EnterSafariZone .2byte 0 -SafariZone_South_EventScript_EnterSafariZone:: @ 823D28E +SafariZone_South_EventScript_EnterSafariZone:: lockall applymovement OBJ_EVENT_ID_PLAYER, SafariZone_South_Movement_PlayerEnter waitmovement 0 @@ -20,37 +20,37 @@ SafariZone_South_EventScript_EnterSafariZone:: @ 823D28E releaseall end -SafariZone_South_OnTransition: @ 823D2B1 +SafariZone_South_OnTransition: compare VAR_SAFARI_ZONE_STATE, 2 call_if_eq SafariZone_South_EventScript_SetExitAttendantAside end -SafariZone_South_EventScript_SetExitAttendantAside:: @ 823D2BD +SafariZone_South_EventScript_SetExitAttendantAside:: setobjectxyperm LOCALID_ATTENDANT, 31, 34 return -SafariZone_South_Movement_PlayerEnter: @ 823D2C5 +SafariZone_South_Movement_PlayerEnter: walk_down step_end -SafariZone_South_Movement_ExitAttendantBlockDoor: @ 823D2C7 +SafariZone_South_Movement_ExitAttendantBlockDoor: walk_right walk_in_place_fastest_down step_end -SafariZone_South_EventScript_Boy:: @ 823D2CA +SafariZone_South_EventScript_Boy:: msgbox SafariZone_South_Text_Boy, MSGBOX_NPC end -SafariZone_South_EventScript_Man:: @ 823D2D3 +SafariZone_South_EventScript_Man:: msgbox SafariZone_South_Text_Man, MSGBOX_NPC end -SafariZone_South_EventScript_Youngster:: @ 823D2DC +SafariZone_South_EventScript_Youngster:: msgbox SafariZone_South_Text_Youngster, MSGBOX_NPC end -SafariZone_South_EventScript_ExitAttendant:: @ 823D2E5 +SafariZone_South_EventScript_ExitAttendant:: lock faceplayer goto_if_unset FLAG_GOOD_LUCK_SAFARI_ZONE, SafariZone_South_EventScript_GoodLuck @@ -61,13 +61,13 @@ SafariZone_South_EventScript_ExitAttendant:: @ 823D2E5 release end -SafariZone_South_EventScript_GoodLuck:: @ 823D30D +SafariZone_South_EventScript_GoodLuck:: setflag FLAG_GOOD_LUCK_SAFARI_ZONE msgbox SafariZone_South_Text_GoodLuck, MSGBOX_DEFAULT release end -SafariZone_South_EventScript_ExitEarly:: @ 823D31A +SafariZone_South_EventScript_ExitEarly:: msgbox SafariZone_South_Text_ExitEarlyThankYouForPlaying, MSGBOX_DEFAULT closemessage switch VAR_FACING @@ -75,7 +75,7 @@ SafariZone_South_EventScript_ExitEarly:: @ 823D31A case DIR_EAST, SafariZone_South_EventScript_ExitEarlyEast end -SafariZone_South_EventScript_ExitEarlyNorth:: @ 823D33F +SafariZone_South_EventScript_ExitEarlyNorth:: applymovement LOCALID_ATTENDANT, SafariZone_South_Movement_MoveExitAttendantNorth waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, SafariZone_South_Movement_PlayerExitNorth @@ -83,7 +83,7 @@ SafariZone_South_EventScript_ExitEarlyNorth:: @ 823D33F goto SafariZone_South_EventScript_Exit end -SafariZone_South_EventScript_ExitEarlyEast:: @ 823D359 +SafariZone_South_EventScript_ExitEarlyEast:: applymovement LOCALID_ATTENDANT, SafariZone_South_Movement_MoveExitAttendantEast waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, SafariZone_South_Movement_PlayerExitEast @@ -91,64 +91,64 @@ SafariZone_South_EventScript_ExitEarlyEast:: @ 823D359 goto SafariZone_South_EventScript_Exit end -SafariZone_South_EventScript_Exit:: @ 823D373 +SafariZone_South_EventScript_Exit:: setvar VAR_SAFARI_ZONE_STATE, 1 special ExitSafariMode warpdoor MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5 waitstate end -SafariZone_South_Movement_PlayerExitNorth: @ 823D385 +SafariZone_South_Movement_PlayerExitNorth: walk_up step_end -SafariZone_South_Movement_PlayerExitEast: @ 823D387 +SafariZone_South_Movement_PlayerExitEast: walk_right walk_in_place_fastest_up step_end -SafariZone_South_Movement_MoveExitAttendantNorth: @ 823D38A +SafariZone_South_Movement_MoveExitAttendantNorth: walk_left walk_in_place_fastest_right step_end -SafariZone_South_Movement_MoveExitAttendantEast: @ 823D38D +SafariZone_South_Movement_MoveExitAttendantEast: walk_down walk_in_place_fastest_up step_end -SafariZone_South_EventScript_ConstructionWorker1:: @ 823D390 +SafariZone_South_EventScript_ConstructionWorker1:: msgbox SafariZone_South_Text_AreaOffLimits1, MSGBOX_NPC end -SafariZone_Southeast_EventScript_ExpansionZoneAttendant:: @ 823D399 +SafariZone_Southeast_EventScript_ExpansionZoneAttendant:: msgbox SafariZone_Southeast_Text_ExpansionIsFinished, MSGBOX_NPC end -SafariZone_South_EventScript_ConstructionWorker2:: @ 823D3A2 +SafariZone_South_EventScript_ConstructionWorker2:: msgbox SafariZone_South_Text_AreaOffLimits2, MSGBOX_NPC end -SafariZone_Southeast_EventScript_LittleGirl:: @ 823D3AB +SafariZone_Southeast_EventScript_LittleGirl:: msgbox SafariZone_Southeast_Text_LittleGirl, MSGBOX_NPC end -SafariZone_Southeast_EventScript_FatMan:: @ 823D3B4 +SafariZone_Southeast_EventScript_FatMan:: msgbox SafariZone_Southeast_Text_FatMan, MSGBOX_NPC end -SafariZone_Southeast_EventScript_RichBoy:: @ 823D3BD +SafariZone_Southeast_EventScript_RichBoy:: msgbox SafariZone_Southeast_Text_RichBoy, MSGBOX_NPC end -SafariZone_Northeast_EventScript_Boy:: @ 823D3C6 +SafariZone_Northeast_EventScript_Boy:: msgbox SafariZone_Northeast_Text_Boy, MSGBOX_NPC end -SafariZone_Northeast_EventScript_Woman:: @ 823D3CF +SafariZone_Northeast_EventScript_Woman:: msgbox SafariZone_Northeast_Text_Woman, MSGBOX_NPC end -SafariZone_Northeast_EventScript_Girl:: @ 823D3D8 +SafariZone_Northeast_EventScript_Girl:: msgbox SafariZone_Northeast_Text_Girl, MSGBOX_NPC end diff --git a/data/maps/SafariZone_Southeast/scripts.inc b/data/maps/SafariZone_Southeast/scripts.inc index 658d88e569..259ab2535b 100644 --- a/data/maps/SafariZone_Southeast/scripts.inc +++ b/data/maps/SafariZone_Southeast/scripts.inc @@ -1,4 +1,4 @@ -SafariZone_Southeast_MapScripts:: @ 8242C03 +SafariZone_Southeast_MapScripts:: .byte 0 @ Event scripts for SafariZone_Southeast are in SafariZone_South/scripts.inc diff --git a/data/maps/SafariZone_Southwest/scripts.inc b/data/maps/SafariZone_Southwest/scripts.inc index c862f79067..3662f45424 100644 --- a/data/maps/SafariZone_Southwest/scripts.inc +++ b/data/maps/SafariZone_Southwest/scripts.inc @@ -1,11 +1,11 @@ -SafariZone_Southwest_MapScripts:: @ 823D266 +SafariZone_Southwest_MapScripts:: .byte 0 -SafariZone_Southwest_EventScript_Woman:: @ 823D267 +SafariZone_Southwest_EventScript_Woman:: msgbox SafariZone_Southwest_Text_Woman, MSGBOX_NPC end -SafariZone_Southwest_EventScript_RestHouseSign:: @ 823D270 +SafariZone_Southwest_EventScript_RestHouseSign:: msgbox SafariZone_Southwest_Text_RestHouseSign, MSGBOX_SIGN end diff --git a/data/maps/ScorchedSlab/scripts.inc b/data/maps/ScorchedSlab/scripts.inc index 34ad013305..48ccd0a02c 100644 --- a/data/maps/ScorchedSlab/scripts.inc +++ b/data/maps/ScorchedSlab/scripts.inc @@ -1,8 +1,8 @@ -ScorchedSlab_MapScripts:: @ 8239291 +ScorchedSlab_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, ScorchedSlab_OnTransition .byte 0 -ScorchedSlab_OnTransition: @ 8239297 +ScorchedSlab_OnTransition: setflag FLAG_LANDMARK_SCORCHED_SLAB end diff --git a/data/maps/SeafloorCavern_Entrance/scripts.inc b/data/maps/SeafloorCavern_Entrance/scripts.inc index 20f731044d..b6b7b66759 100644 --- a/data/maps/SeafloorCavern_Entrance/scripts.inc +++ b/data/maps/SeafloorCavern_Entrance/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_GRUNT, 1 -SeafloorCavern_Entrance_MapScripts:: @ 823446E +SeafloorCavern_Entrance_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, SeafloorCavern_Entrance_OnResume .byte 0 -SeafloorCavern_Entrance_OnResume: @ 8234474 +SeafloorCavern_Entrance_OnResume: setdivewarp MAP_UNDERWATER_SEAFLOOR_CAVERN, 255, 6, 5 setescapewarp MAP_UNDERWATER_SEAFLOOR_CAVERN, 255, 6, 5 end -SeafloorCavern_Entrance_EventScript_Grunt:: @ 8234485 +SeafloorCavern_Entrance_EventScript_Grunt:: lockall compare VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT, 1 goto_if_eq SeafloorCavern_Entrance_EventScript_GruntSpeechShort @@ -36,7 +36,7 @@ SeafloorCavern_Entrance_EventScript_Grunt:: @ 8234485 releaseall end -SeafloorCavern_Entrance_EventScript_GruntSpeechShort:: @ 82344ED +SeafloorCavern_Entrance_EventScript_GruntSpeechShort:: compare VAR_FACING, DIR_WEST call_if_eq SeafloorCavern_Entrance_EventScript_GruntFacePlayerWest compare VAR_FACING, DIR_EAST @@ -50,22 +50,22 @@ SeafloorCavern_Entrance_EventScript_GruntSpeechShort:: @ 82344ED releaseall end -SeafloorCavern_Entrance_EventScript_GruntFacePlayerEast:: @ 8234523 +SeafloorCavern_Entrance_EventScript_GruntFacePlayerEast:: applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -SeafloorCavern_Entrance_EventScript_GruntFacePlayerWest:: @ 823452E +SeafloorCavern_Entrance_EventScript_GruntFacePlayerWest:: applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -SeafloorCavern_Entrance_EventScript_GruntFacePlayerNorth:: @ 8234539 +SeafloorCavern_Entrance_EventScript_GruntFacePlayerNorth:: applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -SeafloorCavern_Entrance_Text_HearMagmaNearMossdeep: @ 8234544 +SeafloorCavern_Entrance_Text_HearMagmaNearMossdeep: .string "Hey!\n" .string "I remember your face!\p" .string "If you're here, it must mean that\n" @@ -81,7 +81,7 @@ SeafloorCavern_Entrance_Text_HearMagmaNearMossdeep: @ 8234544 .string "That bunch of goons, they sure don't\n" .string "look good near the sea!$" -SeafloorCavern_Entrance_Text_HearMagmaNearMossdeepShort: @ 82346C8 +SeafloorCavern_Entrance_Text_HearMagmaNearMossdeepShort: .string "A punk like you, do you really think\n" .string "you can take on TEAM AQUA?\p" .string "I'd say you're too early by about\n" diff --git a/data/maps/SeafloorCavern_Room1/scripts.inc b/data/maps/SeafloorCavern_Room1/scripts.inc index 6baa9ca4ee..fefa4ca27a 100644 --- a/data/maps/SeafloorCavern_Room1/scripts.inc +++ b/data/maps/SeafloorCavern_Room1/scripts.inc @@ -1,35 +1,35 @@ -SeafloorCavern_Room1_MapScripts:: @ 82347EB +SeafloorCavern_Room1_MapScripts:: .byte 0 -SeafloorCavern_Room1_EventScript_Grunt1:: @ 82347EC +SeafloorCavern_Room1_EventScript_Grunt1:: trainerbattle_single TRAINER_GRUNT_SEAFLOOR_CAVERN_1, SeafloorCavern_Room1_Text_Grunt1Intro, SeafloorCavern_Room1_Text_Grunt1Defeat msgbox SeafloorCavern_Room1_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE end -SeafloorCavern_Room1_EventScript_Grunt2:: @ 8234803 +SeafloorCavern_Room1_EventScript_Grunt2:: trainerbattle_single TRAINER_GRUNT_SEAFLOOR_CAVERN_2, SeafloorCavern_Room1_Text_Grunt2Intro, SeafloorCavern_Room1_Text_Grunt2Defeat msgbox SeafloorCavern_Room1_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE end -SeafloorCavern_Room1_Text_Grunt1Intro: @ 823481A +SeafloorCavern_Room1_Text_Grunt1Intro: .string "We don't need a kid around!\n" .string "Go on home already!$" -SeafloorCavern_Room1_Text_Grunt1Defeat: @ 823484A +SeafloorCavern_Room1_Text_Grunt1Defeat: .string "I want to go home…$" -SeafloorCavern_Room1_Text_Grunt1PostBattle: @ 823485D +SeafloorCavern_Room1_Text_Grunt1PostBattle: .string "I want to get a promotion so I can\n" .string "boss around the GRUNTS…$" -SeafloorCavern_Room1_Text_Grunt2Intro: @ 8234898 +SeafloorCavern_Room1_Text_Grunt2Intro: .string "That submarine… It's tiny inside.\n" .string "I'm sore all over!$" -SeafloorCavern_Room1_Text_Grunt2Defeat: @ 82348CD +SeafloorCavern_Room1_Text_Grunt2Defeat: .string "Losing makes me sore!$" -SeafloorCavern_Room1_Text_Grunt2PostBattle: @ 82348E3 +SeafloorCavern_Room1_Text_Grunt2PostBattle: .string "That submarine we jacked, man,\n" .string "it's brutal as a ride.\l" .string "It's way too tight in there!$" diff --git a/data/maps/SeafloorCavern_Room2/scripts.inc b/data/maps/SeafloorCavern_Room2/scripts.inc index 15201dac0b..e6213c1241 100644 --- a/data/maps/SeafloorCavern_Room2/scripts.inc +++ b/data/maps/SeafloorCavern_Room2/scripts.inc @@ -1,3 +1,3 @@ -SeafloorCavern_Room2_MapScripts:: @ 8234936 +SeafloorCavern_Room2_MapScripts:: .byte 0 diff --git a/data/maps/SeafloorCavern_Room3/scripts.inc b/data/maps/SeafloorCavern_Room3/scripts.inc index 1cfb702c81..48b4c60ed2 100644 --- a/data/maps/SeafloorCavern_Room3/scripts.inc +++ b/data/maps/SeafloorCavern_Room3/scripts.inc @@ -1,17 +1,17 @@ -SeafloorCavern_Room3_MapScripts:: @ 8234937 +SeafloorCavern_Room3_MapScripts:: .byte 0 -SeafloorCavern_Room3_EventScript_Shelly:: @ 8234938 +SeafloorCavern_Room3_EventScript_Shelly:: trainerbattle_single TRAINER_SHELLY_SEAFLOOR_CAVERN, SeafloorCavern_Room3_Text_ShellyIntro, SeafloorCavern_Room3_Text_ShellyDefeat msgbox SeafloorCavern_Room3_Text_ShellyPostBattle, MSGBOX_AUTOCLOSE end -SeafloorCavern_Room3_EventScript_Grunt5:: @ 823494F +SeafloorCavern_Room3_EventScript_Grunt5:: trainerbattle_single TRAINER_GRUNT_SEAFLOOR_CAVERN_5, SeafloorCavern_Room3_Text_Grunt5Intro, SeafloorCavern_Room3_Text_Grunt5Defeat msgbox SeafloorCavern_Room3_Text_Grunt5PostBattle, MSGBOX_AUTOCLOSE end -SeafloorCavern_Room3_Text_ShellyIntro: @ 8234966 +SeafloorCavern_Room3_Text_ShellyIntro: .string "Ahahahaha!\p" .string "How did you manage to get here without\n" .string "a submarine?\l" @@ -23,11 +23,11 @@ SeafloorCavern_Room3_Text_ShellyIntro: @ 8234966 .string "I'm going to give you a little taste\n" .string "of pain! Resign yourself to it!$" -SeafloorCavern_Room3_Text_ShellyDefeat: @ 8234A79 +SeafloorCavern_Room3_Text_ShellyDefeat: .string "Ahahahaha!\p" .string "Ouch!$" -SeafloorCavern_Room3_Text_ShellyPostBattle: @ 8234A8A +SeafloorCavern_Room3_Text_ShellyPostBattle: .string "Ahahahaha!\n" .string "You're so darn strong.\p" .string "It's terribly disappointing that you're\n" @@ -36,7 +36,7 @@ SeafloorCavern_Room3_Text_ShellyPostBattle: @ 8234A8A .string "world our BOSS has promised as\l" .string "one of us…$" -SeafloorCavern_Room3_Text_Grunt5Intro: @ 8234B3A +SeafloorCavern_Room3_Text_Grunt5Intro: .string "For our dream to become real, we need\n" .string "the power of POKéMON.\p" .string "But meddlers like you use the power of\n" @@ -45,10 +45,10 @@ SeafloorCavern_Room3_Text_Grunt5Intro: @ 8234B3A .string "Life just doesn't work the way we\n" .string "need it to!$" -SeafloorCavern_Room3_Text_Grunt5Defeat: @ 8234BFE +SeafloorCavern_Room3_Text_Grunt5Defeat: .string "Gwah!$" -SeafloorCavern_Room3_Text_Grunt5PostBattle: @ 8234C04 +SeafloorCavern_Room3_Text_Grunt5PostBattle: .string "You know, we don't dare question\n" .string "the motives of our leader.\p" .string "But here you are, just some punk,\n" diff --git a/data/maps/SeafloorCavern_Room4/scripts.inc b/data/maps/SeafloorCavern_Room4/scripts.inc index e2f32287ad..ab1add78f0 100644 --- a/data/maps/SeafloorCavern_Room4/scripts.inc +++ b/data/maps/SeafloorCavern_Room4/scripts.inc @@ -1,35 +1,35 @@ -SeafloorCavern_Room4_MapScripts:: @ 8234C9B +SeafloorCavern_Room4_MapScripts:: .byte 0 -SeafloorCavern_Room4_EventScript_Grunt3:: @ 8234C9C +SeafloorCavern_Room4_EventScript_Grunt3:: trainerbattle_single TRAINER_GRUNT_SEAFLOOR_CAVERN_3, SeafloorCavern_Room4_Text_Grunt3Intro, SeafloorCavern_Room4_Text_Grunt3Defeat msgbox SeafloorCavern_Room4_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE end -SeafloorCavern_Room4_EventScript_Grunt4:: @ 8234CB3 +SeafloorCavern_Room4_EventScript_Grunt4:: trainerbattle_single TRAINER_GRUNT_SEAFLOOR_CAVERN_4, SeafloorCavern_Room4_Text_Grunt4Intro, SeafloorCavern_Room4_Text_Grunt4Defeat msgbox SeafloorCavern_Room4_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE end -SeafloorCavern_Room4_Text_Grunt3Intro: @ 8234CCA +SeafloorCavern_Room4_Text_Grunt3Intro: .string "Who are you?\n" .string "Where did you come in from?$" -SeafloorCavern_Room4_Text_Grunt3Defeat: @ 8234CF3 +SeafloorCavern_Room4_Text_Grunt3Defeat: .string "Lost it…$" -SeafloorCavern_Room4_Text_Grunt3PostBattle: @ 8234CFC +SeafloorCavern_Room4_Text_Grunt3PostBattle: .string "I can't find the way out!\p" .string "I'm not afraid. Don't get me wrong!$" -SeafloorCavern_Room4_Text_Grunt4Intro: @ 8234D3A +SeafloorCavern_Room4_Text_Grunt4Intro: .string "Who are you?\n" .string "Where do you think you're going?$" -SeafloorCavern_Room4_Text_Grunt4Defeat: @ 8234D68 +SeafloorCavern_Room4_Text_Grunt4Defeat: .string "I failed to win!$" -SeafloorCavern_Room4_Text_Grunt4PostBattle: @ 8234D79 +SeafloorCavern_Room4_Text_Grunt4PostBattle: .string "My partner forgot the map in that\n" .string "submarine!\p" .string "How's that for being useless?$" diff --git a/data/maps/SeafloorCavern_Room5/scripts.inc b/data/maps/SeafloorCavern_Room5/scripts.inc index e1c68db6eb..244ca5a805 100644 --- a/data/maps/SeafloorCavern_Room5/scripts.inc +++ b/data/maps/SeafloorCavern_Room5/scripts.inc @@ -1,3 +1,3 @@ -SeafloorCavern_Room5_MapScripts:: @ 8234DC4 +SeafloorCavern_Room5_MapScripts:: .byte 0 diff --git a/data/maps/SeafloorCavern_Room6/scripts.inc b/data/maps/SeafloorCavern_Room6/scripts.inc index ae8cf02fa7..49ac33a98b 100644 --- a/data/maps/SeafloorCavern_Room6/scripts.inc +++ b/data/maps/SeafloorCavern_Room6/scripts.inc @@ -1,3 +1,3 @@ -SeafloorCavern_Room6_MapScripts:: @ 8234DC5 +SeafloorCavern_Room6_MapScripts:: .byte 0 diff --git a/data/maps/SeafloorCavern_Room7/scripts.inc b/data/maps/SeafloorCavern_Room7/scripts.inc index e91cf61934..a022e08d26 100644 --- a/data/maps/SeafloorCavern_Room7/scripts.inc +++ b/data/maps/SeafloorCavern_Room7/scripts.inc @@ -1,3 +1,3 @@ -SeafloorCavern_Room7_MapScripts:: @ 8234DC6 +SeafloorCavern_Room7_MapScripts:: .byte 0 diff --git a/data/maps/SeafloorCavern_Room8/scripts.inc b/data/maps/SeafloorCavern_Room8/scripts.inc index 471cafd177..99a367edb1 100644 --- a/data/maps/SeafloorCavern_Room8/scripts.inc +++ b/data/maps/SeafloorCavern_Room8/scripts.inc @@ -1,3 +1,3 @@ -SeafloorCavern_Room8_MapScripts:: @ 8234DC7 +SeafloorCavern_Room8_MapScripts:: .byte 0 diff --git a/data/maps/SeafloorCavern_Room9/map.json b/data/maps/SeafloorCavern_Room9/map.json index 94ef88e849..0557b0c3eb 100644 --- a/data/maps/SeafloorCavern_Room9/map.json +++ b/data/maps/SeafloorCavern_Room9/map.json @@ -15,7 +15,7 @@ "connections": null, "object_events": [ { - "graphics_id": "OBJ_EVENT_GFX_KYOGRE_1", + "graphics_id": "OBJ_EVENT_GFX_KYOGRE_FRONT", "x": 17, "y": 38, "elevation": 3, @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1" + "flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE" }, { "graphics_id": "OBJ_EVENT_GFX_ARCHIE", @@ -93,7 +93,7 @@ "flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26" }, { - "graphics_id": "OBJ_EVENT_GFX_KYOGRE_2", + "graphics_id": "OBJ_EVENT_GFX_KYOGRE_ASLEEP", "x": 17, "y": 38, "elevation": 3, @@ -103,7 +103,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_2" + "flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_ASLEEP" } ], "warp_events": [ diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc index 63c5853c35..7749d7a194 100644 --- a/data/maps/SeafloorCavern_Room9/scripts.inc +++ b/data/maps/SeafloorCavern_Room9/scripts.inc @@ -5,10 +5,10 @@ .set LOCALID_GRUNT_2, 5 .set LOCALID_KYOGRE_SLEEPING, 7 -SeafloorCavern_Room9_MapScripts:: @ 8234DC8 +SeafloorCavern_Room9_MapScripts:: .byte 0 -SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9 +SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: lockall setvar VAR_0x8004, LOCALID_ARCHIE setvar VAR_0x8005, LOCALID_MAXIE @@ -18,7 +18,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, SeafloorCavern_Room9_Movement_Delay32 waitmovement 0 - playbgm MUS_ENCOUNTER_AQUA, 0 + playbgm MUS_ENCOUNTER_AQUA, FALSE msgbox SeafloorCavern_Room9_Text_ArchieHoldItRightThere, MSGBOX_DEFAULT closemessage addobject VAR_0x8004 @@ -142,7 +142,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9 setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS - setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1 + setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE setflag FLAG_HIDE_SEAFLOOR_CAVERN_AQUA_GRUNTS setflag FLAG_HIDE_MAP_NAME_POPUP warp MAP_ROUTE128, 255, 38, 22 @@ -150,7 +150,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9 releaseall end -SeafloorCavern_Room9_Movement_ArchieApproachPlayer: @ 823502A +SeafloorCavern_Room9_Movement_ArchieApproachPlayer: walk_right walk_right walk_right @@ -160,21 +160,21 @@ SeafloorCavern_Room9_Movement_ArchieApproachPlayer: @ 823502A walk_right step_end -SeafloorCavern_Room9_Movement_Unused1: @ 8235032 +SeafloorCavern_Room9_Movement_Unused1: walk_left walk_left step_end -SeafloorCavern_Room9_Movement_ArchieListenMessage: @ 8235035 +SeafloorCavern_Room9_Movement_ArchieListenMessage: walk_left delay_16 step_end -SeafloorCavern_Room9_Movement_Unused2: @ 8235038 +SeafloorCavern_Room9_Movement_Unused2: walk_right step_end -SeafloorCavern_Room9_Movement_ArchieExit: @ 823503A +SeafloorCavern_Room9_Movement_ArchieExit: face_up lock_facing_direction walk_down @@ -182,7 +182,7 @@ SeafloorCavern_Room9_Movement_ArchieExit: @ 823503A walk_in_place_fastest_right step_end -SeafloorCavern_Room9_Movement_KyogreApproach: @ 8235040 +SeafloorCavern_Room9_Movement_KyogreApproach: delay_16 delay_16 walk_slow_down @@ -195,12 +195,12 @@ SeafloorCavern_Room9_Movement_KyogreApproach: @ 8235040 delay_16 step_end -SeafloorCavern_Room9_Movement_KyogreExit: @ 823504B +SeafloorCavern_Room9_Movement_KyogreExit: slide_up slide_up step_end -SeafloorCavern_Room9_Movement_MaxieArrive: @ 823504E +SeafloorCavern_Room9_Movement_MaxieArrive: walk_fast_right walk_fast_right walk_fast_right @@ -208,49 +208,49 @@ SeafloorCavern_Room9_Movement_MaxieArrive: @ 823504E walk_fast_right step_end -SeafloorCavern_Room9_Movement_MaxieExit: @ 8235054 +SeafloorCavern_Room9_Movement_MaxieExit: walk_right walk_right step_end -SeafloorCavern_Room9_Movement_MagmaGruntArrive: @ 8235057 +SeafloorCavern_Room9_Movement_MagmaGruntArrive: walk_fast_right walk_fast_right walk_fast_right walk_fast_right step_end -SeafloorCavern_Room9_Movement_Delay32: @ 823505C +SeafloorCavern_Room9_Movement_Delay32: delay_16 delay_16 step_end -SeafloorCavern_Room9_Text_ArchieHoldItRightThere: @ 823505F +SeafloorCavern_Room9_Text_ArchieHoldItRightThere: .string "ARCHIE: Hold it right there.$" -SeafloorCavern_Room9_Text_ArchieSoItWasYou: @ 823507C +SeafloorCavern_Room9_Text_ArchieSoItWasYou: .string "ARCHIE: Fufufu…\n" .string "So it was you, after all.$" -SeafloorCavern_Room9_Text_ArchieBeholdKyogre: @ 82350A6 +SeafloorCavern_Room9_Text_ArchieBeholdKyogre: .string "ARCHIE: Behold!\p" .string "See how beautiful it is, the sleeping\n" .string "form of the ancient POKéMON KYOGRE!\p" .string "I have waited so long for this day to\n" .string "come…$" -SeafloorCavern_Room9_Text_ArchieYouMustDisappear: @ 823512C +SeafloorCavern_Room9_Text_ArchieYouMustDisappear: .string "ARCHIE: It surprises me, how you've\n" .string "managed to chase me here.\p" .string "But that's all over now.\p" .string "For the realization of my dream,\n" .string "you must disappear now!$" -SeafloorCavern_Room9_Text_ArchieDefeat: @ 82351BC +SeafloorCavern_Room9_Text_ArchieDefeat: .string "What?!\n" .string "I lost to a mere child like you?!$" -SeafloorCavern_Room9_Text_ArchieWithThisRedOrb: @ 82351E5 +SeafloorCavern_Room9_Text_ArchieWithThisRedOrb: .string "ARCHIE: Fufufu…\p" .string "I commend you. I must recognize that\n" .string "you are truly gifted.\p" @@ -258,21 +258,21 @@ SeafloorCavern_Room9_Text_ArchieWithThisRedOrb: @ 82351E5 .string "I have this in my possession!\p" .string "With this RED ORB, I can make KYOGRE…$" -SeafloorCavern_Room9_Text_RedOrbShinesByItself: @ 8235279 +SeafloorCavern_Room9_Text_RedOrbShinesByItself: .string "The RED ORB suddenly began shining\n" .string "by itself!$" -SeafloorCavern_Room9_Text_ArchieWhereDidKyogreGo: @ 82352A7 +SeafloorCavern_Room9_Text_ArchieWhereDidKyogreGo: .string "ARCHIE: What?!\p" .string "I didn't do anything.\n" .string "Why did the RED ORB…\p" .string "Where did KYOGRE go?$" -SeafloorCavern_Room9_Text_ArchieAMessageFromOutside: @ 82352F6 +SeafloorCavern_Room9_Text_ArchieAMessageFromOutside: .string "ARCHIE: Hm? It's a message from our\n" .string "members outside…$" -SeafloorCavern_Room9_Text_ArchieWhatRainingTooHard: @ 823532B +SeafloorCavern_Room9_Text_ArchieWhatRainingTooHard: .string "ARCHIE: Yes, what is it?\p" .string "Hm…\n" .string "It's raining heavily?\p" @@ -288,7 +288,7 @@ SeafloorCavern_Room9_Text_ArchieWhatRainingTooHard: @ 823532B .string "Hold your position and monitor\n" .string "the situation!$" -SeafloorCavern_Room9_Text_ArchieWhyDidKyogreDisappear: @ 823546F +SeafloorCavern_Room9_Text_ArchieWhyDidKyogreDisappear: .string "ARCHIE: There's something wrong…\p" .string "The RED ORB is supposed to awaken\n" .string "and control KYOGRE…\p" @@ -296,7 +296,7 @@ SeafloorCavern_Room9_Text_ArchieWhyDidKyogreDisappear: @ 823546F .string "Why did KYOGRE disappear?\p" .string "Why?!$" -SeafloorCavern_Room9_Text_MaxieWhatHaveYouWrought: @ 82354F0 +SeafloorCavern_Room9_Text_MaxieWhatHaveYouWrought: .string "MAXIE: What have you wrought?\p" .string "ARCHIE… You've finally awoken KYOGRE,\n" .string "haven't you?\p" @@ -305,7 +305,7 @@ SeafloorCavern_Room9_Text_MaxieWhatHaveYouWrought: @ 82354F0 .string "The world's landmass will drown in\n" .string "the deepening sea…$" -SeafloorCavern_Room9_Text_ArchieDontGetAllHighAndMighty: @ 82355C2 +SeafloorCavern_Room9_Text_ArchieDontGetAllHighAndMighty: .string "ARCHIE: W-what?!\n" .string "Don't get all high and mighty with me!\p" .string "Wasn't it you, TEAM MAGMA, that\n" @@ -314,13 +314,13 @@ SeafloorCavern_Room9_Text_ArchieDontGetAllHighAndMighty: @ 82355C2 .string "I should be able to control KYOGRE…\p" .string "I should be able to control it…$" -SeafloorCavern_Room9_Text_MaxieWeDontHaveTimeToArgue: @ 8235692 +SeafloorCavern_Room9_Text_MaxieWeDontHaveTimeToArgue: .string "MAXIE: We don't have the time to\n" .string "argue about it here!\p" .string "Get outside and see for yourself!\p" .string "See if what you've wrought is the\n" .string "world that we desired!$" -SeafloorCavern_Room9_Text_MaxieComeOnPlayer: @ 8235723 +SeafloorCavern_Room9_Text_MaxieComeOnPlayer: .string "MAXIE: {PLAYER}, come on, you have\n" .string "to get out of here, too!$" diff --git a/data/maps/SealedChamber_InnerRoom/scripts.inc b/data/maps/SealedChamber_InnerRoom/scripts.inc index c31bb7efce..f81e5f9fde 100644 --- a/data/maps/SealedChamber_InnerRoom/scripts.inc +++ b/data/maps/SealedChamber_InnerRoom/scripts.inc @@ -1,7 +1,7 @@ -SealedChamber_InnerRoom_MapScripts:: @ 82391F7 +SealedChamber_InnerRoom_MapScripts:: .byte 0 -SealedChamber_InnerRoom_EventScript_BrailleBackWall:: @ 82391F8 +SealedChamber_InnerRoom_EventScript_BrailleBackWall:: lockall braillemessage SealedChamber_InnerRoom_Braille_FirstWailordLastRelicanth waitbuttonpress @@ -34,11 +34,11 @@ SealedChamber_InnerRoom_EventScript_BrailleBackWall:: @ 82391F8 releaseall end -SealedChamber_InnerRoom_EventScript_NoEffect:: @ 8239253 +SealedChamber_InnerRoom_EventScript_NoEffect:: releaseall end -SealedChamber_InnerRoom_EventScript_BrailleStoryPart1:: @ 8239255 +SealedChamber_InnerRoom_EventScript_BrailleStoryPart1:: lockall braillemessage SealedChamber_InnerRoom_Braille_InThisCaveWeHaveLived waitbuttonpress @@ -46,7 +46,7 @@ SealedChamber_InnerRoom_EventScript_BrailleStoryPart1:: @ 8239255 releaseall end -SealedChamber_InnerRoom_EventScript_BrailleStoryPart2:: @ 823925F +SealedChamber_InnerRoom_EventScript_BrailleStoryPart2:: lockall braillemessage SealedChamber_InnerRoom_Braille_WeOweAllToThePokemon waitbuttonpress @@ -54,7 +54,7 @@ SealedChamber_InnerRoom_EventScript_BrailleStoryPart2:: @ 823925F releaseall end -SealedChamber_InnerRoom_EventScript_BrailleStoryPart3:: @ 8239269 +SealedChamber_InnerRoom_EventScript_BrailleStoryPart3:: lockall braillemessage SealedChamber_InnerRoom_Braille_ButWeSealedThePokemonAway waitbuttonpress @@ -62,7 +62,7 @@ SealedChamber_InnerRoom_EventScript_BrailleStoryPart3:: @ 8239269 releaseall end -SealedChamber_InnerRoom_EventScript_BrailleStoryPart4:: @ 8239273 +SealedChamber_InnerRoom_EventScript_BrailleStoryPart4:: lockall braillemessage SealedChamber_InnerRoom_Braille_WeFearedIt waitbuttonpress @@ -70,7 +70,7 @@ SealedChamber_InnerRoom_EventScript_BrailleStoryPart4:: @ 8239273 releaseall end -SealedChamber_InnerRoom_EventScript_BrailleStoryPart5:: @ 823927D +SealedChamber_InnerRoom_EventScript_BrailleStoryPart5:: lockall braillemessage SealedChamber_InnerRoom_Braille_ThoseWithCourageHope waitbuttonpress @@ -78,7 +78,7 @@ SealedChamber_InnerRoom_EventScript_BrailleStoryPart5:: @ 823927D releaseall end -SealedChamber_InnerRoom_EventScript_BrailleStoryPart6:: @ 8239287 +SealedChamber_InnerRoom_EventScript_BrailleStoryPart6:: lockall braillemessage SealedChamber_InnerRoom_Braille_OpenDoorEternalPokemonWaits waitbuttonpress diff --git a/data/maps/SealedChamber_OuterRoom/scripts.inc b/data/maps/SealedChamber_OuterRoom/scripts.inc index f3cd05a863..2e80d06c82 100644 --- a/data/maps/SealedChamber_OuterRoom/scripts.inc +++ b/data/maps/SealedChamber_OuterRoom/scripts.inc @@ -1,23 +1,23 @@ -SealedChamber_OuterRoom_MapScripts:: @ 8239106 +SealedChamber_OuterRoom_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, SealedChamber_OuterRoom_OnResume map_script MAP_SCRIPT_ON_TRANSITION, SealedChamber_OuterRoom_OnTransition map_script MAP_SCRIPT_ON_LOAD, SealedChamber_OuterRoom_OnLoad .byte 0 -SealedChamber_OuterRoom_OnResume: @ 8239116 +SealedChamber_OuterRoom_OnResume: setdivewarp MAP_UNDERWATER_SEALED_CHAMBER, 255, 12, 44 setescapewarp MAP_UNDERWATER_SEALED_CHAMBER, 255, 12, 44 end -SealedChamber_OuterRoom_OnTransition: @ 8239127 +SealedChamber_OuterRoom_OnTransition: setflag FLAG_LANDMARK_SEALED_CHAMBER end -SealedChamber_OuterRoom_OnLoad: @ 823912B +SealedChamber_OuterRoom_OnLoad: call_if_unset FLAG_SYS_BRAILLE_DIG, SealedChamber_OuterRoom_EventScript_CloseInnerRoomEntrance end -SealedChamber_OuterRoom_EventScript_CloseInnerRoomEntrance:: @ 8239135 +SealedChamber_OuterRoom_EventScript_CloseInnerRoomEntrance:: setmetatile 9, 1, METATILE_Cave_EntranceCover, 1 setmetatile 10, 1, METATILE_Cave_EntranceCover, 1 setmetatile 11, 1, METATILE_Cave_EntranceCover, 1 @@ -26,7 +26,7 @@ SealedChamber_OuterRoom_EventScript_CloseInnerRoomEntrance:: @ 8239135 setmetatile 11, 2, METATILE_Cave_SealedChamberBraille_Mid, 1 return -SealedChamber_OuterRoom_EventScript_BrailleABC:: @ 823916C +SealedChamber_OuterRoom_EventScript_BrailleABC:: lockall braillemessage SealedChamber_OuterRoom_Braille_ABC waitbuttonpress @@ -34,7 +34,7 @@ SealedChamber_OuterRoom_EventScript_BrailleABC:: @ 823916C releaseall end -SealedChamber_OuterRoom_EventScript_BrailleGHI:: @ 8239176 +SealedChamber_OuterRoom_EventScript_BrailleGHI:: lockall braillemessage SealedChamber_OuterRoom_Braille_GHI waitbuttonpress @@ -42,7 +42,7 @@ SealedChamber_OuterRoom_EventScript_BrailleGHI:: @ 8239176 releaseall end -SealedChamber_OuterRoom_EventScript_BrailleMNO:: @ 8239180 +SealedChamber_OuterRoom_EventScript_BrailleMNO:: lockall braillemessage SealedChamber_OuterRoom_Braille_MNO waitbuttonpress @@ -50,7 +50,7 @@ SealedChamber_OuterRoom_EventScript_BrailleMNO:: @ 8239180 releaseall end -SealedChamber_OuterRoom_EventScript_BrailleTUV:: @ 823918A +SealedChamber_OuterRoom_EventScript_BrailleTUV:: lockall braillemessage SealedChamber_OuterRoom_Braille_TUV waitbuttonpress @@ -58,7 +58,7 @@ SealedChamber_OuterRoom_EventScript_BrailleTUV:: @ 823918A releaseall end -SealedChamber_OuterRoom_EventScript_BrailleDEF:: @ 8239194 +SealedChamber_OuterRoom_EventScript_BrailleDEF:: lockall braillemessage SealedChamber_OuterRoom_Braille_DEF waitbuttonpress @@ -66,7 +66,7 @@ SealedChamber_OuterRoom_EventScript_BrailleDEF:: @ 8239194 releaseall end -SealedChamber_OuterRoom_EventScript_BrailleJKL:: @ 823919E +SealedChamber_OuterRoom_EventScript_BrailleJKL:: lockall braillemessage SealedChamber_OuterRoom_Braille_JKL waitbuttonpress @@ -74,7 +74,7 @@ SealedChamber_OuterRoom_EventScript_BrailleJKL:: @ 823919E releaseall end -SealedChamber_OuterRoom_EventScript_BraillePQRS:: @ 82391A8 +SealedChamber_OuterRoom_EventScript_BraillePQRS:: lockall braillemessage SealedChamber_OuterRoom_Braille_PQRS waitbuttonpress @@ -82,7 +82,7 @@ SealedChamber_OuterRoom_EventScript_BraillePQRS:: @ 82391A8 releaseall end -SealedChamber_OuterRoom_EventScript_BraillePeriod:: @ 82391B2 +SealedChamber_OuterRoom_EventScript_BraillePeriod:: lockall braillemessage SealedChamber_OuterRoom_Braille_Period waitbuttonpress @@ -90,7 +90,7 @@ SealedChamber_OuterRoom_EventScript_BraillePeriod:: @ 82391B2 releaseall end -SealedChamber_OuterRoom_EventScript_BrailleWXYZ:: @ 82391BC +SealedChamber_OuterRoom_EventScript_BrailleWXYZ:: lockall braillemessage SealedChamber_OuterRoom_Braille_WXYZ waitbuttonpress @@ -98,7 +98,7 @@ SealedChamber_OuterRoom_EventScript_BrailleWXYZ:: @ 82391BC releaseall end -SealedChamber_OuterRoom_EventScript_BrailleComma:: @ 82391C6 +SealedChamber_OuterRoom_EventScript_BrailleComma:: lockall braillemessage SealedChamber_OuterRoom_Braille_Comma waitbuttonpress @@ -106,7 +106,7 @@ SealedChamber_OuterRoom_EventScript_BrailleComma:: @ 82391C6 releaseall end -SealedChamber_OuterRoom_EventScript_InnerRoomEntranceWall:: @ 82391D0 +SealedChamber_OuterRoom_EventScript_InnerRoomEntranceWall:: lockall goto_if_set FLAG_SYS_BRAILLE_DIG, SealedChamber_OuterRoom_EventScript_HoleInWall braillemessage SealedChamber_OuterRoom_Braille_DigHere @@ -115,12 +115,12 @@ SealedChamber_OuterRoom_EventScript_InnerRoomEntranceWall:: @ 82391D0 releaseall end -SealedChamber_OuterRoom_EventScript_HoleInWall:: @ 82391E3 +SealedChamber_OuterRoom_EventScript_HoleInWall:: msgbox gText_BigHoleInTheWall, MSGBOX_DEFAULT releaseall end -SealedChamber_OuterRoom_EventScript_BrailleDigHere:: @ 82391ED +SealedChamber_OuterRoom_EventScript_BrailleDigHere:: lockall braillemessage SealedChamber_OuterRoom_Braille_DigHere waitbuttonpress diff --git a/data/maps/ShoalCave_HighTideEntranceRoom/scripts.inc b/data/maps/ShoalCave_HighTideEntranceRoom/scripts.inc index d2a93f8e97..0f3518ce63 100644 --- a/data/maps/ShoalCave_HighTideEntranceRoom/scripts.inc +++ b/data/maps/ShoalCave_HighTideEntranceRoom/scripts.inc @@ -1,3 +1,3 @@ -ShoalCave_HighTideEntranceRoom_MapScripts:: @ 82372AB +ShoalCave_HighTideEntranceRoom_MapScripts:: .byte 0 diff --git a/data/maps/ShoalCave_HighTideInnerRoom/scripts.inc b/data/maps/ShoalCave_HighTideInnerRoom/scripts.inc index 6045f80a61..1da508a9b8 100644 --- a/data/maps/ShoalCave_HighTideInnerRoom/scripts.inc +++ b/data/maps/ShoalCave_HighTideInnerRoom/scripts.inc @@ -1,3 +1,3 @@ -ShoalCave_HighTideInnerRoom_MapScripts:: @ 82372AC +ShoalCave_HighTideInnerRoom_MapScripts:: .byte 0 diff --git a/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc b/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc index 89cadd56d1..a1206dfb47 100644 --- a/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc @@ -1,21 +1,21 @@ -ShoalCave_LowTideEntranceRoom_MapScripts:: @ 8236DBA +ShoalCave_LowTideEntranceRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, ShoalCave_LowTideEntranceRoom_OnTransition .byte 0 -ShoalCave_LowTideEntranceRoom_OnTransition: @ 8236DC0 +ShoalCave_LowTideEntranceRoom_OnTransition: special UpdateShoalTideFlag goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideEntranceRoom_EventScript_SetHighTide goto ShoalCave_LowTideEntranceRoom_EventScript_SetLowTide -ShoalCave_LowTideEntranceRoom_EventScript_SetHighTide:: @ 8236DD1 +ShoalCave_LowTideEntranceRoom_EventScript_SetHighTide:: setmaplayoutindex LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM end -ShoalCave_LowTideEntranceRoom_EventScript_SetLowTide:: @ 8236DD5 +ShoalCave_LowTideEntranceRoom_EventScript_SetLowTide:: setmaplayoutindex LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM end -ShoalCave_LowTideEntranceRoom_EventScript_ShellBellExpert:: @ 8236DD9 +ShoalCave_LowTideEntranceRoom_EventScript_ShellBellExpert:: lock faceplayer dotimebasedevents @@ -46,28 +46,28 @@ ShoalCave_LowTideEntranceRoom_EventScript_ShellBellExpert:: @ 8236DD9 end @ If the bag is full, check if a slot will be freed when 4 Shoal Salt or Shells are given -ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreed:: @ 8236E69 +ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreed:: checkitem ITEM_SHOAL_SALT, 5 compare VAR_RESULT, TRUE goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreedShells return -ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreedShells:: @ 8236E7A +ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreedShells:: checkitem ITEM_SHOAL_SHELL, 5 compare VAR_RESULT, TRUE goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_NoSpaceWillBeFreed return -ShoalCave_LowTideEntranceRoom_EventScript_NoSpaceWillBeFreed:: @ 8236E8B +ShoalCave_LowTideEntranceRoom_EventScript_NoSpaceWillBeFreed:: setvar VAR_RESULT, 2 return -ShoalCave_LowTideEntranceRoom_EventScript_NoRoomForShellBell:: @ 8236E91 +ShoalCave_LowTideEntranceRoom_EventScript_NoRoomForShellBell:: msgbox ShoalCave_LowTideEntranceRoom_Text_NoSpaceInYourBag, MSGBOX_DEFAULT release end -ShoalCave_LowTideEntranceRoom_EventScript_NotEnoughShoalSaltOrShells:: @ 8236E9B +ShoalCave_LowTideEntranceRoom_EventScript_NotEnoughShoalSaltOrShells:: checkitem ITEM_SHOAL_SALT, 1 compare VAR_RESULT, TRUE goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_HasSomeShoalSaltOrShell @@ -78,17 +78,17 @@ ShoalCave_LowTideEntranceRoom_EventScript_NotEnoughShoalSaltOrShells:: @ 8236E9B release end -ShoalCave_LowTideEntranceRoom_EventScript_HasSomeShoalSaltOrShell:: @ 8236EC5 +ShoalCave_LowTideEntranceRoom_EventScript_HasSomeShoalSaltOrShell:: msgbox ShoalCave_LowTideEntranceRoom_Text_BringMe4ShoalSaltAndShells, MSGBOX_DEFAULT release end -ShoalCave_LowTideEntranceRoom_EventScript_DeclineShellBell:: @ 8236ECF +ShoalCave_LowTideEntranceRoom_EventScript_DeclineShellBell:: msgbox ShoalCave_LowTideEntranceRoom_Text_WantedToMakeShellBell, MSGBOX_DEFAULT release end -ShoalCave_LowTideEntranceRoom_EventScript_ResetShoalItems:: @ 8236ED9 +ShoalCave_LowTideEntranceRoom_EventScript_ResetShoalItems:: clearflag FLAG_RECEIVED_SHOAL_SALT_1 clearflag FLAG_RECEIVED_SHOAL_SALT_2 clearflag FLAG_RECEIVED_SHOAL_SALT_3 diff --git a/data/maps/ShoalCave_LowTideIceRoom/scripts.inc b/data/maps/ShoalCave_LowTideIceRoom/scripts.inc index 3f7a5cce83..9c9a1a1725 100644 --- a/data/maps/ShoalCave_LowTideIceRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideIceRoom/scripts.inc @@ -1,3 +1,3 @@ -ShoalCave_LowTideIceRoom_MapScripts:: @ 82396A1 +ShoalCave_LowTideIceRoom_MapScripts:: .byte 0 diff --git a/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc b/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc index 69ef1e75f7..9692d2f694 100644 --- a/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc @@ -1,65 +1,65 @@ -ShoalCave_LowTideInnerRoom_MapScripts:: @ 8236EF5 +ShoalCave_LowTideInnerRoom_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, ShoalCave_LowTideInnerRoom_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, ShoalCave_LowTideInnerRoom_OnTransition .byte 0 -ShoalCave_LowTideInnerRoom_OnTransition: @ 8236F00 +ShoalCave_LowTideInnerRoom_OnTransition: goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideInnerRoom_EventScript_SetHighTide goto ShoalCave_LowTideInnerRoom_EventScript_SetLowTide -ShoalCave_LowTideInnerRoom_EventScript_SetHighTide:: @ 8236F0E +ShoalCave_LowTideInnerRoom_EventScript_SetHighTide:: setmaplayoutindex LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM end -ShoalCave_LowTideInnerRoom_EventScript_SetLowTide:: @ 8236F12 +ShoalCave_LowTideInnerRoom_EventScript_SetLowTide:: setmaplayoutindex LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM end -ShoalCave_LowTideInnerRoom_OnLoad: @ 8236F16 +ShoalCave_LowTideInnerRoom_OnLoad: call ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles end -ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles:: @ 8236F1C +ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles:: goto_if_set FLAG_RECEIVED_SHOAL_SALT_1, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2 goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2 setmetatile 31, 8, METATILE_Cave_ShoalCave_DirtPile_Large, 1 goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2 end -ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2:: @ 8236F3D +ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2:: goto_if_set FLAG_RECEIVED_SHOAL_SALT_2, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3 goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3 setmetatile 14, 26, METATILE_Cave_ShoalCave_DirtPile_Large, 1 goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3 end -ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3:: @ 8236F5E +ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3:: goto_if_set FLAG_RECEIVED_SHOAL_SHELL_1, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles4 setmetatile 41, 20, METATILE_Cave_ShoalCave_BlueStone_Large, 1 goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles4 end -ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles4:: @ 8236F76 +ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles4:: goto_if_set FLAG_RECEIVED_SHOAL_SHELL_2, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles5 setmetatile 41, 10, METATILE_Cave_ShoalCave_BlueStone_Large, 1 goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles5 end -ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles5:: @ 8236F8E +ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles5:: goto_if_set FLAG_RECEIVED_SHOAL_SHELL_3, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles6 setmetatile 6, 9, METATILE_Cave_ShoalCave_BlueStone_Large, 1 goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles6 end -ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles6:: @ 8236FA6 +ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles6:: goto_if_set FLAG_RECEIVED_SHOAL_SHELL_4, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatilesEnd setmetatile 16, 13, METATILE_Cave_ShoalCave_BlueStone_Large, 1 return -ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatilesEnd:: @ 8236FB9 +ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatilesEnd:: return -ShoalCave_LowTideInnerRoom_EventScript_ShoalShell1:: @ 8236FBA +ShoalCave_LowTideInnerRoom_EventScript_ShoalShell1:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_1, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell giveitem ITEM_SHOAL_SHELL @@ -71,12 +71,12 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell1:: @ 8236FBA releaseall end -ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell:: @ 8236FEC +ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell:: msgbox ShoalCave_Text_WasShoallShellNowNothing, MSGBOX_DEFAULT releaseall end -ShoalCave_LowTideInnerRoom_EventScript_ShoalShell2:: @ 8236FF6 +ShoalCave_LowTideInnerRoom_EventScript_ShoalShell2:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_2, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell giveitem ITEM_SHOAL_SHELL @@ -88,7 +88,7 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell2:: @ 8236FF6 releaseall end -ShoalCave_LowTideInnerRoom_EventScript_ShoalShell3:: @ 8237028 +ShoalCave_LowTideInnerRoom_EventScript_ShoalShell3:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_3, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell giveitem ITEM_SHOAL_SHELL @@ -100,7 +100,7 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell3:: @ 8237028 releaseall end -ShoalCave_LowTideInnerRoom_EventScript_ShoalShell4:: @ 823705A +ShoalCave_LowTideInnerRoom_EventScript_ShoalShell4:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_4, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell giveitem ITEM_SHOAL_SHELL @@ -112,7 +112,7 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell4:: @ 823705A releaseall end -ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt1:: @ 823708C +ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt1:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_1, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt giveitem ITEM_SHOAL_SALT @@ -124,12 +124,12 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt1:: @ 823708C releaseall end -ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt:: @ 82370BE +ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt:: msgbox ShoalCave_Text_WasShoalSaltNowNothing, MSGBOX_DEFAULT releaseall end -ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt2:: @ 82370C8 +ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt2:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_2, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt giveitem ITEM_SHOAL_SALT diff --git a/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc b/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc index 0c259ff235..d7937998ee 100644 --- a/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc @@ -1,20 +1,20 @@ -ShoalCave_LowTideLowerRoom_MapScripts:: @ 8237156 +ShoalCave_LowTideLowerRoom_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, ShoalCave_LowTideLowerRoom_OnLoad .byte 0 -ShoalCave_LowTideLowerRoom_OnLoad: @ 823715C +ShoalCave_LowTideLowerRoom_OnLoad: call ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatiles end -ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatiles:: @ 8237162 +ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatiles:: goto_if_set FLAG_RECEIVED_SHOAL_SALT_4, ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatilesEnd setmetatile 18, 2, METATILE_Cave_ShoalCave_DirtPile_Large, 1 return -ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatilesEnd:: @ 8237175 +ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatilesEnd:: return -ShoalCave_LowTideLowerRoom_EventScript_ShoalSalt4:: @ 8237176 +ShoalCave_LowTideLowerRoom_EventScript_ShoalSalt4:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_4, ShoalCave_LowTideLowerRoom_EventScript_ReceivedShoalSalt giveitem ITEM_SHOAL_SALT @@ -26,12 +26,12 @@ ShoalCave_LowTideLowerRoom_EventScript_ShoalSalt4:: @ 8237176 releaseall end -ShoalCave_LowTideLowerRoom_EventScript_ReceivedShoalSalt:: @ 82371A8 +ShoalCave_LowTideLowerRoom_EventScript_ReceivedShoalSalt:: msgbox ShoalCave_Text_WasShoalSaltNowNothing, MSGBOX_DEFAULT releaseall end -ShoalCave_LowTideLowerRoom_EventScript_BlackBelt:: @ 82371B2 +ShoalCave_LowTideLowerRoom_EventScript_BlackBelt:: lock faceplayer goto_if_set FLAG_RECEIVED_FOCUS_BAND, ShoalCave_LowTideLowerRoom_EventScript_ReceivedFocusBand @@ -43,18 +43,18 @@ ShoalCave_LowTideLowerRoom_EventScript_BlackBelt:: @ 82371B2 release end -ShoalCave_LowTideLowerRoom_EventScript_ReceivedFocusBand:: @ 82371E1 +ShoalCave_LowTideLowerRoom_EventScript_ReceivedFocusBand:: msgbox ShoalCave_LowTideLowerRoom_Text_EverythingStartsWithFocus, MSGBOX_DEFAULT release end -ShoalCave_LowTideLowerRoom_Text_CanOvercomeColdWithFocus: @ 82371EB +ShoalCave_LowTideLowerRoom_Text_CanOvercomeColdWithFocus: .string "The penetrating cold around these\n" .string "parts is an impediment to training.\p" .string "But with focus, one can overcome!\p" .string "With this FOCUS BAND, buckle down and\n" .string "withstand the cold!$" -ShoalCave_LowTideLowerRoom_Text_EverythingStartsWithFocus: @ 823728D +ShoalCave_LowTideLowerRoom_Text_EverythingStartsWithFocus: .string "Everything starts with focus!$" diff --git a/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc b/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc index 6bbdf03457..a778a18e11 100644 --- a/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc @@ -1,20 +1,20 @@ -ShoalCave_LowTideStairsRoom_MapScripts:: @ 82370FA +ShoalCave_LowTideStairsRoom_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, ShoalCave_LowTideStairsRoom_OnLoad .byte 0 -ShoalCave_LowTideStairsRoom_OnLoad: @ 8237100 +ShoalCave_LowTideStairsRoom_OnLoad: call ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatiles end -ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatiles:: @ 8237106 +ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatiles:: goto_if_set FLAG_RECEIVED_SHOAL_SALT_3, ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatilesEnd setmetatile 11, 11, METATILE_Cave_ShoalCave_DirtPile_Large, 1 return -ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatilesEnd:: @ 8237119 +ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatilesEnd:: return -ShoalCave_LowTideStairsRoom_EventScript_ShoalSalt3:: @ 823711A +ShoalCave_LowTideStairsRoom_EventScript_ShoalSalt3:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_3, ShoalCave_LowTideStairsRoom_EventScript_ReceivedShoalSalt giveitem ITEM_SHOAL_SALT @@ -26,7 +26,7 @@ ShoalCave_LowTideStairsRoom_EventScript_ShoalSalt3:: @ 823711A releaseall end -ShoalCave_LowTideStairsRoom_EventScript_ReceivedShoalSalt:: @ 823714C +ShoalCave_LowTideStairsRoom_EventScript_ReceivedShoalSalt:: msgbox ShoalCave_Text_WasShoalSaltNowNothing, MSGBOX_DEFAULT releaseall end diff --git a/data/maps/SkyPillar_1F/scripts.inc b/data/maps/SkyPillar_1F/scripts.inc index d60feb1557..3ef94b261c 100644 --- a/data/maps/SkyPillar_1F/scripts.inc +++ b/data/maps/SkyPillar_1F/scripts.inc @@ -1,13 +1,13 @@ -SkyPillar_1F_MapScripts:: @ 8239615 +SkyPillar_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SkyPillar_1F_OnTransition .byte 0 -SkyPillar_1F_OnTransition: @ 823961B +SkyPillar_1F_OnTransition: compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_1F_EventScript_CleanFloor end -SkyPillar_1F_EventScript_CleanFloor:: @ 8239627 +SkyPillar_1F_EventScript_CleanFloor:: setmaplayoutindex LAYOUT_SKY_PILLAR_1F_CLEAN return diff --git a/data/maps/SkyPillar_2F/scripts.inc b/data/maps/SkyPillar_2F/scripts.inc index 8a02974ea0..9990ebba96 100644 --- a/data/maps/SkyPillar_2F/scripts.inc +++ b/data/maps/SkyPillar_2F/scripts.inc @@ -1,20 +1,20 @@ -SkyPillar_2F_MapScripts:: @ 823962B +SkyPillar_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CaveHole_CheckFallDownHole map_script MAP_SCRIPT_ON_TRANSITION, SkyPillar_2F_OnTransition map_script MAP_SCRIPT_ON_RESUME, SkyPillar_2F_SetHoleWarp .byte 0 -SkyPillar_2F_OnTransition: @ 823963B +SkyPillar_2F_OnTransition: compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_2F_EventScript_CleanFloor copyvar VAR_ICE_STEP_COUNT, 1 end -SkyPillar_2F_EventScript_CleanFloor:: @ 823964C +SkyPillar_2F_EventScript_CleanFloor:: setmaplayoutindex LAYOUT_SKY_PILLAR_2F_CLEAN return -SkyPillar_2F_SetHoleWarp: @ 8239650 +SkyPillar_2F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR setholewarp MAP_SKY_PILLAR_1F, 255, 0, 0 end diff --git a/data/maps/SkyPillar_3F/scripts.inc b/data/maps/SkyPillar_3F/scripts.inc index d55ac27afb..681137df08 100644 --- a/data/maps/SkyPillar_3F/scripts.inc +++ b/data/maps/SkyPillar_3F/scripts.inc @@ -1,13 +1,13 @@ -SkyPillar_3F_MapScripts:: @ 823965B +SkyPillar_3F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SkyPillar_3F_OnTransition .byte 0 -SkyPillar_3F_OnTransition: @ 8239661 +SkyPillar_3F_OnTransition: compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_3F_EventScript_CleanFloor end -SkyPillar_3F_EventScript_CleanFloor:: @ 823966D +SkyPillar_3F_EventScript_CleanFloor:: setmaplayoutindex LAYOUT_SKY_PILLAR_3F_CLEAN return diff --git a/data/maps/SkyPillar_4F/scripts.inc b/data/maps/SkyPillar_4F/scripts.inc index af54deaff5..bed91a1751 100644 --- a/data/maps/SkyPillar_4F/scripts.inc +++ b/data/maps/SkyPillar_4F/scripts.inc @@ -1,20 +1,20 @@ -SkyPillar_4F_MapScripts:: @ 8239671 +SkyPillar_4F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CaveHole_CheckFallDownHole map_script MAP_SCRIPT_ON_TRANSITION, SkyPillar_4F_OnTransition map_script MAP_SCRIPT_ON_RESUME, SkyPillar_4F_SetHoleWarp .byte 0 -SkyPillar_4F_OnTransition: @ 8239681 +SkyPillar_4F_OnTransition: compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_4F_EventScript_CleanFloor copyvar VAR_ICE_STEP_COUNT, 1 end -SkyPillar_4F_EventScript_CleanFloor:: @ 8239692 +SkyPillar_4F_EventScript_CleanFloor:: setmaplayoutindex LAYOUT_SKY_PILLAR_4F_CLEAN return -SkyPillar_4F_SetHoleWarp: @ 8239696 +SkyPillar_4F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR setholewarp MAP_SKY_PILLAR_3F, 255, 0, 0 end diff --git a/data/maps/SkyPillar_5F/scripts.inc b/data/maps/SkyPillar_5F/scripts.inc index 2ba0c0db8b..12fc72f493 100644 --- a/data/maps/SkyPillar_5F/scripts.inc +++ b/data/maps/SkyPillar_5F/scripts.inc @@ -1,13 +1,13 @@ -SkyPillar_5F_MapScripts:: @ 82396A2 +SkyPillar_5F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SkyPillar_5F_OnTransition .byte 0 -SkyPillar_5F_OnTransition: @ 82396A8 +SkyPillar_5F_OnTransition: compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_5F_EventScript_CleanFloor return -SkyPillar_5F_EventScript_CleanFloor:: @ 82396B4 +SkyPillar_5F_EventScript_CleanFloor:: setmaplayoutindex LAYOUT_SKY_PILLAR_5F_CLEAN return diff --git a/data/maps/SkyPillar_Entrance/scripts.inc b/data/maps/SkyPillar_Entrance/scripts.inc index bc213d376c..b90454bc34 100644 --- a/data/maps/SkyPillar_Entrance/scripts.inc +++ b/data/maps/SkyPillar_Entrance/scripts.inc @@ -1,8 +1,8 @@ -SkyPillar_Entrance_MapScripts:: @ 823929E +SkyPillar_Entrance_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SkyPillar_Entrance_OnTransition .byte 0 -SkyPillar_Entrance_OnTransition: @ 82392A4 +SkyPillar_Entrance_OnTransition: setflag FLAG_LANDMARK_SKY_PILLAR end diff --git a/data/maps/SkyPillar_Outside/scripts.inc b/data/maps/SkyPillar_Outside/scripts.inc index 2e0495bcaa..f11b378ed3 100644 --- a/data/maps/SkyPillar_Outside/scripts.inc +++ b/data/maps/SkyPillar_Outside/scripts.inc @@ -1,40 +1,40 @@ .set LOCALID_WALLACE, 1 -SkyPillar_Outside_MapScripts:: @ 82392A8 +SkyPillar_Outside_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SkyPillar_Outside_OnTransition map_script MAP_SCRIPT_ON_LOAD, SkyPillar_Outside_OnLoad map_script MAP_SCRIPT_ON_FRAME_TABLE, SkyPillar_Outside_OnFrame .byte 0 -SkyPillar_Outside_OnTransition: @ 82392B8 +SkyPillar_Outside_OnTransition: compare VAR_SOOTOPOLIS_CITY_STATE, 3 call_if_eq SkyPillar_Outside_EventScript_HideMapNamePopup compare VAR_SOOTOPOLIS_CITY_STATE, 4 call_if_ge SkyPillar_Outside_EventScript_CheckSetAbnormalWeather end -SkyPillar_Outside_EventScript_HideMapNamePopup:: @ 82392CF +SkyPillar_Outside_EventScript_HideMapNamePopup:: setflag FLAG_HIDE_MAP_NAME_POPUP return -SkyPillar_Outside_EventScript_CheckSetAbnormalWeather:: @ 82392D3 +SkyPillar_Outside_EventScript_CheckSetAbnormalWeather:: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather return -SkyPillar_Outside_OnLoad: @ 82392DD +SkyPillar_Outside_OnLoad: call_if_set FLAG_WALLACE_GOES_TO_SKY_PILLAR, SkyPillar_Outside_EventScript_OpenDoor end -SkyPillar_Outside_EventScript_OpenDoor:: @ 82392E7 +SkyPillar_Outside_EventScript_OpenDoor:: setmetatile 14, 4, METATILE_Pacifidlog_SkyPillar_DoorOpen_Top, 0 setmetatile 14, 5, METATILE_Pacifidlog_SkyPillar_DoorOpen_Bottom, 0 return -SkyPillar_Outside_OnFrame: @ 82392FA +SkyPillar_Outside_OnFrame: map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 3, SkyPillar_Outside_EventScript_WallaceScene .2byte 0 -SkyPillar_Outside_EventScript_WallaceScene:: @ 8239304 +SkyPillar_Outside_EventScript_WallaceScene:: lockall applymovement LOCALID_WALLACE, SkyPillar_Outside_Movement_WallaceApproachPlayer waitmovement 0 @@ -91,7 +91,7 @@ SkyPillar_Outside_EventScript_WallaceScene:: @ 8239304 releaseall end -SkyPillar_Outside_Movement_WallaceApproachPlayer: @ 82393D3 +SkyPillar_Outside_Movement_WallaceApproachPlayer: walk_down walk_down walk_down @@ -104,7 +104,7 @@ SkyPillar_Outside_Movement_WallaceApproachPlayer: @ 82393D3 walk_right step_end -SkyPillar_Outside_Movement_WallaceClimbSkyPillar: @ 82393DE +SkyPillar_Outside_Movement_WallaceClimbSkyPillar: walk_left walk_left walk_left @@ -119,7 +119,7 @@ SkyPillar_Outside_Movement_WallaceClimbSkyPillar: @ 82393DE walk_up step_end -SkyPillar_Outside_Movement_PlayerClimbSkyPillar: @ 82393EB +SkyPillar_Outside_Movement_PlayerClimbSkyPillar: walk_left walk_left walk_left @@ -134,17 +134,17 @@ SkyPillar_Outside_Movement_PlayerClimbSkyPillar: @ 82393EB walk_up step_end -SkyPillar_Outside_EventScript_Wallace:: @ 82393F8 +SkyPillar_Outside_EventScript_Wallace:: end -SkyPillar_Outside_EventScript_ClosedDoor:: @ 82393F9 +SkyPillar_Outside_EventScript_ClosedDoor:: msgbox SkyPillar_Outside_Text_DoorIsClosed, MSGBOX_SIGN end -SkyPillar_Outside_Text_DoorIsClosed: @ 8239402 +SkyPillar_Outside_Text_DoorIsClosed: .string "The door is closed.$" -SkyPillar_Outside_Text_OpenedDoorToSkyPillar: @ 8239416 +SkyPillar_Outside_Text_OpenedDoorToSkyPillar: .string "WALLACE: Oh, my, I'm terribly sorry!\p" .string "In my haste, I didn't notice that\n" .string "I'd left you behind!\p" @@ -152,16 +152,16 @@ SkyPillar_Outside_Text_OpenedDoorToSkyPillar: @ 8239416 .string "the SKY PILLAR.\p" .string "{PLAYER}{KUN}, let's be on our way!$" -SkyPillar_Outside_Text_EarthquakeNotMomentToWaste: @ 82394BC +SkyPillar_Outside_Text_EarthquakeNotMomentToWaste: .string "WALLACE: It's an earthquake!\p" .string "There's not a moment to waste!\n" .string "We've got to hurry!$" -SkyPillar_Outside_Text_SituationGettingWorse: @ 823950C +SkyPillar_Outside_Text_SituationGettingWorse: .string "WALLACE: Hmm…\n" .string "The situation is getting worse…$" -SkyPillar_Outside_Text_GotToGoBackForSootopolis: @ 823953A +SkyPillar_Outside_Text_GotToGoBackForSootopolis: .string "WALLACE: This isn't good…\p" .string "The weather distortion is spreading\n" .string "even here…\p" diff --git a/data/maps/SkyPillar_Top/map.json b/data/maps/SkyPillar_Top/map.json index 90301c53bf..a980c6b07b 100644 --- a/data/maps/SkyPillar_Top/map.json +++ b/data/maps/SkyPillar_Top/map.json @@ -15,7 +15,7 @@ "connections": null, "object_events": [ { - "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_2", + "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA", "x": 14, "y": 7, "elevation": 3, @@ -25,10 +25,10 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_2" + "flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA" }, { - "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_1", + "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_STILL", "x": 14, "y": 6, "elevation": 3, @@ -38,7 +38,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SkyPillar_Top_EventScript_Rayquaza", - "flag": "FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT" + "flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL" } ], "warp_events": [ diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index b8173bc697..acbdb4c8bd 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -1,51 +1,51 @@ .set LOCALID_RAYQUAZA_SLEEPING, 1 -SkyPillar_Top_MapScripts:: @ 82396B8 +SkyPillar_Top_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, SkyPillar_Top_OnResume map_script MAP_SCRIPT_ON_TRANSITION, SkyPillar_Top_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SkyPillar_Top_OnWarp .byte 0 -SkyPillar_Top_OnResume: @ 82396C8 +SkyPillar_Top_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, SkyPillar_Top_EventScript_TryRemoveRayquaza end -SkyPillar_Top_EventScript_TryRemoveRayquaza:: @ 82396D2 +SkyPillar_Top_EventScript_TryRemoveRayquaza:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return -SkyPillar_Top_OnTransition: @ 82396E6 +SkyPillar_Top_OnTransition: compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_Top_EventScript_SetCleanLayout compare VAR_SKY_PILLAR_STATE, 2 call_if_ge SkyPillar_Top_EventScript_TryShowRayquaza end -SkyPillar_Top_EventScript_SetCleanLayout:: @ 82396FD +SkyPillar_Top_EventScript_SetCleanLayout:: setmaplayoutindex LAYOUT_SKY_PILLAR_TOP_CLEAN setobjectmovementtype LOCALID_RAYQUAZA_SLEEPING, MOVEMENT_TYPE_FACE_DOWN return -SkyPillar_Top_EventScript_TryShowRayquaza:: @ 8239705 +SkyPillar_Top_EventScript_TryShowRayquaza:: call_if_unset FLAG_DEFEATED_RAYQUAZA, SkyPillar_Top_EventScript_ShowRayquaza return -SkyPillar_Top_EventScript_ShowRayquaza:: @ 823970F - clearflag FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT +SkyPillar_Top_EventScript_ShowRayquaza:: + clearflag FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL return -SkyPillar_Top_OnWarp: @ 8239713 +SkyPillar_Top_OnWarp: map_script_2 VAR_SKY_PILLAR_STATE, 0, SkyPillar_Top_EventScript_RayquazaFaceDown .2byte 0 -SkyPillar_Top_EventScript_RayquazaFaceDown:: @ 823971D +SkyPillar_Top_EventScript_RayquazaFaceDown:: turnobject LOCALID_RAYQUAZA_SLEEPING, DIR_SOUTH end -SkyPillar_Top_EventScript_Rayquaza:: @ 8239722 +SkyPillar_Top_EventScript_Rayquaza:: lockall waitse playmoncry SPECIES_RAYQUAZA, 2 @@ -67,24 +67,24 @@ SkyPillar_Top_EventScript_Rayquaza:: @ 8239722 releaseall end -SkyPillar_Top_EventScript_DefeatedRayquaza:: @ 8239768 +SkyPillar_Top_EventScript_DefeatedRayquaza:: setflag FLAG_DEFEATED_RAYQUAZA goto SkyPillar_Top_EventScript_DefeatedRayquaza2 end -SkyPillar_Top_EventScript_RanFromRayquaza:: @ 8239771 +SkyPillar_Top_EventScript_RanFromRayquaza:: setvar VAR_0x8004, SPECIES_RAYQUAZA goto SkyPillar_Top_EventScript_RanFromRayquaza2 end -SkyPillar_Top_EventScript_DefeatedRayquaza2:: @ 823977C +SkyPillar_Top_EventScript_DefeatedRayquaza2:: fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED fadescreenswapbuffers FADE_FROM_BLACK releaseall end -SkyPillar_Top_EventScript_RanFromRayquaza2:: @ 8239785 +SkyPillar_Top_EventScript_RanFromRayquaza2:: fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED fadescreenswapbuffers FADE_FROM_BLACK @@ -93,7 +93,7 @@ SkyPillar_Top_EventScript_RanFromRayquaza2:: @ 8239785 releaseall end -SkyPillar_Top_EventScript_AwakenRayquaza:: @ 823979A +SkyPillar_Top_EventScript_AwakenRayquaza:: lockall fadeoutbgm 1 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp @@ -138,17 +138,19 @@ SkyPillar_Top_EventScript_AwakenRayquaza:: @ 823979A releaseall end -SkyPillar_Top_Movement_RayquazaStir: @ 823983A +@ Rayquaza has unusual movement frames +@ See comments, or sAnimTable_Rayquaza +SkyPillar_Top_Movement_RayquazaStir: delay_16 - walk_in_place_fast_left + walk_in_place_fast_left @ Coiled, awake delay_16 delay_16 delay_16 delay_16 delay_16 - walk_in_place_left + walk_in_place_left @ Coiled, mouth open delay_16 - walk_in_place_right + walk_in_place_right @ Normal, awake delay_16 delay_16 delay_16 @@ -157,13 +159,13 @@ SkyPillar_Top_Movement_RayquazaStir: @ 823983A delay_16 step_end -SkyPillar_Top_Movement_RayquazaFlyOff: @ 823984B +SkyPillar_Top_Movement_RayquazaFlyOff: delay_16 - walk_in_place_down + walk_in_place_down @ Coiled, asleep delay_8 - walk_in_place_right + walk_in_place_right @ Normal, awake delay_8 - walk_fastest_up + walk_fastest_up @ Fly up slide_up slide_up slide_up @@ -172,18 +174,18 @@ SkyPillar_Top_Movement_RayquazaFlyOff: @ 823984B slide_up step_end -SkyPillar_Top_Movement_CameraPanUp: @ 8239858 +SkyPillar_Top_Movement_CameraPanUp: walk_slow_up walk_slow_up walk_slow_up step_end -SkyPillar_Top_Movement_CameraPanDown: @ 823985C +SkyPillar_Top_Movement_CameraPanDown: walk_slow_down walk_slow_down walk_slow_down step_end -SkyPillar_Top_Text_RayquazaFlewOff: @ 8239860 +SkyPillar_Top_Text_RayquazaFlewOff: .string "The awakened RAYQUAZA flew off…$" diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc index 983ce97969..4a56717149 100644 --- a/data/maps/SlateportCity/scripts.inc +++ b/data/maps/SlateportCity/scripts.inc @@ -19,12 +19,12 @@ .set LOCALID_GRUNT_11, 33 .set LOCALID_SCOTT, 35 -SlateportCity_MapScripts:: @ 81DCC61 +SlateportCity_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SlateportCity_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_OnFrame .byte 0 -SlateportCity_OnTransition: @ 81DCC6C +SlateportCity_OnTransition: setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 0 call SlateportCity_EventScript_EnterSlateport compare VAR_SLATEPORT_CITY_STATE, 1 @@ -33,13 +33,13 @@ SlateportCity_OnTransition: @ 81DCC6C call_if_eq SlateportCity_EventScript_SetReadyForScottScene end -SlateportCity_EventScript_EnterSlateport:: @ 81DCC8D +SlateportCity_EventScript_EnterSlateport:: setflag FLAG_VISITED_SLATEPORT_CITY setvar VAR_CONTEST_HALL_STATE, 0 setflag FLAG_HIDE_SLATEPORT_CITY_CONTEST_REPORTER return -SlateportCity_EventScript_MovePeopleForSternInterview:: @ 81DCC99 +SlateportCity_EventScript_MovePeopleForSternInterview:: setobjectxyperm LOCALID_CAPT_STERN, 28, 13 setobjectxyperm LOCALID_OLD_WOMAN, 25, 13 setobjectxyperm LOCALID_RICH_BOY, 25, 14 @@ -56,7 +56,7 @@ SlateportCity_EventScript_MovePeopleForSternInterview:: @ 81DCC99 setobjectmovementtype LOCALID_MAN_1, MOVEMENT_TYPE_FACE_LEFT return -SlateportCity_EventScript_SetReadyForScottScene:: @ 81DCCE7 +SlateportCity_EventScript_SetReadyForScottScene:: setflag FLAG_HIDE_MAP_NAME_POPUP getplayerxy VAR_0x8004, VAR_0x8005 compare VAR_0x8004, 30 @@ -65,16 +65,16 @@ SlateportCity_EventScript_SetReadyForScottScene:: @ 81DCCE7 setobjectmovementtype LOCALID_SCOTT, MOVEMENT_TYPE_FACE_RIGHT return -SlateportCity_EventScript_MoveScottLeft:: @ 81DCD06 +SlateportCity_EventScript_MoveScottLeft:: setobjectxyperm LOCALID_SCOTT, 22, 27 setobjectmovementtype LOCALID_SCOTT, MOVEMENT_TYPE_FACE_RIGHT return -SlateportCity_OnFrame: @ 81DCD12 +SlateportCity_OnFrame: map_script_2 VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1, SlateportCity_EventScript_ScottScene .2byte 0 -SlateportCity_EventScript_ScottScene:: @ 81DCD1C +SlateportCity_EventScript_ScottScene:: lockall addobject LOCALID_SCOTT applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_Movement_PlayerFaceScott @@ -110,13 +110,13 @@ SlateportCity_EventScript_ScottScene:: @ 81DCD1C releaseall end -SlateportCity_Movement_PlayerFaceScott: @ 81DCDA8 +SlateportCity_Movement_PlayerFaceScott: delay_16 delay_8 walk_in_place_fastest_left step_end -SlateportCity_Movement_ScottApproachPlayer: @ 81DCDAC +SlateportCity_Movement_ScottApproachPlayer: walk_right walk_right walk_right @@ -126,7 +126,7 @@ SlateportCity_Movement_ScottApproachPlayer: @ 81DCDAC walk_right step_end -SlateportCity_Movement_ScottExit: @ 81DCDB4 +SlateportCity_Movement_ScottExit: walk_left walk_left walk_left @@ -137,7 +137,7 @@ SlateportCity_Movement_ScottExit: @ 81DCDB4 walk_left step_end -SlateportCity_EventScript_EnergyGuru:: @ 81DCDBD +SlateportCity_EventScript_EnergyGuru:: lock faceplayer message SlateportCity_Text_EnergyGuruSellWhatYouNeed @@ -147,7 +147,8 @@ SlateportCity_EventScript_EnergyGuru:: @ 81DCDBD release end -SlateportCity_Pokemart_EnergyGuru: @ 81DCDD4 + .align 2 +SlateportCity_Pokemart_EnergyGuru: .2byte ITEM_PROTEIN .2byte ITEM_IRON .2byte ITEM_CARBOS @@ -158,7 +159,7 @@ SlateportCity_Pokemart_EnergyGuru: @ 81DCDD4 release end -SlateportCity_EventScript_EffortRibbonWoman:: @ 81DCDE4 +SlateportCity_EventScript_EffortRibbonWoman:: lock faceplayer bufferleadmonspeciesname 0 @@ -178,17 +179,17 @@ SlateportCity_EventScript_EffortRibbonWoman:: @ 81DCDE4 release end -SlateportCity_EventScript_MonEVsNotMaxed:: @ 81DCE2E +SlateportCity_EventScript_MonEVsNotMaxed:: msgbox SlateportCity_Text_GoForItLittleHarder, MSGBOX_DEFAULT release end -SlateportCity_EventScript_MonHasEffortRibbon:: @ 81DCE38 +SlateportCity_EventScript_MonHasEffortRibbon:: msgbox SlateportCity_Text_EffortRibbonLooksGoodOnIt, MSGBOX_DEFAULT release end -SlateportCity_EventScript_Cook:: @ 81DCE42 +SlateportCity_EventScript_Cook:: lock faceplayer compare VAR_SLATEPORT_CITY_STATE, 1 @@ -197,12 +198,12 @@ SlateportCity_EventScript_Cook:: @ 81DCE42 release end -SlateportCity_EventScript_CookSternInterview:: @ 81DCE59 +SlateportCity_EventScript_CookSternInterview:: msgbox SlateportCity_Text_CaptainComeBackWithBigFish, MSGBOX_DEFAULT release end -SlateportCity_EventScript_OldWoman:: @ 81DCE63 +SlateportCity_EventScript_OldWoman:: lock faceplayer compare VAR_SLATEPORT_CITY_STATE, 1 @@ -211,12 +212,12 @@ SlateportCity_EventScript_OldWoman:: @ 81DCE63 release end -SlateportCity_EventScript_OldWomanSternInterview:: @ 81DCE7A +SlateportCity_EventScript_OldWomanSternInterview:: msgbox SlateportCity_Text_CaptSternBeingInterviewed, MSGBOX_DEFAULT release end -SlateportCity_EventScript_Girl:: @ 81DCE84 +SlateportCity_EventScript_Girl:: lock faceplayer compare VAR_SLATEPORT_CITY_STATE, 1 @@ -226,17 +227,17 @@ SlateportCity_EventScript_Girl:: @ 81DCE84 release end -SlateportCity_EventScript_GirlSternInterview:: @ 81DCEA4 +SlateportCity_EventScript_GirlSternInterview:: msgbox SlateportCity_Text_InterviewerSoCool, MSGBOX_DEFAULT release end -SlateportCity_EventScript_GirlSecretBase:: @ 81DCEAE +SlateportCity_EventScript_GirlSecretBase:: msgbox SlateportCity_Text_BuyBricksSoDecorWontGetDirty, MSGBOX_DEFAULT release end -SlateportCity_EventScript_RichBoy:: @ 81DCEB8 +SlateportCity_EventScript_RichBoy:: lock faceplayer compare VAR_SLATEPORT_CITY_STATE, 1 @@ -245,22 +246,22 @@ SlateportCity_EventScript_RichBoy:: @ 81DCEB8 release end -SlateportCity_EventScript_RichBoySternInterview:: @ 81DCECF +SlateportCity_EventScript_RichBoySternInterview:: msgbox SlateportCity_Text_SternSaysDiscoveredSomething, MSGBOX_DEFAULT release end -SlateportCity_EventScript_FatMan:: @ 81DCED9 +SlateportCity_EventScript_FatMan:: compare VAR_SLATEPORT_CITY_STATE, 1 goto_if_eq SlateportCity_EventScript_FatManSternInterview msgbox SlateportCity_Text_BushedHikingFromMauville, MSGBOX_NPC end -SlateportCity_EventScript_FatManSternInterview:: @ 81DCEED +SlateportCity_EventScript_FatManSternInterview:: msgbox SlateportCity_Text_AmIOnTV, MSGBOX_SIGN end -SlateportCity_EventScript_Man1:: @ 81DCEF6 +SlateportCity_EventScript_Man1:: lock faceplayer compare VAR_SLATEPORT_CITY_STATE, 1 @@ -269,12 +270,12 @@ SlateportCity_EventScript_Man1:: @ 81DCEF6 release end -SlateportCity_EventScript_Man1SternInterview:: @ 81DCF0D +SlateportCity_EventScript_Man1SternInterview:: msgbox SlateportCity_Text_CaptainsACelebrity, MSGBOX_DEFAULT release end -SlateportCity_EventScript_Woman1:: @ 81DCF17 +SlateportCity_EventScript_Woman1:: lock faceplayer goto_if_set FLAG_DOCK_REJECTED_DEVON_GOODS, SlateportCity_EventScript_Woman1AquaGone @@ -282,16 +283,16 @@ SlateportCity_EventScript_Woman1:: @ 81DCF17 release end -SlateportCity_EventScript_Woman1AquaGone:: @ 81DCF2C +SlateportCity_EventScript_Woman1AquaGone:: msgbox SlateportCity_Text_VisitedMuseumOften, MSGBOX_DEFAULT release end -SlateportCity_EventScript_BattleTentSign:: @ 81DCF36 +SlateportCity_EventScript_BattleTentSign:: msgbox SlateportCity_Text_BattleTentSign, MSGBOX_SIGN end -SlateportCity_EventScript_SternsShipyardSign:: @ 81DCF3F +SlateportCity_EventScript_SternsShipyardSign:: lockall goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_EventScript_SternsShipyardFerryComplete goto_if_set FLAG_BADGE07_GET, SlateportCity_EventScript_SternsShipyardNearsCompletion @@ -299,49 +300,49 @@ SlateportCity_EventScript_SternsShipyardSign:: @ 81DCF3F releaseall end -SlateportCity_EventScript_SternsShipyardNearsCompletion:: @ 81DCF5C +SlateportCity_EventScript_SternsShipyardNearsCompletion:: msgbox SlateportCity_Text_SternsShipyardNearsCompletion, MSGBOX_DEFAULT releaseall end -SlateportCity_EventScript_SternsShipyardFerryComplete:: @ 81DCF66 +SlateportCity_EventScript_SternsShipyardFerryComplete:: msgbox SlateportCity_Text_SternsShipyardFerryComplete, MSGBOX_DEFAULT releaseall end -SlateportCity_EventScript_PokemonFanClubSign:: @ 81DCF70 +SlateportCity_EventScript_PokemonFanClubSign:: msgbox SlateportCity_Text_PokemonFanClubSign, MSGBOX_SIGN end -SlateportCity_EventScript_OceanicMuseumSign:: @ 81DCF79 +SlateportCity_EventScript_OceanicMuseumSign:: msgbox SlateportCity_Text_OceanicMuseumSign, MSGBOX_SIGN end -SlateportCity_EventScript_CitySign:: @ 81DCF82 +SlateportCity_EventScript_CitySign:: msgbox SlateportCity_Text_CitySign, MSGBOX_SIGN end -SlateportCity_EventScript_MarketSign:: @ 81DCF8B +SlateportCity_EventScript_MarketSign:: msgbox SlateportCity_Text_MarketSign, MSGBOX_SIGN end -SlateportCity_EventScript_HarborSign:: @ 81DCF94 +SlateportCity_EventScript_HarborSign:: lockall goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_EventScript_HarborSignFerryComplete msgbox SlateportCity_Text_HarborFerryUnderConstruction, MSGBOX_DEFAULT releaseall end -SlateportCity_EventScript_HarborSignFerryComplete:: @ 81DCFA8 +SlateportCity_EventScript_HarborSignFerryComplete:: msgbox SlateportCity_Text_HarborSign, MSGBOX_DEFAULT releaseall end -SlateportCity_EventScript_NameRatersHouseSign:: @ 81DCFB2 +SlateportCity_EventScript_NameRatersHouseSign:: msgbox SlateportCity_Text_NameRatersHouseSign, MSGBOX_SIGN end -SlateportCity_EventScript_Maniac:: @ 81DCFBB +SlateportCity_EventScript_Maniac:: lock faceplayer compare VAR_SLATEPORT_CITY_STATE, 1 @@ -351,32 +352,32 @@ SlateportCity_EventScript_Maniac:: @ 81DCFBB end @ Unclear if the text here was meant to be different, but its not -SlateportCity_EventScript_ManiacSternInterview:: @ 81DCFD2 +SlateportCity_EventScript_ManiacSternInterview:: msgbox SlateportCity_Text_GetNameRaterToHelpYou, MSGBOX_DEFAULT release end -SlateportCity_EventScript_Woman2:: @ 81DCFDC +SlateportCity_EventScript_Woman2:: msgbox SlateportCity_Text_CantChangeTradeMonName, MSGBOX_NPC end -SlateportCity_EventScript_Sailor1:: @ 81DCFE5 +SlateportCity_EventScript_Sailor1:: msgbox SlateportCity_Text_SeaIsSoWet, MSGBOX_NPC end -SlateportCity_EventScript_Sailor2:: @ 81DCFEE +SlateportCity_EventScript_Sailor2:: msgbox SlateportCity_Text_SinkOldBoats, MSGBOX_NPC end -SlateportCity_EventScript_PokefanF:: @ 81DCFF7 +SlateportCity_EventScript_PokefanF:: msgbox SlateportCity_Text_BuyTooMuch, MSGBOX_NPC end -SlateportCity_EventScript_Man2:: @ 81DD000 +SlateportCity_EventScript_Man2:: msgbox SlateportCity_Text_BattleTentBuiltRecently, MSGBOX_NPC end -SlateportCity_EventScript_AquaGrunt1:: @ 81DD009 +SlateportCity_EventScript_AquaGrunt1:: lock faceplayer msgbox SlateportCity_Text_QuitPushing, MSGBOX_DEFAULT @@ -386,7 +387,7 @@ SlateportCity_EventScript_AquaGrunt1:: @ 81DD009 release end -SlateportCity_EventScript_AquaGrunt2:: @ 81DD020 +SlateportCity_EventScript_AquaGrunt2:: lock faceplayer msgbox SlateportCity_Text_AquaHasPolicy, MSGBOX_DEFAULT @@ -396,7 +397,7 @@ SlateportCity_EventScript_AquaGrunt2:: @ 81DD020 release end -SlateportCity_EventScript_AquaGrunt3:: @ 81DD037 +SlateportCity_EventScript_AquaGrunt3:: lock faceplayer msgbox SlateportCity_Text_BossIsBrilliant, MSGBOX_DEFAULT @@ -406,7 +407,7 @@ SlateportCity_EventScript_AquaGrunt3:: @ 81DD037 release end -SlateportCity_EventScript_AquaGrunt4:: @ 81DD04E +SlateportCity_EventScript_AquaGrunt4:: lock faceplayer msgbox SlateportCity_Text_WhatsNewSchemeIWonder, MSGBOX_DEFAULT @@ -416,7 +417,7 @@ SlateportCity_EventScript_AquaGrunt4:: @ 81DD04E release end -SlateportCity_EventScript_AquaGrunt5:: @ 81DD065 +SlateportCity_EventScript_AquaGrunt5:: lock faceplayer msgbox SlateportCity_Text_ShouldTakeItAll, MSGBOX_DEFAULT @@ -426,7 +427,7 @@ SlateportCity_EventScript_AquaGrunt5:: @ 81DD065 release end -SlateportCity_EventScript_AquaGrunt6:: @ 81DD07C +SlateportCity_EventScript_AquaGrunt6:: lock faceplayer msgbox SlateportCity_Text_DontButtIn, MSGBOX_DEFAULT @@ -436,7 +437,7 @@ SlateportCity_EventScript_AquaGrunt6:: @ 81DD07C release end -SlateportCity_EventScript_AquaGrunt7:: @ 81DD093 +SlateportCity_EventScript_AquaGrunt7:: lock faceplayer msgbox SlateportCity_Text_RemindsMeOfLongLineForGames, MSGBOX_DEFAULT @@ -446,7 +447,7 @@ SlateportCity_EventScript_AquaGrunt7:: @ 81DD093 release end -SlateportCity_EventScript_AquaGrunt8:: @ 81DD0AA +SlateportCity_EventScript_AquaGrunt8:: lock faceplayer msgbox SlateportCity_Text_WhyAreWeLiningUp, MSGBOX_DEFAULT @@ -456,7 +457,7 @@ SlateportCity_EventScript_AquaGrunt8:: @ 81DD0AA release end -SlateportCity_EventScript_AquaGrunt9:: @ 81DD0C1 +SlateportCity_EventScript_AquaGrunt9:: lock faceplayer playse SE_PIN @@ -489,16 +490,16 @@ SlateportCity_EventScript_AquaGrunt9:: @ 81DD0C1 release end -SlateportCity_Movement_DelayAquaGrunt: @ 81DD147 +SlateportCity_Movement_DelayAquaGrunt: delay_16 delay_16 step_end -SlateportCity_EventScript_AquaGrunt10:: @ 81DD14A +SlateportCity_EventScript_AquaGrunt10:: msgbox SlateportCity_Text_ShouldveBroughtMyGameBoy, MSGBOX_SIGN end -SlateportCity_EventScript_AquaGrunt11:: @ 81DD153 +SlateportCity_EventScript_AquaGrunt11:: lock faceplayer msgbox SlateportCity_Text_HotSpringsAfterOperation, MSGBOX_DEFAULT @@ -508,7 +509,7 @@ SlateportCity_EventScript_AquaGrunt11:: @ 81DD153 release end -SlateportCity_EventScript_DollClerk:: @ 81DD16A +SlateportCity_EventScript_DollClerk:: lock faceplayer message gText_HowMayIServeYou @@ -519,7 +520,7 @@ SlateportCity_EventScript_DollClerk:: @ 81DD16A end .align 2 -SlateportCity_PokemartDecor_Dolls: @ 81DD184 +SlateportCity_PokemartDecor_Dolls: .2byte DECOR_AZURILL_DOLL .2byte DECOR_MARILL_DOLL .2byte DECOR_SKITTY_DOLL @@ -527,12 +528,12 @@ SlateportCity_PokemartDecor_Dolls: @ 81DD184 release end -SlateportCity_EventScript_ComeBackWithSecretPower:: @ 81DD18E +SlateportCity_EventScript_ComeBackWithSecretPower:: msgbox gText_ComeBackWithSecretPower, MSGBOX_DEFAULT release end -SlateportCity_EventScript_DecorClerk:: @ 81DD198 +SlateportCity_EventScript_DecorClerk:: lock faceplayer goto_if_unset FLAG_RECEIVED_SECRET_POWER, SlateportCity_EventScript_ComeBackWithSecretPower @@ -543,7 +544,8 @@ SlateportCity_EventScript_DecorClerk:: @ 81DD198 release end -SlateportCity_PokemartDecor: @ 81DD1B8 + .align 2 +SlateportCity_PokemartDecor: .2byte DECOR_RED_BRICK .2byte DECOR_BLUE_BRICK .2byte DECOR_YELLOW_BRICK @@ -562,7 +564,7 @@ SlateportCity_PokemartDecor: @ 81DD1B8 release end -SlateportCity_EventScript_PowerTMClerk:: @ 81DD1D8 +SlateportCity_EventScript_PowerTMClerk:: lock faceplayer message gText_HowMayIServeYou @@ -573,7 +575,7 @@ SlateportCity_EventScript_PowerTMClerk:: @ 81DD1D8 end .align 2 -SlateportCity_Pokemart_PowerTMs: @ 81DD1F0 +SlateportCity_Pokemart_PowerTMs: .2byte ITEM_TM10 @ Hidden Power .2byte ITEM_TM43 @ Secret Power .2byte ITEM_NONE @@ -581,7 +583,7 @@ SlateportCity_Pokemart_PowerTMs: @ 81DD1F0 end @ Scene with Capt Sterns interview and Team Aqua announcing plans to steal Submarine -SlateportCity_EventScript_CaptStern:: @ 81DD1F8 +SlateportCity_EventScript_CaptStern:: lockall msgbox SlateportCity_Text_SternMoveAheadWithExploration, MSGBOX_DEFAULT msgbox SlateportCity_Text_GabbyWonderfulThanksForInterview, MSGBOX_DEFAULT @@ -603,7 +605,7 @@ SlateportCity_EventScript_CaptStern:: @ 81DD1F8 applymovement LOCALID_CAPT_STERN, Common_Movement_WalkInPlaceFastestUp waitmovement 0 msgbox SlateportCity_Text_OhPlayerWeMadeDiscovery, MSGBOX_DEFAULT - playbgm MUS_ENCOUNTER_AQUA, 0 + playbgm MUS_ENCOUNTER_AQUA, FALSE msgbox SlateportCity_Text_AquaWillAssumeControlOfSubmarine, MSGBOX_DEFAULT applymovement LOCALID_COOK, Common_Movement_WalkInPlaceFastestLeft applymovement LOCALID_FAT_MAN, Common_Movement_WalkInPlaceFastestLeft @@ -638,7 +640,7 @@ SlateportCity_EventScript_CaptStern:: @ 81DD1F8 releaseall end -SlateportCity_Movement_OldWomanConcern: @ 81DD309 +SlateportCity_Movement_OldWomanConcern: delay_16 delay_16 emote_question_mark @@ -648,7 +650,7 @@ SlateportCity_Movement_OldWomanConcern: @ 81DD309 walk_in_place_fastest_left step_end -SlateportCity_Movement_ManConcern: @ 81DD311 +SlateportCity_Movement_ManConcern: emote_question_mark walk_in_place_fastest_up delay_16 @@ -658,7 +660,7 @@ SlateportCity_Movement_ManConcern: @ 81DD311 walk_in_place_fastest_left step_end -SlateportCity_Movement_GabbyExit: @ 81DD319 +SlateportCity_Movement_GabbyExit: delay_16 walk_left walk_left @@ -673,7 +675,7 @@ SlateportCity_Movement_GabbyExit: @ 81DD319 walk_left step_end -SlateportCity_Movement_TyExit: @ 81DD326 +SlateportCity_Movement_TyExit: walk_down walk_left walk_left @@ -689,19 +691,19 @@ SlateportCity_Movement_TyExit: @ 81DD326 walk_left step_end -SlateportCity_Movement_Unused: @ 81DD334 +SlateportCity_Movement_Unused: walk_down walk_in_place_fastest_up step_end -SlateportCity_Movement_SternEnterHarbor: @ 81DD337 +SlateportCity_Movement_SternEnterHarbor: walk_right walk_up walk_up set_invisible step_end -SlateportCity_Movement_SternWatchGabbyAndTyExit: @ 81DD33C +SlateportCity_Movement_SternWatchGabbyAndTyExit: delay_16 delay_16 delay_16 @@ -711,7 +713,7 @@ SlateportCity_Movement_SternWatchGabbyAndTyExit: @ 81DD33C walk_left step_end -SlateportCity_Movement_PlayerEnterHarbor: @ 81DD344 +SlateportCity_Movement_PlayerEnterHarbor: walk_in_place_fastest_right delay_16 delay_16 @@ -719,7 +721,7 @@ SlateportCity_Movement_PlayerEnterHarbor: @ 81DD344 walk_up step_end -SlateportCity_Movement_PlayerFaceStern: @ 81DD34A +SlateportCity_Movement_PlayerFaceStern: delay_16 delay_16 delay_16 @@ -730,19 +732,19 @@ SlateportCity_Movement_PlayerFaceStern: @ 81DD34A walk_in_place_fastest_down step_end -SlateportCity_EventScript_Ty:: @ 81DD353 +SlateportCity_EventScript_Ty:: msgbox SlateportCity_Text_BigSmileForCamera, MSGBOX_SIGN end -SlateportCity_EventScript_Gabby:: @ 81DD35C +SlateportCity_EventScript_Gabby:: msgbox SlateportCity_Text_MostInvaluableExperience, MSGBOX_SIGN end -SlateportCity_EventScript_Man3:: @ 81DD365 +SlateportCity_EventScript_Man3:: msgbox SlateportCity_Text_WonderIfLighthouseStartlesPokemon, MSGBOX_NPC end -SlateportCity_EventScript_BerryPowderClerk:: @ 81DD36E +SlateportCity_EventScript_BerryPowderClerk:: lock faceplayer goto_if_set FLAG_RECEIVED_POWDER_JAR, SlateportCity_EventScript_ReceivedPowderJar @@ -753,7 +755,7 @@ SlateportCity_EventScript_BerryPowderClerk:: @ 81DD36E release end -SlateportCity_EventScript_ReceivedPowderJar:: @ 81DD39A +SlateportCity_EventScript_ReceivedPowderJar:: setvar VAR_0x8004, 1 specialvar VAR_RESULT, HasEnoughBerryPowder compare VAR_RESULT, FALSE @@ -763,12 +765,12 @@ SlateportCity_EventScript_ReceivedPowderJar:: @ 81DD39A goto SlateportCity_EventScript_ChooseBerryPowderItem end -SlateportCity_EventScript_ExplainBerryPowder:: @ 81DD3C0 +SlateportCity_EventScript_ExplainBerryPowder:: msgbox SlateportCity_Text_ExplainBerryPowder, MSGBOX_DEFAULT release end -SlateportCity_EventScript_ChooseBerryPowderItem:: @ 81DD3CA +SlateportCity_EventScript_ChooseBerryPowderItem:: message SlateportCity_Text_ExchangeWhatWithIt waitmessage setvar VAR_0x8004, SCROLL_MULTI_BERRY_POWDER_VENDOR @@ -790,90 +792,90 @@ SlateportCity_EventScript_ChooseBerryPowderItem:: @ 81DD3CA case MULTI_B_PRESSED, SlateportCity_EventScript_CancelPowderItemSelect end -SlateportCity_EventScript_EnergyPowder:: @ 81DD46E +SlateportCity_EventScript_EnergyPowder:: bufferitemname 0, ITEM_ENERGY_POWDER setvar VAR_0x8008, ITEM_ENERGY_POWDER setvar VAR_0x8009, 50 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_EnergyRoot:: @ 81DD482 +SlateportCity_EventScript_EnergyRoot:: bufferitemname 0, ITEM_ENERGY_ROOT setvar VAR_0x8008, ITEM_ENERGY_ROOT setvar VAR_0x8009, 80 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_HealPowder:: @ 81DD496 +SlateportCity_EventScript_HealPowder:: bufferitemname 0, ITEM_HEAL_POWDER setvar VAR_0x8008, ITEM_HEAL_POWDER setvar VAR_0x8009, 50 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_RevivalHerb:: @ 81DD4AA +SlateportCity_EventScript_RevivalHerb:: bufferitemname 0, ITEM_REVIVAL_HERB setvar VAR_0x8008, ITEM_REVIVAL_HERB setvar VAR_0x8009, 300 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_Protein:: @ 81DD4BE +SlateportCity_EventScript_Protein:: bufferitemname 0, ITEM_PROTEIN setvar VAR_0x8008, ITEM_PROTEIN setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_Iron:: @ 81DD4D2 +SlateportCity_EventScript_Iron:: bufferitemname 0, ITEM_IRON setvar VAR_0x8008, ITEM_IRON setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_Carbos:: @ 81DD4E6 +SlateportCity_EventScript_Carbos:: bufferitemname 0, ITEM_CARBOS setvar VAR_0x8008, ITEM_CARBOS setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_Calcium:: @ 81DD4FA +SlateportCity_EventScript_Calcium:: bufferitemname 0, ITEM_CALCIUM setvar VAR_0x8008, ITEM_CALCIUM setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_Zinc:: @ 81DD50E +SlateportCity_EventScript_Zinc:: bufferitemname 0, ITEM_ZINC setvar VAR_0x8008, ITEM_ZINC setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_HPUp:: @ 81DD522 +SlateportCity_EventScript_HPUp:: bufferitemname 0, ITEM_HP_UP setvar VAR_0x8008, ITEM_HP_UP setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_PPUp:: @ 81DD536 +SlateportCity_EventScript_PPUp:: bufferitemname 0, ITEM_PP_UP setvar VAR_0x8008, ITEM_PP_UP setvar VAR_0x8009, 3000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end -SlateportCity_EventScript_CancelPowderItemSelect:: @ 81DD54A +SlateportCity_EventScript_CancelPowderItemSelect:: msgbox SlateportCity_Text_ComeBackToTradeBerryPowder, MSGBOX_DEFAULT special RemoveBerryPowderVendorMenu release end -SlateportCity_EventScript_TryBuyBerryPowderItem:: @ 81DD557 +SlateportCity_EventScript_TryBuyBerryPowderItem:: msgbox SlateportCity_Text_ExchangeBerryPowderForItem, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SlateportCity_EventScript_ChooseBerryPowderItem @@ -895,18 +897,18 @@ SlateportCity_EventScript_TryBuyBerryPowderItem:: @ 81DD557 release end -SlateportCity_EventScript_NoRoomForBerryPowderItem:: @ 81DD5C1 +SlateportCity_EventScript_NoRoomForBerryPowderItem:: msgbox gText_TheBagIsFull, MSGBOX_DEFAULT special RemoveBerryPowderVendorMenu release end -SlateportCity_EventScript_NotEnoughBerryPowder:: @ 81DD5CE +SlateportCity_EventScript_NotEnoughBerryPowder:: msgbox SlateportCity_Text_DontHaveEnoughBerryPowder, MSGBOX_DEFAULT goto SlateportCity_EventScript_ChooseBerryPowderItem end -SlateportCity_EventScript_ScottBattleTentScene:: @ 81DD5DC +SlateportCity_EventScript_ScottBattleTentScene:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp waitmovement 0 @@ -929,23 +931,23 @@ SlateportCity_EventScript_ScottBattleTentScene:: @ 81DD5DC releaseall end -SlateportCity_Movement_PushPlayerDown: @ 81DD630 +SlateportCity_Movement_PushPlayerDown: lock_facing_direction walk_down unlock_facing_direction step_end -SlateportCity_Movement_PlayerWatchScottExit: @ 81DD634 +SlateportCity_Movement_PlayerWatchScottExit: delay_16 walk_in_place_fastest_right step_end -SlateportCity_Movement_ScottExitBattleTent: @ 81DD637 +SlateportCity_Movement_ScottExitBattleTent: delay_8 walk_down step_end -SlateportCity_Movement_ScottExitAfterBattleTent: @ 81DD63A +SlateportCity_Movement_ScottExitAfterBattleTent: walk_right walk_right walk_right @@ -956,193 +958,193 @@ SlateportCity_Movement_ScottExitAfterBattleTent: @ 81DD63A walk_right step_end -SlateportCity_EventScript_BerryCrushRankingsSign:: @ 81DD643 +SlateportCity_EventScript_BerryCrushRankingsSign:: lockall special ShowBerryCrushRankings waitstate releaseall end -SlateportCity_Text_EnergyGuruSellWhatYouNeed: @ 81DD64A +SlateportCity_Text_EnergyGuruSellWhatYouNeed: .string "I'm the ENERGY GURU! I'll go for it and\n" .string "sell you what you need!$" -SlateportCity_Text_OhYourPokemon: @ 81DD68A +SlateportCity_Text_OhYourPokemon: .string "Oh?\n" .string "Your {STR_VAR_1}…$" -SlateportCity_Text_PleaseGiveItThisEffortRibbon: @ 81DD697 +SlateportCity_Text_PleaseGiveItThisEffortRibbon: .string "Went for it stupendously!\p" .string "As its reward, please give it this\n" .string "EFFORT RIBBON.$" -SlateportCity_Text_ReceivedEffortRibbon: @ 81DD6E3 +SlateportCity_Text_ReceivedEffortRibbon: .string "{PLAYER} received the EFFORT RIBBON.$" -SlateportCity_Text_PutEffortRibbonOnMon: @ 81DD702 +SlateportCity_Text_PutEffortRibbonOnMon: .string "{PLAYER} put the EFFORT RIBBON\n" .string "on {STR_VAR_1}.$" -SlateportCity_Text_GoForItLittleHarder: @ 81DD722 +SlateportCity_Text_GoForItLittleHarder: .string "You have to go for it a little harder.\p" .string "If you do, I'll give your POKéMON\n" .string "something nice.$" -SlateportCity_Text_EffortRibbonLooksGoodOnIt: @ 81DD77B +SlateportCity_Text_EffortRibbonLooksGoodOnIt: .string "Oh! Your {STR_VAR_1}, that EFFORT\n" .string "RIBBON looks good on it!$" -SlateportCity_Text_WonderIfLighthouseStartlesPokemon: @ 81DD7AD +SlateportCity_Text_WonderIfLighthouseStartlesPokemon: .string "The light of the lighthouse reaches\n" .string "dozens of miles away.\p" .string "I wonder if it doesn't startle POKéMON\n" .string "in the sea.$" -SlateportCity_Text_SeaweedFullOfLife: @ 81DD81A +SlateportCity_Text_SeaweedFullOfLife: .string "Ooh, look at this!\p" .string "The seaweed you can get around these\n" .string "parts is fresh and full of life.\p" .string "Why, it looks like it can even rear up\n" .string "and attack!$" -SlateportCity_Text_HowTownIsBornAndGrows: @ 81DD8A6 +SlateportCity_Text_HowTownIsBornAndGrows: .string "Where the water is clean, the fruits\n" .string "of bountiful harvest gather.\p" .string "And where people gather, a market\n" .string "soon starts.\p" .string "That is how a town is born and grows.$" -SlateportCity_Text_SlateportWonderfulPlace: @ 81DD93D +SlateportCity_Text_SlateportWonderfulPlace: .string "Shopping where you can breathe the\n" .string "scent of the ocean…\p" .string "SLATEPORT is such a wonderful place!$" -SlateportCity_Text_BuyBricksSoDecorWontGetDirty: @ 81DD999 +SlateportCity_Text_BuyBricksSoDecorWontGetDirty: .string "If you put DOLLS or CUSHIONS on\n" .string "the floor, they'll get dirty.\p" .string "I'm going to buy some BRICKS so my\n" .string "DOLLS and CUSHIONS won't get dirty\l" .string "when I leave them out.$" -SlateportCity_Text_GoingToCompeteInBattleTent: @ 81DDA34 +SlateportCity_Text_GoingToCompeteInBattleTent: .string "Wroooar! I'm going to compete in\n" .string "the BATTLE TENT, too!\p" .string "But before that, I need to catch\n" .string "some POKéMON!$" -SlateportCity_Text_BushedHikingFromMauville: @ 81DDA9A +SlateportCity_Text_BushedHikingFromMauville: .string "Whew… I'm just bushed…\p" .string "I hiked over from MAUVILLE CITY.\n" .string "But, boy, this city's huge.\p" .string "If I'd known this, I would've ridden\n" .string "my BIKE here.$" -SlateportCity_Text_EveryoneCallsHimCaptStern: @ 81DDB21 +SlateportCity_Text_EveryoneCallsHimCaptStern: .string "STERN, the fellow who built the\n" .string "MUSEUM, also happens to be the leader\l" .string "of an undersea exploration team.\p" .string "So, everyone calls him CAPT. STERN.$" -SlateportCity_Text_WhatsLongLineOverThere: @ 81DDBAC +SlateportCity_Text_WhatsLongLineOverThere: .string "What is that over there?\n" .string "That long line…$" -SlateportCity_Text_VisitedMuseumOften: @ 81DDBD5 +SlateportCity_Text_VisitedMuseumOften: .string "When I was a child, I visited\n" .string "the MUSEUM often.\p" .string "I used to dream about the mysteries of\n" .string "the sea after seeing the exhibits.$" -SlateportCity_Text_QuitPushing: @ 81DDC4F +SlateportCity_Text_QuitPushing: .string "Hey, there! Quit pushing!\n" .string "This is the line, can't you see?$" -SlateportCity_Text_AquaHasPolicy: @ 81DDC8A +SlateportCity_Text_AquaHasPolicy: .string "TEAM AQUA has a policy of\n" .string "assembling and dispersing at\l" .string "the operation site.$" -SlateportCity_Text_BossIsBrilliant: @ 81DDCD5 +SlateportCity_Text_BossIsBrilliant: .string "Our BOSS is brilliant.\p" .string "What would he want to do with\n" .string "a MUSEUM now?$" -SlateportCity_Text_WhatsNewSchemeIWonder: @ 81DDD18 +SlateportCity_Text_WhatsNewSchemeIWonder: .string "What's the new scheme, I wonder?\p" .string "Our BOSS is scary when he's mad, so\n" .string "I'd better not screw things up…$" -SlateportCity_Text_ShouldTakeItAll: @ 81DDD7D +SlateportCity_Text_ShouldTakeItAll: .string "If there's something we need in\n" .string "the MUSEUM, we should take it all!$" -SlateportCity_Text_DontButtIn: @ 81DDDC0 +SlateportCity_Text_DontButtIn: .string "Hey, you there!\n" .string "Don't butt in!$" -SlateportCity_Text_RemindsMeOfLongLineForGames: @ 81DDDDF +SlateportCity_Text_RemindsMeOfLongLineForGames: .string "A long line, huh?\p" .string "It reminds me of the times I lined up to\n" .string "buy smash-hit games…$" -SlateportCity_Text_WhyAreWeLiningUp: @ 81DDE2F +SlateportCity_Text_WhyAreWeLiningUp: .string "Why are we even lining up and paying?\n" .string "We should just march in!$" -SlateportCity_Text_WhatDoYouWant: @ 81DDE6E +SlateportCity_Text_WhatDoYouWant: .string "What?\n" .string "What do you want?$" -SlateportCity_Text_IllReadSignForYou: @ 81DDE86 +SlateportCity_Text_IllReadSignForYou: .string "You want to read this sign?\n" .string "I'll read it for you!$" -SlateportCity_Text_SaysSomethingLikeSeaIsEndless: @ 81DDEB8 +SlateportCity_Text_SaysSomethingLikeSeaIsEndless: .string "Let's see…\p" .string "Um… I think it says something like\n" .string "“the life in the sea is endless.”\p" .string "Yup, I'm pretty sure that's what\n" .string "it says.$" -SlateportCity_Text_ShouldveBroughtMyGameBoy: @ 81DDF32 +SlateportCity_Text_ShouldveBroughtMyGameBoy: .string "Grumble…\p" .string "I should've brought my Game Boy\n" .string "Advance so I wouldn't get bored in line…\p" .string "Grumble…$" -SlateportCity_Text_HotSpringsAfterOperation: @ 81DDF8D +SlateportCity_Text_HotSpringsAfterOperation: .string "When this operation's over, I'll take\n" .string "you to a hot spring spa!\p" .string "That's what our leader said.\n" .string "I can't wait!$" -SlateportCity_Text_SeaIsSoWet: @ 81DDFF7 +SlateportCity_Text_SeaIsSoWet: .string "The sea is just so vast…\p" .string "Could the sea have been made by\n" .string "the tears shed by POKéMON?$" -SlateportCity_Text_SinkOldBoats: @ 81DE04B +SlateportCity_Text_SinkOldBoats: .string "Do you know what they do with old\n" .string "ships that become too creaky to sail?\p" .string "They sink them in the sea so they\n" .string "become habitats for POKéMON.$" -SlateportCity_Text_BuyTooMuch: @ 81DE0D2 +SlateportCity_Text_BuyTooMuch: .string "Whenever I visit here, I get carried\n" .string "away and buy too much.$" -SlateportCity_Text_GetNameRaterToHelpYou: @ 81DE10E +SlateportCity_Text_GetNameRaterToHelpYou: .string "If you want to change your POKéMON's\n" .string "nickname, you'll have to get the NAME\l" .string "RATER to help you.$" -SlateportCity_Text_CantChangeTradeMonName: @ 81DE16C +SlateportCity_Text_CantChangeTradeMonName: .string "Any POKéMON you get in a trade,\n" .string "you can't change its nickname.\p" .string "The original TRAINER's love for that\n" .string "POKéMON is in the nickname.$" -SlateportCity_Text_BattleTentBuiltRecently: @ 81DE1EC +SlateportCity_Text_BattleTentBuiltRecently: .string "Recently, a BATTLE TENT was built\n" .string "in SLATEPORT.\p" .string "GYMS are fun, but the BATTLE TENT's\n" @@ -1150,62 +1152,62 @@ SlateportCity_Text_BattleTentBuiltRecently: @ 81DE1EC .string "You should go find tough POKéMON\n" .string "for the BATTLE TENT!$" -SlateportCity_Text_CaptSternBeingInterviewed: @ 81DE28E +SlateportCity_Text_CaptSternBeingInterviewed: .string "I was hoping that it was a famous star\n" .string "so I could get an autograph.\p" .string "But who's that being interviewed?\n" .string "Isn't that CAPT. STERN?$" -SlateportCity_Text_InterviewerSoCool: @ 81DE30C +SlateportCity_Text_InterviewerSoCool: .string "That lady interviewer is so cool\n" .string "and pretty.\p" .string "When I grow up, I'm going to be\n" .string "an international journalist!$" -SlateportCity_Text_SternSaysDiscoveredSomething: @ 81DE376 +SlateportCity_Text_SternSaysDiscoveredSomething: .string "CAPT. STERN says they discovered\n" .string "something at the bottom of the sea.\p" .string "I wonder what it is?\n" .string "What could it be?$" -SlateportCity_Text_CaptainComeBackWithBigFish: @ 81DE3E2 +SlateportCity_Text_CaptainComeBackWithBigFish: .string "What's going on here?\p" .string "Did the good CAPTAIN come back with\n" .string "a big fish from the ocean floor?$" -SlateportCity_Text_AmIOnTV: @ 81DE43D +SlateportCity_Text_AmIOnTV: .string "Hey! Are you watching?\n" .string "Am I on TV?$" -SlateportCity_Text_CaptainsACelebrity: @ 81DE460 +SlateportCity_Text_CaptainsACelebrity: .string "A TV interview! Here!\n" .string "The CAPTAIN's a celebrity!$" -SlateportCity_Text_BigSmileForCamera: @ 81DE491 +SlateportCity_Text_BigSmileForCamera: .string "TY: Okay, CAPT. STERN, a big smile\n" .string "for the camera!$" -SlateportCity_Text_MostInvaluableExperience: @ 81DE4C4 +SlateportCity_Text_MostInvaluableExperience: .string "GABBY: I see, I see. You've had a most\n" .string "invaluable experience…$" -SlateportCity_Text_SternMoveAheadWithExploration: @ 81DE502 +SlateportCity_Text_SternMoveAheadWithExploration: .string "CAPT. STERN: Yes, indeed. We intend to\n" .string "move ahead with our exploration.$" -SlateportCity_Text_GabbyWonderfulThanksForInterview: @ 81DE54A +SlateportCity_Text_GabbyWonderfulThanksForInterview: .string "GABBY: That's wonderful, CAPT. STERN!\n" .string "Thank you for taking the time from\l" .string "your busy schedule to talk to us.\p" .string "We hope we can interview you again\n" .string "with news of more discoveries!$" -SlateportCity_Text_SternWhewFirstInterview: @ 81DE5F7 +SlateportCity_Text_SternWhewFirstInterview: .string "CAPT. STERN: Whew…\p" .string "That was my first time to be filmed for\n" .string "TV. That was nerve-wracking.$" -SlateportCity_Text_OhPlayerWeMadeDiscovery: @ 81DE64F +SlateportCity_Text_OhPlayerWeMadeDiscovery: .string "Oh! {PLAYER}{KUN}!\n" .string "You're looking great!\p" .string "We made a huge discovery on our last\n" @@ -1215,7 +1217,7 @@ SlateportCity_Text_OhPlayerWeMadeDiscovery: @ 81DE64F .string "We think it's the habitat of a POKéMON\n" .string "that's said to have been long extinct.$" -SlateportCity_Text_AquaWillAssumeControlOfSubmarine: @ 81DE724 +SlateportCity_Text_AquaWillAssumeControlOfSubmarine: .string "Fufufu…\n" .string "CAPT. STERN, I presume.\p" .string "We of TEAM AQUA will assume\n" @@ -1226,77 +1228,77 @@ SlateportCity_Text_AquaWillAssumeControlOfSubmarine: @ 81DE724 .string "Just watch and learn what TEAM\l" .string "AQUA has planned!$" -SlateportCity_Text_SternWhatWasAllThat: @ 81DE7F7 +SlateportCity_Text_SternWhatWasAllThat: .string "CAPT. STERN: What was that all about?\p" .string "It sounded like someone using\n" .string "a megaphone…\p" .string "Where did it come from?$" -SlateportCity_Text_FromHarborTryingToTakeSub: @ 81DE860 +SlateportCity_Text_FromHarborTryingToTakeSub: .string "It's from the HARBOR!\p" .string "The submarine!\n" .string "They're trying to take it!$" -SlateportCity_Text_PleaseComeWithMe: @ 81DE8A0 +SlateportCity_Text_PleaseComeWithMe: .string "{PLAYER}{KUN}!\n" .string "Please, come with me!$" -SlateportCity_Text_BattleTentSign: @ 81DE8BC +SlateportCity_Text_BattleTentSign: .string "BATTLE TENT SLATEPORT SITE\n" .string "“Find it! The ultimate POKéMON!”$" -SlateportCity_Text_SternsShipyardWantedSign: @ 81DE8F8 +SlateportCity_Text_SternsShipyardWantedSign: .string "STERN'S SHIPYARD\p" .string "“Wanted: A sailor capable of sailing\n" .string "in all currents.”$" -SlateportCity_Text_SternsShipyardNearsCompletion: @ 81DE940 +SlateportCity_Text_SternsShipyardNearsCompletion: .string "STERN'S SHIPYARD\p" .string "“The ferry S.S. TIDAL nears\n" .string "completion for serving the ports of\l" .string "SLATEPORT and LILYCOVE.”$" -SlateportCity_Text_SternsShipyardFerryComplete: @ 81DE9AA +SlateportCity_Text_SternsShipyardFerryComplete: .string "STERN'S SHIPYARD\p" .string "“Boarding of the SLATEPORT-LILYCOVE\n" .string "ferry S.S. TIDAL is handled at the\l" .string "HARBOR.”$" -SlateportCity_Text_PokemonFanClubSign: @ 81DEA0B +SlateportCity_Text_PokemonFanClubSign: .string "POKéMON FAN CLUB\n" .string "“Calling all fans of POKéMON!”$" -SlateportCity_Text_OceanicMuseumSign: @ 81DEA3B +SlateportCity_Text_OceanicMuseumSign: .string "“The endless sea sustains\n" .string "all life.”\p" .string "OCEANIC MUSEUM$" -SlateportCity_Text_CitySign: @ 81DEA6F +SlateportCity_Text_CitySign: .string "SLATEPORT CITY\p" .string "“The port where people and POKéMON\n" .string "cross paths.”$" -SlateportCity_Text_MarketSign: @ 81DEAAF +SlateportCity_Text_MarketSign: .string "SLATEPORT MARKET\n" .string "“Unique items found nowhere else!”$" -SlateportCity_Text_HarborFerryUnderConstruction: @ 81DEAE3 +SlateportCity_Text_HarborFerryUnderConstruction: .string "SLATEPORT HARBOR\p" .string "“The ferry S.S. TIDAL is under\n" .string "construction in the SHIPYARD.\p" .string "“Service is scheduled to begin\n" .string "shortly.”$" -SlateportCity_Text_HarborSign: @ 81DEB5A +SlateportCity_Text_HarborSign: .string "SLATEPORT HARBOR\p" .string "“Enjoy a delightful cruise on\n" .string "the ferry S.S. TIDAL.”$" -SlateportCity_Text_NameRatersHouseSign: @ 81DEBA0 +SlateportCity_Text_NameRatersHouseSign: .string "NAME RATER'S HOUSE\n" .string "“POKéMON nicknames rated.”$" -SlateportCity_Text_ExplainBerries: @ 81DEBCE +SlateportCity_Text_ExplainBerries: .string "If a wild POKéMON gets hurt, it heals\n" .string "itself by chewing on BERRIES.\p" .string "Did you know that?\p" @@ -1311,7 +1313,7 @@ SlateportCity_Text_ExplainBerries: @ 81DEBCE .string "I've got something good for someone\n" .string "like you.$" -SlateportCity_Text_ExplainBerryPowder: @ 81DED27 +SlateportCity_Text_ExplainBerryPowder: .string "I recently had machines installed at\n" .string "POKéMON CENTERS for crushing BERRIES.\p" .string "The BERRY CRUSH machines are at\n" @@ -1322,39 +1324,39 @@ SlateportCity_Text_ExplainBerryPowder: @ 81DED27 .string "I can make you all sorts of medicine\n" .string "if you bring me lots of BERRY POWDER.$" -SlateportCity_Text_BroughtMeSomeBerryPowder: @ 81DEE40 +SlateportCity_Text_BroughtMeSomeBerryPowder: .string "Have you brought me some\n" .string "BERRY POWDER?$" -SlateportCity_Text_ExchangeWhatWithIt: @ 81DEE67 +SlateportCity_Text_ExchangeWhatWithIt: .string "What would you like to exchange\n" .string "it with?$" -SlateportCity_Text_ExchangeBerryPowderForItem: @ 81DEE90 +SlateportCity_Text_ExchangeBerryPowderForItem: .string "Okay, you want to exchange your\n" .string "BERRY POWDER for one {STR_VAR_1}?$" -SlateportCity_Text_DontHaveEnoughBerryPowder: @ 81DEEC9 +SlateportCity_Text_DontHaveEnoughBerryPowder: .string "Oh, dear. You don't have enough\n" .string "BERRY POWDER.$" -SlateportCity_Text_FineBerryPowderTradeSomethingElse: @ 81DEEF7 +SlateportCity_Text_FineBerryPowderTradeSomethingElse: .string "This is fine BERRY POWDER.\n" .string "It will make excellent medicine.\p" .string "Would you like to trade more of your\n" .string "BERRY POWDER for something else?$" -SlateportCity_Text_WhenYouGetMoreBringItToMe: @ 81DEF79 +SlateportCity_Text_WhenYouGetMoreBringItToMe: .string "Okay! When you get some more\n" .string "BERRY POWDER, bring it to me, please!$" -SlateportCity_Text_ComeBackToTradeBerryPowder: @ 81DEFBC +SlateportCity_Text_ComeBackToTradeBerryPowder: .string "Come back if you'd like to trade your\n" .string "BERRY POWDER for some medicine.\p" .string "I'm always running a bazaar here.\p" .string "Did you know?$" -SlateportCity_Text_YouDroveTeamAquaAway: @ 81DF032 +SlateportCity_Text_YouDroveTeamAquaAway: .string "SCOTT: Huh?\n" .string "I'm sure I met you somewhere before.\p" .string "Have I introduced myself to you?\n" @@ -1363,22 +1365,22 @@ SlateportCity_Text_YouDroveTeamAquaAway: @ 81DF032 .string "here like they were stung.\p" .string "Let me guess--you drove them away?$" -SlateportCity_Text_MaybeThisTrainer: @ 81DF0FE +SlateportCity_Text_MaybeThisTrainer: .string "SCOTT: Hmm…\n" .string "Maybe, just maybe, this TRAINER…$" -SlateportCity_Text_LetsRegisterEachOther: @ 81DF12B +SlateportCity_Text_LetsRegisterEachOther: .string "SCOTT: All right! I think you're going\n" .string "to become a good friend.\p" .string "So, let's register each other in our\n" .string "POKéNAVS.\p" .string "… … … … … …$" -SlateportCity_Text_RegisteredScott: @ 81DF1A6 +SlateportCity_Text_RegisteredScott: .string "Registered this SCOTT person\n" .string "in the POKéNAV.$" -SlateportCity_Text_KeepEyeOnTrainersBeSeeingYou: @ 81DF1D3 +SlateportCity_Text_KeepEyeOnTrainersBeSeeingYou: .string "SCOTT: What I'd like to do is tag along\n" .string "with you, but I do want to keep an eye\l" .string "on the talents of other people, too.\p" @@ -1386,7 +1388,7 @@ SlateportCity_Text_KeepEyeOnTrainersBeSeeingYou: @ 81DF1D3 .string "a bit more.\p" .string "Be seeing you, {PLAYER}{KUN}!$" -SlateportCity_Text_TakingBattleTentChallenge: @ 81DF28C +SlateportCity_Text_TakingBattleTentChallenge: .string "SCOTT: Oh, hey!\n" .string "If it isn't {PLAYER}{KUN}!\p" .string "{PLAYER}{KUN}, let me guess--you're going\n" diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc index e642a1386e..c1e9bfc532 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc +++ b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc @@ -1,7 +1,7 @@ .set LOCALID_OPPONENT, 2 .set LOCALID_PLAYER, 3 -SlateportCity_BattleTentBattleRoom_MapScripts:: @ 8209960 +SlateportCity_BattleTentBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SlateportCity_BattleTentBattleRoom_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentBattleRoom_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentBattleRoom_OnFrame @@ -10,11 +10,11 @@ SlateportCity_BattleTentBattleRoom_MapScripts:: @ 8209960 @ On this map the player (OBJ_EVENT_ID_PLAYER) is hidden @ The player is represented instead by LOCALID_PLAYER, which has the gfx id VAR_OBJ_GFX_ID_1 -SlateportCity_BattleTentBattleRoom_OnTransition: @ 8209970 +SlateportCity_BattleTentBattleRoom_OnTransition: call SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfx end -SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 8209976 +SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxMale @@ -22,29 +22,29 @@ SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 8209976 goto_if_eq SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return -SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @ 820998E +SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: @ 8209994 +SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -SlateportCity_BattleTentBattleRoom_OnWarp: @ 820999A +SlateportCity_BattleTentBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentBattleRoom_EventScript_SetUpObjects .2byte 0 -SlateportCity_BattleTentBattleRoom_EventScript_SetUpObjects:: @ 82099A4 +SlateportCity_BattleTentBattleRoom_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 hideobjectat OBJ_EVENT_ID_PLAYER, MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM hideobjectat LOCALID_OPPONENT, MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM end -SlateportCity_BattleTentBattleRoom_OnFrame: @ 82099B4 +SlateportCity_BattleTentBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentBattleRoom_EventScript_EnterRoom .2byte 0 -SlateportCity_BattleTentBattleRoom_EventScript_EnterRoom:: @ 82099BE +SlateportCity_BattleTentBattleRoom_EventScript_EnterRoom:: applymovement LOCALID_PLAYER, SlateportCity_BattleTentBattleRoom_Movement_PlayerEnter waitmovement 0 factory_setopponentgfx @@ -65,14 +65,14 @@ SlateportCity_BattleTentBattleRoom_EventScript_EnterRoom:: @ 82099BE waitstate switch VAR_RESULT case 1, SlateportCity_BattleTentBattleRoom_EventScript_DefeatedOpponent -SlateportCity_BattleTent_EventScript_WarpToLobbyLost:: @ 8209A1B +SlateportCity_BattleTent_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate @ forced stop -SlateportCity_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 8209A39 +SlateportCity_BattleTentBattleRoom_EventScript_DefeatedOpponent:: frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT @@ -83,21 +83,21 @@ SlateportCity_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 8209A39 waitstate @ forced stop -SlateportCity_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: @ 8209A7B +SlateportCity_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate @ forced stop -SlateportCity_BattleTentBattleRoom_Movement_PlayerEnter: @ 8209A99 +SlateportCity_BattleTentBattleRoom_Movement_PlayerEnter: walk_up walk_up walk_up walk_in_place_fastest_right step_end -SlateportCity_BattleTentBattleRoom_Movement_OpponentEnter: @ 8209A9E +SlateportCity_BattleTentBattleRoom_Movement_OpponentEnter: walk_down walk_down walk_down diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index c018f54b9d..08b19391ce 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -1,31 +1,31 @@ .set LOCALID_ATTENDANT, 1 -SlateportCity_BattleTentCorridor_MapScripts:: @ 8208E26 +SlateportCity_BattleTentCorridor_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentCorridor_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentCorridor_OnWarp .byte 0 @ This is Slateport Tent's version of the Battle Factory Pre-Battle Room -SlateportCity_BattleTentCorridor_OnWarp: @ 8208E31 +SlateportCity_BattleTentCorridor_OnWarp: map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentCorridor_EventScript_SetUpObjects .2byte 0 -SlateportCity_BattleTentCorridor_EventScript_SetUpObjects:: @ 8208E3B +SlateportCity_BattleTentCorridor_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 compare VAR_0x8006, 1 goto_if_ne SlateportCity_BattleTentCorridor_EventScript_TurnPlayerNorth setobjectxy LOCALID_ATTENDANT, 2, 2 turnobject LOCALID_ATTENDANT, DIR_SOUTH -SlateportCity_BattleTentCorridor_EventScript_TurnPlayerNorth:: @ 8208E56 +SlateportCity_BattleTentCorridor_EventScript_TurnPlayerNorth:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -SlateportCity_BattleTentCorridor_OnFrame: @ 8208E5B +SlateportCity_BattleTentCorridor_OnFrame: map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentCorridor_EventScript_EnterCorridor .2byte 0 -SlateportCity_BattleTentCorridor_EventScript_EnterCorridor:: @ 8208E65 +SlateportCity_BattleTentCorridor_EventScript_EnterCorridor:: compare VAR_0x8006, 1 goto_if_eq SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle setvar VAR_TEMP_0, 1 @@ -40,7 +40,7 @@ SlateportCity_BattleTentCorridor_EventScript_EnterCorridor:: @ 8208E65 fadescreen FADE_TO_BLACK slateporttent_rentmons waitstate -SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom:: @ 8208EB4 +SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_RightThisWay, MSGBOX_DEFAULT closemessage applymovement LOCALID_ATTENDANT, Common_Movement_WalkInPlaceFastestUp @@ -56,42 +56,42 @@ SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom:: @ 8208EB4 waitstate end -SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle:: @ 8208EEE +SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle:: factory_setopponentmons factory_resethelditems msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons, MSGBOX_DEFAULT playfanfare MUS_HEAL waitfanfare special HealPlayerParty -SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent:: @ 8208F0D +SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent:: frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq SlateportCity_BattleTentCorridor_EventScript_ReadyFor2ndOpponent compare VAR_RESULT, 2 call_if_eq SlateportCity_BattleTentCorridor_EventScript_ReadyFor3rdOpponent - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, SlateportCity_BattleTentCorridor_EventScript_AskSwapMon case 1, SlateportCity_BattleTentCorridor_EventScript_AskPauseChallenge case 2, SlateportCity_BattleTentCorridor_EventScript_AskRetireChallenge -SlateportCity_BattleTentCorridor_EventScript_AskPauseChallenge:: @ 8208F5B +SlateportCity_BattleTentCorridor_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT case NO, SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent case YES, SlateportCity_BattleTentCorridor_EventScript_PauseChallenge case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent -SlateportCity_BattleTentCorridor_EventScript_AskRetireChallenge:: @ 8208F89 +SlateportCity_BattleTentCorridor_EventScript_AskRetireChallenge:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_RetireFromChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent case 0, SlateportCity_BattleTent_EventScript_WarpToLobbyLost case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent -SlateportCity_BattleTentCorridor_EventScript_AskSwapMon:: @ 8208FBB +SlateportCity_BattleTentCorridor_EventScript_AskSwapMon:: slateporttent_generateopponentmons msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LikeToSwapMon, MSGBOX_YESNO switch VAR_RESULT @@ -99,7 +99,7 @@ SlateportCity_BattleTentCorridor_EventScript_AskSwapMon:: @ 8208FBB case YES, SlateportCity_BattleTentCorridor_EventScript_SwapMons case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom -SlateportCity_BattleTentCorridor_EventScript_SwapMons:: @ 8208FF1 +SlateportCity_BattleTentCorridor_EventScript_SwapMons:: fadescreen FADE_TO_BLACK slateporttent_swapmons waitstate @@ -108,17 +108,17 @@ SlateportCity_BattleTentCorridor_EventScript_SwapMons:: @ 8208FF1 msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete, MSGBOX_DEFAULT goto SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom -SlateportCity_BattleTentCorridor_EventScript_ReadyFor2ndOpponent:: @ 8209014 +SlateportCity_BattleTentCorridor_EventScript_ReadyFor2ndOpponent:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor2ndOpponent waitmessage return -SlateportCity_BattleTentCorridor_EventScript_ReadyFor3rdOpponent:: @ 820901B +SlateportCity_BattleTentCorridor_EventScript_ReadyFor3rdOpponent:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_ReadyFor3rdOpponent waitmessage return -SlateportCity_BattleTentCorridor_EventScript_PauseChallenge:: @ 8209022 +SlateportCity_BattleTentCorridor_EventScript_PauseChallenge:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_SavingDataPleaseWait waitmessage slateporttent_save CHALLENGE_STATUS_PAUSED @@ -128,25 +128,25 @@ SlateportCity_BattleTentCorridor_EventScript_PauseChallenge:: @ 8209022 frontier_reset end -SlateportCity_BattleTentCorridor_EventScript_ResumeChallenge:: @ 8209044 +SlateportCity_BattleTentCorridor_EventScript_ResumeChallenge:: special SavePlayerParty factory_setparties 0 goto SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent -SlateportCity_BattleTentCorridor_Movement_PlayerEnter: @ 8209059 +SlateportCity_BattleTentCorridor_Movement_PlayerEnter: walk_up walk_up walk_up walk_up step_end -SlateportCity_BattleTentCorridor_Movement_PlayerExit: @ 820905E +SlateportCity_BattleTentCorridor_Movement_PlayerExit: walk_up walk_up set_invisible step_end -SlateportCity_BattleTentCorridor_Movement_AttendantEnter: @ 8209062 +SlateportCity_BattleTentCorridor_Movement_AttendantEnter: walk_up walk_up walk_up @@ -154,14 +154,14 @@ SlateportCity_BattleTentCorridor_Movement_AttendantEnter: @ 8209062 walk_in_place_fastest_down step_end -SlateportCity_BattleTentCorridor_Movement_AttendantExit: @ 8209068 +SlateportCity_BattleTentCorridor_Movement_AttendantExit: walk_up set_invisible step_end @ Leftover text from when this was a Contest Hall in R/S @ Unused -SlateportCity_ContestHall_Text_AdviceForContests: @ 820906B +SlateportCity_ContestHall_Text_AdviceForContests: .string "Want a tasty little bit of advice\n" .string "for CONTESTS?\p" .string "Using a certain move after another\n" @@ -173,13 +173,13 @@ SlateportCity_ContestHall_Text_AdviceForContests: @ 820906B .string "disrupting your POKéMON's showing.$" @ Unused -SlateportCity_ContestHall_Text_MyPapaIsContestJudge: @ 820917A +SlateportCity_ContestHall_Text_MyPapaIsContestJudge: .string "My papa, he's a CONTEST JUDGE.\p" .string "I wonder what I should be when I\n" .string "grow up, a JUDGE or a GYM LEADER?$" @ Unused -SlateportCity_ContestHall_Text_ImLikeMajorlyCheesed: @ 82091DC +SlateportCity_ContestHall_Text_ImLikeMajorlyCheesed: .string "Hey, man, I'm like majorly cheesed,\n" .string "you know. Like, you know, I just\l" .string "wanted to know why my POKéMON\l" @@ -192,7 +192,7 @@ SlateportCity_ContestHall_Text_ImLikeMajorlyCheesed: @ 82091DC .string "Just, you know, take this!$" @ Unused -SlateportCity_ContestHall_Text_ExplainTorment: @ 8209322 +SlateportCity_ContestHall_Text_ExplainTorment: .string "That's, like, TM41, you know?\n" .string "Hey, it's TORMENT, you hearing me?\p" .string "Like, it won't let the other guy\n" @@ -201,7 +201,7 @@ SlateportCity_ContestHall_Text_ExplainTorment: @ 8209322 .string "I'm not laying a torment on you!$" @ Unused -SlateportCity_ContestHall_Text_MCStepUpTakePartInContest: @ 82093ED +SlateportCity_ContestHall_Text_MCStepUpTakePartInContest: .string "MC: Oh, my, my!\n" .string "Now isn't that a dandy of a POKéMON?\p" .string "Please! Do step right up and take\n" @@ -210,7 +210,7 @@ SlateportCity_ContestHall_Text_MCStepUpTakePartInContest: @ 82093ED .string "My eyes have never failed me!$" @ Unused -SlateportCity_ContestHall_Text_JudgeWouldntDoToMissContest: @ 82094A1 +SlateportCity_ContestHall_Text_JudgeWouldntDoToMissContest: .string "JUDGE: Well, hello there!\n" .string "I see that you're a TRAINER!\p" .string "Then, it just wouldn't do for you\n" @@ -219,19 +219,19 @@ SlateportCity_ContestHall_Text_JudgeWouldntDoToMissContest: @ 82094A1 .string "CITY and enter anytime!$" @ Unused -SlateportCity_ContestHall_Text_ItsAppealTime: @ 820954E +SlateportCity_ContestHall_Text_ItsAppealTime: .string "It's appeal time!\n" .string "What should I lead with?$" @ Unused -SlateportCity_ContestHall_Text_DidntPayAttentionToAppeal: @ 8209579 +SlateportCity_ContestHall_Text_DidntPayAttentionToAppeal: .string "They didn't pay much attention to\n" .string "my POKéMON's appeal…\p" .string "Humph, that JUDGE, he doesn't know\n" .string "a good thing when he sees it.$" @ Unused -SlateportCity_ContestHall_Text_RewardWithSageAdvice: @ 82095F1 +SlateportCity_ContestHall_Text_RewardWithSageAdvice: .string "Oh, hi! You must be a serious fan to get\n" .string "this close to the action.\p" .string "I'll reward your enthusiasm with\n" @@ -244,20 +244,20 @@ SlateportCity_ContestHall_Text_RewardWithSageAdvice: @ 82095F1 .string "to happen!$" @ Unused -SlateportCity_ContestHall_Text_MoreFreakedOutThanMon: @ 8209718 +SlateportCity_ContestHall_Text_MoreFreakedOutThanMon: .string "I can't do this! I'm more freaked out\n" .string "than my POKéMON.\p" .string "I'm shivering and my heart is racing!$" @ Unused -SlateportCity_ContestHall_Text_BattleAndContestAlike: @ 8209775 +SlateportCity_ContestHall_Text_BattleAndContestAlike: .string "A battle and a CONTEST aren't the\n" .string "same, but they are alike, too.\p" .string "You need to work hard and believe\n" .string "in the POKéMON you've raised.$" @ Unused -SlateportCity_ContestHall_Text_MonLooksOnTopOfGame: @ 82097F6 +SlateportCity_ContestHall_Text_MonLooksOnTopOfGame: .string "That POKéMON looks like it's on top\n" .string "of its game, huh?\p" .string "A POKéMON that does good in the\n" @@ -265,19 +265,19 @@ SlateportCity_ContestHall_Text_MonLooksOnTopOfGame: @ 82097F6 .string "relaxed when it's doing appeals.$" @ Unused -SlateportCity_ContestHall_Text_MyMonBetterThanThatLot: @ 8209890 +SlateportCity_ContestHall_Text_MyMonBetterThanThatLot: .string "Will you look at that sorry sight?\p" .string "Heh, my POKéMON's absolutely better\n" .string "than that lot!$" @ Unused -SlateportCity_ContestHall_Text_GetUrgeToMoveWithMon: @ 82098E6 +SlateportCity_ContestHall_Text_GetUrgeToMoveWithMon: .string "Don't you get the urge to move with\n" .string "POKéMON if they're putting on an\l" .string "energetic appeal?$" @ Unused -SlateportCity_ContestHall_Text_HyperRankStage: @ 820993D +SlateportCity_ContestHall_Text_HyperRankStage: .string "POKéMON CONTESTS\n" .string "HYPER RANK STAGE!$" diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index bdc8eb05f9..8361cdfcc3 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -1,20 +1,20 @@ .set LOCALID_ATTENDANT, 1 -SlateportCity_BattleTentLobby_MapScripts:: @ 8208730 +SlateportCity_BattleTentLobby_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_BattleTentLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SlateportCity_BattleTentLobby_OnWarp .byte 0 -SlateportCity_BattleTentLobby_OnWarp: @ 820873B +SlateportCity_BattleTentLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentLobby_EventScript_TurnPlayerNorth .2byte 0 -SlateportCity_BattleTentLobby_EventScript_TurnPlayerNorth:: @ 8208745 +SlateportCity_BattleTentLobby_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -SlateportCity_BattleTentLobby_OnFrame: @ 820874F +SlateportCity_BattleTentLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, SlateportCity_BattleTentLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, SlateportCity_BattleTentLobby_EventScript_ResumeChallenge @@ -22,11 +22,11 @@ SlateportCity_BattleTentLobby_OnFrame: @ 820874F map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, SlateportCity_BattleTentLobby_EventScript_LostChallenge .2byte 0 -SlateportCity_BattleTentLobby_EventScript_GetChallengeStatus:: @ 8208779 +SlateportCity_BattleTentLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -SlateportCity_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 8208782 +SlateportCity_BattleTentLobby_EventScript_QuitWithoutSaving:: lockall msgbox SlateportCity_BattleTentLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT closemessage @@ -36,7 +36,7 @@ SlateportCity_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 8208782 releaseall end -SlateportCity_BattleTentLobby_EventScript_WonChallenge:: @ 82087B7 +SlateportCity_BattleTentLobby_EventScript_WonChallenge:: lockall message SlateportCity_BattleTentLobby_Text_WonThreeMatchesReturnMons waitmessage @@ -45,7 +45,7 @@ SlateportCity_BattleTentLobby_EventScript_WonChallenge:: @ 82087B7 slateporttent_save 0 playse SE_SAVE waitse -SlateportCity_BattleTentLobby_EventScript_GivePrize:: @ 82087E9 +SlateportCity_BattleTentLobby_EventScript_GivePrize:: msgbox SlateportCity_BattleTentLobby_Text_AwardYouThisPrize, MSGBOX_DEFAULT slateporttent_giveprize switch VAR_RESULT @@ -57,11 +57,11 @@ SlateportCity_BattleTentLobby_EventScript_GivePrize:: @ 82087E9 waitfanfare goto SlateportCity_BattleTentLobby_EventScript_EndGivePrize -SlateportCity_BattleTentLobby_EventScript_NoRoomForPrize:: @ 820882A +SlateportCity_BattleTentLobby_EventScript_NoRoomForPrize:: msgbox SlateportCity_BattleTentLobby_Text_NoRoomInBagMakeRoom, MSGBOX_DEFAULT goto SlateportCity_BattleTentLobby_EventScript_EndGivePrize -SlateportCity_BattleTentLobby_EventScript_LostChallenge:: @ 8208837 +SlateportCity_BattleTentLobby_EventScript_LostChallenge:: lockall message SlateportCity_BattleTentLobby_Text_ReturnRentalMonsSaveResults waitmessage @@ -70,14 +70,14 @@ SlateportCity_BattleTentLobby_EventScript_LostChallenge:: @ 8208837 playse SE_SAVE waitse -SlateportCity_BattleTentLobby_EventScript_EndGivePrize:: @ 8208861 +SlateportCity_BattleTentLobby_EventScript_EndGivePrize:: msgbox SlateportCity_BattleTentLobby_Text_LookForwardToNextVisit, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -SlateportCity_BattleTentLobby_EventScript_ResumeChallenge:: @ 8208871 +SlateportCity_BattleTentLobby_EventScript_ResumeChallenge:: lockall message SlateportCity_BattleTentLobby_Text_BeenWaitingForYou waitmessage @@ -89,7 +89,7 @@ SlateportCity_BattleTentLobby_EventScript_ResumeChallenge:: @ 8208871 setvar VAR_0x8006, 2 goto SlateportCity_BattleTentLobby_EventScript_EnterChallenge -SlateportCity_BattleTentLobby_EventScript_Attendant:: @ 82088AA +SlateportCity_BattleTentLobby_EventScript_Attendant:: lock faceplayer slateporttent_getprize @@ -97,17 +97,17 @@ SlateportCity_BattleTentLobby_EventScript_Attendant:: @ 82088AA goto_if_ne SlateportCity_BattleTentLobby_EventScript_GivePrize special SavePlayerParty msgbox SlateportCity_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT -SlateportCity_BattleTentLobby_EventScript_AskEnterChallenge:: @ 82088CA +SlateportCity_BattleTentLobby_EventScript_AskEnterChallenge:: message SlateportCity_BattleTentLobby_Text_TakeChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, SlateportCity_BattleTentLobby_EventScript_TryEnterChallenge case 1, SlateportCity_BattleTentLobby_EventScript_ExplainChallenge case 2, SlateportCity_BattleTentLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_CancelChallenge -SlateportCity_BattleTentLobby_EventScript_TryEnterChallenge:: @ 8208906 +SlateportCity_BattleTentLobby_EventScript_TryEnterChallenge:: setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_FACTORY setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT @@ -117,7 +117,7 @@ SlateportCity_BattleTentLobby_EventScript_TryEnterChallenge:: @ 8208906 case YES, SlateportCity_BattleTentLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_LoadPartyCancelChallenge -SlateportCity_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 8208950 +SlateportCity_BattleTentLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER slateporttent_init @@ -130,7 +130,7 @@ SlateportCity_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 8208950 compare VAR_RESULT, 0 goto_if_eq SlateportCity_BattleTentLobby_EventScript_CancelChallengeSaveFailed setvar VAR_0x8006, 0 -SlateportCity_BattleTentLobby_EventScript_EnterChallenge:: @ 82089AC +SlateportCity_BattleTentLobby_EventScript_EnterChallenge:: msgbox SlateportCity_BattleTentLobby_Text_StepThisWay, MSGBOX_DEFAULT closemessage call SlateportCity_BattleTentLobby_EventScript_WalkToDoor @@ -139,7 +139,7 @@ SlateportCity_BattleTentLobby_EventScript_EnterChallenge:: @ 82089AC waitstate end -SlateportCity_BattleTentLobby_EventScript_WalkToDoor:: @ 82089C9 +SlateportCity_BattleTentLobby_EventScript_WalkToDoor:: applymovement LOCALID_ATTENDANT, SlateportCity_BattleTentLobby_Movement_AttendantWalkToDoor applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_BattleTentLobby_Movement_PlayerWalkToDoor waitmovement 0 @@ -152,53 +152,53 @@ SlateportCity_BattleTentLobby_EventScript_WalkToDoor:: @ 82089C9 waitdooranim return -SlateportCity_BattleTentLobby_Movement_AttendantWalkToDoor: @ 82089F8 +SlateportCity_BattleTentLobby_Movement_AttendantWalkToDoor: walk_up walk_up walk_up step_end -SlateportCity_BattleTentLobby_Movement_AttendantEnterDoor: @ 82089FC +SlateportCity_BattleTentLobby_Movement_AttendantEnterDoor: walk_up set_invisible step_end -SlateportCity_BattleTentLobby_Movement_PlayerWalkToDoor: @ 82089FF +SlateportCity_BattleTentLobby_Movement_PlayerWalkToDoor: walk_up walk_up walk_up step_end -SlateportCity_BattleTentLobby_Movement_PlayerEnterDoor: @ 8208A03 +SlateportCity_BattleTentLobby_Movement_PlayerEnterDoor: walk_up walk_up set_invisible step_end -SlateportCity_BattleTentLobby_EventScript_ExplainChallenge:: @ 8208A07 +SlateportCity_BattleTentLobby_EventScript_ExplainChallenge:: msgbox SlateportCity_BattleTentLobby_Text_ExplainSlateportTent, MSGBOX_DEFAULT goto SlateportCity_BattleTentLobby_EventScript_AskEnterChallenge -SlateportCity_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: @ 8208A14 +SlateportCity_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto SlateportCity_BattleTentLobby_EventScript_CancelChallenge -SlateportCity_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: @ 8208A2B +SlateportCity_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: special LoadPlayerParty -SlateportCity_BattleTentLobby_EventScript_CancelChallenge:: @ 8208A2E +SlateportCity_BattleTentLobby_EventScript_CancelChallenge:: msgbox SlateportCity_BattleTentLobby_Text_LookForwardToNextVisit, MSGBOX_DEFAULT release end @ Unused -SlateportCity_BattleTentLobby_Movement_UnusedEnterDoor:: @ 8208A38 +SlateportCity_BattleTentLobby_Movement_UnusedEnterDoor:: walk_up walk_up walk_up set_invisible step_end -SlateportCity_BattleTentLobby_EventScript_TormentGiver:: @ 8208A3D +SlateportCity_BattleTentLobby_EventScript_TormentGiver:: lock faceplayer goto_if_set FLAG_RECEIVED_TM41, SlateportCity_BattleTentLobby_EventScript_ReceivedTorment @@ -211,33 +211,33 @@ SlateportCity_BattleTentLobby_EventScript_TormentGiver:: @ 8208A3D release end -SlateportCity_BattleTentLobby_EventScript_ReceivedTorment:: @ 8208A74 +SlateportCity_BattleTentLobby_EventScript_ReceivedTorment:: msgbox SlateportCity_BattleTentLobby_Text_ExplainTorment, MSGBOX_DEFAULT release end -SlateportCity_BattleTentLobby_EventScript_Man:: @ 8208A7E +SlateportCity_BattleTentLobby_EventScript_Man:: msgbox SlateportCity_BattleTentLobby_Text_IllTryUsingBugMons, MSGBOX_NPC end -SlateportCity_BattleTentLobby_EventScript_Girl:: @ 8208A87 +SlateportCity_BattleTentLobby_EventScript_Girl:: msgbox SlateportCity_BattleTentLobby_Text_BattleEvenWithoutToughMons, MSGBOX_NPC end -SlateportCity_BattleTentLobby_EventScript_Woman:: @ 8208A90 +SlateportCity_BattleTentLobby_EventScript_Woman:: msgbox SlateportCity_BattleTentLobby_Text_NiceIfMoreSelection, MSGBOX_NPC end -SlateportCity_BattleTentLobby_EventScript_RulesBoard:: @ 8208A99 +SlateportCity_BattleTentLobby_EventScript_RulesBoard:: lockall msgbox BattleFrontier_BattleFactoryLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard:: @ 8208AA8 +SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattleFactoryLobby_Text_ReadWhichHeading waitmessage - multichoice 17, 0, MULTI_SLATEPORT_TENT_RULES, 0 + multichoice 17, 0, MULTI_SLATEPORT_TENT_RULES, FALSE switch VAR_RESULT case 0, SlateportCity_BattleTentLobby_EventScript_RulesBasics case 1, SlateportCity_BattleTentLobby_EventScript_RulesSwapPartner @@ -248,36 +248,36 @@ SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard:: @ 8208AA8 case MULTI_B_PRESSED, SlateportCity_BattleTentLobby_EventScript_ExitRules end -SlateportCity_BattleTentLobby_EventScript_RulesBasics:: @ 8208B06 +SlateportCity_BattleTentLobby_EventScript_RulesBasics:: msgbox SlateportCity_BattleTentLobby_Text_ExplainBasicRules, MSGBOX_DEFAULT goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_RulesSwapPartner:: @ 8208B14 +SlateportCity_BattleTentLobby_EventScript_RulesSwapPartner:: msgbox SlateportCity_BattleTentLobby_Text_ExplainSwapPartnerRules, MSGBOX_DEFAULT goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_RulesSwapNumber:: @ 8208B22 +SlateportCity_BattleTentLobby_EventScript_RulesSwapNumber:: msgbox SlateportCity_BattleTentLobby_Text_ExplainSwapNumberRules, MSGBOX_DEFAULT goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_RulesSwapNotes:: @ 8208B30 +SlateportCity_BattleTentLobby_EventScript_RulesSwapNotes:: msgbox SlateportCity_BattleTentLobby_Text_ExplainSwapNotes, MSGBOX_DEFAULT goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_RulesMons:: @ 8208B3E +SlateportCity_BattleTentLobby_EventScript_RulesMons:: msgbox SlateportCity_BattleTentLobby_Text_ExplainMonRules, MSGBOX_DEFAULT goto SlateportCity_BattleTentLobby_EventScript_ReadRulesBoard end -SlateportCity_BattleTentLobby_EventScript_ExitRules:: @ 8208B4C +SlateportCity_BattleTentLobby_EventScript_ExitRules:: releaseall end -SlateportCity_BattleTentLobby_Text_CouldntFindMonForMe: @ 8208B4E +SlateportCity_BattleTentLobby_Text_CouldntFindMonForMe: .string "So, like, I couldn't find myself any\n" .string "POKéMON that were, like, for me.\p" .string "So, I figured, like, hey, I should file\n" @@ -287,7 +287,7 @@ SlateportCity_BattleTentLobby_Text_CouldntFindMonForMe: @ 8208B4E .string "Hey, like, you! Zip it, you know?\n" .string "Just, you know, take this!$" -SlateportCity_BattleTentLobby_Text_ExplainTorment: @ 8208C5C +SlateportCity_BattleTentLobby_Text_ExplainTorment: .string "That's, like, TM41, you know?\n" .string "Hey, it's TORMENT, you hearing me?\p" .string "Like, it won't let the other guy\n" @@ -295,18 +295,18 @@ SlateportCity_BattleTentLobby_Text_ExplainTorment: @ 8208C5C .string "Hey, now, you listen here, like,\n" .string "I'm not laying a torment on you!$" -SlateportCity_BattleTentLobby_Text_IllTryUsingBugMons: @ 8208D27 +SlateportCity_BattleTentLobby_Text_IllTryUsingBugMons: .string "I don't really like BUG POKéMON,\n" .string "but maybe I'll try using some for\l" .string "a change of pace.\p" .string "Who knows, I might even get to like\n" .string "them!$" -SlateportCity_BattleTentLobby_Text_BattleEvenWithoutToughMons: @ 8208DA6 +SlateportCity_BattleTentLobby_Text_BattleEvenWithoutToughMons: .string "You can battle all you want here even\n" .string "if you don't have any tough POKéMON.$" -SlateportCity_BattleTentLobby_Text_NiceIfMoreSelection: @ 8208DF1 +SlateportCity_BattleTentLobby_Text_NiceIfMoreSelection: .string "Wouldn't it be nice if they had more of\n" .string "a selection?$" diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index 644911ea63..fb73f5b938 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -4,11 +4,11 @@ .set LOCALID_ARCHIE, 7 .set LOCALID_SUBMARINE, 8 -SlateportCity_Harbor_MapScripts:: @ 820C97D +SlateportCity_Harbor_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SlateportCity_Harbor_OnTransition .byte 0 -SlateportCity_Harbor_OnTransition: @ 820C983 +SlateportCity_Harbor_OnTransition: setescapewarp MAP_SLATEPORT_CITY, 255, 28, 13 setvar VAR_TEMP_1, 0 compare VAR_SLATEPORT_HARBOR_STATE, 1 @@ -16,36 +16,36 @@ SlateportCity_Harbor_OnTransition: @ 820C983 call_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_Harbor_EventScript_ShowSSTidal end -SlateportCity_Harbor_EventScript_ShowSSTidal:: @ 820C9A5 +SlateportCity_Harbor_EventScript_ShowSSTidal:: clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_SS_TIDAL return -SlateportCity_Harbor_EventScript_ReadyAquaEscapeScene:: @ 820C9A9 +SlateportCity_Harbor_EventScript_ReadyAquaEscapeScene:: savebgm MUS_ENCOUNTER_AQUA setobjectxyperm LOCALID_CAPT_STERN, 12, 13 setobjectmovementtype LOCALID_CAPT_STERN, MOVEMENT_TYPE_FACE_LEFT setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_PATRONS return -SlateportCity_Harbor_EventScript_AquaEscapeTrigger0:: @ 820C9BB +SlateportCity_Harbor_EventScript_AquaEscapeTrigger0:: lockall setvar VAR_0x8008, 0 goto SlateportCity_Harbor_EventScript_AquaEscapeScene end -SlateportCity_Harbor_EventScript_AquaEscapeTrigger1:: @ 820C9C7 +SlateportCity_Harbor_EventScript_AquaEscapeTrigger1:: lockall setvar VAR_0x8008, 1 goto SlateportCity_Harbor_EventScript_AquaEscapeScene end -SlateportCity_Harbor_EventScript_AquaEscapeTrigger2:: @ 820C9D3 +SlateportCity_Harbor_EventScript_AquaEscapeTrigger2:: lockall setvar VAR_0x8008, 2 goto SlateportCity_Harbor_EventScript_AquaEscapeScene end -SlateportCity_Harbor_EventScript_AquaEscapeTrigger3:: @ 820C9DF +SlateportCity_Harbor_EventScript_AquaEscapeTrigger3:: lockall setvar VAR_0x8008, 3 applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_Harbor_Movement_PlayerWalkUp @@ -53,7 +53,7 @@ SlateportCity_Harbor_EventScript_AquaEscapeTrigger3:: @ 820C9DF goto SlateportCity_Harbor_EventScript_AquaEscapeScene end -SlateportCity_Harbor_EventScript_AquaEscapeScene:: @ 820C9F5 +SlateportCity_Harbor_EventScript_AquaEscapeScene:: applymovement LOCALID_ARCHIE, Common_Movement_WalkInPlaceFastestDown waitmovement 0 applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFastestDown @@ -70,7 +70,7 @@ SlateportCity_Harbor_EventScript_AquaEscapeScene:: @ 820C9F5 removeobject LOCALID_SUBMARINE setvar VAR_SLATEPORT_HARBOR_STATE, 2 setflag FLAG_MET_TEAM_AQUA_HARBOR - setflag FLAG_HIDE_LILCOVE_MOTEL_SCOTT + setflag FLAG_HIDE_LILYCOVE_MOTEL_SCOTT compare VAR_0x8008, 0 call_if_eq SlateportCity_Harbor_EventScript_SternApproachPlayer0 compare VAR_0x8008, 1 @@ -88,28 +88,28 @@ SlateportCity_Harbor_EventScript_AquaEscapeScene:: @ 820C9F5 releaseall end -SlateportCity_Harbor_EventScript_SternApproachPlayer0:: @ 820CA89 +SlateportCity_Harbor_EventScript_SternApproachPlayer0:: applymovement LOCALID_CAPT_STERN, SlateportCity_Harbor_Movement_SternApproachPlayer0 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -SlateportCity_Harbor_EventScript_SternApproachPlayer1:: @ 820CA9E +SlateportCity_Harbor_EventScript_SternApproachPlayer1:: applymovement LOCALID_CAPT_STERN, SlateportCity_Harbor_Movement_SternApproachPlayer1 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -SlateportCity_Harbor_EventScript_SternApproachPlayer:: @ 820CAB3 +SlateportCity_Harbor_EventScript_SternApproachPlayer:: applymovement LOCALID_CAPT_STERN, SlateportCity_Harbor_Movement_SternApproachPlayer waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -SlateportCity_Harbor_Movement_AquaBoardSub: @ 820CAC8 +SlateportCity_Harbor_Movement_AquaBoardSub: delay_16 delay_16 jump_up @@ -117,14 +117,14 @@ SlateportCity_Harbor_Movement_AquaBoardSub: @ 820CAC8 step_end @ Unused, Archie instead shares above identical movement script with Grunt -SlateportCity_Harbor_Movement_ArchieBoardSub: @ 820CACD +SlateportCity_Harbor_Movement_ArchieBoardSub: delay_16 delay_16 jump_up set_invisible step_end -SlateportCity_Harbor_Movement_SubmarineExit: @ 820CAD2 +SlateportCity_Harbor_Movement_SubmarineExit: delay_16 delay_16 delay_16 @@ -140,7 +140,7 @@ SlateportCity_Harbor_Movement_SubmarineExit: @ 820CAD2 walk_fast_right step_end -SlateportCity_Harbor_Movement_SternApproachPlayer0: @ 820CAE0 +SlateportCity_Harbor_Movement_SternApproachPlayer0: walk_left walk_left walk_left @@ -148,24 +148,24 @@ SlateportCity_Harbor_Movement_SternApproachPlayer0: @ 820CAE0 walk_up step_end -SlateportCity_Harbor_Movement_SternApproachPlayer1: @ 820CAE6 +SlateportCity_Harbor_Movement_SternApproachPlayer1: walk_left walk_left walk_up walk_left step_end -SlateportCity_Harbor_Movement_SternApproachPlayer: @ 820CAEB +SlateportCity_Harbor_Movement_SternApproachPlayer: walk_left walk_left walk_left step_end -SlateportCity_Harbor_Movement_PlayerWalkUp: @ 820CAEF +SlateportCity_Harbor_Movement_PlayerWalkUp: walk_up step_end -SlateportCity_Harbor_EventScript_FerryAttendant:: @ 820CAF1 +SlateportCity_Harbor_EventScript_FerryAttendant:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_Harbor_EventScript_AskForTicket @@ -173,24 +173,24 @@ SlateportCity_Harbor_EventScript_FerryAttendant:: @ 820CAF1 release end -SlateportCity_Harbor_EventScript_AskForTicket:: @ 820CB06 +SlateportCity_Harbor_EventScript_AskForTicket:: msgbox SlateportCity_Harbor_Text_MayISeeYourTicket, MSGBOX_DEFAULT message SlateportCity_Harbor_Text_FlashedTicketWhereTo waitmessage goto SlateportCity_Harbor_EventScript_ChooseDestination end -SlateportCity_Harbor_EventScript_ChooseDestination:: @ 820CB1A +SlateportCity_Harbor_EventScript_ChooseDestination:: goto_if_set FLAG_MET_SCOTT_ON_SS_TIDAL, SlateportCity_Harbor_EventScript_ChooseDestinationWithBattleFrontier - multichoicedefault 18, 8, MULTI_SSTIDAL_SLATEPORT_NO_BF, 2, 0 + multichoicedefault 18, 8, MULTI_SSTIDAL_SLATEPORT_NO_BF, 2, FALSE switch VAR_RESULT case 0, SlateportCity_Harbor_EventScript_Lilycove case 1, SlateportCity_Harbor_EventScript_CancelDestinationSelect case MULTI_B_PRESSED, SlateportCity_Harbor_EventScript_CancelDestinationSelect end -SlateportCity_Harbor_EventScript_ChooseDestinationWithBattleFrontier:: @ 820CB50 - multichoicedefault 17, 6, MULTI_SSTIDAL_SLATEPORT_WITH_BF, 2, 0 +SlateportCity_Harbor_EventScript_ChooseDestinationWithBattleFrontier:: + multichoicedefault 17, 6, MULTI_SSTIDAL_SLATEPORT_WITH_BF, 2, FALSE switch VAR_RESULT case 0, SlateportCity_Harbor_EventScript_Lilycove case 1, SlateportCity_Harbor_EventScript_BattleFrontier @@ -199,12 +199,12 @@ SlateportCity_Harbor_EventScript_ChooseDestinationWithBattleFrontier:: @ 820CB50 end @ Unused. Should be impossible for player to reach Ferry without having received SS Tidal ticket -SlateportCity_Harbor_EventScript_NoTicket:: @ 820CB88 +SlateportCity_Harbor_EventScript_NoTicket:: msgbox SlateportCity_Harbor_Text_YouMustHaveTicket, MSGBOX_DEFAULT release end -SlateportCity_Harbor_EventScript_Lilycove:: @ 820CB92 +SlateportCity_Harbor_EventScript_Lilycove:: msgbox SlateportCity_Harbor_Text_LilycoveItIs, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SlateportCity_Harbor_EventScript_ChooseNewDestination @@ -215,7 +215,7 @@ SlateportCity_Harbor_EventScript_Lilycove:: @ 820CB92 release end -SlateportCity_Harbor_EventScript_BattleFrontier:: @ 820CBBA +SlateportCity_Harbor_EventScript_BattleFrontier:: msgbox SlateportCity_Harbor_Text_BattleFrontierItIs, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SlateportCity_Harbor_EventScript_ChooseNewDestination @@ -225,13 +225,13 @@ SlateportCity_Harbor_EventScript_BattleFrontier:: @ 820CBBA release end -SlateportCity_Harbor_EventScript_ChooseNewDestination:: @ 820CBDD +SlateportCity_Harbor_EventScript_ChooseNewDestination:: message SlateportCity_Harbor_Text_WhereWouldYouLikeToGo waitmessage goto SlateportCity_Harbor_EventScript_ChooseDestination end -SlateportCity_Harbor_EventScript_BoardFerry:: @ 820CBE9 +SlateportCity_Harbor_EventScript_BoardFerry:: msgbox SlateportCity_Harbor_Text_PleaseBoardFerry, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFastestUp @@ -248,31 +248,31 @@ SlateportCity_Harbor_EventScript_BoardFerry:: @ 820CBE9 call Common_EventScript_FerryDepart return -SlateportCity_Harbor_EventScript_CancelDestinationSelect:: @ 820CC2D +SlateportCity_Harbor_EventScript_CancelDestinationSelect:: msgbox SlateportCity_Harbor_Text_SailAnotherTime, MSGBOX_DEFAULT release end -SlateportCity_Harbor_EventScript_BoardFerryEast:: @ 820CC37 +SlateportCity_Harbor_EventScript_BoardFerryEast:: applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_Harbor_Movement_BoardFerryEast waitmovement 0 return -SlateportCity_Harbor_EventScript_BoardFerryNorth:: @ 820CC42 +SlateportCity_Harbor_EventScript_BoardFerryNorth:: applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_Harbor_Movement_BoardFerryNorth waitmovement 0 return -SlateportCity_Harbor_Movement_BoardFerryEast: @ 820CC4D +SlateportCity_Harbor_Movement_BoardFerryEast: walk_right walk_in_place_fastest_up step_end -SlateportCity_Harbor_Movement_BoardFerryNorth: @ 820CC50 +SlateportCity_Harbor_Movement_BoardFerryNorth: walk_up step_end -SlateportCity_Harbor_EventScript_Sailor:: @ 820CC52 +SlateportCity_Harbor_EventScript_Sailor:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SlateportCity_Harbor_EventScript_SailorNoAbnormalWeather @@ -285,20 +285,20 @@ SlateportCity_Harbor_EventScript_Sailor:: @ 820CC52 release end -SlateportCity_Harbor_EventScript_SailorNoAbnormalWeather:: @ 820CC89 +SlateportCity_Harbor_EventScript_SailorNoAbnormalWeather:: msgbox SlateportCity_Harbor_Text_LoveToGoDeepUnderwaterSomeday, MSGBOX_DEFAULT release end -SlateportCity_Harbor_EventScript_CountDefeatedLegendary:: @ 820CC93 +SlateportCity_Harbor_EventScript_CountDefeatedLegendary:: addvar VAR_0x8004, 1 return -SlateportCity_Harbor_EventScript_FatMan:: @ 820CC99 +SlateportCity_Harbor_EventScript_FatMan:: msgbox SlateportCity_Harbor_Text_SubTooSmallForMe, MSGBOX_NPC end -SlateportCity_Harbor_EventScript_CaptStern:: @ 820CCA2 +SlateportCity_Harbor_EventScript_CaptStern:: lock faceplayer goto_if_set FLAG_BADGE07_GET, SlateportCity_Harbor_EventScript_CaptSternFerryOrScannerComment @@ -313,23 +313,23 @@ SlateportCity_Harbor_EventScript_CaptStern:: @ 820CCA2 release end -SlateportCity_Harbor_EventScript_WhyStealSubmarine:: @ 820CCDF +SlateportCity_Harbor_EventScript_WhyStealSubmarine:: msgbox SlateportCity_Harbor_Text_CaptSternWhyStealMySubmarine, MSGBOX_DEFAULT release end -SlateportCity_Harbor_EventScript_TeamAquaLeftNeedDive:: @ 820CCE9 +SlateportCity_Harbor_EventScript_TeamAquaLeftNeedDive:: setflag FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE msgbox SlateportCity_Harbor_Text_TeamAquaLeftNeedDive, MSGBOX_DEFAULT release end -SlateportCity_Harbor_EventScript_NeedDive:: @ 820CCF6 +SlateportCity_Harbor_EventScript_NeedDive:: msgbox SlateportCity_Harbor_Text_NeedDiveToCatchSub, MSGBOX_DEFAULT release end -SlateportCity_Harbor_EventScript_CaptSternFerryOrScannerComment:: @ 820CD00 +SlateportCity_Harbor_EventScript_CaptSternFerryOrScannerComment:: compare VAR_TEMP_1, 1 goto_if_eq SlateportCity_Harbor_EventScript_TradedScanner checkitem ITEM_SCANNER, 1 @@ -340,19 +340,19 @@ SlateportCity_Harbor_EventScript_CaptSternFerryOrScannerComment:: @ 820CD00 release end -SlateportCity_Harbor_EventScript_FerryFinished:: @ 820CD2E +SlateportCity_Harbor_EventScript_FerryFinished:: msgbox SlateportCity_Harbor_Text_FinishedMakingFerry, MSGBOX_DEFAULT release end -SlateportCity_Harbor_EventScript_AskToTradeScanner:: @ 820CD38 +SlateportCity_Harbor_EventScript_AskToTradeScanner:: message SlateportCity_Harbor_Text_WouldYouTradeScanner waitmessage goto SlateportCity_Harbor_EventScript_ChooseScannerTrade end -SlateportCity_Harbor_EventScript_ChooseScannerTrade:: @ 820CD44 - multichoice 0, 0, MULTI_STERN_DEEPSEA, 0 +SlateportCity_Harbor_EventScript_ChooseScannerTrade:: + multichoice 0, 0, MULTI_STERN_DEEPSEA, FALSE switch VAR_RESULT case 0, SlateportCity_Harbor_EventScript_DeepSeaTooth case 1, SlateportCity_Harbor_EventScript_DeepSeaScale @@ -360,7 +360,7 @@ SlateportCity_Harbor_EventScript_ChooseScannerTrade:: @ 820CD44 case MULTI_B_PRESSED, SlateportCity_Harbor_EventScript_DeclineTrade end -SlateportCity_Harbor_EventScript_DeepSeaTooth:: @ 820CD7B +SlateportCity_Harbor_EventScript_DeepSeaTooth:: msgbox SlateportCity_Harbor_Text_TradeForDeepSeaTooth, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SlateportCity_Harbor_EventScript_ChooseDifferentTrade @@ -373,7 +373,7 @@ SlateportCity_Harbor_EventScript_DeepSeaTooth:: @ 820CD7B goto SlateportCity_Harbor_EventScript_TradedScanner end -SlateportCity_Harbor_EventScript_DeepSeaScale:: @ 820CDBB +SlateportCity_Harbor_EventScript_DeepSeaScale:: msgbox SlateportCity_Harbor_Text_TradeForDeepSeaScale, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SlateportCity_Harbor_EventScript_ChooseDifferentTrade @@ -386,67 +386,67 @@ SlateportCity_Harbor_EventScript_DeepSeaScale:: @ 820CDBB goto SlateportCity_Harbor_EventScript_TradedScanner end -SlateportCity_Harbor_EventScript_DeclineTrade:: @ 820CDFB +SlateportCity_Harbor_EventScript_DeclineTrade:: msgbox SlateportCity_Harbor_Text_IfYouWantToTradeLetMeKnow, MSGBOX_DEFAULT release end -SlateportCity_Harbor_EventScript_ChooseDifferentTrade:: @ 820CE05 +SlateportCity_Harbor_EventScript_ChooseDifferentTrade:: message SlateportCity_Harbor_Text_WhichOneDoYouWant waitmessage goto SlateportCity_Harbor_EventScript_ChooseScannerTrade end -SlateportCity_Harbor_EventScript_TradedScanner:: @ 820CE11 +SlateportCity_Harbor_EventScript_TradedScanner:: setvar VAR_TEMP_1, 1 msgbox SlateportCity_Harbor_Text_ThisWillHelpResearch, MSGBOX_DEFAULT release end -SlateportCity_Harbor_Text_FerryServiceUnavailable: @ 820CE20 +SlateportCity_Harbor_Text_FerryServiceUnavailable: .string "I beg your pardon?\n" .string "You're looking for a ship?\p" .string "I'm sorry, the ferry service isn't\n" .string "available at present…$" -SlateportCity_Harbor_Text_MayISeeYourTicket: @ 820CE87 +SlateportCity_Harbor_Text_MayISeeYourTicket: .string "Hello, are you here for the ferry?\n" .string "May I see your TICKET?$" -SlateportCity_Harbor_Text_YouMustHaveTicket: @ 820CEC1 +SlateportCity_Harbor_Text_YouMustHaveTicket: .string "{PLAYER} doesn't have the TICKET…\p" .string "I'm terribly sorry.\p" .string "You must have a TICKET to board\n" .string "the ferry.$" -SlateportCity_Harbor_Text_FlashedTicketWhereTo: @ 820CF1C +SlateportCity_Harbor_Text_FlashedTicketWhereTo: .string "{PLAYER} flashed the TICKET.\p" .string "Perfect! That's all you need!\p" .string "And where would you like to go?$" -SlateportCity_Harbor_Text_SailAnotherTime: @ 820CF71 +SlateportCity_Harbor_Text_SailAnotherTime: .string "Please sail with us another time!$" -SlateportCity_Harbor_Text_LilycoveItIs: @ 820CF93 +SlateportCity_Harbor_Text_LilycoveItIs: .string "LILYCOVE CITY it is, then!$" -SlateportCity_Harbor_Text_BattleFrontierItIs: @ 820CFAE +SlateportCity_Harbor_Text_BattleFrontierItIs: .string "BATTLE FRONTIER it is, then!$" -SlateportCity_Harbor_Text_PleaseBoardFerry: @ 820CFCB +SlateportCity_Harbor_Text_PleaseBoardFerry: .string "Please board the ferry and wait for\n" .string "departure.$" -SlateportCity_Harbor_Text_WhereWouldYouLikeToGo: @ 820CFFA +SlateportCity_Harbor_Text_WhereWouldYouLikeToGo: .string "Then, where would you like to go?$" -SlateportCity_Harbor_Text_LoveToGoDeepUnderwaterSomeday: @ 820D01C +SlateportCity_Harbor_Text_LoveToGoDeepUnderwaterSomeday: .string "A journey to the bottom of the sea…\n" .string "I wonder what it'd be like?\p" .string "I'd love to go deep underwater like\n" .string "that someday.$" -SlateportCity_Harbor_Text_AbnormalWeather: @ 820D08E +SlateportCity_Harbor_Text_AbnormalWeather: .string "For a ship to sail safely, we need to\n" .string "know about the weather!\p" .string "Speaking of weather, I heard something\n" @@ -456,19 +456,19 @@ SlateportCity_Harbor_Text_AbnormalWeather: @ 820D08E .string "You should visit the WEATHER INSTITUTE\n" .string "and ask around!$" -SlateportCity_Harbor_Text_SubTooSmallForMe: @ 820D194 +SlateportCity_Harbor_Text_SubTooSmallForMe: .string "I wanted to go with CAPT. STERN on\n" .string "the ocean floor exploration.\p" .string "But the sub's too small for me.\p" .string "If I squeezed in, there wouldn't be\n" .string "any room for the CAPTAIN…$" -SlateportCity_Harbor_Text_SameThugsTriedToRobAtMuseum: @ 820D232 +SlateportCity_Harbor_Text_SameThugsTriedToRobAtMuseum: .string "CAPT. STERN: Those thugs…\p" .string "They're the same lot who tried to rob\n" .string "the DEVON GOODS at the MUSEUM.$" -SlateportCity_Harbor_Text_ArchieYouAgainHideoutInLilycove: @ 820D291 +SlateportCity_Harbor_Text_ArchieYouAgainHideoutInLilycove: .string "ARCHIE: Oh?\n" .string "Not you again…\p" .string "You are tenacious to track us here,\n" @@ -479,7 +479,7 @@ SlateportCity_Harbor_Text_ArchieYouAgainHideoutInLilycove: @ 820D291 .string "HIDEOUT in LILYCOVE CITY?\p" .string "Fwahahahaha…$" -SlateportCity_Harbor_Text_CaptSternWhyStealMySubmarine: @ 820D35A +SlateportCity_Harbor_Text_CaptSternWhyStealMySubmarine: .string "CAPT. STERN: Why…\p" .string "Why would TEAM AQUA steal my\n" .string "SUBMARINE EXPLORER 1?\p" @@ -488,7 +488,7 @@ SlateportCity_Harbor_Text_CaptSternWhyStealMySubmarine: @ 820D35A .string "But even if I were to chase them,\n" .string "I don't stand a chance against them…$" -SlateportCity_Harbor_Text_TeamAquaLeftNeedDive: @ 820D42B +SlateportCity_Harbor_Text_TeamAquaLeftNeedDive: .string "CAPT. STERN: Oh, {PLAYER}{KUN}…\p" .string "Okay… So TEAM AQUA left before you\n" .string "could stop them…\p" @@ -503,7 +503,7 @@ SlateportCity_Harbor_Text_TeamAquaLeftNeedDive: @ 820D42B .string "A lot of divers live out there, so\n" .string "someone might teach you…$" -SlateportCity_Harbor_Text_NeedDiveToCatchSub: @ 820D58A +SlateportCity_Harbor_Text_NeedDiveToCatchSub: .string "CAPT. STERN: Trying to catch a\n" .string "submarine… It's impossible.\p" .string "You would need a POKéMON that knows\n" @@ -513,13 +513,13 @@ SlateportCity_Harbor_Text_NeedDiveToCatchSub: @ 820D58A .string "A lot of divers live out there, so\n" .string "someone might teach you…$" -SlateportCity_Harbor_Text_WontBeLongBeforeWeFinishFerry: @ 820D65C +SlateportCity_Harbor_Text_WontBeLongBeforeWeFinishFerry: .string "CAPT. STERN: Oh, yes.\n" .string "MR. BRINEY came to our SHIPYARD.\p" .string "It won't be long now before we finish\n" .string "making the ferry!$" -SlateportCity_Harbor_Text_FinishedMakingFerry: @ 820D6CB +SlateportCity_Harbor_Text_FinishedMakingFerry: .string "CAPT. STERN: {PLAYER}{KUN}!\p" .string "We finally finished making the ferry\n" .string "S.S. TIDAL!\p" @@ -527,7 +527,7 @@ SlateportCity_Harbor_Text_FinishedMakingFerry: @ 820D6CB .string "your friend MR. BRINEY.\p" .string "Please go for a short cruise on it!$" -SlateportCity_Harbor_Text_WouldYouTradeScanner: @ 820D76C +SlateportCity_Harbor_Text_WouldYouTradeScanner: .string "CAPT. STERN: Oh?\n" .string "{PLAYER}{KUN}, that item you have…\p" .string "That's a SCANNER! That would sure\n" @@ -537,27 +537,27 @@ SlateportCity_Harbor_Text_WouldYouTradeScanner: @ 820D76C .string "Like, say, a DEEPSEATOOTH or\n" .string "a DEEPSEASCALE that I have?$" -SlateportCity_Harbor_Text_IfYouWantToTradeLetMeKnow: @ 820D841 +SlateportCity_Harbor_Text_IfYouWantToTradeLetMeKnow: .string "CAPT. STERN: Are you certain?\n" .string "It's useless to you, {PLAYER}{KUN}…\p" .string "Well, okay, then. If you want to trade\n" .string "your SCANNER, let me know.$" -SlateportCity_Harbor_Text_TradeForDeepSeaTooth: @ 820D8BC +SlateportCity_Harbor_Text_TradeForDeepSeaTooth: .string "CAPT. STERN: So you'll trade it for\n" .string "my DEEPSEATOOTH?$" -SlateportCity_Harbor_Text_TradeForDeepSeaScale: @ 820D8F1 +SlateportCity_Harbor_Text_TradeForDeepSeaScale: .string "CAPT. STERN: So you'll trade it for\n" .string "my DEEPSEASCALE?$" -SlateportCity_Harbor_Text_WhichOneDoYouWant: @ 820D926 +SlateportCity_Harbor_Text_WhichOneDoYouWant: .string "CAPT. STERN: Which one do you want?$" -SlateportCity_Harbor_Text_HandedScannerToStern: @ 820D94A +SlateportCity_Harbor_Text_HandedScannerToStern: .string "{PLAYER} handed the SCANNER to\n" .string "CAPT. STERN.$" -SlateportCity_Harbor_Text_ThisWillHelpResearch: @ 820D970 +SlateportCity_Harbor_Text_ThisWillHelpResearch: .string "CAPT. STERN: Thanks, {PLAYER}{KUN}!\n" .string "This will help our research a lot!$" diff --git a/data/maps/SlateportCity_House/scripts.inc b/data/maps/SlateportCity_House/scripts.inc index 13b0caf91c..d903ba865c 100644 --- a/data/maps/SlateportCity_House/scripts.inc +++ b/data/maps/SlateportCity_House/scripts.inc @@ -1,22 +1,22 @@ -SlateportCity_House_MapScripts:: @ 820D9AE +SlateportCity_House_MapScripts:: .byte 0 -SlateportCity_House_EventScript_PokefanM:: @ 820D9AF +SlateportCity_House_EventScript_PokefanM:: msgbox SlateportCity_House_Text_NatureToDoWithStatGains, MSGBOX_NPC end -SlateportCity_House_EventScript_Girl:: @ 820D9B8 +SlateportCity_House_EventScript_Girl:: msgbox SlateportCity_House_Text_MustBeGoingToBattleTent, MSGBOX_NPC end -SlateportCity_House_Text_NatureToDoWithStatGains: @ 820D9C1 +SlateportCity_House_Text_NatureToDoWithStatGains: .string "My POKéMON has a HASTY nature.\p" .string "It has higher SPEED compared to\n" .string "my other POKéMON.\p" .string "Maybe their nature has something to\n" .string "do with the stat gains of POKéMON.$" -SlateportCity_House_Text_MustBeGoingToBattleTent: @ 820DA59 +SlateportCity_House_Text_MustBeGoingToBattleTent: .string "You're a TRAINER, aren't you?\p" .string "Since you came to SLATEPORT CITY,\n" .string "you must be going to the BATTLE TENT.$" diff --git a/data/maps/SlateportCity_Mart/scripts.inc b/data/maps/SlateportCity_Mart/scripts.inc index a1c557ad28..a0c0a8612e 100644 --- a/data/maps/SlateportCity_Mart/scripts.inc +++ b/data/maps/SlateportCity_Mart/scripts.inc @@ -1,7 +1,7 @@ -SlateportCity_Mart_MapScripts:: @ 820DC48 +SlateportCity_Mart_MapScripts:: .byte 0 -SlateportCity_Mart_EventScript_Clerk:: @ 820DC49 +SlateportCity_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -11,7 +11,8 @@ SlateportCity_Mart_EventScript_Clerk:: @ 820DC49 release end -SlateportCity_Mart_Pokemart: @ 820DC60 + .align 2 +SlateportCity_Mart_Pokemart: .2byte ITEM_POKE_BALL .2byte ITEM_GREAT_BALL .2byte ITEM_POTION @@ -25,21 +26,21 @@ SlateportCity_Mart_Pokemart: @ 820DC60 release end -SlateportCity_Mart_EventScript_BlackBelt:: @ 820DC76 +SlateportCity_Mart_EventScript_BlackBelt:: msgbox SlateportCity_Mart_Text_SomeItemsOnlyAtMart, MSGBOX_NPC end -SlateportCity_Mart_EventScript_Man:: @ 820DC7F +SlateportCity_Mart_EventScript_Man:: msgbox SlateportCity_Mart_Text_GreatBallIsBetter, MSGBOX_NPC end -SlateportCity_Mart_Text_SomeItemsOnlyAtMart: @ 820DC88 +SlateportCity_Mart_Text_SomeItemsOnlyAtMart: .string "The MARKET does have some interesting\n" .string "merchandise.\p" .string "But there are some items you can only\n" .string "get at a POKéMON MART.$" -SlateportCity_Mart_Text_GreatBallIsBetter: @ 820DCF8 +SlateportCity_Mart_Text_GreatBallIsBetter: .string "A GREAT BALL is better than a POKé BALL\n" .string "at catching POKéMON.\p" .string "With this, I should be able to get that\n" diff --git a/data/maps/SlateportCity_NameRatersHouse/scripts.inc b/data/maps/SlateportCity_NameRatersHouse/scripts.inc index 92c6b7a028..87ed2d07f8 100644 --- a/data/maps/SlateportCity_NameRatersHouse/scripts.inc +++ b/data/maps/SlateportCity_NameRatersHouse/scripts.inc @@ -1,7 +1,7 @@ -SlateportCity_NameRatersHouse_MapScripts:: @ 8209AA4 +SlateportCity_NameRatersHouse_MapScripts:: .byte 0 -SlateportCity_NameRatersHouse_EventScript_NameRater:: @ 8209AA5 +SlateportCity_NameRatersHouse_EventScript_NameRater:: lock faceplayer msgbox SlateportCity_NameRatersHouse_Text_PleasedToRateMonNickname, MSGBOX_YESNO @@ -11,7 +11,7 @@ SlateportCity_NameRatersHouse_EventScript_NameRater:: @ 8209AA5 goto_if_eq SlateportCity_NameRatersHouse_EventScript_DeclineNameRate end -SlateportCity_NameRatersHouse_EventScript_ChooseMonToRate:: @ 8209AC6 +SlateportCity_NameRatersHouse_EventScript_ChooseMonToRate:: msgbox SlateportCity_NameRatersHouse_Text_CritiqueWhichMonNickname, MSGBOX_DEFAULT special ChoosePartyMon waitstate @@ -21,12 +21,12 @@ SlateportCity_NameRatersHouse_EventScript_ChooseMonToRate:: @ 8209AC6 goto_if_eq SlateportCity_NameRatersHouse_EventScript_DeclineNameRate end -SlateportCity_NameRatersHouse_EventScript_DeclineNameRate:: @ 8209AE9 +SlateportCity_NameRatersHouse_EventScript_DeclineNameRate:: msgbox SlateportCity_NameRatersHouse_Text_DoVisitAgain, MSGBOX_DEFAULT release end -SlateportCity_NameRatersHouse_EventScript_RateMonNickname:: @ 8209AF3 +SlateportCity_NameRatersHouse_EventScript_RateMonNickname:: specialvar VAR_RESULT, ScriptGetPartyMonSpecies compare VAR_RESULT, SPECIES_EGG goto_if_eq SlateportCity_NameRatersHouse_EventScript_CantRateEgg @@ -45,17 +45,17 @@ SlateportCity_NameRatersHouse_EventScript_RateMonNickname:: @ 8209AF3 goto_if_eq SlateportCity_NameRatersHouse_EventScript_DeclineNameRate end -SlateportCity_NameRatersHouse_EventScript_CantRateEgg:: @ 8209B46 +SlateportCity_NameRatersHouse_EventScript_CantRateEgg:: msgbox SlateportCity_NameRatersHouse_Text_ThatIsMerelyAnEgg, MSGBOX_DEFAULT release end -SlateportCity_NameRatersHouse_EventScript_PlayerNotMonsOT:: @ 8209B50 +SlateportCity_NameRatersHouse_EventScript_PlayerNotMonsOT:: msgbox SlateportCity_NameRatersHouse_Text_MagnificentName, MSGBOX_DEFAULT release end -SlateportCity_NameRatersHouse_EventScript_ChangeNickname:: @ 8209B5A +SlateportCity_NameRatersHouse_EventScript_ChangeNickname:: msgbox SlateportCity_NameRatersHouse_Text_WhatShallNewNameBe, MSGBOX_DEFAULT call Common_EventScript_NameReceivedPartyMon specialvar VAR_RESULT, TryPutNameRaterShowOnTheAir @@ -66,56 +66,56 @@ SlateportCity_NameRatersHouse_EventScript_ChangeNickname:: @ 8209B5A release end -SlateportCity_NameRatersHouse_EventScript_NewNameDifferent:: @ 8209B84 +SlateportCity_NameRatersHouse_EventScript_NewNameDifferent:: msgbox SlateportCity_NameRatersHouse_Text_MonShallBeKnownAsName, MSGBOX_DEFAULT release end -SlateportCity_NameRatersHouse_Text_PleasedToRateMonNickname: @ 8209B8E +SlateportCity_NameRatersHouse_Text_PleasedToRateMonNickname: .string "Hi, hi! I'm the NAME RATER!\n" .string "I'm the fortune-teller of names!\p" .string "I shall be pleased to rate your\n" .string "POKéMON's nickname.$" -SlateportCity_NameRatersHouse_Text_CritiqueWhichMonNickname: @ 8209BFF +SlateportCity_NameRatersHouse_Text_CritiqueWhichMonNickname: .string "Which POKéMON's nickname should\n" .string "I critique?$" -SlateportCity_NameRatersHouse_Text_FineNameSuggestBetterOne: @ 8209C2B +SlateportCity_NameRatersHouse_Text_FineNameSuggestBetterOne: .string "Hmmm… {STR_VAR_1}, is it? That is\n" .string "quite a fine name you bestowed.\p" .string "But! What say you, if I were to\n" .string "suggest a slightly better name?$" -SlateportCity_NameRatersHouse_Text_WhatShallNewNameBe: @ 8209CA4 +SlateportCity_NameRatersHouse_Text_WhatShallNewNameBe: .string "Ah, good. Then, what shall the new\n" .string "nickname be?$" -SlateportCity_NameRatersHouse_Text_MonShallBeKnownAsName: @ 8209CD4 +SlateportCity_NameRatersHouse_Text_MonShallBeKnownAsName: .string "Done! From now on, this POKéMON\n" .string "shall be known as {STR_VAR_1}!\p" .string "It is a better name than before!\n" .string "How fortunate for you!$" -SlateportCity_NameRatersHouse_Text_DoVisitAgain: @ 8209D42 +SlateportCity_NameRatersHouse_Text_DoVisitAgain: .string "I see.\n" .string "Do come visit again.$" -SlateportCity_NameRatersHouse_Text_NameNoDifferentYetSuperior: @ 8209D5E +SlateportCity_NameRatersHouse_Text_NameNoDifferentYetSuperior: .string "Done! From now on, this POKéMON\n" .string "shall be known as {STR_VAR_1}!\p" .string "It looks no different from before,\n" .string "and yet, this is vastly superior!\p" .string "How fortunate for you!$" -SlateportCity_NameRatersHouse_Text_MagnificentName: @ 8209DF0 +SlateportCity_NameRatersHouse_Text_MagnificentName: .string "Hmmm… {STR_VAR_1} it is!\p" .string "This is a magnificent nickname!\n" .string "It is impeccably beyond reproach!\p" .string "You'll do well to cherish your\n" .string "{STR_VAR_1} now and beyond.$" -SlateportCity_NameRatersHouse_Text_ThatIsMerelyAnEgg: @ 8209E74 +SlateportCity_NameRatersHouse_Text_ThatIsMerelyAnEgg: .string "Now, now.\n" .string "That is merely an EGG!$" diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc index 90c9b93b79..38ec344649 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc @@ -1,27 +1,27 @@ .set LOCALID_FAMILIAR_GRUNT, 13 -SlateportCity_OceanicMuseum_1F_MapScripts:: @ 820AD95 +SlateportCity_OceanicMuseum_1F_MapScripts:: .byte 0 -SlateportCity_OceanicMuseum_1F_EventScript_EntranceAttendant:: @ 820AD96 +SlateportCity_OceanicMuseum_1F_EventScript_EntranceAttendant:: msgbox SlateportCity_OceanicMuseum_1F_Text_PleaseEnjoyYourself, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFeeLeft:: @ 820AD9F +SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFeeLeft:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 goto SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFee end -SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFeeRight:: @ 820ADB0 +SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFeeRight:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 goto SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFee end -SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFee:: @ 820ADC1 +SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFee:: showmoneybox 0, 0, 0 msgbox SlateportCity_OceanicMuseum_1F_Text_WouldYouLikeToEnter, MSGBOX_YESNO compare VAR_RESULT, YES @@ -33,7 +33,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFee:: @ 820ADC1 releaseall end -SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee:: @ 820ADE8 +SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee:: checkmoney 50, 0 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney @@ -46,7 +46,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee:: @ 820ADE8 releaseall end -SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney:: @ 820AE18 +SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney:: goto_if_unset FLAG_DELIVERED_DEVON_GOODS, SlateportCity_OceanicMuseum_1F_EventScript_AllowEntranceAnyway msgbox SlateportCity_OceanicMuseum_1F_Text_NotEnoughMoney, MSGBOX_DEFAULT closemessage @@ -56,94 +56,94 @@ SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney:: @ 820AE18 releaseall end -SlateportCity_OceanicMuseum_1F_EventScript_AllowEntranceAnyway:: @ 820AE39 +SlateportCity_OceanicMuseum_1F_EventScript_AllowEntranceAnyway:: msgbox SlateportCity_OceanicMuseum_1F_Text_CatchUpWithYourGroup, MSGBOX_DEFAULT setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 1 hidemoneybox releaseall end -SlateportCity_OceanicMuseum_1F_Movement_PushPlayerBackFromCounter: @ 820AE4B +SlateportCity_OceanicMuseum_1F_Movement_PushPlayerBackFromCounter: walk_down step_end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt1:: @ 820AE4D +SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt1:: msgbox SlateportCity_OceanicMuseum_1F_Text_AquaExistForGoodOfAll, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt2:: @ 820AE56 +SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt2:: msgbox SlateportCity_OceanicMuseum_1F_Text_OurBossIsntHere, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt3:: @ 820AE5F +SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt3:: msgbox SlateportCity_OceanicMuseum_1F_Text_WouldStuffHereMakeMeRich, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt4:: @ 820AE68 +SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt4:: msgbox SlateportCity_OceanicMuseum_1F_Text_CanLearnForNefariousDeeds, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt5:: @ 820AE71 +SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt5:: msgbox SlateportCity_OceanicMuseum_1F_Text_RustboroBungled, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt6:: @ 820AE7A +SlateportCity_OceanicMuseum_1F_EventScript_MuseumGrunt6:: msgbox SlateportCity_OceanicMuseum_1F_Text_DidntHaveMoney, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_WhirlpoolExperiment:: @ 820AE83 +SlateportCity_OceanicMuseum_1F_EventScript_WhirlpoolExperiment:: msgbox SlateportCity_OceanicMuseum_1F_Text_WhirlpoolExperiment, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_WaterfallExperiment:: @ 820AE8C +SlateportCity_OceanicMuseum_1F_EventScript_WaterfallExperiment:: msgbox SlateportCity_OceanicMuseum_1F_Text_WaterfallExperiment, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_OceanSoilDisplay:: @ 820AE95 +SlateportCity_OceanicMuseum_1F_EventScript_OceanSoilDisplay:: msgbox SlateportCity_OceanicMuseum_1F_Text_OceanSoilDisplay, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_BeachSandDisplay:: @ 820AE9E +SlateportCity_OceanicMuseum_1F_EventScript_BeachSandDisplay:: msgbox SlateportCity_OceanicMuseum_1F_Text_BeachSandDisplay, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_OceanicMinifact1:: @ 820AEA7 +SlateportCity_OceanicMuseum_1F_EventScript_OceanicMinifact1:: msgbox SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact1, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_OceanicMinifact2:: @ 820AEB0 +SlateportCity_OceanicMuseum_1F_EventScript_OceanicMinifact2:: msgbox SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact2, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_OceanicMinifact3:: @ 820AEB9 +SlateportCity_OceanicMuseum_1F_EventScript_OceanicMinifact3:: msgbox SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact3, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_FossilDisplay:: @ 820AEC2 +SlateportCity_OceanicMuseum_1F_EventScript_FossilDisplay:: msgbox SlateportCity_OceanicMuseum_1F_Text_FossilDisplay, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_DepthMeasuringMachine:: @ 820AECB +SlateportCity_OceanicMuseum_1F_EventScript_DepthMeasuringMachine:: msgbox SlateportCity_OceanicMuseum_1F_Text_DepthMeasuringMachine, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumPatron1:: @ 820AED4 +SlateportCity_OceanicMuseum_1F_EventScript_MuseumPatron1:: msgbox SlateportCity_OceanicMuseum_1F_Text_LearnAboutSeaForBattling, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumPatron2:: @ 820AEDD +SlateportCity_OceanicMuseum_1F_EventScript_MuseumPatron2:: msgbox SlateportCity_OceanicMuseum_1F_Text_SternIsRoleModel, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumPatron3:: @ 820AEE6 +SlateportCity_OceanicMuseum_1F_EventScript_MuseumPatron3:: msgbox SlateportCity_OceanicMuseum_1F_Text_MustBePokemonWeDontKnow, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_MuseumPatron4:: @ 820AEEF +SlateportCity_OceanicMuseum_1F_EventScript_MuseumPatron4:: msgbox SlateportCity_OceanicMuseum_1F_Text_WantSeaPokemon, MSGBOX_NPC end -SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGrunt:: @ 820AEF8 +SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGrunt:: lock faceplayer delay 8 @@ -169,51 +169,51 @@ SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGrunt:: @ 820AEF8 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast end -SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitNorth:: @ 820AF6C +SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitNorth:: applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_PlayerWatchGruntExitNorth applymovement LOCALID_FAMILIAR_GRUNT, SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExitNorth waitmovement 0 goto SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExited end -SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitSouth:: @ 820AF83 +SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitSouth:: applymovement LOCALID_FAMILIAR_GRUNT, SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExit waitmovement 0 goto SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExited end -SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast:: @ 820AF93 +SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast:: applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_PlayerWatchGruntExitWestEast applymovement LOCALID_FAMILIAR_GRUNT, SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExit waitmovement 0 goto SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExited end -SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExited:: @ 820AFAA +SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExited:: setflag FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_FAMILIAR_AQUA_GRUNT playse SE_EXIT removeobject LOCALID_FAMILIAR_GRUNT release end -SlateportCity_OceanicMuseum_1F_EventScript_NoRoomForThief:: @ 820AFB5 +SlateportCity_OceanicMuseum_1F_EventScript_NoRoomForThief:: msgbox SlateportCity_OceanicMuseum_1F_Text_YouHaveToTakeThis, MSGBOX_DEFAULT release end -SlateportCity_OceanicMuseum_1F_Movement_PlayerWatchGruntExitNorth: @ 820AFBF +SlateportCity_OceanicMuseum_1F_Movement_PlayerWatchGruntExitNorth: delay_16 delay_8 delay_4 walk_in_place_fastest_down step_end -SlateportCity_OceanicMuseum_1F_Movement_PlayerWatchGruntExitWestEast: @ 820AFC4 +SlateportCity_OceanicMuseum_1F_Movement_PlayerWatchGruntExitWestEast: delay_16 walk_in_place_fastest_down step_end -SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExit: @ 820AFC7 +SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExit: face_down walk_fast_down walk_fast_down @@ -222,7 +222,7 @@ SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExit: @ 820AFC7 delay_8 step_end -SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExitNorth: @ 820AFCE +SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExitNorth: walk_fast_right walk_fast_down walk_fast_down @@ -231,71 +231,71 @@ SlateportCity_OceanicMuseum_1F_Movement_FamiliarGruntExitNorth: @ 820AFCE delay_8 step_end -SlateportCity_OceanicMuseum_1F_Text_WouldYouLikeToEnter: @ 820AFD5 +SlateportCity_OceanicMuseum_1F_Text_WouldYouLikeToEnter: .string "Welcome to the OCEANIC MUSEUM.\p" .string "The entrance fee is ¥50.\n" .string "Would you like to enter?$" -SlateportCity_OceanicMuseum_1F_Text_PleaseEnjoyYourself: @ 820B026 +SlateportCity_OceanicMuseum_1F_Text_PleaseEnjoyYourself: .string "Please enjoy yourself.$" -SlateportCity_OceanicMuseum_1F_Text_NotEnoughMoney: @ 820B03D +SlateportCity_OceanicMuseum_1F_Text_NotEnoughMoney: .string "Oh? I'm sorry, but you don't seem to\n" .string "have enough money.$" -SlateportCity_OceanicMuseum_1F_Text_CatchUpWithYourGroup: @ 820B075 +SlateportCity_OceanicMuseum_1F_Text_CatchUpWithYourGroup: .string "Oh? You're with that group that\n" .string "went in earlier?\p" .string "You're the only one who's late.\n" .string "You'd better go catch up to them!$" -SlateportCity_OceanicMuseum_1F_Text_AquaExistForGoodOfAll: @ 820B0E8 +SlateportCity_OceanicMuseum_1F_Text_AquaExistForGoodOfAll: .string "We, TEAM AQUA, exist for the good\n" .string "of all!$" -SlateportCity_OceanicMuseum_1F_Text_OurBossIsntHere: @ 820B112 +SlateportCity_OceanicMuseum_1F_Text_OurBossIsntHere: .string "We were told to assemble here,\n" .string "so we did, but…\p" .string "Our BOSS, the linchpin, isn't here.$" -SlateportCity_OceanicMuseum_1F_Text_WouldStuffHereMakeMeRich: @ 820B165 +SlateportCity_OceanicMuseum_1F_Text_WouldStuffHereMakeMeRich: .string "If I ripped off the stuff here,\n" .string "would it make me rich?$" -SlateportCity_OceanicMuseum_1F_Text_CanLearnForNefariousDeeds: @ 820B19C +SlateportCity_OceanicMuseum_1F_Text_CanLearnForNefariousDeeds: .string "What I learn here, I can put to use on\n" .string "nefarious deeds…$" -SlateportCity_OceanicMuseum_1F_Text_RustboroBungled: @ 820B1D4 +SlateportCity_OceanicMuseum_1F_Text_RustboroBungled: .string "If our goons didn't bungle things\n" .string "in RUSTBORO, we wouldn't be here!$" -SlateportCity_OceanicMuseum_1F_Text_DidntHaveMoney: @ 820B218 +SlateportCity_OceanicMuseum_1F_Text_DidntHaveMoney: .string "I didn't have ¥50, so it took a long\n" .string "time getting by the receptionist.$" -SlateportCity_OceanicMuseum_1F_Text_LearnAboutSeaForBattling: @ 820B25F +SlateportCity_OceanicMuseum_1F_Text_LearnAboutSeaForBattling: .string "I want to learn about the sea and\n" .string "use that knowledge for battling.$" -SlateportCity_OceanicMuseum_1F_Text_SternIsRoleModel: @ 820B2A2 +SlateportCity_OceanicMuseum_1F_Text_SternIsRoleModel: .string "I get all giddy and gooey when\n" .string "I see the sea!\p" .string "For me, CAPT. STERN is the number\n" .string "one role model!$" -SlateportCity_OceanicMuseum_1F_Text_MustBePokemonWeDontKnow: @ 820B302 +SlateportCity_OceanicMuseum_1F_Text_MustBePokemonWeDontKnow: .string "The sea is vast without end, and\n" .string "infinitely deep…\p" .string "There must be many POKéMON that\n" .string "we don't know about.$" -SlateportCity_OceanicMuseum_1F_Text_WantSeaPokemon: @ 820B369 +SlateportCity_OceanicMuseum_1F_Text_WantSeaPokemon: .string "I want a sea POKéMON.\p" .string "I think it would feel cool and nice\n" .string "to hug.$" -SlateportCity_OceanicMuseum_1F_Text_RememberMeTakeThis: @ 820B3AB +SlateportCity_OceanicMuseum_1F_Text_RememberMeTakeThis: .string "Aiyeeeh!\n" .string "What are you doing here?\p" .string "Me? I'm the TEAM AQUA member\n" @@ -304,29 +304,29 @@ SlateportCity_OceanicMuseum_1F_Text_RememberMeTakeThis: @ 820B3AB .string "Here, take this!\n" .string "You have to forgive me!$" -SlateportCity_OceanicMuseum_1F_Text_HopeINeverSeeYouAgain: @ 820B449 +SlateportCity_OceanicMuseum_1F_Text_HopeINeverSeeYouAgain: .string "That TM, it suits you more than it\n" .string "does me.\p" .string "Hope I never see you again!\n" .string "Wahahaha!$" -SlateportCity_OceanicMuseum_1F_Text_YouHaveToTakeThis: @ 820B49B +SlateportCity_OceanicMuseum_1F_Text_YouHaveToTakeThis: .string "Awww, come on!\n" .string "You have to take this and let me go!$" -SlateportCity_OceanicMuseum_1F_Text_WhirlpoolExperiment: @ 820B4CF +SlateportCity_OceanicMuseum_1F_Text_WhirlpoolExperiment: .string "A blue fluid is spiraling inside\n" .string "a glass vessel.\p" .string "“This is an experiment to create a\n" .string "WHIRLPOOL artificially using wind.”$" -SlateportCity_OceanicMuseum_1F_Text_WaterfallExperiment: @ 820B547 +SlateportCity_OceanicMuseum_1F_Text_WaterfallExperiment: .string "A red ball is bobbing up and down\n" .string "inside a glass vessel.\p" .string "“This is an experiment simulating a\n" .string "WATERFALL using the ball's buoyancy.”$" -SlateportCity_OceanicMuseum_1F_Text_OceanSoilDisplay: @ 820B5CA +SlateportCity_OceanicMuseum_1F_Text_OceanSoilDisplay: .string "It's a sample of soil from the ocean\n" .string "floor.\p" .string "“Over many years, the remains of\n" @@ -335,7 +335,7 @@ SlateportCity_OceanicMuseum_1F_Text_OceanSoilDisplay: @ 820B5CA .string "“By analyzing these layers, the\n" .string "ancient past is revealed.”$" -SlateportCity_OceanicMuseum_1F_Text_BeachSandDisplay: @ 820B699 +SlateportCity_OceanicMuseum_1F_Text_BeachSandDisplay: .string "It's a sample of beach sand.\p" .string "“Stones from mountains are washed\n" .string "down by rivers where they are\l" @@ -343,7 +343,7 @@ SlateportCity_OceanicMuseum_1F_Text_BeachSandDisplay: @ 820B699 .string "“They are reduced to grains and end\n" .string "up as sand on beaches.”$" -SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact1: @ 820B74B +SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact1: .string "“OCEANIC MINIFACT 1\n" .string "Why is seawater blue?\p" .string "“Light is composed of many colors.\p" @@ -352,7 +352,7 @@ SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact1: @ 820B74B .string "“However, blue light retains its\n" .string "color, making the sea appear blue.”$" -SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact2: @ 820B81F +SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact2: .string "“OCEANIC MINIFACT 2\n" .string "Why is the sea salty?\p" .string "“Seawater contains dissolved salt in\n" @@ -362,7 +362,7 @@ SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact2: @ 820B81F .string "“The concentration of dissolved salt\n" .string "makes the sea salty.”$" -SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact3: @ 820B912 +SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact3: .string "“OCEANIC MINIFACT 3\n" .string "Which is bigger? The sea or land?\p" .string "“The sea covers about 70% of\n" @@ -370,7 +370,7 @@ SlateportCity_OceanicMuseum_1F_Text_OceanicMinifact3: @ 820B912 .string "“The sea is therefore more than twice\n" .string "the size of land.”$" -SlateportCity_OceanicMuseum_1F_Text_FossilDisplay: @ 820B9C0 +SlateportCity_OceanicMuseum_1F_Text_FossilDisplay: .string "It's a fossil with wavy ridges on it.\p" .string "“Soil on the ocean floor gets scoured\n" .string "by the tide.\p" @@ -379,7 +379,7 @@ SlateportCity_OceanicMuseum_1F_Text_FossilDisplay: @ 820B9C0 .string "“If this soil becomes fossilized, it is\n" .string "called a ripple mark.”$" -SlateportCity_OceanicMuseum_1F_Text_DepthMeasuringMachine: @ 820BA9C +SlateportCity_OceanicMuseum_1F_Text_DepthMeasuringMachine: .string "A strange machine is rotating under\n" .string "a glass dome.\p" .string "Maybe it's for measuring the depth\n" diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc index bba75dbd1e..90b5c83de0 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc @@ -3,15 +3,15 @@ .set LOCALID_GRUNT_1, 3 .set LOCALID_GRUNT_2, 4 -SlateportCity_OceanicMuseum_2F_MapScripts:: @ 820BAFF +SlateportCity_OceanicMuseum_2F_MapScripts:: .byte 0 -SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 +SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: lock faceplayer msgbox SlateportCity_OceanicMuseum_2F_Text_ThankYouForTheParts, MSGBOX_DEFAULT closemessage - playbgm MUS_ENCOUNTER_AQUA, 1 + playbgm MUS_ENCOUNTER_AQUA, TRUE addobject LOCALID_GRUNT_1 applymovement LOCALID_GRUNT_1, SlateportCity_OceanicMuseum_2F_Movement_FirstGruntEnter waitmovement 0 @@ -96,37 +96,37 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 release end -SlateportCity_OceanicMuseum_2F_EventScript_ReadyRegisterBirch:: @ 820BC8C +SlateportCity_OceanicMuseum_2F_EventScript_ReadyRegisterBirch:: setvar VAR_REGISTER_BIRCH_STATE, 1 return -SlateportCity_OceanicMuseum_2F_EventScript_PlayerFaceGrunts:: @ 820BC92 +SlateportCity_OceanicMuseum_2F_EventScript_PlayerFaceGrunts:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -SlateportCity_OceanicMuseum_2F_EventScript_SternFaceGrunts:: @ 820BC9D +SlateportCity_OceanicMuseum_2F_EventScript_SternFaceGrunts:: applymovement LOCALID_CAPT_STERN, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -SlateportCity_OceanicMuseum_2F_EventScript_PlayerApproachGruntSouth:: @ 820BCA8 +SlateportCity_OceanicMuseum_2F_EventScript_PlayerApproachGruntSouth:: applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntSouth waitmovement 0 return -SlateportCity_OceanicMuseum_2F_EventScript_PlayerApproachGruntWest:: @ 820BCB3 +SlateportCity_OceanicMuseum_2F_EventScript_PlayerApproachGruntWest:: applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntWest waitmovement 0 return -SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntSouth: @ 820BCBE +SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntSouth: walk_left walk_down walk_in_place_fastest_left step_end -SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntWest: @ 820BCC2 +SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntWest: walk_up walk_left walk_left @@ -134,7 +134,7 @@ SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntWest: @ 820BCC2 walk_in_place_fastest_left step_end -SlateportCity_OceanicMuseum_2F_Movement_Unused: @ 820BCC8 +SlateportCity_OceanicMuseum_2F_Movement_Unused: walk_up walk_left walk_left @@ -150,11 +150,11 @@ SlateportCity_OceanicMuseum_2F_Movement_Unused: @ 820BCC8 delay_8 step_end -SlateportCity_OceanicMuseum_2F_Movement_ArchieApproachPlayer: @ 820BCD6 +SlateportCity_OceanicMuseum_2F_Movement_ArchieApproachPlayer: walk_right step_end -SlateportCity_OceanicMuseum_2F_Movement_ArchieEnter: @ 820BCD8 +SlateportCity_OceanicMuseum_2F_Movement_ArchieEnter: walk_down walk_down walk_down @@ -166,17 +166,17 @@ SlateportCity_OceanicMuseum_2F_Movement_ArchieEnter: @ 820BCD8 walk_right step_end -SlateportCity_OceanicMuseum_2F_Movement_GruntApproachToBattle: @ 820BCE2 +SlateportCity_OceanicMuseum_2F_Movement_GruntApproachToBattle: walk_right step_end -SlateportCity_OceanicMuseum_2F_Movement_FirstGruntEnter: @ 820BCE4 +SlateportCity_OceanicMuseum_2F_Movement_FirstGruntEnter: walk_down walk_right walk_in_place_fastest_down step_end -SlateportCity_OceanicMuseum_2F_Movement_FirstGruntApproach: @ 820BCE8 +SlateportCity_OceanicMuseum_2F_Movement_FirstGruntApproach: walk_down walk_down walk_down @@ -185,17 +185,17 @@ SlateportCity_OceanicMuseum_2F_Movement_FirstGruntApproach: @ 820BCE8 walk_right step_end -SlateportCity_OceanicMuseum_2F_Movement_GruntDefeated: @ 820BCEF +SlateportCity_OceanicMuseum_2F_Movement_GruntDefeated: lock_facing_direction walk_left unlock_facing_direction step_end -SlateportCity_OceanicMuseum_2F_Movement_SecondGruntEnter: @ 820BCF3 +SlateportCity_OceanicMuseum_2F_Movement_SecondGruntEnter: walk_down step_end -SlateportCity_OceanicMuseum_2F_Movement_SecondGruntApproach: @ 820BCF5 +SlateportCity_OceanicMuseum_2F_Movement_SecondGruntApproach: walk_down walk_down walk_down @@ -206,7 +206,7 @@ SlateportCity_OceanicMuseum_2F_Movement_SecondGruntApproach: @ 820BCF5 walk_right step_end -SlateportCity_OceanicMuseum_2F_Movement_GruntMoveForArchie: @ 820BCFE +SlateportCity_OceanicMuseum_2F_Movement_GruntMoveForArchie: delay_16 delay_16 delay_16 @@ -220,55 +220,55 @@ SlateportCity_OceanicMuseum_2F_Movement_GruntMoveForArchie: @ 820BCFE walk_in_place_fastest_up step_end -SlateportCity_OceanicMuseum_2F_EventScript_WaterQualitySample1:: @ 820BD0A +SlateportCity_OceanicMuseum_2F_EventScript_WaterQualitySample1:: msgbox SlateportCity_OceanicMuseum_2F_Text_WaterQualitySample1, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_WaterQualitySample2:: @ 820BD13 +SlateportCity_OceanicMuseum_2F_EventScript_WaterQualitySample2:: msgbox SlateportCity_OceanicMuseum_2F_Text_WaterQualitySample2, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_PressureExperiment:: @ 820BD1C +SlateportCity_OceanicMuseum_2F_EventScript_PressureExperiment:: msgbox SlateportCity_OceanicMuseum_2F_Text_PressureExperiment, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_HoennModel:: @ 820BD25 +SlateportCity_OceanicMuseum_2F_EventScript_HoennModel:: msgbox SlateportCity_OceanicMuseum_2F_Text_HoennModel, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_DeepSeawaterDisplay:: @ 820BD2E +SlateportCity_OceanicMuseum_2F_EventScript_DeepSeawaterDisplay:: msgbox SlateportCity_OceanicMuseum_2F_Text_DeepSeawaterDisplay, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_SurfaceSeawaterDisplay:: @ 820BD37 +SlateportCity_OceanicMuseum_2F_EventScript_SurfaceSeawaterDisplay:: msgbox SlateportCity_OceanicMuseum_2F_Text_SurfaceSeawaterDisplay, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_SSTidalReplica:: @ 820BD40 +SlateportCity_OceanicMuseum_2F_EventScript_SSTidalReplica:: msgbox SlateportCity_OceanicMuseum_2F_Text_SSTidalReplica, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_SubmarineReplica:: @ 820BD49 +SlateportCity_OceanicMuseum_2F_EventScript_SubmarineReplica:: msgbox SlateportCity_OceanicMuseum_2F_Text_SubmarineReplica, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_SubmersibleReplica:: @ 820BD52 +SlateportCity_OceanicMuseum_2F_EventScript_SubmersibleReplica:: msgbox SlateportCity_OceanicMuseum_2F_Text_SumbersibleReplica, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_SSAnneReplica:: @ 820BD5B +SlateportCity_OceanicMuseum_2F_EventScript_SSAnneReplica:: msgbox SlateportCity_OceanicMuseum_2F_Text_SSAnneReplica, MSGBOX_SIGN end -SlateportCity_OceanicMuseum_2F_EventScript_MuseumPatron1:: @ 820BD64 +SlateportCity_OceanicMuseum_2F_EventScript_MuseumPatron1:: msgbox SlateportCity_OceanicMuseum_2F_Text_RemindsMeOfAbandonedShip, MSGBOX_NPC end -SlateportCity_OceanicMuseum_2F_EventScript_MuseumPatron2:: @ 820BD6D +SlateportCity_OceanicMuseum_2F_EventScript_MuseumPatron2:: msgbox SlateportCity_OceanicMuseum_2F_Text_DontRunInMuseum, MSGBOX_NPC end -SlateportCity_OceanicMuseum_2F_EventScript_MuseumPatron3:: @ 820BD76 +SlateportCity_OceanicMuseum_2F_EventScript_MuseumPatron3:: lock faceplayer msgbox SlateportCity_OceanicMuseum_2F_Text_WantToRideSubmarine, MSGBOX_DEFAULT @@ -278,7 +278,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_MuseumPatron3:: @ 820BD76 release end -SlateportCity_OceanicMuseum_2F_Text_ThankYouForTheParts: @ 820BD8D +SlateportCity_OceanicMuseum_2F_Text_ThankYouForTheParts: .string "Yes? If you're looking for STERN,\n" .string "that would be me.\p" .string "Ah! Those must be the parts I ordered\n" @@ -286,47 +286,47 @@ SlateportCity_OceanicMuseum_2F_Text_ThankYouForTheParts: @ 820BD8D .string "Thank you! That's great!\n" .string "We can prepare for our expedition now.$" -SlateportCity_OceanicMuseum_2F_Text_WellTakeThoseParts: @ 820BE40 +SlateportCity_OceanicMuseum_2F_Text_WellTakeThoseParts: .string "Hehehe, hold it!\n" .string "We'll take those parts!$" -SlateportCity_OceanicMuseum_2F_Text_SternWhoAreYou: @ 820BE69 +SlateportCity_OceanicMuseum_2F_Text_SternWhoAreYou: .string "CAPT. STERN: Wh-what?\n" .string "Who are you people?$" -SlateportCity_OceanicMuseum_2F_Text_WereTeamAqua: @ 820BE93 +SlateportCity_OceanicMuseum_2F_Text_WereTeamAqua: .string "We're TEAM AQUA!\p" .string "Our BOSS wants those parts!\n" .string "Shut your yap and fork them over!$" -SlateportCity_OceanicMuseum_2F_Text_Grunt1Defeat: @ 820BEE2 +SlateportCity_OceanicMuseum_2F_Text_Grunt1Defeat: .string "Awaaaah!\n" .string "A kid beat me!$" -SlateportCity_OceanicMuseum_2F_Text_BossGoingToBeFurious: @ 820BEFA +SlateportCity_OceanicMuseum_2F_Text_BossGoingToBeFurious: .string "Oh, man, what a disaster…\n" .string "The BOSS is going to be furious…$" -SlateportCity_OceanicMuseum_2F_Text_LetMeTakeCareOfThis: @ 820BF35 +SlateportCity_OceanicMuseum_2F_Text_LetMeTakeCareOfThis: .string "Humph, sniveling wimp!\n" .string "Let me take care of this!$" -SlateportCity_OceanicMuseum_2F_Text_Grunt2Defeat: @ 820BF66 +SlateportCity_OceanicMuseum_2F_Text_Grunt2Defeat: .string "What?!\n" .string "I lost, too!$" -SlateportCity_OceanicMuseum_2F_Text_MeddlingKid: @ 820BF7A +SlateportCity_OceanicMuseum_2F_Text_MeddlingKid: .string "Now what? If we don't get the parts,\n" .string "we're in for it!\p" .string "Arrgh, I didn't count on being meddled\n" .string "with by some meddling kid!$" -SlateportCity_OceanicMuseum_2F_Text_CameToSeeWhatsTakingSoLong: @ 820BFF2 +SlateportCity_OceanicMuseum_2F_Text_CameToSeeWhatsTakingSoLong: .string "I came to see what was taking so\n" .string "long to snatch some parts, and you\l" .string "simps are held up by a mere child?$" -SlateportCity_OceanicMuseum_2F_Text_ArchieWarning: @ 820C059 +SlateportCity_OceanicMuseum_2F_Text_ArchieWarning: .string "We are TEAM AQUA,\n" .string "and we love the sea!\p" .string "And I am TEAM AQUA's leader,\n" @@ -353,7 +353,7 @@ SlateportCity_OceanicMuseum_2F_Text_ArchieWarning: @ 820C059 .string "dearly!\p" .string "And don't you forget it!$" -SlateportCity_OceanicMuseum_2F_Text_SternThankYouForSavingUs: @ 820C2BE +SlateportCity_OceanicMuseum_2F_Text_SternThankYouForSavingUs: .string "CAPT. STERN: You're…\n" .string "Ah, okay, you're {PLAYER}{KUN}…\p" .string "Anyway, that was a tense situation!\n" @@ -361,7 +361,7 @@ SlateportCity_OceanicMuseum_2F_Text_SternThankYouForSavingUs: @ 820C2BE .string "Oh, yes, I almost forgot that you\n" .string "even brought the parts from DEVON!$" -SlateportCity_OceanicMuseum_2F_Text_SternIveGotToGo: @ 820C36C +SlateportCity_OceanicMuseum_2F_Text_SternIveGotToGo: .string "CAPT. STERN: Whoops!\n" .string "There's no time to lose!\p" .string "We have to set out on our ocean-floor\n" @@ -371,32 +371,32 @@ SlateportCity_OceanicMuseum_2F_Text_SternIveGotToGo: @ 820C36C .string "Feel free to wander around and check\n" .string "out our facilities, though.$" -SlateportCity_OceanicMuseum_2F_Text_RemindsMeOfAbandonedShip: @ 820C43F +SlateportCity_OceanicMuseum_2F_Text_RemindsMeOfAbandonedShip: .string "I saw a model of a ship here.\p" .string "It reminded me of the ABANDONED SHIP\n" .string "near DEWFORD TOWN…$" -SlateportCity_OceanicMuseum_2F_Text_DontRunInMuseum: @ 820C495 +SlateportCity_OceanicMuseum_2F_Text_DontRunInMuseum: .string "Don't you dare run around inside\n" .string "the MUSEUM!$" -SlateportCity_OceanicMuseum_2F_Text_WantToRideSubmarine: @ 820C4C2 +SlateportCity_OceanicMuseum_2F_Text_WantToRideSubmarine: .string "Wow, the submarine's awesome!\n" .string "I want to go for a ride!$" -SlateportCity_OceanicMuseum_2F_Text_WaterQualitySample1: @ 820C4F9 +SlateportCity_OceanicMuseum_2F_Text_WaterQualitySample1: .string "“WATER QUALITY SAMPLE 1,” the\n" .string "label says.\p" .string "The sea is all connected, but the\n" .string "water seems to differ by region.$" -SlateportCity_OceanicMuseum_2F_Text_WaterQualitySample2: @ 820C566 +SlateportCity_OceanicMuseum_2F_Text_WaterQualitySample2: .string "“WATER QUALITY SAMPLE 2,” the\n" .string "label says.\p" .string "Does the saltiness of seawater differ\n" .string "by region, too?$" -SlateportCity_OceanicMuseum_2F_Text_PressureExperiment: @ 820C5C6 +SlateportCity_OceanicMuseum_2F_Text_PressureExperiment: .string "A rubber ball is expanding and\n" .string "shrinking.\p" .string "“In the sea, the weight of water itself\n" @@ -407,39 +407,39 @@ SlateportCity_OceanicMuseum_2F_Text_PressureExperiment: @ 820C5C6 .string "the pressure can reach even tens of\l" .string "thousands of tons on a small area.”$" -SlateportCity_OceanicMuseum_2F_Text_HoennModel: @ 820C6C7 +SlateportCity_OceanicMuseum_2F_Text_HoennModel: .string "“MODEL OF HOENN REGION”\p" .string "It's a miniature diorama of the\n" .string "HOENN region.\p" .string "Where is LITTLEROOT TOWN on this?$" -SlateportCity_OceanicMuseum_2F_Text_DeepSeawaterDisplay: @ 820C72F +SlateportCity_OceanicMuseum_2F_Text_DeepSeawaterDisplay: .string "It's a display on the flow of seawater.\p" .string "“Near the bottom of the sea, water\n" .string "flows due to differences in such\l" .string "factors as temperature and salinity.”$" -SlateportCity_OceanicMuseum_2F_Text_SurfaceSeawaterDisplay: @ 820C7C1 +SlateportCity_OceanicMuseum_2F_Text_SurfaceSeawaterDisplay: .string "It's a display on the flow of seawater.\p" .string "“Toward the surface, seawater flows\n" .string "as currents driven by the winds.”$" -SlateportCity_OceanicMuseum_2F_Text_SSTidalReplica: @ 820C82F +SlateportCity_OceanicMuseum_2F_Text_SSTidalReplica: .string "“THE FERRY S.S. TIDAL\p" .string "“A scale replica of the ship under\n" .string "construction at STERN'S SHIPYARD.”$" -SlateportCity_OceanicMuseum_2F_Text_SubmarineReplica: @ 820C88B +SlateportCity_OceanicMuseum_2F_Text_SubmarineReplica: .string "“SUBMARINE EXPLORER 1\p" .string "“A replica of the high-performance\n" .string "ocean floor exploration submarine.”$" -SlateportCity_OceanicMuseum_2F_Text_SumbersibleReplica: @ 820C8E8 +SlateportCity_OceanicMuseum_2F_Text_SumbersibleReplica: .string "“SUBMERSIBLE POD\p" .string "“A replica of a compact, unmanned\n" .string "pod for seafloor exploration.”$" -SlateportCity_OceanicMuseum_2F_Text_SSAnneReplica: @ 820C93A +SlateportCity_OceanicMuseum_2F_Text_SSAnneReplica: .string "“S.S. ANNE\p" .string "“A replica of the luxury liner that\n" .string "circles the globe.”$" diff --git a/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc b/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc index e6b1acea8e..295409df81 100644 --- a/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc @@ -1,16 +1,16 @@ .set LOCALID_NURSE, 1 -SlateportCity_PokemonCenter_1F_MapScripts:: @ 820DABF +SlateportCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SlateportCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -SlateportCity_PokemonCenter_1F_OnTransition: @ 820DACA +SlateportCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_SLATEPORT_CITY call Common_EventScript_UpdateBrineyLocation end -SlateportCity_PokemonCenter_1F_EventScript_Nurse:: @ 820DAD3 +SlateportCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -18,15 +18,15 @@ SlateportCity_PokemonCenter_1F_EventScript_Nurse:: @ 820DAD3 release end -SlateportCity_PokemonCenter_1F_EventScript_Sailor:: @ 820DAE1 +SlateportCity_PokemonCenter_1F_EventScript_Sailor:: msgbox SlateportCity_PokemonCenter_1F_Text_RaiseDifferentTypesOfPokemon, MSGBOX_NPC end -SlateportCity_PokemonCenter_1F_EventScript_Woman:: @ 820DAEA +SlateportCity_PokemonCenter_1F_EventScript_Woman:: msgbox SlateportCity_PokemonCenter_1F_Text_TradedMonWithFriend, MSGBOX_NPC end -SlateportCity_PokemonCenter_1F_Text_RaiseDifferentTypesOfPokemon: @ 820DAF3 +SlateportCity_PokemonCenter_1F_Text_RaiseDifferentTypesOfPokemon: .string "Want a tip for battling?\p" .string "I'd say it's raising different kinds\n" .string "of POKéMON in a balanced manner.\p" @@ -35,7 +35,7 @@ SlateportCity_PokemonCenter_1F_Text_RaiseDifferentTypesOfPokemon: @ 820DAF3 .string "If it has a type disadvantage,\n" .string "it might not stand a chance.$" -SlateportCity_PokemonCenter_1F_Text_TradedMonWithFriend: @ 820DBBC +SlateportCity_PokemonCenter_1F_Text_TradedMonWithFriend: .string "I trade POKéMON with my friends.\p" .string "If a traded POKéMON is holding an\n" .string "item, it makes me twice as happy!$" diff --git a/data/maps/SlateportCity_PokemonCenter_2F/scripts.inc b/data/maps/SlateportCity_PokemonCenter_2F/scripts.inc index 6406df27da..48bad0fe3b 100644 --- a/data/maps/SlateportCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/SlateportCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -SlateportCity_PokemonCenter_2F_MapScripts:: @ 820DC21 +SlateportCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ SlateportCity_PokemonCenter_2F_MapScripts:: @ 820DC21 .byte 0 @ The below 3 are unused and leftover from RS -SlateportCity_PokemonCenter_2F_EventScript_Colosseum:: @ 820DC36 +SlateportCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -SlateportCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 820DC3C +SlateportCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -SlateportCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 820DC42 +SlateportCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/SlateportCity_PokemonFanClub/scripts.inc b/data/maps/SlateportCity_PokemonFanClub/scripts.inc index e4086fa195..3bff728164 100644 --- a/data/maps/SlateportCity_PokemonFanClub/scripts.inc +++ b/data/maps/SlateportCity_PokemonFanClub/scripts.inc @@ -1,7 +1,7 @@ -SlateportCity_PokemonFanClub_MapScripts:: @ 8209E95 +SlateportCity_PokemonFanClub_MapScripts:: .byte 0 -SlateportCity_PokemonFanClub_EventScript_Chairman:: @ 8209E96 +SlateportCity_PokemonFanClub_EventScript_Chairman:: lock faceplayer goto_if_unset FLAG_ENTERED_CONTEST, SlateportCity_PokemonFanClub_EventScript_ChairmanNotEnteredContest @@ -13,13 +13,13 @@ SlateportCity_PokemonFanClub_EventScript_Chairman:: @ 8209E96 release end -SlateportCity_PokemonFanClub_EventScript_ChairmanFirstAssessment:: @ 8209ED2 +SlateportCity_PokemonFanClub_EventScript_ChairmanFirstAssessment:: setvar VAR_SLATEPORT_FAN_CLUB_STATE, 1 msgbox SlateportCity_PokemonFanClub_Text_AllowMeToExamineYourPokemon, MSGBOX_DEFAULT goto SlateportCity_PokemonFanClub_EventScript_ChairmanAssessLeadMon end -SlateportCity_PokemonFanClub_EventScript_ChairmanTryAssessPokemon:: @ 8209EE5 +SlateportCity_PokemonFanClub_EventScript_ChairmanTryAssessPokemon:: setvar VAR_TEMP_2, 0 call_if_set FLAG_RECEIVED_YELLOW_SCARF, SlateportCity_PokemonFanClub_EventScript_CountReceivedScarf call_if_set FLAG_RECEIVED_GREEN_SCARF, SlateportCity_PokemonFanClub_EventScript_CountReceivedScarf @@ -34,12 +34,12 @@ SlateportCity_PokemonFanClub_EventScript_ChairmanTryAssessPokemon:: @ 8209EE5 goto SlateportCity_PokemonFanClub_EventScript_ChairmanAssessLeadMon end -SlateportCity_PokemonFanClub_EventScript_NoMoreScarves:: @ 8209F3B +SlateportCity_PokemonFanClub_EventScript_NoMoreScarves:: msgbox SlateportCity_PokemonFanClub_Text_NothingElseToGiveYou, MSGBOX_DEFAULT release end -SlateportCity_PokemonFanClub_EventScript_ChairmanAssessLeadMon:: @ 8209F45 +SlateportCity_PokemonFanClub_EventScript_ChairmanAssessLeadMon:: msgbox SlateportCity_PokemonFanClub_Text_HmHmISee, MSGBOX_DEFAULT setvar VAR_TEMP_1, 0 call_if_unset FLAG_RECEIVED_YELLOW_SCARF, SlateportCity_PokemonFanClub_EventScript_CheckMonTough @@ -58,20 +58,20 @@ SlateportCity_PokemonFanClub_EventScript_ChairmanAssessLeadMon:: @ 8209F45 release end -SlateportCity_PokemonFanClub_EventScript_ReceivedAllScarves:: @ 8209FCA +SlateportCity_PokemonFanClub_EventScript_ReceivedAllScarves:: setvar VAR_SLATEPORT_FAN_CLUB_STATE, 2 return -SlateportCity_PokemonFanClub_EventScript_CountReceivedScarf:: @ 8209FD0 +SlateportCity_PokemonFanClub_EventScript_CountReceivedScarf:: addvar VAR_TEMP_2, 1 return -SlateportCity_PokemonFanClub_EventScript_NoHighConditions:: @ 8209FD6 +SlateportCity_PokemonFanClub_EventScript_NoHighConditions:: msgbox SlateportCity_PokemonFanClub_Text_GiveMonMorePokeblocks, MSGBOX_DEFAULT release end -SlateportCity_PokemonFanClub_EventScript_GiveRedScarf:: @ 8209FE0 +SlateportCity_PokemonFanClub_EventScript_GiveRedScarf:: checkitemspace ITEM_RED_SCARF, 1 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf @@ -82,7 +82,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveRedScarf:: @ 8209FE0 release end -SlateportCity_PokemonFanClub_EventScript_GiveBlueScarf:: @ 820A011 +SlateportCity_PokemonFanClub_EventScript_GiveBlueScarf:: checkitemspace ITEM_BLUE_SCARF, 1 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf @@ -93,7 +93,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveBlueScarf:: @ 820A011 release end -SlateportCity_PokemonFanClub_EventScript_GivePinkScarf:: @ 820A042 +SlateportCity_PokemonFanClub_EventScript_GivePinkScarf:: checkitemspace ITEM_PINK_SCARF, 1 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf @@ -104,7 +104,7 @@ SlateportCity_PokemonFanClub_EventScript_GivePinkScarf:: @ 820A042 release end -SlateportCity_PokemonFanClub_EventScript_GiveGreenScarf:: @ 820A073 +SlateportCity_PokemonFanClub_EventScript_GiveGreenScarf:: checkitemspace ITEM_GREEN_SCARF, 1 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf @@ -115,7 +115,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveGreenScarf:: @ 820A073 release end -SlateportCity_PokemonFanClub_EventScript_GiveYellowScarf:: @ 820A0A4 +SlateportCity_PokemonFanClub_EventScript_GiveYellowScarf:: checkitemspace ITEM_YELLOW_SCARF, 1 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf @@ -126,79 +126,79 @@ SlateportCity_PokemonFanClub_EventScript_GiveYellowScarf:: @ 820A0A4 release end -SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf:: @ 820A0D5 +SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf:: msgbox SlateportCity_PokemonFanClub_Text_NoSpaceForReward, MSGBOX_DEFAULT release end -SlateportCity_PokemonFanClub_EventScript_CheckMonCool:: @ 820A0DF +SlateportCity_PokemonFanClub_EventScript_CheckMonCool:: specialvar VAR_RESULT, CheckLeadMonCool compare VAR_RESULT, TRUE call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonCool return -SlateportCity_PokemonFanClub_EventScript_SetMonCool:: @ 820A0F0 +SlateportCity_PokemonFanClub_EventScript_SetMonCool:: setvar VAR_TEMP_1, 1 return -SlateportCity_PokemonFanClub_EventScript_CheckMonBeauty:: @ 820A0F6 +SlateportCity_PokemonFanClub_EventScript_CheckMonBeauty:: specialvar VAR_RESULT, CheckLeadMonBeauty compare VAR_RESULT, TRUE call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonBeauty return -SlateportCity_PokemonFanClub_EventScript_SetMonBeauty:: @ 820A107 +SlateportCity_PokemonFanClub_EventScript_SetMonBeauty:: setvar VAR_TEMP_1, 2 return -SlateportCity_PokemonFanClub_EventScript_CheckMonCute:: @ 820A10D +SlateportCity_PokemonFanClub_EventScript_CheckMonCute:: specialvar VAR_RESULT, CheckLeadMonCute compare VAR_RESULT, TRUE call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonCute return -SlateportCity_PokemonFanClub_EventScript_SetMonCute:: @ 820A11E +SlateportCity_PokemonFanClub_EventScript_SetMonCute:: setvar VAR_TEMP_1, 3 return -SlateportCity_PokemonFanClub_EventScript_CheckMonSmart:: @ 820A124 +SlateportCity_PokemonFanClub_EventScript_CheckMonSmart:: specialvar VAR_RESULT, CheckLeadMonSmart compare VAR_RESULT, TRUE call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonSmart return -SlateportCity_PokemonFanClub_EventScript_SetMonSmart:: @ 820A135 +SlateportCity_PokemonFanClub_EventScript_SetMonSmart:: setvar VAR_TEMP_1, 4 return -SlateportCity_PokemonFanClub_EventScript_CheckMonTough:: @ 820A13B +SlateportCity_PokemonFanClub_EventScript_CheckMonTough:: specialvar VAR_RESULT, CheckLeadMonTough compare VAR_RESULT, TRUE call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonTough return -SlateportCity_PokemonFanClub_EventScript_SetMonTough:: @ 820A14C +SlateportCity_PokemonFanClub_EventScript_SetMonTough:: setvar VAR_TEMP_1, 5 return -SlateportCity_PokemonFanClub_EventScript_ChairmanNotEnteredContest:: @ 820A152 +SlateportCity_PokemonFanClub_EventScript_ChairmanNotEnteredContest:: goto_if_set FLAG_MET_SLATEPORT_FANCLUB_CHAIRMAN, SlateportCity_PokemonFanClub_EventScript_ChairmanEnterContest msgbox SlateportCity_PokemonFanClub_Text_MeetChairman, MSGBOX_DEFAULT setflag FLAG_MET_SLATEPORT_FANCLUB_CHAIRMAN release end -SlateportCity_PokemonFanClub_EventScript_ChairmanEnterContest:: @ 820A168 +SlateportCity_PokemonFanClub_EventScript_ChairmanEnterContest:: msgbox SlateportCity_PokemonFanClub_Text_LikeToSeeEnteredContestPokemon, MSGBOX_DEFAULT release end -SlateportCity_PokemonFanClub_EventScript_MeetChairman:: @ 820A172 +SlateportCity_PokemonFanClub_EventScript_MeetChairman:: msgbox SlateportCity_PokemonFanClub_Text_MeetChairman, MSGBOX_DEFAULT setflag FLAG_MET_SLATEPORT_FANCLUB_CHAIRMAN return -SlateportCity_PokemonFanClub_EventScript_SootheBellWoman:: @ 820A17E +SlateportCity_PokemonFanClub_EventScript_SootheBellWoman:: lock faceplayer goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell @@ -209,7 +209,7 @@ SlateportCity_PokemonFanClub_EventScript_SootheBellWoman:: @ 820A17E release end -SlateportCity_PokemonFanClub_EventScript_GiveSootheBell:: @ 820A1A3 +SlateportCity_PokemonFanClub_EventScript_GiveSootheBell:: playse SE_PIN applymovement VAR_LAST_TALKED, Common_Movement_ExclamationMark waitmovement 0 @@ -223,20 +223,20 @@ SlateportCity_PokemonFanClub_EventScript_GiveSootheBell:: @ 820A1A3 release end -SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell:: @ 820A1DE +SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell:: msgbox SlateportCity_PokemonFanClub_Text_TreatPokemonWithLove, MSGBOX_DEFAULT release end -SlateportCity_PokemonFanClub_EventScript_Man:: @ 820A1E8 +SlateportCity_PokemonFanClub_EventScript_Man:: msgbox SlateportCity_PokemonFanClub_Text_PokemonDontLikeFainting, MSGBOX_NPC end -SlateportCity_PokemonFanClub_EventScript_Twin:: @ 820A1F1 +SlateportCity_PokemonFanClub_EventScript_Twin:: msgbox SlateportCity_PokemonFanClub_Text_MonEnjoyedProtein, MSGBOX_NPC end -SlateportCity_PokemonFanClub_EventScript_Skitty:: @ 820A1FA +SlateportCity_PokemonFanClub_EventScript_Skitty:: lock faceplayer waitse @@ -246,7 +246,7 @@ SlateportCity_PokemonFanClub_EventScript_Skitty:: @ 820A1FA release end -SlateportCity_PokemonFanClub_EventScript_Zigzagoon:: @ 820A20D +SlateportCity_PokemonFanClub_EventScript_Zigzagoon:: lock faceplayer waitse @@ -256,7 +256,7 @@ SlateportCity_PokemonFanClub_EventScript_Zigzagoon:: @ 820A20D release end -SlateportCity_PokemonFanClub_EventScript_Azumarill:: @ 820A220 +SlateportCity_PokemonFanClub_EventScript_Azumarill:: lock faceplayer waitse @@ -266,7 +266,7 @@ SlateportCity_PokemonFanClub_EventScript_Azumarill:: @ 820A220 release end -SlateportCity_PokemonFanClub_Text_MeetChairman: @ 820A233 +SlateportCity_PokemonFanClub_Text_MeetChairman: .string "Er-hem! I am the CHAIRMAN of the\n" .string "POKéMON FAN CLUB!\p" .string "Being the CHAIRMAN, I am naturally\n" @@ -283,12 +283,12 @@ SlateportCity_PokemonFanClub_Text_MeetChairman: @ 820A233 .string "off our POKéMON, and have others\l" .string "show us theirs.$" -SlateportCity_PokemonFanClub_Text_LikeToSeeEnteredContestPokemon: @ 820A3EE +SlateportCity_PokemonFanClub_Text_LikeToSeeEnteredContestPokemon: .string "The POKéMON of a TRAINER who has\n" .string "entered a POKéMON CONTEST…\l" .string "That, I would like to see.$" -SlateportCity_PokemonFanClub_Text_AllowMeToExamineYourPokemon: @ 820A445 +SlateportCity_PokemonFanClub_Text_AllowMeToExamineYourPokemon: .string "Er-hem! I see you've participated in\n" .string "a POKéMON CONTEST!\p" .string "Please! Allow me to examine how you\n" @@ -306,15 +306,15 @@ SlateportCity_PokemonFanClub_Text_AllowMeToExamineYourPokemon: @ 820A445 .string "Please! Allow me to examine how much\n" .string "your POKéMON has grown!$" -SlateportCity_PokemonFanClub_Text_HowIsYourPokemonGrowing: @ 820A62A +SlateportCity_PokemonFanClub_Text_HowIsYourPokemonGrowing: .string "How is your POKéMON growing?\n" .string "Allow me to examine it.$" -SlateportCity_PokemonFanClub_Text_HmHmISee: @ 820A65F +SlateportCity_PokemonFanClub_Text_HmHmISee: .string "Hm, hm…\n" .string "I see…$" -SlateportCity_PokemonFanClub_Text_GiveMonMorePokeblocks: @ 820A66E +SlateportCity_PokemonFanClub_Text_GiveMonMorePokeblocks: .string "Hmmm… It's not bad, but it's not\n" .string "good, either…\p" .string "You, the TRAINER, must put more\n" @@ -322,53 +322,53 @@ SlateportCity_PokemonFanClub_Text_GiveMonMorePokeblocks: @ 820A66E .string "For instance, may I suggest that\n" .string "you give it more {POKEBLOCK}S?$" -SlateportCity_PokemonFanClub_Text_NoSpaceForReward: @ 820A719 +SlateportCity_PokemonFanClub_Text_NoSpaceForReward: .string "Oh, my…\p" .string "Your POKéMON is growing quite well,\n" .string "so you deserve a reward.\p" .string "Unfortunately, you have no space for\n" .string "this in your BAG.$" -SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis: @ 820A795 +SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis: .string "Your {STR_VAR_1}, it is growing in\n" .string "a most impressive manner!\l" .string "It is one fine specimen!\p" .string "But! If you were to give it this,\n" .string "it would grow even better! Indeed!$" -SlateportCity_PokemonFanClub_Text_ExplainRedScarf: @ 820A827 +SlateportCity_PokemonFanClub_Text_ExplainRedScarf: .string "Let a POKéMON hold that RED SCARF.\p" .string "Everyone will recognize the coolness\n" .string "of that POKéMON!$" -SlateportCity_PokemonFanClub_Text_ExplainBlueScarf: @ 820A880 +SlateportCity_PokemonFanClub_Text_ExplainBlueScarf: .string "Let a POKéMON hold that BLUE SCARF.\p" .string "Its beauty will be accentuated much\n" .string "more than now!$" -SlateportCity_PokemonFanClub_Text_ExplainPinkScarf: @ 820A8D7 +SlateportCity_PokemonFanClub_Text_ExplainPinkScarf: .string "Let a POKéMON hold that PINK SCARF.\p" .string "It will draw out the cuteness of\n" .string "the POKéMON some more!$" -SlateportCity_PokemonFanClub_Text_ExplainGreenScarf: @ 820A933 +SlateportCity_PokemonFanClub_Text_ExplainGreenScarf: .string "Let a POKéMON hold that GREEN SCARF.\p" .string "That will enhance the\n" .string "smartness of POKéMON!$" -SlateportCity_PokemonFanClub_Text_ExplainYellowScarf: @ 820A984 +SlateportCity_PokemonFanClub_Text_ExplainYellowScarf: .string "Let a POKéMON hold that YELLOW SCARF.\p" .string "It will bolster your POKéMON's\n" .string "toughness so much more!$" -SlateportCity_PokemonFanClub_Text_NothingElseToGiveYou: @ 820A9E1 +SlateportCity_PokemonFanClub_Text_NothingElseToGiveYou: .string "I'm sorry, but I've nothing else to\n" .string "give you! None at all!\p" .string "After all, you're blessed with the gift\n" .string "of raising POKéMON without resorting\l" .string "to any items!$" -SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou: @ 820AA77 +SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou: .string "I love seeing POKéMON that love\n" .string "their TRAINERS.\p" .string "POKéMON are very sensitive to\n" @@ -378,18 +378,18 @@ SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou: @ 820AA77 .string "When your POKéMON grow to love you,\n" .string "please come show me.$" -SlateportCity_PokemonFanClub_Text_PokemonAdoresYou: @ 820AB63 +SlateportCity_PokemonFanClub_Text_PokemonAdoresYou: .string "Your POKéMON really adores you.\p" .string "For you, a most compassionate\n" .string "TRAINER, a gift from the FAN CLUB!$" -SlateportCity_PokemonFanClub_Text_TreatPokemonWithLove: @ 820ABC4 +SlateportCity_PokemonFanClub_Text_TreatPokemonWithLove: .string "POKéMON are very sensitive to\n" .string "the feelings of their TRAINERS.\p" .string "If you treat your POKéMON with love\n" .string "and care, they'll love you back.$" -SlateportCity_PokemonFanClub_Text_PokemonDontLikeFainting: @ 820AC47 +SlateportCity_PokemonFanClub_Text_PokemonDontLikeFainting: .string "If you keep letting a POKéMON faint\n" .string "in battle, it'll come to resent it.\p" .string "Soon, it will become less trusting\n" @@ -397,18 +397,18 @@ SlateportCity_PokemonFanClub_Text_PokemonDontLikeFainting: @ 820AC47 .string "In other words, it certainly won't\n" .string "like you very much.$" -SlateportCity_PokemonFanClub_Text_MonEnjoyedProtein: @ 820ACF9 +SlateportCity_PokemonFanClub_Text_MonEnjoyedProtein: .string "Do POKéMON enjoy having items used\n" .string "on them?\p" .string "Mine acted really happy when I gave\n" .string "it some PROTEIN.$" -SlateportCity_PokemonFanClub_Text_Skitty: @ 820AD5A +SlateportCity_PokemonFanClub_Text_Skitty: .string "SKITTY: Fffnyaaaah…$" -SlateportCity_PokemonFanClub_Text_Zigzagoon: @ 820AD6E +SlateportCity_PokemonFanClub_Text_Zigzagoon: .string "ZIGZAGOON: Kyuuu…$" -SlateportCity_PokemonFanClub_Text_Azumarill: @ 820AD80 +SlateportCity_PokemonFanClub_Text_Azumarill: .string "AZUMARILL: Marimari?$" diff --git a/data/maps/SlateportCity_SternsShipyard_1F/scripts.inc b/data/maps/SlateportCity_SternsShipyard_1F/scripts.inc index 8c65f9592b..8b4a4de54a 100644 --- a/data/maps/SlateportCity_SternsShipyard_1F/scripts.inc +++ b/data/maps/SlateportCity_SternsShipyard_1F/scripts.inc @@ -1,9 +1,9 @@ .set LOCALID_DOCK, 1 -SlateportCity_SternsShipyard_1F_MapScripts:: @ 8207F3F +SlateportCity_SternsShipyard_1F_MapScripts:: .byte 0 -SlateportCity_SternsShipyard_1F_EventScript_Dock:: @ 8207F40 +SlateportCity_SternsShipyard_1F_EventScript_Dock:: lockall goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_SternsShipyard_1F_EventScript_FerryReady goto_if_set FLAG_BADGE07_GET, SlateportCity_SternsShipyard_1F_EventScript_BrineyJoined @@ -21,21 +21,21 @@ SlateportCity_SternsShipyard_1F_EventScript_Dock:: @ 8207F40 releaseall end -SlateportCity_SternsShipyard_1F_EventScript_FerryReady:: @ 8207F92 +SlateportCity_SternsShipyard_1F_EventScript_FerryReady:: applymovement LOCALID_DOCK, Common_Movement_FacePlayer waitmovement 0 msgbox SlateportCity_SternsShipyard_1F_Text_FerryIsReady, MSGBOX_DEFAULT releaseall end -SlateportCity_SternsShipyard_1F_EventScript_BrineyJoined:: @ 8207FA6 +SlateportCity_SternsShipyard_1F_EventScript_BrineyJoined:: applymovement LOCALID_DOCK, Common_Movement_FacePlayer waitmovement 0 msgbox SlateportCity_SternsShipyard_1F_Text_BrineyJoinedUs, MSGBOX_DEFAULT releaseall end -SlateportCity_SternsShipyard_1F_EventScript_GoFindStern:: @ 8207FBA +SlateportCity_SternsShipyard_1F_EventScript_GoFindStern:: applymovement LOCALID_DOCK, Common_Movement_FacePlayer waitmovement 0 msgbox SlateportCity_SternsShipyard_1F_Text_CouldYouFindStern, MSGBOX_DEFAULT @@ -45,26 +45,26 @@ SlateportCity_SternsShipyard_1F_EventScript_GoFindStern:: @ 8207FBA releaseall end -SlateportCity_SternsShipyard_1F_EventScript_NeedVeteran:: @ 8207FD9 +SlateportCity_SternsShipyard_1F_EventScript_NeedVeteran:: applymovement LOCALID_DOCK, Common_Movement_FacePlayer waitmovement 0 msgbox SlateportCity_SternsShipyard_1F_Text_CouldUseAdviceFromVeteran, MSGBOX_DEFAULT releaseall end -SlateportCity_SternsShipyard_1F_EventScript_Scientist1:: @ 8207FED +SlateportCity_SternsShipyard_1F_EventScript_Scientist1:: msgbox SlateportCity_SternsShipyard_1F_Text_SeaIsLikeLivingThing, MSGBOX_NPC end -SlateportCity_SternsShipyard_1F_EventScript_Scientist2:: @ 8207FF6 +SlateportCity_SternsShipyard_1F_EventScript_Scientist2:: msgbox SlateportCity_SternsShipyard_1F_Text_GetSeasickEasily, MSGBOX_NPC end -SlateportCity_SternsShipyard_1F_EventScript_Briney:: @ 8207FFF +SlateportCity_SternsShipyard_1F_EventScript_Briney:: msgbox SlateportCity_SternsShipyard_1F_Text_DecidedToHelpDock, MSGBOX_NPC end -SlateportCity_SternsShipyard_1F_Text_CantMakeHeadsOrTails: @ 8208008 +SlateportCity_SternsShipyard_1F_Text_CantMakeHeadsOrTails: .string "Umm… If this goes here, and that\n" .string "goes over there…\p" .string "Then where does this thing go?\n" @@ -72,7 +72,7 @@ SlateportCity_SternsShipyard_1F_Text_CantMakeHeadsOrTails: @ 8208008 .string "Aaargh! I can't make heads or tails\n" .string "of this!$" -SlateportCity_SternsShipyard_1F_Text_MeetDockDeliverToStern: @ 82080A5 +SlateportCity_SternsShipyard_1F_Text_MeetDockDeliverToStern: .string "Hm?\n" .string "Hi, I'm DOCK.\p" .string "CAPT. STERN commissioned me to\n" @@ -86,26 +86,26 @@ SlateportCity_SternsShipyard_1F_Text_MeetDockDeliverToStern: @ 82080A5 .string "Could I get you to go find CAPT.\n" .string "STERN and deliver that to him?$" -SlateportCity_SternsShipyard_1F_Text_CouldYouFindStern: @ 82081A5 +SlateportCity_SternsShipyard_1F_Text_CouldYouFindStern: .string "DOCK: Where could CAPT. STERN have\n" .string "gone off to?\p" .string "Could you go find CAPT. STERN and\n" .string "deliver that parcel to him?$" -SlateportCity_SternsShipyard_1F_Text_CouldUseAdviceFromVeteran: @ 8208213 +SlateportCity_SternsShipyard_1F_Text_CouldUseAdviceFromVeteran: .string "DOCK: Shipbuilding is an art.\p" .string "A lot of things can't be figured out\n" .string "just by calculating.\p" .string "I really could use advice from a veteran\n" .string "who knows the seas…$" -SlateportCity_SternsShipyard_1F_Text_BrineyJoinedUs: @ 82082A8 +SlateportCity_SternsShipyard_1F_Text_BrineyJoinedUs: .string "DOCK: Hi! MR. BRINEY's joined us to\n" .string "lend us his help.\p" .string "Thanks to the veteran sailor, the\n" .string "ferry is steadily coming together.$" -SlateportCity_SternsShipyard_1F_Text_FerryIsReady: @ 8208323 +SlateportCity_SternsShipyard_1F_Text_FerryIsReady: .string "DOCK: The ferry is finally ready!\p" .string "The new S.S. TIDAL is truly a marvel\n" .string "of technology!\p" @@ -114,7 +114,7 @@ SlateportCity_SternsShipyard_1F_Text_FerryIsReady: @ 8208323 .string "You know, there's never an end to\n" .string "technology's march.$" -SlateportCity_SternsShipyard_1F_Text_DecidedToHelpDock: @ 82083EE +SlateportCity_SternsShipyard_1F_Text_DecidedToHelpDock: .string "MR. BRINEY: Ah, {PLAYER}{KUN}!\n" .string "It's been too long!\p" .string "Aye, since I met you, this old sea dog's\n" @@ -129,7 +129,7 @@ SlateportCity_SternsShipyard_1F_Text_DecidedToHelpDock: @ 82083EE .string "my experience, I'm sure that we can\l" .string "build one great ship, aye!$" -SlateportCity_SternsShipyard_1F_Text_SeaIsLikeLivingThing: @ 8208558 +SlateportCity_SternsShipyard_1F_Text_SeaIsLikeLivingThing: .string "The seasons, the weather, where\n" .string "the moon sits in the sky…\p" .string "These and other conditions make\n" @@ -137,7 +137,7 @@ SlateportCity_SternsShipyard_1F_Text_SeaIsLikeLivingThing: @ 8208558 .string "That's right!\n" .string "The sea is like a living thing!$" -SlateportCity_SternsShipyard_1F_Text_GetSeasickEasily: @ 82085FF +SlateportCity_SternsShipyard_1F_Text_GetSeasickEasily: .string "I get seasick real easily.\n" .string "So I get to help out here instead.$" diff --git a/data/maps/SlateportCity_SternsShipyard_2F/scripts.inc b/data/maps/SlateportCity_SternsShipyard_2F/scripts.inc index fff96bc654..59e8a531a6 100644 --- a/data/maps/SlateportCity_SternsShipyard_2F/scripts.inc +++ b/data/maps/SlateportCity_SternsShipyard_2F/scripts.inc @@ -1,20 +1,20 @@ -SlateportCity_SternsShipyard_2F_MapScripts:: @ 820863D +SlateportCity_SternsShipyard_2F_MapScripts:: .byte 0 -SlateportCity_SternsShipyard_2F_EventScript_Scientist1:: @ 820863E +SlateportCity_SternsShipyard_2F_EventScript_Scientist1:: msgbox SlateportCity_SternsShipyard_2F_Text_ShipDesignMoreLikeBuilding, MSGBOX_NPC end -SlateportCity_SternsShipyard_2F_EventScript_Scientist2:: @ 8208647 +SlateportCity_SternsShipyard_2F_EventScript_Scientist2:: msgbox SlateportCity_SternsShipyard_2F_Text_FloatsBecauseBuoyancy, MSGBOX_NPC end -SlateportCity_SternsShipyard_2F_Text_ShipDesignMoreLikeBuilding: @ 8208650 +SlateportCity_SternsShipyard_2F_Text_ShipDesignMoreLikeBuilding: .string "Designing a large ship is more like\n" .string "making a big building than putting\l" .string "together a transportation vehicle.$" -SlateportCity_SternsShipyard_2F_Text_FloatsBecauseBuoyancy: @ 82086BA +SlateportCity_SternsShipyard_2F_Text_FloatsBecauseBuoyancy: .string "Don't you think it's strange that\n" .string "a ship made of heavy iron floats?\p" .string "It floats because of a principle\n" diff --git a/data/maps/SootopolisCity/map.json b/data/maps/SootopolisCity/map.json index d4c71db612..f5c265139b 100644 --- a/data/maps/SootopolisCity/map.json +++ b/data/maps/SootopolisCity/map.json @@ -119,7 +119,7 @@ "flag": "0" }, { - "graphics_id": "OBJ_EVENT_GFX_GROUDON_3", + "graphics_id": "OBJ_EVENT_GFX_GROUDON_SIDE", "x": 28, "y": 44, "elevation": 0, @@ -132,7 +132,7 @@ "flag": "FLAG_HIDE_SOOTOPOLIS_CITY_GROUDON" }, { - "graphics_id": "OBJ_EVENT_GFX_KYOGRE_3", + "graphics_id": "OBJ_EVENT_GFX_KYOGRE_SIDE", "x": 34, "y": 44, "elevation": 1, @@ -145,7 +145,7 @@ "flag": "FLAG_HIDE_SOOTOPOLIS_CITY_KYOGRE" }, { - "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_2", + "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA", "x": 31, "y": 41, "elevation": 1, diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index e6ceb64183..efeae33d1e 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -16,7 +16,7 @@ .set LOCALID_ARCHIE, 17 .set LOCALID_WALLACE, 18 -SootopolisCity_MapScripts:: @ 81E565C +SootopolisCity_MapScripts:: map_script MAP_SCRIPT_ON_LOAD, SootopolisCity_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, SootopolisCity_OnTransition map_script MAP_SCRIPT_ON_RESUME, SootopolisCity_OnResume @@ -24,16 +24,16 @@ SootopolisCity_MapScripts:: @ 81E565C map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SootopolisCity_OnWarp .byte 0 -SootopolisCity_OnLoad: @ 81E5676 +SootopolisCity_OnLoad: call_if_unset FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_LockGymDoor goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_EventScript_LegendariesNotArrived call_if_unset FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_LockHouseDoors end -SootopolisCity_EventScript_LegendariesNotArrived:: @ 81E5692 +SootopolisCity_EventScript_LegendariesNotArrived:: end -SootopolisCity_EventScript_LockHouseDoors:: @ 81E5693 +SootopolisCity_EventScript_LockHouseDoors:: setmetatile 9, 6, METATILE_Sootopolis_Door_Closed, 1 setmetatile 9, 17, METATILE_Sootopolis_Door_Closed, 1 setmetatile 9, 26, METATILE_Sootopolis_Door_Closed, 1 @@ -45,11 +45,11 @@ SootopolisCity_EventScript_LockHouseDoors:: @ 81E5693 setmetatile 51, 36, METATILE_Sootopolis_Door_Closed, 1 return -SootopolisCity_EventScript_LockGymDoor:: @ 81E56E5 +SootopolisCity_EventScript_LockGymDoor:: setmetatile 31, 32, METATILE_Sootopolis_GymDoor_Closed, 1 return -SootopolisCity_OnTransition: @ 81E56EF +SootopolisCity_OnTransition: setflag FLAG_VISITED_SOOTOPOLIS_CITY compare VAR_SOOTOPOLIS_CITY_STATE, 1 call_if_eq SootopolisCity_EventScript_HideMapNamePopup @@ -79,11 +79,11 @@ SootopolisCity_OnTransition: @ 81E56EF call_if_eq SootopolisCity_EventScript_SetExpertBlockCaveEntrance end -SootopolisCity_EventScript_HideMapNamePopup:: @ 81E5781 +SootopolisCity_EventScript_HideMapNamePopup:: setflag FLAG_HIDE_MAP_NAME_POPUP return -SootopolisCity_EventScript_SetBattleSpectators:: @ 81E5785 +SootopolisCity_EventScript_SetBattleSpectators:: setobjectxyperm LOCALID_KIRI, 13, 48 setobjectxyperm LOCALID_BOY_1, 46, 32 setobjectxyperm LOCALID_NINJA_BOY, 48, 41 @@ -94,7 +94,7 @@ SootopolisCity_EventScript_SetBattleSpectators:: @ 81E5785 setobjectmovementtype LOCALID_WOMAN_1, MOVEMENT_TYPE_FACE_LEFT return -SootopolisCity_EventScript_SetLayout:: @ 81E57B2 +SootopolisCity_EventScript_SetLayout:: compare VAR_SOOTOPOLIS_CITY_STATE, 0 goto_if_eq SootopolisCity_EventScript_SetNormalLayout compare VAR_SOOTOPOLIS_CITY_STATE, 6 @@ -111,14 +111,14 @@ SootopolisCity_EventScript_SetLayout:: @ 81E57B2 goto_if_le SootopolisCity_EventScript_SetLegendariesLayout return -SootopolisCity_EventScript_SetNormalLayout:: @ 81E5800 +SootopolisCity_EventScript_SetNormalLayout:: return -SootopolisCity_EventScript_SetLegendariesLayout:: @ 81E5801 +SootopolisCity_EventScript_SetLegendariesLayout:: setmaplayoutindex LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE return -SootopolisCity_EventScript_SetWeather:: @ 81E5805 +SootopolisCity_EventScript_SetWeather:: compare VAR_SOOTOPOLIS_CITY_STATE, 0 goto_if_eq SootopolisCity_EventScript_SetNormalWeather compare VAR_SOOTOPOLIS_CITY_STATE, 6 @@ -131,29 +131,29 @@ SootopolisCity_EventScript_SetWeather:: @ 81E5805 goto_if_le Common_EventScript_SetAbnormalWeather return -SootopolisCity_EventScript_SetNormalWeather:: @ 81E583D +SootopolisCity_EventScript_SetNormalWeather:: return -SootopolisCity_EventScript_SetDownpour:: @ 81E583E +SootopolisCity_EventScript_SetDownpour:: setweather WEATHER_DOWNPOUR return -SootopolisCity_EventScript_CheckSetEnterCaveOfOriginObjPos:: @ 81E5842 +SootopolisCity_EventScript_CheckSetEnterCaveOfOriginObjPos:: goto_if_set FLAG_STEVEN_GUIDES_TO_CAVE_OF_ORIGIN, SootopolisCity_EventScript_SetEnterCaveOfOriginObjPos return -SootopolisCity_EventScript_SetEnterCaveOfOriginObjPos:: @ 81E584C +SootopolisCity_EventScript_SetEnterCaveOfOriginObjPos:: setobjectxyperm LOCALID_EXPERT, 30, 18 setobjectxyperm LOCALID_STEVEN, 32, 18 return -SootopolisCity_EventScript_SetExitCaveOfOriginObjPos:: @ 81E585B +SootopolisCity_EventScript_SetExitCaveOfOriginObjPos:: setobjectxyperm LOCALID_EXPERT, 30, 18 setobjectxyperm LOCALID_WALLACE, 31, 18 setobjectxyperm LOCALID_STEVEN, 32, 18 end -SootopolisCity_EventScript_SetOutsideGymObjPos:: @ 81E5871 +SootopolisCity_EventScript_SetOutsideGymObjPos:: setobjectxyperm LOCALID_EXPERT, 31, 18 setobjectxyperm LOCALID_STEVEN, 29, 33 setobjectxyperm LOCALID_MAXIE, 33, 35 @@ -166,56 +166,56 @@ SootopolisCity_EventScript_SetOutsideGymObjPos:: @ 81E5871 call_if_eq SootopolisCity_EventScript_SetWallaceLeft return -SootopolisCity_EventScript_SetWallaceMiddle:: @ 81E58AF +SootopolisCity_EventScript_SetWallaceMiddle:: setobjectxyperm LOCALID_WALLACE, 31, 33 setobjectmovementtype LOCALID_WALLACE, MOVEMENT_TYPE_FACE_DOWN return -SootopolisCity_EventScript_SetWallaceRight:: @ 81E58BB +SootopolisCity_EventScript_SetWallaceRight:: setobjectxyperm LOCALID_WALLACE, 32, 33 setobjectmovementtype LOCALID_WALLACE, MOVEMENT_TYPE_FACE_DOWN return -SootopolisCity_EventScript_SetWallaceLeft:: @ 81E58C7 +SootopolisCity_EventScript_SetWallaceLeft:: setobjectxyperm LOCALID_WALLACE, 30, 33 setobjectmovementtype LOCALID_WALLACE, MOVEMENT_TYPE_FACE_DOWN return -SootopolisCity_EventScript_SetExpertBlockCaveEntrance:: @ 81E58D3 +SootopolisCity_EventScript_SetExpertBlockCaveEntrance:: setobjectxyperm LOCALID_EXPERT, 31, 18 return -SootopolisCity_OnWarp: @ 81E58DB +SootopolisCity_OnWarp: map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_PlayerFaceLegendaries .2byte 0 -SootopolisCity_EventScript_PlayerFaceLegendaries:: @ 81E58E5 +SootopolisCity_EventScript_PlayerFaceLegendaries:: compare VAR_SKY_PILLAR_STATE, 1 call_if_eq SootopolisCity_EventScript_PlayerFaceLegendaries1 compare VAR_SKY_PILLAR_STATE, 2 call_if_eq SootopolisCity_EventScript_PlayerFaceLegendaries2 end -SootopolisCity_EventScript_PlayerFaceLegendaries1:: @ 81E58FC +SootopolisCity_EventScript_PlayerFaceLegendaries1:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH return -SootopolisCity_EventScript_PlayerFaceLegendaries2:: @ 81E5901 +SootopolisCity_EventScript_PlayerFaceLegendaries2:: turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH setvar VAR_SKY_PILLAR_STATE, 3 return -SootopolisCity_OnResume: @ 81E590B +SootopolisCity_OnResume: setdivewarp MAP_UNDERWATER_SOOTOPOLIS_CITY, 255, 9, 6 end -SootopolisCity_OnFrame: @ 81E5914 +SootopolisCity_OnFrame: map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_StartLegendariesScene map_script_2 VAR_SKY_PILLAR_STATE, 1, SootopolisCity_EventScript_StartRayquazaScene .2byte 0 @ If not at PokeCenter, assumed to have arrived via Dive -SootopolisCity_EventScript_StartLegendariesScene:: @ 81E5926 +SootopolisCity_EventScript_StartLegendariesScene:: lockall special StorePlayerCoordsInVars compare VAR_0x8004, 43 @@ -225,7 +225,7 @@ SootopolisCity_EventScript_StartLegendariesScene:: @ 81E5926 goto SootopolisCity_EventScript_LegendariesSceneFromPokeCenter end -SootopolisCity_EventScript_LegendariesSceneFromPokeCenter:: @ 81E5946 +SootopolisCity_EventScript_LegendariesSceneFromPokeCenter:: delay 60 special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, SootopolisCity_Movement_PanToActionFromPokeCenter @@ -258,8 +258,8 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter:: @ 81E5946 waitmovement 0 waitse playmoncry SPECIES_GROUDON, 2 - applymovement LOCALID_KYOGRE, SootopolisCity_Movement_GroudonAttack - applymovement LOCALID_GROUDON, SootopolisCity_Movement_KyogreDefend + applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreDefend + applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonAttack waitmovement 0 setvar VAR_0x8004, 1 @ vertical pan setvar VAR_0x8005, 1 @ horizontal pan @@ -295,7 +295,7 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter:: @ 81E5946 releaseall end -SootopolisCity_Movement_PanToActionFromPokeCenter: @ 81E5A68 +SootopolisCity_Movement_PanToActionFromPokeCenter: walk_slow_diag_southwest walk_slow_diag_southwest walk_slow_diag_southwest @@ -310,7 +310,7 @@ SootopolisCity_Movement_PanToActionFromPokeCenter: @ 81E5A68 walk_slow_diag_southwest step_end -SootopolisCity_Movement_PanBackToPokeCenter: @ 81E5A75 +SootopolisCity_Movement_PanBackToPokeCenter: walk_slow_diag_northeast walk_slow_diag_northeast walk_slow_diag_northeast @@ -325,7 +325,7 @@ SootopolisCity_Movement_PanBackToPokeCenter: @ 81E5A75 walk_slow_diag_northeast step_end -SootopolisCity_EventScript_LegendariesSceneFromDive:: @ 81E5A82 +SootopolisCity_EventScript_LegendariesSceneFromDive:: delay 60 special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, SootopolisCity_Movement_PanToActionFromDive @@ -358,8 +358,8 @@ SootopolisCity_EventScript_LegendariesSceneFromDive:: @ 81E5A82 waitmovement 0 waitse playmoncry SPECIES_GROUDON, 2 - applymovement LOCALID_KYOGRE, SootopolisCity_Movement_GroudonAttack - applymovement LOCALID_GROUDON, SootopolisCity_Movement_KyogreDefend + applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreDefend + applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonAttack waitmovement 0 setvar VAR_0x8004, 1 @ vertical pan setvar VAR_0x8005, 1 @ horizontal pan @@ -395,7 +395,7 @@ SootopolisCity_EventScript_LegendariesSceneFromDive:: @ 81E5A82 releaseall end -SootopolisCity_Movement_PanToActionFromDive: @ 81E5BA4 +SootopolisCity_Movement_PanToActionFromDive: walk_slow_diag_northeast walk_slow_diag_northeast walk_up @@ -407,7 +407,7 @@ SootopolisCity_Movement_PanToActionFromDive: @ 81E5BA4 walk_up step_end -SootopolisCity_Movement_PanBackToDive: @ 81E5BAE +SootopolisCity_Movement_PanBackToDive: walk_down walk_down walk_down @@ -419,7 +419,7 @@ SootopolisCity_Movement_PanBackToDive: @ 81E5BAE walk_slow_diag_southwest step_end -SootopolisCity_Movement_KyogreAttack: @ 81E5BB8 +SootopolisCity_Movement_KyogreAttack: walk_in_place_slow_left walk_in_place_slow_left walk_in_place_slow_left @@ -431,7 +431,7 @@ SootopolisCity_Movement_KyogreAttack: @ 81E5BB8 clear_affine_anim step_end -SootopolisCity_Movement_GroudonAttack: @ 81E5BC2 +SootopolisCity_Movement_KyogreDefend: delay_16 delay_16 delay_16 @@ -446,7 +446,7 @@ SootopolisCity_Movement_GroudonAttack: @ 81E5BC2 clear_affine_anim step_end -SootopolisCity_Movement_KyogreMoveBack: @ 81E5BCF +SootopolisCity_Movement_KyogreMoveBack: lock_facing_direction walk_right delay_16 @@ -455,7 +455,7 @@ SootopolisCity_Movement_KyogreMoveBack: @ 81E5BCF unlock_facing_direction step_end -SootopolisCity_Movement_KyogreIdle: @ 81E5BD6 +SootopolisCity_Movement_KyogreIdle: walk_in_place_slow_left walk_in_place_slow_left walk_in_place_slow_left @@ -464,7 +464,7 @@ SootopolisCity_Movement_KyogreIdle: @ 81E5BD6 walk_in_place_slow_left step_end -SootopolisCity_Movement_KyogreDefend: @ 81E5BDD +SootopolisCity_Movement_GroudonAttack: walk_in_place_slow_right walk_in_place_slow_right walk_in_place_slow_right @@ -474,7 +474,7 @@ SootopolisCity_Movement_KyogreDefend: @ 81E5BDD walk_fast_right step_end -SootopolisCity_Movement_GroudonDefend: @ 81E5BE5 +SootopolisCity_Movement_GroudonDefend: delay_16 delay_16 delay_16 @@ -487,7 +487,7 @@ SootopolisCity_Movement_GroudonDefend: @ 81E5BE5 walk_fast_right step_end -SootopolisCity_Movement_GroudonMoveBack: @ 81E5BF0 +SootopolisCity_Movement_GroudonMoveBack: lock_facing_direction walk_left delay_16 @@ -496,7 +496,7 @@ SootopolisCity_Movement_GroudonMoveBack: @ 81E5BF0 unlock_facing_direction step_end -SootopolisCity_Movement_GroudonIdle: @ 81E5BF7 +SootopolisCity_Movement_GroudonIdle: walk_in_place_slow_right walk_in_place_slow_right walk_in_place_slow_right @@ -506,7 +506,7 @@ SootopolisCity_Movement_GroudonIdle: @ 81E5BF7 step_end @ If not at PokeCenter, assumed to have arrived via Dive -SootopolisCity_EventScript_StartRayquazaScene:: @ 81E5BFE +SootopolisCity_EventScript_StartRayquazaScene:: lockall special StorePlayerCoordsInVars compare VAR_0x8004, 43 @@ -516,7 +516,7 @@ SootopolisCity_EventScript_StartRayquazaScene:: @ 81E5BFE goto SootopolisCity_EventScript_RayquazaSceneFromPokeCenter end -SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E +SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: delay 60 special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, SootopolisCity_Movement_PanToActionFromPokeCenter @@ -569,7 +569,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E waitstate end -SootopolisCity_EventScript_RayquazaSceneFromDive:: @ 81E5CCE +SootopolisCity_EventScript_RayquazaSceneFromDive:: delay 60 special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, SootopolisCity_Movement_PanToActionFromDive @@ -622,7 +622,7 @@ SootopolisCity_EventScript_RayquazaSceneFromDive:: @ 81E5CCE waitstate end -SootopolisCity_EventScript_SetRoughWater:: @ 81E5D82 +SootopolisCity_EventScript_SetRoughWater:: setmetatile 27, 43, METATILE_Sootopolis_RoughWater, 0 setmetatile 28, 43, METATILE_Sootopolis_RoughWater, 0 setmetatile 29, 43, METATILE_Sootopolis_RoughWater, 0 @@ -649,7 +649,7 @@ SootopolisCity_EventScript_SetRoughWater:: @ 81E5D82 setmetatile 35, 45, METATILE_Sootopolis_RoughWater, 0 return -SootopolisCity_Movement_RayquazaFlyOff: @ 81E5E5B +SootopolisCity_Movement_RayquazaFlyOff: walk_fast_up walk_fastest_up walk_fastest_up @@ -659,14 +659,14 @@ SootopolisCity_Movement_RayquazaFlyOff: @ 81E5E5B walk_fastest_up step_end -SootopolisCity_Movement_PanUp: @ 81E5E63 +SootopolisCity_Movement_PanUp: walk_up walk_up walk_up walk_up step_end -SootopolisCity_Movement_PlayerApproachLegendaries: @ 81E5E68 +SootopolisCity_Movement_PlayerApproachLegendaries: walk_up walk_up walk_up @@ -674,7 +674,7 @@ SootopolisCity_Movement_PlayerApproachLegendaries: @ 81E5E68 step_end @ Unused -SootopolisCity_Movement_PlayerApproachLegendariesDown: @ 81E5E6D +SootopolisCity_Movement_PlayerApproachLegendariesDown: walk_down walk_down walk_down @@ -682,7 +682,7 @@ SootopolisCity_Movement_PlayerApproachLegendariesDown: @ 81E5E6D step_end @ Unused -SootopolisCity_Movement_UnusedPanUp: @ 81E5E72 +SootopolisCity_Movement_UnusedPanUp: walk_slow_diag_northeast walk_slow_diag_northeast walk_slow_diag_northeast @@ -698,7 +698,7 @@ SootopolisCity_Movement_UnusedPanUp: @ 81E5E72 step_end @ Unused -SootopolisCity_Movement_UnusedPanBack: @ 81E5E7F +SootopolisCity_Movement_UnusedPanBack: walk_down walk_down walk_down @@ -714,7 +714,7 @@ SootopolisCity_Movement_UnusedPanBack: @ 81E5E7F walk_slow_diag_southwest step_end -SootopolisCity_EventScript_CaveOfOriginExpert:: @ 81E5E8D +SootopolisCity_EventScript_CaveOfOriginExpert:: lock faceplayer compare VAR_SOOTOPOLIS_CITY_STATE, 6 @@ -727,22 +727,22 @@ SootopolisCity_EventScript_CaveOfOriginExpert:: @ 81E5E8D release end -SootopolisCity_EventScript_ExpertLeadToCave:: @ 81E5EBA +SootopolisCity_EventScript_ExpertLeadToCave:: msgbox SootopolisCity_Text_LeadSuperiorTrainerToCave, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_ExpertPostLegendaries:: @ 81E5EC4 +SootopolisCity_EventScript_ExpertPostLegendaries:: msgbox SootopolisCity_Text_CaveOfOriginSleepsToo, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_ExpertLegendaries:: @ 81E5ECE +SootopolisCity_EventScript_ExpertLegendaries:: msgbox SootopolisCity_Text_AwakenedPokemonClash, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_Kiri:: @ 81E5ED8 +SootopolisCity_EventScript_Kiri:: lock faceplayer compare VAR_SOOTOPOLIS_CITY_STATE, 1 @@ -758,14 +758,14 @@ SootopolisCity_EventScript_Kiri:: @ 81E5ED8 release end -SootopolisCity_EventScript_KiriRayquaza:: @ 81E5F10 +SootopolisCity_EventScript_KiriRayquaza:: msgbox SootopolisCity_Text_PrettyMonCameFromSky, MSGBOX_DEFAULT closemessage release end @ Gives 2 berries daily. First ranges from FIRST_KIRI_BERRY to LAST_KIRI_BERRY, second is always Figy or Iapapa -SootopolisCity_EventScript_KiriGiveBerry:: @ 81E5F1B +SootopolisCity_EventScript_KiriGiveBerry:: dotimebasedevents special GetPlayerBigGuyGirlString goto_if_set FLAG_DAILY_SOOTOPOLIS_RECEIVED_BERRY, SootopolisCity_EventScript_KiriReceivedBerry @@ -785,7 +785,7 @@ SootopolisCity_EventScript_KiriGiveBerry:: @ 81E5F1B goto_if_eq SootopolisCity_EventScript_GiveIapapaBerry end -SootopolisCity_EventScript_GiveFigyBerry:: @ 81E5F79 +SootopolisCity_EventScript_GiveFigyBerry:: giveitem ITEM_FIGY_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -793,7 +793,7 @@ SootopolisCity_EventScript_GiveFigyBerry:: @ 81E5F79 release end -SootopolisCity_EventScript_GiveIapapaBerry:: @ 81E5F9A +SootopolisCity_EventScript_GiveIapapaBerry:: giveitem ITEM_IAPAPA_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -801,7 +801,7 @@ SootopolisCity_EventScript_GiveIapapaBerry:: @ 81E5F9A release end -SootopolisCity_EventScript_KiriReceivedBerry:: @ 81E5FBB +SootopolisCity_EventScript_KiriReceivedBerry:: msgbox SootopolisCity_Text_LikeSeasonBornIn, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq SootopolisCity_EventScript_KiriLikeSeasonBornIn @@ -809,12 +809,12 @@ SootopolisCity_EventScript_KiriReceivedBerry:: @ 81E5FBB release end -SootopolisCity_EventScript_KiriLikeSeasonBornIn:: @ 81E5FD8 +SootopolisCity_EventScript_KiriLikeSeasonBornIn:: msgbox SootopolisCity_Text_ThenILoveAutumn, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_Woman2:: @ 81E5FE2 +SootopolisCity_EventScript_Woman2:: lockall applymovement LOCALID_WOMAN_2, Common_Movement_FacePlayer waitmovement 0 @@ -827,12 +827,12 @@ SootopolisCity_EventScript_Woman2:: @ 81E5FE2 releaseall end -SootopolisCity_EventScript_Woman2Rayquaza:: @ 81E600D +SootopolisCity_EventScript_Woman2Rayquaza:: msgbox SootopolisCity_Text_YouBroughtFlyingMon, MSGBOX_DEFAULT releaseall end -SootopolisCity_EventScript_Man:: @ 81E6017 +SootopolisCity_EventScript_Man:: lock faceplayer compare VAR_SOOTOPOLIS_CITY_STATE, 6 @@ -841,12 +841,12 @@ SootopolisCity_EventScript_Man:: @ 81E6017 release end -SootopolisCity_EventScript_ManPostLegendaries:: @ 81E602E +SootopolisCity_EventScript_ManPostLegendaries:: msgbox SootopolisCity_Text_CityRegainedCalm, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_Woman1:: @ 81E6038 +SootopolisCity_EventScript_Woman1:: lock faceplayer compare VAR_SOOTOPOLIS_CITY_STATE, 6 @@ -859,7 +859,7 @@ SootopolisCity_EventScript_Woman1:: @ 81E6038 release end -SootopolisCity_EventScript_Woman1Legendaries:: @ 81E6065 +SootopolisCity_EventScript_Woman1Legendaries:: msgbox SootopolisCity_Text_GiganticPokemonFight, MSGBOX_DEFAULT closemessage applymovement LOCALID_WOMAN_1, Common_Movement_FaceOriginalDirection @@ -867,17 +867,17 @@ SootopolisCity_EventScript_Woman1Legendaries:: @ 81E6065 release end -SootopolisCity_EventScript_Woman1PostLegendaries:: @ 81E607A +SootopolisCity_EventScript_Woman1PostLegendaries:: msgbox SootopolisCity_Text_NightSkyFavoriteScenery, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_Woman1Rayquaza:: @ 81E6084 +SootopolisCity_EventScript_Woman1Rayquaza:: msgbox SootopolisCity_Text_FearedWorstWhenPokemonFlewDown, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_NinjaBoy:: @ 81E608E +SootopolisCity_EventScript_NinjaBoy:: lockall applymovement LOCALID_NINJA_BOY, Common_Movement_FacePlayer waitmovement 0 @@ -894,17 +894,17 @@ SootopolisCity_EventScript_NinjaBoy:: @ 81E608E release end -SootopolisCity_EventScript_NinjaBoyNormal:: @ 81E60CF +SootopolisCity_EventScript_NinjaBoyNormal:: msgbox SootopolisCity_Text_WonderWhatWorldIsLike, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_NinjaBoyRayquaza:: @ 81E60D9 +SootopolisCity_EventScript_NinjaBoyRayquaza:: msgbox SootopolisCity_Text_ThatWasWicked, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_Boy1:: @ 81E60E3 +SootopolisCity_EventScript_Boy1:: lockall applymovement LOCALID_BOY_1, Common_Movement_FacePlayer waitmovement 0 @@ -922,34 +922,34 @@ SootopolisCity_EventScript_Boy1:: @ 81E60E3 release end -SootopolisCity_EventScript_Boy1Rayquaza:: @ 81E612D +SootopolisCity_EventScript_Boy1Rayquaza:: msgbox SootopolisCity_Text_WhatIsThatGreenPokemon, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_Boy1GameClear:: @ 81E6137 +SootopolisCity_EventScript_Boy1GameClear:: msgbox SootopolisCity_Text_WhereDidLegendariesGo, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_Boy1Normal:: @ 81E6141 +SootopolisCity_EventScript_Boy1Normal:: msgbox SootopolisCity_Text_PhysicallyFitLivingHere, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_GymSign:: @ 81E614B +SootopolisCity_EventScript_GymSign:: msgbox SootopolisCity_Text_GymSign, MSGBOX_SIGN end -SootopolisCity_EventScript_CitySign:: @ 81E6154 +SootopolisCity_EventScript_CitySign:: msgbox SootopolisCity_Text_CitySign, MSGBOX_SIGN end -EventScript_ClosedSootopolisDoor:: @ 81E615D +EventScript_ClosedSootopolisDoor:: msgbox SootopolisCity_Text_DoorIsClosed, MSGBOX_SIGN end -SootopolisCity_EventScript_Steven:: @ 81E6166 +SootopolisCity_EventScript_Steven:: lockall applymovement LOCALID_STEVEN, Common_Movement_FacePlayer waitmovement 0 @@ -965,22 +965,22 @@ SootopolisCity_EventScript_Steven:: @ 81E6166 releaseall end -SootopolisCity_EventScript_StevenHelpWallace:: @ 81E61AE +SootopolisCity_EventScript_StevenHelpWallace:: msgbox SootopolisCity_Text_KnowWhatsNeededToHelpHim, MSGBOX_DEFAULT releaseall end -SootopolisCity_EventScript_StevenMaxieArchieLeft:: @ 81E61B8 +SootopolisCity_EventScript_StevenMaxieArchieLeft:: msgbox SootopolisCity_Text_MaxieArchieLeft, MSGBOX_DEFAULT releaseall end -SootopolisCity_EventScript_StevenHelpedWallace:: @ 81E61C2 +SootopolisCity_EventScript_StevenHelpedWallace:: msgbox SootopolisCity_Text_NeverBeenToSkyPillar, MSGBOX_DEFAULT releaseall end -SootopolisCity_EventScript_StevenLeadPlayerCaveOfOrigin:: @ 81E61CC +SootopolisCity_EventScript_StevenLeadPlayerCaveOfOrigin:: msgbox SootopolisCity_Text_InvolvedWithCrisisComeWithMe, MSGBOX_DEFAULT closemessage compare VAR_FACING, DIR_WEST @@ -1007,19 +1007,19 @@ SootopolisCity_EventScript_StevenLeadPlayerCaveOfOrigin:: @ 81E61CC waitstate end -SootopolisCity_EventScript_StartWalkToCaveOfOriginWest:: @ 81E6243 +SootopolisCity_EventScript_StartWalkToCaveOfOriginWest:: applymovement LOCALID_STEVEN, SootopolisCity_Movement_StevenStartWalkToCaveOfOrigin applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_Movement_PlayerStartWalkToCaveOfOriginWest waitmovement 0 return -SootopolisCity_EventScript_StartWalkToCaveOfOriginNorth:: @ 81E6255 +SootopolisCity_EventScript_StartWalkToCaveOfOriginNorth:: applymovement LOCALID_STEVEN, SootopolisCity_Movement_StevenStartWalkToCaveOfOrigin applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_Movement_PlayerStartWalkToCaveOfOriginNorth waitmovement 0 return -SootopolisCity_Movement_StevenStartWalkToCaveOfOrigin: @ 81E6267 +SootopolisCity_Movement_StevenStartWalkToCaveOfOrigin: walk_up walk_up walk_up @@ -1058,7 +1058,7 @@ SootopolisCity_Movement_StevenStartWalkToCaveOfOrigin: @ 81E6267 walk_in_place_fastest_down step_end -SootopolisCity_Movement_PlayerStartWalkToCaveOfOriginWest: @ 81E628C +SootopolisCity_Movement_PlayerStartWalkToCaveOfOriginWest: walk_left walk_up walk_up @@ -1096,7 +1096,7 @@ SootopolisCity_Movement_PlayerStartWalkToCaveOfOriginWest: @ 81E628C walk_up step_end -SootopolisCity_Movement_PlayerStartWalkToCaveOfOriginNorth: @ 81E62B0 +SootopolisCity_Movement_PlayerStartWalkToCaveOfOriginNorth: walk_up walk_up walk_up @@ -1134,7 +1134,7 @@ SootopolisCity_Movement_PlayerStartWalkToCaveOfOriginNorth: @ 81E62B0 walk_up step_end -SootopolisCity_Movement_StevenWalkToCaveOfOrigin: @ 81E62D4 +SootopolisCity_Movement_StevenWalkToCaveOfOrigin: walk_up walk_up walk_right @@ -1194,7 +1194,7 @@ SootopolisCity_Movement_StevenWalkToCaveOfOrigin: @ 81E62D4 walk_up step_end -SootopolisCity_Movement_PlayerWalkToCaveOfOrigin: @ 81E630E +SootopolisCity_Movement_PlayerWalkToCaveOfOrigin: walk_up walk_up walk_up @@ -1247,12 +1247,12 @@ SootopolisCity_Movement_PlayerWalkToCaveOfOrigin: @ 81E630E walk_right step_end -SootopolisCity_Movement_ExpertMoveAside: @ 81E6341 +SootopolisCity_Movement_ExpertMoveAside: walk_slow_left walk_in_place_fastest_right step_end -SootopolisCity_Movement_StevenArriveCaveEntrance: @ 81E6344 +SootopolisCity_Movement_StevenArriveCaveEntrance: walk_down walk_down walk_left @@ -1265,7 +1265,7 @@ SootopolisCity_Movement_StevenArriveCaveEntrance: @ 81E6344 walk_in_place_fastest_left step_end -SootopolisCity_Movement_PlayerArriveCaveEntrance: @ 81E634F +SootopolisCity_Movement_PlayerArriveCaveEntrance: delay_16 delay_16 delay_16 @@ -1278,12 +1278,12 @@ SootopolisCity_Movement_PlayerArriveCaveEntrance: @ 81E634F walk_in_place_fastest_right step_end -SootopolisCity_Movement_PlayerEnterCaveOfOrigin: @ 81E635A +SootopolisCity_Movement_PlayerEnterCaveOfOrigin: walk_up walk_up step_end -SootopolisCity_EventScript_Boy2:: @ 81E635D +SootopolisCity_EventScript_Boy2:: lockall applymovement LOCALID_BOY_2, Common_Movement_FacePlayer waitmovement 0 @@ -1296,13 +1296,13 @@ SootopolisCity_EventScript_Boy2:: @ 81E635D releaseall end -SootopolisCity_EventScript_Boy2Rayquaza:: @ 81E6388 +SootopolisCity_EventScript_Boy2Rayquaza:: msgbox SootopolisCity_Text_FlyingMonStoppedRampage, MSGBOX_DEFAULT closemessage releaseall end -SootopolisCity_EventScript_BlackBelt:: @ 81E6393 +SootopolisCity_EventScript_BlackBelt:: lockall compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_BlackBeltRayquaza @@ -1317,14 +1317,14 @@ SootopolisCity_EventScript_BlackBelt:: @ 81E6393 releaseall end -SootopolisCity_EventScript_BlackBeltRayquaza:: @ 81E63C7 +SootopolisCity_EventScript_BlackBeltRayquaza:: applymovement LOCALID_BLACK_BELT, Common_Movement_FacePlayer waitmovement 0 msgbox SootopolisCity_Text_GreenOneSettlesThings, MSGBOX_DEFAULT releaseall end -SootopolisCity_EventScript_Girl:: @ 81E63DB +SootopolisCity_EventScript_Girl:: lockall applymovement LOCALID_GIRL, Common_Movement_FacePlayer waitmovement 0 @@ -1337,13 +1337,13 @@ SootopolisCity_EventScript_Girl:: @ 81E63DB releaseall end -SootopolisCity_EventScript_GirlRayquaza:: @ 81E6406 +SootopolisCity_EventScript_GirlRayquaza:: msgbox SootopolisCity_Text_SootopolisDidntGetWrecked, MSGBOX_DEFAULT closemessage releaseall end -SootopolisCity_EventScript_Maniac:: @ 81E6411 +SootopolisCity_EventScript_Maniac:: lockall applymovement LOCALID_MANIAC, Common_Movement_FacePlayer waitmovement 0 @@ -1356,12 +1356,12 @@ SootopolisCity_EventScript_Maniac:: @ 81E6411 releaseall end -SootopolisCity_EventScript_ManiacRayquaza:: @ 81E643C +SootopolisCity_EventScript_ManiacRayquaza:: msgbox SootopolisCity_Text_SawLegendWithOwnEyes, MSGBOX_DEFAULT releaseall end -SootopolisCity_EventScript_Wallace:: @ 81E6446 +SootopolisCity_EventScript_Wallace:: lock faceplayer compare VAR_SOOTOPOLIS_CITY_STATE, 4 @@ -1372,7 +1372,7 @@ SootopolisCity_EventScript_Wallace:: @ 81E6446 release end -SootopolisCity_EventScript_GiveWaterfall:: @ 81E646F +SootopolisCity_EventScript_GiveWaterfall:: msgbox SootopolisCity_Text_ThankYouForHelpAcceptThis, MSGBOX_DEFAULT giveitem ITEM_HM07 setflag FLAG_RECEIVED_HM07 @@ -1387,41 +1387,41 @@ SootopolisCity_EventScript_GiveWaterfall:: @ 81E646F release end -SootopolisCity_EventScript_WallaceMoveFromGym:: @ 81E64B2 +SootopolisCity_EventScript_WallaceMoveFromGym:: applymovement LOCALID_WALLACE, SootopolisCity_Movement_WallaceMoveFromGym waitmovement 0 copyobjectxytoperm LOCALID_WALLACE setvar VAR_SOOTOPOLIS_WALLACE_STATE, 1 return -SootopolisCity_EventScript_WallaceMoveFromGymWest:: @ 81E64C5 +SootopolisCity_EventScript_WallaceMoveFromGymWest:: applymovement LOCALID_WALLACE, SootopolisCity_Movement_WallaceMoveFromGymWest waitmovement 0 copyobjectxytoperm LOCALID_WALLACE setvar VAR_SOOTOPOLIS_WALLACE_STATE, 2 return -SootopolisCity_EventScript_GoToSkyPillar:: @ 81E64D8 +SootopolisCity_EventScript_GoToSkyPillar:: msgbox SootopolisCity_Text_HaventYouScaledSkyPillar, MSGBOX_DEFAULT release end -SootopolisCity_EventScript_GoToGym:: @ 81E64E2 +SootopolisCity_EventScript_GoToGym:: msgbox SootopolisCity_Text_DazzledByMentor, MSGBOX_DEFAULT release end -SootopolisCity_Movement_WallaceMoveFromGym: @ 81E64EC +SootopolisCity_Movement_WallaceMoveFromGym: walk_right walk_in_place_fastest_down step_end -SootopolisCity_Movement_WallaceMoveFromGymWest: @ 81E64EF +SootopolisCity_Movement_WallaceMoveFromGymWest: walk_left walk_in_place_fastest_down step_end -SootopolisCity_EventScript_Maxie:: @ 81E64F2 +SootopolisCity_EventScript_Maxie:: lockall compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_MaxieRayquaza @@ -1430,14 +1430,14 @@ SootopolisCity_EventScript_Maxie:: @ 81E64F2 releaseall end -SootopolisCity_EventScript_MaxieRayquaza:: @ 81E6509 +SootopolisCity_EventScript_MaxieRayquaza:: msgbox SootopolisCity_Text_AfterAllOurScheming, MSGBOX_DEFAULT setflag FLAG_MET_MAXIE_SOOTOPOLIS goto_if_set FLAG_MET_ARCHIE_SOOTOPOLIS, SootopolisCity_EventScript_MaxieArchieLeave releaseall end -SootopolisCity_EventScript_Archie:: @ 81E651F +SootopolisCity_EventScript_Archie:: lockall compare VAR_SOOTOPOLIS_CITY_STATE, 5 goto_if_eq SootopolisCity_EventScript_ArchieRayquaza @@ -1446,14 +1446,14 @@ SootopolisCity_EventScript_Archie:: @ 81E651F releaseall end -SootopolisCity_EventScript_ArchieRayquaza:: @ 81E6536 +SootopolisCity_EventScript_ArchieRayquaza:: msgbox SootopolisCity_Text_TryingMeaninglessToPokemon, MSGBOX_DEFAULT setflag FLAG_MET_ARCHIE_SOOTOPOLIS goto_if_set FLAG_MET_MAXIE_SOOTOPOLIS, SootopolisCity_EventScript_MaxieArchieLeave releaseall end -SootopolisCity_EventScript_MaxieArchieLeave:: @ 81E654C +SootopolisCity_EventScript_MaxieArchieLeave:: setflag FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE setflag FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE setflag FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE @@ -1466,36 +1466,36 @@ SootopolisCity_EventScript_MaxieArchieLeave:: @ 81E654C end @ Unused -SootopolisCity_Movement_Levitate:: @ 81E656B +SootopolisCity_Movement_Levitate:: levitate step_end @ Unused -SootopolisCity_Movement_DestroyTask:: @ 81E656D +SootopolisCity_Movement_DestroyTask:: destroy_extra_task step_end -SootopolisCity_Text_GymSign: @ 81E656F +SootopolisCity_Text_GymSign: .string "SOOTOPOLIS CITY POKéMON GYM\n" .string "LEADER: JUAN\p" .string "“The GYM LEADER with the beauty\n" .string "of pure water!”$" -SootopolisCity_Text_CitySign: @ 81E65C8 +SootopolisCity_Text_CitySign: .string "SOOTOPOLIS CITY\p" .string "“The mystical city where history\n" .string "slumbers.”$" -SootopolisCity_Text_DoorIsClosed: @ 81E6604 +SootopolisCity_Text_DoorIsClosed: .string "The door is closed.$" -SootopolisCity_Text_PhysicallyFitLivingHere: @ 81E6618 +SootopolisCity_Text_PhysicallyFitLivingHere: .string "Diving in the sea. Climbing up and\n" .string "down stairs all the time…\p" .string "If you live in this town, you end up\n" .string "getting physically fit.$" -SootopolisCity_Text_GiantPokemonSuddenlyAppeared: @ 81E6692 +SootopolisCity_Text_GiantPokemonSuddenlyAppeared: .string "These giant POKéMON suddenly appeared\n" .string "in the middle of the city!\p" .string "And, I've never seen them before!\p" @@ -1504,56 +1504,56 @@ SootopolisCity_Text_GiantPokemonSuddenlyAppeared: @ 81E6692 .string "Why can't they be friends, those\n" .string "POKéMON?$" -SootopolisCity_Text_WhatIsThatGreenPokemon: @ 81E6750 +SootopolisCity_Text_WhatIsThatGreenPokemon: .string "What? What? What?\n" .string "What is that green POKéMON?!$" -SootopolisCity_Text_WhereDidLegendariesGo: @ 81E677F +SootopolisCity_Text_WhereDidLegendariesGo: .string "GROUDON and KYOGRE…\n" .string "Where did they go?\p" .string "Will they cause droughts or downpours\n" .string "somewhere else?$" -SootopolisCity_Text_TwoPokemonArentAngry: @ 81E67DC +SootopolisCity_Text_TwoPokemonArentAngry: .string "I just get this sense somehow that\n" .string "the two POKéMON aren't angry.\p" .string "I think… They probably can't control\n" .string "their own power…$" -SootopolisCity_Text_FlyingMonStoppedRampage: @ 81E6853 +SootopolisCity_Text_FlyingMonStoppedRampage: .string "That flying POKéMON came down from\n" .string "the sky and stopped the rampaging\l" .string "POKéMON…$" -SootopolisCity_Text_WonderWhatWorldIsLike: @ 81E68A1 +SootopolisCity_Text_WonderWhatWorldIsLike: .string "I… I've never been out of this city.\p" .string "I wonder what the world is like on\n" .string "the other side of this round sky?$" -SootopolisCity_Text_ThisIsWicked: @ 81E690B +SootopolisCity_Text_ThisIsWicked: .string "Wow!\n" .string "This is wicked!$" -SootopolisCity_Text_ThatWasWicked: @ 81E6920 +SootopolisCity_Text_ThatWasWicked: .string "Wow!\n" .string "That was wicked!$" -SootopolisCity_Text_GoRedAndBlueMon: @ 81E6936 +SootopolisCity_Text_GoRedAndBlueMon: .string "Go for it, red POKéMON!\n" .string "Don't back off, blue POKéMON!$" -SootopolisCity_Text_DoYouKnowMonNames: @ 81E696C +SootopolisCity_Text_DoYouKnowMonNames: .string "… … … … … …\p" .string "Hi, do you know the names of those\n" .string "POKéMON fighting over there?$" -SootopolisCity_Text_GreenOneSettlesThings: @ 81E69B8 +SootopolisCity_Text_GreenOneSettlesThings: .string "I was wondering which one would win,\n" .string "the red one or the blue one, but, oh no,\l" .string "it's the green one that settles things!\p" .string "Talk about a huge turn of events!$" -SootopolisCity_Text_SeeingLegendWithOwnEyes: @ 81E6A50 +SootopolisCity_Text_SeeingLegendWithOwnEyes: .string "There's an ancient legend that claims\n" .string "the land and sea were shaped by\l" .string "a colossal battle between POKéMON.\p" @@ -1562,7 +1562,7 @@ SootopolisCity_Text_SeeingLegendWithOwnEyes: @ 81E6A50 .string "Whoa! I never expected to be\n" .string "witness to something this huge!$" -SootopolisCity_Text_SawLegendWithOwnEyes: @ 81E6B2A +SootopolisCity_Text_SawLegendWithOwnEyes: .string "There's an ancient legend that claims\n" .string "the land and sea were shaped by\l" .string "a colossal battle between POKéMON.\p" @@ -1571,40 +1571,40 @@ SootopolisCity_Text_SawLegendWithOwnEyes: @ 81E6B2A .string "Whoa! I never expected to be\n" .string "witness to something this huge!$" -SootopolisCity_Text_BigPokemonFighting: @ 81E6BFF +SootopolisCity_Text_BigPokemonFighting: .string "A big POKéMON is fighting with\n" .string "another big POKéMON!\p" .string "Please, someone make them stop!$" -SootopolisCity_Text_PrettyMonCameFromSky: @ 81E6C53 +SootopolisCity_Text_PrettyMonCameFromSky: .string "A pretty POKéMON came down from\n" .string "the sky…$" -SootopolisCity_Text_SootopolisWillBeWrecked: @ 81E6C7C +SootopolisCity_Text_SootopolisWillBeWrecked: .string "Oh, no!\n" .string "SOOTOPOLIS CITY will get wrecked!$" -SootopolisCity_Text_SootopolisDidntGetWrecked: @ 81E6CA6 +SootopolisCity_Text_SootopolisDidntGetWrecked: .string "SOOTOPOLIS CITY didn't get wrecked!$" -SootopolisCity_Text_NoOrdinaryTourist: @ 81E6CCA +SootopolisCity_Text_NoOrdinaryTourist: .string "Hm!\n" .string "You've come all the way to SOOTOPOLIS?\l" .string "You're no ordinary tourist.\p" .string "But I suppose that doesn't make you\n" .string "an extraordinary tourist, either.$" -SootopolisCity_Text_CityRegainedCalm: @ 81E6D57 +SootopolisCity_Text_CityRegainedCalm: .string "The city has regained its calm…$" -SootopolisCity_Text_CaveOfOriginPleaseLeave: @ 81E6D77 +SootopolisCity_Text_CaveOfOriginPleaseLeave: .string "Who might you be?\p" .string "This is the CAVE OF ORIGIN.\p" .string "The spirits of POKéMON, becalmed at\n" .string "MT. PYRE, are said to be revived here.\p" .string "Please leave.$" -SootopolisCity_Text_LeadSuperiorTrainerToCave: @ 81E6DFE +SootopolisCity_Text_LeadSuperiorTrainerToCave: .string "A person with a strong will and\n" .string "superior talent…\p" .string "A TRAINER who has knowledge and\n" @@ -1613,18 +1613,18 @@ SootopolisCity_Text_LeadSuperiorTrainerToCave: @ 81E6DFE .string "instructed by WALLACE to lead that\l" .string "TRAINER to this CAVE.$" -SootopolisCity_Text_AwakenedPokemonClash: @ 81E6ED4 +SootopolisCity_Text_AwakenedPokemonClash: .string "Oh, my…\p" .string "The clash between the two awakened\n" .string "POKéMON was quelled by the awakening\l" .string "of a third POKéMON…$" -SootopolisCity_Text_CaveOfOriginSleepsToo: @ 81E6F38 +SootopolisCity_Text_CaveOfOriginSleepsToo: .string "This is the CAVE OF ORIGIN…\p" .string "With the passing of the crisis,\n" .string "the cave, too, shall sleep…$" -SootopolisCity_Text_SootopolisSkyBeautiful: @ 81E6F90 +SootopolisCity_Text_SootopolisSkyBeautiful: .string "SOOTOPOLIS sprang up as a town in\n" .string "the crater of a volcano.\p" .string "If you look up at the sky, the lip of\n" @@ -1633,23 +1633,23 @@ SootopolisCity_Text_SootopolisSkyBeautiful: @ 81E6F90 .string "But that's what makes the sky above\n" .string "SOOTOPOLIS the most beautiful.$" -SootopolisCity_Text_GiganticPokemonFight: @ 81E7078 +SootopolisCity_Text_GiganticPokemonFight: .string "When two POKéMON that gigantic\n" .string "are fighting that savagely, there's\l" .string "not much that we can do.$" -SootopolisCity_Text_FearedWorstWhenPokemonFlewDown: @ 81E70D4 +SootopolisCity_Text_FearedWorstWhenPokemonFlewDown: .string "When that third POKéMON flew down,\n" .string "I feared the worst.$" -SootopolisCity_Text_NightSkyFavoriteScenery: @ 81E710B +SootopolisCity_Text_NightSkyFavoriteScenery: .string "A circle of a night sky framed by\n" .string "the crater of a volcano…\p" .string "And in that ring, stars flicker and\n" .string "blink as if they were alive…\l" .string "It's my favorite scenery.$" -SootopolisCity_Text_WeatherWentWild: @ 81E71A1 +SootopolisCity_Text_WeatherWentWild: .string "The weather was clear this morning,\n" .string "but…\p" .string "All of a sudden, dark clouds brewed up,\n" @@ -1660,20 +1660,20 @@ SootopolisCity_Text_WeatherWentWild: @ 81E71A1 .string "Is all of this because of those\n" .string "POKéMON?$" -SootopolisCity_Text_YouBroughtFlyingMon: @ 81E728C +SootopolisCity_Text_YouBroughtFlyingMon: .string "Oh?\p" .string "It was you who brought that flying\n" .string "POKéMON here?\p" .string "Well, aren't you amazing!$" -SootopolisCity_Text_GroudonPleaseStop: @ 81E72DB +SootopolisCity_Text_GroudonPleaseStop: .string "MAXIE: G… GROUDON…\n" .string "Please! Stop what you're doing!\p" .string "I know the extent of your power now!\p" .string "If you keep going, all HOENN, not just\n" .string "SOOTOPOLIS, will be utterly ruined!$" -SootopolisCity_Text_AfterAllOurScheming: @ 81E737E +SootopolisCity_Text_AfterAllOurScheming: .string "MAXIE: So the super-ancient POKéMON\n" .string "weren't only GROUDON and KYOGRE…\p" .string "After all our fruitless scheming and\n" @@ -1683,7 +1683,7 @@ SootopolisCity_Text_AfterAllOurScheming: @ 81E737E .string "Fu…\n" .string "Fuhahaha…$" -SootopolisCity_Text_KyogreCalmDown: @ 81E7460 +SootopolisCity_Text_KyogreCalmDown: .string "ARCHIE: KYOGRE! What's wrong?!\n" .string "Look over here! It's the RED ORB!\l" .string "Calm down! KYOGRE!\p" @@ -1692,7 +1692,7 @@ SootopolisCity_Text_KyogreCalmDown: @ 81E7460 .string "It's no good!\n" .string "It's not responding at all!$" -SootopolisCity_Text_TryingMeaninglessToPokemon: @ 81E74F6 +SootopolisCity_Text_TryingMeaninglessToPokemon: .string "ARCHIE: KYOGRE and GROUDON both\n" .string "flew off to who knows where.\p" .string "The weather in HOENN has returned\n" @@ -1703,7 +1703,7 @@ SootopolisCity_Text_TryingMeaninglessToPokemon: @ 81E74F6 .string "something small, even meaningless,\l" .string "to POKéMON…$" -SootopolisCity_Text_InvolvedWithCrisisComeWithMe: @ 81E75CB +SootopolisCity_Text_InvolvedWithCrisisComeWithMe: .string "STEVEN: Those POKéMON fighting…\n" .string "GROUDON… And KYOGRE…\p" .string "The two super-ancient POKéMON\n" @@ -1718,7 +1718,7 @@ SootopolisCity_Text_InvolvedWithCrisisComeWithMe: @ 81E75CB .string "I'd like you to meet.\p" .string "Come with me, please.$" -SootopolisCity_Text_DoesThisMakeYourFearPokemon: @ 81E7737 +SootopolisCity_Text_DoesThisMakeYourFearPokemon: .string "STEVEN: Listen, {PLAYER}{KUN}.\p" .string "Does seeing GROUDON and KYOGRE make\n" .string "you think POKéMON are to be feared?\p" @@ -1727,34 +1727,34 @@ SootopolisCity_Text_DoesThisMakeYourFearPokemon: @ 81E7737 .string "…Why am I asking you this?\n" .string "You already know.$" -SootopolisCity_Text_HereWereAreHelpWallace: @ 81E77F0 +SootopolisCity_Text_HereWereAreHelpWallace: .string "STEVEN: Okay, here we are!\p" .string "Inside here you'll find someone named\n" .string "WALLACE.\p" .string "I think you have what's needed to\n" .string "help him…$" -SootopolisCity_Text_KnowWhatsNeededToHelpHim: @ 81E7866 +SootopolisCity_Text_KnowWhatsNeededToHelpHim: .string "STEVEN: I think you have what's\n" .string "needed to help him…$" -SootopolisCity_Text_NeverBeenToSkyPillar: @ 81E789A +SootopolisCity_Text_NeverBeenToSkyPillar: .string "STEVEN: The SKY PILLAR…\p" .string "I've never been there.\n" .string "I wonder where it could be?$" -SootopolisCity_Text_SoThatsRayquaza: @ 81E78E5 +SootopolisCity_Text_SoThatsRayquaza: .string "STEVEN: So that's RAYQUAZA…\p" .string "It's incredible how the two rampaging\n" .string "POKéMON would flee from it in fear…$" -SootopolisCity_Text_MaxieArchieLeft: @ 81E794B +SootopolisCity_Text_MaxieArchieLeft: .string "STEVEN: It looks like both MAXIE and\n" .string "ARCHIE have gone away somewhere.\p" .string "Perhaps they've gone to MT. PYRE to\n" .string "return those ORBS…$" -SootopolisCity_Text_HaventYouScaledSkyPillar: @ 81E79C8 +SootopolisCity_Text_HaventYouScaledSkyPillar: .string "WALLACE: Oh?\n" .string "{PLAYER}{KUN}?\p" .string "Haven't you scaled the SKY PILLAR\n" @@ -1762,14 +1762,14 @@ SootopolisCity_Text_HaventYouScaledSkyPillar: @ 81E79C8 .string "I'm sure that you can make it to\n" .string "the top of the SKY PILLAR…$" -SootopolisCity_Text_AquaMagmaDidntMeanHarm: @ 81E7A3E +SootopolisCity_Text_AquaMagmaDidntMeanHarm: .string "WALLACE: {PLAYER}{KUN}…\p" .string "The leaders of TEAM MAGMA and AQUA,\n" .string "I don't think they meant harm.\p" .string "It wouldn't hurt to hear what they\n" .string "have to say for themselves.$" -SootopolisCity_Text_ThankYouForHelpAcceptThis: @ 81E7ACF +SootopolisCity_Text_ThankYouForHelpAcceptThis: .string "WALLACE: {PLAYER}{KUN}…\n" .string "My eyes didn't deceive me.\p" .string "Thanks to your help, SOOTOPOLIS…\n" @@ -1778,7 +1778,7 @@ SootopolisCity_Text_ThankYouForHelpAcceptThis: @ 81E7ACF .string "This is a gift from me.\n" .string "Please accept it.$" -SootopolisCity_Text_ExplainWaterfallGoToGym: @ 81E7B86 +SootopolisCity_Text_ExplainWaterfallGoToGym: .string "That HIDDEN MACHINE contains\n" .string "WATERFALL.\p" .string "If you have the RAIN BADGE, a POKéMON\n" @@ -1791,7 +1791,7 @@ SootopolisCity_Text_ExplainWaterfallGoToGym: @ 81E7B86 .string "When you're all set to go, step through\n" .string "that door.$" -SootopolisCity_Text_DazzledByMentor: @ 81E7CBC +SootopolisCity_Text_DazzledByMentor: .string "WALLACE: I'm sure that you will be\n" .string "dazzled by my mentor's breathtakingly\l" .string "elegant battle style.$" diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc index ae5bfd1084..b20cf78887 100644 --- a/data/maps/SootopolisCity_Gym_1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc @@ -1,24 +1,24 @@ -SootopolisCity_Gym_1F_MapScripts:: @ 8224E4C +SootopolisCity_Gym_1F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, SootopolisCity_Gym_1F_OnFrame map_script MAP_SCRIPT_ON_RESUME, SootopolisCity_Gym_1F_OnResume map_script MAP_SCRIPT_ON_LOAD, SootopolisCity_Gym_1F_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, SootopolisCity_Gym_1F_OnTransition .byte 0 -SootopolisCity_Gym_1F_OnTransition: @ 8224E61 +SootopolisCity_Gym_1F_OnTransition: setvar VAR_ICE_STEP_COUNT, 1 end -SootopolisCity_Gym_1F_OnResume: @ 8224E67 +SootopolisCity_Gym_1F_OnResume: setstepcallback STEP_CB_SOOTOPOLIS_ICE end -SootopolisCity_Gym_1F_OnLoad: @ 8224E6A +SootopolisCity_Gym_1F_OnLoad: call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special SetSootopolisGymCrackedIceMetatiles end -SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles:: @ 8224E73 +SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles:: compare VAR_ICE_STEP_COUNT, 8 goto_if_lt SootopolisCity_Gym_1F_EventScript_StopCheckingStairs @ All stairs ice compare VAR_ICE_STEP_COUNT, 28 @@ -27,23 +27,23 @@ SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles:: @ 8224E73 goto_if_lt SootopolisCity_Gym_1F_EventScript_OpenFirstAndSecondStairs setmetatile 8, 4, METATILE_SootopolisGym_Stairs, 0 setmetatile 8, 5, METATILE_SootopolisGym_Stairs, 0 -SootopolisCity_Gym_1F_EventScript_OpenFirstAndSecondStairs:: @ 8224EA6 +SootopolisCity_Gym_1F_EventScript_OpenFirstAndSecondStairs:: setmetatile 8, 10, METATILE_SootopolisGym_Stairs, 0 setmetatile 8, 11, METATILE_SootopolisGym_Stairs, 0 -SootopolisCity_Gym_1F_EventScript_OpenFirstStairs:: @ 8224EB8 +SootopolisCity_Gym_1F_EventScript_OpenFirstStairs:: setmetatile 8, 15, METATILE_SootopolisGym_Stairs, 0 setmetatile 8, 16, METATILE_SootopolisGym_Stairs, 0 -SootopolisCity_Gym_1F_EventScript_StopCheckingStairs:: @ 8224ECA +SootopolisCity_Gym_1F_EventScript_StopCheckingStairs:: return -SootopolisCity_Gym_1F_OnFrame: @ 8224ECB +SootopolisCity_Gym_1F_OnFrame: map_script_2 VAR_ICE_STEP_COUNT, 8, SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs map_script_2 VAR_ICE_STEP_COUNT, 28, SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs map_script_2 VAR_ICE_STEP_COUNT, 67, SootopolisCity_Gym_1F_EventScript_UnlockThirdStairs map_script_2 VAR_ICE_STEP_COUNT, 0, SootopolisCity_Gym_1F_EventScript_FallThroughIce .2byte 0 -SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs:: @ 8224EED +SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs:: addvar VAR_ICE_STEP_COUNT, 1 delay 40 playse SE_ICE_STAIRS @@ -51,7 +51,7 @@ SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs:: @ 8224EED special DrawWholeMapView end -SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs:: @ 8224F01 +SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs:: addvar VAR_ICE_STEP_COUNT, 1 delay 40 playse SE_ICE_STAIRS @@ -59,7 +59,7 @@ SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs:: @ 8224F01 special DrawWholeMapView end -SootopolisCity_Gym_1F_EventScript_UnlockThirdStairs:: @ 8224F15 +SootopolisCity_Gym_1F_EventScript_UnlockThirdStairs:: addvar VAR_ICE_STEP_COUNT, 1 delay 40 playse SE_ICE_STAIRS @@ -67,7 +67,7 @@ SootopolisCity_Gym_1F_EventScript_UnlockThirdStairs:: @ 8224F15 special DrawWholeMapView end -SootopolisCity_Gym_1F_EventScript_FallThroughIce:: @ 8224F29 +SootopolisCity_Gym_1F_EventScript_FallThroughIce:: lockall delay 20 applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_Gym_1F_Movement_FallThroughIce @@ -78,11 +78,11 @@ SootopolisCity_Gym_1F_EventScript_FallThroughIce:: @ 8224F29 waitstate end -SootopolisCity_Gym_1F_Movement_FallThroughIce: @ 8224F42 +SootopolisCity_Gym_1F_Movement_FallThroughIce: set_invisible step_end -SootopolisCity_Gym_1F_EventScript_Juan:: @ 8224F44 +SootopolisCity_Gym_1F_EventScript_Juan:: trainerbattle_single TRAINER_JUAN_1, SootopolisCity_Gym_1F_Text_JuanIntro, SootopolisCity_Gym_1F_Text_JuanDefeat, SootopolisCity_Gym_1F_EventScript_JuanDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -93,7 +93,7 @@ SootopolisCity_Gym_1F_EventScript_Juan:: @ 8224F44 release end -SootopolisCity_Gym_1F_EventScript_JuanDefeated:: @ 8224F82 +SootopolisCity_Gym_1F_EventScript_JuanDefeated:: message SootopolisCity_Gym_1F_Text_ReceivedRainBadge waitmessage call Common_EventScript_PlayGymBadgeFanfare @@ -119,7 +119,7 @@ SootopolisCity_Gym_1F_EventScript_JuanDefeated:: @ 8224F82 release end -SootopolisCity_Gym_1F_EventScript_GiveWaterPulse:: @ 8224FD4 +SootopolisCity_Gym_1F_EventScript_GiveWaterPulse:: giveitem ITEM_TM03 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_BagIsFull @@ -127,7 +127,7 @@ SootopolisCity_Gym_1F_EventScript_GiveWaterPulse:: @ 8224FD4 setflag FLAG_RECEIVED_TM03 return -SootopolisCity_Gym_1F_EventScript_GiveWaterPulse2:: @ 8224FF7 +SootopolisCity_Gym_1F_EventScript_GiveWaterPulse2:: giveitem ITEM_TM03 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull @@ -136,17 +136,17 @@ SootopolisCity_Gym_1F_EventScript_GiveWaterPulse2:: @ 8224FF7 release end -SootopolisCity_Gym_1F_EventScript_GoGetFortreeBadge:: @ 822501B +SootopolisCity_Gym_1F_EventScript_GoGetFortreeBadge:: msgbox SootopolisCity_Gym_1F_Text_GoGetFortreeBadge, MSGBOX_DEFAULT release end -SootopolisCity_Gym_1F_EventScript_JuanRematch:: @ 8225025 +SootopolisCity_Gym_1F_EventScript_JuanRematch:: trainerbattle_rematch_double TRAINER_JUAN_1, SootopolisCity_Gym_1F_Text_JuanPreRematch, SootopolisCity_Gym_1F_Text_JuanRematchDefeat, SootopolisCity_Gym_1F_Text_JuanRematchNeedTwoMons msgbox SootopolisCity_Gym_1F_Text_JuanPostRematch, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_1F_EventScript_GymGuide:: @ 8225040 +SootopolisCity_Gym_1F_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_SOOTOPOLIS_GYM, SootopolisCity_Gym_1F_EventScript_GymGuidePostVictory @@ -154,34 +154,34 @@ SootopolisCity_Gym_1F_EventScript_GymGuide:: @ 8225040 release end -SootopolisCity_Gym_1F_EventScript_GymGuidePostVictory:: @ 8225055 +SootopolisCity_Gym_1F_EventScript_GymGuidePostVictory:: msgbox SootopolisCity_Gym_1F_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end -SootopolisCity_Gym_1F_EventScript_LeftGymStatue:: @ 822505F +SootopolisCity_Gym_1F_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE08_GET, SootopolisCity_Gym_1F_EventScript_GymStatueCertified goto SootopolisCity_Gym_1F_EventScript_GymStatue end -SootopolisCity_Gym_1F_EventScript_RightGymStatue:: @ 822506F +SootopolisCity_Gym_1F_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE08_GET, SootopolisCity_Gym_1F_EventScript_GymStatueCertified goto SootopolisCity_Gym_1F_EventScript_GymStatue end -SootopolisCity_Gym_1F_EventScript_GymStatueCertified:: @ 822507F +SootopolisCity_Gym_1F_EventScript_GymStatueCertified:: msgbox SootopolisCity_Gym_1F_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end -SootopolisCity_Gym_1F_EventScript_GymStatue:: @ 8225089 +SootopolisCity_Gym_1F_EventScript_GymStatue:: msgbox SootopolisCity_Gym_1F_Text_GymStatue, MSGBOX_DEFAULT releaseall end -SootopolisCity_Gym_1F_Text_GymGuideAdvice: @ 8225093 +SootopolisCity_Gym_1F_Text_GymGuideAdvice: .string "Yo! How's it going, CHAMPION-\n" .string "bound {PLAYER}?\p" .string "SOOTOPOLIS's GYM LEADER JUAN is\n" @@ -193,14 +193,14 @@ SootopolisCity_Gym_1F_Text_GymGuideAdvice: @ 8225093 .string "The rest of the way, you have to\n" .string "go for it yourself!$" -SootopolisCity_Gym_1F_Text_GymGuidePostVictory: @ 82251AF +SootopolisCity_Gym_1F_Text_GymGuidePostVictory: .string "Yow! You've beaten even JUAN, who\n" .string "was supposedly the best in all HOENN!\p" .string "Okay! Check out your TRAINER CARD.\p" .string "If you've gotten all the BADGES, you're\n" .string "set for the POKéMON LEAGUE challenge!$" -SootopolisCity_Gym_1F_Text_JuanIntro: @ 8225268 +SootopolisCity_Gym_1F_Text_JuanIntro: .string "Let me ask you.\n" .string "Did you know?\l" .string "Ah, I should not be so coy.\p" @@ -223,7 +223,7 @@ SootopolisCity_Gym_1F_Text_JuanIntro: @ 8225268 @ the gDisplayedStringBattle buffer that it's put into, and it stomps all over the gBattleTextBuffs @ after, as well as the otherwise unused array after that. One wonders if that's the reason for @ the existence of that unused array of ints. -SootopolisCity_Gym_1F_Text_JuanDefeat: @ 8225432 +SootopolisCity_Gym_1F_Text_JuanDefeat: .string "Ahahaha, excellent!\n" .string "Very well, you are the winner.\p" .string "From you, I sense the brilliant shine\n" @@ -238,11 +238,11 @@ SootopolisCity_Gym_1F_Text_JuanDefeat: @ 8225432 .string "Rather than my clothes, I shall reward\n" .string "you with this, the RAIN BADGE!$" -SootopolisCity_Gym_1F_Text_ReceivedRainBadge: @ 8225598 +SootopolisCity_Gym_1F_Text_ReceivedRainBadge: .string "{PLAYER} received the RAIN BADGE\n" .string "from JUAN.$" -SootopolisCity_Gym_1F_Text_ExplainRainBadgeTakeThis: @ 82255BE +SootopolisCity_Gym_1F_Text_ExplainRainBadgeTakeThis: .string "Having the RAIN BADGE shall assure you\n" .string "the full obedience of all your POKéMON\l" .string "to your every command.\p" @@ -252,18 +252,18 @@ SootopolisCity_Gym_1F_Text_ExplainRainBadgeTakeThis: @ 82255BE .string "And, so that you never forget the\n" .string "battle we shared, take this…$" -SootopolisCity_Gym_1F_Text_ExplainWaterPulse: @ 82256C1 +SootopolisCity_Gym_1F_Text_ExplainWaterPulse: .string "The TECHNICAL MACHINE I handed you\n" .string "contains WATER PULSE.\p" .string "In use, it will occasionally confuse\n" .string "the target with ultrasonic waves.\p" .string "… … … … … …$" -SootopolisCity_Gym_1F_Text_RegisteredJuan: @ 822574D +SootopolisCity_Gym_1F_Text_RegisteredJuan: .string "Registered GYM LEADER JUAN\n" .string "in the POKéNAV.$" -SootopolisCity_Gym_1F_Text_JuanPostBattle: @ 8225778 +SootopolisCity_Gym_1F_Text_JuanPostBattle: .string "The TRAINERS who have gathered all\n" .string "the GYM BADGES of HOENN should make\l" .string "way to the ultimate destination.\p" @@ -273,22 +273,22 @@ SootopolisCity_Gym_1F_Text_JuanPostBattle: @ 8225778 .string "There, you shall find the POKéMON\n" .string "LEAGUE.$" -SootopolisCity_Gym_1F_Text_GoGetFortreeBadge: @ 8225865 +SootopolisCity_Gym_1F_Text_GoGetFortreeBadge: .string "There remains but one BADGE to\n" .string "obtain in HOENN.\p" .string "If you wish to challenge the POKéMON\n" .string "LEAGUE, you must obtain the last\l" .string "BADGE from the GYM in FORTREE.$" -SootopolisCity_Gym_1F_Text_GymStatue: @ 82258FA +SootopolisCity_Gym_1F_Text_GymStatue: .string "SOOTOPOLIS CITY POKéMON GYM$" -SootopolisCity_Gym_1F_Text_GymStatueCertified: @ 8225916 +SootopolisCity_Gym_1F_Text_GymStatueCertified: .string "SOOTOPOLIS CITY POKéMON GYM\p" .string "JUAN'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" -SootopolisCity_Gym_1F_Text_JuanPreRematch: @ 8225950 +SootopolisCity_Gym_1F_Text_JuanPreRematch: .string "JUAN: Ah, this GYM had returned to its\n" .string "usual state of serenity…\p" .string "But our young typhoon has returned\n" @@ -297,11 +297,11 @@ SootopolisCity_Gym_1F_Text_JuanPreRematch: @ 8225950 .string "I shall be delighted to dance with you\n" .string "as often as you wish!$" -SootopolisCity_Gym_1F_Text_JuanRematchDefeat: @ 8225A2E +SootopolisCity_Gym_1F_Text_JuanRematchDefeat: .string "Ahahaha, you are the winner!\n" .string "You have defeated me again!$" -SootopolisCity_Gym_1F_Text_JuanPostRematch: @ 8225A67 +SootopolisCity_Gym_1F_Text_JuanPostRematch: .string "JUAN: If I told you to become my\n" .string "apprentice, you will refuse, I am sure.\p" .string "I would like to make a gift of my coat\n" @@ -311,7 +311,7 @@ SootopolisCity_Gym_1F_Text_JuanPostRematch: @ 8225A67 .string "And that, my friend, is a certain sign\n" .string "of nobility!$" -SootopolisCity_Gym_1F_Text_JuanRematchNeedTwoMons: @ 8225B48 +SootopolisCity_Gym_1F_Text_JuanRematchNeedTwoMons: .string "JUAN: Ah, this GYM had returned to its\n" .string "usual state of serenity…\p" .string "But our young typhoon has returned\n" diff --git a/data/maps/SootopolisCity_Gym_B1F/scripts.inc b/data/maps/SootopolisCity_Gym_B1F/scripts.inc index 735722db5a..ae5a3ebc4a 100644 --- a/data/maps/SootopolisCity_Gym_B1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_B1F/scripts.inc @@ -1,183 +1,183 @@ -SootopolisCity_Gym_B1F_MapScripts:: @ 8225C8A +SootopolisCity_Gym_B1F_MapScripts:: .byte 0 -SootopolisCity_Gym_B1F_EventScript_Andrea:: @ 8225C8B +SootopolisCity_Gym_B1F_EventScript_Andrea:: trainerbattle_single TRAINER_ANDREA, SootopolisCity_Gym_B1F_Text_AndreaIntro, SootopolisCity_Gym_B1F_Text_AndreaDefeat msgbox SootopolisCity_Gym_B1F_Text_AndreaPostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Crissy:: @ 8225CA2 +SootopolisCity_Gym_B1F_EventScript_Crissy:: trainerbattle_single TRAINER_CRISSY, SootopolisCity_Gym_B1F_Text_CrissyIntro, SootopolisCity_Gym_B1F_Text_CrissyDefeat msgbox SootopolisCity_Gym_B1F_Text_CrissyPostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Brianna:: @ 8225CB9 +SootopolisCity_Gym_B1F_EventScript_Brianna:: trainerbattle_single TRAINER_BRIANNA, SootopolisCity_Gym_B1F_Text_BriannaIntro, SootopolisCity_Gym_B1F_Text_BriannaDefeat msgbox SootopolisCity_Gym_B1F_Text_BriannaPostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Connie:: @ 8225CD0 +SootopolisCity_Gym_B1F_EventScript_Connie:: trainerbattle_single TRAINER_CONNIE, SootopolisCity_Gym_B1F_Text_ConnieIntro, SootopolisCity_Gym_B1F_Text_ConnieDefeat msgbox SootopolisCity_Gym_B1F_Text_ConniePostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Bridget:: @ 8225CE7 +SootopolisCity_Gym_B1F_EventScript_Bridget:: trainerbattle_single TRAINER_BRIDGET, SootopolisCity_Gym_B1F_Text_BridgetIntro, SootopolisCity_Gym_B1F_Text_BridgetDefeat msgbox SootopolisCity_Gym_B1F_Text_BridgetPostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Olivia:: @ 8225CFE +SootopolisCity_Gym_B1F_EventScript_Olivia:: trainerbattle_single TRAINER_OLIVIA, SootopolisCity_Gym_B1F_Text_OliviaIntro, SootopolisCity_Gym_B1F_Text_OliviaDefeat msgbox SootopolisCity_Gym_B1F_Text_OliviaPostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Tiffany:: @ 8225D15 +SootopolisCity_Gym_B1F_EventScript_Tiffany:: trainerbattle_single TRAINER_TIFFANY, SootopolisCity_Gym_B1F_Text_TiffanyIntro, SootopolisCity_Gym_B1F_Text_TiffanyDefeat msgbox SootopolisCity_Gym_B1F_Text_TiffanyPostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Bethany:: @ 8225D2C +SootopolisCity_Gym_B1F_EventScript_Bethany:: trainerbattle_single TRAINER_BETHANY, SootopolisCity_Gym_B1F_Text_BethanyIntro, SootopolisCity_Gym_B1F_Text_BethanyDefeat msgbox SootopolisCity_Gym_B1F_Text_BethanyPostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Annika:: @ 8225D43 +SootopolisCity_Gym_B1F_EventScript_Annika:: trainerbattle_single TRAINER_ANNIKA, SootopolisCity_Gym_B1F_Text_AnnikaIntro, SootopolisCity_Gym_B1F_Text_AnnikaDefeat msgbox SootopolisCity_Gym_B1F_Text_AnnikaPostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_EventScript_Daphne:: @ 8225D5A +SootopolisCity_Gym_B1F_EventScript_Daphne:: trainerbattle_single TRAINER_DAPHNE, SootopolisCity_Gym_B1F_Text_DaphneIntro, SootopolisCity_Gym_B1F_Text_DaphneDefeat msgbox SootopolisCity_Gym_B1F_Text_DaphnePostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_Text_AndreaIntro: @ 8225D71 +SootopolisCity_Gym_B1F_Text_AndreaIntro: .string "I'll show you the sublime techniques\n" .string "I learned from our LEADER JUAN!$" -SootopolisCity_Gym_B1F_Text_AndreaDefeat: @ 8225DB6 +SootopolisCity_Gym_B1F_Text_AndreaDefeat: .string "Please forgive me, JUAN…$" -SootopolisCity_Gym_B1F_Text_AndreaPostBattle: @ 8225DCF +SootopolisCity_Gym_B1F_Text_AndreaPostBattle: .string "Watch what happens if you crack all\n" .string "the floor tiles.$" -SootopolisCity_Gym_B1F_Text_CrissyIntro: @ 8225E04 +SootopolisCity_Gym_B1F_Text_CrissyIntro: .string "You came all the way here, but you won't\n" .string "get to see JUAN.\p" .string "Not if you lose to me, you won't!$" -SootopolisCity_Gym_B1F_Text_CrissyDefeat: @ 8225E60 +SootopolisCity_Gym_B1F_Text_CrissyDefeat: .string "You're strong!\n" .string "I was fooled by your cute looks!$" -SootopolisCity_Gym_B1F_Text_CrissyPostBattle: @ 8225E90 +SootopolisCity_Gym_B1F_Text_CrissyPostBattle: .string "You might be good enough to avoid\n" .string "being wiped out in one hit by JUAN.$" -SootopolisCity_Gym_B1F_Text_DaphneIntro: @ 8225ED6 +SootopolisCity_Gym_B1F_Text_DaphneIntro: .string "The sight of JUAN conducting\n" .string "a battle…\p" .string "The very beauty of it compelled me to\n" .string "become a TRAINER.$" -SootopolisCity_Gym_B1F_Text_DaphneDefeat: @ 8225F35 +SootopolisCity_Gym_B1F_Text_DaphneDefeat: .string "You battled with more beauty than\n" .string "I could muster…$" -SootopolisCity_Gym_B1F_Text_DaphnePostBattle: @ 8225F67 +SootopolisCity_Gym_B1F_Text_DaphnePostBattle: .string "The grace you bring to battle is\n" .string "fabulous.\p" .string "Oh… I'm so fortunate to have found\n" .string "POKéMON.$" -SootopolisCity_Gym_B1F_Text_ConnieIntro: @ 8225FBE +SootopolisCity_Gym_B1F_Text_ConnieIntro: .string "I should teach you how harsh battles\n" .string "can be.$" -SootopolisCity_Gym_B1F_Text_ConnieDefeat: @ 8225FEB +SootopolisCity_Gym_B1F_Text_ConnieDefeat: .string "Oh.\n" .string "You're strong.$" -SootopolisCity_Gym_B1F_Text_ConniePostBattle: @ 8225FFE +SootopolisCity_Gym_B1F_Text_ConniePostBattle: .string "I'll tell you something good.\p" .string "If you want to reach JUAN, you\n" .string "need to walk on each floor tile once.$" -SootopolisCity_Gym_B1F_Text_BridgetIntro: @ 8226061 +SootopolisCity_Gym_B1F_Text_BridgetIntro: .string "The POKéMON GYM of the highest level\n" .string "in the HOENN region…\p" .string "That's the SOOTOPOLIS GYM.$" -SootopolisCity_Gym_B1F_Text_BridgetDefeat: @ 82260B6 +SootopolisCity_Gym_B1F_Text_BridgetDefeat: .string "What a high level you are!$" -SootopolisCity_Gym_B1F_Text_BridgetPostBattle: @ 82260D1 +SootopolisCity_Gym_B1F_Text_BridgetPostBattle: .string "Rather than being satisfied by being\n" .string "in a strong GYM, I imagine training in\l" .string "other places will make you stronger.\l" .string "But above all, it looks more fun.$" -SootopolisCity_Gym_B1F_Text_OliviaIntro: @ 8226164 +SootopolisCity_Gym_B1F_Text_OliviaIntro: .string "I train my POKéMON together with\n" .string "JUAN.\p" .string "Don't think I'm a pushover.$" -SootopolisCity_Gym_B1F_Text_OliviaDefeat: @ 82261A7 +SootopolisCity_Gym_B1F_Text_OliviaDefeat: .string "I was beaten…$" -SootopolisCity_Gym_B1F_Text_OliviaPostBattle: @ 82261B5 +SootopolisCity_Gym_B1F_Text_OliviaPostBattle: .string "I think you have potential.\n" .string "Why don't you stay and train with us?$" -SootopolisCity_Gym_B1F_Text_TiffanyIntro: @ 82261F7 +SootopolisCity_Gym_B1F_Text_TiffanyIntro: .string "A graceful glide across the ice while\n" .string "crossing no lines…\p" .string "A TRAINER putting on that performance\n" .string "would be elegantly beautiful!$" -SootopolisCity_Gym_B1F_Text_TiffanyDefeat: @ 8226274 +SootopolisCity_Gym_B1F_Text_TiffanyDefeat: .string "Well, excuse me?!$" -SootopolisCity_Gym_B1F_Text_TiffanyPostBattle: @ 8226286 +SootopolisCity_Gym_B1F_Text_TiffanyPostBattle: .string "This is really obvious, but how strong\n" .string "you are as a TRAINER has nothing to do\l" .string "with how young or old you are.$" -SootopolisCity_Gym_B1F_Text_BethanyIntro: @ 82262F3 +SootopolisCity_Gym_B1F_Text_BethanyIntro: .string "When I'm with my POKéMON, the time\n" .string "flies by before you can say, “Oops!”$" -SootopolisCity_Gym_B1F_Text_BethanyDefeat: @ 822633B +SootopolisCity_Gym_B1F_Text_BethanyDefeat: .string "Oops!$" -SootopolisCity_Gym_B1F_Text_BethanyPostBattle: @ 8226341 +SootopolisCity_Gym_B1F_Text_BethanyPostBattle: .string "I wish I could forget about lost causes\n" .string "before I can manage an “Oops!”$" -SootopolisCity_Gym_B1F_Text_AnnikaIntro: @ 8226388 +SootopolisCity_Gym_B1F_Text_AnnikaIntro: .string "I can battle with really rare POKéMON\n" .string "if you'd like.$" -SootopolisCity_Gym_B1F_Text_AnnikaDefeat: @ 82263BD +SootopolisCity_Gym_B1F_Text_AnnikaDefeat: .string "Oh, there now! Did you have a good look\n" .string "at my POKéMON?$" -SootopolisCity_Gym_B1F_Text_AnnikaPostBattle: @ 82263F4 +SootopolisCity_Gym_B1F_Text_AnnikaPostBattle: .string "I came to this GYM because JUAN\n" .string "praised me for my darling POKéMON.\p" .string "Oh, if only I'd met JUAN years ago\n" .string "when I was younger…$" -SootopolisCity_Gym_B1F_Text_BriannaIntro: @ 822646E +SootopolisCity_Gym_B1F_Text_BriannaIntro: .string "Giggle…\n" .string "Your grim look is so charming.$" -SootopolisCity_Gym_B1F_Text_BriannaDefeat: @ 8226495 +SootopolisCity_Gym_B1F_Text_BriannaDefeat: .string "Oh, dear.\n" .string "I went much too easy on you.$" -SootopolisCity_Gym_B1F_Text_BriannaPostBattle: @ 82264BC +SootopolisCity_Gym_B1F_Text_BriannaPostBattle: .string "You couldn't lay a finger on JUAN,\n" .string "I'm sure. Giggle…$" diff --git a/data/maps/SootopolisCity_House1/scripts.inc b/data/maps/SootopolisCity_House1/scripts.inc index 90a429c2c1..1cedf7c579 100644 --- a/data/maps/SootopolisCity_House1/scripts.inc +++ b/data/maps/SootopolisCity_House1/scripts.inc @@ -1,7 +1,7 @@ -SootopolisCity_House1_MapScripts:: @ 822694C +SootopolisCity_House1_MapScripts:: .byte 0 -SootopolisCity_House1_EventScript_BrickBreakBlackBelt:: @ 822694D +SootopolisCity_House1_EventScript_BrickBreakBlackBelt:: lock faceplayer goto_if_set FLAG_RECEIVED_TM31, SootopolisCity_House1_EventScript_ReceivedBrickBreak @@ -14,12 +14,12 @@ SootopolisCity_House1_EventScript_BrickBreakBlackBelt:: @ 822694D release end -SootopolisCity_House1_EventScript_ReceivedBrickBreak:: @ 8226984 +SootopolisCity_House1_EventScript_ReceivedBrickBreak:: msgbox SootopolisCity_House1_Text_ExplainBrickBreak, MSGBOX_DEFAULT release end -SootopolisCity_House1_EventScript_Kecleon:: @ 822698E +SootopolisCity_House1_EventScript_Kecleon:: lock faceplayer waitse @@ -29,16 +29,16 @@ SootopolisCity_House1_EventScript_Kecleon:: @ 822698E release end -SootopolisCity_House1_Text_DevelopedThisTM: @ 82269A1 +SootopolisCity_House1_Text_DevelopedThisTM: .string "For thirty years I've remained in\n" .string "SOOTOPOLIS honing my skills.\p" .string "I developed a shattering TM.\n" .string "I bequeath it to you!$" -SootopolisCity_House1_Text_ExplainBrickBreak: @ 8226A13 +SootopolisCity_House1_Text_ExplainBrickBreak: .string "TM31 contains BRICK BREAK! It's a move\n" .string "so horrible that I can't describe it.$" -SootopolisCity_House1_Text_Kecleon: @ 8226A60 +SootopolisCity_House1_Text_Kecleon: .string "KECLEON: Puu puhyaah.$" diff --git a/data/maps/SootopolisCity_House2/scripts.inc b/data/maps/SootopolisCity_House2/scripts.inc index 31388cbb4a..a9c2ed255d 100644 --- a/data/maps/SootopolisCity_House2/scripts.inc +++ b/data/maps/SootopolisCity_House2/scripts.inc @@ -1,7 +1,7 @@ -SootopolisCity_House2_MapScripts:: @ 8226A76 +SootopolisCity_House2_MapScripts:: .byte 0 -SootopolisCity_House2_EventScript_ExpertF:: @ 8226A77 +SootopolisCity_House2_EventScript_ExpertF:: lock faceplayer msgbox SootopolisCity_House2_Text_DidYouKnowAboutMtPyreOrbs, MSGBOX_YESNO @@ -12,25 +12,25 @@ SootopolisCity_House2_EventScript_ExpertF:: @ 8226A77 release end -SootopolisCity_House2_EventScript_KnowAboutOrbs:: @ 8226A99 +SootopolisCity_House2_EventScript_KnowAboutOrbs:: msgbox SootopolisCity_House2_Text_YesTwoOrbsSideBySide, MSGBOX_DEFAULT return -SootopolisCity_House2_EventScript_DontKnowAboutOrbs:: @ 8226AA2 +SootopolisCity_House2_EventScript_DontKnowAboutOrbs:: msgbox SootopolisCity_House2_Text_OughtToVisitAndSee, MSGBOX_DEFAULT return -SootopolisCity_House2_Text_DidYouKnowAboutMtPyreOrbs: @ 8226AAB +SootopolisCity_House2_Text_DidYouKnowAboutMtPyreOrbs: .string "MT. PYRE…\p" .string "At its peak are two orbs placed side\n" .string "by side. Did you know?$" -SootopolisCity_House2_Text_YesTwoOrbsSideBySide: @ 8226AF1 +SootopolisCity_House2_Text_YesTwoOrbsSideBySide: .string "Yes, two orbs side by side…\p" .string "The sight of them together…\n" .string "It is somehow soothing…$" -SootopolisCity_House2_Text_OughtToVisitAndSee: @ 8226B41 +SootopolisCity_House2_Text_OughtToVisitAndSee: .string "Is that so?\n" .string "Perhaps you ought to visit and see…$" diff --git a/data/maps/SootopolisCity_House3/scripts.inc b/data/maps/SootopolisCity_House3/scripts.inc index c22a29a942..02546968b5 100644 --- a/data/maps/SootopolisCity_House3/scripts.inc +++ b/data/maps/SootopolisCity_House3/scripts.inc @@ -1,7 +1,7 @@ -SootopolisCity_House3_MapScripts:: @ 8226B71 +SootopolisCity_House3_MapScripts:: .byte 0 -SootopolisCity_House3_EventScript_Woman:: @ 8226B72 +SootopolisCity_House3_EventScript_Woman:: lock faceplayer msgbox SootopolisCity_House3_Text_JuanHasManyFansDoYou, MSGBOX_YESNO @@ -11,31 +11,31 @@ SootopolisCity_House3_EventScript_Woman:: @ 8226B72 release end -SootopolisCity_House3_EventScript_HaveFans:: @ 8226B91 +SootopolisCity_House3_EventScript_HaveFans:: msgbox SootopolisCity_House3_Text_YouMustBePrettyStrong, MSGBOX_DEFAULT release end -SootopolisCity_House3_EventScript_Girl:: @ 8226B9B +SootopolisCity_House3_EventScript_Girl:: msgbox SootopolisCity_House3_Text_TrainerFanClubWasWild, MSGBOX_NPC end -SootopolisCity_House3_Text_JuanHasManyFansDoYou: @ 8226BA4 +SootopolisCity_House3_Text_JuanHasManyFansDoYou: .string "You're a POKéMON TRAINER, aren't you?\p" .string "SOOTOPOLIS's JUAN has many fans.\n" .string "Even more than his student WALLACE!\p" .string "Do you have any?$" -SootopolisCity_House3_Text_YouMustBePrettyStrong: @ 8226C20 +SootopolisCity_House3_Text_YouMustBePrettyStrong: .string "Oh, then you must be pretty strong.$" -SootopolisCity_House3_Text_LonesomeTryWorkingHarder: @ 8226C44 +SootopolisCity_House3_Text_LonesomeTryWorkingHarder: .string "Oh, dear…\n" .string "That's a little lonesome.\p" .string "Try working a little harder to get\n" .string "a fan following.$" -SootopolisCity_House3_Text_TrainerFanClubWasWild: @ 8226C9C +SootopolisCity_House3_Text_TrainerFanClubWasWild: .string "Dedicated fans come over from even\n" .string "outside of HOENN.\p" .string "It was really wild when I went to the\n" diff --git a/data/maps/SootopolisCity_House4/scripts.inc b/data/maps/SootopolisCity_House4/scripts.inc index 861da06d20..a1102bdd9f 100644 --- a/data/maps/SootopolisCity_House4/scripts.inc +++ b/data/maps/SootopolisCity_House4/scripts.inc @@ -1,15 +1,15 @@ -SootopolisCity_House4_MapScripts:: @ 8226D15 +SootopolisCity_House4_MapScripts:: .byte 0 -SootopolisCity_House4_EventScript_Man:: @ 8226D16 +SootopolisCity_House4_EventScript_Man:: msgbox SootopolisCity_House4_Text_AncientTreasuresWaitingInSea, MSGBOX_NPC end -SootopolisCity_House4_EventScript_Woman:: @ 8226D1F +SootopolisCity_House4_EventScript_Woman:: msgbox SootopolisCity_House4_Text_StrollUnderwaterWithPokemon, MSGBOX_NPC end -SootopolisCity_House4_EventScript_Azumarill:: @ 8226D28 +SootopolisCity_House4_EventScript_Azumarill:: lock faceplayer waitse @@ -19,7 +19,7 @@ SootopolisCity_House4_EventScript_Azumarill:: @ 8226D28 release end -SootopolisCity_House4_Text_AncientTreasuresWaitingInSea: @ 8226D3B +SootopolisCity_House4_Text_AncientTreasuresWaitingInSea: .string "Listen up, and I'll tell you something\n" .string "good.\p" .string "There's supposed to be an ancient\n" @@ -27,13 +27,13 @@ SootopolisCity_House4_Text_AncientTreasuresWaitingInSea: @ 8226D3B .string "There could be treasures just waiting\n" .string "to be discovered down there.$" -SootopolisCity_House4_Text_StrollUnderwaterWithPokemon: @ 8226DEA +SootopolisCity_House4_Text_StrollUnderwaterWithPokemon: .string "Ancient treasures…\p" .string "It would be nice if they existed, but\n" .string "even if they didn't, it would be so\l" .string "beautiful to take an underwater\l" .string "stroll with my POKéMON.$" -SootopolisCity_House4_Text_Azumarill: @ 8226E7F +SootopolisCity_House4_Text_Azumarill: .string "AZUMARILL: Marurii.$" diff --git a/data/maps/SootopolisCity_House5/scripts.inc b/data/maps/SootopolisCity_House5/scripts.inc index 027a35bcf7..853fc1a1b3 100644 --- a/data/maps/SootopolisCity_House5/scripts.inc +++ b/data/maps/SootopolisCity_House5/scripts.inc @@ -1,20 +1,20 @@ -SootopolisCity_House5_MapScripts:: @ 8226E93 +SootopolisCity_House5_MapScripts:: .byte 0 -SootopolisCity_House5_EventScript_Maniac:: @ 8226E94 +SootopolisCity_House5_EventScript_Maniac:: msgbox SootopolisCity_House5_Text_SootopolisMtPyreConnection, MSGBOX_NPC end -SootopolisCity_House5_EventScript_Girl:: @ 8226E9D +SootopolisCity_House5_EventScript_Girl:: msgbox SootopolisCity_House5_Text_BrotherUsedToStudySea, MSGBOX_NPC end -SootopolisCity_House5_Text_SootopolisMtPyreConnection: @ 8226EA6 +SootopolisCity_House5_Text_SootopolisMtPyreConnection: .string "There appears to be some connection\n" .string "between SOOTOPOLIS and MT. PYRE.\p" .string "My friends and I did some research on\n" .string "it at the lab where I used to work.$" -SootopolisCity_House5_Text_BrotherUsedToStudySea: @ 8226F35 +SootopolisCity_House5_Text_BrotherUsedToStudySea: .string "My big brother used to study the sea.$" diff --git a/data/maps/SootopolisCity_House6/scripts.inc b/data/maps/SootopolisCity_House6/scripts.inc index d622738645..be2dad11f2 100644 --- a/data/maps/SootopolisCity_House6/scripts.inc +++ b/data/maps/SootopolisCity_House6/scripts.inc @@ -1,7 +1,7 @@ -SootopolisCity_House6_MapScripts:: @ 8226F5B +SootopolisCity_House6_MapScripts:: .byte 0 -SootopolisCity_House6_EventScript_Woman:: @ 8226F5C +SootopolisCity_House6_EventScript_Woman:: lock faceplayer goto_if_set FLAG_RECEIVED_WAILMER_DOLL, SootopolisCity_House6_EventScript_ReceivedWailmerDoll @@ -16,40 +16,40 @@ SootopolisCity_House6_EventScript_Woman:: @ 8226F5C release end -SootopolisCity_House6_EventScript_DeclineWailmerDoll:: @ 8226F99 +SootopolisCity_House6_EventScript_DeclineWailmerDoll:: msgbox SootopolisCity_House6_Text_DontWantThisDoll, MSGBOX_DEFAULT release end -SootopolisCity_House6_EventScript_ReceivedWailmerDoll:: @ 8226FA3 +SootopolisCity_House6_EventScript_ReceivedWailmerDoll:: msgbox SootopolisCity_House6_Text_LovePlushDolls, MSGBOX_DEFAULT release end -SootopolisCity_House6_EventScript_NoRoomForWailmerDoll:: @ 8226FAD +SootopolisCity_House6_EventScript_NoRoomForWailmerDoll:: bufferdecorationname 1, DECOR_WAILMER_DOLL msgbox gText_NoRoomLeftForAnother, MSGBOX_DEFAULT msgbox SootopolisCity_House6_Text_IllHoldItForYou, MSGBOX_DEFAULT release end -SootopolisCity_House6_Text_FirstGuestInWhileTakeDoll: @ 8226FC3 +SootopolisCity_House6_Text_FirstGuestInWhileTakeDoll: .string "Hello! You're our first guest in\n" .string "a good while.\p" .string "You've brightened up my day, so I'll\n" .string "give you a big WAILMER DOLL.$" -SootopolisCity_House6_Text_TakeGoodCareOfIt: @ 8227034 +SootopolisCity_House6_Text_TakeGoodCareOfIt: .string "Take good care of it!$" -SootopolisCity_House6_Text_IllHoldItForYou: @ 822704A +SootopolisCity_House6_Text_IllHoldItForYou: .string "Oh, you want it, but not right now?\n" .string "Okay, then I'll hold it for you.$" -SootopolisCity_House6_Text_DontWantThisDoll: @ 822708F +SootopolisCity_House6_Text_DontWantThisDoll: .string "Are you sure?\n" .string "You don't want this DOLL?$" -SootopolisCity_House6_Text_LovePlushDolls: @ 82270B7 +SootopolisCity_House6_Text_LovePlushDolls: .string "I love plush DOLLS!$" diff --git a/data/maps/SootopolisCity_House7/scripts.inc b/data/maps/SootopolisCity_House7/scripts.inc index b7b11208ea..dd6081f249 100644 --- a/data/maps/SootopolisCity_House7/scripts.inc +++ b/data/maps/SootopolisCity_House7/scripts.inc @@ -1,15 +1,15 @@ -SootopolisCity_House7_MapScripts:: @ 82270CB +SootopolisCity_House7_MapScripts:: .byte 0 -SootopolisCity_House7_EventScript_OldMan:: @ 82270CC +SootopolisCity_House7_EventScript_OldMan:: msgbox SootopolisCity_House7_Text_CityFromEruptedVolcano, MSGBOX_NPC end -SootopolisCity_House7_EventScript_PokefanF:: @ 82270D5 +SootopolisCity_House7_EventScript_PokefanF:: msgbox SootopolisCity_House7_Text_CaveMadeToKeepSomething, MSGBOX_NPC end -SootopolisCity_House7_Text_CityFromEruptedVolcano: @ 82270DE +SootopolisCity_House7_Text_CityFromEruptedVolcano: .string "An underwater volcano erupted and\n" .string "forced itself up from the depths.\p" .string "Its crater emerged from the sea and\n" @@ -17,7 +17,7 @@ SootopolisCity_House7_Text_CityFromEruptedVolcano: @ 82270DE .string "That's how SOOTOPOLIS CITY came into\n" .string "being.$" -SootopolisCity_House7_Text_CaveMadeToKeepSomething: @ 8227190 +SootopolisCity_House7_Text_CaveMadeToKeepSomething: .string "The cave that links SOOTOPOLIS and\n" .string "the outside world…\p" .string "It seems as if the cave was made to\n" diff --git a/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc b/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc index 1951a33d55..ab087696e8 100644 --- a/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc +++ b/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc @@ -1,7 +1,7 @@ -SootopolisCity_LotadAndSeedotHouse_MapScripts:: @ 822722A +SootopolisCity_LotadAndSeedotHouse_MapScripts:: .byte 0 -SootopolisCity_LotadAndSeedotHouse_EventScript_SeedotBrother:: @ 822722B +SootopolisCity_LotadAndSeedotHouse_EventScript_SeedotBrother:: special GetSeedotSizeRecordInfo lock faceplayer @@ -21,22 +21,22 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_SeedotBrother:: @ 822722B release end -SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowSeedot:: @ 8227272 +SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowSeedot:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_DontHaveBigSeedot, MSGBOX_DEFAULT release end -SootopolisCity_LotadAndSeedotHouse_EventScript_NotSeedot:: @ 822727C +SootopolisCity_LotadAndSeedotHouse_EventScript_NotSeedot:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_ThatsNotSeedot, MSGBOX_DEFAULT release end -SootopolisCity_LotadAndSeedotHouse_EventScript_SmallSeedot:: @ 8227286 +SootopolisCity_LotadAndSeedotHouse_EventScript_SmallSeedot:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_SeenBiggerSeedot, MSGBOX_DEFAULT release end -SootopolisCity_LotadAndSeedotHouse_EventScript_BigSeedot:: @ 8227290 +SootopolisCity_LotadAndSeedotHouse_EventScript_BigSeedot:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_GoshMightBeBiggerThanLotad, MSGBOX_DEFAULT giveitem ITEM_ELIXIR compare VAR_RESULT, FALSE @@ -45,12 +45,12 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_BigSeedot:: @ 8227290 release end -SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir1:: @ 82272B2 +SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir1:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_BagCrammedFull1, MSGBOX_DEFAULT release end -SootopolisCity_LotadAndSeedotHouse_EventScript_LotadBrother:: @ 82272BC +SootopolisCity_LotadAndSeedotHouse_EventScript_LotadBrother:: special GetLotadSizeRecordInfo lock faceplayer @@ -70,22 +70,22 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_LotadBrother:: @ 82272BC release end -SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowLotad:: @ 8227303 +SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowLotad:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_DontHaveBigLotad, MSGBOX_DEFAULT release end -SootopolisCity_LotadAndSeedotHouse_EventScript_NotLotad:: @ 822730D +SootopolisCity_LotadAndSeedotHouse_EventScript_NotLotad:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_ThatsNotLotad, MSGBOX_DEFAULT release end -SootopolisCity_LotadAndSeedotHouse_EventScript_SmallLotad:: @ 8227317 +SootopolisCity_LotadAndSeedotHouse_EventScript_SmallLotad:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_SeenBiggerLotad, MSGBOX_DEFAULT release end -SootopolisCity_LotadAndSeedotHouse_EventScript_BigLotad:: @ 8227321 +SootopolisCity_LotadAndSeedotHouse_EventScript_BigLotad:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_WowMightBeBiggerThanSeedot, MSGBOX_DEFAULT giveitem ITEM_ELIXIR compare VAR_RESULT, FALSE @@ -94,26 +94,26 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_BigLotad:: @ 8227321 release end -SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir2:: @ 8227343 +SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir2:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_BagCrammedFull2, MSGBOX_DEFAULT release end -SootopolisCity_LotadAndSeedotHouse_EventScript_SeedotSizeRecord:: @ 822734D +SootopolisCity_LotadAndSeedotHouse_EventScript_SeedotSizeRecord:: special GetSeedotSizeRecordInfo lockall msgbox SootopolisCity_LotadAndSeedotHouse_Text_BiggestSeedotInHistory, MSGBOX_DEFAULT releaseall end -SootopolisCity_LotadAndSeedotHouse_EventScript_LotadSizeRecord:: @ 822735B +SootopolisCity_LotadAndSeedotHouse_EventScript_LotadSizeRecord:: special GetLotadSizeRecordInfo lockall msgbox SootopolisCity_LotadAndSeedotHouse_Text_BiggestLotadInHistory, MSGBOX_DEFAULT releaseall end -SootopolisCity_LotadAndSeedotHouse_Text_PleaseShowMeBigSeedot: @ 8227369 +SootopolisCity_LotadAndSeedotHouse_Text_PleaseShowMeBigSeedot: .string "Do you know the POKéMON SEEDOT?\n" .string "It's hardly ever seen in SOOTOPOLIS.\p" .string "Anyway, I love big SEEDOT.\n" @@ -125,7 +125,7 @@ SootopolisCity_LotadAndSeedotHouse_Text_PleaseShowMeBigSeedot: @ 8227369 .string "Huh? Do you have a SEEDOT with you?\n" .string "P-p-please, show me!$" -SootopolisCity_LotadAndSeedotHouse_Text_GoshMightBeBiggerThanLotad: @ 8227480 +SootopolisCity_LotadAndSeedotHouse_Text_GoshMightBeBiggerThanLotad: .string "{STR_VAR_2} inches!\n" .string "Oh, my gosh, this is a big one!\p" .string "It might even beat the big LOTAD\n" @@ -134,35 +134,35 @@ SootopolisCity_LotadAndSeedotHouse_Text_GoshMightBeBiggerThanLotad: @ 8227480 .string "This is my thanks!$" @ Unused -SootopolisCity_LotadAndSeedotHouse_Text_ReceivedPotion1: @ 822750E +SootopolisCity_LotadAndSeedotHouse_Text_ReceivedPotion1: .string "{PLAYER} received a POTION.$" -SootopolisCity_LotadAndSeedotHouse_Text_BagCrammedFull1: @ 8227524 +SootopolisCity_LotadAndSeedotHouse_Text_BagCrammedFull1: .string "Hunh?\n" .string "Your BAG is crammed full.$" -SootopolisCity_LotadAndSeedotHouse_Text_SeenBiggerSeedot: @ 8227544 +SootopolisCity_LotadAndSeedotHouse_Text_SeenBiggerSeedot: .string "{STR_VAR_2} inches, is it?\p" .string "Hmm… I've seen a bigger SEEDOT\n" .string "than this one.$" -SootopolisCity_LotadAndSeedotHouse_Text_ThatsNotSeedot: @ 8227584 +SootopolisCity_LotadAndSeedotHouse_Text_ThatsNotSeedot: .string "Oh, now this is quite something…\n" .string "But it's not a SEEDOT!$" -SootopolisCity_LotadAndSeedotHouse_Text_DontHaveBigSeedot: @ 82275BC +SootopolisCity_LotadAndSeedotHouse_Text_DontHaveBigSeedot: .string "You don't have a big SEEDOT?\n" .string "That's too bad…\p" .string "If you get a big SEEDOT, please\n" .string "come show me.$" -SootopolisCity_LotadAndSeedotHouse_Text_BiggestSeedotInHistory: @ 8227617 +SootopolisCity_LotadAndSeedotHouse_Text_BiggestSeedotInHistory: .string "The biggest SEEDOT in history!\n" .string "{STR_VAR_2}'s {STR_VAR_3}-inch giant!\p" .string "A SEEDOT bigger than a LOTAD\n" .string "always wanted!$" -SootopolisCity_LotadAndSeedotHouse_Text_PleaseShowMeBigLotad: @ 8227676 +SootopolisCity_LotadAndSeedotHouse_Text_PleaseShowMeBigLotad: .string "Do you know the POKéMON LOTAD?\n" .string "It's rarely seen in SOOTOPOLIS.\p" .string "I love, I mean love, big LOTAD!\p" @@ -173,7 +173,7 @@ SootopolisCity_LotadAndSeedotHouse_Text_PleaseShowMeBigLotad: @ 8227676 .string "Hunh? Do you have a LOTAD?\n" .string "P-p-please show me!$" -SootopolisCity_LotadAndSeedotHouse_Text_WowMightBeBiggerThanSeedot: @ 822776C +SootopolisCity_LotadAndSeedotHouse_Text_WowMightBeBiggerThanSeedot: .string "{STR_VAR_2} inches!\n" .string "Wow, that is big!\p" .string "It might be even bigger than the huge\n" @@ -182,29 +182,29 @@ SootopolisCity_LotadAndSeedotHouse_Text_WowMightBeBiggerThanSeedot: @ 822776C .string "This is my thanks!$" @ Unused -SootopolisCity_LotadAndSeedotHouse_Text_ReceivedPotion2: @ 82277F4 +SootopolisCity_LotadAndSeedotHouse_Text_ReceivedPotion2: .string "{PLAYER} received a POTION.$" -SootopolisCity_LotadAndSeedotHouse_Text_BagCrammedFull2: @ 822780A +SootopolisCity_LotadAndSeedotHouse_Text_BagCrammedFull2: .string "Hunh?\n" .string "Your BAG is crammed full.$" -SootopolisCity_LotadAndSeedotHouse_Text_SeenBiggerLotad: @ 822782A +SootopolisCity_LotadAndSeedotHouse_Text_SeenBiggerLotad: .string "{STR_VAR_2} inches?\p" .string "Hmm… I've seen a bigger LOTAD\n" .string "than this one here.$" -SootopolisCity_LotadAndSeedotHouse_Text_ThatsNotLotad: @ 8227867 +SootopolisCity_LotadAndSeedotHouse_Text_ThatsNotLotad: .string "Well, isn't this something!\n" .string "But it's no LOTAD!$" -SootopolisCity_LotadAndSeedotHouse_Text_DontHaveBigLotad: @ 8227896 +SootopolisCity_LotadAndSeedotHouse_Text_DontHaveBigLotad: .string "Don't you have a big LOTAD?\n" .string "How disappointing…\p" .string "If you get a big LOTAD, please\n" .string "come show me!$" -SootopolisCity_LotadAndSeedotHouse_Text_BiggestLotadInHistory: @ 82278F2 +SootopolisCity_LotadAndSeedotHouse_Text_BiggestLotadInHistory: .string "The biggest LOTAD in history!\n" .string "{STR_VAR_2}'s {STR_VAR_3}-inch colossus!\p" .string "A LOTAD bigger than a SEEDOT\n" diff --git a/data/maps/SootopolisCity_Mart/scripts.inc b/data/maps/SootopolisCity_Mart/scripts.inc index f7856916cc..0975abd2b0 100644 --- a/data/maps/SootopolisCity_Mart/scripts.inc +++ b/data/maps/SootopolisCity_Mart/scripts.inc @@ -1,7 +1,7 @@ -SootopolisCity_Mart_MapScripts:: @ 8226794 +SootopolisCity_Mart_MapScripts:: .byte 0 -SootopolisCity_Mart_EventScript_Clerk:: @ 8226795 +SootopolisCity_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -11,7 +11,8 @@ SootopolisCity_Mart_EventScript_Clerk:: @ 8226795 release end -SootopolisCity_Mart_Pokemart: @ 82267AC + .align 2 +SootopolisCity_Mart_Pokemart: .2byte ITEM_ULTRA_BALL .2byte ITEM_HYPER_POTION .2byte ITEM_MAX_POTION @@ -25,7 +26,7 @@ SootopolisCity_Mart_Pokemart: @ 82267AC release end -SootopolisCity_Mart_EventScript_FatMan:: @ 82267C2 +SootopolisCity_Mart_EventScript_FatMan:: lock faceplayer compare VAR_SKY_PILLAR_STATE, 2 @@ -35,12 +36,12 @@ SootopolisCity_Mart_EventScript_FatMan:: @ 82267C2 release end -SootopolisCity_Mart_EventScript_FatManNoLegendaries:: @ 82267E2 +SootopolisCity_Mart_EventScript_FatManNoLegendaries:: msgbox SootopolisCity_Mart_Text_PPUpIsGreat, MSGBOX_DEFAULT release end -SootopolisCity_Mart_EventScript_Gentleman:: @ 82267EC +SootopolisCity_Mart_EventScript_Gentleman:: lock faceplayer compare VAR_SKY_PILLAR_STATE, 2 @@ -50,29 +51,29 @@ SootopolisCity_Mart_EventScript_Gentleman:: @ 82267EC release end -SootopolisCity_Mart_EventScript_GentlemanNoLegendaries:: @ 822680C +SootopolisCity_Mart_EventScript_GentlemanNoLegendaries:: msgbox SootopolisCity_Mart_Text_FullRestoreItemOfDreams, MSGBOX_DEFAULT release end -SootopolisCity_Mart_Text_PPUpIsGreat: @ 8226816 +SootopolisCity_Mart_Text_PPUpIsGreat: .string "PP UP is great!\p" .string "It raises the POWER POINTS, the PP,\n" .string "of a POKéMON move.$" -SootopolisCity_Mart_Text_TooScaryOutside: @ 822685D +SootopolisCity_Mart_Text_TooScaryOutside: .string "What…\n" .string "What is happening?\p" .string "I really want to know, but it's too\n" .string "scary to go outside.$" -SootopolisCity_Mart_Text_FullRestoreItemOfDreams: @ 82268AF +SootopolisCity_Mart_Text_FullRestoreItemOfDreams: .string "Do you know FULL RESTORE?\p" .string "Full restoration of HP!\n" .string "Eradication of all status problems!\p" .string "It's truly an item of your dreams!$" -SootopolisCity_Mart_Text_DidSomethingAwaken: @ 8226928 +SootopolisCity_Mart_Text_DidSomethingAwaken: .string "This weather…\n" .string "Did something awaken?$" diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index 30a755a0f8..6b1bc0eb56 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -1,11 +1,11 @@ .set LOCALID_OLD_MAN, 1 -SootopolisCity_MysteryEventsHouse_1F_MapScripts:: @ 8227953 +SootopolisCity_MysteryEventsHouse_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SootopolisCity_MysteryEventsHouse_1F_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, SootopolisCity_MysteryEventsHouse_1F_OnFrame .byte 0 -SootopolisCity_MysteryEventsHouse_1F_OnTransition: @ 822795E +SootopolisCity_MysteryEventsHouse_1F_OnTransition: frontier_checkvisittrainer compare VAR_RESULT, 0 call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_SetTrainerVisitingLayout @@ -13,25 +13,25 @@ SootopolisCity_MysteryEventsHouse_1F_OnTransition: @ 822795E call_if_ne SootopolisCity_MysteryEventsHouse_1F_EventScript_MoveOldManToDoor end -SootopolisCity_MysteryEventsHouse_1F_EventScript_SetTrainerVisitingLayout:: @ 822797D +SootopolisCity_MysteryEventsHouse_1F_EventScript_SetTrainerVisitingLayout:: setvar VAR_TEMP_1, 1 setobjectxyperm LOCALID_OLD_MAN, 3, 2 setobjectmovementtype LOCALID_OLD_MAN, MOVEMENT_TYPE_FACE_DOWN setmaplayoutindex LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F_STAIRS_UNBLOCKED return -SootopolisCity_MysteryEventsHouse_1F_EventScript_MoveOldManToDoor:: @ 8227991 +SootopolisCity_MysteryEventsHouse_1F_EventScript_MoveOldManToDoor:: setobjectxyperm LOCALID_OLD_MAN, 2, 2 setobjectmovementtype LOCALID_OLD_MAN, MOVEMENT_TYPE_FACE_RIGHT return -SootopolisCity_MysteryEventsHouse_1F_OnFrame: @ 822799D +SootopolisCity_MysteryEventsHouse_1F_OnFrame: map_script_2 VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 1, SootopolisCity_MysteryEventsHouse_1F_EventScript_OldManCommentOnBattle map_script_2 VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 2, SootopolisCity_MysteryEventsHouse_1F_EventScript_OldManCommentOnBattle map_script_2 VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 3, SootopolisCity_MysteryEventsHouse_1F_EventScript_OldManCommentOnBattle .2byte 0 -SootopolisCity_MysteryEventsHouse_1F_EventScript_OldManCommentOnBattle:: @ 82279B7 +SootopolisCity_MysteryEventsHouse_1F_EventScript_OldManCommentOnBattle:: lockall applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerExitStairs waitmovement 0 @@ -51,28 +51,28 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_OldManCommentOnBattle:: @ 82279 releaseall end -SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleWonComment:: @ 8227A04 +SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleWonComment:: msgbox SootopolisCity_MysteryEventsHouse_1F_Text_ThatWasSuperlative, MSGBOX_DEFAULT return -SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleLostComment:: @ 8227A0D +SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleLostComment:: msgbox SootopolisCity_MysteryEventsHouse_1F_Text_TooBadForYou, MSGBOX_DEFAULT return -SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleTiedComment:: @ 8227A16 +SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleTiedComment:: msgbox SootopolisCity_MysteryEventsHouse_1F_Text_BrilliantStandoff, MSGBOX_DEFAULT return -SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerExitStairs: @ 8227A1F +SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerExitStairs: walk_down step_end -SootopolisCity_MysteryEventsHouse_1F_Movement_OldManWalkBehindPlayer: @ 8227A21 +SootopolisCity_MysteryEventsHouse_1F_Movement_OldManWalkBehindPlayer: walk_right walk_in_place_fastest_down step_end -SootopolisCity_MysteryEventsHouse_1F_EventScript_OldMan:: @ 8227A24 +SootopolisCity_MysteryEventsHouse_1F_EventScript_OldMan:: lock faceplayer frontier_checkvisittrainer @@ -84,12 +84,12 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_OldMan:: @ 8227A24 release end -SootopolisCity_MysteryEventsHouse_1F_EventScript_InvalidVisitingTrainer:: @ 8227A4E +SootopolisCity_MysteryEventsHouse_1F_EventScript_InvalidVisitingTrainer:: msgbox SootopolisCity_MysteryEventsHouse_1F_Text_OnlyAmusementWatchingBattles, MSGBOX_DEFAULT release end -SootopolisCity_MysteryEventsHouse_1F_EventScript_TrainerVisiting:: @ 8227A58 +SootopolisCity_MysteryEventsHouse_1F_EventScript_TrainerVisiting:: special SavePlayerParty special BufferEReaderTrainerName msgbox SootopolisCity_MysteryEventsHouse_1F_Text_ChallengeVisitingTrainer, MSGBOX_YESNO @@ -120,124 +120,124 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_TrainerVisiting:: @ 8227A58 release end -SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle:: @ 8227AE2 +SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle:: special LoadPlayerParty msgbox SootopolisCity_MysteryEventsHouse_1F_Text_YouWontBattle, MSGBOX_DEFAULT release end -SootopolisCity_MysteryEventsHouse_1F_EventScript_ChooseParty:: @ 8227AEF +SootopolisCity_MysteryEventsHouse_1F_EventScript_ChooseParty:: msgbox SootopolisCity_MysteryEventsHouse_1F_Text_KeepItTo3On3, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate return -SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementNorth:: @ 8227AFE +SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementNorth:: applymovement VAR_LAST_TALKED, SootopolisCity_MysteryEventsHouse_1F_Movement_OldManMoveAsideLeft applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementNorth waitmovement 0 return -SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementEast:: @ 8227B10 +SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementEast:: applymovement VAR_LAST_TALKED, SootopolisCity_MysteryEventsHouse_1F_Movement_OldManMoveAsideRight applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementEast waitmovement 0 return -SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementWest:: @ 8227B22 +SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementWest:: applymovement VAR_LAST_TALKED, SootopolisCity_MysteryEventsHouse_1F_Movement_OldManMoveAsideLeft applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementWest waitmovement 0 return -SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementNorth: @ 8227B34 +SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementNorth: delay_16 walk_up walk_up step_end -SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementEast: @ 8227B38 +SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementEast: delay_16 walk_right walk_up step_end -SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementWest: @ 8227B3C +SootopolisCity_MysteryEventsHouse_1F_Movement_PlayerEnterBasementWest: delay_16 walk_left walk_up step_end -SootopolisCity_MysteryEventsHouse_1F_Movement_OldManMoveAsideLeft: @ 8227B40 +SootopolisCity_MysteryEventsHouse_1F_Movement_OldManMoveAsideLeft: walk_left walk_in_place_fastest_right step_end -SootopolisCity_MysteryEventsHouse_1F_Movement_OldManMoveAsideRight: @ 8227B43 +SootopolisCity_MysteryEventsHouse_1F_Movement_OldManMoveAsideRight: walk_right walk_in_place_fastest_left step_end -SootopolisCity_MysteryEventsHouse_1F_Text_OnlyAmusementWatchingBattles: @ 8227B46 +SootopolisCity_MysteryEventsHouse_1F_Text_OnlyAmusementWatchingBattles: .string "When I was young, I traveled the world\n" .string "as a POKéMON TRAINER.\p" .string "Now that I've become an old buzzard,\n" .string "my only amusement is watching young\l" .string "TRAINERS battle.$" -SootopolisCity_MysteryEventsHouse_1F_Text_DoorAppearsToBeLocked: @ 8227BDD +SootopolisCity_MysteryEventsHouse_1F_Text_DoorAppearsToBeLocked: .string "The door appears to be locked.$" -SootopolisCity_MysteryEventsHouse_1F_Text_ChallengeVisitingTrainer: @ 8227BFC +SootopolisCity_MysteryEventsHouse_1F_Text_ChallengeVisitingTrainer: .string "A TRAINER named {STR_VAR_1}\n" .string "is visiting my home.\p" .string "Would you like to challenge\n" .string "{STR_VAR_1}?$" -SootopolisCity_MysteryEventsHouse_1F_Text_YouWontBattle: @ 8227C44 +SootopolisCity_MysteryEventsHouse_1F_Text_YouWontBattle: .string "You won't battle? I'm disappointed\n" .string "that I can't see you battle…$" -SootopolisCity_MysteryEventsHouse_1F_Text_KeepItTo3On3: @ 8227C84 +SootopolisCity_MysteryEventsHouse_1F_Text_KeepItTo3On3: .string "Oh, good, good!\p" .string "But my house isn't all that sturdy.\p" .string "Could I ask you to keep it down to\n" .string "a 3-on-3 match?$" -SootopolisCity_MysteryEventsHouse_1F_Text_SaveProgressBeforeBattle: @ 8227CEB +SootopolisCity_MysteryEventsHouse_1F_Text_SaveProgressBeforeBattle: .string "Before you two battle, you should\n" .string "save your progress.$" -SootopolisCity_MysteryEventsHouse_1F_Text_HopeToSeeGoodMatch: @ 8227D21 +SootopolisCity_MysteryEventsHouse_1F_Text_HopeToSeeGoodMatch: .string "I hope to see a good match!$" @ Unused -SootopolisCity_MysteryEventsHouse_1F_Text_StrVar1Tie: @ 8227D3D +SootopolisCity_MysteryEventsHouse_1F_Text_StrVar1Tie: .string "{STR_VAR_1}$" -SootopolisCity_MysteryEventsHouse_B1F_Text_MatchEndedUpDraw: @ 8227D40 +SootopolisCity_MysteryEventsHouse_B1F_Text_MatchEndedUpDraw: .string "The match ended up a draw.$" -SootopolisCity_MysteryEventsHouse_1F_Text_BrilliantStandoff: @ 8227D5B +SootopolisCity_MysteryEventsHouse_1F_Text_BrilliantStandoff: .string "So, it became a standoff.\p" .string "It was a brilliant match in which\n" .string "neither side conceded a step!$" @ Unused -SootopolisCity_MysteryEventsHouse_1F_Text_StrVar1Won: @ 8227DB5 +SootopolisCity_MysteryEventsHouse_1F_Text_StrVar1Won: .string "{STR_VAR_1}$" -SootopolisCity_MysteryEventsHouse_1F_Text_ThatWasSuperlative: @ 8227DB8 +SootopolisCity_MysteryEventsHouse_1F_Text_ThatWasSuperlative: .string "That was superlative!\p" .string "Why, it was like seeing myself in\n" .string "my youth again!$" @ Unused -SootopolisCity_MysteryEventsHouse_1F_Text_StrVar1Lost: @ 8227E00 +SootopolisCity_MysteryEventsHouse_1F_Text_StrVar1Lost: .string "{STR_VAR_1}$" -SootopolisCity_MysteryEventsHouse_1F_Text_TooBadForYou: @ 8227E03 +SootopolisCity_MysteryEventsHouse_1F_Text_TooBadForYou: .string "Ah, too bad for you!\p" .string "But it was a good match.\n" .string "I hope you can win next time.$" diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc index 992cef5a30..f0ebbf516f 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc @@ -1,17 +1,17 @@ -SootopolisCity_MysteryEventsHouse_B1F_MapScripts:: @ 8227E4F +SootopolisCity_MysteryEventsHouse_B1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SootopolisCity_MysteryEventsHouse_B1F_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, SootopolisCity_MysteryEventsHouse_B1F_OnFrame .byte 0 -SootopolisCity_MysteryEventsHouse_B1F_OnTransition: @ 8227E5A +SootopolisCity_MysteryEventsHouse_B1F_OnTransition: special SetEReaderTrainerGfxId end -SootopolisCity_MysteryEventsHouse_B1F_OnFrame: @ 8227E5E +SootopolisCity_MysteryEventsHouse_B1F_OnFrame: map_script_2 VAR_TEMP_1, 0, SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleVisitingTrainer .2byte 0 -SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleVisitingTrainer:: @ 8227E68 +SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleVisitingTrainer:: lockall applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_MysteryEventsHouse_B1F_Movement_PlayerEnterBasement waitmovement 0 @@ -39,26 +39,26 @@ SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleVisitingTrainer:: @ 8227 releaseall end -SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleTie:: @ 8227ECF +SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleTie:: setvar VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 3 msgbox SootopolisCity_MysteryEventsHouse_B1F_Text_MatchEndedUpDraw, MSGBOX_DEFAULT return -SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleWon:: @ 8227EDD +SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleWon:: setvar VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 1 special ShowFieldMessageStringVar4 waitmessage waitbuttonpress return -SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleLost:: @ 8227EE8 +SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleLost:: setvar VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 2 special ShowFieldMessageStringVar4 waitmessage waitbuttonpress return -SootopolisCity_MysteryEventsHouse_B1F_Movement_PlayerEnterBasement: @ 8227EF3 +SootopolisCity_MysteryEventsHouse_B1F_Movement_PlayerEnterBasement: walk_down walk_down walk_down @@ -66,7 +66,7 @@ SootopolisCity_MysteryEventsHouse_B1F_Movement_PlayerEnterBasement: @ 8227EF3 walk_right step_end -SootopolisCity_MysteryEventsHouse_B1F_Movement_PlayerExitBasement: @ 8227EF9 +SootopolisCity_MysteryEventsHouse_B1F_Movement_PlayerExitBasement: walk_left walk_left walk_up diff --git a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc index 712fd166b8..9e017861b7 100644 --- a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_NURSE, 1 -SootopolisCity_PokemonCenter_1F_MapScripts:: @ 82264F1 +SootopolisCity_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SootopolisCity_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -SootopolisCity_PokemonCenter_1F_OnTransition: @ 82264FC +SootopolisCity_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_SOOTOPOLIS_CITY end -SootopolisCity_PokemonCenter_1F_EventScript_Nurse:: @ 8226500 +SootopolisCity_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -17,7 +17,7 @@ SootopolisCity_PokemonCenter_1F_EventScript_Nurse:: @ 8226500 release end -SootopolisCity_PokemonCenter_1F_EventScript_Gentleman:: @ 822650E +SootopolisCity_PokemonCenter_1F_EventScript_Gentleman:: lock faceplayer compare VAR_SKY_PILLAR_STATE, 2 @@ -27,12 +27,12 @@ SootopolisCity_PokemonCenter_1F_EventScript_Gentleman:: @ 822650E release end -SootopolisCity_PokemonCenter_1F_EventScript_GentlemanNoLegendaries:: @ 822652E +SootopolisCity_PokemonCenter_1F_EventScript_GentlemanNoLegendaries:: msgbox SootopolisCity_PokemonCenter_1F_Text_WallaceToughestInHoenn, MSGBOX_DEFAULT release end -SootopolisCity_PokemonCenter_1F_EventScript_Woman:: @ 8226538 +SootopolisCity_PokemonCenter_1F_EventScript_Woman:: lock faceplayer compare VAR_SKY_PILLAR_STATE, 2 @@ -42,12 +42,12 @@ SootopolisCity_PokemonCenter_1F_EventScript_Woman:: @ 8226538 release end -SootopolisCity_PokemonCenter_1F_EventScript_WomanNoLegendaries:: @ 8226558 +SootopolisCity_PokemonCenter_1F_EventScript_WomanNoLegendaries:: msgbox SootopolisCity_PokemonCenter_1F_Text_AlwaysBeFriendsWithPokemon, MSGBOX_DEFAULT release end -SootopolisCity_PokemonCenter_1F_Text_WallaceToughestInHoenn: @ 8226562 +SootopolisCity_PokemonCenter_1F_Text_WallaceToughestInHoenn: .string "WALLACE is rumored to be the toughest\n" .string "TRAINER in the whole HOENN region.\p" .string "This town's GYM is led by the TRAINER\n" @@ -56,19 +56,19 @@ SootopolisCity_PokemonCenter_1F_Text_WallaceToughestInHoenn: @ 8226562 .string "even stronger than WALLACE's mentor.\p" .string "How strong could they be?$" -SootopolisCity_PokemonCenter_1F_Text_EveryoneTakenRefuge: @ 822664B +SootopolisCity_PokemonCenter_1F_Text_EveryoneTakenRefuge: .string "Everyone in town has taken refuge\n" .string "and won't come out of their homes.\p" .string "Even I would rather not venture\n" .string "outside.$" -SootopolisCity_PokemonCenter_1F_Text_AlwaysBeFriendsWithPokemon: @ 82266B9 +SootopolisCity_PokemonCenter_1F_Text_AlwaysBeFriendsWithPokemon: .string "Whenever, wherever, and whatever\n" .string "happens, I will always be friends with\l" .string "POKéMON.\p" .string "Because it's fun to be with POKéMON!$" -SootopolisCity_PokemonCenter_1F_Text_ArentPokemonOurFriends: @ 822672F +SootopolisCity_PokemonCenter_1F_Text_ArentPokemonOurFriends: .string "Aren't POKéMON our friends?\p" .string "Why are they going wild this way?$" diff --git a/data/maps/SootopolisCity_PokemonCenter_2F/scripts.inc b/data/maps/SootopolisCity_PokemonCenter_2F/scripts.inc index 57d21cbb58..fb88a863c1 100644 --- a/data/maps/SootopolisCity_PokemonCenter_2F/scripts.inc +++ b/data/maps/SootopolisCity_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -SootopolisCity_PokemonCenter_2F_MapScripts:: @ 822676D +SootopolisCity_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ SootopolisCity_PokemonCenter_2F_MapScripts:: @ 822676D .byte 0 @ The below 3 are unused and leftover from RS -SootopolisCity_PokemonCenter_2F_EventScript_Colosseum:: @ 8226782 +SootopolisCity_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -SootopolisCity_PokemonCenter_2F_EventScript_TradeCenter:: @ 8226788 +SootopolisCity_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -SootopolisCity_PokemonCenter_2F_EventScript_RecordCorner:: @ 822678E +SootopolisCity_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/SouthernIsland_Exterior/scripts.inc b/data/maps/SouthernIsland_Exterior/scripts.inc index 1ba4171206..3769f164ce 100644 --- a/data/maps/SouthernIsland_Exterior/scripts.inc +++ b/data/maps/SouthernIsland_Exterior/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_SAILOR, 1 .set LOCALID_SS_TIDAL, 2 -SouthernIsland_Exterior_MapScripts:: @ 82429C8 +SouthernIsland_Exterior_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SouthernIsland_Exterior_OnTransition .byte 0 -SouthernIsland_Exterior_OnTransition: @ 82429CE +SouthernIsland_Exterior_OnTransition: setflag FLAG_LANDMARK_SOUTHERN_ISLAND end -SouthernIsland_Exterior_EventScript_Sailor:: @ 82429D2 +SouthernIsland_Exterior_EventScript_Sailor:: lock faceplayer msgbox EventTicket_Text_SouthernIslandSailBack, MSGBOX_YESNO @@ -28,31 +28,31 @@ SouthernIsland_Exterior_EventScript_Sailor:: @ 82429D2 release end -SouthernIsland_Exterior_EventScript_AsYouLike:: @ 8242A17 +SouthernIsland_Exterior_EventScript_AsYouLike:: msgbox EventTicket_Text_AsYouLike, MSGBOX_DEFAULT release end -Ferry_EventScript_DepartIslandSouth:: @ 8242A21 +Ferry_EventScript_DepartIslandSouth:: applymovement OBJ_EVENT_ID_PLAYER, Ferry_EventScript_DepartIslandBoardSouth waitmovement 0 return -Ferry_EventScript_DepartIslandWest:: @ 8242A2C +Ferry_EventScript_DepartIslandWest:: applymovement OBJ_EVENT_ID_PLAYER, Ferry_EventScript_DepartIslandBoardWest waitmovement 0 return -Ferry_EventScript_DepartIslandBoardSouth: @ 8242A37 +Ferry_EventScript_DepartIslandBoardSouth: walk_down step_end -Ferry_EventScript_DepartIslandBoardWest: @ 8242A39 +Ferry_EventScript_DepartIslandBoardWest: walk_left walk_in_place_fastest_down step_end -SouthernIsland_Exterior_EventScript_Sign:: @ 8242A3C +SouthernIsland_Exterior_EventScript_Sign:: msgbox SouthernIsland_Exterior_Text_Sign, MSGBOX_SIGN end diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc index 0dd8cc3033..20ed1e58d5 100644 --- a/data/maps/SouthernIsland_Interior/scripts.inc +++ b/data/maps/SouthernIsland_Interior/scripts.inc @@ -1,22 +1,22 @@ .set LOCALID_LATI, 2 -SouthernIsland_Interior_MapScripts:: @ 8242A45 +SouthernIsland_Interior_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, SouthernIsland_Interior_OnResume map_script MAP_SCRIPT_ON_TRANSITION, SouthernIsland_Interior_OnTransition .byte 0 -SouthernIsland_Interior_OnResume: @ 8242A50 +SouthernIsland_Interior_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, SouthernIsland_Interior_EventScript_TryRemoveLati end -SouthernIsland_Interior_EventScript_TryRemoveLati:: @ 8242A5A +SouthernIsland_Interior_EventScript_TryRemoveLati:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject LOCALID_LATI return -SouthernIsland_Interior_OnTransition: @ 8242A6E +SouthernIsland_Interior_OnTransition: compare VAR_ROAMER_POKEMON, 0 call_if_eq SouthernIsland_Interior_EventScript_SetUpLatios compare VAR_ROAMER_POKEMON, 0 @@ -24,17 +24,17 @@ SouthernIsland_Interior_OnTransition: @ 8242A6E call SouthernIsland_Interior_EventScript_SetUpPlayerGfx end -SouthernIsland_Interior_EventScript_SetUpLatios:: @ 8242A8A +SouthernIsland_Interior_EventScript_SetUpLatios:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_LATIOS setvar VAR_TEMP_4, SPECIES_LATIOS return -SouthernIsland_Interior_EventScript_SetUpLatias:: @ 8242A95 +SouthernIsland_Interior_EventScript_SetUpLatias:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_LATIAS setvar VAR_TEMP_4, SPECIES_LATIAS return -SouthernIsland_Interior_EventScript_SetUpPlayerGfx:: @ 8242AA0 +SouthernIsland_Interior_EventScript_SetUpPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq SouthernIsland_Interior_EventScript_SetBrendanGfx @@ -42,21 +42,21 @@ SouthernIsland_Interior_EventScript_SetUpPlayerGfx:: @ 8242AA0 goto_if_eq SouthernIsland_Interior_EventScript_SetMayGfx end -SouthernIsland_Interior_EventScript_SetBrendanGfx:: @ 8242AB8 +SouthernIsland_Interior_EventScript_SetBrendanGfx:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -SouthernIsland_Interior_EventScript_SetMayGfx:: @ 8242ABE +SouthernIsland_Interior_EventScript_SetMayGfx:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -SouthernIsland_Interior_EventScript_TryLatiEncounter:: @ 8242AC4 +SouthernIsland_Interior_EventScript_TryLatiEncounter:: lockall setvar VAR_0x8008, 12 goto SouthernIsland_Interior_EventScript_Lati end -SouthernIsland_Interior_EventScript_Lati:: @ 8242AD0 +SouthernIsland_Interior_EventScript_Lati:: goto_if_set FLAG_TEMP_2, SouthernIsland_Interior_EventScript_Sign goto_if_set FLAG_DEFEATED_LATIAS_OR_LATIOS, SouthernIsland_Interior_EventScript_Sign goto_if_set FLAG_CAUGHT_LATIAS_OR_LATIOS, SouthernIsland_Interior_EventScript_Sign @@ -98,43 +98,43 @@ SouthernIsland_Interior_EventScript_Lati:: @ 8242AD0 releaseall end -SouthernIsland_Interior_EventScript_LatiDefeated:: @ 8242B81 +SouthernIsland_Interior_EventScript_LatiDefeated:: setflag FLAG_DEFEATED_LATIAS_OR_LATIOS copyvar VAR_0x8004, VAR_TEMP_4 goto Common_EventScript_LegendaryFlewAway end -SouthernIsland_Interior_EventScript_RanFromLati:: @ 8242B8F +SouthernIsland_Interior_EventScript_RanFromLati:: copyvar VAR_0x8004, VAR_TEMP_4 goto Common_EventScript_LegendaryFlewAway end -SouthernIsland_Interior_EventScript_Sign:: @ 8242B9A +SouthernIsland_Interior_EventScript_Sign:: msgbox SouthernIsland_Interior_Text_Sign, MSGBOX_DEFAULT releaseall end -SouthernIsland_Interior_EventScript_SetLatiosBattleVars:: @ 8242BA4 +SouthernIsland_Interior_EventScript_SetLatiosBattleVars:: setvar VAR_0x8004, SPECIES_LATIOS setvar VAR_0x8005, 50 @ level setvar VAR_0x8006, ITEM_SOUL_DEW - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon return -SouthernIsland_Interior_EventScript_SetLatiasBattleVars:: @ 8242BB7 +SouthernIsland_Interior_EventScript_SetLatiasBattleVars:: setvar VAR_0x8004, SPECIES_LATIAS setvar VAR_0x8005, 50 @ level setvar VAR_0x8006, ITEM_SOUL_DEW - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon return -SouthernIsland_Interior_Movement_CameraPanUp: @ 8242BCA +SouthernIsland_Interior_Movement_CameraPanUp: walk_up walk_up walk_up step_end -SouthernIsland_Interior_Movement_CameraPanDown: @ 8242BCE +SouthernIsland_Interior_Movement_CameraPanDown: delay_16 delay_16 delay_16 @@ -148,7 +148,7 @@ SouthernIsland_Interior_Movement_CameraPanDown: @ 8242BCE walk_in_place_fastest_up step_end -SouthernIsland_Interior_Movement_LatiApproach: @ 8242BDA +SouthernIsland_Interior_Movement_LatiApproach: walk_down walk_down walk_down diff --git a/data/maps/TerraCave_End/map.json b/data/maps/TerraCave_End/map.json index b186bddb28..e5fef758b7 100644 --- a/data/maps/TerraCave_End/map.json +++ b/data/maps/TerraCave_End/map.json @@ -15,7 +15,7 @@ "connections": null, "object_events": [ { - "graphics_id": "OBJ_EVENT_GFX_GROUDON_1", + "graphics_id": "OBJ_EVENT_GFX_GROUDON_FRONT", "x": 17, "y": 22, "elevation": 1, diff --git a/data/maps/TerraCave_End/scripts.inc b/data/maps/TerraCave_End/scripts.inc index 9683ca6073..2b35b3c513 100644 --- a/data/maps/TerraCave_End/scripts.inc +++ b/data/maps/TerraCave_End/scripts.inc @@ -1,31 +1,31 @@ .set LOCALID_GROUDON, 1 -TerraCave_End_MapScripts:: @ 823B0B0 +TerraCave_End_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, TerraCave_End_OnResume map_script MAP_SCRIPT_ON_TRANSITION, TerraCave_End_OnTransition .byte 0 -TerraCave_End_OnResume: @ 823B0BB +TerraCave_End_OnResume: call_if_set FLAG_SYS_CTRL_OBJ_DELETE, TerraCave_End_EventScript_TryRemoveGroudon end -TerraCave_End_EventScript_TryRemoveGroudon:: @ 823B0C5 +TerraCave_End_EventScript_TryRemoveGroudon:: specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_CAUGHT goto_if_ne Common_EventScript_NopReturn removeobject LOCALID_GROUDON return -TerraCave_End_OnTransition: @ 823B0D9 +TerraCave_End_OnTransition: call_if_unset FLAG_DEFEATED_GROUDON, TerraCave_End_EventScript_ShowGroudon end -TerraCave_End_EventScript_ShowGroudon:: @ 823B0E3 +TerraCave_End_EventScript_ShowGroudon:: clearflag FLAG_HIDE_TERRA_CAVE_GROUDON setvar VAR_TEMP_1, 1 return -TerraCave_End_EventScript_Groudon:: @ 823B0EC +TerraCave_End_EventScript_Groudon:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp waitmovement 0 @@ -54,18 +54,18 @@ TerraCave_End_EventScript_Groudon:: @ 823B0EC releaseall end -TerraCave_End_EventScript_DefeatedGroudon:: @ 823B155 +TerraCave_End_EventScript_DefeatedGroudon:: setvar VAR_SHOULD_END_ABNORMAL_WEATHER, 1 setflag FLAG_DEFEATED_GROUDON goto Common_EventScript_RemoveStaticPokemon end -TerraCave_End_EventScript_RanFromGroudon:: @ 823B163 +TerraCave_End_EventScript_RanFromGroudon:: setvar VAR_0x8004, SPECIES_GROUDON goto Common_EventScript_LegendaryFlewAway end -TerraCave_End_Movement_GroudonApproach: @ 823B16E +TerraCave_End_Movement_GroudonApproach: init_affine_anim walk_down_start_affine delay_16 diff --git a/data/maps/TerraCave_Entrance/scripts.inc b/data/maps/TerraCave_Entrance/scripts.inc index 70aa9cdfaa..203d5fc026 100644 --- a/data/maps/TerraCave_Entrance/scripts.inc +++ b/data/maps/TerraCave_Entrance/scripts.inc @@ -1,8 +1,8 @@ -TerraCave_Entrance_MapScripts:: @ 823B0A6 +TerraCave_Entrance_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, TerraCave_Entrance_OnTransition .byte 0 -TerraCave_Entrance_OnTransition: @ 823B0AC +TerraCave_Entrance_OnTransition: setflag FLAG_ARRIVED_AT_TERRA_CAVE_ENTRANCE end diff --git a/data/maps/TradeCenter/scripts.inc b/data/maps/TradeCenter/scripts.inc index e0e0e7d1ec..9727682192 100644 --- a/data/maps/TradeCenter/scripts.inc +++ b/data/maps/TradeCenter/scripts.inc @@ -1,3 +1,3 @@ -TradeCenter_MapScripts:: @ 823B77E +TradeCenter_MapScripts:: .byte 0 diff --git a/data/maps/TrainerHill_1F/scripts.inc b/data/maps/TrainerHill_1F/scripts.inc index 59f90b8bd3..6fba7a3b81 100644 --- a/data/maps/TrainerHill_1F/scripts.inc +++ b/data/maps/TrainerHill_1F/scripts.inc @@ -1,4 +1,4 @@ -TrainerHill_1F_MapScripts:: @ 8268F71 +TrainerHill_1F_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, TrainerHill_OnResume map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, TrainerHill_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerHill_OnFrame diff --git a/data/maps/TrainerHill_2F/scripts.inc b/data/maps/TrainerHill_2F/scripts.inc index 0e8775cd58..aa5e46db59 100644 --- a/data/maps/TrainerHill_2F/scripts.inc +++ b/data/maps/TrainerHill_2F/scripts.inc @@ -1,4 +1,4 @@ -TrainerHill_2F_MapScripts:: @ 8268F81 +TrainerHill_2F_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, TrainerHill_OnResume map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, TrainerHill_OnWarp map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerHill_OnFrame diff --git a/data/maps/TrainerHill_3F/scripts.inc b/data/maps/TrainerHill_3F/scripts.inc index eee6bd99d9..74d9da2f32 100644 --- a/data/maps/TrainerHill_3F/scripts.inc +++ b/data/maps/TrainerHill_3F/scripts.inc @@ -1,4 +1,4 @@ -TrainerHill_3F_MapScripts:: @ 8268F91 +TrainerHill_3F_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, TrainerHill_OnResume map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerHill_OnFrame .byte 0 diff --git a/data/maps/TrainerHill_4F/scripts.inc b/data/maps/TrainerHill_4F/scripts.inc index 74ce0bf082..74676e3b2f 100644 --- a/data/maps/TrainerHill_4F/scripts.inc +++ b/data/maps/TrainerHill_4F/scripts.inc @@ -1,4 +1,4 @@ -TrainerHill_4F_MapScripts:: @ 8268F9C +TrainerHill_4F_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, TrainerHill_OnResume map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerHill_OnFrame .byte 0 diff --git a/data/maps/TrainerHill_Elevator/scripts.inc b/data/maps/TrainerHill_Elevator/scripts.inc index 2b3400418a..f4ebc7ea91 100644 --- a/data/maps/TrainerHill_Elevator/scripts.inc +++ b/data/maps/TrainerHill_Elevator/scripts.inc @@ -1,17 +1,17 @@ .set LOCALID_ATTENDANT, 1 -TrainerHill_Elevator_MapScripts:: @ 826934F +TrainerHill_Elevator_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerHill_Elevator_OnFrame .byte 0 -TrainerHill_Elevator_OnFrame: @ 8269355 +TrainerHill_Elevator_OnFrame: map_script_2 VAR_TEMP_4, 0, TrainerHill_Elevator_EventScript_EnterElevator .2byte 0 -TrainerHill_Elevator_EventScript_Attendant:: @ 826935F +TrainerHill_Elevator_EventScript_Attendant:: end -TrainerHill_Elevator_EventScript_ExitToRoof:: @ 8269360 +TrainerHill_Elevator_EventScript_ExitToRoof:: applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Elevator_Movement_PlayerExitElevatorToRoof waitmovement 0 releaseall @@ -19,7 +19,7 @@ TrainerHill_Elevator_EventScript_ExitToRoof:: @ 8269360 waitstate end -TrainerHill_Elevator_EventScript_EnterElevator:: @ 8269375 +TrainerHill_Elevator_EventScript_EnterElevator:: applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Elevator_Movement_PlayerApproachAttendant waitmovement 0 applymovement LOCALID_ATTENDANT, TrainerHill_Elevator_Movement_AttendantFacePlayer @@ -42,50 +42,50 @@ TrainerHill_Elevator_EventScript_EnterElevator:: @ 8269375 end @ Unused -TrainerHill_Elevator_EventScript_ExitFloorSelect:: @ 82693CE +TrainerHill_Elevator_EventScript_ExitFloorSelect:: goto TrainerHill_Elevator_EventScript_CloseFloorSelect end @ Functionally unused -TrainerHill_Elevator_EventScript_CloseFloorSelect:: @ 82693D4 +TrainerHill_Elevator_EventScript_CloseFloorSelect:: special CloseDeptStoreElevatorWindow releaseall end -TrainerHill_Elevator_EventScript_MoveElevator:: @ 82693D9 +TrainerHill_Elevator_EventScript_MoveElevator:: waitse special MoveElevator waitstate return -TrainerHill_Elevator_Movement_PlayerMoveToCenterOfElevator: @ 82693DF +TrainerHill_Elevator_Movement_PlayerMoveToCenterOfElevator: walk_up walk_up walk_right face_down step_end -TrainerHill_Elevator_Movement_PlayerApproachAttendant: @ 82693E4 +TrainerHill_Elevator_Movement_PlayerApproachAttendant: delay_16 walk_left step_end -TrainerHill_Elevator_Movement_PlayerExitElevator: @ 82693E7 +TrainerHill_Elevator_Movement_PlayerExitElevator: delay_16 walk_down walk_down step_end -TrainerHill_Elevator_Movement_PlayerExitElevatorToRoof: @ 82693EB +TrainerHill_Elevator_Movement_PlayerExitElevatorToRoof: face_down delay_16 step_end -TrainerHill_Elevator_Movement_AttendantFacePlayer: @ 82693EE +TrainerHill_Elevator_Movement_AttendantFacePlayer: face_right step_end -TrainerHill_Elevator_Movement_AttendantFaceDown: @ 82693F0 +TrainerHill_Elevator_Movement_AttendantFaceDown: face_down step_end diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index b5b0f716ca..af4a4c1235 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -3,7 +3,7 @@ .set LOCALID_GIRL, 4 .set LOCALID_MAN, 5 -TrainerHill_Entrance_MapScripts:: @ 82680AC +TrainerHill_Entrance_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, TrainerHill_Entrance_OnResume map_script MAP_SCRIPT_ON_RETURN_TO_FIELD, TrainerHill_Entrance_OnReturn map_script MAP_SCRIPT_ON_TRANSITION, TrainerHill_Entrance_OnTransition @@ -11,16 +11,16 @@ TrainerHill_Entrance_MapScripts:: @ 82680AC map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerHill_Entrance_OnFrame .byte 0 -TrainerHill_Entrance_OnTransition: @ 82680C6 +TrainerHill_Entrance_OnTransition: setflag FLAG_LANDMARK_TRAINER_HILL getplayerxy VAR_TEMP_D, VAR_RESULT end @ Unused -TrainerHill_Entrance_OnWarp: @ 82680CF +TrainerHill_Entrance_OnWarp: end -TrainerHill_Entrance_OnResume: @ 82680D0 +TrainerHill_Entrance_OnResume: trainerhill_resumetimer setvar VAR_TEMP_0, 0 trainerhill_getusingereader @@ -30,40 +30,40 @@ TrainerHill_Entrance_OnResume: @ 82680D0 applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant end -TrainerHill_Entrance_EventScript_TryFaceAttendant:: @ 82680FF +TrainerHill_Entrance_EventScript_TryFaceAttendant:: trainerhill_getwon compare VAR_RESULT, TRUE goto_if_eq TrainerHill_Entrance_EventScript_PlayerDontFaceAttendant applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant end -TrainerHill_Entrance_EventScript_PlayerDontFaceAttendant:: @ 826811A +TrainerHill_Entrance_EventScript_PlayerDontFaceAttendant:: end -TrainerHill_Entrance_OnReturn: @ 826811B +TrainerHill_Entrance_OnReturn: addobject LOCALID_NURSE addobject LOCALID_ATTENDANT addobject LOCALID_MAN addobject LOCALID_GIRL end -TrainerHill_Entrance_OnLoad: @ 8268128 +TrainerHill_Entrance_OnLoad: compare VAR_TEMP_D, 17 call_if_eq TrainerHill_Entrance_EventScript_OpenCounterDoor end -TrainerHill_Entrance_EventScript_OpenCounterDoor:: @ 8268134 +TrainerHill_Entrance_EventScript_OpenCounterDoor:: setmetatile 17, 10, METATILE_TrainerHill_GreenFloorTile, 0 return -TrainerHill_Entrance_OnFrame: @ 826813E +TrainerHill_Entrance_OnFrame: map_script_2 VAR_TEMP_0, 0, TrainerHill_Entrance_EventScript_ExitChallenge map_script_2 VAR_TEMP_D, 17, TrainerHill_Entrance_EventScript_ExitElevator map_script_2 VAR_TEMP_5, 1, TrainerHill_Entrance_EventScript_EntryTrigger map_script_2 VAR_TEMP_1, 1, TrainerHill_EventScript_WarpToEntranceCounter .2byte 0 -TrainerHill_Entrance_EventScript_ExitElevator:: @ 8268160 +TrainerHill_Entrance_EventScript_ExitElevator:: lockall applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerExitElevator waitmovement 0 @@ -75,7 +75,7 @@ TrainerHill_Entrance_EventScript_ExitElevator:: @ 8268160 releaseall end -TrainerHill_Entrance_EventScript_ExitChallenge:: @ 8268182 +TrainerHill_Entrance_EventScript_ExitChallenge:: setvar VAR_TEMP_0, 1 trainerhill_getstatus switch VAR_RESULT @@ -83,27 +83,27 @@ TrainerHill_Entrance_EventScript_ExitChallenge:: @ 8268182 case TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED, TrainerHill_Entrance_EventScript_ExitChallengeECard case TRAINER_HILL_PLAYER_STATUS_NORMAL, TrainerHill_Entrance_EventScript_EndExitChallenge -TrainerHill_Entrance_EventScript_ExitChallengeLost:: @ 82681B5 +TrainerHill_Entrance_EventScript_ExitChallengeLost:: lockall applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant msgbox TrainerHill_Entrance_Text_TooBadTremendousEffort, MSGBOX_DEFAULT goto TrainerHill_Entrance_EventScript_PlayerExitChallenge -TrainerHill_Entrance_EventScript_ExitChallengeECard:: @ 82681CA +TrainerHill_Entrance_EventScript_ExitChallengeECard:: lockall applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant msgbox TrainerHill_Entrance_Text_MovedReceptionHereForSwitch, MSGBOX_DEFAULT -TrainerHill_Entrance_EventScript_PlayerExitChallenge:: @ 82681DA +TrainerHill_Entrance_EventScript_PlayerExitChallenge:: closemessage applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PushPlayerBackFromCounter waitmovement 0 setvar VAR_TRAINER_HILL_IS_ACTIVE, 0 special HealPlayerParty releaseall -TrainerHill_Entrance_EventScript_EndExitChallenge:: @ 82681EE +TrainerHill_Entrance_EventScript_EndExitChallenge:: end -TrainerHill_Entrance_EventScript_Nurse:: @ 82681EF +TrainerHill_Entrance_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -111,7 +111,7 @@ TrainerHill_Entrance_EventScript_Nurse:: @ 82681EF release end -TrainerHill_Entrance_EventScript_Attendant:: @ 82681FD +TrainerHill_Entrance_EventScript_Attendant:: lock faceplayer trainerhill_inchallenge @@ -120,13 +120,13 @@ TrainerHill_Entrance_EventScript_Attendant:: @ 82681FD msgbox TrainerHill_Entrance_Text_HopeYouGiveItYourBest, MSGBOX_DEFAULT goto TrainerHill_Entrance_EventScript_AttendantEnd -TrainerHill_Entrance_EventScript_ThanksForPlaying:: @ 826821F +TrainerHill_Entrance_EventScript_ThanksForPlaying:: msgbox TrainerHill_Entrance_Text_ThankYouForPlaying, MSGBOX_DEFAULT -TrainerHill_Entrance_EventScript_AttendantEnd:: @ 8268227 +TrainerHill_Entrance_EventScript_AttendantEnd:: release end -TrainerHill_Entrance_EventScript_EntryTrigger:: @ 8268229 +TrainerHill_Entrance_EventScript_EntryTrigger:: lockall applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant goto_if_unset FLAG_SYS_GAME_CLEAR, TrainerHill_Entrance_EventScript_Closed @@ -140,12 +140,12 @@ TrainerHill_Entrance_EventScript_EntryTrigger:: @ 8268229 msgbox TrainerHill_Entrance_Text_TrainersUpToFloorX, MSGBOX_DEFAULT goto TrainerHill_Entrance_EventScript_AskChallengeTrainers -TrainerHill_Entrance_EventScript_AllFloorsUsed:: @ 8268275 +TrainerHill_Entrance_EventScript_AllFloorsUsed:: msgbox TrainerHill_Entrance_Text_TrainersInEveryRoom, MSGBOX_DEFAULT -TrainerHill_Entrance_EventScript_AskChallengeTrainers:: @ 826827D +TrainerHill_Entrance_EventScript_AskChallengeTrainers:: message TrainerHill_Entrance_Text_LikeToChallengeTrainers waitmessage - multichoice 15, 6, MULTI_YESNOINFO, 0 + multichoice 15, 6, MULTI_YESNOINFO, FALSE switch VAR_RESULT case 0, TrainerHill_Entrance_EventScript_ChooseChallenge case 1, TrainerHill_Entrance_EventScript_CancelEntry @@ -153,13 +153,13 @@ TrainerHill_Entrance_EventScript_AskChallengeTrainers:: @ 826827D case MULTI_B_PRESSED, TrainerHill_Entrance_EventScript_CancelEntry end -TrainerHill_Entrance_EventScript_Info:: @ 82682BA +TrainerHill_Entrance_EventScript_Info:: msgbox TrainerHill_Entrance_Text_ExplainTrainerHill, MSGBOX_DEFAULT goto TrainerHill_Entrance_EventScript_AskChallengeTrainers end -TrainerHill_Entrance_EventScript_ChooseChallenge:: @ 82682C8 - multichoice 13, 2, MULTI_TAG_MATCH_TYPE, 0 +TrainerHill_Entrance_EventScript_ChooseChallenge:: + multichoice 13, 2, MULTI_TAG_MATCH_TYPE, FALSE switch VAR_RESULT case 4, TrainerHill_Entrance_EventScript_CancelEntry case MULTI_B_PRESSED, TrainerHill_Entrance_EventScript_CancelEntry @@ -172,7 +172,7 @@ TrainerHill_Entrance_EventScript_ChooseChallenge:: @ 82682C8 releaseall end -TrainerHill_Entrance_EventScript_CancelEntry:: @ 8268314 +TrainerHill_Entrance_EventScript_CancelEntry:: setvar VAR_TEMP_5, 0 msgbox TrainerHill_Entrance_Text_PleaseVisitUsAgain, MSGBOX_DEFAULT closemessage @@ -181,7 +181,7 @@ TrainerHill_Entrance_EventScript_CancelEntry:: @ 8268314 releaseall end -TrainerHill_Entrance_EventScript_SaveGame:: @ 826832E +TrainerHill_Entrance_EventScript_SaveGame:: msgbox TrainerHill_Entrance_Text_SaveGameBeforeEnter, MSGBOX_DEFAULT trainerhill_setsaved setvar VAR_TEMP_5, 1 @@ -191,12 +191,12 @@ TrainerHill_Entrance_EventScript_SaveGame:: @ 826832E trainerhill_setsaved return -TrainerHill_Entrance_EventScript_SaveFailed:: @ 826835C +TrainerHill_Entrance_EventScript_SaveFailed:: trainerhill_clearsaved goto TrainerHill_Entrance_EventScript_CancelEntry end -TrainerHill_Entrance_EventScript_Closed:: @ 826836A +TrainerHill_Entrance_EventScript_Closed:: msgbox TrainerHill_Entrance_Text_StillGettingReady, MSGBOX_DEFAULT closemessage applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PushPlayerBackFromCounter @@ -204,25 +204,25 @@ TrainerHill_Entrance_EventScript_Closed:: @ 826836A releaseall end -TrainerHill_Entrance_Movement_PlayerFaceAttendant: @ 826837F +TrainerHill_Entrance_Movement_PlayerFaceAttendant: face_right step_end -TrainerHill_Entrance_Movement_PushPlayerBackFromCounter: @ 8268381 +TrainerHill_Entrance_Movement_PushPlayerBackFromCounter: walk_down step_end @ Unused -TrainerHill_Entrance_Movement_FaceUp: @ 8268383 +TrainerHill_Entrance_Movement_FaceUp: face_up step_end -TrainerHill_Entrance_Movement_PlayerExitElevator: @ 8268385 +TrainerHill_Entrance_Movement_PlayerExitElevator: walk_down walk_down step_end -TrainerHill_Entrance_EventScript_Records:: @ 8268388 +TrainerHill_Entrance_EventScript_Records:: lockall fadescreen FADE_TO_BLACK special ShowTrainerHillRecords @@ -230,25 +230,25 @@ TrainerHill_Entrance_EventScript_Records:: @ 8268388 releaseall end -TrainerHill_Entrance_EventScript_Man:: @ 8268391 +TrainerHill_Entrance_EventScript_Man:: goto_if_unset FLAG_SYS_GAME_CLEAR, TrainerHill_Entrance_EventScript_ManTrainerHillClosed msgbox TrainerHill_Entrance_Text_WhatSortOfTrainersAreAhead, MSGBOX_NPC end -TrainerHill_Entrance_EventScript_ManTrainerHillClosed:: @ 82683A3 +TrainerHill_Entrance_EventScript_ManTrainerHillClosed:: msgbox TrainerHill_Entrance_Text_CantWaitToTestTheWaters, MSGBOX_NPC end -TrainerHill_Entrance_EventScript_Girl:: @ 82683AC +TrainerHill_Entrance_EventScript_Girl:: goto_if_unset FLAG_SYS_GAME_CLEAR, TrainerHill_Entrance_EventScript_GirlTrainerHillClosed msgbox TrainerHill_Entrance_Text_FriendsTryingToReachTimeBoardTop, MSGBOX_NPC end -TrainerHill_Entrance_EventScript_GirlTrainerHillClosed:: @ 82683BE +TrainerHill_Entrance_EventScript_GirlTrainerHillClosed:: msgbox TrainerHill_Entrance_Text_DoYouKnowWhenTheyOpen, MSGBOX_NPC end -TrainerHill_Entrance_EventScript_Clerk:: @ 82683C7 +TrainerHill_Entrance_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -260,7 +260,7 @@ TrainerHill_Entrance_EventScript_Clerk:: @ 82683C7 end .align 2 -TrainerHill_Entrance_Pokemart_Basic: @ 82683E8 +TrainerHill_Entrance_Pokemart_Basic: .2byte ITEM_SUPER_POTION .2byte ITEM_ANTIDOTE .2byte ITEM_PARALYZE_HEAL @@ -276,14 +276,14 @@ TrainerHill_Entrance_Pokemart_Basic: @ 82683E8 release end -TrainerHill_Entrance_EventScript_ExpandedPokemart:: @ 8268402 +TrainerHill_Entrance_EventScript_ExpandedPokemart:: pokemart TrainerHill_Entrance_Pokemart_Expanded msgbox gText_PleaseComeAgain, MSGBOX_DEFAULT release end .align 2 -TrainerHill_Entrance_Pokemart_Expanded: @ 8268414 +TrainerHill_Entrance_Pokemart_Expanded: .2byte ITEM_HYPER_POTION .2byte ITEM_MAX_POTION .2byte ITEM_FULL_RESTORE @@ -300,69 +300,69 @@ TrainerHill_Entrance_Pokemart_Expanded: @ 8268414 release end -TrainerHill_Entrance_Text_StillGettingReady: @ 8268430 +TrainerHill_Entrance_Text_StillGettingReady: .string "This is the TRAINER HILL where\n" .string "you may enjoy tag battles with many\l" .string "TRAINERS.\p" .string "Unfortunately, we're still getting\n" .string "things ready. Please come back later!$" -TrainerHill_Entrance_Text_WelcomeToTrainerHill: @ 82684C6 +TrainerHill_Entrance_Text_WelcomeToTrainerHill: .string "Welcome!\p" .string "This is the TRAINER HILL where\n" .string "you may enjoy tag battles with many\l" .string "TRAINERS!$" -TrainerHill_Entrance_Text_SaveGameBeforeEnter: @ 826851C +TrainerHill_Entrance_Text_SaveGameBeforeEnter: .string "Is this your first visit here?\p" .string "Before you enter, please save\n" .string "your game.$" -TrainerHill_Entrance_Text_TrainersUpToFloorX: @ 8268564 +TrainerHill_Entrance_Text_TrainersUpToFloorX: .string "Let's see…\n" .string "The TRAINERS here now are…\p" .string "Up to floor no. {STR_VAR_1}.$" -TrainerHill_Entrance_Text_TrainersInEveryRoom: @ 826859E +TrainerHill_Entrance_Text_TrainersInEveryRoom: .string "Let's see…\n" .string "The TRAINERS here now are…\p" .string "There appear to be TRAINERS gathered\n" .string "in every room.$" -TrainerHill_Entrance_Text_LikeToChallengeTrainers: @ 82685F8 +TrainerHill_Entrance_Text_LikeToChallengeTrainers: .string "Would you like to challenge the\n" .string "waiting TRAINERS?$" -TrainerHill_Entrance_Text_TimeProgessGetSetGo: @ 826862A +TrainerHill_Entrance_Text_TimeProgessGetSetGo: .string "I will time your progress.\n" .string "Best of luck!\p" .string "On your marks…\p" .string "Get set…\p" .string "Go!$" -TrainerHill_Entrance_Text_PleaseVisitUsAgain: @ 826866F +TrainerHill_Entrance_Text_PleaseVisitUsAgain: .string "Please do visit us again!$" -TrainerHill_Entrance_Text_TooBadTremendousEffort: @ 8268689 +TrainerHill_Entrance_Text_TooBadTremendousEffort: .string "That was too bad.\p" .string "I think you put in a tremendous\n" .string "effort in your battling.\p" .string "Please come back and try again!$" -TrainerHill_Entrance_Text_HopeYouGiveItYourBest: @ 82686F4 +TrainerHill_Entrance_Text_HopeYouGiveItYourBest: .string "I hope you give it your best.$" -TrainerHill_Entrance_Text_MovedReceptionHereForSwitch: @ 8268712 +TrainerHill_Entrance_Text_MovedReceptionHereForSwitch: .string "When the TRAINERS switch places,\n" .string "the movement can be hectic.\p" .string "To avoid the stampede, we moved\n" .string "the reception counter here.\p" .string "I'm sorry for the inconvenience.$" -TrainerHill_Entrance_Text_ThankYouForPlaying: @ 82687AC +TrainerHill_Entrance_Text_ThankYouForPlaying: .string "Thank you for playing!$" -TrainerHill_Entrance_Text_ExplainTrainerHill: @ 82687C3 +TrainerHill_Entrance_Text_ExplainTrainerHill: .string "Here at the TRAINER HILL, we conduct\n" .string "an event called the Time Attack.\p" .string "It is a race that measures how long\n" @@ -376,13 +376,13 @@ TrainerHill_Entrance_Text_ExplainTrainerHill: @ 82687C3 .string "be awarded.$" @ Unused -TrainerHill_Entrance_Text_NeedAtLeastTwoPokemon: @ 826890D +TrainerHill_Entrance_Text_NeedAtLeastTwoPokemon: .string "Oh, I'm sorry, but you appear to have\n" .string "only one POKéMON with you.\p" .string "You will need at least two POKéMON\n" .string "to enter this event.$" -TrainerHill_Roof_Text_YouFinallyCameBravo: @ 8268986 +TrainerHill_Roof_Text_YouFinallyCameBravo: .string "Hm! Hm!\p" .string "You finally came!\n" .string "Yes, you have arrived!\p" @@ -398,15 +398,15 @@ TrainerHill_Roof_Text_YouFinallyCameBravo: @ 8268986 .string "Anyway, I watched you on your way up.\n" .string "Marvelous battling! Bravo, indeed!$" -TrainerHill_Roof_Text_HaveTheMostMarvelousGift: @ 8268AC5 +TrainerHill_Roof_Text_HaveTheMostMarvelousGift: .string "For a marvelous someone like you,\n" .string "I have the most marvelous gift!$" -TrainerHill_Roof_Text_FullUpBeBackLaterForThis: @ 8268B07 +TrainerHill_Roof_Text_FullUpBeBackLaterForThis: .string "Oh, no, full up with things!\n" .string "You'll be back later for this!$" -TrainerHill_Roof_Text_GotHereMarvelouslyQuickly: @ 8268B43 +TrainerHill_Roof_Text_GotHereMarvelouslyQuickly: .string "Oh, hold on here! Did you possibly get\n" .string "here marvelously quickly?\p" .string "How splendid! You needn't have\n" @@ -414,11 +414,11 @@ TrainerHill_Roof_Text_GotHereMarvelouslyQuickly: @ 8268B43 .string "That is so delightful. I'll have the Time\n" .string "Board at the reception updated!$" -TrainerHill_Roof_Text_YouWerentVeryQuick: @ 8268C03 +TrainerHill_Roof_Text_YouWerentVeryQuick: .string "But, oh…\n" .string "You weren't very quick getting here.$" -TrainerHill_Roof_Text_ArriveZippierNextTime: @ 8268C31 +TrainerHill_Roof_Text_ArriveZippierNextTime: .string "Perhaps it would please me more if you\n" .string "arrived zippier next time.\p" .string "Then, I should be pleased to form\n" @@ -426,39 +426,39 @@ TrainerHill_Roof_Text_ArriveZippierNextTime: @ 8268C31 .string "Until we meet again, amigo!$" @ Unused -TrainerHill_Roof_Text_BuiltTrainerHillToFindPartner: @ 8268CC6 +TrainerHill_Roof_Text_BuiltTrainerHillToFindPartner: .string "I had the TRAINER HILL built for but\n" .string "one reason and one only!\p" .string "To find the most suitable partner\n" .string "with whom I may form a tag team!$" -TrainerHill_Entrance_Text_ChallengeTime: @ 8268D47 +TrainerHill_Entrance_Text_ChallengeTime: .string "{STR_VAR_1} min. {STR_VAR_2}.{STR_VAR_3} sec.$" -TrainerHill_Entrance_Text_WhatSortOfTrainersAreAhead: @ 8268D5A +TrainerHill_Entrance_Text_WhatSortOfTrainersAreAhead: .string "Who knows what sort of TRAINERS\n" .string "and POKéMON combos are ahead?\p" .string "All I know is that I'll knock aside\n" .string "anyone that stands in my way!$" -TrainerHill_Entrance_Text_CantWaitToTestTheWaters: @ 8268DDA +TrainerHill_Entrance_Text_CantWaitToTestTheWaters: .string "I heard tough TRAINERS come to this\n" .string "TRAINER HILL from all over.\p" .string "I can't wait to test the waters!\p" .string "I'll knock aside anyone that stands\n" .string "in my way!$" -TrainerHill_Entrance_Text_FriendsTryingToReachTimeBoardTop: @ 8268E6A +TrainerHill_Entrance_Text_FriendsTryingToReachTimeBoardTop: .string "Do you see the Time Board over there?\p" .string "My friends and I are trying to see who\n" .string "can reach the top in the least time.$" -TrainerHill_Entrance_Text_DoYouKnowWhenTheyOpen: @ 8268EDC +TrainerHill_Entrance_Text_DoYouKnowWhenTheyOpen: .string "Do you know when they're opening\n" .string "this place up?\p" .string "I'm waiting here to be the first\n" .string "challenger ever!$" -TrainerHill_Elevator_Text_ReturnToReception: @ 8268F3E +TrainerHill_Elevator_Text_ReturnToReception: .string "Would you like to return to\n" .string "the reception counter?$" diff --git a/data/maps/TrainerHill_Roof/scripts.inc b/data/maps/TrainerHill_Roof/scripts.inc index e239ed0105..d0e63c38a7 100644 --- a/data/maps/TrainerHill_Roof/scripts.inc +++ b/data/maps/TrainerHill_Roof/scripts.inc @@ -1,9 +1,9 @@ -TrainerHill_Roof_MapScripts:: @ 8268FA7 +TrainerHill_Roof_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, TrainerHill_OnResume map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerHill_OnFrame .byte 0 -TrainerHill_Roof_EventScript_Owner:: @ 8268FB2 +TrainerHill_Roof_EventScript_Owner:: trainerhill_settrainerflags lock faceplayer @@ -12,15 +12,15 @@ TrainerHill_Roof_EventScript_Owner:: @ 8268FB2 case 0, TrainerHill_Roof_EventScript_Arrived case 1, TrainerHill_Roof_EventScript_GivePrize case 2, TrainerHill_Roof_EventScript_AlreadyReceivedPrize -TrainerHill_Roof_EventScript_Arrived:: @ 8268FEA +TrainerHill_Roof_EventScript_Arrived:: msgbox TrainerHill_Roof_Text_YouFinallyCameBravo, MSGBOX_DEFAULT -TrainerHill_Roof_EventScript_GivePrize:: @ 8268FF2 +TrainerHill_Roof_EventScript_GivePrize:: trainerhill_giveprize switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_ReceivePrize case 1, TrainerHill_Roof_EventScript_NoRoomForPrize case 2, TrainerHill_Roof_EventScript_CheckFinalTime -TrainerHill_Roof_EventScript_ReceivePrize:: @ 8269020 +TrainerHill_Roof_EventScript_ReceivePrize:: msgbox TrainerHill_Roof_Text_HaveTheMostMarvelousGift, MSGBOX_DEFAULT playfanfare MUS_LEVEL_UP message gText_ObtainedTheItem @@ -28,34 +28,34 @@ TrainerHill_Roof_EventScript_ReceivePrize:: @ 8269020 waitmessage goto TrainerHill_Roof_EventScript_CheckFinalTime -TrainerHill_Roof_EventScript_NoRoomForPrize:: @ 8269037 +TrainerHill_Roof_EventScript_NoRoomForPrize:: msgbox TrainerHill_Roof_Text_HaveTheMostMarvelousGift, MSGBOX_DEFAULT msgbox gText_TheBagIsFull, MSGBOX_DEFAULT msgbox TrainerHill_Roof_Text_FullUpBeBackLaterForThis, MSGBOX_DEFAULT goto TrainerHill_Roof_EventScript_CheckFinalTime -TrainerHill_Roof_EventScript_CheckFinalTime:: @ 8269054 +TrainerHill_Roof_EventScript_CheckFinalTime:: trainerhill_finaltime switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_NewRecord case 1, TrainerHill_Roof_EventScript_NoNewRecord case 2, TrainerHill_Roof_EventScript_EndSpeakToOwner -TrainerHill_Roof_EventScript_NewRecord:: @ 8269082 +TrainerHill_Roof_EventScript_NewRecord:: msgbox TrainerHill_Roof_Text_GotHereMarvelouslyQuickly, MSGBOX_DEFAULT goto TrainerHill_Roof_EventScript_EndSpeakToOwner end -TrainerHill_Roof_EventScript_NoNewRecord:: @ 8269090 +TrainerHill_Roof_EventScript_NoNewRecord:: msgbox TrainerHill_Roof_Text_YouWerentVeryQuick, MSGBOX_DEFAULT goto TrainerHill_Roof_EventScript_EndSpeakToOwner end -TrainerHill_Roof_EventScript_EndSpeakToOwner:: @ 826909E +TrainerHill_Roof_EventScript_EndSpeakToOwner:: msgbox TrainerHill_Roof_Text_ArriveZippierNextTime, MSGBOX_DEFAULT release end -TrainerHill_Roof_EventScript_AlreadyReceivedPrize:: @ 82690A8 +TrainerHill_Roof_EventScript_AlreadyReceivedPrize:: msgbox TrainerHill_Roof_Text_ArriveZippierNextTime, MSGBOX_DEFAULT release end diff --git a/data/maps/Underwater_MarineCave/scripts.inc b/data/maps/Underwater_MarineCave/scripts.inc index b1cc353f03..cbd158e273 100644 --- a/data/maps/Underwater_MarineCave/scripts.inc +++ b/data/maps/Underwater_MarineCave/scripts.inc @@ -1,13 +1,13 @@ -Underwater_MarineCave_MapScripts:: @ 823AFB8 +Underwater_MarineCave_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Underwater_MarineCave_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Underwater_MarineCave_OnTransition .byte 0 -Underwater_MarineCave_OnTransition: @ 823AFC3 +Underwater_MarineCave_OnTransition: setflag FLAG_ARRIVED_AT_MARINE_CAVE_EMERGE_SPOT end -Underwater_MarineCave_OnResume: @ 823AFC7 +Underwater_MarineCave_OnResume: setdivewarp MAP_MARINE_CAVE_ENTRANCE, 255, 10, 17 end diff --git a/data/maps/Underwater_Route105/scripts.inc b/data/maps/Underwater_Route105/scripts.inc index 41cd8bfbe7..af3f6769ec 100644 --- a/data/maps/Underwater_Route105/scripts.inc +++ b/data/maps/Underwater_Route105/scripts.inc @@ -1,8 +1,8 @@ -Underwater_Route105_MapScripts:: @ 81F773D +Underwater_Route105_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Underwater_Route105_OnResume .byte 0 -Underwater_Route105_OnResume: @ 81F7743 +Underwater_Route105_OnResume: call AbnormalWeather_Underwater_SetupEscapeWarp end diff --git a/data/maps/Underwater_Route124/scripts.inc b/data/maps/Underwater_Route124/scripts.inc index 2a72dfb113..f14d5824b6 100644 --- a/data/maps/Underwater_Route124/scripts.inc +++ b/data/maps/Underwater_Route124/scripts.inc @@ -1,3 +1,3 @@ -Underwater_Route124_MapScripts:: @ 81F7722 +Underwater_Route124_MapScripts:: .byte 0 diff --git a/data/maps/Underwater_Route125/scripts.inc b/data/maps/Underwater_Route125/scripts.inc index 662120e5e6..cc16edf7bc 100644 --- a/data/maps/Underwater_Route125/scripts.inc +++ b/data/maps/Underwater_Route125/scripts.inc @@ -1,8 +1,8 @@ -Underwater_Route125_MapScripts:: @ 81F7749 +Underwater_Route125_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Underwater_Route125_OnResume .byte 0 -Underwater_Route125_OnResume: @ 81F774F +Underwater_Route125_OnResume: call AbnormalWeather_Underwater_SetupEscapeWarp end diff --git a/data/maps/Underwater_Route126/scripts.inc b/data/maps/Underwater_Route126/scripts.inc index 71d43e1417..6721e8a0fa 100644 --- a/data/maps/Underwater_Route126/scripts.inc +++ b/data/maps/Underwater_Route126/scripts.inc @@ -1,3 +1,3 @@ -Underwater_Route126_MapScripts:: @ 81F7723 +Underwater_Route126_MapScripts:: .byte 0 diff --git a/data/maps/Underwater_Route127/scripts.inc b/data/maps/Underwater_Route127/scripts.inc index 552b9aab82..b6e21b0304 100644 --- a/data/maps/Underwater_Route127/scripts.inc +++ b/data/maps/Underwater_Route127/scripts.inc @@ -1,8 +1,8 @@ -Underwater_Route127_MapScripts:: @ 81F7724 +Underwater_Route127_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Underwater_Route127_OnResume .byte 0 -Underwater_Route127_OnResume: @ 81F772A +Underwater_Route127_OnResume: call AbnormalWeather_Underwater_SetupEscapeWarp end diff --git a/data/maps/Underwater_Route128/scripts.inc b/data/maps/Underwater_Route128/scripts.inc index a050afd938..215268cf58 100644 --- a/data/maps/Underwater_Route128/scripts.inc +++ b/data/maps/Underwater_Route128/scripts.inc @@ -1,3 +1,3 @@ -Underwater_Route128_MapScripts:: @ 81F7730 +Underwater_Route128_MapScripts:: .byte 0 diff --git a/data/maps/Underwater_Route129/scripts.inc b/data/maps/Underwater_Route129/scripts.inc index f9f84841e5..3e2813d4d4 100644 --- a/data/maps/Underwater_Route129/scripts.inc +++ b/data/maps/Underwater_Route129/scripts.inc @@ -1,8 +1,8 @@ -Underwater_Route129_MapScripts:: @ 81F7731 +Underwater_Route129_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Underwater_Route129_OnResume .byte 0 -Underwater_Route129_OnResume: @ 81F7737 +Underwater_Route129_OnResume: call AbnormalWeather_Underwater_SetupEscapeWarp end diff --git a/data/maps/Underwater_Route134/scripts.inc b/data/maps/Underwater_Route134/scripts.inc index ef62997de1..909b2f8b10 100644 --- a/data/maps/Underwater_Route134/scripts.inc +++ b/data/maps/Underwater_Route134/scripts.inc @@ -1,8 +1,8 @@ -Underwater_Route134_MapScripts:: @ 82390B5 +Underwater_Route134_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Underwater_Route134_OnResume .byte 0 -Underwater_Route134_OnResume: @ 82390BB +Underwater_Route134_OnResume: setdivewarp MAP_ROUTE134, 255, 60, 31 end diff --git a/data/maps/Underwater_SeafloorCavern/scripts.inc b/data/maps/Underwater_SeafloorCavern/scripts.inc index 1186324614..2e0613c04c 100644 --- a/data/maps/Underwater_SeafloorCavern/scripts.inc +++ b/data/maps/Underwater_SeafloorCavern/scripts.inc @@ -1,23 +1,23 @@ -Underwater_SeafloorCavern_MapScripts:: @ 823433B +Underwater_SeafloorCavern_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Underwater_SeafloorCavern_OnResume map_script MAP_SCRIPT_ON_TRANSITION, Underwater_SeafloorCavern_OnTransition map_script MAP_SCRIPT_ON_LOAD, Underwater_SeafloorCavern_OnLoad .byte 0 -Underwater_SeafloorCavern_OnTransition: @ 823434B +Underwater_SeafloorCavern_OnTransition: setflag FLAG_LANDMARK_SEAFLOOR_CAVERN goto_if_set FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, Underwater_SeafloorCavern_EventScript_HideSubmarine end -Underwater_SeafloorCavern_EventScript_HideSubmarine:: @ 8234358 +Underwater_SeafloorCavern_EventScript_HideSubmarine:: setflag FLAG_HIDE_UNDERWATER_SEA_FLOOR_CAVERN_STOLEN_SUBMARINE end -Underwater_SeafloorCavern_OnLoad: @ 823435C +Underwater_SeafloorCavern_OnLoad: call_if_set FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, Underwater_SeafloorCavern_EventScript_SetSubmarineGoneMetatiles end -Underwater_SeafloorCavern_EventScript_SetSubmarineGoneMetatiles:: @ 8234366 +Underwater_SeafloorCavern_EventScript_SetSubmarineGoneMetatiles:: setmetatile 5, 3, METATILE_Underwater_RockWall, 1 setmetatile 6, 3, METATILE_Underwater_RockWall, 1 setmetatile 7, 3, METATILE_Underwater_RockWall, 1 @@ -32,15 +32,15 @@ Underwater_SeafloorCavern_EventScript_SetSubmarineGoneMetatiles:: @ 8234366 setmetatile 8, 5, METATILE_Underwater_FloorShadow, 0 return -Underwater_SeafloorCavern_OnResume: @ 82343D3 +Underwater_SeafloorCavern_OnResume: setdivewarp MAP_SEAFLOOR_CAVERN_ENTRANCE, 255, 10, 17 end -Underwater_SeafloorCavern_EventScript_CheckStolenSub:: @ 82343DC +Underwater_SeafloorCavern_EventScript_CheckStolenSub:: msgbox Underwater_SeafloorCavern_Text_SubExplorer1, MSGBOX_SIGN end -Underwater_SeafloorCavern_Text_SubExplorer1: @ 82343E5 +Underwater_SeafloorCavern_Text_SubExplorer1: .string "“SUBMARINE EXPLORER 1” is painted\n" .string "on the hull.\p" .string "This is the submarine TEAM AQUA\n" diff --git a/data/maps/Underwater_SealedChamber/scripts.inc b/data/maps/Underwater_SealedChamber/scripts.inc index b1fb5e71a5..3d8aaf979f 100644 --- a/data/maps/Underwater_SealedChamber/scripts.inc +++ b/data/maps/Underwater_SealedChamber/scripts.inc @@ -1,8 +1,8 @@ -Underwater_SealedChamber_MapScripts:: @ 82390C4 +Underwater_SealedChamber_MapScripts:: map_script MAP_SCRIPT_ON_DIVE_WARP, Underwater_SealedChamber_OnDive .byte 0 -Underwater_SealedChamber_OnDive: @ 82390CA +Underwater_SealedChamber_OnDive: getplayerxy VAR_0x8004, VAR_0x8005 compare VAR_0x8004, 12 goto_if_ne Underwater_SealedChamber_EventScript_SurfaceRoute134 @@ -10,15 +10,15 @@ Underwater_SealedChamber_OnDive: @ 82390CA goto_if_ne Underwater_SealedChamber_EventScript_SurfaceRoute134 goto Underwater_SealedChamber_EventScript_SurfaceSealedChamber -Underwater_SealedChamber_EventScript_SurfaceRoute134:: @ 82390EA +Underwater_SealedChamber_EventScript_SurfaceRoute134:: setdivewarp MAP_ROUTE134, 255, 60, 31 end -Underwater_SealedChamber_EventScript_SurfaceSealedChamber:: @ 82390F3 +Underwater_SealedChamber_EventScript_SurfaceSealedChamber:: setdivewarp MAP_SEALED_CHAMBER_OUTER_ROOM, 255, 10, 19 end -Underwater_SealedChamber_EventScript_Braille:: @ 82390FC +Underwater_SealedChamber_EventScript_Braille:: lockall braillemessage Underwater_SealedChamber_Braille_GoUpHere waitbuttonpress diff --git a/data/maps/Underwater_SootopolisCity/scripts.inc b/data/maps/Underwater_SootopolisCity/scripts.inc index ec639604be..4346c284fa 100644 --- a/data/maps/Underwater_SootopolisCity/scripts.inc +++ b/data/maps/Underwater_SootopolisCity/scripts.inc @@ -1,8 +1,8 @@ -Underwater_SootopolisCity_MapScripts:: @ 822D94C +Underwater_SootopolisCity_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, Underwater_SootopolisCity_OnResume .byte 0 -Underwater_SootopolisCity_OnResume: @ 822D952 +Underwater_SootopolisCity_OnResume: setdivewarp MAP_SOOTOPOLIS_CITY, 255, 29, 53 end diff --git a/data/maps/UnionRoom/scripts.inc b/data/maps/UnionRoom/scripts.inc index f25e7acb68..8a9e7682a5 100644 --- a/data/maps/UnionRoom/scripts.inc +++ b/data/maps/UnionRoom/scripts.inc @@ -1,18 +1,11 @@ -.set LOCALID_UR_PLAYER_4, 2 -.set LOCALID_UR_PLAYER_8, 3 -.set LOCALID_UR_PLAYER_7, 4 -.set LOCALID_UR_PLAYER_6, 5 -.set LOCALID_UR_PLAYER_5, 6 -.set LOCALID_UR_PLAYER_3, 7 -.set LOCALID_UR_PLAYER_2, 8 -.set LOCALID_UR_PLAYER_1, 9 +@ Note: LOCALID_UNION_ROOM_PLAYER_# are local ids for this map used elsewhere. They're defined in event_objects.h -UnionRoom_MapScripts:: @ 823D1A6 +UnionRoom_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, UnionRoom_OnResume map_script MAP_SCRIPT_ON_TRANSITION, UnionRoom_OnTransition .byte 0 -UnionRoom_OnResume: @ 823D1B1 +UnionRoom_OnResume: setflag FLAG_HIDE_UNION_ROOM_PLAYER_1 setflag FLAG_HIDE_UNION_ROOM_PLAYER_2 setflag FLAG_HIDE_UNION_ROOM_PLAYER_3 @@ -21,21 +14,21 @@ UnionRoom_OnResume: @ 823D1B1 setflag FLAG_HIDE_UNION_ROOM_PLAYER_6 setflag FLAG_HIDE_UNION_ROOM_PLAYER_7 setflag FLAG_HIDE_UNION_ROOM_PLAYER_8 - removeobject LOCALID_UR_PLAYER_1 - removeobject LOCALID_UR_PLAYER_2 - removeobject LOCALID_UR_PLAYER_3 - removeobject LOCALID_UR_PLAYER_4 - removeobject LOCALID_UR_PLAYER_5 - removeobject LOCALID_UR_PLAYER_6 - removeobject LOCALID_UR_PLAYER_7 - removeobject LOCALID_UR_PLAYER_8 + removeobject LOCALID_UNION_ROOM_PLAYER_1 + removeobject LOCALID_UNION_ROOM_PLAYER_2 + removeobject LOCALID_UNION_ROOM_PLAYER_3 + removeobject LOCALID_UNION_ROOM_PLAYER_4 + removeobject LOCALID_UNION_ROOM_PLAYER_5 + removeobject LOCALID_UNION_ROOM_PLAYER_6 + removeobject LOCALID_UNION_ROOM_PLAYER_7 + removeobject LOCALID_UNION_ROOM_PLAYER_8 special RunUnionRoom end -UnionRoom_OnTransition: @ 823D1E5 +UnionRoom_OnTransition: end -UnionRoom_EventScript_Player1:: @ 823D1E6 +UnionRoom_EventScript_Player1:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_PLAYER_1 @@ -43,7 +36,7 @@ UnionRoom_EventScript_Player1:: @ 823D1E6 release end -UnionRoom_EventScript_Player2:: @ 823D1F0 +UnionRoom_EventScript_Player2:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_PLAYER_2 @@ -51,7 +44,7 @@ UnionRoom_EventScript_Player2:: @ 823D1F0 release end -UnionRoom_EventScript_Player3:: @ 823D1FA +UnionRoom_EventScript_Player3:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_PLAYER_3 @@ -59,7 +52,7 @@ UnionRoom_EventScript_Player3:: @ 823D1FA release end -UnionRoom_EventScript_Player4:: @ 823D204 +UnionRoom_EventScript_Player4:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_PLAYER_4 @@ -67,7 +60,7 @@ UnionRoom_EventScript_Player4:: @ 823D204 release end -UnionRoom_EventScript_Player5:: @ 823D20E +UnionRoom_EventScript_Player5:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_PLAYER_5 @@ -75,7 +68,7 @@ UnionRoom_EventScript_Player5:: @ 823D20E release end -UnionRoom_EventScript_Player6:: @ 823D218 +UnionRoom_EventScript_Player6:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_PLAYER_6 @@ -83,7 +76,7 @@ UnionRoom_EventScript_Player6:: @ 823D218 release end -UnionRoom_EventScript_Player7:: @ 823D222 +UnionRoom_EventScript_Player7:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_PLAYER_7 @@ -91,7 +84,7 @@ UnionRoom_EventScript_Player7:: @ 823D222 release end -UnionRoom_EventScript_Player8:: @ 823D22C +UnionRoom_EventScript_Player8:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_PLAYER_8 @@ -99,7 +92,7 @@ UnionRoom_EventScript_Player8:: @ 823D22C release end -UnionRoom_EventScript_Attendant:: @ 823D236 +UnionRoom_EventScript_Attendant:: lock faceplayer setvar VAR_RESULT, UR_INTERACT_ATTENDANT @@ -107,7 +100,7 @@ UnionRoom_EventScript_Attendant:: @ 823D236 release end -UnionRoom_EventScript_Unused:: @ 823D240 +UnionRoom_EventScript_Unused:: lockall setvar VAR_RESULT, UR_INTERACT_UNUSED waitstate diff --git a/data/maps/UnknownLinkContestRoom_25_33/map.json b/data/maps/UnknownLinkContestRoom_25_33/map.json deleted file mode 100644 index f73ffe22e1..0000000000 --- a/data/maps/UnknownLinkContestRoom_25_33/map.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "name": "UnknownLinkContestRoom_25_33", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "music": "MUS_GSC_PEWTER", - "region_map_section": "MAPSEC_DYNAMIC", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_INDOOR", - "allow_cycling": false, - "allow_escaping": false, - "allow_running": false, - "show_map_name": false, - "battle_scene": "MAP_BATTLE_SCENE_NORMAL", - "connections": null, - "shared_events_map": "ContestHall", - "shared_scripts_map": "ContestHall" -} diff --git a/data/maps/UnknownLinkContestRoom_25_34/map.json b/data/maps/UnknownLinkContestRoom_25_34/map.json deleted file mode 100644 index f5ddbbe5ae..0000000000 --- a/data/maps/UnknownLinkContestRoom_25_34/map.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "name": "UnknownLinkContestRoom_25_34", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "music": "MUS_GSC_PEWTER", - "region_map_section": "MAPSEC_DYNAMIC", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_INDOOR", - "allow_cycling": false, - "allow_escaping": false, - "allow_running": false, - "show_map_name": false, - "battle_scene": "MAP_BATTLE_SCENE_NORMAL", - "connections": null, - "shared_events_map": "ContestHall", - "shared_scripts_map": "ContestHall" -} diff --git a/data/maps/UnknownLinkContestRoom_25_29/map.json b/data/maps/UnusedContestHall1/map.json similarity index 74% rename from data/maps/UnknownLinkContestRoom_25_29/map.json rename to data/maps/UnusedContestHall1/map.json index 72ed407eed..f0cc069475 100644 --- a/data/maps/UnknownLinkContestRoom_25_29/map.json +++ b/data/maps/UnusedContestHall1/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29", - "name": "UnknownLinkContestRoom_25_29", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", + "id": "MAP_UNUSED_CONTEST_HALL1", + "name": "UnusedContestHall1", + "layout": "LAYOUT_UNUSED_CONTEST_HALL1", "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, diff --git a/data/maps/UnknownLinkContestRoom_25_30/map.json b/data/maps/UnusedContestHall2/map.json similarity index 74% rename from data/maps/UnknownLinkContestRoom_25_30/map.json rename to data/maps/UnusedContestHall2/map.json index cd4d6fddd8..96f47e5dff 100644 --- a/data/maps/UnknownLinkContestRoom_25_30/map.json +++ b/data/maps/UnusedContestHall2/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30", - "name": "UnknownLinkContestRoom_25_30", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", + "id": "MAP_UNUSED_CONTEST_HALL2", + "name": "UnusedContestHall2", + "layout": "LAYOUT_UNUSED_CONTEST_HALL2", "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, diff --git a/data/maps/UnknownLinkContestRoom_25_31/map.json b/data/maps/UnusedContestHall3/map.json similarity index 74% rename from data/maps/UnknownLinkContestRoom_25_31/map.json rename to data/maps/UnusedContestHall3/map.json index 975ec382d7..95d20e61d0 100644 --- a/data/maps/UnknownLinkContestRoom_25_31/map.json +++ b/data/maps/UnusedContestHall3/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31", - "name": "UnknownLinkContestRoom_25_31", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", + "id": "MAP_UNUSED_CONTEST_HALL3", + "name": "UnusedContestHall3", + "layout": "LAYOUT_UNUSED_CONTEST_HALL3", "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, diff --git a/data/maps/UnknownLinkContestRoom_25_32/map.json b/data/maps/UnusedContestHall4/map.json similarity index 74% rename from data/maps/UnknownLinkContestRoom_25_32/map.json rename to data/maps/UnusedContestHall4/map.json index d2d673adc3..b4e7158421 100644 --- a/data/maps/UnknownLinkContestRoom_25_32/map.json +++ b/data/maps/UnusedContestHall4/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32", - "name": "UnknownLinkContestRoom_25_32", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", + "id": "MAP_UNUSED_CONTEST_HALL4", + "name": "UnusedContestHall4", + "layout": "LAYOUT_UNUSED_CONTEST_HALL4", "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, diff --git a/data/maps/UnusedContestHall5/map.json b/data/maps/UnusedContestHall5/map.json new file mode 100644 index 0000000000..4c1281bf3f --- /dev/null +++ b/data/maps/UnusedContestHall5/map.json @@ -0,0 +1,18 @@ +{ + "id": "MAP_UNUSED_CONTEST_HALL5", + "name": "UnusedContestHall5", + "layout": "LAYOUT_UNUSED_CONTEST_HALL5", + "music": "MUS_GSC_PEWTER", + "region_map_section": "MAPSEC_DYNAMIC", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "shared_events_map": "ContestHall", + "shared_scripts_map": "ContestHall" +} diff --git a/data/maps/UnusedContestHall6/map.json b/data/maps/UnusedContestHall6/map.json new file mode 100644 index 0000000000..c0a7dbb4de --- /dev/null +++ b/data/maps/UnusedContestHall6/map.json @@ -0,0 +1,18 @@ +{ + "id": "MAP_UNUSED_CONTEST_HALL6", + "name": "UnusedContestHall6", + "layout": "LAYOUT_UNUSED_CONTEST_HALL6", + "music": "MUS_GSC_PEWTER", + "region_map_section": "MAPSEC_DYNAMIC", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "shared_events_map": "ContestHall", + "shared_scripts_map": "ContestHall" +} diff --git a/data/maps/VerdanturfTown/scripts.inc b/data/maps/VerdanturfTown/scripts.inc index a419c3319a..133fd62865 100644 --- a/data/maps/VerdanturfTown/scripts.inc +++ b/data/maps/VerdanturfTown/scripts.inc @@ -1,15 +1,15 @@ .set LOCALID_TWIN, 2 -VerdanturfTown_MapScripts:: @ 81EB566 +VerdanturfTown_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, VerdanturfTown_OnTransition .byte 0 -VerdanturfTown_OnTransition: @ 81EB56C +VerdanturfTown_OnTransition: setflag FLAG_VISITED_VERDANTURF_TOWN setvar VAR_CONTEST_HALL_STATE, 0 end -VerdanturfTown_EventScript_Twin:: @ 81EB575 +VerdanturfTown_EventScript_Twin:: lock faceplayer goto_if_set FLAG_RUSTURF_TUNNEL_OPENED, VerdanturfTown_EventScript_TwinTunnelOpen @@ -19,22 +19,22 @@ VerdanturfTown_EventScript_Twin:: @ 81EB575 release end -VerdanturfTown_EventScript_TwinTunnelOpen:: @ 81EB594 +VerdanturfTown_EventScript_TwinTunnelOpen:: msgbox VerdanturfTown_Text_ManDugTunnelForLove, MSGBOX_DEFAULT applymovement LOCALID_TWIN, Common_Movement_FaceOriginalDirection waitmovement 0 release end -VerdanturfTown_EventScript_Man:: @ 81EB5A8 +VerdanturfTown_EventScript_Man:: msgbox VerdanturfTown_Text_AirCleanHere, MSGBOX_NPC end -VerdanturfTown_EventScript_Camper:: @ 81EB5B1 +VerdanturfTown_EventScript_Camper:: msgbox VerdanturfTown_Text_MakeBattleTentDebut, MSGBOX_NPC end -VerdanturfTown_EventScript_Boy:: @ 81EB5BA +VerdanturfTown_EventScript_Boy:: lock faceplayer goto_if_set FLAG_RUSTURF_TUNNEL_OPENED, VerdanturfTown_EventScript_BoyTunnelOpen @@ -42,28 +42,28 @@ VerdanturfTown_EventScript_Boy:: @ 81EB5BA release end -VerdanturfTown_EventScript_BoyTunnelOpen:: @ 81EB5CF +VerdanturfTown_EventScript_BoyTunnelOpen:: msgbox VerdanturfTown_Text_EasyToGetToRustboroNow, MSGBOX_DEFAULT release end -VerdanturfTown_EventScript_TownSign:: @ 81EB5D9 +VerdanturfTown_EventScript_TownSign:: msgbox VerdanturfTown_Text_TownSign, MSGBOX_SIGN end -VerdanturfTown_EventScript_WandasHouseSign:: @ 81EB5E2 +VerdanturfTown_EventScript_WandasHouseSign:: msgbox VerdanturfTown_Text_WandasHouse, MSGBOX_SIGN end -VerdanturfTown_EventScript_BattleTentSign:: @ 81EB5EB +VerdanturfTown_EventScript_BattleTentSign:: msgbox VerdanturfTown_Text_BattleTentSign, MSGBOX_SIGN end -VerdanturfTown_EventScript_RusturfTunnelSign:: @ 81EB5F4 +VerdanturfTown_EventScript_RusturfTunnelSign:: msgbox VerdanturfTown_Text_RusturfTunnelSign, MSGBOX_SIGN end -VerdanturfTown_Text_ManTryingToDigTunnel: @ 81EB5FD +VerdanturfTown_Text_ManTryingToDigTunnel: .string "My papa told me.\p" .string "He says this tunnel is full of\n" .string "timid POKéMON.\p" @@ -74,25 +74,25 @@ VerdanturfTown_Text_ManTryingToDigTunnel: @ 81EB5FD .string "But there's one man. He's trying to dig\n" .string "the tunnel by himself!$" -VerdanturfTown_Text_ManDugTunnelForLove: @ 81EB6E0 +VerdanturfTown_Text_ManDugTunnelForLove: .string "There was a man who dug a tunnel for\n" .string "a lady he loved.\p" .string "I don't really get it, but hey!$" -VerdanturfTown_Text_AirCleanHere: @ 81EB736 +VerdanturfTown_Text_AirCleanHere: .string "The way the winds blow, volcanic ash\n" .string "is never blown in this direction.\p" .string "The air is clean and delicious here.\n" .string "Living here should do wonders for even\l" .string "frail and sickly people.$" -VerdanturfTown_Text_MakeBattleTentDebut: @ 81EB7E2 +VerdanturfTown_Text_MakeBattleTentDebut: .string "My POKéMON and I, we've been riding\n" .string "a hot winning streak.\p" .string "So I decided to make my BATTLE TENT\n" .string "debut in this town.$" -VerdanturfTown_Text_GuyTryingToBustThroughCave: @ 81EB854 +VerdanturfTown_Text_GuyTryingToBustThroughCave: .string "Did you see the cave next to the\n" .string "POKéMON MART?\p" .string "There's a guy in there who's trying to\n" @@ -101,25 +101,25 @@ VerdanturfTown_Text_GuyTryingToBustThroughCave: @ 81EB854 .string "It'd be great if we could go through…\n" .string "It'll make it easy to visit RUSTBORO.$" -VerdanturfTown_Text_EasyToGetToRustboroNow: @ 81EB935 +VerdanturfTown_Text_EasyToGetToRustboroNow: .string "That cave next to the POKéMON MART\n" .string "is now a tunnel to the other side.\p" .string "It's great--it's easy to go shop for\n" .string "new DEVON products in RUSTBORO now.$" -VerdanturfTown_Text_TownSign: @ 81EB9C4 +VerdanturfTown_Text_TownSign: .string "VERDANTURF TOWN\p" .string "“The windswept highlands with the\n" .string "sweet fragrance of grass.”$" -VerdanturfTown_Text_WandasHouse: @ 81EBA11 +VerdanturfTown_Text_WandasHouse: .string "WANDA'S HOUSE$" -VerdanturfTown_Text_BattleTentSign: @ 81EBA1F +VerdanturfTown_Text_BattleTentSign: .string "BATTLE TENT VERDANTURF SITE\n" .string "“Feast Your Eyes on Battles!”$" -VerdanturfTown_Text_RusturfTunnelSign: @ 81EBA59 +VerdanturfTown_Text_RusturfTunnelSign: .string "RUSTURF TUNNEL\n" .string "“Linking RUSTBORO and VERDANTURF\p" .string "“The tunnel project has been\n" diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index ad77cdf5fc..755e6d8be7 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -2,7 +2,7 @@ .set LOCALID_OPPONENT, 2 .set LOCALID_ATTENDANT, 3 -VerdanturfTown_BattleTentBattleRoom_MapScripts:: @ 82022FA +VerdanturfTown_BattleTentBattleRoom_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, VerdanturfTown_BattleTentBattleRoom_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentBattleRoom_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, VerdanturfTown_BattleTentBattleRoom_OnWarp @@ -12,11 +12,11 @@ VerdanturfTown_BattleTentBattleRoom_MapScripts:: @ 82022FA @ The player is represented instead by object event 1, which has the gfx id VAR_OBJ_GFX_ID_1 @ The opponent is represented by object event 2, which has the gfx id VAR_OBJ_GFX_ID_0 -VerdanturfTown_BattleTentBattleRoom_OnTransition: @ 820230A +VerdanturfTown_BattleTentBattleRoom_OnTransition: call VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx end -VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 8202310 +VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: checkplayergender compare VAR_RESULT, MALE goto_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale @@ -24,28 +24,28 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: @ 8202310 goto_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return -VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @ 8202328 +VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: @ 8202333 +VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -VerdanturfTown_BattleTentBattleRoom_OnFrame: @ 820233E +VerdanturfTown_BattleTentBattleRoom_OnFrame: map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_EnterRoom .2byte 0 -VerdanturfTown_BattleTentBattleRoom_EventScript_EnterRoom:: @ 8202348 +VerdanturfTown_BattleTentBattleRoom_EventScript_EnterRoom:: showobjectat LOCALID_PLAYER, MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM applymovement LOCALID_PLAYER, VerdanturfTown_BattleTentBattleRoom_Movement_PlayerEnter waitmovement 0 frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 0 goto_if_ne VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -VerdanturfTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820236F +VerdanturfTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: tower_setopponent addobject LOCALID_OPPONENT applymovement LOCALID_OPPONENT, VerdanturfTown_BattleTentBattleRoom_Movement_OpponentEnter @@ -56,13 +56,13 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820236F call BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle switch VAR_RESULT case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent -VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: @ 82023AA +VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate -VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 82023C8 +VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT @@ -82,48 +82,48 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 82023C8 waitfanfare special HealPlayerParty -VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: @ 820243C +VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: frontier_get FRONTIER_DATA_BATTLE_NUM compare VAR_RESULT, 1 call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent compare VAR_RESULT, 2 call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 + multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, VerdanturfTown_BattleTentBattleRoom_EventScript_ContinueChallenge case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_AskPauseChallenge case 2, VerdanturfTown_BattleTentBattleRoom_EventScript_AskRetireChallenge -VerdanturfTown_BattleTentBattleRoom_EventScript_AskPauseChallenge:: @ 820248A +VerdanturfTown_BattleTentBattleRoom_EventScript_AskPauseChallenge:: msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT case NO, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge case YES, VerdanturfTown_BattleTentBattleRoom_EventScript_PauseChallenge case MULTI_B_PRESSED, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -VerdanturfTown_BattleTentBattleRoom_EventScript_AskRetireChallenge:: @ 82024B8 +VerdanturfTown_BattleTentBattleRoom_EventScript_AskRetireChallenge:: message BattleFrontier_BattlePalaceBattleRoom_Text_WishToQuitChallenge waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 + multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE switch VAR_RESULT case 1, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge case 0, VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost case MULTI_B_PRESSED, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge -VerdanturfTown_BattleTentBattleRoom_EventScript_ContinueChallenge:: @ 82024EA +VerdanturfTown_BattleTentBattleRoom_EventScript_ContinueChallenge:: applymovement LOCALID_ATTENDANT, Common_Movement_WalkInPlaceFastestRight applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 closemessage goto VerdanturfTown_BattleTentBattleRoom_EventScript_NextOpponentEnter -VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: @ 8202501 +VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 waitstate -VerdanturfTown_BattleTentBattleRoom_EventScript_PauseChallenge:: @ 820251F +VerdanturfTown_BattleTentBattleRoom_EventScript_PauseChallenge:: message BattleFrontier_BattlePalaceBattleRoom_Text_SavingData waitmessage verdanturftent_save CHALLENGE_STATUS_PAUSED @@ -133,11 +133,11 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_PauseChallenge:: @ 820251F frontier_reset end -VerdanturfTown_BattleTentBattleRoom_OnWarp: @ 8202541 +VerdanturfTown_BattleTentBattleRoom_OnWarp: map_script_2 VAR_TEMP_1, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_SetUpObjects .2byte 0 -VerdanturfTown_BattleTentBattleRoom_EventScript_SetUpObjects:: @ 820254B +VerdanturfTown_BattleTentBattleRoom_EventScript_SetUpObjects:: hideobjectat LOCALID_PLAYER, MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM call VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx setvar VAR_TEMP_1, 1 @@ -145,21 +145,21 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_SetUpObjects:: @ 820254B removeobject LOCALID_OPPONENT end -VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent:: @ 8202565 +VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent:: message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor2ndOpponent waitmessage return -VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent:: @ 820256C +VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent:: message BattleFrontier_BattlePalaceBattleRoom_Text_PreparedFor3rdOpponent waitmessage return -VerdanturfTown_BattleTentBattleRoom_Movement_SetInvisible: @ 8202573 +VerdanturfTown_BattleTentBattleRoom_Movement_SetInvisible: set_invisible step_end -VerdanturfTown_BattleTentBattleRoom_Movement_PlayerEnter: @ 8202575 +VerdanturfTown_BattleTentBattleRoom_Movement_PlayerEnter: set_visible walk_up walk_up @@ -167,7 +167,7 @@ VerdanturfTown_BattleTentBattleRoom_Movement_PlayerEnter: @ 8202575 face_right step_end -VerdanturfTown_BattleTentBattleRoom_Movement_OpponentEnter: @ 820257B +VerdanturfTown_BattleTentBattleRoom_Movement_OpponentEnter: walk_down walk_down walk_down @@ -175,7 +175,7 @@ VerdanturfTown_BattleTentBattleRoom_Movement_OpponentEnter: @ 820257B face_left step_end -VerdanturfTown_BattleTentBattleRoom_Movement_OpponentExit: @ 8202581 +VerdanturfTown_BattleTentBattleRoom_Movement_OpponentExit: walk_up walk_up walk_up diff --git a/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc b/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc index 24d047a2a8..c2e9dbd6a7 100644 --- a/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc @@ -1,14 +1,14 @@ .set LOCALID_ATTENDANT, 1 -VerdanturfTown_BattleTentCorridor_MapScripts:: @ 820208A +VerdanturfTown_BattleTentCorridor_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentCorridor_OnFrame .byte 0 -VerdanturfTown_BattleTentCorridor_OnFrame: @ 8202090 +VerdanturfTown_BattleTentCorridor_OnFrame: map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentCorridor_EventScript_EnterCorridor .2byte 0 -VerdanturfTown_BattleTentCorridor_EventScript_EnterCorridor:: @ 820209A +VerdanturfTown_BattleTentCorridor_EventScript_EnterCorridor:: lockall setvar VAR_TEMP_0, 1 applymovement LOCALID_ATTENDANT, VerdanturfTown_BattleTentCorridor_Movement_WalkToDoor @@ -27,16 +27,16 @@ VerdanturfTown_BattleTentCorridor_EventScript_EnterCorridor:: @ 820209A releaseall end -VerdanturfTown_BattleTentCorridor_Movement_WalkToDoor: @ 82020DE +VerdanturfTown_BattleTentCorridor_Movement_WalkToDoor: walk_up walk_up walk_up walk_up step_end -VerdanturfTown_BattleTentCorridor_Movement_PlayerEnterDoor: @ 82020E3 +VerdanturfTown_BattleTentCorridor_Movement_PlayerEnterDoor: walk_up -VerdanturfTown_BattleTentCorridor_Movement_AttendantEnterDoor: @ 82020E4 +VerdanturfTown_BattleTentCorridor_Movement_AttendantEnterDoor: walk_up set_invisible step_end @@ -44,7 +44,7 @@ VerdanturfTown_BattleTentCorridor_Movement_AttendantEnterDoor: @ 82020E4 @ Leftover text from when this was a Contest Hall in R/S @ Unused -VerdanturfTown_ContestHall_Text_WhichContestYouEntering: @ 82020E7 +VerdanturfTown_ContestHall_Text_WhichContestYouEntering: .string "Which CONTEST are you entering?\n" .string "Want a piece of advice?\p" .string "In any CONTEST, for example, a CUTE\n" @@ -54,7 +54,7 @@ VerdanturfTown_ContestHall_Text_WhichContestYouEntering: @ 82020E7 .string "POKéMON better.$" @ Unused -VerdanturfTown_ContestHall_Text_RaisedMonToBeCute: @ 82021C4 +VerdanturfTown_ContestHall_Text_RaisedMonToBeCute: .string "I raised my POKéMON to be cute.\p" .string "I found out you can put POKéMON in\n" .string "a CONTEST for cuteness!\p" @@ -62,7 +62,7 @@ VerdanturfTown_ContestHall_Text_RaisedMonToBeCute: @ 82021C4 .string "loving care…$" @ Unused -VerdanturfTown_ContestHall_Text_MyMonRules: @ 8202251 +VerdanturfTown_ContestHall_Text_MyMonRules: .string "My POKéMON rules!\p" .string "It's cool, tough yet beautiful, cute,\n" .string "and smart. It's complete!\p" @@ -70,7 +70,7 @@ VerdanturfTown_ContestHall_Text_MyMonRules: @ 8202251 .string "single CONTEST.$" @ Unused -VerdanturfTown_ContestHall_Text_NormalRankStage: @ 82022D6 +VerdanturfTown_ContestHall_Text_NormalRankStage: .string "POKéMON CONTESTS\n" .string "NORMAL RANK STAGE!$" diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index f7a03b1ec9..dd8f0eaa45 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -1,20 +1,20 @@ .set LOCALID_ATTENDANT, 1 -VerdanturfTown_BattleTentLobby_MapScripts:: @ 82016D0 +VerdanturfTown_BattleTentLobby_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, VerdanturfTown_BattleTentLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, VerdanturfTown_BattleTentLobby_OnWarp .byte 0 -VerdanturfTown_BattleTentLobby_OnWarp: @ 82016DB +VerdanturfTown_BattleTentLobby_OnWarp: map_script_2 VAR_TEMP_1, 0, VerdanturfTown_BattleTentLobby_EventScript_TurnPlayerNorth .2byte 0 -VerdanturfTown_BattleTentLobby_EventScript_TurnPlayerNorth:: @ 82016E5 +VerdanturfTown_BattleTentLobby_EventScript_TurnPlayerNorth:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -VerdanturfTown_BattleTentLobby_OnFrame: @ 82016EF +VerdanturfTown_BattleTentLobby_OnFrame: map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentLobby_EventScript_GetChallengeStatus map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, VerdanturfTown_BattleTentLobby_EventScript_QuitWithoutSaving map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, VerdanturfTown_BattleTentLobby_EventScript_ResumeChallenge @@ -22,11 +22,11 @@ VerdanturfTown_BattleTentLobby_OnFrame: @ 82016EF map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, VerdanturfTown_BattleTentLobby_EventScript_LostChallenge .2byte 0 -VerdanturfTown_BattleTentLobby_EventScript_GetChallengeStatus:: @ 8201719 +VerdanturfTown_BattleTentLobby_EventScript_GetChallengeStatus:: frontier_getstatus end -VerdanturfTown_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 8201722 +VerdanturfTown_BattleTentLobby_EventScript_QuitWithoutSaving:: lockall msgbox BattleFrontier_BattlePalaceLobby_Text_FailedToSaveBeforeEndingChallenge, MSGBOX_DEFAULT closemessage @@ -36,7 +36,7 @@ VerdanturfTown_BattleTentLobby_EventScript_QuitWithoutSaving:: @ 8201722 releaseall end -VerdanturfTown_BattleTentLobby_EventScript_WonChallenge:: @ 8201757 +VerdanturfTown_BattleTentLobby_EventScript_WonChallenge:: lockall msgbox VerdanturfTown_BattleTentLobby_Text_AchievedThreeWinStreak, MSGBOX_DEFAULT message VerdanturfTown_BattleTentLobby_Text_FeatWillBeRecorded @@ -47,7 +47,7 @@ VerdanturfTown_BattleTentLobby_EventScript_WonChallenge:: @ 8201757 playse SE_SAVE waitse -VerdanturfTown_BattleTentLobby_EventScript_GivePrize:: @ 8201791 +VerdanturfTown_BattleTentLobby_EventScript_GivePrize:: msgbox VerdanturfTown_BattleTentLobby_Text_PresentYouWithPrize, MSGBOX_DEFAULT verdanturftent_giveprize switch VAR_RESULT @@ -63,7 +63,7 @@ VerdanturfTown_BattleTentLobby_EventScript_GivePrize:: @ 8201791 releaseall end -VerdanturfTown_BattleTentLobby_EventScript_NoRoomForPrize:: @ 82017DD +VerdanturfTown_BattleTentLobby_EventScript_NoRoomForPrize:: msgbox BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize, MSGBOX_DEFAULT waitmessage closemessage @@ -71,13 +71,13 @@ VerdanturfTown_BattleTentLobby_EventScript_NoRoomForPrize:: @ 82017DD releaseall end -VerdanturfTown_BattleTentLobby_EventScript_PrizeWaiting:: @ 82017EE +VerdanturfTown_BattleTentLobby_EventScript_PrizeWaiting:: lockall msgbox VerdanturfTown_BattleTentLobby_Text_AchievedThreeWinStreak, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_GivePrize end -VerdanturfTown_BattleTentLobby_EventScript_LostChallenge:: @ 82017FD +VerdanturfTown_BattleTentLobby_EventScript_LostChallenge:: lockall message VerdanturfTown_BattleTentLobby_Text_ResultsWillBeRecorded waitmessage @@ -91,7 +91,7 @@ VerdanturfTown_BattleTentLobby_EventScript_LostChallenge:: @ 82017FD releaseall end -VerdanturfTown_BattleTentLobby_EventScript_ResumeChallenge:: @ 8201837 +VerdanturfTown_BattleTentLobby_EventScript_ResumeChallenge:: lockall msgbox BattleFrontier_BattlePalaceLobby_Text_WeHaveBeenWaiting, MSGBOX_DEFAULT message BattleFrontier_BattlePalaceLobby_Text_MustSaveBeforeChallenge @@ -103,7 +103,7 @@ VerdanturfTown_BattleTentLobby_EventScript_ResumeChallenge:: @ 8201837 setvar VAR_TEMP_0, 255 goto VerdanturfTown_BattleTentLobby_EventScript_EnterChallenge -VerdanturfTown_BattleTentLobby_EventScript_Attendant:: @ 8201873 +VerdanturfTown_BattleTentLobby_EventScript_Attendant:: lock faceplayer verdanturftent_getprize @@ -111,17 +111,17 @@ VerdanturfTown_BattleTentLobby_EventScript_Attendant:: @ 8201873 goto_if_ne VerdanturfTown_BattleTentLobby_EventScript_PrizeWaiting special SavePlayerParty msgbox VerdanturfTown_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT -VerdanturfTown_BattleTentLobby_EventScript_AskEnterChallenge:: @ 8201893 +VerdanturfTown_BattleTentLobby_EventScript_AskEnterChallenge:: message VerdanturfTown_BattleTentLobby_Text_TakeChallenge waitmessage - multichoice 17, 6, MULTI_CHALLENGEINFO, 0 + multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT case 0, VerdanturfTown_BattleTentLobby_EventScript_TryEnterChallenge case 1, VerdanturfTown_BattleTentLobby_EventScript_ExplainChallenge case 2, VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_TryEnterChallenge:: @ 82018CF +VerdanturfTown_BattleTentLobby_EventScript_TryEnterChallenge:: setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_PALACE setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 @@ -143,7 +143,7 @@ VerdanturfTown_BattleTentLobby_EventScript_TryEnterChallenge:: @ 82018CF case YES, VerdanturfTown_BattleTentLobby_EventScript_SaveBeforeChallenge case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 8201954 +VerdanturfTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER verdanturftent_init @@ -156,7 +156,7 @@ VerdanturfTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: @ 8201954 setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed -VerdanturfTown_BattleTentLobby_EventScript_EnterChallenge:: @ 82019AE +VerdanturfTown_BattleTentLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox VerdanturfTown_BattleTentLobby_Text_NowFollowMe, MSGBOX_DEFAULT @@ -167,36 +167,36 @@ VerdanturfTown_BattleTentLobby_EventScript_EnterChallenge:: @ 82019AE waitstate end -VerdanturfTown_BattleTentLobby_EventScript_ExplainChallenge:: @ 82019DB +VerdanturfTown_BattleTentLobby_EventScript_ExplainChallenge:: msgbox VerdanturfTown_BattleTentLobby_Text_ExplainVerdanturfTent, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_AskEnterChallenge -VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMons:: @ 82019E8 +VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMons:: switch VAR_RESULT case FRONTIER_LVL_50, VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50 case FRONTIER_LVL_OPEN, VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen -VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50:: @ 8201A03 +VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLv50:: msgbox VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_EndCancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 8201A10 +VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMonsLvOpen:: msgbox VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_EndCancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: @ 8201A1D +VerdanturfTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 goto VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge -VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: @ 8201A34 +VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge:: special LoadPlayerParty -VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge:: @ 8201A37 +VerdanturfTown_BattleTentLobby_EventScript_CancelChallenge:: msgbox VerdanturfTown_BattleTentLobby_Text_ReturnFortified, MSGBOX_DEFAULT -VerdanturfTown_BattleTentLobby_EventScript_EndCancelChallenge:: @ 8201A3F +VerdanturfTown_BattleTentLobby_EventScript_EndCancelChallenge:: release end -VerdanturfTown_BattleTentLobby_EventScript_WalkToDoor:: @ 8201A41 +VerdanturfTown_BattleTentLobby_EventScript_WalkToDoor:: applymovement LOCALID_ATTENDANT, VerdanturfTown_BattleTentLobby_Movement_WalkToDoor applymovement OBJ_EVENT_ID_PLAYER, VerdanturfTown_BattleTentLobby_Movement_WalkToDoor waitmovement 0 @@ -209,24 +209,24 @@ VerdanturfTown_BattleTentLobby_EventScript_WalkToDoor:: @ 8201A41 waitdooranim return -VerdanturfTown_BattleTentLobby_Movement_WalkToDoor: @ 8201A70 +VerdanturfTown_BattleTentLobby_Movement_WalkToDoor: walk_up walk_up walk_up step_end -VerdanturfTown_BattleTentLobby_Movement_AttendantEnterDoor: @ 8201A74 +VerdanturfTown_BattleTentLobby_Movement_AttendantEnterDoor: walk_up set_invisible step_end -VerdanturfTown_BattleTentLobby_Movement_PlayerEnterDoor: @ 8201A77 +VerdanturfTown_BattleTentLobby_Movement_PlayerEnterDoor: walk_up walk_up set_invisible step_end -VerdanturfTown_BattleTentLobby_EventScript_AttractGiver:: @ 8201A7B +VerdanturfTown_BattleTentLobby_EventScript_AttractGiver:: lock faceplayer goto_if_set FLAG_RECEIVED_TM45, VerdanturfTown_BattleTentLobby_EventScript_ReceivedAttract @@ -239,22 +239,22 @@ VerdanturfTown_BattleTentLobby_EventScript_AttractGiver:: @ 8201A7B release end -VerdanturfTown_BattleTentLobby_EventScript_ReceivedAttract:: @ 8201AB2 +VerdanturfTown_BattleTentLobby_EventScript_ReceivedAttract:: msgbox VerdanturfTown_BattleTentLobby_Text_AttractionMutual, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_Boy1:: @ 8201ABC +VerdanturfTown_BattleTentLobby_EventScript_Boy1:: msgbox VerdanturfTown_BattleTentLobby_Text_TaughtWhatKindsOfMoves, MSGBOX_NPC end -VerdanturfTown_BattleTentLobby_EventScript_Boy2:: @ 8201AC5 +VerdanturfTown_BattleTentLobby_EventScript_Boy2:: lock msgbox VerdanturfTown_BattleTentLobby_Text_MonsReluctantToUseDislikedMoves, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_Scott:: @ 8201AD0 +VerdanturfTown_BattleTentLobby_EventScript_Scott:: lock faceplayer goto_if_set FLAG_MET_SCOTT_IN_VERDANTURF, VerdanturfTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo @@ -264,24 +264,24 @@ VerdanturfTown_BattleTentLobby_EventScript_Scott:: @ 8201AD0 release end -VerdanturfTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo:: @ 8201AED +VerdanturfTown_BattleTentLobby_EventScript_ScottAlreadySpokenTo:: msgbox VerdanturfTown_BattleTentLobby_Text_ScottVisitRegularly, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_LittleBoy:: @ 8201AF7 +VerdanturfTown_BattleTentLobby_EventScript_LittleBoy:: lock msgbox VerdanturfTown_BattleTentLobby_Text_GentleMonsScaryIfAngry, MSGBOX_DEFAULT release end -VerdanturfTown_BattleTentLobby_EventScript_RulesBoard:: @ 8201B02 +VerdanturfTown_BattleTentLobby_EventScript_RulesBoard:: lockall msgbox VerdanturfTown_BattleTentLobby_Text_RulesAreListed, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard:: @ 8201B11 +VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard:: message BattleFrontier_BattlePalaceLobby_Text_ReadWhichHeading waitmessage setvar VAR_0x8004, SCROLL_MULTI_BATTLE_TENT_RULES @@ -298,41 +298,41 @@ VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard:: @ 8201B11 case MULTI_B_PRESSED, VerdanturfTown_BattleTentLobby_EventScript_ExitRules end -VerdanturfTown_BattleTentLobby_EventScript_RulesLevel:: @ 8201B7E +VerdanturfTown_BattleTentLobby_EventScript_RulesLevel:: msgbox BattleTentLobby_Text_ExplainLevelRules, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_RulesBasics:: @ 8201B8C +VerdanturfTown_BattleTentLobby_EventScript_RulesBasics:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesBasics, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_RulesNature:: @ 8201B9A +VerdanturfTown_BattleTentLobby_EventScript_RulesNature:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesNature, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_RulesMoves:: @ 8201BA8 +VerdanturfTown_BattleTentLobby_EventScript_RulesMoves:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesMoves, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_RulesUnderpowered:: @ 8201BB6 +VerdanturfTown_BattleTentLobby_EventScript_RulesUnderpowered:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesUnderpowered, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_RulesWhenInDanger:: @ 8201BC4 +VerdanturfTown_BattleTentLobby_EventScript_RulesWhenInDanger:: msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainRulesWhenInDanger, MSGBOX_DEFAULT goto VerdanturfTown_BattleTentLobby_EventScript_ReadRulesBoard end -VerdanturfTown_BattleTentLobby_EventScript_ExitRules:: @ 8201BD2 +VerdanturfTown_BattleTentLobby_EventScript_ExitRules:: releaseall end -VerdanturfTown_BattleTentLobby_Text_MonsReluctantToUseDislikedMoves: @ 8201BD4 +VerdanturfTown_BattleTentLobby_Text_MonsReluctantToUseDislikedMoves: .string "If it doesn't like a certain move,\n" .string "a POKéMON will be reluctant to use it.\p" .string "It doesn't matter how strong it is,\n" @@ -344,14 +344,14 @@ VerdanturfTown_BattleTentLobby_Text_MonsReluctantToUseDislikedMoves: @ 8201BD4 .string "potential, it's probably failing at\l" .string "using a disliked move against its will.$" -VerdanturfTown_BattleTentLobby_Text_GentleMonsScaryIfAngry: @ 8201D11 +VerdanturfTown_BattleTentLobby_Text_GentleMonsScaryIfAngry: .string "My big sister is gentle usually.\n" .string "But when she gets angry,\l" .string "she's really, really scary!\p" .string "I bet a gentle POKéMON will be scary\n" .string "if it gets angry!$" -VerdanturfTown_BattleTentLobby_Text_AttractionRunsDeep: @ 8201D9E +VerdanturfTown_BattleTentLobby_Text_AttractionRunsDeep: .string "My feelings toward my POKéMON…\n" .string "The attraction runs deep…\p" .string "Oh, hi, you didn't see that, did you?\n" @@ -359,20 +359,20 @@ VerdanturfTown_BattleTentLobby_Text_AttractionRunsDeep: @ 8201D9E .string "How would you like this TM for\n" .string "your POKéMON?$" -VerdanturfTown_BattleTentLobby_Text_AttractionMutual: @ 8201E43 +VerdanturfTown_BattleTentLobby_Text_AttractionMutual: .string "My feelings toward my POKéMON…\n" .string "I'm sure the attraction is mutual!\p" .string "They battle exactly the way I want\n" .string "them to!$" -VerdanturfTown_BattleTentLobby_Text_TaughtWhatKindsOfMoves: @ 8201EB1 +VerdanturfTown_BattleTentLobby_Text_TaughtWhatKindsOfMoves: .string "What kind of moves have you taught\n" .string "your POKéMON?\p" .string "I think you would give yourself\n" .string "an advantage if they knew how to\l" .string "heal or protect themselves.$" -VerdanturfTown_BattleTentLobby_Text_ScottCanMeetToughTrainers: @ 8201F3F +VerdanturfTown_BattleTentLobby_Text_ScottCanMeetToughTrainers: .string "SCOTT: Hey there, {PLAYER}{KUN}!\n" .string "I thought I might see you here.\p" .string "A BATTLE TENT's a place where\n" @@ -382,7 +382,7 @@ VerdanturfTown_BattleTentLobby_Text_ScottCanMeetToughTrainers: @ 8201F3F .string "{PLAYER}{KUN}, I expect you to do\n" .string "the best you can!$" -VerdanturfTown_BattleTentLobby_Text_ScottVisitRegularly: @ 8202025 +VerdanturfTown_BattleTentLobby_Text_ScottVisitRegularly: .string "SCOTT: I visit here regularly in hopes\n" .string "of seeing tough TRAINERS in action\l" .string "in whatever the situation.$" diff --git a/data/maps/VerdanturfTown_FriendshipRatersHouse/scripts.inc b/data/maps/VerdanturfTown_FriendshipRatersHouse/scripts.inc index 993188cb2f..9d0485a776 100644 --- a/data/maps/VerdanturfTown_FriendshipRatersHouse/scripts.inc +++ b/data/maps/VerdanturfTown_FriendshipRatersHouse/scripts.inc @@ -1,7 +1,7 @@ -VerdanturfTown_FriendshipRatersHouse_MapScripts:: @ 8203030 +VerdanturfTown_FriendshipRatersHouse_MapScripts:: .byte 0 -VerdanturfTown_FriendshipRatersHouse_EventScript_FriendshipRater:: @ 8203031 +VerdanturfTown_FriendshipRatersHouse_EventScript_FriendshipRater:: lock faceplayer msgbox VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou, MSGBOX_DEFAULT @@ -17,42 +17,42 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_FriendshipRater:: @ 8203031 release end -VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou:: @ 8203094 +VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou:: msgbox VerdanturfTown_FriendshipRatersHouse_Text_DetestsYou, MSGBOX_DEFAULT release end -VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary:: @ 820309E +VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary:: msgbox VerdanturfTown_FriendshipRatersHouse_Text_VeryWary, MSGBOX_DEFAULT release end -VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou:: @ 82030A8 +VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou:: msgbox VerdanturfTown_FriendshipRatersHouse_Text_NotUsedToYou, MSGBOX_DEFAULT release end -VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou:: @ 82030B2 +VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou:: msgbox VerdanturfTown_FriendshipRatersHouse_Text_GettingUsedToYou, MSGBOX_DEFAULT release end -VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot:: @ 82030BC +VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot:: msgbox VerdanturfTown_FriendshipRatersHouse_Text_LikesYouQuiteALot, MSGBOX_DEFAULT release end -VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy:: @ 82030C6 +VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy:: msgbox VerdanturfTown_FriendshipRatersHouse_Text_VeryHappy, MSGBOX_DEFAULT release end -VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou:: @ 82030D0 +VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou:: msgbox VerdanturfTown_FriendshipRatersHouse_Text_AdoresYou, MSGBOX_DEFAULT release end -VerdanturfTown_FriendshipRatersHouse_EventScript_Pikachu:: @ 82030DA +VerdanturfTown_FriendshipRatersHouse_EventScript_Pikachu:: lock faceplayer waitse @@ -62,43 +62,43 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_Pikachu:: @ 82030DA release end -VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou: @ 82030ED +VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou: .string "Let me see your POKéMON.\n" .string "I'll check to see how much it likes you.\p" .string "Oh.\n" .string "Your POKéMON…$" -VerdanturfTown_FriendshipRatersHouse_Text_AdoresYou: @ 8203141 +VerdanturfTown_FriendshipRatersHouse_Text_AdoresYou: .string "It adores you.\n" .string "It can't possibly love you any more.\l" .string "I even feel happy seeing it.$" -VerdanturfTown_FriendshipRatersHouse_Text_VeryHappy: @ 8203192 +VerdanturfTown_FriendshipRatersHouse_Text_VeryHappy: .string "It seems to be very happy.\n" .string "It obviously likes you a whole lot.$" -VerdanturfTown_FriendshipRatersHouse_Text_LikesYouQuiteALot: @ 82031D1 +VerdanturfTown_FriendshipRatersHouse_Text_LikesYouQuiteALot: .string "It likes you quite a lot.\n" .string "It seems to want to be babied a little.$" -VerdanturfTown_FriendshipRatersHouse_Text_GettingUsedToYou: @ 8203213 +VerdanturfTown_FriendshipRatersHouse_Text_GettingUsedToYou: .string "It's getting used to you.\n" .string "It seems to believe in you.$" -VerdanturfTown_FriendshipRatersHouse_Text_NotUsedToYou: @ 8203249 +VerdanturfTown_FriendshipRatersHouse_Text_NotUsedToYou: .string "It's not very used to you yet.\n" .string "It neither loves nor hates you.$" -VerdanturfTown_FriendshipRatersHouse_Text_VeryWary: @ 8203288 +VerdanturfTown_FriendshipRatersHouse_Text_VeryWary: .string "It's very wary.\n" .string "It has scary viciousness in its eyes.\l" .string "It doesn't like you much at all.$" -VerdanturfTown_FriendshipRatersHouse_Text_DetestsYou: @ 82032DF +VerdanturfTown_FriendshipRatersHouse_Text_DetestsYou: .string "This is a little hard for me to say…\p" .string "Your POKéMON simply detests you.\n" .string "Doesn't that make you uncomfortable?$" -VerdanturfTown_FriendshipRatersHouse_Text_Pikachu: @ 820334A +VerdanturfTown_FriendshipRatersHouse_Text_Pikachu: .string "PIKACHU: Pika pika!$" diff --git a/data/maps/VerdanturfTown_House/scripts.inc b/data/maps/VerdanturfTown_House/scripts.inc index 5f47e52fae..c4dc922def 100644 --- a/data/maps/VerdanturfTown_House/scripts.inc +++ b/data/maps/VerdanturfTown_House/scripts.inc @@ -1,21 +1,21 @@ -VerdanturfTown_House_MapScripts:: @ 820335E +VerdanturfTown_House_MapScripts:: .byte 0 -VerdanturfTown_House_EventScript_Woman1:: @ 820335F +VerdanturfTown_House_EventScript_Woman1:: msgbox VerdanturfTown_House_Text_TrainersGatherAtPokemonLeague, MSGBOX_NPC end -VerdanturfTown_House_EventScript_Woman2:: @ 8203368 +VerdanturfTown_House_EventScript_Woman2:: msgbox VerdanturfTown_House_Text_DefeatEliteFourInARow, MSGBOX_NPC end -VerdanturfTown_House_Text_TrainersGatherAtPokemonLeague: @ 8203371 +VerdanturfTown_House_Text_TrainersGatherAtPokemonLeague: .string "Far away, deep in EVER GRANDE CITY,\n" .string "is the POKéMON LEAGUE.\p" .string "The TRAINERS who gather there are\n" .string "all frighteningly well skilled.$" -VerdanturfTown_House_Text_DefeatEliteFourInARow: @ 82033EE +VerdanturfTown_House_Text_DefeatEliteFourInARow: .string "In the POKéMON LEAGUE, I think the\n" .string "rules say that you have to battle the\l" .string "ELITE FOUR all in a row.\p" diff --git a/data/maps/VerdanturfTown_Mart/scripts.inc b/data/maps/VerdanturfTown_Mart/scripts.inc index cc4694fe1b..7eb340df2a 100644 --- a/data/maps/VerdanturfTown_Mart/scripts.inc +++ b/data/maps/VerdanturfTown_Mart/scripts.inc @@ -1,7 +1,7 @@ -VerdanturfTown_Mart_MapScripts:: @ 8202586 +VerdanturfTown_Mart_MapScripts:: .byte 0 -VerdanturfTown_Mart_EventScript_Clerk:: @ 8202587 +VerdanturfTown_Mart_EventScript_Clerk:: lock faceplayer message gText_HowMayIServeYou @@ -12,7 +12,7 @@ VerdanturfTown_Mart_EventScript_Clerk:: @ 8202587 end .align 2 -VerdanturfTown_Mart_Pokemart: @ 82025A0 +VerdanturfTown_Mart_Pokemart: .2byte ITEM_GREAT_BALL .2byte ITEM_NEST_BALL .2byte ITEM_SUPER_POTION @@ -28,31 +28,31 @@ VerdanturfTown_Mart_Pokemart: @ 82025A0 release end -VerdanturfTown_Mart_EventScript_Boy:: @ 82025BA +VerdanturfTown_Mart_EventScript_Boy:: msgbox VerdanturfTown_Mart_Text_XSpecialIsCrucial, MSGBOX_NPC end -VerdanturfTown_Mart_EventScript_ExpertF:: @ 82025C3 +VerdanturfTown_Mart_EventScript_ExpertF:: msgbox VerdanturfTown_Mart_Text_NoStrategyGuidesForBattleTent, MSGBOX_NPC end -VerdanturfTown_Mart_EventScript_Lass:: @ 82025CC +VerdanturfTown_Mart_EventScript_Lass:: msgbox VerdanturfTown_Mart_Text_NestBallOnWeakenedPokemon, MSGBOX_NPC end -VerdanturfTown_Mart_Text_XSpecialIsCrucial: @ 82025D5 +VerdanturfTown_Mart_Text_XSpecialIsCrucial: .string "For any POKéMON match, X SPECIAL\n" .string "is crucial.\p" .string "It jacks up the power of some moves\n" .string "even though it's only for one battle.$" -VerdanturfTown_Mart_Text_NoStrategyGuidesForBattleTent: @ 820264C +VerdanturfTown_Mart_Text_NoStrategyGuidesForBattleTent: .string "They don't seem to sell any winning\n" .string "strategy guides for the BATTLE TENT…\p" .string "It seems one must rely on one's\n" .string "own wits after all…$" -VerdanturfTown_Mart_Text_NestBallOnWeakenedPokemon: @ 82026C9 +VerdanturfTown_Mart_Text_NestBallOnWeakenedPokemon: .string "The NEST BALL works better on\n" .string "weakened POKéMON.\p" .string "VERDANTURF is the only place you can\n" diff --git a/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc b/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc index f59d404569..5fbdba42f4 100644 --- a/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc @@ -1,16 +1,16 @@ .set LOCALID_NURSE, 1 -VerdanturfTown_PokemonCenter_1F_MapScripts:: @ 8202726 +VerdanturfTown_PokemonCenter_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, VerdanturfTown_PokemonCenter_1F_OnTransition map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume .byte 0 -VerdanturfTown_PokemonCenter_1F_OnTransition: @ 8202731 +VerdanturfTown_PokemonCenter_1F_OnTransition: setrespawn HEAL_LOCATION_VERDANTURF_TOWN call Common_EventScript_UpdateBrineyLocation end -VerdanturfTown_PokemonCenter_1F_EventScript_Nurse:: @ 820273A +VerdanturfTown_PokemonCenter_1F_EventScript_Nurse:: setvar VAR_0x800B, LOCALID_NURSE call Common_EventScript_PkmnCenterNurse waitmessage @@ -18,15 +18,15 @@ VerdanturfTown_PokemonCenter_1F_EventScript_Nurse:: @ 820273A release end -VerdanturfTown_PokemonCenter_1F_EventScript_Gentleman:: @ 8202748 +VerdanturfTown_PokemonCenter_1F_EventScript_Gentleman:: msgbox VerdanturfTown_PokemonCenter_1F_Text_FaithInYourPokemon, MSGBOX_NPC end -VerdanturfTown_PokemonCenter_1F_EventScript_ExpertM:: @ 8202751 +VerdanturfTown_PokemonCenter_1F_EventScript_ExpertM:: msgbox VerdanturfTown_PokemonCenter_1F_Text_VisitForBattleTent, MSGBOX_NPC end -VerdanturfTown_PokemonCenter_1F_Text_FaithInYourPokemon: @ 820275A +VerdanturfTown_PokemonCenter_1F_Text_FaithInYourPokemon: .string "You can't consider yourself a real\n" .string "TRAINER if you don't have faith\l" .string "in your POKéMON.\p" @@ -34,7 +34,7 @@ VerdanturfTown_PokemonCenter_1F_Text_FaithInYourPokemon: @ 820275A .string "in their battling POKéMON can win\l" .string "through to the very end.$" -VerdanturfTown_PokemonCenter_1F_Text_VisitForBattleTent: @ 820280B +VerdanturfTown_PokemonCenter_1F_Text_VisitForBattleTent: .string "The reason why anyone would visit\n" .string "VERDANTURF…\p" .string "It's the BATTLE TENT. It goes without\n" diff --git a/data/maps/VerdanturfTown_PokemonCenter_2F/scripts.inc b/data/maps/VerdanturfTown_PokemonCenter_2F/scripts.inc index 7802f5b032..4a6971ed1f 100644 --- a/data/maps/VerdanturfTown_PokemonCenter_2F/scripts.inc +++ b/data/maps/VerdanturfTown_PokemonCenter_2F/scripts.inc @@ -1,4 +1,4 @@ -VerdanturfTown_PokemonCenter_2F_MapScripts:: @ 8202897 +VerdanturfTown_PokemonCenter_2F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad @@ -6,15 +6,15 @@ VerdanturfTown_PokemonCenter_2F_MapScripts:: @ 8202897 .byte 0 @ The below 3 are unused and leftover from RS -VerdanturfTown_PokemonCenter_2F_EventScript_Colosseum:: @ 82028AC +VerdanturfTown_PokemonCenter_2F_EventScript_Colosseum:: call CableClub_EventScript_Colosseum end -VerdanturfTown_PokemonCenter_2F_EventScript_TradeCenter:: @ 82028B2 +VerdanturfTown_PokemonCenter_2F_EventScript_TradeCenter:: call CableClub_EventScript_TradeCenter end -VerdanturfTown_PokemonCenter_2F_EventScript_RecordCorner:: @ 82028B8 +VerdanturfTown_PokemonCenter_2F_EventScript_RecordCorner:: call CableClub_EventScript_RecordCorner end diff --git a/data/maps/VerdanturfTown_WandasHouse/scripts.inc b/data/maps/VerdanturfTown_WandasHouse/scripts.inc index 25d37a7626..e9f5a6ae0d 100644 --- a/data/maps/VerdanturfTown_WandasHouse/scripts.inc +++ b/data/maps/VerdanturfTown_WandasHouse/scripts.inc @@ -1,7 +1,7 @@ -VerdanturfTown_WandasHouse_MapScripts:: @ 82028BE +VerdanturfTown_WandasHouse_MapScripts:: .byte 0 -VerdanturfTown_WandasHouse_EventScript_Wally:: @ 82028BF +VerdanturfTown_WandasHouse_EventScript_Wally:: lock faceplayer goto_if_set FLAG_WALLY_SPEECH, VerdanturfTown_WandasHouse_EventScript_WallyShortSpeech @@ -10,12 +10,12 @@ VerdanturfTown_WandasHouse_EventScript_Wally:: @ 82028BF release end -VerdanturfTown_WandasHouse_EventScript_WallyShortSpeech:: @ 82028D7 +VerdanturfTown_WandasHouse_EventScript_WallyShortSpeech:: msgbox VerdanturfTown_WandasHouse_Text_StrongerSpeechShort, MSGBOX_DEFAULT release end -VerdanturfTown_WandasHouse_EventScript_WallysUncle:: @ 82028E1 +VerdanturfTown_WandasHouse_EventScript_WallysUncle:: lock faceplayer goto_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, VerdanturfTown_WandasHouse_EventScript_WallysUncleEverGrande @@ -24,21 +24,21 @@ VerdanturfTown_WandasHouse_EventScript_WallysUncle:: @ 82028E1 release end -VerdanturfTown_WandasHouse_EventScript_WallysUncleSlippedOff:: @ 82028FF +VerdanturfTown_WandasHouse_EventScript_WallysUncleSlippedOff:: msgbox VerdanturfTown_WandasHouse_Text_WallySlippedOff, MSGBOX_DEFAULT release end -VerdanturfTown_WandasHouse_EventScript_WallysUncleEverGrande:: @ 8202909 +VerdanturfTown_WandasHouse_EventScript_WallysUncleEverGrande:: msgbox VerdanturfTown_WandasHouse_Text_WallyGoneThatFar, MSGBOX_DEFAULT release end -VerdanturfTown_WandasHouse_EventScript_WandasBoyfriend:: @ 8202913 +VerdanturfTown_WandasHouse_EventScript_WandasBoyfriend:: msgbox VerdanturfTown_WandasHouse_Text_CanSeeGirlfriendEveryDay, MSGBOX_NPC end -VerdanturfTown_WandasHouse_EventScript_Wanda:: @ 820291C +VerdanturfTown_WandasHouse_EventScript_Wanda:: lock faceplayer goto_if_set FLAG_DEFEATED_LAVARIDGE_GYM, VerdanturfTown_WandasHouse_EventScript_WandaDontWorry @@ -47,17 +47,17 @@ VerdanturfTown_WandasHouse_EventScript_Wanda:: @ 820291C release end -VerdanturfTown_WandasHouse_EventScript_MeetWanda:: @ 820293A +VerdanturfTown_WandasHouse_EventScript_MeetWanda:: msgbox VerdanturfTown_WandasHouse_Text_MeetWanda, MSGBOX_DEFAULT release end -VerdanturfTown_WandasHouse_EventScript_WandaDontWorry:: @ 8202944 +VerdanturfTown_WandasHouse_EventScript_WandaDontWorry:: msgbox VerdanturfTown_WandasHouse_Text_DontWorryAboutWally, MSGBOX_DEFAULT release end -VerdanturfTown_WandasHouse_EventScript_WallysAunt:: @ 820294E +VerdanturfTown_WandasHouse_EventScript_WallysAunt:: lock faceplayer goto_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, VerdanturfTown_WandasHouse_EventScript_WallysAuntEverGrande @@ -67,22 +67,22 @@ VerdanturfTown_WandasHouse_EventScript_WallysAunt:: @ 820294E release end -VerdanturfTown_WandasHouse_EventScript_WallysAuntTunnelOpen:: @ 8202975 +VerdanturfTown_WandasHouse_EventScript_WallysAuntTunnelOpen:: msgbox VerdanturfTown_WandasHouse_Text_DaughtersBoyfriendWasDigging, MSGBOX_DEFAULT release end -VerdanturfTown_WandasHouse_EventScript_WallysAuntAnythingHappened:: @ 820297F +VerdanturfTown_WandasHouse_EventScript_WallysAuntAnythingHappened:: msgbox VerdanturfTown_WandasHouse_Text_IfAnythingHappenedToWally, MSGBOX_DEFAULT release end -VerdanturfTown_WandasHouse_EventScript_WallysAuntEverGrande:: @ 8202989 +VerdanturfTown_WandasHouse_EventScript_WallysAuntEverGrande:: msgbox VerdanturfTown_WandasHouse_Text_WallyWasInEverGrande, MSGBOX_DEFAULT release end -VerdanturfTown_WandasHouse_Text_StrongerSpeech: @ 8202993 +VerdanturfTown_WandasHouse_Text_StrongerSpeech: .string "WALLY: I lost to you, {PLAYER}, but I'm\n" .string "not feeling down anymore.\p" .string "Because I have a new purpose in life.\n" @@ -94,13 +94,13 @@ VerdanturfTown_WandasHouse_Text_StrongerSpeech: @ 8202993 .string "When I do, I'm going to challenge you\n" .string "to another battle.$" -VerdanturfTown_WandasHouse_Text_StrongerSpeechShort: @ 8202ABE +VerdanturfTown_WandasHouse_Text_StrongerSpeechShort: .string "WALLY: Please watch me, {PLAYER}.\n" .string "I'm going to get stronger than you.\p" .string "When I do, I'm going to challenge you\n" .string "to another battle.$" -VerdanturfTown_WandasHouse_Text_WallysNextDoor: @ 8202B37 +VerdanturfTown_WandasHouse_Text_WallysNextDoor: .string "UNCLE: Oh! {PLAYER}{KUN}!\n" .string "WALLY's next door.\p" .string "But, boy, there's something I have to\n" @@ -111,18 +111,18 @@ VerdanturfTown_WandasHouse_Text_WallysNextDoor: @ 8202B37 .string "It could be POKéMON that are giving\l" .string "the boy hope.$" -VerdanturfTown_WandasHouse_Text_WallySlippedOff: @ 8202C20 +VerdanturfTown_WandasHouse_Text_WallySlippedOff: .string "WALLY's gone away…\n" .string "He slipped off on his own…$" -VerdanturfTown_WandasHouse_Text_WallyGoneThatFar: @ 8202C4E +VerdanturfTown_WandasHouse_Text_WallyGoneThatFar: .string "UNCLE: Is that right?\n" .string "WALLY's gone away that far all by\l" .string "himself…\p" .string "Well, I have to give him credit--he is\n" .string "my little brother's son.$" -VerdanturfTown_WandasHouse_Text_MeetWanda: @ 8202CCF +VerdanturfTown_WandasHouse_Text_MeetWanda: .string "WANDA: You are?\n" .string "Oh, right, I get it!\p" .string "You're the {PLAYER} who WALLY was\n" @@ -132,18 +132,18 @@ VerdanturfTown_WandasHouse_Text_MeetWanda: @ 8202CCF .string "I think WALLY's become a lot more lively\n" .string "and healthy since he came here.$" -VerdanturfTown_WandasHouse_Text_DontWorryAboutWally: @ 8202D91 +VerdanturfTown_WandasHouse_Text_DontWorryAboutWally: .string "WANDA: Don't worry about WALLY.\n" .string "He'll be just fine.\p" .string "I know my little cousin, and he has\n" .string "POKéMON with him, too.$" -VerdanturfTown_WandasHouse_Text_CanSeeGirlfriendEveryDay: @ 8202E00 +VerdanturfTown_WandasHouse_Text_CanSeeGirlfriendEveryDay: .string "Thanks to you, I can see my girlfriend\n" .string "every day.\l" .string "Happy? You bet I am!$" -VerdanturfTown_WandasHouse_Text_DaughtersBoyfriendDriven: @ 8202E47 +VerdanturfTown_WandasHouse_Text_DaughtersBoyfriendDriven: .string "My daughter's boyfriend is a very\n" .string "driven and passionate sort of person.\p" .string "He's been digging a tunnel nonstop\n" @@ -151,17 +151,17 @@ VerdanturfTown_WandasHouse_Text_DaughtersBoyfriendDriven: @ 8202E47 .string "My daughter's a little concerned,\n" .string "so she goes out to the tunnel a lot.$" -VerdanturfTown_WandasHouse_Text_DaughtersBoyfriendWasDigging: @ 8202F19 +VerdanturfTown_WandasHouse_Text_DaughtersBoyfriendWasDigging: .string "It's amazing. My daughter's boyfriend\n" .string "was digging the tunnel by hand!\p" .string "It's so incredible!$" -VerdanturfTown_WandasHouse_Text_IfAnythingHappenedToWally: @ 8202F73 +VerdanturfTown_WandasHouse_Text_IfAnythingHappenedToWally: .string "If anything were to happen to WALLY,\n" .string "I would never be able to look his\l" .string "parents in PETALBURG in the eye…$" -VerdanturfTown_WandasHouse_Text_WallyWasInEverGrande: @ 8202FDB +VerdanturfTown_WandasHouse_Text_WallyWasInEverGrande: .string "WALLY was in EVER GRANDE?\p" .string "His parents in PETALBURG would be\n" .string "astonished to hear that!$" diff --git a/data/maps/VictoryRoad_1F/scripts.inc b/data/maps/VictoryRoad_1F/scripts.inc index f7668d4a56..a194e61e0c 100644 --- a/data/maps/VictoryRoad_1F/scripts.inc +++ b/data/maps/VictoryRoad_1F/scripts.inc @@ -1,27 +1,27 @@ .set LOCALID_WALLY_ENTRANCE, 4 -VictoryRoad_1F_MapScripts:: @ 8235D7A +VictoryRoad_1F_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, VictoryRoad_1F_OnTransition .byte 0 -VictoryRoad_1F_OnTransition: @ 8235D80 +VictoryRoad_1F_OnTransition: compare VAR_VICTORY_ROAD_1F_STATE, 1 call_if_eq VictoryRoad_1F_EventScript_SetEntranceWallyPos1 compare VAR_VICTORY_ROAD_1F_STATE, 2 call_if_eq VictoryRoad_1F_EventScript_SetEntranceWallyPos2 end -VictoryRoad_1F_EventScript_SetEntranceWallyPos1:: @ 8235D97 +VictoryRoad_1F_EventScript_SetEntranceWallyPos1:: setobjectxyperm LOCALID_WALLY_ENTRANCE, 2, 24 setobjectmovementtype LOCALID_WALLY_ENTRANCE, MOVEMENT_TYPE_FACE_DOWN return -VictoryRoad_1F_EventScript_SetEntranceWallyPos2:: @ 8235DA3 +VictoryRoad_1F_EventScript_SetEntranceWallyPos2:: setobjectxyperm LOCALID_WALLY_ENTRANCE, 3, 24 setobjectmovementtype LOCALID_WALLY_ENTRANCE, MOVEMENT_TYPE_FACE_DOWN return -VictoryRoad_1F_EventScript_WallyBattleTrigger1:: @ 8235DAF +VictoryRoad_1F_EventScript_WallyBattleTrigger1:: lockall setvar VAR_0x8008, 1 addobject LOCALID_WALLY_ENTRANCE @@ -30,7 +30,7 @@ VictoryRoad_1F_EventScript_WallyBattleTrigger1:: @ 8235DAF goto VictoryRoad_1F_EventScript_WallyEntranceBattle end -VictoryRoad_1F_EventScript_WallyBattleTrigger2:: @ 8235DC8 +VictoryRoad_1F_EventScript_WallyBattleTrigger2:: lockall setvar VAR_0x8008, 2 addobject LOCALID_WALLY_ENTRANCE @@ -39,7 +39,7 @@ VictoryRoad_1F_EventScript_WallyBattleTrigger2:: @ 8235DC8 goto VictoryRoad_1F_EventScript_WallyEntranceBattle end -VictoryRoad_1F_EventScript_WallyEntranceBattle:: @ 8235DE1 +VictoryRoad_1F_EventScript_WallyEntranceBattle:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 msgbox VictoryRoad_1F_Text_WallyNotGoingToLoseAnymore, MSGBOX_DEFAULT @@ -52,7 +52,7 @@ VictoryRoad_1F_EventScript_WallyEntranceBattle:: @ 8235DE1 releaseall end -VictoryRoad_1F_Movement_WallyApproachPlayer1: @ 8235E15 +VictoryRoad_1F_Movement_WallyApproachPlayer1: walk_left walk_left walk_left @@ -66,7 +66,7 @@ VictoryRoad_1F_Movement_WallyApproachPlayer1: @ 8235E15 walk_up step_end -VictoryRoad_1F_Movement_WallyApproachPlayer2: @ 8235E21 +VictoryRoad_1F_Movement_WallyApproachPlayer2: walk_left walk_left walk_left @@ -80,12 +80,12 @@ VictoryRoad_1F_Movement_WallyApproachPlayer2: @ 8235E21 step_end @ This Wally appears near the entrance once his battle is triggered and remains there until the Hall of Fame is entered -VictoryRoad_1F_EventScript_EntranceWally:: @ 8235E2C +VictoryRoad_1F_EventScript_EntranceWally:: msgbox VictoryRoad_1F_Text_WallyPostEntranceBattle, MSGBOX_NPC end @ This Wally appears and remains at the exit after the Hall of Fame is entered -VictoryRoad_1F_EventScript_ExitWally:: @ 8235E35 +VictoryRoad_1F_EventScript_ExitWally:: trainerbattle_single TRAINER_WALLY_VR_2, VictoryRoad_1F_Text_WallyIntro, VictoryRoad_1F_Text_WallyDefeat specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE @@ -93,37 +93,37 @@ VictoryRoad_1F_EventScript_ExitWally:: @ 8235E35 msgbox VictoryRoad_1F_Text_WallyPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_1F_EventScript_RematchWally:: @ 8235E5C +VictoryRoad_1F_EventScript_RematchWally:: trainerbattle_rematch TRAINER_WALLY_VR_2, VictoryRoad_1F_Text_WallyIntro, VictoryRoad_1F_Text_WallyDefeat msgbox VictoryRoad_1F_Text_WallyPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_1F_EventScript_Edgar:: @ 8235E73 +VictoryRoad_1F_EventScript_Edgar:: trainerbattle_single TRAINER_EDGAR, VictoryRoad_1F_Text_EdgarIntro, VictoryRoad_1F_Text_EdgarDefeat msgbox VictoryRoad_1F_Text_EdgarPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_1F_EventScript_Albert:: @ 8235E8A +VictoryRoad_1F_EventScript_Albert:: trainerbattle_single TRAINER_ALBERT, VictoryRoad_1F_Text_AlbertIntro, VictoryRoad_1F_Text_AlbertDefeat msgbox VictoryRoad_1F_Text_AlbertPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_1F_EventScript_Hope:: @ 8235EA1 +VictoryRoad_1F_EventScript_Hope:: trainerbattle_single TRAINER_HOPE, VictoryRoad_1F_Text_HopeIntro, VictoryRoad_1F_Text_HopeDefeat msgbox VictoryRoad_1F_Text_HopePostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_1F_EventScript_Quincy:: @ 8235EB8 +VictoryRoad_1F_EventScript_Quincy:: trainerbattle_single TRAINER_QUINCY, VictoryRoad_1F_Text_QuincyIntro, VictoryRoad_1F_Text_QuincyDefeat msgbox VictoryRoad_1F_Text_QuincyPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_1F_EventScript_Katelynn:: @ 8235ECF +VictoryRoad_1F_EventScript_Katelynn:: trainerbattle_single TRAINER_KATELYNN, VictoryRoad_1F_Text_KatelynnIntro, VictoryRoad_1F_Text_KatelynnDefeat msgbox VictoryRoad_1F_Text_KatelynnPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_1F_Text_WallyNotGoingToLoseAnymore: @ 8235EE6 +VictoryRoad_1F_Text_WallyNotGoingToLoseAnymore: .string "WALLY: Hi! {PLAYER}!\p" .string "I bet you're surprised to see me here!\p" .string "I made it all the way here, and it's\n" @@ -135,89 +135,89 @@ VictoryRoad_1F_Text_WallyNotGoingToLoseAnymore: @ 8235EE6 .string "gave me courage and strength!\p" .string "Okay… Here I come!$" -VictoryRoad_1F_Text_WallyEntranceDefeat: @ 8235FFC +VictoryRoad_1F_Text_WallyEntranceDefeat: .string "Wow!\n" .string "{PLAYER}, you are strong, after all!$" -VictoryRoad_1F_Text_WallyPostEntranceBattle: @ 8236020 +VictoryRoad_1F_Text_WallyPostEntranceBattle: .string "WALLY: I couldn't beat you today,\n" .string "{PLAYER}, but one of these days, I'll\l" .string "catch up to you!$" -VictoryRoad_1F_Text_WallyIntro: @ 8236073 +VictoryRoad_1F_Text_WallyIntro: .string "WALLY: Hi! {PLAYER}!\p" .string "I've gotten stronger since that last\n" .string "time! I wanted to show you, {PLAYER}!\p" .string "Okay… Here I come!$" -VictoryRoad_1F_Text_WallyDefeat: @ 82360DA +VictoryRoad_1F_Text_WallyDefeat: .string "Wow!\n" .string "{PLAYER}, you are strong, after all!$" -VictoryRoad_1F_Text_WallyPostBattle: @ 82360FE +VictoryRoad_1F_Text_WallyPostBattle: .string "WALLY: I couldn't beat you this time,\n" .string "too… But one of these days, {PLAYER},\l" .string "I'm going to catch up to you…\p" .string "And challenge the POKéMON LEAGUE!$" -VictoryRoad_1F_Text_EdgarIntro: @ 8236184 +VictoryRoad_1F_Text_EdgarIntro: .string "I've made it this far a couple times,\n" .string "but the last stretch is so long…$" -VictoryRoad_1F_Text_EdgarDefeat: @ 82361CB +VictoryRoad_1F_Text_EdgarDefeat: .string "My dream ends here again…$" -VictoryRoad_1F_Text_EdgarPostBattle: @ 82361E5 +VictoryRoad_1F_Text_EdgarPostBattle: .string "You've made it this far. Keep the\n" .string "momentum going and become the\l" .string "CHAMPION! If anyone can, it's you!$" -VictoryRoad_1F_Text_AlbertIntro: @ 8236248 +VictoryRoad_1F_Text_AlbertIntro: .string "I didn't come all this way to lose now.\n" .string "That possibility doesn't exist!$" -VictoryRoad_1F_Text_AlbertDefeat: @ 8236290 +VictoryRoad_1F_Text_AlbertDefeat: .string "Impossible…\n" .string "I lost?$" -VictoryRoad_1F_Text_AlbertPostBattle: @ 82362A4 +VictoryRoad_1F_Text_AlbertPostBattle: .string "I lost here…\p" .string "That means I lack the qualifications\n" .string "to become the CHAMPION…$" -VictoryRoad_1F_Text_HopeIntro: @ 82362EE +VictoryRoad_1F_Text_HopeIntro: .string "This seemingly infinite and harsh road\n" .string "lives up to its name of VICTORY.$" -VictoryRoad_1F_Text_HopeDefeat: @ 8236336 +VictoryRoad_1F_Text_HopeDefeat: .string "Your battle style is fantastic…$" -VictoryRoad_1F_Text_HopePostBattle: @ 8236356 +VictoryRoad_1F_Text_HopePostBattle: .string "You seem to have the potential for\n" .string "becoming the CHAMPION.$" -VictoryRoad_1F_Text_QuincyIntro: @ 8236390 +VictoryRoad_1F_Text_QuincyIntro: .string "What is the VICTORY ROAD?\n" .string "I'll tell you if you win!$" -VictoryRoad_1F_Text_QuincyDefeat: @ 82363C4 +VictoryRoad_1F_Text_QuincyDefeat: .string "Okay!\n" .string "Well done!$" -VictoryRoad_1F_Text_QuincyPostBattle: @ 82363D5 +VictoryRoad_1F_Text_QuincyPostBattle: .string "Getting through here safely--that's\n" .string "the final test for any TRAINER aiming\l" .string "to become the POKéMON CHAMPION.\p" .string "That's why it's called the VICTORY\n" .string "ROAD.$" -VictoryRoad_1F_Text_KatelynnIntro: @ 8236468 +VictoryRoad_1F_Text_KatelynnIntro: .string "I have nothing to say to anyone\n" .string "that's come this far. Come on!$" -VictoryRoad_1F_Text_KatelynnDefeat: @ 82364A7 +VictoryRoad_1F_Text_KatelynnDefeat: .string "This is a disgrace…$" -VictoryRoad_1F_Text_KatelynnPostBattle: @ 82364BB +VictoryRoad_1F_Text_KatelynnPostBattle: .string "Humph, go right on ahead.\n" .string "See if I care.$" diff --git a/data/maps/VictoryRoad_B1F/scripts.inc b/data/maps/VictoryRoad_B1F/scripts.inc index fd175599cb..b8ec699353 100644 --- a/data/maps/VictoryRoad_B1F/scripts.inc +++ b/data/maps/VictoryRoad_B1F/scripts.inc @@ -1,88 +1,88 @@ -VictoryRoad_B1F_MapScripts:: @ 82364E4 +VictoryRoad_B1F_MapScripts:: .byte 0 -VictoryRoad_B1F_EventScript_Samuel:: @ 82364E5 +VictoryRoad_B1F_EventScript_Samuel:: trainerbattle_single TRAINER_SAMUEL, VictoryRoad_B1F_Text_SamuelIntro, VictoryRoad_B1F_Text_SamuelDefeat msgbox VictoryRoad_B1F_Text_SamuelPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B1F_EventScript_Shannon:: @ 82364FC +VictoryRoad_B1F_EventScript_Shannon:: trainerbattle_single TRAINER_SHANNON, VictoryRoad_B1F_Text_ShannonIntro, VictoryRoad_B1F_Text_ShannonDefeat msgbox VictoryRoad_B1F_Text_ShannonPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B1F_EventScript_Michelle:: @ 8236513 +VictoryRoad_B1F_EventScript_Michelle:: trainerbattle_single TRAINER_MICHELLE, VictoryRoad_B1F_Text_MichelleIntro, VictoryRoad_B1F_Text_MichelleDefeat msgbox VictoryRoad_B1F_Text_MichellePostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B1F_EventScript_Mitchell:: @ 823652A +VictoryRoad_B1F_EventScript_Mitchell:: trainerbattle_single TRAINER_MITCHELL, VictoryRoad_B1F_Text_MitchellIntro, VictoryRoad_B1F_Text_MitchellDefeat msgbox VictoryRoad_B1F_Text_MitchellPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B1F_EventScript_Halle:: @ 8236541 +VictoryRoad_B1F_EventScript_Halle:: trainerbattle_single TRAINER_HALLE, VictoryRoad_B1F_Text_HalleIntro, VictoryRoad_B1F_Text_HalleDefeat msgbox VictoryRoad_B1F_Text_HallePostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B1F_Text_SamuelIntro: @ 8236558 +VictoryRoad_B1F_Text_SamuelIntro: .string "The thought that I'm getting closer to\n" .string "the POKéMON LEAGUE…\p" .string "I'm getting stage fright…$" -VictoryRoad_B1F_Text_SamuelDefeat: @ 82365AD +VictoryRoad_B1F_Text_SamuelDefeat: .string "I couldn't do a thing…$" -VictoryRoad_B1F_Text_SamuelPostBattle: @ 82365C4 +VictoryRoad_B1F_Text_SamuelPostBattle: .string "The POKéMON LEAGUE became distant\n" .string "again… What a letdown…$" -VictoryRoad_B1F_Text_ShannonIntro: @ 82365FD +VictoryRoad_B1F_Text_ShannonIntro: .string "To win your way through the POKéMON\n" .string "LEAGUE, you need the trust of your\l" .string "POKéMON.$" -VictoryRoad_B1F_Text_ShannonDefeat: @ 823664D +VictoryRoad_B1F_Text_ShannonDefeat: .string "Your relationship is based on\n" .string "solid trust.$" -VictoryRoad_B1F_Text_ShannonPostBattle: @ 8236678 +VictoryRoad_B1F_Text_ShannonPostBattle: .string "By being together all the time, trust\n" .string "grows between POKéMON and TRAINERS.$" -VictoryRoad_B1F_Text_MichelleIntro: @ 82366C2 +VictoryRoad_B1F_Text_MichelleIntro: .string "This isn't the goal. It's only a place\n" .string "on the way to the POKéMON LEAGUE.$" -VictoryRoad_B1F_Text_MichelleDefeat: @ 823670B +VictoryRoad_B1F_Text_MichelleDefeat: .string "That's the way!$" -VictoryRoad_B1F_Text_MichellePostBattle: @ 823671B +VictoryRoad_B1F_Text_MichellePostBattle: .string "You'll do fine, for sure!\n" .string "Your POKéMON are all eager to go!$" -VictoryRoad_B1F_Text_MitchellIntro: @ 8236757 +VictoryRoad_B1F_Text_MitchellIntro: .string "My POKéMON are cosmically\n" .string "awe inspiring!$" -VictoryRoad_B1F_Text_MitchellDefeat: @ 8236780 +VictoryRoad_B1F_Text_MitchellDefeat: .string "I've never met anyone like you before.$" -VictoryRoad_B1F_Text_MitchellPostBattle: @ 82367A7 +VictoryRoad_B1F_Text_MitchellPostBattle: .string "Even outside of battle, I sense\n" .string "incredible power emanating from you\l" .string "and your POKéMON.$" -VictoryRoad_B1F_Text_HalleIntro: @ 82367FD +VictoryRoad_B1F_Text_HalleIntro: .string "Okay, no need to get your back up!\n" .string "Relax, let's take it easy!$" -VictoryRoad_B1F_Text_HalleDefeat: @ 823683B +VictoryRoad_B1F_Text_HalleDefeat: .string "Whoa!\n" .string "Wonderful!$" -VictoryRoad_B1F_Text_HallePostBattle: @ 823684C +VictoryRoad_B1F_Text_HallePostBattle: .string "Sure, this is VICTORY ROAD.\p" .string "But it's not all that different from\n" .string "the path you've taken so far.\p" diff --git a/data/maps/VictoryRoad_B2F/scripts.inc b/data/maps/VictoryRoad_B2F/scripts.inc index 9db635a858..8b64157d37 100644 --- a/data/maps/VictoryRoad_B2F/scripts.inc +++ b/data/maps/VictoryRoad_B2F/scripts.inc @@ -1,108 +1,108 @@ -VictoryRoad_B2F_MapScripts:: @ 82368D4 +VictoryRoad_B2F_MapScripts:: .byte 0 -VictoryRoad_B2F_EventScript_Vito:: @ 82368D5 +VictoryRoad_B2F_EventScript_Vito:: trainerbattle_single TRAINER_VITO, VictoryRoad_B2F_Text_VitoIntro, VictoryRoad_B2F_Text_VitoDefeat msgbox VictoryRoad_B2F_Text_VitoPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B2F_EventScript_Owen:: @ 82368EC +VictoryRoad_B2F_EventScript_Owen:: trainerbattle_single TRAINER_OWEN, VictoryRoad_B2F_Text_OwenIntro, VictoryRoad_B2F_Text_OwenDefeat msgbox VictoryRoad_B2F_Text_OwenPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B2F_EventScript_Caroline:: @ 8236903 +VictoryRoad_B2F_EventScript_Caroline:: trainerbattle_single TRAINER_CAROLINE, VictoryRoad_B2F_Text_CarolineIntro, VictoryRoad_B2F_Text_CarolineDefeat msgbox VictoryRoad_B2F_Text_CarolinePostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B2F_EventScript_Julie:: @ 823691A +VictoryRoad_B2F_EventScript_Julie:: trainerbattle_single TRAINER_JULIE, VictoryRoad_B2F_Text_JulieIntro, VictoryRoad_B2F_Text_JulieDefeat msgbox VictoryRoad_B2F_Text_JuliePostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B2F_EventScript_Felix:: @ 8236931 +VictoryRoad_B2F_EventScript_Felix:: trainerbattle_single TRAINER_FELIX, VictoryRoad_B2F_Text_FelixIntro, VictoryRoad_B2F_Text_FelixDefeat msgbox VictoryRoad_B2F_Text_FelixPostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B2F_EventScript_Dianne:: @ 8236948 +VictoryRoad_B2F_EventScript_Dianne:: trainerbattle_single TRAINER_DIANNE, VictoryRoad_B2F_Text_DianneIntro, VictoryRoad_B2F_Text_DianneDefeat msgbox VictoryRoad_B2F_Text_DiannePostBattle, MSGBOX_AUTOCLOSE end -VictoryRoad_B2F_Text_VitoIntro: @ 823695F +VictoryRoad_B2F_Text_VitoIntro: .string "I trained together with my whole family,\n" .string "every one of us!\l" .string "I'm not losing to anyone!$" -VictoryRoad_B2F_Text_VitoDefeat: @ 82369B3 +VictoryRoad_B2F_Text_VitoDefeat: .string "Better than my family?!\n" .string "Is that possible?!$" -VictoryRoad_B2F_Text_VitoPostBattle: @ 82369DE +VictoryRoad_B2F_Text_VitoPostBattle: .string "I was better than everyone in my\n" .string "family. I've never lost before…\p" .string "I've lost my confidence…\n" .string "Maybe I'll go home…$" -VictoryRoad_B2F_Text_OwenIntro: @ 8236A4C +VictoryRoad_B2F_Text_OwenIntro: .string "I'd heard that there was a tough\n" .string "little kid around. Do they mean you?$" -VictoryRoad_B2F_Text_OwenDefeat: @ 8236A92 +VictoryRoad_B2F_Text_OwenDefeat: .string "The little shrimp is tough!$" -VictoryRoad_B2F_Text_OwenPostBattle: @ 8236AAE +VictoryRoad_B2F_Text_OwenPostBattle: .string "The rumors I heard, that tough little\n" .string "kid is from PETALBURG CITY.$" -VictoryRoad_B2F_Text_CarolineIntro: @ 8236AF0 +VictoryRoad_B2F_Text_CarolineIntro: .string "You must be getting a little tired.$" -VictoryRoad_B2F_Text_CarolineDefeat: @ 8236B14 +VictoryRoad_B2F_Text_CarolineDefeat: .string "No signs of tiring at all!$" -VictoryRoad_B2F_Text_CarolinePostBattle: @ 8236B2F +VictoryRoad_B2F_Text_CarolinePostBattle: .string "VICTORY ROAD and the POKéMON LEAGUE\n" .string "are long and grueling challenges.\l" .string "Beware of fatigue!$" -VictoryRoad_B2F_Text_JulieIntro: @ 8236B88 +VictoryRoad_B2F_Text_JulieIntro: .string "You shouldn't get complacent just\n" .string "because you have a lot of GYM BADGES.\p" .string "There's always going to be someone\n" .string "who's better than you!$" -VictoryRoad_B2F_Text_JulieDefeat: @ 8236C0A +VictoryRoad_B2F_Text_JulieDefeat: .string "You're better than me!$" -VictoryRoad_B2F_Text_JuliePostBattle: @ 8236C21 +VictoryRoad_B2F_Text_JuliePostBattle: .string "Gaze on your collected BADGES and\n" .string "remember the TRAINERS you've faced.$" -VictoryRoad_B2F_Text_FelixIntro: @ 8236C67 +VictoryRoad_B2F_Text_FelixIntro: .string "I've come this far, but the tension's\n" .string "giving me awful stomach pain…$" -VictoryRoad_B2F_Text_FelixDefeat: @ 8236CAB +VictoryRoad_B2F_Text_FelixDefeat: .string "Ooh…\n" .string "It hurts…$" -VictoryRoad_B2F_Text_FelixPostBattle: @ 8236CBA +VictoryRoad_B2F_Text_FelixPostBattle: .string "I can't help getting all tense knowing\n" .string "that I'm nearing the POKéMON LEAGUE.\p" .string "It's all I can do to feign calm.$" -VictoryRoad_B2F_Text_DianneIntro: @ 8236D27 +VictoryRoad_B2F_Text_DianneIntro: .string "The elite among the elite gather in\n" .string "this cave.\p" .string "How are you finding it?$" -VictoryRoad_B2F_Text_DianneDefeat: @ 8236D6E +VictoryRoad_B2F_Text_DianneDefeat: .string "Not rattled in the least bit!$" -VictoryRoad_B2F_Text_DiannePostBattle: @ 8236D8C +VictoryRoad_B2F_Text_DiannePostBattle: .string "You do have guts! I like that!\n" .string "Keep it going!$" diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index 4201e814f4..ebef431b30 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -1,41 +1,41 @@ { "group_order": [ - "gMapGroup0", - "gMapGroup1", - "gMapGroup2", - "gMapGroup3", - "gMapGroup4", - "gMapGroup5", - "gMapGroup6", - "gMapGroup7", - "gMapGroup8", - "gMapGroup9", - "gMapGroup10", - "gMapGroup11", - "gMapGroup12", - "gMapGroup13", - "gMapGroup14", - "gMapGroup15", - "gMapGroup16", - "gMapGroup17", - "gMapGroup18", - "gMapGroup19", - "gMapGroup20", - "gMapGroup21", - "gMapGroup22", - "gMapGroup23", - "gMapGroup24", - "gMapGroup25", - "gMapGroup26", - "gMapGroup27", - "gMapGroup28", - "gMapGroup29", - "gMapGroup30", - "gMapGroup31", - "gMapGroup32", - "gMapGroup33" + "gMapGroup_TownsAndRoutes", + "gMapGroup_IndoorLittleroot", + "gMapGroup_IndoorOldale", + "gMapGroup_IndoorDewford", + "gMapGroup_IndoorLavaridge", + "gMapGroup_IndoorFallarbor", + "gMapGroup_IndoorVerdanturf", + "gMapGroup_IndoorPacifidlog", + "gMapGroup_IndoorPetalburg", + "gMapGroup_IndoorSlateport", + "gMapGroup_IndoorMauville", + "gMapGroup_IndoorRustboro", + "gMapGroup_IndoorFortree", + "gMapGroup_IndoorLilycove", + "gMapGroup_IndoorMossdeep", + "gMapGroup_IndoorSootopolis", + "gMapGroup_IndoorEverGrande", + "gMapGroup_IndoorRoute104", + "gMapGroup_IndoorRoute111", + "gMapGroup_IndoorRoute112", + "gMapGroup_IndoorRoute114", + "gMapGroup_IndoorRoute116", + "gMapGroup_IndoorRoute117", + "gMapGroup_IndoorRoute121", + "gMapGroup_Dungeons", + "gMapGroup_IndoorDynamic", + "gMapGroup_SpecialArea", + "gMapGroup_IndoorRoute104Prototype", + "gMapGroup_IndoorRoute109", + "gMapGroup_IndoorRoute110", + "gMapGroup_IndoorRoute113", + "gMapGroup_IndoorRoute123", + "gMapGroup_IndoorRoute119", + "gMapGroup_IndoorRoute124" ], - "gMapGroup0": [ + "gMapGroup_TownsAndRoutes": [ "PetalburgCity", "SlateportCity", "MauvilleCity", @@ -94,21 +94,21 @@ "Underwater_Route105", "Underwater_Route125" ], - "gMapGroup1": [ + "gMapGroup_IndoorLittleroot": [ "LittlerootTown_BrendansHouse_1F", "LittlerootTown_BrendansHouse_2F", "LittlerootTown_MaysHouse_1F", "LittlerootTown_MaysHouse_2F", "LittlerootTown_ProfessorBirchsLab" ], - "gMapGroup2": [ + "gMapGroup_IndoorOldale": [ "OldaleTown_House1", "OldaleTown_House2", "OldaleTown_PokemonCenter_1F", "OldaleTown_PokemonCenter_2F", "OldaleTown_Mart" ], - "gMapGroup3": [ + "gMapGroup_IndoorDewford": [ "DewfordTown_House1", "DewfordTown_PokemonCenter_1F", "DewfordTown_PokemonCenter_2F", @@ -116,7 +116,7 @@ "DewfordTown_Hall", "DewfordTown_House2" ], - "gMapGroup4": [ + "gMapGroup_IndoorLavaridge": [ "LavaridgeTown_HerbShop", "LavaridgeTown_Gym_1F", "LavaridgeTown_Gym_B1F", @@ -125,7 +125,7 @@ "LavaridgeTown_PokemonCenter_1F", "LavaridgeTown_PokemonCenter_2F" ], - "gMapGroup5": [ + "gMapGroup_IndoorFallarbor": [ "FallarborTown_Mart", "FallarborTown_BattleTentLobby", "FallarborTown_BattleTentCorridor", @@ -135,7 +135,7 @@ "FallarborTown_CozmosHouse", "FallarborTown_MoveRelearnersHouse" ], - "gMapGroup6": [ + "gMapGroup_IndoorVerdanturf": [ "VerdanturfTown_BattleTentLobby", "VerdanturfTown_BattleTentCorridor", "VerdanturfTown_BattleTentBattleRoom", @@ -146,7 +146,7 @@ "VerdanturfTown_FriendshipRatersHouse", "VerdanturfTown_House" ], - "gMapGroup7": [ + "gMapGroup_IndoorPacifidlog": [ "PacifidlogTown_PokemonCenter_1F", "PacifidlogTown_PokemonCenter_2F", "PacifidlogTown_House1", @@ -155,7 +155,7 @@ "PacifidlogTown_House4", "PacifidlogTown_House5" ], - "gMapGroup8": [ + "gMapGroup_IndoorPetalburg": [ "PetalburgCity_WallysHouse", "PetalburgCity_Gym", "PetalburgCity_House1", @@ -164,7 +164,7 @@ "PetalburgCity_PokemonCenter_2F", "PetalburgCity_Mart" ], - "gMapGroup9": [ + "gMapGroup_IndoorSlateport": [ "SlateportCity_SternsShipyard_1F", "SlateportCity_SternsShipyard_2F", "SlateportCity_BattleTentLobby", @@ -180,7 +180,7 @@ "SlateportCity_PokemonCenter_2F", "SlateportCity_Mart" ], - "gMapGroup10": [ + "gMapGroup_IndoorMauville": [ "MauvilleCity_Gym", "MauvilleCity_BikeShop", "MauvilleCity_House1", @@ -190,7 +190,7 @@ "MauvilleCity_PokemonCenter_2F", "MauvilleCity_Mart" ], - "gMapGroup11": [ + "gMapGroup_IndoorRustboro": [ "RustboroCity_DevonCorp_1F", "RustboroCity_DevonCorp_2F", "RustboroCity_DevonCorp_3F", @@ -209,7 +209,7 @@ "RustboroCity_Flat2_3F", "RustboroCity_House3" ], - "gMapGroup12": [ + "gMapGroup_IndoorFortree": [ "FortreeCity_House1", "FortreeCity_Gym", "FortreeCity_PokemonCenter_1F", @@ -221,7 +221,7 @@ "FortreeCity_House5", "FortreeCity_DecorationShop" ], - "gMapGroup13": [ + "gMapGroup_IndoorLilycove": [ "LilycoveCity_CoveLilyMotel_1F", "LilycoveCity_CoveLilyMotel_2F", "LilycoveCity_LilycoveMuseum_1F", @@ -246,7 +246,7 @@ "LilycoveCity_DepartmentStoreRooftop", "LilycoveCity_DepartmentStoreElevator" ], - "gMapGroup14": [ + "gMapGroup_IndoorMossdeep": [ "MossdeepCity_Gym", "MossdeepCity_House1", "MossdeepCity_House2", @@ -261,7 +261,7 @@ "MossdeepCity_GameCorner_1F", "MossdeepCity_GameCorner_B1F" ], - "gMapGroup15": [ + "gMapGroup_IndoorSootopolis": [ "SootopolisCity_Gym_1F", "SootopolisCity_Gym_B1F", "SootopolisCity_PokemonCenter_1F", @@ -278,7 +278,7 @@ "SootopolisCity_MysteryEventsHouse_1F", "SootopolisCity_MysteryEventsHouse_B1F" ], - "gMapGroup16": [ + "gMapGroup_IndoorEverGrande": [ "EverGrandeCity_SidneysRoom", "EverGrandeCity_PhoebesRoom", "EverGrandeCity_GlaciasRoom", @@ -295,33 +295,33 @@ "EverGrandeCity_PokemonCenter_2F", "EverGrandeCity_PokemonLeague_2F" ], - "gMapGroup17": [ + "gMapGroup_IndoorRoute104": [ "Route104_MrBrineysHouse", "Route104_PrettyPetalFlowerShop" ], - "gMapGroup18": [ + "gMapGroup_IndoorRoute111": [ "Route111_WinstrateFamilysHouse", "Route111_OldLadysRestStop" ], - "gMapGroup19": [ + "gMapGroup_IndoorRoute112": [ "Route112_CableCarStation", "MtChimney_CableCarStation" ], - "gMapGroup20": [ + "gMapGroup_IndoorRoute114": [ "Route114_FossilManiacsHouse", "Route114_FossilManiacsTunnel", "Route114_LanettesHouse" ], - "gMapGroup21": [ + "gMapGroup_IndoorRoute116": [ "Route116_TunnelersRestHouse" ], - "gMapGroup22": [ + "gMapGroup_IndoorRoute117": [ "Route117_PokemonDayCare" ], - "gMapGroup23": [ + "gMapGroup_IndoorRoute121": [ "Route121_SafariZoneEntrance" ], - "gMapGroup24": [ + "gMapGroup_Dungeons": [ "MeteorFalls_1F_1R", "MeteorFalls_1F_2R", "MeteorFalls_B1F_1R", @@ -431,7 +431,7 @@ "AlteringCave", "MeteorFalls_StevensCave" ], - "gMapGroup25": [ + "gMapGroup_IndoorDynamic": [ "SecretBase_RedCave1", "SecretBase_BrownCave1", "SecretBase_BlueCave1", @@ -461,12 +461,12 @@ "RecordCorner", "BattleColosseum_4P", "ContestHall", - "UnknownLinkContestRoom_25_29", - "UnknownLinkContestRoom_25_30", - "UnknownLinkContestRoom_25_31", - "UnknownLinkContestRoom_25_32", - "UnknownLinkContestRoom_25_33", - "UnknownLinkContestRoom_25_34", + "UnusedContestHall1", + "UnusedContestHall2", + "UnusedContestHall3", + "UnusedContestHall4", + "UnusedContestHall5", + "UnusedContestHall6", "ContestHallBeauty", "ContestHallTough", "ContestHallCool", @@ -494,7 +494,7 @@ "BattlePyramidSquare16", "UnionRoom" ], - "gMapGroup26": [ + "gMapGroup_SpecialArea": [ "SafariZone_Northwest", "SafariZone_North", "SafariZone_Southwest", @@ -585,14 +585,14 @@ "NavelRock_Bottom", "TrainerHill_Elevator" ], - "gMapGroup27": [ + "gMapGroup_IndoorRoute104Prototype": [ "Route104_Prototype", "Route104_PrototypePrettyPetalFlowerShop" ], - "gMapGroup28": [ + "gMapGroup_IndoorRoute109": [ "Route109_SeashoreHouse" ], - "gMapGroup29": [ + "gMapGroup_IndoorRoute110": [ "Route110_TrickHouseEntrance", "Route110_TrickHouseEnd", "Route110_TrickHouseCorridor", @@ -607,18 +607,18 @@ "Route110_SeasideCyclingRoadNorthEntrance", "Route110_SeasideCyclingRoadSouthEntrance" ], - "gMapGroup30": [ + "gMapGroup_IndoorRoute113": [ "Route113_GlassWorkshop" ], - "gMapGroup31": [ + "gMapGroup_IndoorRoute123": [ "Route123_BerryMastersHouse" ], - "gMapGroup32": [ + "gMapGroup_IndoorRoute119": [ "Route119_WeatherInstitute_1F", "Route119_WeatherInstitute_2F", "Route119_House" ], - "gMapGroup33": [ + "gMapGroup_IndoorRoute124": [ "Route124_DivingTreasureHuntersHouse" ], "connections_include_order": [ diff --git a/data/multiboot_berry_glitch_fix.s b/data/multiboot_berry_glitch_fix.s index 57757090a1..7d65c0d4de 100644 --- a/data/multiboot_berry_glitch_fix.s +++ b/data/multiboot_berry_glitch_fix.s @@ -1,5 +1,5 @@ .section .rodata -gMultiBootProgram_BerryGlitchFix_Start:: @ 89A6550 +gMultiBootProgram_BerryGlitchFix_Start:: .incbin "berry_fix/berry_fix.gba" -gMultiBootProgram_BerryGlitchFix_End:: @ 89AA144 +gMultiBootProgram_BerryGlitchFix_End:: diff --git a/data/multiboot_pokemon_colosseum.s b/data/multiboot_pokemon_colosseum.s index 59d0b430d7..179f8a0671 100644 --- a/data/multiboot_pokemon_colosseum.s +++ b/data/multiboot_pokemon_colosseum.s @@ -1,5 +1,5 @@ .section .rodata -gMultiBootProgram_PokemonColosseum_Start:: @ 89AA144 +gMultiBootProgram_PokemonColosseum_Start:: .incbin "data/pokemon_colosseum.mb" gMultiBootProgram_PokemonColosseum_End:: diff --git a/data/mystery_event_script_cmd_table.s b/data/mystery_event_script_cmd_table.s index 6ebc7e9625..d0ab80c5cc 100644 --- a/data/mystery_event_script_cmd_table.s +++ b/data/mystery_event_script_cmd_table.s @@ -1,7 +1,7 @@ .section script_data, "aw", %progbits .align 2 -gMysteryEventScriptCmdTable:: @ 82DED2C +gMysteryEventScriptCmdTable:: .4byte MEScrCmd_nop @ 0x00 .4byte MEScrCmd_checkcompat @ 0x01 .4byte MEScrCmd_end @ 0x02 diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index 0971358a14..dcc0da9f7f 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -1,5 +1,5 @@ .align 2 -gScriptCmdTable:: @ 81DB67C +gScriptCmdTable:: .4byte ScrCmd_nop @ 0x00 .4byte ScrCmd_nop1 @ 0x01 .4byte ScrCmd_end @ 0x02 @@ -119,7 +119,7 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_drawboxtext @ 0x74 .4byte ScrCmd_showmonpic @ 0x75 .4byte ScrCmd_hidemonpic @ 0x76 - .4byte ScrCmd_showcontestwinner @ 0x77 + .4byte ScrCmd_showcontestpainting @ 0x77 .4byte ScrCmd_braillemessage @ 0x78 .4byte ScrCmd_givemon @ 0x79 .4byte ScrCmd_giveegg @ 0x7a @@ -205,21 +205,21 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_nop1 @ 0xca .4byte ScrCmd_nop1 @ 0xcb .4byte ScrCmd_nop1 @ 0xcc - .4byte ScrCmd_setmonobedient @ 0xcd - .4byte ScrCmd_checkmonobedience @ 0xce + .4byte ScrCmd_setmoneventlegal @ 0xcd + .4byte ScrCmd_checkmoneventlegal @ 0xce .4byte ScrCmd_gotoram @ 0xcf .4byte ScrCmd_nop1 @ 0xd0 - .4byte ScrCmd_warpD1 @ 0xd1 + .4byte ScrCmd_warpspinenter @ 0xd1 .4byte ScrCmd_setmonmetlocation @ 0xd2 .4byte ScrCmd_moverotatingtileobjects @ 0xd3 .4byte ScrCmd_turnrotatingtileobjects @ 0xd4 .4byte ScrCmd_initrotatingtilepuzzle @ 0xd5 .4byte ScrCmd_freerotatingtilepuzzle @ 0xd6 .4byte ScrCmd_warpmossdeepgym @ 0xd7 - .4byte ScrCmd_cmdD8 @ 0xd8 - .4byte ScrCmd_cmdD9 @ 0xd9 + .4byte ScrCmd_selectapproachingtrainer @ 0xd8 + .4byte ScrCmd_lockfortrainer @ 0xd9 .4byte ScrCmd_closebraillemessage @ 0xda - .4byte ScrCmd_cmdDB @ 0xdb + .4byte ScrCmd_messageinstant @ 0xdb .4byte ScrCmd_fadescreenswapbuffers @ 0xdc .4byte ScrCmd_buffertrainerclassname @ 0xdd .4byte ScrCmd_buffertrainername @ 0xde @@ -228,5 +228,5 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_buffercontesttype @ 0xe1 .4byte ScrCmd_bufferitemnameplural @ 0xe2 -gScriptCmdTableEnd:: @ 81DBA08 +gScriptCmdTableEnd:: .4byte ScrCmd_nop diff --git a/data/scripts/abnormal_weather.inc b/data/scripts/abnormal_weather.inc index 16f8af41f7..9af24c45d5 100644 --- a/data/scripts/abnormal_weather.inc +++ b/data/scripts/abnormal_weather.inc @@ -1,44 +1,44 @@ -AbnormalWeather_EventScript_PlaceTilesRoute114North:: @ 8273913 +AbnormalWeather_EventScript_PlaceTilesRoute114North:: setmetatile 7, 3, METATILE_Fallarbor_RedCaveEntrance_Top, 1 setmetatile 7, 4, METATILE_Fallarbor_RedCaveEntrance_Bottom, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute114South:: @ 8273926 +AbnormalWeather_EventScript_PlaceTilesRoute114South:: setmetatile 6, 45, METATILE_Fallarbor_BrownCaveEntrance_Top, 1 setmetatile 6, 46, METATILE_Fallarbor_BrownCaveEntrance_Bottom, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute115West:: @ 8273939 +AbnormalWeather_EventScript_PlaceTilesRoute115West:: setmetatile 21, 5, METATILE_Fallarbor_BrownCaveEntrance_Top, 1 setmetatile 21, 6, METATILE_Fallarbor_BrownCaveEntrance_Bottom, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute115East:: @ 827394C +AbnormalWeather_EventScript_PlaceTilesRoute115East:: setmetatile 36, 9, METATILE_Fallarbor_BrownCaveEntrance_Top, 1 setmetatile 36, 10, METATILE_Fallarbor_BrownCaveEntrance_Bottom, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute116North:: @ 827395F +AbnormalWeather_EventScript_PlaceTilesRoute116North:: setmetatile 59, 12, METATILE_General_CaveEntrance_Top, 1 setmetatile 59, 13, METATILE_General_CaveEntrance_Bottom, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute116South:: @ 8273972 +AbnormalWeather_EventScript_PlaceTilesRoute116South:: setmetatile 79, 5, METATILE_General_CaveEntrance_Top, 1 setmetatile 79, 6, METATILE_General_CaveEntrance_Bottom, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute118East:: @ 8273985 +AbnormalWeather_EventScript_PlaceTilesRoute118East:: setmetatile 42, 5, METATILE_General_CaveEntrance_Top, 1 setmetatile 42, 6, METATILE_General_CaveEntrance_Bottom, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute118West:: @ 8273998 +AbnormalWeather_EventScript_PlaceTilesRoute118West:: setmetatile 9, 5, METATILE_General_CaveEntrance_Top, 1 setmetatile 9, 6, METATILE_General_CaveEntrance_Bottom, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute105North:: @ 82739AB +AbnormalWeather_EventScript_PlaceTilesRoute105North:: setmetatile 10, 28, METATILE_General_RoughWater, 0 setmetatile 11, 28, METATILE_General_RoughWater, 0 setmetatile 9, 29, METATILE_General_RoughWater, 0 @@ -53,7 +53,7 @@ AbnormalWeather_EventScript_PlaceTilesRoute105North:: @ 82739AB setmetatile 11, 31, METATILE_General_RoughWater, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute105South:: @ 8273A18 +AbnormalWeather_EventScript_PlaceTilesRoute105South:: setmetatile 20, 53, METATILE_General_RoughWater, 0 setmetatile 21, 53, METATILE_General_RoughWater, 0 setmetatile 19, 54, METATILE_General_RoughWater, 0 @@ -68,7 +68,7 @@ AbnormalWeather_EventScript_PlaceTilesRoute105South:: @ 8273A18 setmetatile 21, 56, METATILE_General_RoughWater, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute125West:: @ 8273A85 +AbnormalWeather_EventScript_PlaceTilesRoute125West:: setmetatile 8, 16, METATILE_General_RoughWater, 0 setmetatile 9, 16, METATILE_General_RoughWater, 0 setmetatile 7, 17, METATILE_General_RoughWater, 0 @@ -83,7 +83,7 @@ AbnormalWeather_EventScript_PlaceTilesRoute125West:: @ 8273A85 setmetatile 9, 19, METATILE_General_RoughWater, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute125East:: @ 8273AF2 +AbnormalWeather_EventScript_PlaceTilesRoute125East:: setmetatile 53, 18, METATILE_General_RoughWater, 0 setmetatile 54, 18, METATILE_General_RoughWater, 0 setmetatile 52, 19, METATILE_General_RoughWater, 0 @@ -98,7 +98,7 @@ AbnormalWeather_EventScript_PlaceTilesRoute125East:: @ 8273AF2 setmetatile 54, 21, METATILE_General_RoughWater, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute127North:: @ 8273B5F +AbnormalWeather_EventScript_PlaceTilesRoute127North:: setmetatile 57, 9, METATILE_General_RoughWater, 0 setmetatile 58, 9, METATILE_General_RoughWater, 0 setmetatile 56, 10, METATILE_General_RoughWater, 0 @@ -113,7 +113,7 @@ AbnormalWeather_EventScript_PlaceTilesRoute127North:: @ 8273B5F setmetatile 58, 12, METATILE_General_RoughWater, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute127South:: @ 8273BCC +AbnormalWeather_EventScript_PlaceTilesRoute127South:: setmetatile 61, 30, METATILE_General_RoughWater, 0 setmetatile 62, 30, METATILE_General_RoughWater, 0 setmetatile 60, 31, METATILE_General_RoughWater, 0 @@ -128,7 +128,7 @@ AbnormalWeather_EventScript_PlaceTilesRoute127South:: @ 8273BCC setmetatile 62, 33, METATILE_General_RoughWater, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute129West:: @ 8273C39 +AbnormalWeather_EventScript_PlaceTilesRoute129West:: setmetatile 16, 14, METATILE_General_RoughWater, 0 setmetatile 17, 14, METATILE_General_RoughWater, 0 setmetatile 15, 15, METATILE_General_RoughWater, 0 @@ -143,7 +143,7 @@ AbnormalWeather_EventScript_PlaceTilesRoute129West:: @ 8273C39 setmetatile 17, 17, METATILE_General_RoughWater, 0 return -AbnormalWeather_EventScript_PlaceTilesRoute129East:: @ 8273CA6 +AbnormalWeather_EventScript_PlaceTilesRoute129East:: setmetatile 42, 19, METATILE_General_RoughWater, 0 setmetatile 43, 19, METATILE_General_RoughWater, 0 setmetatile 41, 20, METATILE_General_RoughWater, 0 @@ -158,26 +158,26 @@ AbnormalWeather_EventScript_PlaceTilesRoute129East:: @ 8273CA6 setmetatile 43, 22, METATILE_General_RoughWater, 0 return -AbnormalWeather_EventScript_HideMapNamePopup:: @ 8273D13 +AbnormalWeather_EventScript_HideMapNamePopup:: setflag FLAG_HIDE_MAP_NAME_POPUP return -AbnormalWeather_StartKyogreWeather:: @ 8273D17 +AbnormalWeather_StartKyogreWeather:: setweather WEATHER_DOWNPOUR return -AbnormalWeather_StartGroudonWeather:: @ 8273D1B +AbnormalWeather_StartGroudonWeather:: setweather WEATHER_DROUGHT return -AbnormalWeather_EventScript_EndEventAndCleanup_1:: @ 8273D1F +AbnormalWeather_EventScript_EndEventAndCleanup_1:: lockall compare VAR_ABNORMAL_WEATHER_LOCATION, MARINE_CAVE_LOCATIONS_START goto_if_ge AbnormalWeather_EventScript_ShowRainEndedMessage goto AbnormalWeather_EventScript_ShowSunEndedMessage end -AbnormalWeather_EventScript_EndEventAndCleanup_2:: @ 8273D31 +AbnormalWeather_EventScript_EndEventAndCleanup_2:: closemessage fadescreenswapbuffers FADE_TO_BLACK setweather WEATHER_SUNNY @@ -191,17 +191,17 @@ AbnormalWeather_EventScript_EndEventAndCleanup_2:: @ 8273D31 releaseall end -AbnormalWeather_EventScript_ShowRainEndedMessage:: @ 8273D51 +AbnormalWeather_EventScript_ShowRainEndedMessage:: msgbox gText_AbnormalWeatherEnded_Rain, MSGBOX_DEFAULT goto AbnormalWeather_EventScript_EndEventAndCleanup_2 end -AbnormalWeather_EventScript_ShowSunEndedMessage:: @ 8273D5F +AbnormalWeather_EventScript_ShowSunEndedMessage:: msgbox gText_AbnormalWeatherEnded_Sun, MSGBOX_DEFAULT goto AbnormalWeather_EventScript_EndEventAndCleanup_2 end -AbnormalWeather_EventScript_CleanupMapTiles:: @ 8273D6D +AbnormalWeather_EventScript_CleanupMapTiles:: switch VAR_ABNORMAL_WEATHER_LOCATION case ABNORMAL_WEATHER_ROUTE_114_NORTH, AbnormalWeather_EventScript_CleanupRoute114North case ABNORMAL_WEATHER_ROUTE_114_SOUTH, AbnormalWeather_EventScript_CleanupRoute114South @@ -221,47 +221,47 @@ AbnormalWeather_EventScript_CleanupMapTiles:: @ 8273D6D case ABNORMAL_WEATHER_ROUTE_129_EAST, AbnormalWeather_EventScript_CleanupRoute129East return -AbnormalWeather_EventScript_CleanupRoute114North:: @ 8273E23 +AbnormalWeather_EventScript_CleanupRoute114North:: setmetatile 7, 3, METATILE_Fallarbor_RedRockWall, 1 setmetatile 7, 4, METATILE_Fallarbor_RedRockWall, 1 return -AbnormalWeather_EventScript_CleanupRoute114South:: @ 8273E36 +AbnormalWeather_EventScript_CleanupRoute114South:: setmetatile 6, 45, METATILE_Fallarbor_BrownRockWall, 1 setmetatile 6, 46, METATILE_Fallarbor_BrownRockWall, 1 return -AbnormalWeather_EventScript_CleanupRoute115West:: @ 8273E49 +AbnormalWeather_EventScript_CleanupRoute115West:: setmetatile 21, 5, METATILE_Fallarbor_BrownRockWall, 1 setmetatile 21, 6, METATILE_Fallarbor_BrownRockWall, 1 return -AbnormalWeather_EventScript_CleanupRoute115East:: @ 8273E5C +AbnormalWeather_EventScript_CleanupRoute115East:: setmetatile 36, 9, METATILE_Fallarbor_BrownRockWall, 1 setmetatile 36, 10, METATILE_Fallarbor_BrownRockWall, 1 return -AbnormalWeather_EventScript_CleanupRoute116North:: @ 8273E6F +AbnormalWeather_EventScript_CleanupRoute116North:: setmetatile 59, 12, METATILE_General_RockWall_RockBase, 1 setmetatile 59, 13, METATILE_General_RockWall_RockBase, 1 return -AbnormalWeather_EventScript_CleanupRoute116South:: @ 8273E82 +AbnormalWeather_EventScript_CleanupRoute116South:: setmetatile 79, 5, METATILE_General_RockWall_RockBase, 1 setmetatile 79, 6, METATILE_General_RockWall_RockBase, 1 return -AbnormalWeather_EventScript_CleanupRoute118East:: @ 8273E95 +AbnormalWeather_EventScript_CleanupRoute118East:: setmetatile 42, 5, METATILE_General_RockWall_RockBase, 1 setmetatile 42, 6, METATILE_General_RockWall_GrassBase, 1 return -AbnormalWeather_EventScript_CleanupRoute118West:: @ 8273EA8 +AbnormalWeather_EventScript_CleanupRoute118West:: setmetatile 9, 5, METATILE_General_RockWall_RockBase, 1 setmetatile 9, 6, METATILE_General_RockWall_GrassBase, 1 return -AbnormalWeather_EventScript_CleanupRoute105North:: @ 8273EBB +AbnormalWeather_EventScript_CleanupRoute105North:: setmetatile 10, 28, METATILE_General_CalmWater, 0 setmetatile 11, 28, METATILE_General_CalmWater, 0 setmetatile 9, 29, METATILE_General_CalmWater, 0 @@ -276,7 +276,7 @@ AbnormalWeather_EventScript_CleanupRoute105North:: @ 8273EBB setmetatile 11, 31, METATILE_General_CalmWater, 0 return -AbnormalWeather_EventScript_CleanupRoute105South:: @ 8273F28 +AbnormalWeather_EventScript_CleanupRoute105South:: setmetatile 20, 53, METATILE_General_CalmWater, 0 setmetatile 21, 53, METATILE_General_CalmWater, 0 setmetatile 19, 54, METATILE_General_CalmWater, 0 @@ -291,7 +291,7 @@ AbnormalWeather_EventScript_CleanupRoute105South:: @ 8273F28 setmetatile 21, 56, METATILE_General_CalmWater, 0 return -AbnormalWeather_EventScript_CleanupRoute125West:: @ 8273F95 +AbnormalWeather_EventScript_CleanupRoute125West:: setmetatile 8, 16, METATILE_General_CalmWater, 0 setmetatile 9, 16, METATILE_General_CalmWater, 0 setmetatile 7, 17, METATILE_General_CalmWater, 0 @@ -306,7 +306,7 @@ AbnormalWeather_EventScript_CleanupRoute125West:: @ 8273F95 setmetatile 9, 19, METATILE_General_CalmWater, 0 return -AbnormalWeather_EventScript_CleanupRoute125East:: @ 8274002 +AbnormalWeather_EventScript_CleanupRoute125East:: setmetatile 53, 18, METATILE_General_CalmWater, 0 setmetatile 54, 18, METATILE_General_CalmWater, 0 setmetatile 52, 19, METATILE_General_CalmWater, 0 @@ -321,7 +321,7 @@ AbnormalWeather_EventScript_CleanupRoute125East:: @ 8274002 setmetatile 54, 21, METATILE_General_CalmWater, 0 return -AbnormalWeather_EventScript_CleanupRoute127North:: @ 827406F +AbnormalWeather_EventScript_CleanupRoute127North:: setmetatile 57, 9, METATILE_General_CalmWater, 0 setmetatile 58, 9, METATILE_General_CalmWater, 0 setmetatile 56, 10, METATILE_General_CalmWater, 0 @@ -336,7 +336,7 @@ AbnormalWeather_EventScript_CleanupRoute127North:: @ 827406F setmetatile 58, 12, METATILE_General_CalmWater, 0 return -AbnormalWeather_EventScript_CleanupRoute127South:: @ 82740DC +AbnormalWeather_EventScript_CleanupRoute127South:: setmetatile 61, 30, METATILE_General_CalmWater, 0 setmetatile 62, 30, METATILE_General_CalmWater, 0 setmetatile 60, 31, METATILE_General_CalmWater, 0 @@ -351,7 +351,7 @@ AbnormalWeather_EventScript_CleanupRoute127South:: @ 82740DC setmetatile 62, 33, METATILE_General_CalmWater, 0 return -AbnormalWeather_EventScript_CleanupRoute129West:: @ 8274149 +AbnormalWeather_EventScript_CleanupRoute129West:: setmetatile 16, 14, METATILE_General_CalmWater, 0 setmetatile 17, 14, METATILE_General_CalmWater, 0 setmetatile 15, 15, METATILE_General_CalmWater, 0 @@ -366,7 +366,7 @@ AbnormalWeather_EventScript_CleanupRoute129West:: @ 8274149 setmetatile 17, 17, METATILE_General_CalmWater, 0 return -AbnormalWeather_EventScript_CleanupRoute129East:: @ 82741B6 +AbnormalWeather_EventScript_CleanupRoute129East:: setmetatile 42, 19, METATILE_General_CalmWater, 0 setmetatile 43, 19, METATILE_General_CalmWater, 0 setmetatile 41, 20, METATILE_General_CalmWater, 0 @@ -381,7 +381,7 @@ AbnormalWeather_EventScript_CleanupRoute129East:: @ 82741B6 setmetatile 43, 22, METATILE_General_CalmWater, 0 return -AbnormalWeather_Underwater_SetupEscapeWarp:: @ 8274223 +AbnormalWeather_Underwater_SetupEscapeWarp:: switch VAR_ABNORMAL_WEATHER_LOCATION case ABNORMAL_WEATHER_ROUTE_105_NORTH, AbnormalWeather_Underwater_SetupEscapeWarpRoute105North case ABNORMAL_WEATHER_ROUTE_105_SOUTH, AbnormalWeather_Underwater_SetupEscapeWarpRoute105South @@ -393,34 +393,34 @@ AbnormalWeather_Underwater_SetupEscapeWarp:: @ 8274223 case ABNORMAL_WEATHER_ROUTE_129_EAST, AbnormalWeather_Underwater_SetupEscapeWarpRoute129East return -AbnormalWeather_Underwater_SetupEscapeWarpRoute105North:: @ 8274281 +AbnormalWeather_Underwater_SetupEscapeWarpRoute105North:: setescapewarp MAP_ROUTE105, 255, 11, 29 return -AbnormalWeather_Underwater_SetupEscapeWarpRoute105South:: @ 827428A +AbnormalWeather_Underwater_SetupEscapeWarpRoute105South:: setescapewarp MAP_ROUTE105, 255, 21, 54 return -AbnormalWeather_Underwater_SetupEscapeWarpRoute125West:: @ 8274293 +AbnormalWeather_Underwater_SetupEscapeWarpRoute125West:: setescapewarp MAP_ROUTE125, 255, 9, 17 return -AbnormalWeather_Underwater_SetupEscapeWarpRoute125East:: @ 827429C +AbnormalWeather_Underwater_SetupEscapeWarpRoute125East:: setescapewarp MAP_ROUTE125, 255, 54, 19 return -AbnormalWeather_Underwater_SetupEscapeWarpRoute127North:: @ 82742A5 +AbnormalWeather_Underwater_SetupEscapeWarpRoute127North:: setescapewarp MAP_ROUTE127, 255, 58, 10 return -AbnormalWeather_Underwater_SetupEscapeWarpRoute127South:: @ 82742AE +AbnormalWeather_Underwater_SetupEscapeWarpRoute127South:: setescapewarp MAP_ROUTE127, 255, 62, 31 return -AbnormalWeather_Underwater_SetupEscapeWarpRoute129West:: @ 82742B7 +AbnormalWeather_Underwater_SetupEscapeWarpRoute129West:: setescapewarp MAP_ROUTE129, 255, 17, 15 return -AbnormalWeather_Underwater_SetupEscapeWarpRoute129East:: @ 82742C0 +AbnormalWeather_Underwater_SetupEscapeWarpRoute129East:: setescapewarp MAP_ROUTE129, 255, 43, 20 return diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index f5fa3aeeb7..2a6772a5dc 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -1,6 +1,6 @@ .set LOCALID_APPRENTICE, 6 -BattleFrontier_BattleTowerLobby_EventScript_Apprentice:: @ 82B688D +BattleFrontier_BattleTowerLobby_EventScript_Apprentice:: lock faceplayer apprentice_gavelvlmode @@ -10,7 +10,7 @@ BattleFrontier_BattleTowerLobby_EventScript_Apprentice:: @ 82B688D compare VAR_0x8004, FALSE @ Always TRUE here goto_if_eq Apprentice_EventScript_AskQuestion goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, Apprentice_EventScript_Gone -Apprentice_EventScript_AskQuestion: @ 82B68BE +Apprentice_EventScript_AskQuestion: apprentice_getquestion compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MON goto_if_eq Apprentice_EventScript_UseWhichMon @@ -26,10 +26,10 @@ Apprentice_EventScript_AskQuestion: @ 82B68BE releaseall end -Apprentice_EventScript_FirstMeeting: @ 82B6900 +Apprentice_EventScript_FirstMeeting: apprentice_buff 0, APPRENTICE_BUFF_NAME apprentice_msg FALSE, APPRENTICE_MSG_PLEASE_TEACH -Apprentice_EventScript_WhichLvlMode: @ 82B6925 +Apprentice_EventScript_WhichLvlMode: apprentice_menu APPRENTICE_ASK_YES_NO compare VAR_RESULT, 1 goto_if_eq Apprentice_EventScript_RejectTeach @@ -48,11 +48,11 @@ Apprentice_EventScript_WhichLvlMode: @ 82B6925 end @ Its impossible to fully reject an Apprentice, they just keep asking for you to teach them -Apprentice_EventScript_RejectTeach: @ 82B69BB +Apprentice_EventScript_RejectTeach: apprentice_msg FALSE, APPRENTICE_MSG_REJECT goto Apprentice_EventScript_WhichLvlMode -Apprentice_EventScript_UseWhichMon: @ 82B69D3 +Apprentice_EventScript_UseWhichMon: apprentice_initquestion APPRENTICE_QUESTION_WHICH_MON apprentice_buff 0, APPRENTICE_BUFF_SPECIES1 apprentice_buff 1, APPRENTICE_BUFF_SPECIES2 @@ -80,24 +80,24 @@ Apprentice_EventScript_UseWhichMon: @ 82B69D3 goto Apprentice_EventScript_Leave end -Apprentice_EventScript_ChoseFirstMon: @ 82B6ABA +Apprentice_EventScript_ChoseFirstMon: setvar VAR_0x8007, APPRENTICE_BUFF_SPECIES1 return -Apprentice_EventScript_ChoseSecondMon: @ 82B6AC0 +Apprentice_EventScript_ChoseSecondMon: setvar VAR_0x8007, APPRENTICE_BUFF_SPECIES2 return -Apprentice_EventScript_LastMonSelected: @ 82B6AC6 +Apprentice_EventScript_LastMonSelected: apprentice_randomizequestions return -Apprentice_EventScript_UseWhatHeldItem: @ 82B6ACF +Apprentice_EventScript_UseWhatHeldItem: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_msg TRUE, APPRENTICE_MSG_WHAT_HELD_ITEM apprentice_freequestion -Apprentice_EventScript_ChooseHoldItem: @ 82B6B09 +Apprentice_EventScript_ChooseHoldItem: fadescreen FADE_TO_BLACK setvar VAR_RESULT, 0 apprentice_openbag @@ -117,7 +117,7 @@ Apprentice_EventScript_ChooseHoldItem: @ 82B6B09 goto Apprentice_EventScript_Leave end -Apprentice_EventScript_ConfirmHoldNothing: @ 82B6B81 +Apprentice_EventScript_ConfirmHoldNothing: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_msg FALSE, APPRENTICE_MSG_HOLD_NOTHING @@ -125,7 +125,7 @@ Apprentice_EventScript_ConfirmHoldNothing: @ 82B6B81 apprentice_freequestion compare VAR_RESULT, 0 goto_if_eq Apprentice_EventScript_ChooseHoldItem -Apprentice_EventScript_HoldNothing: @ 82B6BD4 +Apprentice_EventScript_HoldNothing: apprentice_msg TRUE, APPRENTICE_MSG_THANKS_NO_HELD_ITEM apprentice_answeredquestion call Apprentice_EventScript_SetHideFlags @@ -138,7 +138,7 @@ Apprentice_EventScript_HoldNothing: @ 82B6BD4 @ Because Battle Tower mons may not hold the same item, the player must suggest a @ different item if theyve already told the Apprentice to use it for another mon -Apprentice_EventScript_AlreadySuggestedItem: @ 82B6C0C +Apprentice_EventScript_AlreadySuggestedItem: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_ITEM apprentice_buff 1, APPRENTICE_BUFF_SPECIES3 @@ -150,7 +150,7 @@ Apprentice_EventScript_AlreadySuggestedItem: @ 82B6C0C goto Apprentice_EventScript_HoldNothing end -Apprentice_EventScript_UseWhichMove: @ 82B6C77 +Apprentice_EventScript_UseWhichMove: apprentice_initquestion APPRENTICE_QUESTION_WHICH_MOVE apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_buff 1, APPRENTICE_BUFF_MOVE1 @@ -175,15 +175,15 @@ Apprentice_EventScript_UseWhichMove: @ 82B6C77 goto Apprentice_EventScript_Leave end -Apprentice_EventScript_ChoseMove1: @ 82B6D50 +Apprentice_EventScript_ChoseMove1: setvar VAR_0x8007, APPRENTICE_BUFF_MOVE1 return -Apprentice_EventScript_ChoseMove2: @ 82B6D56 +Apprentice_EventScript_ChoseMove2: setvar VAR_0x8007, APPRENTICE_BUFF_MOVE2 return -Apprentice_EventScript_PutWhichMonFirst: @ 82B6D5C +Apprentice_EventScript_PutWhichMonFirst: apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON_FIRST apprentice_menu APPRENTICE_ASK_3SPECIES apprentice_setleadmon VAR_RESULT @@ -199,7 +199,7 @@ Apprentice_EventScript_PutWhichMonFirst: @ 82B6D5C end @ Last question, after which the Apprentice leaves (and is saved) to be replaced by another -Apprentice_EventScript_PickWinSpeech: @ 82B6DD4 +Apprentice_EventScript_PickWinSpeech: apprentice_msg TRUE, APPRENTICE_MSG_PICK_WIN_SPEECH apprentice_shiftsaved setvar VAR_0x8004, EASY_CHAT_TYPE_APPRENTICE @@ -218,12 +218,12 @@ Apprentice_EventScript_PickWinSpeech: @ 82B6DD4 goto Apprentice_EventScript_Leave end -Apprentice_EventScript_SetHideFlags: @ 82B6E4D +Apprentice_EventScript_SetHideFlags: setflag FLAG_HIDE_APPRENTICE setflag FLAG_DAILY_APPRENTICE_LEAVES return -Apprentice_EventScript_LeaveNorth: @ 82B6E54 +Apprentice_EventScript_LeaveNorth: apprentice_shouldleave compare VAR_0x8004, FALSE @ Always TRUE here goto_if_eq Apprentice_EventScript_DontMove @@ -231,7 +231,7 @@ Apprentice_EventScript_LeaveNorth: @ 82B6E54 waitmovement 0 end -Apprentice_EventScript_Leave: @ 82B6E72 +Apprentice_EventScript_Leave: apprentice_shouldleave compare VAR_0x8004, FALSE @ Always TRUE here goto_if_eq Apprentice_EventScript_DontMove @@ -239,17 +239,17 @@ Apprentice_EventScript_Leave: @ 82B6E72 waitmovement 0 end -Apprentice_EventScript_Gone: @ 82B6E90 +Apprentice_EventScript_Gone: release releaseall end -Apprentice_EventScript_DontMove: @ 82B6E93 +Apprentice_EventScript_DontMove: end -Apprentice_Movement_LeaveNorth: @ 82B6E94 +Apprentice_Movement_LeaveNorth: walk_fast_right -Apprentice_Movement_Leave: @ 82B6E95 +Apprentice_Movement_Leave: walk_fast_down walk_fast_down walk_fast_right diff --git a/data/scripts/battle_pike.inc b/data/scripts/battle_pike.inc index 67eb190115..3260bcfd82 100644 --- a/data/scripts/battle_pike.inc +++ b/data/scripts/battle_pike.inc @@ -1,9 +1,9 @@ @ Note: LOCALIDs shared with BattleFrontier_BattlePikeRoomNormal -BattleFrontier_BattlePikeRoomNormal_MapScripts_2C3E1B: @ 82C3E1B +BattleFrontier_BattlePikeRoom_MapScripts: map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattlePikeRoom_OnTransition map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattlePikeRoom_OnWarp -BattleFrontier_BattlePikeRoom_OnTransition: @ 82C3E25 +BattleFrontier_BattlePikeRoom_OnTransition: pike_setroomobjects pike_getroomtype switch VAR_RESULT @@ -17,36 +17,36 @@ BattleFrontier_BattlePikeRoom_OnTransition: @ 82C3E25 case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeRoomNormal_EventScript_SetBrainRoomObjPos end -BattleFrontier_BattlePikeRoomNormal_EventScript_SetDoubleBattleObjPos:: @ 82C3E93 +BattleFrontier_BattlePikeRoomNormal_EventScript_SetDoubleBattleObjPos:: setobjectxyperm LOCALID_OBJ_0, 2, 5 setobjectxyperm LOCALID_OBJ_1, 6, 5 end -BattleFrontier_BattlePikeRoomNormal_EventScript_SetTwoObjectRoomPos:: @ 82C3EA2 +BattleFrontier_BattlePikeRoomNormal_EventScript_SetTwoObjectRoomPos:: setobjectxyperm LOCALID_OBJ_0, 4, 4 setobjectxyperm LOCALID_OBJ_1, 3, 4 end -BattleFrontier_BattlePikeRoomNormal_EventScript_SetOneObjectRoomPos:: @ 82C3EB1 +BattleFrontier_BattlePikeRoomNormal_EventScript_SetOneObjectRoomPos:: setobjectxyperm LOCALID_OBJ_0, 4, 4 setobjectxyperm LOCALID_OBJ_1, 0, 0 end -BattleFrontier_BattlePikeRoomNormal_EventScript_SetNPCRoomObjPos:: @ 82C3EC0 +BattleFrontier_BattlePikeRoomNormal_EventScript_SetNPCRoomObjPos:: setobjectxyperm LOCALID_OBJ_0, 5, 5 setobjectxyperm LOCALID_OBJ_1, 0, 0 end -BattleFrontier_BattlePikeRoomNormal_EventScript_SetBrainRoomObjPos:: @ 82C3ECF +BattleFrontier_BattlePikeRoomNormal_EventScript_SetBrainRoomObjPos:: setobjectxyperm LOCALID_OBJ_0, 4, 3 setobjectxyperm LOCALID_OBJ_1, 4, 4 end -BattleFrontier_BattlePikeRoom_OnWarp: @ 82C3EDE +BattleFrontier_BattlePikeRoom_OnWarp: map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRoomNormal_EventScript_InitRoomObjects .2byte 0 -BattleFrontier_BattlePikeRoomNormal_EventScript_InitRoomObjects:: @ 82C3EE8 +BattleFrontier_BattlePikeRoomNormal_EventScript_InitRoomObjects:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_LINK_RECEPTIONIST setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_LINK_RECEPTIONIST pike_getroomtype @@ -63,33 +63,33 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_InitRoomObjects:: @ 82C3EE8 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeRoomNormal_EventScript_InitTwoObjectRoom:: @ 82C3F35 +BattleFrontier_BattlePikeRoomNormal_EventScript_InitTwoObjectRoom:: setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattlePikeRoomNormal_EventScript_InitBrainRoomObjects:: @ 82C3F3F +BattleFrontier_BattlePikeRoomNormal_EventScript_InitBrainRoomObjects:: setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH hideobjectat LOCALID_OBJ_0, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL @ Pike Queen hidden initially end -BattleFrontier_BattlePikeThreePathRoom_EventScript_LeftRoomWarp:: @ 82C3F4E +BattleFrontier_BattlePikeThreePathRoom_EventScript_LeftRoomWarp:: setvar VAR_0x8007, PIKE_ROOM_LEFT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_CenterRoomWarp:: @ 82C3F59 +BattleFrontier_BattlePikeThreePathRoom_EventScript_CenterRoomWarp:: setvar VAR_0x8007, PIKE_ROOM_CENTER goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_RightRoomWarp:: @ 82C3F64 +BattleFrontier_BattlePikeThreePathRoom_EventScript_RightRoomWarp:: setvar VAR_0x8007, PIKE_ROOM_RIGHT goto BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp end -BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp:: @ 82C3F6F +BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp:: pike_get PIKE_DATA_WIN_STREAK addvar VAR_RESULT, 1 pike_set PIKE_DATA_WIN_STREAK, VAR_RESULT @@ -110,7 +110,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_RoomWarp:: @ 82C3F6F case PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom end -BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom:: @ 82C4030 +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 call BattleFrontier_BattlePike_EventScript_CloseCurtain @@ -118,7 +118,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom:: @ 82C4030 waitstate end -BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpWildMonRoom:: @ 82C4049 +BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpWildMonRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 call BattleFrontier_BattlePike_EventScript_CloseCurtain @@ -126,12 +126,12 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpWildMonRoom:: @ 82C4049 waitstate end -BattleFrontier_BattlePikeThreePathRoom_EventScript_SetEnteredRoom:: @ 82C4062 +BattleFrontier_BattlePikeThreePathRoom_EventScript_SetEnteredRoom:: setvar VAR_TEMP_3, 1 setvar VAR_TEMP_2, 1 end -BattleFrontier_BattlePikeThreePathRoom_EventScript_NoTurningBack:: @ 82C406D +BattleFrontier_BattlePikeThreePathRoom_EventScript_NoTurningBack:: setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall @@ -139,12 +139,12 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_NoTurningBack:: @ 82C406D closemessage end -BattleFrontier_BattlePikeRoomNormal_EventScript_SetEnteredRoom:: @ 82C4082 +BattleFrontier_BattlePikeRoomNormal_EventScript_SetEnteredRoom:: setvar VAR_TEMP_3, 1 setvar VAR_TEMP_2, 1 end -BattleFrontier_BattlePikeRoomNormal_EventScript_NoTurningBack:: @ 82C408D +BattleFrontier_BattlePikeRoomNormal_EventScript_NoTurningBack:: setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall @@ -152,7 +152,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_NoTurningBack:: @ 82C408D closemessage end -BattleFrontier_BattlePikeRoomNormal_EventScript_Exit:: @ 82C40A2 +BattleFrontier_BattlePikeRoomNormal_EventScript_Exit:: pike_ispartyfullhealth compare VAR_RESULT, TRUE call_if_eq BattleFrontier_BattlePikeRoom_EventScript_DisableHealing @@ -172,29 +172,29 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_Exit:: @ 82C40A2 waitstate end -BattleFrontier_BattlePikeRoom_EventScript_DisableHealing:: @ 82C4128 +BattleFrontier_BattlePikeRoom_EventScript_DisableHealing:: pike_nohealing TRUE return -BattleFrontier_BattlePikeRoom_EventScript_EnableHealing:: @ 82C4136 +BattleFrontier_BattlePikeRoom_EventScript_EnableHealing:: pike_nohealing FALSE return -BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom:: @ 82C4144 +BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL, 255, 2, 7 return -BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom:: @ 82C415C +BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 call BattleFrontier_BattlePike_EventScript_CloseCurtain warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10 return -BattleFrontier_BattlePikeRoomWildMons_EventScript_Exit:: @ 82C4174 +BattleFrontier_BattlePikeRoomWildMons_EventScript_Exit:: pike_exitwildmonroom pike_ispartyfullhealth compare VAR_RESULT, TRUE @@ -215,12 +215,12 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_Exit:: @ 82C4174 waitstate end -BattleFrontier_BattlePikeRoomWildMons_EventScript_SetEnteredRoom:: @ 82C4202 +BattleFrontier_BattlePikeRoomWildMons_EventScript_SetEnteredRoom:: setvar VAR_TEMP_3, 1 setvar VAR_TEMP_2, 1 end -BattleFrontier_BattlePikeRoomWildMons_EventScript_NoTurningBack:: @ 82C420D +BattleFrontier_BattlePikeRoomWildMons_EventScript_NoTurningBack:: setvar VAR_TEMP_3, 0 setvar VAR_TEMP_2, 0 lockall @@ -228,13 +228,13 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_NoTurningBack:: @ 82C420D closemessage end -BattleFrontier_BattlePike_EventScript_Retire:: @ 82C4222 +BattleFrontier_BattlePike_EventScript_Retire:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS CHALLENGE_STATUS_LOST warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 waitstate end -BattleFrontier_BattlePikeRoom_OnResume: @ 82C423E +BattleFrontier_BattlePikeRoom_OnResume: setorcopyvar VAR_0x8006, VAR_RESULT @ Save VAR_RESULT from being overwritten frontier_get FRONTIER_DATA_CHALLENGE_STATUS compare VAR_RESULT, CHALLENGE_STATUS_PAUSED @@ -242,14 +242,14 @@ BattleFrontier_BattlePikeRoom_OnResume: @ 82C423E compare VAR_RESULT, CHALLENGE_STATUS_SAVING goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_EndOnResume call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves -BattleFrontier_BattlePikeThreePathRoom_EventScript_EndOnResume:: @ 82C426B +BattleFrontier_BattlePikeThreePathRoom_EventScript_EndOnResume:: setorcopyvar VAR_RESULT, VAR_0x8006 end -BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves:: @ 82C4271 +BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves:: frontier_resetsketch return -BattleFrontier_BattlePikeRoom_Movement_HidePlayer: @ 82C427A +BattleFrontier_BattlePikeRoom_Movement_HidePlayer: set_invisible step_end diff --git a/data/scripts/berry_blender.inc b/data/scripts/berry_blender.inc index 7ad8e9e3ae..921fa9582c 100644 --- a/data/scripts/berry_blender.inc +++ b/data/scripts/berry_blender.inc @@ -8,25 +8,25 @@ .set NUM_OPPONENTS, VAR_0x8009 -BerryBlender_Text_WantToMakePokeblocks: @ 8292DEE +BerryBlender_Text_WantToMakePokeblocks: .string "Oh? Did you want to make some {POKEBLOCK}S\n" .string "with this old-timer?$" -BerryBlender_Text_Excellent: @ 8292E28 +BerryBlender_Text_Excellent: .string "Excellent!$" -BerryBlender_Text_MadeOldTimerSad: @ 8292E33 +BerryBlender_Text_MadeOldTimerSad: .string "Oh…\n" .string "You've made this old-timer sad…$" -BerryBlender_Text_KnowHowToMakePokeblocks: @ 8292E57 +BerryBlender_Text_KnowHowToMakePokeblocks: .string "Do you know how to make a {POKEBLOCK}?$" -BerryBlender_Text_LetsBerryBlender: @ 8292E78 +BerryBlender_Text_LetsBerryBlender: .string "Let's get started, then!\p" .string "Let's BERRY BLENDER!$" -BerryBlender_Text_ExplainBerryBlending: @ 8292EA6 +BerryBlender_Text_ExplainBerryBlending: .string "Okay, a little explanation, then.\p" .string "Oh, don't worry, it's quite simple.\p" .string "When the BLENDER's arrow comes to\n" @@ -34,63 +34,63 @@ BerryBlender_Text_ExplainBerryBlending: @ 8292EA6 .string "That's all you have to do.\n" .string "You'll see how easy it is when you try.$" -BerryBlender_Text_DontHaveAnyBerries: @ 8292F77 +BerryBlender_Text_DontHaveAnyBerries: .string "Oh?\n" .string "You don't have any BERRIES?\p" .string "If you don't have any BERRIES,\n" .string "you can't make any {POKEBLOCK}S.$" -BerryBlender_Text_CanHaveOneOfMyBerries: @ 8292FD1 +BerryBlender_Text_CanHaveOneOfMyBerries: .string "Well, that won't do at all now, will it?\p" .string "If you don't mind leftovers, you can\n" .string "have one of my BERRIES.\p" .string "That way, we could make some {POKEBLOCK}S\n" .string "together using the BERRY BLENDER.$" -BerryBlender_Text_DontHaveAnyBerriesToSpare: @ 829307D +BerryBlender_Text_DontHaveAnyBerriesToSpare: .string "If I had some BERRIES left over,\n" .string "I'd gladly give you one…\p" .string "But, I don't have any to spare today.\n" .string "We'll have to do this another time.$" -BerryBlender_Text_PokeblockCaseIsFull: @ 8293101 +BerryBlender_Text_PokeblockCaseIsFull: .string "But your {POKEBLOCK} CASE is full.\p" .string "You should use some {POKEBLOCK}S before\n" .string "you come see me again.$" -BerryBlender_Text_DontHavePokeblockCase: @ 8293157 +BerryBlender_Text_DontHavePokeblockCase: .string "But you don't have a {POKEBLOCK} CASE.\p" .string "You should get a {POKEBLOCK} CASE and then\n" .string "come see me.$" -BerryBlender_Text_LetsGetBlendingAlready: @ 82931AA +BerryBlender_Text_LetsGetBlendingAlready: .string "Let's get blending already!$" -BerryBlender_Text_WhatKindOfPokeblockWillIGet: @ 82931C6 +BerryBlender_Text_WhatKindOfPokeblockWillIGet: .string "I wonder what kind of {POKEBLOCK} I'll get?\n" .string "This is so exciting!$" -BerryBlender_Text_WantToBlendPokeblocksWithUs: @ 8293201 +BerryBlender_Text_WantToBlendPokeblocksWithUs: .string "Hi, there! Did you want to blend some\n" .string "{POKEBLOCK}S with us?$" -BerryBlender_Text_Okay: @ 8293237 +BerryBlender_Text_Okay: .string "Okay!$" -BerryBlender_Text_ThatsTooBad: @ 829323D +BerryBlender_Text_ThatsTooBad: .string "That's too bad…\p" .string "But we'll always be around whenever\n" .string "you get the urge to blend!$" -BerryBlender_Text_KnowHowToMakePokeblocks2: @ 829328C +BerryBlender_Text_KnowHowToMakePokeblocks2: .string "Of course, you do know how to\n" .string "blend {POKEBLOCK}S, don't you?$" -BerryBlender_Text_LetsBerryBlender2: @ 82932C3 +BerryBlender_Text_LetsBerryBlender2: .string "Let's get started, then!\p" .string "Let's BERRY BLENDER!$" -BerryBlender_Text_ExplainBerryBlending2: @ 82932F1 +BerryBlender_Text_ExplainBerryBlending2: .string "Okay!\n" .string "Let me explain it to you!\p" .string "When the spinning BLENDER's arrow\n" @@ -99,7 +99,7 @@ BerryBlender_Text_ExplainBerryBlending2: @ 82932F1 .string "That's all it takes.\n" .string "Pretty easy, don't you think?$" -BerryBlender_Text_DontHaveAnyBerries2: @ 8293394 +BerryBlender_Text_DontHaveAnyBerries2: .string "Oh, but wait a second here…\n" .string "You don't have any BERRIES.\p" .string "You can't make any {POKEBLOCK}S without\n" @@ -107,40 +107,40 @@ BerryBlender_Text_DontHaveAnyBerries2: @ 8293394 .string "We'll always be around whenever you\n" .string "get hold of some BERRIES to blend.$" -BerryBlender_Text_PokeblockCaseIsFull2: @ 829343E +BerryBlender_Text_PokeblockCaseIsFull2: .string "Oh, but wait a second here…\n" .string "Your {POKEBLOCK} CASE is full.\p" .string "You should use some {POKEBLOCK}S and\n" .string "then come back.$" -BerryBlender_Text_DontHavePokeblockCase2: @ 82934A2 +BerryBlender_Text_DontHavePokeblockCase2: .string "Oh, but wait a second here…\n" .string "You don't have a {POKEBLOCK} CASE.\p" .string "You should get a {POKEBLOCK} CASE and\n" .string "then come back.$" @ Unused -BerryBlender_Text_MakePokeblocksWithOurGroup: @ 829350B +BerryBlender_Text_MakePokeblocksWithOurGroup: .string "Oh, hello! Did you want to make some\n" .string "{POKEBLOCK}S with our little group?$" -BerryBlender_Text_OhDear: @ 829354E +BerryBlender_Text_OhDear: .string "Oh, dear!$" -BerryBlender_Text_LeftUsInShock: @ 8293558 +BerryBlender_Text_LeftUsInShock: .string "Oh, dear me…\p" .string "You've left us in shock!$" -BerryBlender_Text_KnowHowToMakePokeblocks3: @ 829357E +BerryBlender_Text_KnowHowToMakePokeblocks3: .string "Naturally, you know how to make\n" .string "{POKEBLOCK}S, don't you?$" -BerryBlender_Text_LetsBerryBlender3: @ 82935B1 +BerryBlender_Text_LetsBerryBlender3: .string "Okay, dear!\n" .string "Let's get started!\p" .string "Let's BERRY BLENDER!$" -BerryBlender_Text_ExplainBerryBlending3: @ 82935E5 +BerryBlender_Text_ExplainBerryBlending3: .string "Oh, dear!\p" .string "Then, I'll explain it to you nicely.\p" .string "When the BLENDER's arrow spins to\n" @@ -148,7 +148,7 @@ BerryBlender_Text_ExplainBerryBlending3: @ 82935E5 .string "That's all it takes.\n" .string "Isn't it simple?$" -BerryBlender_Text_DontHaveAnyBerries3: @ 829367D +BerryBlender_Text_DontHaveAnyBerries3: .string "You don't have any BERRIES,\n" .string "do you?\p" .string "If you don't have any BERRIES,\n" @@ -157,84 +157,84 @@ BerryBlender_Text_DontHaveAnyBerries3: @ 829367D .string "so let's make some together when\l" .string "you get a BERRY or two.$" -BerryBlender_Text_PokeblockCaseIsFull3: @ 8293738 +BerryBlender_Text_PokeblockCaseIsFull3: .string "Your {POKEBLOCK} CASE is full,\n" .string "it looks like.\p" .string "You should use some {POKEBLOCK}S up\n" .string "and then come back.$" -BerryBlender_Text_DontHavePokeblockCase3: @ 8293792 +BerryBlender_Text_DontHavePokeblockCase3: .string "You haven't gotten a {POKEBLOCK} CASE\n" .string "yet, it looks like.\p" .string "You need to get a {POKEBLOCK} CASE before\n" .string "you come back.$" -BerryBlender_Text_SetNewBlenderRecord: @ 82937F9 +BerryBlender_Text_SetNewBlenderRecord: .string "Okay! Today's going to be the day that\n" .string "I set a new BLENDER speed record!$" -BerryBlender_Text_LookGoodAtBlendingJoinUs: @ 8293842 +BerryBlender_Text_LookGoodAtBlendingJoinUs: .string "Oh, dear!\n" .string "You look as if you're good at blending.\l" .string "Would you like to join us?$" -BerryBlender_Text_MakeDeliciousPokeblocks: @ 829388F +BerryBlender_Text_MakeDeliciousPokeblocks: .string "I'm going to make delicious {POKEBLOCK}S\n" .string "and make my POKéMON cuter.$" -BerryBlender_Text_SaveGameBeforeBerryBlenderLink: @ 82938CD +BerryBlender_Text_SaveGameBeforeBerryBlenderLink: .string "{POKEBLOCK}S will be made with your friends \n" .string "from BERRIES in the BERRY BLENDER.\p" .string "Is it okay to save the game before\n" .string "linking with your friends?$" -BerryBlender_Text_SearchingForFriends: @ 8293955 +BerryBlender_Text_SearchingForFriends: .string "Searching for your friends…\n" .string "… … B Button: Cancel$" -BerryBlender_Text_Player1Arrived: @ 8293986 +BerryBlender_Text_Player1Arrived: .string "{STR_VAR_1} arrived.$" -BerryBlender_Text_Player1And2Arrived: @ 8293992 +BerryBlender_Text_Player1And2Arrived: .string "{STR_VAR_1} and {STR_VAR_2} arrived.$" -BerryBlender_Text_AllPlayersArrived: @ 82939A5 +BerryBlender_Text_AllPlayersArrived: .string "{STR_VAR_1}, {STR_VAR_2}, and\n" .string "{STR_VAR_3} arrived.$" -BerryBlender_Text_NoBerriesLink: @ 82939BD +BerryBlender_Text_NoBerriesLink: .string "You have no BERRIES.\n" .string "The BERRY BLENDER can't be used.$" -BerryBlender_Text_PokeblockCaseIsFullLink: @ 82939F3 +BerryBlender_Text_PokeblockCaseIsFullLink: .string "Your {POKEBLOCK} CASE is full.\n" .string "The BERRY BLENDER can't be used.$" -BerryBlender_Text_DontHavePokeblockCaseLink: @ 8293A2D +BerryBlender_Text_DontHavePokeblockCaseLink: .string "You don't have a {POKEBLOCK} CASE.\n" .string "The BERRY BLENDER can't be used.$" -BerryBlender_Text_LoveMakingPokeblocks: @ 8293A6B +BerryBlender_Text_LoveMakingPokeblocks: .string "I love making {POKEBLOCK}S.\p" .string "I always have some BERRIES with me.$" -BerryBlender_Text_MakePokeblocksUsingBerryBlender: @ 8293AA5 +BerryBlender_Text_MakePokeblocksUsingBerryBlender: .string "If you'd like, we could make some\n" .string "{POKEBLOCK}S together using the\l" .string "BERRY BLENDER.$" -BerryBlender_Text_DontHaveAnyBerriesHaveOne: @ 8293AF0 +BerryBlender_Text_DontHaveAnyBerriesHaveOne: .string "Oh?\n" .string "You don't have any BERRIES?\p" .string "Well, that won't do at all now, will it?\p" .string "If you don't mind leftovers, you can\n" .string "have one of my BERRIES.$" -BerryBlender_Text_UseItToMakePokeblocksTogether: @ 8293B76 +BerryBlender_Text_UseItToMakePokeblocksTogether: .string "We'll use it to make {POKEBLOCK}S together\n" .string "using the BERRY BLENDER.$" -BerryBlender_Text_DontHaveAnyBerriesNoneToSpare: @ 8293BB4 +BerryBlender_Text_DontHaveAnyBerriesNoneToSpare: .string "Oh?\n" .string "You don't have any BERRIES?\p" .string "If I had some left over, I'd gladly\n" @@ -242,7 +242,7 @@ BerryBlender_Text_DontHaveAnyBerriesNoneToSpare: @ 8293BB4 .string "But, I don't have any to spare today.\n" .string "Sorry about that.$" -BerryBlender_EventScript_BerryBlender1:: @ 8293C3E +BerryBlender_EventScript_BerryBlender1:: lockall goto_if_unset FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER, BerryBlender_EventScript_BlendMasterPresent setvar NUM_OPPONENTS, 1 @@ -254,48 +254,48 @@ BerryBlender_EventScript_BerryBlender1:: @ 8293C3E goto BerryBlender_EventScript_DeclineBlender1 end -BerryBlender_EventScript_DeclineBlender1: @ 8293C70 +BerryBlender_EventScript_DeclineBlender1: msgbox BerryBlender_Text_MadeOldTimerSad, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_Blender1NoBerries: @ 8293C7A +BerryBlender_EventScript_Blender1NoBerries: msgbox BerryBlender_Text_DontHaveAnyBerries, MSGBOX_DEFAULT dotimebasedevents goto_if_set FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY, BerryBlender_EventScript_Blender1NoSpareBerries goto BerryBlender_EventScript_Blender1GiveSpareBerry end -BerryBlender_EventScript_Blender1NoSpareBerries: @ 8293C92 +BerryBlender_EventScript_Blender1NoSpareBerries: msgbox BerryBlender_Text_DontHaveAnyBerriesToSpare, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_Blender1GiveSpareBerry: @ 8293C9C +BerryBlender_EventScript_Blender1GiveSpareBerry: msgbox BerryBlender_Text_CanHaveOneOfMyBerries, MSGBOX_DEFAULT giveitem ITEM_PECHA_BERRY setflag FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY goto BerryBlender_EventScript_UseBerryBlender1 end -BerryBlender_EventScript_UseBerryBlender1: @ 8293CB9 +BerryBlender_EventScript_UseBerryBlender1: msgbox BerryBlender_Text_KnowHowToMakePokeblocks, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq BerryBlender_EventScript_StartBlender1 goto BerryBlender_EventScript_ExplainBlending1 end -BerryBlender_EventScript_StartBlender1: @ 8293CD2 +BerryBlender_EventScript_StartBlender1: msgbox BerryBlender_Text_LetsBerryBlender, MSGBOX_DEFAULT goto BerryBlender_EventScript_DoBerryBlending end -BerryBlender_EventScript_ExplainBlending1: @ 8293CE0 +BerryBlender_EventScript_ExplainBlending1: msgbox BerryBlender_Text_ExplainBerryBlending, MSGBOX_DEFAULT goto BerryBlender_EventScript_StartBlender1 end -BerryBlender_EventScript_TryUseBerryBlender1: @ 8293CEE +BerryBlender_EventScript_TryUseBerryBlender1: checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, FALSE goto_if_eq BerryBlender_EventScript_Blender1NoCase @@ -309,7 +309,7 @@ BerryBlender_EventScript_TryUseBerryBlender1: @ 8293CEE goto BerryBlender_EventScript_UseBerryBlender1 end -BerryBlender_EventScript_DoBerryBlending: @ 8293D2C +BerryBlender_EventScript_DoBerryBlending: copyvar VAR_0x8004, NUM_OPPONENTS fadescreen FADE_TO_BLACK special DoBerryBlending @@ -317,17 +317,17 @@ BerryBlender_EventScript_DoBerryBlending: @ 8293D2C releaseall end -BerryBlender_EventScript_Blender1CaseFull: @ 8293D39 +BerryBlender_EventScript_Blender1CaseFull: msgbox BerryBlender_Text_PokeblockCaseIsFull, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_Blender1NoCase: @ 8293D43 +BerryBlender_EventScript_Blender1NoCase: msgbox BerryBlender_Text_DontHavePokeblockCase, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_BerryBlender2:: @ 8293D4D +BerryBlender_EventScript_BerryBlender2:: lockall setvar NUM_OPPONENTS, 2 applymovement LOCALID_TWIN, Common_Movement_FaceOriginalDirection @@ -339,34 +339,34 @@ BerryBlender_EventScript_BerryBlender2:: @ 8293D4D goto BerryBlender_EventScript_DeclineBlender2 end -BerryBlender_EventScript_DeclineBlender2: @ 8293D7D +BerryBlender_EventScript_DeclineBlender2: msgbox BerryBlender_Text_ThatsTooBad, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_Blender2NoBerries: @ 8293D87 +BerryBlender_EventScript_Blender2NoBerries: msgbox BerryBlender_Text_DontHaveAnyBerries2, MSGBOX_DEFAULT release end -BerryBlender_EventScript_UseBerryBlender2: @ 8293D91 +BerryBlender_EventScript_UseBerryBlender2: msgbox BerryBlender_Text_KnowHowToMakePokeblocks2, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq BerryBlender_EventScript_StartBlender2 goto BerryBlender_EventScript_ExplainBlending2 end -BerryBlender_EventScript_StartBlender2: @ 8293DAA +BerryBlender_EventScript_StartBlender2: msgbox BerryBlender_Text_LetsBerryBlender2, MSGBOX_DEFAULT goto BerryBlender_EventScript_DoBerryBlending end -BerryBlender_EventScript_ExplainBlending2: @ 8293DB8 +BerryBlender_EventScript_ExplainBlending2: msgbox BerryBlender_Text_ExplainBerryBlending2, MSGBOX_DEFAULT goto BerryBlender_EventScript_StartBlender2 end -BerryBlender_EventScript_TryUseBerryBlender2: @ 8293DC6 +BerryBlender_EventScript_TryUseBerryBlender2: specialvar VAR_RESULT, PlayerHasBerries compare VAR_RESULT, FALSE goto_if_eq BerryBlender_EventScript_Blender2NoBerries @@ -381,17 +381,17 @@ BerryBlender_EventScript_TryUseBerryBlender2: @ 8293DC6 goto_if_eq BerryBlender_EventScript_Blender2CaseFull end -BerryBlender_EventScript_Blender2CaseFull: @ 8293E0A +BerryBlender_EventScript_Blender2CaseFull: msgbox BerryBlender_Text_PokeblockCaseIsFull2, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_Blender2NoCase: @ 8293E14 +BerryBlender_EventScript_Blender2NoCase: msgbox BerryBlender_Text_DontHavePokeblockCase2, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_BerryBlender3:: @ 8293E1E +BerryBlender_EventScript_BerryBlender3:: lockall setvar VAR_0x8008, LOCALID_POKEFAN_F setvar NUM_OPPONENTS, 3 @@ -405,34 +405,34 @@ BerryBlender_EventScript_BerryBlender3:: @ 8293E1E goto BerryBlender_EventScript_DeclineBlender3 end -BerryBlender_EventScript_DeclineBlender3: @ 8293E5A +BerryBlender_EventScript_DeclineBlender3: msgbox BerryBlender_Text_LeftUsInShock, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_Blender3NoBerries: @ 8293E64 +BerryBlender_EventScript_Blender3NoBerries: msgbox BerryBlender_Text_DontHaveAnyBerries3, MSGBOX_DEFAULT release end -BerryBlender_EventScript_UseBerryBlender3: @ 8293E6E +BerryBlender_EventScript_UseBerryBlender3: msgbox BerryBlender_Text_KnowHowToMakePokeblocks3, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq BerryBlender_EventScript_StartBlender3 goto BerryBlender_EventScript_ExplainBlending3 end -BerryBlender_EventScript_StartBlender3: @ 8293E87 +BerryBlender_EventScript_StartBlender3: msgbox BerryBlender_Text_LetsBerryBlender3, MSGBOX_DEFAULT goto BerryBlender_EventScript_DoBerryBlending end -BerryBlender_EventScript_ExplainBlending3: @ 8293E95 +BerryBlender_EventScript_ExplainBlending3: msgbox BerryBlender_Text_ExplainBerryBlending3, MSGBOX_DEFAULT goto BerryBlender_EventScript_StartBlender3 end -BerryBlender_EventScript_TryUseBlender3: @ 8293EA3 +BerryBlender_EventScript_TryUseBlender3: specialvar VAR_RESULT, PlayerHasBerries compare VAR_RESULT, FALSE goto_if_eq BerryBlender_EventScript_Blender3NoBerries @@ -447,17 +447,17 @@ BerryBlender_EventScript_TryUseBlender3: @ 8293EA3 goto_if_eq BerryBlender_EventScript_Blender3CaseFull end -BerryBlender_EventScript_Blender3CaseFull: @ 8293EE7 +BerryBlender_EventScript_Blender3CaseFull: msgbox BerryBlender_Text_PokeblockCaseIsFull3, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_Blender3NoCase: @ 8293EF1 +BerryBlender_EventScript_Blender3NoCase: msgbox BerryBlender_Text_DontHavePokeblockCase3, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_BlendMasterPresent: @ 8293EFB +BerryBlender_EventScript_BlendMasterPresent: lockall setvar NUM_OPPONENTS, 1 msgbox BerryBlender_Text_SeeMyMasteryInAction, MSGBOX_YESNO @@ -467,12 +467,12 @@ BerryBlender_EventScript_BlendMasterPresent: @ 8293EFB releaseall end -BerryBlender_EventScript_BlendMasterNoBerries: @ 8293F1E +BerryBlender_EventScript_BlendMasterNoBerries: msgbox BerryBlender_Text_BlendMasterNoBerries, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_TryBlendWithBlendMaster: @ 8293F28 +BerryBlender_EventScript_TryBlendWithBlendMaster: checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, FALSE goto_if_eq BerryBlender_EventScript_BlendMasterNoCase @@ -486,7 +486,7 @@ BerryBlender_EventScript_TryBlendWithBlendMaster: @ 8293F28 goto_if_eq BerryBlender_EventScript_BlendMasterCaseFull end -BerryBlender_EventScript_BlendWithBlendMaster: @ 8293F64 +BerryBlender_EventScript_BlendWithBlendMaster: msgbox BerryBlender_Text_BlendMasterKnowHowToMakePokeblocks, MSGBOX_YESNO compare VAR_RESULT, NO call_if_eq BerryBlender_EventScript_BlendMasterExplainBlending @@ -494,38 +494,38 @@ BerryBlender_EventScript_BlendWithBlendMaster: @ 8293F64 goto BerryBlender_EventScript_DoBerryBlending end -BerryBlender_EventScript_BlendMasterExplainBlending: @ 8293F85 +BerryBlender_EventScript_BlendMasterExplainBlending: msgbox BerryBlender_Text_BlendMasterExplainBerryBlending, MSGBOX_DEFAULT return -BerryBlender_EventScript_BlendMasterNoCase: @ 8293F8E +BerryBlender_EventScript_BlendMasterNoCase: msgbox BerryBlender_Text_BlendMasterNoPokeblockCase, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_BlendMasterCaseFull: @ 8293F98 +BerryBlender_EventScript_BlendMasterCaseFull: msgbox BerryBlender_Text_BlendMasterPokeblockCaseFull, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_Blender2Man:: @ 8293FA2 +BerryBlender_EventScript_Blender2Man:: msgbox BerryBlender_Text_SetNewBlenderRecord, MSGBOX_NPC end -BerryBlender_EventScript_Blender3PokefanF:: @ 8293FAB +BerryBlender_EventScript_Blender3PokefanF:: msgbox BerryBlender_Text_LookGoodAtBlendingJoinUs, MSGBOX_NPC end -BerryBlender_EventScript_Blender2Twin:: @ 8293FB4 +BerryBlender_EventScript_Blender2Twin:: msgbox BerryBlender_Text_MakeDeliciousPokeblocks, MSGBOX_NPC end -BerryBlender_EventScript_Blender1ExpertM:: @ 8293FBD +BerryBlender_EventScript_Blender1ExpertM:: setvar VAR_0x8008, 15 goto BerryBlender_EventScript_ExpertMCheckGiveBerry end -BerryBlender_EventScript_ExpertMCheckGiveBerry: @ 8293FC8 +BerryBlender_EventScript_ExpertMCheckGiveBerry: lock faceplayer msgbox BerryBlender_Text_LoveMakingPokeblocks, MSGBOX_DEFAULT @@ -536,12 +536,12 @@ BerryBlender_EventScript_ExpertMCheckGiveBerry: @ 8293FC8 goto_if_eq BerryBlender_EventScript_ExpertMNoBerries end -BerryBlender_EventScript_ExpertMPlayerHasBerries: @ 8293FEE +BerryBlender_EventScript_ExpertMPlayerHasBerries: msgbox BerryBlender_Text_MakePokeblocksUsingBerryBlender, MSGBOX_DEFAULT release end -BerryBlender_EventScript_ExpertMNoBerries: @ 8293FF8 +BerryBlender_EventScript_ExpertMNoBerries: checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, FALSE goto_if_eq BerryBlender_EventScript_ExpertMNoSpareBerries @@ -553,12 +553,12 @@ BerryBlender_EventScript_ExpertMNoBerries: @ 8293FF8 goto BerryBlender_EventScript_ExpertMGiveBerry end -BerryBlender_EventScript_ExpertMNoSpareBerries: @ 8294028 +BerryBlender_EventScript_ExpertMNoSpareBerries: msgbox BerryBlender_Text_DontHaveAnyBerriesNoneToSpare, MSGBOX_DEFAULT release end -BerryBlender_EventScript_ExpertMGiveBerry: @ 8294032 +BerryBlender_EventScript_ExpertMGiveBerry: msgbox BerryBlender_Text_DontHaveAnyBerriesHaveOne, MSGBOX_DEFAULT giveitem ITEM_PECHA_BERRY setflag FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY @@ -566,11 +566,11 @@ BerryBlender_EventScript_ExpertMGiveBerry: @ 8294032 release end -BerryBlender_Movement_BlendLeaderWalkInPlace: @ 8294053 +BerryBlender_Movement_BlendLeaderWalkInPlace: walk_in_place_fastest_right step_end -BerryBlender_EventScript_BerryBlenderLink:: @ 8294055 +BerryBlender_EventScript_BerryBlenderLink:: lockall specialvar VAR_RESULT, PlayerHasBerries compare VAR_RESULT, FALSE @@ -585,7 +585,7 @@ BerryBlender_EventScript_BerryBlenderLink:: @ 8294055 goto_if_eq BerryBlender_EventScript_LinkBlenderCaseFull end -BerryBlender_EventScript_LinkBlenderSaveGame: @ 8294092 +BerryBlender_EventScript_LinkBlenderSaveGame: msgbox BerryBlender_Text_SaveGameBeforeBerryBlenderLink, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq BerryBlender_EventScript_TryDoLinkBlender @@ -593,12 +593,12 @@ BerryBlender_EventScript_LinkBlenderSaveGame: @ 8294092 goto_if_eq BerryBlender_EventScript_CancelLinkBlender end -BerryBlender_EventScript_LinkBlenderNoBerries: @ 82940B1 +BerryBlender_EventScript_LinkBlenderNoBerries: msgbox BerryBlender_Text_NoBerriesLink, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_TryDoLinkBlender: @ 82940BB +BerryBlender_EventScript_TryDoLinkBlender: call Common_EventScript_SaveGame compare VAR_RESULT, FALSE goto_if_eq BerryBlender_EventScript_CancelLinkBlender @@ -621,22 +621,22 @@ BerryBlender_EventScript_TryDoLinkBlender: @ 82940BB goto_if_eq BerryBlender_EventScript_LinkError end -BerryBlender_EventScript_TwoPlayerLink: @ 829411D +BerryBlender_EventScript_TwoPlayerLink: msgbox BerryBlender_Text_Player1Arrived, MSGBOX_DEFAULT goto BerryBlender_EventScript_DoLinkBerryBlending end -BerryBlender_EventScript_ThreePlayerLink: @ 829412B +BerryBlender_EventScript_ThreePlayerLink: msgbox BerryBlender_Text_Player1And2Arrived, MSGBOX_DEFAULT goto BerryBlender_EventScript_DoLinkBerryBlending end -BerryBlender_EventScript_FourPlayerLink: @ 8294139 +BerryBlender_EventScript_FourPlayerLink: msgbox BerryBlender_Text_AllPlayersArrived, MSGBOX_DEFAULT goto BerryBlender_EventScript_DoLinkBerryBlending end -BerryBlender_EventScript_DoLinkBerryBlending: @ 8294147 +BerryBlender_EventScript_DoLinkBerryBlending: setvar VAR_0x8004, 0 @ number of opponents, 0 indicates Link fadescreen FADE_TO_BLACK removeobject 240 @ Unclear where these local IDs come from, @@ -648,45 +648,45 @@ BerryBlender_EventScript_DoLinkBerryBlending: @ 8294147 releaseall end -BerryBlender_EventScript_CancelLinkBlender: @ 8294160 +BerryBlender_EventScript_CancelLinkBlender: releaseall end -BerryBlender_EventScript_LinkBlenderCaseFull: @ 8294162 +BerryBlender_EventScript_LinkBlenderCaseFull: msgbox BerryBlender_Text_PokeblockCaseIsFullLink, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_LinkBlenderNoCase: @ 829416C +BerryBlender_EventScript_LinkBlenderNoCase: msgbox BerryBlender_Text_DontHavePokeblockCaseLink, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_CloseLinkNotReady: @ 8294176 +BerryBlender_EventScript_CloseLinkNotReady: special CloseLink msgbox Text_SomeoneIsNotReadyToLink, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_CloseLinkDifferentSelections: @ 8294183 +BerryBlender_EventScript_CloseLinkDifferentSelections: special CloseLink msgbox Text_PlayersMadeDifferentSelections, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_CloseLink: @ 8294190 +BerryBlender_EventScript_CloseLink: special CloseLink msgbox gText_PokeblockLinkCanceled, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_LinkError: @ 829419D +BerryBlender_EventScript_LinkError: special CloseLink msgbox Text_LinkErrorPleaseReset, MSGBOX_DEFAULT releaseall end -BerryBlender_EventScript_SpawnLinkPartners: @ 82941AA +BerryBlender_EventScript_SpawnLinkPartners: fadescreen FADE_TO_BLACK specialvar VAR_RESULT, GetLinkPartnerNames copyvar VAR_0x8008, VAR_RESULT @@ -695,7 +695,7 @@ BerryBlender_EventScript_SpawnLinkPartners: @ 82941AA goto BerryBlender_EventScript_LinkPlayersArrived end -BerryBlender_EventScript_LinkPlayersArrived: @ 82941C4 +BerryBlender_EventScript_LinkPlayersArrived: fadescreen FADE_FROM_BLACK switch VAR_0x8008 case 2, BerryBlender_EventScript_TwoPlayerLink @@ -703,15 +703,15 @@ BerryBlender_EventScript_LinkPlayersArrived: @ 82941C4 case 4, BerryBlender_EventScript_FourPlayerLink end -BerryBlender_EventScript_StartDecideLinkLeader: @ 82941ED +BerryBlender_EventScript_StartDecideLinkLeader: setvar VAR_0x8004, LINK_GROUP_BERRY_BLENDER goto BerryBlender_EventScript_DecideLinkLeader end -BerryBlender_EventScript_DecideLinkLeader: @ 82941F8 +BerryBlender_EventScript_DecideLinkLeader: message LilycoveCity_ContestLobby_Text_PleaseDecideLinkLeader waitmessage - multichoice 16, 6, MULTI_LINK_LEADER, 0 + multichoice 16, 6, MULTI_LINK_LEADER, FALSE switch VAR_RESULT case 0, BerryBlender_EventScript_TryJoinGroup case 1, BerryBlender_EventScript_TryLeadGroup @@ -719,7 +719,7 @@ BerryBlender_EventScript_DecideLinkLeader: @ 82941F8 case MULTI_B_PRESSED, BerryBlender_EventScript_CloseLink end -BerryBlender_EventScript_TryLeadGroup: @ 8294235 +BerryBlender_EventScript_TryLeadGroup: call BerryBlender_EventScript_TryBecomeLinkLeader compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq BerryBlender_EventScript_LinkLeaderDecided @@ -730,7 +730,7 @@ BerryBlender_EventScript_TryLeadGroup: @ 8294235 release end -BerryBlender_EventScript_TryJoinGroup: @ 829425D +BerryBlender_EventScript_TryJoinGroup: call BerryBlender_EventScript_TryJoinLinkGroup compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq BerryBlender_EventScript_LinkLeaderDecided @@ -741,16 +741,16 @@ BerryBlender_EventScript_TryJoinGroup: @ 829425D release end -BerryBlender_EventScript_TryBecomeLinkLeader: @ 8294285 +BerryBlender_EventScript_TryBecomeLinkLeader: special TryBecomeLinkLeader waitstate return -BerryBlender_EventScript_TryJoinLinkGroup: @ 829428A +BerryBlender_EventScript_TryJoinLinkGroup: special TryJoinLinkGroup waitstate return -BerryBlender_EventScript_LinkLeaderDecided: @ 829428F +BerryBlender_EventScript_LinkLeaderDecided: goto BerryBlender_EventScript_SpawnLinkPartners end diff --git a/data/scripts/berry_tree.inc b/data/scripts/berry_tree.inc index fe10af4b3d..e415d0c657 100644 --- a/data/scripts/berry_tree.inc +++ b/data/scripts/berry_tree.inc @@ -1,4 +1,4 @@ -BerryTreeScript:: @ 82742F9 +BerryTreeScript:: special ObjectEventInteractionGetBerryTreeData switch VAR_0x8004 case BERRY_STAGE_SPARKLING, BerryTree_EventScript_Sparkling @@ -10,7 +10,7 @@ BerryTreeScript:: @ 82742F9 case BERRY_STAGE_BERRIES, BerryTree_EventScript_CheckBerryFullyGrown end -BerryTree_EventScript_Sparkling:: @ 827434F +BerryTree_EventScript_Sparkling:: lockall message BerryTree_Text_ExclamationPoint waitmessage @@ -18,7 +18,7 @@ BerryTree_EventScript_Sparkling:: @ 827434F releaseall end -BerryTree_EventScript_CheckSoil:: @ 8274359 +BerryTree_EventScript_CheckSoil:: lock faceplayer specialvar VAR_RESULT, PlayerHasBerries @@ -30,7 +30,7 @@ BerryTree_EventScript_CheckSoil:: @ 8274359 release end -BerryTree_EventScript_WantToPlant:: @ 8274374 +BerryTree_EventScript_WantToPlant:: msgbox BerryTree_Text_WantToPlant, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq BerryTree_EventScript_ChooseBerryToPlant @@ -38,7 +38,7 @@ BerryTree_EventScript_WantToPlant:: @ 8274374 goto_if_eq BerryTree_EventScript_CancelPlanting end -BerryTree_EventScript_ChooseBerryToPlant:: @ 8274393 +BerryTree_EventScript_ChooseBerryToPlant:: fadescreen FADE_TO_BLACK closemessage special Bag_ChooseBerry @@ -48,11 +48,11 @@ BerryTree_EventScript_ChooseBerryToPlant:: @ 8274393 removeitem VAR_ITEM_ID call BerryTree_EventScript_PlantBerry -BerryTree_EventScript_CancelPlanting:: @ 82743AF +BerryTree_EventScript_CancelPlanting:: release end -BerryTree_EventScript_CheckBerryStage1:: @ 82743B1 +BerryTree_EventScript_CheckBerryStage1:: lockall special ObjectEventInteractionGetBerryCountString message BerryTree_Text_BerryGrowthStage1 @@ -60,7 +60,7 @@ BerryTree_EventScript_CheckBerryStage1:: @ 82743B1 waitbuttonpress goto BerryTree_EventScript_WantToWater -BerryTree_EventScript_CheckBerryStage2:: @ 82743C1 +BerryTree_EventScript_CheckBerryStage2:: lockall special ObjectEventInteractionGetBerryName message BerryTree_Text_BerryGrowthStage2 @@ -68,7 +68,7 @@ BerryTree_EventScript_CheckBerryStage2:: @ 82743C1 waitbuttonpress goto BerryTree_EventScript_WantToWater -BerryTree_EventScript_CheckBerryStage3:: @ 82743D1 +BerryTree_EventScript_CheckBerryStage3:: lockall special ObjectEventInteractionGetBerryName message BerryTree_Text_BerryGrowthStage3 @@ -76,7 +76,7 @@ BerryTree_EventScript_CheckBerryStage3:: @ 82743D1 waitbuttonpress goto BerryTree_EventScript_WantToWater -BerryTree_EventScript_CheckBerryStage4:: @ 82743E1 +BerryTree_EventScript_CheckBerryStage4:: call BerryTree_EventScript_GetCareAdverb lockall special ObjectEventInteractionGetBerryName @@ -87,7 +87,7 @@ BerryTree_EventScript_CheckBerryStage4:: @ 82743E1 @ VAR_0x8005 here is the number of times watered @ Buffered by ObjectEventInteractionGetBerryTreeData -BerryTree_EventScript_GetCareAdverb:: @ 82743F6 +BerryTree_EventScript_GetCareAdverb:: compare VAR_0x8005, 0 goto_if_eq BerryTree_EventScript_SetAdverbPoor compare VAR_0x8005, 4 @@ -95,16 +95,16 @@ BerryTree_EventScript_GetCareAdverb:: @ 82743F6 bufferstring 1, BerryTree_Text_CareAdverbGood return -BerryTree_EventScript_SetAdverbGreat:: @ 8274413 +BerryTree_EventScript_SetAdverbGreat:: bufferstring 1, BerryTree_Text_CareAdverbGreat return -BerryTree_EventScript_SetAdverbPoor:: @ 827441A +BerryTree_EventScript_SetAdverbPoor:: bufferstring 1, BerryTree_Text_CareAdverbPoor return @ VAR_0x8006 here is the number of berries -BerryTree_EventScript_CheckBerryFullyGrown:: @ 8274421 +BerryTree_EventScript_CheckBerryFullyGrown:: buffernumberstring 1, VAR_0x8006 lock faceplayer @@ -115,7 +115,7 @@ BerryTree_EventScript_CheckBerryFullyGrown:: @ 8274421 compare VAR_RESULT, NO goto_if_eq BerryTree_EventScript_CancelPickingBerry -BerryTree_EventScript_PickBerry:: @ 8274448 +BerryTree_EventScript_PickBerry:: special ObjectEventInteractionPickBerryTree compare VAR_0x8004, 0 goto_if_eq BerryTree_EventScript_BerryPocketFull @@ -132,28 +132,28 @@ BerryTree_EventScript_PickBerry:: @ 8274448 release end -BerryTree_EventScript_BerryPocketFull:: @ 8274470 +BerryTree_EventScript_BerryPocketFull:: message BerryTree_Text_BerryPocketFull waitmessage waitbuttonpress release end -BerryTree_EventScript_CancelPickingBerry:: @ 8274479 +BerryTree_EventScript_CancelPickingBerry:: message BerryTree_Text_BerryLeftUnpicked waitmessage waitbuttonpress release end -BerryTree_EventScript_ItemUsePlantBerry:: @ 8274482 +BerryTree_EventScript_ItemUsePlantBerry:: lockall special ObjectEventInteractionGetBerryTreeData call BerryTree_EventScript_PlantBerry releaseall end -BerryTree_EventScript_WantToWater:: @ 827448D +BerryTree_EventScript_WantToWater:: checkitem ITEM_WAILMER_PAIL, 1 compare VAR_RESULT, 0 goto_if_eq BerryTree_EventScript_DontWater @@ -164,14 +164,14 @@ BerryTree_EventScript_WantToWater:: @ 827448D compare VAR_RESULT, NO goto_if_eq BerryTree_EventScript_DontWater -BerryTree_EventScript_DontWater:: @ 82744BE +BerryTree_EventScript_DontWater:: releaseall end -BerryTree_EventScript_ItemUseWailmerPail:: @ 82744C0 +BerryTree_EventScript_ItemUseWailmerPail:: special ObjectEventInteractionGetBerryTreeData lockall -BerryTree_EventScript_WaterBerry:: @ 82744C4 +BerryTree_EventScript_WaterBerry:: special ObjectEventInteractionGetBerryName message BerryTree_Text_WateredTheBerry waitmessage @@ -184,7 +184,7 @@ BerryTree_EventScript_WaterBerry:: @ 82744C4 releaseall end -BerryTree_EventScript_PlantBerry:: @ 82744DD +BerryTree_EventScript_PlantBerry:: special ObjectEventInteractionPlantBerryTree incrementgamestat GAME_STAT_PLANTED_BERRIES special IncrementDailyPlantedBerries @@ -194,70 +194,70 @@ BerryTree_EventScript_PlantBerry:: @ 82744DD waitbuttonpress return -BerryTree_Text_ItsSoftLoamySoil: @ 82744F0 +BerryTree_Text_ItsSoftLoamySoil: .string "It's soft, loamy soil.$" -BerryTree_Text_WantToPlant: @ 8274507 +BerryTree_Text_WantToPlant: .string "It's soft, loamy soil.\n" .string "Want to plant a BERRY?$" -BerryTree_Text_PlantedOneBerry: @ 8274535 +BerryTree_Text_PlantedOneBerry: .string "{PLAYER} planted one {STR_VAR_1} in\n" .string "the soft, loamy soil.$" -BerryTree_Text_BerryGrowthStage1: @ 8274560 +BerryTree_Text_BerryGrowthStage1: .string "One {STR_VAR_1} was planted here.$" -BerryTree_Text_BerryGrowthStage2: @ 8274579 +BerryTree_Text_BerryGrowthStage2: .string "{STR_VAR_1} has sprouted.$" -BerryTree_Text_BerryGrowthStage3: @ 827458A +BerryTree_Text_BerryGrowthStage3: .string "This {STR_VAR_1} plant is growing taller.$" -BerryTree_Text_BerryGrowthStage4: @ 82745AB +BerryTree_Text_BerryGrowthStage4: .string "These {STR_VAR_1} flowers are blooming\n" .string "{STR_VAR_2}.$" -BerryTree_Text_CareAdverbGreat: @ 82745CD +BerryTree_Text_CareAdverbGreat: .string "very beautifully$" -BerryTree_Text_CareAdverbPoor: @ 82745DE +BerryTree_Text_CareAdverbPoor: .string "cutely$" -BerryTree_Text_CareAdverbGood: @ 82745E5 +BerryTree_Text_CareAdverbGood: .string "prettily$" -BerryTree_Text_WantToPick: @ 82745EE +BerryTree_Text_WantToPick: .string "You found {STR_VAR_2} {STR_VAR_1}!\p" .string "Do you want to pick the\n" .string "{STR_VAR_1}?$" -BerryTree_Text_PickedTheBerry: @ 827461B +BerryTree_Text_PickedTheBerry: .string "{PLAYER} picked the {STR_VAR_2} {STR_VAR_1}.$" -BerryTree_Text_PutAwayBerry: @ 8274630 +BerryTree_Text_PutAwayBerry: .string "{PLAYER} put away the {STR_VAR_1}\n" .string "in the BAG's BERRIES POCKET.\p" .string "The soil returned to its soft and\n" .string "loamy state.$" -BerryTree_Text_BerryPocketFull: @ 827468F +BerryTree_Text_BerryPocketFull: .string "The BAG's BERRIES POCKET is full.\p" .string "The {STR_VAR_1} couldn't be taken.$" -BerryTree_Text_BerryLeftUnpicked: @ 82746CB +BerryTree_Text_BerryLeftUnpicked: .string "{PLAYER} left the {STR_VAR_1}\n" .string "unpicked.$" -BerryTree_Text_WantToWater: @ 82746E4 +BerryTree_Text_WantToWater: .string "Want to water the {STR_VAR_1} with the\n" .string "WAILMER PAIL?$" -BerryTree_Text_WateredTheBerry: @ 8274710 +BerryTree_Text_WateredTheBerry: .string "{PLAYER} watered the {STR_VAR_1}.$" -BerryTree_Text_PlantIsDelighted: @ 8274723 +BerryTree_Text_PlantIsDelighted: .string "The plant seems to be delighted.$" -BerryTree_Text_ExclamationPoint: @ 8274744 +BerryTree_Text_ExclamationPoint: .string "!$" diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index b81fbb4d54..5cecb60d81 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -1,8 +1,8 @@ -CableClub_OnTransition: @ 8276ACF +CableClub_OnTransition: call CableClub_EventScript_HideOrShowMysteryGiftMan end -CableClub_EventScript_HideOrShowMysteryGiftMan:: @ 8276AD5 +CableClub_EventScript_HideOrShowMysteryGiftMan:: specialvar VAR_RESULT, ShouldDistributeEonTicket compare VAR_RESULT, TRUE goto_if_eq CableClub_EventScript_ShowMysteryGiftMan @@ -12,30 +12,30 @@ CableClub_EventScript_HideOrShowMysteryGiftMan:: @ 8276AD5 goto CableClub_EventScript_ShowMysteryGiftMan end -CableClub_EventScript_ShowMysteryGiftMan:: @ 8276AFB +CableClub_EventScript_ShowMysteryGiftMan:: clearflag FLAG_HIDE_POKEMON_CENTER_2F_MYSTERY_GIFT_MAN return -CableClub_EventScript_HideMysteryGiftMan:: @ 8276AFF +CableClub_EventScript_HideMysteryGiftMan:: setflag FLAG_HIDE_POKEMON_CENTER_2F_MYSTERY_GIFT_MAN return -CableClub_EventScript_MysteryGiftMan:: @ 8276B03 +CableClub_EventScript_MysteryGiftMan:: specialvar VAR_RESULT, ShouldDistributeEonTicket compare VAR_RESULT, TRUE goto_if_eq CableClub_EventScript_DistributeEonTicket goto CableClub_EventScript_AlreadyGotEonTicket end -CableClub_EventScript_AlreadyGotEonTicket:: @ 8276B19 +CableClub_EventScript_AlreadyGotEonTicket:: gotoram @ Unused? -CableClub_EventScript_MysteryGiftThankYou:: @ 8276B1A +CableClub_EventScript_MysteryGiftThankYou:: msgbox gText_ThankYouForAccessingMysteryGift, MSGBOX_NPC end -CableClub_EventScript_DistributeEonTicket:: @ 8276B23 +CableClub_EventScript_DistributeEonTicket:: checkitem ITEM_EON_TICKET, 1 compare VAR_RESULT, TRUE goto_if_eq CableClub_EventScript_AlreadyGotEonTicket @@ -49,12 +49,12 @@ CableClub_EventScript_DistributeEonTicket:: @ 8276B23 end @ Unused? -CableClub_EventScript_MysteryGiftThankYou2:: @ 8276B62 +CableClub_EventScript_MysteryGiftThankYou2:: msgbox gText_ThankYouForAccessingMysteryGift, MSGBOX_DEFAULT release end -CableClub_OnWarp: @ 8276B6C +CableClub_OnWarp: map_script_2 VAR_CABLE_CLUB_STATE, USING_SINGLE_BATTLE, CableClub_EventScript_CheckTurnAttendant map_script_2 VAR_CABLE_CLUB_STATE, USING_DOUBLE_BATTLE, CableClub_EventScript_CheckTurnAttendant map_script_2 VAR_CABLE_CLUB_STATE, USING_MULTI_BATTLE, CableClub_EventScript_CheckTurnAttendant @@ -65,14 +65,14 @@ CableClub_OnWarp: @ 8276B6C map_script_2 VAR_CABLE_CLUB_STATE, USING_MINIGAME, CableClub_EventScript_CheckTurnAttendant .2byte 0 -CableClub_EventScript_CheckTurnAttendant:: @ 8276BAE +CableClub_EventScript_CheckTurnAttendant:: compare VAR_0x8007, 0 goto_if_eq CableClub_EventScript_DontTurnAttendant turnobject VAR_0x8007, DIR_WEST -CableClub_EventScript_DontTurnAttendant:: @ 8276BBD +CableClub_EventScript_DontTurnAttendant:: end -CableClub_OnLoad: @ 8276BBE +CableClub_OnLoad: compare VAR_CABLE_CLUB_STATE, USING_SINGLE_BATTLE goto_if_eq CableClub_EventScript_OnLoadFromColosseum compare VAR_CABLE_CLUB_STATE, USING_DOUBLE_BATTLE @@ -91,31 +91,31 @@ CableClub_OnLoad: @ 8276BBE goto_if_eq CableClub_EventScript_OnLoadFromGameCorner end -CableClub_EventScript_OnLoadFromColosseum:: @ 8276C17 +CableClub_EventScript_OnLoadFromColosseum:: call CableClub_EventScript_OpenDirectCornerBarrier end -CableClub_EventScript_OnLoadFromTradeCenter:: @ 8276C1D +CableClub_EventScript_OnLoadFromTradeCenter:: call CableClub_EventScript_OpenDirectCornerBarrier end -CableClub_EventScript_OnLoadFromRecordCorner:: @ 8276C23 +CableClub_EventScript_OnLoadFromRecordCorner:: call CableClub_EventScript_OpenDirectCornerBarrier end -CableClub_EventScript_OnLoadFromUnionRoom:: @ 8276C29 +CableClub_EventScript_OnLoadFromUnionRoom:: call CableClub_EventScript_OpenUnionRoomBarrier end -CableClub_EventScript_OnLoadFromBerryCrush:: @ 8276C2F +CableClub_EventScript_OnLoadFromBerryCrush:: call CableClub_EventScript_OpenDirectCornerBarrier end -CableClub_EventScript_OnLoadFromGameCorner:: @ 8276C35 +CableClub_EventScript_OnLoadFromGameCorner:: call EventScript_OpenMossdeepGameCornerBarrier end -CableClub_OnFrame: @ 8276C3B +CableClub_OnFrame: map_script_2 VAR_CABLE_CLUB_TUTORIAL_STATE, 1, CableClub_EventScript_Tutorial map_script_2 VAR_CABLE_CLUB_STATE, USING_SINGLE_BATTLE, CableClub_EventScript_ExitLinkRoom map_script_2 VAR_CABLE_CLUB_STATE, USING_DOUBLE_BATTLE, CableClub_EventScript_ExitLinkRoom @@ -127,7 +127,7 @@ CableClub_OnFrame: @ 8276C3B map_script_2 VAR_CABLE_CLUB_STATE, USING_MINIGAME, CableClub_EventScript_ExitMinigameRoom .2byte 0 -CableClub_EventScript_ExitLinkRoom:: @ 8276C85 +CableClub_EventScript_ExitLinkRoom:: lockall call CableClub_EventScript_CloseLinkAndExitLinkRoom call CableClub_EventScript_CloseDirectCornerBarrier @@ -137,7 +137,7 @@ CableClub_EventScript_ExitLinkRoom:: @ 8276C85 releaseall end -CableClub_EventScript_ExitMinigameRoom:: @ 8276C9D +CableClub_EventScript_ExitMinigameRoom:: lockall call CableClub_EventScript_CloseLinkAndExitLinkRoom call EventScript_CloseMossdeepGameCornerBarrier @@ -147,7 +147,7 @@ CableClub_EventScript_ExitMinigameRoom:: @ 8276C9D releaseall end -CableClub_EventScript_CloseLinkAndExitLinkRoom:: @ 8276CB5 +CableClub_EventScript_CloseLinkAndExitLinkRoom:: special CloseLink setvar VAR_CABLE_CLUB_STATE, 0 compare VAR_0x8007, 0 @@ -160,7 +160,7 @@ CableClub_EventScript_CloseLinkAndExitLinkRoom:: @ 8276CB5 waitmovement 0 return -CableClub_EventScript_ExitTradeCenter:: @ 8276CE7 +CableClub_EventScript_ExitTradeCenter:: lockall call CableClub_EventScript_PlayerExitTradeCenter call CableClub_EventScript_CloseDirectCornerBarrier @@ -170,7 +170,7 @@ CableClub_EventScript_ExitTradeCenter:: @ 8276CE7 releaseall end -CableClub_EventScript_PlayerExitTradeCenter:: @ 8276CFF +CableClub_EventScript_PlayerExitTradeCenter:: special CloseLink setvar VAR_CABLE_CLUB_STATE, 0 compare VAR_0x8007, 0 @@ -182,7 +182,7 @@ CableClub_EventScript_PlayerExitTradeCenter:: @ 8276CFF call CableClub_EventScript_TrainerCardDataOverwritten return -CableClub_EventScript_ExitRecordCorner:: @ 8276D2C +CableClub_EventScript_ExitRecordCorner:: lockall call CableClub_EventScript_PlayerExitRecordCorner call CableClub_EventScript_CloseDirectCornerBarrier @@ -192,7 +192,7 @@ CableClub_EventScript_ExitRecordCorner:: @ 8276D2C releaseall end -CableClub_EventScript_PlayerExitRecordCorner:: @ 8276D44 +CableClub_EventScript_PlayerExitRecordCorner:: special CloseLink setvar VAR_CABLE_CLUB_STATE, 0 applymovement OBJ_EVENT_ID_PLAYER, Movement_PlayerExitLinkRoom @@ -201,10 +201,10 @@ CableClub_EventScript_PlayerExitRecordCorner:: @ 8276D44 goto_if_eq CableClub_EventScript_ExitRecordCornerRet applymovement VAR_0x8007, Movement_AttendantFaceDown waitmovement 0 -CableClub_EventScript_ExitRecordCornerRet:: @ 8276D6B +CableClub_EventScript_ExitRecordCornerRet:: return -CableClub_EventScript_ExitUnionRoom:: @ 8276D6C +CableClub_EventScript_ExitUnionRoom:: lockall call CableClub_EventScript_PlayerExitUnionRoom call CableClub_EventScript_CloseUnionRoomBarrier @@ -214,7 +214,7 @@ CableClub_EventScript_ExitUnionRoom:: @ 8276D6C releaseall end -CableClub_EventScript_PlayerExitUnionRoom:: @ 8276D84 +CableClub_EventScript_PlayerExitUnionRoom:: setvar VAR_CABLE_CLUB_STATE, 0 compare VAR_0x8007, 0 goto_if_eq CableClub_EventScript_PlayerExitLinkRoom @@ -225,7 +225,7 @@ CableClub_EventScript_PlayerExitUnionRoom:: @ 8276D84 call CableClub_EventScript_TrainerCardDataOverwritten return -CableClub_EventScript_TrainerCardDataOverwritten:: @ 8276DAE +CableClub_EventScript_TrainerCardDataOverwritten:: message CableClub_Text_TrainerCardDataOverwritten waitmessage playse SE_PIN @@ -238,12 +238,12 @@ CableClub_EventScript_TrainerCardDataOverwritten:: @ 8276DAE waitmovement 0 return -CableClub_EventScript_PlayerExitLinkRoom:: @ 8276DD5 +CableClub_EventScript_PlayerExitLinkRoom:: applymovement OBJ_EVENT_ID_PLAYER, Movement_PlayerExitLinkRoom waitmovement 0 return -CableClub_EventScript_Tutorial:: @ 8276DE0 +CableClub_EventScript_Tutorial:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 @@ -257,27 +257,27 @@ CableClub_EventScript_Tutorial:: @ 8276DE0 releaseall end -CableClub_Movement_PlayerApproachCounter: @ 8276E10 +CableClub_Movement_PlayerApproachCounter: walk_up walk_up step_end -CableClub_EventScript_WelcomeToCableClub:: @ 8276E13 +CableClub_EventScript_WelcomeToCableClub:: message CableClub_Text_WelcomeWhichCableClubService waitmessage delay 28 goto CableClub_EventScript_SelectCableClubRoom end -CableClub_EventScript_UnusedWelcomeToCableClub:: @ 8276E22 +CableClub_EventScript_UnusedWelcomeToCableClub:: msgbox CableClub_Text_WhichService, MSGBOX_DEFAULT goto CableClub_EventScript_SelectCableClubRoom end -CableClub_EventScript_SelectCableClubRoom:: @ 8276E30 +CableClub_EventScript_SelectCableClubRoom:: setvar VAR_0x8004, 0 goto_if_set FLAG_VISITED_MAUVILLE_CITY, CableClub_EventScript_CableClubUnlockedRecordCorner - multichoice 0, 0, MULTI_CABLE_CLUB_NO_RECORD_MIX, 0 + multichoice 0, 0, MULTI_CABLE_CLUB_NO_RECORD_MIX, FALSE switch VAR_RESULT case 0, CableClub_EventScript_TradeCenter case 1, CableClub_EventScript_Colosseum @@ -285,8 +285,8 @@ CableClub_EventScript_SelectCableClubRoom:: @ 8276E30 case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_CableClubUnlockedRecordCorner:: @ 8276E75 - multichoice 0, 0, MULTI_CABLE_CLUB_WITH_RECORD_MIX, 0 +CableClub_EventScript_CableClubUnlockedRecordCorner:: + multichoice 0, 0, MULTI_CABLE_CLUB_WITH_RECORD_MIX, FALSE switch VAR_RESULT case 0, CableClub_EventScript_TradeCenter case 1, CableClub_EventScript_Colosseum @@ -295,15 +295,15 @@ CableClub_EventScript_CableClubUnlockedRecordCorner:: @ 8276E75 case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_Colosseum:: @ 8276EB7 +CableClub_EventScript_Colosseum:: copyvar VAR_0x8007, VAR_LAST_TALKED goto CableClub_EventScript_SelectBattleMode end -CableClub_EventScript_SelectBattleMode:: @ 8276EC2 +CableClub_EventScript_SelectBattleMode:: message CableClub_Text_PlayWhichBattleMode waitmessage - multichoice 0, 0, MULTI_BATTLE_MODE, 0 + multichoice 0, 0, MULTI_BATTLE_MODE, FALSE switch VAR_RESULT case 0, CableClub_EventScript_SingleBattleMode case 1, CableClub_EventScript_DoubleBattleMode @@ -313,17 +313,17 @@ CableClub_EventScript_SelectBattleMode:: @ 8276EC2 case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_BattleModeInfo:: @ 8276F15 +CableClub_EventScript_BattleModeInfo:: msgbox CableClub_Text_ExplainBattleModes, MSGBOX_DEFAULT goto CableClub_EventScript_SelectBattleMode end -CableClub_EventScript_SingleBattleMode:: @ 8276F23 +CableClub_EventScript_SingleBattleMode:: setvar VAR_0x8004, USING_SINGLE_BATTLE goto CableClub_EventScript_TryEnterColosseum end -CableClub_EventScript_DoubleBattleMode:: @ 8276F2E +CableClub_EventScript_DoubleBattleMode:: special HasEnoughMonsForDoubleBattle compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS goto_if_ne CableClub_EventScript_NeedTwoMonsForDoubleBattle @@ -331,17 +331,17 @@ CableClub_EventScript_DoubleBattleMode:: @ 8276F2E goto CableClub_EventScript_TryEnterColosseum end -CableClub_EventScript_NeedTwoMonsForDoubleBattle:: @ 8276F47 +CableClub_EventScript_NeedTwoMonsForDoubleBattle:: msgbox CableClub_Text_NeedTwoMonsForDoubleBattle, MSGBOX_DEFAULT goto CableClub_EventScript_SelectBattleMode end -CableClub_EventScript_MultiBattleMode:: @ 8276F55 +CableClub_EventScript_MultiBattleMode:: setvar VAR_0x8004, USING_MULTI_BATTLE goto CableClub_EventScript_TryEnterColosseum end -CableClub_EventScript_TryEnterColosseum:: @ 8276F60 +CableClub_EventScript_TryEnterColosseum:: call Common_EventScript_SaveGame compare VAR_RESULT, 0 goto_if_eq CableClub_EventScript_AbortLink @@ -363,7 +363,7 @@ CableClub_EventScript_TryEnterColosseum:: @ 8276F60 goto_if_eq CableClub_EventScript_AbortLinkConnectionError end -CableClub_EventScript_EnterColosseum:: @ 8276FBD +CableClub_EventScript_EnterColosseum:: special HealPlayerParty special SavePlayerParty special LoadPlayerBag @@ -396,19 +396,19 @@ CableClub_EventScript_EnterColosseum:: @ 8276FBD end @ Unused -CableClub_EventScript_PlayerApproachLinkRoomRight:: @ 827702B +CableClub_EventScript_PlayerApproachLinkRoomRight:: applymovement OBJ_EVENT_ID_PLAYER, Movement_PlayerApproachLinkRoomRight waitmovement 0 return -CableClub_EventScript_WarpTo4PColosseum:: @ 8277036 +CableClub_EventScript_WarpTo4PColosseum:: special SetCableClubWarp warp MAP_BATTLE_COLOSSEUM_4P, 255, 5, 8 special DoCableClubWarp waitstate end -CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers:: @ 8277046 +CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers:: switch VAR_0x8004 case USING_SINGLE_BATTLE, CableClub_EventScript_AbortLinkWrongNumberForSingleBattle case USING_DOUBLE_BATTLE, CableClub_EventScript_AbortLinkWrongNumberForDoubleBattle @@ -416,31 +416,31 @@ CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers:: @ 8277046 goto CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants end -CableClub_EventScript_AbortLinkNeedFourPlayers:: @ 8277072 +CableClub_EventScript_AbortLinkNeedFourPlayers:: special CloseLink msgbox CableClub_Text_NeedFourPlayers, MSGBOX_DEFAULT goto CableClub_EventScript_ConfirmNumberAndRestart end -CableClub_EventScript_AbortLinkWrongNumberForDoubleBattle:: @ 8277083 +CableClub_EventScript_AbortLinkWrongNumberForDoubleBattle:: special CloseLink msgbox CableClub_Text_CantDoubleBattleWithXPlayers, MSGBOX_DEFAULT goto CableClub_EventScript_ConfirmNumberAndRestart end -CableClub_EventScript_AbortLinkWrongNumberForSingleBattle:: @ 8277094 +CableClub_EventScript_AbortLinkWrongNumberForSingleBattle:: special CloseLink msgbox CableClub_Text_CantSingleBattleWithXPlayers, MSGBOX_DEFAULT goto CableClub_EventScript_ConfirmNumberAndRestart end -CableClub_EventScript_ConfirmNumberAndRestart:: @ 82770A5 +CableClub_EventScript_ConfirmNumberAndRestart:: special CloseLink @ Redundant msgbox CableClub_Text_PleaseConfirmNumberAndRestart, MSGBOX_DEFAULT release end -CableClub_EventScript_TradeCenter:: @ 82770B2 +CableClub_EventScript_TradeCenter:: copyvar VAR_0x8007, VAR_LAST_TALKED call CableClub_EventScript_CheckPartyTradeRequirements compare VAR_RESULT, 0 @@ -470,7 +470,7 @@ CableClub_EventScript_TradeCenter:: @ 82770B2 goto_if_eq CableClub_EventScript_AbortLinkOtherTrainerNotReady end -CableClub_EventScript_EnterTradeCenter:: @ 827713A +CableClub_EventScript_EnterTradeCenter:: setvar VAR_0x8004, USING_TRADE_CENTER copyvar VAR_CABLE_CLUB_STATE, VAR_0x8004 messageautoscroll CableClub_Text_PleaseEnter @@ -498,7 +498,7 @@ CableClub_EventScript_EnterTradeCenter:: @ 827713A waitstate end -CableClub_EventScript_CheckPartyTradeRequirements:: @ 8277199 +CableClub_EventScript_CheckPartyTradeRequirements:: specialvar VAR_RESULT, CalculatePlayerPartyCount compare VAR_RESULT, 2 goto_if_lt CableClub_EventScript_NeedTwoMonsToTrade @@ -508,17 +508,17 @@ CableClub_EventScript_CheckPartyTradeRequirements:: @ 8277199 setvar VAR_RESULT, 1 return -CableClub_EventScript_NeedTwoMonsToTrade:: @ 82771BF +CableClub_EventScript_NeedTwoMonsToTrade:: msgbox CableClub_Text_NeedTwoMonsToTrade, MSGBOX_DEFAULT setvar VAR_RESULT, 0 return -CableClub_EventScript_CantTradeEnigmaBerry:: @ 82771CD +CableClub_EventScript_CantTradeEnigmaBerry:: msgbox CableClub_Text_CantTradeEnigmaBerry, MSGBOX_DEFAULT setvar VAR_RESULT, 0 return -CableClub_EventScript_RecordCorner:: @ 82771DB +CableClub_EventScript_RecordCorner:: copyvar VAR_0x8007, VAR_LAST_TALKED call Common_EventScript_SaveGame compare VAR_RESULT, 0 @@ -545,7 +545,7 @@ CableClub_EventScript_RecordCorner:: @ 82771DB goto_if_eq CableClub_EventScript_AbortLinkConnectionError end -CableClub_EventScript_EnterRecordCorner:: @ 827724C +CableClub_EventScript_EnterRecordCorner:: setvar VAR_0x8004, USING_RECORD_CORNER copyvar VAR_CABLE_CLUB_STATE, VAR_0x8004 messageautoscroll CableClub_Text_PleaseEnter @@ -573,135 +573,135 @@ CableClub_EventScript_EnterRecordCorner:: @ 827724C waitstate end -CableClub_EventScript_AbortLinkPlayerNotReady:: @ 82772AB +CableClub_EventScript_AbortLinkPlayerNotReady:: special CloseLink msgbox CableClub_Text_NotSetUpForFarAwayRegion, MSGBOX_DEFAULT release end -CableClub_EventScript_AbortLinkOtherTrainerNotReady:: @ 82772B8 +CableClub_EventScript_AbortLinkOtherTrainerNotReady:: special CloseLink msgbox CableClub_Text_OtherTrainerNotReady, MSGBOX_DEFAULT release end -CableClub_EventScript_AbortLinkConnectionError:: @ 82772C5 +CableClub_EventScript_AbortLinkConnectionError:: special CloseLink msgbox Text_LinkErrorPleaseReset, MSGBOX_DEFAULT release end -CableClub_EventScript_AbortLinkSomeoneNotReady:: @ 82772D2 +CableClub_EventScript_AbortLinkSomeoneNotReady:: special CloseLink msgbox Text_SomeoneIsNotReadyToLink, MSGBOX_DEFAULT release end -CableClub_EventScript_AbortLinkDifferentSelections:: @ 82772DF +CableClub_EventScript_AbortLinkDifferentSelections:: special CloseLink msgbox Text_PlayersMadeDifferentSelections, MSGBOX_DEFAULT release end -CableClub_EventScript_AbortLink:: @ 82772EC +CableClub_EventScript_AbortLink:: special CloseLink msgbox CableClub_Text_PleaseVisitAgain, MSGBOX_DEFAULT release end -MossdeepCity_GameCorner_1F_EventScript_AbortMinigame:: @ 82772F9 +MossdeepCity_GameCorner_1F_EventScript_AbortMinigame:: special CloseLink msgbox MossdeepCity_GameCorner_1F_Text_ComeAgain, MSGBOX_DEFAULT release end @ Unused -CableClub_EventScript_CableClubWarp:: @ 8277306 +CableClub_EventScript_CableClubWarp:: special SetCableClubWarp special DoCableClubWarp waitstate end -CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants:: @ 827730E +CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants:: special CloseLink msgbox CableClub_Text_IncorrectNumberOfParticipants, MSGBOX_DEFAULT release end -CableClub_EventScript_AbortLinkPlayerHasBadEgg:: @ 827731B +CableClub_EventScript_AbortLinkPlayerHasBadEgg:: special CloseLink msgbox CableClub_Text_YouHaveAMonThatCantBeTaken, MSGBOX_DEFAULT release end -CableClub_EventScript_AbortLinkForeignGame:: @ 8277328 +CableClub_EventScript_AbortLinkForeignGame:: special CloseLink msgbox CableClub_Text_CantMixWithJapaneseGame, MSGBOX_DEFAULT release end -CableClub_EventScript_WirelessClubAdjustements:: @ 8277335 +CableClub_EventScript_WirelessClubAdjustements:: msgbox gText_SorryWirelessClubAdjustments, MSGBOX_DEFAULT release end -CableClub_EventScript_NotReadyYet:: @ 827733F +CableClub_EventScript_NotReadyYet:: msgbox gText_UndergoingAdjustments, MSGBOX_DEFAULT releaseall end -Movement_AttendantFaceDown: @ 8277349 +Movement_AttendantFaceDown: face_down step_end @ Unused -Movement_AttendantFaceRight: @ 827734B +Movement_AttendantFaceRight: face_right step_end -Movement_AttendantFaceLeft: @ 827734D +Movement_AttendantFaceLeft: face_left step_end -Movement_PlayerExitLinkRoom: @ 827734F +Movement_PlayerExitLinkRoom: walk_down walk_down step_end @ Functionally unused -Movement_PlayerApproachLinkRoomRight: @ 8277352 +Movement_PlayerApproachLinkRoomRight: walk_right walk_up walk_up step_end -Movement_PlayerApproachLinkRoomLeft: @ 8277356 +Movement_PlayerApproachLinkRoomLeft: walk_left walk_up walk_up step_end -Movement_PlayerEnterLinkRoom: @ 827735A +Movement_PlayerEnterLinkRoom: walk_up step_end @ Unused -Movement_PlayerFaceAttendantLeft: @ 827735C +Movement_PlayerFaceAttendantLeft: face_left step_end -Movement_PlayerFaceAttendantRight: @ 827735E +Movement_PlayerFaceAttendantRight: face_right step_end -Movement_PlayerEnterMinigameRoom: @ 8277360 +Movement_PlayerEnterMinigameRoom: walk_left walk_up walk_up walk_up step_end -EventScript_CableBoxResults:: @ 8277365 +EventScript_CableBoxResults:: lockall setvar VAR_0x8004, 0 special ShowLinkBattleRecords @@ -710,19 +710,19 @@ EventScript_CableBoxResults:: @ 8277365 releaseall end -EventScript_BattleColosseum_2P_PlayerSpot0:: @ 8277374 +EventScript_BattleColosseum_2P_PlayerSpot0:: setvar VAR_0x8005, 0 special ColosseumPlayerSpotTriggered waitstate end -EventScript_BattleColosseum_2P_PlayerSpot1:: @ 827737E +EventScript_BattleColosseum_2P_PlayerSpot1:: setvar VAR_0x8005, 1 special ColosseumPlayerSpotTriggered waitstate end -EventScript_BattleColosseum_4P_PlayerSpot0:: @ 8277388 +EventScript_BattleColosseum_4P_PlayerSpot0:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate @@ -733,7 +733,7 @@ EventScript_BattleColosseum_4P_PlayerSpot0:: @ 8277388 waitstate end -EventScript_BattleColosseum_4P_PlayerSpot1:: @ 82773A3 +EventScript_BattleColosseum_4P_PlayerSpot1:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate @@ -744,7 +744,7 @@ EventScript_BattleColosseum_4P_PlayerSpot1:: @ 82773A3 waitstate end -EventScript_BattleColosseum_4P_PlayerSpot2:: @ 82773BE +EventScript_BattleColosseum_4P_PlayerSpot2:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate @@ -755,7 +755,7 @@ EventScript_BattleColosseum_4P_PlayerSpot2:: @ 82773BE waitstate end -EventScript_BattleColosseum_4P_PlayerSpot3:: @ 82773D9 +EventScript_BattleColosseum_4P_PlayerSpot3:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate @@ -766,37 +766,37 @@ EventScript_BattleColosseum_4P_PlayerSpot3:: @ 82773D9 waitstate end -EventScript_BattleColosseum_4P_CancelSpotTrigger:: @ 82773F4 +EventScript_BattleColosseum_4P_CancelSpotTrigger:: end -EventScript_TradeCenter_Chair0:: @ 82773F5 +EventScript_TradeCenter_Chair0:: setvar VAR_0x8005, 0 special PlayerEnteredTradeSeat waitstate end -EventScript_TradeCenter_Chair1:: @ 82773FF +EventScript_TradeCenter_Chair1:: setvar VAR_0x8005, 1 special PlayerEnteredTradeSeat waitstate end /* Never used */ -EventScript_TradeCenter_Chair2:: @ 8277409 +EventScript_TradeCenter_Chair2:: setvar VAR_0x8005, 2 special PlayerEnteredTradeSeat waitstate end /* Never used */ -EventScript_TradeCenter_Chair3:: @ 8277413 +EventScript_TradeCenter_Chair3:: setvar VAR_0x8005, 3 special PlayerEnteredTradeSeat waitstate end @ VAR_TEMP_1 for below scripts set by ReceiveGiftItem -EventScript_RecordCenter_Spot0:: @ 827741D +EventScript_RecordCenter_Spot0:: setvar VAR_0x8005, 0 special RecordMixingPlayerSpotTriggered waitstate @@ -804,7 +804,7 @@ EventScript_RecordCenter_Spot0:: @ 827741D goto_if_ne RecordCorner_EventScript_ReceivedGiftItem end -EventScript_RecordCenter_Spot1:: @ 8277432 +EventScript_RecordCenter_Spot1:: setvar VAR_0x8005, 1 special RecordMixingPlayerSpotTriggered waitstate @@ -812,7 +812,7 @@ EventScript_RecordCenter_Spot1:: @ 8277432 goto_if_ne RecordCorner_EventScript_ReceivedGiftItem end -EventScript_RecordCenter_Spot2:: @ 8277447 +EventScript_RecordCenter_Spot2:: setvar VAR_0x8005, 2 special RecordMixingPlayerSpotTriggered waitstate @@ -820,7 +820,7 @@ EventScript_RecordCenter_Spot2:: @ 8277447 goto_if_ne RecordCorner_EventScript_ReceivedGiftItem end -EventScript_RecordCenter_Spot3:: @ 827745C +EventScript_RecordCenter_Spot3:: setvar VAR_0x8005, 3 special RecordMixingPlayerSpotTriggered waitstate @@ -828,7 +828,7 @@ EventScript_RecordCenter_Spot3:: @ 827745C goto_if_ne RecordCorner_EventScript_ReceivedGiftItem end -RecordCorner_EventScript_ReceivedGiftItem:: @ 8277471 +RecordCorner_EventScript_ReceivedGiftItem:: bufferitemname 1, VAR_TEMP_1 message RecordCorner_Text_PlayerSentOverOneX waitmessage @@ -836,40 +836,40 @@ RecordCorner_EventScript_ReceivedGiftItem:: @ 8277471 releaseall end -CableClub_EventScript_ReadTrainerCard:: @ 827747E +CableClub_EventScript_ReadTrainerCard:: msgbox CableClub_Text_GotToLookAtTrainerCard, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK special Script_ShowLinkTrainerCard waitstate end -CableClub_EventScript_ReadTrainerCardColored:: @ 827748D +CableClub_EventScript_ReadTrainerCardColored:: msgbox CableClub_Text_GotToLookAtColoredTrainerCard, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK special Script_ShowLinkTrainerCard waitstate end -CableClub_EventScript_TooBusyToNotice:: @ 827749C +CableClub_EventScript_TooBusyToNotice:: msgbox CableClub_Text_TooBusyToNotice, MSGBOX_DEFAULT closemessage end -BattleColosseum_2P_EventScript_Attendant:: @ 82774A6 +BattleColosseum_2P_EventScript_Attendant:: special Script_FacePlayer msgbox BattleColosseum_2P_Text_TakePlaceStartBattle, MSGBOX_DEFAULT special Script_ClearHeldMovement closemessage end -TradeCenter_EventScript_Attendant:: @ 82774B6 +TradeCenter_EventScript_Attendant:: special Script_FacePlayer msgbox TradeCenter_Text_TakeSeatStartTrade, MSGBOX_DEFAULT special Script_ClearHeldMovement closemessage end -RecordCorner_EventScript_Attendant:: @ 82774C6 +RecordCorner_EventScript_Attendant:: compare VAR_TEMP_0, 0 goto_if_ne RecordCorner_EventScript_AlreadyMixed special Script_FacePlayer @@ -880,7 +880,7 @@ RecordCorner_EventScript_Attendant:: @ 82774C6 closemessage end -RecordCorner_EventScript_AlreadyMixed:: @ 82774E0 +RecordCorner_EventScript_AlreadyMixed:: special Script_FacePlayer message RecordCorner_Text_ThanksForComing waitmessage @@ -889,7 +889,7 @@ RecordCorner_EventScript_AlreadyMixed:: @ 82774E0 closemessage end -EventScript_ConfirmLeaveTradeRoom:: @ 82774EF +EventScript_ConfirmLeaveCableClubRoom:: msgbox Text_TerminateLinkConfirmation, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq EventScript_TerminateLink @@ -897,19 +897,19 @@ EventScript_ConfirmLeaveTradeRoom:: @ 82774EF releaseall end -EventScript_TerminateLink:: @ 8277509 +EventScript_TerminateLink:: messageautoscroll Text_TerminateLinkPleaseWait waitmessage special ExitLinkRoom end -EventScript_DoLinkRoomExit:: @ 8277513 +EventScript_DoLinkRoomExit:: special CleanupLinkRoomState special ReturnFromLinkRoom waitstate end -CableClub_EventScript_UnionRoomAttendant:: @ 827751B +CableClub_EventScript_UnionRoomAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FACILITY_UNION_ROOM @@ -926,8 +926,8 @@ CableClub_EventScript_UnionRoomAttendant:: @ 827751B goto CableClub_EventScript_UnionRoomSelect end -CableClub_EventScript_UnionRoomSelect:: @ 827755C - multichoice 17, 6, MULTI_YESNOINFO, 0 +CableClub_EventScript_UnionRoomSelect:: + multichoice 17, 6, MULTI_YESNOINFO, FALSE switch VAR_RESULT case 0, CableClub_EventScript_EnterUnionRoom case 1, CableClub_EventScript_AbortLink @@ -935,13 +935,13 @@ CableClub_EventScript_UnionRoomSelect:: @ 827755C case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_UnionRoomInfo:: @ 8277593 +CableClub_EventScript_UnionRoomInfo:: message CableClub_Text_UnionRoomInfo waitmessage goto CableClub_EventScript_UnionRoomSelect end -CableClub_EventScript_EnterUnionRoom:: @ 827759F +CableClub_EventScript_EnterUnionRoom:: call CableClub_EventScript_CheckPartyUnionRoomRequirements compare VAR_RESULT, 0 goto_if_eq CableClub_EventScript_AbortLink @@ -976,7 +976,7 @@ CableClub_EventScript_EnterUnionRoom:: @ 827759F waitstate end -CableClub_EventScript_CheckPartyUnionRoomRequirements:: @ 8277626 +CableClub_EventScript_CheckPartyUnionRoomRequirements:: specialvar VAR_RESULT, CountPartyNonEggMons compare VAR_RESULT, 2 goto_if_lt CableClub_EventScript_NeedTwoMonsForUnionRoom @@ -986,22 +986,22 @@ CableClub_EventScript_CheckPartyUnionRoomRequirements:: @ 8277626 setvar VAR_RESULT, 1 return -CableClub_EventScript_NeedTwoMonsForUnionRoom:: @ 827764C +CableClub_EventScript_NeedTwoMonsForUnionRoom:: msgbox CableClub_Text_NeedTwoMonsForUnionRoom, MSGBOX_DEFAULT goto EventScript_CableClub_SetVarResult0 end -CableClub_EventScript_NoEnigmaBerryInUnionRoom:: @ 827765A +CableClub_EventScript_NoEnigmaBerryInUnionRoom:: msgbox CableClub_Text_NoEnigmaBerryInUnionRoom, MSGBOX_DEFAULT goto EventScript_CableClub_SetVarResult0 end -CableClub_EventScript_UnionRoomAdapterNotConnected:: @ 8277668 +CableClub_EventScript_UnionRoomAdapterNotConnected:: msgbox CableClub_Text_UnionRoomAdapterNotConnected, MSGBOX_DEFAULT release return -CableClub_EventScript_WirelessClubAttendant:: @ 8277672 +CableClub_EventScript_WirelessClubAttendant:: lock faceplayer goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements @@ -1012,12 +1012,12 @@ CableClub_EventScript_WirelessClubAttendant:: @ 8277672 release return -CableClub_EventScript_DontAskAboutLinking:: @ 827769A +CableClub_EventScript_DontAskAboutLinking:: msgbox CableClub_Text_HopeYouEnjoyWirelessSystem, MSGBOX_DEFAULT release return -CableClub_EventScript_DirectCornerAttendant:: @ 82776A4 +CableClub_EventScript_DirectCornerAttendant:: lock faceplayer setvar VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER @ Set preemptively for multi battles, ignored otherwise @@ -1034,12 +1034,12 @@ CableClub_EventScript_DirectCornerAttendant:: @ 82776A4 goto CableClub_EventScript_DirectCornerSelectService end -CableClub_EventScript_DirectCornerSelectService:: @ 82776E3 +CableClub_EventScript_DirectCornerSelectService:: checkitem ITEM_POWDER_JAR, 1 compare VAR_RESULT, FALSE goto_if_eq CableClub_EventScript_DirectCornerNoBerry goto_if_set FLAG_VISITED_MAUVILLE_CITY, CableClub_EventScript_DirectCornerSelectAllServices - multichoice 0, 0, MULTI_WIRELESS_NO_RECORD, 0 + multichoice 0, 0, MULTI_WIRELESS_NO_RECORD, FALSE switch VAR_RESULT case 0, CableClub_EventScript_WirelessTrade case 1, CableClub_EventScript_WirelessBattleSelect @@ -1048,8 +1048,8 @@ CableClub_EventScript_DirectCornerSelectService:: @ 82776E3 case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_DirectCornerSelectAllServices:: @ 827773E - multichoice 0, 0, MULTI_WIRELESS_ALL_SERVICES, 0 +CableClub_EventScript_DirectCornerSelectAllServices:: + multichoice 0, 0, MULTI_WIRELESS_ALL_SERVICES, FALSE switch VAR_RESULT case 0, CableClub_EventScript_WirelessTrade case 1, CableClub_EventScript_WirelessBattleSelect @@ -1059,9 +1059,9 @@ CableClub_EventScript_DirectCornerSelectAllServices:: @ 827773E case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_DirectCornerNoBerry:: @ 827778B +CableClub_EventScript_DirectCornerNoBerry:: goto_if_set FLAG_VISITED_MAUVILLE_CITY, CableClub_EventScript_DirectCornerHasRecordMix - multichoice 0, 0, MULTI_WIRELESS_NO_RECORD_BERRY, 0 + multichoice 0, 0, MULTI_WIRELESS_NO_RECORD_BERRY, FALSE switch VAR_RESULT case 0, CableClub_EventScript_WirelessTrade case 1, CableClub_EventScript_WirelessBattleSelect @@ -1069,8 +1069,8 @@ CableClub_EventScript_DirectCornerNoBerry:: @ 827778B case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_DirectCornerHasRecordMix:: @ 82777CB - multichoice 0, 0, MULTI_WIRELESS_NO_BERRY, 0 +CableClub_EventScript_DirectCornerHasRecordMix:: + multichoice 0, 0, MULTI_WIRELESS_NO_BERRY, FALSE switch VAR_RESULT case 0, CableClub_EventScript_WirelessTrade case 1, CableClub_EventScript_WirelessBattleSelect @@ -1079,7 +1079,7 @@ CableClub_EventScript_DirectCornerHasRecordMix:: @ 82777CB case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_WirelessTrade:: @ 827780D +CableClub_EventScript_WirelessTrade:: msgbox CableClub_Text_TradePokemon, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq CableClub_EventScript_AbortLink @@ -1090,10 +1090,10 @@ CableClub_EventScript_WirelessTrade:: @ 827780D goto CableClub_EventScript_SaveAndChooseLinkLeader end -CableClub_EventScript_WirelessBattleSelect:: @ 827783B +CableClub_EventScript_WirelessBattleSelect:: message CableClub_Text_PlayWhichBattleMode waitmessage - multichoice 0, 0, MULTI_BATTLE_MODE, 0 + multichoice 0, 0, MULTI_BATTLE_MODE, FALSE switch VAR_RESULT case 0, CableClub_EventScript_WirelessSingleBattle case 1, CableClub_EventScript_WirelessDoubleBattle @@ -1103,12 +1103,12 @@ CableClub_EventScript_WirelessBattleSelect:: @ 827783B case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_WirelessSingleBattle:: @ 827788E +CableClub_EventScript_WirelessSingleBattle:: setvar VAR_0x8004, LINK_GROUP_SINGLE_BATTLE goto CableClub_EventScript_SaveAndChooseLinkLeader end -CableClub_EventScript_WirelessDoubleBattle:: @ 8277899 +CableClub_EventScript_WirelessDoubleBattle:: special HasEnoughMonsForDoubleBattle compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS goto_if_ne CableClub_EventScript_TwoMonsNeededForWirelessDoubleBattle @@ -1116,22 +1116,22 @@ CableClub_EventScript_WirelessDoubleBattle:: @ 8277899 goto CableClub_EventScript_SaveAndChooseLinkLeader end -CableClub_EventScript_TwoMonsNeededForWirelessDoubleBattle:: @ 82778B2 +CableClub_EventScript_TwoMonsNeededForWirelessDoubleBattle:: msgbox CableClub_Text_NeedTwoMonsForDoubleBattle, MSGBOX_DEFAULT goto CableClub_EventScript_WirelessBattleSelect end -CableClub_EventScript_WirelessMultiBattle:: @ 82778C0 +CableClub_EventScript_WirelessMultiBattle:: setvar VAR_0x8004, LINK_GROUP_MULTI_BATTLE goto CableClub_EventScript_SaveAndChooseLinkLeader end -CableClub_EventScript_WirelessBattleInfo:: @ 82778CB +CableClub_EventScript_WirelessBattleInfo:: msgbox CableClub_Text_ExplainBattleModes, MSGBOX_DEFAULT goto CableClub_EventScript_WirelessBattleSelect end -CableClub_EventScript_WirelessRecordMix:: @ 82778D9 +CableClub_EventScript_WirelessRecordMix:: msgbox CableClub_Text_AccessRecordCorner, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq CableClub_EventScript_AbortLink @@ -1139,7 +1139,7 @@ CableClub_EventScript_WirelessRecordMix:: @ 82778D9 goto CableClub_EventScript_SaveAndChooseLinkLeader end -CableClub_EventScript_WirelessBerryCrush:: @ 82778F7 +CableClub_EventScript_WirelessBerryCrush:: msgbox CableClub_Text_UseBerryCrush, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq CableClub_EventScript_AbortLink @@ -1150,12 +1150,12 @@ CableClub_EventScript_WirelessBerryCrush:: @ 82778F7 goto CableClub_EventScript_SaveAndChooseLinkLeader end -CableClub_EventScript_NeedBerryForBerryCrush:: @ 8277923 +CableClub_EventScript_NeedBerryForBerryCrush:: msgbox CableClub_Text_NeedBerryForBerryCrush, MSGBOX_DEFAULT goto CableClub_EventScript_DirectCornerSelectService end -CableClub_EventScript_SaveAndChooseLinkLeader:: @ 8277931 +CableClub_EventScript_SaveAndChooseLinkLeader:: call Common_EventScript_SaveGame compare VAR_RESULT, 0 goto_if_eq CableClub_EventScript_AbortLink @@ -1168,10 +1168,10 @@ CableClub_EventScript_SaveAndChooseLinkLeader:: @ 8277931 case LINK_GROUP_RECORD_CORNER, CableClub_EventScript_ChooseLinkLeader end -CableClub_EventScript_ChooseLinkLeaderFrom2:: @ 8277989 +CableClub_EventScript_ChooseLinkLeaderFrom2:: message CableClub_Text_ChooseGroupLeaderOfTwo waitmessage - multichoice 16, 6, MULTI_LINK_LEADER, 0 + multichoice 16, 6, MULTI_LINK_LEADER, FALSE switch VAR_RESULT case 0, CableClub_EventScript_TryJoinGroup2Players case 1, CableClub_EventScript_TryLeadGroup2Players @@ -1179,7 +1179,7 @@ CableClub_EventScript_ChooseLinkLeaderFrom2:: @ 8277989 case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_TryLeadGroup2Players:: @ 82779C6 +CableClub_EventScript_TryLeadGroup2Players:: call CableClub_EventScript_TryBecomeLinkLeader compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom @@ -1190,7 +1190,7 @@ CableClub_EventScript_TryLeadGroup2Players:: @ 82779C6 release return -CableClub_EventScript_TryJoinGroup2Players:: @ 82779EE +CableClub_EventScript_TryJoinGroup2Players:: call CableClub_EventScript_TryJoinLinkGroup compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom @@ -1201,10 +1201,10 @@ CableClub_EventScript_TryJoinGroup2Players:: @ 82779EE release return -CableClub_EventScript_ChooseLinkLeaderFrom4:: @ 8277A16 +CableClub_EventScript_ChooseLinkLeaderFrom4:: message CableClub_Text_ChooseGroupLeaderOfFour waitmessage - multichoice 16, 6, MULTI_LINK_LEADER, 0 + multichoice 16, 6, MULTI_LINK_LEADER, FALSE switch VAR_RESULT case 0, CableClub_EventScript_TryJoinGroup4Players case 1, CableClub_EventScript_TryLeadGroup4Players @@ -1212,7 +1212,7 @@ CableClub_EventScript_ChooseLinkLeaderFrom4:: @ 8277A16 case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_TryLeadGroup4Players:: @ 8277A53 +CableClub_EventScript_TryLeadGroup4Players:: call CableClub_EventScript_TryBecomeLinkLeader compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom @@ -1223,7 +1223,7 @@ CableClub_EventScript_TryLeadGroup4Players:: @ 8277A53 release return -CableClub_EventScript_TryJoinGroup4Players:: @ 8277A7B +CableClub_EventScript_TryJoinGroup4Players:: call CableClub_EventScript_TryJoinLinkGroup compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom @@ -1234,10 +1234,10 @@ CableClub_EventScript_TryJoinGroup4Players:: @ 8277A7B release return -CableClub_EventScript_ChooseLinkLeader:: @ 8277AA3 +CableClub_EventScript_ChooseLinkLeader:: message CableClub_Text_ChooseGroupLeader waitmessage - multichoice 16, 6, MULTI_LINK_LEADER, 0 + multichoice 16, 6, MULTI_LINK_LEADER, FALSE switch VAR_RESULT case 0, CableClub_EventScript_TryJoinGroupXPlayers case 1, CableClub_EventScript_TryLeadGroupXPlayers @@ -1245,7 +1245,7 @@ CableClub_EventScript_ChooseLinkLeader:: @ 8277AA3 case MULTI_B_PRESSED, CableClub_EventScript_AbortLink end -CableClub_EventScript_TryLeadGroupXPlayers:: @ 8277AE0 +CableClub_EventScript_TryLeadGroupXPlayers:: call CableClub_EventScript_TryBecomeLinkLeader compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom @@ -1256,7 +1256,7 @@ CableClub_EventScript_TryLeadGroupXPlayers:: @ 8277AE0 release return -CableClub_EventScript_TryJoinGroupXPlayers:: @ 8277B08 +CableClub_EventScript_TryJoinGroupXPlayers:: call CableClub_EventScript_TryJoinLinkGroup compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom @@ -1267,17 +1267,17 @@ CableClub_EventScript_TryJoinGroupXPlayers:: @ 8277B08 release return -CableClub_EventScript_TryBecomeLinkLeader:: @ 8277B30 +CableClub_EventScript_TryBecomeLinkLeader:: special TryBecomeLinkLeader waitstate return -CableClub_EventScript_TryJoinLinkGroup:: @ 8277B35 +CableClub_EventScript_TryJoinLinkGroup:: special TryJoinLinkGroup waitstate return -CableClub_EventScript_EnterWirelessLinkRoom:: @ 8277B3A +CableClub_EventScript_EnterWirelessLinkRoom:: messageautoscroll CableClub_Text_DirectYouToYourRoom waitmessage delay 60 @@ -1303,7 +1303,7 @@ CableClub_EventScript_EnterWirelessLinkRoom:: @ 8277B3A waitstate end -EventScript_WirelessBoxResults:: @ 8277B8A +EventScript_WirelessBoxResults:: lockall goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_NotReadyYet specialvar VAR_RESULT, IsWirelessAdapterConnected @@ -1316,51 +1316,51 @@ EventScript_WirelessBoxResults:: @ 8277B8A releaseall end -CableClub_EventScript_AdapterNotConnected:: @ 8277BB4 +CableClub_EventScript_AdapterNotConnected:: msgbox CableClub_Text_AdapterNotConnected, MSGBOX_DEFAULT releaseall end -CableClub_EventScript_OpenUnionRoomBarrier:: @ 8277BBE +CableClub_EventScript_OpenUnionRoomBarrier:: setmetatile 5, 2, METATILE_PokemonCenter_Floor_ShadowTop_Alt, 0 setmetatile 5, 3, METATILE_PokemonCenter_Floor_Plain_Alt, 0 return -CableClub_EventScript_CloseUnionRoomBarrier:: @ 8277BD1 +CableClub_EventScript_CloseUnionRoomBarrier:: setmetatile 5, 2, METATILE_PokemonCenter_Floor_ShadowTop, 1 setmetatile 5, 3, METATILE_PokemonCenter_CounterBarrier, 1 return -CableClub_EventScript_OpenDirectCornerBarrier:: @ 8277BE4 +CableClub_EventScript_OpenDirectCornerBarrier:: setmetatile 9, 2, METATILE_PokemonCenter_Floor_ShadowTop_Alt, 0 setmetatile 9, 3, METATILE_PokemonCenter_Floor_Plain_Alt, 0 return -CableClub_EventScript_CloseDirectCornerBarrier:: @ 8277BF7 +CableClub_EventScript_CloseDirectCornerBarrier:: setmetatile 9, 2, METATILE_PokemonCenter_Floor_ShadowTop, 1 setmetatile 9, 3, METATILE_PokemonCenter_CounterBarrier, 1 return -EventScript_OpenMossdeepGameCornerBarrier:: @ 8277C0A +EventScript_OpenMossdeepGameCornerBarrier:: setmetatile 5, 2, METATILE_MossdeepGameCorner_CounterOpen_Top, 0 setmetatile 5, 3, METATILE_MossdeepGameCorner_CounterOpen_Bottom, 0 return -EventScript_CloseMossdeepGameCornerBarrier:: @ 8277C1D +EventScript_CloseMossdeepGameCornerBarrier:: setmetatile 5, 2, METATILE_MossdeepGameCorner_CounterClosed_Top, 1 setmetatile 5, 3, METATILE_MossdeepGameCorner_CounterClosed_Bottom, 1 return -CableClub_OnResume: @ 8277C30 +CableClub_OnResume: special InitUnionRoom end -MossdeepCity_GameCorner_1F_EventScript_InfoMan2:: @ 8277C34 +MossdeepCity_GameCorner_1F_EventScript_InfoMan2:: lock faceplayer message MossdeepCity_GameCorner_1F_Text_DescribeWhichGame waitmessage - multichoice 0, 0, MULTI_WIRELESS_MINIGAME, 0 + multichoice 0, 0, MULTI_WIRELESS_MINIGAME, FALSE switch VAR_RESULT case 0, MossdeepCity_GameCorner_1F_EventScript_PokemonJumpInfo case 1, MossdeepCity_GameCorner_1F_EventScript_DodrioBerryPickingInfo @@ -1368,22 +1368,22 @@ MossdeepCity_GameCorner_1F_EventScript_InfoMan2:: @ 8277C34 case MULTI_B_PRESSED, MossdeepCity_GameCorner_1F_EventScript_MinigameInfoExit end -MossdeepCity_GameCorner_1F_EventScript_PokemonJumpInfo:: @ 8277C73 +MossdeepCity_GameCorner_1F_EventScript_PokemonJumpInfo:: msgbox MossdeepCity_GameCorner_1F_Text_PokemonJumpInfo, MSGBOX_DEFAULT release end -MossdeepCity_GameCorner_1F_EventScript_DodrioBerryPickingInfo:: @ 8277C7D +MossdeepCity_GameCorner_1F_EventScript_DodrioBerryPickingInfo:: msgbox MossdeepCity_GameCorner_1F_Text_DodrioBerryPickingInfo, MSGBOX_DEFAULT release end -MossdeepCity_GameCorner_1F_EventScript_MinigameInfoExit:: @ 8277C87 +MossdeepCity_GameCorner_1F_EventScript_MinigameInfoExit:: msgbox MossdeepCity_GameCorner_1F_Text_TalkToOldManToPlay, MSGBOX_DEFAULT release end -MossdeepCity_GameCorner_1F_EventScript_OldMan2:: @ 8277C91 +MossdeepCity_GameCorner_1F_EventScript_OldMan2:: lock faceplayer message MossdeepCity_GameCorner_1F_Text_WelcomeCanYouWait @@ -1394,7 +1394,7 @@ MossdeepCity_GameCorner_1F_EventScript_OldMan2:: @ 8277C91 delay 60 message MossdeepCity_GameCorner_1F_Text_PlayWhichGame waitmessage - multichoice 0, 0, MULTI_WIRELESS_MINIGAME, 0 + multichoice 0, 0, MULTI_WIRELESS_MINIGAME, FALSE switch VAR_RESULT case 0, MossdeepCity_GameCorner_1F_EventScript_PlayPokemonJump case 1, MossdeepCity_GameCorner_1F_EventScript_PlayDodrioBerryPicking @@ -1402,7 +1402,7 @@ MossdeepCity_GameCorner_1F_EventScript_OldMan2:: @ 8277C91 case MULTI_B_PRESSED, MossdeepCity_GameCorner_1F_EventScript_AbortMinigame end -MossdeepCity_GameCorner_1F_EventScript_PlayPokemonJump:: @ 8277CE9 +MossdeepCity_GameCorner_1F_EventScript_PlayPokemonJump:: setvar VAR_0x8005, 0 special IsPokemonJumpSpeciesInParty compare VAR_RESULT, FALSE @@ -1421,7 +1421,7 @@ MossdeepCity_GameCorner_1F_EventScript_PlayPokemonJump:: @ 8277CE9 goto MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader end -MossdeepCity_GameCorner_1F_EventScript_PlayDodrioBerryPicking:: @ 8277D35 +MossdeepCity_GameCorner_1F_EventScript_PlayDodrioBerryPicking:: setvar VAR_0x8005, 1 special IsDodrioInParty compare VAR_RESULT, FALSE @@ -1440,10 +1440,10 @@ MossdeepCity_GameCorner_1F_EventScript_PlayDodrioBerryPicking:: @ 8277D35 goto MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader end -MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader:: @ 8277D81 +MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader:: message CableClub_Text_ChooseGroupLeader waitmessage - multichoice 16, 6, MULTI_LINK_LEADER, 0 + multichoice 16, 6, MULTI_LINK_LEADER, FALSE switch VAR_RESULT case 0, MossdeepCity_GameCorner_1F_EventScript_TryJoinLinkGroup case 1, MossdeepCity_GameCorner_1F_EventScript_TryBecomeLinkLeader @@ -1451,7 +1451,7 @@ MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader:: @ 8277D81 case MULTI_B_PRESSED, MossdeepCity_GameCorner_1F_EventScript_AbortMinigame end -MossdeepCity_GameCorner_1F_EventScript_TryBecomeLinkLeader:: @ 8277DBE +MossdeepCity_GameCorner_1F_EventScript_TryBecomeLinkLeader:: call CableClub_EventScript_TryBecomeLinkLeader compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom @@ -1462,7 +1462,7 @@ MossdeepCity_GameCorner_1F_EventScript_TryBecomeLinkLeader:: @ 8277DBE release return -MossdeepCity_GameCorner_1F_EventScript_TryJoinLinkGroup:: @ 8277DE6 +MossdeepCity_GameCorner_1F_EventScript_TryJoinLinkGroup:: call CableClub_EventScript_TryJoinLinkGroup compare VAR_RESULT, LINKUP_SUCCESS goto_if_eq MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom @@ -1473,7 +1473,7 @@ MossdeepCity_GameCorner_1F_EventScript_TryJoinLinkGroup:: @ 8277DE6 release return -MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom:: @ 8277E0E +MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom:: messageautoscroll MossdeepCity_GameCorner_1F_Text_AllGoodToGo waitmessage delay 60 @@ -1493,13 +1493,13 @@ MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom:: @ 8277E0E waitstate end -MossdeepCity_GameCorner_1F_EventScript_AdapterNotConnected:: @ 8277E48 +MossdeepCity_GameCorner_1F_EventScript_AdapterNotConnected:: delay 60 msgbox MossdeepCity_GameCorner_1F_Text_AdapterNotConnected, MSGBOX_DEFAULT release end -MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon:: @ 8277E55 +MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon:: msgbox MossdeepCity_GameCorner_1F_Text_ExplainRequiredMon, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq MossdeepCity_GameCorner_1F_EventScript_AbortMinigame @@ -1510,22 +1510,22 @@ MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon:: @ 8277E55 goto MossdeepCity_GameCorner_1F_EventScript_AbortMinigame end -MossdeepCity_GameCorner_1F_EventScript_ExplainPokemonJumpRequirements:: @ 8277E84 +MossdeepCity_GameCorner_1F_EventScript_ExplainPokemonJumpRequirements:: msgbox MossdeepCity_GameCorner_1F_Text_ShortJumpingPokemonAllowed, MSGBOX_DEFAULT return -MossdeepCity_GameCorner_1F_EventScript_ExplainDodrioBerryPickingRequirements:: @ 8277E8D +MossdeepCity_GameCorner_1F_EventScript_ExplainDodrioBerryPickingRequirements:: msgbox MossdeepCity_GameCorner_1F_Text_OnlyDodrioAllowed, MSGBOX_DEFAULT return -MossdeepCity_GameCorner_1F_EventScript_PokemonJumpRecords:: @ 8277E96 +MossdeepCity_GameCorner_1F_EventScript_PokemonJumpRecords:: lockall special ShowPokemonJumpRecords waitstate releaseall end -MossdeepCity_GameCorner_1F_EventScript_DodrioBerryPickingRecords:: @ 8277E9D +MossdeepCity_GameCorner_1F_EventScript_DodrioBerryPickingRecords:: lockall special ShowDodrioBerryPickingRecords waitstate diff --git a/data/scripts/cave_hole.inc b/data/scripts/cave_hole.inc index 1cc3340049..d7acf29d96 100644 --- a/data/scripts/cave_hole.inc +++ b/data/scripts/cave_hole.inc @@ -1,12 +1,12 @@ -CaveHole_CheckFallDownHole: @ 82A8327 +CaveHole_CheckFallDownHole: map_script_2 VAR_ICE_STEP_COUNT, 0, EventScript_FallDownHole .2byte 0 -CaveHole_FixCrackedGround: @ 82A8331 +CaveHole_FixCrackedGround: copyvar VAR_ICE_STEP_COUNT, 1 end -EventScript_FallDownHole:: @ 82A8337 +EventScript_FallDownHole:: lockall delay 20 applymovement OBJ_EVENT_ID_PLAYER, Movement_SetInvisible @@ -17,7 +17,7 @@ EventScript_FallDownHole:: @ 82A8337 waitstate end -EventScript_FallDownHoleMtPyre:: @ 82A8350 +EventScript_FallDownHoleMtPyre:: lockall delay 20 applymovement OBJ_EVENT_ID_PLAYER, Movement_SetInvisible @@ -28,6 +28,6 @@ EventScript_FallDownHoleMtPyre:: @ 82A8350 waitstate end -Movement_SetInvisible: @ 82A8369 +Movement_SetInvisible: set_invisible step_end diff --git a/data/scripts/cave_of_origin.inc b/data/scripts/cave_of_origin.inc index 52a1da84f2..abffd07ff1 100644 --- a/data/scripts/cave_of_origin.inc +++ b/data/scripts/cave_of_origin.inc @@ -1,5 +1,5 @@ @ All unused / leftover scripts from RS -CaveOfOrigin_EventScript_LegendaryCry:: @ 8272274 +CaveOfOrigin_EventScript_LegendaryCry:: lockall waitse playmoncry SPECIES_KYOGRE, 2 @ SPECIES_GROUDON in Ruby @@ -8,25 +8,25 @@ CaveOfOrigin_EventScript_LegendaryCry:: @ 8272274 releaseall end -CaveOfOrigin_EventScript_Shake1:: @ 8272283 +CaveOfOrigin_EventScript_Shake1:: lockall setvar VAR_TEMP_1, 1 goto CaveOfOrigin_EventScript_Shake end -CaveOfOrigin_EventScript_Shake2:: @ 827228F +CaveOfOrigin_EventScript_Shake2:: lockall setvar VAR_TEMP_2, 1 goto CaveOfOrigin_EventScript_Shake end -CaveOfOrigin_EventScript_Shake3:: @ 827229B +CaveOfOrigin_EventScript_Shake3:: lockall setvar VAR_TEMP_3, 1 goto CaveOfOrigin_EventScript_Shake end -CaveOfOrigin_EventScript_Shake:: @ 82722A7 +CaveOfOrigin_EventScript_Shake:: setvar VAR_0x8004, 1 @ vertical pan setvar VAR_0x8005, 1 @ horizontal pan setvar VAR_0x8006, 8 @ num shakes @@ -36,7 +36,7 @@ CaveOfOrigin_EventScript_Shake:: @ 82722A7 releaseall end -CaveOfOrigin_EventScript_SetTempVars:: @ 82722C1 +CaveOfOrigin_EventScript_DisableTriggers:: setvar VAR_TEMP_1, 1 setvar VAR_TEMP_2, 1 setvar VAR_TEMP_3, 1 diff --git a/data/scripts/check_furniture.inc b/data/scripts/check_furniture.inc index 0a952f3c35..920e882879 100644 --- a/data/scripts/check_furniture.inc +++ b/data/scripts/check_furniture.inc @@ -1,27 +1,27 @@ -EventScript_PictureBookShelf:: @ 82725CE +EventScript_PictureBookShelf:: msgbox Text_PictureBookShelf, MSGBOX_SIGN end -EventScript_BookShelf:: @ 82725D7 +EventScript_BookShelf:: msgbox Text_BookShelf, MSGBOX_SIGN end -EventScript_PokemonCenterBookShelf:: @ 82725E0 +EventScript_PokemonCenterBookShelf:: msgbox Text_PokemonCenterBookShelf, MSGBOX_SIGN end -EventScript_Vase:: @ 82725E9 +EventScript_Vase:: msgbox Text_Vase, MSGBOX_SIGN end -EventScript_EmptyTrashCan:: @ 82725F2 +EventScript_EmptyTrashCan:: msgbox Text_EmptyTrashCan, MSGBOX_SIGN end -EventScript_ShopShelf:: @ 82725FB +EventScript_ShopShelf:: msgbox Text_ShopShelf, MSGBOX_SIGN end -EventScript_Blueprint:: @ 8272604 +EventScript_Blueprint:: msgbox Text_Blueprint, MSGBOX_SIGN end diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc index 1ef723c375..0d9e023371 100644 --- a/data/scripts/contest_hall.inc +++ b/data/scripts/contest_hall.inc @@ -15,7 +15,7 @@ .set LOCALID_ARTIST, 15 @ Either ends or returns to EventScript_ContestReceptionist after submitting a contest entry -LilycoveCity_ContestLobby_EventScript_SpeakToContestReceptionist:: @ 8279CC5 +LilycoveCity_ContestLobby_EventScript_SpeakToContestReceptionist:: lock faceplayer compare VAR_CONTEST_PRIZE_PICKUP, 0 @@ -25,24 +25,24 @@ LilycoveCity_ContestLobby_EventScript_SpeakToContestReceptionist:: @ 8279CC5 goto LilycoveCity_ContestLobby_EventScript_AskEnterContest end -LilycoveCity_ContestLobby_EventScript_ReceptionWelcome:: @ 8279CEA +LilycoveCity_ContestLobby_EventScript_ReceptionWelcome:: msgbox LilycoveCity_ContestLobby_Text_ContestReception, MSGBOX_DEFAULT return -LilycoveCity_ContestLobby_EventScript_GivePokeblockCase:: @ 8279CF3 +LilycoveCity_ContestLobby_EventScript_GivePokeblockCase:: msgbox LilycoveCity_ContestLobby_Text_ReceptionDontHavePokeblockCase, MSGBOX_DEFAULT giveitem ITEM_POKEBLOCK_CASE setflag FLAG_RECEIVED_POKEBLOCK_CASE msgbox LilycoveCity_ContestLobby_Text_NowThatWeveClearedThatUp, MSGBOX_DEFAULT return -LilycoveCity_ContestLobby_EventScript_PickUpPrize:: @ 8279D13 +LilycoveCity_ContestLobby_EventScript_PickUpPrize:: msgbox LilycoveCity_ContestLobby_Text_PokemonWonWeHavePrize, MSGBOX_DEFAULT switch VAR_CONTEST_PRIZE_PICKUP case 4, LilycoveCity_ContestLobby_EventScript_GiveLuxuryBallAtCounter end -LilycoveCity_ContestLobby_EventScript_GiveLuxuryBallAtCounter:: @ 8279D2C +LilycoveCity_ContestLobby_EventScript_GiveLuxuryBallAtCounter:: giveitem ITEM_LUXURY_BALL compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_ContestLobby_EventScript_NoRoomForLuxuryBallAtCounter @@ -51,16 +51,16 @@ LilycoveCity_ContestLobby_EventScript_GiveLuxuryBallAtCounter:: @ 8279D2C release end -LilycoveCity_ContestLobby_EventScript_NoRoomForLuxuryBallAtCounter:: @ 8279D4B +LilycoveCity_ContestLobby_EventScript_NoRoomForLuxuryBallAtCounter:: call Common_EventScript_BagIsFull msgbox LilycoveCity_ContestLobby_Text_ComeBackForPrizeLater, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_AskEnterContest:: @ 8279D5A +LilycoveCity_ContestLobby_EventScript_AskEnterContest:: message LilycoveCity_ContestLobby_Text_EnterContest1 waitmessage - multichoice 0, 0, MULTI_ENTERINFO, 0 + multichoice 0, 0, MULTI_ENTERINFO, FALSE switch VAR_RESULT case 0, LilycoveCity_ContestLobby_EventScript_ChooseContestRank case 1, LilycoveCity_ContestLobby_EventScript_ContestInfo @@ -68,10 +68,10 @@ LilycoveCity_ContestLobby_EventScript_AskEnterContest:: @ 8279D5A case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_CancelEnterContest end -LilycoveCity_ContestLobby_EventScript_ContestInfo:: @ 8279D97 +LilycoveCity_ContestLobby_EventScript_ContestInfo:: message LilycoveCity_ContestLobby_Text_WhichTopic1 waitmessage - multichoice 0, 0, MULTI_CONTEST_INFO, 0 + multichoice 0, 0, MULTI_CONTEST_INFO, FALSE switch VAR_RESULT case 0, LilycoveCity_ContestLobby_EventScript_ExplainContests case 1, LilycoveCity_ContestLobby_EventScript_ExplainContestTypes @@ -80,27 +80,27 @@ LilycoveCity_ContestLobby_EventScript_ContestInfo:: @ 8279D97 case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_AskEnterContest end -LilycoveCity_ContestLobby_EventScript_ExplainContests:: @ 8279DDF +LilycoveCity_ContestLobby_EventScript_ExplainContests:: msgbox LilycoveCity_ContestLobby_Text_ExplainContests, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ContestInfo end -LilycoveCity_ContestLobby_EventScript_ExplainContestTypes:: @ 8279DED +LilycoveCity_ContestLobby_EventScript_ExplainContestTypes:: msgbox LilycoveCity_ContestLobby_Text_ExplainContestTypes, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ContestInfo end -LilycoveCity_ContestLobby_EventScript_ExplainContestRanks:: @ 8279DFB +LilycoveCity_ContestLobby_EventScript_ExplainContestRanks:: msgbox LilycoveCity_ContestLobby_Text_ExplainContestRanks, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ContestInfo end -LilycoveCity_ContestLobby_EventScript_CancelEnterContest:: @ 8279E09 +LilycoveCity_ContestLobby_EventScript_CancelEnterContest:: msgbox LilycoveCity_ContestLobby_Text_ParticipateAnotherTime, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_ChooseContestMon:: @ 8279E13 +LilycoveCity_ContestLobby_EventScript_ChooseContestMon:: msgbox LilycoveCity_ContestLobby_Text_EnterWhichPokemon1, MSGBOX_DEFAULT choosecontestmon compare VAR_0x8004, 255 @@ -118,10 +118,10 @@ LilycoveCity_ContestLobby_EventScript_ChooseContestMon:: @ 8279E13 goto_if_eq LilycoveCity_ContestLobby_EventScript_CantEnterFainted end -LilycoveCity_ContestLobby_EventScript_ChooseContestRank:: @ 8279E62 +LilycoveCity_ContestLobby_EventScript_ChooseContestRank:: message LilycoveCity_ContestLobby_Text_EnterWhichRank waitmessage - multichoice 0, 0, MULTI_CONTEST_RANK, 0 + multichoice 0, 0, MULTI_CONTEST_RANK, FALSE switch VAR_RESULT case 0, LilycoveCity_ContestLobby_EventScript_EnterNormalRank case 1, LilycoveCity_ContestLobby_EventScript_EnterSuperRank @@ -131,32 +131,32 @@ LilycoveCity_ContestLobby_EventScript_ChooseContestRank:: @ 8279E62 case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_CancelEnterContest end -LilycoveCity_ContestLobby_EventScript_EnterNormalRank:: @ 8279EB5 +LilycoveCity_ContestLobby_EventScript_EnterNormalRank:: setvar VAR_CONTEST_RANK, CONTEST_RANK_NORMAL goto LilycoveCity_ContestLobby_EventScript_ChooseContestType end -LilycoveCity_ContestLobby_EventScript_EnterSuperRank:: @ 8279EC0 +LilycoveCity_ContestLobby_EventScript_EnterSuperRank:: setvar VAR_CONTEST_RANK, CONTEST_RANK_SUPER goto LilycoveCity_ContestLobby_EventScript_ChooseContestType end -LilycoveCity_ContestLobby_EventScript_EnterHyperRank:: @ 8279ECB +LilycoveCity_ContestLobby_EventScript_EnterHyperRank:: setvar VAR_CONTEST_RANK, CONTEST_RANK_HYPER goto LilycoveCity_ContestLobby_EventScript_ChooseContestType end -LilycoveCity_ContestLobby_EventScript_EnterMasterRank:: @ 8279ED6 +LilycoveCity_ContestLobby_EventScript_EnterMasterRank:: setvar VAR_CONTEST_RANK, CONTEST_RANK_MASTER goto LilycoveCity_ContestLobby_EventScript_ChooseContestType end @ The multichoice selection IDs are equal to the CATEGORY values @ So rather than list the cases they just copy VAR_RESULT for a valid selection into VAR_CONTEST_CATEGORY -LilycoveCity_ContestLobby_EventScript_ChooseContestType:: @ 8279EE1 +LilycoveCity_ContestLobby_EventScript_ChooseContestType:: message LilycoveCity_ContestLobby_Text_EnterWhichContest1 waitmessage - multichoice 0, 0, MULTI_CONTEST_TYPE, 0 + multichoice 0, 0, MULTI_CONTEST_TYPE, FALSE switch VAR_RESULT case 5, LilycoveCity_ContestLobby_EventScript_CancelEnterContest case MULTI_B_PRESSED, LilycoveCity_ContestLobby_EventScript_CancelEnterContest @@ -164,48 +164,48 @@ LilycoveCity_ContestLobby_EventScript_ChooseContestType:: @ 8279EE1 goto LilycoveCity_ContestLobby_EventScript_ChooseContestMon end -LilycoveCity_ContestLobby_EventScript_CantEnterLowRank:: @ 8279F12 +LilycoveCity_ContestLobby_EventScript_CantEnterLowRank:: msgbox LilycoveCity_ContestLobby_Text_MonNotQualifiedForRank, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ChooseContestMon release end @ Unused -LilycoveCity_ContestLobby_EventScript_ConfirmEntry:: @ 8279F21 +LilycoveCity_ContestLobby_EventScript_ConfirmEntry:: msgbox LilycoveCity_ContestLobby_Text_ConfirmContestMon, MSGBOX_YESNO switch VAR_RESULT case NO, LilycoveCity_ContestLobby_EventScript_ChooseContestMon case YES, LilycoveCity_ContestLobby_EventScript_EnterMon end -LilycoveCity_ContestLobby_EventScript_ConfirmEntryAlreadyWon:: @ 8279F45 +LilycoveCity_ContestLobby_EventScript_ConfirmEntryAlreadyWon:: msgbox LilycoveCity_ContestLobby_Text_AlreadyWonEnterAnyway, MSGBOX_YESNO switch VAR_RESULT case NO, LilycoveCity_ContestLobby_EventScript_ChooseContestMon case YES, LilycoveCity_ContestLobby_EventScript_EnterMon end -LilycoveCity_ContestLobby_EventScript_CantEnterEgg:: @ 8279F69 +LilycoveCity_ContestLobby_EventScript_CantEnterEgg:: msgbox LilycoveCity_ContestLobby_Text_EggCannotTakePart, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ChooseContestMon release end -LilycoveCity_ContestLobby_EventScript_CantEnterFainted:: @ 8279F78 +LilycoveCity_ContestLobby_EventScript_CantEnterFainted:: msgbox LilycoveCity_ContestLobby_Text_MonInNoConditionForContest, MSGBOX_DEFAULT goto LilycoveCity_ContestLobby_EventScript_ChooseContestMon release end @ The return here is back to LilycoveCity_ContestLobby_EventScript_ContestReceptionist -LilycoveCity_ContestLobby_EventScript_EnterMon:: @ 8279F87 +LilycoveCity_ContestLobby_EventScript_EnterMon:: msgbox LilycoveCity_ContestLobby_Text_YourMonIsEntryNum4, MSGBOX_DEFAULT closemessage releaseall setvar VAR_CONTEST_HALL_STATE, 1 return -ContestHall_EventScript_DoContest:: @ 8279F97 +ContestHall_EventScript_DoContest:: special LinkContestTryShowWirelessIndicator setvar VAR_0x8006, 0 lockall @@ -228,7 +228,7 @@ ContestHall_EventScript_DoContest:: @ 8279F97 setvar VAR_CONTEST_HALL_STATE, 2 return -ContestHall_EventScript_GetContestRankStringId:: @ 8279FF2 +ContestHall_EventScript_GetContestRankStringId:: switch VAR_CONTEST_RANK case CONTEST_RANK_NORMAL, ContestHall_EventScript_GetNormalStringId case CONTEST_RANK_SUPER, ContestHall_EventScript_GetSuperStringId @@ -236,24 +236,24 @@ ContestHall_EventScript_GetContestRankStringId:: @ 8279FF2 case CONTEST_RANK_MASTER, ContestHall_EventScript_GetMasterStringId return -ContestHall_EventScript_GetNormalStringId:: @ 827A024 +ContestHall_EventScript_GetNormalStringId:: setvar VAR_0x8009, STDSTRING_NORMAL return -ContestHall_EventScript_GetSuperStringId:: @ 827A02A +ContestHall_EventScript_GetSuperStringId:: setvar VAR_0x8009, STDSTRING_SUPER return -ContestHall_EventScript_GetHyperStringId:: @ 827A030 +ContestHall_EventScript_GetHyperStringId:: setvar VAR_0x8009, STDSTRING_HYPER return -ContestHall_EventScript_GetMasterStringId:: @ 827A036 +ContestHall_EventScript_GetMasterStringId:: setvar VAR_0x8009, STDSTRING_MASTER return @ This whole switch is equivalent to copyvar VAR_0x8008, VAR_CONTEST_CATEGORY -ContestHall_EventScript_GetContestCategory:: @ 827A03C +ContestHall_EventScript_GetContestCategory:: switch VAR_CONTEST_CATEGORY case CONTEST_CATEGORY_COOL, ContestHall_EventScript_GetCategoryCool case CONTEST_CATEGORY_BEAUTY, ContestHall_EventScript_GetCategoryBeauty @@ -262,27 +262,27 @@ ContestHall_EventScript_GetContestCategory:: @ 827A03C case CONTEST_CATEGORY_TOUGH, ContestHall_EventScript_GetCategoryTough return -ContestHall_EventScript_GetCategoryCool:: @ 827A079 +ContestHall_EventScript_GetCategoryCool:: setvar VAR_0x8008, CONTEST_CATEGORY_COOL return -ContestHall_EventScript_GetCategoryBeauty:: @ 827A07F +ContestHall_EventScript_GetCategoryBeauty:: setvar VAR_0x8008, CONTEST_CATEGORY_BEAUTY return -ContestHall_EventScript_GetCategoryCute:: @ 827A085 +ContestHall_EventScript_GetCategoryCute:: setvar VAR_0x8008, CONTEST_CATEGORY_CUTE return -ContestHall_EventScript_GetCategorySmart:: @ 827A08B +ContestHall_EventScript_GetCategorySmart:: setvar VAR_0x8008, CONTEST_CATEGORY_SMART return -ContestHall_EventScript_GetCategoryTough:: @ 827A091 +ContestHall_EventScript_GetCategoryTough:: setvar VAR_0x8008, CONTEST_CATEGORY_TOUGH return -ContestHall_EventScript_ContestGettingStarted:: @ 827A097 +ContestHall_EventScript_ContestGettingStarted:: buffercontesttypestring 1, VAR_0x8008 bufferstdstring 2, VAR_0x8009 call ContestHall_EventScript_GettingStarted @@ -292,7 +292,7 @@ ContestHall_EventScript_ContestGettingStarted:: @ 827A097 releaseall return -ContestHall_EventScript_GettingStarted:: @ 827A0B1 +ContestHall_EventScript_GettingStarted:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_GettingStartedLink lockall @@ -300,7 +300,7 @@ ContestHall_EventScript_GettingStarted:: @ 827A0B1 releaseall return -ContestHall_EventScript_GettingStartedLink:: @ 827A0C7 +ContestHall_EventScript_GettingStartedLink:: specialvar VAR_RESULT, IsWirelessContest compare VAR_RESULT, TRUE goto_if_eq ContestHall_EventScript_GettingStartedWireless @@ -308,7 +308,7 @@ ContestHall_EventScript_GettingStartedLink:: @ 827A0C7 waitmessage return -ContestHall_EventScript_GettingStartedWireless:: @ 827A0DE +ContestHall_EventScript_GettingStartedWireless:: messageautoscroll ContestHall_Text_GettingStartedWireless waitmessage call ContestHall_EventScript_TryWaitForLink @@ -317,7 +317,7 @@ ContestHall_EventScript_GettingStartedWireless:: @ 827A0DE call ContestHall_EventScript_TryWaitForLink return -ContestHall_EventScript_ShowContestMons:: @ 827A0F5 +ContestHall_EventScript_ShowContestMons:: call ContestHall_EventScript_ContestantWalkToCenter call ContestHall_EventScript_ShowContestMonPic call ContestHall_EventScript_AudienceHeartEmotes @@ -332,18 +332,18 @@ ContestHall_EventScript_ShowContestMons:: @ 827A0F5 setvar VAR_TEMP_1, 6 return -ContestHall_EventScript_TryWaitForLink:: @ 827A133 +ContestHall_EventScript_TryWaitForLink:: specialvar VAR_RESULT, IsWirelessContest compare VAR_RESULT, TRUE goto_if_eq ContestHall_EventScript_WaitForLink return -ContestHall_EventScript_WaitForLink:: @ 827A144 +ContestHall_EventScript_WaitForLink:: special LinkContestWaitForConnection waitstate return -ContestHall_EventScript_ContestantWalkToCenter:: @ 827A149 +ContestHall_EventScript_ContestantWalkToCenter:: compare VAR_0x8006, 0 goto_if_eq ContestHall_EventScript_Player1WalkToCenter compare VAR_0x8006, 1 @@ -354,7 +354,7 @@ ContestHall_EventScript_ContestantWalkToCenter:: @ 827A149 goto_if_eq ContestHall_EventScript_Player4WalkToCenter return -ContestHall_EventScript_Player1WalkToCenter:: @ 827A176 +ContestHall_EventScript_Player1WalkToCenter:: call ContestHall_EventScript_TryWaitForLink lockall applymovement LOCALID_CONTESTANT_1, ContestHall_Movement_Player1WalkToCenter @@ -363,7 +363,7 @@ ContestHall_EventScript_Player1WalkToCenter:: @ 827A176 setvar VAR_0x800B, LOCALID_CONTESTANT_1 return -ContestHall_EventScript_Player2WalkToCenter:: @ 827A18D +ContestHall_EventScript_Player2WalkToCenter:: call ContestHall_EventScript_TryWaitForLink lockall applymovement LOCALID_CONTESTANT_2, ContestHall_Movement_Player2WalkToCenter @@ -372,7 +372,7 @@ ContestHall_EventScript_Player2WalkToCenter:: @ 827A18D setvar VAR_0x800B, LOCALID_CONTESTANT_2 return -ContestHall_EventScript_Player3WalkToCenter:: @ 827A1A4 +ContestHall_EventScript_Player3WalkToCenter:: call ContestHall_EventScript_TryWaitForLink lockall applymovement LOCALID_CONTESTANT_3, ContestHall_Movement_Player3WalkToCenter @@ -381,7 +381,7 @@ ContestHall_EventScript_Player3WalkToCenter:: @ 827A1A4 setvar VAR_0x800B, LOCALID_CONTESTANT_3 return -ContestHall_EventScript_Player4WalkToCenter:: @ 827A1BB +ContestHall_EventScript_Player4WalkToCenter:: call ContestHall_EventScript_TryWaitForLink lockall applymovement LOCALID_CONTESTANT_4, ContestHall_Movement_Player4WalkToCenter @@ -390,7 +390,7 @@ ContestHall_EventScript_Player4WalkToCenter:: @ 827A1BB setvar VAR_0x800B, LOCALID_CONTESTANT_4 return -ContestHall_EventScript_ShowContestMonPic:: @ 827A1D2 +ContestHall_EventScript_ShowContestMonPic:: special BufferContestTrainerAndMonNames addvar VAR_0x8006, 1 buffernumberstring 1, VAR_0x8006 @@ -412,19 +412,19 @@ ContestHall_EventScript_ShowContestMonPic:: @ 827A1D2 call ContestHall_EventScript_EntryXTrainersMon return -ContestHall_EventScript_EntryXTrainersMon:: @ 827A217 +ContestHall_EventScript_EntryXTrainersMon:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_EntryXTrainersMonLink message ContestHall_Text_EntryXTrainersMon waitmessage return -ContestHall_EventScript_EntryXTrainersMonLink:: @ 827A229 +ContestHall_EventScript_EntryXTrainersMonLink:: messageautoscroll ContestHall_Text_EntryXTrainersMon waitmessage return -ContestHall_EventScript_AudienceVote:: @ 827A230 +ContestHall_EventScript_AudienceVote:: call ContestHall_EventScript_AudienceWillVote call ContestHall_EventScript_VotingUnderWay playse SE_M_ENCORE2 @@ -440,13 +440,13 @@ ContestHall_EventScript_AudienceVote:: @ 827A230 waitmovement 0 return -ContestHall_EventScript_AudienceWillVote:: @ 827A26C +ContestHall_EventScript_AudienceWillVote:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_AudienceWillVoteLink msgbox ContestHall_Text_SeenContestantsAudienceWillVote, MSGBOX_DEFAULT return -ContestHall_EventScript_AudienceWillVoteLink:: @ 827A280 +ContestHall_EventScript_AudienceWillVoteLink:: specialvar VAR_RESULT, IsWirelessContest compare VAR_RESULT, TRUE goto_if_eq ContestHall_EventScript_AudienceWillVoteWireless @@ -454,7 +454,7 @@ ContestHall_EventScript_AudienceWillVoteLink:: @ 827A280 waitmessage return -ContestHall_EventScript_AudienceWillVoteWireless:: @ 827A297 +ContestHall_EventScript_AudienceWillVoteWireless:: messageautoscroll ContestHall_Text_WeveSeenContestants waitmessage call ContestHall_EventScript_TryWaitForLink @@ -466,18 +466,18 @@ ContestHall_EventScript_AudienceWillVoteWireless:: @ 827A297 call ContestHall_EventScript_TryWaitForLink return -ContestHall_EventScript_VotingUnderWay:: @ 827A2B9 +ContestHall_EventScript_VotingUnderWay:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_VotingUnderWayLink message ContestHall_Text_VotingUnderWay return -ContestHall_EventScript_VotingUnderWayLink:: @ 827A2CA +ContestHall_EventScript_VotingUnderWayLink:: messageautoscroll ContestHall_Text_VotingUnderWay call ContestHall_EventScript_TryWaitForLink return -ContestHall_EventScript_AudienceReactToContestant:: @ 827A2D5 +ContestHall_EventScript_AudienceReactToContestant:: call ContestHall_EventScript_TryWaitForLink applymovement LOCALID_MC, ContestHall_Movement_AudienceMemberLookLeft waitmovement 0 @@ -508,7 +508,7 @@ ContestHall_EventScript_AudienceReactToContestant:: @ 827A2D5 @ For each heart to display a random audience member is chosen, and a new one chosen if they already displayed a heart @ VAR_TEMP_1 through VAR_TEMP_8 represent each of the 8 audience members that are actual object events @ and are set to 9 if they havent displayed a heart yet, and 1 if they have -ContestHall_EventScript_AudienceHeartEmotes:: @ 827A34F +ContestHall_EventScript_AudienceHeartEmotes:: special GetContestMonCondition compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_NORMAL call_if_eq ContestHall_EventScript_GetNumberOfHeartsNormal @@ -540,7 +540,7 @@ ContestHall_EventScript_AudienceHeartEmotes:: @ 827A34F setvar VAR_TEMP_8, 0 return -ContestHall_EventScript_DisplayHearts:: @ 827A3E5 +ContestHall_EventScript_DisplayHearts:: setvar VAR_RESULT, 8 special GenerateContestRand compare VAR_RESULT, 0 @@ -564,7 +564,7 @@ ContestHall_EventScript_DisplayHearts:: @ 827A3E5 waitmovement 0 return -ContestHall_EventScript_GetNumberOfHeartsNormal:: @ 827A454 +ContestHall_EventScript_GetNumberOfHeartsNormal:: compare VAR_0x8004, 80 goto_if_gt ContestHall_EventScript_Set8Hearts compare VAR_0x8004, 70 @@ -584,7 +584,7 @@ ContestHall_EventScript_GetNumberOfHeartsNormal:: @ 827A454 setvar VAR_TEMP_0, 0 return -ContestHall_EventScript_GetNumberOfHeartsSuper:: @ 827A4B2 +ContestHall_EventScript_GetNumberOfHeartsSuper:: compare VAR_0x8004, 230 goto_if_gt ContestHall_EventScript_Set8Hearts compare VAR_0x8004, 210 @@ -604,7 +604,7 @@ ContestHall_EventScript_GetNumberOfHeartsSuper:: @ 827A4B2 setvar VAR_TEMP_0, 0 return -ContestHall_EventScript_GetNumberOfHeartsHyper:: @ 827A510 +ContestHall_EventScript_GetNumberOfHeartsHyper:: compare VAR_0x8004, 380 goto_if_gt ContestHall_EventScript_Set8Hearts compare VAR_0x8004, 350 @@ -624,7 +624,7 @@ ContestHall_EventScript_GetNumberOfHeartsHyper:: @ 827A510 setvar VAR_TEMP_0, 0 return -ContestHall_EventScript_GetNumberOfHeartsMaster:: @ 827A56E +ContestHall_EventScript_GetNumberOfHeartsMaster:: compare VAR_0x8004, 600 goto_if_gt ContestHall_EventScript_Set8Hearts compare VAR_0x8004, 560 @@ -644,7 +644,7 @@ ContestHall_EventScript_GetNumberOfHeartsMaster:: @ 827A56E setvar VAR_TEMP_0, 0 return -ContestHall_EventScript_GetNumberOfHeartsLink:: @ 827A5CC +ContestHall_EventScript_GetNumberOfHeartsLink:: compare VAR_0x8004, 600 goto_if_gt ContestHall_EventScript_Set8Hearts compare VAR_0x8004, 550 @@ -664,39 +664,39 @@ ContestHall_EventScript_GetNumberOfHeartsLink:: @ 827A5CC setvar VAR_TEMP_0, 0 return -ContestHall_EventScript_Set1Heart:: @ 827A62A +ContestHall_EventScript_Set1Heart:: setvar VAR_TEMP_0, 1 return -ContestHall_EventScript_Set2Hearts:: @ 827A630 +ContestHall_EventScript_Set2Hearts:: setvar VAR_TEMP_0, 2 return -ContestHall_EventScript_Set3Hearts:: @ 827A636 +ContestHall_EventScript_Set3Hearts:: setvar VAR_TEMP_0, 3 return -ContestHall_EventScript_Set4Hearts:: @ 827A63C +ContestHall_EventScript_Set4Hearts:: setvar VAR_TEMP_0, 4 return -ContestHall_EventScript_Set5Hearts:: @ 827A642 +ContestHall_EventScript_Set5Hearts:: setvar VAR_TEMP_0, 5 return -ContestHall_EventScript_Set6Hearts:: @ 827A648 +ContestHall_EventScript_Set6Hearts:: setvar VAR_TEMP_0, 6 return -ContestHall_EventScript_Set7Hearts:: @ 827A64E +ContestHall_EventScript_Set7Hearts:: setvar VAR_TEMP_0, 7 return -ContestHall_EventScript_Set8Hearts:: @ 827A654 +ContestHall_EventScript_Set8Hearts:: setvar VAR_TEMP_0, 8 return -ContestHall_EventScript_TryDisplayHeartAudienceMember1:: @ 827A65A +ContestHall_EventScript_TryDisplayHeartAudienceMember1:: compare VAR_TEMP_1, 1 goto_if_eq ContestHall_EventScript_AudienceMember1AlreadyEmoted applymovement LOCALID_AUDIENCE_1, ContestHall_Movement_Heart @@ -706,10 +706,10 @@ ContestHall_EventScript_TryDisplayHeartAudienceMember1:: @ 827A65A addvar VAR_TEMP_0, -1 return -ContestHall_EventScript_AudienceMember1AlreadyEmoted:: @ 827A67D +ContestHall_EventScript_AudienceMember1AlreadyEmoted:: return -ContestHall_EventScript_TryDisplayHeartAudienceMember2:: @ 827A67E +ContestHall_EventScript_TryDisplayHeartAudienceMember2:: compare VAR_TEMP_2, 1 goto_if_eq ContestHall_EventScript_AudienceMember2AlreadyEmoted applymovement LOCALID_AUDIENCE_2, ContestHall_Movement_Heart @@ -719,10 +719,10 @@ ContestHall_EventScript_TryDisplayHeartAudienceMember2:: @ 827A67E addvar VAR_TEMP_0, -1 return -ContestHall_EventScript_AudienceMember2AlreadyEmoted:: @ 827A6A1 +ContestHall_EventScript_AudienceMember2AlreadyEmoted:: return -ContestHall_EventScript_TryDisplayHeartAudienceMember3:: @ 827A6A2 +ContestHall_EventScript_TryDisplayHeartAudienceMember3:: compare VAR_TEMP_3, 1 goto_if_eq ContestHall_EventScript_AudienceMember3AlreadyEmoted applymovement LOCALID_AUDIENCE_3, ContestHall_Movement_Heart @@ -732,10 +732,10 @@ ContestHall_EventScript_TryDisplayHeartAudienceMember3:: @ 827A6A2 addvar VAR_TEMP_0, -1 return -ContestHall_EventScript_AudienceMember3AlreadyEmoted:: @ 827A6C5 +ContestHall_EventScript_AudienceMember3AlreadyEmoted:: return -ContestHall_EventScript_TryDisplayHeartAudienceMember4:: @ 827A6C6 +ContestHall_EventScript_TryDisplayHeartAudienceMember4:: compare VAR_TEMP_4, 1 goto_if_eq ContestHall_EventScript_Audience4MemberAlreadyEmoted applymovement LOCALID_AUDIENCE_4, ContestHall_Movement_Heart @@ -745,10 +745,10 @@ ContestHall_EventScript_TryDisplayHeartAudienceMember4:: @ 827A6C6 addvar VAR_TEMP_0, -1 return -ContestHall_EventScript_Audience4MemberAlreadyEmoted:: @ 827A6E9 +ContestHall_EventScript_Audience4MemberAlreadyEmoted:: return -ContestHall_EventScript_TryDisplayHeartAudienceMember5:: @ 827A6EA +ContestHall_EventScript_TryDisplayHeartAudienceMember5:: compare VAR_TEMP_5, 1 goto_if_eq ContestHall_EventScript_AudienceMember5AlreadyEmoted applymovement LOCALID_AUDIENCE_5, ContestHall_Movement_Heart @@ -758,10 +758,10 @@ ContestHall_EventScript_TryDisplayHeartAudienceMember5:: @ 827A6EA addvar VAR_TEMP_0, -1 return -ContestHall_EventScript_AudienceMember5AlreadyEmoted:: @ 827A70D +ContestHall_EventScript_AudienceMember5AlreadyEmoted:: return -ContestHall_EventScript_TryDisplayHeartAudienceMember6:: @ 827A70E +ContestHall_EventScript_TryDisplayHeartAudienceMember6:: compare VAR_TEMP_6, 1 goto_if_eq ContestHall_EventScript_AudienceMember6AlreadyEmoted applymovement LOCALID_AUDIENCE_6, ContestHall_Movement_Heart @@ -771,10 +771,10 @@ ContestHall_EventScript_TryDisplayHeartAudienceMember6:: @ 827A70E addvar VAR_TEMP_0, -1 return -ContestHall_EventScript_AudienceMember6AlreadyEmoted:: @ 827A731 +ContestHall_EventScript_AudienceMember6AlreadyEmoted:: return -ContestHall_EventScript_TryDisplayHeartAudienceMember7:: @ 827A732 +ContestHall_EventScript_TryDisplayHeartAudienceMember7:: compare VAR_TEMP_7, 1 goto_if_eq ContestHall_EventScript_AudienceMember7AlreadyEmoted applymovement LOCALID_AUDIENCE_7, ContestHall_Movement_Heart @@ -784,10 +784,10 @@ ContestHall_EventScript_TryDisplayHeartAudienceMember7:: @ 827A732 addvar VAR_TEMP_0, -1 return -ContestHall_EventScript_AudienceMember7AlreadyEmoted:: @ 827A755 +ContestHall_EventScript_AudienceMember7AlreadyEmoted:: return -ContestHall_EventScript_TryDisplayHeartAudienceMember8:: @ 827A756 +ContestHall_EventScript_TryDisplayHeartAudienceMember8:: compare VAR_TEMP_8, 1 goto_if_eq ContestHall_EventScript_AudienceMember8AlreadyEmoted applymovement LOCALID_ARTIST, ContestHall_Movement_Heart @@ -797,10 +797,10 @@ ContestHall_EventScript_TryDisplayHeartAudienceMember8:: @ 827A756 addvar VAR_TEMP_0, -1 return -ContestHall_EventScript_AudienceMember8AlreadyEmoted:: @ 827A779 +ContestHall_EventScript_AudienceMember8AlreadyEmoted:: return -ContestHall_EventScript_ContestantReturn:: @ 827A77A +ContestHall_EventScript_ContestantReturn:: closemessage release removeobject LOCALID_POKEBALL @@ -813,7 +813,7 @@ ContestHall_EventScript_ContestantReturn:: @ 827A77A case 3, ContestHall_EventScript_Player4WalkBack return -ContestHall_EventScript_Player1WalkBack:: @ 827A7B9 +ContestHall_EventScript_Player1WalkBack:: call ContestHall_EventScript_TryWaitForLink lockall applymovement VAR_0x800B, ContestHall_Movement_Player1WalkBack @@ -821,7 +821,7 @@ ContestHall_EventScript_Player1WalkBack:: @ 827A7B9 releaseall return -ContestHall_EventScript_Player2WalkBack:: @ 827A7CB +ContestHall_EventScript_Player2WalkBack:: call ContestHall_EventScript_TryWaitForLink lockall applymovement VAR_0x800B, ContestHall_Movement_Player2WalkBack @@ -829,7 +829,7 @@ ContestHall_EventScript_Player2WalkBack:: @ 827A7CB releaseall return -ContestHall_EventScript_Player3WalkBack:: @ 827A7DD +ContestHall_EventScript_Player3WalkBack:: call ContestHall_EventScript_TryWaitForLink lockall applymovement VAR_0x800B, ContestHall_Movement_Player3WalkBack @@ -837,7 +837,7 @@ ContestHall_EventScript_Player3WalkBack:: @ 827A7DD releaseall return -ContestHall_EventScript_Player4WalkBack:: @ 827A7EF +ContestHall_EventScript_Player4WalkBack:: call ContestHall_EventScript_TryWaitForLink lockall applymovement VAR_0x800B, ContestHall_Movement_Player4WalkBack @@ -845,7 +845,7 @@ ContestHall_EventScript_Player4WalkBack:: @ 827A7EF releaseall return -ContestHall_EventScript_DoContestAppeals:: @ 827A801 +ContestHall_EventScript_DoContestAppeals:: lockall applymovement LOCALID_MC, ContestHall_Movement_FaceContestants2 waitmovement 0 @@ -869,13 +869,13 @@ ContestHall_EventScript_DoContestAppeals:: @ 827A801 releaseall return -ContestHall_EventScript_LetsAppeal:: @ 827A853 +ContestHall_EventScript_LetsAppeal:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_LetsAppealLink msgbox ContestHall_Text_VotingCompleteLetsAppeal, MSGBOX_DEFAULT return -ContestHall_EventScript_LetsAppealLink:: @ 827A867 +ContestHall_EventScript_LetsAppealLink:: specialvar VAR_RESULT, IsWirelessContest compare VAR_RESULT, TRUE goto_if_eq ContestHall_EventScript_LetsAppealWireless @@ -883,7 +883,7 @@ ContestHall_EventScript_LetsAppealLink:: @ 827A867 waitmessage return -ContestHall_EventScript_LetsAppealWireless:: @ 827A87E +ContestHall_EventScript_LetsAppealWireless:: call ContestHall_EventScript_TryWaitForLink messageautoscroll ContestHall_Text_VotingComplete waitmessage @@ -896,7 +896,7 @@ ContestHall_EventScript_LetsAppealWireless:: @ 827A87E call ContestHall_EventScript_TryWaitForLink return -ContestHall_EventScript_ContestResults:: @ 827A8A5 +ContestHall_EventScript_ContestResults:: call ContestHall_EventScript_TryWaitForLink call ContestHall_EventScript_ThatsItForJudging call ContestHall_EventScript_TryWaitForLink @@ -916,62 +916,62 @@ ContestHall_EventScript_ContestResults:: @ 827A8A5 setvar VAR_TEMP_9, 1 showcontestresults setvar VAR_TEMP_9, 0 - playbgm MUS_CONTEST_WINNER, 0 + playbgm MUS_CONTEST_WINNER, FALSE return -ContestHall_EventScript_ThatsItForJudging:: @ 827A8FB +ContestHall_EventScript_ThatsItForJudging:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_ThatsItForJudgingLink msgbox ContestHall_Text_ThatsItForJudging, MSGBOX_DEFAULT return -ContestHall_EventScript_ThatsItForJudgingLink:: @ 827A90F +ContestHall_EventScript_ThatsItForJudgingLink:: call ContestHall_EventScript_TryWaitForLink messageautoscroll ContestHall_Text_ThatsItForJudging waitmessage delay 30 return -ContestHall_EventScript_ThankYouForAppeals:: @ 827A91E +ContestHall_EventScript_ThankYouForAppeals:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_ThankYouForAppealsLink msgbox ContestHall_Text_ThankYouForAppeals, MSGBOX_DEFAULT return -ContestHall_EventScript_ThankYouForAppealsLink:: @ 827A932 +ContestHall_EventScript_ThankYouForAppealsLink:: call ContestHall_EventScript_TryWaitForLink messageautoscroll ContestHall_Text_ThankYouForAppeals waitmessage delay 30 return -ContestHall_EventScript_JudgeLooksReady:: @ 827A941 +ContestHall_EventScript_JudgeLooksReady:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_JudgeLooksReadyLink msgbox ContestHall_Text_JudgeLooksReady, MSGBOX_DEFAULT return -ContestHall_EventScript_JudgeLooksReadyLink:: @ 827A955 +ContestHall_EventScript_JudgeLooksReadyLink:: call ContestHall_EventScript_TryWaitForLink messageautoscroll ContestHall_Text_JudgeLooksReady waitmessage delay 30 return -ContestHall_EventScript_WeWillDeclareWinner:: @ 827A964 +ContestHall_EventScript_WeWillDeclareWinner:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_WeWillDeclareWinnerLink msgbox ContestHall_Text_WeWillNowDeclareWinner, MSGBOX_DEFAULT return -ContestHall_EventScript_WeWillDeclareWinnerLink:: @ 827A978 +ContestHall_EventScript_WeWillDeclareWinnerLink:: call ContestHall_EventScript_TryWaitForLink messageautoscroll ContestHall_Text_WeWillNowDeclareWinner waitmessage delay 30 return -ContestHall_EventScript_GetWinnerObjEventId:: @ 827A987 +ContestHall_EventScript_GetWinnerObjEventId:: special GetContestWinnerId switch VAR_0x8005 case 0, ContestHall_EventScript_GetPlayer1ObjEventId @@ -980,23 +980,23 @@ ContestHall_EventScript_GetWinnerObjEventId:: @ 827A987 case 3, ContestHall_EventScript_GetPlayer4ObjEventId return -ContestHall_EventScript_GetPlayer1ObjEventId:: @ 827A9BC +ContestHall_EventScript_GetPlayer1ObjEventId:: setvar VAR_TEMP_3, LOCALID_CONTESTANT_1 return -ContestHall_EventScript_GetPlayer2ObjEventId:: @ 827A9C2 +ContestHall_EventScript_GetPlayer2ObjEventId:: setvar VAR_TEMP_3, LOCALID_CONTESTANT_2 return -ContestHall_EventScript_GetPlayer3ObjEventId:: @ 827A9C8 +ContestHall_EventScript_GetPlayer3ObjEventId:: setvar VAR_TEMP_3, LOCALID_CONTESTANT_3 return -ContestHall_EventScript_GetPlayer4ObjEventId:: @ 827A9CE +ContestHall_EventScript_GetPlayer4ObjEventId:: setvar VAR_TEMP_3, LOCALID_CONTESTANT_4 return -ContestHall_EventScript_CongratulateWinner:: @ 827A9D4 +ContestHall_EventScript_CongratulateWinner:: special BufferContestWinnerTrainerName special BufferContestWinnerMonName addvar VAR_0x8005, 1 @@ -1009,18 +1009,18 @@ ContestHall_EventScript_CongratulateWinner:: @ 827A9D4 setvar VAR_TEMP_1, 0 return -ContestHall_EventScript_CongratsWinner:: @ 827AA00 +ContestHall_EventScript_CongratsWinner:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_CongratsWinnerLink msgbox ContestHall_Text_CongratsTrainerXandMon, MSGBOX_DEFAULT return -ContestHall_EventScript_CongratsWinnerLink:: @ 827AA14 +ContestHall_EventScript_CongratsWinnerLink:: messageautoscroll ContestHall_Text_CongratsTrainerXandMon waitmessage return -ContestHall_EventScript_AudienceLookAround:: @ 827AA1B +ContestHall_EventScript_AudienceLookAround:: addvar VAR_TEMP_1, 1 lockall compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_NORMAL @@ -1038,7 +1038,7 @@ ContestHall_EventScript_AudienceLookAround:: @ 827AA1B delay 30 return -ContestHall_EventScript_VObjectAudienceLookAround:: @ 827AA6F +ContestHall_EventScript_VObjectAudienceLookAround:: turnvobject 0, DIR_SOUTH turnvobject 2, DIR_SOUTH turnvobject 4, DIR_EAST @@ -1107,7 +1107,7 @@ ContestHall_EventScript_VObjectAudienceLookAround:: @ 827AA6F delay 10 return -ContestHall_EventScript_GiveWinnerPrize:: @ 827AB36 +ContestHall_EventScript_GiveWinnerPrize:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK goto_if_eq ContestHall_EventScript_EndLinkContest call ContestHall_EventScript_CheckShouldSkipPrize @@ -1126,7 +1126,7 @@ ContestHall_EventScript_GiveWinnerPrize:: @ 827AB36 goto_if_eq ContestHall_EventScript_SetReadyForContestArtist return -ContestHall_EventScript_SkipPrize:: @ 827AB82 +ContestHall_EventScript_SkipPrize:: lockall msgbox ContestHall_Text_CongratsPleaseCompeteAgain, MSGBOX_DEFAULT releaseall @@ -1136,37 +1136,37 @@ ContestHall_EventScript_SkipPrize:: @ 827AB82 goto_if_eq ContestHall_EventScript_SetReadyForContestArtist return -ContestHall_EventScript_CheckShouldSkipPrize:: @ 827AB9E +ContestHall_EventScript_CheckShouldSkipPrize:: specialvar VAR_RESULT, HasMonWonThisContestBefore compare VAR_RESULT, TRUE goto_if_eq ContestHall_EventScript_CheckPlayerWon return -ContestHall_EventScript_CheckPlayerWon:: @ 827ABAF +ContestHall_EventScript_CheckPlayerWon:: special GetContestWinnerId compare VAR_0x8005, 3 goto_if_eq ContestHall_EventScript_CheckRankIsMaster return -ContestHall_EventScript_CheckRankIsMaster:: @ 827ABBE +ContestHall_EventScript_CheckRankIsMaster:: compare VAR_CONTEST_RANK, CONTEST_RANK_MASTER goto_if_eq ContestHall_EventScript_DontSkipPrize setflag FLAG_TEMP_2 return -ContestHall_EventScript_DontSkipPrize:: @ 827ABCD +ContestHall_EventScript_DontSkipPrize:: return @ This flag is never read -ContestHall_EventScript_SetSketchFlag:: @ 827ABCE +ContestHall_EventScript_SetSketchFlag:: setflag FLAG_CONTEST_SKETCH_CREATED return -ContestHall_EventScript_SetReadyForContestArtist:: @ 827ABD2 +ContestHall_EventScript_SetReadyForContestArtist:: setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 1 return -ContestHall_EventScript_EndLinkContest:: @ 827ABD8 +ContestHall_EventScript_EndLinkContest:: delay 60 special GetContestPlayerId special GetContestWinnerId @@ -1176,15 +1176,15 @@ ContestHall_EventScript_EndLinkContest:: @ 827ABD8 closemessage return -ContestHall_EventScript_SetReadyForLinkContestArtist:: @ 827ABF1 +ContestHall_EventScript_SetReadyForLinkContestArtist:: setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 2 return @ Unused -ContestHall_EventScript_Ret:: @ 827ABF7 +ContestHall_EventScript_Ret:: return -ContestHall_EventScript_WinnerApproachForPrize:: @ 827ABF8 +ContestHall_EventScript_WinnerApproachForPrize:: switch VAR_0x8005 case 0, ContestHall_EventScript_Player1ApproachForPrize case 1, ContestHall_EventScript_Player2ApproachForPrize @@ -1192,28 +1192,28 @@ ContestHall_EventScript_WinnerApproachForPrize:: @ 827ABF8 case 3, ContestHall_EventScript_Player4ApproachForPrize return -ContestHall_EventScript_Player1ApproachForPrize:: @ 827AC2A +ContestHall_EventScript_Player1ApproachForPrize:: lockall applymovement VAR_TEMP_3, ContestHall_Movement_Player1ApproachForPrize waitmovement 0 releaseall return -ContestHall_EventScript_Player2ApproachForPrize:: @ 827AC37 +ContestHall_EventScript_Player2ApproachForPrize:: lockall applymovement VAR_TEMP_3, ContestHall_Movement_Player2ApproachForPrize waitmovement 0 releaseall return -ContestHall_EventScript_Player3ApproachForPrize:: @ 827AC44 +ContestHall_EventScript_Player3ApproachForPrize:: lockall applymovement VAR_TEMP_3, ContestHall_Movement_Player3ApproachForPrize waitmovement 0 releaseall return -ContestHall_EventScript_Player4ApproachForPrize:: @ 827AC51 +ContestHall_EventScript_Player4ApproachForPrize:: lockall applymovement VAR_TEMP_3, ContestHall_Movement_Player4ApproachForPrize waitmovement 0 @@ -1221,7 +1221,7 @@ ContestHall_EventScript_Player4ApproachForPrize:: @ 827AC51 return @ In NPC Contests, the player is always entry 4 (id number 3) -ContestHall_EventScript_GivePrizeIfWinner:: @ 827AC5E +ContestHall_EventScript_GivePrizeIfWinner:: special GetContestWinnerId compare VAR_0x8005, 3 goto_if_eq ContestHall_EventScript_GiveContestPrizes @@ -1230,7 +1230,7 @@ ContestHall_EventScript_GivePrizeIfWinner:: @ 827AC5E releaseall return -ContestHall_EventScript_GiveContestPrizes:: @ 827AC77 +ContestHall_EventScript_GiveContestPrizes:: compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_SUPER call_if_eq ContestHall_EventScript_SetSketchFlag specialvar VAR_RESULT, HasMonWonThisContestBefore @@ -1243,7 +1243,7 @@ ContestHall_EventScript_GiveContestPrizes:: @ 827AC77 releaseall return -ContestHall_EventScript_NoRoomForLuxuryBall:: @ 827ACA8 +ContestHall_EventScript_NoRoomForLuxuryBall:: lockall call Common_EventScript_BagIsFull msgbox ContestHall_Text_PickUpPrizeAtCounterLater, MSGBOX_DEFAULT @@ -1251,7 +1251,7 @@ ContestHall_EventScript_NoRoomForLuxuryBall:: @ 827ACA8 setvar VAR_CONTEST_PRIZE_PICKUP, 4 return -ContestHall_EventScript_GiveLuxuryBall:: @ 827ACBD +ContestHall_EventScript_GiveLuxuryBall:: giveitem ITEM_LUXURY_BALL compare VAR_RESULT, FALSE goto_if_eq ContestHall_EventScript_NoRoomForLuxuryBall @@ -1260,7 +1260,7 @@ ContestHall_EventScript_GiveLuxuryBall:: @ 827ACBD releaseall return -ContestHall_EventScript_ReceiveContestRibbon:: @ 827ACDF +ContestHall_EventScript_ReceiveContestRibbon:: special GiveMonContestRibbon incrementgamestat GAME_STAT_RECEIVED_RIBBONS setflag FLAG_SYS_RIBBON_GET @@ -1274,69 +1274,69 @@ ContestHall_EventScript_ReceiveContestRibbon:: @ 827ACDF releaseall return -ContestHall_Movement_MCWalkDown: @ 827AD09 +ContestHall_Movement_MCWalkDown: walk_down step_end -ContestHall_Movement_MCBackUp: @ 827AD0B +ContestHall_Movement_MCBackUp: lock_facing_direction walk_up unlock_facing_direction step_end -ContestHall_Movement_MCFaceJudge: @ 827AD0F +ContestHall_Movement_MCFaceJudge: walk_in_place_fastest_right step_end -ContestHall_Movement_Heart: @ 827AD11 +ContestHall_Movement_Heart: emote_heart step_end -ContestHall_Movement_FaceContestants: @ 827AD13 +ContestHall_Movement_FaceContestants: walk_in_place_fastest_down step_end -ContestHall_Movement_WalkStageLeft: @ 827AD15 +ContestHall_Movement_WalkStageLeft: walk_left walk_left walk_in_place_fastest_down step_end -ContestHall_Movement_WalkStageRight: @ 827AD19 +ContestHall_Movement_WalkStageRight: walk_right walk_right walk_in_place_fastest_down step_end -ContestHall_Movement_WinningPlayerWalkUp: @ 827AD1D +ContestHall_Movement_WinningPlayerWalkUp: walk_up walk_in_place_fastest_down step_end -ContestHall_Movement_ContestantDelay32: @ 827AD20 +ContestHall_Movement_ContestantDelay32: delay_16 delay_16 step_end -ContestHall_Movement_MCFaceJudge2: @ 827AD23 +ContestHall_Movement_MCFaceJudge2: walk_in_place_fastest_right step_end -ContestHall_Movement_JudgeFaceMC: @ 827AD25 +ContestHall_Movement_JudgeFaceMC: walk_in_place_fastest_left step_end -ContestHall_Movement_FaceContestants2: @ 827AD27 +ContestHall_Movement_FaceContestants2: walk_in_place_fastest_down step_end -ContestHall_Movement_Player3ApproachForPrize: @ 827AD29 +ContestHall_Movement_Player3ApproachForPrize: walk_left walk_left walk_up step_end -ContestHall_Movement_Player4ApproachForPrize: @ 827AD2D +ContestHall_Movement_Player4ApproachForPrize: walk_left walk_left walk_left @@ -1344,54 +1344,54 @@ ContestHall_Movement_Player4ApproachForPrize: @ 827AD2D walk_up step_end -ContestHall_Movement_AudienceMemberLookLeft: @ 827AD33 +ContestHall_Movement_AudienceMemberLookLeft: face_left delay_16 face_original_direction step_end -ContestHall_Movement_AudienceMemberLookUp: @ 827AD37 +ContestHall_Movement_AudienceMemberLookUp: face_up delay_16 face_original_direction step_end -ContestHall_Movement_AudienceMemberLookRight: @ 827AD3B +ContestHall_Movement_AudienceMemberLookRight: face_right delay_16 face_original_direction step_end -ContestHall_Movement_AudienceMemberLookDown: @ 827AD3F +ContestHall_Movement_AudienceMemberLookDown: face_down delay_16 face_original_direction step_end -ContestHall_Movement_Player4FaceUp: @ 827AD43 +ContestHall_Movement_Player4FaceUp: face_up step_end -ContestHall_Movement_MCLookAtJudge: @ 827AD45 +ContestHall_Movement_MCLookAtJudge: face_up delay_16 walk_in_place_fastest_right step_end -ContestHall_Movement_JudgeLookAtMC: @ 827AD49 +ContestHall_Movement_JudgeLookAtMC: walk_in_place_fastest_left delay_16 delay_16 walk_in_place_fastest_down step_end -ContestHall_Movement_MCWalkInPlaceDown: @ 827AD4E +ContestHall_Movement_MCWalkInPlaceDown: delay_16 delay_16 walk_in_place_fastest_down step_end -ContestHall_Movement_Player1WalkToCenter: @ 827AD52 +ContestHall_Movement_Player1WalkToCenter: walk_up walk_right walk_right @@ -1399,7 +1399,7 @@ ContestHall_Movement_Player1WalkToCenter: @ 827AD52 walk_in_place_fastest_up step_end -ContestHall_Movement_Player1WalkBack: @ 827AD58 +ContestHall_Movement_Player1WalkBack: walk_fast_left walk_fast_left walk_fast_left @@ -1407,31 +1407,31 @@ ContestHall_Movement_Player1WalkBack: @ 827AD58 walk_in_place_fastest_up step_end -ContestHall_Movement_Player2WalkToCenter: @ 827AD5E +ContestHall_Movement_Player2WalkToCenter: walk_up walk_right walk_in_place_fastest_up step_end -ContestHall_Movement_Player2WalkBack: @ 827AD62 +ContestHall_Movement_Player2WalkBack: walk_fast_left walk_fast_down walk_in_place_fastest_up step_end -ContestHall_Movement_Player3WalkToCenter: @ 827AD66 +ContestHall_Movement_Player3WalkToCenter: walk_up walk_left walk_in_place_fastest_up step_end -ContestHall_Movement_Player3WalkBack: @ 827AD6A +ContestHall_Movement_Player3WalkBack: walk_fast_right walk_fast_down walk_in_place_fastest_up step_end -ContestHall_Movement_Player4WalkToCenter: @ 827AD6E +ContestHall_Movement_Player4WalkToCenter: walk_up walk_left walk_left @@ -1439,7 +1439,7 @@ ContestHall_Movement_Player4WalkToCenter: @ 827AD6E walk_in_place_fastest_up step_end -ContestHall_Movement_Player4WalkBack: @ 827AD74 +ContestHall_Movement_Player4WalkBack: walk_fast_right walk_fast_right walk_fast_right @@ -1447,37 +1447,37 @@ ContestHall_Movement_Player4WalkBack: @ 827AD74 walk_in_place_fastest_up step_end -ContestHall_Movement_Player1ApproachForPrize: @ 827AD7A +ContestHall_Movement_Player1ApproachForPrize: walk_right walk_right walk_up step_end -ContestHall_Movement_Player2ApproachForPrize: @ 827AD7E +ContestHall_Movement_Player2ApproachForPrize: walk_up step_end @ IsContestWithRSPlayer has no side effect, so this is nop -ContestHall_EventScript_CheckIfContestWithRSPlayer:: @ 827AD80 +ContestHall_EventScript_CheckIfContestWithRSPlayer:: specialvar VAR_RESULT, IsContestWithRSPlayer compare VAR_RESULT, TRUE goto_if_eq ContestHall_EventScript_RetRSPlayer return -ContestHall_EventScript_RetRSPlayer:: @ 827AD91 +ContestHall_EventScript_RetRSPlayer:: return -LilycoveCity_ContestLobby_EventScript_DelayIfContestWithRSPlayer:: @ 827AD92 +LilycoveCity_ContestLobby_EventScript_DelayIfContestWithRSPlayer:: specialvar VAR_RESULT, IsContestWithRSPlayer compare VAR_RESULT, TRUE goto_if_eq LilycoveCity_ContestLobby_EventScript_DelayForRSPlayer return -LilycoveCity_ContestLobby_EventScript_DelayForRSPlayer:: @ 827ADA3 +LilycoveCity_ContestLobby_EventScript_DelayForRSPlayer:: delay 9 return -LilycoveCity_ContestLobby_Text_ReceptionDontHavePokeblockCase: @ 827ADA7 +LilycoveCity_ContestLobby_Text_ReceptionDontHavePokeblockCase: .string "Hello!\p" .string "This is the reception counter for\n" .string "POKéMON CONTESTS.\p" @@ -1486,32 +1486,32 @@ LilycoveCity_ContestLobby_Text_ReceptionDontHavePokeblockCase: @ 827ADA7 .string "In that case, we need to provide you\n" .string "with this!$" -LilycoveCity_ContestLobby_Text_NowThatWeveClearedThatUp: @ 827AE47 +LilycoveCity_ContestLobby_Text_NowThatWeveClearedThatUp: .string "Okay, now that we've cleared that\n" .string "up…\p" .string "Hello!\p" .string "This is the reception counter for\n" .string "POKéMON CONTESTS.$" -LilycoveCity_ContestLobby_Text_ContestReception: @ 827AEA8 +LilycoveCity_ContestLobby_Text_ContestReception: .string "Hello!\p" .string "This is the reception counter for\n" .string "POKéMON CONTESTS.$" @ Unused -LilycoveCity_ContestLobby_Text_CounterOnlyFor4PlayerContests: @ 827AEE3 +LilycoveCity_ContestLobby_Text_CounterOnlyFor4PlayerContests: .string "Hello!\p" .string "This reception counter is only\n" .string "for 4-player POKéMON CONTESTS.$" -LilycoveCity_ContestLobby_Text_EnterContest1: @ 827AF28 +LilycoveCity_ContestLobby_Text_EnterContest1: .string "Would you like to enter your POKéMON\n" .string "in our CONTESTS?$" -LilycoveCity_ContestLobby_Text_WhichTopic1: @ 827AF5E +LilycoveCity_ContestLobby_Text_WhichTopic1: .string "Which topic would you like?$" -LilycoveCity_ContestLobby_Text_ExplainContests: @ 827AF7A +LilycoveCity_ContestLobby_Text_ExplainContests: .string "A POKéMON CONTEST involves four\n" .string "TRAINERS entering one POKéMON each\l" .string "in competitive judging.\p" @@ -1530,14 +1530,14 @@ LilycoveCity_ContestLobby_Text_ExplainContests: @ 827AF7A .string "The POKéMON garnering the highest\n" .string "score is declared the winner.$" -LilycoveCity_ContestLobby_Text_ExplainContestTypes: @ 827B17D +LilycoveCity_ContestLobby_Text_ExplainContestTypes: .string "There are five kinds of CONTESTS.\p" .string "COOL, BEAUTY, CUTE, SMART, and\n" .string "TOUGH are the five categories.\p" .string "Choose the CONTEST that is right for\n" .string "the POKéMON you plan to enter.$" -LilycoveCity_ContestLobby_Text_ExplainContestRanks: @ 827B221 +LilycoveCity_ContestLobby_Text_ExplainContestRanks: .string "There are four ranks of POKéMON\n" .string "CONTESTS.\p" .string "NORMAL, SUPER, HYPER, and MASTER\n" @@ -1555,77 +1555,77 @@ LilycoveCity_ContestLobby_Text_ExplainContestRanks: @ 827B221 .string "may compete in the MASTER Rank as\l" .string "often as its TRAINER wants.$" -LilycoveCity_ContestLobby_Text_EnterWhichRank: @ 827B3FF +LilycoveCity_ContestLobby_Text_EnterWhichRank: .string "Which Rank would you like to enter?$" -LilycoveCity_ContestLobby_Text_EnterWhichContest1: @ 827B423 +LilycoveCity_ContestLobby_Text_EnterWhichContest1: .string "Which CONTEST would you like to enter?$" -LilycoveCity_ContestLobby_Text_EnterWhichPokemon1: @ 827B44A +LilycoveCity_ContestLobby_Text_EnterWhichPokemon1: .string "Which POKéMON would you like to enter?$" -LilycoveCity_ContestLobby_Text_MonNotQualifiedForRank: @ 827B471 +LilycoveCity_ContestLobby_Text_MonNotQualifiedForRank: .string "I'm terribly sorry, but your POKéMON\n" .string "is not qualified to compete at this\l" .string "Rank yet…$" -LilycoveCity_ContestLobby_Text_EggCannotTakePart: @ 827B4C4 +LilycoveCity_ContestLobby_Text_EggCannotTakePart: .string "I'm sorry, but an EGG cannot take part\n" .string "in a POKéMON CONTEST.$" -LilycoveCity_ContestLobby_Text_MonInNoConditionForContest: @ 827B501 +LilycoveCity_ContestLobby_Text_MonInNoConditionForContest: .string "Your POKéMON appears to be in no\n" .string "condition to take part in a CONTEST…$" -LilycoveCity_ContestLobby_Text_AlreadyWonEnterAnyway: @ 827B547 +LilycoveCity_ContestLobby_Text_AlreadyWonEnterAnyway: .string "Oh, but that RIBBON…\p" .string "Your POKéMON has won this CONTEST\n" .string "before, hasn't it?\p" .string "Would you like to enter it in this\n" .string "CONTEST anyway?$" -LilycoveCity_ContestLobby_Text_ConfirmContestMon: @ 827B5C4 +LilycoveCity_ContestLobby_Text_ConfirmContestMon: .string "Is that your CONTEST POKéMON?$" -LilycoveCity_ContestLobby_Text_YourMonIsEntryNum4: @ 827B5E2 +LilycoveCity_ContestLobby_Text_YourMonIsEntryNum4: .string "Okay, your POKéMON will be entered\n" .string "in this CONTEST.\p" .string "Your POKéMON is Entry No. 4.\n" .string "The CONTEST will begin shortly.$" -LilycoveCity_ContestLobby_Text_ComeThroughHere: @ 827B653 +LilycoveCity_ContestLobby_Text_ComeThroughHere: .string "Please come in through here.\n" .string "Good luck!$" -LilycoveCity_ContestLobby_Text_PokemonWonWeHavePrize: @ 827B67B +LilycoveCity_ContestLobby_Text_PokemonWonWeHavePrize: .string "Congratulations! Your POKéMON is the\n" .string "CONTEST winner!\p" .string "We have your prize right here.\n" .string "Please, right this way!$" -LilycoveCity_ContestLobby_Text_ComeBackForPrizeLater: @ 827B6E7 +LilycoveCity_ContestLobby_Text_ComeBackForPrizeLater: .string "Please come back for your prize\n" .string "later on.$" -ContestHall_Text_GettingStartedParticipantsAsFollows: @ 827B711 +ContestHall_Text_GettingStartedParticipantsAsFollows: .string "MC: Hello! We're just getting started\n" .string "with a {STR_VAR_3} Rank POKéMON\l" .string "{STR_VAR_2}!\p" .string "The participating TRAINERS and their\n" .string "POKéMON are as follows:$" -ContestHall_Text_GettingStartedParticipantsAsFollowsLink: @ 827B78F +ContestHall_Text_GettingStartedParticipantsAsFollowsLink: .string "MC: Hello! We're just getting started\n" .string "with a 4-player linked POKéMON\l" .string "{STR_VAR_2}!\p" .string "The participating TRAINERS and their\n" .string "POKéMON are as follows:$" -ContestHall_Text_EntryXTrainersMon: @ 827B815 +ContestHall_Text_EntryXTrainersMon: .string "MC: Entry No. {STR_VAR_2}!\n" .string "{STR_VAR_1}'s {STR_VAR_3}!$" -ContestHall_Text_SeenContestantsAudienceWillVote: @ 827B830 +ContestHall_Text_SeenContestantsAudienceWillVote: .string "MC: We've just seen the four POKéMON\n" .string "contestants.\p" .string "Now it's time for primary judging!\p" @@ -1634,10 +1634,10 @@ ContestHall_Text_SeenContestantsAudienceWillVote: @ 827B830 .string "Without any further ado, let the\n" .string "voting begin!$" -ContestHall_Text_VotingUnderWay: @ 827B8F2 +ContestHall_Text_VotingUnderWay: .string "Voting under way…$" -ContestHall_Text_VotingCompleteLetsAppeal: @ 827B904 +ContestHall_Text_VotingCompleteLetsAppeal: .string "Voting is now complete!\p" .string "While the votes are being tallied,\n" .string "let's move on to secondary judging!\p" @@ -1648,75 +1648,75 @@ ContestHall_Text_VotingCompleteLetsAppeal: @ 827B904 .string "Let's see a little enthusiasm!\n" .string "Let's appeal!$" -ContestHall_Text_ThatsItForJudging: @ 827BA15 +ContestHall_Text_ThatsItForJudging: .string "MC: That's it for judging!$" -ContestHall_Text_ThankYouForAppeals: @ 827BA30 +ContestHall_Text_ThankYouForAppeals: .string "Thank you all for a most wonderful\n" .string "display of quality appeals!\p" .string "This concludes all judging!\n" .string "Thank you for your fine efforts!$" -ContestHall_Text_JudgeLooksReady: @ 827BAAC +ContestHall_Text_JudgeLooksReady: .string "Now, all that remains is the pulse-\n" .string "pounding proclamation of the winner.\p" .string "The JUDGE looks ready to make\n" .string "the announcement!$" -ContestHall_Text_WeWillNowDeclareWinner: @ 827BB25 +ContestHall_Text_WeWillNowDeclareWinner: .string "JUDGE: We will now declare the winner!$" -ContestHall_Text_CongratsTrainerXandMon: @ 827BB4C +ContestHall_Text_CongratsTrainerXandMon: .string "MC: Entry No. {STR_VAR_2}!\p" .string "{STR_VAR_3} and {STR_VAR_1},\n" .string "congratulations!$" -ContestHall_Text_CongratsPleaseCompeteAgain: @ 827BB7A +ContestHall_Text_CongratsPleaseCompeteAgain: .string "MC: Congratulations!\n" .string "Please do compete again!$" -ContestHall_Text_AcceptYourPrize: @ 827BBA8 +ContestHall_Text_AcceptYourPrize: .string "MC: Here you are!\n" .string "Please accept your prize!$" -ContestHall_Text_ConferRibbonAsPrize: @ 827BBD4 +ContestHall_Text_ConferRibbonAsPrize: .string "We confer on you this RIBBON\n" .string "as your prize!$" -ContestHall_Text_ReceivedRibbon: @ 827BC00 +ContestHall_Text_ReceivedRibbon: .string "{PLAYER} received a RIBBON.$" -ContestHall_Text_PutRibbonOnMon: @ 827BC16 +ContestHall_Text_PutRibbonOnMon: .string "{PLAYER} put the RIBBON on\n" .string "{STR_VAR_1}.$" -ContestHall_Text_PickUpPrizeAtCounterLater: @ 827BC2F +ContestHall_Text_PickUpPrizeAtCounterLater: .string "Please pick up your prize at\n" .string "the reception counter later.\l" .string "Please do compete again!$" @ Unused -ContestHall_Text_OnlyRegister4Players: @ 827BC82 +ContestHall_Text_OnlyRegister4Players: .string "I only register four players for\n" .string "POKéMON CONTESTS.\p" .string "If three other players link up, all\n" .string "four may enter the same CONTEST.\p" .string "Would you like to take part?$" -LilycoveCity_ContestLobby_Text_ProgressWillBeSaved: @ 827BD17 +LilycoveCity_ContestLobby_Text_ProgressWillBeSaved: .string "Before entering a CONTEST, your\n" .string "progress will be saved.$" -LilycoveCity_ContestLobby_Text_ParticipateAnotherTime: @ 827BD4F +LilycoveCity_ContestLobby_Text_ParticipateAnotherTime: .string "We hope you will participate another\n" .string "time.$" @ Unused -LilycoveCity_ContestLobby_Text_EnterContest2: @ 827BD7A +LilycoveCity_ContestLobby_Text_EnterContest2: .string "Would you like to enter a CONTEST?$" @ Unused -LilycoveCity_ContestLobby_Text_Explain4PlayerContest: @ 827BD9D +LilycoveCity_ContestLobby_Text_Explain4PlayerContest: .string "When four players are ready, connect\n" .string "over a Game Link cable, and register\l" .string "with me, please.\p" @@ -1728,82 +1728,82 @@ LilycoveCity_ContestLobby_Text_Explain4PlayerContest: @ 827BD9D .string "apply.$" @ Unused -LilycoveCity_ContestLobby_Text_EnterWhichContest2: @ 827BE9E +LilycoveCity_ContestLobby_Text_EnterWhichContest2: .string "Which CONTEST would you like to enter?$" @ Unused -LilycoveCity_ContestLobby_Text_EnterWhichPokemon2: @ 827BEC5 +LilycoveCity_ContestLobby_Text_EnterWhichPokemon2: .string "Which POKéMON would you like to enter?$" -LilycoveCity_ContestLobby_Text_Transmitting: @ 827BEEC +LilycoveCity_ContestLobby_Text_Transmitting: .string "Transmitting…$" -LilycoveCity_ContestLobby_Text_TransmissionError: @ 827BEFA +LilycoveCity_ContestLobby_Text_TransmissionError: .string "Transmission error…$" -LilycoveCity_ContestLobby_Text_PlayersChoseDifferentContest: @ 827BF0E +LilycoveCity_ContestLobby_Text_PlayersChoseDifferentContest: .string "You may have chosen a different\n" .string "CONTEST than another player.$" -LilycoveCity_ContestLobby_Text_PlayersMadeDifferentChoice: @ 827BF4B +LilycoveCity_ContestLobby_Text_PlayersMadeDifferentChoice: .string "You may have made a different\n" .string "choice than another player.$" -LilycoveCity_ContestLobby_Text_PleaseWaitBButtonCancel: @ 827BF85 +LilycoveCity_ContestLobby_Text_PleaseWaitBButtonCancel: .string "Please wait.\n" .string "… … B Button: Cancel$" @ Unused -LilycoveCity_ContestLobby_Text_ParticipateAnotherTime2: @ 827BFA7 +LilycoveCity_ContestLobby_Text_ParticipateAnotherTime2: .string "We hope you will participate another\n" .string "time.$" @ Unused -LilycoveCity_ContestLobby_Text_TransmissionErrorTryAgain: @ 827BFD2 +LilycoveCity_ContestLobby_Text_TransmissionErrorTryAgain: .string "Transmission error.\n" .string "Please try again.$" -LilycoveCity_ContestLobby_Text_YourMonIsEntryNumX: @ 827BFF8 +LilycoveCity_ContestLobby_Text_YourMonIsEntryNumX: .string "Your POKéMON will be entered in\n" .string "the CONTEST.\p" .string "Your POKéMON is Entry No. {STR_VAR_2}.$" -LilycoveCity_ContestLobby_Text_ContestBeginShortly: @ 827C043 +LilycoveCity_ContestLobby_Text_ContestBeginShortly: .string "The CONTEST will begin shortly.$" -LilycoveCity_ContestLobby_Text_LinkContestReception: @ 827C063 +LilycoveCity_ContestLobby_Text_LinkContestReception: .string "Welcome! This is the POKéMON CONTEST\n" .string "link reception counter.\p" .string "You may enter CONTESTS together with\n" .string "one or more friends.$" -LilycoveCity_ContestLobby_Text_WhichTopic2: @ 827C0DA +LilycoveCity_ContestLobby_Text_WhichTopic2: .string "Which topic would you like?$" -LilycoveCity_ContestLobby_Text_EnterContest3: @ 827C0F6 +LilycoveCity_ContestLobby_Text_EnterContest3: .string "Would you like to enter a CONTEST?$" -LilycoveCity_ContestLobby_Text_EnterWhichContest3: @ 827C119 +LilycoveCity_ContestLobby_Text_EnterWhichContest3: .string "Which CONTEST would you like to enter?$" -LilycoveCity_ContestLobby_Text_MonInNoCondition2: @ 827C140 +LilycoveCity_ContestLobby_Text_MonInNoCondition2: .string "Your POKéMON appears to be in no\n" .string "condition to take part in a CONTEST…$" -LilycoveCity_ContestLobby_Text_EggCannotTakePart2: @ 827C186 +LilycoveCity_ContestLobby_Text_EggCannotTakePart2: .string "I'm sorry, but an EGG cannot take part\n" .string "in a POKéMON CONTEST.$" -LilycoveCity_ContestLobby_Text_EnterWhichPokemon3: @ 827C1C3 +LilycoveCity_ContestLobby_Text_EnterWhichPokemon3: .string "Which POKéMON would you like to enter?$" -LilycoveCity_ContestLobby_Text_PleaseDecideLinkLeader: @ 827C1EA +LilycoveCity_ContestLobby_Text_PleaseDecideLinkLeader: .string "Please decide which of you will\n" .string "become the GROUP LEADER.\p" .string "The other players must then choose\n" .string "“JOIN GROUP.”$" -LilycoveCity_ContestLobby_Text_PlayerAt4PCounterUseGMode: @ 827C254 +LilycoveCity_ContestLobby_Text_PlayerAt4PCounterUseGMode: .string "At least one player has entered using\n" .string "the 4-player reception counter.\p" .string "There must be four players connected\n" @@ -1812,7 +1812,7 @@ LilycoveCity_ContestLobby_Text_PlayerAt4PCounterUseGMode: @ 827C254 .string "select G-MODE (GLOBAL MODE),\l" .string "then register to enter again, please.$" -LilycoveCity_ContestLobby_Text_ExplainLinkContest: @ 827C340 +LilycoveCity_ContestLobby_Text_ExplainLinkContest: .string "This is a CONTEST for two to four\n" .string "players linked using a Wireless\l" .string "Adapter or a GBA Game Link cable.\p" @@ -1833,7 +1833,7 @@ LilycoveCity_ContestLobby_Text_ExplainLinkContest: @ 827C340 .string "After that, a CONTEST will start in\n" .string "the usual manner.$" -LilycoveCity_ContestLobby_Text_ExplainEMode: @ 827C5B1 +LilycoveCity_ContestLobby_Text_ExplainEMode: .string "In E-MODE (EMERALD MODE),\n" .string "a LINK CONTEST can be held with\l" .string "two to four players. Each player must\l" @@ -1847,7 +1847,7 @@ LilycoveCity_ContestLobby_Text_ExplainEMode: @ 827C5B1 .string "Please be aware that E-MODE is not\n" .string "available in POKéMON Ruby or Sapphire.$" -LilycoveCity_ContestLobby_Text_ExplainGMode: @ 827C742 +LilycoveCity_ContestLobby_Text_ExplainGMode: .string "G-MODE (GLOBAL MODE) is specifically\n" .string "for four players who are linked using\l" .string "GBA Game Link cables.\p" @@ -1858,50 +1858,50 @@ LilycoveCity_ContestLobby_Text_ExplainGMode: @ 827C742 .string "enter through the 4-player reception\l" .string "counter (POKéMON Ruby or Sapphire).$" -LilycoveCity_ContestLobby_Text_NoWirelessAdapterInGMode: @ 827C879 +LilycoveCity_ContestLobby_Text_NoWirelessAdapterInGMode: .string "I'm terribly sorry.\p" .string "G-MODE does not function\n" .string "with Wireless Adapters.\p" .string "Please select E-MODE or try\n" .string "again using a GBA Game Link cable.$" -LilycoveCity_ContestLobby_Text_WhichContestMode: @ 827C8FD +LilycoveCity_ContestLobby_Text_WhichContestMode: .string "Which CONTEST MODE would you like\n" .string "to enter?$" -ContestHall_Text_GettingStartedWireless: @ 827C929 +ContestHall_Text_GettingStartedWireless: .string "MC: Hello! We're just getting started\n" .string "with a 4-player linked POKéMON\l" .string "{STR_VAR_2}!$" -ContestHall_Text_ParticipantsAsFollows: @ 827C972 +ContestHall_Text_ParticipantsAsFollows: .string "The participating TRAINERS and their\n" .string "POKéMON are as follows:$" -ContestHall_Text_WeveSeenContestants: @ 827C9AF +ContestHall_Text_WeveSeenContestants: .string "MC: We've just seen the four POKéMON\n" .string "contestants.\p" .string "Now it's time for primary judging!$" -ContestHall_Text_AudienceWillVote: @ 827CA04 +ContestHall_Text_AudienceWillVote: .string "The audience will vote on their\n" .string "favorite POKéMON contestants.$" -ContestHall_Text_LetVotingBegin: @ 827CA42 +ContestHall_Text_LetVotingBegin: .string "Without any further ado,\n" .string "let the voting begin!$" -ContestHall_Text_VotingComplete: @ 827CA71 +ContestHall_Text_VotingComplete: .string "Voting is now complete!\p" .string "While the votes are being tallied,\n" .string "let's move on to secondary judging!$" -ContestHall_Text_SecondStageOfJudging: @ 827CAD0 +ContestHall_Text_SecondStageOfJudging: .string "The second stage of judging is\n" .string "the much-anticipated appeal time!\p" .string "May the contestants amaze us with\n" .string "superb appeals of dazzling moves!$" -ContestHall_Text_LetsAppeal: @ 827CB55 +ContestHall_Text_LetsAppeal: .string "Let's see a little enthusiasm!\n" .string "Let's appeal!$" diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index ea85525105..f5c023147b 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -1,6 +1,6 @@ .set LOCALID_DAYCARE_LADY, 1 -Route117_EventScript_DaycareMan:: @ 8291C18 +Route117_EventScript_DaycareMan:: lock faceplayer special GetDaycareMonNicknames @@ -15,7 +15,7 @@ Route117_EventScript_DaycareMan:: @ 8291C18 release end -Route117_EventScript_DaycareEggWaiting:: @ 8291C4D +Route117_EventScript_DaycareEggWaiting:: msgbox Route117_Text_DoYouWantEgg, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq Route117_EventScript_DaycareAcceptEgg @@ -28,7 +28,7 @@ Route117_EventScript_DaycareEggWaiting:: @ 8291C4D release end -Route117_EventScript_DaycareAcceptEgg:: @ 8291C83 +Route117_EventScript_DaycareAcceptEgg:: specialvar VAR_RESULT, CalculatePlayerPartyCount compare VAR_RESULT, PARTY_SIZE goto_if_ne Route117_EventScript_DaycareReceiveEgg @@ -36,7 +36,7 @@ Route117_EventScript_DaycareAcceptEgg:: @ 8291C83 release end -Route117_EventScript_DaycareReceiveEgg:: @ 8291C9D +Route117_EventScript_DaycareReceiveEgg:: message Route117_Text_ReceivedEgg playfanfare MUS_LEVEL_UP waitfanfare @@ -47,17 +47,17 @@ Route117_EventScript_DaycareReceiveEgg:: @ 8291C9D release end -Route117_EventScript_CheckMonReceivedMail:: @ 8291CB7 +Route117_EventScript_CheckMonReceivedMail:: specialvar VAR_RESULT, CheckDaycareMonReceivedMail compare VAR_RESULT, 1 call_if_eq Route117_EventScript_MonReceivedMail return -Route117_EventScript_MonReceivedMail:: @ 8291CC8 +Route117_EventScript_MonReceivedMail:: msgbox Route117_Text_FriendlyWithOtherTrainersMon, MSGBOX_DEFAULT return -Route117_EventScript_CheckOnOneMon:: @ 8291CD1 +Route117_EventScript_CheckOnOneMon:: special GetDaycareMonNicknames msgbox Route117_Text_YourMonIsDoingFine, MSGBOX_DEFAULT setvar VAR_0x8004, 0 @@ -65,7 +65,7 @@ Route117_EventScript_CheckOnOneMon:: @ 8291CD1 release end -Route117_EventScript_CheckOnTwoMons:: @ 8291CE8 +Route117_EventScript_CheckOnTwoMons:: special GetDaycareMonNicknames msgbox Route117_Text_YourMonsAreDoingFine, MSGBOX_DEFAULT special SetDaycareCompatibilityString @@ -79,7 +79,7 @@ Route117_EventScript_CheckOnTwoMons:: @ 8291CE8 release end -Route117_PokemonDayCare_EventScript_DaycareWoman:: @ 8291D11 +Route117_PokemonDayCare_EventScript_DaycareWoman:: lock faceplayer specialvar VAR_RESULT, GetDaycareState @@ -96,7 +96,7 @@ Route117_PokemonDayCare_EventScript_DaycareWoman:: @ 8291D11 release end -Route117_PokemonDayCare_EventScript_GiveMonToRaise:: @ 8291D56 +Route117_PokemonDayCare_EventScript_GiveMonToRaise:: specialvar VAR_RESULT, CountPartyNonEggMons compare VAR_RESULT, 1 goto_if_eq Route117_PokemonDayCare_EventScript_OnlyOneMon @@ -125,49 +125,49 @@ Route117_PokemonDayCare_EventScript_GiveMonToRaise:: @ 8291D56 release end -Route117_PokemonDayCare_EventScript_ComeAgain:: @ 8291DCA +Route117_PokemonDayCare_EventScript_ComeAgain:: msgbox Route117_PokemonDayCare_Text_ComeAgain, MSGBOX_DEFAULT release end -Route117_PokemonDayCare_EventScript_CanRaiseOneMore:: @ 8291DD4 +Route117_PokemonDayCare_EventScript_CanRaiseOneMore:: msgbox Route117_PokemonDayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq Route117_PokemonDayCare_EventScript_GiveMonToRaise goto Route117_PokemonDayCare_EventScript_ComeAgain end -Route117_PokemonDayCare_EventScript_OnlyOneMon:: @ 8291DED +Route117_PokemonDayCare_EventScript_OnlyOneMon:: msgbox Route117_PokemonDayCare_Text_YouHaveJustOneMon, MSGBOX_DEFAULT release end -Route117_PokemonDayCare_EventScript_OnlyOneAliveMon:: @ 8291DF7 +Route117_PokemonDayCare_EventScript_OnlyOneAliveMon:: msgbox Route117_PokemonDayCare_Text_WhatWillYouBattleWith, MSGBOX_DEFAULT release end -Route117_PokemonDayCare_EventScript_OnlyTwoAliveMons:: @ 8291E01 +Route117_PokemonDayCare_EventScript_OnlyTwoAliveMons:: msgbox Route117_PokemonDayCare_Text_YoullBeLeftWithJustOne, MSGBOX_DEFAULT release end -Route117_PokemonDayCare_EventScript_EggWaiting:: @ 8291E0B +Route117_PokemonDayCare_EventScript_EggWaiting:: msgbox Route117_PokemonDayCare_Text_HusbandWasLookingForYou, MSGBOX_DEFAULT release end -Route117_PokemonDayCare_EventScript_YourMonHasGrownXLevels:: @ 8291E15 +Route117_PokemonDayCare_EventScript_YourMonHasGrownXLevels:: msgbox Route117_PokemonDayCare_Text_YourMonHasGrownXLevels, MSGBOX_DEFAULT return -Route117_PokemonDayCare_EventScript_DisplayLevelsGained:: @ 8291E1E +Route117_PokemonDayCare_EventScript_DisplayLevelsGained:: specialvar VAR_RESULT, GetNumLevelsGainedFromDaycare compare VAR_RESULT, 0 call_if_ne Route117_PokemonDayCare_EventScript_YourMonHasGrownXLevels return -Route117_PokemonDayCare_EventScript_OneMonInDaycare:: @ 8291E2F +Route117_PokemonDayCare_EventScript_OneMonInDaycare:: msgbox Route117_PokemonDayCare_Text_GoodToSeeYou, MSGBOX_DEFAULT setvar VAR_0x8004, 0 call Route117_PokemonDayCare_EventScript_DisplayLevelsGained @@ -180,7 +180,7 @@ Route117_PokemonDayCare_EventScript_OneMonInDaycare:: @ 8291E2F goto Route117_PokemonDayCare_EventScript_ComeAgain end -Route117_PokemonDayCare_EventScript_TryRetrieveMon:: @ 8291E6D +Route117_PokemonDayCare_EventScript_TryRetrieveMon:: specialvar VAR_RESULT, CalculatePlayerPartyCount compare VAR_RESULT, PARTY_SIZE goto_if_eq Route117_PokemonDayCare_EventScript_NoRoom @@ -196,7 +196,7 @@ Route117_PokemonDayCare_EventScript_TryRetrieveMon:: @ 8291E6D goto Route117_PokemonDayCare_EventScript_CostPrompt end -Route117_PokemonDayCare_EventScript_CostPrompt:: @ 8291EAC +Route117_PokemonDayCare_EventScript_CostPrompt:: special GetDaycareCost msgbox Route117_PokemonDayCare_Text_ItWillCostX, MSGBOX_YESNO compare VAR_RESULT, YES @@ -204,7 +204,7 @@ Route117_PokemonDayCare_EventScript_CostPrompt:: @ 8291EAC goto Route117_PokemonDayCare_EventScript_ComeAgain end -Route117_PokemonDayCare_EventScript_CheckEnoughMoney:: @ 8291EC8 +Route117_PokemonDayCare_EventScript_CheckEnoughMoney:: specialvar VAR_RESULT, IsEnoughForCostInVar0x8005 compare VAR_RESULT, 1 goto_if_eq Route117_PokemonDayCare_EventScript_RetrieveMon @@ -212,7 +212,7 @@ Route117_PokemonDayCare_EventScript_CheckEnoughMoney:: @ 8291EC8 release end -Route117_PokemonDayCare_EventScript_RetrieveMon:: @ 8291EE2 +Route117_PokemonDayCare_EventScript_RetrieveMon:: applymovement LOCALID_DAYCARE_LADY, Route117_PokemonDayCare_Movement_RetrieveDaycareMon waitmovement 0 specialvar VAR_RESULT, TakePokemonFromDaycare @@ -229,19 +229,19 @@ Route117_PokemonDayCare_EventScript_RetrieveMon:: @ 8291EE2 goto Route117_PokemonDayCare_EventScript_ComeAgain end -Route117_PokemonDayCare_EventScript_AskRetrieveOtherMon:: @ 8291F24 +Route117_PokemonDayCare_EventScript_AskRetrieveOtherMon:: msgbox Route117_PokemonDayCare_Text_TakeOtherOneBackToo, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq Route117_PokemonDayCare_EventScript_TryRetrieveMon goto Route117_PokemonDayCare_EventScript_ComeAgain end -Route117_PokemonDayCare_EventScript_NoRoom:: @ 8291F3D +Route117_PokemonDayCare_EventScript_NoRoom:: msgbox Route117_PokemonDayCare_Text_YourTeamIsFull, MSGBOX_DEFAULT release end -Route117_PokemonDayCare_Movement_RetrieveDaycareMon: @ 8291F47 +Route117_PokemonDayCare_Movement_RetrieveDaycareMon: delay_16 delay_16 face_left @@ -264,10 +264,10 @@ Route117_PokemonDayCare_Movement_RetrieveDaycareMon: @ 8291F47 step_end @ Unused. Possibly a commented script, or a typo end added to the above Movement script -Route117_PokemonDayCare_EventScript_UnusedEnd:: @ 8291F5B +Route117_PokemonDayCare_EventScript_UnusedEnd:: end -Route117_PokemonDayCare_EventScript_TwoMonsInDaycare:: @ 8291F5C +Route117_PokemonDayCare_EventScript_TwoMonsInDaycare:: msgbox Route117_PokemonDayCare_Text_GoodToSeeYou, MSGBOX_DEFAULT setvar VAR_0x8004, 0 call Route117_PokemonDayCare_EventScript_DisplayLevelsGained @@ -281,7 +281,7 @@ Route117_PokemonDayCare_EventScript_TwoMonsInDaycare:: @ 8291F5C end @ Unused -Route117_PokemonDayCare_EventScript_UnusedRetrieveMon:: @ 8291F95 +Route117_PokemonDayCare_EventScript_UnusedRetrieveMon:: special ShowDaycareLevelMenu waitstate compare VAR_RESULT, 2 @@ -293,7 +293,7 @@ Route117_PokemonDayCare_EventScript_UnusedRetrieveMon:: @ 8291F95 release end -EventScript_EggHatch:: @ 8291FC0 +EventScript_EggHatch:: lockall msgbox Text_EggHatchHuh, MSGBOX_DEFAULT special EggHatch @@ -301,14 +301,14 @@ EventScript_EggHatch:: @ 8291FC0 releaseall end -Route117_Text_SeeWifeIfYoudLikeMeToRaiseMon: @ 8291FCF +Route117_Text_SeeWifeIfYoudLikeMeToRaiseMon: .string "I'm the DAY-CARE MAN.\p" .string "I help take care of the precious\n" .string "POKéMON of TRAINERS.\p" .string "If you'd like me to raise your POKéMON,\n" .string "have a word with my wife.$" -Route117_Text_DoYouWantEgg: @ 829205D +Route117_Text_DoYouWantEgg: .string "Ah, it's you!\p" .string "We were raising your POKéMON,\n" .string "and my goodness, were we surprised!\p" @@ -317,26 +317,26 @@ Route117_Text_DoYouWantEgg: @ 829205D .string "but your POKéMON had it.\p" .string "You do want it, yes?$" -Route117_Text_YourMonIsDoingFine: @ 8292114 +Route117_Text_YourMonIsDoingFine: .string "Ah, it's you! Good to see you.\n" .string "Your {STR_VAR_1}'s doing fine.$" -Route117_Text_IllKeepIt: @ 8292149 +Route117_Text_IllKeepIt: .string "Well then, I'll keep it.\n" .string "Thanks!$" -Route117_Text_YouHaveNoRoomForIt: @ 829216A +Route117_Text_YouHaveNoRoomForIt: .string "You have no room for it…\n" .string "Come back when you've made room.$" -Route117_Text_ReceivedEgg: @ 82921A4 +Route117_Text_ReceivedEgg: .string "{PLAYER} received the EGG from\n" .string "the DAY-CARE MAN.$" -Route117_Text_TakeGoodCareOfIt: @ 82921CF +Route117_Text_TakeGoodCareOfIt: .string "Take good care of it.$" -Route117_Text_FriendlyWithOtherTrainersMon: @ 82921E5 +Route117_Text_FriendlyWithOtherTrainersMon: .string "By the way, about your {STR_VAR_1},\n" .string "it seemed to be friendly with\l" .string "{STR_VAR_2}'s {STR_VAR_3}.\p" @@ -344,99 +344,99 @@ Route117_Text_FriendlyWithOtherTrainersMon: @ 82921E5 .string "a piece of MAIL.$" @ Unused -Route117_Text_SeeWifeIfYouWantToPickUpMon: @ 829225A +Route117_Text_SeeWifeIfYouWantToPickUpMon: .string "If you want to pick up your POKéMON,\n" .string "have a word with my wife.$" -Route117_Text_YourMonsAreDoingFine: @ 8292299 +Route117_Text_YourMonsAreDoingFine: .string "Ah, it's you! Your {STR_VAR_1} and\n" .string "{STR_VAR_2} are doing fine.$" -Route117_Text_IWillKeepDoYouWantIt: @ 82922C6 +Route117_Text_IWillKeepDoYouWantIt: .string "I really will keep it.\n" .string "You do want this, yes?$" -Route117_PokemonDayCare_Text_WouldYouLikeUsToRaiseAMon: @ 82922F4 +Route117_PokemonDayCare_Text_WouldYouLikeUsToRaiseAMon: .string "I'm the DAY-CARE LADY.\p" .string "We can raise POKéMON for you.\p" .string "Would you like us to raise one?$" -Route117_PokemonDayCare_Text_WhichMonShouldWeRaise: @ 8292349 +Route117_PokemonDayCare_Text_WhichMonShouldWeRaise: .string "Which POKéMON should we raise for\n" .string "you?$" -Route117_PokemonDayCare_Text_WellRaiseYourMon: @ 8292370 +Route117_PokemonDayCare_Text_WellRaiseYourMon: .string "Fine, we'll raise your {STR_VAR_1}\n" .string "for a while.\p" .string "Come back for it later.$" -Route117_PokemonDayCare_Text_WeCanRaiseOneMore: @ 82923AF +Route117_PokemonDayCare_Text_WeCanRaiseOneMore: .string "We can raise two of your POKéMON.\n" .string "Would you like us to raise one more?$" -Route117_PokemonDayCare_Text_HusbandWasLookingForYou: @ 82923F6 +Route117_PokemonDayCare_Text_HusbandWasLookingForYou: .string "My husband was looking for you.$" -Route117_PokemonDayCare_Text_FineThenComeAgain: @ 8292416 +Route117_PokemonDayCare_Text_FineThenComeAgain: .string "Oh, fine, then.\n" .string "Come again.$" -Route117_PokemonDayCare_Text_NotEnoughMoney: @ 8292432 +Route117_PokemonDayCare_Text_NotEnoughMoney: .string "You don't have enough money…$" -Route117_PokemonDayCare_Text_TakeOtherOneBackToo: @ 829244F +Route117_PokemonDayCare_Text_TakeOtherOneBackToo: .string "Will you take back the other one,\n" .string "too?$" -Route117_PokemonDayCare_Text_ComeAgain: @ 8292476 +Route117_PokemonDayCare_Text_ComeAgain: .string "Fine.\n" .string "Come again.$" -Route117_PokemonDayCare_Text_GoodToSeeYou: @ 8292488 +Route117_PokemonDayCare_Text_GoodToSeeYou: .string "Ah, it's you! Good to see you.\n" .string "Your POKéMON can only be doing good!$" -Route117_PokemonDayCare_Text_YourMonHasGrownXLevels: @ 82924CC +Route117_PokemonDayCare_Text_YourMonHasGrownXLevels: .string "By level, your {STR_VAR_1} has\n" .string "grown by {STR_VAR_2}.$" -Route117_PokemonDayCare_Text_YourTeamIsFull: @ 82924EF +Route117_PokemonDayCare_Text_YourTeamIsFull: .string "Your POKéMON team is full.\n" .string "Make room, then come see me.$" @ Unused -Route117_PokemonDayCare_Text_TakeBackWhichMon: @ 8292527 +Route117_PokemonDayCare_Text_TakeBackWhichMon: .string "Which POKéMON will you take back?$" -Route117_PokemonDayCare_Text_ItWillCostX: @ 8292549 +Route117_PokemonDayCare_Text_ItWillCostX: .string "If you want your {STR_VAR_1} back,\n" .string "it will cost ¥{STR_VAR_2}.$" -Route117_PokemonDayCare_Text_HeresYourMon: @ 8292575 +Route117_PokemonDayCare_Text_HeresYourMon: .string "Perfect!\n" .string "Here's your POKéMON.$" -Route117_PokemonDayCare_Text_TookBackMon: @ 8292593 +Route117_PokemonDayCare_Text_TookBackMon: .string "{PLAYER} took back {STR_VAR_1} from\n" .string "the DAY-CARE LADY.$" -Route117_PokemonDayCare_Text_YouHaveJustOneMon: @ 82925BB +Route117_PokemonDayCare_Text_YouHaveJustOneMon: .string "Oh? But you have just one\n" .string "POKéMON.\p" .string "Come back another time.$" -Route117_PokemonDayCare_Text_TakeYourMonBack: @ 82925F6 +Route117_PokemonDayCare_Text_TakeYourMonBack: .string "Will you take your POKéMON back?$" -Route117_PokemonDayCare_Text_WhatWillYouBattleWith: @ 8292617 +Route117_PokemonDayCare_Text_WhatWillYouBattleWith: .string "If you leave me that POKéMON,\n" .string "what will you battle with?\p" .string "Come back another time.$" -Text_EggHatchHuh: @ 8292668 +Text_EggHatchHuh: .string "Huh?$" -Route117_PokemonDayCare_Text_YoullBeLeftWithJustOne: @ 829266D +Route117_PokemonDayCare_Text_YoullBeLeftWithJustOne: .string "Huh?\n" .string "Now, now.\p" .string "If you leave that POKéMON with\n" diff --git a/data/scripts/elite_four.inc b/data/scripts/elite_four.inc index f4eb6393b8..0ae319061a 100644 --- a/data/scripts/elite_four.inc +++ b/data/scripts/elite_four.inc @@ -1,4 +1,4 @@ -PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles:: @ 82723F8 +PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_Delay32 waitmovement 0 playse SE_DOOR @@ -17,7 +17,7 @@ PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles:: @ 82723F8 special DrawWholeMapView return -PokemonLeague_EliteFour_EventScript_WalkInCloseDoor:: @ 8272475 +PokemonLeague_EliteFour_EventScript_WalkInCloseDoor:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkUp6 waitmovement 0 playse SE_TRUCK_DOOR @@ -31,7 +31,7 @@ PokemonLeague_EliteFour_EventScript_WalkInCloseDoor:: @ 8272475 return @ Essentially unused, only necessary when re-entering an Elite Four room after defeating the member, which isnt normally possible -PokemonLeague_EliteFour_EventScript_ResetAdvanceToNextRoom:: @ 82724BC +PokemonLeague_EliteFour_EventScript_ResetAdvanceToNextRoom:: setmetatile 6, 1, METATILE_EliteFour_OpenDoor_Frame, 0 setmetatile 6, 2, METATILE_EliteFour_OpenDoor_Opening, 0 setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 @@ -52,7 +52,7 @@ PokemonLeague_EliteFour_EventScript_ResetAdvanceToNextRoom:: @ 82724BC setmetatile 12, 2, METATILE_EliteFour_LeftSpotlightOff, 1 return -PokemonLeague_EliteFour_EventScript_CloseDoor:: @ 827255F +PokemonLeague_EliteFour_EventScript_CloseDoor:: setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index 2d689348b0..b81ca21dd1 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -1,5 +1,5 @@ @ Interact with cuttable tree -EventScript_CutTree:: @ 82906BB +EventScript_CutTree:: lockall goto_if_unset FLAG_BADGE01_GET, EventScript_CheckTreeCantCut checkpartymove MOVE_CUT @@ -19,48 +19,48 @@ EventScript_CutTree:: @ 82906BB end @ Use cut from party menu -EventScript_UseCut:: @ 8290705 +EventScript_UseCut:: lockall dofieldeffect FLDEFF_USE_CUT_ON_TREE waitstate goto EventScript_CutTreeDown end -EventScript_CutTreeDown:: @ 8290710 +EventScript_CutTreeDown:: applymovement VAR_LAST_TALKED, Movement_CutTreeDown waitmovement 0 removeobject VAR_LAST_TALKED releaseall end -Movement_CutTreeDown: @ 829071F +Movement_CutTreeDown: cut_tree step_end -EventScript_CheckTreeCantCut:: @ 8290721 +EventScript_CheckTreeCantCut:: msgbox Text_CantCut, MSGBOX_DEFAULT releaseall end -EventScript_CancelCut:: @ 829072B +EventScript_CancelCut:: closemessage releaseall end -Text_WantToCut: @ 829072E +Text_WantToCut: .string "This tree looks like it can be\n" .string "CUT down!\p" .string "Would you like to CUT it?$" -Text_MonUsedFieldMove: @ 8290771 +Text_MonUsedFieldMove: .string "{STR_VAR_1} used {STR_VAR_2}!$" -Text_CantCut: @ 829077D +Text_CantCut: .string "This tree looks like it can be\n" .string "CUT down!$" @ Interact with smashable rock -EventScript_RockSmash:: @ 82907A6 +EventScript_RockSmash:: lockall goto_if_unset FLAG_BADGE03_GET, EventScript_CantSmashRock checkpartymove MOVE_ROCK_SMASH @@ -80,14 +80,14 @@ EventScript_RockSmash:: @ 82907A6 end @ Use rock smash from party menu -EventScript_UseRockSmash:: @ 82907F0 +EventScript_UseRockSmash:: lockall dofieldeffect FLDEFF_USE_ROCK_SMASH waitstate goto EventScript_SmashRock end -EventScript_SmashRock:: @ 82907FB +EventScript_SmashRock:: applymovement VAR_LAST_TALKED, Movement_SmashRock waitmovement 0 removeobject VAR_LAST_TALKED @@ -101,33 +101,33 @@ EventScript_SmashRock:: @ 82907FB releaseall end -EventScript_EndSmash:: @ 8290829 +EventScript_EndSmash:: releaseall end -Movement_SmashRock: @ 829082B +Movement_SmashRock: rock_smash_break step_end -EventScript_CantSmashRock:: @ 829082D +EventScript_CantSmashRock:: msgbox Text_CantSmash, MSGBOX_DEFAULT releaseall end -EventScript_CancelSmash:: @ 8290837 +EventScript_CancelSmash:: closemessage releaseall end -Text_WantToSmash: @ 829083A +Text_WantToSmash: .string "This rock appears to be breakable.\n" .string "Would you like to use ROCK SMASH?$" -Text_CantSmash: @ 829087F +Text_CantSmash: .string "It's a rugged rock, but a POKéMON\n" .string "may be able to smash it.$" -EventScript_StrengthBoulder:: @ 82908BA +EventScript_StrengthBoulder:: lockall goto_if_unset FLAG_BADGE04_GET, EventScript_CantStrength goto_if_set FLAG_SYS_USE_STRENGTH, EventScript_CheckActivatedBoulder @@ -144,53 +144,53 @@ EventScript_StrengthBoulder:: @ 82908BA goto EventScript_ActivateStrength end -EventScript_UseStrength:: @ 82908FD +EventScript_UseStrength:: lockall dofieldeffect FLDEFF_USE_STRENGTH waitstate goto EventScript_ActivateStrength end -EventScript_ActivateStrength:: @ 8290908 +EventScript_ActivateStrength:: setflag FLAG_SYS_USE_STRENGTH msgbox Text_MonUsedStrength, MSGBOX_DEFAULT releaseall end -EventScript_CantStrength:: @ 8290915 +EventScript_CantStrength:: msgbox Text_CantStrength, MSGBOX_DEFAULT releaseall end -EventScript_CheckActivatedBoulder:: @ 829091F +EventScript_CheckActivatedBoulder:: msgbox Text_StrengthActivated, MSGBOX_DEFAULT releaseall end -EventScript_CancelStrength:: @ 8290929 +EventScript_CancelStrength:: closemessage releaseall end -Text_WantToStrength: @ 829092C +Text_WantToStrength: .string "It's a big boulder, but a POKéMON\n" .string "may be able to push it aside.\p" .string "Would you like to use STRENGTH?$" -Text_MonUsedStrength: @ 829098C +Text_MonUsedStrength: .string "{STR_VAR_1} used STRENGTH!\p" .string "{STR_VAR_1}'s STRENGTH made it\n" .string "possible to move boulders around!$" -Text_CantStrength: @ 82909D6 +Text_CantStrength: .string "It's a big boulder, but a POKéMON\n" .string "may be able to push it aside.$" -Text_StrengthActivated: @ 8290A16 +Text_StrengthActivated: .string "STRENGTH made it possible to move\n" .string "boulders around.$" -EventScript_UseWaterfall:: @ 8290A49 +EventScript_UseWaterfall:: lockall checkpartymove MOVE_WATERFALL compare VAR_RESULT, PARTY_SIZE @@ -204,28 +204,28 @@ EventScript_UseWaterfall:: @ 8290A49 dofieldeffect FLDEFF_USE_WATERFALL goto EventScript_EndWaterfall -EventScript_CannotUseWaterfall:: @ 8290A83 +EventScript_CannotUseWaterfall:: lockall -EventScript_CantWaterfall:: @ 8290A84 +EventScript_CantWaterfall:: msgbox Text_CantWaterfall, MSGBOX_DEFAULT -EventScript_EndWaterfall:: @ 8290A8C +EventScript_EndWaterfall:: releaseall end -Text_CantWaterfall: @ 8290A8E +Text_CantWaterfall: .string "A wall of water is crashing down with\n" .string "a mighty roar.$" -Text_WantToWaterfall: @ 8290AC3 +Text_WantToWaterfall: .string "It's a large waterfall.\n" .string "Would you like to use WATERFALL?$" -Text_MonUsedWaterfall: @ 8290AFC +Text_MonUsedWaterfall: .string "{STR_VAR_1} used WATERFALL.$" -EventScript_UseDive:: @ 8290B0F +EventScript_UseDive:: lockall checkpartymove MOVE_DIVE compare VAR_RESULT, PARTY_SIZE @@ -241,16 +241,16 @@ EventScript_UseDive:: @ 8290B0F goto EventScript_EndDive end -EventScript_CantDive:: @ 8290B4E +EventScript_CantDive:: msgbox Text_CantDive, MSGBOX_DEFAULT releaseall end -EventScript_EndDive:: @ 8290B58 +EventScript_EndDive:: releaseall end -EventScript_UseDiveUnderwater:: @ 8290B5A +EventScript_UseDiveUnderwater:: lockall checkpartymove MOVE_DIVE compare VAR_RESULT, PARTY_SIZE @@ -266,38 +266,38 @@ EventScript_UseDiveUnderwater:: @ 8290B5A goto EventScript_EndSurface end -EventScript_CantSurface:: @ 8290B99 +EventScript_CantSurface:: lockall msgbox Text_CantSurface, MSGBOX_DEFAULT goto EventScript_EndSurface end -EventScript_EndSurface:: @ 8290BA8 +EventScript_EndSurface:: releaseall end -Text_CantDive: @ 8290BAA +Text_CantDive: .string "The sea is deep here. A POKéMON\n" .string "may be able to go underwater.$" -Text_WantToDive: @ 8290BE8 +Text_WantToDive: .string "The sea is deep here.\n" .string "Would you like to use DIVE?$" -Text_MonUsedDive: @ 8290C1A +Text_MonUsedDive: .string "{STR_VAR_1} used DIVE.$" -Text_CantSurface: @ 8290C28 +Text_CantSurface: .string "Light is filtering down from above.\n" .string "A POKéMON may be able to surface.$" -Text_WantToSurface: @ 8290C6E +Text_WantToSurface: .string "Light is filtering down from above.\n" .string "Would you like to use DIVE?$" -EventScript_FailSweetScent:: @ 8290CAE +EventScript_FailSweetScent:: msgbox Text_FailSweetScent, MSGBOX_SIGN end -Text_FailSweetScent: @ 8290CB7 +Text_FailSweetScent: .string "Looks like there's nothing here…$" diff --git a/data/scripts/field_poison.inc b/data/scripts/field_poison.inc index 3ce36b3843..a4f9b90b6b 100644 --- a/data/scripts/field_poison.inc +++ b/data/scripts/field_poison.inc @@ -1,4 +1,4 @@ -EventScript_FieldPoison:: @ 82736BC +EventScript_FieldPoison:: lockall special TryFieldPoisonWhiteOut waitstate @@ -9,7 +9,7 @@ EventScript_FieldPoison:: @ 82736BC releaseall end -EventScript_FieldWhiteOut:: @ 82736D9 +EventScript_FieldWhiteOut:: message gText_PlayerWhitedOut waitmessage waitbuttonpress @@ -21,11 +21,11 @@ EventScript_FieldWhiteOut:: @ 82736D9 waitstate end -EventScript_SetRespawnLavaridgePkmnCenter:: @ 82736F4 +EventScript_SetRespawnLavaridgePkmnCenter:: setrespawn HEAL_LOCATION_LAVARIDGE_TOWN return -EventScript_FrontierFieldWhiteOut:: @ 82736F8 +EventScript_FrontierFieldWhiteOut:: message gText_PlayerWhitedOut waitmessage waitbuttonpress diff --git a/data/scripts/flash.inc b/data/scripts/flash.inc index bb4ae84eb5..a69975a165 100644 --- a/data/scripts/flash.inc +++ b/data/scripts/flash.inc @@ -1,4 +1,4 @@ -EventScript_UseFlash:: @ 82926F8 +EventScript_UseFlash:: animateflash 1 setflashradius 1 end diff --git a/data/scripts/gabby_and_ty.inc b/data/scripts/gabby_and_ty.inc index 84cd315f7d..baee6c96fd 100644 --- a/data/scripts/gabby_and_ty.inc +++ b/data/scripts/gabby_and_ty.inc @@ -1,20 +1,7 @@ -@ Unused -EventScript_28CCAA:: @ 828CCAA - setvar VAR_0x8005, 8 - special InterviewBefore - compare VAR_RESULT, 1 - goto_if_eq EventScript_UnusedRet - setvar VAR_0x8005, 8 - special InterviewAfter - return - -EventScript_UnusedRet:: @ 828CCC6 - return - @ Gabby and Ty always move to the same spots for the first 5 battles @ From the 6th battle onwards, they move randomly between locations 6-8 -@ Note: The local IDs of Gabby and Ty are hard-coded in GabbyAndTySetScriptVarsToObjectEventLocalIds -GabbyAndTy_EventScript_UpdateLocation:: @ 828CCC7 +@ Note: The local IDs of Gabby and Ty are hard-coded in GetGabbyAndTyLocalIds +GabbyAndTy_EventScript_UpdateLocation:: cleartrainerflag TRAINER_GABBY_AND_TY_6 specialvar VAR_RESULT, GabbyAndTyGetBattleNum switch VAR_RESULT @@ -29,189 +16,189 @@ GabbyAndTy_EventScript_UpdateLocation:: @ 828CCC7 case 8, GabbyAndTy_EventScript_MoveForBattle9 end -GabbyAndTy_EventScript_MoveForBattle1:: @ 828CD38 +GabbyAndTy_EventScript_MoveForBattle1:: call GabbyAndTy_EventScript_ShowAtRoute111_1 return -GabbyAndTy_EventScript_MoveForBattle2:: @ 828CD3E +GabbyAndTy_EventScript_MoveForBattle2:: call GabbyAndTy_EventScript_ShowAtRoute118_1 call GabbyAndTy_EventScript_HideAtRoute111_1 return -GabbyAndTy_EventScript_MoveForBattle3:: @ 828CD49 +GabbyAndTy_EventScript_MoveForBattle3:: call GabbyAndTy_EventScript_ShowAtRoute120_1 call GabbyAndTy_EventScript_HideAtRoute118_1 return -GabbyAndTy_EventScript_MoveForBattle4:: @ 828CD54 +GabbyAndTy_EventScript_MoveForBattle4:: call GabbyAndTy_EventScript_ShowAtRoute111_3 call GabbyAndTy_EventScript_HideAtRoute120_1 return -GabbyAndTy_EventScript_MoveForBattle5:: @ 828CD5F +GabbyAndTy_EventScript_MoveForBattle5:: call GabbyAndTy_EventScript_ShowAtRoute118_2 call GabbyAndTy_EventScript_HideAtRoute111_3 return -GabbyAndTy_EventScript_MoveForBattle6:: @ 828CD6A +GabbyAndTy_EventScript_MoveForBattle6:: call GabbyAndTy_EventScript_ShowAtRoute120_2 call GabbyAndTy_EventScript_HideAtRoute118_2 return -GabbyAndTy_EventScript_MoveForBattle7:: @ 828CD75 +GabbyAndTy_EventScript_MoveForBattle7:: call GabbyAndTy_EventScript_ShowAtRoute111_2 call GabbyAndTy_EventScript_HideAtRoute120_2 return -GabbyAndTy_EventScript_MoveForBattle8:: @ 828CD80 +GabbyAndTy_EventScript_MoveForBattle8:: call GabbyAndTy_EventScript_ShowAtRoute118_3 call GabbyAndTy_EventScript_HideAtRoute111_2 return -GabbyAndTy_EventScript_MoveForBattle9:: @ 828CD8B +GabbyAndTy_EventScript_MoveForBattle9:: call GabbyAndTy_EventScript_ShowAtRoute120_2 call GabbyAndTy_EventScript_HideAtRoute118_3 return -GabbyAndTy_EventScript_HideAtRoute111_1:: @ 828CD96 +GabbyAndTy_EventScript_HideAtRoute111_1:: setflag FLAG_HIDE_ROUTE_111_GABBY_AND_TY_1 return -GabbyAndTy_EventScript_ShowAtRoute111_1:: @ 828CD9A +GabbyAndTy_EventScript_ShowAtRoute111_1:: clearflag FLAG_HIDE_ROUTE_111_GABBY_AND_TY_1 return -GabbyAndTy_EventScript_HideAtRoute118_1:: @ 828CD9E +GabbyAndTy_EventScript_HideAtRoute118_1:: setflag FLAG_HIDE_ROUTE_118_GABBY_AND_TY_1 return -GabbyAndTy_EventScript_ShowAtRoute118_1:: @ 828CDA2 +GabbyAndTy_EventScript_ShowAtRoute118_1:: clearflag FLAG_HIDE_ROUTE_118_GABBY_AND_TY_1 return -GabbyAndTy_EventScript_HideAtRoute120_1:: @ 828CDA6 +GabbyAndTy_EventScript_HideAtRoute120_1:: setflag FLAG_HIDE_ROUTE_120_GABBY_AND_TY_1 return -GabbyAndTy_EventScript_ShowAtRoute120_1:: @ 828CDAA +GabbyAndTy_EventScript_ShowAtRoute120_1:: clearflag FLAG_HIDE_ROUTE_120_GABBY_AND_TY_1 return -GabbyAndTy_EventScript_HideAtRoute111_3:: @ 828CDAE +GabbyAndTy_EventScript_HideAtRoute111_3:: setflag FLAG_HIDE_ROUTE_111_GABBY_AND_TY_3 return -GabbyAndTy_EventScript_ShowAtRoute111_3:: @ 828CDB2 +GabbyAndTy_EventScript_ShowAtRoute111_3:: clearflag FLAG_HIDE_ROUTE_111_GABBY_AND_TY_3 return -GabbyAndTy_EventScript_HideAtRoute118_2:: @ 828CDB6 +GabbyAndTy_EventScript_HideAtRoute118_2:: setflag FLAG_HIDE_ROUTE_118_GABBY_AND_TY_2 return -GabbyAndTy_EventScript_ShowAtRoute118_2:: @ 828CDBA +GabbyAndTy_EventScript_ShowAtRoute118_2:: clearflag FLAG_HIDE_ROUTE_118_GABBY_AND_TY_2 return -GabbyAndTy_EventScript_HideAtRoute120_2:: @ 828CDBE +GabbyAndTy_EventScript_HideAtRoute120_2:: setflag FLAG_HIDE_ROUTE_120_GABBY_AND_TY_2 return -GabbyAndTy_EventScript_ShowAtRoute120_2:: @ 828CDC2 +GabbyAndTy_EventScript_ShowAtRoute120_2:: clearflag FLAG_HIDE_ROUTE_120_GABBY_AND_TY_2 return -GabbyAndTy_EventScript_HideAtRoute111_2:: @ 828CDC6 +GabbyAndTy_EventScript_HideAtRoute111_2:: setflag FLAG_HIDE_ROUTE_111_GABBY_AND_TY_2 return -GabbyAndTy_EventScript_ShowAtRoute111_2:: @ 828CDCA +GabbyAndTy_EventScript_ShowAtRoute111_2:: clearflag FLAG_HIDE_ROUTE_111_GABBY_AND_TY_2 return -GabbyAndTy_EventScript_HideAtRoute118_3:: @ 828CDCE +GabbyAndTy_EventScript_HideAtRoute118_3:: setflag FLAG_HIDE_ROUTE_118_GABBY_AND_TY_3 return -GabbyAndTy_EventScript_ShowAtRoute118_3:: @ 828CDD2 +GabbyAndTy_EventScript_ShowAtRoute118_3:: clearflag FLAG_HIDE_ROUTE_118_GABBY_AND_TY_3 return -GabbyAndTy_EventScript_GabbyBattle1:: @ 828CDD6 +GabbyAndTy_EventScript_GabbyBattle1:: trainerbattle_double TRAINER_GABBY_AND_TY_1, GabbyAndTy_Text_GabbyPreFirstBattle, GabbyAndTy_Text_GabbyDefeatFirstTime, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_FirstInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_TyBattle1:: @ 828CDF6 +GabbyAndTy_EventScript_TyBattle1:: trainerbattle_double TRAINER_GABBY_AND_TY_1, GabbyAndTy_Text_TyPreFirstBattle, GabbyAndTy_Text_TyDefeatFirstTime, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_FirstInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_GabbyBattle2:: @ 828CE16 +GabbyAndTy_EventScript_GabbyBattle2:: trainerbattle_double TRAINER_GABBY_AND_TY_2, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_TyBattle2:: @ 828CE36 +GabbyAndTy_EventScript_TyBattle2:: trainerbattle_double TRAINER_GABBY_AND_TY_2, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_GabbyBattle3:: @ 828CE56 +GabbyAndTy_EventScript_GabbyBattle3:: trainerbattle_double TRAINER_GABBY_AND_TY_3, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_TyBattle3:: @ 828CE76 +GabbyAndTy_EventScript_TyBattle3:: trainerbattle_double TRAINER_GABBY_AND_TY_3, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_GabbyBattle4:: @ 828CE96 +GabbyAndTy_EventScript_GabbyBattle4:: trainerbattle_double TRAINER_GABBY_AND_TY_4, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_TyBattle4:: @ 828CEB6 +GabbyAndTy_EventScript_TyBattle4:: trainerbattle_double TRAINER_GABBY_AND_TY_4, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_GabbyBattle5:: @ 828CED6 +GabbyAndTy_EventScript_GabbyBattle5:: trainerbattle_double TRAINER_GABBY_AND_TY_5, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_TyBattle5:: @ 828CEF6 +GabbyAndTy_EventScript_TyBattle5:: trainerbattle_double TRAINER_GABBY_AND_TY_5, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_GabbyBattle6:: @ 828CF16 +GabbyAndTy_EventScript_GabbyBattle6:: trainerbattle_double TRAINER_GABBY_AND_TY_6, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_TyBattle6:: @ 828CF36 +GabbyAndTy_EventScript_TyBattle6:: trainerbattle_double TRAINER_GABBY_AND_TY_6, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end -GabbyAndTy_EventScript_FirstInterview:: @ 828CF56 +GabbyAndTy_EventScript_FirstInterview:: special GabbyAndTyBeforeInterview - special GabbyAndTySetScriptVarsToObjectEventLocalIds + special GetGabbyAndTyLocalIds compare VAR_FACING, DIR_NORTH call_if_eq GabbyAndTy_EventScript_FacePlayerNorth compare VAR_FACING, DIR_SOUTH @@ -223,26 +210,26 @@ GabbyAndTy_EventScript_FirstInterview:: @ 828CF56 goto GabbyAndTy_EventScript_Interview end -GabbyAndTy_EventScript_FacePlayerNorth:: @ 828CF94 +GabbyAndTy_EventScript_FacePlayerNorth:: applymovement VAR_0x8004, GabbyAndTy_Movement_WalkInPlaceDown waitmovement 0 return -GabbyAndTy_EventScript_FacePlayerSouth:: @ 828CF9F +GabbyAndTy_EventScript_FacePlayerSouth:: applymovement VAR_0x8004, GabbyAndTy_Movement_WalkInPlaceUp applymovement VAR_0x8005, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -GabbyAndTy_EventScript_FacePlayerEast:: @ 828CFB1 +GabbyAndTy_EventScript_FacePlayerEast:: applymovement VAR_0x8004, GabbyAndTy_Movement_WalkInPlaceLeft applymovement VAR_0x8005, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -GabbyAndTy_EventScript_RequestInterview:: @ 828CFC3 +GabbyAndTy_EventScript_RequestInterview:: special GabbyAndTyBeforeInterview - special GabbyAndTySetScriptVarsToObjectEventLocalIds + special GetGabbyAndTyLocalIds compare VAR_FACING, DIR_NORTH call_if_eq GabbyAndTy_EventScript_FacePlayerNorth compare VAR_FACING, DIR_SOUTH @@ -263,49 +250,49 @@ GabbyAndTy_EventScript_RequestInterview:: @ 828CFC3 case 4, GabbyAndTy_EventScript_RequestInterviewLostAMon end -GabbyAndTy_Movement_WalkInPlaceDown: @ 828D04D +GabbyAndTy_Movement_WalkInPlaceDown: walk_in_place_down step_end -GabbyAndTy_Movement_WalkInPlaceUp: @ 828D04F +GabbyAndTy_Movement_WalkInPlaceUp: walk_in_place_up step_end -GabbyAndTy_Movement_WalkInPlaceLeft: @ 828D051 +GabbyAndTy_Movement_WalkInPlaceLeft: walk_in_place_left step_end -GabbyAndTy_EventScript_DidntInterviewLastTime:: @ 828D053 +GabbyAndTy_EventScript_DidntInterviewLastTime:: msgbox GabbyAndTy_Text_GiveUsAnInterviewThisTime, MSGBOX_YESNO goto GabbyAndTy_EventScript_Interview end -GabbyAndTy_EventScript_RequestInterviewNoTrivia:: @ 828D061 +GabbyAndTy_EventScript_RequestInterviewNoTrivia:: msgbox GabbyAndTy_Text_InterviewAgain, MSGBOX_YESNO goto GabbyAndTy_EventScript_Interview end -GabbyAndTy_EventScript_RequestInterviewShortBattle:: @ 828D06F +GabbyAndTy_EventScript_RequestInterviewShortBattle:: msgbox GabbyAndTy_Text_YouStompedUsInterviewAgain, MSGBOX_YESNO goto GabbyAndTy_EventScript_Interview end -GabbyAndTy_EventScript_RequestInterviewThrewBall:: @ 828D07D +GabbyAndTy_EventScript_RequestInterviewThrewBall:: msgbox GabbyAndTy_Text_YouThrewABallAtUsInterviewAgain, MSGBOX_YESNO goto GabbyAndTy_EventScript_Interview end -GabbyAndTy_EventScript_RequestInterviewUsedItems:: @ 828D08B +GabbyAndTy_EventScript_RequestInterviewUsedItems:: msgbox GabbyAndTy_Text_CleverItemSkillsInterviewAgain, MSGBOX_YESNO goto GabbyAndTy_EventScript_Interview end -GabbyAndTy_EventScript_RequestInterviewLostAMon:: @ 828D099 +GabbyAndTy_EventScript_RequestInterviewLostAMon:: msgbox GabbyAndTy_Text_WeLookedRespectableInterviewAgain, MSGBOX_YESNO goto GabbyAndTy_EventScript_Interview end -GabbyAndTy_EventScript_Interview:: @ 828D0A7 +GabbyAndTy_EventScript_Interview:: compare VAR_RESULT, NO goto_if_eq GabbyAndTy_EventScript_DontGiveUpKeepingEyeOut msgbox GabbyAndTy_Text_DescribeYourFeelings, MSGBOX_DEFAULT @@ -321,13 +308,13 @@ GabbyAndTy_EventScript_Interview:: @ 828D0A7 release end -GabbyAndTy_EventScript_DontGiveUpKeepingEyeOut:: @ 828D0E1 +GabbyAndTy_EventScript_DontGiveUpKeepingEyeOut:: msgbox GabbyAndTy_Text_DontGiveUpKeepingEyeOut, MSGBOX_DEFAULT setflag FLAG_TEMP_1 release end -GabbyAndTy_EventScript_KeepingAnEyeOutForYou:: @ 828D0EE +GabbyAndTy_EventScript_KeepingAnEyeOutForYou:: msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end diff --git a/data/scripts/hall_of_fame.inc b/data/scripts/hall_of_fame.inc index 91a88f3480..9b730de317 100644 --- a/data/scripts/hall_of_fame.inc +++ b/data/scripts/hall_of_fame.inc @@ -1,10 +1,10 @@ -EverGrandeCity_HallOfFame_EventScript_SetGameClearFlags:: @ 82717C1 +EverGrandeCity_HallOfFame_EventScript_SetGameClearFlags:: special SetChampionSaveWarp setflag FLAG_IS_CHAMPION call EverGrandeCity_HallOfFame_EventScript_ResetDefeatedEventLegendaries compare VAR_FOSSIL_MANIAC_STATE, 0 call_if_eq EverGrandeCity_HallOfFame_EventScript_SetDesertUnderpassCommentReady - clearflag FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS + clearflag FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS call EverGrandeCity_HallOfFame_EventScript_ResetEliteFour setflag FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY clearflag FLAG_HIDE_SS_TIDAL_CORRIDOR_MR_BRINEY @@ -26,7 +26,7 @@ EverGrandeCity_HallOfFame_EventScript_SetGameClearFlags:: @ 82717C1 call_if_eq EverGrandeCity_HallOfFame_EventScript_ReadyDexUpgradeEvent return -EverGrandeCity_HallOfFame_EventScript_ResetDefeatedEventLegendaries:: @ 8271829 +EverGrandeCity_HallOfFame_EventScript_ResetDefeatedEventLegendaries:: clearflag FLAG_DEFEATED_MEW clearflag FLAG_DEFEATED_LATIAS_OR_LATIOS clearflag FLAG_DEFEATED_DEOXYS @@ -34,20 +34,20 @@ EverGrandeCity_HallOfFame_EventScript_ResetDefeatedEventLegendaries:: @ 8271829 clearflag FLAG_DEFEATED_HO_OH return -EverGrandeCity_HallOfFame_EventScript_SetDesertUnderpassCommentReady:: @ 8271839 +EverGrandeCity_HallOfFame_EventScript_SetDesertUnderpassCommentReady:: setvar VAR_FOSSIL_MANIAC_STATE, 1 return -EverGrandeCity_HallOfFame_EventScript_ShowStevensHouseBeldum:: @ 827183F +EverGrandeCity_HallOfFame_EventScript_ShowStevensHouseBeldum:: clearflag FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_BELDUM_POKEBALL return -EverGrandeCity_HallOfFame_EventScript_ReadyReceiveSSTicketEvent:: @ 8271843 +EverGrandeCity_HallOfFame_EventScript_ReadyReceiveSSTicketEvent:: setvar VAR_LITTLEROOT_HOUSES_STATE_MAY, 3 setvar VAR_LITTLEROOT_HOUSES_STATE_BRENDAN, 3 clearflag FLAG_HIDE_PLAYERS_HOUSE_DAD return -EverGrandeCity_HallOfFame_EventScript_ReadyDexUpgradeEvent:: @ 8271851 +EverGrandeCity_HallOfFame_EventScript_ReadyDexUpgradeEvent:: setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1 return diff --git a/data/scripts/interview.inc b/data/scripts/interview.inc index f968577f3d..90fceb9d18 100644 --- a/data/scripts/interview.inc +++ b/data/scripts/interview.inc @@ -1,11 +1,11 @@ -Interview_EventScript_EndInterview:: @ 828C7E9 +Interview_EventScript_EndInterview:: special InterviewAfter incrementgamestat GAME_STAT_GOT_INTERVIEWED release end @ Shares reporter object with TVSHOW_PKMN_FAN_CLUB_OPINIONS -SlateportCity_PokemonFanClub_EventScript_ReporterNoNickname:: @ 828C7F0 +SlateportCity_PokemonFanClub_EventScript_ReporterNoNickname:: setvar VAR_0x8005, TVSHOW_FAN_CLUB_LETTER special InterviewBefore compare VAR_RESULT, TRUE @@ -18,7 +18,7 @@ SlateportCity_PokemonFanClub_EventScript_ReporterNoNickname:: @ 828C7F0 goto_if_eq SlateportCity_PokemonFanClub_EventScript_DeclineInterview2 end -SlateportCity_PokemonFanClub_EventScript_AcceptInterview2:: @ 828C827 +SlateportCity_PokemonFanClub_EventScript_AcceptInterview2:: msgbox SlateportCity_PokemonFanClub_Text_TellMeAnythingAboutYourMon, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 @@ -32,23 +32,23 @@ SlateportCity_PokemonFanClub_EventScript_AcceptInterview2:: @ 828C827 goto_if_eq SlateportCity_PokemonFanClub_EventScript_DeclineInterview2 end -SlateportCity_PokemonFanClub_EventScript_DeclineInterview2:: @ 828C85C +SlateportCity_PokemonFanClub_EventScript_DeclineInterview2:: msgbox SlateportCity_PokemonFanClub_Text_HereIfYouGetUrgeToTellMe, MSGBOX_DEFAULT release end -SlateportCity_PokemonFanClub_EventScript_SubmitResponse2:: @ 828C866 +SlateportCity_PokemonFanClub_EventScript_SubmitResponse2:: msgbox SlateportCity_PokemonFanClub_Text_ThatsAllForInterview2, MSGBOX_DEFAULT setvar VAR_0x8005, TVSHOW_FAN_CLUB_LETTER goto Interview_EventScript_EndInterview end -SlateportCity_PokemonFanClub_EventScript_AlreadyInterviewed2:: @ 828C879 +SlateportCity_PokemonFanClub_EventScript_AlreadyInterviewed2:: msgbox SlateportCity_PokemonFanClub_Text_EnjoyDoingInterviews, MSGBOX_DEFAULT release end -SlateportCity_OceanicMuseum_1F_EventScript_Reporter:: @ 828C883 +SlateportCity_OceanicMuseum_1F_EventScript_Reporter:: lock faceplayer setvar VAR_0x8005, TVSHOW_RECENT_HAPPENINGS @@ -65,7 +65,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_Reporter:: @ 828C883 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview end -SlateportCity_OceanicMuseum_1F_EventScript_RequestInterviewShort:: @ 828C8C8 +SlateportCity_OceanicMuseum_1F_EventScript_RequestInterviewShort:: msgbox SlateportCity_OceanicMuseum_1F_Text_InterviewRequestShort, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview @@ -73,7 +73,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_RequestInterviewShort:: @ 828C8C8 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview end -SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview:: @ 828C8E7 +SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview:: msgbox SlateportCity_OceanicMuseum_1F_Text_TellMeExperienceInvolvingPokemon, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 @@ -87,23 +87,23 @@ SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview:: @ 828C8E7 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview end -SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview:: @ 828C91C +SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview:: msgbox SlateportCity_OceanicMuseum_1F_Text_LetMeKnowIfYouHaveStory, MSGBOX_DEFAULT release end -SlateportCity_OceanicMuseum_1F_EventScript_SubmitResponse:: @ 828C926 +SlateportCity_OceanicMuseum_1F_EventScript_SubmitResponse:: msgbox SlateportCity_OceanicMuseum_1F_Text_ThatsAllForInterview, MSGBOX_DEFAULT setvar VAR_0x8005, TVSHOW_RECENT_HAPPENINGS goto Interview_EventScript_EndInterview end -SlateportCity_OceanicMuseum_1F_EventScript_AlreadyInterviewed:: @ 828C939 +SlateportCity_OceanicMuseum_1F_EventScript_AlreadyInterviewed:: msgbox SlateportCity_OceanicMuseum_1F_Text_BetterWriteUpStory, MSGBOX_DEFAULT release end -SlateportCity_PokemonFanClub_EventScript_Reporter:: @ 828C943 +SlateportCity_PokemonFanClub_EventScript_Reporter:: lock faceplayer specialvar VAR_RESULT, IsLeadMonNicknamedOrNotEnglish @@ -121,7 +121,7 @@ SlateportCity_PokemonFanClub_EventScript_Reporter:: @ 828C943 goto_if_eq SlateportCity_PokemonFanClub_EventScript_DeclineInterview end -SlateportCity_PokemonFanClub_EventScript_AcceptInterview:: @ 828C98C +SlateportCity_PokemonFanClub_EventScript_AcceptInterview:: msgbox SlateportCity_PokemonFanClub_Text_HereGoesQuickAnswers, MSGBOX_DEFAULT random 3 copyvar VAR_0x800A, VAR_RESULT @@ -131,22 +131,22 @@ SlateportCity_PokemonFanClub_EventScript_AcceptInterview:: @ 828C98C case 2, SlateportCity_PokemonFanClub_EventScript_RandomQuestion3 end -SlateportCity_PokemonFanClub_EventScript_RandomQuestion1:: @ 828C9C3 +SlateportCity_PokemonFanClub_EventScript_RandomQuestion1:: msgbox SlateportCity_PokemonFanClub_Text_DescribeFeelingsFirstMetMon, MSGBOX_DEFAULT goto SlateportCity_PokemonFanClub_EventScript_ContinueInterview end -SlateportCity_PokemonFanClub_EventScript_RandomQuestion2:: @ 828C9D1 +SlateportCity_PokemonFanClub_EventScript_RandomQuestion2:: msgbox SlateportCity_PokemonFanClub_Text_LikenMonToSomethingYouLike, MSGBOX_DEFAULT goto SlateportCity_PokemonFanClub_EventScript_ContinueInterview end -SlateportCity_PokemonFanClub_EventScript_RandomQuestion3:: @ 828C9DF +SlateportCity_PokemonFanClub_EventScript_RandomQuestion3:: msgbox SlateportCity_PokemonFanClub_Text_WhatAttractedYouAboutMon, MSGBOX_DEFAULT goto SlateportCity_PokemonFanClub_EventScript_ContinueInterview end -SlateportCity_PokemonFanClub_EventScript_ContinueInterview:: @ 828C9ED +SlateportCity_PokemonFanClub_EventScript_ContinueInterview:: setvar VAR_0x8004, EASY_CHAT_TYPE_FAN_CLUB copyvar VAR_0x8005, VAR_0x8009 setvar VAR_0x8006, 0 @@ -168,17 +168,17 @@ SlateportCity_PokemonFanClub_EventScript_ContinueInterview:: @ 828C9ED goto Interview_EventScript_EndInterview end -SlateportCity_PokemonFanClub_EventScript_DeclineInterview:: @ 828CA45 +SlateportCity_PokemonFanClub_EventScript_DeclineInterview:: msgbox SlateportCity_PokemonFanClub_Text_HereIfYouGetUrgeToTellMe, MSGBOX_DEFAULT release end -SlateportCity_PokemonFanClub_EventScript_AlreadyInterviewed:: @ 828CA4F +SlateportCity_PokemonFanClub_EventScript_AlreadyInterviewed:: msgbox SlateportCity_PokemonFanClub_Text_EnjoyDoingInterviews, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_Reporter:: @ 828CA59 +LilycoveCity_ContestLobby_EventScript_Reporter:: lock faceplayer goto_if_set FLAG_TEMP_2, LilycoveCity_ContestLobby_EventScript_AlreadyInterviewed @@ -194,7 +194,7 @@ LilycoveCity_ContestLobby_EventScript_Reporter:: @ 828CA59 goto_if_eq LilycoveCity_ContestLobby_EventScript_DeclineInterview end -LilycoveCity_ContestLobby_EventScript_AcceptInterview:: @ 828CA9B +LilycoveCity_ContestLobby_EventScript_AcceptInterview:: msgbox LilycoveCity_ContestLobby_Text_DescribeContest, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_CONTEST_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 @@ -208,12 +208,12 @@ LilycoveCity_ContestLobby_EventScript_AcceptInterview:: @ 828CA9B goto_if_eq LilycoveCity_ContestLobby_EventScript_DeclineInterview end -LilycoveCity_ContestLobby_EventScript_DeclineInterview:: @ 828CAD0 +LilycoveCity_ContestLobby_EventScript_DeclineInterview:: msgbox LilycoveCity_ContestLobby_Text_PleaseDoShareStoryWithMe, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_SubmitResponse:: @ 828CADA +LilycoveCity_ContestLobby_EventScript_SubmitResponse:: setvar VAR_0x8004, 24 special SetContestCategoryStringVarForInterview msgbox LilycoveCity_ContestLobby_Text_WhatImageWhenYouHearX, MSGBOX_DEFAULT @@ -231,12 +231,12 @@ LilycoveCity_ContestLobby_EventScript_SubmitResponse:: @ 828CADA goto Interview_EventScript_EndInterview end -LilycoveCity_ContestLobby_EventScript_AlreadyInterviewed:: @ 828CB21 +LilycoveCity_ContestLobby_EventScript_AlreadyInterviewed:: msgbox LilycoveCity_ContestLobby_Text_LookingForwardToNextContest, MSGBOX_DEFAULT release end -LilycoveCity_ContestLobby_EventScript_TryShowContestReporter:: @ 828CB2B +LilycoveCity_ContestLobby_EventScript_TryShowContestReporter:: compare VAR_CONTEST_HALL_STATE, 2 goto_if_ne LilycoveCity_ContestLobby_EventScript_DontShowContestReporter setvar VAR_0x8005, TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE @@ -252,14 +252,14 @@ LilycoveCity_ContestLobby_EventScript_TryShowContestReporter:: @ 828CB2B case 5, LilycoveCity_ContestLobby_EventScript_DontShowContestReporter end -LilycoveCity_ContestLobby_EventScript_ShowContestReporter:: @ 828CB91 +LilycoveCity_ContestLobby_EventScript_ShowContestReporter:: clearflag FLAG_HIDE_LILYCOVE_CONTEST_HALL_REPORTER return -LilycoveCity_ContestLobby_EventScript_DontShowContestReporter:: @ 828CB95 +LilycoveCity_ContestLobby_EventScript_DontShowContestReporter:: return -BattleFrontier_BattleTowerLobby_EventScript_Reporter:: @ 828CB96 +BattleFrontier_BattleTowerLobby_EventScript_Reporter:: lock faceplayer goto_if_set FLAG_TEMP_2, BattleFrontier_BattleTowerLobby_EventScript_AlreadyInterviewed @@ -275,10 +275,10 @@ BattleFrontier_BattleTowerLobby_EventScript_Reporter:: @ 828CB96 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_DeclineInterview end -BattleFrontier_BattleTowerLobby_EventScript_AcceptInterview:: @ 828CBD8 +BattleFrontier_BattleTowerLobby_EventScript_AcceptInterview:: message BattleFrontier_BattleTowerLobby_Text_HowDidBattleTowerTurnOut waitmessage - multichoice 20, 8, MULTI_SATISFACTION, 1 + multichoice 20, 8, MULTI_SATISFACTION, TRUE copyvar VAR_0x8008, VAR_RESULT compare VAR_RESULT, 0 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_Satisfied @@ -296,20 +296,20 @@ BattleFrontier_BattleTowerLobby_EventScript_AcceptInterview:: @ 828CBD8 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelInterview end -BattleFrontier_BattleTowerLobby_EventScript_DeclineInterview:: @ 828CC2E +BattleFrontier_BattleTowerLobby_EventScript_DeclineInterview:: msgbox BattleFrontier_BattleTowerLobby_Text_SorryWeDisturbedYou, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerLobby_EventScript_Satisfied:: @ 828CC38 +BattleFrontier_BattleTowerLobby_EventScript_Satisfied:: msgbox BattleFrontier_BattleTowerLobby_Text_ObviousYouHadGreatBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleTowerLobby_EventScript_Dissatisfied:: @ 828CC41 +BattleFrontier_BattleTowerLobby_EventScript_Dissatisfied:: msgbox BattleFrontier_BattleTowerLobby_Text_DifficultToMakeBattleTurnOutAsPlanned, MSGBOX_DEFAULT return -BattleFrontier_BattleTowerLobby_EventScript_SubmitResponse:: @ 828CC4A +BattleFrontier_BattleTowerLobby_EventScript_SubmitResponse:: compare VAR_RESULT, 0 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelInterview msgbox BattleFrontier_BattleTowerLobby_Text_ThatsGreatLine, MSGBOX_DEFAULT @@ -319,17 +319,17 @@ BattleFrontier_BattleTowerLobby_EventScript_SubmitResponse:: @ 828CC4A goto Interview_EventScript_EndInterview end -BattleFrontier_BattleTowerLobby_EventScript_CancelInterview:: @ 828CC70 +BattleFrontier_BattleTowerLobby_EventScript_CancelInterview:: msgbox BattleFrontier_BattleTowerLobby_Text_SilentType, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerLobby_EventScript_AlreadyInterviewed:: @ 828CC7A +BattleFrontier_BattleTowerLobby_EventScript_AlreadyInterviewed:: msgbox BattleFrontier_BattleTowerLobby_Text_LookingForwardToNextBattle, MSGBOX_DEFAULT release end -BattleFrontier_BattleTowerLobby_EventScript_ShowOrHideReporter:: @ 828CC84 +BattleFrontier_BattleTowerLobby_EventScript_ShowOrHideReporter:: compare VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_HideReporter setvar VAR_0x8005, TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE @@ -339,6 +339,19 @@ BattleFrontier_BattleTowerLobby_EventScript_ShowOrHideReporter:: @ 828CC84 clearflag FLAG_HIDE_BATTLE_TOWER_REPORTER return -BattleFrontier_BattleTowerLobby_EventScript_HideReporter:: @ 828CCA6 +BattleFrontier_BattleTowerLobby_EventScript_HideReporter:: setflag FLAG_HIDE_BATTLE_TOWER_REPORTER return + +@ Unused +EventScript_ContestLiveInterview:: + setvar VAR_0x8005, TVSHOW_CONTEST_LIVE_UPDATES + special InterviewBefore + compare VAR_RESULT, TRUE + goto_if_eq EventScript_ContestLiveInterviewEnd + setvar VAR_0x8005, TVSHOW_CONTEST_LIVE_UPDATES + special InterviewAfter + return + +EventScript_ContestLiveInterviewEnd:: + return diff --git a/data/scripts/item_ball_scripts.inc b/data/scripts/item_ball_scripts.inc index 82633f77c0..683c383df5 100644 --- a/data/scripts/item_ball_scripts.inc +++ b/data/scripts/item_ball_scripts.inc @@ -1,659 +1,659 @@ -Route102_EventScript_ItemPotion:: @ 8290CD8 +Route102_EventScript_ItemPotion:: finditem ITEM_POTION end -Route103_EventScript_ItemGuardSpec:: @ 8290CE5 +Route103_EventScript_ItemGuardSpec:: finditem ITEM_GUARD_SPEC end -Route103_EventScript_ItemPPUp:: @ 8290CF2 +Route103_EventScript_ItemPPUp:: finditem ITEM_PP_UP end -Route104_EventScript_ItemPPUp:: @ 8290CFF +Route104_EventScript_ItemPPUp:: finditem ITEM_PP_UP end -Route104_EventScript_ItemPokeBall:: @ 8290D0C +Route104_EventScript_ItemPokeBall:: finditem ITEM_POKE_BALL end -Route104_EventScript_ItemXAccuracy:: @ 8290D19 +Route104_EventScript_ItemXAccuracy:: finditem ITEM_X_ACCURACY end -Route104_EventScript_ItemPotion:: @ 8290D26 +Route104_EventScript_ItemPotion:: finditem ITEM_POTION end -Route105_EventScript_ItemIron:: @ 8290D33 +Route105_EventScript_ItemIron:: finditem ITEM_IRON end -Route106_EventScript_ItemProtein:: @ 8290D40 +Route106_EventScript_ItemProtein:: finditem ITEM_PROTEIN end -Route108_EventScript_ItemStarPiece:: @ 8290D4D +Route108_EventScript_ItemStarPiece:: finditem ITEM_STAR_PIECE end -Route109_EventScript_ItemPPUp:: @ 8290D5A +Route109_EventScript_ItemPPUp:: finditem ITEM_PP_UP end -Route109_EventScript_ItemPotion:: @ 8290D67 +Route109_EventScript_ItemPotion:: finditem ITEM_POTION end -Route110_EventScript_ItemRareCandy:: @ 8290D74 +Route110_EventScript_ItemRareCandy:: finditem ITEM_RARE_CANDY end -Route110_EventScript_ItemDireHit:: @ 8290D81 +Route110_EventScript_ItemDireHit:: finditem ITEM_DIRE_HIT end -Route110_EventScript_ItemElixir:: @ 8290D8E +Route110_EventScript_ItemElixir:: finditem ITEM_ELIXIR end -Route111_EventScript_ItemTM37:: @ 8290D9B +Route111_EventScript_ItemTM37:: finditem ITEM_TM37 end -Route111_EventScript_ItemStardust:: @ 8290DA8 +Route111_EventScript_ItemStardust:: finditem ITEM_STARDUST end -Route111_EventScript_ItemHPUp:: @ 8290DB5 +Route111_EventScript_ItemHPUp:: finditem ITEM_HP_UP end -Route111_EventScript_ItemElixir:: @ 8290DC2 +Route111_EventScript_ItemElixir:: finditem ITEM_ELIXIR end -Route112_EventScript_ItemNugget:: @ 8290DCF +Route112_EventScript_ItemNugget:: finditem ITEM_NUGGET end -Route113_EventScript_ItemMaxEther:: @ 8290DDC +Route113_EventScript_ItemMaxEther:: finditem ITEM_MAX_ETHER end -Route113_EventScript_ItemSuperRepel:: @ 8290DE9 +Route113_EventScript_ItemSuperRepel:: finditem ITEM_SUPER_REPEL end -Route113_EventScript_ItemHyperPotion:: @ 8290DF6 +Route113_EventScript_ItemHyperPotion:: finditem ITEM_HYPER_POTION end -Route114_EventScript_ItemRareCandy:: @ 8290E03 +Route114_EventScript_ItemRareCandy:: finditem ITEM_RARE_CANDY end -Route114_EventScript_ItemProtein:: @ 8290E10 +Route114_EventScript_ItemProtein:: finditem ITEM_PROTEIN end -Route114_EventScript_ItemEnergyPowder:: @ 8290E1D +Route114_EventScript_ItemEnergyPowder:: finditem ITEM_ENERGY_POWDER end -Route115_EventScript_ItemSuperPotion:: @ 8290E2A +Route115_EventScript_ItemSuperPotion:: finditem ITEM_SUPER_POTION end -Route115_EventScript_ItemTM01:: @ 8290E37 +Route115_EventScript_ItemTM01:: finditem ITEM_TM01 end -Route115_EventScript_ItemIron:: @ 8290E44 +Route115_EventScript_ItemIron:: finditem ITEM_IRON end -Route115_EventScript_ItemGreatBall:: @ 8290E51 +Route115_EventScript_ItemGreatBall:: finditem ITEM_GREAT_BALL end -Route115_EventScript_ItemHealPowder:: @ 8290E5E +Route115_EventScript_ItemHealPowder:: finditem ITEM_HEAL_POWDER end -Route115_EventScript_ItemPPUp:: @ 8290E6B +Route115_EventScript_ItemPPUp:: finditem ITEM_PP_UP end -Route116_EventScript_ItemXSpecial:: @ 8290E78 +Route116_EventScript_ItemXSpecial:: finditem ITEM_X_SPECIAL end -Route116_EventScript_ItemEther:: @ 8290E85 +Route116_EventScript_ItemEther:: finditem ITEM_ETHER end -Route116_EventScript_ItemRepel:: @ 8290E92 +Route116_EventScript_ItemRepel:: finditem ITEM_REPEL end -Route116_EventScript_ItemHPUp:: @ 8290E9F +Route116_EventScript_ItemHPUp:: finditem ITEM_HP_UP end -Route116_EventScript_ItemPotion:: @ 8290EAC +Route116_EventScript_ItemPotion:: finditem ITEM_POTION end -Route117_EventScript_ItemGreatBall:: @ 8290EB9 +Route117_EventScript_ItemGreatBall:: finditem ITEM_GREAT_BALL end -Route117_EventScript_ItemRevive:: @ 8290EC6 +Route117_EventScript_ItemRevive:: finditem ITEM_REVIVE end -Route118_EventScript_ItemHyperPotion:: @ 8290ED3 +Route118_EventScript_ItemHyperPotion:: finditem ITEM_HYPER_POTION end -Route119_EventScript_ItemSuperRepel:: @ 8290EE0 +Route119_EventScript_ItemSuperRepel:: finditem ITEM_SUPER_REPEL end -Route119_EventScript_ItemZinc:: @ 8290EED +Route119_EventScript_ItemZinc:: finditem ITEM_ZINC end -Route119_EventScript_ItemElixir:: @ 8290EFA +Route119_EventScript_ItemElixir:: finditem ITEM_ELIXIR end -Route119_EventScript_ItemLeafStone:: @ 8290F07 +Route119_EventScript_ItemLeafStone:: finditem ITEM_LEAF_STONE end -Route119_EventScript_ItemRareCandy:: @ 8290F14 +Route119_EventScript_ItemRareCandy:: finditem ITEM_RARE_CANDY end -Route119_EventScript_ItemHyperPotion:: @ 8290F21 +Route119_EventScript_ItemHyperPotion:: finditem ITEM_HYPER_POTION end -Route119_EventScript_ItemHyperPotion2:: @ 8290F2E +Route119_EventScript_ItemHyperPotion2:: finditem ITEM_HYPER_POTION end -Route119_EventScript_ItemElixir2:: @ 8290F3B +Route119_EventScript_ItemElixir2:: finditem ITEM_ELIXIR end -Route120_EventScript_ItemNugget:: @ 8290F48 +Route120_EventScript_ItemNugget:: finditem ITEM_NUGGET end -Route120_EventScript_ItemFullHeal:: @ 8290F55 +Route120_EventScript_ItemFullHeal:: finditem ITEM_FULL_HEAL end -Route120_EventScript_ItemHyperPotion:: @ 8290F62 +Route120_EventScript_ItemHyperPotion:: finditem ITEM_HYPER_POTION end -Route120_EventScript_ItemNestBall:: @ 8290F6F +Route120_EventScript_ItemNestBall:: finditem ITEM_NEST_BALL end -Route120_EventScript_ItemRevive:: @ 8290F7C +Route120_EventScript_ItemRevive:: finditem ITEM_REVIVE end -Route121_EventScript_ItemCarbos:: @ 8290F89 +Route121_EventScript_ItemCarbos:: finditem ITEM_CARBOS end -Route121_EventScript_ItemRevive:: @ 8290F96 +Route121_EventScript_ItemRevive:: finditem ITEM_REVIVE end -Route121_EventScript_ItemZinc:: @ 8290FA3 +Route121_EventScript_ItemZinc:: finditem ITEM_ZINC end -Route123_EventScript_ItemCalcium:: @ 8290FB0 +Route123_EventScript_ItemCalcium:: finditem ITEM_CALCIUM end -Route123_EventScript_ItemUltraBall:: @ 8290FBD +Route123_EventScript_ItemUltraBall:: finditem ITEM_ULTRA_BALL end -Route123_EventScript_ItemElixir:: @ 8290FCA +Route123_EventScript_ItemElixir:: finditem ITEM_ELIXIR end -Route123_EventScript_ItemPPUp:: @ 8290FD7 +Route123_EventScript_ItemPPUp:: finditem ITEM_PP_UP end -Route123_EventScript_ItemRevivalHerb:: @ 8290FE4 +Route123_EventScript_ItemRevivalHerb:: finditem ITEM_REVIVAL_HERB end -Route124_EventScript_ItemRedShard:: @ 8290FF1 +Route124_EventScript_ItemRedShard:: finditem ITEM_RED_SHARD end -Route124_EventScript_ItemBlueShard:: @ 8290FFE +Route124_EventScript_ItemBlueShard:: finditem ITEM_BLUE_SHARD end -Route124_EventScript_ItemYellowShard:: @ 829100B +Route124_EventScript_ItemYellowShard:: finditem ITEM_YELLOW_SHARD end -Route125_EventScript_ItemBigPearl:: @ 8291018 +Route125_EventScript_ItemBigPearl:: finditem ITEM_BIG_PEARL end -Route126_EventScript_ItemGreenShard:: @ 8291025 +Route126_EventScript_ItemGreenShard:: finditem ITEM_GREEN_SHARD end -Route127_EventScript_ItemZinc:: @ 8291032 +Route127_EventScript_ItemZinc:: finditem ITEM_ZINC end -Route127_EventScript_ItemCarbos:: @ 829103F +Route127_EventScript_ItemCarbos:: finditem ITEM_CARBOS end -Route127_EventScript_ItemRareCandy:: @ 829104C +Route127_EventScript_ItemRareCandy:: finditem ITEM_RARE_CANDY end -Route132_EventScript_ItemRareCandy:: @ 8291059 +Route132_EventScript_ItemRareCandy:: finditem ITEM_RARE_CANDY end -Route132_EventScript_ItemProtein:: @ 8291066 +Route132_EventScript_ItemProtein:: finditem ITEM_PROTEIN end -Route133_EventScript_ItemBigPearl:: @ 8291073 +Route133_EventScript_ItemBigPearl:: finditem ITEM_BIG_PEARL end -Route133_EventScript_ItemStarPiece:: @ 8291080 +Route133_EventScript_ItemStarPiece:: finditem ITEM_STAR_PIECE end -Route133_EventScript_ItemMaxRevive:: @ 829108D +Route133_EventScript_ItemMaxRevive:: finditem ITEM_MAX_REVIVE end -Route134_EventScript_ItemCarbos:: @ 829109A +Route134_EventScript_ItemCarbos:: finditem ITEM_CARBOS end -Route134_EventScript_ItemStarPiece:: @ 82910A7 +Route134_EventScript_ItemStarPiece:: finditem ITEM_STAR_PIECE end -PetalburgCity_EventScript_ItemMaxRevive:: @ 82910B4 +PetalburgCity_EventScript_ItemMaxRevive:: finditem ITEM_MAX_REVIVE end -PetalburgCity_EventScript_ItemEther:: @ 82910C1 +PetalburgCity_EventScript_ItemEther:: finditem ITEM_ETHER end -MauvilleCity_EventScript_ItemXSpeed:: @ 82910CE +MauvilleCity_EventScript_ItemXSpeed:: finditem ITEM_X_SPEED end -RustboroCity_EventScript_ItemXDefend:: @ 82910DB +RustboroCity_EventScript_ItemXDefend:: finditem ITEM_X_DEFEND end -LilycoveCity_EventScript_ItemMaxRepel:: @ 82910E8 +LilycoveCity_EventScript_ItemMaxRepel:: finditem ITEM_MAX_REPEL end -MossdeepCity_EventScript_ItemNetBall:: @ 82910F5 +MossdeepCity_EventScript_ItemNetBall:: finditem ITEM_NET_BALL end -PetalburgWoods_EventScript_ItemXAttack:: @ 8291102 +PetalburgWoods_EventScript_ItemXAttack:: finditem ITEM_X_ATTACK end -PetalburgWoods_EventScript_ItemGreatBall:: @ 829110F +PetalburgWoods_EventScript_ItemGreatBall:: finditem ITEM_GREAT_BALL end -PetalburgWoods_EventScript_ItemEther:: @ 829111C +PetalburgWoods_EventScript_ItemEther:: finditem ITEM_ETHER end -PetalburgWoods_EventScript_ItemParalyzeHeal:: @ 8291129 +PetalburgWoods_EventScript_ItemParalyzeHeal:: finditem ITEM_PARALYZE_HEAL end -RusturfTunnel_EventScript_ItemPokeBall:: @ 8291136 +RusturfTunnel_EventScript_ItemPokeBall:: finditem ITEM_POKE_BALL end -RusturfTunnel_EventScript_ItemMaxEther:: @ 8291143 +RusturfTunnel_EventScript_ItemMaxEther:: finditem ITEM_MAX_ETHER end -GraniteCave_1F_EventScript_ItemEscapeRope:: @ 8291150 +GraniteCave_1F_EventScript_ItemEscapeRope:: finditem ITEM_ESCAPE_ROPE end -GraniteCave_B1F_EventScript_ItemPokeBall:: @ 829115D +GraniteCave_B1F_EventScript_ItemPokeBall:: finditem ITEM_POKE_BALL end -GraniteCave_B2F_EventScript_ItemRepel:: @ 829116A +GraniteCave_B2F_EventScript_ItemRepel:: finditem ITEM_REPEL end -GraniteCave_B2F_EventScript_ItemRareCandy:: @ 8291177 +GraniteCave_B2F_EventScript_ItemRareCandy:: finditem ITEM_RARE_CANDY end -JaggedPass_EventScript_ItemBurnHeal:: @ 8291184 +JaggedPass_EventScript_ItemBurnHeal:: finditem ITEM_BURN_HEAL end -FieryPath_EventScript_ItemFireStone:: @ 8291191 +FieryPath_EventScript_ItemFireStone:: finditem ITEM_FIRE_STONE end -FieryPath_EventScript_ItemTM06:: @ 829119E +FieryPath_EventScript_ItemTM06:: finditem ITEM_TM06 end -MeteorFalls_1F_1R_EventScript_ItemTM23:: @ 82911AB +MeteorFalls_1F_1R_EventScript_ItemTM23:: finditem ITEM_TM23 end -MeteorFalls_1F_1R_EventScript_ItemFullHeal:: @ 82911B8 +MeteorFalls_1F_1R_EventScript_ItemFullHeal:: finditem ITEM_FULL_HEAL end -MeteorFalls_1F_1R_EventScript_ItemMoonStone:: @ 82911C5 +MeteorFalls_1F_1R_EventScript_ItemMoonStone:: finditem ITEM_MOON_STONE end -MeteorFalls_1F_1R_EventScript_ItemPPUP:: @ 82911D2 +MeteorFalls_1F_1R_EventScript_ItemPPUP:: finditem ITEM_PP_UP end -MeteorFalls_B1F_2R_EventScript_ItemTM02:: @ 82911DF +MeteorFalls_B1F_2R_EventScript_ItemTM02:: finditem ITEM_TM02 end -NewMauville_Inside_EventScript_ItemUltraBall:: @ 82911EC +NewMauville_Inside_EventScript_ItemUltraBall:: finditem ITEM_ULTRA_BALL end -NewMauville_Inside_EventScript_ItemEscapeRope:: @ 82911F9 +NewMauville_Inside_EventScript_ItemEscapeRope:: finditem ITEM_ESCAPE_ROPE end -NewMauville_Inside_EventScript_ItemThunderStone:: @ 8291206 +NewMauville_Inside_EventScript_ItemThunderStone:: finditem ITEM_THUNDER_STONE end -NewMauville_Inside_EventScript_ItemFullHeal:: @ 8291213 +NewMauville_Inside_EventScript_ItemFullHeal:: finditem ITEM_FULL_HEAL end -NewMauville_Inside_EventScript_ItemParalyzeHeal:: @ 8291220 +NewMauville_Inside_EventScript_ItemParalyzeHeal:: finditem ITEM_PARALYZE_HEAL end -AbandonedShip_Rooms_1F_EventScript_ItemHarborMail:: @ 829122D +AbandonedShip_Rooms_1F_EventScript_ItemHarborMail:: finditem ITEM_HARBOR_MAIL end -AbandonedShip_Rooms_B1F_EventScript_ItemEscapeRope:: @ 829123A +AbandonedShip_Rooms_B1F_EventScript_ItemEscapeRope:: finditem ITEM_ESCAPE_ROPE end -AbandonedShip_Rooms2_B1F_EventScript_ItemDiveBall:: @ 8291247 +AbandonedShip_Rooms2_B1F_EventScript_ItemDiveBall:: finditem ITEM_DIVE_BALL end -AbandonedShip_Room_B1F_EventScript_ItemTM13:: @ 8291254 +AbandonedShip_Room_B1F_EventScript_ItemTM13:: finditem ITEM_TM13 end -AbandonedShip_Rooms2_1F_EventScript_ItemRevive:: @ 8291261 +AbandonedShip_Rooms2_1F_EventScript_ItemRevive:: finditem ITEM_REVIVE end -AbandonedShip_CaptainsOffice_EventScript_ItemStorageKey:: @ 829126E +AbandonedShip_CaptainsOffice_EventScript_ItemStorageKey:: finditem ITEM_STORAGE_KEY end -AbandonedShip_HiddenFloorRooms_EventScript_ItemLuxuryBall:: @ 829127B +AbandonedShip_HiddenFloorRooms_EventScript_ItemLuxuryBall:: finditem ITEM_LUXURY_BALL end -AbandonedShip_HiddenFloorRooms_EventScript_ItemScanner:: @ 8291288 +AbandonedShip_HiddenFloorRooms_EventScript_ItemScanner:: finditem ITEM_SCANNER end -AbandonedShip_HiddenFloorRooms_EventScript_ItemWaterStone:: @ 8291295 +AbandonedShip_HiddenFloorRooms_EventScript_ItemWaterStone:: finditem ITEM_WATER_STONE end -AbandonedShip_HiddenFloorRooms_EventScript_ItemTM18:: @ 82912A2 +AbandonedShip_HiddenFloorRooms_EventScript_ItemTM18:: finditem ITEM_TM18 end -ScorchedSlab_EventScript_ItemTM11:: @ 82912AF +ScorchedSlab_EventScript_ItemTM11:: finditem ITEM_TM11 end -SafariZone_Northwest_EventScript_ItemTM22:: @ 82912BC +SafariZone_Northwest_EventScript_ItemTM22:: finditem ITEM_TM22 end -SafariZone_North_EventScript_ItemCalcium:: @ 82912C9 +SafariZone_North_EventScript_ItemCalcium:: finditem ITEM_CALCIUM end -SafariZone_Southwest_EventScript_ItemMaxRevive:: @ 82912D6 +SafariZone_Southwest_EventScript_ItemMaxRevive:: finditem ITEM_MAX_REVIVE end -SafariZone_Northeast_EventScript_ItemNugget:: @ 82912E3 +SafariZone_Northeast_EventScript_ItemNugget:: finditem ITEM_NUGGET end -SafariZone_Southeast_EventScript_ItemBigPearl:: @ 82912F0 +SafariZone_Southeast_EventScript_ItemBigPearl:: finditem ITEM_BIG_PEARL end -MtPyre_2F_EventScript_ItemUltraBall:: @ 82912FD +MtPyre_2F_EventScript_ItemUltraBall:: finditem ITEM_ULTRA_BALL end -MtPyre_3F_EventScript_ItemSuperRepel:: @ 829130A +MtPyre_3F_EventScript_ItemSuperRepel:: finditem ITEM_SUPER_REPEL end -MtPyre_4F_EventScript_ItemSeaIncense:: @ 8291317 +MtPyre_4F_EventScript_ItemSeaIncense:: finditem ITEM_SEA_INCENSE end -MtPyre_5F_EventScript_ItemLaxIncense:: @ 8291324 +MtPyre_5F_EventScript_ItemLaxIncense:: finditem ITEM_LAX_INCENSE end -MtPyre_6F_EventScript_ItemTM30:: @ 8291331 +MtPyre_6F_EventScript_ItemTM30:: finditem ITEM_TM30 end -MtPyre_Exterior_EventScript_ItemMaxPotion:: @ 829133E +MtPyre_Exterior_EventScript_ItemMaxPotion:: finditem ITEM_MAX_POTION end -MtPyre_Exterior_EventScript_ItemTM48:: @ 829134B +MtPyre_Exterior_EventScript_ItemTM48:: finditem ITEM_TM48 end -AquaHideout_B1F_EventScript_ItemMasterBall:: @ 8291358 +AquaHideout_B1F_EventScript_ItemMasterBall:: finditem ITEM_MASTER_BALL end -AquaHideout_B1F_EventScript_ItemNugget:: @ 8291365 +AquaHideout_B1F_EventScript_ItemNugget:: finditem ITEM_NUGGET end -AquaHideout_B1F_EventScript_ItemMaxElixir:: @ 8291372 +AquaHideout_B1F_EventScript_ItemMaxElixir:: finditem ITEM_MAX_ELIXIR end -AquaHideout_B2F_EventScript_ItemNestBall:: @ 829137F +AquaHideout_B2F_EventScript_ItemNestBall:: finditem ITEM_NEST_BALL end -AquaHideout_B2F_EventScript_ItemMasterBall:: @ 829138C +AquaHideout_B2F_EventScript_ItemMasterBall:: finditem ITEM_MASTER_BALL // Unused end -Route119_EventScript_ItemNugget:: @ 8291399 +Route119_EventScript_ItemNugget:: finditem ITEM_NUGGET end -Route119_EventScript_ItemMaxElixir:: @ 82913A6 +Route119_EventScript_ItemMaxElixir:: finditem ITEM_MAX_ELIXIR end -Route119_EventScript_ItemNestBall:: @ 82913B3 +Route119_EventScript_ItemNestBall:: finditem ITEM_NEST_BALL end -ShoalCave_LowTideEntranceRoom_EventScript_ItemBigPearl:: @ 82913C0 +ShoalCave_LowTideEntranceRoom_EventScript_ItemBigPearl:: finditem ITEM_BIG_PEARL end -ShoalCave_LowTideInnerRoom_EventScript_ItemRareCandy:: @ 82913CD +ShoalCave_LowTideInnerRoom_EventScript_ItemRareCandy:: finditem ITEM_RARE_CANDY end -ShoalCave_LowTideStairsRoom_EventScript_ItemIceHeal:: @ 82913DA +ShoalCave_LowTideStairsRoom_EventScript_ItemIceHeal:: finditem ITEM_ICE_HEAL end -ShoalCave_LowTideIceRoom_EventScript_ItemTM07:: @ 82913E7 +ShoalCave_LowTideIceRoom_EventScript_ItemTM07:: finditem ITEM_TM07 end -ShoalCave_LowTideIceRoom_EventScript_ItemNeverMeltIce:: @ 82913F4 +ShoalCave_LowTideIceRoom_EventScript_ItemNeverMeltIce:: finditem ITEM_NEVER_MELT_ICE end -SeafloorCavern_Room9_EventScript_ItemTM26:: @ 8291401 +SeafloorCavern_Room9_EventScript_ItemTM26:: finditem ITEM_TM26 end -Route110_TrickHousePuzzle1_EventScript_ItemOrangeMail:: @ 829140E +Route110_TrickHousePuzzle1_EventScript_ItemOrangeMail:: finditem ITEM_ORANGE_MAIL end -Route110_TrickHousePuzzle2_EventScript_ItemHarborMail:: @ 829141B +Route110_TrickHousePuzzle2_EventScript_ItemHarborMail:: finditem ITEM_HARBOR_MAIL end -Route110_TrickHousePuzzle2_EventScript_ItemWaveMail:: @ 8291428 +Route110_TrickHousePuzzle2_EventScript_ItemWaveMail:: finditem ITEM_WAVE_MAIL end -Route110_TrickHousePuzzle3_EventScript_ItemShadowMail:: @ 8291435 +Route110_TrickHousePuzzle3_EventScript_ItemShadowMail:: finditem ITEM_SHADOW_MAIL end -Route110_TrickHousePuzzle3_EventScript_ItemWoodMail:: @ 8291442 +Route110_TrickHousePuzzle3_EventScript_ItemWoodMail:: finditem ITEM_WOOD_MAIL end -Route110_TrickHousePuzzle4_EventScript_ItemMechMail:: @ 829144F +Route110_TrickHousePuzzle4_EventScript_ItemMechMail:: finditem ITEM_MECH_MAIL end -Route110_TrickHousePuzzle6_EventScript_ItemGlitterMail:: @ 829145C +Route110_TrickHousePuzzle6_EventScript_ItemGlitterMail:: finditem ITEM_GLITTER_MAIL end -Route110_TrickHousePuzzle7_EventScript_ItemTropicMail:: @ 8291469 +Route110_TrickHousePuzzle7_EventScript_ItemTropicMail:: finditem ITEM_TROPIC_MAIL end -Route110_TrickHousePuzzle8_EventScript_ItemBeadMail:: @ 8291476 +Route110_TrickHousePuzzle8_EventScript_ItemBeadMail:: finditem ITEM_BEAD_MAIL end -VictoryRoad_1F_EventScript_ItemMaxElixir:: @ 8291483 +VictoryRoad_1F_EventScript_ItemMaxElixir:: finditem ITEM_MAX_ELIXIR end -VictoryRoad_1F_EventScript_ItemPPUp:: @ 8291490 +VictoryRoad_1F_EventScript_ItemPPUp:: finditem ITEM_PP_UP end -VictoryRoad_B1F_EventScript_ItemTM29:: @ 829149D +VictoryRoad_B1F_EventScript_ItemTM29:: finditem ITEM_TM29 end -VictoryRoad_B1F_EventScript_ItemFullRestore:: @ 82914AA +VictoryRoad_B1F_EventScript_ItemFullRestore:: finditem ITEM_FULL_RESTORE end -VictoryRoad_B2F_EventScript_ItemFullHeal:: @ 82914B7 +VictoryRoad_B2F_EventScript_ItemFullHeal:: finditem ITEM_FULL_HEAL end -ArtisanCave_B1F_EventScript_ItemHPUp:: @ 82914C4 +ArtisanCave_B1F_EventScript_ItemHPUp:: finditem ITEM_HP_UP end -ArtisanCave_1F_EventScript_ItemCarbos:: @ 82914D1 +ArtisanCave_1F_EventScript_ItemCarbos:: finditem ITEM_CARBOS end -MagmaHideout_1F_EventScript_ItemRareCandy:: @ 82914DE +MagmaHideout_1F_EventScript_ItemRareCandy:: finditem ITEM_RARE_CANDY end -MagmaHideout_2F_2R_EventScript_MaxElixir:: @ 82914EB +MagmaHideout_2F_2R_EventScript_ItemMaxElixir:: finditem ITEM_MAX_ELIXIR end -MagmaHideout_2F_2R_EventScript_ItemFullRestore:: @ 82914F8 +MagmaHideout_2F_2R_EventScript_ItemFullRestore:: finditem ITEM_FULL_RESTORE end -MagmaHideout_3F_1R_EventScript_ItemNugget:: @ 8291505 +MagmaHideout_3F_1R_EventScript_ItemNugget:: finditem ITEM_NUGGET end -MagmaHideout_3F_2R_EventScript_ItemPPMax:: @ 8291512 +MagmaHideout_3F_2R_EventScript_ItemPPMax:: finditem ITEM_PP_MAX end -MagmaHideout_4F_EventScript_MaxRevive:: @ 829151F +MagmaHideout_4F_EventScript_ItemMaxRevive:: finditem ITEM_MAX_REVIVE end -MagmaHideout_3F_3R_EventScript_ItemEscapeRope:: @ 829152C +MagmaHideout_3F_3R_EventScript_ItemEscapeRope:: finditem ITEM_ESCAPE_ROPE end diff --git a/data/scripts/kecleon.inc b/data/scripts/kecleon.inc index 659cd027b9..4142174990 100644 --- a/data/scripts/kecleon.inc +++ b/data/scripts/kecleon.inc @@ -1,53 +1,53 @@ -Route120_EventScript_Kecleon1:: @ 82722DB +Route120_EventScript_Kecleon1:: lock faceplayer setvar VAR_0x8009, 1 goto EventScript_Kecleon end -Route120_EventScript_Kecleon2:: @ 82722E8 +Route120_EventScript_Kecleon2:: lock faceplayer setvar VAR_0x8009, 2 goto EventScript_Kecleon end -Route120_EventScript_Kecleon3:: @ 82722F5 +Route120_EventScript_Kecleon3:: lock faceplayer setvar VAR_0x8009, 3 goto EventScript_Kecleon end -Route120_EventScript_Kecleon4:: @ 8272302 +Route120_EventScript_Kecleon4:: lock faceplayer setvar VAR_0x8009, 4 goto EventScript_Kecleon end -Route120_EventScript_Kecleon5:: @ 827230F +Route120_EventScript_Kecleon5:: lock faceplayer setvar VAR_0x8009, 5 goto EventScript_Kecleon end -Route119_EventScript_Kecleon1:: @ 827231C +Route119_EventScript_Kecleon1:: lock faceplayer setvar VAR_0x8009, 6 goto EventScript_Kecleon end -Route119_EventScript_Kecleon2:: @ 8272329 +Route119_EventScript_Kecleon2:: lock faceplayer setvar VAR_0x8009, 7 goto EventScript_Kecleon end -EventScript_Kecleon:: @ 8272336 +EventScript_Kecleon:: checkitem ITEM_DEVON_SCOPE, 1 compare VAR_RESULT, 1 goto_if_eq EventScript_AskUseDevonScope @@ -55,14 +55,14 @@ EventScript_Kecleon:: @ 8272336 release end -EventScript_AskUseDevonScope:: @ 8272350 +EventScript_AskUseDevonScope:: msgbox Kecleon_Text_WantToUseDevonScope, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq EventScript_BattleKecleon release end -EventScript_BattleKecleon:: @ 8272365 +EventScript_BattleKecleon:: msgbox Kecleon_Text_UseDevonScopeMonAttacked, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer @@ -87,11 +87,11 @@ EventScript_BattleKecleon:: @ 8272365 release end -EventScript_RemoveKecleon:: @ 82723C1 +EventScript_RemoveKecleon:: goto Common_EventScript_RemoveStaticPokemon end -Movement_KecleonAppears: @ 82723C7 +Movement_KecleonAppears: set_visible delay_4 set_invisible diff --git a/data/scripts/lilycove_lady.inc b/data/scripts/lilycove_lady.inc index 40ead8e585..137af87524 100644 --- a/data/scripts/lilycove_lady.inc +++ b/data/scripts/lilycove_lady.inc @@ -1,7 +1,7 @@ .set LOCALID_LILYCOVE_LADY, 4 .set LOCALID_LADYS_MON, 5 -LilycoveCity_PokemonCenter_1F_EventScript_LilycoveLady:: @ 82A836B +LilycoveCity_PokemonCenter_1F_EventScript_LilycoveLady:: special Script_GetLilycoveLadyId switch VAR_RESULT case LILYCOVE_LADY_QUIZ, LilycoveCity_PokemonCenter_1F_EventScript_QuizLady @@ -9,7 +9,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_LilycoveLady:: @ 82A836B case LILYCOVE_LADY_CONTEST, LilycoveCity_PokemonCenter_1F_EventScript_ContestLady end -LilycoveCity_PokemonCenter_1F_EventScript_FavorLady:: @ 82A8395 +LilycoveCity_PokemonCenter_1F_EventScript_FavorLady:: lock faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheFavorLady, MSGBOX_DEFAULT @@ -22,12 +22,12 @@ LilycoveCity_PokemonCenter_1F_EventScript_FavorLady:: @ 82A8395 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize end -LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyCompleted:: @ 82A83C6 +LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyCompleted:: msgbox LilycoveCity_PokemonCenter_1F_Text_ThankYouForLastTime, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyReady:: @ 82A83D0 +LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyReady:: special BufferFavorLadyRequest msgbox LilycoveCity_PokemonCenter_1F_Text_ObsessedWithThing, MSGBOX_DEFAULT specialvar VAR_RESULT, HasAnotherPlayerGivenFavorLadyItem @@ -37,7 +37,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyReady:: @ 82A83D0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_TellAboutPlayersItem end -LilycoveCity_PokemonCenter_1F_EventScript_TellAboutPlayersItem:: @ 82A83F7 +LilycoveCity_PokemonCenter_1F_EventScript_TellAboutPlayersItem:: special BufferFavorLadyItemName special BufferFavorLadyPlayerName specialvar VAR_RESULT, DidFavorLadyLikeItem @@ -47,17 +47,17 @@ LilycoveCity_PokemonCenter_1F_EventScript_TellAboutPlayersItem:: @ 82A83F7 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveGreatThing end -LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveBadThing:: @ 82A8419 +LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveBadThing:: msgbox LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeBadThing, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_RequestItem end -LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveGreatThing:: @ 82A8427 +LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveGreatThing:: msgbox LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeGreatThing, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_RequestItem end -LilycoveCity_PokemonCenter_1F_EventScript_RequestItem:: @ 82A8435 +LilycoveCity_PokemonCenter_1F_EventScript_RequestItem:: msgbox LilycoveCity_PokemonCenter_1F_Text_WillYouShareThing, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor @@ -65,17 +65,17 @@ LilycoveCity_PokemonCenter_1F_EventScript_RequestItem:: @ 82A8435 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AcceptFavor end -LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor:: @ 82A8454 +LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor:: msgbox LilycoveCity_PokemonCenter_1F_Text_IsThatSoGoodbye, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_AcceptFavor:: @ 82A845E +LilycoveCity_PokemonCenter_1F_EventScript_AcceptFavor:: msgbox LilycoveCity_PokemonCenter_1F_Text_WhatWillYouGiveMe, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem end -LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem:: @ 82A846C +LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem:: fadescreen FADE_TO_BLACK setvar VAR_RESULT, 0 special Script_FavorLadyOpenBagMenu @@ -86,7 +86,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem:: @ 82A846C goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GiveFavorItem end -LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChooseFavorItem:: @ 82A848E +LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChooseFavorItem:: msgbox LilycoveCity_PokemonCenter_1F_Text_NotWillingToShare, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor @@ -94,7 +94,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChooseFavorItem:: @ 82A848E goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem end -LilycoveCity_PokemonCenter_1F_EventScript_GiveFavorItem:: @ 82A84AD +LilycoveCity_PokemonCenter_1F_EventScript_GiveFavorItem:: specialvar VAR_RESULT, Script_DoesFavorLadyLikeItem compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DidntLikeFavorItem @@ -102,13 +102,13 @@ LilycoveCity_PokemonCenter_1F_EventScript_GiveFavorItem:: @ 82A84AD goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_CheckLovedItem end -LilycoveCity_PokemonCenter_1F_EventScript_DidntLikeFavorItem:: @ 82A84C9 +LilycoveCity_PokemonCenter_1F_EventScript_DidntLikeFavorItem:: special BufferFavorLadyRequest msgbox LilycoveCity_PokemonCenter_1F_Text_IllTryToCherishIt, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_CheckLovedItem:: @ 82A84D6 +LilycoveCity_PokemonCenter_1F_EventScript_CheckLovedItem:: specialvar VAR_RESULT, IsFavorLadyThresholdMet compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_LikedFavorItem @@ -116,19 +116,19 @@ LilycoveCity_PokemonCenter_1F_EventScript_CheckLovedItem:: @ 82A84D6 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_LovedFavorItem end -LilycoveCity_PokemonCenter_1F_EventScript_LikedFavorItem:: @ 82A84F2 +LilycoveCity_PokemonCenter_1F_EventScript_LikedFavorItem:: special BufferFavorLadyRequest msgbox LilycoveCity_PokemonCenter_1F_Text_IWillCherishThis, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_LovedFavorItem:: @ 82A84FF +LilycoveCity_PokemonCenter_1F_EventScript_LovedFavorItem:: special BufferFavorLadyRequest msgbox LilycoveCity_PokemonCenter_1F_Text_IWillTreasureThis, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize end -LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize:: @ 82A8510 +LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize:: setvar VAR_0x8004, 0 specialvar VAR_0x8004, FavorLadyGetPrize msgbox LilycoveCity_PokemonCenter_1F_Text_IllGiveYouThisInReturn, MSGBOX_DEFAULT @@ -139,17 +139,17 @@ LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize:: @ 82A8510 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ReceivedFavorPrize end -LilycoveCity_PokemonCenter_1F_EventScript_NoRoomForFavorPrize:: @ 82A8545 +LilycoveCity_PokemonCenter_1F_EventScript_NoRoomForFavorPrize:: msgbox LilycoveCity_PokemonCenter_1F_Text_YouDontHaveSpaceForIt, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_ReceivedFavorPrize:: @ 82A854F +LilycoveCity_PokemonCenter_1F_EventScript_ReceivedFavorPrize:: special SetFavorLadyState_Complete release end -LilycoveCity_PokemonCenter_1F_EventScript_QuizLady:: @ 82A8554 +LilycoveCity_PokemonCenter_1F_EventScript_QuizLady:: lock faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheQuizLady, MSGBOX_DEFAULT @@ -162,7 +162,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_QuizLady:: @ 82A8554 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize end -LilycoveCity_PokemonCenter_1F_EventScript_HasQuiz:: @ 82A8585 +LilycoveCity_PokemonCenter_1F_EventScript_HasQuiz:: specialvar VAR_RESULT, GetQuizAuthor compare VAR_RESULT, QUIZ_AUTHOR_PLAYER goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz @@ -172,7 +172,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_HasQuiz:: @ 82A8585 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_LadyQuizReady end -LilycoveCity_PokemonCenter_1F_EventScript_CheckMadeQuiz:: @ 82A85AC +LilycoveCity_PokemonCenter_1F_EventScript_CheckMadeQuiz:: specialvar VAR_RESULT, IsQuizLadyWaitingForChallenger compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz @@ -180,22 +180,22 @@ LilycoveCity_PokemonCenter_1F_EventScript_CheckMadeQuiz:: @ 82A85AC goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz:: @ 82A85C8 +LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz:: msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingToTakeYourQuiz, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_PlayerQuizReady:: @ 82A85D2 +LilycoveCity_PokemonCenter_1F_EventScript_PlayerQuizReady:: msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_LadyQuizReady:: @ 82A85E0 +LilycoveCity_PokemonCenter_1F_EventScript_LadyQuizReady:: msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz:: @ 82A85EE +LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz:: setvar VAR_0x8004, 0 msgbox LilycoveCity_PokemonCenter_1F_Text_TakeQuizChallenge, MSGBOX_YESNO compare VAR_RESULT, YES @@ -204,38 +204,38 @@ LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz:: @ 82A85EE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_DeclineQuiz:: @ 82A8612 +LilycoveCity_PokemonCenter_1F_EventScript_DeclineQuiz:: msgbox LilycoveCity_PokemonCenter_1F_Text_HowBoringBye, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_TakeQuiz:: @ 82A861C +LilycoveCity_PokemonCenter_1F_EventScript_TakeQuiz:: special ClearQuizLadyPlayerAnswer compare VAR_0x8004, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ShowQuestion compare VAR_0x8004, EASY_CHAT_TYPE_QUIZ_ANSWER goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GetAnswer -LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState:: @ 82A8635 +LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState:: compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskQuitQuiz compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse end -LilycoveCity_PokemonCenter_1F_EventScript_ShowQuestion:: @ 82A864C +LilycoveCity_PokemonCenter_1F_EventScript_ShowQuestion:: special QuizLadyShowQuizQuestion waitstate goto LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState end -LilycoveCity_PokemonCenter_1F_EventScript_GetAnswer:: @ 82A8656 +LilycoveCity_PokemonCenter_1F_EventScript_GetAnswer:: special QuizLadyGetPlayerAnswer waitstate goto LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState end -LilycoveCity_PokemonCenter_1F_EventScript_AskQuitQuiz:: @ 82A8660 +LilycoveCity_PokemonCenter_1F_EventScript_AskQuitQuiz:: msgbox LilycoveCity_PokemonCenter_1F_Text_YoureGoingToQuit, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_QuitTakingQuiz @@ -243,12 +243,12 @@ LilycoveCity_PokemonCenter_1F_EventScript_AskQuitQuiz:: @ 82A8660 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_TakeQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_QuitTakingQuiz:: @ 82A867F +LilycoveCity_PokemonCenter_1F_EventScript_QuitTakingQuiz:: msgbox LilycoveCity_PokemonCenter_1F_Text_TakeTheQuizAnotherTime, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse:: @ 82A8689 +LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse:: special SetQuizLadyState_Complete msgbox LilycoveCity_PokemonCenter_1F_Text_WaitForAnswer, MSGBOX_DEFAULT specialvar VAR_RESULT, IsQuizAnswerCorrect @@ -258,7 +258,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse:: @ 82A8689 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse end -LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse:: @ 82A86B0 +LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse:: playse SE_SUCCESS delay 10 playse SE_SUCCESS @@ -266,7 +266,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse:: @ 82A86B0 goto LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize end -LilycoveCity_PokemonCenter_1F_EventScript_IncorrectResponse:: @ 82A86C7 +LilycoveCity_PokemonCenter_1F_EventScript_IncorrectResponse:: special BufferQuizCorrectAnswer special BufferQuizPrizeName playse SE_FAILURE @@ -278,7 +278,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_IncorrectResponse:: @ 82A86C7 end @ VAR_RESULT is essentially ignored, both jumps are identical -LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize:: @ 82A86EC +LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize:: specialvar VAR_RESULT, BufferQuizAuthorNameAndCheckIfLady compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GivePrize1 @@ -286,17 +286,17 @@ LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize:: @ 82A86EC goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GivePrize0 end -LilycoveCity_PokemonCenter_1F_EventScript_GivePrize1:: @ 82A8708 +LilycoveCity_PokemonCenter_1F_EventScript_GivePrize1:: msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_GivePrize end -LilycoveCity_PokemonCenter_1F_EventScript_GivePrize0:: @ 82A8716 +LilycoveCity_PokemonCenter_1F_EventScript_GivePrize0:: msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_GivePrize end -LilycoveCity_PokemonCenter_1F_EventScript_GivePrize:: @ 82A8724 +LilycoveCity_PokemonCenter_1F_EventScript_GivePrize:: setvar VAR_0x8005, 0 special BufferQuizPrizeItem special SetQuizLadyState_Complete @@ -306,13 +306,13 @@ LilycoveCity_PokemonCenter_1F_EventScript_GivePrize:: @ 82A8724 goto LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_NoSpaceForQuizPrize:: @ 82A874C +LilycoveCity_PokemonCenter_1F_EventScript_NoSpaceForQuizPrize:: msgbox LilycoveCity_PokemonCenter_1F_Text_YourBagIsFilledUp, MSGBOX_DEFAULT special SetQuizLadyState_GivePrize release end -LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz:: @ 82A8759 +LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz:: msgbox LilycoveCity_PokemonCenter_1F_Text_MakeYourOwnQuiz, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_MakeQuiz @@ -320,15 +320,15 @@ LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz:: @ 82A8759 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz:: @ 82A8778 +LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz:: special QuizLadyPickNewQuestion msgbox LilycoveCity_PokemonCenter_1F_Text_MaybeNextTime, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_MakeQuiz:: @ 82A8785 +LilycoveCity_PokemonCenter_1F_EventScript_MakeQuiz:: msgbox LilycoveCity_PokemonCenter_1F_Text_PickYourPrize, MSGBOX_DEFAULT -LilycoveCity_PokemonCenter_1F_EventScript_PickPrize:: @ 82A878D +LilycoveCity_PokemonCenter_1F_EventScript_PickPrize:: fadescreen FADE_TO_BLACK setvar VAR_RESULT, 0 special Script_QuizLadyOpenBagMenu @@ -339,7 +339,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_PickPrize:: @ 82A878D goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_WriteQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChoosingPrize:: @ 82A87AF +LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChoosingPrize:: msgbox LilycoveCity_PokemonCenter_1F_Text_QuitChoosingPrize, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz @@ -347,12 +347,12 @@ LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChoosingPrize:: @ 82A87AF goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_PickPrize end -LilycoveCity_PokemonCenter_1F_EventScript_WriteQuiz:: @ 82A87CE +LilycoveCity_PokemonCenter_1F_EventScript_WriteQuiz:: msgbox LilycoveCity_PokemonCenter_1F_Text_WriteYourQuiz, MSGBOX_DEFAULT special ClearQuizLadyQuestionAndAnswer special ClearQuizLadyPlayerAnswer setvar VAR_0x8004, EASY_CHAT_TYPE_QUIZ_QUESTION -LilycoveCity_PokemonCenter_1F_EventScript_WriteQuizQuestion:: @ 82A87E1 +LilycoveCity_PokemonCenter_1F_EventScript_WriteQuizQuestion:: fadescreen FADE_TO_BLACK special QuizLadySetCustomQuestion waitstate @@ -361,7 +361,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_WriteQuizQuestion:: @ 82A87E1 goto LilycoveCity_PokemonCenter_1F_EventScript_FinishMakingQuiz end -LilycoveCity_PokemonCenter_1F_EventScript_AskQuitWritingQuizQuestion:: @ 82A87F8 +LilycoveCity_PokemonCenter_1F_EventScript_AskQuitWritingQuizQuestion:: msgbox LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizQuestion, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz @@ -369,7 +369,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_AskQuitWritingQuizQuestion:: @ 82A87F8 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_WriteQuizQuestion end -LilycoveCity_PokemonCenter_1F_EventScript_FinishMakingQuiz:: @ 82A8817 +LilycoveCity_PokemonCenter_1F_EventScript_FinishMakingQuiz:: special QuizLadyTakePrizeForCustomQuiz special QuizLadyRecordCustomQuizData special QuizLadySetWaitingForChallenger @@ -377,7 +377,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_FinishMakingQuiz:: @ 82A8817 release end -LilycoveCity_PokemonCenter_1F_EventScript_ContestLady:: @ 82A882A +LilycoveCity_PokemonCenter_1F_EventScript_ContestLady:: lock faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheContestLady, MSGBOX_DEFAULT @@ -389,7 +389,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_ContestLady:: @ 82A882A end @ Redundant with above script, VAR_RESULT will always be FALSE here -LilycoveCity_PokemonCenter_1F_EventScript_NotGivenPokeblock:: @ 82A8850 +LilycoveCity_PokemonCenter_1F_EventScript_NotGivenPokeblock:: specialvar VAR_RESULT, ShouldContestLadyShowGoOnAir compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskForPokeblock @@ -397,12 +397,12 @@ LilycoveCity_PokemonCenter_1F_EventScript_NotGivenPokeblock:: @ 82A8850 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GivenPokeblock end -LilycoveCity_PokemonCenter_1F_EventScript_GivenPokeblock:: @ 82A886C +LilycoveCity_PokemonCenter_1F_EventScript_GivenPokeblock:: msgbox LilycoveCity_PokemonCenter_1F_Text_ThankForPokeblock, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_AskForPokeblock:: @ 82A8876 +LilycoveCity_PokemonCenter_1F_EventScript_AskForPokeblock:: special Script_BufferContestLadyCategoryAndMonName msgbox LilycoveCity_PokemonCenter_1F_Text_MyFriendDisplaysQuality, MSGBOX_DEFAULT checkitem ITEM_POKEBLOCK_CASE, 1 @@ -415,12 +415,12 @@ LilycoveCity_PokemonCenter_1F_EventScript_AskForPokeblock:: @ 82A8876 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock end -LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock:: @ 82A88B0 +LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock:: msgbox LilycoveCity_PokemonCenter_1F_Text_WhatACheapskate, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock:: @ 82A88BA +LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock:: fadescreen FADE_TO_BLACK special OpenPokeblockCaseForContestLady waitstate @@ -430,7 +430,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock:: @ 82A88BA goto_if_ne LilycoveCity_PokemonCenter_1F_EventScript_GivePokeblock end -LilycoveCity_PokemonCenter_1F_EventScript_AskQuitGivingPokeblock:: @ 82A88D7 +LilycoveCity_PokemonCenter_1F_EventScript_AskQuitGivingPokeblock:: msgbox LilycoveCity_PokemonCenter_1F_Text_ICantHaveOnePokeblock, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock @@ -438,7 +438,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_AskQuitGivingPokeblock:: @ 82A88D7 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock end -LilycoveCity_PokemonCenter_1F_EventScript_GivePokeblock:: @ 82A88F6 +LilycoveCity_PokemonCenter_1F_EventScript_GivePokeblock:: msgbox LilycoveCity_PokemonCenter_1F_Text_IllUseYourPokeblock, MSGBOX_DEFAULT special SetContestLadyGivenPokeblock special GetContestLadyMonSpecies @@ -446,7 +446,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_GivePokeblock:: @ 82A88F6 end @ VAR_0x8004 here is the return value from GivePokeblockToContestLady -LilycoveCity_PokemonCenter_1F_EventScript_FeedPokeblock:: @ 82A890A +LilycoveCity_PokemonCenter_1F_EventScript_FeedPokeblock:: applymovement LOCALID_LILYCOVE_LADY, LilycoveCity_PokemonCenter_1F_Movement_LadyFaceMon waitmovement 0 delay 60 @@ -463,11 +463,11 @@ LilycoveCity_PokemonCenter_1F_EventScript_FeedPokeblock:: @ 82A890A end @ VAR_0x8004 here is the return value from GivePokeblockToContestLady -LilycoveCity_PokemonCenter_1F_EventScript_MonEnjoyPokeblock:: @ 82A893F +LilycoveCity_PokemonCenter_1F_EventScript_MonEnjoyPokeblock:: applymovement LOCALID_LADYS_MON, LilycoveCity_PokemonCenter_1F_Movement_MonJump waitmovement 0 delay 60 -LilycoveCity_PokemonCenter_1F_EventScript_FinishFeedPokeblock:: @ 82A894C +LilycoveCity_PokemonCenter_1F_EventScript_FinishFeedPokeblock:: applymovement LOCALID_LILYCOVE_LADY, LilycoveCity_PokemonCenter_1F_Movement_LadyFacePlayer waitmovement 0 delay 60 @@ -477,62 +477,62 @@ LilycoveCity_PokemonCenter_1F_EventScript_FinishFeedPokeblock:: @ 82A894C goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_MonLikedPokeblock end -LilycoveCity_PokemonCenter_1F_EventScript_MonDislikedPokeblock:: @ 82A8970 +LilycoveCity_PokemonCenter_1F_EventScript_MonDislikedPokeblock:: msgbox LilycoveCity_PokemonCenter_1F_Text_NoChangeThanks, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow end -LilycoveCity_PokemonCenter_1F_EventScript_MonLikedPokeblock:: @ 82A897E +LilycoveCity_PokemonCenter_1F_EventScript_MonLikedPokeblock:: special Script_BufferContestLadyCategoryAndMonName msgbox LilycoveCity_PokemonCenter_1F_Text_ReallyImprovedThanks, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow end -LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow:: @ 82A898F +LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow:: specialvar VAR_RESULT, ShouldContestLadyShowGoOnAir compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AirContestLadyShow release end -LilycoveCity_PokemonCenter_1F_EventScript_AirContestLadyShow:: @ 82A89A1 +LilycoveCity_PokemonCenter_1F_EventScript_AirContestLadyShow:: msgbox LilycoveCity_PokemonCenter_1F_Text_ReadyToEnterContests, MSGBOX_DEFAULT special PutLilycoveContestLadyShowOnTheAir release end -LilycoveCity_PokemonCenter_1F_EventScript_NoPokeblockCase:: @ 82A89AE +LilycoveCity_PokemonCenter_1F_EventScript_NoPokeblockCase:: msgbox LilycoveCity_PokemonCenter_1F_Text_DontHaveAPokeblockCase, MSGBOX_DEFAULT release end -LilycoveCity_PokemonCenter_1F_Movement_LadyFaceMon: @ 82A89B8 +LilycoveCity_PokemonCenter_1F_Movement_LadyFaceMon: face_right delay_8 step_end -LilycoveCity_PokemonCenter_1F_Movement_MonFaceLady: @ 82A89BB +LilycoveCity_PokemonCenter_1F_Movement_MonFaceLady: face_left delay_8 step_end @ Unused -LilycoveCity_PokemonCenter_1F_Movement_MonFaceDown: @ 82A89BE +LilycoveCity_PokemonCenter_1F_Movement_MonFaceDown: face_down step_end -LilycoveCity_PokemonCenter_1F_Movement_LadyFacePlayer: @ 82A89C0 +LilycoveCity_PokemonCenter_1F_Movement_LadyFacePlayer: face_player step_end -LilycoveCity_PokemonCenter_1F_Movement_MonJump: @ 82A89C2 +LilycoveCity_PokemonCenter_1F_Movement_MonJump: disable_jump_landing_ground_effect jump_in_place_left disable_jump_landing_ground_effect jump_in_place_left step_end -LilycoveCity_PokemonCenter_1F_EventScript_ContestLadyMon:: @ 82A89C7 +LilycoveCity_PokemonCenter_1F_EventScript_ContestLadyMon:: specialvar VAR_RESULT, GetContestLadyCategory special Script_BufferContestLadyCategoryAndMonName special GetContestLadyMonSpecies @@ -548,7 +548,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_ContestLadyMon:: @ 82A89C7 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_Pikachu end -LilycoveCity_PokemonCenter_1F_EventScript_Zigzagoon:: @ 82A8A0A +LilycoveCity_PokemonCenter_1F_EventScript_Zigzagoon:: lock faceplayer waitse @@ -558,7 +558,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Zigzagoon:: @ 82A8A0A release end -LilycoveCity_PokemonCenter_1F_EventScript_Skitty:: @ 82A8A1D +LilycoveCity_PokemonCenter_1F_EventScript_Skitty:: lock faceplayer waitse @@ -568,7 +568,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Skitty:: @ 82A8A1D release end -LilycoveCity_PokemonCenter_1F_EventScript_Poochyena:: @ 82A8A30 +LilycoveCity_PokemonCenter_1F_EventScript_Poochyena:: lock faceplayer waitse @@ -578,7 +578,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Poochyena:: @ 82A8A30 release end -LilycoveCity_PokemonCenter_1F_EventScript_Kecleon:: @ 82A8A43 +LilycoveCity_PokemonCenter_1F_EventScript_Kecleon:: lock faceplayer waitse @@ -588,7 +588,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Kecleon:: @ 82A8A43 release end -LilycoveCity_PokemonCenter_1F_EventScript_Pikachu:: @ 82A8A56 +LilycoveCity_PokemonCenter_1F_EventScript_Pikachu:: lock faceplayer waitse @@ -598,54 +598,54 @@ LilycoveCity_PokemonCenter_1F_EventScript_Pikachu:: @ 82A8A56 release end -LilycoveCity_PokemonCenter_1F_Text_ImTheFavorLady: @ 82A8A69 +LilycoveCity_PokemonCenter_1F_Text_ImTheFavorLady: .string "I'm the FAVOR LADY…$" -LilycoveCity_PokemonCenter_1F_Text_ObsessedWithThing: @ 82A8A7D +LilycoveCity_PokemonCenter_1F_Text_ObsessedWithThing: .string "I've recently developed an obsession\n" .string "for {STR_VAR_1} things…$" -LilycoveCity_PokemonCenter_1F_Text_ThankYouForLastTime: @ 82A8AB1 +LilycoveCity_PokemonCenter_1F_Text_ThankYouForLastTime: .string "Oh…\n" .string "Thank you for last time…$" -LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeBadThing: @ 82A8ACE +LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeBadThing: .string "Before, I think it was {STR_VAR_3}…\p" .string "{STR_VAR_3} gave me one {STR_VAR_2},\n" .string "saying it was {STR_VAR_1}.\p" .string "But it wasn't {STR_VAR_1}.\n" .string "Not in the least bit.$" -LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeGreatThing: @ 82A8B36 +LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeGreatThing: .string "Before, {STR_VAR_3} gave me a very\n" .string "{STR_VAR_1} {STR_VAR_2}.\p" .string "I cherish it now.$" -LilycoveCity_PokemonCenter_1F_Text_WillYouShareThing: @ 82A8B69 +LilycoveCity_PokemonCenter_1F_Text_WillYouShareThing: .string "Listen, if you have anything that\n" .string "is {STR_VAR_1}, will you share it\l" .string "with me?$" -LilycoveCity_PokemonCenter_1F_Text_WhatWillYouGiveMe: @ 82A8BAD +LilycoveCity_PokemonCenter_1F_Text_WhatWillYouGiveMe: .string "…Really?\n" .string "What will you give me?$" -LilycoveCity_PokemonCenter_1F_Text_IsThatSoGoodbye: @ 82A8BCD +LilycoveCity_PokemonCenter_1F_Text_IsThatSoGoodbye: .string "Is that so?\n" .string "Then, it's good-bye…$" -LilycoveCity_PokemonCenter_1F_Text_NotWillingToShare: @ 82A8BEE +LilycoveCity_PokemonCenter_1F_Text_NotWillingToShare: .string "Oh…\n" .string "You're not willing to share?$" -LilycoveCity_PokemonCenter_1F_Text_IllTryToCherishIt: @ 82A8C0F +LilycoveCity_PokemonCenter_1F_Text_IllTryToCherishIt: .string "Oh?\n" .string "That {STR_VAR_2} is {STR_VAR_1}?\p" .string "…Oh, is that right?\p" .string "Well, I owe you a thanks anyway.\n" .string "I'll try to cherish it…$" -LilycoveCity_PokemonCenter_1F_Text_IWillCherishThis: @ 82A8C6F +LilycoveCity_PokemonCenter_1F_Text_IWillCherishThis: .string "Oh…\p" .string "That's a quite {STR_VAR_1}\n" .string "{STR_VAR_2}…\p" @@ -654,7 +654,7 @@ LilycoveCity_PokemonCenter_1F_Text_IWillCherishThis: @ 82A8C6F .string "Thank you…\n" .string "I will cherish this…$" -LilycoveCity_PokemonCenter_1F_Text_IWillTreasureThis: @ 82A8CC8 +LilycoveCity_PokemonCenter_1F_Text_IWillTreasureThis: .string "…Oh, oh, oh…\p" .string "This is amazing!\n" .string "This really is {STR_VAR_1}!\p" @@ -664,90 +664,90 @@ LilycoveCity_PokemonCenter_1F_Text_IWillTreasureThis: @ 82A8CC8 .string "I will treasure this for the rest\n" .string "of my life!$" -LilycoveCity_PokemonCenter_1F_Text_IllGiveYouThisInReturn: @ 82A8D5D +LilycoveCity_PokemonCenter_1F_Text_IllGiveYouThisInReturn: .string "I'll give you this wonderful item in\n" .string "return for your fabulous gift.\p" .string "I hope you will cherish it…$" -LilycoveCity_PokemonCenter_1F_Text_YouDontHaveSpaceForIt: @ 82A8DBD +LilycoveCity_PokemonCenter_1F_Text_YouDontHaveSpaceForIt: .string "Oh, you can't have it if you don't have\n" .string "the space for it.\p" .string "Please come see me when you get\n" .string "your BAG organized…$" -LilycoveCity_PokemonCenter_1F_Text_ImTheQuizLady: @ 82A8E2B +LilycoveCity_PokemonCenter_1F_Text_ImTheQuizLady: .string "I'm the QUIZ LADY!\n" .string "I love quizzes!$" -LilycoveCity_PokemonCenter_1F_Text_WaitingToTakeYourQuiz: @ 82A8E4E +LilycoveCity_PokemonCenter_1F_Text_WaitingToTakeYourQuiz: .string "Oh?\p" .string "I'm waiting for a challenger to answer\n" .string "the quiz you made.\p" .string "We can chat another time, okay?$" -LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger: @ 82A8EAC +LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger: .string "I'm waiting for someone to challenge\n" .string "a quiz this {STR_VAR_1} thought up!$" -LilycoveCity_PokemonCenter_1F_Text_TakeQuizChallenge: @ 82A8EEC +LilycoveCity_PokemonCenter_1F_Text_TakeQuizChallenge: .string "If you answer correctly, you can win\n" .string "fabulous prizes!\p" .string "Would you like to take the quiz\n" .string "challenge?$" -LilycoveCity_PokemonCenter_1F_Text_WaitForAnswer: @ 82A8F4D +LilycoveCity_PokemonCenter_1F_Text_WaitForAnswer: .string "… … … … … …\n" .string "… … … … … …$" -LilycoveCity_PokemonCenter_1F_Text_HowBoringBye: @ 82A8F65 +LilycoveCity_PokemonCenter_1F_Text_HowBoringBye: .string "Oh, how boring!\n" .string "Bye-bye!$" -LilycoveCity_PokemonCenter_1F_Text_YoureGoingToQuit: @ 82A8F7E +LilycoveCity_PokemonCenter_1F_Text_YoureGoingToQuit: .string "Awww!\n" .string "You're going to quit?$" -LilycoveCity_PokemonCenter_1F_Text_TakeTheQuizAnotherTime: @ 82A8F9A +LilycoveCity_PokemonCenter_1F_Text_TakeTheQuizAnotherTime: .string "Please take the quiz challenge\n" .string "another time!$" -LilycoveCity_PokemonCenter_1F_Text_YouGotItRight: @ 82A8FC7 +LilycoveCity_PokemonCenter_1F_Text_YouGotItRight: .string "You're amazing! You've got it right!\n" .string "You're one sharp customer!$" -LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize: @ 82A9007 +LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize: .string "Congratulations!\n" .string "You've got the quiz right!\p" .string "You've won a prize provided by\n" .string "{STR_VAR_1}!$" @ Unused -LilycoveCity_PokemonCenter_1F_Text_XReceivedOneY: @ 82A9056 +LilycoveCity_PokemonCenter_1F_Text_XReceivedOneY: .string "{STR_VAR_1} received\n" .string "one {STR_VAR_2}!$" -LilycoveCity_PokemonCenter_1F_Text_YourBagIsFilledUp: @ 82A906A +LilycoveCity_PokemonCenter_1F_Text_YourBagIsFilledUp: .string "Oh? Your BAG is filled up!\n" .string "Come see me when you have room.$" -LilycoveCity_PokemonCenter_1F_Text_WrongTheCorrectAnswerIs: @ 82A90A5 +LilycoveCity_PokemonCenter_1F_Text_WrongTheCorrectAnswerIs: .string "Hmm… Wrong!\n" .string "The correct answer is “{STR_VAR_3}”!$" -LilycoveCity_PokemonCenter_1F_Text_IGetToKeepPrize: @ 82A90CD +LilycoveCity_PokemonCenter_1F_Text_IGetToKeepPrize: .string "Too bad!\p" .string "I get to keep the quiz prize\n" .string "{STR_VAR_1} now!$" -LilycoveCity_PokemonCenter_1F_Text_MakeYourOwnQuiz: @ 82A90FB +LilycoveCity_PokemonCenter_1F_Text_MakeYourOwnQuiz: .string "Listen, listen!\n" .string "Would you like to make your own quiz?$" -LilycoveCity_PokemonCenter_1F_Text_MaybeNextTime: @ 82A9131 +LilycoveCity_PokemonCenter_1F_Text_MaybeNextTime: .string "Oh, I see…\n" .string "Well, maybe next time!$" -LilycoveCity_PokemonCenter_1F_Text_PickYourPrize: @ 82A9153 +LilycoveCity_PokemonCenter_1F_Text_PickYourPrize: .string "Okay, the first thing you have to do\n" .string "is pick the prize for the person that\l" .string "answers your quiz correctly.\p" @@ -755,47 +755,47 @@ LilycoveCity_PokemonCenter_1F_Text_PickYourPrize: @ 82A9153 .string "the quiz can't get it right, I get to\l" .string "keep the prize!$" -LilycoveCity_PokemonCenter_1F_Text_QuitChoosingPrize: @ 82A9212 +LilycoveCity_PokemonCenter_1F_Text_QuitChoosingPrize: .string "If you don't choose a prize,\n" .string "your quiz can't be made.\p" .string "Are you going to quit making\n" .string "your quiz?$" -LilycoveCity_PokemonCenter_1F_Text_WriteYourQuiz: @ 82A9270 +LilycoveCity_PokemonCenter_1F_Text_WriteYourQuiz: .string "Oh, how nice!\n" .string "That's a wonderful prize!\p" .string "Next, you need to write your quiz\n" .string "question and its answer.$" -LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizQuestion: @ 82A92D3 +LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizQuestion: .string "Are you going to quit writing\n" .string "your quiz question?$" @ Unused -LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizAnswer: @ 82A9305 +LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizAnswer: .string "Are you going to quit choosing\n" .string "your quiz answer?$" -LilycoveCity_PokemonCenter_1F_Text_IllLookForAChallenger: @ 82A9336 +LilycoveCity_PokemonCenter_1F_Text_IllLookForAChallenger: .string "Thank you!\n" .string "You've put together a nice quiz.\p" .string "I'll go look for someone who'll take\n" .string "your quiz challenge right away.$" -LilycoveCity_PokemonCenter_1F_Text_ImTheContestLady: @ 82A93A7 +LilycoveCity_PokemonCenter_1F_Text_ImTheContestLady: .string "I'm the CONTEST LADY!\n" .string "I sure do love CONTESTS!$" -LilycoveCity_PokemonCenter_1F_Text_ThankForPokeblock: @ 82A93D6 +LilycoveCity_PokemonCenter_1F_Text_ThankForPokeblock: .string "Thanks for your {POKEBLOCK} before!$" -LilycoveCity_PokemonCenter_1F_Text_MyFriendDisplaysQuality: @ 82A93F4 +LilycoveCity_PokemonCenter_1F_Text_MyFriendDisplaysQuality: .string "This is my friend {STR_VAR_1}!\n" .string "It's the epitome of {STR_VAR_2}!\p" .string "But I think that it will display\n" .string "even more {STR_VAR_2}!$" -LilycoveCity_PokemonCenter_1F_Text_DontHaveAPokeblockCase: @ 82A9451 +LilycoveCity_PokemonCenter_1F_Text_DontHaveAPokeblockCase: .string "So, I need your help!\p" .string "Please, may I have one {POKEBLOCK}?\n" .string "All I'm asking for is one!\p" @@ -803,57 +803,57 @@ LilycoveCity_PokemonCenter_1F_Text_DontHaveAPokeblockCase: @ 82A9451 .string "Don't you have a {POKEBLOCK} CASE?\l" .string "That's no good. Next time, then!$" -LilycoveCity_PokemonCenter_1F_Text_AskingForOnePokeblock: @ 82A94E8 +LilycoveCity_PokemonCenter_1F_Text_AskingForOnePokeblock: .string "So, I need your help!\p" .string "Please, may I have one {POKEBLOCK}?\n" .string "All I'm asking for is one!$" -LilycoveCity_PokemonCenter_1F_Text_ICantHaveOnePokeblock: @ 82A9537 +LilycoveCity_PokemonCenter_1F_Text_ICantHaveOnePokeblock: .string "Awww!\n" .string "I can't have one {POKEBLOCK}?!$" -LilycoveCity_PokemonCenter_1F_Text_WhatACheapskate: @ 82A9556 +LilycoveCity_PokemonCenter_1F_Text_WhatACheapskate: .string "Sheesh!\n" .string "What a cheapskate!$" -LilycoveCity_PokemonCenter_1F_Text_IllUseYourPokeblock: @ 82A9571 +LilycoveCity_PokemonCenter_1F_Text_IllUseYourPokeblock: .string "Yay!\n" .string "Thank you!\p" .string "I'll feed my POKéMON your {POKEBLOCK}\n" .string "right away.$" -LilycoveCity_PokemonCenter_1F_Text_NoChangeThanks: @ 82A95AD +LilycoveCity_PokemonCenter_1F_Text_NoChangeThanks: .string "…It doesn't seem to have changed\n" .string "in any way at all…\p" .string "Hmm…\p" .string "Oh, well!\n" .string "Thank you very much!$" -LilycoveCity_PokemonCenter_1F_Text_ReallyImprovedThanks: @ 82A9605 +LilycoveCity_PokemonCenter_1F_Text_ReallyImprovedThanks: .string "Oh, yay!\n" .string "It's really delighted!\p" .string "I think it really improved {STR_VAR_1}'s\n" .string "{STR_VAR_2} quality, too.\p" .string "Thank you so much!$" -LilycoveCity_PokemonCenter_1F_Text_ReadyToEnterContests: @ 82A9669 +LilycoveCity_PokemonCenter_1F_Text_ReadyToEnterContests: .string "Hmm…\p" .string "I think we may be ready to enter\n" .string "some CONTESTS.\p" .string "If you see us in one somewhere,\n" .string "I hope you'll cheer for us.$" -LilycoveCity_PokemonCenter_1F_Text_Zigzagoon: @ 82A96DA +LilycoveCity_PokemonCenter_1F_Text_Zigzagoon: .string "{STR_VAR_1}: Guguuh!$" -LilycoveCity_PokemonCenter_1F_Text_Kecleon: @ 82A96E6 +LilycoveCity_PokemonCenter_1F_Text_Kecleon: .string "{STR_VAR_1}: Igigigiiih!$" -LilycoveCity_PokemonCenter_1F_Text_Poochyena: @ 82A96F6 +LilycoveCity_PokemonCenter_1F_Text_Poochyena: .string "{STR_VAR_1}: Baaarun…$" -LilycoveCity_PokemonCenter_1F_Text_Pikachu: @ 82A9703 +LilycoveCity_PokemonCenter_1F_Text_Pikachu: .string "{STR_VAR_1}: Pikka!$" -LilycoveCity_PokemonCenter_1F_Text_Skitty: @ 82A970E +LilycoveCity_PokemonCenter_1F_Text_Skitty: .string "{STR_VAR_1}: Umyaaaan!$" diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc index a6585ca4d7..a9c008e5ec 100644 --- a/data/scripts/mauville_man.inc +++ b/data/scripts/mauville_man.inc @@ -1,4 +1,4 @@ -MauvilleCity_PokemonCenter_1F_EventScript_MauvilleOldMan:: @ 828E066 +MauvilleCity_PokemonCenter_1F_EventScript_MauvilleOldMan:: special ScrSpecial_GetCurrentMauvilleMan switch VAR_RESULT case MAUVILLE_MAN_BARD, MauvilleCity_PokemonCenter_1F_EventScript_Bard @@ -9,7 +9,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_MauvilleOldMan:: @ 828E066 end @ Bard -MauvilleCity_PokemonCenter_1F_EventScript_Bard:: @ 828E0A6 +MauvilleCity_PokemonCenter_1F_EventScript_Bard:: lock faceplayer msgbox MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToHearMySong, MSGBOX_YESNO @@ -19,7 +19,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_Bard:: @ 828E0A6 goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineSong end -MauvilleCity_PokemonCenter_1F_EventScript_PlaySong:: @ 828E0C7 +MauvilleCity_PokemonCenter_1F_EventScript_PlaySong:: setvar VAR_0x8004, 0 special ScrSpecial_PlayBardSong delay 60 @@ -30,12 +30,12 @@ MauvilleCity_PokemonCenter_1F_EventScript_PlaySong:: @ 828E0C7 release end -MauvilleCity_PokemonCenter_1F_EventScript_DeclineSong:: @ 828E0EA +MauvilleCity_PokemonCenter_1F_EventScript_DeclineSong:: msgbox MauvilleCity_PokemonCenter_1F_Text_BardFeelingTheBlues1, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_AskToWriteLyrics:: @ 828E0F4 +MauvilleCity_PokemonCenter_1F_EventScript_AskToWriteLyrics:: msgbox MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToWriteSomeLyrics, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics @@ -43,7 +43,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_AskToWriteLyrics:: @ 828E0F4 goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics end -MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics:: @ 828E113 +MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics:: setvar VAR_0x8004, EASY_CHAT_TYPE_BARD_SONG call Common_ShowEasyChatScreen lock @@ -62,13 +62,13 @@ MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics:: @ 828E113 release end -MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics:: @ 828E15D +MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics:: msgbox MauvilleCity_PokemonCenter_1F_Text_BardFeelingTheBlues2, MSGBOX_DEFAULT release end @ Hipster -MauvilleCity_PokemonCenter_1F_EventScript_Hipster:: @ 828E167 +MauvilleCity_PokemonCenter_1F_EventScript_Hipster:: lock faceplayer setflag FLAG_SYS_HIPSTER_MEET @@ -80,7 +80,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_Hipster:: @ 828E167 release end -MauvilleCity_PokemonCenter_1F_EventScript_TryTeachWord:: @ 828E18C +MauvilleCity_PokemonCenter_1F_EventScript_TryTeachWord:: special ScrSpecial_HipsterTeachWord compare VAR_RESULT, TRUE goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_TeachWord @@ -88,73 +88,73 @@ MauvilleCity_PokemonCenter_1F_EventScript_TryTeachWord:: @ 828E18C release end -MauvilleCity_PokemonCenter_1F_EventScript_TeachWord:: @ 828E1A4 +MauvilleCity_PokemonCenter_1F_EventScript_TeachWord:: msgbox MauvilleCity_PokemonCenter_1F_Text_HaveYouHeardOfPhrase, MSGBOX_DEFAULT special ScrSpecial_SetHipsterSpokenFlag release end @ Trader -MauvilleCity_PokemonCenter_1F_Text_WantToTradeDecor: @ 828E1B1 +MauvilleCity_PokemonCenter_1F_Text_WantToTradeDecor: .string "Hi, I'm the TRADER.\n" .string "Want to trade decorations with me?$" -MauvilleCity_PokemonCenter_1F_Text_TraderFeelingTheBlues: @ 828E1E8 +MauvilleCity_PokemonCenter_1F_Text_TraderFeelingTheBlues: .string "Oh…\n" .string "You've left me feeling the blues…$" -MauvilleCity_PokemonCenter_1F_Text_WeveAlreadyTraded: @ 828E20E +MauvilleCity_PokemonCenter_1F_Text_WeveAlreadyTraded: .string "But we've traded decorations already,\n" .string "you and I.$" -MauvilleCity_PokemonCenter_1F_Text_PickADecorItem: @ 828E23F +MauvilleCity_PokemonCenter_1F_Text_PickADecorItem: .string "If you see any decorative item that\n" .string "you want of mine, speak up.$" -MauvilleCity_PokemonCenter_1F_Text_YouDontWantAnything: @ 828E27F +MauvilleCity_PokemonCenter_1F_Text_YouDontWantAnything: .string "You don't want anything?\n" .string "I feel unwanted…$" -MauvilleCity_PokemonCenter_1F_Text_OnceBelongedToPlayerDoYouWantIt: @ 828E2A9 +MauvilleCity_PokemonCenter_1F_Text_OnceBelongedToPlayerDoYouWantIt: .string "That decorative item once belonged\n" .string "to {STR_VAR_1}.\p" .string "Do you want it?$" -MauvilleCity_PokemonCenter_1F_Text_YouDontHaveAnyDecor: @ 828E2E3 +MauvilleCity_PokemonCenter_1F_Text_YouDontHaveAnyDecor: .string "Uh… Wait a second. You don't have a\n" .string "single piece of decoration!$" -MauvilleCity_PokemonCenter_1F_Text_PickTheDecorToTrade: @ 828E323 +MauvilleCity_PokemonCenter_1F_Text_PickTheDecorToTrade: .string "Okay, pick the decoration that you'll\n" .string "trade to me.$" -MauvilleCity_PokemonCenter_1F_Text_YouDontWantToTrade: @ 828E356 +MauvilleCity_PokemonCenter_1F_Text_YouDontWantToTrade: .string "You won't trade with me?\n" .string "I feel unwanted…$" -MauvilleCity_PokemonCenter_1F_Text_YouveNoRoomForThis: @ 828E380 +MauvilleCity_PokemonCenter_1F_Text_YouveNoRoomForThis: .string "You've got all the {STR_VAR_2}S that can\n" .string "be stored. You've no room for this.$" -MauvilleCity_PokemonCenter_1F_Text_SoWellTradeTheseDecor: @ 828E3C4 +MauvilleCity_PokemonCenter_1F_Text_SoWellTradeTheseDecor: .string "Okay, so we'll trade my {STR_VAR_3}\n" .string "for your {STR_VAR_2}?$" -MauvilleCity_PokemonCenter_1F_Text_ThatDecorIsInUse: @ 828E3EC +MauvilleCity_PokemonCenter_1F_Text_ThatDecorIsInUse: .string "That piece of decoration is in use.\n" .string "You can't trade it.$" -MauvilleCity_PokemonCenter_1F_Text_SendDecorToYourPC: @ 828E424 +MauvilleCity_PokemonCenter_1F_Text_SendDecorToYourPC: .string "Then we'll trade!\n" .string "I'll send my decoration to your PC.$" -MauvilleCity_PokemonCenter_1F_Text_CantTradeThatOne: @ 828E45A +MauvilleCity_PokemonCenter_1F_Text_CantTradeThatOne: .string "Oops! Sorry! That's a really rare\n" .string "piece of decoration.\l" .string "I can't trade that one away!\p" .string "Can I interest you in something else?$" -MauvilleCity_PokemonCenter_1F_EventScript_Trader:: @ 828E4D4 +MauvilleCity_PokemonCenter_1F_EventScript_Trader:: lock faceplayer msgbox MauvilleCity_PokemonCenter_1F_Text_WantToTradeDecor, MSGBOX_YESNO @@ -168,17 +168,17 @@ MauvilleCity_PokemonCenter_1F_EventScript_Trader:: @ 828E4D4 goto MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToReceive end -MauvilleCity_PokemonCenter_1F_EventScript_DeclineTrade:: @ 828E503 +MauvilleCity_PokemonCenter_1F_EventScript_DeclineTrade:: msgbox MauvilleCity_PokemonCenter_1F_Text_TraderFeelingTheBlues, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_AlreadyTraded:: @ 828E50D +MauvilleCity_PokemonCenter_1F_EventScript_AlreadyTraded:: msgbox MauvilleCity_PokemonCenter_1F_Text_WeveAlreadyTraded, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToReceive:: @ 828E517 +MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToReceive:: special ScrSpecial_TraderMenuGetDecoration waitstate compare VAR_0x8004, 0 @@ -194,29 +194,29 @@ MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToReceive:: @ 828E517 goto MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive end -MauvilleCity_PokemonCenter_1F_EventScript_CancelPickDecor:: @ 828E558 +MauvilleCity_PokemonCenter_1F_EventScript_CancelPickDecor:: msgbox MauvilleCity_PokemonCenter_1F_Text_YouDontWantAnything, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_InvalidDecor:: @ 828E562 +MauvilleCity_PokemonCenter_1F_EventScript_InvalidDecor:: message MauvilleCity_PokemonCenter_1F_Text_CantTradeThatOne waitmessage goto MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToReceive end -MauvilleCity_PokemonCenter_1F_EventScript_PickDifferentDecor:: @ 828E56E +MauvilleCity_PokemonCenter_1F_EventScript_PickDifferentDecor:: message MauvilleCity_PokemonCenter_1F_Text_PickADecorItem waitmessage goto MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToReceive end -MauvilleCity_PokemonCenter_1F_EventScript_DontHaveAnyDecor:: @ 828E57A +MauvilleCity_PokemonCenter_1F_EventScript_DontHaveAnyDecor:: msgbox MauvilleCity_PokemonCenter_1F_Text_YouDontHaveAnyDecor, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive:: @ 828E584 +MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive:: msgbox MauvilleCity_PokemonCenter_1F_Text_PickTheDecorToTrade, MSGBOX_DEFAULT special ScrSpecial_TraderMenuGiveDecoration waitstate @@ -235,43 +235,43 @@ MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive:: @ 828E584 release end -MauvilleCity_PokemonCenter_1F_EventScript_CancelGiveDecor:: @ 828E5D4 +MauvilleCity_PokemonCenter_1F_EventScript_CancelGiveDecor:: msgbox MauvilleCity_PokemonCenter_1F_Text_YouDontWantToTrade, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_DecorInUse:: @ 828E5DE +MauvilleCity_PokemonCenter_1F_EventScript_DecorInUse:: msgbox MauvilleCity_PokemonCenter_1F_Text_ThatDecorIsInUse, MSGBOX_DEFAULT goto MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive end -MauvilleCity_PokemonCenter_1F_EventScript_NoRoomForDecor:: @ 828E5EC +MauvilleCity_PokemonCenter_1F_EventScript_NoRoomForDecor:: msgbox MauvilleCity_PokemonCenter_1F_Text_YouveNoRoomForThis, MSGBOX_DEFAULT release end @ Storyteller -MauvilleCity_PokemonCenter_1F_Text_WillYouHearMyTale: @ 828E5F6 +MauvilleCity_PokemonCenter_1F_Text_WillYouHearMyTale: .string "I'm the STORYTELLER.\n" .string "I'll tell you tales of legendary\l" .string "TRAINERS.\p" .string "Will you hear my tale?$" -MauvilleCity_PokemonCenter_1F_Text_StorytellerFeelingTheBlues: @ 828E64D +MauvilleCity_PokemonCenter_1F_Text_StorytellerFeelingTheBlues: .string "Oh…\n" .string "You've left me feeling the blues…$" -MauvilleCity_PokemonCenter_1F_Text_WhichTaleToTell: @ 828E673 +MauvilleCity_PokemonCenter_1F_Text_WhichTaleToTell: .string "I know of these legends.\n" .string "Which tale will you have me tell?$" -MauvilleCity_PokemonCenter_1F_Text_IKnowNoTales: @ 828E6AE +MauvilleCity_PokemonCenter_1F_Text_IKnowNoTales: .string "But, I know of no legendary TRAINERS.\n" .string "Hence, I know no tales.\p" .string "Where does one find a TRAINER worthy\n" .string "of a legendary tale?$" -MauvilleCity_PokemonCenter_1F_Text_YouDidStatXTimes: @ 828E726 +MauvilleCity_PokemonCenter_1F_Text_YouDidStatXTimes: .string "What's that?!\n" .string "You… You…\p" .string "{STR_VAR_2}\n" @@ -279,39 +279,39 @@ MauvilleCity_PokemonCenter_1F_Text_YouDidStatXTimes: @ 828E726 .string "That is indeed magnificent!\n" .string "It's the birth of a new legend!$" -MauvilleCity_PokemonCenter_1F_Text_CouldThereBeOtherLegends: @ 828E78A +MauvilleCity_PokemonCenter_1F_Text_CouldThereBeOtherLegends: .string "It gets me thinking, could there be\n" .string "other TRAINERS with more impressive\l" .string "legends awaiting discovery?$" -MauvilleCity_PokemonCenter_1F_Text_HaveYouAnyLegendaryTales: @ 828E7EE +MauvilleCity_PokemonCenter_1F_Text_HaveYouAnyLegendaryTales: .string "Are you a TRAINER?\p" .string "Then tell me, have you any tales that\n" .string "are even remotely legendary?$" @ Unused -MauvilleCity_PokemonCenter_1F_Text_HearAnotherLegendaryTale: @ 828E844 +MauvilleCity_PokemonCenter_1F_Text_HearAnotherLegendaryTale: .string "Incidentally… Would you care to hear\n" .string "another legendary tale?$" -MauvilleCity_PokemonCenter_1F_Text_NotWorthyOfLegend: @ 828E881 +MauvilleCity_PokemonCenter_1F_Text_NotWorthyOfLegend: .string "Hmm…\n" .string "I'm not satisfied…\p" .string "I wish you would bring me news worthy\n" .string "of being called a legend.$" -MauvilleCity_PokemonCenter_1F_Text_IWishMorePeopleWereInterested: @ 828E8D9 +MauvilleCity_PokemonCenter_1F_Text_IWishMorePeopleWereInterested: .string "I wish more people would be interested\n" .string "in hearing my epic tales of legendary\l" .string "TRAINERS.$" -MauvilleCity_PokemonCenter_1F_Text_SavedGameTitle:: @ 828E930 +MauvilleCity_PokemonCenter_1F_Text_SavedGameTitle:: .string "The Save-Happy TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_SavedGameAction:: @ 828E947 +MauvilleCity_PokemonCenter_1F_Text_SavedGameAction:: .string "Saved the game$" -MauvilleCity_PokemonCenter_1F_Text_SavedGameStory:: @ 828E956 +MauvilleCity_PokemonCenter_1F_Text_SavedGameStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER saved the game\n" @@ -319,13 +319,13 @@ MauvilleCity_PokemonCenter_1F_Text_SavedGameStory:: @ 828E956 .string "A more cautious TRAINER than\n" .string "{STR_VAR_3} one will never find!$" -MauvilleCity_PokemonCenter_1F_Text_TrendsStartedTitle:: @ 828E9D7 +MauvilleCity_PokemonCenter_1F_Text_TrendsStartedTitle:: .string "The Trendsetter TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_TrendsStartedAction:: @ 828E9EF +MauvilleCity_PokemonCenter_1F_Text_TrendsStartedAction:: .string "Started trends$" -MauvilleCity_PokemonCenter_1F_Text_TrendsStartedStory:: @ 828E9FE +MauvilleCity_PokemonCenter_1F_Text_TrendsStartedStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER started new trends\n" @@ -333,13 +333,13 @@ MauvilleCity_PokemonCenter_1F_Text_TrendsStartedStory:: @ 828E9FE .string "{STR_VAR_3} is setting trends for all\n" .string "the HOENN region!$" -MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedTitle:: @ 828EA7D +MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedTitle:: .string "The BERRY-Planting TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedAction:: @ 828EA98 +MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedAction:: .string "Planted BERRIES$" -MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedStory:: @ 828EAA8 +MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER planted BERRIES\n" @@ -347,13 +347,13 @@ MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedStory:: @ 828EAA8 .string "{STR_VAR_3} is a legendary lover of\n" .string "BERRIES!$" -MauvilleCity_PokemonCenter_1F_Text_BikeTradesTitle:: @ 828EB19 +MauvilleCity_PokemonCenter_1F_Text_BikeTradesTitle:: .string "The BIKE-Loving TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_BikeTradesAction:: @ 828EB31 +MauvilleCity_PokemonCenter_1F_Text_BikeTradesAction:: .string "Traded BIKES$" -MauvilleCity_PokemonCenter_1F_Text_BikeTradesStory:: @ 828EB3E +MauvilleCity_PokemonCenter_1F_Text_BikeTradesStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER swapped BIKES\n" @@ -361,13 +361,13 @@ MauvilleCity_PokemonCenter_1F_Text_BikeTradesStory:: @ 828EB3E .string "{STR_VAR_3} must love BIKES deeply\n" .string "and passionately!$" -MauvilleCity_PokemonCenter_1F_Text_InterviewsTitle:: @ 828EBB5 +MauvilleCity_PokemonCenter_1F_Text_InterviewsTitle:: .string "The Interviewed TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_InterviewsAction:: @ 828EBCD +MauvilleCity_PokemonCenter_1F_Text_InterviewsAction:: .string "Got interviewed$" -MauvilleCity_PokemonCenter_1F_Text_InterviewsStory:: @ 828EBDD +MauvilleCity_PokemonCenter_1F_Text_InterviewsStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER got interviewed\n" @@ -375,26 +375,26 @@ MauvilleCity_PokemonCenter_1F_Text_InterviewsStory:: @ 828EBDD .string "{STR_VAR_3} must be a TRAINER who's\n" .string "attracting much attention!$" -MauvilleCity_PokemonCenter_1F_Text_TrainerBattlesTitle:: @ 828EC60 +MauvilleCity_PokemonCenter_1F_Text_TrainerBattlesTitle:: .string "The Battle-Happy TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_TrainerBattlesAction:: @ 828EC79 +MauvilleCity_PokemonCenter_1F_Text_TrainerBattlesAction:: .string "Battled$" -MauvilleCity_PokemonCenter_1F_Text_TrainerBattlesStory:: @ 828EC81 +MauvilleCity_PokemonCenter_1F_Text_TrainerBattlesStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER battled {STR_VAR_1} times!\p" .string "{STR_VAR_3} must be a TRAINER who can\n" .string "never refuse a chance to battle!$" -MauvilleCity_PokemonCenter_1F_Text_PokemonCaughtTitle:: @ 828ED04 +MauvilleCity_PokemonCenter_1F_Text_PokemonCaughtTitle:: .string "The POKéMON-Catching TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_PokemonCaughtAction:: @ 828ED21 +MauvilleCity_PokemonCenter_1F_Text_PokemonCaughtAction:: .string "Caught POKéMON$" -MauvilleCity_PokemonCenter_1F_Text_PokemonCaughtStory:: @ 828ED30 +MauvilleCity_PokemonCenter_1F_Text_PokemonCaughtStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER caught\n" @@ -402,13 +402,13 @@ MauvilleCity_PokemonCenter_1F_Text_PokemonCaughtStory:: @ 828ED30 .string "{STR_VAR_3} is a legendary catcher of\n" .string "wild POKéMON!$" -MauvilleCity_PokemonCenter_1F_Text_FishingPokemonCaughtTitle:: @ 828EDA1 +MauvilleCity_PokemonCenter_1F_Text_FishingPokemonCaughtTitle:: .string "The Fishing TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_FishingPokemonCaughtAction:: @ 828EDB5 +MauvilleCity_PokemonCenter_1F_Text_FishingPokemonCaughtAction:: .string "Caught POKéMON with a ROD$" -MauvilleCity_PokemonCenter_1F_Text_FishingPokemonCaughtStory:: @ 828EDCF +MauvilleCity_PokemonCenter_1F_Text_FishingPokemonCaughtStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER caught\n" @@ -416,13 +416,13 @@ MauvilleCity_PokemonCenter_1F_Text_FishingPokemonCaughtStory:: @ 828EDCF .string "{STR_VAR_3} is a legendary fishing\n" .string "expert!$" -MauvilleCity_PokemonCenter_1F_Text_EggsHatchedTitle:: @ 828EE45 +MauvilleCity_PokemonCenter_1F_Text_EggsHatchedTitle:: .string "The EGG-Warming TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_EggsHatchedAction:: @ 828EE5D +MauvilleCity_PokemonCenter_1F_Text_EggsHatchedAction:: .string "Hatched EGGS$" -MauvilleCity_PokemonCenter_1F_Text_EggsHatchedStory:: @ 828EE6A +MauvilleCity_PokemonCenter_1F_Text_EggsHatchedStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER hatched {STR_VAR_1} POKéMON\n" @@ -430,13 +430,13 @@ MauvilleCity_PokemonCenter_1F_Text_EggsHatchedStory:: @ 828EE6A .string "{STR_VAR_3} is a legendary warmer\n" .string "of EGGS!$" -MauvilleCity_PokemonCenter_1F_Text_PokemonEvolvedTitle:: @ 828EEDD +MauvilleCity_PokemonCenter_1F_Text_PokemonEvolvedTitle:: .string "The Evolver TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_PokemonEvolvedAction:: @ 828EEF1 +MauvilleCity_PokemonCenter_1F_Text_PokemonEvolvedAction:: .string "Evolved POKéMON$" -MauvilleCity_PokemonCenter_1F_Text_PokemonEvolvedStory:: @ 828EF01 +MauvilleCity_PokemonCenter_1F_Text_PokemonEvolvedStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER made {STR_VAR_1} POKéMON\n" @@ -444,13 +444,13 @@ MauvilleCity_PokemonCenter_1F_Text_PokemonEvolvedStory:: @ 828EF01 .string "{STR_VAR_3} is the ultimate evolver\n" .string "of POKéMON!$" -MauvilleCity_PokemonCenter_1F_Text_UsedPokemonCenterTitle:: @ 828EF73 +MauvilleCity_PokemonCenter_1F_Text_UsedPokemonCenterTitle:: .string "The POKéMON CENTER-Loving TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_UsedPokemonCenterAction:: @ 828EF95 +MauvilleCity_PokemonCenter_1F_Text_UsedPokemonCenterAction:: .string "Used POKéMON CENTERS$" -MauvilleCity_PokemonCenter_1F_Text_UsedPokemonCenterStory:: @ 828EFAA +MauvilleCity_PokemonCenter_1F_Text_UsedPokemonCenterStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER healed POKéMON\n" @@ -458,13 +458,13 @@ MauvilleCity_PokemonCenter_1F_Text_UsedPokemonCenterStory:: @ 828EFAA .string "There could be no greater lover of\n" .string "POKéMON CENTERS than {STR_VAR_3}!$" -MauvilleCity_PokemonCenter_1F_Text_RestedAtHomeTitle:: @ 828F045 +MauvilleCity_PokemonCenter_1F_Text_RestedAtHomeTitle:: .string "The Homebody TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_RestedAtHomeAction:: @ 828F05A +MauvilleCity_PokemonCenter_1F_Text_RestedAtHomeAction:: .string "Rested POKéMON at home$" -MauvilleCity_PokemonCenter_1F_Text_RestedAtHomeStory:: @ 828F071 +MauvilleCity_PokemonCenter_1F_Text_RestedAtHomeStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER healed POKéMON\n" @@ -472,13 +472,13 @@ MauvilleCity_PokemonCenter_1F_Text_RestedAtHomeStory:: @ 828F071 .string "There could be no more of a homebody\n" .string "than {STR_VAR_3}!$" -MauvilleCity_PokemonCenter_1F_Text_SafariGamesTitle:: @ 828F0F3 +MauvilleCity_PokemonCenter_1F_Text_SafariGamesTitle:: .string "The SAFARI-Loving TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_SafariGamesAction:: @ 828F10D +MauvilleCity_PokemonCenter_1F_Text_SafariGamesAction:: .string "Entered the SAFARI ZONE$" -MauvilleCity_PokemonCenter_1F_Text_SafariGamesStory:: @ 828F125 +MauvilleCity_PokemonCenter_1F_Text_SafariGamesStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER went into the SAFARI ZONE\n" @@ -486,13 +486,13 @@ MauvilleCity_PokemonCenter_1F_Text_SafariGamesStory:: @ 828F125 .string "{STR_VAR_3} is a TRAINER whose wild side\n" .string "must come out in the SAFARI ZONE!$" -MauvilleCity_PokemonCenter_1F_Text_UsedCutTitle:: @ 828F1BE +MauvilleCity_PokemonCenter_1F_Text_UsedCutTitle:: .string "The CUT-Frenzy TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_UsedCutAction:: @ 828F1D5 +MauvilleCity_PokemonCenter_1F_Text_UsedCutAction:: .string "Used CUT$" -MauvilleCity_PokemonCenter_1F_Text_UsedCutStory:: @ 828F1DE +MauvilleCity_PokemonCenter_1F_Text_UsedCutStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER used CUT\n" @@ -500,13 +500,13 @@ MauvilleCity_PokemonCenter_1F_Text_UsedCutStory:: @ 828F1DE .string "{STR_VAR_3} is a TRAINER who just must\n" .string "love to CUT!$" -MauvilleCity_PokemonCenter_1F_Text_UsedRockSmashTitle:: @ 828F24F +MauvilleCity_PokemonCenter_1F_Text_UsedRockSmashTitle:: .string "The ROCK-SMASHING TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_UsedRockSmashAction:: @ 828F269 +MauvilleCity_PokemonCenter_1F_Text_UsedRockSmashAction:: .string "Smashed rocks$" -MauvilleCity_PokemonCenter_1F_Text_UsedRockSmashStory:: @ 828F277 +MauvilleCity_PokemonCenter_1F_Text_UsedRockSmashStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER used ROCK SMASH\n" @@ -514,13 +514,13 @@ MauvilleCity_PokemonCenter_1F_Text_UsedRockSmashStory:: @ 828F277 .string "{STR_VAR_3} must be a TRAINER who\n" .string "can't leave a stone unsmashed!$" -MauvilleCity_PokemonCenter_1F_Text_MovedBasesTitle:: @ 828F2FC +MauvilleCity_PokemonCenter_1F_Text_MovedBasesTitle:: .string "The Move-Loving TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_MovedBasesAction:: @ 828F314 +MauvilleCity_PokemonCenter_1F_Text_MovedBasesAction:: .string "Moved the SECRET BASE$" -MauvilleCity_PokemonCenter_1F_Text_MovedBasesStory:: @ 828F32A +MauvilleCity_PokemonCenter_1F_Text_MovedBasesStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER moved the SECRET BASE\n" @@ -528,13 +528,13 @@ MauvilleCity_PokemonCenter_1F_Text_MovedBasesStory:: @ 828F32A .string "{STR_VAR_3} is a TRAINER who loves\n" .string "to move houses often!$" -MauvilleCity_PokemonCenter_1F_Text_UsedSplashTitle:: @ 828F3AD +MauvilleCity_PokemonCenter_1F_Text_UsedSplashTitle:: .string "The SPLASH-Happy TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_UsedSplashAction:: @ 828F3C6 +MauvilleCity_PokemonCenter_1F_Text_UsedSplashAction:: .string "Used SPLASH$" -MauvilleCity_PokemonCenter_1F_Text_UsedSplashStory:: @ 828F3D2 +MauvilleCity_PokemonCenter_1F_Text_UsedSplashStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER used SPLASH\n" @@ -542,13 +542,13 @@ MauvilleCity_PokemonCenter_1F_Text_UsedSplashStory:: @ 828F3D2 .string "{STR_VAR_3} is a TRAINER who must love\n" .string "SPLASHING around!$" -MauvilleCity_PokemonCenter_1F_Text_UsedStruggleTitle:: @ 828F44B +MauvilleCity_PokemonCenter_1F_Text_UsedStruggleTitle:: .string "The Tenacious TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_UsedStruggleAction:: @ 828F461 +MauvilleCity_PokemonCenter_1F_Text_UsedStruggleAction:: .string "Resorted to using STRUGGLE$" -MauvilleCity_PokemonCenter_1F_Text_UsedStruggleStory:: @ 828F47C +MauvilleCity_PokemonCenter_1F_Text_UsedStruggleStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER had to rely on STRUGGLE\n" @@ -556,13 +556,13 @@ MauvilleCity_PokemonCenter_1F_Text_UsedStruggleStory:: @ 828F47C .string "{STR_VAR_3} is a tenacious TRAINER\n" .string "who never gives in to adversity!$" -MauvilleCity_PokemonCenter_1F_Text_SlotJackpotsTitle:: @ 828F50C +MauvilleCity_PokemonCenter_1F_Text_SlotJackpotsTitle:: .string "The SLOT Champ$" -MauvilleCity_PokemonCenter_1F_Text_SlotJackpotsAction:: @ 828F51B +MauvilleCity_PokemonCenter_1F_Text_SlotJackpotsAction:: .string "Won the jackpot on the SLOTS$" -MauvilleCity_PokemonCenter_1F_Text_SlotJackpotsStory:: @ 828F538 +MauvilleCity_PokemonCenter_1F_Text_SlotJackpotsStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER won the jackpot on\n" @@ -570,13 +570,13 @@ MauvilleCity_PokemonCenter_1F_Text_SlotJackpotsStory:: @ 828F538 .string "{STR_VAR_3} is a TRAINER who was lucky\n" .string "on the SLOTS!$" -MauvilleCity_PokemonCenter_1F_Text_RouletteWinsTitle:: @ 828F5BE +MauvilleCity_PokemonCenter_1F_Text_RouletteWinsTitle:: .string "The ROULETTE Champ$" -MauvilleCity_PokemonCenter_1F_Text_RouletteWinsAction:: @ 828F5D1 +MauvilleCity_PokemonCenter_1F_Text_RouletteWinsAction:: .string "Had consecutive ROULETTE wins of$" -MauvilleCity_PokemonCenter_1F_Text_RouletteWinsStory:: @ 828F5F2 +MauvilleCity_PokemonCenter_1F_Text_RouletteWinsStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER won in ROULETTE\n" @@ -584,13 +584,13 @@ MauvilleCity_PokemonCenter_1F_Text_RouletteWinsStory:: @ 828F5F2 .string "{STR_VAR_3} was lucky when the ball\n" .string "bounced in ROULETTE!$" -MauvilleCity_PokemonCenter_1F_Text_BattleTowerChallengesTitle:: @ 828F678 +MauvilleCity_PokemonCenter_1F_Text_BattleTowerChallengesTitle:: .string "The BATTLE TOWER Challenger$" -MauvilleCity_PokemonCenter_1F_Text_BattleTowerChallengesAction:: @ 828F694 +MauvilleCity_PokemonCenter_1F_Text_BattleTowerChallengesAction:: .string "Took the BATTLE TOWER challenge$" -MauvilleCity_PokemonCenter_1F_Text_BattleTowerChallengesStory:: @ 828F6B4 +MauvilleCity_PokemonCenter_1F_Text_BattleTowerChallengesStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER took the BATTLE TOWER\n" @@ -598,13 +598,13 @@ MauvilleCity_PokemonCenter_1F_Text_BattleTowerChallengesStory:: @ 828F6B4 .string "{STR_VAR_3} is a TRAINER who aspires\n" .string "for excellence in the BATTLE TOWER!$" -MauvilleCity_PokemonCenter_1F_Text_MadePokeblocksTitle:: @ 828F751 +MauvilleCity_PokemonCenter_1F_Text_MadePokeblocksTitle:: .string "The Blend-Loving TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_MadePokeblocksAction:: @ 828F76A +MauvilleCity_PokemonCenter_1F_Text_MadePokeblocksAction:: .string "Made {POKEBLOCK}S$" -MauvilleCity_PokemonCenter_1F_Text_MadePokeblocksStory:: @ 828F776 +MauvilleCity_PokemonCenter_1F_Text_MadePokeblocksStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER made {POKEBLOCK}S\n" @@ -612,13 +612,13 @@ MauvilleCity_PokemonCenter_1F_Text_MadePokeblocksStory:: @ 828F776 .string "There is none better at using a BERRY\n" .string "BLENDER than {STR_VAR_3}!$" -MauvilleCity_PokemonCenter_1F_Text_EnteredContestsTitle:: @ 828F7F6 +MauvilleCity_PokemonCenter_1F_Text_EnteredContestsTitle:: .string "The CONTEST-Loving TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_EnteredContestsAction:: @ 828F811 +MauvilleCity_PokemonCenter_1F_Text_EnteredContestsAction:: .string "Entered CONTESTS$" -MauvilleCity_PokemonCenter_1F_Text_EnteredContestsStory:: @ 828F822 +MauvilleCity_PokemonCenter_1F_Text_EnteredContestsStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER entered CONTESTS\n" @@ -626,13 +626,13 @@ MauvilleCity_PokemonCenter_1F_Text_EnteredContestsStory:: @ 828F822 .string "{STR_VAR_3} must love showing off\n" .string "POKéMON to others!$" -MauvilleCity_PokemonCenter_1F_Text_WonContestsTitle:: @ 828F89C +MauvilleCity_PokemonCenter_1F_Text_WonContestsTitle:: .string "The CONTEST Master$" -MauvilleCity_PokemonCenter_1F_Text_WonContestsAction:: @ 828F8AF +MauvilleCity_PokemonCenter_1F_Text_WonContestsAction:: .string "Won CONTESTS$" -MauvilleCity_PokemonCenter_1F_Text_WonContestsStory:: @ 828F8BC +MauvilleCity_PokemonCenter_1F_Text_WonContestsStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER won CONTESTS\n" @@ -640,13 +640,13 @@ MauvilleCity_PokemonCenter_1F_Text_WonContestsStory:: @ 828F8BC .string "{STR_VAR_3} must be an incredible\n" .string "CONTEST master!$" -MauvilleCity_PokemonCenter_1F_Text_TimesShoppedTitle:: @ 828F92F +MauvilleCity_PokemonCenter_1F_Text_TimesShoppedTitle:: .string "The Happy Shopper$" -MauvilleCity_PokemonCenter_1F_Text_TimesShoppedAction:: @ 828F941 +MauvilleCity_PokemonCenter_1F_Text_TimesShoppedAction:: .string "Shopped$" -MauvilleCity_PokemonCenter_1F_Text_TimesShoppedStory:: @ 828F949 +MauvilleCity_PokemonCenter_1F_Text_TimesShoppedStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER bought items in shops\n" @@ -654,13 +654,13 @@ MauvilleCity_PokemonCenter_1F_Text_TimesShoppedStory:: @ 828F949 .string "{STR_VAR_3} must be one of those\n" .string "people who are born to shop.$" -MauvilleCity_PokemonCenter_1F_Text_UsedItemFinderTitle:: @ 828F9D1 +MauvilleCity_PokemonCenter_1F_Text_UsedItemFinderTitle:: .string "The Item-Finding TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_UsedItemFinderAction:: @ 828F9EA +MauvilleCity_PokemonCenter_1F_Text_UsedItemFinderAction:: .string "Used an ITEMFINDER$" -MauvilleCity_PokemonCenter_1F_Text_UsedItemFinderStory:: @ 828F9FD +MauvilleCity_PokemonCenter_1F_Text_UsedItemFinderStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER used an ITEMFINDER\n" @@ -668,13 +668,13 @@ MauvilleCity_PokemonCenter_1F_Text_UsedItemFinderStory:: @ 828F9FD .string "{STR_VAR_3} must enjoy scouring the\n" .string "ground for hidden items!$" -MauvilleCity_PokemonCenter_1F_Text_TimesRainedTitle:: @ 828FA81 +MauvilleCity_PokemonCenter_1F_Text_TimesRainedTitle:: .string "The Rain-Soaked TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_TimesRainedAction:: @ 828FA99 +MauvilleCity_PokemonCenter_1F_Text_TimesRainedAction:: .string "Got rained on$" -MauvilleCity_PokemonCenter_1F_Text_TimesRainedStory:: @ 828FAA7 +MauvilleCity_PokemonCenter_1F_Text_TimesRainedStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER got soaked by rain\n" @@ -682,13 +682,13 @@ MauvilleCity_PokemonCenter_1F_Text_TimesRainedStory:: @ 828FAA7 .string "{STR_VAR_3}'s charisma must even\n" .string "attract rain!$" -MauvilleCity_PokemonCenter_1F_Text_CheckedPokedexTitle:: @ 828FB1D +MauvilleCity_PokemonCenter_1F_Text_CheckedPokedexTitle:: .string "The Avid POKéDEX Reader$" -MauvilleCity_PokemonCenter_1F_Text_CheckedPokedexAction:: @ 828FB35 +MauvilleCity_PokemonCenter_1F_Text_CheckedPokedexAction:: .string "Checked a POKéDEX$" -MauvilleCity_PokemonCenter_1F_Text_CheckedPokedexStory:: @ 828FB47 +MauvilleCity_PokemonCenter_1F_Text_CheckedPokedexStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER checked a POKéDEX\n" @@ -696,13 +696,13 @@ MauvilleCity_PokemonCenter_1F_Text_CheckedPokedexStory:: @ 828FB47 .string "{STR_VAR_3} must love inspecting\n" .string "POKéMON in a POKéDEX!$" -MauvilleCity_PokemonCenter_1F_Text_ReceivedRibbonsTitle:: @ 828FBC4 +MauvilleCity_PokemonCenter_1F_Text_ReceivedRibbonsTitle:: .string "The RIBBON Collector$" -MauvilleCity_PokemonCenter_1F_Text_ReceivedRibbonsAction:: @ 828FBD9 +MauvilleCity_PokemonCenter_1F_Text_ReceivedRibbonsAction:: .string "Received RIBBONS$" -MauvilleCity_PokemonCenter_1F_Text_ReceivedRibbonsStory:: @ 828FBEA +MauvilleCity_PokemonCenter_1F_Text_ReceivedRibbonsStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER received RIBBONS\n" @@ -710,13 +710,13 @@ MauvilleCity_PokemonCenter_1F_Text_ReceivedRibbonsStory:: @ 828FBEA .string "{STR_VAR_3} must be a TRAINER who\n" .string "loves to collect RIBBONS!$" -MauvilleCity_PokemonCenter_1F_Text_LedgesJumpedTitle:: @ 828FC6B +MauvilleCity_PokemonCenter_1F_Text_LedgesJumpedTitle:: .string "The Ledge-Jumping TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_LedgesJumpedAction:: @ 828FC85 +MauvilleCity_PokemonCenter_1F_Text_LedgesJumpedAction:: .string "Jumped down ledges$" -MauvilleCity_PokemonCenter_1F_Text_LedgesJumpedStory:: @ 828FC98 +MauvilleCity_PokemonCenter_1F_Text_LedgesJumpedStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER jumped down ledges\n" @@ -724,26 +724,26 @@ MauvilleCity_PokemonCenter_1F_Text_LedgesJumpedStory:: @ 828FC98 .string "If there's a ledge to be jumped,\n" .string "{STR_VAR_3} can't ignore it!$" -MauvilleCity_PokemonCenter_1F_Text_TVWatchedTitle:: @ 828FD1D +MauvilleCity_PokemonCenter_1F_Text_TVWatchedTitle:: .string "The Legendary TV Viewer$" -MauvilleCity_PokemonCenter_1F_Text_TVWatchedAction:: @ 828FD35 +MauvilleCity_PokemonCenter_1F_Text_TVWatchedAction:: .string "Watched TV$" -MauvilleCity_PokemonCenter_1F_Text_TVWatchedStory:: @ 828FD40 +MauvilleCity_PokemonCenter_1F_Text_TVWatchedStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER watched TV\n" .string "{STR_VAR_1} times!\p" .string "{STR_VAR_3} must love watching TV!$" -MauvilleCity_PokemonCenter_1F_Text_CheckedClockTitle:: @ 828FDA2 +MauvilleCity_PokemonCenter_1F_Text_CheckedClockTitle:: .string "The Time-Conscious TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_CheckedClockAction:: @ 828FDBD +MauvilleCity_PokemonCenter_1F_Text_CheckedClockAction:: .string "Checked the time$" -MauvilleCity_PokemonCenter_1F_Text_CheckedClockStory:: @ 828FDCE +MauvilleCity_PokemonCenter_1F_Text_CheckedClockStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER checked the time\n" @@ -751,13 +751,13 @@ MauvilleCity_PokemonCenter_1F_Text_CheckedClockStory:: @ 828FDCE .string "{STR_VAR_3} must be a punctual TRAINER\n" .string "who's conscious of the time.$" -MauvilleCity_PokemonCenter_1F_Text_WonLotteryTitle:: @ 828FE57 +MauvilleCity_PokemonCenter_1F_Text_WonLotteryTitle:: .string "The POKéMON LOTTERY Wizard$" -MauvilleCity_PokemonCenter_1F_Text_WonLotteryAction:: @ 828FE72 +MauvilleCity_PokemonCenter_1F_Text_WonLotteryAction:: .string "Won POKéMON LOTTERIES$" -MauvilleCity_PokemonCenter_1F_Text_WonLotteryStory:: @ 828FE88 +MauvilleCity_PokemonCenter_1F_Text_WonLotteryStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER won POKéMON LOTTERIES\n" @@ -765,13 +765,13 @@ MauvilleCity_PokemonCenter_1F_Text_WonLotteryStory:: @ 828FE88 .string "{STR_VAR_3} must have many friends\n" .string "to trade POKéMON with!$" -MauvilleCity_PokemonCenter_1F_Text_UsedDaycareTitle:: @ 828FF0C +MauvilleCity_PokemonCenter_1F_Text_UsedDaycareTitle:: .string "The DAY CARE-Using Trainer$" -MauvilleCity_PokemonCenter_1F_Text_UsedDaycareAction:: @ 828FF27 +MauvilleCity_PokemonCenter_1F_Text_UsedDaycareAction:: .string "Left POKéMON at the DAY CARE$" -MauvilleCity_PokemonCenter_1F_Text_UsedDaycareStory:: @ 828FF44 +MauvilleCity_PokemonCenter_1F_Text_UsedDaycareStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER left POKéMON with the\n" @@ -779,13 +779,13 @@ MauvilleCity_PokemonCenter_1F_Text_UsedDaycareStory:: @ 828FF44 .string "{STR_VAR_3} must be a real go-getter\n" .string "who raises POKéMON aggressively!$" -MauvilleCity_PokemonCenter_1F_Text_RodeCableCarTitle:: @ 828FFDD +MauvilleCity_PokemonCenter_1F_Text_RodeCableCarTitle:: .string "The CABLE CAR-Loving TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_RodeCableCarAction:: @ 828FFFA +MauvilleCity_PokemonCenter_1F_Text_RodeCableCarAction:: .string "Rode the CABLE CAR$" -MauvilleCity_PokemonCenter_1F_Text_RodeCableCarStory:: @ 829000D +MauvilleCity_PokemonCenter_1F_Text_RodeCableCarStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER rode the CABLE CAR\n" @@ -793,13 +793,13 @@ MauvilleCity_PokemonCenter_1F_Text_RodeCableCarStory:: @ 829000D .string "{STR_VAR_3} must be a busy TRAINER\n" .string "who's up and down all the time!$" -MauvilleCity_PokemonCenter_1F_Text_HotSpringsTitle:: @ 8290097 +MauvilleCity_PokemonCenter_1F_Text_HotSpringsTitle:: .string "The Hot Spring-Loving TRAINER$" -MauvilleCity_PokemonCenter_1F_Text_HotSpringsAction:: @ 82900B5 +MauvilleCity_PokemonCenter_1F_Text_HotSpringsAction:: .string "Bathed in hot springs$" -MauvilleCity_PokemonCenter_1F_Text_HotSpringsStory:: @ 82900CB +MauvilleCity_PokemonCenter_1F_Text_HotSpringsStory:: .string "This is a tale of a TRAINER\n" .string "named {STR_VAR_3}.\p" .string "This TRAINER bathed in hot springs\n" @@ -808,7 +808,7 @@ MauvilleCity_PokemonCenter_1F_Text_HotSpringsStory:: @ 82900CB .string "baby-smooth skin!$" -MauvilleCity_PokemonCenter_1F_EventScript_Storyteller:: @ 829014A +MauvilleCity_PokemonCenter_1F_EventScript_Storyteller:: lock faceplayer setvar VAR_0x8008, 0 @@ -836,20 +836,20 @@ MauvilleCity_PokemonCenter_1F_EventScript_Storyteller:: @ 829014A goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_AreThereOtherTales goto MauvilleCity_PokemonCenter_1F_EventScript_TellPlayersTale -MauvilleCity_PokemonCenter_1F_EventScript_CancelStorySelection:: @ 82901B7 +MauvilleCity_PokemonCenter_1F_EventScript_CancelStorySelection:: goto MauvilleCity_PokemonCenter_1F_EventScript_DeclineStoryteller end -MauvilleCity_PokemonCenter_1F_EventScript_AreThereOtherTales:: @ 82901BD +MauvilleCity_PokemonCenter_1F_EventScript_AreThereOtherTales:: msgbox MauvilleCity_PokemonCenter_1F_Text_CouldThereBeOtherLegends, MSGBOX_DEFAULT specialvar VAR_RESULT, ScrSpecial_HasStorytellerAlreadyRecorded compare VAR_RESULT, TRUE goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_StorytellerEnd goto MauvilleCity_PokemonCenter_1F_EventScript_DoYouHaveAnyTales -MauvilleCity_PokemonCenter_1F_EventScript_KnowNoTales:: @ 82901DA +MauvilleCity_PokemonCenter_1F_EventScript_KnowNoTales:: msgbox MauvilleCity_PokemonCenter_1F_Text_IKnowNoTales, MSGBOX_DEFAULT -MauvilleCity_PokemonCenter_1F_EventScript_DoYouHaveAnyTales:: @ 82901E2 +MauvilleCity_PokemonCenter_1F_EventScript_DoYouHaveAnyTales:: msgbox MauvilleCity_PokemonCenter_1F_Text_HaveYouAnyLegendaryTales, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineStoryteller @@ -860,45 +860,45 @@ MauvilleCity_PokemonCenter_1F_EventScript_DoYouHaveAnyTales:: @ 82901E2 release end -MauvilleCity_PokemonCenter_1F_EventScript_TellPlayersTale:: @ 829020F +MauvilleCity_PokemonCenter_1F_EventScript_TellPlayersTale:: msgbox MauvilleCity_PokemonCenter_1F_Text_YouDidStatXTimes, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_DeclineStoryteller:: @ 8290219 +MauvilleCity_PokemonCenter_1F_EventScript_DeclineStoryteller:: msgbox MauvilleCity_PokemonCenter_1F_Text_StorytellerFeelingTheBlues, MSGBOX_DEFAULT release end @ Unused -MauvilleCity_PokemonCenter_1F_EventScript_WaitingForRecordMix:: @ 8290223 +MauvilleCity_PokemonCenter_1F_EventScript_WaitingForRecordMix:: msgbox MauvilleCity_PokemonCenter_1F_Text_IWishMorePeopleWereInterested, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_StorytellerEnd:: @ 829022D +MauvilleCity_PokemonCenter_1F_EventScript_StorytellerEnd:: release end @ Giddy -MauvilleCity_PokemonCenter_1F_Text_HearMyStory: @ 829022F +MauvilleCity_PokemonCenter_1F_Text_HearMyStory: .string "I'm GIDDY!\n" .string "I have a scintillating story for you!\p" .string "Would you like to hear my story?$" -MauvilleCity_PokemonCenter_1F_Text_GiddyFeelingTheBlues: @ 8290281 +MauvilleCity_PokemonCenter_1F_Text_GiddyFeelingTheBlues: .string "Oh…\n" .string "You've left me feeling the blues…$" -MauvilleCity_PokemonCenter_1F_Text_AlsoIWasThinking: @ 82902A7 +MauvilleCity_PokemonCenter_1F_Text_AlsoIWasThinking: .string "Also, I was thinking…$" -MauvilleCity_PokemonCenter_1F_Text_WeShouldChatAgain: @ 82902BD +MauvilleCity_PokemonCenter_1F_Text_WeShouldChatAgain: .string "That's about it, I think…\p" .string "We should chat again!\n" .string "Bye-bye!$" -MauvilleCity_PokemonCenter_1F_EventScript_Giddy:: @ 82902F6 +MauvilleCity_PokemonCenter_1F_EventScript_Giddy:: lock faceplayer msgbox MauvilleCity_PokemonCenter_1F_Text_HearMyStory, MSGBOX_YESNO @@ -908,7 +908,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_Giddy:: @ 82902F6 goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineGiddy end -MauvilleCity_PokemonCenter_1F_EventScript_TryTellTale:: @ 8290317 +MauvilleCity_PokemonCenter_1F_EventScript_TryTellTale:: special ScrSpecial_GiddyShouldTellAnotherTale compare VAR_RESULT, TRUE goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_GiddyTellTale @@ -916,7 +916,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_TryTellTale:: @ 8290317 goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_ToldEnoughTales end -MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale:: @ 8290331 +MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale:: special ScrSpecial_GiddyShouldTellAnotherTale compare VAR_RESULT, TRUE goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_GiddyStartNewTale @@ -924,13 +924,13 @@ MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale:: @ 8290331 goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_ToldEnoughTales end -MauvilleCity_PokemonCenter_1F_EventScript_GiddyStartNewTale:: @ 829034B +MauvilleCity_PokemonCenter_1F_EventScript_GiddyStartNewTale:: msgbox MauvilleCity_PokemonCenter_1F_Text_AlsoIWasThinking, MSGBOX_DEFAULT goto MauvilleCity_PokemonCenter_1F_EventScript_GiddyTellTale end @ Regardless of whether yes or no is selected below, Giddy will continue to tell stories until he's told 10 -MauvilleCity_PokemonCenter_1F_EventScript_GiddyTellTale:: @ 8290359 +MauvilleCity_PokemonCenter_1F_EventScript_GiddyTellTale:: special ScrSpecial_GenerateGiddyLine special ShowFieldMessageStringVar4 waitmessage @@ -941,29 +941,29 @@ MauvilleCity_PokemonCenter_1F_EventScript_GiddyTellTale:: @ 8290359 goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale end -MauvilleCity_PokemonCenter_1F_EventScript_DeclineGiddy:: @ 829037A +MauvilleCity_PokemonCenter_1F_EventScript_DeclineGiddy:: msgbox MauvilleCity_PokemonCenter_1F_Text_GiddyFeelingTheBlues, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_EventScript_ToldEnoughTales:: @ 8290384 +MauvilleCity_PokemonCenter_1F_EventScript_ToldEnoughTales:: msgbox MauvilleCity_PokemonCenter_1F_Text_WeShouldChatAgain, MSGBOX_DEFAULT release end -MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToHearMySong: @ 829038E +MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToHearMySong: .string "Hi, I'm the BARD.\n" .string "Would you like to hear my song?$" -MauvilleCity_PokemonCenter_1F_Text_BardFeelingTheBlues1: @ 82903C0 +MauvilleCity_PokemonCenter_1F_Text_BardFeelingTheBlues1: .string "Oh…\n" .string "You've left me feeling the blues…$" -MauvilleCity_PokemonCenter_1F_Text_WishICouldPlaySongForOthers: @ 82903E6 +MauvilleCity_PokemonCenter_1F_Text_WishICouldPlaySongForOthers: .string "Oh, what a moving song…\n" .string "I wish I could play it for others…$" -MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToWriteSomeLyrics: @ 8290421 +MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToWriteSomeLyrics: .string "So?\n" .string "How do you like my song?\p" .string "But I'm none too happy about\n" @@ -971,38 +971,38 @@ MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToWriteSomeLyrics: @ 8290421 .string "How would you like to write some\n" .string "new lyrics for me?$" -MauvilleCity_PokemonCenter_1F_Text_BardFeelingTheBlues2: @ 829049B +MauvilleCity_PokemonCenter_1F_Text_BardFeelingTheBlues2: .string "Oh…\n" .string "You've left me feeling the blues…$" -MauvilleCity_PokemonCenter_1F_Text_LetMeSingItForYou: @ 82904C1 +MauvilleCity_PokemonCenter_1F_Text_LetMeSingItForYou: .string "Thank you kindly!\n" .string "Let me sing it for you.$" -MauvilleCity_PokemonCenter_1F_Text_ThatHowYouWantedSongToGo: @ 82904EB +MauvilleCity_PokemonCenter_1F_Text_ThatHowYouWantedSongToGo: .string "Was that how you wanted your song\n" .string "to go?$" -MauvilleCity_PokemonCenter_1F_Text_IllSingThisSongForAWhile: @ 8290514 +MauvilleCity_PokemonCenter_1F_Text_IllSingThisSongForAWhile: .string "Okay! That's it, then.\n" .string "I'll sing this song for a while.$" -MauvilleCity_PokemonCenter_1F_Text_TeachWhatsHipAndHappening: @ 829054C +MauvilleCity_PokemonCenter_1F_Text_TeachWhatsHipAndHappening: .string "Hey, yo! They call me the HIPSTER.\n" .string "I'll teach you what's hip and happening.$" -MauvilleCity_PokemonCenter_1F_Text_IAlreadyTaughtYou: @ 8290598 +MauvilleCity_PokemonCenter_1F_Text_IAlreadyTaughtYou: .string "But, hey, I taught you what's hip and\n" .string "happening already.\p" .string "I'd like to spread the good word to\n" .string "other folks.$" -MauvilleCity_PokemonCenter_1F_Text_IveGotNothingNewToTeach: @ 8290602 +MauvilleCity_PokemonCenter_1F_Text_IveGotNothingNewToTeach: .string "But, hey, you already know a lot about\n" .string "what's hip and happening.\p" .string "I've got nothing new to teach you!$" -MauvilleCity_PokemonCenter_1F_Text_HaveYouHeardOfPhrase: @ 8290666 +MauvilleCity_PokemonCenter_1F_Text_HaveYouHeardOfPhrase: .string "Hey, have you heard about\n" .string "“{STR_VAR_1}”?\p" .string "What's it mean? Well…\n" diff --git a/data/scripts/mevent.inc b/data/scripts/mevent.inc index 7311543156..b33a332700 100644 --- a/data/scripts/mevent.inc +++ b/data/scripts/mevent.inc @@ -1,4 +1,4 @@ -EventScript_Questionnaire:: @ 827381B +EventScript_Questionnaire:: lockall msgbox Mevent_Text_FillOutQuestionnaire, MSGBOX_YESNO compare VAR_RESULT, NO @@ -18,7 +18,7 @@ EventScript_Questionnaire:: @ 827381B goto_if_eq Mevent_EventScript_QuestionnaireThankYou end -Mevent_EventScript_PlayerInputMysteryEventPhrase:: @ 827386D +Mevent_EventScript_PlayerInputMysteryEventPhrase:: goto_if_unset FLAG_SYS_POKEDEX_GET, Mevent_EventScript_QuestionnaireThankYou goto_if_set FLAG_SYS_MYSTERY_EVENT_ENABLE, Mevent_EventScript_QuestionnaireThankYou applymovement VAR_0x8008, Common_Movement_FaceDown @@ -34,7 +34,7 @@ Mevent_EventScript_PlayerInputMysteryEventPhrase:: @ 827386D releaseall end -Mevent_EventScript_PlayerInputMysteryGiftPhrase:: @ 82738B5 +Mevent_EventScript_PlayerInputMysteryGiftPhrase:: goto_if_unset FLAG_SYS_POKEDEX_GET, Mevent_EventScript_QuestionnaireThankYou goto_if_set FLAG_SYS_MYSTERY_GIFT_ENABLE, Mevent_EventScript_QuestionnaireThankYou applymovement VAR_0x8008, Common_Movement_FaceDown @@ -50,11 +50,11 @@ Mevent_EventScript_PlayerInputMysteryGiftPhrase:: @ 82738B5 releaseall end -Mevent_EventScript_Release:: @ 82738FD +Mevent_EventScript_Release:: releaseall end -Mevent_EventScript_QuestionnaireThankYou:: @ 82738FF +Mevent_EventScript_QuestionnaireThankYou:: applymovement VAR_0x8008, Common_Movement_FaceDown waitmovement 0 msgbox Mevent_Text_QuestionnaireThankYou, MSGBOX_DEFAULT diff --git a/data/scripts/mevent_altering_cave.inc b/data/scripts/mevent_altering_cave.inc index 499907edda..7e9b0a758e 100644 --- a/data/scripts/mevent_altering_cave.inc +++ b/data/scripts/mevent_altering_cave.inc @@ -1,10 +1,10 @@ -MysteryEventScript_AlteringCave:: @ 86756E3 +MysteryEventScript_AlteringCave:: setvaddress MysteryEventScript_AlteringCave addvar VAR_ALTERING_CAVE_WILD_SET, 1 compare VAR_ALTERING_CAVE_WILD_SET, 10 vgoto_if_ne MysteryEventScript_AlteringCave_ setvar VAR_ALTERING_CAVE_WILD_SET, 0 -MysteryEventScript_AlteringCave_: @ 86756FD +MysteryEventScript_AlteringCave_: lock faceplayer vmessage sText_MysteryGiftAlteringCave diff --git a/data/scripts/mevent_aurora_ticket.inc b/data/scripts/mevent_aurora_ticket.inc index f26be068f3..9d73346381 100644 --- a/data/scripts/mevent_aurora_ticket.inc +++ b/data/scripts/mevent_aurora_ticket.inc @@ -1,4 +1,4 @@ -MysteryEventScript_AuroraTicket:: @ 867533C +MysteryEventScript_AuroraTicket:: setvaddress MysteryEventScript_AuroraTicket lock faceplayer @@ -22,14 +22,14 @@ MysteryEventScript_AuroraTicket:: @ 867533C release end -AuroraTicket_NoBagSpace: @ 8675397 +AuroraTicket_NoBagSpace: vmessage sText_AuroraTicketBagFull waitmessage waitbuttonpress release end -AuroraTicket_Obtained: @ 86753A0 +AuroraTicket_Obtained: vmessage sText_AuroraTicketThankYou waitmessage waitbuttonpress diff --git a/data/scripts/mevent_battle_card.inc b/data/scripts/mevent_battle_card.inc index 70462bdd9e..3a66297e13 100644 --- a/data/scripts/mevent_battle_card.inc +++ b/data/scripts/mevent_battle_card.inc @@ -1,4 +1,4 @@ -MysteryEventScript_BattleCard:: @ 867513C +MysteryEventScript_BattleCard:: setvaddress MysteryEventScript_BattleCard vgoto_if_set FLAG_MYSTERY_EVENT_DONE, MysteryEventScript_BattleCardInfo setorcopyvar VAR_RESULT, GET_CARD_BATTLES_WON @@ -15,7 +15,7 @@ MysteryEventScript_BattleCard:: @ 867513C setflag FLAG_MYSTERY_EVENT_DONE end -MysteryEventScript_BattleCardInfo: @ 8675179 +MysteryEventScript_BattleCardInfo: lock faceplayer vmessage sText_MysteryGiftBattleCountCard diff --git a/data/scripts/mevent_mystic_ticket.inc b/data/scripts/mevent_mystic_ticket.inc index 8f938dc33a..e085c5a596 100644 --- a/data/scripts/mevent_mystic_ticket.inc +++ b/data/scripts/mevent_mystic_ticket.inc @@ -1,4 +1,4 @@ -MysteryEventScript_MysticTicket:: @ 867550B +MysteryEventScript_MysticTicket:: setvaddress MysteryEventScript_MysticTicket lock faceplayer @@ -23,14 +23,14 @@ MysteryEventScript_MysticTicket:: @ 867550B release end -MysticTicket_NoBagSpace: @ 867556F +MysticTicket_NoBagSpace: vmessage sText_MysticTicketBagFull waitmessage waitbuttonpress release end -MysticTicket_Obtained: @ 8675578 +MysticTicket_Obtained: vmessage sText_MysticTicketThankYou waitmessage waitbuttonpress diff --git a/data/scripts/mevent_old_sea_map.inc b/data/scripts/mevent_old_sea_map.inc index 0fb3c10028..68714117b3 100644 --- a/data/scripts/mevent_old_sea_map.inc +++ b/data/scripts/mevent_old_sea_map.inc @@ -1,4 +1,4 @@ -MysteryEventScript_OldSeaMap:: @ 86757F4 +MysteryEventScript_OldSeaMap:: setvaddress MysteryEventScript_OldSeaMap lock faceplayer @@ -22,14 +22,14 @@ MysteryEventScript_OldSeaMap:: @ 86757F4 release end -OldSeaMap_NoBagSpace: @ 867584F +OldSeaMap_NoBagSpace: vmessage sText_MysteryGiftOldSeaMapBagFull waitmessage waitbuttonpress release end -OldSeaMap_Obtained: @ 8675858 +OldSeaMap_Obtained: vmessage sText_MysteryGiftOldSeaMapThankYou waitmessage waitbuttonpress diff --git a/data/scripts/mevent_pichu.inc b/data/scripts/mevent_pichu.inc index c51558e9e3..02b47b41f6 100644 --- a/data/scripts/mevent_pichu.inc +++ b/data/scripts/mevent_pichu.inc @@ -1,9 +1,9 @@ -MysteryEventScript_SurfPichu:: @ 8674D3D +MysteryEventScript_SurfPichu:: setvaddress MysteryEventScript_SurfPichu vgoto_if_unset FLAG_MYSTERY_EVENT_DONE, SurfPichu_GiveIfPossible returnram -SurfPichu_GiveIfPossible: @ 8674D4C +SurfPichu_GiveIfPossible: specialvar VAR_EVENT_PICHU_SLOT, CalculatePlayerPartyCount compare VAR_EVENT_PICHU_SLOT, PARTY_SIZE vgoto_if_eq SurfPichu_FullParty @@ -19,7 +19,7 @@ SurfPichu_GiveIfPossible: @ 8674D4C release end -SurfPichu_FullParty: @ 8674D73 +SurfPichu_FullParty: lock faceplayer vmessage sText_FullParty @@ -28,9 +28,9 @@ SurfPichu_FullParty: @ 8674D73 release end -SurfPichu_GiveEgg: @ 8674D7E +SurfPichu_GiveEgg: giveegg SPECIES_PICHU - setmonobedient VAR_EVENT_PICHU_SLOT + setmoneventlegal VAR_EVENT_PICHU_SLOT setmonmetlocation VAR_EVENT_PICHU_SLOT, METLOC_FATEFUL_ENCOUNTER compare VAR_EVENT_PICHU_SLOT, 1 vgoto_if_eq SurfPichu_Slot1 @@ -44,23 +44,23 @@ SurfPichu_GiveEgg: @ 8674D7E vgoto_if_eq SurfPichu_Slot5 return -SurfPichu_Slot1: @ 8674DC0 +SurfPichu_Slot1: setmonmove 1, 2, MOVE_SURF return -SurfPichu_Slot2:: @ 8674DC6 +SurfPichu_Slot2:: setmonmove 2, 2, MOVE_SURF return -SurfPichu_Slot3: @ 8674DCC +SurfPichu_Slot3: setmonmove 3, 2, MOVE_SURF return -SurfPichu_Slot4: @ 8674DD2 +SurfPichu_Slot4: setmonmove 4, 2, MOVE_SURF return -SurfPichu_Slot5: @ 8674DD8 +SurfPichu_Slot5: setmonmove 5, 2, MOVE_SURF return diff --git a/data/scripts/mevent_stamp_card.inc b/data/scripts/mevent_stamp_card.inc index dcef80a502..eeb3618548 100644 --- a/data/scripts/mevent_stamp_card.inc +++ b/data/scripts/mevent_stamp_card.inc @@ -1,4 +1,4 @@ -MysteryEventScript_StampCard:: @ 8674CB0 +MysteryEventScript_StampCard:: setvaddress MysteryEventScript_StampCard setorcopyvar VAR_RESULT, GET_MAX_STAMPS specialvar VAR_0x8008, GetMysteryEventCardVal diff --git a/data/scripts/mevent_trainer.inc b/data/scripts/mevent_trainer.inc index 4114750d89..f4318408d2 100644 --- a/data/scripts/mevent_trainer.inc +++ b/data/scripts/mevent_trainer.inc @@ -1,4 +1,4 @@ -MysteryEventScript_VisitingTrainer:: @ 8674EC1 +MysteryEventScript_VisitingTrainer:: setvaddress MysteryEventScript_VisitingTrainer special ValidateEReaderTrainer compare VAR_RESULT, 0 @@ -11,7 +11,7 @@ MysteryEventScript_VisitingTrainer:: @ 8674EC1 release end -MysteryEventScript_VisitingTrainerArrived: @ 8674EDF +MysteryEventScript_VisitingTrainerArrived: lock faceplayer vmessage sText_MysteryGiftVisitingTrainerArrived diff --git a/data/scripts/move_tutors.inc b/data/scripts/move_tutors.inc index a7807ce51b..cc952749d4 100644 --- a/data/scripts/move_tutors.inc +++ b/data/scripts/move_tutors.inc @@ -1,4 +1,4 @@ -SlateportCity_PokemonFanClub_EventScript_SwaggerTutor:: @ 82C7F16 +SlateportCity_PokemonFanClub_EventScript_SwaggerTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SWAGGER, MoveTutor_EventScript_SwaggerTaught @@ -17,17 +17,17 @@ SlateportCity_PokemonFanClub_EventScript_SwaggerTutor:: @ 82C7F16 goto MoveTutor_EventScript_SwaggerTaught end -MoveTutor_EventScript_SwaggerDeclined:: @ 82C7F6A +MoveTutor_EventScript_SwaggerDeclined:: msgbox MoveTutor_Text_SwaggerDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_SwaggerTaught:: @ 82C7F74 +MoveTutor_EventScript_SwaggerTaught:: msgbox MoveTutor_Text_SwaggerTaught, MSGBOX_DEFAULT release end -MauvilleCity_EventScript_RolloutTutor:: @ 82C7F7E +MauvilleCity_EventScript_RolloutTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT, MoveTutor_EventScript_RolloutTaught @@ -46,17 +46,17 @@ MauvilleCity_EventScript_RolloutTutor:: @ 82C7F7E goto MoveTutor_EventScript_RolloutTaught end -MoveTutor_EventScript_RolloutDeclined:: @ 82C7FD2 +MoveTutor_EventScript_RolloutDeclined:: msgbox MoveTutor_Text_RolloutDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_RolloutTaught:: @ 82C7FDC +MoveTutor_EventScript_RolloutTaught:: msgbox MoveTutor_Text_RolloutTaught, MSGBOX_DEFAULT release end -VerdanturfTown_PokemonCenter_1F_EventScript_FuryCutterTutor:: @ 82C7FE6 +VerdanturfTown_PokemonCenter_1F_EventScript_FuryCutterTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER, MoveTutor_EventScript_FuryCutterTaught @@ -75,17 +75,17 @@ VerdanturfTown_PokemonCenter_1F_EventScript_FuryCutterTutor:: @ 82C7FE6 goto MoveTutor_EventScript_FuryCutterTaught end -MoveTutor_EventScript_FuryCutterDeclined:: @ 82C803A +MoveTutor_EventScript_FuryCutterDeclined:: msgbox MoveTutor_Text_FuryCutterDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_FuryCutterTaught:: @ 82C8044 +MoveTutor_EventScript_FuryCutterTaught:: msgbox MoveTutor_Text_FuryCutterTaught, MSGBOX_DEFAULT release end -LavaridgeTown_House_EventScript_MimicTutor:: @ 82C804E +LavaridgeTown_House_EventScript_MimicTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_MIMIC, MoveTutor_EventScript_MimicTaught @@ -104,17 +104,17 @@ LavaridgeTown_House_EventScript_MimicTutor:: @ 82C804E goto MoveTutor_EventScript_MimicTaught end -MoveTutor_EventScript_MimicDeclined:: @ 82C80A2 +MoveTutor_EventScript_MimicDeclined:: msgbox MoveTutor_MimicDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_MimicTaught:: @ 82C80AC +MoveTutor_EventScript_MimicTaught:: msgbox MoveTutor_Text_MimicTaught, MSGBOX_DEFAULT release end -FallarborTown_Mart_EventScript_MetronomeTutor:: @ 82C80B6 +FallarborTown_Mart_EventScript_MetronomeTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_METRONOME, MoveTutor_EventScript_MetronomeTaught @@ -133,17 +133,17 @@ FallarborTown_Mart_EventScript_MetronomeTutor:: @ 82C80B6 goto MoveTutor_EventScript_MetronomeTaught end -MoveTutor_EventScript_MetronomeDeclined:: @ 82C810A +MoveTutor_EventScript_MetronomeDeclined:: msgbox MoveTutor_Text_MetronomeDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_MetronomeTaught:: @ 82C8114 +MoveTutor_EventScript_MetronomeTaught:: msgbox MoveTutor_Text_MetronomeTaught, MSGBOX_DEFAULT release end -FortreeCity_House2_EventScript_SleepTalkTutor:: @ 82C811E +FortreeCity_House2_EventScript_SleepTalkTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK, MoveTutor_EventScript_SleepTalkTaught @@ -162,17 +162,17 @@ FortreeCity_House2_EventScript_SleepTalkTutor:: @ 82C811E goto MoveTutor_EventScript_SleepTalkTaught end -MoveTutor_EventScript_SleepTalkDeclined:: @ 82C8172 +MoveTutor_EventScript_SleepTalkDeclined:: msgbox MoveTutor_Text_SleepTalkDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_SleepTalkTaught:: @ 82C817C +MoveTutor_EventScript_SleepTalkTaught:: msgbox MoveTutor_Text_SleepTalkTaught, MSGBOX_DEFAULT release end -LilycoveCity_DepartmentStoreRooftop_EventScript_SubstituteTutor:: @ 82C8186 +LilycoveCity_DepartmentStoreRooftop_EventScript_SubstituteTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE, MoveTutor_EventScript_SubstituteTaught @@ -191,17 +191,17 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_SubstituteTutor:: @ 82C8186 goto MoveTutor_EventScript_SubstituteTaught end -MoveTutor_EventScript_SubstituteDeclined:: @ 82C81DA +MoveTutor_EventScript_SubstituteDeclined:: msgbox MoveTutor_Text_SubstituteDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_SubstituteTaught:: @ 82C81E4 +MoveTutor_EventScript_SubstituteTaught:: msgbox MoveTutor_Text_SubstituteTaught, MSGBOX_DEFAULT release end -MossdeepCity_EventScript_DynamicPunchTutor:: @ 82C81EE +MossdeepCity_EventScript_DynamicPunchTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH, MoveTutor_EventScript_DynamicPunchTaught @@ -220,17 +220,17 @@ MossdeepCity_EventScript_DynamicPunchTutor:: @ 82C81EE goto MoveTutor_EventScript_DynamicPunchTaught end -MoveTutor_EventScript_DynamicPunchDeclined:: @ 82C8242 +MoveTutor_EventScript_DynamicPunchDeclined:: msgbox MoveTutor_Text_DynamicPunchDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_DynamicPunchTaught:: @ 82C824C +MoveTutor_EventScript_DynamicPunchTaught:: msgbox MoveTutor_Text_DynamicPunchTaught, MSGBOX_DEFAULT release end -SootopolisCity_PokemonCenter_1F_EventScript_DoubleEdgeTutor:: @ 82C8256 +SootopolisCity_PokemonCenter_1F_EventScript_DoubleEdgeTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE, MoveTutor_EventScript_DoubleEdgeTaught @@ -249,17 +249,17 @@ SootopolisCity_PokemonCenter_1F_EventScript_DoubleEdgeTutor:: @ 82C8256 goto MoveTutor_EventScript_DoubleEdgeTaught end -MoveTutor_EventScript_DoubleEdgeDeclined:: @ 82C82AA +MoveTutor_EventScript_DoubleEdgeDeclined:: msgbox MoveTutor_Text_DoubleEdgeDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_DoubleEdgeTaught:: @ 82C82B4 +MoveTutor_EventScript_DoubleEdgeTaught:: msgbox MoveTutor_Text_DoubleEdgeTaught, MSGBOX_DEFAULT release end -PacifidlogTown_PokemonCenter_1F_EventScript_ExplosionTutor:: @ 82C82BE +PacifidlogTown_PokemonCenter_1F_EventScript_ExplosionTutor:: lock faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION, MoveTutor_EventScript_ExplosionTaught @@ -278,23 +278,23 @@ PacifidlogTown_PokemonCenter_1F_EventScript_ExplosionTutor:: @ 82C82BE goto MoveTutor_EventScript_ExplosionTaught end -MoveTutor_EventScript_ExplosionDeclined:: @ 82C8312 +MoveTutor_EventScript_ExplosionDeclined:: msgbox MoveTutor_Text_ExplosionDeclined, MSGBOX_DEFAULT release end -MoveTutor_EventScript_ExplosionTaught:: @ 82C831C +MoveTutor_EventScript_ExplosionTaught:: msgbox MoveTutor_Text_ExplosionTaught, MSGBOX_DEFAULT release end -MoveTutor_EventScript_OpenPartyMenu:: @ 82C8326 +MoveTutor_EventScript_OpenPartyMenu:: special ChooseMonForMoveTutor waitstate lock faceplayer return -MoveTutor_EventScript_CanOnlyBeLearnedOnce:: @ 82C832D +MoveTutor_EventScript_CanOnlyBeLearnedOnce:: msgbox MoveTutor_Text_ThisMoveCanOnlyBeLearnedOnce, MSGBOX_YESNO return diff --git a/data/scripts/movement.inc b/data/scripts/movement.inc index 3dd1a81442..3f75d30dd4 100644 --- a/data/scripts/movement.inc +++ b/data/scripts/movement.inc @@ -1,74 +1,74 @@ -Common_Movement_QuestionMark: @ 8272596 +Common_Movement_QuestionMark: emote_question_mark step_end -Common_Movement_ExclamationMark: @ 8272598 +Common_Movement_ExclamationMark: emote_exclamation_mark step_end -Common_Movement_Delay48: @ 827259A +Common_Movement_Delay48: delay_16 delay_16 delay_16 step_end -Common_Movement_FacePlayer: @ 827259E +Common_Movement_FacePlayer: face_player step_end -Common_Movement_FaceAwayPlayer: @ 82725A0 +Common_Movement_FaceAwayPlayer: face_away_player step_end -Common_Movement_FaceOriginalDirection: @ 82725A2 +Common_Movement_FaceOriginalDirection: face_original_direction step_end -Common_Movement_WalkInPlaceFastestLeft: @ 82725A4 +Common_Movement_WalkInPlaceFastestLeft: walk_in_place_fastest_left step_end -Common_Movement_WalkInPlaceFastestUp: @ 82725A6 +Common_Movement_WalkInPlaceFastestUp: walk_in_place_fastest_up step_end -Common_Movement_WalkInPlaceFastestRight: @ 82725A8 +Common_Movement_WalkInPlaceFastestRight: walk_in_place_fastest_right step_end -Common_Movement_WalkInPlaceFastestDown: @ 82725AA +Common_Movement_WalkInPlaceFastestDown: walk_in_place_fastest_down step_end -Common_Movement_FaceRight: @ 82725AC +Common_Movement_FaceRight: face_right step_end -Common_Movement_FaceLeft: @ 82725AE +Common_Movement_FaceLeft: face_left step_end -Common_Movement_FaceDown: @ 82725B0 +Common_Movement_FaceDown: face_down step_end -Common_Movement_FaceUp: @ 82725B2 +Common_Movement_FaceUp: face_up step_end -Common_Movement_WalkInPlaceDown: @ 82725B4 +Common_Movement_WalkInPlaceDown: walk_in_place_down step_end -Common_Movement_WalkInPlaceLeft: @ 82725B6 +Common_Movement_WalkInPlaceLeft: walk_in_place_left step_end -Common_Movement_WalkInPlaceRight: @ 82725B8 +Common_Movement_WalkInPlaceRight: walk_in_place_right step_end -Common_Movement_WalkUp6: @ 82725BA +Common_Movement_WalkUp6: walk_up walk_up walk_up @@ -77,24 +77,24 @@ Common_Movement_WalkUp6: @ 82725BA walk_up step_end -Common_Movement_WalkUp4: @ 82725C1 +Common_Movement_WalkUp4: walk_up walk_up walk_up walk_up step_end -Common_Movement_Delay32: @ 82725C6 +Common_Movement_Delay32: delay_16 delay_16 step_end -Common_Movement_WalkUp: @ 82725C9 +Common_Movement_WalkUp: walk_up step_end @ Unused -Common_Movement_WalkUp2:: @ 82725CB +Common_Movement_WalkUp2:: walk_up walk_up step_end diff --git a/data/scripts/mystery_event_club.inc b/data/scripts/mystery_event_club.inc index 16e9a657f2..f0cb559983 100644 --- a/data/scripts/mystery_event_club.inc +++ b/data/scripts/mystery_event_club.inc @@ -1,4 +1,4 @@ -MysteryEventClub_EventScript_Man:: @ 8291539 +MysteryEventClub_EventScript_Man:: lock faceplayer goto_if_set FLAG_SYS_CHAT_USED, MysteryEventClub_EventScript_GivenProfileBefore @@ -6,9 +6,9 @@ MysteryEventClub_EventScript_Man:: @ 8291539 goto MysteryEventClub_EventScript_AskToSeeProfile end -MysteryEventClub_EventScript_AskToSeeProfile:: @ 8291552 +MysteryEventClub_EventScript_AskToSeeProfile:: msgbox MysteryEventClub_Text_MayISeeYourProfile, MSGBOX_DEFAULT - multichoice 17, 6, MULTI_YESNOINFO_2, 0 + multichoice 17, 6, MULTI_YESNOINFO_2, FALSE switch VAR_RESULT case 0, MysteryEventClub_EventScript_CreateProfile case 1, MysteryEventClub_EventScript_DeclineShowProfile @@ -16,12 +16,12 @@ MysteryEventClub_EventScript_AskToSeeProfile:: @ 8291552 case MULTI_B_PRESSED, MysteryEventClub_EventScript_DeclineShowProfile end -MysteryEventClub_EventScript_Info:: @ 8291591 +MysteryEventClub_EventScript_Info:: msgbox MysteryEventClub_Text_EasyChatExplanation, MSGBOX_DEFAULT goto MysteryEventClub_EventScript_AskToSeeProfile end -MysteryEventClub_EventScript_CreateProfile:: @ 829159F +MysteryEventClub_EventScript_CreateProfile:: msgbox MysteryEventClub_Text_LetsSeeItThen, MSGBOX_DEFAULT closemessage setvar VAR_0x8004, EASY_CHAT_TYPE_PROFILE @@ -34,12 +34,12 @@ MysteryEventClub_EventScript_CreateProfile:: @ 829159F goto_if_eq MysteryEventClub_EventScript_ShowProfile end -MysteryEventClub_EventScript_CancelShowProfile:: @ 82915CB +MysteryEventClub_EventScript_CancelShowProfile:: msgbox MysteryEventClub_Text_NotIntoItRightNow, MSGBOX_DEFAULT release end -MysteryEventClub_EventScript_ShowProfile:: @ 82915D5 +MysteryEventClub_EventScript_ShowProfile:: setvar VAR_0x8004, 0 special ShowEasyChatProfile waitmessage @@ -48,19 +48,19 @@ MysteryEventClub_EventScript_ShowProfile:: @ 82915D5 release end -MysteryEventClub_EventScript_DeclineShowProfile:: @ 82915EB +MysteryEventClub_EventScript_DeclineShowProfile:: msgbox MysteryEventClub_Text_ImagineYouWouldHaveWonderfulProfile, MSGBOX_DEFAULT release end -MysteryEventClub_EventScript_GivenProfileBefore:: @ 82915F5 +MysteryEventClub_EventScript_GivenProfileBefore:: msgbox MysteryEventClub_Text_YouHaveWonderfulSmile, MSGBOX_DEFAULT goto MysteryEventClub_EventScript_AskToSeeNewProfile end -MysteryEventClub_EventScript_AskToSeeNewProfile:: @ 8291603 +MysteryEventClub_EventScript_AskToSeeNewProfile:: msgbox MysteryEventClub_Text_MayISeeYourNewProfile, MSGBOX_DEFAULT - multichoice 17, 6, MULTI_YESNOINFO_2, 0 + multichoice 17, 6, MULTI_YESNOINFO_2, FALSE switch VAR_RESULT case 0, MysteryEventClub_EventScript_CreateNewProfile case 1, MysteryEventClub_EventScript_DeclineNewProfile @@ -68,12 +68,12 @@ MysteryEventClub_EventScript_AskToSeeNewProfile:: @ 8291603 case MULTI_B_PRESSED, MysteryEventClub_EventScript_DeclineNewProfile end -MysteryEventClub_EventScript_InfoNewProfile:: @ 8291642 +MysteryEventClub_EventScript_InfoNewProfile:: msgbox MysteryEventClub_Text_EasyChatExplanation, MSGBOX_DEFAULT goto MysteryEventClub_EventScript_AskToSeeNewProfile end -MysteryEventClub_EventScript_CreateNewProfile:: @ 8291650 +MysteryEventClub_EventScript_CreateNewProfile:: msgbox MysteryEventClub_Text_EvenBetterThanLastProfile, MSGBOX_DEFAULT closemessage setvar VAR_0x8004, EASY_CHAT_TYPE_PROFILE @@ -86,26 +86,26 @@ MysteryEventClub_EventScript_CreateNewProfile:: @ 8291650 goto_if_eq MysteryEventClub_EventScript_ShowProfile end -MysteryEventClub_EventScript_DeclineNewProfile:: @ 829167C +MysteryEventClub_EventScript_DeclineNewProfile:: msgbox MysteryEventClub_Text_LikeProfileWayItIs, MSGBOX_DEFAULT release end @ Unused -MysteryEventClub_EventScript_Ret:: @ 8291686 +MysteryEventClub_EventScript_Ret:: return -MysteryEventClub_Text_CollectTrainerProfiles: @ 8291687 +MysteryEventClub_Text_CollectTrainerProfiles: .string "Hello there, TRAINER!\n" .string "You've got a wonderful smile, there.\p" .string "I have a hobby--collecting the profiles\n" .string "of POKéMON TRAINERS.$" -MysteryEventClub_Text_MayISeeYourProfile: @ 82916FF +MysteryEventClub_Text_MayISeeYourProfile: .string "So, how about it?\n" .string "May I see your profile?$" -MysteryEventClub_Text_EasyChatExplanation: @ 8291729 +MysteryEventClub_Text_EasyChatExplanation: .string "You make your own profile by putting\n" .string "together four words or phrases.\p" .string "Here, I'll show you an example of a\n" @@ -124,37 +124,37 @@ MysteryEventClub_Text_EasyChatExplanation: @ 8291729 .string "Repeat for the remaining text choices,\n" .string "and you'll have your very own profile.$" -MysteryEventClub_Text_LetsSeeItThen: @ 8291969 +MysteryEventClub_Text_LetsSeeItThen: .string "Yes! Thank you!\n" .string "So, let's see it, then.$" -MysteryEventClub_Text_ImagineYouWouldHaveWonderfulProfile: @ 8291991 +MysteryEventClub_Text_ImagineYouWouldHaveWonderfulProfile: .string "Oh, no, really?\p" .string "I imagine someone like you would have\n" .string "a wonderful profile…$" -MysteryEventClub_Text_NotIntoItRightNow: @ 82919DC +MysteryEventClub_Text_NotIntoItRightNow: .string "Oh? You're not into it right now?\p" .string "Well, anytime is good by me!$" -MysteryEventClub_Text_YouHaveWonderfulSmile: @ 8291A1B +MysteryEventClub_Text_YouHaveWonderfulSmile: .string "Hello there, TRAINER!\n" .string "You've got a wonderful smile.$" -MysteryEventClub_Text_MayISeeYourNewProfile: @ 8291A4F +MysteryEventClub_Text_MayISeeYourNewProfile: .string "May I see your new profile?$" -MysteryEventClub_Text_EvenBetterThanLastProfile: @ 8291A6B +MysteryEventClub_Text_EvenBetterThanLastProfile: .string "Yes! Thank you!\p" .string "I hope it's even better than the profile\n" .string "you showed me before.$" -MysteryEventClub_Text_LikeProfileWayItIs: @ 8291ABA +MysteryEventClub_Text_LikeProfileWayItIs: .string "Oh, you like your profile the way it is.\p" .string "I don't blame you--it's a wonderful\n" .string "profile the way it is now.$" -MysteryEventClub_Text_FantasticProfile: @ 8291B22 +MysteryEventClub_Text_FantasticProfile: .string "F-fantastic!\p" .string "Your profile, it's wonderful!\n" .string "It really says what you're about.\p" @@ -163,7 +163,7 @@ MysteryEventClub_Text_FantasticProfile: @ 8291B22 .string "Thank you!$" @ Unused -MysteryEventClub_Text_YouKnowSecretSaying: @ 8291BB7 +MysteryEventClub_Text_YouKnowSecretSaying: .string "Oh?\n" .string "You know the secret saying!\p" .string "That means you're now a fellow member\n" diff --git a/data/scripts/new_game.inc b/data/scripts/new_game.inc index 77102a001f..7c5c3fc7de 100644 --- a/data/scripts/new_game.inc +++ b/data/scripts/new_game.inc @@ -1,118 +1,118 @@ -EventScript_ResetAllBerries:: @ 827149D +EventScript_ResetAllBerries:: @ Route 102 - setberrytree 2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES - setberrytree 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_102_ORAN, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_102_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES @ Route 104 - setberrytree 11, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES - setberrytree 13, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 4, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES - setberrytree 76, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES - setberrytree 8, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES - setberrytree 10, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_ORAN_2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_ORAN_1, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_CHERI_2, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_CHERI_1, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES @ Route 116 - setberrytree 25, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES - setberrytree 26, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES - setberrytree 66, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES - setberrytree 67, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_116_PINAP_1, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_116_CHESTO_1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_116_CHESTO_2, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_116_PINAP_2, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES @ Route 115 - setberrytree 69, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES - setberrytree 70, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES - setberrytree 71, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES - setberrytree 55, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES - setberrytree 56, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_KELPSY_1, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_KELPSY_2, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_KELPSY_3, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_BLUK_1, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_BLUK_2, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES @ Route 103 - setberrytree 5, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES - setberrytree 6, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 7, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_103_CHERI_1, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_103_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_103_CHERI_2, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES @ Route 110 - setberrytree 16, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES - setberrytree 17, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES - setberrytree 18, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_110_NANAB_1, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_110_NANAB_2, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_110_NANAB_3, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES @ Route 117 - setberrytree 29, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 28, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 27, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES @ Route 112 - setberrytree 24, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES - setberrytree 23, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 22, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 21, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_112_PECHA_1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_112_RAWST_1, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES @ Route 111 - setberrytree 19, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES - setberrytree 20, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES - setberrytree 80, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES - setberrytree 81, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_111_RAZZ_1, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_111_RAZZ_2, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_111_ORAN_1, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_111_ORAN_2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES @ Route 114 - setberrytree 77, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES - setberrytree 78, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES - setberrytree 68, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_114_PERSIM_2, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_114_PERSIM_3, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_114_PERSIM_1, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES @ Route 118 - setberrytree 31, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES - setberrytree 33, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_118_SITRUS_1, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_118_SITRUS_2, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES @ Route 119 - setberrytree 34, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 35, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 36, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 83, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES - setberrytree 84, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES - setberrytree 85, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES - setberrytree 86, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_POMEG_1, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_POMEG_2, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_POMEG_3, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_HONDEW_1, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_HONDEW_2, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_SITRUS, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES @ Route 120 - setberrytree 37, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 38, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 39, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 40, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 41, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 42, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 46, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 45, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES - setberrytree 44, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES - setberrytree 43, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_ASPEAR_1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_ASPEAR_2, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_ASPEAR_3, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_PECHA_1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_PECHA_3, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_WEPEAR, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_PINAP, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_NANAB, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_RAZZ, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES @ Route 121 - setberrytree 47, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES - setberrytree 48, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 49, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES - setberrytree 50, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES - setberrytree 52, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES - setberrytree 53, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_PERSIM, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_ASPEAR, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_RAWST, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_CHESTO, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_NANAB_1, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_NANAB_2, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES @ Route 123 - setberrytree 62, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 64, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 58, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 59, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 60, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 61, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 79, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES - setberrytree 14, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES - setberrytree 15, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 30, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 65, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 72, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 73, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES - setberrytree 74, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES - setberrytree 87, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 88, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES - setberrytree 89, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_LEPPA_1, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_LEPPA_2, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_POMEG_3, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_POMEG_4, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_GREPA_1, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_GREPA_2, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_QUALOT_4, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_QUALOT_1, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_POMEG_1, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_POMEG_2, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_GREPA_3, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_GREPA_4, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_QUALOT_2, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_QUALOT_3, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_SITRUS, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_RAWST, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES @ Mirage Island - setberrytree 82, ITEM_TO_BERRY(ITEM_LIECHI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_130_LIECHI, ITEM_TO_BERRY(ITEM_LIECHI_BERRY), BERRY_STAGE_BERRIES return -EventScript_ResetAllMapFlags:: @ 82715DE +EventScript_ResetAllMapFlags:: setflag FLAG_HIDE_CONTEST_POKE_BALL setflag FLAG_HIDE_ROUTE_111_VICTORIA_WINSTRATE setflag FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE @@ -179,8 +179,8 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS - setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1 - setflag FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1 + setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE + setflag FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_CAPTAIN_STERN setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE @@ -209,7 +209,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_SLATEPORT_MUSEUM_POPULATION setflag FLAG_HIDE_BATTLE_TOWER_OPPONENT setflag FLAG_HIDE_LITTLEROOT_TOWN_MOM_OUTSIDE - setflag FLAG_HIDE_LITTLE_ROOT_TOWN_PLAYERS_BEDROOM_MOM + setflag FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_BEDROOM_MOM setflag FLAG_HIDE_LITTLEROOT_TOWN_RIVAL setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCH setflag FLAG_HIDE_WEATHER_INSTITUTE_1F_WORKERS @@ -229,7 +229,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE setflag FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE setflag FLAG_HIDE_ROUTE_104_RIVAL - setflag FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS + setflag FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS setflag FLAG_HIDE_LAVARIDGE_TOWN_RIVAL setflag FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_ON_BIKE setflag FLAG_HIDE_MOSSDEEP_CITY_HOUSE_2_WINGULL @@ -271,6 +271,6 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT setflag FLAG_HIDE_EVER_GRANDE_POKEMON_CENTER_1F_SCOTT setflag FLAG_HIDE_SKY_PILLAR_WALLACE - setflag FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT + setflag FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL call EventScript_ResetAllBerries end diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc index 19f57d9d52..382f5ce320 100644 --- a/data/scripts/obtain_item.inc +++ b/data/scripts/obtain_item.inc @@ -1,10 +1,10 @@ -Std_ObtainItem:: @ 8271AD3 +Std_ObtainItem:: additem VAR_0x8000, VAR_0x8001 copyvar VAR_0x8007, VAR_RESULT call EventScript_ObtainItemMessage return -EventScript_ObtainItemMessage:: @ 8271AE3 +EventScript_ObtainItemMessage:: bufferitemnameplural 1, VAR_0x8000, VAR_0x8001 checkitemtype VAR_0x8000 call EventScript_BufferPocketNameAndTryFanfare @@ -14,7 +14,7 @@ EventScript_ObtainItemMessage:: @ 8271AE3 call_if_eq EventScript_NoRoomForItem return -EventScript_BufferPocketNameAndTryFanfare:: @ 8271B08 +EventScript_BufferPocketNameAndTryFanfare:: switch VAR_RESULT case POCKET_ITEMS, EventScript_BufferItemsPocket case POCKET_KEY_ITEMS, EventScript_BufferKeyItemsPocket @@ -23,62 +23,62 @@ EventScript_BufferPocketNameAndTryFanfare:: @ 8271B08 case POCKET_BERRIES, EventScript_BufferBerriesPocket end -EventScript_BufferItemsPocket:: @ 8271B45 +EventScript_BufferItemsPocket:: bufferstdstring 2, STDSTRING_ITEMS compare VAR_0x8007, 1 call_if_eq EventScript_PlayFanfareObtainedItem return -EventScript_BufferKeyItemsPocket:: @ 8271B55 +EventScript_BufferKeyItemsPocket:: bufferstdstring 2, STDSTRING_KEYITEMS compare VAR_0x8007, 1 call_if_eq EventScript_PlayFanfareObtainedItem return -EventScript_BufferPokeballsPocket:: @ 8271B65 +EventScript_BufferPokeballsPocket:: bufferstdstring 2, STDSTRING_POKEBALLS compare VAR_0x8007, 1 call_if_eq EventScript_PlayFanfareObtainedItem return -EventScript_BufferTMHMsPocket:: @ 8271B75 +EventScript_BufferTMHMsPocket:: bufferstdstring 2, STDSTRING_TMHMS compare VAR_0x8007, 1 call_if_eq EventScript_PlayFanfareObtainedTMHM return -EventScript_BufferBerriesPocket:: @ 8271B85 +EventScript_BufferBerriesPocket:: bufferstdstring 2, STDSTRING_BERRIES compare VAR_0x8007, 1 call_if_eq EventScript_PlayFanfareObtainedItem return -EventScript_ObtainedItem:: @ 8271B95 +EventScript_ObtainedItem:: message gText_ObtainedTheItem waitfanfare msgbox gText_PutItemInPocket, MSGBOX_DEFAULT setvar VAR_RESULT, 1 return -EventScript_NoRoomForItem:: @ 8271BA9 +EventScript_NoRoomForItem:: setvar VAR_RESULT, 0 return -EventScript_PlayFanfareObtainedItem:: @ 8271BAF +EventScript_PlayFanfareObtainedItem:: playfanfare MUS_OBTAIN_ITEM return -EventScript_PlayFanfareObtainedTMHM:: @ 8271BB3 +EventScript_PlayFanfareObtainedTMHM:: playfanfare MUS_OBTAIN_TMHM return -Std_ObtainDecoration:: @ 8271BB7 +Std_ObtainDecoration:: adddecoration VAR_0x8000 copyvar VAR_0x8007, VAR_RESULT call EventScript_ObtainDecorationMessage return -EventScript_ObtainDecorationMessage:: @ 8271BC5 +EventScript_ObtainDecorationMessage:: bufferdecorationname 1, VAR_0x8000 compare VAR_0x8007, 1 call_if_eq EventScript_ObtainedDecor @@ -86,7 +86,7 @@ EventScript_ObtainDecorationMessage:: @ 8271BC5 call_if_eq EventScript_NoRoomForDecor return -EventScript_ObtainedDecor:: @ 8271BE0 +EventScript_ObtainedDecor:: playfanfare MUS_OBTAIN_ITEM message gText_ObtainedTheDecor waitfanfare @@ -94,11 +94,11 @@ EventScript_ObtainedDecor:: @ 8271BE0 setvar VAR_RESULT, 1 return -EventScript_NoRoomForDecor:: @ 8271BF7 +EventScript_NoRoomForDecor:: setvar VAR_RESULT, 0 return -Std_FindItem:: @ 8271BFD +Std_FindItem:: lock faceplayer waitse @@ -116,7 +116,7 @@ Std_FindItem:: @ 8271BFD release return -EventScript_PickUpItem:: @ 8271C3A +EventScript_PickUpItem:: removeobject VAR_LAST_TALKED additem VAR_0x8004, VAR_0x8005 specialvar VAR_RESULT, BufferTMHMMoveName @@ -134,26 +134,26 @@ EventScript_PickUpItem:: @ 8271C3A msgbox gText_PutItemInPocket, MSGBOX_DEFAULT return -EventScript_PutBattlePyramidItemInBag:: @ 8271C86 +EventScript_PutBattlePyramidItemInBag:: msgbox gText_PlayerPutItemInBag, MSGBOX_DEFAULT return -EventScript_FoundTMHM:: @ 8271C8F +EventScript_FoundTMHM:: bufferitemnameplural 0, VAR_0x8004, VAR_0x8005 message gText_PlayerFoundOneTMHM return -EventScript_FoundItem:: @ 8271C9B +EventScript_FoundItem:: message gText_PlayerFoundOneItem return -EventScript_NoRoomToPickUpItem:: @ 8271CA1 +EventScript_NoRoomToPickUpItem:: msgbox gText_ObtainedTheItem, MSGBOX_DEFAULT msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT setvar VAR_RESULT, 0 return -EventScript_HiddenItemScript:: @ 8271CB7 +EventScript_HiddenItemScript:: lockall waitse additem VAR_0x8005 @@ -167,7 +167,7 @@ EventScript_HiddenItemScript:: @ 8271CB7 goto_if_eq EventScript_NoRoomForHiddenItem end -EventScript_PickUpHiddenItem:: @ 8271CE8 +EventScript_PickUpHiddenItem:: copyvar VAR_0x8008, VAR_0x8004 copyvar VAR_0x8004, VAR_0x8005 specialvar VAR_RESULT, BufferTMHMMoveName @@ -177,18 +177,18 @@ EventScript_PickUpHiddenItem:: @ 8271CE8 goto_if_eq EventScript_FoundHiddenItem end -EventScript_FoundHiddenTMHM:: @ 8271D0E +EventScript_FoundHiddenTMHM:: bufferitemnameplural 0, VAR_0x8004, 1 message gText_PlayerFoundOneTMHM goto EventScript_PutHiddenItemInPocket end -EventScript_FoundHiddenItem:: @ 8271D1F +EventScript_FoundHiddenItem:: message gText_PlayerFoundOneItem goto EventScript_PutHiddenItemInPocket end -EventScript_PutHiddenItemInPocket:: @ 8271D2A +EventScript_PutHiddenItemInPocket:: waitmessage waitfanfare bufferitemnameplural 1, VAR_0x8004, 1 @@ -199,7 +199,7 @@ EventScript_PutHiddenItemInPocket:: @ 8271D2A releaseall end -EventScript_NoRoomForHiddenItem:: @ 8271D47 +EventScript_NoRoomForHiddenItem:: msgbox gText_PlayerFoundOneItem, MSGBOX_DEFAULT msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT setvar VAR_RESULT, 0 diff --git a/data/scripts/pc.inc b/data/scripts/pc.inc index b3602ee6f5..43c0bca0d7 100644 --- a/data/scripts/pc.inc +++ b/data/scripts/pc.inc @@ -1,4 +1,4 @@ -EventScript_PC:: @ 8271D92 +EventScript_PC:: lockall setvar VAR_0x8004, 0 special DoPCTurnOnEffect @@ -7,7 +7,7 @@ EventScript_PC:: @ 8271D92 goto EventScript_PCMainMenu end -EventScript_PCMainMenu:: @ 8271DAC +EventScript_PCMainMenu:: message gText_WhichPCShouldBeAccessed waitmessage special ScriptMenu_CreatePCMultichoice @@ -15,7 +15,7 @@ EventScript_PCMainMenu:: @ 8271DAC goto EventScript_AccessPC end -EventScript_AccessPC:: @ 8271DBC +EventScript_AccessPC:: switch VAR_RESULT case 0, EventScript_AccessPokemonStorage case 1, EventScript_AccessPlayersPC @@ -24,7 +24,7 @@ EventScript_AccessPC:: @ 8271DBC case MULTI_B_PRESSED, EventScript_TurnOffPC end -EventScript_AccessPlayersPC:: @ 8271DF9 +EventScript_AccessPlayersPC:: playse SE_PC_LOGIN msgbox gText_AccessedPlayersPC, MSGBOX_DEFAULT special PlayerPC @@ -32,7 +32,7 @@ EventScript_AccessPlayersPC:: @ 8271DF9 goto EventScript_PCMainMenu end -EventScript_AccessPokemonStorage:: @ 8271E0E +EventScript_AccessPokemonStorage:: playse SE_PC_LOGIN call_if_unset FLAG_SYS_PC_LANETTE, EventScript_AccessSomeonesPC call_if_set FLAG_SYS_PC_LANETTE, EventScript_AccessLanettesPC @@ -42,22 +42,22 @@ EventScript_AccessPokemonStorage:: @ 8271E0E goto EventScript_PCMainMenu end -EventScript_AccessSomeonesPC:: @ 8271E35 +EventScript_AccessSomeonesPC:: msgbox gText_AccessedSomeonesPC, MSGBOX_DEFAULT return -EventScript_AccessLanettesPC:: @ 8271E3E +EventScript_AccessLanettesPC:: msgbox gText_AccessedLanettesPC, MSGBOX_DEFAULT return -EventScript_TurnOffPC:: @ 8271E47 +EventScript_TurnOffPC:: setvar VAR_0x8004, 0 playse SE_PC_OFF special DoPCTurnOffEffect releaseall end -EventScript_AccessHallOfFame:: @ 8271E54 +EventScript_AccessHallOfFame:: goto_if_unset FLAG_SYS_GAME_CLEAR, EventScript_TurnOffPC playse SE_PC_LOGIN special AccessHallOfFamePC diff --git a/data/scripts/pc_transfer.inc b/data/scripts/pc_transfer.inc index ec58b26f18..1fe575d551 100644 --- a/data/scripts/pc_transfer.inc +++ b/data/scripts/pc_transfer.inc @@ -1,11 +1,11 @@ @ VAR_0x8004 here is used by ChangePokemonNickname -Common_EventScript_GetGiftMonPartySlot:: @ 827378B +Common_EventScript_GetGiftMonPartySlot:: getpartysize subvar VAR_RESULT, 1 copyvar VAR_0x8004, VAR_RESULT return -Common_EventScript_NameReceivedBoxMon:: @ 8273797 +Common_EventScript_NameReceivedBoxMon:: fadescreen FADE_TO_BLACK special ChangeBoxPokemonNickname waitstate @@ -13,40 +13,40 @@ Common_EventScript_NameReceivedBoxMon:: @ 8273797 faceplayer return -Common_EventScript_TransferredToPC:: @ 82737A0 +Common_EventScript_TransferredToPC:: bufferboxname 0, VAR_PC_BOX_TO_SEND_MON bufferspeciesname 1, VAR_TEMP_1 call_if_unset FLAG_SYS_PC_LANETTE, EventScript_TransferredSomeonesPC call_if_set FLAG_SYS_PC_LANETTE, EventScript_TransferredLanettesPC return -EventScript_TransferredSomeonesPC:: @ 82737BB +EventScript_TransferredSomeonesPC:: specialvar VAR_RESULT, ShouldShowBoxWasFullMessage compare VAR_RESULT, 1 goto_if_eq EventScript_SomeonesPCBoxFull msgbox gText_PkmnTransferredSomeonesPC, MSGBOX_DEFAULT return -EventScript_SomeonesPCBoxFull:: @ 82737D4 +EventScript_SomeonesPCBoxFull:: specialvar VAR_RESULT, GetPCBoxToSendMon bufferboxname 2, VAR_RESULT msgbox gText_PkmnTransferredSomeonesPCBoxFull, MSGBOX_DEFAULT return -EventScript_TransferredLanettesPC:: @ 82737E6 +EventScript_TransferredLanettesPC:: specialvar VAR_RESULT, ShouldShowBoxWasFullMessage compare VAR_RESULT, TRUE goto_if_eq EventScript_LanettesPCBoxFull msgbox gText_PkmnTransferredLanettesPC, MSGBOX_DEFAULT return -EventScript_LanettesPCBoxFull:: @ 82737FF +EventScript_LanettesPCBoxFull:: specialvar VAR_RESULT, GetPCBoxToSendMon bufferboxname 2, VAR_RESULT msgbox gText_PkmnTransferredLanettesPCBoxFull, MSGBOX_DEFAULT return -Common_EventScript_NoMoreRoomForPokemon:: @ 8273811 +Common_EventScript_NoMoreRoomForPokemon:: msgbox gText_NoMoreRoomForPokemon, MSGBOX_DEFAULT release end diff --git a/data/scripts/pkmn_center_nurse.inc b/data/scripts/pkmn_center_nurse.inc index a26e9e22a4..7797b30615 100644 --- a/data/scripts/pkmn_center_nurse.inc +++ b/data/scripts/pkmn_center_nurse.inc @@ -1,4 +1,4 @@ -Common_EventScript_PkmnCenterNurse:: @ 827191E +Common_EventScript_PkmnCenterNurse:: lock faceplayer setvar VAR_0x8004, 0 @@ -12,12 +12,12 @@ Common_EventScript_PkmnCenterNurse:: @ 827191E goto_if_eq EventScript_PkmnCenterNurse_Goodbye end -EventScript_PkmnCenterNurse_Goodbye:: @ 8271954 +EventScript_PkmnCenterNurse_Goodbye:: message gText_WeHopeToSeeYouAgain return @ VAR_0x8004 is 1 when player has Gold Card; jumps are identical -EventScript_PkmnCenterNurse_HealPkmn:: @ 827195A +EventScript_PkmnCenterNurse_HealPkmn:: incrementgamestat GAME_STAT_USED_POKECENTER compare VAR_0x8004, 0 call_if_eq EventScript_PkmnCenterNurse_IllTakeYourPkmn @@ -29,15 +29,15 @@ EventScript_PkmnCenterNurse_HealPkmn:: @ 827195A goto EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom end -EventScript_PkmnCenterNurse_IllTakeYourPkmn:: @ 8271987 +EventScript_PkmnCenterNurse_IllTakeYourPkmn:: message gText_IllTakeYourPkmn return -EventScript_PkmnCenterNurse_IllTakeYourPkmn2:: @ 827198D +EventScript_PkmnCenterNurse_IllTakeYourPkmn2:: message gText_IllTakeYourPkmn2 return -EventScript_PkmnCenterNurse_TakeAndHealPkmn:: @ 8271993 +EventScript_PkmnCenterNurse_TakeAndHealPkmn:: applymovement VAR_0x800B, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 dofieldeffect FLDEFF_POKECENTER_HEAL @@ -47,7 +47,7 @@ EventScript_PkmnCenterNurse_TakeAndHealPkmn:: @ 8271993 special HealPlayerParty return -EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom:: @ 82719B1 +EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom:: specialvar VAR_RESULT, PlayerNotAtTrainerHillEntrance compare VAR_RESULT, 0 goto_if_eq EventScript_PkmnCenterNurse_ReturnPkmn @@ -60,36 +60,36 @@ EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom:: @ 82719B1 end @ VAR_0x8004 is 1 when player has Gold Card -EventScript_PkmnCenterNurse_ReturnPkmn:: @ 82719E2 +EventScript_PkmnCenterNurse_ReturnPkmn:: compare VAR_0x8004, 1 goto_if_eq EventScript_PkmnCenterNurse_ReturnPkmn2 message gText_RestoredPkmnToFullHealth waitmessage - applymovement VAR_0x800B, EventScript_PkmnCenterNurse_Bow + applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow waitmovement 0 message gText_WeHopeToSeeYouAgain return -EventScript_PkmnCenterNurse_ReturnPkmn2:: @ 8271A03 +EventScript_PkmnCenterNurse_ReturnPkmn2:: message gText_ThankYouForWaiting waitmessage - applymovement VAR_0x800B, EventScript_PkmnCenterNurse_Bow + applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow waitmovement 0 message gText_WeHopeToSeeYouAgain2 return -EventScript_PkmnCenterNurse_PlayerWaitingInUnionRoom:: @ 8271A19 +EventScript_PkmnCenterNurse_PlayerWaitingInUnionRoom:: goto_if_set FLAG_NURSE_UNION_ROOM_REMINDER, EventScript_PkmnCenterNurse_ReturnPkmn msgbox gText_RestoredPkmnToFullHealth, MSGBOX_DEFAULT setflag FLAG_NURSE_UNION_ROOM_REMINDER message CableClub_Text_PlayerIsWaiting waitmessage - applymovement VAR_0x800B, EventScript_PkmnCenterNurse_Bow + applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow waitmovement 0 message gText_WeHopeToSeeYouAgain return -EventScript_PkmnCenterNurse_CheckPokerus:: @ 8271A43 +EventScript_PkmnCenterNurse_CheckPokerus:: specialvar VAR_RESULT, IsPokerusInParty compare VAR_RESULT, TRUE goto_if_eq EventScript_PkmnCenterNurse_ExplainPokerus @@ -97,12 +97,12 @@ EventScript_PkmnCenterNurse_CheckPokerus:: @ 8271A43 goto_if_eq EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom end -EventScript_PkmnCenterNurse_ExplainPokerus:: @ 8271A5F +EventScript_PkmnCenterNurse_ExplainPokerus:: message gText_PokerusExplanation setflag FLAG_POKERUS_EXPLAINED return -EventScript_PkmnCenterNurse_GoldCard:: @ 8271A68 +EventScript_PkmnCenterNurse_GoldCard:: goto_if_set FLAG_NURSE_MENTIONS_GOLD_CARD, EventScript_PkmnCenterNurse_AskForUsual setflag FLAG_NURSE_MENTIONS_GOLD_CARD msgbox gText_WelcomeCutShort, MSGBOX_DEFAULT @@ -117,19 +117,19 @@ EventScript_PkmnCenterNurse_GoldCard:: @ 8271A68 message gText_WeHopeToSeeYouAgain2 return -EventScript_PkmnCenterNurse_AskForUsual:: @ 8271AAC +EventScript_PkmnCenterNurse_AskForUsual:: msgbox gText_YouWantTheUsual, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq EventScript_PkmnCenterNurse_GoldCardHealPkmn message gText_WeHopeToSeeYouAgain2 return -EventScript_PkmnCenterNurse_GoldCardHealPkmn:: @ 8271AC5 +EventScript_PkmnCenterNurse_GoldCardHealPkmn:: setvar VAR_0x8004, 1 goto EventScript_PkmnCenterNurse_HealPkmn end -EventScript_PkmnCenterNurse_Bow: @ 8271AD0 +Movement_PkmnCenterNurse_Bow: nurse_joy_bow delay_4 step_end diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc index 684b27e71e..e7e862039a 100644 --- a/data/scripts/players_house.inc +++ b/data/scripts/players_house.inc @@ -3,11 +3,11 @@ .set LOCALID_DAD, 5 .set LOCALID_MOM_2F, 14 -PlayersHouse_2F_EventScript_BlockStairsUntilClockIsSet:: @ 82926FE +PlayersHouse_2F_EventScript_BlockStairsUntilClockIsSet:: setvar VAR_LITTLEROOT_INTRO_STATE, 5 return -PlayersHouse_1F_EventScript_EnterHouseMovingIn:: @ 8292704 +PlayersHouse_1F_EventScript_EnterHouseMovingIn:: msgbox PlayersHouse_1F_Text_IsntItNiceInHere, MSGBOX_DEFAULT applymovement VAR_0x8004, Common_Movement_FacePlayer waitmovement 0 @@ -24,21 +24,21 @@ PlayersHouse_1F_EventScript_EnterHouseMovingIn:: @ 8292704 releaseall end -PlayersHouse_1F_EventScript_MomFacePlayerMovingInMale:: @ 829274D +PlayersHouse_1F_EventScript_MomFacePlayerMovingInMale:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PlayersHouse_1F_EventScript_MomFacePlayerMovingInFemale:: @ 8292758 +PlayersHouse_1F_EventScript_MomFacePlayerMovingInFemale:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PlayersHouse_1F_Movement_PlayerWalkIn: @ 8292763 +PlayersHouse_1F_Movement_PlayerWalkIn: walk_up step_end -PlayersHouse_1F_EventScript_MomGoSeeRoom:: @ 8292765 +PlayersHouse_1F_EventScript_MomGoSeeRoom:: msgbox PlayersHouse_1F_Text_ArentYouInterestedInRoom, MSGBOX_DEFAULT closemessage applymovement VAR_0x8004, Common_Movement_WalkInPlaceFastestUp @@ -47,19 +47,19 @@ PlayersHouse_1F_EventScript_MomGoSeeRoom:: @ 8292765 releaseall end -LittlerootTown_BrendansHouse_2F_EventScript_WallClock:: @ 8292781 +LittlerootTown_BrendansHouse_2F_EventScript_WallClock:: lockall setvar VAR_0x8004, MALE goto PlayersHouse_2F_EventScript_WallClock end -LittlerootTown_MaysHouse_2F_EventScript_WallClock:: @ 829278D +LittlerootTown_MaysHouse_2F_EventScript_WallClock:: lockall setvar VAR_0x8004, FEMALE goto PlayersHouse_2F_EventScript_WallClock end -PlayersHouse_2F_EventScript_WallClock:: @ 8292799 +PlayersHouse_2F_EventScript_WallClock:: goto_if_set FLAG_SET_WALL_CLOCK, PlayersHouse_2F_EventScript_CheckWallClock msgbox PlayersHouse_2F_Text_ClockIsStopped, MSGBOX_DEFAULT call PlayersHouse_2F_EventScript_SetWallClock @@ -78,7 +78,7 @@ PlayersHouse_2F_EventScript_WallClock:: @ 8292799 releaseall end -PlayersHouse_2F_EventScript_MomComesUpstairsMale:: @ 82927DF +PlayersHouse_2F_EventScript_MomComesUpstairsMale:: setvar VAR_0x8008, LOCALID_MOM_2F addobject VAR_0x8008 applymovement VAR_0x8008, PlayersHouse_2F_Movement_MomEntersMale @@ -91,7 +91,7 @@ PlayersHouse_2F_EventScript_MomComesUpstairsMale:: @ 82927DF waitmovement 0 return -PlayersHouse_2F_EventScript_MomComesUpstairsFemale:: @ 829280F +PlayersHouse_2F_EventScript_MomComesUpstairsFemale:: setvar VAR_0x8008, LOCALID_MOM_2F addobject VAR_0x8008 applymovement VAR_0x8008, PlayersHouse_2F_Movement_MomEntersFemale @@ -104,7 +104,7 @@ PlayersHouse_2F_EventScript_MomComesUpstairsFemale:: @ 829280F waitmovement 0 return -PlayersHouse_2F_EventScript_CheckWallClock:: @ 829283F +PlayersHouse_2F_EventScript_CheckWallClock:: incrementgamestat GAME_STAT_CHECKED_CLOCK fadescreen FADE_TO_BLACK special Special_ViewWallClock @@ -112,13 +112,13 @@ PlayersHouse_2F_EventScript_CheckWallClock:: @ 829283F releaseall end -PlayersHouse_2F_EventScript_SetWallClock:: @ 8292849 +PlayersHouse_2F_EventScript_SetWallClock:: fadescreen FADE_TO_BLACK special StartWallClock waitstate return -PlayersHouse_2F_Movement_MomEntersMale: @ 8292850 +PlayersHouse_2F_Movement_MomEntersMale: delay_8 walk_down walk_in_place_fastest_left @@ -127,13 +127,13 @@ PlayersHouse_2F_Movement_MomEntersMale: @ 8292850 walk_left step_end -PlayersHouse_2F_Movement_MomExitsMale: @ 8292857 +PlayersHouse_2F_Movement_MomExitsMale: walk_right walk_up delay_8 step_end -PlayersHouse_2F_Movement_MomEntersFemale: @ 829285B +PlayersHouse_2F_Movement_MomEntersFemale: delay_8 walk_down walk_in_place_fastest_right @@ -142,24 +142,24 @@ PlayersHouse_2F_Movement_MomEntersFemale: @ 829285B walk_right step_end -PlayersHouse_2F_Movement_MomExitsFemale: @ 8292862 +PlayersHouse_2F_Movement_MomExitsFemale: walk_left walk_up delay_8 step_end -PlayersHouse_1F_EventScript_SetWatchedBroadcast:: @ 8292866 +PlayersHouse_1F_EventScript_SetWatchedBroadcast:: setvar VAR_LITTLEROOT_INTRO_STATE, 7 releaseall end -PlayersHouse_1F_EventScript_PetalburgGymReportMale:: @ 829286D +PlayersHouse_1F_EventScript_PetalburgGymReportMale:: applymovement VAR_0x8005, Common_Movement_WalkInPlaceFastestRight waitmovement 0 call PlayersHouse_1F_EventScript_MomNoticeGymBroadcast applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForGymMale waitmovement 0 - playbgm MUS_ENCOUNTER_INTERVIEWER, 0 + playbgm MUS_ENCOUNTER_INTERVIEWER, FALSE msgbox PlayersHouse_1F_Text_MaybeDadWillBeOn, MSGBOX_DEFAULT closemessage applymovement VAR_0x8005, PlayersHouse_1F_Movement_MomMakeRoomToSeeTVMale @@ -178,13 +178,13 @@ PlayersHouse_1F_EventScript_PetalburgGymReportMale:: @ 829286D goto PlayersHouse_1F_EventScript_SetWatchedBroadcast end -PlayersHouse_1F_EventScript_PetalburgGymReportFemale:: @ 82928DC +PlayersHouse_1F_EventScript_PetalburgGymReportFemale:: applymovement VAR_0x8005, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 call PlayersHouse_1F_EventScript_MomNoticeGymBroadcast applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForGymFemale waitmovement 0 - playbgm MUS_ENCOUNTER_INTERVIEWER, 0 + playbgm MUS_ENCOUNTER_INTERVIEWER, FALSE msgbox PlayersHouse_1F_Text_MaybeDadWillBeOn, MSGBOX_DEFAULT closemessage applymovement VAR_0x8005, PlayersHouse_1F_Movement_MomMakeRoomToSeeTVFemale @@ -203,7 +203,7 @@ PlayersHouse_1F_EventScript_PetalburgGymReportFemale:: @ 82928DC goto PlayersHouse_1F_EventScript_SetWatchedBroadcast end -PlayersHouse_1F_EventScript_MomNoticeGymBroadcast:: @ 829294B +PlayersHouse_1F_EventScript_MomNoticeGymBroadcast:: playse SE_PIN applymovement VAR_0x8005, Common_Movement_ExclamationMark waitmovement 0 @@ -213,7 +213,7 @@ PlayersHouse_1F_EventScript_MomNoticeGymBroadcast:: @ 829294B closemessage return -PlayersHouse_1F_EventScript_WatchGymBroadcast:: @ 829296C +PlayersHouse_1F_EventScript_WatchGymBroadcast:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 msgbox PlayersHouse_1F_Text_ReportFromPetalburgGym, MSGBOX_DEFAULT @@ -223,7 +223,7 @@ PlayersHouse_1F_EventScript_WatchGymBroadcast:: @ 829296C delay 35 return -PlayersHouse_1F_Movement_MomApproachDadMale: @ 8292989 +PlayersHouse_1F_Movement_MomApproachDadMale: walk_up walk_right walk_right @@ -233,7 +233,7 @@ PlayersHouse_1F_Movement_MomApproachDadMale: @ 8292989 walk_in_place_fastest_right step_end -PlayersHouse_1F_Movement_MomApproachDadFemale: @ 8292991 +PlayersHouse_1F_Movement_MomApproachDadFemale: walk_up walk_left walk_left @@ -243,15 +243,15 @@ PlayersHouse_1F_Movement_MomApproachDadFemale: @ 8292991 walk_in_place_fastest_left step_end -PlayersHouse_1F_Movement_MomApproachPlayerMale: @ 8292999 +PlayersHouse_1F_Movement_MomApproachPlayerMale: walk_right step_end -PlayersHouse_1F_Movement_MomApproachPlayerFemale: @ 829299B +PlayersHouse_1F_Movement_MomApproachPlayerFemale: walk_left step_end -PlayersHouse_1F_Movement_MomNoticesLatiBroadcastMale: @ 829299D +PlayersHouse_1F_Movement_MomNoticesLatiBroadcastMale: walk_in_place_fastest_left delay_16 delay_16 @@ -262,7 +262,7 @@ PlayersHouse_1F_Movement_MomNoticesLatiBroadcastMale: @ 829299D delay_16 step_end -PlayersHouse_1F_Movement_MomNoticesLatiBroadcastFemale: @ 82929A6 +PlayersHouse_1F_Movement_MomNoticesLatiBroadcastFemale: walk_in_place_fastest_right delay_16 delay_16 @@ -273,41 +273,41 @@ PlayersHouse_1F_Movement_MomNoticesLatiBroadcastFemale: @ 82929A6 delay_16 step_end -PlayersHouse_1F_Movement_MomApproachPlayerAfterTVMale: @ 82929AF +PlayersHouse_1F_Movement_MomApproachPlayerAfterTVMale: walk_up walk_left walk_left step_end -PlayersHouse_1F_Movement_MomApproachPlayerAfterTVFemale: @ 82929B3 +PlayersHouse_1F_Movement_MomApproachPlayerAfterTVFemale: walk_up walk_right walk_right step_end -PlayersHouse_1F_Movement_MomMakeRoomToSeeTVMale: @ 82929B7 +PlayersHouse_1F_Movement_MomMakeRoomToSeeTVMale: walk_left walk_in_place_fastest_right step_end -PlayersHouse_1F_Movement_MomMakeRoomToSeeTVFemale: @ 82929BA +PlayersHouse_1F_Movement_MomMakeRoomToSeeTVFemale: walk_right walk_in_place_fastest_left step_end -PlayersHouse_1F_Movement_MomReturnToSeatMale: @ 82929BD +PlayersHouse_1F_Movement_MomReturnToSeatMale: walk_left walk_down walk_in_place_fastest_right step_end -PlayersHouse_1F_Movement_MomReturnToSeatFemale: @ 82929C1 +PlayersHouse_1F_Movement_MomReturnToSeatFemale: walk_right walk_down walk_in_place_fastest_left step_end -PlayersHouse_1F_EventScript_Mom:: @ 82929C5 +PlayersHouse_1F_EventScript_Mom:: lock faceplayer compare VAR_LITTLEROOT_HOUSES_STATE_MAY, 4 @@ -324,12 +324,12 @@ PlayersHouse_1F_EventScript_Mom:: @ 82929C5 release end -PlayersHouse_1F_EventScript_DontPushYourselfTooHard:: @ 8292A0F +PlayersHouse_1F_EventScript_DontPushYourselfTooHard:: msgbox PlayersHouse_1F_Text_DontPushYourselfTooHard, MSGBOX_DEFAULT release end -PlayersHouse_1F_EventScript_TryRegisterMom:: @ 8292A19 +PlayersHouse_1F_EventScript_TryRegisterMom:: goto_if_set FLAG_ENABLE_MOM_MATCH_CALL, PlayersHouse_1F_EventScript_CheckGiveAmuletCoin msgbox PlayersHouse_1F_Text_IsThatAPokenav, MSGBOX_DEFAULT closemessage @@ -343,11 +343,11 @@ PlayersHouse_1F_EventScript_TryRegisterMom:: @ 8292A19 release end -PlayersHouse_1F_EventScript_CheckGiveAmuletCoin:: @ 8292A43 +PlayersHouse_1F_EventScript_CheckGiveAmuletCoin:: goto_if_set FLAG_BADGE05_GET, PlayersHouse_1F_EventScript_TryGiveAmuletCoin goto PlayersHouse_1F_EventScript_MomHealsParty -PlayersHouse_1F_EventScript_TryGiveAmuletCoin:: @ 8292A51 +PlayersHouse_1F_EventScript_TryGiveAmuletCoin:: goto_if_set FLAG_RECEIVED_AMULET_COIN, PlayersHouse_1F_EventScript_MomHealsParty msgbox PlayersHouse_1F_Text_GotDadsBadgeHeresSomethingFromMom, MSGBOX_DEFAULT giveitem ITEM_AMULET_COIN @@ -358,17 +358,17 @@ PlayersHouse_1F_EventScript_TryGiveAmuletCoin:: @ 8292A51 release end -PlayersHouse_1F_EventScript_MomHealsParty:: @ 8292A86 +PlayersHouse_1F_EventScript_MomHealsParty:: msgbox PlayersHouse_1F_Text_YouShouldRestABit, MSGBOX_DEFAULT goto PlayersHouse_1F_EventScript_HealParty end -PlayersHouse_1F_EventScript_SeeYouHoney:: @ 8292A94 +PlayersHouse_1F_EventScript_SeeYouHoney:: msgbox PlayersHouse_1F_Text_SeeYouHoney, MSGBOX_DEFAULT release end -PlayersHouse_1F_EventScript_HealParty:: @ 8292A9E +PlayersHouse_1F_EventScript_HealParty:: closemessage call Common_EventScript_OutOfCenterPartyHeal incrementgamestat GAME_STAT_RESTED_AT_HOME @@ -376,12 +376,12 @@ PlayersHouse_1F_EventScript_HealParty:: @ 8292A9E release end -PlayersHouse_1F_EventScript_DidYouMeetProfBirch:: @ 8292AB0 +PlayersHouse_1F_EventScript_DidYouMeetProfBirch:: msgbox PlayersHouse_1F_Text_DidYouMeetProfBirch, MSGBOX_DEFAULT release end -PlayersHouse_1F_EventScript_Vigoroth1:: @ 8292ABA +PlayersHouse_1F_EventScript_Vigoroth1:: lock faceplayer waitse @@ -391,7 +391,7 @@ PlayersHouse_1F_EventScript_Vigoroth1:: @ 8292ABA release end -PlayersHouse_1F_EventScript_Vigoroth2:: @ 8292ACD +PlayersHouse_1F_EventScript_Vigoroth2:: lock faceplayer waitse @@ -401,7 +401,7 @@ PlayersHouse_1F_EventScript_Vigoroth2:: @ 8292ACD release end -PlayersHouse_1F_Movement_PlayerApproachTVForGymMale: @ 8292AE0 +PlayersHouse_1F_Movement_PlayerApproachTVForGymMale: walk_down walk_down walk_left @@ -409,11 +409,11 @@ PlayersHouse_1F_Movement_PlayerApproachTVForGymMale: @ 8292AE0 walk_left step_end -PlayersHouse_1F_Movement_PlayerMoveToTVMale: @ 8292AE6 +PlayersHouse_1F_Movement_PlayerMoveToTVMale: walk_left step_end -PlayersHouse_1F_Movement_PlayerApproachTVForGymFemale: @ 8292AE8 +PlayersHouse_1F_Movement_PlayerApproachTVForGymFemale: walk_down walk_down walk_right @@ -421,15 +421,15 @@ PlayersHouse_1F_Movement_PlayerApproachTVForGymFemale: @ 8292AE8 walk_right step_end -PlayersHouse_1F_Movement_PlayerMoveToTVFemale: @ 8292AEE +PlayersHouse_1F_Movement_PlayerMoveToTVFemale: walk_right step_end -PlayersHouse_1F_Movement_MovePlayerAwayFromDoor: @ 8292AF0 +PlayersHouse_1F_Movement_MovePlayerAwayFromDoor: walk_up step_end -PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV:: @ 8292AF2 +PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV:: lockall checkplayergender compare VAR_RESULT, MALE @@ -501,7 +501,7 @@ PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV:: @ 8292AF2 compare VAR_0x8008, FEMALE call_if_eq PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVFemale msgbox PlayersHouse_1F_Text_WhatColorDidTheySay, MSGBOX_DEFAULT - multichoice 22, 8, MULTI_TV_LATI, 1 + multichoice 22, 8, MULTI_TV_LATI, TRUE copyvar VAR_0x8004, VAR_RESULT special InitRoamer copyvar VAR_ROAMER_POKEMON, VAR_RESULT @@ -513,155 +513,155 @@ PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV:: @ 8292AF2 end @ Never called. -PlayersHouse_1F_EventScript_AirLatiBroadcast:: @ 8292C72 +PlayersHouse_1F_EventScript_AirLatiBroadcast:: setflag FLAG_SYS_TV_LATIAS_LATIOS return -PlayersHouse_1F_EventScript_SetUpObjectEventVarsMale:: @ 8292C76 +PlayersHouse_1F_EventScript_SetUpObjectEventVarsMale:: setvar VAR_0x8008, MALE setvar VAR_0x8009, LOCALID_DAD setvar VAR_0x800A, LOCALID_MOM return -PlayersHouse_1F_EventScript_SetUpObjectEventVarsFemale:: @ 8292C86 +PlayersHouse_1F_EventScript_SetUpObjectEventVarsFemale:: setvar VAR_0x8008, FEMALE setvar VAR_0x8009, LOCALID_DAD setvar VAR_0x800A, LOCALID_MOM return -PlayersHouse_1F_EventScript_DadApproachPlayerMale:: @ 8292C96 +PlayersHouse_1F_EventScript_DadApproachPlayerMale:: applymovement VAR_0x8009, PlayersHouse_1F_Movement_DadApproachPlayerMale waitmovement 0 return -PlayersHouse_1F_EventScript_DadApproachPlayerFemale:: @ 8292CA1 +PlayersHouse_1F_EventScript_DadApproachPlayerFemale:: applymovement VAR_0x8009, PlayersHouse_1F_Movement_DadApproachPlayerFemale waitmovement 0 return -PlayersHouse_1F_EventScript_MomApproachDadMale:: @ 8292CAC +PlayersHouse_1F_EventScript_MomApproachDadMale:: applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomApproachDadMale waitmovement 0 applymovement VAR_0x8009, PlayersHouse_1F_Movement_DadFaceMomMale waitmovement 0 return -PlayersHouse_1F_EventScript_MomApproachDadFemale:: @ 8292CC1 +PlayersHouse_1F_EventScript_MomApproachDadFemale:: applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomApproachDadFemale waitmovement 0 applymovement VAR_0x8009, PlayersHouse_1F_Movement_DadFaceMomFemale waitmovement 0 return -PlayersHouse_1F_EventScript_DadExitsMale:: @ 8292CD6 +PlayersHouse_1F_EventScript_DadExitsMale:: applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_MomAndPlayerWatchDadExit applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomAndPlayerWatchDadExit applymovement VAR_0x8009, PlayersHouse_1F_Movement_DadExitsMale waitmovement 0 return -PlayersHouse_1F_EventScript_DadExitsFemale:: @ 8292CEF +PlayersHouse_1F_EventScript_DadExitsFemale:: applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_MomAndPlayerWatchDadExit applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomAndPlayerWatchDadExit applymovement VAR_0x8009, PlayersHouse_1F_Movement_DadExitsFemale waitmovement 0 return -PlayersHouse_1F_EventScript_PlayerEnterRoomMale:: @ 8292D08 +PlayersHouse_1F_EventScript_PlayerEnterRoomMale:: applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerEnterRoomMale waitmovement 0 return -PlayersHouse_1F_EventScript_PlayerEnterRoomFemale:: @ 8292D13 +PlayersHouse_1F_EventScript_PlayerEnterRoomFemale:: applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerEnterRoomFemale waitmovement 0 return -PlayersHouse_1F_EventScript_PlayerApproachTVForLatiMale:: @ 8292D1E +PlayersHouse_1F_EventScript_PlayerApproachTVForLatiMale:: applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForLatiMale waitmovement 0 applymovement VAR_0x800A, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PlayersHouse_1F_EventScript_PlayerApproachTVForLatiFemale:: @ 8292D33 +PlayersHouse_1F_EventScript_PlayerApproachTVForLatiFemale:: applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForLatiFemale waitmovement 0 applymovement VAR_0x800A, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PlayersHouse_1F_EventScript_MomApproachPlayerMale:: @ 8292D48 +PlayersHouse_1F_EventScript_MomApproachPlayerMale:: applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomApproachPlayerMale waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PlayersHouse_1F_EventScript_MomApproachPlayerFemale:: @ 8292D5D +PlayersHouse_1F_EventScript_MomApproachPlayerFemale:: applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomApproachPlayerFemale waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PlayersHouse_1F_EventScript_MomNoticesLatiBroadcastMale:: @ 8292D72 +PlayersHouse_1F_EventScript_MomNoticesLatiBroadcastMale:: applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomNoticesLatiBroadcastMale waitmovement 0 return -PlayersHouse_1F_EventScript_MomNoticesLatiBroadcastFemale:: @ 8292D7D +PlayersHouse_1F_EventScript_MomNoticesLatiBroadcastFemale:: applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomNoticesLatiBroadcastFemale waitmovement 0 return -PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVMale:: @ 8292D88 +PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVMale:: applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomApproachPlayerAfterTVMale waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVFemale:: @ 8292D9D +PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVFemale:: applymovement VAR_0x800A, PlayersHouse_1F_Movement_MomApproachPlayerAfterTVFemale waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PlayersHouse_1F_Movement_DadApproachPlayerMale: @ 8292DB2 +PlayersHouse_1F_Movement_DadApproachPlayerMale: walk_right walk_right step_end -PlayersHouse_1F_Movement_DadApproachPlayerFemale: @ 8292DB5 +PlayersHouse_1F_Movement_DadApproachPlayerFemale: walk_left walk_left step_end -PlayersHouse_1F_Movement_DadFaceMomMale: @ 8292DB8 +PlayersHouse_1F_Movement_DadFaceMomMale: face_left step_end -PlayersHouse_1F_Movement_DadFaceMomFemale: @ 8292DBA +PlayersHouse_1F_Movement_DadFaceMomFemale: face_right step_end -PlayersHouse_1F_Movement_DadExitsMale: @ 8292DBC +PlayersHouse_1F_Movement_DadExitsMale: walk_down walk_right walk_down delay_8 step_end -PlayersHouse_1F_Movement_DadExitsFemale: @ 8292DC1 +PlayersHouse_1F_Movement_DadExitsFemale: walk_down walk_left walk_down delay_8 step_end -PlayersHouse_1F_Movement_PlayerEnterRoomMale: @ 8292DC6 +PlayersHouse_1F_Movement_PlayerEnterRoomMale: delay_16 walk_down walk_down @@ -669,14 +669,14 @@ PlayersHouse_1F_Movement_PlayerEnterRoomMale: @ 8292DC6 walk_in_place_fastest_left step_end -PlayersHouse_1F_Movement_MomAndPlayerWatchDadExit: @ 8292DCC +PlayersHouse_1F_Movement_MomAndPlayerWatchDadExit: delay_8 delay_16 delay_16 walk_in_place_fastest_down step_end -PlayersHouse_1F_Movement_PlayerEnterRoomFemale: @ 8292DD1 +PlayersHouse_1F_Movement_PlayerEnterRoomFemale: delay_16 walk_down walk_down @@ -684,7 +684,7 @@ PlayersHouse_1F_Movement_PlayerEnterRoomFemale: @ 8292DD1 walk_in_place_fastest_right step_end -PlayersHouse_1F_Movement_PlayerApproachTVForLatiMale: @ 8292DD7 +PlayersHouse_1F_Movement_PlayerApproachTVForLatiMale: walk_up walk_left walk_left @@ -693,7 +693,7 @@ PlayersHouse_1F_Movement_PlayerApproachTVForLatiMale: @ 8292DD7 walk_in_place_fastest_up step_end -PlayersHouse_1F_Movement_PlayerApproachTVForLatiFemale: @ 8292DDE +PlayersHouse_1F_Movement_PlayerApproachTVForLatiFemale: walk_up walk_right walk_right @@ -702,6 +702,6 @@ PlayersHouse_1F_Movement_PlayerApproachTVForLatiFemale: @ 8292DDE walk_in_place_fastest_up step_end -EventScript_RunningShoesManual:: @ 8292DE5 +EventScript_RunningShoesManual:: msgbox PlayersHouse_1F_Text_RunningShoesManual, MSGBOX_SIGN end diff --git a/data/scripts/prof_birch.inc b/data/scripts/prof_birch.inc index b89d2fbd05..7eb1730fcd 100644 --- a/data/scripts/prof_birch.inc +++ b/data/scripts/prof_birch.inc @@ -1,4 +1,4 @@ -ProfBirch_EventScript_UpdateLocation:: @ 82720AD +ProfBirch_EventScript_UpdateLocation:: compare VAR_PETALBURG_GYM_STATE, 0 goto_if_eq Common_EventScript_NopReturn goto_if_set FLAG_SYS_GAME_CLEAR, ProfBirch_EventScript_MoveToLab @@ -20,34 +20,34 @@ ProfBirch_EventScript_UpdateLocation:: @ 82720AD call_if_eq ProfBirch_EventScript_MoveToLab return -ProfBirch_EventScript_MoveToLab:: @ 827211A +ProfBirch_EventScript_MoveToLab:: clearflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_BIRCH clearflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380 setflag FLAG_HIDE_ROUTE_101_BIRCH setflag FLAG_HIDE_ROUTE_103_BIRCH return -ProfBirch_EventScript_MoveToRoute101:: @ 8272127 +ProfBirch_EventScript_MoveToRoute101:: clearflag FLAG_HIDE_ROUTE_101_BIRCH setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_BIRCH setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380 setflag FLAG_HIDE_ROUTE_103_BIRCH return -ProfBirch_EventScript_MoveToRoute103:: @ 8272134 +ProfBirch_EventScript_MoveToRoute103:: clearflag FLAG_HIDE_ROUTE_103_BIRCH setflag FLAG_HIDE_ROUTE_101_BIRCH setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_BIRCH setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380 return -ProfBirch_EventScript_RatePokedexOrRegister:: @ 8272141 +ProfBirch_EventScript_RatePokedexOrRegister:: lock faceplayer goto_if_unset FLAG_HAS_MATCH_CALL, ProfBirch_EventScript_AskRatePokedex goto_if_unset FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, EventScript_RegisterProfBirch -ProfBirch_EventScript_AskRatePokedex:: @ 8272155 +ProfBirch_EventScript_AskRatePokedex:: msgbox gBirchDexRatingText_AreYouCurious, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq ProfBirch_EventScript_DeclineRating @@ -55,19 +55,19 @@ ProfBirch_EventScript_AskRatePokedex:: @ 8272155 release end -ProfBirch_EventScript_DeclineRating:: @ 827216F +ProfBirch_EventScript_DeclineRating:: msgbox gBirchDexRatingText_Cancel, MSGBOX_DEFAULT release end -ProfBirch_EventScript_ShowRatingMessage:: @ 8272179 +ProfBirch_EventScript_ShowRatingMessage:: copyvar VAR_0x8004, VAR_0x8009 special ShowPokedexRatingMessage waitmessage waitbuttonpress return -ProfBirch_EventScript_RatePokedex:: @ 8272184 +ProfBirch_EventScript_RatePokedex:: setvar VAR_0x8004, 0 specialvar VAR_RESULT, ScriptGetPokedexInfo copyvar VAR_0x8008, VAR_0x8005 diff --git a/data/scripts/record_mix.inc b/data/scripts/record_mix.inc index 23f224ae4f..d1ad84d3a7 100644 --- a/data/scripts/record_mix.inc +++ b/data/scripts/record_mix.inc @@ -1,21 +1,20 @@ @ Seems this was superseded by the Record Center, and the below scripts are now unused -EventScript_MixRecordsPrompt:: @ 8271D5E +EventScript_MixRecordsPrompt:: lock faceplayer msgbox Text_WouldYouLikeToMixRecords, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq EventScript_MixRecords compare VAR_RESULT, NO - goto_if_eq EventScript_DeclineMixRecords - goto EventScript_DeclineMixRecords + goto_if_eq EventScript_EndMixRecords + goto EventScript_EndMixRecords -EventScript_MixRecords:: @ 8271D83 +EventScript_MixRecords:: special RecordMixingPlayerSpotTriggered waitstate lock faceplayer - -EventScript_DeclineMixRecords:: @ 8271D89 +EventScript_EndMixRecords:: message Text_WeHopeToSeeYouAgain waitmessage waitbuttonpress diff --git a/data/scripts/repel.inc b/data/scripts/repel.inc index 5deda57629..fc178603c0 100644 --- a/data/scripts/repel.inc +++ b/data/scripts/repel.inc @@ -1,6 +1,6 @@ -EventScript_RepelWoreOff:: @ 82A4B2A +EventScript_RepelWoreOff:: msgbox Text_RepelWoreOff, MSGBOX_SIGN end -Text_RepelWoreOff: @ 82A4B33 +Text_RepelWoreOff: .string "REPEL's effect wore off…$" diff --git a/data/scripts/rival_graphics.inc b/data/scripts/rival_graphics.inc index a8ead6497f..a0fb15f0e4 100644 --- a/data/scripts/rival_graphics.inc +++ b/data/scripts/rival_graphics.inc @@ -1,4 +1,4 @@ -Common_EventScript_SetupRivalGfxId:: @ 8271ED7 +Common_EventScript_SetupRivalGfxId:: checkplayergender compare VAR_RESULT, MALE goto_if_eq EventScript_SetupRivalGfxIdFemale @@ -6,15 +6,15 @@ Common_EventScript_SetupRivalGfxId:: @ 8271ED7 goto_if_eq EventScript_SetupRivalGfxIdMale end -EventScript_SetupRivalGfxIdFemale:: @ 8271EEF +EventScript_SetupRivalGfxIdFemale:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return -EventScript_SetupRivalGfxIdMale:: @ 8271EF5 +EventScript_SetupRivalGfxIdMale:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -Common_EventScript_SetupRivalOnBikeGfxId:: @ 8271EFB +Common_EventScript_SetupRivalOnBikeGfxId:: checkplayergender compare VAR_RESULT, MALE goto_if_eq EventScript_SetupRivalOnBikeGfxIdFemale @@ -22,16 +22,16 @@ Common_EventScript_SetupRivalOnBikeGfxId:: @ 8271EFB goto_if_eq EventScript_SetupRivalOnBikeGfxIdMale end -EventScript_SetupRivalOnBikeGfxIdFemale:: @ 8271F13 +EventScript_SetupRivalOnBikeGfxIdFemale:: setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE return -EventScript_SetupRivalOnBikeGfxIdMale:: @ 8271F19 +EventScript_SetupRivalOnBikeGfxIdMale:: setvar VAR_OBJ_GFX_ID_3, OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE return @ Unused -Common_EventScript_SetupRivalGfxIdSameGender:: @ 8271F1F +Common_EventScript_SetupRivalGfxIdSameGender:: checkplayergender compare VAR_RESULT, MALE goto_if_eq EventScript_SetupRivalGfxIdMale2 @@ -39,10 +39,10 @@ Common_EventScript_SetupRivalGfxIdSameGender:: @ 8271F1F goto_if_eq EventScript_SetupRivalGfxIdFemale2 end -EventScript_SetupRivalGfxIdMale2:: @ 8271F37 +EventScript_SetupRivalGfxIdMale2:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL return -EventScript_SetupRivalGfxIdFemale2:: @ 8271F3D +EventScript_SetupRivalGfxIdFemale2:: setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL return diff --git a/data/scripts/roulette.inc b/data/scripts/roulette.inc index f590ca3585..1167a765bd 100644 --- a/data/scripts/roulette.inc +++ b/data/scripts/roulette.inc @@ -1,4 +1,4 @@ -Roulette_EventScript_Table1:: @ 82A5AB1 +Roulette_EventScript_Table1:: checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase @@ -10,7 +10,7 @@ Roulette_EventScript_Table1:: @ 82A5AB1 goto Roulette_EventScript_Play end -Roulette_EventScript_Table2:: @ 82A5ADF +Roulette_EventScript_Table2:: checkitem ITEM_COIN_CASE, 1 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase @@ -22,50 +22,50 @@ Roulette_EventScript_Table2:: @ 82A5ADF goto Roulette_EventScript_Play end -Roulette_EventScript_Play:: @ 82A5B0D +Roulette_EventScript_Play:: special PlayRoulette waitstate end -Roulette_Text_PlayMinimumWagerIsX:: @ 82A5B12 +Roulette_Text_PlayMinimumWagerIsX:: .string "The minimum wager at this table\n" .string "is {STR_VAR_1}. Do you want to play?$" -Roulette_Text_NotEnoughCoins:: @ 82A5B4E +Roulette_Text_NotEnoughCoins:: .string "You don't have enough COINS.$" -Roulette_Text_SpecialRateTable:: @ 82A5B6B +Roulette_Text_SpecialRateTable:: .string "Special rate table right now!$" -Roulette_Text_ControlsInstruction:: @ 82A5B89 +Roulette_Text_ControlsInstruction:: .string "Place your wager with the + Control\n" .string "Pad, then press the A Button.$" -Roulette_Text_ItsAHit:: @ 82A5BCB +Roulette_Text_ItsAHit:: .string "It's a hit!$" -Roulette_Text_Jackpot:: @ 82A5BD7 +Roulette_Text_Jackpot:: .string "Jackpot!$" -Roulette_Text_NothingDoing:: @ 82A5BE0 +Roulette_Text_NothingDoing:: .string "Nothing doing!$" -Roulette_Text_YouveWonXCoins:: @ 82A5BEF +Roulette_Text_YouveWonXCoins:: .string "You've won {STR_VAR_1} COINS!$" -Roulette_Text_NoCoinsLeft:: @ 82A5C04 +Roulette_Text_NoCoinsLeft:: .string "No COINS left…$" -Roulette_Text_KeepPlaying:: @ 82A5C13 +Roulette_Text_KeepPlaying:: .string "Keep playing?$" -Roulette_Text_BoardWillBeCleared:: @ 82A5C21 +Roulette_Text_BoardWillBeCleared:: .string "The ROULETTE board will be cleared.$" @ Unused -Roulette_Text_YouDontHaveACoinCase:: @ 82A5C45 +Roulette_Text_YouDontHaveACoinCase:: .string "You don't have a COIN CASE.$" -Roulette_Text_CoinCaseIsFull:: @ 82A5C61 +Roulette_Text_CoinCaseIsFull:: .string "Your COIN CASE is full!\n" .string "Coins can be exchanged for prizes.$" diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc index d04a16b587..6dd0767f0c 100644 --- a/data/scripts/safari_zone.inc +++ b/data/scripts/safari_zone.inc @@ -1,17 +1,17 @@ -SafariZone_EventScript_OutOfBallsMidBattle:: @ 82A4B4C +SafariZone_EventScript_OutOfBallsMidBattle:: setvar VAR_SAFARI_ZONE_STATE, 1 special ExitSafariMode setwarp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5 end -SafariZone_EventScript_Exit:: @ 82A4B5D +SafariZone_EventScript_Exit:: setvar VAR_SAFARI_ZONE_STATE, 1 special ExitSafariMode warp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5 waitstate end -SafariZone_EventScript_RetirePrompt:: @ 82A4B6F +SafariZone_EventScript_RetirePrompt:: lockall msgbox SafariZone_Text_WouldYouLikeToExit, MSGBOX_YESNO compare VAR_RESULT, YES @@ -19,10 +19,10 @@ SafariZone_EventScript_RetirePrompt:: @ 82A4B6F releaseall end -SafariZone_EventScript_Retire:: @ 82A4B85 +SafariZone_EventScript_Retire:: goto SafariZone_EventScript_Exit -SafariZone_EventScript_TimesUp:: @ 82A4B8A +SafariZone_EventScript_TimesUp:: lockall playse SE_DING_DONG message SafariZone_Text_TimesUp @@ -31,7 +31,7 @@ SafariZone_EventScript_TimesUp:: @ 82A4B8A releaseall goto SafariZone_EventScript_Exit -SafariZone_EventScript_OutOfBalls:: @ 82A4B9B +SafariZone_EventScript_OutOfBalls:: lockall playse SE_DING_DONG message SafariZone_Text_OutOfBalls @@ -40,7 +40,7 @@ SafariZone_EventScript_OutOfBalls:: @ 82A4B9B releaseall goto SafariZone_EventScript_Exit -EventScript_PokeBlockFeeder:: @ 82A4BAC +EventScript_PokeBlockFeeder:: lockall special GetPokeblockFeederInFront compare VAR_RESULT, 0xFFFF @@ -51,7 +51,7 @@ EventScript_PokeBlockFeeder:: @ 82A4BAC releaseall end -SafariZone_EventScript_ChoosePokeblock:: @ 82A4BD0 +SafariZone_EventScript_ChoosePokeblock:: fadescreen FADE_TO_BLACK special OpenPokeblockCaseOnFeeder waitstate @@ -59,45 +59,45 @@ SafariZone_EventScript_ChoosePokeblock:: @ 82A4BD0 goto_if_ne SafariZone_EventScript_PokeblockPlaced end -SafariZone_EventScript_PokeblockPlaced:: @ 82A4BE2 +SafariZone_EventScript_PokeblockPlaced:: message SafariZone_Text_PokeblockWasPlaced waitmessage waitbuttonpress releaseall end -SafariZone_EventScript_PokeblockPresent:: @ 82A4BEB +SafariZone_EventScript_PokeblockPresent:: message SafariZone_Text_PokeblockStillHere waitmessage waitbuttonpress releaseall end -SafariZone_Text_WouldYouLikeToExit: @ 82A4BF4 +SafariZone_Text_WouldYouLikeToExit: .string "Would you like to exit the SAFARI\n" .string "ZONE right now?$" -SafariZone_Text_TimesUp: @ 82A4C26 +SafariZone_Text_TimesUp: .string "Ding-dong! Time's up!\n" .string "Your SAFARI Game is over.$" -SafariZone_Text_OutOfBalls: @ 82A4C56 +SafariZone_Text_OutOfBalls: .string "You've run out of SAFARI BALLS.\n" .string "Your SAFARI Game is over.$" -SafariZone_Text_PlacePokeblockOnFeeder: @ 82A4C90 +SafariZone_Text_PlacePokeblockOnFeeder: .string "Would you like to place a {POKEBLOCK}\n" .string "on the {POKEBLOCK} FEEDER?$" -SafariZone_Text_PokeblockStillHere: @ 82A4CC5 +SafariZone_Text_PokeblockStillHere: .string "The {STR_VAR_1} you left\n" .string "before is still here.$" -SafariZone_Text_PokeblockWasPlaced: @ 82A4CEB +SafariZone_Text_PokeblockWasPlaced: .string "The {STR_VAR_1} was placed\n" .string "on the {POKEBLOCK} FEEDER.$" -Route121_SafariZoneEntrance_Text_WelcomeToSafariZone: @ 82A4D12 +Route121_SafariZoneEntrance_Text_WelcomeToSafariZone: .string "Welcome to the SAFARI ZONE!\p" .string "Here, you may witness many kinds of\n" .string "POKéMON rarely seen in HOENN.\p" @@ -109,14 +109,14 @@ Route121_SafariZoneEntrance_Text_WelcomeToSafariZone: @ 82A4D12 .string "for keeps!\p" .string "Come in and enjoy the SAFARI ZONE!$" -Route121_SafariZoneEntrance_Text_WelcomeFirstTime: @ 82A4E46 +Route121_SafariZoneEntrance_Text_WelcomeFirstTime: .string "Welcome to the SAFARI ZONE!\n" .string "Is it your first time here?$" -Route121_SafariZoneEntrance_Text_ComeInAndEnjoy: @ 82A4E7E +Route121_SafariZoneEntrance_Text_ComeInAndEnjoy: .string "Come in and enjoy the SAFARI ZONE!$" -Route121_SafariZoneEntrance_Text_FirstTimeInfo: @ 82A4EA1 +Route121_SafariZoneEntrance_Text_FirstTimeInfo: .string "When you enter the SAFARI ZONE, you\n" .string "start with 30 SAFARI BALLS for\l" .string "catching POKéMON.\p" @@ -125,39 +125,39 @@ Route121_SafariZoneEntrance_Text_FirstTimeInfo: @ 82A4EA1 .string "walked 500 steps.\p" .string "Come in and enjoy the SAFARI ZONE!$" -Route121_SafariZoneEntrance_Text_WouldYouLikeToPlay: @ 82A4F74 +Route121_SafariZoneEntrance_Text_WouldYouLikeToPlay: .string "Welcome to the SAFARI ZONE!\p" .string "All you can catch for just ¥500!\n" .string "Would you like to play a SAFARI Game?$" -Route121_SafariZoneEntrance_Text_PlayAnotherTime: @ 82A4FD7 +Route121_SafariZoneEntrance_Text_PlayAnotherTime: .string "Okay.\n" .string "Please play another time!$" -Route121_SafariZoneEntrance_Text_NotEnoughMoney: @ 82A4FF7 +Route121_SafariZoneEntrance_Text_NotEnoughMoney: .string "You don't have enough money.\n" .string "Sorry.$" -Route121_SafariZoneEntrance_Text_ThatWillBe500Please: @ 82A501B +Route121_SafariZoneEntrance_Text_ThatWillBe500Please: .string "That will be ¥500, please.$" -Route121_SafariZoneEntrance_Text_HereAreYourSafariBalls: @ 82A5036 +Route121_SafariZoneEntrance_Text_HereAreYourSafariBalls: .string "Here are your SAFARI BALLS.$" -Route121_SafariZoneEntrance_Text_Received30SafariBalls: @ 82A5052 +Route121_SafariZoneEntrance_Text_Received30SafariBalls: .string "{PLAYER} received 30 SAFARI BALLS.$" -Route121_SafariZoneEntrance_Text_PleaseEnjoyYourself: @ 82A506F +Route121_SafariZoneEntrance_Text_PleaseEnjoyYourself: .string "We'll let you know when your game\n" .string "is over.\p" .string "So, until then, enjoy yourself, please!\n" .string "Off you go on your wild excursion!$" -Route121_SafariZoneEntrance_Text_PCIsFull: @ 82A50E5 +Route121_SafariZoneEntrance_Text_PCIsFull: .string "Excuse me!\n" .string "Your PC BOX is full.$" -Route121_SafariZoneEntrance_Text_YouNeedPokeblockCase: @ 82A5105 +Route121_SafariZoneEntrance_Text_YouNeedPokeblockCase: .string "Excuse me!\n" .string "You seem to be without a {POKEBLOCK} CASE.\p" .string "Your SAFARI Game will be much more\n" @@ -166,129 +166,129 @@ Route121_SafariZoneEntrance_Text_YouNeedPokeblockCase: @ 82A5105 .string "You may obtain a {POKEBLOCK} CASE from\n" .string "the LILYCOVE CONTEST HALL.$" -SafariZone_South_Text_StillHaveTimeExit: @ 82A51D4 +SafariZone_South_Text_StillHaveTimeExit: .string "You still have time left. Would you like\n" .string "to exit the SAFARI ZONE now?$" -SafariZone_South_Text_EnjoyTheRestOfYourAdventure: @ 82A521A +SafariZone_South_Text_EnjoyTheRestOfYourAdventure: .string "Please enjoy the rest of your wild\n" .string "adventure!$" -SafariZone_South_Text_ExitEarlyThankYouForPlaying: @ 82A5248 +SafariZone_South_Text_ExitEarlyThankYouForPlaying: .string "Okay.\p" .string "I'll take back your remaining SAFARI\n" .string "BALLS.\p" .string "Thank you for playing.\n" .string "We hope to see you again.$" -SafariZone_South_Text_GoodLuck: @ 82A52AB +SafariZone_South_Text_GoodLuck: .string "Good luck!\p" .string "If you need anything, don't hesitate\n" .string "to tell me, please!$" -SafariZone_South_Text_Boy: @ 82A52EF +SafariZone_South_Text_Boy: .string "Did you know?\p" .string "If you put a {POKEBLOCK} in that square box,\n" .string "POKéMON gather around.$" -SafariZone_South_Text_Man: @ 82A533B +SafariZone_South_Text_Man: .string "I want to keep going deeper, but I\n" .string "forgot to bring a BIKE.\p" .string "Something tells me that rare POKéMON\n" .string "live in the outlying areas.$" -SafariZone_Southwest_Text_Woman: @ 82A53B7 +SafariZone_Southwest_Text_Woman: .string "Sometimes, when I toss a {POKEBLOCK} at \n" .string "POKéMON, it gets ignored.\p" .string "Do POKéMON have likes and dislikes\n" .string "about what they eat?$" -SafariZone_Northwest_Text_Man: @ 82A542C +SafariZone_Northwest_Text_Man: .string "Gasp… Gasp…\n" .string "I…made it out here…but…\p" .string "I'm exhausted… I don't have the\n" .string "energy to catch POKéMON…$" -SafariZone_North_Text_Fisherman: @ 82A5489 +SafariZone_North_Text_Fisherman: .string "I'm on a mission to find WATER POKéMON\n" .string "you don't see in HOENN.\p" .string "Do you have any idea where the lake is?$" -SafariZone_North_Text_Man: @ 82A54F0 +SafariZone_North_Text_Man: .string "I'm going to catch a lot of rare POKéMON\n" .string "here and trade them with my friends!$" -SafariZone_South_Text_Youngster: @ 82A553E +SafariZone_South_Text_Youngster: .string "I put a {POKEBLOCK} on the {POKEBLOCK} FEEDER.\n" .string "But it seems to have disappeared.\p" .string "I guess POKéMON must have eaten it\n" .string "without me noticing.$" -Route121_SafariZoneEntrance_Text_TrainerTip: @ 82A55BB +Route121_SafariZoneEntrance_Text_TrainerTip: .string "SAFARI ZONE TRAINER TIP!\p" .string "Throw {POKEBLOCK}S at wild POKéMON to make\n" .string "them less likely to flee.$" -SafariZone_Southwest_Text_RestHouseSign: @ 82A5613 +SafariZone_Southwest_Text_RestHouseSign: .string "“Relieve your tired feet.”\n" .string "REST HOUSE$" -SafariZone_RestHouse_Text_Youngster: @ 82A5639 +SafariZone_RestHouse_Text_Youngster: .string "I don't have any {POKEBLOCK}S, but I caught\n" .string "a good number of POKéMON.\p" .string "You can improve your chances of making\n" .string "a catch by getting closer to them\l" .string "before throwing a SAFARI BALL.$" -SafariZone_RestHouse_Text_PsychicM: @ 82A56E1 +SafariZone_RestHouse_Text_PsychicM: .string "If you use {POKEBLOCK}S, wild POKéMON won't\n" .string "be so quick to run away.\p" .string "It's not much use to give {POKEBLOCK}S to\n" .string "POKéMON that don't flee easily.$" -SafariZone_RestHouse_Text_FatMan: @ 82A5764 +SafariZone_RestHouse_Text_FatMan: .string "If you put a {POKEBLOCK} on the FEEDER,\n" .string "POKéMON are attracted to it.\p" .string "I think POKéMON with the same sort of\n" .string "nature are drawn by a certain {POKEBLOCK}.$" -SafariZone_South_Text_AreaOffLimits1: @ 82A57EE +SafariZone_South_Text_AreaOffLimits1: .string "This area is still under construction.\n" .string "It's off-limits, sorry!$" -SafariZone_Southeast_Text_ExpansionIsFinished: @ 82A582D +SafariZone_Southeast_Text_ExpansionIsFinished: .string "The SAFARI ZONE's expansion project\n" .string "is finished now.\p" .string "We hope you will enjoy the new area.$" -SafariZone_South_Text_AreaOffLimits2: @ 82A5887 +SafariZone_South_Text_AreaOffLimits2: .string "This area is still under construction.\n" .string "It's off-limits, sorry!$" -SafariZone_Southeast_Text_LittleGirl: @ 82A58C6 +SafariZone_Southeast_Text_LittleGirl: .string "Wow! Whee! I haven't seen any of\n" .string "these POKéMON before!$" -SafariZone_Southeast_Text_FatMan: @ 82A58FD +SafariZone_Southeast_Text_FatMan: .string "The POKéMON in this area are all\n" .string "new to me.\p" .string "And I'm allowed to catch these rare\n" .string "POKéMON! Too cool!$" -SafariZone_Southeast_Text_RichBoy: @ 82A5960 +SafariZone_Southeast_Text_RichBoy: .string "The POKéMON around here seem to be\n" .string "from somewhere other than HOENN.$" -SafariZone_Northeast_Text_Boy: @ 82A59A4 +SafariZone_Northeast_Text_Boy: .string "I only have a couple SAFARI BALLS left.\p" .string "I'm having a hard time trying to\n" .string "decide what I should catch.$" -SafariZone_Northeast_Text_Woman: @ 82A5A09 +SafariZone_Northeast_Text_Woman: .string "I heard that you can see PIKACHU here.\n" .string "Where might one be?$" -SafariZone_Northeast_Text_Girl: @ 82A5A44 +SafariZone_Northeast_Text_Girl: .string "Oh, boo!\n" .string "I can't seem to catch anything!\p" .string "I'll end up wasting the admission\n" diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc index 4a20de9a6b..ae802cdfd2 100644 --- a/data/scripts/secret_base.inc +++ b/data/scripts/secret_base.inc @@ -1,30 +1,30 @@ -SecretBase_Text_TreeCanBeClimbed: @ 8274746 +SecretBase_Text_TreeCanBeClimbed: .string "If some vines drop down, this tree can\n" .string "be climbed.$" -SecretBase_Text_TreeUseSecretPower: @ 8274779 +SecretBase_Text_TreeUseSecretPower: .string "If some vines drop down, this tree can\n" .string "be climbed.\p" .string "Use the SECRET POWER?$" -SecretBase_Text_VineDroppedDown: @ 82747C2 +SecretBase_Text_VineDroppedDown: .string "A thick vine dropped down!$" -SecretBase_Text_ClumpOfGrass: @ 82747DD +SecretBase_Text_ClumpOfGrass: .string "If this clump of grass can be moved,\n" .string "it might be possible to go inside.$" -SecretBase_Text_ClumpUseSecretPower: @ 8274825 +SecretBase_Text_ClumpUseSecretPower: .string "If this clump of grass can be moved,\n" .string "it might be possible to go inside.\p" .string "Use the SECRET POWER?$" -SecretBase_Text_DiscoveredSmallEntrance: @ 8274883 +SecretBase_Text_DiscoveredSmallEntrance: .string "Discovered a small entrance!$" .include "data/text/secret_base_trainers.inc" -SecretBase_EventScript_CheckEntrance:: @ 82759F1 +SecretBase_EventScript_CheckEntrance:: special GetSecretBaseTypeInFrontOfPlayer special CheckPlayerHasSecretBase compare VAR_RESULT, TRUE @@ -46,7 +46,7 @@ SecretBase_EventScript_CheckEntrance:: @ 82759F1 goto_if_eq SecretBase_EventScript_Shrub end -SecretBase_EventScript_Cave:: @ 8275A50 +SecretBase_EventScript_Cave:: lockall compare VAR_RESULT, PARTY_SIZE goto_if_eq SecretBase_EventScript_CaveNoSecretPower @@ -61,24 +61,24 @@ SecretBase_EventScript_Cave:: @ 8275A50 goto SecretBase_EventScript_CaveEnter end -SecretBase_EventScript_CaveUseSecretPower:: @ 8275A86 +SecretBase_EventScript_CaveUseSecretPower:: lockall dofieldeffect FLDEFF_USE_SECRET_POWER_CAVE waitstate goto SecretBase_EventScript_CaveEnter end -SecretBase_EventScript_CaveNoSecretPower:: @ 8275A91 +SecretBase_EventScript_CaveNoSecretPower:: msgbox SecretBase_Text_SmallIndentInWall, MSGBOX_DEFAULT releaseall end -SecretBase_EventScript_CaveEnter:: @ 8275A9B +SecretBase_EventScript_CaveEnter:: msgbox SecretBase_Text_DiscoveredSmallCavern, MSGBOX_DEFAULT goto SecretBase_EventScript_InitSecretBase end -SecretBase_EventScript_Tree:: @ 8275AA9 +SecretBase_EventScript_Tree:: lockall compare VAR_RESULT, PARTY_SIZE goto_if_eq SecretBase_EventScript_TreeNoSecretPower @@ -93,24 +93,24 @@ SecretBase_EventScript_Tree:: @ 8275AA9 goto SecretBase_EventScript_TreeEnter end -SecretBase_EventScript_TreeUseSecretPower:: @ 8275ADF +SecretBase_EventScript_TreeUseSecretPower:: lockall dofieldeffect FLDEFF_USE_SECRET_POWER_TREE waitstate goto SecretBase_EventScript_TreeEnter end -SecretBase_EventScript_TreeNoSecretPower:: @ 8275AEA +SecretBase_EventScript_TreeNoSecretPower:: msgbox SecretBase_Text_TreeCanBeClimbed, MSGBOX_DEFAULT releaseall end -SecretBase_EventScript_TreeEnter:: @ 8275AF4 +SecretBase_EventScript_TreeEnter:: msgbox SecretBase_Text_VineDroppedDown, MSGBOX_DEFAULT goto SecretBase_EventScript_InitSecretBase end -SecretBase_EventScript_Shrub:: @ 8275B02 +SecretBase_EventScript_Shrub:: lockall compare VAR_RESULT, PARTY_SIZE goto_if_eq SecretBase_EventScript_ShrubNoSecretPower @@ -125,24 +125,24 @@ SecretBase_EventScript_Shrub:: @ 8275B02 goto SecretBase_EventScript_ShrubEnter end -SecretBase_EventScript_ShrubUseSecretPower:: @ 8275B38 +SecretBase_EventScript_ShrubUseSecretPower:: lockall dofieldeffect FLDEFF_USE_SECRET_POWER_SHRUB waitstate goto SecretBase_EventScript_ShrubEnter end -SecretBase_EventScript_ShrubNoSecretPower:: @ 8275B43 +SecretBase_EventScript_ShrubNoSecretPower:: msgbox SecretBase_Text_ClumpOfGrass, MSGBOX_DEFAULT releaseall end -SecretBase_EventScript_ShrubEnter:: @ 8275B4D +SecretBase_EventScript_ShrubEnter:: msgbox SecretBase_Text_DiscoveredSmallEntrance, MSGBOX_DEFAULT goto SecretBase_EventScript_InitSecretBase end -SecretBase_EventScript_InitSecretBase:: @ 8275B5B +SecretBase_EventScript_InitSecretBase:: closemessage playse SE_EXIT setvar VAR_INIT_SECRET_BASE, 0 @@ -156,8 +156,8 @@ SecretBase_EventScript_InitSecretBase:: @ 8275B5B waitstate end -SecretBase_EventScript_FirstEntrance:: @ 8275B81 - applymovement OBJ_EVENT_ID_PLAYER, SecretBase_Movement_275BB4 +SecretBase_EventScript_FirstEntrance:: + applymovement OBJ_EVENT_ID_PLAYER, SecretBase_Movement_EnterBase waitmovement 0 setvar VAR_INIT_SECRET_BASE, 1 msgbox SecretBase_Text_WantToMakeYourSecretBaseHere, MSGBOX_YESNO @@ -168,19 +168,19 @@ SecretBase_EventScript_FirstEntrance:: @ 8275B81 special ClearAndLeaveSecretBase end -SecretBase_EventScript_SetAsBase:: @ 8275BAB +SecretBase_EventScript_SetAsBase:: closemessage setflag FLAG_RECEIVED_SECRET_POWER special EnterNewlyCreatedSecretBase waitstate end -SecretBase_Movement_275BB4: @ 8275BB4 +SecretBase_Movement_EnterBase: walk_up walk_up step_end -SecretBase_EventScript_Enter:: @ 8275BB7 +SecretBase_EventScript_Enter:: lockall setvar VAR_INIT_SECRET_BASE, 1 playse SE_EXIT @@ -193,14 +193,14 @@ SecretBase_EventScript_Enter:: @ 8275BB7 waitstate end -SecretBase_EventScript_EnterPlayersBase:: @ 8275BDB +SecretBase_EventScript_EnterPlayersBase:: setflag FLAG_DECORATION_0 special EnterSecretBase setvar VAR_SECRET_BASE_INITIALIZED, 0 waitstate end -SecretBase_EventScript_AlreadyHasSecretBase:: @ 8275BE8 +SecretBase_EventScript_AlreadyHasSecretBase:: checkpartymove MOVE_SECRET_POWER compare VAR_RESULT, PARTY_SIZE goto_if_eq SecretBase_EventScript_NoSecretPower @@ -241,7 +241,7 @@ SecretBase_EventScript_AlreadyHasSecretBase:: @ 8275BE8 releaseall end -SecretBase_EventScript_NoSecretPower:: @ 8275C9A +SecretBase_EventScript_NoSecretPower:: lockall compare VAR_0x8007, SECRET_BASE_RED_CAVE goto_if_eq SecretBase_EventScript_CaveNoSecretPower @@ -257,12 +257,12 @@ SecretBase_EventScript_NoSecretPower:: @ 8275C9A goto_if_eq SecretBase_EventScript_ShrubNoSecretPower end -SecretBase_EventScript_CancelOnEntrance:: @ 8275CDE +SecretBase_EventScript_CancelOnEntrance:: closemessage releaseall end -SecretBase_EventScript_SetDecorationFlags:: @ 8275CE1 +SecretBase_EventScript_SetDecorationFlags:: setflag FLAG_DECORATION_1 setflag FLAG_DECORATION_2 setflag FLAG_DECORATION_3 @@ -279,28 +279,28 @@ SecretBase_EventScript_SetDecorationFlags:: @ 8275CE1 setflag FLAG_DECORATION_14 return -SecretBase_EventScript_InitDecorations:: @ 8275D0C +SecretBase_EventScript_InitDecorations:: setvar VAR_0x8004, 0 setvar VAR_0x8005, 0 special InitSecretBaseDecorationSprites setvar VAR_SECRET_BASE_INITIALIZED, 1 end -SecretBase_EventScript_SetDecoration:: @ 8275D1F +SecretBase_EventScript_SetDecoration:: setvar VAR_0x8005, 0 goto SecretBase_EventScript_SetDecoration2 end -SecretBase_EventScript_SetDecoration2:: @ 8275D2A +SecretBase_EventScript_SetDecoration2:: special SetDecoration end -SecretBase_EventScript_PutAwayDecoration:: @ 8275D2E +SecretBase_EventScript_PutAwayDecoration:: setvar VAR_0x8004, 0 goto SecretBase_EventScript_PutAwayDecorationLoop end -SecretBase_EventScript_PutAwayDecorationLoop:: @ 8275D39 +SecretBase_EventScript_PutAwayDecorationLoop:: special PutAwayDecorationIteration compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_PutAwayDecorationEnd @@ -312,10 +312,10 @@ SecretBase_EventScript_PutAwayDecorationLoop:: @ 8275D39 goto SecretBase_EventScript_PutAwayDecorationLoop end -SecretBase_EventScript_PutAwayDecorationEnd:: @ 8275D63 +SecretBase_EventScript_PutAwayDecorationEnd:: end -SecretBase_EventScript_RecordMixTrainer:: @ 8275D64 +SecretBase_EventScript_RecordMixTrainer:: special GetSecretBaseOwnerAndState compare VAR_0x8004, 0 goto_if_eq SecretBase_EventScript_Trainer0 @@ -340,7 +340,7 @@ SecretBase_EventScript_RecordMixTrainer:: @ 8275D64 end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer0:: @ 8275DD6 +SecretBase_EventScript_Trainer0:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer0PreChampion @@ -358,12 +358,12 @@ SecretBase_EventScript_Trainer0:: @ 8275DD6 goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer0PreChampion:: @ 8275E25 +SecretBase_EventScript_Trainer0PreChampion:: msgbox SecretBase_Text_Trainer0PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer0DeclineBattle:: @ 8275E2F +SecretBase_EventScript_Trainer0DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -371,13 +371,13 @@ SecretBase_EventScript_Trainer0DeclineBattle:: @ 8275E2F release end -SecretBase_EventScript_Trainer0PostBattle:: @ 8275E44 +SecretBase_EventScript_Trainer0PostBattle:: msgbox SecretBase_Text_Trainer0PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer1:: @ 8275E4E +SecretBase_EventScript_Trainer1:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer1PreChampion @@ -395,12 +395,12 @@ SecretBase_EventScript_Trainer1:: @ 8275E4E goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer1PreChampion:: @ 8275E9D +SecretBase_EventScript_Trainer1PreChampion:: msgbox SecretBase_Text_Trainer1PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer1DeclineBattle:: @ 8275EA7 +SecretBase_EventScript_Trainer1DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -408,13 +408,13 @@ SecretBase_EventScript_Trainer1DeclineBattle:: @ 8275EA7 release end -SecretBase_EventScript_Trainer1PostBattle:: @ 8275EBC +SecretBase_EventScript_Trainer1PostBattle:: msgbox SecretBase_Text_Trainer1PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer2:: @ 8275EC6 +SecretBase_EventScript_Trainer2:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer2PreChampion @@ -432,12 +432,12 @@ SecretBase_EventScript_Trainer2:: @ 8275EC6 goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer2PreChampion:: @ 8275F15 +SecretBase_EventScript_Trainer2PreChampion:: msgbox SecretBase_Text_Trainer2PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer2DeclineBattle:: @ 8275F1F +SecretBase_EventScript_Trainer2DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -445,13 +445,13 @@ SecretBase_EventScript_Trainer2DeclineBattle:: @ 8275F1F release end -SecretBase_EventScript_Trainer2PostBattle:: @ 8275F34 +SecretBase_EventScript_Trainer2PostBattle:: msgbox SecretBase_Text_Trainer2PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer3:: @ 8275F3E +SecretBase_EventScript_Trainer3:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer3PreChampion @@ -469,12 +469,12 @@ SecretBase_EventScript_Trainer3:: @ 8275F3E goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer3PreChampion:: @ 8275F8D +SecretBase_EventScript_Trainer3PreChampion:: msgbox SecretBase_Text_Trainer3PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer3DeclineBattle:: @ 8275F97 +SecretBase_EventScript_Trainer3DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -482,13 +482,13 @@ SecretBase_EventScript_Trainer3DeclineBattle:: @ 8275F97 release end -SecretBase_EventScript_Trainer3PostBattle:: @ 8275FAC +SecretBase_EventScript_Trainer3PostBattle:: msgbox SecretBase_Text_Trainer3PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer4:: @ 8275FB6 +SecretBase_EventScript_Trainer4:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer4PreChampion @@ -506,12 +506,12 @@ SecretBase_EventScript_Trainer4:: @ 8275FB6 goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer4PreChampion:: @ 8276005 +SecretBase_EventScript_Trainer4PreChampion:: msgbox SecretBase_Text_Trainer4PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer4DeclineBattle:: @ 827600F +SecretBase_EventScript_Trainer4DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -519,13 +519,13 @@ SecretBase_EventScript_Trainer4DeclineBattle:: @ 827600F release end -SecretBase_EventScript_Trainer4PostBattle:: @ 8276024 +SecretBase_EventScript_Trainer4PostBattle:: msgbox SecretBase_Text_Trainer4PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer5:: @ 827602E +SecretBase_EventScript_Trainer5:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer5PreChampion @@ -543,12 +543,12 @@ SecretBase_EventScript_Trainer5:: @ 827602E goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer5PreChampion:: @ 827607D +SecretBase_EventScript_Trainer5PreChampion:: msgbox SecretBase_Text_Trainer5PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer5DeclineBattle:: @ 8276087 +SecretBase_EventScript_Trainer5DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -556,13 +556,13 @@ SecretBase_EventScript_Trainer5DeclineBattle:: @ 8276087 release end -SecretBase_EventScript_Trainer5PostBattle:: @ 827609C +SecretBase_EventScript_Trainer5PostBattle:: msgbox SecretBase_Text_Trainer5PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer6:: @ 82760A6 +SecretBase_EventScript_Trainer6:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer6PreChampion @@ -580,12 +580,12 @@ SecretBase_EventScript_Trainer6:: @ 82760A6 goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer6PreChampion:: @ 82760F5 +SecretBase_EventScript_Trainer6PreChampion:: msgbox SecretBase_Text_Trainer6PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer6DeclineBattle:: @ 82760FF +SecretBase_EventScript_Trainer6DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -593,13 +593,13 @@ SecretBase_EventScript_Trainer6DeclineBattle:: @ 82760FF release end -SecretBase_EventScript_Trainer6PostBattle:: @ 8276114 +SecretBase_EventScript_Trainer6PostBattle:: msgbox SecretBase_Text_Trainer6PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer7:: @ 827611E +SecretBase_EventScript_Trainer7:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer7PreChampion @@ -617,12 +617,12 @@ SecretBase_EventScript_Trainer7:: @ 827611E goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer7PreChampion:: @ 827616D +SecretBase_EventScript_Trainer7PreChampion:: msgbox SecretBase_Text_Trainer7PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer7DeclineBattle:: @ 8276177 +SecretBase_EventScript_Trainer7DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -630,13 +630,13 @@ SecretBase_EventScript_Trainer7DeclineBattle:: @ 8276177 release end -SecretBase_EventScript_Trainer7PostBattle:: @ 827618C +SecretBase_EventScript_Trainer7PostBattle:: msgbox SecretBase_Text_Trainer7PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer8:: @ 8276196 +SecretBase_EventScript_Trainer8:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer8PreChampion @@ -654,12 +654,12 @@ SecretBase_EventScript_Trainer8:: @ 8276196 goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer8PreChampion:: @ 82761E5 +SecretBase_EventScript_Trainer8PreChampion:: msgbox SecretBase_Text_Trainer8PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer8DeclineBattle:: @ 82761EF +SecretBase_EventScript_Trainer8DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -667,13 +667,13 @@ SecretBase_EventScript_Trainer8DeclineBattle:: @ 82761EF release end -SecretBase_EventScript_Trainer8PostBattle:: @ 8276204 +SecretBase_EventScript_Trainer8PostBattle:: msgbox SecretBase_Text_Trainer8PostBattle, MSGBOX_DEFAULT release end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState -SecretBase_EventScript_Trainer9:: @ 827620E +SecretBase_EventScript_Trainer9:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer9PreChampion @@ -691,12 +691,12 @@ SecretBase_EventScript_Trainer9:: @ 827620E goto SecretBase_EventScript_BattleTrainer end -SecretBase_EventScript_Trainer9PreChampion:: @ 827625D +SecretBase_EventScript_Trainer9PreChampion:: msgbox SecretBase_Text_Trainer9PreChampion, MSGBOX_DEFAULT release end -SecretBase_EventScript_Trainer9DeclineBattle:: @ 8276267 +SecretBase_EventScript_Trainer9DeclineBattle:: special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult @@ -704,12 +704,12 @@ SecretBase_EventScript_Trainer9DeclineBattle:: @ 8276267 release end -SecretBase_EventScript_Trainer9PostBattle:: @ 827627C +SecretBase_EventScript_Trainer9PostBattle:: msgbox SecretBase_Text_Trainer9PostBattle, MSGBOX_DEFAULT release end -SecretBase_EventScript_BattleTrainer:: @ 8276286 +SecretBase_EventScript_BattleTrainer:: special PrepSecretBaseBattleFlags setvar VAR_0x8004, SPECIAL_BATTLE_SECRET_BASE setvar VAR_0x8005, 0 @@ -725,59 +725,59 @@ SecretBase_EventScript_BattleTrainer:: @ 8276286 release end -SecretBase_EventScript_DrewSecretBaseBattle:: @ 82762BD +SecretBase_EventScript_DrewSecretBaseBattle:: special DrewSecretBaseBattle return -SecretBase_EventScript_WonSecretBaseBattle:: @ 82762C1 +SecretBase_EventScript_WonSecretBaseBattle:: special WonSecretBaseBattle return -SecretBase_EventScript_LostSecretBaseBattle:: @ 82762C5 +SecretBase_EventScript_LostSecretBaseBattle:: special LostSecretBaseBattle return .include "data/scripts/secret_power_tm.inc" -SecretBase_EventScript_DollInteract:: @ 82766A2 +SecretBase_EventScript_DollInteract:: special CheckInteractedWithFriendsDollDecor end -SecretBase_EventScript_CushionInteract:: @ 82766A6 +SecretBase_EventScript_CushionInteract:: special CheckInteractedWithFriendsCushionDecor end -SecretBase_Text_AllDecorationsWillBeReturned: @ 82766AA +SecretBase_Text_AllDecorationsWillBeReturned: .string "All decorations and furniture in your\n" .string "SECRET BASE will be returned to your PC.\p" .string "Is that okay?$" -SecretBase_Text_WantToRegisterSecretBase: @ 8276707 +SecretBase_Text_WantToRegisterSecretBase: .string "Do you want to register\n" .string "{STR_VAR_1}'s SECRET BASE?$" -SecretBase_Text_AlreadyRegisteredDelete: @ 8276731 +SecretBase_Text_AlreadyRegisteredDelete: .string "This data is already registered.\n" .string "Would you like to delete it?$" -SecretBase_Text_TooManyBasesDeleteSome: @ 827676F +SecretBase_Text_TooManyBasesDeleteSome: .string "Up to 10 locations can be registered.\p" .string "Delete a location if you want to\n" .string "register another location.$" -SecretBase_Text_RegistrationCompleted: @ 82767D1 +SecretBase_Text_RegistrationCompleted: .string "Registration completed.$" -SecretBase_Text_DataUnregistered: @ 82767E9 +SecretBase_Text_DataUnregistered: .string "Data has been unregistered.$" -SecretBase_Text_BootUpPC: @ 8276805 +SecretBase_Text_BootUpPC: .string "{PLAYER} booted up the PC.$" -SecretBase_Text_WhatWouldYouLikeToDo: @ 827681A +SecretBase_Text_WhatWouldYouLikeToDo: .string "What would you like to do?$" -SecretBase_Text_RegistryInfo: @ 8276835 +SecretBase_Text_RegistryInfo: .string "Once registered, a SECRET BASE will not\n" .string "disappear unless the other TRAINER\l" .string "moves it to a different location.\p" @@ -787,27 +787,27 @@ SecretBase_Text_RegistryInfo: @ 8276835 .string "Up to ten SECRET BASE locations\n" .string "may be registered.$" -SecretBase_Text_BattleTowerShield: @ 827692B +SecretBase_Text_BattleTowerShield: .string "A shield of {STR_VAR_2} that marks winning\n" .string "{STR_VAR_1} times in a row at the BATTLE TOWER.$" -SecretBase_Text_ToyTV: @ 8276974 +SecretBase_Text_ToyTV: .string "A realistic toy TV. It could be easily\n" .string "mistaken for the real thing.$" -SecretBase_Text_SeedotTV: @ 82769B8 +SecretBase_Text_SeedotTV: .string "A toy TV shaped like a SEEDOT.\n" .string "It looks ready to roll away on its own…$" -SecretBase_Text_SkittyTV: @ 82769FF +SecretBase_Text_SkittyTV: .string "A toy TV shaped like a SKITTY.\n" .string "It looks ready to stroll away…$" -SecretBase_Text_WouldYouLikeToMoveBases: @ 8276A3D +SecretBase_Text_WouldYouLikeToMoveBases: .string "You may only make one SECRET BASE.\p" .string "Would you like to move from the SECRET\n" .string "BASE near {STR_VAR_1}?$" -SecretBase_Text_MovingCompletedUseSecretPower: @ 8276A95 +SecretBase_Text_MovingCompletedUseSecretPower: .string "Moving completed.\p" .string "Would you like to use the SECRET POWER?$" diff --git a/data/scripts/secret_power_tm.inc b/data/scripts/secret_power_tm.inc index 6684ec98b1..41c21e1004 100644 --- a/data/scripts/secret_power_tm.inc +++ b/data/scripts/secret_power_tm.inc @@ -1,4 +1,4 @@ -Route111_Text_MakingRoomUseTMToMakeYourOwn: @ 82762C9 +Route111_Text_MakingRoomUseTMToMakeYourOwn: .string "What's that?\n" .string "What am I doing?\p" .string "I'm thinking about making my own room\n" @@ -6,7 +6,7 @@ Route111_Text_MakingRoomUseTMToMakeYourOwn: @ 82762C9 .string "I know! I'll give you this TM.\n" .string "Will you use it to make your own room?$" -Route111_Text_ExplainSecretPower: @ 827636E +Route111_Text_ExplainSecretPower: .string "Find a big tree that looks like it might\n" .string "drop some vines.\p" .string "Use SECRET POWER in front of the tree.\n" @@ -24,16 +24,16 @@ Route111_Text_ExplainSecretPower: @ 827636E .string "I'm going to look for other places, too.\n" .string "Okay, bye!$" -Route111_Text_DontWantThis: @ 827655C +Route111_Text_DontWantThis: .string "Oh, you don't want this?\n" .string "If you change your mind, tell me, okay?$" -Route111_Text_DontHaveAnyRoom: @ 827659D +Route111_Text_DontHaveAnyRoom: .string "Oh, you don't have any room for this.\p" .string "I'll hold on to it, so come back for it\n" .string "another time, okay?$" -Route111_EventScript_SecretPowerMan:: @ 82765FF +Route111_EventScript_SecretPowerMan:: lock faceplayer msgbox Route111_Text_MakingRoomUseTMToMakeYourOwn, MSGBOX_YESNO @@ -43,7 +43,7 @@ Route111_EventScript_SecretPowerMan:: @ 82765FF release end -Route111_EventScript_GiveSecretPower:: @ 827661E +Route111_EventScript_GiveSecretPower:: giveitem ITEM_TM43 compare VAR_RESULT, FALSE goto_if_eq Route111_EventScript_NoRoomForSecretPower @@ -61,22 +61,22 @@ Route111_EventScript_GiveSecretPower:: @ 827661E release end -Route111_EventScript_SecretPowerManExit:: @ 827666A +Route111_EventScript_SecretPowerManExit:: applymovement VAR_LAST_TALKED, Route111_Movement_SecretPowerManExit waitmovement 0 return -Route111_EventScript_SecretPowerManExitNorth:: @ 8276675 +Route111_EventScript_SecretPowerManExitNorth:: applymovement VAR_LAST_TALKED, Route111_Movement_SecretPowerManExitNorth waitmovement 0 return -Route111_EventScript_NoRoomForSecretPower:: @ 8276680 +Route111_EventScript_NoRoomForSecretPower:: msgbox Route111_Text_DontHaveAnyRoom, MSGBOX_DEFAULT release end -Route111_Movement_SecretPowerManExit: @ 827668A +Route111_Movement_SecretPowerManExit: walk_down walk_down walk_down @@ -90,7 +90,7 @@ Route111_Movement_SecretPowerManExit: @ 827668A walk_down step_end -Route111_Movement_SecretPowerManExitNorth: @ 8276696 +Route111_Movement_SecretPowerManExitNorth: walk_left walk_down walk_down diff --git a/data/scripts/set_gym_trainers.inc b/data/scripts/set_gym_trainers.inc index c263e42d4f..1faa9f7d5b 100644 --- a/data/scripts/set_gym_trainers.inc +++ b/data/scripts/set_gym_trainers.inc @@ -1,4 +1,4 @@ -Common_EventScript_SetGymTrainers:: @ 8271F43 +Common_EventScript_SetGymTrainers:: switch VAR_0x8008 case 1, RustboroCity_Gym_SetGymTrainers case 2, DewfordTown_Gym_SetGymTrainers @@ -10,13 +10,13 @@ Common_EventScript_SetGymTrainers:: @ 8271F43 case 8, SootopolisCity_Gym_SetGymTrainers end -RustboroCity_Gym_SetGymTrainers:: @ 8271FA1 +RustboroCity_Gym_SetGymTrainers:: settrainerflag TRAINER_JOSH settrainerflag TRAINER_TOMMY settrainerflag TRAINER_MARC return -DewfordTown_Gym_SetGymTrainers:: @ 8271FAB +DewfordTown_Gym_SetGymTrainers:: settrainerflag TRAINER_TAKAO settrainerflag TRAINER_JOCELYN settrainerflag TRAINER_LAURA @@ -25,7 +25,7 @@ DewfordTown_Gym_SetGymTrainers:: @ 8271FAB settrainerflag TRAINER_LILITH return -MauvilleCity_Gym_SetGymTrainers:: @ 8271FBE +MauvilleCity_Gym_SetGymTrainers:: settrainerflag TRAINER_KIRK settrainerflag TRAINER_SHAWN settrainerflag TRAINER_BEN @@ -33,7 +33,7 @@ MauvilleCity_Gym_SetGymTrainers:: @ 8271FBE settrainerflag TRAINER_ANGELO return -LavaridgeTown_Gym_SetGymTrainers:: @ 8271FCE +LavaridgeTown_Gym_SetGymTrainers:: settrainerflag TRAINER_COLE settrainerflag TRAINER_AXLE settrainerflag TRAINER_KEEGAN @@ -44,7 +44,7 @@ LavaridgeTown_Gym_SetGymTrainers:: @ 8271FCE settrainerflag TRAINER_ELI return -PetalburgCity_Gym_SetGymTrainers:: @ 8271FE7 +PetalburgCity_Gym_SetGymTrainers:: settrainerflag TRAINER_RANDALL settrainerflag TRAINER_PARKER settrainerflag TRAINER_GEORGE @@ -54,7 +54,7 @@ PetalburgCity_Gym_SetGymTrainers:: @ 8271FE7 settrainerflag TRAINER_JODY return -FortreeCity_Gym_SetGymTrainers:: @ 8271FFD +FortreeCity_Gym_SetGymTrainers:: settrainerflag TRAINER_JARED settrainerflag TRAINER_FLINT settrainerflag TRAINER_ASHLEY @@ -63,7 +63,7 @@ FortreeCity_Gym_SetGymTrainers:: @ 8271FFD settrainerflag TRAINER_DARIUS return -MossdeepCity_Gym_SetGymTrainers:: @ 8272010 +MossdeepCity_Gym_SetGymTrainers:: settrainerflag TRAINER_PRESTON settrainerflag TRAINER_VIRGIL settrainerflag TRAINER_BLAKE @@ -78,7 +78,7 @@ MossdeepCity_Gym_SetGymTrainers:: @ 8272010 settrainerflag TRAINER_NICHOLAS return -SootopolisCity_Gym_SetGymTrainers:: @ 8272035 +SootopolisCity_Gym_SetGymTrainers:: settrainerflag TRAINER_ANDREA settrainerflag TRAINER_CRISSY settrainerflag TRAINER_BRIANNA diff --git a/data/scripts/shared_secret_base.inc b/data/scripts/shared_secret_base.inc index 0fa61a214e..ef389d3fce 100644 --- a/data/scripts/shared_secret_base.inc +++ b/data/scripts/shared_secret_base.inc @@ -5,25 +5,25 @@ SecretBase_MapScripts:: map_script MAP_SCRIPT_ON_RESUME, SecretBase_OnResume .byte 0 -SecretBase_OnWarp: @ 823B498 +SecretBase_OnWarp: map_script_2 VAR_SECRET_BASE_INITIALIZED, 0, SecretBase_EventScript_InitDecorations .2byte 0 -SecretBase_OnTransition: @ 823B4A2 +SecretBase_OnTransition: call SecretBase_EventScript_SetDecorationFlags special SetSecretBaseOwnerGfxId special InitSecretBaseVars end -SecretBase_OnFrame: @ 823B4AE +SecretBase_OnFrame: map_script_2 VAR_INIT_SECRET_BASE, 0, SecretBase_EventScript_FirstEntrance .2byte 0 -SecretBase_OnResume: @ 823B4B8 +SecretBase_OnResume: setstepcallback STEP_CB_SECRET_BASE end -SecretBase_EventScript_PC:: @ 823B4BB +SecretBase_EventScript_PC:: lockall playse SE_PC_LOGIN message SecretBase_Text_BootUpPC @@ -35,20 +35,20 @@ SecretBase_EventScript_PC:: @ 823B4BB goto SecretBase_EventScript_PCShowMainMenu end -SecretBase_EventScript_PCShowMainMenu:: @ 823B4D3 +SecretBase_EventScript_PCShowMainMenu:: message SecretBase_Text_WhatWouldYouLikeToDo waitmessage goto_if_set FLAG_SECRET_BASE_REGISTRY_ENABLED, SecretBase_EventScript_PCMainMenuWithRegister goto SecretBase_EventScript_PCMainMenuWithoutRegister end -SecretBase_EventScript_PCCancel:: @ 823B4E8 +SecretBase_EventScript_PCCancel:: lockall goto SecretBase_EventScript_PCShowMainMenu end -SecretBase_EventScript_PCMainMenuWithRegister:: @ 823B4EF - multichoice 0, 0, MULTI_BASE_PC_WITH_REGISTRY, 0 +SecretBase_EventScript_PCMainMenuWithRegister:: + multichoice 0, 0, MULTI_BASE_PC_WITH_REGISTRY, FALSE switch VAR_RESULT case 0, SecretBase_EventScript_PCDecorationMenu case 1, SecretBase_EventScript_PCPackUp @@ -57,8 +57,8 @@ SecretBase_EventScript_PCMainMenuWithRegister:: @ 823B4EF case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff end -SecretBase_EventScript_PCMainMenuWithoutRegister:: @ 823B531 - multichoice 0, 0, MULTI_BASE_PC_NO_REGISTRY, 0 +SecretBase_EventScript_PCMainMenuWithoutRegister:: + multichoice 0, 0, MULTI_BASE_PC_NO_REGISTRY, FALSE switch VAR_RESULT case 0, SecretBase_EventScript_PCDecorationMenu case 1, SecretBase_EventScript_PCPackUp @@ -66,7 +66,7 @@ SecretBase_EventScript_PCMainMenuWithoutRegister:: @ 823B531 case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff end -SecretBase_EventScript_PCPackUp:: @ 823B568 +SecretBase_EventScript_PCPackUp:: msgbox SecretBase_Text_AllDecorationsWillBeReturned, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_PCShowMainMenu @@ -75,15 +75,15 @@ SecretBase_EventScript_PCPackUp:: @ 823B568 releaseall end -SecretBase_EventScript_PCDecorationMenu:: @ 823B581 +SecretBase_EventScript_PCDecorationMenu:: special ShowSecretBaseDecorationMenu end -SecretBase_EventScript_PCRegistryMenu:: @ 823B585 +SecretBase_EventScript_PCRegistryMenu:: special ShowSecretBaseRegistryMenu end -SecretBase_EventScript_RecordMixingPC:: @ 823B589 +SecretBase_EventScript_RecordMixingPC:: lockall message SecretBase_Text_BootUpPC playse SE_PC_LOGIN @@ -95,10 +95,10 @@ SecretBase_EventScript_RecordMixingPC:: @ 823B589 goto SecretBase_EventScript_PCRegisterMenu end -SecretBase_EventScript_PCRegisterMenu:: @ 823B5A1 +SecretBase_EventScript_PCRegisterMenu:: message SecretBase_Text_WhatWouldYouLikeToDo waitmessage - multichoice 0, 0, MULTI_REGISTER_MENU, 0 + multichoice 0, 0, MULTI_REGISTER_MENU, FALSE switch VAR_RESULT case 0, SecretBase_EventScript_PCRegister case 1, SecretBase_EventScript_PCRegistryMenu @@ -107,12 +107,12 @@ SecretBase_EventScript_PCRegisterMenu:: @ 823B5A1 case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff end -SecretBase_EventScript_ShowRegisterMenu:: @ 823B5E9 +SecretBase_EventScript_ShowRegisterMenu:: lockall goto SecretBase_EventScript_PCRegisterMenu end -SecretBase_EventScript_PCRegister:: @ 823B5F0 +SecretBase_EventScript_PCRegister:: special GetCurSecretBaseRegistrationValidity compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_AlreadyRegistered @@ -128,7 +128,7 @@ SecretBase_EventScript_PCRegister:: @ 823B5F0 releaseall end -SecretBase_EventScript_AlreadyRegistered:: @ 823B62F +SecretBase_EventScript_AlreadyRegistered:: msgbox SecretBase_Text_AlreadyRegisteredDelete, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_PCRegisterMenu @@ -138,51 +138,51 @@ SecretBase_EventScript_AlreadyRegistered:: @ 823B62F releaseall end -SecretBase_EventScript_CantRegisterTooManyBases:: @ 823B652 +SecretBase_EventScript_CantRegisterTooManyBases:: msgbox SecretBase_Text_TooManyBasesDeleteSome, MSGBOX_SIGN special DoSecretBasePCTurnOffEffect closemessage releaseall end -SecretBase_EventScript_PCRegistryInfo:: @ 823B660 +SecretBase_EventScript_PCRegistryInfo:: msgbox SecretBase_Text_RegistryInfo, MSGBOX_DEFAULT goto SecretBase_EventScript_PCRegisterMenu end -SecretBase_EventScript_PCTurnOff:: @ 823B66E +SecretBase_EventScript_PCTurnOff:: special DoSecretBasePCTurnOffEffect closemessage releaseall end @ Unused -SecretBase_EventScript_Poster:: @ 823B674 +SecretBase_EventScript_Poster:: special CheckInteractedWithFriendsPosterDecor end @ Unused -SecretBase_EventScript_FurnitureBottom:: @ 823B678 +SecretBase_EventScript_FurnitureBottom:: special CheckInteractedWithFriendsFurnitureBottom end @ Unused -SecretBase_EventScript_FurnitureMiddle:: @ 823B67C +SecretBase_EventScript_FurnitureMiddle:: special CheckInteractedWithFriendsFurnitureMiddle end @ Unused -SecretBase_EventScript_FurnitureTop:: @ 823B680 +SecretBase_EventScript_FurnitureTop:: special CheckInteractedWithFriendsFurnitureTop end -SecretBase_EventScript_SandOrnament:: @ 823B684 +SecretBase_EventScript_SandOrnament:: special CheckInteractedWithFriendsSandOrnament dofieldeffect FLDEFF_SAND_PILLAR waitstate end -SecretBase_EventScript_ShieldOrToyTV:: @ 823B68C +SecretBase_EventScript_ShieldOrToyTV:: special InteractWithShieldOrTVDecoration compare VAR_RESULT, 0 goto_if_eq SecretBase_EventScript_BattleTowerShield @@ -194,31 +194,31 @@ SecretBase_EventScript_ShieldOrToyTV:: @ 823B68C goto_if_eq SecretBase_EventScript_SkittyTV end -SecretBase_EventScript_BattleTowerShield:: @ 823B6BC +SecretBase_EventScript_BattleTowerShield:: msgbox SecretBase_Text_BattleTowerShield, MSGBOX_SIGN end -SecretBase_EventScript_ToyTV:: @ 823B6C5 +SecretBase_EventScript_ToyTV:: msgbox SecretBase_Text_ToyTV, MSGBOX_SIGN end -SecretBase_EventScript_SeedotTV:: @ 823B6CE +SecretBase_EventScript_SeedotTV:: msgbox SecretBase_Text_SeedotTV, MSGBOX_SIGN end -SecretBase_EventScript_SkittyTV:: @ 823B6D7 +SecretBase_EventScript_SkittyTV:: msgbox SecretBase_Text_SkittyTV, MSGBOX_SIGN end -SecretBase_Text_SmallIndentInWall:: @ 823B6E0 +SecretBase_Text_SmallIndentInWall:: .string "There's a small indent in the wall.$" -SecretBase_Text_IndentUseSecretPower:: @ 823B704 +SecretBase_Text_IndentUseSecretPower:: .string "There's a small indent in the wall.\p" .string "Use the SECRET POWER?$" -SecretBase_Text_DiscoveredSmallCavern:: @ 823B73E +SecretBase_Text_DiscoveredSmallCavern:: .string "Discovered a small cavern!$" -SecretBase_Text_WantToMakeYourSecretBaseHere: @ 823B759 +SecretBase_Text_WantToMakeYourSecretBaseHere: .string "Want to make your SECRET BASE here?$" diff --git a/data/scripts/std_msgbox.inc b/data/scripts/std_msgbox.inc index 10b46700e7..941cc0e961 100644 --- a/data/scripts/std_msgbox.inc +++ b/data/scripts/std_msgbox.inc @@ -1,4 +1,4 @@ -Std_MsgboxNPC: @ 8271315 +Std_MsgboxNPC: lock faceplayer message 0x0 @@ -7,7 +7,7 @@ Std_MsgboxNPC: @ 8271315 release return -Std_MsgboxSign: @ 8271320 +Std_MsgboxSign: lockall message 0x0 waitmessage @@ -15,34 +15,34 @@ Std_MsgboxSign: @ 8271320 releaseall return -Std_MsgboxDefault: @ 827132A +Std_MsgboxDefault: message 0x0 waitmessage waitbuttonpress return -Std_MsgboxYesNo: @ 8271332 +Std_MsgboxYesNo: message 0x0 waitmessage yesnobox 20, 8 return -Std_MsgboxGetPoints: @ 827133C +Std_MsgboxGetPoints: message 0x0 playfanfare MUS_OBTAIN_B_POINTS waitfanfare waitmessage return -Std_10: @ 8271347 +Std_10: pokenavcall 0x0 waitmessage return -EventScript_UnusedReturn: @ 827134E +EventScript_UnusedReturn: return -Common_EventScript_SaveGame:: @ 827134F +Common_EventScript_SaveGame:: special SaveGame waitstate return diff --git a/data/scripts/surf.inc b/data/scripts/surf.inc index af6cac1dad..91580422e1 100644 --- a/data/scripts/surf.inc +++ b/data/scripts/surf.inc @@ -1,4 +1,4 @@ -EventScript_UseSurf:: @ 8271EA0 +EventScript_UseSurf:: checkpartymove MOVE_SURF compare VAR_RESULT, PARTY_SIZE goto_if_eq EventScript_EndUseSurf @@ -10,7 +10,7 @@ EventScript_UseSurf:: @ 8271EA0 goto_if_eq EventScript_ReleaseUseSurf msgbox gText_PlayerUsedSurf, MSGBOX_DEFAULT dofieldeffect FLDEFF_USE_SURF -EventScript_ReleaseUseSurf:: @ 8271ED5 +EventScript_ReleaseUseSurf:: releaseall -EventScript_EndUseSurf:: @ 8271ED6 +EventScript_EndUseSurf:: end diff --git a/data/scripts/test_signpost.inc b/data/scripts/test_signpost.inc index 482fe18f27..6a8be547ba 100644 --- a/data/scripts/test_signpost.inc +++ b/data/scripts/test_signpost.inc @@ -1,7 +1,7 @@ -Text_ThisIsATestSignpostMsg:: @ 82C840A +Text_ThisIsATestSignpostMsg:: .string "This is a test message.\n" .string "This is a signpost.$" -EventScript_TestSignpostMsg:: @ 82C8436 +EventScript_TestSignpostMsg:: msgbox Text_ThisIsATestSignpostMsg, MSGBOX_SIGN end diff --git a/data/scripts/trainer_battle.inc b/data/scripts/trainer_battle.inc index aa96e7b35f..a59b58a6f7 100644 --- a/data/scripts/trainer_battle.inc +++ b/data/scripts/trainer_battle.inc @@ -1,63 +1,65 @@ -EventScript_271354:: @ 8271354 - cmdD8 - cmdD9 - -EventScript_ShowSecondTrainerIntro:: @ 8271356 - special SetUpTrainerEncounterMusic - special EndTrainerApproach +EventScript_StartTrainerApproach:: + selectapproachingtrainer + lockfortrainer +EventScript_TrainerApproach:: + special PlayTrainerEncounterMusic + special DoTrainerApproach waitstate goto EventScript_ShowTrainerIntroMsg -EventScript_TryDoNormalTrainerBattle:: @ 8271362 +EventScript_TryDoNormalTrainerBattle:: lock faceplayer applymovement VAR_LAST_TALKED, Movement_RevealTrainer waitmovement 0 specialvar VAR_RESULT, GetTrainerFlag - compare VAR_RESULT, 0 + compare VAR_RESULT, FALSE goto_if_ne EventScript_NoNormalTrainerBattle - special SetUpTrainerEncounterMusic - special SetUpTrainerMovement + special PlayTrainerEncounterMusic + special SetTrainerFacingDirection goto EventScript_ShowTrainerIntroMsg -EventScript_NoNormalTrainerBattle:: @ 8271389 + +EventScript_NoNormalTrainerBattle:: gotopostbattlescript -EventScript_TryDoDoubleTrainerBattle:: @ 827138A +EventScript_TryDoDoubleTrainerBattle:: lock faceplayer call EventScript_RevealTrainer specialvar VAR_RESULT, GetTrainerFlag - compare VAR_RESULT, 0 + compare VAR_RESULT, FALSE goto_if_ne EventScript_NoDoubleTrainerBattle special HasEnoughMonsForDoubleBattle compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS goto_if_ne EventScript_NotEnoughMonsForDoubleBattle - special SetUpTrainerEncounterMusic - special SetUpTrainerMovement + special PlayTrainerEncounterMusic + special SetTrainerFacingDirection goto EventScript_ShowTrainerIntroMsg -EventScript_NotEnoughMonsForDoubleBattle:: @ 82713BA + +EventScript_NotEnoughMonsForDoubleBattle:: special ShowTrainerCantBattleSpeech waitmessage waitbuttonpress release end -EventScript_NoDoubleTrainerBattle:: @ 82713C1 + +EventScript_NoDoubleTrainerBattle:: gotopostbattlescript -EventScript_DoNoIntroTrainerBattle:: @ 82713C2 +EventScript_DoNoIntroTrainerBattle:: applymovement VAR_LAST_TALKED, Movement_RevealTrainer waitmovement 0 - special SetUpTrainerEncounterMusic + special PlayTrainerEncounterMusic trainerbattlebegin gotopostbattlescript -EventScript_TryDoRematchBattle:: @ 82713D1 +EventScript_TryDoRematchBattle:: call EventScript_RevealTrainer specialvar VAR_RESULT, IsTrainerReadyForRematch compare VAR_RESULT, FALSE goto_if_eq EventScript_NoRematchTrainerBattle - special SetUpTrainerEncounterMusic - special SetUpTrainerMovement + special PlayTrainerEncounterMusic + special SetTrainerFacingDirection special ShowTrainerIntroSpeech waitmessage waitbuttonpress @@ -65,18 +67,19 @@ EventScript_TryDoRematchBattle:: @ 82713D1 waitstate releaseall end -EventScript_NoRematchTrainerBattle:: @ 82713F7 + +EventScript_NoRematchTrainerBattle:: gotopostbattlescript -EventScript_TryDoDoubleRematchBattle:: @ 82713F8 +EventScript_TryDoDoubleRematchBattle:: specialvar VAR_RESULT, IsTrainerReadyForRematch compare VAR_RESULT, FALSE goto_if_eq EventScript_NoDoubleRematchTrainerBattle special HasEnoughMonsForDoubleBattle compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS goto_if_ne EventScript_NotEnoughMonsForDoubleRematchBattle - special SetUpTrainerEncounterMusic - special SetUpTrainerMovement + special PlayTrainerEncounterMusic + special SetTrainerFacingDirection special ShowTrainerIntroSpeech waitmessage waitbuttonpress @@ -84,34 +87,36 @@ EventScript_TryDoDoubleRematchBattle:: @ 82713F8 waitstate releaseall end -EventScript_NoDoubleRematchTrainerBattle:: @ 8271427 + +EventScript_NoDoubleRematchTrainerBattle:: gotopostbattlescript -EventScript_NotEnoughMonsForDoubleRematchBattle:: @ 8271428 + +EventScript_NotEnoughMonsForDoubleRematchBattle:: special ShowTrainerCantBattleSpeech waitmessage waitbuttonpress release end -EventScript_RevealTrainer:: @ 827142F +EventScript_RevealTrainer:: applymovement VAR_LAST_TALKED, Movement_RevealTrainer waitmovement 0 return -Movement_RevealTrainer: @ 827143A +Movement_RevealTrainer: reveal_trainer step_end -EventScript_ShowTrainerIntroMsg:: @ 827143C +EventScript_ShowTrainerIntroMsg:: special ShowTrainerIntroSpeech waitmessage waitbuttonpress special TryPrepareSecondApproachingTrainer compare VAR_RESULT, TRUE - goto_if_eq EventScript_ShowSecondTrainerIntro + goto_if_eq EventScript_TrainerApproach goto EventScript_DoTrainerBattle -EventScript_DoTrainerBattle:: @ 8271454 +EventScript_DoTrainerBattle:: trainerbattlebegin @ Below battle mode check only needed in FRLG specialvar VAR_RESULT, GetTrainerBattleMode @@ -125,12 +130,12 @@ EventScript_DoTrainerBattle:: @ 8271454 goto_if_eq EventScript_EndTrainerBattle compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC goto_if_eq EventScript_EndTrainerBattle -EventScript_EndTrainerBattle:: @ 8271491 +EventScript_EndTrainerBattle:: gotobeatenscript releaseall end -Std_MsgboxAutoclose:: @ 8271494 +Std_MsgboxAutoclose:: message 0x0 waitmessage waitbuttonpress diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index 34d0462bbe..f3ba5f035a 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -1,4 +1,4 @@ -TrainerHill_OnResume: @ 82C8336 +TrainerHill_OnResume: setvar VAR_TEMP_2, 0 trainerhill_resumetimer frontier_get FRONTIER_DATA_BATTLE_OUTCOME @@ -10,27 +10,29 @@ TrainerHill_OnResume: @ 82C8336 goto_if_eq TrainerHill_1F_EventScript_Lost end -TrainerHill_OnWarp: @ 82C8372 +TrainerHill_OnWarp: map_script_2 VAR_TEMP_3, 0, TrainerHill_1F_EventScript_DummyOnWarp .2byte 0 -TrainerHill_1F_EventScript_DummyOnWarp:: @ 82C837C +TrainerHill_1F_EventScript_DummyOnWarp:: setvar VAR_TEMP_3, 1 -@ forced stop +.ifdef BUGFIX + end @ Missing end. By chance, the next byte (0x02 of VAR_TEMP_2) is also the id for the end cmd +.endif -TrainerHill_OnFrame: @ 82C8381 +TrainerHill_OnFrame: map_script_2 VAR_TEMP_2, 0, TrainerHill_1F_EventScript_DummyWarpToEntranceCounter map_script_2 VAR_TEMP_1, 1, TrainerHill_EventScript_WarpToEntranceCounter .2byte 0 -EventScript_TrainerHillTimer:: @ 82C8393 +EventScript_TrainerHillTimer:: lockall trainerhill_gettime msgbox TrainerHill_Entrance_Text_ChallengeTime, MSGBOX_DEFAULT releaseall end -TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: @ 82C83A6 +TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: setvar VAR_TEMP_2, 1 trainerhill_getusingereader compare VAR_RESULT, TRUE @ VAR_RESULT always FALSE here @@ -38,30 +40,30 @@ TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: @ 82C83A6 end @ Never reached -TrainerHill_1F_EventScript_WarpSilentToEntranceCounter:: @ 82C83BF +TrainerHill_1F_EventScript_WarpSilentToEntranceCounter:: warpsilent MAP_TRAINER_HILL_ENTRANCE, 255, 9, 6 waitstate end -TrainerHill_1F_EventScript_Lost:: @ 82C83C9 +TrainerHill_1F_EventScript_Lost:: trainerhill_settrainerflags trainerhill_lost setvar VAR_TEMP_1, 1 end -TrainerHill_EventScript_WarpToEntranceCounter:: @ 82C83DF +TrainerHill_EventScript_WarpToEntranceCounter:: setvar VAR_TEMP_1, 0 warp MAP_TRAINER_HILL_ENTRANCE, 255, 9, 6 waitstate end @ Unused -TrainerHill_1F_Movement_SetInvisible:: @ 82C83EE +TrainerHill_1F_Movement_SetInvisible:: set_invisible step_end @ TRAINER_PHILLIP is an actual Trainer on the SS Tidal, but is used as a placeholder here -TrainerHill_EventScript_TrainerBattle:: @ 82C83F0 +TrainerHill_EventScript_TrainerBattle:: trainerbattle TRAINER_BATTLE_HILL, TRAINER_PHILLIP, 0, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText trainerhill_postbattletext waitmessage diff --git a/data/scripts/trainer_script.inc b/data/scripts/trainer_script.inc index c77e628ee5..2a2384c667 100644 --- a/data/scripts/trainer_script.inc +++ b/data/scripts/trainer_script.inc @@ -1,4 +1,4 @@ -Std_RegisteredInMatchCall:: @ 82742C9 +Std_RegisteredInMatchCall:: buffertrainerclassname 0, VAR_0x8000 buffertrainername 1, VAR_0x8000 closemessage @@ -10,14 +10,14 @@ Std_RegisteredInMatchCall:: @ 82742C9 delay 30 return -EventScript_TryGetTrainerScript:: @ 82742E6 +EventScript_TryGetTrainerScript:: special ShouldTryGetTrainerScript compare VAR_RESULT, 1 goto_if_eq EventScript_GotoTrainerScript releaseall end -EventScript_GotoTrainerScript:: @ 82742F6 +EventScript_GotoTrainerScript:: gotobeatenscript releaseall end diff --git a/data/scripts/tv.inc b/data/scripts/tv.inc index a2d5473b19..14f3ade48d 100644 --- a/data/scripts/tv.inc +++ b/data/scripts/tv.inc @@ -1,21 +1,21 @@ -EventScript_TV:: @ 827EE0B +EventScript_TV:: lockall incrementgamestat GAME_STAT_WATCHED_TV special ResetTVShowState - specialvar VAR_RESULT, CheckForBigMovieOrEmergencyNewsOnTV - compare VAR_RESULT, 2 + specialvar VAR_RESULT, CheckForPlayersHouseNews + compare VAR_RESULT, PLAYERS_HOUSE_TV_MOVIE goto_if_eq EventScript_PlayersHouseMovie - compare VAR_RESULT, 1 + compare VAR_RESULT, PLAYERS_HOUSE_TV_LATI goto_if_eq EventScript_PlayersHouseLatiNewsFlash goto_if_unset FLAG_SYS_TV_START, EventScript_MomDadMightLikeThis1 goto_if_set FLAG_SYS_TV_WATCH, EventScript_MomDadMightLikeThis1 - specialvar VAR_RESULT, IsTVShowInSearchOfTrainersAiring + specialvar VAR_RESULT, IsGabbyAndTyShowOnTheAir compare VAR_RESULT, TRUE goto_if_eq EventScript_DoInSearchOfTrainers goto EventScript_TryDoPokeNews end -EventScript_TryDoTVShow:: @ 827EE54 +EventScript_TryDoTVShow:: specialvar VAR_0x8004, GetRandomActiveShowIdx compare VAR_0x8004, 255 goto_if_eq EventScript_MomDadMightLikeThis2 @@ -28,14 +28,14 @@ EventScript_TryDoTVShow:: @ 827EE54 goto_if_ne EventScript_DoTVShow end -EventScript_MomDadMightLikeThis1:: @ 827EE8A +EventScript_MomDadMightLikeThis1:: special GetMomOrDadStringForTVMessage msgbox gText_MomOrDadMightLikeThisProgram, MSGBOX_DEFAULT special TurnOffTVScreen releaseall end -EventScript_PlayersHouseMovie:: @ 827EE9A +EventScript_PlayersHouseMovie:: msgbox PlayersHouse_1F_Text_TheresAMovieOnTV, MSGBOX_DEFAULT releaseall end @@ -43,7 +43,7 @@ EventScript_PlayersHouseMovie:: @ 827EE9A @ special InitRoamer is a junk call. Its input var (VAR_0x8004) hasn't been set, and @ It's called again when Mom actually asks for the color, overwriting @ whatever it does here. -EventScript_PlayersHouseLatiNewsFlash:: @ 827EEA4 +EventScript_PlayersHouseLatiNewsFlash:: msgbox PlayersHouse_1F_Text_LatiEmergencyNewsFlash, MSGBOX_DEFAULT special InitRoamer clearflag FLAG_SYS_TV_LATIAS_LATIOS @@ -52,7 +52,7 @@ EventScript_PlayersHouseLatiNewsFlash:: @ 827EEA4 releaseall end -EventScript_DoTVShow:: @ 827EEBA +EventScript_DoTVShow:: special DoTVShow waitmessage waitbuttonpress @@ -61,19 +61,19 @@ EventScript_DoTVShow:: @ 827EEBA goto EventScript_TurnOffTV end -EventScript_TurnOffTV:: @ 827EED0 +EventScript_TurnOffTV:: special TurnOffTVScreen setflag FLAG_SYS_TV_WATCH releaseall end -EventScript_MomDadMightLikeThis2:: @ 827EED8 +EventScript_MomDadMightLikeThis2:: special GetMomOrDadStringForTVMessage msgbox gText_MomOrDadMightLikeThisProgram, MSGBOX_DEFAULT goto EventScript_TurnOffTV end -EventScript_TryDoPokeNews:: @ 827EEE9 +EventScript_TryDoPokeNews:: special DoPokeNews compare VAR_RESULT, FALSE goto_if_eq EventScript_TryDoTVShow @@ -82,7 +82,7 @@ EventScript_TryDoPokeNews:: @ 827EEE9 goto EventScript_TurnOffTV end -EventScript_DoInSearchOfTrainers:: @ 827EEFF +EventScript_DoInSearchOfTrainers:: special DoTVShowInSearchOfTrainers waitmessage waitbuttonpress diff --git a/data/specials.inc b/data/specials.inc index fe596a0f09..9b12674044 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -7,7 +7,7 @@ .set __special__, 0 .align 2 -gSpecials:: @ 81DBA64 +gSpecials:: def_special HealPlayerParty def_special SetCableClubWarp def_special DoCableClubWarp @@ -66,8 +66,8 @@ gSpecials:: @ 81DBA64 def_special ShowTrainerIntroSpeech def_special ShowTrainerCantBattleSpeech def_special GetTrainerFlag - def_special EndTrainerApproach - def_special SetUpTrainerEncounterMusic + def_special DoTrainerApproach + def_special PlayTrainerEncounterMusic def_special ShouldTryRematchBattle def_special IsTrainerReadyForRematch def_special BattleSetup_StartRematchBattle @@ -83,20 +83,20 @@ gSpecials:: @ 81DBA64 def_special IsLeadMonNicknamedOrNotEnglish def_special SetContestCategoryStringVarForInterview def_special GetNextActiveShowIfMassOutbreak - def_special TV_IsScriptShowKindAlreadyInQueue - def_special CheckForBigMovieOrEmergencyNewsOnTV + def_special IsTVShowAlreadyInQueue + def_special CheckForPlayersHouseNews def_special GetMomOrDadStringForTVMessage def_special ResetTVShowState def_special GetContestWinnerId def_special GetContestPlayerId - def_special sub_80F8814 + def_special GetNpcContestantLocalId def_special BufferContestWinnerTrainerName def_special BufferContestWinnerMonName def_special BufferContestTrainerAndMonNames def_special GetContestMonConditionRanking def_special SetContestTrainerGfxIds def_special TryEnterContestMon - def_special sub_80F8970 + def_special GetContestantNamesAtRank def_special SetLinkContestPlayerGfx def_special GetContestMonCondition def_special HasMonWonThisContestBefore @@ -138,7 +138,7 @@ gSpecials:: @ 81DBA64 def_special BufferMonNickname def_special IsMonOTIDNotPlayers def_special BufferTrendyPhraseString - def_special TrendyPhraseIsOld + def_special IsTrendyPhraseBoring def_special BufferDeepLinkPhrase def_special GetDewfordHallPaintingNameIndex def_special SwapRegisteredBike @@ -147,9 +147,9 @@ gSpecials:: @ 81DBA64 def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot def_special ShouldReadyContestArtist def_special SaveMuseumContestPainting - def_special DoesContestCategoryHaveWinner - def_special CountPlayerContestPaintings - def_special ShowContestWinnerPainting + def_special DoesContestCategoryHaveMuseumPainting + def_special CountPlayerMuseumPaintings + def_special ShowContestPainting @ Unused, redundant with showcontestpainting command def_special MauvilleGymSetDefaultBarriers def_special MauvilleGymPressSwitch def_special ShowFieldMessageStringVar4 @@ -187,10 +187,10 @@ gSpecials:: @ 81DBA64 def_special GabbyAndTyAfterInterview def_special GabbyAndTyBeforeInterview def_special DoTVShowInSearchOfTrainers - def_special IsTVShowInSearchOfTrainersAiring + def_special IsGabbyAndTyShowOnTheAir def_special GabbyAndTyGetLastQuote def_special GabbyAndTyGetLastBattleTrivia - def_special GabbyAndTySetScriptVarsToObjectEventLocalIds + def_special GetGabbyAndTyLocalIds def_special GetBattleOutcome def_special GetDaycareMonNicknames def_special GetDaycareState @@ -324,7 +324,7 @@ gSpecials:: @ 81DBA64 def_special StartGroudonKyogreBattle def_special BattleSetup_StartLegendaryBattle def_special StartRegiBattle - def_special SetUpTrainerMovement + def_special SetTrainerFacingDirection def_special DoSealedChamberShakingEffect2 def_special FoundBlackGlasses def_special StartDroughtWeatherBlend @@ -354,7 +354,7 @@ gSpecials:: @ 81DBA64 def_special SetChampionSaveWarp def_special TryPutTreasureInvestigatorsOnAir def_special TryPutLotteryWinnerReportOnAir - def_special TrySetUpTrainerFanClubSpecial + def_special TryPutTrainerFanClubOnAir def_special ShouldHideFanClubInterviewer def_special ShowGlassWorkshopMenu def_special PutFanClubSpecialOnTheAir @@ -490,7 +490,7 @@ gSpecials:: @ 81DBA64 def_special sub_813AF48 def_special DoDeoxysRockInteraction def_special SetDeoxysRockPalette - def_special CreateObedientEnemyMon + def_special CreateEventLegalEnemyMon def_special StartMirageTowerDisintegration def_special StartMirageTowerShake def_special StartMirageTowerFossilFallAndSink @@ -514,7 +514,7 @@ gSpecials:: @ 81DBA64 def_special SetMewAboveGrass def_special ShouldDistributeEonTicket def_special LinkRetireStatusWithBattleTowerPartner - def_special sub_813B534 + def_special BattleTowerReconnectLink def_special CallTrainerHillFunction def_special Script_DoRayquazaScene @ Listed twice def_special LoopWingFlapSE diff --git a/data/text/abnormal_weather.inc b/data/text/abnormal_weather.inc index 42e61e68db..f7193121e2 100644 --- a/data/text/abnormal_weather.inc +++ b/data/text/abnormal_weather.inc @@ -1,7 +1,7 @@ -gText_AbnormalWeatherEnded_Rain:: @ 8273656 +gText_AbnormalWeatherEnded_Rain:: .string "The massive downpour appears to\n" .string "have stopped…$" -gText_AbnormalWeatherEnded_Sun:: @ 8273684 +gText_AbnormalWeatherEnded_Sun:: .string "The intense sunshine appears to\n" .string "have subsided…$" diff --git a/data/text/apprentice.inc b/data/text/apprentice.inc index 7d5bab1986..6688a0c697 100644 --- a/data/text/apprentice.inc +++ b/data/text/apprentice.inc @@ -1,68 +1,68 @@ -gText_ApprenticeChallenge0:: @ 82B6EA5 +gText_ApprenticeChallenge0:: .string "Um, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" .string "Snivel… This tension is getting to me…$" -gText_ApprenticeChallenge1:: @ 82B6EEC +gText_ApprenticeChallenge1:: .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" .string "Here we come!$" -gText_ApprenticeChallenge2:: @ 82B6F16 +gText_ApprenticeChallenge2:: .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}!\n" .string "Accept my challenge!$" -gText_ApprenticeChallenge3:: @ 82B6F4C +gText_ApprenticeChallenge3:: .string "Um… I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice…\n" .string "Do you think someone like me can win?$" -gText_ApprenticeChallenge4:: @ 82B6F92 +gText_ApprenticeChallenge4:: .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" .string "I'll let you challenge me!$" -gText_ApprenticeChallenge5:: @ 82B6FC9 +gText_ApprenticeChallenge5:: .string "I'm horribly busy, but I also happen\n" .string "to be {STR_VAR_1}'s no. {STR_VAR_2} apprentice.$" -gText_ApprenticeChallenge6:: @ 82B700C +gText_ApprenticeChallenge6:: .string "I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" .string "Glad to meet you!$" -gText_ApprenticeChallenge7:: @ 82B703A +gText_ApprenticeChallenge7:: .string "I serve as {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" .string "May I begin?$" -gText_ApprenticeChallenge8:: @ 82B706A +gText_ApprenticeChallenge8:: .string "Eek! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" .string "I'll do my best!$" -gText_ApprenticeChallenge9:: @ 82B709C +gText_ApprenticeChallenge9:: .string "Yeehaw! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" .string "Put 'em up!$" -gText_ApprenticeChallenge10:: @ 82B70CC +gText_ApprenticeChallenge10:: .string "I'm {STR_VAR_1}'s 1,000th apprentice!\n" .string "Actually, I'm no. {STR_VAR_2}! Here goes!$" -gText_ApprenticeChallenge11:: @ 82B710A +gText_ApprenticeChallenge11:: .string "Yeah, I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice!\n" .string "Let's get rockin' and a-rollin'!$" -gText_ApprenticeChallenge12:: @ 82B714D +gText_ApprenticeChallenge12:: .string "Yippee-yahoo! I'm what you call\n" .string "{STR_VAR_1}'s no. {STR_VAR_2} apprentice!$" -gText_ApprenticeChallenge13:: @ 82B7185 +gText_ApprenticeChallenge13:: .string "Cough! I'm {STR_VAR_1}'s no. {STR_VAR_2} apprentice.\n" .string "Good to meet you! Cough!$" -gText_ApprenticeChallenge14:: @ 82B71C1 +gText_ApprenticeChallenge14:: .string "This is nerve-racking…\n" .string "I'm the no. {STR_VAR_2} apprentice of {STR_VAR_1}.$" -gText_ApprenticeChallenge15:: @ 82B71F9 +gText_ApprenticeChallenge15:: .string "I am {STR_VAR_1}'s no. {STR_VAR_2} apprentice,\n" .string "and that's no lie.$" -gText_ApprenticePleaseTeach0:: @ 82B7229 +gText_ApprenticePleaseTeach0:: .string "Are you… {PLAYER}?\n" .string "Oh! Sniff…sob…\p" .string "Oh! S-sorry…\n" @@ -74,13 +74,13 @@ gText_ApprenticePleaseTeach0:: @ 82B7229 .string "Please, please, {PLAYER}!\n" .string "Please teach me about POKéMON!$" -gText_ApprenticeRejectTeaching0:: @ 82B731C +gText_ApprenticeRejectTeaching0:: .string "Oh… B-but…\n" .string "Snivel… Waaaaaaah!\p" .string "Please!\n" .string "I'm begging you, please!$" -gText_ApprenticeWhichLevelMode0:: @ 82B735B +gText_ApprenticeWhichLevelMode0:: .string "Oh, really? You will?\n" .string "Awesome! Wicked! Awoooh!\p" .string "Oh… I'm sorry…\n" @@ -90,7 +90,7 @@ gText_ApprenticeWhichLevelMode0:: @ 82B735B .string "Which would be better for me: Level 50\n" .string "or the Open Level?$" -gText_ApprenticeLevelModeThanks0:: @ 82B7423 +gText_ApprenticeLevelModeThanks0:: .string "{STR_VAR_1}?\n" .string "Waaaaah!\p" .string "Oh! I'm so sorry!\n" @@ -100,7 +100,7 @@ gText_ApprenticeLevelModeThanks0:: @ 82B7423 .string "Thank you so much!\l" .string "Please talk with me again!$" -gText_ApprenticePleaseTeach1:: @ 82B74C1 +gText_ApprenticePleaseTeach1:: .string "Wowee! You're {PLAYER}, aren't you?\n" .string "You're awesomely strong, aren't you?\p" .string "I'm {STR_VAR_1}!\n" @@ -109,25 +109,25 @@ gText_ApprenticePleaseTeach1:: @ 82B74C1 .string "Can you be my teacher and tell me\l" .string "lots about being a TRAINER?$" -gText_ApprenticeRejectTeaching1:: @ 82B756F +gText_ApprenticeRejectTeaching1:: .string "Aww, why?\n" .string "Oh, please? Pretty please?\l" .string "Please be my teacher, please!$" -gText_ApprenticeWhichLevelMode1:: @ 82B75B2 +gText_ApprenticeWhichLevelMode1:: .string "Yay! Great!\p" .string "The first thing I wanted to ask you is\n" .string "about the BATTLE TOWER!\p" .string "The Level 50 and Open Level Rooms…\n" .string "Which would be perfect for me?$" -gText_ApprenticeLevelModeThanks1:: @ 82B763F +gText_ApprenticeLevelModeThanks1:: .string "{STR_VAR_1}, huh? That's true!\n" .string "I'll do my best there!\p" .string "If we meet here again, please teach\n" .string "me something else, teacher!$" -gText_ApprenticePleaseTeach2:: @ 82B76AC +gText_ApprenticePleaseTeach2:: .string "Um… Are you {PLAYER}?\n" .string "My name is {STR_VAR_1}.\p" .string "I want to become a POKéMON TRAINER,\n" @@ -136,13 +136,13 @@ gText_ApprenticePleaseTeach2:: @ 82B76AC .string "advice because you're so famous.\p" .string "{PLAYER}, could you give me advice?$" -gText_ApprenticeRejectTeaching2:: @ 82B7772 +gText_ApprenticeRejectTeaching2:: .string "Oh, but…\p" .string "I sincerely want to become a POKéMON\n" .string "TRAINER!\p" .string "Please, can you answer my questions?$" -gText_ApprenticeWhichLevelMode2:: @ 82B77CE +gText_ApprenticeWhichLevelMode2:: .string "Thank you!\n" .string "Here's my first question right away!\p" .string "The BATTLE TOWER has two levels,\n" @@ -150,13 +150,13 @@ gText_ApprenticeWhichLevelMode2:: @ 82B77CE .string "Which level do you think is more\n" .string "suitable for me?$" -gText_ApprenticeLevelModeThanks2:: @ 82B7871 +gText_ApprenticeLevelModeThanks2:: .string "Oh, the {STR_VAR_1} challenge?\n" .string "Understood!\p" .string "If I have another question, I'll come\n" .string "back here for your advice!$" -gText_ApprenticePleaseTeach3:: @ 82B78D4 +gText_ApprenticePleaseTeach3:: .string "Oh? Huh? You're…\n" .string "No, that can't be true.\p" .string "There isn't any way that someone\n" @@ -180,7 +180,7 @@ gText_ApprenticePleaseTeach3:: @ 82B78D4 .string "…Or will you be so kind as to give\n" .string "me advice?$" -gText_ApprenticeRejectTeaching3:: @ 82B7B1A +gText_ApprenticeRejectTeaching3:: .string "I knew it…\p" .string "It had to happen because I'm such\n" .string "a really boring nobody…\p" @@ -191,7 +191,7 @@ gText_ApprenticeRejectTeaching3:: @ 82B7B1A .string "Please, will you be so kind as to give\n" .string "me advice?$" -gText_ApprenticeWhichLevelMode3:: @ 82B7C13 +gText_ApprenticeWhichLevelMode3:: .string "Really? I can't believe it!\n" .string "I can't believe you'll advise me!\l" .string "I… I'm so happy…\p" @@ -202,7 +202,7 @@ gText_ApprenticeWhichLevelMode3:: @ 82B7C13 .string "Which course do you think even I may\n" .string "have a chance at?$" -gText_ApprenticeLevelModeThanks3:: @ 82B7D18 +gText_ApprenticeLevelModeThanks3:: .string "{STR_VAR_1}? Okay!\n" .string "But do you really think someone like\l" .string "me would have a chance?\p" @@ -211,7 +211,7 @@ gText_ApprenticeLevelModeThanks3:: @ 82B7D18 .string "Thank you very much for spending\n" .string "time with someone like me.$" -gText_ApprenticePleaseTeach4:: @ 82B7DD4 +gText_ApprenticePleaseTeach4:: .string "Oh! You're {PLAYER}{KUN}, aren't you?\p" .string "I've heard that you're tough at\n" .string "POKéMON!\p" @@ -224,12 +224,12 @@ gText_ApprenticePleaseTeach4:: @ 82B7DD4 .string "I'm willing to listen to your advice.\n" .string "You'll agree, of course?$" -gText_ApprenticeRejectTeaching4:: @ 82B7EE5 +gText_ApprenticeRejectTeaching4:: .string "Huh? Why are you refusing me?\n" .string "It's me who's asking you!\l" .string "You have to reconsider!$" -gText_ApprenticeWhichLevelMode4:: @ 82B7F35 +gText_ApprenticeWhichLevelMode4:: .string "Okay, so there is this something.\n" .string "I want you to decide it for me.\p" .string "You know that the BATTLE TOWER has\n" @@ -237,7 +237,7 @@ gText_ApprenticeWhichLevelMode4:: @ 82B7F35 .string "Which do you think would be good\n" .string "for me, {PLAYER}{KUN}?$" -gText_ApprenticeLevelModeThanks4:: @ 82B7FE8 +gText_ApprenticeLevelModeThanks4:: .string "Okay, {STR_VAR_1} is suitable for me?\n" .string "Thank you!\p" .string "Knowing that you made the decision,\n" @@ -246,7 +246,7 @@ gText_ApprenticeLevelModeThanks4:: @ 82B7FE8 .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" -gText_ApprenticePleaseTeach5:: @ 82B8087 +gText_ApprenticePleaseTeach5:: .string "Oh, hi, there! {PLAYER}{KUN}!\n" .string "I know you because you're famous!\l" .string "Call me {STR_VAR_1}! Glad to meet you!\p" @@ -261,13 +261,13 @@ gText_ApprenticePleaseTeach5:: @ 82B8087 .string "So, {PLAYER}{KUN}, how about sharing your\l" .string "wisdom with me every so often?$" -gText_ApprenticeRejectTeaching5:: @ 82B822B +gText_ApprenticeRejectTeaching5:: .string "Oh, but, please?\n" .string "A guy like me needs someone like\l" .string "you, {PLAYER}{KUN}!\p" .string "Honestly, I need your advice!$" -gText_ApprenticeWhichLevelMode5:: @ 82B8286 +gText_ApprenticeWhichLevelMode5:: .string "Thank you! That's more like it!\n" .string "So, let's start with an easy one!\p" .string "You know about the BATTLE TOWER's\n" @@ -276,13 +276,13 @@ gText_ApprenticeWhichLevelMode5:: @ 82B8286 .string "Me being a busy guy, which one should\n" .string "I gear up for?$" -gText_ApprenticeLevelModeThanks5:: @ 82B8356 +gText_ApprenticeLevelModeThanks5:: .string "{STR_VAR_1}, huh? Okay, gotcha.\n" .string "I'll find time somehow and give it a go!\p" .string "…Whoops, I'd better go to work!\n" .string "Thanks! See you around!$" -gText_ApprenticePleaseTeach6:: @ 82B83CE +gText_ApprenticePleaseTeach6:: .string "No way! Uh-uh!\n" .string "Are you maybe the real {PLAYER}?\p" .string "A-hah! Awesome! I'm {STR_VAR_1},\n" @@ -296,12 +296,12 @@ gText_ApprenticePleaseTeach6:: @ 82B83CE .string "Isn't it a great idea?\n" .string "Please, I want your advice!$" -gText_ApprenticeRejectTeaching6:: @ 82B84FC +gText_ApprenticeRejectTeaching6:: .string "Ahahaha, you can pretend to be mean,\n" .string "but you can't fool me!\l" .string "You really mean okay, don't you?$" -gText_ApprenticeWhichLevelMode6:: @ 82B8559 +gText_ApprenticeWhichLevelMode6:: .string "Yay! I knew you'd have a big heart,\n" .string "{PLAYER}!\p" .string "What should I ask you first?\n" @@ -313,7 +313,7 @@ gText_ApprenticeWhichLevelMode6:: @ 82B8559 .string "Level 50 or Open Level?\n" .string "Which suits me more?$" -gText_ApprenticeLevelModeThanks6:: @ 82B8656 +gText_ApprenticeLevelModeThanks6:: .string "Oh-oh-oh!\n" .string "{STR_VAR_1}, you say!\l" .string "Thank you for a totally cool reply!\p" @@ -322,7 +322,7 @@ gText_ApprenticeLevelModeThanks6:: @ 82B8656 .string "Let's meet here again, okay?\n" .string "Thanks!$" -gText_ApprenticePleaseTeach7:: @ 82B86EA +gText_ApprenticePleaseTeach7:: .string "I beg your pardon, but…\n" .string "Are you {PLAYER}?\p" .string "I'm {STR_VAR_1}, and I am delighted to\n" @@ -335,7 +335,7 @@ gText_ApprenticePleaseTeach7:: @ 82B86EA .string "May I become your apprentice,\n" .string "{PLAYER}?$" -gText_ApprenticeRejectTeaching7:: @ 82B87DA +gText_ApprenticeRejectTeaching7:: .string "Oh…!\p" .string "… … … … … …\n" .string "… … … … … …\p" @@ -344,7 +344,7 @@ gText_ApprenticeRejectTeaching7:: @ 82B87DA .string "Please! Please say that you will\n" .string "accept me as your apprentice!$" -gText_ApprenticeWhichLevelMode7:: @ 82B887C +gText_ApprenticeWhichLevelMode7:: .string "Oh… I'm delighted!\p" .string "I don't wish to waste your time,\n" .string "so please advise me on this.\p" @@ -354,14 +354,14 @@ gText_ApprenticeWhichLevelMode7:: @ 82B887C .string "Which would be most suitable for me?\n" .string "Level 50 or Open Level?$" -gText_ApprenticeLevelModeThanks7:: @ 82B8957 +gText_ApprenticeLevelModeThanks7:: .string "{STR_VAR_1} is your choice!\n" .string "I see. I will do my best!\p" .string "Thank you, {PLAYER}.\n" .string "I hope I can count on you again.\l" .string "Please take care!$" -gText_ApprenticePleaseTeach8:: @ 82B89C6 +gText_ApprenticePleaseTeach8:: .string "Eek! Eek! {PLAYER}!\n" .string "You spoke to me!\l" .string "I… I'm overjoyed!\p" @@ -374,7 +374,7 @@ gText_ApprenticePleaseTeach8:: @ 82B89C6 .string "Please take me in as your apprentice!\n" .string "I want to learn from you!$" -gText_ApprenticeRejectTeaching8:: @ 82B8ACF +gText_ApprenticeRejectTeaching8:: .string "Waaaah!\n" .string "{PLAYER} turned me down…\l" .string "It… It's an invaluable experience!\p" @@ -382,7 +382,7 @@ gText_ApprenticeRejectTeaching8:: @ 82B8ACF .string "an affirmative answer this time!\p" .string "I beg you for your guidance!$" -gText_ApprenticeWhichLevelMode8:: @ 82B8B66 +gText_ApprenticeWhichLevelMode8:: .string "Hieeeeh! {PLAYER} said yes!\n" .string "{PLAYER} said yes!\p" .string "I won't be able to sleep tonight…\n" @@ -391,14 +391,14 @@ gText_ApprenticeWhichLevelMode8:: @ 82B8B66 .string "At the BATTLE TOWER, what is right\n" .string "for me, Level 50 or Open Level?$" -gText_ApprenticeLevelModeThanks8:: @ 82B8C20 +gText_ApprenticeLevelModeThanks8:: .string "{STR_VAR_1}! Perfectly understood!\n" .string "I understand perfectly!\l" .string "I'm deliriously delighted!\p" .string "I hope you'll be willing to teach me\n" .string "some more another time.$" -gText_ApprenticePleaseTeach9:: @ 82B8CAA +gText_ApprenticePleaseTeach9:: .string "Whoa! Could you be…\n" .string "Might you be… {PLAYER}{KUN}?!\l" .string "That strong and famous TRAINER?\l" @@ -411,13 +411,13 @@ gText_ApprenticePleaseTeach9:: @ 82B8CAA .string "So, there you have it, {PLAYER}{KUN}!\n" .string "Let me apprentice under you!$" -gText_ApprenticeRejectTeaching9:: @ 82B8DD3 +gText_ApprenticeRejectTeaching9:: .string "Gwaaaah!\n" .string "You're quite cool and tough…\p" .string "Don't be that way, please.\n" .string "I'm asking you!$" -gText_ApprenticeWhichLevelMode9:: @ 82B8E24 +gText_ApprenticeWhichLevelMode9:: .string "Oh, yeah! That's a solid reply!\n" .string "Excellent, I might add!\p" .string "So how about a first piece of advice\n" @@ -425,14 +425,14 @@ gText_ApprenticeWhichLevelMode9:: @ 82B8E24 .string "If I were to go, what would be better?\n" .string "Level 50 or Open Level?$" -gText_ApprenticeLevelModeThanks9:: @ 82B8ED5 +gText_ApprenticeLevelModeThanks9:: .string "Uh-huh, {STR_VAR_1} it is!\n" .string "OK, A-OK!\l" .string "I'll go show my mettle, like, jam!\p" .string "All right, I'll look to you as my mentor!\n" .string "Adios!$" -gText_ApprenticePleaseTeach10:: @ 82B8F45 +gText_ApprenticePleaseTeach10:: .string "Oh, hey, {PLAYER}{KUN}, right?\n" .string "The police were looking for you!\p" .string "… … …\n" @@ -445,7 +445,7 @@ gText_ApprenticePleaseTeach10:: @ 82B8F45 .string "So, how about you becoming my master\n" .string "about all things POKéMON?$" -gText_ApprenticeRejectTeaching10:: @ 82B905F +gText_ApprenticeRejectTeaching10:: .string "If you're going to act cold like that,\n" .string "I'll show you what I'll do!\p" .string "Waaah! Waaah! Waaah!\n" @@ -454,7 +454,7 @@ gText_ApprenticeRejectTeaching10:: @ 82B905F .string "Come on, will you please be\n" .string "my POKéMON master?$" -gText_ApprenticeWhichLevelMode10:: @ 82B910E +gText_ApprenticeWhichLevelMode10:: .string "Yippee!\n" .string "I'll buy you a boat for that!\p" .string "Of course I'm lying again!\n" @@ -465,7 +465,7 @@ gText_ApprenticeWhichLevelMode10:: @ 82B910E .string "level I should challenge…\p" .string "Can you decide for me, master?$" -gText_ApprenticeLevelModeThanks10:: @ 82B9204 +gText_ApprenticeLevelModeThanks10:: .string "Okay, so {STR_VAR_1} is better!\n" .string "I'll go to the other level, then!\p" .string "Just kidding!\n" @@ -473,7 +473,7 @@ gText_ApprenticeLevelModeThanks10:: @ 82B9204 .string "Thanks, master!\n" .string "I hope you'll keep teaching me!$" -gText_ApprenticePleaseTeach11:: @ 82B929C +gText_ApprenticePleaseTeach11:: .string "A-H-O-Y!\n" .string "And that spells ahoy, and it means hi!\p" .string "I'm {STR_VAR_1}, the rappin' SAILOR\n" @@ -491,13 +491,13 @@ gText_ApprenticePleaseTeach11:: @ 82B929C .string "Let's make that a celebration!\n" .string "Become my mentor for commemoration!$" -gText_ApprenticeRejectTeaching11:: @ 82B9438 +gText_ApprenticeRejectTeaching11:: .string "But!\n" .string "You have to work with me!\p" .string "Don't be such a tease!\n" .string "Become my mentor, please!$" -gText_ApprenticeWhichLevelMode11:: @ 82B9488 +gText_ApprenticeWhichLevelMode11:: .string "That's it!\n" .string "{PLAYER}, you've got the spirit!\p" .string "So here's my first question\n" @@ -507,13 +507,13 @@ gText_ApprenticeWhichLevelMode11:: @ 82B9488 .string "Level 50 and Open Level there be,\n" .string "which is the one that's good for me?$" -gText_ApprenticeLevelModeThanks11:: @ 82B9564 +gText_ApprenticeLevelModeThanks11:: .string "Okay, {STR_VAR_1} it is, you say!\n" .string "I'll go and take it on my way!\p" .string "If it's advice I ever need,\n" .string "{PLAYER}, your word I'll always heed!$" -gText_ApprenticePleaseTeach12:: @ 82B95D8 +gText_ApprenticePleaseTeach12:: .string "Say, hey, aren't you {PLAYER}?\n" .string "What should I do? Talk to you?\l" .string "Why not? I'm already talking to you!\p" @@ -529,13 +529,13 @@ gText_ApprenticePleaseTeach12:: @ 82B95D8 .string "{PLAYER}, let me be your underling!\n" .string "I want you to teach me everything!$" -gText_ApprenticeRejectTeaching12:: @ 82B9763 +gText_ApprenticeRejectTeaching12:: .string "You're turning me down, then?\n" .string "I'll just have to ask you again!\p" .string "{PLAYER}, I beg to be your underling!\n" .string "I need you to teach me everything!$" -gText_ApprenticeWhichLevelMode12:: @ 82B97E5 +gText_ApprenticeWhichLevelMode12:: .string "Lucky, yeah, woohoo!\n" .string "Should I pop a question to you?\p" .string "Since we're near the BATTLE TOWER,\n" @@ -543,14 +543,14 @@ gText_ApprenticeWhichLevelMode12:: @ 82B97E5 .string "Of the choices you see,\n" .string "which is the right one for me?$" -gText_ApprenticeLevelModeThanks12:: @ 82B989A +gText_ApprenticeLevelModeThanks12:: .string "If {STR_VAR_1} is what you suggest,\n" .string "it must be the very best!\p" .string "Well, {PLAYER}, I have to roam free,\n" .string "but don't you forget about me.\p" .string "See you again, my smart friend!$" -gText_ApprenticePleaseTeach13:: @ 82B992D +gText_ApprenticePleaseTeach13:: .string "Oh, hi! You there!\n" .string "Can I get you to massage my shoulder?\p" .string "…Yes, there! That's it!\n" @@ -565,12 +565,12 @@ gText_ApprenticePleaseTeach13:: @ 82B992D .string "Listen, can I get you to give me\n" .string "advice?$" -gText_ApprenticeRejectTeaching13:: @ 82B9A84 +gText_ApprenticeRejectTeaching13:: .string "Oh, why?\p" .string "I won't be a big bother, I promise!\n" .string "Please?$" -gText_ApprenticeWhichLevelMode13:: @ 82B9AB9 +gText_ApprenticeWhichLevelMode13:: .string "Thank you. Mighty good of you!\n" .string "…Cough! Cough!\p" .string "Oogh, I have to toughen up quick…\p" @@ -578,13 +578,13 @@ gText_ApprenticeWhichLevelMode13:: @ 82B9AB9 .string "right away, but what would be better\l" .string "for me? Level 50 or Open Level?$" -gText_ApprenticeLevelModeThanks13:: @ 82B9B76 +gText_ApprenticeLevelModeThanks13:: .string "Hm, all right. That's {STR_VAR_1}.\n" .string "I'll go there right away.\p" .string "I hope I can keep hitting you up for\n" .string "help--after all, you're my mentor!$" -gText_ApprenticePleaseTeach14:: @ 82B9BF2 +gText_ApprenticePleaseTeach14:: .string "Er… Um…\n" .string "{PLAYER}{KUN}…?\p" .string "Please, don't look at me that way.\n" @@ -601,13 +601,13 @@ gText_ApprenticePleaseTeach14:: @ 82B9BF2 .string "Could you become my teacher and\n" .string "give me advice?$" -gText_ApprenticeRejectTeaching14:: @ 82B9D83 +gText_ApprenticeRejectTeaching14:: .string "Please don't brush me off like this!\n" .string "I can't live with the humiliation.\p" .string "Please become my teacher!\n" .string "I need your advice!$" -gText_ApprenticeWhichLevelMode14:: @ 82B9DF9 +gText_ApprenticeWhichLevelMode14:: .string "Th-thank you…\p" .string "But please don't look at me like that.\n" .string "It makes me all flustered.\p" @@ -616,7 +616,7 @@ gText_ApprenticeWhichLevelMode14:: @ 82B9DF9 .string "At the BATTLE TOWER…\n" .string "Which level should I attempt?$" -gText_ApprenticeLevelModeThanks14:: @ 82B9EAA +gText_ApprenticeLevelModeThanks14:: .string "Oh… Okay!\n" .string "I'll try my hand at that.\p" .string "I hope I can make a valiant challenge\n" @@ -625,7 +625,7 @@ gText_ApprenticeLevelModeThanks14:: @ 82B9EAA .string "If we meet again, I hope you will be\l" .string "as helpful.$" -gText_ApprenticePleaseTeach15:: @ 82B9F55 +gText_ApprenticePleaseTeach15:: .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really real?\p" .string "You may call me {STR_VAR_1}.\p" @@ -637,7 +637,7 @@ gText_ApprenticePleaseTeach15:: @ 82B9F55 .string "I merely want you to recognize me\l" .string "as your apprentice.$" -gText_ApprenticeRejectTeaching15:: @ 82BA084 +gText_ApprenticeRejectTeaching15:: .string "Oh?\n" .string "But what would compel you to refuse?\p" .string "I apologize for being skeptical about\n" @@ -645,7 +645,7 @@ gText_ApprenticeRejectTeaching15:: @ 82BA084 .string "Please accept my apology and\n" .string "accept me as your apprentice.$" -gText_ApprenticeWhichLevelMode15:: @ 82BA11D +gText_ApprenticeWhichLevelMode15:: .string "You really are accepting me?\n" .string "I don't wish to celebrate prematurely.\p" .string "If it is true, I apologize.\n" @@ -654,7 +654,7 @@ gText_ApprenticeWhichLevelMode15:: @ 82BA11D .string "what would be worthy of me?\l" .string "Level 50 or Open Level?$" -gText_ApprenticeLevelModeThanks15:: @ 82BA1F3 +gText_ApprenticeLevelModeThanks15:: .string "{STR_VAR_1}?\n" .string "Are you certain?\p" .string "I see. If that's the case, that's fine.\n" @@ -663,7 +663,7 @@ gText_ApprenticeLevelModeThanks15:: @ 82BA1F3 .string "me that you have accepted me.\p" .string "Let us meet again!$" -gText_ApprenticeWhatHeldItem0:: @ 82BA2A3 +gText_ApprenticeWhatHeldItem0:: .string "Sigh… Sob…\n" .string "Oh, {PLAYER}!\p" .string "I'm all tangled up in a dilemma\n" @@ -673,30 +673,30 @@ gText_ApprenticeWhatHeldItem0:: @ 82BA2A3 .string "Please tell me, {PLAYER}.\n" .string "What item should I make it hold?$" -gText_ApprenticeHoldNothing0:: @ 82BA34E +gText_ApprenticeHoldNothing0:: .string "Oh, really? I shouldn't make\n" .string "my {STR_VAR_1} hold anything?$" -gText_ApprenticeThanksNoHeldItem0:: @ 82BA380 +gText_ApprenticeThanksNoHeldItem0:: .string "Oh, okay! I'm delighted it's settled!\n" .string "Awesome! Wicked! Awoooh!\p" .string "Thank you so much!$" -gText_ApprenticeThanksHeldItem0:: @ 82BA3D2 +gText_ApprenticeThanksHeldItem0:: .string "Oh, I'm so glad…\n" .string "I think I have that {STR_VAR_1}, too.\p" .string "I'm delighted it's settled!\n" .string "Awesome! Wicked! Awoooh!\p" .string "Thank you so much!$" -gText_ApprenticeItemAlreadyRecommended0:: @ 82BA448 +gText_ApprenticeItemAlreadyRecommended0:: .string "Waaaah! Please don't be mean!\p" .string "That item {STR_VAR_1} was already\n" .string "recommended to me before, sob…\p" .string "Or do you mean I shouldn't make\n" .string "my {STR_VAR_2} hold anything?$" -gText_ApprenticeWhatHeldItem1:: @ 82BA4D3 +gText_ApprenticeWhatHeldItem1:: .string "Yay! It's {PLAYER}!\n" .string "Great! I wanted to ask you something!\p" .string "Do you make your POKéMON hold items?\n" @@ -705,47 +705,47 @@ gText_ApprenticeWhatHeldItem1:: @ 82BA4D3 .string "{STR_VAR_1} to hold?\p" .string "What do you think?$" -gText_ApprenticeHoldNothing1:: @ 82BA58C +gText_ApprenticeHoldNothing1:: .string "Huh? You mean my {STR_VAR_1} doesn't\n" .string "have to hold anything?$" -gText_ApprenticeThanksNoHeldItem1:: @ 82BA5BF +gText_ApprenticeThanksNoHeldItem1:: .string "Oh, I get it! I'll do that!\n" .string "Thanks for teaching me!$" -gText_ApprenticeThanksHeldItem1:: @ 82BA5F3 +gText_ApprenticeThanksHeldItem1:: .string "Oh, wow! One {STR_VAR_1}, huh?\n" .string "Okay, I'll do that!\p" .string "Thanks for teaching me!$" -gText_ApprenticeItemAlreadyRecommended1:: @ 82BA635 +gText_ApprenticeItemAlreadyRecommended1:: .string "Oh, uh, no, that's not what I meant.\n" .string "I want to know about a different item\l" .string "than the ones I already know.\p" .string "Or do you mean that my POKéMON doesn't\n" .string "have to hold anything this time?$" -gText_ApprenticeWhatHeldItem2:: @ 82BA6E6 +gText_ApprenticeWhatHeldItem2:: .string "{PLAYER}, hello!\n" .string "It's about my {STR_VAR_1}…\p" .string "I want to make it hold a good item.\n" .string "What would be good for it?$" -gText_ApprenticeHoldNothing2:: @ 82BA742 +gText_ApprenticeHoldNothing2:: .string "Oh, then my {STR_VAR_1} doesn't have\n" .string "to hold anything?$" -gText_ApprenticeThanksNoHeldItem2:: @ 82BA770 +gText_ApprenticeThanksNoHeldItem2:: .string "Okay, I got it!\n" .string "See you again!$" -gText_ApprenticeThanksHeldItem2:: @ 82BA78F +gText_ApprenticeThanksHeldItem2:: .string "Oh, the item {STR_VAR_1}?\n" .string "Understood!\p" .string "I'll do my best to find one!\n" .string "See you again!$" -gText_ApprenticeItemAlreadyRecommended2:: @ 82BA7D8 +gText_ApprenticeItemAlreadyRecommended2:: .string "Somebody taught me about\n" .string "the {STR_VAR_1} already.\p" .string "I want my POKéMON to hold a different\n" @@ -753,7 +753,7 @@ gText_ApprenticeItemAlreadyRecommended2:: @ 82BA7D8 .string "Or do you think {STR_VAR_2} doesn't\n" .string "have to hold anything?$" -gText_ApprenticeWhatHeldItem3:: @ 82BA867 +gText_ApprenticeWhatHeldItem3:: .string "Hello, {PLAYER}…\n" .string "I'm sorry to disturb you, but I have\l" .string "something else I wanted to ask you.\p" @@ -764,23 +764,23 @@ gText_ApprenticeWhatHeldItem3:: @ 82BA867 .string "{PLAYER}, please, could you decide\n" .string "for me?$" -gText_ApprenticeHoldNothing3:: @ 82BA96B +gText_ApprenticeHoldNothing3:: .string "A POKéMON belonging to someone like me\n" .string "would be better off without an item?$" -gText_ApprenticeThanksNoHeldItem3:: @ 82BA9B7 +gText_ApprenticeThanksNoHeldItem3:: .string "I understand…\n" .string "You're saying I shouldn't rely on items.\l" .string "I'll do my best not to!\p" .string "Thank you very much!$" -gText_ApprenticeThanksHeldItem3:: @ 82BAA1B +gText_ApprenticeThanksHeldItem3:: .string "The item {STR_VAR_1}, okay.\n" .string "I'm not sure if I can get one…\l" .string "No! I'll do my best to get it.\p" .string "Thank you very much!$" -gText_ApprenticeItemAlreadyRecommended3:: @ 82BAA81 +gText_ApprenticeItemAlreadyRecommended3:: .string "Oh, but…\n" .string "I think I've heard about that before…\p" .string "Is it maybe because I haven't handled\n" @@ -788,7 +788,7 @@ gText_ApprenticeItemAlreadyRecommended3:: @ 82BAA81 .string "Or do you mean I shouldn't make\n" .string "my {STR_VAR_2} hold anything?$" -gText_ApprenticeWhatHeldItem4:: @ 82BAB22 +gText_ApprenticeWhatHeldItem4:: .string "Oh, {PLAYER}{KUN}.\n" .string "There's something I wanted to ask you.\p" .string "You know how you decided which\n" @@ -800,11 +800,11 @@ gText_ApprenticeWhatHeldItem4:: @ 82BAB22 .string "What would be good? I want to make\n" .string "my {STR_VAR_1} hold something.$" -gText_ApprenticeHoldNothing4:: @ 82BAC43 +gText_ApprenticeHoldNothing4:: .string "Oh! So my {STR_VAR_1} should do\n" .string "the best it can empty-handed?$" -gText_ApprenticeThanksNoHeldItem4:: @ 82BAC78 +gText_ApprenticeThanksNoHeldItem4:: .string "If you think that's best, I'll do that.\p" .string "Knowing that you made the decision,\n" .string "{PLAYER}{KUN}, I won't be so upset if\l" @@ -812,7 +812,7 @@ gText_ApprenticeThanksNoHeldItem4:: @ 82BAC78 .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" -gText_ApprenticeThanksHeldItem4:: @ 82BAD17 +gText_ApprenticeThanksHeldItem4:: .string "The item {STR_VAR_1}, huh?\n" .string "Not bad. I'll use it!\p" .string "Knowing that you made the decision,\n" @@ -821,14 +821,14 @@ gText_ApprenticeThanksHeldItem4:: @ 82BAD17 .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" -gText_ApprenticeItemAlreadyRecommended4:: @ 82BADB6 +gText_ApprenticeItemAlreadyRecommended4:: .string "Huh? What are you saying?\n" .string "You told me about the {STR_VAR_1}\l" .string "already before.\p" .string "Or do you mean my {STR_VAR_2} should\n" .string "do the best it can empty-handed?$" -gText_ApprenticeWhatHeldItem5:: @ 82BAE36 +gText_ApprenticeWhatHeldItem5:: .string "Yo, {PLAYER}{KUN}!\p" .string "We're both busy, but we seem to run\n" .string "into each other often anyway!\p" @@ -840,31 +840,31 @@ gText_ApprenticeWhatHeldItem5:: @ 82BAE36 .string "giving me advice on what I should make\l" .string "my {STR_VAR_1} hold?$" -gText_ApprenticeHoldNothing5:: @ 82BAF4E +gText_ApprenticeHoldNothing5:: .string "Oh, so me being a busy guy, you say\n" .string "my {STR_VAR_1} doesn't need anything?$" -gText_ApprenticeThanksNoHeldItem5:: @ 82BAF8F +gText_ApprenticeThanksNoHeldItem5:: .string "Okay, gotcha.\n" .string "I won't need any time for that.\p" .string "Thanks today!\n" .string "See you around!$" -gText_ApprenticeThanksHeldItem5:: @ 82BAFDB +gText_ApprenticeThanksHeldItem5:: .string "Okay, gotcha.\n" .string "I'll find time somehow and find\l" .string "that {STR_VAR_1} you recommended.\p" .string "I'm glad I met a good mentor in you.\n" .string "Thanks! See you around!$" -gText_ApprenticeItemAlreadyRecommended5:: @ 82BB05F +gText_ApprenticeItemAlreadyRecommended5:: .string "Huh? I already know about\n" .string "that {STR_VAR_1}.\p" .string "Oh, right, I get it.\n" .string "So me being a busy guy, you say\l" .string "my {STR_VAR_2} doesn't need anything?$" -gText_ApprenticeWhatHeldItem6:: @ 82BB0D4 +gText_ApprenticeWhatHeldItem6:: .string "Hiya, {PLAYER}! It's me!\n" .string "I need to tap your mind again today.\l" .string "Please, I need your advice!\p" @@ -873,18 +873,18 @@ gText_ApprenticeWhatHeldItem6:: @ 82BB0D4 .string "If I want to make my {STR_VAR_1} hold\n" .string "an item, what should it be?$" -gText_ApprenticeHoldNothing6:: @ 82BB18C +gText_ApprenticeHoldNothing6:: .string "Is that right? My {STR_VAR_1} doesn't\n" .string "need to hold an item, you're saying.$" -gText_ApprenticeThanksNoHeldItem6:: @ 82BB1CE +gText_ApprenticeThanksNoHeldItem6:: .string "Okay, that's what I'll do!\p" .string "I guess that's about all I wanted\n" .string "to ask you today.\p" .string "Let's meet here again, okay?\n" .string "Thanks!$" -gText_ApprenticeThanksHeldItem6:: @ 82BB242 +gText_ApprenticeThanksHeldItem6:: .string "Uh-huh! One {STR_VAR_1}.\n" .string "What a cool choice!\l" .string "I'll definitely try that!\p" @@ -893,7 +893,7 @@ gText_ApprenticeThanksHeldItem6:: @ 82BB242 .string "Let's meet here again, okay?\n" .string "Thanks!$" -gText_ApprenticeItemAlreadyRecommended6:: @ 82BB2D9 +gText_ApprenticeItemAlreadyRecommended6:: .string "Ahahah! That's silly!\n" .string "You already told me about that\l" .string "{STR_VAR_1} before!\p" @@ -901,7 +901,7 @@ gText_ApprenticeItemAlreadyRecommended6:: @ 82BB2D9 .string "Oh, wait! My {STR_VAR_2} doesn't\n" .string "need to hold an item, you're saying.$" -gText_ApprenticeWhatHeldItem7:: @ 82BB370 +gText_ApprenticeWhatHeldItem7:: .string "Hello, {PLAYER}. I hope you've been\n" .string "keeping well.\p" .string "May I approach you for advice?\p" @@ -915,31 +915,31 @@ gText_ApprenticeWhatHeldItem7:: @ 82BB370 .string "It would please me if you could decide\n" .string "what would be right for my POKéMON…$" -gText_ApprenticeHoldNothing7:: @ 82BB4C3 +gText_ApprenticeHoldNothing7:: .string "In other words… My POKéMON has\n" .string "no need to hold an item?$" -gText_ApprenticeThanksNoHeldItem7:: @ 82BB4FB +gText_ApprenticeThanksNoHeldItem7:: .string "I understand clearly now!\n" .string "I will keep trying like this.\p" .string "Thank you, {PLAYER}.\n" .string "I hope I can count on you again.\l" .string "Please take care!$" -gText_ApprenticeThanksHeldItem7:: @ 82BB575 +gText_ApprenticeThanksHeldItem7:: .string "One {STR_VAR_1} it is!\n" .string "I will order it right away.\p" .string "Thank you, {PLAYER}.\n" .string "I hope I can count on you again.\l" .string "Please take care!$" -gText_ApprenticeItemAlreadyRecommended7:: @ 82BB5E1 +gText_ApprenticeItemAlreadyRecommended7:: .string "You've already told me about that,\n" .string "and I already have it.\p" .string "Or are you saying… My POKéMON has\n" .string "no need to hold an item?$" -gText_ApprenticeWhatHeldItem8:: @ 82BB656 +gText_ApprenticeWhatHeldItem8:: .string "Eek! {PLAYER}!\n" .string "I… I'm overjoyed to see you again!\p" .string "Oh-oh-oh! There's something I just\n" @@ -947,17 +947,17 @@ gText_ApprenticeWhatHeldItem8:: @ 82BB656 .string "Please decide what my {STR_VAR_1}\n" .string "should be holding!$" -gText_ApprenticeHoldNothing8:: @ 82BB6E5 +gText_ApprenticeHoldNothing8:: .string "Oh, wow! I didn't expect that answer!\n" .string "So, a hold item isn't necessary?$" -gText_ApprenticeThanksNoHeldItem8:: @ 82BB72C +gText_ApprenticeThanksNoHeldItem8:: .string "Perfectly understood!\n" .string "I'll keep at this without an item!\p" .string "I hope you'll be willing to teach me\n" .string "some more another time.$" -gText_ApprenticeThanksHeldItem8:: @ 82BB7A2 +gText_ApprenticeThanksHeldItem8:: .string "{STR_VAR_1}! I'll use that!\p" .string "Um… Could it be, {PLAYER}, you also\n" .string "make your POKéMON hold that item?\p" @@ -965,14 +965,14 @@ gText_ApprenticeThanksHeldItem8:: @ 82BB7A2 .string "I hope you'll be willing to teach me\l" .string "some more another time.$" -gText_ApprenticeItemAlreadyRecommended8:: @ 82BB84A +gText_ApprenticeItemAlreadyRecommended8:: .string "Oh? You recommended that\n" .string "{STR_VAR_1} before, too.\p" .string "Or is it the best thing to hold?\n" .string "Or do you mean that my {STR_VAR_2}\l" .string "doesn't need anything to hold?$" -gText_ApprenticeWhatHeldItem9:: @ 82BB8CD +gText_ApprenticeWhatHeldItem9:: .string "Hola!\n" .string "My maestro, {PLAYER}{KUN}!\p" .string "I want to hit you up for advice on\n" @@ -982,31 +982,31 @@ gText_ApprenticeWhatHeldItem9:: @ 82BB8CD .string "Don't be shy now.\n" .string "Let's blurt it out!$" -gText_ApprenticeHoldNothing9:: @ 82BB970 +gText_ApprenticeHoldNothing9:: .string "Oh? So, you're saying my {STR_VAR_1}\n" .string "can win without holding any item?$" -gText_ApprenticeThanksNoHeldItem9:: @ 82BB9AE +gText_ApprenticeThanksNoHeldItem9:: .string "Si, bueno!\n" .string "I'll give it my best shot, like, slam!\p" .string "All right, thanks, as always!\n" .string "Adios!$" -gText_ApprenticeThanksHeldItem9:: @ 82BBA05 +gText_ApprenticeThanksHeldItem9:: .string "Uh-huh, that's one {STR_VAR_1}?\n" .string "Si, bueno!\l" .string "I'll go find me one, like, bam!\p" .string "All right, thanks, as always!\n" .string "Adios!$" -gText_ApprenticeItemAlreadyRecommended9:: @ 82BBA6C +gText_ApprenticeItemAlreadyRecommended9:: .string "No, no! You already told me about\n" .string "that {STR_VAR_1} thing before.\p" .string "Oh, now wait just one minute here…\n" .string "So, you're saying my {STR_VAR_2}\l" .string "can win without holding any item?$" -gText_ApprenticeWhatHeldItem10:: @ 82BBB01 +gText_ApprenticeWhatHeldItem10:: .string "{PLAYER}{KUN}, something unbelievable\n" .string "has happened!\p" .string "I woke up this morning, and my POKéMON\n" @@ -1019,11 +1019,11 @@ gText_ApprenticeWhatHeldItem10:: @ 82BBB01 .string "So, how about deciding for me what\n" .string "my {STR_VAR_1} should hold, master?$" -gText_ApprenticeHoldNothing10:: @ 82BBC1C +gText_ApprenticeHoldNothing10:: .string "What's that mean?\n" .string "Don't make it hold anything?$" -gText_ApprenticeThanksNoHeldItem10:: @ 82BBC4B +gText_ApprenticeThanksNoHeldItem10:: .string "Okay, so it shouldn't hold anything.\n" .string "Then, I'd better get something for it!\p" .string "Just kidding!\n" @@ -1031,7 +1031,7 @@ gText_ApprenticeThanksNoHeldItem10:: @ 82BBC4B .string "Thanks, master!\n" .string "I hope you'll keep teaching me!$" -gText_ApprenticeThanksHeldItem10:: @ 82BBCF6 +gText_ApprenticeThanksHeldItem10:: .string "Okay, so it's one {STR_VAR_1}!\n" .string "I'll make it hold anything but that!\p" .string "Just kidding!\n" @@ -1039,14 +1039,14 @@ gText_ApprenticeThanksHeldItem10:: @ 82BBCF6 .string "Thanks, master!\n" .string "I hope you'll keep teaching me!$" -gText_ApprenticeItemAlreadyRecommended10:: @ 82BBD90 +gText_ApprenticeItemAlreadyRecommended10:: .string "Um, you told me about that before,\n" .string "didn't you?\p" .string "Isn't there something else?\p" .string "Or do you mean, don't make\n" .string "my {STR_VAR_2} hold anything?$" -gText_ApprenticeWhatHeldItem11:: @ 82BBE0B +gText_ApprenticeWhatHeldItem11:: .string "A-H-O-Y!\n" .string "And that spells ahoy!\p" .string "The rappin' SAILOR am I!\n" @@ -1057,25 +1057,25 @@ gText_ApprenticeWhatHeldItem11:: @ 82BBE0B .string "My {STR_VAR_1} needs an item to hold,\n" .string "What should it be, if I may be bold?$" -gText_ApprenticeHoldNothing11:: @ 82BBEE5 +gText_ApprenticeHoldNothing11:: .string "Is that right?\n" .string "My {STR_VAR_1} doesn't need to be\l" .string "holding anything tight?$" -gText_ApprenticeThanksNoHeldItem11:: @ 82BBF25 +gText_ApprenticeThanksNoHeldItem11:: .string "Okay, I hear you, sure I do!\n" .string "My POKéMON will go empty-handed, too!\p" .string "If it's advice I ever need,\n" .string "{PLAYER}, your word I'll always heed!$" -gText_ApprenticeThanksHeldItem11:: @ 82BBFA4 +gText_ApprenticeThanksHeldItem11:: .string "Okay, one {STR_VAR_1},\n" .string "that's what I'll use.\l" .string "I was right to make you choose!\p" .string "If it's advice I ever need,\n" .string "{PLAYER}, your word I'll always heed!$" -gText_ApprenticeItemAlreadyRecommended11:: @ 82BC024 +gText_ApprenticeItemAlreadyRecommended11:: .string "Okay, one {STR_VAR_1}, you say?\n" .string "You told me that the other day.\l" .string "I need a new idea, a brand new way.\p" @@ -1083,7 +1083,7 @@ gText_ApprenticeItemAlreadyRecommended11:: @ 82BC024 .string "My POKéMON doesn't need to hold\l" .string "anything tight?$" -gText_ApprenticeWhatHeldItem12:: @ 82BC0C8 +gText_ApprenticeWhatHeldItem12:: .string "Say, hey, {PLAYER}!\n" .string "I found you again today!\p" .string "What should I do? Get your advice?\n" @@ -1097,25 +1097,25 @@ gText_ApprenticeWhatHeldItem12:: @ 82BC0C8 .string "my {STR_VAR_1} that'd be good.\l" .string "My indecision is making me brood.$" -gText_ApprenticeHoldNothing12:: @ 82BC213 +gText_ApprenticeHoldNothing12:: .string "My {STR_VAR_1} needs nothing?\n" .string "Doesn't need to hold anything?$" -gText_ApprenticeThanksNoHeldItem12:: @ 82BC247 +gText_ApprenticeThanksNoHeldItem12:: .string "If holding nothing is the best,\n" .string "I'll do as you suggest!\p" .string "Well, {PLAYER}, I have to roam free,\n" .string "but don't you forget about me.\p" .string "See you again, my smart friend!$" -gText_ApprenticeThanksHeldItem12:: @ 82BC2DD +gText_ApprenticeThanksHeldItem12:: .string "If holding that {STR_VAR_1} is\n" .string "the best, I'll do as you suggest!\p" .string "Well, {PLAYER}, I have to roam free,\n" .string "but don't you forget about me.\p" .string "See you again, my smart friend!$" -gText_ApprenticeItemAlreadyRecommended12:: @ 82BC373 +gText_ApprenticeItemAlreadyRecommended12:: .string "Haven't I heard about that\n" .string "{STR_VAR_1} before?\l" .string "I'm certain I have, that's for sure!\p" @@ -1123,7 +1123,7 @@ gText_ApprenticeItemAlreadyRecommended12:: @ 82BC373 .string "Or, my {STR_VAR_2} needs nothing?\l" .string "Doesn't need to hold anything?$" -gText_ApprenticeWhatHeldItem13:: @ 82BC40E +gText_ApprenticeWhatHeldItem13:: .string "Gwah! Ouch! {PLAYER}{KUN}, my arm's broken!\n" .string "Don't touch it, please!\p" .string "I must've broken it while I was trying\n" @@ -1134,25 +1134,25 @@ gText_ApprenticeWhatHeldItem13:: @ 82BC40E .string "{PLAYER}{KUN}, what do you think would be\n" .string "good for my {STR_VAR_1} to hold?$" -gText_ApprenticeHoldNothing13:: @ 82BC514 +gText_ApprenticeHoldNothing13:: .string "Ouch…\p" .string "So your suggestion is my {STR_VAR_1}\n" .string "doesn't have to hold anything?$" -gText_ApprenticeThanksNoHeldItem13:: @ 82BC555 +gText_ApprenticeThanksNoHeldItem13:: .string "Hm, all right. That would be easier\n" .string "for me, the way things are now.\p" .string "I hope I can keep hitting you up\n" .string "for help like this.$" -gText_ApprenticeThanksHeldItem13:: @ 82BC5CE +gText_ApprenticeThanksHeldItem13:: .string "Hm, all right. That's one {STR_VAR_1}.\n" .string "My POKéMON's arm is fine, so I'll make\l" .string "it hold that item right away.\p" .string "I hope I can keep hitting you up\n" .string "for help like this.$" -gText_ApprenticeItemAlreadyRecommended13:: @ 82BC666 +gText_ApprenticeItemAlreadyRecommended13:: .string "No, no, you told me about that\n" .string "{STR_VAR_1} before, remember?\p" .string "How about telling me something\n" @@ -1161,7 +1161,7 @@ gText_ApprenticeItemAlreadyRecommended13:: @ 82BC666 .string "So your suggestion is my {STR_VAR_2}\l" .string "doesn't have to hold anything?$" -gText_ApprenticeWhatHeldItem14:: @ 82BC714 +gText_ApprenticeWhatHeldItem14:: .string "Er… Um…\n" .string "{PLAYER}{KUN}…\p" .string "Please, don't look at me that way.\n" @@ -1173,11 +1173,11 @@ gText_ApprenticeWhatHeldItem14:: @ 82BC714 .string "{PLAYER}{KUN}, what do you think would\n" .string "be good?$" -gText_ApprenticeHoldNothing14:: @ 82BC808 +gText_ApprenticeHoldNothing14:: .string "Oh… Then, you think it would be better\n" .string "if my {STR_VAR_1} didn't have an item?$" -gText_ApprenticeThanksNoHeldItem14:: @ 82BC84D +gText_ApprenticeThanksNoHeldItem14:: .string "Oh… Okay!\n" .string "I'll go without an item.\p" .string "This is nerve-racking, though.\n" @@ -1186,7 +1186,7 @@ gText_ApprenticeThanksNoHeldItem14:: @ 82BC84D .string "If we meet again, I hope you will be\l" .string "as helpful.$" -gText_ApprenticeThanksHeldItem14:: @ 82BC8EA +gText_ApprenticeThanksHeldItem14:: .string "Oh… Okay!\n" .string "I'll go with that {STR_VAR_1}.\p" .string "This is nerve-racking, though.\n" @@ -1195,7 +1195,7 @@ gText_ApprenticeThanksHeldItem14:: @ 82BC8EA .string "If we meet again, I hope you will be\l" .string "as helpful.$" -gText_ApprenticeItemAlreadyRecommended14:: @ 82BC984 +gText_ApprenticeItemAlreadyRecommended14:: .string "B-but I already heard about that.\p" .string "Please don't brush me off like this!\n" .string "I can't live with the humiliation.\p" @@ -1203,7 +1203,7 @@ gText_ApprenticeItemAlreadyRecommended14:: @ 82BC984 .string "Do you think it would be better if\l" .string "my {STR_VAR_2} didn't have an item?$" -gText_ApprenticeWhatHeldItem15:: @ 82BCA4D +gText_ApprenticeWhatHeldItem15:: .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really?\l" .string "Perhaps you're a twin?\p" @@ -1216,16 +1216,16 @@ gText_ApprenticeWhatHeldItem15:: @ 82BCA4D .string "to make hold a convenient item.\p" .string "What would be worthy of it?$" -gText_ApprenticeHoldNothing15:: @ 82BCB75 +gText_ApprenticeHoldNothing15:: .string "It's better if it held nothing?\n" .string "Are you certain?$" -gText_ApprenticeThanksNoHeldItem15:: @ 82BCBA6 +gText_ApprenticeThanksNoHeldItem15:: .string "I see. If that's the case, that's fine.\n" .string "I thank you for your time.\p" .string "Let us meet again!$" -gText_ApprenticeThanksHeldItem15:: @ 82BCBFC +gText_ApprenticeThanksHeldItem15:: .string "One {STR_VAR_1}?\n" .string "Are you certain?\p" .string "I see. If that's the case, that's fine.\n" @@ -1234,7 +1234,7 @@ gText_ApprenticeThanksHeldItem15:: @ 82BCBFC .string "put it to good use.\p" .string "Let us meet again!$" -gText_ApprenticeItemAlreadyRecommended15:: @ 82BCCA4 +gText_ApprenticeItemAlreadyRecommended15:: .string "No, no, wait a minute.\n" .string "I believe you taught me that before.\p" .string "I would like you to recommend\n" @@ -1243,7 +1243,7 @@ gText_ApprenticeItemAlreadyRecommended15:: @ 82BCCA4 .string "my {STR_VAR_2} should hold nothing?\l" .string "Are you certain?$" -gText_ApprenticeWhichMonFirst0:: @ 82BCD68 +gText_ApprenticeWhichMonFirst0:: .string "Waah, {PLAYER}!\n" .string "I have a dilemma, sob…\p" .string "I want to begin battling other people,\n" @@ -1254,7 +1254,7 @@ gText_ApprenticeWhichMonFirst0:: @ 82BCD68 .string "If you were me, which of these POKéMON\l" .string "would you send out first?$" -gText_ApprenticeMonFirstThanks0:: @ 82BCE64 +gText_ApprenticeMonFirstThanks0:: .string "My {STR_VAR_1} should go first?\n" .string "Waaaaah!\p" .string "Oh! I'm so sorry!\n" @@ -1262,30 +1262,30 @@ gText_ApprenticeMonFirstThanks0:: @ 82BCE64 .string "my first POKéMON, and it's made me cry…\p" .string "Thank you so much!$" -gText_ApprenticeWhichMonFirst1:: @ 82BCEF2 +gText_ApprenticeWhichMonFirst1:: .string "Yay! It's {PLAYER}!\n" .string "Great! I wanted to ask you something!\p" .string "Um, of my POKéMON, which do you\n" .string "think should go out first?$" -gText_ApprenticeMonFirstThanks1:: @ 82BCF61 +gText_ApprenticeMonFirstThanks1:: .string "My {STR_VAR_1}? That's true.\n" .string "Okay, I'll do that!\p" .string "Thanks for teaching me!$" -gText_ApprenticeWhichMonFirst2:: @ 82BCFA1 +gText_ApprenticeWhichMonFirst2:: .string "{PLAYER}, hello!\p" .string "I think, in a battle, it's very important\n" .string "which POKéMON comes out first.\p" .string "Out of the POKéMON that I have,\n" .string "which would be good to send out first?$" -gText_ApprenticeMonFirstThanks2:: @ 82BD03C +gText_ApprenticeMonFirstThanks2:: .string "My {STR_VAR_1} goes first?\n" .string "Okay, I got it!\p" .string "See you again!$" -gText_ApprenticeWhichMonFirst3:: @ 82BD06D +gText_ApprenticeWhichMonFirst3:: .string "Hello, {PLAYER}…\n" .string "I'm sorry to disturb you again with\l" .string "another question.\p" @@ -1297,7 +1297,7 @@ gText_ApprenticeWhichMonFirst3:: @ 82BD06D .string "Which of my POKéMON should I send\n" .string "out first in a battle?$" -gText_ApprenticeMonFirstThanks3:: @ 82BD18A +gText_ApprenticeMonFirstThanks3:: .string "My {STR_VAR_1}?\n" .string "Understood!\p" .string "I can't believe that you would bother\n" @@ -1305,7 +1305,7 @@ gText_ApprenticeMonFirstThanks3:: @ 82BD18A .string "I'm so grateful that you would even\n" .string "speak with me… Thank you!$" -gText_ApprenticeWhichMonFirst4:: @ 82BD222 +gText_ApprenticeWhichMonFirst4:: .string "Oh, {PLAYER}{KUN}! It's me!\n" .string "I'm so glad to see you because I have\l" .string "this little problem.\p" @@ -1316,7 +1316,7 @@ gText_ApprenticeWhichMonFirst4:: @ 82BD222 .string "How about deciding just the first\n" .string "POKéMON for me?$" -gText_ApprenticeMonFirstThanks4:: @ 82BD325 +gText_ApprenticeMonFirstThanks4:: .string "My {STR_VAR_1}? That's great!\p" .string "Knowing that you made the decision,\n" .string "{PLAYER}{KUN}, I won't be so upset if\l" @@ -1324,7 +1324,7 @@ gText_ApprenticeMonFirstThanks4:: @ 82BD325 .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" -gText_ApprenticeWhichMonFirst5:: @ 82BD3B1 +gText_ApprenticeWhichMonFirst5:: .string "Hi, my teacher {PLAYER}{KUN}!\n" .string "I'm busy again today!\p" .string "I have to do some cycling, shopping,\n" @@ -1334,14 +1334,14 @@ gText_ApprenticeWhichMonFirst5:: @ 82BD3B1 .string "So, how about checking out my team?\n" .string "Which one should go first?$" -gText_ApprenticeMonFirstThanks5:: @ 82BD493 +gText_ApprenticeMonFirstThanks5:: .string "Okay, gotcha.\n" .string "I have enough time at least to put\l" .string "my {STR_VAR_1} at the head of the line!\p" .string "Whoops, my girlfriend's waiting!\n" .string "Thanks! See you around!$" -gText_ApprenticeWhichMonFirst6:: @ 82BD51C +gText_ApprenticeWhichMonFirst6:: .string "Yoohoo! Hiya, {PLAYER}!\n" .string "You always walk around looking tough!\p" .string "Listen, I need something from you\n" @@ -1351,7 +1351,7 @@ gText_ApprenticeWhichMonFirst6:: @ 82BD51C .string "Which POKéMON of mine should be first\n" .string "to go out in a battle?$" -gText_ApprenticeMonFirstThanks6:: @ 82BD609 +gText_ApprenticeMonFirstThanks6:: .string "Hmhm!\n" .string "My {STR_VAR_1}, you say!\l" .string "Thanks for a most cool answer!\p" @@ -1360,7 +1360,7 @@ gText_ApprenticeMonFirstThanks6:: @ 82BD609 .string "Let's meet here again, okay?\n" .string "Thanks!$" -gText_ApprenticeWhichMonFirst7:: @ 82BD697 +gText_ApprenticeWhichMonFirst7:: .string "Thank you so much for stopping to\n" .string "chat with me, {PLAYER}.\p" .string "I know I'm taking advantage of your\n" @@ -1370,14 +1370,14 @@ gText_ApprenticeWhichMonFirst7:: @ 82BD697 .string "It would please me if you could decide\n" .string "which POKéMON should come first.$" -gText_ApprenticeMonFirstThanks7:: @ 82BD797 +gText_ApprenticeMonFirstThanks7:: .string "My {STR_VAR_1} it is!\n" .string "I will put it first right away!\p" .string "Thank you, {PLAYER}.\n" .string "I hope I can count on you again.\l" .string "Please take care!$" -gText_ApprenticeWhichMonFirst8:: @ 82BD806 +gText_ApprenticeWhichMonFirst8:: .string "Eek! {PLAYER}!\n" .string "I… I'm overjoyed to see you again!\p" .string "My POKéMON have become much\n" @@ -1388,7 +1388,7 @@ gText_ApprenticeWhichMonFirst8:: @ 82BD806 .string "Please decide which of my POKéMON\n" .string "should go out first!$" -gText_ApprenticeMonFirstThanks8:: @ 82BD8F5 +gText_ApprenticeMonFirstThanks8:: .string "Sigh… I'm overwhelmed with happiness…\p" .string "It's like a dream having you decide\n" .string "for me, {PLAYER}.\p" @@ -1397,7 +1397,7 @@ gText_ApprenticeMonFirstThanks8:: @ 82BD8F5 .string "I hope you'll be willing to teach me\n" .string "some more another time.$" -gText_ApprenticeWhichMonFirst9:: @ 82BD9BE +gText_ApprenticeWhichMonFirst9:: .string "Hello, hello!\n" .string "My mentor, {PLAYER}{KUN}!\l" .string "Hit me with your sage advice today!\p" @@ -1410,14 +1410,14 @@ gText_ApprenticeWhichMonFirst9:: @ 82BD9BE .string "Don't be shy now.\n" .string "Let's blurt it out!$" -gText_ApprenticeMonFirstThanks9:: @ 82BDAE1 +gText_ApprenticeMonFirstThanks9:: .string "Uh-huh, my {STR_VAR_1} leads off!\n" .string "OK, A-OK!\l" .string "I'll reorder the lineup, like, wham!\p" .string "All right, thanks, as always!\n" .string "Adios!$" -gText_ApprenticeWhichMonFirst10:: @ 82BDB4E +gText_ApprenticeWhichMonFirst10:: .string "{PLAYER}{KUN}, listen!\n" .string "It's a crisis!\p" .string "My POKéMON, all three of them, go into\n" @@ -1430,7 +1430,7 @@ gText_ApprenticeWhichMonFirst10:: @ 82BDB4E .string "So, how about deciding for me which\n" .string "POKéMON should go first, master?$" -gText_ApprenticeMonFirstThanks10:: @ 82BDC6B +gText_ApprenticeMonFirstThanks10:: .string "Okay, so it's my {STR_VAR_1} you chose?\n" .string "I'll let any but that one go first!\p" .string "Just kidding!\n" @@ -1438,7 +1438,7 @@ gText_ApprenticeMonFirstThanks10:: @ 82BDC6B .string "Thanks, master!\n" .string "I hope you'll keep teaching me!$" -gText_ApprenticeWhichMonFirst11:: @ 82BDD0D +gText_ApprenticeWhichMonFirst11:: .string "A-H-O-Y!\n" .string "And that spells ahoy!\p" .string "The rappin' SAILOR am I!\n" @@ -1449,13 +1449,13 @@ gText_ApprenticeWhichMonFirst11:: @ 82BDD0D .string "Out of this lot, which should go first\n" .string "as the first on the spot?$" -gText_ApprenticeMonFirstThanks11:: @ 82BDDEC +gText_ApprenticeMonFirstThanks11:: .string "Okay, I hear you, sure I do!\n" .string "I'll switch them up, that I'll do!\p" .string "If it's advice I ever need,\n" .string "{PLAYER}, your word I'll always heed!$" -gText_ApprenticeWhichMonFirst12:: @ 82BDE68 +gText_ApprenticeWhichMonFirst12:: .string "Yahoo, {PLAYER}!\n" .string "How do you do?\p" .string "What should I do? Go ahead and ask?\n" @@ -1466,14 +1466,14 @@ gText_ApprenticeWhichMonFirst12:: @ 82BDE68 .string "POKéMON is the first to ride!\l" .string "Into battle, I mean to say.$" -gText_ApprenticeMonFirstThanks12:: @ 82BDF4D +gText_ApprenticeMonFirstThanks12:: .string "My {STR_VAR_1}? Yes!\n" .string "That'll do, there's no distress!\p" .string "Well, {PLAYER}, I have to roam free,\n" .string "but don't you forget about me.\p" .string "See you again, my smart friend!$" -gText_ApprenticeWhichMonFirst13:: @ 82BDFD8 +gText_ApprenticeWhichMonFirst13:: .string "…Oof…ooch… {PLAYER}{KUN}…\n" .string "My stomach's hurting all of a sudden…\p" .string "…It's getting better now…\p" @@ -1485,7 +1485,7 @@ gText_ApprenticeWhichMonFirst13:: @ 82BDFD8 .string "{PLAYER}{KUN}, which of my POKéMON should\n" .string "go first? So I'd win, I mean.$" -gText_ApprenticeMonFirstThanks13:: @ 82BE0FD +gText_ApprenticeMonFirstThanks13:: .string "Hm, all right.\n" .string "My {STR_VAR_1} goes first.\p" .string "I'll fix the lineup like that after\n" @@ -1493,7 +1493,7 @@ gText_ApprenticeMonFirstThanks13:: @ 82BE0FD .string "I hope I can keep hitting you up\n" .string "for help like this.$" -gText_ApprenticeWhichMonFirst14:: @ 82BE189 +gText_ApprenticeWhichMonFirst14:: .string "Er… Um…\n" .string "{PLAYER}{KUN}?\p" .string "Please, don't look at me that way.\n" @@ -1506,7 +1506,7 @@ gText_ApprenticeWhichMonFirst14:: @ 82BE189 .string "Which POKéMON should I send out first\n" .string "so I at least look capable?$" -gText_ApprenticeMonFirstThanks14:: @ 82BE2A5 +gText_ApprenticeMonFirstThanks14:: .string "Oh… Okay!\n" .string "I'll lead with my {STR_VAR_1}.\p" .string "I hope I can do my best without\n" @@ -1515,7 +1515,7 @@ gText_ApprenticeMonFirstThanks14:: @ 82BE2A5 .string "If we meet again, I hope you will be\l" .string "as helpful.$" -gText_ApprenticeWhichMonFirst15:: @ 82BE33E +gText_ApprenticeWhichMonFirst15:: .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really?\l" .string "Perhaps you're a clever look-alike?\p" @@ -1527,7 +1527,7 @@ gText_ApprenticeWhichMonFirst15:: @ 82BE33E .string "I would like you to tell me which one\l" .string "should go first in a battle.$" -gText_ApprenticeMonFirstThanks15:: @ 82BE46C +gText_ApprenticeMonFirstThanks15:: .string "My {STR_VAR_1}…\n" .string "You aren't pulling my leg?\p" .string "I see. If that's the case, that's fine.\n" @@ -1536,7 +1536,7 @@ gText_ApprenticeMonFirstThanks15:: @ 82BE46C .string "my best.\p" .string "Let us meet again!$" -gText_ApprenticeWhichMon0:: @ 82BE50D +gText_ApprenticeWhichMon0:: .string "Snivel…\n" .string "Oh, {PLAYER}!\p" .string "What perfect timing!\n" @@ -1548,7 +1548,7 @@ gText_ApprenticeWhichMon0:: @ 82BE50D .string "{PLAYER}, which do you think will give\n" .string "even me a chance at winning?$" -gText_ApprenticeMonThanks0:: @ 82BE5F5 +gText_ApprenticeMonThanks0:: .string "Snivel… I… I understand!\n" .string "Oh! I'm so sorry!\l" .string "You've made me so happy, I'm crying…\p" @@ -1556,7 +1556,7 @@ gText_ApprenticeMonThanks0:: @ 82BE5F5 .string "{STR_VAR_1}!\p" .string "Thank you so much!$" -gText_ApprenticeWhichMon1:: @ 82BE679 +gText_ApprenticeWhichMon1:: .string "Yay! It's {PLAYER}!\n" .string "Yay, you came at the right time, too!\l" .string "I need your advice again!\p" @@ -1565,12 +1565,12 @@ gText_ApprenticeWhichMon1:: @ 82BE679 .string "Which do you think I should raise,\n" .string "{PLAYER}?$" -gText_ApprenticeMonThanks1:: @ 82BE71E +gText_ApprenticeMonThanks1:: .string "Oh, so my {STR_VAR_1} is better!\n" .string "Okay, I'll do that!\p" .string "Thanks for teaching me!$" -gText_ApprenticeWhichMon2:: @ 82BE762 +gText_ApprenticeWhichMon2:: .string "{PLAYER}, hello!\n" .string "I have a question I wanted to ask.\p" .string "I'm in a dilemma over whether I should\n" @@ -1578,14 +1578,14 @@ gText_ApprenticeWhichMon2:: @ 82BE762 .string "Which POKéMON do you think will\n" .string "be stronger?$" -gText_ApprenticeMonThanks2:: @ 82BE7F8 +gText_ApprenticeMonThanks2:: .string "{STR_VAR_1} is your choice?\n" .string "Okay, I got it!\p" .string "I'll go catch a strong {STR_VAR_1}\n" .string "right away!\p" .string "See you again!$" -gText_ApprenticeWhichMon3:: @ 82BE850 +gText_ApprenticeWhichMon3:: .string "Hello, {PLAYER}…\p" .string "Um, you've probably already forgotten\n" .string "about someone like me…\p" @@ -1599,7 +1599,7 @@ gText_ApprenticeWhichMon3:: @ 82BE850 .string "{PLAYER}, you probably don't want to\n" .string "bother, but please decide for me.$" -gText_ApprenticeMonThanks3:: @ 82BE99C +gText_ApprenticeMonThanks3:: .string "But will a wild {STR_VAR_1} even pay\n" .string "attention to me?\p" .string "I will try!\p" @@ -1607,7 +1607,7 @@ gText_ApprenticeMonThanks3:: @ 82BE99C .string "No! I'll do my best!\p" .string "Thank you!$" -gText_ApprenticeWhichMon4:: @ 82BEA1B +gText_ApprenticeWhichMon4:: .string "Oh, {PLAYER}{KUN}! I'm so glad to see you!\n" .string "I was about to go looking for you!\p" .string "Can you decide what kind of POKéMON\n" @@ -1618,7 +1618,7 @@ gText_ApprenticeWhichMon4:: @ 82BEA1B .string "Which one do you think would be\n" .string "better?$" -gText_ApprenticeMonThanks4:: @ 82BEAE9 +gText_ApprenticeMonThanks4:: .string "{STR_VAR_1}? That's great!\p" .string "Knowing that you made the decision,\n" .string "{PLAYER}{KUN}, I won't be so upset if\l" @@ -1626,7 +1626,7 @@ gText_ApprenticeMonThanks4:: @ 82BEAE9 .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" -gText_ApprenticeWhichMon5:: @ 82BEB72 +gText_ApprenticeWhichMon5:: .string "If it isn't {PLAYER}{KUN}! How's it going?\n" .string "I'm busy again as always!\p" .string "I want to do good with POKéMON, too,\n" @@ -1637,14 +1637,14 @@ gText_ApprenticeWhichMon5:: @ 82BEB72 .string "{PLAYER}{KUN}, give me some of your good\n" .string "advice! Which one'd be good for me?$" -gText_ApprenticeMonThanks5:: @ 82BEC8E +gText_ApprenticeMonThanks5:: .string "Okay, gotcha.\n" .string "I'll find time somehow and catch me\l" .string "that {STR_VAR_1} you recommended.\p" .string "I'm glad I met a good mentor in you.\n" .string "Thanks! See you around!$" -gText_ApprenticeWhichMon6:: @ 82BED16 +gText_ApprenticeWhichMon6:: .string "Oh!\n" .string "Yay, it's {PLAYER}!\p" .string "I didn't waste any time boasting to\n" @@ -1657,7 +1657,7 @@ gText_ApprenticeWhichMon6:: @ 82BED16 .string "and the choices were one {STR_VAR_1}\l" .string "or {STR_VAR_2}, which should it be?$" -gText_ApprenticeMonThanks6:: @ 82BEE29 +gText_ApprenticeMonThanks6:: .string "Ahhh!\n" .string "{STR_VAR_1}, you say!\l" .string "Thanks for a most cool answer!\p" @@ -1666,7 +1666,7 @@ gText_ApprenticeMonThanks6:: @ 82BEE29 .string "Let's meet here again, okay?\n" .string "Thanks!$" -gText_ApprenticeWhichMon7:: @ 82BEEB4 +gText_ApprenticeWhichMon7:: .string "Oh, is it you, {PLAYER}?\n" .string "I'm delighted to see you again!\p" .string "Ever since I became your apprentice,\n" @@ -1679,14 +1679,14 @@ gText_ApprenticeWhichMon7:: @ 82BEEB4 .string "{STR_VAR_1} or {STR_VAR_2}…\l" .string "Which POKéMON is right for me?$" -gText_ApprenticeMonThanks7:: @ 82BEFE2 +gText_ApprenticeMonThanks7:: .string "One {STR_VAR_1} it is!\n" .string "I will find one right away!\p" .string "Thank you, {PLAYER}.\n" .string "I hope I can count on you again.\l" .string "Please take care!$" -gText_ApprenticeWhichMon8:: @ 82BF04E +gText_ApprenticeWhichMon8:: .string "Eek! {PLAYER}! I met you again!\n" .string "I… I'm overjoyed!\p" .string "Oh-oh-oh, I know!\n" @@ -1696,14 +1696,14 @@ gText_ApprenticeWhichMon8:: @ 82BF04E .string "Please decide which would be better,\n" .string "{STR_VAR_1} or {STR_VAR_2}!$" -gText_ApprenticeMonThanks8:: @ 82BF11D +gText_ApprenticeMonThanks8:: .string "Wow! You decided for me!\n" .string "One {STR_VAR_1} is what I'll raise to\l" .string "the best of my ability.\p" .string "I hope you'll be willing to teach me\n" .string "some more another time.$" -gText_ApprenticeWhichMon9:: @ 82BF1A8 +gText_ApprenticeWhichMon9:: .string "Hey, hey!\n" .string "My mentor, {PLAYER}{KUN}!\p" .string "Hello, I've been looking for you\n" @@ -1713,14 +1713,14 @@ gText_ApprenticeWhichMon9:: @ 82BF1A8 .string "Don't be shy now.\n" .string "Let's blurt it out!$" -gText_ApprenticeMonThanks9:: @ 82BF268 +gText_ApprenticeMonThanks9:: .string "Uh-huh, one {STR_VAR_1} it is!\n" .string "OK, A-OK!\l" .string "I'll get one in a BALL, like, cram!\p" .string "All right, thanks, as always!\n" .string "Adios!$" -gText_ApprenticeWhichMon10:: @ 82BF2D1 +gText_ApprenticeWhichMon10:: .string "{PLAYER}{KUN}, listen! Big news!\n" .string "I caught a mirage POKéMON!\p" .string "Of course I'm lying!\n" @@ -1734,7 +1734,7 @@ gText_ApprenticeWhichMon10:: @ 82BF2D1 .string "Which would be better?\n" .string "{STR_VAR_1} or {STR_VAR_2}?$" -gText_ApprenticeMonThanks10:: @ 82BF3CF +gText_ApprenticeMonThanks10:: .string "Okay, so it's {STR_VAR_1} you chose?\n" .string "I'll grab the other kind, then!\p" .string "Just kidding!\n" @@ -1742,7 +1742,7 @@ gText_ApprenticeMonThanks10:: @ 82BF3CF .string "Thanks, master!\n" .string "I hope you'll keep teaching me!$" -gText_ApprenticeWhichMon11:: @ 82BF46A +gText_ApprenticeWhichMon11:: .string "A-H-O-Y!\n" .string "And that spells ahoy!\p" .string "The rappin' SAILOR am I!\n" @@ -1753,13 +1753,13 @@ gText_ApprenticeWhichMon11:: @ 82BF46A .string "{STR_VAR_1} and {STR_VAR_2}, you see.\l" .string "Which is the one to catch for me?$" -gText_ApprenticeMonThanks11:: @ 82BF551 +gText_ApprenticeMonThanks11:: .string "{STR_VAR_1}, you say, hey, hey!\n" .string "I'll go get me one right away!\p" .string "If it's advice I ever need,\n" .string "{PLAYER}, your word I'll always heed!$" -gText_ApprenticeWhichMon12:: @ 82BF5C3 +gText_ApprenticeWhichMon12:: .string "Oh, wow, if it isn't {PLAYER}!\p" .string "What should I do? Get your advice?\n" .string "Why not? I'm already talking to you!\p" @@ -1771,14 +1771,14 @@ gText_ApprenticeWhichMon12:: @ 82BF5C3 .string "It's either {STR_VAR_1} or {STR_VAR_2}.\l" .string "Which do you choose?$" -gText_ApprenticeMonThanks12:: @ 82BF6E5 +gText_ApprenticeMonThanks12:: .string "If that {STR_VAR_1} is the best,\n" .string "I'll do as you suggest!\p" .string "Well, {PLAYER}, I have to roam free,\n" .string "but don't you forget about me.\p" .string "See you again, my smart friend!$" -gText_ApprenticeWhichMon13:: @ 82BF773 +gText_ApprenticeWhichMon13:: .string "Oh, hi, {PLAYER}{KUN}…\n" .string "I have this horrible headache…\p" .string "I must've worried too much about\n" @@ -1789,13 +1789,13 @@ gText_ApprenticeWhichMon13:: @ 82BF773 .string "the POKéMON {STR_VAR_1} and\l" .string "{STR_VAR_2}, which should it be?$" -gText_ApprenticeMonThanks13:: @ 82BF869 +gText_ApprenticeMonThanks13:: .string "Hm, one {STR_VAR_1}, all right.\n" .string "I'll go look for one when I get better.\p" .string "I hope I can keep hitting you up\n" .string "for help like this.$" -gText_ApprenticeWhichMon14:: @ 82BF8DD +gText_ApprenticeWhichMon14:: .string "Er… Um…\n" .string "{PLAYER}{KUN}…?\p" .string "Please, don't look at me that way.\n" @@ -1806,7 +1806,7 @@ gText_ApprenticeWhichMon14:: @ 82BF8DD .string "If the choices were {STR_VAR_1} or\n" .string "{STR_VAR_2}, which would be better?$" -gText_ApprenticeMonThanks14:: @ 82BF9BA +gText_ApprenticeMonThanks14:: .string "Oh… Okay!\n" .string "I'll do my best with one {STR_VAR_1}.\p" .string "I hope I can do my best without\n" @@ -1815,7 +1815,7 @@ gText_ApprenticeMonThanks14:: @ 82BF9BA .string "If we meet again, I hope you will be\l" .string "as helpful.$" -gText_ApprenticeWhichMon15:: @ 82BFA5A +gText_ApprenticeWhichMon15:: .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really real?\p" .string "No, no, if you are real, it's fine.\n" @@ -1826,7 +1826,7 @@ gText_ApprenticeWhichMon15:: @ 82BFA5A .string "{STR_VAR_1} and {STR_VAR_2}, which is\l" .string "more worthy of me?$" -gText_ApprenticeMonThanks15:: @ 82BFB4E +gText_ApprenticeMonThanks15:: .string "{STR_VAR_1}?\n" .string "Are you certain?\p" .string "I see. If that's the case, that's fine.\n" @@ -1835,7 +1835,7 @@ gText_ApprenticeMonThanks15:: @ 82BFB4E .string "handle with aplomb.\p" .string "Let us meet again!$" -gText_ApprenticeWhichMove0:: @ 82BFBF2 +gText_ApprenticeWhichMove0:: .string "Waaah! Oh, {PLAYER}!\n" .string "Snivel… Hiccup…\p" .string "I have a dilemma!\n" @@ -1847,7 +1847,7 @@ gText_ApprenticeWhichMove0:: @ 82BFBF2 .string "be the better choice: {STR_VAR_2}\l" .string "or {STR_VAR_3}?$" -gText_ApprenticeMoveThanks0:: @ 82BFCAE +gText_ApprenticeMoveThanks0:: .string "{STR_VAR_1}?\n" .string "Waaaaah!\p" .string "Oh! I'm so sorry, {PLAYER}!\n" @@ -1856,7 +1856,7 @@ gText_ApprenticeMoveThanks0:: @ 82BFCAE .string "Snivel…\n" .string "Thank you so much!$" -gText_ApprenticeWhichMove1:: @ 82BFD26 +gText_ApprenticeWhichMove1:: .string "Yay! Hi, {PLAYER}!\n" .string "I need your advice again!\p" .string "I want to teach my {STR_VAR_1}\n" @@ -1865,13 +1865,13 @@ gText_ApprenticeWhichMove1:: @ 82BFD26 .string "{STR_VAR_2} or {STR_VAR_3}.\l" .string "What's your recommendation?$" -gText_ApprenticeMoveThanks1:: @ 82BFDB1 +gText_ApprenticeMoveThanks1:: .string "{STR_VAR_1} is better? I guess so!\n" .string "Okay, I'll go with that!\p" .string "If we meet here again, please teach\n" .string "me something else, teacher!$" -gText_ApprenticeWhichMove2:: @ 82BFE24 +gText_ApprenticeWhichMove2:: .string "{PLAYER}, hello!\n" .string "It's about my {STR_VAR_1}, but I'm\l" .string "worried about its moves.\p" @@ -1880,14 +1880,14 @@ gText_ApprenticeWhichMove2:: @ 82BFE24 .string "Which is stronger and better for\n" .string "my {STR_VAR_1}?$" -gText_ApprenticeMoveThanks2:: @ 82BFEAD +gText_ApprenticeMoveThanks2:: .string "{STR_VAR_1} is your choice?\n" .string "Okay, I got it!\p" .string "I'll go teach {STR_VAR_1} to\n" .string "my POKéMON right away!\p" .string "See you again!$" -gText_ApprenticeWhichMove3:: @ 82BFF0A +gText_ApprenticeWhichMove3:: .string "Ohhh, {PLAYER}…\n" .string "I'm hopeless, no, really!\p" .string "I've decided to raise a POKéMON,\n" @@ -1901,14 +1901,14 @@ gText_ApprenticeWhichMove3:: @ 82BFF0A .string "If you could even choose between\n" .string "{STR_VAR_2} and {STR_VAR_3}…$" -gText_ApprenticeMoveThanks3:: @ 82C0032 +gText_ApprenticeMoveThanks3:: .string "I understand!\p" .string "But will it even be willing to learn\n" .string "{STR_VAR_1} for me…\l" .string "No! I'll do my best!\p" .string "Thank you!$" -gText_ApprenticeWhichMove4:: @ 82C0090 +gText_ApprenticeWhichMove4:: .string "Oh, {PLAYER}{KUN}!\n" .string "I was just hoping to see you, too!\p" .string "I was wondering what move would\n" @@ -1919,7 +1919,7 @@ gText_ApprenticeWhichMove4:: @ 82C0090 .string "{STR_VAR_2} and {STR_VAR_3}?\l" .string "Which one would be better?$" -gText_ApprenticeMoveThanks4:: @ 82C016E +gText_ApprenticeMoveThanks4:: .string "{STR_VAR_1}? That's great!\p" .string "Knowing that you made the decision,\n" .string "{PLAYER}{KUN}, I won't be so upset if\l" @@ -1927,7 +1927,7 @@ gText_ApprenticeMoveThanks4:: @ 82C016E .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" -gText_ApprenticeWhichMove5:: @ 82C01F7 +gText_ApprenticeWhichMove5:: .string "How could things be this busy?\n" .string "Hey, if it isn't {PLAYER}{KUN}!\l" .string "How's it going?\p" @@ -1941,14 +1941,14 @@ gText_ApprenticeWhichMove5:: @ 82C01F7 .string "{PLAYER}{KUN}, give me some of your good\n" .string "advice! Which move'd be good for me?$" -gText_ApprenticeMoveThanks5:: @ 82C034C +gText_ApprenticeMoveThanks5:: .string "Okay, gotcha.\n" .string "I'll make room in my schedule and\l" .string "teach that move.\p" .string "I'm glad I met a good mentor in you.\n" .string "Thanks! See you around!$" -gText_ApprenticeWhichMove6:: @ 82C03CA +gText_ApprenticeWhichMove6:: .string "Oh! Lucky!\n" .string "I met you again, {PLAYER}!\l" .string "I need to tap your mind again today.\p" @@ -1958,7 +1958,7 @@ gText_ApprenticeWhichMove6:: @ 82C03CA .string "best suited, {STR_VAR_2} or\l" .string "{STR_VAR_3}?$" -gText_ApprenticeMoveThanks6:: @ 82C046E +gText_ApprenticeMoveThanks6:: .string "Ahhh!\n" .string "{STR_VAR_1}, you say!\l" .string "Thanks for a most cool answer!\p" @@ -1967,7 +1967,7 @@ gText_ApprenticeMoveThanks6:: @ 82C046E .string "Let's meet here again, okay?\n" .string "Thanks!$" -gText_ApprenticeWhichMove7:: @ 82C04F9 +gText_ApprenticeWhichMove7:: .string "Oh, hello, {PLAYER}.\n" .string "I trust you've been well?\p" .string "I have to seek your advice again.\n" @@ -1976,14 +1976,14 @@ gText_ApprenticeWhichMove7:: @ 82C04F9 .string "my lovable {STR_VAR_1}?\l" .string "{STR_VAR_2} or {STR_VAR_3}?$" -gText_ApprenticeMoveThanks7:: @ 82C0598 +gText_ApprenticeMoveThanks7:: .string "{STR_VAR_1} it is!\n" .string "I will teach that right away!\p" .string "Thank you, {PLAYER}.\n" .string "I hope I can count on you again.\l" .string "Please take care!$" -gText_ApprenticeWhichMove8:: @ 82C0602 +gText_ApprenticeWhichMove8:: .string "Eek! {PLAYER}! I met you again!\n" .string "I… I'm overjoyed!\p" .string "Whenever I'm in need, you're always\n" @@ -1995,14 +1995,14 @@ gText_ApprenticeWhichMove8:: @ 82C0602 .string "Which move would be better,\n" .string "{STR_VAR_2} or {STR_VAR_3}?$" -gText_ApprenticeMoveThanks8:: @ 82C06D8 +gText_ApprenticeMoveThanks8:: .string "Oh-oh-oh! Thank you!\n" .string "{STR_VAR_1} is it!\l" .string "Perfectly understood!\p" .string "I hope you'll be willing to teach me\n" .string "some more another time.$" -gText_ApprenticeWhichMove9:: @ 82C074A +gText_ApprenticeWhichMove9:: .string "Hola, {PLAYER}{KUN}, bueno!\n" .string "I'm hoping for some more of\l" .string "your sage advice today!\p" @@ -2013,14 +2013,14 @@ gText_ApprenticeWhichMove9:: @ 82C074A .string "Would it be {STR_VAR_2}?\n" .string "Or {STR_VAR_3}?$" -gText_ApprenticeMoveThanks9:: @ 82C0809 +gText_ApprenticeMoveThanks9:: .string "Uh-huh, {STR_VAR_1} it is!\n" .string "Si, bueno!\l" .string "I'll get it taught, like, ka-blam!\p" .string "All right, thanks, as always!\n" .string "Adios!$" -gText_ApprenticeWhichMove10:: @ 82C086E +gText_ApprenticeWhichMove10:: .string "{PLAYER}{KUN}, it's completely wild!\p" .string "My POKéMON!\n" .string "It learned six moves!\p" @@ -2034,7 +2034,7 @@ gText_ApprenticeWhichMove10:: @ 82C086E .string "{STR_VAR_2} or {STR_VAR_3}--which\n" .string "would go with my {STR_VAR_1} best?$" -gText_ApprenticeMoveThanks10:: @ 82C0982 +gText_ApprenticeMoveThanks10:: .string "Okay, so it's {STR_VAR_1} you chose?\n" .string "I'll choose another move, then!\p" .string "Just kidding!\n" @@ -2042,7 +2042,7 @@ gText_ApprenticeMoveThanks10:: @ 82C0982 .string "Thanks, master!\n" .string "I hope you'll keep teaching me!$" -gText_ApprenticeWhichMove11:: @ 82C0A1D +gText_ApprenticeWhichMove11:: .string "A-H-O-Y!\n" .string "And that spells ahoy!\p" .string "The rappin' SAILOR am I!\n" @@ -2053,13 +2053,13 @@ gText_ApprenticeWhichMove11:: @ 82C0A1D .string "the moves. What would be the best\l" .string "for my {STR_VAR_1} so it grooves?$" -gText_ApprenticeMoveThanks11:: @ 82C0AFD +gText_ApprenticeMoveThanks11:: .string "{STR_VAR_1}, you say, hey, hey!\n" .string "I'll go teach that right away!\p" .string "If it's advice I ever need,\n" .string "{PLAYER}, your word I'll always heed!$" -gText_ApprenticeWhichMove12:: @ 82C0B6F +gText_ApprenticeWhichMove12:: .string "Oh, yeahah, if it isn't {PLAYER}!\p" .string "What should I do? Get your advice?\n" .string "Why not? I'm already talking to you!\p" @@ -2071,14 +2071,14 @@ gText_ApprenticeWhichMove12:: @ 82C0B6F .string "It's {STR_VAR_2} or {STR_VAR_3},\l" .string "what do you choose?$" -gText_ApprenticeMoveThanks12:: @ 82C0C7D +gText_ApprenticeMoveThanks12:: .string "If that {STR_VAR_1} is the best,\n" .string "I'll do as you suggest!\p" .string "Well, {PLAYER}, I have to roam free,\n" .string "but don't you forget about me.\p" .string "See you again, my smart friend!$" -gText_ApprenticeWhichMove13:: @ 82C0D0B +gText_ApprenticeWhichMove13:: .string "Gahack! Gaah! Oh, {PLAYER}{KUN}…\n" .string "I have this lousy cold, I do…\p" .string "I want to pick a move for my POKéMON,\n" @@ -2089,13 +2089,13 @@ gText_ApprenticeWhichMove13:: @ 82C0D0B .string "{STR_VAR_2} and {STR_VAR_3} for\l" .string "my {STR_VAR_1}, which would it be?$" -gText_ApprenticeMoveThanks13:: @ 82C0DFE +gText_ApprenticeMoveThanks13:: .string "Hm, {STR_VAR_1}, all right. Cough!\n" .string "I'll go teach it when I get better.\p" .string "I hope I can keep hitting you up\n" .string "for help like this.$" -gText_ApprenticeWhichMove14:: @ 82C0E71 +gText_ApprenticeWhichMove14:: .string "Er… Um…\n" .string "{PLAYER}{KUN}…?\p" .string "Please, don't look at me that way.\n" @@ -2108,7 +2108,7 @@ gText_ApprenticeWhichMove14:: @ 82C0E71 .string "If the choices were {STR_VAR_2} or\l" .string "{STR_VAR_3}, which would be better?$" -gText_ApprenticeMoveThanks14:: @ 82C0F6D +gText_ApprenticeMoveThanks14:: .string "Oh… Okay!\n" .string "I'll try that {STR_VAR_1}.\p" .string "I hope I can teach that move…\n" @@ -2117,7 +2117,7 @@ gText_ApprenticeMoveThanks14:: @ 82C0F6D .string "If we meet again, I hope you will be\l" .string "as helpful.$" -gText_ApprenticeWhichMove15:: @ 82C1003 +gText_ApprenticeWhichMove15:: .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really real?\p" .string "Perhaps you're one of those popular\n" @@ -2130,7 +2130,7 @@ gText_ApprenticeWhichMove15:: @ 82C1003 .string "Which move would be better for it to\n" .string "use, {STR_VAR_2} or {STR_VAR_3}?$" -gText_ApprenticeMoveThanks15:: @ 82C1122 +gText_ApprenticeMoveThanks15:: .string "{STR_VAR_1}?\n" .string "There's no question about that?\p" .string "I see. If that's the case, that's fine.\n" @@ -2139,7 +2139,7 @@ gText_ApprenticeMoveThanks15:: @ 82C1122 .string "my POKéMON can learn.\p" .string "Let us meet again!$" -gText_ApprenticePickWinSpeech0:: @ 82C11D1 +gText_ApprenticePickWinSpeech0:: .string "Oh… {PLAYER}?\n" .string "It is {PLAYER}!\l" .string "Oh! Sniff…sob… Please, listen!\p" @@ -2151,7 +2151,7 @@ gText_ApprenticePickWinSpeech0:: @ 82C11D1 .string "Could you maybe teach me something\l" .string "cool to say when I win so I don't cry?$" -gText_ApprenticeWinSpeechThanks0:: @ 82C12D5 +gText_ApprenticeWinSpeechThanks0:: .string "{STR_VAR_1}\p" .string "Awesome! Wicked! Awoooh!\n" .string "It's really cool!\p" @@ -2164,7 +2164,7 @@ gText_ApprenticeWinSpeechThanks0:: @ 82C12D5 .string "{PLAYER}…\n" .string "Next time… We should battle!$" -gText_ApprenticePickWinSpeech1:: @ 82C13AB +gText_ApprenticePickWinSpeech1:: .string "Yay! It's {PLAYER}! Hello!\n" .string "I wanted to ask you something!\p" .string "I want to say something cool when\n" @@ -2172,7 +2172,7 @@ gText_ApprenticePickWinSpeech1:: @ 82C13AB .string "Do you have a cool saying that\n" .string "you could recommend?$" -gText_ApprenticeWinSpeechThanks1:: @ 82C1444 +gText_ApprenticeWinSpeechThanks1:: .string "{STR_VAR_1}\p" .string "Oh, wow! That is so cool!\n" .string "Okay, I'll say that!\p" @@ -2182,7 +2182,7 @@ gText_ApprenticeWinSpeechThanks1:: @ 82C1444 .string "When we meet again, it'll be for\n" .string "a battle!$" -gText_ApprenticePickWinSpeech2:: @ 82C1501 +gText_ApprenticePickWinSpeech2:: .string "{PLAYER}, hello!\p" .string "My POKéMON and I are ready for\n" .string "anything, except for one thing.\p" @@ -2191,7 +2191,7 @@ gText_ApprenticePickWinSpeech2:: @ 82C1501 .string "Could you think up something good\n" .string "to say?$" -gText_ApprenticeWinSpeechThanks2:: @ 82C15B6 +gText_ApprenticeWinSpeechThanks2:: .string "{STR_VAR_1}\p" .string "…Cool!\n" .string "I will use that!\p" @@ -2202,7 +2202,7 @@ gText_ApprenticeWinSpeechThanks2:: @ 82C15B6 .string "Next time, let's meet at a place\n" .string "of battle!$" -gText_ApprenticePickWinSpeech3:: @ 82C165E +gText_ApprenticePickWinSpeech3:: .string "Hello, {PLAYER}…\n" .string "I'm sorry to bug you, but I'm hopeless…\p" .string "Even when…\n" @@ -2214,7 +2214,7 @@ gText_ApprenticePickWinSpeech3:: @ 82C165E .string "Please, {PLAYER}, what should I say\n" .string "if I win a battle?$" -gText_ApprenticeWinSpeechThanks3:: @ 82C174F +gText_ApprenticeWinSpeechThanks3:: .string "{STR_VAR_1}\p" .string "That's inspired…\p" .string "Uh… Is it okay for someone like me\n" @@ -2227,7 +2227,7 @@ gText_ApprenticeWinSpeechThanks3:: @ 82C174F .string "someone like me, but let's meet\l" .string "somewhere again!$" -gText_ApprenticePickWinSpeech4:: @ 82C1862 +gText_ApprenticePickWinSpeech4:: .string "Oh, {PLAYER}{KUN}.\n" .string "There's something I want you to hear.\p" .string "I know that I don't always sound\n" @@ -2240,7 +2240,7 @@ gText_ApprenticePickWinSpeech4:: @ 82C1862 .string "But I can't think of anything good!\n" .string "Could you think something up for me?$" -gText_ApprenticeWinSpeechThanks4:: @ 82C19A0 +gText_ApprenticeWinSpeechThanks4:: .string "{STR_VAR_1}\p" .string "Not bad!\n" .string "Yup, that's what I'll go with!\p" @@ -2252,7 +2252,7 @@ gText_ApprenticeWinSpeechThanks4:: @ 82C19A0 .string "Next time, we battle, okay?\n" .string "See you!$" -gText_ApprenticePickWinSpeech5:: @ 82C1A76 +gText_ApprenticePickWinSpeech5:: .string "Oh, I can't get over how busy I am!\n" .string "Oh, hey, I was looking for you, {PLAYER}{KUN}.\p" .string "Are you well as usual?\n" @@ -2266,7 +2266,7 @@ gText_ApprenticePickWinSpeech5:: @ 82C1A76 .string "underline my coolness when I'm done\l" .string "and walking away? {PLAYER}{KUN}, help me!$" -gText_ApprenticeWinSpeechThanks5:: @ 82C1C16 +gText_ApprenticeWinSpeechThanks5:: .string "{STR_VAR_1}\p" .string "Okay, gotcha.\n" .string "I can find time to say that!\p" @@ -2277,7 +2277,7 @@ gText_ApprenticeWinSpeechThanks5:: @ 82C1C16 .string "Thanks for everything, {PLAYER}{KUN}!\n" .string "We have to battle, you and me, one day!$" -gText_ApprenticePickWinSpeech6:: @ 82C1CF5 +gText_ApprenticePickWinSpeech6:: .string "I lucked out again!\n" .string "{PLAYER}! Am I glad to see you!\l" .string "Like usual, I need your advice!\p" @@ -2287,7 +2287,7 @@ gText_ApprenticePickWinSpeech6:: @ 82C1CF5 .string "it with a cool flourish, what\l" .string "should I say?$" -gText_ApprenticeWinSpeechThanks6:: @ 82C1DC1 +gText_ApprenticeWinSpeechThanks6:: .string "{STR_VAR_1}\p" .string "That… That's fabulous!\n" .string "It's dignified and cool! I claim it!\p" @@ -2300,7 +2300,7 @@ gText_ApprenticeWinSpeechThanks6:: @ 82C1DC1 .string "we battle!\p" .string "Thank you for everything!$" -gText_ApprenticePickWinSpeech7:: @ 82C1EDC +gText_ApprenticePickWinSpeech7:: .string "Oh, {PLAYER}.\n" .string "I'm so glad I met you!\p" .string "I no longer have any concerns with\n" @@ -2313,7 +2313,7 @@ gText_ApprenticePickWinSpeech7:: @ 82C1EDC .string "Please, what should I say when\n" .string "I win a battle?$" -gText_ApprenticeWinSpeechThanks7:: @ 82C1FEC +gText_ApprenticeWinSpeechThanks7:: .string "{STR_VAR_1}\p" .string "Ah! That saying! It refreshes me\n" .string "and makes me feel reborn!\p" @@ -2325,7 +2325,7 @@ gText_ApprenticeWinSpeechThanks7:: @ 82C1FEC .string "Perhaps one day…\n" .string "Farewell!$" -gText_ApprenticePickWinSpeech8:: @ 82C20D1 +gText_ApprenticePickWinSpeech8:: .string "Eek! I spotted {PLAYER}!\n" .string "I… I'm overjoyed to see you!\p" .string "Oh-oh-oh! There's something I just\n" @@ -2337,7 +2337,7 @@ gText_ApprenticePickWinSpeech8:: @ 82C20D1 .string "So now, {PLAYER}, please, I want you to\n" .string "think up an exit line for when I win!$" -gText_ApprenticeWinSpeechThanks8:: @ 82C21FF +gText_ApprenticeWinSpeechThanks8:: .string "{STR_VAR_1}\p" .string "Waaaaah!\n" .string "I'm going to say that?!\l" @@ -2351,7 +2351,7 @@ gText_ApprenticeWinSpeechThanks8:: @ 82C21FF .string "I've got to go now, but let's meet\n" .string "in battle one day!$" -gText_ApprenticePickWinSpeech9:: @ 82C231C +gText_ApprenticePickWinSpeech9:: .string "Hola, bueno!\n" .string "{PLAYER}{KUN}!\p" .string "You know, I'm getting the itch to roam\n" @@ -2362,7 +2362,7 @@ gText_ApprenticePickWinSpeech9:: @ 82C231C .string "be a good boast I could say to my\l" .string "fallen TRAINER opponent?$" -gText_ApprenticeWinSpeechThanks9:: @ 82C2407 +gText_ApprenticeWinSpeechThanks9:: .string "{STR_VAR_1}\p" .string "Uh-huh, that's sweet!\n" .string "Si, bueno!\l" @@ -2372,7 +2372,7 @@ gText_ApprenticeWinSpeechThanks9:: @ 82C2407 .string "Give me a battle one day, OK?\n" .string "Adios!$" -gText_ApprenticePickWinSpeech10:: @ 82C24B5 +gText_ApprenticePickWinSpeech10:: .string "{PLAYER}{KUN}, there's big trouble!\p" .string "When I win a battle, I brag about it\n" .string "for an hour at least!\p" @@ -2384,7 +2384,7 @@ gText_ApprenticePickWinSpeech10:: @ 82C24B5 .string "I should say after winning a battle,\l" .string "master?$" -gText_ApprenticeWinSpeechThanks10:: @ 82C25B1 +gText_ApprenticeWinSpeechThanks10:: .string "{STR_VAR_1}\p" .string "That's what I should say, huh?\n" .string "Then, I'll stay away from that!\p" @@ -2400,7 +2400,7 @@ gText_ApprenticeWinSpeechThanks10:: @ 82C25B1 .string "That's all!\n" .string "Farewell, my master!$" -gText_ApprenticePickWinSpeech11:: @ 82C2707 +gText_ApprenticePickWinSpeech11:: .string "A-H-O-Y!\n" .string "And that spells ahoy!\p" .string "The rappin' SAILOR am I!\n" @@ -2411,7 +2411,7 @@ gText_ApprenticePickWinSpeech11:: @ 82C2707 .string "If I win a match, what can I say\n" .string "in a real cool way?$" -gText_ApprenticeWinSpeechThanks11:: @ 82C27D4 +gText_ApprenticeWinSpeechThanks11:: .string "{STR_VAR_1}\p" .string "Perfect! That's what I'll use.\n" .string "I was right to make you choose!\p" @@ -2423,7 +2423,7 @@ gText_ApprenticeWinSpeechThanks11:: @ 82C27D4 .string "And that spells bon voyage,\l" .string "to you this is my homage!$" -gText_ApprenticePickWinSpeech12:: @ 82C28D6 +gText_ApprenticePickWinSpeech12:: .string "Oh, yeah, {PLAYER}!\n" .string "I found you again today!\p" .string "What should I do? Ask you again?\n" @@ -2437,7 +2437,7 @@ gText_ApprenticePickWinSpeech12:: @ 82C28D6 .string "a battle ends well.\p" .string "Come on, I wanna hear you say it!$" -gText_ApprenticeWinSpeechThanks12:: @ 82C2A0B +gText_ApprenticeWinSpeechThanks12:: .string "{STR_VAR_1}\p" .string "All right, all right!\n" .string "I'll use that because it's so tight!\p" @@ -2451,7 +2451,7 @@ gText_ApprenticeWinSpeechThanks12:: @ 82C2A0B .string "Take care, {PLAYER}!\n" .string "Love ya!$" -gText_ApprenticePickWinSpeech13:: @ 82C2B50 +gText_ApprenticePickWinSpeech13:: .string "{PLAYER}{KUN}, I'm finished…\n" .string "My nose won't stop dripping…\p" .string "I was trying to think up something\n" @@ -2463,7 +2463,7 @@ gText_ApprenticePickWinSpeech13:: @ 82C2B50 .string "When I win a battle,\n" .string "what should I say?$" -gText_ApprenticeWinSpeechThanks13:: @ 82C2C77 +gText_ApprenticeWinSpeechThanks13:: .string "{STR_VAR_1}\p" .string "… … …That's good.\n" .string "No, it's awe inspiring!\l" @@ -2475,7 +2475,7 @@ gText_ApprenticeWinSpeechThanks13:: @ 82C2C77 .string "From now on, we're rivals!\n" .string "Thanks for everything!$" -gText_ApprenticePickWinSpeech14:: @ 82C2D67 +gText_ApprenticePickWinSpeech14:: .string "Er… Um…\n" .string "{PLAYER}{KUN}…\p" .string "Please, don't look at me that way.\n" @@ -2486,7 +2486,7 @@ gText_ApprenticePickWinSpeech14:: @ 82C2D67 .string "but what if I win a battle?\l" .string "What should I say?$" -gText_ApprenticeWinSpeechThanks14:: @ 82C2E41 +gText_ApprenticeWinSpeechThanks14:: .string "{STR_VAR_1}\p" .string "Oh… Okay!\n" .string "I'll try to say that!\l" @@ -2496,7 +2496,7 @@ gText_ApprenticeWinSpeechThanks14:: @ 82C2E41 .string "I'll obey all that you've taught me,\n" .string "{PLAYER}{KUN}, and do the best I can.$" -gText_ApprenticePickWinSpeech15:: @ 82C2EF5 +gText_ApprenticePickWinSpeech15:: .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really?\l" .string "Perhaps a clever {PLAYER} DOLL?\p" @@ -2509,7 +2509,7 @@ gText_ApprenticePickWinSpeech15:: @ 82C2EF5 .string "More precisely, what should I say\n" .string "if I win a battle?$" -gText_ApprenticeWinSpeechThanks15:: @ 82C3023 +gText_ApprenticeWinSpeechThanks15:: .string "{STR_VAR_1}\p" .string "… … … … … …\n" .string "When I win a match…\p" diff --git a/data/text/battle_tent.inc b/data/text/battle_tent.inc index 98aa689ce9..511ae8724d 100644 --- a/data/text/battle_tent.inc +++ b/data/text/battle_tent.inc @@ -1,17 +1,17 @@ -FallarborTown_BattleTentLobby_Text_WelcomeToBattleTent: @ 82C47EB +FallarborTown_BattleTentLobby_Text_WelcomeToBattleTent: .string "I welcome you to the BATTLE TENT\n" .string "FALLARBOR SITE!\p" .string "I am your guide to the Set KO Tourney!$" -FallarborTown_BattleTentLobby_Text_TakeChallenge: @ 82C4843 +FallarborTown_BattleTentLobby_Text_TakeChallenge: .string "Now, do you wish to take the challenge\n" .string "of a Set KO Tourney?$" -FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge: @ 82C487F +FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge: .string "We await your challenge on\n" .string "another occasion!$" -FallarborTown_BattleTentLobby_Text_ExplainFallarborTent: @ 82C48AC +FallarborTown_BattleTentLobby_Text_ExplainFallarborTent: .string "In the FALLARBOR BATTLE TENT,\n" .string "we undertake the Set KO Tourney.\p" .string "All participants enter with a team of\n" @@ -32,21 +32,21 @@ FallarborTown_BattleTentLobby_Text_ExplainFallarborTent: @ 82C48AC .string "three TRAINERS in succession,\l" .string "we will present you with a fine prize.$" -FallarborTown_BattleTentLobby_Text_SaveBeforeChallenge: @ 82C4B35 +FallarborTown_BattleTentLobby_Text_SaveBeforeChallenge: .string "Before showing you to the BATTLE\n" .string "TENT, I must save. Is that okay?$" @ Unused -FallarborTown_BattleTentLobby_Text_WhichLevelMode: @ 82C4B77 +FallarborTown_BattleTentLobby_Text_WhichLevelMode: .string "We offer two levels of challenge,\n" .string "Level 50 and Open Level.\l" .string "Which is your choice?$" -FallarborTown_BattleTentLobby_Text_SelectThreeMons: @ 82C4BC8 +FallarborTown_BattleTentLobby_Text_SelectThreeMons: .string "Very well, now select your\n" .string "three POKéMON, please.$" -FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLv50: @ 82C4BFA +FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLv50: .string "My dear challenger!\p" .string "You do not have the three POKéMON\n" .string "required for entry.\p" @@ -56,7 +56,7 @@ FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLv50: @ 82C4BFA .string "When you have made your preparations,\n" .string "please do return.$" -FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen: @ 82C4CC0 +FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen: .string "My dear challenger!\p" .string "You do not have the three POKéMON\n" .string "required for entry.\p" @@ -68,11 +68,11 @@ FallarborTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen: @ 82C4CC0 .string "When you have made your preparations,\n" .string "please do return.$" -FallarborTown_BattleTentLobby_Text_GuideYouToBattleTent: @ 82C4DC3 +FallarborTown_BattleTentLobby_Text_GuideYouToBattleTent: .string "I shall now guide you to\n" .string "the BATTLE TENT.$" -FallarborTown_BattleTentLobby_Text_DidntSaveBeforeQuitting: @ 82C4DED +FallarborTown_BattleTentLobby_Text_DidntSaveBeforeQuitting: .string "My dear challenger!\p" .string "You did not save the game before\n" .string "shutting down, did you?\p" @@ -82,52 +82,52 @@ FallarborTown_BattleTentLobby_Text_DidntSaveBeforeQuitting: @ 82C4DED .string "You may, of course, start with a fresh\n" .string "challenge.$" -FallarborTown_BattleTentLobby_Text_BeatThreeTrainers: @ 82C4EC3 +FallarborTown_BattleTentLobby_Text_BeatThreeTrainers: .string "How splendid! You have beaten\n" .string "three TRAINERS in succession!$" -FallarborTown_BattleTentLobby_Text_WaitWhileSaveGame: @ 82C4EFF +FallarborTown_BattleTentLobby_Text_WaitWhileSaveGame: .string "Please wait while I save the game.$" -FallarborTown_BattleTentLobby_Text_PresentYouWithPrize: @ 82C4F22 +FallarborTown_BattleTentLobby_Text_PresentYouWithPrize: .string "In commemoration of your 3-win streak,\n" .string "we present you with this prize.$" -FallarborTown_BattleTentLobby_Text_ReceivedPrize: @ 82C4F69 +FallarborTown_BattleTentLobby_Text_ReceivedPrize: .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" -FallarborTown_BattleTentLobby_Text_BagFullReturnForPrize: @ 82C4F83 +FallarborTown_BattleTentLobby_Text_BagFullReturnForPrize: .string "Oh?\n" .string "Your BAG seems to be full.\p" .string "I urge you to clear space and\n" .string "return for your prize.$" -FallarborTown_BattleTentLobby_Text_ThankYouWaitWhileSaving: @ 82C4FD7 +FallarborTown_BattleTentLobby_Text_ThankYouWaitWhileSaving: .string "Thank you so much for participating!\p" .string "Please wait while I save the game.$" -FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2: @ 82C501F +FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2: .string "We await your challenge on\n" .string "another occasion!$" -FallarborTown_BattleTentLobby_Text_LookingForwardToArrival: @ 82C504C +FallarborTown_BattleTentLobby_Text_LookingForwardToArrival: .string "We have been looking forward to\n" .string "your arrival.\p" .string "Before I show you to the BATTLE TENT,\n" .string "I must save the game. Please wait.$" -VerdanturfTown_BattleTentLobby_Text_WelcomeToBattleTent: @ 82C50C3 +VerdanturfTown_BattleTentLobby_Text_WelcomeToBattleTent: .string "I welcome you to the BATTLE TENT\n" .string "VERDANTURF SITE!\p" .string "Here, the TRAINER's trust toward\n" .string "POKéMON is tested.$" -VerdanturfTown_BattleTentLobby_Text_TakeChallenge: @ 82C5129 +VerdanturfTown_BattleTentLobby_Text_TakeChallenge: .string "Do you wish to take the VERDANTURF\n" .string "BATTLE TENT challenge?$" -VerdanturfTown_BattleTentLobby_Text_ExplainVerdanturfTent: @ 82C5163 +VerdanturfTown_BattleTentLobby_Text_ExplainVerdanturfTent: .string "In the VERDANTURF BATTLE TENT,\n" .string "there is one crucial rule that must\l" .string "be obeyed.\p" @@ -147,17 +147,17 @@ VerdanturfTown_BattleTentLobby_Text_ExplainVerdanturfTent: @ 82C5163 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -VerdanturfTown_BattleTentLobby_Text_ReturnFortified: @ 82C539A +VerdanturfTown_BattleTentLobby_Text_ReturnFortified: .string "When you have fortified your heart\n" .string "and POKéMON, you must return.$" @ Unused -VerdanturfTown_BattleTentLobby_Text_WhichLevelMode: @ 82C53DB +VerdanturfTown_BattleTentLobby_Text_WhichLevelMode: .string "There are two levels of difficulty,\n" .string "Level 50 and Open Level.\l" .string "Which is your choice of a challenge?$" -VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLv50: @ 82C543D +VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLv50: .string "Sigh…\p" .string "You do not have the three POKéMON\n" .string "required for the challenge.\p" @@ -169,7 +169,7 @@ VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLv50: @ 82C543D .string "Come back when you have made\n" .string "your preparations.$" -VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen: @ 82C5538 +VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen: .string "Sigh…\p" .string "You do not have the three POKéMON\n" .string "required for the challenge.\p" @@ -181,48 +181,48 @@ VerdanturfTown_BattleTentLobby_Text_NotEnoughValidMonsLvOpen: @ 82C5538 .string "Come back when you have made\n" .string "your preparations.$" -VerdanturfTown_BattleTentLobby_Text_SelectThreeMons: @ 82C5633 +VerdanturfTown_BattleTentLobby_Text_SelectThreeMons: .string "Good. Now, you must select your\n" .string "three POKéMON.$" -VerdanturfTown_BattleTentLobby_Text_SaveBeforeChallenge: @ 82C5662 +VerdanturfTown_BattleTentLobby_Text_SaveBeforeChallenge: .string "I must save before I show you to\n" .string "the BATTLE TENT. Is that okay?$" -VerdanturfTown_BattleTentLobby_Text_NowFollowMe: @ 82C56A2 +VerdanturfTown_BattleTentLobby_Text_NowFollowMe: .string "Good.\n" .string "Now, follow me.$" -VerdanturfTown_BattleTentLobby_Text_ResultsWillBeRecorded: @ 82C56B8 +VerdanturfTown_BattleTentLobby_Text_ResultsWillBeRecorded: .string "I feel privileged for having seen\n" .string "your POKéMON's exploits.\p" .string "The results will be recorded.\n" .string "I must ask you to briefly wait.$" -VerdanturfTown_BattleTentLobby_Text_AchievedThreeWinStreak: @ 82C5731 +VerdanturfTown_BattleTentLobby_Text_AchievedThreeWinStreak: .string "To achieve a 3-win streak…\p" .string "The bonds that bind your heart with\n" .string "your POKéMON seem firm and true.$" -VerdanturfTown_BattleTentLobby_Text_FeatWillBeRecorded: @ 82C5791 +VerdanturfTown_BattleTentLobby_Text_FeatWillBeRecorded: .string "Your feat will be recorded.\n" .string "I must ask you to briefly wait.$" -VerdanturfTown_BattleTentLobby_Text_PresentYouWithPrize: @ 82C57CD +VerdanturfTown_BattleTentLobby_Text_PresentYouWithPrize: .string "For the feat of your 3-win streak,\n" .string "we present you with this prize.$" -SlateportCity_BattleTentLobby_Text_WelcomeToBattleTent: @ 82C5810 +SlateportCity_BattleTentLobby_Text_WelcomeToBattleTent: .string "Welcome to the BATTLE TENT\n" .string "SLATEPORT SITE!\p" .string "I am your guide to the Battle Swap\n" .string "Tournament.$" -SlateportCity_BattleTentLobby_Text_TakeChallenge: @ 82C586A +SlateportCity_BattleTentLobby_Text_TakeChallenge: .string "Would you like to take the Battle\n" .string "Swap challenge?$" -SlateportCity_BattleTentLobby_Text_ExplainSlateportTent: @ 82C589C +SlateportCity_BattleTentLobby_Text_ExplainSlateportTent: .string "Here at the SLATEPORT BATTLE TENT,\n" .string "we hold Battle Swap events\l" .string "using rental POKéMON.\p" @@ -240,27 +240,27 @@ SlateportCity_BattleTentLobby_Text_ExplainSlateportTent: @ 82C589C .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -SlateportCity_BattleTentLobby_Text_LookForwardToNextVisit: @ 82C5AA5 +SlateportCity_BattleTentLobby_Text_LookForwardToNextVisit: .string "We look forward to your next visit.$" @ Unused -SlateportCity_BattleTentLobby_Text_WhichLevelMode: @ 82C5AC9 +SlateportCity_BattleTentLobby_Text_WhichLevelMode: .string "Which level do you wish to challenge?\n" .string "Level 50 or Level 100?$" -SlateportCity_BattleTentLobby_Text_SaveBeforeChallenge: @ 82C5B06 +SlateportCity_BattleTentLobby_Text_SaveBeforeChallenge: .string "Before you begin your challenge,\n" .string "I need to save data. Is that okay?$" @ Unused -SlateportCity_BattleTentLobby_Text_HoldMonsForSafekeeping: @ 82C5B4A +SlateportCity_BattleTentLobby_Text_HoldMonsForSafekeeping: .string "Okay, I will hold your POKéMON for\n" .string "safekeeping while you compete.$" -SlateportCity_BattleTentLobby_Text_StepThisWay: @ 82C5B8C +SlateportCity_BattleTentLobby_Text_StepThisWay: .string "Please step this way.$" -SlateportCity_BattleTentLobby_Text_ReturnRentalMonsSaveResults: @ 82C5BA2 +SlateportCity_BattleTentLobby_Text_ReturnRentalMonsSaveResults: .string "Thank you for participating!\p" .string "I will return your POKéMON in exchange\n" .string "for our rental POKéMON.\p" @@ -268,11 +268,11 @@ SlateportCity_BattleTentLobby_Text_ReturnRentalMonsSaveResults: @ 82C5BA2 .string "Please wait.$" @ Unused -SlateportCity_BattleTentLobby_Text_ReturnMonsExchangeRentals: @ 82C5C30 +SlateportCity_BattleTentLobby_Text_ReturnMonsExchangeRentals: .string "I will return your POKéMON in exchange\n" .string "for our rental POKéMON.$" -SlateportCity_BattleTentLobby_Text_WonThreeMatchesReturnMons: @ 82C5C6F +SlateportCity_BattleTentLobby_Text_WonThreeMatchesReturnMons: .string "Congratulations!\n" .string "You've won three straight matches!\p" .string "I will return your POKéMON in exchange\n" @@ -280,65 +280,65 @@ SlateportCity_BattleTentLobby_Text_WonThreeMatchesReturnMons: @ 82C5C6F .string "I must also save your event results.\n" .string "Please wait.$" -SlateportCity_BattleTentLobby_Text_AwardYouThisPrize: @ 82C5D14 +SlateportCity_BattleTentLobby_Text_AwardYouThisPrize: .string "In recognition of your 3-win streak,\n" .string "we award you this prize.$" -SlateportCity_BattleTentLobby_Text_NoRoomInBagMakeRoom: @ 82C5D52 +SlateportCity_BattleTentLobby_Text_NoRoomInBagMakeRoom: .string "Oh?\n" .string "You seem to have no room for this.\p" .string "Please make room in your BAG and\n" .string "let me know.$" -SlateportCity_BattleTentLobby_Text_BeenWaitingForYou: @ 82C5DA7 +SlateportCity_BattleTentLobby_Text_BeenWaitingForYou: .string "We've been waiting for you!\p" .string "Before we resume your challenge,\n" .string "I must save the game.$" -SlateportCity_BattleTentLobby_Text_DidntSaveBeforeQuitting: @ 82C5DFA +SlateportCity_BattleTentLobby_Text_DidntSaveBeforeQuitting: .string "I'm sorry to say this, but you didn't\n" .string "save before you quit playing last time.\p" .string "As a result, you have been disqualified\n" .string "from your challenge.$" @ Unused -SlateportCity_BattleTentLobby_Text_ReturnPersonalMons: @ 82C5E85 +SlateportCity_BattleTentLobby_Text_ReturnPersonalMons: .string "We'll return your personal POKéMON.$" @ Unused -SlateportCity_BattleTentLobby_Text_ReceivedPrize: @ 82C5EA9 +SlateportCity_BattleTentLobby_Text_ReceivedPrize: .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" @ Unused -SlateportCity_BattleTentLobby_Text_RulesAreListed: @ 82C5EC3 +SlateportCity_BattleTentLobby_Text_RulesAreListed: .string "The Battle Swap rules are listed.$" @ Unused -SlateportCity_BattleTentLobby_Text_ReadWhichHeading: @ 82C5EE5 +SlateportCity_BattleTentLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" -SlateportCity_BattleTentLobby_Text_ExplainBasicRules: @ 82C5F08 +SlateportCity_BattleTentLobby_Text_ExplainBasicRules: .string "In a Battle Swap event, you may use\n" .string "only three POKéMON.\p" .string "Whether you are renting or swapping,\n" .string "your team may not have two or more\l" .string "of the same POKéMON.$" -SlateportCity_BattleTentLobby_Text_ExplainSwapPartnerRules: @ 82C5F9D +SlateportCity_BattleTentLobby_Text_ExplainSwapPartnerRules: .string "You may swap POKéMON only with\n" .string "the TRAINER you have just defeated.\p" .string "You may swap for only those POKéMON\n" .string "used by the beaten TRAINER.$" -SlateportCity_BattleTentLobby_Text_ExplainSwapNumberRules: @ 82C6020 +SlateportCity_BattleTentLobby_Text_ExplainSwapNumberRules: .string "After every battle you win, you may\n" .string "swap for one of your defeated\l" .string "opponent's POKéMON.\p" .string "You will not be able to swap POKéMON\n" .string "with the third TRAINER in the event.$" -SlateportCity_BattleTentLobby_Text_ExplainSwapNotes: @ 82C60C0 +SlateportCity_BattleTentLobby_Text_ExplainSwapNotes: .string "There are two key points to be aware\n" .string "of when swapping POKéMON.\p" .string "First, when swapping, you can't check\n" @@ -350,23 +350,23 @@ SlateportCity_BattleTentLobby_Text_ExplainSwapNotes: @ 82C60C0 .string "This sequence remains unchanged\n" .string "even when swaps are made.$" -SlateportCity_BattleTentLobby_Text_ExplainMonRules: @ 82C61FE +SlateportCity_BattleTentLobby_Text_ExplainMonRules: .string "The POKéMON of the SLATEPORT\n" .string "BATTLE TENT are all rentals.\p" .string "All rental POKéMON are kept at\n" .string "Level 30.$" @ Unused -VerdanturfTown_BattleTentLobby_Text_RulesAreListed2: @ 82C6261 +VerdanturfTown_BattleTentLobby_Text_RulesAreListed2: .string "The VERDANTURF BATTLE TENT\n" .string "rules are listed.$" @ Unused -VerdanturfTown_BattleTentLobby_Text_ReadWhichHeading: @ 82C628E +VerdanturfTown_BattleTentLobby_Text_ReadWhichHeading: .string "Which heading do you want to read?$" @ Unused -VerdanturfTown_BattleTentLobby_Text_ExplainBasicRules: @ 82C62B1 +VerdanturfTown_BattleTentLobby_Text_ExplainBasicRules: .string "Here at the VERDANTURF BATTLE TENT,\n" .string "POKéMON are required to think and\l" .string "battle by themselves.\p" @@ -375,7 +375,7 @@ VerdanturfTown_BattleTentLobby_Text_ExplainBasicRules: @ 82C62B1 .string "depending on their nature.$" @ Unused -VerdanturfTown_BattleTentLobby_Text_ExplainNatureRules: @ 82C636D +VerdanturfTown_BattleTentLobby_Text_ExplainNatureRules: .string "Depending on its nature, a POKéMON\n" .string "may prefer to attack no matter what.\p" .string "Another POKéMON may prefer to protect\n" @@ -389,7 +389,7 @@ VerdanturfTown_BattleTentLobby_Text_ExplainNatureRules: @ 82C636D .string "it has trouble using.$" @ Unused -VerdanturfTown_BattleTentLobby_Text_ExplainMoveRules: @ 82C64BA +VerdanturfTown_BattleTentLobby_Text_ExplainMoveRules: .string "There are offensive moves that inflict\n" .string "direct damage on the foe.\p" .string "There are defensive moves that are\n" @@ -403,7 +403,7 @@ VerdanturfTown_BattleTentLobby_Text_ExplainMoveRules: @ 82C64BA .string "these three categories.$" @ Unused -VerdanturfTown_BattleTentLobby_Text_ExplainUnderpoweredRules: @ 82C6612 +VerdanturfTown_BattleTentLobby_Text_ExplainUnderpoweredRules: .string "When not under command by its TRAINER,\n" .string "a POKéMON may be unable to effectively\l" .string "use certain moves.\p" @@ -414,20 +414,20 @@ VerdanturfTown_BattleTentLobby_Text_ExplainUnderpoweredRules: @ 82C6612 .string "be unable to live up to its potential.$" @ Unused -VerdanturfTown_BattleTentLobby_Text_ExplainWhenInDangerRules: @ 82C671E +VerdanturfTown_BattleTentLobby_Text_ExplainWhenInDangerRules: .string "Depending on its nature, a POKéMON may\n" .string "start using moves that don't match its\l" .string "nature when it is in trouble.\p" .string "If a POKéMON begins behaving oddly\n" .string "in a pinch, watch it carefully.$" -BattleTentLobby_Text_ExplainLevelRules: @ 82C67CD +BattleTentLobby_Text_ExplainLevelRules: .string "At this BATTLE TENT, the levels of\n" .string "your opponents will be adjusted to\l" .string "match the levels of your POKéMON.\p" .string "However, no TRAINER you face will\n" .string "have any POKéMON below Level 30.$" -VerdanturfTown_BattleTentLobby_Text_RulesAreListed: @ 82C6878 +VerdanturfTown_BattleTentLobby_Text_RulesAreListed: .string "The VERDANTURF BATTLE TENT\n" .string "rules are listed.$" diff --git a/data/text/berries.inc b/data/text/berries.inc index 152690e201..af4f0adbc3 100644 --- a/data/text/berries.inc +++ b/data/text/berries.inc @@ -1,16 +1,16 @@ -PetalburgCity_Gym_Text_GiveEnigmaBerry: @ 82A6D3D +PetalburgCity_Gym_Text_GiveEnigmaBerry: .string "DAD: Hi, {PLAYER}!\p" .string "I just received a very rare BERRY.\n" .string "I'd like you to have it.$" -Route104_Text_PlantBerriesInSoilTakeThis: @ 82A6D86 +Route104_Text_PlantBerriesInSoilTakeThis: .string "If you see BERRIES growing in loamy\n" .string "soil, feel free to take them.\p" .string "But make sure you plant a BERRY in the\n" .string "same spot. That's common courtesy.\p" .string "Here, I'll share this with you.$" -Route104_Text_TrainersOftenMakeMonHoldBerries: @ 82A6E32 +Route104_Text_TrainersOftenMakeMonHoldBerries: .string "The way you look, you must be a\n" .string "TRAINER, no?\p" .string "TRAINERS often make POKéMON hold\n" @@ -18,139 +18,139 @@ Route104_Text_TrainersOftenMakeMonHoldBerries: @ 82A6E32 .string "It's up to you whether to grow BERRIES\n" .string "or use them.$" -Route111_Text_WateredPlantsEveryDayTakeBerry: @ 82A6EBD +Route111_Text_WateredPlantsEveryDayTakeBerry: .string "I watered the plants every day.\n" .string "They grew lots of flowers.\p" .string "And they gave me lots of BERRIES, too.\p" .string "Here you go!\n" .string "You can have it!$" -Route111_Text_GoingToTryToMakeDifferentColorBerries: @ 82A6F3D +Route111_Text_GoingToTryToMakeDifferentColorBerries: .string "I'm going to try really hard and make\n" .string "BERRIES in different colors.\p" .string "I hope you try hard, too!$" -Route111_Text_WhatColorBerriesToLookForToday: @ 82A6F9A +Route111_Text_WhatColorBerriesToLookForToday: .string "I wonder what color BERRIES I'll look\n" .string "for today?$" -Route114_Text_LoveUsingBerryCrushShareBerry: @ 82A6FCB +Route114_Text_LoveUsingBerryCrushShareBerry: .string "I love using the BERRY CRUSH machine,\n" .string "so I'm collecting BERRIES.\p" .string "I'll share one with you, if you'd like.$" -Route114_Text_TryBerryCrushWithFriends: @ 82A7034 +Route114_Text_TryBerryCrushWithFriends: .string "You should try the BERRY CRUSH\n" .string "machine with your friends.$" -Route114_Text_FunToThinkAboutBerries: @ 82A706E +Route114_Text_FunToThinkAboutBerries: .string "Which BERRY should be planted?\n" .string "Should you use or hoard BERRIES?\p" .string "It's fun to think about.$" -Route120_Text_BerriesExpressionOfLoveIsntIt: @ 82A70C7 +Route120_Text_BerriesExpressionOfLoveIsntIt: .string "BERRIES grow by soaking up sunlight.\p" .string "We help the BERRIES grow by watering\n" .string "them regularly.\p" .string "It's an expression of love, isn't it?$" -Route120_Text_YesYouUnderstand: @ 82A7147 +Route120_Text_YesYouUnderstand: .string "Yes, yes.\n" .string "You understand what I mean.\p" .string "You should take this.$" -Route120_Text_MakeYourOwnImpressions: @ 82A7183 +Route120_Text_MakeYourOwnImpressions: .string "Oh… But it is important to make your\n" .string "own impressions, I guess…\p" .string "You can have this.$" -Route120_Text_BerryIsRareRaiseItWithCare: @ 82A71D5 +Route120_Text_BerryIsRareRaiseItWithCare: .string "I think that BERRY is rare.\n" .string "I hope you raise it with loving care.$" -Route120_Text_IllGetMoreBerriesFromBerryMaster: @ 82A7217 +Route120_Text_IllGetMoreBerriesFromBerryMaster: .string "I'll get more BERRIES from\n" .string "the BERRY MASTER.$" -LilycoveCity_Text_BerrySuitsYou: @ 82A7244 +LilycoveCity_Text_BerrySuitsYou: .string "When it gets right down to it…\p" .string "The same way suits suit me perfectly,\n" .string "a crisp breeze suits the sea.\p" .string "And you, a BERRY suits you to a “T”…\p" .string "Why should that be so?$" -LilycoveCity_Text_BecauseYoureTrainer: @ 82A72E3 +LilycoveCity_Text_BecauseYoureTrainer: .string "When it gets right down to it…\p" .string "It's because you're a TRAINER!$" -LilycoveCity_Text_PokeblocksSuitPokemon: @ 82A7321 +LilycoveCity_Text_PokeblocksSuitPokemon: .string "When it gets right down to it…\p" .string "The way dignified simplicity suits me,\n" .string "{POKEBLOCK}S perfectly suit POKéMON.$" -Route123_BerryMastersHouse_Text_YoureDeservingOfBerry: @ 82A7386 +Route123_BerryMastersHouse_Text_YoureDeservingOfBerry: .string "You may call me the BERRY MASTER.\p" .string "I dream of filling the world with\n" .string "beautiful flowers, so I raise BERRIES\l" .string "and hand them out to everyone.\p" .string "You're deserving of one!$" -Route123_BerryMastersHouse_Text_WhyBeStingyTakeAnother: @ 82A7428 +Route123_BerryMastersHouse_Text_WhyBeStingyTakeAnother: .string "Why be stingy?\n" .string "Take another!$" -Route123_BerryMastersHouse_Text_VisitPrettyPetalFlowerShop: @ 82A7445 +Route123_BerryMastersHouse_Text_VisitPrettyPetalFlowerShop: .string "Be sure to visit the PRETTY PETAL\n" .string "flower shop near RUSTBORO.\p" .string "Let flowers fill the world!$" -Route123_BerryMastersHouse_Text_DoneForToday: @ 82A749E +Route123_BerryMastersHouse_Text_DoneForToday: .string "I'm done for today.\n" .string "Come again another day.\p" .string "Let flowers fill the world!$" -Route123_BerryMastersHouse_Text_HeardAGoodSayingLately: @ 82A74E6 +Route123_BerryMastersHouse_Text_HeardAGoodSayingLately: .string "The way my husband grows BERRIES,\n" .string "oh, he's the best in the world.\p" .string "He makes me proud, that he does.\p" .string "Incidentally, child, have you heard\n" .string "a good saying lately?$" -Route123_BerryMastersHouse_Text_InspirationalTakeThis: @ 82A7583 +Route123_BerryMastersHouse_Text_InspirationalTakeThis: .string "Ah! What a remarkable saying!\n" .string "Inspirational, it is!\p" .string "I want you to have this.$" -Route123_BerryMastersHouse_Text_GoodSayingTakeThis: @ 82A75D0 +Route123_BerryMastersHouse_Text_GoodSayingTakeThis: .string "Oh! A good saying it is.\n" .string "You're quite remarkable.\p" .string "I want you to have this.$" -Route123_BerryMastersHouse_Text_JoyNeverGoesOutOfMyLife: @ 82A761B +Route123_BerryMastersHouse_Text_JoyNeverGoesOutOfMyLife: .string "Our four grandchildren should become\n" .string "more accomplished than my husband.\p" .string "Joy never goes out of my life!$" -Route123_BerryMastersHouse_Text_Ah: @ 82A7682 +Route123_BerryMastersHouse_Text_Ah: .string "Ah…$" -Route104_PrettyPetalFlowerShop_Text_ThisIsPrettyPetalFlowerShop: @ 82A7686 +Route104_PrettyPetalFlowerShop_Text_ThisIsPrettyPetalFlowerShop: .string "Hello!\p" .string "This is the PRETTY PETAL flower shop.\n" .string "Spreading flowers all over the world!$" -Route104_PrettyPetalFlowerShop_Text_LearnAboutBerries: @ 82A76D9 +Route104_PrettyPetalFlowerShop_Text_LearnAboutBerries: .string "{PLAYER}{KUN}, would you like to learn about\n" .string "BERRIES?$" -Route104_PrettyPetalFlowerShop_Text_IntroLearnAboutBerries: @ 82A7706 +Route104_PrettyPetalFlowerShop_Text_IntroLearnAboutBerries: .string "Your name is?\p" .string "{PLAYER}{KUN}.\n" .string "That's a nice name.\p" .string "{PLAYER}{KUN}, would you like to learn about\n" .string "BERRIES?$" -Route104_PrettyPetalFlowerShop_Text_BerriesExplanation: @ 82A775B +Route104_PrettyPetalFlowerShop_Text_BerriesExplanation: .string "BERRIES grow on trees that thrive\n" .string "only in soft, loamy soil.\p" .string "If you take some BERRIES, be sure to\n" @@ -164,18 +164,18 @@ Route104_PrettyPetalFlowerShop_Text_BerriesExplanation: @ 82A775B .string "Please help me, {PLAYER}{KUN}. Plant BERRIES\n" .string "and bring more flowers into the world.$" -Route104_PrettyPetalFlowerShop_Text_FlowersBringHappiness: @ 82A78DF +Route104_PrettyPetalFlowerShop_Text_FlowersBringHappiness: .string "Flowers bring so much happiness to\n" .string "people, don't they?$" -Route104_PrettyPetalFlowerShop_Text_YouCanHaveThis: @ 82A7916 +Route104_PrettyPetalFlowerShop_Text_YouCanHaveThis: .string "Hello!\p" .string "The more attention you give to flowers,\n" .string "the more beautifully they bloom.\p" .string "You'll like tending flowers. I'm sure\n" .string "of it. You can have this.$" -Route104_PrettyPetalFlowerShop_Text_WailmerPailExplanation: @ 82A79A6 +Route104_PrettyPetalFlowerShop_Text_WailmerPailExplanation: .string "While BERRY plants are growing,\n" .string "water them with the WAILMER PAIL.\p" .string "Oh, another thing.\p" @@ -185,13 +185,13 @@ Route104_PrettyPetalFlowerShop_Text_WailmerPailExplanation: @ 82A79A6 .string "Isn't that awesome?\n" .string "It's like they have the will to live.$" -Route104_PrettyPetalFlowerShop_Text_ImGrowingFlowers: @ 82A7A98 +Route104_PrettyPetalFlowerShop_Text_ImGrowingFlowers: .string "I'm trying to be like my big sisters.\n" .string "I'm growing flowers, too!\p" .string "Here you go!\n" .string "It's for you!$" -Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries: @ 82A7AF3 +Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries: .string "You can plant a BERRY and grow it big,\n" .string "or you can make a POKéMON hold it.\p" .string "But now they have a machine that mixes\n" @@ -199,7 +199,7 @@ Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries: @ 82A7AF3 .string "for POKéMON.\p" .string "I want some candy, too.$" -SootopolisCity_Text_NameIsKiriHaveOneOfThese: @ 82A7BB0 +SootopolisCity_Text_NameIsKiriHaveOneOfThese: .string "Hi, what's your name?\p" .string "… … … … … … … … …\n" .string "Okay. That's nice!\p" @@ -209,26 +209,26 @@ SootopolisCity_Text_NameIsKiriHaveOneOfThese: @ 82A7BB0 .string "That's what they wished.\p" .string "You can have one of these.$" -SootopolisCity_Text_GiveYouThisBerryToo: @ 82A7C7C +SootopolisCity_Text_GiveYouThisBerryToo: .string "KIRI will give you this BERRY, too!\n" .string "I really like it lots!$" -SootopolisCity_Text_WhatKindOfWishInYourName: @ 82A7CB7 +SootopolisCity_Text_WhatKindOfWishInYourName: .string "I wonder what kind of wish is included\n" .string "in your name.$" -SootopolisCity_Text_LikeSeasonBornIn: @ 82A7CEC +SootopolisCity_Text_LikeSeasonBornIn: .string "Spring, summer, autumn, and winter.\p" .string "If you're born in springtime, do you like\n" .string "the spring, and if you're born in the\l" .string "summer, do you like the summer?$" -SootopolisCity_Text_ThenILoveAutumn: @ 82A7D80 +SootopolisCity_Text_ThenILoveAutumn: .string "Then KIRI was born in the autumn,\n" .string "so I love the autumn!\p" .string "Which season do you like?$" -SootopolisCity_Text_OhDoesntMatter: @ 82A7DD2 +SootopolisCity_Text_OhDoesntMatter: .string "Oh…\n" .string "It doesn't matter…\p" .string "There's so much that I want to know…$" diff --git a/data/text/berry_descriptions.inc b/data/text/berry_descriptions.inc deleted file mode 100644 index e5917ca32b..0000000000 --- a/data/text/berry_descriptions.inc +++ /dev/null @@ -1,258 +0,0 @@ -gBerryDescriptionPart1_Cheri:: @ 8589AE4 - .string "Blooms with delicate pretty flowers.$" - -gBerryDescriptionPart2_Cheri:: @ 8589B09 - .string "The bright red BERRY is very spicy.$" - -gBerryDescriptionPart1_Chesto:: @ 8589B2D - .string "The BERRY's thick skin and fruit are$" - -gBerryDescriptionPart2_Chesto:: @ 8589B52 - .string "very tough. It is dry-tasting all over.$" - -gBerryDescriptionPart1_Pecha:: @ 8589B7A - .string "Very sweet and delicious.$" - -gBerryDescriptionPart2_Pecha:: @ 8589B94 - .string "Also very tender - handle with care.$" - -gBerryDescriptionPart1_Rawst:: @ 8589BB9 - .string "If the leaves grow long and curly,$" - -gBerryDescriptionPart2_Rawst:: @ 8589BDC - .string "the BERRY seems to grow very bitter.$" - -gBerryDescriptionPart1_Aspear:: @ 8589C01 - .string "The hard BERRY is dense with a rich$" - -gBerryDescriptionPart2_Aspear:: @ 8589C25 - .string "juice. It is quite sour.$" - -gBerryDescriptionPart1_Leppa:: @ 8589C3E - .string "Grows slower than CHERI and others.$" - -gBerryDescriptionPart2_Leppa:: @ 8589C62 - .string "The smaller the BERRY, the tastier.$" - -gBerryDescriptionPart1_Oran:: @ 8589C86 - .string "A peculiar BERRY with a mix of flavors.$" - -gBerryDescriptionPart2_Oran:: @ 8589CAE - .string "BERRIES grow in half a day.$" - -gBerryDescriptionPart1_Persim:: @ 8589CCA - .string "Loves sunlight. The BERRY's color$" - -gBerryDescriptionPart2_Persim:: @ 8589CEC - .string "grows vivid when exposed to the sun.$" - -gBerryDescriptionPart1_Lum:: @ 8589D11 - .string "Slow to grow. If raised with loving$" - -gBerryDescriptionPart2_Lum:: @ 8589D35 - .string "care, it may grow two BERRIES.$" - -gBerryDescriptionPart1_Sitrus:: @ 8589D54 - .string "Closely related to ORAN. The large$" - -gBerryDescriptionPart2_Sitrus:: @ 8589D77 - .string "BERRY has a well-rounded flavor.$" - -gBerryDescriptionPart1_Figy:: @ 8589D98 - .string "The BERRY, which looks chewed up,$" - -gBerryDescriptionPart2_Figy:: @ 8589DBA - .string "brims with spicy substances.$" - -gBerryDescriptionPart1_Wiki:: @ 8589DD7 - .string "The BERRY is said to have grown lumpy$" - -gBerryDescriptionPart2_Wiki:: @ 8589DFD - .string "to help POKéMON grip it.$" - -gBerryDescriptionPart1_Mago:: @ 8589E16 - .string "The BERRY turns curvy as it grows.$" - -gBerryDescriptionPart2_Mago:: @ 8589E39 - .string "The curvier, the sweeter and tastier.$" - -gBerryDescriptionPart1_Aguav:: @ 8589E5F - .string "The flower is dainty. It is rare in its$" - -gBerryDescriptionPart2_Aguav:: @ 8589E87 - .string "ability to grow without light.$" - -gBerryDescriptionPart1_Iapapa:: @ 8589EA6 - .string "The BERRY is very big and sour.$" - -gBerryDescriptionPart2_Iapapa:: @ 8589EC6 - .string "It takes at least a day to grow.$" - -gBerryDescriptionPart1_Razz:: @ 8589EE7 - .string "The red BERRY tastes slightly spicy.$" - -gBerryDescriptionPart2_Razz:: @ 8589F0C - .string "It grows quickly in just four hours.$" - -gBerryDescriptionPart1_Bluk:: @ 8589F31 - .string "The BERRY is blue on the outside, but$" - -gBerryDescriptionPart2_Bluk:: @ 8589F57 - .string "it blackens the mouth when eaten.$" - -gBerryDescriptionPart1_Nanab:: @ 8589F79 - .string "This BERRY was the seventh$" - -gBerryDescriptionPart2_Nanab:: @ 8589F94 - .string "discovered in the world. It is sweet.$" - -gBerryDescriptionPart1_Wepear:: @ 8589FBA - .string "The flower is small and white. It has a$" - -gBerryDescriptionPart2_Wepear:: @ 8589FE2 - .string "delicate balance of bitter and sour.$" - -gBerryDescriptionPart1_Pinap:: @ 858A007 - .string "Weak against wind and cold.$" - -gBerryDescriptionPart2_Pinap:: @ 858A023 - .string "The fruit is spicy and the skin, sour.$" - -gBerryDescriptionPart1_Pomeg:: @ 858A04A - .string "However much it is watered,$" - -gBerryDescriptionPart2_Pomeg:: @ 858A066 - .string "it only grows up to six BERRIES.$" - -gBerryDescriptionPart1_Kelpsy:: @ 858A087 - .string "A rare variety shaped like a root.$" - -gBerryDescriptionPart2_Kelpsy:: @ 858A0AA - .string "Grows a very large flower.$" - -gBerryDescriptionPart1_Qualot:: @ 858A0C5 - .string "Loves water. Grows strong even in$" - -gBerryDescriptionPart2_Qualot:: @ 858A0E7 - .string "locations with constant rainfall.$" - -gBerryDescriptionPart1_Hondew:: @ 858A109 - .string "A BERRY that is very valuable and$" - -gBerryDescriptionPart2_Hondew:: @ 858A12B - .string "rarely seen. It is very delicious.$" - -gBerryDescriptionPart1_Grepa:: @ 858A14E - .string "Despite its tenderness and round$" - -gBerryDescriptionPart2_Grepa:: @ 858A16F - .string "shape, the BERRY is unimaginably sour.$" - -gBerryDescriptionPart1_Tamato:: @ 858A196 - .string "The BERRY is lip-bendingly spicy.$" - -gBerryDescriptionPart2_Tamato:: @ 858A1B8 - .string "It takes time to grow.$" - -gBerryDescriptionPart1_Cornn:: @ 858A1CF - .string "A BERRY from an ancient era. May not$" - -gBerryDescriptionPart2_Cornn:: @ 858A1F4 - .string "grow unless planted in quantity.$" - -gBerryDescriptionPart1_Magost:: @ 858A215 - .string "A BERRY that is widely said to have$" - -gBerryDescriptionPart2_Magost:: @ 858A239 - .string "a finely balanced flavor.$" - -gBerryDescriptionPart1_Rabuta:: @ 858A253 - .string "A rare variety that is overgrown with$" - -gBerryDescriptionPart2_Rabuta:: @ 858A279 - .string "hair. It is quite bitter.$" - -gBerryDescriptionPart1_Nomel:: @ 858A293 - .string "Quite sour. Just one bite makes it$" - -gBerryDescriptionPart2_Nomel:: @ 858A2B6 - .string "impossible to taste for three days.$" - -gBerryDescriptionPart1_Spelon:: @ 858A2DA - .string "The vividly red BERRY is very spicy.$" - -gBerryDescriptionPart2_Spelon:: @ 858A2FF - .string "Its warts secrete a spicy substance.$" - -gBerryDescriptionPart1_Pamtre:: @ 858A324 - .string "Drifts on the sea from somewhere.$" - -gBerryDescriptionPart2_Pamtre:: @ 858A346 - .string "It is thought to grow elsewhere.$" - -gBerryDescriptionPart1_Watmel:: @ 858A367 - .string "A huge BERRY, with some over 20$" - -gBerryDescriptionPart2_Watmel:: @ 858A387 - .string "inches discovered. Exceedingly sweet.$" - -gBerryDescriptionPart1_Durin:: @ 858A3AD - .string "Bitter to even look at. It is so$" - -gBerryDescriptionPart2_Durin:: @ 858A3CE - .string "bitter, no one has ever eaten it as is.$" - -gBerryDescriptionPart1_Belue:: @ 858A3F6 - .string "It is glossy and looks delicious, but$" - -gBerryDescriptionPart2_Belue:: @ 858A41C - .string "it is awfully sour. Takes time to grow.$" - -gBerryDescriptionPart1_Liechi:: @ 858A444 - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Liechi:: @ 858A469 - .string "contain the power of the sea.$" - -gBerryDescriptionPart1_Ganlon:: @ 858A487 - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Ganlon:: @ 858A4AC - .string "contain the power of the land.$" - -gBerryDescriptionPart1_Salac:: @ 858A4CB - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Salac:: @ 858A4F0 - .string "contain the power of the sky.$" - -gBerryDescriptionPart1_Petaya:: @ 858A50E - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Petaya:: @ 858A533 - .string "contain the power of all living things.$" - -gBerryDescriptionPart1_Apicot:: @ 858A55B - .string "A very mystifying BERRY. No telling$" - -gBerryDescriptionPart2_Apicot:: @ 858A57F - .string "what may happen or how it can be used.$" - -gBerryDescriptionPart1_Lansat:: @ 858A5A6 - .string "Said to be a legendary BERRY.$" - -gBerryDescriptionPart2_Lansat:: @ 858A5C4 - .string "Holding it supposedly brings joy.$" - -gBerryDescriptionPart1_Starf:: @ 858A5E6 - .string "So strong, it was abandoned at the$" - -gBerryDescriptionPart2_Starf:: @ 858A609 - .string "world's edge. Considered a mirage.$" - -gBerryDescriptionPart1_Enigma:: @ 858A62C - .string "A completely enigmatic BERRY.$" - -gBerryDescriptionPart2_Enigma:: @ 858A64A - .string "Appears to have the power of stars.$" - diff --git a/data/text/birch_speech.inc b/data/text/birch_speech.inc index abdbc89ef1..7a9ea6a611 100644 --- a/data/text/birch_speech.inc +++ b/data/text/birch_speech.inc @@ -1,4 +1,4 @@ -gText_Birch_Welcome:: @ 82C897B +gText_Birch_Welcome:: .string "Hi! Sorry to keep you waiting!\p" .string "Welcome to the world of POKéMON!\p" .string "My name is BIRCH.\p" @@ -6,12 +6,12 @@ gText_Birch_Welcome:: @ 82C897B .string "PROFESSOR.\p" .string "$" -gText_Birch_Pokemon:: @ 82C89FB +gText_Birch_Pokemon:: .string "This is what we call a “POKéMON.”\p" .string "\n" .string "$" -gText_Birch_MainSpeech:: @ 82C8A1F +gText_Birch_MainSpeech:: .string "This world is widely inhabited by\n" .string "creatures known as POKéMON.\p" .string "We humans live alongside POKéMON,\n" @@ -28,28 +28,28 @@ gText_Birch_MainSpeech:: @ 82C8A1F .string "That's what I do.\p" .string "$" -gText_Birch_AndYouAre:: @ 82C8BD0 +gText_Birch_AndYouAre:: .string "And you are?$" -gText_Birch_BoyOrGirl:: @ 82C8BDD +gText_Birch_BoyOrGirl:: .string "Are you a boy?\n" .string "Or are you a girl?$" -gText_Birch_WhatsYourName:: @ 82C8BFF +gText_Birch_WhatsYourName:: .string "All right.\n" .string "What's your name?$" -gText_Birch_SoItsPlayer:: @ 82C8C1C +gText_Birch_SoItsPlayer:: .string "So it's {PLAYER}{KUN}?$" -gText_Birch_YourePlayer:: @ 82C8C2A +gText_Birch_YourePlayer:: .string "Ah, okay!\p" .string "You're {PLAYER}{KUN} who's moving to my\n" .string "hometown of LITTLEROOT.\l" .string "I get it now!\p" .string "$" -gText_Birch_AreYouReady:: @ 82C8C7A +gText_Birch_AreYouReady:: .string "All right, are you ready?\p" .string "Your very own adventure is about\n" .string "to unfold.\p" diff --git a/data/text/blend_master.inc b/data/text/blend_master.inc index 31315bbd55..462d9c496c 100644 --- a/data/text/blend_master.inc +++ b/data/text/blend_master.inc @@ -1,34 +1,34 @@ -BerryBlender_Text_BlendWithTheBlendMaster: @ 82C427C +BerryBlender_Text_BlendWithTheBlendMaster: .string "BLEND MASTER: Indeed I am!\n" .string "The BLEND MASTER am I!\p" .string "Blend with me, and you shall witness\n" .string "the mastery I bring to blending!$" -BerryBlender_Text_SeeMyMasteryInAction: @ 82C42F4 +BerryBlender_Text_SeeMyMasteryInAction: .string "BLEND MASTER: Hmmm! So, you wish to\n" .string "see my mastery in action?$" -BerryBlender_Text_TooBusyNowIsee: @ 82C4332 +BerryBlender_Text_TooBusyNowIsee: .string "Hmmm!\p" .string "So, you are too busy now, I see!\p" .string "But fear not!\n" .string "I shall be here all day!\l" .string "Hurry back from your errand!$" -BerryBlender_Text_BlendMasterNoBerries: @ 82C439D +BerryBlender_Text_BlendMasterNoBerries: .string "Hmmm!\p" .string "You haven't got a single BERRY!\p" .string "I shall be here all day!\n" .string "Hurry back with some BERRIES!$" -BerryBlender_Text_BlendMasterKnowHowToMakePokeblocks: @ 82C43FA +BerryBlender_Text_BlendMasterKnowHowToMakePokeblocks: .string "Of course!\n" .string "Of course!\p" .string "Incidentally…\n" .string "You do know how to blend {POKEBLOCK}S\l" .string "from BERRIES?$" -BerryBlender_Text_BlendMasterExplainBerryBlending: @ 82C444C +BerryBlender_Text_BlendMasterExplainBerryBlending: .string "Hmmm!\p" .string "Ah, but it is a simple process!\p" .string "When the BLENDER's arrow comes to\n" @@ -37,40 +37,40 @@ BerryBlender_Text_BlendMasterExplainBerryBlending: @ 82C444C .string "When you see how precisely I press\n" .string "the A Button, you will understand.$" -BerryBlender_Text_BlendMasterLetsBerryBlender: @ 82C451B +BerryBlender_Text_BlendMasterLetsBerryBlender: .string "Fine!\p" .string "Let's get started, then!\p" .string "All together with the BLEND MASTER,\n" .string "let's BERRY BLENDER!$" -BerryBlender_Text_BlendMasterNoPokeblockCase: @ 82C4573 +BerryBlender_Text_BlendMasterNoPokeblockCase: .string "Hmmm!\p" .string "You don't appear to have gotten\n" .string "the {POKEBLOCK} CASE!\p" .string "I shall be here all day!\n" .string "Obtain the {POKEBLOCK} CASE and hurry back!$" -BerryBlender_Text_BlendMasterPokeblockCaseFull: @ 82C45E8 +BerryBlender_Text_BlendMasterPokeblockCaseFull: .string "Hmmm!\p" .string "Your {POKEBLOCK} CASE appears to be full!\p" .string "I shall be here all day!\n" .string "Use some {POKEBLOCK}S and hurry back!$" -BerryBlender_Text_WhoaAwesome: @ 82C464B +BerryBlender_Text_WhoaAwesome: .string "Whoa!\n" .string "Awesome!$" -BerryBlender_Text_WickedlyFast: @ 82C465A +BerryBlender_Text_WickedlyFast: .string "Wickedly fast!$" -BerryBlender_Text_WhatAnExpert: @ 82C4669 +BerryBlender_Text_WhatAnExpert: .string "What an expert!$" -BerryBlender_Text_MadeAmazingPokeblocksWithMaster: @ 82C4679 +BerryBlender_Text_MadeAmazingPokeblocksWithMaster: .string "When I blended with the MASTER,\n" .string "we made amazing {POKEBLOCK}S!$" -BerryBlender_Text_QualitiesOfBlendMaster: @ 82C46B1 +BerryBlender_Text_QualitiesOfBlendMaster: .string "Eyes that track the arrow with\n" .string "machinelike intensity…\p" .string "A hand that taps the A Button\n" @@ -78,7 +78,7 @@ BerryBlender_Text_QualitiesOfBlendMaster: @ 82C46B1 .string "Possessing these qualities makes\n" .string "the BLEND MASTER truly great.$" -BerryBlender_Text_MasterWorksOnSkillsInMountains: @ 82C4763 +BerryBlender_Text_MasterWorksOnSkillsInMountains: .string "The BLEND MASTER's supposed to work\n" .string "on his skills deep in the mountains.\p" .string "Sometimes, he comes to LILYCOVE\n" diff --git a/data/text/braille.inc b/data/text/braille.inc index 30f9b44d48..69f0a81e38 100644 --- a/data/text/braille.inc +++ b/data/text/braille.inc @@ -1,222 +1,112 @@ -Underwater_SealedChamber_Braille_GoUpHere: @ 82A6B15 - .byte 4 - .byte 6 - .byte 26 - .byte 13 - .byte 7 - .byte 9 +Underwater_SealedChamber_Braille_GoUpHere: + brailleformat 4, 6, 26, 13, 7, 9 .braille "GO UP HERE.$" -SealedChamber_OuterRoom_Braille_ABC: @ 82A6B27 - .byte 7 - .byte 6 - .byte 21 - .byte 13 - .byte 10 - .byte 9 +SealedChamber_OuterRoom_Braille_ABC: + brailleformat 7, 6, 21, 13, 10, 9 .braille "ABC$" -SealedChamber_OuterRoom_Braille_GHI: @ 82A6B31 - .byte 7 - .byte 6 - .byte 21 - .byte 13 - .byte 10 - .byte 9 +SealedChamber_OuterRoom_Braille_GHI: + brailleformat 7, 6, 21, 13, 10, 9 .braille "GHI$" -SealedChamber_OuterRoom_Braille_MNO: @ 82A6B3B - .byte 7 - .byte 6 - .byte 21 - .byte 13 - .byte 10 - .byte 9 +SealedChamber_OuterRoom_Braille_MNO: + brailleformat 7, 6, 21, 13, 10, 9 .braille "MNO$" -SealedChamber_OuterRoom_Braille_TUV: @ 82A6B45 - .byte 7 - .byte 6 - .byte 21 - .byte 13 - .byte 10 - .byte 9 +SealedChamber_OuterRoom_Braille_TUV: + brailleformat 7, 6, 21, 13, 10, 9 .braille "TUV$" -SealedChamber_OuterRoom_Braille_DEF: @ 82A6B4F - .byte 7 - .byte 6 - .byte 21 - .byte 13 - .byte 10 - .byte 9 +SealedChamber_OuterRoom_Braille_DEF: + brailleformat 7, 6, 21, 13, 10, 9 .braille "DEF$" -SealedChamber_OuterRoom_Braille_JKL: @ 82A6B59 - .byte 7 - .byte 6 - .byte 21 - .byte 13 - .byte 10 - .byte 9 +SealedChamber_OuterRoom_Braille_JKL: + brailleformat 7, 6, 21, 13, 10, 9 .braille "JKL$" -SealedChamber_OuterRoom_Braille_PQRS: @ 82A6B63 - .byte 7 - .byte 6 - .byte 21 - .byte 13 - .byte 10 - .byte 9 +SealedChamber_OuterRoom_Braille_PQRS: + brailleformat 7, 6, 21, 13, 10, 9 .braille "PQRS$" -SealedChamber_OuterRoom_Braille_Period: @ 82A6B6E - .byte 9 - .byte 6 - .byte 19 - .byte 13 - .byte 12 - .byte 9 +SealedChamber_OuterRoom_Braille_Period: + brailleformat 9, 6, 19, 13, 12, 9 .braille ".$" -SealedChamber_OuterRoom_Braille_WXYZ: @ 82A6B76 - .byte 7 - .byte 6 - .byte 21 - .byte 13 - .byte 10 - .byte 9 +SealedChamber_OuterRoom_Braille_WXYZ: + brailleformat 7, 6, 21, 13, 10, 9 .braille "WXYZ$" -SealedChamber_OuterRoom_Braille_Comma: @ 82A6B81 - .byte 9 - .byte 6 - .byte 19 - .byte 13 - .byte 12 - .byte 9 +SealedChamber_OuterRoom_Braille_Comma: + brailleformat 9, 6, 19, 13, 12, 9 .braille ",$" -SealedChamber_OuterRoom_Braille_DigHere: @ 82A6B89 - .byte 7 - .byte 4 - .byte 23 - .byte 15 - .byte 10 - .byte 7 +SealedChamber_OuterRoom_Braille_DigHere: + brailleformat 7, 4, 23, 15, 10, 7 .braille "DIG HERE.$" -SealedChamber_InnerRoom_Braille_FirstWailordLastRelicanth: @ 82A6B99 - .byte 0 - .byte 0 - .byte 29 - .byte 19 - .byte 3 - .byte 3 +SealedChamber_InnerRoom_Braille_FirstWailordLastRelicanth: + brailleformat 0, 0, 29, 19, 3, 3 .braille "FIRST COMES\n" .braille "WAILORD.\n" .braille "LAST COMES\n" .braille "RELICANTH.$" -SealedChamber_InnerRoom_Braille_InThisCaveWeHaveLived: @ 82A6BCA - .byte 2 - .byte 0 - .byte 26 - .byte 19 - .byte 5 - .byte 3 +SealedChamber_InnerRoom_Braille_InThisCaveWeHaveLived: + brailleformat 2, 0, 26, 19, 5, 3 .braille "IN THIS\n" .braille "CAVE WE\n" .braille "HAVE\n" .braille "LIVED.$" -SealedChamber_InnerRoom_Braille_WeOweAllToThePokemon: @ 82A6BEC - .byte 7 - .byte 2 - .byte 23 - .byte 17 - .byte 10 - .byte 5 +SealedChamber_InnerRoom_Braille_WeOweAllToThePokemon: + brailleformat 7, 2, 23, 17, 10, 5 .braille "WE OWE ALL\n" .braille "TO THE\n" .braille "POKEMON.$" -SealedChamber_InnerRoom_Braille_ButWeSealedThePokemonAway: @ 82A6C0D - .byte 3 - .byte 0 - .byte 25 - .byte 19 - .byte 6 - .byte 3 +SealedChamber_InnerRoom_Braille_ButWeSealedThePokemonAway: + brailleformat 3, 0, 25, 19, 6, 3 .braille "BUT, WE\n" .braille "SEALED THE\n" .braille "POKEMON\n" .braille "AWAY.$" -SealedChamber_InnerRoom_Braille_WeFearedIt: @ 82A6C34 - .byte 5 - .byte 6 - .byte 25 - .byte 13 - .byte 8 - .byte 9 +SealedChamber_InnerRoom_Braille_WeFearedIt: + brailleformat 5, 6, 25, 13, 8, 9 .braille "WE FEARED IT.$" -SealedChamber_InnerRoom_Braille_ThoseWithCourageHope: @ 82A6C48 - .byte 6 - .byte 0 - .byte 24 - .byte 19 - .byte 9 - .byte 3 +SealedChamber_InnerRoom_Braille_ThoseWithCourageHope: + brailleformat 6, 0, 24, 19, 9, 3 .braille "THOSE WITH\n" .braille "COURAGE,\n" .braille "THOSE WITH\n" .braille "HOPE.$" -SealedChamber_InnerRoom_Braille_OpenDoorEternalPokemonWaits: @ 82A6C73 - .byte 3 - .byte 2 - .byte 27 - .byte 17 - .byte 6 - .byte 5 +SealedChamber_InnerRoom_Braille_OpenDoorEternalPokemonWaits: + brailleformat 3, 2, 27, 17, 6, 5 .braille "OPEN A DOOR.\n" .braille "AN ETERNAL\n" .braille "POKEMON\n" .braille "WAITS.$" -DesertRuins_Braille_UseRockSmash: @ 82A6CA0 - .byte 1 - .byte 0 - .byte 27 - .byte 19 - .byte 4 - .byte 3 +DesertRuins_Braille_UseRockSmash: + brailleformat 1, 0, 27, 19, 4, 3 .braille "LEFT, LEFT,\n" .braille "DOWN, DOWN.\n" .braille "THEN, USE\n" .braille "ROCK SMASH.$" -IslandCave_Braille_RunLapAroundWall: @ 82A6CD4 - .byte 5 - .byte 0 - .byte 25 - .byte 19 - .byte 8 - .byte 3 +IslandCave_Braille_RunLapAroundWall: + brailleformat 5, 0, 25, 19, 8, 3 .braille "STAY CLOSE\n" .braille "TO THE WALL.\n" .braille "RUN AROUND\n" .braille "ONE LAP.$" -AncientTomb_Braille_ShineInTheMiddle: @ 82A6D06 - .byte 3 - .byte 0 - .byte 25 - .byte 19 - .byte 6 - .byte 3 +AncientTomb_Braille_ShineInTheMiddle: + brailleformat 3, 0, 25, 19, 6, 3 .braille "THOSE WHO\n" .braille "INHERIT OUR\n" .braille "WILL, SHINE\n" diff --git a/data/text/cable_club.inc b/data/text/cable_club.inc index b4f656a004..fd760e1cdb 100644 --- a/data/text/cable_club.inc +++ b/data/text/cable_club.inc @@ -1,167 +1,167 @@ -CableClub_Text_WelcomeWhichCableClubService: @ 8277EA4 +CableClub_Text_WelcomeWhichCableClubService: .string "Welcome to the POKéMON CABLE\n" .string "CLUB.\p" .string "Which of our services do you wish\n" .string "to use?$" -CableClub_Text_WhichService: @ 8277EF1 +CableClub_Text_WhichService: .string "Which of our services do you wish\n" .string "to use?$" -CableClub_Text_TradeUsingLinkCable:: @ 8277F1B +CableClub_Text_TradeUsingLinkCable:: .string "Trade POKéMON with another player\n" .string "using a GBA Game Link cable.$" -CableClub_Text_BattleUsingLinkCable:: @ 8277F5A +CableClub_Text_BattleUsingLinkCable:: .string "You may battle another TRAINER\n" .string "using a GBA Game Link cable.$" -CableClub_Text_RecordCornerUsingLinkCable:: @ 8277F96 +CableClub_Text_RecordCornerUsingLinkCable:: .string "You can use the RECORD CORNER with\n" .string "others using a GBA Game Link cable.$" @ Unused -CableClub_Text_CloseThisMenu: @ 8277FDD +CableClub_Text_CloseThisMenu: .string "Close this menu.$" -CableClub_Text_NeedTwoMonsForDoubleBattle: @ 8277FEE +CableClub_Text_NeedTwoMonsForDoubleBattle: .string "For a DOUBLE BATTLE, you must\n" .string "have at least two POKéMON.$" -CableClub_Text_NeedTwoMonsToTrade: @ 8278027 +CableClub_Text_NeedTwoMonsToTrade: .string "For trading, you must have at\n" .string "least two POKéMON with you.$" -CableClub_Text_CantTradeEnigmaBerry: @ 8278061 +CableClub_Text_CantTradeEnigmaBerry: .string "A POKéMON holding the {STR_VAR_1}\n" .string "BERRY can't be traded.$" -gText_PleaseWaitForLink:: @ 8278091 +gText_PleaseWaitForLink:: .string "Please wait.\n" .string "… … B Button: Cancel$" -gText_ConfirmLinkWhenPlayersReady:: @ 82780B3 +gText_ConfirmLinkWhenPlayersReady:: .string "When all players are ready…\n" .string "A Button: Confirm\l" .string "B Button: Cancel$" -gText_ConfirmStartLinkWithXPlayers:: @ 82780F2 +gText_ConfirmStartLinkWithXPlayers:: .string "Start link with {STR_VAR_1} players.\n" .string "A Button: Confirm\l" .string "B Button: Cancel$" -gText_AwaitingLinkup:: @ 8278131 +gText_AwaitingLinkup:: .string "Awaiting linkup…\n" .string "… … B Button: Cancel$" @ Unused -CableClub_Text_OkayToSaveProgress:: @ 8278157 +CableClub_Text_OkayToSaveProgress:: .string "Your progress must be saved before\n" .string "linking. Is it okay to save?$" -CableClub_Text_PleaseEnter: @ 8278197 +CableClub_Text_PleaseEnter: .string "Please enter.$" -CableClub_Text_DirectYouToYourRoom: @ 82781A5 +CableClub_Text_DirectYouToYourRoom: .string "I'll direct you to your room now.$" -Text_SomeoneIsNotReadyToLink: @ 82781C7 +Text_SomeoneIsNotReadyToLink: .string "Someone is not ready to link.\p" .string "Please come back after everyone\n" .string "has made preparations.$" -Text_LinkErrorPleaseReset: @ 827821C +Text_LinkErrorPleaseReset: .string "Sorry, we have a link error…\n" .string "Please reset and try again.$" -Text_PlayersMadeDifferentSelections: @ 8278255 +Text_PlayersMadeDifferentSelections: .string "The link partners appear to have\n" .string "made different selections.$" -CableClub_Text_PleaseVisitAgain: @ 8278291 +CableClub_Text_PleaseVisitAgain: .string "Please do visit again.$" -CableClub_Text_IncorrectNumberOfParticipants: @ 82782A8 +CableClub_Text_IncorrectNumberOfParticipants: .string "The number of participants is\n" .string "incorrect.$" -CableClub_Text_CantSingleBattleWithXPlayers: @ 82782D1 +CableClub_Text_CantSingleBattleWithXPlayers: .string "The SINGLE BATTLE Mode can't be\n" .string "played by {STR_VAR_1} players.$" -CableClub_Text_CantDoubleBattleWithXPlayers: @ 8278307 +CableClub_Text_CantDoubleBattleWithXPlayers: .string "The DOUBLE BATTLE Mode can't be\n" .string "played by {STR_VAR_1} players.$" -CableClub_Text_NeedFourPlayers: @ 827833D +CableClub_Text_NeedFourPlayers: .string "There must be four players to play\n" .string "this Battle Mode.$" -CableClub_Text_PleaseConfirmNumberAndRestart: @ 8278372 +CableClub_Text_PleaseConfirmNumberAndRestart: .string "Please confirm the number of\n" .string "players and start again.$" -Text_TerminateLinkConfirmation: @ 82783A8 +Text_TerminateLinkConfirmation: .string "The link will be terminated if you\n" .string "leave the room. Is that okay?$" -Text_TerminateLinkPleaseWait: @ 82783E9 +Text_TerminateLinkPleaseWait: .string "Terminating link…\n" .string "You will be escorted out of\l" .string "the room. Please wait.$" -CableClub_Text_TooBusyToNotice: @ 827842E +CableClub_Text_TooBusyToNotice: .string "This TRAINER is too busy to\n" .string "notice…$" -CableClub_Text_GotToLookAtTrainerCard: @ 8278452 +CableClub_Text_GotToLookAtTrainerCard: .string "Score! Got to look at {STR_VAR_1}'s\n" .string "TRAINER CARD!$" -CableClub_Text_GotToLookAtColoredTrainerCard: @ 827847B +CableClub_Text_GotToLookAtColoredTrainerCard: .string "Score! Got to look at {STR_VAR_1}'s\n" .string "TRAINER CARD!\p" .string "It's a {STR_VAR_2} card!$" -BattleColosseum_2P_Text_TakePlaceStartBattle: @ 82784B4 +BattleColosseum_2P_Text_TakePlaceStartBattle: .string "Please take your place and start\n" .string "your battle.$" -TradeCenter_Text_TakeSeatStartTrade: @ 82784E2 +TradeCenter_Text_TakeSeatStartTrade: .string "Please take your seat and start\n" .string "your trade.$" -RecordCorner_Text_ThanksForComing: @ 827850E +RecordCorner_Text_ThanksForComing: .string "Thanks for coming.$" -CableClub_Text_TrainerCardDataOverwritten: @ 8278521 +CableClub_Text_TrainerCardDataOverwritten: .string "The TRAINER CARD data will\n" .string "be overwritten.$" -CableClub_Text_HopeToSeeYouAgain: @ 827854C +CableClub_Text_HopeToSeeYouAgain: .string "I hope to see you again!$" -CableClub_Text_NotSetUpForFarAwayRegion: @ 8278565 +CableClub_Text_NotSetUpForFarAwayRegion: .string "I'm awfully sorry.\p" .string "We're not set up to conduct trades\n" .string "with TRAINERS far away in another\l" .string "region yet…$" -CableClub_Text_OtherTrainerNotReady: @ 82785C9 +CableClub_Text_OtherTrainerNotReady: .string "The other TRAINER is not ready.$" -CableClub_Text_YouHaveAMonThatCantBeTaken: @ 82785E9 +CableClub_Text_YouHaveAMonThatCantBeTaken: .string "You have at least one POKéMON\n" .string "that can't be taken.$" -RecordCorner_Text_TakeSeatAndWait: @ 827861C +RecordCorner_Text_TakeSeatAndWait: .string "Please take your seat and wait.$" -RecordCorner_Text_PlayerSentOverOneX: @ 827863C +RecordCorner_Text_PlayerSentOverOneX: .string "{STR_VAR_1} sent over one\n" .string "{STR_VAR_2}.$" -CableClub_Text_CantMixWithJapaneseGame: @ 8278651 +CableClub_Text_CantMixWithJapaneseGame: .string "Sorry, there is a transmission error.\p" .string "You may not mix records with \n" .string "Japanese Ruby or Sapphire games.\p" @@ -169,67 +169,67 @@ CableClub_Text_CantMixWithJapaneseGame: @ 8278651 .string "Japanese Emerald and overseas Ruby\l" .string "or Sapphire games at the same time.$" -CableClub_Text_AdapterNotConnected: @ 827871F +CableClub_Text_AdapterNotConnected: .string "The Wireless Adapter is not\n" .string "connected properly.$" -CableClub_Text_ParticipantsStepUpToCounter: @ 827874F +CableClub_Text_ParticipantsStepUpToCounter: .string "Participants are asked to step up\n" .string "to the reception counter.$" @ Unused -CableClub_Text_Hello: @ 827878B +CableClub_Text_Hello: .string "Hello!$" @ Unused -CableClub_Text_PleaseWait: @ 8278792 +CableClub_Text_PleaseWait: .string "Please wait.$" -CableClub_Text_YouMayTradeHere:: @ 827879F +CableClub_Text_YouMayTradeHere:: .string "You may trade your POKéMON here\n" .string "with another TRAINER.$" -CableClub_Text_YouMayBattleHere:: @ 82787D5 +CableClub_Text_YouMayBattleHere:: .string "You may battle with your friends\n" .string "here.$" -CableClub_Text_CanMakeBerryPowder:: @ 82787FC +CableClub_Text_CanMakeBerryPowder:: .string "Two to five TRAINERS can make\n" .string "BERRY POWDER together.$" -CableClub_Text_CanMixRecords:: @ 8278831 +CableClub_Text_CanMixRecords:: .string "The records of two to four players\n" .string "can be mixed together.$" @ Unused -CableClub_Text_GuideToVariousServices: @ 827886B +CableClub_Text_GuideToVariousServices: .string "A guide to the WIRELESS CLUB's\n" .string "various services.$" -CableClub_Text_CancelSelectedItem:: @ 827889C +CableClub_Text_CancelSelectedItem:: .string "Cancels the selected MENU item.$" @ Unused -CableClub_Text_WhichBattleMode: @ 82788BC +CableClub_Text_WhichBattleMode: .string "Which battle mode would you like?$" @ Unused -CableClub_Text_ReturnsToPreviousStep: @ 82788DE +CableClub_Text_ReturnsToPreviousStep: .string "Returns to the previous step.$" -CableClub_Text_NeedBerryForBerryCrush: @ 82788FC +CableClub_Text_NeedBerryForBerryCrush: .string "To use the BERRY CRUSH service,\n" .string "you must have at least one BERRY.$" -CableClub_Text_NeedTwoMonsForUnionRoom: @ 827893E +CableClub_Text_NeedTwoMonsForUnionRoom: .string "To enter the UNION ROOM, you must\n" .string "have at least two POKéMON.$" -CableClub_Text_NoEnigmaBerryInUnionRoom: @ 827897B +CableClub_Text_NoEnigmaBerryInUnionRoom: .string "No POKéMON holding the {STR_VAR_1}\n" .string "BERRY may enter the UNION ROOM.$" -CableClub_Text_UnionRoomAdapterNotConnected: @ 82789B5 +CableClub_Text_UnionRoomAdapterNotConnected: .string "This is the POKéMON WIRELESS CLUB\n" .string "UNION ROOM.\p" .string "Unfortunately, your Wireless\n" @@ -237,21 +237,21 @@ CableClub_Text_UnionRoomAdapterNotConnected: @ 82789B5 .string "Please do come again.$" @ Unused -CableClub_Text_OhExcuseMe: @ 8278A39 +CableClub_Text_OhExcuseMe: .string "Oh…\n" .string "Excuse me!$" -CableClub_Text_PlayerIsWaiting: @ 8278A48 +CableClub_Text_PlayerIsWaiting: .string "It appears as if {STR_VAR_1} is playing\n" .string "right now.\l" .string "Go for it!$" -MossdeepCity_GameCorner_1F_Text_DescribeWhichGame: @ 8278A7D +MossdeepCity_GameCorner_1F_Text_DescribeWhichGame: .string "I can explain game rules to you,\n" .string "if you'd like.\p" .string "Which game should I describe?$" -MossdeepCity_GameCorner_1F_Text_PokemonJumpInfo: @ 8278ACB +MossdeepCity_GameCorner_1F_Text_PokemonJumpInfo: .string "“POKéMON JUMP”\p" .string "Make your POKéMON skip the VINE WHIP\n" .string "rope with the A Button.\p" @@ -264,7 +264,7 @@ MossdeepCity_GameCorner_1F_Text_PokemonJumpInfo: @ 8278ACB .string "Good things happen if everyone\n" .string "jumps in time.$" -MossdeepCity_GameCorner_1F_Text_DodrioBerryPickingInfo: @ 8278BF1 +MossdeepCity_GameCorner_1F_Text_DodrioBerryPickingInfo: .string "“DODRIO BERRY-PICKING”\p" .string "Command DODRIO's three heads to\n" .string "catch falling BERRIES.\p" @@ -273,47 +273,47 @@ MossdeepCity_GameCorner_1F_Text_DodrioBerryPickingInfo: @ 8278BF1 .string "To play this game, you must have\n" .string "a DODRIO.$" -MossdeepCity_GameCorner_1F_Text_TalkToOldManToPlay: @ 8278CAC +MossdeepCity_GameCorner_1F_Text_TalkToOldManToPlay: .string "If you want to play a game,\n" .string "please tell the old man beside me.$" -MossdeepCity_GameCorner_1F_Text_WelcomeCanYouWait: @ 8278CEB +MossdeepCity_GameCorner_1F_Text_WelcomeCanYouWait: .string "Hi, welcome!\n" .string "Are you here to play games using\l" .string "Wireless Communication?\p" .string "Can you wait just a little bit?$" -MossdeepCity_GameCorner_1F_Text_ComeAgain: @ 8278D51 +MossdeepCity_GameCorner_1F_Text_ComeAgain: .string "All right, come again!$" -MossdeepCity_GameCorner_1F_Text_AdapterNotConnected: @ 8278D68 +MossdeepCity_GameCorner_1F_Text_AdapterNotConnected: .string "The Wireless Adapter isn't connected.\n" .string "Come back when it's hooked up!$" -MossdeepCity_GameCorner_1F_Text_PlayWhichGame: @ 8278DAD +MossdeepCity_GameCorner_1F_Text_PlayWhichGame: .string "All right, which game did you want\n" .string "to play?$" -MossdeepCity_GameCorner_1F_Text_EnterWhichPokemon: @ 8278DD9 +MossdeepCity_GameCorner_1F_Text_EnterWhichPokemon: .string "Which POKéMON would you like to\n" .string "enter?$" -MossdeepCity_GameCorner_1F_Text_AllGoodToGo: @ 8278E00 +MossdeepCity_GameCorner_1F_Text_AllGoodToGo: .string "Okay, you're all good to go.\n" .string "Don't let the others beat you!$" @ Unused -MossdeepCity_GameCorner_1F_Text_LeavingDoComeAgain: @ 8278E3C +MossdeepCity_GameCorner_1F_Text_LeavingDoComeAgain: .string "Are you leaving now?\n" .string "Do come again!$" -MossdeepCity_GameCorner_1F_Text_ExplainRequiredMon: @ 8278E60 +MossdeepCity_GameCorner_1F_Text_ExplainRequiredMon: .string "It doesn't look like you have any\n" .string "POKéMON that you can enter…\p" .string "Would you like me to explain what\n" .string "kinds of POKéMON can enter?$" -MossdeepCity_GameCorner_1F_Text_ShortJumpingPokemonAllowed: @ 8278EDC +MossdeepCity_GameCorner_1F_Text_ShortJumpingPokemonAllowed: .string "“POKéMON JUMP” is open to POKéMON\n" .string "around 28 inches or less.\p" .string "What you can't enter are those\n" @@ -322,16 +322,16 @@ MossdeepCity_GameCorner_1F_Text_ShortJumpingPokemonAllowed: @ 8278EDC .string "swim, burrow, or fly.\p" .string "That's all you need to know.$" -MossdeepCity_GameCorner_1F_Text_OnlyDodrioAllowed: @ 8278FA4 +MossdeepCity_GameCorner_1F_Text_OnlyDodrioAllowed: .string "DODRIO BERRY-PICKING is a game that \n" .string "only DODRIO may enter.$" @ Unused -MossdeepCity_GameCorner_1F_Text_RetryPlease: @ 8278FE0 +MossdeepCity_GameCorner_1F_Text_RetryPlease: .string "Could you retry this from the start\n" .string "again, please?$" -CableClub_Text_WelcomeWhichDirectCornerRoom: @ 8279013 +CableClub_Text_WelcomeWhichDirectCornerRoom: .string "Welcome to the POKéMON WIRELESS\n" .string "CLUB DIRECT CORNER.\p" .string "You may interact directly with\n" @@ -339,22 +339,22 @@ CableClub_Text_WelcomeWhichDirectCornerRoom: @ 8279013 .string "Which room would you like to\n" .string "enter?$" -CableClub_Text_TradePokemon: @ 827909D +CableClub_Text_TradePokemon: .string "Would you like to trade POKéMON?$" -CableClub_Text_PlayWhichBattleMode: @ 82790BE +CableClub_Text_PlayWhichBattleMode: .string "Which Battle Mode would you like\n" .string "to play?$" -CableClub_Text_AccessRecordCorner: @ 82790E8 +CableClub_Text_AccessRecordCorner: .string "Would you like to access\n" .string "the RECORD CORNER?$" -CableClub_Text_UseBerryCrush: @ 8279114 +CableClub_Text_UseBerryCrush: .string "Would you like to use the\n" .string "BERRY CRUSH System?$" -CableClub_Text_ExplainBattleModes: @ 8279142 +CableClub_Text_ExplainBattleModes: .string "There are three Battle Modes.\p" .string "SINGLE BATTLE is for two TRAINERS\n" .string "with one or more POKéMON each.\p" @@ -369,25 +369,25 @@ CableClub_Text_ExplainBattleModes: @ 8279142 .string "Each TRAINER can have one POKéMON\n" .string "in battle at a time.$" -CableClub_Text_ChooseGroupLeaderOfTwo: @ 82792CD +CableClub_Text_ChooseGroupLeaderOfTwo: .string "Please decide which of you two\n" .string "will become the LEADER.\p" .string "The other player must then choose\n" .string "“JOIN GROUP.”$" -CableClub_Text_ChooseGroupLeaderOfFour: @ 8279334 +CableClub_Text_ChooseGroupLeaderOfFour: .string "Please decide which of you four\n" .string "will become the GROUP LEADER.\p" .string "The other players must then choose\n" .string "“JOIN GROUP.”$" -CableClub_Text_ChooseGroupLeader: @ 82793A3 +CableClub_Text_ChooseGroupLeader: .string "Please decide which of you will\n" .string "become the GROUP LEADER.\p" .string "The other players must then choose\n" .string "“JOIN GROUP.”$" -CableClub_Text_WelcomeUnionRoomEnter: @ 827940D +CableClub_Text_WelcomeUnionRoomEnter: .string "Welcome to the POKéMON WIRELESS\n" .string "CLUB UNION ROOM.\p" .string "You may interact directly with\n" @@ -395,7 +395,7 @@ CableClub_Text_WelcomeUnionRoomEnter: @ 827940D .string "whom you may not even know.\p" .string "Would you like to enter the ROOM?$" -CableClub_Text_UnionRoomInfo: @ 82794B8 +CableClub_Text_UnionRoomInfo: .string "The TRAINERS in the UNION ROOM\n" .string "will be those players around you\l" .string "who have also entered the ROOM.\p" @@ -409,11 +409,11 @@ CableClub_Text_UnionRoomInfo: @ 82794B8 .string "trade.\p" .string "Would you like to enter the ROOM?$" -CableClub_Text_EnjoyUnionRoom: @ 827961C +CableClub_Text_EnjoyUnionRoom: .string "I hope you enjoy your time in\n" .string "the UNION ROOM.$" -CableClub_Text_FirstTimeRightThisWay: @ 827964A +CableClub_Text_FirstTimeRightThisWay: .string "Hello!\n" .string "My name is TEALA.\p" .string "This must be your first time\n" @@ -424,7 +424,7 @@ CableClub_Text_FirstTimeRightThisWay: @ 827964A .string "floor of our POKéMON CENTER.\p" .string "Right this way, please.$" -CableClub_Text_ExplainWirelessClubFirstTime: @ 8279718 +CableClub_Text_ExplainWirelessClubFirstTime: .string "On the top floor, there are two\n" .string "rooms.\p" .string "First, the room on the left.\n" @@ -446,14 +446,14 @@ CableClub_Text_ExplainWirelessClubFirstTime: @ 8279718 .string "I hope you enjoy the Wireless \n" .string "Communication System.$" -CableClub_Text_AskAboutLinking: @ 8279937 +CableClub_Text_AskAboutLinking: .string "Hello, {PLAYER}!\p" .string "It's me, TEALA, the POKéMON\n" .string "CENTER 2F attendant.\p" .string "Is there something you needed to\n" .string "ask me about linking?$" -CableClub_Text_ExplainWirelessClub: @ 82799AA +CableClub_Text_ExplainWirelessClub: .string "Let me explain how the POKéMON\n" .string "WIRELESS CLUB works.\p" .string "On this, the top floor, there are\n" @@ -482,6 +482,6 @@ CableClub_Text_ExplainWirelessClub: @ 82799AA .string "I hope you enjoy the Wireless \n" .string "Communication System.$" -CableClub_Text_HopeYouEnjoyWirelessSystem: @ 8279C91 +CableClub_Text_HopeYouEnjoyWirelessSystem: .string "I hope you enjoy the Wireless\n" .string "Communication System.$" diff --git a/data/text/check_furniture.inc b/data/text/check_furniture.inc index 23f966bbdb..abf6cf48ab 100644 --- a/data/text/check_furniture.inc +++ b/data/text/check_furniture.inc @@ -1,27 +1,27 @@ -Text_PictureBookShelf: @ 82A81E5 +Text_PictureBookShelf: .string "There's a set of POKéMON picture books.$" -Text_BookShelf: @ 82A820D +Text_BookShelf: .string "It's filled with all sorts of books.$" -Text_PokemonCenterBookShelf: @ 82A8232 +Text_PokemonCenterBookShelf: .string "POKéMON magazines!\n" .string "POKéMON PAL…\p" .string "POKéMON HANDBOOK…\n" .string "ADORABLE POKéMON…$" -Text_Vase: @ 82A8276 +Text_Vase: .string "This vase looks expensive…\n" .string "Peered inside…\p" .string "But, it was empty.$" -Text_EmptyTrashCan: @ 82A82B3 +Text_EmptyTrashCan: .string "It's empty.$" -Text_ShopShelf: @ 82A82BF +Text_ShopShelf: .string "The shelves brim with all sorts of\n" .string "POKéMON merchandise.$" -Text_Blueprint: @ 82A82F7 +Text_Blueprint: .string "A blueprint of some sort?\n" .string "It's too complicated!$" diff --git a/data/text/contest_link.inc b/data/text/contest_link.inc index d9873904f1..f2f1469e0f 100644 --- a/data/text/contest_link.inc +++ b/data/text/contest_link.inc @@ -1,38 +1,38 @@ @ With the exception of Link standby, none of the below texts are used -gTest_MissedTurn:: @ 827E8CE +gTest_MissedTurn:: .string "Missed turn$" -gText_LinkStandby4:: @ 827E8DA +gText_LinkStandby4:: .string "Link standby!$" -gText_WinnerIsPlayersMonCongrats:: @ 827E8E8 +gText_WinnerIsPlayersMonCongrats:: .string "The winner is {STR_VAR_1}'s {STR_VAR_2}!\n" .string "Congratulations!$" -gText_WinnerIsPlayersMon:: @ 827E910 +gText_WinnerIsPlayersMon:: .string "The winner is {STR_VAR_1}'s {STR_VAR_2}!{PAUSE_UNTIL_PRESS}$" -gText_PrimaryJudgingNumX:: @ 827E929 +gText_PrimaryJudgingNumX:: .string "Primary judging: No. {STR_VAR_1}{PAUSE_UNTIL_PRESS}$" -gText_SecondaryJudgingNumX:: @ 827E943 +gText_SecondaryJudgingNumX:: .string "Secondary judging: No. {STR_VAR_1}{PAUSE_UNTIL_PRESS}$" -gText_SetEventNumX:: @ 827E95F +gText_SetEventNumX:: .string "Set event: No. {STR_VAR_1}{PAUSE_UNTIL_PRESS}$" -gText_MoveUsedMostOften:: @ 827E973 +gText_MoveUsedMostOften:: .string "The move used most often:\n" .string "{STR_VAR_1}{PAUSE_UNTIL_PRESS}$" -gText_MostImpressiveMon:: @ 827E992 +gText_MostImpressiveMon:: .string "The most impressive POKéMON:\n" .string "{STR_VAR_1}'s {STR_VAR_2}{PAUSE_UNTIL_PRESS}$" -gText_SetEventNumX2:: @ 827E9B9 +gText_SetEventNumX2:: .string "Set event: No. {STR_VAR_1}{PAUSE_UNTIL_PRESS}$" -gText_LinkTVProgramWillNotBeMadeTrainerLost:: @ 827E9CD +gText_LinkTVProgramWillNotBeMadeTrainerLost:: .string "A link TV program will not be made\n" .string "because the TRAINER lost.{PAUSE_UNTIL_PRESS}$" diff --git a/data/text/contest_painting.inc b/data/text/contest_painting.inc index 2aa8c6a937..5152cb3bb8 100644 --- a/data/text/contest_painting.inc +++ b/data/text/contest_painting.inc @@ -1,8 +1,9 @@ -gUnknown_0827EA0C:: @ 827EA0C +gContestHallPaintingCaption:: .string "{STR_VAR_1}\n" .string "{STR_VAR_2}'s {STR_VAR_3}$" -gUnknown_0827EA17:: @ 827EA17 +@ Unused +gContestPaintingContest:: .string "CONTEST$" gContestRankNormal:: diff --git a/data/text/contest_strings.inc b/data/text/contest_strings.inc index 3cebef526d..e57e76a528 100644 --- a/data/text/contest_strings.inc +++ b/data/text/contest_strings.inc @@ -1,725 +1,725 @@ @ Contest move effect descriptions -gText_HighlyAppealingMove:: @ 827CB82 +gText_HighlyAppealingMove:: .string "A highly appealing move.$" -gText_UserMoreEasilyStartled:: @ 827CB9B +gText_UserMoreEasilyStartled:: .string "After this move, the user is\nmore easily startled.$" -gText_GreatAppealButNoMoreToEnd:: @ 827CBCE +gText_GreatAppealButNoMoreToEnd:: .string "Makes a great appeal, but\nallows no more to the end.$" -gText_UsedRepeatedlyWithoutBoringJudge:: @ 827CC03 +gText_UsedRepeatedlyWithoutBoringJudge:: .string "Can be repeatedly used\nwithout boring the JUDGE.$" -gText_AvoidStartledByOthersOnce:: @ 827CC34 +gText_AvoidStartledByOthersOnce:: .string "Can avoid being startled\nby others once.$" -gText_AvoidStartledByOthers:: @ 827CC5D +gText_AvoidStartledByOthers:: .string "Can avoid being startled\nby others.$" -gText_AvoidStartledByOthersLittle:: @ 827CC81 +gText_AvoidStartledByOthersLittle:: .string "Can avoid being startled\nby others a little.$" -gText_UserLessLikelyStartled:: @ 827CCAE +gText_UserLessLikelyStartled:: .string "After this move, the user is\nless likely to be startled.$" -gText_SlightlyStartleFrontMon:: @ 827CCE7 +gText_SlightlyStartleFrontMon:: .string "Slightly startles the\nPOKéMON in front.$" -gText_SlightlyStartleAppealed:: @ 827CD0F +gText_SlightlyStartleAppealed:: .string "Slightly startles those\nthat have made appeals.$" -gText_StartleAppealedBeforeUser:: @ 827CD3F +gText_StartleAppealedBeforeUser:: .string "Startles the POKéMON that\nappealed before the user.$" -gText_StartleAllAppealed:: @ 827CD73 +gText_StartleAllAppealed:: .string "Startles all POKéMON that\nhave done their appeals.$" -gText_BadlyStartleFrontMon:: @ 827CDA6 +gText_BadlyStartleFrontMon:: .string "Badly startles the\nPOKéMON in front.$" -gText_BadlyStartleAppealed:: @ 827CDCB +gText_BadlyStartleAppealed:: .string "Badly startles those that\nhave made appeals.$" -gText_StartleAppealedBeforeUser2:: @ 827CDF8 +gText_StartleAppealedBeforeUser2:: .string "Startles the POKéMON that\nappealed before the user.$" -gText_StartleAllAppealed2:: @ 827CE2C +gText_StartleAllAppealed2:: .string "Startles all POKéMON that\nhave done their appeals.$" -gText_ShiftJudgesAttentionFromOthers:: @ 827CE5F +gText_ShiftJudgesAttentionFromOthers:: .string "Shifts the JUDGE's\nattention from others.$" -gText_StartleMonHasJudgesAttention:: @ 827CE89 +gText_StartleMonHasJudgesAttention:: .string "Startles the POKéMON that\nhas the JUDGE's attention.$" -gText_JamOthersMissesTurn:: @ 827CEBE +gText_JamOthersMissesTurn:: .string "Jams the others, and misses\none turn of appeals.$" -gText_StartleMonsMadeSameTypeAppeal:: @ 827CEEF +gText_StartleMonsMadeSameTypeAppeal:: .string "Startles POKéMON that\nmade a same-type appeal.$" -gText_BadlyStartleCoolAppeals:: @ 827CF1E +gText_BadlyStartleCoolAppeals:: .string "Badly startles POKéMON\nthat made COOL appeals.$" -gText_BadlyStartleBeautyAppeals:: @ 827CF4D +gText_BadlyStartleBeautyAppeals:: .string "Badly startles POKéMON\nthat made BEAUTY appeals.$" -gText_BadlyStartleCuteAppeals:: @ 827CF7E +gText_BadlyStartleCuteAppeals:: .string "Badly startles POKéMON\nthat made CUTE appeals.$" -gText_BadlyStartleSmartAppeals:: @ 827CFAD +gText_BadlyStartleSmartAppeals:: .string "Badly startles POKéMON\nthat made SMART appeals.$" -gText_BadlyStartleToughAppeals:: @ 827CFDD +gText_BadlyStartleToughAppeals:: .string "Badly startles POKéMON\nthat made TOUGH appeals.$" -gText_MakeMonAfterUserNervous:: @ 827D00D +gText_MakeMonAfterUserNervous:: .string "Makes one POKéMON after\nthe user nervous.$" -gText_MakeAllMonsAfterUserNervous:: @ 827D037 +gText_MakeAllMonsAfterUserNervous:: .string "Makes all POKéMON after\nthe user nervous.$" -gText_WorsenConditionOfThoseMadeAppeals:: @ 827D061 +gText_WorsenConditionOfThoseMadeAppeals:: .string "Worsens the condition of\nthose that made appeals.$" -gText_BadlyStartleMonsGoodCondition:: @ 827D093 +gText_BadlyStartleMonsGoodCondition:: .string "Badly startles POKéMON in\ngood condition.$" -gText_AppealGreatIfPerformedFirst:: @ 827D0BD +gText_AppealGreatIfPerformedFirst:: .string "The appeal works great if\nperformed first.$" -gText_AppealGreatIfPerformedLast:: @ 827D0E8 +gText_AppealGreatIfPerformedLast:: .string "The appeal works great if\nperformed last.$" -gText_AppealAsGoodAsThoseBeforeIt:: @ 827D112 +gText_AppealAsGoodAsThoseBeforeIt:: .string "Makes the appeal as good\nas those before it.$" -gText_AppealAsGoodAsOneBeforeIt:: @ 827D13F +gText_AppealAsGoodAsOneBeforeIt:: .string "Makes the appeal as good\nas the one before it.$" -gText_AppealBetterLaterItsPerformed:: @ 827D16E +gText_AppealBetterLaterItsPerformed:: .string "The appeal works better\nthe later it is performed.$" -gText_AppealVariesDependingOnTiming:: @ 827D1A1 +gText_AppealVariesDependingOnTiming:: .string "The appeal's quality varies\ndepending on its timing.$" -gText_WorksWellIfSameTypeAsBefore:: @ 827D1D6 +gText_WorksWellIfSameTypeAsBefore:: .string "Works well if it's the same\ntype as the one before.$" -gText_WorksWellIfDifferentTypeAsBefore:: @ 827D20A +gText_WorksWellIfDifferentTypeAsBefore:: .string "Works well if different in\ntype than the one before.$" -gText_AffectedByAppealInFront:: @ 827D23F +gText_AffectedByAppealInFront:: .string "Affected by how well the\nappeal in front goes.$" -gText_UpsConditionHelpsPreventNervousness:: @ 827D26E +gText_UpsConditionHelpsPreventNervousness:: .string "Ups the user's condition.\nHelps prevent nervousness.$" -gText_AppealWorksWellIfConditionGood:: @ 827D2A3 +gText_AppealWorksWellIfConditionGood:: .string "The appeal works well if the\nuser's condition is good.$" -gText_NextAppealMadeEarlier:: @ 827D2DA +gText_NextAppealMadeEarlier:: .string "The next appeal can be\nmade earlier next turn.$" -gText_NextAppealMadeLater:: @ 827D309 +gText_NextAppealMadeLater:: .string "The next appeal can be\nmade later next turn.$" -gText_TurnOrderMoreEasilyScrambled:: @ 827D336 +gText_TurnOrderMoreEasilyScrambled:: .string "Makes the next turn's order\nmore easily scrambled.$" -gText_ScrambleOrderOfNextAppeals:: @ 827D369 +gText_ScrambleOrderOfNextAppeals:: .string "Scrambles the order of\nappeals on the next turn.$" -gText_AppealExcitesAudienceInAnyContest:: @ 827D39A +gText_AppealExcitesAudienceInAnyContest:: .string "An appeal that excites the\naudience in any CONTEST.$" -gText_BadlyStartlesMonsGoodAppeals:: @ 827D3CE +gText_BadlyStartlesMonsGoodAppeals:: .string "Badly startles all POKéMON\nthat made good appeals.$" -gText_AppealBestMoreCrowdExcited:: @ 827D401 +gText_AppealBestMoreCrowdExcited:: .string "The appeal works best the\nmore the crowd is excited.$" -gText_TemporarilyStopCrowdExcited:: @ 827D436 +gText_TemporarilyStopCrowdExcited:: .string "Temporarily stops the\ncrowd from growing excited.$" @ Unused move names -gText_RainDance:: @ 827D468 +gText_RainDance:: .string "RAIN DANCE$" -gText_Rage:: @ 827D473 +gText_Rage:: .string "RAGE$" -gText_FocusEnergy:: @ 827D478 +gText_FocusEnergy:: .string "FOCUS ENERGY$" -gText_Hypnosis:: @ 827D485 +gText_Hypnosis:: .string "HYPNOSIS$" -gText_Softboiled:: @ 827D48E +gText_Softboiled:: .string "SOFTBOILED$" -gText_HornAttack:: @ 827D499 +gText_HornAttack:: .string "HORN ATTACK$" -gText_SwordsDance:: @ 827D4A5 +gText_SwordsDance:: .string "SWORDS DANCE$" -gText_Conversion:: @ 827D4B2 +gText_Conversion:: .string "CONVERSION$" -gText_SunnyDay:: @ 827D4BD +gText_SunnyDay:: .string "SUNNY DAY$" -gText_Rest2:: @ 827D4C7 +gText_Rest2:: .string "REST$" -gText_Vicegrip:: @ 827D4CC +gText_Vicegrip:: .string "VICEGRIP$" -gText_DefenseCurl:: @ 827D4D5 +gText_DefenseCurl:: .string "DEFENSE CURL$" -gText_LockOn:: @ 827D4E2 +gText_LockOn:: .string "LOCK-ON$" @ Contest type names -gContestMoveTypeCoolText:: @ 827D4EA +gContestMoveTypeCoolText:: .string "COOL$" -gContestMoveTypeBeautyText:: @ 827D4EF +gContestMoveTypeBeautyText:: .string "BEAUTY$" -gContestMoveTypeCuteText:: @ 827D4F6 +gContestMoveTypeCuteText:: .string "CUTE$" -gContestMoveTypeSmartText:: @ 827D4FB +gContestMoveTypeSmartText:: .string "SMART$" -gContestMoveTypeToughText:: @ 827D501 +gContestMoveTypeToughText:: .string "TOUGH$" -gText_AppealNumWhichMoveWillBePlayed:: @ 827D507 +gText_AppealNumWhichMoveWillBePlayed:: .string "Appeal no. {STR_VAR_1}!\n" .string "Which move will be played?$" -gText_AppealNumButItCantParticipate:: @ 827D531 +gText_AppealNumButItCantParticipate:: .string "Appeal no. {STR_VAR_1}!\n" .string "But it can't participate!$" -gText_MonAppealedWithMove:: @ 827D55A +gText_MonAppealedWithMove:: .string "{STR_VAR_1} appealed with\n" .string "{STR_VAR_2}!$" -gText_MonWasWatchingOthers:: @ 827D56F +gText_MonWasWatchingOthers:: .string "{STR_VAR_1} was watching\n" .string "the others.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_AllOutOfAppealTime:: @ 827D597 +gText_AllOutOfAppealTime:: .string "We're all out of\n" .string "Appeal Time!{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" @ Unused appeal result texts -gText_ButAppealWasJammed:: @ 827D5C1 +gText_ButAppealWasJammed:: .string "But the appeal was\n" .string "jammed.$" -gText_FollowedAnotherMonsLead:: @ 827D5DC +gText_FollowedAnotherMonsLead:: .string "It followed another\n" .string "POKéMON's lead.$" -gText_ButItMessedUp:: @ 827D600 +gText_ButItMessedUp:: .string "But it messed up.$" -gText_WentBetterThanUsual:: @ 827D612 +gText_WentBetterThanUsual:: .string "It went better than\n" .string "usual.$" -gText_JudgeLookedAwayForSomeReason:: @ 827D62D +gText_JudgeLookedAwayForSomeReason:: .string "The JUDGE looked away\n" .string "for some reason.$" -gText_WorkedHardToBuildOnPastMistakes:: @ 827D654 +gText_WorkedHardToBuildOnPastMistakes:: .string "It worked hard to build on\n" .string "past mistakes.$" -gText_CantMakeAnyMoreMoves:: @ 827D67E +gText_CantMakeAnyMoreMoves:: .string "It can't make any more\n" .string "moves.$" -gText_WorkedFrighteninglyWell:: @ 827D69C +gText_WorkedFrighteninglyWell:: .string "It worked frighteningly\n" .string "well.$" -gText_WorkedHardAsStandoutMon:: @ 827D6BA +gText_WorkedHardAsStandoutMon:: .string "It worked as hard as the\n" .string "standout POKéMON.$" -gText_JudgedLookedOnExpectantly:: @ 827D6E5 +gText_JudgedLookedOnExpectantly:: .string "The JUDGE looked on\n" .string "expectantly.$" -gText_WorkedRatherWell:: @ 827D706 +gText_WorkedRatherWell:: .string "It worked rather well.$" -gText_WorkedLittleBetterThanUsual:: @ 827D71D +gText_WorkedLittleBetterThanUsual:: .string "It worked a little better\n" .string "than usual.$" @ Round result texts -gText_MonFailedToStandOutAtAll:: @ 827D743 +gText_MonFailedToStandOutAtAll:: .string "{STR_VAR_1} failed to\n" .string "stand out at all…{PAUSE_UNTIL_PRESS}$" -gText_MonDidntStandOutVeryMuch:: @ 827D764 +gText_MonDidntStandOutVeryMuch:: .string "{STR_VAR_1} didn't stand\n" .string "out very much…{PAUSE_UNTIL_PRESS}$" -gText_MonCaughtALittleAttention:: @ 827D785 +gText_MonCaughtALittleAttention:: .string "{STR_VAR_1} caught a\n" .string "little attention.{PAUSE_UNTIL_PRESS}$" -gText_MonAttractedALotOfAttention:: @ 827D7A5 +gText_MonAttractedALotOfAttention:: .string "{STR_VAR_1} attracted a\n" .string "lot of attention.{PAUSE_UNTIL_PRESS}$" -gText_MonCommandedTotalAttention:: @ 827D7C8 +gText_MonCommandedTotalAttention:: .string "{STR_VAR_1} commanded\n" .string "total attention.{PAUSE_UNTIL_PRESS}$" -gText_MonHasntMadeItsAppeal:: @ 827D7E8 +gText_MonHasntMadeItsAppeal:: .string "{STR_VAR_1} hasn't made\n" .string "its appeal.{PAUSE_UNTIL_PRESS}$" @ Unused -gText_AnticipationSwelledForMonsAppealNext2:: @ 827D805 +gText_AnticipationSwelledForMonsAppealNext2:: .string "Anticipation swelled for\n" .string "{STR_VAR_1}'s appeal next.$" -gText_EmptyContestString:: @ 827D830 +gText_EmptyContestString:: .string "$" -gText_JudgesViewsOnMonHeldFirm:: @ 827D831 +gText_JudgesViewsOnMonHeldFirm:: .string "The JUDGE 's views on\n" .string "{STR_VAR_1} held firm.$" -gText_MonsXChangedPerceptions:: @ 827D855 +gText_MonsXChangedPerceptions:: .string "{STR_VAR_1}'s {STR_VAR_3}\n" .string "changed perceptions.$" -gText_MonsAppealEffectWoreOff:: @ 827D872 +gText_MonsAppealEffectWoreOff:: .string "{STR_VAR_1}'s appeal\n" .string "effect wore off.$" -gText_SpecialAppealsEffectWoreOff:: @ 827D88F +gText_SpecialAppealsEffectWoreOff:: .string "The special appeal's\n" .string "effect wore off.$" -gText_EveryonesAppealsMadeToLookSame:: @ 827D8B5 +gText_EveryonesAppealsMadeToLookSame:: .string "Everyone's appeals were\n" .string "made to look the same.$" -gText_CheapenedMonsAppeal:: @ 827D8E4 +gText_CheapenedMonsAppeal:: .string "It cheapened\n" .string "{STR_VAR_2}'s appeal.$" -gText_CheapenedAppealOfThoseAhead:: @ 827D8FE +gText_CheapenedAppealOfThoseAhead:: .string "It cheapened the appeal\n" .string "of those ahead.$" -gText_StoleAttentionAwayFromMon:: @ 827D926 +gText_StoleAttentionAwayFromMon:: .string "It stole attention away\n" .string "from {STR_VAR_2}.$" -gText_CheapenedMonsAppeal2:: @ 827D947 +gText_CheapenedMonsAppeal2:: .string "It cheapened\n" .string "{STR_VAR_2}'s appeal.$" -gText_SeverelyCheapenedOtherAppeals:: @ 827D961 +gText_SeverelyCheapenedOtherAppeals:: .string "It severely cheapened\n" .string "other appeals.$" -gText_AnticipationSwelledForMonsAppealNext:: @ 827D986 +gText_AnticipationSwelledForMonsAppealNext:: .string "Anticipation swelled for\n" .string "{STR_VAR_1}'s appeal next.$" -gText_CheapenedAppealOfThoseAhead2:: @ 827D9B1 +gText_CheapenedAppealOfThoseAhead2:: .string "It cheapened the appeal\n" .string "of those ahead.$" -gText_CheapenedJudgesFavoriteAppeal:: @ 827D9D9 +gText_CheapenedJudgesFavoriteAppeal:: .string "It cheapened the JUDGE's\n" .string "favorite appeal.$" -gText_AppealsOfOthersCheapenedByHalf:: @ 827DA03 +gText_AppealsOfOthersCheapenedByHalf:: .string "The appeals of others\n" .string "were cheapened by half.$" -gText_StoodOutToMakeUpForBeingJammed:: @ 827DA31 +gText_StoodOutToMakeUpForBeingJammed:: .string "It stood out to make up\n" .string "for being jammed.$" -gText_CantParticipateInAppealsAnyMore:: @ 827DA5B +gText_CantParticipateInAppealsAnyMore:: .string "It can't participate in\n" .string "appeals any more.$" -gText_TouchedJudgeForFantasticAppeal:: @ 827DA85 +gText_TouchedJudgeForFantasticAppeal:: .string "It touched the JUDGE for\n" .string "a fantastic appeal.$" -gText_AnticipationRoseForUpcomingAppeals:: @ 827DAB2 +gText_AnticipationRoseForUpcomingAppeals:: .string "Anticipation rose for\n" .string "upcoming appeals.$" -gText_StoodOutAsMuchAsSpecialAppeals:: @ 827DADA +gText_StoodOutAsMuchAsSpecialAppeals:: .string "It stood out as much as\n" .string "special appeals.$" -gText_StoodOutAsMuchAsMon:: @ 827DB03 +gText_StoodOutAsMuchAsMon:: .string "It stood out as much as\n" .string "{STR_VAR_1}.$" -gText_JammedAppealsMadeEvenLessNoticeable:: @ 827DB1F +gText_JammedAppealsMadeEvenLessNoticeable:: .string "Jammed appeals were made\n" .string "even less noticeable.$" -gText_EveryonesAppealsMadeSame:: @ 827DB4E +gText_EveryonesAppealsMadeSame:: .string "Everyone's appeals were\n" .string "made the same.$" @ Appeal result texts -gText_BecameMoreConsciousOfOtherMons:: @ 827DB75 +gText_BecameMoreConsciousOfOtherMons:: .string "It became more conscious\n" .string "of the other POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonCantMakeAnAppealAfterThis:: @ 827DBB0 +gText_MonCantMakeAnAppealAfterThis:: .string "{STR_VAR_1} can't make an\n" .string "appeal after this.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_SettledDownJustLittleBit:: @ 827DBE0 +gText_SettledDownJustLittleBit:: .string "It settled down just a\n" .string "little bit.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_BecameObliviousToOtherMons:: @ 827DC0F +gText_BecameObliviousToOtherMons:: .string "It became oblivious to\n" .string "the other POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_BecameLessAwareOfOtherMons:: @ 827DC45 +gText_BecameLessAwareOfOtherMons:: .string "It became less aware of\n" .string "the other POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_StoppedCaringAboutOtherMons:: @ 827DC7C +gText_StoppedCaringAboutOtherMons:: .string "It stopped caring about\n" .string "other POKéMON much.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_TriedToStartleOtherMons:: @ 827DCB4 +gText_TriedToStartleOtherMons:: .string "It tried to startle the\n" .string "other POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_TriedToDazzleOthers:: @ 827DCE7 +gText_TriedToDazzleOthers:: .string "It tried to dazzle the\n" .string "others.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_JudgeLookedAwayFromMon:: @ 827DD12 +gText_JudgeLookedAwayFromMon:: .string "The JUDGE looked away\n" .string "from {STR_VAR_1}.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_TriedToUnnerveNextMon:: @ 827DD3D +gText_TriedToUnnerveNextMon:: .string "It tried to unnerve the\n" .string "next POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonBecameNervous:: @ 827DD6F +gText_MonBecameNervous:: .string "{STR_VAR_1} became\n" .string "nervous.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_AppealTriedToUnnerveWaitingMons:: @ 827DD8E +gText_AppealTriedToUnnerveWaitingMons:: .string "The appeal tried to\n" .string "unnerve waiting POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_TauntedMonsDoingWell:: @ 827DDC7 +gText_TauntedMonsDoingWell:: .string "It taunted POKéMON\n" .string "doing well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonRegainedItsForm:: @ 827DDF2 +gText_MonRegainedItsForm:: .string "{STR_VAR_1} regained its\n" .string "form.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_TriedToJamMonDoingWell:: @ 827DE14 +gText_TriedToJamMonDoingWell:: .string "It tried to jam POKéMON\n" .string "doing well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_StandoutMonHustledEvenMore:: @ 827DE44 +gText_StandoutMonHustledEvenMore:: .string "The standout {STR_VAR_1}\n" .string "hustled even more.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_LargelyUnnoticedMonWorkedHard:: @ 827DE73 +gText_LargelyUnnoticedMonWorkedHard:: .string "The largely unnoticed\n" .string "{STR_VAR_1} worked hard.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_WorkedAsMuchAsMonBefore:: @ 827DEA5 +gText_WorkedAsMuchAsMonBefore:: .string "It worked as much as\n" .string "POKéMON before it.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealDidNotGoWell:: @ 827DED9 +gText_MonsAppealDidNotGoWell:: .string "{STR_VAR_1}'s appeal did\n" .string "not go well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_WorkedAsMuchAsPrecedingMon:: @ 827DF02 +gText_WorkedAsMuchAsPrecedingMon:: .string "It worked as much as the\n" .string "preceding POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealDidNotGoWell2:: @ 827DF3A +gText_MonsAppealDidNotGoWell2:: .string "{STR_VAR_1}'s appeal did\n" .string "not go well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealDidNotGoWell3:: @ 827DF63 +gText_MonsAppealDidNotGoWell3:: .string "{STR_VAR_1}'s appeal did\n" .string "not go well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealWentSlightlyWell:: @ 827DF8C +gText_MonsAppealWentSlightlyWell:: .string "{STR_VAR_1}'s appeal\n" .string "went slightly well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealWentPrettyWell:: @ 827DFB8 +gText_MonsAppealWentPrettyWell:: .string "{STR_VAR_1}'s appeal\n" .string "went pretty well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealWentExcellently:: @ 827DFE2 +gText_MonsAppealWentExcellently:: .string "{STR_VAR_1}'s appeal\n" .string "went excellently.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealWasDud:: @ 827E00C +gText_MonsAppealWasDud:: .string "{STR_VAR_1}'s appeal was\n" .string "a dud.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealDidNotWorkVeryWell:: @ 827E02F +gText_MonsAppealDidNotWorkVeryWell:: .string "{STR_VAR_1}'s appeal did\n" .string "not work very well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealWentSlightlyWell2:: @ 827E05F +gText_MonsAppealWentSlightlyWell2:: .string "{STR_VAR_1}'s appeal\n" .string "went slightly well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealWentPrettyWell2:: @ 827E08B +gText_MonsAppealWentPrettyWell2:: .string "{STR_VAR_1}'s appeal\n" .string "went pretty well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealWentVeryWell:: @ 827E0B5 +gText_MonsAppealWentVeryWell:: .string "{STR_VAR_1}'s appeal\n" .string "went very well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsAppealWentExcellently2:: @ 827E0DD +gText_MonsAppealWentExcellently2:: .string "{STR_VAR_1}'s appeal\n" .string "went excellently.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_SameTypeAsOneBeforeGood:: @ 827E107 +gText_SameTypeAsOneBeforeGood:: .string "It's the same type as the\n" .string "POKéMON before--good!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_NotSameTypeAsOneBeforeGood:: @ 827E143 +gText_NotSameTypeAsOneBeforeGood:: .string "It's not the same type as\n" .string "the one before--good!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_StoodOutMuchMoreThanMonBefore:: @ 827E17F +gText_StoodOutMuchMoreThanMonBefore:: .string "It stood out much more\n" .string "than the POKéMON before.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_DidntDoAsWellAsMonBefore:: @ 827E1BB +gText_DidntDoAsWellAsMonBefore:: .string "It didn't do as well as the\n" .string "POKéMON before.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsConditionRoseAboveUsual:: @ 827E1F3 +gText_MonsConditionRoseAboveUsual:: .string "{STR_VAR_1}'s condition\n" .string "rose above usual.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MonsHotStatusMadeGreatAppeal:: @ 827E220 +gText_MonsHotStatusMadeGreatAppeal:: .string "{STR_VAR_1}'s hot status\n" .string "made it a great appeal!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MovedUpInLineForNextAppeal:: @ 827E254 +gText_MovedUpInLineForNextAppeal:: .string "It moved up in line for\n" .string "the next appeal.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_MovedBackInLineForNextAppeal:: @ 827E289 +gText_MovedBackInLineForNextAppeal:: .string "It moved back in line once\n" .string "for the next appeal.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_ScrambledUpOrderForNextTurn:: @ 827E2C5 +gText_ScrambledUpOrderForNextTurn:: .string "It scrambled up the\n" .string "order for the next turn.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gText_JudgeLookedAtMonExpectantly:: @ 827E2FE +gText_JudgeLookedAtMonExpectantly:: .string "The JUDGE looked at\n" .string "{STR_VAR_1} expectantly.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_AppealComboWentOverWell:: @ 827E32E +gText_AppealComboWentOverWell:: .string "The appeal combo went\n" .string "over well.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_AppealComboWentOverVeryWell:: @ 827E35B +gText_AppealComboWentOverVeryWell:: .string "The appeal combo went\n" .string "over very well.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_AppealComboWentOverExcellently:: @ 827E38D +gText_AppealComboWentOverExcellently:: .string "The appeal combo went\n" .string "over excellently.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonManagedToAvertGaze:: @ 827E3C1 +gText_MonManagedToAvertGaze:: .string "{STR_VAR_1} managed to\n" .string "avert its gaze.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonManagedToAvoidSeeingIt:: @ 827E3EB +gText_MonManagedToAvoidSeeingIt:: .string "{STR_VAR_1} managed to\n" .string "avoid seeing it.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonIsntFazedByThatSortOfThing:: @ 827E416 +gText_MonIsntFazedByThatSortOfThing:: .string "{STR_VAR_1} isn't fazed\n" .string "by that sort of thing.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonBecameALittleDistracted:: @ 827E448 +gText_MonBecameALittleDistracted:: .string "{STR_VAR_1} became a\n" .string "little distracted.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_TriedToStartleOtherPokemon:: @ 827E473 +gText_TriedToStartleOtherPokemon:: .string "It tried to startle the\n" .string "other POKéMON.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonLookedDownOutOfDistraction:: @ 827E4A6 +gText_MonLookedDownOutOfDistraction:: .string "{STR_VAR_1} looked down\n" .string "out of distraction.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonTurnedBackOutOfDistraction:: @ 827E4D5 +gText_MonTurnedBackOutOfDistraction:: .string "{STR_VAR_1} turned back\n" .string "out of distraction.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonCouldntHelpUtteringCry:: @ 827E504 +gText_MonCouldntHelpUtteringCry:: .string "{STR_VAR_1} couldn't help\n" .string "uttering a cry.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonCouldntHelpLeapingUp:: @ 827E531 +gText_MonCouldntHelpLeapingUp:: .string "{STR_VAR_1} couldn't help\n" .string "leaping up.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonTrippedOutOfDistraction:: @ 827E55A +gText_MonTrippedOutOfDistraction:: .string "{STR_VAR_1} tripped over\n" .string "out of distraction.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonWasTooNervousToMove:: @ 827E58A +gText_MonWasTooNervousToMove:: .string "{STR_VAR_1} was too\n" .string "nervous to move.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_ButItMessedUp2:: @ 827E5B2 +gText_ButItMessedUp2:: .string "But it messed up.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_ButItFailedToMakeTargetNervous:: @ 827E5D0 +gText_ButItFailedToMakeTargetNervous:: .string "But it failed to make\n" .string "the target nervous.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_ButItFailedToMakeAnyoneNervous:: @ 827E606 +gText_ButItFailedToMakeAnyoneNervous:: .string "But it failed to make\n" .string "anyone nervous.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_ButItWasIgnored:: @ 827E638 +gText_ButItWasIgnored:: .string "But it was ignored…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_CouldntImproveItsCondition:: @ 827E658 +gText_CouldntImproveItsCondition:: .string "But it couldn't improve\n" .string "its condition…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_BadConditionResultedInWeakAppeal:: @ 827E68B +gText_BadConditionResultedInWeakAppeal:: .string "Its bad condition\n" .string "resulted in a weak appeal.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonWasUnaffected:: @ 827E6C4 +gText_MonWasUnaffected:: .string "{STR_VAR_1} was\n" .string "unaffected.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_RepeatedAppeal:: @ 827E6E3 +gText_RepeatedAppeal:: .string "{STR_VAR_1} disappointed\n" .string "by repeating an appeal.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonsXWentOverGreat:: @ 827E717 +gText_MonsXWentOverGreat:: .string "{STR_VAR_1}'s {STR_VAR_3}\n" .string "went over great.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonsXDidntGoOverWell:: @ 827E73C +gText_MonsXDidntGoOverWell:: .string "{STR_VAR_1}'s {STR_VAR_3}\n" .string "didn't go over well here…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonsXGotTheCrowdGoing:: @ 827E76A +gText_MonsXGotTheCrowdGoing:: .string "{STR_VAR_1}'s {STR_VAR_3}\n" .string "got the crowd going.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonCantAppealNextTurn:: @ 827E793 +gText_MonCantAppealNextTurn:: .string "{STR_VAR_1} can't appeal\n" .string "next turn…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_AttractedCrowdsAttention:: @ 827E7BA +gText_AttractedCrowdsAttention:: .string "It attracted the crowd's\n" .string "attention.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_CrowdContinuesToWatchMon:: @ 827E7EA +gText_CrowdContinuesToWatchMon:: .string "The crowd continues to\n" .string "watch {STR_VAR_3}.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_MonsMoveIsIgnored:: @ 827E817 +gText_MonsMoveIsIgnored:: .string "{STR_VAR_1}'s\n" .string "{STR_VAR_2} is ignored.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gText_Contest_Shyness:: @ 827E837 +gText_Contest_Shyness:: .string "shyness$" -gText_Contest_Anxiety:: @ 827E83F +gText_Contest_Anxiety:: .string "anxiety$" -gText_Contest_Laziness:: @ 827E847 +gText_Contest_Laziness:: .string "laziness$" -gText_Contest_Hesitancy:: @ 827E850 +gText_Contest_Hesitancy:: .string "hesitancy$" -gText_Contest_Fear:: @ 827E85A +gText_Contest_Fear:: .string "fear$" -gText_Contest_Coolness:: @ 827E85F +gText_Contest_Coolness:: .string "coolness$" -gText_Contest_Beauty:: @ 827E868 +gText_Contest_Beauty:: .string "beauty$" -gText_Contest_Cuteness:: @ 827E86F +gText_Contest_Cuteness:: .string "cuteness$" -gText_Contest_Smartness:: @ 827E878 +gText_Contest_Smartness:: .string "smartness$" -gText_Contest_Toughness:: @ 827E882 +gText_Contest_Toughness:: .string "toughness$" @ Unused -gText_Tension:: @ 827E88C +gText_Tension:: .string "TENSION$" -gText_CoolMove:: @ 827E894 +gText_CoolMove:: .string "COOL Move$" -gText_BeautyMove:: @ 827E89E +gText_BeautyMove:: .string "BEAUTY Move$" -gText_CuteMove:: @ 827E8AA +gText_CuteMove:: .string "CUTE Move$" -gText_SmartMove:: @ 827E8B4 +gText_SmartMove:: .string "SMART Move$" -gText_ToughMove:: @ 827E8BF +gText_ToughMove:: .string "TOUGH Move$" -gText_3QuestionMarks:: @ 827E8CA +gText_3QuestionMarks:: .string "???$" diff --git a/data/text/event_ticket_1.inc b/data/text/event_ticket_1.inc index da4d525f64..cd2b4219d7 100644 --- a/data/text/event_ticket_1.inc +++ b/data/text/event_ticket_1.inc @@ -1,16 +1,16 @@ -EventTicket_Text_ShowOldSeaMap: @ 82A6848 +EventTicket_Text_ShowOldSeaMap: .string "The ferry to SLATEPORT is…\p" .string "I beg your pardon?\n" .string "Can we sail to this place on the map?\p" .string "I know someone who will help you better.\n" .string "Please wait.$" -EventTicket_Text_ThatPass: @ 82A68D2 +EventTicket_Text_ThatPass: .string "The ferry to SLATEPORT is…\p" .string "Oh?\n" .string "That PASS…$" -EventTicket_Text_ShowEonTicket: @ 82A68FC +EventTicket_Text_ShowEonTicket: .string "Aye, mate, are you the one who brought\n" .string "that mighty odd PASS?\p" .string "I'll tell you, you're trying to reach a\n" @@ -20,22 +20,22 @@ EventTicket_Text_ShowEonTicket: @ 82A68FC .string "That shivers my timbers!\p" .string "All aboard!$" -EventTicket_Text_SouthernIslandSailBack: @ 82A69F1 +EventTicket_Text_SouthernIslandSailBack: .string "Aye, mate, there's nothing here to\n" .string "see or do on this forgettable island.\p" .string "What say we sail back to LILYCOVE?$" -EventTicket_Text_SailHome: @ 82A6A5D +EventTicket_Text_SailHome: .string "Aye, right, then!\n" .string "Sail home we will!$" -EventTicket_Text_AsYouLike: @ 82A6A82 +EventTicket_Text_AsYouLike: .string "Aye, right, as you like, then.$" -SouthernIsland_Interior_Text_Sign: @ 82A6AA1 +SouthernIsland_Interior_Text_Sign: .string "“All dreams are but another reality.\n" .string "Never forget…”$" -SouthernIsland_Exterior_Text_Sign: @ 82A6AD5 +SouthernIsland_Exterior_Text_Sign: .string "“Those whose memories fade seek to\n" .string "carve them in their hearts…”$" diff --git a/data/text/event_ticket_2.inc b/data/text/event_ticket_2.inc index e081edbd95..0165b5fde9 100644 --- a/data/text/event_ticket_2.inc +++ b/data/text/event_ticket_2.inc @@ -1,4 +1,4 @@ -EventTicket_Text_OldSeaMapTooFar: @ 82C68A5 +EventTicket_Text_OldSeaMapTooFar: .string "What's up, youngster?\p" .string "What, it's you who's supposed to have\n" .string "a tattered old map?\p" @@ -7,12 +7,12 @@ EventTicket_Text_OldSeaMapTooFar: @ 82C68A5 .string "Boy, this is quite a ways away.\n" .string "I'm afraid I can't help you…$" -EventTicket_Text_BrineyHoldOnASecond: @ 82C6951 +EventTicket_Text_BrineyHoldOnASecond: .string "BRINEY: Hold on a second!\p" .string "What's the idea of turning down\n" .string "someone that I owe so much to?$" -EventTicket_Text_BrineyLetsSail: @ 82C69AA +EventTicket_Text_BrineyLetsSail: .string "{PLAYER}{KUN}, I'm terribly sorry.\p" .string "You came to me seeking my help,\n" .string "and we almost turned you away.\p" @@ -21,7 +21,7 @@ EventTicket_Text_BrineyLetsSail: @ 82C69AA .string "Let's find this island on\n" .string "this OLD SEA MAP!$" -EventTicket_Text_OddTicketGetOnBoard: @ 82C6A71 +EventTicket_Text_OddTicketGetOnBoard: .string "Is it you who brought that odd\n" .string "ticket?\p" .string "Where you're trying to go is an island\n" @@ -31,16 +31,16 @@ EventTicket_Text_OddTicketGetOnBoard: @ 82C6A71 .string "as a sailing man!\p" .string "Get on board, youngster!$" -FarawayIsland_Entrance_Text_SailorReturn: @ 82C6B42 +FarawayIsland_Entrance_Text_SailorReturn: .string "CAPT. BRINEY can be so maddeningly\n" .string "fickle…\p" .string "Do you want to return to LILYCOVE?$" -BirthIsland_Harbor_Text_SailorReturn: @ 82C6B90 +BirthIsland_Harbor_Text_SailorReturn: .string "What an oddly shaped island, eh?\n" .string "Do you want to return to LILYCOVE?$" -EventTicket_Text_OddTicketsWhereTo: @ 82C6BD4 +EventTicket_Text_OddTicketsWhereTo: .string "Is it you who brought those\n" .string "odd tickets?\p" .string "… … …Hm.\p" @@ -53,13 +53,13 @@ EventTicket_Text_OddTicketsWhereTo: @ 82C6BD4 .string "Get on board, youngster!\n" .string "Where shall we sail first?$" -NavelRock_Harbor_Text_SailorReturn: @ 82C6CE6 +NavelRock_Harbor_Text_SailorReturn: .string "Did… Did you hear that?\n" .string "That low growling from deep in there.\p" .string "Are you sure it's safe?\n" .string "Do you think we should leave?$" -FarawayIsland_Entrance_Text_Sign: @ 82C6D5A +FarawayIsland_Entrance_Text_Sign: .string "The writing is fading as if it was\n" .string "written a long time ago…\p" .string "“…ber, 6th day\n" @@ -67,5 +67,5 @@ FarawayIsland_Entrance_Text_Sign: @ 82C6D5A .string "again…et it be a kindhearted pers…\l" .string "…ith that hope, I depar…”$" -FarawayIsland_Interior_Text_Mew: @ 82C6DFF +FarawayIsland_Interior_Text_Mew: .string "Myuu…$" diff --git a/data/text/frontier_brain.inc b/data/text/frontier_brain.inc index 3bce8076ed..1292f2a564 100644 --- a/data/text/frontier_brain.inc +++ b/data/text/frontier_brain.inc @@ -1,108 +1,108 @@ @ Battle Tower -gText_AnabelWonSilver:: @ 82C843F +gText_AnabelWonSilver:: .string "It's very disappointing…$" -gText_AnabelDefeatSilver:: @ 82C8458 +gText_AnabelDefeatSilver:: .string "Okay, I understand…$" -gText_AnabelWonGold:: @ 82C846C +gText_AnabelWonGold:: .string "I'm terribly sorry…$" -gText_AnabelDefeatGold:: @ 82C8480 +gText_AnabelDefeatGold:: .string "Thank you…$" @ Battle Dome -gText_TuckerWonSilver:: @ 82C848B +gText_TuckerWonSilver:: .string "Ahahaha! Aren't you embarrassed?\n" .string "Everyone's watching!$" -gText_TuckerDefeatSilver:: @ 82C84C1 +gText_TuckerDefeatSilver:: .string "Grr…\n" .string "What the…$" -gText_TuckerWonGold:: @ 82C84D0 +gText_TuckerWonGold:: .string "My DOME ACE title isn't just for show!$" -gText_TuckerDefeatGold:: @ 82C84F7 +gText_TuckerDefeatGold:: .string "Ahahaha!\n" .string "You're inspiring!$" @ Battle Factory -gText_NolandWonSilver:: @ 82C8512 +gText_NolandWonSilver:: .string "Way to work!\n" .string "That was a good lesson, eh?$" -gText_NolandDefeatSilver:: @ 82C853B +gText_NolandDefeatSilver:: .string "Good job!\n" .string "You know what you're doing!$" -gText_NolandWonGold:: @ 82C8561 +gText_NolandWonGold:: .string "Hey, hey, hey!\n" .string "You're finished already?$" -gText_NolandDefeatGold:: @ 82C8589 +gText_NolandDefeatGold:: .string "What happened here?$" @ Battle Pike -gText_LucyWonSilver:: @ 82C859D +gText_LucyWonSilver:: .string "Humph…$" -gText_LucyDefeatSilver:: @ 82C85A4 +gText_LucyDefeatSilver:: .string "Urk…$" -gText_LucyWonGold:: @ 82C85A9 +gText_LucyWonGold:: .string "Hah!$" -gText_LucyDefeatGold:: @ 82C85AE +gText_LucyDefeatGold:: .string "Darn!$" @ Battle Arena -gText_GretaWonSilver:: @ 82C85B4 +gText_GretaWonSilver:: .string "Oh, come on!\n" .string "You have to try harder than that!$" -gText_GretaDefeatSilver:: @ 82C85E3 +gText_GretaDefeatSilver:: .string "No way!\n" .string "Good job!$" -gText_GretaWonGold:: @ 82C85F5 +gText_GretaWonGold:: .string "Heheh!\n" .string "What did you expect?$" -gText_GretaDefeatGold:: @ 82C8611 +gText_GretaDefeatGold:: .string "Huh?\n" .string "Are you serious?!$" @ Battle Palace -gText_SpenserWonSilver:: @ 82C8628 +gText_SpenserWonSilver:: .string "Your POKéMON are wimpy because\n" .string "you're wimpy as a TRAINER!$" -gText_SpenserDefeatSilver:: @ 82C8662 +gText_SpenserDefeatSilver:: .string "Ah…\n" .string "Now this is something else…$" -gText_SpenserWonGold:: @ 82C8682 +gText_SpenserWonGold:: .string "Gwahahaha!\n" .string "My brethren, we have nothing to fear!$" -gText_SpenserDefeatGold:: @ 82C86B3 +gText_SpenserDefeatGold:: .string "Gwah!\n" .string "Hahahaha!$" @ Battle Pyramid -gText_BrandonWonSilver:: @ 82C86C3 +gText_BrandonWonSilver:: .string "Hey! What's wrong with you!\n" .string "Let's see some effort! Get up!$" -gText_BrandonDefeatSilver:: @ 82C86FE +gText_BrandonDefeatSilver:: .string "That's it! You've done great!\n" .string "You've worked hard for this!$" -gText_BrandonWonGold:: @ 82C8739 +gText_BrandonWonGold:: .string "Hey! Don't you give up now!\n" .string "Get up! Don't lose faith in yourself!$" -gText_BrandonDefeatGold:: @ 82C877B +gText_BrandonDefeatGold:: .string "That's it! You've done it!\n" .string "You kept working for this!$" diff --git a/data/text/lottery_corner.inc b/data/text/lottery_corner.inc index 102e6b4a27..44571ef562 100644 --- a/data/text/lottery_corner.inc +++ b/data/text/lottery_corner.inc @@ -1,4 +1,4 @@ -LilycoveCity_DepartmentStore_1F_Text_LotteryCornerDrawTicket: @ 82A6390 +LilycoveCity_DepartmentStore_1F_Text_LotteryCornerDrawTicket: .string "This is the POKéMON LOTTERY CORNER.\p" .string "All shoppers at our DEPARTMENT STORE\n" .string "get to draw a POKéMON LOTO TICKET.\p" @@ -8,70 +8,70 @@ LilycoveCity_DepartmentStore_1F_Text_LotteryCornerDrawTicket: @ 82A6390 .string "Would you like to draw a POKéMON\n" .string "LOTO TICKET?$" -LilycoveCity_DepartmentStore_1F_Text_ComeBackTomorrow: @ 82A6496 +LilycoveCity_DepartmentStore_1F_Text_ComeBackTomorrow: .string "Please come back tomorrow.$" -LilycoveCity_DepartmentStore_1F_Text_PleaseVisitAgain: @ 82A64B1 +LilycoveCity_DepartmentStore_1F_Text_PleaseVisitAgain: .string "Please do visit again.$" -LilycoveCity_DepartmentStore_1F_Text_PleasePickTicket: @ 82A64C8 +LilycoveCity_DepartmentStore_1F_Text_PleasePickTicket: .string "Please pick a LOTO TICKET.\n" .string "…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -LilycoveCity_DepartmentStore_1F_Text_TicketNumberIsXPleaseWait: @ 82A650B +LilycoveCity_DepartmentStore_1F_Text_TicketNumberIsXPleaseWait: .string "The LOTO TICKET number is {STR_VAR_1}.\p" .string "I need to run a check on this number\n" .string "to see if it matches any of your\l" .string "POKéMON's ID numbers. Please wait.$" -LilycoveCity_DepartmentStore_1F_Text_TicketMatchesPartyMon: @ 82A6592 +LilycoveCity_DepartmentStore_1F_Text_TicketMatchesPartyMon: .string "Congratulations!\p" .string "The ID number of your team's\n" .string "{STR_VAR_1} matches your\l" .string "LOTO TICKET's number!$" -LilycoveCity_DepartmentStore_1F_Text_TicketMatchesPCMon: @ 82A65E6 +LilycoveCity_DepartmentStore_1F_Text_TicketMatchesPCMon: .string "Congratulations!\p" .string "The ID number of your PC-boxed\n" .string "{STR_VAR_1} matches your\l" .string "LOTO TICKET's number!$" -LilycoveCity_DepartmentStore_1F_Text_NoNumbersMatched: @ 82A663C +LilycoveCity_DepartmentStore_1F_Text_NoNumbersMatched: .string "I'm sorry.\n" .string "None of the numbers matched.$" -LilycoveCity_DepartmentStore_1F_Text_TwoDigitsMatched: @ 82A6664 +LilycoveCity_DepartmentStore_1F_Text_TwoDigitsMatched: .string "Two digits matched, so you win the\n" .string "third prize!\l" .string "You've won the {STR_VAR_1}!$" -LilycoveCity_DepartmentStore_1F_Text_ThreeDigitsMatched: @ 82A66A7 +LilycoveCity_DepartmentStore_1F_Text_ThreeDigitsMatched: .string "Three digits matched, so you win the\n" .string "second prize!\l" .string "You've won the {STR_VAR_1}!$" -LilycoveCity_DepartmentStore_1F_Text_FourDigitsMatched: @ 82A66ED +LilycoveCity_DepartmentStore_1F_Text_FourDigitsMatched: .string "Four digits matched, so you win the\n" .string "first prize!\l" .string "You've won the {STR_VAR_1}!$" -LilycoveCity_DepartmentStore_1F_Text_AllFiveDigitsMatched: @ 82A6731 +LilycoveCity_DepartmentStore_1F_Text_AllFiveDigitsMatched: .string "Oh, my goodness, all five digits\n" .string "matched!\p" .string "You've won the jackpot prize!\n" .string "You've won the {STR_VAR_1}!$" -LilycoveCity_DepartmentStore_1F_Text_NoRoomForThis: @ 82A678C +LilycoveCity_DepartmentStore_1F_Text_NoRoomForThis: .string "Oh?\n" .string "You seem to have no room for this.\p" .string "Please make room in your BAG and\n" .string "let me know.$" -LilycoveCity_DepartmentStore_1F_Text_PrizeWeveBeenHolding: @ 82A67E1 +LilycoveCity_DepartmentStore_1F_Text_PrizeWeveBeenHolding: .string "{PLAYER}?\n" .string "Yes, I've been expecting you.\p" .string "This is the prize we've been holding\n" .string "for you.$" -LilycoveCity_DepartmentStore_1F_Text_PleaseVisitAgain2: @ 82A6831 +LilycoveCity_DepartmentStore_1F_Text_PleaseVisitAgain2: .string "Please do visit again.$" diff --git a/data/text/mart_clerk.inc b/data/text/mart_clerk.inc index 2357963be8..891fb937e0 100644 --- a/data/text/mart_clerk.inc +++ b/data/text/mart_clerk.inc @@ -1,10 +1,10 @@ -gText_HowMayIServeYou:: @ 8272A21 +gText_HowMayIServeYou:: .string "Welcome!\p" .string "How may I serve you?$" -gText_PleaseComeAgain:: @ 8272A3F +gText_PleaseComeAgain:: .string "Please come again!$" -gText_PlayerWhatCanIDoForYou:: @ 8272A52 +gText_PlayerWhatCanIDoForYou:: .string "{PLAYER}{STRING 5}, welcome!\p" .string "What can I do for you?$" diff --git a/data/text/match_call.inc b/data/text/match_call.inc index 568ed2a867..63aac8aa88 100644 --- a/data/text/match_call.inc +++ b/data/text/match_call.inc @@ -1,4 +1,4 @@ -MatchCall_WildBattleText1:: @ 82A971C +MatchCall_WildBattleText1:: .string "Hi! {PLAYER}{KUN}, hello!\n" .string "This is {STR_VAR_1}.\p" .string "I saw this {STR_VAR_2} a while back\n" @@ -6,7 +6,7 @@ MatchCall_WildBattleText1:: @ 82A971C .string "It was so close, too!\n" .string "Well, see you again!$" -MatchCall_WildBattleText2:: @ 82A9798 +MatchCall_WildBattleText2:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's {STR_VAR_1}.\p" .string "I tried to catch a nice {STR_VAR_2}\n" @@ -15,7 +15,7 @@ MatchCall_WildBattleText2:: @ 82A9798 .string "I was sure disappointed!\p" .string "Okay, bye!$" -MatchCall_WildBattleText3:: @ 82A9813 +MatchCall_WildBattleText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\p" .string "I just took a shot at catching\n" @@ -24,7 +24,7 @@ MatchCall_WildBattleText3:: @ 82A9813 .string "It spoiled my day…\n" .string "All right, see you!$" -MatchCall_WildBattleText4:: @ 82A98A8 +MatchCall_WildBattleText4:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "You know the POKéMON {STR_VAR_2}?\n" @@ -35,7 +35,7 @@ MatchCall_WildBattleText4:: @ 82A98A8 .string "sure, though.\p" .string "Okay, catch you later.$" -MatchCall_WildBattleText5:: @ 82A9977 +MatchCall_WildBattleText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\l" .string "Catching any POKéMON lately?\p" @@ -43,7 +43,7 @@ MatchCall_WildBattleText5:: @ 82A9977 .string "nabbing one, but it got loose.\p" .string "Right, take care!$" -MatchCall_WildBattleText6:: @ 82A99FD +MatchCall_WildBattleText6:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\l" .string "Caught any POKéMON lately?\p" @@ -51,7 +51,7 @@ MatchCall_WildBattleText6:: @ 82A99FD .string "But it evaded me somehow.\p" .string "You take care.$" -MatchCall_WildBattleText7:: @ 82A9A78 +MatchCall_WildBattleText7:: .string "…Uh, {PLAYER}{KUN}?\n" .string "It's me, {STR_VAR_1}.\p" .string "Oh, wait! Wait!\n" @@ -59,7 +59,7 @@ MatchCall_WildBattleText7:: @ 82A9A78 .string "Aaarrrgh! It bolted loose!\n" .string "That wasn't just close!$" -MatchCall_WildBattleText8:: @ 82A9AE8 +MatchCall_WildBattleText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "Have you had success catching\n" @@ -69,7 +69,7 @@ MatchCall_WildBattleText8:: @ 82A9AE8 .string "I need to try harder!\n" .string "See you again!$" -MatchCall_WildBattleText9:: @ 82A9BA7 +MatchCall_WildBattleText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "So? Are you getting more POKéMON\n" @@ -78,7 +78,7 @@ MatchCall_WildBattleText9:: @ 82A9BA7 .string "They all get away from me!\p" .string "See you!$" -MatchCall_WildBattleText10:: @ 82A9C36 +MatchCall_WildBattleText10:: .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "Listen, I came within a whisker of\n" @@ -87,7 +87,7 @@ MatchCall_WildBattleText10:: @ 82A9C36 .string "I need to try harder.\n" .string "See you around.$" -MatchCall_WildBattleText11:: @ 82A9CC8 +MatchCall_WildBattleText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "How are things with you?\p" @@ -95,7 +95,7 @@ MatchCall_WildBattleText11:: @ 82A9CC8 .string "earlier, but it managed to flee.\p" .string "I feel defeated…$" -MatchCall_WildBattleText12:: @ 82A9D44 +MatchCall_WildBattleText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you still catching POKéMON?\p" @@ -103,7 +103,7 @@ MatchCall_WildBattleText12:: @ 82A9D44 .string "myself, but it's not so easy.\p" .string "The way of POKéMON is deep!$" -MatchCall_WildBattleText13:: @ 82A9DD7 +MatchCall_WildBattleText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "Have you been catching POKéMON?\p" @@ -111,7 +111,7 @@ MatchCall_WildBattleText13:: @ 82A9DD7 .string "myself, but with little success.\p" .string "The way of POKéMON is deep!$" -MatchCall_WildBattleText14:: @ 82A9E70 +MatchCall_WildBattleText14:: .string "Oh, hi, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1}.\p" .string "Just now, I tried to catch a cute\n" @@ -120,7 +120,7 @@ MatchCall_WildBattleText14:: @ 82A9E70 .string "Oh, you bet I was disappointed!\p" .string "Bye-bye!$" -MatchCall_WildBattleText15:: @ 82A9EFD +MatchCall_WildBattleText15:: .string "Hey, {PLAYER}!\n" .string "This is {STR_VAR_1}!\p" .string "I've been thinking about trying\n" @@ -130,7 +130,7 @@ MatchCall_WildBattleText15:: @ 82A9EFD .string "I'm at my wit's end!\n" .string "See you around!$" -MatchCall_NegativeBattleText1:: @ 82A9FAB +MatchCall_NegativeBattleText1:: .string "Hi! {PLAYER}{KUN}, hello!\n" .string "This is {STR_VAR_1}.\p" .string "I tried battling another TRAINER,\n" @@ -138,7 +138,7 @@ MatchCall_NegativeBattleText1:: @ 82A9FAB .string "It was really disappointing.\n" .string "Well, see you again!$" -MatchCall_NegativeBattleText2:: @ 82AA028 +MatchCall_NegativeBattleText2:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's {STR_VAR_1}.\p" .string "I challenged someone else after\n" @@ -146,14 +146,14 @@ MatchCall_NegativeBattleText2:: @ 82AA028 .string "I came close, but I ended up\n" .string "losing. Oh, well!$" -MatchCall_NegativeBattleText3:: @ 82AA099 +MatchCall_NegativeBattleText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\p" .string "I just got cleaned in a battle.\p" .string "I guess I need to raise my team\n" .string "some more!$" -MatchCall_NegativeBattleText4:: @ 82AA100 +MatchCall_NegativeBattleText4:: .string "Hey, {PLAYER}.\n" .string "{STR_VAR_1} here.\p" .string "I tried another battle yesterday,\n" @@ -161,7 +161,7 @@ MatchCall_NegativeBattleText4:: @ 82AA100 .string "My team needs more raising.\n" .string "Okay, catch you later.$" -MatchCall_NegativeBattleText5:: @ 82AA188 +MatchCall_NegativeBattleText5:: .string "Hiya, {PLAYER}!\n" .string "It's {STR_VAR_1}.\p" .string "How are things with you?\p" @@ -170,7 +170,7 @@ MatchCall_NegativeBattleText5:: @ 82AA188 .string "I can't get it together.\n" .string "Right, take care!$" -MatchCall_NegativeBattleText6:: @ 82AA214 +MatchCall_NegativeBattleText6:: .string "Hey, {PLAYER}.\n" .string "{STR_VAR_1} here.\p" .string "How's it going for you?\p" @@ -179,7 +179,7 @@ MatchCall_NegativeBattleText6:: @ 82AA214 .string "I can't get into the groove.\n" .string "You take care.$" -MatchCall_NegativeBattleText7:: @ 82AA2A1 +MatchCall_NegativeBattleText7:: .string "{STR_VAR_1} here.\n" .string "How's it going lately?\p" .string "I lost a battle yesterday,\n" @@ -187,7 +187,7 @@ MatchCall_NegativeBattleText7:: @ 82AA2A1 .string "I have to devise a plan…\n" .string "See you.$" -MatchCall_NegativeBattleText8:: @ 82AA31B +MatchCall_NegativeBattleText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "How are your POKéMON doing?\n" @@ -195,7 +195,7 @@ MatchCall_NegativeBattleText8:: @ 82AA31B .string "I need to try harder!\n" .string "See you again!$" -MatchCall_NegativeBattleText9:: @ 82AA3A8 +MatchCall_NegativeBattleText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "Listen, listen, you have to hear\n" @@ -204,7 +204,7 @@ MatchCall_NegativeBattleText9:: @ 82AA3A8 .string "but I lost at the last second.\p" .string "Oh, it burns me up!$" -MatchCall_NegativeBattleText10:: @ 82AA442 +MatchCall_NegativeBattleText10:: .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "A little earlier, I was in a battle.\n" @@ -212,14 +212,14 @@ MatchCall_NegativeBattleText10:: @ 82AA442 .string "I need to raise my POKéMON more.\n" .string "See you around.$" -MatchCall_NegativeBattleText11:: @ 82AA4C5 +MatchCall_NegativeBattleText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "How are your POKéMON?\p" .string "I just lost yet another battle.\p" .string "Well, see you!$" -MatchCall_NegativeBattleText12:: @ 82AA520 +MatchCall_NegativeBattleText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you still battling hard?\p" @@ -227,7 +227,7 @@ MatchCall_NegativeBattleText12:: @ 82AA520 .string "been training my team all over.\p" .string "Let's meet again.$" -MatchCall_NegativeBattleText13:: @ 82AA5AD +MatchCall_NegativeBattleText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\p" .string "I hope you've been keeping well.\p" @@ -236,7 +236,7 @@ MatchCall_NegativeBattleText13:: @ 82AA5AD .string "{PLAYER}{KUN}, try to be active like me.\n" .string "See you again!$" -MatchCall_NegativeBattleText14:: @ 82AA64D +MatchCall_NegativeBattleText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "Are you doing good?\p" @@ -244,7 +244,7 @@ MatchCall_NegativeBattleText14:: @ 82AA64D .string "though.\p" .string "Bye-bye!$" -MatchCall_PositiveBattleText1:: @ 82AA6AF +MatchCall_PositiveBattleText1:: .string "Hi! {PLAYER}{KUN}, hello!\n" .string "This is {STR_VAR_1}!\p" .string "I battled another TRAINER earlier.\n" @@ -252,13 +252,13 @@ MatchCall_PositiveBattleText1:: @ 82AA6AF .string "My {STR_VAR_2} really worked hard\n" .string "for me. This is so great!$" -MatchCall_PositiveBattleText2:: @ 82AA730 +MatchCall_PositiveBattleText2:: .string "Hello, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}!\p" .string "I had a battle yesterday and\n" .string "I won! It's fantastic!$" -MatchCall_PositiveBattleText3:: @ 82AA77A +MatchCall_PositiveBattleText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}!\l" .string "How's your battling?\p" @@ -267,7 +267,7 @@ MatchCall_PositiveBattleText3:: @ 82AA77A .string "The next time I battle you,\n" .string "{PLAYER}, it won't be me losing!$" -MatchCall_PositiveBattleText4:: @ 82AA81C +MatchCall_PositiveBattleText4:: .string "Hey, {PLAYER}.\n" .string "{STR_VAR_1} here.\p" .string "I had a match earlier.\n" @@ -275,7 +275,7 @@ MatchCall_PositiveBattleText4:: @ 82AA81C .string "My {STR_VAR_2} put on one\n" .string "inspired showing.$" -MatchCall_PositiveBattleText5:: @ 82AA88C +MatchCall_PositiveBattleText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "How are things with you?\n" @@ -285,7 +285,7 @@ MatchCall_PositiveBattleText5:: @ 82AA88C .string "You wait. I'm going to beat you\n" .string "next time! Right, take care!$" -MatchCall_PositiveBattleText6:: @ 82AA934 +MatchCall_PositiveBattleText6:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "How's it going for you?\p" @@ -294,7 +294,7 @@ MatchCall_PositiveBattleText6:: @ 82AA934 .string "When we have our next battle,\n" .string "I'm sure not going to lose!$" -MatchCall_PositiveBattleText7:: @ 82AA9D3 +MatchCall_PositiveBattleText7:: .string "{PLAYER}{KUN}?\n" .string "{STR_VAR_1} here.\p" .string "My {STR_VAR_2} is a force!\n" @@ -302,7 +302,7 @@ MatchCall_PositiveBattleText7:: @ 82AA9D3 .string "I can't wait to have a rematch\n" .string "with you.$" -MatchCall_PositiveBattleText8:: @ 82AAA40 +MatchCall_PositiveBattleText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "I hope you've been well.\n" @@ -311,7 +311,7 @@ MatchCall_PositiveBattleText8:: @ 82AAA40 .string "hard to get the win.\p" .string "See you again!$" -MatchCall_PositiveBattleText9:: @ 82AAAE4 +MatchCall_PositiveBattleText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "How are your POKéMON holding up?\n" @@ -321,7 +321,7 @@ MatchCall_PositiveBattleText9:: @ 82AAAE4 .string "I wish I could've shown you!\n" .string "See you again!$" -MatchCall_PositiveBattleText10:: @ 82AAB8C +MatchCall_PositiveBattleText10:: .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "How has life been treating you?\p" @@ -330,7 +330,7 @@ MatchCall_PositiveBattleText10:: @ 82AAB8C .string "I just won a battle with them.\n" .string "See you around.$" -MatchCall_PositiveBattleText11:: @ 82AAC25 +MatchCall_PositiveBattleText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "Been in any battles lately?\n" @@ -338,7 +338,7 @@ MatchCall_PositiveBattleText11:: @ 82AAC25 .string "I'm on a roll! Gahahaha!\n" .string "Well, see you!$" -MatchCall_PositiveBattleText12:: @ 82AAC9D +MatchCall_PositiveBattleText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\p" .string "I trust you've been well?\n" @@ -347,7 +347,7 @@ MatchCall_PositiveBattleText12:: @ 82AAC9D .string "I'm not stepping aside to you\l" .string "youngsters yet!$" -MatchCall_PositiveBattleText13:: @ 82AAD41 +MatchCall_PositiveBattleText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\p" .string "I hope you've been keeping well.\n" @@ -357,7 +357,7 @@ MatchCall_PositiveBattleText13:: @ 82AAD41 .string "quite yet!\p" .string "See you again!$" -MatchCall_PositiveBattleText14:: @ 82AAE00 +MatchCall_PositiveBattleText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I was in a battle recently, and my\n" @@ -365,7 +365,7 @@ MatchCall_PositiveBattleText14:: @ 82AAE00 .string "I wish you could have seen it,\n" .string "{PLAYER}{KUN}. Bye-bye!$" -MatchCall_SameRouteBattleRequestText1:: @ 82AAE7F +MatchCall_SameRouteBattleRequestText1:: .string "Hi! {PLAYER}, hello!\n" .string "This is {STR_VAR_1}.\p" .string "Huh? Wait, you're near\n" @@ -373,7 +373,7 @@ MatchCall_SameRouteBattleRequestText1:: @ 82AAE7F .string "Oh, wow, we have to battle, then!\n" .string "I'll be waiting! See you!$" -MatchCall_SameRouteBattleRequestText2:: @ 82AAEF1 +MatchCall_SameRouteBattleRequestText2:: .string "Hello, {PLAYER}!\n" .string "It's {STR_VAR_1}.\p" .string "Oh? You happen to be around\n" @@ -381,7 +381,7 @@ MatchCall_SameRouteBattleRequestText2:: @ 82AAEF1 .string "Would you like to battle now?\n" .string "I'll wait for you! See you!$" -MatchCall_SameRouteBattleRequestText3:: @ 82AAF69 +MatchCall_SameRouteBattleRequestText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\p" .string "Oh, hey, are you near\n" @@ -391,7 +391,7 @@ MatchCall_SameRouteBattleRequestText3:: @ 82AAF69 .string "I'm not losing again!\n" .string "I'll be waiting! Catch you soon!$" -MatchCall_SameRouteBattleRequestText4:: @ 82AB010 +MatchCall_SameRouteBattleRequestText4:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "Whereabouts are you now?\n" @@ -399,7 +399,7 @@ MatchCall_SameRouteBattleRequestText4:: @ 82AB010 .string "Want to battle now?\n" .string "I'll wait for you. See you!$" -MatchCall_SameRouteBattleRequestText5:: @ 82AB076 +MatchCall_SameRouteBattleRequestText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\l" .string "How are things with you?\p" @@ -410,7 +410,7 @@ MatchCall_SameRouteBattleRequestText5:: @ 82AB076 .string "I'll keep an eye out for you.\n" .string "See you soon!$" -MatchCall_SameRouteBattleRequestText6:: @ 82AB11A +MatchCall_SameRouteBattleRequestText6:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\l" .string "How are your POKéMON keeping?\p" @@ -421,7 +421,7 @@ MatchCall_SameRouteBattleRequestText6:: @ 82AB11A .string "I can wait, sure.\n" .string "See you!$" -MatchCall_SameRouteBattleRequestText7:: @ 82AB1B4 +MatchCall_SameRouteBattleRequestText7:: .string "…Er, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here…\p" .string "Oh, you happen to be around\n" @@ -431,7 +431,7 @@ MatchCall_SameRouteBattleRequestText7:: @ 82AB1B4 .string "I'll show you my POKéMON.\n" .string "I'll wait for you.$" -MatchCall_SameRouteBattleRequestText8:: @ 82AB23D +MatchCall_SameRouteBattleRequestText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "I hope you're doing well.\n" @@ -441,7 +441,7 @@ MatchCall_SameRouteBattleRequestText8:: @ 82AB23D .string "I'll wait for you.\n" .string "See you soon!$" -MatchCall_SameRouteBattleRequestText9:: @ 82AB2E9 +MatchCall_SameRouteBattleRequestText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "Are you keeping up?\n" @@ -450,7 +450,7 @@ MatchCall_SameRouteBattleRequestText9:: @ 82AB2E9 .string "should battle?\p" .string "Don't keep me waiting too long!$" -MatchCall_SameRouteBattleRequestText10:: @ 82AB382 +MatchCall_SameRouteBattleRequestText10:: .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "How are things with you?\n" @@ -459,7 +459,7 @@ MatchCall_SameRouteBattleRequestText10:: @ 82AB382 .string "I'm ready and waiting.\n" .string "Be quick!$" -MatchCall_SameRouteBattleRequestText11:: @ 82AB410 +MatchCall_SameRouteBattleRequestText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "Ah, so where you are now is\n" @@ -469,7 +469,7 @@ MatchCall_SameRouteBattleRequestText11:: @ 82AB410 .string "I'll wait around for you!\n" .string "See you real quick!$" -MatchCall_SameRouteBattleRequestText12:: @ 82AB4B0 +MatchCall_SameRouteBattleRequestText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Where might you be now?\p" @@ -480,7 +480,7 @@ MatchCall_SameRouteBattleRequestText12:: @ 82AB4B0 .string "I can wait.\n" .string "See you!$" -MatchCall_SameRouteBattleRequestText13:: @ 82AB538 +MatchCall_SameRouteBattleRequestText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\p" .string "I hope you've been keeping well.\n" @@ -490,7 +490,7 @@ MatchCall_SameRouteBattleRequestText13:: @ 82AB538 .string "I'll wait for you.\n" .string "Bye for now.$" -MatchCall_SameRouteBattleRequestText14:: @ 82AB5E4 +MatchCall_SameRouteBattleRequestText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "You're what? …{STR_VAR_2}?\n" @@ -500,14 +500,14 @@ MatchCall_SameRouteBattleRequestText14:: @ 82AB5E4 .string "I'll be looking for you!\n" .string "Bye-bye!$" -MatchCall_DifferentRouteBattleRequestText1:: @ 82AB670 +MatchCall_DifferentRouteBattleRequestText1:: .string "Hi! {PLAYER}, hello!\n" .string "This is {STR_VAR_1}.\p" .string "Want to have a battle with me?\p" .string "I'll be waiting for you around\n" .string "{STR_VAR_2}!$" -MatchCall_DifferentRouteBattleRequestText2:: @ 82AB6CD +MatchCall_DifferentRouteBattleRequestText2:: .string "Hello, {PLAYER}!\n" .string "It's {STR_VAR_1}.\p" .string "Would you like to have a battle\n" @@ -515,7 +515,7 @@ MatchCall_DifferentRouteBattleRequestText2:: @ 82AB6CD .string "You can find me around\n" .string "{STR_VAR_2}. I'll be waiting!$" -MatchCall_DifferentRouteBattleRequestText3:: @ 82AB73C +MatchCall_DifferentRouteBattleRequestText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\p" .string "My POKéMON have grown a lot\n" @@ -526,7 +526,7 @@ MatchCall_DifferentRouteBattleRequestText3:: @ 82AB73C .string "I'll be waiting for you around\n" .string "{STR_VAR_2}.$" -MatchCall_DifferentRouteBattleRequestText4:: @ 82AB808 +MatchCall_DifferentRouteBattleRequestText4:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\l" .string "How are things with you?\p" @@ -537,7 +537,7 @@ MatchCall_DifferentRouteBattleRequestText4:: @ 82AB808 .string "Let's meet up around\n" .string "{STR_VAR_2}, okay?$" -MatchCall_DifferentRouteBattleRequestText5:: @ 82AB8B7 +MatchCall_DifferentRouteBattleRequestText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "My POKéMON are growing up in\n" @@ -547,7 +547,7 @@ MatchCall_DifferentRouteBattleRequestText5:: @ 82AB8B7 .string "I'll keep an eye out for you around\n" .string "{STR_VAR_2}. See you soon!$" -MatchCall_DifferentRouteBattleRequestText6:: @ 82AB95D +MatchCall_DifferentRouteBattleRequestText6:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\l" .string "I hope you're on top of things.\p" @@ -557,7 +557,7 @@ MatchCall_DifferentRouteBattleRequestText6:: @ 82AB95D .string "come to {STR_VAR_2}.\p" .string "See you!$" -MatchCall_DifferentRouteBattleRequestText7:: @ 82ABA03 +MatchCall_DifferentRouteBattleRequestText7:: .string "…Er, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here…\l" .string "So? Are your POKéMON growing?\p" @@ -567,7 +567,7 @@ MatchCall_DifferentRouteBattleRequestText7:: @ 82ABA03 .string "Come see me for a match.\p" .string "See you around.$" -MatchCall_DifferentRouteBattleRequestText8:: @ 82ABA9F +MatchCall_DifferentRouteBattleRequestText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "I hope you're doing well.\n" @@ -577,7 +577,7 @@ MatchCall_DifferentRouteBattleRequestText8:: @ 82ABA9F .string "I'll be around {STR_VAR_2}.\n" .string "Until then, good-bye!$" -MatchCall_DifferentRouteBattleRequestText9:: @ 82ABB62 +MatchCall_DifferentRouteBattleRequestText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\l" .string "How are your POKéMON doing?\p" @@ -587,7 +587,7 @@ MatchCall_DifferentRouteBattleRequestText9:: @ 82ABB62 .string "so let's battle if you're close by.\p" .string "Hope I see you soon!$" -MatchCall_DifferentRouteBattleRequestText10:: @ 82ABC26 +MatchCall_DifferentRouteBattleRequestText10:: .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\l" .string "So, how are things with you?\p" @@ -598,7 +598,7 @@ MatchCall_DifferentRouteBattleRequestText10:: @ 82ABC26 .string "I'll be around {STR_VAR_2}.\n" .string "Come see me if you're close.$" -MatchCall_DifferentRouteBattleRequestText11:: @ 82ABCE9 +MatchCall_DifferentRouteBattleRequestText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "Where might you be now?\p" @@ -608,7 +608,7 @@ MatchCall_DifferentRouteBattleRequestText11:: @ 82ABCE9 .string "I'm around {STR_VAR_2} now.\n" .string "I hope you'll seek us out.$" -MatchCall_DifferentRouteBattleRequestText12:: @ 82ABDA2 +MatchCall_DifferentRouteBattleRequestText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\p" .string "I should tell you, my POKéMON have\n" @@ -618,7 +618,7 @@ MatchCall_DifferentRouteBattleRequestText12:: @ 82ABDA2 .string "We'll be around {STR_VAR_2}.\n" .string "Come see us anytime!$" -MatchCall_DifferentRouteBattleRequestText13:: @ 82ABE5E +MatchCall_DifferentRouteBattleRequestText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "Are your POKéMON keeping well?\p" @@ -629,7 +629,7 @@ MatchCall_DifferentRouteBattleRequestText13:: @ 82ABE5E .string "If you're near {STR_VAR_2},\n" .string "do come see us.$" -MatchCall_DifferentRouteBattleRequestText14:: @ 82ABF36 +MatchCall_DifferentRouteBattleRequestText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "Keeping well, I hope.\p" @@ -641,7 +641,7 @@ MatchCall_DifferentRouteBattleRequestText14:: @ 82ABF36 .string "{STR_VAR_2}.\p" .string "Come see us anytime, okay?$" -MatchCall_PersonalizedText1:: @ 82AC009 +MatchCall_PersonalizedText1:: .string "It's me, the mountain-loving\n" .string "{STR_VAR_1}!\p" .string "Well, since we met, have you grown\n" @@ -650,7 +650,7 @@ MatchCall_PersonalizedText1:: @ 82AC009 .string "Next time, we'll meet somewhere\n" .string "around {STR_VAR_2}.$" -MatchCall_PersonalizedText2:: @ 82AC0BD +MatchCall_PersonalizedText2:: .string "This is {STR_VAR_1}.\n" .string "Hello.\p" .string "I was just telling a new TRAINER\n" @@ -661,7 +661,7 @@ MatchCall_PersonalizedText2:: @ 82AC0BD .string "that everyone will admire.\p" .string "I hope we meet again!$" -MatchCall_PersonalizedText3:: @ 82AC18C +MatchCall_PersonalizedText3:: .string "Hello! It's {STR_VAR_1}.\p" .string "I love where I am now.\n" .string "It's pleasant with sweet aromas!\p" @@ -669,7 +669,7 @@ MatchCall_PersonalizedText3:: @ 82AC18C .string "and they burst into bloom.\p" .string "See you again sometime!$" -MatchCall_PersonalizedText4:: @ 82AC228 +MatchCall_PersonalizedText4:: .string "Hello! Thirty years of exploration,\n" .string "{STR_VAR_1} at your service!\p" .string "It seems that you're energetically\n" @@ -679,7 +679,7 @@ MatchCall_PersonalizedText4:: @ 82AC228 .string "Now, if you'll excuse me,\n" .string "I have ruins to explore.$" -MatchCall_PersonalizedText5:: @ 82AC30C +MatchCall_PersonalizedText5:: .string "It's {STR_VAR_1}!\p" .string "Know what I'm doing today?\n" .string "Looking at waves from the beach!\p" @@ -687,7 +687,7 @@ MatchCall_PersonalizedText5:: @ 82AC30C .string "The sea is the prettiest from here.\l" .string "I'm getting hungry, so bye-bye!$" -MatchCall_PersonalizedText6:: @ 82AC3B6 +MatchCall_PersonalizedText6:: .string "Munch-chew…\n" .string "Oh, hi, it's {STR_VAR_1}.\l" .string "I love eating on the beach.\p" @@ -695,7 +695,7 @@ MatchCall_PersonalizedText6:: @ 82AC3B6 .string "great. We're fully fueled!\l" .string "I'm going for a swim. Bye!$" -MatchCall_PersonalizedText7:: @ 82AC446 +MatchCall_PersonalizedText7:: .string "Hello, this is {STR_VAR_1}…\p" .string "I've grown a little jaded with this\n" .string "whole COOLTRAINER thing…\p" @@ -711,7 +711,7 @@ MatchCall_PersonalizedText7:: @ 82AC446 .string "But when I see you next,\n" .string "don't worry, I won't whine!$" -MatchCall_PersonalizedText8:: @ 82AC5C7 +MatchCall_PersonalizedText8:: .string "Yahoo, it's {STR_VAR_1}!\n" .string "How do you do?\p" .string "I've been raising my POKéMON with\n" @@ -721,7 +721,7 @@ MatchCall_PersonalizedText8:: @ 82AC5C7 .string "Isn't it great to have TRAINER\n" .string "friends? Let's meet again!$" -MatchCall_PersonalizedText9:: @ 82AC682 +MatchCall_PersonalizedText9:: .string "It's {STR_VAR_1}…\n" .string "Right now, behind you…\l" .string "Wasn't there something…?\p" @@ -733,7 +733,7 @@ MatchCall_PersonalizedText9:: @ 82AC682 .string "Giggle…\n" .string "Farewell…$" -MatchCall_PersonalizedText10:: @ 82AC755 +MatchCall_PersonalizedText10:: .string "This is {STR_VAR_1}.\n" .string "How do you do?\p" .string "Isn't it convenient that we can\n" @@ -744,7 +744,7 @@ MatchCall_PersonalizedText10:: @ 82AC755 .string "I should be going now.\n" .string "I'm glad we had this chat.$" -MatchCall_PersonalizedText11:: @ 82AC82C +MatchCall_PersonalizedText11:: .string "It's {STR_VAR_1}!\n" .string "Will you listen to this?\p" .string "I like the SAFARI ZONE a lot,\n" @@ -756,7 +756,7 @@ MatchCall_PersonalizedText11:: @ 82AC82C .string "I'm off to the SAFARI ZONE again!\n" .string "Catch you!$" -MatchCall_PersonalizedText12:: @ 82AC914 +MatchCall_PersonalizedText12:: .string "Hello, {STR_VAR_1} here.\n" .string "Yes, correct, I am rich, yes.\p" .string "I should tell you, my wealth has\n" @@ -770,7 +770,7 @@ MatchCall_PersonalizedText12:: @ 82AC914 .string "Oh, you must excuse me, I have this\n" .string "formal dinner to attend.$" -MatchCall_PersonalizedText13:: @ 82ACA59 +MatchCall_PersonalizedText13:: .string "Ufufufufu…\n" .string "It's me, {STR_VAR_1}…\p" .string "Can you guess what I'm seeing?\n" @@ -780,7 +780,7 @@ MatchCall_PersonalizedText13:: @ 82ACA59 .string "I… I'm kind of busy now.\n" .string "I have to go.$" -MatchCall_PersonalizedText14:: @ 82ACB02 +MatchCall_PersonalizedText14:: .string "Oh, it's {STR_VAR_1}!\p" .string "I was just thinking I'm getting\n" .string "bored of the ABANDONED SHIP.\p" @@ -794,7 +794,7 @@ MatchCall_PersonalizedText14:: @ 82ACB02 .string "door to a match.\p" .string "Be seeing you!$" -MatchCall_PersonalizedText15:: @ 82ACC3F +MatchCall_PersonalizedText15:: .string "I'm {STR_VAR_1}!\n" .string "The man of the sea!\p" .string "You know what I think?\p" @@ -806,7 +806,7 @@ MatchCall_PersonalizedText15:: @ 82ACC3F .string "It's a great training opportunity!\n" .string "Sorry, but I have to go!$" -MatchCall_PersonalizedText16:: @ 82ACD2F +MatchCall_PersonalizedText16:: .string "It's {STR_VAR_1}! Listen, I've been\n" .string "teaching karate to my POKéMON.\p" .string "But now they're better than me!\n" @@ -817,7 +817,7 @@ MatchCall_PersonalizedText16:: @ 82ACD2F .string "We have to battle again!\n" .string "Ugwaah!$" -MatchCall_PersonalizedText17:: @ 82ACE1E +MatchCall_PersonalizedText17:: .string "It's me, {STR_VAR_1}.\n" .string "How're your travels unwinding?\p" .string "…Whoa, is that right?\n" @@ -829,7 +829,7 @@ MatchCall_PersonalizedText17:: @ 82ACE1E .string "I'd better get this tune properly\n" .string "written, so I've got to fly! Later!$" -MatchCall_PersonalizedText18:: @ 82ACF32 +MatchCall_PersonalizedText18:: .string "This is {STR_VAR_1}…\n" .string "Hear my new song.\p" .string "Lalala, {STR_VAR_2}, {STR_VAR_2}!\n" @@ -839,7 +839,7 @@ MatchCall_PersonalizedText18:: @ 82ACF32 .string "{STR_VAR_1} and {STR_VAR_2}…\p" .string "Repeat chorus, fade…$" -MatchCall_PersonalizedText19:: @ 82ACFBE +MatchCall_PersonalizedText19:: .string "I'm {STR_VAR_1}, you know,\n" .string "the camping expert!\p" .string "When we battled, I couldn't help\n" @@ -851,7 +851,7 @@ MatchCall_PersonalizedText19:: @ 82ACFBE .string "Battle with us again, okay?\n" .string "Oh, and let's go camping, too!$" -MatchCall_PersonalizedText20:: @ 82AD0AC +MatchCall_PersonalizedText20:: .string "It's me, me, {STR_VAR_1}!\p" .string "I'd like to climb other mountains\n" .string "than this one, to be honest.\p" @@ -861,7 +861,7 @@ MatchCall_PersonalizedText20:: @ 82AD0AC .string "with ladies around, let me know!\p" .string "Ehehehe, see you around!$" -MatchCall_PersonalizedText21:: @ 82AD194 +MatchCall_PersonalizedText21:: .string "… … … … … …\n" .string "… … … … … …\l" .string "It's {STR_VAR_1}…\p" @@ -869,7 +869,7 @@ MatchCall_PersonalizedText21:: @ 82AD194 .string "… … … … … …\l" .string "That's all today…$" -MatchCall_PersonalizedText22:: @ 82AD1DF +MatchCall_PersonalizedText22:: .string "This is {STR_VAR_1}. Today, I had\n" .string "this feeling I would chat with you.\p" .string "My desire to defeat you builds\n" @@ -879,7 +879,7 @@ MatchCall_PersonalizedText22:: @ 82AD1DF .string "I'm glad you heard me out.\n" .string "See you!$" -MatchCall_PersonalizedText23:: @ 82AD2A8 +MatchCall_PersonalizedText23:: .string "It's {STR_VAR_1}.\p" .string "When there's a strong TRAINER\n" .string "nearby, I can sometimes sense that\l" @@ -889,7 +889,7 @@ MatchCall_PersonalizedText23:: @ 82AD2A8 .string "I'll be waiting for your visit.\n" .string "Bye!$" -MatchCall_PersonalizedText24:: @ 82AD34F +MatchCall_PersonalizedText24:: .string "Hello, this is {STR_VAR_1}.\n" .string "You sound well, {PLAYER}{KUN}.\p" .string "I've traveled around the world,\n" @@ -901,7 +901,7 @@ MatchCall_PersonalizedText24:: @ 82AD34F .string "techniques.\p" .string "I do hope for a rematch.$" -MatchCall_PersonalizedText25:: @ 82AD44E +MatchCall_PersonalizedText25:: .string "Snivel… It's… {STR_VAR_1}…\n" .string "…Sob…\p" .string "ROXANNE chewed me out in class\n" @@ -913,7 +913,7 @@ MatchCall_PersonalizedText25:: @ 82AD44E .string "the TRAINER'S SCHOOL tomorrow!\p" .string "See you later!$" -MatchCall_PersonalizedText26:: @ 82AD53A +MatchCall_PersonalizedText26:: .string "It's {STR_VAR_1}!\p" .string "ROXANNE let me battle with her\n" .string "yesterday.\p" @@ -926,7 +926,7 @@ MatchCall_PersonalizedText26:: @ 82AD53A .string "I'm going to really focus and work!\n" .string "I'd better go!$" -MatchCall_PersonalizedText27:: @ 82AD642 +MatchCall_PersonalizedText27:: .string "Hi, it's ANNA! I'm with my junior\n" .string "partner MEG again today.\p" .string "I really love caring for MEG and\n" @@ -944,7 +944,7 @@ MatchCall_PersonalizedText27:: @ 82AD642 .string "I have to go now.\n" .string "It's time for our snack!$" -MatchCall_PersonalizedText28:: @ 82AD801 +MatchCall_PersonalizedText28:: .string "I love POKéMON!\n" .string "It's {STR_VAR_1} from the FAN CLUB!\p" .string "You have to hear this!\n" @@ -958,7 +958,7 @@ MatchCall_PersonalizedText28:: @ 82AD801 .string "Sorry, but I can't talk now!\n" .string "You'll have to hear this next time!$" -MatchCall_PersonalizedText29:: @ 82AD92E +MatchCall_PersonalizedText29:: .string "Ohoho!\p" .string "This is {STR_VAR_1}! I can't wait to\n" .string "tell you about my darling POKéMON!\p" @@ -974,7 +974,7 @@ MatchCall_PersonalizedText29:: @ 82AD92E .string "Well, I must be going.\n" .string "Bye, now!$" -MatchCall_PersonalizedText30:: @ 82ADA8F +MatchCall_PersonalizedText30:: .string "I am… {STR_VAR_1}.\n" .string "People call me an EXPERT.\p" .string "But there is one thing I know.\n" @@ -986,7 +986,7 @@ MatchCall_PersonalizedText30:: @ 82ADA8F .string "something deep and profound!\p" .string "I shall leave you in good spirits!$" -MatchCall_PersonalizedText31:: @ 82ADB9B +MatchCall_PersonalizedText31:: .string "It's {STR_VAR_1}.\n" .string "I'm glad to chat with you!\p" .string "I am feeling alive and refreshed\n" @@ -997,7 +997,7 @@ MatchCall_PersonalizedText31:: @ 82ADB9B .string "I imagine you'll become an EXPERT\n" .string "in your old age! Ohohoho…$" -MatchCall_PersonalizedText32:: @ 82ADC92 +MatchCall_PersonalizedText32:: .string "Yay! This is {STR_VAR_1}!\n" .string "What's up?\p" .string "I might be imagining this, but when\n" @@ -1013,7 +1013,7 @@ MatchCall_PersonalizedText32:: @ 82ADC92 .string "You didn't really believe that?\l" .string "Ehehehe, that's all! Bye now!$" -MatchCall_PersonalizedText33:: @ 82ADE08 +MatchCall_PersonalizedText33:: .string "Ahoy!\n" .string "{STR_VAR_1} here!\p" .string "As always, I'm fishing with wild\n" @@ -1027,7 +1027,7 @@ MatchCall_PersonalizedText33:: @ 82ADE08 .string "Gotta go!\n" .string "Find me some new fishing spots!$" -MatchCall_PersonalizedText34:: @ 82ADF07 +MatchCall_PersonalizedText34:: .string "Hey, there! It's {STR_VAR_1}.\n" .string "Are you taking it casually?\p" .string "Ever since I was a kid, you know,\n" @@ -1045,7 +1045,7 @@ MatchCall_PersonalizedText34:: @ 82ADF07 .string "But, hey, be cool. Take it casual.\n" .string "See you around.$" -MatchCall_PersonalizedText35:: @ 82AE0D9 +MatchCall_PersonalizedText35:: .string "This is {STR_VAR_1}!\n" .string "I'm cycling right now.\p" .string "I love swimming and running,\n" @@ -1059,7 +1059,7 @@ MatchCall_PersonalizedText35:: @ 82AE0D9 .string "You should make the challenge, too!\n" .string "See you!$" -MatchCall_PersonalizedText36:: @ 82AE1FD +MatchCall_PersonalizedText36:: .string "Yo, this is {STR_VAR_1}! I'm smack\n" .string "in the middle of a triathlon!\p" .string "But, hey, I've always got time to\n" @@ -1073,7 +1073,7 @@ MatchCall_PersonalizedText36:: @ 82AE1FD .string "I'm getting run down…\l" .string "Gasp… Have…to…go…$" -MatchCall_PersonalizedText37:: @ 82AE327 +MatchCall_PersonalizedText37:: .string "Hi, it's {STR_VAR_1}.\n" .string "If you want to improve endurance,\l" .string "high-altitude training is it!\p" @@ -1082,7 +1082,7 @@ MatchCall_PersonalizedText37:: @ 82AE327 .string "I'm getting oxygen starved, too!\n" .string "See you!$" -MatchCall_PersonalizedText38:: @ 82AE3DA +MatchCall_PersonalizedText38:: .string "Oh, it's {STR_VAR_1}, hello.\p" .string "I've been swimming a lot but I still\n" .string "can't seem to reach EVERGRANDE.\p" @@ -1091,7 +1091,7 @@ MatchCall_PersonalizedText38:: @ 82AE3DA .string "Wahahaha.\l" .string "Take care!$" -MatchCall_PersonalizedText39:: @ 82AE489 +MatchCall_PersonalizedText39:: .string "Hey, it's {STR_VAR_1}…\n" .string "Whoops!\p" .string "Splash!\p" @@ -1107,7 +1107,7 @@ MatchCall_PersonalizedText39:: @ 82AE489 .string "Anyways, I'm busy sunbathing,\n" .string "so let's chat another time.$" -MatchCall_PersonalizedText40:: @ 82AE5CD +MatchCall_PersonalizedText40:: .string "Hello, this is {STR_VAR_1}.\p" .string "Out of the three triathlon events,\n" .string "I like swimming best.\p" @@ -1116,14 +1116,14 @@ MatchCall_PersonalizedText40:: @ 82AE5CD .string "Ooh, triathlon is such a grueling\n" .string "test of human endurance! Bye!$" -MatchCall_PersonalizedText41:: @ 82AE698 +MatchCall_PersonalizedText41:: .string "Hello, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "How are your POKéMON doing?\p" .string "My DRAGON POKéMON appear to be\n" .string "in peak form. Bye for now.$" -MatchCall_PersonalizedText42:: @ 82AE704 +MatchCall_PersonalizedText42:: .string "{STR_VAR_1} here.\p" .string "My {STR_VAR_2} has grown even more\n" .string "tough than that last time.\p" @@ -1131,7 +1131,7 @@ MatchCall_PersonalizedText42:: @ 82AE704 .string "You wait till next time!\p" .string "See you around!$" -MatchCall_PersonalizedText43:: @ 82AE78F +MatchCall_PersonalizedText43:: .string "It is {STR_VAR_1} here.\p" .string "I have continued with my studies\n" .string "in the art of concealment.\p" @@ -1141,7 +1141,7 @@ MatchCall_PersonalizedText43:: @ 82AE78F .string "Like smoke I disappear!\n" .string "Farewell!$" -MatchCall_PersonalizedText44:: @ 82AE859 +MatchCall_PersonalizedText44:: .string "This is {STR_VAR_1}.\n" .string "I kept up my training since we met.\p" .string "My {STR_VAR_2} is getting pretty\n" @@ -1149,7 +1149,7 @@ MatchCall_PersonalizedText44:: @ 82AE859 .string "Training on a beach is effective,\n" .string "just as I thought. Bye now!$" -MatchCall_PersonalizedText45:: @ 82AE8E6 +MatchCall_PersonalizedText45:: .string "How do you do?\n" .string "This is {STR_VAR_1}.\p" .string "I wonder when this yucky volcanic\n" @@ -1158,7 +1158,7 @@ MatchCall_PersonalizedText45:: @ 82AE8E6 .string "up the pattern on my parasol…\p" .string "Let's promise to meet again!$" -MatchCall_PersonalizedText46:: @ 82AE998 +MatchCall_PersonalizedText46:: .string "Hi, {STR_VAR_1} here.\p" .string "Did you know that it's easier to\n" .string "float in the sea than a pool?\p" @@ -1170,7 +1170,7 @@ MatchCall_PersonalizedText46:: @ 82AE998 .string "…Where am I, anyway?\n" .string "I'd better go!$" -MatchCall_PersonalizedText47:: @ 82AEA8F +MatchCall_PersonalizedText47:: .string "Oh, {PLAYER}{KUN}, hello!\n" .string "This is {STR_VAR_1}.\l" .string "I'm up in the mountains now.\p" @@ -1182,14 +1182,14 @@ MatchCall_PersonalizedText47:: @ 82AEA8F .string "I'm going to try that!\n" .string "Bye-bye!$" -MatchCall_PersonalizedText48:: @ 82AEB77 +MatchCall_PersonalizedText48:: .string "Oh, hi, hi, this is {STR_VAR_1}!\p" .string "I'm raising POKéMON with LIV!\n" .string "We're trying very hard!\p" .string "If we try harder, can we become\n" .string "number one? Bye-bye!$" -MatchCall_PersonalizedText49:: @ 82AEBFA +MatchCall_PersonalizedText49:: .string "{STR_VAR_1} here!\p" .string "I'm a SAILOR, but I'm not on a boat\n" .string "now.\p" @@ -1199,7 +1199,7 @@ MatchCall_PersonalizedText49:: @ 82AEBFA .string "while staring out across the waves.\p" .string "All right, next time!$" -MatchCall_PersonalizedText50:: @ 82AECC1 +MatchCall_PersonalizedText50:: .string "It's {STR_VAR_1}.\n" .string "So? Get any more POKéMON?\p" .string "If you catch a new POKéMON,\n" @@ -1207,7 +1207,7 @@ MatchCall_PersonalizedText50:: @ 82AECC1 .string "I won't whine for it, honest.\n" .string "I'll be waiting. See you.$" -MatchCall_PersonalizedText51:: @ 82AED52 +MatchCall_PersonalizedText51:: .string "This is {STR_VAR_1}.\p" .string "Are you raising your POKéMON\n" .string "in the optimal way?\p" @@ -1218,7 +1218,7 @@ MatchCall_PersonalizedText51:: @ 82AED52 .string "POKéMON, you should come out to\l" .string "{STR_VAR_2}. Take care now.$" -MatchCall_PersonalizedText52:: @ 82AEE35 +MatchCall_PersonalizedText52:: .string "Hi, this is {STR_VAR_1}.\p" .string "I gave a {POKEBLOCK} to my {STR_VAR_2}.\n" .string "It seemed to enjoy it very much.\p" @@ -1227,7 +1227,7 @@ MatchCall_PersonalizedText52:: @ 82AEE35 .string "I find that quite fascinating.\n" .string "Please do take care.$" -MatchCall_PersonalizedText53:: @ 82AEEF4 +MatchCall_PersonalizedText53:: .string "{STR_VAR_1} here.\p" .string "If you cooperate with POKéMON,\n" .string "one can be comfortable in the wild.\p" @@ -1238,7 +1238,7 @@ MatchCall_PersonalizedText53:: @ 82AEEF4 .string "I think you're on the right track!\n" .string "Catch you later!$" -MatchCall_PersonalizedText54:: @ 82AEFDA +MatchCall_PersonalizedText54:: .string "Hi, it's {STR_VAR_1}. You know,\n" .string "the TRAINER who's always prepared!\p" .string "{PLAYER}{KUN}, do you have enough items?\n" @@ -1249,7 +1249,7 @@ MatchCall_PersonalizedText54:: @ 82AEFDA .string "I'd better go check my own\n" .string "supplies! Be vigilant!$" -MatchCall_PersonalizedText55:: @ 82AF0E7 +MatchCall_PersonalizedText55:: .string "It's {STR_VAR_1}!\n" .string "It's {STR_VAR_1}!\p" .string "{STR_VAR_2} is a very busy\n" @@ -1260,7 +1260,7 @@ MatchCall_PersonalizedText55:: @ 82AF0E7 .string "How did you do today?\n" .string "Tell me about it next time, okay?$" -MatchCall_PersonalizedText56:: @ 82AF1B8 +MatchCall_PersonalizedText56:: .string "It's me, {STR_VAR_1}.\p" .string "I'm popular because I have lots\n" .string "of BUG POKéMON, right?\p" @@ -1273,7 +1273,7 @@ MatchCall_PersonalizedText56:: @ 82AF1B8 .string "Snivel…\n" .string "See you!$" -MatchCall_PersonalizedText57:: @ 82AF2C4 +MatchCall_PersonalizedText57:: .string "Hah! Hah! Hah! Hah!\p" .string "Hi! It's {STR_VAR_1}! Hah! Hah!\p" .string "Trying to chat…\n" @@ -1284,7 +1284,7 @@ MatchCall_PersonalizedText57:: @ 82AF2C4 .string "We'll chat…another time…\l" .string "Hah! Hah! Hah!$" -MatchCall_PersonalizedText58:: @ 82AF371 +MatchCall_PersonalizedText58:: .string "Oh, hi!\p" .string "I'm still searching for treasures\n" .string "with KIRA!\p" @@ -1298,7 +1298,7 @@ MatchCall_PersonalizedText58:: @ 82AF371 .string "You're my one and only!\p" .string "…{PLAYER}, I have to go, bye!$" -MatchCall_PersonalizedText59:: @ 82AF480 +MatchCall_PersonalizedText59:: .string "This is {STR_VAR_1}!\p" .string "I went to DEWFORD's GYM again\n" .string "for training.\p" @@ -1319,7 +1319,7 @@ MatchCall_PersonalizedText59:: @ 82AF480 .string "Forget this chat ever happened,\n" .string "how about it? So long!$" -MatchCall_PersonalizedText60:: @ 82AF671 +MatchCall_PersonalizedText60:: .string "It's a pleasure to chat with\n" .string "a young TRAINER like you.\p" .string "I imagine that you will continue to\n" @@ -1334,7 +1334,7 @@ MatchCall_PersonalizedText60:: @ 82AF671 .string "Hahaha!\n" .string "Never be discouraged!$" -MatchCall_PersonalizedText61:: @ 82AF7D8 +MatchCall_PersonalizedText61:: .string "Hi, this is {STR_VAR_1}!\n" .string "We just won a battle!\p" .string "We don't win often, but it was this\n" @@ -1348,7 +1348,7 @@ MatchCall_PersonalizedText61:: @ 82AF7D8 .string "to her next time?\p" .string "Okay, see you!$" -MatchCall_PersonalizedText62:: @ 82AF8F7 +MatchCall_PersonalizedText62:: .string "{STR_VAR_1} here, yes.\n" .string "I headed out to sea yesterday.\p" .string "I had been hoping to find a new\n" @@ -1363,7 +1363,7 @@ MatchCall_PersonalizedText62:: @ 82AF8F7 .string "That's all I have to say!\n" .string "Farewell for now!$" -MatchCall_PersonalizedText63:: @ 82AFA39 +MatchCall_PersonalizedText63:: .string "Ahoy there!\n" .string "It's me, {STR_VAR_1}!\l" .string "I'm out on ROUTE 108 now!\l" @@ -1375,7 +1375,7 @@ MatchCall_PersonalizedText63:: @ 82AFA39 .string "That's all from ROUTE 108!\n" .string "Brought to you by {STR_VAR_1}!$" -MatchCall_PersonalizedText64:: @ 82AFB26 +MatchCall_PersonalizedText64:: .string "It's {STR_VAR_1}!\p" .string "I'm kind of busy, but I figured\n" .string "I should let you know that I've\l" @@ -1385,7 +1385,7 @@ MatchCall_PersonalizedText64:: @ 82AFB26 .string "I think we'll be good rivals,\n" .string "you and I. Good-bye for now!$" -MatchCall_BattleFrontierStreakText1:: @ 82AFC07 +MatchCall_BattleFrontierStreakText1:: .string "Hi! This is {STR_VAR_1}.\n" .string "I heard the news!\p" .string "They say you did excellent at\n" @@ -1393,7 +1393,7 @@ MatchCall_BattleFrontierStreakText1:: @ 82AFC07 .string "It's awesome, {STR_VAR_3} straight wins?\n" .string "See you!$" -MatchCall_BattleFrontierStreakText2:: @ 82AFC78 +MatchCall_BattleFrontierStreakText2:: .string "Hello, it's {STR_VAR_1}!\n" .string "I heard about you!\p" .string "They said you won {STR_VAR_3} straight\n" @@ -1401,7 +1401,7 @@ MatchCall_BattleFrontierStreakText2:: @ 82AFC78 .string "That's special! I should try\n" .string "harder, too! See you!$" -MatchCall_BattleFrontierStreakText3:: @ 82AFCFF +MatchCall_BattleFrontierStreakText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\p" .string "I heard you went on a tear at\n" @@ -1411,7 +1411,7 @@ MatchCall_BattleFrontierStreakText3:: @ 82AFCFF .string "I'd better get it together, too!\n" .string "Catch you soon!$" -MatchCall_BattleFrontierStreakText4:: @ 82AFDA7 +MatchCall_BattleFrontierStreakText4:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here. What's up?\p" .string "There's a rumor going around that\n" @@ -1420,7 +1420,7 @@ MatchCall_BattleFrontierStreakText4:: @ 82AFDA7 .string "I'd better step it up, too.\n" .string "See you!$" -MatchCall_BattleFrontierStreakText5:: @ 82AFE3D +MatchCall_BattleFrontierStreakText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "You were at the {STR_VAR_2}\n" @@ -1429,7 +1429,7 @@ MatchCall_BattleFrontierStreakText5:: @ 82AFE3D .string "I'd better work on my POKéMON more.\n" .string "See you soon!$" -MatchCall_BattleFrontierStreakText6:: @ 82AFECA +MatchCall_BattleFrontierStreakText6:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you pulled off\n" @@ -1438,7 +1438,7 @@ MatchCall_BattleFrontierStreakText6:: @ 82AFECA .string "That inspires me to focus on\n" .string "raising my team.$" -MatchCall_BattleFrontierStreakText7:: @ 82AFF64 +MatchCall_BattleFrontierStreakText7:: .string "…Er, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here…\p" .string "Oh, yeah, you were over at\n" @@ -1447,7 +1447,7 @@ MatchCall_BattleFrontierStreakText7:: @ 82AFF64 .string "Oh, there goes a rare POKéMON!\n" .string "I have to go!$" -MatchCall_BattleFrontierStreakText8:: @ 82AFFF0 +MatchCall_BattleFrontierStreakText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\p" @@ -1457,7 +1457,7 @@ MatchCall_BattleFrontierStreakText8:: @ 82AFFF0 .string "That's very impressive!\n" .string "I hope you stay successful.$" -MatchCall_BattleFrontierStreakText9:: @ 82B00B5 +MatchCall_BattleFrontierStreakText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! Your {STR_VAR_3}-win streak at\n" @@ -1465,7 +1465,7 @@ MatchCall_BattleFrontierStreakText9:: @ 82B00B5 .string "That is so cool!\n" .string "I'd better try harder, too!$" -MatchCall_BattleFrontierStreakText10:: @ 82B0129 +MatchCall_BattleFrontierStreakText10:: .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "You won {STR_VAR_3} straight battles at\n" @@ -1473,7 +1473,7 @@ MatchCall_BattleFrontierStreakText10:: @ 82B0129 .string "That's quite the accomplishment.\n" .string "I need to work harder.$" -MatchCall_BattleFrontierStreakText11:: @ 82B01A5 +MatchCall_BattleFrontierStreakText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" @@ -1483,7 +1483,7 @@ MatchCall_BattleFrontierStreakText11:: @ 82B01A5 .string "You're good, you.\n" .string "I wonder how many I can win?$" -MatchCall_BattleFrontierStreakText12:: @ 82B0232 +MatchCall_BattleFrontierStreakText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" @@ -1493,7 +1493,7 @@ MatchCall_BattleFrontierStreakText12:: @ 82B0232 .string "That's quite the tale.\n" .string "See you!$" -MatchCall_BattleFrontierStreakText13:: @ 82B02D9 +MatchCall_BattleFrontierStreakText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" @@ -1502,7 +1502,7 @@ MatchCall_BattleFrontierStreakText13:: @ 82B02D9 .string "I admire your energy!\n" .string "Bye now.$" -MatchCall_BattleFrontierStreakText14:: @ 82B0366 +MatchCall_BattleFrontierStreakText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I heard about you!\n" @@ -1511,7 +1511,7 @@ MatchCall_BattleFrontierStreakText14:: @ 82B0366 .string "You're an inspiration!\n" .string "Bye-bye!$" -MatchCall_BattleFrontierRecordStreakText1:: @ 82B03E6 +MatchCall_BattleFrontierRecordStreakText1:: .string "Hi! This is {STR_VAR_1}.\n" .string "I heard the news!\p" .string "They say you did excellent at\n" @@ -1519,7 +1519,7 @@ MatchCall_BattleFrontierRecordStreakText1:: @ 82B03E6 .string "It's awesome--{STR_VAR_3} straight wins?\n" .string "See you!$" -MatchCall_BattleFrontierRecordStreakText2:: @ 82B0457 +MatchCall_BattleFrontierRecordStreakText2:: .string "Hello, it's {STR_VAR_1}!\n" .string "I heard about you!\p" .string "They said you won {STR_VAR_3} straight\n" @@ -1527,7 +1527,7 @@ MatchCall_BattleFrontierRecordStreakText2:: @ 82B0457 .string "That's special! I should try\n" .string "harder, too! See you!$" -MatchCall_BattleFrontierRecordStreakText3:: @ 82B04DE +MatchCall_BattleFrontierRecordStreakText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\p" .string "I heard you went on a tear at\n" @@ -1537,7 +1537,7 @@ MatchCall_BattleFrontierRecordStreakText3:: @ 82B04DE .string "I'd better get it together, too!\n" .string "Catch you soon!$" -MatchCall_BattleFrontierRecordStreakText4:: @ 82B0586 +MatchCall_BattleFrontierRecordStreakText4:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here. What's up?\p" .string "There's a rumor going around that\n" @@ -1546,7 +1546,7 @@ MatchCall_BattleFrontierRecordStreakText4:: @ 82B0586 .string "I'd better step it up, too.\n" .string "See you!$" -MatchCall_BattleFrontierRecordStreakText5:: @ 82B061C +MatchCall_BattleFrontierRecordStreakText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "You were at the {STR_VAR_2}\n" @@ -1555,7 +1555,7 @@ MatchCall_BattleFrontierRecordStreakText5:: @ 82B061C .string "Me? I'd say I'm coming along.\n" .string "See you soon!$" -MatchCall_BattleFrontierRecordStreakText6:: @ 82B06A3 +MatchCall_BattleFrontierRecordStreakText6:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you pulled off\n" @@ -1564,7 +1564,7 @@ MatchCall_BattleFrontierRecordStreakText6:: @ 82B06A3 .string "I'd better try harder myself!\n" .string "See you soon!$" -MatchCall_BattleFrontierRecordStreakText7:: @ 82B073B +MatchCall_BattleFrontierRecordStreakText7:: .string "…Er, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here…\p" .string "Oh, yeah, you were over at\n" @@ -1573,7 +1573,7 @@ MatchCall_BattleFrontierRecordStreakText7:: @ 82B073B .string "Oh, there goes a rare POKéMON!\n" .string "I have to go!$" -MatchCall_BattleFrontierRecordStreakText8:: @ 82B07C7 +MatchCall_BattleFrontierRecordStreakText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\p" @@ -1583,7 +1583,7 @@ MatchCall_BattleFrontierRecordStreakText8:: @ 82B07C7 .string "That's very impressive!\n" .string "I'd better work on my POKéMON, too!$" -MatchCall_BattleFrontierRecordStreakText9:: @ 82B0894 +MatchCall_BattleFrontierRecordStreakText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! Your {STR_VAR_3}-win streak at\n" @@ -1591,7 +1591,7 @@ MatchCall_BattleFrontierRecordStreakText9:: @ 82B0894 .string "That is so cool!\n" .string "I'd better try harder, too!$" -MatchCall_BattleFrontierRecordStreakText10:: @ 82B0908 +MatchCall_BattleFrontierRecordStreakText10:: .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "You won {STR_VAR_3} straight battles at\n" @@ -1599,7 +1599,7 @@ MatchCall_BattleFrontierRecordStreakText10:: @ 82B0908 .string "That's quite the accomplishment.\n" .string "I need to work harder.$" -MatchCall_BattleFrontierRecordStreakText11:: @ 82B0984 +MatchCall_BattleFrontierRecordStreakText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" @@ -1609,7 +1609,7 @@ MatchCall_BattleFrontierRecordStreakText11:: @ 82B0984 .string "You're good, you.\n" .string "I wonder how many I can win?$" -MatchCall_BattleFrontierRecordStreakText12:: @ 82B0A11 +MatchCall_BattleFrontierRecordStreakText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" @@ -1619,7 +1619,7 @@ MatchCall_BattleFrontierRecordStreakText12:: @ 82B0A11 .string "That's quite the tale.\n" .string "See you!$" -MatchCall_BattleFrontierRecordStreakText13:: @ 82B0AB8 +MatchCall_BattleFrontierRecordStreakText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" @@ -1628,7 +1628,7 @@ MatchCall_BattleFrontierRecordStreakText13:: @ 82B0AB8 .string "I admire your energy!\n" .string "Bye now.$" -MatchCall_BattleFrontierRecordStreakText14:: @ 82B0B45 +MatchCall_BattleFrontierRecordStreakText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "I heard about you!\p" @@ -1637,7 +1637,7 @@ MatchCall_BattleFrontierRecordStreakText14:: @ 82B0B45 .string "You're an inspiration!\n" .string "Bye-bye!$" -MatchCall_BattleDomeText1:: @ 82B0BC5 +MatchCall_BattleDomeText1:: .string "Hi! {PLAYER}?\n" .string "Hello, this is {STR_VAR_1}!\l" .string "I heard the news!\p" @@ -1646,7 +1646,7 @@ MatchCall_BattleDomeText1:: @ 82B0BC5 .string "It's awesome! I have to do better!\n" .string "See you!$" -MatchCall_BattleDomeText2:: @ 82B0C4A +MatchCall_BattleDomeText2:: .string "Hello, it's {STR_VAR_1}!\n" .string "I heard about you!\p" .string "They said you won {STR_VAR_3} titles\n" @@ -1654,7 +1654,7 @@ MatchCall_BattleDomeText2:: @ 82B0C4A .string "That's super! I wonder if I can\n" .string "become a champion?$" -MatchCall_BattleDomeText3:: @ 82B0CC7 +MatchCall_BattleDomeText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\l" .string "How's it going?\p" @@ -1663,7 +1663,7 @@ MatchCall_BattleDomeText3:: @ 82B0CC7 .string "Make it one more next time!\n" .string "Catch you soon!$" -MatchCall_BattleDomeText4:: @ 82B0D4A +MatchCall_BattleDomeText4:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "I heard you became the champion\n" @@ -1671,7 +1671,7 @@ MatchCall_BattleDomeText4:: @ 82B0D4A .string "Sounds like you're working hard.\n" .string "I'll try to keep up!$" -MatchCall_BattleDomeText5:: @ 82B0DC8 +MatchCall_BattleDomeText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "I heard you won {STR_VAR_3} times\n" @@ -1679,7 +1679,7 @@ MatchCall_BattleDomeText5:: @ 82B0DC8 .string "I'd better get with it, too!\n" .string "See you soon!$" -MatchCall_BattleDomeText6:: @ 82B0E35 +MatchCall_BattleDomeText6:: .string "Hey, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you became\n" @@ -1688,7 +1688,7 @@ MatchCall_BattleDomeText6:: @ 82B0E35 .string "I'd better raise my POKéMON before\n" .string "you pull farther ahead.$" -MatchCall_BattleDomeText7:: @ 82B0ED1 +MatchCall_BattleDomeText7:: .string "{PLAYER}{KUN}?\n" .string "{STR_VAR_1} here.\p" .string "You were at the {STR_VAR_2}\n" @@ -1698,7 +1698,7 @@ MatchCall_BattleDomeText7:: @ 82B0ED1 .string "Oh, is that right.\n" .string "Okay, bye.$" -MatchCall_BattleDomeText8:: @ 82B0F72 +MatchCall_BattleDomeText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\l" @@ -1708,7 +1708,7 @@ MatchCall_BattleDomeText8:: @ 82B0F72 .string "I must raise my POKéMON like you.\n" .string "See you again.$" -MatchCall_BattleDomeText9:: @ 82B102A +MatchCall_BattleDomeText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! You took the title\n" @@ -1716,7 +1716,7 @@ MatchCall_BattleDomeText9:: @ 82B102A .string "That is so cool!\n" .string "I'd better try harder, too!$" -MatchCall_BattleDomeText10:: @ 82B10A7 +MatchCall_BattleDomeText10:: .string "Oh, {PLAYER}{KUN}, hello.\n" .string "This is {STR_VAR_1}.\p" .string "You won {STR_VAR_3} straight times at\n" @@ -1724,7 +1724,7 @@ MatchCall_BattleDomeText10:: @ 82B10A7 .string "That's quite the accomplishment.\n" .string "I need to work harder.$" -MatchCall_BattleDomeText11:: @ 82B1121 +MatchCall_BattleDomeText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" @@ -1736,7 +1736,7 @@ MatchCall_BattleDomeText11:: @ 82B1121 .string "…Pretty well impossible?\n" .string "Well, see you!$" -MatchCall_BattleDomeText12:: @ 82B11D3 +MatchCall_BattleDomeText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" @@ -1745,7 +1745,7 @@ MatchCall_BattleDomeText12:: @ 82B11D3 .string "That's quite the tale.\n" .string "See you!$" -MatchCall_BattleDomeText13:: @ 82B124D +MatchCall_BattleDomeText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" @@ -1754,7 +1754,7 @@ MatchCall_BattleDomeText13:: @ 82B124D .string "I admire your energy!\n" .string "Bye now.$" -MatchCall_BattleDomeText14:: @ 82B12D0 +MatchCall_BattleDomeText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "I heard about you!\p" @@ -1763,7 +1763,7 @@ MatchCall_BattleDomeText14:: @ 82B12D0 .string "You're an inspiration!\n" .string "See you again!$" -MatchCall_BattlePikeText1:: @ 82B1347 +MatchCall_BattlePikeText1:: .string "Hi! {PLAYER}?\n" .string "Hello, this is {STR_VAR_1}!\l" .string "I heard the news!\p" @@ -1772,7 +1772,7 @@ MatchCall_BattlePikeText1:: @ 82B1347 .string "That's awesome!\n" .string "See you!$" -MatchCall_BattlePikeText2:: @ 82B13B1 +MatchCall_BattlePikeText2:: .string "Hello, it's {STR_VAR_1}!\n" .string "I heard about you!\p" .string "They said you won your way through\n" @@ -1780,7 +1780,7 @@ MatchCall_BattlePikeText2:: @ 82B13B1 .string "I have to try much harder!\n" .string "Bye!$" -MatchCall_BattlePikeText3:: @ 82B142B +MatchCall_BattlePikeText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\l" .string "How's it going?\p" @@ -1789,7 +1789,7 @@ MatchCall_BattlePikeText3:: @ 82B142B .string "Try to do even better next time!\n" .string "Catch you soon!$" -MatchCall_BattlePikeText4:: @ 82B14B4 +MatchCall_BattlePikeText4:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "I heard you blew through {STR_VAR_3} rooms\n" @@ -1797,7 +1797,7 @@ MatchCall_BattlePikeText4:: @ 82B14B4 .string "I'd better train my POKéMON and\n" .string "try to keep up!$" -MatchCall_BattlePikeText5:: @ 82B1525 +MatchCall_BattlePikeText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "I heard you got past {STR_VAR_3} rooms\n" @@ -1805,7 +1805,7 @@ MatchCall_BattlePikeText5:: @ 82B1525 .string "I'd better get with it, too!\n" .string "See you soon!$" -MatchCall_BattlePikeText6:: @ 82B158E +MatchCall_BattlePikeText6:: .string "Hey, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you got through\n" @@ -1813,7 +1813,7 @@ MatchCall_BattlePikeText6:: @ 82B158E .string "I'd better raise my POKéMON before\n" .string "you pull further ahead.$" -MatchCall_BattlePikeText7:: @ 82B1622 +MatchCall_BattlePikeText7:: .string "{PLAYER}{KUN}?\n" .string "{STR_VAR_1} here.\p" .string "You were at the {STR_VAR_2}\n" @@ -1822,7 +1822,7 @@ MatchCall_BattlePikeText7:: @ 82B1622 .string "Oh, there goes a rare POKéMON!\n" .string "Okay, bye.$" -MatchCall_BattlePikeText8:: @ 82B169D +MatchCall_BattlePikeText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\l" @@ -1833,7 +1833,7 @@ MatchCall_BattlePikeText8:: @ 82B169D .string "I must raise my POKéMON like you.\l" .string "See you again.$" -MatchCall_BattlePikeText9:: @ 82B1775 +MatchCall_BattlePikeText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! You won your way through\n" @@ -1841,7 +1841,7 @@ MatchCall_BattlePikeText9:: @ 82B1775 .string "That is so cool!\n" .string "I'd better try harder, too!$" -MatchCall_BattlePikeText10:: @ 82B17F8 +MatchCall_BattlePikeText10:: .string "Oh, {PLAYER}{KUN}, hello.\n" .string "This is {STR_VAR_1}.\p" .string "You won your way past {STR_VAR_3} rooms\n" @@ -1849,7 +1849,7 @@ MatchCall_BattlePikeText10:: @ 82B17F8 .string "That's quite the accomplishment.\n" .string "I need to work harder.$" -MatchCall_BattlePikeText11:: @ 82B1877 +MatchCall_BattlePikeText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" @@ -1861,7 +1861,7 @@ MatchCall_BattlePikeText11:: @ 82B1877 .string "…Pretty well impossible?\n" .string "Well, see you!$" -MatchCall_BattlePikeText12:: @ 82B1946 +MatchCall_BattlePikeText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" @@ -1870,7 +1870,7 @@ MatchCall_BattlePikeText12:: @ 82B1946 .string "That's quite the tale.\n" .string "See you!$" -MatchCall_BattlePikeText13:: @ 82B19C7 +MatchCall_BattlePikeText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" @@ -1879,7 +1879,7 @@ MatchCall_BattlePikeText13:: @ 82B19C7 .string "I admire your energy!\n" .string "Bye now.$" -MatchCall_BattlePikeText14:: @ 82B1A4C +MatchCall_BattlePikeText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "I heard about you!\p" @@ -1888,7 +1888,7 @@ MatchCall_BattlePikeText14:: @ 82B1A4C .string "You're an inspiration!\n" .string "See you again!$" -MatchCall_BattlePyramidText1:: @ 82B1ACA +MatchCall_BattlePyramidText1:: .string "Hi! {PLAYER}?\n" .string "Hello, this is {STR_VAR_1}!\l" .string "I heard the news!\p" @@ -1897,7 +1897,7 @@ MatchCall_BattlePyramidText1:: @ 82B1ACA .string "That's awesome!\n" .string "I should try that challenge.$" -MatchCall_BattlePyramidText2:: @ 82B1B50 +MatchCall_BattlePyramidText2:: .string "Hello, it's {STR_VAR_1}!\n" .string "I heard about you!\p" .string "They said you won your way through\n" @@ -1905,7 +1905,7 @@ MatchCall_BattlePyramidText2:: @ 82B1B50 .string "Wow, that's fantastic!\n" .string "I'd better raise my POKéMON, too!$" -MatchCall_BattlePyramidText3:: @ 82B1BE4 +MatchCall_BattlePyramidText3:: .string "Hey there, {PLAYER}!\n" .string "It's me, {STR_VAR_1}.\l" .string "How's it going?\p" @@ -1914,7 +1914,7 @@ MatchCall_BattlePyramidText3:: @ 82B1BE4 .string "Try to do even better next time!\n" .string "Catch you soon!$" -MatchCall_BattlePyramidText4:: @ 82B1C6A +MatchCall_BattlePyramidText4:: .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "I heard you scaled {STR_VAR_3} floors\n" @@ -1922,7 +1922,7 @@ MatchCall_BattlePyramidText4:: @ 82B1C6A .string "I'd better work hard and try\n" .string "to keep up!$" -MatchCall_BattlePyramidText5:: @ 82B1CCF +MatchCall_BattlePyramidText5:: .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "I heard you climbed {STR_VAR_3} floors\n" @@ -1930,7 +1930,7 @@ MatchCall_BattlePyramidText5:: @ 82B1CCF .string "I'd better get with it, too!\n" .string "See you soon!$" -MatchCall_BattlePyramidText6:: @ 82B1D38 +MatchCall_BattlePyramidText6:: .string "Hey, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you got through\n" @@ -1938,7 +1938,7 @@ MatchCall_BattlePyramidText6:: @ 82B1D38 .string "I'd better raise my POKéMON before\n" .string "you pull further ahead.$" -MatchCall_BattlePyramidText7:: @ 82B1DCD +MatchCall_BattlePyramidText7:: .string "{PLAYER}{KUN}?\n" .string "{STR_VAR_1} here.\p" .string "You were at the {STR_VAR_2}\n" @@ -1948,7 +1948,7 @@ MatchCall_BattlePyramidText7:: @ 82B1DCD .string "No, huh?\n" .string "Okay, bye.$" -MatchCall_BattlePyramidText8:: @ 82B1E4B +MatchCall_BattlePyramidText8:: .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\l" @@ -1959,7 +1959,7 @@ MatchCall_BattlePyramidText8:: @ 82B1E4B .string "I must raise my POKéMON like you.\l" .string "See you again.$" -MatchCall_BattlePyramidText9:: @ 82B1F24 +MatchCall_BattlePyramidText9:: .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! You won your way through\n" @@ -1967,7 +1967,7 @@ MatchCall_BattlePyramidText9:: @ 82B1F24 .string "That is so cool!\n" .string "I'd better try harder, too!$" -MatchCall_BattlePyramidText10:: @ 82B1FA8 +MatchCall_BattlePyramidText10:: .string "Oh, {PLAYER}{KUN}, hello.\n" .string "This is {STR_VAR_1}.\p" .string "You climbed {STR_VAR_3} floors inside\n" @@ -1975,7 +1975,7 @@ MatchCall_BattlePyramidText10:: @ 82B1FA8 .string "That's quite the accomplishment.\n" .string "I need to work harder.$" -MatchCall_BattlePyramidText11:: @ 82B2022 +MatchCall_BattlePyramidText11:: .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" @@ -1987,7 +1987,7 @@ MatchCall_BattlePyramidText11:: @ 82B2022 .string "…Pretty well impossible?\n" .string "Well, see you!$" -MatchCall_BattlePyramidText12:: @ 82B20F3 +MatchCall_BattlePyramidText12:: .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" @@ -1996,7 +1996,7 @@ MatchCall_BattlePyramidText12:: @ 82B20F3 .string "That's quite the tale.\n" .string "See you!$" -MatchCall_BattlePyramidText13:: @ 82B2175 +MatchCall_BattlePyramidText13:: .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" @@ -2005,7 +2005,7 @@ MatchCall_BattlePyramidText13:: @ 82B2175 .string "I admire your energy!\n" .string "Bye now.$" -MatchCall_BattlePyramidText14:: @ 82B21FC +MatchCall_BattlePyramidText14:: .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "I heard about you!\p" @@ -2014,7 +2014,7 @@ MatchCall_BattlePyramidText14:: @ 82B21FC .string "You're an inspiration!\n" .string "See you again!$" -MatchCall_Text_Mom1:: @ 82B227B +MatchCall_Text_Mom1:: .string "MOM: Your father and you…\n" .string "Everyone is captivated by POKéMON.\p" .string "What is the charm of POKéMON?\p" @@ -2022,7 +2022,7 @@ MatchCall_Text_Mom1:: @ 82B227B .string "I adore POKéMON that help me with\l" .string "my everyday chores.$" -MatchCall_Text_Mom2:: @ 82B2310 +MatchCall_Text_Mom2:: .string "MOM: Hi, {PLAYER}!\n" .string "Your father keeps himself locked\l" .string "away in the PETALBURG GYM.\p" @@ -2032,13 +2032,13 @@ MatchCall_Text_Mom2:: @ 82B2310 .string "I'm guessing that losing to you\n" .string "was a big blow to his pride!$" -MatchCall_Text_Mom3:: @ 82B23F3 +MatchCall_Text_Mom3:: .string "MOM: {PLAYER}…\n" .string "Don't worry about me or the house.\p" .string "Wear those RUNNING SHOES until\n" .string "they fall apart, honey!$" -MatchCall_Text_Roxanne1:: @ 82B2456 +MatchCall_Text_Roxanne1:: .string "ROXANNE: Oh, hello, {PLAYER}!\p" .string "I've been hard at work retraining\n" .string "since we met.\p" @@ -2047,7 +2047,7 @@ MatchCall_Text_Roxanne1:: @ 82B2456 .string "But when I do, please visit my GYM\n" .string "for a rematch!$" -MatchCall_Text_Roxanne2:: @ 82B250E +MatchCall_Text_Roxanne2:: .string "ROXANNE: Is this {PLAYER}?\n" .string "Congratulations!\l" .string "I've been hearing about you!\p" @@ -2056,18 +2056,18 @@ MatchCall_Text_Roxanne2:: @ 82B250E .string "But when I do, please visit my GYM\n" .string "for a rematch!$" -MatchCall_Text_Roxanne3:: @ 82B25C1 +MatchCall_Text_Roxanne3:: .string "ROXANNE: {PLAYER}!\n" .string "My GYM is ready!\p" .string "Please visit RUSTBORO whenever\n" .string "you can!$" -MatchCall_Text_Roxanne4:: @ 82B2607 +MatchCall_Text_Roxanne4:: .string "ROXANNE: At the RUSTBORO GYM,\n" .string "the fact that we battled, {PLAYER},\l" .string "is a matter of pride.$" -MatchCall_Text_Brawly1:: @ 82B2659 +MatchCall_Text_Brawly1:: .string "BRAWLY: Hey, there, {PLAYER}{KUN}!\p" .string "I learned a lot from the battle we\n" .string "had together.\p" @@ -2078,7 +2078,7 @@ MatchCall_Text_Brawly1:: @ 82B2659 .string "But if I can reopen the GYM,\n" .string "I want you to challenge us again.$" -MatchCall_Text_Brawly2:: @ 82B275D +MatchCall_Text_Brawly2:: .string "BRAWLY: Hey, {PLAYER}{KUN}!\n" .string "Congratulations!\p" .string "Word about your exploits arrived\n" @@ -2090,17 +2090,17 @@ MatchCall_Text_Brawly2:: @ 82B275D .string "But if I can reopen the GYM,\n" .string "I want you to challenge us again.$" -MatchCall_Text_Brawly3:: @ 82B286F +MatchCall_Text_Brawly3:: .string "BRAWLY: Hey, {PLAYER}{KUN}!\n" .string "My GYM's ready for action!\p" .string "Come back to DEWFORD anytime\n" .string "for another challenge!$" -MatchCall_Text_Brawly4:: @ 82B28D1 +MatchCall_Text_Brawly4:: .string "BRAWLY: {PLAYER}{KUN}, I don't think\n" .string "I'll ever get bored of battling you!$" -MatchCall_Text_Wattson1:: @ 82B2912 +MatchCall_Text_Wattson1:: .string "WATTSON: Oh, it's you!\p" .string "After you left, I've been redoing\n" .string "my training from scratch.\p" @@ -2109,7 +2109,7 @@ MatchCall_Text_Wattson1:: @ 82B2912 .string "You'll have to wait till then!\n" .string "Wahahahaha!$" -MatchCall_Text_Wattson2:: @ 82B29CA +MatchCall_Text_Wattson2:: .string "WATTSON: Wahahahaha!\p" .string "You've really done it, haven't you?\n" .string "I've been getting word about you!\p" @@ -2120,18 +2120,18 @@ MatchCall_Text_Wattson2:: @ 82B29CA .string "You'll have to wait till then!\n" .string "Wahahahaha!$" -MatchCall_Text_Wattson3:: @ 82B2AB6 +MatchCall_Text_Wattson3:: .string "WATTSON: Oh, it's you!\n" .string "My GYM's ready!\p" .string "Visit MAUVILLE anytime!\n" .string "Wahahahaha!$" -MatchCall_Text_Wattson4:: @ 82B2B01 +MatchCall_Text_Wattson4:: .string "WATTSON: Wahahaha!\p" .string "A battle with you is always charged\n" .string "with shocking power!$" -MatchCall_Text_Flannery1:: @ 82B2B4D +MatchCall_Text_Flannery1:: .string "FLANNERY: {PLAYER}…\p" .string "When we battled, I learned exactly\n" .string "how immature I was.\p" @@ -2141,7 +2141,7 @@ MatchCall_Text_Flannery1:: @ 82B2B4D .string "When the time comes, {PLAYER},\n" .string "please challenge us again.$" -MatchCall_Text_Flannery2:: @ 82B2C0E +MatchCall_Text_Flannery2:: .string "FLANNERY: Hello, {PLAYER}?\n" .string "Congratulations!\p" .string "Word of your success has reached\n" @@ -2152,44 +2152,44 @@ MatchCall_Text_Flannery2:: @ 82B2C0E .string "appear beside my name in the\l" .string "MATCH CALL list.$" -MatchCall_Text_Flannery3:: @ 82B2CF1 +MatchCall_Text_Flannery3:: .string "FLANNERY: Oh, {PLAYER}?\n" .string "Our GYM's ready!\p" .string "Come to LAVARIDGE for a soak\n" .string "in the hot spring and a challenge!$" -MatchCall_Text_Flannery4:: @ 82B2D54 +MatchCall_Text_Flannery4:: .string "FLANNERY: {PLAYER}…\n" .string "I'm positive that you keep getting\l" .string "better at training every time.$" -MatchCall_Text_Winona1:: @ 82B2DA4 +MatchCall_Text_Winona1:: .string "WINONA: Hello, {PLAYER}!\p" .string "Thanks to our battle, I've come\n" .string "to understand my weak points!\p" .string "When I reopen the GYM, I won't go\n" .string "down in defeat again!$" -MatchCall_Text_Winona2:: @ 82B2E2B +MatchCall_Text_Winona2:: .string "WINONA: You've done it, {PLAYER}!\p" .string "News about the new CHAMPION\n" .string "has reached us in FORTREE!\p" .string "But… The next time we battle,\n" .string "it's not going to end the same way.$" -MatchCall_Text_Winona3:: @ 82B2EC2 +MatchCall_Text_Winona3:: .string "WINONA: Is this {PLAYER}?\n" .string "Our GYM is back in operation!\p" .string "We're waiting for you in FORTREE!$" -MatchCall_Text_Winona4:: @ 82B2F16 +MatchCall_Text_Winona4:: .string "WINONA: {PLAYER}…\n" .string "Though I have lost, my wings will\l" .string "never break.\p" .string "Yes, in exactly the same way that\n" .string "you never lost sight of your dream.$" -MatchCall_Text_TateLiza1:: @ 82B2F97 +MatchCall_Text_TateLiza1:: .string "TATE: Oh! You're…\n" .string "LIZA: {PLAYER}!\p" .string "TATE: We're in training again…\n" @@ -2199,7 +2199,7 @@ MatchCall_Text_TateLiza1:: @ 82B2F97 .string "TATE: A mark'll appear by our name…\n" .string "LIZA: On the MATCH CALL list.$" -MatchCall_Text_TateLiza2:: @ 82B306E +MatchCall_Text_TateLiza2:: .string "TATE: {PLAYER}, congratulations!\n" .string "LIZA: {PLAYER}, congratulations!\p" .string "TATE: The two of us are…\n" @@ -2209,7 +2209,7 @@ MatchCall_Text_TateLiza2:: @ 82B306E .string "TATE: A mark'll appear by our name…\n" .string "LIZA: On the MATCH CALL list.$" -MatchCall_Text_TateLiza3:: @ 82B3158 +MatchCall_Text_TateLiza3:: .string "TATE: {PLAYER}!\n" .string "LIZA: {PLAYER}!\p" .string "TATE: Our GYM is ready!\n" @@ -2217,13 +2217,13 @@ MatchCall_Text_TateLiza3:: @ 82B3158 .string "TATE: Please come visit…\n" .string "LIZA: MOSSDEEP anytime!$" -MatchCall_Text_TateLiza4:: @ 82B31CD +MatchCall_Text_TateLiza4:: .string "TATE: {PLAYER}, the battle we had…\n" .string "LIZA: Is an invaluable experience.\p" .string "TATE: It would be nice if…\n" .string "LIZA: We could all battle again!$" -MatchCall_Text_Juan1:: @ 82B3249 +MatchCall_Text_Juan1:: .string "JUAN: Hmm…\n" .string "{PLAYER}{KUN}… Was it?\p" .string "Our battle together--it brought\n" @@ -2232,7 +2232,7 @@ MatchCall_Text_Juan1:: @ 82B3249 .string "Perhaps you are a genius who may\n" .string "yet surpass WALLACE!$" -MatchCall_Text_Juan2:: @ 82B32EC +MatchCall_Text_Juan2:: .string "JUAN: Fufu… {PLAYER}{KUN}…\n" .string "You've finally achieved your goal.\p" .string "My eye for appraising talent wasn't\n" @@ -2241,14 +2241,14 @@ MatchCall_Text_Juan2:: @ 82B32EC .string "you, for you have scaled the peak\l" .string "of power and prestige.$" -MatchCall_Text_Juan3:: @ 82B33AA +MatchCall_Text_Juan3:: .string "JUAN: Hoho… {PLAYER}{KUN}…\p" .string "Our SOOTOPOLIS GYM has finally\n" .string "reopened.\p" .string "If you wish to see me, you are\n" .string "welcome to visit anytime.$" -MatchCall_Text_Juan4:: @ 82B341E +MatchCall_Text_Juan4:: .string "JUAN: {PLAYER}{KUN}…\p" .string "Like the finest music, the battles\n" .string "we wage together strike chords\l" @@ -2256,7 +2256,7 @@ MatchCall_Text_Juan4:: @ 82B341E .string "When I close my eyes, I see visions\n" .string "of you soaring with the melody…$" -MatchCall_Text_Sidney:: @ 82B34CC +MatchCall_Text_Sidney:: .string "SIDNEY: Yo, {PLAYER}!\p" .string "If you want to battle with me\n" .string "again, you come on back whenever\l" @@ -2264,7 +2264,7 @@ MatchCall_Text_Sidney:: @ 82B34CC .string "I'll always be here!\n" .string "I'll be waiting!$" -MatchCall_Text_Phoebe:: @ 82B3561 +MatchCall_Text_Phoebe:: .string "PHOEBE: Hi, {PLAYER}!\p" .string "How about coming back here again\n" .string "sometime?\p" @@ -2272,7 +2272,7 @@ MatchCall_Text_Phoebe:: @ 82B3561 .string "your bond has grown with your\l" .string "POKéMON.$" -MatchCall_Text_Glacia:: @ 82B35E4 +MatchCall_Text_Glacia:: .string "GLACIA: Hello, {PLAYER}.\p" .string "I trust you haven't become\n" .string "complacent with your power?\p" @@ -2280,7 +2280,7 @@ MatchCall_Text_Glacia:: @ 82B35E4 .string "hot emotions just a little, do come\l" .string "to the POKéMON LEAGUE…$" -MatchCall_Text_Drake:: @ 82B368B +MatchCall_Text_Drake:: .string "DRAKE: That voice… {PLAYER}, is it?\n" .string "You sound well…\p" .string "I understand that there is now\n" @@ -2292,7 +2292,7 @@ MatchCall_Text_Drake:: @ 82B368B .string "the POKéMON LEAGUE!\p" .string "Don't you agree, {PLAYER}?$" -MatchCall_Text_Wallace:: @ 82B3790 +MatchCall_Text_Wallace:: .string "WALLACE: Hello, {PLAYER}{KUN}.\n" .string "Have you met STEVEN?\p" .string "He is…\n" @@ -2306,7 +2306,7 @@ MatchCall_Text_Wallace:: @ 82B3790 .string "But what is a rare stone exactly?\n" .string "All I can think of is a METEORITE…$" -MatchCall_Text_MayRayquazaCall: @ 82B38C1 +MatchCall_Text_MayRayquazaCall: .string "… … … … … …\n" .string "… … … … … Beep!\p" .string "MAY: Hi, {PLAYER}{KUN}!\p" @@ -2321,7 +2321,7 @@ MatchCall_Text_MayRayquazaCall: @ 82B38C1 .string "… … … … … …\n" .string "… … … … … Click!$" -MatchCall_Text_BrendanRayquazaCall: @ 82B39C6 +MatchCall_Text_BrendanRayquazaCall: .string "… … … … … …\n" .string "… … … … … Beep!\p" .string "BRENDAN: Hey, {PLAYER}!\n" @@ -2335,14 +2335,14 @@ MatchCall_Text_BrendanRayquazaCall: @ 82B39C6 .string "… … … … … …\n" .string "… … … … … Click!$" -MatchCall_Text_May1:: @ 2B3AB3 +MatchCall_Text_May1:: .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MR. BRINEY retired as a SAILOR,\n" .string "but I still see him out on the sea\l" .string "with his pet PEEKO sometimes.\p" .string "He must love the sea still.$" -MatchCall_Text_May2:: @ 2B3B3F +MatchCall_Text_May2:: .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "You know how little towns like\n" .string "PETALBURG and DEWFORD have GYMS?\p" @@ -2351,7 +2351,7 @@ MatchCall_Text_May2:: @ 2B3B3F .string "When they finally build a GYM there,\n" .string "I should apply to be the LEADER.$" -MatchCall_Text_May3:: @ 2B3C13 +MatchCall_Text_May3:: .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "Do you remember a man named\n" .string "the CUTTER in RUSTBORO?\l" @@ -2363,13 +2363,13 @@ MatchCall_Text_May3:: @ 2B3C13 .string "… … … … … …\p" .string "The ROCK SMASH GUY!$" -MatchCall_Text_May4:: @ 2B3CF3 +MatchCall_Text_May4:: .string "MAY: {PLAYER}{KUN}?\p" .string "RUSTURF TUNNEL…\n" .string "They named it that because it\l" .string "joins RUSTBORO and VERDANTURF.$" -MatchCall_Text_May5:: @ 2B3D4B +MatchCall_Text_May5:: .string "MAY: {PLAYER}{KUN}, how are you?\p" .string "I'm out on ROUTE 111 now.\p" .string "I'm going to get a rest at an old\n" @@ -2377,7 +2377,7 @@ MatchCall_Text_May5:: @ 2B3D4B .string "She lives just north of\n" .string "the desert.$" -MatchCall_Text_May6:: @ 2B3DD1 +MatchCall_Text_May6:: .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "Did you know about the MIRAGE\n" .string "TOWER in the desert?\p" @@ -2385,21 +2385,21 @@ MatchCall_Text_May6:: @ 2B3DD1 .string "to mysteriously come and go.\p" .string "I wish I could see it.$" -MatchCall_Text_May7:: @ 2B3E69 +MatchCall_Text_May7:: .string "MAY: {PLAYER}{KUN}, yahoo!\n" .string "I'm on ROUTE 119 now.\p" .string "There's a big river here, and\n" .string "it often rains.\p" .string "I got soaked!$" -MatchCall_Text_May8:: @ 2B3ECD +MatchCall_Text_May8:: .string "MAY: {PLAYER}{KUN}, hi.\p" .string "MT. PYRE is a memorial to POKéMON\n" .string "whose lives have ended.\p" .string "Maybe as a result, it's infested\n" .string "with many GHOST-type POKéMON!$" -MatchCall_Text_May9:: @ 2B3F2B +MatchCall_Text_May9:: .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "I was thinking of going to the hot\n" .string "spring in LAVARIDGE.\p" @@ -2407,14 +2407,14 @@ MatchCall_Text_May9:: @ 2B3F2B .string "PASS, I ran into some bad-looking\l" .string "characters. The mood was ugly!$" -MatchCall_Text_May10:: @ 2B3FFB +MatchCall_Text_May10:: .string "MAY: Hi, {PLAYER}{KUN}!\n" .string "Did you see the news?\p" .string "They say CAPT. STERN discovered\n" .string "the SEAFLOOR CAVERN while on his\l" .string "submarine expedition.$" -MatchCall_Text_May11:: @ 2B402B +MatchCall_Text_May11:: .string "MAY: Hi, {PLAYER}{KUN}!\n" .string "Don't you think it's neat?\p" .string "Even if you don't have a boat,\n" @@ -2424,7 +2424,7 @@ MatchCall_Text_May11:: @ 2B402B .string "There's a POKéMON move that lets\n" .string "you go to the bottom of the sea.$" -MatchCall_Text_May12:: @ 2B414B +MatchCall_Text_May12:: .string "MAY: Hi, {PLAYER}{KUN}!\n" .string "Hope things are okay!\p" .string "Have you been on the sea and\n" @@ -2435,7 +2435,7 @@ MatchCall_Text_May12:: @ 2B414B .string "When you get to the other side,\n" .string "come up to the surface. Easy!$" -MatchCall_Text_May13:: @ 2B4228 +MatchCall_Text_May13:: .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "How's it going?\n" .string "Are you filling your POKéDEX?\p" @@ -2444,7 +2444,7 @@ MatchCall_Text_May13:: @ 2B4228 .string "And there are three of them!\p" .string "I would love to see even one…$" -MatchCall_Text_May14:: @ 2B42E0 +MatchCall_Text_May14:: .string "MAY: {PLAYER}{KUN}!\n" .string "I heard the rumors!\p" .string "You beat the SOOTOPOLIS GYM\n" @@ -2452,7 +2452,7 @@ MatchCall_Text_May14:: @ 2B42E0 .string "That means you don't have far\n" .string "to go, do you?$" -MatchCall_Text_May15:: @ 2B4350 +MatchCall_Text_May15:: .string "MAY: There isn't a single TRAINER\n" .string "left in HOENN who doesn't know who\l" .string "you are, {PLAYER}{KUN}!\p" @@ -2460,7 +2460,7 @@ MatchCall_Text_May15:: @ 2B4350 .string "with you, {PLAYER}{KUN}, they're all\l" .string "surprised!$" -MatchCall_Text_Brendan1:: @ 2B43EF +MatchCall_Text_Brendan1:: .string "BRENDAN: Hey, {PLAYER}!\p" .string "MR. BRINEY retired as a SAILOR,\n" .string "but I still see him out on the sea\l" @@ -2468,7 +2468,7 @@ MatchCall_Text_Brendan1:: @ 2B43EF .string "I guess he must love\n" .string "the sea still.$" -MatchCall_Text_Brendan2:: @ 2B4486 +MatchCall_Text_Brendan2:: .string "BRENDAN: Hey, {PLAYER}!\p" .string "I don't get how little towns like\n" .string "PETALBURG and DEWFORD have GYMS.\p" @@ -2477,7 +2477,7 @@ MatchCall_Text_Brendan2:: @ 2B4486 .string "When they finally build a GYM there,\n" .string "I should apply to be the LEADER.$" -MatchCall_Text_Brendan3:: @ 2B4560 +MatchCall_Text_Brendan3:: .string "BRENDAN: Yo, {PLAYER}!\p" .string "Do you remember a guy named\n" .string "the CUTTER in RUSTBORO?\l" @@ -2489,14 +2489,14 @@ MatchCall_Text_Brendan3:: @ 2B4560 .string "… … … … … …\p" .string "The ROCK SMASH GUY!$" -MatchCall_Text_Brendan4:: @ 2B463F +MatchCall_Text_Brendan4:: .string "BRENDAN: This voice… {PLAYER}?\p" .string "They gave RUSTURF TUNNEL its name\n" .string "because it joins RUSTBORO and\l" .string "VERDANTURF.\p" .string "Did you know that?$" -MatchCall_Text_Brendan5:: @ 2B46B7 +MatchCall_Text_Brendan5:: .string "BRENDAN: {PLAYER}, what's up?\p" .string "Hey, I'm out on ROUTE 111 now.\p" .string "I'm going to rest up at an old\n" @@ -2504,7 +2504,7 @@ MatchCall_Text_Brendan5:: @ 2B46B7 .string "If you're in the area, you should\n" .string "visit her, too.$" -MatchCall_Text_Brendan6:: @ 2B4761 +MatchCall_Text_Brendan6:: .string "BRENDAN: Hey, {PLAYER}!\p" .string "Did you know about the MIRAGE\n" .string "TOWER in the desert?\p" @@ -2512,21 +2512,21 @@ MatchCall_Text_Brendan6:: @ 2B4761 .string "seen only sometimes.\p" .string "I'd like to see that!$" -MatchCall_Text_Brendan7:: @ 2B47F4 +MatchCall_Text_Brendan7:: .string "BRENDAN: Who's this? Oh, {PLAYER}?\n" .string "Guess what? I'm on ROUTE 119 now.\p" .string "There's a big river here, and\n" .string "it rains all the time.\p" .string "I got soaked to the bone!$" -MatchCall_Text_Brendan8:: @ 2B4882 +MatchCall_Text_Brendan8:: .string "BRENDAN: {PLAYER}!\p" .string "MT. PYRE is a memorial to POKéMON\n" .string "whose lives have ended.\p" .string "That's probably why it's infested\n" .string "with many GHOST-type POKéMON!$" -MatchCall_Text_Brendan9:: @ 2B4909 +MatchCall_Text_Brendan9:: .string "BRENDAN: Hey there, {PLAYER}.\p" .string "I was on my way back to the hot\n" .string "spring in LAVARIDGE.\p" @@ -2535,14 +2535,14 @@ MatchCall_Text_Brendan9:: @ 2B4909 .string "Those creeps…\n" .string "I think they were TEAM MAGMA.$" -MatchCall_Text_Brendan10:: @ 2B49C4 +MatchCall_Text_Brendan10:: .string "BRENDAN: Hi, {PLAYER}!\n" .string "Did you catch the news?\p" .string "They say CAPT. STERN discovered\n" .string "the SEAFLOOR CAVERN while on his\l" .string "submarine expedition.$" -MatchCall_Text_Brendan11:: @ 2B4A44 +MatchCall_Text_Brendan11:: .string "BRENDAN: Hey there, {PLAYER}!\n" .string "Don't you think it's awesome?\p" .string "Even if you don't have a boat,\n" @@ -2552,7 +2552,7 @@ MatchCall_Text_Brendan11:: @ 2B4A44 .string "travel to the bottom of the sea.\p" .string "Man, POKéMON can do anything!$" -MatchCall_Text_Brendan12:: @ 2B4B28 +MatchCall_Text_Brendan12:: .string "BRENDAN: Howdy, {PLAYER}!\n" .string "How are you holding up?\p" .string "Ever found your way to the other\n" @@ -2562,7 +2562,7 @@ MatchCall_Text_Brendan12:: @ 2B4B28 .string "When you get to the other side,\n" .string "come up to the surface. Simple!$" -MatchCall_Text_Brendan13:: @ 2B4C15 +MatchCall_Text_Brendan13:: .string "BRENDAN: Hey there, {PLAYER}!\p" .string "How's it going? Filling up your\n" .string "POKéDEX successfully?\p" @@ -2571,14 +2571,14 @@ MatchCall_Text_Brendan13:: @ 2B4C15 .string "And not just one--three!\p" .string "I'd love to catch even one…$" -MatchCall_Text_Brendan14:: @ 2B4CD8 +MatchCall_Text_Brendan14:: .string "BRENDAN: {PLAYER}!\n" .string "I heard the rumors!\p" .string "You beat the SOOTOPOLIS GYM\n" .string "LEADER? Awesome!\p" .string "You're getting awful close now!$" -MatchCall_Text_Brendan15:: @ 2B4D46 +MatchCall_Text_Brendan15:: .string "BRENDAN: There isn't a TRAINER in\n" .string "all of HOENN who doesn't know who\l" .string "you are, {PLAYER}!\p" @@ -2586,19 +2586,19 @@ MatchCall_Text_Brendan15:: @ 2B4D46 .string "with you, {PLAYER}, they get pretty\l" .string "envious!$" -MatchCall_Text_Wally1:: @ 2B4DE2 +MatchCall_Text_Wally1:: .string "WALLY: Oh, {PLAYER}!\p" .string "I've been getting healthier and\n" .string "more physically fit.\p" .string "I hope I can become a TRAINER like\n" .string "you soon, {PLAYER}!$" -MatchCall_Text_Wally2:: @ 2B4E57 +MatchCall_Text_Wally2:: .string "WALLY: {PLAYER}, hello!\p" .string "After RUSTURF TUNNEL went\n" .string "through, WANDA's been very happy!$" -MatchCall_Text_Wally3:: @ 2B4EA5 +MatchCall_Text_Wally3:: .string "WALLY: Oh, {PLAYER}!\p" .string "I… I left my uncle's place in\n" .string "VERDANTURF without telling anyone.\p" @@ -2606,7 +2606,7 @@ MatchCall_Text_Wally3:: @ 2B4EA5 .string "{PLAYER}, you understand how\n" .string "I feel, don't you?$" -MatchCall_Text_Wally4:: @ 2B4F41 +MatchCall_Text_Wally4:: .string "WALLY: {PLAYER}?\n" .string "It's me, WALLY!\p" .string "The world of TRAINERS is amazing!\p" @@ -2615,7 +2615,7 @@ MatchCall_Text_Wally4:: @ 2B4F41 .string "It's as if everyone's getting\n" .string "connected through POKéMON!$" -MatchCall_Text_Wally5:: @ 2B4FF3 +MatchCall_Text_Wally5:: .string "WALLY: {PLAYER}? It's awesome!\n" .string "That RALTS we caught together?\l" .string "It evolved, {PLAYER}!\p" @@ -2625,13 +2625,13 @@ MatchCall_Text_Wally5:: @ 2B4FF3 .string "After all, it's the POKéMON that\n" .string "should be praised!$" -MatchCall_Text_Wally6:: @ 2B50B1 +MatchCall_Text_Wally6:: .string "… … … … … …\n" .string "… … … … … …\p" .string "WALLY appears to be out of\n" .string "the POKéNAV's service area…$" -MatchCall_Text_Wally7:: @ 2B5100 +MatchCall_Text_Wally7:: .string "WALLY: Oh, {PLAYER}!\p" .string "Before I met you, I hardly ever\n" .string "left my house…\p" @@ -2640,7 +2640,7 @@ MatchCall_Text_Wally7:: @ 2B5100 .string "{PLAYER}…\n" .string "Thank you…$" -MatchCall_Text_Scott1:: @ 2B5184 +MatchCall_Text_Scott1:: .string "SCOTT: Howdy, {PLAYER}{KUN}!\p" .string "You know how POKéMON can be found\n" .string "everywhere?\p" @@ -2651,7 +2651,7 @@ MatchCall_Text_Scott1:: @ 2B5184 .string "As a result, I have to hurry\n" .string "everywhere, too. Busy, busy!$" -MatchCall_Text_Scott2:: @ 2B5275 +MatchCall_Text_Scott2:: .string "SCOTT: I'm on ROUTE 119 right now.\n" .string "It's teeming with TRAINERS!\p" .string "It's also overgrown with tall grass\n" @@ -2659,7 +2659,7 @@ MatchCall_Text_Scott2:: @ 2B5275 .string "Walking around in shorts here\n" .string "makes me all ticklish!$" -MatchCall_Text_Scott3:: @ 2B5323 +MatchCall_Text_Scott3:: .string "SCOTT: Hi, hi, {PLAYER}{KUN}!\p" .string "Have you had the chance to climb\n" .string "MT. PYRE?\p" @@ -2668,7 +2668,7 @@ MatchCall_Text_Scott3:: @ 2B5323 .string "It's somewhere every TRAINER\n" .string "should climb to the top of once.$" -MatchCall_Text_Scott4:: @ 2B53DB +MatchCall_Text_Scott4:: .string "SCOTT: Hi, {PLAYER}{KUN}!\p" .string "I've been hearing about these odd\n" .string "gangs being a nuisance.\p" @@ -2678,7 +2678,7 @@ MatchCall_Text_Scott4:: @ 2B53DB .string "skilled TRAINERS among them.\p" .string "…But if they're thugs…$" -MatchCall_Text_Scott5:: @ 2B54A5 +MatchCall_Text_Scott5:: .string "SCOTT: Oh, hi, {PLAYER}{KUN}.\p" .string "Might there be tough TRAINERS\n" .string "at the bottom of the sea?\p" @@ -2686,7 +2686,7 @@ MatchCall_Text_Scott5:: @ 2B54A5 .string "I can't swim, for one.\l" .string "And I don't raise POKéMON…$" -MatchCall_Text_Scott6:: @ 2B5541 +MatchCall_Text_Scott6:: .string "SCOTT: Hi, hi, {PLAYER}{KUN}!\p" .string "You know that you can challenge\n" .string "the POKéMON LEAGUE when you've\l" @@ -2703,20 +2703,20 @@ MatchCall_Text_Scott6:: @ 2B5541 .string "the POKéMON LEAGUE into the HALL\l" .string "OF FAME!$" -MatchCall_Text_Scott7:: @ 2B56CA +MatchCall_Text_Scott7:: .string "… … … … … …\n" .string "… … … … … …\p" .string "SCOTT appears to be out of\n" .string "the POKéNAV's service area…$" -MatchCall_Text_Norman1:: @ 82B5719 +MatchCall_Text_Norman1:: .string "DAD: In RUSTBORO, there's a man\n" .string "that goes by the odd name of\l" .string "the CUTTER.\p" .string "If you're in the area, you should\n" .string "pay him a visit.$" -MatchCall_Text_Norman2:: @ 82B5795 +MatchCall_Text_Norman2:: .string "DAD: Hm… Little by little, but also\n" .string "very surely, you're getting\l" .string "tougher, {PLAYER}.\p" @@ -2725,7 +2725,7 @@ MatchCall_Text_Norman2:: @ 82B5795 .string "and me…\p" .string "This feeling is hard to explain.$" -MatchCall_Text_Norman3:: @ 82B584D +MatchCall_Text_Norman3:: .string "DAD: I see…\n" .string "You've collected four GYM BADGES…\p" .string "There's no avoiding it now.\n" @@ -2733,7 +2733,7 @@ MatchCall_Text_Norman3:: @ 82B584D .string "Come anytime.\n" .string "We'll all be waiting for you!$" -MatchCall_Text_Norman4:: @ 82B58E3 +MatchCall_Text_Norman4:: .string "DAD: {PLAYER}! You'd better go visit\n" .string "Mother every so often.\p" .string "I'm going to remain here and\n" @@ -2741,27 +2741,27 @@ MatchCall_Text_Norman4:: @ 82B58E3 .string "The way of battling is deep\n" .string "and unforgiving!$" -MatchCall_Text_Norman5:: @ 82B5979 +MatchCall_Text_Norman5:: .string "DAD: Oh, hi, {PLAYER}!\p" .string "What's that? MAGMA EMBLEM?\n" .string "I don't know what that's about.\p" .string "But with a name like that, it may\n" .string "be somehow linked to a volcano!$" -MatchCall_Text_Norman6:: @ 82B5A07 +MatchCall_Text_Norman6:: .string "DAD: Hiyah! Haah! Dwah!\p" .string "…Oh? {PLAYER}!\p" .string "You caught me right in the middle\n" .string "of a POKéMON training session!$" -MatchCall_Text_Norman7:: @ 82B5A69 +MatchCall_Text_Norman7:: .string "DAD: {PLAYER}!\p" .string "Who would've thought you'd become\n" .string "the POKéMON LEAGUE CHAMPION…\p" .string "Okay!\n" .string "I won't be left behind!$" -MatchCall_Text_Norman8:: @ 82B5ACF +MatchCall_Text_Norman8:: .string "DAD: Hm? {PLAYER}?\n" .string "What good timing!\p" .string "This time, I'm going to challenge\n" @@ -2769,11 +2769,11 @@ MatchCall_Text_Norman8:: @ 82B5ACF .string "I'm waiting in the PETALBURG GYM.\n" .string "Accept my challenge anytime!$" -MatchCall_Text_Norman9:: @ 82B5B5E +MatchCall_Text_Norman9:: .string "DAD: …You amaze me, {PLAYER}.\n" .string "How much higher will you soar?$" -MatchCall_Text_Steven1:: @ 82B5B95 +MatchCall_Text_Steven1:: .string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "Have you been to MAUVILLE\n" .string "already?\p" @@ -2784,14 +2784,14 @@ MatchCall_Text_Steven1:: @ 82B5B95 .string "You may make a new discovery\n" .string "there.$" -MatchCall_Text_Steven2:: @ 82B5C53 +MatchCall_Text_Steven2:: .string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "I've met a lot of different\n" .string "TRAINERS so far.\p" .string "But you're one of a kind.\n" .string "You're not like anyone else.$" -MatchCall_Text_Steven3:: @ 82B5CC9 +MatchCall_Text_Steven3:: .string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "When you're on an adventure with\n" .string "your POKéMON, what do you think?\p" @@ -2802,7 +2802,7 @@ MatchCall_Text_Steven3:: @ 82B5CC9 .string "Depending on how you think, your\n" .string "adventure's significance changes.$" -MatchCall_Text_Steven4:: @ 82B5DB4 +MatchCall_Text_Steven4:: .string "STEVEN: Hello?\n" .string "{PLAYER}{KUN}?\p" .string "I'm involved in a spot of trouble\n" @@ -2810,7 +2810,7 @@ MatchCall_Text_Steven4:: @ 82B5DB4 .string "I'm sorry, but I can't talk now.\n" .string "Bye!$" -MatchCall_Text_Steven5:: @ 82B5E26 +MatchCall_Text_Steven5:: .string "STEVEN: Oh!\n" .string "{PLAYER}{KUN}!\p" .string "There's no need to talk.\n" @@ -2818,12 +2818,12 @@ MatchCall_Text_Steven5:: @ 82B5E26 .string "You have to believe in yourself\n" .string "and do what's right.$" -MatchCall_Text_Steven6:: @ 82B5EA2 +MatchCall_Text_Steven6:: .string "… … … … … …\p" .string "STEVEN appears not to be getting\n" .string "the call…$" -MatchCall_Text_Steven7:: @ 82B5ED9 +MatchCall_Text_Steven7:: .string "STEVEN: {PLAYER}{KUN}… Congratulations\n" .string "for entering the HALL OF FAME.\p" .string "… … … … … …\n" @@ -2831,7 +2831,7 @@ MatchCall_Text_Steven7:: @ 82B5ED9 .string "I hope we can meet again\n" .string "somewhere!$" -MatchCall_Text_BirchRegisterCall: @ 82B5F52 +MatchCall_Text_BirchRegisterCall: .string "PROF. BIRCH: Oh, {PLAYER}{KUN}!\n" .string "I've already heard about you!\p" .string "It seems your POKéNAV's been\n" @@ -2842,7 +2842,7 @@ MatchCall_Text_BirchRegisterCall: @ 82B5F52 .string "out in the field.\p" .string "… … … … … …$" -MatchCall_Text_RegisteredBirch: @ 82B603A +MatchCall_Text_RegisteredBirch: .string "Registered PROF. BIRCH\n" .string "in the POKéNAV.$" @@ -2851,7 +2851,7 @@ MatchCall_Text_UnusedProfBirch: .string "the POKéDEX and POKéNAV, studying\l" .string "POKéMON becomes more fun, eh?$" -MatchCall_Text_MrStone1:: @ 82B60C0 +MatchCall_Text_MrStone1:: .string "MR. STONE: Oh? {PLAYER}{KUN}!\p" .string "Since you called me, the POKéNAV\n" .string "must be working properly!\p" @@ -2866,7 +2866,7 @@ MatchCall_Text_MrStone1:: @ 82B60C0 .string "Wahahaha!\n" .string "See you again!$" -MatchCall_Text_MrStone2:: @ 82B61E6 +MatchCall_Text_MrStone2:: .string "MR. STONE: Oh? {PLAYER}{KUN}!\p" .string "What's wrong? Have you forgotten\n" .string "about that little errand of mine?\p" @@ -2878,7 +2878,7 @@ MatchCall_Text_MrStone2:: @ 82B61E6 .string "Now, since I am a busy PRESIDENT,\n" .string "I have to go! Bye-bye!$" -MatchCall_Text_MrStone3:: @ 82B6302 +MatchCall_Text_MrStone3:: .string "MR. STONE: Oh! {PLAYER}{KUN}!\p" .string "Ah, so you've met STEVEN!\n" .string "I'd better reward you, then!\p" @@ -2886,7 +2886,7 @@ MatchCall_Text_MrStone3:: @ 82B6302 .string "come see me at my office.\p" .string "I'll be waiting for you!$" -MatchCall_Text_MrStone4:: @ 82B63A0 +MatchCall_Text_MrStone4:: .string "MR. STONE: Oh! {PLAYER}{KUN}!\p" .string "Did you know that DEVON was\n" .string "digging the RUSTURF TUNNEL?\p" @@ -2897,14 +2897,14 @@ MatchCall_Text_MrStone4:: @ 82B63A0 .string "live in peace than worry about our\l" .string "own convenience.$" -MatchCall_Text_MrStone5:: @ 82B64A2 +MatchCall_Text_MrStone5:: .string "MR. STONE: Hello, hello, {PLAYER}{KUN}!\p" .string "I heard from someone in PETALBURG\n" .string "that you're NORMAN's child!\p" .string "No wonder you're such a capable\n" .string "being!$" -MatchCall_Text_MrStone6:: @ 82B6526 +MatchCall_Text_MrStone6:: .string "MR. STONE: What's that?\p" .string "You battled your own father and\n" .string "defeated him?\p" @@ -2912,7 +2912,7 @@ MatchCall_Text_MrStone6:: @ 82B6526 .string "I had no idea that I befriended\n" .string "someone so special! Wahaha!$" -MatchCall_Text_MrStone7:: @ 82B65BB +MatchCall_Text_MrStone7:: .string "Hello!\n" .string "This is DEVON CORPORATI…\l" .string "Oh, hello, {PLAYER}!\p" @@ -2921,21 +2921,21 @@ MatchCall_Text_MrStone7:: @ 82B65BB .string "Our PRESIDENT is busy, but you\n" .string "seem to be just as busy, {PLAYER}.$" -MatchCall_Text_MrStone8:: @ 82B6664 +MatchCall_Text_MrStone8:: .string "…Huh? …What's that?\p" .string "GROU… Yes? …DON?\p" .string "You're breaking up…\n" .string "…can't hear…\p" .string "BZZZZ…$" -MatchCall_Text_MrStone9:: @ 82B66B1 +MatchCall_Text_MrStone9:: .string "…Huh? …What's that?\p" .string "Seaflo… Yes? …Caver…?\p" .string "You're breaking up…\n" .string "…can't hear…\p" .string "BZZZZ…$" -MatchCall_Text_MrStone10:: @ 82B6703 +MatchCall_Text_MrStone10:: .string "MR. STONE: {PLAYER}{KUN}! It's me!\p" .string "You were apparently involved in all\n" .string "sorts of things, but I, being busy,\l" @@ -2945,7 +2945,7 @@ MatchCall_Text_MrStone10:: @ 82B6703 .string "I'll always be in your corner!\n" .string "Take care!$" -MatchCall_Text_MrStone11:: @ 82B67ED +MatchCall_Text_MrStone11:: .string "MR. STONE: … … … … … …\n" .string "Is this maybe {PLAYER}{KUN}?\p" .string "Your voice is so full of confidence,\n" diff --git a/data/text/mauville_man.inc b/data/text/mauville_man.inc index 6326f5d8cd..5d9954d9bc 100644 --- a/data/text/mauville_man.inc +++ b/data/text/mauville_man.inc @@ -1,63 +1,63 @@ @ Only contains a portion of the mauville_man text. The rest is in scripts/mauville_man.inc -gText_SoPretty:: @ 8294295 +gText_SoPretty:: .string " so pretty!$" -gText_SoDarling:: @ 82942A1 +gText_SoDarling:: .string " so darling!$" -gText_SoRelaxed:: @ 82942AE +gText_SoRelaxed:: .string " so relaxed!$" -gText_SoSunny:: @ 82942BB +gText_SoSunny:: .string " so sunny!$" -gText_SoDesirable:: @ 82942C6 +gText_SoDesirable:: .string " so desirable!$" -gText_SoExciting:: @ 82942D5 +gText_SoExciting:: .string " so exciting!$" -gText_SoAmusing:: @ 82942E3 +gText_SoAmusing:: .string " so amusing!$" -gText_SoMagical:: @ 82942F0 +gText_SoMagical:: .string " so magical!$" -gOtherText_Is:: @ 82942FD +gOtherText_Is:: .string " is$" -gOtherText_DontYouAgree:: @ 8294301 +gOtherText_DontYouAgree:: .string "\n" .string "Don't you agree?$" -gMauvilleManText_ISoWantToGoOnAVacation:: @ 8294313 +gMauvilleManText_ISoWantToGoOnAVacation:: .string "I so want to go on a vacation.\n" .string "Would you happen to know a nice place?$" -gMauvilleManText_IBoughtCrayonsWith120Colors:: @ 8294359 +gMauvilleManText_IBoughtCrayonsWith120Colors:: .string "I bought crayons with 120 colors!\n" .string "Don't you think that's nice?$" -gMauvilleManText_WouldntItBeNiceIfWeCouldFloat:: @ 8294398 +gMauvilleManText_WouldntItBeNiceIfWeCouldFloat:: .string "Wouldn't it be nice if we could float\n" .string "away on a cloud of bubbles?$" -gMauvilleManText_WhenYouWriteOnASandyBeach:: @ 82943DA +gMauvilleManText_WhenYouWriteOnASandyBeach:: .string "When you write on a sandy beach,\n" .string "they wash away. It makes me sad.$" -gMauvilleManText_WhatsTheBottomOfTheSeaLike:: @ 829441C +gMauvilleManText_WhatsTheBottomOfTheSeaLike:: .string "What's the bottom of the sea like?\n" .string "Just once I would so love to go!$" -gMauvilleManText_WhenYouSeeTheSettingSunDoesIt:: @ 8294460 +gMauvilleManText_WhenYouSeeTheSettingSunDoesIt:: .string "When you see the setting sun, does it\n" .string "make you want to go home?$" -gMauvilleManText_LyingBackInTheGreenGrass:: @ 82944A0 +gMauvilleManText_LyingBackInTheGreenGrass:: .string "Lying back in the green grass…\n" .string "Oh, it's so, so nice!$" -gMauvilleManText_SecretBasesAreSoWonderful:: @ 82944D5 +gMauvilleManText_SecretBasesAreSoWonderful:: .string "SECRET BASES are so wonderful!\n" .string "Can't you feel the excitement?$" diff --git a/data/text/mevent.inc b/data/text/mevent.inc index ae4032eb46..5fb00bc970 100644 --- a/data/text/mevent.inc +++ b/data/text/mevent.inc @@ -1,14 +1,14 @@ -Mevent_Text_FillOutQuestionnaire:: @ 827339F +Mevent_Text_FillOutQuestionnaire:: .string "There is a questionnaire.\n" .string "Would you like to fill it out?$" -Mevent_Text_QuestionnaireThankYou:: @ 82733D8 +Mevent_Text_QuestionnaireThankYou:: .string "Thank you for taking the time to\n" .string "fill out our questionnaire.\p" .string "Your feedback will be used for\n" .string "future reference.$" -Mevent_Text_YouKnowThoseWordsGift:: @ 8273446 +Mevent_Text_YouKnowThoseWordsGift:: .string "Oh, hello!\n" .string "You know those words?\p" .string "That means you must know about\n" @@ -16,27 +16,27 @@ Mevent_Text_YouKnowThoseWordsGift:: @ 8273446 .string "From now on, you should be\n" .string "receiving MYSTERY GIFTS!$" -Mevent_Text_YouCanAccessMysteryGift:: @ 82734CC +Mevent_Text_YouCanAccessMysteryGift:: .string "Once you save your game, you can\n" .string "access the MYSTERY GIFT.$" -Mevent_Text_YouKnowThoseWordsEvent:: @ 8273506 +Mevent_Text_YouKnowThoseWordsEvent:: .string "Oh, hello!\n" .string "You know those words?\p" .string "That means you must know about\n" .string "the MYSTERY EVENT.$" -Mevent_Text_YouCanAccessMysteryEvent:: @ 8273559 +Mevent_Text_YouCanAccessMysteryEvent:: .string "Once you save your game, you can\n" .string "access the MYSTERY EVENT.$" -Mevent_Text_TheresATicketForYou:: @ 8273594 +Mevent_Text_TheresATicketForYou:: .string "Thank you for using the MYSTERY\n" .string "EVENT System.\p" .string "You must be {PLAYER}.\n" .string "There is a ticket here for you.$" -Mevent_Text_TryUsingItAtLilycovePort:: @ 82735F2 +Mevent_Text_TryUsingItAtLilycovePort:: .string "It appears to be for use at\n" .string "the LILYCOVE CITY port.\p" .string "Why not give it a try and see what\n" diff --git a/data/text/move_tutors.inc b/data/text/move_tutors.inc index baadad73d2..591655640c 100644 --- a/data/text/move_tutors.inc +++ b/data/text/move_tutors.inc @@ -1,8 +1,8 @@ -MoveTutor_Text_ThisMoveCanOnlyBeLearnedOnce: @ 82C6E05 +MoveTutor_Text_ThisMoveCanOnlyBeLearnedOnce: .string "This move can be learned only\n" .string "once. Is that okay?$" -MoveTutor_Text_SwaggerTeach: @ 82C6E37 +MoveTutor_Text_SwaggerTeach: .string "Heh! My POKéMON totally rules!\n" .string "It's cooler than any POKéMON!\p" .string "I was lipping off with a swagger in\n" @@ -12,19 +12,19 @@ MoveTutor_Text_SwaggerTeach: @ 82C6E37 .string "If you'd like, I'll teach the move\n" .string "SWAGGER to a POKéMON of yours.$" -MoveTutor_Text_SwaggerDeclined: @ 82C6F33 +MoveTutor_Text_SwaggerDeclined: .string "What, no? Can't you get into\n" .string "the spirit of things?$" -MoveTutor_Text_SwaggerWhichMon: @ 82C6F66 +MoveTutor_Text_SwaggerWhichMon: .string "All right, which POKéMON wants to\n" .string "learn how to SWAGGER?$" -MoveTutor_Text_SwaggerTaught: @ 82C6F9E +MoveTutor_Text_SwaggerTaught: .string "I'll just praise my POKéMON from now\n" .string "on without the swagger.$" -MoveTutor_Text_RolloutTeach: @ 82C6FDB +MoveTutor_Text_RolloutTeach: .string "Did you know that you can go from\n" .string "here a long way in that direction\l" .string "without changing direction?\p" @@ -35,19 +35,19 @@ MoveTutor_Text_RolloutTeach: @ 82C6FDB .string "I can teach one the move ROLLOUT\n" .string "if you'd like.$" -MoveTutor_Text_RolloutDeclined: @ 82C70C4 +MoveTutor_Text_RolloutDeclined: .string "You don't need to be shy about it.\n" .string "Let's roll!$" -MoveTutor_Text_RolloutWhichMon: @ 82C70F3 +MoveTutor_Text_RolloutWhichMon: .string "Ehehe, sure thing! It'd be great if\n" .string "the POKéMON looked like me.$" -MoveTutor_Text_RolloutTaught: @ 82C7133 +MoveTutor_Text_RolloutTaught: .string "Rolling around in the grass makes me\n" .string "happy. Come on, let's roll!$" -MoveTutor_Text_FuryCutterTeach: @ 82C7174 +MoveTutor_Text_FuryCutterTeach: .string "There's a move that gets stronger\n" .string "when you keep using it in a row.\p" .string "It's a BUG-type move, and it is\n" @@ -55,18 +55,18 @@ MoveTutor_Text_FuryCutterTeach: @ 82C7174 .string "It's called FURY CUTTER.\n" .string "Want me to teach it to a POKéMON?$" -MoveTutor_Text_FuryCutterDeclined: @ 82C7221 +MoveTutor_Text_FuryCutterDeclined: .string "We're not on the same wavelength.$" -MoveTutor_Text_FuryCutterWhichMon: @ 82C7243 +MoveTutor_Text_FuryCutterWhichMon: .string "Yay!\n" .string "Show me which POKéMON I should teach.$" -MoveTutor_Text_FuryCutterTaught: @ 82C726E +MoveTutor_Text_FuryCutterTaught: .string "I get a thrill watching to see if\n" .string "the move keeps hitting in succession!$" -MoveTutor_MimicTeach: @ 82C72B6 +MoveTutor_MimicTeach: .string "Ah, young one!\p" .string "I am also a young one, but I mimic\n" .string "the styles and speech of the elderly\l" @@ -75,21 +75,21 @@ MoveTutor_MimicTeach: @ 82C72B6 .string "Would you agree to it if I were to\l" .string "offer to teach the move MIMIC?$" -MoveTutor_MimicDeclined: @ 82C737F +MoveTutor_MimicDeclined: .string "Oh, boo! I wanted to teach MIMIC\n" .string "to your POKéMON!$" -MoveTutor_Text_MimicWhichMon: @ 82C73B1 +MoveTutor_Text_MimicWhichMon: .string "Fwofwo! And so I shall!\n" .string "Let me see the POKéMON\l" .string "you wish me to teach.$" -MoveTutor_Text_MimicTaught: @ 82C73F6 +MoveTutor_Text_MimicTaught: .string "MIMIC is a move of great depth.\p" .string "Could you execute it to perfection\n" .string "as well as me…?$" -MoveTutor_Text_MetronomeTeach: @ 82C7449 +MoveTutor_Text_MetronomeTeach: .string "I want all sorts of things!\n" .string "But I used up my allowance…\p" .string "Wouldn't it be nice if there were\n" @@ -100,22 +100,22 @@ MoveTutor_Text_MetronomeTeach: @ 82C7449 .string "Money won't appear, but your POKéMON\n" .string "will waggle a finger. Yes?$" -MoveTutor_Text_MetronomeDeclined: @ 82C7556 +MoveTutor_Text_MetronomeDeclined: .string "Okay. I'll be here if you change\n" .string "your mind.$" -MoveTutor_Text_MetronomeWhichMon: @ 82C7582 +MoveTutor_Text_MetronomeWhichMon: .string "Okay! I'll teach it!\n" .string "Which POKéMON should I teach?$" -MoveTutor_Text_MetronomeTaught: @ 82C75B5 +MoveTutor_Text_MetronomeTaught: .string "When a POKéMON waggles its finger\n" .string "like a METRONOME, all sorts of nice\l" .string "things happen.\p" .string "Wouldn't it be nice if we could\n" .string "use it, too?$" -MoveTutor_Text_SleepTalkTeach: @ 82C7637 +MoveTutor_Text_SleepTalkTeach: .string "Humph! My wife relies on HIDDEN\n" .string "POWER to stay awake.\p" .string "She should just take a nap like I do,\n" @@ -123,21 +123,21 @@ MoveTutor_Text_SleepTalkTeach: @ 82C7637 .string "I can teach your POKéMON how to\n" .string "SLEEP TALK instead. Interested?$" -MoveTutor_Text_SleepTalkDeclined: @ 82C76E2 +MoveTutor_Text_SleepTalkDeclined: .string "Oh, fine, fine. You want to stay awake\n" .string "with HIDDEN POWER, too…$" -MoveTutor_Text_SleepTalkWhichMon: @ 82C7721 +MoveTutor_Text_SleepTalkWhichMon: .string "Ah, an appreciative child!\n" .string "Which POKéMON should I teach?$" -MoveTutor_Text_SleepTalkTaught: @ 82C775A +MoveTutor_Text_SleepTalkTaught: .string "I've never once gotten my wife's\n" .string "coin trick right.\p" .string "I would be happy if I got it right\n" .string "even as I SLEEP TALK…$" -MoveTutor_Text_SubstituteTeach: @ 82C77C6 +MoveTutor_Text_SubstituteTeach: .string "When I see the wide world from up\n" .string "here on the roof…\p" .string "I think about how nice it would be\n" @@ -148,22 +148,22 @@ MoveTutor_Text_SubstituteTeach: @ 82C77C6 .string "I know! Would you be interested in\n" .string "having a POKéMON learn SUBSTITUTE?$" -MoveTutor_Text_SubstituteDeclined: @ 82C78D1 +MoveTutor_Text_SubstituteDeclined: .string "Oh, no?\p" .string "A POKéMON can make a copy of\n" .string "itself using it, you know.$" -MoveTutor_Text_SubstituteWhichMon: @ 82C7911 +MoveTutor_Text_SubstituteWhichMon: .string "Giggle…\n" .string "Which POKéMON do you want me to\l" .string "teach SUBSTITUTE?$" -MoveTutor_Text_SubstituteTaught: @ 82C794B +MoveTutor_Text_SubstituteTaught: .string "We human beings should enjoy our\n" .string "own lives to the utmost!\p" .string "I hope you'll get that way, too!$" -MoveTutor_Text_DynamicPunchTeach: @ 82C79A6 +MoveTutor_Text_DynamicPunchTeach: .string "I can't do this anymore!\p" .string "It's utterly hopeless!\p" .string "I'm a FIGHTING-type TRAINER,\n" @@ -176,19 +176,19 @@ MoveTutor_Text_DynamicPunchTeach: @ 82C79A6 .string "Or do you want me to teach your\n" .string "POKéMON DYNAMICPUNCH?$" -MoveTutor_Text_DynamicPunchDeclined: @ 82C7AD4 +MoveTutor_Text_DynamicPunchDeclined: .string "Darn! You're even making fun of me?\n" .string "Punch! Punch! Punch!$" -MoveTutor_Text_DynamicPunchWhichMon: @ 82C7B0D +MoveTutor_Text_DynamicPunchWhichMon: .string "What? You do? You're a good person!\n" .string "Which POKéMON should I teach?$" -MoveTutor_Text_DynamicPunchTaught: @ 82C7B4F +MoveTutor_Text_DynamicPunchTaught: .string "I want you to win at the MOSSDEEP GYM\n" .string "using that DYNAMICPUNCH!$" -MoveTutor_Text_DoubleEdgeTeach: @ 82C7B8E +MoveTutor_Text_DoubleEdgeTeach: .string "Sigh…\p" .string "SOOTOPOLIS's GYM LEADER is really\n" .string "lovably admirable.\p" @@ -199,19 +199,19 @@ MoveTutor_Text_DoubleEdgeTeach: @ 82C7B8E .string "Please, let me teach your POKéMON\n" .string "the move DOUBLE-EDGE!$" -MoveTutor_Text_DoubleEdgeDeclined: @ 82C7C7E +MoveTutor_Text_DoubleEdgeDeclined: .string "Oh…\n" .string "Even you rejected me…$" -MoveTutor_Text_DoubleEdgeWhichMon: @ 82C7C98 +MoveTutor_Text_DoubleEdgeWhichMon: .string "Okay, which POKéMON should I teach\n" .string "DOUBLE-EDGE?$" -MoveTutor_Text_DoubleEdgeTaught: @ 82C7CC8 +MoveTutor_Text_DoubleEdgeTaught: .string "I won't live for love anymore!\n" .string "I'll become tough!$" -MoveTutor_Text_ExplosionTeach: @ 82C7CFA +MoveTutor_Text_ExplosionTeach: .string "I don't intend to be going nowhere\n" .string "fast in the sticks like this forever.\p" .string "You watch me, I'll get out to the city\n" @@ -221,15 +221,15 @@ MoveTutor_Text_ExplosionTeach: @ 82C7CFA .string "If you overheard that, I'll happily\n" .string "teach EXPLOSION to your POKéMON!$" -MoveTutor_Text_ExplosionDeclined: @ 82C7E04 +MoveTutor_Text_ExplosionDeclined: .string "Gaah! You're turning me down because\n" .string "I live in the country?$" -MoveTutor_Text_ExplosionWhichMon: @ 82C7E40 +MoveTutor_Text_ExplosionWhichMon: .string "Fine! An EXPLOSION it is!\n" .string "Which POKéMON wants to blow up?$" -MoveTutor_Text_ExplosionTaught: @ 82C7E7A +MoveTutor_Text_ExplosionTaught: .string "For a long time, I've taught POKéMON\n" .string "how to use EXPLOSION, but I've yet\l" .string "to ignite my own EXPLOSION…\p" diff --git a/data/text/obtain_item.inc b/data/text/obtain_item.inc index d263388f5f..37788a8ffe 100644 --- a/data/text/obtain_item.inc +++ b/data/text/obtain_item.inc @@ -1,31 +1,31 @@ -gText_ObtainedTheItem:: @ 8272A78 +gText_ObtainedTheItem:: .string "Obtained the {STR_VAR_2}!$" -gText_TheBagIsFull:: @ 8272A89 +gText_TheBagIsFull:: .string "The BAG is full…$" -gText_PutItemInPocket:: @ 8272A9A +gText_PutItemInPocket:: .string "{PLAYER} put away the {STR_VAR_2}\n" .string "in the {STR_VAR_3} POCKET.$" -gText_PlayerFoundOneItem:: @ 8272ABF +gText_PlayerFoundOneItem:: .string "{PLAYER} found one {STR_VAR_2}!$" -gText_TooBadBagIsFull:: @ 8272AD0 +gText_TooBadBagIsFull:: .string "Too bad!\n" .string "The BAG is full…$" -gText_PlayerPutItemInBag:: @ 8272AEA +gText_PlayerPutItemInBag:: .string "{PLAYER} put away the {STR_VAR_2}\n" .string "in the BAG.$" -gText_ObtainedTheDecor:: @ 8272B09 +gText_ObtainedTheDecor:: .string "Obtained the {STR_VAR_2}!$" -gText_NoRoomLeftForAnother:: @ 8272B1A +gText_NoRoomLeftForAnother:: .string "Too bad! There's no room left for\n" .string "another {STR_VAR_2}…$" -gText_TheDecorWasTransferredToThePC:: @ 8272B48 +gText_TheDecorWasTransferredToThePC:: .string "The {STR_VAR_2} was transferred\n" .string "to the PC.$" diff --git a/data/text/pc.inc b/data/text/pc.inc index 5367632b59..1c7bf5a32c 100644 --- a/data/text/pc.inc +++ b/data/text/pc.inc @@ -1,17 +1,17 @@ -Text_BootUpPC: @ 827265A +Text_BootUpPC: .string "{PLAYER} booted up the PC.$" -gText_WhichPCShouldBeAccessed:: @ 827266F +gText_WhichPCShouldBeAccessed:: .string "Which PC should be accessed?$" -gText_AccessedSomeonesPC:: @ 827268C +gText_AccessedSomeonesPC:: .string "Accessed SOMEONE'S PC.$" -gText_StorageSystemOpened:: @ 82726A3 +gText_StorageSystemOpened:: .string "POKéMON Storage System opened.$" -gText_AccessedPlayersPC:: @ 82726C2 +gText_AccessedPlayersPC:: .string "Accessed {PLAYER}'s PC.$" -gText_AccessedLanettesPC:: @ 82726D4 +gText_AccessedLanettesPC:: .string "Accessed LANETTE's PC.$" diff --git a/data/text/pc_transfer.inc b/data/text/pc_transfer.inc index 216e0b5701..53a82c8f1f 100644 --- a/data/text/pc_transfer.inc +++ b/data/text/pc_transfer.inc @@ -1,31 +1,31 @@ -gText_PkmnTransferredSomeonesPC:: @ 8273216 +gText_PkmnTransferredSomeonesPC:: .string "{STR_VAR_2} was transferred to\n" .string "SOMEONE'S PC.\p" .string "It was placed in \n" .string "BOX “{STR_VAR_1}.”$" -gText_PkmnTransferredLanettesPC:: @ 8273256 +gText_PkmnTransferredLanettesPC:: .string "{STR_VAR_2} was transferred to\nLANETTE'S PC.\p" .string "It was placed in \n" .string "BOX “{STR_VAR_1}.”$" -gText_PkmnTransferredSomeonesPCBoxFull:: @ 8273296 +gText_PkmnTransferredSomeonesPCBoxFull:: .string "BOX “{STR_VAR_3}” on\n" .string "SOMEONE'S PC was full.\p" .string "{STR_VAR_2} was transferred to\n" .string "BOX “{STR_VAR_1}.”$" -gText_PkmnTransferredLanettesPCBoxFull:: @ 82732D9 +gText_PkmnTransferredLanettesPCBoxFull:: .string "BOX “{STR_VAR_3}” on\n" .string "LANETTE'S PC was full.\p" .string "{STR_VAR_2} was transferred to\n" .string "BOX “{STR_VAR_1}.”$" -gText_NoMoreRoomForPokemon:: @ 827331C +gText_NoMoreRoomForPokemon:: .string "There's no more room for POKéMON!\p" .string "The POKéMON BOXES are full and\n" .string "can't accept any more!$" -gText_NicknameThisPokemon:: @ 8273374 +gText_NicknameThisPokemon:: .string "Do you want to give a nickname to\n" .string "this {STR_VAR_1}?$" diff --git a/data/text/pkmn_center_nurse.inc b/data/text/pkmn_center_nurse.inc index 1c28372035..05a186f2fa 100644 --- a/data/text/pkmn_center_nurse.inc +++ b/data/text/pkmn_center_nurse.inc @@ -1,30 +1,30 @@ -gText_WouldYouLikeToRestYourPkmn:: @ 82726EB +gText_WouldYouLikeToRestYourPkmn:: .string "Hello, and welcome to\n" .string "the POKéMON CENTER.\p" .string "We restore your tired POKéMON\n" .string "to full health.\p" .string "Would you like to rest your POKéMON?$" -gText_IllTakeYourPkmn:: @ 8272768 +gText_IllTakeYourPkmn:: .string "Okay, I'll take your POKéMON\n" .string "for a few seconds.$" -gText_RestoredPkmnToFullHealth:: @ 8272798 +gText_RestoredPkmnToFullHealth:: .string "Thank you for waiting.\p" .string "We've restored your POKéMON\n" .string "to full health.$" -gText_WeHopeToSeeYouAgain:: @ 82727DB +gText_WeHopeToSeeYouAgain:: .string "We hope to see you again!$" -gText_WelcomeCutShort:: @ 82727F5 +gText_WelcomeCutShort:: .string "Hello, and welcome to\n" .string "the POKéMON CENTER.\p" .string "We restore your tired POKéMON\n" .string "to full health.\p" .string "Would you like to…$" -gText_NoticesGoldCard:: @ 8272860 +gText_NoticesGoldCard:: .string "Th-that card…\n" .string "Could it be… The GOLD CARD?!\p" .string "Oh, the gold color is brilliant!\n" @@ -36,16 +36,16 @@ gText_NoticesGoldCard:: @ 8272860 .string "Okay, {PLAYER}, please allow me\n" .string "the honor of resting your POKéMON!$" -gText_YouWantTheUsual:: @ 8272982 +gText_YouWantTheUsual:: .string "I'm delighted to see you, {PLAYER}!\n" .string "You want the usual, am I right?$" -gText_IllTakeYourPkmn2:: @ 82729C0 +gText_IllTakeYourPkmn2:: .string "Okay, I'll take your POKéMON\n" .string "for a few seconds.$" -gText_ThankYouForWaiting:: @ 82729F0 +gText_ThankYouForWaiting:: .string "Thank you for waiting.$" -gText_WeHopeToSeeYouAgain2:: @ 8272A07 +gText_WeHopeToSeeYouAgain2:: .string "We hope to see you again!$" diff --git a/data/text/pokedex_rating.inc b/data/text/pokedex_rating.inc index 4c6c3f2b63..fcb26bc7d3 100644 --- a/data/text/pokedex_rating.inc +++ b/data/text/pokedex_rating.inc @@ -1,114 +1,114 @@ -gBirchDexRatingText_AreYouCurious:: @ 82A5C9C +gBirchDexRatingText_AreYouCurious:: .string "PROF. BIRCH: Ah, {PLAYER}{KUN}!\p" .string "Are you curious about how your\n" .string "POKéDEX is coming along?$" -gBirchDexRatingText_Cancel: @ 82A5CEB +gBirchDexRatingText_Cancel: .string "Hm? Oh, you haven't caught enough\n" .string "POKéMON to make it worthwhile.$" -gBirchDexRatingText_SoYouveSeenAndCaught:: @ 82A5D2C +gBirchDexRatingText_SoYouveSeenAndCaught:: .string "Hmhm…\p" .string "So, you've seen {STR_VAR_1} POKéMON,\n" .string "and you've caught {STR_VAR_2} POKéMON…$" -gBirchDexRatingText_LessThan10:: @ 82A5D6C +gBirchDexRatingText_LessThan10:: .string "Go into grassy areas more and look\n" .string "for POKéMON more carefully.$" -gBirchDexRatingText_LessThan20:: @ 82A5DAB +gBirchDexRatingText_LessThan20:: .string "I guess you're getting the hang\n" .string "of it. But, it gets harder from here.$" -gBirchDexRatingText_LessThan30:: @ 82A5DF1 +gBirchDexRatingText_LessThan30:: .string "Some POKéMON only appear in\n" .string "certain areas.\l" .string "You must be persistent.$" -gBirchDexRatingText_LessThan40:: @ 82A5E34 +gBirchDexRatingText_LessThan40:: .string "Well, it could use more quantity,\n" .string "but this is looking more like\l" .string "a POKéDEX now.$" -gBirchDexRatingText_LessThan50:: @ 82A5E83 +gBirchDexRatingText_LessThan50:: .string "This is coming along pretty good.\n" .string "Keep up the effort.$" -gBirchDexRatingText_LessThan60:: @ 82A5EB9 +gBirchDexRatingText_LessThan60:: .string "Are you using any RODS?\n" .string "There are many POKéMON in the sea.$" -gBirchDexRatingText_LessThan70:: @ 82A5EF4 +gBirchDexRatingText_LessThan70:: .string "Instead of just catching POKéMON,\n" .string "how about making them evolve, too?$" -gBirchDexRatingText_LessThan80:: @ 82A5F39 +gBirchDexRatingText_LessThan80:: .string "This is going to be a fantastic\n" .string "POKéDEX.\l" .string "That's the feeling I'm getting.$" -gBirchDexRatingText_LessThan90:: @ 82A5F82 +gBirchDexRatingText_LessThan90:: .string "You've collected this many…\n" .string "Your talent is remarkable!$" -gBirchDexRatingText_LessThan100:: @ 82A5FB9 +gBirchDexRatingText_LessThan100:: .string "Have you visited the SAFARI ZONE?\p" .string "I hear there are some POKéMON that\n" .string "can only be caught there.$" -gBirchDexRatingText_LessThan110:: @ 82A6018 +gBirchDexRatingText_LessThan110:: .string "You've finally reached\n" .string "the 100-kind mark.\p" .string "This is an impressive POKéDEX!$" -gBirchDexRatingText_LessThan120:: @ 82A6061 +gBirchDexRatingText_LessThan120:: .string "There might be POKéMON that can be\n" .string "found using ROCK SMASH.$" -gBirchDexRatingText_LessThan130:: @ 82A609C +gBirchDexRatingText_LessThan130:: .string "You should get some more POKéMON\n" .string "by trading with others.$" -gBirchDexRatingText_LessThan140:: @ 82A60D5 +gBirchDexRatingText_LessThan140:: .string "I've heard of POKéMON that evolve\n" .string "when they come to fully love their\l" .string "TRAINERS.$" -gBirchDexRatingText_LessThan150:: @ 82A6124 +gBirchDexRatingText_LessThan150:: .string "I had no idea that there were so\n" .string "many POKéMON species in the HOENN\l" .string "region.$" -gBirchDexRatingText_LessThan160:: @ 82A616F +gBirchDexRatingText_LessThan160:: .string "On occasion, some POKéMON appear\n" .string "in large numbers like outbreaks.\p" .string "Don't miss opportunities like\n" .string "those.$" -gBirchDexRatingText_LessThan170:: @ 82A61D6 +gBirchDexRatingText_LessThan170:: .string "One can get a very good idea about\n" .string "the POKéMON of the HOENN region\l" .string "by looking through your POKéDEX.$" -gBirchDexRatingText_LessThan180:: @ 82A623A +gBirchDexRatingText_LessThan180:: .string "I would say you already qualify as\n" .string "a POKéMON PROFESSOR, and a good\l" .string "one, too!$" -gBirchDexRatingText_LessThan190:: @ 82A6287 +gBirchDexRatingText_LessThan190:: .string "With a POKéDEX this complete,\n" .string "you're a real professional at this!$" -gBirchDexRatingText_LessThan200:: @ 82A62C9 +gBirchDexRatingText_LessThan200:: .string "You're very close to completing\n" .string "this POKéDEX.\l" .string "I can feel it in my bones!$" -gBirchDexRatingText_DexCompleted:: @ 82A6312 +gBirchDexRatingText_DexCompleted:: .string "Congratulations!\n" .string "Your POKéDEX is complete!$" -gBirchDexRatingText_OnANationwideBasis:: @ 82A633D +gBirchDexRatingText_OnANationwideBasis:: .string "Hmhm…\n" .string "On a nationwide basis…\p" .string "You've seen {STR_VAR_1} POKéMON,\n" diff --git a/data/text/pokemon_news.inc b/data/text/pokemon_news.inc index 3cac20c181..c91d9958ae 100644 --- a/data/text/pokemon_news.inc +++ b/data/text/pokemon_news.inc @@ -1,5 +1,5 @@ -gPokeNewsTextSlateport_Upcoming:: @ 0828D0F8 +gPokeNewsTextSlateport_Upcoming:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "SLATEPORT's most popular kind of guy,\n" @@ -14,7 +14,7 @@ gPokeNewsTextSlateport_Upcoming:: @ 0828D0F8 .string "would be well worth your while that day.\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextSlateport_Ongoing:: @ 0828D2A1 +gPokeNewsTextSlateport_Ongoing:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "This is the news you've all been\n" @@ -28,7 +28,7 @@ gPokeNewsTextSlateport_Ongoing:: @ 0828D2A1 .string "to your heart's content?\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextSlateport_Ending:: @ 0828D3F5 +gPokeNewsTextSlateport_Ending:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "This is the news you've all been\n" @@ -43,7 +43,7 @@ gPokeNewsTextSlateport_Ending:: @ 0828D3F5 .string "a most enjoyable shopping trip?\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextGameCorner_Upcoming:: @ 0828D571 +gPokeNewsTextGameCorner_Upcoming:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "It's approaching!\n" @@ -54,7 +54,7 @@ gPokeNewsTextGameCorner_Upcoming:: @ 0828D571 .string "may be lucky on this particular day!\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextGameCorner_Ongoing:: @ 0828D66F +gPokeNewsTextGameCorner_Ongoing:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "It's here!\n" @@ -67,7 +67,7 @@ gPokeNewsTextGameCorner_Ongoing:: @ 0828D66F .string "This is the place!\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextGameCorner_Ending:: @ 0828D768 +gPokeNewsTextGameCorner_Ending:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "It's here!\n" @@ -80,7 +80,7 @@ gPokeNewsTextGameCorner_Ending:: @ 0828D768 .string "The location is MAUVILLE CITY.\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextLilycove_Upcoming:: @ 0828D875 +gPokeNewsTextLilycove_Upcoming:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "We've just received wonderful news\n" @@ -91,7 +91,7 @@ gPokeNewsTextLilycove_Upcoming:: @ 0828D875 .string "you've always wanted could be yours!\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextLilycove_Ongoing:: @ 0828D994 +gPokeNewsTextLilycove_Ongoing:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "This is the news you've all been\n" @@ -104,7 +104,7 @@ gPokeNewsTextLilycove_Ongoing:: @ 0828D994 .string "with them all!\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextLilycove_Ending:: @ 0828DAC0 +gPokeNewsTextLilycove_Ending:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "This is the news you've all been\n" @@ -117,7 +117,7 @@ gPokeNewsTextLilycove_Ending:: @ 0828DAC0 .string "with them all!\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextBlendMaster_Upcoming:: @ 0828DBEC +gPokeNewsTextBlendMaster_Upcoming:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "We have big news for everyone\n" @@ -133,7 +133,7 @@ gPokeNewsTextBlendMaster_Upcoming:: @ 0828DBEC .string "are urged to save their BERRIES.\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextBlendMaster_Ongoing:: @ 0828DD9E +gPokeNewsTextBlendMaster_Ongoing:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "We have big news for everyone\n" @@ -148,7 +148,7 @@ gPokeNewsTextBlendMaster_Ongoing:: @ 0828DD9E .string "should hurry to LILYCOVE.\p" .string "That's the news on POKéMON NEWS.$" -gPokeNewsTextBlendMaster_Ending:: @ 0828DF05 +gPokeNewsTextBlendMaster_Ending:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "It's incredible!\n" diff --git a/data/text/record_mix.inc b/data/text/record_mix.inc index 1270c0c0a7..bebdfdd954 100644 --- a/data/text/record_mix.inc +++ b/data/text/record_mix.inc @@ -1,6 +1,6 @@ -Text_WouldYouLikeToMixRecords: @ 827260D +Text_WouldYouLikeToMixRecords: .string "Would you like to mix records with\n" .string "other TRAINERS?$" -Text_WeHopeToSeeYouAgain: @ 8272640 +Text_WeHopeToSeeYouAgain: .string "We hope to see you again!$" diff --git a/data/text/save.inc b/data/text/save.inc index 4719f34d35..4d17327c9b 100644 --- a/data/text/save.inc +++ b/data/text/save.inc @@ -1,19 +1,19 @@ .align 2 -gText_ConfirmSave:: @ 82C87B4 +gText_ConfirmSave:: .string "Would you like to save the game?$" -gText_AlreadySavedFile:: @ 82C87D5 +gText_AlreadySavedFile:: .string "There is already a saved file.\n" .string "Is it okay to overwrite it?$" -gText_SavingDontTurnOff:: @ 82C8810 +gText_SavingDontTurnOff:: .string "SAVING…\n" .string "DON'T TURN OFF THE POWER.$" -gText_PlayerSavedGame:: @ 82C8832 +gText_PlayerSavedGame:: .string "{PLAYER} saved the game.$" -gText_DifferentSaveFile:: @ 82C8845 +gText_DifferentSaveFile:: .string "WARNING!\p" .string "There is a different game file that\n" .string "is already saved.\p" @@ -23,11 +23,11 @@ gText_DifferentSaveFile:: @ 82C8845 .string "Are you sure you want to save now\n" .string "and overwrite the other save file?$" -gText_SaveError:: @ 82C892A +gText_SaveError:: .string "Save error.\p" .string "Please exchange the\n" .string "backup memory.$" -gText_SavingDontTurnOffPower:: @ 82C8959 +gText_SavingDontTurnOffPower:: .string "SAVING…\n" .string "DON'T TURN OFF THE POWER.$" diff --git a/data/text/secret_base_trainers.inc b/data/text/secret_base_trainers.inc index 979aa4ff3a..f1881533ab 100644 --- a/data/text/secret_base_trainers.inc +++ b/data/text/secret_base_trainers.inc @@ -1,62 +1,62 @@ -SecretBase_Text_Trainer0Intro: @ 82748A0 +SecretBase_Text_Trainer0Intro: .string "Have you made a SECRET BASE already?\p" .string "I went here, there, everywhere before\n" .string "choosing this place.\p" .string "Since you're already here, how would\n" .string "you like to battle?$" -SecretBase_Text_Trainer0AcceptBattle: @ 8274939 +SecretBase_Text_Trainer0AcceptBattle: .string "Okay!\n" .string "Here we come!$" -SecretBase_Text_Trainer0DeclineBattle: @ 827494D +SecretBase_Text_Trainer0DeclineBattle: .string "Hunh?\n" .string "Oh, you can't now…$" -SecretBase_Text_Trainer0Defeated:: @ 8274966 +SecretBase_Text_Trainer0Defeated:: .string "Waaargh! You're too strong!\n" .string "About me losing… Please keep it secret!$" -SecretBase_Text_Trainer0PostBattle: @ 82749AA +SecretBase_Text_Trainer0PostBattle: .string "What do you think of my SECRET BASE?\n" .string "Come visit me again tomorrow.$" -SecretBase_Text_Trainer0PreChampion: @ 82749ED +SecretBase_Text_Trainer0PreChampion: .string "Have you made a SECRET BASE already?\p" .string "I went here, there, everywhere before\n" .string "choosing this place.\p" .string "Feel free to hang out!$" -SecretBase_Text_Trainer5Intro: @ 8274A64 +SecretBase_Text_Trainer5Intro: .string "There're a lot of places where\n" .string "you can make a SECRET BASE.\p" .string "But I like this spot best.\n" .string "Don't you think it's nice?\p" .string "Oh, would you like to have a battle?$" -SecretBase_Text_Trainer5AcceptBattle: @ 8274AFA +SecretBase_Text_Trainer5AcceptBattle: .string "Okay, here goes!$" -SecretBase_Text_Trainer5DeclineBattle: @ 8274B0B +SecretBase_Text_Trainer5DeclineBattle: .string "Oh…\n" .string "You can't now, okay.$" -SecretBase_Text_Trainer5Defeated:: @ 8274B24 +SecretBase_Text_Trainer5Defeated:: .string "Hmmm… It's our loss…\n" .string "But don't tell anyone!\l" .string "It's a confidential secret!$" -SecretBase_Text_Trainer5PostBattle: @ 8274B6C +SecretBase_Text_Trainer5PostBattle: .string "If you're in this area again,\n" .string "I hope you'll visit me.$" -SecretBase_Text_Trainer5PreChampion: @ 8274BA2 +SecretBase_Text_Trainer5PreChampion: .string "There're a lot of places where you can\n" .string "make a SECRET BASE.\p" .string "But I like this spot best.\n" .string "Don't you think it's nice?$" -SecretBase_Text_Trainer1Intro: @ 8274C13 +SecretBase_Text_Trainer1Intro: .string "This is a popular spot.\n" .string "It's always taken.\p" .string "Oh! Were you thinking about\n" @@ -64,84 +64,84 @@ SecretBase_Text_Trainer1Intro: @ 8274C13 .string "I'll tell you what, you can have this\n" .string "spot if you can beat me.$" -SecretBase_Text_Trainer1AcceptBattle: @ 8274CB0 +SecretBase_Text_Trainer1AcceptBattle: .string "Okay!\n" .string "I'm going to defend my SECRET BASE!$" -SecretBase_Text_Trainer1DeclineBattle: @ 8274CDA +SecretBase_Text_Trainer1DeclineBattle: .string "Hunh? Is that right?\n" .string "You're not interested in this spot?$" -SecretBase_Text_Trainer1Defeated:: @ 8274D13 +SecretBase_Text_Trainer1Defeated:: .string "I can't keep going!\n" .string "I surrender!$" -SecretBase_Text_Trainer1PostBattle: @ 8274D34 +SecretBase_Text_Trainer1PostBattle: .string "Okay, when I move one day,\n" .string "this place will be yours!$" -SecretBase_Text_Trainer1PreChampion: @ 8274D69 +SecretBase_Text_Trainer1PreChampion: .string "This is a popular spot.\n" .string "It's always taken.\p" .string "I waited a long time for it to open.\n" .string "I finally got to use it!$" -SecretBase_Text_Trainer6Intro: @ 8274DD2 +SecretBase_Text_Trainer6Intro: .string "Welcome to my POKéMON LAB.\p" .string "I carry out research on battling in\n" .string "secrecy.\p" .string "Would you like to see how strong I am?$" -SecretBase_Text_Trainer6AcceptBattle: @ 8274E41 +SecretBase_Text_Trainer6AcceptBattle: .string "I'm going to go all out!$" -SecretBase_Text_Trainer6DeclineBattle: @ 8274E5A +SecretBase_Text_Trainer6DeclineBattle: .string "Oh.\n" .string "Some other time, then!$" -SecretBase_Text_Trainer6Defeated:: @ 8274E75 +SecretBase_Text_Trainer6Defeated:: .string "Hmm… I've still got lots to learn.\n" .string "I have to study some more.$" -SecretBase_Text_Trainer6PostBattle: @ 8274EB3 +SecretBase_Text_Trainer6PostBattle: .string "Thanks for battling with me.\n" .string "Please come back again tomorrow.$" -SecretBase_Text_Trainer6PreChampion: @ 8274EF1 +SecretBase_Text_Trainer6PreChampion: .string "Welcome to my POKéMON LAB.\p" .string "I carry out research on battling in\n" .string "secrecy.$" -SecretBase_Text_Trainer2Intro: @ 8274F39 +SecretBase_Text_Trainer2Intro: .string "A big mansion is nice, but I like this\n" .string "sort of place more.\p" .string "I like it because all kinds of people\n" .string "come visit me.\p" .string "So, how would you like a battle?$" -SecretBase_Text_Trainer2AcceptBattle: @ 8274FCA +SecretBase_Text_Trainer2AcceptBattle: .string "That's the way!$" -SecretBase_Text_Trainer2DeclineBattle: @ 8274FDA +SecretBase_Text_Trainer2DeclineBattle: .string "When you're ready, give me a shout!$" -SecretBase_Text_Trainer2Defeated:: @ 8274FFE +SecretBase_Text_Trainer2Defeated:: .string "Aww! Done in!\n" .string "But it's still fun to battle!$" -SecretBase_Text_Trainer2PostBattle: @ 827502A +SecretBase_Text_Trainer2PostBattle: .string "Well, anyway, I should go buy some\n" .string "decorations and furniture.\p" .string "I want my SECRET BASE to be a place\n" .string "other people can enjoy.$" -SecretBase_Text_Trainer2PreChampion: @ 82750A4 +SecretBase_Text_Trainer2PreChampion: .string "A big mansion is nice, but I like this\n" .string "sort of place more.\p" .string "I like it because all kinds of people\n" .string "come visit me.$" -SecretBase_Text_Trainer7Intro: @ 8275114 +SecretBase_Text_Trainer7Intro: .string "I simply adore shopping for decorations\n" .string "and furniture.\p" .string "I also love raising POKéMON just\n" @@ -149,82 +149,82 @@ SecretBase_Text_Trainer7Intro: @ 8275114 .string "If you would be so kind, will you battle\n" .string "with my POKéMON?$" -SecretBase_Text_Trainer7AcceptBattle: @ 82751AF +SecretBase_Text_Trainer7AcceptBattle: .string "Thank you.\n" .string "Shall we begin?$" -SecretBase_Text_Trainer7DeclineBattle: @ 82751CA +SecretBase_Text_Trainer7DeclineBattle: .string "Oh.\n" .string "How disappointing…$" -SecretBase_Text_Trainer7Defeated:: @ 82751E1 +SecretBase_Text_Trainer7Defeated:: .string "I concede…$" -SecretBase_Text_Trainer7PostBattle: @ 82751EC +SecretBase_Text_Trainer7PostBattle: .string "That was all in good fun!\n" .string "I should go enjoy shopping now.$" -SecretBase_Text_Trainer7PreChampion: @ 8275226 +SecretBase_Text_Trainer7PreChampion: .string "I simply adore shopping for decorations\n" .string "and furniture.\p" .string "I also love raising POKéMON just\n" .string "as much.$" -SecretBase_Text_Trainer3Intro: @ 8275287 +SecretBase_Text_Trainer3Intro: .string "Some people make their SECRET BASES in\n" .string "hard-to-find places.\l" .string "Do they want to just lie low?\p" .string "But since you found me, how about we\n" .string "have a battle?$" -SecretBase_Text_Trainer3AcceptBattle: @ 8275315 +SecretBase_Text_Trainer3AcceptBattle: .string "I'm not going down easily!$" -SecretBase_Text_Trainer3DeclineBattle: @ 8275330 +SecretBase_Text_Trainer3DeclineBattle: .string "Oh… Are you maybe tired from searching\n" .string "for this place?$" -SecretBase_Text_Trainer3Defeated:: @ 8275367 +SecretBase_Text_Trainer3Defeated:: .string "I went down…$" -SecretBase_Text_Trainer3PostBattle: @ 8275374 +SecretBase_Text_Trainer3PostBattle: .string "Where's your SECRET BASE?\n" .string "I should go visit you there.$" -SecretBase_Text_Trainer3PreChampion: @ 82753AB +SecretBase_Text_Trainer3PreChampion: .string "Some people make their SECRET BASES in\n" .string "hard-to-find places.\l" .string "Do they want to just lie low?$" -SecretBase_Text_Trainer8Intro: @ 8275405 +SecretBase_Text_Trainer8Intro: .string "People have told me that you can get\n" .string "decorations in several ways.\p" .string "We should have a race to see who can\n" .string "get nicer decorations and furniture!\p" .string "In the meantime, want to battle?$" -SecretBase_Text_Trainer8AcceptBattle: @ 82754B2 +SecretBase_Text_Trainer8AcceptBattle: .string "This is my SECRET BASE.\n" .string "I can't lose!$" -SecretBase_Text_Trainer8DeclineBattle: @ 82754D8 +SecretBase_Text_Trainer8DeclineBattle: .string "I'll battle with you anytime.$" -SecretBase_Text_Trainer8Defeated:: @ 82754F6 +SecretBase_Text_Trainer8Defeated:: .string "Huh?\n" .string "Did I just lose?$" -SecretBase_Text_Trainer8PostBattle: @ 827550C +SecretBase_Text_Trainer8PostBattle: .string "I won't lose at collecting decorations.\n" .string "Come visit again!$" -SecretBase_Text_Trainer8PreChampion: @ 8275546 +SecretBase_Text_Trainer8PreChampion: .string "People have told me that you can get\n" .string "decorations in several ways.\p" .string "We should have a race to see who can\n" .string "get nicer decorations and furniture!$" -SecretBase_Text_Trainer4Intro: @ 82755D2 +SecretBase_Text_Trainer4Intro: .string "I found a spot I liked, and I did it up\n" .string "with my favorite decorations.\p" .string "I raise my favorite POKéMON and grow\n" @@ -232,28 +232,28 @@ SecretBase_Text_Trainer4Intro: @ 82755D2 .string "That's what I do.\n" .string "Want to battle with me?$" -SecretBase_Text_Trainer4AcceptBattle: @ 8275679 +SecretBase_Text_Trainer4AcceptBattle: .string "Show me what you're made of!$" -SecretBase_Text_Trainer4DeclineBattle: @ 8275696 +SecretBase_Text_Trainer4DeclineBattle: .string "I guess there are times when you're not\n" .string "into it.$" -SecretBase_Text_Trainer4Defeated:: @ 82756C7 +SecretBase_Text_Trainer4Defeated:: .string "I know exactly what you're made of now.$" -SecretBase_Text_Trainer4PostBattle: @ 82756EF +SecretBase_Text_Trainer4PostBattle: .string "We can both become stronger.\n" .string "Let's keep at it!$" -SecretBase_Text_Trainer4PreChampion: @ 827571E +SecretBase_Text_Trainer4PreChampion: .string "I found a spot I liked, and I did it up\n" .string "with my favorite decorations.\p" .string "I raise my favorite POKéMON and grow\n" .string "stronger with it.\p" .string "Every day is a great day.$" -SecretBase_Text_Trainer9Intro: @ 82757B5 +SecretBase_Text_Trainer9Intro: .string "You can learn a lot about the taste\n" .string "and sense of people by the kinds of\l" .string "decorations they have, and how they\l" @@ -262,22 +262,22 @@ SecretBase_Text_Trainer9Intro: @ 82757B5 .string "Are you speechless?\p" .string "Want to see my taste in battling?$" -SecretBase_Text_Trainer9AcceptBattle: @ 8275884 +SecretBase_Text_Trainer9AcceptBattle: .string "There's no holding back!$" -SecretBase_Text_Trainer9DeclineBattle: @ 827589D +SecretBase_Text_Trainer9DeclineBattle: .string "I'll be happy to demonstrate my style\n" .string "anytime.$" -SecretBase_Text_Trainer9Defeated:: @ 82758CC +SecretBase_Text_Trainer9Defeated:: .string "You're supremely talented!\n" .string "Your power seems to be limitless…$" -SecretBase_Text_Trainer9PostBattle: @ 8275909 +SecretBase_Text_Trainer9PostBattle: .string "What did you think of my style?\n" .string "I'll keep on polishing it!$" -SecretBase_Text_Trainer9PreChampion: @ 8275944 +SecretBase_Text_Trainer9PreChampion: .string "You can learn a lot about the taste\n" .string "and sense of people by the kinds of\l" .string "decorations they have, and how they\l" diff --git a/data/text/shoal_cave.inc b/data/text/shoal_cave.inc index 4a15e74985..88d057b74a 100644 --- a/data/text/shoal_cave.inc +++ b/data/text/shoal_cave.inc @@ -1,4 +1,4 @@ -ShoalCave_LowTideEntranceRoom_Text_AreYouPlanningOnGoingInThere: @ 82A7E0E +ShoalCave_LowTideEntranceRoom_Text_AreYouPlanningOnGoingInThere: .string "Are you planning on going deep\n" .string "in there?\p" .string "How about bringing me back some\n" @@ -6,27 +6,27 @@ ShoalCave_LowTideEntranceRoom_Text_AreYouPlanningOnGoingInThere: @ 82A7E0E .string "I can make you something good if\n" .string "you bring me the ingredients.$" -ShoalCave_LowTideEntranceRoom_Text_BringMe4ShoalSaltAndShells: @ 82A7EB3 +ShoalCave_LowTideEntranceRoom_Text_BringMe4ShoalSaltAndShells: .string "If you bring me four each of the\n" .string "SHOAL SALT and SHOAL SHELLS,\l" .string "I can make you a SHELL BELL…\p" .string "You can get those ingredients\n" .string "every day.$" -ShoalCave_LowTideEntranceRoom_Text_WouldYouLikeShellBell: @ 82A7F37 +ShoalCave_LowTideEntranceRoom_Text_WouldYouLikeShellBell: .string "Oh, hey! SHOAL SALT and SHOAL SHELLS!\n" .string "And enough of them, too!\p" .string "Would you like me to make you\n" .string "a SHELL BELL with them?$" -ShoalCave_LowTideEntranceRoom_Text_MakeShellBellRightAway: @ 82A7FAC +ShoalCave_LowTideEntranceRoom_Text_MakeShellBellRightAway: .string "All righty, then! I'll make you\n" .string "a SHELL BELL right away.\p" .string "… … … … … … … …\n" .string "… … … … … … … …\p" .string "There! Done!$" -ShoalCave_LowTideEntranceRoom_Text_ExplainShellBell: @ 82A8012 +ShoalCave_LowTideEntranceRoom_Text_ExplainShellBell: .string "Have a POKéMON hold on to that.\n" .string "It'll love it, that's for certain.\p" .string "Why, the SHELL BELL's chime…\n" @@ -34,20 +34,20 @@ ShoalCave_LowTideEntranceRoom_Text_ExplainShellBell: @ 82A8012 .string "You can get its ingredients every day,\n" .string "so I can make you more.$" -ShoalCave_LowTideEntranceRoom_Text_WantedToMakeShellBell: @ 82A80C6 +ShoalCave_LowTideEntranceRoom_Text_WantedToMakeShellBell: .string "Oh… Is that so…\n" .string "I wanted to make a SHELL BELL…$" -ShoalCave_LowTideEntranceRoom_Text_NoSpaceInYourBag: @ 82A80F5 +ShoalCave_LowTideEntranceRoom_Text_NoSpaceInYourBag: .string "You don't have space in your BAG\n" .string "if I were to make it for you.\p" .string "You should make room and come back\n" .string "for a SHELL BELL.$" -ShoalCave_Text_WasShoalSaltNowNothing: @ 82A8169 +ShoalCave_Text_WasShoalSaltNowNothing: .string "There was some SHOAL SALT here.\n" .string "But, there's nothing here now.$" -ShoalCave_Text_WasShoallShellNowNothing: @ 82A81A8 +ShoalCave_Text_WasShoallShellNowNothing: .string "There was a SHOAL SHELL here.\n" .string "But, there's nothing here now.$" diff --git a/data/text/surf.inc b/data/text/surf.inc index 31c1972222..453a3d5b14 100644 --- a/data/text/surf.inc +++ b/data/text/surf.inc @@ -1,5 +1,5 @@ -gText_WantToUseSurf:: @ 8272FD6 +gText_WantToUseSurf:: .string "The water is dyed a deep blue…\nWould you like to SURF?$" -gText_PlayerUsedSurf:: @ 827300D +gText_PlayerUsedSurf:: .string "{STR_VAR_1} used SURF!$" diff --git a/data/text/trainers.inc b/data/text/trainers.inc index 9e971b2234..c3e85ef504 100644 --- a/data/text/trainers.inc +++ b/data/text/trainers.inc @@ -1,1322 +1,1322 @@ -Route102_Text_CalvinIntro: @ 8294513 +Route102_Text_CalvinIntro: .string "If you have POKéMON with you, then\n" .string "you're an official POKéMON TRAINER!\l" .string "You can't say no to my challenge!$" -Route102_Text_CalvinDefeated: @ 829457C +Route102_Text_CalvinDefeated: .string "Arrgh, I lost…\n" .string "I should have trained mine more…$" -Route102_Text_CalvinPostBattle: @ 82945AC +Route102_Text_CalvinPostBattle: .string "Listen, you. If you're strong,\n" .string "you should have told me before!$" -Route102_Text_CalvinRegister: @ 82945EB +Route102_Text_CalvinRegister: .string "I've been working hard at this since\n" .string "I saw you before.\p" .string "I'd like to battle you again, so can\n" .string "you register me in your POKéNAV?$" -Route102_Text_CalvinRegisterShort: @ 8294668 +Route102_Text_CalvinRegisterShort: .string "I'd like to battle you again, so can\n" .string "you register me in your POKéNAV?$" -Route102_Text_CalvinRematchIntro: @ 82946AE +Route102_Text_CalvinRematchIntro: .string "Ever since I lost to you, I desperately\n" .string "trained my POKéMON.\l" .string "You can't say no to my challenge!$" -Route102_Text_CalvinRematchDefeated: @ 829470C +Route102_Text_CalvinRematchDefeated: .string "Arrgh, I lost…\n" .string "Is my training method not right?$" -Route102_Text_CalvinRematchPostBattle: @ 829473C +Route102_Text_CalvinRematchPostBattle: .string "If you're going to get stronger,\n" .string "I'll get stronger, too.$" -Route102_Text_AllenIntro: @ 8294775 +Route102_Text_AllenIntro: .string "Did you just become a TRAINER?\n" .string "We're both beginners!$" -Route102_Text_AllenDefeated: @ 82947AA +Route102_Text_AllenDefeated: .string "I called you because I thought\n" .string "I could beat you…$" -Route102_Text_AllenPostBattle: @ 82947DB +Route102_Text_AllenPostBattle: .string "I haven't won once yet…\n" .string "I wish I would win soon…$" -Route102_Text_RickIntro: @ 829480C +Route102_Text_RickIntro: .string "Hahah! Our eyes met!\n" .string "I'll take you on with my BUG POKéMON!$" -Route102_Text_RickDefeated: @ 8294847 +Route102_Text_RickDefeated: .string "Ow! Down and out!$" -Route102_Text_RickPostBattle: @ 8294859 +Route102_Text_RickPostBattle: .string "If you lock eyes with a TRAINER,\n" .string "you have to challenge! It's a rule!$" -Route102_Text_TianaIntro: @ 829489E +Route102_Text_TianaIntro: .string "I'm going to keep winning and aim\n" .string "to be the best TRAINER.\p" .string "Help me further my career!$" -Route102_Text_TianaDefeated: @ 82948F3 +Route102_Text_TianaDefeated: .string "I ended up furthering your career…$" -Route102_Text_TianaPostBattle: @ 8294916 +Route102_Text_TianaPostBattle: .string "To keep winning my way up, I see that\n" .string "I have to catch more POKéMON.$" -Route103_Text_DaisyIntro: @ 829495A +Route103_Text_DaisyIntro: .string "Did you feel the tug of our\n" .string "soul-soothing fragrance?$" -Route103_Text_DaisyDefeated: @ 829498F +Route103_Text_DaisyDefeated: .string "You weren't led astray by our aroma…$" -Route103_Text_DaisyPostBattle: @ 82949B4 +Route103_Text_DaisyPostBattle: .string "Aromatherapy is a form of mental\n" .string "healing that works with fragrances.$" -Route103_Text_AmyIntro: @ 82949F9 +Route103_Text_AmyIntro: .string "AMY: I'm AMY.\n" .string "And this is my little sister LIV.\l" .string "We battle together!$" -Route103_Text_AmyDefeated: @ 8294A3D +Route103_Text_AmyDefeated: .string "AMY: Uh-oh, we lost.$" -Route103_Text_AmyPostBattle: @ 8294A52 +Route103_Text_AmyPostBattle: .string "AMY: You have to think about all\n" .string "kinds of things when you're battling\l" .string "against two TRAINERS.$" -Route103_Text_AmyNotEnoughPokemon: @ 8294AAE +Route103_Text_AmyNotEnoughPokemon: .string "AMY: Uh-oh, you have only one\n" .string "POKéMON with you.\l" .string "You can't battle us like that.$" -Route103_Text_LivIntro: @ 8294AFD +Route103_Text_LivIntro: .string "LIV: We battle together as one\n" .string "team.$" -Route103_Text_LivDefeated: @ 8294B22 +Route103_Text_LivDefeated: .string "LIV: Oh, we lost, big sister…$" -Route103_Text_LivPostBattle: @ 8294B40 +Route103_Text_LivPostBattle: .string "LIV: We work perfectly together,\n" .string "me and my big sister…\p" .string "But we still lost…$" -Route103_Text_AmyLivRegister: @ 8294B8A +Route103_Text_AmyLivRegister: .string "LIV: Really, we're a lot better…\n" .string "It's true! We'll show you next time!$" -Route103_Text_LivNotEnoughPokemon: @ 8294BD0 +Route103_Text_LivNotEnoughPokemon: .string "LIV: If you want to battle us,\n" .string "you have to have two POKéMON!\l" .string "It's not fair if you don't!$" -Route103_Text_AmyRematchIntro: @ 8294C29 +Route103_Text_AmyRematchIntro: .string "AMY: I'm AMY.\n" .string "And this is my little sister LIV.\l" .string "We battle together!$" -Route103_Text_AmyRematchDefeated: @ 8294C6D +Route103_Text_AmyRematchDefeated: .string "AMY: Aww, boo!\n" .string "We couldn't win again…$" -Route103_Text_AmyRematchPostBattle: @ 8294C93 +Route103_Text_AmyRematchPostBattle: .string "AMY: You have to think about all\n" .string "kinds of things when you're battling\l" .string "against two TRAINERS.$" -Route103_Text_AmyRematchNotEnoughPokemon: @ 8294CEF +Route103_Text_AmyRematchNotEnoughPokemon: .string "AMY: Uh-oh, you have only one\n" .string "POKéMON with you.\l" .string "You can't battle us like that.$" -Route103_Text_LivRematchIntro: @ 8294D3E +Route103_Text_LivRematchIntro: .string "LIV: We battle together as one\n" .string "team.$" -Route103_Text_LivRematchDefeated: @ 8294D63 +Route103_Text_LivRematchDefeated: .string "LIV: Awww, we lost again…\n" .string "Big sister…$" -Route103_Text_LivRematchPostBattle: @ 8294D89 +Route103_Text_LivRematchPostBattle: .string "LIV: We work perfectly together,\n" .string "me and my big sister…\p" .string "But why did we lose again?$" -Route103_Text_LivRematchNotEnoughPokemon: @ 8294DDB +Route103_Text_LivRematchNotEnoughPokemon: .string "LIV: If you want to battle us, you\n" .string "have to have two POKéMON!\l" .string "It's not fair if you don't!$" -Route103_Text_AndrewIntro: @ 8294E34 +Route103_Text_AndrewIntro: .string "Gah! My fishing line's all snarled up!\n" .string "I'm getting frustrated and mean!\l" .string "That's it! Battle me!$" -Route103_Text_AndrewDefeated: @ 8294E92 +Route103_Text_AndrewDefeated: .string "Gah! Lost it!\n" .string "I'm even more annoyed now!$" -Route103_Text_AndrewPostBattle: @ 8294EBB +Route103_Text_AndrewPostBattle: .string "Gah, I'm still boiling mad…\n" .string "Grrrrr…$" -Route103_Text_MiguelIntro: @ 8294EDF +Route103_Text_MiguelIntro: .string "My POKéMON is delightfully adorable!\n" .string "Don't be shy--I'll show you!$" -Route103_Text_MiguelDefeated: @ 8294F21 +Route103_Text_MiguelDefeated: .string "Oh, my gosh!\n" .string "My darling POKéMON!$" -Route103_Text_MiguelPostBattle: @ 8294F42 +Route103_Text_MiguelPostBattle: .string "My delightful POKéMON looks darling\n" .string "even when it's fainted!$" -Route103_Text_MiguelRegister: @ 8294F7E +Route103_Text_MiguelRegister: .string "I'll get you to come out and look in\n" .string "on my delightful POKéMON again!$" -Route103_Text_MiguelRematchIntro: @ 8294FC3 +Route103_Text_MiguelRematchIntro: .string "Hi, you! My delightfully adorable\n" .string "POKéMON has become more darling!$" -Route103_Text_MiguelRematchDefeated: @ 8295006 +Route103_Text_MiguelRematchDefeated: .string "Oh!\n" .string "My darling POKéMON!$" -Route103_Text_MiguelRematchPostBattle: @ 829501E +Route103_Text_MiguelRematchPostBattle: .string "The more I spend time with it,\n" .string "the more adorable my POKéMON becomes.$" -Route103_Text_PeteIntro: @ 8295063 +Route103_Text_PeteIntro: .string "This sort of distance…\n" .string "You should just swim it!$" -Route103_Text_PeteDefeated: @ 8295093 +Route103_Text_PeteDefeated: .string "Oh, that's good going!$" -Route103_Text_PetePostBattle: @ 82950AA +Route103_Text_PetePostBattle: .string "Oh, I understand where you're coming\n" .string "from now.\p" .string "If I had a POKéMON that trusty,\n" .string "I'd want to SURF on it, too!$" -Route103_Text_IsabelleIntro: @ 8295116 +Route103_Text_IsabelleIntro: .string "Watch where you're going!\n" .string "We're going to crash!$" -Route103_Text_IsabelleDefeated: @ 8295146 +Route103_Text_IsabelleDefeated: .string "Groan…$" -Route103_Text_IsabellePostBattle: @ 829514D +Route103_Text_IsabellePostBattle: .string "I'm a poor swimmer so I was practicing…\n" .string "Sorry for almost crashing into you.$" -Route103_Text_RhettIntro: @ 8295199 +Route103_Text_RhettIntro: .string "Whoa!\n" .string "How'd you get into a space this small?$" -Route103_Text_RhettDefeated: @ 82951C6 +Route103_Text_RhettDefeated: .string "Whoa!\n" .string "The kid can rock!$" -Route103_Text_RhettPostBattle: @ 82951DE +Route103_Text_RhettPostBattle: .string "Do you like cramped quarters\n" .string "like this?$" -Route103_Text_MarcosIntro: @ 8295206 +Route103_Text_MarcosIntro: .string "Did my guitar's wailing draw you in?$" -Route103_Text_MarcosDefeated: @ 829522B +Route103_Text_MarcosDefeated: .string "My one-man show is ruined…$" -Route103_Text_MarcosPostBattle: @ 8295246 +Route103_Text_MarcosPostBattle: .string "I was playing my guitar where few\n" .string "people were around, but a lot of fans\l" .string "have gathered.\p" .string "Heh, maybe I should turn pro.$" -Route104_Text_GinaIntro: @ 82952BB +Route104_Text_GinaIntro: .string "GINA: Okay, let's battle with our\n" .string "POKéMON!$" -Route104_Text_GinaDefeat: @ 82952E6 +Route104_Text_GinaDefeat: .string "GINA: Losing upsets me!$" -Route104_Text_GinaPostBattle: @ 82952FE +Route104_Text_GinaPostBattle: .string "GINA: You are strong!\n" .string "We have to train lots more!$" -Route104_Text_GinaNotEnoughMons: @ 8295330 +Route104_Text_GinaNotEnoughMons: .string "GINA: Oh? Only one POKéMON?\n" .string "Then, we don't battle with you.\p" .string "If there's only one POKéMON, it will\n" .string "be lonesome. That's not nice.$" -Route104_Text_MiaIntro: @ 82953AF +Route104_Text_MiaIntro: .string "MIA: We are twins, so we battle\n" .string "POKéMON together.$" -Route104_Text_MiaDefeat: @ 82953E1 +Route104_Text_MiaDefeat: .string "MIA: We battled together, but we\n" .string "both lost…$" -Route104_Text_MiaPostBattle: @ 829540D +Route104_Text_MiaPostBattle: .string "MIA: We will train our POKéMON more\n" .string "and be strong like you.$" -Route104_Text_MiaNotEnoughMons: @ 8295449 +Route104_Text_MiaNotEnoughMons: .string "MIA: You want to battle with us?\p" .string "It's a big no-no if you don't have two\n" .string "POKéMON with you.\l" .string "We're too strong for you!$" -Route104_Text_IvanIntro: @ 82954BD +Route104_Text_IvanIntro: .string "Why keep it a secret?\n" .string "I'm the WATER POKéMON expert!\p" .string "Huh?\n" .string "You don't know me?$" -Route104_Text_IvanDefeat: @ 8295509 +Route104_Text_IvanDefeat: .string "I thought I wasn't too bad, if I may\n" .string "say so, but I guess not… Bleah…$" -Route104_Text_IvanPostBattle: @ 829554E +Route104_Text_IvanPostBattle: .string "I got too into fishing.\n" .string "I forgot I had to raise my POKéMON…$" -Route104_Text_BillyIntro: @ 829558A +Route104_Text_BillyIntro: .string "Leaving footprints in the sand is\n" .string "so fun!$" -Route104_Text_BillyDefeat: @ 82955B4 +Route104_Text_BillyDefeat: .string "Waah! I got sand in my runners!\n" .string "They're all gritty!$" -Route104_Text_BillyPostBattle: @ 82955E8 +Route104_Text_BillyPostBattle: .string "I want to leave my footprints in\n" .string "the sand everywhere, but they\l" .string "disappear quickly…$" -Route104_Text_HaleyIntro: @ 829563A +Route104_Text_HaleyIntro: .string "Should I…\n" .string "Or shouldn't I?\p" .string "Okay, sure, I will battle!$" -Route104_Text_HaleyDefeat: @ 829566F +Route104_Text_HaleyDefeat: .string "I shouldn't have battled…$" -Route104_Text_HaleyPostBattle: @ 8295689 +Route104_Text_HaleyPostBattle: .string "If you're faced with a decision and\n" .string "you let someone else choose for you,\l" .string "you will regret it, however things\l" .string "turn out.$" -Route104_Text_HaleyRegister1: @ 82956FF +Route104_Text_HaleyRegister1: .string "You're strong, but should I register\n" .string "you in my POKéNAV?\l" .string "Maybe I shouldn't…\p" .string "Okay, sure, I will register you!$" -Route104_Text_HaleyRegister2: @ 829576B +Route104_Text_HaleyRegister2: .string "You're strong, but should I register\n" .string "you in my POKéNAV?\l" .string "Maybe I shouldn't…\p" .string "Okay, sure, I will register you!$" -Route104_Text_HaleyRematchIntro: @ 82957D7 +Route104_Text_HaleyRematchIntro: .string "Come on, battle with me!$" -Route104_Text_HaleyRematchDefeat: @ 82957F0 +Route104_Text_HaleyRematchDefeat: .string "Ohh…\n" .string "I thought I could win…$" -Route104_Text_HaleyPostRematch: @ 829580C +Route104_Text_HaleyPostRematch: .string "I made the decision to battle, so\n" .string "I can accept this loss with grace.\p" .string "I am still upset about losing!$" -Route104_Text_WinstonIntro: @ 8295870 +Route104_Text_WinstonIntro: .string "Oh, sure, I'll accept your challenge.\n" .string "I have a lot of money.$" -Route104_Text_WinstonDefeat: @ 82958AD +Route104_Text_WinstonDefeat: .string "Why couldn't I win?$" -Route104_Text_WinstonPostBattle: @ 82958C1 +Route104_Text_WinstonPostBattle: .string "There are some things money can't buy.\n" .string "That's POKéMON…$" -Route104_Text_WinstonRegister1: @ 82958F8 +Route104_Text_WinstonRegister1: .string "Hm?\n" .string "Ah, you've obtained a POKéNAV.\p" .string "I will gladly register you.\n" .string "After all, I have plenty of money.$" -Route104_Text_WinstonRegister2: @ 829595A +Route104_Text_WinstonRegister2: .string "Hm?\n" .string "Ah, you've obtained a POKéNAV.\p" .string "I will gladly register you.\n" .string "After all, I have plenty of money.$" -Route104_Text_WinstonRematchIntro: @ 82959BC +Route104_Text_WinstonRematchIntro: .string "After I lost to you, I learned a bunch\n" .string "of things about POKéMON.$" -Route104_Text_WinstonRematchDefeat: @ 82959FC +Route104_Text_WinstonRematchDefeat: .string "I lost again?\n" .string "Why couldn't I win?$" -Route104_Text_WinstonPostRematch: @ 8295A1E +Route104_Text_WinstonPostRematch: .string "I'm fabulously wealthy, but I can't\n" .string "seem to win at POKéMON…\p" .string "It's so deep, the world of POKéMON…$" -Route104_Text_CindyIntro: @ 8295A7E +Route104_Text_CindyIntro: .string "We must have been fated to meet.\n" .string "May I ask you for a battle?$" -Route104_Text_CindyDefeat: @ 8295ABB +Route104_Text_CindyDefeat: .string "Oh, my!$" -Route104_Text_CindyPostBattle: @ 8295AC3 +Route104_Text_CindyPostBattle: .string "“Hello” is the beginning of “good-bye.”\n" .string "I hope we meet again.$" -Route104_Text_CindyRegister1: @ 8295B01 +Route104_Text_CindyRegister1: .string "Hello, we meet again.\p" .string "We seem to be drawn together. Let's\n" .string "register each other in our POKéNAVS.$" -Route104_Text_CindyRegister2: @ 8295B60 +Route104_Text_CindyRegister2: .string "We should commemorate how we seem\n" .string "to be drawn to each other.\p" .string "Let's register each other in our\n" .string "POKéNAVS.$" -Route104_Text_CindyRematchIntro: @ 8295BC8 +Route104_Text_CindyRematchIntro: .string "Hello, we meet again.\n" .string "May I ask you for a battle?$" -Route104_Text_CindyRematchDefeat: @ 8295BFA +Route104_Text_CindyRematchDefeat: .string "Oh, my…\n" .string "I did the best that I could…$" -Route104_Text_CindyPostRematch: @ 8295C1F +Route104_Text_CindyPostRematch: .string "“Hello” is the beginning of “good-bye.”\n" .string "I hope we meet again.$" -Route104_Text_DarianIntro: @ 8295C5D +Route104_Text_DarianIntro: .string "I fished up a tough-looking POKéMON!\p" .string "It has this magical quality to it!\n" .string "It surely looks tough, yes it does!$" -Route104_Text_DarianDefeat: @ 8295CC9 +Route104_Text_DarianDefeat: .string "What the…$" -Route104_Text_DarianPostBattle: @ 8295CD3 +Route104_Text_DarianPostBattle: .string "Hey, MAGIKARP, you sure don't live up\n" .string "to your name, do you?$" -Route105_Text_FosterIntro: @ 8295D0F +Route105_Text_FosterIntro: .string "There's supposed to be a mystical\n" .string "rock around here.\l" .string "Do you know anything about it?$" -Route105_Text_FosterDefeated: @ 8295D62 +Route105_Text_FosterDefeated: .string "I was thinking too much about that\n" .string "rock, while my POKéMON remained weak…$" -Route105_Text_FosterPostBattle: @ 8295DAB +Route105_Text_FosterPostBattle: .string "I can spend hours and hours staring\n" .string "at a nice rock without growing bored.$" -Route105_Text_LuisIntro: @ 8295DF5 +Route105_Text_LuisIntro: .string "Whew! I was worried that a kid was\n" .string "drowning when I saw you.\p" .string "You seem to be okay, so what do you\n" .string "say to a battle?$" -Route105_Text_LuisDefeated: @ 8295E66 +Route105_Text_LuisDefeated: .string "Glub… Glub…$" -Route105_Text_LuisPostBattle: @ 8295E72 +Route105_Text_LuisPostBattle: .string "If you are drowning, the signal is to\n" .string "wave one arm toward the beach.$" -Route105_Text_DominikIntro: @ 8295EB7 +Route105_Text_DominikIntro: .string "Swimming the deep blue sea…\n" .string "It feels the greatest!$" -Route105_Text_DominikDefeated: @ 8295EEA +Route105_Text_DominikDefeated: .string "I lost…\n" .string "Now I'm feeling blue…$" -Route105_Text_DominikPostBattle: @ 8295F08 +Route105_Text_DominikPostBattle: .string "Why is the sea blue?\p" .string "I learned about that at the MUSEUM in\n" .string "SLATEPORT, but I forgot.$" -Route105_Text_BeverlyIntro: @ 8295F5C +Route105_Text_BeverlyIntro: .string "My body feels lighter in the water.\n" .string "It's as if I've gotten slimmer!$" -Route105_Text_BeverlyDefeated: @ 8295FA0 +Route105_Text_BeverlyDefeated: .string "I'm floating…$" -Route105_Text_PostBattle: @ 8295FAE +Route105_Text_PostBattle: .string "Your body weight is reduced to just\n" .string "one tenth in the water.\p" .string "That would make me…\n" .string "Whoops! I'm not telling you my weight!$" -Route105_Text_ImaniIntro: @ 8296025 +Route105_Text_ImaniIntro: .string "The blue, blue sky…\n" .string "The vast sea…\l" .string "It's so peaceful…$" -Route105_Text_ImaniDefeated: @ 8296059 +Route105_Text_ImaniDefeated: .string "I lost while I was lounging!$" -Route105_Text_ImaniPostBattle: @ 8296076 +Route105_Text_ImaniPostBattle: .string "I want to be told I'm relaxing to be\n" .string "with. Giggle.$" -Route105_Text_AndresIntro: @ 82960A9 +Route105_Text_AndresIntro: .string "I'm convinced that the sea keeps\n" .string "secrets from us.$" -Route105_Text_AndresDefeated: @ 82960DB +Route105_Text_AndresDefeated: .string "Yes…\n" .string "I am no good at battling…$" -Route105_Text_AndresPostBattle: @ 82960FA +Route105_Text_AndresPostBattle: .string "I'm sure there are many secrets to be\n" .string "discovered in the world's seas.\p" .string "I mean to find them all!$" -Route105_Text_AndresRegister: @ 8296159 +Route105_Text_AndresRegister: .string "Huh? I'm so weak, but you're willing\n" .string "to register me in your POKéNAV?$" -Route105_Text_AndresRematchIntro: @ 829619E +Route105_Text_AndresRematchIntro: .string "I've told you that I'm weak…\n" .string "Are you sure you want to do this?$" -Route105_Text_AndresRematchDefeated: @ 82961DD +Route105_Text_AndresRematchDefeated: .string "Yes…\n" .string "I didn't think I could win.$" -Route105_Text_AndresRematchPostBattle: @ 82961FE +Route105_Text_AndresRematchPostBattle: .string "I may be weak at battling, but my\n" .string "drive to explore can't be bested.\p" .string "I will travel the seas all around\n" .string "the world!$" -Route105_Text_JosueIntro: @ 829626F +Route105_Text_JosueIntro: .string "I'm exhausted from swimming.\n" .string "I'm just not used to it.\p" .string "I need a battle for a change of pace!$" -Route105_Text_JosueDefeated: @ 82962CB +Route105_Text_JosueDefeated: .string "I lost because I battled at sea.$" -Route105_Text_JosuePostBattle: @ 82962EC +Route105_Text_JosuePostBattle: .string "Yeah, for me, the sky is a much better\n" .string "match than the sea.$" -Route106_Text_ElliotIntro: @ 8296327 +Route106_Text_ElliotIntro: .string "Which do you prefer, fishing in the\n" .string "sea or a stream?$" -Route106_Text_ElliotDefeated: @ 829635C +Route106_Text_ElliotDefeated: .string "Like in deep-sea fishing, I lost\n" .string "spectacularly!$" -Route106_Text_ElliotPostBattle: @ 829638C +Route106_Text_ElliotPostBattle: .string "Fishing is the greatest whether it's\n" .string "in the sea or a stream.\l" .string "You agree with me, right?$" -Route106_Text_ElliotRegister: @ 82963E3 +Route106_Text_ElliotRegister: .string "Fishing's great, but so is battling.\n" .string "If you don't mind, can we meet again?$" -Route106_Text_ElliotRematchIntro: @ 829642E +Route106_Text_ElliotRematchIntro: .string "I caught a bunch of POKéMON fishing.\n" .string "I'll show you an impressive battle!$" -Route106_Text_ElliotRematchDefeated: @ 8296477 +Route106_Text_ElliotRematchDefeated: .string "I lost again spectacularly!$" -Route106_Text_ElliotRematchPostBattle: @ 8296493 +Route106_Text_ElliotRematchPostBattle: .string "Win or lose, POKéMON are the greatest!\n" .string "You agree with me, right?$" -Route106_Text_NedIntro: @ 82964D4 +Route106_Text_NedIntro: .string "What do people do if they need to go\n" .string "to a washroom?\p" .string "What if my ROD hooks a big one while\n" .string "I'm in the washroom? I just can't go…$" -Route106_Text_NedDefeated: @ 8296553 +Route106_Text_NedDefeated: .string "I lost because I'm trying to not go\n" .string "to the washroom…$" -Route106_Text_NedPostBattle: @ 8296588 +Route106_Text_NedPostBattle: .string "Oh, no! I've got this feeling I'll hook\n" .string "a big one!$" -Route106_Text_DouglasIntro: @ 82965BB +Route106_Text_DouglasIntro: .string "Hahahah! I'm a lousy runner, but in\n" .string "the water you can't catch me!$" -Route106_Text_DouglasDefeated: @ 82965FD +Route106_Text_DouglasDefeated: .string "I give up!$" -Route106_Text_DouglasPostBattle: @ 8296608 +Route106_Text_DouglasPostBattle: .string "I wouldn't lose in a swim race…$" -Route106_Text_KylaIntro: @ 8296628 +Route106_Text_KylaIntro: .string "The sea is my backyard. I'm not going\n" .string "to take it easy because you're a kid!$" -Route106_Text_KylaDefeated: @ 8296674 +Route106_Text_KylaDefeated: .string "Did you take it easy on me by any\n" .string "chance?$" -Route106_Text_KylaPostBattle: @ 829669E +Route106_Text_KylaPostBattle: .string "Drifting along with the waves…\n" .string "I love it! Why don't you give it a try?$" -Route107_Text_DarrinIntro: @ 82966E5 +Route107_Text_DarrinIntro: .string "Yawn…\p" .string "I must have drifted off to sleep while\n" .string "I was drifting in the waves.$" -Route107_Text_DarrinDefeated: @ 829672F +Route107_Text_DarrinDefeated: .string "Ahaha, I lost…\n" .string "I'll take a snooze, I think…$" -Route107_Text_DarrinPostBattle: @ 829675B +Route107_Text_DarrinPostBattle: .string "Floating and being rocked by\n" .string "the waves--it's like sleeping in\l" .string "a plush, comfy bed.$" -Route107_Text_TonyIntro: @ 82967AD +Route107_Text_TonyIntro: .string "The sea is like my backyard.\n" .string "Let's battle!$" -Route107_Text_TonyDefeated: @ 82967D8 +Route107_Text_TonyDefeated: .string "I lost on my home field…\n" .string "I'm in shock!$" -Route107_Text_TonyPostBattle: @ 82967FF +Route107_Text_TonyPostBattle: .string "I swim the seas with a heart full of\n" .string "dreams…\p" .string "It's a song!\n" .string "Anyways, I'm swimming some more.$" -Route107_Text_TonyRegister: @ 829685A +Route107_Text_TonyRegister: .string "You've shocked me to the bone!\n" .string "Well, so you won't forget me…$" -Route107_Text_TonyRematchIntro: @ 8296897 +Route107_Text_TonyRematchIntro: .string "Swimming in the big, wide sea,\n" .string "my POKéMON has grown stronger!$" -Route107_Text_TonyRematchDefeated: @ 82968D5 +Route107_Text_TonyRematchDefeated: .string "What a shock!\p" .string "My POKéMON has gotten stronger, but\n" .string "I stayed weak as a TRAINER!$" -Route107_Text_TonyRematchPostBattle: @ 8296923 +Route107_Text_TonyRematchPostBattle: .string "What you learn in battle makes you\n" .string "a stronger TRAINER.\l" .string "The waves taught me that.$" -Route107_Text_DeniseIntro: @ 8296974 +Route107_Text_DeniseIntro: .string "Do you know a little town called\n" .string "DEWFORD?$" -Route107_Text_DeniseDefeated: @ 829699E +Route107_Text_DeniseDefeated: .string "I hate this!$" -Route107_Text_DenisePostBattle: @ 82969AB +Route107_Text_DenisePostBattle: .string "A weird saying is getting really\n" .string "trendy at DEWFORD HALL.$" -Route107_Text_BethIntro: @ 82969E4 +Route107_Text_BethIntro: .string "Did you want to battle me?\n" .string "Sure, I'll go with you!$" -Route107_Text_BethDefeated: @ 8296A17 +Route107_Text_BethDefeated: .string "I wasn't good enough for you.$" -Route107_Text_BethPostBattle: @ 8296A35 +Route107_Text_BethPostBattle: .string "I think you're going to keep getting\n" .string "better. I'll go for it, too!$" -Route107_Text_LisaIntro: @ 8296A77 +Route107_Text_LisaIntro: .string "LISA: We challenge you as a sister\n" .string "and brother!$" -Route107_Text_LisaDefeated: @ 8296AA7 +Route107_Text_LisaDefeated: .string "LISA: Awesome.\n" .string "You're in a different class of tough.$" -Route107_Text_LisaPostBattle: @ 8296ADC +Route107_Text_LisaPostBattle: .string "LISA: Do you have any friends who\n" .string "would go to the beach with you?$" -Route107_Text_LisaNotEnoughPokemon: @ 8296B1E +Route107_Text_LisaNotEnoughPokemon: .string "LISA: If you want to battle with us,\n" .string "bring more POKéMON.$" -Route107_Text_RayIntro: @ 8296B57 +Route107_Text_RayIntro: .string "RAY: We always battle POKéMON,\n" .string "me and my sister.\p" .string "I always lose, but we can beat you\n" .string "2-on-2!$" -Route107_Text_RayDefeated: @ 8296BB3 +Route107_Text_RayDefeated: .string "RAY: Wowee, you're at a higher level\n" .string "than us!$" -Route107_Text_RayPostBattle: @ 8296BE1 +Route107_Text_RayPostBattle: .string "RAY: My sister gave me my POKéMON.\n" .string "I raised it, and now it's my important\l" .string "partner!$" -Route107_Text_RayNotEnoughPokemon: @ 8296C34 +Route107_Text_RayNotEnoughPokemon: .string "RAY: If you want to battle us,\n" .string "go bring some more POKéMON!$" -Route107_Text_CamronIntro: @ 8296C6F +Route107_Text_CamronIntro: .string "I'm in the middle of a triathlon,\n" .string "but I'm nowhere near tired!$" -Route107_Text_CamronDefeated: @ 8296CAD +Route107_Text_CamronDefeated: .string "That exhausted me…$" -Route107_Text_CamronPostBattle: @ 8296CC0 +Route107_Text_CamronPostBattle: .string "I still have swimming and running left\n" .string "to do after this.\p" .string "Am I going to be okay?$" -Route108_Text_JeromeIntro: @ 8296D10 +Route108_Text_JeromeIntro: .string "My dream is to swim the world's seven\n" .string "seas!$" -Route108_Text_JeromeDefeated: @ 8296D3C +Route108_Text_JeromeDefeated: .string "I won't be able to swim the seven seas\n" .string "like this…$" -Route108_Text_JeromePostBattle: @ 8296D6E +Route108_Text_JeromePostBattle: .string "Playing with marine POKéMON is one of\n" .string "the pleasures of swimming!$" -Route108_Text_MatthewIntro: @ 8296DAF +Route108_Text_MatthewIntro: .string "Ahoy, there! Are you going out to\n" .string "the ABANDONED SHIP, too?$" -Route108_Text_MatthewDefeated: @ 8296DEA +Route108_Text_MatthewDefeated: .string "I'm sinking!\n" .string "Glub… Glub…$" -Route108_Text_MatthewPostBattle: @ 8296E03 +Route108_Text_MatthewPostBattle: .string "Some people even go inside that\n" .string "ABANDONED SHIP.$" -Route108_Text_TaraIntro: @ 8296E33 +Route108_Text_TaraIntro: .string "My liar of a boyfriend told me that\n" .string "I look great in a bikini…$" -Route108_Text_TaraDefeated: @ 8296E71 +Route108_Text_TaraDefeated: .string "Oh, boo!$" -Route108_Text_TaraPostBattle: @ 8296E7A +Route108_Text_TaraPostBattle: .string "Even if it's a lie, I love being told\n" .string "I look great…\l" .string "We girls are so complex…$" -Route108_Text_MissyIntro: @ 8296EC7 +Route108_Text_MissyIntro: .string "I love the sea!\n" .string "I forget all my worries when I swim!$" -Route108_Text_MissyDefeated: @ 8296EFC +Route108_Text_MissyDefeated: .string "When I lose a battle, I get all\n" .string "stressed out!$" -Route108_Text_MissyPostBattle: @ 8296F2A +Route108_Text_MissyPostBattle: .string "Work off your stress by swimming!\n" .string "It's so healthy!$" -Route108_Text_CoryIntro: @ 8296F5D +Route108_Text_CoryIntro: .string "I love WATER-type POKéMON.\n" .string "I love other POKéMON, too!$" -Route108_Text_CoryDefeated: @ 8296F93 +Route108_Text_CoryDefeated: .string "Waaah! I lost!\n" .string "Waaah! Waaah!$" -Route108_Text_CoryPostBattle: @ 8296FB0 +Route108_Text_CoryPostBattle: .string "Shouting is good for me!\n" .string "It uplifts me!$" -Route108_Text_CoryRegister: @ 8296FD8 +Route108_Text_CoryRegister: .string "I love tough TRAINERS, too!\n" .string "Register me in your POKéNAV!$" -Route108_Text_CoryRematchIntro: @ 8297011 +Route108_Text_CoryRematchIntro: .string "Win or lose, I love battling at sea!$" -Route108_Text_CoryRematchDefeated: @ 8297036 +Route108_Text_CoryRematchDefeated: .string "Waaah! I lost again!\n" .string "Waaah! Waaah!$" -Route108_Text_CoryRematchPostBattle: @ 8297059 +Route108_Text_CoryRematchPostBattle: .string "If you're faced with a challenge,\n" .string "try shouting at the sea!$" -Route108_Text_CarolinaIntro: @ 8297094 +Route108_Text_CarolinaIntro: .string "I take huge pride in my POKéMON.\n" .string "We'll show you one speedy battle!$" -Route108_Text_CarolinaDefeated: @ 82970D7 +Route108_Text_CarolinaDefeated: .string "That wasn't cute at all.$" -Route108_Text_CarolinaPostBattle: @ 82970F0 +Route108_Text_CarolinaPostBattle: .string "Since I'm at sea like this, I wouldn't\n" .string "mind putting on a pink, frilly swimsuit…$" -Route109_Text_DavidIntro: @ 8297140 +Route109_Text_DavidIntro: .string "Hiyah! Look at my chiseled abs!\n" .string "This is what you call “cut”!$" -Route109_Text_DavidDefeated: @ 829717D +Route109_Text_DavidDefeated: .string "Aiyah!\n" .string "Flubbed out!$" -Route109_Text_DavidPostBattle: @ 8297191 +Route109_Text_DavidPostBattle: .string "Hiyah!\p" .string "My sculpted abs have nothing to do\n" .string "with POKéMON battles!$" -Route109_Text_AliceIntro: @ 82971D1 +Route109_Text_AliceIntro: .string "Are you properly protected against\n" .string "the sun?$" -Route109_Text_AliceDefeated: @ 82971FD +Route109_Text_AliceDefeated: .string "Ouch, ouch, ouch!$" -Route109_Text_AlicePostBattle: @ 829720F +Route109_Text_AlicePostBattle: .string "Cheeks are the most prone to burning!$" -Route109_Text_HueyIntro: @ 8297235 +Route109_Text_HueyIntro: .string "I've laid anchor in ports around\n" .string "the world, but SLATEPORT's the best.$" -Route109_Text_HueyDefeated: @ 829727B +Route109_Text_HueyDefeated: .string "You're the best!$" -Route109_Text_HueyPostBattle: @ 829728C +Route109_Text_HueyPostBattle: .string "In the best port was the best\n" .string "TRAINER…$" -Route109_Text_EdmondIntro: @ 82972B3 +Route109_Text_EdmondIntro: .string "Urrrrppp…\n" .string "Battle? With me?$" -Route109_Text_EdmondDefeated: @ 82972CE +Route109_Text_EdmondDefeated: .string "Urp… Ooooooohhhhhh…\n" .string "Urrrrpppp…$" -Route109_Text_EdmondPostBattle: @ 82972ED +Route109_Text_EdmondPostBattle: .string "I'm usually stronger than this!\n" .string "I'm just seasick as a dog!\p" .string "I'm a SAILOR, but…$" -Route109_Text_RickyIntro: @ 829733B +Route109_Text_RickyIntro: .string "I'm thirsty… I could go for a SODA POP\n" .string "at the SEASHORE HOUSE…$" -Route109_Text_RickyDefeated: @ 8297379 +Route109_Text_RickyDefeated: .string "Groan…$" -Route109_Text_RickyPostBattle: @ 8297380 +Route109_Text_RickyPostBattle: .string "I'm getting famished… My inner tube\n" .string "looks like a giant doughnut…$" -Route109_Text_RickyRegister: @ 82973C1 +Route109_Text_RickyRegister: .string "Will you have another match with me\n" .string "when I'm not all thirsty?$" -Route109_Text_RickyRematchIntro: @ 82973FF +Route109_Text_RickyRematchIntro: .string "I'm hungry, but I've got enough pep in\n" .string "me for a battle!$" -Route109_Text_RickyRematchDefeated: @ 8297437 +Route109_Text_RickyRematchDefeated: .string "I lost…\n" .string "It's because I'm hungry…$" -Route109_Text_RickyRematchPostBattle: @ 8297458 +Route109_Text_RickyRematchPostBattle: .string "When you eat on a beach, everything\n" .string "seems to taste a little better.$" -Route109_Text_LolaIntro: @ 829749C +Route109_Text_LolaIntro: .string "Doesn't a beach umbrella look like\n" .string "a giant flower?$" -Route109_Text_LolaDefeated: @ 82974CF +Route109_Text_LolaDefeated: .string "Mommy!$" -Route109_Text_LolaPostBattle: @ 82974D6 +Route109_Text_LolaPostBattle: .string "If you look at the beach from the sky,\n" .string "it looks like a big flower garden!$" -Route109_Text_LolaRegister: @ 8297520 +Route109_Text_LolaRegister: .string "Me?\n" .string "I'm here every day!$" -Route109_Text_LolaRematchIntro: @ 8297538 +Route109_Text_LolaRematchIntro: .string "I'm not losing to you again!\n" .string "That's why I have my inner tube!$" -Route109_Text_LolaRematchDefeated: @ 8297576 +Route109_Text_LolaRematchDefeated: .string "Mommy!$" -Route109_Text_LolaRematchPostBattle: @ 829757D +Route109_Text_LolaRematchPostBattle: .string "If I have an inner tube, me and my\n" .string "POKéMON's cuteness goes way up!$" -Route109_Text_AustinaIntro: @ 82975C0 +Route109_Text_AustinaIntro: .string "I can't swim without my inner tube,\n" .string "but I won't lose at POKéMON!$" -Route109_Text_AustinaDefeated: @ 8297601 +Route109_Text_AustinaDefeated: .string "Did I lose because I have an inner\n" .string "tube?$" -Route109_Text_AustinaPostBattle: @ 829762A +Route109_Text_AustinaPostBattle: .string "My inner tube is a fashion item.\n" .string "I can't be seen without it.$" -Route109_Text_GwenIntro: @ 8297667 +Route109_Text_GwenIntro: .string "Hi, big TRAINER.\n" .string "Will you battle with me?$" -Route109_Text_GwenDefeated: @ 8297691 +Route109_Text_GwenDefeated: .string "Oh, you're strong.$" -Route109_Text_GwenPostBattle: @ 82976A4 +Route109_Text_GwenPostBattle: .string "How did you get to be so strong?$" -Route109_Text_CarterIntro: @ 82976C5 +Route109_Text_CarterIntro: .string "Wahahah! This dude's going to catch\n" .string "himself a big one!$" -Route109_Text_CarterDefeated: @ 82976FC +Route109_Text_CarterDefeated: .string "This dude just lost one…$" -Route109_Text_CarterPostBattle: @ 8297715 +Route109_Text_CarterPostBattle: .string "This dude thinks you're a big one.\n" .string "No, you're a big-one-to-be!$" -Route109_Text_PaulIntro: @ 8297754 +Route109_Text_PaulIntro: .string "PAUL: Well, this is a mood-breaker.\p" .string "I wish you wouldn't disturb our\n" .string "precious time together.$" -Route109_Text_PaulDefeated: @ 82977B0 +Route109_Text_PaulDefeated: .string "PAUL: Well, I give up.$" -Route109_Text_PaulPostBattle: @ 82977C7 +Route109_Text_PaulPostBattle: .string "PAUL: Well, don't tell anyone that\n" .string "we're here.\l" .string "This is just our private world of two!$" -Route109_Text_PaulNotEnoughPokemon: @ 829781D +Route109_Text_PaulNotEnoughPokemon: .string "PAUL: We're totally, deeply in love.\n" .string "That's why we make our POKéMON battle\l" .string "together.$" -Route109_Text_MelIntro: @ 8297872 +Route109_Text_MelIntro: .string "MEL: We're, like, totally in love.\n" .string "Our romance is heating up all of HOENN!$" -Route109_Text_MelDefeated: @ 82978BD +Route109_Text_MelDefeated: .string "MEL: We lost, and it's my fault!\n" .string "PAUL will hate me!$" -Route109_Text_MelPostBattle: @ 82978F1 +Route109_Text_MelPostBattle: .string "MEL: Um, PAUL, are you angry with me?\n" .string "Please don't be angry.$" -Route109_Text_MelNotEnoughPokemon: @ 829792E +Route109_Text_MelNotEnoughPokemon: .string "MEL: We're, like, deeply and truly in love.\n" .string "That's why we make our POKéMON\l" .string "battle together.$" -Route109_Text_ChandlerIntro: @ 829798A +Route109_Text_ChandlerIntro: .string "Tadaah! See?\n" .string "My inner tube's round!$" -Route109_Text_ChandlerDefeated: @ 82979AE +Route109_Text_ChandlerDefeated: .string "Oh, oh!\n" .string "Too bad!$" -Route109_Text_ChandlerPostBattle: @ 82979BF +Route109_Text_ChandlerPostBattle: .string "After I showed you my round inner\n" .string "tube, too…$" -Route109_Text_HaileyIntro: @ 82979EC +Route109_Text_HaileyIntro: .string "I can't swim, so I'm pretending\n" .string "to swim.$" -Route109_Text_HaileyDefeated: @ 8297A15 +Route109_Text_HaileyDefeated: .string "I thought so!\n" .string "I didn't think we could win.$" -Route109_Text_HaileyPostBattle: @ 8297A40 +Route109_Text_HaileyPostBattle: .string "When I learn how to swim, I think\n" .string "my POKéMON will become tougher.$" -Route109_Text_ElijahIntro: @ 8297A82 +Route109_Text_ElijahIntro: .string "For a guy as macho as me, this kind\n" .string "of POKéMON is the perfect match!$" -Route109_Text_ElijahDefeated: @ 8297AC7 +Route109_Text_ElijahDefeated: .string "I'm cool even in defeat, hey?$" -Route109_Text_ElijahPostBattle: @ 8297AE5 +Route109_Text_ElijahPostBattle: .string "For a guy as macho as me, a port\n" .string "is the perfect setting!\p" .string "I guess I'll head for SLATEPORT.$" -Route110_Text_JacobIntro: @ 8297B3F +Route110_Text_JacobIntro: .string "Whoa! Watch it!\n" .string "I guess you're not used to BIKE racing.$" -Route110_Text_JacobDefeated: @ 8297B77 +Route110_Text_JacobDefeated: .string "Whoa!\n" .string "My brakes failed!$" -Route110_Text_JacobPostBattle: @ 8297B8F +Route110_Text_JacobPostBattle: .string "Flat tires and brake problems can\n" .string "cause serious injury!\l" .string "Inspect your BIKE for problems!$" -Route110_Text_AnthonyIntro: @ 8297BE7 +Route110_Text_AnthonyIntro: .string "Yo, you!\n" .string "Can you keep up with my speed?$" -Route110_Text_AnthonyDefeated: @ 8297C0F +Route110_Text_AnthonyDefeated: .string "Crash and burn!$" -Route110_Text_AnthonyPostBattle: @ 8297C1F +Route110_Text_AnthonyPostBattle: .string "Speed alone won't let me win at POKéMON.\n" .string "I need to reconsider this…$" -Route110_Text_BenjaminIntro: @ 8297C63 +Route110_Text_BenjaminIntro: .string "Don't panic if your BIKE's going fast!$" -Route110_Text_BenjaminDefeated: @ 8297C8A +Route110_Text_BenjaminDefeated: .string "I shouldn't panic during POKéMON\n" .string "battles…$" -Route110_Text_BenjaminPostBattle: @ 8297CB4 +Route110_Text_BenjaminPostBattle: .string "There's no need to panic or stress.\n" .string "Take it easy. There's plenty of time.$" -Route110_Text_BenjaminRegister: @ 8297CFE +Route110_Text_BenjaminRegister: .string "I'll keep chugging on without stressing.\n" .string "Give me a shout if you're up to it.$" -Route110_Text_BenjaminRematchIntro: @ 8297D4B +Route110_Text_BenjaminRematchIntro: .string "Aren't you going a little too fast?\n" .string "Take it easy and let's battle.$" -Route110_Text_BenjaminRematchDefeated: @ 8297D8E +Route110_Text_BenjaminRematchDefeated: .string "I didn't panic, but I still lost…$" -Route110_Text_BenjaminRematchPostBattle: @ 8297DB0 +Route110_Text_BenjaminRematchPostBattle: .string "There's no need to panic or stress.\n" .string "Take it easy. There's plenty of time.$" -Route110_Text_AbigailIntro: @ 8297DFA +Route110_Text_AbigailIntro: .string "The triathlon is hard in the extreme.\p" .string "You have to complete the three events\n" .string "of swimming, cycling, and running.$" -Route110_Text_AbigailDefeated: @ 8297E69 +Route110_Text_AbigailDefeated: .string "POKéMON battles are hard, too!$" -Route110_Text_AbigailPostBattle: @ 8297E88 +Route110_Text_AbigailPostBattle: .string "I'm exhausted, so I need a break.\n" .string "It's important to get proper rest.$" -Route110_Text_AbigailRegister: @ 8297ECD +Route110_Text_AbigailRegister: .string "You know, I like you!\n" .string "Let's have a rematch on CYCLING ROAD.$" -Route110_Text_AbigailRematchIntro: @ 8297F09 +Route110_Text_AbigailRematchIntro: .string "Isn't it neat to hold a battle while\n" .string "cycling?$" -Route110_Text_AbigailRematchDefeated: @ 8297F37 +Route110_Text_AbigailRematchDefeated: .string "Wow…\n" .string "How could you be so strong?$" -Route110_Text_AbigailRematchPostBattle: @ 8297F58 +Route110_Text_AbigailRematchPostBattle: .string "Were you going after a record?\p" .string "I'm sorry if I held you up!$" -Route110_Text_JasmineIntro: @ 8297F93 +Route110_Text_JasmineIntro: .string "I've been riding without stopping.\n" .string "My thighs are like rocks!$" -Route110_Text_JasmineDefeated: @ 8297FD0 +Route110_Text_JasmineDefeated: .string "I'm worried about muscle cramps…$" -Route110_Text_JasminePostBattle: @ 8297FF1 +Route110_Text_JasminePostBattle: .string "Oh, you have some GYM BADGES?\n" .string "No wonder you're so strong!$" -Route110_Text_EdwardIntro: @ 829802B +Route110_Text_EdwardIntro: .string "I have foreseen your intentions!\n" .string "I cannot possibly lose!$" -Route110_Text_EdwardDefeated: @ 8298064 +Route110_Text_EdwardDefeated: .string "I failed to prophesize my own demise!$" -Route110_Text_EdwardPostBattle: @ 829808A +Route110_Text_EdwardPostBattle: .string "I see your future…\p" .string "Hmm…\n" .string "I see a shining light…$" -Route110_Text_JaclynIntro: @ 82980B9 +Route110_Text_JaclynIntro: .string "Ahahahaha!\n" .string "I'll dazzle you with my wonders!$" -Route110_Text_JaclynDefeated: @ 82980E5 +Route110_Text_JaclynDefeated: .string "I wondrously lost!$" -Route110_Text_JaclynPostBattle: @ 82980F8 +Route110_Text_JaclynPostBattle: .string "You managed to win only because it was\n" .string "a wonder! Yes, a wonder!\l" .string "Don't think you can win all the time!$" -Route110_Text_EdwinIntro: @ 829815E +Route110_Text_EdwinIntro: .string "Could I see your POKéMON?\n" .string "Just one look, please?$" -Route110_Text_EdwinDefeated: @ 829818F +Route110_Text_EdwinDefeated: .string "I wanted to complete\n" .string "my collection…$" -Route110_Text_EdwinPostBattle: @ 82981B3 +Route110_Text_EdwinPostBattle: .string "When I see a POKéMON that I don't know,\n" .string "my passion as a collector is ignited!$" -Route110_Text_EdwinRegister: @ 8298201 +Route110_Text_EdwinRegister: .string "I like collecting MATCH CALL\n" .string "registrations, too…$" -Route110_Text_EdwinRematchIntro: @ 8298232 +Route110_Text_EdwinRematchIntro: .string "Hi, have you caught any new POKéMON?\p" .string "Could I see your POKéMON?\n" .string "Just one look, please?$" -Route110_Text_EdwinRematchDefeated: @ 8298288 +Route110_Text_EdwinRematchDefeated: .string "Your POKéMON…\n" .string "I envy you.$" -Route110_Text_EdwinRematchPostBattle: @ 82982A2 +Route110_Text_EdwinRematchPostBattle: .string "Oh, I long to make all rare POKéMON\n" .string "mine!$" -Route110_Text_DaleIntro: @ 82982CC +Route110_Text_DaleIntro: .string "Hey!\n" .string "Don't sneak up behind me like that!$" -Route110_Text_DaleDefeated: @ 82982F5 +Route110_Text_DaleDefeated: .string "I lost!\n" .string "Drat!$" -Route110_Text_DalePostBattle: @ 8298303 +Route110_Text_DalePostBattle: .string "Fishing is all about concentration.\n" .string "You have to focus on the floater.$" -Route110_Text_IsabelIntro: @ 8298349 +Route110_Text_IsabelIntro: .string "Ahahaha! I would go anywhere to show\n" .string "off my delightful POKéMON.$" -Route110_Text_IsabelDefeated: @ 8298389 +Route110_Text_IsabelDefeated: .string "Oh, dear, this won't do.$" -Route110_Text_IsabelPostBattle: @ 82983A2 +Route110_Text_IsabelPostBattle: .string "Rather than battling, perhaps I should\n" .string "show off my POKéMON at the FAN CLUB.$" -Route110_Text_IsabelRegister: @ 82983EE +Route110_Text_IsabelRegister: .string "That wasn't close to what I could\n" .string "do to show off my POKéMON.\p" .string "I'll have you as my captive audience\n" .string "as often as possible!$" -Route110_Text_IsabelRematchIntro: @ 8298466 +Route110_Text_IsabelRematchIntro: .string "Ahahahaha! I would be happy to show\n" .string "off my POKéMON as often as you like!$" -Route110_Text_IsabelRematchDefeated: @ 82984AF +Route110_Text_IsabelRematchDefeated: .string "Oh, dear, this won't do.$" -Route110_Text_IsabelRematchPostBattle: @ 82984C8 +Route110_Text_IsabelRematchPostBattle: .string "I don't think that I could ever stop\n" .string "from showing off my POKéMON.\p" .string "But I like to battle, too!$" -Route110_Text_TimmyIntro: @ 8298525 +Route110_Text_TimmyIntro: .string "I found some cool POKéMON in the grass\n" .string "around here!$" -Route110_Text_TimmyDefeated: @ 8298559 +Route110_Text_TimmyDefeated: .string "Being cool isn't enough to win…$" -Route110_Text_TimmyPostBattle: @ 8298579 +Route110_Text_TimmyPostBattle: .string "It's hard to battle with POKéMON you\n" .string "just caught.$" -Route110_Text_AlyssaIntro: @ 82985AB +Route110_Text_AlyssaIntro: .string "I fell off CYCLING ROAD…\p" .string "I'll get over my embarrassment by\n" .string "battling with you!$" -Route110_Text_AlyssaDefeated: @ 82985F9 +Route110_Text_AlyssaDefeated: .string "Oops!\n" .string "I ended up losing!$" -Route110_Text_AlyssaPostBattle: @ 8298612 +Route110_Text_AlyssaPostBattle: .string "Falling… Losing…\n" .string "This is so humiliating for me!$" -Route110_Text_JosephIntro: @ 8298642 +Route110_Text_JosephIntro: .string "Okay! Full-throttle time! If you can't\n" .string "groove, you get left behind!$" -Route110_Text_JosephDefeated: @ 8298686 +Route110_Text_JosephDefeated: .string "You got into the groove all right…$" -Route110_Text_JosephPostBattle: @ 82986A9 +Route110_Text_JosephPostBattle: .string "This isn't going to bring me down!\n" .string "Losing has made me a better man!$" -Route110_Text_KalebIntro: @ 82986ED +Route110_Text_KalebIntro: .string "When cute POKéMON help each other…\n" .string "You won't see a more adorable sight!$" -Route110_Text_KalebDefeated: @ 8298735 +Route110_Text_KalebDefeated: .string "Have you no compassion or pity?$" -Route110_Text_KalebPostBattle: @ 8298755 +Route110_Text_KalebPostBattle: .string "Okay, okay, you've done the best you\n" .string "could, my pretties.$" -Route111_Text_DrewIntro: @ 829878E +Route111_Text_DrewIntro: .string "Oh, hey! Those GO-GOGGLES suit you.\n" .string "But I think they look better on me.\p" .string "Let's decide who they look better on\n" .string "with a battle!$" -Route111_Text_DrewDefeat: @ 829880A +Route111_Text_DrewDefeat: .string "I couldn't see what was happening at\n" .string "my sides because of the GO-GOGGLES.$" -Route111_Text_DrewPostBattle: @ 8298853 +Route111_Text_DrewPostBattle: .string "The GO-GOGGLES make it possible to\n" .string "get through sandstorms.\l" .string "That makes me happy!$" -Route111_Text_HeidiIntro: @ 82988A3 +Route111_Text_HeidiIntro: .string "I'm having a picnic in the desert.\p" .string "You can always find a TRAINER,\n" .string "so I can enjoy a battle here, too!$" -Route111_Text_HeidiDefeat: @ 8298908 +Route111_Text_HeidiDefeat: .string "Ohhh! You're mean!$" -Route111_Text_HeidiPostBattle: @ 829891B +Route111_Text_HeidiPostBattle: .string "When you're battling in a sandstorm,\n" .string "watch out for your POKéMON's HP.\p" .string "It can faint if you don't keep\n" .string "an eye on it!$" -Route111_Text_BeauIntro: @ 829898E +Route111_Text_BeauIntro: .string "Wearing these GO-GOGGLES makes me\n" .string "feel like a superhero.\l" .string "Right now, nobody can beat me!$" -Route111_Text_BeauDefeat: @ 82989E6 +Route111_Text_BeauDefeat: .string "I can't win on spirit alone…$" -Route111_Text_BeauPostBattle: @ 8298A03 +Route111_Text_BeauPostBattle: .string "I'm going to be a real hero one day.\n" .string "I'm going to work harder to make me\l" .string "and my POKéMON stronger.$" -Route111_Text_BeckyIntro: @ 8298A65 +Route111_Text_BeckyIntro: .string "I heard there are fossils to be found\n" .string "in the desert. Where could they be?$" -Route111_Text_BeckyDefeat: @ 8298AAF +Route111_Text_BeckyDefeat: .string "I came up short…$" -Route111_Text_BeckyPostBattle: @ 8298AC0 +Route111_Text_BeckyPostBattle: .string "If they can find fossils in the desert,\n" .string "it must have been a sea before.$" -Route111_Text_DustyIntro: @ 8298B08 +Route111_Text_DustyIntro: .string "For thirty years I have searched for\n" .string "ancient ruins!\l" .string "I am to be challenged?$" -Route111_Text_DustyDefeat: @ 8298B53 +Route111_Text_DustyDefeat: .string "While I have searched for ruins,\n" .string "I've not searched for strong POKéMON.$" -Route111_Text_DustyPostBattle: @ 8298B9A +Route111_Text_DustyPostBattle: .string "For thirty years I have searched for\n" .string "ancient ruins!\p" .string "No, wait, was that forty years?\n" .string "Which was it now?$" -Route111_Text_DustyRegister: @ 8298C00 +Route111_Text_DustyRegister: .string "I haven't been searching for any\n" .string "tough POKéMON.\p" .string "But, for some reason, I sure do like\n" .string "POKéNAVS.$" -Route111_Text_DustyRematchIntro: @ 8298C5F +Route111_Text_DustyRematchIntro: .string "For thirty years I have searched for\n" .string "ancient ruins!\p" .string "No, wait, was that forty years?\n" .string "Anyway, am I to be challenged?$" -Route111_Text_DustyRematchDefeat: @ 8298CD2 +Route111_Text_DustyRematchDefeat: .string "I've found no ruins, nor have I found\n" .string "any strong POKéMON…$" -Route111_Text_DustyPostRematch: @ 8298D0C +Route111_Text_DustyPostRematch: .string "For thirty years I have searched for\n" .string "ancient ruins!\p" .string "No, wait, was that forty years\n" @@ -1324,215 +1324,215 @@ Route111_Text_DustyPostRematch: @ 8298D0C .string "Hmm… It could even be fifty…\n" .string "How long have I been at this?$" -Route111_Text_TravisIntro: @ 8298DA9 +Route111_Text_TravisIntro: .string "I'm full of pep!\n" .string "And my POKéMON is peppy, too!$" -Route111_Text_TravisDefeat: @ 8298DD8 +Route111_Text_TravisDefeat: .string "My POKéMON lost its pep…$" -Route111_Text_TravisPostBattle: @ 8298DF1 +Route111_Text_TravisPostBattle: .string "When I see a TRAINER with a lot of pep,\n" .string "I can't help looking.$" -Route111_Text_IreneIntro: @ 8298E2F +Route111_Text_IreneIntro: .string "I don't know where you're going,\n" .string "but would you like to battle?$" -Route111_Text_IreneDefeat: @ 8298E6E +Route111_Text_IreneDefeat: .string "Oh, you're disgustingly good!$" -Route111_Text_IrenePostBattle: @ 8298E8C +Route111_Text_IrenePostBattle: .string "I'm thinking that I should go to\n" .string "MT. CHIMNEY, but the view around\l" .string "here is very nice, too.$" -Route111_Text_DaisukeIntro: @ 8298EE6 +Route111_Text_DaisukeIntro: .string "To train myself, I challenge all\n" .string "whom I meet!$" -Route111_Text_DaisukeDefeat: @ 8298F14 +Route111_Text_DaisukeDefeat: .string "Uncle! I give up!$" -Route111_Text_DaisukePostBattle: @ 8298F26 +Route111_Text_DaisukePostBattle: .string "All I can do is keep training until\n" .string "I can defeat strong TRAINERS such\l" .string "as yourself.$" -Route111_Text_WiltonIntro: @ 8298F79 +Route111_Text_WiltonIntro: .string "Show me how much you've toughened\n" .string "your POKéMON.$" -Route111_Text_WiltonDefeat: @ 8298FA9 +Route111_Text_WiltonDefeat: .string "I see, you've toughened them\n" .string "considerably.$" -Route111_Text_WiltonPostBattle: @ 8298FD4 +Route111_Text_WiltonPostBattle: .string "POKéMON and TRAINERS learn much\n" .string "through battling.\p" .string "What's important is to never give up\n" .string "even if you lose.$" -Route111_Text_WiltonRegister: @ 829903D +Route111_Text_WiltonRegister: .string "There is much to be learned from\n" .string "your training style.\p" .string "I request a rematch if it\n" .string "behooves you.$" -Route111_Text_WiltonRematchIntro: @ 829909B +Route111_Text_WiltonRematchIntro: .string "We're training here to elevate our\n" .string "game to the next level.\l" .string "Stay and train with us!$" -Route111_Text_WiltonRematchDefeat: @ 82990EE +Route111_Text_WiltonRematchDefeat: .string "Ooh, you're decent!$" -Route111_Text_WiltonPostRematch: @ 8299102 +Route111_Text_WiltonPostRematch: .string "Since you're that strong, you should\n" .string "aim for the POKéMON LEAGUE.$" -Route111_Text_BrookeIntro: @ 8299143 +Route111_Text_BrookeIntro: .string "Oh, your POKéMON look like serious\n" .string "actors.\l" .string "I have to ask you for an engagement.$" -Route111_Text_BrookeDefeat: @ 8299193 +Route111_Text_BrookeDefeat: .string "They didn't just look strong,\n" .string "they are strong!$" -Route111_Text_BrookePostBattle: @ 82991C2 +Route111_Text_BrookePostBattle: .string "I thought I was raising my POKéMON\n" .string "diligently, but, oh no, there is still\l" .string "much to be done.$" -Route111_Text_BrookeRegister: @ 829921D +Route111_Text_BrookeRegister: .string "I wish I could become friends with\n" .string "more strong people like you!$" -Route111_Text_BrookeRematchIntro: @ 829925D +Route111_Text_BrookeRematchIntro: .string "You can make POKéMON stronger or\n" .string "weaker depending on the moves you\l" .string "teach them.\p" .string "What kinds of moves do your POKéMON\n" .string "know?$" -Route111_Text_BrookeRematchDefeat: @ 82992D6 +Route111_Text_BrookeRematchDefeat: .string "You've taught them good moves!$" -Route111_Text_BrookePostRematch: @ 82992F5 +Route111_Text_BrookePostRematch: .string "Maybe I should have stopped my\n" .string "POKéMON from evolving until they\l" .string "learned better moves…$" -Route111_Text_CeliaIntro: @ 829934B +Route111_Text_CeliaIntro: .string "I shouldn't have come to a place like\n" .string "this for a picnic!$" -Route111_Text_CeliaDefeat: @ 8299384 +Route111_Text_CeliaDefeat: .string "Aww!\n" .string "I really shouldn't have come!$" -Route111_Text_CeliaPostBattle: @ 82993A7 +Route111_Text_CeliaPostBattle: .string "In a sandstorm like this, I can't set\n" .string "the places for a picnic even with my\l" .string "GO-GOGGLES on…$" -Route111_Text_BryanIntro: @ 8299401 +Route111_Text_BryanIntro: .string "How tough are you?\n" .string "We shall expose that secret!$" -Route111_Text_BryanDefeat: @ 8299431 +Route111_Text_BryanDefeat: .string "Oh! Your strength!\n" .string "It is shrouded in mystery!$" -Route111_Text_BryanPostBattle: @ 829945F +Route111_Text_BryanPostBattle: .string "This desert hoards mysteries in\n" .string "its shifting sands!$" -Route111_Text_BrandenIntro: @ 8299493 +Route111_Text_BrandenIntro: .string "I'll give you some of my sandwich\n" .string "if you'll lose.$" -Route111_Text_BrandenDefeat: @ 82994C5 +Route111_Text_BrandenDefeat: .string "Tch! I thought a sandwich would be\n" .string "enough of a bribe…$" -Route111_Text_BrandenPostBattle: @ 82994FB +Route111_Text_BrandenPostBattle: .string "My SANDSHREW loves eating\n" .string "my sandwiches.$" -Route111_Text_TyronIntro: @ 8299524 +Route111_Text_TyronIntro: .string "This is my favorite kind of POKéMON!$" -Route111_Text_TyronDefeat: @ 8299549 +Route111_Text_TyronDefeat: .string "Wait!\n" .string "Did you get a good look at my POKéMON?$" -Route111_Text_TyronPostBattle: @ 8299576 +Route111_Text_TyronPostBattle: .string "When having a battle, I get a kick out\n" .string "of showing off my POKéMON.\p" .string "I bet everyone feels that way when\n" .string "they enter a battle!$" -Route111_Text_CelinaIntro: @ 82995F0 +Route111_Text_CelinaIntro: .string "Show me how to put a little excitement\n" .string "into my life.$" -Route111_Text_CelinaDefeat: @ 8299625 +Route111_Text_CelinaDefeat: .string "Oh… My…\n" .string "That was too much excitement.$" -Route111_Text_CelinaPostBattle: @ 829964B +Route111_Text_CelinaPostBattle: .string "My pulse is still racing.\n" .string "You're one fabulous TRAINER.$" -Route111_Text_HaydenIntro: @ 8299682 +Route111_Text_HaydenIntro: .string "When you're as famished as I am,\n" .string "there is no room for pity!$" -Route111_Text_HaydenDefeat: @ 82996BE +Route111_Text_HaydenDefeat: .string "Groan…$" -Route111_Text_HaydenPostBattle: @ 82996C5 +Route111_Text_HaydenPostBattle: .string "My stomach is grumbling!\n" .string "Maybe I can grill some BERRIES…$" -Route111_Text_BiancaIntro: @ 82996FE +Route111_Text_BiancaIntro: .string "Did you come from MAUVILLE?\n" .string "Then you should be full of energy!$" -Route111_Text_BiancaDefeat: @ 829973D +Route111_Text_BiancaDefeat: .string "Ooh lala!\n" .string "That's a lot to take!$" -Route111_Text_BiancaPostBattle: @ 829975D +Route111_Text_BiancaPostBattle: .string "This road here…\n" .string "You have quite a ways to travel.$" -Route112_Text_BriceIntro: @ 829978E +Route112_Text_BriceIntro: .string "Hahahaha!\n" .string "How about we have a battle?\l" .string "You and me!\l" .string "Hahahaha!$" -Route112_Text_BriceDefeat: @ 82997CA +Route112_Text_BriceDefeat: .string "I lost!\n" .string "Hahahaha!$" -Route112_Text_BricePostBattle: @ 82997DC +Route112_Text_BricePostBattle: .string "Hahahahaha! Something flew up my nose!\n" .string "Hahahaha-hatchoo!$" -Route112_Text_TrentIntro: @ 8299815 +Route112_Text_TrentIntro: .string "My legs are solid from pounding up\n" .string "and down the mountains.\p" .string "They're not going to buckle easily,\n" .string "friend!$" -Route112_Text_TrentDefeat: @ 829987C +Route112_Text_TrentDefeat: .string "Ouch! My legs cramped up!$" -Route112_Text_TrentPostBattle: @ 8299896 +Route112_Text_TrentPostBattle: .string "Try hiking, and I mean really\n" .string "pounding, on these mountain trails\l" .string "with a heavy pack weighing dozens of\l" @@ -1540,2318 +1540,2318 @@ Route112_Text_TrentPostBattle: @ 8299896 .string "That, my friend, will get your body\n" .string "into serious shape.$" -Route112_Text_TrentRegister: @ 829993C +Route112_Text_TrentRegister: .string "Ow, my legs have cramped up.\n" .string "Can you grab me some bandages from\l" .string "my backpack?\p" .string "No, that's my POKéNAV!\n" .string "Oh, fine, I'll register you.$" -Route112_Text_TrentRematchIntro: @ 82999BD +Route112_Text_TrentRematchIntro: .string "I've been keeping fit by hiking.\n" .string "Power, I have in spades!$" -Route112_Text_TrentRematchDefeat: @ 82999F7 +Route112_Text_TrentRematchDefeat: .string "I got trumped in power?$" -Route112_Text_TrentRematchPostBattle: @ 8299A0F +Route112_Text_TrentRematchPostBattle: .string "I hear there are some seriously tough\n" .string "TRAINERS on top of MT. CHIMNEY.\p" .string "I intend to get up there and give them\n" .string "a challenge!$" -Route112_Text_LarryIntro: @ 8299A89 +Route112_Text_LarryIntro: .string "I'm strong.\n" .string "I won't cry if I lose.$" -Route112_Text_LarryDefeat: @ 8299AAC +Route112_Text_LarryDefeat: .string "Waaaah!$" -Route112_Text_LarryPostBattle: @ 8299AB4 +Route112_Text_LarryPostBattle: .string "I'm not crying because I miss my mommy!\n" .string "Snivel…$" -Route112_Text_CarolIntro: @ 8299AE4 +Route112_Text_CarolIntro: .string "When you're out on a picnic, why,\n" .string "you simply have to sing!\l" .string "Come on, sing with me!$" -Route112_Text_CarolDefeat: @ 8299B36 +Route112_Text_CarolDefeat: .string "Oh, you're so strong!$" -Route112_Text_CarolPostBattle: @ 8299B4C +Route112_Text_CarolPostBattle: .string "It doesn't matter if you're good or bad\n" .string "at singing or POKéMON.\p" .string "If you have the most fun, you win!$" -Route112_Text_BryantIntro: @ 8299BAE +Route112_Text_BryantIntro: .string "I caught hot POKéMON in FIERY PATH!\n" .string "Take a look!$" -Route112_Text_BryantDefeat: @ 8299BDF +Route112_Text_BryantDefeat: .string "What a bumpy ride that was!$" -Route112_Text_BryantPostBattle: @ 8299BFB +Route112_Text_BryantPostBattle: .string "I like the way you battle.\n" .string "It has a certain flair to it.$" -Route112_Text_ShaylaIntro: @ 8299C34 +Route112_Text_ShaylaIntro: .string "Oh, aren't you an adorable TRAINER!\n" .string "Please, I need a romantic battle!\l" .string "I'm somewhat decent!$" -Route112_Text_ShaylaDefeat: @ 8299C8F +Route112_Text_ShaylaDefeat: .string "Oh, how strong you are!\n" .string "You've given me quite a shock!$" -Route112_Text_ShaylaPostBattle: @ 8299CC6 +Route112_Text_ShaylaPostBattle: .string "Are you busy right now?\n" .string "I was thinking that maybe we can have\l" .string "a rematch right now…\l" .string "But it's all right if you're busy.$" -Route113_Text_JaylenIntro: @ 8299D3C +Route113_Text_JaylenIntro: .string "Can you guess why it's so cool\n" .string "around here?$" -Route113_Text_JaylenDefeat: @ 8299D68 +Route113_Text_JaylenDefeat: .string "Peeuuw!\n" .string "That stinks!$" -Route113_Text_JaylenPostBattle: @ 8299D7D +Route113_Text_JaylenPostBattle: .string "The volcanic ash blocks the sun,\n" .string "so it doesn't get very warm.\p" .string "That's good for me--I can't stand heat!$" -Route113_Text_DillonIntro: @ 8299DE3 +Route113_Text_DillonIntro: .string "The volcano's eruption is proof that\n" .string "the earth is alive.$" -Route113_Text_DillonDefeat: @ 8299E1C +Route113_Text_DillonDefeat: .string "You're some kind of strong!$" -Route113_Text_DillonPostBattle: @ 8299E38 +Route113_Text_DillonPostBattle: .string "Ouch! Owww! I can't see!\n" .string "I got ashes in my eyelashes!\p" .string "Get it? Ashes and eyelashes?\p" .string "Okay, that was bad, sorry…$" -Route113_Text_MadelineIntro: @ 8299EA6 +Route113_Text_MadelineIntro: .string "I use this parasol to ward off this\n" .string "filthy, yucky volcanic ash from\l" .string "my dear NUMEL.$" -Route113_Text_MadelineDefeat: @ 8299EF9 +Route113_Text_MadelineDefeat: .string "Huff, huff…\n" .string "I am exhausted…$" -Route113_Text_MadelinePostBattle: @ 8299F15 +Route113_Text_MadelinePostBattle: .string "You're very good at this.\n" .string "I must say I'm impressed!$" -Route113_Text_MadelineRegister: @ 8299F49 +Route113_Text_MadelineRegister: .string "Here, slide under my parasol.\n" .string "Let me register you in my POKéNAV.$" -Route113_Text_MadelineRematchIntro: @ 8299F8A +Route113_Text_MadelineRematchIntro: .string "Oh, hello, hasn't it been a while?\n" .string "May I invite you to battle?$" -Route113_Text_MadelineRematchDefeat: @ 8299FC9 +Route113_Text_MadelineRematchDefeat: .string "Oh, how super!$" -Route113_Text_MadelinePostRematch: @ 8299FD8 +Route113_Text_MadelinePostRematch: .string "You've remained very good at this.\n" .string "I must say I'm impressed!$" -Route113_Text_LaoIntro: @ 829A015 +Route113_Text_LaoIntro: .string "From out of the ashes I leap! Hiyah!\n" .string "I challenge thee!$" -Route113_Text_LaoDefeat: @ 829A04C +Route113_Text_LaoDefeat: .string "With honor I admit defeat!$" -Route113_Text_LaoPostBattle: @ 829A067 +Route113_Text_LaoPostBattle: .string "I must refine the art of concealment.\n" .string "I bid thee farewell.$" -Route113_Text_LaoRegister: @ 829A0A2 +Route113_Text_LaoRegister: .string "Yiiyaah! Witness the ancient ninja\n" .string "technique of POKéNAV registration!$" -Route113_Text_LaoRematchIntro: @ 829A0E8 +Route113_Text_LaoRematchIntro: .string "From out of the ashes I leap! Hiyah!\n" .string "I challenge thee!$" -Route113_Text_LaoRematchDefeat: @ 829A11F +Route113_Text_LaoRematchDefeat: .string "With honor I admit defeat!$" -Route113_Text_LaoPostRematch: @ 829A13A +Route113_Text_LaoPostRematch: .string "My flawless concealment was let down\n" .string "by my immature battle skills…\p" .string "I bid thee farewell.$" -Route113_Text_LungIntro: @ 829A192 +Route113_Text_LungIntro: .string "Thanks for finding me!\n" .string "But we still have to battle!$" -Route113_Text_LungDefeat: @ 829A1C6 +Route113_Text_LungDefeat: .string "I'll use my ninjutsu on you…\n" .string "“VOLCANIC ASH SWIRL CLOAK”!\p" .string "…What?\n" .string "It's already over?$" -Route113_Text_LungPostBattle: @ 829A219 +Route113_Text_LungPostBattle: .string "You know what's crummy about hiding?\n" .string "It's lonely if no one comes along.$" -Route113_Text_ToriIntro: @ 829A261 +Route113_Text_ToriIntro: .string "TORI: Both of us, we collect ashes.\n" .string "We battle POKéMON, too.$" -Route113_Text_ToriDefeat: @ 829A29D +Route113_Text_ToriDefeat: .string "TORI: We lost… It's boring, so I'm going\n" .string "to get some more ashes.$" -Route113_Text_ToriPostBattle: @ 829A2DE +Route113_Text_ToriPostBattle: .string "TORI: How much ash do we have?\n" .string "Enough for a WHITE FLUTE, I hope.$" -Route113_Text_ToriNotEnoughMons: @ 829A31F +Route113_Text_ToriNotEnoughMons: .string "TORI: We want to battle 2-on-2.\n" .string "If we didn't, we would lose!$" -Route113_Text_TiaIntro: @ 829A35C +Route113_Text_TiaIntro: .string "TIA: Both of us, we collect ashes.\n" .string "We battle POKéMON, too.$" -Route113_Text_TiaDefeat: @ 829A397 +Route113_Text_TiaDefeat: .string "TIA: We couldn't win… It's boring,\n" .string "so I'm getting some more ashes.$" -Route113_Text_TiaPostBattle: @ 829A3DA +Route113_Text_TiaPostBattle: .string "TIA: We have a lot of ashes!\n" .string "I think enough for a WHITE FLUTE!$" -Route113_Text_TiaNotEnoughMons: @ 829A419 +Route113_Text_TiaNotEnoughMons: .string "TIA: We want to battle 2-on-2.\n" .string "If we don't, we won't win!$" -Route113_Text_CobyIntro: @ 829A453 +Route113_Text_CobyIntro: .string "Pfft, with these wings I can\n" .string "flick you away!$" -Route113_Text_CobyDefeat: @ 829A480 +Route113_Text_CobyDefeat: .string "A… What?$" -Route113_Text_CobyPostBattle: @ 829A489 +Route113_Text_CobyPostBattle: .string "I don't know what to say when I get\n" .string "beaten so easily…$" -Route113_Text_SophieIntro: @ 829A4BF +Route113_Text_SophieIntro: .string "The warmth here is making me drowsy.\n" .string "Battle with me so I can stay awake.$" -Route113_Text_SophieDefeat: @ 829A508 +Route113_Text_SophieDefeat: .string "This is a dream.\n" .string "I'm sure of it…$" -Route113_Text_SophiePostBattle: @ 829A529 +Route113_Text_SophiePostBattle: .string "Losing burns me up…\n" .string "I'm just going to sleep right here!\l" .string "Zzz!$" -Route113_Text_LawrenceIntro: @ 829A566 +Route113_Text_LawrenceIntro: .string "Were you maybe in the middle\n" .string "of gathering volcanic ashes?$" -Route113_Text_LawrenceDefeat: @ 829A5A0 +Route113_Text_LawrenceDefeat: .string "Ehehe.\n" .string "We got beaten cleanly.$" -Route113_Text_LawrencePostBattle: @ 829A5BE +Route113_Text_LawrencePostBattle: .string "I ought to hide under the ashes, too.$" -Route113_Text_WyattIntro: @ 829A5E4 +Route113_Text_WyattIntro: .string "Y-you want to battle with me?\n" .string "Even though I just caught my POKéMON?$" -Route113_Text_WyattDefeat: @ 829A628 +Route113_Text_WyattDefeat: .string "Y-you're all happy to win?\n" .string "Even though it's only me?$" -Route113_Text_WyattPostBattle: @ 829A65D +Route113_Text_WyattPostBattle: .string "Oh, so now you want to say a word to\n" .string "the loser?\p" .string "Aren't you just the coolest?\n" .string "Humph!$" -Route114_Text_LennyIntro: @ 829A6B1 +Route114_Text_LennyIntro: .string "Yodelayhihoo!\p" .string "… …\p" .string "You're supposed to shout\n" .string "“yodelayhihoo” since it doesn't\l" .string "echo here!$" -Route114_Text_LennyDefeat: @ 829A707 +Route114_Text_LennyDefeat: .string "Yodelayhihoo!$" -Route114_Text_LennyPostBattle: @ 829A715 +Route114_Text_LennyPostBattle: .string "When I was a wee tyke, I believed there\n" .string "was someone copying me and shouting\l" .string "back, “Yodelayhihoo.”$" -Route114_Text_LucasIntro: @ 829A777 +Route114_Text_LucasIntro: .string "If you're not prepared, you shouldn't\n" .string "be up in the mountains!$" -Route114_Text_LucasDefeat: @ 829A7B5 +Route114_Text_LucasDefeat: .string "The mountains are unforgiving…$" -Route114_Text_LucasPostBattle: @ 829A7D4 +Route114_Text_LucasPostBattle: .string "In the winter, mountains turn deadly\n" .string "with blizzards and avalanches.$" -Route114_Text_ShaneIntro: @ 829A818 +Route114_Text_ShaneIntro: .string "Camping's fun! You can fish, roast\n" .string "marshmallows, and tell spooky stories!\p" .string "But the best of all are the POKéMON\n" .string "battles!$" -Route114_Text_ShaneDefeat: @ 829A88F +Route114_Text_ShaneDefeat: .string "Way too strong!$" -Route114_Text_ShanePostBattle: @ 829A89F +Route114_Text_ShanePostBattle: .string "I think it's great that I can go\n" .string "camping with my POKéMON.$" -Route114_Text_NancyIntro: @ 829A8D9 +Route114_Text_NancyIntro: .string "I need to exercise after a meal.\n" .string "Let's have a match!$" -Route114_Text_NancyDefeat: @ 829A90E +Route114_Text_NancyDefeat: .string "Oh, no!$" -Route114_Text_NancyPostBattle: @ 829A916 +Route114_Text_NancyPostBattle: .string "I just had a tasty meal.\n" .string "I'm getting drowsy…$" -Route114_Text_SteveIntro: @ 829A943 +Route114_Text_SteveIntro: .string "Ufufufufufu…\n" .string "Want to battle against my POKéMON?$" -Route114_Text_SteveDefeat: @ 829A973 +Route114_Text_SteveDefeat: .string "M-My POKéMON…$" -Route114_Text_StevePostBattle: @ 829A981 +Route114_Text_StevePostBattle: .string "A big body that's all lumpy and hard,\n" .string "enormous horns, and vicious fangs…\p" .string "Ufufufufu…\n" .string "I wish I had a POKéMON like that…$" -Route114_Text_SteveRegister: @ 829A9F7 +Route114_Text_SteveRegister: .string "Don't forget what you've done to me!\n" .string "I'll make it so you can't forget!$" -Route114_Text_SteveRematchIntro: @ 829AA3E +Route114_Text_SteveRematchIntro: .string "Ufufufufufu…\n" .string "Come on, battle my POKéMON…$" -Route114_Text_SteveRematchDefeat: @ 829AA67 +Route114_Text_SteveRematchDefeat: .string "I feel so lucky getting to see your\n" .string "POKéMON…$" -Route114_Text_StevePostRematch: @ 829AA94 +Route114_Text_StevePostRematch: .string "Ufufufufufu…\p" .string "When I see POKéMON battling, I get all\n" .string "shivery and shaky…$" -Route114_Text_BernieIntro: @ 829AADB +Route114_Text_BernieIntro: .string "If you're lighting a campfire,\n" .string "make sure you have water handy.$" -Route114_Text_BernieDefeat: @ 829AB1A +Route114_Text_BernieDefeat: .string "Thanks for dousing my fire!$" -Route114_Text_BerniePostBattle: @ 829AB36 +Route114_Text_BerniePostBattle: .string "You really do have to be careful with\n" .string "any sort of fire in a forest.\p" .string "Don't ever underestimate the power\n" .string "of fire.$" -Route114_Text_BernieRegister: @ 829ABA6 +Route114_Text_BernieRegister: .string "You set my spirit on fire.\n" .string "Let's register each other!$" -Route114_Text_BernieRematchIntro: @ 829ABDC +Route114_Text_BernieRematchIntro: .string "Have you learned to keep water handy\n" .string "for campfires?$" -Route114_Text_BernieRematchDefeat: @ 829AC10 +Route114_Text_BernieRematchDefeat: .string "I got hosed down before I could\n" .string "flare up, I guess.$" -Route114_Text_BerniePostRematch: @ 829AC43 +Route114_Text_BerniePostRematch: .string "You really do have to be careful with\n" .string "any sort of fire in a forest.\p" .string "Don't ever underestimate the power\n" .string "of fire.$" -Route114_Text_ClaudeIntro: @ 829ACB3 +Route114_Text_ClaudeIntro: .string "If we were fishing, you wouldn't stand\n" .string "a chance against me.\l" .string "So, bring on your POKéMON!$" -Route114_Text_ClaudeDefeat: @ 829AD0A +Route114_Text_ClaudeDefeat: .string "If we were fishing, I would've won…$" -Route114_Text_ClaudePostBattle: @ 829AD2E +Route114_Text_ClaudePostBattle: .string "I think I'll try my luck at landing\n" .string "a big one at METEOR FALLS.\p" .string "There has to be something in there.\n" .string "I just know it.$" -Route114_Text_NolanIntro: @ 829ADA1 +Route114_Text_NolanIntro: .string "I like to fish. But I also like to\n" .string "battle!\p" .string "If anyone challenges me, I'm there,\n" .string "even if I'm fishing.$" -Route114_Text_NolanDefeat: @ 829AE05 +Route114_Text_NolanDefeat: .string "I like to battle, but that doesn't\n" .string "mean I'm good at it…$" -Route114_Text_NolanPostBattle: @ 829AE3D +Route114_Text_NolanPostBattle: .string "This time I'll do it!\p" .string "I always think that, so I can't walk\n" .string "away from fishing or POKéMON.$" -Route114_Text_TyraIntro: @ 829AE96 +Route114_Text_TyraIntro: .string "TYRA: Well, sure.\n" .string "I'm in the mood for it.\l" .string "I'll teach you a little about POKéMON.$" -Route114_Text_TyraDefeat: @ 829AEE7 +Route114_Text_TyraDefeat: .string "TYRA: What an amazing battle style!$" -Route114_Text_TyraPostBattle: @ 829AF0B +Route114_Text_TyraPostBattle: .string "TYRA: I was teaching my junior IVY\n" .string "about POKéMON.$" -Route114_Text_TyraNotEnoughMons: @ 829AF3D +Route114_Text_TyraNotEnoughMons: .string "TYRA: Giggle…\n" .string "If you want to battle with us, just one\l" .string "POKéMON isn't enough!$" -Route114_Text_IvyIntro: @ 829AF89 +Route114_Text_IvyIntro: .string "IVY: Who taught you about POKéMON?$" -Route114_Text_IvyDefeat: @ 829AFAC +Route114_Text_IvyDefeat: .string "IVY: What an amazing battle style!$" -Route114_Text_IvyPostBattle: @ 829AFCF +Route114_Text_IvyPostBattle: .string "IVY: I started training POKéMON\n" .string "because TYRA, my student mentor,\l" .string "taught me!$" -Route114_Text_IvyNotEnoughMons: @ 829B01B +Route114_Text_IvyNotEnoughMons: .string "IVY: Do you only have one POKéMON?\n" .string "I think it must feel lonesome.$" -Route114_Text_KaiIntro: @ 829B05D +Route114_Text_KaiIntro: .string "I landed a big one!\n" .string "A huge one, I tell you!$" -Route114_Text_KaiDefeat: @ 829B089 +Route114_Text_KaiDefeat: .string "What was that about?\n" .string "Did mine lose in size?$" -Route114_Text_KaiPostBattle: @ 829B0B5 +Route114_Text_KaiPostBattle: .string "Okay!\n" .string "I'll just fish me a bigger one!$" -Route114_Text_CharlotteIntro: @ 829B0DB +Route114_Text_CharlotteIntro: .string "Me!\n" .string "I'm not just a pretty face!$" -Route114_Text_CharlotteDefeat: @ 829B0FB +Route114_Text_CharlotteDefeat: .string "That wasn't cute in the least!$" -Route114_Text_CharlottePostBattle: @ 829B11A +Route114_Text_CharlottePostBattle: .string "I don't want a POKéMON that's\n" .string "just cute.\p" .string "I adore cute ones that have a quirk\n" .string "or two!$" -Route114_Text_AngelinaIntro: @ 829B16F +Route114_Text_AngelinaIntro: .string "Have you made your POKéMON evolve\n" .string "very much?$" -Route114_Text_AngelinaDefeat: @ 829B19C +Route114_Text_AngelinaDefeat: .string "Oh, I see.\n" .string "That's good to know.$" -Route114_Text_AngelinaPostBattle: @ 829B1BC +Route114_Text_AngelinaPostBattle: .string "Some POKéMON change so much when\n" .string "they evolve, it's startling!$" -Route115_Text_TimothyIntro: @ 829B1FA +Route115_Text_TimothyIntro: .string "Hm…\n" .string "You seem rather capable…\l" .string "Let me keep you company!$" -Route115_Text_TimothyDefeat: @ 829B230 +Route115_Text_TimothyDefeat: .string "You're much stronger than\n" .string "I'd imagined!$" -Route115_Text_TimothyPostBattle: @ 829B258 +Route115_Text_TimothyPostBattle: .string "There is no such thing as a born genius.\n" .string "It all depends on effort!\l" .string "That is what I believe…$" -Route115_Text_TimothyRegister: @ 829B2B3 +Route115_Text_TimothyRegister: .string "Hmm… A loss this thorough has been\n" .string "a distant memory.\p" .string "If you would allow it, I wish for\n" .string "another opportunity to do battle.$" -Route115_Text_TimothyRematchIntro: @ 829B32C +Route115_Text_TimothyRematchIntro: .string "Hm… As always, your agility speaks\n" .string "for itself.\l" .string "Come, keep me company!$" -Route115_Text_TimothyRematchDefeat: @ 829B372 +Route115_Text_TimothyRematchDefeat: .string "As strong as ever!$" -Route115_Text_TimothyPostRematch: @ 829B385 +Route115_Text_TimothyPostRematch: .string "All it takes is effort!\p" .string "I lost because I haven't put in enough\n" .string "effort!$" -Route115_Text_KoichiIntro: @ 829B3CC +Route115_Text_KoichiIntro: .string "You!\p" .string "My MACHOP!\p" .string "Demand a battle!$" -Route115_Text_KoichiDefeat: @ 829B3ED +Route115_Text_KoichiDefeat: .string "Ouch, ouch, ouch!$" -Route115_Text_KoichiPostBattle: @ 829B3FF +Route115_Text_KoichiPostBattle: .string "My MACHOP crew!\p" .string "So long as they seek power, I will\n" .string "grow strong with them!$" -Route115_Text_NobIntro: @ 829B449 +Route115_Text_NobIntro: .string "My strongest skill is busting bricks\n" .string "with my forehead!$" -Route115_Text_NobDefeat: @ 829B480 +Route115_Text_NobDefeat: .string "Ugwaaaah!\n" .string "My head is busted!$" -Route115_Text_NobPostBattle: @ 829B49D +Route115_Text_NobPostBattle: .string "I've been teaching my POKéMON karate.\p" .string "It looks like they'll get a lot better\n" .string "than me. I'm excited about that.$" -Route115_Text_NobRegister: @ 829B50B +Route115_Text_NobRegister: .string "You impress me! Give me a rematch\n" .string "after I redo my training!$" -Route115_Text_NobRematchIntro: @ 829B547 +Route115_Text_NobRematchIntro: .string "After you beat me, we trained hard to\n" .string "improve our skills.\l" .string "Come on, give us a rematch!$" -Route115_Text_NobRematchDefeat: @ 829B59D +Route115_Text_NobRematchDefeat: .string "Ugwaaah!\n" .string "We lost again!$" -Route115_Text_NobPostRematch: @ 829B5B5 +Route115_Text_NobPostRematch: .string "My POKéMON will grow stronger!\n" .string "I'll redouble my training!$" -Route115_Text_CyndyIntro: @ 829B5EF +Route115_Text_CyndyIntro: .string "This beach is my secret training spot!\n" .string "Don't come butting in!$" -Route115_Text_CyndyDefeat: @ 829B62D +Route115_Text_CyndyDefeat: .string "I haven't trained enough!$" -Route115_Text_CyndyPostBattle: @ 829B647 +Route115_Text_CyndyPostBattle: .string "The sand acts as a cushion to reduce\n" .string "impact and prevent injury.\l" .string "This is the perfect place to train.$" -Route115_Text_CyndyRegister: @ 829B6AB +Route115_Text_CyndyRegister: .string "Okay, fine, you're free to come here.\n" .string "In return, I'd like to battle you again.$" -Route115_Text_CyndyRematchIntro: @ 829B6FA +Route115_Text_CyndyRematchIntro: .string "Okay, let's get this battle on!$" -Route115_Text_CyndyRematchDefeat: @ 829B71A +Route115_Text_CyndyRematchDefeat: .string "I can battle but my POKéMON…$" -Route115_Text_CyndyPostRematch: @ 829B737 +Route115_Text_CyndyPostRematch: .string "Even when I lose, I still get some\n" .string "enjoyment out of it.\l" .string "It must be that I love POKéMON.$" -Route115_Text_HectorIntro: @ 829B78F +Route115_Text_HectorIntro: .string "I have a rare POKéMON!\n" .string "Would you like me to show you?$" -Route115_Text_HectorDefeat: @ 829B7C5 +Route115_Text_HectorDefeat: .string "You…\n" .string "You want my POKéMON, don't you?$" -Route115_Text_HectorPostBattle: @ 829B7EA +Route115_Text_HectorPostBattle: .string "I have this rare POKéMON.\n" .string "It's enough to keep me satisfied.$" -Route115_Text_KyraIntro: @ 829B826 +Route115_Text_KyraIntro: .string "I'll battle while I'm running!\n" .string "Try to keep up with me!$" -Route115_Text_KyraDefeat: @ 829B85D +Route115_Text_KyraDefeat: .string "Gasp, gasp…$" -Route115_Text_KyraPostBattle: @ 829B869 +Route115_Text_KyraPostBattle: .string "I made the mistake of trying to battle\n" .string "while running!\p" .string "I should take a run to calm down…$" -Route115_Text_JaidenIntro: @ 829B8C1 +Route115_Text_JaidenIntro: .string "Take that!\n" .string "Ultra POKéMON ninja attack!$" -Route115_Text_JaidenDefeat: @ 829B8E8 +Route115_Text_JaidenDefeat: .string "Waaah!\n" .string "Our strategy failed!$" -Route115_Text_JaidenPostBattle: @ 829B904 +Route115_Text_JaidenPostBattle: .string "But my POKéMON were ultra,\n" .string "weren't they?$" -Route115_Text_HeleneIntro: @ 829B92D +Route115_Text_HeleneIntro: .string "My POKéMON have black belt-level\n" .string "strength!$" -Route115_Text_HeleneDefeat: @ 829B958 +Route115_Text_HeleneDefeat: .string "This is too humiliating!$" -Route115_Text_HelenePostBattle: @ 829B971 +Route115_Text_HelenePostBattle: .string "I rarely meet anyone who's better\n" .string "than me…\p" .string "I get it now!\n" .string "You're a GYM LEADER, aren't you?$" -Route115_Text_AlixIntro: @ 829B9CB +Route115_Text_AlixIntro: .string "Our eyes met!\n" .string "There's no getting away now!$" -Route115_Text_AlixDefeat: @ 829B9F6 +Route115_Text_AlixDefeat: .string "Gah!\n" .string "Not bad!$" -Route115_Text_AlixPostBattle: @ 829BA04 +Route115_Text_AlixPostBattle: .string "Oh, well.\n" .string "I think I will TELEPORT home.$" -Route115_Text_MarleneIntro: @ 829BA2C +Route115_Text_MarleneIntro: .string "You've disturbed my meditation…\n" .string "You'll be punished for it.$" -Route115_Text_MarleneDefeat: @ 829BA67 +Route115_Text_MarleneDefeat: .string "You've broken my concentration!$" -Route115_Text_MarlenePostBattle: @ 829BA87 +Route115_Text_MarlenePostBattle: .string "I was meditating with my POKéMON.\n" .string "But this place isn't very peaceful…$" -Route116_Text_ClarkIntro: @ 829BACD +Route116_Text_ClarkIntro: .string "If the tunnel doesn't go through, then\n" .string "I'll just go over the top.$" -Route116_Text_ClarkDefeat: @ 829BB0F +Route116_Text_ClarkDefeat: .string "Gasp… Gasp…\n" .string "Losing made me tired…$" -Route116_Text_ClarkPostBattle: @ 829BB31 +Route116_Text_ClarkPostBattle: .string "It's no big deal if there's no tunnel.\n" .string "To a HIKER, mountains are roads!$" -Route116_Text_JoeyIntro: @ 829BB79 +Route116_Text_JoeyIntro: .string "My POKéMON rule!\n" .string "Check them out!$" -Route116_Text_JoeyDefeat: @ 829BB9A +Route116_Text_JoeyDefeat: .string "Ouch! A scrape!\n" .string "I have to put on a bandage!$" -Route116_Text_JoeyPostBattle: @ 829BBC6 +Route116_Text_JoeyPostBattle: .string "Bandages are signs of toughness!\n" .string "I've got another one!$" -Route116_Text_JoseIntro: @ 829BBFD +Route116_Text_JoseIntro: .string "My BUG POKéMON are tough!\n" .string "Let's battle!$" -Route116_Text_JoseDefeat: @ 829BC25 +Route116_Text_JoseDefeat: .string "I lost!\n" .string "I thought I had you!$" -Route116_Text_JosePostBattle: @ 829BC42 +Route116_Text_JosePostBattle: .string "BUG POKéMON evolve quickly.\n" .string "So they get strong quickly, too.$" -Route116_Text_JaniceIntro: @ 829BC7F +Route116_Text_JaniceIntro: .string "Let me teach you how strong my\n" .string "adorable POKéMON is!$" -Route116_Text_JaniceDefeat: @ 829BCB3 +Route116_Text_JaniceDefeat: .string "You're a notch above me…$" -Route116_Text_JanicePostBattle: @ 829BCCC +Route116_Text_JanicePostBattle: .string "POKéMON that possess cuteness and\n" .string "power, that's ideal, I think.$" -Route116_Text_JerryIntro: @ 829BD0C +Route116_Text_JerryIntro: .string "We learn all sorts of things at the\n" .string "TRAINER'S SCHOOL.\p" .string "I want to test things out for real!$" -Route116_Text_JerryDefeat: @ 829BD66 +Route116_Text_JerryDefeat: .string "I slacked off in school…\n" .string "That's why I lost.$" -Route116_Text_JerryPostBattle: @ 829BD92 +Route116_Text_JerryPostBattle: .string "I'll have to redo some courses at\n" .string "the TRAINER'S SCHOOL.\l" .string "If I don't, ROXANNE will be steamed.$" -Route116_Text_JerryRegister1: @ 829BDEF +Route116_Text_JerryRegister1: .string "I learned at the TRAINER'S SCHOOL\n" .string "that a POKéNAV can register TRAINERS.\p" .string "I don't really get what that means,\n" .string "so can I just try it?$" -Route116_Text_JerryRegister2: @ 829BE71 +Route116_Text_JerryRegister2: .string "I learned at the TRAINER'S SCHOOL\n" .string "that a POKéNAV can register TRAINERS.\p" .string "I don't really get what that means,\n" .string "so can I just try it?$" -Route116_Text_JerryRematchIntro: @ 829BEF3 +Route116_Text_JerryRematchIntro: .string "I've been studying seriously at the\n" .string "TRAINER'S SCHOOL.\l" .string "I won't lose like I did last time.$" -Route116_Text_JerryRematchDefeat: @ 829BF4C +Route116_Text_JerryRematchDefeat: .string "Hunh?\n" .string "I studied diligently.$" -Route116_Text_JerryPostRematch: @ 829BF68 +Route116_Text_JerryPostRematch: .string "I'll have to redo some courses at\n" .string "the TRAINER'S SCHOOL.\l" .string "If I don't, ROXANNE will be steamed.$" -Route116_Text_KarenIntro: @ 829BFC5 +Route116_Text_KarenIntro: .string "I study at school, and I study on\n" .string "the way home, too!$" -Route116_Text_KarenDefeat: @ 829BFFA +Route116_Text_KarenDefeat: .string "I'm in shock--I lost?$" -Route116_Text_KarenPostBattle: @ 829C010 +Route116_Text_KarenPostBattle: .string "Awww, I'll never become an elegant\n" .string "TRAINER like ROXANNE this way!$" -Route116_Text_KarenRegister1: @ 829C052 +Route116_Text_KarenRegister1: .string "Oh, wow! Isn't that a POKéNAV?\n" .string "I have one, too! Please register me!$" -Route116_Text_KarenRegister2: @ 829C096 +Route116_Text_KarenRegister2: .string "Oh, wow! Isn't that a POKéNAV?\n" .string "I have one, too! Please register me!$" -Route116_Text_KarenRematchIntro: @ 829C0DA +Route116_Text_KarenRematchIntro: .string "I studied a whole lot since I saw you.\n" .string "You must see my achievements!$" -Route116_Text_KarenRematchDefeat: @ 829C11F +Route116_Text_KarenRematchDefeat: .string "I'm in shock.\n" .string "I lost again?$" -Route116_Text_KarenPostRematch: @ 829C13B +Route116_Text_KarenPostRematch: .string "You've beaten ROXANNE?\n" .string "I can't beat you, then. Not yet.$" -Route116_Text_SarahIntro: @ 829C173 +Route116_Text_SarahIntro: .string "Just so you know, I've never once been\n" .string "bested by anyone at anything.$" -Route116_Text_SarahDefeat: @ 829C1B8 +Route116_Text_SarahDefeat: .string "Oh, my goodness.\n" .string "This is a new experience for me.$" -Route116_Text_SarahPostBattle: @ 829C1EA +Route116_Text_SarahPostBattle: .string "My life of luxury affords me all that\n" .string "I could possibly desire.\p" .string "However, when it comes to POKéMON,\n" .string "my wealth has no meaning.$" -Route116_Text_DawsonIntro: @ 829C266 +Route116_Text_DawsonIntro: .string "When you lay your eyes on my POKéMON's\n" .string "gorgeous fur, their beauty will render\l" .string "you helpless!$" -Route116_Text_DawsonDefeat: @ 829C2C2 +Route116_Text_DawsonDefeat: .string "Oh, baby, say it isn't so!$" -Route116_Text_DawsonPostBattle: @ 829C2DD +Route116_Text_DawsonPostBattle: .string "Oh, no, no, no!\n" .string "You've mussed up my POKéMON's fur!\l" .string "You've ruined my hairdo, too!\l" .string "I'll have to call my stylist now!$" -Route116_Text_DevanIntro: @ 829C350 +Route116_Text_DevanIntro: .string "We'll rock you hard!$" -Route116_Text_DevanDefeat: @ 829C365 +Route116_Text_DevanDefeat: .string "Aiyiyi!\n" .string "No contest at all!$" -Route116_Text_DevanPostBattle: @ 829C380 +Route116_Text_DevanPostBattle: .string "I should try different POKéMON\n" .string "types, that's what I ought to do.$" -Route116_Text_JohnsonIntro: @ 829C3C1 +Route116_Text_JohnsonIntro: .string "It's a dead end up here.\n" .string "I'm bored, so can we battle?$" -Route116_Text_JohnsonDefeat: @ 829C3F7 +Route116_Text_JohnsonDefeat: .string "That was fun even though I lost.$" -Route116_Text_JohnsonPostBattle: @ 829C418 +Route116_Text_JohnsonPostBattle: .string "Want to stay here and keep\n" .string "me company?$" -Route117_Text_IsaacIntro: @ 829C43F +Route117_Text_IsaacIntro: .string "Listen, could I get you to battle\n" .string "the POKéMON I'm raising?$" -Route117_Text_IsaacDefeat: @ 829C47A +Route117_Text_IsaacDefeat: .string "You've raised yours superbly…$" -Route117_Text_IsaacPostBattle: @ 829C498 +Route117_Text_IsaacPostBattle: .string "POKéMON isn't all about power.\p" .string "Polishing a unique aspect of one's\n" .string "character is another way of enjoying\l" .string "POKéMON.$" -Route117_Text_IsaacRegister: @ 829C508 +Route117_Text_IsaacRegister: .string "I'm going to redouble my training.\n" .string "Would you come look in on us?$" -Route117_Text_IsaacRematchIntro: @ 829C549 +Route117_Text_IsaacRematchIntro: .string "The POKéMON I've been raising are\n" .string "looking good, just like before.$" -Route117_Text_IsaacRematchDefeat: @ 829C58B +Route117_Text_IsaacRematchDefeat: .string "You know how to raise them properly.\n" .string "You might have DAY CARE skills…$" -Route117_Text_IsaacPostRematch: @ 829C5D0 +Route117_Text_IsaacPostRematch: .string "Your POKéMON are growing good!\n" .string "You should enter them in CONTESTS.$" -Route117_Text_LydiaIntro: @ 829C612 +Route117_Text_LydiaIntro: .string "Please, allow me to evaluate if you\n" .string "have raised your POKéMON properly.$" -Route117_Text_LydiaDefeat: @ 829C659 +Route117_Text_LydiaDefeat: .string "Yes, they are growing properly.$" -Route117_Text_LydiaPostBattle: @ 829C679 +Route117_Text_LydiaPostBattle: .string "Try raising POKéMON with more\n" .string "attention to their character traits.$" -Route117_Text_LydiaRegister: @ 829C6BC +Route117_Text_LydiaRegister: .string "I'm glad I met a superb TRAINER in you.\n" .string "I hope to see you again.$" -Route117_Text_LydiaRematchIntro: @ 829C6FD +Route117_Text_LydiaRematchIntro: .string "Allow me to reevaluate if you have\n" .string "raised your POKéMON properly.$" -Route117_Text_LydiaRematchDefeat: @ 829C73E +Route117_Text_LydiaRematchDefeat: .string "They are growing admirably.$" -Route117_Text_LydiaPostRematch: @ 829C75A +Route117_Text_LydiaPostRematch: .string "POKéMON seem to like different kinds\n" .string "of {POKEBLOCK}S, depending on their nature.$" -Route117_Text_DylanIntro: @ 829C7A5 +Route117_Text_DylanIntro: .string "I'm in the middle of a triathlon, but,\n" .string "whatever, let's have a battle!$" -Route117_Text_DylanDefeat: @ 829C7EB +Route117_Text_DylanDefeat: .string "I ran out of energy!$" -Route117_Text_DylanPostBattle: @ 829C800 +Route117_Text_DylanPostBattle: .string "I may have blown it…\p" .string "I might have dropped to last during\n" .string "that battle…$" -Route117_Text_DylanRegister: @ 829C846 +Route117_Text_DylanRegister: .string "POKéMON have to be strong, too?\n" .string "I'd like you to train me!$" -Route117_Text_DylanRematchIntro: @ 829C880 +Route117_Text_DylanRematchIntro: .string "I'm smack in the middle of a triathlon,\n" .string "but I'm comfortably ahead.\l" .string "Let's make this a quick battle!$" -Route117_Text_DylanRematchDefeat: @ 829C8E3 +Route117_Text_DylanRematchDefeat: .string "I ran out of energy again!$" -Route117_Text_DylanPostRematch: @ 829C8FE +Route117_Text_DylanPostRematch: .string "I was tops in swimming and cycling,\n" .string "but I'm not quite that confident with\l" .string "POKéMON yet.$" -Route117_Text_MariaIntro: @ 829C955 +Route117_Text_MariaIntro: .string "I do my triathlon training with POKéMON,\n" .string "so I'm pretty confident about my speed.$" -Route117_Text_MariaDefeat: @ 829C9A6 +Route117_Text_MariaDefeat: .string "I need to get more practices in,\n" .string "I guess.$" -Route117_Text_MariaPostBattle: @ 829C9D0 +Route117_Text_MariaPostBattle: .string "Training is meaningful only if you\n" .string "keep it up regularly.\p" .string "Okay! I'll resume my training!\n" .string "Tomorrow!$" -Route117_Text_MariaRegister: @ 829CA32 +Route117_Text_MariaRegister: .string "You appear to be training properly…\n" .string "If you'd like, I'll battle you later!$" -Route117_Text_MariaRematchIntro: @ 829CA7C +Route117_Text_MariaRematchIntro: .string "Are you keeping up with your training?\n" .string "I sure am!\l" .string "Let me show you the evidence!$" -Route117_Text_MariaRematchDefeat: @ 829CACC +Route117_Text_MariaRematchDefeat: .string "I need to get more practices in,\n" .string "I guess.$" -Route117_Text_MariaPostRematch: @ 829CAF6 +Route117_Text_MariaPostRematch: .string "I'll resume training tomorrow.\n" .string "Let's battle again sometime!$" -Route117_Text_DerekIntro: @ 829CB32 +Route117_Text_DerekIntro: .string "Once a BUG CATCHER!\n" .string "And now a BUG MANIAC!\p" .string "But my love for POKéMON remains\n" .string "unchanged!$" -Route117_Text_DerekDefeat: @ 829CB87 +Route117_Text_DerekDefeat: .string "My ineptitude also remains\n" .string "unchanged…$" -Route117_Text_DerekPostBattle: @ 829CBAD +Route117_Text_DerekPostBattle: .string "All I did was follow my heart, and now\n" .string "they call me a BUG MANIAC…\p" .string "Still, I am an expert on BUG POKéMON,\n" .string "so it's only natural that they call me\l" .string "a BUG MANIAC.$" -Route117_Text_AnnaIntro: @ 829CC4A +Route117_Text_AnnaIntro: .string "ANNA: I'm with my pretty junior student\n" .string "partner. I have to do good!$" -Route117_Text_AnnaDefeat: @ 829CC8E +Route117_Text_AnnaDefeat: .string "ANNA: I'm with my pretty junior student\n" .string "partner! Let me win!$" -Route117_Text_AnnaPostBattle: @ 829CCCB +Route117_Text_AnnaPostBattle: .string "ANNA: Your POKéMON have some good\n" .string "combinations.\p" .string "I'd say you're second only to us!$" -Route117_Text_AnnaAndMegRegister: @ 829CD1D +Route117_Text_AnnaAndMegRegister: .string "ANNA: We can't take this lying down!\n" .string "You will come back, won't you?$" -Route117_Text_AnnaNotEnoughMons: @ 829CD61 +Route117_Text_AnnaNotEnoughMons: .string "ANNA: If you want to battle us,\n" .string "bring two POKéMON with you.$" -Route117_Text_MegIntro: @ 829CD9D +Route117_Text_MegIntro: .string "MEG: I'm going to tag up with my super\n" .string "senior student partner and beat you!$" -Route117_Text_MegDefeat: @ 829CDE9 +Route117_Text_MegDefeat: .string "MEG: Oh, no!\n" .string "I'm sorry, ANNA! I let you down…$" -Route117_Text_MegPostBattle: @ 829CE17 +Route117_Text_MegPostBattle: .string "MEG: I dragged ANNA down…\n" .string "If I didn't, she would have won!$" -Route117_Text_MegNotEnoughMons: @ 829CE52 +Route117_Text_MegNotEnoughMons: .string "MEG: Do you only have one POKéMON?\n" .string "We can't battle with you, then.\p" .string "We want to have a 2-on-2 battle.$" -Route117_Text_AnnaRematchIntro: @ 829CEB6 +Route117_Text_AnnaRematchIntro: .string "ANNA: I can't keep losing in front of\n" .string "my junior partner, right?$" -Route117_Text_AnnaRematchDefeat: @ 829CEF6 +Route117_Text_AnnaRematchDefeat: .string "ANNA: I couldn't get into the groove.$" -Route117_Text_AnnaPostRematch: @ 829CF1C +Route117_Text_AnnaPostRematch: .string "ANNA: Your POKéMON have some good\n" .string "combinations.\p" .string "I'd say you're second only to us!$" -Route117_Text_AnnaRematchNotEnoughMons: @ 829CF6E +Route117_Text_AnnaRematchNotEnoughMons: .string "ANNA: If you want to battle us,\n" .string "bring two POKéMON with you.$" -Route117_Text_MegRematchIntro: @ 829CFAA +Route117_Text_MegRematchIntro: .string "MEG: I'm going to tag up with my\n" .string "senior partner and win this time!$" -Route117_Text_MegRematchDefeat: @ 829CFED +Route117_Text_MegRematchDefeat: .string "MEG: Too strong!$" -Route117_Text_MegPostRematch: @ 829CFFE +Route117_Text_MegPostRematch: .string "MEG: I battled together with my\n" .string "senior partner, but we lost…\p" .string "That's so discouraging…$" -Route117_Text_MegRematchNotEnoughMons: @ 829D053 +Route117_Text_MegRematchNotEnoughMons: .string "MEG: Do you only have one POKéMON?\n" .string "We can't battle with you, then.\p" .string "We want to have a 2-on-2 battle.$" -Route117_Text_MelinaIntro: @ 829D0B7 +Route117_Text_MelinaIntro: .string "Isn't it nice? To battle while looking\n" .string "at pretty flowers?$" -Route117_Text_MelinaDefeat: @ 829D0F1 +Route117_Text_MelinaDefeat: .string "Oh, that's quite impressive!$" -Route117_Text_MelinaPostBattle: @ 829D10E +Route117_Text_MelinaPostBattle: .string "It feels wonderful to go for a jog\n" .string "while looking at flowers.$" -Route117_Text_BrandiIntro: @ 829D14B +Route117_Text_BrandiIntro: .string "Let me demonstrate the power\n" .string "hidden within a PSYCHIC POKéMON!$" -Route117_Text_BrandiDefeat: @ 829D189 +Route117_Text_BrandiDefeat: .string "Astonishing!$" -Route117_Text_BrandiPostBattle: @ 829D196 +Route117_Text_BrandiPostBattle: .string "PSYCHIC POKéMON are complex.\n" .string "You should try catching some.$" -Route117_Text_AishaIntro: @ 829D1D1 +Route117_Text_AishaIntro: .string "Concentrate on getting the win.\n" .string "That's how I battle!$" -Route117_Text_AishaDefeat: @ 829D206 +Route117_Text_AishaDefeat: .string "I don't waste any time being angry\n" .string "over a loss--I would rather train.$" -Route117_Text_AishaPostBattle: @ 829D24C +Route117_Text_AishaPostBattle: .string "I think that if you worry about losing,\n" .string "you're more likely to lose.$" -Route118_Text_RoseIntro: @ 829D290 +Route118_Text_RoseIntro: .string "The aroma of flowers has a magical\n" .string "power. It cleanses us body and soul.$" -Route118_Text_RoseDefeat: @ 829D2D8 +Route118_Text_RoseDefeat: .string "Oh, dear me.\n" .string "I seem to have lost.$" -Route118_Text_RosePostBattle: @ 829D2FA +Route118_Text_RosePostBattle: .string "Flowers, POKéMON…\n" .string "I love whatever smells nice.\p" .string "Stinky things…\n" .string "I'll pass.$" -Route118_Text_RoseRegister: @ 829D343 +Route118_Text_RoseRegister: .string "Sniff… That odor--it's a POKéNAV!\n" .string "We must register each other!$" -Route118_Text_RoseRematchIntro: @ 829D382 +Route118_Text_RoseRematchIntro: .string "Were you drawn here by the sweet\n" .string "aroma?$" -Route118_Text_RoseRematchDefeat: @ 829D3AA +Route118_Text_RoseRematchDefeat: .string "The power of aroma…\n" .string "It didn't seem to do much.$" -Route118_Text_RosePostRematch: @ 829D3D9 +Route118_Text_RosePostRematch: .string "If you use a sweet aroma properly,\n" .string "POKéMON will be attracted by it.$" -Route118_Text_PerryIntro: @ 829D41D +Route118_Text_PerryIntro: .string "BIRD POKéMON that FLY elegantly in\n" .string "the sky… They're the best!$" -Route118_Text_PerryDefeat: @ 829D45B +Route118_Text_PerryDefeat: .string "Urgh…\n" .string "I crashed…$" -Route118_Text_PerryPostBattle: @ 829D46C +Route118_Text_PerryPostBattle: .string "You've got great POKéMON.\n" .string "I'll have to train mine better.$" -Route118_Text_ChesterIntro: @ 829D4A6 +Route118_Text_ChesterIntro: .string "Take flight!\n" .string "My BIRD POKéMON!$" -Route118_Text_ChesterDefeat: @ 829D4C4 +Route118_Text_ChesterDefeat: .string "They did take flight…$" -Route118_Text_ChesterPostBattle: @ 829D4DA +Route118_Text_ChesterPostBattle: .string "If they'd get stronger, they'd be able\n" .string "to fly more freely…$" -Route118_Text_BarnyIntro: @ 829D515 +Route118_Text_BarnyIntro: .string "I'm a FISHERMAN, but also a TRAINER.\n" .string "I'm raising the POKéMON I caught.$" -Route118_Text_BarnyDefeat: @ 829D55C +Route118_Text_BarnyDefeat: .string "I thought I was doing okay in my\n" .string "training…$" -Route118_Text_BarnyPostBattle: @ 829D587 +Route118_Text_BarnyPostBattle: .string "I couldn't win by training POKéMON\n" .string "while I fished…\p" .string "Was I doing things in half measures?$" -Route118_Text_WadeIntro: @ 829D5DF +Route118_Text_WadeIntro: .string "For FISHERMEN, equipment is the key.\p" .string "But for TRAINERS, the key ingredients\n" .string "are POKéMON and heart, of course!$" -Route118_Text_WadeDefeat: @ 829D64C +Route118_Text_WadeDefeat: .string "I was beaten in heart?$" -Route118_Text_WadePostBattle: @ 829D663 +Route118_Text_WadePostBattle: .string "Come to think of it, fishing is a battle\n" .string "between a FISHERMAN and a POKéMON.$" -Route118_Text_DaltonIntro: @ 829D6AF +Route118_Text_DaltonIntro: .string "Let my melody rock your soul!$" -Route118_Text_DaltonDefeat: @ 829D6CD +Route118_Text_DaltonDefeat: .string "La-lalala…$" -Route118_Text_DaltonPostBattle: @ 829D6D8 +Route118_Text_DaltonPostBattle: .string "An electric guitar doesn't always\n" .string "have to be noisy…\p" .string "It can be strummed to squeeze out\n" .string "this heart-stirring melody…$" -Route118_Text_DaltonRegister: @ 829D74A +Route118_Text_DaltonRegister: .string "When I compose better melodies,\n" .string "you have to come listen, okay?$" -Route118_Text_DaltonRematchIntro: @ 829D789 +Route118_Text_DaltonRematchIntro: .string "A melody from my POKéMON and me…\n" .string "Let us deliver it to your soul.$" -Route118_Text_DaltonRematchDefeat: @ 829D7CA +Route118_Text_DaltonRematchDefeat: .string "La-lalala…$" -Route118_Text_DaltonPostRematch: @ 829D7D5 +Route118_Text_DaltonPostRematch: .string "When I play, my emotions should reach\n" .string "you through my electric guitar…$" -Route118_Text_DeandreIntro: @ 829D81B +Route118_Text_DeandreIntro: .string "Go, go, go!\n" .string "POKéMON 1, 2, and 3!$" -Route118_Text_DeandreDefeat: @ 829D83C +Route118_Text_DeandreDefeat: .string "Come in, POKéMON! Are you okay?\n" .string "POKéMON 1, 2, and 3?!$" -Route118_Text_DeandrePostBattle: @ 829D872 +Route118_Text_DeandrePostBattle: .string "Isn't it cool that I have a POKéMON\n" .string "battle team?\p" .string "You can copy me--I don't mind!$" -Route119_Text_BrentIntro: @ 829D8C2 +Route119_Text_BrentIntro: .string "We're the MIMIC CIRCLE!\n" .string "We MIMIC what you do!$" -Route119_Text_BrentDefeat: @ 829D8F0 +Route119_Text_BrentDefeat: .string "Whoopsie!\n" .string "I lost!$" -Route119_Text_BrentPostBattle: @ 829D902 +Route119_Text_BrentPostBattle: .string "What's so good about mimicry?\p" .string "Fufufu…\n" .string "You'll never understand…$" -Route119_Text_DonaldIntro: @ 829D941 +Route119_Text_DonaldIntro: .string "So, we finally meet!\n" .string "My BUG POKéMON will keep you company!$" -Route119_Text_DonaldDefeat: @ 829D97C +Route119_Text_DonaldDefeat: .string "I wish we'd never met…$" -Route119_Text_DonaldPostBattle: @ 829D993 +Route119_Text_DonaldPostBattle: .string "I want to MIMIC you some more.\n" .string "Can you hurry up and move?$" -Route119_Text_TaylorIntro: @ 829D9CD +Route119_Text_TaylorIntro: .string "If you step forward, we step forward.\p" .string "If you turn right, we turn, too…$" -Route119_Text_TaylorDefeat: @ 829DA14 +Route119_Text_TaylorDefeat: .string "But if you win, I lose…$" -Route119_Text_TaylorPostBattle: @ 829DA2C +Route119_Text_TaylorPostBattle: .string "I can't MIMIC you winning the match.\n" .string "That's just impossible…\l" .string "It's burning me up…$" -Route119_Text_DougIntro: @ 829DA7D +Route119_Text_DougIntro: .string "Yep, you've finally caught me!\n" .string "Or were you trying to avoid me?$" -Route119_Text_DougDefeat: @ 829DABC +Route119_Text_DougDefeat: .string "Whoop, that was a great match!$" -Route119_Text_DougPostBattle: @ 829DADB +Route119_Text_DougPostBattle: .string "We're the MIMIC CIRCLE!\n" .string "I hope you enjoyed our performance.$" -Route119_Text_GregIntro: @ 829DB17 +Route119_Text_GregIntro: .string "You don't know who I am, do you?\p" .string "But, I also don't know you.\n" .string "So, we'll battle!$" -Route119_Text_GregDefeat: @ 829DB66 +Route119_Text_GregDefeat: .string "You're pretty strong!$" -Route119_Text_GregPostBattle: @ 829DB7C +Route119_Text_GregPostBattle: .string "Until you go away somewhere, we'll\n" .string "keep on mimicking your every move.$" -Route119_Text_KentIntro: @ 829DBC2 +Route119_Text_KentIntro: .string "The MIMIC CIRCLE was formed by people\n" .string "who like to MIMIC.\p" .string "A battle starts the instant we meet!$" -Route119_Text_KentDefeat: @ 829DC20 +Route119_Text_KentDefeat: .string "I give up!$" -Route119_Text_KentPostBattle: @ 829DC2B +Route119_Text_KentPostBattle: .string "Won't you join our MIMIC CIRCLE?$" -Route119_Text_JacksonIntro: @ 829DC4C +Route119_Text_JacksonIntro: .string "Who has the knowledge and\n" .string "the technique for survival?\p" .string "POKéMON RANGERS, that's who!$" -Route119_Text_JacksonDefeat: @ 829DC9F +Route119_Text_JacksonDefeat: .string "I didn't have enough POKéMON\n" .string "know-how…$" -Route119_Text_JacksonPostBattle: @ 829DCC6 +Route119_Text_JacksonPostBattle: .string "To break away from civilization and\n" .string "awaken the wild spirit within!\p" .string "That's our vision.$" -Route119_Text_JacksonRegister: @ 829DD1C +Route119_Text_JacksonRegister: .string "I hope you'll give me a rematch without\n" .string "mocking my lack of knowledge.$" -Route119_Text_JacksonRematchIntro: @ 829DD62 +Route119_Text_JacksonRematchIntro: .string "I'm going to regain my wild spirit by\n" .string "being together with POKéMON.$" -Route119_Text_JacksonRematchDefeat: @ 829DDA5 +Route119_Text_JacksonRematchDefeat: .string "You've remained strong!$" -Route119_Text_JacksonPostRematch: @ 829DDBD +Route119_Text_JacksonPostRematch: .string "Believe in your POKéMON.\n" .string "Believe in yourself.\p" .string "The road will reveal itself to you.$" -Route119_Text_CatherineIntro: @ 829DE0F +Route119_Text_CatherineIntro: .string "Oh? Look at you.\p" .string "For someone on an adventure,\n" .string "you're traveling awfully light.$" -Route119_Text_CatherineDefeat: @ 829DE5D +Route119_Text_CatherineDefeat: .string "Accidents happen when you're not\n" .string "prepared!$" -Route119_Text_CatherinePostBattle: @ 829DE88 +Route119_Text_CatherinePostBattle: .string "You're traveling light but you have\n" .string "everything you need.\p" .string "You're on top of things mentally and\n" .string "physically, too.$" -Route119_Text_CatherineRegister: @ 829DEF7 +Route119_Text_CatherineRegister: .string "Do you have a POKéNAV?\n" .string "It's a must-have tool for any TRAINER.\p" .string "Oh, you do have one!\n" .string "Let's register each other, then!$" -Route119_Text_CatherineRematchIntro: @ 829DF6B +Route119_Text_CatherineRematchIntro: .string "How's your journey with POKéMON\n" .string "going?$" -Route119_Text_CatherineRematchDefeat: @ 829DF92 +Route119_Text_CatherineRematchDefeat: .string "I'm still missing something…$" -Route119_Text_CatherinePostRematch: @ 829DFAF +Route119_Text_CatherinePostRematch: .string "In the same way that you, as a TRAINER,\n" .string "rely on your POKéMON, your POKéMON\l" .string "rely on you.$" -Route119_Text_HughIntro: @ 829E007 +Route119_Text_HughIntro: .string "The vast sky holds untold promise!\p" .string "Nothing can compare to the sheer\n" .string "exhilaration of flight!$" -Route119_Text_HughDefeat: @ 829E063 +Route119_Text_HughDefeat: .string "Down and out!$" -Route119_Text_HughPostBattle: @ 829E071 +Route119_Text_HughPostBattle: .string "My BIRD POKéMON made my dreams of\n" .string "flying come true!$" -Route119_Text_PhilIntro: @ 829E0A5 +Route119_Text_PhilIntro: .string "I'll show you the true potential of me\n" .string "and my BIRD POKéMON!$" -Route119_Text_PhilDefeat: @ 829E0E1 +Route119_Text_PhilDefeat: .string "We lacked potential…$" -Route119_Text_PhilPostBattle: @ 829E0F6 +Route119_Text_PhilPostBattle: .string "Ever since I was a little kid, I always\n" .string "admired BIRD POKéMON…$" -Route119_Text_YasuIntro: @ 829E134 +Route119_Text_YasuIntro: .string "To lurk in shadows, and live in\n" .string "darkness… That is my destiny.\p" .string "I emerge to challenge you!$" -Route119_Text_YasuDefeat: @ 829E18D +Route119_Text_YasuDefeat: .string "I admit defeat!$" -Route119_Text_YasuPostBattle: @ 829E19D +Route119_Text_YasuPostBattle: .string "Those defeated in battle withdraw\n" .string "quietly back into the shadows.\l" .string "That, too, is destiny…$" -Route119_Text_TakashiIntro: @ 829E1F5 +Route119_Text_TakashiIntro: .string "If you're not on your guard,\n" .string "you're in for some pain!$" -Route119_Text_TakashiDefeat: @ 829E22B +Route119_Text_TakashiDefeat: .string "You're surprisingly good!$" -Route119_Text_TakashiPostBattle: @ 829E245 +Route119_Text_TakashiPostBattle: .string "My surprise attack ended in\n" .string "failure…$" -Route119_Text_HideoIntro: @ 829E26A +Route119_Text_HideoIntro: .string "To hide a tree, use a forest!$" -Route119_Text_HideoDefeat: @ 829E288 +Route119_Text_HideoDefeat: .string "I bow to your superiority.$" -Route119_Text_HideoPostBattle: @ 829E2A3 +Route119_Text_HideoPostBattle: .string "To hide a tree, use a forest!\n" .string "To hide a POKéMON, use a POKéMON!\p" .string "There is no deep, hidden meaning\n" .string "to that.$" -Route119_Text_ChrisIntro: @ 829E30D +Route119_Text_ChrisIntro: .string "You spoke to me…\n" .string "So you want to challenge me!\p" .string "Sure! I'll try out the POKéMON I caught\n" .string "while SURFING!$" -Route119_Text_ChrisDefeat: @ 829E372 +Route119_Text_ChrisDefeat: .string "I don't have a clue about what it\n" .string "takes to win.$" -Route119_Text_ChrisPostBattle: @ 829E3A2 +Route119_Text_ChrisPostBattle: .string "Go for a SURF on my POKéMON…\p" .string "Then fish off its back…\p" .string "It's an indescribably luxuriant moment!$" -Route119_Text_FabianIntro: @ 829E3FF +Route119_Text_FabianIntro: .string "Hit me with a power chord!\n" .string "Victory is mine!\l" .string "It's our time to shine, whoa, yeah!$" -Route119_Text_FabianDefeat: @ 829E44F +Route119_Text_FabianDefeat: .string "You showed me who's the boss!\n" .string "We'll have to take the loss, oh, no!$" -Route119_Text_FabianPostBattle: @ 829E492 +Route119_Text_FabianPostBattle: .string "Hit me with another power chord!\n" .string "Leave me alone!\l" .string "Your win you have to atone!$" -Route119_Text_DaytonIntro: @ 829E4DF +Route119_Text_DaytonIntro: .string "Hohoho!\n" .string "I like kid TRAINERS!\l" .string "Let's have a good one!$" -Route119_Text_DaytonDefeat: @ 829E513 +Route119_Text_DaytonDefeat: .string "You're pretty amazing!\n" .string "Hohoho!$" -Route119_Text_DaytonPostBattle: @ 829E532 +Route119_Text_DaytonPostBattle: .string "Hohoho!\n" .string "I'll try emulating the pep of kid\l" .string "TRAINERS like you!$" -Route119_Text_RachelIntro: @ 829E56F +Route119_Text_RachelIntro: .string "Wherever and whenever I may be,\n" .string "I always have my parasol in hand.$" -Route119_Text_RachelDefeat: @ 829E5B1 +Route119_Text_RachelDefeat: .string "Oh, but…\n" .string "That's not fair.$" -Route119_Text_RachelPostBattle: @ 829E5CB +Route119_Text_RachelPostBattle: .string "You're asking if my parasol is heavy?\n" .string "Your BAG is filled with more junk than\l" .string "I ever carry around.$" -Route120_Text_ColinIntro: @ 829E62D +Route120_Text_ColinIntro: .string "Do you have any moves that can strike\n" .string "a flying POKéMON?$" -Route120_Text_ColinDefeat: @ 829E665 +Route120_Text_ColinDefeat: .string "You soared above me!$" -Route120_Text_ColinPostBattle: @ 829E67A +Route120_Text_ColinPostBattle: .string "The move FLY is convenient,\n" .string "don't you think?\p" .string "While the POKéMON is flying,\n" .string "almost no moves can strike it.$" -Route120_Text_RobertIntro: @ 829E6E3 +Route120_Text_RobertIntro: .string "My POKéMON is strong!\n" .string "How about yours?$" -Route120_Text_RobertDefeat: @ 829E70A +Route120_Text_RobertDefeat: .string "Your POKéMON were stronger…$" -Route120_Text_RobertPostBattle: @ 829E726 +Route120_Text_RobertPostBattle: .string "A POKéMON that grows steadily is one\n" .string "you can count on.$" -Route120_Text_RobertRegister: @ 829E75D +Route120_Text_RobertRegister: .string "You can be counted on to get better.\n" .string "I'd like to register you in my POKéNAV!$" -Route120_Text_RobertRematchIntro: @ 829E7AA +Route120_Text_RobertRematchIntro: .string "A POKéMON that grows steadily is one\n" .string "you can count on.$" -Route120_Text_RobertRematchDefeat: @ 829E7E1 +Route120_Text_RobertRematchDefeat: .string "Your POKéMON are seriously strong.$" -Route120_Text_RobertPostRematch: @ 829E804 +Route120_Text_RobertPostRematch: .string "My POKéMON are growing stronger.\n" .string "I have to grow stronger, too.$" -Route120_Text_LorenzoIntro: @ 829E843 +Route120_Text_LorenzoIntro: .string "I'll check your POKéMON and see if\n" .string "they're fit for the outdoors.$" -Route120_Text_LorenzoDefeat: @ 829E884 +Route120_Text_LorenzoDefeat: .string "With POKéMON that strong, you're in\n" .string "no danger of needing rescue!$" -Route120_Text_LorenzoPostBattle: @ 829E8C5 +Route120_Text_LorenzoPostBattle: .string "To travel wherever your heart desires\n" .string "with POKéMON…\l" .string "That's the joy of being a TRAINER.$" -Route120_Text_JennaIntro: @ 829E91C +Route120_Text_JennaIntro: .string "How's your physical fitness?\n" .string "If you're not fit, you could have a\l" .string "rough time in critical situations.$" -Route120_Text_JennaDefeat: @ 829E980 +Route120_Text_JennaDefeat: .string "I'm totally fit, but…$" -Route120_Text_JennaPostBattle: @ 829E996 +Route120_Text_JennaPostBattle: .string "Fitness training is in my routine.\n" .string "I always run with my POKéMON.$" -Route120_Text_JeffreyIntro: @ 829E9D7 +Route120_Text_JeffreyIntro: .string "… … … … … …\n" .string "… … … … … …\l" .string "Want to battle?$" -Route120_Text_JeffreyDefeat: @ 829E9FF +Route120_Text_JeffreyDefeat: .string "Lost it…$" -Route120_Text_JeffreyPostBattle: @ 829EA08 +Route120_Text_JeffreyPostBattle: .string "… … … … … …\n" .string "… … … … … …\l" .string "I'll try harder…$" -Route120_Text_JeffreyRegister: @ 829EA31 +Route120_Text_JeffreyRegister: .string "… … … … … …\n" .string "… … … … … …\l" .string "Do you have a POKéNAV…?$" -Route120_Text_JeffreyRematchIntro: @ 829EA61 +Route120_Text_JeffreyRematchIntro: .string "… … … … … …\n" .string "… … … … … …\l" .string "Want to battle again?$" -Route120_Text_JeffreyRematchDefeat: @ 829EA8F +Route120_Text_JeffreyRematchDefeat: .string "… … … … … …\n" .string "I lost again…$" -Route120_Text_JeffreyPostRematch: @ 829EAA9 +Route120_Text_JeffreyPostRematch: .string "… … … … … …\n" .string "… … … … … …\l" .string "I'll try harder…\l" .string "For my precious BUG POKéMON…$" -Route120_Text_JenniferIntro: @ 829EAEF +Route120_Text_JenniferIntro: .string "POKéMON have many special abilities.\n" .string "If you want to become a first-class\l" .string "TRAINER, learn about them.$" -Route120_Text_JenniferDefeat: @ 829EB53 +Route120_Text_JenniferDefeat: .string "You're obviously thinking.$" -Route120_Text_JenniferPostBattle: @ 829EB6E +Route120_Text_JenniferPostBattle: .string "The special abilities of POKéMON\n" .string "will make battle styles change.$" -Route120_Text_ChipIntro: @ 829EBAF +Route120_Text_ChipIntro: .string "Who might you be?\p" .string "Are you perhaps searching for ancient\n" .string "ruins that are rumored to possibly\l" .string "exist according to legend?$" -Route120_Text_ChipDefeat: @ 829EC25 +Route120_Text_ChipDefeat: .string "What a disgraceful setback…$" -Route120_Text_ChipPostBattle: @ 829EC41 +Route120_Text_ChipPostBattle: .string "That giant rock… I would like to\n" .string "believe it may indeed contain ancient\l" .string "ruins. But I see no entrance.$" -Route120_Text_ClarissaIntro: @ 829ECA6 +Route120_Text_ClarissaIntro: .string "Why am I carrying this parasol?\p" .string "I'll tell you if you can win against me.$" -Route120_Text_ClarissaDefeat: @ 829ECEF +Route120_Text_ClarissaDefeat: .string "A parasol can't ward off POKéMON\n" .string "attacks…$" -Route120_Text_ClarissaPostBattle: @ 829ED19 +Route120_Text_ClarissaPostBattle: .string "I don't think strong sunlight is good\n" .string "for my POKéMON.\l" .string "So I shield them with my parasol.$" -Route120_Text_AngelicaIntro: @ 829ED71 +Route120_Text_AngelicaIntro: .string "Me, POKéMON, and my parasol…\p" .string "If any one of them is missing,\n" .string "the picture of beauty will be ruined.$" -Route120_Text_AngelicaDefeat: @ 829EDD3 +Route120_Text_AngelicaDefeat: .string "You've completely ruined my beauty…$" -Route120_Text_AngelicaPostBattle: @ 829EDF7 +Route120_Text_AngelicaPostBattle: .string "A parasol wouldn't suit you at all.\p" .string "Why, something like this would only\n" .string "get in your way.$" -Route120_Text_KeigoIntro: @ 829EE50 +Route120_Text_KeigoIntro: .string "I will adopt the movements of POKéMON\n" .string "and create new ninja techniques.$" -Route120_Text_KeigoDefeat: @ 829EE97 +Route120_Text_KeigoDefeat: .string "The creation of new ninja techniques\n" .string "is but a distant dream…$" -Route120_Text_KeigoPostBattle: @ 829EED4 +Route120_Text_KeigoPostBattle: .string "Perhaps I ought to apprentice under\n" .string "a ninja sensei.$" -Route120_Text_RileyIntro: @ 829EF08 +Route120_Text_RileyIntro: .string "We ninja conceal ourselves under our\n" .string "camouflage cloaks.\l" .string "I bet you didn't know where I was!$" -Route120_Text_RileyDefeat: @ 829EF63 +Route120_Text_RileyDefeat: .string "I lost!\n" .string "I should camouflage my shame!$" -Route120_Text_RileyPostBattle: @ 829EF89 +Route120_Text_RileyPostBattle: .string "Our camouflage cloaks are all\n" .string "handmade.$" -Route120_Text_CallieIntro: @ 829EFB1 +Route120_Text_CallieIntro: .string "If you don't pay attention,\n" .string "you could get hurt!$" -Route120_Text_CallieDefeat: @ 829EFE1 +Route120_Text_CallieDefeat: .string "Ouch!\n" .string "I was the one to get hurt.$" -Route120_Text_CalliePostBattle: @ 829F002 +Route120_Text_CalliePostBattle: .string "I wonder… Should I evolve my POKéMON?\n" .string "They're cute the way they are, though.$" -Route120_Text_LeonelIntro: @ 829F04F +Route120_Text_LeonelIntro: .string "Your party POKéMON…\n" .string "Do you have different types?$" -Route120_Text_LeonelDefeat: @ 829F080 +Route120_Text_LeonelDefeat: .string "I've seen your policy in action!$" -Route120_Text_LeonelPostBattle: @ 829F0A1 +Route120_Text_LeonelPostBattle: .string "I think it's awesome you're so strong\n" .string "battling with your favorite POKéMON.$" -Route121_Text_VanessaIntro: @ 829F0EC +Route121_Text_VanessaIntro: .string "Will you play with my delightfully\n" .string "pretty POKéMON?$" -Route121_Text_VanessaDefeat: @ 829F11F +Route121_Text_VanessaDefeat: .string "This isn't what I meant!$" -Route121_Text_VanessaPostBattle: @ 829F138 +Route121_Text_VanessaPostBattle: .string "I'm going to a CONTEST in LILYCOVE.\p" .string "My POKéMON should have no problem\n" .string "sweeping the MASTER CLASS.$" -Route121_Text_WalterIntro: @ 829F199 +Route121_Text_WalterIntro: .string "With my POKéMON, I have traveled\n" .string "to the world's four corners.\p" .string "You might say I have some confidence\n" .string "in my abilities.$" -Route121_Text_WalterDefeat: @ 829F20D +Route121_Text_WalterDefeat: .string "Ah, well played.$" -Route121_Text_WalterPostBattle: @ 829F21E +Route121_Text_WalterPostBattle: .string "I would like to circle the globe once\n" .string "again with my POKéMON.$" -Route121_Text_WalterRegister: @ 829F25B +Route121_Text_WalterRegister: .string "Your POKéMON prowess is remarkable.\n" .string "Allow me to register you as a memento.$" -Route121_Text_WalterRematchIntro: @ 829F2A6 +Route121_Text_WalterRematchIntro: .string "With my POKéMON, I have traveled\n" .string "to the world's four corners.\p" .string "You might say I have some confidence\n" .string "in my abilities.$" -Route121_Text_WalterRematchDefeat: @ 829F31A +Route121_Text_WalterRematchDefeat: .string "Ah, well played.$" -Route121_Text_WalterPostRematch: @ 829F32B +Route121_Text_WalterPostRematch: .string "Your POKéMON and you…\p" .string "Your prowess together will be\n" .string "considered strong, even overseas.$" -Route121_Text_TammyIntro: @ 829F381 +Route121_Text_TammyIntro: .string "There are powers beyond our\n" .string "understanding in the world…$" -Route121_Text_TammyDefeat: @ 829F3B9 +Route121_Text_TammyDefeat: .string "I have lost…$" -Route121_Text_TammyPostBattle: @ 829F3C6 +Route121_Text_TammyPostBattle: .string "MT. PYRE…\n" .string "There is a mysterious power\l" .string "at work there…$" -Route121_Text_KateIntro: @ 829F3FB +Route121_Text_KateIntro: .string "KATE: Together, we're fearless!\n" .string "We'll demonstrate how tough we are!$" -Route121_Text_KateDefeat: @ 829F43F +Route121_Text_KateDefeat: .string "KATE: I blew it in front of my junior\n" .string "student partner…$" -Route121_Text_KatePostBattle: @ 829F476 +Route121_Text_KatePostBattle: .string "KATE: When someone's relying on me,\n" .string "I get this urge to look cool in front\l" .string "of them…$" -Route121_Text_KateNotEnoughMons: @ 829F4C9 +Route121_Text_KateNotEnoughMons: .string "KATE: If you've only got one POKéMON,\n" .string "we can't battle with you.\p" .string "That would be bullying.$" -Route121_Text_JoyIntro: @ 829F521 +Route121_Text_JoyIntro: .string "JOY: Together, we're fearless!\n" .string "We'll demonstrate how tough we are!$" -Route121_Text_JoyDefeat: @ 829F564 +Route121_Text_JoyDefeat: .string "JOY: Please forgive me, KATE!$" -Route121_Text_JoyPostBattle: @ 829F582 +Route121_Text_JoyPostBattle: .string "JOY: Ehehe, I'll have to train with KATE,\n" .string "my senior student partner, again.$" -Route121_Text_JoyNotEnoughMons: @ 829F5CE +Route121_Text_JoyNotEnoughMons: .string "JOY: You need at least two POKéMON\n" .string "if you're going to challenge us!$" -Route121_Text_JessicaIntro: @ 829F612 +Route121_Text_JessicaIntro: .string "Stop! Have a good look at my precious\n" .string "POKéMON!$" -Route121_Text_JessicaDefeat: @ 829F641 +Route121_Text_JessicaDefeat: .string "Oh, how dare you!\n" .string "Don't take it so seriously!$" -Route121_Text_JessicaPostBattle: @ 829F66F +Route121_Text_JessicaPostBattle: .string "Maybe I'll go catch more POKéMON at\n" .string "the SAFARI.$" -Route121_Text_JessicaRegister: @ 829F69F +Route121_Text_JessicaRegister: .string "I took it easy on you this time!\n" .string "It won't be that way the next time!$" -Route121_Text_JessicaRematchIntro: @ 829F6E4 +Route121_Text_JessicaRematchIntro: .string "My precious POKéMON grew!\n" .string "Have a good look!$" -Route121_Text_JessicaRematchDefeat: @ 829F710 +Route121_Text_JessicaRematchDefeat: .string "Oh, how dare you!\n" .string "You still won't take it easy!$" -Route121_Text_JessicaPostRematch: @ 829F740 +Route121_Text_JessicaPostRematch: .string "Maybe I'll go catch more POKéMON at\n" .string "the SAFARI.$" -Route121_Text_CristinIntro: @ 829F770 +Route121_Text_CristinIntro: .string "I have this routine.\n" .string "Defeat five TRAINERS a day.\l" .string "Guess what? You're number five!$" -Route121_Text_CristinDefeat: @ 829F7C1 +Route121_Text_CristinDefeat: .string "No!\n" .string "You're horrid!$" -Route121_Text_CristinPostBattle: @ 829F7D4 +Route121_Text_CristinPostBattle: .string "I didn't expect to lose this easily…\n" .string "I'll win next time!$" -Route121_Text_CristinRegister: @ 829F80D +Route121_Text_CristinRegister: .string "That was total humiliation!\n" .string "I won't forget you…\l" .string "Hand over your POKéNAV!$" -Route121_Text_CristinRematchIntro: @ 829F855 +Route121_Text_CristinRematchIntro: .string "I have this new routine.\n" .string "Defeat ten TRAINERS a day.\l" .string "Guess what? You're number ten!$" -Route121_Text_CristinRematchDefeat: @ 829F8A8 +Route121_Text_CristinRematchDefeat: .string "Wait! That's nasty!\n" .string "I demand a rematch!$" -Route121_Text_CristinPostRematch: @ 829F8D0 +Route121_Text_CristinPostRematch: .string "An opponent I just can't beat…\n" .string "Snivel…\l" .string "I can't believe this is happening…$" -Route121_Text_CaleIntro: @ 829F91A +Route121_Text_CaleIntro: .string "Can't you see that I have all this\n" .string "stuff with me?\p" .string "Despite that, you still insist that\n" .string "we battle?$" -Route121_Text_CaleDefeat: @ 829F97B +Route121_Text_CaleDefeat: .string "Of course I lost!\n" .string "I'm holding stuff in both hands!$" -Route121_Text_CalePostBattle: @ 829F9AE +Route121_Text_CalePostBattle: .string "I bought too much stuff at\n" .string "the LILYCOVE DEPT. STORE.\p" .string "It's up the road from here.\n" .string "I wish I had a BAG like yours.$" -Route121_Text_MylesIntro: @ 829FA1E +Route121_Text_MylesIntro: .string "There's nothing I love more than\n" .string "checking out other people's POKéMON!$" -Route121_Text_MylesDefeat: @ 829FA64 +Route121_Text_MylesDefeat: .string "Super awesome!$" -Route121_Text_MylesPostBattle: @ 829FA73 +Route121_Text_MylesPostBattle: .string "They're great, your POKéMON!\n" .string "How do you raise them?$" -Route121_Text_PatIntro: @ 829FAA7 +Route121_Text_PatIntro: .string "I want everybody to see the POKéMON\n" .string "I've raised!$" -Route121_Text_PatDefeat: @ 829FAD8 +Route121_Text_PatDefeat: .string "Wow!\n" .string "Spectacular!$" -Route121_Text_PatPostBattle: @ 829FAEA +Route121_Text_PatPostBattle: .string "I raise every POKéMON with the same\n" .string "love and care--I don't pick favorites.$" -Route121_Text_MarcelIntro: @ 829FB35 +Route121_Text_MarcelIntro: .string "My POKéMON have never tasted defeat!\n" .string "On their next win, I'm entering them\l" .string "in CONTESTS.$" -Route121_Text_MarcelDefeat: @ 829FB8C +Route121_Text_MarcelDefeat: .string "Oh, now what happened here?$" -Route121_Text_MarcelPostBattle: @ 829FBA8 +Route121_Text_MarcelPostBattle: .string "I may have to train my gang some more\n" .string "before entering any CONTEST.$" -Route123_Text_WendyIntro: @ 829FBEB +Route123_Text_WendyIntro: .string "Want to determine how strong you are?\n" .string "I'll be the test!$" -Route123_Text_WendyDefeat: @ 829FC23 +Route123_Text_WendyDefeat: .string "You passed with flying colors!$" -Route123_Text_WendyPostBattle: @ 829FC42 +Route123_Text_WendyPostBattle: .string "To best even me…\n" .string "Your strength is marvelous!$" -Route123_Text_BraxtonIntro: @ 829FC6F +Route123_Text_BraxtonIntro: .string "You seem to have a big collection\n" .string "of GYM BADGES.\p" .string "Let me see if you're actually worthy of\n" .string "those BADGES!$" -Route123_Text_BraxtonDefeat: @ 829FCD6 +Route123_Text_BraxtonDefeat: .string "Oh, you're worthy, all right!$" -Route123_Text_BraxtonPostBattle: @ 829FCF4 +Route123_Text_BraxtonPostBattle: .string "You did your BADGES proud in that\n" .string "match!$" -Route123_Text_VioletIntro: @ 829FD1D +Route123_Text_VioletIntro: .string "They say that good times are filled\n" .string "with good aromas.$" -Route123_Text_VioletDefeat: @ 829FD53 +Route123_Text_VioletDefeat: .string "Oh…\n" .string "I smell the bitter scent of misery…$" -Route123_Text_VioletPostBattle: @ 829FD7B +Route123_Text_VioletPostBattle: .string "The BERRY MASTER's garden is filled\n" .string "with uplifting fragrances.$" -Route123_Text_CameronIntro: @ 829FDBA +Route123_Text_CameronIntro: .string "Being a psychic is about willpower.\p" .string "I've willed myself not to lose to\n" .string "anyone. That makes me strong!$" -Route123_Text_CameronDefeat: @ 829FE1E +Route123_Text_CameronDefeat: .string "I feel sad…$" -Route123_Text_CameronPostBattle: @ 829FE2A +Route123_Text_CameronPostBattle: .string "Being a psychic is about willpower.\n" .string "I thought I wouldn't lose to you…$" -Route123_Text_CameronRegister: @ 829FE70 +Route123_Text_CameronRegister: .string "I sense it!\n" .string "You and I shall battle again!\l" .string "I can't tell if I'll win, though…\p" .string "Let's see your POKéNAV.$" -Route123_Text_CameronRematchIntro: @ 829FED4 +Route123_Text_CameronRematchIntro: .string "I've convinced myself that I won't\n" .string "lose anymore. That makes me strong!$" -Route123_Text_CameronRematchDefeat: @ 829FF1B +Route123_Text_CameronRematchDefeat: .string "I feel sad…$" -Route123_Text_CameronPostRematch: @ 829FF27 +Route123_Text_CameronPostRematch: .string "I should train at MT. PYRE…\n" .string "I'll never beat you this way…$" -Route123_Text_JackiIntro: @ 829FF61 +Route123_Text_JackiIntro: .string "Don't be too happy if your POKéMON\n" .string "develop psychic powers.\p" .string "You need to refine those powers to\n" .string "make them really useful.$" -Route123_Text_JackiDefeat: @ 829FFD8 +Route123_Text_JackiDefeat: .string "Overwhelmed!$" -Route123_Text_JackiPostBattle: @ 829FFE5 +Route123_Text_JackiPostBattle: .string "We all have psychic powers.\n" .string "We've just forgotten how to use them.$" -Route123_Text_JackiRegister: @ 82A0027 +Route123_Text_JackiRegister: .string "I would like to face you again.\n" .string "Is that okay with you?$" -Route123_Text_JackiRematchIntro: @ 82A005E +Route123_Text_JackiRematchIntro: .string "Have you awoken the psychic powers\n" .string "within you?$" -Route123_Text_JackiRematchDefeat: @ 82A008D +Route123_Text_JackiRematchDefeat: .string "Astounding!$" -Route123_Text_JackiPostRematch: @ 82A0099 +Route123_Text_JackiPostRematch: .string "Your power with POKéMON…\n" .string "That could be a psychic power, too.$" -Route123_Text_MiuIntro: @ 82A00D6 +Route123_Text_MiuIntro: .string "MIU: Hello, TRAINER. I hope your\n" .string "POKéMON won't cry when they lose.$" -Route123_Text_MiuDefeat: @ 82A0119 +Route123_Text_MiuDefeat: .string "MIU: Uh-oh, we lost.$" -Route123_Text_MiuPostBattle: @ 82A012E +Route123_Text_MiuPostBattle: .string "MIU: TRAINER, your POKéMON are\n" .string "strong because you are friends.$" -Route123_Text_MiuNotEnoughMons: @ 82A016D +Route123_Text_MiuNotEnoughMons: .string "MIU: It's no fun to battle if you\n" .string "don't have two POKéMON.$" -Route123_Text_YukiIntro: @ 82A01A7 +Route123_Text_YukiIntro: .string "YUKI: Okay!\n" .string "We're beating the TRAINER's POKéMON!$" -Route123_Text_YukiDefeat: @ 82A01D8 +Route123_Text_YukiDefeat: .string "YUKI: Uh-oh, we lost.$" -Route123_Text_YukiPostBattle: @ 82A01EE +Route123_Text_YukiPostBattle: .string "YUKI: Why are you so strong?\n" .string "We've never lost before.$" -Route123_Text_YukiNotEnoughMons: @ 82A0224 +Route123_Text_YukiNotEnoughMons: .string "YUKI: It's no fun to battle if you\n" .string "don't have two POKéMON.$" -Route123_Text_KindraIntro: @ 82A025F +Route123_Text_KindraIntro: .string "MT. PYRE…\n" .string "Where the spirits of POKéMON sleep…\l" .string "Will your POKéMON sleep?$" -Route123_Text_KindraDefeat: @ 82A02A6 +Route123_Text_KindraDefeat: .string "Overflowing with vitality…$" -Route123_Text_KindraPostBattle: @ 82A02C1 +Route123_Text_KindraPostBattle: .string "MT. PYRE…\n" .string "Where the spirits of POKéMON sleep…\p" .string "It must overflow with a power that\n" .string "soothes spirits…$" -Route123_Text_FernandoIntro: @ 82A0323 +Route123_Text_FernandoIntro: .string "I'll turn your lights out while\n" .string "I rip through this tune!$" -Route123_Text_FernandoDefeat: @ 82A035C +Route123_Text_FernandoDefeat: .string "Hey, hold it!\n" .string "I was still playing the intro!$" -Route123_Text_FernandoPostBattle: @ 82A0389 +Route123_Text_FernandoPostBattle: .string "You're rock steady.\n" .string "I'd like to write a tune about you.$" -Route123_Text_FernandoRegister: @ 82A03C1 +Route123_Text_FernandoRegister: .string "The next time, lend your ears to\n" .string "the full tune, will you?$" -Route123_Text_FernandoRematchIntro: @ 82A03FB +Route123_Text_FernandoRematchIntro: .string "Today's the day I'm going to do it!\n" .string "I'll turn out your lights before\l" .string "I finish singing my song!$" -Route123_Text_FernandoRematchDefeat: @ 82A045A +Route123_Text_FernandoRematchDefeat: .string "Hey, hold it!\n" .string "I haven't even hit the chorus!$" -Route123_Text_FernandoPostRematch: @ 82A0487 +Route123_Text_FernandoPostRematch: .string "I thought you'd be so enthralled\n" .string "by my tune, you'd lose.$" -Route123_Text_DavisIntro: @ 82A04C0 +Route123_Text_DavisIntro: .string "This is my awesome BUG POKéMON!\n" .string "My big brother got it for me.$" -Route123_Text_DavisDefeat: @ 82A04FE +Route123_Text_DavisDefeat: .string "Waaaah!\n" .string "You meanie!$" -Route123_Text_DavisPostBattle: @ 82A0512 +Route123_Text_DavisPostBattle: .string "Don't tell my brother I lost.\n" .string "You have to keep it a secret!$" -Route123_Text_JazmynIntro: @ 82A054E +Route123_Text_JazmynIntro: .string "My confidence will get a boost by\n" .string "beating someone obviously strong!$" -Route123_Text_JazmynDefeat: @ 82A0592 +Route123_Text_JazmynDefeat: .string "There goes my confidence…$" -Route123_Text_JazmynPostBattle: @ 82A05AC +Route123_Text_JazmynPostBattle: .string "They say that you can't judge a person\n" .string "by their appearance.\p" .string "But often, their looks don't lie…$" -Route123_Text_FrederickIntro: @ 82A060A +Route123_Text_FrederickIntro: .string "Hello, child!\n" .string "Can you spare some time?$" -Route123_Text_FrederickDefeat: @ 82A0631 +Route123_Text_FrederickDefeat: .string "Ah, a mighty capable child!\n" .string "Let me contribute to your allowance.$" -Route123_Text_FrederickPostBattle: @ 82A0672 +Route123_Text_FrederickPostBattle: .string "Contribute to your allowance?\n" .string "Wasn't the prize money enough?$" -Route123_Text_AlbertoIntro: @ 82A06AF +Route123_Text_AlbertoIntro: .string "I have to tell you, BIRD POKéMON\n" .string "are my obsession!\p" .string "Birds are cool!\n" .string "They're the best!$" -Route123_Text_AlbertoDefeat: @ 82A0704 +Route123_Text_AlbertoDefeat: .string "Even in defeat, BIRD POKéMON are cool!$" -Route123_Text_AlbertoPostBattle: @ 82A072B +Route123_Text_AlbertoPostBattle: .string "I gather BIRD POKéMON feathers that\n" .string "scatter during battles.\p" .string "I'm going to make a hat with\n" .string "BIRD POKéMON feathers.$" -Route123_Text_EdIntro: @ 82A079B +Route123_Text_EdIntro: .string "When there are no TRAINERS around,\n" .string "I let my POKéMON battle each other.\l" .string "I watch them.$" -Route123_Text_EdDefeat: @ 82A07F0 +Route123_Text_EdDefeat: .string "I kind of like your POKéMON.$" -Route123_Text_EdPostBattle: @ 82A080D +Route123_Text_EdPostBattle: .string "Hehe, I'm swiping your battling ideas!\n" .string "I think they'll make me better.$" -Route123_Text_JonasIntro: @ 82A0854 +Route123_Text_JonasIntro: .string "I lay in ambush, and a TRAINER has\n" .string "landed in my trap!$" -Route123_Text_JonasDefeat: @ 82A088A +Route123_Text_JonasDefeat: .string "If you don't lose, how am I supposed\n" .string "to have fun playing ninja?$" -Route123_Text_JonasPostBattle: @ 82A08CA +Route123_Text_JonasPostBattle: .string "I'm going to ambush a weaker-looking\n" .string "TRAINER next time.$" -Route123_Text_KayleyIntro: @ 82A0902 +Route123_Text_KayleyIntro: .string "I just bought this parasol.\n" .string "My cuteness should be up by a third!$" -Route123_Text_KayleyDefeat: @ 82A0943 +Route123_Text_KayleyDefeat: .string "You're better than me by about\n" .string "five times!$" -Route123_Text_KayleyPostBattle: @ 82A096E +Route123_Text_KayleyPostBattle: .string "Using accessories effectively is\n" .string "the secret behind fashion appeal.$" -Route124_Text_SpencerIntro: @ 82A09B1 +Route124_Text_SpencerIntro: .string "Hey, are you lost at sea?\p" .string "If you can beat my POKéMON,\n" .string "I can serve as your pilot.$" -Route124_Text_SpencerDefeat: @ 82A0A02 +Route124_Text_SpencerDefeat: .string "I lost my bearings in battle!$" -Route124_Text_SpencerPostBattle: @ 82A0A20 +Route124_Text_SpencerPostBattle: .string "Many people lose their bearings at sea.\p" .string "If you're that sort, you should refer\n" .string "to the POKéNAV's MAP.$" -Route124_Text_RolandIntro: @ 82A0A84 +Route124_Text_RolandIntro: .string "Hm! You're riding a POKéMON instead\n" .string "of swimming yourself…\p" .string "I am envious!$" -Route124_Text_RolandDefeat: @ 82A0ACC +Route124_Text_RolandDefeat: .string "Oh!\n" .string "I can't…$" -Route124_Text_RolandPostBattle: @ 82A0AD9 +Route124_Text_RolandPostBattle: .string "I'm getting chilled…\n" .string "I've been in the water too long…\p" .string "I wish I could ride a POKéMON like you…$" -Route124_Text_JennyIntro: @ 82A0B37 +Route124_Text_JennyIntro: .string "If you just float in the sea like\n" .string "this, POKéMON come around to play.$" -Route124_Text_JennyDefeat: @ 82A0B7C +Route124_Text_JennyDefeat: .string "Oh, darn.\n" .string "I've gone and lost.$" -Route124_Text_JennyPostBattle: @ 82A0B9A +Route124_Text_JennyPostBattle: .string "While swimming, I noticed that some\n" .string "POKéMON attack, and some just watch.\p" .string "I guess POKéMON have personalities\n" .string "of their own.$" -Route124_Text_JennyRegister: @ 82A0C14 +Route124_Text_JennyRegister: .string "It's only on a whim, but maybe I'll get\n" .string "you to register me in your POKéNAV.$" -Route124_Text_JennyRematchIntro: @ 82A0C60 +Route124_Text_JennyRematchIntro: .string "If you just float in the sea like this,\n" .string "TRAINERS challenge you!$" -Route124_Text_JennyRematchDefeat: @ 82A0CA0 +Route124_Text_JennyRematchDefeat: .string "That's strange…\n" .string "I lost again…$" -Route124_Text_JennyPostRematch: @ 82A0CBE +Route124_Text_JennyPostRematch: .string "This has nothing to do with anything,\n" .string "but maybe I'll visit the TRICK HOUSE.$" -Route124_Text_GraceIntro: @ 82A0D0A +Route124_Text_GraceIntro: .string "I'm growing bored of swimming…\n" .string "How about a battle?$" -Route124_Text_GraceDefeat: @ 82A0D3D +Route124_Text_GraceDefeat: .string "I had no idea that you were\n" .string "this strong!$" -Route124_Text_GracePostBattle: @ 82A0D66 +Route124_Text_GracePostBattle: .string "All the effort you put in must have\n" .string "made you this strong.$" -Route124_Text_ChadIntro: @ 82A0DA0 +Route124_Text_ChadIntro: .string "Fufufufu… I dive deep underwater\n" .string "to go deep under cover.\l" .string "Plumbing the depths is where I excel!$" -Route124_Text_ChadDefeat: @ 82A0DFF +Route124_Text_ChadDefeat: .string "Glub, glub, glub…\n" .string "I'm sinking…$" -Route124_Text_ChadPostBattle: @ 82A0E1E +Route124_Text_ChadPostBattle: .string "I have it on good authority that\n" .string "there's a DIVE spot around here.\p" .string "It gives me the urge to go deep\n" .string "again…$" -Route124_Text_LilaIntro: @ 82A0E87 +Route124_Text_LilaIntro: .string "LILA: Sigh…\p" .string "Here I am in the sea, but who's with me?\n" .string "My little brother!\p" .string "Let's battle so I won't have to dwell\n" .string "on that!$" -Route124_Text_LilaDefeat: @ 82A0EFE +Route124_Text_LilaDefeat: .string "LILA: ROY! It's your fault we lost!\n" .string "You're in for it later!$" -Route124_Text_LilaPostBattle: @ 82A0F3A +Route124_Text_LilaPostBattle: .string "LILA: Sigh…\p" .string "If only it wasn't my little brother\n" .string "next to me, but a nice boyfriend…$" -Route124_Text_LilaNotEnoughMons: @ 82A0F8C +Route124_Text_LilaNotEnoughMons: .string "LILA: You're planning to battle us?\n" .string "Not unless you have two POKéMON.$" -Route124_Text_RoyIntro: @ 82A0FD1 +Route124_Text_RoyIntro: .string "ROY: My big sister is tough at POKéMON!\p" .string "Don't cry when you lose!$" -Route124_Text_RoyDefeat: @ 82A1012 +Route124_Text_RoyDefeat: .string "ROY: Uh-oh…\n" .string "My big sister will chew me out…$" -Route124_Text_RoyPostBattle: @ 82A103E +Route124_Text_RoyPostBattle: .string "ROY: My big sister is really scary\n" .string "when she gets angry.\p" .string "That's why she doesn't have a\n" .string "boyfriend.$" -Route124_Text_LilaRoyRegister: @ 82A109F +Route124_Text_LilaRoyRegister: .string "ROY: Will you battle with us again?\n" .string "But take it easy next time, okay?$" -Route124_Text_RoyNotEnoughMons: @ 82A10E5 +Route124_Text_RoyNotEnoughMons: .string "ROY: Did you want to battle us?\n" .string "Bring two POKéMON, then.$" -Route124_Text_LilaRematchIntro: @ 82A111E +Route124_Text_LilaRematchIntro: .string "LILA: Sigh…\p" .string "Here I am in the sea, but who's with me?\n" .string "My little brother!\p" .string "Oh, hi, it's been a while. Let's battle\n" .string "so I won't have to dwell on things!$" -Route124_Text_LilaRematchDefeat: @ 82A11B2 +Route124_Text_LilaRematchDefeat: .string "LILA: ROY!\n" .string "It's your fault we lost again!\p" .string "We're having a training session later!$" -Route124_Text_LilaPostRematch: @ 82A1203 +Route124_Text_LilaPostRematch: .string "LILA: Sigh…\p" .string "If I had a nice boyfriend, we'd beat\n" .string "anyone with lovely combinations…$" -Route124_Text_LilaRematchNotEnoughMons: @ 82A1255 +Route124_Text_LilaRematchNotEnoughMons: .string "LILA: You're planning to battle us?\n" .string "Not unless you have two POKéMON.$" -Route124_Text_RoyRematchIntro: @ 82A129A +Route124_Text_RoyRematchIntro: .string "ROY: If we lose, I'll catch heck.\n" .string "I'm going to go totally all out!$" -Route124_Text_RoyRematchDefeat: @ 82A12DD +Route124_Text_RoyRematchDefeat: .string "ROY: Uh-oh…\n" .string "My big sister will chew me out again.$" -Route124_Text_RoyPostRematch: @ 82A130F +Route124_Text_RoyPostRematch: .string "ROY: My big sister is really scary\n" .string "when she gets angry.\p" .string "She's going to make me train really\n" .string "hard with POKéMON later…$" -Route124_Text_RoyRematchNotEnoughMons: @ 82A1384 +Route124_Text_RoyRematchNotEnoughMons: .string "ROY: Did you want to battle us?\n" .string "Bring two POKéMON, then.$" -Route124_Text_DeclanIntro: @ 82A13BD +Route124_Text_DeclanIntro: .string "Here I am swimming by my lonesome\n" .string "on this wide, beautiful sea.\p" .string "There's no other word for it.\n" .string "This is pathetic!$" -Route124_Text_DeclanDefeat: @ 82A142C +Route124_Text_DeclanDefeat: .string "I'm feeling blue.\n" .string "Blue as the sky…$" -Route124_Text_DeclanPostBattle: @ 82A144F +Route124_Text_DeclanPostBattle: .string "I should chat up lady SWIMMERS\n" .string "and invite them on a long swim.$" -Route124_Text_IsabellaIntro: @ 82A148E +Route124_Text_IsabellaIntro: .string "I'm not going to lose to some\n" .string "surfer TRAINER.$" -Route124_Text_IsabellaDefeat: @ 82A14BC +Route124_Text_IsabellaDefeat: .string "I've only got sweat in my eyes!\n" .string "I am not crying!$" -Route124_Text_IsabellaPostBattle: @ 82A14ED +Route124_Text_IsabellaPostBattle: .string "You can find pretty colored shards\n" .string "of things around here.$" -Route125_Text_NolenIntro: @ 82A1527 +Route125_Text_NolenIntro: .string "I heard you approaching, so I hung\n" .string "around for you!$" -Route125_Text_NolenDefeat: @ 82A155A +Route125_Text_NolenDefeat: .string "I surrender!$" -Route125_Text_NolenPostBattle: @ 82A1567 +Route125_Text_NolenPostBattle: .string "Sound travels faster in water than\n" .string "it does through air.$" -Route125_Text_StanIntro: @ 82A159F +Route125_Text_StanIntro: .string "Hey, there!\n" .string "Check out my sweet POKéMON!$" -Route125_Text_StanDefeat: @ 82A15C7 +Route125_Text_StanDefeat: .string "I floundered…$" -Route125_Text_StanPostBattle: @ 82A15D5 +Route125_Text_StanPostBattle: .string "I was blown away by HORSEA's charm,\n" .string "so I started swimming, too.$" -Route125_Text_TanyaIntro: @ 82A1615 +Route125_Text_TanyaIntro: .string "I'm tired of swimming.\n" .string "Are you up for a battle with me?$" -Route125_Text_TanyaDefeat: @ 82A164D +Route125_Text_TanyaDefeat: .string "You're too much!$" -Route125_Text_TanyaPostBattle: @ 82A165E +Route125_Text_TanyaPostBattle: .string "Whew…\n" .string "Which way is it to MOSSDEEP CITY?$" -Route125_Text_SharonIntro: @ 82A1686 +Route125_Text_SharonIntro: .string "How would you like to take on the\n" .string "WATER-type POKéMON I raised?$" -Route125_Text_SharonDefeat: @ 82A16C5 +Route125_Text_SharonDefeat: .string "Lost it…$" -Route125_Text_SharonPostBattle: @ 82A16CE +Route125_Text_SharonPostBattle: .string "Your power… You're the real deal.\n" .string "I'm amazed!$" -Route125_Text_ErnestIntro: @ 82A16FC +Route125_Text_ErnestIntro: .string "Ahoy! I'm a buff, tough SAILOR!\n" .string "I've braved the world's seas!$" -Route125_Text_ErnestDefeat: @ 82A173A +Route125_Text_ErnestDefeat: .string "Gwrroooar!\n" .string "I couldn't win!$" -Route125_Text_ErnestPostBattle: @ 82A1755 +Route125_Text_ErnestPostBattle: .string "The tide ebbs and flows inside the\n" .string "SHOAL CAVE.\p" .string "By the way, it's about six hours from\n" .string "high tide to low tide. Did you know?$" -Route125_Text_ErnestRegister: @ 82A17CF +Route125_Text_ErnestRegister: .string "Register me in your POKéNAV,\n" .string "and I'll tell you something good.$" -Route125_Text_ErnestRematchIntro: @ 82A180E +Route125_Text_ErnestRematchIntro: .string "It's high time I get my payback\n" .string "from you! Come on, we're battling!$" -Route125_Text_ErnestRematchDefeat: @ 82A1851 +Route125_Text_ErnestRematchDefeat: .string "I couldn't win!\n" .string "I flat out couldn't win!$" -Route125_Text_ErnestRematchPostBattle: @ 82A187A +Route125_Text_ErnestRematchPostBattle: .string "The SHOAL CAVE…\p" .string "There are places you can and can't\n" .string "get to depending on the rise and fall\l" @@ -3859,524 +3859,524 @@ Route125_Text_ErnestRematchPostBattle: @ 82A187A .string "By the way, it's about six hours from\n" .string "high tide to low tide. Don't forget!$" -Route125_Text_KimIntro: @ 82A192B +Route125_Text_KimIntro: .string "KIM: A funny old man lives in the\n" .string "SHOAL CAVE. Someone told me.\l" .string "Are you going to see him, too?$" -Route125_Text_KimDefeat: @ 82A1989 +Route125_Text_KimDefeat: .string "KIM: I thought we would win.$" -Route125_Text_KimPostBattle: @ 82A19A6 +Route125_Text_KimPostBattle: .string "KIM: A funny old man lives in the\n" .string "SHOAL CAVE, doesn't he?\p" .string "Let's go see him, IRIS!$" -Route125_Text_KimNotEnoughMons: @ 82A19F8 +Route125_Text_KimNotEnoughMons: .string "KIM: No, no, no! You need two POKéMON,\n" .string "or it's just no good!$" -Route125_Text_IrisIntro: @ 82A1A35 +Route125_Text_IrisIntro: .string "IRIS: KIM, can you tell me what we're\n" .string "looking for out here?$" -Route125_Text_IrisDefeat: @ 82A1A71 +Route125_Text_IrisDefeat: .string "IRIS: Oh, we came sort of close.$" -Route125_Text_IrisPostBattle: @ 82A1A92 +Route125_Text_IrisPostBattle: .string "IRIS: KIM, are we really going into\n" .string "the SHOAL CAVE?\l" .string "We'll get all wet.$" -Route125_Text_IrisNotEnoughMons: @ 82A1AD9 +Route125_Text_IrisNotEnoughMons: .string "IRIS: Oh, we could never, ever do\n" .string "anything like a 2-on-1 battle.$" -Route125_Text_PresleyIntro: @ 82A1B1A +Route125_Text_PresleyIntro: .string "Why would a BIRDKEEPER like me\n" .string "come out to the sea?$" -Route125_Text_PresleyDefeat: @ 82A1B4E +Route125_Text_PresleyDefeat: .string "Okay.\n" .string "I'll tell you why I'm here.$" -Route125_Text_PresleyPostBattle: @ 82A1B70 +Route125_Text_PresleyPostBattle: .string "I put a message in a bottle and put\n" .string "it out to sea.\p" .string "I'm sure that a girl SWIMMER will\n" .string "find it!$" -Route125_Text_AuronIntro: @ 82A1BCE +Route125_Text_AuronIntro: .string "Hey! Was it you throwing garbage\n" .string "into the sea?$" -Route125_Text_AuronDefeat: @ 82A1BFD +Route125_Text_AuronDefeat: .string "Oh, you weren't throwing trash into\n" .string "the sea.$" -Route125_Text_AuronPostBattle: @ 82A1C2A +Route125_Text_AuronPostBattle: .string "I found an unsightly bottle bobbing\n" .string "in the waves earlier.\p" .string "It angers me that someone would\n" .string "pollute the sea!$" -Route126_Text_BarryIntro: @ 82A1C95 +Route126_Text_BarryIntro: .string "Swimming is a full-body workout!\n" .string "You will get fit!$" -Route126_Text_BarryDefeat: @ 82A1CC8 +Route126_Text_BarryDefeat: .string "I admit it!\n" .string "You win!$" -Route126_Text_BarryPostBattle: @ 82A1CDD +Route126_Text_BarryPostBattle: .string "Thanks to my daily swimming routine…\n" .string "Look! Feast your eyes on this physique!$" -Route126_Text_DeanIntro: @ 82A1D2A +Route126_Text_DeanIntro: .string "This towering white mountain of rock\n" .string "is SOOTOPOLIS CITY.$" -Route126_Text_DeanDefeat: @ 82A1D63 +Route126_Text_DeanDefeat: .string "I was done in?$" -Route126_Text_DeanPostBattle: @ 82A1D72 +Route126_Text_DeanPostBattle: .string "I can't find the entrance to\n" .string "SOOTOPOLIS. Where could it be?$" -Route126_Text_NikkiIntro: @ 82A1DAE +Route126_Text_NikkiIntro: .string "Ufufufufu!\n" .string "I'm a mermaid!$" -Route126_Text_NikkiDefeat: @ 82A1DC8 +Route126_Text_NikkiDefeat: .string "My fantasy burst as if it were a bubble!\n" .string "Blub, blub, blub…$" -Route126_Text_NikkiPostBattle: @ 82A1E03 +Route126_Text_NikkiPostBattle: .string "You thrashed me… I want to\n" .string "disappear in a wave of despair…$" -Route126_Text_BrendaIntro: @ 82A1E3E +Route126_Text_BrendaIntro: .string "Hello, kiddo!\n" .string "Want a battle with me?$" -Route126_Text_BrendaDefeat: @ 82A1E63 +Route126_Text_BrendaDefeat: .string "Oh, noooooh!$" -Route126_Text_BrendaPostBattle: @ 82A1E70 +Route126_Text_BrendaPostBattle: .string "I love frolicking with POKéMON in\n" .string "the sea like this!$" -Route126_Text_PabloIntro: @ 82A1EA5 +Route126_Text_PabloIntro: .string "Check out this sculpted body!\n" .string "I'm more cut than a BLACK BELT!$" -Route126_Text_PabloDefeat: @ 82A1EE3 +Route126_Text_PabloDefeat: .string "Whoops! Too strong!\n" .string "Not bad! Not bad at all!$" -Route126_Text_PabloPostBattle: @ 82A1F10 +Route126_Text_PabloPostBattle: .string "Losing to you stimulated my senses!\n" .string "I'll train myself and POKéMON harder!$" -Route126_Text_PabloRegister: @ 82A1F5A +Route126_Text_PabloRegister: .string "Yep, you're not bad at all!\n" .string "I'd like to get to know you more!$" -Route126_Text_PabloRematchIntro: @ 82A1F98 +Route126_Text_PabloRematchIntro: .string "Check out this beautiful body!\n" .string "I'm more shapely than a SWIMMER!$" -Route126_Text_PabloRematchDefeat: @ 82A1FD8 +Route126_Text_PabloRematchDefeat: .string "Whoops! Really too strong!\n" .string "Not bad! Not bad at all!$" -Route126_Text_PabloPostRematch: @ 82A200C +Route126_Text_PabloPostRematch: .string "I'm going to train even harder!\n" .string "You're a great motivator!\l" .string "You have to come back again!$" -Route126_Text_LeonardoIntro: @ 82A2063 +Route126_Text_LeonardoIntro: .string "I couldn't even swim last year,\n" .string "but now I'm a decent SWIMMER.\p" .string "I think I'm capable of anything now.$" -Route126_Text_LeonardoDefeat: @ 82A20C6 +Route126_Text_LeonardoDefeat: .string "Sheesh, getting greedy didn't do\n" .string "a thing for me.$" -Route126_Text_LeonardoPostBattle: @ 82A20F7 +Route126_Text_LeonardoPostBattle: .string "If you practice at something,\n" .string "you will get better at it.\p" .string "You're young--don't be afraid to\n" .string "try all sorts of things!$" -Route126_Text_IsobelIntro: @ 82A216A +Route126_Text_IsobelIntro: .string "If seawater gets up your nose,\n" .string "doesn't it feel terrible?$" -Route126_Text_IsobelDefeat: @ 82A21A3 +Route126_Text_IsobelDefeat: .string "Ack! Why, you…\n" .string "Glub!$" -Route126_Text_IsobelPostBattle: @ 82A21B8 +Route126_Text_IsobelPostBattle: .string "Ooh, I choked on some water!\n" .string "It's bitter! It's salty!!$" -Route126_Text_SiennaIntro: @ 82A21EF +Route126_Text_SiennaIntro: .string "I'm throwing my whole heart\n" .string "into this!$" -Route126_Text_SiennaDefeat: @ 82A2216 +Route126_Text_SiennaDefeat: .string "You had more heart!$" -Route126_Text_SiennaPostBattle: @ 82A222A +Route126_Text_SiennaPostBattle: .string "I need to cool down now…\n" .string "I think I'll go for a dive.$" -Route127_Text_CamdenIntro: @ 82A225F +Route127_Text_CamdenIntro: .string "I can see it in your face.\n" .string "You want to challenge me.$" -Route127_Text_CamdenDefeat: @ 82A2294 +Route127_Text_CamdenDefeat: .string "Awawawawawa…$" -Route127_Text_CamdenPostBattle: @ 82A22A1 +Route127_Text_CamdenPostBattle: .string "A well-played match leaves me feeling\n" .string "refreshed and serene.$" -Route127_Text_DonnyIntro: @ 82A22DD +Route127_Text_DonnyIntro: .string "Do you have a rival whom you just\n" .string "hate to lose against?$" -Route127_Text_DonnyDefeat: @ 82A2315 +Route127_Text_DonnyDefeat: .string "Arrrgh!\n" .string "I hate losing!$" -Route127_Text_DonnyPostBattle: @ 82A232C +Route127_Text_DonnyPostBattle: .string "If you have a rival, don't you get the\n" .string "feeling that you have to keep getting\l" .string "better?$" -Route127_Text_JonahIntro: @ 82A2381 +Route127_Text_JonahIntro: .string "Through fishing, I have attained a\n" .string "state of becalmed serenity…\p" .string "Please, allow me to demonstrate…$" -Route127_Text_JonahDefeat: @ 82A23E1 +Route127_Text_JonahDefeat: .string "Though I have lost, my heart remains\n" .string "calm…$" -Route127_Text_JonahPostBattle: @ 82A240C +Route127_Text_JonahPostBattle: .string "It matters not that I catch nothing.\n" .string "The line remains in the water…$" -Route127_Text_HenryIntro: @ 82A2450 +Route127_Text_HenryIntro: .string "Whoops! Don't tell me I snagged\n" .string "a SURFING POKéMON?$" -Route127_Text_HenryDefeat: @ 82A2483 +Route127_Text_HenryDefeat: .string "I can't keep up!$" -Route127_Text_HenryPostBattle: @ 82A2494 +Route127_Text_HenryPostBattle: .string "It'd be a handful if I hooked\n" .string "your tough POKéMON!$" -Route127_Text_RogerIntro: @ 82A24C6 +Route127_Text_RogerIntro: .string "Well, hey! This is a match between\n" .string "a POKéMON fan and a fishing buff!$" -Route127_Text_RogerDefeat: @ 82A250B +Route127_Text_RogerDefeat: .string "No! My line's all tangled!\n" .string "The party's over!$" -Route127_Text_RogerPostBattle: @ 82A2538 +Route127_Text_RogerPostBattle: .string "My fishing line's doing a dance!\n" .string "The tangle tango! Hahaha, snarl!$" -Route127_Text_AidanIntro: @ 82A257A +Route127_Text_AidanIntro: .string "BIRD POKéMON have excellent vision.\n" .string "They spot prey from great heights.$" -Route127_Text_AidanDefeat: @ 82A25C1 +Route127_Text_AidanDefeat: .string "Whew… I give up.$" -Route127_Text_AidanPostBattle: @ 82A25D2 +Route127_Text_AidanPostBattle: .string "There're lots of diving spots in\n" .string "the sea around here.\p" .string "You can spot them easily from the sky\n" .string "because of their darker color.$" -Route127_Text_KojiIntro: @ 82A264D +Route127_Text_KojiIntro: .string "Run in your bare feet.\n" .string "That will toughen up your soles!$" -Route127_Text_KojiDefeat: @ 82A2685 +Route127_Text_KojiDefeat: .string "Yowch!\n" .string "I got a pebble under a toenail!$" -Route127_Text_KojiPostBattle: @ 82A26AC +Route127_Text_KojiPostBattle: .string "Going barefoot feels great.\n" .string "But your RUNNING SHOES are cool, too.$" -Route127_Text_KojiRegister: @ 82A26EE +Route127_Text_KojiRegister: .string "This is what I do to people who beat me!\n" .string "I hope we can do this again.$" -Route127_Text_KojiRematchIntro: @ 82A2734 +Route127_Text_KojiRematchIntro: .string "I still run in my bare feet daily.\n" .string "My soles are tough!$" -Route127_Text_KojiRematchDefeat: @ 82A276B +Route127_Text_KojiRematchDefeat: .string "Yowch!\n" .string "Pebbles dug into my arches!$" -Route127_Text_KojiPostRematch: @ 82A278E +Route127_Text_KojiPostRematch: .string "Want to go barefoot for a while?\n" .string "So I can try your RUNNING SHOES?$" -Route127_Text_AthenaIntro: @ 82A27D0 +Route127_Text_AthenaIntro: .string "We should have a slow and methodical\n" .string "match.$" -Route127_Text_AthenaDefeat: @ 82A27FC +Route127_Text_AthenaDefeat: .string "You didn't give me the chance to\n" .string "do any strategizing.$" -Route127_Text_AthenaPostBattle: @ 82A2832 +Route127_Text_AthenaPostBattle: .string "When I'm surrounded by the blue sea\n" .string "and sky, it feels as if time slows down.$" -Route128_Text_IsaiahIntro: @ 82A287F +Route128_Text_IsaiahIntro: .string "EVER GRANDE CITY is still a long ways\n" .string "away…$" -Route128_Text_IsaiahDefeat: @ 82A28AB +Route128_Text_IsaiahDefeat: .string "My first victory seems to be far\n" .string "away, too…$" -Route128_Text_IsaiahPostBattle: @ 82A28D7 +Route128_Text_IsaiahPostBattle: .string "My whole life has been about losing,\n" .string "but I will never give up!$" -Route128_Text_IsaiahRegister: @ 82A2916 +Route128_Text_IsaiahRegister: .string "I know I'm not good now, but I think\n" .string "I can win eventually.\p" .string "Please register me in your POKéNAV.$" -Route128_Text_IsaiahRematchIntro: @ 82A2975 +Route128_Text_IsaiahRematchIntro: .string "I'm still feeling good. I'll keep on\n" .string "swimming to EVER GRANDE CITY.$" -Route128_Text_IsaiahRematchDefeat: @ 82A29B8 +Route128_Text_IsaiahRematchDefeat: .string "I've yet to taste my first victory…$" -Route128_Text_IsaiahPostRematch: @ 82A29DC +Route128_Text_IsaiahPostRematch: .string "I'll eventually reach EVER GRANDE CITY\n" .string "where I can eventually win…$" -Route128_Text_KatelynIntro: @ 82A2A1F +Route128_Text_KatelynIntro: .string "You have to swim, cycle, and then run\n" .string "a marathon in a triathlon.\p" .string "It's a grueling race that consists\n" .string "of three events.$" -Route128_Text_KatelynDefeat: @ 82A2A94 +Route128_Text_KatelynDefeat: .string "A POKéMON battle is grueling, too…$" -Route128_Text_KatelynPostBattle: @ 82A2AB7 +Route128_Text_KatelynPostBattle: .string "I have to ride a BIKE next, but…\n" .string "I'm about to throw in the towel…$" -Route128_Text_KatelynRegister: @ 82A2AF9 +Route128_Text_KatelynRegister: .string "Well, I may as well make the best\n" .string "of this. I'd like a rematch sometime.$" -Route128_Text_KatelynRematchIntro: @ 82A2B41 +Route128_Text_KatelynRematchIntro: .string "A triathlon is long. But I guess the\n" .string "road to become the POKéMON CHAMPION\l" .string "is also a long and grueling one.$" -Route128_Text_KatelynRematchDefeat: @ 82A2BAB +Route128_Text_KatelynRematchDefeat: .string "A POKéMON battle really is harsh\n" .string "and unforgiving…$" -Route128_Text_KatelynPostRematch: @ 82A2BDD +Route128_Text_KatelynPostRematch: .string "You should give serious thought to\n" .string "challenges on VICTORY ROAD.$" -Route128_Text_AlexaIntro: @ 82A2C1C +Route128_Text_AlexaIntro: .string "We've been working so hard to mount\n" .string "a POKéMON LEAGUE challenge…\p" .string "We can't afford to lose now!$" -Route128_Text_AlexaDefeat: @ 82A2C79 +Route128_Text_AlexaDefeat: .string "Oh!\n" .string "How could this happen?!$" -Route128_Text_AlexaPostBattle: @ 82A2C95 +Route128_Text_AlexaPostBattle: .string "After all I've done to get here,\n" .string "I won't give up after one setback.$" -Route128_Text_RubenIntro: @ 82A2CD9 +Route128_Text_RubenIntro: .string "There is no stronger TRAINER than I!$" -Route128_Text_RubenDefeat: @ 82A2CFE +Route128_Text_RubenDefeat: .string "This can't be!$" -Route128_Text_RubenPostBattle: @ 82A2D0D +Route128_Text_RubenPostBattle: .string "There probably is no stronger TRAINER\n" .string "than you!$" -Route128_Text_WayneIntro: @ 82A2D3D +Route128_Text_WayneIntro: .string "I want to visit EVER GRANDE, so I\n" .string "caught myself a POKéMON that knows\l" .string "the move WATERFALL to crest the falls.$" -Route128_Text_WayneDefeat: @ 82A2DA9 +Route128_Text_WayneDefeat: .string "I'm crestfallen!$" -Route128_Text_WaynePostBattle: @ 82A2DBA +Route128_Text_WaynePostBattle: .string "Awww, phooey!\p" .string "My POKéMON knows WATERFALL, but\n" .string "I don't have the SOOTOPOLIS GYM BADGE!$" -Route128_Text_HarrisonIntro: @ 82A2E0F +Route128_Text_HarrisonIntro: .string "You're looking awfully tough.\n" .string "I wonder if I can win?$" -Route128_Text_HarrisonDefeat: @ 82A2E44 +Route128_Text_HarrisonDefeat: .string "Ouch!\n" .string "I guess it was impossible to win.$" -Route128_Text_HarrisonPostBattle: @ 82A2E6C +Route128_Text_HarrisonPostBattle: .string "There are tough TRAINERS galore\n" .string "around EVER GRANDE.\p" .string "Do you think I may be out\n" .string "of my league?$" -Route128_Text_CarleeIntro: @ 82A2EC8 +Route128_Text_CarleeIntro: .string "The sunlight seems to be more harsh\n" .string "in this area.$" -Route128_Text_CarleeDefeat: @ 82A2EFA +Route128_Text_CarleeDefeat: .string "I couldn't see very well because of\n" .string "the sun's glare.$" -Route128_Text_CarleePostBattle: @ 82A2F2F +Route128_Text_CarleePostBattle: .string "I should go back soon.\n" .string "I need to reapply my sunscreen.$" -Route129_Text_ChaseIntro: @ 82A2F66 +Route129_Text_ChaseIntro: .string "This is my first triathlon.\n" .string "I'm all tense and nervous!$" -Route129_Text_ChaseDefeat: @ 82A2F9D +Route129_Text_ChaseDefeat: .string "Wroooaaar!\n" .string "I failed to win!$" -Route129_Text_ChasePostBattle: @ 82A2FB9 +Route129_Text_ChasePostBattle: .string "If I'm all tensed up, I won't be able to\n" .string "give it my all.$" -Route129_Text_AllisonIntro: @ 82A2FF2 +Route129_Text_AllisonIntro: .string "I'm in the middle of a triathlon,\n" .string "but, sure, why don't we battle?$" -Route129_Text_AllisonDefeat: @ 82A3034 +Route129_Text_AllisonDefeat: .string "I was sure I'd win!$" -Route129_Text_AllisonPostBattle: @ 82A3048 +Route129_Text_AllisonPostBattle: .string "Do you know what's the greatest thing\n" .string "about triathlons?\p" .string "Testing the limits of your own\n" .string "strength and endurance against\l" .string "Mother Nature!$" -Route129_Text_ReedIntro: @ 82A30CD +Route129_Text_ReedIntro: .string "Say hey, hey!\n" .string "Let's get on with it!$" -Route129_Text_ReedDefeat: @ 82A30F1 +Route129_Text_ReedDefeat: .string "Beat, I'm beaten.\n" .string "That's it, done!$" -Route129_Text_ReedPostBattle: @ 82A3114 +Route129_Text_ReedPostBattle: .string "There's nothing for a loser.\n" .string "Time for me to beat it home.$" -Route129_Text_TishaIntro: @ 82A314E +Route129_Text_TishaIntro: .string "What's the hurry?\n" .string "Let's take it slow and easy.$" -Route129_Text_TishaDefeat: @ 82A317D +Route129_Text_TishaDefeat: .string "Oh, my.\n" .string "I wanted to relax a little more…$" -Route129_Text_TishaPostBattle: @ 82A31A6 +Route129_Text_TishaPostBattle: .string "Don't you hate making mistakes when\n" .string "you're in a rush?\p" .string "That's why I try to take things\n" .string "slowly.$" -Route129_Text_ClarenceIntro: @ 82A3204 +Route129_Text_ClarenceIntro: .string "Surfing isn't as easy as it seems,\n" .string "isn't that right?$" -Route129_Text_ClarenceDefeat: @ 82A3239 +Route129_Text_ClarenceDefeat: .string "Winning sure isn't easy.$" -Route129_Text_ClarencePostBattle: @ 82A3252 +Route129_Text_ClarencePostBattle: .string "You have your sights on the POKéMON\n" .string "LEAGUE? Keep at it!$" -Route130_Text_RodneyIntro: @ 82A328A +Route130_Text_RodneyIntro: .string "What a surprise! I didn't expect to\n" .string "see a TRAINER out in the sea.\p" .string "I think we should battle!$" -Route130_Text_RodneyDefeat: @ 82A32E6 +Route130_Text_RodneyDefeat: .string "This kid's awfully tough…$" -Route130_Text_RodneyPostBattle: @ 82A3300 +Route130_Text_RodneyPostBattle: .string "Your eyes have that look of someone\n" .string "who's experienced harsh challenges\l" .string "and won. It suits you well!$" -Route130_Text_KatieIntro: @ 82A3363 +Route130_Text_KatieIntro: .string "In the deep blue sea,\n" .string "my shattered blue heart finds\l" .string "comfort among waves.$" -Route130_Text_KatieDefeat: @ 82A33AC +Route130_Text_KatieDefeat: .string "Like the vast blue sea,\n" .string "the world of POKéMON spans\l" .string "depths beyond belief.$" -Route130_Text_KatiePostBattle: @ 82A33F5 +Route130_Text_KatiePostBattle: .string "The world's children dream\n" .string "of one day becoming\l" .string "the POKéMON CHAMPION.$" -Route130_Text_SantiagoIntro: @ 82A343A +Route130_Text_SantiagoIntro: .string "Floating on the open sea like this…\n" .string "It's peaceful.$" -Route130_Text_SantiagoDefeat: @ 82A346D +Route130_Text_SantiagoDefeat: .string "I needed to be a little less peaceful!$" -Route130_Text_SantiagoPostBattle: @ 82A3494 +Route130_Text_SantiagoPostBattle: .string "Swimming and battling like this…\n" .string "I'm one happy guy…$" -Route131_Text_RichardIntro: @ 82A34C8 +Route131_Text_RichardIntro: .string "The sea is teeming with POKéMON.\n" .string "It's not easy swimming, I tell you.$" -Route131_Text_RichardDefeat: @ 82A350D +Route131_Text_RichardDefeat: .string "POKéMON raised by TRAINERS are\n" .string "seriously tough…$" -Route131_Text_RichardPostBattle: @ 82A353D +Route131_Text_RichardPostBattle: .string "Gasp… Gasp…\n" .string "I'm wiped out…\p" .string "The going's easy. It's the leaving\n" @@ -4384,398 +4384,398 @@ Route131_Text_RichardPostBattle: @ 82A353D .string "Will I have any energy left to make\n" .string "the return trip?$" -Route131_Text_HermanIntro: @ 82A35C6 +Route131_Text_HermanIntro: .string "The sea… The sea… The sea…\n" .string "The sea as far as these eyes can see!\l" .string "I'm sick and tired of the sea!$" -Route131_Text_HermanDefeat: @ 82A3626 +Route131_Text_HermanDefeat: .string "Bleah!$" -Route131_Text_HermanPostBattle: @ 82A362D +Route131_Text_HermanPostBattle: .string "Bored I am by the sea, but swim I must.\p" .string "I'm a born swimmer!\n" .string "That's what I am.$" -Route131_Text_SusieIntro: @ 82A367B +Route131_Text_SusieIntro: .string "Hi, sweetie, wait!\n" .string "We should battle, you and I!$" -Route131_Text_SusieDefeat: @ 82A36AB +Route131_Text_SusieDefeat: .string "You're tough in spite of the way\n" .string "you look!$" -Route131_Text_SusiePostBattle: @ 82A36D6 +Route131_Text_SusiePostBattle: .string "Did you see a guy over there who whines\n" .string "that he's bored of the sea?\p" .string "That's all talk.\n" .string "He's hopelessly in love with the sea!$" -Route131_Text_KaraIntro: @ 82A3751 +Route131_Text_KaraIntro: .string "Why do men love bathing suits so much?\p" .string "They all ogle me!$" -Route131_Text_KaraDefeat: @ 82A378A +Route131_Text_KaraDefeat: .string "I'm out of my depth!$" -Route131_Text_KaraPostBattle: @ 82A379F +Route131_Text_KaraPostBattle: .string "Maybe it's not my bathing suit that\n" .string "makes men look. It must be my beauty!$" -Route131_Text_ReliIntro: @ 82A37E9 +Route131_Text_ReliIntro: .string "RELI: We'll work together as siblings\n" .string "to take you on!$" -Route131_Text_ReliDefeat: @ 82A381F +Route131_Text_ReliDefeat: .string "RELI: We couldn't win even though we\n" .string "worked together…$" -Route131_Text_ReliPostBattle: @ 82A3855 +Route131_Text_ReliPostBattle: .string "RELI: The people of PACIFIDLOG are\n" .string "together with the sea and POKéMON from\l" .string "the time they are born.$" -Route131_Text_ReliNotEnoughMons: @ 82A38B7 +Route131_Text_ReliNotEnoughMons: .string "RELI: You don't have two POKéMON?\n" .string "We can't enjoy a battle, then.$" -Route131_Text_IanIntro: @ 82A38F8 +Route131_Text_IanIntro: .string "IAN: I'm doing my best together with\n" .string "my sis!$" -Route131_Text_IanDefeat: @ 82A3925 +Route131_Text_IanDefeat: .string "IAN: I did my best with my sis,\n" .string "but we still couldn't win…$" -Route131_Text_IanPostBattle: @ 82A3960 +Route131_Text_IanPostBattle: .string "IAN: You know how PACIFIDLOG is\n" .string "a floating town?\p" .string "So, wherever there is the sea,\n" .string "that's a part of PACIFIDLOG!$" -Route131_Text_IanNotEnoughMons: @ 82A39CD +Route131_Text_IanNotEnoughMons: .string "IAN: If you have two POKéMON,\n" .string "we'll take you on!$" -Route131_Text_TaliaIntro: @ 82A39FE +Route131_Text_TaliaIntro: .string "If you can beat me, I'll give you some\n" .string "great information!$" -Route131_Text_TaliaDefeat: @ 82A3A38 +Route131_Text_TaliaDefeat: .string "Oh?\n" .string "Did I lose?$" -Route131_Text_TaliaPostBattle: @ 82A3A48 +Route131_Text_TaliaPostBattle: .string "There is an odd place nearby.\n" .string "There's a huge tower there.\l" .string "Why don't you go take a look?$" -Route131_Text_KevinIntro: @ 82A3AA0 +Route131_Text_KevinIntro: .string "The people of PACIFIDLOG are\n" .string "a peaceful bunch.\p" .string "They never get angry.\n" .string "That goes for me, too.$" -Route131_Text_KevinDefeat: @ 82A3AFC +Route131_Text_KevinDefeat: .string "Oops!$" -Route131_Text_KevinPostBattle: @ 82A3B02 +Route131_Text_KevinPostBattle: .string "Tch! …Oh, wait.\n" .string "I'm not angry. Honestly!\p" .string "But, boy, you're strong!\n" .string "Hahaha!$" -Route132_Text_GilbertIntro: @ 82A3B4C +Route132_Text_GilbertIntro: .string "I used to catch colds all the time as\n" .string "a kid, but I became totally fit after\l" .string "I started swimming.$" -Route132_Text_GilbertDefeat: @ 82A3BAC +Route132_Text_GilbertDefeat: .string "I crave more power…$" -Route132_Text_GilbertPostBattle: @ 82A3BC0 +Route132_Text_GilbertPostBattle: .string "TRAINERS travel the fields and\n" .string "mountains, so they must be fit, too.$" -Route132_Text_DanaIntro: @ 82A3C04 +Route132_Text_DanaIntro: .string "I try not to swim where the currents\n" .string "are too strong.$" -Route132_Text_DanaDefeat: @ 82A3C39 +Route132_Text_DanaDefeat: .string "Oh, please, no!$" -Route132_Text_DanaPostBattle: @ 82A3C49 +Route132_Text_DanaPostBattle: .string "If I get swept away, I'll lose all my\n" .string "sense of place…$" -Route132_Text_RonaldIntro: @ 82A3C7F +Route132_Text_RonaldIntro: .string "Win or lose, you'll never know until\n" .string "you try!$" -Route132_Text_RonaldDefeat: @ 82A3CAD +Route132_Text_RonaldDefeat: .string "Waah!\n" .string "I sank in defeat!$" -Route132_Text_RonaldPostBattle: @ 82A3CC5 +Route132_Text_RonaldPostBattle: .string "I never battle when I know I'll win.\n" .string "I like to battle at the razor's edge of\l" .string "victory and defeat!$" -Route132_Text_KiyoIntro: @ 82A3D26 +Route132_Text_KiyoIntro: .string "I contemplate POKéMON 24 hours a day.\n" .string "How could you possibly beat me?$" -Route132_Text_KiyoDefeat: @ 82A3D6C +Route132_Text_KiyoDefeat: .string "I lose.\n" .string "I will concede defeat.$" -Route132_Text_KiyoPostBattle: @ 82A3D8B +Route132_Text_KiyoPostBattle: .string "Urggh…\n" .string "You're a POKéMON fanatic, aren't you?\p" .string "You must contemplate POKéMON 24 hours\n" .string "a day, don't you?$" -Route132_Text_MakaylaIntro: @ 82A3DF0 +Route132_Text_MakaylaIntro: .string "I'm always with my husband,\n" .string "but I can win even without him.$" -Route132_Text_MakaylaDefeat: @ 82A3E2C +Route132_Text_MakaylaDefeat: .string "Oh, I guess I wasn't good enough.$" -Route132_Text_MakaylaPostBattle: @ 82A3E4E +Route132_Text_MakaylaPostBattle: .string "That young man over there looks just\n" .string "like my husband when he was young.\p" .string "He's making me blush!$" -Route132_Text_JonathanIntro: @ 82A3EAC +Route132_Text_JonathanIntro: .string "Someone's been watching me intently.\n" .string "Was it you?$" -Route132_Text_JonathanDefeat: @ 82A3EDD +Route132_Text_JonathanDefeat: .string "Wow!\n" .string "That's pretty strong, all right!$" -Route132_Text_JonathanPostBattle: @ 82A3F03 +Route132_Text_JonathanPostBattle: .string "I can't shake this feeling that\n" .string "someone's watching me.\p" .string "I can't concentrate!$" -Route132_Text_PaxtonIntro: @ 82A3F4F +Route132_Text_PaxtonIntro: .string "Now where could my wife have gone?\n" .string "I'm always with her.\l" .string "I wonder if I can win on my own.$" -Route132_Text_PaxtonDefeat: @ 82A3FA8 +Route132_Text_PaxtonDefeat: .string "Ah, I see that I couldn't manage\n" .string "to win on my own after all.$" -Route132_Text_PaxtonPostBattle: @ 82A3FE5 +Route132_Text_PaxtonPostBattle: .string "My wife must be looking for me.\n" .string "I'd best go find her right away.$" -Route132_Text_DarcyIntro: @ 82A4026 +Route132_Text_DarcyIntro: .string "I liked training here by myself.\n" .string "It's awful that all these people came!$" -Route132_Text_DarcyDefeat: @ 82A406E +Route132_Text_DarcyDefeat: .string "Okay! I won't complain about other\n" .string "people being here.$" -Route132_Text_DarcyPostBattle: @ 82A40A4 +Route132_Text_DarcyPostBattle: .string "I suppose I can partner up with that\n" .string "old man and challenge that other team.$" -Route133_Text_FranklinIntro: @ 82A40F0 +Route133_Text_FranklinIntro: .string "Did the currents carry you here, too?\n" .string "This must have been fated.\l" .string "Let's battle!$" -Route133_Text_FranklinDefeat: @ 82A413F +Route133_Text_FranklinDefeat: .string "Strong!\n" .string "Too much so!$" -Route133_Text_FranklinPostBattle: @ 82A4154 +Route133_Text_FranklinPostBattle: .string "It's just my luck that a tough TRAINER\n" .string "like you would drift here…\l" .string "I must be cursed…$" -Route133_Text_DebraIntro: @ 82A41A8 +Route133_Text_DebraIntro: .string "I've led a life of woe and misery…\n" .string "I've been cast away, and this is where\l" .string "I've drifted…$" -Route133_Text_DebraDefeat: @ 82A4200 +Route133_Text_DebraDefeat: .string "Another loss…$" -Route133_Text_DebraPostBattle: @ 82A420E +Route133_Text_DebraPostBattle: .string "A life adrift…\n" .string "I don't want it anymore!$" -Route133_Text_LindaIntro: @ 82A4236 +Route133_Text_LindaIntro: .string "Welcome!\n" .string "I've been expecting you!$" -Route133_Text_LindaDefeat: @ 82A4258 +Route133_Text_LindaDefeat: .string "No! Please!$" -Route133_Text_LindaPostBattle: @ 82A4264 +Route133_Text_LindaPostBattle: .string "A strong child TRAINER…\n" .string "That's so annoying!$" -Route133_Text_WarrenIntro: @ 82A4290 +Route133_Text_WarrenIntro: .string "I want to win like everyone else, but I\n" .string "won't raise POKéMON like everyone else.$" -Route133_Text_WarrenDefeat: @ 82A42E0 +Route133_Text_WarrenDefeat: .string "Darn it!\n" .string "My way is still too slack!$" -Route133_Text_WarrenPostBattle: @ 82A4304 +Route133_Text_WarrenPostBattle: .string "It's way more fun to do things the way\n" .string "I want than to be like everybody else.\l" .string "I mean, that's obvious!$" -Route133_Text_BeckIntro: @ 82A436A +Route133_Text_BeckIntro: .string "I came all the way out here with my\n" .string "BIRD POKéMON.$" -Route133_Text_BeckDefeat: @ 82A439C +Route133_Text_BeckDefeat: .string "You…\n" .string "You're stunningly cool!$" -Route133_Text_BeckPostBattle: @ 82A43B9 +Route133_Text_BeckPostBattle: .string "I'd like to go back to FORTREE,\n" .string "but I've grown to like this place, too.$" -Route133_Text_MollieIntro: @ 82A4401 +Route133_Text_MollieIntro: .string "I must have battled thousands\n" .string "of times. I've lost count.$" -Route133_Text_MollieDefeat: @ 82A443A +Route133_Text_MollieDefeat: .string "I may have lost thousands of times,\n" .string "but a loss still stings.$" -Route133_Text_MolliePostBattle: @ 82A4477 +Route133_Text_MolliePostBattle: .string "Keep at this, youngster. So you can\n" .string "become like my husband and me.$" -Route133_Text_ConorIntro: @ 82A44BA +Route133_Text_ConorIntro: .string "Young people are too happy to go with\n" .string "the flow. They're without direction.$" -Route133_Text_ConorDefeat: @ 82A4505 +Route133_Text_ConorDefeat: .string "You have a firm sense of purpose.$" -Route133_Text_ConorPostBattle: @ 82A4527 +Route133_Text_ConorPostBattle: .string "Don't let others lead you astray.\n" .string "Don't lose direction as you grow older.$" -Route134_Text_JackIntro: @ 82A4571 +Route134_Text_JackIntro: .string "Even those POKéMON that can swim are\n" .string "carried along by the rapid currents.$" -Route134_Text_JackDefeat: @ 82A45BB +Route134_Text_JackDefeat: .string "Aiyeeeeh!$" -Route134_Text_JackPostBattle: @ 82A45C5 +Route134_Text_JackPostBattle: .string "I think POKéMON enjoy the fast-running\n" .string "currents around these parts.$" -Route134_Text_LaurelIntro: @ 82A4609 +Route134_Text_LaurelIntro: .string "My LUVDISC are looking for a fun\n" .string "match. Will you join us?$" -Route134_Text_LaurelDefeat: @ 82A4643 +Route134_Text_LaurelDefeat: .string "Oopsie!$" -Route134_Text_LaurelPostBattle: @ 82A464B +Route134_Text_LaurelPostBattle: .string "There's a collector who's after\n" .string "the SCALES of LUVDISC.$" -Route134_Text_AlexIntro: @ 82A4682 +Route134_Text_AlexIntro: .string "Okeydokey! That's enough rest, gang!\n" .string "It's time for a match!$" -Route134_Text_AlexDefeat: @ 82A46BE +Route134_Text_AlexDefeat: .string "Tuckered out again…$" -Route134_Text_AlexPostBattle: @ 82A46D2 +Route134_Text_AlexPostBattle: .string "My BIRD POKéMON get tired quickly after\n" .string "a long flight…$" -Route134_Text_HitoshiIntro: @ 82A4709 +Route134_Text_HitoshiIntro: .string "You're a POKéMON TRAINER.\n" .string "No need for words. We battle now.$" -Route134_Text_HitoshiDefeat: @ 82A4745 +Route134_Text_HitoshiDefeat: .string "… … … … … …\n" .string "… … … … … …$" -Route134_Text_HitoshiPostBattle: @ 82A475D +Route134_Text_HitoshiPostBattle: .string "It was I who challenged you, and yet\n" .string "I lost. I am deeply shamed…$" -Route134_Text_AaronIntro: @ 82A479E +Route134_Text_AaronIntro: .string "The savage tide in this area serves to\n" .string "make us stronger than ever.$" -Route134_Text_AaronDefeat: @ 82A47E1 +Route134_Text_AaronDefeat: .string "I willingly concede defeat.$" -Route134_Text_AaronPostBattle: @ 82A47FD +Route134_Text_AaronPostBattle: .string "We will return for more training at\n" .string "METEOR FALLS.\p" .string "If you'd like, you should go, too.\n" .string "It will definitely toughen you up!$" -Route134_Text_KelvinIntro: @ 82A4875 +Route134_Text_KelvinIntro: .string "O-our boat!\n" .string "The tide carried it away!$" -Route134_Text_KelvinDefeat: @ 82A489B +Route134_Text_KelvinDefeat: .string "Awawawawah!\n" .string "Please, stop! Please!$" -Route134_Text_KelvinPostBattle: @ 82A48BD +Route134_Text_KelvinPostBattle: .string "If we can't SURF, how are we supposed\n" .string "to get home?\p" .string "Actually, I know a fainted POKéMON\n" .string "can still SURF, but it feels wrong.$" -Route134_Text_MarleyIntro: @ 82A4937 +Route134_Text_MarleyIntro: .string "Can your POKéMON dodge our\n" .string "lightning-quick attacks?$" -Route134_Text_MarleyDefeat: @ 82A496B +Route134_Text_MarleyDefeat: .string "I never knew such a technique existed!\n" .string "You've defeated us thoroughly.$" -Route134_Text_MarleyPostBattle: @ 82A49B1 +Route134_Text_MarleyPostBattle: .string "I haven't lost my passion for speed.\n" .string "I will try harder.$" -Route134_Text_ReynaIntro: @ 82A49E9 +Route134_Text_ReynaIntro: .string "My POKéMON can't be taken down\n" .string "easily!$" -Route134_Text_ReynaDefeat: @ 82A4A10 +Route134_Text_ReynaDefeat: .string "You're kidding!\n" .string "Explain how I lost!$" -Route134_Text_ReynaPostBattle: @ 82A4A34 +Route134_Text_ReynaPostBattle: .string "Haha!\n" .string "You won, all right!\p" .string "I'll work my way back up by taking on\n" .string "TRAINERS I happen to meet!$" -Route134_Text_HudsonIntro: @ 82A4A8F +Route134_Text_HudsonIntro: .string "Listen, have you seen another SAILOR\n" .string "around here?$" -Route134_Text_HudsonDefeat: @ 82A4AC1 +Route134_Text_HudsonDefeat: .string "Now, that's something!$" -Route134_Text_HudsonPostBattle: @ 82A4AD8 +Route134_Text_HudsonPostBattle: .string "Our boat drifted out to sea.\p" .string "My buddy's a timid fellow, so I'm\n" .string "worried about him.$" diff --git a/data/text/trick_house_mechadolls.inc b/data/text/trick_house_mechadolls.inc index 69d0118bd1..7edd1f1beb 100644 --- a/data/text/trick_house_mechadolls.inc +++ b/data/text/trick_house_mechadolls.inc @@ -1,134 +1,134 @@ -gTrickHouse_Mechadoll_Oddish:: @ 27ECBC +gTrickHouse_Mechadoll_Oddish:: .string "ODDISH$" -gTrickHouse_Mechadoll_Poochyena:: @ 27ECC3 +gTrickHouse_Mechadoll_Poochyena:: .string "POOCHYENA$" -gTrickHouse_Mechadoll_Taillow:: @ 27ECCD +gTrickHouse_Mechadoll_Taillow:: .string "TAILLOW$" -gTrickHouse_Mechadoll_Azurill:: @ 27ECD5 +gTrickHouse_Mechadoll_Azurill:: .string "AZURILL$" -gTrickHouse_Mechadoll_Lotad:: @ 27ECDD +gTrickHouse_Mechadoll_Lotad:: .string "LOTAD$" -gTrickHouse_Mechadoll_Wingull:: @ 27ECE3 +gTrickHouse_Mechadoll_Wingull:: .string "WINGULL$" -gTrickHouse_Mechadoll_Dustox:: @ 27ECEB +gTrickHouse_Mechadoll_Dustox:: .string "DUSTOX$" -gTrickHouse_Mechadoll_Zubat:: @ 27ECF2 +gTrickHouse_Mechadoll_Zubat:: .string "ZUBAT$" -gTrickHouse_Mechadoll_Nincada:: @ 27ECF8 +gTrickHouse_Mechadoll_Nincada:: .string "NINCADA$" -gTrickHouse_Mechadoll_Ralts:: @ 27ED00 +gTrickHouse_Mechadoll_Ralts:: .string "RALTS$" -gTrickHouse_Mechadoll_Zigzagoon:: @ 27ED06 +gTrickHouse_Mechadoll_Zigzagoon:: .string "ZIGZAGOON$" -gTrickHouse_Mechadoll_Slakoth:: @ 27ED10 +gTrickHouse_Mechadoll_Slakoth:: .string "SLAKOTH$" -gTrickHouse_Mechadoll_Poochyena2:: @ 27ED18 +gTrickHouse_Mechadoll_Poochyena2:: .string "POOCHYENA$" -gTrickHouse_Mechadoll_Shroomish:: @ 27ED22 +gTrickHouse_Mechadoll_Shroomish:: .string "SHROOMISH$" -gTrickHouse_Mechadoll_Zigzagoon2:: @ 27ED2C +gTrickHouse_Mechadoll_Zigzagoon2:: .string "ZIGZAGOON$" -gTrickHouse_Mechadoll_Poochyena3:: @ 27ED36 +gTrickHouse_Mechadoll_Poochyena3:: .string "POOCHYENA$" -gTrickHouse_Mechadoll_Zubat2:: @ 27ED40 +gTrickHouse_Mechadoll_Zubat2:: .string "ZUBAT$" -gTrickHouse_Mechadoll_Carvanha:: @ 27ED46 +gTrickHouse_Mechadoll_Carvanha:: .string "CARVANHA$" -gTrickHouse_Mechadoll_BurnHeal:: @ 27ED4F +gTrickHouse_Mechadoll_BurnHeal:: .string "BURN HEAL$" -gTrickHouse_Mechadoll_HarborMail:: @ 27ED59 +gTrickHouse_Mechadoll_HarborMail:: .string "HARBOR MAIL$" -gTrickHouse_Mechadoll_SamePrice:: @ 27ED65 +gTrickHouse_Mechadoll_SamePrice:: .string "Same price$" -gTrickHouse_Mechadoll_60Yen:: @ 27ED70 +gTrickHouse_Mechadoll_60Yen:: .string "¥60$" -gTrickHouse_Mechadoll_55Yen:: @ 27ED74 +gTrickHouse_Mechadoll_55Yen:: .string "¥55$" -gTrickHouse_Mechadoll_Nothing:: @ 27ED78 +gTrickHouse_Mechadoll_Nothing:: .string "Nothing$" -gTrickHouse_Mechadoll_CostMore:: @ 27ED80 +gTrickHouse_Mechadoll_CostMore:: .string "They will cost more.$" -gTrickHouse_Mechadoll_CostLess:: @ 27ED95 +gTrickHouse_Mechadoll_CostLess:: .string "They will cost less.$" -gTrickHouse_Mechadoll_SamePrice2:: @ 27EDAA +gTrickHouse_Mechadoll_SamePrice2:: .string "Same price$" -gTrickHouse_Mechadoll_Male:: @ 27EDB5 +gTrickHouse_Mechadoll_Male:: .string "Male$" -gTrickHouse_Mechadoll_Female:: @ 27EDBA +gTrickHouse_Mechadoll_Female:: .string "Female$" -gTrickHouse_Mechadoll_Neither:: @ 27EDC1 +gTrickHouse_Mechadoll_Neither:: .string "Neither$" -gTrickHouse_Mechadoll_ElderlyMen:: @ 27EDC9 +gTrickHouse_Mechadoll_ElderlyMen:: .string "Elderly men$" -gTrickHouse_Mechadoll_ElderlyLadies:: @ 27EDD5 +gTrickHouse_Mechadoll_ElderlyLadies:: .string "Elderly ladies$" -gTrickHouse_Mechadoll_SameNumber:: @ 27EDE4 +gTrickHouse_Mechadoll_SameNumber:: .string "Same number$" -gTrickHouse_Mechadoll_None:: @ 27EDF0 +gTrickHouse_Mechadoll_None:: .string "None$" -gTrickHouse_Mechadoll_One:: @ 27EDF5 +gTrickHouse_Mechadoll_One:: .string "1$" -gTrickHouse_Mechadoll_Two:: @ 27EDF7 +gTrickHouse_Mechadoll_Two:: .string "2$" -gTrickHouse_Mechadoll_Two2:: @ 27EDF9 +gTrickHouse_Mechadoll_Two2:: .string "2$" -gTrickHouse_Mechadoll_Three:: @ 27EDFB +gTrickHouse_Mechadoll_Three:: .string "3$" -gTrickHouse_Mechadoll_Four:: @ 27EDFD +gTrickHouse_Mechadoll_Four:: .string "4$" -gTrickHouse_Mechadoll_Six:: @ 27EDFF +gTrickHouse_Mechadoll_Six:: .string "6$" -gTrickHouse_Mechadoll_Seven:: @ 27EE01 +gTrickHouse_Mechadoll_Seven:: .string "7$" -gTrickHouse_Mechadoll_Eight:: @ 27EE03 +gTrickHouse_Mechadoll_Eight:: .string "8$" -gTrickHouse_Mechadoll_Six2:: @ 27EE05 +gTrickHouse_Mechadoll_Six2:: .string "6$" -gTrickHouse_Mechadoll_Seven2:: @ 27EE07 +gTrickHouse_Mechadoll_Seven2:: .string "7$" -gTrickHouse_Mechadoll_Eight2:: @ 27EE09 +gTrickHouse_Mechadoll_Eight2:: .string "8$" diff --git a/data/text/tv.inc b/data/text/tv.inc index 6f678d8244..68b8421584 100644 --- a/data/text/tv.inc +++ b/data/text/tv.inc @@ -1,4 +1,4 @@ -LilycoveCity_ContestLobby_Text_InterviewRequest: @ 827EF15 +LilycoveCity_ContestLobby_Text_InterviewRequest: .string "Oh, hello! You were in a POKéMON\n" .string "CONTEST, weren't you?\l" .string "It's easy to tell from your POKéMON.\p" @@ -7,13 +7,13 @@ LilycoveCity_ContestLobby_Text_InterviewRequest: @ 827EF15 .string "If I may, would you be willing to answer\n" .string "a few questions?$" -LilycoveCity_ContestLobby_Text_DescribeContest: @ 827EFE7 +LilycoveCity_ContestLobby_Text_DescribeContest: .string "Oh, you will?\n" .string "Thank you.\p" .string "Briefly, how would you describe the\n" .string "CONTEST you just entered?$" -LilycoveCity_ContestLobby_Text_WhatImageWhenYouHearX: @ 827F03E +LilycoveCity_ContestLobby_Text_WhatImageWhenYouHearX: .string "Ah, I see.\n" .string "That's a very edifying comment.\p" .string "You get a good feel for what\n" @@ -22,7 +22,7 @@ LilycoveCity_ContestLobby_Text_WhatImageWhenYouHearX: @ 827F03E .string "When you hear the word “{STR_VAR_2},”\n" .string "what image do you get?$" -LilycoveCity_ContestLobby_Text_ThatsAllForInterview: @ 827F0EC +LilycoveCity_ContestLobby_Text_ThatsAllForInterview: .string "I see!\p" .string "So that's how you imagine the concept\n" .string "of “{STR_VAR_2}” to be.\p" @@ -34,16 +34,16 @@ LilycoveCity_ContestLobby_Text_ThatsAllForInterview: @ 827F0EC .string "make it to television.\l" .string "I hope you'll look forward to it!$" -LilycoveCity_ContestLobby_Text_PleaseDoShareStoryWithMe: @ 827F1EF +LilycoveCity_ContestLobby_Text_PleaseDoShareStoryWithMe: .string "Oh, too bad…\p" .string "Well, if you come across a good story,\n" .string "please do share it with me.$" -LilycoveCity_ContestLobby_Text_LookingForwardToNextContest: @ 827F23F +LilycoveCity_ContestLobby_Text_LookingForwardToNextContest: .string "I'll be looking forward to your next\n" .string "POKéMON CONTEST.$" -gTVBravoTrainerText00:: @ 0827F275 +gTVBravoTrainerText00:: .string "Yeah!\n" .string "It's BRAVO TRAINER time!\p" .string "Today, we're going to profile a POKéMON\n" @@ -51,20 +51,20 @@ gTVBravoTrainerText00:: @ 0827F275 .string "Now, this POKéMON boasts a {STR_VAR_3}\n" .string "Rank in the {STR_VAR_2} Category.$" -gTVBravoTrainerText01:: @ 0827F304 +gTVBravoTrainerText01:: .string "Introducing {STR_VAR_2} the\n" .string "{STR_VAR_1}!\p" .string "The nickname {STR_VAR_2}…\p" .string "Even the nickname exudes an air that\n" .string "proclaims “{STR_VAR_3}”!$" -gTVBravoTrainerText02:: @ 0827F361 +gTVBravoTrainerText02:: .string "Anyway, when the TRAINER {STR_VAR_1}\n" .string "entered the POKéMON in a CONTEST,\l" .string "we managed to get a few impassioned\l" .string "quotes about the trusty partner.$" -gTVBravoTrainerText03:: @ 0827F3E4 +gTVBravoTrainerText03:: .string "Asked about the CONTEST afterwards,\n" .string "{STR_VAR_1} happily replied with a huge\l" .string "grin, “{STR_VAR_2}!”\p" @@ -73,7 +73,7 @@ gTVBravoTrainerText03:: @ 0827F3E4 .string "That line perfectly suits {STR_VAR_1}\n" .string "right now, I'd say!$" -gTVBravoTrainerText04:: @ 0827F49F +gTVBravoTrainerText04:: .string "Asked about the CONTEST afterwards,\n" .string "{STR_VAR_1} replied with a tinge of\l" .string "bitterness, “{STR_VAR_2}.”\p" @@ -82,7 +82,7 @@ gTVBravoTrainerText04:: @ 0827F49F .string "{STR_VAR_1}'s disappointment comes across\n" .string "loud and clear, I'd say!$" -gTVBravoTrainerText05:: @ 0827F565 +gTVBravoTrainerText05:: .string "Wouldn't you also like to know what\n" .string "{STR_VAR_1} imagines {STR_VAR_2} to be?\p" .string "You bet we did!\n" @@ -92,12 +92,12 @@ gTVBravoTrainerText05:: @ 0827F565 .string "That's what the concept of {STR_VAR_2}\n" .string "represents to {STR_VAR_1}!$" -gTVBravoTrainerText06:: @ 0827F624 +gTVBravoTrainerText06:: .string "The last move {STR_VAR_2} used by\n" .string "the {STR_VAR_1} is entirely about\l" .string "“{STR_VAR_3}”!$" -gTVBravoTrainerText07:: @ 0827F65C +gTVBravoTrainerText07:: .string "Bravo, {STR_VAR_1}!\n" .string "Bravo, {STR_VAR_2}!\p" .string "I hope we can count on seeing\n" @@ -105,10 +105,10 @@ gTVBravoTrainerText07:: @ 0827F65C .string "That's all the time we have!\n" .string "Until next time, see you!$" -gTVBravoTrainerText08:: @ 0827F6E6 +gTVBravoTrainerText08:: .string "Introducing the TRAINER's {STR_VAR_1}!$" -BattleFrontier_BattleTowerLobby_Text_InterviewRequest:: @ 0827F704 +BattleFrontier_BattleTowerLobby_Text_InterviewRequest:: .string "Hello! You're the TRAINER who just had\n" .string "a battle, right?\p" .string "I'm gathering interviews with TRAINERS\n" @@ -116,7 +116,7 @@ BattleFrontier_BattleTowerLobby_Text_InterviewRequest:: @ 0827F704 .string "May I get a few words from you about\n" .string "your impressions on battling?$" -BattleFrontier_BattleTowerLobby_Text_HowDidBattleTowerTurnOut:: @ 0827F7BA +BattleFrontier_BattleTowerLobby_Text_HowDidBattleTowerTurnOut:: .string "You will? Really?\n" .string "Thank you!\l" .string "Then, uh…\p" @@ -125,48 +125,48 @@ BattleFrontier_BattleTowerLobby_Text_HowDidBattleTowerTurnOut:: @ 0827F7BA .string "Were you satisfied with the battle?\n" .string "Or are you unhappy?$" -BattleFrontier_BattleTowerLobby_Text_SorryWeDisturbedYou:: @ 0827F84C +BattleFrontier_BattleTowerLobby_Text_SorryWeDisturbedYou:: .string "Oh…\n" .string "Sorry we disturbed you.\p" .string "Please give us an interview the next\n" .string "time you visit the BATTLE TOWER.$" -BattleFrontier_BattleTowerLobby_Text_ObviousYouHadGreatBattle:: @ 0827F8AE +BattleFrontier_BattleTowerLobby_Text_ObviousYouHadGreatBattle:: .string "Well, of course!\p" .string "That unmistakable look of satisfaction\n" .string "on your face…\p" .string "It's obvious that you've had a great\n" .string "battle.$" -BattleFrontier_BattleTowerLobby_Text_DifficultToMakeBattleTurnOutAsPlanned:: @ 0827F921 +BattleFrontier_BattleTowerLobby_Text_DifficultToMakeBattleTurnOutAsPlanned:: .string "Oh, I see…\p" .string "Well, it certainly is difficult to make a\n" .string "battle turn out exactly as planned.$" -BattleFrontier_BattleTowerLobby_Text_DescribeYourBattle:: @ 0827F97A +BattleFrontier_BattleTowerLobby_Text_DescribeYourBattle:: .string "Oh, oh, may I ask one more question?\p" .string "If you were to describe your\n" .string "impressions about this battle with\l" .string "one saying, what would it be?$" -BattleFrontier_BattleTowerLobby_Text_ThatsGreatLine:: @ 0827F9FD +BattleFrontier_BattleTowerLobby_Text_ThatsGreatLine:: .string "Oh, that is stunningly cool!\p" .string "That's a great line!\n" .string "I hope you'll do great next time, too.\p" .string "I hope to see you again!$" -BattleFrontier_BattleTowerLobby_Text_SilentType:: @ 0827FA6F +BattleFrontier_BattleTowerLobby_Text_SilentType:: .string "Oh, I see…\p" .string "Still, being the silent type is also\n" .string "cool, isn't it?\p" .string "I hope you'll give me the opportunity\n" .string "to share your thoughts again!$" -BattleFrontier_BattleTowerLobby_Text_LookingForwardToNextBattle:: @ 0827FAF3 +BattleFrontier_BattleTowerLobby_Text_LookingForwardToNextBattle:: .string "I'll be looking forward to your\n" .string "next battle!$" -gTVBravoTrainerBattleTowerText00:: @ 0827FB20 +gTVBravoTrainerBattleTowerText00:: .string "Yeah!\n" .string "It's BRAVO TRAINER time!\p" .string "Today, we're going to profile {STR_VAR_1},\n" @@ -174,12 +174,12 @@ gTVBravoTrainerBattleTowerText00:: @ 0827FB20 .string "For the challenge, {STR_VAR_1} entered\n" .string "one wicked {STR_VAR_2}.$" -gTVBravoTrainerBattleTowerText01:: @ 0827FBB3 +gTVBravoTrainerBattleTowerText01:: .string "The pair set a new record of {STR_VAR_2} wins\n" .string "in a row in {STR_VAR_1} competition!\l" .string "Bravo, TRAINER!$" -gTVBravoTrainerBattleTowerText02:: @ 0827FC04 +gTVBravoTrainerBattleTowerText02:: .string "The twosome finally succumbed to\n" .string "{STR_VAR_1} in match number {STR_VAR_2}.\l" .string "Nice try, TRAINER!\p" @@ -188,7 +188,7 @@ gTVBravoTrainerBattleTowerText02:: @ 0827FC04 .string "We asked the TRAINER for impressions\n" .string "on the match with {STR_VAR_1}.$" -gTVBravoTrainerBattleTowerText03:: @ 0827FCD1 +gTVBravoTrainerBattleTowerText03:: .string "The twosome won it all by defeating\n" .string "{STR_VAR_1}'s {STR_VAR_2} thoroughly.\l" .string "Bravo, TRAINER!\p" @@ -197,7 +197,7 @@ gTVBravoTrainerBattleTowerText03:: @ 0827FCD1 .string "We asked the TRAINER for impressions\n" .string "on the moment of glory.$" -gTVBravoTrainerBattleTowerText04:: @ 0827FD91 +gTVBravoTrainerBattleTowerText04:: .string "After a string of wins, the pair finally\n" .string "succumbed to {STR_VAR_1}'s {STR_VAR_2},\l" .string "their final hurdle.\p" @@ -208,7 +208,7 @@ gTVBravoTrainerBattleTowerText04:: @ 0827FD91 .string "We asked the TRAINER for impressions\n" .string "on battling the celebrity pair.$" -gTVBravoTrainerBattleTowerText05:: @ 0827FE93 +gTVBravoTrainerBattleTowerText05:: .string "This is what the TRAINER had to say:\n" .string "“I'm satisfied!”\p" .string "Now isn't that a refreshing reply?\n" @@ -218,7 +218,7 @@ gTVBravoTrainerBattleTowerText05:: @ 0827FE93 .string "I found out exactly how satisfied\n" .string "when I heard the TRAINER say this:$" -gTVBravoTrainerBattleTowerText06:: @ 0827FF89 +gTVBravoTrainerBattleTowerText06:: .string "This is what the TRAINER had to say:\n" .string "“I'm not satisfied…”\p" .string "Our TRAINER was obviously a little down\n" @@ -228,22 +228,22 @@ gTVBravoTrainerBattleTowerText06:: @ 0827FF89 .string "Anyway, I found out how dissatisfied\n" .string "our TRAINER was when I heard this:$" -gTVBravoTrainerBattleTowerText07:: @ 0828009C +gTVBravoTrainerBattleTowerText07:: .string "None$" -gTVBravoTrainerBattleTowerText08:: @ 082800A1 +gTVBravoTrainerBattleTowerText08:: .string "None$" -gTVBravoTrainerBattleTowerText09:: @ 082800A6 +gTVBravoTrainerBattleTowerText09:: .string "None$" -gTVBravoTrainerBattleTowerText10:: @ 082800AB +gTVBravoTrainerBattleTowerText10:: .string "None$" -gTVBravoTrainerBattleTowerText11:: @ 082800B0 +gTVBravoTrainerBattleTowerText11:: .string "“{STR_VAR_1}.”$" -gTVBravoTrainerBattleTowerText12:: @ 082800B6 +gTVBravoTrainerBattleTowerText12:: .string "“{STR_VAR_1}.”\n" .string "Now isn't that great?\p" .string "It really expresses {STR_VAR_2}'s joy,\n" @@ -252,7 +252,7 @@ gTVBravoTrainerBattleTowerText12:: @ 082800B6 .string "end… It really was what you'd call\l" .string "“{STR_VAR_1}”!$" -gTVBravoTrainerBattleTowerText13:: @ 0828013D +gTVBravoTrainerBattleTowerText13:: .string "“{STR_VAR_1}.”\n" .string "Now isn't that fitting?\p" .string "That battle with {STR_VAR_3} at the\n" @@ -261,7 +261,7 @@ gTVBravoTrainerBattleTowerText13:: @ 0828013D .string "{STR_VAR_2}'s disappointment comes across\n" .string "loud and clear, I'd say!$" -gTVBravoTrainerBattleTowerText14:: @ 082801E6 +gTVBravoTrainerBattleTowerText14:: .string "Bravo, {STR_VAR_1}!\n" .string "Bravo, {STR_VAR_2}!\p" .string "I hope we can count on seeing\n" @@ -269,7 +269,7 @@ gTVBravoTrainerBattleTowerText14:: @ 082801E6 .string "That's all the time we have!\n" .string "Until next time, see you!$" -SlateportCity_PokemonFanClub_Text_InterviewRequestHasName: @ 08280270 +SlateportCity_PokemonFanClub_Text_InterviewRequestHasName: .string "Wow!\p" .string "It's plain to see that you lavish your\n" .string "love on your {STR_VAR_1}.\p" @@ -280,36 +280,36 @@ SlateportCity_PokemonFanClub_Text_InterviewRequestHasName: @ 08280270 .string "Would you be willing to answer a few\n" .string "simple questions for me?$" -SlateportCity_PokemonFanClub_Text_HereGoesQuickAnswers: @ 0828034F +SlateportCity_PokemonFanClub_Text_HereGoesQuickAnswers: .string "Great! Thank you!\p" .string "Okay, here goes.\n" .string "I just need quick answers, okay?$" -SlateportCity_PokemonFanClub_Text_DescribeFeelingsFirstMetMon: @ 08280393 +SlateportCity_PokemonFanClub_Text_DescribeFeelingsFirstMetMon: .string "When you first met {STR_VAR_1},\n" .string "what did you feel?\p" .string "How would you describe your feelings\n" .string "at the time?$" -SlateportCity_PokemonFanClub_Text_LikenMonToSomethingYouLike: @ 082803EF +SlateportCity_PokemonFanClub_Text_LikenMonToSomethingYouLike: .string "Your {STR_VAR_1} is cared for lovingly.\p" .string "If you were to liken it to something\n" .string "that you like, what would it be?$" -SlateportCity_PokemonFanClub_Text_WhatAttractedYouAboutMon: @ 08280454 +SlateportCity_PokemonFanClub_Text_WhatAttractedYouAboutMon: .string "This question also relates to your\n" .string "beloved {STR_VAR_1}.\p" .string "What was it about {STR_VAR_1} that\n" .string "attracted you?$" -SlateportCity_PokemonFanClub_Text_WhatDoPokemonMeanToYou: @ 082804AC +SlateportCity_PokemonFanClub_Text_WhatDoPokemonMeanToYou: .string "Okay, that makes sense.\p" .string "The next question might be a little\n" .string "on the tough side.\p" .string "Here goes…\p" .string "What do POKéMON mean to you?$" -SlateportCity_PokemonFanClub_Text_ThatsAllForInterview: @ 08280523 +SlateportCity_PokemonFanClub_Text_ThatsAllForInterview: .string "I see!\p" .string "Hmhm…\p" .string "Okay!\n" @@ -321,16 +321,16 @@ SlateportCity_PokemonFanClub_Text_ThatsAllForInterview: @ 08280523 .string "Okay, that's all.\n" .string "Bye-bye!$" -SlateportCity_PokemonFanClub_Text_HereIfYouGetUrgeToTellMe: @ 082805E2 +SlateportCity_PokemonFanClub_Text_HereIfYouGetUrgeToTellMe: .string "Oh, okay…\p" .string "Well, if you get the urge to tell me\n" .string "about POKéMON, I'll be here!$" -SlateportCity_PokemonFanClub_Text_EnjoyDoingInterviews: @ 0828062E +SlateportCity_PokemonFanClub_Text_EnjoyDoingInterviews: .string "I enjoy this job--you get to learn\n" .string "about POKéMON by doing interviews.$" -SlateportCity_PokemonFanClub_Text_InterviewRequest: @ 08280674 +SlateportCity_PokemonFanClub_Text_InterviewRequest: .string "Hi, you seem to be very close to your\n" .string "{STR_VAR_1}.\p" .string "Do you know what?\n" @@ -340,12 +340,12 @@ SlateportCity_PokemonFanClub_Text_InterviewRequest: @ 08280674 .string "I'm wondering if you'd be willing to tell\n" .string "me a little about your {STR_VAR_1}?$" -SlateportCity_PokemonFanClub_Text_TellMeAnythingAboutYourMon: @ 0828073B +SlateportCity_PokemonFanClub_Text_TellMeAnythingAboutYourMon: .string "Wow, thank you!\p" .string "Okay, then, please tell me anything\n" .string "you'd like about your {STR_VAR_1}.$" -SlateportCity_PokemonFanClub_Text_ThatsAllForInterview2: @ 08280789 +SlateportCity_PokemonFanClub_Text_ThatsAllForInterview2: .string "Wow…\n" .string "That's an interesting account.\p" .string "You really are tight with {STR_VAR_1},\n" @@ -358,7 +358,7 @@ SlateportCity_PokemonFanClub_Text_ThatsAllForInterview2: @ 08280789 .string "Okay, that's all.\n" .string "Bye-bye!$" -gTVFanClubOpinionsText00:: @ 08280886 +gTVFanClubOpinionsText00:: .string "WE ARE THE POKéMON FAN CLUB!\p" .string "We're on the air!\p" .string "On this program, we get your opinions,\n" @@ -378,7 +378,7 @@ gTVFanClubOpinionsText00:: @ 08280886 .string "Hoo-hah!\p" .string "Let's shout!$" -gTVFanClubOpinionsText01:: @ 08280A44 +gTVFanClubOpinionsText01:: .string "We asked {STR_VAR_1}, “When you first\n" .string "laid eyes on your {STR_VAR_2}, what was\l" .string "your initial thought?”\p" @@ -387,7 +387,7 @@ gTVFanClubOpinionsText01:: @ 08280A44 .string "Doesn't it bring back memories of those\n" .string "days long gone by?$" -gTVFanClubOpinionsText02:: @ 08280AFC +gTVFanClubOpinionsText02:: .string "We asked {STR_VAR_1}, “If you were to\n" .string "liken your {STR_VAR_2} to something,\l" .string "it would be…”\p" @@ -398,7 +398,7 @@ gTVFanClubOpinionsText02:: @ 08280AFC .string "feeling the TRAINER has for\l" .string "{STR_VAR_2}.$" -gTVFanClubOpinionsText03:: @ 08280BC4 +gTVFanClubOpinionsText03:: .string "And let's see…\n" .string "What was it about that {STR_VAR_2}\l" .string "that so attracted {STR_VAR_1}?\p" @@ -408,7 +408,7 @@ gTVFanClubOpinionsText03:: @ 08280BC4 .string "The TRAINER's love for the {STR_VAR_2}\n" .string "comes across loud and clear!$" -gTVFanClubOpinionsText04:: @ 08280C7A +gTVFanClubOpinionsText04:: .string "Hm? Oh, there's still more.\n" .string "Let's check it out!\p" .string "Let me see, now…\p" @@ -427,7 +427,7 @@ gTVFanClubOpinionsText04:: @ 08280C7A .string "All together now…\p" .string "“{STR_VAR_3}!”$" -gTVFanClubText00:: @ 08280DEE +gTVFanClubText00:: .string "WE ARE THE POKéMON FAN CLUB!\p" .string "We're on the air!\p" .string "Today, we'll get rolling with the\n" @@ -444,34 +444,34 @@ gTVFanClubText00:: @ 08280DEE .string "can express love for the {STR_VAR_2}!\l" .string "Hmhm…$" -gTVFanClubText01:: @ 08280F69 +gTVFanClubText01:: .string "Whoah!\n" .string "What an amazing letter!$" -gTVFanClubText02:: @ 08280F88 +gTVFanClubText02:: .string "I loved it, so here it is again!$" -gTVFanClubText03:: @ 08280FA9 +gTVFanClubText03:: .string "A great letter bears reading over\n" .string "and over!$" -gTVFanClubText04:: @ 08280FD5 +gTVFanClubText04:: .string "The bit “{STR_VAR_3},” that really\n" .string "accentuates emotional impact!\p" .string "It's a great letter that has real\n" .string "heartfelt depth!$" -gTVFanClubText05:: @ 08281040 +gTVFanClubText05:: .string "Especially that “{STR_VAR_3}” bit!\p" .string "I love how “{STR_VAR_3}” is used!$" -gTVFanClubText06:: @ 08281073 +gTVFanClubText06:: .string "By the way, and it's not important,\n" .string "but “{STR_VAR_3}” is a great saying.\p" .string "I've been using “{STR_VAR_3}” a lot\n" .string "in conversations lately.$" -gTVFanClubText07:: @ 082810E7 +gTVFanClubText07:: .string "If I had to score this letter,\n" .string "I'd give it {STR_VAR_3} points.\p" .string "Next time, I'll be expecting an even\n" @@ -479,7 +479,7 @@ gTVFanClubText07:: @ 082810E7 .string "A-whoops, will you look at the time?\n" .string "Time to say good-bye until next time!$" -SlateportCity_OceanicMuseum_1F_Text_InterviewRequest: @ 082811A0 +SlateportCity_OceanicMuseum_1F_Text_InterviewRequest: .string "Oh?\n" .string "Do you perhaps like POKéMON?\p" .string "I'm on assignment with the TV network.\p" @@ -488,37 +488,37 @@ SlateportCity_OceanicMuseum_1F_Text_InterviewRequest: @ 082811A0 .string "If you don't mind, could you tell me\n" .string "something about yourself?$" -SlateportCity_OceanicMuseum_1F_Text_InterviewRequestShort: @ 0828126D +SlateportCity_OceanicMuseum_1F_Text_InterviewRequestShort: .string "I'm gathering stories on POKéMON and\n" .string "TRAINERS that occurred recently.\p" .string "If you don't mind, could you tell me\n" .string "something about yourself?$" -SlateportCity_OceanicMuseum_1F_Text_TellMeExperienceInvolvingPokemon: @ 082812F2 +SlateportCity_OceanicMuseum_1F_Text_TellMeExperienceInvolvingPokemon: .string "Oh, you will?\n" .string "Thank you!\p" .string "Then, please, tell me anything of\n" .string "interest that you experienced recently\l" .string "involving POKéMON.$" -SlateportCity_OceanicMuseum_1F_Text_LetMeKnowIfYouHaveStory: @ 08281367 +SlateportCity_OceanicMuseum_1F_Text_LetMeKnowIfYouHaveStory: .string "Oh, I see…\p" .string "Well, if you do have an interesting\n" .string "story to tell, please let me know.$" -SlateportCity_OceanicMuseum_1F_Text_ThatsAllForInterview: @ 082813B9 +SlateportCity_OceanicMuseum_1F_Text_ThatsAllForInterview: .string "Oh, what an uplifting story!\p" .string "I'll be sure to get your story told\n" .string "on television.\p" .string "It should be aired sometime, I think,\n" .string "so please look forward to it.$" -SlateportCity_OceanicMuseum_1F_Text_BetterWriteUpStory: @ 0828144D +SlateportCity_OceanicMuseum_1F_Text_BetterWriteUpStory: .string "Hmmm…\n" .string "I've got a good story for a TV program.\p" .string "I'd better write it up in a hurry!$" -gTVRecentHappeningsText00:: @ 0828149E +gTVRecentHappeningsText00:: .string "Hello, it's time for RECENT HAPPENINGS.\p" .string "For POKéMON TRAINERS, every day\n" .string "is a storybook tale.\p" @@ -530,26 +530,26 @@ gTVRecentHappeningsText00:: @ 0828149E .string "Let's find out.\p" .string "Let's see…$" -gTVRecentHappeningsText01:: @ 082815AF +gTVRecentHappeningsText01:: .string "Wasn't that enlightening?\p" .string "The story gives you a clear idea of what\n" .string "{STR_VAR_1} has experienced recently.\l" .string "It's as if we were there as witnesses!$" -gTVRecentHappeningsText02:: @ 08281636 +gTVRecentHappeningsText02:: .string "“{STR_VAR_3}.” That\n" .string "accents the tale and gives it depth.$" -gTVRecentHappeningsText03:: @ 08281666 +gTVRecentHappeningsText03:: .string "“{STR_VAR_3}.”\n" .string "That gives the tale a sense of place.\l" .string "It lets us envision the tale's setting.$" -gTVRecentHappeningsText04:: @ 082816BA +gTVRecentHappeningsText04:: .string "The “{STR_VAR_3}”\n" .string "section of the tale is very expressive.$" -gTVRecentHappeningsText05:: @ 082816EB +gTVRecentHappeningsText05:: .string "{STR_VAR_1} has recounted a wonderful\n" .string "tale involving POKéMON.\p" .string "And now {STR_VAR_1}'s tale is indelibly\n" @@ -557,7 +557,7 @@ gTVRecentHappeningsText05:: @ 082816EB .string "That's it for today.\n" .string "Please tune in next time.$" -gTVMassOutbreakText00:: @ 0828178A +gTVMassOutbreakText00:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "We've just received word of a very\n" @@ -573,7 +573,7 @@ gTVMassOutbreakText00:: @ 0828178A .string "{STR_VAR_2} in the wild.\p" .string "That's the news on POKéMON NEWS.$" -gTV3CheersForPokeblocksText00:: @ 082818F4 +gTV3CheersForPokeblocksText00:: .string "MC: We hope you're in good cheer,\n" .string "“3 CHEERS FOR {POKEBLOCK}S” is here!\p" .string "Today, we examine the {POKEBLOCK} blended\n" @@ -583,78 +583,78 @@ gTV3CheersForPokeblocksText00:: @ 082818F4 .string "… … … … … …\n" .string "… … … … … …$" -gTV3CheersForPokeblocksText01:: @ 082819C7 +gTV3CheersForPokeblocksText01:: .string "GULPIN: Gubi! Gubii!\p" .string "MC: And the verdict is very {STR_VAR_1}!\n" .string "GULPIN says it tastes “{STR_VAR_2}!”\p" .string "Thank you so much, {STR_VAR_3}!$" -gTV3CheersForPokeblocksText02:: @ 08281A2F +gTV3CheersForPokeblocksText02:: .string "{STR_VAR_1}'s blending performance\n" .string "left something to be desired.\p" .string "If this TRAINER could blend better,\n" .string "the {POKEBLOCK} would be much tastier.$" -gTV3CheersForPokeblocksText03:: @ 08281AAC +gTV3CheersForPokeblocksText03:: .string "GULPIN: Gubi! Gubii!\p" .string "MC: Hmm… It's too {STR_VAR_1}.\n" .string "GULPIN says it tastes “{STR_VAR_2}!”\p" .string "It looks like {STR_VAR_3}'s errors\n" .string "hurt the blending quality…$" -gTV3CheersForPokeblocksText04:: @ 08281B28 +gTV3CheersForPokeblocksText04:: .string "It's too bad that {STR_VAR_1}'s\n" .string "leading effort went to waste.\p" .string "Let's hope {STR_VAR_2} can turn in\n" .string "a better showing next time!$" -gTV3CheersForPokeblocksText05:: @ 08281B93 +gTV3CheersForPokeblocksText05:: .string "Tune in next time!\n" .string "Our slogan is “3 CHEERS FOR {POKEBLOCK}S!”$" -LilycoveCity_PokemonTrainerFanClub_Text_WhatsYourOpinionOfTrainer:: @ 8281BCB +LilycoveCity_PokemonTrainerFanClub_Text_WhatsYourOpinionOfTrainer:: .string "Hi, there!\p" .string "I'm a big fan of {STR_VAR_1}.\n" .string "What's your opinion of {STR_VAR_1}?$" -LilycoveCity_PokemonTrainerFanClub_Text_ThatsWhatYouThink:: @ 8281C06 +LilycoveCity_PokemonTrainerFanClub_Text_ThatsWhatYouThink:: .string "I see, I see. That's what you think\n" .string "about the TRAINER.$" -LilycoveCity_PokemonTrainerFanClub_Text_HaveYouForgottenTrainer:: @ 8281C3D +LilycoveCity_PokemonTrainerFanClub_Text_HaveYouForgottenTrainer:: .string "Have you completely forgotten\n" .string "about {STR_VAR_1}?$" -LilycoveCity_PokemonTrainerFanClub_Text_WhatsYourOpinionOfTrainer2:: @ 8281C65 +LilycoveCity_PokemonTrainerFanClub_Text_WhatsYourOpinionOfTrainer2:: .string "I'm a big fan of {STR_VAR_1}.\n" .string "What's your opinion of {STR_VAR_1}?$" -LilycoveCity_PokemonTrainerFanClub_Text_HowStrongRateTrainer:: @ 8281C95 +LilycoveCity_PokemonTrainerFanClub_Text_HowStrongRateTrainer:: .string "How strong would you rate {STR_VAR_1}\n" .string "on a scale of one hundred?$" -LilycoveCity_PokemonTrainerFanClub_Text_HaveYouForgottenTrainer2:: @ 8281CCD +LilycoveCity_PokemonTrainerFanClub_Text_HaveYouForgottenTrainer2:: .string "Have you completely forgotten\n" .string "about {STR_VAR_1}?$" -LilycoveCity_PokemonTrainerFanClub_Text_YouShouldMeetTrainer:: @ 8281CF5 +LilycoveCity_PokemonTrainerFanClub_Text_YouShouldMeetTrainer:: .string "Oh, I see!\n" .string "You should meet {STR_VAR_1} sometime.\l" .string "I'm sure you'll become a fan, too!$" -LilycoveCity_PokemonTrainerFanClub_Text_ThankYouIllShareThisInfo:: @ 8281D40 +LilycoveCity_PokemonTrainerFanClub_Text_ThankYouIllShareThisInfo:: .string "I see, I see.\p" .string "Thank you!\n" .string "That's very useful to know.\p" .string "I'll share this information with other\n" .string "{STR_VAR_1} fans and discuss it.$" -LilycoveCity_PokemonTrainerFanClub_HopeYouCatchTVSpecial:: @ 8281DB4 +LilycoveCity_PokemonTrainerFanClub_HopeYouCatchTVSpecial:: .string "There's going to be a TV special on\n" .string "{STR_VAR_1} very soon.\p" .string "I hope you catch it!$" -gTVTrainerFanClubSpecialText00:: @ 08281DFB +gTVTrainerFanClubSpecialText00:: .string "TRAINER FAN CLUB\n" .string "{STR_VAR_1} SPECIAL!\p" .string "This is a special presentation for\n" @@ -673,31 +673,31 @@ gTVTrainerFanClubSpecialText00:: @ 08281DFB .string "{STR_VAR_2} also scored {STR_VAR_1}'s\n" .string "strength from 0 to 100.$" -gTVTrainerFanClubSpecialText01:: @ 08281F90 +gTVTrainerFanClubSpecialText01:: .string "The score was {STR_VAR_3} points!\n" .string "That is a very high score indeed!\p" .string "{STR_VAR_2} must obviously hold\n" .string "{STR_VAR_1} in very high esteem.$" -gTVTrainerFanClubSpecialText02:: @ 08281FFA +gTVTrainerFanClubSpecialText02:: .string "The score was {STR_VAR_3} points!\n" .string "That is quite a good score.\p" .string "{STR_VAR_2} must consider\n" .string "{STR_VAR_1} to be a rival.$" -gTVTrainerFanClubSpecialText03:: @ 08282052 +gTVTrainerFanClubSpecialText03:: .string "The score was {STR_VAR_3} points!\n" .string "That's a rather weak score.\p" .string "{STR_VAR_2} must consider\n" .string "{STR_VAR_1} to be a mere sidekick.$" -gTVTrainerFanClubSpecialText04:: @ 082820B2 +gTVTrainerFanClubSpecialText04:: .string "The score was {STR_VAR_3} point(s)!\n" .string "That's a terrible score.\p" .string "{STR_VAR_2} must consider\n" .string "{STR_VAR_1} to be an underling.$" -gTVTrainerFanClubSpecialText05:: @ 0828210E +gTVTrainerFanClubSpecialText05:: .string "There you have it, folks!\p" .string "I think we all learned something\n" .string "new about {STR_VAR_1}.\p" @@ -705,7 +705,7 @@ gTVTrainerFanClubSpecialText05:: @ 0828210E .string "{STR_VAR_2}'s words.\p" .string "{STR_VAR_3} {STR_VAR_1}!$" -gTVNameRaterText00:: @ 0828218A +gTVNameRaterText00:: .string "And now, it's time for…\n" .string "THE NAME RATER SHOW.\p" .string "I tell your POKéMON's fortune from\n" @@ -719,103 +719,103 @@ gTVNameRaterText00:: @ 0828218A .string "Hmm…\n" .string "This nickname is…$" -gTVNameRaterText01:: @ 0828229E +gTVNameRaterText01:: .string "A nickname that hints at talent in many\n" .string "different ways.\p" .string "I urge this TRAINER to take courage\n" .string "and take on many challenges.$" -gTVNameRaterText02:: @ 08282317 +gTVNameRaterText02:: .string "A nickname that perfectly complements\n" .string "{STR_VAR_1}, the TRAINER's name.\p" .string "It suggests that you will forge a fine\n" .string "partnership with precise timing.$" -gTVNameRaterText03:: @ 0828239D +gTVNameRaterText03:: .string "A nickname fit for a unique individual\n" .string "of a POKéMON!\p" .string "If raised properly, this POKéMON's\n" .string "uniqueness will bloom excessively!$" -gTVNameRaterText04:: @ 08282418 +gTVNameRaterText04:: .string "A nickname that will nurture the caring\n" .string "and compassionate side of POKéMON.\p" .string "If raised properly, this POKéMON will\n" .string "come to exhibit real warmth!$" -gTVNameRaterText05:: @ 082824A6 +gTVNameRaterText05:: .string "A very fine nickname that hints at\n" .string "greatness to come.\p" .string "I am intrigued about what the future\n" .string "holds in store for this POKéMON.$" -gTVNameRaterText06:: @ 08282522 +gTVNameRaterText06:: .string "A good nickname that should make the\n" .string "POKéMON hale and hearty!\p" .string "That POKéMON should remain fit and\n" .string "robust for a long, long time.$" -gTVNameRaterText07:: @ 082825A1 +gTVNameRaterText07:: .string "A good nickname that should make the\n" .string "POKéMON very active!\p" .string "I should think that this POKéMON will be\n" .string "a strong performer in battles.$" -gTVNameRaterText08:: @ 08282623 +gTVNameRaterText08:: .string "An appealing nickname that should make\n" .string "the POKéMON very charming!\p" .string "I don't doubt that this POKéMON will be\n" .string "quite the charmer in POKéMON CONTESTS.$" -gTVNameRaterText09:: @ 082826B4 +gTVNameRaterText09:: .string "The nickname {STR_VAR_1} is rooted by\n" .string "the letter “{STR_VAR_3}.”\p" .string "That letter is supported by the first\n" .string "letter “{STR_VAR_2},” which gives it a solid sense\l" .string "of presence as a nickname.$" -gTVNameRaterText10:: @ 0828274D +gTVNameRaterText10:: .string "The nickname {STR_VAR_1} is very\n" .string "shapely in a pleasing manner.\p" .string "The presence of the letters “{STR_VAR_2}” and\n" .string "“{STR_VAR_3}”--now that is remarkably good!$" -gTVNameRaterText11:: @ 082827CB +gTVNameRaterText11:: .string "The nickname {STR_VAR_1}--it has a\n" .string "sublime, flowing feel to it.\p" .string "The flow from the initial letter “{STR_VAR_2}” to\n" .string "“{STR_VAR_3}” is especially wonderful.$" -gTVNameRaterText12:: @ 08282849 +gTVNameRaterText12:: .string "Let's examine other examples of fine\n" .string "nicknames, shall we?$" -gTVNameRaterText13:: @ 08282883 +gTVNameRaterText13:: .string "Try this example. Take a part of the\n" .string "TRAINER name of {STR_VAR_1}, and end\l" .string "up with the fine nickname {STR_VAR_2}{STR_VAR_3}.$" -gTVNameRaterText14:: @ 082828E4 +gTVNameRaterText14:: .string "The nickname {STR_VAR_2}{STR_VAR_3} would also work\n" .string "quite well.$" -gTVNameRaterText15:: @ 08282912 +gTVNameRaterText15:: .string "The POKéMON's species name of\n" .string "{STR_VAR_2} could be used as the basis\l" .string "for making the nickname {STR_VAR_1}{STR_VAR_3}.$" -gTVNameRaterText16:: @ 0828296C +gTVNameRaterText16:: .string "{STR_VAR_1}{STR_VAR_3} would also be an effective\n" .string "nickname.$" -gTVNameRaterText17:: @ 08282996 +gTVNameRaterText17:: .string "What should always be avoided is using\n" .string "another POKéMON species name.\p" .string "For instance, avoid taking the name of\n" .string "{STR_VAR_2} to make the nickname {STR_VAR_1}{STR_VAR_3}.\l" .string "That is unacceptable.$" -gTVNameRaterText18:: @ 08282A36 +gTVNameRaterText18:: .string "I must say that {STR_VAR_1} is quite\n" .string "a good nickname.\p" .string "I hope that the TRAINER will continue\n" @@ -823,7 +823,7 @@ gTVNameRaterText18:: @ 08282A36 .string "That's it for today's show.\n" .string "May we meet again.$" -gTVPokemonAnglerText00:: @ 08282ACF +gTVPokemonAnglerText00:: .string "{STR_VAR_2} ANGLER\p" .string "ANNOUNCER: Hello! Today, we'll get tips\n" .string "on fishing for {STR_VAR_2}.\p" @@ -850,7 +850,7 @@ gTVPokemonAnglerText00:: @ 08282ACF .string "Until our next broadcast, farewell and\n" .string "good fishing to you all!$" -gTVPokemonAnglerText01:: @ 08282D7C +gTVPokemonAnglerText01:: .string "{STR_VAR_2} ANGLER\p" .string "ANNOUNCER: Hello! Today, we'll get tips\n" .string "on fishing for {STR_VAR_2}.\p" @@ -872,7 +872,7 @@ gTVPokemonAnglerText01:: @ 08282D7C .string "Until our next broadcast, farewell and\n" .string "good fishing to you all!$" -gTVPokemonTodayFailedText00:: @ 08282F9B +gTVPokemonTodayFailedText00:: .string "Hello!\p" .string "It's time for POKéMON TODAY!\p" .string "BIG SIS: Hi! Is everyone peachy and\n" @@ -882,7 +882,7 @@ gTVPokemonTodayFailedText00:: @ 08282F9B .string "BIG BRO: Yeah! That's what we're going\n" .string "to do!$" -gTVPokemonTodayFailedText01:: @ 0828304D +gTVPokemonTodayFailedText01:: .string "Oh!\n" .string "Speaking of {STR_VAR_1}…\p" .string "BIG SIS, I saw the TRAINER with my very\n" @@ -894,7 +894,7 @@ gTVPokemonTodayFailedText01:: @ 0828304D .string "{STR_VAR_1}, who was trying to catch the\l" .string "POKéMON {STR_VAR_3}, but…$" -gTVPokemonTodayFailedText02:: @ 08283135 +gTVPokemonTodayFailedText02:: .string "The POKéMON managed to get away!\p" .string "It ended up wasting this many\n" .string "POKé BALLS: {STR_VAR_2}!\p" @@ -902,7 +902,7 @@ gTVPokemonTodayFailedText02:: @ 08283135 .string "of frustration on {STR_VAR_1}'s face when\l" .string "the POKéMON took off!$" -gTVPokemonTodayFailedText03:: @ 082831DF +gTVPokemonTodayFailedText03:: .string "But {STR_VAR_1} goofed and made the\n" .string "POKéMON faint!\p" .string "It ended up wasting this many\n" @@ -911,7 +911,7 @@ gTVPokemonTodayFailedText03:: @ 082831DF .string "of stunned dismay on {STR_VAR_1}'s face\l" .string "when the POKéMON fainted!$" -gTVPokemonTodayFailedText04:: @ 08283294 +gTVPokemonTodayFailedText04:: .string "BIG SIS: Hey, there!\n" .string "That's not nice!\p" .string "You shouldn't be laughing at other\n" @@ -921,7 +921,7 @@ gTVPokemonTodayFailedText04:: @ 08283294 .string "BIG BRO: That's true!\n" .string "Sorry for laughing.$" -gTVPokemonTodayFailedText05:: @ 08283337 +gTVPokemonTodayFailedText05:: .string "BIG SIS: Bufufu…\p" .string "BIG BRO: Hey!\n" .string "You just laughed, too!\p" @@ -932,7 +932,7 @@ gTVPokemonTodayFailedText05:: @ 08283337 .string "What a shame!\p" .string "BIG BRO: …$" -gTVPokemonTodayFailedText06:: @ 082833C6 +gTVPokemonTodayFailedText06:: .string "BIG SIS: That's enough silliness!\n" .string "Let's look at today's POKéMON…\p" .string "Huh?\n" @@ -943,7 +943,7 @@ gTVPokemonTodayFailedText06:: @ 082833C6 .string "BIG SIS: Hey, don't end the show\n" .string "without me!$" -gTVPokemonTodaySuccessfulText00:: @ 082834A0 +gTVPokemonTodaySuccessfulText00:: .string "Hello!\p" .string "It's time for POKéMON TODAY!\p" .string "BIG SIS: Hi! Is everyone peachy and\n" @@ -953,30 +953,30 @@ gTVPokemonTodaySuccessfulText00:: @ 082834A0 .string "BIG BRO: Yeah! That's what we're going\n" .string "to do!$" -gTVPokemonTodaySuccessfulText01:: @ 08283552 +gTVPokemonTodaySuccessfulText01:: .string "BIG SIS: {STR_VAR_1} gave the nickname\n" .string "{STR_VAR_3} to the {STR_VAR_2}!\p" .string "It sounds like {STR_VAR_3} is getting\n" .string "good, loving care!$" -gTVPokemonTodaySuccessfulText02:: @ 082835AE +gTVPokemonTodaySuccessfulText02:: .string "BIG BRO: The TRAINER had to throw this\n" .string "many POKé BALLS to catch it: {STR_VAR_3}!\p" .string "It finally took a single {STR_VAR_2}\n" .string "to catch it!$" -gTVPokemonTodaySuccessfulText03:: @ 0828361F +gTVPokemonTodaySuccessfulText03:: .string "BIG SIS: If it was that easy to catch,\n" .string "it must have been destiny that brought\l" .string "{STR_VAR_1} and the {STR_VAR_2} together!$" -gTVPokemonTodaySuccessfulText04:: @ 08283685 +gTVPokemonTodaySuccessfulText04:: .string "BIG SIS: Wow! That's so neat!\p" .string "But you know what they say, a POKéMON\n" .string "that takes a lot of effort to catch\l" .string "earns the love of its TRAINER!$" -gTVPokemonTodaySuccessfulText05:: @ 0828370C +gTVPokemonTodaySuccessfulText05:: .string "BIG SIS: {STR_VAR_1}'s {STR_VAR_2} is a\n" .string "memorable POKéMON because it took an\l" .string "invaluable MASTER BALL to catch!\p" @@ -984,20 +984,20 @@ gTVPokemonTodaySuccessfulText05:: @ 0828370C .string "BIG SIS: {STR_VAR_1} must have really\n" .string "wanted that {STR_VAR_2}, for sure!$" -gTVPokemonTodaySuccessfulText06:: @ 082837C2 +gTVPokemonTodaySuccessfulText06:: .string "BIG BRO: Then to give the nickname\n" .string "{STR_VAR_3} to that {STR_VAR_2}…\p" .string "You really get a good idea about\n" .string "{STR_VAR_1}'s TRAINER sense.\p" .string "BIG SIS: I second that notion!$" -gTVPokemonTodaySuccessfulText07:: @ 08283848 +gTVPokemonTodaySuccessfulText07:: .string "If it were me, I'd give that nickname\n" .string "to something like this {STR_VAR_3}!\p" .string "BIG BRO: Whoa! That could be the start\n" .string "of something new!$" -gTVPokemonTodaySuccessfulText08:: @ 082838C2 +gTVPokemonTodaySuccessfulText08:: .string "{STR_VAR_2} the {STR_VAR_1}?\n" .string "Doesn't that sound perfect?\p" .string "The letters and everything--they\n" @@ -1005,7 +1005,7 @@ gTVPokemonTodaySuccessfulText08:: @ 082838C2 .string "{STR_VAR_1}!\p" .string "BIG BRO: Yeah, true, that!$" -gTVPokemonTodaySuccessfulText09:: @ 0828394A +gTVPokemonTodaySuccessfulText09:: .string "As far as I know, no TRAINER has ever\n" .string "given the nickname {STR_VAR_2} to their\l" .string "{STR_VAR_1}!\p" @@ -1013,13 +1013,13 @@ gTVPokemonTodaySuccessfulText09:: @ 0828394A .string "great taste the TRAINER has in picking\l" .string "nicknames!$" -gTVPokemonTodaySuccessfulText10:: @ 082839EA +gTVPokemonTodaySuccessfulText10:: .string "The next time I catch a POKéMON,\n" .string "I should give it the name {STR_VAR_2}.\p" .string "BIG BRO: Huh? Me, too!\n" .string "I'll use the nickname {STR_VAR_2}, too!$" -gTVPokemonTodaySuccessfulText11:: @ 08283A5F +gTVPokemonTodaySuccessfulText11:: .string "BIG SIS: Oh, no!\n" .string "Look at the time!\p" .string "Well, gang, this is it for today.\n" @@ -1027,7 +1027,7 @@ gTVPokemonTodaySuccessfulText11:: @ 08283A5F .string "BIG BRO: Remember, it could be your\n" .string "POKéMON in the spotlight next time!$" -gTVTodaysSmartShopperText00:: @ 08283B05 +SmartShopper_Text_Intro:: .string "Hello!\p" .string "It's time for TODAY'S SMART SHOPPER.\p" .string "INTERVIEWER: How are you, viewers?\p" @@ -1036,7 +1036,7 @@ gTVTodaysSmartShopperText00:: @ 08283B05 .string "Let's check on what the hot sellers\n" .string "have been recently.$" -gTVTodaysSmartShopperText01:: @ 08283BAF +SmartShopper_Text_ClerkNormal:: .string "Let's interview the clerk to get the\n" .string "lowdown.\p" .string "Hi, how's your business?\p" @@ -1046,7 +1046,7 @@ gTVTodaysSmartShopperText01:: @ 08283BAF .string "Why, just the other day a TRAINER\n" .string "named {STR_VAR_1} bought {STR_VAR_3}.$" -gTVTodaysSmartShopperText02:: @ 08283C81 +SmartShopper_Text_RandomComment1:: .string "INTERVIEWER: The TRAINER bought\n" .string "{STR_VAR_3} {STR_VAR_2}S? That's a haul!\p" .string "If I may say so, {STR_VAR_1} must have\n" @@ -1055,13 +1055,13 @@ gTVTodaysSmartShopperText02:: @ 08283C81 .string "For traveling, {STR_VAR_2}S are so\n" .string "important!$" -gTVTodaysSmartShopperText03:: @ 08283D32 +SmartShopper_Text_RandomComment2:: .string "INTERVIEWER: Speaking of the item\n" .string "{STR_VAR_2}, I just bought {STR_VAR_3} of\l" .string "them recently.\p" .string "After all, {STR_VAR_2}'s a great item!$" -gTVTodaysSmartShopperText04:: @ 08283D99 +SmartShopper_Text_RandomComment3:: .string "INTERVIEWER: {STR_VAR_2}?!\n" .string "But {STR_VAR_3} of them?!\p" .string "I didn't think there would be anyone\n" @@ -1069,7 +1069,7 @@ gTVTodaysSmartShopperText04:: @ 08283D99 .string "My goodness, I can only afford one or\n" .string "two at a time…$" -gTVTodaysSmartShopperText05:: @ 08283E28 +SmartShopper_Text_RandomComment4:: .string "INTERVIEWER: One time, I bought\n" .string "a whole lot of the item {STR_VAR_2}.\p" .string "But it turned out to be too many.\n" @@ -1079,21 +1079,21 @@ gTVTodaysSmartShopperText05:: @ 08283E28 .string "Oops!\p" .string "There's no point talking about me!$" -gTVTodaysSmartShopperText06:: @ 08283F01 +SmartShopper_Text_SecondItem:: .string "CLERK: {STR_VAR_1} also bought the item\n" .string "{STR_VAR_2} in bulk, taking {STR_VAR_3}.\p" .string "INTERVIEWER: Oh, that's smart.\n" .string "{STR_VAR_2}'s a very good item, too.$" -gTVTodaysSmartShopperText07:: @ 08283F72 +SmartShopper_Text_ThirdItem:: .string "CLERK: And, the TRAINER also bought\n" .string "{STR_VAR_3} of the item {STR_VAR_2}.$" -gTVTodaysSmartShopperText08:: @ 08283FA9 +SmartShopper_Text_DuringSale:: .string "CLERK: Plus, it was during a big sale.\n" .string "That's smart shopping.$" -gTVTodaysSmartShopperText09:: @ 08283FE7 +SmartShopper_Text_OutroNormal:: .string "INTERVIEWER: Hmm… {STR_VAR_1} sounds like\n" .string "quite the shrewd bargain hunter!\p" .string "In total, {STR_VAR_1}'s purchases came to…\p" @@ -1102,11 +1102,11 @@ gTVTodaysSmartShopperText09:: @ 08283FE7 .string "Oops! We're out of time!\n" .string "See you on our next broadcast!$" -gTVTodaysSmartShopperText10:: @ 0828409E +SmartShopper_Text_IsVIP:: .string "CLERK: {STR_VAR_1} is a VIP customer,\n" .string "no doubt about it.$" -gTVTodaysSmartShopperText11:: @ 082840CE +SmartShopper_Text_ClerkMax:: .string "Let's interview the clerk to get the\n" .string "lowdown.\p" .string "Hi, how's your business?\p" @@ -1127,7 +1127,7 @@ gTVTodaysSmartShopperText11:: @ 082840CE .string "CLERK: {STR_VAR_1} is a VIP customer,\n" .string "no doubt about it.$" -gTVTodaysSmartShopperText12:: @ 082842E6 +SmartShopper_Text_OutroMax:: .string "INTERVIEWER: Hmm…\n" .string "That is amazing.\p" .string "But why would the TRAINER need to buy\n" @@ -1138,7 +1138,7 @@ gTVTodaysSmartShopperText12:: @ 082842E6 .string "See you on our next broadcast!\p" .string "Still, {STR_VAR_1} is certainly an enigma…$" -gTVWorldOfMastersText00:: @ 082843BA +gTVWorldOfMastersText00:: .string "THE WORLD OF MASTERS\p" .string "Hello, viewers.\p" .string "Perhaps you are aware of a TRAINER\n" @@ -1152,12 +1152,12 @@ gTVWorldOfMastersText00:: @ 082843BA .string "The total number of POKéMON caught\n" .string "that day reached an impressive {STR_VAR_3}!$" -gTVWorldOfMastersText01:: @ 082844FD +gTVWorldOfMastersText01:: .string "That remarkable feat must have been\n" .string "possible because of the trust between\l" .string "the TRAINER and {STR_VAR_1}.$" -gTVWorldOfMastersText02:: @ 0828455B +gTVWorldOfMastersText02:: .string "The master caught the day's last\n" .string "{STR_VAR_3} near {STR_VAR_2}.\p" .string "That POKéMON apparently enjoys\n" @@ -1167,31 +1167,31 @@ gTVWorldOfMastersText02:: @ 0828455B .string "That's all for today.\n" .string "Please tune in next time.$" -gTVTodaysRivalTrainerText00:: @ 08284641 +gTVTodaysRivalTrainerText00:: .string "TODAY'S RIVAL TRAINER!\p" .string "Hello, fellow POKéMON TRAINERS!\n" .string "How are we all doing today?\p" .string "Today, like every other day,\n" .string "we'll examine one of our rivals!$" -gTVTodaysRivalTrainerText07:: @ 082846D2 +gTVTodaysRivalTrainerText07:: .string "Today's rival TRAINER is {STR_VAR_1},\n" .string "who's around {STR_VAR_3} now.\p" .string "{STR_VAR_1} has so far registered\n" .string "{STR_VAR_2} POKéMON in the POKéDEX.$" -gTVTodaysRivalTrainerText08:: @ 08284738 +gTVTodaysRivalTrainerText08:: .string "Today's rival TRAINER is {STR_VAR_1},\n" .string "who's in a SECRET BASE now.\p" .string "{STR_VAR_1} has so far registered\n" .string "{STR_VAR_2} POKéMON in the POKéDEX.$" -gTVTodaysRivalTrainerText09:: @ 082847A5 +gTVTodaysRivalTrainerText09:: .string "Today's rival TRAINER is {STR_VAR_1}.\p" .string "So far, {STR_VAR_1} has registered\n" .string "{STR_VAR_2} POKéMON in the POKéDEX.$" -gTVTodaysRivalTrainerText10:: @ 082847F7 +gTVTodaysRivalTrainerText10:: .string "Today's rival TRAINER is {STR_VAR_1},\n" .string "who's on a ferry now.\p" .string "{STR_VAR_1} has so far registered\n" @@ -1199,29 +1199,29 @@ gTVTodaysRivalTrainerText10:: @ 082847F7 .string "$" -gTVTodaysRivalTrainerText01:: @ 0828485F +gTVTodaysRivalTrainerText01:: .string "And how many BADGES does our rival\n" .string "have? The number is {STR_VAR_1}!$" -gTVTodaysRivalTrainerText02:: @ 0828489A +gTVTodaysRivalTrainerText02:: .string "But our rival hasn't obtained\n" .string "a single BADGE yet!$" -gTVTodaysRivalTrainerText03:: @ 082848CC +gTVTodaysRivalTrainerText03:: .string "Our rival hasn't obtained a single\n" .string "BATTLE FRONTIER Symbol yet.$" -gTVTodaysRivalTrainerText04:: @ 0828490B +gTVTodaysRivalTrainerText04:: .string "Let's see how many BATTLE FRONTIER\n" .string "Symbols our rival has.\p" .string "Gold Symbols: {STR_VAR_1}!\n" .string "Silver Symbols: {STR_VAR_2}!$" -gTVTodaysRivalTrainerText05:: @ 0828496B +gTVTodaysRivalTrainerText05:: .string "Our rival has collected {STR_VAR_1} Battle\n" .string "Point(s) at the BATTLE FRONTIER.$" -gTVTodaysRivalTrainerText06:: @ 082849AE +gTVTodaysRivalTrainerText06:: .string "So, how did you measure up in\n" .string "comparison to {STR_VAR_1}?\p" .string "The adventure rolls on!\p" @@ -1229,7 +1229,7 @@ gTVTodaysRivalTrainerText06:: @ 082849AE .string "Let's all keep moving forward\n" .string "and ahead of our rivals!$" -gTVDewfordTrendWatcherNetworkText00:: @ 08284A3E +TrendWatcher_Text_Intro:: .string "DEWFORD TREND-WATCHER NETWORK!\p" .string "MC: Wassup?\n" .string "We'll keep it real with the latest on\l" @@ -1251,17 +1251,18 @@ gTVDewfordTrendWatcherNetworkText00:: @ 08284A3E .string "MC: Uh, no. What we want to know is\n" .string "what's the in thing of the moment…$" -gTVDewfordTrendWatcherNetworkText01:: @ 08284C55 +@ Identical to below, may have been different in other languages +TrendWatcher_Text_MaleTaughtMePhrase:: .string "Old man: {STR_VAR_1} {STR_VAR_2}\n" .string "was what {STR_VAR_3} from LITTLEROOT\l" .string "taught me as being trendy…$" -gTVDewfordTrendWatcherNetworkText02:: @ 08284C9B +TrendWatcher_Text_FemaleTaughtMePhrase:: .string "Old man: {STR_VAR_1} {STR_VAR_2}\n" .string "was what {STR_VAR_3} from LITTLEROOT\l" .string "taught me as being trendy…$" -gTVDewfordTrendWatcherNetworkText03:: @ 08284CE1 +TrendWatcher_Text_PhraseWasHopeless:: .string "But it was utterly hopeless.\p" .string "{STR_VAR_1} {STR_VAR_2} festival!\p" .string "{STR_VAR_1} {STR_VAR_2} contest!\p" @@ -1272,17 +1273,18 @@ gTVDewfordTrendWatcherNetworkText03:: @ 08284CE1 .string "MC: Uh, excuse me, compadre, I need\n" .string "to hear about what's in now…$" -gTVDewfordTrendWatcherNetworkText04:: @ 08284DB6 +@ Identical to below, may have been different in other languages +TrendWatcher_Text_MaleTellMeBigger:: .string "Old man: {STR_VAR_3}!\n" .string "Please, tell me something bigger than\l" .string "that {STR_VAR_1} {STR_VAR_2}!$" -gTVDewfordTrendWatcherNetworkText05:: @ 08284DF5 +TrendWatcher_Text_FemaleTellMeBigger:: .string "Old man: {STR_VAR_3}!\n" .string "Please, tell me something bigger than\l" .string "that {STR_VAR_1} {STR_VAR_2}!$" -gTVDewfordTrendWatcherNetworkText06:: @ 08284E34 +TrendWatcher_Text_Outro:: .string "MC: …Uh… So, there you have it,\n" .string "all you trendy, hep cats out there!\p" .string "{STR_VAR_1} {STR_VAR_2}…uh…\n" @@ -1290,7 +1292,7 @@ gTVDewfordTrendWatcherNetworkText06:: @ 08284E34 .string "My time is up. Catch you on the fly!\p" .string "Old man: {STR_VAR_1} {STR_VAR_2}!$" -gTVHoennTreasureInvestigatorsText00:: @ 08284EDF +gTVHoennTreasureInvestigatorsText00:: .string "HOENN TREASURE INVESTIGATORS!\p" .string "Hi, gang!\n" .string "Score any secret items lately?\p" @@ -1299,7 +1301,7 @@ gTVHoennTreasureInvestigatorsText00:: @ 08284EDF .string "Let's start with a letter.\n" .string "It says, “{STR_VAR_1} discovered!”$" -gTVHoennTreasureInvestigatorsText01:: @ 08284FA1 +gTVHoennTreasureInvestigatorsText01:: .string "Wow, we'd better check this letter\n" .string "out! Let me read it to you.\p" .string "…Dear INVESTIGATORS,\n" @@ -1314,7 +1316,7 @@ gTVHoennTreasureInvestigatorsText01:: @ 08284FA1 .string "I'll be waiting for exciting news\n" .string "from all of you!$" -gTVHoennTreasureInvestigatorsText02:: @ 082850F5 +gTVHoennTreasureInvestigatorsText02:: .string "Wow, we'd better check this letter\n" .string "out! Let me read it to you.\p" .string "…Dear INVESTIGATORS,\n" @@ -1328,7 +1330,7 @@ gTVHoennTreasureInvestigatorsText02:: @ 082850F5 .string "I'll be waiting for exciting news\n" .string "from all of you!$" -gTVFindThatGamerText00:: @ 08285240 +gTVFindThatGamerText00:: .string "FIND THAT GAMER!\p" .string "Hey, all you gamers!\n" .string "How's your {STR_VAR_2} spinning?\p" @@ -1338,7 +1340,7 @@ gTVFindThatGamerText00:: @ 08285240 .string "Today, our no. 1 gamer is…\n" .string "{STR_VAR_1}!$" -gTVFindThatGamerText01:: @ 082852F4 +gTVFindThatGamerText01:: .string "{STR_VAR_1} played the {STR_VAR_2} game\n" .string "and won a rare {STR_VAR_3} COINS.\p" .string "“When {STR_VAR_1} comes, we need to\n" @@ -1352,7 +1354,7 @@ gTVFindThatGamerText01:: @ 082852F4 .string "where you can feel the excitement!\p" .string "That's all for today!$" -gTVFindThatGamerText02:: @ 08285463 +gTVFindThatGamerText02:: .string "{STR_VAR_1} played the {STR_VAR_2} game\n" .string "and lost {STR_VAR_3} COINS.\p" .string "“When {STR_VAR_1} comes, our COIN\n" @@ -1360,7 +1362,7 @@ gTVFindThatGamerText02:: @ 08285463 .string "That's what the GAME CORNER clerks\n" .string "say when our gamer is in play!$" -gTVFindThatGamerText03:: @ 08285500 +gTVFindThatGamerText03:: .string "Viewers, it's best to watch your COINS\n" .string "like {STR_VAR_1} if you visit the GAME\l" .string "CORNER and play the {STR_VAR_2} game.\p" @@ -1368,10 +1370,10 @@ gTVFindThatGamerText03:: @ 08285500 .string "where you can feel the excitement!\p" .string "That's all for today!$" -gTVBreakingNewsText00:: @ 082855BF +gTVBreakingNewsText00:: .string "BREAKING NEWS TV!$" -gTVBreakingNewsText01:: @ 082855D1 +gTVBreakingNewsText01:: .string "Rare {STR_VAR_2} caught by\n" .string "{STR_VAR_1}!\p" .string "We're live from the vicinity of\n" @@ -1379,18 +1381,18 @@ gTVBreakingNewsText01:: @ 082855D1 .string "{STR_VAR_1} successfully captured\n" .string "a rare {STR_VAR_2} earlier here!$" -gTVBreakingNewsText02:: @ 0828563C +gTVBreakingNewsText02:: .string "When {STR_VAR_1} encountered the rare\n" .string "{STR_VAR_2}, the TRAINER sent out\l" .string "the POKéMON {STR_VAR_3}.$" -gTVBreakingNewsText03:: @ 08285682 +gTVBreakingNewsText03:: .string "In the battle, the number of POKé\n" .string "BALLS thrown by the TRAINER was {STR_VAR_1}.\p" .string "Ultimately, the rare POKéMON was\n" .string "caught by the {STR_VAR_2} used last.$" -gTVBreakingNewsText04:: @ 08285705 +gTVBreakingNewsText04:: .string "In that instant, {STR_VAR_2}\n" .string "echoed with {STR_VAR_1}'s roars of\l" .string "triumphant joy.\p" @@ -1399,7 +1401,7 @@ gTVBreakingNewsText04:: @ 08285705 .string "…That ends the live feed from\n" .string "the happy scene!$" -gTVBreakingNewsText05:: @ 082857B0 +gTVBreakingNewsText05:: .string "{STR_VAR_1} fails to capture a rare\n" .string "{STR_VAR_2}!\p" .string "We're live from the vicinity of\n" @@ -1407,18 +1409,18 @@ gTVBreakingNewsText05:: @ 082857B0 .string "It was here that {STR_VAR_1} failed\n" .string "to capture a rare {STR_VAR_2}!$" -gTVBreakingNewsText06:: @ 08285824 +gTVBreakingNewsText06:: .string "When {STR_VAR_1} encountered the rare\n" .string "{STR_VAR_2}, the TRAINER sent out\l" .string "the POKéMON {STR_VAR_3}.$" -gTVBreakingNewsText07:: @ 0828586A +gTVBreakingNewsText07:: .string "The TRAINER made the {STR_VAR_2}\n" .string "use the move {STR_VAR_1}.\p" .string "Without meaning to, the TRAINER\n" .string "made the rare POKéMON faint…$" -gTVBreakingNewsText12:: @ 082858D0 +gTVBreakingNewsText12:: .string "However, {STR_VAR_1} panicked at\n" .string "the sight of the rare {STR_VAR_2}.\p" .string "In confusion, the TRAINER ordered\n" @@ -1426,12 +1428,12 @@ gTVBreakingNewsText12:: @ 082858D0 .string "Without meaning to, the TRAINER\n" .string "made the rare POKéMON faint.$" -gTVBreakingNewsText08:: @ 0828596F +gTVBreakingNewsText08:: .string "In that instant, {STR_VAR_2}\n" .string "echoed with {STR_VAR_1}'s shrieks of\l" .string "frustration…$" -gTVBreakingNewsText09:: @ 082859AC +gTVBreakingNewsText09:: .string "However, {STR_VAR_1} seemed to run\n" .string "out of POKé BALLS.\p" .string "The TRAINER had to break off\n" @@ -1440,20 +1442,20 @@ gTVBreakingNewsText09:: @ 082859AC .string "echoed with {STR_VAR_1}'s shrieks of\l" .string "frustration…$" -gTVBreakingNewsText10:: @ 08285A50 +gTVBreakingNewsText10:: .string "However, the {STR_VAR_2} fled without\n" .string "warning.\p" .string "In that instant, {STR_VAR_3}\n" .string "echoed with {STR_VAR_1}'s shrieks of\l" .string "frustration…$" -gTVBreakingNewsText11:: @ 08285AB3 +gTVBreakingNewsText11:: .string "I must say I feel for {STR_VAR_1}.\n" .string "Why, it makes me want to shriek, too.\p" .string "…That ends the live feed from\n" .string "the melancholy scene!$" -gTVSecretBaseVisitText00:: @ 08285B27 +gTVSecretBaseVisitText00:: .string "Hello, folks!\n" .string "It's time again for\l" .string "a SECRET BASE VISIT.\p" @@ -1464,14 +1466,14 @@ gTVSecretBaseVisitText00:: @ 08285B27 .string "Let's find out!\n" .string "… … … … … …$" -gTVSecretBaseVisitText01:: @ 08285BCA +gTVSecretBaseVisitText01:: .string "Oh!\n" .string "How marvelous!\p" .string "This {STR_VAR_2}…\n" .string "It's not what one would expect to\l" .string "find here!$" -gTVSecretBaseVisitText02:: @ 08285C13 +gTVSecretBaseVisitText02:: .string "Oh!\n" .string "How remarkable!\p" .string "There isn't a single piece\n" @@ -1483,47 +1485,47 @@ gTVSecretBaseVisitText02:: @ 08285C13 .string "My hat's off to you, {STR_VAR_1}.\n" .string "It had to be you!$" -gTVSecretBaseVisitText03:: @ 08285CFF +gTVSecretBaseVisitText03:: .string "Oh! I see!\n" .string "With perfect clarity, I see it!\p" .string "This {STR_VAR_2} being here…\n" .string "It sends an effective message!$" -gTVSecretBaseVisitText04:: @ 08285D5D +gTVSecretBaseVisitText04:: .string "Oh! I see!\n" .string "With perfect clarity, I see it!\p" .string "This space is kept deliberately\n" .string "clear of interior items!\p" .string "It sends an effective message!$" -gTVSecretBaseVisitText05:: @ 08285DE0 +gTVSecretBaseVisitText05:: .string "Wheeew!\p" .string "The pairing of the {STR_VAR_2}\n" .string "with the {STR_VAR_3}!\p" .string "It's a dream combination if there\n" .string "ever was one!$" -gTVSecretBaseVisitText06:: @ 08285E3B +gTVSecretBaseVisitText06:: .string "Wheeew!\p" .string "The placement of this {STR_VAR_2}\n" .string "right here…\p" .string "It has a presence that fills\n" .string "the entire SECRET BASE!$" -gTVSecretBaseVisitText07:: @ 08285E9D +gTVSecretBaseVisitText07:: .string "Wheeew!\p" .string "There's nothing in place here.\p" .string "This empty space has an effect on\n" .string "the entire SECRET BASE.$" -gTVSecretBaseVisitText08:: @ 08285EFE +gTVSecretBaseVisitText08:: .string "Oh!\n" .string "Here comes {STR_VAR_1}!\l" .string "Let's challenge the TRAINER!\p" .string "… … … … … …\n" .string "… … … … … …$" -gTVSecretBaseVisitText09:: @ 08285F46 +gTVSecretBaseVisitText09:: .string "Sigh…\n" .string "I've got to hand it to {STR_VAR_1}.\p" .string "The TRAINER's POKéMON were truly\n" @@ -1536,7 +1538,7 @@ gTVSecretBaseVisitText09:: @ 08285F46 .string "{STR_VAR_1} is.\p" .string "Certainly, it was quite a lesson!$" -gTVSecretBaseVisitText10:: @ 08286049 +gTVSecretBaseVisitText10:: .string "Aiyeeh!\n" .string "I've got to hand it to {STR_VAR_1}.\p" .string "The TRAINER's POKéMON were\n" @@ -1549,7 +1551,7 @@ gTVSecretBaseVisitText10:: @ 08286049 .string "{STR_VAR_1} is.\p" .string "Certainly, it was quite a lesson!$" -gTVSecretBaseVisitText11:: @ 0828613A +gTVSecretBaseVisitText11:: .string "Wheeew!\n" .string "I've got to hand it to {STR_VAR_1}.\p" .string "The TRAINER's POKéMON were clearly\n" @@ -1562,7 +1564,7 @@ gTVSecretBaseVisitText11:: @ 0828613A .string "{STR_VAR_1} is.\p" .string "Certainly, it was quite a lesson!$" -gTVSecretBaseVisitText12:: @ 08286248 +gTVSecretBaseVisitText12:: .string "Well, well!\n" .string "I've got to hand it to {STR_VAR_1}.\p" .string "The TRAINER's POKéMON showed\n" @@ -1575,14 +1577,14 @@ gTVSecretBaseVisitText12:: @ 08286248 .string "{STR_VAR_1} is.\p" .string "Certainly, it was quite a lesson!$" -gTVSecretBaseVisitText13:: @ 08286340 +gTVSecretBaseVisitText13:: .string "I must say, what a superb SECRET BASE\n" .string "it was!\p" .string "Viewers, if you have the chance,\n" .string "do visit {STR_VAR_1}'s SECRET BASE.\p" .string "Until next time, I bid you adieu!$" -gTVPokemonLotteryWinnerFlashReportText00:: @ 082863CC +gTVPokemonLotteryWinnerFlashReportText00:: .string "It's exciting!\n" .string "It's dramatic!\p" .string "It's the POKéMON LOTTERY\n" @@ -1608,7 +1610,7 @@ gTVPokemonLotteryWinnerFlashReportText00:: @ 082863CC .string "offering you the greatest selection\l" .string "in all HOENN!$" -gTVThePokemonBattleSeminarText00:: @ 08286616 +gTVThePokemonBattleSeminarText00:: .string "THE POKéMON BATTLE SEMINAR!\p" .string "We examine battles to see what\n" .string "lessons we may learn from others.\p" @@ -1617,28 +1619,28 @@ gTVThePokemonBattleSeminarText00:: @ 08286616 .string "{STR_VAR_1}'s {STR_VAR_2} was\n" .string "battling one {STR_VAR_3}…$" -gTVThePokemonBattleSeminarText01:: @ 082866B6 +gTVThePokemonBattleSeminarText01:: .string "And it used the move {STR_VAR_3}\n" .string "on the {STR_VAR_2}…\p" .string "Hmm… {STR_VAR_1}!\n" .string "That's the wrong thing to do!$" -gTVThePokemonBattleSeminarText02:: @ 08286700 +gTVThePokemonBattleSeminarText02:: .string "In addition to the doomed move,\n" .string "the TRAINER's {STR_VAR_1} also knew$" -gTVThePokemonBattleSeminarText03:: @ 0828673B +gTVThePokemonBattleSeminarText03:: .string "the moves {STR_VAR_1}, {STR_VAR_2},\n" .string "and {STR_VAR_3}.$" -gTVThePokemonBattleSeminarText04:: @ 08286755 +gTVThePokemonBattleSeminarText04:: .string "the moves {STR_VAR_1} and\n" .string "{STR_VAR_2}.$" -gTVThePokemonBattleSeminarText05:: @ 0828676A +gTVThePokemonBattleSeminarText05:: .string "the move {STR_VAR_2}.$" -gTVThePokemonBattleSeminarText06:: @ 08286777 +gTVThePokemonBattleSeminarText06:: .string "So, in this situation, what should\n" .string "the TRAINER have used?\p" .string "… … … … … …\n" @@ -1649,7 +1651,7 @@ gTVThePokemonBattleSeminarText06:: @ 08286777 .string "case and battle with intelligence!\p" .string "Until next time, farewell!$" -gTVTrainerFanClubText00:: @ 08286866 +gTVTrainerFanClubText00:: .string "All together now!\n" .string "TRAINER FAN CLUB!\p" .string "MC: How's everyone groovin'?\n" @@ -1663,46 +1665,46 @@ gTVTrainerFanClubText00:: @ 08286866 .string "MC: What do you love about\n" .string "{STR_VAR_1}?!$" -gTVTrainerFanClubText01:: @ 0828695E +gTVTrainerFanClubText01:: .string "FANS: Their cool way of throwing\n" .string "POKé BALLS!$" -gTVTrainerFanClubText02:: @ 0828698B +gTVTrainerFanClubText02:: .string "FANS: Their adorable way of running!$" -gTVTrainerFanClubText03:: @ 082869B0 +gTVTrainerFanClubText03:: .string "FANS: How the TRAINER turns tough\n" .string "when the going gets tough!$" -gTVTrainerFanClubText04:: @ 082869ED +gTVTrainerFanClubText04:: .string "FANS: The TRAINER's knowledge of\n" .string "POKéMON!$" -gTVTrainerFanClubText05:: @ 08286A17 +gTVTrainerFanClubText05:: .string "FANS: The TRAINER's kindness toward\n" .string "all POKéMON!$" -gTVTrainerFanClubText06:: @ 08286A48 +gTVTrainerFanClubText06:: .string "FANS: The TRAINER's amazing\n" .string "BIKE-riding techniques!$" -gTVTrainerFanClubText07:: @ 08286A7C +gTVTrainerFanClubText07:: .string "FANS: The TRAINER's impressive\n" .string "item-buying style!$" -gTVTrainerFanClubText08:: @ 08286AAE +gTVTrainerFanClubText08:: .string "FANS: The TRAINER's charming way\n" .string "of nicknaming POKéMON!$" -gTVTrainerFanClubText09:: @ 08286AE6 +gTVTrainerFanClubText09:: .string "FANS: The TRAINER's nifty style of\n" .string "decorating a SECRET BASE!$" -gTVTrainerFanClubText10:: @ 08286B23 +gTVTrainerFanClubText10:: .string "FANS: The TRAINER's bold ways of\n" .string "using TMs!$" -gTVTrainerFanClubText11:: @ 08286B4F +gTVTrainerFanClubText11:: .string "MC: As you've just seen, {STR_VAR_1}\n" .string "is hot! Like, too hot to touch, yow!\p" .string "Among {STR_VAR_1}'s FANS\n" @@ -1736,7 +1738,7 @@ gTVTrainerFanClubText11:: @ 08286B4F .string "FANS: {STR_VAR_2}!\p" .string "FANS: {STR_VAR_3}!$" -gTVCutiesText00:: @ 08286D8F +TVSpotTheCuties_Text_Intro:: .string "SPOT THE CUTIES!\n" .string "POKéMON IN RIBBONS!\p" .string "Hello, my sweet viewers!\p" @@ -1748,29 +1750,29 @@ gTVCutiesText00:: @ 08286D8F .string "Today's featured pretty POKéMON\n" .string "is {STR_VAR_1}'s {STR_VAR_2}.$" -gTVCutiesText01:: @ 08286E9D +TVSpotTheCuties_Text_RibbonsLow:: .string "The number of RIBBONS that\n" .string "{STR_VAR_2} wears is {STR_VAR_3}.\p" .string "It says a lot about how much\n" .string "{STR_VAR_1} adores the POKéMON.$" -gTVCutiesText02:: @ 08286EFC +TVSpotTheCuties_Text_RibbonsMid:: .string "{STR_VAR_2} wears an amazing\n" .string "{STR_VAR_3} RIBBONS!\p" .string "It speaks volumes about {STR_VAR_1}'s\n" .string "commitment to the POKéMON!$" -gTVCutiesText03:: @ 08286F54 +TVSpotTheCuties_Text_RibbonsHigh:: .string "{STR_VAR_2} wears an incredible\n" .string "{STR_VAR_3} RIBBONS!\p" .string "It shows you {STR_VAR_1}'s total\n" .string "dedication as a collector!$" -gTVCutiesText04:: @ 08286FAA +TVSpotTheCuties_Text_RibbonIntro:: .string "Let us take a closer look at the many\n" .string "RIBBONS worn by {STR_VAR_2}.$" -gTVCutiesText05:: @ 08286FE4 +TVSpotTheCuties_Text_RibbonChampion:: .string "The CHAMPION RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it upon entering\n" @@ -1780,7 +1782,7 @@ gTVCutiesText05:: @ 08286FE4 .string "{STR_VAR_2} and the CHAMP RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText06:: @ 082870A3 +TVSpotTheCuties_Text_RibbonCool:: .string "The COOL RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it for winning\n" @@ -1790,7 +1792,7 @@ gTVCutiesText06:: @ 082870A3 .string "{STR_VAR_2} and the COOL RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText07:: @ 0828715A +TVSpotTheCuties_Text_RibbonBeauty:: .string "The BEAUTY RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it for winning\n" @@ -1800,7 +1802,7 @@ gTVCutiesText07:: @ 0828715A .string "{STR_VAR_2} and the BEAUTY RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText08:: @ 08287215 +TVSpotTheCuties_Text_RibbonCute:: .string "The CUTE RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it for winning\n" @@ -1810,7 +1812,7 @@ gTVCutiesText08:: @ 08287215 .string "{STR_VAR_2} and the CUTE RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText09:: @ 082872CC +TVSpotTheCuties_Text_RibbonSmart:: .string "The SMART RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it for winning\n" @@ -1820,7 +1822,7 @@ gTVCutiesText09:: @ 082872CC .string "{STR_VAR_2} and the SMART RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText10:: @ 08287387 +TVSpotTheCuties_Text_RibbonTough:: .string "The TOUGH RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it for winning\n" @@ -1830,7 +1832,7 @@ gTVCutiesText10:: @ 08287387 .string "{STR_VAR_2} and the TOUGH RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText11:: @ 08287442 +TVSpotTheCuties_Text_RibbonWinning:: .string "The WINNING RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it for its feats\n" @@ -1840,7 +1842,7 @@ gTVCutiesText11:: @ 08287442 .string "{STR_VAR_2} and the WINNING RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText12:: @ 08287508 +TVSpotTheCuties_Text_RibbonVictory:: .string "The VICTORY RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it for its feats\n" @@ -1850,7 +1852,7 @@ gTVCutiesText12:: @ 08287508 .string "{STR_VAR_2} and the VICTORY RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText13:: @ 082875D9 +TVSpotTheCuties_Text_RibbonArtist:: .string "The ARTIST RIBBON is especially\n" .string "fetching.\p" .string "{STR_VAR_2} received it for being\n" @@ -1860,7 +1862,7 @@ gTVCutiesText13:: @ 082875D9 .string "{STR_VAR_2} and the ARTIST RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText14:: @ 082876A1 +TVSpotTheCuties_Text_RibbonEffort:: .string "The Hard Worker RIBBON is\n" .string "especially fetching.\p" .string "{STR_VAR_2} received it for being\n" @@ -1870,139 +1872,139 @@ gTVCutiesText14:: @ 082876A1 .string "{STR_VAR_2} and the Hard Worker RIBBON!\n" .string "The combination is super effective!$" -gTVCutiesText15:: @ 08287779 +TVSpotTheCuties_Text_Outro:: .string "…Sigh…\p" .string "RIBBONS and POKéMON…\n" .string "They go so wonderfully together!\p" .string "Before I swoon,\n" .string "I bid you all farewell!$" -gTVPokemonNewsBattleFrontierText00:: @ 082877DE +gTVPokemonNewsBattleFrontierText00:: .string "Greetings!\n" .string "It's time for POKéMON NEWS.\p" .string "We've got some uplifting news from\n" .string "the BATTLE FRONTIER.$" -gTVPokemonNewsBattleFrontierText01:: @ 0828783D +gTVPokemonNewsBattleFrontierText01:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while on\l" .string "the BATTLE TOWER's SINGLE BATTLE\l" .string "ROOM challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText02:: @ 082878B3 +gTVPokemonNewsBattleFrontierText02:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while on\l" .string "the BATTLE TOWER's DOUBLE BATTLE\l" .string "ROOM challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText03:: @ 08287929 +gTVPokemonNewsBattleFrontierText03:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while on\l" .string "the BATTLE TOWER's MULTI BATTLE\l" .string "ROOM challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText04:: @ 0828799E +gTVPokemonNewsBattleFrontierText04:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while on\l" .string "the BATTLE TOWER's LINK MULTI BATTLE\l" .string "ROOM challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText05:: @ 08287A18 +gTVPokemonNewsBattleFrontierText05:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-championship-streak record\l" .string "competing in the BATTLE DOME's\l" .string "SINGLE BATTLE Tournaments.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText06:: @ 08287A97 +gTVPokemonNewsBattleFrontierText06:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-championship-streak record\l" .string "competing in the BATTLE DOME's\l" .string "DOUBLE BATTLE Tournaments.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText07:: @ 08287B16 +gTVPokemonNewsBattleFrontierText07:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while on\l" .string "the BATTLE FACTORY's Battle\l" .string "Swap Single challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText08:: @ 08287B8E +gTVPokemonNewsBattleFrontierText08:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while on\l" .string "the BATTLE FACTORY's Battle\l" .string "Swap Double challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText09:: @ 08287C06 +gTVPokemonNewsBattleFrontierText09:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "record of clearing {STR_VAR_2} rooms\l" .string "while on the BATTLE PIKE's Battle\l" .string "Choice challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText10:: @ 08287C7D +gTVPokemonNewsBattleFrontierText10:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while\l" .string "competing in the BATTLE ARENA's\l" .string "Set KO Tournaments.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText11:: @ 08287CF3 +gTVPokemonNewsBattleFrontierText11:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while on\l" .string "the BATTLE PALACE's SINGLE BATTLE\l" .string "HALL challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText12:: @ 08287D6A +gTVPokemonNewsBattleFrontierText12:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "{STR_VAR_2}-win-streak record while on\l" .string "the BATTLE PALACE's DOUBLE BATTLE\l" .string "HALL challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText13:: @ 08287DE1 +gTVPokemonNewsBattleFrontierText13:: .string "The TRAINER {STR_VAR_1} set a new\n" .string "record of clearing {STR_VAR_2} floors\l" .string "while on the BATTLE PYRAMID's\l" .string "Battle Quest challenge.\p" .string "Here's to {STR_VAR_1}!$" -gTVPokemonNewsBattleFrontierText14:: @ 08287E5B +gTVPokemonNewsBattleFrontierText14:: .string "And to the three POKéMON, {STR_VAR_1},\n" .string "{STR_VAR_2}, and {STR_VAR_3}!\p" .string "Congratulations for your\n" .string "record-breaking performance!$" -gTVPokemonNewsBattleFrontierText15:: @ 08287EBB +gTVPokemonNewsBattleFrontierText15:: .string "And to the two POKéMON, {STR_VAR_1}\n" .string "and {STR_VAR_2}!\p" .string "Congratulations for your\n" .string "record-breaking performance!$" -gTVPokemonNewsBattleFrontierText16:: @ 08287F14 +gTVPokemonNewsBattleFrontierText16:: .string "And to the four POKéMON: {STR_VAR_1}!\p" .string "{STR_VAR_2}!\p" .string "{STR_VAR_3}!$" -gTVPokemonNewsBattleFrontierText17:: @ 08287F39 +gTVPokemonNewsBattleFrontierText17:: .string "And {STR_VAR_1}!\p" .string "Congratulations for your\n" .string "record-breaking performance!$" -gTVPokemonNewsBattleFrontierText18:: @ 08287F77 +gTVPokemonNewsBattleFrontierText18:: .string "Let's hope for more record-setting\n" .string "feats from {STR_VAR_1} and the loyal\l" .string "POKéMON!\p" .string "That's the news on POKéMON NEWS!$" -gTVWhatsNo1InHoennTodayText00:: @ 08287FE0 +gTVWhatsNo1InHoennTodayText00:: .string "WHAT'S NO. 1 IN HOENN TODAY?\n" .string "Yes, it's that time again!\p" .string "Hello, viewers! Are you giving your\n" @@ -2012,7 +2014,7 @@ gTVWhatsNo1InHoennTodayText00:: @ 08287FE0 .string "Today's no. 1 TRAINER is none other\n" .string "than {STR_VAR_1}!$" -gTVWhatsNo1InHoennTodayText01:: @ 082880C0 +gTVWhatsNo1InHoennTodayText01:: .string "In one day, {STR_VAR_1} spun the SLOTS\n" .string "at the GAME CORNER {STR_VAR_2} times.\p" .string "While playing, {STR_VAR_1} was heard\n" @@ -2020,7 +2022,7 @@ gTVWhatsNo1InHoennTodayText01:: @ 082880C0 .string "even move…”\l" .string "Isn't that interesting?$" -gTVWhatsNo1InHoennTodayText02:: @ 0828815F +gTVWhatsNo1InHoennTodayText02:: .string "In one day, {STR_VAR_1} played\n" .string "the ROULETTE game at the GAME\l" .string "CORNER {STR_VAR_2} times.\p" @@ -2029,7 +2031,7 @@ gTVWhatsNo1InHoennTodayText02:: @ 0828815F .string "The TRAINER's eyes were focused and\n" .string "the face showed concentration.$" -gTVWhatsNo1InHoennTodayText03:: @ 0828821A +gTVWhatsNo1InHoennTodayText03:: .string "In one day, {STR_VAR_1} battled\n" .string "wild POKéMON {STR_VAR_2} times!\p" .string "Apparently, {STR_VAR_1}'s POKéMON\n" @@ -2037,7 +2039,7 @@ gTVWhatsNo1InHoennTodayText03:: @ 0828821A .string "They appear eager to battle anywhere,\n" .string "anytime, and anyhow!$" -gTVWhatsNo1InHoennTodayText04:: @ 082882BE +gTVWhatsNo1InHoennTodayText04:: .string "In just one day, {STR_VAR_1} spun\n" .string "the BERRY BLENDER {STR_VAR_2} times!\p" .string "Toward the end, even {STR_VAR_1}\n" @@ -2045,7 +2047,7 @@ gTVWhatsNo1InHoennTodayText04:: @ 082882BE .string "The TRAINER appeared to totter\n" .string "around like a SPINDA!$" -gTVWhatsNo1InHoennTodayText05:: @ 08288355 +gTVWhatsNo1InHoennTodayText05:: .string "In just one day, {STR_VAR_1} planted\n" .string "{STR_VAR_2} BERRIES!\p" .string "As a result, {STR_VAR_1}'s clothes\n" @@ -2055,14 +2057,14 @@ gTVWhatsNo1InHoennTodayText05:: @ 08288355 .string "The flowers are said to soothe\n" .string "the emotions of people.$" -gTVWhatsNo1InHoennTodayText06:: @ 0828842B +gTVWhatsNo1InHoennTodayText06:: .string "In just one day, {STR_VAR_1} picked\n" .string "{STR_VAR_2} BERRIES!\p" .string "{STR_VAR_1}'s BAG became so filled\n" .string "with BERRIES, the TRAINER had trouble\l" .string "walking afterward!$" -gTVWhatsNo1InHoennTodayText07:: @ 082884A5 +gTVWhatsNo1InHoennTodayText07:: .string "In just one day, {STR_VAR_1} obtained\n" .string "{STR_VAR_2} Battle Points!\p" .string "{STR_VAR_1} was later seen wrestling\n" @@ -2072,14 +2074,14 @@ gTVWhatsNo1InHoennTodayText07:: @ 082884A5 .string "The TRAINER reportedly was grinning\n" .string "while mulling options.$" -gTVWhatsNo1InHoennTodayText08:: @ 0828858B +gTVWhatsNo1InHoennTodayText08:: .string "Well, isn't that something!\p" .string "{STR_VAR_1}!\n" .string "You're today's no. 1 TRAINER!\p" .string "Viewers, take heart from {STR_VAR_1}!\n" .string "You, too, can be no. 1 every day!$" -TVSecretBaseSecrets_Text_Intro:: @ 08288608 +TVSecretBaseSecrets_Text_Intro:: .string "SECRET BASE SECRETS!\p" .string "What do TRAINERS do in the secrecy\n" .string "of SECRET BASES?\p" @@ -2090,88 +2092,88 @@ TVSecretBaseSecrets_Text_Intro:: @ 08288608 .string "Let's have a peek!\p" .string "What will {STR_VAR_2} do?$" -TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1:: @ 082886C8 +TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1:: .string "What will {STR_VAR_2} do next?$" -TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2:: @ 082886DE +TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2:: .string "And now, what will {STR_VAR_2} do?$" -TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving:: @ 082886F8 +TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving:: .string "In the end, {STR_VAR_2} took {STR_VAR_3} steps\n" .string "in {STR_VAR_1}'s SECRET BASE before\l" .string "leaving.$" -TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer:: @ 08288739 +TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer:: .string "Hmm…\p" .string "It appears as if {STR_VAR_1}'s SECRET\n" .string "BASE failed to interest {STR_VAR_2}…$" -TVSecretBaseSecrets_Text_PlayerEnjoyedBase:: @ 08288777 +TVSecretBaseSecrets_Text_PlayerEnjoyedBase:: .string "{STR_VAR_2} appears to have enjoyed\n" .string "{STR_VAR_1}'s SECRET BASE thoroughly.$" -TVSecretBaseSecrets_Text_PlayerHugeFanOfBase:: @ 082887AF +TVSecretBaseSecrets_Text_PlayerHugeFanOfBase:: .string "{STR_VAR_2} appears to have become\n" .string "a huge fan of {STR_VAR_1}'s\l" .string "SECRET BASE.$" -TVSecretBaseSecrets_Text_Outro:: @ 082887E9 +TVSecretBaseSecrets_Text_Outro:: .string "Viewers may want to check out\n" .string "{STR_VAR_1}'s SECRET BASE, too.\p" .string "Tune in next time as we visit another\n" .string "SECRET BASE! Thanks for joining us!$" -TVSecretBaseSecrets_Text_StoppedMoving1:: @ 08288868 +TVSecretBaseSecrets_Text_StoppedMoving1:: .string "The visitor has stopped!\p" .string "The visitor isn't moving at all!\p" .string "Was {STR_VAR_1}'s SECRET BASE\n" .string "that unimpressive?$" -TVSecretBaseSecrets_Text_StoppedMoving2:: @ 082888CA +TVSecretBaseSecrets_Text_StoppedMoving2:: .string "The visitor has stopped!\p" .string "The visitor isn't moving at all!\p" .string "Is it fatigue?\n" .string "Has the visitor grown weary?$" -TVSecretBaseSecrets_Text_UsedChair:: @ 08288930 +TVSecretBaseSecrets_Text_UsedChair:: .string "The visitor sat down on a chair!\n" .string "The visitor is seated!\p" .string "Look at that look of delight!\p" .string "That chair must be very comfortable\n" .string "to get that response!$" -TVSecretBaseSecrets_Text_UsedBalloon:: @ 082889C0 +TVSecretBaseSecrets_Text_UsedBalloon:: .string "The visitor charged at a balloon!\p" .string "It burst!\n" .string "Oh, my goodness, it popped!\p" .string "The visitor appears startled by\n" .string "the sudden noise!$" -TVSecretBaseSecrets_Text_UsedTent:: @ 08288A3A +TVSecretBaseSecrets_Text_UsedTent:: .string "The visitor entered a TENT!\p" .string "The visitor is running around!\p" .string "Oh, my, the visitor is frolicking!\p" .string "The visitor appears surprised by\n" .string "the TENT's size!$" -TVSecretBaseSecrets_Text_UsedPlant:: @ 08288ACA +TVSecretBaseSecrets_Text_UsedPlant:: .string "The visitor is examining\n" .string "a potted plant!\p" .string "The visitor has surprisingly\n" .string "mature taste!$" -TVSecretBaseSecrets_Text_UsedGoldShield:: @ 08288B1E +TVSecretBaseSecrets_Text_UsedGoldShield:: .string "The visitor is examining\n" .string "a GOLD SHIELD!\p" .string "The visitor's eyes appear to be\n" .string "lit up with wonder!$" -TVSecretBaseSecrets_Text_UsedSilverShield:: @ 08288B7A +TVSecretBaseSecrets_Text_UsedSilverShield:: .string "The visitor is examining\n" .string "a SILVER SHIELD!\p" .string "The visitor appears to be wide-eyed!$" -TVSecretBaseSecrets_Text_UsedGlassOrnament:: @ 08288BC9 +TVSecretBaseSecrets_Text_UsedGlassOrnament:: .string "The visitor is examining\n" .string "a GLASS ORNAMENT!\p" .string "Oh, no!\p" @@ -2179,15 +2181,15 @@ TVSecretBaseSecrets_Text_UsedGlassOrnament:: @ 08288BC9 .string "It's getting covered with\n" .string "fingerprints…$" -TVSecretBaseSecrets_Text_UsedTV:: @ 08288C40 +TVSecretBaseSecrets_Text_UsedTV:: .string "The visitor is watching television!\p" .string "Looks like we have a big fan of TV!$" -TVSecretBaseSecrets_Text_UsedMudBall:: @ 08288C88 +TVSecretBaseSecrets_Text_UsedMudBall:: .string "The visitor stomped on a MUD BALL!\p" .string "The visitor looks delighted!$" -TVSecretBaseSecrets_Text_UsedBag:: @ 08288CC8 +TVSecretBaseSecrets_Text_UsedBag:: .string "…Oh?\p" .string "The visitor is reaching for their own\n" .string "BAG and rummaging about in it!\p" @@ -2197,19 +2199,19 @@ TVSecretBaseSecrets_Text_UsedBag:: @ 08288CC8 .string "holding up the {STR_VAR_2}!\p" .string "It's like a TV commercial!$" -TVSecretBaseSecrets_Text_UsedCushion:: @ 08288D7F +TVSecretBaseSecrets_Text_UsedCushion:: .string "The visitor grabs a cushion and…$" -TVSecretBaseSecrets_Text_HitCushion:: @ 08288DA0 +TVSecretBaseSecrets_Text_HitCushion:: .string "…begins hitting it!\p" .string "Is the visitor under a lot of stress?$" -TVSecretBaseSecrets_Text_HuggedCushion:: @ 08288DDA +TVSecretBaseSecrets_Text_HuggedCushion:: .string "…hugs it tight!\p" .string "Could the visitor be feeling happy\n" .string "about something?$" -TVSecretBaseSecrets_Text_BattledWon:: @ 08288E1E +TVSecretBaseSecrets_Text_BattledWon:: .string "The visitor is chatting with\n" .string "{STR_VAR_1}!\p" .string "It looks like they're going to\n" @@ -2220,7 +2222,7 @@ TVSecretBaseSecrets_Text_BattledWon:: @ 08288E1E .string "The visitor is doing\n" .string "a victory dance!$" -TVSecretBaseSecrets_Text_BattledLost:: @ 08288EC9 +TVSecretBaseSecrets_Text_BattledLost:: .string "The visitor is chatting with\n" .string "{STR_VAR_1}!\p" .string "It looks like they're going to\n" @@ -2230,7 +2232,7 @@ TVSecretBaseSecrets_Text_BattledLost:: @ 08288EC9 .string "The visitor has lost!\p" .string "The visitor looks dejected!$" -TVSecretBaseSecrets_Text_DeclinedBattle:: @ 08288F58 +TVSecretBaseSecrets_Text_DeclinedBattle:: .string "The visitor is chatting with\n" .string "{STR_VAR_1}!\p" .string "It looks like they're going to\n" @@ -2241,7 +2243,7 @@ TVSecretBaseSecrets_Text_DeclinedBattle:: @ 08288F58 .string "Did the visitor find {STR_VAR_1}\n" .string "unappealing?$" -TVSecretBaseSecrets_Text_UsedPoster:: @ 08289011 +TVSecretBaseSecrets_Text_UsedPoster:: .string "The visitor is staring intently\n" .string "at a poster!\p" .string "Is the poster to the visitor's\n" @@ -2249,12 +2251,12 @@ TVSecretBaseSecrets_Text_UsedPoster:: @ 08289011 .string "…But… There's something disturbing\n" .string "about the visitor's stares.$" -TVSecretBaseSecrets_Text_UsedNoteMat:: @ 082890A4 +TVSecretBaseSecrets_Text_UsedNoteMat:: .string "The visitor stepped on a NOTE MAT!\p" .string "…Hmm…\n" .string "The visitor composed a funny tune!$" -TVSecretBaseSecrets_Text_BattledDraw:: @ 082890F0 +TVSecretBaseSecrets_Text_BattledDraw:: .string "The visitor is chatting with\n" .string "{STR_VAR_1}!\p" .string "It looks like they're going to\n" @@ -2265,14 +2267,14 @@ TVSecretBaseSecrets_Text_BattledDraw:: @ 082890F0 .string "Both TRAINERS appear to be very\n" .string "disappointed!$" -TVSecretBaseSecrets_Text_UsedSpinMat:: @ 08289193 +TVSecretBaseSecrets_Text_UsedSpinMat:: .string "The visitor stepped on\n" .string "a SPIN MAT!\p" .string "It looks like the visitor is dizzy!\p" .string "The visitor is tottering about!\n" .string "Look out!$" -TVSecretBaseSecrets_Text_UsedSandOrnament:: @ 08289204 +TVSecretBaseSecrets_Text_UsedSandOrnament:: .string "The visitor is reaching for\n" .string "a SAND ORNAMENT!\p" .string "Oh!\p" @@ -2281,7 +2283,7 @@ TVSecretBaseSecrets_Text_UsedSandOrnament:: @ 08289204 .string "The visitor looks sheepish\n" .string "and guilty!$" -TVSecretBaseSecrets_Text_UsedDesk:: @ 0828927C +TVSecretBaseSecrets_Text_UsedDesk:: .string "The visitor is rubbing a desktop\n" .string "with their finger!\p" .string "Apparently, the visitor disapproves\n" @@ -2289,25 +2291,25 @@ TVSecretBaseSecrets_Text_UsedDesk:: @ 0828927C .string "The visitor is surprisingly concerned\n" .string "about neatness!$" -TVSecretBaseSecrets_Text_UsedBrick:: @ 08289313 +TVSecretBaseSecrets_Text_UsedBrick:: .string "The visitor is staring at a BRICK!\p" .string "Perhaps the visitor is thinking about\n" .string "the object on the BRICK.$" -TVSecretBaseSecrets_Text_UsedSolidBoard:: @ 08289375 +TVSecretBaseSecrets_Text_UsedSolidBoard:: .string "The visitor is walking across\n" .string "the SOLID BOARD.\p" .string "The visitor keeps looking down.\p" .string "The visitor appears to be surprisingly\n" .string "timid and cautious!$" -TVSecretBaseSecrets_Text_UsedFence:: @ 082893FF +TVSecretBaseSecrets_Text_UsedFence:: .string "The visitor is looking intently\n" .string "at a FENCE!\p" .string "Has a new idea for a trap popped\n" .string "into the visitor's head?$" -TVSecretBaseSecrets_Text_UsedGlitterMat:: @ 08289465 +TVSecretBaseSecrets_Text_UsedGlitterMat:: .string "The visitor stepped on\n" .string "a GLITTER MAT!\p" .string "The visitor is striking a variety\n" @@ -2315,13 +2317,13 @@ TVSecretBaseSecrets_Text_UsedGlitterMat:: @ 08289465 .string "The visitor appears to be fantasizing\n" .string "about being an idol!$" -TVSecretBaseSecrets_Text_UsedTire:: @ 082894F2 +TVSecretBaseSecrets_Text_UsedTire:: .string "The visitor is staring intently\n" .string "at a TIRE!\p" .string "Could the visitor be thinking about\n" .string "the kind of car that would use it?$" -TVSecretBaseSecrets_Text_UsedStand:: @ 08289564 +TVSecretBaseSecrets_Text_UsedStand:: .string "The visitor climbed a STAND!\p" .string "The visitor is looking out across\n" .string "{STR_VAR_1}'s BASE from high up!\p" @@ -2329,16 +2331,16 @@ TVSecretBaseSecrets_Text_UsedStand:: @ 08289564 .string "Lets loose a roar!\n" .string "The visitor is roaring!$" -TVSecretBaseSecrets_Text_BrokeDoor:: @ 082895EB +TVSecretBaseSecrets_Text_BrokeDoor:: .string "The visitor charged headlong into\n" .string "a BREAKABLE DOOR!\p" .string "The visitor is laughing uproariously!$" -TVSecretBaseSecrets_Text_UsedDoll:: @ 08289645 +TVSecretBaseSecrets_Text_UsedDoll:: .string "The visitor is talking to a DOLL!\p" .string "…It's a little creepy…$" -TVSecretBaseSecrets_Text_UsedSlide:: @ 0828967E +TVSecretBaseSecrets_Text_UsedSlide:: .string "The visitor is climbing the ladder\n" .string "on a SLIDE!\p" .string "And…\p" @@ -2346,7 +2348,7 @@ TVSecretBaseSecrets_Text_UsedSlide:: @ 0828967E .string "Looks like the visitor is having\n" .string "a grand old time!$" -TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown:: @ 082896FC +TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown:: .string "The visitor is climbing the ladder\n" .string "on a SLIDE!\p" .string "And…\p" @@ -2354,7 +2356,7 @@ TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown:: @ 082896FC .string "the ladder!\p" .string "Did the visitor suddenly chicken out?$" -TVSecretBaseSecrets_Text_UsedJumpMat:: @ 0828977D +TVSecretBaseSecrets_Text_UsedJumpMat:: .string "The visitor stepped on\n" .string "a JUMP MAT!\p" .string "The visitor jumped once!\p" @@ -2363,7 +2365,7 @@ TVSecretBaseSecrets_Text_UsedJumpMat:: @ 0828977D .string "The visitor is clapping!\n" .string "What a solo performance!$" -gTVSafariFanClubText00:: @ 08289813 +gTVSafariFanClubText00:: .string "SAFARI FAN CLUB!\p" .string "REPORTER: All right, mates!\n" .string "Tossing them SAFARI BALLS, are you?\p" @@ -2374,69 +2376,69 @@ gTVSafariFanClubText00:: @ 08289813 .string "All right, mate, how are the visiting\n" .string "TRAINERS looking?$" -gTVSafariFanClubText01:: @ 0828992F +gTVSafariFanClubText01:: .string "GUIDE: Everyone seems to be going\n" .string "hard at it.\p" .string "{STR_VAR_1} is doing especially well.\p" .string "Why, before, {STR_VAR_1} caught\n" .string "{STR_VAR_2} POKéMON.$" -gTVSafariFanClubText02:: @ 0828999D +gTVSafariFanClubText02:: .string "The TRAINER is clever with {POKEBLOCK}S.\n" .string "Used {STR_VAR_2} that time, I think.$" -gTVSafariFanClubText03:: @ 082899DC +gTVSafariFanClubText03:: .string "The TRAINER didn't use a single\n" .string "{POKEBLOCK}! Not a one!\p" .string "There's an expert for you.$" -gTVSafariFanClubText04:: @ 08289A29 +gTVSafariFanClubText04:: .string "REPORTER: Is that right, then?\p" .string "Sounds like our mate {STR_VAR_1}\n" .string "is a stout SAFARI master!\p" .string "GUIDE: I hope the TRAINER comes back\n" .string "and shows us that great technique.$" -gTVSafariFanClubText05:: @ 08289AC2 +gTVSafariFanClubText05:: .string "GUIDE: No one seems to be doing\n" .string "very well.\p" .string "{STR_VAR_1} had it especially bad.\p" .string "Why, before, the TRAINER only\n" .string "managed to catch {STR_VAR_2} POKéMON.$" -gTVSafariFanClubText06:: @ 08289B42 +gTVSafariFanClubText06:: .string "GUIDE: No one seems to be doing\n" .string "very well.\p" .string "{STR_VAR_1} had it especially bad.\p" .string "Why, before, the TRAINER didn't\n" .string "catch one POKéMON. Not a one!$" -gTVSafariFanClubText07:: @ 08289BC5 +gTVSafariFanClubText07:: .string "The TRAINER does use {POKEBLOCK}S.\n" .string "Used {STR_VAR_2} that time, I think.\p" .string "But, boy, I wish the TRAINER would\n" .string "get a bit better at this.$" -gTVSafariFanClubText08:: @ 08289C3B +gTVSafariFanClubText08:: .string "I think the TRAINER would have better\n" .string "luck using {POKEBLOCK}S, which weren't\l" .string "used at all that time.$" -gTVSafariFanClubText09:: @ 08289C99 +gTVSafariFanClubText09:: .string "REPORTER: Is that right, then?\p" .string "Sounds like our mate {STR_VAR_1}\n" .string "needs more SAFARI seasoning.\p" .string "GUIDE: I hope the TRAINER visits\n" .string "over and over to get the hang of it.$" -gTVSafariFanClubText10:: @ 08289D33 +gTVSafariFanClubText10:: .string "REPORTER: Quite right, it is!\n" .string "Facing up to challenges is important!\p" .string "Viewers, come on down to the SAFARI\n" .string "and make the challenge yourself!\p" .string "Until next time, cheerio!$" -ContestLiveUpdates_Text_Intro:: @ 08289DD6 +ContestLiveUpdates_Text_Intro:: .string "“POKéMON CONTEST LIVE UPDATES!”\p" .string "MC: Thanks for joining us!\p" .string "We're live from the just-ended\n" @@ -2455,117 +2457,117 @@ ContestLiveUpdates_Text_Intro:: @ 08289DD6 .string "MC: Let's hear what the fans have\n" .string "to say about this CONTEST.$" -ContestLiveUpdates_Text_WonBothRounds:: @ 08289F53 +ContestLiveUpdates_Text_WonBothRounds:: .string "Spectator: The {STR_VAR_2} was tops in\n" .string "both primary and secondary judging!\p" .string "That {STR_VAR_2} will keep winning!$" -ContestLiveUpdates_Text_BetterRound2:: @ 08289FB0 +ContestLiveUpdates_Text_BetterRound2:: .string "Spectator: The {STR_VAR_2} didn't do\n" .string "well in the primary judging, but it\l" .string "cleaned up in the secondary judging!\p" .string "It was a miraculous comeback\n" .string "for that {STR_VAR_2}. Yippee!$" -ContestLiveUpdates_Text_EqualRounds:: @ 0828A047 +ContestLiveUpdates_Text_EqualRounds:: .string "Spectator: The {STR_VAR_2} remained\n" .string "consistent throughout both primary\l" .string "and secondary judging.\p" .string "{STR_VAR_3} and the {STR_VAR_2},\n" .string "they're no ordinary combo!$" -ContestLiveUpdates_Text_BetterRound1:: @ 0828A0C6 +ContestLiveUpdates_Text_BetterRound1:: .string "Spectator: In terms of being {STR_VAR_1},\n" .string "that {STR_VAR_2} was outstanding.\p" .string "I hope it makes better appeals\n" .string "next time, though.$" -ContestLiveUpdates_Text_GotNervous:: @ 0828A132 +ContestLiveUpdates_Text_GotNervous:: .string "Spectator: When the {STR_VAR_2} got\n" .string "nervous, I couldn't stop myself from\l" .string "shouting encouragement.\p" .string "I'd like to say this to that\n" .string "{STR_VAR_2}, “Congratulations!”$" -ContestLiveUpdates_Text_StartledFoes:: @ 0828A1BE +ContestLiveUpdates_Text_StartledFoes:: .string "Spectator: That {STR_VAR_2}'s appeal\n" .string "startled even me!\p" .string "{STR_VAR_2}, you were awesome!$" -ContestLiveUpdates_Text_UsedCombo:: @ 0828A202 +ContestLiveUpdates_Text_UsedCombo:: .string "Spectator: That {STR_VAR_2}'s combo\n" .string "appeal was stunning!\p" .string "It's shaken me to the core!$" -ContestLiveUpdates_Text_ExcitingAppeal:: @ 0828A24E +ContestLiveUpdates_Text_ExcitingAppeal:: .string "Spectator: The winning {STR_VAR_2}'s\n" .string "appeal got my heart pounding!$" -ContestLiveUpdates_Text_WasCool:: @ 0828A288 +ContestLiveUpdates_Text_WasCool:: .string "{STR_VAR_2}!\n" .string "You were cool!$" -ContestLiveUpdates_Text_WasBeautiful:: @ 0828A29B +ContestLiveUpdates_Text_WasBeautiful:: .string "{STR_VAR_2}!\n" .string "You were beautiful!$" -ContestLiveUpdates_Text_WasCute:: @ 0828A2B3 +ContestLiveUpdates_Text_WasCute:: .string "{STR_VAR_2}!\n" .string "You were cute!$" -ContestLiveUpdates_Text_WasSmart:: @ 0828A2C6 +ContestLiveUpdates_Text_WasSmart:: .string "{STR_VAR_2}!\n" .string "You were smart!$" -ContestLiveUpdates_Text_WasTough:: @ 0828A2DA +ContestLiveUpdates_Text_WasTough:: .string "{STR_VAR_2}!\n" .string "You were tough!$" -ContestLiveUpdates_Text_VeryExcitingAppeal:: @ 0828A2EE +ContestLiveUpdates_Text_VeryExcitingAppeal:: .string "Spectator: The winning {STR_VAR_2}'s\n" .string "appeal still has my heart pounding!$" -ContestLiveUpdates_Text_VeryCool:: @ 0828A32E +ContestLiveUpdates_Text_VeryCool:: .string "{STR_VAR_2}!\n" .string "You're the last word in cool!$" -ContestLiveUpdates_Text_VeryBeautiful:: @ 0828A350 +ContestLiveUpdates_Text_VeryBeautiful:: .string "{STR_VAR_2}!\n" .string "You're the most beautiful!$" -ContestLiveUpdates_Text_VeryCute:: @ 0828A36F +ContestLiveUpdates_Text_VeryCute:: .string "{STR_VAR_2}!\n" .string "You're simply the cutest!$" -ContestLiveUpdates_Text_VerySmart:: @ 0828A38D +ContestLiveUpdates_Text_VerySmart:: .string "{STR_VAR_2}!\n" .string "You're the smartest among the smart!$" -ContestLiveUpdates_Text_VeryTough:: @ 0828A3B6 +ContestLiveUpdates_Text_VeryTough:: .string "{STR_VAR_2}!\n" .string "You're the toughest of the tough!$" -ContestLiveUpdates_Text_TookBreak:: @ 0828A3DC +ContestLiveUpdates_Text_TookBreak:: .string "Spectator: Even when the {STR_VAR_2}\n" .string "took a break from making appeals,\l" .string "I couldn't take my eyes off it.\p" .string "I'm captivated by that {STR_VAR_2}.$" -ContestLiveUpdates_Text_GotStartled:: @ 0828A455 +ContestLiveUpdates_Text_GotStartled:: .string "Spectator: When the {STR_VAR_2} was\n" .string "startled by another POKéMON's appeal,\l" .string "I was close to tears.\p" .string "{STR_VAR_2}, you were resilient!\n" .string "Way to go!$" -ContestLiveUpdates_Text_MoveWonderful:: @ 0828A4CF +ContestLiveUpdates_Text_MoveWonderful:: .string "Spectator: Oh…\n" .string "That {STR_VAR_2}'s {STR_VAR_3}!\l" .string "{STR_VAR_2}'s {STR_VAR_3}!\l" .string "{STR_VAR_2}'s {STR_VAR_3}!\l" .string "How could it be so wonderful?$" -ContestLiveUpdates_Text_TalkAboutAnotherMon:: @ 0828A51C +ContestLiveUpdates_Text_TalkAboutAnotherMon:: .string "MC: Well, there you have it. This place\n" .string "is full of the {STR_VAR_1}'s fans!\p" .string "I should also mention that another\n" @@ -2573,20 +2575,20 @@ ContestLiveUpdates_Text_TalkAboutAnotherMon:: @ 0828A51C .string "caught my eye.\p" .string "{STR_VAR_2}'s {STR_VAR_3}…$" -ContestLiveUpdates_Text_FailedToAppeal:: @ 0828A5AC +ContestLiveUpdates_Text_FailedToAppeal:: .string "It failed to make a single appeal during\n" .string "secondary judging out of nervousness.\p" .string "Next time, I would like to see this\n" .string "{STR_VAR_1} make even one appeal.$" -ContestLiveUpdates_Text_LastInBothRounds:: @ 0828A638 +ContestLiveUpdates_Text_LastInBothRounds:: .string "It came dead last in both primary\n" .string "and secondary judging.\p" .string "I hope that {STR_VAR_1} will retrain this\n" .string "{STR_VAR_2} and erase the shame of\l" .string "this undisputed last-place finish.$" -ContestLiveUpdates_Text_NotExcitingEnough:: @ 0828A6CF +ContestLiveUpdates_Text_NotExcitingEnough:: .string "It failed to take advantage of\n" .string "the audience's excitement and make\l" .string "an appropriate appeal.\p" @@ -2594,7 +2596,7 @@ ContestLiveUpdates_Text_NotExcitingEnough:: @ 0828A6CF .string "a feel for the audience and whip their\l" .string "excitement to a fever pitch next time.$" -ContestLiveUpdates_Text_LostAfterWinningRound1:: @ 0828A797 +ContestLiveUpdates_Text_LostAfterWinningRound1:: .string "While finishing first in the primary\n" .string "judging, its appeals in the secondary\l" .string "judging failed to click.\p" @@ -2603,14 +2605,14 @@ ContestLiveUpdates_Text_LostAfterWinningRound1:: @ 0828A797 .string "I'm sure {STR_VAR_1} is studying how to\n" .string "make more effective appeals now.$" -ContestLiveUpdates_Text_NeverExciting:: @ 0828A86D +ContestLiveUpdates_Text_NeverExciting:: .string "The audience never got excited by its\n" .string "appeals during the secondary judging.\p" .string "We hope it will stop worrying about\n" .string "other POKéMON and learn to pitch\l" .string "its appeals to the audience more.$" -ContestLiveUpdates_Text_LostBySmallMargin:: @ 0828A920 +ContestLiveUpdates_Text_LostBySmallMargin:: .string "It lost to {STR_VAR_1}'s {STR_VAR_2}\n" .string "by only a small margin.\p" .string "It must be heartbreaking to come\n" @@ -2618,7 +2620,7 @@ ContestLiveUpdates_Text_LostBySmallMargin:: @ 0828A920 .string "I wouldn't be surprised if {STR_VAR_3}\n" .string "were weeping over this outcome.$" -ContestLiveUpdates_Text_RepeatedAppeals:: @ 0828A9CC +ContestLiveUpdates_Text_RepeatedAppeals:: .string "It disappointed the JUDGE by\n" .string "repeating the same appeals.\p" .string "It's an unforgivable error in any\n" @@ -2626,14 +2628,14 @@ ContestLiveUpdates_Text_RepeatedAppeals:: @ 0828A9CC .string "{STR_VAR_1} should feel guilty for\n" .string "this sorry showing.$" -ContestLiveUpdates_Text_ValiantEffortButLost:: @ 0828AA74 +ContestLiveUpdates_Text_ValiantEffortButLost:: .string "{STR_VAR_1} turned in a valiant effort,\n" .string "but…\p" .string "It was all for naught, finishing last.\p" .string "{STR_VAR_1} should learn from this loss\n" .string "and put the knowledge to good use.$" -ContestLiveUpdates_Text_Outro:: @ 0828AB01 +ContestLiveUpdates_Text_Outro:: .string "I'd like to end this program with our\n" .string "usual farewell to the winners.\p" .string "This time, it's {STR_VAR_1} and\n" @@ -2644,28 +2646,28 @@ ContestLiveUpdates_Text_Outro:: @ 0828AB01 .string "Congratulations!\l" .string "You're the CONTEST winner!$" -gTVPokemonBattleUpdateText00:: @ 0828ABCC +gTVPokemonBattleUpdateText00:: .string "“POKéMON BATTLE UPDATE!”\p" .string "Bringing you the results of POKéMON\n" .string "battles as they come in!$" -gTVPokemonBattleUpdateText01:: @ 0828AC22 +gTVPokemonBattleUpdateText01:: .string "The TRAINERS {STR_VAR_1} and\n" .string "{STR_VAR_2} faced each other in\l" .string "a {STR_VAR_3} BATTLE.\p" .string "This match ended in victory for\n" .string "{STR_VAR_1}!$" -gTVPokemonBattleUpdateText02:: @ 0828AC7E +gTVPokemonBattleUpdateText02:: .string "In the battle, {STR_VAR_1}'s\n" .string "{STR_VAR_2} was a formidable force\l" .string "using {STR_VAR_3}!$" -gTVPokemonBattleUpdateText03:: @ 0828ACB6 +gTVPokemonBattleUpdateText03:: .string "{STR_VAR_1}'s {STR_VAR_2} had a weak\n" .string "showing that really hurt.$" -gTVPokemonBattleUpdateText04:: @ 0828ACE3 +gTVPokemonBattleUpdateText04:: .string "Congratulations on your victory,\n" .string "{STR_VAR_1}!\p" .string "And for the defeated {STR_VAR_2},\n" @@ -2673,18 +2675,18 @@ gTVPokemonBattleUpdateText04:: @ 0828ACE3 .string "This concludes this episode of\n" .string "“POKéMON BATTLE UPDATE!”$" -gTVPokemonBattleUpdateText05:: @ 0828AD80 +gTVPokemonBattleUpdateText05:: .string "The teams of TRAINERS {STR_VAR_1} and\n" .string "{STR_VAR_2} met in a MULTI BATTLE.\p" .string "This match ended in victory for\n" .string "{STR_VAR_1}'s team.$" -gTVPokemonBattleUpdateText06:: @ 0828ADE2 +gTVPokemonBattleUpdateText06:: .string "In the battle, the {STR_VAR_2} on\n" .string "{STR_VAR_1}'s team was a formidable\l" .string "force using {STR_VAR_3}.$" -gTVPokemonBattleUpdateText07:: @ 0828AE26 +gTVPokemonBattleUpdateText07:: .string "The weak showing by the {STR_VAR_3}\n" .string "on {STR_VAR_2}'s team really hurt.\p" .string "Congratulations on your team's\n" @@ -2694,23 +2696,23 @@ gTVPokemonBattleUpdateText07:: @ 0828AE26 .string "This concludes this episode of\n" .string "“POKéMON BATTLE UPDATE!”$" -GabbyAndTy_Text_GabbyPreFirstBattle: @ 0828AF05 +GabbyAndTy_Text_GabbyPreFirstBattle: .string "GABBY: Oh! We've just spotted a tough-\n" .string "looking TRAINER here of all places!\p" .string "Okay, roll camera!\n" .string "Let's get this interview.$" -GabbyAndTy_Text_GabbyIntro: @ 0828AF7D +GabbyAndTy_Text_GabbyIntro: .string "GABBY: Oh! You're {PLAYER}! Hi!\n" .string "Do you remember us from last time?\p" .string "Can you show us how much stronger\n" .string "you've become? Okay, cue interview!$" -GabbyAndTy_Text_GabbyDefeatFirstTime: @ 0828B000 +GabbyAndTy_Text_GabbyDefeatFirstTime: .string "GABBY: My eyes didn't lie!\n" .string "I did discover an astonishing TRAINER!$" -GabbyAndTy_Text_WhoAreYouInterview: @ 0828B042 +GabbyAndTy_Text_WhoAreYouInterview: .string "GABBY: Awesome! Awesome!\n" .string "Who are you?!\p" .string "I knew we were onto something wild\n" @@ -2721,19 +2723,19 @@ GabbyAndTy_Text_WhoAreYouInterview: @ 0828B042 .string "So, would you give us a bit of your time\n" .string "for an interview?$" -GabbyAndTy_Text_QuoteFromLastInterview: @ 0828B137 +GabbyAndTy_Text_QuoteFromLastInterview: .string "GABBY: “{STR_VAR_1}!”\p" .string "Remember? That's the quote you gave\n" .string "us as the battle clincher last time.\p" .string "I never, ever forget stuff like that!$" -GabbyAndTy_Text_YouStompedUsInterviewAgain: @ 0828B1B3 +GabbyAndTy_Text_YouStompedUsInterviewAgain: .string "The last time we battled, you stomped\n" .string "us before we could brace ourselves…\p" .string "Anyway, what do you think?\n" .string "Do you want to be interviewed again?$" -GabbyAndTy_Text_YouThrewABallAtUsInterviewAgain: @ 0828B23D +GabbyAndTy_Text_YouThrewABallAtUsInterviewAgain: .string "The last time we battled, didn't you\n" .string "throw a POKé BALL at us?\p" .string "We were shocked! So we told everyone,\n" @@ -2741,30 +2743,30 @@ GabbyAndTy_Text_YouThrewABallAtUsInterviewAgain: @ 0828B23D .string "Anyway, what do you think?\n" .string "Do you want to be interviewed again?$" -GabbyAndTy_Text_CleverItemSkillsInterviewAgain: @ 0828B2FA +GabbyAndTy_Text_CleverItemSkillsInterviewAgain: .string "The last time we battled, your item\n" .string "skills cleverly did us in.\p" .string "Anyway, what do you think?\n" .string "Do you want to be interviewed again?$" -GabbyAndTy_Text_WeLookedRespectableInterviewAgain: @ 0828B379 +GabbyAndTy_Text_WeLookedRespectableInterviewAgain: .string "The last time we battled, we managed\n" .string "to look respectable.\p" .string "Anyway, what do you think?\n" .string "Do you want to be interviewed again?$" -GabbyAndTy_Text_InterviewAgain: @ 0828B3F3 +GabbyAndTy_Text_InterviewAgain: .string "Anyway, what do you think?\n" .string "Do you want to be interviewed again?$" -GabbyAndTy_Text_DescribeYourFeelings: @ 0828B433 +GabbyAndTy_Text_DescribeYourFeelings: .string "You will?\n" .string "Thank you!\p" .string "Okay, I need you to describe your\n" .string "feelings about our battle, but it\l" .string "has to be short and sweet. Go!$" -GabbyAndTy_Text_PerfectWellBeSeeingYou: @ 0828B4AB +GabbyAndTy_Text_PerfectWellBeSeeingYou: .string "GABBY: Mmm, yeah!\n" .string "That's the perfect clincher!\p" .string "I get the feeling that this will make\n" @@ -2774,20 +2776,20 @@ GabbyAndTy_Text_PerfectWellBeSeeingYou: @ 0828B4AB .string "Okay!\n" .string "We'll be seeing you!$" -GabbyAndTy_Text_DontGiveUpKeepingEyeOut: @ 0828B577 +GabbyAndTy_Text_DontGiveUpKeepingEyeOut: .string "GABBY: Oh…\p" .string "Okay, but don't give up!\n" .string "We'll be keeping an eye out for you!$" -GabbyAndTy_Text_KeepingAnEyeOutForYou: @ 0828B5C0 +GabbyAndTy_Text_KeepingAnEyeOutForYou: .string "GABBY: We'll be keeping an eye out\n" .string "for you!$" -GabbyAndTy_Text_GabbyNotEnoughMons: @ 0828B5EC +GabbyAndTy_Text_GabbyNotEnoughMons: .string "GABBY: Is there a strong TRAINER\n" .string "anywhere with a lot of POKéMON?$" -GabbyAndTy_Text_GiveUsAnInterviewThisTime: @ 0828B62D +GabbyAndTy_Text_GiveUsAnInterviewThisTime: .string "GABBY: Wow, you are something!\p" .string "You've gotten a lot stronger--a lot--\n" .string "since we last battled.\p" @@ -2797,40 +2799,40 @@ GabbyAndTy_Text_GiveUsAnInterviewThisTime: @ 0828B62D .string "Are you willing to give us an interview\l" .string "this time?$" -GabbyAndTy_Text_GabbyDefeat: @ 0828B719 +GabbyAndTy_Text_GabbyDefeat: .string "GABBY: That was an intense battle!\n" .string "Did you get all that on camera?$" -GabbyAndTy_Text_TyPreFirstBattle: @ 0828B75C +GabbyAndTy_Text_TyPreFirstBattle: .string "TY: Hey, lookie here! A tough-looking\n" .string "TRAINER here, of all places!\l" .string "Camera's rolling!$" -GabbyAndTy_Text_TyIntro: @ 0828B7B1 +GabbyAndTy_Text_TyIntro: .string "TY: Hey, lookie here!\n" .string "I remember you!\p" .string "I'll get this battle all on this\n" .string "here camera!$" -GabbyAndTy_Text_TyPostBattle: @ 0828B805 +GabbyAndTy_Text_TyPostBattle: .string "TY: You're a natural!\n" .string "Got me some prime footage right here!$" -GabbyAndTy_Text_TyNotEnoughMons: @ 0828B841 +GabbyAndTy_Text_TyNotEnoughMons: .string "TY: Do you only have the one POKéMON\n" .string "and that's it?\p" .string "If you had more POKéMON, it'd make for\n" .string "better footage, but…$" -GabbyAndTy_Text_TyDefeatFirstTime: @ 0828B8B1 +GabbyAndTy_Text_TyDefeatFirstTime: .string "TY: Yep, we sure spotted a hot TRAINER.\n" .string "This is a huge scoop for us!$" -GabbyAndTy_Text_TyDefeat: @ 0828B8F6 +GabbyAndTy_Text_TyDefeat: .string "TY: Yep, I got it all.\n" .string "That whole battle's on camera.$" -gTVInSearchOfTrainersText00:: @ 0828B92C +gTVInSearchOfTrainersText00:: .string "IN SEARCH OF TRAINERS…\p" .string "GABBY: Hi! Today I'm visiting an area\n" .string "near {STR_VAR_1}.\p" @@ -2841,14 +2843,14 @@ gTVInSearchOfTrainersText00:: @ 0828B92C .string "There's something about this TRAINER\n" .string "that piqued our interest.$" -gTVInSearchOfTrainersText01:: @ 0828BA20 +gTVInSearchOfTrainersText01:: .string "We've battled {PLAYER} before, but we\n" .string "can attest that the TRAINER has most\l" .string "definitely improved from before.\p" .string "I knew we were onto someone special\n" .string "when we spotted this TRAINER!$" -gTVInSearchOfTrainersText02:: @ 0828BAC8 +gTVInSearchOfTrainersText02:: .string "The best way to determine how strong\n" .string "a TRAINER is…\p" .string "Well, the fastest way is to battle.\n" @@ -2862,7 +2864,7 @@ gTVInSearchOfTrainersText02:: @ 0828BAC8 .string "Here's our impressions after having\n" .string "battled our featured TRAINER.$" -gTVInSearchOfTrainersText03:: @ 0828BC18 +gTVInSearchOfTrainersText03:: .string "The combination of {STR_VAR_1} and\n" .string "{STR_VAR_3} was divine!\p" .string "The sight of them--{STR_VAR_1} and\n" @@ -2874,7 +2876,7 @@ gTVInSearchOfTrainersText03:: @ 0828BC18 .string "The move {STR_VAR_2} is {STR_VAR_1}\n" .string "and {STR_VAR_3}'s sign of friendship!$" -gTVInSearchOfTrainersText04:: @ 0828BD20 +gTVInSearchOfTrainersText04:: .string "…I lost confidence in myself as\n" .string "a result of our encounter.\p" .string "We were beaten before we could launch\n" @@ -2885,7 +2887,7 @@ gTVInSearchOfTrainersText04:: @ 0828BD20 .string "I recommend confident TRAINERS to\n" .string "challenge {PLAYER}.$" -gTVInSearchOfTrainersText05:: @ 0828BE01 +gTVInSearchOfTrainersText05:: .string "There's only one thing to be said.\n" .string "Don't you dare throw a POKé BALL during\l" .string "a TRAINER battle!\p" @@ -2895,13 +2897,13 @@ gTVInSearchOfTrainersText05:: @ 0828BE01 .string "If you see {PLAYER}, please caution\n" .string "the TRAINER!$" -gTVInSearchOfTrainersText06:: @ 0828BEEE +gTVInSearchOfTrainersText06:: .string "{PLAYER} is adept at reading the\n" .string "opponent's actions.\p" .string "The timing of item usage was remarkably\n" .string "effective!$" -gTVInSearchOfTrainersText07:: @ 0828BF50 +gTVInSearchOfTrainersText07:: .string "Honestly speaking, I thought that\n" .string "I might even be pretty good.\p" .string "While we did end up losing, we did have\n" @@ -2909,7 +2911,7 @@ gTVInSearchOfTrainersText07:: @ 0828BF50 .string "But if you're struggling against me,\n" .string "you have a ways to go, {PLAYER}!$" -gTVInSearchOfTrainersText08:: @ 0828C011 +gTVInSearchOfTrainersText08:: .string "After our battle, we asked {PLAYER} for\n" .string "a succinct summary.\p" .string "The TRAINER replied, “{STR_VAR_1}.”\p" @@ -2923,7 +2925,7 @@ gTVInSearchOfTrainersText08:: @ 0828C011 .string "That's all for today!\n" .string "See you again on our next broadcast!$" -gTVPokemonContestLiveUpdates2Text00:: @ 0828C137 +ContestLadyShow_Text_Intro:: .string "“POKéMON CONTEST LIVE UPDATES!”\p" .string "MC: Sorry to interrupt the regular\n" .string "programming, and thanks for joining us!\p" @@ -2938,7 +2940,7 @@ gTVPokemonContestLiveUpdates2Text00:: @ 0828C137 .string "Spectators: ?!!!!\n" .string "?!!!!$" -gTVPokemonContestLiveUpdates2Text01:: @ 0828C28C +ContestLadyShow_Text_Won:: .string "MC: Excuse me!\n" .string "Thanks for joining us on live TV!\p" .string "May I congratulate you on your win?\p" @@ -2957,7 +2959,7 @@ gTVPokemonContestLiveUpdates2Text01:: @ 0828C28C .string "We did it!\l" .string "Thank you!$" -gTVPokemonContestLiveUpdates2Text02:: @ 0828C45B +ContestLadyShow_Text_Lost:: .string "MC: Excuse me!\n" .string "Thanks for joining us on live TV!\p" .string "You must be disappointed by that turn\n" @@ -2977,7 +2979,7 @@ gTVPokemonContestLiveUpdates2Text02:: @ 0828C45B .string "Uh… That's all the time we have today!\n" .string "Thanks for tuning in!$" -gTVPokemonContestLiveUpdates2Text03:: @ 0828C662 +ContestLadyShow_Text_LostBadly:: .string "MC: Excuse me!\n" .string "Thanks for joining us on live TV!\p" .string "How did your CONTEST appearance go?\p" diff --git a/data/tilesets/graphics.inc b/data/tilesets/graphics.inc index c7e6d15b03..c85bd249e1 100644 --- a/data/tilesets/graphics.inc +++ b/data/tilesets/graphics.inc @@ -1,9 +1,9 @@ .align 2 -gTilesetTiles_Petalburg:: @ 8339E08 +gTilesetTiles_Petalburg:: .incbin "data/tilesets/secondary/petalburg/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Petalburg:: @ 833A704 +gTilesetPalettes_Petalburg:: .incbin "data/tilesets/secondary/petalburg/palettes/00.gbapal" .incbin "data/tilesets/secondary/petalburg/palettes/01.gbapal" .incbin "data/tilesets/secondary/petalburg/palettes/02.gbapal" @@ -22,11 +22,11 @@ gTilesetPalettes_Petalburg:: @ 833A704 .incbin "data/tilesets/secondary/petalburg/palettes/15.gbapal" .align 2 -gTilesetTiles_Rustboro:: @ 833A904 +gTilesetTiles_Rustboro:: .incbin "data/tilesets/secondary/rustboro/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Rustboro:: @ 833BEC0 +gTilesetPalettes_Rustboro:: .incbin "data/tilesets/secondary/rustboro/palettes/00.gbapal" .incbin "data/tilesets/secondary/rustboro/palettes/01.gbapal" .incbin "data/tilesets/secondary/rustboro/palettes/02.gbapal" @@ -45,11 +45,11 @@ gTilesetPalettes_Rustboro:: @ 833BEC0 .incbin "data/tilesets/secondary/rustboro/palettes/15.gbapal" .align 2 -gTilesetTiles_Dewford:: @ 833C0C0 +gTilesetTiles_Dewford:: .incbin "data/tilesets/secondary/dewford/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Dewford:: @ 833D540 +gTilesetPalettes_Dewford:: .incbin "data/tilesets/secondary/dewford/palettes/00.gbapal" .incbin "data/tilesets/secondary/dewford/palettes/01.gbapal" .incbin "data/tilesets/secondary/dewford/palettes/02.gbapal" @@ -68,11 +68,11 @@ gTilesetPalettes_Dewford:: @ 833D540 .incbin "data/tilesets/secondary/dewford/palettes/15.gbapal" .align 2 -gTilesetTiles_Slateport:: @ 833D740 +gTilesetTiles_Slateport:: .incbin "data/tilesets/secondary/slateport/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Slateport:: @ 833F708 +gTilesetPalettes_Slateport:: .incbin "data/tilesets/secondary/slateport/palettes/00.gbapal" .incbin "data/tilesets/secondary/slateport/palettes/01.gbapal" .incbin "data/tilesets/secondary/slateport/palettes/02.gbapal" @@ -91,11 +91,11 @@ gTilesetPalettes_Slateport:: @ 833F708 .incbin "data/tilesets/secondary/slateport/palettes/15.gbapal" .align 2 -gTilesetTiles_Mauville:: @ 833F908 +gTilesetTiles_Mauville:: .incbin "data/tilesets/secondary/mauville/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Mauville:: @ 834172C +gTilesetPalettes_Mauville:: .incbin "data/tilesets/secondary/mauville/palettes/00.gbapal" .incbin "data/tilesets/secondary/mauville/palettes/01.gbapal" .incbin "data/tilesets/secondary/mauville/palettes/02.gbapal" @@ -114,11 +114,11 @@ gTilesetPalettes_Mauville:: @ 834172C .incbin "data/tilesets/secondary/mauville/palettes/15.gbapal" .align 2 -gTilesetTiles_Lavaridge:: @ 834192C +gTilesetTiles_Lavaridge:: .incbin "data/tilesets/secondary/lavaridge/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Lavaridge:: @ 8342E28 +gTilesetPalettes_Lavaridge:: .incbin "data/tilesets/secondary/lavaridge/palettes/00.gbapal" .incbin "data/tilesets/secondary/lavaridge/palettes/01.gbapal" .incbin "data/tilesets/secondary/lavaridge/palettes/02.gbapal" @@ -137,11 +137,11 @@ gTilesetPalettes_Lavaridge:: @ 8342E28 .incbin "data/tilesets/secondary/lavaridge/palettes/15.gbapal" .align 2 -gTilesetTiles_Fallarbor:: @ 8343028 +gTilesetTiles_Fallarbor:: .incbin "data/tilesets/secondary/fallarbor/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Fallarbor:: @ 83447A0 +gTilesetPalettes_Fallarbor:: .incbin "data/tilesets/secondary/fallarbor/palettes/00.gbapal" .incbin "data/tilesets/secondary/fallarbor/palettes/01.gbapal" .incbin "data/tilesets/secondary/fallarbor/palettes/02.gbapal" @@ -160,11 +160,11 @@ gTilesetPalettes_Fallarbor:: @ 83447A0 .incbin "data/tilesets/secondary/fallarbor/palettes/15.gbapal" .align 2 -gTilesetTiles_Fortree:: @ 83449A0 +gTilesetTiles_Fortree:: .incbin "data/tilesets/secondary/fortree/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Fortree:: @ 8346020 +gTilesetPalettes_Fortree:: .incbin "data/tilesets/secondary/fortree/palettes/00.gbapal" .incbin "data/tilesets/secondary/fortree/palettes/01.gbapal" .incbin "data/tilesets/secondary/fortree/palettes/02.gbapal" @@ -183,11 +183,11 @@ gTilesetPalettes_Fortree:: @ 8346020 .incbin "data/tilesets/secondary/fortree/palettes/15.gbapal" .align 2 -gTilesetTiles_Lilycove:: @ 8346220 +gTilesetTiles_Lilycove:: .incbin "data/tilesets/secondary/lilycove/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Lilycove:: @ 83475C0 +gTilesetPalettes_Lilycove:: .incbin "data/tilesets/secondary/lilycove/palettes/00.gbapal" .incbin "data/tilesets/secondary/lilycove/palettes/01.gbapal" .incbin "data/tilesets/secondary/lilycove/palettes/02.gbapal" @@ -206,11 +206,11 @@ gTilesetPalettes_Lilycove:: @ 83475C0 .incbin "data/tilesets/secondary/lilycove/palettes/15.gbapal" .align 2 -gTilesetTiles_Mossdeep:: @ 83477C0 +gTilesetTiles_Mossdeep:: .incbin "data/tilesets/secondary/mossdeep/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Mossdeep:: @ 8348E10 +gTilesetPalettes_Mossdeep:: .incbin "data/tilesets/secondary/mossdeep/palettes/00.gbapal" .incbin "data/tilesets/secondary/mossdeep/palettes/01.gbapal" .incbin "data/tilesets/secondary/mossdeep/palettes/02.gbapal" @@ -229,11 +229,11 @@ gTilesetPalettes_Mossdeep:: @ 8348E10 .incbin "data/tilesets/secondary/mossdeep/palettes/15.gbapal" .align 2 -gTilesetTiles_EverGrande:: @ 8349010 +gTilesetTiles_EverGrande:: .incbin "data/tilesets/secondary/ever_grande/tiles.4bpp.lz" .align 2 -gTilesetPalettes_EverGrande:: @ 8349C28 +gTilesetPalettes_EverGrande:: .incbin "data/tilesets/secondary/ever_grande/palettes/00.gbapal" .incbin "data/tilesets/secondary/ever_grande/palettes/01.gbapal" .incbin "data/tilesets/secondary/ever_grande/palettes/02.gbapal" @@ -252,11 +252,11 @@ gTilesetPalettes_EverGrande:: @ 8349C28 .incbin "data/tilesets/secondary/ever_grande/palettes/15.gbapal" .align 2 -gTilesetTiles_Pacifidlog:: @ 8349E28 +gTilesetTiles_Pacifidlog:: .incbin "data/tilesets/secondary/pacifidlog/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Pacifidlog:: @ 834B5B4 +gTilesetPalettes_Pacifidlog:: .incbin "data/tilesets/secondary/pacifidlog/palettes/00.gbapal" .incbin "data/tilesets/secondary/pacifidlog/palettes/01.gbapal" .incbin "data/tilesets/secondary/pacifidlog/palettes/02.gbapal" @@ -275,11 +275,11 @@ gTilesetPalettes_Pacifidlog:: @ 834B5B4 .incbin "data/tilesets/secondary/pacifidlog/palettes/15.gbapal" .align 2 -gTilesetTiles_Sootopolis:: @ 834B7B4 +gTilesetTiles_Sootopolis:: .incbin "data/tilesets/secondary/sootopolis/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Sootopolis:: @ 834C6B4 +gTilesetPalettes_Sootopolis:: .incbin "data/tilesets/secondary/sootopolis/palettes/00.gbapal" .incbin "data/tilesets/secondary/sootopolis/palettes/01.gbapal" .incbin "data/tilesets/secondary/sootopolis/palettes/02.gbapal" @@ -298,11 +298,11 @@ gTilesetPalettes_Sootopolis:: @ 834C6B4 .incbin "data/tilesets/secondary/sootopolis/palettes/15.gbapal" .align 2 -gTilesetTiles_BattleFrontierOutsideWest:: @ 834C8B4 +gTilesetTiles_BattleFrontierOutsideWest:: .incbin "data/tilesets/secondary/battle_frontier_outside_west/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattleFrontierOutsideWest:: @ 834E3E4 +gTilesetPalettes_BattleFrontierOutsideWest:: .incbin "data/tilesets/secondary/battle_frontier_outside_west/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_frontier_outside_west/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_frontier_outside_west/palettes/02.gbapal" @@ -321,11 +321,11 @@ gTilesetPalettes_BattleFrontierOutsideWest:: @ 834E3E4 .incbin "data/tilesets/secondary/battle_frontier_outside_west/palettes/15.gbapal" .align 2 -gTilesetTiles_BattleFrontierOutsideEast:: @ 834E5E4 +gTilesetTiles_BattleFrontierOutsideEast:: .incbin "data/tilesets/secondary/battle_frontier_outside_east/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattleFrontierOutsideEast:: @ 834F984 +gTilesetPalettes_BattleFrontierOutsideEast:: .incbin "data/tilesets/secondary/battle_frontier_outside_east/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_frontier_outside_east/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_frontier_outside_east/palettes/02.gbapal" @@ -344,11 +344,11 @@ gTilesetPalettes_BattleFrontierOutsideEast:: @ 834F984 .incbin "data/tilesets/secondary/battle_frontier_outside_east/palettes/15.gbapal" .align 2 -gTilesetTiles_InsideBuilding:: @ 834FB84 +gTilesetTiles_InsideBuilding:: .incbin "data/tilesets/primary/building/tiles.4bpp.lz" .align 2 -gTilesetPalettes_InsideBuilding:: @ 83508BC +gTilesetPalettes_InsideBuilding:: .incbin "data/tilesets/primary/building/palettes/00.gbapal" .incbin "data/tilesets/primary/building/palettes/01.gbapal" .incbin "data/tilesets/primary/building/palettes/02.gbapal" @@ -367,11 +367,11 @@ gTilesetPalettes_InsideBuilding:: @ 83508BC .incbin "data/tilesets/primary/building/palettes/15.gbapal" .align 2 -gTilesetTiles_Shop:: @ 8350ABC +gTilesetTiles_Shop:: .incbin "data/tilesets/secondary/shop/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Shop:: @ 83520DC +gTilesetPalettes_Shop:: .incbin "data/tilesets/secondary/shop/palettes/00.gbapal" .incbin "data/tilesets/secondary/shop/palettes/01.gbapal" .incbin "data/tilesets/secondary/shop/palettes/02.gbapal" @@ -390,11 +390,11 @@ gTilesetPalettes_Shop:: @ 83520DC .incbin "data/tilesets/secondary/shop/palettes/15.gbapal" .align 2 -gTilesetTiles_PokemonCenter:: @ 83522DC +gTilesetTiles_PokemonCenter:: .incbin "data/tilesets/secondary/pokemon_center/tiles.4bpp.lz" .align 2 -gTilesetPalettes_PokemonCenter:: @ 8353574 +gTilesetPalettes_PokemonCenter:: .incbin "data/tilesets/secondary/pokemon_center/palettes/00.gbapal" .incbin "data/tilesets/secondary/pokemon_center/palettes/01.gbapal" .incbin "data/tilesets/secondary/pokemon_center/palettes/02.gbapal" @@ -413,11 +413,11 @@ gTilesetPalettes_PokemonCenter:: @ 8353574 .incbin "data/tilesets/secondary/pokemon_center/palettes/15.gbapal" .align 2 -gTilesetTiles_Cave:: @ 8353774 +gTilesetTiles_Cave:: .incbin "data/tilesets/secondary/cave/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Cave:: @ 8355260 +gTilesetPalettes_Cave:: .incbin "data/tilesets/secondary/cave/palettes/00.gbapal" .incbin "data/tilesets/secondary/cave/palettes/01.gbapal" .incbin "data/tilesets/secondary/cave/palettes/02.gbapal" @@ -436,11 +436,11 @@ gTilesetPalettes_Cave:: @ 8355260 .incbin "data/tilesets/secondary/cave/palettes/15.gbapal" .align 2 -gTilesetTiles_PokemonSchool:: @ 8355460 +gTilesetTiles_PokemonSchool:: .incbin "data/tilesets/secondary/pokemon_school/tiles.4bpp.lz" .align 2 -gTilesetPalettes_PokemonSchool:: @ 8355BA8 +gTilesetPalettes_PokemonSchool:: .incbin "data/tilesets/secondary/pokemon_school/palettes/00.gbapal" .incbin "data/tilesets/secondary/pokemon_school/palettes/01.gbapal" .incbin "data/tilesets/secondary/pokemon_school/palettes/02.gbapal" @@ -459,11 +459,11 @@ gTilesetPalettes_PokemonSchool:: @ 8355BA8 .incbin "data/tilesets/secondary/pokemon_school/palettes/15.gbapal" .align 2 -gTilesetTiles_PokemonFanClub:: @ 8355DA8 +gTilesetTiles_PokemonFanClub:: .incbin "data/tilesets/secondary/pokemon_fan_club/tiles.4bpp.lz" .align 2 -gTilesetPalettes_PokemonFanClub:: @ 83566D4 +gTilesetPalettes_PokemonFanClub:: .incbin "data/tilesets/secondary/pokemon_fan_club/palettes/00.gbapal" .incbin "data/tilesets/secondary/pokemon_fan_club/palettes/01.gbapal" .incbin "data/tilesets/secondary/pokemon_fan_club/palettes/02.gbapal" @@ -482,11 +482,11 @@ gTilesetPalettes_PokemonFanClub:: @ 83566D4 .incbin "data/tilesets/secondary/pokemon_fan_club/palettes/15.gbapal" .align 2 -gTilesetTiles_Unused1:: @ 83568D4 +gTilesetTiles_Unused1:: .incbin "data/tilesets/secondary/unused_1/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Unused1:: @ 8356920 +gTilesetPalettes_Unused1:: .incbin "data/tilesets/secondary/unused_1/palettes/00.gbapal" .incbin "data/tilesets/secondary/unused_1/palettes/01.gbapal" .incbin "data/tilesets/secondary/unused_1/palettes/02.gbapal" @@ -505,11 +505,11 @@ gTilesetPalettes_Unused1:: @ 8356920 .incbin "data/tilesets/secondary/unused_1/palettes/15.gbapal" .align 2 -gTilesetTiles_MeteorFalls:: @ 8356B20 +gTilesetTiles_MeteorFalls:: .incbin "data/tilesets/secondary/meteor_falls/tiles.4bpp.lz" .align 2 -gTilesetPalettes_MeteorFalls:: @ 8358840 +gTilesetPalettes_MeteorFalls:: .incbin "data/tilesets/secondary/meteor_falls/palettes/00.gbapal" .incbin "data/tilesets/secondary/meteor_falls/palettes/01.gbapal" .incbin "data/tilesets/secondary/meteor_falls/palettes/02.gbapal" @@ -528,11 +528,11 @@ gTilesetPalettes_MeteorFalls:: @ 8358840 .incbin "data/tilesets/secondary/meteor_falls/palettes/15.gbapal" .align 2 -gTilesetTiles_OceanicMuseum:: @ 8358A40 +gTilesetTiles_OceanicMuseum:: .incbin "data/tilesets/secondary/oceanic_museum/tiles.4bpp.lz" .align 2 -gTilesetPalettes_OceanicMuseum:: @ 83599CC +gTilesetPalettes_OceanicMuseum:: .incbin "data/tilesets/secondary/oceanic_museum/palettes/00.gbapal" .incbin "data/tilesets/secondary/oceanic_museum/palettes/01.gbapal" .incbin "data/tilesets/secondary/oceanic_museum/palettes/02.gbapal" @@ -551,14 +551,14 @@ gTilesetPalettes_OceanicMuseum:: @ 83599CC .incbin "data/tilesets/secondary/oceanic_museum/palettes/15.gbapal" .align 2 -gTilesetTiles_CableClub:: @ 8359BCC +gTilesetTiles_CableClub:: .incbin "data/tilesets/secondary/cable_club/tiles.4bpp" .align 2 .incbin "data/tilesets/secondary/cable_club/unknown_tiles.4bpp" .align 2 -gTilesetPalettes_CableClub:: @ 835EACC +gTilesetPalettes_CableClub:: .incbin "data/tilesets/secondary/cable_club/palettes/00.gbapal" .incbin "data/tilesets/secondary/cable_club/palettes/01.gbapal" .incbin "data/tilesets/secondary/cable_club/palettes/02.gbapal" @@ -577,11 +577,11 @@ gTilesetPalettes_CableClub:: @ 835EACC .incbin "data/tilesets/secondary/cable_club/palettes/15.gbapal" .align 2 -gTilesetTiles_SeashoreHouse:: @ 835ECCC +gTilesetTiles_SeashoreHouse:: .incbin "data/tilesets/secondary/seashore_house/tiles.4bpp.lz" .align 2 -gTilesetPalettes_SeashoreHouse:: @ 835F5A8 +gTilesetPalettes_SeashoreHouse:: .incbin "data/tilesets/secondary/seashore_house/palettes/00.gbapal" .incbin "data/tilesets/secondary/seashore_house/palettes/01.gbapal" .incbin "data/tilesets/secondary/seashore_house/palettes/02.gbapal" @@ -600,11 +600,11 @@ gTilesetPalettes_SeashoreHouse:: @ 835F5A8 .incbin "data/tilesets/secondary/seashore_house/palettes/15.gbapal" .align 2 -gTilesetTiles_PrettyPetalFlowerShop:: @ 835F7A8 +gTilesetTiles_PrettyPetalFlowerShop:: .incbin "data/tilesets/secondary/pretty_petal_flower_shop/tiles.4bpp.lz" .align 2 -gTilesetPalettes_PrettyPetalFlowerShop:: @ 83603A0 +gTilesetPalettes_PrettyPetalFlowerShop:: .incbin "data/tilesets/secondary/pretty_petal_flower_shop/palettes/00.gbapal" .incbin "data/tilesets/secondary/pretty_petal_flower_shop/palettes/01.gbapal" .incbin "data/tilesets/secondary/pretty_petal_flower_shop/palettes/02.gbapal" @@ -623,11 +623,11 @@ gTilesetPalettes_PrettyPetalFlowerShop:: @ 83603A0 .incbin "data/tilesets/secondary/pretty_petal_flower_shop/palettes/15.gbapal" .align 2 -gTilesetTiles_PokemonDayCare:: @ 83605A0 +gTilesetTiles_PokemonDayCare:: .incbin "data/tilesets/secondary/pokemon_day_care/tiles.4bpp.lz" .align 2 -gTilesetPalettes_PokemonDayCare:: @ 8360FDC +gTilesetPalettes_PokemonDayCare:: .incbin "data/tilesets/secondary/pokemon_day_care/palettes/00.gbapal" .incbin "data/tilesets/secondary/pokemon_day_care/palettes/01.gbapal" .incbin "data/tilesets/secondary/pokemon_day_care/palettes/02.gbapal" @@ -646,11 +646,11 @@ gTilesetPalettes_PokemonDayCare:: @ 8360FDC .incbin "data/tilesets/secondary/pokemon_day_care/palettes/15.gbapal" .align 2 -gTilesetTiles_Facility:: @ 83611DC +gTilesetTiles_Facility:: .incbin "data/tilesets/secondary/facility/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Facility:: @ 8362E90 +gTilesetPalettes_Facility:: .incbin "data/tilesets/secondary/facility/palettes/00.gbapal" .incbin "data/tilesets/secondary/facility/palettes/01.gbapal" .incbin "data/tilesets/secondary/facility/palettes/02.gbapal" @@ -669,11 +669,11 @@ gTilesetPalettes_Facility:: @ 8362E90 .incbin "data/tilesets/secondary/facility/palettes/15.gbapal" .align 2 -gTilesetTiles_BikeShop:: @ 8363090 +gTilesetTiles_BikeShop:: .incbin "data/tilesets/secondary/bike_shop/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BikeShop:: @ 83643C0 +gTilesetPalettes_BikeShop:: .incbin "data/tilesets/secondary/bike_shop/palettes/00.gbapal" .incbin "data/tilesets/secondary/bike_shop/palettes/01.gbapal" .incbin "data/tilesets/secondary/bike_shop/palettes/02.gbapal" @@ -692,11 +692,11 @@ gTilesetPalettes_BikeShop:: @ 83643C0 .incbin "data/tilesets/secondary/bike_shop/palettes/15.gbapal" .align 2 -gTilesetTiles_RusturfTunnel:: @ 83645C0 +gTilesetTiles_RusturfTunnel:: .incbin "data/tilesets/secondary/rusturf_tunnel/tiles.4bpp.lz" .align 2 -gTilesetPalettes_RusturfTunnel:: @ 8365008 +gTilesetPalettes_RusturfTunnel:: .incbin "data/tilesets/secondary/rusturf_tunnel/palettes/00.gbapal" .incbin "data/tilesets/secondary/rusturf_tunnel/palettes/01.gbapal" .incbin "data/tilesets/secondary/rusturf_tunnel/palettes/02.gbapal" @@ -719,7 +719,7 @@ gTilesetPalettes_RusturfTunnel:: @ 8365008 .incbin "data/tilesets/secondary/secret_base/brown_cave/unused_tiles.4bpp.lz" .align 2 -gTilesetPalettes_SecretBaseBrownCave:: @ 8365788 +gTilesetPalettes_SecretBaseBrownCave:: .incbin "data/tilesets/secondary/secret_base/brown_cave/palettes/00.gbapal" .incbin "data/tilesets/secondary/secret_base/brown_cave/palettes/01.gbapal" .incbin "data/tilesets/secondary/secret_base/brown_cave/palettes/02.gbapal" @@ -742,7 +742,7 @@ gTilesetPalettes_SecretBaseBrownCave:: @ 8365788 .incbin "data/tilesets/secondary/secret_base/tree/unused_tiles.4bpp.lz" .align 2 -gTilesetPalettes_SecretBaseTree:: @ 8365EAC +gTilesetPalettes_SecretBaseTree:: .incbin "data/tilesets/secondary/secret_base/tree/palettes/00.gbapal" .incbin "data/tilesets/secondary/secret_base/tree/palettes/01.gbapal" .incbin "data/tilesets/secondary/secret_base/tree/palettes/02.gbapal" @@ -765,7 +765,7 @@ gTilesetPalettes_SecretBaseTree:: @ 8365EAC .incbin "data/tilesets/secondary/secret_base/shrub/unused_tiles.4bpp.lz" .align 2 -gTilesetPalettes_SecretBaseShrub:: @ 8366614 +gTilesetPalettes_SecretBaseShrub:: .incbin "data/tilesets/secondary/secret_base/shrub/palettes/00.gbapal" .incbin "data/tilesets/secondary/secret_base/shrub/palettes/01.gbapal" .incbin "data/tilesets/secondary/secret_base/shrub/palettes/02.gbapal" @@ -788,7 +788,7 @@ gTilesetPalettes_SecretBaseShrub:: @ 8366614 .incbin "data/tilesets/secondary/secret_base/blue_cave/unused_tiles.4bpp.lz" .align 2 -gTilesetPalettes_SecretBaseBlueCave:: @ 8366C30 +gTilesetPalettes_SecretBaseBlueCave:: .incbin "data/tilesets/secondary/secret_base/blue_cave/palettes/00.gbapal" .incbin "data/tilesets/secondary/secret_base/blue_cave/palettes/01.gbapal" .incbin "data/tilesets/secondary/secret_base/blue_cave/palettes/02.gbapal" @@ -811,7 +811,7 @@ gTilesetPalettes_SecretBaseBlueCave:: @ 8366C30 .incbin "data/tilesets/secondary/secret_base/yellow_cave/unused_tiles.4bpp.lz" .align 2 -gTilesetPalettes_SecretBaseYellowCave:: @ 8367368 +gTilesetPalettes_SecretBaseYellowCave:: .incbin "data/tilesets/secondary/secret_base/yellow_cave/palettes/00.gbapal" .incbin "data/tilesets/secondary/secret_base/yellow_cave/palettes/01.gbapal" .incbin "data/tilesets/secondary/secret_base/yellow_cave/palettes/02.gbapal" @@ -834,7 +834,7 @@ gTilesetPalettes_SecretBaseYellowCave:: @ 8367368 .incbin "data/tilesets/secondary/secret_base/red_cave/unused_tiles.4bpp.lz" .align 2 -gTilesetPalettes_SecretBaseRedCave:: @ 83679A0 +gTilesetPalettes_SecretBaseRedCave:: .incbin "data/tilesets/secondary/secret_base/red_cave/palettes/00.gbapal" .incbin "data/tilesets/secondary/secret_base/red_cave/palettes/01.gbapal" .incbin "data/tilesets/secondary/secret_base/red_cave/palettes/02.gbapal" @@ -853,35 +853,35 @@ gTilesetPalettes_SecretBaseRedCave:: @ 83679A0 .incbin "data/tilesets/secondary/secret_base/red_cave/palettes/15.gbapal" .align 2 -gTilesetTiles_SecretBaseBrownCave:: @ 8367BA0 +gTilesetTiles_SecretBaseBrownCave:: .incbin "data/tilesets/secondary/secret_base/brown_cave/tiles.4bpp" .align 2 -gTilesetTiles_SecretBaseTree:: @ 8368600 +gTilesetTiles_SecretBaseTree:: .incbin "data/tilesets/secondary/secret_base/tree/tiles.4bpp" .align 2 -gTilesetTiles_SecretBaseShrub:: @ 8369060 +gTilesetTiles_SecretBaseShrub:: .incbin "data/tilesets/secondary/secret_base/shrub/tiles.4bpp" .align 2 -gTilesetTiles_SecretBaseBlueCave:: @ 8369AC0 +gTilesetTiles_SecretBaseBlueCave:: .incbin "data/tilesets/secondary/secret_base/blue_cave/tiles.4bpp" .align 2 -gTilesetTiles_SecretBaseYellowCave:: @ 836A520 +gTilesetTiles_SecretBaseYellowCave:: .incbin "data/tilesets/secondary/secret_base/yellow_cave/tiles.4bpp" .align 2 -gTilesetTiles_SecretBaseRedCave:: @ 836AF80 +gTilesetTiles_SecretBaseRedCave:: .incbin "data/tilesets/secondary/secret_base/red_cave/tiles.4bpp" .align 2 -gTilesetTiles_InsideOfTruck:: @ 836B9E0 +gTilesetTiles_InsideOfTruck:: .incbin "data/tilesets/secondary/inside_of_truck/tiles.4bpp.lz" .align 2 -gTilesetPalettes_InsideOfTruck:: @ 836BC3C +gTilesetPalettes_InsideOfTruck:: .incbin "data/tilesets/secondary/inside_of_truck/palettes/00.gbapal" .incbin "data/tilesets/secondary/inside_of_truck/palettes/01.gbapal" .incbin "data/tilesets/secondary/inside_of_truck/palettes/02.gbapal" @@ -900,11 +900,11 @@ gTilesetPalettes_InsideOfTruck:: @ 836BC3C .incbin "data/tilesets/secondary/inside_of_truck/palettes/15.gbapal" .align 2 -gTilesetTiles_Contest:: @ 836BE3C +gTilesetTiles_Contest:: .incbin "data/tilesets/secondary/contest/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Contest:: @ 836C990 +gTilesetPalettes_Contest:: .incbin "data/tilesets/secondary/contest/palettes/00.gbapal" .incbin "data/tilesets/secondary/contest/palettes/01.gbapal" .incbin "data/tilesets/secondary/contest/palettes/02.gbapal" @@ -923,11 +923,11 @@ gTilesetPalettes_Contest:: @ 836C990 .incbin "data/tilesets/secondary/contest/palettes/15.gbapal" .align 2 -gTilesetTiles_LilycoveMuseum:: @ 836CB90 +gTilesetTiles_LilycoveMuseum:: .incbin "data/tilesets/secondary/lilycove_museum/tiles.4bpp.lz" .align 2 -gTilesetPalettes_LilycoveMuseum:: @ 836DEAC +gTilesetPalettes_LilycoveMuseum:: .incbin "data/tilesets/secondary/lilycove_museum/palettes/00.gbapal" .incbin "data/tilesets/secondary/lilycove_museum/palettes/01.gbapal" .incbin "data/tilesets/secondary/lilycove_museum/palettes/02.gbapal" @@ -946,11 +946,11 @@ gTilesetPalettes_LilycoveMuseum:: @ 836DEAC .incbin "data/tilesets/secondary/lilycove_museum/palettes/15.gbapal" .align 2 -gTilesetTiles_BrendansMaysHouse:: @ 836E0AC +gTilesetTiles_BrendansMaysHouse:: .incbin "data/tilesets/secondary/brendans_mays_house/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BrendansMaysHouse:: @ 836F178 +gTilesetPalettes_BrendansMaysHouse:: .incbin "data/tilesets/secondary/brendans_mays_house/palettes/00.gbapal" .incbin "data/tilesets/secondary/brendans_mays_house/palettes/01.gbapal" .incbin "data/tilesets/secondary/brendans_mays_house/palettes/02.gbapal" @@ -969,11 +969,11 @@ gTilesetPalettes_BrendansMaysHouse:: @ 836F178 .incbin "data/tilesets/secondary/brendans_mays_house/palettes/15.gbapal" .align 2 -gTilesetTiles_Lab:: @ 836F378 +gTilesetTiles_Lab:: .incbin "data/tilesets/secondary/lab/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Lab:: @ 83703DC +gTilesetPalettes_Lab:: .incbin "data/tilesets/secondary/lab/palettes/00.gbapal" .incbin "data/tilesets/secondary/lab/palettes/01.gbapal" .incbin "data/tilesets/secondary/lab/palettes/02.gbapal" @@ -992,11 +992,11 @@ gTilesetPalettes_Lab:: @ 83703DC .incbin "data/tilesets/secondary/lab/palettes/15.gbapal" .align 2 -gTilesetTiles_Underwater:: @ 83705DC +gTilesetTiles_Underwater:: .incbin "data/tilesets/secondary/underwater/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Underwater:: @ 8371798 +gTilesetPalettes_Underwater:: .incbin "data/tilesets/secondary/underwater/palettes/00.gbapal" .incbin "data/tilesets/secondary/underwater/palettes/01.gbapal" .incbin "data/tilesets/secondary/underwater/palettes/02.gbapal" @@ -1015,11 +1015,11 @@ gTilesetPalettes_Underwater:: @ 8371798 .incbin "data/tilesets/secondary/underwater/palettes/15.gbapal" .align 2 -gTilesetTiles_GenericBuilding:: @ 8371998 +gTilesetTiles_GenericBuilding:: .incbin "data/tilesets/secondary/generic_building/tiles.4bpp.lz" .align 2 -gTilesetPalettes_GenericBuilding:: @ 83733C4 +gTilesetPalettes_GenericBuilding:: .incbin "data/tilesets/secondary/generic_building/palettes/00.gbapal" .incbin "data/tilesets/secondary/generic_building/palettes/01.gbapal" .incbin "data/tilesets/secondary/generic_building/palettes/02.gbapal" @@ -1038,11 +1038,11 @@ gTilesetPalettes_GenericBuilding:: @ 83733C4 .incbin "data/tilesets/secondary/generic_building/palettes/15.gbapal" .align 2 -gTilesetTiles_MauvilleGameCorner:: @ 83735C4 +gTilesetTiles_MauvilleGameCorner:: .incbin "data/tilesets/secondary/mauville_game_corner/tiles.4bpp.lz" .align 2 -gTilesetPalettes_MauvilleGameCorner:: @ 8374288 +gTilesetPalettes_MauvilleGameCorner:: .incbin "data/tilesets/secondary/mauville_game_corner/palettes/00.gbapal" .incbin "data/tilesets/secondary/mauville_game_corner/palettes/01.gbapal" .incbin "data/tilesets/secondary/mauville_game_corner/palettes/02.gbapal" @@ -1061,11 +1061,11 @@ gTilesetPalettes_MauvilleGameCorner:: @ 8374288 .incbin "data/tilesets/secondary/mauville_game_corner/palettes/15.gbapal" .align 2 -gTilesetTiles_Unused2:: @ 8374488 +gTilesetTiles_Unused2:: .incbin "data/tilesets/secondary/unused_2/tiles.4bpp.lz" .align 2 -gTilesetPalettes_Unused2:: @ 83749B0 +gTilesetPalettes_Unused2:: .incbin "data/tilesets/secondary/unused_2/palettes/00.gbapal" .incbin "data/tilesets/secondary/unused_2/palettes/01.gbapal" .incbin "data/tilesets/secondary/unused_2/palettes/02.gbapal" @@ -1084,11 +1084,11 @@ gTilesetPalettes_Unused2:: @ 83749B0 .incbin "data/tilesets/secondary/unused_2/palettes/15.gbapal" .align 2 -gTilesetTiles_RustboroGym:: @ 8374BB0 +gTilesetTiles_RustboroGym:: .incbin "data/tilesets/secondary/rustboro_gym/tiles.4bpp.lz" .align 2 -gTilesetPalettes_RustboroGym:: @ 8374F34 +gTilesetPalettes_RustboroGym:: .incbin "data/tilesets/secondary/rustboro_gym/palettes/00.gbapal" .incbin "data/tilesets/secondary/rustboro_gym/palettes/01.gbapal" .incbin "data/tilesets/secondary/rustboro_gym/palettes/02.gbapal" @@ -1107,11 +1107,11 @@ gTilesetPalettes_RustboroGym:: @ 8374F34 .incbin "data/tilesets/secondary/rustboro_gym/palettes/15.gbapal" .align 2 -gTilesetTiles_DewfordGym:: @ 8375134 +gTilesetTiles_DewfordGym:: .incbin "data/tilesets/secondary/dewford_gym/tiles.4bpp.lz" .align 2 -gTilesetPalettes_DewfordGym:: @ 8375400 +gTilesetPalettes_DewfordGym:: .incbin "data/tilesets/secondary/dewford_gym/palettes/00.gbapal" .incbin "data/tilesets/secondary/dewford_gym/palettes/01.gbapal" .incbin "data/tilesets/secondary/dewford_gym/palettes/02.gbapal" @@ -1130,11 +1130,11 @@ gTilesetPalettes_DewfordGym:: @ 8375400 .incbin "data/tilesets/secondary/dewford_gym/palettes/15.gbapal" .align 2 -gTilesetTiles_MauvilleGym:: @ 8375600 +gTilesetTiles_MauvilleGym:: .incbin "data/tilesets/secondary/mauville_gym/tiles.4bpp.lz" .align 2 -gTilesetPalettes_MauvilleGym:: @ 8375D84 +gTilesetPalettes_MauvilleGym:: .incbin "data/tilesets/secondary/mauville_gym/palettes/00.gbapal" .incbin "data/tilesets/secondary/mauville_gym/palettes/01.gbapal" .incbin "data/tilesets/secondary/mauville_gym/palettes/02.gbapal" @@ -1153,11 +1153,11 @@ gTilesetPalettes_MauvilleGym:: @ 8375D84 .incbin "data/tilesets/secondary/mauville_gym/palettes/15.gbapal" .align 2 -gTilesetTiles_LavaridgeGym:: @ 8375F84 +gTilesetTiles_LavaridgeGym:: .incbin "data/tilesets/secondary/lavaridge_gym/tiles.4bpp.lz" .align 2 -gTilesetPalettes_LavaridgeGym:: @ 83762AC +gTilesetPalettes_LavaridgeGym:: .incbin "data/tilesets/secondary/lavaridge_gym/palettes/00.gbapal" .incbin "data/tilesets/secondary/lavaridge_gym/palettes/01.gbapal" .incbin "data/tilesets/secondary/lavaridge_gym/palettes/02.gbapal" @@ -1176,11 +1176,11 @@ gTilesetPalettes_LavaridgeGym:: @ 83762AC .incbin "data/tilesets/secondary/lavaridge_gym/palettes/15.gbapal" .align 2 -gTilesetTiles_PetalburgGym:: @ 83764AC +gTilesetTiles_PetalburgGym:: .incbin "data/tilesets/secondary/petalburg_gym/tiles.4bpp.lz" .align 2 -gTilesetPalettes_PetalburgGym:: @ 8376B50 +gTilesetPalettes_PetalburgGym:: .incbin "data/tilesets/secondary/petalburg_gym/palettes/00.gbapal" .incbin "data/tilesets/secondary/petalburg_gym/palettes/01.gbapal" .incbin "data/tilesets/secondary/petalburg_gym/palettes/02.gbapal" @@ -1199,11 +1199,11 @@ gTilesetPalettes_PetalburgGym:: @ 8376B50 .incbin "data/tilesets/secondary/petalburg_gym/palettes/15.gbapal" .align 2 -gTilesetTiles_FortreeGym:: @ 8376D50 +gTilesetTiles_FortreeGym:: .incbin "data/tilesets/secondary/fortree_gym/tiles.4bpp.lz" .align 2 -gTilesetPalettes_FortreeGym:: @ 83770C4 +gTilesetPalettes_FortreeGym:: .incbin "data/tilesets/secondary/fortree_gym/palettes/00.gbapal" .incbin "data/tilesets/secondary/fortree_gym/palettes/01.gbapal" .incbin "data/tilesets/secondary/fortree_gym/palettes/02.gbapal" @@ -1222,11 +1222,11 @@ gTilesetPalettes_FortreeGym:: @ 83770C4 .incbin "data/tilesets/secondary/fortree_gym/palettes/15.gbapal" .align 2 -gTilesetTiles_MossdeepGym:: @ 83772C4 +gTilesetTiles_MossdeepGym:: .incbin "data/tilesets/secondary/mossdeep_gym/tiles.4bpp.lz" .align 2 -gTilesetPalettes_MossdeepGym:: @ 8377730 +gTilesetPalettes_MossdeepGym:: .incbin "data/tilesets/secondary/mossdeep_gym/palettes/00.gbapal" .incbin "data/tilesets/secondary/mossdeep_gym/palettes/01.gbapal" .incbin "data/tilesets/secondary/mossdeep_gym/palettes/02.gbapal" @@ -1245,11 +1245,11 @@ gTilesetPalettes_MossdeepGym:: @ 8377730 .incbin "data/tilesets/secondary/mossdeep_gym/palettes/15.gbapal" .align 2 -gTilesetTiles_SootopolisGym:: @ 8377930 +gTilesetTiles_SootopolisGym:: .incbin "data/tilesets/secondary/sootopolis_gym/tiles.4bpp.lz" .align 2 -gTilesetPalettes_SootopolisGym:: @ 8378AC4 +gTilesetPalettes_SootopolisGym:: .incbin "data/tilesets/secondary/sootopolis_gym/palettes/00.gbapal" .incbin "data/tilesets/secondary/sootopolis_gym/palettes/01.gbapal" .incbin "data/tilesets/secondary/sootopolis_gym/palettes/02.gbapal" @@ -1268,11 +1268,11 @@ gTilesetPalettes_SootopolisGym:: @ 8378AC4 .incbin "data/tilesets/secondary/sootopolis_gym/palettes/15.gbapal" .align 2 -gTilesetTiles_TrickHousePuzzle:: @ 8378CC4 +gTilesetTiles_TrickHousePuzzle:: .incbin "data/tilesets/secondary/trick_house_puzzle/tiles.4bpp.lz" .align 2 -gTilesetPalettes_TrickHousePuzzle:: @ 8379A78 +gTilesetPalettes_TrickHousePuzzle:: .incbin "data/tilesets/secondary/trick_house_puzzle/palettes/00.gbapal" .incbin "data/tilesets/secondary/trick_house_puzzle/palettes/01.gbapal" .incbin "data/tilesets/secondary/trick_house_puzzle/palettes/02.gbapal" @@ -1291,11 +1291,11 @@ gTilesetPalettes_TrickHousePuzzle:: @ 8379A78 .incbin "data/tilesets/secondary/trick_house_puzzle/palettes/15.gbapal" .align 2 -gTilesetTiles_InsideShip:: @ 8379C78 +gTilesetTiles_InsideShip:: .incbin "data/tilesets/secondary/inside_ship/tiles.4bpp.lz" .align 2 -gTilesetPalettes_InsideShip:: @ 837A848 +gTilesetPalettes_InsideShip:: .incbin "data/tilesets/secondary/inside_ship/palettes/00.gbapal" .incbin "data/tilesets/secondary/inside_ship/palettes/01.gbapal" .incbin "data/tilesets/secondary/inside_ship/palettes/02.gbapal" @@ -1314,14 +1314,14 @@ gTilesetPalettes_InsideShip:: @ 837A848 .incbin "data/tilesets/secondary/inside_ship/palettes/15.gbapal" .align 2 -gTilesetTiles_SecretBase:: @ 837AA48 +gTilesetTiles_SecretBase:: .incbin "data/tilesets/primary/secret_base/tiles.4bpp" .align 2 .incbin "data/tilesets/primary/secret_base/unknown_tiles.4bpp" .align 2 -gTilesetPalettes_SecretBase:: @ 8382A48 +gTilesetPalettes_SecretBase:: .incbin "data/tilesets/primary/secret_base/palettes/00.gbapal" .incbin "data/tilesets/primary/secret_base/palettes/01.gbapal" .incbin "data/tilesets/primary/secret_base/palettes/02.gbapal" @@ -1340,11 +1340,11 @@ gTilesetPalettes_SecretBase:: @ 8382A48 .incbin "data/tilesets/primary/secret_base/palettes/15.gbapal" .align 2 -gTilesetTiles_EliteFour:: @ 8382C48 +gTilesetTiles_EliteFour:: .incbin "data/tilesets/secondary/elite_four/tiles.4bpp.lz" .align 2 -gTilesetPalettes_EliteFour:: @ 8383CC4 +gTilesetPalettes_EliteFour:: .incbin "data/tilesets/secondary/elite_four/palettes/00.gbapal" .incbin "data/tilesets/secondary/elite_four/palettes/01.gbapal" .incbin "data/tilesets/secondary/elite_four/palettes/02.gbapal" @@ -1363,11 +1363,11 @@ gTilesetPalettes_EliteFour:: @ 8383CC4 .incbin "data/tilesets/secondary/elite_four/palettes/15.gbapal" .align 2 -gTilesetTiles_BattleFrontier:: @ 8383EC4 +gTilesetTiles_BattleFrontier:: .incbin "data/tilesets/secondary/battle_frontier/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattleFrontier:: @ 8384BC8 +gTilesetPalettes_BattleFrontier:: .incbin "data/tilesets/secondary/battle_frontier/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_frontier/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_frontier/palettes/02.gbapal" @@ -1386,11 +1386,11 @@ gTilesetPalettes_BattleFrontier:: @ 8384BC8 .incbin "data/tilesets/secondary/battle_frontier/palettes/15.gbapal" .align 2 -gTilesetTiles_BattlePalace:: @ 8384DC8 +gTilesetTiles_BattlePalace:: .incbin "data/tilesets/secondary/battle_palace/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattlePalace:: @ 8385540 +gTilesetPalettes_BattlePalace:: .incbin "data/tilesets/secondary/battle_palace/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_palace/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_palace/palettes/02.gbapal" @@ -1409,11 +1409,11 @@ gTilesetPalettes_BattlePalace:: @ 8385540 .incbin "data/tilesets/secondary/battle_palace/palettes/15.gbapal" .align 2 -gTilesetTiles_BattleDome:: @ 8385740 +gTilesetTiles_BattleDome:: .incbin "data/tilesets/secondary/battle_dome/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattleDome:: @ 8386990 +gTilesetPalettes_BattleDome:: .incbin "data/tilesets/secondary/battle_dome/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_dome/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_dome/palettes/02.gbapal" @@ -1432,11 +1432,11 @@ gTilesetPalettes_BattleDome:: @ 8386990 .incbin "data/tilesets/secondary/battle_dome/palettes/15.gbapal" .align 2 -gTilesetTiles_BattleFactory:: @ 8386B90 +gTilesetTiles_BattleFactory:: .incbin "data/tilesets/secondary/battle_factory/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattleFactory:: @ 8387D7C +gTilesetPalettes_BattleFactory:: .incbin "data/tilesets/secondary/battle_factory/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_factory/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_factory/palettes/02.gbapal" @@ -1455,11 +1455,11 @@ gTilesetPalettes_BattleFactory:: @ 8387D7C .incbin "data/tilesets/secondary/battle_factory/palettes/15.gbapal" .align 2 -gTilesetTiles_BattlePike:: @ 8387F7C +gTilesetTiles_BattlePike:: .incbin "data/tilesets/secondary/battle_pike/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattlePike:: @ 8389250 +gTilesetPalettes_BattlePike:: .incbin "data/tilesets/secondary/battle_pike/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_pike/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_pike/palettes/02.gbapal" @@ -1478,11 +1478,11 @@ gTilesetPalettes_BattlePike:: @ 8389250 .incbin "data/tilesets/secondary/battle_pike/palettes/15.gbapal" .align 2 -gTilesetTiles_BattleArena:: @ 8389450 +gTilesetTiles_BattleArena:: .incbin "data/tilesets/secondary/battle_arena/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattleArena:: @ 8389F8C +gTilesetPalettes_BattleArena:: .incbin "data/tilesets/secondary/battle_arena/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_arena/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_arena/palettes/02.gbapal" @@ -1501,11 +1501,11 @@ gTilesetPalettes_BattleArena:: @ 8389F8C .incbin "data/tilesets/secondary/battle_arena/palettes/15.gbapal" .align 2 -gTilesetTiles_BattlePyramid:: @ 838A18C +gTilesetTiles_BattlePyramid:: .incbin "data/tilesets/secondary/battle_pyramid/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattlePyramid:: @ 838B39C +gTilesetPalettes_BattlePyramid:: .incbin "data/tilesets/secondary/battle_pyramid/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_pyramid/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_pyramid/palettes/02.gbapal" @@ -1524,11 +1524,11 @@ gTilesetPalettes_BattlePyramid:: @ 838B39C .incbin "data/tilesets/secondary/battle_pyramid/palettes/15.gbapal" .align 2 -gTilesetTiles_MirageTower:: @ 838B59C +gTilesetTiles_MirageTower:: .incbin "data/tilesets/secondary/mirage_tower/tiles.4bpp.lz" .align 2 -gTilesetPalettes_MirageTower:: @ 838CFE4 +gTilesetPalettes_MirageTower:: .incbin "data/tilesets/secondary/mirage_tower/palettes/00.gbapal" .incbin "data/tilesets/secondary/mirage_tower/palettes/01.gbapal" .incbin "data/tilesets/secondary/mirage_tower/palettes/02.gbapal" @@ -1547,11 +1547,11 @@ gTilesetPalettes_MirageTower:: @ 838CFE4 .incbin "data/tilesets/secondary/mirage_tower/palettes/15.gbapal" .align 2 -gTilesetTiles_MossdeepGameCorner:: @ 838D1E4 +gTilesetTiles_MossdeepGameCorner:: .incbin "data/tilesets/secondary/mossdeep_game_corner/tiles.4bpp.lz" .align 2 -gTilesetPalettes_MossdeepGameCorner:: @ 838D604 +gTilesetPalettes_MossdeepGameCorner:: .incbin "data/tilesets/secondary/mossdeep_game_corner/palettes/00.gbapal" .incbin "data/tilesets/secondary/mossdeep_game_corner/palettes/01.gbapal" .incbin "data/tilesets/secondary/mossdeep_game_corner/palettes/02.gbapal" @@ -1570,11 +1570,11 @@ gTilesetPalettes_MossdeepGameCorner:: @ 838D604 .incbin "data/tilesets/secondary/mossdeep_game_corner/palettes/15.gbapal" .align 2 -gTilesetTiles_IslandHarbor:: @ 838D804 +gTilesetTiles_IslandHarbor:: .incbin "data/tilesets/secondary/island_harbor/tiles.4bpp.lz" .align 2 -gTilesetPalettes_IslandHarbor:: @ 838F1D4 +gTilesetPalettes_IslandHarbor:: .incbin "data/tilesets/secondary/island_harbor/palettes/00.gbapal" .incbin "data/tilesets/secondary/island_harbor/palettes/01.gbapal" .incbin "data/tilesets/secondary/island_harbor/palettes/02.gbapal" @@ -1593,11 +1593,11 @@ gTilesetPalettes_IslandHarbor:: @ 838F1D4 .incbin "data/tilesets/secondary/island_harbor/palettes/15.gbapal" .align 2 -gTilesetTiles_TrainerHill:: @ 838F3D4 +gTilesetTiles_TrainerHill:: .incbin "data/tilesets/secondary/trainer_hill/tiles.4bpp.lz" .align 2 -gTilesetPalettes_TrainerHill:: @ 83904C4 +gTilesetPalettes_TrainerHill:: .incbin "data/tilesets/secondary/trainer_hill/palettes/00.gbapal" .incbin "data/tilesets/secondary/trainer_hill/palettes/01.gbapal" .incbin "data/tilesets/secondary/trainer_hill/palettes/02.gbapal" @@ -1616,11 +1616,11 @@ gTilesetPalettes_TrainerHill:: @ 83904C4 .incbin "data/tilesets/secondary/trainer_hill/palettes/15.gbapal" .align 2 -gTilesetTiles_NavelRock:: @ 83906C4 +gTilesetTiles_NavelRock:: .incbin "data/tilesets/secondary/navel_rock/tiles.4bpp.lz" .align 2 -gTilesetPalettes_NavelRock:: @ 8392258 +gTilesetPalettes_NavelRock:: .incbin "data/tilesets/secondary/navel_rock/palettes/00.gbapal" .incbin "data/tilesets/secondary/navel_rock/palettes/01.gbapal" .incbin "data/tilesets/secondary/navel_rock/palettes/02.gbapal" @@ -1639,11 +1639,11 @@ gTilesetPalettes_NavelRock:: @ 8392258 .incbin "data/tilesets/secondary/navel_rock/palettes/15.gbapal" .align 2 -gTilesetTiles_BattleFrontierRankingHall:: @ 8392458 +gTilesetTiles_BattleFrontierRankingHall:: .incbin "data/tilesets/secondary/battle_frontier_ranking_hall/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattleFrontierRankingHall:: @ 8392CAC +gTilesetPalettes_BattleFrontierRankingHall:: .incbin "data/tilesets/secondary/battle_frontier_ranking_hall/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_frontier_ranking_hall/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_frontier_ranking_hall/palettes/02.gbapal" @@ -1662,11 +1662,11 @@ gTilesetPalettes_BattleFrontierRankingHall:: @ 8392CAC .incbin "data/tilesets/secondary/battle_frontier_ranking_hall/palettes/15.gbapal" .align 2 -gTilesetTiles_BattleTent:: @ 8392EAC +gTilesetTiles_BattleTent:: .incbin "data/tilesets/secondary/battle_tent/tiles.4bpp.lz" .align 2 -gTilesetPalettes_BattleTent:: @ 8393910 +gTilesetPalettes_BattleTent:: .incbin "data/tilesets/secondary/battle_tent/palettes/00.gbapal" .incbin "data/tilesets/secondary/battle_tent/palettes/01.gbapal" .incbin "data/tilesets/secondary/battle_tent/palettes/02.gbapal" @@ -1685,11 +1685,11 @@ gTilesetPalettes_BattleTent:: @ 8393910 .incbin "data/tilesets/secondary/battle_tent/palettes/15.gbapal" .align 2 -gTilesetTiles_MysteryEventsHouse:: @ 8393B10 +gTilesetTiles_MysteryEventsHouse:: .incbin "data/tilesets/secondary/mystery_events_house/tiles.4bpp.lz" .align 2 -gTilesetPalettes_MysteryEventsHouse:: @ 8395478 +gTilesetPalettes_MysteryEventsHouse:: .incbin "data/tilesets/secondary/mystery_events_house/palettes/00.gbapal" .incbin "data/tilesets/secondary/mystery_events_house/palettes/01.gbapal" .incbin "data/tilesets/secondary/mystery_events_house/palettes/02.gbapal" @@ -1708,7 +1708,7 @@ gTilesetPalettes_MysteryEventsHouse:: @ 8395478 .incbin "data/tilesets/secondary/mystery_events_house/palettes/15.gbapal" .align 2 -gTilesetPalettes_UnionRoom:: @ 8395678 +gTilesetPalettes_UnionRoom:: .incbin "data/tilesets/secondary/union_room/palettes/00.gbapal" .incbin "data/tilesets/secondary/union_room/palettes/01.gbapal" .incbin "data/tilesets/secondary/union_room/palettes/02.gbapal" @@ -1727,5 +1727,5 @@ gTilesetPalettes_UnionRoom:: @ 8395678 .incbin "data/tilesets/secondary/union_room/palettes/15.gbapal" .align 2 -gTilesetTiles_UnionRoom:: @ 8395878 +gTilesetTiles_UnionRoom:: .incbin "data/tilesets/secondary/union_room/tiles.4bpp.lz" diff --git a/data/tilesets/headers.inc b/data/tilesets/headers.inc index c56234b13b..6324e943c7 100644 --- a/data/tilesets/headers.inc +++ b/data/tilesets/headers.inc @@ -1,5 +1,5 @@ .align 2 -gTileset_General:: @ 83DF704 +gTileset_General:: .byte TRUE @ is compressed .byte FALSE @ is secondary tileset .2byte 0 @ padding @@ -10,7 +10,7 @@ gTileset_General:: @ 83DF704 .4byte InitTilesetAnim_General .align 2 -gTileset_Petalburg:: @ 83DF71C +gTileset_Petalburg:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -21,7 +21,7 @@ gTileset_Petalburg:: @ 83DF71C .4byte InitTilesetAnim_Petalburg .align 2 -gTileset_Rustboro:: @ 83DF734 +gTileset_Rustboro:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -32,7 +32,7 @@ gTileset_Rustboro:: @ 83DF734 .4byte InitTilesetAnim_Rustboro .align 2 -gTileset_Dewford:: @ 83DF74C +gTileset_Dewford:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -43,7 +43,7 @@ gTileset_Dewford:: @ 83DF74C .4byte InitTilesetAnim_Dewford .align 2 -gTileset_Slateport:: @ 83DF764 +gTileset_Slateport:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -54,7 +54,7 @@ gTileset_Slateport:: @ 83DF764 .4byte InitTilesetAnim_Slateport .align 2 -gTileset_Mauville:: @ 83DF77C +gTileset_Mauville:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -65,7 +65,7 @@ gTileset_Mauville:: @ 83DF77C .4byte InitTilesetAnim_Mauville .align 2 -gTileset_Lavaridge:: @ 83DF794 +gTileset_Lavaridge:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -76,7 +76,7 @@ gTileset_Lavaridge:: @ 83DF794 .4byte InitTilesetAnim_Lavaridge .align 2 -gTileset_Fallarbor:: @ 83DF7AC +gTileset_Fallarbor:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -87,7 +87,7 @@ gTileset_Fallarbor:: @ 83DF7AC .4byte InitTilesetAnim_Fallarbor .align 2 -gTileset_Fortree:: @ 83DF7C4 +gTileset_Fortree:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -98,7 +98,7 @@ gTileset_Fortree:: @ 83DF7C4 .4byte InitTilesetAnim_Fortree .align 2 -gTileset_Lilycove:: @ 83DF7DC +gTileset_Lilycove:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -109,7 +109,7 @@ gTileset_Lilycove:: @ 83DF7DC .4byte InitTilesetAnim_Lilycove .align 2 -gTileset_Mossdeep:: @ 83DF7F4 +gTileset_Mossdeep:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -120,7 +120,7 @@ gTileset_Mossdeep:: @ 83DF7F4 .4byte InitTilesetAnim_Mossdeep .align 2 -gTileset_EverGrande:: @ 83DF80C +gTileset_EverGrande:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -131,7 +131,7 @@ gTileset_EverGrande:: @ 83DF80C .4byte InitTilesetAnim_EverGrande .align 2 -gTileset_Pacifidlog:: @ 83DF824 +gTileset_Pacifidlog:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -142,7 +142,7 @@ gTileset_Pacifidlog:: @ 83DF824 .4byte InitTilesetAnim_Pacifidlog .align 2 -gTileset_Sootopolis:: @ 83DF83C +gTileset_Sootopolis:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -153,7 +153,7 @@ gTileset_Sootopolis:: @ 83DF83C .4byte InitTilesetAnim_Sootopolis .align 2 -gTileset_BattleFrontierOutsideWest:: @ 83DF854 +gTileset_BattleFrontierOutsideWest:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -164,7 +164,7 @@ gTileset_BattleFrontierOutsideWest:: @ 83DF854 .4byte InitTilesetAnim_BattleFrontierOutsideWest .align 2 -gTileset_BattleFrontierOutsideEast:: @ 83DF86C +gTileset_BattleFrontierOutsideEast:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -175,7 +175,7 @@ gTileset_BattleFrontierOutsideEast:: @ 83DF86C .4byte InitTilesetAnim_BattleFrontierOutsideEast .align 2 -gTileset_Building:: @ 83DF884 +gTileset_Building:: .byte TRUE @ is compressed .byte FALSE @ is secondary tileset .2byte 0 @ padding @@ -186,7 +186,7 @@ gTileset_Building:: @ 83DF884 .4byte InitTilesetAnim_Building .align 2 -gTileset_Shop:: @ 83DF89C +gTileset_Shop:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -197,7 +197,7 @@ gTileset_Shop:: @ 83DF89C .4byte NULL @ animation callback .align 2 -gTileset_PokemonCenter:: @ 83DF8B4 +gTileset_PokemonCenter:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -208,7 +208,7 @@ gTileset_PokemonCenter:: @ 83DF8B4 .4byte NULL @ animation callback .align 2 -gTileset_Cave:: @ 83DF8CC +gTileset_Cave:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -219,7 +219,7 @@ gTileset_Cave:: @ 83DF8CC .4byte InitTilesetAnim_Cave .align 2 -gTileset_PokemonSchool:: @ 83DF8E4 +gTileset_PokemonSchool:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -230,7 +230,7 @@ gTileset_PokemonSchool:: @ 83DF8E4 .4byte NULL @ animation callback .align 2 -gTileset_PokemonFanClub:: @ 83DF8FC +gTileset_PokemonFanClub:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -241,7 +241,7 @@ gTileset_PokemonFanClub:: @ 83DF8FC .4byte NULL @ animation callback .align 2 -gTileset_Unused1:: @ 83DF914 +gTileset_Unused1:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -252,7 +252,7 @@ gTileset_Unused1:: @ 83DF914 .4byte NULL @ animation callback .align 2 -gTileset_MeteorFalls:: @ 83DF92C +gTileset_MeteorFalls:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -263,7 +263,7 @@ gTileset_MeteorFalls:: @ 83DF92C .4byte NULL @ animation callback .align 2 -gTileset_OceanicMuseum:: @ 83DF944 +gTileset_OceanicMuseum:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -274,7 +274,7 @@ gTileset_OceanicMuseum:: @ 83DF944 .4byte NULL @ animation callback .align 2 -gTileset_CableClub:: @ 83DF95C +gTileset_CableClub:: .byte FALSE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -285,7 +285,7 @@ gTileset_CableClub:: @ 83DF95C .4byte NULL @ animation callback .align 2 -gTileset_SeashoreHouse:: @ 83DF974 +gTileset_SeashoreHouse:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -296,7 +296,7 @@ gTileset_SeashoreHouse:: @ 83DF974 .4byte NULL @ animation callback .align 2 -gTileset_PrettyPetalFlowerShop:: @ 83DF98C +gTileset_PrettyPetalFlowerShop:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -307,7 +307,7 @@ gTileset_PrettyPetalFlowerShop:: @ 83DF98C .4byte NULL @ animation callback .align 2 -gTileset_PokemonDayCare:: @ 83DF9A4 +gTileset_PokemonDayCare:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -318,7 +318,7 @@ gTileset_PokemonDayCare:: @ 83DF9A4 .4byte NULL @ animation callback .align 2 -gTileset_Facility:: @ 83DF9BC +gTileset_Facility:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -329,7 +329,7 @@ gTileset_Facility:: @ 83DF9BC .4byte NULL @ animation callback .align 2 -gTileset_BikeShop:: @ 83DF9D4 +gTileset_BikeShop:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -340,7 +340,7 @@ gTileset_BikeShop:: @ 83DF9D4 .4byte InitTilesetAnim_BikeShop .align 2 -gTileset_RusturfTunnel:: @ 83DF9EC +gTileset_RusturfTunnel:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -351,7 +351,7 @@ gTileset_RusturfTunnel:: @ 83DF9EC .4byte NULL @ animation callback .align 2 -gTileset_SecretBaseBrownCave:: @ 83DFA04 +gTileset_SecretBaseBrownCave:: .byte FALSE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -362,7 +362,7 @@ gTileset_SecretBaseBrownCave:: @ 83DFA04 .4byte NULL @ animation callback .align 2 -gTileset_SecretBaseTree:: @ 83DFA1C +gTileset_SecretBaseTree:: .byte FALSE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -373,7 +373,7 @@ gTileset_SecretBaseTree:: @ 83DFA1C .4byte NULL @ animation callback .align 2 -gTileset_SecretBaseShrub:: @ 83DFA34 +gTileset_SecretBaseShrub:: .byte FALSE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -384,7 +384,7 @@ gTileset_SecretBaseShrub:: @ 83DFA34 .4byte NULL @ animation callback .align 2 -gTileset_SecretBaseBlueCave:: @ 83DFA4C +gTileset_SecretBaseBlueCave:: .byte FALSE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -395,7 +395,7 @@ gTileset_SecretBaseBlueCave:: @ 83DFA4C .4byte NULL @ animation callback .align 2 -gTileset_SecretBaseYellowCave:: @ 83DFA64 +gTileset_SecretBaseYellowCave:: .byte FALSE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -406,7 +406,7 @@ gTileset_SecretBaseYellowCave:: @ 83DFA64 .4byte NULL @ animation callback .align 2 -gTileset_SecretBaseRedCave:: @ 83DFA7C +gTileset_SecretBaseRedCave:: .byte FALSE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -417,7 +417,7 @@ gTileset_SecretBaseRedCave:: @ 83DFA7C .4byte NULL @ animation callback .align 2 -gTileset_InsideOfTruck:: @ 83DFA94 +gTileset_InsideOfTruck:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -428,7 +428,7 @@ gTileset_InsideOfTruck:: @ 83DFA94 .4byte NULL @ animation callback .align 2 -gTileset_Unused2:: @ 83DFAAC +gTileset_Unused2:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -439,7 +439,7 @@ gTileset_Unused2:: @ 83DFAAC .4byte NULL @ animation callback .align 2 -gTileset_Contest:: @ 83DFAC4 +gTileset_Contest:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -450,7 +450,7 @@ gTileset_Contest:: @ 83DFAC4 .4byte NULL @ animation callback .align 2 -gTileset_LilycoveMuseum:: @ 83DFADC +gTileset_LilycoveMuseum:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -461,7 +461,7 @@ gTileset_LilycoveMuseum:: @ 83DFADC .4byte NULL @ animation callback .align 2 -gTileset_BrendansMaysHouse:: @ 83DFAF4 +gTileset_BrendansMaysHouse:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -472,7 +472,7 @@ gTileset_BrendansMaysHouse:: @ 83DFAF4 .4byte NULL @ animation callback .align 2 -gTileset_Lab:: @ 83DFB0C +gTileset_Lab:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -483,7 +483,7 @@ gTileset_Lab:: @ 83DFB0C .4byte NULL @ animation callback .align 2 -gTileset_Underwater:: @ 83DFB24 +gTileset_Underwater:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -494,7 +494,7 @@ gTileset_Underwater:: @ 83DFB24 .4byte InitTilesetAnim_Underwater .align 2 -gTileset_PetalburgGym:: @ 83DFB3C +gTileset_PetalburgGym:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -505,7 +505,7 @@ gTileset_PetalburgGym:: @ 83DFB3C .4byte NULL @ animation callback .align 2 -gTileset_SootopolisGym:: @ 83DFB54 +gTileset_SootopolisGym:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -516,7 +516,7 @@ gTileset_SootopolisGym:: @ 83DFB54 .4byte InitTilesetAnim_SootopolisGym .align 2 -gTileset_GenericBuilding:: @ 83DFB6C +gTileset_GenericBuilding:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -527,7 +527,7 @@ gTileset_GenericBuilding:: @ 83DFB6C .4byte NULL @ animation callback .align 2 -gTileset_MauvilleGameCorner:: @ 83DFB84 +gTileset_MauvilleGameCorner:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -538,7 +538,7 @@ gTileset_MauvilleGameCorner:: @ 83DFB84 .4byte NULL @ animation callback .align 2 -gTileset_RustboroGym:: @ 83DFB9C +gTileset_RustboroGym:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -549,7 +549,7 @@ gTileset_RustboroGym:: @ 83DFB9C .4byte NULL @ animation callback .align 2 -gTileset_DewfordGym:: @ 83DFBB4 +gTileset_DewfordGym:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -560,7 +560,7 @@ gTileset_DewfordGym:: @ 83DFBB4 .4byte NULL @ animation callback .align 2 -gTileset_MauvilleGym:: @ 83DFBCC +gTileset_MauvilleGym:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -571,7 +571,7 @@ gTileset_MauvilleGym:: @ 83DFBCC .4byte InitTilesetAnim_MauvilleGym .align 2 -gTileset_LavaridgeGym:: @ 83DFBE4 +gTileset_LavaridgeGym:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -582,7 +582,7 @@ gTileset_LavaridgeGym:: @ 83DFBE4 .4byte NULL @ animation callback .align 2 -gTileset_TrickHousePuzzle:: @ 83DFBFC +gTileset_TrickHousePuzzle:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -593,7 +593,7 @@ gTileset_TrickHousePuzzle:: @ 83DFBFC .4byte NULL @ animation callback .align 2 -gTileset_FortreeGym:: @ 83DFC14 +gTileset_FortreeGym:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -604,7 +604,7 @@ gTileset_FortreeGym:: @ 83DFC14 .4byte NULL @ animation callback .align 2 -gTileset_MossdeepGym:: @ 83DFC2C +gTileset_MossdeepGym:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -615,7 +615,7 @@ gTileset_MossdeepGym:: @ 83DFC2C .4byte NULL @ animation callback .align 2 -gTileset_InsideShip:: @ 83DFC44 +gTileset_InsideShip:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -626,7 +626,7 @@ gTileset_InsideShip:: @ 83DFC44 .4byte NULL @ animation callback .align 2 -gTileset_SecretBase:: @ 83DFC5C +gTileset_SecretBase:: .byte FALSE @ is compressed .byte FALSE @ is secondary tileset .2byte 0 @ padding @@ -637,15 +637,15 @@ gTileset_SecretBase:: @ 83DFC5C .4byte NULL @ animation callback .align 2 -gTilesetPointer_SecretBase:: @ 83DFC74 +gTilesetPointer_SecretBase:: .4byte gTileset_SecretBase .align 2 -gTilesetPointer_SecretBaseRedCave:: @ 83DFC78 +gTilesetPointer_SecretBaseRedCave:: .4byte gTileset_SecretBaseRedCave .align 2 -gTileset_EliteFour:: @ 83DFC7C +gTileset_EliteFour:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -656,7 +656,7 @@ gTileset_EliteFour:: @ 83DFC7C .4byte InitTilesetAnim_EliteFour .align 2 -gTileset_BattleFrontier:: @ 83DFC94 +gTileset_BattleFrontier:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -667,7 +667,7 @@ gTileset_BattleFrontier:: @ 83DFC94 .4byte NULL @ animation callback .align 2 -gTileset_BattlePalace:: @ 83DFCAC +gTileset_BattlePalace:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -678,7 +678,7 @@ gTileset_BattlePalace:: @ 83DFCAC .4byte NULL @ animation callback .align 2 -gTileset_BattleDome:: @ 83DFCC4 +gTileset_BattleDome:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -689,7 +689,7 @@ gTileset_BattleDome:: @ 83DFCC4 .4byte InitTilesetAnim_BattleDome .align 2 -gTileset_BattleFactory:: @ 83DFCDC +gTileset_BattleFactory:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -700,7 +700,7 @@ gTileset_BattleFactory:: @ 83DFCDC .4byte NULL @ animation callback .align 2 -gTileset_BattlePike:: @ 83DFCF4 +gTileset_BattlePike:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -711,7 +711,7 @@ gTileset_BattlePike:: @ 83DFCF4 .4byte NULL @ animation callback .align 2 -gTileset_BattleArena:: @ 83DFD0C +gTileset_BattleArena:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -722,7 +722,7 @@ gTileset_BattleArena:: @ 83DFD0C .4byte NULL @ animation callback .align 2 -gTileset_BattlePyramid:: @ 83DFD24 +gTileset_BattlePyramid:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -733,7 +733,7 @@ gTileset_BattlePyramid:: @ 83DFD24 .4byte InitTilesetAnim_BattlePyramid .align 2 -gTileset_MirageTower:: @ 83DFD3C +gTileset_MirageTower:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -744,7 +744,7 @@ gTileset_MirageTower:: @ 83DFD3C .4byte NULL @ animation callback .align 2 -gTileset_MossdeepGameCorner:: @ 83DFD54 +gTileset_MossdeepGameCorner:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -755,7 +755,7 @@ gTileset_MossdeepGameCorner:: @ 83DFD54 .4byte NULL @ animation callback .align 2 -gTileset_IslandHarbor:: @ 83DFD6C +gTileset_IslandHarbor:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -766,7 +766,7 @@ gTileset_IslandHarbor:: @ 83DFD6C .4byte NULL @ animation callback .align 2 -gTileset_TrainerHill:: @ 83DFD84 +gTileset_TrainerHill:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -777,7 +777,7 @@ gTileset_TrainerHill:: @ 83DFD84 .4byte NULL @ animation callback .align 2 -gTileset_NavelRock:: @ 83DFD9C +gTileset_NavelRock:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -788,7 +788,7 @@ gTileset_NavelRock:: @ 83DFD9C .4byte NULL @ animation callback .align 2 -gTileset_BattleFrontierRankingHall:: @ 83DFDB4 +gTileset_BattleFrontierRankingHall:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -799,7 +799,7 @@ gTileset_BattleFrontierRankingHall:: @ 83DFDB4 .4byte NULL @ animation callback .align 2 -gTileset_BattleTent:: @ 83DFDCC +gTileset_BattleTent:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -810,7 +810,7 @@ gTileset_BattleTent:: @ 83DFDCC .4byte NULL @ animation callback .align 2 -gTileset_MysteryEventsHouse:: @ 83DFDE4 +gTileset_MysteryEventsHouse:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding @@ -821,7 +821,7 @@ gTileset_MysteryEventsHouse:: @ 83DFDE4 .4byte NULL @ animation callback .align 2 -gTileset_UnionRoom:: @ 83DFDFC +gTileset_UnionRoom:: .byte TRUE @ is compressed .byte TRUE @ is secondary tileset .2byte 0 @ padding diff --git a/data/tilesets/metatiles.inc b/data/tilesets/metatiles.inc index 1d0875147f..5fbb529d0a 100644 --- a/data/tilesets/metatiles.inc +++ b/data/tilesets/metatiles.inc @@ -1,559 +1,559 @@ .align 1 -gMetatiles_General:: @ 83960F0 +gMetatiles_General:: .incbin "data/tilesets/primary/general/metatiles.bin" .align 1 -gMetatileAttributes_General:: @ 83980F0 +gMetatileAttributes_General:: .incbin "data/tilesets/primary/general/metatile_attributes.bin" .align 1 -gMetatiles_Petalburg:: @ 83984F0 +gMetatiles_Petalburg:: .incbin "data/tilesets/secondary/petalburg/metatiles.bin" .align 1 -gMetatileAttributes_Petalburg:: @ 8398DF0 +gMetatileAttributes_Petalburg:: .incbin "data/tilesets/secondary/petalburg/metatile_attributes.bin" .align 1 -gMetatiles_Rustboro:: @ 8398F10 +gMetatiles_Rustboro:: .incbin "data/tilesets/secondary/rustboro/metatiles.bin" .align 1 -gMetatileAttributes_Rustboro:: @ 839A4F0 +gMetatileAttributes_Rustboro:: .incbin "data/tilesets/secondary/rustboro/metatile_attributes.bin" .align 1 -gMetatiles_Dewford:: @ 839A7AC +gMetatiles_Dewford:: .incbin "data/tilesets/secondary/dewford/metatiles.bin" .align 1 -gMetatileAttributes_Dewford:: @ 839BF5C +gMetatileAttributes_Dewford:: .incbin "data/tilesets/secondary/dewford/metatile_attributes.bin" .align 1 -gMetatiles_Slateport:: @ 839C252 +gMetatiles_Slateport:: .incbin "data/tilesets/secondary/slateport/metatiles.bin" .align 1 -gMetatileAttributes_Slateport:: @ 839DBB2 +gMetatileAttributes_Slateport:: .incbin "data/tilesets/secondary/slateport/metatile_attributes.bin" .align 1 -gMetatiles_Mauville:: @ 839DEDE +gMetatiles_Mauville:: .incbin "data/tilesets/secondary/mauville/metatiles.bin" .align 1 -gMetatileAttributes_Mauville:: @ 839FEBE +gMetatileAttributes_Mauville:: .incbin "data/tilesets/secondary/mauville/metatile_attributes.bin" .align 1 -gMetatiles_Lavaridge:: @ 83A02BA +gMetatiles_Lavaridge:: .incbin "data/tilesets/secondary/lavaridge/metatiles.bin" .align 1 -gMetatileAttributes_Lavaridge:: @ 83A1E4A +gMetatileAttributes_Lavaridge:: .incbin "data/tilesets/secondary/lavaridge/metatile_attributes.bin" .align 1 -gMetatiles_Fallarbor:: @ 83A21BC +gMetatiles_Fallarbor:: .incbin "data/tilesets/secondary/fallarbor/metatiles.bin" .align 1 -gMetatileAttributes_Fallarbor:: @ 83A38AC +gMetatileAttributes_Fallarbor:: .incbin "data/tilesets/secondary/fallarbor/metatile_attributes.bin" .align 1 -gMetatiles_Fortree:: @ 83A3B8A +gMetatiles_Fortree:: .incbin "data/tilesets/secondary/fortree/metatiles.bin" .align 1 -gMetatileAttributes_Fortree:: @ 83A4D0A +gMetatileAttributes_Fortree:: .incbin "data/tilesets/secondary/fortree/metatile_attributes.bin" .align 1 -gMetatiles_Lilycove:: @ 83A4F3A +gMetatiles_Lilycove:: .incbin "data/tilesets/secondary/lilycove/metatiles.bin" .align 1 -gMetatileAttributes_Lilycove:: @ 83A652A +gMetatileAttributes_Lilycove:: .incbin "data/tilesets/secondary/lilycove/metatile_attributes.bin" .align 1 -gMetatiles_Mossdeep:: @ 83A67E8 +gMetatiles_Mossdeep:: .incbin "data/tilesets/secondary/mossdeep/metatiles.bin" .align 1 -gMetatileAttributes_Mossdeep:: @ 83A8448 +gMetatileAttributes_Mossdeep:: .incbin "data/tilesets/secondary/mossdeep/metatile_attributes.bin" .align 1 -gMetatiles_EverGrande:: @ 83A87D4 +gMetatiles_EverGrande:: .incbin "data/tilesets/secondary/ever_grande/metatiles.bin" .align 1 -gMetatileAttributes_EverGrande:: @ 83A9254 +gMetatileAttributes_EverGrande:: .incbin "data/tilesets/secondary/ever_grande/metatile_attributes.bin" .align 1 -gMetatiles_Pacifidlog:: @ 83A93A4 +gMetatiles_Pacifidlog:: .incbin "data/tilesets/secondary/pacifidlog/metatiles.bin" .align 1 -gMetatileAttributes_Pacifidlog:: @ 83AA054 +gMetatileAttributes_Pacifidlog:: .incbin "data/tilesets/secondary/pacifidlog/metatile_attributes.bin" .align 1 -gMetatiles_Sootopolis:: @ 83AA1EA +gMetatiles_Sootopolis:: .incbin "data/tilesets/secondary/sootopolis/metatiles.bin" .align 1 -gMetatileAttributes_Sootopolis:: @ 83AB1CA +gMetatileAttributes_Sootopolis:: .incbin "data/tilesets/secondary/sootopolis/metatile_attributes.bin" .align 1 -gMetatiles_BattleFrontierOutsideWest:: @ 83AB3C6 +gMetatiles_BattleFrontierOutsideWest:: .incbin "data/tilesets/secondary/battle_frontier_outside_west/metatiles.bin" .align 1 -gMetatileAttributes_BattleFrontierOutsideWest:: @ 83AD3A6 +gMetatileAttributes_BattleFrontierOutsideWest:: .incbin "data/tilesets/secondary/battle_frontier_outside_west/metatile_attributes.bin" .align 1 -gMetatiles_BattleFrontierOutsideEast:: @ 83AD7A2 +gMetatiles_BattleFrontierOutsideEast:: .incbin "data/tilesets/secondary/battle_frontier_outside_east/metatiles.bin" .align 1 -gMetatileAttributes_BattleFrontierOutsideEast:: @ 83AF782 +gMetatileAttributes_BattleFrontierOutsideEast:: .incbin "data/tilesets/secondary/battle_frontier_outside_east/metatile_attributes.bin" .align 1 -gMetatiles_InsideBuilding:: @ 83AFB7E +gMetatiles_InsideBuilding:: .incbin "data/tilesets/primary/building/metatiles.bin" .align 1 -gMetatileAttributes_InsideBuilding:: @ 83AFBFE +gMetatileAttributes_InsideBuilding:: .incbin "data/tilesets/primary/building/metatile_attributes.bin" .align 1 -gMetatiles_Shop:: @ 83AFC0E +gMetatiles_Shop:: .incbin "data/tilesets/secondary/shop/metatiles.bin" .align 1 -gMetatileAttributes_Shop:: @ 83B0E1E +gMetatileAttributes_Shop:: .incbin "data/tilesets/secondary/shop/metatile_attributes.bin" .align 1 -gMetatiles_PokemonCenter:: @ 83B1060 +gMetatiles_PokemonCenter:: .incbin "data/tilesets/secondary/pokemon_center/metatiles.bin" .align 1 -gMetatileAttributes_PokemonCenter:: @ 83B1EE0 +gMetatileAttributes_PokemonCenter:: .incbin "data/tilesets/secondary/pokemon_center/metatile_attributes.bin" .align 1 -gMetatiles_Cave:: @ 83B20B0 +gMetatiles_Cave:: .incbin "data/tilesets/secondary/cave/metatiles.bin" .align 1 -gMetatileAttributes_Cave:: @ 83B3A90 +gMetatileAttributes_Cave:: .incbin "data/tilesets/secondary/cave/metatile_attributes.bin" .align 1 -gMetatiles_PokemonSchool:: @ 83B3DCC +gMetatiles_PokemonSchool:: .incbin "data/tilesets/secondary/pokemon_school/metatiles.bin" .align 1 -gMetatileAttributes_PokemonSchool:: @ 83B416C +gMetatileAttributes_PokemonSchool:: .incbin "data/tilesets/secondary/pokemon_school/metatile_attributes.bin" .align 1 -gMetatiles_PokemonFanClub:: @ 83B41E0 +gMetatiles_PokemonFanClub:: .incbin "data/tilesets/secondary/pokemon_fan_club/metatiles.bin" .align 1 -gMetatileAttributes_PokemonFanClub:: @ 83B4860 +gMetatileAttributes_PokemonFanClub:: .incbin "data/tilesets/secondary/pokemon_fan_club/metatile_attributes.bin" .align 1 -gMetatiles_Unused1:: @ 83B4930 +gMetatiles_Unused1:: .incbin "data/tilesets/secondary/unused_1/metatiles.bin" .align 1 -gMetatileAttributes_Unused1:: @ 83B4950 +gMetatileAttributes_Unused1:: .incbin "data/tilesets/secondary/unused_1/metatile_attributes.bin" .align 1 -gMetatiles_MeteorFalls:: @ 83B4954 +gMetatiles_MeteorFalls:: .incbin "data/tilesets/secondary/meteor_falls/metatiles.bin" .align 1 -gMetatileAttributes_MeteorFalls:: @ 83B5344 +gMetatileAttributes_MeteorFalls:: .incbin "data/tilesets/secondary/meteor_falls/metatile_attributes.bin" .align 1 -gMetatiles_OceanicMuseum:: @ 83B5482 +gMetatiles_OceanicMuseum:: .incbin "data/tilesets/secondary/oceanic_museum/metatiles.bin" .align 1 -gMetatileAttributes_OceanicMuseum:: @ 83B5C22 +gMetatileAttributes_OceanicMuseum:: .incbin "data/tilesets/secondary/oceanic_museum/metatile_attributes.bin" .align 1 -gMetatiles_CableClub:: @ 83B5D16 +gMetatiles_CableClub:: .incbin "data/tilesets/secondary/cable_club/metatiles.bin" .align 1 -gMetatileAttributes_CableClub:: @ 83B6D16 +gMetatileAttributes_CableClub:: .incbin "data/tilesets/secondary/cable_club/metatile_attributes.bin" .align 1 -gMetatiles_SeashoreHouse:: @ 83B6F16 +gMetatiles_SeashoreHouse:: .incbin "data/tilesets/secondary/seashore_house/metatiles.bin" .align 1 -gMetatileAttributes_SeashoreHouse:: @ 83B7296 +gMetatileAttributes_SeashoreHouse:: .incbin "data/tilesets/secondary/seashore_house/metatile_attributes.bin" .align 1 -gMetatiles_PrettyPetalFlowerShop:: @ 83B7306 +gMetatiles_PrettyPetalFlowerShop:: .incbin "data/tilesets/secondary/pretty_petal_flower_shop/metatiles.bin" .align 1 -gMetatileAttributes_PrettyPetalFlowerShop:: @ 83B7786 +gMetatileAttributes_PrettyPetalFlowerShop:: .incbin "data/tilesets/secondary/pretty_petal_flower_shop/metatile_attributes.bin" .align 1 -gMetatiles_PokemonDayCare:: @ 83B7816 +gMetatiles_PokemonDayCare:: .incbin "data/tilesets/secondary/pokemon_day_care/metatiles.bin" .align 1 -gMetatileAttributes_PokemonDayCare:: @ 83B7C56 +gMetatileAttributes_PokemonDayCare:: .incbin "data/tilesets/secondary/pokemon_day_care/metatile_attributes.bin" .align 1 -gMetatiles_Facility:: @ 83B7CDE +gMetatiles_Facility:: .incbin "data/tilesets/secondary/facility/metatiles.bin" .align 1 -gMetatileAttributes_Facility:: @ 83B9CCE +gMetatileAttributes_Facility:: .incbin "data/tilesets/secondary/facility/metatile_attributes.bin" .align 1 -gMetatiles_BikeShop:: @ 83BA0CC +gMetatiles_BikeShop:: .incbin "data/tilesets/secondary/bike_shop/metatiles.bin" .align 1 -gMetatileAttributes_BikeShop:: @ 83BB04C +gMetatileAttributes_BikeShop:: .incbin "data/tilesets/secondary/bike_shop/metatile_attributes.bin" .align 1 -gMetatiles_RusturfTunnel:: @ 83BB23C +gMetatiles_RusturfTunnel:: .incbin "data/tilesets/secondary/rusturf_tunnel/metatiles.bin" .align 1 -gMetatileAttributes_RusturfTunnel:: @ 83BB76C +gMetatileAttributes_RusturfTunnel:: .incbin "data/tilesets/secondary/rusturf_tunnel/metatile_attributes.bin" .align 1 -gMetatiles_SecretBaseSecondary:: @ 83BB812 +gMetatiles_SecretBaseSecondary:: .incbin "data/tilesets/secondary/secret_base/metatiles.bin" .align 1 -gMetatileAttributes_SecretBaseSecondary:: @ 83BCC52 +gMetatileAttributes_SecretBaseSecondary:: .incbin "data/tilesets/secondary/secret_base/metatile_attributes.bin" .align 1 -gMetatiles_InsideOfTruck:: @ 83BCEDA +gMetatiles_InsideOfTruck:: .incbin "data/tilesets/secondary/inside_of_truck/metatiles.bin" .align 1 -gMetatileAttributes_InsideOfTruck:: @ 83BD13A +gMetatileAttributes_InsideOfTruck:: .incbin "data/tilesets/secondary/inside_of_truck/metatile_attributes.bin" .align 1 -gMetatiles_Contest:: @ 83BD186 +gMetatiles_Contest:: .incbin "data/tilesets/secondary/contest/metatiles.bin" .align 1 -gMetatileAttributes_Contest:: @ 83BE016 +gMetatileAttributes_Contest:: .incbin "data/tilesets/secondary/contest/metatile_attributes.bin" .align 1 -gMetatiles_LilycoveMuseum:: @ 83BE1E8 +gMetatiles_LilycoveMuseum:: .incbin "data/tilesets/secondary/lilycove_museum/metatiles.bin" .align 1 -gMetatileAttributes_LilycoveMuseum:: @ 83BEAD8 +gMetatileAttributes_LilycoveMuseum:: .incbin "data/tilesets/secondary/lilycove_museum/metatile_attributes.bin" .align 1 -gMetatiles_BrendansMaysHouse:: @ 83BEBF6 +gMetatiles_BrendansMaysHouse:: .incbin "data/tilesets/secondary/brendans_mays_house/metatiles.bin" .align 1 -gMetatileAttributes_BrendansMaysHouse:: @ 83BF836 +gMetatileAttributes_BrendansMaysHouse:: .incbin "data/tilesets/secondary/brendans_mays_house/metatile_attributes.bin" .align 1 -gMetatiles_Lab:: @ 83BF9BE +gMetatiles_Lab:: .incbin "data/tilesets/secondary/lab/metatiles.bin" .align 1 -gMetatileAttributes_Lab:: @ 83C039E +gMetatileAttributes_Lab:: .incbin "data/tilesets/secondary/lab/metatile_attributes.bin" .align 1 -gMetatiles_Underwater:: @ 83C04DA +gMetatiles_Underwater:: .incbin "data/tilesets/secondary/underwater/metatiles.bin" .align 1 -gMetatileAttributes_Underwater:: @ 83C139A +gMetatileAttributes_Underwater:: .incbin "data/tilesets/secondary/underwater/metatile_attributes.bin" .align 1 -gMetatiles_GenericBuilding:: @ 83C1572 +gMetatiles_GenericBuilding:: .incbin "data/tilesets/secondary/generic_building/metatiles.bin" .align 1 -gMetatileAttributes_GenericBuilding:: @ 83C3572 +gMetatileAttributes_GenericBuilding:: .incbin "data/tilesets/secondary/generic_building/metatile_attributes.bin" .align 1 -gMetatiles_MauvilleGameCorner:: @ 83C3972 +gMetatiles_MauvilleGameCorner:: .incbin "data/tilesets/secondary/mauville_game_corner/metatiles.bin" .align 1 -gMetatileAttributes_MauvilleGameCorner:: @ 83C3F72 +gMetatileAttributes_MauvilleGameCorner:: .incbin "data/tilesets/secondary/mauville_game_corner/metatile_attributes.bin" .align 1 -gMetatiles_Unused2:: @ 83C4032 +gMetatiles_Unused2:: .incbin "data/tilesets/secondary/unused_2/metatiles.bin" .align 1 -gMetatileAttributes_Unused2:: @ 83C43D2 +gMetatileAttributes_Unused2:: .incbin "data/tilesets/secondary/unused_2/metatile_attributes.bin" .align 1 -gMetatiles_RustboroGym:: @ 83C4446 +gMetatiles_RustboroGym:: .incbin "data/tilesets/secondary/rustboro_gym/metatiles.bin" .align 1 -gMetatileAttributes_RustboroGym:: @ 83C47C6 +gMetatileAttributes_RustboroGym:: .incbin "data/tilesets/secondary/rustboro_gym/metatile_attributes.bin" .align 1 -gMetatiles_DewfordGym:: @ 83C4836 +gMetatiles_DewfordGym:: .incbin "data/tilesets/secondary/dewford_gym/metatiles.bin" .align 1 -gMetatileAttributes_DewfordGym:: @ 83C4C86 +gMetatileAttributes_DewfordGym:: .incbin "data/tilesets/secondary/dewford_gym/metatile_attributes.bin" .align 1 -gMetatiles_MauvilleGym:: @ 83C4D10 +gMetatiles_MauvilleGym:: .incbin "data/tilesets/secondary/mauville_gym/metatiles.bin" .align 1 -gMetatileAttributes_MauvilleGym:: @ 83C5460 +gMetatileAttributes_MauvilleGym:: .incbin "data/tilesets/secondary/mauville_gym/metatile_attributes.bin" .align 1 -gMetatiles_LavaridgeGym:: @ 83C554A +gMetatiles_LavaridgeGym:: .incbin "data/tilesets/secondary/lavaridge_gym/metatiles.bin" .align 1 -gMetatileAttributes_LavaridgeGym:: @ 83C591A +gMetatileAttributes_LavaridgeGym:: .incbin "data/tilesets/secondary/lavaridge_gym/metatile_attributes.bin" .align 1 -gMetatiles_PetalburgGym:: @ 83C5994 +gMetatiles_PetalburgGym:: .incbin "data/tilesets/secondary/petalburg_gym/metatiles.bin" .align 1 -gMetatileAttributes_PetalburgGym:: @ 83C6794 +gMetatileAttributes_PetalburgGym:: .incbin "data/tilesets/secondary/petalburg_gym/metatile_attributes.bin" .align 1 -gMetatiles_FortreeGym:: @ 83C6954 +gMetatiles_FortreeGym:: .incbin "data/tilesets/secondary/fortree_gym/metatiles.bin" .align 1 -gMetatileAttributes_FortreeGym:: @ 83C6E54 +gMetatileAttributes_FortreeGym:: .incbin "data/tilesets/secondary/fortree_gym/metatile_attributes.bin" .align 1 -gMetatiles_MossdeepGym:: @ 83C6EF4 +gMetatiles_MossdeepGym:: .incbin "data/tilesets/secondary/mossdeep_gym/metatiles.bin" .align 1 -gMetatileAttributes_MossdeepGym:: @ 83C7644 +gMetatileAttributes_MossdeepGym:: .incbin "data/tilesets/secondary/mossdeep_gym/metatile_attributes.bin" .align 1 -gMetatiles_SootopolisGym:: @ 83C772E +gMetatiles_SootopolisGym:: .incbin "data/tilesets/secondary/sootopolis_gym/metatiles.bin" .align 1 -gMetatileAttributes_SootopolisGym:: @ 83C7ECE +gMetatileAttributes_SootopolisGym:: .incbin "data/tilesets/secondary/sootopolis_gym/metatile_attributes.bin" .align 1 -gMetatiles_TrickHousePuzzle:: @ 83C7FC2 +gMetatiles_TrickHousePuzzle:: .incbin "data/tilesets/secondary/trick_house_puzzle/metatiles.bin" .align 1 -gMetatileAttributes_TrickHousePuzzle:: @ 83C8B92 +gMetatileAttributes_TrickHousePuzzle:: .incbin "data/tilesets/secondary/trick_house_puzzle/metatile_attributes.bin" .align 1 -gMetatiles_InsideShip:: @ 83C8D0C +gMetatiles_InsideShip:: .incbin "data/tilesets/secondary/inside_ship/metatiles.bin" .align 1 -gMetatileAttributes_InsideShip:: @ 83C9CCC +gMetatileAttributes_InsideShip:: .incbin "data/tilesets/secondary/inside_ship/metatile_attributes.bin" .align 1 -gMetatiles_SecretBasePrimary:: @ 83C9EC4 +gMetatiles_SecretBasePrimary:: .incbin "data/tilesets/primary/secret_base/metatiles.bin" .align 1 -gMetatileAttributes_SecretBasePrimary:: @ 83C9EE4 +gMetatileAttributes_SecretBasePrimary:: .incbin "data/tilesets/primary/secret_base/metatile_attributes.bin" .align 1 -gMetatiles_EliteFour:: @ 83C9EE8 +gMetatiles_EliteFour:: .incbin "data/tilesets/secondary/elite_four/metatiles.bin" .align 1 -gMetatileAttributes_EliteFour:: @ 83CB3A8 +gMetatileAttributes_EliteFour:: .incbin "data/tilesets/secondary/elite_four/metatile_attributes.bin" .align 1 -gMetatiles_BattleFrontier:: @ 83CB640 +gMetatiles_BattleFrontier:: .incbin "data/tilesets/secondary/battle_frontier/metatiles.bin" .align 1 -gMetatileAttributes_BattleFrontier:: @ 83CD610 +gMetatileAttributes_BattleFrontier:: .incbin "data/tilesets/secondary/battle_frontier/metatile_attributes.bin" .align 1 -gMetatiles_BattlePalace:: @ 83CDA0A +gMetatiles_BattlePalace:: .incbin "data/tilesets/secondary/battle_palace/metatiles.bin" .align 1 -gMetatileAttributes_BattlePalace:: @ 83CE4EA +gMetatileAttributes_BattlePalace:: .incbin "data/tilesets/secondary/battle_palace/metatile_attributes.bin" .align 1 -gMetatiles_BattleDome:: @ 83CE646 +gMetatiles_BattleDome:: .incbin "data/tilesets/secondary/battle_dome/metatiles.bin" .align 1 -gMetatileAttributes_BattleDome:: @ 83D00F6 +gMetatileAttributes_BattleDome:: .incbin "data/tilesets/secondary/battle_dome/metatile_attributes.bin" .align 1 -gMetatiles_BattleFactory:: @ 83D044C +gMetatiles_BattleFactory:: .incbin "data/tilesets/secondary/battle_factory/metatiles.bin" .align 1 -gMetatileAttributes_BattleFactory:: @ 83D1A6C +gMetatileAttributes_BattleFactory:: .incbin "data/tilesets/secondary/battle_factory/metatile_attributes.bin" .align 1 -gMetatiles_BattlePike:: @ 83D1D30 +gMetatiles_BattlePike:: .incbin "data/tilesets/secondary/battle_pike/metatiles.bin" .align 1 -gMetatileAttributes_BattlePike:: @ 83D32E0 +gMetatileAttributes_BattlePike:: .incbin "data/tilesets/secondary/battle_pike/metatile_attributes.bin" .align 1 -gMetatiles_BattleArena:: @ 83D3596 +gMetatiles_BattleArena:: .incbin "data/tilesets/secondary/battle_arena/metatiles.bin" .align 1 -gMetatileAttributes_BattleArena:: @ 83D40A6 +gMetatileAttributes_BattleArena:: .incbin "data/tilesets/secondary/battle_arena/metatile_attributes.bin" .align 1 -gMetatiles_BattlePyramid:: @ 83D4208 +gMetatiles_BattlePyramid:: .incbin "data/tilesets/secondary/battle_pyramid/metatiles.bin" .align 1 -gMetatileAttributes_BattlePyramid:: @ 83D4FD8 +gMetatileAttributes_BattlePyramid:: .incbin "data/tilesets/secondary/battle_pyramid/metatile_attributes.bin" .align 1 -gMetatiles_MirageTower:: @ 83D5192 +gMetatiles_MirageTower:: .incbin "data/tilesets/secondary/mirage_tower/metatiles.bin" .align 1 -gMetatileAttributes_MirageTower:: @ 83D6B72 +gMetatileAttributes_MirageTower:: .incbin "data/tilesets/secondary/mirage_tower/metatile_attributes.bin" .align 1 -gMetatiles_MossdeepGameCorner:: @ 83D6EAE +gMetatiles_MossdeepGameCorner:: .incbin "data/tilesets/secondary/mossdeep_game_corner/metatiles.bin" .align 1 -gMetatileAttributes_MossdeepGameCorner:: @ 83D71FE +gMetatileAttributes_MossdeepGameCorner:: .incbin "data/tilesets/secondary/mossdeep_game_corner/metatile_attributes.bin" .align 1 -gMetatiles_IslandHarbor:: @ 83D7268 +gMetatiles_IslandHarbor:: .incbin "data/tilesets/secondary/island_harbor/metatiles.bin" .align 1 -gMetatileAttributes_IslandHarbor:: @ 83D8FC8 +gMetatileAttributes_IslandHarbor:: .incbin "data/tilesets/secondary/island_harbor/metatile_attributes.bin" .align 1 -gMetatiles_TrainerHill:: @ 83D9374 +gMetatiles_TrainerHill:: .incbin "data/tilesets/secondary/trainer_hill/metatiles.bin" .align 1 -gMetatileAttributes_TrainerHill:: @ 83DB1D4 +gMetatileAttributes_TrainerHill:: .incbin "data/tilesets/secondary/trainer_hill/metatile_attributes.bin" .align 1 -gMetatiles_NavelRock:: @ 83DB5A0 +gMetatiles_NavelRock:: .incbin "data/tilesets/secondary/navel_rock/metatiles.bin" .align 1 -gMetatileAttributes_NavelRock:: @ 83DD1D0 +gMetatileAttributes_NavelRock:: .incbin "data/tilesets/secondary/navel_rock/metatile_attributes.bin" .align 1 -gMetatiles_BattleFrontierRankingHall:: @ 83DD556 +gMetatiles_BattleFrontierRankingHall:: .incbin "data/tilesets/secondary/battle_frontier_ranking_hall/metatiles.bin" .align 1 -gMetatileAttributes_BattleFrontierRankingHall:: @ 83DDB36 +gMetatileAttributes_BattleFrontierRankingHall:: .incbin "data/tilesets/secondary/battle_frontier_ranking_hall/metatile_attributes.bin" .align 1 -gMetatiles_BattleTent:: @ 83DDBF2 +gMetatiles_BattleTent:: .incbin "data/tilesets/secondary/battle_tent/metatiles.bin" .align 1 -gMetatileAttributes_BattleTent:: @ 83DECC2 +gMetatileAttributes_BattleTent:: .incbin "data/tilesets/secondary/battle_tent/metatile_attributes.bin" .align 1 -gMetatiles_MysteryEventsHouse:: @ 83DEEDC +gMetatiles_MysteryEventsHouse:: .incbin "data/tilesets/secondary/mystery_events_house/metatiles.bin" .align 1 -gMetatileAttributes_MysteryEventsHouse:: @ 83DF30C +gMetatileAttributes_MysteryEventsHouse:: .incbin "data/tilesets/secondary/mystery_events_house/metatile_attributes.bin" .align 1 -gMetatiles_UnionRoom:: @ 83DF392 +gMetatiles_UnionRoom:: .incbin "data/tilesets/secondary/union_room/metatiles.bin" .align 1 -gMetatileAttributes_UnionRoom:: @ 83DF6A2 +gMetatileAttributes_UnionRoom:: .incbin "data/tilesets/secondary/union_room/metatile_attributes.bin" diff --git a/data/unknown_serial_data.s b/data/unknown_serial_data.s index 42eb5c31e0..2fb1ba42bb 100644 --- a/data/unknown_serial_data.s +++ b/data/unknown_serial_data.s @@ -1,5 +1,5 @@ .section .rodata .align 2 -gUnknown_089A3470:: @ 89A3470 +gUnknown_089A3470:: .incbin "data/unknown_serial_data.bin" diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index 285718598b..ce06c14898 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -1,7 +1,7 @@ # Bugs and Glitches -These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. Defining the `BUGFIX` preprocessor variable will fix some of these automatically. +These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. Defining the `BUGFIX` and `UBFIX` preprocessor variables will fix some of these automatically. `UBFIX` will already be defined for MODERN builds. Fixes are written in the `diff` format. If you've used Git before, this should look familiar: @@ -13,55 +13,9 @@ Fixes are written in the `diff` format. If you've used Git before, this should l ## Contents -- [RNG does not get seeded](#rng-does-not-get-seeded) - [Scrolling through items in the bag causes the image to flicker](#scrolling-through-items-in-the-bag-causes-the-image-to-flicker) -## RNG does not get seeded - -**Fix:** Add the following function to [src/main.c](https://github.com/pret/pokeemerald/blob/master/src/main.c): -```diff -+static void SeedRngWithRtc(void) -+{ -+ u32 seed = RtcGetMinuteCount(); -+ seed = (seed >> 16) ^ (seed & 0xFFFF); -+ SeedRng(seed); -+} -``` - -And edit `AgbMain`: - -```diff - ... - RtcInit(); - CheckForFlashMemory(); - InitMainCallbacks(); - InitMapMusic(); -+ SeedRngWithRtc(); - ClearDma3Requests(); - ... -``` - -This restores the code of Ruby/Sapphire. - -**Alternate Fix:** Edit the following function in [src/title_screen.c](https://github.com/pret/pokeemerald/blob/master/src/title_screen.c): - -```diff -void CB2_InitTitleScreen(void) -{ - switch (gMain.state) - { - default: - case 0: - SetVBlankCallback(NULL); -+ StartTimer1(); - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuReg(REG_OFFSET_BLDALPHA, 0); - SetGpuReg(REG_OFFSET_BLDY, 0); - ... -``` -This matches what FRLG does and obtains the seed differently than RS, independently of the RTC. - ## Scrolling through items in the bag causes the image to flicker **Fix:** Add the following function to [src/item_menu_icons.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu_icons.c): @@ -89,27 +43,9 @@ Then edit `BagMenu_MoveCursorCallback` in [src/item_menu.c](https://github.com/p ```diff ... { -- RemoveBagItemIconSprite(1 ^ gBagMenu->unk81B_1); -+ HideBagItemIconSprite(gBagMenu->unk81B_1 ^ 1); -+ RemoveBagItemIconSprite(gBagMenu->unk81B_1); - if (a != -2) +- RemoveBagItemIconSprite(1 ^ gBagMenu->itemIconSlot); ++ HideBagItemIconSprite(gBagMenu->itemIconSlot ^ 1); ++ RemoveBagItemIconSprite(gBagMenu->itemIconSlot); + if (itemIndex != LIST_CANCEL) ... ``` - -## Pokémon that have an affine transform as part of their entry animation glitch when going in and out of Poké Balls without a screen transition in between - -**Fix:** Edit `sub_817F77C` in [src/pokemon_animation.c](https://github.com/pret/pokeemerald/blob/master/src/pokemon_animation.c#L1028): - -```diff - ... --#ifdef BUGFIX - else - { - // FIX: Reset these back to normal after they were changed so Poké Ball catch/release - // animations without a screen transition in between don't break - sprite->affineAnimPaused = FALSE; - sprite->affineAnims = gUnknown_082FF694; - } --#endif // BUGFIX -} -``` diff --git a/docs/legacy_WSL1_INSTALL.md b/docs/legacy_WSL1_INSTALL.md new file mode 100644 index 0000000000..b9840d1c82 --- /dev/null +++ b/docs/legacy_WSL1_INSTALL.md @@ -0,0 +1,41 @@ +### Setting up WSL1 (Legacy Portion) + +1. Certain packages are required to build pokeemerald. Install these packages by running the following command: + + ```bash + sudo apt install build-essential git libpng-dev gdebi-core + ``` + > Note: If the above command does not work, try the above command but replacing `apt` with `apt-get`. + +2. Once the packages have finished installing, download the devkitPro pacman package [here](https://github.com/devkitPro/pacman/releases). The file to download is `devkitpro-pacman.amd64.deb`. + +3. WSL has its own file system that's not accessible from Windows, but Windows files *are* accessible from WSL. To install the devkitPro package, you'll need to change to the **current working directory** where the package file was saved. + + For example, if the package file was saved to **C:\Users\\_\_\Downloads** (the Downloads location for most users), enter this command, where *\* is your **Windows** username: + + ```bash + cd /mnt/c/Users//Downloads + ``` + + > Note 1: The Windows C:\ drive is called /mnt/c/ in WSL. + > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users//Downloads folder"`. + > Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed + +4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM. + + ```bash + sudo gdebi devkitpro-pacman.amd64.deb + sudo dkp-pacman -Sy + sudo dkp-pacman -S gba-dev + ``` + + The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. + + > Note: `devkitpro-pacman.amd64.deb` is the expected filename of the devkitPro package downloaded (for the first command). If the downloaded package filename differs, then use that filename instead. + +5. Run the following command to set devkitPro related environment variables (alternatively, close and re-open WSL): + ```bash + source /etc/profile.d/devkit-env.sh + ``` + +Proceed to [Choosing where to store pokeemerald (WSL1) of the current INSTALL.md](/INSTALL.md#choosing-where-to-store-pokeemerald-WSL1). diff --git a/gflib/bg.c b/gflib/bg.c index 66dd81a25e..ec7c2113b1 100644 --- a/gflib/bg.c +++ b/gflib/bg.c @@ -9,20 +9,20 @@ struct BgControl { struct BgConfig { - u16 visible:1; - u16 unknown_1:1; - u16 screenSize:2; - u16 priority:2; - u16 mosaic:1; - u16 wraparound:1; + u8 visible:1; + u8 unknown_1:1; + u8 screenSize:2; + u8 priority:2; + u8 mosaic:1; + u8 wraparound:1; - u16 charBaseIndex:2; - u16 mapBaseIndex:5; - u16 paletteMode:1; + u8 charBaseIndex:2; + u8 mapBaseIndex:5; + u8 paletteMode:1; - u8 unknown_2; - u8 unknown_3; - } configs[4]; + u8 unknown_2; // Assigned to but never read + u8 unknown_3; // Assigned to but never read + } configs[NUM_BACKGROUNDS]; u16 bgVisibilityAndMode; }; @@ -39,8 +39,8 @@ struct BgConfig2 }; static struct BgControl sGpuBgConfigs; -static struct BgConfig2 sGpuBgConfigs2[4]; -static u32 sDmaBusyBitfield[4]; +static struct BgConfig2 sGpuBgConfigs2[NUM_BACKGROUNDS]; +static u32 sDmaBusyBitfield[NUM_BACKGROUNDS]; u32 gUnneededFireRedVariable; @@ -55,7 +55,7 @@ void ResetBgs(void) static void SetBgModeInternal(u8 bgMode) { - sGpuBgConfigs.bgVisibilityAndMode &= 0xFFF8; + sGpuBgConfigs.bgVisibilityAndMode &= ~0x7; sGpuBgConfigs.bgVisibilityAndMode |= bgMode; } @@ -66,13 +66,11 @@ u8 GetBgMode(void) void ResetBgControlStructs(void) { - struct BgConfig* bgConfigs = &sGpuBgConfigs.configs[0]; - struct BgConfig zeroedConfig = sZeroedBgControlStruct; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_BACKGROUNDS; i++) { - bgConfigs[i] = zeroedConfig; + sGpuBgConfigs.configs[i] = sZeroedBgControlStruct; } } @@ -102,17 +100,17 @@ static void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 { if (charBaseIndex != 0xFF) { - sGpuBgConfigs.configs[bg].charBaseIndex = charBaseIndex & 0x3; + sGpuBgConfigs.configs[bg].charBaseIndex = charBaseIndex; } if (mapBaseIndex != 0xFF) { - sGpuBgConfigs.configs[bg].mapBaseIndex = mapBaseIndex & 0x1F; + sGpuBgConfigs.configs[bg].mapBaseIndex = mapBaseIndex; } if (screenSize != 0xFF) { - sGpuBgConfigs.configs[bg].screenSize = screenSize & 0x3; + sGpuBgConfigs.configs[bg].screenSize = screenSize; } if (paletteMode != 0xFF) @@ -122,12 +120,12 @@ static void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 if (priority != 0xFF) { - sGpuBgConfigs.configs[bg].priority = priority & 0x3; + sGpuBgConfigs.configs[bg].priority = priority; } if (mosaic != 0xFF) { - sGpuBgConfigs.configs[bg].mosaic = mosaic & 0x1; + sGpuBgConfigs.configs[bg].mosaic = mosaic; } if (wraparound != 0xFF) @@ -175,36 +173,30 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode) u16 offset; s8 cursor; - if (!IsInvalidBg(bg) && sGpuBgConfigs.configs[bg].visible) - { - switch (mode) - { - case 0x1: - offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE; - break; - case 0x2: - offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE; - break; - default: - cursor = -1; - goto end; - } + if (IsInvalidBg(bg) || !sGpuBgConfigs.configs[bg].visible) + return -1; + switch (mode) + { + case 0x1: + offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE; offset = destOffset + offset; - cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0); - if (cursor == -1) - { return -1; - } - } - else - { - return -1; + break; + case 0x2: + offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE; + offset = destOffset + offset; + cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0); + if (cursor == -1) + return -1; + break; + default: + cursor = -1; + break; } -end: return cursor; } @@ -254,17 +246,17 @@ static void SetBgAffineInternal(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispC switch (sGpuBgConfigs.bgVisibilityAndMode & 0x7) { + default: + case 0: + return; case 1: if (bg != 2) return; break; case 2: - if (bg < 2 || bg > 3) + if (bg != 2 && bg != 3) return; break; - case 0: - default: - return; } src.texX = srcCenterX; @@ -290,7 +282,7 @@ static void SetBgAffineInternal(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispC bool8 IsInvalidBg(u8 bg) { - if (bg > 3) + if (bg >= NUM_BACKGROUNDS) return TRUE; else return FALSE; @@ -306,7 +298,7 @@ void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable) int i; ResetBgs(); - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_BACKGROUNDS; i++) { sDmaBusyBitfield[i] = 0; } @@ -325,7 +317,7 @@ void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numT for (i = 0; i < numTemplates; i++) { bg = templates[i].bg; - if (bg < 4) + if (bg < NUM_BACKGROUNDS) { SetBgControlAttributes(bg, templates[i].charBaseIndex, @@ -351,7 +343,7 @@ void InitBgFromTemplate(const struct BgTemplate *template) { u8 bg = template->bg; - if (bg < 4) + if (bg < NUM_BACKGROUNDS) { SetBgControlAttributes(bg, template->charBaseIndex, @@ -697,7 +689,7 @@ s32 ChangeBgY(u8 bg, s32 value, u8 op) return sGpuBgConfigs2[bg].bg_y; } -s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op) +s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op) { u8 mode; u16 temp1; @@ -1239,7 +1231,7 @@ u32 GetBgType(u8 bg) bool32 IsInvalidBg32(u8 bg) { - if (bg > 3) + if (bg >= NUM_BACKGROUNDS) return TRUE; else return FALSE; diff --git a/gflib/bg.h b/gflib/bg.h index 3c7eee2927..58fd1282c0 100644 --- a/gflib/bg.h +++ b/gflib/bg.h @@ -59,7 +59,7 @@ u16 GetBgAttribute(u8 bg, u8 attributeId); s32 ChangeBgX(u8 bg, s32 value, u8 op); s32 GetBgX(u8 bg); s32 ChangeBgY(u8 bg, s32 value, u8 op); -s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op); +s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op); s32 GetBgY(u8 bg); void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle); u8 Unused_AdjustBgMosaic(u8 a1, u8 a2); diff --git a/gflib/dma3_manager.c b/gflib/dma3_manager.c index 43744883f4..d774efe8ce 100644 --- a/gflib/dma3_manager.c +++ b/gflib/dma3_manager.c @@ -8,88 +8,90 @@ #define DMA_REQUEST_COPY16 3 #define DMA_REQUEST_FILL16 4 -BSS_DATA struct +struct Dma3Request { const u8 *src; u8 *dest; u16 size; u16 mode; u32 value; -} gDma3Requests[MAX_DMA_REQUESTS]; +}; -static volatile bool8 gDma3ManagerLocked; -static u8 gDma3RequestCursor; +static struct Dma3Request sDma3Requests[MAX_DMA_REQUESTS]; + +static vbool8 sDma3ManagerLocked; +static u8 sDma3RequestCursor; void ClearDma3Requests(void) { int i; - gDma3ManagerLocked = TRUE; - gDma3RequestCursor = 0; + sDma3ManagerLocked = TRUE; + sDma3RequestCursor = 0; for (i = 0; i < MAX_DMA_REQUESTS; i++) { - gDma3Requests[i].size = 0; - gDma3Requests[i].src = NULL; - gDma3Requests[i].dest = NULL; + sDma3Requests[i].size = 0; + sDma3Requests[i].src = NULL; + sDma3Requests[i].dest = NULL; } - gDma3ManagerLocked = FALSE; + sDma3ManagerLocked = FALSE; } void ProcessDma3Requests(void) { u16 bytesTransferred; - if (gDma3ManagerLocked) + if (sDma3ManagerLocked) return; bytesTransferred = 0; // as long as there are DMA requests to process (unless size or vblank is an issue), do not exit - while (gDma3Requests[gDma3RequestCursor].size != 0) + while (sDma3Requests[sDma3RequestCursor].size != 0) { - bytesTransferred += gDma3Requests[gDma3RequestCursor].size; + bytesTransferred += sDma3Requests[sDma3RequestCursor].size; if (bytesTransferred > 40 * 1024) return; // don't transfer more than 40 KiB if (*(u8 *)REG_ADDR_VCOUNT > 224) return; // we're about to leave vblank, stop - switch (gDma3Requests[gDma3RequestCursor].mode) + switch (sDma3Requests[sDma3RequestCursor].mode) { case DMA_REQUEST_COPY32: // regular 32-bit copy - Dma3CopyLarge32_(gDma3Requests[gDma3RequestCursor].src, - gDma3Requests[gDma3RequestCursor].dest, - gDma3Requests[gDma3RequestCursor].size); + Dma3CopyLarge32_(sDma3Requests[sDma3RequestCursor].src, + sDma3Requests[sDma3RequestCursor].dest, + sDma3Requests[sDma3RequestCursor].size); break; case DMA_REQUEST_FILL32: // repeat a single 32-bit value across RAM - Dma3FillLarge32_(gDma3Requests[gDma3RequestCursor].value, - gDma3Requests[gDma3RequestCursor].dest, - gDma3Requests[gDma3RequestCursor].size); + Dma3FillLarge32_(sDma3Requests[sDma3RequestCursor].value, + sDma3Requests[sDma3RequestCursor].dest, + sDma3Requests[sDma3RequestCursor].size); break; case DMA_REQUEST_COPY16: // regular 16-bit copy - Dma3CopyLarge16_(gDma3Requests[gDma3RequestCursor].src, - gDma3Requests[gDma3RequestCursor].dest, - gDma3Requests[gDma3RequestCursor].size); + Dma3CopyLarge16_(sDma3Requests[sDma3RequestCursor].src, + sDma3Requests[sDma3RequestCursor].dest, + sDma3Requests[sDma3RequestCursor].size); break; case DMA_REQUEST_FILL16: // repeat a single 16-bit value across RAM - Dma3FillLarge16_(gDma3Requests[gDma3RequestCursor].value, - gDma3Requests[gDma3RequestCursor].dest, - gDma3Requests[gDma3RequestCursor].size); + Dma3FillLarge16_(sDma3Requests[sDma3RequestCursor].value, + sDma3Requests[sDma3RequestCursor].dest, + sDma3Requests[sDma3RequestCursor].size); break; } // Free the request - gDma3Requests[gDma3RequestCursor].src = NULL; - gDma3Requests[gDma3RequestCursor].dest = NULL; - gDma3Requests[gDma3RequestCursor].size = 0; - gDma3Requests[gDma3RequestCursor].mode = 0; - gDma3Requests[gDma3RequestCursor].value = 0; - gDma3RequestCursor++; + sDma3Requests[sDma3RequestCursor].src = NULL; + sDma3Requests[sDma3RequestCursor].dest = NULL; + sDma3Requests[sDma3RequestCursor].size = 0; + sDma3Requests[sDma3RequestCursor].mode = 0; + sDma3Requests[sDma3RequestCursor].value = 0; + sDma3RequestCursor++; - if (gDma3RequestCursor >= MAX_DMA_REQUESTS) // loop back to the first DMA request - gDma3RequestCursor = 0; + if (sDma3RequestCursor >= MAX_DMA_REQUESTS) // loop back to the first DMA request + sDma3RequestCursor = 0; } } @@ -98,30 +100,30 @@ s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode) int cursor; int i = 0; - gDma3ManagerLocked = TRUE; - cursor = gDma3RequestCursor; + sDma3ManagerLocked = TRUE; + cursor = sDma3RequestCursor; while (i < MAX_DMA_REQUESTS) { - if (gDma3Requests[cursor].size == 0) // an empty request was found. + if (sDma3Requests[cursor].size == 0) // an empty request was found. { - gDma3Requests[cursor].src = src; - gDma3Requests[cursor].dest = dest; - gDma3Requests[cursor].size = size; + sDma3Requests[cursor].src = src; + sDma3Requests[cursor].dest = dest; + sDma3Requests[cursor].size = size; if (mode == 1) - gDma3Requests[cursor].mode = DMA_REQUEST_COPY32; + sDma3Requests[cursor].mode = DMA_REQUEST_COPY32; else - gDma3Requests[cursor].mode = DMA_REQUEST_COPY16; + sDma3Requests[cursor].mode = DMA_REQUEST_COPY16; - gDma3ManagerLocked = FALSE; + sDma3ManagerLocked = FALSE; return cursor; } if (++cursor >= MAX_DMA_REQUESTS) // loop back to start. cursor = 0; i++; } - gDma3ManagerLocked = FALSE; + sDma3ManagerLocked = FALSE; return -1; // no free DMA request was found } @@ -130,31 +132,31 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode) int cursor; int i = 0; - cursor = gDma3RequestCursor; - gDma3ManagerLocked = TRUE; + cursor = sDma3RequestCursor; + sDma3ManagerLocked = TRUE; while (i < MAX_DMA_REQUESTS) { - if (gDma3Requests[cursor].size == 0) // an empty request was found. + if (sDma3Requests[cursor].size == 0) // an empty request was found. { - gDma3Requests[cursor].dest = dest; - gDma3Requests[cursor].size = size; - gDma3Requests[cursor].mode = mode; - gDma3Requests[cursor].value = value; + sDma3Requests[cursor].dest = dest; + sDma3Requests[cursor].size = size; + sDma3Requests[cursor].mode = mode; + sDma3Requests[cursor].value = value; if(mode == 1) - gDma3Requests[cursor].mode = DMA_REQUEST_FILL32; + sDma3Requests[cursor].mode = DMA_REQUEST_FILL32; else - gDma3Requests[cursor].mode = DMA_REQUEST_FILL16; + sDma3Requests[cursor].mode = DMA_REQUEST_FILL16; - gDma3ManagerLocked = FALSE; + sDma3ManagerLocked = FALSE; return cursor; } if (++cursor >= MAX_DMA_REQUESTS) // loop back to start. cursor = 0; i++; } - gDma3ManagerLocked = FALSE; + sDma3ManagerLocked = FALSE; return -1; // no free DMA request was found } @@ -166,7 +168,7 @@ s16 CheckForSpaceForDma3Request(s16 index) { while (i < MAX_DMA_REQUESTS) { - if (gDma3Requests[i].size != 0) + if (sDma3Requests[i].size != 0) return -1; i++; } @@ -174,7 +176,7 @@ s16 CheckForSpaceForDma3Request(s16 index) } else // check the specified request { - if (gDma3Requests[index].size != 0) + if (sDma3Requests[index].size != 0) return -1; return 0; } diff --git a/gflib/malloc.c b/gflib/malloc.c index 4d1a9fe5cb..38fc8939e4 100644 --- a/gflib/malloc.c +++ b/gflib/malloc.c @@ -2,7 +2,7 @@ static void *sHeapStart; static u32 sHeapSize; -static u32 malloc_c_unused_0300000c; // needed to align dma3_manager.o(.bss) +static u32 sFiller; // needed to align dma3_manager.o(.bss) #define MALLOC_SYSTEM_ID 0xA3A3 diff --git a/gflib/malloc.h b/gflib/malloc.h index f2dcf6d46e..8d49e0be7d 100644 --- a/gflib/malloc.h +++ b/gflib/malloc.h @@ -12,6 +12,8 @@ ptr = NULL; \ } +#define TRY_FREE_AND_SET_NULL(ptr) if (ptr != NULL) FREE_AND_SET_NULL(ptr) + extern u8 gHeap[]; void *Alloc(u32 size); diff --git a/gflib/sprite.c b/gflib/sprite.c index c7e3d09a32..408daf6f91 100644 --- a/gflib/sprite.c +++ b/gflib/sprite.c @@ -33,6 +33,12 @@ struct SpriteCopyRequest u16 size; }; +struct OamDimensions32 +{ + s32 width; + s32 height; +}; + struct OamDimensions { s8 width; @@ -158,8 +164,8 @@ static const struct Sprite sDummySprite = .template = &gDummySpriteTemplate, .subspriteTables = NULL, .callback = SpriteCallbackDummy, - .pos1 = { 304, 160 }, - .pos2 = { 0, 0 }, + .x = 304, .y = 160, + .x2 = 0, .y2 = 0, .centerToCornerVecX = 0, .centerToCornerVecY = 0, .animNum = 0, @@ -240,25 +246,28 @@ static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] = AffineAnimCmd_frame, }; -static const s32 sUnknown_082EC6F4[3][4][2] = +static const struct OamDimensions32 sOamDimensions32[3][4] = { + [ST_OAM_SQUARE] = { - {8, 8}, - {0x10, 0x10}, - {0x20, 0x20}, - {0x40, 0x40}, + [SPRITE_SIZE(8x8)] = { 8, 8 }, + [SPRITE_SIZE(16x16)] = { 16, 16 }, + [SPRITE_SIZE(32x32)] = { 32, 32 }, + [SPRITE_SIZE(64x64)] = { 64, 64 }, }, + [ST_OAM_H_RECTANGLE] = { - {0x10, 8}, - {0x20, 8}, - {0x20, 0x10}, - {0x40, 0x20}, + [SPRITE_SIZE(16x8)] = { 16, 8 }, + [SPRITE_SIZE(32x8)] = { 32, 8 }, + [SPRITE_SIZE(32x16)] = { 32, 16 }, + [SPRITE_SIZE(64x32)] = { 64, 32 }, }, + [ST_OAM_V_RECTANGLE] = { - {8, 0x10}, - {8, 0x20}, - {0x10, 0x20}, - {0x20, 0x40}, + [SPRITE_SIZE(8x16)] = { 8, 16 }, + [SPRITE_SIZE(8x32)] = { 8, 32 }, + [SPRITE_SIZE(16x32)] = { 16, 32 }, + [SPRITE_SIZE(32x64)] = { 32, 64 }, }, }; @@ -366,13 +375,13 @@ void UpdateOamCoords(void) { if (sprite->coordOffsetEnabled) { - sprite->oam.x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; - sprite->oam.y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY; + sprite->oam.x = sprite->x + sprite->x2 + sprite->centerToCornerVecX + gSpriteCoordOffsetX; + sprite->oam.y = sprite->y + sprite->y2 + sprite->centerToCornerVecY + gSpriteCoordOffsetY; } else { - sprite->oam.x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; - sprite->oam.y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + sprite->oam.x = sprite->x + sprite->x2 + sprite->centerToCornerVecX; + sprite->oam.y = sprite->y + sprite->y2 + sprite->centerToCornerVecY; } } } @@ -443,6 +452,10 @@ void SortSprites(void) // Although this doesn't result in a bug in the ROM, // the behavior is undefined. j--; +#ifdef UBFIX + if (j == 0) + break; +#endif sprite1 = &gSprites[sSpriteOrder[j - 1]]; sprite2 = &gSprites[sSpriteOrder[j]]; @@ -570,8 +583,8 @@ u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y, sprite->affineAnims = template->affineAnims; sprite->template = template; sprite->callback = template->callback; - sprite->pos1.x = x; - sprite->pos1.y = y; + sprite->x = x; + sprite->y = y; CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); @@ -652,8 +665,7 @@ void ResetOamRange(u8 a, u8 b) for (i = a; i < b; i++) { - struct OamData *oamBuffer = gMain.oamBuffer; - oamBuffer[i] = *(struct OamData *)&gDummyOamData; + gMain.oamBuffer[i] = *(struct OamData *)&gDummyOamData; } } @@ -1233,17 +1245,17 @@ void obj_update_pos2(struct Sprite *sprite, s32 a1, s32 a2) u32 matrixNum = sprite->oam.matrixNum; if (a1 != 0x800) { - var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][0]; + var0 = sOamDimensions32[sprite->oam.shape][sprite->oam.size].width; var1 = var0 << 8; var2 = (var0 << 16) / gOamMatrices[matrixNum].a; - sprite->pos2.x = sub_8007E28(var1, var2, a1); + sprite->x2 = sub_8007E28(var1, var2, a1); } if (a2 != 0x800) { - var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][1]; + var0 = sOamDimensions32[sprite->oam.shape][sprite->oam.size].height; var1 = var0 << 8; var2 = (var0 << 16) / gOamMatrices[matrixNum].d; - sprite->pos2.y = sub_8007E28(var1, var2, a2); + sprite->y2 = sub_8007E28(var1, var2, a2); } } @@ -1320,7 +1332,7 @@ void ApplyAffineAnimFrameRelativeAndUpdateMatrix(u8 matrixNum, struct AffineAnim s16 ConvertScaleParam(s16 scale) { s32 val = 0x10000; - return val / scale; + return SAFE_DIV(val, scale); } void GetAffineAnimFrame(u8 matrixNum, struct Sprite *sprite, struct AffineAnimFrameCmd *frameCmd) diff --git a/gflib/sprite.h b/gflib/sprite.h index c9ba9585d9..02bc0748b4 100644 --- a/gflib/sprite.h +++ b/gflib/sprite.h @@ -2,6 +2,7 @@ #define GUARD_SPRITE_H #define MAX_SPRITES 64 +#define SPRITE_NONE 0xFF #define SPRITE_INVALID_TAG 0xFFFF struct SpriteSheet @@ -196,8 +197,8 @@ struct Sprite /*0x18*/ const struct SubspriteTable *subspriteTables; /*0x1C*/ SpriteCallback callback; - /*0x20*/ struct Coords16 pos1; - /*0x24*/ struct Coords16 pos2; + /*0x20*/ s16 x, y; + /*0x24*/ s16 x2, y2; /*0x28*/ s8 centerToCornerVecX; /*0x29*/ s8 centerToCornerVecY; diff --git a/gflib/string_util.h b/gflib/string_util.h index b921d2391d..229193d52d 100644 --- a/gflib/string_util.h +++ b/gflib/string_util.h @@ -1,10 +1,10 @@ #ifndef GUARD_STRING_UTIL_H #define GUARD_STRING_UTIL_H -extern u8 gStringVar1[]; -extern u8 gStringVar2[]; -extern u8 gStringVar3[]; -extern u8 gStringVar4[]; +extern u8 gStringVar1[0x100]; +extern u8 gStringVar2[0x100]; +extern u8 gStringVar3[0x100]; +extern u8 gStringVar4[0x3E8]; enum StringConvertMode { diff --git a/gflib/text.c b/gflib/text.c index 4cbad13766..eb993c4214 100644 --- a/gflib/text.c +++ b/gflib/text.c @@ -21,8 +21,8 @@ static u16 gLastTextFgColor; static u16 gLastTextShadowColor; const struct FontInfo *gFonts; -u8 gUnknown_03002F84; -struct Struct_03002F90 gUnknown_03002F90; +u8 gDisableTextPrinters; +struct TextGlyph gCurGlyph; TextFlags gTextFlags; const u8 gFontHalfRowOffsets[] = @@ -165,7 +165,6 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi { int i; u16 j; - u8 *ptr; if (!gFonts) return FALSE; @@ -205,7 +204,7 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi CopyWindowToVram(gTempTextPrinter.printerTemplate.windowId, 2); gTextPrinters[printerTemplate->windowId].active = 0; } - gUnknown_03002F84 = 0; + gDisableTextPrinters = 0; return TRUE; } @@ -213,7 +212,7 @@ void RunTextPrinters(void) { int i; - if (gUnknown_03002F84 == 0) + if (gDisableTextPrinters == 0) { for (i = 0; i < NUM_TEXT_PRINTERS; ++i) { @@ -462,9 +461,9 @@ u8 GetLastTextColor(u8 colorType) } } -inline static void GLYPH_COPY(u8 *windowTiles, u32 widthOffset, u32 j, u32 i, u32 *ptr, s32 width, s32 height) +inline static void GLYPH_COPY(u8 *windowTiles, u32 widthOffset, u32 j, u32 i, u32 *glyphPixels, s32 width, s32 height) { - u32 xAdd, yAdd, r5, bits, toOrr, dummyX; + u32 xAdd, yAdd, pixelData, bits, toOrr, dummyX; u8 *dst; xAdd = j + width; @@ -472,69 +471,69 @@ inline static void GLYPH_COPY(u8 *windowTiles, u32 widthOffset, u32 j, u32 i, u3 dummyX = j; for (; i < yAdd; i++) { - r5 = *ptr++; + pixelData = *glyphPixels++; for (j = dummyX; j < xAdd; j++) { - if ((toOrr = r5 & 0xF)) + if ((toOrr = pixelData & 0xF)) { dst = windowTiles + ((j / 8) * 32) + ((j % 8) / 2) + ((i / 8) * widthOffset) + ((i % 8) * 4); bits = ((j & 1) * 4); *dst = (toOrr << bits) | (*dst & (0xF0 >> bits)); } - r5 >>= 4; + pixelData >>= 4; } } } void CopyGlyphToWindow(struct TextPrinter *textPrinter) { - struct Window *win; - struct WindowTemplate *winTempl; - u32 *unkStruct; + struct Window *window; + struct WindowTemplate *template; + u32 *glyphPixels; u32 currX, currY, widthOffset; - s32 r4, r0; + s32 glyphWidth, glyphHeight; u8 *windowTiles; - win = &gWindows[textPrinter->printerTemplate.windowId]; - winTempl = &win->window; + window = &gWindows[textPrinter->printerTemplate.windowId]; + template = &window->window; - if ((r4 = (winTempl->width * 8) - textPrinter->printerTemplate.currentX) > gUnknown_03002F90.width) - r4 = gUnknown_03002F90.width; + if ((glyphWidth = (template->width * 8) - textPrinter->printerTemplate.currentX) > gCurGlyph.width) + glyphWidth = gCurGlyph.width; - if ((r0 = (winTempl->height * 8) - textPrinter->printerTemplate.currentY) > gUnknown_03002F90.height) - r0 = gUnknown_03002F90.height; + if ((glyphHeight = (template->height * 8) - textPrinter->printerTemplate.currentY) > gCurGlyph.height) + glyphHeight = gCurGlyph.height; currX = textPrinter->printerTemplate.currentX; currY = textPrinter->printerTemplate.currentY; - unkStruct = (u32 *)&gUnknown_03002F90.unk0; - windowTiles = win->tileData; - widthOffset = winTempl->width * 32; + glyphPixels = gCurGlyph.gfxBufferTop; + windowTiles = window->tileData; + widthOffset = template->width * 32; - if (r4 < 9) + if (glyphWidth < 9) { - if (r0 < 9) + if (glyphHeight < 9) { - GLYPH_COPY(windowTiles, widthOffset, currX, currY, unkStruct, r4, r0); + GLYPH_COPY(windowTiles, widthOffset, currX, currY, glyphPixels, glyphWidth, glyphHeight); } else { - GLYPH_COPY(windowTiles, widthOffset, currX, currY, unkStruct, r4, 8); - GLYPH_COPY(windowTiles, widthOffset, currX, currY + 8, unkStruct + 16, r4, r0 - 8); + GLYPH_COPY(windowTiles, widthOffset, currX, currY, glyphPixels, glyphWidth, 8); + GLYPH_COPY(windowTiles, widthOffset, currX, currY + 8, glyphPixels + 16, glyphWidth, glyphHeight - 8); } } else { - if (r0 < 9) + if (glyphHeight < 9) { - GLYPH_COPY(windowTiles, widthOffset, currX, currY, unkStruct, 8, r0); - GLYPH_COPY(windowTiles, widthOffset, currX + 8, currY, unkStruct + 8, r4 - 8, r0); + GLYPH_COPY(windowTiles, widthOffset, currX, currY, glyphPixels, 8, glyphHeight); + GLYPH_COPY(windowTiles, widthOffset, currX + 8, currY, glyphPixels + 8, glyphWidth - 8, glyphHeight); } else { - GLYPH_COPY(windowTiles, widthOffset, currX, currY, unkStruct, 8, 8); - GLYPH_COPY(windowTiles, widthOffset, currX + 8, currY, unkStruct + 8, r4 - 8, 8); - GLYPH_COPY(windowTiles, widthOffset, currX, currY + 8, unkStruct + 16, 8, r0 - 8); - GLYPH_COPY(windowTiles, widthOffset, currX + 8, currY + 8, unkStruct + 24, r4 - 8, r0 - 8); + GLYPH_COPY(windowTiles, widthOffset, currX, currY, glyphPixels, 8, 8); + GLYPH_COPY(windowTiles, widthOffset, currX + 8, currY, glyphPixels + 8, glyphWidth - 8, 8); + GLYPH_COPY(windowTiles, widthOffset, currX, currY + 8, glyphPixels + 16, 8, glyphHeight - 8); + GLYPH_COPY(windowTiles, widthOffset, currX + 8, currY + 8, glyphPixels + 24, glyphWidth - 8, glyphHeight - 8); } } } @@ -543,7 +542,7 @@ void ClearTextSpan(struct TextPrinter *textPrinter, u32 width) { struct Window *window; struct Bitmap pixels_data; - struct Struct_03002F90 *gUnk; + struct TextGlyph *glyph; u8* glyphHeight; if (gLastTextBgColor != 0) @@ -553,8 +552,8 @@ void ClearTextSpan(struct TextPrinter *textPrinter, u32 width) pixels_data.width = window->window.width << 3; pixels_data.height = window->window.height << 3; - gUnk = &gUnknown_03002F90; - glyphHeight = &gUnk->height; + glyph = &gCurGlyph; + glyphHeight = &glyph->height; FillBitmapRect4Bit( &pixels_data, @@ -1016,8 +1015,8 @@ u16 RenderText(struct TextPrinter *textPrinter) break; case CHAR_KEYPAD_ICON: currChar = *textPrinter->printerTemplate.currentChar++; - gUnknown_03002F90.width = DrawKeypadIcon(textPrinter->printerTemplate.windowId, currChar, textPrinter->printerTemplate.currentX, textPrinter->printerTemplate.currentY); - textPrinter->printerTemplate.currentX += gUnknown_03002F90.width + textPrinter->printerTemplate.letterSpacing; + gCurGlyph.width = DrawKeypadIcon(textPrinter->printerTemplate.windowId, currChar, textPrinter->printerTemplate.currentX, textPrinter->printerTemplate.currentY); + textPrinter->printerTemplate.currentX += gCurGlyph.width + textPrinter->printerTemplate.letterSpacing; return 0; case EOS: return 1; @@ -1051,8 +1050,8 @@ u16 RenderText(struct TextPrinter *textPrinter) if (textPrinter->minLetterSpacing) { - textPrinter->printerTemplate.currentX += gUnknown_03002F90.width; - width = textPrinter->minLetterSpacing - gUnknown_03002F90.width; + textPrinter->printerTemplate.currentX += gCurGlyph.width; + width = textPrinter->minLetterSpacing - gCurGlyph.width; if (width > 0) { ClearTextSpan(textPrinter, width); @@ -1062,9 +1061,9 @@ u16 RenderText(struct TextPrinter *textPrinter) else { if (textPrinter->japanese) - textPrinter->printerTemplate.currentX += (gUnknown_03002F90.width + textPrinter->printerTemplate.letterSpacing); + textPrinter->printerTemplate.currentX += (gCurGlyph.width + textPrinter->printerTemplate.letterSpacing); else - textPrinter->printerTemplate.currentX += gUnknown_03002F90.width; + textPrinter->printerTemplate.currentX += gCurGlyph.width; } return 0; case 1: @@ -1235,7 +1234,6 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) bool8 isJapanese; int minGlyphWidth; u32 (*func)(u16 glyphId, bool32 isJapanese); - s32 result; int localLetterSpacing; u32 lineWidth; const u8 *bufferPointer; @@ -1400,8 +1398,7 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) if (lineWidth > width) return lineWidth; - else - return width; + return width; } u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) @@ -1419,9 +1416,9 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) fgColor = TEXT_COLOR_WHITE; bgColor = TEXT_COLOR_TRANSPARENT; - shadowColor = TEXT_COLOR_LIGHT_GREY; + shadowColor = TEXT_COLOR_LIGHT_GRAY; - GenerateFontHalfRowLookupTable(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY); + GenerateFontHalfRowLookupTable(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY); strLocal = str; strPos = 0; @@ -1501,8 +1498,8 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) DecompressGlyphFont1(temp, 1); break; } - CpuCopy32(gUnknown_03002F90.unk0, pixels, 0x20); - CpuCopy32(gUnknown_03002F90.unk40, pixels + 0x20, 0x20); + CpuCopy32(gCurGlyph.gfxBufferTop, pixels, 0x20); + CpuCopy32(gCurGlyph.gfxBufferBottom, pixels + 0x20, 0x20); pixels += 0x40; break; } @@ -1594,30 +1591,30 @@ void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese) if (isJapanese == 1) { glyphs = gFont0JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & 0xF)); - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x80, gUnknown_03002F90.unk40); // gUnknown_03002F90 + 0x40 - gUnknown_03002F90.width = 8; // gGlyphWidth - gUnknown_03002F90.height = 12; // gGlyphHeight + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom); + gCurGlyph.width = 8; + gCurGlyph.height = 12; } else { glyphs = gFont0LatinGlyphs + (0x20 * glyphId); - gUnknown_03002F90.width = gFont0LatinGlyphWidths[glyphId]; + gCurGlyph.width = gFont0LatinGlyphWidths[glyphId]; - if (gUnknown_03002F90.width <= 8) + if (gCurGlyph.width <= 8) { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); } else { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x8, gUnknown_03002F90.unk20); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); - DecompressGlyphTile(glyphs + 0x18, gUnknown_03002F90.unk60); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); + DecompressGlyphTile(glyphs + 0x18, gCurGlyph.gfxBufferBottom + 8); } - gUnknown_03002F90.height = 13; + gCurGlyph.height = 13; } } @@ -1635,32 +1632,31 @@ void DecompressGlyphFont7(u16 glyphId, bool32 isJapanese) if (isJapanese == TRUE) { - int eff; - glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & (eff = 0xF))); // shh, no questions, only matching now - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x80, gUnknown_03002F90.unk40); // gUnknown_03002F90 + 0x40 - gUnknown_03002F90.width = 8; // gGlyphWidth - gUnknown_03002F90.height = 15; // gGlyphHeight + glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId % 0x10)); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom); + gCurGlyph.width = 8; + gCurGlyph.height = 15; } else { glyphs = gFont7LatinGlyphs + (0x20 * glyphId); - gUnknown_03002F90.width = gFont7LatinGlyphWidths[glyphId]; + gCurGlyph.width = gFont7LatinGlyphWidths[glyphId]; - if (gUnknown_03002F90.width <= 8) + if (gCurGlyph.width <= 8) { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); } else { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x8, gUnknown_03002F90.unk20); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); - DecompressGlyphTile(glyphs + 0x18, gUnknown_03002F90.unk60); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); + DecompressGlyphTile(glyphs + 0x18, gCurGlyph.gfxBufferBottom + 8); } - gUnknown_03002F90.height = 15; + gCurGlyph.height = 15; } } @@ -1679,30 +1675,30 @@ void DecompressGlyphFont8(u16 glyphId, bool32 isJapanese) if (isJapanese == TRUE) { glyphs = gFont0JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & 0xF)); - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x80, gUnknown_03002F90.unk40); // gUnknown_03002F90 + 0x40 - gUnknown_03002F90.width = 8; // gGlyphWidth - gUnknown_03002F90.height = 12; // gGlyphHeight + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom); + gCurGlyph.width = 8; + gCurGlyph.height = 12; } else { glyphs = gFont8LatinGlyphs + (0x20 * glyphId); - gUnknown_03002F90.width = gFont8LatinGlyphWidths[glyphId]; + gCurGlyph.width = gFont8LatinGlyphWidths[glyphId]; - if (gUnknown_03002F90.width <= 8) + if (gCurGlyph.width <= 8) { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); } else { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x8, gUnknown_03002F90.unk20); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); - DecompressGlyphTile(glyphs + 0x18, gUnknown_03002F90.unk60); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); + DecompressGlyphTile(glyphs + 0x18, gCurGlyph.gfxBufferBottom + 8); } - gUnknown_03002F90.height = 12; + gCurGlyph.height = 12; } } @@ -1721,32 +1717,32 @@ void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese) if (isJapanese == TRUE) { glyphs = gFont2JapaneseGlyphs + (0x100 * (glyphId >> 0x3)) + (0x10 * (glyphId & 0x7)); - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x8, gUnknown_03002F90.unk20); // gUnknown_03002F90 + 0x40 - DecompressGlyphTile(glyphs + 0x80, gUnknown_03002F90.unk40); // gUnknown_03002F90 + 0x20 - DecompressGlyphTile(glyphs + 0x88, gUnknown_03002F90.unk60); // gUnknown_03002F90 + 0x60 - gUnknown_03002F90.width = gFont2JapaneseGlyphWidths[glyphId]; // gGlyphWidth - gUnknown_03002F90.height = 14; // gGlyphHeight + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom); // gCurGlyph + 0x20 + DecompressGlyphTile(glyphs + 0x88, gCurGlyph.gfxBufferBottom + 8); // gCurGlyph + 0x60 + gCurGlyph.width = gFont2JapaneseGlyphWidths[glyphId]; + gCurGlyph.height = 14; } else { glyphs = gFont2LatinGlyphs + (0x20 * glyphId); - gUnknown_03002F90.width = gFont2LatinGlyphWidths[glyphId]; + gCurGlyph.width = gFont2LatinGlyphWidths[glyphId]; - if (gUnknown_03002F90.width <= 8) + if (gCurGlyph.width <= 8) { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); } else { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x8, gUnknown_03002F90.unk20); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); - DecompressGlyphTile(glyphs + 0x18, gUnknown_03002F90.unk60); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); + DecompressGlyphTile(glyphs + 0x18, gCurGlyph.gfxBufferBottom + 8); } - gUnknown_03002F90.height = 14; + gCurGlyph.height = 14; } } @@ -1764,32 +1760,31 @@ void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese) if (isJapanese == TRUE) { - int eff; - glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & (eff = 0xF))); // shh, no questions, only matching now - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x80, gUnknown_03002F90.unk40); // gUnknown_03002F90 + 0x40 - gUnknown_03002F90.width = 8; // gGlyphWidth - gUnknown_03002F90.height = 15; // gGlyphHeight + glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId % 0x10)); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom); + gCurGlyph.width = 8; + gCurGlyph.height = 15; } else { glyphs = gFont1LatinGlyphs + (0x20 * glyphId); - gUnknown_03002F90.width = gFont1LatinGlyphWidths[glyphId]; + gCurGlyph.width = gFont1LatinGlyphWidths[glyphId]; - if (gUnknown_03002F90.width <= 8) + if (gCurGlyph.width <= 8) { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); } else { - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x8, gUnknown_03002F90.unk20); - DecompressGlyphTile(glyphs + 0x10, gUnknown_03002F90.unk40); - DecompressGlyphTile(glyphs + 0x18, gUnknown_03002F90.unk60); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); + DecompressGlyphTile(glyphs + 0x18, gCurGlyph.gfxBufferBottom + 8); } - gUnknown_03002F90.height = 15; + gCurGlyph.height = 15; } } @@ -1806,8 +1801,8 @@ void DecompressGlyphFont9(u16 glyphId) const u16* glyphs; glyphs = gFont9JapaneseGlyphs + (0x100 * (glyphId >> 4)) + (0x8 * (glyphId & 0xF)); - DecompressGlyphTile(glyphs, gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x80, gUnknown_03002F90.unk40); - gUnknown_03002F90.width = 8; - gUnknown_03002F90.height = 12; + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom); + gCurGlyph.width = 8; + gCurGlyph.height = 12; } diff --git a/gflib/text.h b/gflib/text.h index 723a2fc0e5..3edd0fc624 100644 --- a/gflib/text.h +++ b/gflib/text.h @@ -71,7 +71,7 @@ // #define CHAR_i_ACUTE 0x6F // -#define CHAR_UNK_SPACER 0x77 +#define CHAR_GENDERLESS 0x77 // Empty space for lack of gender icon // #define CHAR_UP_ARROW 0x79 #define CHAR_DOWN_ARROW 0x7A @@ -233,8 +233,8 @@ #define TEXT_COLOR_TRANSPARENT 0x0 #define TEXT_COLOR_WHITE 0x1 -#define TEXT_COLOR_DARK_GREY 0x2 -#define TEXT_COLOR_LIGHT_GREY 0x3 +#define TEXT_COLOR_DARK_GRAY 0x2 +#define TEXT_COLOR_LIGHT_GRAY 0x3 #define TEXT_COLOR_RED 0x4 #define TEXT_COLOR_LIGHT_RED 0x5 #define TEXT_COLOR_GREEN 0x6 @@ -360,20 +360,18 @@ typedef struct { bool8 forceMidTextSpeed:1; } TextFlags; -struct Struct_03002F90 +struct TextGlyph { - u32 unk0[8]; - u32 unk20[8]; - u32 unk40[8]; - u32 unk60[8]; + u32 gfxBufferTop[16]; + u32 gfxBufferBottom[16]; u8 width; u8 height; }; extern TextFlags gTextFlags; -extern u8 gUnknown_03002F84; -extern struct Struct_03002F90 gUnknown_03002F90; +extern u8 gDisableTextPrinters; +extern struct TextGlyph gCurGlyph; void SetFontsPointer(const struct FontInfo *fonts); void DeactivateAllTextPrinters(void); diff --git a/gflib/window.c b/gflib/window.c index 7c87ea86dc..b03b513dac 100644 --- a/gflib/window.c +++ b/gflib/window.c @@ -4,12 +4,12 @@ #include "bg.h" #include "blit.h" -u32 filler_03002F58; -u32 filler_03002F5C; +u32 gUnusedWindowVar1; +u32 gUnusedWindowVar2; // This global is set to 0 and never changed. u8 gTransparentTileNumber; -u32 filler_03002F64; -void *gUnknown_03002F70[4]; +u32 gUnusedWindowVar3; +void *gWindowBgTilemapBuffers[NUM_BACKGROUNDS]; extern u32 gUnneededFireRedVariable; #define WINDOWS_MAX 32 @@ -23,7 +23,7 @@ static u8 GetNumActiveWindowsOnBg8Bit(u8 bgId); static const struct WindowTemplate sDummyWindowTemplate = DUMMY_WIN_TEMPLATE; -static void nullsub_8(void) +static void DummyWindowBgTilemap(void) { } @@ -38,22 +38,22 @@ bool16 InitWindows(const struct WindowTemplate *templates) u8* allocatedTilemapBuffer; int allocatedBaseBlock; - for (i = 0; i < 0x4; ++i) + for (i = 0; i < NUM_BACKGROUNDS; ++i) { bgTilemapBuffer = GetBgTilemapBuffer(i); if (bgTilemapBuffer != NULL) - gUnknown_03002F70[i] = nullsub_8; + gWindowBgTilemapBuffers[i] = DummyWindowBgTilemap; else - gUnknown_03002F70[i] = bgTilemapBuffer; + gWindowBgTilemapBuffers[i] = bgTilemapBuffer; } - for (i = 0; i < 0x20; ++i) + for (i = 0; i < WINDOWS_MAX; ++i) { gWindows[i].window = sDummyWindowTemplate; gWindows[i].tileData = NULL; } - for (i = 0, allocatedBaseBlock = 0, bgLayer = templates[i].bg; bgLayer != 0xFF && i < 0x20; ++i, bgLayer = templates[i].bg) + for (i = 0, allocatedBaseBlock = 0, bgLayer = templates[i].bg; bgLayer != 0xFF && i < WINDOWS_MAX; ++i, bgLayer = templates[i].bg) { if (gUnneededFireRedVariable == 1) { @@ -62,7 +62,7 @@ bool16 InitWindows(const struct WindowTemplate *templates) return FALSE; } - if (gUnknown_03002F70[bgLayer] == NULL) + if (gWindowBgTilemapBuffers[bgLayer] == NULL) { attrib = GetBgAttribute(bgLayer, BG_ATTR_METRIC); @@ -79,19 +79,19 @@ bool16 InitWindows(const struct WindowTemplate *templates) for (j = 0; j < attrib; ++j) allocatedTilemapBuffer[j] = 0; - gUnknown_03002F70[bgLayer] = allocatedTilemapBuffer; + gWindowBgTilemapBuffers[bgLayer] = allocatedTilemapBuffer; SetBgTilemapBuffer(bgLayer, allocatedTilemapBuffer); } } - allocatedTilemapBuffer = AllocZeroed((u16)(0x20 * (templates[i].width * templates[i].height))); + allocatedTilemapBuffer = AllocZeroed((u16)(32 * (templates[i].width * templates[i].height))); if (allocatedTilemapBuffer == NULL) { - if ((GetNumActiveWindowsOnBg(bgLayer) == 0) && (gUnknown_03002F70[bgLayer] != nullsub_8)) + if ((GetNumActiveWindowsOnBg(bgLayer) == 0) && (gWindowBgTilemapBuffers[bgLayer] != DummyWindowBgTilemap)) { - Free(gUnknown_03002F70[bgLayer]); - gUnknown_03002F70[bgLayer] = allocatedTilemapBuffer; + Free(gWindowBgTilemapBuffers[bgLayer]); + gWindowBgTilemapBuffers[bgLayer] = allocatedTilemapBuffer; } return FALSE; @@ -127,7 +127,7 @@ u16 AddWindow(const struct WindowTemplate *template) } if (win == WINDOWS_MAX) - return 0xFF; + return WINDOW_NONE; bgLayer = template->bg; allocatedBaseBlock = 0; @@ -137,10 +137,10 @@ u16 AddWindow(const struct WindowTemplate *template) allocatedBaseBlock = DummiedOutFireRedLeafGreenTileAllocFunc(bgLayer, 0, template->width * template->height, 0); if (allocatedBaseBlock == -1) - return 0xFF; + return WINDOW_NONE; } - if (gUnknown_03002F70[bgLayer] == NULL) + if (gWindowBgTilemapBuffers[bgLayer] == NULL) { attrib = GetBgAttribute(bgLayer, BG_ATTR_METRIC); @@ -149,26 +149,26 @@ u16 AddWindow(const struct WindowTemplate *template) allocatedTilemapBuffer = AllocZeroed(attrib); if (allocatedTilemapBuffer == NULL) - return 0xFF; + return WINDOW_NONE; for (i = 0; i < attrib; ++i) allocatedTilemapBuffer[i] = 0; - gUnknown_03002F70[bgLayer] = allocatedTilemapBuffer; + gWindowBgTilemapBuffers[bgLayer] = allocatedTilemapBuffer; SetBgTilemapBuffer(bgLayer, allocatedTilemapBuffer); } } - allocatedTilemapBuffer = AllocZeroed((u16)(0x20 * (template->width * template->height))); + allocatedTilemapBuffer = AllocZeroed((u16)(32 * (template->width * template->height))); if (allocatedTilemapBuffer == NULL) { - if ((GetNumActiveWindowsOnBg(bgLayer) == 0) && (gUnknown_03002F70[bgLayer] != nullsub_8)) + if ((GetNumActiveWindowsOnBg(bgLayer) == 0) && (gWindowBgTilemapBuffers[bgLayer] != DummyWindowBgTilemap)) { - Free(gUnknown_03002F70[bgLayer]); - gUnknown_03002F70[bgLayer] = allocatedTilemapBuffer; + Free(gWindowBgTilemapBuffers[bgLayer]); + gWindowBgTilemapBuffers[bgLayer] = allocatedTilemapBuffer; } - return 0xFF; + return WINDOW_NONE; } gWindows[win].tileData = allocatedTilemapBuffer; @@ -196,7 +196,7 @@ int AddWindowWithoutTileMap(const struct WindowTemplate *template) } if (win == WINDOWS_MAX) - return 0xFF; + return WINDOW_NONE; bgLayer = template->bg; allocatedBaseBlock = 0; @@ -206,7 +206,7 @@ int AddWindowWithoutTileMap(const struct WindowTemplate *template) allocatedBaseBlock = DummiedOutFireRedLeafGreenTileAllocFunc(bgLayer, 0, template->width * template->height, 0); if (allocatedBaseBlock == -1) - return 0xFF; + return WINDOW_NONE; } gWindows[win].window = *template; @@ -233,10 +233,10 @@ void RemoveWindow(u8 windowId) if (GetNumActiveWindowsOnBg(bgLayer) == 0) { - if (gUnknown_03002F70[bgLayer] != nullsub_8) + if (gWindowBgTilemapBuffers[bgLayer] != DummyWindowBgTilemap) { - Free(gUnknown_03002F70[bgLayer]); - gUnknown_03002F70[bgLayer] = 0; + Free(gWindowBgTilemapBuffers[bgLayer]); + gWindowBgTilemapBuffers[bgLayer] = NULL; } } @@ -251,16 +251,16 @@ void FreeAllWindowBuffers(void) { int i; - for (i = 0; i < 4; ++i) + for (i = 0; i < NUM_BACKGROUNDS; ++i) { - if (gUnknown_03002F70[i] != NULL && gUnknown_03002F70[i] != nullsub_8) + if (gWindowBgTilemapBuffers[i] != NULL && gWindowBgTilemapBuffers[i] != DummyWindowBgTilemap) { - Free(gUnknown_03002F70[i]); - gUnknown_03002F70[i] = NULL; + Free(gWindowBgTilemapBuffers[i]); + gWindowBgTilemapBuffers[i] = NULL; } } - for (i = 0; i < 0x20; ++i) + for (i = 0; i < WINDOWS_MAX; ++i) { if (gWindows[i].tileData != NULL) { @@ -448,16 +448,16 @@ void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 void CopyToWindowPixelBuffer(u8 windowId, const void *src, u16 size, u16 tileOffset) { if (size != 0) - CpuCopy16(src, gWindows[windowId].tileData + (0x20 * tileOffset), size); + CpuCopy16(src, gWindows[windowId].tileData + (32 * tileOffset), size); else - LZ77UnCompWram(src, gWindows[windowId].tileData + (0x20 * tileOffset)); + LZ77UnCompWram(src, gWindows[windowId].tileData + (32 * tileOffset)); } // Sets all pixels within the window to the fillValue color. void FillWindowPixelBuffer(u8 windowId, u8 fillValue) { int fillSize = gWindows[windowId].window.width * gWindows[windowId].window.height; - CpuFastFill8(fillValue, gWindows[windowId].tileData, 0x20 * fillSize); + CpuFastFill8(fillValue, gWindows[windowId].tileData, 32 * fillSize); } #define MOVE_TILES_DOWN(a) \ @@ -599,7 +599,7 @@ static u8 GetNumActiveWindowsOnBg(u8 bgId) return windowsNum; } -static void nullsub_9(void) +static void DummyWindowBgTilemap8Bit(void) { } @@ -610,15 +610,15 @@ u16 AddWindow8Bit(const struct WindowTemplate *template) u8* memAddress; u8 bgLayer; - for (windowId = 0; windowId < 32; windowId++) + for (windowId = 0; windowId < WINDOWS_MAX; windowId++) { if (gWindows[windowId].window.bg == 0xFF) break; } if (windowId == WINDOWS_MAX) - return 0xFF; + return WINDOW_NONE; bgLayer = template->bg; - if (gUnknown_03002F70[bgLayer] == 0) + if (gWindowBgTilemapBuffers[bgLayer] == NULL) { u16 attribute = GetBgAttribute(bgLayer, BG_ATTR_METRIC); if (attribute != 0xFFFF) @@ -626,22 +626,22 @@ u16 AddWindow8Bit(const struct WindowTemplate *template) s32 i; memAddress = Alloc(attribute); if (memAddress == NULL) - return 0xFF; + return WINDOW_NONE; for (i = 0; i < attribute; i++) // if we're going to zero out the memory anyway, why not call AllocZeroed? memAddress[i] = 0; - gUnknown_03002F70[bgLayer] = memAddress; + gWindowBgTilemapBuffers[bgLayer] = memAddress; SetBgTilemapBuffer(bgLayer, memAddress); } } - memAddress = Alloc((u16)(0x40 * (template->width * template->height))); + memAddress = Alloc((u16)(64 * (template->width * template->height))); if (memAddress == NULL) { - if (GetNumActiveWindowsOnBg8Bit(bgLayer) == 0 && gUnknown_03002F70[bgLayer] != nullsub_9) + if (GetNumActiveWindowsOnBg8Bit(bgLayer) == 0 && gWindowBgTilemapBuffers[bgLayer] != DummyWindowBgTilemap8Bit) { - Free(gUnknown_03002F70[bgLayer]); - gUnknown_03002F70[bgLayer] = NULL; + Free(gWindowBgTilemapBuffers[bgLayer]); + gWindowBgTilemapBuffers[bgLayer] = NULL; } - return 0xFF; + return WINDOW_NONE; } else { @@ -656,7 +656,7 @@ void FillWindowPixelBuffer8Bit(u8 windowId, u8 fillValue) s32 i; s32 size; - size = (u16)(0x40 * (gWindows[windowId].window.width * gWindows[windowId].window.height)); + size = (u16)(64 * (gWindows[windowId].window.width * gWindows[windowId].window.height)); for (i = 0; i < size; i++) gWindows[windowId].tileData[i] = fillValue; } @@ -691,7 +691,7 @@ void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, const u8 *pixels, u16 srcX, u void CopyWindowToVram8Bit(u8 windowId, u8 mode) { sWindowPtr = &gWindows[windowId]; - sWindowSize = 0x40 * (sWindowPtr->window.width * sWindowPtr->window.height); + sWindowSize = 64 * (sWindowPtr->window.width * sWindowPtr->window.height); switch (mode) { diff --git a/gflib/window.h b/gflib/window.h index 10e447789a..3eac75a280 100644 --- a/gflib/window.h +++ b/gflib/window.h @@ -37,6 +37,8 @@ struct WindowTemplate 0, \ } +#define WINDOW_NONE 0xFF + struct Window { struct WindowTemplate window; @@ -70,9 +72,9 @@ void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, const u8 *pixels, u16 srcX, u void CopyWindowToVram8Bit(u8 windowId, u8 mode); extern struct Window gWindows[]; -extern void* gUnknown_03002F70[]; -extern u32 filler_03002F58; -extern u32 filler_03002F5C; -extern u32 filler_03002F64; +extern void* gWindowBgTilemapBuffers[]; +extern u32 gUnusedWindowVar1; +extern u32 gUnusedWindowVar2; +extern u32 gUnusedWindowVar3; #endif // GUARD_WINDOW_H diff --git a/graphics/battle_anims/masks/unknown_C2EA50.bin b/graphics/battle_anims/masks/unused_level_up.bin similarity index 100% rename from graphics/battle_anims/masks/unknown_C2EA50.bin rename to graphics/battle_anims/masks/unused_level_up.bin diff --git a/graphics/battle_anims/masks/unknown_C2EA50.png b/graphics/battle_anims/masks/unused_level_up.png similarity index 100% rename from graphics/battle_anims/masks/unknown_C2EA50.png rename to graphics/battle_anims/masks/unused_level_up.png diff --git a/graphics/battle_anims/sprites/substitute.bin b/graphics/battle_anims/sprites/substitute.bin deleted file mode 100644 index d30c07d4ef..0000000000 Binary files a/graphics/battle_anims/sprites/substitute.bin and /dev/null differ diff --git a/graphics/battle_anims/sprites/substitute_back.png b/graphics/battle_anims/sprites/substitute_back.png new file mode 100644 index 0000000000..8ea1f7ff8b Binary files /dev/null and b/graphics/battle_anims/sprites/substitute_back.png differ diff --git a/graphics/unknown/unknown_85CE55C.pal b/graphics/battle_anims/unused.pal similarity index 100% rename from graphics/unknown/unknown_85CE55C.pal rename to graphics/battle_anims/unused.pal diff --git a/graphics/battle_frontier/factory_screen/action_box_left.png b/graphics/battle_frontier/factory_screen/action_box_left.png new file mode 100644 index 0000000000..c4c943a15a Binary files /dev/null and b/graphics/battle_frontier/factory_screen/action_box_left.png differ diff --git a/graphics/battle_frontier/factory_screen/action_box_right.png b/graphics/battle_frontier/factory_screen/action_box_right.png new file mode 100644 index 0000000000..984244660f Binary files /dev/null and b/graphics/battle_frontier/factory_screen/action_box_right.png differ diff --git a/graphics/battle_frontier/factory_screen/action_highlight_left.png b/graphics/battle_frontier/factory_screen/action_highlight_left.png new file mode 100644 index 0000000000..873049e640 Binary files /dev/null and b/graphics/battle_frontier/factory_screen/action_highlight_left.png differ diff --git a/graphics/battle_frontier/factory_screen/action_highlight_middle.png b/graphics/battle_frontier/factory_screen/action_highlight_middle.png new file mode 100644 index 0000000000..e2bebe11b0 Binary files /dev/null and b/graphics/battle_frontier/factory_screen/action_highlight_middle.png differ diff --git a/graphics/battle_frontier/factory_screen/action_highlight_right.png b/graphics/battle_frontier/factory_screen/action_highlight_right.png new file mode 100644 index 0000000000..e2bebe11b0 Binary files /dev/null and b/graphics/battle_frontier/factory_screen/action_highlight_right.png differ diff --git a/graphics/battle_frontier/factory_screen/arrow.png b/graphics/battle_frontier/factory_screen/arrow.png new file mode 100644 index 0000000000..d0ec83deeb Binary files /dev/null and b/graphics/battle_frontier/factory_screen/arrow.png differ diff --git a/graphics/unknown/unknown_60F17C.pal b/graphics/battle_frontier/factory_screen/interface.pal similarity index 100% rename from graphics/unknown/unknown_60F17C.pal rename to graphics/battle_frontier/factory_screen/interface.pal diff --git a/graphics/battle_frontier/factory_screen/menu_highlight_left.png b/graphics/battle_frontier/factory_screen/menu_highlight_left.png new file mode 100644 index 0000000000..1c39f72501 Binary files /dev/null and b/graphics/battle_frontier/factory_screen/menu_highlight_left.png differ diff --git a/graphics/battle_frontier/factory_screen/menu_highlight_right.png b/graphics/battle_frontier/factory_screen/menu_highlight_right.png new file mode 100644 index 0000000000..9e68007331 Binary files /dev/null and b/graphics/battle_frontier/factory_screen/menu_highlight_right.png differ diff --git a/graphics/unknown/unknown_61023C.bin b/graphics/battle_frontier/factory_screen/mon_pic_bg.bin similarity index 100% rename from graphics/unknown/unknown_61023C.bin rename to graphics/battle_frontier/factory_screen/mon_pic_bg.bin diff --git a/graphics/battle_frontier/factory_screen/mon_pic_bg.png b/graphics/battle_frontier/factory_screen/mon_pic_bg.png new file mode 100644 index 0000000000..b72da6f44b Binary files /dev/null and b/graphics/battle_frontier/factory_screen/mon_pic_bg.png differ diff --git a/graphics/battle_frontier/factory_screen/mon_pic_bg_anim.png b/graphics/battle_frontier/factory_screen/mon_pic_bg_anim.png new file mode 100644 index 0000000000..324063d0de Binary files /dev/null and b/graphics/battle_frontier/factory_screen/mon_pic_bg_anim.png differ diff --git a/graphics/battle_frontier/factory_screen/pokeball.png b/graphics/battle_frontier/factory_screen/pokeball.png new file mode 100644 index 0000000000..b3426fc727 Binary files /dev/null and b/graphics/battle_frontier/factory_screen/pokeball.png differ diff --git a/graphics/unknown/unknown_60F13C.pal b/graphics/battle_frontier/factory_screen/pokeball_gray.pal similarity index 100% rename from graphics/unknown/unknown_60F13C.pal rename to graphics/battle_frontier/factory_screen/pokeball_gray.pal diff --git a/graphics/unknown/unknown_60F15C.pal b/graphics/battle_frontier/factory_screen/pokeball_selected.pal similarity index 100% rename from graphics/unknown/unknown_60F15C.pal rename to graphics/battle_frontier/factory_screen/pokeball_selected.pal diff --git a/graphics/unknown/unknown_61046C.pal b/graphics/battle_frontier/factory_screen/text.pal similarity index 100% rename from graphics/unknown/unknown_61046C.pal rename to graphics/battle_frontier/factory_screen/text.pal diff --git a/graphics/link_games/berrycrush_background.bin b/graphics/berry_crush/bg.bin similarity index 100% rename from graphics/link_games/berrycrush_background.bin rename to graphics/berry_crush/bg.bin diff --git a/graphics/link_games/berrycrush_container_cap.bin b/graphics/berry_crush/container_cap.bin similarity index 100% rename from graphics/link_games/berrycrush_container_cap.bin rename to graphics/berry_crush/container_cap.bin diff --git a/graphics/berry_crusher/tiles.bin b/graphics/berry_crush/crusher.bin similarity index 100% rename from graphics/berry_crusher/tiles.bin rename to graphics/berry_crush/crusher.bin diff --git a/graphics/berry_crusher/tiles.pal b/graphics/berry_crush/crusher.pal similarity index 100% rename from graphics/berry_crusher/tiles.pal rename to graphics/berry_crush/crusher.pal diff --git a/graphics/berry_crusher/tiles.png b/graphics/berry_crush/crusher.png similarity index 100% rename from graphics/berry_crusher/tiles.png rename to graphics/berry_crush/crusher.png diff --git a/graphics/link_games/berrycrush_grinder_base.png b/graphics/berry_crush/crusher_base.png similarity index 100% rename from graphics/link_games/berrycrush_grinder_base.png rename to graphics/berry_crush/crusher_base.png diff --git a/graphics/link_games/berrycrush_grinder_top.bin b/graphics/berry_crush/crusher_top.bin similarity index 100% rename from graphics/link_games/berrycrush_grinder_top.bin rename to graphics/berry_crush/crusher_top.bin diff --git a/graphics/link_games/berrycrush_misc.pal b/graphics/berry_crush/effects.pal similarity index 100% rename from graphics/link_games/berrycrush_misc.pal rename to graphics/berry_crush/effects.pal diff --git a/graphics/link_games/berrycrush_btnpress.png b/graphics/berry_crush/impact.png similarity index 100% rename from graphics/link_games/berrycrush_btnpress.png rename to graphics/berry_crush/impact.png diff --git a/graphics/link_games/berrycrush_sparkle.png b/graphics/berry_crush/sparkle.png similarity index 100% rename from graphics/link_games/berrycrush_sparkle.png rename to graphics/berry_crush/sparkle.png diff --git a/graphics/link_games/berrycrush_timerdigits.png b/graphics/berry_crush/timer_digits.png similarity index 100% rename from graphics/link_games/berrycrush_timerdigits.png rename to graphics/berry_crush/timer_digits.png diff --git a/graphics/contest/misc_2_tilemap_3.bin b/graphics/contest/results_screen/bg.bin similarity index 100% rename from graphics/contest/misc_2_tilemap_3.bin rename to graphics/contest/results_screen/bg.bin diff --git a/graphics/contest/misc_2_tilemap_2.bin b/graphics/contest/results_screen/interface.bin similarity index 100% rename from graphics/contest/misc_2_tilemap_2.bin rename to graphics/contest/results_screen/interface.bin diff --git a/graphics/unknown/unknown_58D6B0.pal b/graphics/contest/results_screen/text_window.pal similarity index 100% rename from graphics/unknown/unknown_58D6B0.pal rename to graphics/contest/results_screen/text_window.pal diff --git a/graphics/unknown/unknown_58D6D0.png b/graphics/contest/results_screen/text_window.png similarity index 100% rename from graphics/unknown/unknown_58D6D0.png rename to graphics/contest/results_screen/text_window.png diff --git a/graphics/contest/results_screen.pal b/graphics/contest/results_screen/tiles.pal similarity index 100% rename from graphics/contest/results_screen.pal rename to graphics/contest/results_screen/tiles.pal diff --git a/graphics/contest/results_screen.png b/graphics/contest/results_screen/tiles.png similarity index 100% rename from graphics/contest/results_screen.png rename to graphics/contest/results_screen/tiles.png diff --git a/graphics/contest/results_screen.bin b/graphics/contest/results_screen/title.bin similarity index 100% rename from graphics/contest/results_screen.bin rename to graphics/contest/results_screen/title.bin diff --git a/graphics/contest/results_screen_beauty.bin b/graphics/contest/results_screen/title_beauty.bin similarity index 100% rename from graphics/contest/results_screen_beauty.bin rename to graphics/contest/results_screen/title_beauty.bin diff --git a/graphics/contest/results_screen_cool.bin b/graphics/contest/results_screen/title_cool.bin similarity index 100% rename from graphics/contest/results_screen_cool.bin rename to graphics/contest/results_screen/title_cool.bin diff --git a/graphics/contest/results_screen_cute.bin b/graphics/contest/results_screen/title_cute.bin similarity index 100% rename from graphics/contest/results_screen_cute.bin rename to graphics/contest/results_screen/title_cute.bin diff --git a/graphics/contest/results_screen_hyper.bin b/graphics/contest/results_screen/title_hyper.bin similarity index 100% rename from graphics/contest/results_screen_hyper.bin rename to graphics/contest/results_screen/title_hyper.bin diff --git a/graphics/contest/results_screen_link.bin b/graphics/contest/results_screen/title_link.bin similarity index 100% rename from graphics/contest/results_screen_link.bin rename to graphics/contest/results_screen/title_link.bin diff --git a/graphics/contest/results_screen_master.bin b/graphics/contest/results_screen/title_master.bin similarity index 100% rename from graphics/contest/results_screen_master.bin rename to graphics/contest/results_screen/title_master.bin diff --git a/graphics/contest/results_screen_normal.bin b/graphics/contest/results_screen/title_normal.bin similarity index 100% rename from graphics/contest/results_screen_normal.bin rename to graphics/contest/results_screen/title_normal.bin diff --git a/graphics/contest/results_screen_smart.bin b/graphics/contest/results_screen/title_smart.bin similarity index 100% rename from graphics/contest/results_screen_smart.bin rename to graphics/contest/results_screen/title_smart.bin diff --git a/graphics/contest/results_screen_super.bin b/graphics/contest/results_screen/title_super.bin similarity index 100% rename from graphics/contest/results_screen_super.bin rename to graphics/contest/results_screen/title_super.bin diff --git a/graphics/contest/results_screen_tough.bin b/graphics/contest/results_screen/title_tough.bin similarity index 100% rename from graphics/contest/results_screen_tough.bin rename to graphics/contest/results_screen/title_tough.bin diff --git a/graphics/contest/misc_2_tilemap_1.bin b/graphics/contest/results_screen/winner_banner.bin similarity index 100% rename from graphics/contest/misc_2_tilemap_1.bin rename to graphics/contest/results_screen/winner_banner.bin diff --git a/graphics/credits/credits.pal b/graphics/credits/credits.pal new file mode 100644 index 0000000000..d086095d8b --- /dev/null +++ b/graphics/credits/credits.pal @@ -0,0 +1,67 @@ +JASC-PAL +0100 +64 +0 0 0 +255 255 255 +164 164 164 +255 230 123 +255 82 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 230 123 +255 82 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +131 65 32 +16 0 0 +8 139 65 +8 8 0 +8 8 0 +8 8 0 +148 131 32 +16 8 0 +0 74 65 +16 65 65 +131 131 32 +148 131 65 +8 139 65 +8 139 0 +8 8 32 +148 131 0 +148 65 65 +16 74 65 +0 139 65 +0 131 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/credits/credits_1.pal b/graphics/credits/credits_1.pal deleted file mode 100644 index 222be71012..0000000000 --- a/graphics/credits/credits_1.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -164 164 164 -255 230 123 -255 82 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/credits/credits_2.pal b/graphics/credits/credits_2.pal deleted file mode 100644 index 7dac48572e..0000000000 --- a/graphics/credits/credits_2.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 230 123 -255 82 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/credits/credits_3.pal b/graphics/credits/credits_3.pal deleted file mode 100644 index cbd66ec0cc..0000000000 --- a/graphics/credits/credits_3.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -131 65 32 -16 0 0 -8 139 65 -8 8 0 -8 8 0 -8 8 0 -148 131 32 -16 8 0 diff --git a/graphics/credits/credits_4.pal b/graphics/credits/credits_4.pal deleted file mode 100644 index 2df49dc85b..0000000000 --- a/graphics/credits/credits_4.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 74 65 -16 65 65 -131 131 32 -148 131 65 -8 139 65 -8 139 0 -8 8 32 -148 131 0 -148 65 65 -16 74 65 -0 139 65 -0 131 65 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/link_games/dodrioberry_berrysprites.png b/graphics/dodrio_berry_picking/berries.png similarity index 100% rename from graphics/link_games/dodrioberry_berrysprites.png rename to graphics/dodrio_berry_picking/berries.png diff --git a/graphics/link_games/dodrioberry_bg1.bin b/graphics/dodrio_berry_picking/bg.bin similarity index 100% rename from graphics/link_games/dodrioberry_bg1.bin rename to graphics/dodrio_berry_picking/bg.bin diff --git a/graphics/link_games/dodrioberry_bg1.pal b/graphics/dodrio_berry_picking/bg.pal similarity index 100% rename from graphics/link_games/dodrioberry_bg1.pal rename to graphics/dodrio_berry_picking/bg.pal diff --git a/graphics/link_games/dodrioberry_bg1.png b/graphics/dodrio_berry_picking/bg.png similarity index 100% rename from graphics/link_games/dodrioberry_bg1.png rename to graphics/dodrio_berry_picking/bg.png diff --git a/graphics/link_games/dodrioberry_platform.png b/graphics/dodrio_berry_picking/cloud.png similarity index 100% rename from graphics/link_games/dodrioberry_platform.png rename to graphics/dodrio_berry_picking/cloud.png diff --git a/graphics/link_games/dodrioberry_pkmn.png b/graphics/dodrio_berry_picking/dodrio.png similarity index 100% rename from graphics/link_games/dodrioberry_pkmn.png rename to graphics/dodrio_berry_picking/dodrio.png diff --git a/graphics/link_games/dodrioberry_shiny.pal b/graphics/dodrio_berry_picking/shiny.pal similarity index 100% rename from graphics/link_games/dodrioberry_shiny.pal rename to graphics/dodrio_berry_picking/shiny.pal diff --git a/graphics/link_games/dodrioberry_status.png b/graphics/dodrio_berry_picking/status.png similarity index 100% rename from graphics/link_games/dodrioberry_status.png rename to graphics/dodrio_berry_picking/status.png diff --git a/graphics/link_games/dodrioberry_bg2.pal b/graphics/dodrio_berry_picking/tree_border.pal similarity index 100% rename from graphics/link_games/dodrioberry_bg2.pal rename to graphics/dodrio_berry_picking/tree_border.pal diff --git a/graphics/link_games/dodrioberry_bg2.png b/graphics/dodrio_berry_picking/tree_border.png similarity index 100% rename from graphics/link_games/dodrioberry_bg2.png rename to graphics/dodrio_berry_picking/tree_border.png diff --git a/graphics/link_games/dodrioberry_bg2left.bin b/graphics/dodrio_berry_picking/tree_border_left.bin similarity index 100% rename from graphics/link_games/dodrioberry_bg2left.bin rename to graphics/dodrio_berry_picking/tree_border_left.bin diff --git a/graphics/link_games/dodrioberry_bg2right.bin b/graphics/dodrio_berry_picking/tree_border_right.bin similarity index 100% rename from graphics/link_games/dodrioberry_bg2right.bin rename to graphics/dodrio_berry_picking/tree_border_right.bin diff --git a/graphics/easy_chat/rwindow.png b/graphics/easy_chat/button_window.png similarity index 100% rename from graphics/easy_chat/rwindow.png rename to graphics/easy_chat/button_window.png diff --git a/graphics/misc/interview_frame.png b/graphics/easy_chat/interview_frame.png similarity index 100% rename from graphics/misc/interview_frame.png rename to graphics/easy_chat/interview_frame.png diff --git a/graphics/easy_chat/cursor.png b/graphics/easy_chat/rectangle_cursor.png similarity index 100% rename from graphics/easy_chat/cursor.png rename to graphics/easy_chat/rectangle_cursor.png diff --git a/graphics/misc/8597C24.pal b/graphics/easy_chat/text.pal similarity index 100% rename from graphics/misc/8597C24.pal rename to graphics/easy_chat/text.pal diff --git a/graphics/misc/interview_frame_2.png b/graphics/easy_chat/text_input_frame.png similarity index 100% rename from graphics/misc/interview_frame_2.png rename to graphics/easy_chat/text_input_frame.png diff --git a/graphics/misc/interview_frame_green.pal b/graphics/easy_chat/text_input_frame_green.pal similarity index 100% rename from graphics/misc/interview_frame_green.pal rename to graphics/easy_chat/text_input_frame_green.pal diff --git a/graphics/misc/interview_frame_orange.pal b/graphics/easy_chat/text_input_frame_orange.pal similarity index 100% rename from graphics/misc/interview_frame_orange.pal rename to graphics/easy_chat/text_input_frame_orange.pal diff --git a/graphics/misc/8597C1C.pal b/graphics/easy_chat/title_text.pal similarity index 100% rename from graphics/misc/8597C1C.pal rename to graphics/easy_chat/title_text.pal diff --git a/graphics/evolution_scene/transition.pal b/graphics/evolution_scene/bg_anim.pal similarity index 100% rename from graphics/evolution_scene/transition.pal rename to graphics/evolution_scene/bg_anim.pal diff --git a/graphics/evolution_scene/gray_transition_intro.pal b/graphics/evolution_scene/bg_anim_intro.pal similarity index 100% rename from graphics/evolution_scene/gray_transition_intro.pal rename to graphics/evolution_scene/bg_anim_intro.pal diff --git a/graphics/evolution_scene/bg.bin b/graphics/evolution_scene/bg_inner.bin similarity index 100% rename from graphics/evolution_scene/bg.bin rename to graphics/evolution_scene/bg_inner.bin diff --git a/graphics/evolution_scene/bg2.bin b/graphics/evolution_scene/bg_outer.bin similarity index 100% rename from graphics/evolution_scene/bg2.bin rename to graphics/evolution_scene/bg_outer.bin diff --git a/graphics/evolution_scene/unknown_5B4114.pal b/graphics/evolution_scene/unused_1.pal similarity index 100% rename from graphics/evolution_scene/unknown_5B4114.pal rename to graphics/evolution_scene/unused_1.pal diff --git a/graphics/evolution_scene/gray_transition_lighten.pal b/graphics/evolution_scene/unused_2.pal similarity index 100% rename from graphics/evolution_scene/gray_transition_lighten.pal rename to graphics/evolution_scene/unused_2.pal diff --git a/graphics/evolution_scene/gray_transition_darken.pal b/graphics/evolution_scene/unused_3.pal similarity index 100% rename from graphics/evolution_scene/gray_transition_darken.pal rename to graphics/evolution_scene/unused_3.pal diff --git a/graphics/evolution_scene/gray_transition_outro.pal b/graphics/evolution_scene/unused_4.pal similarity index 100% rename from graphics/evolution_scene/gray_transition_outro.pal rename to graphics/evolution_scene/unused_4.pal diff --git a/graphics/frontier_pass/tiles.bin b/graphics/frontier_pass/bg.bin similarity index 100% rename from graphics/frontier_pass/tiles.bin rename to graphics/frontier_pass/bg.bin diff --git a/graphics/frontier_pass/tiles.pal b/graphics/frontier_pass/bg.pal similarity index 100% rename from graphics/frontier_pass/tiles.pal rename to graphics/frontier_pass/bg.pal diff --git a/graphics/frontier_pass/tiles.png b/graphics/frontier_pass/bg.png similarity index 100% rename from graphics/frontier_pass/tiles.png rename to graphics/frontier_pass/bg.png diff --git a/graphics/frontier_pass/tilemap1.bin b/graphics/frontier_pass/cancel.bin similarity index 100% rename from graphics/frontier_pass/tilemap1.bin rename to graphics/frontier_pass/cancel.bin diff --git a/graphics/frontier_pass/tilemap2.bin b/graphics/frontier_pass/cancel_highlighted.bin similarity index 100% rename from graphics/frontier_pass/tilemap2.bin rename to graphics/frontier_pass/cancel_highlighted.bin diff --git a/graphics/frontier_pass/tiles2.png b/graphics/frontier_pass/map_and_card.png similarity index 100% rename from graphics/frontier_pass/tiles2.png rename to graphics/frontier_pass/map_and_card.png diff --git a/graphics/frontier_pass/unknown_571298.bin b/graphics/frontier_pass/unused.bin similarity index 100% rename from graphics/frontier_pass/unknown_571298.bin rename to graphics/frontier_pass/unused.bin diff --git a/graphics/interface/blank_1x2.png b/graphics/interface/comm_error_bg.png similarity index 100% rename from graphics/interface/blank_1x2.png rename to graphics/interface/comm_error_bg.png diff --git a/graphics/interface/map_popup/857F444.pal b/graphics/interface/map_popup/underwater.pal similarity index 100% rename from graphics/interface/map_popup/857F444.pal rename to graphics/interface/map_popup/underwater.pal diff --git a/graphics/interface/menu_border.png b/graphics/interface/menu_border.png deleted file mode 100644 index ba748b169d..0000000000 Binary files a/graphics/interface/menu_border.png and /dev/null differ diff --git a/graphics/interface_fr/menu.png b/graphics/interface_fr/menu.png index a04c981d5d..b16d008cb3 100644 Binary files a/graphics/interface_fr/menu.png and b/graphics/interface_fr/menu.png differ diff --git a/graphics/intro/intro.png b/graphics/intro/intro.png deleted file mode 100644 index e0f28c8413..0000000000 Binary files a/graphics/intro/intro.png and /dev/null differ diff --git a/graphics/intro/intro2_bgtrees2.pal b/graphics/intro/intro2_bgtrees2.pal deleted file mode 100644 index 5c506481a2..0000000000 --- a/graphics/intro/intro2_bgtrees2.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -156 189 246 -172 205 246 -197 230 255 -213 246 255 -238 255 255 -156 180 172 -197 197 156 -172 189 164 -98 139 98 -98 156 57 -123 164 131 -156 213 82 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/intro1_bgpal.pal b/graphics/intro/scene_1/bg.pal similarity index 100% rename from graphics/intro/intro1_bgpal.pal rename to graphics/intro/scene_1/bg.pal diff --git a/graphics/intro/introgfx.png b/graphics/intro/scene_1/bg.png similarity index 100% rename from graphics/intro/introgfx.png rename to graphics/intro/scene_1/bg.png diff --git a/graphics/intro/intro1_bg0_map.bin b/graphics/intro/scene_1/bg0_map.bin similarity index 100% rename from graphics/intro/intro1_bg0_map.bin rename to graphics/intro/scene_1/bg0_map.bin diff --git a/graphics/intro/intro1_bg1_map.bin b/graphics/intro/scene_1/bg1_map.bin similarity index 100% rename from graphics/intro/intro1_bg1_map.bin rename to graphics/intro/scene_1/bg1_map.bin diff --git a/graphics/intro/intro1_bg2_map.bin b/graphics/intro/scene_1/bg2_map.bin similarity index 100% rename from graphics/intro/intro1_bg2_map.bin rename to graphics/intro/scene_1/bg2_map.bin diff --git a/graphics/intro/intro1_bg3_map.bin b/graphics/intro/scene_1/bg3_map.bin similarity index 100% rename from graphics/intro/intro1_bg3_map.bin rename to graphics/intro/scene_1/bg3_map.bin diff --git a/graphics/intro/intro1_drops.pal b/graphics/intro/scene_1/drops.pal similarity index 100% rename from graphics/intro/intro1_drops.pal rename to graphics/intro/scene_1/drops.pal diff --git a/graphics/intro/scene_1/drops_logo.png b/graphics/intro/scene_1/drops_logo.png new file mode 100644 index 0000000000..9c903656ad Binary files /dev/null and b/graphics/intro/scene_1/drops_logo.png differ diff --git a/graphics/intro/intro1_flygon.png b/graphics/intro/scene_1/flygon.png similarity index 100% rename from graphics/intro/intro1_flygon.png rename to graphics/intro/scene_1/flygon.png diff --git a/graphics/intro/intro1_eon.png b/graphics/intro/scene_1/lati.png similarity index 100% rename from graphics/intro/intro1_eon.png rename to graphics/intro/scene_1/lati.png diff --git a/graphics/intro/intro1_gflogo.pal b/graphics/intro/scene_1/logo.pal similarity index 100% rename from graphics/intro/intro1_gflogo.pal rename to graphics/intro/scene_1/logo.pal diff --git a/graphics/intro/intro1_sparkle.png b/graphics/intro/scene_1/sparkle.png similarity index 100% rename from graphics/intro/intro1_sparkle.png rename to graphics/intro/scene_1/sparkle.png diff --git a/graphics/intro/intro1_text.pal b/graphics/intro/scene_1/text.pal similarity index 100% rename from graphics/intro/intro1_text.pal rename to graphics/intro/scene_1/text.pal diff --git a/graphics/intro/intro2_bicycle.png b/graphics/intro/scene_2/bicycle.png similarity index 100% rename from graphics/intro/intro2_bicycle.png rename to graphics/intro/scene_2/bicycle.png diff --git a/graphics/intro/intro2_brendan_noturn.png b/graphics/intro/scene_2/brendan.png similarity index 100% rename from graphics/intro/intro2_brendan_noturn.png rename to graphics/intro/scene_2/brendan.png diff --git a/graphics/intro/intro2_brendan.png b/graphics/intro/scene_2/brendan_credits.png similarity index 100% rename from graphics/intro/intro2_brendan.png rename to graphics/intro/scene_2/brendan_credits.png diff --git a/graphics/intro/intro2_bgclouds2.png b/graphics/intro/scene_2/clouds.png similarity index 100% rename from graphics/intro/intro2_bgclouds2.png rename to graphics/intro/scene_2/clouds.png diff --git a/graphics/intro/85F0CFC.pal b/graphics/intro/scene_2/clouds_bg.pal similarity index 100% rename from graphics/intro/85F0CFC.pal rename to graphics/intro/scene_2/clouds_bg.pal diff --git a/graphics/intro/intro2_bgclouds.png b/graphics/intro/scene_2/clouds_bg.png similarity index 100% rename from graphics/intro/intro2_bgclouds.png rename to graphics/intro/scene_2/clouds_bg.png diff --git a/graphics/intro/intro2_bgclouds_map.bin b/graphics/intro/scene_2/clouds_bg_map.bin similarity index 100% rename from graphics/intro/intro2_bgclouds_map.bin rename to graphics/intro/scene_2/clouds_bg_map.bin diff --git a/graphics/intro/85F0D5C.pal b/graphics/intro/scene_2/clouds_bg_sunset.pal similarity index 100% rename from graphics/intro/85F0D5C.pal rename to graphics/intro/scene_2/clouds_bg_sunset.pal diff --git a/graphics/intro/intro2_bgclouds_afternoon.pal b/graphics/intro/scene_2/clouds_sunset.pal similarity index 100% rename from graphics/intro/intro2_bgclouds_afternoon.pal rename to graphics/intro/scene_2/clouds_sunset.pal diff --git a/graphics/intro/intro2_flygon.png b/graphics/intro/scene_2/flygon.png similarity index 100% rename from graphics/intro/intro2_flygon.png rename to graphics/intro/scene_2/flygon.png diff --git a/graphics/intro/intro2_grass.png b/graphics/intro/scene_2/grass.png similarity index 100% rename from graphics/intro/intro2_grass.png rename to graphics/intro/scene_2/grass.png diff --git a/graphics/intro/intro2_grass_map.bin b/graphics/intro/scene_2/grass_map.bin similarity index 100% rename from graphics/intro/intro2_grass_map.bin rename to graphics/intro/scene_2/grass_map.bin diff --git a/graphics/intro/intro2_grass_night.pal b/graphics/intro/scene_2/grass_night.pal similarity index 100% rename from graphics/intro/intro2_grass_night.pal rename to graphics/intro/scene_2/grass_night.pal diff --git a/graphics/intro/intro2_grass_afternoon.pal b/graphics/intro/scene_2/grass_sunset.pal similarity index 100% rename from graphics/intro/intro2_grass_afternoon.pal rename to graphics/intro/scene_2/grass_sunset.pal diff --git a/graphics/intro/intro2_night.png b/graphics/intro/scene_2/house_silhouette.png similarity index 100% rename from graphics/intro/intro2_night.png rename to graphics/intro/scene_2/house_silhouette.png diff --git a/graphics/intro/85F231C.pal b/graphics/intro/scene_2/houses.pal similarity index 100% rename from graphics/intro/85F231C.pal rename to graphics/intro/scene_2/houses.pal diff --git a/graphics/intro/intro2_bgnight.png b/graphics/intro/scene_2/houses.png similarity index 100% rename from graphics/intro/intro2_bgnight.png rename to graphics/intro/scene_2/houses.png diff --git a/graphics/intro/intro2_bgnight_map.bin b/graphics/intro/scene_2/houses_map.bin similarity index 100% rename from graphics/intro/intro2_bgnight_map.bin rename to graphics/intro/scene_2/houses_map.bin diff --git a/graphics/intro/intro2_latias.png b/graphics/intro/scene_2/latias.png similarity index 100% rename from graphics/intro/intro2_latias.png rename to graphics/intro/scene_2/latias.png diff --git a/graphics/intro/intro2_latios.png b/graphics/intro/scene_2/latios.png similarity index 100% rename from graphics/intro/intro2_latios.png rename to graphics/intro/scene_2/latios.png diff --git a/graphics/intro/intro2_manectric.png b/graphics/intro/scene_2/manectric.png similarity index 100% rename from graphics/intro/intro2_manectric.png rename to graphics/intro/scene_2/manectric.png diff --git a/graphics/intro/intro2_may_noturn.png b/graphics/intro/scene_2/may.png similarity index 100% rename from graphics/intro/intro2_may_noturn.png rename to graphics/intro/scene_2/may.png diff --git a/graphics/intro/intro2_may.png b/graphics/intro/scene_2/may_credits.png similarity index 100% rename from graphics/intro/intro2_may.png rename to graphics/intro/scene_2/may_credits.png diff --git a/graphics/intro/intro2_brendan_noturn.pal b/graphics/intro/scene_2/player.pal similarity index 100% rename from graphics/intro/intro2_brendan_noturn.pal rename to graphics/intro/scene_2/player.pal diff --git a/graphics/intro/intro2_torchic.png b/graphics/intro/scene_2/torchic.png similarity index 100% rename from graphics/intro/intro2_torchic.png rename to graphics/intro/scene_2/torchic.png diff --git a/graphics/intro/intro2_bgtrees.png b/graphics/intro/scene_2/trees.png similarity index 100% rename from graphics/intro/intro2_bgtrees.png rename to graphics/intro/scene_2/trees.png diff --git a/graphics/intro/intro2_bgtrees_map.bin b/graphics/intro/scene_2/trees_map.bin similarity index 100% rename from graphics/intro/intro2_bgtrees_map.bin rename to graphics/intro/scene_2/trees_map.bin diff --git a/graphics/intro/intro2_bgtreessmall.png b/graphics/intro/scene_2/trees_small.png similarity index 100% rename from graphics/intro/intro2_bgtreessmall.png rename to graphics/intro/scene_2/trees_small.png diff --git a/graphics/intro/intro2_bgtrees2_afternoon.pal b/graphics/intro/scene_2/trees_sunset.pal similarity index 100% rename from graphics/intro/intro2_bgtrees2_afternoon.pal rename to graphics/intro/scene_2/trees_sunset.pal diff --git a/graphics/intro/intro2_volbeat.png b/graphics/intro/scene_2/volbeat.png similarity index 100% rename from graphics/intro/intro2_volbeat.png rename to graphics/intro/scene_2/volbeat.png diff --git a/graphics/intro/intro3.pal b/graphics/intro/scene_3/bg.pal similarity index 100% rename from graphics/intro/intro3.pal rename to graphics/intro/scene_3/bg.pal diff --git a/graphics/intro/intro2_bubbles.png b/graphics/intro/scene_3/bubbles.png similarity index 100% rename from graphics/intro/intro2_bubbles.png rename to graphics/intro/scene_3/bubbles.png diff --git a/graphics/intro/intro3_clouds.png b/graphics/intro/scene_3/clouds.png similarity index 100% rename from graphics/intro/intro3_clouds.png rename to graphics/intro/scene_3/clouds.png diff --git a/graphics/intro/intro3_clouds1.bin b/graphics/intro/scene_3/clouds_left.bin similarity index 100% rename from graphics/intro/intro3_clouds1.bin rename to graphics/intro/scene_3/clouds_left.bin diff --git a/graphics/intro/intro3_clouds2.bin b/graphics/intro/scene_3/clouds_right.bin similarity index 100% rename from graphics/intro/intro3_clouds2.bin rename to graphics/intro/scene_3/clouds_right.bin diff --git a/graphics/intro/intro3_clouds3.bin b/graphics/intro/scene_3/clouds_sun.bin similarity index 100% rename from graphics/intro/intro3_clouds3.bin rename to graphics/intro/scene_3/clouds_sun.bin diff --git a/graphics/intro/intro3_groudon.bin b/graphics/intro/scene_3/groudon.bin similarity index 100% rename from graphics/intro/intro3_groudon.bin rename to graphics/intro/scene_3/groudon.bin diff --git a/graphics/intro/intro3_groudon.png b/graphics/intro/scene_3/groudon.png similarity index 100% rename from graphics/intro/intro3_groudon.png rename to graphics/intro/scene_3/groudon.png diff --git a/graphics/intro/legend_bg1.bin b/graphics/intro/scene_3/groudon_bg.bin similarity index 100% rename from graphics/intro/legend_bg1.bin rename to graphics/intro/scene_3/groudon_bg.bin diff --git a/graphics/intro/intro3_kyogre.bin b/graphics/intro/scene_3/kyogre.bin similarity index 100% rename from graphics/intro/intro3_kyogre.bin rename to graphics/intro/scene_3/kyogre.bin diff --git a/graphics/intro/intro3_kyogre.png b/graphics/intro/scene_3/kyogre.png similarity index 100% rename from graphics/intro/intro3_kyogre.png rename to graphics/intro/scene_3/kyogre.png diff --git a/graphics/intro/legend_bg2.bin b/graphics/intro/scene_3/kyogre_bg.bin similarity index 100% rename from graphics/intro/legend_bg2.bin rename to graphics/intro/scene_3/kyogre_bg.bin diff --git a/graphics/intro/legend_bg.png b/graphics/intro/scene_3/legend_bg.png similarity index 100% rename from graphics/intro/legend_bg.png rename to graphics/intro/scene_3/legend_bg.png diff --git a/graphics/intro/intro3_lightning.png b/graphics/intro/scene_3/lightning.png similarity index 100% rename from graphics/intro/intro3_lightning.png rename to graphics/intro/scene_3/lightning.png diff --git a/graphics/intro/intro3_misc2.pal b/graphics/intro/scene_3/misc.pal similarity index 100% rename from graphics/intro/intro3_misc2.pal rename to graphics/intro/scene_3/misc.pal diff --git a/graphics/intro/intro3_misc.png b/graphics/intro/scene_3/misc.png similarity index 100% rename from graphics/intro/intro3_misc.png rename to graphics/intro/scene_3/misc.png diff --git a/graphics/intro/intro3_pokeball.png b/graphics/intro/scene_3/pokeball.png similarity index 100% rename from graphics/intro/intro3_pokeball.png rename to graphics/intro/scene_3/pokeball.png diff --git a/graphics/intro/intro3_pokeball_map.bin b/graphics/intro/scene_3/pokeball_map.bin similarity index 100% rename from graphics/intro/intro3_pokeball_map.bin rename to graphics/intro/scene_3/pokeball_map.bin diff --git a/graphics/intro/intro3_rayquaza.bin b/graphics/intro/scene_3/rayquaza.bin similarity index 100% rename from graphics/intro/intro3_rayquaza.bin rename to graphics/intro/scene_3/rayquaza.bin diff --git a/graphics/intro/intro3_rayquaza.png b/graphics/intro/scene_3/rayquaza.png similarity index 100% rename from graphics/intro/intro3_rayquaza.png rename to graphics/intro/scene_3/rayquaza.png diff --git a/graphics/intro/intro3_clouds4.bin b/graphics/intro/scene_3/rayquaza_clouds.bin similarity index 100% rename from graphics/intro/intro3_clouds4.bin rename to graphics/intro/scene_3/rayquaza_clouds.bin diff --git a/graphics/intro/intro3_clouds2.png b/graphics/intro/scene_3/rayquaza_clouds.png similarity index 100% rename from graphics/intro/intro3_clouds2.png rename to graphics/intro/scene_3/rayquaza_clouds.png diff --git a/graphics/intro/intro3_misc1.pal b/graphics/intro/scene_3/rayquaza_orb.pal similarity index 100% rename from graphics/intro/intro3_misc1.pal rename to graphics/intro/scene_3/rayquaza_orb.pal diff --git a/graphics/intro/intro3_streaks.png b/graphics/intro/scene_3/streaks.png similarity index 100% rename from graphics/intro/intro3_streaks.png rename to graphics/intro/scene_3/streaks.png diff --git a/graphics/intro/intro3_streaks_map.bin b/graphics/intro/scene_3/streaks_map.bin similarity index 100% rename from graphics/intro/intro3_streaks_map.bin rename to graphics/intro/scene_3/streaks_map.bin diff --git a/graphics/unknown/unknown_D8C374.bin b/graphics/intro/scene_3/unused_1.bin similarity index 100% rename from graphics/unknown/unknown_D8C374.bin rename to graphics/intro/scene_3/unused_1.bin diff --git a/graphics/unknown/unknown_D8C5C4.bin b/graphics/intro/scene_3/unused_2.bin similarity index 100% rename from graphics/unknown/unknown_D8C5C4.bin rename to graphics/intro/scene_3/unused_2.bin diff --git a/graphics/link_games/321start.png b/graphics/minigame_countdown/321start.png similarity index 100% rename from graphics/link_games/321start.png rename to graphics/minigame_countdown/321start.png diff --git a/graphics/link_games/321start_2.png b/graphics/minigame_countdown/321start_static.png similarity index 100% rename from graphics/link_games/321start_2.png rename to graphics/minigame_countdown/321start_static.png diff --git a/graphics/misc/85B2890.pal b/graphics/misc/cave_transition_enter.pal similarity index 100% rename from graphics/misc/85B2890.pal rename to graphics/misc/cave_transition_enter.pal diff --git a/graphics/misc/85B28A0.pal b/graphics/misc/cave_transition_exit.pal similarity index 100% rename from graphics/misc/85B28A0.pal rename to graphics/misc/cave_transition_exit.pal diff --git a/graphics/misc/fossil.png b/graphics/misc/fossil.png deleted file mode 100644 index f92649e987..0000000000 Binary files a/graphics/misc/fossil.png and /dev/null differ diff --git a/graphics/misc/interview.pal b/graphics/misc/interview.pal deleted file mode 100644 index dfe91b5deb..0000000000 --- a/graphics/misc/interview.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 255 148 -255 197 148 -238 139 90 -189 90 41 -255 213 213 -246 180 180 -197 131 131 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -41 49 49 -98 98 98 -180 189 180 -222 213 222 -255 255 255 diff --git a/graphics/pokenav/condition/marker.png b/graphics/misc/mon_markings_menu.png similarity index 100% rename from graphics/pokenav/condition/marker.png rename to graphics/misc/mon_markings_menu.png diff --git a/graphics/picture_frame/frame1.png b/graphics/picture_frame/beauty.png similarity index 100% rename from graphics/picture_frame/frame1.png rename to graphics/picture_frame/beauty.png diff --git a/graphics/picture_frame/frame1_map.bin b/graphics/picture_frame/beauty_map.bin similarity index 100% rename from graphics/picture_frame/frame1_map.bin rename to graphics/picture_frame/beauty_map.bin diff --git a/graphics/picture_frame/frame0.png b/graphics/picture_frame/cool.png similarity index 100% rename from graphics/picture_frame/frame0.png rename to graphics/picture_frame/cool.png diff --git a/graphics/picture_frame/frame0_map.bin b/graphics/picture_frame/cool_map.bin similarity index 100% rename from graphics/picture_frame/frame0_map.bin rename to graphics/picture_frame/cool_map.bin diff --git a/graphics/picture_frame/frame2.png b/graphics/picture_frame/cute.png similarity index 100% rename from graphics/picture_frame/frame2.png rename to graphics/picture_frame/cute.png diff --git a/graphics/picture_frame/frame2_map.bin b/graphics/picture_frame/cute_map.bin similarity index 100% rename from graphics/picture_frame/frame2_map.bin rename to graphics/picture_frame/cute_map.bin diff --git a/graphics/picture_frame/frame5.png b/graphics/picture_frame/lobby.png similarity index 100% rename from graphics/picture_frame/frame5.png rename to graphics/picture_frame/lobby.png diff --git a/graphics/picture_frame/frame5_map.bin b/graphics/picture_frame/lobby_map.bin similarity index 100% rename from graphics/picture_frame/frame5_map.bin rename to graphics/picture_frame/lobby_map.bin diff --git a/graphics/picture_frame/frame3.png b/graphics/picture_frame/smart.png similarity index 100% rename from graphics/picture_frame/frame3.png rename to graphics/picture_frame/smart.png diff --git a/graphics/picture_frame/frame3_map.bin b/graphics/picture_frame/smart_map.bin similarity index 100% rename from graphics/picture_frame/frame3_map.bin rename to graphics/picture_frame/smart_map.bin diff --git a/graphics/picture_frame/frame4.png b/graphics/picture_frame/tough.png similarity index 100% rename from graphics/picture_frame/frame4.png rename to graphics/picture_frame/tough.png diff --git a/graphics/picture_frame/frame4_map.bin b/graphics/picture_frame/tough_map.bin similarity index 100% rename from graphics/picture_frame/frame4_map.bin rename to graphics/picture_frame/tough_map.bin diff --git a/graphics/link_games/pkmnjump_bg.bin b/graphics/pokemon_jump/bg.bin similarity index 100% rename from graphics/link_games/pkmnjump_bg.bin rename to graphics/pokemon_jump/bg.bin diff --git a/graphics/link_games/pkmnjump_bg.png b/graphics/pokemon_jump/bg.png similarity index 100% rename from graphics/link_games/pkmnjump_bg.png rename to graphics/pokemon_jump/bg.png diff --git a/graphics/link_games/pkmnjump_results.bin b/graphics/pokemon_jump/bonuses.bin similarity index 100% rename from graphics/link_games/pkmnjump_results.bin rename to graphics/pokemon_jump/bonuses.bin diff --git a/graphics/link_games/pkmnjump_results.png b/graphics/pokemon_jump/bonuses.png similarity index 100% rename from graphics/link_games/pkmnjump_results.png rename to graphics/pokemon_jump/bonuses.png diff --git a/graphics/link_games/pkmnjump_pal3.pal b/graphics/pokemon_jump/interface.pal similarity index 100% rename from graphics/link_games/pkmnjump_pal3.pal rename to graphics/pokemon_jump/interface.pal diff --git a/graphics/link_games/pkmnjump_pal1.pal b/graphics/pokemon_jump/pal1.pal similarity index 100% rename from graphics/link_games/pkmnjump_pal1.pal rename to graphics/pokemon_jump/pal1.pal diff --git a/graphics/link_games/pkmnjump_pal2.pal b/graphics/pokemon_jump/pal2.pal similarity index 100% rename from graphics/link_games/pkmnjump_pal2.pal rename to graphics/pokemon_jump/pal2.pal diff --git a/graphics/link_games/pkmnjump_star.png b/graphics/pokemon_jump/star.png similarity index 100% rename from graphics/link_games/pkmnjump_star.png rename to graphics/pokemon_jump/star.png diff --git a/graphics/link_games/pkmnjump_venusaur.bin b/graphics/pokemon_jump/venusaur.bin similarity index 100% rename from graphics/link_games/pkmnjump_venusaur.bin rename to graphics/pokemon_jump/venusaur.bin diff --git a/graphics/link_games/pkmnjump_venusaur.png b/graphics/pokemon_jump/venusaur.png similarity index 100% rename from graphics/link_games/pkmnjump_venusaur.png rename to graphics/pokemon_jump/venusaur.png diff --git a/graphics/link_games/pkmnjump_rope1.png b/graphics/pokemon_jump/vine1.png similarity index 100% rename from graphics/link_games/pkmnjump_rope1.png rename to graphics/pokemon_jump/vine1.png diff --git a/graphics/link_games/pkmnjump_rope2.png b/graphics/pokemon_jump/vine2.png similarity index 100% rename from graphics/link_games/pkmnjump_rope2.png rename to graphics/pokemon_jump/vine2.png diff --git a/graphics/link_games/pkmnjump_rope3.png b/graphics/pokemon_jump/vine3.png similarity index 100% rename from graphics/link_games/pkmnjump_rope3.png rename to graphics/pokemon_jump/vine3.png diff --git a/graphics/link_games/pkmnjump_rope4.png b/graphics/pokemon_jump/vine4.png similarity index 100% rename from graphics/link_games/pkmnjump_rope4.png rename to graphics/pokemon_jump/vine4.png diff --git a/graphics/unknown/unknown_57241C.pal b/graphics/pokemon_storage/bg.pal similarity index 100% rename from graphics/unknown/unknown_57241C.pal rename to graphics/pokemon_storage/bg.pal diff --git a/graphics/unknown/unknown_57243C.pal b/graphics/pokemon_storage/bg_move_items.pal similarity index 100% rename from graphics/unknown/unknown_57243C.pal rename to graphics/pokemon_storage/bg_move_items.pal diff --git a/graphics/unknown/unknown_57173C.pal b/graphics/pokemon_storage/box_selection_popup.pal similarity index 100% rename from graphics/unknown/unknown_57173C.pal rename to graphics/pokemon_storage/box_selection_popup.pal diff --git a/graphics/unknown/unknown_5722A0.bin b/graphics/pokemon_storage/display_menu.bin similarity index 100% rename from graphics/unknown/unknown_5722A0.bin rename to graphics/pokemon_storage/display_menu.bin diff --git a/graphics/unknown/unknown_572280.pal b/graphics/pokemon_storage/display_menu.pal similarity index 100% rename from graphics/unknown/unknown_572280.pal rename to graphics/pokemon_storage/display_menu.pal diff --git a/graphics/unknown/unknown_5723DC.pal b/graphics/pokemon_storage/interface.pal similarity index 100% rename from graphics/unknown/unknown_5723DC.pal rename to graphics/pokemon_storage/interface.pal diff --git a/graphics/pokemon_storage/unknown_frame.png b/graphics/pokemon_storage/item_info_frame.png similarity index 100% rename from graphics/pokemon_storage/unknown_frame.png rename to graphics/pokemon_storage/item_info_frame.png diff --git a/graphics/unknown/unknown_DD36C8.bin b/graphics/pokemon_storage/party_menu.bin similarity index 100% rename from graphics/unknown/unknown_DD36C8.bin rename to graphics/pokemon_storage/party_menu.bin diff --git a/graphics/unknown/unknown_5723FC.pal b/graphics/pokemon_storage/pkmn_data_gray.pal similarity index 100% rename from graphics/unknown/unknown_5723FC.pal rename to graphics/pokemon_storage/pkmn_data_gray.pal diff --git a/graphics/unknown/unknown_5726F4.pal b/graphics/pokemon_storage/unknown.pal similarity index 100% rename from graphics/unknown/unknown_5726F4.pal rename to graphics/pokemon_storage/unknown.pal diff --git a/graphics/unused/unknown_5726B4.pal b/graphics/pokemon_storage/unused.pal similarity index 100% rename from graphics/unused/unknown_5726B4.pal rename to graphics/pokemon_storage/unused.pal diff --git a/graphics/pokemon_storage/azumarill_bg.png b/graphics/pokemon_storage/wallpapers/azumarill/bg.png similarity index 100% rename from graphics/pokemon_storage/azumarill_bg.png rename to graphics/pokemon_storage/wallpapers/azumarill/bg.png diff --git a/graphics/pokemon_storage/azumarill.bin b/graphics/pokemon_storage/wallpapers/azumarill/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/azumarill.bin rename to graphics/pokemon_storage/wallpapers/azumarill/tilemap.bin diff --git a/graphics/pokemon_storage/beach_bg.png b/graphics/pokemon_storage/wallpapers/beach/bg.png similarity index 100% rename from graphics/pokemon_storage/beach_bg.png rename to graphics/pokemon_storage/wallpapers/beach/bg.png diff --git a/graphics/pokemon_storage/beach_frame.png b/graphics/pokemon_storage/wallpapers/beach/frame.png similarity index 100% rename from graphics/pokemon_storage/beach_frame.png rename to graphics/pokemon_storage/wallpapers/beach/frame.png diff --git a/graphics/pokemon_storage/beach.bin b/graphics/pokemon_storage/wallpapers/beach/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/beach.bin rename to graphics/pokemon_storage/wallpapers/beach/tilemap.bin diff --git a/graphics/pokemon_storage/blank_bg.png b/graphics/pokemon_storage/wallpapers/blank/bg.png similarity index 100% rename from graphics/pokemon_storage/blank_bg.png rename to graphics/pokemon_storage/wallpapers/blank/bg.png diff --git a/graphics/pokemon_storage/blank.bin b/graphics/pokemon_storage/wallpapers/blank/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/blank.bin rename to graphics/pokemon_storage/wallpapers/blank/tilemap.bin diff --git a/graphics/pokemon_storage/block_bg.png b/graphics/pokemon_storage/wallpapers/block/bg.png similarity index 100% rename from graphics/pokemon_storage/block_bg.png rename to graphics/pokemon_storage/wallpapers/block/bg.png diff --git a/graphics/pokemon_storage/block.bin b/graphics/pokemon_storage/wallpapers/block/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/block.bin rename to graphics/pokemon_storage/wallpapers/block/tilemap.bin diff --git a/graphics/pokemon_storage/cave_bg.png b/graphics/pokemon_storage/wallpapers/cave/bg.png similarity index 100% rename from graphics/pokemon_storage/cave_bg.png rename to graphics/pokemon_storage/wallpapers/cave/bg.png diff --git a/graphics/pokemon_storage/cave_frame.png b/graphics/pokemon_storage/wallpapers/cave/frame.png similarity index 100% rename from graphics/pokemon_storage/cave_frame.png rename to graphics/pokemon_storage/wallpapers/cave/frame.png diff --git a/graphics/pokemon_storage/cave.bin b/graphics/pokemon_storage/wallpapers/cave/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/cave.bin rename to graphics/pokemon_storage/wallpapers/cave/tilemap.bin diff --git a/graphics/pokemon_storage/circles_bg.png b/graphics/pokemon_storage/wallpapers/circles/bg.png similarity index 100% rename from graphics/pokemon_storage/circles_bg.png rename to graphics/pokemon_storage/wallpapers/circles/bg.png diff --git a/graphics/pokemon_storage/circles.bin b/graphics/pokemon_storage/wallpapers/circles/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/circles.bin rename to graphics/pokemon_storage/wallpapers/circles/tilemap.bin diff --git a/graphics/pokemon_storage/city_bg.png b/graphics/pokemon_storage/wallpapers/city/bg.png similarity index 100% rename from graphics/pokemon_storage/city_bg.png rename to graphics/pokemon_storage/wallpapers/city/bg.png diff --git a/graphics/pokemon_storage/city_frame.png b/graphics/pokemon_storage/wallpapers/city/frame.png similarity index 100% rename from graphics/pokemon_storage/city_frame.png rename to graphics/pokemon_storage/wallpapers/city/frame.png diff --git a/graphics/pokemon_storage/city.bin b/graphics/pokemon_storage/wallpapers/city/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/city.bin rename to graphics/pokemon_storage/wallpapers/city/tilemap.bin diff --git a/graphics/pokemon_storage/crag_bg.png b/graphics/pokemon_storage/wallpapers/crag/bg.png similarity index 100% rename from graphics/pokemon_storage/crag_bg.png rename to graphics/pokemon_storage/wallpapers/crag/bg.png diff --git a/graphics/pokemon_storage/crag_frame.png b/graphics/pokemon_storage/wallpapers/crag/frame.png similarity index 100% rename from graphics/pokemon_storage/crag_frame.png rename to graphics/pokemon_storage/wallpapers/crag/frame.png diff --git a/graphics/pokemon_storage/crag.bin b/graphics/pokemon_storage/wallpapers/crag/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/crag.bin rename to graphics/pokemon_storage/wallpapers/crag/tilemap.bin diff --git a/graphics/pokemon_storage/desert_bg.png b/graphics/pokemon_storage/wallpapers/desert/bg.png similarity index 100% rename from graphics/pokemon_storage/desert_bg.png rename to graphics/pokemon_storage/wallpapers/desert/bg.png diff --git a/graphics/pokemon_storage/desert_frame.png b/graphics/pokemon_storage/wallpapers/desert/frame.png similarity index 100% rename from graphics/pokemon_storage/desert_frame.png rename to graphics/pokemon_storage/wallpapers/desert/frame.png diff --git a/graphics/pokemon_storage/desert.bin b/graphics/pokemon_storage/wallpapers/desert/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/desert.bin rename to graphics/pokemon_storage/wallpapers/desert/tilemap.bin diff --git a/graphics/pokemon_storage/diagonal_bg.png b/graphics/pokemon_storage/wallpapers/diagonal/bg.png similarity index 100% rename from graphics/pokemon_storage/diagonal_bg.png rename to graphics/pokemon_storage/wallpapers/diagonal/bg.png diff --git a/graphics/pokemon_storage/diagonal.bin b/graphics/pokemon_storage/wallpapers/diagonal/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/diagonal.bin rename to graphics/pokemon_storage/wallpapers/diagonal/tilemap.bin diff --git a/graphics/pokemon_storage/dusclops_bg.png b/graphics/pokemon_storage/wallpapers/dusclops/bg.png similarity index 100% rename from graphics/pokemon_storage/dusclops_bg.png rename to graphics/pokemon_storage/wallpapers/dusclops/bg.png diff --git a/graphics/pokemon_storage/dusclops.bin b/graphics/pokemon_storage/wallpapers/dusclops/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/dusclops.bin rename to graphics/pokemon_storage/wallpapers/dusclops/tilemap.bin diff --git a/graphics/pokemon_storage/forest_bg.png b/graphics/pokemon_storage/wallpapers/forest/bg.png similarity index 100% rename from graphics/pokemon_storage/forest_bg.png rename to graphics/pokemon_storage/wallpapers/forest/bg.png diff --git a/graphics/pokemon_storage/forest_frame.png b/graphics/pokemon_storage/wallpapers/forest/frame.png similarity index 100% rename from graphics/pokemon_storage/forest_frame.png rename to graphics/pokemon_storage/wallpapers/forest/frame.png diff --git a/graphics/pokemon_storage/forest.bin b/graphics/pokemon_storage/wallpapers/forest/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/forest.bin rename to graphics/pokemon_storage/wallpapers/forest/tilemap.bin diff --git a/graphics/pokemon_storage/frame_bg.png b/graphics/pokemon_storage/wallpapers/frame/bg.png similarity index 100% rename from graphics/pokemon_storage/frame_bg.png rename to graphics/pokemon_storage/wallpapers/frame/bg.png diff --git a/graphics/pokemon_storage/frame.bin b/graphics/pokemon_storage/wallpapers/frame/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/frame.bin rename to graphics/pokemon_storage/wallpapers/frame/tilemap.bin diff --git a/graphics/pokemon_storage/friends_frame1.png b/graphics/pokemon_storage/wallpapers/friends_frame1.png similarity index 100% rename from graphics/pokemon_storage/friends_frame1.png rename to graphics/pokemon_storage/wallpapers/friends_frame1.png diff --git a/graphics/pokemon_storage/friends_frame2.png b/graphics/pokemon_storage/wallpapers/friends_frame2.png similarity index 100% rename from graphics/pokemon_storage/friends_frame2.png rename to graphics/pokemon_storage/wallpapers/friends_frame2.png diff --git a/graphics/pokemon_storage/horizontal_bg.png b/graphics/pokemon_storage/wallpapers/horizontal/bg.png similarity index 100% rename from graphics/pokemon_storage/horizontal_bg.png rename to graphics/pokemon_storage/wallpapers/horizontal/bg.png diff --git a/graphics/pokemon_storage/horizontal.bin b/graphics/pokemon_storage/wallpapers/horizontal/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/horizontal.bin rename to graphics/pokemon_storage/wallpapers/horizontal/tilemap.bin diff --git a/graphics/pokemon_storage/aqua_icon.png b/graphics/pokemon_storage/wallpapers/icons/aqua.png similarity index 100% rename from graphics/pokemon_storage/aqua_icon.png rename to graphics/pokemon_storage/wallpapers/icons/aqua.png diff --git a/graphics/pokemon_storage/asterisk_icon.png b/graphics/pokemon_storage/wallpapers/icons/asterisk.png similarity index 100% rename from graphics/pokemon_storage/asterisk_icon.png rename to graphics/pokemon_storage/wallpapers/icons/asterisk.png diff --git a/graphics/pokemon_storage/big_asterisk_icon.png b/graphics/pokemon_storage/wallpapers/icons/big_asterisk.png similarity index 100% rename from graphics/pokemon_storage/big_asterisk_icon.png rename to graphics/pokemon_storage/wallpapers/icons/big_asterisk.png diff --git a/graphics/pokemon_storage/bolt_icon.png b/graphics/pokemon_storage/wallpapers/icons/bolt.png similarity index 100% rename from graphics/pokemon_storage/bolt_icon.png rename to graphics/pokemon_storage/wallpapers/icons/bolt.png diff --git a/graphics/pokemon_storage/brick_icon.png b/graphics/pokemon_storage/wallpapers/icons/brick.png similarity index 100% rename from graphics/pokemon_storage/brick_icon.png rename to graphics/pokemon_storage/wallpapers/icons/brick.png diff --git a/graphics/pokemon_storage/circle_icon.png b/graphics/pokemon_storage/wallpapers/icons/circle.png similarity index 100% rename from graphics/pokemon_storage/circle_icon.png rename to graphics/pokemon_storage/wallpapers/icons/circle.png diff --git a/graphics/pokemon_storage/cross_icon.png b/graphics/pokemon_storage/wallpapers/icons/cross.png similarity index 100% rename from graphics/pokemon_storage/cross_icon.png rename to graphics/pokemon_storage/wallpapers/icons/cross.png diff --git a/graphics/pokemon_storage/crystal_icon.png b/graphics/pokemon_storage/wallpapers/icons/crystal.png similarity index 100% rename from graphics/pokemon_storage/crystal_icon.png rename to graphics/pokemon_storage/wallpapers/icons/crystal.png diff --git a/graphics/pokemon_storage/diglett_icon.png b/graphics/pokemon_storage/wallpapers/icons/diglett.png similarity index 100% rename from graphics/pokemon_storage/diglett_icon.png rename to graphics/pokemon_storage/wallpapers/icons/diglett.png diff --git a/graphics/pokemon_storage/dot_icon.png b/graphics/pokemon_storage/wallpapers/icons/dot.png similarity index 100% rename from graphics/pokemon_storage/dot_icon.png rename to graphics/pokemon_storage/wallpapers/icons/dot.png diff --git a/graphics/pokemon_storage/five_star_icon.png b/graphics/pokemon_storage/wallpapers/icons/five_star.png similarity index 100% rename from graphics/pokemon_storage/five_star_icon.png rename to graphics/pokemon_storage/wallpapers/icons/five_star.png diff --git a/graphics/pokemon_storage/footprint_icon.png b/graphics/pokemon_storage/wallpapers/icons/footprint.png similarity index 100% rename from graphics/pokemon_storage/footprint_icon.png rename to graphics/pokemon_storage/wallpapers/icons/footprint.png diff --git a/graphics/pokemon_storage/four_circles_icon.png b/graphics/pokemon_storage/wallpapers/icons/four_circles.png similarity index 100% rename from graphics/pokemon_storage/four_circles_icon.png rename to graphics/pokemon_storage/wallpapers/icons/four_circles.png diff --git a/graphics/pokemon_storage/four_star_icon.png b/graphics/pokemon_storage/wallpapers/icons/four_star.png similarity index 100% rename from graphics/pokemon_storage/four_star_icon.png rename to graphics/pokemon_storage/wallpapers/icons/four_star.png diff --git a/graphics/pokemon_storage/heart_icon.png b/graphics/pokemon_storage/wallpapers/icons/heart.png similarity index 100% rename from graphics/pokemon_storage/heart_icon.png rename to graphics/pokemon_storage/wallpapers/icons/heart.png diff --git a/graphics/pokemon_storage/koffing_icon.png b/graphics/pokemon_storage/wallpapers/icons/koffing.png similarity index 100% rename from graphics/pokemon_storage/koffing_icon.png rename to graphics/pokemon_storage/wallpapers/icons/koffing.png diff --git a/graphics/pokemon_storage/latis_icon.png b/graphics/pokemon_storage/wallpapers/icons/latis.png similarity index 100% rename from graphics/pokemon_storage/latis_icon.png rename to graphics/pokemon_storage/wallpapers/icons/latis.png diff --git a/graphics/pokemon_storage/line_circle_icon.png b/graphics/pokemon_storage/wallpapers/icons/line_circle.png similarity index 100% rename from graphics/pokemon_storage/line_circle_icon.png rename to graphics/pokemon_storage/wallpapers/icons/line_circle.png diff --git a/graphics/pokemon_storage/lotad_icon.png b/graphics/pokemon_storage/wallpapers/icons/lotad.png similarity index 100% rename from graphics/pokemon_storage/lotad_icon.png rename to graphics/pokemon_storage/wallpapers/icons/lotad.png diff --git a/graphics/pokemon_storage/luvdisc_icon.png b/graphics/pokemon_storage/wallpapers/icons/luvdisc.png similarity index 100% rename from graphics/pokemon_storage/luvdisc_icon.png rename to graphics/pokemon_storage/wallpapers/icons/luvdisc.png diff --git a/graphics/pokemon_storage/magma_icon.png b/graphics/pokemon_storage/wallpapers/icons/magma.png similarity index 100% rename from graphics/pokemon_storage/magma_icon.png rename to graphics/pokemon_storage/wallpapers/icons/magma.png diff --git a/graphics/pokemon_storage/maze_icon.png b/graphics/pokemon_storage/wallpapers/icons/maze.png similarity index 100% rename from graphics/pokemon_storage/maze_icon.png rename to graphics/pokemon_storage/wallpapers/icons/maze.png diff --git a/graphics/pokemon_storage/minun_icon.png b/graphics/pokemon_storage/wallpapers/icons/minun.png similarity index 100% rename from graphics/pokemon_storage/minun_icon.png rename to graphics/pokemon_storage/wallpapers/icons/minun.png diff --git a/graphics/pokemon_storage/pichu_icon.png b/graphics/pokemon_storage/wallpapers/icons/pichu.png similarity index 100% rename from graphics/pokemon_storage/pichu_icon.png rename to graphics/pokemon_storage/wallpapers/icons/pichu.png diff --git a/graphics/pokemon_storage/plusle_icon.png b/graphics/pokemon_storage/wallpapers/icons/plusle.png similarity index 100% rename from graphics/pokemon_storage/plusle_icon.png rename to graphics/pokemon_storage/wallpapers/icons/plusle.png diff --git a/graphics/pokemon_storage/pokeball_icon.png b/graphics/pokemon_storage/wallpapers/icons/pokeball.png similarity index 100% rename from graphics/pokemon_storage/pokeball_icon.png rename to graphics/pokemon_storage/wallpapers/icons/pokeball.png diff --git a/graphics/pokemon_storage/ribbon_icon.png b/graphics/pokemon_storage/wallpapers/icons/ribbon.png similarity index 100% rename from graphics/pokemon_storage/ribbon_icon.png rename to graphics/pokemon_storage/wallpapers/icons/ribbon.png diff --git a/graphics/pokemon_storage/spinda_icon.png b/graphics/pokemon_storage/wallpapers/icons/spinda.png similarity index 100% rename from graphics/pokemon_storage/spinda_icon.png rename to graphics/pokemon_storage/wallpapers/icons/spinda.png diff --git a/graphics/pokemon_storage/star_in_circle_icon.png b/graphics/pokemon_storage/wallpapers/icons/star_in_circle.png similarity index 100% rename from graphics/pokemon_storage/star_in_circle_icon.png rename to graphics/pokemon_storage/wallpapers/icons/star_in_circle.png diff --git a/graphics/pokemon_storage/togepi_icon.png b/graphics/pokemon_storage/wallpapers/icons/togepi.png similarity index 100% rename from graphics/pokemon_storage/togepi_icon.png rename to graphics/pokemon_storage/wallpapers/icons/togepi.png diff --git a/graphics/pokemon_storage/legendary_bg.png b/graphics/pokemon_storage/wallpapers/legendary/bg.png similarity index 100% rename from graphics/pokemon_storage/legendary_bg.png rename to graphics/pokemon_storage/wallpapers/legendary/bg.png diff --git a/graphics/pokemon_storage/legendary.bin b/graphics/pokemon_storage/wallpapers/legendary/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/legendary.bin rename to graphics/pokemon_storage/wallpapers/legendary/tilemap.bin diff --git a/graphics/pokemon_storage/ludicolo_bg.png b/graphics/pokemon_storage/wallpapers/ludicolo/bg.png similarity index 100% rename from graphics/pokemon_storage/ludicolo_bg.png rename to graphics/pokemon_storage/wallpapers/ludicolo/bg.png diff --git a/graphics/pokemon_storage/ludicolo.bin b/graphics/pokemon_storage/wallpapers/ludicolo/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/ludicolo.bin rename to graphics/pokemon_storage/wallpapers/ludicolo/tilemap.bin diff --git a/graphics/pokemon_storage/machine_bg.png b/graphics/pokemon_storage/wallpapers/machine/bg.png similarity index 100% rename from graphics/pokemon_storage/machine_bg.png rename to graphics/pokemon_storage/wallpapers/machine/bg.png diff --git a/graphics/pokemon_storage/machine_frame.png b/graphics/pokemon_storage/wallpapers/machine/frame.png similarity index 100% rename from graphics/pokemon_storage/machine_frame.png rename to graphics/pokemon_storage/wallpapers/machine/frame.png diff --git a/graphics/pokemon_storage/machine.bin b/graphics/pokemon_storage/wallpapers/machine/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/machine.bin rename to graphics/pokemon_storage/wallpapers/machine/tilemap.bin diff --git a/graphics/pokemon_storage/pikachu_bg.png b/graphics/pokemon_storage/wallpapers/pikachu/bg.png similarity index 100% rename from graphics/pokemon_storage/pikachu_bg.png rename to graphics/pokemon_storage/wallpapers/pikachu/bg.png diff --git a/graphics/pokemon_storage/pikachu.bin b/graphics/pokemon_storage/wallpapers/pikachu/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/pikachu.bin rename to graphics/pokemon_storage/wallpapers/pikachu/tilemap.bin diff --git a/graphics/pokemon_storage/plain_bg.png b/graphics/pokemon_storage/wallpapers/plain/bg.png similarity index 100% rename from graphics/pokemon_storage/plain_bg.png rename to graphics/pokemon_storage/wallpapers/plain/bg.png diff --git a/graphics/pokemon_storage/plain_frame.png b/graphics/pokemon_storage/wallpapers/plain/frame.png similarity index 100% rename from graphics/pokemon_storage/plain_frame.png rename to graphics/pokemon_storage/wallpapers/plain/frame.png diff --git a/graphics/pokemon_storage/plain.bin b/graphics/pokemon_storage/wallpapers/plain/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/plain.bin rename to graphics/pokemon_storage/wallpapers/plain/tilemap.bin diff --git a/graphics/pokemon_storage/pokecenter_bg.png b/graphics/pokemon_storage/wallpapers/pokecenter/bg.png similarity index 100% rename from graphics/pokemon_storage/pokecenter_bg.png rename to graphics/pokemon_storage/wallpapers/pokecenter/bg.png diff --git a/graphics/pokemon_storage/pokecenter_frame.png b/graphics/pokemon_storage/wallpapers/pokecenter/frame.png similarity index 100% rename from graphics/pokemon_storage/pokecenter_frame.png rename to graphics/pokemon_storage/wallpapers/pokecenter/frame.png diff --git a/graphics/pokemon_storage/pokecenter.bin b/graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/pokecenter.bin rename to graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin diff --git a/graphics/pokemon_storage/pokecenter2_bg.png b/graphics/pokemon_storage/wallpapers/pokecenter2/bg.png similarity index 100% rename from graphics/pokemon_storage/pokecenter2_bg.png rename to graphics/pokemon_storage/wallpapers/pokecenter2/bg.png diff --git a/graphics/pokemon_storage/pokecenter2.bin b/graphics/pokemon_storage/wallpapers/pokecenter2/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/pokecenter2.bin rename to graphics/pokemon_storage/wallpapers/pokecenter2/tilemap.bin diff --git a/graphics/pokemon_storage/polkadot_bg.png b/graphics/pokemon_storage/wallpapers/polkadot/bg.png similarity index 100% rename from graphics/pokemon_storage/polkadot_bg.png rename to graphics/pokemon_storage/wallpapers/polkadot/bg.png diff --git a/graphics/pokemon_storage/polkadot_frame.png b/graphics/pokemon_storage/wallpapers/polkadot/frame.png similarity index 100% rename from graphics/pokemon_storage/polkadot_frame.png rename to graphics/pokemon_storage/wallpapers/polkadot/frame.png diff --git a/graphics/pokemon_storage/polkadot.bin b/graphics/pokemon_storage/wallpapers/polkadot/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/polkadot.bin rename to graphics/pokemon_storage/wallpapers/polkadot/tilemap.bin diff --git a/graphics/pokemon_storage/ribbon_bg.png b/graphics/pokemon_storage/wallpapers/ribbon/bg.png similarity index 100% rename from graphics/pokemon_storage/ribbon_bg.png rename to graphics/pokemon_storage/wallpapers/ribbon/bg.png diff --git a/graphics/pokemon_storage/ribbon_frame.pal b/graphics/pokemon_storage/wallpapers/ribbon/frame.pal similarity index 100% rename from graphics/pokemon_storage/ribbon_frame.pal rename to graphics/pokemon_storage/wallpapers/ribbon/frame.pal diff --git a/graphics/pokemon_storage/ribbon.bin b/graphics/pokemon_storage/wallpapers/ribbon/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/ribbon.bin rename to graphics/pokemon_storage/wallpapers/ribbon/tilemap.bin diff --git a/graphics/pokemon_storage/river_bg.png b/graphics/pokemon_storage/wallpapers/river/bg.png similarity index 100% rename from graphics/pokemon_storage/river_bg.png rename to graphics/pokemon_storage/wallpapers/river/bg.png diff --git a/graphics/pokemon_storage/river_frame.png b/graphics/pokemon_storage/wallpapers/river/frame.png similarity index 100% rename from graphics/pokemon_storage/river_frame.png rename to graphics/pokemon_storage/wallpapers/river/frame.png diff --git a/graphics/pokemon_storage/river.bin b/graphics/pokemon_storage/wallpapers/river/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/river.bin rename to graphics/pokemon_storage/wallpapers/river/tilemap.bin diff --git a/graphics/pokemon_storage/savanna_bg.png b/graphics/pokemon_storage/wallpapers/savanna/bg.png similarity index 100% rename from graphics/pokemon_storage/savanna_bg.png rename to graphics/pokemon_storage/wallpapers/savanna/bg.png diff --git a/graphics/pokemon_storage/savanna_frame.png b/graphics/pokemon_storage/wallpapers/savanna/frame.png similarity index 100% rename from graphics/pokemon_storage/savanna_frame.png rename to graphics/pokemon_storage/wallpapers/savanna/frame.png diff --git a/graphics/pokemon_storage/savanna.bin b/graphics/pokemon_storage/wallpapers/savanna/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/savanna.bin rename to graphics/pokemon_storage/wallpapers/savanna/tilemap.bin diff --git a/graphics/pokemon_storage/screen_bg.png b/graphics/pokemon_storage/wallpapers/screen/bg.png similarity index 100% rename from graphics/pokemon_storage/screen_bg.png rename to graphics/pokemon_storage/wallpapers/screen/bg.png diff --git a/graphics/pokemon_storage/screen.bin b/graphics/pokemon_storage/wallpapers/screen/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/screen.bin rename to graphics/pokemon_storage/wallpapers/screen/tilemap.bin diff --git a/graphics/pokemon_storage/seafloor_bg.png b/graphics/pokemon_storage/wallpapers/seafloor/bg.png similarity index 100% rename from graphics/pokemon_storage/seafloor_bg.png rename to graphics/pokemon_storage/wallpapers/seafloor/bg.png diff --git a/graphics/pokemon_storage/seafloor_frame.png b/graphics/pokemon_storage/wallpapers/seafloor/frame.png similarity index 100% rename from graphics/pokemon_storage/seafloor_frame.png rename to graphics/pokemon_storage/wallpapers/seafloor/frame.png diff --git a/graphics/pokemon_storage/seafloor.bin b/graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/seafloor.bin rename to graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin diff --git a/graphics/pokemon_storage/sky_bg.png b/graphics/pokemon_storage/wallpapers/sky/bg.png similarity index 100% rename from graphics/pokemon_storage/sky_bg.png rename to graphics/pokemon_storage/wallpapers/sky/bg.png diff --git a/graphics/pokemon_storage/sky_frame.png b/graphics/pokemon_storage/wallpapers/sky/frame.png similarity index 100% rename from graphics/pokemon_storage/sky_frame.png rename to graphics/pokemon_storage/wallpapers/sky/frame.png diff --git a/graphics/pokemon_storage/sky.bin b/graphics/pokemon_storage/wallpapers/sky/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/sky.bin rename to graphics/pokemon_storage/wallpapers/sky/tilemap.bin diff --git a/graphics/pokemon_storage/snow_bg.png b/graphics/pokemon_storage/wallpapers/snow/bg.png similarity index 100% rename from graphics/pokemon_storage/snow_bg.png rename to graphics/pokemon_storage/wallpapers/snow/bg.png diff --git a/graphics/pokemon_storage/snow_frame.png b/graphics/pokemon_storage/wallpapers/snow/frame.png similarity index 100% rename from graphics/pokemon_storage/snow_frame.png rename to graphics/pokemon_storage/wallpapers/snow/frame.png diff --git a/graphics/pokemon_storage/snow.bin b/graphics/pokemon_storage/wallpapers/snow/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/snow.bin rename to graphics/pokemon_storage/wallpapers/snow/tilemap.bin diff --git a/graphics/unused/tilemap_5773C4.bin b/graphics/pokemon_storage/wallpapers/unused.bin similarity index 100% rename from graphics/unused/tilemap_5773C4.bin rename to graphics/pokemon_storage/wallpapers/unused.bin diff --git a/graphics/pokemon_storage/volcano_bg.png b/graphics/pokemon_storage/wallpapers/volcano/bg.png similarity index 100% rename from graphics/pokemon_storage/volcano_bg.png rename to graphics/pokemon_storage/wallpapers/volcano/bg.png diff --git a/graphics/pokemon_storage/volcano_frame.png b/graphics/pokemon_storage/wallpapers/volcano/frame.png similarity index 100% rename from graphics/pokemon_storage/volcano_frame.png rename to graphics/pokemon_storage/wallpapers/volcano/frame.png diff --git a/graphics/pokemon_storage/volcano.bin b/graphics/pokemon_storage/wallpapers/volcano/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/volcano.bin rename to graphics/pokemon_storage/wallpapers/volcano/tilemap.bin diff --git a/graphics/pokemon_storage/whiscash_bg.png b/graphics/pokemon_storage/wallpapers/whiscash/bg.png similarity index 100% rename from graphics/pokemon_storage/whiscash_bg.png rename to graphics/pokemon_storage/wallpapers/whiscash/bg.png diff --git a/graphics/pokemon_storage/whiscash.bin b/graphics/pokemon_storage/wallpapers/whiscash/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/whiscash.bin rename to graphics/pokemon_storage/wallpapers/whiscash/tilemap.bin diff --git a/graphics/pokemon_storage/zigzagoon_bg.png b/graphics/pokemon_storage/wallpapers/zigzagoon/bg.png similarity index 100% rename from graphics/pokemon_storage/zigzagoon_bg.png rename to graphics/pokemon_storage/wallpapers/zigzagoon/bg.png diff --git a/graphics/pokemon_storage/zigzagoon.bin b/graphics/pokemon_storage/wallpapers/zigzagoon/tilemap.bin similarity index 100% rename from graphics/pokemon_storage/zigzagoon.bin rename to graphics/pokemon_storage/wallpapers/zigzagoon/tilemap.bin diff --git a/graphics/pokenav/match_call_window.png b/graphics/pokenav/match_call_window.png new file mode 100644 index 0000000000..0541bf1476 Binary files /dev/null and b/graphics/pokenav/match_call_window.png differ diff --git a/graphics/pokenav/ribbons_icon.png b/graphics/pokenav/ribbons/icons.png similarity index 100% rename from graphics/pokenav/ribbons_icon.png rename to graphics/pokenav/ribbons/icons.png diff --git a/graphics/pokenav/ribbons_icon1.pal b/graphics/pokenav/ribbons/icons1.pal similarity index 100% rename from graphics/pokenav/ribbons_icon1.pal rename to graphics/pokenav/ribbons/icons1.pal diff --git a/graphics/pokenav/ribbons_icon2.pal b/graphics/pokenav/ribbons/icons2.pal similarity index 100% rename from graphics/pokenav/ribbons_icon2.pal rename to graphics/pokenav/ribbons/icons2.pal diff --git a/graphics/pokenav/ribbons_icon3.pal b/graphics/pokenav/ribbons/icons3.pal similarity index 100% rename from graphics/pokenav/ribbons_icon3.pal rename to graphics/pokenav/ribbons/icons3.pal diff --git a/graphics/pokenav/ribbons_icon4.pal b/graphics/pokenav/ribbons/icons4.pal similarity index 100% rename from graphics/pokenav/ribbons_icon4.pal rename to graphics/pokenav/ribbons/icons4.pal diff --git a/graphics/pokenav/ribbons_icon5.pal b/graphics/pokenav/ribbons/icons5.pal similarity index 100% rename from graphics/pokenav/ribbons_icon5.pal rename to graphics/pokenav/ribbons/icons5.pal diff --git a/graphics/pokenav/ribbons_icon_big.png b/graphics/pokenav/ribbons/icons_big.png similarity index 100% rename from graphics/pokenav/ribbons_icon_big.png rename to graphics/pokenav/ribbons/icons_big.png diff --git a/graphics/pokenav/ui_ribbons.bin b/graphics/pokenav/ribbons/list_bg.bin similarity index 100% rename from graphics/pokenav/ui_ribbons.bin rename to graphics/pokenav/ribbons/list_bg.bin diff --git a/graphics/pokenav/ui_ribbons.png b/graphics/pokenav/ribbons/list_bg.png similarity index 100% rename from graphics/pokenav/ui_ribbons.png rename to graphics/pokenav/ribbons/list_bg.png diff --git a/graphics/pokenav/8623790.pal b/graphics/pokenav/ribbons/list_ui.pal similarity index 100% rename from graphics/pokenav/8623790.pal rename to graphics/pokenav/ribbons/list_ui.pal diff --git a/graphics/pokenav/8624098.pal b/graphics/pokenav/ribbons/mon_info.pal similarity index 100% rename from graphics/pokenav/8624098.pal rename to graphics/pokenav/ribbons/mon_info.pal diff --git a/graphics/pokenav/ribbons.bin b/graphics/pokenav/ribbons/summary_bg.bin similarity index 100% rename from graphics/pokenav/ribbons.bin rename to graphics/pokenav/ribbons/summary_bg.bin diff --git a/graphics/pokenav/ribbons.png b/graphics/pokenav/ribbons/summary_bg.png similarity index 100% rename from graphics/pokenav/ribbons.png rename to graphics/pokenav/ribbons/summary_bg.png diff --git a/graphics/misc/reset_rtc_screen_arrow.pal b/graphics/reset_rtc_screen/arrow.pal similarity index 100% rename from graphics/misc/reset_rtc_screen_arrow.pal rename to graphics/reset_rtc_screen/arrow.pal diff --git a/graphics/misc/reset_rtc_screen_downarrow.png b/graphics/reset_rtc_screen/arrow_down.png similarity index 100% rename from graphics/misc/reset_rtc_screen_downarrow.png rename to graphics/reset_rtc_screen/arrow_down.png diff --git a/graphics/misc/reset_rtc_screen_rightarrow.png b/graphics/reset_rtc_screen/arrow_right.png similarity index 100% rename from graphics/misc/reset_rtc_screen_rightarrow.png rename to graphics/reset_rtc_screen/arrow_right.png diff --git a/graphics/trade/cable_closeup_map.bin b/graphics/trade/crossing_highlight_cable.bin similarity index 100% rename from graphics/trade/cable_closeup_map.bin rename to graphics/trade/crossing_highlight_cable.bin diff --git a/graphics/trade/unknown_3379A0.bin b/graphics/trade/crossing_highlight_wireless.bin similarity index 100% rename from graphics/trade/unknown_3379A0.bin rename to graphics/trade/crossing_highlight_wireless.bin diff --git a/graphics/trade/unknown_DDB444.pal b/graphics/trade/cursor.pal similarity index 100% rename from graphics/trade/unknown_DDB444.pal rename to graphics/trade/cursor.pal diff --git a/graphics/trade/buttons.png b/graphics/trade/cursor.png similarity index 100% rename from graphics/trade/buttons.png rename to graphics/trade/cursor.png diff --git a/graphics/trade/misc.pal b/graphics/trade/link_mon.pal similarity index 100% rename from graphics/trade/misc.pal rename to graphics/trade/link_mon.pal diff --git a/graphics/trade/glow1.png b/graphics/trade/link_mon_glow.png similarity index 100% rename from graphics/trade/glow1.png rename to graphics/trade/link_mon_glow.png diff --git a/graphics/trade/unknown_338EA4.pal b/graphics/trade/link_mon_shadow.pal similarity index 100% rename from graphics/trade/unknown_338EA4.pal rename to graphics/trade/link_mon_shadow.pal diff --git a/graphics/trade/glow2.png b/graphics/trade/link_mon_shadow.png similarity index 100% rename from graphics/trade/glow2.png rename to graphics/trade/link_mon_shadow.png diff --git a/graphics/trade/shadow_map.bin b/graphics/trade/platform.bin similarity index 100% rename from graphics/trade/shadow_map.bin rename to graphics/trade/platform.bin diff --git a/graphics/trade/unknown_3308C0.pal b/graphics/trade/unused1.pal similarity index 100% rename from graphics/trade/unknown_3308C0.pal rename to graphics/trade/unused1.pal diff --git a/graphics/trade/shadow.pal b/graphics/trade/unused2.pal similarity index 100% rename from graphics/trade/shadow.pal rename to graphics/trade/unused2.pal diff --git a/graphics/trade/black.pal b/graphics/trade/wireless_signal_none.pal similarity index 100% rename from graphics/trade/black.pal rename to graphics/trade/wireless_signal_none.pal diff --git a/graphics/trainer_card/unknown_56F18C.pal b/graphics/trainer_card/unused.pal similarity index 100% rename from graphics/trainer_card/unknown_56F18C.pal rename to graphics/trainer_card/unused.pal diff --git a/graphics/unknown/unknown_60EA4C.pal b/graphics/unknown/unknown_60EA4C.pal deleted file mode 100644 index 87bb7840e2..0000000000 --- a/graphics/unknown/unknown_60EA4C.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -0 0 0 -197 197 205 -32 222 148 -106 238 180 -180 255 213 -213 197 255 -238 230 255 -255 189 180 -255 222 213 -189 148 0 -238 238 230 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/unknown/unknown_60F1BC.png b/graphics/unknown/unknown_60F1BC.png deleted file mode 100644 index 185b93d57c..0000000000 Binary files a/graphics/unknown/unknown_60F1BC.png and /dev/null differ diff --git a/graphics/unknown/unknown_60F3BC.png b/graphics/unknown/unknown_60F3BC.png deleted file mode 100644 index 3114f2eb89..0000000000 Binary files a/graphics/unknown/unknown_60F3BC.png and /dev/null differ diff --git a/graphics/unknown/unknown_60F43C.png b/graphics/unknown/unknown_60F43C.png deleted file mode 100644 index 3c2c1d5cde..0000000000 Binary files a/graphics/unknown/unknown_60F43C.png and /dev/null differ diff --git a/graphics/unknown/unknown_60F53C.png b/graphics/unknown/unknown_60F53C.png deleted file mode 100644 index 65450c7b33..0000000000 Binary files a/graphics/unknown/unknown_60F53C.png and /dev/null differ diff --git a/graphics/unknown/unknown_60F63C.png b/graphics/unknown/unknown_60F63C.png deleted file mode 100644 index 01fcea2fa7..0000000000 Binary files a/graphics/unknown/unknown_60F63C.png and /dev/null differ diff --git a/graphics/unknown/unknown_60F6BC.png b/graphics/unknown/unknown_60F6BC.png deleted file mode 100644 index bda46587fc..0000000000 Binary files a/graphics/unknown/unknown_60F6BC.png and /dev/null differ diff --git a/graphics/unknown/unknown_60F7BC.png b/graphics/unknown/unknown_60F7BC.png deleted file mode 100644 index 487b428bdb..0000000000 Binary files a/graphics/unknown/unknown_60F7BC.png and /dev/null differ diff --git a/graphics/unknown/unknown_60F83C.png b/graphics/unknown/unknown_60F83C.png deleted file mode 100644 index 2a44e94557..0000000000 Binary files a/graphics/unknown/unknown_60F83C.png and /dev/null differ diff --git a/graphics/unknown/unknown_60F93C.png b/graphics/unknown/unknown_60F93C.png deleted file mode 100644 index 2a44e94557..0000000000 Binary files a/graphics/unknown/unknown_60F93C.png and /dev/null differ diff --git a/graphics/unknown/unknown_60FA3C.png b/graphics/unknown/unknown_60FA3C.png deleted file mode 100644 index c4ae096d0a..0000000000 Binary files a/graphics/unknown/unknown_60FA3C.png and /dev/null differ diff --git a/graphics/unknown/unknown_61033C.png b/graphics/unknown/unknown_61033C.png deleted file mode 100644 index ec874f98c3..0000000000 Binary files a/graphics/unknown/unknown_61033C.png and /dev/null differ diff --git a/graphics/unknown/unknown_61039C.pal b/graphics/unknown/unknown_61039C.pal deleted file mode 100644 index 89f527ce4d..0000000000 --- a/graphics/unknown/unknown_61039C.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 -213 255 238 diff --git a/graphics/weather/0.pal b/graphics/weather/fog.pal similarity index 100% rename from graphics/weather/0.pal rename to graphics/weather/fog.pal diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index d162ccbb6d..fe16705ae3 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -14,7 +14,7 @@ ROULETTEGFXDIR := graphics/roulette SLOTMACHINEGFXDIR := graphics/slot_machine PKNAVGFXDIR := graphics/pokenav PKNAVOPTIONSGFXDIR := graphics/pokenav/options -PSSGFXDIR := graphics/pokemon_storage +WALLPAPERGFXDIR := graphics/pokemon_storage/wallpapers OBJEVENTGFXDIR := graphics/object_events MISCGFXDIR := graphics/misc @@ -346,7 +346,7 @@ $(FONTGFXDIR)/keypad_icons.4bpp: %.4bpp: %.png graphics/title_screen/pokemon_logo.gbapal: %.gbapal: %.pal $(GFX) $< $@ -num_colors 224 -graphics/link_games/pkmnjump_bg.4bpp: %.4bpp: %.png +graphics/pokemon_jump/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 63 graphics/pokenav/region_map.8bpp: %.8bpp: %.png @@ -437,7 +437,7 @@ $(BTLANMSPRGFXDIR)/spark.4bpp: $(BTLANMSPRGFXDIR)/spark_0.4bpp \ $(BTLANMSPRGFXDIR)/spark_1.4bpp @cat $^ >$@ -$(MASKSGFXDIR)/unknown_C2EA50.4bpp: %.4bpp: %.png +$(MASKSGFXDIR)/unused_level_up.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 14 $(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png @@ -476,7 +476,7 @@ $(RAYQUAZAGFXDIR)/scene_4/streaks.4bpp: %.4bpp: %.png $(RAYQUAZAGFXDIR)/scene_4/rayquaza.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 155 -graphics/picture_frame/frame5.4bpp: %.4bpp: %.png +graphics/picture_frame/lobby.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 86 $(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \ @@ -502,7 +502,7 @@ $(BATTRANSGFXDIR)/frontier_square_1.4bpp: $(BATTRANSGFXDIR)/frontier_squares_bla $(BATTRANSGFXDIR)/frontier_square_2.4bpp: $(BATTRANSGFXDIR)/frontier_squares_blanktiles.4bpp \ $(BATTRANSGFXDIR)/frontier_squares_2.4bpp @cat $^ >$@ - + $(BATTRANSGFXDIR)/frontier_square_3.4bpp: $(BATTRANSGFXDIR)/frontier_squares_blanktiles.4bpp \ $(BATTRANSGFXDIR)/frontier_squares_3.4bpp @cat $^ >$@ @@ -520,162 +520,162 @@ $(UNUSEDGFXDIR)/intro_birch_beauty.4bpp: %.4bpp: %.png -### PSS ### +### Pokémon Storage System ### -$(PSSGFXDIR)/forest_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/forest/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 55 -$(PSSGFXDIR)/forest.4bpp: $(PSSGFXDIR)/forest_frame.4bpp $(PSSGFXDIR)/forest_bg.4bpp +$(WALLPAPERGFXDIR)/forest/tiles.4bpp: $(WALLPAPERGFXDIR)/forest/frame.4bpp $(WALLPAPERGFXDIR)/forest/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/city_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/city/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 52 -$(PSSGFXDIR)/city.4bpp: $(PSSGFXDIR)/city_frame.4bpp $(PSSGFXDIR)/city_bg.4bpp +$(WALLPAPERGFXDIR)/city/tiles.4bpp: $(WALLPAPERGFXDIR)/city/frame.4bpp $(WALLPAPERGFXDIR)/city/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/desert.4bpp: $(PSSGFXDIR)/desert_frame.4bpp $(PSSGFXDIR)/desert_bg.4bpp +$(WALLPAPERGFXDIR)/desert/tiles.4bpp: $(WALLPAPERGFXDIR)/desert/frame.4bpp $(WALLPAPERGFXDIR)/desert/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/savanna_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/savanna/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 45 -$(PSSGFXDIR)/savanna_bg.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/savanna/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 23 -$(PSSGFXDIR)/savanna.4bpp: $(PSSGFXDIR)/savanna_frame.4bpp $(PSSGFXDIR)/savanna_bg.4bpp +$(WALLPAPERGFXDIR)/savanna/tiles.4bpp: $(WALLPAPERGFXDIR)/savanna/frame.4bpp $(WALLPAPERGFXDIR)/savanna/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/crag_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/crag/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 49 -$(PSSGFXDIR)/crag.4bpp: $(PSSGFXDIR)/crag_frame.4bpp $(PSSGFXDIR)/crag_bg.4bpp +$(WALLPAPERGFXDIR)/crag/tiles.4bpp: $(WALLPAPERGFXDIR)/crag/frame.4bpp $(WALLPAPERGFXDIR)/crag/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/volcano_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/volcano/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 56 -$(PSSGFXDIR)/volcano.4bpp: $(PSSGFXDIR)/volcano_frame.4bpp $(PSSGFXDIR)/volcano_bg.4bpp +$(WALLPAPERGFXDIR)/volcano/tiles.4bpp: $(WALLPAPERGFXDIR)/volcano/frame.4bpp $(WALLPAPERGFXDIR)/volcano/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/snow_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/snow/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 57 -$(PSSGFXDIR)/snow.4bpp: $(PSSGFXDIR)/snow_frame.4bpp $(PSSGFXDIR)/snow_bg.4bpp +$(WALLPAPERGFXDIR)/snow/tiles.4bpp: $(WALLPAPERGFXDIR)/snow/frame.4bpp $(WALLPAPERGFXDIR)/snow/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/cave_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/cave/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 55 -$(PSSGFXDIR)/cave.4bpp: $(PSSGFXDIR)/cave_frame.4bpp $(PSSGFXDIR)/cave_bg.4bpp +$(WALLPAPERGFXDIR)/cave/tiles.4bpp: $(WALLPAPERGFXDIR)/cave/frame.4bpp $(WALLPAPERGFXDIR)/cave/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/beach_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/beach/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 46 -$(PSSGFXDIR)/beach_bg.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/beach/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 23 -$(PSSGFXDIR)/beach.4bpp: $(PSSGFXDIR)/beach_frame.4bpp $(PSSGFXDIR)/beach_bg.4bpp +$(WALLPAPERGFXDIR)/beach/tiles.4bpp: $(WALLPAPERGFXDIR)/beach/frame.4bpp $(WALLPAPERGFXDIR)/beach/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/seafloor_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/seafloor/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 54 -$(PSSGFXDIR)/seafloor.4bpp: $(PSSGFXDIR)/seafloor_frame.4bpp $(PSSGFXDIR)/seafloor_bg.4bpp +$(WALLPAPERGFXDIR)/seafloor/tiles.4bpp: $(WALLPAPERGFXDIR)/seafloor/frame.4bpp $(WALLPAPERGFXDIR)/seafloor/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/river_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/river/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 51 -$(PSSGFXDIR)/river_bg.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/river/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 11 -$(PSSGFXDIR)/river.4bpp: $(PSSGFXDIR)/river_frame.4bpp $(PSSGFXDIR)/river_bg.4bpp +$(WALLPAPERGFXDIR)/river/tiles.4bpp: $(WALLPAPERGFXDIR)/river/frame.4bpp $(WALLPAPERGFXDIR)/river/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/sky_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/sky/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 45 -$(PSSGFXDIR)/sky.4bpp: $(PSSGFXDIR)/sky_frame.4bpp $(PSSGFXDIR)/sky_bg.4bpp +$(WALLPAPERGFXDIR)/sky/tiles.4bpp: $(WALLPAPERGFXDIR)/sky/frame.4bpp $(WALLPAPERGFXDIR)/sky/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/polkadot_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/polkadot/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 54 -$(PSSGFXDIR)/polkadot.4bpp: $(PSSGFXDIR)/polkadot_frame.4bpp $(PSSGFXDIR)/polkadot_bg.4bpp +$(WALLPAPERGFXDIR)/polkadot/tiles.4bpp: $(WALLPAPERGFXDIR)/polkadot/frame.4bpp $(WALLPAPERGFXDIR)/polkadot/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/pokecenter_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/pokecenter/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 35 -$(PSSGFXDIR)/pokecenter.4bpp: $(PSSGFXDIR)/pokecenter_frame.4bpp $(PSSGFXDIR)/pokecenter_bg.4bpp +$(WALLPAPERGFXDIR)/pokecenter/tiles.4bpp: $(WALLPAPERGFXDIR)/pokecenter/frame.4bpp $(WALLPAPERGFXDIR)/pokecenter/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/machine_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/machine/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 33 -$(PSSGFXDIR)/machine.4bpp: $(PSSGFXDIR)/machine_frame.4bpp $(PSSGFXDIR)/machine_bg.4bpp +$(WALLPAPERGFXDIR)/machine/tiles.4bpp: $(WALLPAPERGFXDIR)/machine/frame.4bpp $(WALLPAPERGFXDIR)/machine/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/plain_frame.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/plain/frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 18 -$(PSSGFXDIR)/plain.4bpp: $(PSSGFXDIR)/plain_frame.4bpp $(PSSGFXDIR)/plain_bg.4bpp +$(WALLPAPERGFXDIR)/plain/tiles.4bpp: $(WALLPAPERGFXDIR)/plain/frame.4bpp $(WALLPAPERGFXDIR)/plain/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/friends_frame1.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/friends_frame1.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 57 -$(PSSGFXDIR)/friends_frame2.4bpp: %.4bpp: %.png +$(WALLPAPERGFXDIR)/friends_frame2.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 57 -$(PSSGFXDIR)/zigzagoon.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/zigzagoon_bg.4bpp +$(WALLPAPERGFXDIR)/zigzagoon/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/zigzagoon/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/screen.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/screen_bg.4bpp +$(WALLPAPERGFXDIR)/screen/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/screen/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/horizontal.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/horizontal_bg.4bpp +$(WALLPAPERGFXDIR)/horizontal/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/horizontal/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/diagonal.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/diagonal_bg.4bpp +$(WALLPAPERGFXDIR)/diagonal/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/diagonal/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/block.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/block_bg.4bpp +$(WALLPAPERGFXDIR)/block/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/block/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/ribbon.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/ribbon_bg.4bpp +$(WALLPAPERGFXDIR)/ribbon/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/ribbon/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/pokecenter2.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/pokecenter2_bg.4bpp +$(WALLPAPERGFXDIR)/pokecenter2/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/pokecenter2/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/frame.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/frame_bg.4bpp +$(WALLPAPERGFXDIR)/frame/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/frame/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/blank.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/blank_bg.4bpp +$(WALLPAPERGFXDIR)/blank/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/blank/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/circles.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/circles_bg.4bpp +$(WALLPAPERGFXDIR)/circles/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/circles/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/azumarill.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/azumarill_bg.4bpp +$(WALLPAPERGFXDIR)/azumarill/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $(WALLPAPERGFXDIR)/azumarill/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/pikachu.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/pikachu_bg.4bpp +$(WALLPAPERGFXDIR)/pikachu/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $(WALLPAPERGFXDIR)/pikachu/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/legendary.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/legendary_bg.4bpp +$(WALLPAPERGFXDIR)/legendary/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $(WALLPAPERGFXDIR)/legendary/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/dusclops.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/dusclops_bg.4bpp +$(WALLPAPERGFXDIR)/dusclops/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $(WALLPAPERGFXDIR)/dusclops/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/ludicolo.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/ludicolo_bg.4bpp +$(WALLPAPERGFXDIR)/ludicolo/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $(WALLPAPERGFXDIR)/ludicolo/bg.4bpp @cat $^ >$@ -$(PSSGFXDIR)/whiscash.4bpp: $(PSSGFXDIR)/friends_frame2.4bpp $(PSSGFXDIR)/whiscash_bg.4bpp +$(WALLPAPERGFXDIR)/whiscash/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $(WALLPAPERGFXDIR)/whiscash/bg.4bpp @cat $^ >$@ $(OBJEVENTGFXDIR)/pics/effects/unknown_4F6D38/0.4bpp: %.4bpp: %.png diff --git a/include/bard_music.h b/include/bard_music.h index 882606b279..2825d16e68 100644 --- a/include/bard_music.h +++ b/include/bard_music.h @@ -1,9 +1,6 @@ #ifndef GUARD_BARD_MUSIC_H #define GUARD_BARD_MUSIC_H -// Exported type declarations - - struct BardSound { /*0x00*/ u8 var00; @@ -34,12 +31,8 @@ struct BardSong /*0x30*/ const struct BardSound *sound; }; -// Exported RAM declarations - -// Exported ROM declarations - -extern const u16 gNumSpeciesNames; -extern const u16 gUnknown_085FA1D4; +extern const u16 gNumBardWords_Species; +extern const u16 gNumBardWords_Moves; const struct BardSound *GetWordSounds(u16 word); void GetWordPhonemes(struct BardSong *song, u16 word); diff --git a/include/battle.h b/include/battle.h index 5917a4ab3a..9f34243d3b 100644 --- a/include/battle.h +++ b/include/battle.h @@ -42,15 +42,17 @@ #define MAX_TRAINER_ITEMS 4 // array entries for battle communication -#define MULTIUSE_STATE 0x0 -#define CURSOR_POSITION 0x1 -#define TASK_ID 0x1 // task Id and cursor position share the same field -#define SPRITES_INIT_STATE1 0x1 // shares the Id as well -#define SPRITES_INIT_STATE2 0x2 -#define ACTIONS_CONFIRMED_COUNT 0x4 -#define MULTISTRING_CHOOSER 0x5 -#define MSG_DISPLAY 0x7 -#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8 +#define MULTIUSE_STATE 0 +#define CURSOR_POSITION 1 +#define TASK_ID 1 // task Id and cursor position share the same field +#define SPRITES_INIT_STATE1 1 // shares the Id as well +#define SPRITES_INIT_STATE2 2 +#define MOVE_EFFECT_BYTE 3 +#define ACTIONS_CONFIRMED_COUNT 4 +#define MULTISTRING_CHOOSER 5 +#define MISS_TYPE 6 +#define MSG_DISPLAY 7 +#define BATTLE_COMMUNICATION_ENTRIES_COUNT 8 #define BATTLE_BUFFER_LINK_SIZE 0x1000 @@ -140,6 +142,9 @@ struct ProtectStruct u32 usedGravityPreventedMove:1; u32 powderSelfDmg:1; u32 usedThroatChopPreventedMove:1; + u32 micle:1; + u32 custap:1; // also quick claw + u32 touchedProtectLike:1; u32 physicalDmg; u32 specialDmg; u8 physicalBattlerId; @@ -187,7 +192,8 @@ struct SideTimer u8 safeguardTimer; u8 safeguardBattlerId; u8 followmeTimer; - u8 followmeTarget; + u8 followmeTarget:3; + u8 followmePowder:1; // Rage powder, does not affect grass type pokemon. u8 spikesAmount; u8 toxicSpikesAmount; u8 stealthRockAmount; @@ -235,8 +241,35 @@ struct AI_SavedBattleMon u16 species; }; +struct AiLogicData +{ + //attacker data + u16 atkAbility; + u16 atkItem; + u16 atkHoldEffect; + u8 atkParam; + u16 atkSpecies; + // target data + u16 defAbility; + u16 defItem; + u16 defHoldEffect; + u8 defParam; + u16 defSpecies; + // attacker partner data + u8 battlerAtkPartner; + u16 partnerMove; + u16 atkPartnerAbility; + u16 atkPartnerHoldEffect; + bool32 targetSameSide; + // target partner data + u8 battlerDefPartner; + u16 defPartnerAbility; + u16 defPartnerHoldEffect; +}; + struct AI_ThinkingStruct { + struct AiLogicData data; u8 aiState; u8 movesetIndex; u16 moveConsidered; @@ -289,11 +322,14 @@ struct BattleResources struct StatsArray* beforeLvlUp; struct AI_ThinkingStruct *ai; struct BattleHistory *battleHistory; - struct BattleScriptsStack *AI_ScriptsStack; u8 bufferA[MAX_BATTLERS_COUNT][0x200]; u8 bufferB[MAX_BATTLERS_COUNT][0x200]; }; +#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gBattleResources->ai)) +#define AI_DATA ((struct AiLogicData *)(&gBattleResources->ai->data)) +#define BATTLE_HISTORY ((struct BattleHistory *)(gBattleResources->battleHistory)) + struct BattleResults { u8 playerFaintCounter; // 0x0 @@ -405,6 +441,15 @@ struct BattleTvMovePoints s16 points[2][PARTY_SIZE * 4]; }; +struct LinkBattlerHeader +{ + u8 versionSignatureLo; + u8 versionSignatureHi; + u8 vsScreenHealthFlagsLo; + u8 vsScreenHealthFlagsHi; + struct BattleEnigmaBerry battleEnigmaBerry; +}; + struct MegaEvolutionData { u8 toEvolve; // As flags using gBitTable. @@ -427,6 +472,12 @@ struct Illusion struct Pokemon *mon; }; +struct StolenItem +{ + u16 originalItem:15; + u16 stolen:1; +}; + struct BattleStruct { u8 turnEffectsTracker; @@ -441,12 +492,14 @@ struct BattleStruct u16 assistPossibleMoves[PARTY_SIZE * MAX_MON_MOVES]; // Each of mons can know max 4 moves. u8 focusPunchBattlerId; u8 battlerPreventingSwitchout; - u8 moneyMultiplier; + u8 moneyMultiplier:6; + u8 moneyMultiplierItem:1; + u8 moneyMultiplierMove:1; u8 savedTurnActionNumber; u8 switchInAbilitiesCounter; u8 faintedActionsState; u8 faintedActionsBattlerId; - u16 expValue; + u32 expValue; u8 field_52; u8 sentInPokes; bool8 selectionScriptFinished[MAX_BATTLERS_COUNT]; @@ -464,7 +517,7 @@ struct BattleStruct u8 formToChangeInto; u8 chosenMovePositions[MAX_BATTLERS_COUNT]; u8 stateIdAfterSelScript[MAX_BATTLERS_COUNT]; - u8 field_8B; // related to player's pokemon switching + u8 prevSelectedPartySlot; u8 stringMoveType; u8 expGetterBattlerId; u8 field_91; // related to gAbsentBattlerFlags, possibly absent flags turn ago? @@ -495,14 +548,14 @@ struct BattleStruct u8 givenExpMons; // Bits for enemy party's pokemon that gave exp to player's party. u16 lastTakenMoveFrom[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT]; // a 2-D array [target][attacker] u16 castformPalette[MAX_BATTLERS_COUNT][16]; - u8 field_180; // weird field, used in battle_main.c, once accessed as an array of u32 overwriting the field below - u8 field_181; - u8 field_182; - u8 field_183; - struct BattleEnigmaBerry battleEnigmaBerry; + union { + struct LinkBattlerHeader linkBattlerHeader; + u32 battleVideo[2]; + } multiBuffer; u8 wishPerishSongState; u8 wishPerishSongBattlerId; bool8 overworldWeatherDone; + bool8 terrainDone; u8 atkCancellerTracker; struct BattleTvMovePoints tvMovePoints; struct BattleTv tv; @@ -542,6 +595,8 @@ struct BattleStruct u8 sameMoveTurns[MAX_BATTLERS_COUNT]; // For Metronome, number of times the same moves has been SUCCESFULLY used. u16 moveEffect2; // For Knock Off u16 changedSpecies[PARTY_SIZE]; // For Zygarde or future forms when multiple mons can change into the same pokemon. + u8 quickClawBattlerId; + struct StolenItem itemStolen[PARTY_SIZE]; // Player's team that had items stolen (two bytes per party member) }; #define GET_MOVE_TYPE(move, typeArg) \ @@ -558,6 +613,7 @@ struct BattleStruct #define BATTLER_MAX_HP(battlerId)(gBattleMons[battlerId].hp == gBattleMons[battlerId].maxHP) #define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0)) +#define BATTLER_DAMAGED(battlerId) ((gSpecialStatuses[battlerId].physicalDmg != 0 || gSpecialStatuses[battlerId].specialDmg != 0)) #define IS_BATTLER_OF_TYPE(battlerId, type)((gBattleMons[battlerId].type1 == type || gBattleMons[battlerId].type2 == type || gBattleMons[battlerId].type3 == type)) #define SET_BATTLER_TYPE(battlerId, type) \ @@ -613,6 +669,7 @@ struct BattleScripting u16 multihitMoveEffect; u8 illusionNickHack; // To properly display nick in STRINGID_ENEMYABOUTTOSWITCHPKMN. bool8 fixedPopup; // force ability popup to stick until manually called back + u16 abilityPopupOverwrite; }; // rom_80A5C6C @@ -640,7 +697,7 @@ struct BattleAnimationInfo u8 ballThrowCaseId:6; u8 isCriticalCapture:1; u8 criticalCaptureSuccess:1; - u8 field_9_x1:1; + u8 introAnimActive:1; u8 wildMonInvisible:1; u8 field_9_x1C:3; u8 field_9_x20:1; @@ -665,17 +722,17 @@ struct BattleHealthboxInfo u8 triedShinyMonAnim:1; u8 finishedShinyMonAnim:1; u8 field_1_x1E:4; - u8 field_1_x20:1; - u8 field_1_x40:1; - u8 field_1_x80:1; + u8 bgmRestored:1; + u8 waitForCry:1; + u8 healthboxSlideInStarted:1; u8 healthboxBounceSpriteId; u8 battlerBounceSpriteId; u8 animationState; - u8 field_5; + u8 partyStatusDelayTimer; u8 matrixNum; u8 shadowSpriteId; - u8 field_8; - u8 field_9; + u8 soundTimer; + u8 introEndDelay; u8 field_A; u8 field_B; }; @@ -740,7 +797,7 @@ extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT]; extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT]; extern u32 gBattleTypeFlags; extern u8 gBattleTerrain; -extern u32 gUnknown_02022FF4; +extern u32 gUnusedFirstBattleVar1; extern u8 *gUnknown_0202305C; extern u8 *gUnknown_02023060; extern u8 gActiveBattler; @@ -788,7 +845,7 @@ extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u16 gMoveResultFlags; extern u32 gHitMarker; extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT]; -extern u8 gUnknown_0202428C; +extern u8 gUnusedFirstBattleVar2; extern u32 gSideStatuses[2]; extern struct SideTimer gSideTimers[2]; extern u32 gStatuses3[MAX_BATTLERS_COUNT]; @@ -820,8 +877,8 @@ extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern u8 gPlayerDpadHoldFrames; extern struct BattleSpriteData *gBattleSpritesDataPtr; extern struct MonSpritesGfx *gMonSpritesGfxPtr; -extern struct BattleHealthboxInfo *gUnknown_020244D8; -extern struct BattleHealthboxInfo *gUnknown_020244DC; +extern struct BattleHealthboxInfo *gBattleControllerOpponentHealthboxData; +extern struct BattleHealthboxInfo *gBattleControllerOpponentFlankHealthboxData; extern u16 gBattleMovePower; extern u16 gMoveToLearn; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; @@ -839,7 +896,7 @@ extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gMultiUsePlayerCursor; extern u8 gNumberOfMovesToChoose; -extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern u8 gBattleControllerData[MAX_BATTLERS_COUNT]; extern bool8 gHasFetchedBall; extern u8 gLastUsedBall; diff --git a/include/battle_ai_main.h b/include/battle_ai_main.h new file mode 100644 index 0000000000..66c614f78c --- /dev/null +++ b/include/battle_ai_main.h @@ -0,0 +1,30 @@ +#ifndef GUARD_BATTLE_AI_MAIN_H +#define GUARD_BATTLE_AI_MAIN_H + +// return values for BattleAI_ChooseMoveOrAction +// 0 - 3 are move idx +#define AI_CHOICE_FLEE 4 +#define AI_CHOICE_WATCH 5 +#define AI_CHOICE_SWITCH 7 + +#define RETURN_SCORE_PLUS(val) \ +{ \ + score += val; \ + return score; \ +} + +#define RETURN_SCORE_MINUS(val) \ +{ \ + score -= val; \ + return score; \ +} + + +void BattleAI_SetupItems(void); +void BattleAI_SetupFlags(void); +void BattleAI_SetupAIData(u8 defaultScoreMoves); +u8 BattleAI_ChooseMoveOrAction(void); + +extern u8 sBattler_AI; + +#endif // GUARD_BATTLE_AI_MAIN_H diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h deleted file mode 100644 index be37873980..0000000000 --- a/include/battle_ai_script_commands.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef GUARD_BATTLE_AI_SCRIPT_COMMANDS_H -#define GUARD_BATTLE_AI_SCRIPT_COMMANDS_H - -// return values for BattleAI_ChooseMoveOrAction -// 0 - 3 are move idx -#define AI_CHOICE_FLEE 4 -#define AI_CHOICE_WATCH 5 -#define AI_CHOICE_SWITCH 7 - -s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef); -s32 AI_CalcPartyMonDamage(u16 move, u8 battlerAtk, u8 battlerDef, struct Pokemon *mon); -u16 AI_GetTypeEffectiveness(u16 move, u8 battlerAtk, u8 battlerDef); -void BattleAI_SetupItems(void); -void BattleAI_SetupFlags(void); -void BattleAI_SetupAIData(u8 defaultScoreMoves); -u8 BattleAI_ChooseMoveOrAction(void); -bool32 IsTruantMonVulnerable(u32 battlerAI, u32 opposingBattler); -bool32 IsBattlerAIControlled(u32 battlerId); -void ClearBattlerMoveHistory(u8 battlerId); -void RecordLastUsedMoveBy(u32 battlerId, u32 move); -void RecordKnownMove(u8 battlerId, u32 move); -void RecordAbilityBattle(u8 battlerId, u16 abilityId); -void ClearBattlerAbilityHistory(u8 battlerId); -void RecordItemEffectBattle(u8 battlerId, u8 itemEffect); -void ClearBattlerItemEffectHistory(u8 battlerId); - -#endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h index 9780fae705..70dc41b34b 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch_items.h @@ -7,12 +7,33 @@ enum AI_ITEM_HEAL_HP, AI_ITEM_CURE_CONDITION, AI_ITEM_X_STAT, - AI_ITEM_GUARD_SPECS, + AI_ITEM_GUARD_SPEC, AI_ITEM_NOT_RECOGNIZABLE }; +enum { + AI_HEAL_CONFUSION, + AI_HEAL_PARALYSIS, + AI_HEAL_FREEZE, + AI_HEAL_BURN, + AI_HEAL_POISON, + AI_HEAL_SLEEP, +}; + +enum { + AI_X_ATTACK, + AI_X_DEFEND, + AI_X_SPEED, + AI_X_SPATK, + AI_X_SPDEF, // Unused + AI_X_ACCURACY, + AI_X_EVASION, // Unused + AI_DIRE_HIT, +}; + void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId); void AI_TrySwitchOrUseItem(void); u8 GetMostSuitableMonToSwitchInto(void); +bool32 ShouldSwitch(void); #endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h new file mode 100644 index 0000000000..d4df682c63 --- /dev/null +++ b/include/battle_ai_util.h @@ -0,0 +1,169 @@ +#ifndef GUARD_BATTLE_AI_UTIL_H +#define GUARD_BATTLE_AI_UTIL_H + +// for IsAiFaster +#define AI_CHECK_FASTER 0 // if_user_faster +#define AI_CHECK_SLOWER 1 // if_target_faster + +#define FOE(battler) ((battler ^ BIT_SIDE) & BIT_SIDE) + +bool32 AI_RandLessThan(u8 val); +void RecordLastUsedMoveByTarget(void); +bool32 IsBattlerAIControlled(u32 battlerId); +void ClearBattlerMoveHistory(u8 battlerId); +void RecordLastUsedMoveBy(u32 battlerId, u32 move); +void RecordKnownMove(u8 battlerId, u32 move); +void RecordAbilityBattle(u8 battlerId, u16 abilityId); +void ClearBattlerAbilityHistory(u8 battlerId); +void RecordItemEffectBattle(u8 battlerId, u8 itemEffect); +void ClearBattlerItemEffectHistory(u8 battlerId); +void SaveBattlerData(u8 battlerId); +void SetBattlerData(u8 battlerId); +void RestoreBattlerData(u8 battlerId); + +u32 GetTotalBaseStat(u32 species); +bool32 IsTruantMonVulnerable(u32 battlerAI, u32 opposingBattler); +bool32 AtMaxHp(u8 battler); +u32 GetHealthPercentage(u8 battler); +bool32 IsBattlerTrapped(u8 battler, bool8 switching); +bool32 IsAiFaster(u8 battler); +bool32 CanTargetFaintAi(u8 battlerDef, u8 battlerAtk); +bool32 CanMoveFaintBattler(u16 move, u8 battlerDef, u8 battlerAtk, u8 nHits); +bool32 CanTargetFaintAiWithMod(u8 battlerDef, u8 battlerAtk, s32 hpMod, s32 dmgMod); +s32 AI_GetAbility(u32 battlerId); +u16 AI_GetHoldEffect(u32 battlerId); +u32 AI_GetMoveAccuracy(u8 battlerAtk, u8 battlerDef, u16 atkAbility, u16 defAbility, u8 atkHoldEffect, u8 defHoldEffect, u16 move); +bool32 DoesBattlerIgnoreAbilityChecks(u16 atkAbility, u16 move); +bool32 AI_WeatherHasEffect(void); +bool32 CanAttackerFaintTarget(u8 battlerAtk, u8 battlerDef, u8 index, u8 numHits); +bool32 AI_IsTerrainAffected(u8 battlerId, u32 flags); +bool32 AI_IsBattlerGrounded(u8 battlerId); +bool32 HasDamagingMove(u8 battlerId); +bool32 HasDamagingMoveOfType(u8 battlerId, u8 type); +u32 GetBattlerSecondaryDamage(u8 battlerId); +bool32 BattlerWillFaintFromWeather(u8 battler, u16 ability); +bool32 BattlerWillFaintFromSecondaryDamage(u8 battler, u16 ability); +bool32 ShouldTryOHKO(u8 battlerAtk, u8 battlerDef, u16 atkAbility, u16 defAbility, u32 accuracy, u16 move); +bool32 ShouldUseRecoilMove(u8 battlerAtk, u8 battlerDef, u32 recoilDmg, u8 moveIndex); +u16 GetBattlerSideSpeedAverage(u8 battler); +bool32 ShouldAbsorb(u8 battlerAtk, u8 battlerDef, u16 move, s32 damage); +bool32 ShouldRecover(u8 battlerAtk, u8 battlerDef, u16 move, u8 healPercent); +bool32 ShouldSetScreen(u8 battlerAtk, u8 battlerDef, u16 moveEffect); +bool32 ShouldPivot(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u8 moveIndex); +bool32 IsRecycleEncouragedItem(u16 item); +bool32 CanKnockOffItem(u8 battler, u16 item); +bool32 IsAbilityOfRating(u16 ability, s8 rating); +s8 GetAbilityRating(u16 ability); + +// stat stage checks +bool32 AnyStatIsRaised(u8 battlerId); +bool32 ShouldLowerStat(u8 battler, u16 battlerAbility, u8 stat); +bool32 BattlerStatCanRise(u8 battler, u16 battlerAbility, u8 stat); +bool32 AreBattlersStatsMaxed(u8 battler); +bool32 BattlerHasAnyStatRaised(u8 battlerId); +u32 CountPositiveStatStages(u8 battlerId); +u32 CountNegativeStatStages(u8 battlerId); +bool32 ShouldLowerAttack(u8 battlerAtk, u8 battlerDef, u16 defAbility); +bool32 ShouldLowerDefense(u8 battlerAtk, u8 battlerDef, u16 defAbility); +bool32 ShouldLowerSpeed(u8 battlerAtk, u8 battlerDef, u16 defAbility); +bool32 ShouldLowerSpAtk(u8 battlerAtk, u8 battlerDef, u16 defAbility); +bool32 ShouldLowerSpDef(u8 battlerAtk, u8 battlerDef, u16 defAbility); +bool32 ShouldLowerAccuracy(u8 battlerAtk, u8 battlerDef, u16 defAbility); +bool32 ShouldLowerEvasion(u8 battlerAtk, u8 battlerDef, u16 defAbility); + +// move checks +bool32 IsAffectedByPowder(u8 battler, u16 ability, u16 holdEffect); +bool32 MovesWithSplitUnusable(u32 attacker, u32 target, u32 split); +s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef); +u8 GetMoveDamageResult(u16 move); +u32 GetCurrDamageHpPercent(u8 battlerAtk, u8 battlerDef); +u16 AI_GetTypeEffectiveness(u16 move, u8 battlerAtk, u8 battlerDef); +u8 AI_GetMoveEffectiveness(u16 move, u8 battlerAtk, u8 battlerDef); +u16 *GetMovesArray(u32 battler); +bool32 IsConfusionMoveEffect(u16 moveEffect); +bool32 HasMove(u32 battlerId, u32 move); +bool32 HasOnlyMovesWithSplit(u32 battlerId, u32 split, bool32 onlyOffensive); +bool32 HasMoveWithSplit(u32 battler, u32 split); +bool32 HasMoveWithType(u32 battler, u8 type); +bool32 HasMoveWithTypeAndSplit(u32 battler, u8 type, u8 split); +bool32 HasMoveEffect(u32 battlerId, u16 moveEffect); +bool32 HasMoveWithLowAccuracy(u8, u8, u8, bool32, u16, u16, u16, u16); +bool32 TestMoveFlagsInMoveset(u8 battler, u32 flags); +bool32 IsAromaVeilProtectedMove(u16 move); +bool32 IsNonVolatileStatusMoveEffect(u16 moveEffect); +bool32 IsStatLoweringMoveEffect(u16 moveEffect); +bool32 IsMoveRedirectionPrevented(u16 move, u16 atkAbility); +bool32 IsMoveEncouragedToHit(u8 battlerAtk, u8 battlerDef, u16 move); +bool32 IsHazardMoveEffect(u16 moveEffect); +bool32 MoveCallsOtherMove(u16 move); +bool32 MoveRequiresRecharging(u16 move); +bool32 IsInstructBannedMove(u16 move); +bool32 IsEncoreEncouragedEffect(u16 moveEffect); +void ProtectChecks(u8 battlerAtk, u8 battlerDef, u16 move, u16 predictedMove, s16 *score); +bool32 ShouldSetSandstorm(u8 battler, u16 ability, u16 holdEffect); +bool32 ShouldSetHail(u8 battler, u16 ability, u16 holdEffect); +bool32 ShouldSetRain(u8 battlerAtk, u16 ability, u16 holdEffect); +bool32 ShouldSetSun(u8 battlerAtk, u16 atkAbility, u16 holdEffect); +bool32 HasSleepMoveWithLowAccuracy(u8 battlerAtk, u8 battlerDef); +bool32 IsHealingMoveEffect(u16 effect); +bool32 HasHealingEffect(u32 battler); +bool32 IsTrappingMoveEffect(u16 effect); +bool32 HasTrappingMoveEffect(u8 battler); +bool32 ShouldFakeOut(u8 battlerAtk, u8 battlerDef, u16 move); +bool32 HasThawingMove(u8 battlerId); +bool32 IsStatRaisingEffect(u16 effect); +bool32 IsStatLoweringEffect(u16 effect); +bool32 IsStatRaisingEffect(u16 effect); +bool32 IsAttackBoostMoveEffect(u16 effect); +bool32 IsUngroundingEffect(u16 effect); +bool32 IsSemiInvulnerable(u8 battlerDef, u16 move); + +// status checks +bool32 CanBeBurned(u8 battler, u16 ability); +bool32 CanBePoisoned(u8 battler, u16 ability); +bool32 CanBeConfused(u8 battler, u16 ability); +bool32 CanSleep(u8 battler, u16 ability); +bool32 IsBattlerIncapacitated(u8 battler, u16 ability); +bool32 AI_CanPutToSleep(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u16 partnerMove); +bool32 ShouldPoisonSelf(u8 battler, u16 ability); +bool32 AI_CanPoison(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u16 partnerMove); +bool32 AI_CanParalyze(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u16 partnerMove); +bool32 AI_CanConfuse(u8 battlerAtk, u8 battlerDef, u16 defAbility, u8 battlerAtkPartner, u16 move, u16 partnerMove); +bool32 ShouldBurnSelf(u8 battler, u16 ability); +bool32 AI_CanBurn(u8 battlerAtk, u8 battlerDef, u16 defAbility, u8 battlerAtkPartner, u16 move, u16 partnerMove); +bool32 AI_CanBeInfatuated(u8 battlerAtk, u8 battlerDef, u16 defAbility, u8 atkGender, u8 defGender); +bool32 AnyPartyMemberStatused(u8 battlerId, bool32 checkSoundproof); +u32 ShouldTryToFlinch(u8 battlerAtk, u8 battlerDef, u16 atkAbility, u16 defAbility, u16 move); +bool32 ShouldTrap(u8 battlerAtk, u8 battlerDef, u16 move); +bool32 IsWakeupTurn(u8 battler); + +// partner logic +u16 GetAllyChosenMove(void); +bool32 IsValidDoubleBattle(u8 battlerAtk); +bool32 IsTargetingPartner(u8 battlerAtk, u8 battlerDef); +bool32 DoesPartnerHaveSameMoveEffect(u8 battlerAtkPartner, u8 battlerDef, u16 move, u16 partnerMove); +bool32 PartnerHasSameMoveEffectWithoutTarget(u8 battlerAtkPartner, u16 move, u16 partnerMove); +bool32 PartnerMoveEffectIsStatusSameTarget(u8 battlerAtkPartner, u8 battlerDef, u16 partnerMove); +bool32 PartnerMoveEffectIsWeather(u8 battlerAtkPartner, u16 partnerMove); +bool32 PartnerMoveEffectIsTerrain(u8 battlerAtkPartner, u16 partnerMove); +bool32 PartnerMoveIs(u8 battlerAtkPartner, u16 partnerMove, u16 moveCheck); +bool32 PartnerMoveIsSameAsAttacker(u8 battlerAtkPartner, u8 battlerDef, u16 move, u16 partnerMove); +bool32 PartnerMoveIsSameNoTarget(u8 battlerAtkPartner, u16 move, u16 partnerMove); +bool32 ShouldUseWishAromatherapy(u8 battlerAtk, u8 battlerDef, u16 move); + +// party logic +s32 AI_CalcPartyMonDamage(u16 move, u8 battlerAtk, u8 battlerDef, struct Pokemon *mon); +s32 CountUsablePartyMons(u8 battlerId); +bool32 IsPartyFullyHealedExceptBattler(u8 battler); +bool32 PartyHasMoveSplit(u8 battlerId, u8 split); +bool32 SideHasMoveSplit(u8 battlerId, u8 split); + +// score increases +void IncreaseStatUpScore(u8 battlerAtk, u8 battlerDef, u8 statId, s16 *score); +void IncreasePoisonScore(u8 battlerAtk, u8 battlerdef, u16 move, s16 *score); +void IncreaseBurnScore(u8 battlerAtk, u8 battlerdef, u16 move, s16 *score); +void IncreaseParalyzeScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score); +void IncreaseSleepScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score); +void IncreaseConfusionScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score); + +#endif //GUARD_BATTLE_AI_UTIL_H \ No newline at end of file diff --git a/include/battle_anim.h b/include/battle_anim.h index 2b28e92fb1..9bc51facb7 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -67,7 +67,7 @@ s8 BattleAnimAdjustPanning2(s8 pan); s16 KeepPanInRange(s16 a, int oldPan); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); void sub_80A4720(u16 a, u16 *b, u32 c, u8 d); -void sub_80A477C(bool8); +void ResetBattleAnimBg(bool8); void LoadMoveBg(u16 bgId); // battle_intro.c @@ -78,8 +78,8 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId); // battle_anim_mons.c void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); -void sub_80A8AEC(struct Sprite *sprite); -void sub_80A8A6C(struct Sprite *sprite); +void AnimTranslateLinearAndFlicker(struct Sprite *sprite); +void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite); void AnimWeatherBallUp(struct Sprite *sprite); void AnimWeatherBallDown(struct Sprite *sprite); void AnimSpinningSparkle(struct Sprite *sprite); @@ -94,7 +94,7 @@ void InitAnimArcTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId); -void sub_80A6FD4(struct Sprite *sprite); +void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite); u16 ArcTan2Neg(s16 a, s16 b); void TrySetSpriteRotScale(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation); void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite); @@ -107,13 +107,13 @@ u8 GetBattlerYCoordWithElevation(u8 battlerId); void WaitAnimForDuration(struct Sprite *sprite); void AnimTravelDiagonally(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite); -void sub_80A6F98(struct Sprite *sprite); +void AnimTranslateLinear_WaitEnd(struct Sprite *sprite); u8 GetBattlerSpriteBGPriority(u8 battlerId); void *LoadPointerFromVars(s16 bottom, s16 top); void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr); void sub_80A8278(void); -void sub_80A6B30(struct BattleAnimBgData*); -void sub_80A6B90(struct BattleAnimBgData*, u32 arg1); +void GetBattleAnimBg1Data(struct BattleAnimBgData*); +void GetBattleAnimBgData(struct BattleAnimBgData*, u32 arg1); u8 GetBattlerSpriteSubpriority(u8 battlerId); bool8 TranslateAnimHorizontalArc(struct Sprite *sprite); void sub_80A6630(struct Sprite *sprite); @@ -123,20 +123,20 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); void InitSpriteDataForLinearTranslation(struct Sprite *sprite); void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode); void SetBattlerSpriteYOffsetFromRotation(u8 spriteId); -u32 sub_80A75AC(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7); -u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4); -u8 sub_80A77AC(u8 a1); +u32 GetBattleBgPalettesMask(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7); +u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight); +u8 AnimDummyReturnArg(u8 battler); s16 CloneBattlerSpriteWithBlend(u8); void obj_delete_but_dont_free_vram(struct Sprite*); -u8 sub_80A89C8(int, u8, int); +u8 CreateInvisibleSpriteCopy(int, u8, int); void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, u32); void AnimLoadCompressedBgGfx(u32, const u32*, u32); -void sub_80A6DAC(bool8); +void UpdateAnimBg3ScreenSize(bool8); void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *); void sub_80A653C(struct Sprite *); void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); -void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); -u8 sub_80A80C8(struct Task *task); +void PrepareEruptAnimTaskData(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); +u8 UpdateEruptAnimTask(struct Task *task); void DestroyAnimSpriteAndDisableBlend(struct Sprite *); void AnimLoadCompressedBgTilemap(u32 bgId, const void *src); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); @@ -145,15 +145,15 @@ void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); void TranslateMonSpriteLinear(struct Sprite *sprite); void TranslateSpriteLinear(struct Sprite *sprite); void AnimSpriteOnMonPos(struct Sprite *sprite); -void sub_80A7000(struct Sprite *sprite); +void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite); void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); -void SetGreyscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal); +void SetGrayscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); bool8 RunAffineAnimFromTaskData(struct Task *task); void AnimThrowProjectile(struct Sprite *sprite); void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused); -u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10); -void sub_80A749C(struct Sprite *sprite); +u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm); +void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite); void TradeMenuBouncePartySprites(struct Sprite *sprite); void DestroyAnimVisualTaskAndDisableBlend(u8 taskId); void DestroySpriteAndFreeResources_(struct Sprite *sprite); @@ -162,7 +162,7 @@ u8 GetBattlerSide(u8 battler); u8 GetBattlerPosition(u8 battler); u8 GetBattlerAtPosition(u8 position); void sub_80A64EC(struct Sprite *sprite); -void sub_80A718C(struct Sprite *sprite); +void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite); enum { @@ -187,7 +187,7 @@ enum u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId); bool8 IsBattlerSpritePresent(u8 battlerId); -void sub_80A6C68(u32 arg0); +void ClearBattleAnimBg(u32 arg0); u8 GetAnimBattlerSpriteId(u8 wantedBattler); bool8 IsDoubleBattle(void); u8 GetBattleBgPaletteNum(void); @@ -223,8 +223,8 @@ u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes, bool32 IsCriticalCapture(void); // battle_anim_utility_funcs.c -void sub_8116EB4(u8); -void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *arg8, const u32 *arg9, const u32 *palette); +void InitStatsChangeAnimation(u8); +void StartMonScrollingBgMask(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *arg8, const u32 *arg9, const u32 *palette); // battle_anim_effects_1.c void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite); @@ -341,7 +341,7 @@ void AnimPsychoBoost(struct Sprite *sprite); // battle_anim_smokescreen.c u8 SmokescreenImpact(s16 x, s16 y, u8 a3); -u32 UnpackSelectedBattleAnimPalettes(s16); +u32 UnpackSelectedBattleBgPalettes(s16); u8 GetBattlerSpriteFinal_Y(u8, u16, u8); @@ -436,7 +436,7 @@ void AnimBasicFistOrFoot(struct Sprite *sprite); void AnimSpinningKickOrPunchFinish(struct Sprite *sprite); void AnimRevengeScratch(struct Sprite *sprite); void AnimDizzyPunchDuck(struct Sprite *sprite); -extern const union AnimCmd *const gAnims_HandOrFoot[]; +extern const union AnimCmd *const gAnims_HandsAndFeet[]; extern const union AffineAnimCmd *const gAffineAnims_MegaPunchKick[]; extern const union AffineAnimCmd *const gAffineAnims_SpinningHandOrFoot[]; extern const union AnimCmd *const gAnims_RevengeBigScratch[]; diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 0cf7f6b5a8..1cedf81fa4 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -86,8 +86,8 @@ enum struct UnusedControllerStruct { - u8 field_0:7; - u8 flag_x80:1; + u8 unk:7; + u8 flag:1; }; struct HpAndStatus @@ -136,7 +136,7 @@ enum CONTROLLER_PRINTSTRING, CONTROLLER_PRINTSTRINGPLAYERONLY, CONTROLLER_CHOOSEACTION, - CONTROLLER_UNKNOWNYESNOBOX, + CONTROLLER_YESNOBOX, CONTROLLER_CHOOSEMOVE, CONTROLLER_OPENBAG, CONTROLLER_CHOOSEPOKEMON, @@ -148,19 +148,19 @@ enum CONTROLLER_STATUSXOR, CONTROLLER_DATATRANSFER, CONTROLLER_DMA3TRANSFER, - CONTROLLER_31, + CONTROLLER_PLAYBGM, CONTROLLER_32, CONTROLLER_TWORETURNVALUES, CONTROLLER_CHOSENMONRETURNVALUE, CONTROLLER_ONERETURNVALUE, CONTROLLER_ONERETURNVALUE_DUPLICATE, - CONTROLLER_37, - CONTROLLER_38, - CONTROLLER_39, - CONTROLLER_40, + CONTROLLER_CLEARUNKVAR, + CONTROLLER_SETUNKVAR, + CONTROLLER_CLEARUNKFLAG, + CONTROLLER_TOGGLEUNKFLAG, CONTROLLER_HITANIMATION, - CONTROLLER_42, - CONTROLLER_EFFECTIVENESSSOUND, + CONTROLLER_CANTSWITCH, + CONTROLLER_PLAYSE, CONTROLLER_PLAYFANFAREORBGM, CONTROLLER_FAINTINGCRY, CONTROLLER_INTROSLIDE, @@ -172,20 +172,20 @@ enum CONTROLLER_BATTLEANIMATION, CONTROLLER_LINKSTANDBYMSG, CONTROLLER_RESETACTIONMOVESELECTION, - CONTROLLER_55, + CONTROLLER_ENDLINKBATTLE, CONTROLLER_DEBUGMENU, /*new controllers should go here*/ CONTROLLER_TERMINATOR_NOP, CONTROLLER_CMDS_COUNT }; -extern struct UnusedControllerStruct gUnknown_02022D0C; +extern struct UnusedControllerStruct gUnusedControllerStruct; // general functions void HandleLinkBattleSetup(void); void SetUpBattleVarsAndBirchZigzagoon(void); -void sub_8032768(void); -void sub_8033648(void); +void InitBattleControllers(void); +void TryReceiveLinkBattleData(void); void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); // emitters @@ -208,13 +208,13 @@ void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 m void BtlController_EmitPrintString(u8 bufferId, u16 stringId); void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId); void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); -void BtlController_EmitUnknownYesNoBox(u8 bufferId); +void BtlController_EmitYesNoBox(u8 bufferId); void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); void BtlController_EmitChooseItem(u8 bufferId, u8* arg1); void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u16 abilityId, u8* arg4); void BtlController_EmitCmd23(u8 bufferId); // unused void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue); -void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); +void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, s32 expPoints); void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); void BtlController_EmitStatusXor(u8 bufferId, u8 b); // unused @@ -222,16 +222,16 @@ void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data); void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused void BtlController_EmitCmd32(u8 bufferId, u16 size, void *c); // unused -void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2); +void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u32 arg2); void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c); void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1); void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b); -void BtlController_EmitCmd37(u8 bufferId); // unused -void BtlController_EmitCmd38(u8 bufferId, u8 b); // unused -void BtlController_EmitCmd39(u8 bufferId); // unused -void BtlController_EmitCmd40(u8 bufferId); // unused +void BtlController_EmitClearUnkVar(u8 bufferId); // unused +void BtlController_EmitSetUnkVar(u8 bufferId, u8 b); // unused +void BtlController_EmitClearUnkFlag(u8 bufferId); // unused +void BtlController_EmitToggleUnkFlag(u8 bufferId); // unused void BtlController_EmitHitAnimation(u8 bufferId); -void BtlController_EmitCmd42(u8 bufferId); +void BtlController_EmitCantSwitch(u8 bufferId); void BtlController_EmitPlaySE(u8 bufferId, u16 songId); void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM); void BtlController_EmitFaintingCry(u8 bufferId); @@ -242,20 +242,20 @@ void BtlController_EmitHidePartyStatusSummary(u8 bufferId); void BtlController_EmitEndBounceEffect(u8 bufferId); void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); -void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2); +void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 record); void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId); -void BtlController_EmitCmd55(u8 bufferId, u8 battleOutcome); +void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome); void BtlController_EmitDebugMenu(u8 bufferId); // player controller void SetControllerToPlayer(void); -void nullsub_21(void); +void BattleControllerDummy(void); void PlayerHandleGetRawMonData(void); -void sub_80587B0(void); -void sub_805CC00(struct Sprite *sprite); +void SetBattleEndCallbacks(void); +void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite); void CB2_SetUpReshowBattleScreenAfterMenu(void); void CB2_SetUpReshowBattleScreenAfterMenu2(void); -void c3_0802FDF4(u8 taskId); +void Task_PlayerController_RestoreBgmAfterCry(u8 taskId); void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused); void ActionSelectionDestroyCursorAt(u8 cursorPos); void InitMoveSelectionsVarsAndStrings(void); diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 546683ebac..b2353b99f6 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -1,24 +1,22 @@ -#ifndef GUARD_BATTLE_GFX_SFX_UTIL -#define GUARD_BATTLE_GFX_SFX_UTIL +#ifndef GUARD_BATTLE_GFX_SFX_UTIL_H +#define GUARD_BATTLE_GFX_SFX_UTIL_H void AllocateBattleSpritesData(void); void FreeBattleSpritesData(void); u16 ChooseMoveAndTargetInBattlePalace(void); -void sub_805D714(struct Sprite *sprite); -void sub_805D770(struct Sprite *sprite, bool8 arg1); -void sub_805D7AC(struct Sprite *sprite); +void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite); +void SpriteCB_TrainerSlideIn(struct Sprite *sprite); void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status); bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId, u16 argument); void InitAndLaunchSpecialAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId); bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn); -bool8 mplay_80342A4(u8 battlerId); +bool8 IsBattleSEPlaying(u8 battlerId); void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId); void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId); -void nullsub_23(void); -void nullsub_24(u16 species); +void BattleGfxSfxDummy2(u16 species); void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId); void DecompressTrainerBackPic(u16 backPicId, u8 battlerId); -void nullsub_25(u8 arg0); +void BattleGfxSfxDummy3(u8 gender); void FreeTrainerFrontPicPalette(u16 frontPicId); void sub_805DFFC(void); bool8 BattleLoadAllHealthBoxesGfx(u8 state); @@ -36,7 +34,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId); void BattleStopLowHpSound(void); u8 GetMonHPBarLevel(struct Pokemon *mon); void HandleBattleLowHpMusicChange(void); -void sub_805EB9C(u8 affineMode); +void SetBattlerSpriteAffineMode(u8 affineMode); void LoadAndCreateEnemyShadowSprites(void); void SpriteCB_SetInvisible(struct Sprite *sprite); void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species); @@ -47,4 +45,4 @@ void AllocateMonSpritesGfx(void); void FreeMonSpritesGfx(void); bool32 ShouldPlayNormalMonCry(struct Pokemon *mon); -#endif // GUARD_BATTLE_GFX_SFX_UTIL +#endif // GUARD_BATTLE_GFX_SFX_UTIL_H diff --git a/include/battle_interface.h b/include/battle_interface.h index d06c44e884..0bcadaaacb 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -74,7 +74,7 @@ void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); void SetHealthboxSpriteVisible(u8 healthboxSpriteId); void DestoryHealthboxSprite(u8 healthboxSpriteId); void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); -void UpdateOamPriorityInAllHealthboxes(u8 priority); +void UpdateOamPriorityInAllHealthboxes(u8 priority, bool32 hideHpBoxes); void InitBattlerHealthboxCoords(u8 battler); void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); void SwapHpBarsWithHpText(void); diff --git a/include/battle_main.h b/include/battle_main.h index c0b8e6c0fd..bf95ca1568 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -34,27 +34,26 @@ void CB2_QuitRecordedBattle(void); void sub_8038528(struct Sprite* sprite); void sub_8038A04(void); // unused void VBlankCB_Battle(void); -void nullsub_17(struct Sprite *sprite); -void sub_8038B74(struct Sprite *sprite); -void sub_8038D64(void); -u32 sub_80391E0(u8 arrayId, u8 caseId); -u32 sub_80397C4(u32 setId, u32 tableId); +void SpriteCB_VsLetterDummy(struct Sprite *sprite); +void SpriteCB_VsLetterInit(struct Sprite *sprite); +void CB2_InitEndLinkBattle(void); +u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId); +u32 GetBattleWindowTemplatePixelWidth(u32 setId, u32 tableId); void SpriteCb_WildMon(struct Sprite *sprite); void SpriteCallbackDummy_2(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite); void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); void SpriteCb_OpponentMonFromBall(struct Sprite *sprite); -void sub_8039BB4(struct Sprite *sprite); -void sub_80105DC(struct Sprite *sprite); -void sub_8039C00(struct Sprite *sprite); +void SpriteCB_BattleSpriteStartSlideLeft(struct Sprite *sprite); +void SpriteCB_FaintSlideAnim(struct Sprite *sprite); void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d); void EndBounceEffect(u8 battlerId, bool8 b); void SpriteCb_PlayerMonFromBall(struct Sprite *sprite); void sub_8039E60(struct Sprite *sprite); void SpriteCB_TrainerThrowObject(struct Sprite *sprite); void sub_8039E9C(struct Sprite *sprite); -void nullsub_20(void); +void BeginBattleIntroDummy(void); void BeginBattleIntro(void); void SwitchInClearSetData(void); void FaintClearSetData(void); @@ -75,8 +74,8 @@ void SetTypeBeforeUsingMove(u16 move, u8 battlerAtk); extern struct UnknownPokemonStruct4 gMultiPartnerParty[MULTI_PARTY_SIZE]; extern const struct SpriteTemplate gUnknown_0831AC88; -extern const struct OamData gOamData_831ACA8; -extern const struct OamData gOamData_831ACB0; +extern const struct OamData gOamData_BattleSpriteOpponentSide; +extern const struct OamData gOamData_BattleSpritePlayerSide; extern const u8 gTypeNames[NUMBER_OF_MON_TYPES][TYPE_NAME_LENGTH + 1]; extern const struct TrainerMoney gTrainerMoneyTable[]; extern const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1]; diff --git a/include/battle_message.h b/include/battle_message.h index 900c3b1eb6..e8b362c9ee 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -241,7 +241,6 @@ extern const u8* const gBattleStringsTable[]; extern const u8* const gStatNamesTable[]; extern const u8* const gPokeblockWasTooXStringTable[]; extern const u8* const gRefereeStringsTable[]; -extern const u8* const gStatNamesTable2[]; extern const u8 *const gRoundsStringTable[]; extern const u8 gText_PkmnIsEvolving[]; @@ -288,7 +287,7 @@ extern const u8 gText_Loss[]; extern const u8 gText_Draw[]; extern const u8 gText_StatSharply[]; extern const u8 gText_StatRose[]; -extern const u8 gText_PkmnsStatChanged2[]; +extern const u8 gText_DefendersStatRose[]; extern const u8 gText_PkmnGettingPumped[]; extern const u8 gText_PkmnShroudedInMist[]; extern const u8 gText_PkmnsXPreventsSwitching[]; diff --git a/include/battle_pyramid_bag.h b/include/battle_pyramid_bag.h index df111b939f..b8b3eb20fb 100644 --- a/include/battle_pyramid_bag.h +++ b/include/battle_pyramid_bag.h @@ -3,48 +3,72 @@ #include "list_menu.h" -struct PyramidBagResources +enum { + PYRAMIDBAG_LOC_FIELD, + PYRAMIDBAG_LOC_BATTLE, + PYRAMIDBAG_LOC_PARTY, + PYRAMIDBAG_LOC_CHOOSE_TOSS, + PYRAMIDBAG_LOC_PREV, +}; + +enum { + PBAG_SPRITE_BAG, + PBAG_SPRITE_ITEM_ICON, + PBAG_SPRITE_ITEM_ICON_ALT, + PBAG_SPRITE_SWAP_LINE_START, // Swap line consists of 8 sprites + PBAG_SPRITE_SWAP_LINE_2, + PBAG_SPRITE_SWAP_LINE_3, + PBAG_SPRITE_SWAP_LINE_4, + PBAG_SPRITE_SWAP_LINE_5, + PBAG_SPRITE_SWAP_LINE_6, + PBAG_SPRITE_SWAP_LINE_7, + PBAG_SPRITE_SWAP_LINE_END, + PBAG_SPRITE_COUNT +}; +#define NUM_SWAP_LINE_SPRITES (1 + PBAG_SPRITE_SWAP_LINE_END - PBAG_SPRITE_SWAP_LINE_START) + +struct PyramidBagMenu { - void (*callback2)(void); - u8 tilemapBuffer[0x800]; - u8 itemsSpriteIds[PYRAMID_BAG_ITEMS_COUNT + 1]; + void (*newScreenCallback)(void); + u8 tilemapBuffer[BG_SCREEN_SIZE]; + u8 spriteIds[PBAG_SPRITE_COUNT]; u8 windowIds[5]; - u8 unk814; - u8 unk815; + u8 toSwapPos; + bool8 isAltIcon; // Two item icons loaded at a time. Tracks which to show next u8 scrollIndicatorsTaskId; const u8 *menuActionIds; - u8 filler81C[0x820 - 0x81C]; + u8 unused1[4]; u8 menuActionsCount; u8 listMenuCount; u8 listMenuMaxShown; struct ListMenuItem bagListItems[PYRAMID_BAG_ITEMS_COUNT + 1]; u8 itemStrings[PYRAMID_BAG_ITEMS_COUNT + 1][ITEM_NAME_LENGTH + 10]; s16 state; - u8 filler986[0x98C - 0x986]; + u8 unused2[4]; }; -struct PyramidBagCursorData +struct PyramidBagMenuState { - void (*callback)(void); - u8 unk4; + void (*exitCallback)(void); + u8 location; u16 cursorPosition; u16 scrollPosition; }; -extern struct PyramidBagResources *gPyramidBagResources; -extern struct PyramidBagCursorData gPyramidBagCursorData; +extern struct PyramidBagMenu *gPyramidBagMenu; +extern struct PyramidBagMenuState gPyramidBagMenuState; void InitBattlePyramidBagCursorPosition(void); void CB2_PyramidBagMenuFromStartMenu(void); void CB2_ReturnToPyramidBagMenu(void); -void sub_81C5924(void); -void sub_81C59BC(void); +void UpdatePyramidBagList(void); +void UpdatePyramidBagCursorPos(void); void sub_81C4EFC(void); -void GoToBattlePyramidBagMenu(u8 a0, void (*callback)(void)); +void GoToBattlePyramidBagMenu(u8 location, void (*exitCallback)(void)); void Task_CloseBattlePyramidBagMessage(u8 taskId); void TryStoreHeldItemsInPyramidBag(void); void ChooseItemsToTossFromPyramidBag(void); -void CloseBattlePyramidBagAndSetCallback(u8 taskId); +void CloseBattlePyramidBag(u8 taskId); void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId)); #endif // GUARD_BATTLE_PYRAMID_BAG_H diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index 454b6ab345..2e6a0aa4eb 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -6,6 +6,12 @@ #define WINDOW_CLEAR 0x1 #define WINDOW_x80 0x80 +struct StatFractions +{ + u8 dividend; + u8 divisor; +}; + s32 CalcCritChanceStage(u8 battlerAtk, u8 battlerDef, u32 move, bool32 recordAbility); u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move); u8 GetBattlerTurnOrderNum(u8 battlerId); @@ -26,8 +32,13 @@ u32 IsFlowerVeilProtected(u32 battler); u32 IsLeafGuardProtected(u32 battler); bool32 IsShieldsDownProtected(u32 battler); u32 IsAbilityStatusProtected(u32 battler); +bool32 TryResetBattlerStatChanges(u8 battler); +bool32 CanCamouflage(u8 battlerId); +u16 GetNaturePowerMove(void); +void StealTargetItem(u8 battlerStealer, u8 battlerItem); extern void (* const gBattleScriptingCommandsTable[])(void); extern const u8 gBattlePalaceNatureToMoveGroupLikelihood[NUM_NATURES][4]; +extern const struct StatFractions gAccuracyStageRatios[]; #endif // GUARD_BATTLE_SCRIPT_COMMANDS_H diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 2434671952..a36c31a36e 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -48,6 +48,7 @@ extern const u8 BattleScript_SandStormHailEnds[]; extern const u8 BattleScript_SunlightContinues[]; extern const u8 BattleScript_SunlightFaded[]; extern const u8 BattleScript_OverworldWeatherStarts[]; +extern const u8 BattleScript_OverworldTerrain[]; extern const u8 BattleScript_SideStatusWoreOff[]; extern const u8 BattleScript_SafeguardProtected[]; extern const u8 BattleScript_SafeguardEnds[]; @@ -123,6 +124,8 @@ extern const u8 BattleScript_MoveUsedIsInLoveCantAttack[]; extern const u8 BattleScript_NightmareTurnDmg[]; extern const u8 BattleScript_CurseTurnDmg[]; extern const u8 BattleScript_TargetPRLZHeal[]; +extern const u8 BattleScript_TargetWokeUp[]; +extern const u8 BattleScript_TargetBurnHeal[]; extern const u8 BattleScript_MoveEffectSleep[]; extern const u8 BattleScript_YawnMakesAsleep[]; extern const u8 BattleScript_MoveEffectPoison[]; @@ -165,7 +168,6 @@ extern const u8 BattleScript_BRNPrevention[]; extern const u8 BattleScript_PRLZPrevention[]; extern const u8 BattleScript_PSNPrevention[]; extern const u8 BattleScript_ObliviousPreventsAttraction[]; -extern const u8 BattleScript_FlinchPrevention[]; extern const u8 BattleScript_OwnTempoPrevents[]; extern const u8 BattleScript_SoundproofProtected[]; extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; @@ -208,13 +210,15 @@ extern const u8 BattleScript_ItemHealHP_Ret[]; extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[]; extern const u8 BattleScript_HangedOnMsg[]; extern const u8 BattleScript_BerryConfuseHealEnd2[]; +extern const u8 BattleScript_BerryConfuseHealRet[]; extern const u8 BattleScript_BerryStatRaiseEnd2[]; +extern const u8 BattleScript_BerryStatRaiseRet[]; extern const u8 BattleScript_BerryFocusEnergyEnd2[]; extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; extern const u8 BattleScript_ArenaTurnBeginning[]; extern const u8 BattleScript_PalacePrintFlavorText[]; extern const u8 BattleScript_ArenaDoJudgment[]; -extern const u8 BattleScript_82DAA0B[]; +extern const u8 BattleScript_FrontierLinkBattleLost[]; extern const u8 BattleScript_AskIfWantsToForfeitMatch[]; extern const u8 BattleScript_PrintPlayerForfeited[]; extern const u8 BattleScript_PrintPlayerForfeitedLinkBattle[]; @@ -357,6 +361,18 @@ extern const u8 BattleScript_CottonDownActivates[]; extern const u8 BattleScript_BallFetch[]; extern const u8 BattleScript_SandSpitActivates[]; extern const u8 BattleScript_PerishBodyActivates[]; +extern const u8 BattleScript_ActivateAsOne[]; +extern const u8 BattleScript_RaiseStatOnFaintingTarget[]; +extern const u8 BattleScript_QuickClawActivation[]; +extern const u8 BattleScript_CustapBerryActivation[]; +extern const u8 BattleScript_MicleBerryActivateEnd2[]; +extern const u8 BattleScript_MicleBerryActivateRet[]; +extern const u8 BattleScript_JabocaRowapBerryActivates[]; +extern const u8 BattleScript_NotAffectedAbilityPopUp[]; +extern const u8 BattleScript_BattlerShookOffTaunt[]; +extern const u8 BattleScript_BattlerGotOverItsInfatuation[]; +extern const u8 BattleScript_Pickpocket[]; +extern const u8 BattleScript_StickyBarbTransfer[]; extern const u8 BattleScript_DarkTypePreventsPrankster[]; #endif // GUARD_BATTLE_SCRIPTS_H diff --git a/include/battle_setup.h b/include/battle_setup.h index 4099d5f150..5ec7e35d55 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -41,7 +41,7 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerObjEventId, const u8 *trainerSc void ConfigureTwoTrainersBattle(u8 trainerObjEventId, const u8 *trainerScript); void SetUpTwoTrainersBattle(void); bool32 GetTrainerFlagFromScriptPointer(const u8 *data); -void SetUpTrainerMovement(void); +void SetTrainerFacingDirection(void); u8 GetTrainerBattleMode(void); bool8 GetTrainerFlag(void); bool8 HasTrainerBeenFought(u16 trainerId); @@ -53,7 +53,7 @@ void ShowTrainerIntroSpeech(void); const u8 *BattleSetup_GetScriptAddrAfterBattle(void); const u8 *BattleSetup_GetTrainerPostBattleScript(void); void ShowTrainerCantBattleSpeech(void); -void SetUpTrainerEncounterMusic(void); +void PlayTrainerEncounterMusic(void); const u8 *GetTrainerALoseText(void); const u8 *GetTrainerBLoseText(void); const u8 *GetTrainerWonSpeech(void); diff --git a/include/battle_util.h b/include/battle_util.h index f7699fceda..f46db8898f 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -23,6 +23,7 @@ #define ABILITYEFFECT_TRACE1 0xC #define ABILITYEFFECT_TRACE2 0xD #define ABILITYEFFECT_MOVE_END_OTHER 0xE +#define ABILITYEFFECT_SWITCH_IN_TERRAIN 0xFE #define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF #define ITEMEFFECT_ON_SWITCH_IN 0x0 @@ -45,6 +46,7 @@ struct TypePower extern const struct TypePower gNaturalGiftTable[]; +bool32 IsAffectedByFollowMe(u32 battlerAtk, u32 defSide); void HandleAction_UseMove(void); void HandleAction_Switch(void); void HandleAction_UseItem(void); @@ -65,7 +67,7 @@ void PressurePPLoseOnUsingImprison(u8 attacker); void MarkAllBattlersForControllerExec(void); // unused bool32 IsBattlerMarkedForControllerExec(u8 battlerId); void MarkBattlerForControllerExec(u8 battlerId); -void sub_803F850(u8 arg0); +void MarkBattlerReceivedLinkData(u8 arg0); void CancelMultiTurnMoves(u8 battlerId); bool8 WasUnableToUseMove(u8 battlerId); void PrepareStringBattle(u16 stringId, u8 battlerId); @@ -122,7 +124,7 @@ u16 GetMegaEvolutionSpecies(u16 preEvoSpecies, u16 heldItemId); u16 GetWishMegaEvolutionSpecies(u16 preEvoSpecies, u16 moveId1, u16 moveId2, u16 moveId3, u16 moveId4); bool32 CanMegaEvolve(u8 battlerId); void UndoMegaEvolution(u32 monId); -void UndoFormChange(u32 monId, u32 side); +void UndoFormChange(u32 monId, u32 side, bool32 isSwitchingOut); bool32 DoBattlersShareType(u32 battler1, u32 battler2); bool32 CanBattlerGetOrLoseItem(u8 battlerId, u16 itemId); struct Pokemon *GetIllusionMonPtr(u32 battlerId); @@ -130,5 +132,27 @@ void ClearIllusionMon(u32 battlerId); bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId); bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 battlerId); u8 GetBattleMoveSplit(u32 moveId); +bool32 TestMoveFlags(u16 move, u32 flag); +struct Pokemon *GetBattlerPartyData(u8 battlerId); +bool32 CanFling(u8 battlerId); +bool32 IsTelekinesisBannedSpecies(u16 species); +bool32 IsHealBlockPreventingMove(u32 battler, u32 move); +bool32 HasEnoughHpToEatBerry(u32 battlerId, u32 hpFraction, u32 itemId); +void SortBattlersBySpeed(u8 *battlers, bool8 slowToFast); +bool32 TestSheerForceFlag(u8 battler, u16 move); +void TryRestoreStolenItems(void); +bool32 CanStealItem(u8 battlerStealing, u8 battlerItem, u16 item); +void TrySaveExchangedItem(u8 battlerId, u16 stolenItem); +bool32 IsPartnerMonFromSameTrainer(u8 battlerId); + + +// ability checks +bool32 IsRolePlayBannedAbilityAtk(u16 ability); +bool32 IsRolePlayBannedAbility(u16 ability); +bool32 IsSkillSwapBannedAbility(u16 ability); +bool32 IsWorrySeedBannedAbility(u16 ability); +bool32 IsGastroAcidBannedAbility(u16 ability); +bool32 IsEntrainmentBannedAbilityAttacker(u16 ability); +bool32 IsEntrainmentTargetOrSimpleBeamBannedAbility(u16 ability); #endif // GUARD_BATTLE_UTIL_H diff --git a/include/berry.h b/include/berry.h index afd1bc499f..22b9158ee2 100644 --- a/include/berry.h +++ b/include/berry.h @@ -24,15 +24,15 @@ void ObjectEventInteractionPlantBerryTree(void); void ObjectEventInteractionPickBerryTree(void); void ObjectEventInteractionRemoveBerryTree(void); bool8 PlayerHasBerries(void); -void ResetBerryTreeSparkleFlags(void); +void SetBerryTreesSeen(void); extern const struct Berry gBerries[]; -struct UnkStruct_0858AB24 { - u8 unk0; - u16 unk1; +struct BerryCrushBerryData { + u8 difficulty; // The number of A presses required to crush it + u16 powder; }; -extern const struct UnkStruct_0858AB24 gUnknown_0858AB24[]; +extern const struct BerryCrushBerryData gBerryCrush_BerryData[]; #endif // GUARD_BERRY_H diff --git a/include/berry_crush.h b/include/berry_crush.h index a08f1f6996..02dcce5067 100755 --- a/include/berry_crush.h +++ b/include/berry_crush.h @@ -3,6 +3,6 @@ #include "main.h" -void StartBerryCrush(MainCallback callback); +void StartBerryCrush(MainCallback exitCallback); #endif // GUARD_BERRY_CRUSH_H diff --git a/include/bike.h b/include/bike.h index 46b6681691..893b0b19e4 100644 --- a/include/bike.h +++ b/include/bike.h @@ -71,7 +71,7 @@ void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys); void Bike_TryAcroBikeHistoryUpdate(u16 newKeys, u16 heldKeys); bool8 RS_IsRunningDisallowed(u8 tile); bool8 IsBikingDisallowedByPlayer(void); -bool8 player_should_look_direction_be_enforced_upon_movement(void); +bool8 IsPlayerNotUsingAcroBikeOnBumpySlope(void); void GetOnOffBike(u8 transitionFlags); void BikeClearState(int newDirHistory, int newAbStartHistory); void Bike_UpdateBikeCounterSpeed(u8 counter); diff --git a/include/cable_club.h b/include/cable_club.h index 7340742ea9..c493691c1c 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -2,12 +2,13 @@ #define GUARD_CABLE_CLUB_H #include "task.h" +#include "constants/cable_club.h" void CreateTask_EnterCableClubSeat(TaskFunc taskFunc); u8 CreateTask_ReestablishCableClubLink(void); void CB2_ReturnFromCableClubBattle(void); bool32 AreBattleTowerLinkSpeciesSame(u16 *speciesList1, u16 *speciesList2); -void sub_80B3AF8(u8 taskId); +void Task_ReconnectWithLinkPlayers(u8 taskId); void Task_WaitForLinkPlayerConnection(u8 taskId); bool32 GetLinkTrainerCardColor(u8 linkPlayerIndex); diff --git a/include/constants/battle.h b/include/constants/battle.h index 40c604c9ed..73d5c3debe 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -44,38 +44,38 @@ #define BIT_FLANK 2 // Battle Type Flags -#define BATTLE_TYPE_DOUBLE (1 << 0) -#define BATTLE_TYPE_LINK (1 << 1) -#define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set. -#define BATTLE_TYPE_TRAINER (1 << 3) -#define BATTLE_TYPE_FIRST_BATTLE (1 << 4) -#define BATTLE_TYPE_20 (1 << 5) -#define BATTLE_TYPE_MULTI (1 << 6) -#define BATTLE_TYPE_SAFARI (1 << 7) -#define BATTLE_TYPE_BATTLE_TOWER (1 << 8) -#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9) -#define BATTLE_TYPE_ROAMER (1 << 10) -#define BATTLE_TYPE_EREADER_TRAINER (1 << 11) -#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12) -#define BATTLE_TYPE_LEGENDARY (1 << 13) -#define BATTLE_TYPE_REGI (1 << 14) -#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) -#define BATTLE_TYPE_DOME (1 << 16) -#define BATTLE_TYPE_PALACE (1 << 17) -#define BATTLE_TYPE_ARENA (1 << 18) -#define BATTLE_TYPE_FACTORY (1 << 19) -#define BATTLE_TYPE_PIKE (1 << 20) -#define BATTLE_TYPE_PYRAMID (1 << 21) -#define BATTLE_TYPE_INGAME_PARTNER (1 << 22) -#define BATTLE_TYPE_x800000 (1 << 23) -#define BATTLE_TYPE_RECORDED (1 << 24) -#define BATTLE_TYPE_x2000000 (1 << 25) -#define BATTLE_TYPE_TRAINER_HILL (1 << 26) -#define BATTLE_TYPE_SECRET_BASE (1 << 27) -#define BATTLE_TYPE_GROUDON (1 << 28) -#define BATTLE_TYPE_KYOGRE (1 << 29) -#define BATTLE_TYPE_RAYQUAZA (1 << 30) -#define BATTLE_TYPE_x80000000 (1 << 31) +#define BATTLE_TYPE_DOUBLE (1 << 0) +#define BATTLE_TYPE_LINK (1 << 1) +#define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set. +#define BATTLE_TYPE_TRAINER (1 << 3) +#define BATTLE_TYPE_FIRST_BATTLE (1 << 4) +#define BATTLE_TYPE_LINK_IN_BATTLE (1 << 5) // Set on battle entry, cleared on exit. Checked rarely +#define BATTLE_TYPE_MULTI (1 << 6) +#define BATTLE_TYPE_SAFARI (1 << 7) +#define BATTLE_TYPE_BATTLE_TOWER (1 << 8) +#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9) +#define BATTLE_TYPE_ROAMER (1 << 10) +#define BATTLE_TYPE_EREADER_TRAINER (1 << 11) +#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12) +#define BATTLE_TYPE_LEGENDARY (1 << 13) +#define BATTLE_TYPE_REGI (1 << 14) +#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) +#define BATTLE_TYPE_DOME (1 << 16) +#define BATTLE_TYPE_PALACE (1 << 17) +#define BATTLE_TYPE_ARENA (1 << 18) +#define BATTLE_TYPE_FACTORY (1 << 19) +#define BATTLE_TYPE_PIKE (1 << 20) +#define BATTLE_TYPE_PYRAMID (1 << 21) +#define BATTLE_TYPE_INGAME_PARTNER (1 << 22) +#define BATTLE_TYPE_TOWER_LINK_MULTI (1 << 23) +#define BATTLE_TYPE_RECORDED (1 << 24) +#define BATTLE_TYPE_RECORDED_LINK (1 << 25) +#define BATTLE_TYPE_TRAINER_HILL (1 << 26) +#define BATTLE_TYPE_SECRET_BASE (1 << 27) +#define BATTLE_TYPE_GROUDON (1 << 28) +#define BATTLE_TYPE_KYOGRE (1 << 29) +#define BATTLE_TYPE_RAYQUAZA (1 << 30) +#define BATTLE_TYPE_RECORDED_IS_MASTER (1 << 31) #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) #define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) @@ -185,7 +185,8 @@ #define HITMARKER_IGNORE_SAFEGUARD (1 << 13) #define HITMARKER_SYNCHRONISE_EFFECT (1 << 14) #define HITMARKER_RUN (1 << 15) -// 3 free spots because of change in handling of UNDERGROUND/UNDERGWATER/ON AIR +#define HITMARKER_IGNORE_DISGUISE (1 << 16) +// 3 free spots because of change in handling of UNDERGROUND/UNDERWATER/ON AIR #define HITMARKER_UNABLE_TO_USE_MOVE (1 << 19) #define HITMARKER_x100000 (1 << 20) #define HITMARKER_x200000 (1 << 21) @@ -220,19 +221,23 @@ #define SIDE_STATUS_CRAFTY_SHIELD (1 << 20) #define SIDE_STATUS_MAT_BLOCK (1 << 21) +#define SIDE_STATUS_HAZARDS_ANY (SIDE_STATUS_SPIKES | SIDE_STATUS_STICKY_WEB | SIDE_STATUS_TOXIC_SPIKES | SIDE_STATUS_STEALTH_ROCK) +#define SIDE_STATUS_SCREEN_ANY (SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL) + // Field affecting statuses. -#define STATUS_FIELD_MAGIC_ROOM 0x1 -#define STATUS_FIELD_TRICK_ROOM 0x2 -#define STATUS_FIELD_WONDER_ROOM 0x4 -#define STATUS_FIELD_MUDSPORT 0x8 -#define STATUS_FIELD_WATERSPORT 0x10 -#define STATUS_FIELD_GRAVITY 0x20 -#define STATUS_FIELD_GRASSY_TERRAIN 0x40 -#define STATUS_FIELD_MISTY_TERRAIN 0x80 -#define STATUS_FIELD_ELECTRIC_TERRAIN 0x100 -#define STATUS_FIELD_PSYCHIC_TERRAIN 0x200 -#define STATUS_FIELD_ION_DELUGE 0x400 -#define STATUS_FIELD_FAIRY_LOCK 0x800 +#define STATUS_FIELD_MAGIC_ROOM (1 << 0) +#define STATUS_FIELD_TRICK_ROOM (1 << 1) +#define STATUS_FIELD_WONDER_ROOM (1 << 2) +#define STATUS_FIELD_MUDSPORT (1 << 3) +#define STATUS_FIELD_WATERSPORT (1 << 4) +#define STATUS_FIELD_GRAVITY (1 << 5) +#define STATUS_FIELD_GRASSY_TERRAIN (1 << 6) +#define STATUS_FIELD_MISTY_TERRAIN (1 << 7) +#define STATUS_FIELD_ELECTRIC_TERRAIN (1 << 8) +#define STATUS_FIELD_PSYCHIC_TERRAIN (1 << 9) +#define STATUS_FIELD_ION_DELUGE (1 << 10) +#define STATUS_FIELD_FAIRY_LOCK (1 << 11) +#define STATUS_FIELD_TERRAIN_PERMANENT (1 << 12) // Overworld thunderstorm generates electric terrain #define STATUS_TERRAIN_ANY (STATUS_FIELD_GRASSY_TERRAIN | STATUS_FIELD_MISTY_TERRAIN | STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_PSYCHIC_TERRAIN) @@ -359,6 +364,10 @@ #define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_PLAIN 9 +#define B_WAIT_TIME_LONG 64 +#define B_WAIT_TIME_MED 48 +#define B_WAIT_TIME_SHORT 32 + // Move targets #define MOVE_TARGET_SELECTED 0x0 #define MOVE_TARGET_DEPENDS 0x1 diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 974ef2b770..7d38d6dbaf 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -30,25 +30,34 @@ #define AI_WEATHER_HAIL 4 // get_how_powerful_move_is -#define MOVE_POWER_DISCOURAGED 0 -#define MOVE_POWER_BEST 1 -#define MOVE_POWER_GOOD 2 // Similar dmg range with best. -#define MOVE_POWER_WEAK 3 // Significantly lower than best and good. +#define MOVE_POWER_OTHER 0 +#define MOVE_POWER_BEST 1 +#define MOVE_POWER_GOOD 2 // Similar dmg range with best. +#define MOVE_POWER_WEAK 3 // Significantly lower than best and good. -// script's table id to bit -#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0) -#define AI_SCRIPT_TRY_TO_FAINT (1 << 1) -#define AI_SCRIPT_CHECK_VIABILITY (1 << 2) -#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3) -#define AI_SCRIPT_RISKY (1 << 4) -#define AI_SCRIPT_PREFER_STRONGEST_MOVE (1 << 5) -#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6) -#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7) -#define AI_SCRIPT_HP_AWARE (1 << 8) -#define AI_SCRIPT_UNKNOWN (1 << 9) -// 10 - 28 are not used -#define AI_SCRIPT_ROAMING (1 << 29) -#define AI_SCRIPT_SAFARI (1 << 30) -#define AI_SCRIPT_FIRST_BATTLE (1 << 31) +// AI Flags. Most run specific functions to update score, new flags are used for internal logic in other scripts +#define AI_FLAG_CHECK_BAD_MOVE (1 << 0) +#define AI_FLAG_TRY_TO_FAINT (1 << 1) +#define AI_FLAG_CHECK_VIABILITY (1 << 2) +#define AI_FLAG_SETUP_FIRST_TURN (1 << 3) +#define AI_FLAG_RISKY (1 << 4) +#define AI_FLAG_PREFER_STRONGEST_MOVE (1 << 5) +#define AI_FLAG_PREFER_BATON_PASS (1 << 6) +#define AI_FLAG_DOUBLE_BATTLE (1 << 7) // removed, split between AI_FLAG_CHECK_BAD_MOVE & AI_FLAG_CHECK_GOOD_MOVE +#define AI_FLAG_HP_AWARE (1 << 8) +// New, Trainer Handicap Flags +#define AI_FLAG_NEGATE_UNAWARE (1 << 9) // AI is NOT aware of negating effects like wonder room, mold breaker, etc +#define AI_FLAG_WILL_SUICIDE (1 << 10) // AI will use explosion / self destruct / final gambit / etc +// New, Trainer Strategy Flags +#define AI_FLAG_HELP_PARTNER (1 << 11) // AI can try to help partner. If not set, will tend not to target partner +#define AI_FLAG_PREFER_STATUS_MOVES (1 << 12) // AI gets a score bonus for status moves. Should be combined with AI_FLAG_CHECK_BAD_MOVE to prevent using only status moves +#define AI_FLAG_STALL (1 << 13) // AI stalls battle and prefers secondary damage/trapping/etc. TODO not finished +#define AI_FLAG_SCREENER (1 << 14) // AI prefers screening effects like reflect, mist, etc. TODO unfinished +#define AI_FLAG_SMART_SWITCHING (1 << 15) // AI includes a lot more switching checks + +// 'other' ai logic flags +#define AI_FLAG_ROAMING (1 << 29) +#define AI_FLAG_SAFARI (1 << 30) +#define AI_FLAG_FIRST_BATTLE (1 << 31) #endif // GUARD_CONSTANTS_BATTLE_AI_H diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 90766f9d59..c04bc14f7e 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -493,62 +493,58 @@ #define BG_DYNAMAX_CANNON 76 #define BG_AURA_SPHERE 77 -// table ids for general animations -#define B_ANIM_CASTFORM_CHANGE 0x0 -#define B_ANIM_STATS_CHANGE 0x1 -#define B_ANIM_SUBSTITUTE_FADE 0x2 -#define B_ANIM_SUBSTITUTE_APPEAR 0x3 -#define B_ANIM_POKEBLOCK_THROW 0x4 -#define B_ANIM_ITEM_KNOCKOFF 0x5 -#define B_ANIM_TURN_TRAP 0x6 -#define B_ANIM_HELD_ITEM_EFFECT 0x7 -#define B_ANIM_SMOKEBALL_ESCAPE 0x8 -#define B_ANIM_HANGED_ON 0x9 -#define B_ANIM_RAIN_CONTINUES 0xA -#define B_ANIM_SUN_CONTINUES 0xB -#define B_ANIM_SANDSTORM_CONTINUES 0xC -#define B_ANIM_HAIL_CONTINUES 0xD -#define B_ANIM_LEECH_SEED_DRAIN 0xE -#define B_ANIM_MON_HIT 0xF -#define B_ANIM_ITEM_STEAL 0x10 -#define B_ANIM_SNATCH_MOVE 0x11 -#define B_ANIM_FUTURE_SIGHT_HIT 0x12 -#define B_ANIM_DOOM_DESIRE_HIT 0x13 -#define B_ANIM_FOCUS_PUNCH_SETUP 0x14 -#define B_ANIM_INGRAIN_HEAL 0x15 -#define B_ANIM_WISH_HEAL 0x16 -#define B_ANIM_MEGA_EVOLUTION 0x17 -#define B_ANIM_TERRAIN_MISTY 0x18 -#define B_ANIM_TERRAIN_GRASSY 0x19 -#define B_ANIM_TERRAIN_ELECTRIC 0x1A -#define B_ANIM_TERRAIN_PSYCHIC 0x1B -#define B_ANIM_ILLUSION_OFF 0x1C -#define B_ANIM_FORM_CHANGE 0x1D -#define B_ANIM_SLIDE_OFFSCREEN 0x1E // for Emergency Exit -#define B_ANIM_RESTORE_BG 0x1F // for Terrain Endings -#define B_ANIM_TOTEM_FLARE 0x20 // Totem boosts aura flare +// table ids for general animations (gBattleAnims_General) +#define B_ANIM_CASTFORM_CHANGE 0 +#define B_ANIM_STATS_CHANGE 1 +#define B_ANIM_SUBSTITUTE_FADE 2 +#define B_ANIM_SUBSTITUTE_APPEAR 3 +#define B_ANIM_POKEBLOCK_THROW 4 +#define B_ANIM_ITEM_KNOCKOFF 5 +#define B_ANIM_TURN_TRAP 6 +#define B_ANIM_HELD_ITEM_EFFECT 7 +#define B_ANIM_SMOKEBALL_ESCAPE 8 +#define B_ANIM_HANGED_ON 9 +#define B_ANIM_RAIN_CONTINUES 10 +#define B_ANIM_SUN_CONTINUES 11 +#define B_ANIM_SANDSTORM_CONTINUES 12 +#define B_ANIM_HAIL_CONTINUES 13 +#define B_ANIM_LEECH_SEED_DRAIN 14 +#define B_ANIM_MON_HIT 15 +#define B_ANIM_ITEM_STEAL 16 +#define B_ANIM_SNATCH_MOVE 17 +#define B_ANIM_FUTURE_SIGHT_HIT 18 +#define B_ANIM_DOOM_DESIRE_HIT 19 +#define B_ANIM_FOCUS_PUNCH_SETUP 20 +#define B_ANIM_INGRAIN_HEAL 21 +#define B_ANIM_WISH_HEAL 22 +#define B_ANIM_MEGA_EVOLUTION 23 +#define B_ANIM_ILLUSION_OFF 24 +#define B_ANIM_FORM_CHANGE 25 +#define B_ANIM_SLIDE_OFFSCREEN 26 // for Emergency Exit +#define B_ANIM_RESTORE_BG 27 // for Terrain Endings +#define B_ANIM_TOTEM_FLARE 28 // Totem boosts aura flare -// special animations table -#define B_ANIM_LVL_UP 0x0 -#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 -#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 -#define B_ANIM_BALL_THROW 0x3 -#define B_ANIM_BALL_THROW_WITH_TRAINER 0x4 -#define B_ANIM_SUBSTITUTE_TO_MON 0x5 -#define B_ANIM_MON_TO_SUBSTITUTE 0x6 -#define B_ANIM_CRITICAL_CAPTURE_THROW 0x7 +// special animations table (gBattleAnims_Special) +#define B_ANIM_LVL_UP 0 +#define B_ANIM_SWITCH_OUT_PLAYER_MON 1 +#define B_ANIM_SWITCH_OUT_OPPONENT_MON 2 +#define B_ANIM_BALL_THROW 3 +#define B_ANIM_BALL_THROW_WITH_TRAINER 4 +#define B_ANIM_SUBSTITUTE_TO_MON 5 +#define B_ANIM_MON_TO_SUBSTITUTE 6 +#define B_ANIM_CRITICAL_CAPTURE_THROW 7 -// status animation table -#define B_ANIM_STATUS_PSN 0x0 -#define B_ANIM_STATUS_CONFUSION 0x1 -#define B_ANIM_STATUS_BRN 0x2 -#define B_ANIM_STATUS_INFATUATION 0x3 -#define B_ANIM_STATUS_SLP 0x4 -#define B_ANIM_STATUS_PRZ 0x5 -#define B_ANIM_STATUS_FRZ 0x6 -#define B_ANIM_STATUS_CURSED 0x7 -#define B_ANIM_STATUS_NIGHTMARE 0x8 -#define B_ANIM_STATUS_WRAPPED 0x9 // does not actually exist +// status animation table (gBattleAnims_StatusConditions) +#define B_ANIM_STATUS_PSN 0 +#define B_ANIM_STATUS_CONFUSION 1 +#define B_ANIM_STATUS_BRN 2 +#define B_ANIM_STATUS_INFATUATION 3 +#define B_ANIM_STATUS_SLP 4 +#define B_ANIM_STATUS_PRZ 5 +#define B_ANIM_STATUS_FRZ 6 +#define B_ANIM_STATUS_CURSED 7 +#define B_ANIM_STATUS_NIGHTMARE 8 +#define B_ANIM_STATUS_WRAPPED 9 // does not actually exist // Tasks with return values often assign them to gBattleAnimArgs[7]. #define ARG_RET_ID 7 @@ -569,34 +565,6 @@ #define ANIM_WEATHER_SANDSTORM 3 #define ANIM_WEATHER_HAIL 4 -// Battle mon back animations. -#define BACK_ANIM_NONE 0x00 -#define BACK_ANIM_H_SLIDE_QUICK 0x01 -#define BACK_ANIM_H_SLIDE 0x02 -#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1 0x03 -#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2 0x04 -#define BACK_ANIM_SHRINK_GROW_1 0x05 -#define BACK_ANIM_GROW_1 0x06 -#define BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE 0x07 -#define BACK_ANIM_HORIZONTAL_SHAKE 0x08 -#define BACK_ANIM_VERTICAL_SHAKE 0x09 -#define BACK_ANIM_V_SHAKE_WITH_H_SLIDE 0x0a -#define BACK_ANIM_VERTICAL_STRETCH 0x0b -#define BACK_ANIM_HORIZONTAL_STRETCH 0x0c -#define BACK_ANIM_GROW_2 0x0d -#define BACK_ANIM_V_SHAKE_WITH_PAUSE 0x0e -#define BACK_ANIM_CIRCLE_MOVE_CLOCKWISE 0x0f -#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL 0x10 -#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE 0x11 -#define BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE 0x12 -#define BACK_ANIM_DIP_RIGHT_SIDE 0x13 -#define BACK_ANIM_SHRINK_GROW_2 0x14 -#define BACK_ANIM_JOLT_RIGHT 0x15 -#define BACK_ANIM_FLASH_YELLOW_WITH_SHAKE 0x16 -#define BACK_ANIM_FADE_RED_WITH_SHAKE 0x17 -#define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18 -#define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19 - // mon pal blend #define ANIM_PAL_BG 0x1 #define ANIM_PAL_ATK 0x2 @@ -621,5 +589,4 @@ #define ANIM_SURF_PAL_MUDDY_WATER 1 #define ANIM_SURF_PAL_SLUDGE_WAVE 2 - #endif // GUARD_CONSTANTS_BATTLE_ANIM_H diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index f5129a4792..5f849448e9 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_BATTLE_CONFIG_H #define GUARD_CONSTANTS_BATTLE_CONFIG_H +#include "constants/expansion_branches.h" + // Species with peculiar battle effects. #ifndef POKEMON_EXPANSION #define SPECIES_DIALGA 0 @@ -76,58 +78,60 @@ #endif // Calculation settings -#define B_CRIT_CHANCE GEN_6 // Chances of a critical hit landing. See CalcCritChanceStage. -#define B_CRIT_MULTIPLIER GEN_6 // In Gen6+, critical hits multiply damage by 1.5 instead of 2. -#define B_EXP_CATCH GEN_6 // In Gen6+, Pokémon get experience from catching. -#define B_TRAINER_EXP_MULTIPLIER GEN_6 // In Gen7+, trainer battles no longer give a 1.5 multiplier to exp gain. -#define B_SPLIT_EXP GEN_5 // In Gen6+, all participating mon get full experience. -#define B_SCALED_EXP GEN_6 // In Gen5 and Gen7+, experience is weighted by level difference. -#define B_BURN_DAMAGE GEN_6 // In Gen7+, burn damage is 1/16th of max HP instead of 1/8th. -#define B_PARALYSIS_SPEED GEN_6 // In Gen7+, speed is decreased by 50% instead of 75%. -#define B_TERRAIN_TYPE_BOOST GEN_6 // In Gen8+, damage is boosted by 30% instead of 50%. -#define B_BINDING_DAMAGE GEN_6 // In Gen6+, binding damage is 1/8 of max HP instead of 1/16. (With Binding Band, 1/6 and 1/8 respectively.) -#define B_CONFUSION_SELF_DMG_CHANCE GEN_6 // In Gen7+, confusion has a 33.3% of self-damage, instead of 50%. -#define B_MULTI_HIT_CHANCE GEN_6 // In Gen5+, multi-hit moves have different %. See Cmd_setmultihitcounter for values. -#define B_RECOIL_IF_MISS_DMG GEN_6 // In Gen5+, Jump Kick and Hi Jump Kick will always do half of the user's max HP when missing. -#define B_PSYWAVE_DMG GEN_6 // Psywave's damage formula. See Cmd_psywavedamageeffect. -#define B_BADGE_BOOST GEN_6 // In Gen4+, Gym Badges no longer boost a Pokémon's stats +#define B_CRIT_CHANCE GEN_7 // Chances of a critical hit landing. See CalcCritChanceStage. +#define B_CRIT_MULTIPLIER GEN_7 // In Gen6+, critical hits multiply damage by 1.5 instead of 2. +#define B_EXP_CATCH GEN_7 // In Gen6+, Pokémon get experience from catching. +#define B_TRAINER_EXP_MULTIPLIER GEN_7 // In Gen7+, trainer battles no longer give a 1.5 multiplier to EXP gain. +#define B_SPLIT_EXP GEN_7 // In Gen6+, all participating mon get full experience. +#define B_SCALED_EXP GEN_7 // In Gen5 and Gen7+, experience is weighted by level difference. +#define B_BURN_DAMAGE GEN_7 // In Gen7+, burn damage is 1/16th of max HP instead of 1/8th. +#define B_PARALYSIS_SPEED GEN_7 // In Gen7+, Speed is decreased by 50% instead of 75%. +#define B_TERRAIN_TYPE_BOOST GEN_8 // In Gen8, damage is boosted by 30% instead of 50%. +#define B_BINDING_DAMAGE GEN_7 // In Gen6+, binding damage is 1/8 of max HP instead of 1/16. (With Binding Band, 1/6 and 1/8 respectively.) +#define B_CONFUSION_SELF_DMG_CHANCE GEN_7 // In Gen7+, confusion has a 33.3% of self-damage, instead of 50%. +#define B_MULTI_HIT_CHANCE GEN_7 // In Gen5+, multi-hit moves have different %. See Cmd_setmultihitcounter for values. +#define B_RECOIL_IF_MISS_DMG GEN_7 // In Gen5+, Jump Kick and High Jump Kick will always do half of the user's max HP when missing. +#define B_PSYWAVE_DMG GEN_7 // Psywave's damage formula. See Cmd_psywavedamageeffect. +#define B_BADGE_BOOST GEN_7 // In Gen4+, Gym Badges no longer boost a Pokémon's stats. // Move data settings -#define B_UPDATED_MOVE_DATA GEN_7 // Updates move data in gBattleMoves, including Power, Accuracy, PP, stat changes, targets, chances of secondary effects, etc. -#define B_PHYSICAL_SPECIAL_SPLIT GEN_6 // In Gen3, the move's type determines if it will do physical or special damage. The split icon in the summary will reflect this. -#define B_FELL_STINGER_STAT_RAISE GEN_6 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. -#define B_KINGS_SHIELD_LOWER_ATK GEN_6 // In Gen7+, it lowers Atk by 1 stage instead of 2 of oponents that hit it. +#define B_UPDATED_MOVE_DATA GEN_8 // Updates move data in gBattleMoves, including Power, Accuracy, PP, stat changes, targets, chances of secondary effects, etc. +#define B_PHYSICAL_SPECIAL_SPLIT GEN_7 // In Gen3, the move's type determines if it will do physical or special damage. The split icon in the summary will reflect this. +#define B_FELL_STINGER_STAT_RAISE GEN_7 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. +#define B_KINGS_SHIELD_LOWER_ATK GEN_7 // In Gen7+, it lowers Atk by 1 stage instead of 2 of oponents that hit it. #define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. -#define B_WATER_SHURIKEN_SPLIT GEN_8 // In Gen7, Water Shuriken was changed from Physical to Special. // Other move settings -#define B_SOUND_SUBSTITUTE GEN_6 // In Gen6+, sound moves bypass Substitute. -#define B_TOXIC_NEVER_MISS GEN_6 // In Gen6+, if Toxic is used by a Poison type, it will never miss. -#define B_PAYBACK_SWITCH_BOOST GEN_6 // In Gen5+, if the opponent switches out, Payback's damage will no longer be doubled. -#define B_BINDING_TURNS GEN_6 // In Gen5+, binding moves last for 4-5 turns instead of 2-5 turns. (With Grip Claw, 7 and 5 turns respectively.) -#define B_UPROAR_TURNS GEN_6 // In Gen5+, Uproar lasts for 3 turns instead of 2-5 turns. -#define B_DISABLE_TURNS GEN_6 // Disable's turns. See Cmd_disablelastusedattack. -#define B_INCINERATE_GEMS GEN_6 // In Gen6+, Incinerate can destroy Gems. -#define B_MINIMIZE_DMG_ACC GEN_6 // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. -#define B_PP_REDUCED_BY_SPITE GEN_6 // In Gen4+, Spite reduces the foe's last move's PP by 4, instead of 2 to 5. -#define B_CAN_SPITE_FAIL GEN_6 // In Gen4+, Spite can no longer fail if the foe's last move only has 1 remaining PP. -#define B_CRASH_IF_TARGET_IMMUNE GEN_6 // In Gen4+, The user of Jump Kick or Hi Jump Kick will "keep going and crash" if it attacks a target that is immune to the move. +#define B_SOUND_SUBSTITUTE GEN_7 // In Gen6+, sound moves bypass Substitute. +#define B_TOXIC_NEVER_MISS GEN_7 // In Gen6+, if Toxic is used by a Poison-type Pokémon, it will never miss. +#define B_PAYBACK_SWITCH_BOOST GEN_7 // In Gen5+, if the opponent switches out, Payback's damage will no longer be doubled. +#define B_BINDING_TURNS GEN_7 // In Gen5+, binding moves last for 4-5 turns instead of 2-5 turns. (With Grip Claw, 7 and 5 turns respectively.) +#define B_UPROAR_TURNS GEN_7 // In Gen5+, Uproar lasts for 3 turns instead of 2-5 turns. +#define B_DISABLE_TURNS GEN_7 // Disable's turns. See Cmd_disablelastusedattack. +#define B_INCINERATE_GEMS GEN_7 // In Gen6+, Incinerate can destroy Gems. +#define B_MINIMIZE_DMG_ACC GEN_7 // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. +#define B_PP_REDUCED_BY_SPITE GEN_7 // In Gen4+, Spite reduces the foe's last move's PP by 4, instead of 2 to 5. +#define B_CAN_SPITE_FAIL GEN_7 // In Gen4+, Spite can no longer fail if the foe's last move only has 1 remaining PP. +#define B_CRASH_IF_TARGET_IMMUNE GEN_7 // In Gen4+, The user of Jump Kick or High Jump Kick will "keep going and crash" if it attacks a target that is immune to the move. +#define B_TAILWIND_TIMER GEN_7 // In Gen5+, Tailwind lasts 4 turns instead of 3. +#define B_MEMENTO_FAIL GEN_7 // In Gen4+, Memento fails if there is no target or if the target is protected or behind substitute. But not if Atk/Sp. Atk are at -6. // Ability settings -#define B_ABILITY_WEATHER GEN_6 // In Gen6+, ability-induced weather lasts 5 turns. Before, it lasted until the battle ended or until it was changed by a move. -#define B_GALE_WINGS GEN_6 // In Gen7+ requires full HP to trigger. +#define B_ABILITY_WEATHER GEN_7 // In Gen6+, ability-induced weather lasts 5 turns. Before, it lasted until the battle ended or until it was changed by a move or a different weather-affecting ability. +#define B_GALE_WINGS GEN_7 // In Gen7+ requires full HP to trigger. #define B_STANCE_CHANGE_FAIL GEN_7 // In Gen7+, Stance Change fails if the Pokémon is unable to use a move because of confusion, paralysis, etc. In Gen6, it doesn't. -#define B_GHOSTS_ESCAPE GEN_6 // In Gen6+, ghosts can escape even when blocked by abilities such as Shadow Tag. -#define B_MOODY_ACC_EVASION GEN_6 // In Gen8+, Moody CANNOT raise Accuray and Evasion any more. -#define B_FLASH_FIRE_FROZEN GEN_6 // In Gen5+, Flash Fire can trigger even when frozen, when it couldn't before. -#define B_SYNCHRONIZE_NATURE GEN_6 // In Gen8+, if the Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same ability, as opposed to 50% previously. +#define B_GHOSTS_ESCAPE GEN_7 // In Gen6+, Ghost-type Pokémon can escape even when blocked by abilities such as Shadow Tag. +#define B_MOODY_ACC_EVASION GEN_8 // In Gen8, Moody CANNOT raise Accuracy and Evasion anymore. +#define B_FLASH_FIRE_FROZEN GEN_7 // In Gen5+, Flash Fire can trigger even when frozen, when it couldn't before. +#define B_SYNCHRONIZE_NATURE GEN_8 // In Gen8, if the Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same ability, as opposed to 50% previously. #define B_UPDATED_INTIMIDATE GEN_8 // In Gen8, Intimidate doesn't work on opponents with the Inner Focus, Scrappy, Own Tempo or Oblivious abilities. #define B_PRANKSTER GEN_7 // In Gen7, Prankster-elevated status moves do not affect Dark type Pokemon // Item settings -#define B_HP_BERRIES GEN_6 // In Gen4+, berries which restore hp activate immediately after hp drops to half. In gen3, the effect occurs at the end of the turn. -#define B_BERRIES_INSTANT GEN_6 // In Gen4+, most berries activate on battle start/switch-in if applicable. In gen3, they only activate either at the move end or turn end. +#define B_HP_BERRIES GEN_7 // In Gen4+, berries which restore hp activate immediately after HP drops to half. In Gen3, the effect occurs at the end of the turn. +#define B_BERRIES_INSTANT GEN_7 // In Gen4+, most berries activate on battle start/switch-in if applicable. In Gen3, they only activate either at the move end or turn end. #define B_X_ITEMS_BUFF GEN_7 // In Gen7+, the X Items raise a stat by 2 stages instead of 1. +#define B_MENTAL_HERB GEN_5 // In Gen5+, mental herb cures Taunt, Encore, Heal Block, and Disable // Flag settings // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. @@ -135,6 +139,11 @@ #define B_FLAG_INVERSE_BATTLE 0 // If this flag is set, the battle's type effectiveness are inversed. For example, fire is super effective against water. #define B_FLAG_FORCE_DOUBLE_WILD 0 // If this flag is set, all land and surfing wild battles will be double battles. +// Var Settings +// To use the following features in scripting, replace the 0s with the var ID you're assigning it to. +// Eg: Replace with VAR_UNUSED_0x40F7 so you can use VAR_TERRAIN for that feature. +#define VAR_TERRAIN 0 // If this var has a value, assigning a STATUS_FIELD_xx_TERRAIN to it before battle causes the battle to start with that terrain active + // Interface settings #define B_ABILITY_POP_UP TRUE // In Gen5+, the Pokémon abilities are displayed in a pop-up, when they activate in battle. #define B_FAST_INTRO TRUE // If set to TRUE, battle intro texts print at the same time as animation of a Pokémon, as opposing to waiting for the animation to end. @@ -145,12 +154,16 @@ #define B_CRITICAL_CAPTURE TRUE // If set to TRUE, Critical Capture will be enabled. #define B_CATCHING_CHARM_BOOST 20 // % boost in Critical Capture odds if player has the Catching Charm. +// Item Theft Settings +#define B_TRAINERS_KNOCK_OFF_ITEMS TRUE // If TRUE, trainers can steal/swap your items (non-berries are restored after battle). In vanilla games trainers cannot steal items. + // Other #define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter. -#define B_SLEEP_TURNS GEN_6 // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns. -#define B_PARALYZE_ELECTRIC GEN_6 // In Gen6+, Electric-type Pokémon can't be paralyzed. -#define B_POWDER_GRASS GEN_6 // In Gen6+, Grass-type Pokémon are immune to powder and spore moves. -#define B_STEEL_RESISTANCES GEN_6 // In Gen6+, Steel-type Pokémon are no longer resistant to Dark and Ghost moves. +#define B_SLEEP_TURNS GEN_7 // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns. +#define B_PARALYZE_ELECTRIC GEN_7 // In Gen6+, Electric-type Pokémon can't be paralyzed. +#define B_POWDER_GRASS GEN_7 // In Gen6+, Grass-type Pokémon are immune to powder and spore moves. +#define B_STEEL_RESISTANCES GEN_7 // In Gen6+, Steel-type Pokémon are no longer resistant to Dark-type and Ghost-type moves. +#define B_THUNDERSTORM_TERRAIN TRUE // If TRUE, overworld Thunderstorm generates Rain and Electric Terrain as in Gen 8. // Animation Settings #define B_NEW_SWORD_PARTICLE FALSE // If set to TRUE, it updates Swords Dance's particle. @@ -169,8 +182,8 @@ #define B_NEW_IMPACT_PALETTE FALSE // If set to TRUE, it updates the basic 'hit' palette. #define B_NEW_SURF_PARTICLE_PALETTE FALSE // If set to TRUE, it updates Surf's wave palette. -#define B_HIDE_HEALTHBOXES_DURING_ANIMS TRUE // If set to TRUE, hides healthboxes during move animations. -#define B_TERRAIN_BG_CHANGE TRUE // If set to TRUE, terrain moves permanently change the default battle background until the effect fades. -#define B_ENABLE_DEBUG TRUE // If set to TRUE, enables a debug menu to use in battles by pressing the Select button. +#define B_HIDE_HEALTHBOXES_DURING_ANIMS TRUE // If set to TRUE, hides healthboxes during move animations. +#define B_TERRAIN_BG_CHANGE TRUE // If set to TRUE, terrain moves permanently change the default battle background until the effect fades. +#define B_ENABLE_DEBUG TRUE // If set to TRUE, enables a debug menu to use in battles by pressing the Select button. #endif // GUARD_CONSTANTS_BATTLE_CONFIG_H diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 36d08e46f7..f5b302fd06 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -79,6 +79,21 @@ #define FRONTIER_MANIAC_MESSAGE_COUNT 3 +// Frontier TV Show +#define FRONTIER_SHOW_TOWER_SINGLES 1 +#define FRONTIER_SHOW_TOWER_DOUBLES 2 +#define FRONTIER_SHOW_TOWER_MULTIS 3 +#define FRONTIER_SHOW_TOWER_LINK_MULTIS 4 +#define FRONTIER_SHOW_DOME_SINGLES 5 +#define FRONTIER_SHOW_DOME_DOUBLES 6 +#define FRONTIER_SHOW_FACTORY_SINGLES 7 +#define FRONTIER_SHOW_FACTORY_DOUBLES 8 +#define FRONTIER_SHOW_PIKE 9 +#define FRONTIER_SHOW_ARENA 10 +#define FRONTIER_SHOW_PALACE_SINGLES 11 +#define FRONTIER_SHOW_PALACE_DOUBLES 12 +#define FRONTIER_SHOW_PYRAMID 13 + // Frontier Gambler #define FRONTIER_GAMBLER_WAITING 0 #define FRONTIER_GAMBLER_PLACED_BET 1 diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index b018429de4..ec4978dd4a 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -126,7 +126,7 @@ #define EFFECT_PRESENT 122 #define EFFECT_FRUSTRATION 123 #define EFFECT_SAFEGUARD 124 -#define EFFECT_THAW_HIT 125 +#define EFFECT_UNUSED_125 125 #define EFFECT_MAGNITUDE 126 #define EFFECT_BATON_PASS 127 #define EFFECT_PURSUIT 128 @@ -296,17 +296,17 @@ #define EFFECT_SHELL_SMASH 290 #define EFFECT_SHIFT_GEAR 291 #define EFFECT_DEFENSE_UP_3 292 -#define EFFECT_NOBLE_ROAR 293 // Atk and Sp atk down by 1 +#define EFFECT_NOBLE_ROAR 293 #define EFFECT_VENOM_DRENCH 294 #define EFFECT_TOXIC_THREAD 295 #define EFFECT_CLEAR_SMOG 296 #define EFFECT_HIT_SWITCH_TARGET 297 #define EFFECT_FINAL_GAMBIT 298 -#define EFFECT_CHANGE_TYPE_ON_ITEM 299 // Techno Blast, Multi Attack, Judgment +#define EFFECT_CHANGE_TYPE_ON_ITEM 299 #define EFFECT_AUTOTOMIZE 300 #define EFFECT_COPYCAT 301 #define EFFECT_DEFOG 302 -#define EFFECT_HIT_ENEMY_HEAL_ALLY 303 // Pollen Puff +#define EFFECT_HIT_ENEMY_HEAL_ALLY 303 #define EFFECT_SMACK_DOWN 304 #define EFFECT_SYNCHRONOISE 305 #define EFFECT_PSYCHO_SHIFT 306 @@ -350,6 +350,10 @@ #define EFFECT_GEOMANCY 344 #define EFFECT_FAIRY_LOCK 345 #define EFFECT_ALLY_SWITCH 346 -#define EFFECT_SLEEP_HIT 347 // Relic Song +#define EFFECT_SLEEP_HIT 347 +#define EFFECT_ATTACKER_DEFENSE_DOWN_HIT 348 +#define EFFECT_BODY_PRESS 349 + +#define NUM_BATTLE_MOVE_EFFECTS 350 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_pike.h b/include/constants/battle_pike.h index 9187ae28c0..76309436e1 100644 --- a/include/constants/battle_pike.h +++ b/include/constants/battle_pike.h @@ -42,8 +42,8 @@ #define BATTLE_PIKE_FUNC_SET_IN_WILD_MON_ROOM 6 #define BATTLE_PIKE_FUNC_CLEAR_IN_WILD_MON_ROOM 7 #define BATTLE_PIKE_FUNC_SAVE 8 -#define BATTLE_PIKE_FUNC_NULL_9 9 -#define BATTLE_PIKE_FUNC_NULL_10 10 +#define BATTLE_PIKE_FUNC_DUMMY_1 9 +#define BATTLE_PIKE_FUNC_DUMMY_2 10 #define BATTLE_PIKE_FUNC_GET_ROOM_STATUS 11 #define BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON 12 #define BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS 13 diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 424009d20c..7e7bb6ca9e 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -36,16 +36,20 @@ #define sMULTIHIT_EFFECT gBattleScripting + 0x30 #define sILLUSION_NICK_HACK gBattleScripting + 0x32 #define sFIXED_ABILITY_POPUP gBattleScripting + 0x33 +#define sABILITY_OVERWRITE gBattleScripting + 0x34 #define cMULTISTRING_CHOOSER gBattleCommunication + 5 +#define cMISS_TYPE gBattleCommunication + 6 // Battle Script defines for getting the wanted battler #define BS_TARGET 0 #define BS_ATTACKER 1 #define BS_EFFECT_BATTLER 2 #define BS_FAINTED 3 -#define BS_BATTLER_0 7 #define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon +#define BS_UNK_5 5 +#define BS_UNK_6 6 +#define BS_BATTLER_0 7 #define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability #define BS_TARGET_SIDE 9 // for Cmd_jumpifability #define BS_SCRIPTING 10 @@ -60,12 +64,12 @@ #define ACC_CURR_MOVE 0 // compare operands -#define CMP_EQUAL 0x0 -#define CMP_NOT_EQUAL 0x1 -#define CMP_GREATER_THAN 0x2 -#define CMP_LESS_THAN 0x3 -#define CMP_COMMON_BITS 0x4 -#define CMP_NO_COMMON_BITS 0x5 +#define CMP_EQUAL 0 +#define CMP_NOT_EQUAL 1 +#define CMP_GREATER_THAN 2 +#define CMP_LESS_THAN 3 +#define CMP_COMMON_BITS 4 +#define CMP_NO_COMMON_BITS 5 // Cmd_various #define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 @@ -168,6 +172,8 @@ #define VARIOUS_JUMP_IF_ABSENT 101 #define VARIOUS_DESTROY_ABILITY_POPUP 102 #define VARIOUS_TOTEM_BOOST 103 +#define VARIOUS_TRY_ACTIVATE_GRIM_NEIGH 104 +#define VARIOUS_MOVEEND_ITEM_EFFECTS 105 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 @@ -181,54 +187,57 @@ #define DMG_RECOIL_FROM_IMMUNE 8 // Used to calculate recoil for the Gen 4 version of Jump Kick // Cmd_jumpifcantswitch -#define SWITCH_IGNORE_ESCAPE_PREVENTION 0x80 +#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7) // Cmd_statbuffchange -#define STAT_BUFF_ALLOW_PTR 0x1 // If set, allow use of jumpptr. Set in every use of statbuffchange -#define STAT_BUFF_NOT_PROTECT_AFFECTED 0x20 +#define STAT_BUFF_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange +#define STAT_BUFF_NOT_PROTECT_AFFECTED (1 << 5) // stat change flags for Cmd_playstatchangeanimation -#define STAT_CHANGE_NEGATIVE 0x1 -#define STAT_CHANGE_BY_TWO 0x2 -#define STAT_CHANGE_ONLY_MULTIPLE 0x4 -#define STAT_CHANGE_CANT_PREVENT 0x8 - -// cases for Cmd_moveend -#define MOVEEND_PROTECT_LIKE_EFFECT 0 -#define MOVEEND_RAGE 1 -#define MOVEEND_DEFROST 2 -#define MOVEEND_SYNCHRONIZE_TARGET 3 -#define MOVEEND_ABILITIES 4 -#define MOVEEND_ABILITIES_ATTACKER 5 -#define MOVEEND_STATUS_IMMUNITY_ABILITIES 6 -#define MOVEEND_SYNCHRONIZE_ATTACKER 7 -#define MOVEEND_CHOICE_MOVE 8 -#define MOVEEND_CHANGED_ITEMS 9 -#define MOVEEND_ATTACKER_INVISIBLE 10 -#define MOVEEND_ATTACKER_VISIBLE 11 -#define MOVEEND_TARGET_VISIBLE 12 -#define MOVEEND_ITEM_EFFECTS_TARGET 13 -#define MOVEEND_MOVE_EFFECTS2 14 -#define MOVEEND_ITEM_EFFECTS_ALL 15 -#define MOVEEND_KINGSROCK_SHELLBELL 16 -#define MOVEEND_SUBSTITUTE 17 -#define MOVEEND_UPDATE_LAST_MOVES 18 -#define MOVEEND_MIRROR_MOVE 19 -#define MOVEEND_NEXT_TARGET 20 -#define MOVEEND_LIFE_ORB 21 -#define MOVEEND_DANCER 22 -#define MOVEEND_EMERGENCY_EXIT 23 -#define MOVEEND_CLEAR_BITS 24 -#define MOVEEND_COUNT 25 +#define STAT_CHANGE_NEGATIVE (1 << 0) +#define STAT_CHANGE_BY_TWO (1 << 1) +#define STAT_CHANGE_MULTIPLE_STATS (1 << 2) +#define STAT_CHANGE_CANT_PREVENT (1 << 3) // stat flags for Cmd_playstatchangeanimation -#define BIT_HP 0x1 -#define BIT_ATK 0x2 -#define BIT_DEF 0x4 -#define BIT_SPEED 0x8 -#define BIT_SPATK 0x10 -#define BIT_SPDEF 0x20 -#define BIT_ACC 0x40 -#define BIT_EVASION 0x80 +#define BIT_HP (1 << 0) +#define BIT_ATK (1 << 1) +#define BIT_DEF (1 << 2) +#define BIT_SPEED (1 << 3) +#define BIT_SPATK (1 << 4) +#define BIT_SPDEF (1 << 5) +#define BIT_ACC (1 << 6) +#define BIT_EVASION (1 << 7) + +#define PARTY_SCREEN_OPTIONAL (1 << 7) // Flag for first argument to openpartyscreen + +// cases for Cmd_moveend +#define MOVEEND_PROTECT_LIKE_EFFECT 0 +#define MOVEEND_RAGE 1 +#define MOVEEND_DEFROST 2 +#define MOVEEND_SYNCHRONIZE_TARGET 3 +#define MOVEEND_ABILITIES 4 +#define MOVEEND_ABILITIES_ATTACKER 5 +#define MOVEEND_STATUS_IMMUNITY_ABILITIES 6 +#define MOVEEND_SYNCHRONIZE_ATTACKER 7 +#define MOVEEND_CHOICE_MOVE 8 +#define MOVEEND_CHANGED_ITEMS 9 +#define MOVEEND_ATTACKER_INVISIBLE 10 +#define MOVEEND_ATTACKER_VISIBLE 11 +#define MOVEEND_TARGET_VISIBLE 12 +#define MOVEEND_ITEM_EFFECTS_TARGET 13 +#define MOVEEND_MOVE_EFFECTS2 14 +#define MOVEEND_ITEM_EFFECTS_ALL 15 +#define MOVEEND_KINGSROCK_SHELLBELL 16 +#define MOVEEND_SUBSTITUTE 17 +#define MOVEEND_UPDATE_LAST_MOVES 18 +#define MOVEEND_MIRROR_MOVE 19 +#define MOVEEND_NEXT_TARGET 20 +#define MOVEEND_LIFE_ORB 21 +#define MOVEEND_PICKPOCKET 22 +#define MOVEEND_DANCER 23 +#define MOVEEND_EMERGENCY_EXIT 24 +#define MOVEEND_CLEAR_BITS 25 +#define MOVEEND_COUNT 26 #endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 73b91c7087..0558e4feb4 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -12,575 +12,802 @@ #define STRINGID_TRAINERSLIDE 6 // todo: make some of those names less vague: attacker/target vs pkmn, etc. -#define STRINGID_TRAINER1LOSETEXT 12 -#define STRINGID_PKMNGAINEDEXP 13 -#define STRINGID_PKMNGREWTOLV 14 -#define STRINGID_PKMNLEARNEDMOVE 15 -#define STRINGID_TRYTOLEARNMOVE1 16 -#define STRINGID_TRYTOLEARNMOVE2 17 -#define STRINGID_TRYTOLEARNMOVE3 18 -#define STRINGID_PKMNFORGOTMOVE 19 -#define STRINGID_STOPLEARNINGMOVE 20 -#define STRINGID_DIDNOTLEARNMOVE 21 -#define STRINGID_PKMNLEARNEDMOVE2 22 -#define STRINGID_ATTACKMISSED 23 -#define STRINGID_PKMNPROTECTEDITSELF 24 -#define STRINGID_STATSWONTINCREASE2 25 -#define STRINGID_AVOIDEDDAMAGE 26 -#define STRINGID_ITDOESNTAFFECT 27 -#define STRINGID_ATTACKERFAINTED 28 -#define STRINGID_TARGETFAINTED 29 -#define STRINGID_PLAYERGOTMONEY 30 -#define STRINGID_PLAYERWHITEOUT 31 -#define STRINGID_PLAYERWHITEOUT2 32 -#define STRINGID_PREVENTSESCAPE 33 -#define STRINGID_HITXTIMES 34 -#define STRINGID_PKMNFELLASLEEP 35 -#define STRINGID_PKMNMADESLEEP 36 -#define STRINGID_PKMNALREADYASLEEP 37 -#define STRINGID_PKMNALREADYASLEEP2 38 -#define STRINGID_PKMNWASNTAFFECTED 39 -#define STRINGID_PKMNWASPOISONED 40 -#define STRINGID_PKMNPOISONEDBY 41 -#define STRINGID_PKMNHURTBYPOISON 42 -#define STRINGID_PKMNALREADYPOISONED 43 -#define STRINGID_PKMNBADLYPOISONED 44 -#define STRINGID_PKMNENERGYDRAINED 45 -#define STRINGID_PKMNWASBURNED 46 -#define STRINGID_PKMNBURNEDBY 47 -#define STRINGID_PKMNHURTBYBURN 48 -#define STRINGID_PKMNWASFROZEN 49 -#define STRINGID_PKMNFROZENBY 50 -#define STRINGID_PKMNISFROZEN 51 -#define STRINGID_PKMNWASDEFROSTED 52 -#define STRINGID_PKMNWASDEFROSTED2 53 -#define STRINGID_PKMNWASDEFROSTEDBY 54 -#define STRINGID_PKMNWASPARALYZED 55 -#define STRINGID_PKMNWASPARALYZEDBY 56 -#define STRINGID_PKMNISPARALYZED 57 -#define STRINGID_PKMNISALREADYPARALYZED 58 -#define STRINGID_PKMNHEALEDPARALYSIS 59 -#define STRINGID_PKMNDREAMEATEN 60 -#define STRINGID_STATSWONTINCREASE 61 -#define STRINGID_STATSWONTDECREASE 62 -#define STRINGID_TEAMSTOPPEDWORKING 63 -#define STRINGID_FOESTOPPEDWORKING 64 -#define STRINGID_PKMNISCONFUSED 65 -#define STRINGID_PKMNHEALEDCONFUSION 66 -#define STRINGID_PKMNWASCONFUSED 67 -#define STRINGID_PKMNALREADYCONFUSED 68 -#define STRINGID_PKMNFELLINLOVE 69 -#define STRINGID_PKMNINLOVE 70 -#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71 -#define STRINGID_PKMNBLOWNAWAY 72 -#define STRINGID_PKMNCHANGEDTYPE 73 -#define STRINGID_PKMNFLINCHED 74 -#define STRINGID_PKMNREGAINEDHEALTH 75 -#define STRINGID_PKMNHPFULL 76 -#define STRINGID_PKMNRAISEDSPDEF 77 -#define STRINGID_PKMNRAISEDDEF 78 -#define STRINGID_PKMNCOVEREDBYVEIL 79 -#define STRINGID_PKMNUSEDSAFEGUARD 80 -#define STRINGID_PKMNSAFEGUARDEXPIRED 81 -#define STRINGID_PKMNWENTTOSLEEP 82 -#define STRINGID_PKMNSLEPTHEALTHY 83 -#define STRINGID_PKMNWHIPPEDWHIRLWIND 84 -#define STRINGID_PKMNTOOKSUNLIGHT 85 -#define STRINGID_PKMNLOWEREDHEAD 86 -#define STRINGID_PKMNISGLOWING 87 -#define STRINGID_PKMNFLEWHIGH 88 -#define STRINGID_PKMNDUGHOLE 89 -#define STRINGID_PKMNSQUEEZEDBYBIND 90 -#define STRINGID_PKMNTRAPPEDINVORTEX 91 -#define STRINGID_PKMNWRAPPEDBY 92 -#define STRINGID_PKMNCLAMPED 93 -#define STRINGID_PKMNHURTBY 94 -#define STRINGID_PKMNFREEDFROM 95 -#define STRINGID_PKMNCRASHED 96 -#define STRINGID_PKMNSHROUDEDINMIST 97 -#define STRINGID_PKMNPROTECTEDBYMIST 98 -#define STRINGID_PKMNGETTINGPUMPED 99 -#define STRINGID_PKMNHITWITHRECOIL 100 -#define STRINGID_PKMNPROTECTEDITSELF2 101 -#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102 -#define STRINGID_PKMNPELTEDBYHAIL 103 -#define STRINGID_PKMNSEEDED 104 -#define STRINGID_PKMNEVADEDATTACK 105 -#define STRINGID_PKMNSAPPEDBYLEECHSEED 106 -#define STRINGID_PKMNFASTASLEEP 107 -#define STRINGID_PKMNWOKEUP 108 -#define STRINGID_PKMNUPROARKEPTAWAKE 109 -#define STRINGID_PKMNWOKEUPINUPROAR 110 -#define STRINGID_PKMNCAUSEDUPROAR 111 -#define STRINGID_PKMNMAKINGUPROAR 112 -#define STRINGID_PKMNCALMEDDOWN 113 -#define STRINGID_PKMNCANTSLEEPINUPROAR 114 -#define STRINGID_PKMNSTOCKPILED 115 -#define STRINGID_PKMNCANTSTOCKPILE 116 -#define STRINGID_PKMNCANTSLEEPINUPROAR2 117 -#define STRINGID_UPROARKEPTPKMNAWAKE 118 -#define STRINGID_PKMNSTAYEDAWAKEUSING 119 -#define STRINGID_PKMNSTORINGENERGY 120 -#define STRINGID_PKMNUNLEASHEDENERGY 121 -#define STRINGID_PKMNFATIGUECONFUSION 122 -#define STRINGID_PKMNPICKEDUPITEM 123 -#define STRINGID_PKMNUNAFFECTED 124 -#define STRINGID_PKMNTRANSFORMEDINTO 125 -#define STRINGID_PKMNMADESUBSTITUTE 126 -#define STRINGID_PKMNHASSUBSTITUTE 127 -#define STRINGID_SUBSTITUTEDAMAGED 128 -#define STRINGID_PKMNSUBSTITUTEFADED 129 -#define STRINGID_PKMNMUSTRECHARGE 130 -#define STRINGID_PKMNRAGEBUILDING 131 -#define STRINGID_PKMNMOVEWASDISABLED 132 -#define STRINGID_PKMNMOVEISDISABLED 133 -#define STRINGID_PKMNMOVEDISABLEDNOMORE 134 -#define STRINGID_PKMNGOTENCORE 135 -#define STRINGID_PKMNENCOREENDED 136 -#define STRINGID_PKMNTOOKAIM 137 -#define STRINGID_PKMNSKETCHEDMOVE 138 -#define STRINGID_PKMNTRYINGTOTAKEFOE 139 -#define STRINGID_PKMNTOOKFOE 140 -#define STRINGID_PKMNREDUCEDPP 141 -#define STRINGID_PKMNSTOLEITEM 142 -#define STRINGID_TARGETCANTESCAPENOW 143 -#define STRINGID_PKMNFELLINTONIGHTMARE 144 -#define STRINGID_PKMNLOCKEDINNIGHTMARE 145 -#define STRINGID_PKMNLAIDCURSE 146 -#define STRINGID_PKMNAFFLICTEDBYCURSE 147 -#define STRINGID_SPIKESSCATTERED 148 -#define STRINGID_PKMNHURTBYSPIKES 149 -#define STRINGID_PKMNIDENTIFIED 150 -#define STRINGID_PKMNPERISHCOUNTFELL 151 -#define STRINGID_PKMNBRACEDITSELF 152 -#define STRINGID_PKMNENDUREDHIT 153 -#define STRINGID_MAGNITUDESTRENGTH 154 -#define STRINGID_PKMNCUTHPMAXEDATTACK 155 -#define STRINGID_PKMNCOPIEDSTATCHANGES 156 -#define STRINGID_PKMNGOTFREE 157 -#define STRINGID_PKMNSHEDLEECHSEED 158 -#define STRINGID_PKMNBLEWAWAYSPIKES 159 -#define STRINGID_PKMNFLEDFROMBATTLE 160 -#define STRINGID_PKMNFORESAWATTACK 161 -#define STRINGID_PKMNTOOKATTACK 162 -#define STRINGID_PKMNATTACK 163 -#define STRINGID_PKMNCENTERATTENTION 164 -#define STRINGID_PKMNCHARGINGPOWER 165 -#define STRINGID_NATUREPOWERTURNEDINTO 166 -#define STRINGID_PKMNSTATUSNORMAL 167 -#define STRINGID_PKMNHASNOMOVESLEFT 168 -#define STRINGID_PKMNSUBJECTEDTOTORMENT 169 -#define STRINGID_PKMNCANTUSEMOVETORMENT 170 -#define STRINGID_PKMNTIGHTENINGFOCUS 171 -#define STRINGID_PKMNFELLFORTAUNT 172 -#define STRINGID_PKMNCANTUSEMOVETAUNT 173 -#define STRINGID_PKMNREADYTOHELP 174 -#define STRINGID_PKMNSWITCHEDITEMS 175 -#define STRINGID_PKMNCOPIEDFOE 176 -#define STRINGID_PKMNMADEWISH 177 -#define STRINGID_PKMNWISHCAMETRUE 178 -#define STRINGID_PKMNPLANTEDROOTS 179 -#define STRINGID_PKMNABSORBEDNUTRIENTS 180 -#define STRINGID_PKMNANCHOREDITSELF 181 -#define STRINGID_PKMNWASMADEDROWSY 182 -#define STRINGID_PKMNKNOCKEDOFF 183 -#define STRINGID_PKMNSWAPPEDABILITIES 184 -#define STRINGID_PKMNSEALEDOPPONENTMOVE 185 -#define STRINGID_PKMNCANTUSEMOVESEALED 186 -#define STRINGID_PKMNWANTSGRUDGE 187 -#define STRINGID_PKMNLOSTPPGRUDGE 188 -#define STRINGID_PKMNSHROUDEDITSELF 189 -#define STRINGID_PKMNMOVEBOUNCED 190 -#define STRINGID_PKMNWAITSFORTARGET 191 -#define STRINGID_PKMNSNATCHEDMOVE 192 -#define STRINGID_PKMNMADEITRAIN 193 -#define STRINGID_PKMNRAISEDSPEED 194 -#define STRINGID_PKMNPROTECTEDBY 195 -#define STRINGID_PKMNPREVENTSUSAGE 196 -#define STRINGID_PKMNRESTOREDHPUSING 197 -#define STRINGID_PKMNCHANGEDTYPEWITH 198 -#define STRINGID_PKMNPREVENTSPARALYSISWITH 199 -#define STRINGID_PKMNPREVENTSROMANCEWITH 200 -#define STRINGID_PKMNPREVENTSPOISONINGWITH 201 -#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202 -#define STRINGID_PKMNRAISEDFIREPOWERWITH 203 -#define STRINGID_PKMNANCHORSITSELFWITH 204 -#define STRINGID_PKMNCUTSATTACKWITH 205 -#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206 -#define STRINGID_PKMNHURTSWITH 207 -#define STRINGID_PKMNTRACED 208 -#define STRINGID_STATSHARPLY 209 -#define STRINGID_STATROSE 210 -#define STRINGID_STATHARSHLY 211 -#define STRINGID_STATFELL 212 -#define STRINGID_PKMNSSTATCHANGED 213 -#define STRINGID_PKMNSSTATCHANGED2 214 -#define STRINGID_PKMNSSTATCHANGED3 215 -#define STRINGID_PKMNSSTATCHANGED4 216 -#define STRINGID_CRITICALHIT 217 -#define STRINGID_ONEHITKO 218 -#define STRINGID_123POOF 219 -#define STRINGID_ANDELLIPSIS 220 -#define STRINGID_NOTVERYEFFECTIVE 221 -#define STRINGID_SUPEREFFECTIVE 222 -#define STRINGID_GOTAWAYSAFELY 223 -#define STRINGID_WILDPKMNFLED 224 -#define STRINGID_NORUNNINGFROMTRAINERS 225 -#define STRINGID_CANTESCAPE 226 -#define STRINGID_DONTLEAVEBIRCH 227 -#define STRINGID_BUTNOTHINGHAPPENED 228 -#define STRINGID_BUTITFAILED 229 -#define STRINGID_ITHURTCONFUSION 230 -#define STRINGID_MIRRORMOVEFAILED 231 -#define STRINGID_STARTEDTORAIN 232 -#define STRINGID_DOWNPOURSTARTED 233 -#define STRINGID_RAINCONTINUES 234 -#define STRINGID_DOWNPOURCONTINUES 235 -#define STRINGID_RAINSTOPPED 236 -#define STRINGID_SANDSTORMBREWED 237 -#define STRINGID_SANDSTORMRAGES 238 -#define STRINGID_SANDSTORMSUBSIDED 239 -#define STRINGID_SUNLIGHTGOTBRIGHT 240 -#define STRINGID_SUNLIGHTSTRONG 241 -#define STRINGID_SUNLIGHTFADED 242 -#define STRINGID_STARTEDHAIL 243 -#define STRINGID_HAILCONTINUES 244 -#define STRINGID_HAILSTOPPED 245 -#define STRINGID_FAILEDTOSPITUP 246 -#define STRINGID_FAILEDTOSWALLOW 247 -#define STRINGID_WINDBECAMEHEATWAVE 248 -#define STRINGID_STATCHANGESGONE 249 -#define STRINGID_COINSSCATTERED 250 -#define STRINGID_TOOWEAKFORSUBSTITUTE 251 -#define STRINGID_SHAREDPAIN 252 -#define STRINGID_BELLCHIMED 253 -#define STRINGID_FAINTINTHREE 254 -#define STRINGID_NOPPLEFT 255 -#define STRINGID_BUTNOPPLEFT 256 -#define STRINGID_PLAYERUSEDITEM 257 -#define STRINGID_WALLYUSEDITEM 258 -#define STRINGID_TRAINERBLOCKEDBALL 259 -#define STRINGID_DONTBEATHIEF 260 -#define STRINGID_ITDODGEDBALL 261 -#define STRINGID_YOUMISSEDPKMN 262 -#define STRINGID_PKMNBROKEFREE 263 -#define STRINGID_ITAPPEAREDCAUGHT 264 -#define STRINGID_AARGHALMOSTHADIT 265 -#define STRINGID_SHOOTSOCLOSE 266 -#define STRINGID_GOTCHAPKMNCAUGHT 267 -#define STRINGID_GOTCHAPKMNCAUGHT2 268 -#define STRINGID_GIVENICKNAMECAPTURED 269 -#define STRINGID_PKMNSENTTOPC 270 -#define STRINGID_PKMNDATAADDEDTODEX 271 -#define STRINGID_ITISRAINING 272 -#define STRINGID_SANDSTORMISRAGING 273 -#define STRINGID_CANTESCAPE2 274 -#define STRINGID_PKMNIGNORESASLEEP 275 -#define STRINGID_PKMNIGNOREDORDERS 276 -#define STRINGID_PKMNBEGANTONAP 277 -#define STRINGID_PKMNLOAFING 278 -#define STRINGID_PKMNWONTOBEY 279 -#define STRINGID_PKMNTURNEDAWAY 280 -#define STRINGID_PKMNPRETENDNOTNOTICE 281 -#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282 -#define STRINGID_CREPTCLOSER 283 -#define STRINGID_CANTGETCLOSER 284 -#define STRINGID_PKMNWATCHINGCAREFULLY 285 -#define STRINGID_PKMNCURIOUSABOUTX 286 -#define STRINGID_PKMNENTHRALLEDBYX 287 -#define STRINGID_PKMNIGNOREDX 288 -#define STRINGID_THREWPOKEBLOCKATPKMN 289 -#define STRINGID_OUTOFSAFARIBALLS 290 -#define STRINGID_PKMNSITEMCUREDPARALYSIS 291 -#define STRINGID_PKMNSITEMCUREDPOISON 292 -#define STRINGID_PKMNSITEMHEALEDBURN 293 -#define STRINGID_PKMNSITEMDEFROSTEDIT 294 -#define STRINGID_PKMNSITEMWOKEIT 295 -#define STRINGID_PKMNSITEMSNAPPEDOUT 296 -#define STRINGID_PKMNSITEMCUREDPROBLEM 297 -#define STRINGID_PKMNSITEMRESTOREDHEALTH 298 -#define STRINGID_PKMNSITEMRESTOREDPP 299 -#define STRINGID_PKMNSITEMRESTOREDSTATUS 300 -#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301 -#define STRINGID_ITEMALLOWSONLYYMOVE 302 -#define STRINGID_PKMNHUNGONWITHX 303 -#define STRINGID_EMPTYSTRING3 304 -#define STRINGID_PKMNSXPREVENTSBURNS 305 -#define STRINGID_PKMNSXBLOCKSY 306 -#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307 -#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308 -#define STRINGID_PKMNSXPREVENTSYLOSS 309 -#define STRINGID_PKMNSXINFATUATEDY 310 -#define STRINGID_PKMNSXMADEYINEFFECTIVE 311 -#define STRINGID_PKMNSXCUREDYPROBLEM 312 -#define STRINGID_ITSUCKEDLIQUIDOOZE 313 -#define STRINGID_PKMNTRANSFORMED 314 -#define STRINGID_ELECTRICITYWEAKENED 315 -#define STRINGID_FIREWEAKENED 316 -#define STRINGID_PKMNHIDUNDERWATER 317 -#define STRINGID_PKMNSPRANGUP 318 -#define STRINGID_HMMOVESCANTBEFORGOTTEN 319 -#define STRINGID_XFOUNDONEY 320 -#define STRINGID_PLAYERDEFEATEDTRAINER1 321 -#define STRINGID_SOOTHINGAROMA 322 -#define STRINGID_ITEMSCANTBEUSEDNOW 323 -#define STRINGID_FORXCOMMAYZ 324 -#define STRINGID_USINGXTHEYOFZN 325 -#define STRINGID_PKMNUSEDXTOGETPUMPED 326 -#define STRINGID_PKMNSXMADEYUSELESS 327 -#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 -#define STRINGID_EMPTYSTRING4 329 -#define STRINGID_ABOOSTED 330 -#define STRINGID_PKMNSXINTENSIFIEDSUN 331 -#define STRINGID_PKMNMAKESGROUNDMISS 332 -#define STRINGID_YOUTHROWABALLNOWRIGHT 333 -#define STRINGID_PKMNSXTOOKATTACK 334 -#define STRINGID_PKMNCHOSEXASDESTINY 335 -#define STRINGID_PKMNLOSTFOCUS 336 -#define STRINGID_USENEXTPKMN 337 -#define STRINGID_PKMNFLEDUSINGITS 338 -#define STRINGID_PKMNFLEDUSING 339 -#define STRINGID_PKMNWASDRAGGEDOUT 340 -#define STRINGID_PREVENTEDFROMWORKING 341 -#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342 -#define STRINGID_TRAINER1USEDITEM 343 -#define STRINGID_BOXISFULL 344 -#define STRINGID_PKMNAVOIDEDATTACK 345 -#define STRINGID_PKMNSXMADEITINEFFECTIVE 346 -#define STRINGID_PKMNSXPREVENTSFLINCHING 347 -#define STRINGID_PKMNALREADYHASBURN 348 -#define STRINGID_STATSWONTDECREASE2 349 -#define STRINGID_PKMNSXBLOCKSY2 350 -#define STRINGID_PKMNSXWOREOFF 351 -#define STRINGID_PKMNRAISEDDEFALITTLE 352 -#define STRINGID_PKMNRAISEDSPDEFALITTLE 353 -#define STRINGID_THEWALLSHATTERED 354 -#define STRINGID_PKMNSXPREVENTSYSZ 355 -#define STRINGID_PKMNSXCUREDITSYPROBLEM 356 -#define STRINGID_ATTACKERCANTESCAPE 357 -#define STRINGID_PKMNOBTAINEDX 358 -#define STRINGID_PKMNOBTAINEDX2 359 -#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 -#define STRINGID_BUTNOEFFECT 361 -#define STRINGID_PKMNSXHADNOEFFECTONY 362 -#define STRINGID_TWOENEMIESDEFEATED 363 -#define STRINGID_TRAINER2LOSETEXT 364 -#define STRINGID_PKMNINCAPABLEOFPOWER 365 -#define STRINGID_GLINTAPPEARSINEYE 366 -#define STRINGID_PKMNGETTINGINTOPOSITION 367 -#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368 -#define STRINGID_PKMNEAGERFORMORE 369 -#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370 -#define STRINGID_LOSTTOOPPONENTBYREFEREE 371 -#define STRINGID_TIEDOPPONENTBYREFEREE 372 -#define STRINGID_QUESTIONFORFEITMATCH 373 -#define STRINGID_FORFEITEDMATCH 374 -#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375 -#define STRINGID_PKMNTRANSFERREDLANETTESPC 376 -#define STRINGID_PKMNBOXSOMEONESPCFULL 377 -#define STRINGID_PKMNBOXLANETTESPCFULL 378 -#define STRINGID_TRAINER1WINTEXT 379 -#define STRINGID_TRAINER2WINTEXT 380 +#define STRINGID_TRAINER1LOSETEXT 12 +#define STRINGID_PKMNGAINEDEXP 13 +#define STRINGID_PKMNGREWTOLV 14 +#define STRINGID_PKMNLEARNEDMOVE 15 +#define STRINGID_TRYTOLEARNMOVE1 16 +#define STRINGID_TRYTOLEARNMOVE2 17 +#define STRINGID_TRYTOLEARNMOVE3 18 +#define STRINGID_PKMNFORGOTMOVE 19 +#define STRINGID_STOPLEARNINGMOVE 20 +#define STRINGID_DIDNOTLEARNMOVE 21 +#define STRINGID_PKMNLEARNEDMOVE2 22 +#define STRINGID_ATTACKMISSED 23 +#define STRINGID_PKMNPROTECTEDITSELF 24 +#define STRINGID_STATSWONTINCREASE2 25 +#define STRINGID_AVOIDEDDAMAGE 26 +#define STRINGID_ITDOESNTAFFECT 27 +#define STRINGID_ATTACKERFAINTED 28 +#define STRINGID_TARGETFAINTED 29 +#define STRINGID_PLAYERGOTMONEY 30 +#define STRINGID_PLAYERWHITEOUT 31 +#define STRINGID_PLAYERWHITEOUT2 32 +#define STRINGID_PREVENTSESCAPE 33 +#define STRINGID_HITXTIMES 34 +#define STRINGID_PKMNFELLASLEEP 35 +#define STRINGID_PKMNMADESLEEP 36 +#define STRINGID_PKMNALREADYASLEEP 37 +#define STRINGID_PKMNALREADYASLEEP2 38 +#define STRINGID_PKMNWASNTAFFECTED 39 +#define STRINGID_PKMNWASPOISONED 40 +#define STRINGID_PKMNPOISONEDBY 41 +#define STRINGID_PKMNHURTBYPOISON 42 +#define STRINGID_PKMNALREADYPOISONED 43 +#define STRINGID_PKMNBADLYPOISONED 44 +#define STRINGID_PKMNENERGYDRAINED 45 +#define STRINGID_PKMNWASBURNED 46 +#define STRINGID_PKMNBURNEDBY 47 +#define STRINGID_PKMNHURTBYBURN 48 +#define STRINGID_PKMNWASFROZEN 49 +#define STRINGID_PKMNFROZENBY 50 +#define STRINGID_PKMNISFROZEN 51 +#define STRINGID_PKMNWASDEFROSTED 52 +#define STRINGID_PKMNWASDEFROSTED2 53 +#define STRINGID_PKMNWASDEFROSTEDBY 54 +#define STRINGID_PKMNWASPARALYZED 55 +#define STRINGID_PKMNWASPARALYZEDBY 56 +#define STRINGID_PKMNISPARALYZED 57 +#define STRINGID_PKMNISALREADYPARALYZED 58 +#define STRINGID_PKMNHEALEDPARALYSIS 59 +#define STRINGID_PKMNDREAMEATEN 60 +#define STRINGID_STATSWONTINCREASE 61 +#define STRINGID_STATSWONTDECREASE 62 +#define STRINGID_TEAMSTOPPEDWORKING 63 +#define STRINGID_FOESTOPPEDWORKING 64 +#define STRINGID_PKMNISCONFUSED 65 +#define STRINGID_PKMNHEALEDCONFUSION 66 +#define STRINGID_PKMNWASCONFUSED 67 +#define STRINGID_PKMNALREADYCONFUSED 68 +#define STRINGID_PKMNFELLINLOVE 69 +#define STRINGID_PKMNINLOVE 70 +#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71 +#define STRINGID_PKMNBLOWNAWAY 72 +#define STRINGID_PKMNCHANGEDTYPE 73 +#define STRINGID_PKMNFLINCHED 74 +#define STRINGID_PKMNREGAINEDHEALTH 75 +#define STRINGID_PKMNHPFULL 76 +#define STRINGID_PKMNRAISEDSPDEF 77 +#define STRINGID_PKMNRAISEDDEF 78 +#define STRINGID_PKMNCOVEREDBYVEIL 79 +#define STRINGID_PKMNUSEDSAFEGUARD 80 +#define STRINGID_PKMNSAFEGUARDEXPIRED 81 +#define STRINGID_PKMNWENTTOSLEEP 82 +#define STRINGID_PKMNSLEPTHEALTHY 83 +#define STRINGID_PKMNWHIPPEDWHIRLWIND 84 +#define STRINGID_PKMNTOOKSUNLIGHT 85 +#define STRINGID_PKMNLOWEREDHEAD 86 +#define STRINGID_PKMNISGLOWING 87 +#define STRINGID_PKMNFLEWHIGH 88 +#define STRINGID_PKMNDUGHOLE 89 +#define STRINGID_PKMNSQUEEZEDBYBIND 90 +#define STRINGID_PKMNTRAPPEDINVORTEX 91 +#define STRINGID_PKMNWRAPPEDBY 92 +#define STRINGID_PKMNCLAMPED 93 +#define STRINGID_PKMNHURTBY 94 +#define STRINGID_PKMNFREEDFROM 95 +#define STRINGID_PKMNCRASHED 96 +#define STRINGID_PKMNSHROUDEDINMIST 97 +#define STRINGID_PKMNPROTECTEDBYMIST 98 +#define STRINGID_PKMNGETTINGPUMPED 99 +#define STRINGID_PKMNHITWITHRECOIL 100 +#define STRINGID_PKMNPROTECTEDITSELF2 101 +#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102 +#define STRINGID_PKMNPELTEDBYHAIL 103 +#define STRINGID_PKMNSEEDED 104 +#define STRINGID_PKMNEVADEDATTACK 105 +#define STRINGID_PKMNSAPPEDBYLEECHSEED 106 +#define STRINGID_PKMNFASTASLEEP 107 +#define STRINGID_PKMNWOKEUP 108 +#define STRINGID_PKMNUPROARKEPTAWAKE 109 +#define STRINGID_PKMNWOKEUPINUPROAR 110 +#define STRINGID_PKMNCAUSEDUPROAR 111 +#define STRINGID_PKMNMAKINGUPROAR 112 +#define STRINGID_PKMNCALMEDDOWN 113 +#define STRINGID_PKMNCANTSLEEPINUPROAR 114 +#define STRINGID_PKMNSTOCKPILED 115 +#define STRINGID_PKMNCANTSTOCKPILE 116 +#define STRINGID_PKMNCANTSLEEPINUPROAR2 117 +#define STRINGID_UPROARKEPTPKMNAWAKE 118 +#define STRINGID_PKMNSTAYEDAWAKEUSING 119 +#define STRINGID_PKMNSTORINGENERGY 120 +#define STRINGID_PKMNUNLEASHEDENERGY 121 +#define STRINGID_PKMNFATIGUECONFUSION 122 +#define STRINGID_PLAYERPICKEDUPMONEY 123 +#define STRINGID_PKMNUNAFFECTED 124 +#define STRINGID_PKMNTRANSFORMEDINTO 125 +#define STRINGID_PKMNMADESUBSTITUTE 126 +#define STRINGID_PKMNHASSUBSTITUTE 127 +#define STRINGID_SUBSTITUTEDAMAGED 128 +#define STRINGID_PKMNSUBSTITUTEFADED 129 +#define STRINGID_PKMNMUSTRECHARGE 130 +#define STRINGID_PKMNRAGEBUILDING 131 +#define STRINGID_PKMNMOVEWASDISABLED 132 +#define STRINGID_PKMNMOVEISDISABLED 133 +#define STRINGID_PKMNMOVEDISABLEDNOMORE 134 +#define STRINGID_PKMNGOTENCORE 135 +#define STRINGID_PKMNENCOREENDED 136 +#define STRINGID_PKMNTOOKAIM 137 +#define STRINGID_PKMNSKETCHEDMOVE 138 +#define STRINGID_PKMNTRYINGTOTAKEFOE 139 +#define STRINGID_PKMNTOOKFOE 140 +#define STRINGID_PKMNREDUCEDPP 141 +#define STRINGID_PKMNSTOLEITEM 142 +#define STRINGID_TARGETCANTESCAPENOW 143 +#define STRINGID_PKMNFELLINTONIGHTMARE 144 +#define STRINGID_PKMNLOCKEDINNIGHTMARE 145 +#define STRINGID_PKMNLAIDCURSE 146 +#define STRINGID_PKMNAFFLICTEDBYCURSE 147 +#define STRINGID_SPIKESSCATTERED 148 +#define STRINGID_PKMNHURTBYSPIKES 149 +#define STRINGID_PKMNIDENTIFIED 150 +#define STRINGID_PKMNPERISHCOUNTFELL 151 +#define STRINGID_PKMNBRACEDITSELF 152 +#define STRINGID_PKMNENDUREDHIT 153 +#define STRINGID_MAGNITUDESTRENGTH 154 +#define STRINGID_PKMNCUTHPMAXEDATTACK 155 +#define STRINGID_PKMNCOPIEDSTATCHANGES 156 +#define STRINGID_PKMNGOTFREE 157 +#define STRINGID_PKMNSHEDLEECHSEED 158 +#define STRINGID_PKMNBLEWAWAYSPIKES 159 +#define STRINGID_PKMNFLEDFROMBATTLE 160 +#define STRINGID_PKMNFORESAWATTACK 161 +#define STRINGID_PKMNTOOKATTACK 162 +#define STRINGID_PKMNATTACK 163 +#define STRINGID_PKMNCENTERATTENTION 164 +#define STRINGID_PKMNCHARGINGPOWER 165 +#define STRINGID_NATUREPOWERTURNEDINTO 166 +#define STRINGID_PKMNSTATUSNORMAL 167 +#define STRINGID_PKMNHASNOMOVESLEFT 168 +#define STRINGID_PKMNSUBJECTEDTOTORMENT 169 +#define STRINGID_PKMNCANTUSEMOVETORMENT 170 +#define STRINGID_PKMNTIGHTENINGFOCUS 171 +#define STRINGID_PKMNFELLFORTAUNT 172 +#define STRINGID_PKMNCANTUSEMOVETAUNT 173 +#define STRINGID_PKMNREADYTOHELP 174 +#define STRINGID_PKMNSWITCHEDITEMS 175 +#define STRINGID_PKMNCOPIEDFOE 176 +#define STRINGID_PKMNMADEWISH 177 +#define STRINGID_PKMNWISHCAMETRUE 178 +#define STRINGID_PKMNPLANTEDROOTS 179 +#define STRINGID_PKMNABSORBEDNUTRIENTS 180 +#define STRINGID_PKMNANCHOREDITSELF 181 +#define STRINGID_PKMNWASMADEDROWSY 182 +#define STRINGID_PKMNKNOCKEDOFF 183 +#define STRINGID_PKMNSWAPPEDABILITIES 184 +#define STRINGID_PKMNSEALEDOPPONENTMOVE 185 +#define STRINGID_PKMNCANTUSEMOVESEALED 186 +#define STRINGID_PKMNWANTSGRUDGE 187 +#define STRINGID_PKMNLOSTPPGRUDGE 188 +#define STRINGID_PKMNSHROUDEDITSELF 189 +#define STRINGID_PKMNMOVEBOUNCED 190 +#define STRINGID_PKMNWAITSFORTARGET 191 +#define STRINGID_PKMNSNATCHEDMOVE 192 +#define STRINGID_PKMNMADEITRAIN 193 +#define STRINGID_PKMNRAISEDSPEED 194 +#define STRINGID_PKMNPROTECTEDBY 195 +#define STRINGID_PKMNPREVENTSUSAGE 196 +#define STRINGID_PKMNRESTOREDHPUSING 197 +#define STRINGID_PKMNCHANGEDTYPEWITH 198 +#define STRINGID_PKMNPREVENTSPARALYSISWITH 199 +#define STRINGID_PKMNPREVENTSROMANCEWITH 200 +#define STRINGID_PKMNPREVENTSPOISONINGWITH 201 +#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202 +#define STRINGID_PKMNRAISEDFIREPOWERWITH 203 +#define STRINGID_PKMNANCHORSITSELFWITH 204 +#define STRINGID_PKMNCUTSATTACKWITH 205 +#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206 +#define STRINGID_PKMNHURTSWITH 207 +#define STRINGID_PKMNTRACED 208 +#define STRINGID_STATSHARPLY 209 +#define STRINGID_STATROSE 210 +#define STRINGID_STATHARSHLY 211 +#define STRINGID_STATFELL 212 +#define STRINGID_ATTACKERSSTATROSE 213 +#define STRINGID_DEFENDERSSTATROSE 214 +#define STRINGID_ATTACKERSSTATFELL 215 +#define STRINGID_DEFENDERSSTATFELL 216 +#define STRINGID_CRITICALHIT 217 +#define STRINGID_ONEHITKO 218 +#define STRINGID_123POOF 219 +#define STRINGID_ANDELLIPSIS 220 +#define STRINGID_NOTVERYEFFECTIVE 221 +#define STRINGID_SUPEREFFECTIVE 222 +#define STRINGID_GOTAWAYSAFELY 223 +#define STRINGID_WILDPKMNFLED 224 +#define STRINGID_NORUNNINGFROMTRAINERS 225 +#define STRINGID_CANTESCAPE 226 +#define STRINGID_DONTLEAVEBIRCH 227 +#define STRINGID_BUTNOTHINGHAPPENED 228 +#define STRINGID_BUTITFAILED 229 +#define STRINGID_ITHURTCONFUSION 230 +#define STRINGID_MIRRORMOVEFAILED 231 +#define STRINGID_STARTEDTORAIN 232 +#define STRINGID_DOWNPOURSTARTED 233 +#define STRINGID_RAINCONTINUES 234 +#define STRINGID_DOWNPOURCONTINUES 235 +#define STRINGID_RAINSTOPPED 236 +#define STRINGID_SANDSTORMBREWED 237 +#define STRINGID_SANDSTORMRAGES 238 +#define STRINGID_SANDSTORMSUBSIDED 239 +#define STRINGID_SUNLIGHTGOTBRIGHT 240 +#define STRINGID_SUNLIGHTSTRONG 241 +#define STRINGID_SUNLIGHTFADED 242 +#define STRINGID_STARTEDHAIL 243 +#define STRINGID_HAILCONTINUES 244 +#define STRINGID_HAILSTOPPED 245 +#define STRINGID_FAILEDTOSPITUP 246 +#define STRINGID_FAILEDTOSWALLOW 247 +#define STRINGID_WINDBECAMEHEATWAVE 248 +#define STRINGID_STATCHANGESGONE 249 +#define STRINGID_COINSSCATTERED 250 +#define STRINGID_TOOWEAKFORSUBSTITUTE 251 +#define STRINGID_SHAREDPAIN 252 +#define STRINGID_BELLCHIMED 253 +#define STRINGID_FAINTINTHREE 254 +#define STRINGID_NOPPLEFT 255 +#define STRINGID_BUTNOPPLEFT 256 +#define STRINGID_PLAYERUSEDITEM 257 +#define STRINGID_WALLYUSEDITEM 258 +#define STRINGID_TRAINERBLOCKEDBALL 259 +#define STRINGID_DONTBEATHIEF 260 +#define STRINGID_ITDODGEDBALL 261 +#define STRINGID_YOUMISSEDPKMN 262 +#define STRINGID_PKMNBROKEFREE 263 +#define STRINGID_ITAPPEAREDCAUGHT 264 +#define STRINGID_AARGHALMOSTHADIT 265 +#define STRINGID_SHOOTSOCLOSE 266 +#define STRINGID_GOTCHAPKMNCAUGHT 267 +#define STRINGID_GOTCHAPKMNCAUGHT2 268 +#define STRINGID_GIVENICKNAMECAPTURED 269 +#define STRINGID_PKMNSENTTOPC 270 +#define STRINGID_PKMNDATAADDEDTODEX 271 +#define STRINGID_ITISRAINING 272 +#define STRINGID_SANDSTORMISRAGING 273 +#define STRINGID_CANTESCAPE2 274 +#define STRINGID_PKMNIGNORESASLEEP 275 +#define STRINGID_PKMNIGNOREDORDERS 276 +#define STRINGID_PKMNBEGANTONAP 277 +#define STRINGID_PKMNLOAFING 278 +#define STRINGID_PKMNWONTOBEY 279 +#define STRINGID_PKMNTURNEDAWAY 280 +#define STRINGID_PKMNPRETENDNOTNOTICE 281 +#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282 +#define STRINGID_CREPTCLOSER 283 +#define STRINGID_CANTGETCLOSER 284 +#define STRINGID_PKMNWATCHINGCAREFULLY 285 +#define STRINGID_PKMNCURIOUSABOUTX 286 +#define STRINGID_PKMNENTHRALLEDBYX 287 +#define STRINGID_PKMNIGNOREDX 288 +#define STRINGID_THREWPOKEBLOCKATPKMN 289 +#define STRINGID_OUTOFSAFARIBALLS 290 +#define STRINGID_PKMNSITEMCUREDPARALYSIS 291 +#define STRINGID_PKMNSITEMCUREDPOISON 292 +#define STRINGID_PKMNSITEMHEALEDBURN 293 +#define STRINGID_PKMNSITEMDEFROSTEDIT 294 +#define STRINGID_PKMNSITEMWOKEIT 295 +#define STRINGID_PKMNSITEMSNAPPEDOUT 296 +#define STRINGID_PKMNSITEMCUREDPROBLEM 297 +#define STRINGID_PKMNSITEMRESTOREDHEALTH 298 +#define STRINGID_PKMNSITEMRESTOREDPP 299 +#define STRINGID_PKMNSITEMRESTOREDSTATUS 300 +#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301 +#define STRINGID_ITEMALLOWSONLYYMOVE 302 +#define STRINGID_PKMNHUNGONWITHX 303 +#define STRINGID_EMPTYSTRING3 304 +#define STRINGID_PKMNSXPREVENTSBURNS 305 +#define STRINGID_PKMNSXBLOCKSY 306 +#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307 +#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308 +#define STRINGID_PKMNSXPREVENTSYLOSS 309 +#define STRINGID_PKMNSXINFATUATEDY 310 +#define STRINGID_PKMNSXMADEYINEFFECTIVE 311 +#define STRINGID_PKMNSXCUREDYPROBLEM 312 +#define STRINGID_ITSUCKEDLIQUIDOOZE 313 +#define STRINGID_PKMNTRANSFORMED 314 +#define STRINGID_ELECTRICITYWEAKENED 315 +#define STRINGID_FIREWEAKENED 316 +#define STRINGID_PKMNHIDUNDERWATER 317 +#define STRINGID_PKMNSPRANGUP 318 +#define STRINGID_HMMOVESCANTBEFORGOTTEN 319 +#define STRINGID_XFOUNDONEY 320 +#define STRINGID_PLAYERDEFEATEDTRAINER1 321 +#define STRINGID_SOOTHINGAROMA 322 +#define STRINGID_ITEMSCANTBEUSEDNOW 323 +#define STRINGID_FORXCOMMAYZ 324 +#define STRINGID_USINGITEMSTATOFPKMNROSE 325 +#define STRINGID_PKMNUSEDXTOGETPUMPED 326 +#define STRINGID_PKMNSXMADEYUSELESS 327 +#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 +#define STRINGID_EMPTYSTRING4 329 +#define STRINGID_ABOOSTED 330 +#define STRINGID_PKMNSXINTENSIFIEDSUN 331 +#define STRINGID_PKMNMAKESGROUNDMISS 332 +#define STRINGID_YOUTHROWABALLNOWRIGHT 333 +#define STRINGID_PKMNSXTOOKATTACK 334 +#define STRINGID_PKMNCHOSEXASDESTINY 335 +#define STRINGID_PKMNLOSTFOCUS 336 +#define STRINGID_USENEXTPKMN 337 +#define STRINGID_PKMNFLEDUSINGITS 338 +#define STRINGID_PKMNFLEDUSING 339 +#define STRINGID_PKMNWASDRAGGEDOUT 340 +#define STRINGID_PREVENTEDFROMWORKING 341 +#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342 +#define STRINGID_TRAINER1USEDITEM 343 +#define STRINGID_BOXISFULL 344 +#define STRINGID_PKMNAVOIDEDATTACK 345 +#define STRINGID_PKMNSXMADEITINEFFECTIVE 346 +#define STRINGID_PKMNSXPREVENTSFLINCHING 347 +#define STRINGID_PKMNALREADYHASBURN 348 +#define STRINGID_STATSWONTDECREASE2 349 +#define STRINGID_PKMNSXBLOCKSY2 350 +#define STRINGID_PKMNSXWOREOFF 351 +#define STRINGID_PKMNRAISEDDEFALITTLE 352 +#define STRINGID_PKMNRAISEDSPDEFALITTLE 353 +#define STRINGID_THEWALLSHATTERED 354 +#define STRINGID_PKMNSXPREVENTSYSZ 355 +#define STRINGID_PKMNSXCUREDITSYPROBLEM 356 +#define STRINGID_ATTACKERCANTESCAPE 357 +#define STRINGID_PKMNOBTAINEDX 358 +#define STRINGID_PKMNOBTAINEDX2 359 +#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 +#define STRINGID_BUTNOEFFECT 361 +#define STRINGID_PKMNSXHADNOEFFECTONY 362 +#define STRINGID_TWOENEMIESDEFEATED 363 +#define STRINGID_TRAINER2LOSETEXT 364 +#define STRINGID_PKMNINCAPABLEOFPOWER 365 +#define STRINGID_GLINTAPPEARSINEYE 366 +#define STRINGID_PKMNGETTINGINTOPOSITION 367 +#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368 +#define STRINGID_PKMNEAGERFORMORE 369 +#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370 +#define STRINGID_LOSTTOOPPONENTBYREFEREE 371 +#define STRINGID_TIEDOPPONENTBYREFEREE 372 +#define STRINGID_QUESTIONFORFEITMATCH 373 +#define STRINGID_FORFEITEDMATCH 374 +#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375 +#define STRINGID_PKMNTRANSFERREDLANETTESPC 376 +#define STRINGID_PKMNBOXSOMEONESPCFULL 377 +#define STRINGID_PKMNBOXLANETTESPCFULL 378 +#define STRINGID_TRAINER1WINTEXT 379 +#define STRINGID_TRAINER2WINTEXT 380 -#define STRINGID_ENDUREDSTURDY 381 -#define STRINGID_POWERHERB 382 -#define STRINGID_HURTBYITEM 383 -#define STRINGID_PSNBYITEM 384 -#define STRINGID_BRNBYITEM 385 -#define STRINGID_DEFABILITYIN 386 -#define STRINGID_GRAVITYINTENSIFIED 387 -#define STRINGID_TARGETIDENTIFIED 388 -#define STRINGID_TARGETWOKEUP 389 -#define STRINGID_PKMNSTOLEANDATEITEM 390 -#define STRINGID_TAILWINDBLEW 391 -#define STRINGID_PKMNWENTBACK 392 -#define STRINGID_PKMNCANTUSEITEMSANYMORE 393 -#define STRINGID_PKMNFLUNG 394 -#define STRINGID_PKMNPREVENTEDFROMHEALING 395 -#define STRINGID_PKMNSWITCHEDATKANDDEF 396 -#define STRINGID_PKMNSABILITYSUPPRESSED 397 -#define STRINGID_SHIELDEDFROMCRITICALHITS 398 -#define STRINGID_SWITCHEDATKANDSPATK 399 -#define STRINGID_SWITCHEDDEFANDSPDEF 400 -#define STRINGID_PKMNACQUIREDABILITY 401 -#define STRINGID_POISONSPIKESSCATTERED 402 -#define STRINGID_PKMNSWITCHEDSTATCHANGES 403 -#define STRINGID_PKMNSURROUNDEDWITHVEILOFWATER 404 +#define STRINGID_ENDUREDSTURDY 381 +#define STRINGID_POWERHERB 382 +#define STRINGID_HURTBYITEM 383 +#define STRINGID_PSNBYITEM 384 +#define STRINGID_BRNBYITEM 385 +#define STRINGID_DEFABILITYIN 386 +#define STRINGID_GRAVITYINTENSIFIED 387 +#define STRINGID_TARGETIDENTIFIED 388 +#define STRINGID_TARGETWOKEUP 389 +#define STRINGID_PKMNSTOLEANDATEITEM 390 +#define STRINGID_TAILWINDBLEW 391 +#define STRINGID_PKMNWENTBACK 392 +#define STRINGID_PKMNCANTUSEITEMSANYMORE 393 +#define STRINGID_PKMNFLUNG 394 +#define STRINGID_PKMNPREVENTEDFROMHEALING 395 +#define STRINGID_PKMNSWITCHEDATKANDDEF 396 +#define STRINGID_PKMNSABILITYSUPPRESSED 397 +#define STRINGID_SHIELDEDFROMCRITICALHITS 398 +#define STRINGID_SWITCHEDATKANDSPATK 399 +#define STRINGID_SWITCHEDDEFANDSPDEF 400 +#define STRINGID_PKMNACQUIREDABILITY 401 +#define STRINGID_POISONSPIKESSCATTERED 402 +#define STRINGID_PKMNSWITCHEDSTATCHANGES 403 +#define STRINGID_PKMNSURROUNDEDWITHVEILOFWATER 404 #define STRINGID_PKMNLEVITATEDONELECTROMAGNETISM 405 -#define STRINGID_PKMNTWISTEDDIMENSIONS 406 -#define STRINGID_POINTEDSTONESFLOAT 407 -#define STRINGID_CLOAKEDINMYSTICALMOONLIGHT 408 -#define STRINGID_TRAPPERBYSWIRLINGMAGMA 409 -#define STRINGID_VANISHEDINSTANTLY 410 -#define STRINGID_PROTECTEDTEAM 411 -#define STRINGID_SHAREDITSGUARD 412 -#define STRINGID_SHAREDITSPOWER 413 -#define STRINGID_SWAPSDEFANDSPDEFOFALLPOKEMON 414 -#define STRINGID_BECAMENIMBLE 415 -#define STRINGID_HURLEDINTOTHEAIR 416 -#define STRINGID_HELDITEMSLOSEEFFECTS 417 -#define STRINGID_FELLSTRAIGHTDOWN 418 -#define STRINGID_TRANSFORMEDINTOWATERTYPE 419 -#define STRINGID_PKMNACQUIREDSIMPLE 420 -#define STRINGID_EMPTYSTRING5 421 -#define STRINGID_KINDOFFER 422 -#define STRINGID_RESETSTARGETSSTATLEVELS 423 -#define STRINGID_EMPTYSTRING6 424 -#define STRINGID_ALLYSWITCHPOSITION 425 -#define STRINGID_RESTORETARGETSHEALTH 426 -#define STRINGID_TOOKPJMNINTOTHESKY 427 -#define STRINGID_FREEDFROMSKYDROP 428 -#define STRINGID_POSTPONETARGETMOVE 429 -#define STRINGID_REFLECTTARGETSTYPE 430 -#define STRINGID_TRANSFERHELDITEM 431 -#define STRINGID_EMBARGOENDS 432 -#define STRINGID_ELECTROMAGNETISM 433 -#define STRINGID_BUFFERENDS 434 -#define STRINGID_TELEKINESISENDS 435 -#define STRINGID_TAILWINDENDS 436 -#define STRINGID_LUCKYCHANTENDS 437 -#define STRINGID_TRICKROOMENDS 438 -#define STRINGID_WONDERROOMENDS 439 -#define STRINGID_MAGICROOMENDS 440 -#define STRINGID_MUDSPORTENDS 441 -#define STRINGID_WATERSPORTENDS 442 -#define STRINGID_GRAVITYENDS 443 -#define STRINGID_AQUARINGHEAL 444 -#define STRINGID_AURORAVEILENDS 445 -#define STRINGID_ELECTRICTERRAINENDS 446 -#define STRINGID_MISTYTERRAINENDS 447 -#define STRINGID_PSYCHICTERRAINENDS 448 -#define STRINGID_GRASSYTERRAINENDS 449 -#define STRINGID_TARGETABILITYSTATRAISE 450 -#define STRINGID_TARGETSSTATWASMAXEDOUT 451 -#define STRINGID_ATTACKERABILITYSTATRAISE 452 -#define STRINGID_POISONHEALHPUP 453 -#define STRINGID_BADDREAMSDMG 454 -#define STRINGID_MOLDBREAKERENTERS 455 -#define STRINGID_TERAVOLTENTERS 456 -#define STRINGID_TURBOBLAZEENTERS 457 -#define STRINGID_SLOWSTARTENTERS 458 -#define STRINGID_SLOWSTARTEND 459 -#define STRINGID_SOLARPOWERHPDROP 460 -#define STRINGID_AFTERMATHDMG 461 -#define STRINGID_ANTICIPATIONACTIVATES 462 -#define STRINGID_FOREWARNACTIVATES 463 -#define STRINGID_ICEBODYHPGAIN 464 -#define STRINGID_SNOWWARNINGHAIL 465 -#define STRINGID_FRISKACTIVATES 466 -#define STRINGID_UNNERVEENTERS 467 -#define STRINGID_HARVESTBERRY 468 -#define STRINGID_MOXIEATKRISE 469 -#define STRINGID_MAGICBOUNCEACTIVATES 470 -#define STRINGID_PROTEANTYPECHANGE 471 -#define STRINGID_SYMBIOSISITEMPASS 472 -#define STRINGID_STEALTHROCKDMG 473 -#define STRINGID_TOXICSPIKESABSORBED 474 -#define STRINGID_TOXICSPIKESPOISONED 475 -#define STRINGID_STICKYWEBSWITCHIN 476 -#define STRINGID_HEALINGWISHCAMETRUE 477 -#define STRINGID_HEALINGWISHHEALED 478 -#define STRINGID_LUNARDANCECAMETRUE 479 -#define STRINGID_CUSEDBODYDISABLED 480 -#define STRINGID_ATTACKERACQUIREDABILITY 481 -#define STRINGID_TARGETABILITYSTATLOWER 482 -#define STRINGID_TARGETSTATWONTGOHIGHER 483 -#define STRINGID_PKMNMOVEBOUNCEDABILITY 484 -#define STRINGID_IMPOSTERTRANSFORM 485 -#define STRINGID_ASSAULTVESTDOESNTALLOW 486 -#define STRINGID_GRAVITYPREVENTSUSAGE 487 -#define STRINGID_HEALBLOCKPREVENTSUSAGE 488 -#define STRINGID_NOTDONEYET 489 -#define STRINGID_STICKYWEBUSED 490 -#define STRINGID_QUASHSUCCESS 491 -#define STRINGID_PKMNBLEWAWAYTOXICSPIKES 492 -#define STRINGID_PKMNBLEWAWAYSTICKYWEB 493 -#define STRINGID_PKMNBLEWAWAYSTEALTHROCK 494 -#define STRINGID_IONDELUGEON 495 -#define STRINGID_TOPSYTURVYSWITCHEDSTATS 496 -#define STRINGID_TERRAINBECOMESMISTY 497 -#define STRINGID_TERRAINBECOMESGRASSY 498 -#define STRINGID_TERRAINBECOMESELECTRIC 499 -#define STRINGID_TERRAINBECOMESPSYCHIC 500 -#define STRINGID_TARGETELECTRIFIED 501 -#define STRINGID_MEGAEVOREACTING 502 -#define STRINGID_MEGAEVOEVOLVED 503 -#define STRINGID_DRASTICALLY 504 -#define STRINGID_SEVERELY 505 -#define STRINGID_INFESTATION 506 -#define STRINGID_NOEFFECTONTARGET 507 -#define STRINGID_BURSTINGFLAMESHIT 508 -#define STRINGID_BESTOWITEMGIVING 509 -#define STRINGID_THIRDTYPEADDED 510 -#define STRINGID_FELLFORFEINT 511 -#define STRINGID_POKEMONCANNOTUSEMOVE 512 -#define STRINGID_COVEREDINPOWDER 513 -#define STRINGID_POWDEREXPLODES 514 -#define STRINGID_BELCHCANTSELECT 515 -#define STRINGID_SPECTRALTHIEFSTEAL 516 -#define STRINGID_GRAVITYGROUNDING 517 -#define STRINGID_MISTYTERRAINPREVENTS 518 -#define STRINGID_GRASSYTERRAINHEALS 519 -#define STRINGID_ELECTRICTERRAINPREVENTS 520 -#define STRINGID_PSYCHICTERRAINPREVENTS 521 -#define STRINGID_SAFETYGOOGLESPROTECTED 522 -#define STRINGID_FLOWERVEILPROTECTED 523 -#define STRINGID_SWEETVEILPROTECTED 524 -#define STRINGID_AROMAVEILPROTECTED 525 -#define STRINGID_CELEBRATEMESSAGE 526 -#define STRINGID_USEDINSTRUCTEDMOVE 527 -#define STRINGID_THROATCHOPENDS 528 -#define STRINGID_PKMNCANTUSEMOVETHROATCHOP 529 -#define STRINGID_LASERFOCUS 530 -#define STRINGID_GEMACTIVATES 531 -#define STRINGID_BERRYDMGREDUCES 532 -#define STRINGID_TARGETATEITEM 533 -#define STRINGID_AIRBALLOONFLOAT 534 -#define STRINGID_AIRBALLOONPOP 535 -#define STRINGID_INCINERATEBURN 536 -#define STRINGID_BUGBITE 537 -#define STRINGID_ILLUSIONWOREOFF 538 -#define STRINGID_ATTACKERCUREDTARGETSTATUS 539 -#define STRINGID_ATTACKERLOSTFIRETYPE 540 -#define STRINGID_HEALERCURE 541 -#define STRINGID_SCRIPTINGABILITYSTATRAISE 542 -#define STRINGID_RECEIVERABILITYTAKEOVER 543 -#define STRINGID_PKNMABSORBINGPOWER 544 -#define STRINGID_NOONEWILLBEABLETORUNAWAY 545 -#define STRINGID_DESTINYKNOTACTIVATES 546 -#define STRINGID_CLOAKEDINAFREEZINGLIGHT 547 -#define STRINGID_STATWASNOTLOWERED 548 -#define STRINGID_FERVENTWISHREACHED 549 -#define STRINGID_AIRLOCKACTIVATES 550 -#define STRINGID_PRESSUREENTERS 551 -#define STRINGID_DARKAURAENTERS 552 -#define STRINGID_FAIRYAURAENTERS 553 -#define STRINGID_AURABREAKENTERS 554 -#define STRINGID_COMATOSEENTERS 555 -#define STRINGID_SCREENCLEANERENTERS 556 -#define STRINGID_FETCHEDPOKEBALL 557 -#define STRINGID_BATTLERABILITYRAISEDSTAT 558 -#define STRINGID_ASANDSTORMKICKEDUP 559 -#define STRINGID_PKMNSWILLPERISHIN3TURNS 560 -#define STRINGID_ABILITYRAISEDSTATDRASTICALLY 561 -#define STRINGID_AURAFLAREDTOLIFE 562 +#define STRINGID_PKMNTWISTEDDIMENSIONS 406 +#define STRINGID_POINTEDSTONESFLOAT 407 +#define STRINGID_CLOAKEDINMYSTICALMOONLIGHT 408 +#define STRINGID_TRAPPERBYSWIRLINGMAGMA 409 +#define STRINGID_VANISHEDINSTANTLY 410 +#define STRINGID_PROTECTEDTEAM 411 +#define STRINGID_SHAREDITSGUARD 412 +#define STRINGID_SHAREDITSPOWER 413 +#define STRINGID_SWAPSDEFANDSPDEFOFALLPOKEMON 414 +#define STRINGID_BECAMENIMBLE 415 +#define STRINGID_HURLEDINTOTHEAIR 416 +#define STRINGID_HELDITEMSLOSEEFFECTS 417 +#define STRINGID_FELLSTRAIGHTDOWN 418 +#define STRINGID_TRANSFORMEDINTOWATERTYPE 419 +#define STRINGID_PKMNACQUIREDSIMPLE 420 +#define STRINGID_EMPTYSTRING5 421 +#define STRINGID_KINDOFFER 422 +#define STRINGID_RESETSTARGETSSTATLEVELS 423 +#define STRINGID_EMPTYSTRING6 424 +#define STRINGID_ALLYSWITCHPOSITION 425 +#define STRINGID_RESTORETARGETSHEALTH 426 +#define STRINGID_TOOKPJMNINTOTHESKY 427 +#define STRINGID_FREEDFROMSKYDROP 428 +#define STRINGID_POSTPONETARGETMOVE 429 +#define STRINGID_REFLECTTARGETSTYPE 430 +#define STRINGID_TRANSFERHELDITEM 431 +#define STRINGID_EMBARGOENDS 432 +#define STRINGID_ELECTROMAGNETISM 433 +#define STRINGID_BUFFERENDS 434 +#define STRINGID_TELEKINESISENDS 435 +#define STRINGID_TAILWINDENDS 436 +#define STRINGID_LUCKYCHANTENDS 437 +#define STRINGID_TRICKROOMENDS 438 +#define STRINGID_WONDERROOMENDS 439 +#define STRINGID_MAGICROOMENDS 440 +#define STRINGID_MUDSPORTENDS 441 +#define STRINGID_WATERSPORTENDS 442 +#define STRINGID_GRAVITYENDS 443 +#define STRINGID_AQUARINGHEAL 444 +#define STRINGID_AURORAVEILENDS 445 +#define STRINGID_ELECTRICTERRAINENDS 446 +#define STRINGID_MISTYTERRAINENDS 447 +#define STRINGID_PSYCHICTERRAINENDS 448 +#define STRINGID_GRASSYTERRAINENDS 449 +#define STRINGID_TARGETABILITYSTATRAISE 450 +#define STRINGID_TARGETSSTATWASMAXEDOUT 451 +#define STRINGID_ATTACKERABILITYSTATRAISE 452 +#define STRINGID_POISONHEALHPUP 453 +#define STRINGID_BADDREAMSDMG 454 +#define STRINGID_MOLDBREAKERENTERS 455 +#define STRINGID_TERAVOLTENTERS 456 +#define STRINGID_TURBOBLAZEENTERS 457 +#define STRINGID_SLOWSTARTENTERS 458 +#define STRINGID_SLOWSTARTEND 459 +#define STRINGID_SOLARPOWERHPDROP 460 +#define STRINGID_AFTERMATHDMG 461 +#define STRINGID_ANTICIPATIONACTIVATES 462 +#define STRINGID_FOREWARNACTIVATES 463 +#define STRINGID_ICEBODYHPGAIN 464 +#define STRINGID_SNOWWARNINGHAIL 465 +#define STRINGID_FRISKACTIVATES 466 +#define STRINGID_UNNERVEENTERS 467 +#define STRINGID_HARVESTBERRY 468 +#define STRINGID_LASTABILITYRAISEDSTAT 469 +#define STRINGID_MAGICBOUNCEACTIVATES 470 +#define STRINGID_PROTEANTYPECHANGE 471 +#define STRINGID_SYMBIOSISITEMPASS 472 +#define STRINGID_STEALTHROCKDMG 473 +#define STRINGID_TOXICSPIKESABSORBED 474 +#define STRINGID_TOXICSPIKESPOISONED 475 +#define STRINGID_STICKYWEBSWITCHIN 476 +#define STRINGID_HEALINGWISHCAMETRUE 477 +#define STRINGID_HEALINGWISHHEALED 478 +#define STRINGID_LUNARDANCECAMETRUE 479 +#define STRINGID_CUSEDBODYDISABLED 480 +#define STRINGID_ATTACKERACQUIREDABILITY 481 +#define STRINGID_TARGETABILITYSTATLOWER 482 +#define STRINGID_TARGETSTATWONTGOHIGHER 483 +#define STRINGID_PKMNMOVEBOUNCEDABILITY 484 +#define STRINGID_IMPOSTERTRANSFORM 485 +#define STRINGID_ASSAULTVESTDOESNTALLOW 486 +#define STRINGID_GRAVITYPREVENTSUSAGE 487 +#define STRINGID_HEALBLOCKPREVENTSUSAGE 488 +#define STRINGID_NOTDONEYET 489 +#define STRINGID_STICKYWEBUSED 490 +#define STRINGID_QUASHSUCCESS 491 +#define STRINGID_PKMNBLEWAWAYTOXICSPIKES 492 +#define STRINGID_PKMNBLEWAWAYSTICKYWEB 493 +#define STRINGID_PKMNBLEWAWAYSTEALTHROCK 494 +#define STRINGID_IONDELUGEON 495 +#define STRINGID_TOPSYTURVYSWITCHEDSTATS 496 +#define STRINGID_TERRAINBECOMESMISTY 497 +#define STRINGID_TERRAINBECOMESGRASSY 498 +#define STRINGID_TERRAINBECOMESELECTRIC 499 +#define STRINGID_TERRAINBECOMESPSYCHIC 500 +#define STRINGID_TARGETELECTRIFIED 501 +#define STRINGID_MEGAEVOREACTING 502 +#define STRINGID_MEGAEVOEVOLVED 503 +#define STRINGID_DRASTICALLY 504 +#define STRINGID_SEVERELY 505 +#define STRINGID_INFESTATION 506 +#define STRINGID_NOEFFECTONTARGET 507 +#define STRINGID_BURSTINGFLAMESHIT 508 +#define STRINGID_BESTOWITEMGIVING 509 +#define STRINGID_THIRDTYPEADDED 510 +#define STRINGID_FELLFORFEINT 511 +#define STRINGID_POKEMONCANNOTUSEMOVE 512 +#define STRINGID_COVEREDINPOWDER 513 +#define STRINGID_POWDEREXPLODES 514 +#define STRINGID_BELCHCANTSELECT 515 +#define STRINGID_SPECTRALTHIEFSTEAL 516 +#define STRINGID_GRAVITYGROUNDING 517 +#define STRINGID_MISTYTERRAINPREVENTS 518 +#define STRINGID_GRASSYTERRAINHEALS 519 +#define STRINGID_ELECTRICTERRAINPREVENTS 520 +#define STRINGID_PSYCHICTERRAINPREVENTS 521 +#define STRINGID_SAFETYGOOGLESPROTECTED 522 +#define STRINGID_FLOWERVEILPROTECTED 523 +#define STRINGID_SWEETVEILPROTECTED 524 +#define STRINGID_AROMAVEILPROTECTED 525 +#define STRINGID_CELEBRATEMESSAGE 526 +#define STRINGID_USEDINSTRUCTEDMOVE 527 +#define STRINGID_THROATCHOPENDS 528 +#define STRINGID_PKMNCANTUSEMOVETHROATCHOP 529 +#define STRINGID_LASERFOCUS 530 +#define STRINGID_GEMACTIVATES 531 +#define STRINGID_BERRYDMGREDUCES 532 +#define STRINGID_TARGETATEITEM 533 +#define STRINGID_AIRBALLOONFLOAT 534 +#define STRINGID_AIRBALLOONPOP 535 +#define STRINGID_INCINERATEBURN 536 +#define STRINGID_BUGBITE 537 +#define STRINGID_ILLUSIONWOREOFF 538 +#define STRINGID_ATTACKERCUREDTARGETSTATUS 539 +#define STRINGID_ATTACKERLOSTFIRETYPE 540 +#define STRINGID_HEALERCURE 541 +#define STRINGID_SCRIPTINGABILITYSTATRAISE 542 +#define STRINGID_RECEIVERABILITYTAKEOVER 543 +#define STRINGID_PKNMABSORBINGPOWER 544 +#define STRINGID_NOONEWILLBEABLETORUNAWAY 545 +#define STRINGID_DESTINYKNOTACTIVATES 546 +#define STRINGID_CLOAKEDINAFREEZINGLIGHT 547 +#define STRINGID_STATWASNOTLOWERED 548 +#define STRINGID_FERVENTWISHREACHED 549 +#define STRINGID_AIRLOCKACTIVATES 550 +#define STRINGID_PRESSUREENTERS 551 +#define STRINGID_DARKAURAENTERS 552 +#define STRINGID_FAIRYAURAENTERS 553 +#define STRINGID_AURABREAKENTERS 554 +#define STRINGID_COMATOSEENTERS 555 +#define STRINGID_SCREENCLEANERENTERS 556 +#define STRINGID_FETCHEDPOKEBALL 557 +#define STRINGID_BATTLERABILITYRAISEDSTAT 558 +#define STRINGID_ASANDSTORMKICKEDUP 559 +#define STRINGID_PKMNSWILLPERISHIN3TURNS 560 +#define STRINGID_ABILITYRAISEDSTATDRASTICALLY 561 +#define STRINGID_AURAFLAREDTOLIFE 562 +#define STRINGID_ASONEENTERS 563 +#define STRINGID_CURIOUSMEDICINEENTERS 564 +#define STRINGID_CANACTFASTERTHANKSTO 565 +#define STRINGID_MICLEBERRYACTIVATES 566 +#define STRINGID_PKMNSHOOKOFFTHETAUNT 567 +#define STRINGID_PKMNGOTOVERITSINFATUATION 568 +#define STRINGID_ITEMCANNOTBEREMOVED 569 +#define STRINGID_STICKYBARBTRANSFER 570 +#define STRINGID_PKMNBURNHEALED 571 -#define BATTLESTRINGS_COUNT 563 +#define BATTLESTRINGS_COUNT 572 -//// multichoice message IDs -// switch in ability message -#define MULTI_SWITCHIN_MOLDBREAKER 0 -#define MULTI_SWITCHIN_TERAVOLT 1 -#define MULTI_SWITCHIN_TURBOBLAZE 2 -#define MULTI_SWITCHIN_SLOWSTART 3 -#define MULTI_SWITCHIN_UNNERVE 4 -#define MULTI_SWITCHIN_ANTICIPATION 5 -#define MULTI_SWITCHIN_FOREWARN 6 -#define MULTI_SWITCHIN_PRESSURE 7 -#define MULTI_SWITCHIN_DARKAURA 8 -#define MULTI_SWITCHIN_FAIRYAURA 9 -#define MULTI_SWITCHIN_AURABREAK 10 -#define MULTI_SWITCHIN_COMATOSE 11 -#define MULTI_SWITCHIN_SCREENCLEANER 12 +// The below IDs are all indexes into battle message tables, +// used to determine which of a set of messages to print. +// They are assigned to the MULTISTRING_CHOOSER byte of gBattleCommunication +// and read when e.g. the command printfromtable is used. + +// gStatUpStringIds +#define B_MSG_ATTACKER_STAT_ROSE 0 +#define B_MSG_DEFENDER_STAT_ROSE 1 +#define B_MSG_STAT_WONT_INCREASE 2 +#define B_MSG_STAT_ROSE_EMPTY 3 +#define B_MSG_STAT_ROSE_ITEM 4 +#define B_MSG_USED_DIRE_HIT 5 + +// gStatDownStringIds +#define B_MSG_ATTACKER_STAT_FELL 0 +#define B_MSG_DEFENDER_STAT_FELL 1 +#define B_MSG_STAT_WONT_DECREASE 2 +#define B_MSG_STAT_FELL_EMPTY 3 + +// gMissStringIds +#define B_MSG_MISSED 0 +#define B_MSG_PROTECTED 1 +#define B_MSG_AVOIDED_ATK 2 +#define B_MSG_AVOIDED_DMG 3 +#define B_MSG_GROUND_MISS 4 + +// gAbsorbDrainStringIds +#define B_MSG_ABSORB 0 +#define B_MSG_ABSORB_OOZE 1 + +// gLeechSeedStringIds +#define B_MSG_LEECH_SEED_SET 0 +#define B_MSG_LEECH_SEED_MISS 1 +#define B_MSG_LEECH_SEED_FAIL 2 +#define B_MSG_LEECH_SEED_DRAIN 3 +#define B_MSG_LEECH_SEED_OOZE 4 + +// gFirstTurnOfTwoStringIds +#define B_MSG_TURN1_RAZOR_WIND 0 +#define B_MSG_TURN1_SOLAR_BEAM 1 +#define B_MSG_TURN1_SKULL_BASH 2 +#define B_MSG_TURN1_SKY_ATTACK 3 +#define B_MSG_TURN1_FLY 4 +#define B_MSG_TURN1_DIG 5 +#define B_MSG_TURN1_DIVE 6 +#define B_MSG_TURN1_BOUNCE 7 +#define B_MSG_TURN1_PHANTOM_FORCE 8 +#define B_MSG_TURN1_GEOMANCY 9 +#define B_MSG_TURN1_FREEZE_SHOCK 10 + +// gMoveWeatherChangeStringIds +#define B_MSG_STARTED_RAIN 0 +#define B_MSG_STARTED_DOWNPOUR 1 +#define B_MSG_WEATHER_FAILED 2 +#define B_MSG_STARTED_SANDSTORM 3 +#define B_MSG_STARTED_SUNLIGHT 4 +#define B_MSG_STARTED_HAIL 5 + +// gRainContinuesStringIds +#define B_MSG_RAIN_CONTINUES 0 +#define B_MSG_DOWNPOUR_CONTINUES 1 +#define B_MSG_RAIN_STOPPED 2 + +// gSandStormHailContinuesStringIds / gSandStormHailDmgStringIds/ gSandStormHailEndStringIds +#define B_MSG_SANDSTORM 0 +#define B_MSG_HAIL 1 + +// gReflectLightScreenSafeguardStringIds +#define B_MSG_SIDE_STATUS_FAILED 0 +#define B_MSG_SET_REFLECT_SINGLE 1 +#define B_MSG_SET_REFLECT_DOUBLE 2 +#define B_MSG_SET_LIGHTSCREEN_SINGLE 3 +#define B_MSG_SET_LIGHTSCREEN_DOUBLE 4 +#define B_MSG_SET_SAFEGUARD 5 + +// gProtectLikeUsedStringIds +#define B_MSG_PROTECTED_ITSELF 0 +#define B_MSG_BRACED_ITSELF 1 +#define B_MSG_PROTECT_FAILED 2 +#define B_MSG_PROTECTED_TEAM 3 + +// gRestUsedStringIds +#define B_MSG_REST 0 +#define B_MSG_REST_STATUSED 1 + +// gWokeUpStringIds +#define B_MSG_WOKE_UP 0 +#define B_MSG_WOKE_UP_UPROAR 1 + +// gUproarAwakeStringIds +#define B_MSG_CANT_SLEEP_UPROAR 0 +#define B_MSG_UPROAR_KEPT_AWAKE 1 +#define B_MSG_STAYED_AWAKE_USING 2 + +// gUproarOverTurnStringIds +#define B_MSG_UPROAR_CONTINUES 0 +#define B_MSG_UPROAR_ENDS 1 + +// gStockpileUsedStringIds +#define B_MSG_STOCKPILED 0 +#define B_MSG_CANT_STOCKPILE 1 + +// gSwallowFailStringIds +#define B_MSG_SWALLOW_FAILED 0 +#define B_MSG_SWALLOW_FULL_HP 1 + +// gKOFailedStringIds +#define B_MSG_KO_MISS 0 +#define B_MSG_KO_UNAFFECTED 1 + +// gMistUsedStringIds +#define B_MSG_SET_MIST 0 +#define B_MSG_MIST_FAILED 1 + +// gFocusEnergyUsedStringIds +#define B_MSG_GETTING_PUMPED 0 +#define B_MSG_FOCUS_ENERGY_FAILED 1 + +// gTransformUsedStringIds +#define B_MSG_TRANSFORMED 0 +#define B_MSG_TRANSFORM_FAILED 1 + +// gSubstituteUsedStringIds +#define B_MSG_SET_SUBSTITUTE 0 +#define B_MSG_SUBSTITUTE_FAILED 1 + +// gPartyStatusHealStringIds +#define B_MSG_BELL 0 +#define B_MSG_BELL_SOUNDPROOF_ATTACKER 1 +#define B_MSG_BELL_SOUNDPROOF_PARTNER 2 +#define B_MSG_BELL_BOTH_SOUNDPROOF 3 +#define B_MSG_SOOTHING_AROMA 4 + +// gFutureMoveUsedStringIds +#define B_MSG_FUTURE_SIGHT 0 +#define B_MSG_DOOM_DESIRE 1 + +// gItemSwapStringIds +#define B_MSG_ITEM_SWAP_TAKEN 0 +#define B_MSG_ITEM_SWAP_GIVEN 1 +#define B_MSG_ITEM_SWAP_BOTH 2 + +// gSportsUsedStringIds +#define B_MSG_WEAKEN_ELECTRIC 0 +#define B_MSG_WEAKEN_FIRE 1 + +// gCaughtMonStringIds +#define B_MSG_SENT_SOMEONES_PC 0 +#define B_MSG_SENT_LANETTES_PC 1 +#define B_MSG_SOMEONES_BOX_FULL 2 +#define B_MSG_LANETTES_BOX_FULL 3 + +// gInobedientStringIds +#define B_MSG_LOAFING 0 +#define B_MSG_WONT_OBEY 1 +#define B_MSG_TURNED_AWAY 2 +#define B_MSG_PRETEND_NOT_NOTICE 3 +#define B_MSG_INCAPABLE_OF_POWER 4 +// For randomly selecting a disobey string +// Skips the one used for Battle Palace +#define NUM_LOAF_STRINGS 4 + +// gSafariGetNearStringIds +#define B_MSG_CREPT_CLOSER 0 +#define B_MSG_CANT_GET_CLOSER 1 + +// gSafariPokeblockResultStringIds +#define B_MSG_MON_CURIOUS 0 +#define B_MSG_MON_ENTHRALLED 1 +#define B_MSG_MON_IGNORED 2 + +// gFlashFireStringIds +#define B_MSG_FLASH_FIRE_BOOST 0 +#define B_MSG_FLASH_FIRE_NO_BOOST 1 + +// gBerryEffectStringIds +#define B_MSG_CURED_PROBLEM 0 +#define B_MSG_NORMALIZED_STATUS 1 + +// gNoEscapeStringIds +#define B_MSG_CANT_ESCAPE 0 +#define B_MSG_DONT_LEAVE_BIRCH 1 +#define B_MSG_PREVENTS_ESCAPE 2 +#define B_MSG_CANT_ESCAPE_2 3 +#define B_MSG_ATTACKER_CANT_ESCAPE 4 + +// gGotPoisonedStringIds / gGotParalyzedStringIds / gFellAsleepStringIds +// gGotBurnedStringIds / gGotFrozenStringIds / gAttractUsedStringIds +#define B_MSG_STATUSED 0 +#define B_MSG_STATUSED_BY_ABILITY 1 + +// gBRNPreventionStringIds / gPRLZPreventionStringIds / gPSNPreventionStringIds +#define B_MSG_ABILITY_PREVENTS_MOVE_STATUS 0 +#define B_MSG_ABILITY_PREVENTS_ABILITY_STATUS 1 +#define B_MSG_STATUS_HAD_NO_EFFECT 2 + +// gGotDefrostedStringIds +#define B_MSG_DEFROSTED 0 +#define B_MSG_DEFROSTED_BY_MOVE 1 + +// gBattlePalaceFlavorTextTable +#define B_MSG_GLINT_IN_EYE 0 +#define B_MSG_GETTING_IN_POS 1 +#define B_MSG_GROWL_DEEPLY 2 +#define B_MSG_EAGER_FOR_MORE 3 + +// gRefereeStringsTable +#define B_MSG_REF_NOTHING_IS_DECIDED 0 +#define B_MSG_REF_THATS_IT 1 +#define B_MSG_REF_JUDGE_MIND 2 +#define B_MSG_REF_JUDGE_SKILL 3 +#define B_MSG_REF_JUDGE_BODY 4 +#define B_MSG_REF_PLAYER_WON 5 +#define B_MSG_REF_OPPONENT_WON 6 +#define B_MSG_REF_DRAW 7 +#define B_MSG_REF_COMMENCE_BATTLE 8 + +// gSwitchInAbilityStringIds +#define B_MSG_SWITCHIN_MOLDBREAKER 0 +#define B_MSG_SWITCHIN_TERAVOLT 1 +#define B_MSG_SWITCHIN_TURBOBLAZE 2 +#define B_MSG_SWITCHIN_SLOWSTART 3 +#define B_MSG_SWITCHIN_UNNERVE 4 +#define B_MSG_SWITCHIN_ANTICIPATION 5 +#define B_MSG_SWITCHIN_FOREWARN 6 +#define B_MSG_SWITCHIN_PRESSURE 7 +#define B_MSG_SWITCHIN_DARKAURA 8 +#define B_MSG_SWITCHIN_FAIRYAURA 9 +#define B_MSG_SWITCHIN_AURABREAK 10 +#define B_MSG_SWITCHIN_COMATOSE 11 +#define B_MSG_SWITCHIN_SCREENCLEANER 12 +#define B_MSG_SWITCHIN_ASONE 13 +#define B_MSG_SWITCHIN_CURIOUS_MEDICINE 14 #endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H diff --git a/include/constants/battle_tower.h b/include/constants/battle_tower.h index 6d50b83ed2..47858e807c 100644 --- a/include/constants/battle_tower.h +++ b/include/constants/battle_tower.h @@ -33,10 +33,10 @@ #define BATTLE_TOWER_LINK_CONTINUE 0 #define BATTLE_TOWER_LINK_RETIRE 1 -#define BATTLE_TOWER_LINKSTAT_CONTINUE 0 -#define BATTLE_TOWER_LINKSTAT_BOTH_RETIRE 1 -#define BATTLE_TOWER_LINKSTAT_PARTNER_RETIRE 2 -#define BATTLE_TOWER_LINKSTAT_PLAYER_RETIRE 3 +#define BATTLE_TOWER_LINKSTAT_CONTINUE 0 +#define BATTLE_TOWER_LINKSTAT_BOTH_RETIRE 1 +#define BATTLE_TOWER_LINKSTAT_MEMBER_RETIRE 2 +#define BATTLE_TOWER_LINKSTAT_LEADER_RETIRE 3 // Ids for special multi battle types #define MULTI_BATTLE_2_VS_2 0 diff --git a/include/constants/berry.h b/include/constants/berry.h index 8f1e7cd826..3ba59c0f5e 100644 --- a/include/constants/berry.h +++ b/include/constants/berry.h @@ -32,4 +32,101 @@ // - BERRY_STAGE_FLOWERING #define NUM_WATER_STAGES 4 +// IDs for berry tree objects, indexes into berryTrees in SaveBlock1 +// Named for whatever berry is initially planted there on a new game +// Those with no initial berry are named "soil" +#define BERRY_TREE_ROUTE_102_PECHA 1 +#define BERRY_TREE_ROUTE_102_ORAN 2 +#define BERRY_TREE_ROUTE_104_SOIL_1 3 +#define BERRY_TREE_ROUTE_104_ORAN_1 4 +#define BERRY_TREE_ROUTE_103_CHERI_1 5 +#define BERRY_TREE_ROUTE_103_LEPPA 6 +#define BERRY_TREE_ROUTE_103_CHERI_2 7 +#define BERRY_TREE_ROUTE_104_CHERI_1 8 +#define BERRY_TREE_ROUTE_104_SOIL_2 9 +#define BERRY_TREE_ROUTE_104_LEPPA 10 +#define BERRY_TREE_ROUTE_104_ORAN_2 11 +#define BERRY_TREE_ROUTE_104_SOIL_3 12 +#define BERRY_TREE_ROUTE_104_PECHA 13 +#define BERRY_TREE_ROUTE_123_QUALOT_1 14 +#define BERRY_TREE_ROUTE_123_POMEG_1 15 +#define BERRY_TREE_ROUTE_110_NANAB_1 16 +#define BERRY_TREE_ROUTE_110_NANAB_2 17 +#define BERRY_TREE_ROUTE_110_NANAB_3 18 +#define BERRY_TREE_ROUTE_111_RAZZ_1 19 +#define BERRY_TREE_ROUTE_111_RAZZ_2 20 +#define BERRY_TREE_ROUTE_112_RAWST_1 21 +#define BERRY_TREE_ROUTE_112_PECHA_1 22 +#define BERRY_TREE_ROUTE_112_PECHA_2 23 +#define BERRY_TREE_ROUTE_112_RAWST_2 24 +#define BERRY_TREE_ROUTE_116_PINAP_1 25 +#define BERRY_TREE_ROUTE_116_CHESTO_1 26 +#define BERRY_TREE_ROUTE_117_WEPEAR_1 27 +#define BERRY_TREE_ROUTE_117_WEPEAR_2 28 +#define BERRY_TREE_ROUTE_117_WEPEAR_3 29 +#define BERRY_TREE_ROUTE_123_POMEG_2 30 +#define BERRY_TREE_ROUTE_118_SITRUS_1 31 +#define BERRY_TREE_ROUTE_118_SOIL 32 +#define BERRY_TREE_ROUTE_118_SITRUS_2 33 +#define BERRY_TREE_ROUTE_119_POMEG_1 34 +#define BERRY_TREE_ROUTE_119_POMEG_2 35 +#define BERRY_TREE_ROUTE_119_POMEG_3 36 +#define BERRY_TREE_ROUTE_120_ASPEAR_1 37 +#define BERRY_TREE_ROUTE_120_ASPEAR_2 38 +#define BERRY_TREE_ROUTE_120_ASPEAR_3 39 +#define BERRY_TREE_ROUTE_120_PECHA_1 40 +#define BERRY_TREE_ROUTE_120_PECHA_2 41 +#define BERRY_TREE_ROUTE_120_PECHA_3 42 +#define BERRY_TREE_ROUTE_120_RAZZ 43 +#define BERRY_TREE_ROUTE_120_NANAB 44 +#define BERRY_TREE_ROUTE_120_PINAP 45 +#define BERRY_TREE_ROUTE_120_WEPEAR 46 +#define BERRY_TREE_ROUTE_121_PERSIM 47 +#define BERRY_TREE_ROUTE_121_ASPEAR 48 +#define BERRY_TREE_ROUTE_121_RAWST 49 +#define BERRY_TREE_ROUTE_121_CHESTO 50 +#define BERRY_TREE_ROUTE_121_SOIL_1 51 +#define BERRY_TREE_ROUTE_121_NANAB_1 52 +#define BERRY_TREE_ROUTE_121_NANAB_2 53 +#define BERRY_TREE_ROUTE_121_SOIL_2 54 +#define BERRY_TREE_ROUTE_115_BLUK_1 55 +#define BERRY_TREE_ROUTE_115_BLUK_2 56 +#define BERRY_TREE_UNUSED 57 +#define BERRY_TREE_ROUTE_123_POMEG_3 58 +#define BERRY_TREE_ROUTE_123_POMEG_4 59 +#define BERRY_TREE_ROUTE_123_GREPA_1 60 +#define BERRY_TREE_ROUTE_123_GREPA_2 61 +#define BERRY_TREE_ROUTE_123_LEPPA_1 62 +#define BERRY_TREE_ROUTE_123_SOIL 63 +#define BERRY_TREE_ROUTE_123_LEPPA_2 64 +#define BERRY_TREE_ROUTE_123_GREPA_3 65 +#define BERRY_TREE_ROUTE_116_CHESTO_2 66 +#define BERRY_TREE_ROUTE_116_PINAP_2 67 +#define BERRY_TREE_ROUTE_114_PERSIM_1 68 +#define BERRY_TREE_ROUTE_115_KELPSY_1 69 +#define BERRY_TREE_ROUTE_115_KELPSY_2 70 +#define BERRY_TREE_ROUTE_115_KELPSY_3 71 +#define BERRY_TREE_ROUTE_123_GREPA_4 72 +#define BERRY_TREE_ROUTE_123_QUALOT_2 73 +#define BERRY_TREE_ROUTE_123_QUALOT_3 74 +#define BERRY_TREE_ROUTE_104_SOIL_4 75 +#define BERRY_TREE_ROUTE_104_CHERI_2 76 +#define BERRY_TREE_ROUTE_114_PERSIM_2 77 +#define BERRY_TREE_ROUTE_114_PERSIM_3 78 +#define BERRY_TREE_ROUTE_123_QUALOT_4 79 +#define BERRY_TREE_ROUTE_111_ORAN_1 80 +#define BERRY_TREE_ROUTE_111_ORAN_2 81 +#define BERRY_TREE_ROUTE_130_LIECHI 82 +#define BERRY_TREE_ROUTE_119_HONDEW_1 83 +#define BERRY_TREE_ROUTE_119_HONDEW_2 84 +#define BERRY_TREE_ROUTE_119_SITRUS 85 +#define BERRY_TREE_ROUTE_119_LEPPA 86 +#define BERRY_TREE_ROUTE_123_PECHA 87 +#define BERRY_TREE_ROUTE_123_SITRUS 88 +#define BERRY_TREE_ROUTE_123_RAWST 89 + +// Remainder are unused + +#define BERRY_TREES_COUNT 128 + #endif // GUARD_CONSTANTS_BERRY_H diff --git a/include/constants/cable_club.h b/include/constants/cable_club.h index cbdd049db5..3515ffa2c4 100644 --- a/include/constants/cable_club.h +++ b/include/constants/cable_club.h @@ -28,4 +28,8 @@ #define LINKUP_FAILED_BATTLE_TOWER 11 #define LINKUP_FOREIGN_GAME 12 +#define CABLE_SEAT_WAITING 0 +#define CABLE_SEAT_SUCCESS 1 +#define CABLE_SEAT_FAILED 2 + #endif //GUARD_CONSTANTS_CABLE_CLUB_H diff --git a/include/constants/contest.h b/include/constants/contest.h index bb3b4ef039..cefcbeebdc 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -4,6 +4,7 @@ #define APPLAUSE_METER_SIZE 5 #define CONTEST_NUM_APPEALS 5 #define CONTEST_LAST_APPEAL (CONTEST_NUM_APPEALS - 1) +#define MAX_CONTEST_MOVE_HEARTS 8 #define LINK_CONTEST_FLAG_IS_LINK (1 << 0) #define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1) @@ -22,7 +23,9 @@ #define CONTEST_TYPE_NPC_MASTER (CONTEST_RANK_MASTER + 1) #define CONTEST_TYPE_LINK (CONTEST_RANK_LINK + 1) -#define CONTEST_WINNER_ARTIST 0 // Winner shown by the artist, painting not necessarily saved +// IDs below - 1 are indexes into gSaveBlock1Ptr->contestWinners[] +// CONTEST_WINNER_ARTIST is for the winner of the most recent contest, and is not saved. +#define CONTEST_WINNER_ARTIST 0 #define CONTEST_WINNER_HALL_1 1 #define CONTEST_WINNER_HALL_2 2 #define CONTEST_WINNER_HALL_3 3 @@ -30,8 +33,8 @@ #define CONTEST_WINNER_HALL_5 5 #define CONTEST_WINNER_HALL_6 6 #define NUM_CONTEST_HALL_WINNERS 6 -#define CONTEST_WINNER_7 7 -#define CONTEST_WINNER_8 8 +#define CONTEST_WINNER_HALL_UNUSED_1 7 // These two have data for gDefaultContestWinners +#define CONTEST_WINNER_HALL_UNUSED_2 8 // but there are only 6 paintings in the Contest Hall #define CONTEST_WINNER_MUSEUM_COOL 9 #define CONTEST_WINNER_MUSEUM_BEAUTY 10 #define CONTEST_WINNER_MUSEUM_CUTE 11 @@ -39,6 +42,14 @@ #define CONTEST_WINNER_MUSEUM_TOUGH 13 // NUM_CONTEST_WINNERS in constants/global.h +#define MUSEUM_CONTEST_WINNERS_START (CONTEST_WINNER_MUSEUM_COOL - 1) + +#define CONTEST_SAVE_FOR_MUSEUM ((u8)-1) +#define CONTEST_SAVE_FOR_ARTIST ((u8)-2) + +// The number of possible captions for a Contest painting, per category +#define NUM_PAINTING_CAPTIONS 3 + #define CANT_ENTER_CONTEST 0 #define CAN_ENTER_CONTEST_EQUAL_RANK 1 #define CAN_ENTER_CONTEST_HIGH_RANK 2 diff --git a/include/constants/daycare.h b/include/constants/daycare.h index adb62fab50..e412d2ab77 100644 --- a/include/constants/daycare.h +++ b/include/constants/daycare.h @@ -1,11 +1,11 @@ #ifndef GUARD_DAYCARE_CONSTANTS_H #define GUARD_DAYCARE_CONSTANTS_H -// Parent compatability scores +// Parent compatibility scores #define PARENTS_INCOMPATIBLE 0 #define PARENTS_LOW_COMPATIBILITY 20 -#define PARENTS_MED_COMPATABILITY 50 -#define PARENTS_MAX_COMPATABILITY 70 +#define PARENTS_MED_COMPATIBILITY 50 +#define PARENTS_MAX_COMPATIBILITY 70 // Daycare state #define DAYCARE_NO_MONS 0 diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index 8e82cfef02..f98cedbb71 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -9,7 +9,7 @@ #define EASY_CHAT_TYPE_INTERVIEW 5 #define EASY_CHAT_TYPE_BARD_SONG 6 #define EASY_CHAT_TYPE_FAN_CLUB 7 -#define EASY_CHAT_TYPE_UNK_8 8 +#define EASY_CHAT_TYPE_DUMMY_SHOW 8 #define EASY_CHAT_TYPE_TRENDY_PHRASE 9 #define EASY_CHAT_TYPE_GABBY_AND_TY 10 #define EASY_CHAT_TYPE_CONTEST_INTERVIEW 11 @@ -28,29 +28,29 @@ #define EASY_CHAT_PERSON_BOY 2 #define EASY_CHAT_PERSON_DISPLAY_NONE 3 -#define EC_GROUP_POKEMON 0x0 -#define EC_GROUP_TRAINER 0x1 -#define EC_GROUP_STATUS 0x2 -#define EC_GROUP_BATTLE 0x3 -#define EC_GROUP_GREETINGS 0x4 -#define EC_GROUP_PEOPLE 0x5 -#define EC_GROUP_VOICES 0x6 -#define EC_GROUP_SPEECH 0x7 -#define EC_GROUP_ENDINGS 0x8 -#define EC_GROUP_FEELINGS 0x9 -#define EC_GROUP_CONDITIONS 0xa -#define EC_GROUP_ACTIONS 0xb -#define EC_GROUP_LIFESTYLE 0xc -#define EC_GROUP_HOBBIES 0xd -#define EC_GROUP_TIME 0xe -#define EC_GROUP_MISC 0xf -#define EC_GROUP_ADJECTIVES 0x10 -#define EC_GROUP_EVENTS 0x11 -#define EC_GROUP_MOVE_1 0x12 -#define EC_GROUP_MOVE_2 0x13 -#define EC_GROUP_TRENDY_SAYING 0x14 -#define EC_GROUP_POKEMON_2 0x15 -#define EC_NUM_GROUPS 0x16 +#define EC_GROUP_POKEMON 0 +#define EC_GROUP_TRAINER 1 +#define EC_GROUP_STATUS 2 +#define EC_GROUP_BATTLE 3 +#define EC_GROUP_GREETINGS 4 +#define EC_GROUP_PEOPLE 5 +#define EC_GROUP_VOICES 6 +#define EC_GROUP_SPEECH 7 +#define EC_GROUP_ENDINGS 8 +#define EC_GROUP_FEELINGS 9 +#define EC_GROUP_CONDITIONS 10 +#define EC_GROUP_ACTIONS 11 +#define EC_GROUP_LIFESTYLE 12 +#define EC_GROUP_HOBBIES 13 +#define EC_GROUP_TIME 14 +#define EC_GROUP_MISC 15 +#define EC_GROUP_ADJECTIVES 16 +#define EC_GROUP_EVENTS 17 +#define EC_GROUP_MOVE_1 18 +#define EC_GROUP_MOVE_2 19 +#define EC_GROUP_TRENDY_SAYING 20 +#define EC_GROUP_POKEMON_NATIONAL 21 +#define EC_NUM_GROUPS 22 // TRAINER #define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0 @@ -1105,13 +1105,22 @@ #define PHRASE_COOL_LATIOS 4 #define PHRASE_SUPER_HUSTLE 5 +#define EC_NUM_ALPHABET_GROUPS 27 // 26 (1 for each letter) + 1 (Others) + +#define EC_MAX_WORDS_IN_GROUP 270 // The closest is words by letter S, at 262 + +#define EC_MASK_GROUP 0x7F +#define EC_MASK_INDEX 0x1FF + #define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon) -#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon) +#define EC_POKEMON_NATIONAL(mon) ((EC_GROUP_POKEMON_NATIONAL << 9) | SPECIES_##mon) #define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move) #define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move) #define EC_GROUP(word) ((word) >> 9) -#define EC_INDEX(word) ((word) & 0x1FF) -#define EC_WORD(group, index) ((((group) & 0x7F) << 9) | ((index) & 0x1FF)) +#define EC_INDEX(word) ((word) & EC_MASK_INDEX) +#define EC_WORD(group, index) ((((group) & EC_MASK_GROUP) << 9) | ((index) & EC_MASK_INDEX)) + +#define EC_EMPTY_WORD 0xFFFF #endif // GUARD_CONSTANTS_EASY_CHAT_H diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 6a4405b653..13e91c4157 100755 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -64,7 +64,7 @@ #define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS 0x3C #define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS 0x3D #define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS 0x3E -#define MOVEMENT_TYPE_HIDDEN 0x3F +#define MOVEMENT_TYPE_BURIED 0x3F #define MOVEMENT_TYPE_WALK_IN_PLACE_DOWN 0x40 #define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41 #define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42 @@ -237,11 +237,12 @@ #define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97 #define MOVEMENT_ACTION_LEVITATE 0x98 #define MOVEMENT_ACTION_STOP_LEVITATE 0x99 -#define MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP 0x9A +#define MOVEMENT_ACTION_STOP_LEVITATE_AT_TOP 0x9A #define MOVEMENT_ACTION_FIGURE_8 0x9B #define MOVEMENT_ACTION_FLY_UP 0x9C #define MOVEMENT_ACTION_FLY_DOWN 0x9D #define MOVEMENT_ACTION_STEP_END 0xFE +#define MOVEMENT_ACTION_NONE 0xFF #endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 8e026ef2dc..1958c792e1 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -42,7 +42,7 @@ #define OBJ_EVENT_GFX_SCHOOL_KID_M 38 #define OBJ_EVENT_GFX_MANIAC 39 #define OBJ_EVENT_GFX_HEX_MANIAC 40 -#define OBJ_EVENT_GFX_RAYQUAZA_1 41 +#define OBJ_EVENT_GFX_RAYQUAZA_STILL 41 #define OBJ_EVENT_GFX_SWIMMER_M 42 #define OBJ_EVENT_GFX_SWIMMER_F 43 #define OBJ_EVENT_GFX_BLACK_BELT 44 @@ -198,17 +198,17 @@ #define OBJ_EVENT_GFX_MAY_DECORATING 194 #define OBJ_EVENT_GFX_ARCHIE 195 #define OBJ_EVENT_GFX_MAXIE 196 -#define OBJ_EVENT_GFX_KYOGRE_1 197 -#define OBJ_EVENT_GFX_GROUDON_1 198 +#define OBJ_EVENT_GFX_KYOGRE_FRONT 197 +#define OBJ_EVENT_GFX_GROUDON_FRONT 198 #define OBJ_EVENT_GFX_FOSSIL 199 #define OBJ_EVENT_GFX_REGIROCK 200 #define OBJ_EVENT_GFX_REGICE 201 #define OBJ_EVENT_GFX_REGISTEEL 202 #define OBJ_EVENT_GFX_SKITTY 203 #define OBJ_EVENT_GFX_KECLEON 204 -#define OBJ_EVENT_GFX_KYOGRE_2 205 -#define OBJ_EVENT_GFX_GROUDON_2 206 -#define OBJ_EVENT_GFX_RAYQUAZA_2 207 +#define OBJ_EVENT_GFX_KYOGRE_ASLEEP 205 +#define OBJ_EVENT_GFX_GROUDON_ASLEEP 206 +#define OBJ_EVENT_GFX_RAYQUAZA 207 #define OBJ_EVENT_GFX_ZIGZAGOON_2 208 #define OBJ_EVENT_GFX_PIKACHU 209 #define OBJ_EVENT_GFX_AZUMARILL 210 @@ -222,8 +222,8 @@ #define OBJ_EVENT_GFX_JUAN 218 #define OBJ_EVENT_GFX_SCOTT 219 #define OBJ_EVENT_GFX_POOCHYENA 220 -#define OBJ_EVENT_GFX_KYOGRE_3 221 -#define OBJ_EVENT_GFX_GROUDON_3 222 +#define OBJ_EVENT_GFX_KYOGRE_SIDE 221 +#define OBJ_EVENT_GFX_GROUDON_SIDE 222 #define OBJ_EVENT_GFX_MYSTERY_GIFT_MAN 223 #define OBJ_EVENT_GFX_TRICK_HOUSE_STATUE 224 #define OBJ_EVENT_GFX_KIRLIA 225 @@ -279,7 +279,37 @@ #define FIRST_DECORATION_SPRITE_GFX OBJ_EVENT_GFX_PICHU_DOLL +// Special object event local ids #define OBJ_EVENT_ID_PLAYER 0xFF #define OBJ_EVENT_ID_CAMERA 0x7F +// Object event local ids referenced in C files +#define LOCALID_ROUTE111_PLAYER_FALLING 45 +#define LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK 1 +#define LOCALID_FARAWAY_ISLAND_MEW 1 +#define LOCALID_UNION_ROOM_PLAYER_4 2 +#define LOCALID_UNION_ROOM_PLAYER_8 3 +#define LOCALID_UNION_ROOM_PLAYER_7 4 +#define LOCALID_UNION_ROOM_PLAYER_6 5 +#define LOCALID_UNION_ROOM_PLAYER_5 6 +#define LOCALID_UNION_ROOM_PLAYER_3 7 +#define LOCALID_UNION_ROOM_PLAYER_2 8 +#define LOCALID_UNION_ROOM_PLAYER_1 9 +#define LOCALID_BATTLE_TOWER_LOBBY_REPORTER 5 +#define LOCALID_TRUCK_BOX_TOP 1 +#define LOCALID_TRUCK_BOX_BOTTOM_L 2 +#define LOCALID_TRUCK_BOX_BOTTOM_R 3 +#define LOCALID_OLDALE_MART_CLERK 1 +#define LOCALID_LAVARIDGE_MART_CLERK 1 +#define LOCALID_FALLARBOR_MART_CLERK 1 +#define LOCALID_VERDANTURF_MART_CLERK 1 +#define LOCALID_PETALBURG_MART_CLERK 1 +#define LOCALID_SLATEPORT_MART_CLERK 1 +#define LOCALID_MAUVILLE_MART_CLERK 1 +#define LOCALID_RUSTBORO_MART_CLERK 1 +#define LOCALID_FORTREE_MART_CLERK 1 +#define LOCALID_MOSSDEEP_MART_CLERK 1 +#define LOCALID_SOOTOPOLIS_MART_CLERK 1 +#define LOCALID_BATTLE_FRONTIER_MART_CLERK 1 + #endif // GUARD_CONSTANTS_EVENT_OBJECTS_H diff --git a/include/constants/expansion_branches.h b/include/constants/expansion_branches.h new file mode 100644 index 0000000000..f88066e684 --- /dev/null +++ b/include/constants/expansion_branches.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CONSTANTS_EXPANSION_BRANCHES_H +#define GUARD_CONSTANTS_EXPANSION_BRANCHES_H + +// Branch defines: Used by other branches to detect each other. +// Each define must be here for each of RHH's branch you have pulled. +// e.g. If you have both the battle_engine and pokemon_expansion branch, +// then both BATTLE_ENGINE and POKEMON_EXPANSION must be defined here. +#define BATTLE_ENGINE + +#endif diff --git a/include/constants/flags.h b/include/constants/flags.h index 9be269105e..6702fa5eec 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -91,10 +91,10 @@ #define FLAG_UNUSED_0x04F 0x4F // Unused Flag // Scripts -#define FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT 0x50 -#define FLAG_SET_WALL_CLOCK 0x51 -#define FLAG_RESCUED_BIRCH 0x52 -#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53 +#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL 0x50 +#define FLAG_SET_WALL_CLOCK 0x51 +#define FLAG_RESCUED_BIRCH 0x52 +#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53 #define FLAG_UNUSED_0x054 0x54 // Unused Flag #define FLAG_UNUSED_0x055 0x55 // Unused Flag @@ -535,120 +535,120 @@ #define FLAG_MYSTERY_EVENT_14 0x1F2 #define FLAG_MYSTERY_EVENT_15 0x1F3 -// Hidden Items -- sorted by location +// Hidden Items #define FLAG_HIDDEN_ITEMS_START 0x1F4 +#define FLAG_HIDDEN_ITEM_LAVARIDGE_TOWN_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 0x00) #define FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x01) +#define FLAG_HIDDEN_ITEM_ROUTE_111_STARDUST (FLAG_HIDDEN_ITEMS_START + 0x02) +#define FLAG_HIDDEN_ITEM_ROUTE_113_ETHER (FLAG_HIDDEN_ITEMS_START + 0x03) +#define FLAG_HIDDEN_ITEM_ROUTE_114_CARBOS (FLAG_HIDDEN_ITEMS_START + 0x04) +#define FLAG_HIDDEN_ITEM_ROUTE_119_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x05) +#define FLAG_HIDDEN_ITEM_ROUTE_119_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x06) +#define FLAG_HIDDEN_ITEM_ROUTE_123_SUPER_REPEL (FLAG_HIDDEN_ITEMS_START + 0x07) #define FLAG_HIDDEN_ITEM_UNDERWATER_124_CARBOS (FLAG_HIDDEN_ITEMS_START + 0x08) #define FLAG_HIDDEN_ITEM_UNDERWATER_124_GREEN_SHARD (FLAG_HIDDEN_ITEMS_START + 0x09) #define FLAG_HIDDEN_ITEM_UNDERWATER_124_PEARL (FLAG_HIDDEN_ITEMS_START + 0x0A) #define FLAG_HIDDEN_ITEM_UNDERWATER_124_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 0x0B) +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_BLUE_SHARD (FLAG_HIDDEN_ITEMS_START + 0x0C) #define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_1 (FLAG_HIDDEN_ITEMS_START + 0x0D) -#define FLAG_HIDDEN_ITEM_UNDERWATER_124_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x24) -#define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x26) #define FLAG_HIDDEN_ITEM_UNDERWATER_126_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x0E) #define FLAG_HIDDEN_ITEM_UNDERWATER_126_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x0F) #define FLAG_HIDDEN_ITEM_UNDERWATER_126_STARDUST (FLAG_HIDDEN_ITEMS_START + 0x10) #define FLAG_HIDDEN_ITEM_UNDERWATER_126_PEARL (FLAG_HIDDEN_ITEMS_START + 0x11) -#define FLAG_HIDDEN_ITEM_UNDERWATER_126_IRON (FLAG_HIDDEN_ITEMS_START + 0x13) #define FLAG_HIDDEN_ITEM_UNDERWATER_126_YELLOW_SHARD (FLAG_HIDDEN_ITEMS_START + 0x12) +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_IRON (FLAG_HIDDEN_ITEMS_START + 0x13) #define FLAG_HIDDEN_ITEM_UNDERWATER_126_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 0x14) -#define FLAG_HIDDEN_ITEM_UNDERWATER_126_BLUE_SHARD (FLAG_HIDDEN_ITEMS_START + 0x0C) #define FLAG_HIDDEN_ITEM_UNDERWATER_127_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 0x15) #define FLAG_HIDDEN_ITEM_UNDERWATER_127_HP_UP (FLAG_HIDDEN_ITEMS_START + 0x16) #define FLAG_HIDDEN_ITEM_UNDERWATER_127_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x17) #define FLAG_HIDDEN_ITEM_UNDERWATER_127_RED_SHARD (FLAG_HIDDEN_ITEMS_START + 0x18) #define FLAG_HIDDEN_ITEM_UNDERWATER_128_PROTEIN (FLAG_HIDDEN_ITEMS_START + 0x19) #define FLAG_HIDDEN_ITEM_UNDERWATER_128_PEARL (FLAG_HIDDEN_ITEMS_START + 0x1A) +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x1B) #define FLAG_HIDDEN_ITEM_FALLARBOR_TOWN_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x1C) -#define FLAG_HIDDEN_ITEM_LAVARIDGE_TOWN_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 0x00) +#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x1D) +#define FLAG_HIDDEN_ITEM_ROUTE_113_TM_32 (FLAG_HIDDEN_ITEMS_START + 0x1E) #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_1_KEY (FLAG_HIDDEN_ITEMS_START + 0x1F) #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_2_KEY (FLAG_HIDDEN_ITEMS_START + 0x20) #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_4_KEY (FLAG_HIDDEN_ITEMS_START + 0x21) #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_6_KEY (FLAG_HIDDEN_ITEMS_START + 0x22) -#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x65) -#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_ZINC (FLAG_HIDDEN_ITEMS_START + 0x66) -#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_PROTEIN (FLAG_HIDDEN_ITEMS_START + 0x67) -#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_IRON (FLAG_HIDDEN_ITEMS_START + 0x68) +#define FLAG_HIDDEN_ITEM_SS_TIDAL_LOWER_DECK_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 0x23) +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x24) +#define FLAG_HIDDEN_ITEM_ROUTE_104_POTION (FLAG_HIDDEN_ITEMS_START + 0x25) +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x26) +#define FLAG_HIDDEN_ITEM_ROUTE_121_HP_UP (FLAG_HIDDEN_ITEMS_START + 0x27) +#define FLAG_HIDDEN_ITEM_ROUTE_121_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x28) +#define FLAG_HIDDEN_ITEM_ROUTE_123_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x29) +#define FLAG_HIDDEN_ITEM_ROUTE_113_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x2A) +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x2B) +#define FLAG_HIDDEN_ITEM_ROUTE_104_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 0x2C) +#define FLAG_HIDDEN_ITEM_ROUTE_116_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 0x2D) +#define FLAG_HIDDEN_ITEM_ROUTE_106_STARDUST (FLAG_HIDDEN_ITEMS_START + 0x2E) +#define FLAG_HIDDEN_ITEM_ROUTE_106_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x2F) #define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_1 (FLAG_HIDDEN_ITEMS_START + 0x30) #define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_2 (FLAG_HIDDEN_ITEMS_START + 0x31) -#define FLAG_HIDDEN_ITEM_JAGGED_PASS_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x4C) -#define FLAG_HIDDEN_ITEM_JAGGED_PASS_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x4D) -#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x1B) -#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x2B) -#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x4B) -#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x1D) -#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 0x4E) -#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_ZINC (FLAG_HIDDEN_ITEMS_START + 0x4F) -#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x50) -#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_TOP_SACRED_ASH (FLAG_HIDDEN_ITEMS_START + 0x6D) -#define FLAG_HIDDEN_ITEM_PETALBURG_CITY_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x5F) +#define FLAG_HIDDEN_ITEM_ROUTE_109_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x32) +#define FLAG_HIDDEN_ITEM_ROUTE_109_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x33) +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_1 (FLAG_HIDDEN_ITEMS_START + 0x34) +#define FLAG_HIDDEN_ITEM_ROUTE_110_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x35) +#define FLAG_HIDDEN_ITEM_ROUTE_110_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x36) +#define FLAG_HIDDEN_ITEM_ROUTE_110_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x37) +#define FLAG_HIDDEN_ITEM_ROUTE_111_PROTEIN (FLAG_HIDDEN_ITEMS_START + 0x38) +#define FLAG_HIDDEN_ITEM_ROUTE_111_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x39) #define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POTION (FLAG_HIDDEN_ITEMS_START + 0x3A) #define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_1 (FLAG_HIDDEN_ITEMS_START + 0x3B) #define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 0x3C) #define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x3D) -#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 0x52) -#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_MAX_REPEL (FLAG_HIDDEN_ITEMS_START + 0x53) -#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x6A) -#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_ZINC (FLAG_HIDDEN_ITEMS_START + 0x6B) -#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x6C) -#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 0x69) -#define FLAG_HIDDEN_ITEM_SS_TIDAL_LOWER_DECK_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 0x23) -#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x51) -#define FLAG_HIDDEN_ITEM_ROUTE_104_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 0x2C) #define FLAG_HIDDEN_ITEM_ROUTE_104_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x3E) -#define FLAG_HIDDEN_ITEM_ROUTE_104_POTION (FLAG_HIDDEN_ITEMS_START + 0x25) -#define FLAG_HIDDEN_ITEM_ROUTE_104_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 0x55) -#define FLAG_HIDDEN_ITEM_ROUTE_104_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x58) -#define FLAG_HIDDEN_ITEM_ROUTE_105_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x59) -#define FLAG_HIDDEN_ITEM_ROUTE_105_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 0x6F) #define FLAG_HIDDEN_ITEM_ROUTE_106_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x3F) -#define FLAG_HIDDEN_ITEM_ROUTE_106_STARDUST (FLAG_HIDDEN_ITEMS_START + 0x2E) -#define FLAG_HIDDEN_ITEM_ROUTE_106_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x2F) -#define FLAG_HIDDEN_ITEM_ROUTE_108_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x56) -#define FLAG_HIDDEN_ITEM_ROUTE_109_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x32) -#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_1 (FLAG_HIDDEN_ITEMS_START + 0x34) -#define FLAG_HIDDEN_ITEM_ROUTE_109_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x33) #define FLAG_HIDDEN_ITEM_ROUTE_109_ETHER (FLAG_HIDDEN_ITEMS_START + 0x40) -#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x5A) -#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 0x5B) -#define FLAG_HIDDEN_ITEM_ROUTE_110_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x36) -#define FLAG_HIDDEN_ITEM_ROUTE_110_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x35) #define FLAG_HIDDEN_ITEM_ROUTE_110_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x41) -#define FLAG_HIDDEN_ITEM_ROUTE_110_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x37) -#define FLAG_HIDDEN_ITEM_ROUTE_111_STARDUST (FLAG_HIDDEN_ITEMS_START + 0x02) -#define FLAG_HIDDEN_ITEM_ROUTE_111_PROTEIN (FLAG_HIDDEN_ITEMS_START + 0x38) -#define FLAG_HIDDEN_ITEM_ROUTE_111_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x39) -#define FLAG_HIDDEN_ITEM_ROUTE_113_ETHER (FLAG_HIDDEN_ITEMS_START + 0x03) -#define FLAG_HIDDEN_ITEM_ROUTE_113_TM_32 (FLAG_HIDDEN_ITEMS_START + 0x1E) -#define FLAG_HIDDEN_ITEM_ROUTE_113_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x62) -#define FLAG_HIDDEN_ITEM_ROUTE_114_CARBOS (FLAG_HIDDEN_ITEMS_START + 0x04) -#define FLAG_HIDDEN_ITEM_ROUTE_113_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x2A) -#define FLAG_HIDDEN_ITEM_ROUTE_115_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x61) -#define FLAG_HIDDEN_ITEM_ROUTE_116_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 0x2D) -#define FLAG_HIDDEN_ITEM_ROUTE_116_BLACK_GLASSES (FLAG_HIDDEN_ITEMS_START + 0x60) -#define FLAG_HIDDEN_ITEM_ROUTE_117_REPEL (FLAG_HIDDEN_ITEMS_START + 0x48) #define FLAG_HIDDEN_ITEM_ROUTE_118_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x42) #define FLAG_HIDDEN_ITEM_ROUTE_118_IRON (FLAG_HIDDEN_ITEMS_START + 0x43) -#define FLAG_HIDDEN_ITEM_ROUTE_119_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x05) -#define FLAG_HIDDEN_ITEM_ROUTE_119_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x06) #define FLAG_HIDDEN_ITEM_ROUTE_119_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x44) -#define FLAG_HIDDEN_ITEM_ROUTE_119_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 0x57) -#define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_1 (FLAG_HIDDEN_ITEMS_START + 0x47) -#define FLAG_HIDDEN_ITEM_ROUTE_120_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x54) #define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_2 (FLAG_HIDDEN_ITEMS_START + 0x45) #define FLAG_HIDDEN_ITEM_ROUTE_120_ZINC (FLAG_HIDDEN_ITEMS_START + 0x46) -#define FLAG_HIDDEN_ITEM_ROUTE_121_HP_UP (FLAG_HIDDEN_ITEMS_START + 0x27) -#define FLAG_HIDDEN_ITEM_ROUTE_121_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x28) +#define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_1 (FLAG_HIDDEN_ITEMS_START + 0x47) +#define FLAG_HIDDEN_ITEM_ROUTE_117_REPEL (FLAG_HIDDEN_ITEMS_START + 0x48) #define FLAG_HIDDEN_ITEM_ROUTE_121_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x49) -#define FLAG_HIDDEN_ITEM_ROUTE_121_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x64) -#define FLAG_HIDDEN_ITEM_ROUTE_123_SUPER_REPEL (FLAG_HIDDEN_ITEMS_START + 0x07) -#define FLAG_HIDDEN_ITEM_ROUTE_123_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x29) #define FLAG_HIDDEN_ITEM_ROUTE_123_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 0x4A) -#define FLAG_HIDDEN_ITEM_ROUTE_123_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x63) -#define FLAG_HIDDEN_ITEM_ROUTE_123_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x6E) +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x4B) +#define FLAG_HIDDEN_ITEM_JAGGED_PASS_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x4C) +#define FLAG_HIDDEN_ITEM_JAGGED_PASS_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x4D) +#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 0x4E) +#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_ZINC (FLAG_HIDDEN_ITEMS_START + 0x4F) +#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x50) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x51) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 0x52) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_MAX_REPEL (FLAG_HIDDEN_ITEMS_START + 0x53) +#define FLAG_HIDDEN_ITEM_ROUTE_120_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x54) +#define FLAG_HIDDEN_ITEM_ROUTE_104_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 0x55) +#define FLAG_HIDDEN_ITEM_ROUTE_108_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x56) +#define FLAG_HIDDEN_ITEM_ROUTE_119_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 0x57) +#define FLAG_HIDDEN_ITEM_ROUTE_104_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x58) +#define FLAG_HIDDEN_ITEM_ROUTE_105_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x59) +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x5A) +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 0x5B) #define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_1 (FLAG_HIDDEN_ITEMS_START + 0x5C) #define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x5D) #define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 0x5E) +#define FLAG_HIDDEN_ITEM_PETALBURG_CITY_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x5F) +#define FLAG_HIDDEN_ITEM_ROUTE_116_BLACK_GLASSES (FLAG_HIDDEN_ITEMS_START + 0x60) +#define FLAG_HIDDEN_ITEM_ROUTE_115_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x61) +#define FLAG_HIDDEN_ITEM_ROUTE_113_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x62) +#define FLAG_HIDDEN_ITEM_ROUTE_123_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x63) +#define FLAG_HIDDEN_ITEM_ROUTE_121_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x64) +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x65) +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_ZINC (FLAG_HIDDEN_ITEMS_START + 0x66) +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_PROTEIN (FLAG_HIDDEN_ITEMS_START + 0x67) +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_IRON (FLAG_HIDDEN_ITEMS_START + 0x68) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 0x69) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x6A) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_ZINC (FLAG_HIDDEN_ITEMS_START + 0x6B) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x6C) +#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_TOP_SACRED_ASH (FLAG_HIDDEN_ITEMS_START + 0x6D) +#define FLAG_HIDDEN_ITEM_ROUTE_123_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x6E) +#define FLAG_HIDDEN_ITEM_ROUTE_105_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 0x6F) #define FLAG_UNUSED_0x264 0x264 // Unused Flag #define FLAG_UNUSED_0x265 0x265 // Unused Flag @@ -775,7 +775,7 @@ #define FLAG_HIDE_LILYCOVE_FAN_CLUB_INTERVIEWER 0x2DA #define FLAG_HIDE_RUSTBORO_CITY_AQUA_GRUNT 0x2DB #define FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 0x2DC -#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_2 0x2DD +#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_ASLEEP 0x2DD #define FLAG_HIDE_PLAYERS_HOUSE_DAD 0x2DE #define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_SIBLING 0x2DF #define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_SIBLING 0x2E0 @@ -799,7 +799,7 @@ #define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_1 0x2F2 #define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_2 0x2F3 #define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA 0x2F4 -#define FLAG_HIDE_LITTLE_ROOT_TOWN_PLAYERS_BEDROOM_MOM 0x2F5 +#define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_BEDROOM_MOM 0x2F5 #define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_MOM 0x2F6 #define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MOM 0x2F7 #define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM 0x2F8 @@ -815,7 +815,7 @@ #define FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE 0x302 #define FLAG_HIDE_ROUTE_111_VICKY_WINSTRATE 0x303 #define FLAG_HIDE_PETALBURG_GYM_NORMAN 0x304 -#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_2 0x305 +#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA 0x305 #define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_1 0x306 #define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307 #define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_1 0x308 @@ -829,7 +829,7 @@ #define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_MOM 0x310 #define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_MOM 0x311 #define FLAG_HIDE_ROUTE_119_SCOTT 0x312 -#define FLAG_HIDE_LILCOVE_MOTEL_SCOTT 0x313 +#define FLAG_HIDE_LILYCOVE_MOTEL_SCOTT 0x313 #define FLAG_HIDE_MOSSDEEP_CITY_SCOTT 0x314 #define FLAG_HIDE_FANCLUB_OLD_LADY 0x315 #define FLAG_HIDE_FANCLUB_BOY 0x316 @@ -892,16 +892,16 @@ #define FLAG_HIDE_JAGGED_PASS_MAGMA_GUARD 0x34F #define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SUBMARINE_SHADOW 0x350 #define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_PICHU_DOLL 0x351 -#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_2 0x352 +#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_ASLEEP 0x352 #define FLAG_HIDE_ROUTE_119_RIVAL 0x353 #define FLAG_HIDE_LILYCOVE_CITY_AQUA_GRUNTS 0x354 -#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1 0x355 +#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON 0x355 #define FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS 0x356 #define FLAG_HIDE_SKY_PILLAR_WALLACE 0x357 #define FLAG_HIDE_MT_PYRE_SUMMIT_MAXIE 0x358 #define FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS 0x359 #define FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY 0x35A -#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1 0x35B +#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE 0x35B #define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SS_TIDAL 0x35C #define FLAG_HIDE_LILYCOVE_HARBOR_SSTIDAL 0x35D #define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA 0x35E @@ -967,7 +967,7 @@ #define FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE 0x39A #define FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE 0x39B #define FLAG_HIDE_AQUA_HIDEOUT_GRUNTS 0x39C -#define FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS 0x39D +#define FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS 0x39D #define FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA 0x39E #define FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA 0x39F #define FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO 0x3A0 @@ -1402,7 +1402,7 @@ #define FLAG_SYS_TV_HOME (SYSTEM_FLAGS + 0x30) #define FLAG_SYS_TV_WATCH (SYSTEM_FLAGS + 0x31) #define FLAG_SYS_TV_START (SYSTEM_FLAGS + 0x32) -#define FLAG_SYS_POPWORD_INPUT (SYSTEM_FLAGS + 0x33) +#define FLAG_SYS_CHANGED_DEWFORD_TREND (SYSTEM_FLAGS + 0x33) #define FLAG_SYS_MIX_RECORD (SYSTEM_FLAGS + 0x34) #define FLAG_SYS_CLOCK_SET (SYSTEM_FLAGS + 0x35) #define FLAG_SYS_NATIONAL_DEX (SYSTEM_FLAGS + 0x36) diff --git a/include/constants/game_stat.h b/include/constants/game_stat.h index e302f1345c..2acdfd8a3e 100644 --- a/include/constants/game_stat.h +++ b/include/constants/game_stat.h @@ -52,7 +52,7 @@ #define GAME_STAT_RODE_CABLE_CAR 48 #define GAME_STAT_ENTERED_HOT_SPRINGS 49 #define GAME_STAT_NUM_UNION_ROOM_BATTLES 50 -#define GAME_STAT_51 51 +#define GAME_STAT_PLAYED_BERRY_CRUSH 51 #define NUM_USED_GAME_STATS 52 #define NUM_GAME_STATS 64 diff --git a/include/constants/global.h b/include/constants/global.h index 55830ae8b2..9b0c46ce40 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -33,7 +33,6 @@ #define DAYCARE_MON_COUNT 2 #define POKEBLOCKS_COUNT 40 #define OBJECT_EVENTS_COUNT 16 -#define BERRY_TREES_COUNT 128 #define MAIL_COUNT 16 #define SECRET_BASES_COUNT 20 #define TV_SHOWS_COUNT 25 @@ -52,6 +51,8 @@ #define MAX_REMATCH_ENTRIES 100 // only REMATCH_TABLE_ENTRIES (78) are used #define NUM_CONTEST_WINNERS 13 #define UNION_ROOM_KB_ROW_COUNT 10 +#define GIFT_RIBBONS_COUNT 11 +#define SAVED_TRENDS_COUNT 5 #define PYRAMID_BAG_ITEMS_COUNT 10 #define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode. @@ -70,7 +71,7 @@ // party sizes #define PARTY_SIZE 6 -#define MULTI_PARTY_SIZE PARTY_SIZE / 2 +#define MULTI_PARTY_SIZE (PARTY_SIZE / 2) #define FRONTIER_PARTY_SIZE 3 #define FRONTIER_DOUBLES_PARTY_SIZE 4 #define FRONTIER_MULTI_PARTY_SIZE 2 @@ -84,6 +85,7 @@ #define MAIL_WORDS_COUNT 9 #define EASY_CHAT_BATTLE_WORDS_COUNT 6 #define MOVE_NAME_LENGTH 12 +#define NUM_QUESTIONNAIRE_WORDS 4 #define MALE 0 #define FEMALE 1 diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h index 85017cb405..13e8869442 100644 --- a/include/constants/hold_effects.h +++ b/include/constants/hold_effects.h @@ -28,7 +28,7 @@ #define HOLD_EFFECT_MACHO_BRACE 24 #define HOLD_EFFECT_EXP_SHARE 25 #define HOLD_EFFECT_QUICK_CLAW 26 -#define HOLD_EFFECT_HAPPINESS_UP 27 +#define HOLD_EFFECT_FRIENDSHIP_UP 27 #define HOLD_EFFECT_CURE_ATTRACT 28 #define HOLD_EFFECT_CHOICE_BAND 29 #define HOLD_EFFECT_FLINCH 30 @@ -104,37 +104,53 @@ #define HOLD_EFFECT_RESIST_BERRY 98 #define HOLD_EFFECT_POWER_ITEM 99 #define HOLD_EFFECT_RESTORE_PCT_HP 100 +#define HOLD_EFFECT_MICLE_BERRY 101 +#define HOLD_EFFECT_CUSTAP_BERRY 102 +#define HOLD_EFFECT_JABOCA_BERRY 103 +#define HOLD_EFFECT_ROWAP_BERRY 104 +#define HOLD_EFFECT_KEE_BERRY 105 +#define HOLD_EFFECT_MARANGA_BERRY 106 +#define HOLD_EFFECT_PLATE 107 // Gen5 hold effects -#define HOLD_EFFECT_FLOAT_STONE 115 -#define HOLD_EFFECT_EVIOLITE 116 -#define HOLD_EFFECT_ASSAULT_VEST 117 -#define HOLD_EFFECT_DRIVE 118 -#define HOLD_EFFECT_GEMS 119 -#define HOLD_EFFECT_ROCKY_HELMET 120 -#define HOLD_EFFECT_AIR_BALLOON 121 -#define HOLD_EFFECT_RED_CARD 122 -#define HOLD_EFFECT_RING_TARGET 123 -#define HOLD_EFFECT_BINDING_BAND 124 -#define HOLD_EFFECT_EJECT_BUTTON 125 -#define HOLD_EFFECT_ABSORB_BULB 126 -#define HOLD_EFFECT_CELL_BATTERY 127 +#define HOLD_EFFECT_FLOAT_STONE 117 +#define HOLD_EFFECT_EVIOLITE 118 +#define HOLD_EFFECT_ASSAULT_VEST 119 +#define HOLD_EFFECT_DRIVE 120 +#define HOLD_EFFECT_GEMS 121 +#define HOLD_EFFECT_ROCKY_HELMET 122 +#define HOLD_EFFECT_AIR_BALLOON 123 +#define HOLD_EFFECT_RED_CARD 124 +#define HOLD_EFFECT_RING_TARGET 125 +#define HOLD_EFFECT_BINDING_BAND 126 +#define HOLD_EFFECT_EJECT_BUTTON 127 +#define HOLD_EFFECT_ABSORB_BULB 128 +#define HOLD_EFFECT_CELL_BATTERY 129 // Gen6 hold effects -#define HOLD_EFFECT_FAIRY_POWER 129 -#define HOLD_EFFECT_MEGA_STONE 130 -#define HOLD_EFFECT_SAFETY_GOOGLES 131 -#define HOLD_EFFECT_LUMINOUS_MOSS 132 -#define HOLD_EFFECT_SNOWBALL 133 -#define HOLD_EFFECT_WEAKNESS_POLICY 134 +#define HOLD_EFFECT_FAIRY_POWER 139 +#define HOLD_EFFECT_MEGA_STONE 140 +#define HOLD_EFFECT_SAFETY_GOOGLES 141 +#define HOLD_EFFECT_LUMINOUS_MOSS 142 +#define HOLD_EFFECT_SNOWBALL 143 +#define HOLD_EFFECT_WEAKNESS_POLICY 144 +#define HOLD_EFFECT_PRIMAL_ORB 145 // Gen7 hold effects -#define HOLD_EFFECT_PROTECTIVE_PADS 149 -#define HOLD_EFFECT_TERRAIN_EXTENDER 150 -#define HOLD_EFFECT_SEEDS 151 -#define HOLD_EFFECT_ADRENALINE_ORB 152 -#define HOLD_EFFECT_MEMORY 153 -#define HOLD_EFFECT_PLATE 154 +#define HOLD_EFFECT_PROTECTIVE_PADS 154 +#define HOLD_EFFECT_TERRAIN_EXTENDER 155 +#define HOLD_EFFECT_SEEDS 156 +#define HOLD_EFFECT_ADRENALINE_ORB 157 +#define HOLD_EFFECT_MEMORY 158 +#define HOLD_EFFECT_Z_CRYSTAL 159 + +// Gen8 hold effects +#define HOLD_EFFECT_UTILITY_UMBRELLA 169 +#define HOLD_EFFECT_EJECT_PACK 170 +#define HOLD_EFFECT_ROOM_SERVICE 171 +#define HOLD_EFFECT_BLUNDER_POLICY 172 +#define HOLD_EFFECT_HEAVY_DUTY_BOOTS 173 +#define HOLD_EFFECT_THROAT_SPRAY 174 #define HOLD_EFFECT_CHOICE(holdEffect)((holdEffect == HOLD_EFFECT_CHOICE_BAND || holdEffect == HOLD_EFFECT_CHOICE_SCARF || holdEffect == HOLD_EFFECT_CHOICE_SPECS)) diff --git a/include/constants/item.h b/include/constants/item.h index 3277f23790..a224291faf 100644 --- a/include/constants/item.h +++ b/include/constants/item.h @@ -16,9 +16,4 @@ #define KEYITEMS_POCKET 4 #define POCKETS_COUNT 5 -// The TM/HM pocket is the largest pocket, so the maximum amount of items -// in a pocket is its count + 1 for the cancel option -#define MAX_POCKET_ITEMS (BAG_TMHM_COUNT + 1) - - #endif // GUARD_ITEM_CONSTANTS_H diff --git a/include/constants/item_effects.h b/include/constants/item_effects.h index e68914c7b1..9d4eac9932 100644 --- a/include/constants/item_effects.h +++ b/include/constants/item_effects.h @@ -43,7 +43,7 @@ #define ITEM4_EV_HP 0x1 #define ITEM4_EV_ATK 0x2 #define ITEM4_HEAL_HP 0x4 -#define ITEM4_HEAL_PP_ALL 0x8 +#define ITEM4_HEAL_PP 0x8 #define ITEM4_HEAL_PP_ONE 0x10 #define ITEM4_PP_UP 0x20 #define ITEM4_REVIVE 0x40 @@ -62,11 +62,19 @@ #define ITEM5_FRIENDSHIP_ALL (ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID | ITEM5_FRIENDSHIP_HIGH) // fields 6 and onwards are item-specific arguments +#define ITEM_EFFECT_ARG_START 6 // Special HP recovery amounts for ITEM4_HEAL_HP -#define ITEM6_HEAL_FULL ((u8) -1) -#define ITEM6_HEAL_HALF ((u8) -2) -#define ITEM6_HEAL_LVL_UP ((u8) -3) +#define ITEM6_HEAL_HP_FULL ((u8) -1) +#define ITEM6_HEAL_HP_HALF ((u8) -2) +#define ITEM6_HEAL_HP_LVL_UP ((u8) -3) + +// Special PP recovery amounts for ITEM4_HEAL_PP +#define ITEM6_HEAL_PP_FULL 0x7F + +// Amount of EV modified by ITEM4_EV_HP, ITEM4_EV_ATK, ITEM5_EV_DEF, ITEM5_EV_SPEED, ITEM5_EV_SPDEF and ITEM5_EV_SPATK +#define ITEM6_ADD_EV 10 +#define ITEM6_SUBTRACT_EV -10 // Used for GetItemEffectType. #define ITEM_EFFECT_X_ITEM 0 diff --git a/include/constants/items.h b/include/constants/items.h index 95c6aacfea..c596dd3b8d 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -17,7 +17,11 @@ #define ITEM_LUXURY_BALL 11 #define ITEM_PREMIER_BALL 12 -#define LAST_BALL ITEM_PREMIER_BALL +// Note: If moving ball IDs around, updating FIRST_BALL/LAST_BALL is not sufficient +// Several places expect the ball IDs to be first and contiguous (e.g. gBattlescriptsForBallThrow and MON_DATA_POKEBALL) +// If adding new balls, it's easiest to insert them after the last ball and increment the below IDs (and removing ITEM_034 for example) +#define FIRST_BALL ITEM_MASTER_BALL +#define LAST_BALL ITEM_PREMIER_BALL // Pokemon Items #define ITEM_POTION 13 @@ -145,6 +149,8 @@ #define ITEM_FAB_MAIL 131 #define ITEM_RETRO_MAIL 132 +#define FIRST_MAIL_INDEX ITEM_ORANGE_MAIL + // Berries #define ITEM_CHERI_BERRY 133 #define ITEM_CHESTO_BERRY 134 @@ -189,9 +195,15 @@ #define ITEM_LANSAT_BERRY 173 #define ITEM_STARF_BERRY 174 #define ITEM_ENIGMA_BERRY 175 -#define ITEM_0B0 176 -#define ITEM_0B1 177 -#define ITEM_0B2 178 + +#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY +#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY + +#define ITEM_UNUSED_BERRY_1 176 +#define ITEM_UNUSED_BERRY_2 177 +#define ITEM_UNUSED_BERRY_3 178 + +#define MAX_BERRY_INDEX ITEM_UNUSED_BERRY_3 // Battle Held items #define ITEM_BRIGHT_POWDER 179 @@ -467,9 +479,6 @@ #define ITEMS_COUNT 377 #define ITEM_FIELD_ARROW ITEMS_COUNT -#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY -#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY - // Range of berries given out by various NPCS #define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY #define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY @@ -488,7 +497,9 @@ #define NUM_ROUTE_114_MAN_BERRIES (LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1) #define NUM_ROUTE_114_MAN_BERRIES_SKIPPED (FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX) -#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1)) +#define ITEM_TO_BERRY(itemId)(((itemId) - FIRST_BERRY_INDEX) + 1) +#define ITEM_TO_MAIL(itemId)((itemId) - FIRST_MAIL_INDEX) +#define MAIL_NONE 0xFF #define NUM_TECHNICAL_MACHINES 50 #define NUM_HIDDEN_MACHINES 8 @@ -506,7 +517,22 @@ #define GOOD_ROD 1 #define SUPER_ROD 2 +// Secondary IDs for bikes +#define MACH_BIKE 0 +#define ACRO_BIKE 1 + +// Item type IDs (used to determine the exit callback) +#define ITEM_USE_MAIL 0 +#define ITEM_USE_PARTY_MENU 1 +#define ITEM_USE_FIELD 2 +#define ITEM_USE_PBLOCK_CASE 3 +#define ITEM_USE_BAG_MENU 4 // No exit callback, stays in bag menu + +// Item battle usage IDs (only checked to see if nonzero) +#define ITEM_B_USE_MEDICINE 1 +#define ITEM_B_USE_OTHER 2 + // Check if the item is one that can be used on a Pokemon. -#define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) +#define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= MAX_BERRY_INDEX) #endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/constants/layouts.h b/include/constants/layouts.h index 9d5e877b05..db92c95942 100755 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -79,7 +79,7 @@ #define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY 72 #define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL 73 #define LAYOUT_LILYCOVE_CITY_HOUSE2 74 -#define LAYOUT_UNKNOWN_08428450 75 +#define LAYOUT_UNUSED_CONTEST_ROOM1 75 #define LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE 76 #define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 77 #define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 78 @@ -87,8 +87,8 @@ #define LAYOUT_HOUSE_WITH_BED 80 #define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F 81 #define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F 82 -#define LAYOUT_UNKNOWN_084294C4 83 -#define LAYOUT_UNKNOWN_084294E8 84 +#define LAYOUT_UNUSED_CONTEST_ROOM2 83 +#define LAYOUT_UNUSED_CONTEST_ROOM3 84 #define LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB 85 #define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 86 #define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 87 @@ -174,20 +174,20 @@ #define LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 167 #define LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 168 #define LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 169 -#define LAYOUT_UNKNOWN_0843E6C0 170 -#define LAYOUT_UNKNOWN_0843E6E4 171 -#define LAYOUT_UNKNOWN_0843E708 172 -#define LAYOUT_UNKNOWN_0843E72C 173 -#define LAYOUT_UNKNOWN_0843E750 174 -#define LAYOUT_UNKNOWN_0843E774 175 -#define LAYOUT_UNKNOWN_0843E798 176 -#define LAYOUT_UNKNOWN_0843E7BC 177 -#define LAYOUT_UNKNOWN_0843E7E0 178 -#define LAYOUT_UNKNOWN_0843E804 179 -#define LAYOUT_UNKNOWN_0843E828 180 -#define LAYOUT_UNKNOWN_0843E84C 181 -#define LAYOUT_UNKNOWN_0843E870 182 -#define LAYOUT_UNKNOWN_0843E894 183 +#define LAYOUT_UNUSED_CAVE1 170 +#define LAYOUT_UNUSED_CAVE2 171 +#define LAYOUT_UNUSED_CAVE3 172 +#define LAYOUT_UNUSED_CAVE4 173 +#define LAYOUT_UNUSED_CAVE5 174 +#define LAYOUT_UNUSED_CAVE6 175 +#define LAYOUT_UNUSED_CAVE7 176 +#define LAYOUT_UNUSED_CAVE8 177 +#define LAYOUT_UNUSED_CAVE9 178 +#define LAYOUT_UNUSED_CAVE10 179 +#define LAYOUT_UNUSED_CAVE11 180 +#define LAYOUT_UNUSED_CAVE12 181 +#define LAYOUT_UNUSED_CAVE13 182 +#define LAYOUT_UNUSED_CAVE14 183 #define LAYOUT_NEW_MAUVILLE_ENTRANCE 184 #define LAYOUT_NEW_MAUVILLE_INSIDE 185 #define LAYOUT_ABANDONED_SHIP_DECK 186 @@ -230,12 +230,12 @@ #define LAYOUT_RECORD_CORNER 223 #define LAYOUT_BATTLE_COLOSSEUM_4P 224 #define LAYOUT_CONTEST_HALL 225 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29 226 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30 227 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31 228 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32 229 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33 230 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34 231 +#define LAYOUT_UNUSED_CONTEST_HALL1 226 +#define LAYOUT_UNUSED_CONTEST_HALL2 227 +#define LAYOUT_UNUSED_CONTEST_HALL3 228 +#define LAYOUT_UNUSED_CONTEST_HALL4 229 +#define LAYOUT_UNUSED_CONTEST_HALL5 230 +#define LAYOUT_UNUSED_CONTEST_HALL6 231 #define LAYOUT_CONTEST_HALL_BEAUTY 232 #define LAYOUT_CONTEST_HALL_TOUGH 233 #define LAYOUT_CONTEST_HALL_COOL 234 @@ -246,7 +246,7 @@ #define LAYOUT_SAFARI_ZONE_NORTH 239 #define LAYOUT_SAFARI_ZONE_SOUTHWEST 240 #define LAYOUT_SAFARI_ZONE_SOUTH 241 -#define LAYOUT_UNKNOWN_08447028 242 +#define LAYOUT_UNUSED_OUTDOOR_AREA 242 #define LAYOUT_ROUTE109_SEASHORE_HOUSE 243 #define LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE 244 #define LAYOUT_ROUTE110_TRICK_HOUSE_END 245 @@ -363,7 +363,7 @@ #define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356 #define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS 358 -#define LAYOUT_UNKNOWN_084693AC 359 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED 359 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR 361 #define LAYOUT_BATTLE_PYRAMID_SQUARE01 362 diff --git a/include/constants/lilycove_lady.h b/include/constants/lilycove_lady.h index 01f60ccf44..11b9b31e93 100644 --- a/include/constants/lilycove_lady.h +++ b/include/constants/lilycove_lady.h @@ -21,6 +21,12 @@ #define QUIZ_AUTHOR_NAME_PLAYER 1 #define QUIZ_AUTHOR_NAME_OTHER_PLAYER 2 -#define QUIZ_QUESTION_LEN 9 +#define QUIZ_QUESTION_LEN 9 -#endif +// Constants for how many good Pokéblocks the Contest Lady was given +// This determines how her performance is described when her TV show comes on +#define CONTEST_LADY_NORMAL 0 +#define CONTEST_LADY_GOOD 1 +#define CONTEST_LADY_BAD 2 + +#endif // GUARD_LILYCOVE_LADY_CONSTANTS_H diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index 69355635b3..eaf40a525d 100755 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -5,7 +5,7 @@ // DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json // -// Map Group 0 +// gMapGroup_TownsAndRoutes #define MAP_PETALBURG_CITY (0 | (0 << 8)) #define MAP_SLATEPORT_CITY (1 | (0 << 8)) #define MAP_MAUVILLE_CITY (2 | (0 << 8)) @@ -64,21 +64,21 @@ #define MAP_UNDERWATER_ROUTE105 (55 | (0 << 8)) #define MAP_UNDERWATER_ROUTE125 (56 | (0 << 8)) -// Map Group 1 +// gMapGroup_IndoorLittleroot #define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8)) #define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8)) #define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8)) #define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8)) #define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) -// Map Group 2 +// gMapGroup_IndoorOldale #define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8)) #define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8)) #define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8)) #define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8)) #define MAP_OLDALE_TOWN_MART (4 | (2 << 8)) -// Map Group 3 +// gMapGroup_IndoorDewford #define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8)) #define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8)) #define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) @@ -86,7 +86,7 @@ #define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8)) #define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8)) -// Map Group 4 +// gMapGroup_IndoorLavaridge #define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8)) #define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8)) #define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8)) @@ -95,7 +95,7 @@ #define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8)) #define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) -// Map Group 5 +// gMapGroup_IndoorFallarbor #define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) #define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8)) #define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8)) @@ -105,7 +105,7 @@ #define MAP_FALLARBOR_TOWN_COZMOS_HOUSE (6 | (5 << 8)) #define MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE (7 | (5 << 8)) -// Map Group 6 +// gMapGroup_IndoorVerdanturf #define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8)) #define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8)) #define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) @@ -116,7 +116,7 @@ #define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8)) #define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8)) -// Map Group 7 +// gMapGroup_IndoorPacifidlog #define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8)) #define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8)) #define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8)) @@ -125,7 +125,7 @@ #define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8)) #define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8)) -// Map Group 8 +// gMapGroup_IndoorPetalburg #define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8)) #define MAP_PETALBURG_CITY_GYM (1 | (8 << 8)) #define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8)) @@ -134,7 +134,7 @@ #define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8)) #define MAP_PETALBURG_CITY_MART (6 | (8 << 8)) -// Map Group 9 +// gMapGroup_IndoorSlateport #define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) #define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) #define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8)) @@ -150,7 +150,7 @@ #define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8)) #define MAP_SLATEPORT_CITY_MART (13 | (9 << 8)) -// Map Group 10 +// gMapGroup_IndoorMauville #define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8)) #define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8)) #define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8)) @@ -160,7 +160,7 @@ #define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8)) #define MAP_MAUVILLE_CITY_MART (7 | (10 << 8)) -// Map Group 11 +// gMapGroup_IndoorRustboro #define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8)) #define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8)) #define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8)) @@ -179,7 +179,7 @@ #define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8)) #define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8)) -// Map Group 12 +// gMapGroup_IndoorFortree #define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8)) #define MAP_FORTREE_CITY_GYM (1 | (12 << 8)) #define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) @@ -191,7 +191,7 @@ #define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8)) #define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8)) -// Map Group 13 +// gMapGroup_IndoorLilycove #define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8)) #define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8)) #define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8)) @@ -216,7 +216,7 @@ #define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8)) #define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) -// Map Group 14 +// gMapGroup_IndoorMossdeep #define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8)) #define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8)) #define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8)) @@ -231,7 +231,7 @@ #define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8)) #define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8)) -// Map Group 15 +// gMapGroup_IndoorSootopolis #define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8)) #define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8)) #define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8)) @@ -248,7 +248,7 @@ #define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F (13 | (15 << 8)) #define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F (14 | (15 << 8)) -// Map Group 16 +// gMapGroup_IndoorEverGrande #define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8)) #define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8)) #define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8)) @@ -265,33 +265,33 @@ #define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8)) #define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) -// Map Group 17 +// gMapGroup_IndoorRoute104 #define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) #define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) -// Map Group 18 +// gMapGroup_IndoorRoute111 #define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) #define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) -// Map Group 19 +// gMapGroup_IndoorRoute112 #define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) #define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) -// Map Group 20 +// gMapGroup_IndoorRoute114 #define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8)) #define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8)) #define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8)) -// Map Group 21 +// gMapGroup_IndoorRoute116 #define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) -// Map Group 22 +// gMapGroup_IndoorRoute117 #define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) -// Map Group 23 +// gMapGroup_IndoorRoute121 #define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) -// Map Group 24 +// gMapGroup_Dungeons #define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8)) #define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8)) #define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8)) @@ -401,70 +401,70 @@ #define MAP_ALTERING_CAVE (106 | (24 << 8)) #define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) -// Map Group 25 -#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) -#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) -#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) -#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) -#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) -#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8)) -#define MAP_TRADE_CENTER (25 | (25 << 8)) -#define MAP_RECORD_CORNER (26 | (25 << 8)) -#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8)) -#define MAP_CONTEST_HALL (28 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29 (29 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30 (30 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31 (31 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32 (32 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33 (33 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34 (34 | (25 << 8)) -#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8)) -#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8)) -#define MAP_CONTEST_HALL_COOL (37 | (25 << 8)) -#define MAP_CONTEST_HALL_SMART (38 | (25 << 8)) -#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8)) -#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) -#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) -#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) -#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) -#define MAP_UNION_ROOM (60 | (25 << 8)) +// gMapGroup_IndoorDynamic +#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) +#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) +#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) +#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) +#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) +#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8)) +#define MAP_TRADE_CENTER (25 | (25 << 8)) +#define MAP_RECORD_CORNER (26 | (25 << 8)) +#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8)) +#define MAP_CONTEST_HALL (28 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL1 (29 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL2 (30 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL3 (31 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL4 (32 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL5 (33 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL6 (34 | (25 << 8)) +#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8)) +#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8)) +#define MAP_CONTEST_HALL_COOL (37 | (25 << 8)) +#define MAP_CONTEST_HALL_SMART (38 | (25 << 8)) +#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8)) +#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) +#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) +#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) +#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) +#define MAP_UNION_ROOM (60 | (25 << 8)) -// Map Group 26 +// gMapGroup_SpecialArea #define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) #define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8)) #define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) @@ -555,14 +555,14 @@ #define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8)) #define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8)) -// Map Group 27 +// gMapGroup_IndoorRoute104Prototype #define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) #define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) -// Map Group 28 +// gMapGroup_IndoorRoute109 #define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) -// Map Group 29 +// gMapGroup_IndoorRoute110 #define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8)) #define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8)) #define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8)) @@ -577,18 +577,18 @@ #define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (11 | (29 << 8)) #define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (12 | (29 << 8)) -// Map Group 30 +// gMapGroup_IndoorRoute113 #define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) -// Map Group 31 +// gMapGroup_IndoorRoute123 #define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) -// Map Group 32 +// gMapGroup_IndoorRoute119 #define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8)) #define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8)) #define MAP_ROUTE119_HOUSE (2 | (32 << 8)) -// Map Group 33 +// gMapGroup_IndoorRoute124 #define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) #define MAP_GROUPS_COUNT 34 diff --git a/include/constants/metatile_behaviors.h b/include/constants/metatile_behaviors.h index 94cb0ffcaa..1d1557256d 100755 --- a/include/constants/metatile_behaviors.h +++ b/include/constants/metatile_behaviors.h @@ -1,5 +1,5 @@ -#ifndef GUARD_METATILE_BEHAVIORS -#define GUARD_METATILE_BEHAVIORS +#ifndef GUARD_METATILE_BEHAVIORS_H +#define GUARD_METATILE_BEHAVIORS_H #define MB_NORMAL 0x00 #define MB_SECRET_BASE_WALL 0x01 @@ -241,5 +241,6 @@ #define MB_UNUSED_ED 0xED #define MB_UNUSED_EE 0xEE #define MB_UNUSED_EF 0xEF +#define MB_INVALID 0xFF -#endif // GUARD_METATILE_BEHAVIORS +#endif // GUARD_METATILE_BEHAVIORS_H diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index f7405f46a2..b5ef690469 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -42,6 +42,8 @@ #define METATILE_General_BlueCaveOpen 0x1B1 // gTileset_Building +#define METATILE_Building_TV_Off 0x002 +#define METATILE_Building_TV_On 0x003 #define METATILE_Building_PC_Off 0x004 #define METATILE_Building_PC_On 0x005 @@ -165,6 +167,8 @@ // gTileset_Cave #define METATILE_Cave_EntranceCover 0x229 +#define METATILE_Cave_CrackedFloor_Hole 0x206 +#define METATILE_Cave_CrackedFloor 0x22F #define METATILE_Cave_SealedChamberEntrance_TopLeft 0x22A #define METATILE_Cave_SealedChamberEntrance_TopMid 0x22B #define METATILE_Cave_SealedChamberEntrance_TopRight 0x22C @@ -191,6 +195,7 @@ #define METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1 0x261 #define METATILE_Pacifidlog_SubmergedLogs_Vertical0 0x25A #define METATILE_Pacifidlog_SubmergedLogs_Vertical1 0x262 +#define METATILE_Pacifidlog_SkyPillar_CrackedFloor_Hole 0x237 #define METATILE_Pacifidlog_SkyPillar_DoorOpen_Top 0x2AA #define METATILE_Pacifidlog_SkyPillar_DoorOpen_Bottom 0x2B2 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 6031506633..7428243352 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -165,15 +165,15 @@ #define MON_DATA_VICTORY_RIBBON 69 #define MON_DATA_ARTIST_RIBBON 70 #define MON_DATA_EFFORT_RIBBON 71 -#define MON_DATA_GIFT_RIBBON_1 72 -#define MON_DATA_GIFT_RIBBON_2 73 -#define MON_DATA_GIFT_RIBBON_3 74 -#define MON_DATA_GIFT_RIBBON_4 75 -#define MON_DATA_GIFT_RIBBON_5 76 -#define MON_DATA_GIFT_RIBBON_6 77 -#define MON_DATA_GIFT_RIBBON_7 78 -#define MON_DATA_FATEFUL_ENCOUNTER 79 -#define MON_DATA_OBEDIENCE 80 +#define MON_DATA_MARINE_RIBBON 72 +#define MON_DATA_LAND_RIBBON 73 +#define MON_DATA_SKY_RIBBON 74 +#define MON_DATA_COUNTRY_RIBBON 75 +#define MON_DATA_NATIONAL_RIBBON 76 +#define MON_DATA_EARTH_RIBBON 77 +#define MON_DATA_WORLD_RIBBON 78 +#define MON_DATA_UNUSED_RIBBONS 79 +#define MON_DATA_EVENT_LEGAL 80 #define MON_DATA_KNOWN_MOVES 81 #define MON_DATA_RIBBON_COUNT 82 #define MON_DATA_RIBBONS 83 @@ -183,6 +183,55 @@ #define MON_DATA_SPATK2 87 #define MON_DATA_SPDEF2 88 +// Ribbon IDs used by TV and Pokénav +#define CHAMPION_RIBBON 0 +#define COOL_RIBBON_NORMAL 1 +#define COOL_RIBBON_SUPER 2 +#define COOL_RIBBON_HYPER 3 +#define COOL_RIBBON_MASTER 4 +#define BEAUTY_RIBBON_NORMAL 5 +#define BEAUTY_RIBBON_SUPER 6 +#define BEAUTY_RIBBON_HYPER 7 +#define BEAUTY_RIBBON_MASTER 8 +#define CUTE_RIBBON_NORMAL 9 +#define CUTE_RIBBON_SUPER 10 +#define CUTE_RIBBON_HYPER 11 +#define CUTE_RIBBON_MASTER 12 +#define SMART_RIBBON_NORMAL 13 +#define SMART_RIBBON_SUPER 14 +#define SMART_RIBBON_HYPER 15 +#define SMART_RIBBON_MASTER 16 +#define TOUGH_RIBBON_NORMAL 17 +#define TOUGH_RIBBON_SUPER 18 +#define TOUGH_RIBBON_HYPER 19 +#define TOUGH_RIBBON_MASTER 20 +#define WINNING_RIBBON 21 +#define VICTORY_RIBBON 22 +#define ARTIST_RIBBON 23 +#define EFFORT_RIBBON 24 +#define MARINE_RIBBON 25 +#define LAND_RIBBON 26 +#define SKY_RIBBON 27 +#define COUNTRY_RIBBON 28 +#define NATIONAL_RIBBON 29 +#define EARTH_RIBBON 30 +#define WORLD_RIBBON 31 + +#define FIRST_GIFT_RIBBON MARINE_RIBBON +#define LAST_GIFT_RIBBON WORLD_RIBBON +#define NUM_GIFT_RIBBONS (1 + LAST_GIFT_RIBBON - FIRST_GIFT_RIBBON) + +// The above gift ribbons (Marine - World) are +// special distribution ribbons that correspond to +// 1 bit each in the Pokémon struct. Gen 4 hard-codes +// each of these to the given name. In Gen 3 they're +// used to get an index into giftRibbons in the save block, +// which can have a value 0-64 (0 is 'no ribbon') that +// corresponds to one of the special ribbons listed +// in gGiftRibbonDescriptionPointers. Most of these were +// never distributed +#define MAX_GIFT_RIBBON 64 + #define MIN_LEVEL 1 #define MAX_LEVEL 100 @@ -224,21 +273,13 @@ #define MAX_FRIENDSHIP 0xFF -#define STATUS_PRIMARY_NONE 0 -#define STATUS_PRIMARY_POISON 1 -#define STATUS_PRIMARY_PARALYSIS 2 -#define STATUS_PRIMARY_SLEEP 3 -#define STATUS_PRIMARY_FREEZE 4 -#define STATUS_PRIMARY_BURN 5 -#define STATUS_PRIMARY_POKERUS 6 -#define STATUS_PRIMARY_FAINTED 7 - +#define MAX_PER_STAT_IVS 31 +#define MAX_IV_MASK 31 +#define USE_RANDOM_IVS (MAX_PER_STAT_IVS + 1) #define MAX_PER_STAT_EVS 255 #define MAX_TOTAL_EVS 510 #define EV_ITEM_RAISE_LIMIT 100 -#define UNOWN_FORM_COUNT 28 - // Battle move flags #define FLAG_MAKES_CONTACT (1 << 0) #define FLAG_PROTECT_AFFECTED (1 << 1) @@ -262,8 +303,10 @@ #define FLAG_POWDER (1 << 19) #define FLAG_TARGET_ABILITY_IGNORED (1 << 20) #define FLAG_DANCE (1 << 21) -#define FLAG_DMG_IN_AIR (1 << 22) // X2 dmg on air, always hits target on air -#define FLAG_HIT_IN_AIR (1 << 23) // dmg is normal, always hits target on air +#define FLAG_DMG_2X_IN_AIR (1 << 22) // If target is in the air, can hit and deal double damage. +#define FLAG_DMG_IN_AIR (1 << 23) // If target is in the air, can hit. +#define FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING (1 << 24) // Makes a Ground type move do 1x damage to flying and levitating targets +#define FLAG_THAW_USER (1 << 25) // Split defines. #define SPLIT_PHYSICAL 0x0 @@ -313,7 +356,17 @@ #define EVOS_PER_MON 5 +// Evolution 'modes,' for GetEvolutionTargetSpecies +#define EVO_MODE_NORMAL 0 +#define EVO_MODE_TRADE 1 +#define EVO_MODE_ITEM_USE 2 +#define EVO_MODE_ITEM_CHECK 3 // If an Everstone is being held, still want to show that the stone *could* be used on that Pokémon to evolve + #define NUM_MALE_LINK_FACILITY_CLASSES 8 #define NUM_FEMALE_LINK_FACILITY_CLASSES 8 +#define MON_PIC_SIZE (64 * 64 / 2) + +#define NUM_ABILITY_SLOTS 2 + #endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/constants/rgb.h b/include/constants/rgb.h index 1896250d20..be3049d3c7 100644 --- a/include/constants/rgb.h +++ b/include/constants/rgb.h @@ -5,18 +5,21 @@ #define GET_G(color) (((color) >> 5) & 0x1F) #define GET_B(color) (((color) >> 10) & 0x1F) -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) +#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) #define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) #define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) -#define RGB_BLACK RGB(0, 0, 0) -#define RGB_WHITE RGB(31, 31, 31) -#define RGB_RED RGB(31, 0, 0) -#define RGB_GREEN RGB(0, 31, 0) -#define RGB_BLUE RGB(0, 0, 31) -#define RGB_YELLOW RGB(31, 31, 0) -#define RGB_MAGENTA RGB(31, 0, 31) -#define RGB_CYAN RGB(0, 31, 31) -#define RGB_WHITEALPHA (RGB_WHITE | 0x8000) +#define RGB_ALPHA (1 << 15) +#define IS_ALPHA(color) ((color) & RGB_ALPHA) + +#define RGB_BLACK RGB(0, 0, 0) +#define RGB_WHITE RGB(31, 31, 31) +#define RGB_RED RGB(31, 0, 0) +#define RGB_GREEN RGB(0, 31, 0) +#define RGB_BLUE RGB(0, 0, 31) +#define RGB_YELLOW RGB(31, 31, 0) +#define RGB_MAGENTA RGB(31, 0, 31) +#define RGB_CYAN RGB(0, 31, 31) +#define RGB_WHITEALPHA (RGB_WHITE | RGB_ALPHA) #endif // GUARD_RGB_H diff --git a/include/constants/secret_bases.h b/include/constants/secret_bases.h index 2f405317d9..e9188fbf5a 100755 --- a/include/constants/secret_bases.h +++ b/include/constants/secret_bases.h @@ -12,106 +12,160 @@ // The secret base's map is determined by (id / 10). The ones // digit is used to differentiate secret bases using the same map. // Therefore, each secret base map can be used by up to 10 different -// secret bases in the game. These ids are 1-based, but there is no -// apparent reason for that. +// secret bases in the game. + +// * 4 is for each byte of data per secret base group in sSecretBaseEntrancePositions +// They are the map number, the entrance warp id, and the x/y position in front of the computer +#define SECRET_BASE_GROUP(idx) ((idx) * 4) +#define SECRET_BASE_ID_TO_GROUP(baseId) SECRET_BASE_GROUP((baseId) / 10) #define SECRET_BASE_RED_CAVE1_1 1 #define SECRET_BASE_RED_CAVE1_2 2 #define SECRET_BASE_RED_CAVE1_3 3 +#define SECRET_BASE_RED_CAVE1 SECRET_BASE_GROUP(0) + #define SECRET_BASE_RED_CAVE2_1 11 #define SECRET_BASE_RED_CAVE2_2 12 #define SECRET_BASE_RED_CAVE2_3 13 +#define SECRET_BASE_RED_CAVE2 SECRET_BASE_GROUP(1) + #define SECRET_BASE_RED_CAVE3_1 21 #define SECRET_BASE_RED_CAVE3_2 22 #define SECRET_BASE_RED_CAVE3_3 23 +#define SECRET_BASE_RED_CAVE3 SECRET_BASE_GROUP(2) + #define SECRET_BASE_RED_CAVE4_1 31 #define SECRET_BASE_RED_CAVE4_2 32 #define SECRET_BASE_RED_CAVE4_3 33 +#define SECRET_BASE_RED_CAVE4 SECRET_BASE_GROUP(3) + #define SECRET_BASE_BROWN_CAVE1_1 41 #define SECRET_BASE_BROWN_CAVE1_2 42 #define SECRET_BASE_BROWN_CAVE1_3 43 +#define SECRET_BASE_BROWN_CAVE1 SECRET_BASE_GROUP(4) + #define SECRET_BASE_BROWN_CAVE2_1 51 #define SECRET_BASE_BROWN_CAVE2_2 52 #define SECRET_BASE_BROWN_CAVE2_3 53 +#define SECRET_BASE_BROWN_CAVE2 SECRET_BASE_GROUP(5) + #define SECRET_BASE_BROWN_CAVE3_1 61 #define SECRET_BASE_BROWN_CAVE3_2 62 #define SECRET_BASE_BROWN_CAVE3_3 63 +#define SECRET_BASE_BROWN_CAVE3 SECRET_BASE_GROUP(6) + #define SECRET_BASE_BROWN_CAVE4_1 71 #define SECRET_BASE_BROWN_CAVE4_2 72 #define SECRET_BASE_BROWN_CAVE4_3 73 +#define SECRET_BASE_BROWN_CAVE4 SECRET_BASE_GROUP(7) + #define SECRET_BASE_BLUE_CAVE1_1 81 #define SECRET_BASE_BLUE_CAVE1_2 82 #define SECRET_BASE_BLUE_CAVE1_3 83 +#define SECRET_BASE_BLUE_CAVE1 SECRET_BASE_GROUP(8) + #define SECRET_BASE_BLUE_CAVE2_1 91 #define SECRET_BASE_BLUE_CAVE2_2 92 #define SECRET_BASE_BLUE_CAVE2_3 93 +#define SECRET_BASE_BLUE_CAVE2 SECRET_BASE_GROUP(9) + #define SECRET_BASE_BLUE_CAVE3_1 101 #define SECRET_BASE_BLUE_CAVE3_2 102 #define SECRET_BASE_BLUE_CAVE3_3 103 +#define SECRET_BASE_BLUE_CAVE3 SECRET_BASE_GROUP(10) + #define SECRET_BASE_BLUE_CAVE4_1 111 #define SECRET_BASE_BLUE_CAVE4_2 112 #define SECRET_BASE_BLUE_CAVE4_3 113 +#define SECRET_BASE_BLUE_CAVE4 SECRET_BASE_GROUP(11) + #define SECRET_BASE_YELLOW_CAVE1_1 121 #define SECRET_BASE_YELLOW_CAVE1_2 122 #define SECRET_BASE_YELLOW_CAVE1_3 123 +#define SECRET_BASE_YELLOW_CAVE1 SECRET_BASE_GROUP(12) + #define SECRET_BASE_YELLOW_CAVE2_1 131 #define SECRET_BASE_YELLOW_CAVE2_2 132 #define SECRET_BASE_YELLOW_CAVE2_3 133 +#define SECRET_BASE_YELLOW_CAVE2 SECRET_BASE_GROUP(13) + #define SECRET_BASE_YELLOW_CAVE3_1 141 #define SECRET_BASE_YELLOW_CAVE3_2 142 #define SECRET_BASE_YELLOW_CAVE3_3 143 +#define SECRET_BASE_YELLOW_CAVE3 SECRET_BASE_GROUP(14) + #define SECRET_BASE_YELLOW_CAVE4_1 151 #define SECRET_BASE_YELLOW_CAVE4_2 152 #define SECRET_BASE_YELLOW_CAVE4_3 153 +#define SECRET_BASE_YELLOW_CAVE4 SECRET_BASE_GROUP(15) + #define SECRET_BASE_TREE1_1 161 #define SECRET_BASE_TREE1_2 162 #define SECRET_BASE_TREE1_3 163 #define SECRET_BASE_TREE1_4 164 +#define SECRET_BASE_TREE1 SECRET_BASE_GROUP(16) + #define SECRET_BASE_TREE2_1 171 #define SECRET_BASE_TREE2_2 172 #define SECRET_BASE_TREE2_3 173 #define SECRET_BASE_TREE2_4 174 +#define SECRET_BASE_TREE2 SECRET_BASE_GROUP(17) + #define SECRET_BASE_TREE3_1 181 #define SECRET_BASE_TREE3_2 182 #define SECRET_BASE_TREE3_3 183 +#define SECRET_BASE_TREE3 SECRET_BASE_GROUP(18) + #define SECRET_BASE_TREE4_1 191 #define SECRET_BASE_TREE4_2 192 #define SECRET_BASE_TREE4_3 193 +#define SECRET_BASE_TREE4 SECRET_BASE_GROUP(19) + #define SECRET_BASE_SHRUB1_1 201 #define SECRET_BASE_SHRUB1_2 202 #define SECRET_BASE_SHRUB1_3 203 #define SECRET_BASE_SHRUB1_4 204 +#define SECRET_BASE_SHRUB1 SECRET_BASE_GROUP(20) + #define SECRET_BASE_SHRUB2_1 211 #define SECRET_BASE_SHRUB2_2 212 #define SECRET_BASE_SHRUB2_3 213 +#define SECRET_BASE_SHRUB2 SECRET_BASE_GROUP(21) + #define SECRET_BASE_SHRUB3_1 221 #define SECRET_BASE_SHRUB3_2 222 #define SECRET_BASE_SHRUB3_3 223 +#define SECRET_BASE_SHRUB3 SECRET_BASE_GROUP(22) + #define SECRET_BASE_SHRUB4_1 231 #define SECRET_BASE_SHRUB4_2 232 #define SECRET_BASE_SHRUB4_3 233 +#define SECRET_BASE_SHRUB4 SECRET_BASE_GROUP(23) + +#define NUM_SECRET_BASE_GROUPS 24 + #endif // GUARD_CONSTANTS_SECRET_BASES_H diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h index 27357e99c5..0e802bba80 100644 --- a/include/constants/trainer_hill.h +++ b/include/constants/trainer_hill.h @@ -37,8 +37,9 @@ #define TRAINER_HILL_TEXT_PLAYER_WON 4 #define TRAINER_HILL_TEXT_AFTER 5 -#define NUM_TRAINER_HILL_TRAINERS (NUM_TRAINER_HILL_FLOORS * 2) -#define NUM_TRAINER_HILL_TRAINERS_JP (NUM_TRAINER_HILL_FLOORS_JP * 2) +#define TRAINER_HILL_TRAINERS_PER_FLOOR 2 +#define NUM_TRAINER_HILL_TRAINERS (NUM_TRAINER_HILL_FLOORS * TRAINER_HILL_TRAINERS_PER_FLOOR) +#define NUM_TRAINER_HILL_TRAINERS_JP (NUM_TRAINER_HILL_FLOORS_JP * TRAINER_HILL_TRAINERS_PER_FLOOR) // Values returned by TrainerHillGetChallengeStatus #define TRAINER_HILL_PLAYER_STATUS_LOST 0 diff --git a/include/constants/tv.h b/include/constants/tv.h index 4b5f9115b4..095a6ddca7 100644 --- a/include/constants/tv.h +++ b/include/constants/tv.h @@ -6,12 +6,22 @@ #define POKENEWS_GAME_CORNER 2 #define POKENEWS_LILYCOVE 3 #define POKENEWS_BLENDMASTER 4 +#define NUM_POKENEWS_TYPES 4 // Excludes NONE + +// TV shows are categorized as being in one of 3 groups +// - TVGROUP_NORMAL, TV shows that can appear without Record Mixing +// - TVGROUP_RECORD_MIX, TV shows that can only appear via Record Mixing +// - TVGROUP_OUTBREAK, just contains TVSHOW_MASS_OUTBREAK +// Each group was allotted 20 spaces arbitrarily, though none use all 20 #define TVSHOW_OFF_AIR 0 + +// TVGROUP_NORMAL +#define TVGROUP_NORMAL_START 1 #define TVSHOW_FAN_CLUB_LETTER 1 #define TVSHOW_RECENT_HAPPENINGS 2 #define TVSHOW_PKMN_FAN_CLUB_OPINIONS 3 -#define TVSHOW_UNKN_SHOWTYPE_04 4 +#define TVSHOW_DUMMY 4 #define TVSHOW_NAME_RATER_SHOW 5 #define TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE 6 #define TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE 7 @@ -19,8 +29,12 @@ #define TVSHOW_3_CHEERS_FOR_POKEBLOCKS 9 #define TVSHOW_BATTLE_UPDATE 10 #define TVSHOW_FAN_CLUB_SPECIAL 11 -#define TVSHOW_CONTEST_LIVE_UPDATES_2 12 -// // +#define TVSHOW_LILYCOVE_CONTEST_LADY 12 +// +#define TVGROUP_NORMAL_END 20 + +// TVGROUP_RECORD_MIX +#define TVGROUP_RECORD_MIX_START 21 #define TVSHOW_POKEMON_TODAY_CAUGHT 21 #define TVSHOW_SMART_SHOPPER 22 #define TVSHOW_POKEMON_TODAY_FAILED 23 @@ -40,8 +54,22 @@ #define TVSHOW_NUMBER_ONE 37 #define TVSHOW_SECRET_BASE_SECRETS 38 #define TVSHOW_SAFARI_FAN_CLUB 39 -// // -#define TVSHOW_MASS_OUTBREAK 41 +#define TVGROUP_RECORD_MIX_END 40 + +// TVGROUP_OUTBREAK +#define TVGROUP_OUTBREAK_START 41 +#define TVSHOW_MASS_OUTBREAK 41 +// +#define TVGROUP_OUTBREAK_END 60 + +// The first 5 elements of gSaveBlock1Ptr->tvShows are reserved +// for TV shows from TVGROUP_NORMAL. The remainder are for TV +// shows from TVGROUP_RECORD_MIX. +#define NUM_NORMAL_TVSHOW_SLOTS 5 + +#define PLAYERS_HOUSE_TV_NONE 0 +#define PLAYERS_HOUSE_TV_LATI 1 +#define PLAYERS_HOUSE_TV_MOVIE 2 // Number of ribbons to put Spot the Cuties on air #define NUM_CUTIES_RIBBONS 4 @@ -188,4 +216,54 @@ #define CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS (1 << 6) #define CONTESTLIVE_FLAG_NO_APPEALS (1 << 7) +// TV Show states for Spot the Cuties +#define SPOTCUTIES_STATE_INTRO 0 +#define SPOTCUTIES_STATE_RIBBONS_LOW 1 +#define SPOTCUTIES_STATE_RIBBONS_MID 2 +#define SPOTCUTIES_STATE_RIBBONS_HIGH 3 +#define SPOTCUTIES_STATE_RIBBON_INTRO 4 +#define SPOTCUTIES_STATE_RIBBON_CHAMPION 5 +#define SPOTCUTIES_STATE_RIBBON_COOL 6 +#define SPOTCUTIES_STATE_RIBBON_BEAUTY 7 +#define SPOTCUTIES_STATE_RIBBON_CUTE 8 +#define SPOTCUTIES_STATE_RIBBON_SMART 9 +#define SPOTCUTIES_STATE_RIBBON_TOUGH 10 +#define SPOTCUTIES_STATE_RIBBON_WINNING 11 +#define SPOTCUTIES_STATE_RIBBON_VICTORY 12 +#define SPOTCUTIES_STATE_RIBBON_ARTIST 13 +#define SPOTCUTIES_STATE_RIBBON_EFFORT 14 +#define SPOTCUTIES_STATE_OUTRO 15 + +// TV Show states for Trend Watcher +#define TRENDWATCHER_STATE_INTRO 0 +#define TRENDWATCHER_STATE_TAUGHT_MALE 1 +#define TRENDWATCHER_STATE_TAUGHT_FEMALE 2 +#define TRENDWATCHER_STATE_PHRASE_HOPELESS 3 +#define TRENDWATCHER_STATE_BIGGER_MALE 4 +#define TRENDWATCHER_STATE_BIGGER_FEMALE 5 +#define TRENDWATCHER_STATE_OUTRO 6 + +// TV Show states for the Contest Lady's Live Updates show +#define CONTESTLADYLIVE_STATE_INTRO 0 +#define CONTESTLADYLIVE_STATE_WON 1 +#define CONTESTLADYLIVE_STATE_LOST 2 +#define CONTESTLADYLIVE_STATE_LOST_BADLY 3 + +// TV Show states for Smart Shopper +#define SMARTSHOPPER_STATE_INTRO 0 +#define SMARTSHOPPER_STATE_CLERK_NORMAL 1 +#define SMARTSHOPPER_STATE_RAND_COMMENT_1 2 +#define SMARTSHOPPER_STATE_RAND_COMMENT_2 3 +#define SMARTSHOPPER_STATE_RAND_COMMENT_3 4 +#define SMARTSHOPPER_STATE_RAND_COMMENT_4 5 +#define SMARTSHOPPER_STATE_SECOND_ITEM 6 +#define SMARTSHOPPER_STATE_THIRD_ITEM 7 +#define SMARTSHOPPER_STATE_DURING_SALE 8 +#define SMARTSHOPPER_STATE_OUTRO_NORMAL 9 +#define SMARTSHOPPER_STATE_IS_VIP 10 +#define SMARTSHOPPER_STATE_CLERK_MAX 11 +#define SMARTSHOPPER_STATE_OUTRO_MAX 12 + +#define SMARTSHOPPER_NUM_ITEMS 3 + #endif //GUARD_CONSTANTS_TV_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 625c37aa9c..d3d1aba87d 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -56,7 +56,7 @@ #define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027 #define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028 #define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029 -#define VAR_HAPPINESS_STEP_COUNTER 0x402A +#define VAR_FRIENDSHIP_STEP_COUNTER 0x402A #define VAR_POISON_STEP_COUNTER 0x402B #define VAR_RESET_RTC_ENABLE 0x402C #define VAR_ENIGMA_BERRY_AVAILABLE 0x402D diff --git a/include/constants/weather.h b/include/constants/weather.h index aa03098826..becbdda877 100644 --- a/include/constants/weather.h +++ b/include/constants/weather.h @@ -39,8 +39,6 @@ // These are the "abnormal weather events" that are used // to find Kyogre and Groudon. -#define ABNORMAL_WEATHER_LOCATIONS (MARINE_CAVE_LOCATIONS + TERRA_CAVE_LOCATIONS) -#define ABNORMAL_WEATHER_NONE 0 // Groudon/Terra Cave locations #define TERRA_CAVE_LOCATIONS_START 1 @@ -66,4 +64,7 @@ #define ABNORMAL_WEATHER_ROUTE_129_EAST (MARINE_CAVE_LOCATIONS_START + 7) #define MARINE_CAVE_LOCATIONS 8 +#define ABNORMAL_WEATHER_LOCATIONS (MARINE_CAVE_LOCATIONS + TERRA_CAVE_LOCATIONS) +#define ABNORMAL_WEATHER_NONE 0 + #endif // GUARD_CONSTANTS_WEATHER_H diff --git a/include/contest.h b/include/contest.h index 1dd4340bd8..9bac63eda5 100644 --- a/include/contest.h +++ b/include/contest.h @@ -111,11 +111,11 @@ struct ContestPokemon u32 otId; }; -struct Shared1A004 +struct ContestTempSave { u16 cachedWindowPalettes[16][16]; // Saved palette data before a move happens? - u16 unk18204[PLTT_BUFFER_SIZE]; // Saved copy of gPlttBufferUnfaded - u16 unk18604[PLTT_BUFFER_SIZE]; // Saved copy of gPlttBufferFaded + u16 cachedPlttBufferUnfaded[PLTT_BUFFER_SIZE]; + u16 cachedPlttBufferFaded[PLTT_BUFFER_SIZE]; u8 savedJunk[0x800]; }; @@ -306,7 +306,7 @@ struct ContestResources #define eUnzippedContestAudience_Gfx (gHeap + 0x18000) #define eContestAudienceFrame2_Gfx (gHeap + 0x19000) #define eContestDebugMode (gHeap[0x1a000]) -#define eUnknownHeap1A004 (*(struct Shared1A004 *)(gHeap + 0x1a004)) +#define eContestTempSave (*(struct ContestTempSave *)(gHeap + 0x1a004)) extern struct ContestPokemon gContestMons[CONTESTANT_COUNT]; extern s16 gContestMonRound1Points[CONTESTANT_COUNT]; @@ -326,8 +326,8 @@ extern u8 gHighestRibbonRank; extern struct ContestResources *gContestResources; extern u8 sContestBgCopyFlags; extern struct ContestWinner gCurContestWinner; -extern u8 gUnknown_02039F5C; -extern u8 gUnknown_02039F5D; +extern u8 gCurContestWinnerIsForArtist; +extern u8 gCurContestWinnerSaveIdx; extern u32 gContestRngValue; // contest.c @@ -351,8 +351,8 @@ s8 Contest_GetMoveExcitement(u16 move); bool8 IsContestantAllowedToCombo(u8 contestant); void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s32 fontId); void ResetContestLinkResults(void); -bool8 sub_80DEDA8(u8 a); -u8 sub_80DEFA8(u8 a, u8 b); +bool8 SaveContestWinner(u8 rank); +u8 GetContestWinnerSaveIdx(u8 rank, bool8 shift); void ClearContestWinnerPicsInContestHall(void); void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 language); diff --git a/include/contest_util.h b/include/contest_util.h index 76f9ae522a..1e97d91d35 100644 --- a/include/contest_util.h +++ b/include/contest_util.h @@ -7,8 +7,8 @@ void StartContest(void); void BufferContestantMonSpecies(void); void ShowContestResults(void); void ContestLinkTransfer(u8); -void ShowContestWinnerPainting(void); +void ShowContestPainting(void); u16 GetContestRand(void); -u8 CountPlayerContestPaintings(void); +u8 CountPlayerMuseumPaintings(void); #endif // GUARD_CONTEST_UTIL_H diff --git a/include/credits.h b/include/credits.h index f7dfa99970..2e8c7e0c3c 100644 --- a/include/credits.h +++ b/include/credits.h @@ -1,12 +1,8 @@ #ifndef GUARD_CREDITS_H #define GUARD_CREDITS_H -// Exported type declarations - -// Exported RAM declarations extern EWRAM_DATA bool8 gHasHallOfFameRecords; -// Exported ROM declarations void CB2_StartCreditsSequence(void); #endif // GUARD_CREDITS_H diff --git a/include/data.h b/include/data.h index 260c18152c..f94f55a8f3 100644 --- a/include/data.h +++ b/include/data.h @@ -5,6 +5,12 @@ #define SPECIES_SHINY_TAG 500 +enum { + BATTLER_AFFINE_NORMAL, + BATTLER_AFFINE_EMERGE, + BATTLER_AFFINE_RETURN, +}; + struct MonCoords { // This would use a bitfield, but some function @@ -69,13 +75,13 @@ struct Trainer #define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) -extern const u16 gUnknown_082FF1D8[]; -extern const u32 gUnknown_082FF1F8[]; +extern const u16 gMinigameDigits_Pal[]; +extern const u32 gMinigameDigits_Gfx[]; -extern const struct SpriteFrameImage gUnknown_082FF3A8[]; -extern const struct SpriteFrameImage gUnknown_082FF3C8[]; -extern const struct SpriteFrameImage gUnknown_082FF3E8[]; -extern const struct SpriteFrameImage gUnknown_082FF408[]; +extern const struct SpriteFrameImage gBattlerPicTable_PlayerLeft[]; +extern const struct SpriteFrameImage gBattlerPicTable_OpponentLeft[]; +extern const struct SpriteFrameImage gBattlerPicTable_PlayerRight[]; +extern const struct SpriteFrameImage gBattlerPicTable_OpponentRight[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Brendan[]; extern const struct SpriteFrameImage gTrainerBackPicTable_May[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; @@ -85,11 +91,11 @@ extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Wally[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Steven[]; -extern const union AffineAnimCmd *const gUnknown_082FF618[]; -extern const union AffineAnimCmd *const gUnknown_082FF694[]; -extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; +extern const union AffineAnimCmd *const gAffineAnims_BattleSpritePlayerSide[]; +extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteOpponentSide[]; +extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteContest[]; -extern const union AnimCmd *const gUnknown_082FF70C[]; +extern const union AnimCmd *const gAnims_MonPic[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct CompressedSpriteSheet gMonStillFrontPicTable[]; extern const struct MonCoords gMonBackPicCoords[]; diff --git a/include/daycare.h b/include/daycare.h index 7d6f2fb193..d6c0d42017 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -6,7 +6,7 @@ u8 *GetMonNickname2(struct Pokemon *mon, u8 *dest); u8 *GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest); u8 CountPokemonInDaycare(struct DayCare *daycare); -void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail); +void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDaycareMail *daycareMail); void StoreSelectedPokemonInDaycare(void); u16 TakePokemonFromDaycare(void); void GetDaycareCost(void); diff --git a/include/dewford_trend.h b/include/dewford_trend.h index bdb0fc95cf..6a31944687 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -2,10 +2,9 @@ #define GUARD_DEWFORDTREND_H void InitDewfordTrend(void); -void UpdateDewfordTrendPerDay(u16); void UpdateDewfordTrendPerDay(u16 days); -bool8 sub_81226D8(u16 *a); -void ReceiveEasyChatPairsData(struct EasyChatPair *a, size_t b, u8 unused); +bool8 TrySetTrendyPhrase(u16 *phrase); +void ReceiveDewfordTrendData(struct DewfordTrend *linkedTrends, size_t size, u8 unused); #endif // GUARD_DEWFORDTREND_H diff --git a/include/dodrio_berry_picking.h b/include/dodrio_berry_picking.h index 5decbeccb9..a93fb27cd1 100644 --- a/include/dodrio_berry_picking.h +++ b/include/dodrio_berry_picking.h @@ -1,7 +1,7 @@ #ifndef GUARD_DODRIO_BERRY_PICKING_H #define GUARD_DODRIO_BERRY_PICKING_H -void StartDodrioBerryPicking(u16 a0, void (*callback)(void)); +void StartDodrioBerryPicking(u16 partyId, void (*exitCallback)(void)); void IsDodrioInParty(void); void ShowDodrioBerryPickingRecords(void); diff --git a/include/easy_chat.h b/include/easy_chat.h index f2ef066d42..4d2bc7c983 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -24,55 +24,55 @@ struct EasyChatScreen /*0x01*/ u8 templateId; /*0x02*/ u8 numColumns; /*0x03*/ u8 numRows; - /*0x04*/ u8 state; + /*0x04*/ u8 inputState; /*0x05*/ s8 mainCursorColumn; /*0x06*/ s8 mainCursorRow; - /*0x07*/ u8 unk_07; - /*0x08*/ u8 stateBackup; - /*0x09*/ u8 unk_09; - /*0x0A*/ s8 unk_0a; - /*0x0B*/ s8 unk_0b; - /*0x0C*/ u8 unk_0c; - /*0x0D*/ u8 unk_0d; - /*0x0E*/ u8 unk_0e; - /*0x0F*/ u8 unk_0f; - /*0x10*/ s8 unk_10; - /*0x11*/ s8 unk_11; + /*0x07*/ u8 maxWords; + /*0x08*/ u8 inputStateBackup; + /*0x09*/ bool8 inAlphabetMode; + /*0x0A*/ s8 keyboardColumn; + /*0x0B*/ s8 keyboardRow; + /*0x0C*/ u8 keyboardScrollOffset; + /*0x0D*/ u8 keyboardLastRow; + /*0x0E*/ u8 wordSelectScrollOffset; + /*0x0F*/ u8 wordSelectLastRow; + /*0x10*/ s8 wordSelectColumn; + /*0x11*/ s8 wordSelectRow; /*0x12*/ u8 displayedPersonType; - /*0x13*/ u8 unk_13; - /*0x14*/ u8 unk_14[0x20]; + /*0x13*/ u8 unused; // Set to 0, never read + /*0x14*/ u8 quizTitle[32]; /*0x34*/ const u8 *titleText; - /*0x38*/ u16 *words; - /*0x3C*/ u16 ecWordBuffer[9]; + /*0x38*/ u16 *savedPhrase; + /*0x3C*/ u16 currentPhrase[9]; }; -struct Unk203A11C +struct EasyChatScreenControl { - u16 unk0; + u16 funcState; u16 windowId; - u16 unk4; - u8 unk6; - u8 unk7; - s8 unk8; - u8 unk9; - u8 unkA; - u8 unkB[0xC1]; - u8 unkCC[0x202]; - u16 unk2CE; - int unk2D0; - int unk2D4; - struct Sprite *unk2D8; - struct Sprite *unk2DC; - struct Sprite *unk2E0; - struct Sprite *unk2E4; - struct Sprite *unk2E8; - struct Sprite *unk2EC; - struct Sprite *unk2F0; - struct Sprite *unk2F4; - struct Sprite *unk2F8; - struct Sprite *unk2FC; - u16 unk300[BG_SCREEN_SIZE / 2]; - u16 unkB00[BG_SCREEN_SIZE / 2]; + u16 currentFuncId; + u8 curWindowAnimState; + u8 destWindowAnimState; + s8 windowAnimStateDir; + u8 modeWindowState; + bool8 fourFooterOptions; // Never read (template is used directly instead) + u8 phrasePrintBuffer[193]; + u8 wordSelectPrintBuffer[514]; + u16 scrollOffset; + int scrollDest; + int scrollSpeed; + struct Sprite *mainCursorSprite; + struct Sprite *rectangleCursorSpriteRight; + struct Sprite *rectangleCursorSpriteLeft; + struct Sprite *wordSelectCursorSprite; + struct Sprite *buttonWindowSprite; + struct Sprite *modeWindowSprite; + struct Sprite *scrollIndicatorUpSprite; + struct Sprite *scrollIndicatorDownSprite; + struct Sprite *startButtonSprite; + struct Sprite *selectButtonSprite; + u16 bg1TilemapBuffer[BG_SCREEN_SIZE / 2]; + u16 bg3TilemapBuffer[BG_SCREEN_SIZE / 2]; }; struct EasyChatPhraseFrameDimensions @@ -104,15 +104,15 @@ struct EasyChatGroup u16 numEnabledWords; }; -struct Unk203A120 +struct EasyChatScreenWordData { - u16 unk0; - u16 unk2[EC_NUM_GROUPS]; - u16 unk2E[27]; - u16 unk64[27][270]; - u8 filler3958[0x2C]; - u16 unk3984[0x10E]; - u16 unk3BA0; + u16 numUnlockedGroups; + u16 unlockedGroupIds[EC_NUM_GROUPS]; + u16 numUnlockedAlphabetWords[EC_NUM_ALPHABET_GROUPS]; + u16 unlockedAlphabetWords[EC_NUM_ALPHABET_GROUPS][EC_MAX_WORDS_IN_GROUP]; + u8 unused[44]; + u16 selectedGroupWords[EC_MAX_WORDS_IN_GROUP]; + u16 numSelectedGroupWords; }; /*size = 0x3BA4*/ struct EasyChatWordsByLetter @@ -124,16 +124,16 @@ struct EasyChatWordsByLetter void InitEasyChatPhrases(void); void ShowEasyChatScreen(void); u8 * CopyEasyChatWord(u8 *dest, u16 word); -bool32 sub_811F8D8(int word); +bool32 IsEasyChatAnswerUnlocked(int word); void InitializeEasyChatWordArray(u16 *words, u16 length); u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows); -bool8 ECWord_CheckIfOutsideOfValidRange(u16 word); +bool8 IsBardWordInvalid(u16 word); u16 GetRandomEasyChatWordFromGroup(u16 group); u16 GetNewHipsterPhraseToTeach(void); u16 EasyChat_GetNumWordsInGroup(u8); u16 GetRandomEasyChatWordFromUnlockedGroup(u16); void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType); -void sub_811F8BC(void); +void InitQuestionnaireWords(void); void UnlockAdditionalPhrase(u8 additionalPhraseId); #endif // GUARD_EASYCHAT_H diff --git a/include/ereader_helpers.h b/include/ereader_helpers.h index 8dc3b907a7..064b61ed7f 100755 --- a/include/ereader_helpers.h +++ b/include/ereader_helpers.h @@ -5,30 +5,30 @@ struct EReaderTrainerHillTrainer { - u8 unk0; - struct TrainerHillTrainer unk4; - struct TrHillDisplay unk14C; + u8 trainerNum; + struct TrainerHillTrainer trainer; + struct TrHillDisplay display; u32 checksum; }; // size=0x274 struct EReaderTrainerHillSet { - u8 count; + u8 numTrainers; u8 id; - u16 dummy; + u16 dummy; // Only read in an assert. u32 checksum; - struct EReaderTrainerHillTrainer unk_8[6]; + struct EReaderTrainerHillTrainer trainers[6]; u8 unk_ec0[40]; }; // size = 0xf00 -bool8 EReader_IsReceivedDataValid(struct EReaderTrainerHillSet *buffer); -bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0); +bool8 ValidateTrainerHillData(struct EReaderTrainerHillSet *); +bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *); bool32 ReadTrainerHillAndValidate(void); -int EReaderHandleTransfer(u8, u32, u32*, u32*); -void sub_81D3F9C(void); -void sub_81D3FAC(void); +int EReaderHandleTransfer(u8, size_t, const void *, void *); +void EReaderHelper_Timer3Callback(void); +void EReaderHelper_SerialCallback(void); void EReaderHelper_SaveRegsState(void); void EReaderHelper_RestoreRegsState(void); -void sub_81D4238(void); +void EReaderHelper_ClearSendRecvMgr(void); #endif // GUARD_EREADER_HELPERS_H diff --git a/include/event_object_lock.h b/include/event_object_lock.h index 0226eb632b..0b1f5f0981 100644 --- a/include/event_object_lock.h +++ b/include/event_object_lock.h @@ -1,12 +1,12 @@ #ifndef GUARD_EVENT_OBJECT_LOCK_H #define GUARD_EVENT_OBJECT_LOCK_H -bool8 sub_80983C4(void); -void ScriptFreezeObjectEvents(void); -bool8 sub_809847C(void); -void LockSelectedObjectEvent(void); -void sub_8098630(void); -bool8 sub_8098734(void); +bool8 IsFreezePlayerFinished(void); +bool8 IsFreezeSelectedObjectAndPlayerFinished(void); +void FreezeObjects_WaitForPlayer(void); +void FreezeObjects_WaitForPlayerAndSelected(void); +void FreezeForApproachingTrainers(void); +bool8 IsFreezeObjectAndPlayerFinished(void); void ScriptUnfreezeObjectEvents(void); void UnionRoom_UnlockPlayerAndChatPartner(void); diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 9b4d9302fe..a935502e64 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -16,14 +16,22 @@ enum SpinnerRunnerFollowPatterns RUNFOLLOW_SOUTH_EAST_WEST }; +enum ReflectionTypes +{ + REFL_TYPE_NONE, + REFL_TYPE_ICE, + REFL_TYPE_WATER, + NUM_REFLECTION_TYPES +}; + #define FIGURE_8_LENGTH 72 #define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0) #define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1) #define GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN (1 << 2) #define GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE (1 << 3) -#define GROUND_EFFECT_FLAG_ICE_REFLECTION (1 << 4) -#define GROUND_EFFECT_FLAG_REFLECTION (1 << 5) +#define GROUND_EFFECT_FLAG_WATER_REFLECTION (1 << 4) +#define GROUND_EFFECT_FLAG_ICE_REFLECTION (1 << 5) #define GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER (1 << 6) #define GROUND_EFFECT_FLAG_SAND (1 << 7) #define GROUND_EFFECT_FLAG_DEEP_SAND (1 << 8) @@ -39,7 +47,7 @@ enum SpinnerRunnerFollowPatterns #define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18) #define GROUND_EFFECT_FLAG_SEAWEED (1 << 19) -struct UnkStruct_085094AC +struct StepAnimTable { const union AnimCmd *const *anims; u8 animPos[4]; @@ -57,7 +65,6 @@ struct LockedAnimObjectEvents u8 count; }; -extern const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[]; extern const struct OamData gObjectEventBaseOam_32x8; extern const struct OamData gObjectEventBaseOam_32x32; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; @@ -79,9 +86,9 @@ void LoadPlayerObjectReflectionPalette(u16, u8); void LoadSpecialObjectReflectionPalette(u16, u8); void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16); void PatchObjectPalette(u16, u8); -void sub_808E16C(s16, s16); +void SpawnObjectEventsOnReturnToField(s16, s16); void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat); -void sub_8092FF0(s16, s16, s16 *, s16 *); +void GetMapCoordsFromSpritePos(s16, s16, s16 *, s16 *); u8 GetFaceDirectionAnimNum(u8); void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16); void ObjectEventClearHeldMovement(struct ObjectEvent *); @@ -98,12 +105,12 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *, u8 graphicsId); void ObjectEventTurn(struct ObjectEvent *, u8); void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8); const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId); -void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); +void SetObjectInvisibility(u8, u8, u8, bool8); void FreeAndReserveObjectSpritePalettes(void); void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); -void sub_808E7E4(u8, u8, u8); -void sub_808E78C(u8, u8, u8, u8); -void sub_808E75C(s16, s16); +void ResetObjectPriority(u8, u8, u8); +void SetObjectPriority(u8, u8, u8, u8); +void AllowObjectAtPosTriggerGroundEffects(s16, s16); void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup); void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16); void MoveObjectEventToMapCoords(struct ObjectEvent *, s16, s16); @@ -167,35 +174,26 @@ void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); bool8 IsZCoordMismatchAt(u8, s16, s16); void UnfreezeObjectEvent(struct ObjectEvent *); u8 FindLockedObjectEventIndex(struct ObjectEvent *); -bool8 obj_npc_ministep(struct Sprite *sprite); -bool8 sub_80976EC(struct Sprite *sprite); -void sub_80976DC(struct Sprite *, u8); -void sub_809783C(struct Sprite *, u8, u8, u8); -void DoShadowFieldEffect(struct ObjectEvent *); -u8 sub_809785C(struct Sprite *); -u8 sub_80978E4(struct Sprite *); void SetAndStartSpriteAnim(struct Sprite *, u8, u8); bool8 SpriteAnimEnded(struct Sprite *); -void CreateLevitateMovementTask(struct ObjectEvent *); -void DestroyExtraMovementTask(u8); void UnfreezeObjectEvents(void); void FreezeObjectEventsExceptOne(u8 objectEventId); void TurnObjectEventSprite(u8, u8); -void sub_8098074(u8 var1, u8 var2); +void FreezeObjectEventsExceptTwo(u8 objectEventId1, u8 objectEventId2); void FreezeObjectEvents(void); bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent); u8 GetMoveDirectionFastAnimNum(u8); u8 GetMoveDirectionFasterAnimNum(u8); u8 GetMoveDirectionFastestAnimNum(u8); u8 GetLedgeJumpDirection(s16, s16, u8); -void CameraObjectSetFollowedObjectId(u8 objectId); +void CameraObjectSetFollowedSpriteId(u8 objectId); u16 GetObjectPaletteTag(u8 palSlot); -void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible); +void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible); s16 GetFigure8XOffset(s16 idx); s16 GetFigure8YOffset(s16 idx); void CameraObjectReset2(void); u8 GetObjectEventBerryTreeId(u8 objectEventId); -void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup); +void SetBerryTreeJustPicked(u8 mapId, u8 mapNumber, u8 mapGroup); bool8 IsBerryTreeSparkling(u8, u8, u8); void MovementType_None(struct Sprite *); @@ -247,7 +245,7 @@ void MovementType_CopyPlayer(struct Sprite *); void MovementType_TreeDisguise(struct Sprite *); void MovementType_MountainDisguise(struct Sprite *); void MovementType_CopyPlayerInGrass(struct Sprite *); -void MovementType_Hidden(struct Sprite *); +void MovementType_Buried(struct Sprite *); void MovementType_WalkInPlace(struct Sprite *); void MovementType_JogInPlace(struct Sprite *); void MovementType_RunInPlace(struct Sprite *); @@ -299,11 +297,11 @@ u8 MovementType_WanderLeftAndRight_Step6(struct ObjectEvent *, struct Sprite *); u8 MovementType_FaceDirection_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_FaceDirection_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementType_FaceDirection_Step2(struct ObjectEvent *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step0(struct ObjectEvent *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step1(struct ObjectEvent *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step2(struct ObjectEvent *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step3(struct ObjectEvent *, struct Sprite *); -u8 MovementType_BerryTreeGrowth_Step4(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_Normal(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_Move(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_SparkleStart(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_Sparkle(struct ObjectEvent *, struct Sprite *); +u8 MovementType_BerryTreeGrowth_SparkleEnd(struct ObjectEvent *, struct Sprite *); u8 MovementType_FaceDownAndUp_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_FaceDownAndUp_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementType_FaceDownAndUp_Step2(struct ObjectEvent *, struct Sprite *); @@ -405,7 +403,7 @@ bool8 cph_IM_DIFFERENT(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); bool8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); u8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *, struct Sprite *); -u8 MovementType_Hidden_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_Buried_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_WalkInPlace_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_MoveInPlace_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *, struct Sprite *); @@ -414,10 +412,10 @@ u8 MovementType_RunInPlace_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_Invisible_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_Invisible_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementType_Invisible_Step2(struct ObjectEvent *, struct Sprite *); -void SetObjectEventSpriteInvisibility(u8 var, bool32 var2); -bool32 IsObjectEventSpriteInvisible(u8 var); -void SetObjectEventSpriteGraphics(u8 var1, u8 graphicsId); -void SetObjectEventSpriteAnim(u8 var1, u8 var2); -bool32 IsObjectEventSpriteAnimating(u8 var); +void SetObjectEventSpriteInvisibility(u8 objectEventId, bool32 invisible); +bool32 IsObjectEventSpriteInvisible(u8 objectEventId); +void SetObjectEventSpriteGraphics(u8 objectEventId, u8 graphicsId); +void SetObjectEventSpriteAnim(u8 objectEventId, u8 animNum); +bool32 IsObjectEventSpriteAnimating(u8 objectEventId); #endif //GUARD_EVENT_OBJECT_MOVEMENT_H diff --git a/include/event_scripts.h b/include/event_scripts.h index 8515597244..c478f41f83 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -3,7 +3,7 @@ extern const u8 EventScript_TestSignpostMsg[]; extern const u8 EventScript_TryGetTrainerScript[]; -extern const u8 EventScript_271354[]; +extern const u8 EventScript_StartTrainerApproach[]; extern const u8 EventScript_DoNoIntroTrainerBattle[]; extern const u8 EventScript_TryDoDoubleTrainerBattle[]; extern const u8 EventScript_TryDoNormalTrainerBattle[]; @@ -108,19 +108,19 @@ extern const u8 gTVPokemonTodaySuccessfulText08[]; extern const u8 gTVPokemonTodaySuccessfulText09[]; extern const u8 gTVPokemonTodaySuccessfulText10[]; extern const u8 gTVPokemonTodaySuccessfulText11[]; -extern const u8 gTVTodaysSmartShopperText00[]; -extern const u8 gTVTodaysSmartShopperText01[]; -extern const u8 gTVTodaysSmartShopperText02[]; -extern const u8 gTVTodaysSmartShopperText03[]; -extern const u8 gTVTodaysSmartShopperText04[]; -extern const u8 gTVTodaysSmartShopperText05[]; -extern const u8 gTVTodaysSmartShopperText06[]; -extern const u8 gTVTodaysSmartShopperText07[]; -extern const u8 gTVTodaysSmartShopperText08[]; -extern const u8 gTVTodaysSmartShopperText09[]; -extern const u8 gTVTodaysSmartShopperText10[]; -extern const u8 gTVTodaysSmartShopperText11[]; -extern const u8 gTVTodaysSmartShopperText12[]; +extern const u8 SmartShopper_Text_Intro[]; +extern const u8 SmartShopper_Text_ClerkNormal[]; +extern const u8 SmartShopper_Text_RandomComment1[]; +extern const u8 SmartShopper_Text_RandomComment2[]; +extern const u8 SmartShopper_Text_RandomComment3[]; +extern const u8 SmartShopper_Text_RandomComment4[]; +extern const u8 SmartShopper_Text_SecondItem[]; +extern const u8 SmartShopper_Text_ThirdItem[]; +extern const u8 SmartShopper_Text_DuringSale[]; +extern const u8 SmartShopper_Text_OutroNormal[]; +extern const u8 SmartShopper_Text_IsVIP[]; +extern const u8 SmartShopper_Text_ClerkMax[]; +extern const u8 SmartShopper_Text_OutroMax[]; extern const u8 gTVWorldOfMastersText00[]; extern const u8 gTVWorldOfMastersText01[]; extern const u8 gTVWorldOfMastersText02[]; @@ -135,13 +135,13 @@ extern const u8 gTVTodaysRivalTrainerText03[]; extern const u8 gTVTodaysRivalTrainerText04[]; extern const u8 gTVTodaysRivalTrainerText05[]; extern const u8 gTVTodaysRivalTrainerText06[]; -extern const u8 gTVDewfordTrendWatcherNetworkText00[]; -extern const u8 gTVDewfordTrendWatcherNetworkText01[]; -extern const u8 gTVDewfordTrendWatcherNetworkText02[]; -extern const u8 gTVDewfordTrendWatcherNetworkText03[]; -extern const u8 gTVDewfordTrendWatcherNetworkText04[]; -extern const u8 gTVDewfordTrendWatcherNetworkText05[]; -extern const u8 gTVDewfordTrendWatcherNetworkText06[]; +extern const u8 TrendWatcher_Text_Intro[]; +extern const u8 TrendWatcher_Text_MaleTaughtMePhrase[]; +extern const u8 TrendWatcher_Text_FemaleTaughtMePhrase[]; +extern const u8 TrendWatcher_Text_PhraseWasHopeless[]; +extern const u8 TrendWatcher_Text_MaleTellMeBigger[]; +extern const u8 TrendWatcher_Text_FemaleTellMeBigger[]; +extern const u8 TrendWatcher_Text_Outro[]; extern const u8 gTVHoennTreasureInvestigatorsText00[]; extern const u8 gTVHoennTreasureInvestigatorsText01[]; extern const u8 gTVHoennTreasureInvestigatorsText02[]; @@ -196,22 +196,22 @@ extern const u8 gTVTrainerFanClubText08[]; extern const u8 gTVTrainerFanClubText09[]; extern const u8 gTVTrainerFanClubText10[]; extern const u8 gTVTrainerFanClubText11[]; -extern const u8 gTVCutiesText00[]; -extern const u8 gTVCutiesText01[]; -extern const u8 gTVCutiesText02[]; -extern const u8 gTVCutiesText03[]; -extern const u8 gTVCutiesText04[]; -extern const u8 gTVCutiesText05[]; -extern const u8 gTVCutiesText06[]; -extern const u8 gTVCutiesText07[]; -extern const u8 gTVCutiesText08[]; -extern const u8 gTVCutiesText09[]; -extern const u8 gTVCutiesText10[]; -extern const u8 gTVCutiesText11[]; -extern const u8 gTVCutiesText12[]; -extern const u8 gTVCutiesText13[]; -extern const u8 gTVCutiesText14[]; -extern const u8 gTVCutiesText15[]; +extern const u8 TVSpotTheCuties_Text_Intro[]; +extern const u8 TVSpotTheCuties_Text_RibbonsLow[]; +extern const u8 TVSpotTheCuties_Text_RibbonsMid[]; +extern const u8 TVSpotTheCuties_Text_RibbonsHigh[]; +extern const u8 TVSpotTheCuties_Text_RibbonIntro[]; +extern const u8 TVSpotTheCuties_Text_RibbonChampion[]; +extern const u8 TVSpotTheCuties_Text_RibbonCool[]; +extern const u8 TVSpotTheCuties_Text_RibbonBeauty[]; +extern const u8 TVSpotTheCuties_Text_RibbonCute[]; +extern const u8 TVSpotTheCuties_Text_RibbonSmart[]; +extern const u8 TVSpotTheCuties_Text_RibbonTough[]; +extern const u8 TVSpotTheCuties_Text_RibbonWinning[]; +extern const u8 TVSpotTheCuties_Text_RibbonVictory[]; +extern const u8 TVSpotTheCuties_Text_RibbonArtist[]; +extern const u8 TVSpotTheCuties_Text_RibbonEffort[]; +extern const u8 TVSpotTheCuties_Text_Outro[]; extern const u8 gTVPokemonNewsBattleFrontierText00[]; extern const u8 gTVPokemonNewsBattleFrontierText01[]; extern const u8 gTVPokemonNewsBattleFrontierText02[]; @@ -344,10 +344,10 @@ extern const u8 gTVInSearchOfTrainersText05[]; extern const u8 gTVInSearchOfTrainersText06[]; extern const u8 gTVInSearchOfTrainersText07[]; extern const u8 gTVInSearchOfTrainersText08[]; -extern const u8 gTVPokemonContestLiveUpdates2Text00[]; -extern const u8 gTVPokemonContestLiveUpdates2Text01[]; -extern const u8 gTVPokemonContestLiveUpdates2Text02[]; -extern const u8 gTVPokemonContestLiveUpdates2Text03[]; +extern const u8 ContestLadyShow_Text_Intro[]; +extern const u8 ContestLadyShow_Text_Won[]; +extern const u8 ContestLadyShow_Text_Lost[]; +extern const u8 ContestLadyShow_Text_LostBadly[]; extern const u8 gPokeNewsTextSlateport_Upcoming[]; extern const u8 gPokeNewsTextSlateport_Ongoing[]; extern const u8 gPokeNewsTextSlateport_Ending[]; @@ -584,9 +584,11 @@ extern const u8 SecretBase_EventScript_ShrubUseSecretPower[]; extern const u8 TrainerHill_EventScript_TrainerBattle[]; // Item Use -extern u8 BerryTree_EventScript_ItemUsePlantBerry[]; -extern u8 BerryTree_EventScript_ItemUseWailmerPail[]; -extern u8 BattleFrontier_OutsideEast_EventScript_WaterSudowoodo[]; +extern const u8 BerryTree_EventScript_ItemUsePlantBerry[]; +extern const u8 BerryTree_EventScript_ItemUseWailmerPail[]; +extern const u8 BattleFrontier_OutsideEast_EventScript_WaterSudowoodo[]; + +extern const u8 EventScript_SelectWithoutRegisteredItem[]; // overworld extern const u8 EventScript_WhiteOut[]; @@ -607,7 +609,7 @@ extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[]; extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[]; extern const u8 EventScript_TradeCenter_Chair1[]; extern const u8 EventScript_TradeCenter_Chair0[]; -extern const u8 EventScript_ConfirmLeaveTradeRoom[]; +extern const u8 EventScript_ConfirmLeaveCableClubRoom[]; extern const u8 EventScript_TerminateLink[]; #endif // GUARD_EVENT_SCRIPTS_H diff --git a/include/evolution_graphics.h b/include/evolution_graphics.h index f52105815a..61051c69a9 100644 --- a/include/evolution_graphics.h +++ b/include/evolution_graphics.h @@ -3,13 +3,11 @@ void LoadEvoSparkleSpriteAndPal(void); -u8 LaunchTask_PreEvoSparklesSet1(u16 arg0); -u8 LaunchTask_PreEvoSparklesSet2(void); -u8 LaunchTask_PostEvoSparklesSet1(void); -u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species); -u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species); -u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID); - -#define EvoGraphicsTaskEvoStop data[8] +u8 EvolutionSparkles_SpiralUpward(u16 arg0); +u8 EvolutionSparkles_ArcDown(void); +u8 EvolutionSparkles_CircleInward(void); +u8 EvolutionSparkles_SprayAndFlash(u16 species); +u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species); +u8 CycleEvolutionMonSprite(u8 preEvoSpriteID, u8 postEvoSpriteID); #endif // GUARD_EVOLUTION_GRAPHICS_H diff --git a/include/field_camera.h b/include/field_camera.h index 2bed02b20d..b245fca842 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -1,8 +1,6 @@ #ifndef GUARD_FIELD_CAMERA_H #define GUARD_FIELD_CAMERA_H -// Exported type declarations - struct CameraObject { void (*callback)(struct CameraObject *); @@ -13,18 +11,15 @@ struct CameraObject s32 y; }; -// Exported RAM declarations extern struct CameraObject gFieldCamera; extern u16 gTotalCameraPixelOffsetX; extern u16 gTotalCameraPixelOffsetY; -// Exported ROM declarations void DrawWholeMapView(void); void CurrentMapDrawMetatileAt(int x, int y); -void sub_8089C08(s16 *a0, s16 *a1); +void GetCameraOffsetWithPan(s16 *a0, s16 *a1); void DrawDoorMetatileAt(int x, int y, u16 *arr); void ResetFieldCamera(void); -void sub_8057A58(void); void ResetCameraUpdateInfo(void); u32 InitCameraUpdateCallback(u8 a); void CameraUpdate(void); diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 9b7b6ffd5c..528492d814 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -1,18 +1,24 @@ #ifndef GUARD_FIELD_EFFECT_HELPERS_H #define GUARD_FIELD_EFFECT_HELPERS_H -// Exported type declarations +// States for bobbing up and down while surfing +enum { + // No bobbing + BOB_NONE, + // Both the surf blob/mon should bob up and down + BOB_PLAYER_AND_MON, + // Only the surf blob/mon should bob up and down + // For when the player has jumped/flown off + BOB_JUST_MON, +}; -// Exported RAM declarations - -// Exported ROM declarations u8 CreateWarpArrowSprite(void); -u8 sub_8155800(u8 oldSpriteId); -void SetSurfBobState(u8 spriteId, u8 value); -void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value); -void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1); -bool8 sub_8155DA0(struct ObjectEvent *); -void sub_8155D78(struct ObjectEvent *); +u8 StartUnderwaterSurfBlobBobbing(u8 oldSpriteId); +void SetSurfBlob_BobState(u8 spriteId, u8 state); +void SetSurfBlob_DontSyncAnim(u8 spriteId, bool8 dontSync); +void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset); +bool8 UpdateRevealDisguise(struct ObjectEvent *); +void StartRevealDisguise(struct ObjectEvent *); void StartAshFieldEffect(s16, s16, u16, s16); void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8); u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*); diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 722fe44448..903fe6ef1b 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -6,7 +6,7 @@ void ClearPlayerAvatarInfo(void); void SetPlayerAvatarExtraStateTransition(u8, u8); u8 GetPlayerAvatarGenderByGraphicsId(u8); bool8 TestPlayerAvatarFlags(u8); -u8 GetPlayerAvatarObjectId(void); +u8 GetPlayerAvatarSpriteId(void); void PlayerGetDestCoords(s16 *, s16 *); u8 GetPlayerFacingDirection(void); u8 GetPlayerMovementDirection(void); @@ -34,9 +34,9 @@ u8 PlayerGetZCoord(void); void SetPlayerAvatarTransitionFlags(u16 a); void sub_808BCE8(void); void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d); -void sub_808B864(void); +void PlayerFreeze(void); void sub_808BCF4(void); -void sub_808D074(u8); +void SetSpinStartFacingDir(u8); void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr); u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8); void SetPlayerAvatarFieldMove(void); @@ -57,10 +57,10 @@ void PlayerWheelieMove(u8 direction); void PlayerPopWheelieWhileMoving(u8 direction); void PlayerUseAcroBikeOnBumpySlope(u8 direction); void PlayerEndWheelieWhileMoving(u8 direction); -void sub_808D194(void); -void sub_808D1C8(void); -bool32 sub_808D1B4(void); -bool32 sub_808D1E8(void); +void DoPlayerSpinEntrance(void); +void DoPlayerSpinExit(void); +bool32 IsPlayerSpinEntranceActive(void); +bool32 IsPlayerSpinExitActive(void); void SetPlayerInvisibility(bool8 invisible); u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y); void StartFishing(u8 rod); diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index 951bf07886..4e4725041a 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -18,8 +18,8 @@ void FieldCB_WarpExitFadeFromBlack(void); void FieldCB_WarpExitFadeFromWhite(void); bool8 FieldCB_ReturnToFieldOpenStartMenu(void); void ReturnToFieldOpenStartMenu(void); -void sub_80AF6D4(void); -void sub_80AF6F0(void); +void FieldCB_ReturnToFieldNoScript(void); +void FieldCB_ReturnToFieldNoScriptCheckMusic(void); void DoWarp(void); void DoDiveWarp(void); void DoSootopolisLegendWarp(void); @@ -35,8 +35,8 @@ void DoCableClubWarp(void); void DoContestHallWarp(void); void AnimateFlash(u8 flashLevel); void WriteBattlePyramidViewScanlineEffectBuffer(void); -void sub_80B0244(void); -void sub_80B0268(void); +void DoSpinEnterWarp(void); +void DoSpinExitWarp(void); void DoOrbEffect(void); void FadeOutOrbEffect(void); void sub_80B05B4(void); diff --git a/include/field_weather.h b/include/field_weather.h index 1af320151a..9c6a4ab7ad 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -4,6 +4,21 @@ #include "sprite.h" #include "constants/field_weather.h" +#define TAG_WEATHER_START 0x1200 +enum { + GFXTAG_CLOUD = TAG_WEATHER_START, + GFXTAG_FOG_H, + GFXTAG_ASH, + GFXTAG_FOG_D, + GFXTAG_SANDSTORM, + GFXTAG_BUBBLE, + GFXTAG_RAIN, +}; +enum { + PALTAG_WEATHER = TAG_WEATHER_START, + PALTAG_WEATHER_2 +}; + struct Weather { union @@ -31,12 +46,12 @@ struct Weather u8 gammaStepDelay; u8 gammaStepFrameCounter; u16 fadeDestColor; - /*0x6C6*/ u8 palProcessingState; - /*0x6C7*/ u8 fadeScreenCounter; - /*0x6C8*/ bool8 readyForInit; - /*0x6C9*/ u8 taskId; - /*0x6CA*/ u8 unknown_6CA; - u8 unknown_6CB; + u8 palProcessingState; + u8 fadeScreenCounter; + bool8 readyForInit; + u8 taskId; + u8 fadeInFirstFrame; + u8 fadeInTimer; u16 initStep; u16 finishStep; u8 currWeather; @@ -45,6 +60,7 @@ struct Weather bool8 weatherChangeComplete; u8 weatherPicSpritePalIndex; u8 altGammaSpritePalIndex; + // Rain u16 rainSpriteVisibleCounter; u8 curRainSpriteIndex; u8 targetRainSpriteCount; @@ -52,37 +68,41 @@ struct Weather u8 rainSpriteVisibleDelay; u8 isDownpour; u8 rainStrength; - /*0x6DE*/ u8 cloudSpritesCreated; - u8 filler_6DF[1]; + u8 cloudSpritesCreated; + // Snow u16 snowflakeVisibleCounter; - u16 unknown_6E2; + u16 snowflakeTimer; u8 snowflakeSpriteCount; u8 targetSnowflakeSpriteCount; - u16 unknown_6E6; + // Thunderstorm + u16 thunderDelay; u16 thunderCounter; - u8 unknown_6EA; - u8 unknown_6EB; - u8 unknown_6EC; - u8 thunderTriggered; + bool8 thunderAllowEnd; + bool8 thunderSkipShort; + u8 thunderShortRetries; + bool8 thunderTriggered; + // Horizontal fog u16 fogHScrollPosX; u16 fogHScrollCounter; u16 fogHScrollOffset; u8 lightenedFogSpritePals[6]; u8 lightenedFogSpritePalsCount; u8 fogHSpritesCreated; + // Ash u16 ashBaseSpritesX; - u16 unknown_6FE; + u16 ashUnused; u8 ashSpritesCreated; - u8 filler_701[3]; + // Sandstorm u32 sandstormXOffset; u32 sandstormYOffset; - u8 filler_70C[2]; + u16 sandstormUnused; u16 sandstormBaseSpritesX; u16 sandstormPosY; u16 sandstormWaveIndex; u16 sandstormWaveCounter; u8 sandstormSpritesCreated; u8 sandstormSwirlSpritesCreated; + // Diagonal fog u16 fogDBaseSpritesX; u16 fogDPosY; u16 fogDScrollXCounter; @@ -90,13 +110,13 @@ struct Weather u16 fogDXOffset; u16 fogDYOffset; u8 fogDSpritesCreated; - u8 filler_725[1]; + // Bubbles u16 bubblesDelayCounter; u16 bubblesDelayIndex; u16 bubblesCoordsIndex; u16 bubblesSpriteCount; u8 bubblesSpritesCreated; - u8 filler_72F; + u16 currBlendEVA; u16 currBlendEVB; u16 targetBlendEVA; @@ -104,12 +124,12 @@ struct Weather u8 blendUpdateCounter; u8 blendFrameCounter; u8 blendDelay; - u8 filler_73B[0x3C-0x3B]; - s16 unknown_73C; - s16 unknown_73E; - s16 unknown_740; - s16 unknown_742; - u8 filler_744[0xD-4]; + // Drought + s16 droughtBrightnessStage; + s16 droughtLastBrightnessStage; + s16 droughtTimer; + s16 droughtState; + u8 droughtUnused[9]; s8 loadDroughtPalsIndex; u8 loadDroughtPalsOffset; }; @@ -117,7 +137,7 @@ struct Weather // field_weather.c extern struct Weather gWeather; extern struct Weather *const gWeatherPtr; -extern const u16 gUnknown_083970E8[]; +extern const u16 gFogPalette[]; // field_weather_effect.c extern const u8 gWeatherFogHorizontalTiles[]; @@ -126,29 +146,26 @@ void StartWeather(void); void SetNextWeather(u8 weather); void SetCurrentAndNextWeather(u8 weather); void SetCurrentAndNextWeatherNoDelay(u8 weather); -void sub_80ABC48(s8 gammaIndex); +void ApplyWeatherGammaShiftIfIdle(s8 gammaIndex); void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay); void FadeScreen(u8 mode, s8 delay); bool8 IsWeatherNotFadingIn(void); void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex); void ApplyWeatherGammaShiftToPal(u8 paletteIndex); -u8 sub_80ABF20(void); void LoadCustomWeatherSpritePalette(const u16 *palette); void ResetDroughtWeatherPaletteLoading(void); bool8 LoadDroughtWeatherPalettes(void); -void sub_80ABFE0(s8 gammaIndex); -void sub_80ABFF0(void); -void sub_80AC01C(void); +void DroughtStateInit(void); +void DroughtStateRun(void); void Weather_SetBlendCoeffs(u8 eva, u8 evb); void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay); bool8 Weather_UpdateBlend(void); -void sub_80AC274(u8 a); u8 GetCurrentWeather(void); void SetRainStrengthFromSoundEffect(u16 soundEffect); void PlayRainStoppingSoundEffect(void); u8 IsWeatherChangeComplete(void); void SetWeatherScreenFadeOut(void); -void sub_80AC3E4(void); +void SetWeatherPalStateIdle(void); void PreservePaletteInWeather(u8 preservedPalIndex); void ResetPreservedPalettesInWeather(void); diff --git a/include/fieldmap.h b/include/fieldmap.h index 438fb4787c..5bcbe20ea6 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -20,16 +20,13 @@ void MapGridSetMetatileEntryAt(int, int, u16); void GetCameraCoords(u16*, u16*); bool8 MapGridIsImpassableAt(int, int); int GetMapBorderIdAt(int x, int y); -int CanCameraMoveInDirection(int direction); +bool32 CanCameraMoveInDirection(int direction); u16 GetBehaviorByMetatileId(u16 metatileId); void GetCameraFocusCoords(u16 *x, u16 *y); u8 MapGridGetMetatileLayerTypeAt(int x, int y); u8 MapGridGetZCoordAt(int x, int y); bool8 CameraMove(int deltaX, int deltaY); -struct MapConnection *sub_8088950(u8 direction, int x, int y); -bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection); -bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset); -void save_serialize_map(void); +void SaveMapView(void); void SetCameraFocusCoords(u16 x, u16 y); void InitMap(void); void InitMapFromSavedGame(void); diff --git a/include/gba/defines.h b/include/gba/defines.h index 2df9a3feb8..ad06aaad2d 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -1,5 +1,5 @@ -#ifndef GUARD_GBA_DEFINES -#define GUARD_GBA_DEFINES +#ifndef GUARD_GBA_DEFINES_H +#define GUARD_GBA_DEFINES_H #include @@ -50,6 +50,8 @@ #define BG_TILE_H_FLIP(n) (0x400 + (n)) #define BG_TILE_V_FLIP(n) (0x800 + (n)) +#define NUM_BACKGROUNDS 4 + // text-mode BG #define OBJ_VRAM0 (VRAM + 0x10000) #define OBJ_VRAM0_SIZE 0x8000 @@ -74,4 +76,4 @@ #define TOTAL_OBJ_TILE_COUNT 1024 -#endif // GUARD_GBA_DEFINES +#endif // GUARD_GBA_DEFINES_H diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index 2d0e1bb1cd..2ccbb18f5b 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -447,7 +447,7 @@ void SetPokemonCryPitch(s16 val); void SetPokemonCryLength(u16 val); void SetPokemonCryRelease(u8 val); void SetPokemonCryProgress(u32 val); -int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo); +bool32 IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo); void SetPokemonCryChorus(s8 val); void SetPokemonCryStereo(u32 val); void SetPokemonCryPriority(u8 val); diff --git a/include/global.berry.h b/include/global.berry.h index 8046d344e0..8d1aa369de 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -63,7 +63,7 @@ struct BerryTree { u8 berry; u8 stage:7; - u8 growthSparkle:1; + u8 stopGrowth:1; u16 minutesUntilNextStage; u8 berryYield; u8 regrowthCount:4; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index c4d7be35da..6bafa97479 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,6 +1,7 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H +#define METATILE_BEHAVIOR_MASK 0x00FF #define METATILE_COLLISION_MASK 0x0C00 #define METATILE_ID_MASK 0x03FF #define METATILE_ID_UNDEFINED 0x03FF @@ -12,7 +13,9 @@ enum { - CONNECTION_SOUTH = 1, + CONNECTION_INVALID = -1, + CONNECTION_NONE, + CONNECTION_SOUTH, CONNECTION_NORTH, CONNECTION_WEST, CONNECTION_EAST, @@ -139,19 +142,15 @@ struct MapHeader /* 0x16 */ u8 weather; /* 0x17 */ u8 mapType; /* 0x18 */ u8 filler_18[2]; - /* 0x1A */ u8 flags; + // fields correspond to the arguments in the map_header_flags macro + /* 0x1A */ bool8 allowCycling:1; + bool8 allowEscaping:1; // Escape Rope and Dig + bool8 allowRunning:1; + bool8 showMapName:5; // the last 4 bits are unused + // but the 5 bit sized bitfield is required to match /* 0x1B */ u8 battleType; }; -// Flags for gMapHeader.flags, as defined in the map_header_flags macro -#define MAP_ALLOW_CYCLING (1 << 0) -#define MAP_ALLOW_ESCAPING (1 << 1) // Escape Rope and Dig -#define MAP_ALLOW_RUNNING (1 << 2) -#define MAP_SHOW_MAP_NAME (1 << 3) -#define UNUSED_MAP_FLAGS (1 << 4 | 1 << 5 | 1 << 6 | 1 << 7) - -#define SHOW_MAP_NAME_ENABLED ((gMapHeader.flags & (MAP_SHOW_MAP_NAME | UNUSED_MAP_FLAGS)) == MAP_SHOW_MAP_NAME) - struct ObjectEvent { diff --git a/include/global.h b/include/global.h index 9788f6fdf5..53a6175a27 100644 --- a/include/global.h +++ b/include/global.h @@ -9,6 +9,8 @@ #include "constants/flags.h" #include "constants/vars.h" #include "constants/species.h" +#include "constants/berry.h" +#include "constants/expansion_branches.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); @@ -79,6 +81,14 @@ #define abs(x) (((x) < 0) ? -(x) : (x)) #endif +// Used in cases where division by 0 can occur in the retail version. +// Avoids invalid opcodes on some emulators, and the otherwise UB. +#ifdef UBFIX +#define SAFE_DIV(a, b) ((b) ? (a) / (b) : 0) +#else +#define SAFE_DIV(a, b) ((a) / (b)) +#endif + // Extracts the upper 16 bits of a 32-bit number #define HIHALF(n) (((n) & 0xFFFF0000) >> 16) @@ -104,7 +114,7 @@ #define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) // Macros for checking the joypad -#define TEST_BUTTON(field, button) ({(field) & (button);}) +#define TEST_BUTTON(field, button) ((field) & (button)) #define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button) #define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button) #define JOY_HELD_RAW(button) TEST_BUTTON(gMain.heldKeysRaw, button) @@ -118,12 +128,6 @@ f; \ }) -// Branch defines: Used by other branches to detect each other. -// Each define must be here for each of RHH's branch you have pulled. -// e.g. If you have both the battle_engine and pokemon_expansion branch, -// then both BATTLE_ENGINE and POKEMON_EXPANSION must be defined here. -#define BATTLE_ENGINE - #define ROUND_BITS_TO_BYTES(numBits)(((numBits) / 8) + (((numBits) % 8) ? 1 : 0)) #define DEX_FLAGS_NO (ROUND_BITS_TO_BYTES(NUM_SPECIES)) @@ -186,13 +190,13 @@ struct Pokedex /*0x44*/ u8 seen[DEX_FLAGS_NO]; }; -struct PokemonJumpResults +struct PokemonJumpRecords { u16 jumpsInRow; - u16 field2; + u16 unused1; // Set to 0, never read u16 excellentsInRow; - u16 field6; - u32 field8; + u16 gamesWithMaxPlayers; + u32 unused2; // Set to 0, never read u32 bestJumpScore; }; @@ -220,7 +224,7 @@ struct PyramidBag struct BerryCrush { - u16 berryCrushResults[4]; + u16 pressingSpeeds[4]; // For the record with each possible group size, 2-5 players u32 berryPowderAmount; u32 unk; }; @@ -489,7 +493,7 @@ struct SaveBlock2 /*0xB0*/ struct PlayersApprentice playerApprentice; /*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT]; /*0x1EC*/ struct BerryCrush berryCrush; - /*0x1FC*/ struct PokemonJumpResults pokeJump; + /*0x1FC*/ struct PokemonJumpRecords pokeJump; /*0x20C*/ struct BerryPickingResults berryPick; /*0x21C*/ struct RankingHall1P hallRecords1P[HALL_FACILITIES_COUNT][2][3]; // From record mixing. /*0x57C*/ struct RankingHall2P hallRecords2P[2][3]; // From record mixing. @@ -512,7 +516,7 @@ struct SecretBaseParty struct SecretBase { /*0x1A9C*/ u8 secretBaseId; - /*0x1A9D*/ u8 sbr_field_1_0:4; + /*0x1A9D*/ bool8 toRegister:4; /*0x1A9D*/ u8 gender:1; /*0x1A9D*/ u8 battledOwnerToday:1; /*0x1A9D*/ u8 registryStatus:2; @@ -521,7 +525,7 @@ struct SecretBase /*0x1AA9*/ u8 language; /*0x1AAA*/ u16 numSecretBasesReceived; /*0x1AAC*/ u8 numTimesEntered; - /*0x1AAD*/ u8 sbr_field_11; + /*0x1AAD*/ u8 unused; /*0x1AAE*/ u8 decorations[DECOR_MAX_SECRET_BASE]; /*0x1ABE*/ u8 decorationPositions[DECOR_MAX_SECRET_BASE]; /*0x1AD0*/ struct SecretBaseParty party; @@ -590,12 +594,13 @@ struct RamScript struct RamScriptData data; }; -struct EasyChatPair +// See dewford_trend.c +struct DewfordTrend { - u16 unk0_0:7; - u16 unk0_7:7; - u16 unk1_6:1; - u16 unk2; + u16 trendiness:7; + u16 maxTrendiness:7; + u16 gainingTrendiness:1; + u16 rand; u16 words[2]; }; /*size = 0x8*/ @@ -729,7 +734,7 @@ struct ContestWinner u8 contestRank; }; -struct DayCareMail +struct DaycareMail { struct MailStruct message; u8 OT_name[PLAYER_NAME_LENGTH + 1]; @@ -741,7 +746,7 @@ struct DayCareMail struct DaycareMon { struct BoxPokemon mon; - struct DayCareMail mail; + struct DaycareMail mail; u32 steps; }; @@ -752,9 +757,9 @@ struct DayCare u8 stepCounter; }; -struct RecordMixingDayCareMail +struct RecordMixingDaycareMail { - struct DayCareMail mail[DAYCARE_MON_COUNT]; + struct DaycareMail mail[DAYCARE_MON_COUNT]; u32 numDaycareMons; bool16 holdsItem[DAYCARE_MON_COUNT]; }; @@ -904,11 +909,57 @@ struct MysteryEventStruct /*0x000 0x322C*/ struct WonderNewsSaveStruct wonderNews; /*0x1c0 0x33EC*/ struct WonderCardSaveStruct wonderCard; /*0x310 0x353C*/ struct MEventBuffer_3430 buffer_310; - /*0x338 0x3564*/ u16 unk_338[4]; + /*0x338 0x3564*/ u16 questionnaireWords[NUM_QUESTIONNAIRE_WORDS]; /*0x340 0x356C*/ struct MysteryEventStruct unk_340; /*0x344 0x3570*/ u32 unk_344[2][5]; }; // 0x36C 0x3598 +// For external event data storage. The majority of these may have never been used. +// In Emerald, the only known used fields are the PokeCoupon and BoxRS ones, but hacking the distribution discs allows Emerald to receive events and set the others +struct ExternalEventData +{ + u8 unknownExternalDataFields1[7]; // if actually used, may be broken up into different fields. + u32 unknownExternalDataFields2:8; + u32 currentPokeCoupons:24; // PokéCoupons stored by Pokémon Colosseum and XD from Mt. Battle runs. Earned PokéCoupons are also added to totalEarnedPokeCoupons. Colosseum/XD caps this at 9,999,999, but will read up to 16,777,215. + u32 gotGoldPokeCouponTitleReward:1; // Master Ball from JP Colosseum Bonus Disc; for reaching 30,000 totalEarnedPokeCoupons + u32 gotSilverPokeCouponTitleReward:1; // Light Ball Pikachu from JP Colosseum Bonus Disc; for reaching 5000 totalEarnedPokeCoupons + u32 gotBronzePokeCouponTitleReward:1; // PP Max from JP Colosseum Bonus Disc; for reaching 2500 totalEarnedPokeCoupons + u32 receivedAgetoCelebi:1; // from JP Colosseum Bonus Disc + u32 unknownExternalDataFields3:4; + u32 totalEarnedPokeCoupons:24; // Used by the JP Colosseum bonus disc. Determines PokéCoupon rank to distribute rewards. Unread in International games. Colosseum/XD caps this at 9,999,999. + u8 unknownExternalDataFields4[5]; // if actually used, may be broken up into different fields. +} __attribute__((packed)); /*size = 0x14*/ + +// For external event flags. The majority of these may have never been used. +// In Emerald, Jirachi cannot normally be received, but hacking the distribution discs allows Emerald to receive Jirachi and set the flag +struct ExternalEventFlags +{ + u8 usedBoxRS:1; // Set by Pokémon Box: Ruby & Sapphire; denotes whether this save has connected to it and triggered the free False Swipe Swablu Egg giveaway. + u8 boxRSEggsUnlocked:2; // Set by Pokémon Box: Ruby & Sapphire; denotes the number of Eggs unlocked from deposits; 1 for ExtremeSpeed Zigzagoon (at 100 deposited), 2 for Pay Day Skitty (at 500 deposited), 3 for Surf Pichu (at 1499 deposited) + u8 padding:5; + u8 unknownFlag1; + u8 receivedGCNJirachi; // Both the US Colosseum Bonus Disc and PAL/AUS Pokémon Channel use this field. One cannot receive a WISHMKR Jirachi and CHANNEL Jirachi with the same savefile. + u8 unknownFlag3; + u8 unknownFlag4; + u8 unknownFlag5; + u8 unknownFlag6; + u8 unknownFlag7; + u8 unknownFlag8; + u8 unknownFlag9; + u8 unknownFlag10; + u8 unknownFlag11; + u8 unknownFlag12; + u8 unknownFlag13; + u8 unknownFlag14; + u8 unknownFlag15; + u8 unknownFlag16; + u8 unknownFlag17; + u8 unknownFlag18; + u8 unknownFlag19; + u8 unknownFlag20; + +} __attribute__((packed));/*size = 0x15*/ + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -978,11 +1029,13 @@ struct SaveBlock1 /*0x2BE0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2E20*/ u8 additionalPhrases[8]; // bitfield for 33 additional phrases in easy chat system /*0x2E28*/ OldMan oldMan; - /*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff + /*0x2e64*/ struct DewfordTrend dewfordTrends[SAVED_TRENDS_COUNT]; /*0x2e90*/ struct ContestWinner contestWinners[NUM_CONTEST_WINNERS]; // see CONTEST_WINNER_* /*0x3030*/ struct DayCare daycare; /*0x3150*/ struct LinkBattleRecords linkBattleRecords; - /*0x31A8*/ u8 giftRibbons[52]; + /*0x31A8*/ u8 giftRibbons[GIFT_RIBBONS_COUNT]; + /*0x31B3*/ struct ExternalEventData externalEventData; + /*0x31C7*/ struct ExternalEventFlags externalEventFlags; /*0x31DC*/ struct Roamer roamer; /*0x31F8*/ struct EnigmaBerry enigmaBerry; /*0x322C*/ struct MEventBuffers unk_322C; @@ -1009,14 +1062,4 @@ struct MapPosition s8 height; }; -struct TradeRoomPlayer -{ - u8 playerId; - u8 isLocalPlayer; - u8 c; - u8 facing; - struct MapPosition pos; - u16 field_C; -}; - #endif // GUARD_GLOBAL_H diff --git a/include/global.tv.h b/include/global.tv.h index 8e1a898b61..2bc7dda998 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -1,13 +1,15 @@ #ifndef GUARD_GLOBAL_TV_H #define GUARD_GLOBAL_TV_H +#include "constants/tv.h" + typedef union // size = 0x24 { // Common struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u8 pad02[26]; + /*0x02*/ u8 data[26]; /*0x1C*/ u8 srcTrainerId3Lo; /*0x1D*/ u8 srcTrainerId3Hi; /*0x1E*/ u8 srcTrainerId2Lo; @@ -22,7 +24,7 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u8 pad02[34]; + /*0x02*/ u8 data[34]; } commonInit; // Local shows @@ -40,7 +42,7 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u16 var02; + /*0x02*/ u16 species; /*0x04*/ u16 words[6]; /*0x10*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x18*/ u8 language; @@ -62,16 +64,16 @@ typedef union // size = 0x24 /*0x1C*/ u16 words[4]; } fanclubOpinions; - // TVSHOW_UNKN_SHOWTYPE_04 (dummied out) + // TVSHOW_DUMMY struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; /*0x02*/ u16 words[2]; - /*0x06*/ u16 var06; + /*0x06*/ u16 species; /*0x08*/ u8 pad_08[3]; - /*0x0b*/ u8 string_0b[12]; + /*0x0b*/ u8 name[12]; /*0x17*/ u8 language; - } unkShow04; + } dummy; // TVSHOW_NAME_RATER_SHOW struct { @@ -179,7 +181,7 @@ typedef union // size = 0x24 /*0x18*/ u8 idolNameLanguage; } fanClubSpecial; - // TVSHOW_CONTEST_LIVE_UPDATES_2 + // TVSHOW_LILYCOVE_CONTEST_LADY struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; @@ -189,7 +191,7 @@ typedef union // size = 0x24 /*0x16*/ u8 pokeblockState; /*0x17*/ u8 language; /*0x18*/ u8 pokemonNameLanguage; - } contestLiveUpdates2; + } contestLady; // Record Mixing Shows // TVSHOW_POKEMON_TODAY_CAUGHT @@ -212,8 +214,8 @@ typedef union // size = 0x24 /*0x02*/ u8 priceReduced; /*0x03*/ u8 language; /*0x04*/ u8 pad04[2]; - /*0x06*/ u16 itemIds[3]; - /*0x0C*/ u16 itemAmounts[3]; + /*0x06*/ u16 itemIds[SMARTSHOPPER_NUM_ITEMS]; + /*0x0C*/ u16 itemAmounts[SMARTSHOPPER_NUM_ITEMS]; /*0x12*/ u8 shopLocation; /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; } smartshopperShow; @@ -401,7 +403,7 @@ typedef union // size = 0x24 /*0x08*/ u16 species3; /*0x0a*/ u16 species4; /*0x0c*/ u8 language; - /*0x0d*/ u8 facility; + /*0x0d*/ u8 facilityAndMode; /*0x0e*/ u8 filler_0e[5]; /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; } frontier; diff --git a/include/graphics.h b/include/graphics.h index d5127b5250..dc020c4016 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -3874,46 +3874,43 @@ extern const u32 gBagPalette[]; extern const u32 gBerryCheckCircle_Gfx[]; //intro graphics -extern const u32 gIntro1SparkleGfx[]; -extern const u32 gIntro1FlygonGfx[]; -extern const u16 gIntro3LightningPal[]; +extern const u32 gIntroSparkle_Gfx[]; +extern const u32 gIntroFlygonSilhouette_Gfx[]; +extern const u32 gIntroLightning_Gfx[]; +extern const u16 gIntroLightning_Pal[]; extern const u32 gIntroCopyright_Gfx[]; extern const u32 gIntroCopyright_Tilemap[]; extern const u16 gIntroCopyright_Pal[16]; -extern const u32 gIntro2VolbeatGfx[]; -extern const u32 gIntro2TorchicGfx[]; -extern const u32 gIntro2ManectricGfx[]; -extern const u16 gIntro2VolbeatPal[]; -extern const u16 gIntro2TorchicPal[]; -extern const u16 gIntro2ManectricPal[]; -extern const u32 gIntro2BubblesGfx[]; -extern const u16 gIntro2BubblesPal[]; -extern const u32 gIntro3LightningGfx[]; -extern const u32 gIntro3GroudonGfx[]; -extern const u32 gIntro3GroudonTilemap[]; -extern const u32 gIntro3LegendBgGfx[]; -extern const u32 gIntro3GroudonBgTilemap[]; -extern const u32 gIntro3GroudonBgTilemap[]; -extern const u8 gIntro3BgPal[0x200]; -extern const u32 gIntro3KyogreGfx[]; -extern const u32 gIntro3KyogreTilemap[]; -extern const u32 gIntro3KyogreBgTilemap[]; -extern const u32 gIntro3CloudsGfx[]; -extern const u32 gIntro3Clouds1Tilemap[]; -extern const u32 gIntro3Clouds2Tilemap[]; -extern const u32 gIntro3Clouds3Tilemap[]; -extern const u32 gIntro3Clouds4Tilemap[]; -extern const u32 gIntro3RayquazaTilemap[]; -extern const u32 gIntro3RayquazaGfx[]; -extern const u32 gIntro3Clouds2Gfx[]; -extern const u16 gIntro1GameFreakTextFadePal[]; - -//intro/credits graphics -extern const u32 gIntro2BrendanNoTurnGfx[]; -extern const u32 gIntro2MayNoTurnGfx[]; -extern const u16 gIntro2BrendanNoTurnPal[]; -extern const u16 gIntro2FlygonPal[]; -extern const u32 gIntro2FlygonGfx[]; +extern const u32 gIntroVolbeat_Gfx[]; +extern const u16 gIntroVolbeat_Pal[]; +extern const u32 gIntroTorchic_Gfx[]; +extern const u16 gIntroTorchic_Pal[]; +extern const u32 gIntroManectric_Gfx[]; +extern const u16 gIntroManectric_Pal[]; +extern const u32 gIntroBubbles_Gfx[]; +extern const u16 gIntroBubbles_Pal[]; +extern const u32 gIntroGroudon_Gfx[]; +extern const u32 gIntroGroudon_Tilemap[]; +extern const u32 gIntroLegendBg_Gfx[]; +extern const u32 gIntroGroudonBg_Tilemap[]; +extern const u8 gIntro3Bg_Pal[0x200]; +extern const u32 gIntroKyogre_Gfx[]; +extern const u32 gIntroKyogre_Tilemap[]; +extern const u32 gIntroKyogreBg_Tilemap[]; +extern const u32 gIntroClouds_Gfx[]; +extern const u32 gIntroCloudsLeft_Tilemap[]; +extern const u32 gIntroCloudsRight_Tilemap[]; +extern const u32 gIntroCloudsSun_Tilemap[]; +extern const u32 gIntroRayquaza_Tilemap[]; +extern const u32 gIntroRayquaza_Gfx[]; +extern const u32 gIntroRayquazaClouds_Gfx[]; +extern const u32 gIntroRayquazaClouds_Tilemap[]; +extern const u16 gIntroGameFreakTextFade_Pal[]; +extern const u32 gIntroBrendan_Gfx[]; +extern const u32 gIntroMay_Gfx[]; +extern const u16 gIntroPlayer_Pal[]; +extern const u16 gIntroFlygon_Pal[]; +extern const u32 gIntroFlygon_Gfx[]; // party menu graphics extern const u32 gPartyMenuBg_Gfx[]; @@ -4015,8 +4012,6 @@ extern const u32 gPokenavCondition_Tilemap[]; extern const u16 gPokenavOptions_Tilemap[]; extern const u32 gPokenavOptions_Gfx[]; extern const u16 gPokenavOptions_Pal[]; -extern const u8 gPokenavConditionMarker_Gfx[]; -extern const u16 gPokenavConditionMarker_Pal[]; extern const u16 gPokenavLeftHeader_Pal[]; extern const u16 gPokenavHeader_Pal[]; extern const u32 gPokenavHeader_Gfx[]; @@ -4033,9 +4028,9 @@ extern const u32 gPokenavLeftHeaderBeauty_Gfx[]; extern const u32 gPokenavLeftHeaderCute_Gfx[]; extern const u32 gPokenavLeftHeaderSmart_Gfx[]; extern const u32 gPokenavLeftHeaderTough_Gfx[]; -extern const u16 gUnknown_08DDE010[]; -extern const u32 gUnknown_08DDE030[]; -extern const u32 gUnknown_08DDE12C[]; +extern const u16 gPokenavRibbonsSummaryBg_Pal[]; +extern const u32 gPokenavRibbonsSummaryBg_Gfx[]; +extern const u32 gPokenavRibbonsSummaryBg_Tilemap[]; extern const u32 gPageInfoTilemap[]; extern const u32 gUnknown_08D98CC8[]; @@ -4081,14 +4076,14 @@ extern const u8 gNamingScreenCursor_Gfx[]; extern const u8 gNamingScreenInputArrow_Gfx[]; extern const u8 gNamingScreenUnderscore_Gfx[]; -extern const u32 gUnknown_08D9BA44[]; +extern const u32 gPokeblockFeedBg_Tilemap[]; extern const u32 gConfetti_Gfx[]; extern const u32 gConfetti_Pal[]; extern const u32 gUnknown_08C093F0[]; -extern const u32 gSubstituteDollTilemap[]; -extern const u32 gSubstituteDollGfx[]; +extern const u32 gSubstituteDollBackGfx[]; +extern const u32 gSubstituteDollFrontGfx[]; extern const u32 gSubstituteDollPal[]; extern const u32 gHealthboxSinglesPlayerGfx[]; extern const u32 gHealthboxSinglesOpponentGfx[]; @@ -4201,8 +4196,8 @@ extern const u32 gBattleAnimSpriteGfx_HumanoidFoot[]; extern const u32 gBattleAnimSpriteGfx_MonsterFoot[]; extern const u32 gBattleAnimSpriteGfx_HumanoidHand[]; extern const u32 gBattleAnimSpriteGfx_NoiseLine[]; -extern const u32 gUnknown_08C2EA50[]; -extern const u32 gUnknown_08C2EA9C[]; +extern const u32 UnusedLevelupAnimationGfx[]; +extern const u32 UnusedLevelupAnimationTilemap[]; extern const u32 gBattleAnimSpriteGfx_YellowUnk[]; extern const u32 gBattleAnimSpriteGfx_RedFist[]; extern const u32 gBattleAnimSpriteGfx_SlamHit[]; @@ -5093,8 +5088,8 @@ extern const u32 gMetalShineGfx[]; extern const u32 gMetalShinePalette[]; extern const u32 gMetalShineTilemap[]; -extern const u32 gUnknown_08C20668[]; -extern const u32 gUnknown_08C20684[]; +extern const u32 gBattleAnimMaskImage_Curse[]; +extern const u32 gBattleAnimMaskTilemap_Curse[]; extern const u32 gBattleStatMask_Gfx[]; extern const u32 gBattleStatMask1_Tilemap[]; extern const u32 gBattleStatMask2_Tilemap[]; @@ -5209,12 +5204,12 @@ extern const u32 gPokedexAreaScreenAreaUnknown_Gfx[]; extern const u16 gPokedexAreaScreenAreaUnknown_Pal[]; // Pokemon Storage System -extern const u32 gPSSMenu_Gfx[]; -extern const u16 gPSSMenu_Pal[]; +extern const u32 gStorageSystemMenu_Gfx[]; +extern const u16 gStorageSystemPartyMenu_Pal[]; +extern const u32 gStorageSystemPartyMenu_Tilemap[]; extern const u32 gWallpaperIcon_Plusle[]; extern const u32 gWallpaperIcon_Cross[]; extern const u32 gWallpaperIcon_Bolt[]; -extern const u32 gUnknown_08DD36C8[]; extern const u32 gWallpaperTiles_Ribbon[]; extern const u32 gWallpaperTilemap_Ribbon[]; extern const u16 gWallpaperPalettes_Ribbon[][16]; @@ -5237,8 +5232,8 @@ extern const u16 gUnknown_08DDCF04[]; extern const u16 gTradeGba2_Pal[]; extern const u8 gTradeGba_Gfx[]; extern const u16 gTradeMenuMonBox_Tilemap[]; -extern const u8 gTradeButtons_Gfx[]; -extern const u16 gUnknown_08DDB444[]; +extern const u8 gTradeCursor_Gfx[]; +extern const u16 gTradeCursor_Pal[]; // Party menu extern const u32 gPartyMenuPokeball_Gfx[]; @@ -5258,21 +5253,21 @@ extern const u32 gRouletteMultiplier_Gfx[]; // Contest util extern const u32 gContestResults_Gfx[]; -extern const u32 gUnknown_08C19EEC[]; -extern const u32 gUnknown_08C1A000[]; -extern const u32 gUnknown_08C1A12C[]; +extern const u32 gContestResults_WinnerBanner_Tilemap[]; +extern const u32 gContestResults_Interface_Tilemap[]; +extern const u32 gContestResults_Bg_Tilemap[]; extern const u32 gContestResults_Pal[]; -extern const u16 gLinkContestResults_Tilemap[]; -extern const u16 gNormalContestResults_Tilemap[]; -extern const u16 gSuperContestResults_Tilemap[]; -extern const u16 gHyperContestResults_Tilemap[]; -extern const u16 gMasterContestResults_Tilemap[]; -extern const u16 gCoolContestResults_Tilemap[]; -extern const u16 gBeautyContestResults_Tilemap[]; -extern const u16 gCuteContestResults_Tilemap[]; -extern const u16 gSmartContestResults_Tilemap[]; -extern const u16 gToughContestResults_Tilemap[]; -extern const u16 gContestResults_Tilemap[]; +extern const u16 gContestResultsTitle_Link_Tilemap[]; +extern const u16 gContestResultsTitle_Normal_Tilemap[]; +extern const u16 gContestResultsTitle_Super_Tilemap[]; +extern const u16 gContestResultsTitle_Hyper_Tilemap[]; +extern const u16 gContestResultsTitle_Master_Tilemap[]; +extern const u16 gContestResultsTitle_Cool_Tilemap[]; +extern const u16 gContestResultsTitle_Beauty_Tilemap[]; +extern const u16 gContestResultsTitle_Cute_Tilemap[]; +extern const u16 gContestResultsTitle_Smart_Tilemap[]; +extern const u16 gContestResultsTitle_Tough_Tilemap[]; +extern const u16 gContestResultsTitle_Tilemap[]; // Trainer Card. extern const u16 gHoennTrainerCard0Star_Pal[]; @@ -5289,13 +5284,13 @@ extern const u32 gKantoTrainerCardFrontLink_Tilemap[]; extern const u32 gHoennTrainerCardBg_Tilemap[]; // Frontier Pass -extern const u32 gUnknown_08DE08C8[]; -extern const u32 gUnknown_08DE2084[]; -extern const u32 gUnknown_08DE3350[]; -extern const u32 gUnknown_08DE3374[]; -extern const u32 gUnknown_08DE3060[]; +extern const u32 gFrontierPassBg_Gfx[]; +extern const u32 gFrontierPassBg_Tilemap[]; +extern const u16 gFrontierPassBg_Pal[][16]; +extern const u32 gFrontierPassMapAndCard_Gfx[]; +extern const u32 gFrontierPassCancelButton_Tilemap[]; +extern const u32 gFrontierPassCancelButtonHighlighted_Tilemap[]; extern const u32 gFrontierPassMedals_Gfx[]; -extern const u16 gUnknown_08DE07C8[][16]; extern const u16 gFrontierPassCursor_Pal[]; extern const u16 gFrontierPassMedalsGold_Pal[]; extern const u16 gFrontierPassMedalsSilver_Pal[]; @@ -5306,10 +5301,10 @@ extern const u32 gEasyChatWindow_Gfx[]; extern const u32 gEasyChatWindow_Tilemap[]; extern const u32 gEasyChatMode_Gfx[]; extern const u16 gEasyChatMode_Pal[]; -extern const u32 gEasyChatCursor_Gfx[]; -extern const u16 gEasyChatCursor_Pal[]; -extern const u32 gEasyChatRightWindow_Gfx[]; -extern const u16 gEasyChatRightWindow_Pal[]; +extern const u32 gEasyChatRectangleCursor_Gfx[]; +extern const u16 gEasyChatRectangleCursor_Pal[]; +extern const u32 gEasyChatButtonWindow_Gfx[]; +extern const u16 gEasyChatButtonWindow_Pal[]; // Use Pokeblock extern const u32 gUsePokeblockCondition_Gfx[]; @@ -5332,9 +5327,9 @@ extern const u16 gUsePokeblockUpDown_Pal[]; extern const u16 gUsePokeblockCondition_Pal[]; // Berry Crush -extern const u32 gUnknown_08DE34B8[]; -extern const u16 gUnknown_08DE3398[]; -extern const u32 gUnknown_08DE3FD4[]; +extern const u32 gBerryCrush_Crusher_Gfx[]; +extern const u16 gBerryCrush_Crusher_Pal[]; +extern const u32 gBerryCrush_Crusher_Tilemap[]; // Pokenav extern const u32 gPokenavMessageBox_Gfx[]; @@ -5343,10 +5338,56 @@ extern const u16 gPokenavMessageBox_Pal[]; extern const u32 gPokenavOptions_Gfx[]; extern const u16 gPokenavOptions_Pal[]; +// Battle Factory Screen +extern const u8 gFrontierFactorySelectMenu_Gfx[]; +extern const u8 gFrontierFactorySelectMenu_Tilemap[]; +extern const u16 gFrontierFactorySelectMenu_Pal[]; + // Object event pals extern const u16 gObjectEventPal_Brendan[]; extern const u16 gObjectEventPal_May[]; extern const u16 gObjectEventPal_RubySapphireBrendan[]; extern const u16 gObjectEventPal_RubySapphireMay[]; +// Mail +extern const u16 gMailPalette_Orange[]; +extern const u16 gMailPalette_Harbor[]; +extern const u16 gMailPalette_Glitter[]; +extern const u16 gMailPalette_Mech[]; +extern const u16 gMailPalette_Wood[]; +extern const u16 gMailPalette_Wave[]; +extern const u16 gMailPalette_Bead[]; +extern const u16 gMailPalette_Shadow[]; +extern const u16 gMailPalette_Tropic[]; +extern const u16 gMailPalette_Dream[]; +extern const u16 gMailPalette_Fab[]; +extern const u16 gMailPalette_Retro[]; +extern const u8 gMailTiles_Orange[]; +extern const u8 gMailTilemap_Orange[]; +extern const u8 gMailTiles_Harbor[]; +extern const u8 gMailTilemap_Harbor[]; +extern const u8 gMailTiles_Glitter[]; +extern const u8 gMailTilemap_Glitter[]; +extern const u8 gMailTiles_Mech[]; +extern const u8 gMailTilemap_Mech[]; +extern const u8 gMailTiles_Wood[]; +extern const u8 gMailTilemap_Wood[]; +extern const u8 gMailTiles_Wave[]; +extern const u8 gMailTilemap_Wave[]; +extern const u8 gMailTiles_Bead[]; +extern const u8 gMailTilemap_Bead[]; +extern const u8 gMailTiles_Shadow[]; +extern const u8 gMailTilemap_Shadow[]; +extern const u8 gMailTiles_Tropic[]; +extern const u8 gMailTilemap_Tropic[]; +extern const u8 gMailTiles_Dream[]; +extern const u8 gMailTilemap_Dream[]; +extern const u8 gMailTiles_Fab[]; +extern const u8 gMailTilemap_Fab[]; +extern const u8 gMailTiles_Retro[]; +extern const u8 gMailTilemap_Retro[]; + +extern const u8 gMonMarkingsMenu_Gfx[]; +extern const u16 gMonMarkingsMenu_Pal[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/international_string_util.h b/include/international_string_util.h index cf3c5f7239..fe7e85b41f 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -4,7 +4,7 @@ #include "menu.h" #include "list_menu.h" -void sub_81DB52C(u8 *src); +void ConvertInternationalPlayerName(u8 *src); void TVShowConvertInternationalString(u8 *dest, const u8 *src, int language); int GetStringCenterAlignXOffset(int fontId, const u8 *str, int totalWidth); int GetStringRightAlignXOffset(int fontId, const u8 *str, int totalWidth); @@ -16,8 +16,8 @@ int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu); void CopyMonCategoryText(int dexNum, u8 *dest); u8 *sub_81DB494(u8 *str, int fontId, const u8 *str2, int totalStringWidth); void PadNameString(u8 *dest, u8 padChar); -void sub_81DB554(u8 *, u8); -void sub_81DB5AC(u8 *); +void ConvertInternationalPlayerNameStripChar(u8 *, u8); +void ConvertInternationalContestantName(u8 *); int sub_81DB604(u8 *); void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows); diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h index 2c7ceaf57c..bed30ffe82 100644 --- a/include/intro_credits_graphics.h +++ b/include/intro_credits_graphics.h @@ -1,30 +1,46 @@ #ifndef GUARD_INTRO_CREDITS_GRAPHICS_H #define GUARD_INTRO_CREDITS_GRAPHICS_H -extern u16 gUnknown_0203BD24; -extern s16 gUnknown_0203BD26; -extern s16 gUnknown_0203BD28; +// States for gIntroCredits_MovingSceneryState +enum { + INTROCRED_SCENERY_NORMAL, + INTROCRED_SCENERY_DESTROY, + INTROCRED_SCENERY_FROZEN, +}; -extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[]; -extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet[]; -extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[]; -extern const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[]; -extern const struct SpritePalette gIntroBikeAndFlygonPalette[]; -extern const struct CompressedSpriteSheet gUnknown_085F5334[]; -extern const struct CompressedSpriteSheet gUnknown_085F5344[]; -extern const struct CompressedSpriteSheet gUnknown_085F5354[]; -extern const struct CompressedSpriteSheet gUnknown_085F53AC[]; -extern const struct CompressedSpriteSheet gUnknown_085F53BC[]; -extern const struct SpritePalette gUnknown_085F5384[]; +// Scenes for the Credits sequence +enum { + SCENE_OCEAN_MORNING, + SCENE_OCEAN_SUNSET, + SCENE_FOREST_RIVAL_ARRIVE, + SCENE_FOREST_CATCH_RIVAL, + SCENE_CITY_NIGHT, +}; -void load_intro_part2_graphics(u8 a); -void sub_817B150(u8 a); -void sub_817B1C8(u8); -void sub_817B3A8(u8); -u8 CreateBicycleAnimationTask(u8 a, u16 b, u16 c, u16 d); -void sub_817B540(u8); -u8 intro_create_brendan_sprite(s16 a, s16 b); -u8 intro_create_may_sprite(s16 a, s16 b); -u8 intro_create_flygon_sprite(s16 a, s16 b); +extern u16 gIntroCredits_MovingSceneryVBase; +extern s16 gIntroCredits_MovingSceneryVOffset; +extern s16 gIntroCredits_MovingSceneryState; + +extern const struct CompressedSpriteSheet gSpriteSheet_IntroBrendan[]; +extern const struct CompressedSpriteSheet gSpriteSheet_IntroMay[]; +extern const struct CompressedSpriteSheet gSpriteSheet_IntroBicycle[]; +extern const struct CompressedSpriteSheet gSpriteSheet_IntroFlygon[]; +extern const struct SpritePalette gSpritePalettes_IntroPlayerFlygon[]; +extern const struct CompressedSpriteSheet gSpriteSheet_CreditsBrendan[]; +extern const struct CompressedSpriteSheet gSpriteSheet_CreditsMay[]; +extern const struct CompressedSpriteSheet gSpriteSheet_CreditsBicycle[]; +extern const struct CompressedSpriteSheet gSpriteSheet_CreditsRivalBrendan[]; +extern const struct CompressedSpriteSheet gSpriteSheet_CreditsRivalMay[]; +extern const struct SpritePalette gSpritePalettes_Credits[]; + +void LoadIntroPart2Graphics(u8 scene); +void SetIntroPart2BgCnt(u8 a); +void LoadCreditsSceneGraphics(u8); +void SetCreditsSceneBgCnt(u8); +u8 CreateBicycleBgAnimationTask(u8 a, u16 b, u16 c, u16 d); +void CycleSceneryPalette(u8); +u8 CreateIntroBrendanSprite(s16 x, s16 y); +u8 CreateIntroMaySprite(s16 x, s16 y); +u8 CreateIntroFlygonSprite(s16 x, s16 y); #endif // GUARD_INTRO_CREDITS_GRAPHICS_H diff --git a/include/item.h b/include/item.h index 87ff57bc79..90a9c2577a 100644 --- a/include/item.h +++ b/include/item.h @@ -74,5 +74,6 @@ ItemUseFunc ItemId_GetFieldFunc(u16 itemId); u8 ItemId_GetBattleUsage(u16 itemId); ItemUseFunc ItemId_GetBattleFunc(u16 itemId); u8 ItemId_GetSecondaryId(u16 itemId); +bool32 IsPinchBerryItemEffect(u16 holdEffect); #endif // GUARD_ITEM_H diff --git a/include/item_icon.h b/include/item_icon.h index af03473fb8..c93a519bb4 100644 --- a/include/item_icon.h +++ b/include/item_icon.h @@ -1,8 +1,8 @@ #ifndef GUARD_ITEM_ICON_H #define GUARD_ITEM_ICON_H -extern void *gItemIconDecompressionBuffer; -extern void *gItemIcon4x4Buffer; +extern u8 *gItemIconDecompressionBuffer; +extern u8 *gItemIcon4x4Buffer; extern const struct SpriteTemplate gItemIconSpriteTemplate; diff --git a/include/item_menu.h b/include/item_menu.h index a99272b0ca..fd576c3b5a 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -1,107 +1,111 @@ -#ifndef GUARD_item_menu_H -#define GUARD_item_menu_H +#ifndef GUARD_ITEM_MENU_H +#define GUARD_ITEM_MENU_H #include "item.h" #include "menu_helpers.h" -#define ITEMMENULOCATION_FIELD 0 -#define ITEMMENULOCATION_BATTLE 1 -#define ITEMMENULOCATION_PARTY 2 -#define ITEMMENULOCATION_SHOP 3 -#define ITEMMENULOCATION_BERRY_TREE 4 -#define ITEMMENULOCATION_BERRY_BLENDER_CRUSH 5 -#define ITEMMENULOCATION_ITEMPC 6 -#define ITEMMENULOCATION_FAVOR_LADY 7 -#define ITEMMENULOCATION_QUIZ_LADY 8 -#define ITEMMENULOCATION_APPRENTICE 9 -#define ITEMMENULOCATION_WALLY 10 -#define ITEMMENULOCATION_PCBOX 11 -#define ITEMMENULOCATION_LAST 12 +enum { + ITEMMENULOCATION_FIELD, + ITEMMENULOCATION_BATTLE, + ITEMMENULOCATION_PARTY, + ITEMMENULOCATION_SHOP, + ITEMMENULOCATION_BERRY_TREE, + ITEMMENULOCATION_BERRY_BLENDER_CRUSH, + ITEMMENULOCATION_ITEMPC, + ITEMMENULOCATION_FAVOR_LADY, + ITEMMENULOCATION_QUIZ_LADY, + ITEMMENULOCATION_APPRENTICE, + ITEMMENULOCATION_WALLY, + ITEMMENULOCATION_PCBOX, + ITEMMENULOCATION_LAST, +}; -#define ITEMMENUACTION_USE 0 -#define ITEMMENUACTION_TOSS 1 -#define ITEMMENUACTION_REGISTER 2 -#define ITEMMENUACTION_GIVE 3 -#define ITEMMENUACTION_CANCEL 4 -#define ITEMMENUACTION_BATTLE_USE 5 -#define ITEMMENUACTION_CHECK 6 -#define ITEMMENUACTION_WALK 7 -#define ITEMMENUACTION_DESELECT 8 -#define ITEMMENUACTION_CHECK_TAG 9 -#define ITEMMENUACTION_CONFIRM 10 -#define ITEMMENUACTION_SHOW 11 -#define ITEMMENUACTION_GIVE_2 12 -#define ITEMMENUACTION_CONFIRM_2 13 -#define ITEMMENUACTION_DUMMY 14 +// Window IDs for the item menu +enum { + ITEMWIN_1x1, + ITEMWIN_1x2, + ITEMWIN_2x2, + ITEMWIN_2x3, + ITEMWIN_MESSAGE, + ITEMWIN_YESNO_LOW, + ITEMWIN_YESNO_HIGH, + ITEMWIN_QUANTITY, + ITEMWIN_QUANTITY_WIDE, + ITEMWIN_MONEY, + ITEMWIN_COUNT +}; -// Exported type declarations -struct BagStruct +#define ITEMMENU_SWAP_LINE_LENGTH 8 // Swap line is 8 sprites long +enum { + ITEMMENUSPRITE_BAG, + ITEMMENUSPRITE_BALL, + ITEMMENUSPRITE_ITEM, + ITEMMENUSPRITE_ITEM_ALT, // Need two when selecting new item + ITEMMENUSPRITE_SWAP_LINE, + ITEMMENUSPRITE_COUNT = ITEMMENUSPRITE_SWAP_LINE + ITEMMENU_SWAP_LINE_LENGTH, +}; + +struct BagPosition { - void (*bagCallback)(void); + void (*exitCallback)(void); u8 location; u8 pocket; - u16 unk6; + u16 pocketSwitchArrowPos; u16 cursorPosition[POCKETS_COUNT]; u16 scrollPosition[POCKETS_COUNT]; }; -extern struct BagStruct gBagPositionStruct; +extern struct BagPosition gBagPosition; -struct BagMenuStruct +struct BagMenu { - void (*exitCallback)(void); - u8 tilemapBuffer[0x800]; - u8 spriteId[12]; - u8 windowPointers[10]; - u8 itemOriginalLocation; + void (*newScreenCallback)(void); + u8 tilemapBuffer[BG_SCREEN_SIZE]; + u8 spriteIds[ITEMMENUSPRITE_COUNT]; + u8 windowIds[ITEMWIN_COUNT]; + u8 toSwapPos; u8 pocketSwitchDisabled:4; u8 itemIconSlot:2; u8 inhibitItemDescriptionPrint:1; u8 hideCloseBagText:1; - u8 filler3[2]; + u8 unused1[2]; u8 pocketScrollArrowsTask; u8 pocketSwitchArrowsTask; const u8* contextMenuItemsPtr; u8 contextMenuItemsBuffer[4]; u8 contextMenuNumItems; u8 numItemStacks[POCKETS_COUNT]; - u8 numShownItems[6]; + u8 numShownItems[POCKETS_COUNT]; s16 graphicsLoadState; - u8 filler4[0xE]; + u8 unused2[14]; u8 pocketNameBuffer[32][32]; - u8 filler2[4]; + u8 unused3[4]; }; -extern struct BagMenuStruct *gBagMenu; - -// Exported RAM declarations - +extern struct BagMenu *gBagMenu; extern u16 gSpecialVar_ItemId; -// Exported ROM declarations void CB2_GoToItemDepositMenu(void); void FavorLadyOpenBagMenu(void); void QuizLadyOpenBagMenu(void); void ApprenticeOpenBagMenu(void); void CB2_BagMenuFromBattle(void); -void SetInitialScrollAndCursorPositions(u8 pocketId); +void UpdatePocketListPosition(u8 pocketId); void CB2_ReturnToBagMenuPocket(void); void CB2_BagMenuFromStartMenu(void); u8 GetItemListPosition(u8 pocketId); bool8 UseRegisteredKeyItemOnField(void); void CB2_GoToSellMenu(void); -void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()); +void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *exitCallback)()); void DoWallyTutorialBagMenu(void); void ResetBagScrollPositions(void); void ChooseBerryForMachine(void (*exitCallback)(void)); void CB2_ChooseBerry(void); void Task_FadeAndCloseBagMenu(u8 taskId); -void BagMenu_YesNo(u8, u8, const struct YesNoFuncTable*); -void BagMenu_InitListsMenu(u8 taskId); +void BagMenu_YesNo(u8 taskId, u8 windowType, const struct YesNoFuncTable* funcTable); void UpdatePocketItemList(u8 pocketId); void DisplayItemMessage(u8 taskId, u8 fontId, const u8 *str, void ( *callback)(u8 taskId)); void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); +void CloseItemMessage(u8 taskId); - - -#endif //GUARD_item_menu_H +#endif //GUARD_ITEM_MENU_H diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index e061149fc5..d01dcccf5f 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -1,5 +1,5 @@ -#ifndef GUARD_ITEM_MENU_ICONS -#define GUARD_ITEM_MENU_ICONS +#ifndef GUARD_ITEM_MENU_ICONS_H +#define GUARD_ITEM_MENU_ICONS_H extern const struct CompressedSpriteSheet gBagMaleSpriteSheet; extern const struct CompressedSpriteSheet gBagFemaleSpriteSheet; @@ -14,18 +14,12 @@ void ShakeBagSprite(void); void AddSwitchPocketRotatingBallSprite(s16 rotationDirection); void AddBagItemIconSprite(u16 itemId, u8 id); void RemoveBagItemIconSprite(u8 id); -void sub_80D4FAC(void); -void sub_80D4FC8(u8 arg0); -void sub_80D4FEC(u8 arg0); +void CreateItemMenuSwapLine(void); +void SetItemMenuSwapLineInvisibility(bool8 invisible); +void UpdateItemMenuSwapLinePos(u8 y); u8 CreateBerryTagSprite(u8 id, s16 x, s16 y); void FreeBerryTagSpritePalette(void); u8 CreateSpinningBerrySprite(u8 berryId, u8 x, u8 y, bool8 startAffine); u8 CreateBerryFlavorCircleSprite(s16 x); -#define TAG_BAG_GFX 100 -#define TAG_ROTATING_BALL_GFX 101 -#define TAG_BERRY_CHECK_CIRCLE_GFX 10000 -#define TAG_BERRY_PIC_TILE 0xFFFF -#define TAG_BERRY_PIC_PAL 0x7544 - -#endif // GUARD_ITEM_MENU_ICONS +#endif // GUARD_ITEM_MENU_ICONS_H diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h index 1ec327be9d..d3cce4ca83 100644 --- a/include/lilycove_lady.h +++ b/include/lilycove_lady.h @@ -12,6 +12,6 @@ void BufferContestLadyMonName(u8 *dest1, u8 *dest2); void BufferContestLadyPlayerName(u8 *dest); void BufferContestLadyLanguage(u8 *dest); void BufferContestName(u8 *dest, u8 category); -u8 sub_818E880(void); +u8 GetContestLadyPokeblockState(void); #endif //GUARD_LILYCOVE_LADY_H diff --git a/include/link.h b/include/link.h index 086bf787b4..407dbabb9c 100644 --- a/include/link.h +++ b/include/link.h @@ -56,17 +56,17 @@ #define LINKCMD_BLENDER_SEND_KEYS 0x4444 #define LINKCMD_BLENDER_SCORE_BEST 0x4523 #define LINKCMD_BLENDER_SCORE_GOOD 0x5432 -#define LINKCMD_0x5555 0x5555 -#define LINKCMD_0x5566 0x5566 +#define LINKCMD_DUMMY_1 0x5555 +#define LINKCMD_DUMMY_2 0x5566 #define LINKCMD_READY_CLOSE_LINK 0x5FFF -#define LINKCMD_0x6666 0x6666 -#define LINKCMD_0x7777 0x7777 +#define LINKCMD_SEND_EMPTY 0x6666 +#define LINKCMD_SEND_0xEE 0x7777 #define LINKCMD_BLENDER_PLAY_AGAIN 0x7779 -#define LINKCMD_0x7FFF 0x7FFF +#define LINKCMD_COUNTDOWN 0x7FFF #define LINKCMD_CONT_BLOCK 0x8888 #define LINKCMD_BLENDER_NO_BERRIES 0x9999 #define LINKCMD_BLENDER_NO_PBLOCK_SPACE 0xAAAA -#define LINKCMD_0xAAAB 0xAAAB +#define LINKCMD_SEND_ITEM 0xAAAB #define LINKCMD_READY_TO_TRADE 0xAABB #define LINKCMD_READY_FINISH_TRADE 0xABCD #define LINKCMD_INIT_BLOCK 0xBBBB @@ -76,17 +76,18 @@ #define LINKCMD_START_TRADE 0xCCDD #define LINKCMD_CONFIRM_FINISH_TRADE 0xDCBA #define LINKCMD_SET_MONS_TO_TRADE 0xDDDD -#define LINKCMD_0xDDEE 0xDDEE +#define LINKCMD_PLAYER_CANCEL_TRADE 0xDDEE #define LINKCMD_REQUEST_CANCEL 0xEEAA -#define LINKCMD_CANCEL_TRADE 0xEEBB -#define LINKCMD_0xEECC 0xEECC +#define LINKCMD_BOTH_CANCEL_TRADE 0xEEBB +#define LINKCMD_PARTNER_CANCEL_TRADE 0xEECC +#define LINKCMD_NONE 0xEFFF #define LINKTYPE_TRADE 0x1111 #define LINKTYPE_TRADE_CONNECTING 0x1122 #define LINKTYPE_TRADE_SETUP 0x1133 #define LINKTYPE_TRADE_DISCONNECTED 0x1144 #define LINKTYPE_BATTLE 0x2211 -#define LINKTYPE_0x2222 0x2222 // unused battle? +#define LINKTYPE_UNUSED_BATTLE 0x2222 // Unused, inferred from gap #define LINKTYPE_SINGLE_BATTLE 0x2233 #define LINKTYPE_DOUBLE_BATTLE 0x2244 #define LINKTYPE_MULTI_BATTLE 0x2255 @@ -98,7 +99,7 @@ #define LINKTYPE_BERRY_BLENDER_SETUP 0x4411 #define LINKTYPE_BERRY_BLENDER 0x4422 #define LINKTYPE_MYSTERY_EVENT 0x5501 -#define LINKTYPE_0x5502 0x5502 // unused? +#define LINKTYPE_UNUSED_EREADER 0x5502 // Unused, inferred from gap #define LINKTYPE_EREADER 0x5503 #define LINKTYPE_CONTEST_GMODE 0x6601 #define LINKTYPE_CONTEST_EMODE 0x6602 @@ -290,17 +291,17 @@ bool8 HandleLinkConnection(void); void SetLinkDebugValues(u32 seed, u32 flags); void SetBerryBlenderLinkCallback(void); void SetSuppressLinkErrorMessage(bool8 flag); -void sub_800B524(struct LinkPlayer *linkPlayer); +void ConvertLinkPlayerName(struct LinkPlayer *linkPlayer); u8 GetSioMultiSI(void); void ClearSavedLinkPlayers(void); -void BufferLinkErrorInfo(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06); -void sub_800B348(void); +void BufferLinkErrorInfo(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, bool8 disconnected); +void LocalLinkPlayerToBlock(void); void LinkPlayerFromBlock(u32 who); bool32 Link_AnyPartnersPlayingFRLG_JP(void); void ResetLinkPlayerCount(void); void SaveLinkPlayers(u8 a0); void SetWirelessCommType0(void); -bool32 sub_800B504(void); +bool32 IsLinkRecvQueueLengthAtLeast3(void); extern u16 gLinkPartnersHeldKeys[6]; extern u32 gLinkDebugSeed; @@ -322,7 +323,7 @@ extern bool8 gSavedLinkPlayerCount; extern u8 gSavedMultiplayerId; extern struct LinkTestBGInfo gLinkTestBGInfo; extern void (*gLinkCallback)(void); -extern bool8 gShouldAdvanceLinkState; +extern u8 gShouldAdvanceLinkState; extern u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS]; extern u8 gBlockRequestType; extern u8 gLastSendQueueCount; diff --git a/include/link_rfu.h b/include/link_rfu.h index 9476da6b7d..e1c3a6fba1 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -262,7 +262,7 @@ bool8 LinkRfu_GetNameIfSerial7F7D(struct GFtgtGname *buff1, u8 *buff2, u8 idx); s32 sub_800E87C(u8 idx); void CreateTask_RfuIdle(void); void DestroyTask_RfuIdle(void); -void sub_8011AC8(void); +void ClearRecvCommands(void); void LinkRfu_FatalError(void); bool32 sub_8011A9C(void); void sub_80104B0(void); diff --git a/include/list_menu.h b/include/list_menu.h index 0a54a069ad..1c18f3dff0 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -31,7 +31,7 @@ struct ListMenuTemplate { const struct ListMenuItem *items; void (* moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list); - void (* itemPrintFunc)(u8 windowId, s32 itemId, u8 y); + void (* itemPrintFunc)(u8 windowId, u32 itemId, u8 y); u16 totalItems; u16 maxShowed; u8 windowId; diff --git a/include/main.h b/include/main.h index 16ac31df2c..cad5c0ef9c 100644 --- a/include/main.h +++ b/include/main.h @@ -37,7 +37,7 @@ struct Main /*0x439*/ u8 oamLoadDisabled:1; /*0x439*/ u8 inBattle:1; - /*0x439*/ u8 field_439_x4:1; + /*0x439*/ u8 anyLinkBattlerHasFrontierPass:1; }; extern const u8 gGameVersion; diff --git a/include/match_call.h b/include/match_call.h index bc5f374bd1..8aebb3bc77 100644 --- a/include/match_call.h +++ b/include/match_call.h @@ -17,7 +17,7 @@ bool32 IsMatchCallTaskActive(void); void StartMatchCallFromScript(const u8 *message); void BufferPokedexRatingForMatchCall(u8 *destStr); bool32 SelectMatchCallMessage(int, u8 *); -void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId); -void sub_81971C4(u32 windowId, u32 tileOffset, u32 paletteId); +void LoadMatchCallWindowGfx(u32 windowId, u32 destOffset, u32 paletteId); +void DrawMatchCallTextBoxBorder(u32 windowId, u32 tileOffset, u32 paletteId); #endif //GUARD_MATCH_CALL_H diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index 29c66a992a..603d585dad 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -7,7 +7,7 @@ void SetMauvilleOldMan(void); u8 GetCurrentMauvilleOldMan(void); void ScrSpecial_SetMauvilleOldManObjEventGfx(void); u8 sub_81201C8(void); -void sub_8120B70(OldMan *dest); +void SanitizeMauvilleOldManForRuby(OldMan *dest); void sub_8120670(void); void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 r1, u32 r6); void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 unused, u32 a2); diff --git a/include/menu.h b/include/menu.h index c9d8e374df..07e00eb730 100644 --- a/include/menu.h +++ b/include/menu.h @@ -90,8 +90,8 @@ void *malloc_and_decompress(const void *src, u32 *sizeOut); u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode); void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); -void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8); -u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos); +void PrintMenuActionGrid(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8); +u8 InitMenuActionGrid(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos); u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY); u8 GetStartMenuWindowId(void); void ListMenuLoadStdPalAt(u8, u8); diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 4557ebbb1e..1434efcf3d 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -28,17 +28,17 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1); u8 GetLRKeysPressed(void); u8 GetLRKeysPressedAndHeld(void); -bool8 sub_8122148(u16 itemId); -bool8 itemid_80BF6D8_mail_related(u16 itemId); +bool8 IsHoldingItemAllowed(u16 itemId); +bool8 IsWritingMailAllowed(u16 itemId); bool8 MenuHelpers_LinkSomething(void); bool8 MenuHelpers_CallLinkSomething(void); -void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, u8 maxUsedSlotsCount); -void sub_812225C(u16 *scrollOffset, u16 *cursorPos, u8 maxShownItems, u8 numItems); -void sub_8122298(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3, u8 arg4); -void LoadListMenuArrowsGfx(void); -void sub_8122344(u8 *spriteIds, u8 count); -void sub_81223B0(u8 *spriteIds, u8 count); -void sub_81223FC(u8 *spriteIds, u8 count, bool8 invisible); -void sub_8122448(u8 *spriteIds, u8 count, s16 x, u16 y); +void SetItemListPerPageCount(struct ItemSlot *slots, u8 slotsCount, u8 *pageItems, u8 *totalItems, u8 maxPerPage); +void SetCursorWithinListBounds(u16 *scrollOffset, u16 *cursorPos, u8 maxShownItems, u8 totalItems); +void SetCursorScrollWithinListBounds(u16 *scrollOffset, u16 *cursorPos, u8 shownItems, u8 totalItems, u8 maxShownItems); +void LoadListMenuSwapLineGfx(void); +void CreateSwapLineSprites(u8 *spriteIds, u8 count); +void DestroySwapLineSprites(u8 *spriteIds, u8 count); +void SetSwapLineSpritesInvisibility(u8 *spriteIds, u8 count, bool8 invisible); +void UpdateSwapLineSpritesPos(u8 *spriteIds, u8 count, s16 x, u16 y); #endif //GUARD_MENU_HELPERS_H diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 987fca9fc2..c29110662b 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -15,6 +15,14 @@ #define MAX_CONDITION_SPARKLES 10 +// Window IDs for the Player PC Mailbox +enum { + MAILBOXWIN_TITLE, + MAILBOXWIN_LIST, + MAILBOXWIN_OPTIONS, + MAILBOXWIN_COUNT +}; + struct UnknownSubStruct_81D1ED4 { u16 unk0; @@ -35,12 +43,12 @@ struct ConditionGraph /*0x355*/ u8 state; }; -bool8 sub_81D1C44(u8 count); -u8 sub_81D1C84(u8 a0); -u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page); -void sub_81D1E90(struct PlayerPCItemPageStruct *page); -void sub_81D1EC0(void); -void sub_81D1D04(u8 a0); +bool8 MailboxMenu_Alloc(u8 count); +u8 MailboxMenu_AddWindow(u8 windowIdx); +u8 MailboxMenu_CreateList(struct PlayerPCItemPageStruct *page); +void MailboxMenu_AddScrollArrows(struct PlayerPCItemPageStruct *page); +void MailboxMenu_Free(void); +void MailboxMenu_RemoveWindow(u8 windowIdx); void InitConditionGraphData(struct ConditionGraph *graph); void sub_81D2108(struct ConditionGraph *graph); void SetConditionGraphIOWindows(u8 bg); diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h index d4bd9e6832..584b3e546e 100644 --- a/include/metatile_behavior.h +++ b/include/metatile_behavior.h @@ -1,5 +1,5 @@ -#ifndef GUARD_METATILE_BEHAVIOR -#define GUARD_METATILE_BEHAVIOR +#ifndef GUARD_METATILE_BEHAVIOR_H +#define GUARD_METATILE_BEHAVIOR_H bool8 MetatileBehavior_IsATile(u8); bool8 MetatileBehavior_IsEncounterTile(u8); @@ -146,4 +146,4 @@ bool8 MetatileBehavior_IsLongGrass_Duplicate(u8); bool8 MetatileBehavior_IsLongGrassSouthEdge(u8); bool8 MetatileBehavior_IsTrainerHillTimer(u8); -#endif // GUARD_METATILE_BEHAVIOR +#endif // GUARD_METATILE_BEHAVIOR_H diff --git a/include/mevent.h b/include/mevent.h index 8c0ebbad7c..4b7d39b0c3 100755 --- a/include/mevent.h +++ b/include/mevent.h @@ -21,7 +21,7 @@ struct MEventStruct_Unk1442CC u16 unk_0C; u32 unk_10; u16 unk_14; - u16 unk_16[4]; + u16 unk_16[NUM_QUESTIONNAIRE_WORDS]; struct MEventBuffer_3430_Sub unk_20; u8 unk_44; u8 unk_45[7]; @@ -36,7 +36,7 @@ struct WonderNews *GetSavedWonderNews(void); struct WonderCard *GetSavedWonderCard(void); struct MEventBuffer_3430_Sub *sav1_get_mevent_buffer_2(void); struct MysteryEventStruct *sub_801B044(void); -u16 *sub_801B058(void); +u16 *GetQuestionnaireWordsPtr(void); void DestroyWonderNews(void); bool32 sub_801B078(const struct WonderNews *src); bool32 ValidateReceivedWonderNews(void); diff --git a/include/mon_markings.h b/include/mon_markings.h index 3cb04ad48c..fda7ad5630 100644 --- a/include/mon_markings.h +++ b/include/mon_markings.h @@ -1,37 +1,35 @@ -#ifndef POKEEMERALD_MON_MARKINGS_H -#define POKEEMERALD_MON_MARKINGS_H +#ifndef MON_MARKINGS_H +#define MON_MARKINGS_H #define NUM_MON_MARKINGS 4 -struct PokemonMarkMenu +struct MonMarkingsMenu { - /*0x0000*/ u16 baseTileTag; - /*0x0002*/ u16 basePaletteTag; - /*0x0004*/ u8 markings; // bit flags - /*0x0005*/ s8 cursorPos; - /*0x0006*/ bool8 markingsArray[NUM_MON_MARKINGS]; - /*0x000A*/ u8 cursorBaseY; - /*0x000B*/ bool8 spriteSheetLoadRequired; - /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window - /*0x0014*/ struct Sprite *menuMarkingSprites[NUM_MON_MARKINGS]; - /*0x0024*/ struct Sprite *unkSprite; - /*0x0028*/ struct Sprite *menuTextSprite; - /*0x002C*/ const u8 *frameTiles; - /*0x0030*/ const u16 *framePalette; - /*0x0034*/ u8 menuWindowSpriteTiles[0x1000]; - /*0x1034*/ u8 filler1030[0x80]; - /*0x10B4*/ u8 tileLoadState; -}; // 10b8 + u16 baseTileTag; + u16 basePaletteTag; + u8 markings; // bit flags + s8 cursorPos; + bool8 markingsArray[NUM_MON_MARKINGS]; + u8 cursorBaseY; + bool8 spriteSheetLoadRequired; + struct Sprite *windowSprites[2]; // upper and lower halves of menu window + struct Sprite *markingSprites[NUM_MON_MARKINGS]; + struct Sprite *cursorSprite; + struct Sprite *textSprite; + const u8 *frameTiles; + const u16 *framePalette; + u8 windowSpriteTiles[0x1000]; + u8 unused[0x80]; + u8 tileLoadState; +}; -void sub_811F90C(struct PokemonMarkMenu *ptr); -void sub_811F918(void); -bool8 sub_811F960(void); -void sub_811FA90(void); -void sub_811FAA4(u8 markings, s16 x, s16 y); -void sub_811FAF8(void); -bool8 MonMarkingsMenuHandleInput(void); -struct Sprite *CreateMonMarkingsSpriteWithPal(u16 tileTag, u16 paletteTag, const u16 *palette); -struct Sprite *sub_811FFB4(u16 tileTag, u16 paletteTag, const u16 *palette); -void sub_8120084(u8 markings, void *dest); +void InitMonMarkingsMenu(struct MonMarkingsMenu *ptr); +void BufferMonMarkingsMenuTiles(void); +void OpenMonMarkingsMenu(u8 markings, s16 x, s16 y); +void FreeMonMarkingsMenu(void); +bool8 HandleMonMarkingsMenuInput(void); +struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, const u16 *palette); +struct Sprite *CreateMonMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette); +void UpdateMonMarkingTiles(u8 markings, void *dest); -#endif //POKEEMERALD_MON_MARKINGS_H +#endif //MON_MARKINGS_H diff --git a/include/overworld.h b/include/overworld.h index a2eac7e29a..16c75861cf 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -7,17 +7,17 @@ #define LINK_KEY_CODE_DPAD_UP 0x13 #define LINK_KEY_CODE_DPAD_LEFT 0x14 #define LINK_KEY_CODE_DPAD_RIGHT 0x15 -#define LINK_KEY_CODE_UNK_2 0x16 +#define LINK_KEY_CODE_READY 0x16 #define LINK_KEY_CODE_EXIT_ROOM 0x17 #define LINK_KEY_CODE_START_BUTTON 0x18 #define LINK_KEY_CODE_A_BUTTON 0x19 -#define LINK_KEY_CODE_UNK_4 0x1A // I'd guess this is the B button? +#define LINK_KEY_CODE_IDLE 0x1A // These two are a hack to stop user input until link stuff can be // resolved. #define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B #define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C -#define LINK_KEY_CODE_UNK_7 0x1D +#define LINK_KEY_CODE_EXIT_SEAT 0x1D #define LINK_KEY_CODE_UNK_8 0x1E #define MOVEMENT_MODE_FREE 0 @@ -143,19 +143,18 @@ void CB2_ReturnToFieldFromMultiplayer(void); void CB2_ReturnToFieldWithOpenMenu(void); void CB2_ReturnToFieldContinueScript(void); void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); -void sub_80861E8(void); +void CB2_ReturnToFieldFadeFromBlack(void); void CB2_ContinueSavedGame(void); void ResetAllMultiplayerState(void); -u32 sub_8087214(void); -bool32 sub_808727C(void); -u16 sub_8087288(void); -u16 sub_808729C(void); +u32 GetCableClubPartnersReady(void); +u16 SetInCableClubSeat(void); +u16 SetLinkWaitingForScript(void); u16 QueueExitLinkRoomKey(void); -u16 sub_80872C4(void); -bool32 sub_8087598(void); -bool32 sub_80875C8(void); -bool32 sub_8087634(void); -bool32 sub_808766C(void); +u16 SetStartedCableClubActivity(void); +bool32 Overworld_LinkRecvQueueLengthMoreThan2(void); +bool32 Overworld_RecvKeysFromLinkIsRunning(void); +bool32 Overworld_SendKeysToLinkIsRunning(void); +bool32 IsSendingKeysOverCable(void); void ClearLinkPlayerObjectEvents(void); #endif // GUARD_OVERWORLD_H diff --git a/include/palette.h b/include/palette.h index f874bcd74a..072edef563 100644 --- a/include/palette.h +++ b/include/palette.h @@ -14,6 +14,10 @@ #define PALETTE_FADE_STATUS_DONE 0 #define PALETTE_FADE_STATUS_LOADING 0xFF +#define PALETTES_BG 0x0000FFFF +#define PALETTES_OBJECTS 0xFFFF0000 +#define PALETTES_ALL (PALETTES_BG | PALETTES_OBJECTS) + enum { FAST_FADE_IN_FROM_WHITE, diff --git a/include/player_pc.h b/include/player_pc.h index 219c114401..2521eac131 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -3,69 +3,6 @@ #include "menu.h" -// local task defines -#define PAGE_INDEX data[0] -#define ITEMS_ABOVE_TOP data[1] -#define NUM_ITEMS data[1] -#define NUM_QUANTITY_ROLLER data[3] -#define NUM_PAGE_ITEMS data[4] -// not used -#define CURRENT_ITEM_STORAGE_MENU data[3] -// not used -#define SWAP_ITEM_INDEX data[8] -#define SWITCH_MODE_ACTIVE data[9] - -// this is potentially an ewram access occuring in high ewram. TODO: investigate this further. -#define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2]) - -// defined and used in the above macro -enum -{ - PC_ITEM_ID, - PC_QUANTITY -}; - -// player PC menu options -enum -{ - PLAYERPC_MENU_ITEMSTORAGE, - PLAYERPC_MENU_MAILBOX, - PLAYERPC_MENU_DECORATION, - PLAYERPC_MENU_TURNOFF -}; - -// item storage menus -enum -{ - ITEMPC_MENU_WITHDRAW, - ITEMPC_MENU_DEPOSIT, - ITEMPC_MENU_TOSS, - ITEMPC_MENU_EXIT -}; - -// mailbox mail options -enum -{ - MAILBOX_READ, - MAILBOX_MOVE_TO_BAG, - MAILBOX_GIVE, - MAILBOX_CANCEL, -}; - -// special item description handlers -enum -{ - ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7, - ITEMPC_OKAY_TO_THROW_AWAY, - ITEMPC_TOO_IMPORTANT, - ITEMPC_NO_MORE_ROOM, - ITEMPC_THREW_AWAY_ITEM, - ITEMPC_HOW_MANY_TO_TOSS, - ITEMPC_WITHDREW_THING, - ITEMPC_HOW_MANY_TO_WITHDRAW, - ITEMPC_GO_BACK_TO_PREV -}; - struct PlayerPCItemPageStruct { u16 cursorPos; @@ -73,19 +10,15 @@ struct PlayerPCItemPageStruct u8 pageItems; u8 count; u8 filler[3]; - u8 scrollIndicatorId; + u8 scrollIndicatorTaskId; }; -// Exported type declarations +extern struct PlayerPCItemPageStruct gPlayerPCItemPageInfo; -// Exported RAM declarations -extern struct PlayerPCItemPageStruct playerPCItemPageInfo; - -// Exported ROM declarations extern const struct MenuAction gMailboxMailOptions[]; void ReshowPlayerPC(u8 taskId); -void sub_816B31C(void); +void CB2_PlayerPCExitBagMenu(void); void Mailbox_ReturnToMailListAfterDeposit(void); void NewGameInitPCItems(void); diff --git a/include/pokeball.h b/include/pokeball.h index 1cdb08f94b..8ea675ce4a 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -34,7 +34,7 @@ extern const struct SpriteTemplate gBallSpriteTemplates[]; u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow); void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battler, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species); u8 CreateTradePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h); -void sub_8076918(u8 battler); +void StartHealthboxSlideIn(u8 battler); void DoHitAnimHealthboxEffect(u8 battler); void LoadBallGfx(u8 ballId); void FreeBallGfx(u8 ballId); diff --git a/include/pokeblock.h b/include/pokeblock.h index c82e99d8fb..9e01614951 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -4,8 +4,7 @@ #include "constants/berry.h" #include "constants/pokemon.h" -#define GFX_TAG_POKEBLOCK 14818 -#define GFX_TAG_POKEBLOCK_CASE 14800 +#define TAG_POKEBLOCK 14818 enum { @@ -52,7 +51,7 @@ extern s16 gPokeblockGain; void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void)); // pokeblock feed -void CB2_PreparePokeblockFeedScene(void); +void PreparePokeblockFeedScene(void); // pokeblock extern const s8 gPokeblockFlavorCompatibilityTable[NUM_NATURES * FLAVOR_COUNT]; diff --git a/include/pokemon.h b/include/pokemon.h index cd2ea68da6..1524e16f4c 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -4,6 +4,8 @@ #include "constants/pokemon.h" #include "sprite.h" +#define GET_BASE_SPECIES_ID(speciesId) (GetFormSpeciesId(speciesId, 0)) + struct PokemonSubstruct0 { u16 species; @@ -11,6 +13,7 @@ struct PokemonSubstruct0 u32 experience; u8 ppBonuses; u8 friendship; + u16 filler; }; struct PokemonSubstruct1 @@ -64,15 +67,15 @@ struct PokemonSubstruct3 /* 0x0A */ u32 victoryRibbon:1; /* 0x0A */ u32 artistRibbon:1; /* 0x0A */ u32 effortRibbon:1; - /* 0x0A */ u32 giftRibbon1:1; - /* 0x0A */ u32 giftRibbon2:1; - /* 0x0A */ u32 giftRibbon3:1; - /* 0x0A */ u32 giftRibbon4:1; - /* 0x0B */ u32 giftRibbon5:1; - /* 0x0B */ u32 giftRibbon6:1; - /* 0x0B */ u32 giftRibbon7:1; - /* 0x0B */ u32 fatefulEncounter:4; - /* 0x0B */ u32 obedient:1; + /* 0x0A */ u32 marineRibbon:1; // never distributed + /* 0x0A */ u32 landRibbon:1; // never distributed + /* 0x0A */ u32 skyRibbon:1; // never distributed + /* 0x0A */ u32 countryRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners + /* 0x0B */ u32 nationalRibbon:1; + /* 0x0B */ u32 earthRibbon:1; + /* 0x0B */ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners + /* 0x0B */ u32 unusedRibbons:4; // discarded in Gen 4 + /* 0x0B */ u32 eventLegal:1; // controls Mew & Deoxys obedience; if set, Pokémon is a fateful encounter in Gen 4+; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness. }; union PokemonSubstruct @@ -198,10 +201,7 @@ struct BaseStats /* 0x13 */ u8 growthRate; /* 0x14 */ u8 eggGroup1; /* 0x15 */ u8 eggGroup2; - /* 0x16 */ u16 abilities[2]; -#ifdef POKEMON_EXPANSION - u16 abilityHidden; -#endif + /* 0x16 */ u16 abilities[NUM_ABILITY_SLOTS]; u8 safariZoneFleeRate; u8 bodyColor : 7; u8 noFlip : 1; @@ -242,6 +242,15 @@ struct Evolution u16 targetSpecies; }; +#define NUM_UNOWN_FORMS 28 + +#define GET_UNOWN_LETTER(personality) (( \ + (((personality) & 0x03000000) >> 18) \ + | (((personality) & 0x00030000) >> 12) \ + | (((personality) & 0x00000300) >> 6) \ + | (((personality) & 0x00000003) >> 0) \ +) % NUM_UNOWN_FORMS) + extern u8 gPlayerPartyCount; extern struct Pokemon gPlayerParty[PARTY_SIZE]; extern u8 gEnemyPartyCount; @@ -253,7 +262,6 @@ extern const u8 gFacilityClassToPicIndex[]; extern const u8 gFacilityClassToTrainerClass[]; extern const struct BaseStats gBaseStats[]; extern const u8 *const gItemEffectTable[]; -extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; extern const u32 gExperienceTables[][MAX_LEVEL + 1]; extern const struct LevelUpMove *const gLevelUpLearnsets[]; extern const u8 gPPUpGetMask[]; @@ -261,7 +269,7 @@ extern const u8 gPPUpSetMask[]; extern const u8 gPPUpAddMask[]; extern const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2]; extern const u16 gLinkPlayerFacilityClasses[]; -extern const struct SpriteTemplate gUnknown_08329D98[]; +extern const struct SpriteTemplate gBattlerSpriteTemplates[]; extern const s8 gNatureStatTable[][5]; void ZeroBoxMonData(struct BoxPokemon *boxMon); @@ -281,12 +289,12 @@ void CreateBattleTowerMon2(struct Pokemon *mon, struct BattleTowerPokemon *src, void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId); void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId); void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerPokemon *dest); -void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); -bool8 sub_80688F8(u8 caseId, u8 battlerId); +void CreateEventLegalMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); +bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId); void SetDeoxysStats(void); u16 GetUnionRoomTrainerPic(void); u16 GetUnionRoomTrainerClass(void); -void CreateObedientEnemyMon(void); +void CreateEventLegalEnemyMon(void); void CalculateMonStats(struct Pokemon *mon); void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest); u8 GetLevelFromMonExp(struct Pokemon *mon); @@ -421,5 +429,7 @@ bool8 HasTwoFramesAnimation(u16 species); struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1); void sub_806F47C(u8 id); u8 *sub_806F4F8(u8 id, u8 arg1); +u16 GetFormSpeciesId(u16 speciesId, u8 formId); +u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId); #endif // GUARD_POKEMON_H diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h index c1ab8d817d..5174c8a776 100644 --- a/include/pokemon_animation.h +++ b/include/pokemon_animation.h @@ -7,4 +7,186 @@ void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId); void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet); void SetSpriteCB_MonAnimDummy(struct Sprite *sprite); +// Pokémon back animation sets +#define BACK_ANIM_NONE 0 +#define BACK_ANIM_H_VIBRATE 1 +#define BACK_ANIM_H_SLIDE 2 +#define BACK_ANIM_H_SPRING 3 +#define BACK_ANIM_H_SPRING_REPEATED 4 +#define BACK_ANIM_SHRINK_GROW 5 +#define BACK_ANIM_GROW 6 +#define BACK_ANIM_CIRCLE_COUNTERCLOCKWISE 7 +#define BACK_ANIM_H_SHAKE 8 +#define BACK_ANIM_V_SHAKE 9 +#define BACK_ANIM_V_SHAKE_H_SLIDE 10 +#define BACK_ANIM_V_STRETCH 11 +#define BACK_ANIM_H_STRETCH 12 +#define BACK_ANIM_GROW_STUTTER 13 +#define BACK_ANIM_V_SHAKE_LOW 14 +#define BACK_ANIM_TRIANGLE_DOWN 15 +#define BACK_ANIM_CONCAVE_ARC_LARGE 16 +#define BACK_ANIM_CONVEX_DOUBLE_ARC 17 +#define BACK_ANIM_CONCAVE_ARC_SMALL 18 +#define BACK_ANIM_DIP_RIGHT_SIDE 19 +#define BACK_ANIM_SHRINK_GROW_VIBRATE 20 +#define BACK_ANIM_JOLT_RIGHT 21 +#define BACK_ANIM_SHAKE_FLASH_YELLOW 22 +#define BACK_ANIM_SHAKE_GLOW_RED 23 +#define BACK_ANIM_SHAKE_GLOW_GREEN 24 +#define BACK_ANIM_SHAKE_GLOW_BLUE 25 + +// Pokémon animation function ids (for front and back) +// Each front anim uses 1, and each back anim uses a set of 3 +#define ANIM_V_SQUISH_AND_BOUNCE 0 +#define ANIM_CIRCULAR_STRETCH_TWICE 1 +#define ANIM_H_VIBRATE 2 +#define ANIM_H_SLIDE 3 +#define ANIM_V_SLIDE 4 +#define ANIM_BOUNCE_ROTATE_TO_SIDES 5 +#define ANIM_V_JUMPS_H_JUMPS 6 +#define ANIM_ROTATE_TO_SIDES 7 +#define ANIM_ROTATE_TO_SIDES_TWICE 8 +#define ANIM_GROW_VIBRATE 9 +#define ANIM_ZIGZAG_FAST 10 +#define ANIM_SWING_CONCAVE 11 +#define ANIM_SWING_CONCAVE_FAST 12 +#define ANIM_SWING_CONVEX 13 +#define ANIM_SWING_CONVEX_FAST 14 +#define ANIM_H_SHAKE 15 +#define ANIM_V_SHAKE 16 +#define ANIM_CIRCULAR_VIBRATE 17 +#define ANIM_TWIST 18 +#define ANIM_SHRINK_GROW 19 +#define ANIM_CIRCLE_C_CLOCKWISE 20 +#define ANIM_GLOW_BLACK 21 +#define ANIM_H_STRETCH 22 +#define ANIM_V_STRETCH 23 +#define ANIM_RISING_WOBBLE 24 +#define ANIM_V_SHAKE_TWICE 25 +#define ANIM_TIP_MOVE_FORWARD 26 +#define ANIM_H_PIVOT 27 +#define ANIM_V_SLIDE_WOBBLE 28 +#define ANIM_H_SLIDE_WOBBLE 29 +#define ANIM_V_JUMPS_BIG 30 +#define ANIM_SPIN_LONG 31 +#define ANIM_GLOW_ORANGE 32 +#define ANIM_GLOW_RED 33 +#define ANIM_GLOW_BLUE 34 +#define ANIM_GLOW_YELLOW 35 +#define ANIM_GLOW_PURPLE 36 +#define ANIM_BACK_AND_LUNGE 37 +#define ANIM_BACK_FLIP 38 +#define ANIM_FLICKER 39 +#define ANIM_BACK_FLIP_BIG 40 +#define ANIM_FRONT_FLIP 41 +#define ANIM_TUMBLING_FRONT_FLIP 42 +#define ANIM_FIGURE_8 43 +#define ANIM_FLASH_YELLOW 44 +#define ANIM_SWING_CONCAVE_FAST_SHORT 45 +#define ANIM_SWING_CONVEX_FAST_SHORT 46 +#define ANIM_ROTATE_UP_SLAM_DOWN 47 +#define ANIM_DEEP_V_SQUISH_AND_BOUNCE 48 +#define ANIM_H_JUMPS 49 +#define ANIM_H_JUMPS_V_STRETCH 50 +#define ANIM_ROTATE_TO_SIDES_FAST 51 +#define ANIM_ROTATE_UP_TO_SIDES 52 +#define ANIM_FLICKER_INCREASING 53 +#define ANIM_TIP_HOP_FORWARD 54 +#define ANIM_PIVOT_SHAKE 55 +#define ANIM_TIP_AND_SHAKE 56 +#define ANIM_VIBRATE_TO_CORNERS 57 +#define ANIM_GROW_IN_STAGES 58 +#define ANIM_V_SPRING 59 +#define ANIM_V_REPEATED_SPRING 60 +#define ANIM_SPRING_RISING 61 +#define ANIM_H_SPRING 62 +#define ANIM_H_REPEATED_SPRING_SLOW 63 +#define ANIM_H_SLIDE_SHRINK 64 +#define ANIM_LUNGE_GROW 65 +#define ANIM_CIRCLE_INTO_BG 66 +#define ANIM_RAPID_H_HOPS 67 +#define ANIM_FOUR_PETAL 68 +#define ANIM_V_SQUISH_AND_BOUNCE_SLOW 69 +#define ANIM_H_SLIDE_SLOW 70 +#define ANIM_V_SLIDE_SLOW 71 +#define ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL 72 +#define ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW 73 +#define ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW 74 +#define ANIM_ZIGZAG_SLOW 75 +#define ANIM_H_SHAKE_SLOW 76 +#define ANIM_V_SHAKE_SLOW 77 +#define ANIM_TWIST_TWICE 78 +#define ANIM_CIRCLE_C_CLOCKWISE_SLOW 79 +#define ANIM_V_SHAKE_TWICE_SLOW 80 +#define ANIM_V_SLIDE_WOBBLE_SMALL 81 +#define ANIM_V_JUMPS_SMALL 82 +#define ANIM_SPIN 83 +#define ANIM_TUMBLING_FRONT_FLIP_TWICE 84 +#define ANIM_DEEP_V_SQUISH_AND_BOUNCE_TWICE 85 +#define ANIM_H_JUMPS_V_STRETCH_TWICE 86 +#define ANIM_V_SHAKE_BACK 87 +#define ANIM_V_SHAKE_BACK_SLOW 88 +#define ANIM_V_SHAKE_H_SLIDE_SLOW 89 +#define ANIM_V_STRETCH_BOTH_ENDS_SLOW 90 +#define ANIM_H_STRETCH_FAR_SLOW 91 +#define ANIM_V_SHAKE_LOW_TWICE 92 +#define ANIM_H_SHAKE_FAST 93 +#define ANIM_H_SLIDE_FAST 94 +#define ANIM_H_VIBRATE_FAST 95 +#define ANIM_H_VIBRATE_FASTEST 96 +#define ANIM_V_SHAKE_BACK_FAST 97 +#define ANIM_V_SHAKE_LOW_TWICE_SLOW 98 +#define ANIM_V_SHAKE_LOW_TWICE_FAST 99 +#define ANIM_CIRCLE_C_CLOCKWISE_LONG 100 +#define ANIM_GROW_STUTTER_SLOW 101 +#define ANIM_V_SHAKE_H_SLIDE 102 +#define ANIM_V_SHAKE_H_SLIDE_FAST 103 +#define ANIM_TRIANGLE_DOWN_SLOW 104 +#define ANIM_TRIANGLE_DOWN 105 +#define ANIM_TRIANGLE_DOWN_TWICE 106 +#define ANIM_GROW 107 +#define ANIM_GROW_TWICE 108 +#define ANIM_H_SPRING_FAST 109 +#define ANIM_H_SPRING_SLOW 110 +#define ANIM_H_REPEATED_SPRING_FAST 111 +#define ANIM_H_REPEATED_SPRING 112 +#define ANIM_SHRINK_GROW_FAST 113 +#define ANIM_SHRINK_GROW_SLOW 114 +#define ANIM_V_STRETCH_BOTH_ENDS 115 +#define ANIM_V_STRETCH_BOTH_ENDS_TWICE 116 +#define ANIM_H_STRETCH_FAR_TWICE 117 +#define ANIM_H_STRETCH_FAR 118 +#define ANIM_GROW_STUTTER_TWICE 119 +#define ANIM_GROW_STUTTER 120 +#define ANIM_CONCAVE_ARC_LARGE_SLOW 121 +#define ANIM_CONCAVE_ARC_LARGE 122 +#define ANIM_CONCAVE_ARC_LARGE_TWICE 123 +#define ANIM_CONVEX_DOUBLE_ARC_SLOW 124 +#define ANIM_CONVEX_DOUBLE_ARC 125 +#define ANIM_CONVEX_DOUBLE_ARC_TWICE 126 +#define ANIM_CONCAVE_ARC_SMALL_SLOW 127 +#define ANIM_CONCAVE_ARC_SMALL 128 +#define ANIM_CONCAVE_ARC_SMALL_TWICE 129 +#define ANIM_H_DIP 130 +#define ANIM_H_DIP_FAST 131 +#define ANIM_H_DIP_TWICE 132 +#define ANIM_SHRINK_GROW_VIBRATE_FAST 133 +#define ANIM_SHRINK_GROW_VIBRATE 134 +#define ANIM_SHRINK_GROW_VIBRATE_SLOW 135 +#define ANIM_JOLT_RIGHT_FAST 136 +#define ANIM_JOLT_RIGHT 137 +#define ANIM_JOLT_RIGHT_SLOW 138 +#define ANIM_SHAKE_FLASH_YELLOW_FAST 139 +#define ANIM_SHAKE_FLASH_YELLOW 140 +#define ANIM_SHAKE_FLASH_YELLOW_SLOW 141 +#define ANIM_SHAKE_GLOW_RED_FAST 142 +#define ANIM_SHAKE_GLOW_RED 143 +#define ANIM_SHAKE_GLOW_RED_SLOW 144 +#define ANIM_SHAKE_GLOW_GREEN_FAST 145 +#define ANIM_SHAKE_GLOW_GREEN 146 +#define ANIM_SHAKE_GLOW_GREEN_SLOW 147 +#define ANIM_SHAKE_GLOW_BLUE_FAST 148 +#define ANIM_SHAKE_GLOW_BLUE 149 +#define ANIM_SHAKE_GLOW_BLUE_SLOW 150 + #endif // GUARD_POKEMON_ANIMATION_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index dbd7f2895f..c0f823bb1e 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -10,14 +10,14 @@ const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo); const u16 *GetValidMonIconPalettePtr(u16 speciesId); u16 GetIconSpecies(u16 species, u32 personality); u16 GetUnownLetterByPersonality(u32 personality); -u16 sub_80D2E84(u16 speciesId); +u16 GetIconSpeciesNoPersonality(u16 speciesId); void LoadMonIconPalettes(void); void LoadMonIconPalette(u16 species); void FreeMonIconPalettes(void); -u8 sub_80D2D78(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 extra); +u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 handleDeoxys); void FreeMonIconPalette(u16 species); void FreeAndDestroyMonIconSprite(struct Sprite *sprite); -u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra); +u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 handleDeoxys); u8 UpdateMonIconFrame(struct Sprite *sprite); void LoadMonIconPalette(u16 species); void sub_80D328C(struct Sprite *sprite); diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h index 91733b3853..3aaa4fafb3 100644 --- a/include/pokemon_jump.h +++ b/include/pokemon_jump.h @@ -3,10 +3,10 @@ #include "main.h" -void StartPokemonJump(u16 monId, MainCallback callback); +void StartPokemonJump(u16 partyId, MainCallback exitCallback); bool32 IsSpeciesAllowedInPokemonJump(u16 species); void IsPokemonJumpSpeciesInParty(void); -void ResetPokeJumpResults(void); +void ResetPokemonJumpRecords(void); void ShowPokemonJumpRecords(void); #endif // GUARD_POKEMON_JUMP_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 7b6a386780..73a7833ee4 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -2,13 +2,13 @@ #define GUARD_POKEMON_STORAGE_SYSTEM_H #define TOTAL_BOXES_COUNT 14 -#define IN_BOX_ROWS 6 -#define IN_BOX_COLUMNS 5 +#define IN_BOX_ROWS 5 // Number of rows, 6 Pokémon per row +#define IN_BOX_COLUMNS 6 // Number of columns, 5 Pokémon per column #define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMNS) -/* - ROWS -COLUMNS 0 1 2 3 4 5 +/* + COLUMNS +ROWS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 @@ -51,14 +51,13 @@ void ZeroBoxMonAt(u8 boxId, u8 boxPosition); void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst); struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition); u8 *GetBoxNamePtr(u8 boxId); -u8 GetBoxWallpaper(u8 boxId); -void SetBoxWallpaper(u8 boxId, u8 wallpaperId); -s16 sub_80D214C(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3); +s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3); bool8 CheckFreePokemonStorageSpace(void); bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition); u32 CountStorageNonEggMons(void); u32 CountAllStorageMons(void); bool32 AnyStorageMonWithMove(u16 moveId); + void ResetWaldaWallpaper(void); void SetWaldaWallpaperLockedOrUnlocked(bool32 unlocked); bool32 IsWaldaWallpaperUnlocked(void); diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 6413dcdeca..3996c8e15f 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -12,26 +12,16 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove); void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); u8 GetMoveSlotToReplace(void); -void SummaryScreen_SetUnknownTaskId(u8 taskId); -void SummaryScreen_DestroyUnknownTask(void); +void SummaryScreen_SetAnimDelayTaskId(u8 taskId); // The Pokemon Summary Screen can operate in different modes. Certain features, // such as move re-ordering, are available in the different modes. enum PokemonSummaryScreenMode { - PSS_MODE_NORMAL, - PSS_MODE_LOCK_MOVES, - PSS_MODE_BOX, - PSS_MODE_SELECT_MOVE, -}; - -enum PokemonSummaryScreenPage -{ - PSS_PAGE_INFO, - PSS_PAGE_SKILLS, - PSS_PAGE_BATTLE_MOVES, - PSS_PAGE_CONTEST_MOVES, - PSS_PAGE_COUNT, + SUMMARY_MODE_NORMAL, + SUMMARY_MODE_LOCK_MOVES, + SUMMARY_MODE_BOX, + SUMMARY_MODE_SELECT_MOVE, }; #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/recorded_battle.h b/include/recorded_battle.h index 252b25502f..5ae4ac12d5 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -3,16 +3,18 @@ extern u32 gRecordedBattleRngSeed; extern u32 gBattlePalaceMoveSelectionRngValue; -extern u8 gUnknown_0203C7B4; +extern u8 gRecordedBattleMultiplayerId; -void sub_8184DA4(u8 arg0); +#define B_RECORD_MODE_RECORDING 1 +#define B_RECORD_MODE_PLAYBACK 2 + +void RecordedBattle_Init(u8 arg0); void sub_8184E58(void); void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action); void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear); u8 RecordedBattle_GetBattlerAction(u8 battlerId); -u8 sub_81850D0(void); -u8 sub_81850DC(u8 *arg0); -void sub_81851A8(u8 *arg0); +u8 RecordedBattle_BufferNewBattlerData(u8 *dst); +void RecordedBattle_RecordAllBattlerData(u8 *data); bool32 CanCopyRecordedBattleSaveData(void); bool32 MoveRecordedBattleToSaveData(void); void PlayRecordedBattle(void (*CB2_After)(void)); @@ -20,9 +22,9 @@ u8 GetRecordedBattleFrontierFacility(void); u8 GetRecordedBattleFronterBrainSymbol(void); void RecordedBattle_SaveParties(void); u8 GetActiveBattlerLinkPlayerGender(void); -void sub_8185F84(void); -void sub_8185F90(u16 arg0); -u8 sub_8185FAC(void); +void RecordedBattle_ClearFrontierPassFlag(void); +void RecordedBattle_SetFrontierPassFlagFromHword(u16 arg0); +u8 RecordedBattle_GetFrontierPassFlag(void); u8 GetBattleSceneInRecordedBattle(void); u8 GetTextSpeedInRecordedBattle(void); void RecordedBattle_CopyBattlerMoves(void); diff --git a/include/region_map.h b/include/region_map.h index 97364abd84..02d711afa5 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -111,7 +111,7 @@ void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y); void CB2_OpenFlyMap(void); bool8 IsRegionMapZoomed(void); void TrySetPlayerIconBlink(void); -void sub_8123030(u16 color, u32 coeff); +void BlendRegionMap(u16 color, u32 coeff); void SetRegionMapDataForZoom(void); extern const struct RegionMapLocation gRegionMapEntries[]; diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h index 7c251377d5..5896164005 100644 --- a/include/reset_rtc_screen.h +++ b/include/reset_rtc_screen.h @@ -1,8 +1,8 @@ #ifndef GUARD_RESET_RTC_SCREEN_H #define GUARD_RESET_RTC_SCREEN_H -extern const struct SpritePalette gSpritePalette_RtcArrow; -extern const struct SpriteTemplate gSpriteTemplate_RtcArrow; +extern const struct SpritePalette gSpritePalette_Arrow; +extern const struct SpriteTemplate gSpriteTemplate_Arrow; void CB2_InitResetRtcScreen(void); diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h index c221352803..174fb4157f 100644 --- a/include/reshow_battle_screen.h +++ b/include/reshow_battle_screen.h @@ -1,7 +1,7 @@ #ifndef GUARD_RESHOW_BATTLE_SCREEN_H #define GUARD_RESHOW_BATTLE_SCREEN_H -void nullsub_35(void); +void ReshowBattleScreenDummy(void); void ReshowBattleScreenAfterMenu(void); #endif // GUARD_RESHOW_BATTLE_SCREEN_H diff --git a/include/save.h b/include/save.h index 18b57502b8..948530406e 100644 --- a/include/save.h +++ b/include/save.h @@ -29,6 +29,11 @@ struct SaveSectionOffsets u16 size; }; +// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer +#define SECTOR_DATA_SIZE 3968 +#define SECTOR_FOOTER_SIZE 128 +#define SECTOR_SIZE (SECTOR_DATA_SIZE + SECTOR_FOOTER_SIZE) + // Emerald changes this definition to be the sectors per slot. #define NUM_SECTORS_PER_SLOT 16 diff --git a/include/script.h b/include/script.h index f9fb09b5de..63f6f5aef9 100644 --- a/include/script.h +++ b/include/script.h @@ -26,8 +26,6 @@ u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr); void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void)); void StopScript(struct ScriptContext *ctx); bool8 RunScriptCommand(struct ScriptContext *ctx); -u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr); -const u8 *ScriptPop(struct ScriptContext *ctx); void ScriptJump(struct ScriptContext *ctx, const u8 *ptr); void ScriptCall(struct ScriptContext *ctx, const u8 *ptr); void ScriptReturn(struct ScriptContext *ctx); diff --git a/include/script_pokemon_util.h b/include/script_pokemon_util.h index 024f2579e5..a2e6915609 100644 --- a/include/script_pokemon_util.h +++ b/include/script_pokemon_util.h @@ -1,5 +1,5 @@ -#ifndef GUARD_SCRIPT_POKEMON_UTIL -#define GUARD_SCRIPT_POKEMON_UTIL +#ifndef GUARD_SCRIPT_POKEMON_UTIL_H +#define GUARD_SCRIPT_POKEMON_UTIL_H u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); u8 ScriptGiveEgg(u16); @@ -9,4 +9,4 @@ void ScriptSetMonMoveSlot(u8, u16, u8); void ReducePlayerPartyToSelectedMons(void); void HealPlayerParty(void); -#endif // GUARD_SCRIPT_POKEMON_UTIL +#endif // GUARD_SCRIPT_POKEMON_UTIL_H diff --git a/include/sound.h b/include/sound.h index 7d47b74563..25ffa2d6e4 100644 --- a/include/sound.h +++ b/include/sound.h @@ -1,6 +1,27 @@ #ifndef GUARD_SOUND_H #define GUARD_SOUND_H +enum { + FANFARE_LEVEL_UP, + FANFARE_OBTAIN_ITEM, + FANFARE_EVOLVED, + FANFARE_OBTAIN_TMHM, + FANFARE_HEAL, + FANFARE_OBTAIN_BADGE, + FANFARE_MOVE_DELETED, + FANFARE_OBTAIN_BERRY, + FANFARE_AWAKEN_LEGEND, + FANFARE_SLOTS_JACKPOT, + FANFARE_SLOTS_WIN, + FANFARE_TOO_BAD, + FANFARE_RG_POKE_FLUTE, + FANFARE_RG_OBTAIN_KEY_ITEM, + FANFARE_RG_DEX_RATING, + FANFARE_OBTAIN_B_POINTS, + FANFARE_OBTAIN_SYMBOL, + FANFARE_REGISTER_MATCH_CALL, +}; + void InitMapMusic(void); void MapMusicMain(void); void ResetMapMusic(void); diff --git a/include/strings.h b/include/strings.h index 7018f9e0d3..2357e37771 100644 --- a/include/strings.h +++ b/include/strings.h @@ -419,8 +419,8 @@ extern const u8 gText_FirmSlash[]; // item menu screen text extern const u8 gText_CloseBag[]; -extern const u8 gText_ClearTo11Var1Clear5Var2[]; -extern const u8 gText_NumberVar1Clear7Var2[]; +extern const u8 gText_NumberItem_HM[]; +extern const u8 gText_NumberItem_TMBerry[]; extern const u8 gText_xVar1[]; extern const u8 gText_ReturnToVar1[]; extern const u8 gText_SelectorArrow2[]; @@ -442,6 +442,7 @@ extern const u8 gText_CantStoreImportantItems[]; extern const u8 gText_DepositedVar2Var1s[]; extern const u8 gText_NoRoomForItems[]; extern const u8 gText_ThreeDashes[]; +extern const u8 *const gPocketNamesStringsTable[]; // party menu text extern const u8 gText_PkmnHPRestoredByVar2[]; @@ -596,7 +597,7 @@ extern const u8 gText_TooImportantToToss[]; extern const u8 gText_ConfirmTossItems[]; extern const u8 gText_MoveVar1Where[]; -extern const u8 gText_ColorLightShadowDarkGrey[]; +extern const u8 gText_ColorLightShadowDarkGray[]; extern const u8 gText_ColorBlue[]; extern const u8 gText_Friend[]; extern const u8 gText_Tristan[]; @@ -982,7 +983,8 @@ extern const u8 gText_RibbonsVar1[]; extern const u8 gText_OneDash[]; extern const u8 gText_TwoDashes[]; -extern const u8 *const gReturnToXStringsTable2[]; +extern const u8 *const gBagMenu_ReturnToStrings[]; +extern const u8 *const gPyramidBagMenu_ReturnToStrings[]; extern const u8 gText_NumPlayerLink[]; extern const u8 gText_ConfirmLinkWhenPlayersReady[]; @@ -2511,7 +2513,7 @@ extern const u8 gText_MatchCallMay_Intro1[]; extern const u8 gText_MatchCallMay_Intro2[]; // Contest Link -extern const u8 gText_ColorDarkGrey[]; +extern const u8 gText_ColorDarkGray[]; extern const u8 gText_CommunicationStandby[]; extern const u8 gText_AnnouncingResults[]; extern const u8 gText_PreliminaryResults[]; @@ -2904,7 +2906,7 @@ extern const u8 gText_CrushingResults[]; extern const u8 gText_BerryCrush2[]; extern const u8 gText_PressingSpeedRankings[]; extern const u8 gText_Var1Players[]; -extern const u8 gText_ReadyToBerryCrush[]; +extern const u8 gText_ReadyPickBerry[]; extern const u8 gText_WaitForAllChooseBerry[]; extern const u8 gText_EndedWithXUnitsPowder[]; extern const u8 gText_RecordingGameResults[]; @@ -2988,4 +2990,31 @@ extern const u8 gText_SavingDontTurnOff2[]; extern const u8 gText_BlenderMaxSpeedRecord[]; extern const u8 gText_234Players[]; +// Battle Factory Screen +extern const u8 gText_RentalPkmn2[]; +extern const u8 gText_SelectFirstPkmn[]; +extern const u8 gText_SelectSecondPkmn[]; +extern const u8 gText_SelectThirdPkmn[]; +extern const u8 gText_TheseThreePkmnOkay[]; +extern const u8 gText_CantSelectSamePkmn[]; +extern const u8 gText_Summary[]; +extern const u8 gText_Rechoose[]; +extern const u8 gText_Deselect[]; +extern const u8 gText_Rent[]; +extern const u8 gText_Others2[]; +extern const u8 gText_Yes2[]; +extern const u8 gText_Yes3[]; +extern const u8 gText_No2[]; +extern const u8 gText_No3[]; +extern const u8 gText_QuitSwapping[]; +extern const u8 gText_AcceptThisPkmn[]; +extern const u8 gText_SelectPkmnToAccept[]; +extern const u8 gText_SelectPkmnToSwap[]; +extern const u8 gText_PkmnSwap[]; +extern const u8 gText_Swap[]; +extern const u8 gText_Summary2[]; +extern const u8 gText_PkmnForSwap[]; +extern const u8 gText_SamePkmnInPartyAlready[]; +extern const u8 gText_Cancel3[]; + #endif // GUARD_STRINGS_H diff --git a/include/task.h b/include/task.h index d0ca34f7f3..9d1ee42c48 100644 --- a/include/task.h +++ b/include/task.h @@ -3,6 +3,7 @@ #define HEAD_SENTINEL 0xFE #define TAIL_SENTINEL 0xFF +#define TASK_NONE TAIL_SENTINEL #define NUM_TASKS 16 #define NUM_TASK_DATA 16 diff --git a/include/title_screen.h b/include/title_screen.h index b7100f124b..0c80db5bf0 100644 --- a/include/title_screen.h +++ b/include/title_screen.h @@ -1,7 +1,7 @@ #ifndef GUARD_TITLE_SCREEN_H #define GUARD_TITLE_SCREEN_H -extern const u16 gIntroWaterDropAlphaBlend[]; +extern const u16 gTitleScreenAlphaBlend[64]; void CB2_InitTitleScreen(void); diff --git a/include/trainer_hill.h b/include/trainer_hill.h index 94d29a7cad..acf8faccaa 100644 --- a/include/trainer_hill.h +++ b/include/trainer_hill.h @@ -66,7 +66,6 @@ void InitTrainerHillBattleStruct(void); void FreeTrainerHillBattleStruct(void); void CopyTrainerHillTrainerText(u8 which, u16 trainerId); bool8 InTrainerHillChallenge(void); -void nullsub_129(void); void PrintOnTrainerHillRecordsWindow(void); void LoadTrainerHillObjectEventTemplates(void); bool32 LoadTrainerHillFloorObjectEventScripts(void); diff --git a/include/trainer_see.h b/include/trainer_see.h index 9d88e05fac..ab808c720c 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -17,8 +17,8 @@ extern bool8 gTrainerApproachedPlayer; extern u8 gApproachingTrainerId; bool8 CheckForTrainersWantingBattle(void); -void sub_80B4578(struct ObjectEvent *var); -void EndTrainerApproach(void); +void SetBuriedTrainerMovement(struct ObjectEvent *var); +void DoTrainerApproach(void); void TryPrepareSecondApproachingTrainer(void); u8 FldEff_ExclamationMarkIcon(void); u8 FldEff_QuestionMarkIcon(void); diff --git a/include/tv.h b/include/tv.h index 4dc14143c4..30cd133265 100644 --- a/include/tv.h +++ b/include/tv.h @@ -1,14 +1,11 @@ #ifndef GUARD_TV_H #define GUARD_TV_H -#define SLOT_MACHINE 0 -#define ROULETTE 1 - extern u8 *const gTVStringVarPtrs[3]; void ClearTVShowData(void); -void sub_80EE184(void); -void sub_80EE35C(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove); +void TryPutBreakingNewsOnAir(void); +void TryPutBattleSeminarOnAir(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove); void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facility); void DoTVShow(void); void DoTVShowInSearchOfTrainers(void); @@ -23,41 +20,37 @@ void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx); void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx); u32 GetPlayerIDAsU32(void); bool8 GetPriceReduction(u8 newsKind); -void sub_80F14F8(TVShow *shows); +void SanitizeTVShowLocationsForRuby(TVShow *shows); size_t CountDigits(int value); u8 GetRibbonCount(struct Pokemon *pokemon); void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent); void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent); -void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut); +void TryPutFindThatGamerOnAir(u16 nCoinsPaidOut); void TryPutSecretBaseSecretsOnAir(void); void TryPutTodaysRivalTrainerOnAir(void); -void sub_80EDC60(const u16 *words); -void sub_80EDA80(void); +void TryPutTrendWatcherOnAir(const u16 *words); void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx); -void sub_80F0BB8(void); +void DeactivateAllNormalTVShows(void); void RecordFishingAttemptForTV(bool8 caughtFish); void IncrementDailySlotsUses(void); void IncrementDailyRouletteUses(void); void IncrementDailyWildBattles(void); void IncrementDailyBerryBlender(void); -void sub_80F1208(TVShow *shows); -void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed); -void sub_80F14F8(TVShow *shows); -size_t sub_80EF370(int value); +void SanitizeTVShowsForRuby(TVShow *shows); +void TryPutSafariFanClubOnAir(u8 nMonsCaught, u8 nPkblkUsed); bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language); void SetPokemonAnglerSpecies(u16 species); void UpdateTVShowsPerDay(u16 days); -void PutPokemonTodayCaughtOnAir(void); -void TV_PutSecretBaseVisitOnTheAir(void); +void TryPutPokemonTodayOnAir(void); +void TryPutSecretBaseVisitOnAir(void); void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent); void BravoTrainerPokemonProfile_BeforeInterview1(u16 move); void InterviewBefore(void); void InterviewAfter(void); void UpdateTVScreensOnMap(int, int); -void TV_PrintIntToStringVar(u8 varIdx, int value); -void SaveRecordedItemPurchasesForTVShow(void); +void ConvertIntToDecimalString(u8 varIdx, int value); +void TryPutSmartShopperOnAir(void); bool8 ShouldAirFrontierTVShow(void); -void sub_80EE8C8(u16 winStreak, u8 facilityAndMode); void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace); void ContestLiveUpdates_Init(u8 round1Placing); void ContestLiveUpdates_SetRound2Placing(u8 round2Placing); @@ -65,5 +58,8 @@ void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag); void ContestLiveUpdates_SetWinnerMoveUsed(u16 move); void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser); void ResetGabbyAndTy(void); +u8 CheckForPlayersHouseNews(void); +bool8 IsGabbyAndTyShowOnTheAir(void); +void TryPutTrainerFanClubOnAir(void); #endif //GUARD_TV_H diff --git a/ld_script.txt b/ld_script.txt index 091b6e693c..f12f513eb6 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -213,7 +213,8 @@ SECTIONS { src/decoration.o(.text); src/slot_machine.o(.text); src/contest_painting.o(.text); - src/battle_ai_script_commands.o(.text); + src/battle_ai_main.o(.text); + src/battle_ai_util.o(.text); src/trader.o(.text); src/starter_choose.o(.text); src/wallclock.o(.text); @@ -345,7 +346,6 @@ SECTIONS { data/battle_scripts_1.o(script_data); data/field_effect_scripts.o(script_data); data/battle_scripts_2.o(script_data); - data/battle_ai_scripts.o(script_data); data/contest_ai_scripts.o(script_data); data/mystery_event_script_cmd_table.o(script_data); } =0 @@ -584,11 +584,11 @@ SECTIONS { src/heal_location.o(.rodata); src/region_map.o(.rodata); src/image_processing_effects.o(.rodata); - data/image_processing_effects.o(.rodata); src/decoration.o(.rodata); src/slot_machine.o(.rodata); src/contest_painting.o(.rodata); - src/battle_ai_script_commands.o(.rodata); + src/battle_ai_main.o(.rodata); + src/battle_ai_util.o(.rodata); src/trader.o(.rodata); src/starter_choose.o(.rodata); src/wallclock.o(.rodata); diff --git a/ld_script_modern.txt b/ld_script_modern.txt index d12d994564..59d032bb25 100644 --- a/ld_script_modern.txt +++ b/ld_script_modern.txt @@ -27,6 +27,8 @@ SECTIONS { /* .bss starts at 0x3000000 */ src/*.o(.bss); gflib/*.o(.bss); + *libc.a:*.o(.bss*); + *libnosys.a:*.o(.bss*); /* .bss.code starts at 0x3001AA8 */ src/m4a.o(.bss.code); @@ -34,7 +36,8 @@ SECTIONS { /* COMMON starts at 0x30022A8 */ src/*.o(COMMON); gflib/*.o(COMMON); - *libc.a:sbrkr.o(COMMON); + *libc.a:*.o(COMMON); + *libnosys.a:*.o(COMMON); end = .; . = 0x8000; } @@ -44,10 +47,10 @@ SECTIONS { .text : ALIGN(4) { - src/crt0.o(.text); - src/*.o(.text); - gflib/*.o(.text); - asm/*.o(.text); + src/crt0.o(.text*); + src/*.o(.text*); + gflib/*.o(.text*); + asm/*.o(.text*); } =0 script_data : @@ -73,6 +76,7 @@ SECTIONS { *libagbsyscall.a:*.o(.text*); *libgcc.a:*.o(.text*); *libc.a:*.o(.text*); + *libnosys.a:*.o(.text*); src/libisagbprn.o(.text); } =0 diff --git a/libagbsyscall/Makefile b/libagbsyscall/Makefile index 911cdb237c..78f246af40 100644 --- a/libagbsyscall/Makefile +++ b/libagbsyscall/Makefile @@ -1,29 +1,28 @@ TOOLCHAIN := $(DEVKITARM) COMPARE ?= 0 -ifeq ($(CC),) -HOSTCC := gcc -else -HOSTCC := $(CC) -endif +# don't use dkP's base_tools anymore +# because the redefinition of $(CC) conflicts +# with when we want to use $(CC) to preprocess files +# thus, manually create the variables for the bin +# files, or use arm-none-eabi binaries on the system +# if dkP is not installed on this system -ifeq ($(CXX),) -HOSTCXX := g++ -else -HOSTCXX := $(CXX) -endif - -ifneq (,$(wildcard $(TOOLCHAIN)/base_tools)) -include $(TOOLCHAIN)/base_tools -else +ifneq (,$(TOOLCHAIN)) +ifneq ($(wildcard $(TOOLCHAIN)/bin),) export PATH := $(TOOLCHAIN)/bin:$(PATH) +endif +endif + PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy -export CC := $(PREFIX)gcc -export AS := $(PREFIX)as -endif -export CPP := $(PREFIX)cpp -export LD := $(PREFIX)ld +AS := $(PREFIX)as +LD := $(PREFIX)ld +AR := $(PREFIX)ar + +# note: the makefile must be set up so MODERNCC is never called +# if MODERN=0 +MODERNCC := $(PREFIX)gcc ifeq ($(OS),Windows_NT) EXE := .exe @@ -31,6 +30,23 @@ else EXE := endif +# use arm-none-eabi-cpp for macOS +# as macOS's default compiler is clang +# and clang's preprocessor will warn on \u +# when preprocessing asm files, expecting a unicode literal +# we can't unconditionally use arm-none-eabi-cpp +# as installations which install binutils-arm-none-eabi +# don't come with it +ifneq ($(MODERN),1) + ifeq ($(shell uname -s),Darwin) + CPP := $(PREFIX)cpp + else + CPP := $(CC) -E + endif +else + CPP := $(PREFIX)cpp +endif + ASFLAGS := -mcpu=arm7tdmi ARFLAGS := rc diff --git a/make_tools.mk b/make_tools.mk new file mode 100644 index 0000000000..697897a693 --- /dev/null +++ b/make_tools.mk @@ -0,0 +1,11 @@ + +MAKEFLAGS += --no-print-directory + +TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*)) + +.PHONY: all $(TOOLDIRS) + +all: $(TOOLDIRS) + +$(TOOLDIRS): + @$(MAKE) -C $@ diff --git a/map_data_rules.mk b/map_data_rules.mk index 0203b383d0..626cd47240 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -9,9 +9,9 @@ MAP_EVENTS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/events.inc,$(MAP_DIRS)) MAP_HEADERS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/header.inc,$(MAP_DIRS)) $(DATA_ASM_BUILDDIR)/maps.o: $(DATA_ASM_SUBDIR)/maps.s $(LAYOUTS_DIR)/layouts.inc $(LAYOUTS_DIR)/layouts_table.inc $(MAPS_DIR)/headers.inc $(MAPS_DIR)/groups.inc $(MAPS_DIR)/connections.inc $(MAP_CONNECTIONS) $(MAP_HEADERS) - $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ $(DATA_ASM_BUILDDIR)/map_events.o: $(DATA_ASM_SUBDIR)/map_events.s $(MAPS_DIR)/events.inc $(MAP_EVENTS) - $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ $(MAPS_DIR)/%/header.inc: $(MAPS_DIR)/%/map.json $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 3eb3731a8f..5654856766 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -1,781 +1,781 @@ .align 2 -gCryTable:: @ 869DCF4 - cry Cry_Bulbasaur @ 869DCF4 - cry Cry_Ivysaur @ 869DD00 - cry Cry_Venusaur @ 869DD0C - cry Cry_Charmander @ 869DD18 - cry Cry_Charmeleon @ 869DD24 - cry Cry_Charizard @ 869DD30 - cry Cry_Squirtle @ 869DD3C - cry Cry_Wartortle @ 869DD48 - cry Cry_Blastoise @ 869DD54 - cry Cry_Caterpie @ 869DD60 - cry Cry_Metapod @ 869DD6C - cry Cry_Butterfree @ 869DD78 - cry Cry_Weedle @ 869DD84 - cry Cry_Kakuna @ 869DD90 - cry Cry_Beedrill @ 869DD9C - cry Cry_Pidgey @ 869DDA8 - cry Cry_Pidgeotto @ 869DDB4 - cry Cry_Pidgeot @ 869DDC0 - cry Cry_Rattata @ 869DDCC - cry Cry_Raticate @ 869DDD8 - cry Cry_Spearow @ 869DDE4 - cry Cry_Fearow @ 869DDF0 - cry Cry_Ekans @ 869DDFC - cry Cry_Arbok @ 869DE08 - cry Cry_Pikachu @ 869DE14 - cry Cry_Raichu @ 869DE20 - cry Cry_Sandshrew @ 869DE2C - cry Cry_Sandslash @ 869DE38 - cry Cry_NidoranF @ 869DE44 - cry Cry_Nidorina @ 869DE50 - cry Cry_Nidoqueen @ 869DE5C - cry Cry_NidoranM @ 869DE68 - cry Cry_Nidorino @ 869DE74 - cry Cry_Nidoking @ 869DE80 - cry Cry_Clefairy @ 869DE8C - cry Cry_Clefable @ 869DE98 - cry Cry_Vulpix @ 869DEA4 - cry Cry_Ninetales @ 869DEB0 - cry Cry_Jigglypuff @ 869DEBC - cry Cry_Wigglytuff @ 869DEC8 - cry Cry_Zubat @ 869DED4 - cry Cry_Golbat @ 869DEE0 - cry Cry_Oddish @ 869DEEC - cry Cry_Gloom @ 869DEF8 - cry Cry_Vileplume @ 869DF04 - cry Cry_Paras @ 869DF10 - cry Cry_Parasect @ 869DF1C - cry Cry_Venonat @ 869DF28 - cry Cry_Venomoth @ 869DF34 - cry Cry_Diglett @ 869DF40 - cry Cry_Dugtrio @ 869DF4C - cry Cry_Meowth @ 869DF58 - cry Cry_Persian @ 869DF64 - cry Cry_Psyduck @ 869DF70 - cry Cry_Golduck @ 869DF7C - cry Cry_Mankey @ 869DF88 - cry Cry_Primeape @ 869DF94 - cry Cry_Growlithe @ 869DFA0 - cry Cry_Arcanine @ 869DFAC - cry Cry_Poliwag @ 869DFB8 - cry Cry_Poliwhirl @ 869DFC4 - cry Cry_Poliwrath @ 869DFD0 - cry Cry_Abra @ 869DFDC - cry Cry_Kadabra @ 869DFE8 - cry Cry_Alakazam @ 869DFF4 - cry Cry_Machop @ 869E000 - cry Cry_Machoke @ 869E00C - cry Cry_Machamp @ 869E018 - cry Cry_Bellsprout @ 869E024 - cry Cry_Weepinbell @ 869E030 - cry Cry_Victreebel @ 869E03C - cry Cry_Tentacool @ 869E048 - cry Cry_Tentacruel @ 869E054 - cry Cry_Geodude @ 869E060 - cry Cry_Graveler @ 869E06C - cry Cry_Golem @ 869E078 - cry Cry_Ponyta @ 869E084 - cry Cry_Rapidash @ 869E090 - cry Cry_Slowpoke @ 869E09C - cry Cry_Slowbro @ 869E0A8 - cry Cry_Magnemite @ 869E0B4 - cry Cry_Magneton @ 869E0C0 - cry Cry_Farfetchd @ 869E0CC - cry Cry_Doduo @ 869E0D8 - cry Cry_Dodrio @ 869E0E4 - cry Cry_Seel @ 869E0F0 - cry Cry_Dewgong @ 869E0FC - cry Cry_Grimer @ 869E108 - cry Cry_Muk @ 869E114 - cry Cry_Shellder @ 869E120 - cry Cry_Cloyster @ 869E12C - cry Cry_Gastly @ 869E138 - cry Cry_Haunter @ 869E144 - cry Cry_Gengar @ 869E150 - cry Cry_Onix @ 869E15C - cry Cry_Drowzee @ 869E168 - cry Cry_Hypno @ 869E174 - cry Cry_Krabby @ 869E180 - cry Cry_Kingler @ 869E18C - cry Cry_Voltorb @ 869E198 - cry Cry_Electrode @ 869E1A4 - cry Cry_Exeggcute @ 869E1B0 - cry Cry_Exeggutor @ 869E1BC - cry Cry_Cubone @ 869E1C8 - cry Cry_Marowak @ 869E1D4 - cry Cry_Hitmonlee @ 869E1E0 - cry Cry_Hitmonchan @ 869E1EC - cry Cry_Lickitung @ 869E1F8 - cry Cry_Koffing @ 869E204 - cry Cry_Weezing @ 869E210 - cry Cry_Rhyhorn @ 869E21C - cry Cry_Rhydon @ 869E228 - cry Cry_Chansey @ 869E234 - cry Cry_Tangela @ 869E240 - cry Cry_Kangaskhan @ 869E24C - cry Cry_Horsea @ 869E258 - cry Cry_Seadra @ 869E264 - cry Cry_Goldeen @ 869E270 - cry Cry_Seaking @ 869E27C - cry Cry_Staryu @ 869E288 - cry Cry_Starmie @ 869E294 - cry Cry_MrMime @ 869E2A0 - cry Cry_Scyther @ 869E2AC - cry Cry_Jynx @ 869E2B8 - cry Cry_Electabuzz @ 869E2C4 - cry Cry_Magmar @ 869E2D0 - cry Cry_Pinsir @ 869E2DC - cry Cry_Tauros @ 869E2E8 - cry Cry_Magikarp @ 869E2F4 - cry Cry_Gyarados @ 869E300 - cry Cry_Lapras @ 869E30C - cry Cry_Ditto @ 869E318 - cry Cry_Eevee @ 869E324 - cry Cry_Vaporeon @ 869E330 - cry Cry_Jolteon @ 869E33C - cry Cry_Flareon @ 869E348 - cry Cry_Porygon @ 869E354 - cry Cry_Omanyte @ 869E360 - cry Cry_Omastar @ 869E36C - cry Cry_Kabuto @ 869E378 - cry Cry_Kabutops @ 869E384 - cry Cry_Aerodactyl @ 869E390 - cry Cry_Snorlax @ 869E39C - cry Cry_Articuno @ 869E3A8 - cry Cry_Zapdos @ 869E3B4 - cry Cry_Moltres @ 869E3C0 - cry Cry_Dratini @ 869E3CC - cry Cry_Dragonair @ 869E3D8 - cry Cry_Dragonite @ 869E3E4 - cry Cry_Mewtwo @ 869E3F0 - cry Cry_Mew @ 869E3FC - cry Cry_Chikorita @ 869E408 - cry Cry_Bayleef @ 869E414 - cry Cry_Meganium @ 869E420 - cry Cry_Cyndaquil @ 869E42C - cry Cry_Quilava @ 869E438 - cry Cry_Typhlosion @ 869E444 - cry Cry_Totodile @ 869E450 - cry Cry_Croconaw @ 869E45C - cry Cry_Feraligatr @ 869E468 - cry Cry_Sentret @ 869E474 - cry Cry_Furret @ 869E480 - cry Cry_Hoothoot @ 869E48C - cry Cry_Noctowl @ 869E498 - cry Cry_Ledyba @ 869E4A4 - cry Cry_Ledian @ 869E4B0 - cry Cry_Spinarak @ 869E4BC - cry Cry_Ariados @ 869E4C8 - cry Cry_Crobat @ 869E4D4 - cry Cry_Chinchou @ 869E4E0 - cry Cry_Lanturn @ 869E4EC - cry Cry_Pichu @ 869E4F8 - cry Cry_Cleffa @ 869E504 - cry Cry_Igglybuff @ 869E510 - cry Cry_Togepi @ 869E51C - cry Cry_Togetic @ 869E528 - cry Cry_Natu @ 869E534 - cry Cry_Xatu @ 869E540 - cry Cry_Mareep @ 869E54C - cry Cry_Flaaffy @ 869E558 - cry Cry_Ampharos @ 869E564 - cry Cry_Bellossom @ 869E570 - cry Cry_Marill @ 869E57C - cry Cry_Azumarill @ 869E588 - cry Cry_Sudowoodo @ 869E594 - cry Cry_Politoed @ 869E5A0 - cry Cry_Hoppip @ 869E5AC - cry Cry_Skiploom @ 869E5B8 - cry Cry_Jumpluff @ 869E5C4 - cry Cry_Aipom @ 869E5D0 - cry Cry_Sunkern @ 869E5DC - cry Cry_Sunflora @ 869E5E8 - cry Cry_Yanma @ 869E5F4 - cry Cry_Wooper @ 869E600 - cry Cry_Quagsire @ 869E60C - cry Cry_Espeon @ 869E618 - cry Cry_Umbreon @ 869E624 - cry Cry_Murkrow @ 869E630 - cry Cry_Slowking @ 869E63C - cry Cry_Misdreavus @ 869E648 - cry Cry_Unown @ 869E654 - cry Cry_Wobbuffet @ 869E660 - cry Cry_Girafarig @ 869E66C - cry Cry_Pineco @ 869E678 - cry Cry_Forretress @ 869E684 - cry Cry_Dunsparce @ 869E690 - cry Cry_Gligar @ 869E69C - cry Cry_Steelix @ 869E6A8 - cry Cry_Snubbull @ 869E6B4 - cry Cry_Granbull @ 869E6C0 - cry Cry_Qwilfish @ 869E6CC - cry Cry_Scizor @ 869E6D8 - cry Cry_Shuckle @ 869E6E4 - cry Cry_Heracross @ 869E6F0 - cry Cry_Sneasel @ 869E6FC - cry Cry_Teddiursa @ 869E708 - cry Cry_Ursaring @ 869E714 - cry Cry_Slugma @ 869E720 - cry Cry_Magcargo @ 869E72C - cry Cry_Swinub @ 869E738 - cry Cry_Piloswine @ 869E744 - cry Cry_Corsola @ 869E750 - cry Cry_Remoraid @ 869E75C - cry Cry_Octillery @ 869E768 - cry Cry_Delibird @ 869E774 - cry Cry_Mantine @ 869E780 - cry Cry_Skarmory @ 869E78C - cry Cry_Houndour @ 869E798 - cry Cry_Houndoom @ 869E7A4 - cry Cry_Kingdra @ 869E7B0 - cry Cry_Phanpy @ 869E7BC - cry Cry_Donphan @ 869E7C8 - cry Cry_Porygon2 @ 869E7D4 - cry Cry_Stantler @ 869E7E0 - cry Cry_Smeargle @ 869E7EC - cry Cry_Tyrogue @ 869E7F8 - cry Cry_Hitmontop @ 869E804 - cry Cry_Smoochum @ 869E810 - cry Cry_Elekid @ 869E81C - cry Cry_Magby @ 869E828 - cry Cry_Miltank @ 869E834 - cry Cry_Blissey @ 869E840 - cry Cry_Raikou @ 869E84C - cry Cry_Entei @ 869E858 - cry Cry_Suicune @ 869E864 - cry Cry_Larvitar @ 869E870 - cry Cry_Pupitar @ 869E87C - cry Cry_Tyranitar @ 869E888 - cry Cry_Lugia @ 869E894 - cry Cry_HoOh @ 869E8A0 - cry Cry_Celebi @ 869E8AC - cry Cry_Kecleon @ 869E8B8 - cry Cry_Roselia @ 869E8C4 - cry Cry_Torkoal @ 869E8D0 - cry Cry_Electrike @ 869E8DC - cry Cry_Manectric @ 869E8E8 - cry Cry_Duskull @ 869E8F4 - cry Cry_Latias @ 869E900 - cry Cry_Wynaut @ 869E90C - cry Cry_Seviper @ 869E918 - cry Cry_Sharpedo @ 869E924 - cry Cry_Zangoose @ 869E930 - cry Cry_Azurill @ 869E93C - cry Cry_Swablu @ 869E948 - cry Cry_Altaria @ 869E954 - cry Cry_Unused265 @ 869E960 - cry Cry_Taillow @ 869E96C - cry Cry_Swellow @ 869E978 - cry Cry_Unused268 @ 869E984 - cry Cry_Spinda @ 869E990 - cry Cry_Torchic @ 869E99C - cry Cry_Combusken @ 869E9A8 - cry Cry_Blaziken @ 869E9B4 - cry Cry_Treecko @ 869E9C0 - cry Cry_Grovyle @ 869E9CC - cry Cry_Sceptile @ 869E9D8 - cry Cry_Mudkip @ 869E9E4 - cry Cry_Marshtomp @ 869E9F0 - cry Cry_Swampert @ 869E9FC - cry Cry_Pelipper @ 869EA08 - cry Cry_Wingull @ 869EA14 - cry Cry_Banette @ 869EA20 - cry Cry_Shuppet @ 869EA2C - cry Cry_Lotad @ 869EA38 - cry Cry_Lombre @ 869EA44 - cry Cry_Ludicolo @ 869EA50 - cry Cry_Seedot @ 869EA5C - cry Cry_Nuzleaf @ 869EA68 - cry Cry_Shiftry @ 869EA74 - cry Cry_Carvanha @ 869EA80 - cry Cry_Wurmple @ 869EA8C - cry Cry_Silcoon @ 869EA98 - cry Cry_Beautifly @ 869EAA4 - cry Cry_Cascoon @ 869EAB0 - cry Cry_Dustox @ 869EABC - cry Cry_Ralts @ 869EAC8 - cry Cry_Kirlia @ 869EAD4 - cry Cry_Gardevoir @ 869EAE0 - cry Cry_Slakoth @ 869EAEC - cry Cry_Vigoroth @ 869EAF8 - cry Cry_Slaking @ 869EB04 - cry Cry_Nincada @ 869EB10 - cry Cry_Ninjask @ 869EB1C - cry Cry_Shedinja @ 869EB28 - cry Cry_Makuhita @ 869EB34 - cry Cry_Hariyama @ 869EB40 - cry Cry_Nosepass @ 869EB4C - cry Cry_Glalie @ 869EB58 - cry Cry_Plusle @ 869EB64 - cry Cry_Minun @ 869EB70 - cry Cry_Surskit @ 869EB7C - cry Cry_Masquerain @ 869EB88 - cry Cry_Skitty @ 869EB94 - cry Cry_Delcatty @ 869EBA0 - cry Cry_Gulpin @ 869EBAC - cry Cry_Swalot @ 869EBB8 - cry Cry_Numel @ 869EBC4 - cry Cry_Camerupt @ 869EBD0 - cry Cry_Barboach @ 869EBDC - cry Cry_Whiscash @ 869EBE8 - cry Cry_Corphish @ 869EBF4 - cry Cry_Crawdaunt @ 869EC00 - cry Cry_Spoink @ 869EC0C - cry Cry_Grumpig @ 869EC18 - cry Cry_Trapinch @ 869EC24 - cry Cry_Vibrava @ 869EC30 - cry Cry_Flygon @ 869EC3C - cry Cry_Cacnea @ 869EC48 - cry Cry_Cacturne @ 869EC54 - cry Cry_Baltoy @ 869EC60 - cry Cry_Claydol @ 869EC6C - cry Cry_Lunatone @ 869EC78 - cry Cry_Solrock @ 869EC84 - cry Cry_Feebas @ 869EC90 - cry Cry_Milotic @ 869EC9C - cry Cry_Absol @ 869ECA8 - cry Cry_Meditite @ 869ECB4 - cry Cry_Medicham @ 869ECC0 - cry Cry_Spheal @ 869ECCC - cry Cry_Sealeo @ 869ECD8 - cry Cry_Walrein @ 869ECE4 - cry Cry_Clamperl @ 869ECF0 - cry Cry_Huntail @ 869ECFC - cry Cry_Gorebyss @ 869ED08 - cry Cry_Lileep @ 869ED14 - cry Cry_Cradily @ 869ED20 - cry Cry_Anorith @ 869ED2C - cry Cry_Armaldo @ 869ED38 - cry Cry_Beldum @ 869ED44 - cry Cry_Metang @ 869ED50 - cry Cry_Metagross @ 869ED5C - cry Cry_Bagon @ 869ED68 - cry Cry_Shelgon @ 869ED74 - cry Cry_Regirock @ 869ED80 - cry Cry_Regice @ 869ED8C - cry Cry_Registeel @ 869ED98 - cry Cry_Castform @ 869EDA4 - cry Cry_Volbeat @ 869EDB0 - cry Cry_Illumise @ 869EDBC - cry Cry_Poochyena @ 869EDC8 - cry Cry_Mightyena @ 869EDD4 - cry Cry_Dusclops @ 869EDE0 - cry Cry_Sableye @ 869EDEC - cry Cry_Mawile @ 869EDF8 - cry Cry_Aron @ 869EE04 - cry Cry_Lairon @ 869EE10 - cry Cry_Aggron @ 869EE1C - cry Cry_Relicanth @ 869EE28 - cry Cry_Luvdisc @ 869EE34 - cry Cry_Groudon @ 869EE40 - cry Cry_Kyogre @ 869EE4C - cry Cry_Rayquaza @ 869EE58 - cry Cry_Salamence @ 869EE64 - cry Cry_Breloom @ 869EE70 - cry Cry_Shroomish @ 869EE7C - cry Cry_Linoone @ 869EE88 - cry Cry_Tropius @ 869EE94 - cry Cry_Wailmer @ 869EEA0 - cry Cry_Zigzagoon @ 869EEAC - cry Cry_Exploud @ 869EEB8 - cry Cry_Loudred @ 869EEC4 - cry Cry_Wailord @ 869EED0 - cry Cry_Whismur @ 869EEDC - cry Cry_Snorunt @ 869EEE8 - cry Cry_Latios @ 869EEF4 - cry Cry_Jirachi @ 869EF00 - cry Cry_Deoxys @ 869EF0C - cry Cry_Chimecho @ 869EF18 +gCryTable:: + cry Cry_Bulbasaur + cry Cry_Ivysaur + cry Cry_Venusaur + cry Cry_Charmander + cry Cry_Charmeleon + cry Cry_Charizard + cry Cry_Squirtle + cry Cry_Wartortle + cry Cry_Blastoise + cry Cry_Caterpie + cry Cry_Metapod + cry Cry_Butterfree + cry Cry_Weedle + cry Cry_Kakuna + cry Cry_Beedrill + cry Cry_Pidgey + cry Cry_Pidgeotto + cry Cry_Pidgeot + cry Cry_Rattata + cry Cry_Raticate + cry Cry_Spearow + cry Cry_Fearow + cry Cry_Ekans + cry Cry_Arbok + cry Cry_Pikachu + cry Cry_Raichu + cry Cry_Sandshrew + cry Cry_Sandslash + cry Cry_NidoranF + cry Cry_Nidorina + cry Cry_Nidoqueen + cry Cry_NidoranM + cry Cry_Nidorino + cry Cry_Nidoking + cry Cry_Clefairy + cry Cry_Clefable + cry Cry_Vulpix + cry Cry_Ninetales + cry Cry_Jigglypuff + cry Cry_Wigglytuff + cry Cry_Zubat + cry Cry_Golbat + cry Cry_Oddish + cry Cry_Gloom + cry Cry_Vileplume + cry Cry_Paras + cry Cry_Parasect + cry Cry_Venonat + cry Cry_Venomoth + cry Cry_Diglett + cry Cry_Dugtrio + cry Cry_Meowth + cry Cry_Persian + cry Cry_Psyduck + cry Cry_Golduck + cry Cry_Mankey + cry Cry_Primeape + cry Cry_Growlithe + cry Cry_Arcanine + cry Cry_Poliwag + cry Cry_Poliwhirl + cry Cry_Poliwrath + cry Cry_Abra + cry Cry_Kadabra + cry Cry_Alakazam + cry Cry_Machop + cry Cry_Machoke + cry Cry_Machamp + cry Cry_Bellsprout + cry Cry_Weepinbell + cry Cry_Victreebel + cry Cry_Tentacool + cry Cry_Tentacruel + cry Cry_Geodude + cry Cry_Graveler + cry Cry_Golem + cry Cry_Ponyta + cry Cry_Rapidash + cry Cry_Slowpoke + cry Cry_Slowbro + cry Cry_Magnemite + cry Cry_Magneton + cry Cry_Farfetchd + cry Cry_Doduo + cry Cry_Dodrio + cry Cry_Seel + cry Cry_Dewgong + cry Cry_Grimer + cry Cry_Muk + cry Cry_Shellder + cry Cry_Cloyster + cry Cry_Gastly + cry Cry_Haunter + cry Cry_Gengar + cry Cry_Onix + cry Cry_Drowzee + cry Cry_Hypno + cry Cry_Krabby + cry Cry_Kingler + cry Cry_Voltorb + cry Cry_Electrode + cry Cry_Exeggcute + cry Cry_Exeggutor + cry Cry_Cubone + cry Cry_Marowak + cry Cry_Hitmonlee + cry Cry_Hitmonchan + cry Cry_Lickitung + cry Cry_Koffing + cry Cry_Weezing + cry Cry_Rhyhorn + cry Cry_Rhydon + cry Cry_Chansey + cry Cry_Tangela + cry Cry_Kangaskhan + cry Cry_Horsea + cry Cry_Seadra + cry Cry_Goldeen + cry Cry_Seaking + cry Cry_Staryu + cry Cry_Starmie + cry Cry_MrMime + cry Cry_Scyther + cry Cry_Jynx + cry Cry_Electabuzz + cry Cry_Magmar + cry Cry_Pinsir + cry Cry_Tauros + cry Cry_Magikarp + cry Cry_Gyarados + cry Cry_Lapras + cry Cry_Ditto + cry Cry_Eevee + cry Cry_Vaporeon + cry Cry_Jolteon + cry Cry_Flareon + cry Cry_Porygon + cry Cry_Omanyte + cry Cry_Omastar + cry Cry_Kabuto + cry Cry_Kabutops + cry Cry_Aerodactyl + cry Cry_Snorlax + cry Cry_Articuno + cry Cry_Zapdos + cry Cry_Moltres + cry Cry_Dratini + cry Cry_Dragonair + cry Cry_Dragonite + cry Cry_Mewtwo + cry Cry_Mew + cry Cry_Chikorita + cry Cry_Bayleef + cry Cry_Meganium + cry Cry_Cyndaquil + cry Cry_Quilava + cry Cry_Typhlosion + cry Cry_Totodile + cry Cry_Croconaw + cry Cry_Feraligatr + cry Cry_Sentret + cry Cry_Furret + cry Cry_Hoothoot + cry Cry_Noctowl + cry Cry_Ledyba + cry Cry_Ledian + cry Cry_Spinarak + cry Cry_Ariados + cry Cry_Crobat + cry Cry_Chinchou + cry Cry_Lanturn + cry Cry_Pichu + cry Cry_Cleffa + cry Cry_Igglybuff + cry Cry_Togepi + cry Cry_Togetic + cry Cry_Natu + cry Cry_Xatu + cry Cry_Mareep + cry Cry_Flaaffy + cry Cry_Ampharos + cry Cry_Bellossom + cry Cry_Marill + cry Cry_Azumarill + cry Cry_Sudowoodo + cry Cry_Politoed + cry Cry_Hoppip + cry Cry_Skiploom + cry Cry_Jumpluff + cry Cry_Aipom + cry Cry_Sunkern + cry Cry_Sunflora + cry Cry_Yanma + cry Cry_Wooper + cry Cry_Quagsire + cry Cry_Espeon + cry Cry_Umbreon + cry Cry_Murkrow + cry Cry_Slowking + cry Cry_Misdreavus + cry Cry_Unown + cry Cry_Wobbuffet + cry Cry_Girafarig + cry Cry_Pineco + cry Cry_Forretress + cry Cry_Dunsparce + cry Cry_Gligar + cry Cry_Steelix + cry Cry_Snubbull + cry Cry_Granbull + cry Cry_Qwilfish + cry Cry_Scizor + cry Cry_Shuckle + cry Cry_Heracross + cry Cry_Sneasel + cry Cry_Teddiursa + cry Cry_Ursaring + cry Cry_Slugma + cry Cry_Magcargo + cry Cry_Swinub + cry Cry_Piloswine + cry Cry_Corsola + cry Cry_Remoraid + cry Cry_Octillery + cry Cry_Delibird + cry Cry_Mantine + cry Cry_Skarmory + cry Cry_Houndour + cry Cry_Houndoom + cry Cry_Kingdra + cry Cry_Phanpy + cry Cry_Donphan + cry Cry_Porygon2 + cry Cry_Stantler + cry Cry_Smeargle + cry Cry_Tyrogue + cry Cry_Hitmontop + cry Cry_Smoochum + cry Cry_Elekid + cry Cry_Magby + cry Cry_Miltank + cry Cry_Blissey + cry Cry_Raikou + cry Cry_Entei + cry Cry_Suicune + cry Cry_Larvitar + cry Cry_Pupitar + cry Cry_Tyranitar + cry Cry_Lugia + cry Cry_HoOh + cry Cry_Celebi + cry Cry_Kecleon + cry Cry_Roselia + cry Cry_Torkoal + cry Cry_Electrike + cry Cry_Manectric + cry Cry_Duskull + cry Cry_Latias + cry Cry_Wynaut + cry Cry_Seviper + cry Cry_Sharpedo + cry Cry_Zangoose + cry Cry_Azurill + cry Cry_Swablu + cry Cry_Altaria + cry Cry_Unused265 + cry Cry_Taillow + cry Cry_Swellow + cry Cry_Unused268 + cry Cry_Spinda + cry Cry_Torchic + cry Cry_Combusken + cry Cry_Blaziken + cry Cry_Treecko + cry Cry_Grovyle + cry Cry_Sceptile + cry Cry_Mudkip + cry Cry_Marshtomp + cry Cry_Swampert + cry Cry_Pelipper + cry Cry_Wingull + cry Cry_Banette + cry Cry_Shuppet + cry Cry_Lotad + cry Cry_Lombre + cry Cry_Ludicolo + cry Cry_Seedot + cry Cry_Nuzleaf + cry Cry_Shiftry + cry Cry_Carvanha + cry Cry_Wurmple + cry Cry_Silcoon + cry Cry_Beautifly + cry Cry_Cascoon + cry Cry_Dustox + cry Cry_Ralts + cry Cry_Kirlia + cry Cry_Gardevoir + cry Cry_Slakoth + cry Cry_Vigoroth + cry Cry_Slaking + cry Cry_Nincada + cry Cry_Ninjask + cry Cry_Shedinja + cry Cry_Makuhita + cry Cry_Hariyama + cry Cry_Nosepass + cry Cry_Glalie + cry Cry_Plusle + cry Cry_Minun + cry Cry_Surskit + cry Cry_Masquerain + cry Cry_Skitty + cry Cry_Delcatty + cry Cry_Gulpin + cry Cry_Swalot + cry Cry_Numel + cry Cry_Camerupt + cry Cry_Barboach + cry Cry_Whiscash + cry Cry_Corphish + cry Cry_Crawdaunt + cry Cry_Spoink + cry Cry_Grumpig + cry Cry_Trapinch + cry Cry_Vibrava + cry Cry_Flygon + cry Cry_Cacnea + cry Cry_Cacturne + cry Cry_Baltoy + cry Cry_Claydol + cry Cry_Lunatone + cry Cry_Solrock + cry Cry_Feebas + cry Cry_Milotic + cry Cry_Absol + cry Cry_Meditite + cry Cry_Medicham + cry Cry_Spheal + cry Cry_Sealeo + cry Cry_Walrein + cry Cry_Clamperl + cry Cry_Huntail + cry Cry_Gorebyss + cry Cry_Lileep + cry Cry_Cradily + cry Cry_Anorith + cry Cry_Armaldo + cry Cry_Beldum + cry Cry_Metang + cry Cry_Metagross + cry Cry_Bagon + cry Cry_Shelgon + cry Cry_Regirock + cry Cry_Regice + cry Cry_Registeel + cry Cry_Castform + cry Cry_Volbeat + cry Cry_Illumise + cry Cry_Poochyena + cry Cry_Mightyena + cry Cry_Dusclops + cry Cry_Sableye + cry Cry_Mawile + cry Cry_Aron + cry Cry_Lairon + cry Cry_Aggron + cry Cry_Relicanth + cry Cry_Luvdisc + cry Cry_Groudon + cry Cry_Kyogre + cry Cry_Rayquaza + cry Cry_Salamence + cry Cry_Breloom + cry Cry_Shroomish + cry Cry_Linoone + cry Cry_Tropius + cry Cry_Wailmer + cry Cry_Zigzagoon + cry Cry_Exploud + cry Cry_Loudred + cry Cry_Wailord + cry Cry_Whismur + cry Cry_Snorunt + cry Cry_Latios + cry Cry_Jirachi + cry Cry_Deoxys + cry Cry_Chimecho .align 2 -gCryTable2:: @ 869EF24 - cry2 Cry_Bulbasaur @ 869EF24 - cry2 Cry_Ivysaur @ 869EF30 - cry2 Cry_Venusaur @ 869EF3C - cry2 Cry_Charmander @ 869EF48 - cry2 Cry_Charmeleon @ 869EF54 - cry2 Cry_Charizard @ 869EF60 - cry2 Cry_Squirtle @ 869EF6C - cry2 Cry_Wartortle @ 869EF78 - cry2 Cry_Blastoise @ 869EF84 - cry2 Cry_Caterpie @ 869EF90 - cry2 Cry_Metapod @ 869EF9C - cry2 Cry_Butterfree @ 869EFA8 - cry2 Cry_Weedle @ 869EFB4 - cry2 Cry_Kakuna @ 869EFC0 - cry2 Cry_Beedrill @ 869EFCC - cry2 Cry_Pidgey @ 869EFD8 - cry2 Cry_Pidgeotto @ 869EFE4 - cry2 Cry_Pidgeot @ 869EFF0 - cry2 Cry_Rattata @ 869EFFC - cry2 Cry_Raticate @ 869F008 - cry2 Cry_Spearow @ 869F014 - cry2 Cry_Fearow @ 869F020 - cry2 Cry_Ekans @ 869F02C - cry2 Cry_Arbok @ 869F038 - cry2 Cry_Pikachu @ 869F044 - cry2 Cry_Raichu @ 869F050 - cry2 Cry_Sandshrew @ 869F05C - cry2 Cry_Sandslash @ 869F068 - cry2 Cry_NidoranF @ 869F074 - cry2 Cry_Nidorina @ 869F080 - cry2 Cry_Nidoqueen @ 869F08C - cry2 Cry_NidoranM @ 869F098 - cry2 Cry_Nidorino @ 869F0A4 - cry2 Cry_Nidoking @ 869F0B0 - cry2 Cry_Clefairy @ 869F0BC - cry2 Cry_Clefable @ 869F0C8 - cry2 Cry_Vulpix @ 869F0D4 - cry2 Cry_Ninetales @ 869F0E0 - cry2 Cry_Jigglypuff @ 869F0EC - cry2 Cry_Wigglytuff @ 869F0F8 - cry2 Cry_Zubat @ 869F104 - cry2 Cry_Golbat @ 869F110 - cry2 Cry_Oddish @ 869F11C - cry2 Cry_Gloom @ 869F128 - cry2 Cry_Vileplume @ 869F134 - cry2 Cry_Paras @ 869F140 - cry2 Cry_Parasect @ 869F14C - cry2 Cry_Venonat @ 869F158 - cry2 Cry_Venomoth @ 869F164 - cry2 Cry_Diglett @ 869F170 - cry2 Cry_Dugtrio @ 869F17C - cry2 Cry_Meowth @ 869F188 - cry2 Cry_Persian @ 869F194 - cry2 Cry_Psyduck @ 869F1A0 - cry2 Cry_Golduck @ 869F1AC - cry2 Cry_Mankey @ 869F1B8 - cry2 Cry_Primeape @ 869F1C4 - cry2 Cry_Growlithe @ 869F1D0 - cry2 Cry_Arcanine @ 869F1DC - cry2 Cry_Poliwag @ 869F1E8 - cry2 Cry_Poliwhirl @ 869F1F4 - cry2 Cry_Poliwrath @ 869F200 - cry2 Cry_Abra @ 869F20C - cry2 Cry_Kadabra @ 869F218 - cry2 Cry_Alakazam @ 869F224 - cry2 Cry_Machop @ 869F230 - cry2 Cry_Machoke @ 869F23C - cry2 Cry_Machamp @ 869F248 - cry2 Cry_Bellsprout @ 869F254 - cry2 Cry_Weepinbell @ 869F260 - cry2 Cry_Victreebel @ 869F26C - cry2 Cry_Tentacool @ 869F278 - cry2 Cry_Tentacruel @ 869F284 - cry2 Cry_Geodude @ 869F290 - cry2 Cry_Graveler @ 869F29C - cry2 Cry_Golem @ 869F2A8 - cry2 Cry_Ponyta @ 869F2B4 - cry2 Cry_Rapidash @ 869F2C0 - cry2 Cry_Slowpoke @ 869F2CC - cry2 Cry_Slowbro @ 869F2D8 - cry2 Cry_Magnemite @ 869F2E4 - cry2 Cry_Magneton @ 869F2F0 - cry2 Cry_Farfetchd @ 869F2FC - cry2 Cry_Doduo @ 869F308 - cry2 Cry_Dodrio @ 869F314 - cry2 Cry_Seel @ 869F320 - cry2 Cry_Dewgong @ 869F32C - cry2 Cry_Grimer @ 869F338 - cry2 Cry_Muk @ 869F344 - cry2 Cry_Shellder @ 869F350 - cry2 Cry_Cloyster @ 869F35C - cry2 Cry_Gastly @ 869F368 - cry2 Cry_Haunter @ 869F374 - cry2 Cry_Gengar @ 869F380 - cry2 Cry_Onix @ 869F38C - cry2 Cry_Drowzee @ 869F398 - cry2 Cry_Hypno @ 869F3A4 - cry2 Cry_Krabby @ 869F3B0 - cry2 Cry_Kingler @ 869F3BC - cry2 Cry_Voltorb @ 869F3C8 - cry2 Cry_Electrode @ 869F3D4 - cry2 Cry_Exeggcute @ 869F3E0 - cry2 Cry_Exeggutor @ 869F3EC - cry2 Cry_Cubone @ 869F3F8 - cry2 Cry_Marowak @ 869F404 - cry2 Cry_Hitmonlee @ 869F410 - cry2 Cry_Hitmonchan @ 869F41C - cry2 Cry_Lickitung @ 869F428 - cry2 Cry_Koffing @ 869F434 - cry2 Cry_Weezing @ 869F440 - cry2 Cry_Rhyhorn @ 869F44C - cry2 Cry_Rhydon @ 869F458 - cry2 Cry_Chansey @ 869F464 - cry2 Cry_Tangela @ 869F470 - cry2 Cry_Kangaskhan @ 869F47C - cry2 Cry_Horsea @ 869F488 - cry2 Cry_Seadra @ 869F494 - cry2 Cry_Goldeen @ 869F4A0 - cry2 Cry_Seaking @ 869F4AC - cry2 Cry_Staryu @ 869F4B8 - cry2 Cry_Starmie @ 869F4C4 - cry2 Cry_MrMime @ 869F4D0 - cry2 Cry_Scyther @ 869F4DC - cry2 Cry_Jynx @ 869F4E8 - cry2 Cry_Electabuzz @ 869F4F4 - cry2 Cry_Magmar @ 869F500 - cry2 Cry_Pinsir @ 869F50C - cry2 Cry_Tauros @ 869F518 - cry2 Cry_Magikarp @ 869F524 - cry2 Cry_Gyarados @ 869F530 - cry2 Cry_Lapras @ 869F53C - cry2 Cry_Ditto @ 869F548 - cry2 Cry_Eevee @ 869F554 - cry2 Cry_Vaporeon @ 869F560 - cry2 Cry_Jolteon @ 869F56C - cry2 Cry_Flareon @ 869F578 - cry2 Cry_Porygon @ 869F584 - cry2 Cry_Omanyte @ 869F590 - cry2 Cry_Omastar @ 869F59C - cry2 Cry_Kabuto @ 869F5A8 - cry2 Cry_Kabutops @ 869F5B4 - cry2 Cry_Aerodactyl @ 869F5C0 - cry2 Cry_Snorlax @ 869F5CC - cry2 Cry_Articuno @ 869F5D8 - cry2 Cry_Zapdos @ 869F5E4 - cry2 Cry_Moltres @ 869F5F0 - cry2 Cry_Dratini @ 869F5FC - cry2 Cry_Dragonair @ 869F608 - cry2 Cry_Dragonite @ 869F614 - cry2 Cry_Mewtwo @ 869F620 - cry2 Cry_Mew @ 869F62C - cry2 Cry_Chikorita @ 869F638 - cry2 Cry_Bayleef @ 869F644 - cry2 Cry_Meganium @ 869F650 - cry2 Cry_Cyndaquil @ 869F65C - cry2 Cry_Quilava @ 869F668 - cry2 Cry_Typhlosion @ 869F674 - cry2 Cry_Totodile @ 869F680 - cry2 Cry_Croconaw @ 869F68C - cry2 Cry_Feraligatr @ 869F698 - cry2 Cry_Sentret @ 869F6A4 - cry2 Cry_Furret @ 869F6B0 - cry2 Cry_Hoothoot @ 869F6BC - cry2 Cry_Noctowl @ 869F6C8 - cry2 Cry_Ledyba @ 869F6D4 - cry2 Cry_Ledian @ 869F6E0 - cry2 Cry_Spinarak @ 869F6EC - cry2 Cry_Ariados @ 869F6F8 - cry2 Cry_Crobat @ 869F704 - cry2 Cry_Chinchou @ 869F710 - cry2 Cry_Lanturn @ 869F71C - cry2 Cry_Pichu @ 869F728 - cry2 Cry_Cleffa @ 869F734 - cry2 Cry_Igglybuff @ 869F740 - cry2 Cry_Togepi @ 869F74C - cry2 Cry_Togetic @ 869F758 - cry2 Cry_Natu @ 869F764 - cry2 Cry_Xatu @ 869F770 - cry2 Cry_Mareep @ 869F77C - cry2 Cry_Flaaffy @ 869F788 - cry2 Cry_Ampharos @ 869F794 - cry2 Cry_Bellossom @ 869F7A0 - cry2 Cry_Marill @ 869F7AC - cry2 Cry_Azumarill @ 869F7B8 - cry2 Cry_Sudowoodo @ 869F7C4 - cry2 Cry_Politoed @ 869F7D0 - cry2 Cry_Hoppip @ 869F7DC - cry2 Cry_Skiploom @ 869F7E8 - cry2 Cry_Jumpluff @ 869F7F4 - cry2 Cry_Aipom @ 869F800 - cry2 Cry_Sunkern @ 869F80C - cry2 Cry_Sunflora @ 869F818 - cry2 Cry_Yanma @ 869F824 - cry2 Cry_Wooper @ 869F830 - cry2 Cry_Quagsire @ 869F83C - cry2 Cry_Espeon @ 869F848 - cry2 Cry_Umbreon @ 869F854 - cry2 Cry_Murkrow @ 869F860 - cry2 Cry_Slowking @ 869F86C - cry2 Cry_Misdreavus @ 869F878 - cry2 Cry_Unown @ 869F884 - cry2 Cry_Wobbuffet @ 869F890 - cry2 Cry_Girafarig @ 869F89C - cry2 Cry_Pineco @ 869F8A8 - cry2 Cry_Forretress @ 869F8B4 - cry2 Cry_Dunsparce @ 869F8C0 - cry2 Cry_Gligar @ 869F8CC - cry2 Cry_Steelix @ 869F8D8 - cry2 Cry_Snubbull @ 869F8E4 - cry2 Cry_Granbull @ 869F8F0 - cry2 Cry_Qwilfish @ 869F8FC - cry2 Cry_Scizor @ 869F908 - cry2 Cry_Shuckle @ 869F914 - cry2 Cry_Heracross @ 869F920 - cry2 Cry_Sneasel @ 869F92C - cry2 Cry_Teddiursa @ 869F938 - cry2 Cry_Ursaring @ 869F944 - cry2 Cry_Slugma @ 869F950 - cry2 Cry_Magcargo @ 869F95C - cry2 Cry_Swinub @ 869F968 - cry2 Cry_Piloswine @ 869F974 - cry2 Cry_Corsola @ 869F980 - cry2 Cry_Remoraid @ 869F98C - cry2 Cry_Octillery @ 869F998 - cry2 Cry_Delibird @ 869F9A4 - cry2 Cry_Mantine @ 869F9B0 - cry2 Cry_Skarmory @ 869F9BC - cry2 Cry_Houndour @ 869F9C8 - cry2 Cry_Houndoom @ 869F9D4 - cry2 Cry_Kingdra @ 869F9E0 - cry2 Cry_Phanpy @ 869F9EC - cry2 Cry_Donphan @ 869F9F8 - cry2 Cry_Porygon2 @ 869FA04 - cry2 Cry_Stantler @ 869FA10 - cry2 Cry_Smeargle @ 869FA1C - cry2 Cry_Tyrogue @ 869FA28 - cry2 Cry_Hitmontop @ 869FA34 - cry2 Cry_Smoochum @ 869FA40 - cry2 Cry_Elekid @ 869FA4C - cry2 Cry_Magby @ 869FA58 - cry2 Cry_Miltank @ 869FA64 - cry2 Cry_Blissey @ 869FA70 - cry2 Cry_Raikou @ 869FA7C - cry2 Cry_Entei @ 869FA88 - cry2 Cry_Suicune @ 869FA94 - cry2 Cry_Larvitar @ 869FAA0 - cry2 Cry_Pupitar @ 869FAAC - cry2 Cry_Tyranitar @ 869FAB8 - cry2 Cry_Lugia @ 869FAC4 - cry2 Cry_HoOh @ 869FAD0 - cry2 Cry_Celebi @ 869FADC - cry2 Cry_Kecleon @ 869FAE8 - cry2 Cry_Roselia @ 869FAF4 - cry2 Cry_Torkoal @ 869FB00 - cry2 Cry_Electrike @ 869FB0C - cry2 Cry_Manectric @ 869FB18 - cry2 Cry_Duskull @ 869FB24 - cry2 Cry_Latias @ 869FB30 - cry2 Cry_Wynaut @ 869FB3C - cry2 Cry_Seviper @ 869FB48 - cry2 Cry_Sharpedo @ 869FB54 - cry2 Cry_Zangoose @ 869FB60 - cry2 Cry_Azurill @ 869FB6C - cry2 Cry_Swablu @ 869FB78 - cry2 Cry_Altaria @ 869FB84 - cry2 Cry_Unused265 @ 869FB90 - cry2 Cry_Taillow @ 869FB9C - cry2 Cry_Swellow @ 869FBA8 - cry2 Cry_Unused268 @ 869FBB4 - cry2 Cry_Spinda @ 869FBC0 - cry2 Cry_Torchic @ 869FBCC - cry2 Cry_Combusken @ 869FBD8 - cry2 Cry_Blaziken @ 869FBE4 - cry2 Cry_Treecko @ 869FBF0 - cry2 Cry_Grovyle @ 869FBFC - cry2 Cry_Sceptile @ 869FC08 - cry2 Cry_Mudkip @ 869FC14 - cry2 Cry_Marshtomp @ 869FC20 - cry2 Cry_Swampert @ 869FC2C - cry2 Cry_Pelipper @ 869FC38 - cry2 Cry_Wingull @ 869FC44 - cry2 Cry_Banette @ 869FC50 - cry2 Cry_Shuppet @ 869FC5C - cry2 Cry_Lotad @ 869FC68 - cry2 Cry_Lombre @ 869FC74 - cry2 Cry_Ludicolo @ 869FC80 - cry2 Cry_Seedot @ 869FC8C - cry2 Cry_Nuzleaf @ 869FC98 - cry2 Cry_Shiftry @ 869FCA4 - cry2 Cry_Carvanha @ 869FCB0 - cry2 Cry_Wurmple @ 869FCBC - cry2 Cry_Silcoon @ 869FCC8 - cry2 Cry_Beautifly @ 869FCD4 - cry2 Cry_Cascoon @ 869FCE0 - cry2 Cry_Dustox @ 869FCEC - cry2 Cry_Ralts @ 869FCF8 - cry2 Cry_Kirlia @ 869FD04 - cry2 Cry_Gardevoir @ 869FD10 - cry2 Cry_Slakoth @ 869FD1C - cry2 Cry_Vigoroth @ 869FD28 - cry2 Cry_Slaking @ 869FD34 - cry2 Cry_Nincada @ 869FD40 - cry2 Cry_Ninjask @ 869FD4C - cry2 Cry_Shedinja @ 869FD58 - cry2 Cry_Makuhita @ 869FD64 - cry2 Cry_Hariyama @ 869FD70 - cry2 Cry_Nosepass @ 869FD7C - cry2 Cry_Glalie @ 869FD88 - cry2 Cry_Plusle @ 869FD94 - cry2 Cry_Minun @ 869FDA0 - cry2 Cry_Surskit @ 869FDAC - cry2 Cry_Masquerain @ 869FDB8 - cry2 Cry_Skitty @ 869FDC4 - cry2 Cry_Delcatty @ 869FDD0 - cry2 Cry_Gulpin @ 869FDDC - cry2 Cry_Swalot @ 869FDE8 - cry2 Cry_Numel @ 869FDF4 - cry2 Cry_Camerupt @ 869FE00 - cry2 Cry_Barboach @ 869FE0C - cry2 Cry_Whiscash @ 869FE18 - cry2 Cry_Corphish @ 869FE24 - cry2 Cry_Crawdaunt @ 869FE30 - cry2 Cry_Spoink @ 869FE3C - cry2 Cry_Grumpig @ 869FE48 - cry2 Cry_Trapinch @ 869FE54 - cry2 Cry_Vibrava @ 869FE60 - cry2 Cry_Flygon @ 869FE6C - cry2 Cry_Cacnea @ 869FE78 - cry2 Cry_Cacturne @ 869FE84 - cry2 Cry_Baltoy @ 869FE90 - cry2 Cry_Claydol @ 869FE9C - cry2 Cry_Lunatone @ 869FEA8 - cry2 Cry_Solrock @ 869FEB4 - cry2 Cry_Feebas @ 869FEC0 - cry2 Cry_Milotic @ 869FECC - cry2 Cry_Absol @ 869FED8 - cry2 Cry_Meditite @ 869FEE4 - cry2 Cry_Medicham @ 869FEF0 - cry2 Cry_Spheal @ 869FEFC - cry2 Cry_Sealeo @ 869FF08 - cry2 Cry_Walrein @ 869FF14 - cry2 Cry_Clamperl @ 869FF20 - cry2 Cry_Huntail @ 869FF2C - cry2 Cry_Gorebyss @ 869FF38 - cry2 Cry_Lileep @ 869FF44 - cry2 Cry_Cradily @ 869FF50 - cry2 Cry_Anorith @ 869FF5C - cry2 Cry_Armaldo @ 869FF68 - cry2 Cry_Beldum @ 869FF74 - cry2 Cry_Metang @ 869FF80 - cry2 Cry_Metagross @ 869FF8C - cry2 Cry_Bagon @ 869FF98 - cry2 Cry_Shelgon @ 869FFA4 - cry2 Cry_Regirock @ 869FFB0 - cry2 Cry_Regice @ 869FFBC - cry2 Cry_Registeel @ 869FFC8 - cry2 Cry_Castform @ 869FFD4 - cry2 Cry_Volbeat @ 869FFE0 - cry2 Cry_Illumise @ 869FFEC - cry2 Cry_Poochyena @ 869FFF8 - cry2 Cry_Mightyena @ 86A0004 - cry2 Cry_Dusclops @ 86A0010 - cry2 Cry_Sableye @ 86A001C - cry2 Cry_Mawile @ 86A0028 - cry2 Cry_Aron @ 86A0034 - cry2 Cry_Lairon @ 86A0040 - cry2 Cry_Aggron @ 86A004C - cry2 Cry_Relicanth @ 86A0058 - cry2 Cry_Luvdisc @ 86A0064 - cry2 Cry_Groudon @ 86A0070 - cry2 Cry_Kyogre @ 86A007C - cry2 Cry_Rayquaza @ 86A0088 - cry2 Cry_Salamence @ 86A0094 - cry2 Cry_Breloom @ 86A00A0 - cry2 Cry_Shroomish @ 86A00AC - cry2 Cry_Linoone @ 86A00B8 - cry2 Cry_Tropius @ 86A00C4 - cry2 Cry_Wailmer @ 86A00D0 - cry2 Cry_Zigzagoon @ 86A00DC - cry2 Cry_Exploud @ 86A00E8 - cry2 Cry_Loudred @ 86A00F4 - cry2 Cry_Wailord @ 86A0100 - cry2 Cry_Whismur @ 86A010C - cry2 Cry_Snorunt @ 86A0118 - cry2 Cry_Latios @ 86A0124 - cry2 Cry_Jirachi @ 86A0130 - cry2 Cry_Deoxys @ 86A013C - cry2 Cry_Chimecho @ 86A0148 +gCryTable2:: + cry2 Cry_Bulbasaur + cry2 Cry_Ivysaur + cry2 Cry_Venusaur + cry2 Cry_Charmander + cry2 Cry_Charmeleon + cry2 Cry_Charizard + cry2 Cry_Squirtle + cry2 Cry_Wartortle + cry2 Cry_Blastoise + cry2 Cry_Caterpie + cry2 Cry_Metapod + cry2 Cry_Butterfree + cry2 Cry_Weedle + cry2 Cry_Kakuna + cry2 Cry_Beedrill + cry2 Cry_Pidgey + cry2 Cry_Pidgeotto + cry2 Cry_Pidgeot + cry2 Cry_Rattata + cry2 Cry_Raticate + cry2 Cry_Spearow + cry2 Cry_Fearow + cry2 Cry_Ekans + cry2 Cry_Arbok + cry2 Cry_Pikachu + cry2 Cry_Raichu + cry2 Cry_Sandshrew + cry2 Cry_Sandslash + cry2 Cry_NidoranF + cry2 Cry_Nidorina + cry2 Cry_Nidoqueen + cry2 Cry_NidoranM + cry2 Cry_Nidorino + cry2 Cry_Nidoking + cry2 Cry_Clefairy + cry2 Cry_Clefable + cry2 Cry_Vulpix + cry2 Cry_Ninetales + cry2 Cry_Jigglypuff + cry2 Cry_Wigglytuff + cry2 Cry_Zubat + cry2 Cry_Golbat + cry2 Cry_Oddish + cry2 Cry_Gloom + cry2 Cry_Vileplume + cry2 Cry_Paras + cry2 Cry_Parasect + cry2 Cry_Venonat + cry2 Cry_Venomoth + cry2 Cry_Diglett + cry2 Cry_Dugtrio + cry2 Cry_Meowth + cry2 Cry_Persian + cry2 Cry_Psyduck + cry2 Cry_Golduck + cry2 Cry_Mankey + cry2 Cry_Primeape + cry2 Cry_Growlithe + cry2 Cry_Arcanine + cry2 Cry_Poliwag + cry2 Cry_Poliwhirl + cry2 Cry_Poliwrath + cry2 Cry_Abra + cry2 Cry_Kadabra + cry2 Cry_Alakazam + cry2 Cry_Machop + cry2 Cry_Machoke + cry2 Cry_Machamp + cry2 Cry_Bellsprout + cry2 Cry_Weepinbell + cry2 Cry_Victreebel + cry2 Cry_Tentacool + cry2 Cry_Tentacruel + cry2 Cry_Geodude + cry2 Cry_Graveler + cry2 Cry_Golem + cry2 Cry_Ponyta + cry2 Cry_Rapidash + cry2 Cry_Slowpoke + cry2 Cry_Slowbro + cry2 Cry_Magnemite + cry2 Cry_Magneton + cry2 Cry_Farfetchd + cry2 Cry_Doduo + cry2 Cry_Dodrio + cry2 Cry_Seel + cry2 Cry_Dewgong + cry2 Cry_Grimer + cry2 Cry_Muk + cry2 Cry_Shellder + cry2 Cry_Cloyster + cry2 Cry_Gastly + cry2 Cry_Haunter + cry2 Cry_Gengar + cry2 Cry_Onix + cry2 Cry_Drowzee + cry2 Cry_Hypno + cry2 Cry_Krabby + cry2 Cry_Kingler + cry2 Cry_Voltorb + cry2 Cry_Electrode + cry2 Cry_Exeggcute + cry2 Cry_Exeggutor + cry2 Cry_Cubone + cry2 Cry_Marowak + cry2 Cry_Hitmonlee + cry2 Cry_Hitmonchan + cry2 Cry_Lickitung + cry2 Cry_Koffing + cry2 Cry_Weezing + cry2 Cry_Rhyhorn + cry2 Cry_Rhydon + cry2 Cry_Chansey + cry2 Cry_Tangela + cry2 Cry_Kangaskhan + cry2 Cry_Horsea + cry2 Cry_Seadra + cry2 Cry_Goldeen + cry2 Cry_Seaking + cry2 Cry_Staryu + cry2 Cry_Starmie + cry2 Cry_MrMime + cry2 Cry_Scyther + cry2 Cry_Jynx + cry2 Cry_Electabuzz + cry2 Cry_Magmar + cry2 Cry_Pinsir + cry2 Cry_Tauros + cry2 Cry_Magikarp + cry2 Cry_Gyarados + cry2 Cry_Lapras + cry2 Cry_Ditto + cry2 Cry_Eevee + cry2 Cry_Vaporeon + cry2 Cry_Jolteon + cry2 Cry_Flareon + cry2 Cry_Porygon + cry2 Cry_Omanyte + cry2 Cry_Omastar + cry2 Cry_Kabuto + cry2 Cry_Kabutops + cry2 Cry_Aerodactyl + cry2 Cry_Snorlax + cry2 Cry_Articuno + cry2 Cry_Zapdos + cry2 Cry_Moltres + cry2 Cry_Dratini + cry2 Cry_Dragonair + cry2 Cry_Dragonite + cry2 Cry_Mewtwo + cry2 Cry_Mew + cry2 Cry_Chikorita + cry2 Cry_Bayleef + cry2 Cry_Meganium + cry2 Cry_Cyndaquil + cry2 Cry_Quilava + cry2 Cry_Typhlosion + cry2 Cry_Totodile + cry2 Cry_Croconaw + cry2 Cry_Feraligatr + cry2 Cry_Sentret + cry2 Cry_Furret + cry2 Cry_Hoothoot + cry2 Cry_Noctowl + cry2 Cry_Ledyba + cry2 Cry_Ledian + cry2 Cry_Spinarak + cry2 Cry_Ariados + cry2 Cry_Crobat + cry2 Cry_Chinchou + cry2 Cry_Lanturn + cry2 Cry_Pichu + cry2 Cry_Cleffa + cry2 Cry_Igglybuff + cry2 Cry_Togepi + cry2 Cry_Togetic + cry2 Cry_Natu + cry2 Cry_Xatu + cry2 Cry_Mareep + cry2 Cry_Flaaffy + cry2 Cry_Ampharos + cry2 Cry_Bellossom + cry2 Cry_Marill + cry2 Cry_Azumarill + cry2 Cry_Sudowoodo + cry2 Cry_Politoed + cry2 Cry_Hoppip + cry2 Cry_Skiploom + cry2 Cry_Jumpluff + cry2 Cry_Aipom + cry2 Cry_Sunkern + cry2 Cry_Sunflora + cry2 Cry_Yanma + cry2 Cry_Wooper + cry2 Cry_Quagsire + cry2 Cry_Espeon + cry2 Cry_Umbreon + cry2 Cry_Murkrow + cry2 Cry_Slowking + cry2 Cry_Misdreavus + cry2 Cry_Unown + cry2 Cry_Wobbuffet + cry2 Cry_Girafarig + cry2 Cry_Pineco + cry2 Cry_Forretress + cry2 Cry_Dunsparce + cry2 Cry_Gligar + cry2 Cry_Steelix + cry2 Cry_Snubbull + cry2 Cry_Granbull + cry2 Cry_Qwilfish + cry2 Cry_Scizor + cry2 Cry_Shuckle + cry2 Cry_Heracross + cry2 Cry_Sneasel + cry2 Cry_Teddiursa + cry2 Cry_Ursaring + cry2 Cry_Slugma + cry2 Cry_Magcargo + cry2 Cry_Swinub + cry2 Cry_Piloswine + cry2 Cry_Corsola + cry2 Cry_Remoraid + cry2 Cry_Octillery + cry2 Cry_Delibird + cry2 Cry_Mantine + cry2 Cry_Skarmory + cry2 Cry_Houndour + cry2 Cry_Houndoom + cry2 Cry_Kingdra + cry2 Cry_Phanpy + cry2 Cry_Donphan + cry2 Cry_Porygon2 + cry2 Cry_Stantler + cry2 Cry_Smeargle + cry2 Cry_Tyrogue + cry2 Cry_Hitmontop + cry2 Cry_Smoochum + cry2 Cry_Elekid + cry2 Cry_Magby + cry2 Cry_Miltank + cry2 Cry_Blissey + cry2 Cry_Raikou + cry2 Cry_Entei + cry2 Cry_Suicune + cry2 Cry_Larvitar + cry2 Cry_Pupitar + cry2 Cry_Tyranitar + cry2 Cry_Lugia + cry2 Cry_HoOh + cry2 Cry_Celebi + cry2 Cry_Kecleon + cry2 Cry_Roselia + cry2 Cry_Torkoal + cry2 Cry_Electrike + cry2 Cry_Manectric + cry2 Cry_Duskull + cry2 Cry_Latias + cry2 Cry_Wynaut + cry2 Cry_Seviper + cry2 Cry_Sharpedo + cry2 Cry_Zangoose + cry2 Cry_Azurill + cry2 Cry_Swablu + cry2 Cry_Altaria + cry2 Cry_Unused265 + cry2 Cry_Taillow + cry2 Cry_Swellow + cry2 Cry_Unused268 + cry2 Cry_Spinda + cry2 Cry_Torchic + cry2 Cry_Combusken + cry2 Cry_Blaziken + cry2 Cry_Treecko + cry2 Cry_Grovyle + cry2 Cry_Sceptile + cry2 Cry_Mudkip + cry2 Cry_Marshtomp + cry2 Cry_Swampert + cry2 Cry_Pelipper + cry2 Cry_Wingull + cry2 Cry_Banette + cry2 Cry_Shuppet + cry2 Cry_Lotad + cry2 Cry_Lombre + cry2 Cry_Ludicolo + cry2 Cry_Seedot + cry2 Cry_Nuzleaf + cry2 Cry_Shiftry + cry2 Cry_Carvanha + cry2 Cry_Wurmple + cry2 Cry_Silcoon + cry2 Cry_Beautifly + cry2 Cry_Cascoon + cry2 Cry_Dustox + cry2 Cry_Ralts + cry2 Cry_Kirlia + cry2 Cry_Gardevoir + cry2 Cry_Slakoth + cry2 Cry_Vigoroth + cry2 Cry_Slaking + cry2 Cry_Nincada + cry2 Cry_Ninjask + cry2 Cry_Shedinja + cry2 Cry_Makuhita + cry2 Cry_Hariyama + cry2 Cry_Nosepass + cry2 Cry_Glalie + cry2 Cry_Plusle + cry2 Cry_Minun + cry2 Cry_Surskit + cry2 Cry_Masquerain + cry2 Cry_Skitty + cry2 Cry_Delcatty + cry2 Cry_Gulpin + cry2 Cry_Swalot + cry2 Cry_Numel + cry2 Cry_Camerupt + cry2 Cry_Barboach + cry2 Cry_Whiscash + cry2 Cry_Corphish + cry2 Cry_Crawdaunt + cry2 Cry_Spoink + cry2 Cry_Grumpig + cry2 Cry_Trapinch + cry2 Cry_Vibrava + cry2 Cry_Flygon + cry2 Cry_Cacnea + cry2 Cry_Cacturne + cry2 Cry_Baltoy + cry2 Cry_Claydol + cry2 Cry_Lunatone + cry2 Cry_Solrock + cry2 Cry_Feebas + cry2 Cry_Milotic + cry2 Cry_Absol + cry2 Cry_Meditite + cry2 Cry_Medicham + cry2 Cry_Spheal + cry2 Cry_Sealeo + cry2 Cry_Walrein + cry2 Cry_Clamperl + cry2 Cry_Huntail + cry2 Cry_Gorebyss + cry2 Cry_Lileep + cry2 Cry_Cradily + cry2 Cry_Anorith + cry2 Cry_Armaldo + cry2 Cry_Beldum + cry2 Cry_Metang + cry2 Cry_Metagross + cry2 Cry_Bagon + cry2 Cry_Shelgon + cry2 Cry_Regirock + cry2 Cry_Regice + cry2 Cry_Registeel + cry2 Cry_Castform + cry2 Cry_Volbeat + cry2 Cry_Illumise + cry2 Cry_Poochyena + cry2 Cry_Mightyena + cry2 Cry_Dusclops + cry2 Cry_Sableye + cry2 Cry_Mawile + cry2 Cry_Aron + cry2 Cry_Lairon + cry2 Cry_Aggron + cry2 Cry_Relicanth + cry2 Cry_Luvdisc + cry2 Cry_Groudon + cry2 Cry_Kyogre + cry2 Cry_Rayquaza + cry2 Cry_Salamence + cry2 Cry_Breloom + cry2 Cry_Shroomish + cry2 Cry_Linoone + cry2 Cry_Tropius + cry2 Cry_Wailmer + cry2 Cry_Zigzagoon + cry2 Cry_Exploud + cry2 Cry_Loudred + cry2 Cry_Wailord + cry2 Cry_Whismur + cry2 Cry_Snorunt + cry2 Cry_Latios + cry2 Cry_Jirachi + cry2 Cry_Deoxys + cry2 Cry_Chimecho diff --git a/sound/music_player_table.inc b/sound/music_player_table.inc index de987c9788..6c74a13528 100644 --- a/sound/music_player_table.inc +++ b/sound/music_player_table.inc @@ -1,5 +1,5 @@ .align 2 -gMPlayTable:: @ 86B49C0 +gMPlayTable:: music_player gMPlayInfo_BGM, gMPlayTrack_BGM, 10, 0 music_player gMPlayInfo_SE1, gMPlayTrack_SE1, 3, 1 music_player gMPlayInfo_SE2, gMPlayTrack_SE2, 9, 1 diff --git a/sound/programmable_wave_data.inc b/sound/programmable_wave_data.inc index d984f4fac8..45da43b001 100644 --- a/sound/programmable_wave_data.inc +++ b/sound/programmable_wave_data.inc @@ -1,74 +1,74 @@ -ProgrammableWaveData_86B4830:: @ 86B4830 +ProgrammableWaveData_86B4830:: .incbin "sound/programmable_wave_samples/86B4830.pcm" -ProgrammableWaveData_86B4840:: @ 86B4840 +ProgrammableWaveData_86B4840:: .incbin "sound/programmable_wave_samples/86B4840.pcm" -ProgrammableWaveData_86B4850:: @ 86B4850 +ProgrammableWaveData_86B4850:: .incbin "sound/programmable_wave_samples/86B4850.pcm" -ProgrammableWaveData_86B4860:: @ 86B4860 +ProgrammableWaveData_86B4860:: .incbin "sound/programmable_wave_samples/86B4860.pcm" -ProgrammableWaveData_86B4870:: @ 86B4870 +ProgrammableWaveData_86B4870:: .incbin "sound/programmable_wave_samples/86B4870.pcm" -ProgrammableWaveData_86B4880:: @ 86B4880 +ProgrammableWaveData_86B4880:: .incbin "sound/programmable_wave_samples/86B4880.pcm" -ProgrammableWaveData_86B4890:: @ 86B4890 +ProgrammableWaveData_86B4890:: .incbin "sound/programmable_wave_samples/86B4890.pcm" -ProgrammableWaveData_86B48A0:: @ 86B48A0 +ProgrammableWaveData_86B48A0:: .incbin "sound/programmable_wave_samples/86B48A0.pcm" -ProgrammableWaveData_86B48B0:: @ 86B48B0 +ProgrammableWaveData_86B48B0:: .incbin "sound/programmable_wave_samples/86B48B0.pcm" -ProgrammableWaveData_86B48C0:: @ 86B48C0 +ProgrammableWaveData_86B48C0:: .incbin "sound/programmable_wave_samples/86B48C0.pcm" -ProgrammableWaveData_86B48D0:: @ 86B48D0 +ProgrammableWaveData_86B48D0:: .incbin "sound/programmable_wave_samples/86B48D0.pcm" -ProgrammableWaveData_86B48E0:: @ 86B48E0 +ProgrammableWaveData_86B48E0:: .incbin "sound/programmable_wave_samples/86B48E0.pcm" -ProgrammableWaveData_86B48F0:: @ 86B48F0 +ProgrammableWaveData_86B48F0:: .incbin "sound/programmable_wave_samples/86B48F0.pcm" -ProgrammableWaveData_86B4900:: @ 86B4900 +ProgrammableWaveData_86B4900:: .incbin "sound/programmable_wave_samples/86B4900.pcm" -ProgrammableWaveData_86B4910:: @ 86B4910 +ProgrammableWaveData_86B4910:: .incbin "sound/programmable_wave_samples/86B4910.pcm" -ProgrammableWaveData_86B4920:: @ 86B4920 +ProgrammableWaveData_86B4920:: .incbin "sound/programmable_wave_samples/86B4920.pcm" -ProgrammableWaveData_Unused_86B4930:: @ 86B4930 +ProgrammableWaveData_Unused_86B4930:: .incbin "sound/programmable_wave_samples/unused_86B4930.pcm" -ProgrammableWaveData_Unused_86B4940:: @ 86B4940 +ProgrammableWaveData_Unused_86B4940:: .incbin "sound/programmable_wave_samples/unused_86B4940.pcm" -ProgrammableWaveData_Unused_86B4950:: @ 86B4950 +ProgrammableWaveData_Unused_86B4950:: .incbin "sound/programmable_wave_samples/unused_86B4950.pcm" -ProgrammableWaveData_Unused_86B4960:: @ 86B4960 +ProgrammableWaveData_Unused_86B4960:: .incbin "sound/programmable_wave_samples/unused_86B4960.pcm" -ProgrammableWaveData_86B4970:: @ 86B4970 +ProgrammableWaveData_86B4970:: .incbin "sound/programmable_wave_samples/86B4970.pcm" -ProgrammableWaveData_86B4980:: @ 86B4980 +ProgrammableWaveData_86B4980:: .incbin "sound/programmable_wave_samples/86B4980.pcm" -ProgrammableWaveData_86B4990:: @ 86B4990 +ProgrammableWaveData_86B4990:: .incbin "sound/programmable_wave_samples/86B4990.pcm" -ProgrammableWaveData_86B49A0:: @ 86B49A0 +ProgrammableWaveData_86B49A0:: .incbin "sound/programmable_wave_samples/86B49A0.pcm" -ProgrammableWaveData_86B49B0:: @ 86B49B0 +ProgrammableWaveData_86B49B0:: .incbin "sound/programmable_wave_samples/86B49B0.pcm" diff --git a/sound/song_table.inc b/sound/song_table.inc index ef5b4b48ec..c551a656b9 100644 --- a/sound/song_table.inc +++ b/sound/song_table.inc @@ -1,6 +1,6 @@ .align 2 -gSongTable:: @ 86B49F0 +gSongTable:: song mus_dummy, 0, 0 song se_use_item, 1, 1 song se_pc_login, 1, 1 @@ -613,5 +613,5 @@ gSongTable:: @ 86B49F0 song ph_nurse_solo, 2, 2 .align 2 -dummy_song_header: @ 86B5D00 +dummy_song_header: .byte 0, 0, 0, 0 diff --git a/sound/voicegroups/voicegroup000.inc b/sound/voicegroups/voicegroup000.inc index 96dc02dfba..275b64993d 100644 --- a/sound/voicegroups/voicegroup000.inc +++ b/sound/voicegroups/voicegroup000.inc @@ -1,65 +1,65 @@ .align 2 -voicegroup000:: @ 8675D04 - voice_keysplit_all voicegroup001 @ 8675D04 - voice_keysplit voicegroup005, KeySplitTable1 @ 8675D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D40 - voice_square_2 60, 0, 2, 0, 0, 9, 2 @ 8675D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D64 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 235 @ 8675D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675DC4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 8675DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675DDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E78 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 @ 8675E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675EA8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 115 @ 8675EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675EC0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8675ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F2C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 204, 193, 239 @ 8675F38 - voice_keysplit voicegroup006, KeySplitTable2 @ 8675F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675F98 - voice_keysplit voicegroup007, KeySplitTable3 @ 8675FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675FE0 +voicegroup000:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 0, 9, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 204, 193, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 diff --git a/sound/voicegroups/voicegroup001.inc b/sound/voicegroups/voicegroup001.inc index 1a2447e416..a22c5b6c52 100644 --- a/sound/voicegroups/voicegroup001.inc +++ b/sound/voicegroups/voicegroup001.inc @@ -1,32 +1,32 @@ .align 2 -voicegroup001:: @ 8675FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8675FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867601C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676040 - voice_square_1 60, 0, 0, 2, 0, 1, 6, 0 @ 867604C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676064 - voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 8676070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867607C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86760A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86760AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86760B8 - voice_square_2 60, 0, 2, 0, 1, 6, 0 @ 86760C4 - voice_programmable_wave 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 @ 86760D0 - voice_square_1 60, 0, 0, 2, 0, 1, 6, 0 @ 86760DC - voice_square_2 60, 0, 3, 0, 1, 6, 0 @ 86760E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86760F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867610C - voice_square_1 60, 0, 0, 0, 0, 1, 6, 0 @ 8676118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676130 - voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 255, 0, 255, 0 @ 867613C +voicegroup001:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 1, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 6, 0 + voice_programmable_wave 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 1, 6, 0 + voice_square_2 60, 0, 3, 0, 1, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 0, 0, 1, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 255, 0, 255, 0 diff --git a/sound/voicegroups/voicegroup002.inc b/sound/voicegroups/voicegroup002.inc index 4a727f8e05..3f5d846d4b 100644 --- a/sound/voicegroups/voicegroup002.inc +++ b/sound/voicegroups/voicegroup002.inc @@ -1,57 +1,57 @@ .align 2 -voicegroup002:: @ 8676148 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_oboe, 255, 165, 154, 127 @ 8676148 - voice_directsound 60, 0, DirectSoundWaveData_unused_sd90_oboe, 255, 165, 154, 127 @ 8676154 - voice_directsound 60, 0, DirectSoundWaveData_unused_guitar_separates_power_chord, 255, 165, 206, 127 @ 8676160 - voice_directsound 60, 0, DirectSoundWaveData_unused_sc88pro_unison_slap, 255, 165, 206, 127 @ 867616C - voice_directsound 60, 0, DirectSoundWaveData_unknown_snare, 255, 0, 255, 0 @ 8676178 - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_ohtsuzumi, 255, 0, 255, 0 @ 8676184 - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_hyoushigi, 255, 0, 255, 0 @ 8676190 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_kick, 255, 0, 255, 242 @ 867619C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86761A8 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 86761B4 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 @ 86761C0 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 86761CC - voice_directsound 48, 44, DirectSoundWaveData_unused_sc55_tom, 255, 210, 77, 204 @ 86761D8 - voice_directsound_no_resample 60, 79, DirectSoundWaveData_unknown_close_hihat, 255, 127, 0, 188 @ 86761E4 - voice_directsound 51, 54, DirectSoundWaveData_unused_sc55_tom, 255, 216, 77, 204 @ 86761F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86761FC - voice_directsound 54, 64, DirectSoundWaveData_unused_sc55_tom, 255, 216, 77, 204 @ 8676208 - voice_directsound_no_resample 60, 79, DirectSoundWaveData_unknown_open_hihat, 255, 242, 141, 0 @ 8676214 - voice_directsound 57, 69, DirectSoundWaveData_unused_sc55_tom, 255, 210, 77, 204 @ 8676220 - voice_directsound 60, 79, DirectSoundWaveData_unused_sc55_tom, 255, 204, 77, 204 @ 867622C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676238 - voice_directsound 62, 84, DirectSoundWaveData_unused_sc55_tom, 255, 204, 77, 204 @ 8676244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867625C - voice_directsound_no_resample 70, 49, DirectSoundWaveData_unknown_bell, 255, 165, 103, 231 @ 8676268 - voice_directsound_no_resample 32, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 8676274 - voice_directsound_no_resample 60, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 235, 0, 165 @ 8676280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867628C - voice_directsound_no_resample 30, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 @ 8676298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86762A4 - voice_directsound_no_resample 30, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 @ 86762B0 - voice_directsound_no_resample 30, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 @ 86762BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86762C8 - voice_directsound_no_resample 72, 104, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 86762D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86762E0 - voice_directsound_no_resample 72, 94, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 86762EC - voice_directsound_no_resample 64, 64, DirectSoundWaveData_drum_and_percussion_kick, 255, 0, 255, 0 @ 86762F8 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 180, 175, 228 @ 8676304 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 0, 255, 242 @ 8676310 - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 @ 867631C - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 8676328 - voice_directsound 64, 24, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 8676334 - voice_directsound_no_resample 64, 80, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 8676340 - voice_directsound 68, 34, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 867634C - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 8676358 - voice_directsound 72, 44, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 8676364 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 8676370 - voice_directsound 76, 84, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 867637C - voice_directsound 80, 94, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 8676388 - voice_directsound_no_resample 33, 89, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 8676394 - voice_directsound 84, 104, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 235 @ 86763A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86763AC - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86763B8 - voice_directsound_no_resample 64, 24, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 @ 86763C4 +voicegroup002:: + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_oboe, 255, 165, 154, 127 + voice_directsound 60, 0, DirectSoundWaveData_unused_sd90_oboe, 255, 165, 154, 127 + voice_directsound 60, 0, DirectSoundWaveData_unused_guitar_separates_power_chord, 255, 165, 206, 127 + voice_directsound 60, 0, DirectSoundWaveData_unused_sc88pro_unison_slap, 255, 165, 206, 127 + voice_directsound 60, 0, DirectSoundWaveData_unknown_snare, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_ohtsuzumi, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_hyoushigi, 255, 0, 255, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_kick, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_directsound 48, 44, DirectSoundWaveData_unused_sc55_tom, 255, 210, 77, 204 + voice_directsound_no_resample 60, 79, DirectSoundWaveData_unknown_close_hihat, 255, 127, 0, 188 + voice_directsound 51, 54, DirectSoundWaveData_unused_sc55_tom, 255, 216, 77, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 54, 64, DirectSoundWaveData_unused_sc55_tom, 255, 216, 77, 204 + voice_directsound_no_resample 60, 79, DirectSoundWaveData_unknown_open_hihat, 255, 242, 141, 0 + voice_directsound 57, 69, DirectSoundWaveData_unused_sc55_tom, 255, 210, 77, 204 + voice_directsound 60, 79, DirectSoundWaveData_unused_sc55_tom, 255, 204, 77, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 62, 84, DirectSoundWaveData_unused_sc55_tom, 255, 204, 77, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 70, 49, DirectSoundWaveData_unknown_bell, 255, 165, 103, 231 + voice_directsound_no_resample 32, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_directsound_no_resample 60, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 235, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 30, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 30, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 + voice_directsound_no_resample 30, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 72, 104, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 72, 94, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_drum_and_percussion_kick, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 180, 175, 228 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 0, 255, 242 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_directsound 64, 24, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 64, 80, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_directsound 68, 34, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_directsound 72, 44, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_directsound 76, 84, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound 80, 94, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 33, 89, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound 84, 104, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound_no_resample 64, 24, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 diff --git a/sound/voicegroups/voicegroup003.inc b/sound/voicegroups/voicegroup003.inc index cef9cb5776..6c6193e7d5 100644 --- a/sound/voicegroups/voicegroup003.inc +++ b/sound/voicegroups/voicegroup003.inc @@ -1,57 +1,57 @@ .align 2 -voicegroup003:: @ 86763D0 - voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 86763D0 - voice_directsound_no_resample 64, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 @ 86763DC - voice_directsound_no_resample 64, 89, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 @ 86763E8 - voice_directsound_no_resample 64, 29, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86763F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676400 - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 867640C - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 @ 8676418 - voice_directsound_no_resample 64, 94, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 @ 8676424 - voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 8676430 - voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 867643C - voice_directsound_no_resample 64, 90, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 8676448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867646C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867649C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86764A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86764B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86764C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86764CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86764D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86764E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86764F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86764FC - voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 8676508 - voice_directsound_no_resample 64, 79, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 8676514 - voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 @ 8676520 - voice_directsound_no_resample 64, 24, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 @ 867652C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676544 - voice_directsound_no_resample 64, 104, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 8676550 - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 @ 867655C - voice_directsound 50, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 @ 8676568 - voice_directsound 64, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 @ 8676574 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 @ 8676580 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 180, 175, 228 @ 867658C - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 0, 255, 242 @ 8676598 - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 @ 86765A4 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 86765B0 - voice_directsound 64, 24, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86765BC - voice_directsound_no_resample 64, 80, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 86765C8 - voice_directsound 68, 34, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86765D4 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 86765E0 - voice_directsound 72, 44, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86765EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86765F8 - voice_directsound 76, 84, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 8676604 - voice_directsound 80, 94, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 8676610 - voice_directsound_no_resample 33, 89, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 867661C - voice_directsound 64, 104, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 235 @ 8676628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676634 - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 8676640 - voice_directsound_no_resample 64, 24, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 @ 867664C +voicegroup003:: + voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_directsound_no_resample 64, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 + voice_directsound_no_resample 64, 89, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 + voice_directsound_no_resample 64, 29, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 + voice_directsound_no_resample 64, 94, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 + voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 90, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound_no_resample 64, 79, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 + voice_directsound_no_resample 64, 24, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 104, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 + voice_directsound 50, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 + voice_directsound 64, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 180, 175, 228 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 0, 255, 242 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_directsound 64, 24, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 64, 80, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_directsound 68, 34, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_directsound 72, 44, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 76, 84, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound 80, 94, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 33, 89, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound 64, 104, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound_no_resample 64, 24, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 diff --git a/sound/voicegroups/voicegroup004.inc b/sound/voicegroups/voicegroup004.inc index 367aafa155..786010cb02 100644 --- a/sound/voicegroups/voicegroup004.inc +++ b/sound/voicegroups/voicegroup004.inc @@ -1,93 +1,93 @@ .align 2 -voicegroup004:: @ 8676658 - voice_directsound_no_resample 66, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 8676658 - voice_directsound_no_resample 64, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 @ 8676664 - voice_directsound_no_resample 64, 89, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 @ 8676670 - voice_directsound_no_resample 64, 29, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 867667C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676688 - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 8676694 - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 @ 86766A0 - voice_directsound_no_resample 64, 94, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 @ 86766AC - voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 86766B8 - voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 86766C4 - voice_directsound_no_resample 64, 90, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 86766D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86766DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86766E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86766F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867670C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867673C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676748 - voice_directsound_no_resample 61, 84, DirectSoundWaveData_ethnic_flavours_hyoushigi, 255, 0, 255, 0 @ 8676754 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_ethnic_flavours_ohtsuzumi, 255, 0, 255, 0 @ 8676760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867676C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676784 - voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 8676790 - voice_directsound_no_resample 64, 79, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 867679C - voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 @ 86767A8 - voice_directsound_no_resample 64, 24, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 @ 86767B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86767C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86767CC - voice_directsound_no_resample 64, 104, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 86767D8 - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 @ 86767E4 - voice_directsound 50, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 @ 86767F0 - voice_directsound 64, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 @ 86767FC - voice_directsound 62, 64, DirectSoundWaveData_drum_and_percussion_kick, 255, 0, 255, 0 @ 8676808 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 180, 175, 228 @ 8676814 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 0, 255, 242 @ 8676820 - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 @ 867682C - voice_directsound 65, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 8676838 - voice_directsound 64, 24, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 8676844 - voice_directsound_no_resample 64, 80, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 8676850 - voice_directsound 68, 34, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 867685C - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 8676868 - voice_directsound 72, 44, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 8676874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676880 - voice_directsound 76, 84, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 867688C - voice_directsound 80, 94, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 8676898 - voice_directsound 56, 89, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86768A4 - voice_directsound 64, 104, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 235 @ 86768B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86768BC - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86768C8 - voice_directsound_no_resample 64, 24, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 @ 86768D4 - voice_directsound_no_resample 66, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 86768E0 - voice_directsound 64, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 @ 86768EC - voice_directsound 64, 89, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 @ 86768F8 - voice_directsound 60, 29, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 8676904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676910 - voice_directsound 58, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 867691C - voice_directsound 62, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 @ 8676928 - voice_directsound 64, 94, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 @ 8676934 - voice_directsound 64, 34, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 8676940 - voice_directsound 64, 34, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 867694C - voice_directsound 64, 90, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 8676958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867697C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86769A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86769AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86769B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86769C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86769D0 - voice_directsound 61, 84, DirectSoundWaveData_ethnic_flavours_hyoushigi, 255, 0, 255, 0 @ 86769DC - voice_directsound 64, 64, DirectSoundWaveData_ethnic_flavours_ohtsuzumi, 255, 0, 255, 0 @ 86769E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86769F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676A0C - voice_directsound 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 8676A18 - voice_directsound 64, 79, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 8676A24 - voice_directsound 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 @ 8676A30 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 @ 8676A3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676A54 - voice_directsound 64, 104, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 8676A60 - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 @ 8676A6C - voice_directsound 50, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 @ 8676A78 - voice_directsound 64, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 @ 8676A84 +voicegroup004:: + voice_directsound_no_resample 66, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_directsound_no_resample 64, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 + voice_directsound_no_resample 64, 89, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 + voice_directsound_no_resample 64, 29, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 + voice_directsound_no_resample 64, 94, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 + voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 90, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 61, 84, DirectSoundWaveData_ethnic_flavours_hyoushigi, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_ethnic_flavours_ohtsuzumi, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound_no_resample 64, 79, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 + voice_directsound_no_resample 64, 24, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 104, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 + voice_directsound 50, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 + voice_directsound 64, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 + voice_directsound 62, 64, DirectSoundWaveData_drum_and_percussion_kick, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 180, 175, 228 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 0, 255, 242 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 + voice_directsound 65, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_directsound 64, 24, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 64, 80, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_directsound 68, 34, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_directsound 72, 44, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 76, 84, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound 80, 94, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound 56, 89, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound 64, 104, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound_no_resample 64, 24, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 + voice_directsound_no_resample 66, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_directsound 64, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 + voice_directsound 64, 89, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 + voice_directsound 60, 29, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 58, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound 62, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 + voice_directsound 64, 94, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 + voice_directsound 64, 34, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_directsound 64, 34, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_directsound 64, 90, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 61, 84, DirectSoundWaveData_ethnic_flavours_hyoushigi, 255, 0, 255, 0 + voice_directsound 64, 64, DirectSoundWaveData_ethnic_flavours_ohtsuzumi, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound 64, 79, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 64, 104, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 + voice_directsound 50, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 + voice_directsound 64, 84, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 diff --git a/sound/voicegroups/voicegroup005.inc b/sound/voicegroups/voicegroup005.inc index cd5c2d7668..efeab963b5 100644 --- a/sound/voicegroups/voicegroup005.inc +++ b/sound/voicegroups/voicegroup005.inc @@ -1,7 +1,7 @@ .align 2 -voicegroup005:: @ 8676A90 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_piano1_48, 255, 252, 0, 239 @ 8676A90 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_piano1_60, 255, 250, 0, 221 @ 8676A9C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_piano1_72, 255, 250, 0, 221 @ 8676AA8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_piano1_84, 255, 247, 0, 221 @ 8676AB4 +voicegroup005:: + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_piano1_48, 255, 252, 0, 239 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_piano1_60, 255, 250, 0, 221 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_piano1_72, 255, 250, 0, 221 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_piano1_84, 255, 247, 0, 221 diff --git a/sound/voicegroups/voicegroup006.inc b/sound/voicegroups/voicegroup006.inc index fc030a26cf..156caa6b5d 100644 --- a/sound/voicegroups/voicegroup006.inc +++ b/sound/voicegroups/voicegroup006.inc @@ -1,6 +1,6 @@ .align 2 -voicegroup006:: @ 8676AC0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_string_ensemble_60, 255, 0, 255, 196 @ 8676AC0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_string_ensemble_72, 255, 0, 255, 196 @ 8676ACC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_string_ensemble_84, 255, 0, 255, 196 @ 8676AD8 +voicegroup006:: + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_string_ensemble_60, 255, 0, 255, 196 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_string_ensemble_72, 255, 0, 255, 196 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_string_ensemble_84, 255, 0, 255, 196 diff --git a/sound/voicegroups/voicegroup007.inc b/sound/voicegroups/voicegroup007.inc index 1214ddd4eb..be49a69410 100644 --- a/sound/voicegroups/voicegroup007.inc +++ b/sound/voicegroups/voicegroup007.inc @@ -1,134 +1,134 @@ .align 2 -voicegroup007:: @ 8676AE4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_trumpet_60, 255, 0, 193, 127 @ 8676AE4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_trumpet_72, 255, 0, 193, 127 @ 8676AF0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_trumpet_84, 255, 0, 193, 127 @ 8676AFC - voice_square_1_alt 60, 0, 38, 2, 1, 0, 0, 0 @ 8676B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676E98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8676FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867700C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867703C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867706C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867709C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86770A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86770B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86770C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86770CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86770D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86770E4 - voice_square_1_alt 60, 0, 36, 2, 0, 1, 4, 2 @ 86770F0 - voice_square_1_alt 60, 0, 21, 2, 0, 0, 15, 2 @ 86770FC +voicegroup007:: + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_trumpet_60, 255, 0, 193, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_trumpet_72, 255, 0, 193, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_trumpet_84, 255, 0, 193, 127 + voice_square_1_alt 60, 0, 38, 2, 1, 0, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 36, 2, 0, 1, 4, 2 + voice_square_1_alt 60, 0, 21, 2, 0, 0, 15, 2 diff --git a/sound/voicegroups/voicegroup008.inc b/sound/voicegroups/voicegroup008.inc index c0d87ce5d1..ba9ba6b27c 100644 --- a/sound/voicegroups/voicegroup008.inc +++ b/sound/voicegroups/voicegroup008.inc @@ -1,5 +1,5 @@ .align 2 -voicegroup008:: @ 8677108 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tuba_39, 255, 0, 255, 165 @ 8677108 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tuba_51, 255, 0, 255, 165 @ 8677114 +voicegroup008:: + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tuba_39, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tuba_51, 255, 0, 255, 165 diff --git a/sound/voicegroups/voicegroup009.inc b/sound/voicegroups/voicegroup009.inc index ebf550a033..afa7a0f6ca 100644 --- a/sound/voicegroups/voicegroup009.inc +++ b/sound/voicegroups/voicegroup009.inc @@ -1,5 +1,5 @@ .align 2 -voicegroup009:: @ 8677120 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_french_horn_60, 255, 0, 224, 165 @ 8677120 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_french_horn_72, 255, 0, 218, 165 @ 867712C +voicegroup009:: + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_french_horn_60, 255, 0, 224, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_french_horn_72, 255, 0, 218, 165 diff --git a/sound/voicegroups/voicegroup010.inc b/sound/voicegroups/voicegroup010.inc index f4fe73e93f..c92a030f2d 100644 --- a/sound/voicegroups/voicegroup010.inc +++ b/sound/voicegroups/voicegroup010.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup010:: @ 8677138 - voice_keysplit_all voicegroup031 @ 8677138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867715C - voice_square_2 60, 0, 3, 0, 4, 0, 1 @ 8677168 - voice_square_1 60, 0, 0, 3, 0, 4, 0, 1 @ 8677174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867718C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86771A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86771B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86771BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86771C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86771D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 @ 86771E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86771EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86771F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867721C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867724C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867727C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86772A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86772AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86772B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86772C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86772D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86772DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86772E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86772F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867730C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867733C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677354 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 @ 8677360 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867736C - voice_keysplit voicegroup006, KeySplitTable2 @ 8677378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867739C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86773A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86773B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86773C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86773CC - voice_keysplit voicegroup007, KeySplitTable3 @ 86773D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86773E4 - voice_keysplit voicegroup008, KeySplitTable4 @ 86773F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86773FC - voice_keysplit voicegroup009, KeySplitTable5 @ 8677408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867742C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867745C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867748C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86774A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86774B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86774BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86774C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86774D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86774E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86774EC - voice_square_2 60, 0, 3, 0, 1, 7, 1 @ 86774F8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 @ 8677504 - voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 @ 8677510 - voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 @ 867751C +voicegroup010:: + voice_keysplit_all voicegroup031 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 0, 4, 0, 1 + voice_square_1 60, 0, 0, 3, 0, 4, 0, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 diff --git a/sound/voicegroups/voicegroup011.inc b/sound/voicegroups/voicegroup011.inc index 8102d59f4d..8c9b120c90 100644 --- a/sound/voicegroups/voicegroup011.inc +++ b/sound/voicegroups/voicegroup011.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup011:: @ 8677528 - voice_keysplit_all voicegroup022 @ 8677528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867754C - voice_square_1_alt 60, 0, 0, 3, 0, 2, 4, 0 @ 8677558 - voice_square_2_alt 60, 0, 3, 0, 2, 4, 0 @ 8677564 - voice_square_2_alt 60, 0, 2, 0, 3, 0, 0 @ 8677570 - voice_square_2_alt 60, 0, 2, 0, 3, 0, 0 @ 867757C - voice_square_1_alt 60, 0, 0, 2, 0, 3, 0, 0 @ 8677588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86775A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86775AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86775B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86775C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86775D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86775DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86775E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86775F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867760C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867763C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 149 @ 8677648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867766C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867769C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86776A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86776B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86776C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 @ 86776CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86776D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86776E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86776F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86776FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867772C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867775C - voice_keysplit voicegroup006, KeySplitTable2 @ 8677768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867778C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86777A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86777B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86777BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86777C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86777D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86777E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86777EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86777F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867781C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867784C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867787C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677888 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 8677894 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 86778A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86778AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86778B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86778C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86778D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86778DC - voice_square_2_alt 60, 0, 2, 1, 1, 7, 1 @ 86778E8 - voice_square_1_alt 60, 0, 0, 2, 1, 1, 7, 1 @ 86778F4 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 1 @ 8677900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867790C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867793C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867796C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867799C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86779A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86779B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86779C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86779CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86779D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86779E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86779F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86779FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677B10 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8677B1C +voicegroup011:: + voice_keysplit_all voicegroup022 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 2, 4, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 4, 0 + voice_square_2_alt 60, 0, 2, 0, 3, 0, 0 + voice_square_2_alt 60, 0, 2, 0, 3, 0, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 3, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 1, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 2, 1, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup012.inc b/sound/voicegroups/voicegroup012.inc index 670ae65537..4f94f1b1d3 100644 --- a/sound/voicegroups/voicegroup012.inc +++ b/sound/voicegroups/voicegroup012.inc @@ -1,105 +1,105 @@ .align 2 -voicegroup012:: @ 8677B28 - voice_keysplit_all voicegroup001 @ 8677B28 - voice_keysplit voicegroup005, KeySplitTable1 @ 8677B34 - voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 255, 178, 180, 165 @ 8677B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677B88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 235 @ 8677B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677BB8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8677BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677CE4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8677CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D44 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 @ 8677D50 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 8677D5C - voice_keysplit voicegroup006, KeySplitTable2 @ 8677D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677DBC - voice_keysplit voicegroup007, KeySplitTable3 @ 8677DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677DD4 - voice_keysplit voicegroup008, KeySplitTable4 @ 8677DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677DEC - voice_keysplit voicegroup009, KeySplitTable5 @ 8677DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677E88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 8677E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677EDC - voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 @ 8677EE8 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 @ 8677EF4 - voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 @ 8677F00 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 1 @ 8677F0C - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 8677F18 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8677F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677F30 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 @ 8677F3C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 @ 8677F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677F54 - voice_square_2 60, 0, 2, 0, 1, 4, 1 @ 8677F60 - voice_square_1 60, 0, 0, 2, 0, 1, 4, 1 @ 8677F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677FCC - voice_square_1_alt 60, 0, 29, 2, 0, 2, 0, 0 @ 8677FD8 - voice_square_1_alt 60, 0, 22, 2, 0, 2, 0, 0 @ 8677FE4 +voicegroup012:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 255, 178, 180, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 29, 2, 0, 2, 0, 0 + voice_square_1_alt 60, 0, 22, 2, 0, 2, 0, 0 diff --git a/sound/voicegroups/voicegroup013.inc b/sound/voicegroups/voicegroup013.inc index b8a05c59e1..4625bd9d82 100644 --- a/sound/voicegroups/voicegroup013.inc +++ b/sound/voicegroups/voicegroup013.inc @@ -1,93 +1,93 @@ .align 2 -voicegroup013:: @ 8677FF0 - voice_keysplit_all voicegroup001 @ 8677FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8677FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867802C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867805C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867808C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86780A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86780B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86780BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86780C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86780D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86780E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86780EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86780F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867811C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867814C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867817C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86781A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86781AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86781B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86781C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86781D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86781DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86781E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86781F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867820C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678218 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 8678224 - voice_keysplit voicegroup006, KeySplitTable2 @ 8678230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867823C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867826C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678284 - voice_keysplit voicegroup007, KeySplitTable3 @ 8678290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867829C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86782A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86782B4 - voice_keysplit voicegroup009, KeySplitTable5 @ 86782C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86782CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86782D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86782E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86782F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86782FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867832C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867835C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867838C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86783A4 - voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 @ 86783B0 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 @ 86783BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86783C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86783D4 - voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 @ 86783E0 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 1 @ 86783EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86783F8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 8678404 - voice_square_1_alt 60, 0, 0, 1, 0, 0, 7, 1 @ 8678410 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 1 @ 867841C +voicegroup013:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 0, 7, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 1 diff --git a/sound/voicegroups/voicegroup014.inc b/sound/voicegroups/voicegroup014.inc index 6506a7e487..d9cb8b079e 100644 --- a/sound/voicegroups/voicegroup014.inc +++ b/sound/voicegroups/voicegroup014.inc @@ -1,88 +1,88 @@ .align 2 -voicegroup014:: @ 8678428 - voice_keysplit_all voicegroup001 @ 8678428 - voice_keysplit voicegroup005, KeySplitTable1 @ 8678434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867844C - voice_square_2_alt 60, 0, 3, 0, 1, 6, 1 @ 8678458 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 6, 1 @ 8678464 - voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 @ 8678470 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 1 @ 867847C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86784A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86784AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86784B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86784C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86784D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86784DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86784E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86784F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867850C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867853C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 149 @ 8678548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867856C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867859C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86785A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86785B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86785C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86785CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86785D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86785E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86785F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86785FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867862C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678644 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 8678650 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867865C - voice_keysplit voicegroup006, KeySplitTable2 @ 8678668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867868C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86786A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86786B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86786BC - voice_keysplit voicegroup007, KeySplitTable3 @ 86786C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86786D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86786E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86786EC - voice_keysplit voicegroup009, KeySplitTable5 @ 86786F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867871C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867874C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867877C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678788 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 8678794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86787A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86787AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86787B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86787C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86787D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86787DC - voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 @ 86787E8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 86787F4 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 1 @ 8678800 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 @ 867880C - voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 0 @ 8678818 +voicegroup014:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 6, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 6, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 0 diff --git a/sound/voicegroups/voicegroup015.inc b/sound/voicegroups/voicegroup015.inc index a1dc7899ce..530e017cd0 100644 --- a/sound/voicegroups/voicegroup015.inc +++ b/sound/voicegroups/voicegroup015.inc @@ -1,95 +1,95 @@ .align 2 -voicegroup015:: @ 8678824 - voice_keysplit_all voicegroup016 @ 8678824 - voice_keysplit voicegroup005, KeySplitTable1 @ 8678830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867883C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867886C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867889C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86788A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86788B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86788C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86788CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86788D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86788E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86788F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86788FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867892C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678938 - voice_square_2 60, 0, 3, 0, 2, 0, 0 @ 8678944 - voice_square_1 60, 0, 0, 3, 0, 2, 0, 0 @ 8678950 - voice_square_2 60, 0, 3, 0, 6, 0, 0 @ 867895C - voice_square_1 60, 0, 0, 3, 0, 6, 0, 0 @ 8678968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867898C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86789A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86789B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86789BC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 @ 86789C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86789D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86789E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86789EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86789F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A58 - voice_keysplit voicegroup006, KeySplitTable2 @ 8678A64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678AB8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 8678AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678B84 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 8678B90 - voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 8678B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678BE4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 8678BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C68 +voicegroup015:: + voice_keysplit_all voicegroup016 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 0, 2, 0, 0 + voice_square_1 60, 0, 0, 3, 0, 2, 0, 0 + voice_square_2 60, 0, 3, 0, 6, 0, 0 + voice_square_1 60, 0, 0, 3, 0, 6, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 diff --git a/sound/voicegroups/voicegroup016.inc b/sound/voicegroups/voicegroup016.inc index ca495e050d..2013f88828 100644 --- a/sound/voicegroups/voicegroup016.inc +++ b/sound/voicegroups/voicegroup016.inc @@ -1,68 +1,68 @@ .align 2 -voicegroup016:: @ 8678C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678DDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E00 - voice_noise_alt 60, 0, 0, 0, 2, 0, 2 @ 8678E0C - voice_noise_alt 60, 0, 0, 0, 1, 0, 1 @ 8678E18 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_kick, 255, 0, 255, 242 @ 8678E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E30 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 8678E3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E48 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 8678E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678EF0 - voice_directsound_no_resample 32, 74, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 8678EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678F50 - voice_directsound_no_resample 72, 66, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 8678F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678F68 - voice_directsound_no_resample 72, 62, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 8678F74 +voicegroup016:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 0, 2 + voice_noise_alt 60, 0, 0, 0, 1, 0, 1 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_kick, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 32, 74, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 72, 66, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 72, 62, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 diff --git a/sound/voicegroups/voicegroup017.inc b/sound/voicegroups/voicegroup017.inc index 3064a4bd17..ac3768c10d 100644 --- a/sound/voicegroups/voicegroup017.inc +++ b/sound/voicegroups/voicegroup017.inc @@ -1,94 +1,94 @@ .align 2 -voicegroup017:: @ 8678F80 - voice_keysplit_all voicegroup001 @ 8678F80 - voice_square_2_alt 60, 0, 2, 0, 3, 3, 1 @ 8678F8C - voice_square_1_alt 60, 0, 0, 2, 0, 3, 3, 1 @ 8678F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678FA4 - voice_square_2_alt 60, 0, 2, 0, 1, 7, 2 @ 8678FB0 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 2 @ 8678FBC - voice_square_2_alt 60, 0, 2, 1, 1, 0, 0 @ 8678FC8 - voice_square_1_alt 60, 0, 0, 2, 1, 1, 0, 0 @ 8678FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8678FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867901C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867904C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867907C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86790A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86790AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86790B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86790C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86790D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86790DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86790E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86790F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867910C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867913C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867916C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679190 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 867919C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 @ 86791A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86791B4 - voice_keysplit voicegroup006, KeySplitTable2 @ 86791C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86791CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86791D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86791E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86791F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86791FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867922C - voice_keysplit voicegroup008, KeySplitTable4 @ 8679238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679244 - voice_keysplit voicegroup009, KeySplitTable5 @ 8679250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867925C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867928C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86792A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86792B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86792BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86792C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86792D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86792E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86792EC - voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 86792F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867931C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679334 - voice_square_2_alt 60, 0, 2, 1, 1, 7, 2 @ 8679340 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 @ 867934C - voice_square_1_alt 60, 0, 0, 2, 1, 1, 7, 2 @ 8679358 - voice_square_2_alt 60, 0, 3, 1, 1, 7, 2 @ 8679364 - voice_square_1_alt 60, 0, 0, 3, 1, 1, 7, 2 @ 8679370 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 3 @ 867937C - voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 2 @ 8679388 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 2 @ 8679394 - voice_square_2_alt 60, 0, 1, 1, 2, 6, 2 @ 86793A0 - voice_square_1_alt 60, 0, 0, 1, 1, 2, 6, 2 @ 86793AC - voice_square_1_alt 60, 0, 0, 1, 0, 0, 6, 2 @ 86793B8 +voicegroup017:: + voice_keysplit_all voicegroup001 + voice_square_2_alt 60, 0, 2, 0, 3, 3, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 3, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 2 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 2 + voice_square_2_alt 60, 0, 2, 1, 1, 0, 0 + voice_square_1_alt 60, 0, 0, 2, 1, 1, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 1, 1, 7, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 + voice_square_1_alt 60, 0, 0, 2, 1, 1, 7, 2 + voice_square_2_alt 60, 0, 3, 1, 1, 7, 2 + voice_square_1_alt 60, 0, 0, 3, 1, 1, 7, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 3 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 2 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 2 + voice_square_2_alt 60, 0, 1, 1, 2, 6, 2 + voice_square_1_alt 60, 0, 0, 1, 1, 2, 6, 2 + voice_square_1_alt 60, 0, 0, 1, 0, 0, 6, 2 diff --git a/sound/voicegroups/voicegroup018.inc b/sound/voicegroups/voicegroup018.inc index 58f9d1b48a..466f423856 100644 --- a/sound/voicegroups/voicegroup018.inc +++ b/sound/voicegroups/voicegroup018.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup018:: @ 86793C4 - voice_keysplit_all voicegroup001 @ 86793C4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86793D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86793DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86793E8 - voice_square_2_alt 60, 0, 0, 0, 1, 7, 1 @ 86793F4 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 1 @ 8679400 - voice_square_1_alt 60, 0, 0, 0, 0, 0, 7, 1 @ 867940C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867943C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867946C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867949C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86794A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86794B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86794C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86794CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86794D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86794E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86794F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86794FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867952C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867955C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867958C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86795A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86795B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86795BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86795C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86795D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 86795E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86795EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86795F8 - voice_keysplit voicegroup006, KeySplitTable2 @ 8679604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867961C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867964C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867967C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86796A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86796AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86796B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86796C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86796D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86796DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86796E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86796F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867970C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679724 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 8679730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867973C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867976C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679778 - voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 @ 8679784 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 @ 8679790 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 @ 867979C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86797A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86797B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86797C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86797CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86797D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86797E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86797F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86797FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867982C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867985C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867988C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86798A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86798B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86798BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86798C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86798D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86798E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86798EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86798F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867991C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867994C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867997C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86799A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86799AC - voice_noise_alt 60, 0, 1, 0, 1, 0, 3 @ 86799B8 +voicegroup018:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 0, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 1, 0, 1, 0, 3 diff --git a/sound/voicegroups/voicegroup019.inc b/sound/voicegroups/voicegroup019.inc index 31f17c73d7..5d18c1e692 100644 --- a/sound/voicegroups/voicegroup019.inc +++ b/sound/voicegroups/voicegroup019.inc @@ -1,88 +1,88 @@ .align 2 -voicegroup019:: @ 86799C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86799C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86799D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86799DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86799E8 - voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 @ 86799F4 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 @ 8679A00 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 1 @ 8679A0C - voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 1 @ 8679A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679BD4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 8679BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679BF8 - voice_keysplit voicegroup006, KeySplitTable2 @ 8679C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C70 - voice_keysplit voicegroup008, KeySplitTable4 @ 8679C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679C88 - voice_keysplit voicegroup009, KeySplitTable5 @ 8679C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D24 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 8679D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679D78 - voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 @ 8679D84 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 2 @ 8679D90 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 @ 8679D9C - voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 1 @ 8679DA8 - voice_square_1_alt 60, 0, 0, 1, 0, 0, 7, 1 @ 8679DB4 +voicegroup019:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 2 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 0, 7, 1 diff --git a/sound/voicegroups/voicegroup020.inc b/sound/voicegroups/voicegroup020.inc index a0e51c67de..2c5494c791 100644 --- a/sound/voicegroups/voicegroup020.inc +++ b/sound/voicegroups/voicegroup020.inc @@ -1,90 +1,90 @@ .align 2 -voicegroup020:: @ 8679DC0 - voice_keysplit voicegroup005, KeySplitTable1 @ 8679DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679E98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679FD0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 8679FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8679FF4 - voice_keysplit voicegroup006, KeySplitTable2 @ 867A000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A00C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A03C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A06C - voice_keysplit voicegroup008, KeySplitTable4 @ 867A078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A09C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A0A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A0B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A0C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A0CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A0D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A0E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A0F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A0FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A12C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A15C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A174 - voice_square_2 60, 0, 2, 0, 1, 7, 1 @ 867A180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A18C - voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 @ 867A198 - voice_square_2_alt 60, 0, 1, 0, 1, 6, 2 @ 867A1A4 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 6, 2 @ 867A1B0 - voice_square_1_alt 60, 0, 0, 1, 0, 0, 6, 2 @ 867A1BC - voice_square_1 60, 0, 0, 2, 0, 0, 7, 1 @ 867A1C8 +voicegroup020:: + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 6, 2 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 6, 2 + voice_square_1_alt 60, 0, 0, 1, 0, 0, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 7, 1 diff --git a/sound/voicegroups/voicegroup021.inc b/sound/voicegroups/voicegroup021.inc index 8ae95ef436..70698a668e 100644 --- a/sound/voicegroups/voicegroup021.inc +++ b/sound/voicegroups/voicegroup021.inc @@ -1,54 +1,54 @@ .align 2 -voicegroup021:: @ 867A1D4 - voice_keysplit_all voicegroup001 @ 867A1D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A1E0 - voice_square_2_alt 60, 0, 3, 0, 2, 0, 0 @ 867A1EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A1F8 - voice_square_2_alt 60, 0, 3, 0, 1, 6, 0 @ 867A204 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 6, 0 @ 867A210 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 6, 0 @ 867A21C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A24C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A27C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A2A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A2AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A2B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A2C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A2D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A2DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A2E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A2F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A30C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A33C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A36C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A39C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A3A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A3B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A3C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A3CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A3D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A3E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A3F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A3FC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867A408 - voice_keysplit voicegroup006, KeySplitTable2 @ 867A414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A42C +voicegroup021:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 6, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 6, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 diff --git a/sound/voicegroups/voicegroup022.inc b/sound/voicegroups/voicegroup022.inc index c30a74351b..bd64fd856c 100644 --- a/sound/voicegroups/voicegroup022.inc +++ b/sound/voicegroups/voicegroup022.inc @@ -1,68 +1,68 @@ .align 2 -voicegroup022:: @ 867A438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A45C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A468 - voice_keysplit voicegroup007, KeySplitTable3 @ 867A474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A480 - voice_keysplit voicegroup008, KeySplitTable4 @ 867A48C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A498 - voice_keysplit voicegroup009, KeySplitTable5 @ 867A4A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A4B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A4BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A4C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A4D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A4E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A4EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A4F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A51C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A534 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 867A540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A54C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A57C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A588 - voice_square_2_alt 60, 0, 0, 0, 1, 7, 0 @ 867A594 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 867A5A0 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 0 @ 867A5AC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 @ 867A5B8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 867A5C4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 1 @ 867A5D0 - voice_square_1_alt 60, 0, 0, 0, 0, 0, 7, 0 @ 867A5DC - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_kick, 255, 0, 255, 242 @ 867A5E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A5F4 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 867A600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A60C - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 867A618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A63C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A66C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A69C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A6A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A6B4 - voice_directsound_no_resample 32, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 867A6C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A6CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A6D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A6E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A6F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A6FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A714 - voice_directsound_no_resample 72, 67, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 867A720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A72C - voice_directsound_no_resample 72, 61, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 867A738 +voicegroup022:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 7, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 0, 7, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_kick, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 32, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 72, 67, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 72, 61, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 diff --git a/sound/voicegroups/voicegroup023.inc b/sound/voicegroups/voicegroup023.inc index 543ba17954..059999c8b8 100644 --- a/sound/voicegroups/voicegroup023.inc +++ b/sound/voicegroups/voicegroup023.inc @@ -1,92 +1,92 @@ .align 2 -voicegroup023:: @ 867A744 - voice_keysplit voicegroup005, KeySplitTable1 @ 867A744 - voice_keysplit_all voicegroup001 @ 867A750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A75C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A78C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A7A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A7B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A7BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A7C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A7D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A7E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A7EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A7F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A81C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A84C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A87C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A8A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A8AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A8B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A8C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A8D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A8DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 @ 867A8E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A8F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A90C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A93C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A960 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 867A96C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A978 - voice_keysplit voicegroup006, KeySplitTable2 @ 867A984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A99C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A9A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A9B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A9C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A9CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A9D8 - voice_keysplit voicegroup007, KeySplitTable3 @ 867A9E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A9F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867A9FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AA98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AAA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AAB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AAC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AAD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AAE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AAEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AAF8 - voice_square_2_alt 60, 0, 2, 0, 1, 7, 0 @ 867AB04 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 867AB10 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 0 @ 867AB1C - voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 @ 867AB28 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 1 @ 867AB34 - voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 @ 867AB40 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 @ 867AB4C - voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 0 @ 867AB58 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 0 @ 867AB64 +voicegroup023:: + voice_keysplit voicegroup005, KeySplitTable1 + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 1 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 0 diff --git a/sound/voicegroups/voicegroup024.inc b/sound/voicegroups/voicegroup024.inc index db85541cd5..ca05a59165 100644 --- a/sound/voicegroups/voicegroup024.inc +++ b/sound/voicegroups/voicegroup024.inc @@ -1,94 +1,94 @@ .align 2 -voicegroup024:: @ 867AB70 - voice_keysplit_all voicegroup001 @ 867AB70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AB7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AB88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AB94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ABA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ABAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ABB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ABC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ABD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ABDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ABE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ABF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AC9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ACA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ACB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ACC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ACCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ACD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ACE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ACF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ACFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD80 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 867AD8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AD98 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867ADA4 - voice_keysplit voicegroup006, KeySplitTable2 @ 867ADB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ADBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ADC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ADD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ADE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ADEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ADF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE04 - voice_keysplit voicegroup007, KeySplitTable3 @ 867AE10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE34 - voice_keysplit voicegroup009, KeySplitTable5 @ 867AE40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AE94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AEA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AEAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AEB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AEC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AED0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 867AEDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AEE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AEF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AF00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AF0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AF18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AF24 - voice_square_2_alt 60, 0, 2, 0, 1, 7, 0 @ 867AF30 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 867AF3C - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 0 @ 867AF48 - voice_square_2_alt 60, 0, 2, 0, 2, 0, 0 @ 867AF54 - voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 @ 867AF60 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 @ 867AF6C - voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 0 @ 867AF78 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 0 @ 867AF84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AF90 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 @ 867AF9C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 867AFA8 +voicegroup024:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 0, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 diff --git a/sound/voicegroups/voicegroup025.inc b/sound/voicegroups/voicegroup025.inc index e9d68d30a0..01716b47d9 100644 --- a/sound/voicegroups/voicegroup025.inc +++ b/sound/voicegroups/voicegroup025.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup025:: @ 867AFB4 - voice_keysplit_all voicegroup001 @ 867AFB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AFC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AFCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AFD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AFE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AFF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867AFFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B02C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B05C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B08C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B0A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B0B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B0BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B0C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B0D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B0E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B0EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B0F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B11C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B14C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B17C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B1A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B1AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B1B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B1C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B1D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B1DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867B1E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B1F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B20C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B23C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B248 - voice_keysplit voicegroup007, KeySplitTable3 @ 867B254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B260 - voice_keysplit voicegroup008, KeySplitTable4 @ 867B26C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B29C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B2A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B2B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B2C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B2CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B2D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B2E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B2F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B2FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B314 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 867B320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B32C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B35C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B368 - voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 @ 867B374 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 867B380 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 @ 867B38C - voice_square_2_alt 60, 0, 2, 0, 1, 0, 0 @ 867B398 +voicegroup025:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup026.inc b/sound/voicegroups/voicegroup026.inc index 77f308ed90..7911f04099 100644 --- a/sound/voicegroups/voicegroup026.inc +++ b/sound/voicegroups/voicegroup026.inc @@ -1,88 +1,88 @@ .align 2 -voicegroup026:: @ 867B3A4 - voice_keysplit_all voicegroup001 @ 867B3A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B3B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B3BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B3C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B3D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B3E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B3EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B3F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B41C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B44C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B47C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B4A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B4AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B4B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B4C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B4D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B4DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B4E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B4F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B50C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B53C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B56C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B59C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B5A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B5B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B5C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B5CC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867B5D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B5E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B5F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B5FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B62C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B65C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B668 - voice_keysplit voicegroup009, KeySplitTable5 @ 867B674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B68C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B6A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B6B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B6BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B6C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B6D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B6E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B6EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B6F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B71C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B74C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B758 - voice_square_2_alt 60, 0, 2, 0, 1, 9, 0 @ 867B764 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 @ 867B770 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 9, 0 @ 867B77C - voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 @ 867B788 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 @ 867B794 +voicegroup026:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 9, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 9, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 diff --git a/sound/voicegroups/voicegroup027.inc b/sound/voicegroups/voicegroup027.inc index 1747fbe672..c350886569 100644 --- a/sound/voicegroups/voicegroup027.inc +++ b/sound/voicegroups/voicegroup027.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup027:: @ 867B7A0 - voice_keysplit_all voicegroup001 @ 867B7A0 - voice_keysplit voicegroup005, KeySplitTable1 @ 867B7AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B7B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B7C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B7D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B7DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B7E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B7F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B80C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B830 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 867B83C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B86C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B89C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B8A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B8B4 - voice_square_2 60, 0, 1, 0, 2, 0, 0 @ 867B8C0 - voice_square_1 60, 0, 0, 1, 0, 2, 0, 0 @ 867B8CC - voice_square_2 60, 0, 1, 0, 6, 0, 0 @ 867B8D8 - voice_square_1 60, 0, 0, 1, 0, 6, 0, 0 @ 867B8E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B8F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B8FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B92C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B95C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 867B968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B98C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B9A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B9B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B9BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B9C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B9D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B9E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B9EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867B9F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BA94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BAA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BAAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BAB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BAC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BAD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BAE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BAF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB00 - voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 867BB0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB60 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 867BB6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BB9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BBA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BBB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BBC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BBCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BBD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BBE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BBF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BBFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BC98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BCA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BCB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BCBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BCC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BCD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BCE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BCEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BCF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BD7C - voice_noise_alt 60, 0, 0, 0, 4, 1, 4 @ 867BD88 - voice_noise_alt 60, 0, 0, 0, 1, 0, 2 @ 867BD94 +voicegroup027:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 1, 0, 2, 0, 0 + voice_square_1 60, 0, 0, 1, 0, 2, 0, 0 + voice_square_2 60, 0, 1, 0, 6, 0, 0 + voice_square_1 60, 0, 0, 1, 0, 6, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 4, 1, 4 + voice_noise_alt 60, 0, 0, 0, 1, 0, 2 diff --git a/sound/voicegroups/voicegroup028.inc b/sound/voicegroups/voicegroup028.inc index 2b64c6b312..73413c99e9 100644 --- a/sound/voicegroups/voicegroup028.inc +++ b/sound/voicegroups/voicegroup028.inc @@ -1,86 +1,86 @@ .align 2 -voicegroup028:: @ 867BDA0 - voice_keysplit_all voicegroup001 @ 867BDA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BDAC - voice_square_1 60, 0, 0, 3, 0, 1, 0, 0 @ 867BDB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BDC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BDD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BDDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BDE8 - voice_square_2 60, 0, 0, 0, 2, 0, 0 @ 867BDF4 - voice_square_1 60, 0, 0, 0, 0, 2, 0, 0 @ 867BE00 - voice_square_2 60, 0, 0, 0, 6, 0, 0 @ 867BE0C - voice_square_1 60, 0, 0, 0, 0, 6, 0, 0 @ 867BE18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE60 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 867BE6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BE9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BEA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BEB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BEC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BEE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BEF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BEFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF44 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 867BF50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BF98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BFA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BFB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BFBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BFC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BFD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BFE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BFEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867BFF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C01C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C034 - voice_keysplit voicegroup007, KeySplitTable3 @ 867C040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C04C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C07C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C0A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C0AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C0B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C0C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C0D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C0DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C0E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C0F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C10C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C13C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C154 - voice_square_2 60, 0, 2, 0, 2, 0, 0 @ 867C160 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 867C16C - voice_square_2 60, 0, 3, 0, 4, 0, 0 @ 867C178 +voicegroup028:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 3, 0, 1, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 0, 0, 2, 0, 0 + voice_square_1 60, 0, 0, 0, 0, 2, 0, 0 + voice_square_2 60, 0, 0, 0, 6, 0, 0 + voice_square_1 60, 0, 0, 0, 0, 6, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 2, 0, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_2 60, 0, 3, 0, 4, 0, 0 diff --git a/sound/voicegroups/voicegroup029.inc b/sound/voicegroups/voicegroup029.inc index e413078730..4b7704be04 100644 --- a/sound/voicegroups/voicegroup029.inc +++ b/sound/voicegroups/voicegroup029.inc @@ -1,91 +1,91 @@ .align 2 -voicegroup029:: @ 867C184 - voice_keysplit_all voicegroup001 @ 867C184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C19C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C1A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C1B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C1C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C1CC - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 867C1D8 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 0 @ 867C1E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C1F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C1FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C208 - voice_square_2_alt 60, 0, 2, 0, 2, 0, 0 @ 867C214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C220 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 @ 867C22C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C25C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C28C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C2A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C2B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C2BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C2C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C2D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C2E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C2EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C2F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C31C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C34C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C37C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C394 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 867C3A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C3AC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867C3B8 - voice_keysplit voicegroup006, KeySplitTable2 @ 867C3C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C3D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C3DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C3E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C3F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C40C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C418 - voice_keysplit voicegroup007, KeySplitTable3 @ 867C424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C43C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C448 - voice_keysplit voicegroup009, KeySplitTable5 @ 867C454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C46C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C49C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C4A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C4B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C4C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C4CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C4D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C4E4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 867C4F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C4FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C52C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C538 - voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 @ 867C544 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 867C550 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 @ 867C55C - voice_square_2_alt 60, 0, 3, 0, 1, 0, 0 @ 867C568 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 0, 0 @ 867C574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C58C - voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 0 @ 867C598 +voicegroup029:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 0, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 0 diff --git a/sound/voicegroups/voicegroup030.inc b/sound/voicegroups/voicegroup030.inc index ba7a816125..11856b6a6a 100644 --- a/sound/voicegroups/voicegroup030.inc +++ b/sound/voicegroups/voicegroup030.inc @@ -1,58 +1,58 @@ .align 2 -voicegroup030:: @ 867C5A4 - voice_keysplit_all voicegroup031 @ 867C5A4 - voice_keysplit voicegroup005, KeySplitTable1 @ 867C5B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C5BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C5C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C5D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C5E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C5EC - voice_square_2_alt 60, 0, 3, 0, 2, 4, 0 @ 867C5F8 - voice_square_1_alt 60, 0, 0, 3, 0, 2, 4, 0 @ 867C604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C61C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C640 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 @ 867C64C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C664 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 37, 165, 180, 127 @ 867C670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C67C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C6A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C6AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C6B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C6C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C6D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C6DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C6E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C6F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C70C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C73C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C76C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C79C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C7A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C7B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C7C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 867C7CC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867C7D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C7E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C7F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C7FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C82C +voicegroup030:: + voice_keysplit_all voicegroup031 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 4, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 37, 165, 180, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 diff --git a/sound/voicegroups/voicegroup031.inc b/sound/voicegroups/voicegroup031.inc index e0d8691dbb..f65481a9d1 100644 --- a/sound/voicegroups/voicegroup031.inc +++ b/sound/voicegroups/voicegroup031.inc @@ -1,68 +1,68 @@ .align 2 -voicegroup031:: @ 867C838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C85C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C868 - voice_keysplit voicegroup009, KeySplitTable5 @ 867C874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C88C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C8A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C8B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C8BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C8C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C8D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C8E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C8EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C8F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C91C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C94C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C964 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 @ 867C970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C97C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C9A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C9AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C9B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C9C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C9D0 - voice_directsound 60, 0, DirectSoundWaveData_trinity_big_boned, 255, 165, 154, 127 @ 867C9DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C9E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867C9F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA0C - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 867CA18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CA9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CAA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CAB4 - voice_directsound_no_resample 32, 49, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 867CAC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CAD8 - voice_directsound_no_resample 30, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 @ 867CAE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CAF0 - voice_directsound_no_resample 30, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 @ 867CAFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CB08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CB14 - voice_directsound_no_resample 72, 79, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 867CB20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CB2C - voice_directsound_no_resample 72, 74, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 867CB38 +voicegroup031:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_trinity_big_boned, 255, 165, 154, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 32, 49, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 30, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 30, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 72, 79, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 72, 74, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 diff --git a/sound/voicegroups/voicegroup032.inc b/sound/voicegroups/voicegroup032.inc index 75e305f6e6..22919a9a0c 100644 --- a/sound/voicegroups/voicegroup032.inc +++ b/sound/voicegroups/voicegroup032.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup032:: @ 867CB44 - voice_keysplit_all voicegroup016 @ 867CB44 - voice_keysplit voicegroup005, KeySplitTable1 @ 867CB50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CB5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CB68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CB74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CB80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CB8C - voice_square_2_alt 60, 0, 3, 0, 3, 4, 0 @ 867CB98 - voice_square_1_alt 60, 0, 0, 3, 0, 3, 4, 0 @ 867CBA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CBB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CBBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CBC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CBD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CBE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CBEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CBF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CC94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CCA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CCAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CCB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CCC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CCD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CCDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 250, 0, 149 @ 867CCE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CCF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CD9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CDA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CDB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CDC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CDCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CDD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CDE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CDF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CDFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CE98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CEA4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 867CEB0 - voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 867CEBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CEC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CEE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CEEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CEF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF04 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 @ 867CF10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CF94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CFA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CFAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CFB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CFC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CFD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CFDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CFE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867CFF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D00C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D03C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D06C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D09C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D0A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D0B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D0C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D0CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D0D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D0E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D0F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D0FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D114 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 867D120 - voice_noise_alt 60, 0, 0, 0, 4, 1, 4 @ 867D12C - voice_noise_alt 60, 0, 0, 0, 1, 0, 2 @ 867D138 +voicegroup032:: + voice_keysplit_all voicegroup016 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 3, 4, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 3, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 250, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 + voice_noise_alt 60, 0, 0, 0, 4, 1, 4 + voice_noise_alt 60, 0, 0, 0, 1, 0, 2 diff --git a/sound/voicegroups/voicegroup033.inc b/sound/voicegroups/voicegroup033.inc index 21d1b108f2..d414fa0bcb 100644 --- a/sound/voicegroups/voicegroup033.inc +++ b/sound/voicegroups/voicegroup033.inc @@ -1,86 +1,86 @@ .align 2 -voicegroup033:: @ 867D144 - voice_keysplit_all voicegroup001 @ 867D144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D15C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D18C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D1A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D1B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D1BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D1C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D1D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D1E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D1EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D1F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D21C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D24C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D27C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D2A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D2AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D2B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D2C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D2D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D2DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 @ 867D2E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D2F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D30C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D33C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D360 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 867D36C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D378 - voice_keysplit voicegroup006, KeySplitTable2 @ 867D384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D39C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D3A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D3B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D3C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D3CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D3D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D3E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D3F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D3FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D408 - voice_keysplit voicegroup009, KeySplitTable5 @ 867D414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D42C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D45C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D48C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D4A4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 867D4B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D4BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D4C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D4D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D4E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D4EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D4F8 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 867D504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D510 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 867D51C +voicegroup033:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 diff --git a/sound/voicegroups/voicegroup034.inc b/sound/voicegroups/voicegroup034.inc index 6ca2ded874..43b2e67a99 100644 --- a/sound/voicegroups/voicegroup034.inc +++ b/sound/voicegroups/voicegroup034.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup034:: @ 867D528 - voice_keysplit_all voicegroup001 @ 867D528 - voice_keysplit voicegroup005, KeySplitTable1 @ 867D534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D54C - voice_square_2 60, 0, 2, 0, 1, 4, 2 @ 867D558 - voice_square_1 60, 0, 0, 2, 0, 1, 4, 1 @ 867D564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D57C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D5A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D5AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D5B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D5C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D5D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D5DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D5E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D5F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D60C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D63C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D66C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D69C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D6A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D6B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D6C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 867D6CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D6D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D6E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D6F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D6FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D72C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D738 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 867D744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D75C - voice_keysplit voicegroup006, KeySplitTable2 @ 867D768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D78C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D7A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D7B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D7BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D7C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D7D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D7E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D7EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D7F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D81C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D84C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D87C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D888 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 867D894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D8A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D8AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D8B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D8C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D8D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D8DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D8E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D8F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D900 - voice_programmable_wave 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 2 @ 867D90C +voicegroup034:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 4, 2 + voice_square_1 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 2 diff --git a/sound/voicegroups/voicegroup035.inc b/sound/voicegroups/voicegroup035.inc index ebcdf744f1..4afb126c39 100644 --- a/sound/voicegroups/voicegroup035.inc +++ b/sound/voicegroups/voicegroup035.inc @@ -1,88 +1,88 @@ .align 2 -voicegroup035:: @ 867D918 - voice_keysplit_all voicegroup031 @ 867D918 - voice_keysplit voicegroup005, KeySplitTable1 @ 867D924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D93C - voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 @ 867D948 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 @ 867D954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D96C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D99C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D9A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D9B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D9C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D9CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D9D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D9E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D9F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867D9FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DA98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DAA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DAB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DAC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DAD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DAE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DAEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DAF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB40 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867DB4C - voice_keysplit voicegroup006, KeySplitTable2 @ 867DB58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DB94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DBA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DBAC - voice_keysplit voicegroup007, KeySplitTable3 @ 867DBB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DBC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DBD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DBDC - voice_keysplit voicegroup009, KeySplitTable5 @ 867DBE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DBF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DC9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DCA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DCB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DCC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DCCC - voice_square_2_alt 60, 0, 3, 0, 1, 6, 1 @ 867DCD8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 @ 867DCE4 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 6, 1 @ 867DCF0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 @ 867DCFC - voice_square_1_alt 60, 0, 0, 3, 0, 0, 6, 1 @ 867DD08 +voicegroup035:: + voice_keysplit_all voicegroup031 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 6, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 6, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 6, 1 diff --git a/sound/voicegroups/voicegroup036.inc b/sound/voicegroups/voicegroup036.inc index 8799f251c2..2161259d7e 100644 --- a/sound/voicegroups/voicegroup036.inc +++ b/sound/voicegroups/voicegroup036.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup036:: @ 867DD14 - voice_keysplit_all voicegroup001 @ 867DD14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD38 - voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 @ 867DD44 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 1 @ 867DD50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DD98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DDA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DDB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DDBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DDC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DDD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DDE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DDEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DDF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DE94 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 867DEA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DEAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DEB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DEC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DEDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DEE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DEF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF24 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 867DF30 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 867DF3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF48 - voice_keysplit voicegroup006, KeySplitTable2 @ 867DF54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DF9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DFA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DFB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DFC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DFCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DFD8 - voice_keysplit voicegroup009, KeySplitTable5 @ 867DFE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DFF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867DFFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E02C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E05C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E074 - voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 867E080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E08C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E0A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E0B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E0BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E0C8 - voice_square_2_alt 60, 0, 2, 0, 2, 4, 1 @ 867E0D4 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 @ 867E0E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E0EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E0F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E11C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E14C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E17C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E1A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E1AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E1B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E1C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E1D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E1DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E1E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E1F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E20C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E23C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E26C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E29C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E2A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E2B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E2C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E2CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E2D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E2E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E2F0 - voice_noise_alt 60, 0, 0, 0, 4, 1, 4 @ 867E2FC - voice_noise_alt 60, 0, 0, 0, 1, 0, 2 @ 867E308 +voicegroup036:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 4, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 4, 1, 4 + voice_noise_alt 60, 0, 0, 0, 1, 0, 2 diff --git a/sound/voicegroups/voicegroup037.inc b/sound/voicegroups/voicegroup037.inc index 9e52dc02e1..29f33cbe7c 100644 --- a/sound/voicegroups/voicegroup037.inc +++ b/sound/voicegroups/voicegroup037.inc @@ -1,92 +1,92 @@ .align 2 -voicegroup037:: @ 867E314 - voice_keysplit_all voicegroup031 @ 867E314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E32C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E338 - voice_square_2_alt 60, 0, 2, 0, 2, 4, 1 @ 867E344 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 @ 867E350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E35C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E38C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E3A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E3B0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 @ 867E3BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E3C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E3D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E3E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E3EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E3F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E41C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E44C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E47C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E4A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E4AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E4B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E4C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E4D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E4DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E4E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E4F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E50C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E530 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 867E53C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 867E548 - voice_keysplit voicegroup006, KeySplitTable2 @ 867E554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E56C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E59C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E5A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E5B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E5C0 - voice_keysplit voicegroup008, KeySplitTable4 @ 867E5CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E5D8 - voice_keysplit voicegroup009, KeySplitTable5 @ 867E5E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E5F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E5FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E62C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E65C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E68C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E6A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E6B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E6BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E6C8 - voice_square_2_alt 60, 0, 0, 0, 1, 7, 1 @ 867E6D4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 867E6E0 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 1 @ 867E6EC - voice_square_1_alt 60, 0, 0, 0, 0, 0, 7, 1 @ 867E6F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E71C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E728 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 @ 867E734 +voicegroup037:: + voice_keysplit_all voicegroup031 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 4, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 0, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 diff --git a/sound/voicegroups/voicegroup038.inc b/sound/voicegroups/voicegroup038.inc index 2b7f62f95d..42c63281d5 100644 --- a/sound/voicegroups/voicegroup038.inc +++ b/sound/voicegroups/voicegroup038.inc @@ -1,85 +1,85 @@ .align 2 -voicegroup038:: @ 867E740 - voice_keysplit_all voicegroup001 @ 867E740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E74C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E764 - voice_square_2 60, 0, 2, 0, 1, 4, 1 @ 867E770 - voice_square_1 60, 0, 0, 2, 0, 1, 4, 1 @ 867E77C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E7A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E7AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E7B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E7C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E7D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E7DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E7E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E7F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E800 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 867E80C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E83C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E86C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E89C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E8A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E8B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E8C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E8CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E8D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E8E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E8F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E8FC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 867E908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E92C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E95C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E98C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E9A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E9B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E9BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E9C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E9D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E9E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E9EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867E9F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EA94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EAA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EAAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EAB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EAC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EAD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EAE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EAF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB00 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 0 @ 867EB0C +voicegroup038:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup039.inc b/sound/voicegroups/voicegroup039.inc index 580eb4fe77..c8597bb479 100644 --- a/sound/voicegroups/voicegroup039.inc +++ b/sound/voicegroups/voicegroup039.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup039:: @ 867EB18 - voice_keysplit_all voicegroup001 @ 867EB18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EB9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EBA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EBB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EBC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EBCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EBD8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 867EBE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EBF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EBFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC2C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 867EC38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EC98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ECA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ECB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ECBC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 867ECC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ECD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ECE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ECEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ECF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED4C - voice_keysplit voicegroup006, KeySplitTable2 @ 867ED58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867ED94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EDA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EDAC - voice_keysplit voicegroup007, KeySplitTable3 @ 867EDB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EDC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EDD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EDDC - voice_keysplit voicegroup009, KeySplitTable5 @ 867EDE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EDF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE78 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 867EE84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EE9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EEA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EEB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EEC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EECC - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 @ 867EED8 - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 867EEE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EEF0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 867EEFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EF98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EFA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EFB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EFBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EFC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EFD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EFE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EFEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867EFF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F01C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F04C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F07C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F0A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F0AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F0B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F0C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F0D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F0DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F0E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F0F4 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 867F100 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 867F10C +voicegroup039:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup040.inc b/sound/voicegroups/voicegroup040.inc index 78cc9167a4..4ee10e72fe 100644 --- a/sound/voicegroups/voicegroup040.inc +++ b/sound/voicegroups/voicegroup040.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup040:: @ 867F118 - voice_keysplit_all voicegroup001 @ 867F118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F13C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F16C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F19C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F1A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F1B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F1C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F1CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F1D8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 867F1E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F1F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F1FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F22C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 867F238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F25C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F28C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F2A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F2B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F2BC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 867F2C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F2D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F2E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F2EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F2F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F31C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F34C - voice_keysplit voicegroup006, KeySplitTable2 @ 867F358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F37C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F3A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F3AC - voice_keysplit voicegroup007, KeySplitTable3 @ 867F3B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F3C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F3D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F3DC - voice_keysplit voicegroup009, KeySplitTable5 @ 867F3E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F3F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F40C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F43C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F46C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F478 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 867F484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F49C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F4A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F4B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F4C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F4CC - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 @ 867F4D8 - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 867F4E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F4F0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 867F4FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F52C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F55C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F58C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F5A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F5B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F5BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F5C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F5D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F5E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F5EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F5F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F61C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F64C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F67C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F6A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F6AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F6B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F6C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F6D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F6DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F6E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F6F4 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 867F700 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 867F70C +voicegroup040:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup041.inc b/sound/voicegroups/voicegroup041.inc index f5a1d6d168..dc23fd7ad8 100644 --- a/sound/voicegroups/voicegroup041.inc +++ b/sound/voicegroups/voicegroup041.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup041:: @ 867F718 - voice_keysplit_all voicegroup001 @ 867F718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F73C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F76C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F79C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F7A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F7B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F7C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F7CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F7D8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 867F7E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F7F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F7FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F82C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 867F838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F85C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F88C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F8A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F8B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F8BC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 867F8C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F8D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F8E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F8EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F8F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F91C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F94C - voice_keysplit voicegroup006, KeySplitTable2 @ 867F958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F97C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F9A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F9AC - voice_keysplit voicegroup007, KeySplitTable3 @ 867F9B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F9C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F9D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F9DC - voice_keysplit voicegroup009, KeySplitTable5 @ 867F9E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867F9F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA78 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 867FA84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FA9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FAA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FAB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FAC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FACC - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 @ 867FAD8 - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 867FAE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FAF0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 867FAFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FB98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FBA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FBB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FBBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FBC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FBD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FBE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FBEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FBF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FC94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FCA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FCAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FCB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FCC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FCD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FCDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FCE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FCF4 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 867FD00 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 867FD0C +voicegroup041:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup042.inc b/sound/voicegroups/voicegroup042.inc index 764ce1c619..0166ef9e3c 100644 --- a/sound/voicegroups/voicegroup042.inc +++ b/sound/voicegroups/voicegroup042.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup042:: @ 867FD18 - voice_keysplit_all voicegroup001 @ 867FD18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FD9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FDA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FDB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FDC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FDCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FDD8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 867FDE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FDF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FDFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE2C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 867FE38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FE98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FEA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FEB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FEBC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 867FEC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FEE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FEEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FEF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF4C - voice_keysplit voicegroup006, KeySplitTable2 @ 867FF58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FF94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FFA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FFAC - voice_keysplit voicegroup007, KeySplitTable3 @ 867FFB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FFC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FFD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FFDC - voice_keysplit voicegroup009, KeySplitTable5 @ 867FFE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 867FFF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868000C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868003C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868006C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680078 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 8680084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868009C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86800A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86800B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86800C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86800CC - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 @ 86800D8 - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 86800E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86800F0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 86800FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868012C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868015C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868018C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86801A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86801B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86801BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86801C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86801D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86801E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86801EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86801F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868021C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868024C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868027C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86802A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86802AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86802B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86802C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86802D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86802DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86802E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86802F4 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8680300 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868030C +voicegroup042:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup043.inc b/sound/voicegroups/voicegroup043.inc index 6e4c76dfcf..d2ca0101b2 100644 --- a/sound/voicegroups/voicegroup043.inc +++ b/sound/voicegroups/voicegroup043.inc @@ -1,84 +1,84 @@ .align 2 -voicegroup043:: @ 8680318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680318 - voice_keysplit voicegroup005, KeySplitTable1 @ 8680324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868033C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868036C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868039C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86803A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86803B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86803C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86803CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86803D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86803E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86803F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86803FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868042C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868045C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868048C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 @ 8680498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86804A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86804B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86804BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86804C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86804D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86804E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86804EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86804F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868051C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868054C - voice_keysplit voicegroup006, KeySplitTable2 @ 8680558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868057C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86805A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86805AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86805B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86805C4 - voice_keysplit voicegroup008, KeySplitTable4 @ 86805D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86805DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86805E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86805F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868060C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868063C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868066C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680678 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 8680684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868069C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86806A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86806B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86806C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86806CC - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 86806D8 +voicegroup043:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 diff --git a/sound/voicegroups/voicegroup044.inc b/sound/voicegroups/voicegroup044.inc index 5c848d94de..4717b4273f 100644 --- a/sound/voicegroups/voicegroup044.inc +++ b/sound/voicegroups/voicegroup044.inc @@ -1,84 +1,84 @@ .align 2 -voicegroup044:: @ 86806E4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86806E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86806F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86806FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680708 - voice_square_1_alt 60, 0, 0, 2, 0, 5, 1, 7 @ 8680714 - voice_square_2_alt 60, 0, 3, 0, 4, 3, 6 @ 8680720 - voice_square_2_alt 60, 0, 2, 1, 1, 4, 0 @ 868072C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868075C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868078C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86807A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86807B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86807BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86807C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86807D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86807E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86807EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86807F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868081C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868084C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868087C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 224 @ 8680888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86808A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86808AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86808B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86808C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86808D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86808DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86808E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86808F4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 8680900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868090C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680918 - voice_keysplit voicegroup006, KeySplitTable2 @ 8680924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868093C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868096C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868099C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86809A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86809B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86809C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86809CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86809D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86809E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86809F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86809FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A44 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 8680A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680A98 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 @ 8680AA4 +voicegroup044:: + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 5, 1, 7 + voice_square_2_alt 60, 0, 3, 0, 4, 3, 6 + voice_square_2_alt 60, 0, 2, 1, 1, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 224 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 diff --git a/sound/voicegroups/voicegroup045.inc b/sound/voicegroups/voicegroup045.inc index bb904e5ca0..f0bc78c58b 100644 --- a/sound/voicegroups/voicegroup045.inc +++ b/sound/voicegroups/voicegroup045.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup045:: @ 8680AB0 - voice_keysplit_all voicegroup001 @ 8680AB0 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 0, 1 @ 8680ABC - voice_square_1_alt 60, 0, 0, 3, 1, 2, 6, 0 @ 8680AC8 - voice_square_2_alt 60, 0, 3, 1, 2, 6, 0 @ 8680AD4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 8680AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680AEC - voice_square_2_alt 60, 0, 1, 0, 2, 0, 1 @ 8680AF8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 1, 7, 15, 1 @ 8680B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B1C - voice_keysplit voicegroup005, KeySplitTable1 @ 8680B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B70 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8680B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C6C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 216 @ 8680C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680CE4 - voice_keysplit voicegroup006, KeySplitTable2 @ 8680CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E10 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 8680E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8680FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868102C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868105C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868108C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681098 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86810A4 +voicegroup045:: + voice_keysplit_all voicegroup001 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 0, 1 + voice_square_1_alt 60, 0, 0, 3, 1, 2, 6, 0 + voice_square_2_alt 60, 0, 3, 1, 2, 6, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 0, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 1, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup046.inc b/sound/voicegroups/voicegroup046.inc index 07889819ae..e2ecb76104 100644 --- a/sound/voicegroups/voicegroup046.inc +++ b/sound/voicegroups/voicegroup046.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup046:: @ 86810B0 - voice_keysplit voicegroup005, KeySplitTable1 @ 86810B0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 1, 12, 0 @ 86810BC - voice_square_1_alt 60, 0, 0, 0, 1, 1, 9, 0 @ 86810C8 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 @ 86810D4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 @ 86810E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 216 @ 86810EC - voice_square_2_alt 60, 0, 1, 0, 2, 6, 3 @ 86810F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868111C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868114C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868117C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86811A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86811AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86811B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86811C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86811D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86811DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86811E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86811F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868120C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868123C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868126C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868129C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86812A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86812B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86812C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 165 @ 86812CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86812D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86812E4 - voice_keysplit voicegroup006, KeySplitTable2 @ 86812F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86812FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868132C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868135C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868138C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86813A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86813B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86813BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86813C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86813D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86813E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86813EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86813F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681410 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 868141C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868144C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868147C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86814A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86814AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86814B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86814C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86814D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86814DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86814E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86814F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868150C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868153C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868156C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868159C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86815A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86815B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86815C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86815CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86815D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86815E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86815F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86815FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868162C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868165C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868168C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681698 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86816A4 +voicegroup046:: + voice_keysplit voicegroup005, KeySplitTable1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 1, 12, 0 + voice_square_1_alt 60, 0, 0, 0, 1, 1, 9, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 216 + voice_square_2_alt 60, 0, 1, 0, 2, 6, 3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup047.inc b/sound/voicegroups/voicegroup047.inc index c045c1dd33..403d53d423 100644 --- a/sound/voicegroups/voicegroup047.inc +++ b/sound/voicegroups/voicegroup047.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup047:: @ 86816B0 - voice_keysplit_all voicegroup001 @ 86816B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86816BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86816C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86816D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86816E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86816EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86816F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868171C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868174C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868177C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86817A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86817AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86817B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86817C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86817D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86817DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86817E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86817F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868180C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868183C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868186C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8681878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868189C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86818A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86818B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86818C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86818CC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 @ 86818D8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 204, 193, 239 @ 86818E4 - voice_keysplit voicegroup006, KeySplitTable2 @ 86818F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86818FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868192C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681944 - voice_keysplit voicegroup007, KeySplitTable3 @ 8681950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868195C - voice_keysplit voicegroup008, KeySplitTable4 @ 8681968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681974 - voice_keysplit voicegroup009, KeySplitTable5 @ 8681980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868198C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86819A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86819B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86819BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86819C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86819D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86819E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86819EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86819F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681A64 - voice_square_2_alt 60, 0, 2, 0, 1, 6, 2 @ 8681A70 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 @ 8681A7C - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 8681A88 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 1, 7, 15, 2 @ 8681A94 - voice_square_2_alt 60, 0, 1, 1, 1, 4, 1 @ 8681AA0 - voice_square_1_alt 60, 0, 0, 1, 1, 2, 4, 1 @ 8681AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681AB8 - voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 @ 8681AC4 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 1 @ 8681AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681C98 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8681CA4 +voicegroup047:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 204, 193, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 1, 7, 15, 2 + voice_square_2_alt 60, 0, 1, 1, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 1, 1, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup048.inc b/sound/voicegroups/voicegroup048.inc index 151c725d1f..b819395a6a 100644 --- a/sound/voicegroups/voicegroup048.inc +++ b/sound/voicegroups/voicegroup048.inc @@ -1,91 +1,91 @@ .align 2 -voicegroup048:: @ 8681CB0 - voice_keysplit_all voicegroup001 @ 8681CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681CD4 - voice_square_1_alt 60, 0, 0, 2, 0, 7, 3, 3 @ 8681CE0 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8681CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D10 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 204, 51, 242 @ 8681D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681DDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681ECC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 8681ED8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 239 @ 8681EE4 - voice_keysplit voicegroup006, KeySplitTable2 @ 8681EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F44 - voice_keysplit voicegroup007, KeySplitTable3 @ 8681F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F5C - voice_keysplit voicegroup008, KeySplitTable4 @ 8681F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F74 - voice_keysplit voicegroup009, KeySplitTable5 @ 8681F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8681FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682010 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 868201C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868204C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682064 - voice_square_2_alt 60, 0, 3, 0, 4, 4, 0 @ 8682070 - voice_square_1_alt 60, 0, 0, 3, 0, 3, 6, 0 @ 868207C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682088 - voice_square_1_alt 60, 0, 0, 0, 0, 3, 3, 0 @ 8682094 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 12, 1 @ 86820A0 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 3 @ 86820AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86820B8 - voice_square_2_alt 60, 0, 0, 0, 2, 4, 0 @ 86820C4 +voicegroup048:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 7, 3, 3 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 204, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 4, 4, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 3, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 3, 3, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 12, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 2, 4, 0 diff --git a/sound/voicegroups/voicegroup049.inc b/sound/voicegroups/voicegroup049.inc index a3700ecf36..ed830a1a9c 100644 --- a/sound/voicegroups/voicegroup049.inc +++ b/sound/voicegroups/voicegroup049.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup049:: @ 86820D0 - voice_keysplit_all voicegroup001 @ 86820D0 - voice_keysplit voicegroup005, KeySplitTable1 @ 86820DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86820E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86820F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868210C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682130 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 @ 868213C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868216C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868219C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86821A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86821B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86821C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86821CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86821D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86821E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86821F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86821FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868222C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868225C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682268 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8682274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868228C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86822A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86822B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86822BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86822C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86822D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86822E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 86822EC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 86822F8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 226 @ 8682304 - voice_keysplit voicegroup006, KeySplitTable2 @ 8682310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868231C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868234C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682364 - voice_keysplit voicegroup007, KeySplitTable3 @ 8682370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868237C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682394 - voice_keysplit voicegroup009, KeySplitTable5 @ 86823A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86823AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86823B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86823C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86823D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86823DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86823E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86823F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868240C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682430 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 868243C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868246C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682484 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 @ 8682490 - voice_square_2_alt 60, 0, 1, 1, 3, 4, 2 @ 868249C - voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 @ 86824A8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 1, 7, 15, 0 @ 86824B4 - voice_square_2_alt 60, 0, 2, 0, 2, 4, 2 @ 86824C0 - voice_square_2_alt 60, 0, 1, 1, 3, 4, 2 @ 86824CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86824D8 - voice_square_1_alt 60, 0, 0, 2, 1, 4, 4, 2 @ 86824E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86824F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86824FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868252C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868255C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868258C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86825A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86825B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86825BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86825C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86825D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86825E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86825EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86825F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868261C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868264C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868267C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86826A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86826AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86826B8 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86826C4 +voicegroup049:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 + voice_square_2_alt 60, 0, 1, 1, 3, 4, 2 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 1, 7, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 4, 2 + voice_square_2_alt 60, 0, 1, 1, 3, 4, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 1, 4, 4, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup050.inc b/sound/voicegroups/voicegroup050.inc index dbbe02cfca..ed5f1ba71d 100644 --- a/sound/voicegroups/voicegroup050.inc +++ b/sound/voicegroups/voicegroup050.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup050:: @ 86826D0 - voice_keysplit_all voicegroup001 @ 86826D0 - voice_keysplit voicegroup005, KeySplitTable1 @ 86826DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86826E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86826F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868270C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868273C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868276C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682790 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 868279C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86827A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86827B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86827C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86827CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86827D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86827E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86827F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86827FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868282C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868285C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682868 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8682874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868288C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86828A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86828B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86828BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86828C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86828D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86828E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86828EC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 86828F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868291C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868294C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868297C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86829A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86829AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86829B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86829C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86829D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86829DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86829E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86829F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A84 - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 8682A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682AA8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 @ 8682AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682AD8 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 1 @ 8682AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682CB8 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8682CC4 +voicegroup050:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup051.inc b/sound/voicegroups/voicegroup051.inc index ceafb4d4df..31b69cd879 100644 --- a/sound/voicegroups/voicegroup051.inc +++ b/sound/voicegroups/voicegroup051.inc @@ -1,77 +1,77 @@ .align 2 -voicegroup051:: @ 8682CD0 - voice_keysplit_all voicegroup001 @ 8682CD0 - voice_keysplit voicegroup005, KeySplitTable1 @ 8682CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682CF4 - voice_square_2_alt 60, 0, 2, 1, 4, 4, 2 @ 8682D00 - voice_square_1_alt 60, 0, 0, 2, 0, 3, 4, 1 @ 8682D0C - voice_square_2_alt 60, 0, 2, 1, 3, 4, 2 @ 8682D18 - voice_square_1_alt 60, 0, 0, 2, 0, 3, 4, 1 @ 8682D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E68 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8682E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682E98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682EE0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 99 @ 8682EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F04 - voice_keysplit voicegroup006, KeySplitTable2 @ 8682F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8682FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868300C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683030 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 868303C +voicegroup051:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 1, 4, 4, 2 + voice_square_1_alt 60, 0, 0, 2, 0, 3, 4, 1 + voice_square_2_alt 60, 0, 2, 1, 3, 4, 2 + voice_square_1_alt 60, 0, 0, 2, 0, 3, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 diff --git a/sound/voicegroups/voicegroup052.inc b/sound/voicegroups/voicegroup052.inc index efddac28a7..b7020362df 100644 --- a/sound/voicegroups/voicegroup052.inc +++ b/sound/voicegroups/voicegroup052.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup052:: @ 8683048 - voice_keysplit_all voicegroup001 @ 8683048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683054 - voice_square_1 60, 0, 0, 3, 1, 2, 6, 0 @ 8683060 - voice_square_2 60, 0, 3, 1, 2, 6, 0 @ 868306C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868309C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86830A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86830B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86830C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86830CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86830D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86830E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86830F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86830FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868312C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868315C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868318C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683198 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 0, 7, 15, 0 @ 86831A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86831B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86831BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86831C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86831D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86831E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86831EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86831F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868321C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868324C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683270 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 226 @ 868327C - voice_keysplit voicegroup006, KeySplitTable2 @ 8683288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86832A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86832AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86832B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86832C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86832D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86832DC - voice_keysplit voicegroup007, KeySplitTable3 @ 86832E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86832F4 - voice_keysplit voicegroup008, KeySplitTable4 @ 8683300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868330C - voice_keysplit voicegroup009, KeySplitTable5 @ 8683318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868333C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868336C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868339C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86833A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86833B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86833C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86833CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86833D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86833E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86833F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86833FC - voice_square_2_alt 60, 0, 1, 0, 1, 6, 1 @ 8683408 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 1 @ 8683414 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 @ 8683420 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 2 @ 868342C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 8683438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683450 - voice_square_1_alt 60, 0, 0, 1, 0, 7, 6, 1 @ 868345C - voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 @ 8683468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868348C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86834A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86834B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86834BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86834C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86834D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86834E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86834EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86834F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868351C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868354C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868357C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86835A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86835AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86835B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86835C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86835D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86835DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86835E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86835F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868360C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683618 - voice_noise_alt 60, 0, 0, 0, 1, 9, 4 @ 8683624 - voice_noise_alt 60, 0, 0, 3, 1, 10, 0 @ 8683630 - voice_noise_alt 60, 0, 0, 0, 2, 0, 0 @ 868363C +voicegroup052:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 3, 1, 2, 6, 0 + voice_square_2 60, 0, 3, 1, 2, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 1, 6, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 7, 6, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 9, 4 + voice_noise_alt 60, 0, 0, 3, 1, 10, 0 + voice_noise_alt 60, 0, 0, 0, 2, 0, 0 diff --git a/sound/voicegroups/voicegroup053.inc b/sound/voicegroups/voicegroup053.inc index 559f7efa37..3d3312b1d2 100644 --- a/sound/voicegroups/voicegroup053.inc +++ b/sound/voicegroups/voicegroup053.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup053:: @ 8683648 - voice_keysplit_all voicegroup001 @ 8683648 - voice_keysplit voicegroup005, KeySplitTable1 @ 8683654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868366C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868369C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86836A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86836B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86836C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86836CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86836D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86836E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86836F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86836FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868372C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868375C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868378C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86837A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86837B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86837BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86837C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86837D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86837E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86837EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86837F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868381C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868384C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683858 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 8683864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868387C - voice_keysplit voicegroup006, KeySplitTable2 @ 8683888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86838A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86838AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86838B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86838C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86838D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86838DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86838E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86838F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868390C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868393C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868396C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868399C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86839A8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86839B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86839C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86839CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86839D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86839E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86839F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86839FC - voice_square_2_alt 60, 0, 2, 0, 1, 4, 2 @ 8683A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A14 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 @ 8683A20 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 12, 0 @ 8683A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C30 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8683C3C +voicegroup053:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup054.inc b/sound/voicegroups/voicegroup054.inc index 1a300444e9..9d762c5616 100644 --- a/sound/voicegroups/voicegroup054.inc +++ b/sound/voicegroups/voicegroup054.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup054:: @ 8683C48 - voice_keysplit_all voicegroup001 @ 8683C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E58 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 8683E64 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 8683E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E7C - voice_keysplit voicegroup006, KeySplitTable2 @ 8683E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683EF4 - voice_keysplit voicegroup008, KeySplitTable4 @ 8683F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F0C - voice_keysplit voicegroup009, KeySplitTable5 @ 8683F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683FA8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 8683FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8683FFC - voice_square_2_alt 60, 0, 2, 0, 1, 5, 2 @ 8684008 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 @ 8684014 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 8684020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868402C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868405C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868408C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86840A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86840B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86840BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86840C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86840D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86840E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86840EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86840F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868411C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868414C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868417C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86841A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86841AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86841B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86841C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86841D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86841DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86841E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86841F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868420C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684230 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868423C +voicegroup054:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 5, 2 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup055.inc b/sound/voicegroups/voicegroup055.inc index 71556fc57b..90f10a26c8 100644 --- a/sound/voicegroups/voicegroup055.inc +++ b/sound/voicegroups/voicegroup055.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup055:: @ 8684248 - voice_keysplit_all voicegroup001 @ 8684248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868426C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868429C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86842A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86842B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86842C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86842CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86842D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86842E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86842F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86842FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868432C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868435C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868438C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86843A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86843B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86843BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86843C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86843D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86843E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86843EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86843F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684404 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8684410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868441C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868444C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684464 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 @ 8684470 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 204, 193, 239 @ 868447C - voice_keysplit voicegroup006, KeySplitTable2 @ 8684488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86844A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86844AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86844B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86844C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86844D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86844DC - voice_keysplit voicegroup007, KeySplitTable3 @ 86844E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86844F4 - voice_keysplit voicegroup008, KeySplitTable4 @ 8684500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868450C - voice_keysplit voicegroup009, KeySplitTable5 @ 8684518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868453C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868456C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868459C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86845A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86845B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86845C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86845CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86845D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86845E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86845F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86845FC - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 8684608 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 6, 0 @ 8684614 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8684620 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 0, 7, 15, 2 @ 868462C - voice_square_2_alt 60, 0, 1, 1, 1, 4, 1 @ 8684638 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 2 @ 8684644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684650 - voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 @ 868465C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868468C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86846A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86846B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86846BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86846C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86846D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86846E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86846EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86846F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868471C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868474C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868477C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86847A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86847AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86847B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86847C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86847D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86847DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86847E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86847F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868480C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684830 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868483C +voicegroup055:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 204, 193, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 6, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 0, 7, 15, 2 + voice_square_2_alt 60, 0, 1, 1, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup056.inc b/sound/voicegroups/voicegroup056.inc index 56538a65b8..5d945f3663 100644 --- a/sound/voicegroups/voicegroup056.inc +++ b/sound/voicegroups/voicegroup056.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup056:: @ 8684848 - voice_keysplit_all voicegroup001 @ 8684848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868486C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868489C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86848A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86848B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86848C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86848CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86848D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86848E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86848F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86848FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868492C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868495C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868498C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86849A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86849B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86849BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86849C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86849D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86849E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86849EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86849F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A04 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8684A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A7C - voice_keysplit voicegroup006, KeySplitTable2 @ 8684A88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B0C - voice_keysplit voicegroup009, KeySplitTable5 @ 8684B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684BA8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 8684BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684BFC - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8684C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C14 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 8684C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C50 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 @ 8684C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684DDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E30 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8684E3C +voicegroup056:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup057.inc b/sound/voicegroups/voicegroup057.inc index 0a8b037b4b..dbdb059cee 100644 --- a/sound/voicegroups/voicegroup057.inc +++ b/sound/voicegroups/voicegroup057.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup057:: @ 8684E48 - voice_keysplit_all voicegroup001 @ 8684E48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684EA8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 188, 51, 242 @ 8684EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684EE4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 128, 165, 90, 216 @ 8684EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F50 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_bubbles, 255, 0, 255, 127 @ 8684F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684FE0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8684FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8684FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868501C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868504C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685058 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 8685064 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 8685070 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 226 @ 868507C - voice_keysplit voicegroup006, KeySplitTable2 @ 8685088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86850A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86850AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86850B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86850C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86850D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86850DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86850E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86850F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868510C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868513C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868516C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868519C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86851A8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86851B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86851C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86851CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86851D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86851E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86851F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86851FC - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8685208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685214 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 1, 4, 10, 1 @ 8685220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868522C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868525C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868528C - voice_square_2_alt 60, 0, 2, 1, 5, 9, 1 @ 8685298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86852A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86852B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86852BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86852C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86852D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86852E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86852EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86852F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868531C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868534C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868537C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86853A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86853AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86853B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86853C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86853D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86853DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86853E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86853F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868540C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685424 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8685430 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868543C +voicegroup057:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 188, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 128, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_bubbles, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 1, 4, 10, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 1, 5, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup058.inc b/sound/voicegroups/voicegroup058.inc index 1e50a0b3a2..0af41d7890 100644 --- a/sound/voicegroups/voicegroup058.inc +++ b/sound/voicegroups/voicegroup058.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup058:: @ 8685448 - voice_keysplit_all voicegroup001 @ 8685448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868546C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868549C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86854A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86854B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86854C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86854CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86854D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86854E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86854F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86854FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685508 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8685514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868552C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868555C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868558C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86855A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86855B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86855BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86855C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86855D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86855E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86855EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86855F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868561C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868564C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868567C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86856A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86856AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86856B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86856C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86856D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86856DC - voice_keysplit voicegroup007, KeySplitTable3 @ 86856E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86856F4 - voice_keysplit voicegroup008, KeySplitTable4 @ 8685700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868570C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868573C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868576C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868579C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86857A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86857B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86857C0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 86857CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86857D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86857E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86857F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86857FC - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8685808 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 8685814 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8685820 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 868582C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868585C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868588C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86858A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86858B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86858BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86858C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86858D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86858E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86858EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86858F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868591C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868594C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868597C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86859A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86859AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86859B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86859C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86859D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86859DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86859E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86859F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685A24 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 8685A30 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8685A3C +voicegroup058:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup059.inc b/sound/voicegroups/voicegroup059.inc index 20b91da5d5..4a9fccbc5d 100644 --- a/sound/voicegroups/voicegroup059.inc +++ b/sound/voicegroups/voicegroup059.inc @@ -1,92 +1,92 @@ .align 2 -voicegroup059:: @ 8685A48 - voice_keysplit_all voicegroup001 @ 8685A48 - voice_keysplit voicegroup005, KeySplitTable1 @ 8685A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685A6C - voice_square_2_alt 60, 0, 1, 1, 1, 6, 2 @ 8685A78 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 8685A84 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 8685A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685AA8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 @ 8685AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685AE4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8685AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C64 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8685C70 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 @ 8685C7C - voice_keysplit voicegroup006, KeySplitTable2 @ 8685C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685CDC - voice_keysplit voicegroup007, KeySplitTable3 @ 8685CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685CF4 - voice_keysplit voicegroup008, KeySplitTable4 @ 8685D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D0C - voice_keysplit voicegroup009, KeySplitTable5 @ 8685D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685DA8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 8685DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685DFC - voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 2 @ 8685E08 - voice_square_2_alt 60, 0, 2, 0, 1, 6, 0 @ 8685E14 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8685E20 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 8685E2C - voice_square_1_alt 60, 0, 0, 1, 1, 2, 4, 0 @ 8685E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685E50 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8685E5C - voice_square_2_alt 60, 0, 3, 0, 1, 6, 2 @ 8685E68 +voicegroup059:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 1, 1, 6, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 6, 2 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 1, 1, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 6, 2 diff --git a/sound/voicegroups/voicegroup060.inc b/sound/voicegroups/voicegroup060.inc index 02569e1ca8..e63327194d 100644 --- a/sound/voicegroups/voicegroup060.inc +++ b/sound/voicegroups/voicegroup060.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup060:: @ 8685E74 - voice_keysplit_all voicegroup001 @ 8685E74 - voice_keysplit voicegroup005, KeySplitTable1 @ 8685E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685E98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F04 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8685F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8685FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868600C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868603C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868606C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686084 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 128, 226, 0, 38 @ 8686090 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868609C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 86860A8 - voice_keysplit voicegroup006, KeySplitTable2 @ 86860B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86860C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86860CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86860D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86860E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86860F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86860FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686108 - voice_keysplit voicegroup007, KeySplitTable3 @ 8686114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686120 - voice_keysplit voicegroup008, KeySplitTable4 @ 868612C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686138 - voice_keysplit voicegroup009, KeySplitTable5 @ 8686144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868615C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868618C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86861A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86861B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86861BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86861C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86861D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 86861E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86861EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86861F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868621C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686228 - voice_square_2_alt 60, 0, 1, 1, 1, 6, 1 @ 8686234 - voice_square_1_alt 60, 0, 0, 1, 0, 4, 4, 1 @ 8686240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868624C - voice_square_2_alt 60, 0, 2, 0, 7, 3, 3 @ 8686258 - voice_square_1_alt 60, 0, 0, 2, 0, 7, 3, 3 @ 8686264 - voice_square_1_alt 60, 0, 0, 3, 2, 2, 7, 0 @ 8686270 - voice_square_2_alt 60, 0, 1, 1, 2, 3, 0 @ 868627C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86862A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86862AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86862B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86862C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86862D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86862DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86862E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86862F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868630C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868633C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868636C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868639C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86863A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86863B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86863C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86863CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86863D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86863E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86863F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86863FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868642C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868645C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8686468 +voicegroup060:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 128, 226, 0, 38 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 1, 1, 6, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 4, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 7, 3, 3 + voice_square_1_alt 60, 0, 0, 2, 0, 7, 3, 3 + voice_square_1_alt 60, 0, 0, 3, 2, 2, 7, 0 + voice_square_2_alt 60, 0, 1, 1, 2, 3, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup061.inc b/sound/voicegroups/voicegroup061.inc index d4b8a50b3d..2775a7c2c5 100644 --- a/sound/voicegroups/voicegroup061.inc +++ b/sound/voicegroups/voicegroup061.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup061:: @ 8686474 - voice_keysplit_all voicegroup001 @ 8686474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868648C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86864A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86864B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86864BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86864C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86864D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86864E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86864EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86864F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868651C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686534 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8686540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868654C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868657C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86865A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86865AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86865B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86865C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86865D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86865DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86865E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86865F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868660C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686618 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 115 @ 8686624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868663C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868666C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868669C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86866A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86866B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86866C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86866CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86866D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86866E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86866F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86866FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686708 - voice_keysplit voicegroup007, KeySplitTable3 @ 8686714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868672C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868675C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868678C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86867A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86867B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86867BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86867C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86867D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 86867E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86867EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86867F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868681C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686828 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8686834 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 8686840 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 868684C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8686858 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8686864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868687C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86868A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86868AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86868B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86868C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86868D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86868DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86868E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86868F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868690C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868693C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868696C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868699C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86869A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86869B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86869C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86869CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86869D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86869E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86869F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86869FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A50 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8686A5C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8686A68 +voicegroup061:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup062.inc b/sound/voicegroups/voicegroup062.inc index 7415e7090d..1687aa535a 100644 --- a/sound/voicegroups/voicegroup062.inc +++ b/sound/voicegroups/voicegroup062.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup062:: @ 8686A74 - voice_keysplit_all voicegroup001 @ 8686A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686BC4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 @ 8686BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C30 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8686C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D08 - voice_keysplit voicegroup007, KeySplitTable3 @ 8686D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E34 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8686E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E4C - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 8686E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8686FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868702C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687050 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868705C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8687068 +voicegroup062:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup063.inc b/sound/voicegroups/voicegroup063.inc index 98ac821769..6461b3aa21 100644 --- a/sound/voicegroups/voicegroup063.inc +++ b/sound/voicegroups/voicegroup063.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup063:: @ 8687074 - voice_keysplit_all voicegroup001 @ 8687074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868708C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86870A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86870B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86870BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86870C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86870D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86870E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86870EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86870F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868711C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687134 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 8687140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868714C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868717C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86871A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86871AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86871B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86871C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86871D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86871DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86871E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86871F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868720C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687218 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 8687224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868723C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868726C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868729C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86872A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86872B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86872C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86872CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86872D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86872E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86872F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86872FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687308 - voice_keysplit voicegroup007, KeySplitTable3 @ 8687314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868732C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868735C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868738C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86873A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86873B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86873BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86873C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86873D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86873E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86873EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86873F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868741C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687428 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 8687434 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 8687440 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 868744C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8687458 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8687464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868747C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86874A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86874AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86874B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86874C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86874D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86874DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86874E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86874F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868750C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868753C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868756C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868759C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86875A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86875B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86875C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86875CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86875D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86875E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86875F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86875FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868762C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687650 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868765C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8687668 +voicegroup063:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup064.inc b/sound/voicegroups/voicegroup064.inc index f52f456996..9199434001 100644 --- a/sound/voicegroups/voicegroup064.inc +++ b/sound/voicegroups/voicegroup064.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup064:: @ 8687674 - voice_keysplit_all voicegroup001 @ 8687674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868768C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86876A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86876B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86876BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86876C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86876D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86876E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86876EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86876F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868771C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868774C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868777C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687788 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 8687794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86877A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86877AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86877B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86877C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86877D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86877DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86877E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86877F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868780C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868783C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868786C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687890 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868789C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 86878A8 - voice_keysplit voicegroup006, KeySplitTable2 @ 86878B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86878C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86878CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86878D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86878E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86878F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86878FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868792C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687938 - voice_keysplit voicegroup009, KeySplitTable5 @ 8687944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868795C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868798C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86879A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86879B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86879BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86879C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86879D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 86879E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86879EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86879F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A28 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 8687A34 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8687A40 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 8687A4C - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 8687A58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C50 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8687C5C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8687C68 +voicegroup064:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup065.inc b/sound/voicegroups/voicegroup065.inc index d4a6048673..3ec97c6b63 100644 --- a/sound/voicegroups/voicegroup065.inc +++ b/sound/voicegroups/voicegroup065.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup065:: @ 8687C74 - voice_keysplit_all voicegroup001 @ 8687C74 - voice_keysplit voicegroup005, KeySplitTable1 @ 8687C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D34 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 8687D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687DDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E18 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 8687E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F08 - voice_keysplit voicegroup007, KeySplitTable3 @ 8687F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8687FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868801C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688028 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 8688034 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 8688040 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 868804C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 0 @ 8688058 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8688064 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8688070 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 868807C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 @ 8688088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86880A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86880AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86880B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86880C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86880D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86880DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86880E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86880F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868810C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868813C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868816C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868819C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86881A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86881B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86881C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86881CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86881D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86881E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86881F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86881FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868822C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688250 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868825C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8688268 +voicegroup065:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup066.inc b/sound/voicegroups/voicegroup066.inc index ba3f167033..fff4e5a672 100644 --- a/sound/voicegroups/voicegroup066.inc +++ b/sound/voicegroups/voicegroup066.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup066:: @ 8688274 - voice_keysplit_all voicegroup001 @ 8688274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868828C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86882A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86882B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86882BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86882C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86882D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86882E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86882EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86882F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868831C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868834C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868837C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688388 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 8688394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86883A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86883AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86883B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86883C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86883D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86883DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86883E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86883F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868840C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8688418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688430 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 868843C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868846C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688484 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 8688490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868849C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86884A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86884B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86884C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86884CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86884D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86884E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86884F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86884FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868852C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868855C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868858C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86885A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86885B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86885BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86885C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86885D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 86885E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86885EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86885F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868861C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688628 - voice_square_1 60, 0, 0, 1, 0, 1, 4, 1 @ 8688634 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 8688640 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 3 @ 868864C - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 8688658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868867C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86886A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86886AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86886B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86886C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86886D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86886DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86886E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86886F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868870C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868873C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868876C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868879C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86887A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86887B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86887C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86887CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86887D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86887E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86887F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86887FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868882C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688850 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868885C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8688868 +voicegroup066:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 3 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup067.inc b/sound/voicegroups/voicegroup067.inc index b2ecd0927e..6484d44790 100644 --- a/sound/voicegroups/voicegroup067.inc +++ b/sound/voicegroups/voicegroup067.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup067:: @ 8688874 - voice_keysplit_all voicegroup001 @ 8688874 - voice_keysplit voicegroup005, KeySplitTable1 @ 8688880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868888C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86888A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86888B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86888BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86888C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86888D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86888E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86888EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86888F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868891C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688934 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8688940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868894C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868897C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688988 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 8688994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86889A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86889AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86889B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86889C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86889D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86889DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86889E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86889F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A30 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8688A3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B08 - voice_keysplit voicegroup007, KeySplitTable3 @ 8688B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688BD4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 8688BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688C28 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 8688C34 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 8688C40 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8688C4C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8688C58 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8688C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688C70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E50 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8688E5C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8688E68 +voicegroup067:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup068.inc b/sound/voicegroups/voicegroup068.inc index 1d7f97cd59..3a7b4b034f 100644 --- a/sound/voicegroups/voicegroup068.inc +++ b/sound/voicegroups/voicegroup068.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup068:: @ 8688E74 - voice_keysplit_all voicegroup001 @ 8688E74 - voice_keysplit voicegroup005, KeySplitTable1 @ 8688E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688E98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F10 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8688F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F34 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8688F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688F88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 8688F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8688FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868900C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8689018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689030 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 868903C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868906C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868909C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86890A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86890B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86890C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86890CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86890D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86890E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86890F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86890FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689108 - voice_keysplit voicegroup007, KeySplitTable3 @ 8689114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868912C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868915C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868918C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86891A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86891B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86891BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86891C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86891D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 86891E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86891EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86891F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868921C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689228 - voice_square_1 60, 0, 0, 2, 0, 2, 3, 1 @ 8689234 - voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 @ 8689240 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 868924C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8689258 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8689264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868927C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86892A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86892AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86892B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86892C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86892D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86892DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86892E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86892F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868930C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868933C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868936C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868939C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86893A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86893B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86893C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86893CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86893D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86893E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86893F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86893FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868942C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689450 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868945C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8689468 +voicegroup068:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 2, 3, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup069.inc b/sound/voicegroups/voicegroup069.inc index 952ebff669..d2372c0cd7 100644 --- a/sound/voicegroups/voicegroup069.inc +++ b/sound/voicegroups/voicegroup069.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup069:: @ 8689474 - voice_keysplit_all voicegroup001 @ 8689474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868948C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86894A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86894B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86894BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86894C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86894D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86894E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86894EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86894F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868951C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689534 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8689540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868954C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868957C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689588 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 8689594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86895A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86895AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86895B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86895C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86895D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86895DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86895E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86895F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868960C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8689618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689630 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 868963C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868966C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689684 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 8689690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868969C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86896A8 - voice_keysplit voicegroup006, KeySplitTable2 @ 86896B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86896C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86896CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86896D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86896E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86896F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86896FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689720 - voice_keysplit voicegroup008, KeySplitTable4 @ 868972C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868975C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868978C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86897A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86897B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86897BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86897C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86897D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 86897E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86897EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86897F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868981C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689828 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 8689834 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8689840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868984C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 3 @ 8689858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868987C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86898A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86898AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86898B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86898C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86898D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86898DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86898E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86898F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868990C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868993C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868996C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868999C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86899A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86899B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86899C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86899CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86899D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86899E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86899F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86899FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A50 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8689A5C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8689A68 +voicegroup069:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup070.inc b/sound/voicegroups/voicegroup070.inc index 6d80b556a9..965cf73a88 100644 --- a/sound/voicegroups/voicegroup070.inc +++ b/sound/voicegroups/voicegroup070.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup070:: @ 8689A74 - voice_keysplit_all voicegroup001 @ 8689A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689B88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 8689B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8689C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689C90 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8689C9C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 8689CA8 - voice_keysplit voicegroup006, KeySplitTable2 @ 8689CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D08 - voice_keysplit voicegroup007, KeySplitTable3 @ 8689D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E28 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 8689E34 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 8689E40 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8689E4C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8689E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8689FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A02C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A050 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 868A05C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868A068 +voicegroup070:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup071.inc b/sound/voicegroups/voicegroup071.inc index a1592a6e80..0d247bb5e5 100644 --- a/sound/voicegroups/voicegroup071.inc +++ b/sound/voicegroups/voicegroup071.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup071:: @ 868A074 - voice_keysplit_all voicegroup001 @ 868A074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A08C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A0A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A0B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A0BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A0C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A0D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A0E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A0EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A0F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A11C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A14C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A17C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A1A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A1AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A1B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A1C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A1D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A1DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A1E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A1F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A20C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A23C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A26C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A29C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A2A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A2B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A2C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A2CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A2D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A2E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A2F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A2FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A308 - voice_keysplit voicegroup007, KeySplitTable3 @ 868A314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A320 - voice_keysplit voicegroup008, KeySplitTable4 @ 868A32C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A338 - voice_keysplit voicegroup009, KeySplitTable5 @ 868A344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A35C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A38C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A3A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A3B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A3BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A3C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A3D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A3E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A3EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A3F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A41C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A428 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 868A434 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 868A440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A44C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 @ 868A458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A47C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A4A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A4AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A4B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A4C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A4D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A4DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A4E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A4F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A50C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A53C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A56C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A59C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A5A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A5B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A5C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A5CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A5D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A5E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A5F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A5FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A62C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A65C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868A668 +voicegroup071:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup072.inc b/sound/voicegroups/voicegroup072.inc index deb467dbf0..6c4c840ad2 100644 --- a/sound/voicegroups/voicegroup072.inc +++ b/sound/voicegroups/voicegroup072.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup072:: @ 868A674 - voice_keysplit_all voicegroup001 @ 868A674 - voice_keysplit voicegroup005, KeySplitTable1 @ 868A680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A68C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A6A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A6B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A6BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A6C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A6D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A6E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A6EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A6F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A704 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 868A710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A71C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A734 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 868A740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A74C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A77C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A788 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868A794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A7A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A7AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A7B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A7C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A7D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A7DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A7E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A7F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A80C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 868A818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A83C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A86C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A890 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868A89C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A8A8 - voice_keysplit voicegroup006, KeySplitTable2 @ 868A8B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A8C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A8CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A8D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A8E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A8F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A8FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A908 - voice_keysplit voicegroup007, KeySplitTable3 @ 868A914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A92C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A938 - voice_keysplit voicegroup009, KeySplitTable5 @ 868A944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A95C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A98C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A9A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A9B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A9BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A9C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A9D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A9E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A9EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868A9F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AA04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AA10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AA1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AA28 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 868AA34 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 868AA40 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 868AA4C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 868AA58 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 0 @ 868AA64 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 0 @ 868AA70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AA7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AA88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AA94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AAA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AAAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AAB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AAC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AAD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AAE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AAF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AB9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ABA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ABB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ABC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ABCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ABD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ABE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ABF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ABFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC50 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 868AC5C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868AC68 +voicegroup072:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup073.inc b/sound/voicegroups/voicegroup073.inc index 2701b5c790..bc859f0e75 100644 --- a/sound/voicegroups/voicegroup073.inc +++ b/sound/voicegroups/voicegroup073.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup073:: @ 868AC74 - voice_keysplit_all voicegroup001 @ 868AC74 - voice_keysplit voicegroup005, KeySplitTable1 @ 868AC80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AC98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ACA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ACB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ACBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ACC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ACD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ACE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ACEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ACF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD04 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 868AD10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD34 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 868AD40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AD88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868AD94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ADA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ADAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ADB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ADC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ADD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ADDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ADE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ADF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 868AE18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE30 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 868AE3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AE90 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868AE9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AEA8 - voice_keysplit voicegroup006, KeySplitTable2 @ 868AEB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AEC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AEE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AEF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AEFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF08 - voice_keysplit voicegroup007, KeySplitTable3 @ 868AF14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF38 - voice_keysplit voicegroup009, KeySplitTable5 @ 868AF44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AF98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AFA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AFB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AFBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AFC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AFD4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 868AFE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AFEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868AFF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B01C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B028 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 @ 868B034 - voice_square_2_alt 60, 0, 2, 0, 2, 4, 1 @ 868B040 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 868B04C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 0 @ 868B058 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 0 @ 868B064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B07C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B0A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B0AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B0B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B0C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B0D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B0DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B0E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B0F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B10C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B13C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B16C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B19C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B1A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B1B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B1C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B1CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B1D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B1E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B1F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B1FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B22C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B250 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 868B25C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868B268 +voicegroup073:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup074.inc b/sound/voicegroups/voicegroup074.inc index 6b9dcfb511..da9bbb03ce 100644 --- a/sound/voicegroups/voicegroup074.inc +++ b/sound/voicegroups/voicegroup074.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup074:: @ 868B274 - voice_keysplit_all voicegroup001 @ 868B274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B28C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B2A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B2B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B2BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B2C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B2D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B2E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B2EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B2F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B304 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 868B310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B31C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B34C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B37C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B3A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B3AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B3B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B3C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B3D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B3DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B3E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B3F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B40C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 868B418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B43C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B46C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B49C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 216 @ 868B4A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B4B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B4C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B4CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B4D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B4E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B4F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B4FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B52C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B55C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B58C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B5A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B5B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B5BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B5C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B5D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B5E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B5EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B5F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B61C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B628 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 0 @ 868B634 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 0 @ 868B640 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 868B64C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 868B658 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 868B664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B67C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 868B688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B6A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B6AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B6B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B6C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B6D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B6DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B6E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B6F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B70C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B73C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B76C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B79C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B7A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B7B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B7C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B7CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B7D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B7E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B7F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B7FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B82C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B850 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 868B85C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868B868 +voicegroup074:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup075.inc b/sound/voicegroups/voicegroup075.inc index cd8ed9250d..908ca57074 100644 --- a/sound/voicegroups/voicegroup075.inc +++ b/sound/voicegroups/voicegroup075.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup075:: @ 868B874 - voice_keysplit_all voicegroup001 @ 868B874 - voice_keysplit voicegroup005, KeySplitTable1 @ 868B880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B88C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B8A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B8B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B8BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B8C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B8D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B8E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B8EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B8F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B910 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 868B91C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B94C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B97C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B9A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B9AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B9B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B9C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B9D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B9DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B9E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868B9F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 868BA18 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 868BA24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BA9C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 868BAA8 - voice_keysplit voicegroup006, KeySplitTable2 @ 868BAB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BAC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BAD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BAE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BAF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BAFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB08 - voice_keysplit voicegroup007, KeySplitTable3 @ 868BB14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB20 - voice_keysplit voicegroup008, KeySplitTable4 @ 868BB2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB38 - voice_keysplit voicegroup009, KeySplitTable5 @ 868BB44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BB98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BBA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BBB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BBBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BBC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BBD4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 868BBE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BBEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BBF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BC04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BC10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BC1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BC28 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 3, 1 @ 868BC34 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 868BC40 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 868BC4C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 @ 868BC58 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 868BC64 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 1 @ 868BC70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BC7C - voice_square_1_alt 60, 0, 0, 0, 0, 2, 3, 1 @ 868BC88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BC94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BCA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BCAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BCB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BCC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BCD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BCDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BCE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BCF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BD9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BDA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BDB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BDC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BDCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BDD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BDE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BDF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BDFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE50 - voice_noise_alt 60, 0, 0, 0, 3, 4, 0 @ 868BE5C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868BE68 +voicegroup075:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 3, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 3, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup076.inc b/sound/voicegroups/voicegroup076.inc index 3148389b2c..c8faabe75c 100644 --- a/sound/voicegroups/voicegroup076.inc +++ b/sound/voicegroups/voicegroup076.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup076:: @ 868BE74 - voice_keysplit_all voicegroup001 @ 868BE74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BE98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BEA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BEB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BEBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BEC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BEE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BEEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BEF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF34 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 868BF40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BF94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BFA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BFAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BFB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BFC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BFD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BFDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BFE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868BFF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C00C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 868C018 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 868C024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C03C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C06C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C09C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C0A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C0B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C0C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C0CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C0D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C0E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C0F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C0FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C108 - voice_keysplit voicegroup007, KeySplitTable3 @ 868C114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C12C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C15C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C18C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C1A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C1B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C1BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C1C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C1D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C1E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C1EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C1F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C21C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C228 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 868C234 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 868C240 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 868C24C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 @ 868C258 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 868C264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C27C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C2A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C2AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C2B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C2C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C2D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C2DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C2E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C2F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C30C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C33C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C36C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C39C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C3A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C3B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C3C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C3CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C3D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C3E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C3F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C3FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C42C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C450 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868C45C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868C468 +voicegroup076:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup077.inc b/sound/voicegroups/voicegroup077.inc index bc174e8955..3bf100be53 100644 --- a/sound/voicegroups/voicegroup077.inc +++ b/sound/voicegroups/voicegroup077.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup077:: @ 868C474 - voice_keysplit_all voicegroup001 @ 868C474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C48C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C4A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C4B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C4BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C4C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C4D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C4E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C4EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C4F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C504 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 868C510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C51C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C534 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 868C540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C54C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C57C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C588 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868C594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C5A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C5AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C5B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C5C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C5D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C5DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C5E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C5F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C60C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 196 @ 868C618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C63C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C66C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C690 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868C69C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C6A8 - voice_keysplit voicegroup006, KeySplitTable2 @ 868C6B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C6C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C6CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C6D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C6E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C6F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C6FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C72C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C75C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C78C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C7A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C7B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C7BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C7C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C7D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 868C7E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C7EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C7F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C81C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C828 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 868C834 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 868C840 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 868C84C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C87C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C8A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C8AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C8B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C8C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C8D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C8DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C8E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C8F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C90C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C93C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C96C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C99C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C9A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C9B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C9C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C9CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C9D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C9E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C9F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868C9FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA50 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 868CA5C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868CA68 +voicegroup077:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 196 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup078.inc b/sound/voicegroups/voicegroup078.inc index 29fc345c8c..721b804309 100644 --- a/sound/voicegroups/voicegroup078.inc +++ b/sound/voicegroups/voicegroup078.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup078:: @ 868CA74 - voice_keysplit_all voicegroup001 @ 868CA74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CA98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CAA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CAB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CAC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CAD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CAE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CAEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CAF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB10 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 868CB1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CB88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868CB94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CBA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CBAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CBB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CBC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CBD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CBDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CBE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CBF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 196 @ 868CC18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC84 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 868CC90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CC9C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 868CCA8 - voice_keysplit voicegroup006, KeySplitTable2 @ 868CCB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CCC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CCCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CCD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CCE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CCF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CCFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD38 - voice_keysplit voicegroup009, KeySplitTable5 @ 868CD44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CD98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CDA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CDB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CDBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CDC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CDD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CDE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CDEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CDF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE28 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 868CE34 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 868CE40 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 868CE4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CE94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CEA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CEAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CEB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CEC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CEDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CEE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CEF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CF9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CFA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CFB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CFC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CFCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CFD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CFE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CFF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868CFFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D02C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D050 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 868D05C - voice_noise_alt 60, 0, 0, 0, 2, 0, 2 @ 868D068 +voicegroup078:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 196 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 2, 0, 2 diff --git a/sound/voicegroups/voicegroup079.inc b/sound/voicegroups/voicegroup079.inc index 8aa13f41e8..7923d4d32d 100644 --- a/sound/voicegroups/voicegroup079.inc +++ b/sound/voicegroups/voicegroup079.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup079:: @ 868D074 - voice_keysplit_all voicegroup001 @ 868D074 - voice_keysplit voicegroup005, KeySplitTable1 @ 868D080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D08C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D0A4 - voice_square_2_alt 60, 0, 3, 0, 2, 4, 1 @ 868D0B0 - voice_square_2_alt 60, 0, 0, 0, 1, 6, 2 @ 868D0BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D0C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D0D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D0E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D0EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D0F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D110 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 868D11C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D134 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 868D140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D14C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D17C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D188 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868D194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D1A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D1AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D1B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D1C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D1D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D1DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D1E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D1F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D20C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D23C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 6, 2 @ 868D248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D26C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D284 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 868D290 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868D29C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D2A8 - voice_keysplit voicegroup006, KeySplitTable2 @ 868D2B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D2C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D2CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D2D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D2E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D2F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D2FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D32C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D35C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D38C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D3A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D3B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D3BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D3C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D3D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 868D3E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D3EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D3F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D41C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D428 - voice_square_1_alt 60, 0, 0, 3, 0, 2, 4, 1 @ 868D434 - voice_square_2_alt 60, 0, 3, 0, 1, 6, 2 @ 868D440 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 @ 868D44C - voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 5 @ 868D458 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 4, 4 @ 868D464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D47C - voice_square_2_alt 60, 0, 2, 0, 1, 6, 2 @ 868D488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D4A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D4AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D4B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D4C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D4D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D4DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D4E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D4F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D50C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D53C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D56C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D59C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D5A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D5B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D5C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D5CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D5D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D5E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D5F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D5FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D62C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D650 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868D65C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868D668 +voicegroup079:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 2, 4, 1 + voice_square_2_alt 60, 0, 3, 0, 1, 6, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 5 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 4, 4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup080.inc b/sound/voicegroups/voicegroup080.inc index 1d0a21b326..4db39381d4 100644 --- a/sound/voicegroups/voicegroup080.inc +++ b/sound/voicegroups/voicegroup080.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup080:: @ 868D674 - voice_keysplit_all voicegroup001 @ 868D674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D68C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D6A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D6B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D6BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D6C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D6D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D6E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D6EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D6F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D71C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D74C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D77C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D788 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868D794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D7A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D7AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D7B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D7C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D7D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D7DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D7E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D7F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D80C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D830 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 868D83C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D86C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D884 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 868D890 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868D89C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 868D8A8 - voice_keysplit voicegroup006, KeySplitTable2 @ 868D8B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D8C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D8CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D8D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D8E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D8F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D8FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D92C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D938 - voice_keysplit voicegroup009, KeySplitTable5 @ 868D944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D95C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D98C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D9A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D9B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D9BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D9C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D9D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 868D9E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D9EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868D9F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA28 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 868DA34 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 868DA40 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 868DA4C - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 868DA58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DA94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DAA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DAAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DAB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DAC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DAD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DAE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DAF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DB9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DBA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DBB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DBC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DBCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DBD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DBE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DBF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DBFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DC08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DC14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DC20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DC2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DC38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DC44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DC50 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868DC5C - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868DC68 +voicegroup080:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup081.inc b/sound/voicegroups/voicegroup081.inc index 4ecddbf36d..f47f89a8d4 100644 --- a/sound/voicegroups/voicegroup081.inc +++ b/sound/voicegroups/voicegroup081.inc @@ -1,5 +1,5 @@ .align 2 -voicegroup081:: @ 868DC74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DC74 - voice_keysplit voicegroup005, KeySplitTable1 @ 868DC80 +voicegroup081:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup005, KeySplitTable1 diff --git a/sound/voicegroups/voicegroup082.inc b/sound/voicegroups/voicegroup082.inc index 0e3886eb1a..676900e7f7 100644 --- a/sound/voicegroups/voicegroup082.inc +++ b/sound/voicegroups/voicegroup082.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup082:: @ 868DC8C - voice_keysplit_all voicegroup001 @ 868DC8C - voice_keysplit voicegroup005, KeySplitTable1 @ 868DC98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DCA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DCB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DCBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DCC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DCD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DCE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DCEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DCF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD28 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 868DD34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DD94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DDA0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868DDAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DDB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DDC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DDD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DDDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DDE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DDF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DE9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DEA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DEB4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 868DEC0 - voice_keysplit voicegroup006, KeySplitTable2 @ 868DECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DEE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DEF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DEFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF20 - voice_keysplit voicegroup007, KeySplitTable3 @ 868DF2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF50 - voice_keysplit voicegroup009, KeySplitTable5 @ 868DF5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DF98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DFA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DFB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DFBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DFC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DFD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DFE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DFEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868DFF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E01C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E040 - voice_square_1_alt 60, 0, 0, 3, 0, 2, 4, 1 @ 868E04C - voice_square_2_alt 60, 0, 3, 0, 1, 6, 2 @ 868E058 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 868E064 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 4, 4 @ 868E070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E07C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E0A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E0AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E0B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E0C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E0D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E0DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E0E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E0F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E10C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E13C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E16C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E19C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E1A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E1B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E1C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E1CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E1D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E1E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E1F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E1FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E22C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E25C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E268 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868E274 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868E280 +voicegroup082:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 2, 4, 1 + voice_square_2_alt 60, 0, 3, 0, 1, 6, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 4, 4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup083.inc b/sound/voicegroups/voicegroup083.inc index 4a7a6f9421..7a345fdb1b 100644 --- a/sound/voicegroups/voicegroup083.inc +++ b/sound/voicegroups/voicegroup083.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup083:: @ 868E28C - voice_keysplit_all voicegroup001 @ 868E28C - voice_keysplit voicegroup005, KeySplitTable1 @ 868E298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E2A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E2B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E2BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E2C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E2D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E2E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E2EC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 72, 249 @ 868E2F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E31C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E34C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E37C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E3A0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 @ 868E3AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E3B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E3C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E3D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E3DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E3E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E3F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E40C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E424 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 868E430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E43C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E46C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E49C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 868E4A8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 868E4B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E4C0 - voice_keysplit voicegroup006, KeySplitTable2 @ 868E4CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E4D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E4E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E4F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E4FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E52C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E538 - voice_keysplit voicegroup008, KeySplitTable4 @ 868E544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E550 - voice_keysplit voicegroup009, KeySplitTable5 @ 868E55C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E58C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E5A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E5B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E5BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E5C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E5D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E5E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E5EC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 868E5F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E61C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E640 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 868E64C - voice_square_2_alt 60, 0, 2, 0, 1, 4, 2 @ 868E658 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 6, 4 @ 868E664 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 2, 6, 1 @ 868E670 +voicegroup083:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 72, 249 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 6, 4 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 2, 6, 1 diff --git a/sound/voicegroups/voicegroup084.inc b/sound/voicegroups/voicegroup084.inc index ea44d4722e..8b30d81255 100644 --- a/sound/voicegroups/voicegroup084.inc +++ b/sound/voicegroups/voicegroup084.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup084:: @ 868E67C - voice_keysplit_all voicegroup001 @ 868E67C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E6A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E6AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E6B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E6C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E6D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E6DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E6E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E6F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E70C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E718 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 868E724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E73C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E76C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E790 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868E79C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E7A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E7B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E7C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E7CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E7D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E7E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E7F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E7FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E82C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E85C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E88C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E898 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868E8A4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 868E8B0 - voice_keysplit voicegroup006, KeySplitTable2 @ 868E8BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E8C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E8D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E8E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E8EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E8F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E91C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E940 - voice_keysplit voicegroup009, KeySplitTable5 @ 868E94C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E97C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E9A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E9AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E9B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E9C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E9D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E9DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 868E9E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868E9F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA30 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 0 @ 868EA3C - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 868EA48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA84 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 @ 868EA90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EA9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EAA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EAB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EAC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EAD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EAE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EAF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EAFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EB98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EBA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EBB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EBBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EBC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EBD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EBE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EBEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EBF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC58 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868EC64 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868EC70 +voicegroup084:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup085.inc b/sound/voicegroups/voicegroup085.inc index fee99d5fc7..0cd2dcc2f7 100644 --- a/sound/voicegroups/voicegroup085.inc +++ b/sound/voicegroups/voicegroup085.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup085:: @ 868EC7C - voice_keysplit_all voicegroup001 @ 868EC7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EC94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ECA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ECAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ECB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ECC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ECD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ECDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ECE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ECF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868ED90 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868ED9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EDA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EDB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EDC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EDCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EDD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EDE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EDF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EDFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EE98 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868EEA4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 868EEB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EEBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EEC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EEE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EEEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EEF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF10 - voice_keysplit voicegroup007, KeySplitTable3 @ 868EF1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EF94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EFA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EFAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EFB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EFC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EFD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EFDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 868EFE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868EFF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F00C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F030 - voice_square_1_alt 60, 0, 0, 2, 1, 2, 4, 0 @ 868F03C - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 868F048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F054 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 868F060 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 13, 1 @ 868F06C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F09C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F0A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F0B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F0C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F0CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F0D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F0E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F0F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F0FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F12C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F15C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F18C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F1A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F1B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F1BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F1C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F1D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F1E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F1EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F1F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F21C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F24C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F258 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868F264 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868F270 +voicegroup085:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 1, 2, 4, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 13, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup086.inc b/sound/voicegroups/voicegroup086.inc index 88e4757776..57069bf8af 100644 --- a/sound/voicegroups/voicegroup086.inc +++ b/sound/voicegroups/voicegroup086.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup086:: @ 868F27C - voice_keysplit_all voicegroup001 @ 868F27C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F2A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F2AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F2B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F2C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F2D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F2DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F2E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F2F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F30C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F318 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 868F324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F33C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 868F348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F36C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F390 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 868F39C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F3A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F3B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F3C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F3CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F3D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F3E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F3F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F3FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F414 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 868F420 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 868F42C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F45C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F48C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F498 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 868F4A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F4B0 - voice_keysplit voicegroup006, KeySplitTable2 @ 868F4BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F4C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F4D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F4E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F4EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F4F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F510 - voice_keysplit voicegroup007, KeySplitTable3 @ 868F51C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F540 - voice_keysplit voicegroup009, KeySplitTable5 @ 868F54C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F57C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F5A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F5AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F5B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F5C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F5D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F5DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 868F5E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F5F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F60C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F630 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 @ 868F63C - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 868F648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F654 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 868F660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F66C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F69C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F6A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F6B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F6C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F6CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F6D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F6E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F6F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F6FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F72C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F75C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F78C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F7A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F7B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F7BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F7C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F7D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F7E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F7EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F7F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F81C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F84C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F858 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868F864 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868F870 +voicegroup086:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup087.inc b/sound/voicegroups/voicegroup087.inc index f71016d5d1..59e24b7cce 100644 --- a/sound/voicegroups/voicegroup087.inc +++ b/sound/voicegroups/voicegroup087.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup087:: @ 868F87C - voice_keysplit_all voicegroup001 @ 868F87C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F8A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F8AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F8B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F8C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F8D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F8DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F8E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F8F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F90C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F93C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F96C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F99C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F9A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F9B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F9C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F9CC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 @ 868F9D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F9E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F9F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868F9FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA20 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 868FA2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA38 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 868FA44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FA98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FAA4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 868FAB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FAC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FAD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FAE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FAEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FAF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB10 - voice_keysplit voicegroup007, KeySplitTable3 @ 868FB1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB40 - voice_keysplit voicegroup009, KeySplitTable5 @ 868FB4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FB94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FBA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FBAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FBB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FBC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FBD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FBDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FBE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FBF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC30 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 868FC3C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 868FC48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC54 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 @ 868FC60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FC9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FCA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FCB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FCC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FCCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FCD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FCE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FCF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FCFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FD98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FDA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FDB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FDBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FDC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FDD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FDE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FDEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FDF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE58 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 868FE64 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 868FE70 +voicegroup087:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup088.inc b/sound/voicegroups/voicegroup088.inc index 6b0ecee982..77fe56d2d8 100644 --- a/sound/voicegroups/voicegroup088.inc +++ b/sound/voicegroups/voicegroup088.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup088:: @ 868FE7C - voice_keysplit_all voicegroup001 @ 868FE7C - voice_keysplit voicegroup005, KeySplitTable1 @ 868FE88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FE94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FEA0 - voice_square_2_alt 60, 0, 1, 1, 1, 6, 2 @ 868FEAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FEB8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 868FEC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FEDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FEE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FEF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF18 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 868FF24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FF9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FFA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FFB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FFC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FFCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FFD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FFE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FFF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 868FFFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869002C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869005C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869008C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690098 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 86900A4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 @ 86900B0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86900BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86900C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86900D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86900E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86900EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86900F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690110 - voice_keysplit voicegroup007, KeySplitTable3 @ 869011C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690128 - voice_keysplit voicegroup008, KeySplitTable4 @ 8690134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690140 - voice_keysplit voicegroup009, KeySplitTable5 @ 869014C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869017C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86901A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86901AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86901B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86901C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86901D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86901DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86901E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86901F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869020C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690230 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 6, 2 @ 869023C - voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 @ 8690248 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8690254 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 8690260 - voice_square_1_alt 60, 0, 0, 1, 1, 1, 6, 0 @ 869026C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690284 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 @ 8690290 - voice_square_2_alt 60, 0, 3, 0, 1, 6, 2 @ 869029C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86902A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86902B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86902C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86902CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86902D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86902E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86902F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86902FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869032C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869035C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869038C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86903A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86903B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86903BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86903C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86903D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86903E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86903EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86903F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869041C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869044C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690464 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8690470 +voicegroup088:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 1, 1, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 6, 2 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 1, 1, 1, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup089.inc b/sound/voicegroups/voicegroup089.inc index 82e5654449..531e5f543a 100644 --- a/sound/voicegroups/voicegroup089.inc +++ b/sound/voicegroups/voicegroup089.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup089:: @ 869047C - voice_keysplit_all voicegroup001 @ 869047C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86904A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86904AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86904B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86904C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86904D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86904DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86904E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86904F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869050C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690518 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8690524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869053C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869056C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869059C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86905A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86905B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86905C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86905CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86905D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86905E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86905F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86905FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869062C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869065C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869068C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86906A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86906B0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86906BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86906C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86906D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86906E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86906EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86906F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869071C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690740 - voice_keysplit voicegroup009, KeySplitTable5 @ 869074C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869077C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86907A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86907AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86907B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86907C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86907D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86907DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 86907E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86907F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869080C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690830 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 3 @ 869083C - voice_square_2_alt 60, 0, 2, 0, 2, 4, 0 @ 8690848 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 8690854 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 @ 8690860 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 869086C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869089C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86908A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86908B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86908C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86908CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86908D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86908E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86908F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86908FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869092C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869095C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869098C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86909A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86909B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86909BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86909C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86909D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86909E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86909EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86909F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A58 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8690A64 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8690A70 +voicegroup089:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 3 + voice_square_2_alt 60, 0, 2, 0, 2, 4, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup090.inc b/sound/voicegroups/voicegroup090.inc index 68499a86b8..dd3301845f 100644 --- a/sound/voicegroups/voicegroup090.inc +++ b/sound/voicegroups/voicegroup090.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup090:: @ 8690A7C - voice_keysplit_all voicegroup001 @ 8690A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690DDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E30 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 4, 1 @ 8690E3C - voice_square_2_alt 60, 0, 0, 0, 2, 4, 1 @ 8690E48 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8690E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8690FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869101C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869104C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691058 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8691064 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8691070 +voicegroup090:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 2, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup091.inc b/sound/voicegroups/voicegroup091.inc index 399735e846..59230282e5 100644 --- a/sound/voicegroups/voicegroup091.inc +++ b/sound/voicegroups/voicegroup091.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup091:: @ 869107C - voice_keysplit_all voicegroup001 @ 869107C - voice_keysplit voicegroup005, KeySplitTable1 @ 8691088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86910A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86910AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86910B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86910C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86910D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86910DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 72, 249 @ 86910E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86910F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869110C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8691118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869113C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 @ 8691148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869116C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691190 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 @ 869119C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86911A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86911B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86911C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86911CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86911D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86911E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86911F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86911FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691214 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8691220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869122C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869125C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869128C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 @ 8691298 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 86912A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86912B0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86912BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86912C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86912D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86912E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86912EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86912F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869131C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691328 - voice_keysplit voicegroup008, KeySplitTable4 @ 8691334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691340 - voice_keysplit voicegroup009, KeySplitTable5 @ 869134C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869137C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86913A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86913AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86913B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86913C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86913D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86913DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86913E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86913F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869140C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691430 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 5, 2 @ 869143C - voice_square_2_alt 60, 0, 2, 0, 1, 5, 2 @ 8691448 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 7, 0 @ 8691454 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 2, 6, 1 @ 8691460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869146C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869149C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86914A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86914B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86914C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86914CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86914D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86914E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86914F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86914FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869152C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869155C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869158C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86915A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86915B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86915BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86915C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86915D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86915E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86915EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86915F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869161C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869164C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691658 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8691664 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8691670 +voicegroup091:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 72, 249 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 226, 0, 38 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 5, 2 + voice_square_2_alt 60, 0, 2, 0, 1, 5, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 7, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 2, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup092.inc b/sound/voicegroups/voicegroup092.inc index 2bafc4853d..0fff2f1214 100644 --- a/sound/voicegroups/voicegroup092.inc +++ b/sound/voicegroups/voicegroup092.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup092:: @ 869167C - voice_keysplit_all voicegroup001 @ 869167C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86916A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86916AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86916B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86916C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86916D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86916DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86916E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86916F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869170C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8691718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869173C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869176C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691790 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 @ 869179C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86917A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86917B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86917C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86917CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86917D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86917E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86917F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86917FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869182C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691838 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8691844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869185C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869188C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691898 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 86918A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86918B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86918BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86918C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86918D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86918E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86918EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86918F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869191C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869194C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869197C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86919A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86919AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86919B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86919C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86919D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86919DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86919E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86919F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A30 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8691A3C - voice_square_2_alt 60, 0, 2, 0, 1, 4, 2 @ 8691A48 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 7, 0 @ 8691A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C58 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8691C64 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8691C70 +voicegroup092:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup093.inc b/sound/voicegroups/voicegroup093.inc index 35fd8ccf57..2d1b721daf 100644 --- a/sound/voicegroups/voicegroup093.inc +++ b/sound/voicegroups/voicegroup093.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup093:: @ 8691C7C - voice_keysplit_all voicegroup001 @ 8691C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8691D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691D90 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 @ 8691D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E20 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 8691E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E38 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8691E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691E98 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 8691EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691EB0 - voice_keysplit voicegroup006, KeySplitTable2 @ 8691EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F28 - voice_keysplit voicegroup008, KeySplitTable4 @ 8691F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F40 - voice_keysplit voicegroup009, KeySplitTable5 @ 8691F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691FDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 8691FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8691FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869200C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692030 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 869203C - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 8692048 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 7, 0 @ 8692054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869206C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869209C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86920A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86920B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86920C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86920CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86920D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86920E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86920F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86920FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869212C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869215C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869218C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86921A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86921B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86921BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86921C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86921D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86921E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86921EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86921F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869221C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869224C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692258 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8692264 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8692270 +voicegroup093:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup094.inc b/sound/voicegroups/voicegroup094.inc index 92f5d1f3d6..72bc1098c4 100644 --- a/sound/voicegroups/voicegroup094.inc +++ b/sound/voicegroups/voicegroup094.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup094:: @ 869227C - voice_keysplit_all voicegroup001 @ 869227C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86922A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86922AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86922B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86922C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86922D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86922DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 72, 249 @ 86922E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86922F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869230C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8692318 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8692324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869233C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8692348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869236C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 8692378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692390 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 @ 869239C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86923A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86923B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86923C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86923CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86923D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86923E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86923F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86923FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869242C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869245C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869248C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86924A4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 86924B0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86924BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86924C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86924D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86924E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86924EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86924F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692510 - voice_keysplit voicegroup007, KeySplitTable3 @ 869251C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692540 - voice_keysplit voicegroup009, KeySplitTable5 @ 869254C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869257C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86925A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86925AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86925B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86925C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86925D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86925DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86925E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86925F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869260C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692630 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 869263C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8692648 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 7, 0 @ 8692654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869266C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869269C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86926A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86926B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86926C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86926CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86926D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86926E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86926F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86926FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869272C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869275C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869278C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86927A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86927B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86927BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86927C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86927D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86927E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86927EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86927F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869281C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869284C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692858 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8692864 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8692870 +voicegroup094:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 72, 249 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup095.inc b/sound/voicegroups/voicegroup095.inc index feec67d53d..83afb58b13 100644 --- a/sound/voicegroups/voicegroup095.inc +++ b/sound/voicegroups/voicegroup095.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup095:: @ 869287C - voice_keysplit_all voicegroup001 @ 869287C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86928A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86928AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86928B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86928C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86928D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86928DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86928E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86928F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869290C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869293C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8692948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869296C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692990 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 869299C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86929A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86929B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86929C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86929CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86929D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86929E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86929F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86929FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A38 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8692A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692BDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 8692BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C30 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 @ 8692C3C - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 8692C48 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 3 @ 8692C54 - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 8692C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E58 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8692E64 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8692E70 +voicegroup095:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 3 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup096.inc b/sound/voicegroups/voicegroup096.inc index 495b5b2f54..bf0bd6badb 100644 --- a/sound/voicegroups/voicegroup096.inc +++ b/sound/voicegroups/voicegroup096.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup096:: @ 8692E7C - voice_keysplit_all voicegroup001 @ 8692E7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8692F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F3C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8692F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692F90 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 8692F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8692FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693020 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 869302C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693038 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8693044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869305C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869308C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86930A4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 86930B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86930BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86930C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86930D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86930E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86930EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86930F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693110 - voice_keysplit voicegroup007, KeySplitTable3 @ 869311C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869314C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869317C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86931A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86931AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86931B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86931C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86931D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86931DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86931E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86931F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869320C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869323C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8693248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693254 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 8693260 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 @ 869326C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869329C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86932A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86932B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86932C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86932CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86932D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86932E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86932F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86932FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869332C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869335C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869338C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86933A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86933B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86933BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86933C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86933D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86933E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86933EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86933F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869341C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869344C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693458 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8693464 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8693470 +voicegroup096:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup097.inc b/sound/voicegroups/voicegroup097.inc index dfb094bc76..8c4cea3b7b 100644 --- a/sound/voicegroups/voicegroup097.inc +++ b/sound/voicegroups/voicegroup097.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup097:: @ 869347C - voice_keysplit_all voicegroup001 @ 869347C - voice_keysplit voicegroup005, KeySplitTable1 @ 8693488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86934A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86934AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86934B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86934C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86934D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86934DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86934E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86934F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869350C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693518 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8693524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869353C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869356C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869359C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86935A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86935B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86935C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86935CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86935D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86935E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86935F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86935FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869362C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869365C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869368C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86936A4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 249 @ 86936B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86936BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86936C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86936D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86936E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86936EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86936F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869371C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693728 - voice_keysplit voicegroup008, KeySplitTable4 @ 8693734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693740 - voice_keysplit voicegroup009, KeySplitTable5 @ 869374C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869377C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86937A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86937AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86937B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86937C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86937D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86937DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86937E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86937F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869380C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693830 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 @ 869383C - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 8693848 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 7, 0 @ 8693854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869386C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869389C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86938A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86938B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86938C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86938CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86938D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86938E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86938F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86938FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869392C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869395C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869398C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86939A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86939B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86939BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86939C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86939D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86939E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86939EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86939F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A58 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8693A64 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8693A70 +voicegroup097:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 249 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup098.inc b/sound/voicegroups/voicegroup098.inc index 4814b93d01..e49d32b427 100644 --- a/sound/voicegroups/voicegroup098.inc +++ b/sound/voicegroups/voicegroup098.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup098:: @ 8693A7C - voice_keysplit_all voicegroup001 @ 8693A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D10 - voice_keysplit voicegroup007, KeySplitTable3 @ 8693D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D28 - voice_keysplit voicegroup008, KeySplitTable4 @ 8693D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693DDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 8693DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E30 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 0 @ 8693E3C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 0 @ 8693E48 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 7, 0 @ 8693E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8693FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869401C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869404C - voice_directsound 60, 0, DirectSoundWaveData_873ECD8, 255, 255, 255, 127 @ 8694058 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 @ 8694064 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8694070 +voicegroup098:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_873ECD8, 255, 255, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup099.inc b/sound/voicegroups/voicegroup099.inc index 87793e90e4..60b93f6156 100644 --- a/sound/voicegroups/voicegroup099.inc +++ b/sound/voicegroups/voicegroup099.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup099:: @ 869407C - voice_keysplit_all voicegroup001 @ 869407C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86940A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86940AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86940B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86940C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86940D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86940DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86940E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86940F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869410C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8694118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869413C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869416C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869419C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86941A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86941B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86941C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86941CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86941D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86941E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86941F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86941FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694220 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 869422C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694238 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8694244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869425C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869428C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86942A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86942B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86942BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86942C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86942D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86942E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86942EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86942F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694310 - voice_keysplit voicegroup007, KeySplitTable3 @ 869431C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869434C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869437C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86943A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86943AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86943B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86943C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86943D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86943DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86943E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86943F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869440C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694430 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 0 @ 869443C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 0 @ 8694448 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 7, 0 @ 8694454 - voice_square_1_alt 60, 0, 0, 1, 2, 1, 5, 0 @ 8694460 - voice_square_2_alt 60, 0, 1, 2, 1, 5, 0 @ 869446C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869449C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86944A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86944B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86944C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86944CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86944D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86944E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86944F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86944FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869452C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869455C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869458C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86945A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86945B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86945BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86945C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86945D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86945E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86945EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86945F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869461C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869464C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694658 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8694664 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8694670 +voicegroup099:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 7, 0 + voice_square_1_alt 60, 0, 0, 1, 2, 1, 5, 0 + voice_square_2_alt 60, 0, 1, 2, 1, 5, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup100.inc b/sound/voicegroups/voicegroup100.inc index f39cc41ed9..f096a9d8a4 100644 --- a/sound/voicegroups/voicegroup100.inc +++ b/sound/voicegroups/voicegroup100.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup100:: @ 869467C - voice_keysplit_all voicegroup001 @ 869467C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86946A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86946AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86946B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86946C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86946D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86946DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86946E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86946F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869470C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8694718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869473C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8694748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869476C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694790 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 869479C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86947A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86947B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86947C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86947CC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 @ 86947D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86947E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86947F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86947FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694820 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 869482C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694838 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8694844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869485C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869488C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86948A4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 86948B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86948BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86948C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86948D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86948E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86948EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86948F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694910 - voice_keysplit voicegroup007, KeySplitTable3 @ 869491C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869494C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869497C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86949A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86949AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86949B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86949C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86949D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86949DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 86949E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86949F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A30 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 8694A3C - voice_square_1_alt 60, 0, 0, 2, 1, 1, 4, 1 @ 8694A48 - voice_square_2_alt 60, 0, 2, 1, 1, 4, 1 @ 8694A54 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 @ 8694A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A6C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 8694A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C58 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8694C64 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8694C70 +voicegroup100:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 2, 1, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 1, 1, 4, 1 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup101.inc b/sound/voicegroups/voicegroup101.inc index 1909e8ae35..53f34ae295 100644 --- a/sound/voicegroups/voicegroup101.inc +++ b/sound/voicegroups/voicegroup101.inc @@ -1,113 +1,113 @@ .align 2 -voicegroup101:: @ 8694C7C - voice_keysplit_all voicegroup001 @ 8694C7C - voice_keysplit voicegroup005, KeySplitTable1 @ 8694C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694CA0 - voice_square_1_alt 60, 0, 0, 1, 1, 5, 2, 4 @ 8694CAC - voice_square_2_alt 60, 0, 1, 1, 5, 2, 4 @ 8694CB8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 8694CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D18 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8694D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694E98 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8694EA4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 @ 8694EB0 - voice_keysplit voicegroup006, KeySplitTable2 @ 8694EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F10 - voice_keysplit voicegroup007, KeySplitTable3 @ 8694F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F28 - voice_keysplit voicegroup008, KeySplitTable4 @ 8694F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F40 - voice_keysplit voicegroup009, KeySplitTable5 @ 8694F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694FA0 - voice_square_1_alt 60, 0, 0, 1, 1, 2, 4, 1 @ 8694FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8694FDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 8694FE8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8694FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869500C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695030 - voice_square_2_alt 60, 0, 1, 1, 1, 6, 0 @ 869503C - voice_square_1_alt 60, 0, 0, 0, 0, 4, 6, 2 @ 8695048 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8695054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695060 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 6, 0 @ 869506C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695078 - voice_square_2_alt 60, 0, 1, 1, 4, 6, 1 @ 8695084 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8695090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869509C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86950A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86950B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86950C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86950CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86950D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86950E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86950F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86950FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869512C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869515C - voice_square_2_alt 60, 0, 0, 1, 2, 4, 1 @ 8695168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869518C - voice_square_2_alt 60, 0, 0, 1, 1, 6, 1 @ 8695198 +voicegroup101:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 1, 5, 2, 4 + voice_square_2_alt 60, 0, 1, 1, 5, 2, 4 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 1, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 1, 1, 6, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 4, 6, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 1, 4, 6, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 1, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 1, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup102.inc b/sound/voicegroups/voicegroup102.inc index 22aa8393a8..2f1fbb6671 100644 --- a/sound/voicegroups/voicegroup102.inc +++ b/sound/voicegroups/voicegroup102.inc @@ -1,85 +1,85 @@ .align 2 -voicegroup102:: @ 86951A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86951A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86951B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86951BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86951C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86951D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86951E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86951EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86951F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869521C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869524C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869527C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86952A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86952AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86952B8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 248 @ 86952C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86952D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86952DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86952E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86952F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869530C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869533C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869536C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869539C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86953A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86953B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86953C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 165 @ 86953CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86953D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86953E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86953F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86953FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869542C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869545C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869548C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86954A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86954B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86954BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86954C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86954D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86954E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86954EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86954F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869551C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869554C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695558 - voice_square_1_alt 60, 0, 0, 2, 0, 6, 0, 6 @ 8695564 - voice_square_2_alt 60, 0, 2, 0, 6, 0, 6 @ 8695570 +voicegroup102:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 248 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 6, 0, 6 + voice_square_2_alt 60, 0, 2, 0, 6, 0, 6 diff --git a/sound/voicegroups/voicegroup103.inc b/sound/voicegroups/voicegroup103.inc index 62780a9abb..784b39ee22 100644 --- a/sound/voicegroups/voicegroup103.inc +++ b/sound/voicegroups/voicegroup103.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup103:: @ 869557C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869557C - voice_keysplit_all voicegroup002 @ 8695588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86955A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86955AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86955B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86955C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86955D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86955DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86955E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86955F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869560C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695618 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8695624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869563C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869566C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695690 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 869569C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86956A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86956B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86956C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86956CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86956D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86956E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86956F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86956FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869572C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869575C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869578C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695798 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 86957A4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 @ 86957B0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86957BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86957C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86957D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86957E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86957EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86957F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695810 - voice_keysplit voicegroup007, KeySplitTable3 @ 869581C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695840 - voice_keysplit voicegroup009, KeySplitTable5 @ 869584C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869587C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86958A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86958AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86958B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86958C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86958D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86958DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86958E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86958F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869590C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695930 - voice_square_1_alt 60, 0, 0, 1, 1, 1, 6, 0 @ 869593C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695954 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 @ 8695960 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 1 @ 869596C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695984 - voice_square_2_alt 60, 0, 1, 0, 0, 10, 1 @ 8695990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869599C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86959A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86959B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86959C0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 86959CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86959D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86959E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86959F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86959FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B64 - voice_noise_alt 60, 0, 0, 0, 2, 6, 1 @ 8695B70 +voicegroup103:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 1, 1, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 0, 10, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 1 diff --git a/sound/voicegroups/voicegroup104.inc b/sound/voicegroups/voicegroup104.inc index b13ff65940..bd59914635 100644 --- a/sound/voicegroups/voicegroup104.inc +++ b/sound/voicegroups/voicegroup104.inc @@ -1,111 +1,111 @@ .align 2 -voicegroup104:: @ 8695B7C - voice_keysplit_all voicegroup003 @ 8695B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695B94 - voice_directsound 60, 0, DirectSoundWaveData_unknown_koto_high, 255, 0, 206, 242 @ 8695BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695D98 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8695DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695F0C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_shakuhachi, 255, 0, 255, 204 @ 8695F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695F30 - voice_square_1_alt 60, 0, 0, 1, 2, 0, 12, 5 @ 8695F3C - voice_square_2_alt 60, 0, 0, 0, 0, 10, 4 @ 8695F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695F54 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 0, 15, 0 @ 8695F60 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 8695F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695F84 - voice_square_2_alt 60, 0, 1, 2, 0, 12, 5 @ 8695F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695FC0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 15, 0 @ 8695FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8695FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869602C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869605C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696074 - voice_directsound 60, 0, DirectSoundWaveData_unknown_koto_low, 255, 0, 206, 242 @ 8696080 +voicegroup104:: + voice_keysplit_all voicegroup003 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_unknown_koto_high, 255, 0, 206, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_shakuhachi, 255, 0, 255, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 2, 0, 12, 5 + voice_square_2_alt 60, 0, 0, 0, 0, 10, 4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 2, 0, 12, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_unknown_koto_low, 255, 0, 206, 242 diff --git a/sound/voicegroups/voicegroup105.inc b/sound/voicegroups/voicegroup105.inc index 5acba78cc4..3355294178 100644 --- a/sound/voicegroups/voicegroup105.inc +++ b/sound/voicegroups/voicegroup105.inc @@ -1,86 +1,86 @@ .align 2 -voicegroup105:: @ 869608C - voice_keysplit_all voicegroup002 @ 869608C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86960A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86960B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86960BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86960C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86960D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86960E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86960EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86960F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869611C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 216 @ 8696128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869614C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869617C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86961A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86961AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86961B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86961C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86961D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86961DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86961E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86961F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869620C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869623C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869626C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869629C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86962A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86962B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86962C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86962CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86962D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86962E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86962F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86962FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869632C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869635C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869638C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86963A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86963B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86963BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86963C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86963D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86963E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86963EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86963F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869641C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696440 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 9, 4 @ 869644C - voice_square_2_alt 60, 0, 2, 0, 2, 9, 4 @ 8696458 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 8696464 +voicegroup105:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 9, 4 + voice_square_2_alt 60, 0, 2, 0, 2, 9, 4 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 diff --git a/sound/voicegroups/voicegroup106.inc b/sound/voicegroups/voicegroup106.inc index 267921b62e..b20862853f 100644 --- a/sound/voicegroups/voicegroup106.inc +++ b/sound/voicegroups/voicegroup106.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup106:: @ 8696470 - voice_keysplit_all voicegroup002 @ 8696470 - voice_keysplit voicegroup005, KeySplitTable1 @ 869647C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86964A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86964AC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 86964B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86964C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86964D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86964DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86964E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86964F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869650C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8696518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696530 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 64, 38, 128, 226 @ 869653C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869656C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696584 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 @ 8696590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869659C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86965A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86965B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86965C0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86965CC - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 @ 86965D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86965E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86965F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86965FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869662C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8696638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869665C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869668C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8696698 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 86966A4 - voice_keysplit voicegroup006, KeySplitTable2 @ 86966B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86966BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86966C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86966D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86966E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86966EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86966F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696704 - voice_keysplit voicegroup007, KeySplitTable3 @ 8696710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869671C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696734 - voice_keysplit voicegroup009, KeySplitTable5 @ 8696740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869674C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 @ 8696758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869677C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86967A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86967AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86967B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86967C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86967D0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86967DC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 86967E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86967F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869680C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696824 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8696830 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 869683C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8696848 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 8696854 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 0 @ 8696860 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 @ 869686C - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 8696878 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 8696884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869689C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86968A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86968B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86968C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86968CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86968D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86968E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86968F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86968FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869692C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869695C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869698C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86969A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86969B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86969BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86969C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86969D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86969E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86969EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86969F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A58 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8696A64 +voicegroup106:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 64, 38, 128, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup107.inc b/sound/voicegroups/voicegroup107.inc index 527e239710..45f1cfdc9f 100644 --- a/sound/voicegroups/voicegroup107.inc +++ b/sound/voicegroups/voicegroup107.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup107:: @ 8696A70 - voice_keysplit_all voicegroup002 @ 8696A70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696AAC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 8696AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8696B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B84 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 @ 8696B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696C8C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8696C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696CA4 - voice_keysplit voicegroup006, KeySplitTable2 @ 8696CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696CE0 - voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 255, 0, 255, 0 @ 8696CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D34 - voice_keysplit voicegroup009, KeySplitTable5 @ 8696D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696DDC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 8696DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696E24 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 8696E30 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 8696E3C - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 8696E48 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 8696E54 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 0 @ 8696E60 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 @ 8696E6C - voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 @ 8696E78 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 8696E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8696FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869701C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869704C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697058 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8697064 +voicegroup107:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 3, 0, 1, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup108.inc b/sound/voicegroups/voicegroup108.inc index d6bd6cf1f9..1821dd6a1e 100644 --- a/sound/voicegroups/voicegroup108.inc +++ b/sound/voicegroups/voicegroup108.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup108:: @ 8697070 - voice_keysplit_all voicegroup004 @ 8697070 - voice_keysplit voicegroup005, KeySplitTable1 @ 869707C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86970A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86970AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86970B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86970C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86970D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86970DC - voice_directsound 60, 0, DirectSoundWaveData_heart_of_asia_gamelan, 255, 188, 139, 239 @ 86970E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86970F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869710C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869713C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869716C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697184 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 @ 8697190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869719C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86971A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86971B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86971C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86971CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86971D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86971E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86971F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86971FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697208 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8697214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869722C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869725C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869728C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8697298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86972A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86972B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86972BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86972C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86972D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86972E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86972EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86972F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869731C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869734C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869737C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86973A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86973AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86973B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86973C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86973D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86973DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86973E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86973F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869740C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697424 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 13, 4 @ 8697430 - voice_square_2_alt 60, 0, 0, 0, 0, 9, 2 @ 869743C - voice_square_2_alt 60, 0, 1, 0, 0, 7, 1 @ 8697448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697454 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 0, 7, 15, 1 @ 8697460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869746C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697478 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 0, 15, 0 @ 8697484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869749C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86974A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86974B4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 86974C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86974CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86974D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86974E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86974F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86974FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869752C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869755C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869758C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86975A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86975B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86975BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86975C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86975D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86975E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86975EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86975F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869761C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869764C - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 8697658 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 8697664 +voicegroup108:: + voice_keysplit_all voicegroup004 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_heart_of_asia_gamelan, 255, 188, 139, 239 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 13, 4 + voice_square_2_alt 60, 0, 0, 0, 0, 9, 2 + voice_square_2_alt 60, 0, 1, 0, 0, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup109.inc b/sound/voicegroups/voicegroup109.inc index 8dd6142175..984367a4e9 100644 --- a/sound/voicegroups/voicegroup109.inc +++ b/sound/voicegroups/voicegroup109.inc @@ -1,86 +1,86 @@ .align 2 -voicegroup109:: @ 8697670 - voice_keysplit_all voicegroup004 @ 8697670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869767C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86976A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86976AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86976B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86976C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86976D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86976DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86976E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86976F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869770C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869773C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697748 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_church_organ3_low, 255, 76, 154, 188 @ 8697754 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_church_organ3_high, 255, 76, 154, 188 @ 8697760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869776C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869779C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86977A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86977B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86977C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86977CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86977D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86977E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86977F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86977FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697808 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8697814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869782C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869785C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869788C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86978A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86978B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86978BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86978C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86978D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86978E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86978EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86978F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869791C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869794C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869797C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86979A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86979AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86979B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86979C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86979D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86979DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86979E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86979F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A24 - voice_square_1_alt 60, 0, 0, 0, 0, 0, 13, 1 @ 8697A30 - voice_square_2_alt 60, 0, 0, 0, 0, 12, 1 @ 8697A3C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 @ 8697A48 +voicegroup109:: + voice_keysplit_all voicegroup004 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_church_organ3_low, 255, 76, 154, 188 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_church_organ3_high, 255, 76, 154, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 0, 13, 1 + voice_square_2_alt 60, 0, 0, 0, 0, 12, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup110.inc b/sound/voicegroups/voicegroup110.inc index f29928c5fc..dcd51d9eb1 100644 --- a/sound/voicegroups/voicegroup110.inc +++ b/sound/voicegroups/voicegroup110.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup110:: @ 8697A54 - voice_keysplit_all voicegroup002 @ 8697A54 - voice_keysplit voicegroup005, KeySplitTable1 @ 8697A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697AF0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8697AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697C70 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8697C7C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 @ 8697C88 - voice_keysplit voicegroup006, KeySplitTable2 @ 8697C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697CE8 - voice_keysplit voicegroup007, KeySplitTable3 @ 8697CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D18 - voice_keysplit voicegroup009, KeySplitTable5 @ 8697D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E08 - voice_square_1_alt 60, 0, 0, 1, 1, 1, 6, 0 @ 8697E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E2C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 @ 8697E38 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 1 @ 8697E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E5C - voice_square_2_alt 60, 0, 3, 0, 0, 10, 1 @ 8697E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697E98 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 8697EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8697FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869800C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869803C - voice_noise_alt 60, 0, 0, 0, 2, 6, 1 @ 8698048 +voicegroup110:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 239 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 1, 1, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 0, 10, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 1 diff --git a/sound/voicegroups/voicegroup111.inc b/sound/voicegroups/voicegroup111.inc index f4bf65fdca..f05cda8069 100644 --- a/sound/voicegroups/voicegroup111.inc +++ b/sound/voicegroups/voicegroup111.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup111:: @ 8698054 - voice_keysplit_all voicegroup002 @ 8698054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869806C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869809C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86980A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86980B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86980C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86980CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86980D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86980E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86980F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86980FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698114 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 8698120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869812C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869815C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869818C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86981A4 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 226 @ 86981B0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 195 @ 86981BC - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 195 @ 86981C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86981D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86981E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86981EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86981F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869821C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869824C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869827C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86982A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86982AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86982B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86982C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86982D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86982DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86982E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86982F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869830C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698330 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 195 @ 869833C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869836C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869839C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86983A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86983B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86983C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86983CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86983D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86983E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86983F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86983FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698408 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 @ 8698414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869842C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 @ 8698438 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 1 @ 8698444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869845C - voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 @ 8698468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869848C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698498 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 86984A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86984B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86984BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86984C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86984D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86984E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86984EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86984F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869851C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869854C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869857C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86985A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86985AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86985B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86985C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86985D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86985DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86985E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86985F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869860C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698630 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 869863C - voice_noise_alt 60, 0, 0, 0, 2, 6, 1 @ 8698648 +voicegroup111:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 226 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 195 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 195 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 195 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 2, 6, 1 diff --git a/sound/voicegroups/voicegroup112.inc b/sound/voicegroups/voicegroup112.inc index 1bafa809f6..bd58c332d7 100644 --- a/sound/voicegroups/voicegroup112.inc +++ b/sound/voicegroups/voicegroup112.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup112:: @ 8698654 - voice_keysplit_all voicegroup003 @ 8698654 - voice_keysplit voicegroup005, KeySplitTable1 @ 8698660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869866C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698678 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 7, 15, 1 @ 8698684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869869C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86986A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86986B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86986C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86986CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86986D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86986E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86986F0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86986FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698714 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 8698720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869872C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869875C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698768 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 @ 8698774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869878C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86987A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86987B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86987BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86987C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86987D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86987E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86987EC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86987F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698810 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 128, 252, 0, 115 @ 869881C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869884C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698870 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 869887C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698888 - voice_keysplit voicegroup006, KeySplitTable2 @ 8698894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86988A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86988AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86988B8 - voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 128, 165, 128, 188 @ 86988C4 - voice_directsound 60, 0, DirectSoundWaveData_unknown_female_voice, 128, 165, 128, 204 @ 86988D0 - voice_directsound 60, 0, DirectSoundWaveData_unused_unknown_male_voice, 128, 165, 128, 188 @ 86988DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86988E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86988F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869890C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698918 - voice_keysplit voicegroup009, KeySplitTable5 @ 8698924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869893C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869896C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869899C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86989A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86989B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86989C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86989CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86989D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86989E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86989F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86989FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A08 - voice_square_1_alt 60, 0, 0, 1, 0, 0, 7, 0 @ 8698A14 - voice_square_2_alt 60, 0, 1, 0, 0, 6, 0 @ 8698A20 - voice_square_2_alt 60, 0, 3, 0, 0, 6, 0 @ 8698A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698C30 - voice_noise_alt 60, 0, 0, 0, 7, 10, 1 @ 8698C3C - voice_noise_alt 60, 0, 0, 0, 2, 6, 1 @ 8698C48 +voicegroup112:: + voice_keysplit_all voicegroup003 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 76 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 128, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 128, 165, 128, 188 + voice_directsound 60, 0, DirectSoundWaveData_unknown_female_voice, 128, 165, 128, 204 + voice_directsound 60, 0, DirectSoundWaveData_unused_unknown_male_voice, 128, 165, 128, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 0, 7, 0 + voice_square_2_alt 60, 0, 1, 0, 0, 6, 0 + voice_square_2_alt 60, 0, 3, 0, 0, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 7, 10, 1 + voice_noise_alt 60, 0, 0, 0, 2, 6, 1 diff --git a/sound/voicegroups/voicegroup113.inc b/sound/voicegroups/voicegroup113.inc index d70870112b..309f1f39eb 100644 --- a/sound/voicegroups/voicegroup113.inc +++ b/sound/voicegroups/voicegroup113.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup113:: @ 8698C54 - voice_keysplit_all voicegroup002 @ 8698C54 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4990, 0, 7, 15, 1 @ 8698C60 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B49B0, 0, 7, 15, 1 @ 8698C6C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B49A0, 0, 7, 15, 1 @ 8698C78 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 7, 15, 1 @ 8698C84 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4980, 0, 7, 15, 1 @ 8698C90 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48B0, 0, 7, 15, 1 @ 8698C9C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48C0, 0, 7, 15, 1 @ 8698CA8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48D0, 0, 7, 15, 1 @ 8698CB4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48E0, 0, 7, 15, 1 @ 8698CC0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48F0, 0, 7, 15, 1 @ 8698CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698CD8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 8698CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698CF0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 8698CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698DA4 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 195 @ 8698DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698DEC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 8698DF8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 8698E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E10 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 8698E1C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 1 @ 8698E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E7C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 @ 8698E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698EE8 - voice_keysplit voicegroup007, KeySplitTable3 @ 8698EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F18 - voice_keysplit voicegroup009, KeySplitTable5 @ 8698F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698FB4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 @ 8698FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8698FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699008 - voice_square_1_alt 60, 0, 0, 2, 0, 7, 7, 0 @ 8699014 - voice_square_2_alt 60, 0, 2, 0, 7, 7, 0 @ 8699020 - voice_square_2_alt 60, 0, 1, 0, 7, 7, 0 @ 869902C - voice_square_2_alt 60, 0, 0, 0, 7, 7, 0 @ 8699038 - voice_square_2_alt 60, 0, 3, 0, 7, 7, 0 @ 8699044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869905C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 1 @ 8699068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869908C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699098 - voice_square_1_alt 60, 0, 0, 1, 0, 7, 7, 0 @ 86990A4 - voice_square_1_alt 60, 0, 0, 0, 0, 7, 7, 0 @ 86990B0 - voice_square_1_alt 60, 0, 0, 3, 0, 7, 7, 0 @ 86990BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86990C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86990D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86990E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86990EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86990F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869911C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869914C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869917C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86991A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86991AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86991B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86991C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86991D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86991DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86991E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86991F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869920C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699230 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 869923C - voice_noise_alt 60, 0, 0, 0, 2, 6, 1 @ 8699248 +voicegroup113:: + voice_keysplit_all voicegroup002 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4990, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B49B0, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B49A0, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4980, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48B0, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48C0, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48D0, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48E0, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48F0, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 195 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 180, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 7, 7, 0 + voice_square_2_alt 60, 0, 2, 0, 7, 7, 0 + voice_square_2_alt 60, 0, 1, 0, 7, 7, 0 + voice_square_2_alt 60, 0, 0, 0, 7, 7, 0 + voice_square_2_alt 60, 0, 3, 0, 7, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 7, 7, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 7, 7, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 7, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 + voice_noise_alt 60, 0, 0, 0, 2, 6, 1 diff --git a/sound/voicegroups/voicegroup114.inc b/sound/voicegroups/voicegroup114.inc index 1c2eaa98e2..03ac0cdcfe 100644 --- a/sound/voicegroups/voicegroup114.inc +++ b/sound/voicegroups/voicegroup114.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup114:: @ 8699254 - voice_keysplit_all voicegroup001 @ 8699254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869926C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869929C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86992A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86992B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86992C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86992CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86992D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86992E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86992F0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 @ 86992FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869932C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869935C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869938C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86993A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86993B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86993BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86993C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86993D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 86993E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86993EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86993F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869941C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869944C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869947C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 8699488 - voice_keysplit voicegroup006, KeySplitTable2 @ 8699494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86994A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86994AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86994B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86994C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86994D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86994DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86994E8 - voice_keysplit voicegroup007, KeySplitTable3 @ 86994F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869950C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699518 - voice_keysplit voicegroup009, KeySplitTable5 @ 8699524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869953C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869956C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869959C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86995A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86995B4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86995C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86995CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86995D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86995E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86995F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86995FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699608 - voice_square_2 60, 0, 3, 0, 1, 7, 1 @ 8699614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699620 - voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 @ 869962C - voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 @ 8699638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869965C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869968C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86996A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86996B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86996BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86996C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86996D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86996E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86996EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86996F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869971C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869974C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869977C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86997A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86997AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86997B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86997C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86997D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86997DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86997E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86997F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869980C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869983C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 @ 8699848 +voicegroup114:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 diff --git a/sound/voicegroups/voicegroup115.inc b/sound/voicegroups/voicegroup115.inc index caa3362379..bb9c4f4ba9 100644 --- a/sound/voicegroups/voicegroup115.inc +++ b/sound/voicegroups/voicegroup115.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup115:: @ 8699854 - voice_keysplit_all voicegroup002 @ 8699854 - voice_keysplit voicegroup005, KeySplitTable1 @ 8699860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869986C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699878 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 128, 249, 0, 188 @ 8699884 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 188, 103, 165 @ 8699890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869989C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86998A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86998B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86998C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86998CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86998D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86998E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86998F0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86998FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699914 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 8699920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869992C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869995C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699968 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 204 @ 8699974 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 @ 8699980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869998C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86999A4 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86999B0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 165, 154, 165 @ 86999BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86999C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86999D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 86999E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86999EC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 198 @ 86999F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699A10 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 146 @ 8699A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699A58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699A64 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 8699A70 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 8699A7C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 8699A88 - voice_keysplit voicegroup006, KeySplitTable2 @ 8699A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699AE8 - voice_keysplit voicegroup007, KeySplitTable3 @ 8699AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B18 - voice_keysplit voicegroup009, KeySplitTable5 @ 8699B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B30 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 165, 180, 165 @ 8699B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699C08 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 2 @ 8699C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699C20 - voice_square_2_alt 60, 0, 0, 0, 1, 6, 0 @ 8699C2C - voice_square_2_alt 60, 0, 3, 0, 3, 6, 2 @ 8699C38 - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 8699C44 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 6, 0 @ 8699C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699C5C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 7, 15, 1 @ 8699C68 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 8699C74 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 1, 9, 2 @ 8699C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699C98 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 @ 8699CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699DDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699DE8 - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 8699DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E30 - voice_noise_alt 60, 0, 0, 0, 2, 6, 2 @ 8699E3C - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 8699E48 +voicegroup115:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 128, 249, 0, 188 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 188, 103, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 165, 154, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 198 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 146 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 165, 180, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 6, 0 + voice_square_2_alt 60, 0, 3, 0, 3, 6, 2 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 1, 9, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 2 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup116.inc b/sound/voicegroups/voicegroup116.inc index b9cbd58334..028bbc32bd 100644 --- a/sound/voicegroups/voicegroup116.inc +++ b/sound/voicegroups/voicegroup116.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup116:: @ 8699E54 - voice_keysplit_all voicegroup002 @ 8699E54 - voice_keysplit voicegroup005, KeySplitTable1 @ 8699E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E78 - voice_square_2_alt 60, 0, 3, 0, 2, 6, 5 @ 8699E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F14 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 190, 115 @ 8699F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F44 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 8699F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F68 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 216 @ 8699F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699FA4 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 8699FB0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 @ 8699FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699FD4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 8699FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 8699FF8 - voice_directsound 60, 0, DirectSoundWaveData_unused_sc88pro_unison_slap, 255, 165, 180, 216 @ 869A004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A010 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 869A01C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A04C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A07C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A088 - voice_keysplit voicegroup006, KeySplitTable2 @ 869A094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A0A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A0AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A0B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A0C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A0D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A0DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A0E8 - voice_keysplit voicegroup007, KeySplitTable3 @ 869A0F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A10C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A118 - voice_keysplit voicegroup009, KeySplitTable5 @ 869A124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A130 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 @ 869A13C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A16C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A19C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A1A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A1B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A1C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A1CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A1D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A1E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A1F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A1FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A208 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 2 @ 869A214 - voice_square_2_alt 60, 0, 3, 0, 3, 3, 0 @ 869A220 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 3, 6, 5 @ 869A22C - voice_square_1_alt 60, 0, 0, 0, 0, 2, 7, 2 @ 869A238 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 7, 15, 0 @ 869A244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A25C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 869A268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A28C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A298 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 @ 869A2A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A2B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A2BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A2C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A2D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A2E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A2EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A2F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A31C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A34C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A37C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A3A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A3AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A3B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A3C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A3D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A3DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A3E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A3F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A40C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A430 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 869A43C - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 869A448 +voicegroup116:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 190, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_unused_sc88pro_unison_slap, 255, 165, 180, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 2 + voice_square_2_alt 60, 0, 3, 0, 3, 3, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 3, 6, 5 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 7, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4970, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup117.inc b/sound/voicegroups/voicegroup117.inc index 0141530210..a149f727fa 100644 --- a/sound/voicegroups/voicegroup117.inc +++ b/sound/voicegroups/voicegroup117.inc @@ -1,85 +1,85 @@ .align 2 -voicegroup117:: @ 869A454 - voice_keysplit_all voicegroup001 @ 869A454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A46C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A478 - voice_square_2 60, 0, 2, 0, 1, 1, 1 @ 869A484 - voice_square_1 60, 0, 0, 2, 0, 1, 1, 1 @ 869A490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A49C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A4A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A4B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A4C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A4CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A4D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A4E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A4F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A4FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A52C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A55C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A58C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A5A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A5B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A5BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A5C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A5D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 869A5E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A5EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A5F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A61C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A64C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A670 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 869A67C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869A688 - voice_keysplit voicegroup006, KeySplitTable2 @ 869A694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A6A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A6AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A6B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A6C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A6D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A6DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A6E8 - voice_keysplit voicegroup007, KeySplitTable3 @ 869A6F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A700 - voice_keysplit voicegroup008, KeySplitTable4 @ 869A70C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A718 - voice_keysplit voicegroup009, KeySplitTable5 @ 869A724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A73C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A76C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A79C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A7A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A7B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A7C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A7CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A7D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A7E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A7F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A7FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A808 - voice_square_2 60, 0, 3, 0, 1, 7, 1 @ 869A814 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 869A820 +voicegroup117:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 1, 1 + voice_square_1 60, 0, 0, 2, 0, 1, 1, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 diff --git a/sound/voicegroups/voicegroup118.inc b/sound/voicegroups/voicegroup118.inc index 1675cf1ee7..a4d6263309 100644 --- a/sound/voicegroups/voicegroup118.inc +++ b/sound/voicegroups/voicegroup118.inc @@ -1,94 +1,94 @@ .align 2 -voicegroup118:: @ 869A82C - voice_keysplit_all voicegroup001 @ 869A82C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A850 - voice_square_2 60, 0, 0, 0, 1, 7, 1 @ 869A85C - voice_square_1 60, 0, 0, 0, 0, 1, 7, 1 @ 869A868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A88C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A8A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A8B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A8BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A8C8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 250, 0, 242 @ 869A8D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A8E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A8EC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 869A8F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A91C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 869A928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A94C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A97C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A9A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A9AC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 869A9B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A9C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A9D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A9DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869A9E8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 869A9F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA48 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 869AA54 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869AA60 - voice_keysplit voicegroup006, KeySplitTable2 @ 869AA6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AA9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AAA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AAB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AAC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AAD8 - voice_keysplit voicegroup008, KeySplitTable4 @ 869AAE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AAF0 - voice_keysplit voicegroup009, KeySplitTable5 @ 869AAFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AB98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ABA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ABB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ABBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ABC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ABD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ABE0 - voice_square_2 60, 0, 2, 0, 1, 7, 1 @ 869ABEC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 869ABF8 - voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 @ 869AC04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AC10 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 @ 869AC1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AC28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AC34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AC40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AC4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AC58 - voice_directsound 60, 0, DirectSoundWaveData_trinity_big_boned, 255, 0, 255, 127 @ 869AC64 +voicegroup118:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 0, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 0, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 250, 0, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_trinity_big_boned, 255, 0, 255, 127 diff --git a/sound/voicegroups/voicegroup119.inc b/sound/voicegroups/voicegroup119.inc index 0bba5d48b3..91051a6729 100644 --- a/sound/voicegroups/voicegroup119.inc +++ b/sound/voicegroups/voicegroup119.inc @@ -1,94 +1,94 @@ .align 2 -voicegroup119:: @ 869AC70 - voice_keysplit_all voicegroup001 @ 869AC70 - voice_keysplit voicegroup005, KeySplitTable1 @ 869AC7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AC88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AC94 - voice_square_2 60, 0, 0, 0, 2, 4, 1 @ 869ACA0 - voice_square_1 60, 0, 0, 0, 0, 2, 4, 1 @ 869ACAC - voice_square_2 60, 0, 3, 0, 1, 7, 1 @ 869ACB8 - voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 @ 869ACC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ACD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ACDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ACE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ACF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD30 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 869AD3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AD9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ADA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ADB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ADC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ADCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ADD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ADE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869ADF0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 869ADFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AE8C - voice_directsound_no_resample 60, 0, DirectSoundWaveData_sc88pro_timpani_with_snare, 255, 246, 0, 226 @ 869AE98 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869AEA4 - voice_keysplit voicegroup006, KeySplitTable2 @ 869AEB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AEBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AEC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AEE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AEEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AEF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF04 - voice_keysplit voicegroup007, KeySplitTable3 @ 869AF10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF34 - voice_keysplit voicegroup009, KeySplitTable5 @ 869AF40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AF94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AFA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AFAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AFB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AFC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AFD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AFDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AFE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869AFF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B00C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B024 - voice_square_2 60, 0, 2, 0, 1, 7, 1 @ 869B030 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 2 @ 869B03C - voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 @ 869B048 - voice_square_2 60, 0, 1, 0, 1, 9, 1 @ 869B054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B06C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B09C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 @ 869B0A8 +voicegroup119:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 0, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 0, 0, 2, 4, 1 + voice_square_2 60, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 0, DirectSoundWaveData_sc88pro_timpani_with_snare, 255, 246, 0, 226 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_2 60, 0, 1, 0, 1, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 diff --git a/sound/voicegroups/voicegroup120.inc b/sound/voicegroups/voicegroup120.inc index eb1bb463ba..5c65be3382 100644 --- a/sound/voicegroups/voicegroup120.inc +++ b/sound/voicegroups/voicegroup120.inc @@ -1,94 +1,94 @@ .align 2 -voicegroup120:: @ 869B0B4 - voice_keysplit_all voicegroup001 @ 869B0B4 - voice_keysplit voicegroup005, KeySplitTable1 @ 869B0C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B0CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B0D8 - voice_square_2 60, 0, 2, 0, 2, 6, 1 @ 869B0E4 - voice_square_1 60, 0, 0, 2, 0, 2, 6, 1 @ 869B0F0 - voice_square_2 60, 0, 3, 0, 2, 4, 1 @ 869B0FC - voice_square_1 60, 0, 0, 3, 0, 2, 4, 1 @ 869B108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B12C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B15C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B18C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B1A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B1B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B1BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B1C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B1D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B1E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B1EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B1F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B21C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B234 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 869B240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B24C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B27C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B2A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B2AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B2B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B2C4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 869B2D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B2DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869B2E8 - voice_keysplit voicegroup006, KeySplitTable2 @ 869B2F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B30C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B33C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B348 - voice_keysplit voicegroup007, KeySplitTable3 @ 869B354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B36C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B378 - voice_keysplit voicegroup009, KeySplitTable5 @ 869B384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B39C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B3A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B3B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B3C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B3CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B3D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B3E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B3F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B3FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B42C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B45C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B468 - voice_square_2 60, 0, 2, 0, 1, 7, 1 @ 869B474 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 869B480 - voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 @ 869B48C - voice_square_1 60, 0, 0, 2, 0, 0, 7, 1 @ 869B498 - voice_square_2 60, 0, 3, 0, 1, 7, 1 @ 869B4A4 - voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 @ 869B4B0 - voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 @ 869B4BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B4C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B4D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B4E0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 @ 869B4EC +voicegroup120:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 2, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 2, 6, 1 + voice_square_2 60, 0, 3, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 3, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 7, 1 + voice_square_2 60, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 diff --git a/sound/voicegroups/voicegroup121.inc b/sound/voicegroups/voicegroup121.inc index eca6ff4b6c..d50d9eea3d 100644 --- a/sound/voicegroups/voicegroup121.inc +++ b/sound/voicegroups/voicegroup121.inc @@ -1,89 +1,89 @@ .align 2 -voicegroup121:: @ 869B4F8 - voice_keysplit_all voicegroup001 @ 869B4F8 - voice_keysplit voicegroup005, KeySplitTable1 @ 869B504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B51C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B54C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B57C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B5A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B5AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B5B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B5C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B5D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B5DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B5E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B5F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B60C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B63C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B66C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B678 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 869B684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B69C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B6A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B6B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B6C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B6CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B6D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B6E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B6F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B6FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B708 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 869B714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B720 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869B72C - voice_keysplit voicegroup006, KeySplitTable2 @ 869B738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B75C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B78C - voice_keysplit voicegroup007, KeySplitTable3 @ 869B798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B7A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B7B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B7BC - voice_keysplit voicegroup009, KeySplitTable5 @ 869B7C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B7D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B7E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B7EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B7F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B81C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B84C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B858 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 869B864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B87C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B8A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B8AC - voice_square_2 60, 0, 2, 0, 1, 7, 1 @ 869B8B8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 @ 869B8C4 - voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 @ 869B8D0 - voice_square_2 60, 0, 0, 0, 1, 7, 1 @ 869B8DC - voice_square_1 60, 0, 0, 0, 0, 1, 7, 1 @ 869B8E8 - voice_square_1 60, 0, 0, 0, 0, 0, 7, 1 @ 869B8F4 +voicegroup121:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_2 60, 0, 0, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 0, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 0, 0, 0, 7, 1 diff --git a/sound/voicegroups/voicegroup122.inc b/sound/voicegroups/voicegroup122.inc index 45c052cf18..a2241b6d21 100644 --- a/sound/voicegroups/voicegroup122.inc +++ b/sound/voicegroups/voicegroup122.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup122:: @ 869B900 - voice_keysplit_all voicegroup001 @ 869B900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B90C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B924 - voice_square_2 60, 0, 1, 0, 1, 6, 1 @ 869B930 - voice_square_1 60, 0, 0, 1, 0, 1, 6, 1 @ 869B93C - voice_square_2 60, 0, 2, 0, 1, 6, 1 @ 869B948 - voice_square_1 60, 0, 0, 2, 0, 1, 6, 1 @ 869B954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B96C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B99C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B9A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B9B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B9C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B9CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B9D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B9E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B9F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869B9FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BA98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BAA4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 869BAB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BAC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BAD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BAE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BAEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BAF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB10 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 869BB1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB28 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869BB34 - voice_keysplit voicegroup006, KeySplitTable2 @ 869BB40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BB94 - voice_directsound 60, 0, DirectSoundWaveData_trinity_big_boned, 255, 165, 154, 127 @ 869BBA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BBAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BBB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BBC4 - voice_keysplit voicegroup009, KeySplitTable5 @ 869BBD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BBDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BBE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BBF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BC9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BCA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BCB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BCC0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 869BCCC - voice_square_1 60, 0, 0, 3, 0, 1, 9, 1 @ 869BCD8 - voice_square_1 60, 0, 0, 3, 0, 0, 9, 1 @ 869BCE4 +voicegroup122:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 1, 0, 1, 6, 1 + voice_square_1 60, 0, 0, 1, 0, 1, 6, 1 + voice_square_2 60, 0, 2, 0, 1, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 1, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_trinity_big_boned, 255, 165, 154, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 3, 0, 1, 9, 1 + voice_square_1 60, 0, 0, 3, 0, 0, 9, 1 diff --git a/sound/voicegroups/voicegroup123.inc b/sound/voicegroups/voicegroup123.inc index ab048cac07..cb2e39045c 100644 --- a/sound/voicegroups/voicegroup123.inc +++ b/sound/voicegroups/voicegroup123.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup123:: @ 869BCF0 - voice_keysplit_all voicegroup001 @ 869BCF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BCFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BD8C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 @ 869BD98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BDA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BDB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BDBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BDC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BDD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BDE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BDEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BDF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE70 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 869BE7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BE94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BEA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BEAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BEB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BEC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BEDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BEE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BEF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF18 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869BF24 - voice_keysplit voicegroup006, KeySplitTable2 @ 869BF30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF84 - voice_keysplit voicegroup007, KeySplitTable3 @ 869BF90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BF9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BFA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BFB4 - voice_keysplit voicegroup009, KeySplitTable5 @ 869BFC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BFCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BFD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BFE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BFF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869BFFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C02C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C050 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 869C05C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C08C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C0A4 - voice_square_2 60, 0, 3, 0, 1, 7, 1 @ 869C0B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C0BC - voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 @ 869C0C8 - voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 @ 869C0D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C0E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C0EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C0F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C11C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C14C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C17C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C1A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C1AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C1B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C1C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C1D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C1DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C1E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C1F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C20C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C23C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C26C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C29C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C2A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C2B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C2C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C2CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C2D8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 @ 869C2E4 +voicegroup123:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 216, 90, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 diff --git a/sound/voicegroups/voicegroup124.inc b/sound/voicegroups/voicegroup124.inc index 630ab4a158..c7f9c475a3 100644 --- a/sound/voicegroups/voicegroup124.inc +++ b/sound/voicegroups/voicegroup124.inc @@ -1,90 +1,90 @@ .align 2 -voicegroup124:: @ 869C2F0 - voice_keysplit_all voicegroup001 @ 869C2F0 - voice_keysplit voicegroup005, KeySplitTable1 @ 869C2FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C314 - voice_square_2 60, 0, 2, 0, 2, 3, 1 @ 869C320 - voice_square_1 60, 0, 0, 2, 0, 2, 3, 1 @ 869C32C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C35C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C38C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C3A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C3B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C3BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C3C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C3D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C3E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C3EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C3F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C41C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C44C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C470 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 869C47C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C4A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C4AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C4B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C4C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C4D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C4DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C4E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C4F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C50C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 869C518 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869C524 - voice_keysplit voicegroup006, KeySplitTable2 @ 869C530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C53C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C56C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C584 - voice_keysplit voicegroup007, KeySplitTable3 @ 869C590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C59C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C5A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C5B4 - voice_keysplit voicegroup009, KeySplitTable5 @ 869C5C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C5CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C5D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C5E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C5F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C5FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C62C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C65C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C68C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C6A4 - voice_square_2 60, 0, 3, 0, 1, 7, 1 @ 869C6B0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 869C6BC - voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 @ 869C6C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C6D4 - voice_square_2 60, 0, 2, 0, 1, 7, 1 @ 869C6E0 - voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 @ 869C6EC - voice_square_2 60, 0, 3, 0, 2, 7, 1 @ 869C6F8 +voicegroup124:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_2 60, 0, 3, 0, 2, 7, 1 diff --git a/sound/voicegroups/voicegroup125.inc b/sound/voicegroups/voicegroup125.inc index 17a72153e6..e5f2ddf3eb 100644 --- a/sound/voicegroups/voicegroup125.inc +++ b/sound/voicegroups/voicegroup125.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup125:: @ 869C704 - voice_keysplit_all voicegroup001 @ 869C704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C71C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C728 - voice_square_2 60, 0, 2, 0, 2, 3, 1 @ 869C734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C74C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C77C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C7A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C7AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C7B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C7C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C7D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C7DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C7E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C7F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C80C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C83C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C86C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C89C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C8A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C8B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C8C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 869C8CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C8D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C8E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C8F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C8FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C92C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869C938 - voice_keysplit voicegroup006, KeySplitTable2 @ 869C944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C95C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C98C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C998 - voice_keysplit voicegroup007, KeySplitTable3 @ 869C9A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C9B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C9BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C9C8 - voice_keysplit voicegroup009, KeySplitTable5 @ 869C9D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C9E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C9EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869C9F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CA94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CAA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CAAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CAB8 - voice_square_2 60, 0, 3, 0, 1, 7, 1 @ 869CAC4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 869CAD0 - voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 @ 869CADC - voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 @ 869CAE8 +voicegroup125:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 2, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 3, 0, 0, 7, 1 diff --git a/sound/voicegroups/voicegroup126.inc b/sound/voicegroups/voicegroup126.inc index f169edb803..53ff6eb193 100644 --- a/sound/voicegroups/voicegroup126.inc +++ b/sound/voicegroups/voicegroup126.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup126:: @ 869CAF4 - voice_keysplit_all voicegroup001 @ 869CAF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB18 - voice_square_2 60, 0, 0, 1, 1, 7, 1 @ 869CB24 - voice_square_1 60, 0, 0, 0, 1, 1, 7, 1 @ 869CB30 - voice_square_1 60, 0, 0, 0, 0, 0, 7, 1 @ 869CB3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CB9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CBA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CBB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CBC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CBCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CBD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CBE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CBF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CBFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC74 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 @ 869CC80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CC98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CCA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CCB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CCBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CCC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CCD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CCE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CCEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CCF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD1C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869CD28 - voice_keysplit voicegroup006, KeySplitTable2 @ 869CD34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CD88 - voice_keysplit voicegroup007, KeySplitTable3 @ 869CD94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CDA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CDAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CDB8 - voice_keysplit voicegroup009, KeySplitTable5 @ 869CDC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CDD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CDDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CDE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CDF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CE9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CEA8 - voice_square_2 60, 0, 3, 1, 1, 6, 1 @ 869CEB4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 @ 869CEC0 - voice_square_1 60, 0, 0, 3, 1, 1, 6, 1 @ 869CECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CEE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CEF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CEFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CF98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CFA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CFB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CFBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CFC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CFD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CFE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CFEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869CFF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D01C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D04C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D07C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D0A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D0AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D0B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D0C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D0D0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 216 @ 869D0DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 @ 869D0E8 +voicegroup126:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 0, 1, 1, 7, 1 + voice_square_1 60, 0, 0, 0, 1, 1, 7, 1 + voice_square_1 60, 0, 0, 0, 0, 0, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 235, 128, 99 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2 60, 0, 3, 1, 1, 6, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 3, 1, 1, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 216 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 246, 0, 216 diff --git a/sound/voicegroups/voicegroup127.inc b/sound/voicegroups/voicegroup127.inc index ee83df6283..c812157da4 100644 --- a/sound/voicegroups/voicegroup127.inc +++ b/sound/voicegroups/voicegroup127.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup127:: @ 869D0F4 - voice_directsound 60, 0, DirectSoundWaveData_unknown_synth_snare, 255, 249, 103, 165 @ 869D0F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D10C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D118 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 0 @ 869D124 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 0, 1 @ 869D130 - voice_square_1_alt 60, 0, 0, 2, 0, 4, 0, 1 @ 869D13C - voice_square_1_alt 60, 0, 44, 2, 0, 4, 0, 0 @ 869D148 - voice_square_1_alt 60, 0, 38, 0, 0, 4, 0, 0 @ 869D154 - voice_square_1_alt 60, 0, 0, 0, 0, 7, 0, 0 @ 869D160 - voice_square_1_alt 60, 0, 0, 2, 2, 0, 15, 0 @ 869D16C - voice_square_1_alt 60, 0, 0, 1, 2, 0, 15, 0 @ 869D178 - voice_square_1_alt 60, 0, 23, 1, 0, 1, 9, 0 @ 869D184 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 165 @ 869D190 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 226, 0, 165 @ 869D19C - voice_square_1_alt 60, 0, 0, 2, 0, 6, 0, 1 @ 869D1A8 - voice_square_1_alt 60, 0, 36, 0, 0, 2, 0, 0 @ 869D1B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D1C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D1CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D1D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D1E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D1F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D1FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D22C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D25C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D28C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D2A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D2B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D2BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D2C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D2D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D2E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D2EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D2F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D31C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 869D328 - voice_keysplit voicegroup006, KeySplitTable2 @ 869D334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D34C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D37C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D3A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D3AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D3B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D3C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D3D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D3DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D3E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D3F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D40C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D43C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D46C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D49C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D4A8 - voice_square_2_alt 60, 0, 3, 0, 1, 0, 1 @ 869D4B4 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 0, 1 @ 869D4C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D4CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D4D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D4E4 - voice_square_1_alt 60, 0, 46, 2, 0, 4, 0, 0 @ 869D4F0 - voice_square_1_alt 60, 0, 38, 2, 0, 4, 0, 0 @ 869D4FC - voice_square_1_alt 60, 0, 119, 2, 0, 0, 15, 1 @ 869D508 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 1 @ 869D514 - voice_square_1_alt 60, 0, 106, 2, 0, 2, 0, 0 @ 869D520 - voice_square_1_alt 60, 0, 23, 2, 0, 1, 9, 0 @ 869D52C - voice_square_1_alt 60, 0, 21, 2, 0, 1, 9, 0 @ 869D538 - voice_square_1_alt 60, 0, 0, 0, 0, 0, 15, 1 @ 869D544 - voice_square_1_alt 60, 0, 47, 2, 0, 2, 6, 0 @ 869D550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D55C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D58C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D5A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D5B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D5BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D5C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D5D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D5E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D5EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D5F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D61C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D64C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D67C - voice_noise 60, 0, 0, 0, 7, 15, 0 @ 869D688 - voice_noise 60, 0, 0, 2, 7, 15, 0 @ 869D694 - voice_noise_alt 60, 0, 0, 2, 0, 15, 0 @ 869D6A0 - voice_noise_alt 60, 0, 1, 0, 0, 15, 0 @ 869D6AC - voice_noise_alt 60, 0, 0, 0, 0, 15, 0 @ 869D6B8 - voice_noise_alt 60, 0, 0, 0, 3, 0, 0 @ 869D6C4 - voice_noise_alt 60, 0, 0, 0, 2, 0, 0 @ 869D6D0 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 869D6DC - voice_noise_alt 60, 0, 0, 0, 1, 0, 1 @ 869D6E8 +voicegroup127:: + voice_directsound 60, 0, DirectSoundWaveData_unknown_synth_snare, 255, 249, 103, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 0, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 4, 0, 1 + voice_square_1_alt 60, 0, 44, 2, 0, 4, 0, 0 + voice_square_1_alt 60, 0, 38, 0, 0, 4, 0, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 7, 0, 0 + voice_square_1_alt 60, 0, 0, 2, 2, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 2, 0, 15, 0 + voice_square_1_alt 60, 0, 23, 1, 0, 1, 9, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 226, 0, 165 + voice_square_1_alt 60, 0, 0, 2, 0, 6, 0, 1 + voice_square_1_alt 60, 0, 36, 0, 0, 2, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 0, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 0, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 46, 2, 0, 4, 0, 0 + voice_square_1_alt 60, 0, 38, 2, 0, 4, 0, 0 + voice_square_1_alt 60, 0, 119, 2, 0, 0, 15, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 1 + voice_square_1_alt 60, 0, 106, 2, 0, 2, 0, 0 + voice_square_1_alt 60, 0, 23, 2, 0, 1, 9, 0 + voice_square_1_alt 60, 0, 21, 2, 0, 1, 9, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 0, 15, 1 + voice_square_1_alt 60, 0, 47, 2, 0, 2, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise 60, 0, 0, 0, 7, 15, 0 + voice_noise 60, 0, 0, 2, 7, 15, 0 + voice_noise_alt 60, 0, 0, 2, 0, 15, 0 + voice_noise_alt 60, 0, 1, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 3, 0, 0 + voice_noise_alt 60, 0, 0, 0, 2, 0, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 1 diff --git a/sound/voicegroups/voicegroup128.inc b/sound/voicegroups/voicegroup128.inc index ef4227e16c..78e0bf43af 100644 --- a/sound/voicegroups/voicegroup128.inc +++ b/sound/voicegroups/voicegroup128.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup128:: @ 869D6F4 - voice_directsound_no_resample 60, 0, DirectSoundWaveData_bicycle_bell, 255, 249, 0, 165 @ 869D6F4 - voice_directsound_alt 60, 0, DirectSoundWaveData_bicycle_bell, 255, 0, 255, 165 @ 869D700 - voice_directsound 60, 0, DirectSoundWaveData_unknown_synth_snare, 255, 0, 255, 165 @ 869D70C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 242, 0, 127 @ 869D718 - voice_noise_alt 60, 0, 0, 0, 1, 0, 1 @ 869D724 - voice_noise_alt 60, 0, 1, 0, 1, 0, 1 @ 869D730 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 255, 165 @ 869D73C - voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 1 @ 869D748 - voice_directsound 60, 0, DirectSoundWaveData_8725A2C, 255, 0, 255, 165 @ 869D754 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 0, 255, 127 @ 869D760 - voice_directsound 60, 0, DirectSoundWaveData_872762C, 255, 0, 255, 127 @ 869D76C - voice_noise_alt 60, 0, 1, 0, 2, 0, 0 @ 869D778 - voice_square_1 60, 0, 103, 3, 2, 7, 0, 0 @ 869D784 - voice_square_2 60, 0, 3, 2, 7, 0, 0 @ 869D790 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 226, 0, 127 @ 869D79C - voice_directsound 60, 0, DirectSoundWaveData_872921C, 255, 0, 255, 0 @ 869D7A8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 204, 0, 127 @ 869D7B4 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 1 @ 869D7C0 - voice_directsound 60, 0, DirectSoundWaveData_872A5D0, 255, 0, 255, 127 @ 869D7CC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 @ 869D7D8 - voice_square_1 60, 0, 103, 0, 0, 7, 0, 0 @ 869D7E4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 127 @ 869D7F0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_wind, 255, 0, 255, 127 @ 869D7FC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_bubbles, 255, 0, 255, 127 @ 869D808 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 127 @ 869D814 - voice_noise_alt 60, 0, 0, 0, 7, 15, 1 @ 869D820 - voice_directsound 60, 0, DirectSoundWaveData_872EEA8, 255, 0, 255, 127 @ 869D82C - voice_noise_alt 60, 0, 1, 0, 7, 15, 1 @ 869D838 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 246, 0, 127 @ 869D844 - voice_directsound 60, 0, DirectSoundWaveData_87301B0, 255, 0, 255, 127 @ 869D850 - voice_square_1_alt 60, 0, 19, 2, 0, 2, 0, 0 @ 869D85C - voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 255, 0, 255, 127 @ 869D868 - voice_square_1 60, 0, 103, 0, 0, 0, 15, 0 @ 869D874 - voice_directsound_alt 60, 0, DirectSoundWaveData_87301B0, 255, 0, 255, 127 @ 869D880 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 255, 255, 127 @ 869D88C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 0, 255, 127 @ 869D898 - voice_directsound 60, 0, DirectSoundWaveData_8734298, 255, 0, 255, 127 @ 869D8A4 - voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 255, 242, 0, 0 @ 869D8B0 - voice_directsound 60, 0, DirectSoundWaveData_87364A8, 255, 0, 255, 0 @ 869D8BC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 869D8C8 - voice_directsound 60, 0, DirectSoundWaveData_unknown_close_hihat, 255, 127, 0, 188 @ 869D8D4 - voice_directsound 60, 0, DirectSoundWaveData_87385E4, 255, 249, 0, 165 @ 869D8E0 - voice_square_1 60, 0, 0, 0, 4, 6, 0, 0 @ 869D8EC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 13, 0, 255, 127 @ 869D8F8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 13, 0, 255, 127 @ 869D904 - voice_directsound 60, 0, DirectSoundWaveData_trinity_big_boned, 255, 0, 255, 127 @ 869D910 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 252, 0, 204 @ 869D91C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869D928 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 869D934 - voice_square_1 60, 0, 0, 0, 4, 0, 15, 0 @ 869D940 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 188, 0, 0 @ 869D94C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 226, 0, 127 @ 869D958 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 26, 0, 255, 127 @ 869D964 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 0, 0 @ 869D970 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 252, 0, 127 @ 869D97C - voice_square_1_alt 60, 0, 0, 1, 0, 2, 0, 0 @ 869D988 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 127, 0, 127 @ 869D994 - voice_noise_alt 60, 0, 0, 1, 6, 0, 0 @ 869D9A0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 255, 255, 127 @ 869D9AC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 @ 869D9B8 - voice_directsound 60, 0, DirectSoundWaveData_873ECD8, 255, 255, 255, 127 @ 869D9C4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_french_horn_72, 11, 242, 0, 127 @ 869D9D0 - voice_square_1_alt 60, 0, 0, 2, 4, 6, 0, 0 @ 869D9DC - voice_directsound 60, 0, DirectSoundWaveData_8740818, 255, 255, 255, 127 @ 869D9E8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 869D9F4 - voice_directsound 60, 0, DirectSoundWaveData_unused_sc55_tom, 255, 0, 255, 165 @ 869DA00 - voice_noise_alt 60, 0, 0, 5, 7, 15, 1 @ 869DA0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 128, 242, 0, 165 @ 869DA18 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_string_ensemble_72, 255, 0, 255, 165 @ 869DA24 - voice_square_1 60, 0, 0, 0, 1, 5, 0, 0 @ 869DA30 - voice_noise_alt 60, 0, 0, 6, 6, 0, 1 @ 869DA3C - voice_noise_alt 60, 0, 0, 3, 6, 0, 1 @ 869DA48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DA54 - voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 15, 127, 231, 127 @ 869DA60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DA6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DA78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DA84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DA90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DA9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DAA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DAB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DAC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DAD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DAE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DAF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DAFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DB98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DBA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DBB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DBBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DBC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DBD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DBE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DBEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DBF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DC94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 869DCA0 - voice_directsound 60, 0, DirectSoundWaveData_87424B0, 255, 0, 255, 165 @ 869DCAC - voice_directsound 60, 0, DirectSoundWaveData_87430C0, 255, 0, 255, 165 @ 869DCB8 - voice_directsound 60, 0, DirectSoundWaveData_8743C50, 255, 0, 255, 165 @ 869DCC4 - voice_directsound 60, 0, DirectSoundWaveData_87446EC, 255, 0, 255, 165 @ 869DCD0 - voice_directsound 60, 0, DirectSoundWaveData_8745034, 255, 0, 255, 165 @ 869DCDC - voice_directsound 60, 0, DirectSoundWaveData_8745A7C, 255, 0, 255, 165 @ 869DCE8 +voicegroup128:: + voice_directsound_no_resample 60, 0, DirectSoundWaveData_bicycle_bell, 255, 249, 0, 165 + voice_directsound_alt 60, 0, DirectSoundWaveData_bicycle_bell, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_unknown_synth_snare, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 242, 0, 127 + voice_noise_alt 60, 0, 0, 0, 1, 0, 1 + voice_noise_alt 60, 0, 1, 0, 1, 0, 1 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 255, 165 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 1 + voice_directsound 60, 0, DirectSoundWaveData_8725A2C, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_872762C, 255, 0, 255, 127 + voice_noise_alt 60, 0, 1, 0, 2, 0, 0 + voice_square_1 60, 0, 103, 3, 2, 7, 0, 0 + voice_square_2 60, 0, 3, 2, 7, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 226, 0, 127 + voice_directsound 60, 0, DirectSoundWaveData_872921C, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 204, 0, 127 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 1 + voice_directsound 60, 0, DirectSoundWaveData_872A5D0, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 + voice_square_1 60, 0, 103, 0, 0, 7, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_wind, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_bubbles, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 127 + voice_noise_alt 60, 0, 0, 0, 7, 15, 1 + voice_directsound 60, 0, DirectSoundWaveData_872EEA8, 255, 0, 255, 127 + voice_noise_alt 60, 0, 1, 0, 7, 15, 1 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 246, 0, 127 + voice_directsound 60, 0, DirectSoundWaveData_87301B0, 255, 0, 255, 127 + voice_square_1_alt 60, 0, 19, 2, 0, 2, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 255, 0, 255, 127 + voice_square_1 60, 0, 103, 0, 0, 0, 15, 0 + voice_directsound_alt 60, 0, DirectSoundWaveData_87301B0, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 255, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_8734298, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 255, 242, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_87364A8, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_directsound 60, 0, DirectSoundWaveData_unknown_close_hihat, 255, 127, 0, 188 + voice_directsound 60, 0, DirectSoundWaveData_87385E4, 255, 249, 0, 165 + voice_square_1 60, 0, 0, 0, 4, 6, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 13, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 13, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_trinity_big_boned, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 252, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 0, 4, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 188, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 226, 0, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 26, 0, 255, 127 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 252, 0, 127 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 127, 0, 127 + voice_noise_alt 60, 0, 0, 1, 6, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_slap_bass, 255, 255, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_873ECD8, 255, 255, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_french_horn_72, 11, 242, 0, 127 + voice_square_1_alt 60, 0, 0, 2, 4, 6, 0, 0 + voice_directsound 60, 0, DirectSoundWaveData_8740818, 255, 255, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_unused_sc55_tom, 255, 0, 255, 165 + voice_noise_alt 60, 0, 0, 5, 7, 15, 1 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 128, 242, 0, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_string_ensemble_72, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 0, 1, 5, 0, 0 + voice_noise_alt 60, 0, 0, 6, 6, 0, 1 + voice_noise_alt 60, 0, 0, 3, 6, 0, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 15, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_87424B0, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_87430C0, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_8743C50, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_87446EC, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_8745034, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_8745A7C, 255, 0, 255, 165 diff --git a/sound/voicegroups/voicegroup129.inc b/sound/voicegroups/voicegroup129.inc index 3c3ce90c67..89ba4a59b7 100644 --- a/sound/voicegroups/voicegroup129.inc +++ b/sound/voicegroups/voicegroup129.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup129:: @ 86A0154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0154 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 86A0160 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 86A016C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 226, 25, 0 @ 86A0178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0184 - voice_directsound 60, 0, DirectSoundWaveData_8725A2C, 255, 0, 255, 165 @ 86A0190 - voice_directsound 60, 0, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 @ 86A019C - voice_directsound 60, 0, DirectSoundWaveData_sd90_open_triangle, 255, 204, 128, 249 @ 86A01A8 - voice_directsound 60, 0, DirectSoundWaveData_register_noise, 255, 0, 255, 76 @ 86A01B4 - voice_directsound 60, 0, DirectSoundWaveData_88D6978, 255, 0, 206, 204 @ 86A01C0 - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_ohtsuzumi, 255, 0, 206, 38 @ 86A01CC - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_hyoushigi, 255, 0, 206, 0 @ 86A01D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A01E4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 216 @ 86A01F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A01FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A022C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A025C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0268 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 @ 86A0274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A028C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A02A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A02B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A02BC - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86A02C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A02D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A02E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A02EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A02F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0310 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86A031C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A034C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0370 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 252, 0, 204 @ 86A037C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 86A0388 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 204, 0, 127 @ 86A0394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A03A0 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 0 @ 86A03AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A03B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A03C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A03D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A03DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A03E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A03F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0400 - voice_keysplit voicegroup008, KeySplitTable4 @ 86A040C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A043C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A046C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A049C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A04A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A04B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A04C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A04CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A04D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A04E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A04F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A04FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0508 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 10, 4 @ 86A0514 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 10, 3 @ 86A0520 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 10, 1 @ 86A052C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A055C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A058C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0598 - voice_square_1_alt 60, 0, 0, 0, 0, 0, 15, 1 @ 86A05A4 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 6 @ 86A05B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A05BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A05C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A05D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A05E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A05EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A05F8 - voice_square_1_alt 60, 0, 29, 2, 0, 2, 0, 0 @ 86A0604 - voice_square_1_alt 60, 0, 22, 2, 0, 2, 0, 0 @ 86A0610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A061C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A064C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A067C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A06A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A06AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A06B8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 @ 86A06C4 - voice_directsound 60, 0, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86A06D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A06DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A06E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A06F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A070C - voice_noise_alt 60, 0, 0, 0, 1, 9, 2 @ 86A0718 - voice_noise_alt 60, 0, 0, 0, 4, 3, 1 @ 86A0724 - voice_noise_alt 60, 0, 0, 0, 1, 12, 0 @ 86A0730 - voice_noise_alt 60, 0, 1, 0, 1, 9, 0 @ 86A073C - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A0748 +voicegroup129:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 226, 25, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_8725A2C, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 + voice_directsound 60, 0, DirectSoundWaveData_sd90_open_triangle, 255, 204, 128, 249 + voice_directsound 60, 0, DirectSoundWaveData_register_noise, 255, 0, 255, 76 + voice_directsound 60, 0, DirectSoundWaveData_88D6978, 255, 0, 206, 204 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_ohtsuzumi, 255, 0, 206, 38 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_hyoushigi, 255, 0, 206, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 252, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 204, 0, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 10, 4 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 10, 3 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 10, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 0, 15, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 6 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 29, 2, 0, 2, 0, 0 + voice_square_1_alt 60, 0, 22, 2, 0, 2, 0, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 9, 2 + voice_noise_alt 60, 0, 0, 0, 4, 3, 1 + voice_noise_alt 60, 0, 0, 0, 1, 12, 0 + voice_noise_alt 60, 0, 1, 0, 1, 9, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 diff --git a/sound/voicegroups/voicegroup130.inc b/sound/voicegroups/voicegroup130.inc index d322326e9f..63e42a489f 100644 --- a/sound/voicegroups/voicegroup130.inc +++ b/sound/voicegroups/voicegroup130.inc @@ -1,182 +1,182 @@ .align 2 -voicegroup130:: @ 86A0754 - voice_directsound 60, 0, DirectSoundWaveData_88DBBC0, 255, 0, 255, 0 @ 86A0754 - voice_directsound 60, 0, DirectSoundWaveData_88DC220, 255, 0, 255, 0 @ 86A0760 - voice_directsound 60, 0, DirectSoundWaveData_88DC704, 255, 0, 255, 0 @ 86A076C - voice_directsound 60, 0, DirectSoundWaveData_88DD054, 255, 0, 255, 0 @ 86A0778 - voice_directsound 60, 0, DirectSoundWaveData_88DDAC4, 255, 0, 255, 0 @ 86A0784 - voice_directsound 60, 0, DirectSoundWaveData_88DDDE4, 255, 0, 255, 0 @ 86A0790 - voice_directsound 60, 0, DirectSoundWaveData_88DEA6C, 255, 0, 255, 0 @ 86A079C - voice_directsound 60, 0, DirectSoundWaveData_88DF08C, 255, 0, 255, 0 @ 86A07A8 - voice_directsound 60, 0, DirectSoundWaveData_88DF414, 255, 0, 255, 0 @ 86A07B4 - voice_directsound 60, 0, DirectSoundWaveData_88E01F8, 255, 0, 255, 0 @ 86A07C0 - voice_directsound 60, 0, DirectSoundWaveData_88E0B68, 255, 0, 255, 0 @ 86A07CC - voice_directsound 60, 0, DirectSoundWaveData_88E0F04, 255, 0, 255, 0 @ 86A07D8 - voice_directsound 60, 0, DirectSoundWaveData_88E16B8, 255, 0, 255, 0 @ 86A07E4 - voice_directsound 60, 0, DirectSoundWaveData_88E2414, 255, 0, 255, 0 @ 86A07F0 - voice_directsound 60, 0, DirectSoundWaveData_88E2658, 255, 0, 255, 0 @ 86A07FC - voice_directsound 60, 0, DirectSoundWaveData_88E3498, 255, 0, 255, 0 @ 86A0808 - voice_directsound 60, 0, DirectSoundWaveData_88E3DEC, 255, 0, 255, 0 @ 86A0814 - voice_directsound 60, 0, DirectSoundWaveData_88E4140, 255, 0, 255, 0 @ 86A0820 - voice_directsound 60, 0, DirectSoundWaveData_88E4774, 255, 0, 255, 0 @ 86A082C - voice_directsound 60, 0, DirectSoundWaveData_88E53E0, 255, 0, 255, 0 @ 86A0838 - voice_directsound 60, 0, DirectSoundWaveData_88E5978, 255, 0, 255, 0 @ 86A0844 - voice_directsound 60, 0, DirectSoundWaveData_88E647C, 255, 0, 255, 0 @ 86A0850 - voice_directsound 60, 0, DirectSoundWaveData_88E6A80, 255, 0, 255, 0 @ 86A085C - voice_directsound 60, 0, DirectSoundWaveData_88E6C78, 255, 0, 255, 0 @ 86A0868 - voice_directsound 60, 0, DirectSoundWaveData_88E75DC, 255, 0, 255, 0 @ 86A0874 - voice_directsound 60, 0, DirectSoundWaveData_88E8568, 255, 0, 255, 0 @ 86A0880 - voice_directsound 60, 0, DirectSoundWaveData_88E8BA0, 255, 0, 255, 0 @ 86A088C - voice_directsound 60, 0, DirectSoundWaveData_88E9674, 255, 0, 255, 0 @ 86A0898 - voice_directsound 60, 0, DirectSoundWaveData_88EA5B8, 255, 0, 255, 0 @ 86A08A4 - voice_directsound 60, 0, DirectSoundWaveData_88EAB30, 255, 0, 255, 0 @ 86A08B0 - voice_directsound 60, 0, DirectSoundWaveData_88EB97C, 255, 0, 255, 0 @ 86A08BC - voice_directsound 60, 0, DirectSoundWaveData_88EC884, 255, 0, 255, 0 @ 86A08C8 - voice_directsound 60, 0, DirectSoundWaveData_88ED358, 255, 0, 255, 0 @ 86A08D4 - voice_directsound 60, 0, DirectSoundWaveData_88EDEEC, 255, 0, 255, 0 @ 86A08E0 - voice_directsound 60, 0, DirectSoundWaveData_88EE8C4, 255, 0, 255, 0 @ 86A08EC - voice_directsound 60, 0, DirectSoundWaveData_88EEF04, 255, 0, 255, 0 @ 86A08F8 - voice_directsound 60, 0, DirectSoundWaveData_88EF9E4, 255, 0, 255, 0 @ 86A0904 - voice_directsound 60, 0, DirectSoundWaveData_88F0020, 255, 0, 255, 0 @ 86A0910 - voice_directsound 60, 0, DirectSoundWaveData_88F0738, 255, 0, 255, 0 @ 86A091C - voice_directsound 60, 0, DirectSoundWaveData_88F1074, 255, 0, 255, 0 @ 86A0928 - voice_directsound 60, 0, DirectSoundWaveData_88F1830, 255, 0, 255, 0 @ 86A0934 - voice_directsound 60, 0, DirectSoundWaveData_88F1D94, 255, 0, 255, 0 @ 86A0940 - voice_directsound 60, 0, DirectSoundWaveData_88F2B08, 255, 0, 255, 0 @ 86A094C - voice_directsound 60, 0, DirectSoundWaveData_88F2F84, 255, 0, 255, 0 @ 86A0958 - voice_directsound 60, 0, DirectSoundWaveData_88F3470, 255, 0, 255, 0 @ 86A0964 - voice_directsound 60, 0, DirectSoundWaveData_88F3C38, 255, 0, 255, 0 @ 86A0970 - voice_directsound 60, 0, DirectSoundWaveData_88F4834, 255, 0, 255, 0 @ 86A097C - voice_directsound 60, 0, DirectSoundWaveData_88F4BAC, 255, 0, 255, 0 @ 86A0988 - voice_directsound 60, 0, DirectSoundWaveData_88F5368, 255, 0, 255, 0 @ 86A0994 - voice_directsound 60, 0, DirectSoundWaveData_88F5FCC, 255, 0, 255, 0 @ 86A09A0 - voice_directsound 60, 0, DirectSoundWaveData_88F6498, 255, 0, 255, 0 @ 86A09AC - voice_keysplit_all voicegroup001 @ 86A09B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A09C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A09D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A09DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A09E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A09F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0AA8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion_duplicate, 255, 249, 25, 248 @ 86A0AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0E98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0FA0 - voice_noise_alt 60, 0, 0, 0, 1, 7, 1 @ 86A0FAC +voicegroup130:: + voice_directsound 60, 0, DirectSoundWaveData_88DBBC0, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88DC220, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88DC704, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88DD054, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88DDAC4, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88DDDE4, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88DEA6C, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88DF08C, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88DF414, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E01F8, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E0B68, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E0F04, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E16B8, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E2414, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E2658, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E3498, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E3DEC, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E4140, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E4774, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E53E0, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E5978, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E647C, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E6A80, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E6C78, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E75DC, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E8568, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E8BA0, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88E9674, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88EA5B8, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88EAB30, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88EB97C, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88EC884, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88ED358, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88EDEEC, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88EE8C4, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88EEF04, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88EF9E4, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F0020, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F0738, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F1074, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F1830, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F1D94, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F2B08, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F2F84, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F3470, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F3C38, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F4834, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F4BAC, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F5368, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F5FCC, 255, 0, 255, 0 + voice_directsound 60, 0, DirectSoundWaveData_88F6498, 255, 0, 255, 0 + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion_duplicate, 255, 249, 25, 248 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 7, 1 diff --git a/sound/voicegroups/voicegroup131.inc b/sound/voicegroups/voicegroup131.inc index ff98f6f824..3b0377b5e7 100644 --- a/sound/voicegroups/voicegroup131.inc +++ b/sound/voicegroups/voicegroup131.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup131:: @ 86A0FB8 - voice_keysplit_all voicegroup002 @ 86A0FB8 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A0FC4 - voice_directsound 60, 0, DirectSoundWaveData_steinway_b_piano, 128, 204, 51, 242 @ 86A0FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A0FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A100C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A103C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A106C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A109C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A10A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A10B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A10C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A10CC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 204, 103, 226 @ 86A10D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A10E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A10F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A10FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A112C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A115C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A118C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A11A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A11B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A11BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A11C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A11D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A11E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A11EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A11F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A121C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A124C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A127C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A12A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A12AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A12B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A12C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A12D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A12DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A12E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A12F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A130C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A133C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A136C - voice_square_1_alt 60, 0, 0, 1, 0, 2, 3, 5 @ 86A1378 - voice_square_2_alt 60, 0, 3, 0, 2, 6, 5 @ 86A1384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A139C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A13A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A13B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A13C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A13CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A13D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A13E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A13F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A13FC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 9, 1 @ 86A1408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A142C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A145C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A148C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A14A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A14B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A14BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A14C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A14D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A14E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A14EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A14F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A151C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A154C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A157C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A15A0 - voice_noise_alt 60, 0, 0, 0, 1, 0, 1 @ 86A15AC +voicegroup131:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_directsound 60, 0, DirectSoundWaveData_steinway_b_piano, 128, 204, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 204, 103, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 3, 5 + voice_square_2_alt 60, 0, 3, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 1 diff --git a/sound/voicegroups/voicegroup132.inc b/sound/voicegroups/voicegroup132.inc index 48247b4570..92e565468e 100644 --- a/sound/voicegroups/voicegroup132.inc +++ b/sound/voicegroups/voicegroup132.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup132:: @ 86A15B8 - voice_keysplit_all voicegroup002 @ 86A15B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A15C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A15D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A15DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A15E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A15F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A160C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A163C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1654 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 97, 236 @ 86A1660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A166C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1678 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 118, 137 @ 86A1684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A169C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A16A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A16B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A16C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A16CC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 51, 204, 92, 226 @ 86A16D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A16E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A16F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A16FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A172C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A175C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A178C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A17A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A17B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A17BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A17C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A17D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A17E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 165, 154, 235 @ 86A17EC - voice_keysplit voicegroup006, KeySplitTable2 @ 86A17F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A181C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A184C - voice_keysplit voicegroup007, KeySplitTable3 @ 86A1858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1864 - voice_keysplit voicegroup008, KeySplitTable4 @ 86A1870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A187C - voice_keysplit voicegroup009, KeySplitTable5 @ 86A1888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A18A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A18AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A18B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A18C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A18D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A18DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A18E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A18F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A190C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1918 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86A1924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A193C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A196C - voice_square_1_alt 60, 0, 0, 2, 0, 4, 2, 2 @ 86A1978 - voice_square_2_alt 60, 0, 3, 0, 1, 7, 5 @ 86A1984 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 4, 6, 0 @ 86A1990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A199C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 4, 6, 0 @ 86A19A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A19B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A19C0 - voice_square_1_alt 60, 0, 0, 0, 0, 4, 2, 2 @ 86A19CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A19D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A19E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A19F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A19FC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 2, 9, 1 @ 86A1A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1B94 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A1BA0 - voice_noise_alt 60, 0, 0, 0, 1, 8, 1 @ 86A1BAC +voicegroup132:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 97, 236 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 118, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 51, 204, 92, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 165, 154, 235 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 4, 2, 2 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 5 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 4, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 4, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 4, 2, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 2, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 8, 1 diff --git a/sound/voicegroups/voicegroup133.inc b/sound/voicegroups/voicegroup133.inc index 766d7ef8f6..ff98e8ff2c 100644 --- a/sound/voicegroups/voicegroup133.inc +++ b/sound/voicegroups/voicegroup133.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup133:: @ 86A1BB8 - voice_keysplit_all voicegroup002 @ 86A1BB8 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A1BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C24 - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 86A1C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C54 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86A1C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C78 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 108, 137 @ 86A1C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1CCC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 204, 103, 226 @ 86A1CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D08 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86A1D14 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 @ 86A1D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D74 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86A1D80 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 @ 86A1D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1DE0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 153 @ 86A1DEC - voice_keysplit voicegroup006, KeySplitTable2 @ 86A1DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E4C - voice_keysplit voicegroup007, KeySplitTable3 @ 86A1E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E7C - voice_keysplit voicegroup009, KeySplitTable5 @ 86A1E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1E94 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 @ 86A1EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F54 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 @ 86A1F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F6C - voice_square_1_alt 60, 0, 0, 1, 0, 1, 9, 0 @ 86A1F78 - voice_square_2_alt 60, 0, 3, 0, 2, 9, 1 @ 86A1F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1F90 - voice_square_2_alt 60, 0, 2, 1, 0, 9, 1 @ 86A1F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1FC0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A1FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A1FFC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 15, 0 @ 86A2008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A202C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A205C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A208C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A20A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A20B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A20BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A20C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A20D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A20E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A20EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A20F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A211C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A214C - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86A2158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A217C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2194 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A21A0 - voice_noise_alt 60, 0, 0, 0, 1, 8, 1 @ 86A21AC +voicegroup133:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 108, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 204, 103, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 153 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 9, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 1, 0, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 8, 1 diff --git a/sound/voicegroups/voicegroup134.inc b/sound/voicegroups/voicegroup134.inc index e689983d76..470a6613a3 100644 --- a/sound/voicegroups/voicegroup134.inc +++ b/sound/voicegroups/voicegroup134.inc @@ -1,93 +1,93 @@ .align 2 -voicegroup134:: @ 86A21B8 - voice_keysplit_all voicegroup001 @ 86A21B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A21C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A21D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A21DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A21E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A21F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A220C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A223C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A226C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A229C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A22A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A22B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A22C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A22CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A22D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A22E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A22F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A22FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A232C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A235C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A238C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A23A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A23B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A23BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A23C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A23D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A23E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 86A23EC - voice_keysplit voicegroup006, KeySplitTable2 @ 86A23F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A241C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A244C - voice_keysplit voicegroup007, KeySplitTable3 @ 86A2458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A247C - voice_keysplit voicegroup009, KeySplitTable5 @ 86A2488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A24A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A24AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A24B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A24C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A24D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A24DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A24E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A24F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A250C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A253C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A256C - voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 @ 86A2578 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 @ 86A2584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A259C - voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 @ 86A25A8 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 1 @ 86A25B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A25C0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 86A25CC - voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 1 @ 86A25D8 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 1 @ 86A25E4 +voicegroup134:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 7, 1 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 1 diff --git a/sound/voicegroups/voicegroup135.inc b/sound/voicegroups/voicegroup135.inc index 09b7843c93..48ed76c036 100644 --- a/sound/voicegroups/voicegroup135.inc +++ b/sound/voicegroups/voicegroup135.inc @@ -1,86 +1,86 @@ .align 2 -voicegroup135:: @ 86A25F0 - voice_keysplit_all voicegroup002 @ 86A25F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A25FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A262C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A265C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A268C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A26A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A26B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A26BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A26C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A26D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A26E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 85, 137, 180, 204 @ 86A26EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A26F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A271C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A274C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A277C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A27A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A27AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A27B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A27C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A27D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A27DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A27E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A27F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A280C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A283C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A286C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A289C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A28A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A28B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A28C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A28CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A28D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A28E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A28F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A28FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A292C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A295C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A298C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A29A4 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 9, 0 @ 86A29B0 - voice_square_2_alt 60, 0, 2, 0, 0, 9, 0 @ 86A29BC - voice_square_1_alt 60, 0, 0, 0, 1, 2, 6, 0 @ 86A29C8 +voicegroup135:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 85, 137, 180, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 9, 0 + voice_square_2_alt 60, 0, 2, 0, 0, 9, 0 + voice_square_1_alt 60, 0, 0, 0, 1, 2, 6, 0 diff --git a/sound/voicegroups/voicegroup136.inc b/sound/voicegroups/voicegroup136.inc index 086956a96b..3b053ce2d9 100644 --- a/sound/voicegroups/voicegroup136.inc +++ b/sound/voicegroups/voicegroup136.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup136:: @ 86A29D4 - voice_keysplit_all voicegroup002 @ 86A29D4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A29E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A29EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A29F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B24 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86A2B30 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 @ 86A2B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2B90 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86A2B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C08 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A2C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2CB0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 @ 86A2CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2D88 - voice_square_2_alt 60, 0, 0, 0, 5, 0, 0 @ 86A2D94 - voice_square_1_alt 60, 0, 0, 0, 0, 5, 0, 0 @ 86A2DA0 - voice_square_1_alt 60, 0, 0, 2, 2, 4, 10, 0 @ 86A2DAC - voice_square_2_alt 60, 0, 0, 0, 5, 0, 0 @ 86A2DB8 - voice_square_1_alt 60, 0, 0, 1, 0, 5, 0, 0 @ 86A2DC4 - voice_square_2_alt 60, 0, 3, 2, 4, 10, 0 @ 86A2DD0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 1, 5, 0, 3 @ 86A2DDC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 1, 5, 0, 3 @ 86A2DE8 - voice_square_2_alt 60, 0, 1, 0, 1, 10, 2 @ 86A2DF4 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 10, 0 @ 86A2E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2FA4 - voice_noise_alt 60, 0, 0, 0, 0, 15, 0 @ 86A2FB0 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 86A2FBC - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86A2FC8 +voicegroup136:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 0, 0, 5, 0, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 5, 0, 0 + voice_square_1_alt 60, 0, 0, 2, 2, 4, 10, 0 + voice_square_2_alt 60, 0, 0, 0, 5, 0, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 5, 0, 0 + voice_square_2_alt 60, 0, 3, 2, 4, 10, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 1, 5, 0, 3 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 1, 5, 0, 3 + voice_square_2_alt 60, 0, 1, 0, 1, 10, 2 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 10, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup137.inc b/sound/voicegroups/voicegroup137.inc index 17c92d591b..8eb7910397 100644 --- a/sound/voicegroups/voicegroup137.inc +++ b/sound/voicegroups/voicegroup137.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup137:: @ 86A2FD4 - voice_keysplit_all voicegroup002 @ 86A2FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A2FF8 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 165, 180, 165 @ 86A3004 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 137, 154, 165 @ 86A3010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A301C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3034 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 204, 51, 242 @ 86A3040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A304C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3070 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86A307C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A30A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A30AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A30B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A30C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A30D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A30DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A30E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A30F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A310C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A313C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A316C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A319C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A31A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A31B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A31C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A31CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A31D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A31E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A31F0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 @ 86A31FC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 153 @ 86A3208 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A3214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A322C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A325C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3268 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A3274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3280 - voice_keysplit voicegroup008, KeySplitTable4 @ 86A328C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3298 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A32A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A32B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A32BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A32C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A32D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A32E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A32EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A32F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A331C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A334C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A337C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3388 - voice_square_1_alt 60, 0, 0, 1, 1, 2, 3, 1 @ 86A3394 - voice_square_2_alt 60, 0, 1, 1, 2, 3, 1 @ 86A33A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A33AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A33B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A33C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A33D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A33DC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 2, 4, 1 @ 86A33E8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 2, 4, 1 @ 86A33F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A340C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A343C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A346C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A349C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A34A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A34B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A34C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A34CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A34D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A34E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A34F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A34FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A352C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A355C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A358C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A35A4 - voice_noise_alt 60, 0, 0, 0, 0, 15, 0 @ 86A35B0 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 86A35BC - voice_noise_alt 60, 0, 0, 0, 1, 0, 1 @ 86A35C8 +voicegroup137:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 165, 180, 165 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 137, 154, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 204, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 0, 242 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 153 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 1, 2, 3, 1 + voice_square_2_alt 60, 0, 1, 1, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 2, 4, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 1 diff --git a/sound/voicegroups/voicegroup138.inc b/sound/voicegroups/voicegroup138.inc index 21e8499790..0439e92f5f 100644 --- a/sound/voicegroups/voicegroup138.inc +++ b/sound/voicegroups/voicegroup138.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup138:: @ 86A35D4 - voice_keysplit_all voicegroup002 @ 86A35D4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A35E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A35EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A35F8 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 @ 86A3604 - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 @ 86A3610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A361C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A364C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A367C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3694 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86A36A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A36AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A36B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A36C4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86A36D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A36DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A36E8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 @ 86A36F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A370C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A373C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A376C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A379C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A37A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A37B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A37C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A37CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A37D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A37E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A37F0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86A37FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3808 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A3814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A382C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A385C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3868 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A3874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A388C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A38A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A38B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A38BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A38C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A38D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A38E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A38EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A38F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A391C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3934 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86A3940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A394C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A397C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3988 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 2 @ 86A3994 - voice_square_2_alt 60, 0, 3, 0, 1, 6, 3 @ 86A39A0 - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 86A39AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A39B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A39C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A39D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A39DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A39E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A39F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A18 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 12, 0 @ 86A3A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3BB0 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A3BBC - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86A3BC8 +voicegroup138:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 2 + voice_square_2_alt 60, 0, 3, 0, 1, 6, 3 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup139.inc b/sound/voicegroups/voicegroup139.inc index fc44fa188b..5d22231360 100644 --- a/sound/voicegroups/voicegroup139.inc +++ b/sound/voicegroups/voicegroup139.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup139:: @ 86A3BD4 - voice_keysplit_all voicegroup002 @ 86A3BD4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A3BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C34 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 @ 86A3C40 - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 86A3C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C64 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 86A3C70 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86A3C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3C94 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 127, 103, 201 @ 86A3CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3CC4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 37, 127, 77, 165 @ 86A3CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3CE8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 51, 204, 92, 226 @ 86A3CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3DF0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 226 @ 86A3DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E08 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A3E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E20 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 3, 1 @ 86A3E2C - voice_square_2_alt 60, 0, 3, 0, 2, 7, 2 @ 86A3E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E80 - voice_keysplit voicegroup008, KeySplitTable4 @ 86A3E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3E98 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A3EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F34 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86A3F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F70 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 @ 86A3F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A3FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A400C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4018 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A4024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A403C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A406C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A409C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A40A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A40B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A40C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A40CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A40D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A40E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A40F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A40FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A412C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A415C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A418C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A41A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A41B0 - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 86A41BC - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 86A41C8 +voicegroup139:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 127, 103, 201 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 37, 127, 77, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 51, 204, 92, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 3, 1 + voice_square_2_alt 60, 0, 3, 0, 2, 7, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup140.inc b/sound/voicegroups/voicegroup140.inc index b135831ca6..7dfc37f745 100644 --- a/sound/voicegroups/voicegroup140.inc +++ b/sound/voicegroups/voicegroup140.inc @@ -1,7 +1,7 @@ .align 2 -voicegroup140:: @ 86A41D4 - voice_keysplit_all voicegroup001 @ 86A41D4 - voice_square_1 60, 0, 0, 2, 0, 2, 3, 1 @ 86A41E0 - voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 @ 86A41EC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A41F8 +voicegroup140:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 2, 3, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup141.inc b/sound/voicegroups/voicegroup141.inc index 4923049b35..7a866f991e 100644 --- a/sound/voicegroups/voicegroup141.inc +++ b/sound/voicegroups/voicegroup141.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup141:: @ 86A4204 - voice_keysplit_all voicegroup002 @ 86A4204 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A4210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A421C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A424C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A427C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4294 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 86A42A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A42AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A42B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A42C4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86A42D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A42DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A42E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A42F4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86A4300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A430C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4318 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 249, 25, 127 @ 86A4324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A433C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A436C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A439C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A43A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A43B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A43C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A43CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A43D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A43E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A43F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A43FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A442C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4438 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A4444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A445C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A448C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4498 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A44A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A44B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A44BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A44C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A44D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A44E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A44EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A44F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A451C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A454C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4564 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86A4570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A457C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A45A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A45AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A45B8 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 2 @ 86A45C4 - voice_square_2_alt 60, 0, 3, 0, 2, 7, 3 @ 86A45D0 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 5 @ 86A45DC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 1, 7, 0, 6 @ 86A45E8 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 2 @ 86A45F4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 2, 9, 0 @ 86A4600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A460C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A463C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A466C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A469C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A46A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A46B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A46C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A46CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A46D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A46E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A46F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A46FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A472C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A475C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A478C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A47A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A47B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A47BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A47C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A47D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A47E0 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A47EC - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86A47F8 +voicegroup141:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 2 + voice_square_2_alt 60, 0, 3, 0, 2, 7, 3 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 5 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 1, 7, 0, 6 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 2, 9, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup142.inc b/sound/voicegroups/voicegroup142.inc index f478d6dcaf..aa7e8b2043 100644 --- a/sound/voicegroups/voicegroup142.inc +++ b/sound/voicegroups/voicegroup142.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup142:: @ 86A4804 - voice_keysplit_all voicegroup002 @ 86A4804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A481C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A484C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A487C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A48A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A48AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A48B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A48C4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 64, 188, 128, 201 @ 86A48D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A48DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A48E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A48F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A490C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4918 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 195, 103, 220 @ 86A4924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A493C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4954 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 128, 195, 72, 127 @ 86A4960 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 85, 188, 103, 160 @ 86A496C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A499C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A49A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A49B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A49C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 128, 188, 77, 115 @ 86A49CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A49D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A49E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A49F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A49FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4AE0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 175, 154, 127 @ 86A4AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4BB8 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 4 @ 86A4BC4 - voice_square_2_alt 60, 0, 2, 0, 2, 5, 5 @ 86A4BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4BDC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 7, 15, 0 @ 86A4BE8 +voicegroup142:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 64, 188, 128, 201 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 195, 103, 220 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 128, 195, 72, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 85, 188, 103, 160 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 128, 188, 77, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 175, 154, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 4 + voice_square_2_alt 60, 0, 2, 0, 2, 5, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup143.inc b/sound/voicegroups/voicegroup143.inc index 0f528bd88c..d668337f87 100644 --- a/sound/voicegroups/voicegroup143.inc +++ b/sound/voicegroups/voicegroup143.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup143:: @ 86A4BF4 - voice_keysplit_all voicegroup002 @ 86A4BF4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A4C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4CB4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 160, 123, 165 @ 86A4CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D08 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 0 @ 86A4D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E28 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A4E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4FA8 - voice_square_2_alt 60, 0, 3, 0, 2, 3, 2 @ 86A4FB4 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 3, 1 @ 86A4FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4FCC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A4FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A4FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A502C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A505C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A508C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A50A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A50B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A50BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A50C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A50D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A50E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A50EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A50F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A511C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A514C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A517C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A51A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A51AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A51B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A51C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A51D0 - voice_noise_alt 60, 0, 0, 0, 1, 9, 0 @ 86A51DC - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 86A51E8 +voicegroup143:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 160, 123, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 3, 2 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 9, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup144.inc b/sound/voicegroups/voicegroup144.inc index 4a3209f06f..43ed4dbab2 100644 --- a/sound/voicegroups/voicegroup144.inc +++ b/sound/voicegroups/voicegroup144.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup144:: @ 86A51F4 - voice_keysplit_all voicegroup002 @ 86A51F4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A5200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A520C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A523C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A526C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A529C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A52A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A52B4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 85, 188, 92, 165 @ 86A52C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 85, 127, 180, 165 @ 86A52CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A52D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A52E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A52F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A52FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5308 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 51, 204, 92, 226 @ 86A5314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A532C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A535C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A538C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 216 @ 86A5398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A53A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A53B0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86A53BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A53C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A53D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A53E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A53EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A53F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A541C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5428 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A5434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A544C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A547C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A54A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A54AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A54B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A54C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A54D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A54DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A54E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A54F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A550C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A553C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A556C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A559C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A55A8 - voice_square_2_alt 60, 0, 3, 0, 2, 4, 2 @ 86A55B4 - voice_square_2_alt 60, 0, 1, 0, 2, 4, 3 @ 86A55C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A55CC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A55D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A55E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A55F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A55FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A562C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A565C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A568C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A56A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A56B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A56BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A56C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A56D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A56E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A56EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A56F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A571C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A574C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A577C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A57A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A57AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A57B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A57C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A57D0 - voice_noise_alt 60, 0, 0, 0, 1, 9, 0 @ 86A57DC - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86A57E8 +voicegroup144:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 85, 188, 92, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 85, 127, 180, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 51, 204, 92, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 4, 2 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 9, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup145.inc b/sound/voicegroups/voicegroup145.inc index d4cd030fbc..a14803a12c 100644 --- a/sound/voicegroups/voicegroup145.inc +++ b/sound/voicegroups/voicegroup145.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup145:: @ 86A57F4 - voice_keysplit_all voicegroup002 @ 86A57F4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A5800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A580C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5818 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 @ 86A5824 - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 @ 86A5830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A583C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A586C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A589C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A58A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A58B4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86A58C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A58CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A58D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A58E4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86A58F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A58FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5908 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 @ 86A5914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A592C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A595C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A598C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A59A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A59B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A59BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A59C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A59D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A59E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A59EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A59F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A10 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86A5A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A28 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A5A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5A88 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A5A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B54 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86A5B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5BA8 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 2 @ 86A5BB4 - voice_square_2_alt 60, 0, 3, 0, 0, 9, 0 @ 86A5BC0 - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 86A5BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C38 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 12, 0 @ 86A5C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5DD0 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A5DDC - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86A5DE8 +voicegroup145:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 2 + voice_square_2_alt 60, 0, 3, 0, 0, 9, 0 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup146.inc b/sound/voicegroups/voicegroup146.inc index ad15ef86a7..d78b991e33 100644 --- a/sound/voicegroups/voicegroup146.inc +++ b/sound/voicegroups/voicegroup146.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup146:: @ 86A5DF4 - voice_keysplit_all voicegroup002 @ 86A5DF4 - voice_directsound 60, 0, DirectSoundWaveData_steinway_b_piano, 255, 165, 103, 235 @ 86A5E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E84 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 86A5E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F08 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 249, 25, 226 @ 86A5F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A5FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A601C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6028 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A6034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A604C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A607C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A60A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A60AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A60B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A60C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A60D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A60DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A60E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A60F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A610C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A613C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A616C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6190 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 43, 76, 103, 216 @ 86A619C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A61A8 - voice_square_2_alt 60, 0, 2, 0, 2, 4, 4 @ 86A61B4 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 0 @ 86A61C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A61CC - voice_square_2_alt 60, 0, 2, 0, 0, 15, 0 @ 86A61D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A61E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A61F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A61FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A622C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6238 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 86A6244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A625C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A628C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A62A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A62B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A62BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A62C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A62D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A62E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A62EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A62F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A631C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A634C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A637C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A63A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A63AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A63B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A63C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A63D0 - voice_noise_alt 60, 0, 0, 0, 1, 9, 0 @ 86A63DC - voice_noise_alt 60, 0, 0, 0, 1, 6, 2 @ 86A63E8 +voicegroup146:: + voice_keysplit_all voicegroup002 + voice_directsound 60, 0, DirectSoundWaveData_steinway_b_piano, 255, 165, 103, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 249, 25, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 43, 76, 103, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 4, 4 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 9, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 2 diff --git a/sound/voicegroups/voicegroup147.inc b/sound/voicegroups/voicegroup147.inc index 159b5df807..35fb9dc5b3 100644 --- a/sound/voicegroups/voicegroup147.inc +++ b/sound/voicegroups/voicegroup147.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup147:: @ 86A63F4 - voice_keysplit_all voicegroup001 @ 86A63F4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A6400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A640C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A643C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A646C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A649C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A64A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A64B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A64C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A64CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A64D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A64E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A64F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A64FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6508 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 249, 25, 226 @ 86A6514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A652C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A655C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A658C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A65A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A65B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A65BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A65C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A65D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A65E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A65EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A65F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A661C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6628 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A6634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A664C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A667C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A66A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A66AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A66B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A66C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A66D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A66DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A66E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A66F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A670C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A673C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A676C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A679C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A67A8 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 6, 1 @ 86A67B4 - voice_square_2_alt 60, 0, 2, 0, 0, 6, 1 @ 86A67C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A67CC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 2, 4, 2 @ 86A67D8 +voicegroup147:: + voice_keysplit_all voicegroup001 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 249, 25, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 6, 1 + voice_square_2_alt 60, 0, 2, 0, 0, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 2, 4, 2 diff --git a/sound/voicegroups/voicegroup148.inc b/sound/voicegroups/voicegroup148.inc index da14a098ba..1ada1b89c6 100644 --- a/sound/voicegroups/voicegroup148.inc +++ b/sound/voicegroups/voicegroup148.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup148:: @ 86A67E4 - voice_keysplit_all voicegroup002 @ 86A67E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A67F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A67FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A682C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A685C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6874 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 226, 0, 127 @ 86A6880 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86A688C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A68A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A68B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A68BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A68C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A68D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A68E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A68EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A68F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A691C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A694C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A697C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A69A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A69AC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 @ 86A69B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A69C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A69D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A69DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A69E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A69F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A18 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A6A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6A90 - voice_keysplit voicegroup008, KeySplitTable4 @ 86A6A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6B98 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 12, 0 @ 86A6BA4 - voice_square_2_alt 60, 0, 2, 0, 0, 12, 0 @ 86A6BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6BEC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A6BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6DC0 - voice_noise_alt 60, 0, 0, 0, 3, 5, 2 @ 86A6DCC - voice_noise_alt 60, 0, 0, 0, 1, 6, 5 @ 86A6DD8 +voicegroup148:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 226, 0, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 12, 0 + voice_square_2_alt 60, 0, 2, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 3, 5, 2 + voice_noise_alt 60, 0, 0, 0, 1, 6, 5 diff --git a/sound/voicegroups/voicegroup149.inc b/sound/voicegroups/voicegroup149.inc index 2d009d7fe8..78c29fb840 100644 --- a/sound/voicegroups/voicegroup149.inc +++ b/sound/voicegroups/voicegroup149.inc @@ -1,96 +1,96 @@ .align 2 -voicegroup149:: @ 86A6DE4 - voice_keysplit_all voicegroup190 @ 86A6DE4 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A6DF0 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 12, 0 @ 86A6DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E44 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 @ 86A6E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E74 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 86A6E80 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86A6E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6E98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A6FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7000 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86A700C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 165, 154, 153 @ 86A7018 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A7024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A703C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A706C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7078 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A7084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7090 - voice_keysplit voicegroup008, KeySplitTable4 @ 86A709C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A70A8 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A70B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A70C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A70CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A70D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A70E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A70F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A70FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7108 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_oboe, 43, 188, 103, 165 @ 86A7114 - voice_directsound 60, 0, DirectSoundWaveData_unused_sd90_oboe, 43, 165, 103, 165 @ 86A7120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A712C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7144 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86A7150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A715C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A718C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7198 - voice_square_1_alt 60, 0, 0, 1, 1, 2, 3, 1 @ 86A71A4 - voice_square_2_alt 60, 0, 1, 0, 2, 4, 2 @ 86A71B0 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 6, 1 @ 86A71BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A71C8 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 3, 1 @ 86A71D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A71E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A71EC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A71F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A721C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7228 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 86A7234 +voicegroup149:: + voice_keysplit_all voicegroup190 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 165, 154, 153 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_oboe, 43, 188, 103, 165 + voice_directsound 60, 0, DirectSoundWaveData_unused_sd90_oboe, 43, 165, 103, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 1, 2, 3, 1 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 2 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 6, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup150.inc b/sound/voicegroups/voicegroup150.inc index e07ad0b975..233981ebdf 100644 --- a/sound/voicegroups/voicegroup150.inc +++ b/sound/voicegroups/voicegroup150.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup150:: @ 86A7240 - voice_keysplit_all voicegroup002 @ 86A7240 - voice_directsound 60, 0, DirectSoundWaveData_steinway_b_piano, 255, 165, 103, 235 @ 86A724C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A727C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A72A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A72AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A72B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A72C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A72D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A72DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A72E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A72F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A730C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A733C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A736C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A739C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A73A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A73B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A73C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A73CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A73D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A73E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A73F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A73FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A742C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A745C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A748C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A74A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A74B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A74BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A74C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A74D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A74E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A74EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A74F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A751C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A754C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A757C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A75A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A75AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A75B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A75C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A75D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A75DC - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 85, 204, 77, 127 @ 86A75E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A75F4 - voice_square_2_alt 60, 0, 1, 0, 1, 4, 6 @ 86A7600 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 5 @ 86A760C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7618 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 86A7624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A763C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A766C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A769C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A76A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A76B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A76C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A76CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A76D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A76E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A76F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A76FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A772C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A775C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A778C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A77A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A77B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A77BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A77C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A77D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A77E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A77EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A77F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A781C - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 86A7828 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86A7834 +voicegroup150:: + voice_keysplit_all voicegroup002 + voice_directsound 60, 0, DirectSoundWaveData_steinway_b_piano, 255, 165, 103, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 85, 204, 77, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 1, 4, 6 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup151.inc b/sound/voicegroups/voicegroup151.inc index ac5d1a8023..3688a2541d 100644 --- a/sound/voicegroups/voicegroup151.inc +++ b/sound/voicegroups/voicegroup151.inc @@ -1,91 +1,91 @@ .align 2 -voicegroup151:: @ 86A7840 - voice_keysplit_all voicegroup002 @ 86A7840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A784C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A787C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A78A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A78AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A78B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A78C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A78D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A78DC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86A78E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A78F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A790C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A793C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A796C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A799C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A79A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A79B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A79C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A79CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A79D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A79E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A79F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A79FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A68 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 127 @ 86A7A74 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A7A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7AD4 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A7AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7AEC - voice_keysplit voicegroup008, KeySplitTable4 @ 86A7AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B04 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A7B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7BF4 - voice_square_1_alt 60, 0, 0, 1, 1, 2, 3, 1 @ 86A7C00 - voice_square_2_alt 60, 0, 1, 0, 2, 4, 2 @ 86A7C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C24 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 3, 1 @ 86A7C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C48 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A7C54 +voicegroup151:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 127 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 1, 2, 3, 1 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup152.inc b/sound/voicegroups/voicegroup152.inc index 16cd4bb97d..bf07b260ca 100644 --- a/sound/voicegroups/voicegroup152.inc +++ b/sound/voicegroups/voicegroup152.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup152:: @ 86A7C60 - voice_keysplit_all voicegroup002 @ 86A7C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7CFC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 97, 236 @ 86A7D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D20 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 160, 175, 165 @ 86A7D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D74 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 @ 86A7D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7E88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 127, 154, 235 @ 86A7E94 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A7EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7EF4 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A7F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F0C - voice_keysplit voicegroup008, KeySplitTable4 @ 86A7F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F24 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A7F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7FE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A7FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8014 - voice_square_1_alt 60, 0, 0, 2, 0, 4, 2, 1 @ 86A8020 - voice_square_2_alt 60, 0, 3, 0, 1, 5, 2 @ 86A802C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 4, 6, 0 @ 86A8038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8044 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 4, 6, 0 @ 86A8050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A805C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8068 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 1 @ 86A8074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A808C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A80A4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 2, 9, 1 @ 86A80B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A80BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A80C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A80D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A80E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A80EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A80F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A811C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A814C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A817C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A81A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A81AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A81B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A81C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A81D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A81DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A81E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A81F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A820C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A823C - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A8248 - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 86A8254 +voicegroup152:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 97, 236 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 160, 175, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 127, 154, 235 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 4, 2, 1 + voice_square_2_alt 60, 0, 3, 0, 1, 5, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 4, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 4, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 2, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup153.inc b/sound/voicegroups/voicegroup153.inc index 1dae15586a..90840698e4 100644 --- a/sound/voicegroups/voicegroup153.inc +++ b/sound/voicegroups/voicegroup153.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup153:: @ 86A8260 - voice_keysplit_all voicegroup002 @ 86A8260 - voice_keysplit voicegroup005, KeySplitTable1 @ 86A826C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A829C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A82A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A82B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A82C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A82CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A82D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A82E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A82F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A82FC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 97, 236 @ 86A8308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A832C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A835C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A838C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A83A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A83B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A83BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A83C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A83D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A83E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A83EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A83F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A841C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A844C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A847C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86A8488 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 127, 154, 235 @ 86A8494 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A84A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A84AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A84B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A84C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A84D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A84DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A84E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A84F4 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A8500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A850C - voice_keysplit voicegroup008, KeySplitTable4 @ 86A8518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8524 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A8530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A853C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A856C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A859C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A85A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A85B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A85C0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86A85CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A85D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A85E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A85F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A85FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8614 - voice_square_1_alt 60, 0, 0, 1, 0, 3, 5, 2 @ 86A8620 - voice_square_2_alt 60, 0, 3, 0, 3, 4, 2 @ 86A862C - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 86A8638 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 6, 2 @ 86A8644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A865C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A868C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A86A4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48A0, 0, 1, 12, 0 @ 86A86B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A86BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A86C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A86D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A86E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A86EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A86F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A871C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A874C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A877C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A87A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A87AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A87B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A87C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A87D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A87DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A87E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A87F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A880C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A883C - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A8848 - voice_noise_alt 60, 0, 0, 0, 1, 6, 2 @ 86A8854 +voicegroup153:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 97, 236 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 127, 154, 235 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 3, 5, 2 + voice_square_2_alt 60, 0, 3, 0, 3, 4, 2 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B48A0, 0, 1, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 2 diff --git a/sound/voicegroups/voicegroup154.inc b/sound/voicegroups/voicegroup154.inc index 77b8d3a1a8..14cfd2dd9d 100644 --- a/sound/voicegroups/voicegroup154.inc +++ b/sound/voicegroups/voicegroup154.inc @@ -1,96 +1,96 @@ .align 2 -voicegroup154:: @ 86A8860 - voice_keysplit_all voicegroup002 @ 86A8860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A886C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8884 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 @ 86A8890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A889C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A88A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A88B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A88C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A88CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A88D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A88E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A88F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A88FC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 97, 236 @ 86A8908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A892C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A895C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A898C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A89A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A89B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A89BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A89C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A89D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A89E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A89EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A89F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8A88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 127, 154, 235 @ 86A8A94 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A8AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8AB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8AD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8AE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8AF4 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A8B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B0C - voice_keysplit voicegroup008, KeySplitTable4 @ 86A8B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B24 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A8B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8BD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8BE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C14 - voice_square_1_alt 60, 0, 0, 1, 0, 0, 10, 0 @ 86A8C20 - voice_square_2_alt 60, 0, 1, 0, 0, 10, 0 @ 86A8C2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C68 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 0, 0, 12, 0 @ 86A8C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8CA4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 0, 12, 0 @ 86A8CB0 +voicegroup154:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 97, 236 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 127, 154, 235 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 0, 10, 0 + voice_square_2_alt 60, 0, 1, 0, 0, 10, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4860, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 0, 12, 0 diff --git a/sound/voicegroups/voicegroup155.inc b/sound/voicegroups/voicegroup155.inc index daefabb246..7fcfdcfe66 100644 --- a/sound/voicegroups/voicegroup155.inc +++ b/sound/voicegroups/voicegroup155.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup155:: @ 86A8CBC - voice_keysplit_all voicegroup002 @ 86A8CBC - voice_keysplit voicegroup005, KeySplitTable1 @ 86A8CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8CE0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 @ 86A8CEC - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 188, 103, 165 @ 86A8CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D58 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86A8D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D7C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 86A8D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8DD0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 @ 86A8DDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 @ 86A8DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E0C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86A8E18 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 165, 154, 165 @ 86A8E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8EE4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 86A8EF0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A8EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F50 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A8F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F80 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A8F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8F98 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 165, 180, 165 @ 86A8FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A8FF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A901C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A904C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9070 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 2 @ 86A907C - voice_square_2_alt 60, 0, 3, 0, 3, 6, 2 @ 86A9088 - voice_square_2_alt 60, 0, 3, 0, 2, 6, 5 @ 86A9094 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 3, 6, 5 @ 86A90A0 - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 86A90AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A90B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A90C4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 @ 86A90D0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 86A90DC - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 1, 9, 2 @ 86A90E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A90F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9100 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 @ 86A910C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A913C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A916C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A919C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A91A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A91B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A91C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A91CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A91D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A91E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A91F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A91FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A922C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9250 - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86A925C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A928C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9298 - voice_noise_alt 60, 0, 0, 0, 2, 6, 2 @ 86A92A4 - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86A92B0 +voicegroup155:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 188, 103, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 165, 154, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 165, 180, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 2 + voice_square_2_alt 60, 0, 3, 0, 3, 6, 2 + voice_square_2_alt 60, 0, 3, 0, 2, 6, 5 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 3, 6, 5 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4850, 0, 7, 15, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 1, 9, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 2 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup156.inc b/sound/voicegroups/voicegroup156.inc index 52bebd5f7e..0d8ec69d9f 100644 --- a/sound/voicegroups/voicegroup156.inc +++ b/sound/voicegroups/voicegroup156.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup156:: @ 86A92BC - voice_keysplit_all voicegroup002 @ 86A92BC - voice_keysplit voicegroup005, KeySplitTable1 @ 86A92C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A92D4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86A92E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A92EC - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 @ 86A92F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A931C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A934C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A937C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 86A9388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A93A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A93AC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 86A93B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A93C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A93D0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 @ 86A93DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A93E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A93F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A940C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86A9418 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 @ 86A9424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A943C - voice_square_2_alt 60, 0, 3, 0, 4, 4, 4 @ 86A9448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9460 - voice_directsound 60, 0, DirectSoundWaveData_unused_sc88pro_unison_slap, 255, 165, 180, 216 @ 86A946C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9484 - voice_square_2_alt 60, 0, 1, 0, 1, 7, 5 @ 86A9490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A949C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A94A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A94B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A94C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A94CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A94D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A94E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A94F0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A94FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A952C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9550 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A955C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9580 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A958C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9598 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 @ 86A95A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A95B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A95BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A95C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A95D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A95E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A95EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A95F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A961C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A964C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9670 - voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 @ 86A967C - voice_square_1_alt 60, 0, 0, 0, 0, 2, 7, 5 @ 86A9688 - voice_square_1_alt 60, 0, 0, 3, 0, 2, 6, 5 @ 86A9694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A96A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A96AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A96B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A96C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A96D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A96DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A96E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A96F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A970C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A973C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A976C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A979C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A97A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A97B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A97C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A97CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A97D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A97E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A97F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A97FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A982C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9850 - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86A985C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A988C - voice_noise_alt 60, 0, 0, 0, 0, 15, 0 @ 86A9898 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A98A4 - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86A98B0 +voicegroup156:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 4, 4, 4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_unused_sc88pro_unison_slap, 255, 165, 180, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 1, 7, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 7, 5 + voice_square_1_alt 60, 0, 0, 3, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup157.inc b/sound/voicegroups/voicegroup157.inc index 6469c4c4ac..102702545e 100644 --- a/sound/voicegroups/voicegroup157.inc +++ b/sound/voicegroups/voicegroup157.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup157:: @ 86A98BC - voice_keysplit_all voicegroup002 @ 86A98BC - voice_keysplit voicegroup005, KeySplitTable1 @ 86A98C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A98D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A98E0 - voice_square_2_alt 60, 0, 3, 0, 2, 6, 5 @ 86A98EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A98F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A991C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A994C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A997C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 190, 115 @ 86A9988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A99A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A99AC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 86A99B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A99C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A99D0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 @ 86A99DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A99E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A99F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A0C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86A9A18 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 @ 86A9A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A3C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 86A9A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A60 - voice_directsound 60, 0, DirectSoundWaveData_unused_sc88pro_unison_slap, 255, 165, 180, 216 @ 86A9A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A78 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86A9A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9AF0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86A9AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B50 - voice_keysplit voicegroup007, KeySplitTable3 @ 86A9B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B80 - voice_keysplit voicegroup009, KeySplitTable5 @ 86A9B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9B98 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 @ 86A9BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9C70 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 2 @ 86A9C7C - voice_square_2_alt 60, 0, 3, 0, 3, 3, 0 @ 86A9C88 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 3, 6, 5 @ 86A9C94 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 7, 2 @ 86A9CA0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 86A9CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9CC4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 86A9CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D00 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 @ 86A9D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9E98 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86A9EA4 - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 86A9EB0 +voicegroup157:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 190, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 128, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_unused_sc88pro_unison_slap, 255, 165, 180, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 7, 2 + voice_square_2_alt 60, 0, 3, 0, 3, 3, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 3, 6, 5 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 7, 2 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup158.inc b/sound/voicegroups/voicegroup158.inc index efed45e18d..798a6f4d10 100644 --- a/sound/voicegroups/voicegroup158.inc +++ b/sound/voicegroups/voicegroup158.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup158:: @ 86A9EBC - voice_keysplit_all voicegroup002 @ 86A9EBC - voice_keysplit voicegroup005, KeySplitTable1 @ 86A9EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9EE0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 @ 86A9EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F28 - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 86A9F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F58 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86A9F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F7C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 108, 137 @ 86A9F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9FD0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 204, 103, 226 @ 86A9FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86A9FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA00C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86AA018 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 @ 86AA024 - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86AA030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA03C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA054 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86AA060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA06C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA078 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86AA084 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 @ 86AA090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA09C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA0A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA0B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA0C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA0CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA0D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA0E4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 153 @ 86AA0F0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86AA0FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA12C - voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 255, 0, 255, 0 @ 86AA138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA150 - voice_keysplit voicegroup007, KeySplitTable3 @ 86AA15C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA180 - voice_keysplit voicegroup009, KeySplitTable5 @ 86AA18C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA198 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 236, 188 @ 86AA1A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA1B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA1BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA1C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA1D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA1E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA1EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA1F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA21C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA24C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA258 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 @ 86AA264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA270 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 9, 0 @ 86AA27C - voice_square_2_alt 60, 0, 3, 0, 1, 10, 1 @ 86AA288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA294 - voice_square_2_alt 60, 0, 2, 1, 0, 9, 1 @ 86AA2A0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 86AA2AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA2B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA2C4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86AA2D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA2DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA2E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA2F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA300 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 15, 0 @ 86AA30C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA33C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA36C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA39C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA3A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA3B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA3C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA3CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA3D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA3E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA3F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA3FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA42C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA45C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA48C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA498 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86AA4A4 - voice_noise_alt 60, 0, 0, 0, 1, 8, 1 @ 86AA4B0 +voicegroup158:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 108, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 204, 103, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 153 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 236, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 9, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 10, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 1, 0, 9, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 8, 1 diff --git a/sound/voicegroups/voicegroup159.inc b/sound/voicegroups/voicegroup159.inc index 9b72cb505d..ce05bc70e2 100644 --- a/sound/voicegroups/voicegroup159.inc +++ b/sound/voicegroups/voicegroup159.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup159:: @ 86AA4BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA4BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA4C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA4D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA4E0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 64, 249, 0, 188 @ 86AA4EC - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 51, 249, 0, 165 @ 86AA4F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA51C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA54C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA57C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA5A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA5AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA5B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA5C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA5D0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 249, 25, 127 @ 86AA5DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA5E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA5F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA60C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA63C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA66C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA69C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA6A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA6B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA6C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA6CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA6D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA6E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA6F0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86AA6FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA72C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA75C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA78C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA7A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA7B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA7BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA7C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA7D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA7E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA7EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA7F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA81C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA84C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA870 - voice_square_1_alt 60, 0, 0, 2, 0, 7, 0, 6 @ 86AA87C - voice_square_2_alt 60, 0, 1, 1, 5, 1, 6 @ 86AA888 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 1, 7, 0, 6 @ 86AA894 - voice_square_1_alt 60, 0, 0, 0, 1, 4, 3, 6 @ 86AA8A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA8AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA8B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA8C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA8D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA8DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA8E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA8F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA90C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA93C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA96C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA99C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA9A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA9B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA9C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA9CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA9D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA9E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA9F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AA9FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAA98 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 86AAAA4 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86AAAB0 +voicegroup159:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 64, 249, 0, 188 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 51, 249, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 7, 0, 6 + voice_square_2_alt 60, 0, 1, 1, 5, 1, 6 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 1, 7, 0, 6 + voice_square_1_alt 60, 0, 0, 0, 1, 4, 3, 6 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup160.inc b/sound/voicegroups/voicegroup160.inc index 5bd5ec42d1..9198c7f127 100644 --- a/sound/voicegroups/voicegroup160.inc +++ b/sound/voicegroups/voicegroup160.inc @@ -1,91 +1,91 @@ .align 2 -voicegroup160:: @ 86AAABC - voice_keysplit_all voicegroup001 @ 86AAABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAAC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAAD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAAE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAAEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAAF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB58 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86AAB64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAB94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AABA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AABAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AABB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AABC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AABD0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 @ 86AABDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AABE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AABF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC54 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86AAC60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAC9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AACA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AACB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AACC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AACCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AACD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AACE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AACF0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86AACFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAD98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AADA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AADB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AADBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AADC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AADD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AADE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AADEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AADF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE70 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 3, 1 @ 86AAE7C - voice_square_2_alt 60, 0, 1, 0, 2, 4, 2 @ 86AAE88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAE94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAEA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAEAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAEB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAEC4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86AAED0 +voicegroup160:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 3, 1 + voice_square_2_alt 60, 0, 1, 0, 2, 4, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup161.inc b/sound/voicegroups/voicegroup161.inc index 72008eece6..8165b38e8d 100644 --- a/sound/voicegroups/voicegroup161.inc +++ b/sound/voicegroups/voicegroup161.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup161:: @ 86AAEDC - voice_keysplit_all voicegroup002 @ 86AAEDC - voice_keysplit voicegroup005, KeySplitTable1 @ 86AAEE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAEF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF78 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86AAF84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAF9C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 86AAFA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAFB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAFC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAFCC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 86AAFD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAFE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAFF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AAFFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB02C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB05C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB08C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB0A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB0B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB0BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB0C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB0D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB0E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB0EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB0F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB110 - voice_keysplit voicegroup006, KeySplitTable2 @ 86AB11C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB14C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB170 - voice_keysplit voicegroup007, KeySplitTable3 @ 86AB17C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB188 - voice_keysplit voicegroup008, KeySplitTable4 @ 86AB194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB1A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB1AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB1B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB1C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB1D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB1DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB1E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB1F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB20C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB23C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86AB248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB26C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB290 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 4 @ 86AB29C - voice_square_2_alt 60, 0, 2, 0, 2, 6, 2 @ 86AB2A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB2B4 - voice_square_2_alt 60, 0, 1, 0, 2, 6, 2 @ 86AB2C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB2CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB2D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB2E4 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86AB2F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB2FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB32C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB35C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB38C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB3A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB3B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB3BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB3C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB3D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB3E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB3EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB3F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB41C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB44C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB47C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB4A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB4AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB4B8 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 86AB4C4 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86AB4D0 +voicegroup161:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 4 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 2, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup162.inc b/sound/voicegroups/voicegroup162.inc index 0694dc883b..cf6d4294c6 100644 --- a/sound/voicegroups/voicegroup162.inc +++ b/sound/voicegroups/voicegroup162.inc @@ -1,96 +1,96 @@ .align 2 -voicegroup162:: @ 86AB4DC - voice_keysplit_all voicegroup002 @ 86AB4DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB4E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB4F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB500 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 64, 188, 108, 244 @ 86AB50C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB53C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB56C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB578 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86AB584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB59C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 64, 195, 92, 235 @ 86AB5A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB5B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB5C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB5CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB5D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB5E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB5F0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 @ 86AB5FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB62C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB65C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 64, 204, 113, 235 @ 86AB668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB68C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB6A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB6B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB6BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB6C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB6D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB6E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB6EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB6F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB710 - voice_keysplit voicegroup006, KeySplitTable2 @ 86AB71C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB74C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB77C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB7A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB7AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB7B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB7C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB7D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB7DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB7E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB7F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB80C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB83C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB86C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB890 - voice_square_1_alt 60, 0, 0, 1, 0, 0, 6, 0 @ 86AB89C - voice_square_2_alt 60, 0, 1, 0, 0, 6, 0 @ 86AB8A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB8B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB8C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB8CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB8D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB8E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB8F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB8FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB920 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86AB92C +voicegroup162:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 64, 188, 108, 244 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 64, 195, 92, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 64, 204, 113, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 0, 6, 0 + voice_square_2_alt 60, 0, 1, 0, 0, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup163.inc b/sound/voicegroups/voicegroup163.inc index f221b761d2..6c6fc38033 100644 --- a/sound/voicegroups/voicegroup163.inc +++ b/sound/voicegroups/voicegroup163.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup163:: @ 86AB938 - voice_keysplit_all voicegroup002 @ 86AB938 - voice_keysplit voicegroup005, KeySplitTable1 @ 86AB944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB95C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 @ 86AB968 - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 @ 86AB974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB98C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB9A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB9B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB9BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB9C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB9D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB9E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB9EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AB9F8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86ABA04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA28 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86ABA34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA4C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 @ 86ABA58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABA94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABAA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABAAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABAB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABAC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABAD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABAE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABAF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB54 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86ABB60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB6C - voice_keysplit voicegroup006, KeySplitTable2 @ 86ABB78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABB9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABBA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABBB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABBC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABBCC - voice_keysplit voicegroup007, KeySplitTable3 @ 86ABBD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABBE4 - voice_directsound 60, 0, DirectSoundWaveData_88D6978, 255, 0, 206, 204 @ 86ABBF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABBFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABC98 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86ABCA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABCB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABCBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABCC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABCD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABCE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABCEC - voice_square_1_alt 60, 0, 0, 0, 0, 1, 5, 2 @ 86ABCF8 - voice_square_2_alt 60, 0, 3, 0, 3, 4, 2 @ 86ABD04 - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 86ABD10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD7C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 0, 12, 0 @ 86ABD88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABD94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABDA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABDAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABDB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABDC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABDD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABDDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABDE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABDF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABE9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABEA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABEB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABEC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABEE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABEF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABEFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABF08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABF14 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86ABF20 - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86ABF2C +voicegroup163:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_88D6978, 255, 0, 206, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 5, 2 + voice_square_2_alt 60, 0, 3, 0, 3, 4, 2 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup164.inc b/sound/voicegroups/voicegroup164.inc index 67783f8f84..b7f742114b 100644 --- a/sound/voicegroups/voicegroup164.inc +++ b/sound/voicegroups/voicegroup164.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup164:: @ 86ABF38 - voice_keysplit_all voicegroup002 @ 86ABF38 - voice_keysplit voicegroup005, KeySplitTable1 @ 86ABF44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABF50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABF5C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 128, 180, 108, 209 @ 86ABF68 - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 85, 204, 77, 246 @ 86ABF74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABF80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABF8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABF98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABFA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABFB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABFBC - voice_square_1_alt 60, 0, 0, 2, 0, 0, 10, 6 @ 86ABFC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABFD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABFE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABFEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ABFF8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86AC004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC01C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC028 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86AC034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC04C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 @ 86AC058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC07C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC0A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC0AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC0B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC0C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC0D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC0DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC0E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC0F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC10C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC13C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC154 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86AC160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC16C - voice_keysplit voicegroup006, KeySplitTable2 @ 86AC178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC19C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC1A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC1B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC1C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC1CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC1D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC1E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC1F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC1FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC22C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC25C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC28C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC298 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86AC2A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC2B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC2BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC2C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC2D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC2E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC2EC - voice_square_2_alt 60, 0, 2, 0, 2, 6, 2 @ 86AC2F8 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 4 @ 86AC304 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 0, 12, 0 @ 86AC310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC31C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC34C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC37C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 12, 0 @ 86AC388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC3A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC3AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC3B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC3C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC3D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC3DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC3E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC3F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC40C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC43C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC46C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC49C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC4A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC4B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC4C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC4CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC4D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC4E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC4F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC4FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC514 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86AC520 - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86AC52C +voicegroup164:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 128, 180, 108, 209 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 85, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 10, 6 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 2 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 4 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup165.inc b/sound/voicegroups/voicegroup165.inc index 95042d7a7f..4e48069568 100644 --- a/sound/voicegroups/voicegroup165.inc +++ b/sound/voicegroups/voicegroup165.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup165:: @ 86AC538 - voice_keysplit_all voicegroup002 @ 86AC538 - voice_keysplit voicegroup005, KeySplitTable1 @ 86AC544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC55C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC58C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC598 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 @ 86AC5A4 - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 86AC5B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC5BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC5C8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 86AC5D4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86AC5E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC5EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC5F8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 37, 165, 103, 127 @ 86AC604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC61C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC64C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 204, 92, 226 @ 86AC658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC67C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC6A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC6AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC6B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC6C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC6D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC6DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC6E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC6F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC70C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC73C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC754 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 226 @ 86AC760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC76C - voice_keysplit voicegroup006, KeySplitTable2 @ 86AC778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC784 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 10, 1 @ 86AC790 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 6 @ 86AC79C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC7A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC7B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC7C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC7CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC7D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC7E4 - voice_keysplit voicegroup008, KeySplitTable4 @ 86AC7F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC7FC - voice_keysplit voicegroup009, KeySplitTable5 @ 86AC808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC82C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC85C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC88C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC898 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 @ 86AC8A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC8B0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_enhanced_delay_shaku, 255, 191, 97, 165 @ 86AC8BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC8C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC8D4 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 @ 86AC8E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC8EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC8F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC91C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC928 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC94C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC97C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86AC988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC9A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC9AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC9B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC9C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC9D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC9DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC9E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AC9F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACA9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACAA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACAB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACAC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACAD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACAE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACAF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACAFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB14 - voice_noise_alt 60, 0, 0, 0, 1, 9, 0 @ 86ACB20 - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 86ACB2C +voicegroup165:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 165, 51, 242 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 37, 165, 103, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 204, 92, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 10, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 6 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_enhanced_delay_shaku, 255, 191, 97, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 1, 9, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup166.inc b/sound/voicegroups/voicegroup166.inc index a859f7f3ac..7c23ebb014 100644 --- a/sound/voicegroups/voicegroup166.inc +++ b/sound/voicegroups/voicegroup166.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup166:: @ 86ACB38 - voice_keysplit_all voicegroup002 @ 86ACB38 - voice_keysplit voicegroup005, KeySplitTable1 @ 86ACB44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACB98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACBA4 - voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 86ACBB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACBBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACBC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACBD4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86ACBE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACBEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACBF8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 108, 137 @ 86ACC04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC4C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 204, 103, 226 @ 86ACC58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACC88 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 @ 86ACC94 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 @ 86ACCA0 - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86ACCAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACCB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACCC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACCD0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86ACCDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACCE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACCF4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86ACD00 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 @ 86ACD0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD60 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 153 @ 86ACD6C - voice_keysplit voicegroup006, KeySplitTable2 @ 86ACD78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACD9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACDA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACDB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACDC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACDCC - voice_keysplit voicegroup007, KeySplitTable3 @ 86ACDD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACDE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACDF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACDFC - voice_keysplit voicegroup009, KeySplitTable5 @ 86ACE08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE14 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 236, 188 @ 86ACE20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACE98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACEA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACEB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACEBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACEC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACED4 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 @ 86ACEE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACEEC - voice_square_1_alt 60, 0, 0, 3, 0, 1, 9, 0 @ 86ACEF8 - voice_square_2_alt 60, 0, 3, 0, 2, 9, 1 @ 86ACF04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF10 - voice_square_2_alt 60, 0, 2, 1, 0, 9, 1 @ 86ACF1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF40 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86ACF4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF7C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 15, 0 @ 86ACF88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACF94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACFA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACFAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACFB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACFC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACFD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACFDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACFE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ACFF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD00C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD03C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD06C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD09C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD0A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD0B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD0C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD0CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD0D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD0E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD0F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD0FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD114 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86AD120 - voice_noise_alt 60, 0, 0, 0, 1, 8, 1 @ 86AD12C +voicegroup166:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 128, 146, 108, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 204, 103, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 255, 0, 255, 127 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_square_wave, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 153 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 236, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 9, 0 + voice_square_2_alt 60, 0, 3, 0, 2, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 1, 0, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 8, 1 diff --git a/sound/voicegroups/voicegroup167.inc b/sound/voicegroups/voicegroup167.inc index 2583623c37..d4cf5a9f4d 100644 --- a/sound/voicegroups/voicegroup167.inc +++ b/sound/voicegroups/voicegroup167.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup167:: @ 86AD138 - voice_keysplit_all voicegroup002 @ 86AD138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD15C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD18C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD1A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD1B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD1BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD1C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD1D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD1E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD1EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD1F8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86AD204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD21C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD228 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86AD234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD24C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 @ 86AD258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD27C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD2A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD2AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD2B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD2C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD2D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD2DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD2E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD2F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD30C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD33C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD36C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD39C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD3A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD3B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD3C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD3CC - voice_keysplit voicegroup007, KeySplitTable3 @ 86AD3D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD3E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD3F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD3FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD42C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD45C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD48C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD4A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD4B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD4BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD4C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD4D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD4E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD4EC - voice_square_1_alt 60, 0, 0, 0, 0, 1, 10, 4 @ 86AD4F8 - voice_square_2_alt 60, 0, 3, 0, 2, 8, 3 @ 86AD504 - voice_square_2_alt 60, 0, 2, 0, 2, 6, 5 @ 86AD510 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD51C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 0, 6, 0 @ 86AD528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD54C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD57C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD5A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD5AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD5B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD5C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD5D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD5DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD5E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD5F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD600 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD60C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD618 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD63C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD66C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD69C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD6A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD6B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD6C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD6CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD6D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD6E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD6F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD6FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD714 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86AD720 - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86AD72C +voicegroup167:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 10, 4 + voice_square_2_alt 60, 0, 3, 0, 2, 8, 3 + voice_square_2_alt 60, 0, 2, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 0, 6, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup168.inc b/sound/voicegroups/voicegroup168.inc index 8d4d77c208..2bb2c3b214 100644 --- a/sound/voicegroups/voicegroup168.inc +++ b/sound/voicegroups/voicegroup168.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup168:: @ 86AD738 - voice_keysplit_all voicegroup002 @ 86AD738 - voice_keysplit voicegroup005, KeySplitTable1 @ 86AD744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD75C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 @ 86AD768 - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 @ 86AD774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD78C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD7A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD7B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD7BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD7C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD7D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD7E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD7EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD7F8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86AD804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD81C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD828 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86AD834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD840 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD84C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 @ 86AD858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD87C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD8A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD8AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD8B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD8C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD8D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD8DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD8E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD8F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD90C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD93C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD948 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 86AD954 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86AD960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD96C - voice_keysplit voicegroup006, KeySplitTable2 @ 86AD978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD99C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD9A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD9B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD9C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD9CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD9D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD9E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD9F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AD9FC - voice_keysplit voicegroup009, KeySplitTable5 @ 86ADA08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADA98 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86ADAA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADAB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADAC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADAD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADAE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADAEC - voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 2 @ 86ADAF8 - voice_square_2_alt 60, 0, 3, 0, 2, 6, 4 @ 86ADB04 - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 86ADB10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB7C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 0, 12, 0 @ 86ADB88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADB94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADBA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADBAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADBB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADBC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADBD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADBDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADBE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADBF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADC9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADCA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADCB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADCC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADCCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADCD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADCE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADCF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADCFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD14 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86ADD20 - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86ADD2C +voicegroup168:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 4, 2 + voice_square_2_alt 60, 0, 3, 0, 2, 6, 4 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup169.inc b/sound/voicegroups/voicegroup169.inc index 37c24742e5..bac059cff4 100644 --- a/sound/voicegroups/voicegroup169.inc +++ b/sound/voicegroups/voicegroup169.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup169:: @ 86ADD38 - voice_keysplit_all voicegroup001 @ 86ADD38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADD98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADDA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADDB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADDBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADDC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADDD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADDE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADDEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADDF8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 @ 86ADE04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADE94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADEA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADEAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADEB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADEC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADED0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86ADEDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADEE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADEF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADF9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADFA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADFB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADFC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADFCC - voice_keysplit voicegroup007, KeySplitTable3 @ 86ADFD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADFE4 - voice_keysplit voicegroup008, KeySplitTable4 @ 86ADFF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86ADFFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE02C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE05C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE08C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE0A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE0B0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 86AE0BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE0C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE0D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE0E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE0EC - voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 @ 86AE0F8 - voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 @ 86AE104 - voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 @ 86AE110 - voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 @ 86AE11C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE14C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE17C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE1A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE1AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE1B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE1C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE1D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE1DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE1E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE1F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE20C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE23C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE26C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE29C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE2A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE2B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE2C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE2CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE2D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE2E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE2F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE2FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE314 - voice_noise_alt 60, 0, 0, 0, 2, 4, 0 @ 86AE320 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86AE32C +voicegroup169:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 210 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 4, 1 + voice_square_2_alt 60, 0, 0, 0, 1, 4, 1 + voice_square_1_alt 60, 0, 0, 0, 0, 1, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 4, 0 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup170.inc b/sound/voicegroups/voicegroup170.inc index b230f32d73..01a3388743 100644 --- a/sound/voicegroups/voicegroup170.inc +++ b/sound/voicegroups/voicegroup170.inc @@ -1,87 +1,87 @@ .align 2 -voicegroup170:: @ 86AE338 - voice_keysplit_all voicegroup001 @ 86AE338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE35C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE38C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE3A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE3B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE3BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE3C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE3D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE3E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE3EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE3F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE41C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE434 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE44C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE47C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE4A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE4AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE4B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE4C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE4D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE4DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE4E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE4F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE50C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE53C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE560 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 86AE56C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE59C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE5A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE5B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE5C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE5CC - voice_keysplit voicegroup007, KeySplitTable3 @ 86AE5D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE5E4 - voice_keysplit voicegroup008, KeySplitTable4 @ 86AE5F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE5FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE62C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE65C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE68C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE698 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86AE6A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE6B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE6BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE6C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE6D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE6E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE6EC - voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 @ 86AE6F8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 @ 86AE704 - voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 @ 86AE710 - voice_square_2_alt 60, 0, 2, 0, 1, 0, 0 @ 86AE71C +voicegroup170:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 1, 0, 1, 7, 1 + voice_square_2_alt 60, 0, 2, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup171.inc b/sound/voicegroups/voicegroup171.inc index fe9cccdc7b..2fc106983d 100644 --- a/sound/voicegroups/voicegroup171.inc +++ b/sound/voicegroups/voicegroup171.inc @@ -1,94 +1,94 @@ .align 2 -voicegroup171:: @ 86AE728 - voice_keysplit_all voicegroup001 @ 86AE728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE74C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE77C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE7A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE7AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE7B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE7C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE7D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE7DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE7E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE7F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE80C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE818 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE83C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE86C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE89C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE8A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE8B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE8C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE8CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE8D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE8E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE8F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE8FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE92C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE938 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 86AE944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE950 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 86AE95C - voice_keysplit voicegroup006, KeySplitTable2 @ 86AE968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE98C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE9A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE9B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE9BC - voice_keysplit voicegroup007, KeySplitTable3 @ 86AE9C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE9D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE9E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AE9EC - voice_keysplit voicegroup009, KeySplitTable5 @ 86AE9F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEA88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86AEA94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEAA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEAAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEAB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEAC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEAD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEADC - voice_square_2_alt 60, 0, 2, 0, 1, 7, 0 @ 86AEAE8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 @ 86AEAF4 - voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 0 @ 86AEB00 - voice_square_2_alt 60, 0, 2, 0, 2, 0, 0 @ 86AEB0C - voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 @ 86AEB18 - voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 @ 86AEB24 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 0 @ 86AEB30 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 0 @ 86AEB3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEB48 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 @ 86AEB54 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 @ 86AEB60 +voicegroup171:: + voice_keysplit_all voicegroup001 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 1, 7, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 1 + voice_square_1_alt 60, 0, 0, 2, 0, 1, 7, 0 + voice_square_2_alt 60, 0, 2, 0, 2, 0, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 7, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 1, 7, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 0, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 7, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4880, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4890, 0, 7, 15, 1 diff --git a/sound/voicegroups/voicegroup172.inc b/sound/voicegroups/voicegroup172.inc index ee1db77156..af9c09334f 100644 --- a/sound/voicegroups/voicegroup172.inc +++ b/sound/voicegroups/voicegroup172.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup172:: @ 86AEB6C - voice_keysplit_all voicegroup002 @ 86AEB6C - voice_keysplit voicegroup005, KeySplitTable1 @ 86AEB78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEB84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEB90 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 @ 86AEB9C - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 @ 86AEBA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEBB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEBC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEBCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEBD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEBE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEBF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEBFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC2C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86AEC38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC5C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86AEC68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC80 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 @ 86AEC8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEC98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AECA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AECB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AECBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AECC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AECD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AECE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AECEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AECF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AED88 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86AED94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEDA0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86AEDAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEDB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEDC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEDD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEDDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEDE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEDF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE00 - voice_keysplit voicegroup007, KeySplitTable3 @ 86AEE0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEE9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEEA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEEB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEEC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEECC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86AEED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEEE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEEF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEEFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF20 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 5, 2 @ 86AEF2C - voice_square_2_alt 60, 0, 3, 0, 2, 6, 3 @ 86AEF38 - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 86AEF44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEF98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEFA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEFB0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 0, 12, 0 @ 86AEFBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEFC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEFD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEFE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEFEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AEFF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF004 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF01C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF04C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF07C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF0A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF0AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF0B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF0C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF0D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF0DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF0E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF0F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF10C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF13C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF148 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86AF154 - voice_noise_alt 60, 0, 0, 0, 1, 6, 0 @ 86AF160 +voicegroup172:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 255, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 5, 2 + voice_square_2_alt 60, 0, 3, 0, 2, 6, 3 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4900, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 0 diff --git a/sound/voicegroups/voicegroup173.inc b/sound/voicegroups/voicegroup173.inc index e759262690..98a024ad29 100644 --- a/sound/voicegroups/voicegroup173.inc +++ b/sound/voicegroups/voicegroup173.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup173:: @ 86AF16C - voice_keysplit_all voicegroup002 @ 86AF16C - voice_keysplit voicegroup005, KeySplitTable1 @ 86AF178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF190 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 @ 86AF19C - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 128, 204, 77, 246 @ 86AF1A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF1B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF1C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF1CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF1D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF1E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF1F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF1FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF208 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86AF214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF220 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF22C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 51, 0, 203, 127 @ 86AF238 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF25C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF280 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 @ 86AF28C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 216, 51, 224 @ 86AF298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF2A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF2B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF2BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF2C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF2D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF2E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF2EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF2F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF304 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86AF310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF31C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF34C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF37C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF3A0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86AF3AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF3B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF3C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF3D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF3DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF3E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF3F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF400 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF40C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF43C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF46C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF49C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF4A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF4B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF4C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF4CC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86AF4D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF4E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF4F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF4FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF520 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 3, 4 @ 86AF52C - voice_square_2_alt 60, 0, 3, 0, 3, 3, 2 @ 86AF538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF55C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF58C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF5A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF5B0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86AF5BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF5C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF5D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF5E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF5EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF5F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF604 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF61C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF634 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF640 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF64C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF67C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF6A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF6AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF6B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF6C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF6D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF6DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF6E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF6F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF70C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF73C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF748 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86AF754 - voice_noise_alt 60, 0, 0, 0, 1, 3, 2 @ 86AF760 +voicegroup173:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 128, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 51, 0, 203, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 216, 51, 224 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 3, 4 + voice_square_2_alt 60, 0, 3, 0, 3, 3, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 3, 2 diff --git a/sound/voicegroups/voicegroup174.inc b/sound/voicegroups/voicegroup174.inc index face4c675d..0a65666114 100644 --- a/sound/voicegroups/voicegroup174.inc +++ b/sound/voicegroups/voicegroup174.inc @@ -1,160 +1,160 @@ .align 2 -voicegroup174:: @ 86AF76C - voice_keysplit_all voicegroup002 @ 86AF76C - voice_keysplit voicegroup005, KeySplitTable1 @ 86AF778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF79C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 @ 86AF7A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF7B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF7C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF7CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF7D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF7E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF7F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF7FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF808 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF82C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 @ 86AF838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF85C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 @ 86AF868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF874 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF880 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF88C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF8A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF8B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF8BC - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 128, 0, 255, 214 @ 86AF8C8 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 128, 0, 255, 206 @ 86AF8D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF8E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF8EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF8F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF910 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF91C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF928 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 165 @ 86AF934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF94C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF97C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF9A0 - voice_keysplit voicegroup006, KeySplitTable2 @ 86AF9AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF9B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF9C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF9D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF9DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF9E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AF9F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA00 - voice_keysplit voicegroup007, KeySplitTable3 @ 86AFA0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA30 - voice_keysplit voicegroup009, KeySplitTable5 @ 86AFA3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA48 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 209 @ 86AFA54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFA9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFAA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFAB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFAC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFAD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFAE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFAF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFAFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB20 - voice_square_1_alt 60, 0, 0, 3, 0, 2, 3, 4 @ 86AFB2C - voice_square_2_alt 60, 0, 3, 0, 2, 3, 4 @ 86AFB38 - voice_square_1_alt 60, 0, 0, 3, 0, 2, 3, 4 @ 86AFB44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFB98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFBA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFBB0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 @ 86AFBBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFBC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFBD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFBE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFBEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFBF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFC94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFCA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFCAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFCB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFCC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFCD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFCDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFCE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFCF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFD00 - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86AFD0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFD18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFD24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFD30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFD3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFD48 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86AFD54 - voice_noise_alt 60, 0, 0, 0, 1, 3, 1 @ 86AFD60 - voice_keysplit_all voicegroup177 @ 86AFD6C - voice_square_1_alt 60, 0, 0, 2, 0, 2, 9, 1 @ 86AFD78 - voice_square_2_alt 60, 0, 2, 0, 2, 9, 1 @ 86AFD84 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86AFD90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFD9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFDA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFDB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFDC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFDCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFDD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFDE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFDF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFDFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFE80 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 154, 127 @ 86AFE8C - voice_keysplit_all voicegroup002 @ 86AFE98 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 3, 1 @ 86AFEA4 - voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 @ 86AFEB0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86AFEBC +voicegroup174:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 128, 0, 255, 214 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 128, 0, 255, 206 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 209 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 2, 3, 4 + voice_square_2_alt 60, 0, 3, 0, 2, 3, 4 + voice_square_1_alt 60, 0, 0, 3, 0, 2, 3, 4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4840, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 3, 1 + voice_keysplit_all voicegroup177 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 9, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 9, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 154, 127 + voice_keysplit_all voicegroup002 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 3, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup175.inc b/sound/voicegroups/voicegroup175.inc index dac5ee5bea..6ba9fec3b4 100644 --- a/sound/voicegroups/voicegroup175.inc +++ b/sound/voicegroups/voicegroup175.inc @@ -1,55 +1,55 @@ .align 2 -voicegroup175:: @ 86AFEC8 - voice_keysplit_all voicegroup177 @ 86AFEC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFEE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFEEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFEF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF58 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 86AFF64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFF94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFFA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFFAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFFB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFFC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFFD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFFDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 165, 154, 127 @ 86AFFE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86AFFF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B000C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B003C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B006C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B009C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B00A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B00B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B00C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B00CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B00D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B00E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B00F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B00FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B012C +voicegroup175:: + voice_keysplit_all voicegroup177 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 165, 154, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 diff --git a/sound/voicegroups/voicegroup176.inc b/sound/voicegroups/voicegroup176.inc index 04a8b3fef6..8b4c687b5b 100644 --- a/sound/voicegroups/voicegroup176.inc +++ b/sound/voicegroups/voicegroup176.inc @@ -1,51 +1,51 @@ .align 2 -voicegroup176:: @ 86B0138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B015C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B018C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B01A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B01B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B01BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B01C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B01D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B01E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B01EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B01F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B021C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0234 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0240 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B024C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B027C - voice_square_1_alt 60, 0, 0, 2, 0, 2, 7, 1 @ 86B0288 - voice_square_2_alt 60, 0, 2, 0, 2, 9, 1 @ 86B0294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B02A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B02AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B02B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B02C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B02D0 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 86B02DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B02E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B02F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B030C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B033C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0360 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B036C +voicegroup176:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 7, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 9, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 diff --git a/sound/voicegroups/voicegroup177.inc b/sound/voicegroups/voicegroup177.inc index 6d43470b8a..12d57b389b 100644 --- a/sound/voicegroups/voicegroup177.inc +++ b/sound/voicegroups/voicegroup177.inc @@ -1,93 +1,93 @@ .align 2 -voicegroup177:: @ 86B0378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B039C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B03A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B03B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B03C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B03CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B03D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B03E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B03F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B03FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B042C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B045C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0468 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0480 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B048C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B04A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B04B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B04BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B04C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B04D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B04E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B04EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B04F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0510 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 @ 86B051C - voice_directsound_no_resample 64, 64, DirectSoundWaveData_drum_and_percussion_kick, 255, 0, 255, 0 @ 86B0528 - voice_directsound_no_resample 67, 71, DirectSoundWaveData_sd90_solo_snare, 255, 180, 175, 228 @ 86B0534 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 0, 255, 242 @ 86B0540 - voice_directsound_no_resample 65, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 @ 86B054C - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 86B0558 - voice_directsound 64, 24, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86B0564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0570 - voice_directsound 68, 29, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86B057C - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 86B0588 - voice_directsound 72, 64, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86B0594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B05A0 - voice_directsound 76, 39, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86B05AC - voice_directsound 80, 89, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 @ 86B05B8 - voice_directsound_no_resample 33, 10, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86B05C4 - voice_directsound 84, 104, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 235 @ 86B05D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B05DC - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86B05E8 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 @ 86B05F4 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 86B0600 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 @ 86B060C - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 @ 86B0618 - voice_directsound_no_resample 64, 118, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86B0624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0630 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86B063C - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 @ 86B0648 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 @ 86B0654 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 86B0660 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 86B066C - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 86B0678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0690 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B069C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B06A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B06B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B06C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B06CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B06D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B06E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B06F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B06FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B072C - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 86B0738 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 86B0744 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 @ 86B0750 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 @ 86B075C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0774 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 86B0780 - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 @ 86B078C - voice_directsound 50, 64, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 @ 86B0798 - voice_directsound 64, 64, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 @ 86B07A4 +voicegroup177:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_drum_and_percussion_kick, 255, 0, 255, 0 + voice_directsound_no_resample 67, 71, DirectSoundWaveData_sd90_solo_snare, 255, 180, 175, 228 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_solo_snare, 255, 0, 255, 242 + voice_directsound_no_resample 65, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_directsound 64, 24, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 68, 29, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_directsound 72, 64, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 76, 39, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound 80, 89, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 226 + voice_directsound_no_resample 33, 10, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound 84, 104, DirectSoundWaveData_sd90_ambient_tom, 255, 0, 255, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_dance_drums_ride_bell, 255, 165, 103, 231 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 + voice_directsound_no_resample 64, 118, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 + voice_directsound 50, 64, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 + voice_directsound 64, 64, DirectSoundWaveData_ethnic_flavours_kotsuzumi, 255, 0, 255, 0 diff --git a/sound/voicegroups/voicegroup178.inc b/sound/voicegroups/voicegroup178.inc index ea0ee13e9e..0062455af8 100644 --- a/sound/voicegroups/voicegroup178.inc +++ b/sound/voicegroups/voicegroup178.inc @@ -1,91 +1,91 @@ .align 2 -voicegroup178:: @ 86B07B0 - voice_keysplit_all voicegroup177 @ 86B07B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B07BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B07C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B07D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B07E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B07EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B07F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B081C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0828 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0834 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0840 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 204, 103, 165 @ 86B084C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0870 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B087C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B08A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B08AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B08B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B08C4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 154, 165 @ 86B08D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B08DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B08E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B08F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B090C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B093C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0960 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B096C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B099C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B09A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B09B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B09C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B09CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B09D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B09E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B09F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B09FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B64 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 7, 1 @ 86B0B70 - voice_square_2_alt 60, 0, 2, 0, 2, 7, 1 @ 86B0B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0BAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0BB8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 0, 15, 1 @ 86B0BC4 +voicegroup178:: + voice_keysplit_all voicegroup177 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 204, 103, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 165, 154, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 7, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 7, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 0, 15, 1 diff --git a/sound/voicegroups/voicegroup179.inc b/sound/voicegroups/voicegroup179.inc index c98f76b033..f777dcb3a4 100644 --- a/sound/voicegroups/voicegroup179.inc +++ b/sound/voicegroups/voicegroup179.inc @@ -1,91 +1,91 @@ .align 2 -voicegroup179:: @ 86B0BD0 - voice_keysplit_all voicegroup177 @ 86B0BD0 - voice_keysplit_all voicegroup176 @ 86B0BDC - voice_keysplit voicegroup005, KeySplitTable1 @ 86B0BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C60 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 @ 86B0C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0CE4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 165, 154, 127 @ 86B0CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D50 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 86B0D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E04 - voice_keysplit voicegroup006, KeySplitTable2 @ 86B0E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E64 - voice_keysplit voicegroup007, KeySplitTable3 @ 86B0E70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E7C - voice_keysplit voicegroup008, KeySplitTable4 @ 86B0E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0E94 - voice_keysplit voicegroup009, KeySplitTable5 @ 86B0EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0EE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0F84 - voice_square_1_alt 60, 0, 0, 3, 0, 0, 10, 0 @ 86B0F90 - voice_square_2_alt 60, 0, 0, 0, 1, 9, 0 @ 86B0F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0FA8 - voice_square_2_alt 60, 0, 3, 0, 1, 9, 0 @ 86B0FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0FD8 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 @ 86B0FE4 +voicegroup179:: + voice_keysplit_all voicegroup177 + voice_keysplit_all voicegroup176 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_xylophone, 255, 235, 0, 204 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 85, 165, 154, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 3, 0, 0, 10, 0 + voice_square_2_alt 60, 0, 0, 0, 1, 9, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 1, 9, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup180.inc b/sound/voicegroups/voicegroup180.inc index 6915bd8ddd..1754c35de4 100644 --- a/sound/voicegroups/voicegroup180.inc +++ b/sound/voicegroups/voicegroup180.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup180:: @ 86B0FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B0FF0 - voice_keysplit voicegroup005, KeySplitTable1 @ 86B0FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1014 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 64, 249, 0, 188 @ 86B1020 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 @ 86B102C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B105C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1080 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B108C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B10A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B10B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B10BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B10C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B10D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B10E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B10EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B10F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B111C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B114C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B117C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B11A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B11AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B11B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B11C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B11D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B11DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B11E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B11F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1200 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B120C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1218 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B123C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B126C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1290 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B129C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B12A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B12B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B12C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B12CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B12D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B12E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B12F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B12FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B132C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B135C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B138C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B13A4 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 3, 1 @ 86B13B0 - voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 @ 86B13BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B13C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B13D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B13E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B13EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B13F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B141C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1428 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1434 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86B1440 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B144C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1458 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B147C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B14A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B14AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B14B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B14C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B14D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B14DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B14E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B14F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1500 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B150C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1518 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1524 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1530 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B153C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1554 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1560 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B156C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1578 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1584 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1590 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B159C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B15A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B15B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B15C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B15CC - voice_directsound_no_resample 60, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 @ 86B15D8 - voice_noise_alt 60, 0, 0, 0, 1, 0, 0 @ 86B15E4 +voicegroup180:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 64, 249, 0, 188 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 249, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 3, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 0, DirectSoundWaveData_sc88pro_tr909_hand_clap, 255, 255, 255, 127 + voice_noise_alt 60, 0, 0, 0, 1, 0, 0 diff --git a/sound/voicegroups/voicegroup181.inc b/sound/voicegroups/voicegroup181.inc index 2b41b646c9..0b7e24583c 100644 --- a/sound/voicegroups/voicegroup181.inc +++ b/sound/voicegroups/voicegroup181.inc @@ -1,50 +1,50 @@ .align 2 -voicegroup181:: @ 86B15F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B15F0 - voice_keysplit voicegroup005, KeySplitTable1 @ 86B15FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B162C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1650 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B165C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1668 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1674 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B168C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1698 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B16A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B16B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B16BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B16C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B16D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B16E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B16EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B16F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1704 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1710 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B171C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1728 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1734 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1740 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B174C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1758 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1764 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1770 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B177C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1788 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1794 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B17A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B17AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B17B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B17C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B17D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B17DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B17E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B17F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1800 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B180C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 @ 86B1818 +voicegroup181:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 242, 51, 242 diff --git a/sound/voicegroups/voicegroup182.inc b/sound/voicegroups/voicegroup182.inc index 0eb9a5f7b7..a773b680a5 100644 --- a/sound/voicegroups/voicegroup182.inc +++ b/sound/voicegroups/voicegroup182.inc @@ -1,91 +1,91 @@ .align 2 -voicegroup182:: @ 86B1824 - voice_keysplit_all voicegroup002 @ 86B1824 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1830 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B183C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1848 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1854 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1860 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B186C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1878 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1884 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1890 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B189C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B18A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B18B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B18C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B18CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B18D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B18E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B18F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B18FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1908 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1914 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1920 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B192C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1938 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1944 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1950 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B195C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1968 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1974 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1980 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B198C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1998 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B19A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B19B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B19BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B19C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B19D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B19E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B19EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B19F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A4C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 76 @ 86B1A58 - voice_keysplit voicegroup006, KeySplitTable2 @ 86B1A64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1A94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1AA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1AAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1AB8 - voice_keysplit voicegroup007, KeySplitTable3 @ 86B1AC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1AD0 - voice_keysplit voicegroup008, KeySplitTable4 @ 86B1ADC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1AE8 - voice_keysplit voicegroup009, KeySplitTable5 @ 86B1AF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1B9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1BA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1BB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1BC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1BCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1BD8 - voice_square_1_alt 60, 0, 0, 1, 1, 2, 3, 1 @ 86B1BE4 - voice_square_2_alt 60, 0, 1, 0, 2, 6, 2 @ 86B1BF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1BFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C08 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 3, 1 @ 86B1C14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C2C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86B1C38 +voicegroup182:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 0, 193, 76 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup008, KeySplitTable4 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 1, 2, 3, 1 + voice_square_2_alt 60, 0, 1, 0, 2, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 3, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 diff --git a/sound/voicegroups/voicegroup183.inc b/sound/voicegroups/voicegroup183.inc index 29b8b05d92..f930e480a1 100644 --- a/sound/voicegroups/voicegroup183.inc +++ b/sound/voicegroups/voicegroup183.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup183:: @ 86B1C44 - voice_keysplit_all voicegroup002 @ 86B1C44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1C98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1CA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1CB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1CBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1CC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1CD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1CE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1CEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1CF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D58 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 @ 86B1D64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1D94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1DA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1DAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1DB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1DC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1DD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1DDC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86B1DE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1DF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1E9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1EA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1EB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1EC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1ECC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1ED8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1EE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1EF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1EFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1F98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1FA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1FB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1FBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1FC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1FD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1FE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1FEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B1FF8 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 @ 86B2004 - voice_square_2_alt 60, 0, 2, 0, 2, 4, 1 @ 86B2010 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B201C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86B2028 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2034 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2040 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B204C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2058 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2064 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2070 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B207C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2088 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2094 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B20A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B20AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B20B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B20C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B20D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B20DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B20E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B20F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2100 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B210C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2118 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2124 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2130 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B213C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2148 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2154 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2160 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B216C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2178 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2184 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2190 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B219C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B21A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B21B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B21C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B21CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B21D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B21E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B21F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B21FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2208 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2214 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2220 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86B222C - voice_noise_alt 60, 0, 0, 0, 1, 3, 1 @ 86B2238 +voicegroup183:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 4, 1 + voice_square_2_alt 60, 0, 2, 0, 2, 4, 1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 3, 1 diff --git a/sound/voicegroups/voicegroup184.inc b/sound/voicegroups/voicegroup184.inc index 771c1e33a1..d12cb031d1 100644 --- a/sound/voicegroups/voicegroup184.inc +++ b/sound/voicegroups/voicegroup184.inc @@ -1,89 +1,89 @@ .align 2 -voicegroup184:: @ 86B2244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2244 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2250 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B225C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86B2268 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2274 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2280 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B228C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2298 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B22A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B22B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B22BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B22C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B22D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B22E0 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86B22EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B22F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2304 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2310 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B231C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2328 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2334 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2340 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B234C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2358 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2364 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2370 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B237C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2388 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2394 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B23A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B23AC - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86B23B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B23C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B23D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B23DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B23E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B23F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2400 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86B240C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2418 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2424 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2430 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B243C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2448 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2454 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2460 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B246C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2478 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2484 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2490 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B249C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B24A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B24B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B24C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B24CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B24D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B24E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B24F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B24FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2508 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2514 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2520 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B252C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2538 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2544 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2550 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B255C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2568 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2574 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2580 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B258C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2598 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B25A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B25B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B25BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B25C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B25D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B25E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B25EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B25F8 - voice_square_2_alt 60, 0, 3, 0, 0, 15, 0 @ 86B2604 - voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2610 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B261C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2628 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2634 - voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 255, 0, 255, 0 @ 86B2640 +voicegroup184:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 255, 0, 255, 0 diff --git a/sound/voicegroups/voicegroup185.inc b/sound/voicegroups/voicegroup185.inc index 3d4c08f7a7..7b76f7ac7b 100644 --- a/sound/voicegroups/voicegroup185.inc +++ b/sound/voicegroups/voicegroup185.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup185:: @ 86B264C - voice_keysplit_all voicegroup002 @ 86B264C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2658 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2664 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2670 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B267C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2688 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2694 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B26A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B26AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B26B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B26C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B26D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B26DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B26E8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86B26F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2700 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B270C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2718 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2724 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2730 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B273C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2748 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2754 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2760 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B276C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2778 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2784 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2790 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B279C - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 128, 0, 255, 214 @ 86B27A8 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 128, 0, 255, 206 @ 86B27B4 - voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 @ 86B27C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B27CC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 @ 86B27D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B27E4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86B27F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B27FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2808 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 @ 86B2814 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2820 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B282C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2838 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2844 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2850 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B285C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 @ 86B2868 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2874 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 @ 86B2880 - voice_keysplit voicegroup006, KeySplitTable2 @ 86B288C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2898 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B28A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B28B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B28BC - voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 85, 0, 154, 165 @ 86B28C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B28D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B28E0 - voice_keysplit voicegroup007, KeySplitTable3 @ 86B28EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B28F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2904 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2910 - voice_keysplit voicegroup009, KeySplitTable5 @ 86B291C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2928 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 209 @ 86B2934 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2940 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B294C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2958 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2964 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2970 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B297C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2988 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2994 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B29A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B29AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B29B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B29C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B29D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B29DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B29E8 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 @ 86B29F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A00 - voice_square_2_alt 60, 0, 2, 0, 0, 15, 0 @ 86B2A0C - voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A30 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 @ 86B2A3C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 @ 86B2A48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A54 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 @ 86B2A60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2A9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2AA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2AB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2AC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2ACC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2AD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2AE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2AF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2AFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2B98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2BA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2BB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2BBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2BC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2BD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2BE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2BEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2BF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C28 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86B2C34 - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 86B2C40 +voicegroup185:: + voice_keysplit_all voicegroup002 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_overdrive_guitar, 128, 0, 255, 214 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_high, 128, 0, 255, 206 + voice_directsound 60, 0, DirectSoundWaveData_sd90_special_scream_drive, 255, 0, 255, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fingered_bass, 255, 253, 0, 149 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 252, 0, 115 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_pizzicato_strings, 255, 216, 0, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_timpani, 255, 246, 0, 226 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_classical_choir_voice_ahhs, 85, 0, 154, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_distortion_guitar_low, 255, 0, 255, 209 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_whistle, 255, 0, 255, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4920, 0, 7, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4910, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4870, 0, 7, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup186.inc b/sound/voicegroups/voicegroup186.inc index 82f4a680f0..64f1460c75 100644 --- a/sound/voicegroups/voicegroup186.inc +++ b/sound/voicegroups/voicegroup186.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup186:: @ 86B2C4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C4C - voice_keysplit voicegroup005, KeySplitTable1 @ 86B2C58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2C94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2CA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2CAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2CB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2CC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2CD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2CDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2CE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2CF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D0C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2D9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2DA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2DB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2DC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2DCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2DD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2DE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2DF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2DFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2E98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2EA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2EB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2EBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2EC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2ED4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2EE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2EEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2EF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2F94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2FA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2FAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2FB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2FC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2FD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2FDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2FE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B2FF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3000 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B300C - voice_square_2_alt 60, 0, 3, 0, 0, 15, 0 @ 86B3018 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3024 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3030 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B303C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3048 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3054 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3060 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B306C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3078 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3084 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3090 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B309C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B30A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B30B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B30C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B30CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B30D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B30E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B30F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B30FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3108 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3114 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3120 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B312C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3138 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3144 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3150 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B315C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3168 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3174 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3180 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B318C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3198 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B31A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B31B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B31BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B31C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B31D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B31E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B31EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B31F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3204 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3210 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B321C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3228 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3234 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86B3240 +voicegroup186:: + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_2_alt 60, 0, 3, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 diff --git a/sound/voicegroups/voicegroup187.inc b/sound/voicegroups/voicegroup187.inc index 9afa51349e..c4b1af710a 100644 --- a/sound/voicegroups/voicegroup187.inc +++ b/sound/voicegroups/voicegroup187.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup187:: @ 86B324C - voice_keysplit_all voicegroup002 @ 86B324C - voice_keysplit voicegroup005, KeySplitTable1 @ 86B3258 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3264 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3270 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B327C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3288 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3294 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B32A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B32AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B32B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B32C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B32D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B32DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B32E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B32F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3300 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B330C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 @ 86B3318 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3324 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3330 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B333C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 @ 86B3348 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3354 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3360 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 @ 86B336C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3378 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3384 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3390 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B339C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B33A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B33B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B33C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B33CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B33D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B33E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B33F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B33FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3408 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3414 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3420 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B342C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3438 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3444 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3450 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B345C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3468 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 @ 86B3474 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3480 - voice_keysplit voicegroup006, KeySplitTable2 @ 86B348C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3498 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B34A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B34B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B34BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B34C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B34D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B34E0 - voice_keysplit voicegroup007, KeySplitTable3 @ 86B34EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B34F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3504 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3510 - voice_keysplit voicegroup009, KeySplitTable5 @ 86B351C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3528 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3534 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3540 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B354C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3558 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3564 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3570 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B357C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3588 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3594 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B35A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B35AC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86B35B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B35C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B35D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B35DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B35E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B35F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3600 - voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 2 @ 86B360C - voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 @ 86B3618 - voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 @ 86B3624 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3630 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B363C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3648 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3654 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3660 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B366C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3678 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3684 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3690 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 12, 0 @ 86B369C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B36A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B36B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B36C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B36CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B36D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B36E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B36F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B36FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3708 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3714 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3720 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B372C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3738 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3744 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3750 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B375C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3768 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3774 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3780 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B378C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3798 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B37A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B37B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B37BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B37C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B37D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B37E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B37EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B37F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3804 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3810 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B381C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3828 - voice_noise_alt 60, 0, 0, 0, 2, 6, 0 @ 86B3834 - voice_noise_alt 60, 0, 0, 0, 1, 6, 1 @ 86B3840 +voicegroup187:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 255, 76, 133, 137 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_accordion, 64, 188, 108, 165 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 255, 249, 25, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_harp, 255, 246, 0, 235 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup007, KeySplitTable3 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup009, KeySplitTable5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 0, 0, 2, 5, 2 + voice_square_2_alt 60, 0, 1, 0, 1, 7, 1 + voice_square_2_alt 60, 0, 0, 0, 2, 6, 5 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 0, 12, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 6, 0 + voice_noise_alt 60, 0, 0, 0, 1, 6, 1 diff --git a/sound/voicegroups/voicegroup188.inc b/sound/voicegroups/voicegroup188.inc index a67df5a3af..0f071fca51 100644 --- a/sound/voicegroups/voicegroup188.inc +++ b/sound/voicegroups/voicegroup188.inc @@ -1,131 +1,131 @@ .align 2 -voicegroup188:: @ 86B384C - voice_keysplit_all voicegroup002 @ 86B384C - voice_keysplit voicegroup005, KeySplitTable1 @ 86B3858 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3864 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3870 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 @ 86B387C - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 128, 204, 77, 246 @ 86B3888 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3894 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B38A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B38AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B38B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B38C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B38D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B38DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B38E8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86B38F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3900 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B390C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 51, 0, 203, 127 @ 86B3918 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3924 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3930 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B393C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3948 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3954 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3960 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 @ 86B396C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 216, 51, 224 @ 86B3978 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3984 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3990 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B399C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B39A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B39B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B39C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B39CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B39D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B39E4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86B39F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B39FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A80 - voice_keysplit voicegroup006, KeySplitTable2 @ 86B3A8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3A98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3AA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3AB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3ABC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3AC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3AD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3AE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3AEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3AF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B28 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B34 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B40 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B4C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B70 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B7C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3B94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3BA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3BAC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86B3BB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3BC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3BD0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3BDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3BE8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3BF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C00 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 6, 1 @ 86B3C0C - voice_square_2_alt 60, 0, 3, 0, 3, 3, 2 @ 86B3C18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C60 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C6C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3C90 - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 2 @ 86B3C9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3CA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3CB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3CC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3CCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3CD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3CE4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3CF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3CFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D08 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D14 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D20 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D2C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D38 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D44 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D50 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D5C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D68 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D74 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D80 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D8C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3D98 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3DA4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3DB0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3DBC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3DC8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3DD4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3DE0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3DEC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3DF8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3E04 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3E10 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3E1C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3E28 - voice_noise_alt 60, 0, 0, 0, 2, 7, 0 @ 86B3E34 - voice_noise_alt 60, 0, 0, 0, 1, 9, 1 @ 86B3E40 +voicegroup188:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 128, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 51, 0, 203, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 216, 51, 224 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 6, 1 + voice_square_2_alt 60, 0, 3, 0, 3, 3, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 7, 0 + voice_noise_alt 60, 0, 0, 0, 1, 9, 1 diff --git a/sound/voicegroups/voicegroup189.inc b/sound/voicegroups/voicegroup189.inc index 4593c06f0b..462948118d 100644 --- a/sound/voicegroups/voicegroup189.inc +++ b/sound/voicegroups/voicegroup189.inc @@ -1,95 +1,95 @@ .align 2 -voicegroup189:: @ 86B3E4C - voice_keysplit_all voicegroup002 @ 86B3E4C - voice_keysplit voicegroup005, KeySplitTable1 @ 86B3E58 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3E64 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3E70 - voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 @ 86B3E7C - voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 128, 204, 77, 246 @ 86B3E88 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3E94 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3EA0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3EAC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3EB8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3EC4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3ED0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3EDC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3EE8 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 @ 86B3EF4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F00 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F0C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 51, 0, 203, 127 @ 86B3F18 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F24 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F30 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F3C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F48 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F54 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F60 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 @ 86B3F6C - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 216, 51, 224 @ 86B3F78 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F84 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F90 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3F9C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3FA8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3FB4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3FC0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3FCC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3FD8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3FE4 - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 @ 86B3FF0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B3FFC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4008 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4014 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4020 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B402C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4038 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4044 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4050 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B405C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4068 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4074 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4080 - voice_keysplit voicegroup006, KeySplitTable2 @ 86B408C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4098 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B40A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B40B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B40BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B40C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B40D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B40E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B40EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B40F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4104 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4110 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B411C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4128 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4134 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4140 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B414C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4158 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4164 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4170 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B417C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4188 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4194 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B41A0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B41AC - voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 @ 86B41B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B41C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B41D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B41DC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B41E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B41F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4200 - voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 3 @ 86B420C - voice_square_2_alt 60, 0, 3, 0, 2, 7, 2 @ 86B4218 - voice_square_1_alt 60, 0, 0, 1, 0, 2, 6, 2 @ 86B4224 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4230 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B423C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4248 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4254 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4260 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B426C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4278 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4284 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4290 +voicegroup189:: + voice_keysplit_all voicegroup002 + voice_keysplit voicegroup005, KeySplitTable1 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sd90_classical_detuned_ep1_low, 255, 188, 128, 226 + voice_directsound 60, 65, DirectSoundWaveData_sd90_classical_detuned_ep1_high, 128, 204, 77, 246 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_tubular_bell, 255, 165, 90, 216 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_organ2, 51, 0, 203, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 128, 249, 25, 127 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_nylon_str_guitar, 64, 216, 51, 224 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 253, 0, 188 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_keysplit voicegroup006, KeySplitTable2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 60, 0, DirectSoundWaveData_sc88pro_flute, 255, 127, 231, 127 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1_alt 60, 0, 0, 2, 0, 2, 6, 3 + voice_square_2_alt 60, 0, 3, 0, 2, 7, 2 + voice_square_1_alt 60, 0, 0, 1, 0, 2, 6, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 diff --git a/sound/voicegroups/voicegroup190.inc b/sound/voicegroups/voicegroup190.inc index 9dc83deed2..f8dacda624 100644 --- a/sound/voicegroups/voicegroup190.inc +++ b/sound/voicegroups/voicegroup190.inc @@ -1,90 +1,90 @@ .align 2 -voicegroup190:: @ 86B429C - voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 2 @ 86B429C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B42A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B42B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B42C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B42CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B42D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B42E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B42F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B42FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4308 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4314 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4320 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B432C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4338 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4344 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4350 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B435C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4368 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4374 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4380 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B438C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4398 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B43A4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B43B0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B43BC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B43C8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B43D4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B43E0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B43EC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B43F8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4404 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4410 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B441C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4428 - voice_noise_alt 60, 0, 0, 0, 2, 7, 0 @ 86B4434 - voice_noise_alt 60, 0, 0, 0, 1, 9, 1 @ 86B4440 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_drum_and_percussion_kick, 255, 0, 255, 0 @ 86B444C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4458 - voice_directsound_no_resample 64, 52, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 @ 86B4464 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4470 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B447C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4488 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4494 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B44A0 - voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 @ 86B44AC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B44B8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B44C4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B44D0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B44DC - voice_directsound_no_resample 33, 104, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86B44E8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B44F4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4500 - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86B450C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4518 - voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 @ 86B4524 - voice_directsound_no_resample 64, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 @ 86B4530 - voice_directsound_no_resample 64, 89, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 @ 86B453C - voice_directsound_no_resample 64, 24, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86B4548 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4554 - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 @ 86B4560 - voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 @ 86B456C - voice_directsound_no_resample 64, 94, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 @ 86B4578 - voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 @ 86B4584 - voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 86B4590 - voice_directsound_no_resample 64, 90, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 @ 86B459C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B45A8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B45B4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B45C0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B45CC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B45D8 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B45E4 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B45F0 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B45FC - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4608 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4614 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4620 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B462C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4638 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4644 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4650 - voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 86B465C - voice_directsound_no_resample 64, 79, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 @ 86B4668 - voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 @ 86B4674 - voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 @ 86B4680 - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B468C - voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 @ 86B4698 - voice_directsound_no_resample 64, 104, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 @ 86B46A4 - voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 @ 86B46B0 +voicegroup190:: + voice_programmable_wave_alt 60, 0, ProgrammableWaveData_86B4830, 0, 7, 15, 2 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_noise_alt 60, 0, 0, 0, 2, 7, 0 + voice_noise_alt 60, 0, 0, 0, 1, 9, 1 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_drum_and_percussion_kick, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 52, DirectSoundWaveData_sc88pro_orchestra_snare, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 60, 64, DirectSoundWaveData_sc88pro_rnd_snare, 255, 0, 255, 242 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 33, 104, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_tambourine, 255, 127, 77, 204 + voice_directsound_no_resample 64, 14, DirectSoundWaveData_trinity_cymbal_crash, 255, 231, 0, 188 + voice_directsound_no_resample 64, 89, DirectSoundWaveData_sd90_cowbell, 255, 0, 255, 242 + voice_directsound_no_resample 64, 24, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 255, 235, 0, 231 + voice_directsound_no_resample 64, 54, DirectSoundWaveData_sc88pro_orchestra_cymbal_crash, 8, 0, 255, 216 + voice_directsound_no_resample 64, 94, DirectSoundWaveData_unused_heart_of_asia_indian_drum, 255, 0, 255, 0 + voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_mute_high_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 34, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_directsound_no_resample 64, 90, DirectSoundWaveData_sc88pro_open_low_conga, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound_no_resample 64, 79, DirectSoundWaveData_sd90_open_triangle, 255, 242, 103, 188 + voice_directsound_no_resample 64, 39, DirectSoundWaveData_sd90_open_triangle, 255, 165, 103, 188 + voice_directsound_no_resample 64, 64, DirectSoundWaveData_sc88pro_jingle_bell, 255, 0, 255, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 + voice_directsound_no_resample 64, 104, DirectSoundWaveData_ethnic_flavours_atarigane, 255, 0, 255, 0 + voice_directsound 63, 64, DirectSoundWaveData_sc88pro_taiko, 255, 0, 255, 0 diff --git a/src/apprentice.c b/src/apprentice.c index 41facf7add..e686dabbed 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -30,7 +30,7 @@ #include "constants/trainers.h" #include "constants/moves.h" -/* Summary of Apprentice, because (as of writing at least) its not very well documented online +/* Summary of Apprentice, because (as of writing at least) it's not very well documented online * * ## Basic info * In the Battle Tower lobby there is an NPC which asks to be taught by the player @@ -144,7 +144,7 @@ void ResetApprenticeStruct(struct Apprentice *apprentice) u8 i; for (i = 0; i < ARRAY_COUNT(apprentice->speechWon); i++) - apprentice->speechWon[i] = 0xFFFF; + apprentice->speechWon[i] = EC_EMPTY_WORD; apprentice->playerName[0] = EOS; apprentice->id = NUM_APPRENTICES; @@ -158,7 +158,7 @@ void ResetAllApprenticeData(void) for (i = 0; i < APPRENTICE_COUNT; i++) { for (j = 0; j < ARRAY_COUNT(gSaveBlock2Ptr->apprentices[i].speechWon); j++) - gSaveBlock2Ptr->apprentices[i].speechWon[j] = 0xFFFF; + gSaveBlock2Ptr->apprentices[i].speechWon[j] = EC_EMPTY_WORD; gSaveBlock2Ptr->apprentices[i].id = NUM_APPRENTICES; gSaveBlock2Ptr->apprentices[i].playerName[0] = EOS; gSaveBlock2Ptr->apprentices[i].lvlMode = 0; @@ -322,17 +322,12 @@ static void SetRandomQuestionData(void) FREE_AND_SET_NULL(gApprenticePartyMovesData); } -// No idea why a do-while loop is needed, but it will not match without it. +#define APPRENTICE_SPECIES_ID(monId) \ + ((monId < MULTI_PARTY_SIZE) ? (PLAYER_APPRENTICE.speciesIds[monId] >> (((PLAYER_APPRENTICE.party >> monId) & 1) << 2) & 0xF) : 0) -#define APPRENTICE_SPECIES_ID(speciesArrId, monId) speciesArrId = (PLAYER_APPRENTICE.speciesIds[monId] >> \ - (((PLAYER_APPRENTICE.party >> monId) & 1) << 2)) & 0xF; \ - do {} while (0) - -// Why the need to have two macros do the exact thing differently? -#define APPRENTICE_SPECIES_ID_2(speciesArrId, monId) { u8 a0 = ((PLAYER_APPRENTICE.party >> monId) & 1);\ - speciesArrId = PLAYER_APPRENTICE.speciesIds[monId]; \ - speciesArrId = ((speciesArrId) >> (a0 << 2)) & 0xF; \ - } +#define APPRENTICE_SPECIES_ID_NO_COND(monId, count) \ + monId = ((PLAYER_APPRENTICE.party >> count) & 1); \ + monId = ((PLAYER_APPRENTICE.speciesIds[count]) >> (monId << 2)) & 0xF; \ // Get the second move choice for the "Which move" question // Unlike the first move choice, this can be either a level up move or a TM/HM move @@ -348,15 +343,7 @@ static u16 GetRandomAlternateMove(u8 monId) bool32 shouldUseMove; u8 level; - if (monId < MULTI_PARTY_SIZE) - { - APPRENTICE_SPECIES_ID(id, monId); - } - else - { - id = 0; - } - + id = APPRENTICE_SPECIES_ID(monId); species = gApprentices[PLAYER_APPRENTICE.id].species[id]; learnset = gLevelUpLearnsets[species]; j = 0; @@ -551,7 +538,7 @@ static void SaveApprenticeParty(u8 numQuestions) // Save party species for (i = 0; i < MULTI_PARTY_SIZE; i++) { - APPRENTICE_SPECIES_ID(speciesTableId, i); + speciesTableId = APPRENTICE_SPECIES_ID(i); apprenticeMons[i]->species = gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId]; GetLatestLearnedMoves(apprenticeMons[i]->species, apprenticeMons[i]->moves); } @@ -605,7 +592,7 @@ static void CreateApprenticeMenu(u8 menu) u16 species; u32 speciesTableId; - APPRENTICE_SPECIES_ID(speciesTableId, i); + speciesTableId = APPRENTICE_SPECIES_ID(i); species = gApprentices[PLAYER_APPRENTICE.id].species[speciesTableId]; strings[i] = gSpeciesNames[species]; } @@ -923,7 +910,7 @@ static void Script_PrintApprenticeMessage(void) { ScriptContext2_Enable(); FreezeObjectEvents(); - sub_808B864(); + PlayerFreeze(); sub_808BCF4(); DrawDialogueFrame(0, 1); PrintApprenticeMessage(); @@ -1016,7 +1003,7 @@ static void InitQuestionData(void) { // count re-used as monId count = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].monId; - APPRENTICE_SPECIES_ID_2(id1, count); + APPRENTICE_SPECIES_ID_NO_COND(id1, count); gApprenticeQuestionData->speciesId = gApprentices[PLAYER_APPRENTICE.id].species[id1]; gApprenticeQuestionData->moveId1 = GetDefaultMove(count, id1, PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].moveSlot); gApprenticeQuestionData->moveId2 = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data; @@ -1030,7 +1017,7 @@ static void InitQuestionData(void) { // count re-used as monId count = PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].monId; - APPRENTICE_SPECIES_ID_2(id2, count); + APPRENTICE_SPECIES_ID_NO_COND(id2, count); gApprenticeQuestionData->speciesId = gApprentices[PLAYER_APPRENTICE.id].species[id2]; } } @@ -1083,7 +1070,7 @@ static void ApprenticeBufferString(void) StringCopy(stringDst, ItemId_GetName(PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data)); break; case APPRENTICE_BUFF_NAME: - TVShowConvertInternationalString(text, GetApprenticeNameInLanguage(PLAYER_APPRENTICE.id, LANGUAGE_ENGLISH), LANGUAGE_ENGLISH); + TVShowConvertInternationalString(text, GetApprenticeNameInLanguage(PLAYER_APPRENTICE.id, GAME_LANGUAGE), GAME_LANGUAGE); StringCopy(stringDst, text); break; case APPRENTICE_BUFF_LEVEL: @@ -1097,14 +1084,7 @@ static void ApprenticeBufferString(void) StringCopy(stringDst, gStringVar4); break; case APPRENTICE_BUFF_LEAD_MON_SPECIES: - if (PLAYER_APPRENTICE.leadMonId < MULTI_PARTY_SIZE) - { - APPRENTICE_SPECIES_ID(speciesArrayId, PLAYER_APPRENTICE.leadMonId); - } - else - { - speciesArrayId = 0; - } + speciesArrayId = APPRENTICE_SPECIES_ID(PLAYER_APPRENTICE.leadMonId); StringCopy(stringDst, gSpeciesNames[gApprentices[PLAYER_APPRENTICE.id].species[speciesArrayId]]); break; } @@ -1127,17 +1107,24 @@ static void TrySetApprenticeHeldItem(void) if (PLAYER_APPRENTICE.questionsAnswered < NUM_WHICH_MON_QUESTIONS) return; - - for (count = 0, j = 0; j < APPRENTICE_MAX_QUESTIONS && PLAYER_APPRENTICE.questions[j].questionId != QUESTION_ID_WIN_SPEECH; count++, j++) - ; - - // Make sure the item hasnt already been suggested in previous questions - for (i = 0; i < count && i < CURRENT_QUESTION_NUM; i++) + + count = 0; + for (j = 0; j < APPRENTICE_MAX_QUESTIONS; j++) { - do {} while(0); - if (PLAYER_APPRENTICE.questions[i].questionId == QUESTION_ID_WHAT_ITEM - && PLAYER_APPRENTICE.questions[i].suggestedChange - && PLAYER_APPRENTICE.questions[i].data == gSpecialVar_0x8005) + if (PLAYER_APPRENTICE.questions[j].questionId == QUESTION_ID_WIN_SPEECH) + break; + count++; + } + + // Make sure the item hasn't already been suggested in previous questions + for (i = 0; i < count; i++) + { + if (i >= CURRENT_QUESTION_NUM) + break; + if (PLAYER_APPRENTICE.questions[i].questionId != QUESTION_ID_WHAT_ITEM || + PLAYER_APPRENTICE.questions[i].suggestedChange == 0) + continue; + if (PLAYER_APPRENTICE.questions[i].data == gSpecialVar_0x8005) { PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].suggestedChange = FALSE; PLAYER_APPRENTICE.questions[CURRENT_QUESTION_NUM].data = gSpecialVar_0x8005; diff --git a/src/bard_music.c b/src/bard_music.c index 6c2578071b..114f1cf42f 100644 --- a/src/bard_music.c +++ b/src/bard_music.c @@ -1,5 +1,3 @@ - -// Includes #include "global.h" #include "bard_music.h" #include "constants/easy_chat.h" @@ -10,9 +8,9 @@ #include "data/bard_music/default_sound.h" #include "data/bard_music/length_table.h" -s16 CalcWordPitch(int arg0, int songPos) +static s16 CalcWordPitch(int arg0, int songPos) { - return gBardSoundPitchTables[arg0][songPos]; + return sBardSoundPitchTables[arg0][songPos]; } const struct BardSound *GetWordSounds(u16 word) @@ -21,16 +19,16 @@ const struct BardSound *GetWordSounds(u16 word) u32 subword; const struct BardSound (*ptr)[6]; - if (ECWord_CheckIfOutsideOfValidRange(word)) + if (IsBardWordInvalid(word)) { return gBardSound_InvalidWord; } - category = word >> 9; - subword = word & 0x1ff; + category = EC_GROUP(word); + subword = EC_INDEX(word); switch (category) { case EC_GROUP_POKEMON: - case EC_GROUP_POKEMON_2: + case EC_GROUP_POKEMON_NATIONAL: ptr = gBardSounds_Pokemon; break; case EC_GROUP_MOVE_1: diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c new file mode 100644 index 0000000000..07f5e68fce --- /dev/null +++ b/src/battle_ai_main.c @@ -0,0 +1,4975 @@ +#include "global.h" +#include "malloc.h" +#include "battle.h" +#include "battle_anim.h" +#include "battle_ai_util.h" +#include "battle_ai_main.h" +#include "battle_factory.h" +#include "battle_setup.h" +#include "data.h" +#include "item.h" +#include "pokemon.h" +#include "random.h" +#include "recorded_battle.h" +#include "util.h" +#include "constants/abilities.h" +#include "constants/battle_ai.h" +#include "constants/battle_move_effects.h" +#include "constants/hold_effects.h" +#include "constants/moves.h" +#include "constants/items.h" + +#define AI_ACTION_DONE 0x0001 +#define AI_ACTION_FLEE 0x0002 +#define AI_ACTION_WATCH 0x0004 +#define AI_ACTION_DO_NOT_ATTACK 0x0008 +#define AI_ACTION_UNK5 0x0010 +#define AI_ACTION_UNK6 0x0020 +#define AI_ACTION_UNK7 0x0040 +#define AI_ACTION_UNK8 0x0080 + +// AI states +enum +{ + AIState_SettingUp, + AIState_Processing, + AIState_FinishedProcessing, + AIState_DoNotProcess +}; + +static u8 ChooseMoveOrAction_Singles(void); +static u8 ChooseMoveOrAction_Doubles(void); +static void BattleAI_DoAIProcessing(void); + +// ewram +EWRAM_DATA const u8 *gAIScriptPtr = NULL; // Still used in contests +EWRAM_DATA u8 sBattler_AI = 0; + +// const rom data +static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_TryToFaint(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_SetupFirstTurn(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_Risky(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_PreferStrongestMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_PreferBatonPass(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_HPAware(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_Roaming(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_Safari(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_FirstBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); +static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score); + +static s16 (*const sBattleAiFuncTable[])(u8, u8, u16, s16) = +{ + [0] = AI_CheckBadMove, // AI_FLAG_CHECK_BAD_MOVE + [1] = AI_TryToFaint, // AI_FLAG_TRY_TO_FAINT + [2] = AI_CheckViability, // AI_FLAG_CHECK_VIABILITY + [3] = AI_SetupFirstTurn, // AI_FLAG_SETUP_FIRST_TURN + [4] = AI_Risky, // AI_FLAG_RISKY + [5] = AI_PreferStrongestMove, // AI_FLAG_PREFER_STRONGEST_MOVE + [6] = AI_PreferBatonPass, // AI_FLAG_PREFER_BATON_PASS + [7] = AI_DoubleBattle, // AI_FLAG_DOUBLE_BATTLE + [8] = AI_HPAware, // AI_FLAG_HP_AWARE + [9] = NULL, // AI_FLAG_NEGATE_UNAWARE + [10] = NULL, // AI_FLAG_WILL_SUICIDE + [11] = NULL, // AI_FLAG_HELP_PARTNER + [12] = NULL, // Unused + [13] = NULL, // Unused + [14] = NULL, // Unused + [15] = NULL, // Unused + [16] = NULL, // Unused + [17] = NULL, // Unused + [18] = NULL, // Unused + [19] = NULL, // Unused + [20] = NULL, // Unused + [21] = NULL, // Unused + [22] = NULL, // Unused + [23] = NULL, // Unused + [24] = NULL, // Unused + [25] = NULL, // Unused + [26] = NULL, // Unused + [27] = NULL, // Unused + [28] = NULL, // Unused + [29] = AI_Roaming, // AI_FLAG_ROAMING + [30] = AI_Safari, // AI_FLAG_SAFARI + [31] = AI_FirstBattle, // AI_FLAG_FIRST_BATTLE +}; + +// Functions +void BattleAI_SetupItems(void) +{ + s32 i; + u8 *data = (u8 *)BATTLE_HISTORY; + + for (i = 0; i < sizeof(struct BattleHistory); i++) + data[i] = 0; + + // Items are allowed to use in ONLY trainer battles. + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) + && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER + | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_RECORDED_LINK) + ) + ) + { + for (i = 0; i < MAX_TRAINER_ITEMS; i++) + { + if (gTrainers[gTrainerBattleOpponent_A].items[i] != 0) + { + BATTLE_HISTORY->trainerItems[BATTLE_HISTORY->itemsNo] = gTrainers[gTrainerBattleOpponent_A].items[i]; + BATTLE_HISTORY->itemsNo++; + } + } + } +} + +void BattleAI_SetupFlags(void) +{ + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + AI_THINKING_STRUCT->aiFlags = GetAiScriptsInRecordedBattle(); + else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + AI_THINKING_STRUCT->aiFlags = AI_FLAG_SAFARI; + else if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) + AI_THINKING_STRUCT->aiFlags = AI_FLAG_ROAMING; + else if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) + AI_THINKING_STRUCT->aiFlags = AI_FLAG_FIRST_BATTLE; + else if (gBattleTypeFlags & BATTLE_TYPE_FACTORY) + AI_THINKING_STRUCT->aiFlags = GetAiScriptsInBattleFactory(); + else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_SECRET_BASE)) + AI_THINKING_STRUCT->aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT; + else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags | gTrainers[gTrainerBattleOpponent_B].aiFlags; + else + AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags; + + if (gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_TWO_OPPONENTS) || gTrainers[gTrainerBattleOpponent_A].doubleBattle) + AI_THINKING_STRUCT->aiFlags |= AI_FLAG_DOUBLE_BATTLE; // Act smart in doubles and don't attack your partner. +} + +void BattleAI_SetupAIData(u8 defaultScoreMoves) +{ + s32 i, move, dmg; + u8 moveLimitations; + + // Clear AI data but preserve the flags. + u32 flags = AI_THINKING_STRUCT->aiFlags; + memset(AI_THINKING_STRUCT, 0, sizeof(struct AI_ThinkingStruct)); + AI_THINKING_STRUCT->aiFlags = flags; + + // Conditional score reset, unlike Ruby. + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (defaultScoreMoves & 1) + AI_THINKING_STRUCT->score[i] = 100; + else + AI_THINKING_STRUCT->score[i] = 0; + + defaultScoreMoves >>= 1; + } + + moveLimitations = CheckMoveLimitations(gActiveBattler, 0, 0xFF); + + // Ignore moves that aren't possible to use. + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (gBitTable[i] & moveLimitations) + AI_THINKING_STRUCT->score[i] = 0; + } + + sBattler_AI = gActiveBattler; + // Simulate dmg for all AI moves against all opposing targets + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) + { + if (GET_BATTLER_SIDE2(sBattler_AI) == GET_BATTLER_SIDE2(gBattlerTarget)) + continue; + for (i = 0; i < MAX_MON_MOVES; i++) + { + dmg = 0; + move = gBattleMons[sBattler_AI].moves[i]; + if (gBattleMoves[move].power != 0 && !(moveLimitations & gBitTable[i])) + { + dmg = AI_CalcDamage(move, sBattler_AI, gBattlerTarget); + if (dmg == 0) + dmg = 1; + } + + AI_THINKING_STRUCT->simulatedDmg[sBattler_AI][gBattlerTarget][i] = dmg; + } + } + + gBattlerTarget = SetRandomTarget(sBattler_AI); +} + +u8 BattleAI_ChooseMoveOrAction(void) +{ + u32 savedCurrentMove = gCurrentMove; + u8 ret; + + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + ret = ChooseMoveOrAction_Singles(); + else + ret = ChooseMoveOrAction_Doubles(); + + gCurrentMove = savedCurrentMove; + return ret; +} + +static void GetAiLogicData(u8 battlerAtk, u8 battlerDef) +{ + // attacker data + AI_DATA->atkAbility = AI_GetAbility(battlerAtk); + AI_DATA->atkItem = gBattleMons[battlerAtk].item; + AI_DATA->atkHoldEffect = AI_GetHoldEffect(battlerAtk); + AI_DATA->atkParam = GetBattlerHoldEffectParam(battlerAtk); + AI_DATA->atkSpecies = gBattleMons[battlerAtk].species; + // target data + AI_DATA->defAbility = AI_GetAbility(battlerDef); + AI_DATA->defItem = (AI_GetHoldEffect(battlerDef) == HOLD_EFFECT_NONE) ? ITEM_NONE : gBattleMons[battlerDef].item; + AI_DATA->defHoldEffect = AI_GetHoldEffect(battlerDef); + AI_DATA->defParam = GetBattlerHoldEffectParam(battlerDef); + AI_DATA->defSpecies = gBattleMons[battlerDef].species; + // attacker partner data + AI_DATA->battlerAtkPartner = BATTLE_PARTNER(battlerAtk); + AI_DATA->partnerMove = GetAllyChosenMove(); + AI_DATA->atkPartnerAbility = AI_GetAbility(AI_DATA->battlerAtkPartner); + AI_DATA->atkPartnerHoldEffect = AI_GetHoldEffect(AI_DATA->battlerAtkPartner); + // target partner data + AI_DATA->battlerDefPartner = BATTLE_PARTNER(battlerDef); + AI_DATA->defPartnerAbility = AI_GetAbility(AI_DATA->battlerDefPartner); + AI_DATA->defPartnerHoldEffect = AI_GetHoldEffect(AI_DATA->battlerDefPartner); +} + +static u8 ChooseMoveOrAction_Singles(void) +{ + u8 currentMoveArray[MAX_MON_MOVES]; + u8 consideredMoveArray[MAX_MON_MOVES]; + u32 numOfBestMoves; + s32 i, id; + u32 flags = AI_THINKING_STRUCT->aiFlags; + + RecordLastUsedMoveByTarget(); + GetAiLogicData(sBattler_AI, gBattlerTarget); + + while (flags != 0) + { + if (flags & 1) + { + AI_THINKING_STRUCT->aiState = AIState_SettingUp; + BattleAI_DoAIProcessing(); + } + flags >>= 1; + AI_THINKING_STRUCT->aiLogicId++; + AI_THINKING_STRUCT->movesetIndex = 0; + } + + for (i = 0; i < MAX_MON_MOVES; i++) + gBattleStruct->aiFinalScore[sBattler_AI][gBattlerTarget][i] = AI_THINKING_STRUCT->score[i]; + + // Check special AI actions. + if (AI_THINKING_STRUCT->aiAction & AI_ACTION_FLEE) + return AI_CHOICE_FLEE; + if (AI_THINKING_STRUCT->aiAction & AI_ACTION_WATCH) + return AI_CHOICE_WATCH; + + gActiveBattler = sBattler_AI; + // If can switch. + if (CountUsablePartyMons(sBattler_AI) > 0 + && !IsAbilityPreventingEscape(sBattler_AI) + && !(gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + && !(gStatuses3[gActiveBattler] & STATUS3_ROOTED) + && !(gBattleTypeFlags & (BATTLE_TYPE_ARENA | BATTLE_TYPE_PALACE)) + && AI_THINKING_STRUCT->aiFlags & (AI_FLAG_CHECK_VIABILITY | AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_PREFER_BATON_PASS)) + { + // Consider switching if all moves are worthless to use. + if (GetTotalBaseStat(gBattleMons[sBattler_AI].species) >= 310 // Mon is not weak. + && gBattleMons[sBattler_AI].hp >= gBattleMons[sBattler_AI].maxHP / 2) + { + s32 cap = AI_THINKING_STRUCT->aiFlags & (AI_FLAG_CHECK_VIABILITY) ? 95 : 93; + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (AI_THINKING_STRUCT->score[i] > cap) + break; + } + + if (i == MAX_MON_MOVES && GetMostSuitableMonToSwitchInto() != PARTY_SIZE) + { + AI_THINKING_STRUCT->switchMon = TRUE; + return AI_CHOICE_SWITCH; + } + } + + // Consider switching if your mon with truant is bodied by Protect spam. + // Or is using a double turn semi invulnerable move(such as Fly) and is faster. + if (GetBattlerAbility(sBattler_AI) == ABILITY_TRUANT + && IsTruantMonVulnerable(sBattler_AI, gBattlerTarget) + && gDisableStructs[sBattler_AI].truantCounter + && gBattleMons[sBattler_AI].hp >= gBattleMons[sBattler_AI].maxHP / 2) + { + if (GetMostSuitableMonToSwitchInto() != PARTY_SIZE) + { + AI_THINKING_STRUCT->switchMon = TRUE; + return AI_CHOICE_SWITCH; + } + } + } + + numOfBestMoves = 1; + currentMoveArray[0] = AI_THINKING_STRUCT->score[0]; + consideredMoveArray[0] = 0; + + for (i = 1; i < MAX_MON_MOVES; i++) + { + if (gBattleMons[sBattler_AI].moves[i] != MOVE_NONE) + { + // In ruby, the order of these if statements is reversed. + if (currentMoveArray[0] == AI_THINKING_STRUCT->score[i]) + { + currentMoveArray[numOfBestMoves] = AI_THINKING_STRUCT->score[i]; + consideredMoveArray[numOfBestMoves++] = i; + } + if (currentMoveArray[0] < AI_THINKING_STRUCT->score[i]) + { + numOfBestMoves = 1; + currentMoveArray[0] = AI_THINKING_STRUCT->score[i]; + consideredMoveArray[0] = i; + } + } + } + return consideredMoveArray[Random() % numOfBestMoves]; +} + +static u8 ChooseMoveOrAction_Doubles(void) +{ + s32 i, j; + u32 flags; + s16 bestMovePointsForTarget[MAX_BATTLERS_COUNT]; + s8 mostViableTargetsArray[MAX_BATTLERS_COUNT]; + u8 actionOrMoveIndex[MAX_BATTLERS_COUNT]; + u8 mostViableMovesScores[MAX_MON_MOVES]; + u8 mostViableMovesIndices[MAX_MON_MOVES]; + s32 mostViableTargetsNo; + s32 mostViableMovesNo; + s16 mostMovePoints; + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + { + if (i == sBattler_AI || gBattleMons[i].hp == 0) + { + actionOrMoveIndex[i] = 0xFF; + bestMovePointsForTarget[i] = -1; + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + BattleAI_SetupAIData(gBattleStruct->palaceFlags >> 4); + else + BattleAI_SetupAIData(0xF); + + gBattlerTarget = i; + GetAiLogicData(sBattler_AI, gBattlerTarget); + + if ((i & BIT_SIDE) != (sBattler_AI & BIT_SIDE)) + RecordLastUsedMoveByTarget(); + + AI_THINKING_STRUCT->aiLogicId = 0; + AI_THINKING_STRUCT->movesetIndex = 0; + flags = AI_THINKING_STRUCT->aiFlags; + while (flags != 0) + { + if (flags & 1) + { + AI_THINKING_STRUCT->aiState = AIState_SettingUp; + BattleAI_DoAIProcessing(); + } + flags >>= 1; + AI_THINKING_STRUCT->aiLogicId++; + AI_THINKING_STRUCT->movesetIndex = 0; + } + + if (AI_THINKING_STRUCT->aiAction & AI_ACTION_FLEE) + { + actionOrMoveIndex[i] = AI_CHOICE_FLEE; + } + else if (AI_THINKING_STRUCT->aiAction & AI_ACTION_WATCH) + { + actionOrMoveIndex[i] = AI_CHOICE_WATCH; + } + else + { + mostViableMovesScores[0] = AI_THINKING_STRUCT->score[0]; + mostViableMovesIndices[0] = 0; + mostViableMovesNo = 1; + for (j = 1; j < MAX_MON_MOVES; j++) + { + if (gBattleMons[sBattler_AI].moves[j] != 0) + { + if (mostViableMovesScores[0] == AI_THINKING_STRUCT->score[j]) + { + mostViableMovesScores[mostViableMovesNo] = AI_THINKING_STRUCT->score[j]; + mostViableMovesIndices[mostViableMovesNo] = j; + mostViableMovesNo++; + } + if (mostViableMovesScores[0] < AI_THINKING_STRUCT->score[j]) + { + mostViableMovesScores[0] = AI_THINKING_STRUCT->score[j]; + mostViableMovesIndices[0] = j; + mostViableMovesNo = 1; + } + } + } + actionOrMoveIndex[i] = mostViableMovesIndices[Random() % mostViableMovesNo]; + bestMovePointsForTarget[i] = mostViableMovesScores[0]; + + // Don't use a move against ally if it has less than 100 points. + if (i == (sBattler_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100) + { + bestMovePointsForTarget[i] = -1; + mostViableMovesScores[0] = mostViableMovesScores[0]; // Needed to match. + } + } + + for (j = 0; j < MAX_MON_MOVES; j++) + gBattleStruct->aiFinalScore[sBattler_AI][gBattlerTarget][j] = AI_THINKING_STRUCT->score[j]; + } + } + + mostMovePoints = bestMovePointsForTarget[0]; + mostViableTargetsArray[0] = 0; + mostViableTargetsNo = 1; + + for (i = 1; i < MAX_BATTLERS_COUNT; i++) + { + if (mostMovePoints == bestMovePointsForTarget[i]) + { + mostViableTargetsArray[mostViableTargetsNo] = i; + mostViableTargetsNo++; + } + if (mostMovePoints < bestMovePointsForTarget[i]) + { + mostMovePoints = bestMovePointsForTarget[i]; + mostViableTargetsArray[0] = i; + mostViableTargetsNo = 1; + } + } + + gBattlerTarget = mostViableTargetsArray[Random() % mostViableTargetsNo]; + return actionOrMoveIndex[gBattlerTarget]; +} + +static void BattleAI_DoAIProcessing(void) +{ + while (AI_THINKING_STRUCT->aiState != AIState_FinishedProcessing) + { + switch (AI_THINKING_STRUCT->aiState) + { + case AIState_DoNotProcess: // Needed to match. + break; + case AIState_SettingUp: + if (gBattleMons[sBattler_AI].pp[AI_THINKING_STRUCT->movesetIndex] == 0) + { + AI_THINKING_STRUCT->moveConsidered = 0; + } + else + { + AI_THINKING_STRUCT->moveConsidered = gBattleMons[sBattler_AI].moves[AI_THINKING_STRUCT->movesetIndex]; + } + AI_THINKING_STRUCT->aiState++; + break; + case AIState_Processing: + if (AI_THINKING_STRUCT->moveConsidered != MOVE_NONE + && AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] > 0) + { + if (AI_THINKING_STRUCT->aiLogicId < ARRAY_COUNT(sBattleAiFuncTable) + && sBattleAiFuncTable[AI_THINKING_STRUCT->aiLogicId] != NULL) + { + // Call AI function + AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = + sBattleAiFuncTable[AI_THINKING_STRUCT->aiLogicId](sBattler_AI, + gBattlerTarget, + AI_THINKING_STRUCT->moveConsidered, + AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex]); + } + } + else + { + AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; + } + + AI_THINKING_STRUCT->movesetIndex++; + if (AI_THINKING_STRUCT->movesetIndex < MAX_MON_MOVES && !(AI_THINKING_STRUCT->aiAction & AI_ACTION_DO_NOT_ATTACK)) + AI_THINKING_STRUCT->aiState = AIState_SettingUp; + else + AI_THINKING_STRUCT->aiState++; + break; + } + } +} + +// AI Score Functions +// AI_FLAG_CHECK_BAD_MOVE - decreases move scores +static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + // move data + u8 atkPriority = GetMovePriority(battlerAtk, move); + u16 moveEffect = gBattleMoves[move].effect; + u8 moveType = gBattleMoves[move].type; + u8 moveTarget = gBattleMoves[move].target; + u16 accuracy = AI_GetMoveAccuracy(battlerAtk, battlerDef, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect, move); + u8 effectiveness = AI_GetMoveEffectiveness(move, battlerAtk, battlerDef); + bool32 isDoubleBattle = IsValidDoubleBattle(battlerAtk); + u32 i; + u16 predictedMove = gLastMoves[battlerDef]; // TODO better move prediction + + if (IsTargetingPartner(battlerAtk, battlerDef)) + return score; + + // check non-user target + if (!(gBattleMoves[move].target & MOVE_TARGET_USER)) + { + // handle negative checks on non-user target + // check powder moves + if (TestMoveFlags(move, FLAG_POWDER) && !IsAffectedByPowder(battlerDef, AI_DATA->defAbility, AI_DATA->defHoldEffect)) + { + RETURN_SCORE_MINUS(20); + } + + // check ground immunities + if (moveType == TYPE_GROUND + && !IsBattlerGrounded(battlerDef) + && ((AI_DATA->defAbility == ABILITY_LEVITATE + && DoesBattlerIgnoreAbilityChecks(AI_DATA->atkAbility, move)) + || AI_DATA->defHoldEffect == HOLD_EFFECT_AIR_BALLOON + || (gStatuses3[battlerDef] & (STATUS3_MAGNET_RISE | STATUS3_TELEKINESIS))) + && move != MOVE_THOUSAND_ARROWS) + { + RETURN_SCORE_MINUS(20); + } + + // check off screen + if (IsSemiInvulnerable(battlerDef, move) && moveEffect != EFFECT_SEMI_INVULNERABLE && GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) != 1) + RETURN_SCORE_MINUS(20); // if target off screen and we go first, don't use move + + // check if negates type + switch (effectiveness) + { + case AI_EFFECTIVENESS_x0: + RETURN_SCORE_MINUS(20); + break; + case AI_EFFECTIVENESS_x0_25: + RETURN_SCORE_MINUS(10); + break; + } + + // target ability checks + if (!DoesBattlerIgnoreAbilityChecks(AI_DATA->atkAbility, move)) + { + switch (AI_DATA->defAbility) + { + case ABILITY_VOLT_ABSORB: + case ABILITY_MOTOR_DRIVE: + case ABILITY_LIGHTNING_ROD: + if (moveType == TYPE_ELECTRIC) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_WATER_ABSORB: + case ABILITY_DRY_SKIN: + case ABILITY_STORM_DRAIN: + if (moveType == TYPE_WATER) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_FLASH_FIRE: + if (moveType == TYPE_FIRE) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_WONDER_GUARD: + if (effectiveness != AI_EFFECTIVENESS_x2 && effectiveness != AI_EFFECTIVENESS_x4) + return 0; + break; + case ABILITY_SAP_SIPPER: + if (moveType == TYPE_GRASS) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_JUSTIFIED: + if (moveType == TYPE_DARK && !IS_MOVE_STATUS(move)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_RATTLED: + if (!IS_MOVE_STATUS(move) + && (moveType == TYPE_DARK || moveType == TYPE_GHOST || moveType == TYPE_BUG)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_SOUNDPROOF: + if (TestMoveFlags(move, FLAG_SOUND)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_BULLETPROOF: + if (TestMoveFlags(move, FLAG_BALLISTIC)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_DAZZLING: + case ABILITY_QUEENLY_MAJESTY: + if (atkPriority > 0) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_AROMA_VEIL: + if (IsAromaVeilProtectedMove(move)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_SWEET_VEIL: + if (moveEffect == EFFECT_SLEEP || moveEffect == EFFECT_YAWN) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_FLOWER_VEIL: + if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) && (IsNonVolatileStatusMoveEffect(moveEffect) || IsStatLoweringMoveEffect(moveEffect))) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_MAGIC_BOUNCE: + if (TestMoveFlags(move, FLAG_MAGIC_COAT_AFFECTED)) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_CONTRARY: + if (IsStatLoweringMoveEffect(moveEffect)) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_CLEAR_BODY: + case ABILITY_FULL_METAL_BODY: + case ABILITY_WHITE_SMOKE: + if (IsStatLoweringMoveEffect(moveEffect)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_HYPER_CUTTER: + if ((moveEffect == EFFECT_ATTACK_DOWN || moveEffect == EFFECT_ATTACK_DOWN_2) + && move != MOVE_PLAY_NICE && move != MOVE_NOBLE_ROAR && move != MOVE_TEARFUL_LOOK && move != MOVE_VENOM_DRENCH) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_KEEN_EYE: + if (moveEffect == EFFECT_ACCURACY_DOWN || moveEffect == EFFECT_ACCURACY_DOWN_2) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_BIG_PECKS: + if (moveEffect == EFFECT_DEFENSE_DOWN || moveEffect == EFFECT_DEFENSE_DOWN_2) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_DEFIANT: + case ABILITY_COMPETITIVE: + if (IsStatLoweringMoveEffect(moveEffect) && !IsTargetingPartner(battlerAtk, battlerDef)) + RETURN_SCORE_MINUS(8); + break; + case ABILITY_COMATOSE: + if (IsNonVolatileStatusMoveEffect(moveEffect)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_SHIELDS_DOWN: + if (IsShieldsDownProtected(battlerAtk) && IsNonVolatileStatusMoveEffect(moveEffect)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_WONDER_SKIN: + if (IS_MOVE_STATUS(move)) + accuracy = 50; + break; + case ABILITY_LEAF_GUARD: + if (AI_WeatherHasEffect() && (gBattleWeather & WEATHER_SUN_ANY) + && AI_DATA->defHoldEffect != HOLD_EFFECT_UTILITY_UMBRELLA + && IsNonVolatileStatusMoveEffect(moveEffect)) + RETURN_SCORE_MINUS(10); + break; + } // def ability checks + + // target partner ability checks & not attacking partner + if (isDoubleBattle) + { + switch (AI_DATA->defPartnerAbility) + { + case ABILITY_LIGHTNING_ROD: + if (moveType == TYPE_ELECTRIC && !IsMoveRedirectionPrevented(move, AI_DATA->atkAbility)) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_STORM_DRAIN: + if (moveType == TYPE_WATER && !IsMoveRedirectionPrevented(move, AI_DATA->atkAbility)) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_MAGIC_BOUNCE: + if (TestMoveFlags(move, FLAG_MAGIC_COAT_AFFECTED) && moveTarget & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY | MOVE_TARGET_OPPONENTS_FIELD)) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_SWEET_VEIL: + if (moveEffect == EFFECT_SLEEP || moveEffect == EFFECT_YAWN) + RETURN_SCORE_MINUS(20); + break; + case ABILITY_FLOWER_VEIL: + if ((IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS)) && (IsNonVolatileStatusMoveEffect(moveEffect) || IsStatLoweringMoveEffect(moveEffect))) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_AROMA_VEIL: + if (IsAromaVeilProtectedMove(move)) + RETURN_SCORE_MINUS(10); + break; + case ABILITY_DAZZLING: + case ABILITY_QUEENLY_MAJESTY: + if (atkPriority > 0) + RETURN_SCORE_MINUS(10); + break; + } + } // def partner ability checks + } // ignore def ability check + + // gen7+ dark type mons immune to priority->elevated moves from prankster + #if B_PRANKSTER >= GEN_7 + if (AI_DATA->atkAbility == ABILITY_PRANKSTER && IS_BATTLER_OF_TYPE(battlerDef, TYPE_DARK) && IS_MOVE_STATUS(move) + && !(moveTarget & (MOVE_TARGET_OPPONENTS_FIELD | MOVE_TARGET_USER))) + RETURN_SCORE_MINUS(10); + #endif + + // terrain & effect checks + if (AI_IsTerrainAffected(battlerDef, STATUS_FIELD_ELECTRIC_TERRAIN)) + { + if (moveEffect == EFFECT_SLEEP || moveEffect == EFFECT_YAWN) + RETURN_SCORE_MINUS(20); + } + + if (AI_IsTerrainAffected(battlerDef, STATUS_FIELD_MISTY_TERRAIN)) + { + if (IsNonVolatileStatusMoveEffect(moveEffect) || IsConfusionMoveEffect(moveEffect)) + RETURN_SCORE_MINUS(20); + } + + if (AI_IsTerrainAffected(battlerAtk, STATUS_FIELD_PSYCHIC_TERRAIN) && atkPriority > 0) + { + RETURN_SCORE_MINUS(20); + } + } // end check MOVE_TARGET_USER + +// the following checks apply to any target (including user) + + // throat chop check + if (gDisableStructs[battlerAtk].throatChopTimer && TestMoveFlags(move, FLAG_SOUND)) + return 0; // Can't even select move at all + // heal block check + if (gStatuses3[battlerAtk] & STATUS3_HEAL_BLOCK && IsHealBlockPreventingMove(battlerAtk, move)) + return 0; // Can't even select heal blocked move + // primal weather check + //TODO + + // check move effects + switch (moveEffect) + { + case EFFECT_HIT: + default: + break; // check move damage + case EFFECT_SLEEP: + if (!AI_CanPutToSleep(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_EXPLOSION: + if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_WILL_SUICIDE)) + score -= 2; + + if (effectiveness == AI_EFFECTIVENESS_x0) + { + score -= 10; + } + else if (IsAbilityOnField(ABILITY_DAMP) && !DoesBattlerIgnoreAbilityChecks(AI_DATA->atkAbility, move)) + { + score -= 10; + } + else if (CountUsablePartyMons(battlerAtk) == 0) + { + if (CountUsablePartyMons(battlerDef) != 0) + score -= 10; + else + score--; + } + break; + case EFFECT_DREAM_EATER: + if (!(gBattleMons[battlerDef].status1 & STATUS1_SLEEP) || AI_DATA->defAbility == ABILITY_COMATOSE) + score -= 8; + else if (effectiveness == AI_EFFECTIVENESS_x0) + score -= 10; + break; + // stat raising effects + case EFFECT_ATTACK_UP: + case EFFECT_ATTACK_UP_2: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + break; + case EFFECT_DEFENSE_UP_2: + if (move == MOVE_STUFF_CHEEKS && ItemId_GetPocket(gBattleMons[battlerAtk].item) != POCKET_BERRIES) + score -= 10; + //fallthrough + case EFFECT_DEFENSE_UP: + case EFFECT_DEFENSE_UP_3: + case EFFECT_DEFENSE_CURL: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_DEF)) + score -= 10; + break; + case EFFECT_SPEED_UP: + case EFFECT_SPEED_UP_2: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPEED)) + score -= 10; + break; + case EFFECT_SPECIAL_ATTACK_UP: + case EFFECT_SPECIAL_ATTACK_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_3: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + score -= 10; + break; + case EFFECT_SPECIAL_DEFENSE_UP: + case EFFECT_SPECIAL_DEFENSE_UP_2: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPDEF)) + score -= 10; + break; + case EFFECT_ACCURACY_UP: + case EFFECT_ACCURACY_UP_2: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ACC)) + score -= 10; + break; + case EFFECT_EVASION_UP: + case EFFECT_EVASION_UP_2: + case EFFECT_MINIMIZE: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_EVASION)) + score -= 10; + break; + case EFFECT_COSMIC_POWER: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_DEF)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPDEF)) + score -= 8; + break; + case EFFECT_BULK_UP: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_DEF)) + score -= 8; + break; + case EFFECT_CALM_MIND: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPATK)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPDEF)) + score -= 8; + break; + case EFFECT_DRAGON_DANCE: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPEED)) + score -= 8; + break; + case EFFECT_COIL: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ACC)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 8; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_DEF)) + score -= 6; + break; + case EFFECT_ATTACK_ACCURACY_UP: //hone claws + if (AI_DATA->atkAbility != ABILITY_CONTRARY) + { + if (gBattleMons[battlerAtk].statStages[STAT_ATK] >= MAX_STAT_STAGE + && (gBattleMons[battlerAtk].statStages[STAT_ACC] >= MAX_STAT_STAGE || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL))) + score -= 10; + break; + } + else + { + score -= 10; + } + break; + case EFFECT_CHARGE: + if (gStatuses3[battlerAtk] & STATUS3_CHARGED_UP) + score -= 20; + else if (!HasMoveWithType(battlerAtk, TYPE_ELECTRIC)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPDEF)) + score -= 5; + break; + case EFFECT_QUIVER_DANCE: + case EFFECT_GEOMANCY: + if (gBattleMons[battlerAtk].statStages[STAT_SPATK] >= MAX_STAT_STAGE || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPEED)) + score -= 8; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPDEF)) + score -= 6; + break; + case EFFECT_SHIFT_GEAR: + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPEED)) + score -= 8; + break; + case EFFECT_SHELL_SMASH: + if (AI_DATA->atkAbility == ABILITY_CONTRARY) + { + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_DEF)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPDEF)) + score -= 8; + } + else + { + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + score -= 8; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPEED)) + score -= 6; + } + break; + case EFFECT_GROWTH: + case EFFECT_ATTACK_SPATK_UP: // work up + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + score -= 8; + break; + case EFFECT_ROTOTILLER: + if (isDoubleBattle) + { + if (!(IS_BATTLER_OF_TYPE(battlerAtk, TYPE_GRASS) + && AI_IsBattlerGrounded(battlerAtk) + && (BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPATK))) + && !(IS_BATTLER_OF_TYPE(AI_DATA->battlerAtkPartner, TYPE_GRASS) + && AI_IsBattlerGrounded(AI_DATA->battlerAtkPartner) + && AI_DATA->atkPartnerAbility != ABILITY_CONTRARY + && (BattlerStatCanRise(AI_DATA->battlerAtkPartner, AI_DATA->atkPartnerAbility, STAT_ATK) + || BattlerStatCanRise(AI_DATA->battlerAtkPartner, AI_DATA->atkPartnerAbility, STAT_SPATK)))) + { + score -= 10; + } + } + else if (!(IS_BATTLER_OF_TYPE(battlerAtk, TYPE_GRASS) + && AI_IsBattlerGrounded(battlerAtk) + && (BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPATK)))) + { + score -= 10; + } + break; + case EFFECT_GEAR_UP: + if (AI_DATA->atkAbility == ABILITY_PLUS || AI_DATA->atkAbility == ABILITY_MINUS) + { + // same as growth, work up + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + score -= 8; + break; + } + else if (!isDoubleBattle) + { + score -= 10; // no partner and our stats wont rise, so don't use + } + + if (isDoubleBattle) + { + if (AI_DATA->atkPartnerAbility == ABILITY_PLUS || AI_DATA->atkPartnerAbility == ABILITY_MINUS) + { + if ((!BattlerStatCanRise(AI_DATA->battlerAtkPartner, AI_DATA->atkPartnerAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + && (!BattlerStatCanRise(AI_DATA->battlerAtkPartner, AI_DATA->atkPartnerAbility, STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL))) + score -= 10; + } + else if (AI_DATA->atkAbility != ABILITY_PLUS && AI_DATA->atkAbility != ABILITY_MINUS) + { + score -= 10; // nor our or our partner's ability is plus/minus + } + } + break; + case EFFECT_ACUPRESSURE: + if (DoesSubstituteBlockMove(battlerAtk, battlerDef, move) || AreBattlersStatsMaxed(battlerDef)) + score -= 10; + break; + case EFFECT_MAGNETIC_FLUX: + if (AI_DATA->atkAbility == ABILITY_PLUS || AI_DATA->atkAbility == ABILITY_MINUS) + { + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_DEF)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_SPDEF)) + score -= 8; + } + else if (!isDoubleBattle) + { + score -= 10; // our stats wont rise from this move + } + + if (isDoubleBattle) + { + if (AI_DATA->atkPartnerAbility == ABILITY_PLUS || AI_DATA->atkPartnerAbility == ABILITY_MINUS) + { + if (!BattlerStatCanRise(AI_DATA->battlerAtkPartner, AI_DATA->atkPartnerAbility, STAT_DEF)) + score -= 10; + else if (!BattlerStatCanRise(AI_DATA->battlerAtkPartner, AI_DATA->atkPartnerAbility, STAT_SPDEF)) + score -= 8; + } + else if (AI_DATA->atkAbility != ABILITY_PLUS && AI_DATA->atkAbility != ABILITY_MINUS) + { + score -= 10; // nor our or our partner's ability is plus/minus + } + } + break; + // stat lowering effects + case EFFECT_ATTACK_DOWN: + case EFFECT_ATTACK_DOWN_2: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_ATK)) //|| !HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)) + score -= 10; + else if (AI_DATA->defAbility == ABILITY_HYPER_CUTTER) + score -= 10; + break; + case EFFECT_DEFENSE_DOWN: + case EFFECT_DEFENSE_DOWN_2: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_DEF)) + score -= 10; + break; + case EFFECT_SPEED_DOWN: + case EFFECT_SPEED_DOWN_2: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_SPEED)) + score -= 10; + else if (AI_DATA->defAbility == ABILITY_SPEED_BOOST) + score -= 10; + break; + case EFFECT_SPECIAL_ATTACK_DOWN: + case EFFECT_SPECIAL_ATTACK_DOWN_2: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_SPATK)) //|| !HasMoveWithSplit(battlerDef, SPLIT_SPECIAL)) + score -= 10; + break; + case EFFECT_SPECIAL_DEFENSE_DOWN: + case EFFECT_SPECIAL_DEFENSE_DOWN_2: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_SPDEF)) + score -= 10; + break; + case EFFECT_ACCURACY_DOWN: + case EFFECT_ACCURACY_DOWN_2: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_ACC)) + score -= 10; + else if (AI_DATA->defAbility == ABILITY_KEEN_EYE) + score -= 8; + break; + case EFFECT_EVASION_DOWN: + case EFFECT_EVASION_DOWN_2: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_EVASION)) + score -= 10; + break; + case EFFECT_TICKLE: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_ATK)) + score -= 10; + else if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_DEF)) + score -= 8; + break; + case EFFECT_VENOM_DRENCH: + if (!(gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY)) + { + score -= 10; + } + else + { + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_SPEED)) + score -= 10; + else if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_SPATK)) + score -= 8; + else if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_ATK)) + score -= 6; + } + break; + case EFFECT_NOBLE_ROAR: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_SPATK)) + score -= 10; + else if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_ATK)) + score -= 8; + break; + case EFFECT_CAPTIVATE: + { + u8 atkGender = GetGenderFromSpeciesAndPersonality(gBattleMons[battlerAtk].species, gBattleMons[battlerAtk].personality); + u8 defGender = GetGenderFromSpeciesAndPersonality(gBattleMons[battlerDef].species, gBattleMons[battlerDef].personality); + if (atkGender == MON_GENDERLESS || defGender == MON_GENDERLESS || atkGender == defGender) + score -= 10; + } + break; + // other + case EFFECT_HAZE: + if (PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + { + score -= 10; // partner already using haze + } + else + { + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerAtk].statStages[i] > DEFAULT_STAT_STAGE || gBattleMons[AI_DATA->battlerAtkPartner].statStages[i] > DEFAULT_STAT_STAGE) + score -= 10; // Don't want to reset our boosted stats + } + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerDef].statStages[i] < DEFAULT_STAT_STAGE || gBattleMons[AI_DATA->battlerDefPartner].statStages[i] < DEFAULT_STAT_STAGE) + score -= 10; //Don't want to reset enemy lowered stats + } + } + break; + //case EFFECT_BIDE: + //case EFFECT_SUPER_FANG: + //case EFFECT_RECHARGE: + case EFFECT_LEVEL_DAMAGE: + case EFFECT_PSYWAVE: + //case EFFECT_COUNTER: + //case EFFECT_FLAIL: + case EFFECT_RETURN: + case EFFECT_PRESENT: + case EFFECT_FRUSTRATION: + case EFFECT_SONICBOOM: + //case EFFECT_MIRROR_COAT: + case EFFECT_SKULL_BASH: + case EFFECT_FOCUS_PUNCH: + case EFFECT_SUPERPOWER: + //case EFFECT_ENDEAVOR: + case EFFECT_LOW_KICK: + // AI_CBM_HighRiskForDamage + if (AI_DATA->defAbility == ABILITY_WONDER_GUARD && effectiveness < AI_EFFECTIVENESS_x2) + score -= 10; + break; + case EFFECT_COUNTER: + case EFFECT_MIRROR_COAT: + if (IsBattlerIncapacitated(battlerDef, AI_DATA->defAbility) || gBattleMons[battlerDef].status2 & (STATUS2_INFATUATION | STATUS2_CONFUSION)) + score--; + if (predictedMove == MOVE_NONE || GetBattleMoveSplit(predictedMove) == SPLIT_STATUS + || DoesSubstituteBlockMove(battlerAtk, AI_DATA->battlerDefPartner, predictedMove)) + score -= 10; + break; + + case EFFECT_ROAR: + if (CountUsablePartyMons(battlerDef) == 0) + score -= 10; + else if (AI_DATA->defAbility == ABILITY_SUCTION_CUPS) + score -= 10; + break; + case EFFECT_TOXIC_THREAD: + if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_SPEED)) + score--; // may still want to just poison + //fallthrough + case EFFECT_POISON: + case EFFECT_TOXIC: + if (!AI_CanPoison(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_LIGHT_SCREEN: + if (gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_LIGHTSCREEN + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_REFLECT: + if (gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_REFLECT + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_AURORA_VEIL: + if (gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_AURORA_VEIL + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove) + || !(gBattleWeather & WEATHER_HAIL_ANY)) + score -= 10; + break; + case EFFECT_OHKO: + if (!ShouldTryOHKO(battlerAtk, battlerDef, AI_DATA->atkAbility, AI_DATA->defAbility, accuracy, move)) + score -= 10; + break; + case EFFECT_MIST: + if (gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_MIST + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_FOCUS_ENERGY: + if (gBattleMons[battlerAtk].status2 & STATUS2_FOCUS_ENERGY) + score -= 10; + break; + case EFFECT_CONFUSE: + case EFFECT_SWAGGER: + case EFFECT_FLATTER: + if (!AI_CanConfuse(battlerAtk, battlerDef, AI_DATA->defAbility, AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_PARALYZE: + if (!AI_CanParalyze(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_SUBSTITUTE: + if (gBattleMons[battlerAtk].status2 & STATUS2_SUBSTITUTE || AI_DATA->defAbility == ABILITY_INFILTRATOR) + score -= 8; + else if (GetHealthPercentage(battlerAtk) <= 25) + score -= 10; + else if (B_SOUND_SUBSTITUTE >= GEN_6 && TestMoveFlagsInMoveset(battlerDef, FLAG_SOUND)) + score -= 8; + break; + case EFFECT_LEECH_SEED: + if (gStatuses3[battlerDef] & STATUS3_LEECHSEED + || IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) + || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + else if (AI_DATA->defAbility == ABILITY_LIQUID_OOZE) + score -= 3; + break; + case EFFECT_DISABLE: + if (gDisableStructs[battlerDef].disableTimer == 0 + && (B_MENTAL_HERB >= GEN_5 && AI_DATA->defHoldEffect != HOLD_EFFECT_CURE_ATTRACT) + && !PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + { + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // attacker should go first + { + if (gLastMoves[battlerDef] == MOVE_NONE || gLastMoves[battlerDef] == 0xFFFF) + score -= 10; // no anticipated move to disable + } + else if (predictedMove == MOVE_NONE) + { + score -= 10; + } + } + else + { + score -= 10; + } + break; + case EFFECT_ENCORE: + if (gDisableStructs[battlerDef].encoreTimer == 0 + && (B_MENTAL_HERB >= GEN_5 && AI_DATA->defHoldEffect != HOLD_EFFECT_CURE_ATTRACT) + && !DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + { + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // attacker should go first + { + if (gLastMoves[battlerDef] == MOVE_NONE || gLastMoves[battlerDef] == 0xFFFF) + score -= 10; // no anticipated move to encore + } + else if (predictedMove == MOVE_NONE) + { + score -= 10; + } + } + else + { + score -= 10; + } + break; + case EFFECT_SNORE: + case EFFECT_SLEEP_TALK: + if (IsWakeupTurn(battlerAtk) || (!(gBattleMons[battlerAtk].status1 & STATUS1_SLEEP) || AI_DATA->atkAbility != ABILITY_COMATOSE)) + score -= 10; // if mon will wake up, is not asleep, or is not comatose + break; + case EFFECT_MEAN_LOOK: + if (IsBattlerTrapped(battlerDef, TRUE) || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_NIGHTMARE: + if (gBattleMons[battlerDef].status2 & STATUS2_NIGHTMARE) + score -= 10; + else if (!(gBattleMons[battlerDef].status1 & STATUS1_SLEEP) || AI_DATA->defAbility == ABILITY_COMATOSE) + score -= 8; + else if (DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_CURSE: + if (IS_BATTLER_OF_TYPE(battlerAtk, TYPE_GHOST)) + { + if (gBattleMons[battlerDef].status2 & STATUS2_CURSED + || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + else if (GetHealthPercentage(battlerAtk) <= 50) + score -= 6; + } + else // regular curse + { + if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + else if (!BattlerStatCanRise(battlerAtk, AI_DATA->atkAbility, STAT_DEF)) + score -= 8; + } + break; + case EFFECT_SPIKES: + if (gSideTimers[GetBattlerSide(battlerDef)].spikesAmount >= 3) + score -= 10; + else if (PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove) + && gSideTimers[GetBattlerSide(battlerDef)].spikesAmount == 2) + score -= 10; // only one mon needs to set up the last layer of Spikes + break; + case EFFECT_STEALTH_ROCK: + if (gSideTimers[GetBattlerSide(battlerDef)].stealthRockAmount > 0 + || PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) //Only one mon needs to set up Stealth Rocks + score -= 10; + break; + case EFFECT_TOXIC_SPIKES: + if (gSideTimers[GetBattlerSide(battlerDef)].toxicSpikesAmount >= 2) + score -= 10; + else if (PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove) && gSideTimers[GetBattlerSide(battlerDef)].toxicSpikesAmount == 1) + score -= 10; // only one mon needs to set up the last layer of Toxic Spikes + break; + case EFFECT_STICKY_WEB: + if (gSideTimers[GetBattlerSide(battlerDef)].stickyWebAmount) + score -= 10; + else if (PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove) && gSideTimers[GetBattlerSide(battlerDef)].stickyWebAmount) + score -= 10; // only one mon needs to set up Sticky Web + break; + case EFFECT_FORESIGHT: + if (gBattleMons[battlerDef].status2 & STATUS2_FORESIGHT) + score -= 10; + else if (gBattleMons[battlerDef].statStages[STAT_EVASION] <= 4 + || !(IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) + || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 9; + break; + case EFFECT_PERISH_SONG: + if (isDoubleBattle) + { + if (CountUsablePartyMons(battlerAtk) == 0 + && AI_DATA->atkAbility != ABILITY_SOUNDPROOF + && AI_DATA->atkPartnerAbility != ABILITY_SOUNDPROOF + && CountUsablePartyMons(FOE(battlerAtk)) >= 1) + { + score -= 10; //Don't wipe your team if you're going to lose + } + else if ((!IsBattlerAlive(FOE(battlerAtk)) || AI_GetAbility(FOE(battlerAtk)) == ABILITY_SOUNDPROOF + || gStatuses3[FOE(battlerAtk)] & STATUS3_PERISH_SONG) + && (!IsBattlerAlive(BATTLE_PARTNER(FOE(battlerAtk))) || AI_GetAbility(BATTLE_PARTNER(FOE(battlerAtk))) == ABILITY_SOUNDPROOF + || gStatuses3[BATTLE_PARTNER(FOE(battlerAtk))] & STATUS3_PERISH_SONG)) + { + score -= 10; //Both enemies are perish songed + } + else if (DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + { + score -= 10; + } + } + else + { + if (CountUsablePartyMons(battlerAtk) == 0 && AI_DATA->atkAbility != ABILITY_SOUNDPROOF + && CountUsablePartyMons(battlerDef) >= 1) + score -= 10; + + if (gStatuses3[FOE(battlerAtk)] & STATUS3_PERISH_SONG || AI_GetAbility(FOE(battlerAtk)) == ABILITY_SOUNDPROOF) + score -= 10; + } + break; + case EFFECT_SANDSTORM: + if (gBattleWeather & WEATHER_SANDSTORM_ANY //TODO | WEATHER_PRIMAL_ANY) + || PartnerMoveEffectIsWeather(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove)) + score -= 8; + break; + case EFFECT_SUNNY_DAY: + if (gBattleWeather & WEATHER_SUN_ANY //TODO | WEATHER_PRIMAL_ANY) + || PartnerMoveEffectIsWeather(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove)) + score -= 8; + break; + case EFFECT_RAIN_DANCE: + if (gBattleWeather & WEATHER_RAIN_ANY //TODO | WEATHER_PRIMAL_ANY) + || PartnerMoveEffectIsWeather(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove)) + score -= 8; + break; + case EFFECT_HAIL: + if (gBattleWeather & WEATHER_HAIL_ANY //TODO | WEATHER_PRIMAL_ANY) + || PartnerMoveEffectIsWeather(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove)) + score -= 8; + break; + case EFFECT_ATTRACT: + if (!AI_CanBeInfatuated(battlerAtk, battlerDef, AI_DATA->defAbility, + GetGenderFromSpeciesAndPersonality(gBattleMons[battlerAtk].species, gBattleMons[battlerAtk].personality), + GetGenderFromSpeciesAndPersonality(gBattleMons[battlerDef].species, gBattleMons[battlerDef].personality))) + score -= 10; + break; + case EFFECT_SAFEGUARD: + if (gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_SAFEGUARD + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_MAGNITUDE: + if (AI_DATA->defAbility == ABILITY_LEVITATE) + score -= 10; + break; + case EFFECT_PARTING_SHOT: + if (CountUsablePartyMons(battlerAtk) == 0) + score -= 10; + break; + case EFFECT_BATON_PASS: + if (CountUsablePartyMons(battlerAtk) == 0) + score -= 10; + else if (gBattleMons[battlerAtk].status2 & STATUS2_SUBSTITUTE + || (gStatuses3[battlerAtk] & (STATUS3_ROOTED | STATUS3_AQUA_RING | STATUS3_MAGNET_RISE | STATUS3_POWER_TRICK)) + || AnyStatIsRaised(battlerAtk)) + break; + else + score -= 6; + break; + case EFFECT_HIT_ESCAPE: + break; + case EFFECT_RAPID_SPIN: + if ((gBattleMons[battlerAtk].status2 & STATUS2_WRAPPED) || (gStatuses3[battlerAtk] & STATUS3_LEECHSEED)) + break; // check damage/accuracy + //Spin checks + if (!(gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_HAZARDS_ANY)) + score -= 6; + break; + case EFFECT_BELLY_DRUM: + if (AI_DATA->atkAbility == ABILITY_CONTRARY) + score -= 10; + else if (GetHealthPercentage(battlerAtk) <= 60) + score -= 10; + break; + case EFFECT_FUTURE_SIGHT: + if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_FUTUREATTACK + || gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_FUTUREATTACK) + score -= 12; + else + score += 5; + break; + case EFFECT_TELEPORT: + score -= 10; + break; + case EFFECT_FAKE_OUT: + if (!gDisableStructs[battlerAtk].isFirstTurn) + { + score -= 10; + } + else if (move == MOVE_FAKE_OUT) // filter out first impression + { + if ((AI_DATA->atkHoldEffect == HOLD_EFFECT_CHOICE_BAND || AI_DATA->atkAbility == ABILITY_GORILLA_TACTICS) + && (CountUsablePartyMons(battlerDef) > 0 || !CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0))) + { + if (CountUsablePartyMons(battlerAtk) == 0) + score -= 10; // Don't lock the attacker into Fake Out if they can't switch out afterwards. + } + } + break; + case EFFECT_STOCKPILE: + if (gDisableStructs[battlerAtk].stockpileCounter >= 3) + score -= 10; + break; + case EFFECT_SPIT_UP: + if (gDisableStructs[battlerAtk].stockpileCounter <= 1) + score -= 10; + break; + case EFFECT_SWALLOW: + if (gDisableStructs[battlerAtk].stockpileCounter == 0) + { + score -= 10; + } + else + { + if (AtMaxHp(battlerAtk)) + score -= 10; + else if (GetHealthPercentage(battlerAtk) >= 80) + score -= 5; // do it if nothing better + } + break; + case EFFECT_TORMENT: + if (gBattleMons[battlerDef].status2 & STATUS2_TORMENT + || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + { + score -= 10; + break; + } + + if (B_MENTAL_HERB >= GEN_5 && AI_DATA->defHoldEffect == HOLD_EFFECT_CURE_ATTRACT) + score -= 6; + break; + case EFFECT_WILL_O_WISP: + if (!AI_CanBurn(battlerAtk, battlerDef, AI_DATA->defAbility, AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_MEMENTO: + if (CountUsablePartyMons(battlerAtk) == 0 || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + else if (gBattleMons[battlerDef].statStages[STAT_ATK] == MIN_STAT_STAGE && gBattleMons[battlerDef].statStages[STAT_SPATK] == MIN_STAT_STAGE) + score -= 10; + break; + case EFFECT_FOLLOW_ME: + case EFFECT_HELPING_HAND: + if (!isDoubleBattle + || !IsBattlerAlive(AI_DATA->battlerAtkPartner) + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove) + || (AI_DATA->partnerMove != MOVE_NONE && IS_MOVE_STATUS(AI_DATA->partnerMove)) + || *(gBattleStruct->monToSwitchIntoId + AI_DATA->battlerAtkPartner) != PARTY_SIZE) //Partner is switching out. + score -= 10; + break; + case EFFECT_TRICK: + case EFFECT_KNOCK_OFF: + if (AI_DATA->defAbility == ABILITY_STICKY_HOLD) + score -= 10; + break; + case EFFECT_INGRAIN: + if (gStatuses3[battlerAtk] & STATUS3_ROOTED) + score -= 10; + break; + case EFFECT_AQUA_RING: + if (gStatuses3[battlerAtk] & STATUS3_AQUA_RING) + score -= 10; + break; + case EFFECT_RECYCLE: + if (gBattleStruct->usedHeldItems[battlerAtk] == 0 || gBattleMons[battlerAtk].item != 0) + score -= 10; + break; + case EFFECT_IMPRISON: + if (gStatuses3[battlerAtk] & STATUS3_IMPRISONED_OTHERS) + score -= 10; + break; + case EFFECT_REFRESH: + if (!(gBattleMons[battlerDef].status1 & (STATUS1_PSN_ANY | STATUS1_BURN | STATUS1_PARALYSIS))) + score -= 10; + break; + case EFFECT_PSYCHO_SHIFT: + if (gBattleMons[battlerAtk].status1 & STATUS1_PSN_ANY && !AI_CanPoison(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + else if (gBattleMons[battlerAtk].status1 & STATUS1_BURN && !AI_CanBurn(battlerAtk, battlerDef, + AI_DATA->defAbility, AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + else if (gBattleMons[battlerAtk].status1 & STATUS1_PARALYSIS && !AI_CanParalyze(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + else if (gBattleMons[battlerAtk].status1 & STATUS1_SLEEP && !AI_CanPutToSleep(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + else + score -= 10; // attacker has no status to transmit + break; + case EFFECT_MUD_SPORT: + if (gFieldStatuses & STATUS_FIELD_MUDSPORT + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_WATER_SPORT: + if (gFieldStatuses & STATUS_FIELD_WATERSPORT + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_ABSORB: + if (AI_DATA->defAbility == ABILITY_LIQUID_OOZE) + score -= 6; + break; + case EFFECT_STRENGTH_SAP: + if (AI_DATA->defAbility == ABILITY_CONTRARY) + score -= 10; + else if (!ShouldLowerStat(battlerDef, AI_DATA->defAbility, STAT_ATK)) + score -= 10; + break; + case EFFECT_COPYCAT: + case EFFECT_MIRROR_MOVE: + return AI_CheckBadMove(battlerAtk, battlerDef, predictedMove, score); + case EFFECT_FLOWER_SHIELD: + if (!IS_BATTLER_OF_TYPE(battlerAtk, TYPE_GRASS) + && !(isDoubleBattle && IS_BATTLER_OF_TYPE(AI_DATA->battlerAtkPartner, TYPE_GRASS))) + score -= 10; + break; + case EFFECT_AROMATIC_MIST: + if (!isDoubleBattle || gBattleMons[AI_DATA->battlerAtkPartner].hp == 0 || !BattlerStatCanRise(AI_DATA->battlerAtkPartner, AI_DATA->atkPartnerAbility, STAT_SPDEF)) + score -= 10; + break; + case EFFECT_BIDE: + if (!HasDamagingMove(battlerDef) + || GetHealthPercentage(battlerAtk) < 30 //Close to death + || gBattleMons[battlerDef].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) //No point in biding if can't take damage + score -= 10; + break; + case EFFECT_HIT_SWITCH_TARGET: + if (DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; // don't scare away pokemon twice + else if (GetHealthPercentage(battlerDef) < 10 && GetBattlerSecondaryDamage(battlerDef)) + score -= 10; // don't blow away mon that will faint soon + else if (gStatuses3[battlerDef] & STATUS3_PERISH_SONG) + score -= 10; + break; + case EFFECT_CONVERSION: + //Check first move type + if (IS_BATTLER_OF_TYPE(battlerAtk, gBattleMoves[gBattleMons[battlerAtk].moves[0]].type)) + score -= 10; + break; + case EFFECT_REST: + if (!CanSleep(battlerAtk, AI_DATA->atkAbility)) + score -= 10; + //fallthrough + case EFFECT_RESTORE_HP: + case EFFECT_SOFTBOILED: + case EFFECT_ROOST: + if (AtMaxHp(battlerAtk)) + score -= 10; + else if (GetHealthPercentage(battlerAtk) >= 90) + score -= 9; //No point in healing, but should at least do it if nothing better + break; + case EFFECT_MORNING_SUN: + case EFFECT_SYNTHESIS: + case EFFECT_MOONLIGHT: + if (AI_WeatherHasEffect() && (gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_HAIL_ANY))) + score -= 3; + else if (AtMaxHp(battlerAtk)) + score -= 10; + else if (GetHealthPercentage(battlerAtk) >= 90) + score -= 9; //No point in healing, but should at least do it if nothing better + break; + case EFFECT_PURIFY: + if (!(gBattleMons[battlerDef].status1 & STATUS1_ANY)) + score -= 10; + else if (battlerDef == AI_DATA->battlerAtkPartner) + break; //Always heal your ally + else if (AtMaxHp(battlerAtk)) + score -= 10; + else if (GetHealthPercentage(battlerAtk) >= 90) + score -= 8; //No point in healing, but should at least do it if nothing better + break; + case EFFECT_SUPER_FANG: + if (GetHealthPercentage(battlerDef) < 50) + score -= 4; + break; + case EFFECT_RECOIL_IF_MISS: + if (AI_DATA->atkAbility != ABILITY_MAGIC_GUARD && accuracy < 75) + score -= 6; + break; + case EFFECT_RECOIL_25: + if (AI_DATA->atkAbility != ABILITY_MAGIC_GUARD && AI_DATA->atkAbility != ABILITY_ROCK_HEAD) + { + u32 recoilDmg = max(1, AI_THINKING_STRUCT->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex] / 4); + if (!ShouldUseRecoilMove(battlerAtk, battlerDef, recoilDmg, AI_THINKING_STRUCT->movesetIndex)) + score -= 10; + break; + } + break; + case EFFECT_RECOIL_33: + case EFFECT_RECOIL_33_STATUS: + if (AI_DATA->atkAbility != ABILITY_MAGIC_GUARD && AI_DATA->atkAbility != ABILITY_ROCK_HEAD) + { + u32 recoilDmg = max(1, AI_THINKING_STRUCT->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex] / 3); + if (!ShouldUseRecoilMove(battlerAtk, battlerDef, recoilDmg, AI_THINKING_STRUCT->movesetIndex)) + score -= 10; + break; + } + break; + case EFFECT_RECOIL_50: + if (AI_DATA->atkAbility != ABILITY_MAGIC_GUARD && AI_DATA->atkAbility != ABILITY_ROCK_HEAD) + { + u32 recoilDmg = max(1, AI_THINKING_STRUCT->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex] / 2); + if (!ShouldUseRecoilMove(battlerAtk, battlerDef, recoilDmg, AI_THINKING_STRUCT->movesetIndex)) + score -= 10; + break; + } + break; + case EFFECT_TEETER_DANCE: + if (((gBattleMons[battlerDef].status2 & STATUS2_CONFUSION) + || (!DoesBattlerIgnoreAbilityChecks(AI_DATA->atkAbility, move) && AI_DATA->defAbility == ABILITY_OWN_TEMPO) + || (IsBattlerGrounded(battlerDef) && AI_IsTerrainAffected(battlerDef, STATUS_FIELD_MISTY_TERRAIN)) + || (DoesSubstituteBlockMove(battlerAtk, battlerDef, move))) + && ((gBattleMons[AI_DATA->battlerDefPartner].status2 & STATUS2_CONFUSION) + || (!DoesBattlerIgnoreAbilityChecks(AI_DATA->atkAbility, move) && AI_DATA->defPartnerAbility == ABILITY_OWN_TEMPO) + || (IsBattlerGrounded(AI_DATA->battlerDefPartner) && AI_IsTerrainAffected(AI_DATA->battlerDefPartner, STATUS_FIELD_MISTY_TERRAIN)) + || (DoesSubstituteBlockMove(battlerAtk, AI_DATA->battlerDefPartner, move)))) + { + score -= 10; + } + break; + case EFFECT_TRANSFORM: + if (gBattleMons[battlerAtk].status2 & STATUS2_TRANSFORMED + || (gBattleMons[battlerDef].status2 & (STATUS2_TRANSFORMED | STATUS2_SUBSTITUTE))) //Leave out Illusion b/c AI is supposed to be fooled + score -= 10; + break; + case EFFECT_TWO_TURNS_ATTACK: + if (AI_DATA->atkHoldEffect != HOLD_EFFECT_POWER_HERB && CanTargetFaintAi(battlerDef, battlerAtk)) + score -= 6; + break; + case EFFECT_RECHARGE: + if (AI_DATA->defAbility == ABILITY_WONDER_GUARD && effectiveness < AI_EFFECTIVENESS_x2) + score -= 10; + else if (AI_DATA->atkAbility != ABILITY_TRUANT + && !CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + score -= 2; + break; + case EFFECT_SPITE: + case EFFECT_MIMIC: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // attacker should go first + { + if (gLastMoves[battlerDef] == MOVE_NONE + || gLastMoves[battlerDef] == 0xFFFF) + score -= 10; + } + else if (predictedMove == MOVE_NONE) + { + // TODO predicted move separate from gLastMoves + score -= 10; + } + break; + case EFFECT_METRONOME: + break; + case EFFECT_ENDEAVOR: + case EFFECT_PAIN_SPLIT: + if (gBattleMons[battlerAtk].hp > (gBattleMons[battlerAtk].hp + gBattleMons[battlerDef].hp) / 2) + score -= 10; + break; + + case EFFECT_CONVERSION_2: + //TODO + break; + case EFFECT_LOCK_ON: + if (gStatuses3[battlerDef] & STATUS3_ALWAYS_HITS + || AI_DATA->atkAbility == ABILITY_NO_GUARD + || AI_DATA->defAbility == ABILITY_NO_GUARD + || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_LASER_FOCUS: + if (gStatuses3[battlerAtk] & STATUS3_LASER_FOCUS) + score -= 10; + else if (AI_DATA->defAbility == ABILITY_SHELL_ARMOR || AI_DATA->defAbility == ABILITY_BATTLE_ARMOR) + score -= 8; + break; + case EFFECT_SKETCH: + if (gLastMoves[battlerDef] == MOVE_NONE) + score -= 10; + break; + case EFFECT_DESTINY_BOND: + if (gBattleMons[battlerDef].status2 & STATUS2_DESTINY_BOND) + score -= 10; + break; + case EFFECT_FALSE_SWIPE: + // TODO + break; + case EFFECT_HEAL_BELL: + if (!AnyPartyMemberStatused(battlerAtk, TestMoveFlags(move, FLAG_SOUND)) || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_HIT_PREVENT_ESCAPE: + break; + case EFFECT_ENDURE: + if (gBattleMons[battlerAtk].hp == 1 || GetBattlerSecondaryDamage(battlerAtk)) //Don't use Endure if you'll die after using it + score -= 10; + break; + case EFFECT_PROTECT: + { + bool32 decreased = FALSE; + switch (move) + { + case MOVE_QUICK_GUARD: + case MOVE_WIDE_GUARD: + case MOVE_CRAFTY_SHIELD: + if (!isDoubleBattle) + { + score -= 10; + decreased = TRUE; + } + break; + case MOVE_MAT_BLOCK: + if (!gDisableStructs[battlerAtk].isFirstTurn) + { + score -= 10; + decreased = TRUE; + } + break; + } // move check + + if (decreased) + break; + if (IsBattlerIncapacitated(battlerDef, AI_DATA->defAbility)) + { + score -= 10; + break; + } + + if (move != MOVE_QUICK_GUARD + && move != MOVE_WIDE_GUARD + && move != MOVE_CRAFTY_SHIELD) //These moves have infinite usage + { + if (GetBattlerSecondaryDamage(battlerAtk) >= gBattleMons[battlerAtk].hp + && AI_DATA->defAbility != ABILITY_MOXIE + && AI_DATA->defAbility != ABILITY_BEAST_BOOST) + { + score -= 10; //Don't protect if you're going to faint after protecting + } + else if (gDisableStructs[battlerAtk].protectUses == 1 && Random() % 100 < 50) + { + if (!isDoubleBattle) + score -= 6; + else + score -= 10; //Don't try double protecting in doubles + } + else if (gDisableStructs[battlerAtk].protectUses >= 2) + { + score -= 10; + } + } + + /*if (AI_THINKING_STRUCT->aiFlags == AI_SCRIPT_CHECK_BAD_MOVE //Only basic AI + && IS_DOUBLE_BATTLE) //Make the regular AI know how to use Protect minimally in Doubles + { + u8 shouldProtect = ShouldProtect(battlerAtk, battlerDef, move); + if (shouldProtect == USE_PROTECT || shouldProtect == PROTECT_FROM_FOES) + IncreaseFoeProtectionViability(&viability, 0xFF, battlerAtk, battlerDef); + else if (shouldProtect == PROTECT_FROM_ALLIES) + IncreaseAllyProtectionViability(&viability, 0xFF); + }*/ + } + break; + case EFFECT_MIRACLE_EYE: + if (gStatuses3[battlerDef] & STATUS3_MIRACLE_EYED) + score -= 10; + + if (gBattleMons[battlerDef].statStages[STAT_EVASION] <= 4 + || !(IS_BATTLER_OF_TYPE(battlerDef, TYPE_DARK)) + || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 9; + break; + case EFFECT_BURN_UP: + if (!IS_BATTLER_OF_TYPE(battlerAtk, TYPE_FIRE)) + score -= 10; + break; + case EFFECT_DEFOG: + if (gSideStatuses[GetBattlerSide(battlerDef)] + & (SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL | SIDE_STATUS_SAFEGUARD | SIDE_STATUS_MIST) + || gSideTimers[GetBattlerSide(battlerDef)].auroraVeilTimer != 0 + || gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_HAZARDS_ANY) + { + if (PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + { + score -= 10; //Only need one hazards removal + break; + } + } + + if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_HAZARDS_ANY) + { + score -= 10; //Don't blow away opposing hazards + break; + } + + if (isDoubleBattle) + { + if (IsHazardMoveEffect(gBattleMoves[AI_DATA->partnerMove].effect) // partner is going to set up hazards + && GetWhoStrikesFirst(AI_DATA->battlerAtkPartner, battlerAtk, FALSE)) // partner is going to set up before the potential Defog + { + score -= 10; + break; // Don't use Defog if partner is going to set up hazards + } + } + + // evasion check + if (gBattleMons[battlerDef].statStages[STAT_EVASION] == MIN_STAT_STAGE + || ((AI_DATA->defAbility == ABILITY_CONTRARY) && !IsTargetingPartner(battlerAtk, battlerDef))) // don't want to raise target stats unless its your partner + score -= 10; + break; + + case EFFECT_PSYCH_UP: // haze stats check + { + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerAtk].statStages[i] > DEFAULT_STAT_STAGE || gBattleMons[AI_DATA->battlerAtkPartner].statStages[i] > DEFAULT_STAT_STAGE) + score -= 10; // Don't want to reset our boosted stats + } + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerDef].statStages[i] < DEFAULT_STAT_STAGE || gBattleMons[AI_DATA->battlerDefPartner].statStages[i] < DEFAULT_STAT_STAGE) + score -= 10; //Don't want to copy enemy lowered stats + } + } + break; + case EFFECT_SPECTRAL_THIEF: + break; + case EFFECT_SOLARBEAM: + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_POWER_HERB + || (AI_WeatherHasEffect() && gBattleWeather & WEATHER_SUN_ANY && AI_DATA->atkHoldEffect != HOLD_EFFECT_UTILITY_UMBRELLA)) + break; + if (CanTargetFaintAi(battlerDef, battlerAtk)) //Attacker can be knocked out + score -= 4; + break; + case EFFECT_SEMI_INVULNERABLE: + if (predictedMove != MOVE_NONE + && GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1 + && gBattleMoves[predictedMove].effect == EFFECT_SEMI_INVULNERABLE) + score -= 10; // Don't Fly/dig/etc if opponent is going to fly/dig/etc after you + + if (BattlerWillFaintFromWeather(battlerAtk, AI_DATA->atkAbility) + && (move == MOVE_FLY || move == MOVE_BOUNCE)) + score -= 10; // Attacker will faint while in the air + break; + case EFFECT_HEALING_WISH: //healing wish, lunar dance + if (CountUsablePartyMons(battlerAtk) == 0 || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + else if (IsPartyFullyHealedExceptBattler(battlerAtk)) + score -= 10; + break; + case EFFECT_FINAL_GAMBIT: + if (CountUsablePartyMons(battlerAtk) == 0 || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_NATURE_POWER: + return AI_CheckBadMove(battlerAtk, battlerDef, GetNaturePowerMove(), score); + case EFFECT_TAUNT: + if (gDisableStructs[battlerDef].tauntTimer > 0 + || DoesPartnerHaveSameMoveEffect(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score--; + break; + case EFFECT_BESTOW: + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_NONE + || !CanBattlerGetOrLoseItem(battlerAtk, gBattleMons[battlerAtk].item)) // AI knows its own item + score -= 10; + break; + case EFFECT_ROLE_PLAY: + if (AI_DATA->atkAbility == AI_DATA->defAbility + || AI_DATA->defAbility == ABILITY_NONE + || IsRolePlayBannedAbilityAtk(AI_DATA->atkAbility) + || IsRolePlayBannedAbility(AI_DATA->defAbility)) + score -= 10; + else if (IsAbilityOfRating(AI_DATA->atkAbility, 5)) + score -= 4; + break; + case EFFECT_WISH: + if (gWishFutureKnock.wishCounter[battlerAtk] != 0) + score -= 10; + break; + case EFFECT_ASSIST: + if (CountUsablePartyMons(battlerAtk) == 0) + score -= 10; // no teammates to assist from + break; + case EFFECT_MAGIC_COAT: + if (!TestMoveFlagsInMoveset(battlerDef, FLAG_MAGIC_COAT_AFFECTED)) + score -= 10; + break; + case EFFECT_BELCH: + if (ItemId_GetPocket(gBattleStruct->usedHeldItems[battlerAtk]) != POCKET_BERRIES) + score -= 10; // attacker has not consumed a berry + break; + case EFFECT_YAWN: + if (gStatuses3[battlerDef] & STATUS3_YAWN) + score -= 10; + else if (!AI_CanPutToSleep(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_SKILL_SWAP: + if (AI_DATA->atkAbility == ABILITY_NONE || AI_DATA->defAbility == ABILITY_NONE + || IsSkillSwapBannedAbility(AI_DATA->atkAbility) || IsSkillSwapBannedAbility(AI_DATA->defAbility)) + score -= 10; + break; + case EFFECT_WORRY_SEED: + if (AI_DATA->defAbility == ABILITY_INSOMNIA + || IsWorrySeedBannedAbility(AI_DATA->defAbility)) + score -= 10; + break; + case EFFECT_GASTRO_ACID: + if (gStatuses3[battlerDef] & STATUS3_GASTRO_ACID + || IsGastroAcidBannedAbility(AI_DATA->defAbility)) + score -= 10; + break; + case EFFECT_ENTRAINMENT: + if (AI_DATA->atkAbility == ABILITY_NONE + || IsEntrainmentBannedAbilityAttacker(AI_DATA->atkAbility) + || IsEntrainmentTargetOrSimpleBeamBannedAbility(AI_DATA->defAbility)) + score -= 10; + break; + case EFFECT_CORE_ENFORCER: + break; + case EFFECT_SIMPLE_BEAM: + if (AI_DATA->defAbility == ABILITY_SIMPLE + || IsEntrainmentTargetOrSimpleBeamBannedAbility(AI_DATA->defAbility)) + score -= 10; + break; + case EFFECT_SNATCH: + if (!TestMoveFlagsInMoveset(battlerDef, FLAG_SNATCH_AFFECTED) + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_POWER_TRICK: + if (IsTargetingPartner(battlerAtk, battlerDef)) + score -= 10; + else if (gBattleMons[battlerAtk].defense >= gBattleMons[battlerAtk].attack && !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score -= 10; + break; + case EFFECT_POWER_SWAP: // Don't use if attacker's stat stages are higher than opponents + if (IsTargetingPartner(battlerAtk, battlerDef)) + score -= 10; + else if (gBattleMons[battlerAtk].statStages[STAT_ATK] >= gBattleMons[battlerDef].statStages[STAT_ATK] + && gBattleMons[battlerAtk].statStages[STAT_SPATK] >= gBattleMons[battlerDef].statStages[STAT_SPATK]) + score -= 10; + break; + case EFFECT_GUARD_SWAP: // Don't use if attacker's stat stages are higher than opponents + if (IsTargetingPartner(battlerAtk, battlerDef)) + score -= 10; + else if (gBattleMons[battlerAtk].statStages[STAT_DEF] >= gBattleMons[battlerDef].statStages[STAT_DEF] + && gBattleMons[battlerAtk].statStages[STAT_SPDEF] >= gBattleMons[battlerDef].statStages[STAT_SPDEF]) + score -= 10; + break; + case EFFECT_SPEED_SWAP: + if (IsTargetingPartner(battlerAtk, battlerDef)) + { + score -= 10; + } + else + { + if (gFieldStatuses & STATUS_FIELD_TRICK_ROOM && (gBattleMons[battlerAtk].speed <= gBattleMons[battlerDef].speed)) + score -= 10; + else if (gBattleMons[battlerAtk].speed >= gBattleMons[battlerDef].speed) + score -= 10; + } + break; + case EFFECT_HEART_SWAP: + if (IsTargetingPartner(battlerAtk, battlerDef)) + { + score -= 10; + } + else + { + u32 atkPositiveStages = CountPositiveStatStages(battlerAtk); + u32 atkNegativeStages = CountNegativeStatStages(battlerAtk); + u32 defPositiveStages = CountPositiveStatStages(battlerDef); + u32 defNegativeStages = CountNegativeStatStages(battlerDef); + + if (atkPositiveStages >= defPositiveStages && atkNegativeStages <= defNegativeStages) + score -= 10; + break; + } + break; + case EFFECT_POWER_SPLIT: + if (IsTargetingPartner(battlerAtk, battlerDef)) + { + score -= 10; + } + else + { + u8 atkAttack = gBattleMons[battlerAtk].attack; + u8 defAttack = gBattleMons[battlerDef].attack; + u8 atkSpAttack = gBattleMons[battlerAtk].spAttack; + u8 defSpAttack = gBattleMons[battlerDef].spAttack; + + if (atkAttack + atkSpAttack >= defAttack + defSpAttack) // Combined attacker stats are > than combined target stats + score -= 10; + break; + } + break; + case EFFECT_GUARD_SPLIT: + if (IsTargetingPartner(battlerAtk, battlerDef)) + { + score -= 10; + } + else + { + u8 atkDefense = gBattleMons[battlerAtk].defense; + u8 defDefense = gBattleMons[battlerDef].defense; + u8 atkSpDefense = gBattleMons[battlerAtk].spDefense; + u8 defSpDefense = gBattleMons[battlerDef].spDefense; + + if (atkDefense + atkSpDefense >= defDefense + defSpDefense) //Combined attacker stats are > than combined target stats + score -= 10; + break; + } + break; + case EFFECT_ME_FIRST: + if (predictedMove != MOVE_NONE) + { + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1) + score -= 10; // Target is predicted to go first, Me First will fail + else + return AI_CheckBadMove(battlerAtk, battlerDef, predictedMove, score); + } + else + { + score -= 10; //Target is predicted to switch most likely + } + break; + case EFFECT_NATURAL_GIFT: + if (AI_DATA->atkAbility == ABILITY_KLUTZ + || gFieldStatuses & STATUS_FIELD_MAGIC_ROOM + || GetPocketByItemId(gBattleMons[battlerAtk].item) != POCKET_BERRIES) + score -= 10; + break; + case EFFECT_GRASSY_TERRAIN: + if (PartnerMoveEffectIsTerrain(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove) || gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN) + score -= 10; + break; + case EFFECT_ELECTRIC_TERRAIN: + if (PartnerMoveEffectIsTerrain(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove) || gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN) + score -= 10; + break; + case EFFECT_PSYCHIC_TERRAIN: + if (PartnerMoveEffectIsTerrain(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove) || gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN) + score -= 10; + break; + case EFFECT_MISTY_TERRAIN: + if (PartnerMoveEffectIsTerrain(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove) || gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN) + score -= 10; + break; + case EFFECT_PLEDGE: + if (isDoubleBattle && gBattleMons[AI_DATA->battlerAtkPartner].hp > 0) + { + if (AI_DATA->partnerMove != MOVE_NONE + && gBattleMoves[AI_DATA->partnerMove].effect == EFFECT_PLEDGE + && move != AI_DATA->partnerMove) // Different pledge moves + { + if (gBattleMons[AI_DATA->battlerAtkPartner].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) + // && gBattleMons[AI_DATA->battlerAtkPartner].status1 != 1) // Will wake up this turn - how would AI know + score -= 10; // Don't use combo move if your partner will cause failure + } + } + break; + case EFFECT_TRICK_ROOM: + if (PartnerMoveIs(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove, MOVE_TRICK_ROOM)) + { + score -= 10; + } + else if (gFieldStatuses & STATUS_FIELD_TRICK_ROOM) // Trick Room Up + { + if (GetBattlerSideSpeedAverage(battlerAtk) < GetBattlerSideSpeedAverage(battlerDef)) // Attacker side slower than target side + score -= 10; // Keep the Trick Room up + } + else + { + if (GetBattlerSideSpeedAverage(battlerAtk) >= GetBattlerSideSpeedAverage(battlerDef)) // Attacker side faster than target side + score -= 10; // Keep the Trick Room down + } + break; + case EFFECT_MAGIC_ROOM: + if (gFieldStatuses & STATUS_FIELD_MAGIC_ROOM || PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_WONDER_ROOM: + if (gFieldStatuses & STATUS_FIELD_WONDER_ROOM || PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_GRAVITY: + if ((gFieldStatuses & STATUS_FIELD_GRAVITY + && !IS_BATTLER_OF_TYPE(battlerAtk, TYPE_FLYING) + && AI_DATA->atkHoldEffect != HOLD_EFFECT_AIR_BALLOON) // Should revert Gravity in this case + || PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_ION_DELUGE: + if (gFieldStatuses & STATUS_FIELD_ION_DELUGE + || PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_FLING: + if (!CanFling(battlerAtk)) + { + score -= 10; + } + else + { + /* TODO Fling + u8 effect = gFlingTable[gBattleMons[battlerAtk].item].effect; + switch (effect) + { + case MOVE_EFFECT_BURN: + if (!AI_CanBurn(battlerAtk, battlerDef, AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case MOVE_EFFECT_PARALYSIS: + if (!AI_CanParalyze(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + break; + case MOVE_EFFECT_POISON: + if (!AI_CanPoison(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + break; + case MOVE_EFFECT_TOXIC: + if (!AI_CanPoison(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + score -= 10; + break; + case MOVE_EFFECT_FREEZE: + if (!CanBeFrozen(battlerDef, TRUE) + || MoveBlockedBySubstitute(move, battlerAtk, battlerDef)) + score -= 10; + break; + }*/ + } + break; + case EFFECT_EMBARGO: + if (AI_DATA->defAbility == ABILITY_KLUTZ + || gFieldStatuses & STATUS_FIELD_MAGIC_ROOM + || gDisableStructs[battlerDef].embargoTimer != 0 + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_POWDER: + if (!HasMoveWithType(battlerDef, TYPE_FIRE) + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_TELEKINESIS: + if (gStatuses3[battlerDef] & (STATUS3_TELEKINESIS | STATUS3_ROOTED | STATUS3_SMACKED_DOWN) + || gFieldStatuses & STATUS_FIELD_GRAVITY + || AI_DATA->defHoldEffect == HOLD_EFFECT_IRON_BALL + || IsTelekinesisBannedSpecies(gBattleMons[battlerDef].species) + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_THROAT_CHOP: + break; + case EFFECT_HEAL_BLOCK: + if (gDisableStructs[battlerDef].healBlockTimer != 0 + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_SOAK: + if (PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove) + || (gBattleMons[battlerDef].type1 == TYPE_WATER + && gBattleMons[battlerDef].type2 == TYPE_WATER + && gBattleMons[battlerDef].type3 == TYPE_MYSTERY)) + score -= 10; // target is already water-only + break; + case EFFECT_THIRD_TYPE: + switch (move) + { + case MOVE_TRICK_OR_TREAT: + if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST) || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case MOVE_FORESTS_CURSE: + if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + } + break; + case EFFECT_HIT_ENEMY_HEAL_ALLY: // pollen puff + if (IsTargetingPartner(battlerAtk, battlerDef)) + { + if (AtMaxHp(battlerDef)) + score -= 10; + else if (gBattleMons[battlerDef].hp > gBattleMons[battlerDef].maxHP / 2) + score -= 5; + break; + } + // fallthrough + case EFFECT_HEAL_PULSE: // and floral healing + if (!IsTargetingPartner(battlerAtk, battlerDef)) // Don't heal enemies + { + score -= 10; + } + else + { + if (AtMaxHp(battlerDef)) + score -= 10; + else if (gBattleMons[battlerDef].hp > gBattleMons[battlerDef].maxHP / 2) + score -= 5; + } + break; + case EFFECT_ELECTRIFY: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0 + //|| GetMoveTypeSpecial(battlerDef, predictedMove) == TYPE_ELECTRIC // Move will already be electric type + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_TOPSY_TURVY: + if (!IsTargetingPartner(battlerAtk, battlerDef)) + { + u8 targetPositiveStages = CountPositiveStatStages(battlerDef); + u8 targetNegativeStages = CountNegativeStatStages(battlerDef); + + if (targetPositiveStages == 0 //No good stat changes to make bad + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + + else if (targetNegativeStages < targetPositiveStages) + score -= 5; //More stages would be made positive than negative + } + break; + case EFFECT_FAIRY_LOCK: + if ((gFieldStatuses & STATUS_FIELD_FAIRY_LOCK) || PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_DO_NOTHING: + score -= 10; + break; + case EFFECT_INSTRUCT: + { + u16 instructedMove; + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1) + instructedMove = predictedMove; + else + instructedMove = gLastMoves[battlerDef]; + + if (instructedMove == MOVE_NONE + || IsInstructBannedMove(instructedMove) + || MoveRequiresRecharging(instructedMove) + || MoveCallsOtherMove(instructedMove) + #ifdef ITEM_Z_RING + //|| (IsZMove(instructedMove)) + #endif + || (gLockedMoves[battlerDef] != 0 && gLockedMoves[battlerDef] != 0xFFFF) + || gBattleMons[battlerDef].status2 & STATUS2_MULTIPLETURNS + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + { + score -= 10; + } + else if (isDoubleBattle) + { + if (!IsTargetingPartner(battlerAtk, battlerDef)) + score -= 10; + } + else + { + if (gBattleMoves[instructedMove].target & (MOVE_TARGET_SELECTED + | MOVE_TARGET_DEPENDS + | MOVE_TARGET_RANDOM + | MOVE_TARGET_BOTH + | MOVE_TARGET_FOES_AND_ALLY + | MOVE_TARGET_OPPONENTS_FIELD) + && instructedMove != MOVE_MIND_BLOWN && instructedMove != MOVE_STEEL_BEAM) + score -= 10; //Don't force the enemy to attack you again unless it can kill itself with Mind Blown + else if (instructedMove != MOVE_MIND_BLOWN) + score -= 5; //Do something better + } + } + break; + case EFFECT_QUASH: + if (!isDoubleBattle + || GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1 + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_AFTER_YOU: + if (!IsTargetingPartner(battlerAtk, battlerDef) + || !isDoubleBattle + || GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1 + || PartnerMoveIsSameAsAttacker(AI_DATA->battlerAtkPartner, battlerDef, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_SUCKER_PUNCH: + if (predictedMove != MOVE_NONE) + { + if (IS_MOVE_STATUS(predictedMove) || GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1) // opponent going first + score -= 10; + } + break; + case EFFECT_TAILWIND: + if (gSideTimers[GetBattlerSide(battlerAtk)].tailwindTimer != 0 + || PartnerMoveIs(AI_DATA->battlerAtkPartner, AI_DATA->partnerMove, MOVE_TAILWIND) + || (gFieldStatuses & STATUS_FIELD_TRICK_ROOM && gFieldTimers.trickRoomTimer > 1)) // Trick Room active and not ending this turn + score -= 10; + break; + case EFFECT_LUCKY_CHANT: + if (gSideTimers[GET_BATTLER_SIDE(battlerAtk)].luckyChantTimer != 0 + || PartnerMoveIsSameNoTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 10; + break; + case EFFECT_MAGNET_RISE: + if (gFieldStatuses & STATUS_FIELD_GRAVITY + || gDisableStructs[battlerAtk].magnetRiseTimer != 0 + || AI_DATA->atkHoldEffect == HOLD_EFFECT_IRON_BALL + || gStatuses3[battlerAtk] & (STATUS3_ROOTED | STATUS3_MAGNET_RISE | STATUS3_SMACKED_DOWN) + || !IsBattlerGrounded(battlerAtk)) + score -= 10; + break; + case EFFECT_CAMOUFLAGE: + if (!CanCamouflage(battlerAtk)) + score -= 10; + break; + case EFFECT_LAST_RESORT: + if (!CanUseLastResort(battlerAtk)) + score -= 10; + break; + case EFFECT_SYNCHRONOISE: + //Check holding ring target or is of same type + if (AI_DATA->defHoldEffect == HOLD_EFFECT_RING_TARGET + || IS_BATTLER_OF_TYPE(battlerDef, gBattleMons[battlerAtk].type1) + || IS_BATTLER_OF_TYPE(battlerDef, gBattleMons[battlerAtk].type2) + || IS_BATTLER_OF_TYPE(battlerDef, gBattleMons[battlerAtk].type3)) + break; + else + score -= 10; + break; + case EFFECT_ERUPTION: + if (effectiveness <= AI_EFFECTIVENESS_x0_5) + score--; + if (GetHealthPercentage(battlerDef) < 50) + score--; + break; + case EFFECT_VITAL_THROW: + if (IsAiFaster(AI_CHECK_FASTER) && GetHealthPercentage(battlerAtk) < 40) + score--; // don't want to move last + break; + case EFFECT_FLAIL: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1 // opponent should go first + || GetHealthPercentage(battlerAtk) > 50) + score -= 4; + break; + //TODO + //case EFFECT_PLASMA_FISTS: + //break; + //case EFFECT_SHELL_TRAP: + //break; + //case EFFECT_BEAK_BLAST: + //break; + /*case EFFECT_SKY_DROP: + if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_FLYING)) + score -= 10; + if (WillFaintFromWeather(battlerAtk) + || MoveBlockedBySubstitute(move, battlerAtk, battlerDef) + || GetSpeciesWeight(gBattleMons[battlerDef].species, AI_DATA->defAbility, AI_DATA->defHoldEffect, battlerDef, TRUE) >= 2000) //200.0 kg + score -= 10; + break; + */ + /*case EFFECT_NO_RETREAT: + if (TrappedByNoRetreat(battlerAtk)) + score -= 10; + break; + case EFFECT_EXTREME_EVOBOOST: + if (MainStatsMaxed(battlerAtk)) + score -= 10; + break; + case EFFECT_CLANGOROUS_SOUL: + if (gBattleMons[battlerAtk].hp <= gBattleMons[battlerAtk].maxHP / 3) + score -= 10; + break;*/ + } // move effect checks + + if (score < 0) + score = 0; + + return score; +} + +static s16 AI_TryToFaint(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + if (IsTargetingPartner(battlerAtk, battlerDef)) + return score; + + if (gBattleMoves[move].power == 0) + return score; // can't make anything faint with no power + + if (CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0) && gBattleMoves[move].effect != EFFECT_EXPLOSION) + { + // this move can faint the target + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0 || GetMovePriority(battlerAtk, move) > 0) + score += 4; // we go first or we're using priority move + else + score += 2; + } + else + { + // this move isn't expected to faint the target + if (TestMoveFlags(move, FLAG_HIGH_CRIT)) + score += 2; // crit makes it more likely to make them faint + + if (GetMoveDamageResult(move) == MOVE_POWER_OTHER) + score--; + + switch (AI_GetMoveEffectiveness(move, battlerAtk, battlerDef)) + { + case AI_EFFECTIVENESS_x4: + score += 4; + break; + case AI_EFFECTIVENESS_x2: + if (AI_RandLessThan(176)) + score += 2; + else + score++; + break; + } + } + + //AI_TryToFaint_CheckIfDanger + if (!IsAiFaster(AI_CHECK_FASTER) && CanTargetFaintAi(battlerDef, battlerAtk)) + { // AI_TryToFaint_Danger + if (GetMoveDamageResult(move) != MOVE_POWER_BEST) + score--; + else + score++; + } + + return score; +} + +// double battle logic +static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + // move data + u8 moveType = gBattleMoves[move].type; + u16 effect = gBattleMoves[move].effect; + u8 target = gBattleMoves[move].target; + // ally data + u8 battlerAtkPartner = AI_DATA->battlerAtkPartner; + u16 atkPartnerAbility = AI_DATA->atkPartnerAbility; + u16 atkPartnerHoldEffect = AI_DATA->atkPartnerHoldEffect; + bool32 partnerProtecting = (gBattleMoves[AI_DATA->partnerMove].effect == EFFECT_PROTECT); + bool32 attackerHasBadAbility = (GetAbilityRating(AI_DATA->atkAbility) < 0); + bool32 partnerHasBadAbility = (GetAbilityRating(atkPartnerAbility) < 0); + u16 predictedMove = gLastMoves[battlerDef]; //for now + + // check what effect partner is using + if (AI_DATA->partnerMove != 0) + { + switch (gBattleMoves[AI_DATA->partnerMove].effect) + { + case EFFECT_HELPING_HAND: + if (IS_MOVE_STATUS(move)) + score += 5; + break; + case EFFECT_PERISH_SONG: + if (!(gBattleMons[battlerDef].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED))) + { + if (IsTrappingMoveEffect(effect) || predictedMove == MOVE_INGRAIN) + score++; + } + break; + case EFFECT_ALWAYS_CRIT: + // Ally decided to use Frost Breath on us. we must have Anger Point as our ability + if (AI_DATA->atkAbility == ABILITY_ANGER_POINT) + { + if (GetWhoStrikesFirst(battlerAtk, battlerAtkPartner, TRUE) == 1) // partner moving first + { + // discourage raising our attack since it's about to be maxed out + if (IsAttackBoostMoveEffect(effect)) + score -= 3; + // encourage moves hitting multiple opponents + if (!IS_MOVE_STATUS(move) && (gBattleMoves[move].target & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY))) + score += 3; + } + } + break; + } + } // check partner move effect + + + // consider our move effect relative to partner state + switch (effect) + { + case EFFECT_HELPING_HAND: + if (AI_DATA->partnerMove != 0 && !HasDamagingMove(battlerAtkPartner)) + score -= 5; + break; + case EFFECT_PERISH_SONG: + if (AI_DATA->partnerMove != 0 && HasTrappingMoveEffect(battlerAtkPartner)) + score++; + break; + case EFFECT_MAGNET_RISE: + if (IsBattlerGrounded(battlerAtk) + && (HasMove(battlerAtkPartner, MOVE_EARTHQUAKE) || HasMove(battlerAtkPartner, MOVE_MAGNITUDE)) + && (AI_GetMoveEffectiveness(MOVE_EARTHQUAKE, battlerAtk, battlerAtkPartner) != AI_EFFECTIVENESS_x0)) // Doesn't resist ground move + { + RETURN_SCORE_PLUS(2); // partner has earthquake or magnitude -> good idea to use magnet rise + } + break; + } // our effect relative to partner + + + // consider global move effects + switch (effect) + { + case EFFECT_SANDSTORM: + if (ShouldSetSandstorm(battlerAtkPartner, atkPartnerAbility, atkPartnerHoldEffect)) + { + RETURN_SCORE_PLUS(1); // our partner benefits from sandstorm + } + break; + case EFFECT_RAIN_DANCE: + if (ShouldSetRain(battlerAtkPartner, atkPartnerAbility, atkPartnerHoldEffect)) + { + RETURN_SCORE_PLUS(1); // our partner benefits from rain + } + break; + case EFFECT_SUNNY_DAY: + if (ShouldSetSun(battlerAtkPartner, atkPartnerAbility, atkPartnerHoldEffect)) + { + RETURN_SCORE_PLUS(1); // our partner benefits from sun + } + break; + case EFFECT_HAIL: + if (IsBattlerAlive(battlerAtkPartner) + && ShouldSetHail(battlerAtkPartner, atkPartnerAbility, atkPartnerHoldEffect)) + { + RETURN_SCORE_PLUS(2); // our partner benefits from hail + } + break; + } // global move effect check + + + // check specific target + if (IsTargetingPartner(battlerAtk, battlerDef)) + { + if (GetMoveDamageResult(move) == MOVE_POWER_OTHER) + { + // partner ability checks + if (!partnerProtecting && gBattleMoves[move].target != MOVE_TARGET_BOTH && !DoesBattlerIgnoreAbilityChecks(AI_DATA->atkAbility, move)) + { + switch (atkPartnerAbility) + { + case ABILITY_VOLT_ABSORB: + if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_HP_AWARE)) + { + RETURN_SCORE_MINUS(10); + } + break; // handled in AI_HPAware + case ABILITY_MOTOR_DRIVE: + if (moveType == TYPE_ELECTRIC && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPEED)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_LIGHTNING_ROD: + if (moveType == TYPE_ELECTRIC + && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_WATER_ABSORB: + case ABILITY_DRY_SKIN: + if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_HP_AWARE)) + { + RETURN_SCORE_MINUS(10); + } + break; // handled in AI_HPAware + case ABILITY_STORM_DRAIN: + if (moveType == TYPE_WATER + && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_WATER_COMPACTION: + if (moveType == TYPE_WATER && GetMoveDamageResult(move) == MOVE_POWER_WEAK) + { + RETURN_SCORE_PLUS(1); // only mon with this ability is weak to water so only make it okay if we do very little damage + } + RETURN_SCORE_MINUS(10); + break; + case ABILITY_FLASH_FIRE: + if (moveType == TYPE_FIRE + && HasMoveWithType(battlerAtkPartner, TYPE_FIRE) + && !(gBattleResources->flags->flags[battlerAtkPartner] & RESOURCE_FLAG_FLASH_FIRE)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_SAP_SIPPER: + if (moveType == TYPE_GRASS + && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_JUSTIFIED: + if (moveType == TYPE_DARK + && !IS_MOVE_STATUS(move) + && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK) + && !CanAttackerFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 1)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_RATTLED: + if (!IS_MOVE_STATUS(move) + && (moveType == TYPE_DARK || moveType == TYPE_GHOST || moveType == TYPE_BUG) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPEED) + && !CanAttackerFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 1)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_CONTRARY: + if (IsStatLoweringEffect(effect)) + { + RETURN_SCORE_PLUS(2); + } + break; + case ABILITY_DEFIANT: + if (IsStatLoweringEffect(effect) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_COMPETITIVE: + if (IsStatLoweringEffect(effect) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + } + } // ability checks + } // move power check + + // attacker move effects specifically targeting partner + if (!partnerProtecting) + { + switch (effect) + { + case EFFECT_PURIFY: + if (gBattleMons[battlerAtkPartner].status1 & STATUS1_ANY) + { + RETURN_SCORE_PLUS(1); + } + break; + case EFFECT_SWAGGER: + if (gBattleMons[battlerAtkPartner].statStages[STAT_ATK] < MAX_STAT_STAGE + && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && (!CanBeConfused(battlerAtkPartner, TRUE) + || atkPartnerHoldEffect == HOLD_EFFECT_CURE_CONFUSION + || atkPartnerHoldEffect == HOLD_EFFECT_CURE_STATUS)) + { + RETURN_SCORE_PLUS(1); + } + break; + case EFFECT_FLATTER: + if (gBattleMons[battlerAtkPartner].statStages[STAT_SPATK] < MAX_STAT_STAGE + && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) + && (!CanBeConfused(battlerAtkPartner, TRUE) + || atkPartnerHoldEffect == HOLD_EFFECT_CURE_CONFUSION + || atkPartnerHoldEffect == HOLD_EFFECT_CURE_STATUS)) + { + RETURN_SCORE_PLUS(1); + } + break; + case EFFECT_BEAT_UP: + if (atkPartnerAbility == ABILITY_JUSTIFIED + && moveType == TYPE_DARK + && !IS_MOVE_STATUS(move) + && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK) + && !CanAttackerFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 0)) + { + RETURN_SCORE_PLUS(1); + } + break; + case EFFECT_SKILL_SWAP: + if (AI_DATA->atkAbility != AI_DATA->atkPartnerAbility && !attackerHasBadAbility) + { + if (AI_DATA->atkPartnerAbility == ABILITY_TRUANT) + { + RETURN_SCORE_PLUS(10); + } + else if (AI_DATA->atkAbility == ABILITY_COMPOUND_EYES + && HasMoveWithLowAccuracy(battlerAtkPartner, FOE(battlerAtkPartner), 90, TRUE, atkPartnerAbility, AI_GetAbility(FOE(battlerAtkPartner)), atkPartnerHoldEffect, AI_GetHoldEffect(FOE(battlerAtkPartner)))) + { + RETURN_SCORE_PLUS(3); + } + } + break; + case EFFECT_ROLE_PLAY: + if (attackerHasBadAbility && !partnerHasBadAbility) + { + RETURN_SCORE_PLUS(1); + } + break; + case EFFECT_WORRY_SEED: + case EFFECT_GASTRO_ACID: + case EFFECT_SIMPLE_BEAM: + if (partnerHasBadAbility) + { + RETURN_SCORE_PLUS(2); + } + break; + case EFFECT_ENTRAINMENT: + if (partnerHasBadAbility && IsAbilityOfRating(AI_DATA->atkAbility, 0)) + { + RETURN_SCORE_PLUS(1); + } + break; + case EFFECT_SOAK: + if (atkPartnerAbility == ABILITY_WONDER_GUARD + && (gBattleMons[battlerAtkPartner].type1 != TYPE_WATER + || gBattleMons[battlerAtkPartner].type2 != TYPE_WATER + || gBattleMons[battlerAtkPartner].type3 != TYPE_WATER)) + { + RETURN_SCORE_PLUS(1); + } + break; + case EFFECT_INSTRUCT: + { + u16 instructedMove; + if (GetWhoStrikesFirst(battlerAtk, battlerAtkPartner, TRUE) == 0) + instructedMove = AI_DATA->partnerMove; + else + instructedMove = gLastMoves[battlerAtkPartner]; + + if (instructedMove != MOVE_NONE + && !IS_MOVE_STATUS(instructedMove) + && gBattleMoves[instructedMove].target & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY)) //Use instruct on multi-target moves + { + RETURN_SCORE_PLUS(1); + } + } + break; + case EFFECT_AFTER_YOU: + if (GetWhoStrikesFirst(battlerAtkPartner, FOE(battlerAtkPartner), TRUE) == 1 // opponent mon 1 goes before partner + || GetWhoStrikesFirst(battlerAtkPartner, BATTLE_PARTNER(FOE(battlerAtkPartner)), TRUE) == 1) // opponent mon 2 goes before partner + { + if (gBattleMoves[AI_DATA->partnerMove].effect == EFFECT_COUNTER || gBattleMoves[AI_DATA->partnerMove].effect == EFFECT_MIRROR_COAT) + break; // These moves need to go last + RETURN_SCORE_PLUS(1); + } + break; + } // attacker move effects + } // check partner protecting + + score -= 30; // otherwise, don't target partner + } + else // checking opponent + { + // these checks mostly handled in AI_CheckBadMove and AI_CheckViability + switch (effect) + { + case EFFECT_SKILL_SWAP: + if (AI_DATA->atkAbility == ABILITY_TRUANT) + score += 5; + else if (IsAbilityOfRating(AI_DATA->atkAbility, 0) || IsAbilityOfRating(AI_DATA->defAbility, 10)) + score += 2; // we want to transfer our bad ability or take their awesome ability + break; + case EFFECT_EARTHQUAKE: + case EFFECT_MAGNITUDE: + if (!IsBattlerGrounded(battlerAtkPartner) + || (GetWhoStrikesFirst(battlerAtk, battlerAtkPartner, TRUE) == 1 && IsUngroundingEffect(gBattleMoves[AI_DATA->partnerMove].effect))) + score += 2; + else if (IS_BATTLER_OF_TYPE(battlerAtkPartner, TYPE_FIRE) + || IS_BATTLER_OF_TYPE(battlerAtkPartner, TYPE_ELECTRIC) + || IS_BATTLER_OF_TYPE(battlerAtkPartner, TYPE_POISON) + || IS_BATTLER_OF_TYPE(battlerAtkPartner, TYPE_ROCK)) + score -= 10; // partner will be hit by earthquake and is weak to it + else + score -= 3; + break; + } + + // lightning rod, flash fire against enemy handled in AI_CheckBadMove + } + + return score; +} + +// AI_FLAG_CHECK_VIABILITY - a weird mix of increasing and decreasing scores +static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + // move data + u16 moveEffect = gBattleMoves[move].effect; + u8 effectiveness = AI_GetMoveEffectiveness(move, battlerAtk, battlerDef); + u8 atkPriority = GetMovePriority(battlerAtk, move); + u16 predictedMove = gLastMoves[battlerDef]; //for now + bool32 isDoubleBattle = IsValidDoubleBattle(battlerAtk); + u32 i; + u8 atkHpPercent = GetHealthPercentage(battlerAtk); + u8 defHpPercent = GetHealthPercentage(battlerDef); + + // Targeting partner, check benefits of doing that instead + if (IsTargetingPartner(battlerAtk, battlerDef)) + return score; + + // check always hits + if (!IS_MOVE_STATUS(move) && gBattleMoves[move].accuracy == 0) + { + if (gBattleMons[battlerDef].statStages[STAT_EVASION] >= 10 || gBattleMons[battlerAtk].statStages[STAT_ACC] <= 2) + score++; + if (AI_RandLessThan(100) && (gBattleMons[battlerDef].statStages[STAT_EVASION] >= 8 || gBattleMons[battlerAtk].statStages[STAT_ACC] <= 4)) + score++; + } + + // check high crit + if (TestMoveFlags(move, FLAG_HIGH_CRIT) && effectiveness >= AI_EFFECTIVENESS_x2 && AI_RandLessThan(128)) + score++; + + // check already dead + if (!IsBattlerIncapacitated(battlerDef, AI_DATA->defAbility) + && CanTargetFaintAi(battlerAtk, battlerDef) + && GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1) // opponent should go first + { + if (atkPriority > 0) + score++; + else + score--; + } + + // check damage + if (gBattleMoves[move].power != 0 && GetMoveDamageResult(move) == MOVE_POWER_WEAK) + score--; + + // check status move preference + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_PREFER_STATUS_MOVES && IS_MOVE_STATUS(move) && effectiveness != AI_EFFECTIVENESS_x0) + score++; + + // check thawing moves + if ((gBattleMons[battlerAtk].status1 & STATUS1_FREEZE) && TestMoveFlags(move, FLAG_THAW_USER)) + score += (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) ? 20 : 10; + + // check burn + if (gBattleMons[battlerAtk].status1 & STATUS1_BURN) + { + switch (AI_DATA->atkAbility) + { + case ABILITY_GUTS: + break; + case ABILITY_NATURAL_CURE: + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING + && HasOnlyMovesWithSplit(battlerAtk, SPLIT_PHYSICAL, TRUE)) + score = 90; // Force switch if all your attacking moves are physical and you have Natural Cure. + break; + default: + if (IS_MOVE_PHYSICAL(move) && gBattleMoves[move].effect != EFFECT_FACADE) + score -= 2; + break; + } + } + + // ability checks + switch (AI_DATA->atkAbility) + { + case ABILITY_MOXIE: + case ABILITY_BEAST_BOOST: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // attacker should go first + { + if (CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + score += 8; // prioritize killing target for stat boost + } + break; + case ABILITY_MAGIC_GUARD: + switch (moveEffect) + { + case EFFECT_POISON: + case EFFECT_WILL_O_WISP: + case EFFECT_TOXIC: + case EFFECT_LEECH_SEED: + score -= 5; + break; + case EFFECT_CURSE: + if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) + score -= 5; + break; + } + break; + } // ability checks + + // move effect checks + switch (moveEffect) + { + + case EFFECT_HIT: + break; + case EFFECT_SLEEP: + case EFFECT_YAWN: + if (AI_RandLessThan(128)) + IncreaseSleepScore(battlerAtk, battlerDef, move, &score); + break; + case EFFECT_ABSORB: + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_BIG_ROOT) + score++; + if (effectiveness <= AI_EFFECTIVENESS_x0_5 && AI_RandLessThan(50)) + score -= 3; + break; + case EFFECT_EXPLOSION: + case EFFECT_MEMENTO: + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_WILL_SUICIDE && gBattleMons[battlerDef].statStages[STAT_EVASION] < 7) + { + if (atkHpPercent < 50 && AI_RandLessThan(128)) + score++; + } + break; + case EFFECT_MIRROR_MOVE: + if (predictedMove != MOVE_NONE) + return AI_CheckViability(battlerAtk, battlerDef, gLastMoves[battlerDef], score); + break; +// stat raising effects + case EFFECT_ATTACK_UP: + case EFFECT_ATTACK_UP_2: + if (MovesWithSplitUnusable(battlerAtk, battlerDef, SPLIT_PHYSICAL)) + { + score -= 8; + break; + } + else if (gBattleMons[battlerAtk].statStages[STAT_ATK] < 9) + { + if (atkHpPercent > 90 && AI_RandLessThan(128)) + { + score += 2; + break; + } + } + + if (!AI_RandLessThan(100)) + { + score--; + } + break; + case EFFECT_DEFENSE_UP: + case EFFECT_DEFENSE_UP_2: + case EFFECT_DEFENSE_UP_3: + if (!HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)) + score -= 2; + if (atkHpPercent > 90 && AI_RandLessThan(128)) + score += 2; + else if (atkHpPercent > 70 && AI_RandLessThan(200)) + break; + else if (atkHpPercent < 40) + score -= 2; + break; + case EFFECT_SPEED_UP: + case EFFECT_SPEED_UP_2: + if (IsAiFaster(AI_CHECK_SLOWER)) + { + if (!AI_RandLessThan(70)) + score += 3; + } + else + { + score -= 3; + } + break; + case EFFECT_SPECIAL_ATTACK_UP: + case EFFECT_SPECIAL_ATTACK_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_3: + if (MovesWithSplitUnusable(battlerAtk, battlerDef, SPLIT_SPECIAL)) + { + score -= 8; + break; + } + else if (gBattleMons[battlerAtk].statStages[STAT_SPATK] < 9) + { + if (atkHpPercent > 90 && AI_RandLessThan(128)) + { + score += 2; + break; + } + } + + if (!AI_RandLessThan(100)) + { + score--; + } + break; + case EFFECT_SPECIAL_DEFENSE_UP: + case EFFECT_SPECIAL_DEFENSE_UP_2: + if (!HasMoveWithSplit(battlerDef, SPLIT_SPECIAL)) + score -= 2; + if (atkHpPercent > 90 && AI_RandLessThan(128)) + score += 2; + else if (GetHealthPercentage(battlerAtk) > 70 && AI_RandLessThan(200)) + break; + else if (GetHealthPercentage(battlerAtk) < 40) + score -= 2; + break; + case EFFECT_ACCURACY_UP: + case EFFECT_ACCURACY_UP_2: + if (gBattleMons[battlerAtk].statStages[STAT_ACC] >= 9 && !AI_RandLessThan(50)) + score -= 2; + else if (atkHpPercent <= 70) + score -= 2; + else + score++; + break; + case EFFECT_EVASION_UP: + case EFFECT_EVASION_UP_2: + if (atkHpPercent > 90 && !AI_RandLessThan(100)) + score += 3; + if (gBattleMons[battlerAtk].statStages[STAT_EVASION] > 9 && AI_RandLessThan(128)) + score--; + if ((gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY) && atkHpPercent >= 50 && !AI_RandLessThan(80)) + score += 3; + if (gStatuses3[battlerDef] & STATUS3_LEECHSEED && !AI_RandLessThan(70)) + score += 3; + if (gStatuses3[battlerAtk] & STATUS3_ROOTED && AI_RandLessThan(128)) + score += 2; + if (gBattleMons[battlerDef].status2 & STATUS2_CURSED && !AI_RandLessThan(70)) + score += 3; + if (atkHpPercent < 70 || gBattleMons[battlerAtk].statStages[STAT_EVASION] == DEFAULT_STAT_STAGE) + break; + else if (atkHpPercent < 40 || defHpPercent < 40) + score -= 2; + else if (!AI_RandLessThan(70)) + score -= 2; + break; +// stat lowering effects + case EFFECT_ATTACK_DOWN: + case EFFECT_ATTACK_DOWN_2: + if (!ShouldLowerAttack(battlerAtk, battlerDef, AI_DATA->defAbility)) + score -= 2; + if (gBattleMons[battlerDef].statStages[STAT_ATK] < DEFAULT_STAT_STAGE) + score--; + else if (atkHpPercent <= 90) + score--; + if (gBattleMons[battlerDef].statStages[STAT_ATK] > 3 && !AI_RandLessThan(50)) + score -= 2; + else if (defHpPercent < 70) + score -= 2; + break; + case EFFECT_DEFENSE_DOWN: + case EFFECT_DEFENSE_DOWN_2: + if (!ShouldLowerDefense(battlerAtk, battlerDef, AI_DATA->defAbility)) + score -= 2; + if ((atkHpPercent < 70 && !AI_RandLessThan(50)) || (gBattleMons[battlerDef].statStages[STAT_DEF] <= 3 && !AI_RandLessThan(50))) + score -= 2; + if (defHpPercent <= 70) + score -= 2; + break; + case EFFECT_SPEED_DOWN: + case EFFECT_SPEED_DOWN_2: + if (IsAiFaster(AI_CHECK_FASTER)) + score -= 3; + else if (!AI_RandLessThan(70)) + score += 2; + break; + case EFFECT_SPECIAL_ATTACK_DOWN: + case EFFECT_SPECIAL_ATTACK_DOWN_2: + if (!ShouldLowerSpAtk(battlerAtk, battlerDef, AI_DATA->defAbility)) + score -= 2; + if (gBattleMons[battlerDef].statStages[STAT_SPATK] < DEFAULT_STAT_STAGE) + score--; + else if (atkHpPercent <= 90) + score--; + if (gBattleMons[battlerDef].statStages[STAT_SPATK] > 3 && !AI_RandLessThan(50)) + score -= 2; + else if (defHpPercent < 70) + score -= 2; + break; + case EFFECT_SPECIAL_DEFENSE_DOWN: + case EFFECT_SPECIAL_DEFENSE_DOWN_2: + if (!ShouldLowerSpDef(battlerAtk, battlerDef, AI_DATA->defAbility)) + score -= 2; + if ((atkHpPercent < 70 && !AI_RandLessThan(50)) + || (gBattleMons[battlerDef].statStages[STAT_SPDEF] <= 3 && !AI_RandLessThan(50))) + score -= 2; + if (defHpPercent <= 70) + score -= 2; + break; + case EFFECT_ACCURACY_DOWN: + case EFFECT_ACCURACY_DOWN_2: + if (ShouldLowerAccuracy(battlerAtk, battlerDef, AI_DATA->defAbility)) + score -= 2; + if ((atkHpPercent < 70 || defHpPercent < 70) && AI_RandLessThan(100)) + score--; + if (gBattleMons[battlerDef].statStages[STAT_ACC] <= 4 && !AI_RandLessThan(80)) + score -= 2; + if (gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY && !AI_RandLessThan(70)) + score += 2; + if (gStatuses3[battlerDef] & STATUS3_LEECHSEED && !AI_RandLessThan(70)) + score += 2; + if (gStatuses3[battlerDef] & STATUS3_ROOTED && AI_RandLessThan(128)) + score++; + if (gBattleMons[battlerDef].status2 & STATUS2_CURSED && !AI_RandLessThan(70)) + score += 2; + if (atkHpPercent > 70 || gBattleMons[battlerDef].statStages[STAT_ACC] < DEFAULT_STAT_STAGE) + break; + else if (atkHpPercent < 40 || defHpPercent < 40 || !AI_RandLessThan(70)) + score -= 2; + break; + case EFFECT_EVASION_DOWN: + case EFFECT_EVASION_DOWN_2: + if (!ShouldLowerEvasion(battlerAtk, battlerDef, AI_DATA->defAbility)) + score -= 2; + if ((atkHpPercent < 70 || gBattleMons[battlerDef].statStages[STAT_EVASION] <= 3) && !AI_RandLessThan(50)) + score -= 2; + if (defHpPercent <= 70) + score -= 2; + if (gBattleMons[battlerAtk].statStages[STAT_ACC] < DEFAULT_STAT_STAGE) + score++; + if (gBattleMons[battlerDef].statStages[STAT_EVASION] < 7 || AI_DATA->atkAbility == ABILITY_NO_GUARD) + score -= 2; + break; + case EFFECT_BIDE: + if (atkHpPercent < 90) + score -= 2; + break; + case EFFECT_DREAM_EATER: + if (!(gBattleMons[battlerDef].status1 & STATUS1_SLEEP)) + break; + score++; // if target is asleep, dream eater is a pretty good move even without draining + // fallthrough + case EFFECT_ACUPRESSURE: + break; + case EFFECT_ATTACK_ACCURACY_UP: // hone claws + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ACC, &score); + break; + case EFFECT_GROWTH: + case EFFECT_ATTACK_SPATK_UP: // work up + if (GetHealthPercentage(battlerAtk) <= 40 || AI_DATA->atkAbility == ABILITY_CONTRARY) + break; + + if (HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); + else if (HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); + break; + case EFFECT_HAZE: + if (AnyStatIsRaised(AI_DATA->battlerAtkPartner) + || PartnerHasSameMoveEffectWithoutTarget(AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + score -= 3; + break; + // fallthrough + case EFFECT_ROAR: + case EFFECT_CLEAR_SMOG: + if (isDoubleBattle) + score += min(CountPositiveStatStages(battlerDef) + CountPositiveStatStages(AI_DATA->battlerDefPartner), 7); + else + score += min(CountPositiveStatStages(battlerDef), 4); + break; + case EFFECT_MULTI_HIT: + case EFFECT_DOUBLE_HIT: + case EFFECT_TRIPLE_KICK: + break; + case EFFECT_CONVERSION: + if (!IS_BATTLER_OF_TYPE(battlerAtk, gBattleMoves[gBattleMons[battlerAtk].moves[0]].type)) + score++; + break; + case EFFECT_FLINCH_HIT: + score += ShouldTryToFlinch(battlerAtk, battlerDef, AI_DATA->atkAbility, AI_DATA->defAbility, move); + break; + case EFFECT_SWALLOW: + if (gDisableStructs[battlerAtk].stockpileCounter == 0) + { + break; + } + else + { + u32 healPercent = 0; + switch (gDisableStructs[battlerAtk].stockpileCounter) + { + case 1: + healPercent = 25; + break; + case 2: + healPercent = 50; + break; + case 3: + healPercent = 100; + break; + default: + break; + } + + if (ShouldRecover(battlerAtk, battlerDef, move, healPercent)) + score += 2; + } + break; + case EFFECT_RESTORE_HP: + case EFFECT_SOFTBOILED: + case EFFECT_ROOST: + case EFFECT_MORNING_SUN: + case EFFECT_SYNTHESIS: + case EFFECT_MOONLIGHT: + if (ShouldRecover(battlerAtk, battlerDef, move, 50)) + score += 3; + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_BIG_ROOT) + score++; + break; + case EFFECT_TOXIC: + case EFFECT_POISON: + IncreasePoisonScore(battlerAtk, battlerDef, move, &score); + break; + case EFFECT_LIGHT_SCREEN: + case EFFECT_REFLECT: + case EFFECT_AURORA_VEIL: + if (ShouldSetScreen(battlerAtk, battlerDef, moveEffect)) + { + score += 5; + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_LIGHT_CLAY) + score += 2; + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SCREENER) + score += 2; + } + break; + case EFFECT_REST: + if (!(CanSleep(battlerAtk, AI_DATA->atkAbility))) + { + break; + } + else if (ShouldRecover(battlerAtk, battlerDef, move, 100)) + { + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_CURE_SLP + || AI_DATA->atkHoldEffect == HOLD_EFFECT_CURE_STATUS + || HasMoveEffect(EFFECT_SLEEP_TALK, battlerAtk) + || HasMoveEffect(EFFECT_SNORE, battlerAtk) + || AI_DATA->atkAbility == ABILITY_SHED_SKIN + || AI_DATA->atkAbility == ABILITY_EARLY_BIRD + || (gBattleWeather & WEATHER_RAIN_ANY && gWishFutureKnock.weatherDuration != 1 && AI_DATA->atkAbility == ABILITY_HYDRATION && AI_DATA->atkHoldEffect != HOLD_EFFECT_UTILITY_UMBRELLA)) + { + score += 2; + } + else + { + score++; + } + } + break; + case EFFECT_OHKO: + if (gStatuses3[battlerAtk] & STATUS3_ALWAYS_HITS) + score += 5; + break; + case EFFECT_TRAP: + case EFFECT_MEAN_LOOK: + if (HasMoveEffect(battlerDef, EFFECT_RAPID_SPIN) + || IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST) + || gBattleMons[battlerDef].status2 & STATUS2_WRAPPED) + { + break; // in this case its a bad attacking move + } + else if (ShouldTrap(battlerAtk, battlerDef, move)) + { + score += 5; + } + break; + case EFFECT_MIST: + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SCREENER) + score += 2; + break; + case EFFECT_FOCUS_ENERGY: + case EFFECT_LASER_FOCUS: + if (AI_DATA->atkAbility == ABILITY_SUPER_LUCK + || AI_DATA->atkAbility == ABILITY_SNIPER + || AI_DATA->atkHoldEffect == HOLD_EFFECT_SCOPE_LENS + || TestMoveFlagsInMoveset(battlerAtk, FLAG_HIGH_CRIT)) + score += 2; + break; + case EFFECT_CONFUSE_HIT: + if (AI_DATA->atkAbility == ABILITY_SERENE_GRACE) + score++; + //fallthrough + case EFFECT_CONFUSE: + IncreaseConfusionScore(battlerAtk, battlerDef, move, &score); + break; + case EFFECT_PARALYZE: + IncreaseParalyzeScore(battlerAtk, battlerDef, move, &score); + break; + case EFFECT_ATTACK_DOWN_HIT: + case EFFECT_DEFENSE_DOWN_HIT: + case EFFECT_SPECIAL_ATTACK_DOWN_HIT: + case EFFECT_SPECIAL_DEFENSE_DOWN_HIT: + case EFFECT_ACCURACY_DOWN_HIT: + case EFFECT_EVASION_DOWN_HIT: + if (AI_DATA->atkAbility == ABILITY_SERENE_GRACE && AI_DATA->defAbility != ABILITY_CONTRARY) + score += 2; + break; + case EFFECT_SPEED_DOWN_HIT: + if (IsAiFaster(AI_CHECK_FASTER)) + score -= 2; + else if (!AI_RandLessThan(70)) + score++; + if (AI_DATA->atkAbility == ABILITY_SERENE_GRACE && AI_DATA->defAbility != ABILITY_CONTRARY) + score++; + break; + if (ShouldLowerSpeed(battlerAtk, battlerDef, AI_DATA->defAbility)) + { + if (AI_DATA->atkAbility == ABILITY_SERENE_GRACE && AI_DATA->defAbility != ABILITY_CONTRARY) + score += 4; + else + score += 2; + } + break; + case EFFECT_SUBSTITUTE: + if (gStatuses3[battlerDef] & STATUS3_PERISH_SONG) + score += 3; + if (gBattleMons[battlerDef].status1 & (STATUS1_BURN | STATUS1_PSN_ANY)) + score++; + if (HasMoveEffect(battlerDef, EFFECT_SLEEP) + || HasMoveEffect(battlerDef, EFFECT_TOXIC) + || HasMoveEffect(battlerDef, EFFECT_POISON) + || HasMoveEffect(battlerDef, EFFECT_PARALYZE) + || HasMoveEffect(battlerDef, EFFECT_WILL_O_WISP) + || HasMoveEffect(battlerDef, EFFECT_CONFUSE) + || HasMoveEffect(battlerDef, EFFECT_LEECH_SEED)) + score += 2; + if (!gBattleMons[battlerDef].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION && GetHealthPercentage(battlerAtk) > 70)) + score++; + break; + case EFFECT_MIMIC: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) + { + if (gLastMoves[battlerDef] != MOVE_NONE && gLastMoves[battlerDef] != 0xFFFF) + return AI_CheckViability(battlerAtk, battlerDef, gLastMoves[battlerDef], score); + } + break; + case EFFECT_LEECH_SEED: + if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) + || gStatuses3[battlerDef] & STATUS3_LEECHSEED + || HasMoveEffect(battlerDef, EFFECT_RAPID_SPIN) + || AI_DATA->defAbility == ABILITY_LIQUID_OOZE + || AI_DATA->defAbility == ABILITY_MAGIC_GUARD) + break; + score += 3; + if (!HasDamagingMove(battlerDef) || IsBattlerTrapped(battlerDef, FALSE)) + score += 2; + break; + case EFFECT_DO_NOTHING: + //todo - check z splash, z celebrate, z happy hour (lol) + break; + case EFFECT_TELEPORT: + if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) || GetBattlerSide(battlerAtk) != B_SIDE_PLAYER) + break; + //fallthrough + case EFFECT_HIT_ESCAPE: + case EFFECT_PARTING_SHOT: + if (!IsDoubleBattle()) + { + switch (ShouldPivot(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_THINKING_STRUCT->movesetIndex)) + { + case 0: // no + score -= 10; // technically should go in CheckBadMove, but this is easier/less computationally demanding + break; + case 1: // maybe + break; + case 2: // yes + score += 7; + break; + } + } + else //Double Battle + { + if (CountUsablePartyMons(battlerAtk) == 0) + break; // Can't switch + + //if (switchAbility == ABILITY_INTIMIDATE && PartyHasMoveSplit(battlerDef, SPLIT_PHYSICAL)) + //score += 7; + } + break; + case EFFECT_BATON_PASS: + if (ShouldSwitch() && (gBattleMons[battlerAtk].status2 & STATUS2_SUBSTITUTE + || (gStatuses3[battlerAtk] & (STATUS3_ROOTED | STATUS3_AQUA_RING | STATUS3_MAGNET_RISE | STATUS3_POWER_TRICK)) + || AnyStatIsRaised(battlerAtk))) + score += 5; + break; + case EFFECT_DISABLE: + if (gDisableStructs[battlerDef].disableTimer == 0 + && (B_MENTAL_HERB >= GEN_5 && AI_DATA->defHoldEffect != HOLD_EFFECT_CURE_ATTRACT)) // mental herb + { + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // AI goes first + { + if (gLastMoves[battlerDef] != MOVE_NONE + && gLastMoves[battlerDef] != 0xFFFF) + { + /* TODO predicted moves + if (gLastMoves[battlerDef] == predictedMove) + score += 3; + else */if (CanMoveFaintBattler(gLastMoves[battlerDef], battlerDef, battlerAtk, 1)) + score += 2;; //Disable move that can kill attacker + } + } + else if (predictedMove != MOVE_NONE && IS_MOVE_STATUS(predictedMove)) + { + score++; // Disable annoying status moves + } + } + break; + case EFFECT_ENCORE: + if (gDisableStructs[battlerDef].encoreTimer == 0 + && (B_MENTAL_HERB >= GEN_5 && AI_DATA->defHoldEffect != HOLD_EFFECT_CURE_ATTRACT)) // mental herb + { + if (IsEncoreEncouragedEffect(gBattleMoves[gLastMoves[battlerDef]].effect)) + score += 3; + } + break; + case EFFECT_PAIN_SPLIT: + { + u16 newHp = (gBattleMons[battlerAtk].hp + gBattleMons[battlerDef].hp) / 2; + u16 healthBenchmark = (gBattleMons[battlerAtk].hp * 12) / 10; + if (newHp > healthBenchmark && ShouldAbsorb(battlerAtk, battlerDef, move, AI_THINKING_STRUCT->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex])) + score += 2; + } + break; + case EFFECT_SLEEP_TALK: + case EFFECT_SNORE: + if (!IsWakeupTurn(battlerAtk) && gBattleMons[battlerAtk].status1 & STATUS1_SLEEP) + score += 10; + break; + case EFFECT_LOCK_ON: + if (HasMoveEffect(battlerAtk, EFFECT_OHKO)) + score += 3; + else if (AI_DATA->atkAbility == ABILITY_COMPOUND_EYES && HasMoveWithLowAccuracy(battlerAtk, battlerDef, 80, TRUE, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect)) + score += 3; + else if (HasMoveWithLowAccuracy(battlerAtk, battlerDef, 85, TRUE, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect)) + score += 3; + else if (HasMoveWithLowAccuracy(battlerAtk, battlerDef, 90, TRUE, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect)) + score++; + break; + case EFFECT_SPEED_UP_HIT: + if (AI_DATA->atkAbility == ABILITY_SERENE_GRACE && AI_DATA->defAbility != ABILITY_CONTRARY && IsAiFaster(AI_CHECK_SLOWER)) + score += 3; + break; + case EFFECT_DESTINY_BOND: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0 && CanTargetFaintAi(battlerDef, battlerAtk)) + score += 3; + break; + case EFFECT_SPITE: + //TODO - predicted move + break; + case EFFECT_WISH: + case EFFECT_HEAL_BELL: + if (ShouldUseWishAromatherapy(battlerAtk, battlerDef, move)) + score += 7; + break; + case EFFECT_THIEF: + { + bool32 canSteal = FALSE; + + #if defined B_TRAINERS_KNOCK_OFF_ITEMS && B_TRAINERS_KNOCK_OFF_ITEMS == TRUE + canSteal = TRUE; + #endif + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER || GetBattlerSide(battlerAtk) == B_SIDE_PLAYER) + canSteal = TRUE; + + if (canSteal && AI_DATA->atkItem == ITEM_NONE + && AI_DATA->defItem != ITEM_NONE + && CanBattlerGetOrLoseItem(battlerDef, AI_DATA->defItem) + && CanBattlerGetOrLoseItem(battlerAtk, AI_DATA->defItem) + && !HasMoveEffect(battlerAtk, EFFECT_ACROBATICS) + && AI_DATA->defAbility != ABILITY_STICKY_HOLD) + { + switch (AI_DATA->defHoldEffect) + { + case HOLD_EFFECT_NONE: + break; + case HOLD_EFFECT_CHOICE_BAND: + case HOLD_EFFECT_CHOICE_SCARF: + case HOLD_EFFECT_CHOICE_SPECS: + score += 2; + break; + case HOLD_EFFECT_TOXIC_ORB: + if (ShouldPoisonSelf(battlerAtk, AI_DATA->atkAbility)) + score += 2; + break; + case HOLD_EFFECT_FLAME_ORB: + if (ShouldBurnSelf(battlerAtk, AI_DATA->atkAbility)) + score += 2; + break; + case HOLD_EFFECT_BLACK_SLUDGE: + if (IS_BATTLER_OF_TYPE(battlerAtk, TYPE_POISON)) + score += 2; + break; + case HOLD_EFFECT_IRON_BALL: + if (HasMoveEffect(battlerAtk, EFFECT_FLING)) + score += 2; + break; + case HOLD_EFFECT_LAGGING_TAIL: + case HOLD_EFFECT_STICKY_BARB: + break; + default: + score++; + break; + } + } + break; + } + break; + case EFFECT_NIGHTMARE: + if (AI_DATA->defAbility != ABILITY_MAGIC_GUARD + && !(gBattleMons[battlerDef].status2 & STATUS2_NIGHTMARE) + && (AI_DATA->defAbility == ABILITY_COMATOSE || gBattleMons[battlerDef].status1 & STATUS1_SLEEP)) + { + score += 5; + if (IsBattlerTrapped(battlerDef, TRUE)) + score += 3; + } + break; + case EFFECT_CURSE: + if (IS_BATTLER_OF_TYPE(battlerAtk, TYPE_GHOST)) + { + if (IsBattlerTrapped(battlerDef, TRUE)) + score += 3; + else + score++; + break; + } + else + { + if (AI_DATA->atkAbility == ABILITY_CONTRARY || AI_DATA->defAbility == ABILITY_MAGIC_GUARD) + break; + else if (gBattleMons[battlerAtk].statStages[STAT_ATK] < 8) + score += (8 - gBattleMons[battlerAtk].statStages[STAT_ATK]); + else if (gBattleMons[battlerAtk].statStages[STAT_SPEED] < 3) + break; + else if (gBattleMons[battlerAtk].statStages[STAT_DEF] < 8) + score += (8 - gBattleMons[battlerAtk].statStages[STAT_DEF]); + } + break; + case EFFECT_PROTECT: + if (predictedMove == 0xFFFF) + predictedMove = MOVE_NONE; + switch (move) + { + case MOVE_QUICK_GUARD: + if (predictedMove != MOVE_NONE && gBattleMoves[predictedMove].priority > 0) + ProtectChecks(battlerAtk, battlerDef, move, predictedMove, &score); + break; + case MOVE_WIDE_GUARD: + if (predictedMove != MOVE_NONE && gBattleMoves[predictedMove].target & (MOVE_TARGET_FOES_AND_ALLY | MOVE_TARGET_BOTH)) + { + ProtectChecks(battlerAtk, battlerDef, move, predictedMove, &score); + } + else if (isDoubleBattle && gBattleMoves[AI_DATA->partnerMove].target & MOVE_TARGET_FOES_AND_ALLY) + { + if (AI_DATA->atkAbility != ABILITY_TELEPATHY) + ProtectChecks(battlerAtk, battlerDef, move, predictedMove, &score); + } + break; + case MOVE_CRAFTY_SHIELD: + if (predictedMove != MOVE_NONE && IS_MOVE_STATUS(predictedMove) && !(gBattleMoves[predictedMove].target & MOVE_TARGET_USER)) + ProtectChecks(battlerAtk, battlerDef, move, predictedMove, &score); + break; + + case MOVE_MAT_BLOCK: + if (gDisableStructs[battlerAtk].isFirstTurn && predictedMove != MOVE_NONE + && !IS_MOVE_STATUS(predictedMove) && !(gBattleMoves[predictedMove].target & MOVE_TARGET_USER)) + ProtectChecks(battlerAtk, battlerDef, move, predictedMove, &score); + break; + case MOVE_KINGS_SHIELD: + #if (defined SPECIES_AEGISLASH && defined SPECIES_AEGISLASH_BLADE) + if (AI_DATA->atkAbility == ABILITY_STANCE_CHANGE //Special logic for Aegislash + && AI_DATA->atkSpecies == SPECIES_AEGISLASH_BLADE + && !IsBattlerIncapacitated(battlerDef, AI_DATA->defAbility)) + { + score += 3; + break; + } + #endif + //fallthrough + default: // protect + ProtectChecks(battlerAtk, battlerDef, move, predictedMove, &score); + break; + } + break; + case EFFECT_ENDURE: + if (CanTargetFaintAi(battlerDef, battlerAtk)) + { + if (gBattleMons[battlerAtk].hp > gBattleMons[battlerAtk].maxHP / 4 // Pinch berry couldn't have activated yet + && IsPinchBerryItemEffect(AI_DATA->atkHoldEffect)) + { + score += 3; + } + else if (gBattleMons[battlerAtk].hp > 1) // Only spam endure for Flail/Reversal if you're not at Min Health + { + if (HasMoveEffect(battlerAtk, EFFECT_FLAIL) || HasMoveEffect(battlerAtk, EFFECT_ENDEAVOR)) + score += 3; + } + } + break; + + case EFFECT_SPIKES: + case EFFECT_STEALTH_ROCK: + case EFFECT_STICKY_WEB: + case EFFECT_TOXIC_SPIKES: + if (AI_DATA->defAbility == ABILITY_MAGIC_BOUNCE || CountUsablePartyMons(battlerDef) == 0) + break; + if (gDisableStructs[battlerAtk].isFirstTurn) + score += 2; + //TODO - track entire opponent party data to determine hazard effectiveness + break; + case EFFECT_FORESIGHT: + if (AI_DATA->atkAbility == ABILITY_SCRAPPY) + break; + else if (gBattleMons[battlerDef].statStages[STAT_EVASION] > DEFAULT_STAT_STAGE + || (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST) + && (HasMoveWithType(battlerAtk, TYPE_NORMAL) + || HasMoveWithType(battlerAtk, TYPE_FIGHTING)))) + score += 2; + break; + case EFFECT_MIRACLE_EYE: + if (gBattleMons[battlerDef].statStages[STAT_EVASION] > DEFAULT_STAT_STAGE + || (IS_BATTLER_OF_TYPE(battlerDef, TYPE_DARK) && (HasMoveWithType(battlerAtk, TYPE_PSYCHIC)))) + score += 2; + break; + case EFFECT_PERISH_SONG: + if (IsBattlerTrapped(battlerDef, TRUE)) + score += 3; + break; + case EFFECT_SANDSTORM: + if (ShouldSetSandstorm(battlerAtk, AI_DATA->atkHoldEffect, AI_DATA->atkHoldEffect)) + { + score++; + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_SMOOTH_ROCK) + score++; + if (HasMoveEffect(battlerDef, EFFECT_MORNING_SUN) + || HasMoveEffect(battlerDef, EFFECT_SYNTHESIS) + || HasMoveEffect(battlerDef, EFFECT_MOONLIGHT)) + score += 2; + } + break; + case EFFECT_HAIL: + if (ShouldSetHail(battlerAtk, AI_DATA->atkAbility, AI_DATA->atkHoldEffect)) + { + if ((HasMoveEffect(battlerAtk, EFFECT_AURORA_VEIL) || HasMoveEffect(AI_DATA->battlerAtkPartner, EFFECT_AURORA_VEIL)) + && ShouldSetScreen(battlerAtk, battlerDef, EFFECT_AURORA_VEIL)) + score += 3; + + score++; + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_ICY_ROCK) + score++; + if (HasMoveEffect(battlerDef, EFFECT_MORNING_SUN) + || HasMoveEffect(battlerDef, EFFECT_SYNTHESIS) + || HasMoveEffect(battlerDef, EFFECT_MOONLIGHT)) + score += 2; + } + break; + case EFFECT_RAIN_DANCE: + if (ShouldSetRain(battlerAtk, AI_DATA->atkAbility, AI_DATA->atkHoldEffect)) + { + score++; + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_DAMP_ROCK) + score++; + if (HasMoveEffect(battlerDef, EFFECT_MORNING_SUN) + || HasMoveEffect(battlerDef, EFFECT_SYNTHESIS) + || HasMoveEffect(battlerDef, EFFECT_MOONLIGHT)) + score += 2; + if (HasMoveWithType(battlerDef, TYPE_FIRE) || HasMoveWithType(AI_DATA->battlerDefPartner, TYPE_FIRE)) + score++; + } + break; + case EFFECT_SUNNY_DAY: + if (ShouldSetSun(battlerAtk, AI_DATA->atkAbility, AI_DATA->atkHoldEffect)) + { + score++; + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_HEAT_ROCK) + score++; + if (HasMoveWithType(battlerDef, TYPE_WATER) || HasMoveWithType(AI_DATA->battlerDefPartner, TYPE_WATER)) + score++; + if (HasMoveEffect(battlerDef, EFFECT_THUNDER) || HasMoveEffect(AI_DATA->battlerDefPartner, EFFECT_THUNDER)) + score++; + } + break; + case EFFECT_ATTACK_UP_HIT: + if (AI_DATA->atkAbility == ABILITY_SERENE_GRACE) + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); + break; + case EFFECT_FELL_STINGER: + if (gBattleMons[battlerAtk].statStages[STAT_ATK] < MAX_STAT_STAGE + && AI_DATA->atkAbility != ABILITY_CONTRARY + && CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + { + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // Attacker goes first + score += 9; + else + score += 3; + } + break; + case EFFECT_BELLY_DRUM: + if (!CanTargetFaintAi(battlerDef, battlerAtk) && HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL) && AI_DATA->atkAbility != ABILITY_CONTRARY) + score += (MAX_STAT_STAGE - gBattleMons[battlerAtk].statStages[STAT_ATK]); + break; + case EFFECT_PSYCH_UP: + case EFFECT_SPECTRAL_THIEF: + // Want to copy positive stat changes + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerDef].statStages[i] > gBattleMons[battlerAtk].statStages[i]) + { + switch (i) + { + case STAT_ATK: + if (HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score++; + break; + case STAT_SPATK: + if (HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + score++; + break; + case STAT_ACC: + case STAT_EVASION: + case STAT_SPEED: + score++; + break; + case STAT_DEF: + case STAT_SPDEF: + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_STALL) + score++; + break; + } + } + } + break; + case EFFECT_SEMI_INVULNERABLE: + score++; + if (predictedMove != MOVE_NONE && !isDoubleBattle) + { + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // Attacker goes first + { + if (gBattleMoves[predictedMove].effect == EFFECT_EXPLOSION + || gBattleMoves[predictedMove].effect == EFFECT_PROTECT) + score += 3; + } + else if (gBattleMoves[predictedMove].effect == EFFECT_SEMI_INVULNERABLE && !(gStatuses3[battlerDef] & STATUS3_SEMI_INVULNERABLE)) + { + score += 3; + } + } + break; + case EFFECT_DEFENSE_CURL: + if (HasMoveEffect(battlerAtk, EFFECT_ROLLOUT) && !(gBattleMons[battlerAtk].status2 & STATUS2_DEFENSE_CURL)) + score++; + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_DEF, &score); + break; + case EFFECT_FAKE_OUT: + if (move == MOVE_FAKE_OUT // filter out first impression + && ShouldFakeOut(battlerAtk, battlerDef, move)) + score += 8; + break; + case EFFECT_STOCKPILE: + if (AI_DATA->atkAbility == ABILITY_CONTRARY) + break; + if (HasMoveEffect(battlerAtk, EFFECT_SWALLOW) + || HasMoveEffect(battlerAtk, EFFECT_SPIT_UP)) + score += 2; + + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_DEF, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPDEF, &score); + break; + case EFFECT_SPIT_UP: + if (gDisableStructs[battlerAtk].stockpileCounter >= 2) + score++; + break; + case EFFECT_ROLLOUT: + if (gBattleMons[battlerAtk].status2 & STATUS2_DEFENSE_CURL) + score += 8; + break; + case EFFECT_SWAGGER: + if (HasMoveEffect(battlerAtk, EFFECT_FOUL_PLAY) + || HasMoveEffect(battlerAtk, EFFECT_PSYCH_UP) + || HasMoveEffect(battlerAtk, EFFECT_SPECTRAL_THIEF)) + score++; + + if (AI_DATA->defAbility == ABILITY_CONTRARY) + score += 2; + + IncreaseConfusionScore(battlerAtk, battlerDef, move, &score); + break; + case EFFECT_FLATTER: + if (HasMoveEffect(battlerAtk, EFFECT_PSYCH_UP) + || HasMoveEffect(battlerAtk, EFFECT_SPECTRAL_THIEF)) + score += 2; + + if (AI_DATA->defAbility == ABILITY_CONTRARY) + score += 2; + + IncreaseConfusionScore(battlerAtk, battlerDef, move, &score); + break; + case EFFECT_FURY_CUTTER: + if (!isDoubleBattle && AI_DATA->atkHoldEffect == HOLD_EFFECT_METRONOME) + score += 3; + break; + case EFFECT_ATTRACT: + if (!isDoubleBattle && BattlerWillFaintFromSecondaryDamage(battlerDef, AI_DATA->defAbility) + && GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1) // Target goes first + break; // Don't use if the attract won't have a change to activate + + if (gBattleMons[battlerDef].status1 & STATUS1_ANY + || (gBattleMons[battlerDef].status2 & STATUS2_CONFUSION) + || IsBattlerTrapped(battlerDef, TRUE)) + score += 2; + else + score++; + break; + case EFFECT_SAFEGUARD: + if (!AI_IsTerrainAffected(battlerAtk, STATUS_FIELD_MISTY_TERRAIN) || !IsBattlerGrounded(battlerAtk)) + score++; + //if (CountUsablePartyMons(battlerDef) != 0) + //score += 8; + break; + case EFFECT_PURSUIT: + /*TODO + if (IsPredictedToSwitch(battlerDef, battlerAtk)) + score += 3; + else if (IsPredictedToUsePursuitableMove(battlerDef, battlerAtk) && !MoveWouldHitFirst(move, battlerAtk, battlerDef)) //Pursuit against fast U-Turn + score += 3;*/ + break; + case EFFECT_RAPID_SPIN: + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPEED, &score); // Gen 8 increases speed + //fallthrough + case EFFECT_DEFOG: + if (gSideStatuses[GetBattlerSide(battlerAtk)] & SIDE_STATUS_HAZARDS_ANY && CountUsablePartyMons(battlerAtk) != 0) + { + score += 3; + break; + } + + switch (move) + { + case MOVE_DEFOG: + if (gSideStatuses[GetBattlerSide(battlerDef)] & (SIDE_STATUS_SCREEN_ANY | SIDE_STATUS_SAFEGUARD | SIDE_STATUS_MIST)) + { + score += 3; + } + else if (!(gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_SPIKES)) //Don't blow away hazards if you set them up + { + if (isDoubleBattle) + { + if (IsHazardMoveEffect(gBattleMoves[AI_DATA->partnerMove].effect) // Partner is going to set up hazards + && GetWhoStrikesFirst(battlerAtk, AI_DATA->battlerAtkPartner, TRUE) == 1) // Partner going first + break; // Don't use Defog if partner is going to set up hazards + } + + // check defog lowering evasion + if (ShouldLowerEvasion(battlerAtk, battlerDef, AI_DATA->defAbility)) + { + if (gBattleMons[battlerDef].statStages[STAT_EVASION] > 7 + || HasMoveWithLowAccuracy(battlerAtk, battlerDef, 90, TRUE, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect)) + score += 2; // encourage lowering evasion if they are evasive or we have a move with low accuracy + else + score++; + } + } + break; + case MOVE_RAPID_SPIN: + if (gStatuses3[battlerAtk] & STATUS3_LEECHSEED || gBattleMons[battlerAtk].status2 & STATUS2_WRAPPED) + score += 3; + break; + } + break; + case EFFECT_TORMENT: + break; + case EFFECT_WILL_O_WISP: + IncreaseBurnScore(battlerAtk, battlerDef, move, &score); + break; + case EFFECT_FOLLOW_ME: + if (isDoubleBattle + && move != MOVE_SPOTLIGHT + && !IsBattlerIncapacitated(battlerDef, AI_DATA->defAbility) + && (move != MOVE_RAGE_POWDER || IsAffectedByPowder(battlerDef, AI_DATA->defAbility, AI_DATA->defHoldEffect)) // Rage Powder doesn't affect powder immunities + && IsBattlerAlive(AI_DATA->battlerAtkPartner)) + { + u16 predictedMoveOnPartner = gLastMoves[AI_DATA->battlerAtkPartner]; + if (predictedMoveOnPartner != MOVE_NONE && !IS_MOVE_STATUS(predictedMoveOnPartner)) + score += 3; + } + break; + case EFFECT_NATURE_POWER: + return AI_CheckViability(battlerAtk, battlerDef, GetNaturePowerMove(), score); + case EFFECT_CHARGE: + if (HasDamagingMoveOfType(battlerAtk, TYPE_ELECTRIC)) + score += 2; + + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPDEF, &score); + break; + case EFFECT_TAUNT: + if (IS_MOVE_STATUS(predictedMove)) + score += 3; + else if (HasMoveWithSplit(battlerDef, SPLIT_STATUS)) + score += 2; + break; + case EFFECT_TRICK: + case EFFECT_BESTOW: + switch (AI_DATA->atkHoldEffect) + { + case HOLD_EFFECT_CHOICE_SCARF: + score += 2; // assume its beneficial + break; + case HOLD_EFFECT_CHOICE_BAND: + if (!HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)) + score += 2; + break; + case HOLD_EFFECT_CHOICE_SPECS: + if (!HasMoveWithSplit(battlerDef, SPLIT_SPECIAL)) + score += 2; + break; + case HOLD_EFFECT_TOXIC_ORB: + if (!ShouldPoisonSelf(battlerAtk, AI_DATA->atkAbility) && CanBePoisoned(battlerDef, AI_DATA->defAbility)) + score += 2; + break; + case HOLD_EFFECT_FLAME_ORB: + if (!ShouldBurnSelf(battlerAtk, AI_DATA->atkAbility) && CanBeBurned(battlerAtk, AI_DATA->defAbility)) + score += 2; + break; + case HOLD_EFFECT_BLACK_SLUDGE: + if (!IS_BATTLER_OF_TYPE(battlerDef, TYPE_POISON) && AI_DATA->defAbility != ABILITY_MAGIC_GUARD) + score += 3; + break; + case HOLD_EFFECT_IRON_BALL: + if (!HasMoveEffect(battlerDef, EFFECT_FLING) || !IsBattlerGrounded(battlerDef)) + score += 2; + break; + case HOLD_EFFECT_LAGGING_TAIL: + case HOLD_EFFECT_STICKY_BARB: + score += 3; + break; + case HOLD_EFFECT_UTILITY_UMBRELLA: + if (AI_DATA->atkAbility != ABILITY_SOLAR_POWER && AI_DATA->atkAbility != ABILITY_DRY_SKIN && AI_WeatherHasEffect()) + { + switch (AI_DATA->defAbility) + { + case ABILITY_SWIFT_SWIM: + if (gBattleWeather & WEATHER_RAIN_ANY) + score += 3; // Slow 'em down + break; + case ABILITY_CHLOROPHYLL: + case ABILITY_FLOWER_GIFT: + if (gBattleWeather & WEATHER_SUN_ANY) + score += 3; // Slow 'em down + break; + } + } + break; + case HOLD_EFFECT_EJECT_BUTTON: + //if (!IsRaidBattle() && IsDynamaxed(battlerDef) && gNewBS->dynamaxData.timer[battlerDef] > 1 && + if (HasDamagingMove(battlerAtk) + || (isDoubleBattle && IsBattlerAlive(AI_DATA->battlerAtkPartner) && HasDamagingMove(AI_DATA->battlerAtkPartner))) + score += 2; // Force 'em out next turn + break; + default: + if (move != MOVE_BESTOW && AI_DATA->atkItem == ITEM_NONE) + { + switch (AI_DATA->defHoldEffect) + { + case HOLD_EFFECT_CHOICE_BAND: + break; + case HOLD_EFFECT_TOXIC_ORB: + if (ShouldPoisonSelf(battlerAtk, AI_DATA->atkAbility)) + score += 2; + break; + case HOLD_EFFECT_FLAME_ORB: + if (ShouldBurnSelf(battlerAtk, AI_DATA->atkAbility)) + score += 2; + break; + case HOLD_EFFECT_BLACK_SLUDGE: + if (IS_BATTLER_OF_TYPE(battlerAtk, TYPE_POISON) || AI_DATA->atkAbility == ABILITY_MAGIC_GUARD) + score += 3; + break; + case HOLD_EFFECT_IRON_BALL: + if (HasMoveEffect(battlerAtk, EFFECT_FLING)) + score += 2; + break; + case HOLD_EFFECT_LAGGING_TAIL: + case HOLD_EFFECT_STICKY_BARB: + break; + default: + score++; //other hold effects generally universally good + break; + } + } + } + break; + case EFFECT_ROLE_PLAY: + if (!IsRolePlayBannedAbilityAtk(AI_DATA->atkAbility) + && !IsRolePlayBannedAbility(AI_DATA->defAbility) + && !IsAbilityOfRating(AI_DATA->atkAbility, 5) + && IsAbilityOfRating(AI_DATA->defAbility, 5)) + score += 2; + break; + case EFFECT_INGRAIN: + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_BIG_ROOT) + score += 3; + else + score++; + break; + case EFFECT_SUPERPOWER: + case EFFECT_OVERHEAT: + if (AI_DATA->atkAbility == ABILITY_CONTRARY) + score += 10; + break; + case EFFECT_MAGIC_COAT: + if (IS_MOVE_STATUS(predictedMove) && gBattleMoves[predictedMove].target & (MOVE_TARGET_SELECTED | MOVE_TARGET_OPPONENTS_FIELD | MOVE_TARGET_BOTH)) + score += 3; + break; + case EFFECT_RECYCLE: + if (gBattleStruct->usedHeldItems[battlerAtk] != ITEM_NONE) + score++; + if (IsRecycleEncouragedItem(gBattleStruct->usedHeldItems[battlerAtk])) + score++; + break; + case EFFECT_BRICK_BREAK: + if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_REFLECT) + score++; + if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_LIGHTSCREEN) + score++; + if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_AURORA_VEIL) + score++; + break; + case EFFECT_KNOCK_OFF: + if (CanKnockOffItem(battlerDef, AI_DATA->defItem)) + { + switch (AI_DATA->defHoldEffect) + { + case HOLD_EFFECT_IRON_BALL: + if (HasMoveEffect(battlerDef, EFFECT_FLING)) + score += 4; + break; + case HOLD_EFFECT_LAGGING_TAIL: + case HOLD_EFFECT_STICKY_BARB: + break; + default: + score += 3; + break; + } + } + break; + case EFFECT_SKILL_SWAP: + if (GetAbilityRating(AI_DATA->defAbility) > GetAbilityRating(AI_DATA->atkAbility)) + score++; + break; + case EFFECT_WORRY_SEED: + case EFFECT_GASTRO_ACID: + case EFFECT_SIMPLE_BEAM: + if (IsAbilityOfRating(AI_DATA->defAbility, 5)) + score += 2; + break; + case EFFECT_ENTRAINMENT: + if (IsAbilityOfRating(AI_DATA->defAbility, 5) || GetAbilityRating(AI_DATA->atkAbility) <= 0) + { + if (AI_DATA->defAbility != AI_DATA->atkAbility && !(gStatuses3[battlerDef] & STATUS3_GASTRO_ACID)) + score += 2; + } + break; + case EFFECT_IMPRISON: + if (predictedMove != MOVE_NONE && HasMove(battlerAtk, predictedMove)) + score += 3; + else if (gDisableStructs[battlerAtk].isFirstTurn == 0) + score++; + break; + case EFFECT_REFRESH: + if (gBattleMons[battlerAtk].status1 & STATUS1_ANY) + score += 2; + break; + case EFFECT_PSYCHO_SHIFT: + if (gBattleMons[battlerAtk].status1 & STATUS1_PSN_ANY) + IncreasePoisonScore(battlerAtk, battlerDef, move, &score); + else if (gBattleMons[battlerAtk].status1 & STATUS1_BURN) + IncreaseBurnScore(battlerAtk, battlerDef, move, &score); + else if (gBattleMons[battlerAtk].status1 & STATUS1_PARALYSIS) + IncreaseParalyzeScore(battlerAtk, battlerDef, move, &score); + else if (gBattleMons[battlerAtk].status1 & STATUS1_SLEEP) + IncreaseSleepScore(battlerAtk, battlerDef, move, &score); + break; + case EFFECT_GRUDGE: + break; + case EFFECT_SNATCH: + if (predictedMove != MOVE_NONE && TestMoveFlags(predictedMove, FLAG_SNATCH_AFFECTED)) + score += 3; // Steal move + break; + case EFFECT_MUD_SPORT: + if (!HasMoveWithType(battlerAtk, TYPE_ELECTRIC) && HasMoveWithType(battlerDef, TYPE_ELECTRIC)) + score++; + break; + case EFFECT_WATER_SPORT: + if (!HasMoveWithType(battlerAtk, TYPE_FIRE) && (HasMoveWithType(battlerDef, TYPE_FIRE))) + score++; + break; + case EFFECT_TICKLE: + if (gBattleMons[battlerDef].statStages[STAT_DEF] > 4 && HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL) + && AI_DATA->defAbility != ABILITY_CONTRARY && ShouldLowerDefense(battlerAtk, battlerDef, AI_DATA->defAbility)) + { + score += 2; + } + else if (ShouldLowerAttack(battlerAtk, battlerDef, AI_DATA->defAbility)) + { + score += 2; + } + break; + case EFFECT_COSMIC_POWER: + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_DEF, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPDEF, &score); + break; + case EFFECT_BULK_UP: + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_DEF, &score); + break; + case EFFECT_CALM_MIND: + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPDEF, &score); + break; + case EFFECT_GEOMANCY: + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_POWER_HERB) + score += 3; + //fallthrough + case EFFECT_QUIVER_DANCE: + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPEED, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPDEF, &score); + break; + case EFFECT_SHELL_SMASH: + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_POWER_HERB) + score += 3; + + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPEED, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); + break; + case EFFECT_DRAGON_DANCE: + case EFFECT_SHIFT_GEAR: + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPEED, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); + break; + case EFFECT_GUARD_SWAP: + if (gBattleMons[battlerDef].statStages[STAT_DEF] > gBattleMons[battlerAtk].statStages[STAT_DEF] + && gBattleMons[battlerDef].statStages[STAT_SPDEF] >= gBattleMons[battlerAtk].statStages[STAT_SPDEF]) + score++; + else if (gBattleMons[battlerDef].statStages[STAT_SPDEF] > gBattleMons[battlerAtk].statStages[STAT_SPDEF] + && gBattleMons[battlerDef].statStages[STAT_DEF] >= gBattleMons[battlerAtk].statStages[STAT_DEF]) + score++; + break; + case EFFECT_POWER_SWAP: + if (gBattleMons[battlerDef].statStages[STAT_ATK] > gBattleMons[battlerAtk].statStages[STAT_ATK] + && gBattleMons[battlerDef].statStages[STAT_SPATK] >= gBattleMons[battlerAtk].statStages[STAT_SPATK]) + score++; + else if (gBattleMons[battlerDef].statStages[STAT_SPATK] > gBattleMons[battlerAtk].statStages[STAT_SPATK] + && gBattleMons[battlerDef].statStages[STAT_ATK] >= gBattleMons[battlerAtk].statStages[STAT_ATK]) + score++; + break; + case EFFECT_POWER_TRICK: + if (!(gStatuses3[battlerAtk] & STATUS3_POWER_TRICK)) + { + if (gBattleMons[battlerAtk].defense > gBattleMons[battlerAtk].attack && HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + score += 2; + break; + } + break; + case EFFECT_HEART_SWAP: + { + bool32 hasHigherStat = FALSE; + //Only use if all target stats are >= attacker stats to prevent infinite loop + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerDef].statStages[i] < gBattleMons[battlerAtk].statStages[i]) + break; + if (gBattleMons[battlerDef].statStages[i] > gBattleMons[battlerAtk].statStages[i]) + hasHigherStat = TRUE; + } + if (hasHigherStat && i == NUM_BATTLE_STATS) + score++; + } + break; + case EFFECT_SPEED_SWAP: + // TODO this is cheating a bit... + if (gBattleMons[battlerDef].speed > gBattleMons[battlerAtk].speed) + score += 3; + break; + case EFFECT_GUARD_SPLIT: + { + // TODO also kind of cheating... + u16 newDefense = (gBattleMons[battlerAtk].defense + gBattleMons[battlerDef].defense) / 2; + u16 newSpDef = (gBattleMons[battlerAtk].spDefense + gBattleMons[battlerDef].spDefense) / 2; + + if ((newDefense > gBattleMons[battlerAtk].defense && newSpDef >= gBattleMons[battlerAtk].spDefense) + || (newSpDef > gBattleMons[battlerAtk].spDefense && newDefense >= gBattleMons[battlerAtk].defense)) + score++; + } + break; + case EFFECT_POWER_SPLIT: + { + u16 newAttack = (gBattleMons[battlerAtk].attack + gBattleMons[battlerDef].attack) / 2; + u16 newSpAtk = (gBattleMons[battlerAtk].spAttack + gBattleMons[battlerDef].spAttack) / 2; + + if ((newAttack > gBattleMons[battlerAtk].attack && newSpAtk >= gBattleMons[battlerAtk].spAttack) + || (newSpAtk > gBattleMons[battlerAtk].spAttack && newAttack >= gBattleMons[battlerAtk].attack)) + score++; + } + break; + case EFFECT_BUG_BITE: // And pluck + if (gBattleMons[battlerDef].status2 & STATUS2_SUBSTITUTE || AI_DATA->defAbility == ABILITY_STICKY_HOLD) + break; + else if (ItemId_GetPocket(AI_DATA->defItem) == POCKET_BERRIES) + score += 3; + break; + case EFFECT_INCINERATE: + if (gBattleMons[battlerDef].status2 & STATUS2_SUBSTITUTE || AI_DATA->defAbility == ABILITY_STICKY_HOLD) + break; + else if (ItemId_GetPocket(AI_DATA->defItem) == POCKET_BERRIES || AI_DATA->defHoldEffect == HOLD_EFFECT_GEMS) + score += 3; + break; + case EFFECT_SMACK_DOWN: + if (!IsBattlerGrounded(battlerDef)) + score += 3; + break; + case EFFECT_SLEEP_HIT: // Relic Song + #if (defined SPECIES_MELOETTA && defined SPECIES_MELOETTA_PIROUETTE) + if (AI_DATA->atkSpecies == SPECIES_MELOETTA && gBattleMons[battlerDef].defense < gBattleMons[battlerDef].spDefense) + score += 3; // Change to pirouette if can do more damage + else if (AI_DATA->atkSpecies == SPECIES_MELOETTA_PIROUETTE && gBattleMons[battlerDef].spDefense < gBattleMons[battlerDef].defense) + score += 3; // Change to Aria if can do more damage + #endif + break; + case EFFECT_ELECTRIC_TERRAIN: + case EFFECT_MISTY_TERRAIN: + if (gStatuses3[battlerAtk] & STATUS3_YAWN && IsBattlerGrounded(battlerAtk)) + score += 10; + //fallthrough + case EFFECT_GRASSY_TERRAIN: + case EFFECT_PSYCHIC_TERRAIN: + score += 2; + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_TERRAIN_EXTENDER) + score += 2; + break; + case EFFECT_PLEDGE: + if (isDoubleBattle) + { + if (HasMoveEffect(AI_DATA->battlerAtkPartner, EFFECT_PLEDGE)) + score += 3; // Partner might use pledge move + } + break; + case EFFECT_TRICK_ROOM: + if (!(gFieldStatuses & STATUS_FIELD_TRICK_ROOM) && GetBattlerSideSpeedAverage(battlerAtk) < GetBattlerSideSpeedAverage(battlerDef)) + score += 3; + else if ((gFieldStatuses & STATUS_FIELD_TRICK_ROOM) && GetBattlerSideSpeedAverage(battlerAtk) >= GetBattlerSideSpeedAverage(battlerDef)) + score += 3; + break; + case EFFECT_MAGIC_ROOM: + score++; + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_NONE && AI_DATA->defHoldEffect != HOLD_EFFECT_NONE) + score++; + if (isDoubleBattle && AI_DATA->atkPartnerHoldEffect == HOLD_EFFECT_NONE && AI_DATA->defPartnerHoldEffect != HOLD_EFFECT_NONE) + score++; + break; + case EFFECT_WONDER_ROOM: + if ((HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL) && gBattleMons[battlerAtk].defense < gBattleMons[battlerAtk].spDefense) + || (HasMoveWithSplit(battlerDef, SPLIT_SPECIAL) && gBattleMons[battlerAtk].spDefense < gBattleMons[battlerAtk].defense)) + score += 2; + break; + case EFFECT_GRAVITY: + if (!(gFieldStatuses & STATUS_FIELD_GRAVITY)) + { + if (HasSleepMoveWithLowAccuracy(battlerAtk, battlerDef)) // Has Gravity for a move like Hypnosis + IncreaseSleepScore(battlerAtk, battlerDef, move, &score); + else if (HasMoveWithLowAccuracy(battlerAtk, battlerDef, 90, FALSE, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect)) + score += 2; + else + score++; + } + break; + case EFFECT_ION_DELUGE: + if ((AI_DATA->atkAbility == ABILITY_VOLT_ABSORB + || AI_DATA->atkAbility == ABILITY_MOTOR_DRIVE + || AI_DATA->atkAbility == ABILITY_LIGHTNING_ROD) + && gBattleMoves[predictedMove].type == TYPE_NORMAL) + score += 2; + break; + case EFFECT_FLING: + /* TODO + switch (gFlingTable[AI_DATA->atkItem].effect) + { + case MOVE_EFFECT_BURN: + IncreaseBurnScore(battlerAtk, battlerDef, move, &score); + break; + case MOVE_EFFECT_FLINCH: + score += ShouldTryToFlinch(battlerAtk, battlerDef, AI_DATA->atkAbility, AI_DATA->defAbility, move); + break; + case MOVE_EFFECT_PARALYSIS: + IncreaseParalyzeScore(battlerAtk, battlerDef, move, &score); + break; + case MOVE_EFFECT_POISON: + case MOVE_EFFECT_TOXIC: + IncreasePoisonScore(battlerAtk, battlerDef, move, &score); + break; + case MOVE_EFFECT_FREEZE: + if (AI_CanFreeze(battlerAtk, battlerDef)) + score += 3; + break; + }*/ + break; + case EFFECT_FEINT: + if (gBattleMoves[predictedMove].effect == EFFECT_PROTECT) + score += 3; + break; + case EFFECT_EMBARGO: + if (AI_DATA->defHoldEffect != HOLD_EFFECT_NONE) + score++; + break; + case EFFECT_POWDER: + if (predictedMove != MOVE_NONE && !IS_MOVE_STATUS(predictedMove) && gBattleMoves[predictedMove].type == TYPE_FIRE) + score += 3; + break; + case EFFECT_TELEKINESIS: + if (HasMoveWithLowAccuracy(battlerAtk, battlerDef, 90, FALSE, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect) + || !IsBattlerGrounded(battlerDef)) + score++; + break; + case EFFECT_THROAT_CHOP: + if (predictedMove != MOVE_NONE && TestMoveFlags(predictedMove, FLAG_SOUND) && GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) + score += 3; // Ai goes first and predicts the target will use a sound move + else if (TestMoveFlagsInMoveset(battlerDef, FLAG_SOUND)) + score += 3; + break; + case EFFECT_HEAL_BLOCK: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0 && predictedMove != MOVE_NONE && IsHealingMoveEffect(gBattleMoves[predictedMove].effect)) + score += 3; // Try to cancel healing move + else if (HasHealingEffect(battlerDef) || AI_DATA->defHoldEffect == HOLD_EFFECT_LEFTOVERS + || (AI_DATA->defHoldEffect == HOLD_EFFECT_BLACK_SLUDGE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_POISON))) + score += 2; + break; + case EFFECT_SOAK: + if (HasMoveWithType(battlerAtk, TYPE_ELECTRIC) || HasMoveWithType(battlerAtk, TYPE_GRASS) || HasMoveEffect(battlerAtk, EFFECT_FREEZE_DRY)) + score += 2; // Get some super effective moves + break; + case EFFECT_THIRD_TYPE: + if (AI_DATA->defAbility == ABILITY_WONDER_GUARD) + score += 2; // Give target more weaknesses + break; + case EFFECT_ELECTRIFY: + if (predictedMove != MOVE_NONE && gBattleMoves[predictedMove].type == TYPE_NORMAL + && (AI_DATA->atkAbility == ABILITY_VOLT_ABSORB + || AI_DATA->atkAbility == ABILITY_MOTOR_DRIVE + || AI_DATA->atkAbility == ABILITY_LIGHTNING_ROD)) + { + score += 3; + } + break; + case EFFECT_TOPSY_TURVY: + if (CountPositiveStatStages(battlerDef) > CountNegativeStatStages(battlerDef)) + score++; + break; + case EFFECT_FAIRY_LOCK: + if (!IsBattlerTrapped(battlerDef, TRUE)) + { + if (ShouldTrap(battlerAtk, battlerDef, move)) + score += 8; + } + break; + case EFFECT_QUASH: + if (isDoubleBattle + && GetWhoStrikesFirst(AI_DATA->battlerAtkPartner, battlerDef, TRUE) == 1) // Attacker partner wouldn't go before target + score++; + break; + case EFFECT_TAILWIND: + if (GetBattlerSideSpeedAverage(battlerAtk) < GetBattlerSideSpeedAverage(battlerDef)) + score += 2; + break; + case EFFECT_LUCKY_CHANT: + if (!isDoubleBattle) + { + score++; + } + else + { + if (CountUsablePartyMons(battlerDef) > 0) + score += 8; + } + break; + case EFFECT_MAGNET_RISE: + if (IsBattlerGrounded(battlerAtk) && HasDamagingMoveOfType(battlerDef, TYPE_ELECTRIC) + && !(AI_GetTypeEffectiveness(MOVE_EARTHQUAKE, battlerDef, battlerAtk) == AI_EFFECTIVENESS_x0)) // Doesn't resist ground move + { + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // Attacker goes first + { + if (gBattleMoves[predictedMove].type == TYPE_GROUND) + score += 3; // Cause the enemy's move to fail + break; + } + else // Opponent Goes First + { + if (HasDamagingMoveOfType(battlerDef, TYPE_GROUND)) + score += 2; + break; + } + } + break; + case EFFECT_CAMOUFLAGE: + if (predictedMove != MOVE_NONE && GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0 // Attacker goes first + && !IS_MOVE_STATUS(move) && AI_GetTypeEffectiveness(predictedMove, battlerDef, battlerAtk) != AI_EFFECTIVENESS_x0) + score++; + break; + case EFFECT_FLAME_BURST: + if (isDoubleBattle) + { + if (IsBattlerAlive(AI_DATA->battlerDefPartner) + && GetHealthPercentage(AI_DATA->battlerDefPartner) < 12 + && AI_DATA->defPartnerAbility != ABILITY_MAGIC_GUARD + && !IS_BATTLER_OF_TYPE(AI_DATA->battlerDefPartner, TYPE_FIRE)) + score++; + } + break; + case EFFECT_TOXIC_THREAD: + IncreasePoisonScore(battlerAtk, battlerDef, move, &score); + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPEED, &score); + break; + case EFFECT_TWO_TURNS_ATTACK: + case EFFECT_SKULL_BASH: + case EFFECT_SOLARBEAM: + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_POWER_HERB) + score += 2; + break; + case EFFECT_COUNTER: + if (!IsBattlerIncapacitated(battlerDef, AI_DATA->defAbility) && predictedMove != MOVE_NONE) + { + if (gDisableStructs[battlerDef].tauntTimer != 0) + score++; // target must use damaging move + if (GetMoveDamageResult(predictedMove) >= MOVE_POWER_GOOD && GetBattleMoveSplit(predictedMove) == SPLIT_PHYSICAL) + score += 3; + } + break; + case EFFECT_MIRROR_COAT: + if (!IsBattlerIncapacitated(battlerDef, AI_DATA->defAbility) && predictedMove != MOVE_NONE) + { + if (gDisableStructs[battlerDef].tauntTimer != 0) + score++; // target must use damaging move + if (GetMoveDamageResult(predictedMove) >= MOVE_POWER_GOOD && GetBattleMoveSplit(predictedMove) == SPLIT_SPECIAL) + score += 3; + } + break; + case EFFECT_FLAIL: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // Ai goes first + { + if (GetHealthPercentage(battlerAtk) < 20) + score++; + else if (GetHealthPercentage(battlerAtk) < 8) + score += 2; + } + break; + case EFFECT_SHORE_UP: + if (AI_WeatherHasEffect() && (gBattleWeather & WEATHER_SANDSTORM_ANY) + && ShouldRecover(battlerAtk, battlerDef, move, 67)) + score += 3; + else if (ShouldRecover(battlerAtk, battlerDef, move, 50)) + score += 2; + break; + case EFFECT_FACADE: + if (gBattleMons[battlerAtk].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) + score++; + break; + case EFFECT_FOCUS_PUNCH: + if (!isDoubleBattle && effectiveness > AI_EFFECTIVENESS_x0_5) + { + if (IsBattlerIncapacitated(battlerDef, AI_DATA->defAbility)) + score += 2; + else if (gBattleMons[battlerDef].status2 & (STATUS2_INFATUATION | STATUS2_CONFUSION)) + score++; + } + break; + case EFFECT_SMELLINGSALT: + if (gBattleMons[battlerDef].status1 & STATUS1_PARALYSIS) + score += 2; + break; + case EFFECT_WAKE_UP_SLAP: + if (gBattleMons[battlerDef].status1 & STATUS1_SLEEP) + score += 2; + break; + case EFFECT_REVENGE: + if (!(gBattleMons[battlerDef].status1 & STATUS1_SLEEP) + && !(gBattleMons[battlerDef].status2 & (STATUS2_INFATUATION | STATUS2_CONFUSION))) + score += 2; + break; + case EFFECT_ENDEAVOR: + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1) // Opponent faster + { + if (GetHealthPercentage(battlerAtk) < 40) + score++; + } + else if (GetHealthPercentage(battlerAtk) < 50) + { + score++; + } + break; + //case EFFECT_EXTREME_EVOBOOST: // TODO + //break; + //case EFFECT_CLANGOROUS_SOUL: // TODO + //break; + //case EFFECT_NO_RETREAT: // TODO + //break; + //case EFFECT_SKY_DROP + //break; + } // move effect checks + + return score; +} + +// Effects that are encouraged on the first turn of battle +static s16 AI_SetupFirstTurn(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + if (IsTargetingPartner(battlerAtk, battlerDef) + || gBattleResults.battleTurnCounter != 0) + return score; + + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING + && GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1 + && CanTargetFaintAi(battlerDef, battlerAtk) + && GetMovePriority(battlerAtk, move) == 0) + { + RETURN_SCORE_MINUS(20); // No point in setting up if you will faint. Should just switch if possible.. + } + + // check effects to prioritize first turn + switch (gBattleMoves[move].effect) + { + case EFFECT_ATTACK_UP: + case EFFECT_DEFENSE_UP: + case EFFECT_SPEED_UP: + case EFFECT_SPECIAL_ATTACK_UP: + case EFFECT_SPECIAL_DEFENSE_UP: + case EFFECT_ACCURACY_UP: + case EFFECT_EVASION_UP: + case EFFECT_ATTACK_DOWN: + case EFFECT_DEFENSE_DOWN: + case EFFECT_SPEED_DOWN: + case EFFECT_SPECIAL_ATTACK_DOWN: + case EFFECT_SPECIAL_DEFENSE_DOWN: + case EFFECT_ACCURACY_DOWN: + case EFFECT_EVASION_DOWN: + case EFFECT_CONVERSION: + case EFFECT_LIGHT_SCREEN: + case EFFECT_FOCUS_ENERGY: + case EFFECT_CONFUSE: + case EFFECT_ATTACK_UP_2: + case EFFECT_DEFENSE_UP_2: + case EFFECT_DEFENSE_UP_3: + case EFFECT_SPEED_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_3: + case EFFECT_SPECIAL_DEFENSE_UP_2: + case EFFECT_ACCURACY_UP_2: + case EFFECT_EVASION_UP_2: + case EFFECT_ATTACK_DOWN_2: + case EFFECT_DEFENSE_DOWN_2: + case EFFECT_SPEED_DOWN_2: + case EFFECT_SPECIAL_ATTACK_DOWN_2: + case EFFECT_SPECIAL_DEFENSE_DOWN_2: + case EFFECT_ACCURACY_DOWN_2: + case EFFECT_EVASION_DOWN_2: + case EFFECT_REFLECT: + case EFFECT_POISON: + case EFFECT_PARALYZE: + case EFFECT_SUBSTITUTE: + case EFFECT_LEECH_SEED: + case EFFECT_MINIMIZE: + case EFFECT_CURSE: + case EFFECT_SWAGGER: + case EFFECT_CAMOUFLAGE: + case EFFECT_YAWN: + case EFFECT_DEFENSE_CURL: + case EFFECT_TORMENT: + case EFFECT_FLATTER: + case EFFECT_WILL_O_WISP: + case EFFECT_INGRAIN: + case EFFECT_IMPRISON: + case EFFECT_TEETER_DANCE: + case EFFECT_TICKLE: + case EFFECT_COSMIC_POWER: + case EFFECT_BULK_UP: + case EFFECT_CALM_MIND: + case EFFECT_ACUPRESSURE: + case EFFECT_AUTOTOMIZE: + case EFFECT_SHIFT_GEAR: + case EFFECT_SHELL_SMASH: + case EFFECT_GROWTH: + case EFFECT_QUIVER_DANCE: + case EFFECT_ATTACK_SPATK_UP: + case EFFECT_ATTACK_ACCURACY_UP: + case EFFECT_PSYCHIC_TERRAIN: + case EFFECT_GRASSY_TERRAIN: + case EFFECT_ELECTRIC_TERRAIN: + case EFFECT_MISTY_TERRAIN: + case EFFECT_STEALTH_ROCK: + case EFFECT_TOXIC_SPIKES: + case EFFECT_TRICK_ROOM: + case EFFECT_WONDER_ROOM: + case EFFECT_MAGIC_ROOM: + case EFFECT_TAILWIND: + case EFFECT_DRAGON_DANCE: + case EFFECT_STICKY_WEB: + case EFFECT_RAIN_DANCE: + case EFFECT_SUNNY_DAY: + case EFFECT_SANDSTORM: + case EFFECT_HAIL: + case EFFECT_GEOMANCY: + score += 2; + break; + default: + break; + } + + return score; +} + +// Adds score bonus to 'riskier' move effects and high crit moves +static s16 AI_Risky(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + if (IsTargetingPartner(battlerAtk, battlerDef)) + return score; + + if (TestMoveFlags(move, FLAG_HIGH_CRIT)) + score += 2; + + switch (gBattleMoves[move].effect) + { + case EFFECT_SLEEP: + case EFFECT_EXPLOSION: + case EFFECT_MIRROR_MOVE: + case EFFECT_OHKO: + case EFFECT_CONFUSE: + case EFFECT_METRONOME: + case EFFECT_PSYWAVE: + case EFFECT_COUNTER: + case EFFECT_DESTINY_BOND: + case EFFECT_SWAGGER: + case EFFECT_ATTRACT: + case EFFECT_PRESENT: + case EFFECT_ALL_STATS_UP_HIT: + case EFFECT_BELLY_DRUM: + case EFFECT_MIRROR_COAT: + case EFFECT_FOCUS_PUNCH: + case EFFECT_REVENGE: + case EFFECT_TEETER_DANCE: + if (Random() & 1) + score += 2; + break; + default: + break; + } + + return score; +} + +// Adds score bonus to best powered move +static s16 AI_PreferStrongestMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + if (IsTargetingPartner(battlerAtk, battlerDef)) + return score; + + if (GetMoveDamageResult(move) == MOVE_POWER_BEST) + score += 2; + + return score; +} + +// Prefers moves that are good for baton pass +static s16 AI_PreferBatonPass(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + u32 i; + + if (IsTargetingPartner(battlerAtk, battlerDef) + || CountUsablePartyMons(battlerAtk) == 0 + || GetMoveDamageResult(move) != MOVE_POWER_OTHER + || !HasMoveEffect(battlerAtk, EFFECT_BATON_PASS) + || IsBattlerTrapped(battlerAtk, TRUE)) + return score; + + if (IsStatRaisingEffect(gBattleMoves[move].effect)) + { + if (gBattleResults.battleTurnCounter == 0) + score += 5; + else if (GetHealthPercentage(battlerAtk) < 60) + score -= 10; + else + score++; + } + + // other specific checks + switch (gBattleMoves[move].effect) + { + case EFFECT_INGRAIN: + if (!(gStatuses3[battlerAtk] & STATUS3_ROOTED)) + score += 2; + break; + case EFFECT_AQUA_RING: + if (!(gStatuses3[battlerAtk] & STATUS3_AQUA_RING)) + score += 2; + break; + case EFFECT_PROTECT: + if (gLastMoves[battlerAtk] == MOVE_PROTECT || gLastMoves[battlerAtk] == MOVE_DETECT) + score -= 2; + else + score += 2; + break; + case EFFECT_BATON_PASS: + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + IncreaseStatUpScore(battlerAtk, battlerDef, i, &score); + } + if (gStatuses3[battlerAtk] & (STATUS3_ROOTED | STATUS3_AQUA_RING)) + score += 2; + if (gStatuses3[battlerAtk] & STATUS3_LEECHSEED) + score -= 3; + break; + default: + break; + } + + return score; +} + +static s16 AI_HPAware(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + u16 effect = gBattleMoves[move].effect; + u8 moveType = gBattleMoves[move].type; + + if (IsTargetingPartner(battlerAtk, battlerDef)) + { + if ((effect == EFFECT_HEAL_PULSE || effect == EFFECT_HIT_ENEMY_HEAL_ALLY) + || (moveType == TYPE_ELECTRIC && AI_DATA->atkPartnerAbility == ABILITY_VOLT_ABSORB) + || (moveType == TYPE_WATER && (AI_DATA->atkPartnerAbility == ABILITY_DRY_SKIN || AI_DATA->atkPartnerAbility == ABILITY_WATER_ABSORB))) + { + if (CanTargetFaintAi(FOE(battlerAtk), AI_DATA->battlerAtkPartner) + || (CanTargetFaintAi(BATTLE_PARTNER(FOE(battlerAtk)), AI_DATA->battlerAtkPartner))) + score--; + + if (GetHealthPercentage(battlerDef) <= 50) + score++; + } + } + else + { + // Consider AI HP + if (GetHealthPercentage(battlerAtk) > 70) + { + // high hp + switch (effect) + { + case EFFECT_EXPLOSION: + case EFFECT_RESTORE_HP: + case EFFECT_REST: + case EFFECT_DESTINY_BOND: + case EFFECT_FLAIL: + case EFFECT_ENDURE: + case EFFECT_MORNING_SUN: + case EFFECT_SYNTHESIS: + case EFFECT_MOONLIGHT: + case EFFECT_SHORE_UP: + case EFFECT_SOFTBOILED: + case EFFECT_ROOST: + case EFFECT_MEMENTO: + case EFFECT_GRUDGE: + case EFFECT_OVERHEAT: + score -= 2; + break; + default: + break; + } + } + else if (GetHealthPercentage(battlerAtk) > 30) + { + // med hp + if (IsStatRaisingEffect(effect) || IsStatLoweringEffect(effect)) + score -= 2; + + switch (effect) + { + case EFFECT_EXPLOSION: + case EFFECT_BIDE: + case EFFECT_CONVERSION: + case EFFECT_LIGHT_SCREEN: + case EFFECT_MIST: + case EFFECT_FOCUS_ENERGY: + case EFFECT_CONVERSION_2: + case EFFECT_SAFEGUARD: + case EFFECT_BELLY_DRUM: + score -= 2; + break; + default: + break; + } + } + else + { + // low hp + if (IsStatRaisingEffect(effect) || IsStatLoweringEffect(effect)) + score -= 2; + + // check other discouraged low hp effects + switch (effect) + { + case EFFECT_BIDE: + case EFFECT_CONVERSION: + case EFFECT_REFLECT: + case EFFECT_LIGHT_SCREEN: + case EFFECT_AURORA_VEIL: + case EFFECT_MIST: + case EFFECT_FOCUS_ENERGY: + case EFFECT_RAGE: + case EFFECT_CONVERSION_2: + case EFFECT_LOCK_ON: + case EFFECT_SAFEGUARD: + case EFFECT_BELLY_DRUM: + case EFFECT_PSYCH_UP: + case EFFECT_MIRROR_COAT: + case EFFECT_SOLARBEAM: + case EFFECT_TWO_TURNS_ATTACK: + case EFFECT_ERUPTION: + case EFFECT_TICKLE: + case EFFECT_SUNNY_DAY: + case EFFECT_SANDSTORM: + case EFFECT_HAIL: + case EFFECT_RAIN_DANCE: + score -= 2; + break; + default: + break; + } + } + } + + // consider target HP + if (CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + { + score += 2; + } + else + { + if (GetHealthPercentage(battlerDef) > 70) + { + // high HP + ; // nothing yet + } + else if (GetHealthPercentage(battlerDef) > 30) + { + // med HP - check discouraged effects + switch (effect) + { + case EFFECT_ATTACK_UP: + case EFFECT_DEFENSE_UP: + case EFFECT_SPEED_UP: + case EFFECT_SPECIAL_ATTACK_UP: + case EFFECT_SPECIAL_DEFENSE_UP: + case EFFECT_ACCURACY_UP: + case EFFECT_EVASION_UP: + case EFFECT_ATTACK_DOWN: + case EFFECT_DEFENSE_DOWN: + case EFFECT_SPEED_DOWN: + case EFFECT_SPECIAL_ATTACK_DOWN: + case EFFECT_SPECIAL_DEFENSE_DOWN: + case EFFECT_ACCURACY_DOWN: + case EFFECT_EVASION_DOWN: + case EFFECT_MIST: + case EFFECT_FOCUS_ENERGY: + case EFFECT_ATTACK_UP_2: + case EFFECT_DEFENSE_UP_2: + case EFFECT_SPEED_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_2: + case EFFECT_SPECIAL_DEFENSE_UP_2: + case EFFECT_ACCURACY_UP_2: + case EFFECT_EVASION_UP_2: + case EFFECT_ATTACK_DOWN_2: + case EFFECT_DEFENSE_DOWN_2: + case EFFECT_SPEED_DOWN_2: + case EFFECT_SPECIAL_ATTACK_DOWN_2: + case EFFECT_SPECIAL_DEFENSE_DOWN_2: + case EFFECT_ACCURACY_DOWN_2: + case EFFECT_EVASION_DOWN_2: + case EFFECT_POISON: + case EFFECT_PAIN_SPLIT: + case EFFECT_PERISH_SONG: + case EFFECT_SAFEGUARD: + case EFFECT_TICKLE: + case EFFECT_COSMIC_POWER: + case EFFECT_BULK_UP: + case EFFECT_CALM_MIND: + case EFFECT_DRAGON_DANCE: + case EFFECT_DEFENSE_UP_3: + case EFFECT_SPECIAL_ATTACK_UP_3: + score -= 2; + break; + default: + break; + } + } + else + { + // low HP + if (IS_MOVE_STATUS(move)) + score -= 2; // don't use status moves if target is at low health + } + } + + return score; +} + +static void AI_Flee(void) +{ + AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_FLEE | AI_ACTION_DO_NOT_ATTACK); +} + +static void AI_Watch(void) +{ + AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_WATCH | AI_ACTION_DO_NOT_ATTACK); +} + +// Roaming pokemon logic +static s16 AI_Roaming(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + if (IsBattlerTrapped(battlerAtk, FALSE)) + return score; + + AI_Flee(); + return score; +} + +// Safari pokemon logic +static s16 AI_Safari(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + u8 safariFleeRate = gBattleStruct->safariEscapeFactor * 5; // Safari flee rate, from 0-20. + + if ((Random() % 100) < safariFleeRate) + AI_Flee(); + else + AI_Watch(); + + return score; +} + +// First battle logic +static s16 AI_FirstBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +{ + if (GetHealthPercentage(battlerDef) <= 20) + AI_Flee(); + + return score; +} diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c deleted file mode 100644 index 8a5f423a4e..0000000000 --- a/src/battle_ai_script_commands.c +++ /dev/null @@ -1,2871 +0,0 @@ -#include "global.h" -#include "malloc.h" -#include "battle.h" -#include "battle_anim.h" -#include "battle_ai_script_commands.h" -#include "battle_factory.h" -#include "battle_setup.h" -#include "data.h" -#include "item.h" -#include "pokemon.h" -#include "random.h" -#include "recorded_battle.h" -#include "util.h" -#include "constants/abilities.h" -#include "constants/battle_ai.h" -#include "constants/battle_move_effects.h" -#include "constants/hold_effects.h" -#include "constants/moves.h" - -#define AI_ACTION_DONE 0x0001 -#define AI_ACTION_FLEE 0x0002 -#define AI_ACTION_WATCH 0x0004 -#define AI_ACTION_DO_NOT_ATTACK 0x0008 -#define AI_ACTION_UNK5 0x0010 -#define AI_ACTION_UNK6 0x0020 -#define AI_ACTION_UNK7 0x0040 -#define AI_ACTION_UNK8 0x0080 - -#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gBattleResources->ai)) -#define BATTLE_HISTORY ((struct BattleHistory *)(gBattleResources->battleHistory)) - -// AI states -enum -{ - AIState_SettingUp, - AIState_Processing, - AIState_FinishedProcessing, - AIState_DoNotProcess -}; - -/* -gAIScriptPtr is a pointer to the next battle AI cmd command to read. -when a command finishes processing, gAIScriptPtr is incremented by -the number of bytes that the current command had reserved for arguments -in order to read the next command correctly. refer to battle_ai_scripts.s for the -AI scripts. -*/ - -extern const u8 *const gBattleAI_ScriptsTable[]; - -static u8 ChooseMoveOrAction_Singles(void); -static u8 ChooseMoveOrAction_Doubles(void); -static void RecordLastUsedMoveByTarget(void); -static void BattleAI_DoAIProcessing(void); -static void AIStackPushVar(const u8 *); -static bool8 AIStackPop(void); -static s32 CountUsablePartyMons(u8 battlerId); -static s32 AI_GetAbility(u32 battlerId, bool32 guess); - -static void Cmd_if_random_less_than(void); -static void Cmd_if_random_greater_than(void); -static void Cmd_if_random_equal(void); -static void Cmd_if_random_not_equal(void); -static void Cmd_score(void); -static void Cmd_if_hp_less_than(void); -static void Cmd_if_hp_more_than(void); -static void Cmd_if_hp_equal(void); -static void Cmd_if_hp_not_equal(void); -static void Cmd_if_status(void); -static void Cmd_if_not_status(void); -static void Cmd_if_status2(void); -static void Cmd_if_not_status2(void); -static void Cmd_if_status3(void); -static void Cmd_if_not_status3(void); -static void Cmd_if_side_affecting(void); -static void Cmd_if_not_side_affecting(void); -static void Cmd_if_less_than(void); -static void Cmd_if_more_than(void); -static void Cmd_if_equal(void); -static void Cmd_if_not_equal(void); -static void Cmd_if_less_than_ptr(void); -static void Cmd_if_more_than_ptr(void); -static void Cmd_if_equal_ptr(void); -static void Cmd_if_not_equal_ptr(void); -static void Cmd_if_move(void); -static void Cmd_if_not_move(void); -static void Cmd_if_in_bytes(void); -static void Cmd_if_not_in_bytes(void); -static void Cmd_if_in_hwords(void); -static void Cmd_if_not_in_hwords(void); -static void Cmd_if_user_has_attacking_move(void); -static void Cmd_if_user_has_no_attacking_moves(void); -static void Cmd_get_turn_count(void); -static void Cmd_get_type(void); -static void Cmd_get_considered_move_power(void); -static void Cmd_get_how_powerful_move_is(void); -static void Cmd_get_last_used_battler_move(void); -static void Cmd_if_equal_u32(void); -static void Cmd_if_not_equal_u32(void); -static void Cmd_if_user_goes(void); -static void Cmd_if_cant_use_belch(void); -static void Cmd_nullsub_2A(void); -static void Cmd_nullsub_2B(void); -static void Cmd_count_usable_party_mons(void); -static void Cmd_get_considered_move(void); -static void Cmd_get_considered_move_effect(void); -static void Cmd_get_ability(void); -static void Cmd_get_highest_type_effectiveness(void); -static void Cmd_if_type_effectiveness(void); -static void Cmd_nullsub_32(void); -static void Cmd_nullsub_33(void); -static void Cmd_if_status_in_party(void); -static void Cmd_if_status_not_in_party(void); -static void Cmd_get_weather(void); -static void Cmd_if_effect(void); -static void Cmd_if_not_effect(void); -static void Cmd_if_stat_level_less_than(void); -static void Cmd_if_stat_level_more_than(void); -static void Cmd_if_stat_level_equal(void); -static void Cmd_if_stat_level_not_equal(void); -static void Cmd_if_can_faint(void); -static void Cmd_if_cant_faint(void); -static void Cmd_if_has_move(void); -static void Cmd_if_doesnt_have_move(void); -static void Cmd_if_has_move_with_effect(void); -static void Cmd_if_doesnt_have_move_with_effect(void); -static void Cmd_if_any_move_disabled_or_encored(void); -static void Cmd_if_curr_move_disabled_or_encored(void); -static void Cmd_flee(void); -static void Cmd_if_random_safari_flee(void); -static void Cmd_watch(void); -static void Cmd_get_hold_effect(void); -static void Cmd_get_gender(void); -static void Cmd_is_first_turn_for(void); -static void Cmd_get_stockpile_count(void); -static void Cmd_is_double_battle(void); -static void Cmd_get_used_held_item(void); -static void Cmd_get_move_type_from_result(void); -static void Cmd_get_move_power_from_result(void); -static void Cmd_get_move_effect_from_result(void); -static void Cmd_get_protect_count(void); -static void Cmd_if_move_flag(void); -static void Cmd_if_field_status(void); -static void Cmd_get_move_accuracy(void); -static void Cmd_call_if_eq(void); -static void Cmd_call_if_move_flag(void); -static void Cmd_nullsub_57(void); -static void Cmd_call(void); -static void Cmd_goto(void); -static void Cmd_end(void); -static void Cmd_if_level_cond(void); -static void Cmd_if_target_taunted(void); -static void Cmd_if_target_not_taunted(void); -static void Cmd_check_ability(void); -static void Cmd_is_of_type(void); -static void Cmd_if_target_is_ally(void); -static void Cmd_if_flash_fired(void); -static void Cmd_if_holds_item(void); -static void Cmd_get_ally_chosen_move(void); -static void Cmd_if_has_no_attacking_moves(void); -static void Cmd_get_hazards_count(void); -static void Cmd_if_doesnt_hold_berry(void); -static void Cmd_if_share_type(void); -static void Cmd_if_cant_use_last_resort(void); -static void Cmd_if_has_move_with_split(void); -static void Cmd_if_has_no_move_with_split(void); -static void Cmd_if_physical_moves_unusable(void); -static void Cmd_if_ai_can_go_down(void); -static void Cmd_if_has_move_with_type(void); -static void Cmd_if_no_move_used(void); -static void Cmd_if_has_move_with_flag(void); -static void Cmd_if_battler_absent(void); -static void Cmd_is_grounded(void); -static void Cmd_get_best_dmg_hp_percent(void); -static void Cmd_get_curr_dmg_hp_percent(void); -static void Cmd_get_move_split_from_result(void); -static void Cmd_get_considered_move_split(void); -static void Cmd_get_considered_move_target(void); -static void Cmd_compare_speeds(void); -static void Cmd_is_wakeup_turn(void); -static void Cmd_if_has_move_with_accuracy_lt(void); - -// ewram -EWRAM_DATA const u8 *gAIScriptPtr = NULL; -EWRAM_DATA static u8 sBattler_AI = 0; - -// const rom data -typedef void (*BattleAICmdFunc)(void); - -static const BattleAICmdFunc sBattleAICmdTable[] = -{ - Cmd_if_random_less_than, // 0x0 - Cmd_if_random_greater_than, // 0x1 - Cmd_if_random_equal, // 0x2 - Cmd_if_random_not_equal, // 0x3 - Cmd_score, // 0x4 - Cmd_if_hp_less_than, // 0x5 - Cmd_if_hp_more_than, // 0x6 - Cmd_if_hp_equal, // 0x7 - Cmd_if_hp_not_equal, // 0x8 - Cmd_if_status, // 0x9 - Cmd_if_not_status, // 0xA - Cmd_if_status2, // 0xB - Cmd_if_not_status2, // 0xC - Cmd_if_status3, // 0xD - Cmd_if_not_status3, // 0xE - Cmd_if_side_affecting, // 0xF - Cmd_if_not_side_affecting, // 0x10 - Cmd_if_less_than, // 0x11 - Cmd_if_more_than, // 0x12 - Cmd_if_equal, // 0x13 - Cmd_if_not_equal, // 0x14 - Cmd_if_less_than_ptr, // 0x15 - Cmd_if_more_than_ptr, // 0x16 - Cmd_if_equal_ptr, // 0x17 - Cmd_if_not_equal_ptr, // 0x18 - Cmd_if_move, // 0x19 - Cmd_if_not_move, // 0x1A - Cmd_if_in_bytes, // 0x1B - Cmd_if_not_in_bytes, // 0x1C - Cmd_if_in_hwords, // 0x1D - Cmd_if_not_in_hwords, // 0x1E - Cmd_if_user_has_attacking_move, // 0x1F - Cmd_if_user_has_no_attacking_moves, // 0x20 - Cmd_get_turn_count, // 0x21 - Cmd_get_type, // 0x22 - Cmd_get_considered_move_power, // 0x23 - Cmd_get_how_powerful_move_is, // 0x24 - Cmd_get_last_used_battler_move, // 0x25 - Cmd_if_equal_u32, // 0x26 - Cmd_if_not_equal_u32, // 0x27 - Cmd_if_user_goes, // 0x28 - Cmd_if_cant_use_belch, // 0x29 - Cmd_nullsub_2A, // 0x2A - Cmd_nullsub_2B, // 0x2B - Cmd_count_usable_party_mons, // 0x2C - Cmd_get_considered_move, // 0x2D - Cmd_get_considered_move_effect, // 0x2E - Cmd_get_ability, // 0x2F - Cmd_get_highest_type_effectiveness, // 0x30 - Cmd_if_type_effectiveness, // 0x31 - Cmd_nullsub_32, // 0x32 - Cmd_nullsub_33, // 0x33 - Cmd_if_status_in_party, // 0x34 - Cmd_if_status_not_in_party, // 0x35 - Cmd_get_weather, // 0x36 - Cmd_if_effect, // 0x37 - Cmd_if_not_effect, // 0x38 - Cmd_if_stat_level_less_than, // 0x39 - Cmd_if_stat_level_more_than, // 0x3A - Cmd_if_stat_level_equal, // 0x3B - Cmd_if_stat_level_not_equal, // 0x3C - Cmd_if_can_faint, // 0x3D - Cmd_if_cant_faint, // 0x3E - Cmd_if_has_move, // 0x3F - Cmd_if_doesnt_have_move, // 0x40 - Cmd_if_has_move_with_effect, // 0x41 - Cmd_if_doesnt_have_move_with_effect, // 0x42 - Cmd_if_any_move_disabled_or_encored, // 0x43 - Cmd_if_curr_move_disabled_or_encored, // 0x44 - Cmd_flee, // 0x45 - Cmd_if_random_safari_flee, // 0x46 - Cmd_watch, // 0x47 - Cmd_get_hold_effect, // 0x48 - Cmd_get_gender, // 0x49 - Cmd_is_first_turn_for, // 0x4A - Cmd_get_stockpile_count, // 0x4B - Cmd_is_double_battle, // 0x4C - Cmd_get_used_held_item, // 0x4D - Cmd_get_move_type_from_result, // 0x4E - Cmd_get_move_power_from_result, // 0x4F - Cmd_get_move_effect_from_result, // 0x50 - Cmd_get_protect_count, // 0x51 - Cmd_if_move_flag, // 0x52 - Cmd_if_field_status, // 0x53 - Cmd_get_move_accuracy, // 0x54 - Cmd_call_if_eq, // 0x55 - Cmd_call_if_move_flag, // 0x56 - Cmd_nullsub_57, // 0x57 - Cmd_call, // 0x58 - Cmd_goto, // 0x59 - Cmd_end, // 0x5A - Cmd_if_level_cond, // 0x5B - Cmd_if_target_taunted, // 0x5C - Cmd_if_target_not_taunted, // 0x5D - Cmd_if_target_is_ally, // 0x5E - Cmd_is_of_type, // 0x5F - Cmd_check_ability, // 0x60 - Cmd_if_flash_fired, // 0x61 - Cmd_if_holds_item, // 0x62 - Cmd_get_ally_chosen_move, // 0x63 - Cmd_if_has_no_attacking_moves, // 0x64 - Cmd_get_hazards_count, // 0x65 - Cmd_if_doesnt_hold_berry, // 0x66 - Cmd_if_share_type, // 0x67 - Cmd_if_cant_use_last_resort, // 0x68 - Cmd_if_has_move_with_split, // 0x69 - Cmd_if_has_no_move_with_split, // 0x6A - Cmd_if_physical_moves_unusable, // 0x6B - Cmd_if_ai_can_go_down, // 0x6C - Cmd_if_has_move_with_type, // 0x6D - Cmd_if_no_move_used, // 0x6E - Cmd_if_has_move_with_flag, // 0x6F - Cmd_if_battler_absent, // 0x70 - Cmd_is_grounded, // 0x71 - Cmd_get_best_dmg_hp_percent, // 0x72 - Cmd_get_curr_dmg_hp_percent, // 0x73 - Cmd_get_move_split_from_result, // 0x74 - Cmd_get_considered_move_split, // 0x75 - Cmd_get_considered_move_target, // 0x76 - Cmd_compare_speeds, // 0x77 - Cmd_is_wakeup_turn, // 0x78 - Cmd_if_has_move_with_accuracy_lt, // 0x79 -}; - -static const u16 sDiscouragedPowerfulMoveEffects[] = -{ - EFFECT_EXPLOSION, - EFFECT_DREAM_EATER, - EFFECT_RECHARGE, - EFFECT_SKULL_BASH, - EFFECT_SOLARBEAM, - EFFECT_SPIT_UP, - EFFECT_FOCUS_PUNCH, - EFFECT_SUPERPOWER, - EFFECT_ERUPTION, - EFFECT_OVERHEAT, - EFFECT_MIND_BLOWN, - 0xFFFF -}; - -// code -void BattleAI_SetupItems(void) -{ - s32 i; - u8 *data = (u8 *)BATTLE_HISTORY; - - for (i = 0; i < sizeof(struct BattleHistory); i++) - data[i] = 0; - - // Items are allowed to use in ONLY trainer battles. - if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) - && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER - | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_FRONTIER - | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_x2000000) - ) - ) - { - for (i = 0; i < MAX_TRAINER_ITEMS; i++) - { - if (gTrainers[gTrainerBattleOpponent_A].items[i] != 0) - { - BATTLE_HISTORY->trainerItems[BATTLE_HISTORY->itemsNo] = gTrainers[gTrainerBattleOpponent_A].items[i]; - BATTLE_HISTORY->itemsNo++; - } - } - } -} - -void BattleAI_SetupFlags(void) -{ - if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) - AI_THINKING_STRUCT->aiFlags = GetAiScriptsInRecordedBattle(); - else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_SAFARI; - else if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) - AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_ROAMING; - else if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) - AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_FIRST_BATTLE; - else if (gBattleTypeFlags & BATTLE_TYPE_FACTORY) - AI_THINKING_STRUCT->aiFlags = GetAiScriptsInBattleFactory(); - else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_SECRET_BASE)) - AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_TRY_TO_FAINT; - else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) - AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags | gTrainers[gTrainerBattleOpponent_B].aiFlags; - else - AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags; - - if (gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_TWO_OPPONENTS) || gTrainers[gTrainerBattleOpponent_A].doubleBattle) - AI_THINKING_STRUCT->aiFlags |= AI_SCRIPT_DOUBLE_BATTLE; // Act smart in doubles and don't attack your partner. -} - -void BattleAI_SetupAIData(u8 defaultScoreMoves) -{ - s32 i, move, dmg; - u8 moveLimitations; - - // Clear AI data but preserve the flags. - u32 flags = AI_THINKING_STRUCT->aiFlags; - memset(AI_THINKING_STRUCT, 0, sizeof(struct AI_ThinkingStruct)); - AI_THINKING_STRUCT->aiFlags = flags; - - // Conditional score reset, unlike Ruby. - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (defaultScoreMoves & 1) - AI_THINKING_STRUCT->score[i] = 100; - else - AI_THINKING_STRUCT->score[i] = 0; - - defaultScoreMoves >>= 1; - } - - moveLimitations = CheckMoveLimitations(gActiveBattler, 0, 0xFF); - - // Ignore moves that aren't possible to use. - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBitTable[i] & moveLimitations) - AI_THINKING_STRUCT->score[i] = 0; - } - - gBattleResources->AI_ScriptsStack->size = 0; - sBattler_AI = gActiveBattler; - - // Simulate dmg for all AI moves against all opposing targets - for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) - { - if (GET_BATTLER_SIDE2(sBattler_AI) == GET_BATTLER_SIDE2(gBattlerTarget)) - continue; - for (i = 0; i < MAX_MON_MOVES; i++) - { - dmg = 0; - move = gBattleMons[sBattler_AI].moves[i]; - if (gBattleMoves[move].power != 0 && !(moveLimitations & gBitTable[i])) - { - dmg = AI_CalcDamage(move, sBattler_AI, gBattlerTarget) * (100 - (Random() % 10)) / 100; - if (dmg == 0) - dmg = 1; - } - - AI_THINKING_STRUCT->simulatedDmg[sBattler_AI][gBattlerTarget][i] = dmg; - } - } - - gBattlerTarget = SetRandomTarget(sBattler_AI); -} - -u8 BattleAI_ChooseMoveOrAction(void) -{ - u32 savedCurrentMove = gCurrentMove; - u8 ret; - - if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - ret = ChooseMoveOrAction_Singles(); - else - ret = ChooseMoveOrAction_Doubles(); - - gCurrentMove = savedCurrentMove; - return ret; -} - -static u32 GetTotalBaseStat(u32 species) -{ - return gBaseStats[species].baseHP - + gBaseStats[species].baseAttack - + gBaseStats[species].baseDefense - + gBaseStats[species].baseSpeed - + gBaseStats[species].baseSpAttack - + gBaseStats[species].baseSpDefense; -} - -bool32 IsTruantMonVulnerable(u32 battlerAI, u32 opposingBattler) -{ - int i; - - for (i = 0; i < MAX_MON_MOVES; i++) - { - u32 move = gBattleResources->battleHistory->usedMoves[opposingBattler][i]; - if (gBattleMoves[move].effect == EFFECT_PROTECT && move != MOVE_ENDURE) - return TRUE; - if (gBattleMoves[move].effect == EFFECT_SEMI_INVULNERABLE && GetWhoStrikesFirst(battlerAI, opposingBattler, TRUE) == 1) - return TRUE; - } - return FALSE; -} - -static u8 ChooseMoveOrAction_Singles(void) -{ - u8 currentMoveArray[MAX_MON_MOVES]; - u8 consideredMoveArray[MAX_MON_MOVES]; - u32 numOfBestMoves; - s32 i, id; - u32 flags = AI_THINKING_STRUCT->aiFlags; - - RecordLastUsedMoveByTarget(); - - while (flags != 0) - { - if (flags & 1) - { - AI_THINKING_STRUCT->aiState = AIState_SettingUp; - BattleAI_DoAIProcessing(); - } - flags >>= 1; - AI_THINKING_STRUCT->aiLogicId++; - AI_THINKING_STRUCT->movesetIndex = 0; - } - - for (i = 0; i < MAX_MON_MOVES; i++) - gBattleStruct->aiFinalScore[sBattler_AI][gBattlerTarget][i] = AI_THINKING_STRUCT->score[i]; - - // Check special AI actions. - if (AI_THINKING_STRUCT->aiAction & AI_ACTION_FLEE) - return AI_CHOICE_FLEE; - if (AI_THINKING_STRUCT->aiAction & AI_ACTION_WATCH) - return AI_CHOICE_WATCH; - - gActiveBattler = sBattler_AI; - // If can switch. - if (CountUsablePartyMons(sBattler_AI) >= 1 - && !IsAbilityPreventingEscape(sBattler_AI) - && !(gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) - && !(gStatuses3[gActiveBattler] & STATUS3_ROOTED) - && !(gBattleTypeFlags & (BATTLE_TYPE_ARENA | BATTLE_TYPE_PALACE)) - && AI_THINKING_STRUCT->aiFlags & (AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_PREFER_BATON_PASS)) - { - // Consider switching if all moves are worthless to use. - if (GetTotalBaseStat(gBattleMons[sBattler_AI].species) >= 310 // Mon is not weak. - && gBattleMons[sBattler_AI].hp >= gBattleMons[sBattler_AI].maxHP / 2) - { - s32 cap = AI_THINKING_STRUCT->aiFlags & (AI_SCRIPT_CHECK_VIABILITY) ? 95 : 93; - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (AI_THINKING_STRUCT->score[i] > cap) - break; - } - - if (i == MAX_MON_MOVES && GetMostSuitableMonToSwitchInto() != PARTY_SIZE) - { - AI_THINKING_STRUCT->switchMon = TRUE; - return AI_CHOICE_SWITCH; - } - } - - // Consider switching if your mon with truant is bodied by Protect spam. - // Or is using a double turn semi invulnerable move(such as Fly) and is faster. - if (GetBattlerAbility(sBattler_AI) == ABILITY_TRUANT - && IsTruantMonVulnerable(sBattler_AI, gBattlerTarget) - && gDisableStructs[sBattler_AI].truantCounter - && gBattleMons[sBattler_AI].hp >= gBattleMons[sBattler_AI].maxHP / 2) - { - if (GetMostSuitableMonToSwitchInto() != PARTY_SIZE) - { - AI_THINKING_STRUCT->switchMon = TRUE; - return AI_CHOICE_SWITCH; - } - } - } - - numOfBestMoves = 1; - currentMoveArray[0] = AI_THINKING_STRUCT->score[0]; - consideredMoveArray[0] = 0; - - for (i = 1; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[sBattler_AI].moves[i] != MOVE_NONE) - { - // In ruby, the order of these if statements is reversed. - if (currentMoveArray[0] == AI_THINKING_STRUCT->score[i]) - { - currentMoveArray[numOfBestMoves] = AI_THINKING_STRUCT->score[i]; - consideredMoveArray[numOfBestMoves++] = i; - } - if (currentMoveArray[0] < AI_THINKING_STRUCT->score[i]) - { - numOfBestMoves = 1; - currentMoveArray[0] = AI_THINKING_STRUCT->score[i]; - consideredMoveArray[0] = i; - } - } - } - return consideredMoveArray[Random() % numOfBestMoves]; -} - -static u8 ChooseMoveOrAction_Doubles(void) -{ - s32 i, j; - u32 flags; - s16 bestMovePointsForTarget[MAX_BATTLERS_COUNT]; - s8 mostViableTargetsArray[MAX_BATTLERS_COUNT]; - u8 actionOrMoveIndex[MAX_BATTLERS_COUNT]; - u8 mostViableMovesScores[MAX_MON_MOVES]; - u8 mostViableMovesIndices[MAX_MON_MOVES]; - s32 mostViableTargetsNo; - s32 mostViableMovesNo; - s16 mostMovePoints; - - for (i = 0; i < MAX_BATTLERS_COUNT; i++) - { - if (i == sBattler_AI || gBattleMons[i].hp == 0) - { - actionOrMoveIndex[i] = 0xFF; - bestMovePointsForTarget[i] = -1; - } - else - { - if (gBattleTypeFlags & BATTLE_TYPE_PALACE) - BattleAI_SetupAIData(gBattleStruct->palaceFlags >> 4); - else - BattleAI_SetupAIData((1 << MAX_MON_MOVES) - 1); - - gBattlerTarget = i; - - if ((i & BIT_SIDE) != (sBattler_AI & BIT_SIDE)) - RecordLastUsedMoveByTarget(); - - AI_THINKING_STRUCT->aiLogicId = 0; - AI_THINKING_STRUCT->movesetIndex = 0; - flags = AI_THINKING_STRUCT->aiFlags; - while (flags != 0) - { - if (flags & 1) - { - AI_THINKING_STRUCT->aiState = AIState_SettingUp; - BattleAI_DoAIProcessing(); - } - flags >>= 1; - AI_THINKING_STRUCT->aiLogicId++; - AI_THINKING_STRUCT->movesetIndex = 0; - } - - if (AI_THINKING_STRUCT->aiAction & AI_ACTION_FLEE) - { - actionOrMoveIndex[i] = AI_CHOICE_FLEE; - } - else if (AI_THINKING_STRUCT->aiAction & AI_ACTION_WATCH) - { - actionOrMoveIndex[i] = AI_CHOICE_WATCH; - } - else - { - mostViableMovesScores[0] = AI_THINKING_STRUCT->score[0]; - mostViableMovesIndices[0] = 0; - mostViableMovesNo = 1; - for (j = 1; j < MAX_MON_MOVES; j++) - { - if (gBattleMons[sBattler_AI].moves[j] != 0) - { - if (mostViableMovesScores[0] == AI_THINKING_STRUCT->score[j]) - { - mostViableMovesScores[mostViableMovesNo] = AI_THINKING_STRUCT->score[j]; - mostViableMovesIndices[mostViableMovesNo] = j; - mostViableMovesNo++; - } - if (mostViableMovesScores[0] < AI_THINKING_STRUCT->score[j]) - { - mostViableMovesScores[0] = AI_THINKING_STRUCT->score[j]; - mostViableMovesIndices[0] = j; - mostViableMovesNo = 1; - } - } - } - actionOrMoveIndex[i] = mostViableMovesIndices[Random() % mostViableMovesNo]; - bestMovePointsForTarget[i] = mostViableMovesScores[0]; - - // Don't use a move against ally if it has less than 100 points. - if (i == (sBattler_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100) - { - bestMovePointsForTarget[i] = -1; - mostViableMovesScores[0] = mostViableMovesScores[0]; // Needed to match. - } - } - - for (j = 0; j < MAX_MON_MOVES; j++) - gBattleStruct->aiFinalScore[sBattler_AI][gBattlerTarget][j] = AI_THINKING_STRUCT->score[j]; - } - } - - mostMovePoints = bestMovePointsForTarget[0]; - mostViableTargetsArray[0] = 0; - mostViableTargetsNo = 1; - - for (i = 1; i < MAX_BATTLERS_COUNT; i++) - { - if (mostMovePoints == bestMovePointsForTarget[i]) - { - mostViableTargetsArray[mostViableTargetsNo] = i; - mostViableTargetsNo++; - } - if (mostMovePoints < bestMovePointsForTarget[i]) - { - mostMovePoints = bestMovePointsForTarget[i]; - mostViableTargetsArray[0] = i; - mostViableTargetsNo = 1; - } - } - - gBattlerTarget = mostViableTargetsArray[Random() % mostViableTargetsNo]; - return actionOrMoveIndex[gBattlerTarget]; -} - -static void BattleAI_DoAIProcessing(void) -{ - while (AI_THINKING_STRUCT->aiState != AIState_FinishedProcessing) - { - switch (AI_THINKING_STRUCT->aiState) - { - case AIState_DoNotProcess: // Needed to match. - break; - case AIState_SettingUp: - gAIScriptPtr = gBattleAI_ScriptsTable[AI_THINKING_STRUCT->aiLogicId]; // set AI ptr to logic ID. - if (gBattleMons[sBattler_AI].pp[AI_THINKING_STRUCT->movesetIndex] == 0) - { - AI_THINKING_STRUCT->moveConsidered = 0; - } - else - { - AI_THINKING_STRUCT->moveConsidered = gBattleMons[sBattler_AI].moves[AI_THINKING_STRUCT->movesetIndex]; - } - AI_THINKING_STRUCT->aiState++; - break; - case AIState_Processing: - if (AI_THINKING_STRUCT->moveConsidered != 0) - { - sBattleAICmdTable[*gAIScriptPtr](); // Run AI command. - } - else - { - AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; - AI_THINKING_STRUCT->aiAction |= AI_ACTION_DONE; - } - if (AI_THINKING_STRUCT->aiAction & AI_ACTION_DONE) - { - AI_THINKING_STRUCT->movesetIndex++; - - if (AI_THINKING_STRUCT->movesetIndex < MAX_MON_MOVES && !(AI_THINKING_STRUCT->aiAction & AI_ACTION_DO_NOT_ATTACK)) - AI_THINKING_STRUCT->aiState = AIState_SettingUp; - else - AI_THINKING_STRUCT->aiState++; - - AI_THINKING_STRUCT->aiAction &= ~(AI_ACTION_DONE); - } - break; - } - } -} - -static void RecordLastUsedMoveByTarget(void) -{ - RecordKnownMove(gBattlerTarget, gLastMoves[gBattlerTarget]); -} - -bool32 IsBattlerAIControlled(u32 battlerId) -{ - switch (GetBattlerPosition(battlerId)) - { - case B_POSITION_PLAYER_LEFT: - default: - return FALSE; - case B_POSITION_OPPONENT_LEFT: - return TRUE; - case B_POSITION_PLAYER_RIGHT: - return ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) != 0); - case B_POSITION_OPPONENT_RIGHT: - return TRUE; - } -} - -void ClearBattlerMoveHistory(u8 battlerId) -{ - memset(BATTLE_HISTORY->usedMoves[battlerId], 0, sizeof(BATTLE_HISTORY->usedMoves[battlerId])); - memset(BATTLE_HISTORY->moveHistory[battlerId], 0, sizeof(BATTLE_HISTORY->moveHistory[battlerId])); - BATTLE_HISTORY->moveHistoryIndex[battlerId] = 0; -} - -void RecordLastUsedMoveBy(u32 battlerId, u32 move) -{ - u8 *index = &BATTLE_HISTORY->moveHistoryIndex[battlerId]; - - if (++(*index) >= AI_MOVE_HISTORY_COUNT) - *index = 0; - BATTLE_HISTORY->moveHistory[battlerId][*index] = move; -} - -void RecordKnownMove(u8 battlerId, u32 move) -{ - s32 i; - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (BATTLE_HISTORY->usedMoves[battlerId][i] == move) - break; - if (BATTLE_HISTORY->usedMoves[battlerId][i] == MOVE_NONE) - { - BATTLE_HISTORY->usedMoves[battlerId][i] = move; - break; - } - } -} - -void RecordAbilityBattle(u8 battlerId, u16 abilityId) -{ - BATTLE_HISTORY->abilities[battlerId] = abilityId; -} - -void ClearBattlerAbilityHistory(u8 battlerId) -{ - BATTLE_HISTORY->abilities[battlerId] = ABILITY_NONE; -} - -void RecordItemEffectBattle(u8 battlerId, u8 itemEffect) -{ - BATTLE_HISTORY->itemEffects[battlerId] = itemEffect; -} - -void ClearBattlerItemEffectHistory(u8 battlerId) -{ - BATTLE_HISTORY->itemEffects[battlerId] = 0; -} - -static void SaveBattlerData(u8 battlerId) -{ - if (!IsBattlerAIControlled(battlerId)) - { - u32 i; - - AI_THINKING_STRUCT->saved[battlerId].ability = gBattleMons[battlerId].ability; - AI_THINKING_STRUCT->saved[battlerId].heldItem = gBattleMons[battlerId].item; - AI_THINKING_STRUCT->saved[battlerId].species = gBattleMons[battlerId].species; - for (i = 0; i < 4; i++) - AI_THINKING_STRUCT->saved[battlerId].moves[i] = gBattleMons[battlerId].moves[i]; - } -} - -static void SetBattlerData(u8 battlerId) -{ - if (!IsBattlerAIControlled(battlerId)) - { - struct Pokemon *illusionMon; - u32 i; - - // Use the known battler's ability. - if (BATTLE_HISTORY->abilities[battlerId] != ABILITY_NONE) - gBattleMons[battlerId].ability = BATTLE_HISTORY->abilities[battlerId]; - // Check if mon can only have one ability. - else if (gBaseStats[gBattleMons[battlerId].species].abilities[1] == ABILITY_NONE - || gBaseStats[gBattleMons[battlerId].species].abilities[1] == gBaseStats[gBattleMons[battlerId].species].abilities[0]) - gBattleMons[battlerId].ability = gBaseStats[gBattleMons[battlerId].species].abilities[0]; - // The ability is unknown. - else - gBattleMons[battlerId].ability = ABILITY_NONE; - - if (BATTLE_HISTORY->itemEffects[battlerId] == 0) - gBattleMons[battlerId].item = 0; - - for (i = 0; i < 4; i++) - { - if (BATTLE_HISTORY->usedMoves[battlerId][i] == 0) - gBattleMons[battlerId].moves[i] = 0; - } - - // Simulate Illusion - if ((illusionMon = GetIllusionMonPtr(battlerId)) != NULL) - gBattleMons[battlerId].species = GetMonData(illusionMon, MON_DATA_SPECIES2); - } -} - -static void RestoreBattlerData(u8 battlerId) -{ - if (!IsBattlerAIControlled(battlerId)) - { - u32 i; - - gBattleMons[battlerId].ability = AI_THINKING_STRUCT->saved[battlerId].ability; - gBattleMons[battlerId].item = AI_THINKING_STRUCT->saved[battlerId].heldItem; - gBattleMons[battlerId].species = AI_THINKING_STRUCT->saved[battlerId].species; - for (i = 0; i < 4; i++) - gBattleMons[battlerId].moves[i] = AI_THINKING_STRUCT->saved[battlerId].moves[i]; - } -} - -static bool32 AI_GetIfCrit(u32 move, u8 battlerAtk, u8 battlerDef) -{ - bool32 isCrit; - - switch (CalcCritChanceStage(battlerAtk, battlerDef, move, FALSE)) - { - case -1: - case 0: - default: - isCrit = FALSE; - break; - case 1: - if (gBattleMoves[move].flags & FLAG_HIGH_CRIT && (Random() % 5 == 0)) - isCrit = TRUE; - else - isCrit = FALSE; - break; - case 2: - if (gBattleMoves[move].flags & FLAG_HIGH_CRIT && (Random() % 2 == 0)) - isCrit = TRUE; - else if (!(gBattleMoves[move].flags & FLAG_HIGH_CRIT) && (Random() % 4) == 0) - isCrit = TRUE; - else - isCrit = FALSE; - break; - case -2: - case 3: - case 4: - isCrit = TRUE; - break; - } - - return isCrit; -} - -s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef) -{ - s32 dmg, moveType; - - SaveBattlerData(battlerAtk); - SaveBattlerData(battlerDef); - - SetBattlerData(battlerAtk); - SetBattlerData(battlerDef); - - gBattleStruct->dynamicMoveType = 0; - SetTypeBeforeUsingMove(move, battlerAtk); - GET_MOVE_TYPE(move, moveType); - dmg = CalculateMoveDamage(move, battlerAtk, battlerDef, moveType, 0, AI_GetIfCrit(move, battlerAtk, battlerDef), FALSE, FALSE); - - RestoreBattlerData(battlerAtk); - RestoreBattlerData(battlerDef); - - return dmg; -} - -s32 AI_CalcPartyMonDamage(u16 move, u8 battlerAtk, u8 battlerDef, struct Pokemon *mon) -{ - s32 dmg; - u32 i; - struct BattlePokemon *battleMons = Alloc(sizeof(struct BattlePokemon) * MAX_BATTLERS_COUNT); - - for (i = 0; i < MAX_BATTLERS_COUNT; i++) - battleMons[i] = gBattleMons[i]; - - PokemonToBattleMon(mon, &gBattleMons[battlerAtk]); - dmg = AI_CalcDamage(move, battlerAtk, battlerDef); - - for (i = 0; i < MAX_BATTLERS_COUNT; i++) - gBattleMons[i] = battleMons[i]; - - Free(battleMons); - - return dmg; -} - -u16 AI_GetTypeEffectiveness(u16 move, u8 battlerAtk, u8 battlerDef) -{ - u16 typeEffectiveness, moveType; - - SaveBattlerData(battlerAtk); - SaveBattlerData(battlerDef); - - SetBattlerData(battlerAtk); - SetBattlerData(battlerDef); - - gBattleStruct->dynamicMoveType = 0; - SetTypeBeforeUsingMove(move, battlerAtk); - GET_MOVE_TYPE(move, moveType); - typeEffectiveness = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); - - RestoreBattlerData(battlerAtk); - RestoreBattlerData(battlerDef); - - return typeEffectiveness; -} - -static void Cmd_if_random_less_than(void) -{ - u16 random = Random(); - - if (random % 256 < gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_if_random_greater_than(void) -{ - u16 random = Random(); - - if (random % 256 > gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_if_random_equal(void) -{ - u16 random = Random(); - - if (random % 256 == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_if_random_not_equal(void) -{ - u16 random = Random(); - - if (random % 256 != gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_score(void) -{ - AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] += gAIScriptPtr[1]; // Add the result to the array of the move consider's score. - - if (AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] < 0) // If the score is negative, flatten it to 0. - AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; - - gAIScriptPtr += 2; // AI return. -} - -static u8 BattleAI_GetWantedBattler(u8 wantedBattler) -{ - switch (wantedBattler) - { - case AI_USER: - return sBattler_AI; - case AI_TARGET: - default: - return gBattlerTarget; - case AI_USER_PARTNER: - return sBattler_AI ^ BIT_FLANK; - case AI_TARGET_PARTNER: - return gBattlerTarget ^ BIT_FLANK; - } -} - -static void Cmd_if_hp_less_than(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if ((u32)(100 * gBattleMons[battlerId].hp / gBattleMons[battlerId].maxHP) < gAIScriptPtr[2]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_hp_more_than(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if ((u32)(100 * gBattleMons[battlerId].hp / gBattleMons[battlerId].maxHP) > gAIScriptPtr[2]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_hp_equal(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if ((u32)(100 * gBattleMons[battlerId].hp / gBattleMons[battlerId].maxHP) == gAIScriptPtr[2]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_hp_not_equal(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if ((u32)(100 * gBattleMons[battlerId].hp / gBattleMons[battlerId].maxHP) != gAIScriptPtr[2]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_status(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 status = T1_READ_32(gAIScriptPtr + 2); - - if (gBattleMons[battlerId].status1 & status) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - else - gAIScriptPtr += 10; -} - -static void Cmd_if_not_status(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 status = T1_READ_32(gAIScriptPtr + 2); - - if (!(gBattleMons[battlerId].status1 & status)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - else - gAIScriptPtr += 10; -} - -static void Cmd_if_status2(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 status = T1_READ_32(gAIScriptPtr + 2); - - if ((gBattleMons[battlerId].status2 & status)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - else - gAIScriptPtr += 10; -} - -static void Cmd_if_not_status2(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 status = T1_READ_32(gAIScriptPtr + 2); - - if (!(gBattleMons[battlerId].status2 & status)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - else - gAIScriptPtr += 10; -} - -static void Cmd_if_status3(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 status = T1_READ_32(gAIScriptPtr + 2); - - if (gStatuses3[battlerId] & status) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - else - gAIScriptPtr += 10; -} - -static void Cmd_if_not_status3(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 status = T1_READ_32(gAIScriptPtr + 2); - - if (!(gStatuses3[battlerId] & status)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - else - gAIScriptPtr += 10; -} - -static void Cmd_if_side_affecting(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 status = T1_READ_32(gAIScriptPtr + 2); - u32 side = GET_BATTLER_SIDE(battlerId); - - if (gSideStatuses[side] & status) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - else - gAIScriptPtr += 10; -} - -static void Cmd_if_not_side_affecting(void) -{ - u16 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 status = T1_READ_32(gAIScriptPtr + 2); - u32 side = GET_BATTLER_SIDE(battlerId); - - if (!(gSideStatuses[side] & status)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - else - gAIScriptPtr += 10; -} - -static void Cmd_if_less_than(void) -{ - if (AI_THINKING_STRUCT->funcResult < gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_if_more_than(void) -{ - if (AI_THINKING_STRUCT->funcResult > gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_if_equal(void) -{ - if (AI_THINKING_STRUCT->funcResult == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_if_not_equal(void) -{ - if (AI_THINKING_STRUCT->funcResult != gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_if_less_than_ptr(void) -{ - const u8 *value = T1_READ_PTR(gAIScriptPtr + 1); - - if (AI_THINKING_STRUCT->funcResult < *value) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - else - gAIScriptPtr += 9; -} - -static void Cmd_if_more_than_ptr(void) -{ - const u8 *value = T1_READ_PTR(gAIScriptPtr + 1); - - if (AI_THINKING_STRUCT->funcResult > *value) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - else - gAIScriptPtr += 9; -} - -static void Cmd_if_equal_ptr(void) -{ - const u8 *value = T1_READ_PTR(gAIScriptPtr + 1); - - if (AI_THINKING_STRUCT->funcResult == *value) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - else - gAIScriptPtr += 9; -} - -static void Cmd_if_not_equal_ptr(void) -{ - const u8 *value = T1_READ_PTR(gAIScriptPtr + 1); - - if (AI_THINKING_STRUCT->funcResult != *value) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - else - gAIScriptPtr += 9; -} - -static void Cmd_if_move(void) -{ - u16 move = T1_READ_16(gAIScriptPtr + 1); - - if (AI_THINKING_STRUCT->moveConsidered == move) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_not_move(void) -{ - u16 move = T1_READ_16(gAIScriptPtr + 1); - - if (AI_THINKING_STRUCT->moveConsidered != move) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_in_bytes(void) -{ - const u8 *ptr = T1_READ_PTR(gAIScriptPtr + 1); - - while (*ptr != 0xFF) - { - if (AI_THINKING_STRUCT->funcResult == *ptr) - { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - return; - } - ptr++; - } - gAIScriptPtr += 9; -} - -static void Cmd_if_not_in_bytes(void) -{ - const u8 *ptr = T1_READ_PTR(gAIScriptPtr + 1); - - while (*ptr != 0xFF) - { - if (AI_THINKING_STRUCT->funcResult == *ptr) - { - gAIScriptPtr += 9; - return; - } - ptr++; - } - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); -} - -static void Cmd_if_in_hwords(void) -{ - const u16 *ptr = (const u16 *)T1_READ_PTR(gAIScriptPtr + 1); - - while (*ptr != 0xFFFF) - { - if (AI_THINKING_STRUCT->funcResult == *ptr) - { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - return; - } - ptr++; - } - gAIScriptPtr += 9; -} - -static void Cmd_if_not_in_hwords(void) -{ - const u16 *ptr = (const u16 *)T1_READ_PTR(gAIScriptPtr + 1); - - while (*ptr != 0xFFFF) - { - if (AI_THINKING_STRUCT->funcResult == *ptr) - { - gAIScriptPtr += 9; - return; - } - ptr++; - } - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); -} - -static void Cmd_if_user_has_attacking_move(void) -{ - s32 i; - - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[sBattler_AI].moves[i] != 0 - && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].power != 0) - break; - } - - if (i == MAX_MON_MOVES) - gAIScriptPtr += 5; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); -} - -static void Cmd_if_user_has_no_attacking_moves(void) -{ - s32 i; - - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[sBattler_AI].moves[i] != 0 - && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].power != 0) - break; - } - - if (i != MAX_MON_MOVES) - gAIScriptPtr += 5; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); -} - -static void Cmd_get_turn_count(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleResults.battleTurnCounter; - gAIScriptPtr += 1; -} - -static void Cmd_get_type(void) -{ - u8 typeVar = gAIScriptPtr[1]; - - switch (typeVar) - { - case AI_TYPE1_USER: // AI user primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].type1; - break; - case AI_TYPE1_TARGET: // target primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type1; - break; - case AI_TYPE2_USER: // AI user secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].type2; - break; - case AI_TYPE2_TARGET: // target secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type2; - break; - case AI_TYPE_MOVE: // type of move being pointed to - AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; - break; - } - gAIScriptPtr += 2; -} - -static void Cmd_is_of_type(void) -{ - u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if (IS_BATTLER_OF_TYPE(battlerId, gAIScriptPtr[2])) - AI_THINKING_STRUCT->funcResult = TRUE; - else - AI_THINKING_STRUCT->funcResult = FALSE; - - gAIScriptPtr += 3; -} - -static void Cmd_get_considered_move_power(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power; - gAIScriptPtr += 1; -} - -// Checks if one of the moves has side effects or perks -static u32 WhichMoveBetter(u32 move1, u32 move2) -{ - s32 defAbility = AI_GetAbility(gBattlerTarget, FALSE); - - // Check if physical moves hurt. - if (GetBattlerHoldEffect(sBattler_AI, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS - && (BATTLE_HISTORY->itemEffects[gBattlerTarget] == HOLD_EFFECT_ROCKY_HELMET - || defAbility == ABILITY_IRON_BARBS || defAbility == ABILITY_ROUGH_SKIN)) - { - if (IS_MOVE_PHYSICAL(move1) && !IS_MOVE_PHYSICAL(move2)) - return 1; - if (IS_MOVE_PHYSICAL(move2) && !IS_MOVE_PHYSICAL(move1)) - return 0; - } - // Check recoil - if (GetBattlerAbility(sBattler_AI) != ABILITY_ROCK_HEAD) - { - if (((gBattleMoves[move1].effect == EFFECT_RECOIL_25 - || gBattleMoves[move1].effect == EFFECT_RECOIL_IF_MISS - || gBattleMoves[move1].effect == EFFECT_RECOIL_50 - || gBattleMoves[move1].effect == EFFECT_RECOIL_33 - || gBattleMoves[move1].effect == EFFECT_RECOIL_33_STATUS) - && (gBattleMoves[move2].effect != EFFECT_RECOIL_25 - && gBattleMoves[move2].effect != EFFECT_RECOIL_IF_MISS - && gBattleMoves[move2].effect != EFFECT_RECOIL_50 - && gBattleMoves[move2].effect != EFFECT_RECOIL_33 - && gBattleMoves[move2].effect != EFFECT_RECOIL_33_STATUS - && gBattleMoves[move2].effect != EFFECT_RECHARGE))) - return 1; - - if (((gBattleMoves[move2].effect == EFFECT_RECOIL_25 - || gBattleMoves[move2].effect == EFFECT_RECOIL_IF_MISS - || gBattleMoves[move2].effect == EFFECT_RECOIL_50 - || gBattleMoves[move2].effect == EFFECT_RECOIL_33 - || gBattleMoves[move2].effect == EFFECT_RECOIL_33_STATUS) - && (gBattleMoves[move1].effect != EFFECT_RECOIL_25 - && gBattleMoves[move1].effect != EFFECT_RECOIL_IF_MISS - && gBattleMoves[move1].effect != EFFECT_RECOIL_50 - && gBattleMoves[move1].effect != EFFECT_RECOIL_33 - && gBattleMoves[move1].effect != EFFECT_RECOIL_33_STATUS - && gBattleMoves[move1].effect != EFFECT_RECHARGE))) - return 0; - } - // Check recharge - if (gBattleMoves[move1].effect == EFFECT_RECHARGE && gBattleMoves[move2].effect != EFFECT_RECHARGE) - return 1; - if (gBattleMoves[move2].effect == EFFECT_RECHARGE && gBattleMoves[move1].effect != EFFECT_RECHARGE) - return 0; - // Check additional effect. - if (gBattleMoves[move1].effect == 0 && gBattleMoves[move2].effect != 0) - return 1; - if (gBattleMoves[move2].effect == 0 && gBattleMoves[move1].effect != 0) - return 0; - - return 2; -} - -static void Cmd_get_how_powerful_move_is(void) -{ - s32 i, checkedMove, bestId, currId, hp; - s32 moveDmgs[MAX_MON_MOVES]; - - for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++) - { - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == sDiscouragedPowerfulMoveEffects[i]) - break; - } - - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power != 0 - && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF) - { - for (checkedMove = 0; checkedMove < MAX_MON_MOVES; checkedMove++) - { - for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++) - { - if (gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].effect == sDiscouragedPowerfulMoveEffects[i]) - break; - } - - if (gBattleMons[sBattler_AI].moves[checkedMove] != MOVE_NONE - && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF - && gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].power != 0) - { - moveDmgs[checkedMove] = AI_THINKING_STRUCT->simulatedDmg[sBattler_AI][gBattlerTarget][checkedMove]; - } - else - { - moveDmgs[checkedMove] = 0; - } - } - - hp = gBattleMons[gBattlerTarget].hp + (20 * gBattleMons[gBattlerTarget].hp / 100); // 20 % add to make sure the battler is always fainted - // If a move can faint battler, it doesn't matter how much damage it does - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (moveDmgs[i] > hp) - moveDmgs[i] = hp; - } - - for (bestId = 0, i = 1; i < MAX_MON_MOVES; i++) - { - if (moveDmgs[i] > moveDmgs[bestId]) - bestId = i; - if (moveDmgs[i] == moveDmgs[bestId]) - { - switch (WhichMoveBetter(gBattleMons[sBattler_AI].moves[bestId], gBattleMons[sBattler_AI].moves[i])) - { - case 2: - if (Random() & 1) - break; - case 1: - bestId = i; - break; - } - } - } - - currId = AI_THINKING_STRUCT->movesetIndex; - if (currId == bestId) - AI_THINKING_STRUCT->funcResult = MOVE_POWER_BEST; - // Compare percentage difference. - else if ((moveDmgs[currId] >= hp || moveDmgs[bestId] < hp) // If current move can faint as well, or if neither can - && (moveDmgs[bestId] * 100 / hp) - (moveDmgs[currId] * 100 / hp) <= 30 - && WhichMoveBetter(gBattleMons[sBattler_AI].moves[bestId], gBattleMons[sBattler_AI].moves[currId]) != 0) - AI_THINKING_STRUCT->funcResult = MOVE_POWER_GOOD; - else - AI_THINKING_STRUCT->funcResult = MOVE_POWER_WEAK; - } - else - { - AI_THINKING_STRUCT->funcResult = MOVE_POWER_DISCOURAGED; // Highly discouraged in terms of power. - } - - gAIScriptPtr++; -} - -static void Cmd_get_last_used_battler_move(void) -{ - AI_THINKING_STRUCT->funcResult = gLastMoves[BattleAI_GetWantedBattler(gAIScriptPtr[1])]; - gAIScriptPtr += 2; -} - -static void Cmd_if_equal_u32(void) -{ - if (T1_READ_32(&gAIScriptPtr[1]) == AI_THINKING_STRUCT->funcResult) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - else - gAIScriptPtr += 9; -} - -static void Cmd_if_not_equal_u32(void) -{ - if (T1_READ_32(&gAIScriptPtr[1]) != AI_THINKING_STRUCT->funcResult) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - else - gAIScriptPtr += 9; -} - -static void Cmd_if_user_goes(void) -{ - u32 fasterAI = 0, fasterPlayer = 0, i; - s8 prioAI, prioPlayer; - - // Check move priorities first. - prioAI = GetMovePriority(sBattler_AI, AI_THINKING_STRUCT->moveConsidered); - SaveBattlerData(gBattlerTarget); - SetBattlerData(gBattlerTarget); - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[gBattlerTarget].moves[i] == 0 || gBattleMons[gBattlerTarget].moves[i] == 0xFFFF) - continue; - - prioPlayer = GetMovePriority(gBattlerTarget, gBattleMons[gBattlerTarget].moves[i]); - if (prioAI > prioPlayer) - fasterAI++; - else if (prioPlayer > prioAI) - fasterPlayer++; - } - RestoreBattlerData(gBattlerTarget); - - if (fasterAI > fasterPlayer) - { - if (gAIScriptPtr[1] == 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; - } - else if (fasterAI < fasterPlayer) - { - if (gAIScriptPtr[1] == 1) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; - } - else - { - // Priorities are the same(at least comparing to moves the AI is aware of), decide by speed. - if (GetWhoStrikesFirst(sBattler_AI, gBattlerTarget, TRUE) == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; - } -} - -static void Cmd_nullsub_2A(void) -{ -} - -static void Cmd_nullsub_2B(void) -{ -} - -static s32 CountUsablePartyMons(u8 battlerId) -{ - s32 battlerOnField1, battlerOnField2, i, ret; - struct Pokemon *party; - - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; - - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - battlerOnField1 = gBattlerPartyIndexes[battlerId]; - battlerOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(battlerId) ^ BIT_FLANK)]; - } - else // In singles there's only one battlerId by side. - { - battlerOnField1 = gBattlerPartyIndexes[battlerId]; - battlerOnField2 = gBattlerPartyIndexes[battlerId]; - } - - ret = 0; - for (i = 0; i < PARTY_SIZE; i++) - { - if (i != battlerOnField1 && i != battlerOnField2 - && GetMonData(&party[i], MON_DATA_HP) != 0 - && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE - && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) - { - ret++; - } - } - - return ret; -} - -static void Cmd_count_usable_party_mons(void) -{ - AI_THINKING_STRUCT->funcResult = CountUsablePartyMons(BattleAI_GetWantedBattler(gAIScriptPtr[1])); - gAIScriptPtr += 2; -} - -static void Cmd_get_considered_move(void) -{ - AI_THINKING_STRUCT->funcResult = AI_THINKING_STRUCT->moveConsidered; - gAIScriptPtr += 1; -} - -static void Cmd_get_considered_move_effect(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect; - gAIScriptPtr += 1; -} - -static s32 AI_GetAbility(u32 battlerId, bool32 guess) -{ - // The AI knows its own ability. - if (IsBattlerAIControlled(battlerId)) - return gBattleMons[battlerId].ability; - - if (BATTLE_HISTORY->abilities[battlerId] != 0) - return BATTLE_HISTORY->abilities[battlerId]; - - // Abilities that prevent fleeing. - if (gBattleMons[battlerId].ability == ABILITY_SHADOW_TAG - || gBattleMons[battlerId].ability == ABILITY_MAGNET_PULL - || gBattleMons[battlerId].ability == ABILITY_ARENA_TRAP) - return gBattleMons[battlerId].ability; - - if (gBaseStats[gBattleMons[battlerId].species].abilities[0] != ABILITY_NONE) - { - if (gBaseStats[gBattleMons[battlerId].species].abilities[1] != ABILITY_NONE) - { - // AI has no knowledge of opponent, so it guesses which ability. - if (guess) - return gBaseStats[gBattleMons[battlerId].species].abilities[Random() & 1]; - } - else - { - return gBaseStats[gBattleMons[battlerId].species].abilities[0]; // It's definitely ability 1. - } - } - return -1; // Unknown. -} - -static void Cmd_get_ability(void) -{ - AI_THINKING_STRUCT->funcResult = AI_GetAbility(BattleAI_GetWantedBattler(gAIScriptPtr[1]), TRUE); - gAIScriptPtr += 2; -} - -static void Cmd_check_ability(void) -{ - u32 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 ability = AI_GetAbility(battlerId, FALSE); - - if (ability == -1) - AI_THINKING_STRUCT->funcResult = 2; // Unable to answer. - else if (ability == gAIScriptPtr[2]) - AI_THINKING_STRUCT->funcResult = 1; // Pokemon has the ability we wanted to check. - else - AI_THINKING_STRUCT->funcResult = 0; // Pokemon doesn't have the ability we wanted to check. - - gAIScriptPtr += 3; -} - -static void Cmd_get_highest_type_effectiveness(void) -{ - s32 i; - - gMoveResultFlags = 0; - AI_THINKING_STRUCT->funcResult = 0; - for (i = 0; i < MAX_MON_MOVES; i++) - { - gCurrentMove = gBattleMons[sBattler_AI].moves[i]; - if (gCurrentMove != MOVE_NONE) - { - u32 effectivenessMultiplier = AI_GetTypeEffectiveness(gCurrentMove, sBattler_AI, gBattlerTarget); - - switch (effectivenessMultiplier) - { - case UQ_4_12(0.0): - default: - gBattleMoveDamage = AI_EFFECTIVENESS_x0; - break; - case UQ_4_12(0.25): - gBattleMoveDamage = AI_EFFECTIVENESS_x0_25; - break; - case UQ_4_12(0.5): - gBattleMoveDamage = AI_EFFECTIVENESS_x0_5; - break; - case UQ_4_12(1.0): - gBattleMoveDamage = AI_EFFECTIVENESS_x1; - break; - case UQ_4_12(2.0): - gBattleMoveDamage = AI_EFFECTIVENESS_x2; - break; - case UQ_4_12(4.0): - gBattleMoveDamage = AI_EFFECTIVENESS_x4; - break; - } - - if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage) - AI_THINKING_STRUCT->funcResult = gBattleMoveDamage; - } - } - - gAIScriptPtr += 1; -} - -static void Cmd_if_type_effectiveness(void) -{ - u8 damageVar; - u32 effectivenessMultiplier; - - gMoveResultFlags = 0; - gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - effectivenessMultiplier = AI_GetTypeEffectiveness(gCurrentMove, sBattler_AI, gBattlerTarget); - switch (effectivenessMultiplier) - { - case UQ_4_12(0.0): - default: - damageVar = AI_EFFECTIVENESS_x0; - break; - case UQ_4_12(0.25): - damageVar = AI_EFFECTIVENESS_x0_25; - break; - case UQ_4_12(0.5): - damageVar = AI_EFFECTIVENESS_x0_5; - break; - case UQ_4_12(1.0): - damageVar = AI_EFFECTIVENESS_x1; - break; - case UQ_4_12(2.0): - damageVar = AI_EFFECTIVENESS_x2; - break; - case UQ_4_12(4.0): - damageVar = AI_EFFECTIVENESS_x4; - break; - } - - if (damageVar == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_nullsub_32(void) -{ -} - -static void Cmd_nullsub_33(void) -{ -} - -static void Cmd_if_status_in_party(void) -{ - struct Pokemon *party; - s32 i; - u32 statusToCompareTo; - u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - party = (GetBattlerSide(battlerId) == B_SIDE_PLAYER) ? gPlayerParty : gEnemyParty; - - statusToCompareTo = T1_READ_32(gAIScriptPtr + 2); - - for (i = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(&party[i], MON_DATA_SPECIES); - u16 hp = GetMonData(&party[i], MON_DATA_HP); - u32 status = GetMonData(&party[i], MON_DATA_STATUS); - - if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo) - { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - return; - } - } - - gAIScriptPtr += 10; -} - -static void Cmd_if_status_not_in_party(void) -{ - struct Pokemon *party; - s32 i; - u32 statusToCompareTo; - u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - party = (GetBattlerSide(battlerId) == B_SIDE_PLAYER) ? gPlayerParty : gEnemyParty; - - statusToCompareTo = T1_READ_32(gAIScriptPtr + 2); - - for (i = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(&party[i], MON_DATA_SPECIES); - u16 hp = GetMonData(&party[i], MON_DATA_HP); - u32 status = GetMonData(&party[i], MON_DATA_STATUS); - - if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo) - { - gAIScriptPtr += 10; - return; - } - } - - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); -} - -static void Cmd_get_weather(void) -{ - if (gBattleWeather & WEATHER_RAIN_ANY) - AI_THINKING_STRUCT->funcResult = AI_WEATHER_RAIN; - else if (gBattleWeather & WEATHER_SANDSTORM_ANY) - AI_THINKING_STRUCT->funcResult = AI_WEATHER_SANDSTORM; - else if (gBattleWeather & WEATHER_SUN_ANY) - AI_THINKING_STRUCT->funcResult = AI_WEATHER_SUN; - else if (gBattleWeather & WEATHER_HAIL_ANY) - AI_THINKING_STRUCT->funcResult = AI_WEATHER_HAIL; - else - AI_THINKING_STRUCT->funcResult = AI_WEATHER_NONE; - - gAIScriptPtr += 1; -} - -static void Cmd_if_effect(void) -{ - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == T1_READ_16(gAIScriptPtr + 1)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_not_effect(void) -{ - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect != T1_READ_16(gAIScriptPtr + 1)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_stat_level_less_than(void) -{ - u32 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - if (gBattleMons[battlerId].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - else - gAIScriptPtr += 8; -} - -static void Cmd_if_stat_level_more_than(void) -{ - u32 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - if (gBattleMons[battlerId].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - else - gAIScriptPtr += 8; -} - -static void Cmd_if_stat_level_equal(void) -{ - u32 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - if (gBattleMons[battlerId].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - else - gAIScriptPtr += 8; -} - -static void Cmd_if_stat_level_not_equal(void) -{ - u32 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - if (gBattleMons[battlerId].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - else - gAIScriptPtr += 8; -} - -static void Cmd_if_can_faint(void) -{ - s32 dmg; - - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power == 0) - { - gAIScriptPtr += 5; - return; - } - - dmg = AI_THINKING_STRUCT->simulatedDmg[sBattler_AI][gBattlerTarget][AI_THINKING_STRUCT->movesetIndex]; - if (gBattleMons[gBattlerTarget].hp <= dmg) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); - else - gAIScriptPtr += 5; -} - -static void Cmd_if_cant_faint(void) -{ - s32 dmg; - - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power < 2) - { - gAIScriptPtr += 5; - return; - } - - dmg = AI_THINKING_STRUCT->simulatedDmg[sBattler_AI][gBattlerTarget][AI_THINKING_STRUCT->movesetIndex]; - if (gBattleMons[gBattlerTarget].hp > dmg) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); - else - gAIScriptPtr += 5; -} - -static void Cmd_if_has_move(void) -{ - s32 i; - const u16 *movePtr = (u16 *)(gAIScriptPtr + 2); - - switch (gAIScriptPtr[1]) - { - case AI_USER: - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[sBattler_AI].moves[i] == *movePtr) - break; - } - if (i == MAX_MON_MOVES) - gAIScriptPtr += 8; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - break; - case AI_USER_PARTNER: - if (gBattleMons[sBattler_AI ^ BIT_FLANK].hp == 0) - { - gAIScriptPtr += 8; - break; - } - else - { - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[sBattler_AI ^ BIT_FLANK].moves[i] == *movePtr) - break; - } - } - if (i == MAX_MON_MOVES) - gAIScriptPtr += 8; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - break; - case AI_TARGET: - case AI_TARGET_PARTNER: - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (BATTLE_HISTORY->usedMoves[gBattlerTarget][i] == *movePtr) - break; - } - if (i == MAX_MON_MOVES) - gAIScriptPtr += 8; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - break; - } -} - -static void Cmd_if_doesnt_have_move(void) -{ - s32 i; - const u16 *movePtr = (u16 *)(gAIScriptPtr + 2); - - switch(gAIScriptPtr[1]) - { - case AI_USER: - case AI_USER_PARTNER: // UB: no separate check for user partner. - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[sBattler_AI].moves[i] == *movePtr) - break; - } - if (i != MAX_MON_MOVES) - gAIScriptPtr += 8; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - break; - case AI_TARGET: - case AI_TARGET_PARTNER: - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (BATTLE_HISTORY->usedMoves[gBattlerTarget][i] == *movePtr) - break; - } - if (i != MAX_MON_MOVES) - gAIScriptPtr += 8; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - break; - } -} - -static void Cmd_if_has_move_with_effect(void) -{ - s32 i; - - switch (gAIScriptPtr[1]) - { - case AI_USER: - case AI_USER_PARTNER: - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[sBattler_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].effect == gAIScriptPtr[2]) - break; - } - if (i == MAX_MON_MOVES) - gAIScriptPtr += 7; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - break; - case AI_TARGET: - case AI_TARGET_PARTNER: - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleMons[gBattlerTarget].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget][i]].effect == gAIScriptPtr[2]) - break; - } - if (i == MAX_MON_MOVES) - gAIScriptPtr += 7; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - break; - } -} - -static void Cmd_if_doesnt_have_move_with_effect(void) -{ - s32 i; - - switch (gAIScriptPtr[1]) - { - case AI_USER: - case AI_USER_PARTNER: - for (i = 0; i < MAX_MON_MOVES; i++) - { - if(gBattleMons[sBattler_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].effect == gAIScriptPtr[2]) - break; - } - if (i != MAX_MON_MOVES) - gAIScriptPtr += 7; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - break; - case AI_TARGET: - case AI_TARGET_PARTNER: - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (BATTLE_HISTORY->usedMoves[gBattlerTarget][i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget][i]].effect == gAIScriptPtr[2]) - break; - } - if (i != MAX_MON_MOVES) - gAIScriptPtr += 7; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - break; - } -} - -static void Cmd_if_any_move_disabled_or_encored(void) -{ - u8 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - if (gAIScriptPtr[2] == 0) - { - if (gDisableStructs[battlerId].disabledMove == MOVE_NONE) - gAIScriptPtr += 7; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - } - else if (gAIScriptPtr[2] != 1) - { - gAIScriptPtr += 7; - } - else - { - if (gDisableStructs[battlerId].encoredMove != MOVE_NONE) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; - } -} - -static void Cmd_if_curr_move_disabled_or_encored(void) -{ - switch (gAIScriptPtr[1]) - { - case 0: - if (gDisableStructs[gActiveBattler].disabledMove == AI_THINKING_STRUCT->moveConsidered) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; - break; - case 1: - if (gDisableStructs[gActiveBattler].encoredMove == AI_THINKING_STRUCT->moveConsidered) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; - break; - default: - gAIScriptPtr += 6; - break; - } -} - -static void Cmd_flee(void) -{ - AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_FLEE | AI_ACTION_DO_NOT_ATTACK); -} - -static void Cmd_if_random_safari_flee(void) -{ - u8 safariFleeRate = gBattleStruct->safariEscapeFactor * 5; // Safari flee rate, from 0-20. - - if ((u8)(Random() % 100) < safariFleeRate) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); - else - gAIScriptPtr += 5; -} - -static void Cmd_watch(void) -{ - AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_WATCH | AI_ACTION_DO_NOT_ATTACK); -} - -static void Cmd_get_hold_effect(void) -{ - u32 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if (!IsBattlerAIControlled(battlerId)) - AI_THINKING_STRUCT->funcResult = BATTLE_HISTORY->itemEffects[battlerId]; - else - AI_THINKING_STRUCT->funcResult = GetBattlerHoldEffect(battlerId, FALSE); - - gAIScriptPtr += 2; -} - -static void Cmd_if_holds_item(void) -{ - u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u16 item; - - if ((battlerId & BIT_SIDE) == (sBattler_AI & BIT_SIDE)) - item = gBattleMons[battlerId].item; - else - item = BATTLE_HISTORY->itemEffects[battlerId]; - - if (T1_READ_16(gAIScriptPtr + 2) == item) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); - else - gAIScriptPtr += 8; -} - -static void Cmd_get_gender(void) -{ - u8 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[battlerId].species, gBattleMons[battlerId].personality); - - gAIScriptPtr += 2; -} - -static void Cmd_is_first_turn_for(void) -{ - u8 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - AI_THINKING_STRUCT->funcResult = gDisableStructs[battlerId].isFirstTurn; - - gAIScriptPtr += 2; -} - -static void Cmd_get_stockpile_count(void) -{ - u8 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - AI_THINKING_STRUCT->funcResult = gDisableStructs[battlerId].stockpileCounter; - - gAIScriptPtr += 2; -} - -static void Cmd_is_double_battle(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleTypeFlags & BATTLE_TYPE_DOUBLE; - - gAIScriptPtr += 1; -} - -static void Cmd_get_used_held_item(void) -{ - u8 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - AI_THINKING_STRUCT->funcResult = gBattleStruct->usedHeldItems[battlerId]; - - gAIScriptPtr += 2; -} - -static void Cmd_get_move_type_from_result(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].type; - - gAIScriptPtr += 1; -} - -static void Cmd_get_move_power_from_result(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].power; - - gAIScriptPtr += 1; -} - -static void Cmd_get_move_effect_from_result(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].effect; - - gAIScriptPtr += 1; -} - -static void Cmd_get_protect_count(void) -{ - u8 battlerId; - - if (gAIScriptPtr[1] == AI_USER) - battlerId = sBattler_AI; - else - battlerId = gBattlerTarget; - - AI_THINKING_STRUCT->funcResult = gDisableStructs[battlerId].protectUses; - - gAIScriptPtr += 2; -} - -static void Cmd_if_move_flag(void) -{ - u32 flag = T1_READ_32(gAIScriptPtr + 1); - - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].flags & flag) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - else - gAIScriptPtr += 9; -} - -static void Cmd_if_field_status(void) -{ - u32 fieldFlags = T1_READ_32(gAIScriptPtr + 1); - - if (gFieldStatuses & fieldFlags) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - else - gAIScriptPtr += 9; -} - -static void Cmd_get_move_accuracy(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].accuracy; - - gAIScriptPtr++; -} - -static void Cmd_call_if_eq(void) -{ - if (AI_THINKING_STRUCT->funcResult == T1_READ_16(gAIScriptPtr + 1)) - { - AIStackPushVar(gAIScriptPtr + 7); - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - } - else - { - gAIScriptPtr += 7; - } -} - -static void Cmd_call_if_move_flag(void) -{ - u32 flag = T1_READ_32(gAIScriptPtr + 1); - - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].flags & flag) - { - AIStackPushVar(gAIScriptPtr + 9); - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); - } - else - { - gAIScriptPtr += 9; - } -} - -static void Cmd_nullsub_57(void) -{ -} - -static void Cmd_call(void) -{ - AIStackPushVar(gAIScriptPtr + 5); - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); -} - -static void Cmd_goto(void) -{ - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); -} - -static void Cmd_end(void) -{ - if (AIStackPop() == 0) - AI_THINKING_STRUCT->aiAction |= AI_ACTION_DONE; -} - -static void Cmd_if_level_cond(void) -{ - switch (gAIScriptPtr[1]) - { - case 0: // greater than - if (gBattleMons[sBattler_AI].level > gBattleMons[gBattlerTarget].level) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; - break; - case 1: // less than - if (gBattleMons[sBattler_AI].level < gBattleMons[gBattlerTarget].level) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; - break; - case 2: // equal - if (gBattleMons[sBattler_AI].level == gBattleMons[gBattlerTarget].level) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; - break; - } -} - -static void Cmd_if_target_taunted(void) -{ - if (gDisableStructs[gBattlerTarget].tauntTimer != 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); - else - gAIScriptPtr += 5; -} - -static void Cmd_if_target_not_taunted(void) -{ - if (gDisableStructs[gBattlerTarget].tauntTimer == 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); - else - gAIScriptPtr += 5; -} - -static void Cmd_if_target_is_ally(void) -{ - if ((sBattler_AI & BIT_SIDE) == (gBattlerTarget & BIT_SIDE)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); - else - gAIScriptPtr += 5; -} - -static void Cmd_if_flash_fired(void) -{ - u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if (gBattleResources->flags->flags[battlerId] & RESOURCE_FLAG_FLASH_FIRE) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void AIStackPushVar(const u8 *var) -{ - gBattleResources->AI_ScriptsStack->ptr[gBattleResources->AI_ScriptsStack->size++] = var; -} - -static void AIStackPushVar_cursor(void) -{ - gBattleResources->AI_ScriptsStack->ptr[gBattleResources->AI_ScriptsStack->size++] = gAIScriptPtr; -} - -static bool8 AIStackPop(void) -{ - if (gBattleResources->AI_ScriptsStack->size != 0) - { - --gBattleResources->AI_ScriptsStack->size; - gAIScriptPtr = gBattleResources->AI_ScriptsStack->ptr[gBattleResources->AI_ScriptsStack->size]; - return TRUE; - } - else - { - return FALSE; - } -} - -static void Cmd_get_ally_chosen_move(void) -{ - u8 partnerBattler = BATTLE_PARTNER(sBattler_AI); - if (!IsBattlerAlive(partnerBattler) || !IsBattlerAIControlled(partnerBattler)) - AI_THINKING_STRUCT->funcResult = 0; - else if (partnerBattler > sBattler_AI) // Battler with the lower id chooses the move first. - AI_THINKING_STRUCT->funcResult = 0; - else - AI_THINKING_STRUCT->funcResult = gBattleMons[partnerBattler].moves[gBattleStruct->chosenMovePositions[partnerBattler]]; - - gAIScriptPtr++; -} - -static void Cmd_if_has_no_attacking_moves(void) -{ - s32 i; - u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - if (IsBattlerAIControlled(battlerId)) - { - for (i = 0; i < 4; i++) - { - if (gBattleMons[battlerId].moves[i] != 0 && gBattleMoves[gBattleMons[battlerId].moves[i]].power != 0) - break; - } - } - else - { - for (i = 0; i < 4; i++) - { - if (BATTLE_HISTORY->usedMoves[battlerId][i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[battlerId][i]].power != 0) - break; - } - } - - if (i == 4) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_get_hazards_count(void) -{ - u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u8 side = GetBattlerSide(battlerId); - - switch (T1_READ_16(gAIScriptPtr + 2)) - { - case EFFECT_SPIKES: - AI_THINKING_STRUCT->funcResult = gSideTimers[side].spikesAmount; - break; - case EFFECT_TOXIC_SPIKES: - AI_THINKING_STRUCT->funcResult = gSideTimers[side].toxicSpikesAmount; - break; - } - - gAIScriptPtr += 4; -} - -static void Cmd_if_doesnt_hold_berry(void) -{ - u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u16 item; - - if (IsBattlerAIControlled(battlerId)) - item = gBattleMons[battlerId].item; - else - item = BATTLE_HISTORY->itemEffects[battlerId]; - - if (ItemId_GetPocket(item) == POCKET_BERRIES) - gAIScriptPtr += 6; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); -} - -static void Cmd_if_share_type(void) -{ - u8 battler1 = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u8 battler2 = BattleAI_GetWantedBattler(gAIScriptPtr[2]); - - if (DoBattlersShareType(battler1, battler2)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_cant_use_last_resort(void) -{ - u8 battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if (CanUseLastResort(battler)) - gAIScriptPtr += 6; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); -} - -static u16 *GetMovesArray(u32 battler) -{ - if (IsBattlerAIControlled(battler) || IsBattlerAIControlled(BATTLE_PARTNER(battler))) - return gBattleMons[battler].moves; - else - return gBattleResources->battleHistory->usedMoves[battler]; -} - -static bool32 HasMoveWithSplit(u32 battler, u32 split) -{ - s32 i; - u16 *moves = GetMovesArray(battler); - - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && GetBattleMoveSplit(moves[i]) == split) - return TRUE; - } - - return FALSE; -} - -static void Cmd_if_has_move_with_split(void) -{ - if (HasMoveWithSplit(BattleAI_GetWantedBattler(gAIScriptPtr[1]), gAIScriptPtr[2])) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -static void Cmd_if_has_no_move_with_split(void) -{ - if (!HasMoveWithSplit(BattleAI_GetWantedBattler(gAIScriptPtr[1]), gAIScriptPtr[2])) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -// This function checks if all physical/special moves are either unusable or unreasonable to use. -// Consider a pokemon boosting their attack against a ghost pokemon having only normal-type physical attacks. -static bool32 MovesWithSplitUnusable(u32 attacker, u32 target, u32 split) -{ - s32 i, moveType; - u32 usable = 0; - u32 unusable = CheckMoveLimitations(attacker, 0, 0xFF); - u16 *moves = GetMovesArray(attacker); - - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (moves[i] != MOVE_NONE - && moves[i] != 0xFFFF - && GetBattleMoveSplit(moves[i]) == split - && !(unusable & gBitTable[i])) - { - SetTypeBeforeUsingMove(moves[i], attacker); - GET_MOVE_TYPE(moves[i], moveType); - if (CalcTypeEffectivenessMultiplier(moves[i], moveType, attacker, target, FALSE) != 0) - usable |= gBitTable[i]; - } - } - - return (usable == 0); -} - -static void Cmd_if_physical_moves_unusable(void) -{ - if (MovesWithSplitUnusable(BattleAI_GetWantedBattler(gAIScriptPtr[1]), BattleAI_GetWantedBattler(gAIScriptPtr[2]), SPLIT_PHYSICAL)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); - else - gAIScriptPtr += 7; -} - -// Check if target has means to faint ai mon. -static void Cmd_if_ai_can_go_down(void) -{ - s32 i, dmg; - u32 unusable = CheckMoveLimitations(gBattlerTarget, 0, 0xFF & ~MOVE_LIMITATION_PP); - u16 *moves = gBattleResources->battleHistory->usedMoves[gBattlerTarget]; - - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && !(unusable & gBitTable[i]) - && AI_CalcDamage(moves[i], gBattlerTarget, sBattler_AI) >= gBattleMons[sBattler_AI].hp) - { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); - return; - } - } - - gAIScriptPtr += 5; -} - -static void Cmd_if_cant_use_belch(void) -{ - u32 battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if (gBattleStruct->ateBerry[battler & BIT_SIDE] & gBitTable[gBattlerPartyIndexes[battler]]) - gAIScriptPtr += 6; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); -} - -static void Cmd_if_has_move_with_type(void) -{ - u32 i, moveType, battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u16 *moves = GetMovesArray(battler); - - for (i = 0; i < 4; i++) - { - if (moves[i] == MOVE_NONE) - continue; - - SetTypeBeforeUsingMove(moves[i], battler); - GET_MOVE_TYPE(moves[i], moveType); - if (moveType == gAIScriptPtr[2]) - break; - } - - if (i == 4) - gAIScriptPtr += 7; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); -} - -static void Cmd_if_has_move_with_flag(void) -{ - u32 i, flag, battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u16 *moves = GetMovesArray(battler); - - flag = T1_READ_32(gAIScriptPtr + 2); - for (i = 0; i < 4; i++) - { - if (moves[i] != MOVE_NONE && gBattleMoves[moves[i]].flags & flag) - { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); - return; - } - } - - gAIScriptPtr += 10; -} - -static void Cmd_if_no_move_used(void) -{ - u32 i, battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if (!IsBattlerAIControlled(battler)) - { - for (i = 0; i < 4; i++) - { - if (BATTLE_HISTORY->usedMoves[battler][i] != 0 && BATTLE_HISTORY->usedMoves[battler][i] != 0xFFFF) - { - gAIScriptPtr += 6; - return; - } - } - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - } - else - { - gAIScriptPtr += 6; - } -} - -static void Cmd_if_battler_absent(void) -{ - u32 battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if (!IsBattlerAlive(battler)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_is_grounded(void) -{ - u32 battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - - if (IsBattlerGrounded(battler)) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); - else - gAIScriptPtr += 6; -} - -static void Cmd_get_best_dmg_hp_percent(void) -{ - int i, bestDmg; - - bestDmg = 0; - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (gBattleResources->ai->simulatedDmg[sBattler_AI][gBattlerTarget][i] > bestDmg) - bestDmg = gBattleResources->ai->simulatedDmg[sBattler_AI][gBattlerTarget][i]; - } - - gBattleResources->ai->funcResult = (bestDmg * 100) / gBattleMons[gBattlerTarget].maxHP; - gAIScriptPtr++; -} - -static void Cmd_get_curr_dmg_hp_percent(void) -{ - int bestDmg = gBattleResources->ai->simulatedDmg[sBattler_AI][gBattlerTarget][AI_THINKING_STRUCT->movesetIndex]; - - gBattleResources->ai->funcResult = (bestDmg * 100) / gBattleMons[gBattlerTarget].maxHP; - gAIScriptPtr++; -} - -static void Cmd_get_move_split_from_result(void) -{ - AI_THINKING_STRUCT->funcResult = GetBattleMoveSplit(AI_THINKING_STRUCT->funcResult); - gAIScriptPtr += 1; -} - -static void Cmd_get_considered_move_split(void) -{ - AI_THINKING_STRUCT->funcResult = GetBattleMoveSplit(AI_THINKING_STRUCT->moveConsidered); - gAIScriptPtr += 1; -} - -static void Cmd_get_considered_move_target(void) -{ - AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].target; - gAIScriptPtr += 1; -} - -static void Cmd_compare_speeds(void) -{ - u8 battler1 = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u8 battler2 = BattleAI_GetWantedBattler(gAIScriptPtr[2]); - AI_THINKING_STRUCT->funcResult = GetWhoStrikesFirst(battler1, battler2, TRUE); - gAIScriptPtr += 3; -} - -static u32 FindMoveUsedXTurnsAgo(u32 battlerId, u32 x) -{ - s32 i, index = BATTLE_HISTORY->moveHistoryIndex[battlerId]; - for (i = 0; i < x; i++) - { - if (--index < 0) - index = AI_MOVE_HISTORY_COUNT - 1; - } - return BATTLE_HISTORY->moveHistory[battlerId][index]; -} - -static void Cmd_is_wakeup_turn(void) -{ - u32 battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - // Check if rest was used 2 turns ago - if ((gBattleMons[battler].status1 & STATUS1_SLEEP) == 1 && FindMoveUsedXTurnsAgo(battler, 2) == MOVE_REST) - AI_THINKING_STRUCT->funcResult = TRUE; - else - AI_THINKING_STRUCT->funcResult = FALSE; - - gAIScriptPtr += 2; -} - -static void Cmd_if_has_move_with_accuracy_lt(void) -{ - u32 i; - u32 battler = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - u32 toCmp = gAIScriptPtr[2]; - u16 *moves = GetMovesArray(battler); - - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (moves[i] != MOVE_NONE - && gBattleMoves[moves[i]].effect != EFFECT_OHKO - && gBattleMoves[moves[i]].accuracy > 1 - && gBattleMoves[moves[i]].accuracy < toCmp) - break; - } - - if (i == MAX_MON_MOVES) - gAIScriptPtr += 7; - else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); -} diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index d0fd8224dd..565c0f261c 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" +#include "battle_ai_util.h" #include "battle_anim.h" #include "battle_controllers.h" #include "battle_setup.h" @@ -23,7 +24,7 @@ void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId) { *firstId = 0, *lastId = 6; } - else if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_x800000)) + else if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_TOWER_LINK_MULTI)) { if ((battlerId & BIT_FLANK) == B_FLANK_LEFT) *firstId = 0, *lastId = 3; @@ -416,7 +417,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u16 flags, u8 moduloPercent) return FALSE; } -static bool8 ShouldSwitch(void) +bool32 ShouldSwitch(void) { u8 battlerIn1, battlerIn2; s32 firstId; @@ -780,7 +781,7 @@ static u8 GetAI_ItemType(u16 itemId, const u8 *itemEffect) #endif return AI_ITEM_X_STAT; else if (itemEffect[3] & ITEM3_GUARD_SPEC) - return AI_ITEM_GUARD_SPECS; + return AI_ITEM_GUARD_SPEC; else return AI_ITEM_NOT_RECOGNIZABLE; } @@ -854,32 +855,33 @@ static bool8 ShouldUseItem(void) *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0; if (itemEffects[3] & ITEM3_SLEEP && gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) { - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_SLEEP); shouldUse = TRUE; } - if (itemEffects[3] & ITEM3_POISON && (gBattleMons[gActiveBattler].status1 & STATUS1_POISON || gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON)) + if (itemEffects[3] & ITEM3_POISON && (gBattleMons[gActiveBattler].status1 & STATUS1_POISON + || gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON)) { - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x10; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_POISON); shouldUse = TRUE; } if (itemEffects[3] & ITEM3_BURN && gBattleMons[gActiveBattler].status1 & STATUS1_BURN) { - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_BURN); shouldUse = TRUE; } if (itemEffects[3] & ITEM3_FREEZE && gBattleMons[gActiveBattler].status1 & STATUS1_FREEZE) { - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_FREEZE); shouldUse = TRUE; } if (itemEffects[3] & ITEM3_PARALYSIS && gBattleMons[gActiveBattler].status1 & STATUS1_PARALYSIS) { - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_PARALYSIS); shouldUse = TRUE; } if (itemEffects[3] & ITEM3_CONFUSION && gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION) { - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_CONFUSION); shouldUse = TRUE; } break; @@ -889,36 +891,36 @@ static bool8 ShouldUseItem(void) break; #ifndef ITEM_EXPANSION if (itemEffects[0] & ITEM0_X_ATTACK) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK); if (itemEffects[1] & ITEM1_X_DEFEND) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_DEFEND); if (itemEffects[1] & ITEM1_X_SPEED) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPEED); if (itemEffects[2] & ITEM2_X_SPATK) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPATK); if (itemEffects[2] & ITEM2_X_ACCURACY) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY); if (itemEffects[0] & ITEM0_DIRE_HIT) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x80; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT); #else if (itemEffects[1] & ITEM1_X_ATTACK) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK); if (itemEffects[1] & ITEM1_X_DEFENSE) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_DEFEND); if (itemEffects[1] & ITEM1_X_SPEED) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPEED); if (itemEffects[1] & ITEM1_X_SPATK) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPATK); if (itemEffects[1] & ITEM1_X_SPDEF) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x10; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPDEF); if (itemEffects[1] & ITEM1_X_ACCURACY) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY); if (itemEffects[0] & ITEM0_DIRE_HIT) - *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x40; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT); #endif shouldUse = TRUE; break; - case AI_ITEM_GUARD_SPECS: + case AI_ITEM_GUARD_SPEC: battlerSide = GetBattlerSide(gActiveBattler); if (gDisableStructs[gActiveBattler].isFirstTurn != 0 && gSideTimers[battlerSide].mistTimer == 0) shouldUse = TRUE; diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c new file mode 100644 index 0000000000..3fac2ac10f --- /dev/null +++ b/src/battle_ai_util.c @@ -0,0 +1,3478 @@ +#include "global.h" +#include "malloc.h" +#include "battle.h" +#include "battle_anim.h" +#include "battle_ai_util.h" +#include "battle_ai_main.h" +#include "battle_ai_switch_items.h" +#include "battle_factory.h" +#include "battle_setup.h" +#include "data.h" +#include "item.h" +#include "pokemon.h" +#include "random.h" +#include "recorded_battle.h" +#include "util.h" +#include "constants/abilities.h" +#include "constants/battle_ai.h" +#include "constants/battle_move_effects.h" +#include "constants/hold_effects.h" +#include "constants/moves.h" +#include "constants/items.h" + +// Const Data +static const s8 sAiAbilityRatings[ABILITIES_COUNT] = +{ + [ABILITY_ADAPTABILITY] = 8, + [ABILITY_AFTERMATH] = 5, + [ABILITY_AERILATE] = 8, + [ABILITY_AIR_LOCK] = 5, + [ABILITY_ANALYTIC] = 5, + [ABILITY_ANGER_POINT] = 4, + [ABILITY_ANTICIPATION] = 2, + [ABILITY_ARENA_TRAP] = 9, + [ABILITY_AROMA_VEIL] = 3, + [ABILITY_AURA_BREAK] = 3, + [ABILITY_BAD_DREAMS] = 4, + [ABILITY_BATTERY] = 0, + [ABILITY_BATTLE_ARMOR] = 2, + [ABILITY_BATTLE_BOND] = 6, + [ABILITY_BEAST_BOOST] = 7, + [ABILITY_BERSERK] = 5, + [ABILITY_BIG_PECKS] = 1, + [ABILITY_BLAZE] = 5, + [ABILITY_BULLETPROOF] = 7, + [ABILITY_CHEEK_POUCH] = 4, + [ABILITY_CHLOROPHYLL] = 6, + [ABILITY_CLEAR_BODY] = 4, + [ABILITY_CLOUD_NINE] = 5, + [ABILITY_COLOR_CHANGE] = 2, + [ABILITY_COMATOSE] = 6, + [ABILITY_COMPETITIVE] = 5, + [ABILITY_COMPOUND_EYES] = 7, + [ABILITY_CONTRARY] = 8, + [ABILITY_CORROSION] = 5, + [ABILITY_CURSED_BODY] = 4, + [ABILITY_CUTE_CHARM] = 2, + [ABILITY_DAMP] = 2, + [ABILITY_DANCER] = 5, + [ABILITY_DARK_AURA] = 6, + [ABILITY_DAZZLING] = 5, + [ABILITY_DEFEATIST] = -1, + [ABILITY_DEFIANT] = 5, + [ABILITY_DELTA_STREAM] = 10, + [ABILITY_DESOLATE_LAND] = 10, + [ABILITY_DISGUISE] = 8, + [ABILITY_DOWNLOAD] = 7, + [ABILITY_DRIZZLE] = 9, + [ABILITY_DROUGHT] = 9, + [ABILITY_DRY_SKIN] = 6, + [ABILITY_EARLY_BIRD] = 4, + [ABILITY_EFFECT_SPORE] = 4, + [ABILITY_ELECTRIC_SURGE] = 8, + [ABILITY_EMERGENCY_EXIT] = 3, + [ABILITY_FAIRY_AURA] = 6, + [ABILITY_FILTER] = 6, + [ABILITY_FLAME_BODY] = 4, + [ABILITY_FLARE_BOOST] = 5, + [ABILITY_FLASH_FIRE] = 6, + [ABILITY_FLOWER_GIFT] = 4, + [ABILITY_FLOWER_VEIL] = 0, + [ABILITY_FLUFFY] = 5, + [ABILITY_FORECAST] = 6, + [ABILITY_FOREWARN] = 2, + [ABILITY_FRIEND_GUARD] = 0, + [ABILITY_FRISK] = 3, + [ABILITY_FULL_METAL_BODY] = 4, + [ABILITY_FUR_COAT] = 7, + [ABILITY_GALE_WINGS] = 6, + [ABILITY_GALVANIZE] = 8, + [ABILITY_GLUTTONY] = 3, + [ABILITY_GOOEY] = 5, + [ABILITY_GRASS_PELT] = 2, + [ABILITY_GRASSY_SURGE] = 8, + [ABILITY_GUTS] = 6, + [ABILITY_HARVEST] = 5, + [ABILITY_HEALER] = 0, + [ABILITY_HEATPROOF] = 5, + [ABILITY_HEAVY_METAL] = -1, + [ABILITY_HONEY_GATHER] = 0, + [ABILITY_HUGE_POWER] = 10, + [ABILITY_HUSTLE] = 7, + [ABILITY_HYDRATION] = 4, + [ABILITY_HYPER_CUTTER] = 3, + [ABILITY_ICE_BODY] = 3, + [ABILITY_ILLUMINATE] = 0, + [ABILITY_ILLUSION] = 8, + [ABILITY_IMMUNITY] = 4, + [ABILITY_IMPOSTER] = 9, + [ABILITY_INFILTRATOR] = 6, + [ABILITY_INNARDS_OUT] = 5, + [ABILITY_INNER_FOCUS] = 2, + [ABILITY_INSOMNIA] = 4, + [ABILITY_INTIMIDATE] = 7, + [ABILITY_IRON_BARBS] = 6, + [ABILITY_IRON_FIST] = 6, + [ABILITY_JUSTIFIED] = 4, + [ABILITY_KEEN_EYE] = 1, + [ABILITY_KLUTZ] = -1, + [ABILITY_LEAF_GUARD] = 2, + [ABILITY_LEVITATE] = 7, + [ABILITY_LIGHT_METAL] = 2, + [ABILITY_LIGHTNING_ROD] = 7, + [ABILITY_LIMBER] = 3, + [ABILITY_LIQUID_OOZE] = 3, + [ABILITY_LIQUID_VOICE] = 5, + [ABILITY_LONG_REACH] = 3, + [ABILITY_MAGIC_BOUNCE] = 9, + [ABILITY_MAGIC_GUARD] = 9, + [ABILITY_MAGICIAN] = 3, + [ABILITY_MAGMA_ARMOR] = 1, + [ABILITY_MAGNET_PULL] = 9, + [ABILITY_MARVEL_SCALE] = 5, + [ABILITY_MEGA_LAUNCHER] = 7, + [ABILITY_MERCILESS] = 4, + [ABILITY_MINUS] = 0, + [ABILITY_MISTY_SURGE] = 8, + [ABILITY_MOLD_BREAKER] = 7, + [ABILITY_MOODY] = 10, + [ABILITY_MOTOR_DRIVE] = 6, + [ABILITY_MOXIE] = 7, + [ABILITY_MULTISCALE] = 8, + [ABILITY_MULTITYPE] = 8, + [ABILITY_MUMMY] = 5, + [ABILITY_NATURAL_CURE] = 7, + [ABILITY_NEUROFORCE] = 6, + [ABILITY_NO_GUARD] = 8, + [ABILITY_NORMALIZE] = -1, + [ABILITY_OBLIVIOUS] = 2, + [ABILITY_OVERCOAT] = 5, + [ABILITY_OVERGROW] = 5, + [ABILITY_OWN_TEMPO] = 3, + [ABILITY_PARENTAL_BOND] = 10, + [ABILITY_PICKUP] = 1, + [ABILITY_PICKPOCKET] = 3, + [ABILITY_PIXILATE] = 8, + [ABILITY_PLUS] = 0, + [ABILITY_POISON_HEAL] = 8, + [ABILITY_POISON_POINT] = 4, + [ABILITY_POISON_TOUCH] = 4, + //[ABILITY_PORTAL_POWER] = 8, + [ABILITY_POWER_CONSTRUCT] = 10, + [ABILITY_POWER_OF_ALCHEMY] = 0, + [ABILITY_PRANKSTER] = 8, + [ABILITY_PRESSURE] = 5, + [ABILITY_PRIMORDIAL_SEA] = 10, + [ABILITY_PRISM_ARMOR] = 6, + [ABILITY_PROTEAN] = 8, + [ABILITY_PSYCHIC_SURGE] = 8, + [ABILITY_PURE_POWER] = 10, + [ABILITY_QUEENLY_MAJESTY] = 6, + [ABILITY_QUICK_FEET] = 5, + [ABILITY_RAIN_DISH] = 3, + [ABILITY_RATTLED] = 3, + [ABILITY_RECEIVER] = 0, + [ABILITY_RECKLESS] = 6, + [ABILITY_REFRIGERATE] = 8, + [ABILITY_REGENERATOR] = 8, + [ABILITY_RIVALRY] = 1, + [ABILITY_RKS_SYSTEM] = 8, + [ABILITY_ROCK_HEAD] = 5, + [ABILITY_ROUGH_SKIN] = 6, + [ABILITY_RUN_AWAY] = 0, + [ABILITY_SAND_FORCE] = 4, + [ABILITY_SAND_RUSH] = 6, + [ABILITY_SAND_STREAM] = 9, + [ABILITY_SAND_VEIL] = 3, + [ABILITY_SAP_SIPPER] = 7, + [ABILITY_SCHOOLING] = 6, + [ABILITY_SCRAPPY] = 6, + [ABILITY_SERENE_GRACE] = 8, + [ABILITY_SHADOW_SHIELD] = 8, + [ABILITY_SHADOW_TAG] = 10, + [ABILITY_SHED_SKIN] = 7, + [ABILITY_SHEER_FORCE] = 8, + [ABILITY_SHELL_ARMOR] = 2, + [ABILITY_SHIELD_DUST] = 5, + [ABILITY_SHIELDS_DOWN] = 6, + [ABILITY_SIMPLE] = 8, + [ABILITY_SKILL_LINK] = 7, + [ABILITY_SLOW_START] = -2, + [ABILITY_SLUSH_RUSH] = 5, + [ABILITY_SNIPER] = 3, + [ABILITY_SNOW_CLOAK] = 3, + [ABILITY_SNOW_WARNING] = 8, + [ABILITY_SOLAR_POWER] = 3, + [ABILITY_SOLID_ROCK] = 6, + [ABILITY_SOUL_HEART] = 7, + [ABILITY_SOUNDPROOF] = 4, + [ABILITY_SPEED_BOOST] = 9, + [ABILITY_STAKEOUT] = 6, + [ABILITY_STALL] = -1, + [ABILITY_STAMINA] = 6, + [ABILITY_STANCE_CHANGE] = 10, + [ABILITY_STATIC] = 4, + [ABILITY_STEADFAST] = 2, + [ABILITY_STEELWORKER] = 6, + [ABILITY_STENCH] = 1, + [ABILITY_STICKY_HOLD] = 3, + [ABILITY_STORM_DRAIN] = 7, + [ABILITY_STRONG_JAW] = 6, + [ABILITY_STURDY] = 6, + [ABILITY_SUCTION_CUPS] = 2, + [ABILITY_SUPER_LUCK] = 3, + [ABILITY_SURGE_SURFER] = 4, + [ABILITY_SWARM] = 5, + [ABILITY_SWEET_VEIL] = 4, + [ABILITY_SWIFT_SWIM] = 6, + [ABILITY_SYMBIOSIS] = 0, + [ABILITY_SYNCHRONIZE] = 4, + [ABILITY_TANGLED_FEET] = 2, + [ABILITY_TANGLING_HAIR] = 5, + [ABILITY_TECHNICIAN] = 8, + [ABILITY_TELEPATHY] = 0, + [ABILITY_TERAVOLT] = 7, + [ABILITY_THICK_FAT] = 7, + [ABILITY_TINTED_LENS] = 7, + [ABILITY_TORRENT] = 5, + [ABILITY_TOXIC_BOOST] = 6, + [ABILITY_TOUGH_CLAWS] = 7, + [ABILITY_TRACE] = 6, + [ABILITY_TRIAGE] = 7, + [ABILITY_TRUANT] = -2, + [ABILITY_TURBOBLAZE] = 7, + [ABILITY_UNAWARE] = 6, + [ABILITY_UNBURDEN] = 7, + [ABILITY_UNNERVE] = 3, + [ABILITY_VICTORY_STAR] = 6, + [ABILITY_VITAL_SPIRIT] = 4, + [ABILITY_VOLT_ABSORB] = 7, + [ABILITY_WATER_ABSORB] = 7, + [ABILITY_WATER_BUBBLE] = 8, + [ABILITY_WATER_COMPACTION] = 4, + [ABILITY_WATER_VEIL] = 4, + [ABILITY_WEAK_ARMOR] = 2, + [ABILITY_WHITE_SMOKE] = 4, + [ABILITY_WIMP_OUT] = 3, + [ABILITY_WONDER_GUARD] = 10, + [ABILITY_WONDER_SKIN] = 4, + [ABILITY_ZEN_MODE] = -1, + [ABILITY_INTREPID_SWORD] = 3, + [ABILITY_DAUNTLESS_SHIELD] = 3, + [ABILITY_BALL_FETCH] = 0, + [ABILITY_COTTON_DOWN] = 3, + [ABILITY_MIRROR_ARMOR] = 6, + [ABILITY_GULP_MISSILE] = 3, + [ABILITY_STALWART] = 2, + [ABILITY_PROPELLER_TAIL] = 2, + [ABILITY_STEAM_ENGINE] = 3, + [ABILITY_PUNK_ROCK] = 2, + [ABILITY_SAND_SPIT] = 5, + [ABILITY_ICE_SCALES] = 7, + [ABILITY_RIPEN] = 4, + [ABILITY_ICE_FACE] = 4, + [ABILITY_POWER_SPOT] = 2, + [ABILITY_MIMICRY] = 2, + [ABILITY_SCREEN_CLEANER] = 3, + [ABILITY_NEUTRALIZING_GAS] = 5, + [ABILITY_HUNGER_SWITCH] = 2, + [ABILITY_PASTEL_VEIL] = 4, + [ABILITY_STEELY_SPIRIT] = 2, + [ABILITY_PERISH_BODY] = -1, + [ABILITY_WANDERING_SPIRIT] = 2, + [ABILITY_GORILLA_TACTICS] = 4, +}; + +static const u16 sEncouragedEncoreEffects[] = +{ + EFFECT_DREAM_EATER, + EFFECT_ATTACK_UP, + EFFECT_DEFENSE_UP, + EFFECT_SPEED_UP, + EFFECT_SPECIAL_ATTACK_UP, + EFFECT_HAZE, + EFFECT_ROAR, + EFFECT_CONVERSION, + EFFECT_TOXIC, + EFFECT_LIGHT_SCREEN, + EFFECT_REST, + EFFECT_SUPER_FANG, + EFFECT_SPECIAL_DEFENSE_UP_2, + EFFECT_CONFUSE, + EFFECT_POISON, + EFFECT_PARALYZE, + EFFECT_LEECH_SEED, + EFFECT_DO_NOTHING, + EFFECT_ATTACK_UP_2, + EFFECT_ENCORE, + EFFECT_CONVERSION_2, + EFFECT_LOCK_ON, + EFFECT_HEAL_BELL, + EFFECT_MEAN_LOOK, + EFFECT_NIGHTMARE, + EFFECT_PROTECT, + EFFECT_SKILL_SWAP, + EFFECT_FORESIGHT, + EFFECT_PERISH_SONG, + EFFECT_SANDSTORM, + EFFECT_ENDURE, + EFFECT_SWAGGER, + EFFECT_ATTRACT, + EFFECT_SAFEGUARD, + EFFECT_RAIN_DANCE, + EFFECT_SUNNY_DAY, + EFFECT_BELLY_DRUM, + EFFECT_PSYCH_UP, + EFFECT_FUTURE_SIGHT, + EFFECT_FAKE_OUT, + EFFECT_STOCKPILE, + EFFECT_SPIT_UP, + EFFECT_SWALLOW, + EFFECT_HAIL, + EFFECT_TORMENT, + EFFECT_WILL_O_WISP, + EFFECT_FOLLOW_ME, + EFFECT_CHARGE, + EFFECT_TRICK, + EFFECT_ROLE_PLAY, + EFFECT_INGRAIN, + EFFECT_RECYCLE, + EFFECT_KNOCK_OFF, + EFFECT_SKILL_SWAP, + EFFECT_IMPRISON, + EFFECT_REFRESH, + EFFECT_GRUDGE, + EFFECT_TEETER_DANCE, + EFFECT_MUD_SPORT, + EFFECT_WATER_SPORT, + EFFECT_DRAGON_DANCE, + EFFECT_CAMOUFLAGE, +}; + +// For the purposes of determining the most powerful move in a moveset, these +// moves are treated the same as having a power of 0 or 1 +#define IGNORED_MOVES_END 0xFFFF +static const u16 sIgnoredPowerfulMoveEffects[] = +{ + EFFECT_EXPLOSION, + EFFECT_DREAM_EATER, + EFFECT_RECHARGE, + EFFECT_SKULL_BASH, + EFFECT_SOLARBEAM, + EFFECT_SPIT_UP, + EFFECT_FOCUS_PUNCH, + EFFECT_SUPERPOWER, + EFFECT_ERUPTION, + EFFECT_OVERHEAT, + EFFECT_MIND_BLOWN, + IGNORED_MOVES_END +}; + +static const u16 sIgnoreMoldBreakerMoves[] = +{ + MOVE_MOONGEIST_BEAM, + MOVE_SUNSTEEL_STRIKE, + MOVE_PHOTON_GEYSER, + #ifdef MOVE_LIGHT_THAT_BURNS_THE_SKY + MOVE_LIGHT_THAT_BURNS_THE_SKY, + #endif + #ifdef MOVE_MENACING_MOONRAZE_MAELSTROM + MOVE_MENACING_MOONRAZE_MAELSTROM, + #endif + #ifdef MOVE_SEARING_SUNRAZE_SMASH + MOVE_SEARING_SUNRAZE_SMASH, + #endif +}; + +static const u16 sInstructBannedMoves[] = +{ + MOVE_INSTRUCT, + MOVE_BIDE, + MOVE_FOCUS_PUNCH, + MOVE_BEAK_BLAST, + MOVE_SHELL_TRAP, + MOVE_SKETCH, + MOVE_TRANSFORM, + MOVE_MIMIC, + MOVE_KINGS_SHIELD, + MOVE_STRUGGLE, + MOVE_BOUNCE, + MOVE_DIG, + MOVE_DIVE, + MOVE_FLY, + MOVE_FREEZE_SHOCK, + MOVE_GEOMANCY, + MOVE_ICE_BURN, + MOVE_PHANTOM_FORCE, + MOVE_RAZOR_WIND, + MOVE_SHADOW_FORCE, + MOVE_SKULL_BASH, + MOVE_SKY_ATTACK, + MOVE_SKY_DROP, + MOVE_SOLAR_BEAM, + MOVE_SOLAR_BLADE, +}; + +static const u16 sRechargeMoves[] = +{ + MOVE_HYPER_BEAM, + MOVE_BLAST_BURN, + MOVE_HYDRO_CANNON, + MOVE_FRENZY_PLANT, + MOVE_GIGA_IMPACT, + MOVE_ROCK_WRECKER, + MOVE_ROAR_OF_TIME, + MOVE_PRISMATIC_LASER, + MOVE_METEOR_ASSAULT, + MOVE_ETERNABEAM, +}; + +static const u16 sOtherMoveCallingMoves[] = +{ + MOVE_ASSIST, + MOVE_COPYCAT, + MOVE_ME_FIRST, + MOVE_METRONOME, + MOVE_MIRROR_MOVE, + MOVE_NATURE_POWER, + MOVE_SLEEP_TALK, +}; + +// Functions +bool32 AI_RandLessThan(u8 val) +{ + if ((Random() % 0xFF) < val) + return TRUE; + return FALSE; +} + +void RecordLastUsedMoveByTarget(void) +{ + RecordKnownMove(gBattlerTarget, gLastMoves[gBattlerTarget]); +} + +bool32 IsBattlerAIControlled(u32 battlerId) +{ + switch (GetBattlerPosition(battlerId)) + { + case B_POSITION_PLAYER_LEFT: + default: + return FALSE; + case B_POSITION_OPPONENT_LEFT: + return TRUE; + case B_POSITION_PLAYER_RIGHT: + return ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) != 0); + case B_POSITION_OPPONENT_RIGHT: + return TRUE; + } +} + +void ClearBattlerMoveHistory(u8 battlerId) +{ + memset(BATTLE_HISTORY->usedMoves[battlerId], 0, sizeof(BATTLE_HISTORY->usedMoves[battlerId])); + memset(BATTLE_HISTORY->moveHistory[battlerId], 0, sizeof(BATTLE_HISTORY->moveHistory[battlerId])); + BATTLE_HISTORY->moveHistoryIndex[battlerId] = 0; +} + +void RecordLastUsedMoveBy(u32 battlerId, u32 move) +{ + u8 *index = &BATTLE_HISTORY->moveHistoryIndex[battlerId]; + + if (++(*index) >= AI_MOVE_HISTORY_COUNT) + *index = 0; + BATTLE_HISTORY->moveHistory[battlerId][*index] = move; +} + +void RecordKnownMove(u8 battlerId, u32 move) +{ + s32 i; + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (BATTLE_HISTORY->usedMoves[battlerId][i] == move) + break; + if (BATTLE_HISTORY->usedMoves[battlerId][i] == MOVE_NONE) + { + BATTLE_HISTORY->usedMoves[battlerId][i] = move; + break; + } + } +} + +void RecordAbilityBattle(u8 battlerId, u16 abilityId) +{ + BATTLE_HISTORY->abilities[battlerId] = abilityId; +} + +void ClearBattlerAbilityHistory(u8 battlerId) +{ + BATTLE_HISTORY->abilities[battlerId] = ABILITY_NONE; +} + +void RecordItemEffectBattle(u8 battlerId, u8 itemEffect) +{ + BATTLE_HISTORY->itemEffects[battlerId] = itemEffect; +} + +void ClearBattlerItemEffectHistory(u8 battlerId) +{ + BATTLE_HISTORY->itemEffects[battlerId] = 0; +} + +void SaveBattlerData(u8 battlerId) +{ + if (!IsBattlerAIControlled(battlerId)) + { + u32 i; + + AI_THINKING_STRUCT->saved[battlerId].ability = gBattleMons[battlerId].ability; + AI_THINKING_STRUCT->saved[battlerId].heldItem = gBattleMons[battlerId].item; + AI_THINKING_STRUCT->saved[battlerId].species = gBattleMons[battlerId].species; + for (i = 0; i < 4; i++) + AI_THINKING_STRUCT->saved[battlerId].moves[i] = gBattleMons[battlerId].moves[i]; + } +} + +void SetBattlerData(u8 battlerId) +{ + if (!IsBattlerAIControlled(battlerId)) + { + struct Pokemon *illusionMon; + u32 i; + + // Use the known battler's ability. + if (BATTLE_HISTORY->abilities[battlerId] != ABILITY_NONE) + gBattleMons[battlerId].ability = BATTLE_HISTORY->abilities[battlerId]; + // Check if mon can only have one ability. + else if (gBaseStats[gBattleMons[battlerId].species].abilities[1] == ABILITY_NONE + || gBaseStats[gBattleMons[battlerId].species].abilities[1] == gBaseStats[gBattleMons[battlerId].species].abilities[0]) + gBattleMons[battlerId].ability = gBaseStats[gBattleMons[battlerId].species].abilities[0]; + // The ability is unknown. + else + gBattleMons[battlerId].ability = ABILITY_NONE; + + if (BATTLE_HISTORY->itemEffects[battlerId] == 0) + gBattleMons[battlerId].item = 0; + + for (i = 0; i < 4; i++) + { + if (BATTLE_HISTORY->usedMoves[battlerId][i] == 0) + gBattleMons[battlerId].moves[i] = 0; + } + + // Simulate Illusion + if ((illusionMon = GetIllusionMonPtr(battlerId)) != NULL) + gBattleMons[battlerId].species = GetMonData(illusionMon, MON_DATA_SPECIES2); + } +} + +void RestoreBattlerData(u8 battlerId) +{ + if (!IsBattlerAIControlled(battlerId)) + { + u32 i; + + gBattleMons[battlerId].ability = AI_THINKING_STRUCT->saved[battlerId].ability; + gBattleMons[battlerId].item = AI_THINKING_STRUCT->saved[battlerId].heldItem; + gBattleMons[battlerId].species = AI_THINKING_STRUCT->saved[battlerId].species; + for (i = 0; i < 4; i++) + gBattleMons[battlerId].moves[i] = AI_THINKING_STRUCT->saved[battlerId].moves[i]; + } +} + +u32 GetHealthPercentage(u8 battlerId) +{ + return (u32)((100 * gBattleMons[battlerId].hp) / gBattleMons[battlerId].maxHP); +} + +bool32 AtMaxHp(u8 battlerId) +{ + if (GetHealthPercentage(battlerId) == 100) + return TRUE; + return FALSE; +} + +bool32 IsBattlerTrapped(u8 battler, bool8 checkSwitch) +{ + u8 holdEffect = AI_GetHoldEffect(battler); + if (IS_BATTLER_OF_TYPE(battler, TYPE_GHOST) + || (checkSwitch && holdEffect == HOLD_EFFECT_SHED_SHELL) + || (!checkSwitch && GetBattlerAbility(battler) == ABILITY_RUN_AWAY) + || (!checkSwitch && holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)) + { + return FALSE; + } + else + { + if (gBattleMons[battler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED) + || IsAbilityPreventingEscape(battler) + || gStatuses3[battler] & (STATUS3_ROOTED) // TODO: sky drop target in air + || (gFieldStatuses & STATUS_FIELD_FAIRY_LOCK)) + return TRUE; + } + + return FALSE; +} + +u32 GetTotalBaseStat(u32 species) +{ + return gBaseStats[species].baseHP + + gBaseStats[species].baseAttack + + gBaseStats[species].baseDefense + + gBaseStats[species].baseSpeed + + gBaseStats[species].baseSpAttack + + gBaseStats[species].baseSpDefense; +} + +bool32 IsTruantMonVulnerable(u32 battlerAI, u32 opposingBattler) +{ + int i; + + for (i = 0; i < MAX_MON_MOVES; i++) + { + u32 move = gBattleResources->battleHistory->usedMoves[opposingBattler][i]; + if (gBattleMoves[move].effect == EFFECT_PROTECT && move != MOVE_ENDURE) + return TRUE; + if (gBattleMoves[move].effect == EFFECT_SEMI_INVULNERABLE && GetWhoStrikesFirst(battlerAI, opposingBattler, TRUE) == 1) + return TRUE; + } + return FALSE; +} + +// move checks +bool32 IsAffectedByPowder(u8 battler, u16 ability, u16 holdEffect) +{ + if ((B_POWDER_GRASS >= GEN_6 && IS_BATTLER_OF_TYPE(battler, TYPE_GRASS)) + || ability == ABILITY_OVERCOAT + || holdEffect == HOLD_EFFECT_SAFETY_GOOGLES) + return FALSE; + return TRUE; +} + +// This function checks if all physical/special moves are either unusable or unreasonable to use. +// Consider a pokemon boosting their attack against a ghost pokemon having only normal-type physical attacks. +bool32 MovesWithSplitUnusable(u32 attacker, u32 target, u32 split) +{ + s32 i, moveType; + u32 usable = 0; + u32 unusable = CheckMoveLimitations(attacker, 0, 0xFF); + u16 *moves = GetMovesArray(attacker); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE + && moves[i] != 0xFFFF + && GetBattleMoveSplit(moves[i]) == split + && !(unusable & gBitTable[i])) + { + SetTypeBeforeUsingMove(moves[i], attacker); + GET_MOVE_TYPE(moves[i], moveType); + if (CalcTypeEffectivenessMultiplier(moves[i], moveType, attacker, target, FALSE) != 0) + usable |= gBitTable[i]; + } + } + + return (usable == 0); +} + +static bool32 AI_GetIfCrit(u32 move, u8 battlerAtk, u8 battlerDef) +{ + bool32 isCrit; + + switch (CalcCritChanceStage(battlerAtk, battlerDef, move, FALSE)) + { + case -1: + case 0: + default: + isCrit = FALSE; + break; + case 1: + if (gBattleMoves[move].flags & FLAG_HIGH_CRIT && (Random() % 5 == 0)) + isCrit = TRUE; + else + isCrit = FALSE; + break; + case 2: + if (gBattleMoves[move].flags & FLAG_HIGH_CRIT && (Random() % 2 == 0)) + isCrit = TRUE; + else if (!(gBattleMoves[move].flags & FLAG_HIGH_CRIT) && (Random() % 4) == 0) + isCrit = TRUE; + else + isCrit = FALSE; + break; + case -2: + case 3: + case 4: + isCrit = TRUE; + break; + } + + return isCrit; +} + +s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef) +{ + s32 dmg, moveType; + + SaveBattlerData(battlerAtk); + SaveBattlerData(battlerDef); + + SetBattlerData(battlerAtk); + SetBattlerData(battlerDef); + + gBattleStruct->dynamicMoveType = 0; + SetTypeBeforeUsingMove(move, battlerAtk); + GET_MOVE_TYPE(move, moveType); + dmg = CalculateMoveDamage(move, battlerAtk, battlerDef, moveType, 0, AI_GetIfCrit(move, battlerAtk, battlerDef), FALSE, FALSE); + + // handle dynamic move damage + switch (gBattleMoves[move].effect) + { + case EFFECT_LEVEL_DAMAGE: + dmg = gBattleMons[battlerAtk].level; + break; + case EFFECT_DRAGON_RAGE: + dmg = 40; + break; + case EFFECT_SONICBOOM: + dmg = 20; + break; + case EFFECT_PSYWAVE: + { + u32 randDamage; + if (B_PSYWAVE_DMG >= GEN_6) + randDamage = (Random() % 101); + else + randDamage = (Random() % 11) * 10; + dmg = gBattleMons[battlerAtk].level * (randDamage + 50) / 100; + } + break; + //case EFFECT_METAL_BURST: + //case EFFECT_COUNTER: + default: + dmg *= (100 - (Random() % 10)) / 100; // add random factor + break; + } + + RestoreBattlerData(battlerAtk); + RestoreBattlerData(battlerDef); + + return dmg; +} + +// Checks if one of the moves has side effects or perks +static u32 WhichMoveBetter(u32 move1, u32 move2) +{ + s32 defAbility = AI_GetAbility(gBattlerTarget); + + // Check if physical moves hurt. + if (AI_GetHoldEffect(sBattler_AI) != HOLD_EFFECT_PROTECTIVE_PADS + && (BATTLE_HISTORY->itemEffects[gBattlerTarget] == HOLD_EFFECT_ROCKY_HELMET + || defAbility == ABILITY_IRON_BARBS || defAbility == ABILITY_ROUGH_SKIN)) + { + if (IS_MOVE_PHYSICAL(move1) && !IS_MOVE_PHYSICAL(move2)) + return 1; + if (IS_MOVE_PHYSICAL(move2) && !IS_MOVE_PHYSICAL(move1)) + return 0; + } + // Check recoil + if (GetBattlerAbility(sBattler_AI) != ABILITY_ROCK_HEAD) + { + if (((gBattleMoves[move1].effect == EFFECT_RECOIL_25 + || gBattleMoves[move1].effect == EFFECT_RECOIL_IF_MISS + || gBattleMoves[move1].effect == EFFECT_RECOIL_50 + || gBattleMoves[move1].effect == EFFECT_RECOIL_33 + || gBattleMoves[move1].effect == EFFECT_RECOIL_33_STATUS) + && (gBattleMoves[move2].effect != EFFECT_RECOIL_25 + && gBattleMoves[move2].effect != EFFECT_RECOIL_IF_MISS + && gBattleMoves[move2].effect != EFFECT_RECOIL_50 + && gBattleMoves[move2].effect != EFFECT_RECOIL_33 + && gBattleMoves[move2].effect != EFFECT_RECOIL_33_STATUS + && gBattleMoves[move2].effect != EFFECT_RECHARGE))) + return 1; + + if (((gBattleMoves[move2].effect == EFFECT_RECOIL_25 + || gBattleMoves[move2].effect == EFFECT_RECOIL_IF_MISS + || gBattleMoves[move2].effect == EFFECT_RECOIL_50 + || gBattleMoves[move2].effect == EFFECT_RECOIL_33 + || gBattleMoves[move2].effect == EFFECT_RECOIL_33_STATUS) + && (gBattleMoves[move1].effect != EFFECT_RECOIL_25 + && gBattleMoves[move1].effect != EFFECT_RECOIL_IF_MISS + && gBattleMoves[move1].effect != EFFECT_RECOIL_50 + && gBattleMoves[move1].effect != EFFECT_RECOIL_33 + && gBattleMoves[move1].effect != EFFECT_RECOIL_33_STATUS + && gBattleMoves[move1].effect != EFFECT_RECHARGE))) + return 0; + } + // Check recharge + if (gBattleMoves[move1].effect == EFFECT_RECHARGE && gBattleMoves[move2].effect != EFFECT_RECHARGE) + return 1; + if (gBattleMoves[move2].effect == EFFECT_RECHARGE && gBattleMoves[move1].effect != EFFECT_RECHARGE) + return 0; + // Check additional effect. + if (gBattleMoves[move1].effect == 0 && gBattleMoves[move2].effect != 0) + return 1; + if (gBattleMoves[move2].effect == 0 && gBattleMoves[move1].effect != 0) + return 0; + + return 2; +} + +u8 GetMoveDamageResult(u16 move) +{ + s32 i, checkedMove, bestId, currId, hp; + s32 moveDmgs[MAX_MON_MOVES]; + u8 result; + + for (i = 0; sIgnoredPowerfulMoveEffects[i] != IGNORED_MOVES_END; i++) + { + if (gBattleMoves[move].effect == sIgnoredPowerfulMoveEffects[i]) + break; + } + + if (gBattleMoves[move].power != 0 && sIgnoredPowerfulMoveEffects[i] == IGNORED_MOVES_END) + { + // Considered move has power and is not in sIgnoredPowerfulMoveEffects + // Check all other moves and calculate their power + for (checkedMove = 0; checkedMove < MAX_MON_MOVES; checkedMove++) + { + for (i = 0; sIgnoredPowerfulMoveEffects[i] != IGNORED_MOVES_END; i++) + { + if (gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].effect == sIgnoredPowerfulMoveEffects[i]) + break; + } + + if (gBattleMons[sBattler_AI].moves[checkedMove] != MOVE_NONE + && sIgnoredPowerfulMoveEffects[i] == IGNORED_MOVES_END + && gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].power != 0) + { + moveDmgs[checkedMove] = AI_THINKING_STRUCT->simulatedDmg[sBattler_AI][gBattlerTarget][checkedMove]; + } + else + { + moveDmgs[checkedMove] = 0; + } + } + + hp = gBattleMons[gBattlerTarget].hp + (20 * gBattleMons[gBattlerTarget].hp / 100); // 20 % add to make sure the battler is always fainted + // If a move can faint battler, it doesn't matter how much damage it does + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moveDmgs[i] > hp) + moveDmgs[i] = hp; + } + + for (bestId = 0, i = 1; i < MAX_MON_MOVES; i++) + { + if (moveDmgs[i] > moveDmgs[bestId]) + bestId = i; + if (moveDmgs[i] == moveDmgs[bestId]) + { + switch (WhichMoveBetter(gBattleMons[sBattler_AI].moves[bestId], gBattleMons[sBattler_AI].moves[i])) + { + case 2: + if (Random() & 1) + break; + case 1: + bestId = i; + break; + } + } + } + + currId = AI_THINKING_STRUCT->movesetIndex; + if (currId == bestId) + AI_THINKING_STRUCT->funcResult = MOVE_POWER_BEST; + // Compare percentage difference. + else if ((moveDmgs[currId] >= hp || moveDmgs[bestId] < hp) // If current move can faint as well, or if neither can + && (moveDmgs[bestId] * 100 / hp) - (moveDmgs[currId] * 100 / hp) <= 30 + && WhichMoveBetter(gBattleMons[sBattler_AI].moves[bestId], gBattleMons[sBattler_AI].moves[currId]) != 0) + AI_THINKING_STRUCT->funcResult = MOVE_POWER_GOOD; + else + AI_THINKING_STRUCT->funcResult = MOVE_POWER_WEAK; + } + else + { + // Move has a power of 0/1, or is in the group sIgnoredPowerfulMoveEffects + AI_THINKING_STRUCT->funcResult = MOVE_POWER_OTHER; + } + + return AI_THINKING_STRUCT->funcResult; +} + +u32 GetCurrDamageHpPercent(u8 battlerAtk, u8 battlerDef) +{ + int bestDmg = AI_THINKING_STRUCT->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex]; + + return (bestDmg * 100) / gBattleMons[battlerDef].maxHP; +} + +u16 AI_GetTypeEffectiveness(u16 move, u8 battlerAtk, u8 battlerDef) +{ + u16 typeEffectiveness, moveType; + + SaveBattlerData(battlerAtk); + SaveBattlerData(battlerDef); + + SetBattlerData(battlerAtk); + SetBattlerData(battlerDef); + + gBattleStruct->dynamicMoveType = 0; + SetTypeBeforeUsingMove(move, battlerAtk); + GET_MOVE_TYPE(move, moveType); + typeEffectiveness = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); + + RestoreBattlerData(battlerAtk); + RestoreBattlerData(battlerDef); + + return typeEffectiveness; +} + +u8 AI_GetMoveEffectiveness(u16 move, u8 battlerAtk, u8 battlerDef) +{ + u8 damageVar; + u32 effectivenessMultiplier; + + gMoveResultFlags = 0; + gCurrentMove = move; + effectivenessMultiplier = AI_GetTypeEffectiveness(gCurrentMove, battlerAtk, battlerDef); + + switch (effectivenessMultiplier) + { + case UQ_4_12(0.0): + default: + damageVar = AI_EFFECTIVENESS_x0; + break; + case UQ_4_12(0.25): + damageVar = AI_EFFECTIVENESS_x0_25; + break; + case UQ_4_12(0.5): + damageVar = AI_EFFECTIVENESS_x0_5; + break; + case UQ_4_12(1.0): + damageVar = AI_EFFECTIVENESS_x1; + break; + case UQ_4_12(2.0): + damageVar = AI_EFFECTIVENESS_x2; + break; + case UQ_4_12(4.0): + damageVar = AI_EFFECTIVENESS_x4; + break; + } + + return damageVar; +} + +// AI_CHECK_FASTER: is user(ai) faster +// AI_CHECK_SLOWER: is target faster +bool32 IsAiFaster(u8 battler) +{ + u32 fasterAI = 0, fasterPlayer = 0, i; + s8 prioAI, prioPlayer; + + // Check move priorities first. + prioAI = GetMovePriority(sBattler_AI, AI_THINKING_STRUCT->moveConsidered); + SaveBattlerData(gBattlerTarget); + SetBattlerData(gBattlerTarget); + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (gBattleMons[gBattlerTarget].moves[i] == 0 || gBattleMons[gBattlerTarget].moves[i] == 0xFFFF) + continue; + + prioPlayer = GetMovePriority(gBattlerTarget, gBattleMons[gBattlerTarget].moves[i]); + if (prioAI > prioPlayer) + fasterAI++; + else if (prioPlayer > prioAI) + fasterPlayer++; + } + RestoreBattlerData(gBattlerTarget); + + if (fasterAI > fasterPlayer) + { + if (battler == 0) // is user (ai) faster + return TRUE; + else + return FALSE; + } + else if (fasterAI < fasterPlayer) + { + if (battler == 1) // is target (player) faster + return TRUE; + else + return FALSE; + } + else + { + // Priorities are the same(at least comparing to moves the AI is aware of), decide by speed. + if (GetWhoStrikesFirst(sBattler_AI, gBattlerTarget, TRUE) == battler) + return TRUE; + else + return FALSE; + } +} + +// Check if target has means to faint ai mon. +bool32 CanTargetFaintAi(u8 battlerDef, u8 battlerAtk) +{ + s32 i, dmg; + u32 unusable = CheckMoveLimitations(battlerDef, 0, 0xFF & ~MOVE_LIMITATION_PP); + u16 *moves = gBattleResources->battleHistory->usedMoves[battlerDef]; + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && !(unusable & gBitTable[i]) + && AI_CalcDamage(moves[i], battlerDef, battlerAtk) >= gBattleMons[battlerAtk].hp) + { + return TRUE; + } + } + + return FALSE; +} + +bool32 CanMoveFaintBattler(u16 move, u8 battlerDef, u8 battlerAtk, u8 nHits) +{ + s32 i, dmg; + u32 unusable = CheckMoveLimitations(battlerDef, 0, 0xFF & ~MOVE_LIMITATION_PP); + + if (move != MOVE_NONE && move != 0xFFFF && !(unusable & gBitTable[i]) && AI_CalcDamage(move, battlerDef, battlerAtk) >= gBattleMons[battlerAtk].hp) + return TRUE; + + return FALSE; +} + +// Check if target has means to faint ai mon after modding hp/dmg +bool32 CanTargetFaintAiWithMod(u8 battlerDef, u8 battlerAtk, s32 hpMod, s32 dmgMod) +{ + u32 i; + u32 unusable = CheckMoveLimitations(battlerDef, 0, 0xFF & ~MOVE_LIMITATION_PP); + u16 *moves = gBattleResources->battleHistory->usedMoves[battlerDef]; + + for (i = 0; i < MAX_MON_MOVES; i++) + { + u32 dmg = AI_CalcDamage(moves[i], battlerDef, battlerAtk); + u32 hpCheck = gBattleMons[battlerAtk].hp + hpMod; + if (dmgMod) + dmg *= dmgMod; + + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && !(unusable & gBitTable[i]) && dmg >= hpCheck) + { + return TRUE; + } + } + + return FALSE; +} + +// does NOT include ability suppression checks +s32 AI_GetAbility(u32 battlerId) +{ + // The AI knows its own ability. + if (IsBattlerAIControlled(battlerId)) + return gBattleMons[battlerId].ability; + + if (BATTLE_HISTORY->abilities[battlerId] != ABILITY_NONE) + return BATTLE_HISTORY->abilities[battlerId]; + + // Abilities that prevent fleeing. + if (gBattleMons[battlerId].ability == ABILITY_SHADOW_TAG + || gBattleMons[battlerId].ability == ABILITY_MAGNET_PULL + || gBattleMons[battlerId].ability == ABILITY_ARENA_TRAP) + return gBattleMons[battlerId].ability; + + if (gBaseStats[gBattleMons[battlerId].species].abilities[0] != ABILITY_NONE) + { + if (gBaseStats[gBattleMons[battlerId].species].abilities[1] != ABILITY_NONE) + { + // AI has no knowledge of opponent, so it guesses which ability. + return gBaseStats[gBattleMons[battlerId].species].abilities[Random() & 1]; + } + else + { + return gBaseStats[gBattleMons[battlerId].species].abilities[0]; // It's definitely ability 1. + } + } + return ABILITY_NONE; // Unknown. +} + +u16 AI_GetHoldEffect(u32 battlerId) +{ + u32 holdEffect; + + if (!IsBattlerAIControlled(battlerId)) + holdEffect = BATTLE_HISTORY->itemEffects[battlerId]; + else + holdEffect = GetBattlerHoldEffect(battlerId, FALSE); + + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_NEGATE_UNAWARE) + return holdEffect; + + if (gStatuses3[battlerId] & STATUS3_EMBARGO) + return HOLD_EFFECT_NONE; + if (gFieldStatuses & STATUS_FIELD_MAGIC_ROOM) + return HOLD_EFFECT_NONE; + if (AI_GetAbility(battlerId) == ABILITY_KLUTZ && !(gStatuses3[battlerId] & STATUS3_GASTRO_ACID)) + return HOLD_EFFECT_NONE; + + return holdEffect; +} + +bool32 AI_IsTerrainAffected(u8 battlerId, u32 flags) +{ + if (gStatuses3[battlerId] & STATUS3_SEMI_INVULNERABLE) + return FALSE; + else if (!(gFieldStatuses & flags)) + return FALSE; + return AI_IsBattlerGrounded(battlerId); +} + +// different from IsBattlerGrounded in that we don't always know battler's hold effect or ability +bool32 AI_IsBattlerGrounded(u8 battlerId) +{ + u32 holdEffect = AI_GetHoldEffect(battlerId); + + if (holdEffect == HOLD_EFFECT_IRON_BALL) + return TRUE; + else if (gFieldStatuses & STATUS_FIELD_GRAVITY) + return TRUE; + else if (gStatuses3[battlerId] & STATUS3_ROOTED) + return TRUE; + else if (gStatuses3[battlerId] & STATUS3_SMACKED_DOWN) + return TRUE; + else if (gStatuses3[battlerId] & STATUS3_TELEKINESIS) + return FALSE; + else if (gStatuses3[battlerId] & STATUS3_MAGNET_RISE) + return FALSE; + else if (holdEffect == HOLD_EFFECT_AIR_BALLOON) + return FALSE; + else if (AI_GetAbility(battlerId) == ABILITY_LEVITATE) + return FALSE; + else if (IS_BATTLER_OF_TYPE(battlerId, TYPE_FLYING)) + return FALSE; + else + return TRUE; +} + +bool32 DoesBattlerIgnoreAbilityChecks(u16 atkAbility, u16 move) +{ + u32 i; + + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_NEGATE_UNAWARE) + return FALSE; // AI handicap flag: doesn't understand ability suppression concept + + for (i = 0; i < ARRAY_COUNT(sIgnoreMoldBreakerMoves); i++) + { + if (move == sIgnoreMoldBreakerMoves[i]) + return TRUE; + } + + if (atkAbility == ABILITY_MOLD_BREAKER + || atkAbility == ABILITY_TERAVOLT + || atkAbility == ABILITY_TURBOBLAZE) + return TRUE; + + return FALSE; +} + +bool32 AI_WeatherHasEffect(void) +{ + u32 i; + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_NEGATE_UNAWARE) + return TRUE; // AI doesn't understand weather supression (handicap) + + // need to manually check since we don't necessarily know opponent ability + for (i = 0; i < gBattlersCount; i++) + { + if (IsBattlerAlive(i) + && (AI_GetAbility(i) == ABILITY_AIR_LOCK || AI_GetAbility(i) == ABILITY_CLOUD_NINE)) + return FALSE; + } + return TRUE; +} + +bool32 IsAromaVeilProtectedMove(u16 move) +{ + u32 i; + + switch (move) + { + case MOVE_DISABLE: + case MOVE_ATTRACT: + case MOVE_ENCORE: + case MOVE_TORMENT: + case MOVE_TAUNT: + case MOVE_HEAL_BLOCK: + return TRUE; + default: + return FALSE; + } +} + +bool32 IsNonVolatileStatusMoveEffect(u16 moveEffect) +{ + switch (moveEffect) + { + case EFFECT_SLEEP: + case EFFECT_TOXIC: + case EFFECT_POISON: + case EFFECT_PARALYZE: + case EFFECT_WILL_O_WISP: + case EFFECT_YAWN: + return TRUE; + default: + return FALSE; + } +} + +bool32 IsConfusionMoveEffect(u16 moveEffect) +{ + switch (moveEffect) + { + case EFFECT_CONFUSE_HIT: + case EFFECT_SWAGGER: + case EFFECT_FLATTER: + case EFFECT_TEETER_DANCE: + return TRUE; + default: + return FALSE; + } +} + +bool32 IsStatLoweringMoveEffect(u16 moveEffect) +{ + switch (moveEffect) + { + case EFFECT_ATTACK_DOWN: + case EFFECT_DEFENSE_DOWN: + case EFFECT_SPEED_DOWN: + case EFFECT_SPECIAL_ATTACK_DOWN: + case EFFECT_SPECIAL_DEFENSE_DOWN: + case EFFECT_ACCURACY_DOWN: + case EFFECT_EVASION_DOWN: + case EFFECT_ATTACK_DOWN_2: + case EFFECT_DEFENSE_DOWN_2: + case EFFECT_SPEED_DOWN_2: + case EFFECT_SPECIAL_ATTACK_DOWN_2: + case EFFECT_SPECIAL_DEFENSE_DOWN_2: + case EFFECT_ACCURACY_DOWN_2: + case EFFECT_EVASION_DOWN_2: + return TRUE; + default: + return FALSE; + } +} + +bool32 IsHazardMoveEffect(u16 moveEffect) +{ + switch (moveEffect) + { + case EFFECT_SPIKES: + case EFFECT_TOXIC_SPIKES: + case EFFECT_STICKY_WEB: + case EFFECT_STEALTH_ROCK: + return TRUE; + default: + return FALSE; + } +} + +bool32 IsMoveRedirectionPrevented(u16 move, u16 atkAbility) +{ + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_NEGATE_UNAWARE) + return FALSE; + + if (move == MOVE_SKY_DROP + || move == MOVE_SNIPE_SHOT + || atkAbility == ABILITY_PROPELLER_TAIL + || atkAbility == ABILITY_STALWART) + return TRUE; + return FALSE; +} + +// differs from GetTotalAccuracy in that we need to check AI history for item, ability, etc +u32 AI_GetMoveAccuracy(u8 battlerAtk, u8 battlerDef, u16 atkAbility, u16 defAbility, u8 atkHoldEffect, u8 defHoldEffect, u16 move) +{ + u32 calc, moveAcc, atkParam, defParam; + s8 buff, accStage, evasionStage; + + gPotentialItemEffectBattler = battlerDef; + accStage = gBattleMons[battlerAtk].statStages[STAT_ACC]; + evasionStage = gBattleMons[battlerDef].statStages[STAT_EVASION]; + if (atkAbility == ABILITY_UNAWARE) + evasionStage = DEFAULT_STAT_STAGE; + if (gBattleMoves[move].flags & FLAG_STAT_STAGES_IGNORED) + evasionStage = DEFAULT_STAT_STAGE; + if (defAbility == ABILITY_UNAWARE) + accStage = DEFAULT_STAT_STAGE; + + if (gBattleMons[battlerDef].status2 & STATUS2_FORESIGHT || gStatuses3[battlerDef] & STATUS3_MIRACLE_EYED) + buff = accStage; + else + buff = accStage + DEFAULT_STAT_STAGE - evasionStage; + + if (buff < MIN_STAT_STAGE) + buff = MIN_STAT_STAGE; + if (buff > MAX_STAT_STAGE) + buff = MAX_STAT_STAGE; + + moveAcc = gBattleMoves[move].accuracy; + // Check Thunder and Hurricane on sunny weather. + if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY + && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE)) + moveAcc = 50; + // Check Wonder Skin. + if (defAbility == ABILITY_WONDER_SKIN && gBattleMoves[move].power == 0) + moveAcc = 50; + + calc = gAccuracyStageRatios[buff].dividend * moveAcc; + calc /= gAccuracyStageRatios[buff].divisor; + + if (atkAbility == ABILITY_COMPOUND_EYES) + calc = (calc * 130) / 100; // 1.3 compound eyes boost + else if (atkAbility == ABILITY_VICTORY_STAR) + calc = (calc * 110) / 100; // 1.1 victory star boost + if (IsBattlerAlive(BATTLE_PARTNER(battlerAtk)) && GetBattlerAbility(BATTLE_PARTNER(battlerAtk)) == ABILITY_VICTORY_STAR) + calc = (calc * 110) / 100; // 1.1 ally's victory star boost + + if (defAbility == ABILITY_SAND_VEIL && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SANDSTORM_ANY) + calc = (calc * 80) / 100; // 1.2 sand veil loss + else if (defAbility == ABILITY_SNOW_CLOAK && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_HAIL_ANY) + calc = (calc * 80) / 100; // 1.2 snow cloak loss + else if (defAbility == ABILITY_TANGLED_FEET && gBattleMons[battlerDef].status2 & STATUS2_CONFUSION) + calc = (calc * 50) / 100; // 1.5 tangled feet loss + + if (atkAbility == ABILITY_HUSTLE && IS_MOVE_PHYSICAL(move)) + calc = (calc * 80) / 100; // 1.2 hustle loss + + if (defHoldEffect == HOLD_EFFECT_EVASION_UP) + calc = (calc * (100 - defParam)) / 100; + + if (atkHoldEffect == HOLD_EFFECT_WIDE_LENS) + calc = (calc * (100 + atkParam)) / 100; + else if (atkHoldEffect == HOLD_EFFECT_ZOOM_LENS && GetBattlerTurnOrderNum(battlerAtk) > GetBattlerTurnOrderNum(battlerDef)); + calc = (calc * (100 + atkParam)) / 100; + + return calc; +} + +bool32 IsSemiInvulnerable(u8 battlerDef, u16 move) +{ + if (gStatuses3[battlerDef] & STATUS3_PHANTOM_FORCE) + return TRUE; + else if (!TestMoveFlags(move, FLAG_DMG_IN_AIR) && gStatuses3[battlerDef] & STATUS3_ON_AIR) + return TRUE; + else if (!TestMoveFlags(move, FLAG_DMG_UNDERWATER) && gStatuses3[battlerDef] & STATUS3_UNDERWATER) + return TRUE; + else if (!TestMoveFlags(move, FLAG_DMG_UNDERGROUND) && gStatuses3[battlerDef] & STATUS3_UNDERGROUND) + return TRUE; + else + return FALSE; +} + +bool32 IsMoveEncouragedToHit(u8 battlerAtk, u8 battlerDef, u16 move) +{ + if (IsSemiInvulnerable(battlerDef, move)) + return FALSE; + + //TODO - anticipate protect move? + + // always hits + if (gStatuses3[battlerDef] & STATUS3_ALWAYS_HITS || gDisableStructs[battlerDef].battlerWithSureHit == battlerAtk) + return TRUE; + + if (AI_GetAbility(battlerDef) == ABILITY_NO_GUARD || AI_GetAbility(battlerAtk) == ABILITY_NO_GUARD) + return TRUE; + + if (B_TOXIC_NEVER_MISS >= GEN_6 && gBattleMoves[move].effect == EFFECT_TOXIC && IS_BATTLER_OF_TYPE(battlerAtk, TYPE_POISON)) + return TRUE; + + // discouraged from hitting + if (AI_WeatherHasEffect() && (gBattleWeather & WEATHER_SUN_ANY) + && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE)) + return FALSE; + + // increased accuracy but don't always hit + if ((AI_WeatherHasEffect() && + (((gBattleWeather & WEATHER_RAIN_ANY) && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE)) + || (((gBattleWeather & WEATHER_HAIL_ANY) && move == MOVE_BLIZZARD)))) + || (gBattleMoves[move].effect == EFFECT_VITAL_THROW) + || (gBattleMoves[move].accuracy == 0) + || ((B_MINIMIZE_DMG_ACC >= GEN_6) && (gStatuses3[battlerDef] & STATUS3_MINIMIZED) && (gBattleMoves[move].flags & FLAG_DMG_MINIMIZE))) + { + return TRUE; + } + + return FALSE; +} + +bool32 ShouldTryOHKO(u8 battlerAtk, u8 battlerDef, u16 atkAbility, u16 defAbility, u32 accuracy, u16 move) +{ + u32 holdEffect = AI_GetHoldEffect(battlerDef); + + gPotentialItemEffectBattler = battlerDef; + if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < GetBattlerHoldEffectParam(battlerDef)) + return FALSE; //probabilistically speaking, focus band should activate so dont OHKO + else if (holdEffect == HOLD_EFFECT_FOCUS_SASH && AtMaxHp(battlerDef)) + return FALSE; + + if (!DoesBattlerIgnoreAbilityChecks(atkAbility, move) && defAbility == ABILITY_STURDY) + return FALSE; + + if ((((gStatuses3[battlerDef] & STATUS3_ALWAYS_HITS) + && gDisableStructs[battlerDef].battlerWithSureHit == battlerAtk) + || atkAbility == ABILITY_NO_GUARD || defAbility == ABILITY_NO_GUARD) + && gBattleMons[battlerAtk].level >= gBattleMons[battlerDef].level) + { + return TRUE; + } + else // test the odds + { + u16 odds = accuracy + (gBattleMons[battlerAtk].level - gBattleMons[battlerDef].level); + if (Random() % 100 + 1 < odds && gBattleMons[battlerAtk].level >= gBattleMons[battlerDef].level) + return TRUE; + } + return FALSE; +} + +bool32 ShouldSetSandstorm(u8 battler, u16 ability, u16 holdEffect) +{ + if (!AI_WeatherHasEffect()) + return FALSE; + else if (gBattleWeather & WEATHER_SANDSTORM_ANY) + return FALSE; + + if (ability == ABILITY_SAND_VEIL + || ability == ABILITY_SAND_RUSH + || ability == ABILITY_SAND_FORCE + || ability == ABILITY_SAND_FORCE + || ability == ABILITY_OVERCOAT + || ability == ABILITY_MAGIC_GUARD + || holdEffect == HOLD_EFFECT_SAFETY_GOOGLES + || IS_BATTLER_OF_TYPE(battler, TYPE_ROCK) + || IS_BATTLER_OF_TYPE(battler, TYPE_STEEL) + || IS_BATTLER_OF_TYPE(battler, TYPE_GROUND) + || HasMoveEffect(battler, EFFECT_SHORE_UP) + || HasMoveEffect(battler, EFFECT_WEATHER_BALL)) + { + return TRUE; + } + return FALSE; +} + +bool32 ShouldSetHail(u8 battler, u16 ability, u16 holdEffect) +{ + if (!AI_WeatherHasEffect()) + return FALSE; + else if (gBattleWeather & WEATHER_HAIL_ANY) + return FALSE; + + if (ability == ABILITY_SNOW_CLOAK + || ability == ABILITY_ICE_BODY + || ability == ABILITY_FORECAST + || ability == ABILITY_SLUSH_RUSH + || ability == ABILITY_MAGIC_GUARD + || ability == ABILITY_OVERCOAT + || holdEffect == HOLD_EFFECT_SAFETY_GOOGLES + || IS_BATTLER_OF_TYPE(battler, TYPE_ICE) + || HasMove(battler, MOVE_BLIZZARD) + || HasMoveEffect(battler, EFFECT_AURORA_VEIL) + || HasMoveEffect(battler, EFFECT_WEATHER_BALL)) + { + return TRUE; + } + return FALSE; +} + +bool32 ShouldSetRain(u8 battlerAtk, u16 atkAbility, u16 holdEffect) +{ + if (!AI_WeatherHasEffect()) + return FALSE; + else if (gBattleWeather & WEATHER_RAIN_ANY) + return FALSE; + + if (holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA + && (atkAbility == ABILITY_SWIFT_SWIM + || atkAbility == ABILITY_FORECAST + || atkAbility == ABILITY_HYDRATION + || atkAbility == ABILITY_RAIN_DISH + || atkAbility == ABILITY_DRY_SKIN + || HasMoveEffect(battlerAtk, EFFECT_THUNDER) + || HasMoveEffect(battlerAtk, EFFECT_HURRICANE) + || HasMoveEffect(battlerAtk, EFFECT_WEATHER_BALL) + || HasMoveWithType(battlerAtk, TYPE_WATER))) + { + return TRUE; + } + return FALSE; +} + +bool32 ShouldSetSun(u8 battlerAtk, u16 atkAbility, u16 holdEffect) +{ + if (!AI_WeatherHasEffect()) + return FALSE; + else if (gBattleWeather & WEATHER_SUN_ANY) + return FALSE; + + if (holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA + && (atkAbility == ABILITY_CHLOROPHYLL + || atkAbility == ABILITY_FLOWER_GIFT + || atkAbility == ABILITY_FORECAST + || atkAbility == ABILITY_LEAF_GUARD + || atkAbility == ABILITY_SOLAR_POWER + || atkAbility == ABILITY_HARVEST + || HasMoveEffect(battlerAtk, EFFECT_SOLARBEAM) + || HasMoveEffect(battlerAtk, EFFECT_MORNING_SUN) + || HasMoveEffect(battlerAtk, EFFECT_SYNTHESIS) + || HasMoveEffect(battlerAtk, EFFECT_MOONLIGHT) + || HasMoveEffect(battlerAtk, EFFECT_WEATHER_BALL) + || HasMoveEffect(battlerAtk, EFFECT_GROWTH) + || HasMoveWithType(battlerAtk, TYPE_FIRE))) + { + return TRUE; + } + return FALSE; +} + + +void ProtectChecks(u8 battlerAtk, u8 battlerDef, u16 move, u16 predictedMove, s16 *score) +{ + // TODO more sophisticated logic + u16 predictedEffect = gBattleMoves[predictedMove].effect; + u8 defAbility = AI_GetAbility(battlerDef); + u32 uses = gDisableStructs[battlerAtk].protectUses; + + /*if (GetMoveResultFlags(predictedMove) & (MOVE_RESULT_NO_EFFECT | MOVE_RESULT_MISSED)) + { + (*score) -= 5; + return; + }*/ + + if (uses == 0) + { + if (predictedMove != MOVE_NONE && predictedMove != 0xFFFF && !IS_MOVE_STATUS(predictedMove)) + (*score) += 2; + else if (Random() % 256 < 100) + (*score)++; + } + else + { + if (IsDoubleBattle()) + (*score) -= 2 * min(uses, 3); + else + (*score) -= min(uses, 3); + } + + if (gBattleMons[battlerAtk].status1 & (STATUS1_PSN_ANY | STATUS1_BURN) + || gBattleMons[battlerAtk].status2 & (STATUS2_CURSED | STATUS2_INFATUATION) + || gStatuses3[battlerAtk] & (STATUS3_PERISH_SONG | STATUS3_LEECHSEED | STATUS3_YAWN)) + { + (*score)--; + } + + if (gBattleMons[battlerDef].status1 & STATUS1_TOXIC_POISON + || gBattleMons[battlerDef].status2 & (STATUS2_CURSED | STATUS2_INFATUATION) + || gStatuses3[battlerDef] & (STATUS3_PERISH_SONG | STATUS3_LEECHSEED | STATUS3_YAWN)) + (*score) += 2; +} + +// stat stages +bool32 ShouldLowerStat(u8 battler, u16 battlerAbility, u8 stat) +{ + if ((gBattleMons[battler].statStages[stat] > MIN_STAT_STAGE && battlerAbility != ABILITY_CONTRARY) + || (battlerAbility == ABILITY_CONTRARY && gBattleMons[battler].statStages[stat] < MAX_STAT_STAGE)) + { + if (battlerAbility == ABILITY_CLEAR_BODY + || battlerAbility == ABILITY_WHITE_SMOKE + || battlerAbility == ABILITY_FULL_METAL_BODY) + return FALSE; + + return TRUE; + } + + return FALSE; +} + +bool32 BattlerStatCanRise(u8 battler, u16 battlerAbility, u8 stat) +{ + if ((gBattleMons[battler].statStages[stat] < MAX_STAT_STAGE && battlerAbility != ABILITY_CONTRARY) + || (battlerAbility == ABILITY_CONTRARY && gBattleMons[battler].statStages[stat] > MIN_STAT_STAGE)) + return TRUE; + return FALSE; +} + +bool32 AreBattlersStatsMaxed(u8 battlerId) +{ + u32 i; + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerId].statStages[i] < MAX_STAT_STAGE) + return FALSE; + } + return TRUE; +} + +bool32 AnyStatIsRaised(u8 battlerId) +{ + u32 i; + + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerId].statStages[i] > DEFAULT_STAT_STAGE) + return TRUE; + } + return FALSE; +} + +u32 CountPositiveStatStages(u8 battlerId) +{ + u32 count = 0; + u32 i; + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerId].statStages[i] > DEFAULT_STAT_STAGE) + count++; + } + return count; +} + +u32 CountNegativeStatStages(u8 battlerId) +{ + u32 count = 0; + u32 i; + for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) + { + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) + count++; + } + return count; +} + +bool32 ShouldLowerAttack(u8 battlerAtk, u8 battlerDef, u16 defAbility) +{ + if (IsAiFaster(AI_CHECK_FASTER) && CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + return FALSE; // Don't bother lowering stats if can kill enemy. + + if (gBattleMons[battlerDef].statStages[STAT_ATK] > 4 + && HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL) + && defAbility != ABILITY_CONTRARY + && defAbility != ABILITY_CLEAR_BODY + && defAbility != ABILITY_WHITE_SMOKE + //&& defAbility != ABILITY_FULL_METAL_BODY + && defAbility != ABILITY_HYPER_CUTTER) + return TRUE; + return FALSE; +} + +bool32 ShouldLowerDefense(u8 battlerAtk, u8 battlerDef, u16 defAbility) +{ + if (IsAiFaster(AI_CHECK_FASTER) && CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + return FALSE; // Don't bother lowering stats if can kill enemy. + + if (gBattleMons[battlerDef].statStages[STAT_DEF] > 4 + && HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL) + && defAbility != ABILITY_CONTRARY + && defAbility != ABILITY_CLEAR_BODY + && defAbility != ABILITY_WHITE_SMOKE + //&& defAbility != ABILITY_FULL_METAL_BODY + && defAbility != ABILITY_BIG_PECKS) + return TRUE; + return FALSE; +} + +bool32 ShouldLowerSpeed(u8 battlerAtk, u8 battlerDef, u16 defAbility) +{ + if (IsAiFaster(AI_CHECK_FASTER) && CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + return FALSE; // Don't bother lowering stats if can kill enemy. + + if (IsAiFaster(AI_CHECK_SLOWER) + && defAbility != ABILITY_CONTRARY + && defAbility != ABILITY_CLEAR_BODY + //&& defAbility != ABILITY_FULL_METAL_BODY + && defAbility != ABILITY_WHITE_SMOKE) + return TRUE; + return FALSE; +} + +bool32 ShouldLowerSpAtk(u8 battlerAtk, u8 battlerDef, u16 defAbility) +{ + if (IsAiFaster(AI_CHECK_FASTER) && CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + return FALSE; // Don't bother lowering stats if can kill enemy. + + if (gBattleMons[battlerDef].statStages[STAT_SPATK] > 4 + && HasMoveWithSplit(battlerDef, SPLIT_SPECIAL) + && defAbility != ABILITY_CONTRARY + && defAbility != ABILITY_CLEAR_BODY + //&& defAbility != ABILITY_FULL_METAL_BODY + && defAbility != ABILITY_WHITE_SMOKE) + return TRUE; + return FALSE; +} + +bool32 ShouldLowerSpDef(u8 battlerAtk, u8 battlerDef, u16 defAbility) +{ + if (IsAiFaster(AI_CHECK_FASTER) && CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + return FALSE; // Don't bother lowering stats if can kill enemy. + + if (gBattleMons[battlerDef].statStages[STAT_SPDEF] > 4 + && HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL) + && defAbility != ABILITY_CONTRARY + && defAbility != ABILITY_CLEAR_BODY + //&& defAbility != ABILITY_FULL_METAL_BODY + && defAbility != ABILITY_WHITE_SMOKE) + return TRUE; + return FALSE; +} + +bool32 ShouldLowerAccuracy(u8 battlerAtk, u8 battlerDef, u16 defAbility) +{ + if (IsAiFaster(AI_CHECK_FASTER) && CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + return FALSE; // Don't bother lowering stats if can kill enemy. + + if (defAbility != ABILITY_CONTRARY + && defAbility != ABILITY_CLEAR_BODY + && defAbility != ABILITY_WHITE_SMOKE + //&& defAbility != ABILITY_FULL_METAL_BODY + && defAbility != ABILITY_KEEN_EYE) + return TRUE; + return FALSE; +} + +bool32 ShouldLowerEvasion(u8 battlerAtk, u8 battlerDef, u16 defAbility) +{ + if (IsAiFaster(AI_CHECK_FASTER) && CanAttackerFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) + return FALSE; // Don't bother lowering stats if can kill enemy. + + if (gBattleMons[battlerDef].statStages[STAT_EVASION] > DEFAULT_STAT_STAGE + && defAbility != ABILITY_CONTRARY + && defAbility != ABILITY_CLEAR_BODY + //&& defAbility != ABILITY_FULL_METAL_BODY + && defAbility != ABILITY_WHITE_SMOKE) + return TRUE; + return FALSE; +} + +bool32 CanAttackerFaintTarget(u8 battlerAtk, u8 battlerDef, u8 index, u8 numHits) +{ + s32 dmg = AI_THINKING_STRUCT->simulatedDmg[battlerAtk][battlerDef][index]; + + if (numHits) + dmg *= numHits; + + if (gBattleMons[battlerDef].hp <= dmg) + return TRUE; + return FALSE; +} + +u16 *GetMovesArray(u32 battler) +{ + if (IsBattlerAIControlled(battler) || IsBattlerAIControlled(BATTLE_PARTNER(battler))) + return gBattleMons[battler].moves; + else + return gBattleResources->battleHistory->usedMoves[battler]; +} + +bool32 HasOnlyMovesWithSplit(u32 battlerId, u32 split, bool32 onlyOffensive) +{ + u32 i; + u16 *moves = GetMovesArray(battlerId); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (onlyOffensive && IS_MOVE_STATUS(moves[i])) + continue; + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && GetBattleMoveSplit(moves[i]) != split) + return FALSE; + } + + return TRUE; +} + +bool32 HasMoveWithSplit(u32 battler, u32 split) +{ + u32 i; + u16 *moves = GetMovesArray(battler); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && GetBattleMoveSplit(moves[i]) == split) + return TRUE; + } + + return FALSE; +} + +bool32 HasMoveWithType(u32 battler, u8 type) +{ + s32 i; + u16 *moves = GetMovesArray(battler); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && gBattleMoves[moves[i]].type == type) + return TRUE; + } + + return FALSE; +} + +bool32 HasMoveEffect(u32 battlerId, u16 moveEffect) +{ + s32 i; + u16 *moves = GetMovesArray(battlerId); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && gBattleMoves[moves[i]].effect == moveEffect) + return TRUE; + } + + return FALSE; +} + +bool32 HasMove(u32 battlerId, u32 move) +{ + s32 i; + u16 *moves = GetMovesArray(battlerId); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && moves[i] == move) + return TRUE; + } + + return FALSE; +} + +bool32 HasMoveWithLowAccuracy(u8 battlerAtk, u8 battlerDef, u8 accCheck, bool32 ignoreStatus, u16 atkAbility, u16 defAbility, u16 atkHoldEffect, u16 defHoldEffect) +{ + s32 i; + u16 *moves = GetMovesArray(battlerAtk); + u8 moveLimitations = CheckMoveLimitations(battlerAtk, 0, 0xFF); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] == MOVE_NONE || moves[i] == 0xFFFF) + continue; + + if (!(gBitTable[i] & moveLimitations)) + { + if (ignoreStatus && IS_MOVE_STATUS(moves[i])) + continue; + else if ((!IS_MOVE_STATUS(moves[i]) && gBattleMoves[moves[i]].accuracy == 0) + || gBattleMoves[moves[i]].target & (MOVE_TARGET_USER | MOVE_TARGET_OPPONENTS_FIELD)) + continue; + + if (AI_GetMoveAccuracy(battlerAtk, battlerDef, atkAbility, defAbility, atkHoldEffect, defHoldEffect, moves[i]) <= accCheck) + return TRUE; + } + } + + return FALSE; +} + +bool32 HasSleepMoveWithLowAccuracy(u8 battlerAtk, u8 battlerDef) +{ + u8 moveLimitations = CheckMoveLimitations(battlerAtk, 0, 0xFF); + u32 i; + u16 *moves = GetMovesArray(battlerAtk); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] == MOVE_NONE) + break; + if (!(gBitTable[i] & moveLimitations)) + { + if (gBattleMoves[moves[i]].effect == EFFECT_SLEEP + && AI_GetMoveAccuracy(battlerAtk, battlerDef, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect, moves[i]) < 85) + return TRUE; + } + } + return FALSE; +} + +bool32 IsHealingMoveEffect(u16 effect) +{ + switch (effect) + { + case EFFECT_RESTORE_HP: + case EFFECT_MORNING_SUN: + case EFFECT_SYNTHESIS: + case EFFECT_MOONLIGHT: + case EFFECT_SOFTBOILED: + case EFFECT_ROOST: + case EFFECT_SWALLOW: + case EFFECT_WISH: + case EFFECT_HEALING_WISH: + case EFFECT_HEAL_PULSE: + case EFFECT_REST: + return TRUE; + default: + return FALSE; + } +} + +bool32 HasHealingEffect(u32 battlerId) +{ + s32 i; + u16 *moves = GetMovesArray(battlerId); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && IsHealingMoveEffect(gBattleMoves[moves[i]].effect)) + return TRUE; + } + + return FALSE; +} + +bool32 IsTrappingMoveEffect(u16 effect) +{ + switch (effect) + { + case EFFECT_MEAN_LOOK: + case EFFECT_TRAP: + case EFFECT_HIT_PREVENT_ESCAPE: + case EFFECT_FAIRY_LOCK: + //case EFFECT_NO_RETREAT: // TODO + return TRUE; + default: + return FALSE; + } +} + +bool32 HasTrappingMoveEffect(u8 battler) +{ + s32 i; + u16 *moves = GetMovesArray(battler); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && IsTrappingMoveEffect(gBattleMoves[moves[i]].effect)) + return TRUE; + } + + return FALSE; +} + +bool32 HasThawingMove(u8 battlerId) +{ + s32 i; + u16 *moves = GetMovesArray(battlerId); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && TestMoveFlags(moves[i], FLAG_THAW_USER)) + return TRUE; + } + + return FALSE; +} + +bool32 IsUngroundingEffect(u16 effect) +{ + switch (effect) + { + case EFFECT_MAGNET_RISE: + return TRUE; + default: + return FALSE; + } +} + +// for anger point +bool32 IsAttackBoostMoveEffect(u16 effect) +{ + switch (effect) + { + case EFFECT_ATTACK_UP: + case EFFECT_ATTACK_UP_2: + case EFFECT_ATTACK_ACCURACY_UP: + case EFFECT_ATTACK_SPATK_UP: + case EFFECT_DRAGON_DANCE: + case EFFECT_COIL: + case EFFECT_BELLY_DRUM: + case EFFECT_BULK_UP: + case EFFECT_GROWTH: + return TRUE; + default: + return FALSE; + } +} + +bool32 IsStatRaisingEffect(u16 effect) +{ + switch (effect) + { + case EFFECT_ATTACK_UP: + case EFFECT_ATTACK_UP_2: + case EFFECT_DEFENSE_UP: + case EFFECT_DEFENSE_UP_2: + case EFFECT_DEFENSE_UP_3: + case EFFECT_SPEED_UP: + case EFFECT_SPEED_UP_2: + case EFFECT_SPECIAL_ATTACK_UP: + case EFFECT_SPECIAL_ATTACK_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_3: + case EFFECT_SPECIAL_DEFENSE_UP: + case EFFECT_SPECIAL_DEFENSE_UP_2: + case EFFECT_ACCURACY_UP: + case EFFECT_ACCURACY_UP_2: + case EFFECT_EVASION_UP: + case EFFECT_EVASION_UP_2: + case EFFECT_MINIMIZE: + case EFFECT_DEFENSE_CURL: + case EFFECT_CHARGE: + case EFFECT_CALM_MIND: + case EFFECT_COSMIC_POWER: + case EFFECT_DRAGON_DANCE: + case EFFECT_ACUPRESSURE: + case EFFECT_SHELL_SMASH: + case EFFECT_SHIFT_GEAR: + case EFFECT_ATTACK_ACCURACY_UP: + case EFFECT_ATTACK_SPATK_UP: + case EFFECT_GROWTH: + case EFFECT_COIL: + case EFFECT_QUIVER_DANCE: + case EFFECT_BULK_UP: + case EFFECT_GEOMANCY: + case EFFECT_STOCKPILE: + return TRUE; + default: + return FALSE; + } +} + +bool32 IsStatLoweringEffect(u16 effect) +{ + // ignore other potentially-beneficial effects like defog, gravity + switch (effect) + { + case EFFECT_ATTACK_DOWN: + case EFFECT_DEFENSE_DOWN: + case EFFECT_SPEED_DOWN: + case EFFECT_SPECIAL_ATTACK_DOWN: + case EFFECT_SPECIAL_DEFENSE_DOWN: + case EFFECT_ACCURACY_DOWN: + case EFFECT_EVASION_DOWN: + case EFFECT_ATTACK_DOWN_2: + case EFFECT_DEFENSE_DOWN_2: + case EFFECT_SPEED_DOWN_2: + case EFFECT_SPECIAL_ATTACK_DOWN_2: + case EFFECT_SPECIAL_DEFENSE_DOWN_2: + case EFFECT_ACCURACY_DOWN_2: + case EFFECT_EVASION_DOWN_2: + case EFFECT_TICKLE: + case EFFECT_CAPTIVATE: + case EFFECT_NOBLE_ROAR: + return TRUE; + default: + return FALSE; + } +} + +bool32 HasDamagingMove(u8 battlerId) +{ + u32 i; + u16 *moves = GetMovesArray(battlerId); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && gBattleMoves[moves[i]].power != 0) + return TRUE; + } + + return FALSE; +} + +bool32 HasDamagingMoveOfType(u8 battlerId, u8 type) +{ + s32 i; + u16 *moves = GetMovesArray(battlerId); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF + && gBattleMoves[moves[i]].type == type && gBattleMoves[moves[i]].power != 0) + return TRUE; + } + + return FALSE; +} + +bool32 IsInstructBannedMove(u16 move) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sInstructBannedMoves); i++) + { + if (move == sInstructBannedMoves[i]) + return TRUE; + } + return FALSE; +} + +bool32 IsEncoreEncouragedEffect(u16 moveEffect) +{ + u32 i; + + for (i = 0; i < ARRAY_COUNT(sEncouragedEncoreEffects); i++) + { + if (moveEffect == sEncouragedEncoreEffects[i]) + return TRUE; + } + return FALSE; +} + +bool32 MoveRequiresRecharging(u16 move) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sRechargeMoves); i++) + { + if (move == sRechargeMoves[i]) + return TRUE; + } + return FALSE; +} + +bool32 MoveCallsOtherMove(u16 move) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sOtherMoveCallingMoves); i++) + { + if (move == sOtherMoveCallingMoves[i]) + return TRUE; + } + return FALSE; +} + +bool32 TestMoveFlagsInMoveset(u8 battler, u32 flags) +{ + s32 i; + u16 *moves = GetMovesArray(battler); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != 0xFFFF && TestMoveFlags(moves[i], flags)) + return TRUE; + } + return FALSE; +} + +static u32 GetLeechSeedDamage(u8 battlerId) +{ + u32 damage = 0; + if ((gStatuses3[battlerId] & STATUS3_LEECHSEED) + && gBattleMons[gStatuses3[battlerId] & STATUS3_LEECHSEED_BATTLER].hp != 0) + { + damage = gBattleMons[battlerId].maxHP / 8; + if (damage == 0) + damage = 1; + } + return damage; +} + +static u32 GetNightmareDamage(u8 battlerId) +{ + u32 damage = 0; + if ((gBattleMons[battlerId].status2 & STATUS2_NIGHTMARE) && gBattleMons[battlerId].status1 & STATUS1_SLEEP) + { + damage = gBattleMons[battlerId].maxHP / 4; + if (damage == 0) + damage = 1; + } + return damage; +} + +static u32 GetCurseDamage(u8 battlerId) +{ + u32 damage = 0; + if (gBattleMons[battlerId].status2 & STATUS2_CURSED) + { + damage = gBattleMons[battlerId].maxHP / 4; + if (damage == 0) + damage = 1; + } + return damage; +} + +static u32 GetTrapDamage(u8 battlerId) +{ + // ai has no knowledge about turns remaining + u32 damage = 0; + u32 holdEffect = AI_GetHoldEffect(gBattleStruct->wrappedBy[battlerId]); + if (gBattleMons[battlerId].status2 & STATUS2_WRAPPED) + { + if (holdEffect == HOLD_EFFECT_BINDING_BAND) + damage = gBattleMons[battlerId].maxHP / (B_BINDING_DAMAGE >= GEN_6) ? 6 : 8; + else + damage = gBattleMons[battlerId].maxHP / (B_BINDING_DAMAGE >= GEN_6) ? 8 : 16; + + if (damage == 0) + damage = 1; + } + return damage; +} + +static u32 GetPoisonDamage(u8 battlerId) +{ + u32 damage = 0; + + if (AI_GetAbility(battlerId) == ABILITY_POISON_HEAL) + return damage; + + if (gBattleMons[battlerId].status1 & STATUS1_POISON) + { + damage = gBattleMons[battlerId].maxHP / 8; + if (damage == 0) + damage = 1; + } + else if (gBattleMons[battlerId].status1 & STATUS1_TOXIC_POISON) + { + damage = gBattleMons[battlerId].maxHP / 16; + if (damage == 0) + damage = 1; + if ((gBattleMons[battlerId].status1 & STATUS1_TOXIC_COUNTER) != STATUS1_TOXIC_TURN(15)) // not 16 turns + gBattleMons[battlerId].status1 += STATUS1_TOXIC_TURN(1); + damage *= (gBattleMons[battlerId].status1 & STATUS1_TOXIC_COUNTER) >> 8; + } + return damage; +} + +static bool32 BattlerAffectedBySandstorm(u8 battlerId, u16 ability) +{ + if (!IS_BATTLER_OF_TYPE(battlerId, TYPE_ROCK) + && !IS_BATTLER_OF_TYPE(battlerId, TYPE_GROUND) + && !IS_BATTLER_OF_TYPE(battlerId, TYPE_STEEL) + && ability != ABILITY_SAND_VEIL + && ability != ABILITY_SAND_FORCE + && ability != ABILITY_SAND_RUSH + && ability != ABILITY_OVERCOAT) + return TRUE; + return FALSE; +} + +static bool32 BattlerAffectedByHail(u8 battlerId, u16 ability) +{ + if (!IS_BATTLER_OF_TYPE(battlerId, TYPE_ICE) + && ability != ABILITY_SNOW_CLOAK + && ability != ABILITY_OVERCOAT + && ability != ABILITY_ICE_BODY) + return TRUE; + return FALSE; +} + +static u32 GetWeatherDamage(u8 battlerId) +{ + u32 ability = AI_GetAbility(battlerId); + u32 holdEffect = AI_GetHoldEffect(battlerId); + u32 damage = 0; + if (!AI_WeatherHasEffect()) + return 0; + + if (gBattleWeather & WEATHER_SANDSTORM_ANY) + { + if (BattlerAffectedBySandstorm(battlerId, ability) + && !(gStatuses3[battlerId] & (STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + && holdEffect != HOLD_EFFECT_SAFETY_GOOGLES) + { + damage = gBattleMons[battlerId].maxHP / 16; + if (damage == 0) + damage = 1; + } + } + if ((gBattleWeather & WEATHER_HAIL_ANY) && ability != ABILITY_ICE_BODY) + { + if (BattlerAffectedByHail(battlerId, ability) + && !(gStatuses3[battlerId] & (STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + && holdEffect != HOLD_EFFECT_SAFETY_GOOGLES) + { + damage = gBattleMons[battlerId].maxHP / 16; + if (damage == 0) + damage = 1; + } + } + return damage; +} + +u32 GetBattlerSecondaryDamage(u8 battlerId) +{ + u32 secondaryDamage; + + if (AI_GetAbility(battlerId) == ABILITY_MAGIC_GUARD) + return FALSE; + + secondaryDamage = GetLeechSeedDamage(battlerId) + + GetNightmareDamage(battlerId) + + GetCurseDamage(battlerId) + + GetTrapDamage(battlerId) + + GetPoisonDamage(battlerId) + + GetWeatherDamage(battlerId); + + return secondaryDamage; +} + +bool32 BattlerWillFaintFromWeather(u8 battler, u16 ability) +{ + if ((BattlerAffectedBySandstorm(battler, ability) || BattlerAffectedByHail(battler, ability)) + && gBattleMons[battler].hp <= gBattleMons[battler].maxHP / 16) + return TRUE; + + return FALSE; +} + +bool32 BattlerWillFaintFromSecondaryDamage(u8 battler, u16 ability) +{ + if (GetBattlerSecondaryDamage(battler) != 0 + && gBattleMons[battler].hp <= gBattleMons[battler].maxHP / 16) + return TRUE; + return FALSE; +} + +static bool32 AnyUsefulStatIsRaised(u8 battler) +{ + u8 statId; + + for (statId = STAT_ATK; statId < NUM_BATTLE_STATS; statId++) + { + if (gBattleMons[battler].statStages[statId] > DEFAULT_STAT_STAGE) + { + switch (statId) + { + case STAT_ATK: + if (HasMoveWithSplit(battler, SPLIT_PHYSICAL)) + return TRUE; + break; + case STAT_SPATK: + if (HasMoveWithSplit(battler, SPLIT_SPECIAL)) + return TRUE; + break; + case STAT_SPEED: + return TRUE; + } + } + } + + return FALSE; +} + +static bool32 PartyBattlerShouldAvoidHazards(u8 currBattler, u8 switchBattler) +{ + struct Pokemon *mon = GetBattlerPartyData(switchBattler); + u16 ability = GetMonAbility(mon); // we know our own party data + u16 holdEffect = GetBattlerHoldEffect(GetMonData(mon, MON_DATA_HELD_ITEM), TRUE); + u32 flags = gSideStatuses[GetBattlerSide(currBattler)] & (SIDE_STATUS_SPIKES | SIDE_STATUS_STEALTH_ROCK | SIDE_STATUS_STICKY_WEB | SIDE_STATUS_TOXIC_SPIKES); + + if (flags == 0) + return FALSE; + + if (ability == ABILITY_MAGIC_GUARD || ability == ABILITY_LEVITATE + || holdEffect == HOLD_EFFECT_HEAVY_DUTY_BOOTS) + return FALSE; + + if (flags & (SIDE_STATUS_SPIKES | SIDE_STATUS_STEALTH_ROCK) && GetMonData(mon, MON_DATA_HP) < (GetMonData(mon, MON_DATA_MAX_HP) / 8)) + return TRUE; + + return FALSE; +} + +enum { + DONT_PIVOT, + CAN_TRY_PIVOT, + PIVOT, +}; +bool32 ShouldPivot(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u8 moveIndex) +{ + bool8 hasStatBoost = AnyUsefulStatIsRaised(battlerAtk) || gBattleMons[battlerDef].statStages[STAT_EVASION] >= 9; //Significant boost in evasion for any class + u8 backupBattler = gActiveBattler; + bool32 shouldSwitch; + u8 battlerToSwitch; + + gActiveBattler = battlerAtk; + shouldSwitch = ShouldSwitch(); + battlerToSwitch = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler); + gActiveBattler = backupBattler; + + if (PartyBattlerShouldAvoidHazards(battlerAtk, battlerToSwitch)) + return DONT_PIVOT; + + if (!IsDoubleBattle()) + { + if (CountUsablePartyMons(battlerAtk) == 0) + return CAN_TRY_PIVOT; // can't switch, but attack might still be useful + + //TODO - predict opponent switching + /*if (IsPredictedToSwitch(battlerDef, battlerAtk) && !hasStatBoost) + return PIVOT; // Try pivoting so you can switch to a better matchup to counter your new opponent*/ + + if (GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0) // Attacker goes first + { + if (!CanAttackerFaintTarget(battlerAtk, battlerDef, moveIndex, 0)) // Can't KO foe otherwise + { + if (CanAttackerFaintTarget(battlerAtk, battlerDef, moveIndex, 2)) + { + // attacker can kill target in two hits (theoretically) + if (CanTargetFaintAi(battlerDef, battlerAtk)) + return PIVOT; // Won't get the two turns, pivot + + if (!IS_MOVE_STATUS(move) && (shouldSwitch + || (AtMaxHp(battlerDef) && (AI_DATA->defHoldEffect == HOLD_EFFECT_FOCUS_SASH + || defAbility == ABILITY_STURDY || defAbility == ABILITY_MULTISCALE || defAbility == ABILITY_SHADOW_SHIELD)))) + return PIVOT; // pivot to break sash/sturdy/multiscale + } + else if (!hasStatBoost) + { + if (!IS_MOVE_STATUS(move) && (AtMaxHp(battlerDef) && (AI_DATA->defHoldEffect == HOLD_EFFECT_FOCUS_SASH + || defAbility == ABILITY_STURDY || defAbility == ABILITY_MULTISCALE || defAbility == ABILITY_SHADOW_SHIELD))) + return PIVOT; // pivot to break sash/sturdy/multiscale + + if (shouldSwitch) + return PIVOT; + + /* TODO - check if switchable mon unafffected by/will remove hazards + if (gSideStatuses[battlerAtk] & SIDE_STATUS_SPIKES && switchScore >= SWITCHING_INCREASE_CAN_REMOVE_HAZARDS) + return PIVOT;*/ + + /*if (BattlerWillFaintFromSecondaryDamage(battlerAtk, AI_DATA->atkAbility) && switchScore >= SWITCHING_INCREASE_WALLS_FOE) + return PIVOT;*/ + + /*if (IsClassDamager(class) && switchScore >= SWITCHING_INCREASE_HAS_SUPER_EFFECTIVE_MOVE) + { + bool8 physMoveInMoveset = PhysicalMoveInMoveset(battlerAtk); + bool8 specMoveInMoveset = SpecialMoveInMoveset(battlerAtk); + + //Pivot if attacking stats are bad + if (physMoveInMoveset && !specMoveInMoveset) + { + if (STAT_STAGE_ATK < 6) + return PIVOT; + } + else if (!physMoveInMoveset && specMoveInMoveset) + { + if (STAT_STAGE_SPATK < 6) + return PIVOT; + } + else if (physMoveInMoveset && specMoveInMoveset) + { + if (STAT_STAGE_ATK < 6 && STAT_STAGE_SPATK < 6) + return PIVOT; + } + + return CAN_TRY_PIVOT; + }*/ + } + } + } + else // Opponent Goes First + { + if (CanTargetFaintAi(battlerDef, battlerAtk)) + { + if (gBattleMoves[move].effect == EFFECT_TELEPORT) + return DONT_PIVOT; // If you're going to faint because you'll go second, use a different move + else + return CAN_TRY_PIVOT; // You're probably going to faint anyways so if for some reason you don't, better switch + } + else if (CanTargetFaintAiWithMod(battlerDef, battlerAtk, 0, 2)) // Foe can 2HKO AI + { + if (CanAttackerFaintTarget(battlerAtk, battlerDef, moveIndex, 0)) + { + if (!BattlerWillFaintFromSecondaryDamage(battlerAtk, AI_DATA->atkAbility)) + return CAN_TRY_PIVOT; // Use this move to KO if you must + } + else // Can't KO the foe + { + return PIVOT; + } + } + else // Foe can 3HKO+ AI + { + if (CanAttackerFaintTarget(battlerAtk, battlerDef, moveIndex, 0)) + { + if (!BattlerWillFaintFromSecondaryDamage(battlerAtk, AI_DATA->atkAbility) // This is the only move that can KO + && !hasStatBoost) //You're not wasting a valuable stat boost + { + return CAN_TRY_PIVOT; + } + } + else if (CanAttackerFaintTarget(battlerAtk, battlerDef, moveIndex, 2)) + { + // can knock out foe in 2 hits + if (IS_MOVE_STATUS(move) && (shouldSwitch //Damaging move + //&& (switchScore >= SWITCHING_INCREASE_RESIST_ALL_MOVES + SWITCHING_INCREASE_KO_FOE //remove hazards + || (AI_DATA->defHoldEffect == HOLD_EFFECT_FOCUS_SASH && AtMaxHp(battlerDef)))) + return DONT_PIVOT; // Pivot to break the sash + else + return CAN_TRY_PIVOT; + } + else + { + //if (IsClassDamager(class) && switchScore >= SWITCHING_INCREASE_KO_FOE) + //return PIVOT; //Only switch if way better matchup + + if (!hasStatBoost) + { + // TODO - check if switching prevents/removes hazards + //if (gSideStatuses[battlerAtk] & SIDE_STATUS_SPIKES && switchScore >= SWITCHING_INCREASE_CAN_REMOVE_HAZARDS) + //return PIVOT; + + // TODO - not always a good idea + //if (BattlerWillFaintFromSecondaryDamage(battlerAtk) && switchScore >= SWITCHING_INCREASE_HAS_SUPER_EFFECTIVE_MOVE) + //return PIVOT; + + /*if (IsClassDamager(class) && switchScore >= SWITCHING_INCREASE_HAS_SUPER_EFFECTIVE_MOVE) + { + bool8 physMoveInMoveset = PhysicalMoveInMoveset(battlerAtk); + bool8 specMoveInMoveset = SpecialMoveInMoveset(battlerAtk); + + //Pivot if attacking stats are bad + if (physMoveInMoveset && !specMoveInMoveset) + { + if (STAT_STAGE_ATK < 6) + return PIVOT; + } + else if (!physMoveInMoveset && specMoveInMoveset) + { + if (STAT_STAGE_SPATK < 6) + return PIVOT; + } + else if (physMoveInMoveset && specMoveInMoveset) + { + if (STAT_STAGE_ATK < 6 && STAT_STAGE_SPATK < 6) + return PIVOT; + } + }*/ + + return CAN_TRY_PIVOT; + } + } + } + } + } + + return DONT_PIVOT; +} + +bool32 CanKnockOffItem(u8 battler, u16 item) +{ + if (item == ITEM_NONE) + return FALSE; + + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_LINK + | BATTLE_TYPE_RECORDED_LINK + | BATTLE_TYPE_SECRET_BASE + #if defined B_TRAINERS_KNOCK_OFF_ITEMS + | BATTLE_TYPE_TRAINER + #endif + )) && GetBattlerSide(battler) == B_SIDE_PLAYER) + return FALSE; + + if (AI_GetAbility(battler) == ABILITY_STICKY_HOLD) + return FALSE; + + if (!CanBattlerGetOrLoseItem(battler, item)) + return FALSE; + + return TRUE; +} + +// status checks +bool32 IsBattlerIncapacitated(u8 battler, u16 ability) +{ + if ((gBattleMons[battler].status1 & STATUS1_FREEZE) && !HasThawingMove(battler)) + return TRUE; // if battler has thawing move we assume they will definitely use it, and thus being frozen should be neglected + + if (gBattleMons[battler].status1 & STATUS1_SLEEP) + return TRUE; + + if (gBattleMons[battler].status2 & STATUS2_RECHARGE || (ability == ABILITY_TRUANT && gDisableStructs[battler].truantCounter != 0)) + return TRUE; + + return FALSE; +} + +bool32 CanSleep(u8 battler, u16 ability) +{ + if (ability == ABILITY_INSOMNIA + || ability == ABILITY_VITAL_SPIRIT + || gBattleMons[battler].status1 & STATUS1_ANY + || gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SAFEGUARD + || (gFieldStatuses & (STATUS_FIELD_MISTY_TERRAIN | STATUS_FIELD_ELECTRIC_TERRAIN)) + || IsAbilityStatusProtected(battler)) + return FALSE; + return TRUE; +} + +bool32 AI_CanPutToSleep(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u16 partnerMove) +{ + if (!CanSleep(battlerDef, defAbility) + || AI_GetMoveEffectiveness(move, battlerAtk, battlerDef) == AI_EFFECTIVENESS_x0 + || DoesSubstituteBlockMove(battlerAtk, battlerDef, move) + || PartnerMoveEffectIsStatusSameTarget(BATTLE_PARTNER(battlerAtk), battlerDef, partnerMove)) // shouldn't try to sleep mon that partner is trying to make sleep + return FALSE; + return TRUE; +} + +bool32 CanBePoisoned(u8 battler, u16 ability) +{ + if (ability == ABILITY_IMMUNITY + || ability == ABILITY_PASTEL_VEIL + || gBattleMons[battler].status1 & STATUS1_ANY + || IsAbilityStatusProtected(battler) + || gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SAFEGUARD) + return FALSE; + return TRUE; +} + +bool32 ShouldPoisonSelf(u8 battler, u16 ability) +{ + if (CanBePoisoned(battler, ability) && ( + ability == ABILITY_MARVEL_SCALE + || ability == ABILITY_POISON_HEAL + || ability == ABILITY_QUICK_FEET + || ability == ABILITY_MAGIC_GUARD + || (ability == ABILITY_TOXIC_BOOST && HasMoveWithSplit(battler, SPLIT_PHYSICAL)) + || (ability == ABILITY_GUTS && HasMoveWithSplit(battler, SPLIT_PHYSICAL)) + || HasMoveEffect(battler, EFFECT_FACADE) + || HasMoveEffect(battler, EFFECT_PSYCHO_SHIFT))) + return TRUE; // battler can be poisoned and has move/ability that synergizes with being poisoned + return FALSE; +} + +bool32 AI_CanPoison(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u16 partnerMove) +{ + if (!CanBePoisoned(battlerDef, defAbility) + || AI_GetMoveEffectiveness(move, battlerAtk, battlerDef) == AI_EFFECTIVENESS_x0 + || DoesSubstituteBlockMove(battlerAtk, battlerDef, move) + || PartnerMoveEffectIsStatusSameTarget(BATTLE_PARTNER(battlerAtk), battlerDef, partnerMove)) + return FALSE; + else if (defAbility != ABILITY_CORROSION && (IS_BATTLER_OF_TYPE(battlerDef, TYPE_POISON) || IS_BATTLER_OF_TYPE(battlerDef, TYPE_STEEL))) + return FALSE; + else if (IsValidDoubleBattle(battlerAtk) && AI_GetAbility(BATTLE_PARTNER(battlerDef)) == ABILITY_PASTEL_VEIL) + return FALSE; + + return TRUE; +} + +static bool32 CanBeParayzed(u8 battler, u16 ability) +{ + if (ability == ABILITY_LIMBER + || IS_BATTLER_OF_TYPE(battler, TYPE_ELECTRIC) + || gBattleMons[battler].status1 & STATUS1_ANY + || IsAbilityStatusProtected(battler)) + return FALSE; + return TRUE; +} + +bool32 AI_CanParalyze(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u16 partnerMove) +{ + if (!CanBeParayzed(battlerDef, defAbility) + || AI_GetMoveEffectiveness(move, battlerAtk, battlerDef) == AI_EFFECTIVENESS_x0 + || gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_SAFEGUARD + || DoesSubstituteBlockMove(battlerAtk, battlerDef, move) + || PartnerMoveEffectIsStatusSameTarget(BATTLE_PARTNER(battlerAtk), battlerDef, partnerMove)) + return FALSE; + return TRUE; +} + +bool32 CanBeConfused(u8 battler, u16 ability) +{ + if ((gBattleMons[battler].status2 & STATUS2_CONFUSION) + || (ability == ABILITY_OWN_TEMPO) + || (IsBattlerGrounded(battler) && (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN))) + return FALSE; + return TRUE; +} + +bool32 AI_CanConfuse(u8 battlerAtk, u8 battlerDef, u16 defAbility, u8 battlerAtkPartner, u16 move, u16 partnerMove) +{ + if (!CanBeConfused(battlerDef, defAbility) + || AI_GetMoveEffectiveness(move, battlerAtk, battlerDef) == AI_EFFECTIVENESS_x0 + || gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_SAFEGUARD + || DoesSubstituteBlockMove(battlerAtk, battlerDef, move) + || DoesPartnerHaveSameMoveEffect(battlerAtkPartner, battlerDef, move, partnerMove)) + { + return FALSE; + } + + return TRUE; +} + +bool32 CanBeBurned(u8 battler, u16 ability) +{ + if (ability == ABILITY_WATER_VEIL + || ability == ABILITY_WATER_BUBBLE + || IS_BATTLER_OF_TYPE(battler, TYPE_FIRE) + || gBattleMons[battler].status1 & STATUS1_ANY + || IsAbilityStatusProtected(battler) + || gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SAFEGUARD) + return FALSE; + return TRUE; +} + +bool32 ShouldBurnSelf(u8 battler, u16 ability) +{ + if (CanBeBurned(battler, ability) && ( + ability == ABILITY_QUICK_FEET + || ability == ABILITY_HEATPROOF + || ability == ABILITY_MAGIC_GUARD + || (ability == ABILITY_FLARE_BOOST && HasMoveWithSplit(battler, SPLIT_SPECIAL)) + || (ability == ABILITY_GUTS && HasMoveWithSplit(battler, SPLIT_PHYSICAL)) + || HasMoveEffect(battler, EFFECT_FACADE) + || HasMoveEffect(battler, EFFECT_PSYCHO_SHIFT))) + return TRUE; + return FALSE; +} + +bool32 AI_CanBurn(u8 battlerAtk, u8 battlerDef, u16 defAbility, u8 battlerAtkPartner, u16 move, u16 partnerMove) +{ + if (!CanBeBurned(battlerDef, defAbility) + || AI_GetMoveEffectiveness(move, battlerAtk, battlerDef) == AI_EFFECTIVENESS_x0 + || DoesSubstituteBlockMove(battlerAtk, battlerDef, move) + || PartnerMoveEffectIsStatusSameTarget(battlerAtkPartner, battlerDef, partnerMove)) + { + return FALSE; + } + return TRUE; +} + +bool32 AI_CanBeInfatuated(u8 battlerAtk, u8 battlerDef, u16 defAbility, u8 atkGender, u8 defGender) +{ + if ((gBattleMons[battlerDef].status2 & STATUS2_INFATUATION) + || AI_GetMoveEffectiveness(AI_THINKING_STRUCT->moveConsidered, battlerAtk, battlerDef) == AI_EFFECTIVENESS_x0 + || defAbility == ABILITY_OBLIVIOUS + || atkGender == defGender + || atkGender == MON_GENDERLESS + || defGender == MON_GENDERLESS + || IsAbilityOnSide(battlerDef, ABILITY_AROMA_VEIL)) + return FALSE; + return TRUE; +} + +u32 ShouldTryToFlinch(u8 battlerAtk, u8 battlerDef, u16 atkAbility, u16 defAbility, u16 move) +{ + if (defAbility == ABILITY_INNER_FOCUS + || DoesSubstituteBlockMove(battlerAtk, battlerDef, move) + || GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 1) // opponent goes first + { + return 0; // don't try to flinch + } + else if ((gBattleMons[battlerDef].status1 & STATUS1_SLEEP) && !HasMoveEffect(battlerDef, EFFECT_SLEEP_TALK) && !HasMoveEffect(battlerDef, EFFECT_SNORE)) + { + return 0; // don't try to flinch sleeping pokemon + } + else if (atkAbility == ABILITY_SERENE_GRACE + || gBattleMons[battlerDef].status1 & STATUS1_PARALYSIS + || gBattleMons[battlerDef].status2 & STATUS2_INFATUATION + || gBattleMons[battlerDef].status2 & STATUS2_CONFUSION) + { + return 2; // good idea to flinch + } + return 1; // decent idea to flinch +} + +bool32 ShouldTrap(u8 battlerAtk, u8 battlerDef, u16 move) +{ + if (BattlerWillFaintFromSecondaryDamage(battlerDef, AI_DATA->defAbility)) + return TRUE; // battler is taking secondary damage with low HP + + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_STALL) + { + if (!CanTargetFaintAi(battlerDef, battlerAtk)) + return TRUE; // attacker goes first and opponent can't kill us + } + + return FALSE; +} + +bool32 ShouldFakeOut(u8 battlerAtk, u8 battlerDef, u16 move) +{ + if (AI_DATA->atkHoldEffect == HOLD_EFFECT_CHOICE_BAND && CountUsablePartyMons(battlerAtk) == 0) + return FALSE; // don't lock attacker into fake out if can't switch out + + if (gDisableStructs[battlerAtk].isFirstTurn + && ShouldTryToFlinch(battlerAtk, battlerDef, AI_DATA->atkAbility, AI_DATA->defAbility, move) + && !DoesSubstituteBlockMove(battlerAtk, battlerDef, move)) + return TRUE; + + return FALSE; +} + +static u32 FindMoveUsedXTurnsAgo(u32 battlerId, u32 x) +{ + s32 i, index = BATTLE_HISTORY->moveHistoryIndex[battlerId]; + for (i = 0; i < x; i++) + { + if (--index < 0) + index = AI_MOVE_HISTORY_COUNT - 1; + } + return BATTLE_HISTORY->moveHistory[battlerId][index]; +} + +bool32 IsWakeupTurn(u8 battler) +{ + // Check if rest was used 2 turns ago + if ((gBattleMons[battler].status1 & STATUS1_SLEEP) == 1 && FindMoveUsedXTurnsAgo(battler, 2) == MOVE_REST) + return TRUE; + else // no way to know + return FALSE; +} + +bool32 AnyPartyMemberStatused(u8 battlerId, bool32 checkSoundproof) +{ + struct Pokemon *party; + u32 i; + + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (checkSoundproof && GetMonAbility(&party[i]) == ABILITY_SOUNDPROOF) + continue; + + if (GetMonData(&party[i], MON_DATA_STATUS) != STATUS1_NONE) + return TRUE; + } + + return FALSE; +} + +u16 GetBattlerSideSpeedAverage(u8 battler) +{ + u16 speed1 = 0; + u16 speed2 = 0; + u8 numBattlersAlive = 0; + + if (IsBattlerAlive(battler)) + { + speed1 = GetBattlerTotalSpeedStat(battler); + numBattlersAlive++; + } + + if (IsDoubleBattle() && IsBattlerAlive(BATTLE_PARTNER(battler))) + { + speed2 = GetBattlerTotalSpeedStat(BATTLE_PARTNER(battler)); + numBattlersAlive++; + } + + return (speed1 + speed2) / numBattlersAlive; +} + +bool32 ShouldUseRecoilMove(u8 battlerAtk, u8 battlerDef, u32 recoilDmg, u8 moveIndex) +{ + if (recoilDmg >= gBattleMons[battlerAtk].hp //Recoil kills attacker + && CountUsablePartyMons(battlerDef) != 0) //Foe has more than 1 target left + { + if (recoilDmg >= gBattleMons[battlerDef].hp && !CanAttackerFaintTarget(battlerAtk, battlerDef, moveIndex, 0)) + return TRUE; //If it's the only KO move then just use it + else + return FALSE; //Not as good to use move if you'll faint and not win + } + + return TRUE; +} + +bool32 ShouldAbsorb(u8 battlerAtk, u8 battlerDef, u16 move, s32 damage) +{ + if (move == 0xFFFF || GetWhoStrikesFirst(battlerAtk, gBattlerTarget, TRUE) == 0) + { + // using item or user goes first + u8 healPercent = (gBattleMoves[move].argument == 0) ? 50 : gBattleMoves[move].argument; + s32 healDmg = (healPercent * damage) / 100; + + if (gStatuses3[battlerAtk] & STATUS3_HEAL_BLOCK) + healDmg = 0; + + if (CanTargetFaintAi(battlerDef, battlerAtk) + && !CanTargetFaintAiWithMod(battlerDef, battlerAtk, healDmg, 0)) + return TRUE; // target can faint attacker unless they heal + else if (!CanTargetFaintAi(battlerDef, battlerAtk) && GetHealthPercentage(battlerAtk) < 60 && (Random() % 3)) + return TRUE; // target can't faint attacker at all, attacker health is about half, 2/3rds rate of encouraging healing + } + else + { + // opponent goes first + if (!CanTargetFaintAi(battlerDef, battlerAtk)) + return TRUE; + } + + return FALSE; +} + +bool32 ShouldRecover(u8 battlerAtk, u8 battlerDef, u16 move, u8 healPercent) +{ + if (move == 0xFFFF || GetWhoStrikesFirst(battlerAtk, gBattlerTarget, TRUE) == 0) + { + // using item or user going first + s32 damage = AI_THINKING_STRUCT->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex]; + s32 healAmount = (healPercent * damage) / 100; + if (gStatuses3[battlerAtk] & STATUS3_HEAL_BLOCK) + healAmount = 0; + + if (CanTargetFaintAi(battlerDef, battlerAtk) + && !CanTargetFaintAiWithMod(battlerDef, battlerAtk, healAmount, 0)) + return TRUE; // target can faint attacker unless they heal + else if (!CanTargetFaintAi(battlerDef, battlerAtk) && GetHealthPercentage(battlerAtk) < 60 && (Random() % 3)) + return TRUE; // target can't faint attacker at all, attacker health is about half, 2/3rds rate of encouraging healing + } + return FALSE; +} + +bool32 ShouldSetScreen(u8 battlerAtk, u8 battlerDef, u16 moveEffect) +{ + u8 atkSide = GetBattlerSide(battlerAtk); + switch (moveEffect) + { + case EFFECT_AURORA_VEIL: + // Use only in Hail and only if AI doesn't already have Reflect, Light Screen or Aurora Veil itself active. + if (gBattleWeather & WEATHER_HAIL_ANY + && !(gSideStatuses[atkSide] & (SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL))) + return TRUE; + break; + case EFFECT_REFLECT: + // Use only if the player has a physical move and AI doesn't already have Reflect itself active. + if (HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL) + && !(gSideStatuses[atkSide] & SIDE_STATUS_REFLECT)) + return TRUE; + break; + case EFFECT_LIGHT_SCREEN: + // Use only if the player has a special move and AI doesn't already have Light Screen itself active. + if (HasMoveWithSplit(battlerDef, SPLIT_SPECIAL) + && !(gSideStatuses[atkSide] & SIDE_STATUS_LIGHTSCREEN)) + return TRUE; + break; + } + + return FALSE; +} + +// Partner Logic +bool32 IsValidDoubleBattle(u8 battlerAtk) +{ + if (IsDoubleBattle() + && ((IsBattlerAlive(BATTLE_OPPOSITE(battlerAtk)) && IsBattlerAlive(BATTLE_PARTNER(BATTLE_OPPOSITE(battlerAtk)))) || IsBattlerAlive(BATTLE_PARTNER(battlerAtk)))) + return TRUE; + return FALSE; +} + +u16 GetAllyChosenMove(void) +{ + u8 partnerBattler = BATTLE_PARTNER(sBattler_AI); + + if (!IsBattlerAlive(partnerBattler) || !IsBattlerAIControlled(partnerBattler)) + return MOVE_NONE; // TODO: prediction? + else if (partnerBattler > sBattler_AI) // Battler with the lower id chooses the move first. + return MOVE_NONE; + else + return gBattleMons[partnerBattler].moves[gBattleStruct->chosenMovePositions[partnerBattler]]; +} + +bool32 IsTargetingPartner(u8 battlerAtk, u8 battlerDef) +{ + if ((battlerAtk & BIT_SIDE) == (battlerDef & BIT_SIDE)) + return TRUE; + + return FALSE; +} + +//PARTNER_MOVE_EFFECT_IS_SAME +bool32 DoesPartnerHaveSameMoveEffect(u8 battlerAtkPartner, u8 battlerDef, u16 move, u16 partnerMove) +{ + if (!IsDoubleBattle()) + return FALSE; + + if (gBattleMoves[move].effect == gBattleMoves[partnerMove].effect + && gChosenMoveByBattler[battlerAtkPartner] != MOVE_NONE + && gBattleStruct->moveTarget[battlerAtkPartner] == battlerDef) + { + return TRUE; + } + return FALSE; +} + +//PARTNER_MOVE_EFFECT_IS_SAME_NO_TARGET +bool32 PartnerHasSameMoveEffectWithoutTarget(u8 battlerAtkPartner, u16 move, u16 partnerMove) +{ + if (!IsDoubleBattle()) + return FALSE; + + if (gBattleMoves[move].effect == gBattleMoves[partnerMove].effect + && gChosenMoveByBattler[battlerAtkPartner] != MOVE_NONE) + return TRUE; + return FALSE; +} + +//PARTNER_MOVE_EFFECT_IS_STATUS_SAME_TARGET +bool32 PartnerMoveEffectIsStatusSameTarget(u8 battlerAtkPartner, u8 battlerDef, u16 partnerMove) +{ + if (!IsDoubleBattle()) + return FALSE; + + if (gChosenMoveByBattler[battlerAtkPartner] != MOVE_NONE + && gBattleStruct->moveTarget[battlerAtkPartner] == battlerDef + && (gBattleMoves[partnerMove].effect == EFFECT_SLEEP + || gBattleMoves[partnerMove].effect == EFFECT_POISON + || gBattleMoves[partnerMove].effect == EFFECT_TOXIC + || gBattleMoves[partnerMove].effect == EFFECT_PARALYZE + || gBattleMoves[partnerMove].effect == EFFECT_WILL_O_WISP + || gBattleMoves[partnerMove].effect == EFFECT_YAWN)) + return TRUE; + return FALSE; +} + +//PARTNER_MOVE_EFFECT_IS_WEATHER +bool32 PartnerMoveEffectIsWeather(u8 battlerAtkPartner, u16 partnerMove) +{ + if (!IsDoubleBattle()) + return FALSE; + + if (gChosenMoveByBattler[battlerAtkPartner] != MOVE_NONE + && (gBattleMoves[partnerMove].effect == EFFECT_SUNNY_DAY + || gBattleMoves[partnerMove].effect == EFFECT_RAIN_DANCE + || gBattleMoves[partnerMove].effect == EFFECT_SANDSTORM + || gBattleMoves[partnerMove].effect == EFFECT_HAIL)) + return TRUE; + + return FALSE; +} + +//PARTNER_MOVE_EFFECT_IS_TERRAIN +bool32 PartnerMoveEffectIsTerrain(u8 battlerAtkPartner, u16 partnerMove) +{ + if (!IsDoubleBattle()) + return FALSE; + + if (gChosenMoveByBattler[battlerAtkPartner] != MOVE_NONE + && (gBattleMoves[partnerMove].effect == EFFECT_GRASSY_TERRAIN + || gBattleMoves[partnerMove].effect == EFFECT_MISTY_TERRAIN + || gBattleMoves[partnerMove].effect == EFFECT_ELECTRIC_TERRAIN + || gBattleMoves[partnerMove].effect == EFFECT_PSYCHIC_TERRAIN)) + return TRUE; + + return FALSE; +} + +//PARTNER_MOVE_IS_TAILWIND_TRICKROOM +bool32 PartnerMoveIs(u8 battlerAtkPartner, u16 partnerMove, u16 moveCheck) +{ + if (!IsDoubleBattle()) + return FALSE; + + if (gChosenMoveByBattler[battlerAtkPartner] != MOVE_NONE && partnerMove == moveCheck) + return TRUE; + return FALSE; +} + +//PARTNER_MOVE_IS_SAME +bool32 PartnerMoveIsSameAsAttacker(u8 battlerAtkPartner, u8 battlerDef, u16 move, u16 partnerMove) +{ + if (!IsDoubleBattle()) + return FALSE; + + if (gChosenMoveByBattler[battlerAtkPartner] != MOVE_NONE && move == partnerMove && gBattleStruct->moveTarget[battlerAtkPartner] == battlerDef) + return TRUE; + return FALSE; +} + +//PARTNER_MOVE_IS_SAME_NO_TARGET +bool32 PartnerMoveIsSameNoTarget(u8 battlerAtkPartner, u16 move, u16 partnerMove) +{ + if (!IsDoubleBattle()) + return FALSE; + if (gChosenMoveByBattler[battlerAtkPartner] != MOVE_NONE && move == partnerMove) + return TRUE; + return FALSE; +} + +bool32 ShouldUseWishAromatherapy(u8 battlerAtk, u8 battlerDef, u16 move) +{ + u32 i; + u32 firstId, lastId; + struct Pokemon* party; + bool32 hasStatus = FALSE; + bool32 needHealing = FALSE; + + GetAIPartyIndexes(battlerAtk, &firstId, &lastId); + + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + if (CountUsablePartyMons(battlerAtk) == 0 + && (CanTargetFaintAi(battlerDef, battlerAtk) || BattlerWillFaintFromSecondaryDamage(battlerAtk, AI_DATA->atkAbility))) + return FALSE; // Don't heal if last mon and will faint + + for (i = 0; i < PARTY_SIZE; i++) + { + u16 currHp = GetMonData(&party[i], MON_DATA_HP); + u16 maxHp = GetMonData(&party[i], MON_DATA_MAX_HP); + + if (!GetMonData(&party[i], MON_DATA_IS_EGG, NULL) && currHp > 0) + { + if ((currHp * 100) / maxHp < 65 // Less than 65% health remaining + && i >= firstId && i < lastId) // Can only switch to mon on your team + { + needHealing = TRUE; + } + + if (GetMonData(&party[i], MON_DATA_STATUS, NULL) != STATUS1_NONE) + { + if (move != MOVE_HEAL_BELL || GetMonAbility(&party[i]) != ABILITY_SOUNDPROOF) + hasStatus = TRUE; + } + } + } + + if (!IsDoubleBattle()) + { + switch (gBattleMoves[move].effect) + { + case EFFECT_WISH: + if (needHealing) + return TRUE; + break; + case EFFECT_HEAL_BELL: + if (hasStatus) + return TRUE; + } + } + else + { + switch (gBattleMoves[move].effect) + { + case EFFECT_WISH: + return ShouldRecover(battlerAtk, battlerDef, move, 50); // Switch recovery isn't good idea in doubles + case EFFECT_HEAL_BELL: + if (hasStatus) + return TRUE; + } + } + + return FALSE; +} + +// party logic +s32 AI_CalcPartyMonDamage(u16 move, u8 battlerAtk, u8 battlerDef, struct Pokemon *mon) +{ + s32 dmg; + u32 i; + struct BattlePokemon *battleMons = Alloc(sizeof(struct BattlePokemon) * MAX_BATTLERS_COUNT); + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + battleMons[i] = gBattleMons[i]; + + PokemonToBattleMon(mon, &gBattleMons[battlerAtk]); + dmg = AI_CalcDamage(move, battlerAtk, battlerDef); + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + gBattleMons[i] = battleMons[i]; + + Free(battleMons); + + return dmg; +} + +s32 CountUsablePartyMons(u8 battlerId) +{ + s32 battlerOnField1, battlerOnField2, i, ret; + struct Pokemon *party; + + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + battlerOnField1 = gBattlerPartyIndexes[battlerId]; + battlerOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(battlerId) ^ BIT_FLANK)]; + } + else // In singles there's only one battlerId by side. + { + battlerOnField1 = gBattlerPartyIndexes[battlerId]; + battlerOnField2 = gBattlerPartyIndexes[battlerId]; + } + + ret = 0; + for (i = 0; i < PARTY_SIZE; i++) + { + if (i != battlerOnField1 && i != battlerOnField2 + && GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) + { + ret++; + } + } + + return ret; +} + +bool32 IsPartyFullyHealedExceptBattler(u8 battlerId) +{ + struct Pokemon *party; + u32 i; + + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (i != gBattlerPartyIndexes[battlerId] + && GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG + && GetMonData(&party[i], MON_DATA_HP) < GetMonData(&party[i], MON_DATA_MAX_HP)) + return FALSE; + } + return TRUE; +} + +bool32 PartyHasMoveSplit(u8 battlerId, u8 split) +{ + u8 firstId, lastId; + struct Pokemon* party = GetBattlerPartyData(battlerId); + u32 i, j; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&party[i], MON_DATA_HP, NULL) == 0) + continue; + + for (j = 0; j < MAX_MON_MOVES; j++) + { + u16 move = GetMonData(&party[i], MON_DATA_MOVE1 + j, NULL); + u16 pp = GetMonData(&party[i], MON_DATA_PP1 + j, NULL); + + if (pp > 0 && move != MOVE_NONE) + { + //TODO - handle photon geyser, light that burns the sky + if (gBattleMoves[move].split == split) + return TRUE; + } + } + } + + return FALSE; +} + +bool32 SideHasMoveSplit(u8 battlerId, u8 split) +{ + if (IsDoubleBattle()) + { + if (HasMoveWithSplit(battlerId, split) || HasMoveWithSplit(BATTLE_PARTNER(battlerId), split)) + return TRUE; + } + else + { + if (HasMoveWithSplit(battlerId, split)) + return TRUE; + } + return FALSE; +} + +bool32 IsAbilityOfRating(u16 ability, s8 rating) +{ + if (sAiAbilityRatings[ability] >= rating) + return TRUE; + return FALSE; +} + +s8 GetAbilityRating(u16 ability) +{ + return sAiAbilityRatings[ability]; +} + +static const u16 sRecycleEncouragedItems[] = +{ + ITEM_CHESTO_BERRY, + ITEM_LUM_BERRY, + ITEM_STARF_BERRY, + ITEM_SITRUS_BERRY, + ITEM_MICLE_BERRY, + ITEM_CUSTAP_BERRY, + ITEM_MENTAL_HERB, + #ifdef ITEM_EXPANSION + ITEM_FOCUS_SASH, + #endif + // TODO expand this +}; + +bool32 IsRecycleEncouragedItem(u16 item) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sRecycleEncouragedItems); i++) + { + if (item == sRecycleEncouragedItems[i]) + return TRUE; + } + return FALSE; +} + +// score increases +#define STAT_UP_2_STAGE 8 +#define STAT_UP_STAGE 10 +void IncreaseStatUpScore(u8 battlerAtk, u8 battlerDef, u8 statId, s16 *score) +{ + if (AI_DATA->atkAbility == ABILITY_CONTRARY) + return; + + if (GetHealthPercentage(battlerAtk) < 80 && AI_RandLessThan(128)) + return; + + switch (statId) + { + case STAT_ATK: + if (HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL) && GetHealthPercentage(battlerAtk) > 40) + { + if (gBattleMons[battlerAtk].statStages[STAT_ATK] < STAT_UP_2_STAGE) + *score += 2; + else if (gBattleMons[battlerAtk].statStages[STAT_ATK] < STAT_UP_STAGE) + *(score)++; + } + if (HasMoveEffect(battlerAtk, EFFECT_FOUL_PLAY)) + *(score)++; + break; + case STAT_DEF: + if ((HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)|| IS_MOVE_PHYSICAL(gLastMoves[battlerDef])) + && GetHealthPercentage(battlerAtk) > 70) + { + if (gBattleMons[battlerAtk].statStages[STAT_DEF] < STAT_UP_2_STAGE) + *score += 2; // seems better to raise def at higher HP + else if (gBattleMons[battlerAtk].statStages[STAT_DEF] < STAT_UP_STAGE) + *(score)++; + } + break; + case STAT_SPEED: + if (IsAiFaster(AI_CHECK_SLOWER)) + { + if (gBattleMons[battlerAtk].statStages[STAT_SPEED] < STAT_UP_2_STAGE) + *score += 2; + else if (gBattleMons[battlerAtk].statStages[STAT_SPEED] < STAT_UP_STAGE) + *(score)++; + } + break; + case STAT_SPATK: + if (HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL) && GetHealthPercentage(battlerAtk) > 40) + { + if (gBattleMons[battlerAtk].statStages[STAT_SPATK] < STAT_UP_2_STAGE) + *score += 2; + else if (gBattleMons[battlerAtk].statStages[STAT_SPATK] < STAT_UP_STAGE) + *(score)++; + } + break; + case STAT_SPDEF: + if ((HasMoveWithSplit(battlerDef, SPLIT_SPECIAL) || IS_MOVE_SPECIAL(gLastMoves[battlerDef])) + && GetHealthPercentage(battlerAtk) > 70) + { + if (gBattleMons[battlerAtk].statStages[STAT_SPDEF] < STAT_UP_2_STAGE) + *score += 2; // seems better to raise spdef at higher HP + else if (gBattleMons[battlerAtk].statStages[STAT_SPDEF] < STAT_UP_STAGE) + *(score)++; + } + break; + case STAT_ACC: + if (HasMoveWithLowAccuracy(battlerAtk, battlerDef, 80, TRUE, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect)) + *score += 2; // has moves with less than 80% accuracy + else if (HasMoveWithLowAccuracy(battlerAtk, battlerDef, 90, TRUE, AI_DATA->atkAbility, AI_DATA->defAbility, AI_DATA->atkHoldEffect, AI_DATA->defHoldEffect)) + *(score)++; + break; + case STAT_EVASION: + if (!BattlerWillFaintFromWeather(battlerAtk, AI_DATA->atkAbility)) + { + if (!GetBattlerSecondaryDamage(battlerAtk) && !(gStatuses3[battlerAtk] & STATUS3_ROOTED)) + *score += 2; + else + *(score)++; + } + break; + } +} + +void IncreasePoisonScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score) +{ + if (AI_CanPoison(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove) && GetHealthPercentage(battlerDef) > 20) + { + if (!HasDamagingMove(battlerDef)) + *score += 2; + + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_STALL && HasMoveEffect(battlerAtk, EFFECT_PROTECT)) + (*score)++; // stall tactic + + if (HasMoveEffect(battlerAtk, EFFECT_VENOSHOCK) + || HasMoveEffect(battlerAtk, EFFECT_HEX) + || HasMoveEffect(battlerAtk, EFFECT_VENOM_DRENCH) + || AI_DATA->atkAbility == ABILITY_MERCILESS) + *(score) += 2; + else + *(score)++; + } +} + +void IncreaseBurnScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score) +{ + if (AI_CanBurn(battlerAtk, battlerDef, AI_DATA->defAbility, AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove)) + { + (*score)++; // burning is good + if (HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)) + { + if (CanTargetFaintAi(battlerDef, battlerAtk)) + *score += 2; // burning the target to stay alive is cool + } + + if (HasMoveEffect(battlerAtk, EFFECT_HEX) || HasMoveEffect(AI_DATA->battlerAtkPartner, EFFECT_HEX)) + (*score)++; + } +} + +void IncreaseParalyzeScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score) +{ + if (AI_CanParalyze(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + { + u8 atkSpeed = GetBattlerTotalSpeedStat(battlerAtk); + u8 defSpeed = GetBattlerTotalSpeedStat(battlerDef); + + if ((defSpeed >= atkSpeed && defSpeed / 2 < atkSpeed) // You'll go first after paralyzing foe + || HasMoveEffect(battlerAtk, EFFECT_HEX) + || HasMoveEffect(battlerAtk, EFFECT_FLINCH_HIT) + || gBattleMons[battlerDef].status2 & STATUS2_INFATUATION + || gBattleMons[battlerDef].status2 & STATUS2_CONFUSION) + *score += 4; + else + *score += 2; + } +} + +void IncreaseSleepScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score) +{ + if (AI_CanPutToSleep(battlerAtk, battlerDef, AI_DATA->defAbility, move, AI_DATA->partnerMove)) + *score += 2; + else + return; + + if ((HasMoveEffect(battlerAtk, EFFECT_DREAM_EATER) || HasMoveEffect(battlerAtk, EFFECT_NIGHTMARE)) + && !(HasMoveEffect(battlerDef, EFFECT_SNORE) || HasMoveEffect(battlerDef, EFFECT_SLEEP_TALK))) + (*score)++; + + if (HasMoveEffect(battlerAtk, EFFECT_HEX) || HasMoveEffect(AI_DATA->battlerAtkPartner, EFFECT_HEX)) + (*score)++; +} + +void IncreaseConfusionScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score) +{ + if (AI_CanConfuse(battlerAtk, battlerDef, AI_DATA->defAbility, AI_DATA->battlerAtkPartner, move, AI_DATA->partnerMove) + && AI_DATA->defHoldEffect != HOLD_EFFECT_CURE_CONFUSION + && AI_DATA->defHoldEffect != HOLD_EFFECT_CURE_STATUS) + { + if (gBattleMons[battlerDef].status1 & STATUS1_PARALYSIS + || gBattleMons[battlerDef].status2 & STATUS2_INFATUATION + || (AI_DATA->atkAbility == ABILITY_SERENE_GRACE && HasMoveEffect(battlerAtk, EFFECT_FLINCH_HIT))) + *score += 3; + else + *score += 2; + } +} diff --git a/src/battle_anim.c b/src/battle_anim.c index cb7ea5bea0..ef896c93f7 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -18,6 +18,7 @@ #include "task.h" #include "constants/battle_anim.h" #include "constants/battle_config.h" +#include "constants/moves.h" #define ANIM_SPRITE_INDEX_COUNT 8 @@ -2169,8 +2170,8 @@ void ClearBattleAnimationVars(void) for (i = 0; i < ANIM_ARGS_COUNT; i++) gBattleAnimArgs[i] = 0; - sMonAnimTaskIdArray[0] = 0xFF; - sMonAnimTaskIdArray[1] = 0xFF; + sMonAnimTaskIdArray[0] = TASK_NONE; + sMonAnimTaskIdArray[1] = TASK_NONE; gAnimMoveTurn = 0; sAnimBackgroundFadeState = 0; gAnimMoveIndex = 0; @@ -2198,11 +2199,32 @@ void DoMoveAnim(u16 move) void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim) { s32 i; + bool32 hideHpBoxes = (tableId == MOVE_TRANSFORM) ? FALSE : TRUE; + + if (!isMoveAnim) + { + switch (tableId) + { + case B_ANIM_TURN_TRAP: + case B_ANIM_LEECH_SEED_DRAIN: + case B_ANIM_MON_HIT: + case B_ANIM_SNATCH_MOVE: + case B_ANIM_FUTURE_SIGHT_HIT: + case B_ANIM_DOOM_DESIRE_HIT: + case B_ANIM_WISH_HEAL: + case B_ANIM_MEGA_EVOLUTION: + hideHpBoxes = TRUE; + break; + default: + hideHpBoxes = FALSE; + break; + } + } if (!IsContest()) { sub_80A8278(); - UpdateOamPriorityInAllHealthboxes(0); + UpdateOamPriorityInAllHealthboxes(0, hideHpBoxes); for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (GetBattlerSide(i) != B_SIDE_PLAYER) @@ -2225,8 +2247,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo for (i = 0; i < ANIM_ARGS_COUNT; i++) gBattleAnimArgs[i] = 0; - sMonAnimTaskIdArray[0] = 0xFF; - sMonAnimTaskIdArray[1] = 0xFF; + sMonAnimTaskIdArray[0] = TASK_NONE; + sMonAnimTaskIdArray[1] = TASK_NONE; sBattleAnimScriptPtr = animsTable[tableId]; gAnimScriptActive = TRUE; gAnimFramesToWait = 0; @@ -2470,7 +2492,7 @@ static void ScriptCmd_end(void) // Keep waiting as long as there are animations to be done. if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0 - || sMonAnimTaskIdArray[0] != 0xFF || sMonAnimTaskIdArray[1] != 0xFF) + || sMonAnimTaskIdArray[0] != TASK_NONE || sMonAnimTaskIdArray[1] != TASK_NONE) { sSoundAnimFramesToWait = 0; gAnimFramesToWait = 1; @@ -2511,7 +2533,7 @@ static void ScriptCmd_end(void) if (!IsContest()) { sub_80A8278(); - UpdateOamPriorityInAllHealthboxes(1); + UpdateOamPriorityInAllHealthboxes(1, TRUE); } gAnimScriptActive = FALSE; } @@ -2549,8 +2571,8 @@ static void sub_80A40F4(u8 taskId) newTaskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); gTasks[newTaskId].data[t2_BATTLER_SPRITE_ID] = battlerSpriteId; - gTasks[newTaskId].data[1] = gSprites[battlerSpriteId].pos1.x + gSprites[battlerSpriteId].pos2.x; - gTasks[newTaskId].data[2] = gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y; + gTasks[newTaskId].data[1] = gSprites[battlerSpriteId].x + gSprites[battlerSpriteId].x2; + gTasks[newTaskId].data[2] = gSprites[battlerSpriteId].y + gSprites[battlerSpriteId].y2; if (!selfData[t1_MON_IN_BG2]) { @@ -2676,7 +2698,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) RequestDma3Fill(0xFF, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 0); } - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); CpuFill16(0, animBg.bgTiles, 0x1000); CpuFill16(0xFF, animBg.bgTilemap, 0x800); @@ -2686,11 +2708,11 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) battlerSpriteId = gBattlerSpriteIds[battlerId]; - gBattle_BG1_X = -(gSprites[battlerSpriteId].pos1.x + gSprites[battlerSpriteId].pos2.x) + 0x20; + gBattle_BG1_X = -(gSprites[battlerSpriteId].x + gSprites[battlerSpriteId].x2) + 0x20; if (IsContest() && IsSpeciesNotUnown(gContestResources->moveAnim->species)) gBattle_BG1_X--; - gBattle_BG1_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; + gBattle_BG1_Y = -(gSprites[battlerSpriteId].y + gSprites[battlerSpriteId].y2) + 0x20; if (setSpriteInvisible) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; @@ -2714,7 +2736,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) { RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 1); - sub_80A6B90(&animBg, 2); + GetBattleAnimBgData(&animBg, 2); CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000); CpuFill16(0, animBg.bgTilemap + 0x400, 0x800); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); @@ -2723,8 +2745,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) battlerSpriteId = gBattlerSpriteIds[battlerId]; - gBattle_BG2_X = -(gSprites[battlerSpriteId].pos1.x + gSprites[battlerSpriteId].pos2.x) + 0x20; - gBattle_BG2_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; + gBattle_BG2_X = -(gSprites[battlerSpriteId].x + gSprites[battlerSpriteId].x2) + 0x20; + gBattle_BG2_Y = -(gSprites[battlerSpriteId].y + gSprites[battlerSpriteId].y2) + 0x20; if (setSpriteInvisible) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; @@ -2747,7 +2769,7 @@ static void sub_80A46A0(void) if (IsSpeciesNotUnown(gContestResources->moveAnim->species)) { - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); ptr = animBg.bgTilemap; for (i = 0; i < 8; i++) { @@ -2784,20 +2806,20 @@ void sub_80A4720(u16 a, u16 *b, u32 c, u8 d) } } -void sub_80A477C(bool8 to_BG2) +void ResetBattleAnimBg(bool8 toBG2) { struct BattleAnimBgData animBg; - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); - if (!to_BG2 || IsContest()) + if (!toBG2 || IsContest()) { - sub_80A6C68(1); + ClearBattleAnimBg(1); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; } else { - sub_80A6C68(2); + ClearBattleAnimBg(2); gBattle_BG2_X = 0; gBattle_BG2_Y = 0; } @@ -2811,9 +2833,9 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) spriteId = gTasks[taskId].data[0]; palIndex = gTasks[taskId].data[6]; - sub_80A6B30(&animBg); - x = gTasks[taskId].data[1] - (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x); - y = gTasks[taskId].data[2] - (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y); + GetBattleAnimBg1Data(&animBg); + x = gTasks[taskId].data[1] - (gSprites[spriteId].x + gSprites[spriteId].x2); + y = gTasks[taskId].data[2] - (gSprites[spriteId].y + gSprites[spriteId].y2); if (gTasks[taskId].data[5] == 0) { @@ -2858,9 +2880,9 @@ static void ScriptCmd_clearmonbg(void) else battlerId = gBattleAnimTarget; - if (sMonAnimTaskIdArray[0] != 0xFF) + if (sMonAnimTaskIdArray[0] != TASK_NONE) gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; - if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != 0xFF) + if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != TASK_NONE) gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else animBattlerId = 0; @@ -2884,17 +2906,17 @@ static void sub_80A4980(u8 taskId) else to_BG2 = TRUE; - if (sMonAnimTaskIdArray[0] != 0xFF) + if (sMonAnimTaskIdArray[0] != TASK_NONE) { - sub_80A477C(to_BG2); + ResetBattleAnimBg(to_BG2); DestroyTask(sMonAnimTaskIdArray[0]); - sMonAnimTaskIdArray[0] = 0xFF; + sMonAnimTaskIdArray[0] = TASK_NONE; } if (gTasks[taskId].data[0] > 1) { - sub_80A477C(to_BG2 ^ 1); + ResetBattleAnimBg(to_BG2 ^ 1); DestroyTask(sMonAnimTaskIdArray[1]); - sMonAnimTaskIdArray[1] = 0xFF; + sMonAnimTaskIdArray[1] = TASK_NONE; } DestroyTask(taskId); } @@ -2993,9 +3015,9 @@ static void sub_80A4BB0(u8 taskId) toBG_2 = TRUE; if (IsBattlerSpriteVisible(battlerId)) - sub_80A477C(toBG_2); + ResetBattleAnimBg(toBG_2); if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK)) - sub_80A477C(toBG_2 ^ 1); + ResetBattleAnimBg(toBG_2 ^ 1); DestroyTask(taskId); } @@ -3742,7 +3764,7 @@ static void ScriptCmd_invisible(void) u8 spriteId; spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].invisible = TRUE; sBattleAnimScriptPtr += 2; @@ -3753,7 +3775,7 @@ static void ScriptCmd_visible(void) u8 spriteId; spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].invisible = FALSE; sBattleAnimScriptPtr += 2; @@ -3780,16 +3802,16 @@ static void ScriptCmd_doublebattle_2D(void) r4 = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); } - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { gSprites[spriteId].invisible = FALSE; if (r4 == 2) gSprites[spriteId].oam.priority = 3; if (r4 == 1) - sub_80A477C(FALSE); + ResetBattleAnimBg(FALSE); else - sub_80A477C(TRUE); + ResetBattleAnimBg(TRUE); } } } @@ -3816,7 +3838,7 @@ static void ScriptCmd_doublebattle_2E(void) spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); } - if (spriteId != 0xFF && r4 == 2) + if (spriteId != SPRITE_NONE && r4 == 2) gSprites[spriteId].oam.priority = 2; } } diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c index 422c869344..fdfd0081e7 100644 --- a/src/battle_anim_bug.c +++ b/src/battle_anim_bug.c @@ -208,8 +208,8 @@ static void AnimMegahornHorn(struct Sprite *sprite) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; @@ -232,8 +232,8 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); @@ -257,8 +257,8 @@ static void AnimTranslateWebThread(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; if (!gBattleAnimArgs[4]) { @@ -270,7 +270,7 @@ static void AnimTranslateWebThread(struct Sprite *sprite) SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); } - sub_80A6FD4(sprite); + InitAnimLinearTranslationWithSpeed(sprite); sprite->data[5] = gBattleAnimArgs[3]; sprite->callback = AnimTranslateWebThread_Step; } @@ -283,22 +283,22 @@ static void AnimTranslateWebThread_Step(struct Sprite *sprite) return; } - sprite->pos2.x += Sin(sprite->data[6], sprite->data[5]); + sprite->x2 += Sin(sprite->data[6], sprite->data[5]); sprite->data[6] = (sprite->data[6] + 13) & 0xFF; } // Second stage of String Shot static void AnimStringWrap(struct Sprite *sprite) { - SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); if (GetBattlerSide(gBattleAnimAttacker)) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; if (!GetBattlerSide(gBattleAnimTarget)) - sprite->pos1.y += 8; + sprite->y += 8; sprite->callback = AnimStringWrap_Step; } @@ -326,14 +326,14 @@ void AnimSpiderWeb(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); if (gBattleAnimArgs[2]) - SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = 16; sprite->callback = AnimSpiderWeb_Step; } @@ -404,7 +404,7 @@ static void AnimTranslateStinger(struct Sprite *sprite) lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; - rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y); + rot = ArcTan2Neg(lVarX - sprite->x, lVarY - sprite->y); rot += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot); @@ -452,10 +452,10 @@ void AnimMissileArc_Step(struct Sprite *sprite) { s16 tempData[8]; u16 *data = sprite->data; - u16 x1 = sprite->pos1.x; - s16 x2 = sprite->pos2.x; - u16 y1 = sprite->pos1.y; - s16 y2 = sprite->pos2.y; + u16 x1 = sprite->x; + s16 x2 = sprite->x2; + u16 y1 = sprite->y; + s16 y2 = sprite->y2; int i; for (i = 0; i < 8; i++) @@ -466,8 +466,8 @@ void AnimMissileArc_Step(struct Sprite *sprite) if (!TranslateAnimHorizontalArc(sprite)) { - u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2, - sprite->pos1.y + sprite->pos2.y - y2); + u16 rotation = ArcTan2Neg(sprite->x + sprite->x2 - x2, + sprite->y + sprite->y2 - y2); rotation += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation); @@ -481,13 +481,13 @@ static void AnimTailGlowOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; } StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index 8f93438e84..90edc72b43 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -9,22 +9,22 @@ #include "util.h" #include "constants/rgb.h" -static void sub_81138D4(struct Sprite *); +static void AnimUnusedBagSteal(struct Sprite *); +static void AnimUnusedBagSteal_Step(struct Sprite *); static void AnimTask_AttackerFadeToInvisible_Step(u8); static void AnimTask_AttackerFadeFromInvisible_Step(u8); -static void sub_8113950(struct Sprite *); static void AnimBite_Step1(struct Sprite *); static void AnimBite_Step2(struct Sprite *); static void AnimTearDrop_Step(struct Sprite *); static void AnimTask_MoveAttackerMementoShadow_Step(u8); static void AnimTask_MoveTargetMementoShadow_Step(u8); -static void sub_8114244(struct Task *); -static void sub_8114374(u8); +static void DoMementoShadowEffect(struct Task *); +static void SetAllBattlersSpritePriority(u8); static void AnimPunishment(struct Sprite *sprite); static void AnimTask_MetallicShine_Step(u8); // Unused -const struct SpriteTemplate gUnknown_08596FC8 = +static const struct SpriteTemplate sUnusedBagStealSpriteTemplate = { .tileTag = ANIM_TAG_TIED_BAG, .paletteTag = ANIM_TAG_TIED_BAG, @@ -32,7 +32,7 @@ const struct SpriteTemplate gUnknown_08596FC8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81138D4, + .callback = AnimUnusedBagSteal, }; static const union AffineAnimCmd sAffineAnim_Bite_0[] = @@ -350,7 +350,7 @@ void AnimTask_InitAttackerFadeFromInvisible(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_81138D4(struct Sprite *sprite) +static void AnimUnusedBagSteal(struct Sprite *sprite) { sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -361,26 +361,26 @@ static void sub_81138D4(struct Sprite *sprite) sprite->data[3] = -sprite->data[1]; sprite->data[4] = -sprite->data[2]; sprite->data[6] = 0xFFD8; - sprite->callback = sub_8113950; + sprite->callback = AnimUnusedBagSteal_Step; sprite->callback(sprite); } -static void sub_8113950(struct Sprite *sprite) +static void AnimUnusedBagSteal_Step(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite->pos2.x = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; + sprite->x2 = sprite->data[3] >> 8; + sprite->y2 = sprite->data[4] >> 8; if (sprite->data[7] == 0) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite->pos2.x = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; + sprite->x2 = sprite->data[3] >> 8; + sprite->y2 = sprite->data[4] >> 8; sprite->data[0]--; } - sprite->pos2.y += Sin(sprite->data[5], sprite->data[6]); + sprite->y2 += Sin(sprite->data[5], sprite->data[6]); sprite->data[5] = (sprite->data[5] + 3) & 0xFF; if (sprite->data[5] > 0x7F) { @@ -396,8 +396,8 @@ static void sub_8113950(struct Sprite *sprite) // Move sprite inward for Bite/Crunch and Clamp void AnimBite(struct Sprite *sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[4]; @@ -409,8 +409,8 @@ static void AnimBite_Step1(struct Sprite *sprite) { sprite->data[4] += sprite->data[0]; sprite->data[5] += sprite->data[1]; - sprite->pos2.x = sprite->data[4] >> 8; - sprite->pos2.y = sprite->data[5] >> 8; + sprite->x2 = sprite->data[4] >> 8; + sprite->y2 = sprite->data[5] >> 8; if (++sprite->data[3] == sprite->data[2]) sprite->callback = AnimBite_Step2; } @@ -419,8 +419,8 @@ static void AnimBite_Step2(struct Sprite *sprite) { sprite->data[4] -= sprite->data[0]; sprite->data[5] -= sprite->data[1]; - sprite->pos2.x = sprite->data[4] >> 8; - sprite->pos2.y = sprite->data[5] >> 8; + sprite->x2 = sprite->data[4] >> 8; + sprite->y2 = sprite->data[5] >> 8; if (--sprite->data[3] == 0) DestroySpriteAndMatrix(sprite); } @@ -442,30 +442,30 @@ void AnimTearDrop(struct Sprite *sprite) switch (gBattleAnimArgs[1]) { case 0: - sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) - 8; - sprite->pos1.y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP) + 8; + sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) - 8; + sprite->y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP) + 8; break; case 1: - sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) - 14; - sprite->pos1.y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP) + 16; + sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) - 14; + sprite->y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP) + 16; break; case 2: - sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) + 8; - sprite->pos1.y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP) + 8; + sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) + 8; + sprite->y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP) + 8; StartSpriteAffineAnim(sprite, 1); xOffset = -20; break; case 3: - sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) + 14; - sprite->pos1.y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP) + 16; + sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) + 14; + sprite->y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP) + 16; StartSpriteAffineAnim(sprite, 1); xOffset = -20; break; } sprite->data[0] = 32; - sprite->data[2] = sprite->pos1.x + xOffset; - sprite->data[4] = sprite->pos1.y + 12; + sprite->data[2] = sprite->x + xOffset; + sprite->data[4] = sprite->y + 12; sprite->data[5] = -12; InitAnimArcTranslation(sprite); @@ -505,14 +505,14 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) task->data[3] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker); if (task->data[3] == 1) { - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); task->data[10] = gBattle_BG1_Y; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); FillPalette(0, animBg.paletteId * 16, 32); scanlineParams.dmaDest = ®_BG1VOFS; var0 = WINOUT_WIN01_BG1; if (!IsContest()) - gBattle_BG2_X += 240; + gBattle_BG2_X += DISPLAY_WIDTH; } else { @@ -522,7 +522,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) scanlineParams.dmaDest = ®_BG2VOFS; var0 = WINOUT_WIN01_BG2; if (!IsContest()) - gBattle_BG1_X += 240; + gBattle_BG1_X += DISPLAY_WIDTH; } scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; @@ -533,7 +533,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) task->data[0] = 0; task->data[1] = 0; task->data[2] = 0; - sub_8114374(3); + SetAllBattlersSpritePriority(3); for (i = 0; i < 112; i++) { gScanlineEffectRegBuffers[0][i] = task->data[10]; @@ -544,7 +544,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | (var0 ^ (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR))); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; - gBattle_WIN0V = 160; + gBattle_WIN0V = DISPLAY_HEIGHT; task->func = AnimTask_MoveAttackerMementoShadow_Step; } @@ -578,14 +578,14 @@ static void AnimTask_MoveAttackerMementoShadow_Step(u8 taskId) break; case 1: task->data[4] -= 8; - sub_8114244(task); + DoMementoShadowEffect(task); if (task->data[4] < task->data[8]) task->data[0]++; break; case 2: task->data[4] -= 8; - sub_8114244(task); + DoMementoShadowEffect(task); task->data[14] += 4; task->data[15] -= 4; @@ -632,12 +632,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) if (task->data[3] == 1) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); - gBattle_BG2_X += 240; + gBattle_BG2_X += DISPLAY_WIDTH; } else { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); - gBattle_BG1_X += 240; + gBattle_BG1_X += DISPLAY_WIDTH; } task->data[0]++; @@ -646,7 +646,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) case 1: if (task->data[3] == 1) { - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); task->data[10] = gBattle_BG1_Y; FillPalette(0, animBg.paletteId * 16, 32); } @@ -656,7 +656,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) FillPalette(0, 9 * 16, 32); } - sub_8114374(3); + SetAllBattlersSpritePriority(3); task->data[0]++; break; case 2: @@ -704,7 +704,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; - gBattle_WIN0V = 160; + gBattle_WIN0V = DISPLAY_HEIGHT; task->data[0] = 0; task->data[1] = 0; @@ -726,7 +726,7 @@ static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId) if (task->data[5] >= task->data[7]) task->data[5] = task->data[7]; - sub_8114244(task); + DoMementoShadowEffect(task); if (task->data[5] == task->data[7]) task->data[0]++; break; @@ -746,7 +746,7 @@ static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId) if (task->data[4] >= task->data[6]) task->data[4] = task->data[6]; - sub_8114244(task); + DoMementoShadowEffect(task); if (task->data[4] == task->data[6] && task->data[1]) { task->data[1] = 0; @@ -788,7 +788,7 @@ static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId) } } -static void sub_8114244(struct Task *task) +static void DoMementoShadowEffect(struct Task *task) { int var0, var1; s16 var2; @@ -839,14 +839,14 @@ static void sub_8114244(struct Task *task) } } -static void sub_8114374(u8 priority) +static void SetAllBattlersSpritePriority(u8 priority) { u16 i; for (i = 0; i < MAX_BATTLERS_COUNT; i++) { u8 spriteId = GetAnimBattlerSpriteId(i); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].oam.priority = priority; } } @@ -869,10 +869,10 @@ void AnimTask_InitMementoShadow(u8 taskId) void sub_8114470(u8 taskId) { u8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? 1 : 0; - sub_80A477C(toBG2); + ResetBattleAnimBg(toBG2); if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) - sub_80A477C(toBG2 ^ 1); + ResetBattleAnimBg(toBG2 ^ 1); DestroyAnimVisualTask(taskId); } @@ -880,8 +880,8 @@ void sub_8114470(u8 taskId) // Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw void AnimClawSlash(struct Sprite *sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->callback = RunStoredCallbackWhenAnimEnds; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -940,19 +940,19 @@ void AnimTask_MetallicShine(u8 taskId) } spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species); + newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap); AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset); LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32); - gBattle_BG1_X = -gSprites[spriteId].pos1.x + 96; - gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32; + gBattle_BG1_X = -gSprites[spriteId].x + 96; + gBattle_BG1_Y = -gSprites[spriteId].y + 32; paletteNum = 16 + gSprites[spriteId].oam.paletteNum; if (gBattleAnimArgs[1] == 0) - SetGreyscaleOrOriginalPalette(paletteNum, FALSE); + SetGrayscaleOrOriginalPalette(paletteNum, FALSE); else BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]); @@ -982,11 +982,11 @@ static void AnimTask_MetallicShine_Step(u8 taskId) spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); paletteNum = 16 + gSprites[spriteId].oam.paletteNum; if (gTasks[taskId].data[1] == 0) - SetGreyscaleOrOriginalPalette(paletteNum, TRUE); + SetGrayscaleOrOriginalPalette(paletteNum, TRUE); DestroySprite(&gSprites[gTasks[taskId].data[0]]); - sub_80A6B30(&animBg); - sub_80A6C68(animBg.bgId); + GetBattleAnimBg1Data(&animBg); + ClearBattleAnimBg(animBg.bgId); if (gTasks[taskId].data[6] == 1) gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++; } @@ -1007,10 +1007,10 @@ static void AnimTask_MetallicShine_Step(u8 taskId) } } -// Changes battler's palette to either greyscale or original. +// Changes battler's palette to either grayscale or original. // arg0: which battler // arg1: FALSE grayscale, TRUE original -void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) +void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId) { u8 spriteId; u8 battler; @@ -1042,7 +1042,7 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) calcSpriteId = TRUE; break; default: - spriteId = 0xFF; + spriteId = SPRITE_NONE; break; } @@ -1052,11 +1052,11 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) if (IsBattlerSpriteVisible(battler)) spriteId = gBattlerSpriteIds[battler]; else - spriteId = 0xFF; + spriteId = SPRITE_NONE; } - if (spriteId != 0xFF) - SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]); + if (spriteId != SPRITE_NONE) + SetGrayscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]); DestroyAnimVisualTask(taskId); } diff --git a/src/battle_anim_dragon.c b/src/battle_anim_dragon.c index 406902d71d..dba4e10f1d 100644 --- a/src/battle_anim_dragon.c +++ b/src/battle_anim_dragon.c @@ -9,14 +9,14 @@ static void AnimOutrageFlame(struct Sprite *); static void AnimDragonDanceOrb_Step(struct Sprite *); static void AnimOverheatFlame_Step(struct Sprite *); static void AnimTask_DragonDanceWaver_Step(u8); -static void sub_8113574(struct Task *); +static void UpdateDragonDanceScanlineEffect(struct Task *); static void AnimDragonRushStep(struct Sprite *sprite); static void AnimSpinningDracoMeteor(struct Sprite *sprite); static void AnimSpinningDracoMeteorFinish(struct Sprite *sprite); -EWRAM_DATA static u16 gUnknown_0203A100[7] = {0}; +EWRAM_DATA static u16 gUnusedOverheatData[7] = {0}; -static const union AnimCmd gUnknown_08596E60[] = +static const union AnimCmd sAnim_OutrageOverheatFire_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -26,9 +26,9 @@ static const union AnimCmd gUnknown_08596E60[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_08596E78[] = +static const union AnimCmd *const sAnims_OutrageOverheatFire[] = { - gUnknown_08596E60, + sAnim_OutrageOverheatFire_0, }; const struct SpriteTemplate gOutrageFlameSpriteTemplate = @@ -36,7 +36,7 @@ const struct SpriteTemplate gOutrageFlameSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596E78, + .anims = sAnims_OutrageOverheatFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimOutrageFlame, @@ -180,7 +180,7 @@ const struct SpriteTemplate gOverheatFlameSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08596E78, + .anims = sAnims_OutrageOverheatFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimOverheatFlame, @@ -288,8 +288,8 @@ static void AnimDragonRushStep(struct Sprite *sprite) sprite->data[1] &= 0xFF; } - sprite->pos2.x = Cos(sprite->data[1], 20); - sprite->pos2.y = Sin(sprite->data[1], 20); + sprite->x2 = Cos(sprite->data[1], 20); + sprite->y2 = Sin(sprite->data[1], 20); if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -318,20 +318,20 @@ static void AnimSpinningDracoMeteor(struct Sprite *sprite) static void AnimOutrageFlame(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; gBattleAnimArgs[4] = -gBattleAnimArgs[4]; } else { - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; } - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; @@ -341,22 +341,22 @@ static void AnimOutrageFlame(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -static void sub_8113100(struct Sprite *sprite) +static void StartDragonFireTranslation(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x -= gBattleAnimArgs[1]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[2] -= gBattleAnimArgs[2]; sprite->data[4] += gBattleAnimArgs[3]; } else { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[2] += gBattleAnimArgs[2]; sprite->data[4] += gBattleAnimArgs[3]; StartSpriteAnim(sprite, 1); @@ -371,17 +371,17 @@ void AnimDragonRageFirePlume(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[1]); - sprite->pos1.y += gBattleAnimArgs[2]; + sprite->y += gBattleAnimArgs[2]; sprite->callback = RunStoredCallbackWhenAnimEnds; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } @@ -392,15 +392,15 @@ void AnimDragonFireToTarget(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) StartSpriteAffineAnim(sprite, 1); - sub_8113100(sprite); + StartDragonFireTranslation(sprite); } void AnimDragonDanceOrb(struct Sprite *sprite) { u16 r5; u16 r0; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[4] = 0; sprite->data[5] = 1; sprite->data[6] = gBattleAnimArgs[0]; @@ -410,8 +410,8 @@ void AnimDragonDanceOrb(struct Sprite *sprite) sprite->data[7] = r5 / 2; else sprite->data[7] = r0 / 2; - sprite->pos2.x = Cos(sprite->data[6], sprite->data[7]); - sprite->pos2.y = Sin(sprite->data[6], sprite->data[7]); + sprite->x2 = Cos(sprite->data[6], sprite->data[7]); + sprite->y2 = Sin(sprite->data[6], sprite->data[7]); sprite->callback = AnimDragonDanceOrb_Step; } @@ -421,8 +421,8 @@ static void AnimDragonDanceOrb_Step(struct Sprite *sprite) { case 0: sprite->data[6] = (sprite->data[6] - sprite->data[5]) & 0xFF; - sprite->pos2.x = Cos(sprite->data[6], sprite->data[7]); - sprite->pos2.y = Sin(sprite->data[6], sprite->data[7]); + sprite->x2 = Cos(sprite->data[6], sprite->data[7]); + sprite->y2 = Sin(sprite->data[6], sprite->data[7]); if (++sprite->data[4] > 5) { sprite->data[4] = 0; @@ -439,8 +439,8 @@ static void AnimDragonDanceOrb_Step(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] - sprite->data[5]) & 0xFF; if (sprite->data[7] <= 0x95 && (sprite->data[7] += 8) > 0x95) sprite->data[7] = 0x96; - sprite->pos2.x = Cos(sprite->data[6], sprite->data[7]); - sprite->pos2.y = Sin(sprite->data[6], sprite->data[7]); + sprite->x2 = Cos(sprite->data[6], sprite->data[7]); + sprite->y2 = Sin(sprite->data[6], sprite->data[7]); if (++sprite->data[4] > 5) { sprite->data[4] = 0; @@ -457,27 +457,27 @@ static void AnimDragonDanceOrb_Step(struct Sprite *sprite) // Used by Dragon Dance void AnimTask_DragonDanceWaver(u8 taskId) { - struct ScanlineEffectParams sp; + struct ScanlineEffectParams scanlineParams; struct Task *task = &gTasks[taskId]; u16 i; - u8 r1; + u8 y; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) { - sp.dmaDest = ®_BG1HOFS; + scanlineParams.dmaDest = ®_BG1HOFS; task->data[2] = gBattle_BG1_X; } else { - sp.dmaDest = ®_BG2HOFS; + scanlineParams.dmaDest = ®_BG2HOFS; task->data[2] = gBattle_BG2_X; } - sp.dmaControl = 0xA2600001; - sp.initState = 1; - sp.unused9 = 0; - r1 = GetBattlerYCoordWithElevation(gBattleAnimAttacker); - task->data[3] = r1 - 32; - task->data[4] = r1 + 32; + scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + scanlineParams.initState = 1; + scanlineParams.unused9 = 0; + y = GetBattlerYCoordWithElevation(gBattleAnimAttacker); + task->data[3] = y - 32; + task->data[4] = y + 32; if (task->data[3] < 0) task->data[3] = 0; @@ -487,7 +487,7 @@ void AnimTask_DragonDanceWaver(u8 taskId) gScanlineEffectRegBuffers[1][i] = task->data[2]; } - ScanlineEffect_SetParams(sp); + ScanlineEffect_SetParams(scanlineParams); task->func = AnimTask_DragonDanceWaver_Step; } @@ -503,12 +503,12 @@ static void AnimTask_DragonDanceWaver_Step(u8 taskId) if (++task->data[6] == 3) task->data[0]++; } - sub_8113574(task); + UpdateDragonDanceScanlineEffect(task); break; case 1: if (++task->data[1] > 0x3C) task->data[0]++; - sub_8113574(task); + UpdateDragonDanceScanlineEffect(task); break; case 2: if (++task->data[7] > 1) @@ -517,7 +517,7 @@ static void AnimTask_DragonDanceWaver_Step(u8 taskId) if (--task->data[6] == 0) task->data[0]++; } - sub_8113574(task); + UpdateDragonDanceScanlineEffect(task); break; case 3: gScanlineEffect.state = 3; @@ -529,14 +529,14 @@ static void AnimTask_DragonDanceWaver_Step(u8 taskId) } } -static void sub_8113574(struct Task *task) +static void UpdateDragonDanceScanlineEffect(struct Task *task) { - u16 r3 = task->data[5]; + u16 sineIndex = task->data[5]; u16 i; for (i = task->data[3]; i <= task->data[4]; i++) { - gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = ((gSineTable[r3] * task->data[6]) >> 7) + task->data[2]; - r3 = (r3 + 8) & 0xFF; + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = ((gSineTable[sineIndex] * task->data[6]) >> 7) + task->data[2]; + sineIndex = (sineIndex + 8) & 0xFF; } task->data[5] = (task->data[5] + 9) & 0xFF; @@ -544,26 +544,26 @@ static void sub_8113574(struct Task *task) void AnimOverheatFlame(struct Sprite *sprite) { - int r6 = (gBattleAnimArgs[2] * 3) / 5; int i; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[4]; + int yAmplitude = (gBattleAnimArgs[2] * 3) / 5; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[4]; sprite->data[1] = Cos(gBattleAnimArgs[1], gBattleAnimArgs[2]); - sprite->data[2] = Sin(gBattleAnimArgs[1], r6); - sprite->pos1.x += sprite->data[1] * gBattleAnimArgs[0]; - sprite->pos1.y += sprite->data[2] * gBattleAnimArgs[0]; + sprite->data[2] = Sin(gBattleAnimArgs[1], yAmplitude); + sprite->x += sprite->data[1] * gBattleAnimArgs[0]; + sprite->y += sprite->data[2] * gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[3]; sprite->callback = AnimOverheatFlame_Step; for (i = 0; i < 7; i++) - gUnknown_0203A100[i] = sprite->data[i]; + gUnusedOverheatData[i] = sprite->data[i]; } static void AnimOverheatFlame_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; sprite->data[5] += sprite->data[2]; - sprite->pos2.x = sprite->data[4] / 10; - sprite->pos2.y = sprite->data[5] / 10; + sprite->x2 = sprite->data[4] / 10; + sprite->y2 = sprite->data[5] / 10; if (++sprite->data[0] > sprite->data[3]) DestroyAnimSprite(sprite); } diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 6b528c71e7..24b873ac7a 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -17,7 +17,12 @@ #include "constants/songs.h" #include "constants/moves.h" -EWRAM_DATA s16 gUnknown_0203A0F8[4] = {0}; +struct { + s16 startX; + s16 startY; + s16 targetX; + s16 targetY; +} static EWRAM_DATA sFrenzyPlantRootData = {0}; // Debug? Written to but never read. static void AnimMovePowderParticle_Step(struct Sprite *); static void AnimSolarbeamSmallOrb(struct Sprite *); @@ -54,21 +59,21 @@ static void AnimTrickBag_Step2(struct Sprite *); static void AnimTrickBag_Step3(struct Sprite *); static void AnimFlyingParticle(struct Sprite *); static void AnimFlyingParticle_Step(struct Sprite *); -static void sub_81009F8(struct Sprite *); +static void AnimSlidingHit(struct Sprite *); static void AnimWhipHit(struct Sprite *); -static void sub_8100A94(struct Sprite *); +static void AnimFlickeringPunch(struct Sprite *); static void AnimAirCutterSlice(struct Sprite *); static void AnimSlice_Step(struct Sprite *); -static void sub_8100E1C(struct Sprite *); -static void sub_8100E80(struct Sprite *); +static void AnimCirclingMusicNote(struct Sprite *); +static void AnimCirclingMusicNote_Step(struct Sprite *); static void AnimProtect(struct Sprite *); static void AnimProtect_Step(struct Sprite *); static void AnimMilkBottle(struct Sprite *); static void AnimMilkBottle_Step1(struct Sprite *); static void AnimMilkBottle_Step2(struct Sprite *, int, int); static void AnimSparkingStars(struct Sprite *); -static void sub_8101440(struct Sprite *); -static void sub_81014A0(struct Sprite *); +static void AnimBubbleBurst(struct Sprite *); +static void AnimBubbleBurst_Step(struct Sprite *); static void AnimSleepLetterZ(struct Sprite *); static void AnimSleepLetterZ_Step(struct Sprite *); static void AnimLockOnTarget(struct Sprite *); @@ -86,8 +91,8 @@ static void AnimBowMon_Step2(struct Sprite *); static void AnimBowMon_Step3(struct Sprite *); static void AnimBowMon_Step4(struct Sprite *); static void AnimBowMon_Step3_Callback(struct Sprite *); -static void sub_8101B90(struct Sprite *); -static void sub_8101BA0(struct Sprite *); +static void AnimTipMon(struct Sprite *); +static void AnimTipMon_Step(struct Sprite *); static void AnimSlashSlice(struct Sprite *); static void AnimFalseSwipeSlice(struct Sprite *); static void AnimFalseSwipeSlice_Step1(struct Sprite *); @@ -851,7 +856,7 @@ const struct SpriteTemplate gSwiftStarSpriteTemplate = .callback = AnimTranslateLinearSingleSineWave, }; -const union AnimCmd gConstrictBindingAnimCmds1[] = +static const union AnimCmd sAnim_ConstrictBinding[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(32, 4), @@ -860,7 +865,7 @@ const union AnimCmd gConstrictBindingAnimCmds1[] = ANIMCMD_END, }; -const union AnimCmd gConstrictBindingAnimCmds2[] = +static const union AnimCmd sAnim_ConstrictBinding_Flipped[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(32, 4, .hFlip = TRUE), @@ -869,29 +874,29 @@ const union AnimCmd gConstrictBindingAnimCmds2[] = ANIMCMD_END, }; -const union AnimCmd *const gConstrictBindingAnimTable[] = +static const union AnimCmd *const sAnims_ConstrictBinding[] = { - gConstrictBindingAnimCmds1, - gConstrictBindingAnimCmds2, + sAnim_ConstrictBinding, + sAnim_ConstrictBinding_Flipped, }; -const union AffineAnimCmd gConstrictBindingAffineAnimCmds1[] = { +static const union AffineAnimCmd sAffineAnim_ConstrictBinding[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-11, 0, 0, 6), AFFINEANIMCMD_FRAME(11, 0, 0, 6), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gConstrictBindingAffineAnimCmds2[] = { +static const union AffineAnimCmd sAffineAnim_ConstrictBinding_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(11, 0, 0, 6), AFFINEANIMCMD_FRAME(-11, 0, 0, 6), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gConstrictBindingAffineAnimTable[] = { - gConstrictBindingAffineAnimCmds1, - gConstrictBindingAffineAnimCmds2, +static const union AffineAnimCmd *const sAffineAnims_ConstrictBinding[] = { + sAffineAnim_ConstrictBinding, + sAffineAnim_ConstrictBinding_Flipped, }; const struct SpriteTemplate gConstrictBindingSpriteTemplate = @@ -899,9 +904,9 @@ const struct SpriteTemplate gConstrictBindingSpriteTemplate = .tileTag = ANIM_TAG_TENDRILS, .paletteTag = ANIM_TAG_TENDRILS, .oam = &gOamData_AffineNormal_ObjNormal_64x32, - .anims = gConstrictBindingAnimTable, + .anims = sAnims_ConstrictBinding, .images = NULL, - .affineAnims = gConstrictBindingAffineAnimTable, + .affineAnims = sAffineAnims_ConstrictBinding, .callback = AnimConstrictBinding, }; @@ -1340,7 +1345,7 @@ const struct SpriteTemplate gNeedleArmSpikeSpriteTemplate = .callback = AnimNeedleArmSpike, }; -const union AnimCmd gWhipAnimCmds1[] = +static const union AnimCmd sAnim_Whip[] = { ANIMCMD_FRAME(64, 3), ANIMCMD_FRAME(80, 3), @@ -1349,7 +1354,7 @@ const union AnimCmd gWhipAnimCmds1[] = ANIMCMD_END, }; -const union AnimCmd gWhipAnimCmds2[] = +static const union AnimCmd sAnim_Whip_Flipped[] = { ANIMCMD_FRAME(64, 3, .hFlip = TRUE), ANIMCMD_FRAME(80, 3, .hFlip = TRUE), @@ -1358,10 +1363,10 @@ const union AnimCmd gWhipAnimCmds2[] = ANIMCMD_END, }; -const union AnimCmd *const gWhipAnimTable[] = +static const union AnimCmd *const sAnims_Whip[] = { - gWhipAnimCmds1, - gWhipAnimCmds2, + sAnim_Whip, + sAnim_Whip_Flipped, }; const struct SpriteTemplate gSlamHitSpriteTemplate = @@ -1369,7 +1374,7 @@ const struct SpriteTemplate gSlamHitSpriteTemplate = .tileTag = ANIM_TAG_SLAM_HIT, .paletteTag = ANIM_TAG_SLAM_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gWhipAnimTable, + .anims = sAnims_Whip, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWhipHit, @@ -1380,13 +1385,13 @@ const struct SpriteTemplate gVineWhipSpriteTemplate = .tileTag = ANIM_TAG_WHIP_HIT, .paletteTag = ANIM_TAG_WHIP_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gWhipAnimTable, + .anims = sAnims_Whip, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWhipHit, }; -const union AnimCmd gUnknown_08592900[] = +static const union AnimCmd sAnim_SlidingHit[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -1396,96 +1401,96 @@ const union AnimCmd gUnknown_08592900[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08592918[] = +static const union AnimCmd *const sAnims_SlidingHit[] = { - gUnknown_08592900, + sAnim_SlidingHit, }; // Unused -const struct SpriteTemplate gUnknown_0859291C = +static const struct SpriteTemplate sSlidingHit1SpriteTemplate = { .tileTag = ANIM_TAG_HIT, .paletteTag = ANIM_TAG_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08592918, + .anims = sAnims_SlidingHit, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81009F8, + .callback = AnimSlidingHit, }; // Unused -const struct SpriteTemplate gUnknown_08592934 = +static const struct SpriteTemplate sSlidingHit2SpriteTemplate = { .tileTag = ANIM_TAG_HIT_2, .paletteTag = ANIM_TAG_HIT_2, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08592918, + .anims = sAnims_SlidingHit, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81009F8, + .callback = AnimSlidingHit, }; -const union AffineAnimCmd gUnknown_0859294C[] = { +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_Normal[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0859295C[] = { +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedTopLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 32, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0859296C[] = { +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 64, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0859297C[] = { +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedBottomLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 96, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0859298C[] = { +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_UpsideDown[] = { AFFINEANIMCMD_FRAME(256, 256, -128, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0859299C[] = { +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedBottomRight[] = { AFFINEANIMCMD_FRAME(256, 256, -96, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085929AC[] = { +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedRight[] = { AFFINEANIMCMD_FRAME(256, 256, -64, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_085929BC[] = { +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedTopRight[] = { AFFINEANIMCMD_FRAME(256, 256, -32, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_085929CC[] = { - gUnknown_0859294C, - gUnknown_0859295C, - gUnknown_0859296C, - gUnknown_0859297C, - gUnknown_0859298C, - gUnknown_0859299C, - gUnknown_085929AC, - gUnknown_085929BC, +static const union AffineAnimCmd *const sAffineAnims_FlickeringPunch[] = { + sAffineAnim_FlickeringPunch_Normal, + sAffineAnim_FlickeringPunch_TurnedTopLeft, + sAffineAnim_FlickeringPunch_TurnedLeft, + sAffineAnim_FlickeringPunch_TurnedBottomLeft, + sAffineAnim_FlickeringPunch_UpsideDown, + sAffineAnim_FlickeringPunch_TurnedBottomRight, + sAffineAnim_FlickeringPunch_TurnedRight, + sAffineAnim_FlickeringPunch_TurnedTopRight, }; // Unused -const struct SpriteTemplate gUnknown_085929EC = +static const struct SpriteTemplate sFlickeringPunchSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085929CC, - .callback = sub_8100A94, + .affineAnims = sAffineAnims_FlickeringPunch, + .callback = AnimFlickeringPunch, }; const union AnimCmd gCuttingSliceAnimCmds[] = @@ -1524,90 +1529,90 @@ const struct SpriteTemplate gAirCutterSliceSpriteTemplate = .callback = AnimAirCutterSlice, }; -const union AnimCmd gUnknown_08592A4C[] = +static const union AnimCmd sAnim_CirclingMusicNote_Eighth[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A54[] = +static const union AnimCmd sAnim_CirclingMusicNote_BeamedEighth[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A5C[] = +static const union AnimCmd sAnim_CirclingMusicNote_SlantedBeamedEighth[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A64[] = +static const union AnimCmd sAnim_CirclingMusicNote_Quarter[] = { ANIMCMD_FRAME(12, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A6C[] = +static const union AnimCmd sAnim_CirclingMusicNote_QuarterRest[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A74[] = +static const union AnimCmd sAnim_CirclingMusicNote_EighthRest[] = { ANIMCMD_FRAME(20, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A7C[] = +static const union AnimCmd sAnim_CirclingMusicNote_Eighth_Flipped[] = { ANIMCMD_FRAME(0, 1, .vFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A84[] = +static const union AnimCmd sAnim_CirclingMusicNote_BeamedEighth_Flipped[] = { ANIMCMD_FRAME(4, 1, .vFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A8C[] = +static const union AnimCmd sAnim_CirclingMusicNote_SlantedBeamedEighth_Flipped[] = { ANIMCMD_FRAME(8, 1, .vFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gUnknown_08592A94[] = +static const union AnimCmd sAnim_CirclingMusicNote_Quarter_Flipped[] = { ANIMCMD_FRAME(12, 1, .vFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08592A9C[] = +static const union AnimCmd *const sAnims_CirclingMusicNote[] = { - gUnknown_08592A4C, - gUnknown_08592A54, - gUnknown_08592A5C, - gUnknown_08592A64, - gUnknown_08592A6C, - gUnknown_08592A74, - gUnknown_08592A7C, - gUnknown_08592A84, - gUnknown_08592A8C, - gUnknown_08592A94, + sAnim_CirclingMusicNote_Eighth, + sAnim_CirclingMusicNote_BeamedEighth, + sAnim_CirclingMusicNote_SlantedBeamedEighth, + sAnim_CirclingMusicNote_Quarter, + sAnim_CirclingMusicNote_QuarterRest, + sAnim_CirclingMusicNote_EighthRest, + sAnim_CirclingMusicNote_Eighth_Flipped, + sAnim_CirclingMusicNote_BeamedEighth_Flipped, + sAnim_CirclingMusicNote_SlantedBeamedEighth_Flipped, + sAnim_CirclingMusicNote_Quarter_Flipped, }; // Unused -const struct SpriteTemplate gUnknown_08592AC4 = +static const struct SpriteTemplate sCirclingMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_08592A9C, + .anims = sAnims_CirclingMusicNote, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100E1C, + .callback = AnimCirclingMusicNote, }; const struct SpriteTemplate gProtectSpriteTemplate = @@ -1694,7 +1699,7 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate = .callback = AnimSparkingStars, }; -const union AnimCmd gUnknown_08592BAC[] = +static const union AnimCmd sAnim_BubbleBurst[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), @@ -1707,7 +1712,7 @@ const union AnimCmd gUnknown_08592BAC[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08592BD0[] = +static const union AnimCmd sAnim_BubbleBurst_Flipped[] = { ANIMCMD_FRAME(0, 10, .hFlip = TRUE), ANIMCMD_FRAME(4, 10, .hFlip = TRUE), @@ -1720,22 +1725,22 @@ const union AnimCmd gUnknown_08592BD0[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08592BF4[] = +static const union AnimCmd *const sAnims_BubbleBurst[] = { - gUnknown_08592BAC, - gUnknown_08592BD0, + sAnim_BubbleBurst, + sAnim_BubbleBurst_Flipped, }; // Unused -const struct SpriteTemplate gUnknown_08592BFC = +static const struct SpriteTemplate sBubbleBurstSpriteTemplate = { .tileTag = ANIM_TAG_BUBBLE_BURST, .paletteTag = ANIM_TAG_BUBBLE_BURST, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_08592BF4, + .anims = sAnims_BubbleBurst, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101440, + .callback = AnimBubbleBurst, }; const union AnimCmd gSleepLetterZAnimCmds[] = @@ -1836,7 +1841,8 @@ const struct SpriteTemplate gBowMonSpriteTemplate = }; // Unused -const struct SpriteTemplate gUnknown_08592CF0 = +// Same as BowMon above but without backing up +static const struct SpriteTemplate sTipMonSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -1844,7 +1850,7 @@ const struct SpriteTemplate gUnknown_08592CF0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101B90, + .callback = AnimTipMon, }; const union AnimCmd gSlashSliceAnimCmds1[] = @@ -2923,10 +2929,10 @@ static void AnimGrassKnot(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y; InitAnimLinearTranslation(sprite); @@ -2941,7 +2947,7 @@ static void AnimGrassKnotStep(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { - sprite->pos2.y += Sin(sprite->data[7] >> 8, sprite->data[5]); + sprite->y2 += Sin(sprite->data[7] >> 8, sprite->data[5]); sprite->data[7] += sprite->data[6]; } else @@ -2964,17 +2970,17 @@ static void AnimWoodHammerSmall(struct Sprite *sprite) AnimateSprite(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[3]; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y + gBattleAnimArgs[3]; InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = 0; @@ -2994,8 +3000,8 @@ static void AnimWoodHammerSmall(struct Sprite *sprite) // arg 5: wave speed void AnimMovePowderParticle(struct Sprite* sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; @@ -3017,9 +3023,9 @@ static void AnimMovePowderParticle_Step(struct Sprite* sprite) if (sprite->data[0] > 0) { sprite->data[0]--; - sprite->pos2.y = sprite->data[2] >> 8; + sprite->y2 = sprite->data[2] >> 8; sprite->data[2] += sprite->data[1]; - sprite->pos2.x = Sin(sprite->data[5], sprite->data[3]); + sprite->x2 = Sin(sprite->data[5], sprite->data[3]); sprite->data[5] = (sprite->data[5] + sprite->data[4]) & 0xFF; } else @@ -3067,7 +3073,7 @@ void AnimSolarbeamBigOrb(struct Sprite* sprite) static void AnimSolarbeamSmallOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gAnimMoveIndex == MOVE_CORE_ENFORCER) { CoreEnforcerLoadBeamTarget(sprite); @@ -3075,12 +3081,12 @@ static void AnimSolarbeamSmallOrb(struct Sprite* sprite) else { sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } - + InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; sprite->callback = AnimSolarbeamSmallOrb_Step; @@ -3100,8 +3106,8 @@ static void AnimSolarbeamSmallOrb_Step(struct Sprite* sprite) else sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + 6; - sprite->pos2.x += Sin(sprite->data[5], 5); - sprite->pos2.y += Cos(sprite->data[5], 14); + sprite->x2 += Sin(sprite->data[5], 5); + sprite->y2 += Cos(sprite->data[5], 14); sprite->data[5] = (sprite->data[5] + 15) & 0xFF; } } @@ -3156,18 +3162,18 @@ void AnimHyperBeamOrb(struct Sprite* sprite) u16 animNum = Random2(); StartSpriteAnim(sprite, animNum % 8); - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= 20; + sprite->x -= 20; else - sprite->pos1.x += 20; + sprite->x += 20; speed = Random2(); sprite->data[0] = (speed & 31) + 64; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimFastLinearTranslationWithSpeed(sprite); sprite->data[5] = Random2() & 0xFF; @@ -3184,7 +3190,7 @@ static void AnimHyperBeamOrb_Step(struct Sprite* sprite) } else { - sprite->pos2.y += Cos(sprite->data[5], 12); + sprite->y2 += Cos(sprite->data[5], 12); if (sprite->data[5] < 0x7F) sprite->subpriority = sprite->data[6]; else @@ -3219,8 +3225,8 @@ static void AnimMoveWorrySeed(struct Sprite* sprite) static void AnimMoveSmallCloudAnimate(struct Sprite* sprite) { - sprite->pos2.x += sprite->data[0]; - sprite->pos2.y += sprite->data[1]; + sprite->x2 += sprite->data[0]; + sprite->y2 += sprite->data[1]; if(sprite->affineAnimEnded) { @@ -3251,8 +3257,8 @@ static void AnimPluckParticle(struct Sprite* sprite) { s16 yVelocity = sprite->data[5]; s16 xVelocity = sprite->data[2]; - sprite->pos1.y -= yVelocity; - sprite->pos1.x += xVelocity; + sprite->y -= yVelocity; + sprite->x += xVelocity; if((sprite->data[0] % 7) == 0) { sprite->data[5] = yVelocity-1; @@ -3279,8 +3285,8 @@ static void AnimPluck(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[2]; //lifetime of the particle sprite->data[5] = gBattleAnimArgs[3]; //upward velocity sprite->data[2] = gBattleAnimArgs[4]; //horizontal velocity - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->callback = AnimPluckParticle; } @@ -3292,14 +3298,14 @@ static void AnimMoveFeintSwipeStep(struct Sprite* sprite) if(AnimTranslateLinear(sprite)) { //Not the most elegant solution here, but it works without messing up the sprites coordinates - sprite->pos2.x = 0; - sprite->pos1.x += 64; + sprite->x2 = 0; + sprite->x += 64; sprite->data[5]++; sprite->data[0] = sprite->data[6]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x - 64; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x - 64; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y; InitAnimLinearTranslation(sprite); } break; @@ -3322,10 +3328,10 @@ static void AnimMoveFeintSwipe(struct Sprite* sprite) InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[6] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x + 64; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x + 64; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y; sprite->data[5] = 0; InitAnimLinearTranslation(sprite); sprite->callback = AnimMoveFeintSwipeStep; @@ -3346,7 +3352,7 @@ static void AnimMoveTrumpCardArc(struct Sprite* sprite) } else { - sprite->pos2.y = Sin(sprite->data[5], -20); + sprite->y2 = Sin(sprite->data[5], -20); sprite->data[5] -= sprite->data[6]; } @@ -3361,10 +3367,10 @@ static void AnimMoveTrumpCard(struct Sprite* sprite) InitSpritePosToAnimTarget(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x - 80; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x - 80; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y; sprite->data[5] = 128; sprite->data[6] = 128 / sprite->data[0]; InitAnimLinearTranslation(sprite); @@ -3377,8 +3383,8 @@ static void AnimMoveTrumpCardParticleAlive(struct Sprite* sprite) { s16 yVelocity = sprite->data[2]; s16 xVelocity = sprite->data[1]; - sprite->pos1.y -= yVelocity; - sprite->pos1.x += xVelocity; + sprite->y -= yVelocity; + sprite->x += xVelocity; if((sprite->data[0] % 2) == 0) { if(xVelocity > 0) @@ -3440,9 +3446,9 @@ static void AnimMoveAccupressure(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); sprite->data[5] = 0; InitAnimLinearTranslation(sprite); @@ -3451,8 +3457,8 @@ static void AnimMoveAccupressure(struct Sprite* sprite) static void AnimMoveWringOutCircle(struct Sprite* sprite) { - sprite->pos2.x = Cos(sprite->data[3], sprite->data[2]); - sprite->pos2.y = Sin(sprite->data[3], sprite->data[2]); + sprite->x2 = Cos(sprite->data[3], sprite->data[2]); + sprite->y2 = Sin(sprite->data[3], sprite->data[2]); if(sprite->data[1] > 0) { if(sprite->data[3] + sprite->data[0] >= 256) @@ -3556,8 +3562,8 @@ void AnimSporeParticle(struct Sprite* sprite) static void AnimSporeParticle_Step(struct Sprite* sprite) { - sprite->pos2.x = Sin(sprite->data[1], 32); - sprite->pos2.y = Cos(sprite->data[1], -3) + ((sprite->data[2] += 24) >> 8); + sprite->x2 = Sin(sprite->data[1], 32); + sprite->y2 = Cos(sprite->data[1], -3) + ((sprite->data[2] += 24) >> 8); if ((u16)(sprite->data[1] - 0x40) < 0x80) { sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget); @@ -3607,9 +3613,9 @@ void AnimPetalDanceBigFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; @@ -3621,8 +3627,8 @@ static void AnimPetalDanceBigFlower_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { - sprite->pos2.x += Sin(sprite->data[5], 32); - sprite->pos2.y += Cos(sprite->data[5], -5); + sprite->x2 += Sin(sprite->data[5], 32); + sprite->y2 += Cos(sprite->data[5], -5); if ((u16)(sprite->data[5] - 0x40) < 0x80) sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; else @@ -3645,9 +3651,9 @@ void AnimPetalDanceSmallFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; @@ -3659,7 +3665,7 @@ static void AnimPetalDanceSmallFlower_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { - sprite->pos2.x += Sin(sprite->data[5], 8); + sprite->x2 += Sin(sprite->data[5], 8); if ((u16)(sprite->data[5] - 59) < 5 || (u16)(sprite->data[5] - 187) < 5) sprite->oam.matrixNum ^= ST_OAM_HFLIP; @@ -3678,8 +3684,8 @@ static void AnimPetalDanceSmallFlower_Step(struct Sprite* sprite) // arg 2: upward duration static void AnimRazorLeafParticle(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; @@ -3707,23 +3713,23 @@ static void AnimRazorLeafParticle_Step1(struct Sprite* sprite) else { sprite->data[2]--; - sprite->pos1.x += sprite->data[0]; - sprite->pos1.y += sprite->data[1]; + sprite->x += sprite->data[0]; + sprite->y += sprite->data[1]; } } static void AnimRazorLeafParticle_Step2(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker)) - sprite->pos2.x = -Sin(sprite->data[0], 25); + sprite->x2 = -Sin(sprite->data[0], 25); else - sprite->pos2.x = Sin(sprite->data[0], 25); + sprite->x2 = Sin(sprite->data[0], 25); sprite->data[0] += 2; sprite->data[0] &= 0xFF; sprite->data[1]++; if (!(sprite->data[1] & 1)) - sprite->pos2.y++; + sprite->y2++; if (sprite->data[1] > 80) DestroyAnimSprite(sprite); @@ -3790,10 +3796,10 @@ static void AnimTranslateLinearSingleSineWave_Step(struct Sprite* sprite) destroy = TRUE; } - if (sprite->pos1.x + sprite->pos2.x > 256 - || sprite->pos1.x + sprite->pos2.x < -16 - || sprite->pos1.y + sprite->pos2.y > 160 - || sprite->pos1.y + sprite->pos2.y < -16) + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT + || sprite->y + sprite->y2 < -16) destroy = TRUE; if (destroy) @@ -3809,9 +3815,9 @@ static void AnimTranslateLinearSingleSineWave_Step(struct Sprite* sprite) void AnimMoveTwisterParticle(struct Sprite* sprite) { if (IsDoubleBattle() == TRUE) - SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->x, &sprite->y); - sprite->pos1.y += 32; + sprite->y += 32; sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; @@ -3824,11 +3830,11 @@ static void AnimMoveTwisterParticle_Step(struct Sprite* sprite) { if (sprite->data[1] == 0xFF) { - sprite->pos1.y -= 2; + sprite->y -= 2; } else if (sprite->data[1] > 0) { - sprite->pos1.y -= 2; + sprite->y -= 2; sprite->data[1] -= 2; } @@ -3837,8 +3843,8 @@ static void AnimMoveTwisterParticle_Step(struct Sprite* sprite) sprite->data[5] += sprite->data[2]; sprite->data[5] &= 0xFF; - sprite->pos2.x = Cos(sprite->data[5], sprite->data[3]); - sprite->pos2.y = Sin(sprite->data[5], 5); + sprite->x2 = Cos(sprite->data[5], sprite->data[3]); + sprite->y2 = Sin(sprite->data[5], 5); if (sprite->data[5] < 0x80) sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget) - 1; else @@ -3925,9 +3931,9 @@ static void AnimTask_DuplicateAndShrinkToPos_Step1(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); gTasks[taskId].data[10] += gTasks[taskId].data[0]; - gSprites[spriteId].pos2.x = gTasks[taskId].data[10] >> 8; + gSprites[spriteId].x2 = gTasks[taskId].data[10] >> 8; if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) - gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x; + gSprites[spriteId].x2 = -gSprites[spriteId].x2; gTasks[taskId].data[11] += 16; SetSpriteRotScale(spriteId, gTasks[taskId].data[11], gTasks[taskId].data[11], 0); @@ -3947,8 +3953,8 @@ static void AnimTask_DuplicateAndShrinkToPos_Step2(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); ResetSpriteRotScale(spriteId); - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; gSprites[spriteId].oam.priority = gTasks[taskId].data[14]; spriteId = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER); gSprites[spriteId].oam.priority = gTasks[taskId].data[15]; @@ -3978,8 +3984,8 @@ void AnimMimicOrb(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) gBattleAnimArgs[0] *= -1; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[1]; sprite->invisible = TRUE; sprite->data[0]++; break; @@ -4008,16 +4014,16 @@ static void AnimIngrainRoot(struct Sprite* sprite) { if (!sprite->data[0]) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); - sprite->pos2.x = gBattleAnimArgs[0]; - sprite->pos2.y = gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); + sprite->x2 = gBattleAnimArgs[0]; + sprite->y2 = gBattleAnimArgs[1]; sprite->subpriority = gBattleAnimArgs[2] + 30; StartSpriteAnim(sprite, gBattleAnimArgs[3]); sprite->data[2] = gBattleAnimArgs[4]; sprite->data[0]++; - if (sprite->pos1.y + sprite->pos2.y > 120) - sprite->pos1.y += sprite->pos2.y + sprite->pos1.y - 120; + if (sprite->y + sprite->y2 > 120) + sprite->y += sprite->y2 + sprite->y - 120; } sprite->callback = AnimRootFlickerOut; } @@ -4038,18 +4044,18 @@ static void AnimFrenzyPlantRoot(struct Sprite *sprite) targetX -= attackerX; targetY -= attackerY; - sprite->pos1.x = attackerX + targetX * gBattleAnimArgs[0] / 100; - sprite->pos1.y = attackerY + targetY * gBattleAnimArgs[0] / 100; - sprite->pos2.x = gBattleAnimArgs[1]; - sprite->pos2.y = gBattleAnimArgs[2]; + sprite->x = attackerX + targetX * gBattleAnimArgs[0] / 100; + sprite->y = attackerY + targetY * gBattleAnimArgs[0] / 100; + sprite->x2 = gBattleAnimArgs[1]; + sprite->y2 = gBattleAnimArgs[2]; sprite->subpriority = gBattleAnimArgs[3] + 30; StartSpriteAnim(sprite, gBattleAnimArgs[4]); sprite->data[2] = gBattleAnimArgs[5]; sprite->callback = AnimRootFlickerOut; - gUnknown_0203A0F8[0] = sprite->pos1.x; - gUnknown_0203A0F8[1] = sprite->pos1.y; - gUnknown_0203A0F8[2] = targetX; - gUnknown_0203A0F8[3] = targetY; + sFrenzyPlantRootData.startX = sprite->x; + sFrenzyPlantRootData.startY = sprite->y; + sFrenzyPlantRootData.targetX = targetX; + sFrenzyPlantRootData.targetY = targetY; } static void AnimRootFlickerOut(struct Sprite* sprite) @@ -4071,23 +4077,23 @@ static void AnimIngrainOrb(struct Sprite* sprite) { if (!sprite->data[0]) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[2]; sprite->data[2] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; } sprite->data[0]++; - sprite->pos2.x = sprite->data[1] * sprite->data[0]; - sprite->pos2.y = Sin((sprite->data[0] * 20) & 0xFF, sprite->data[2]); + sprite->x2 = sprite->data[1] * sprite->data[0]; + sprite->y2 = Sin((sprite->data[0] * 20) & 0xFF, sprite->data[2]); if (sprite->data[0] > sprite->data[3]) DestroyAnimSprite(sprite); } -static void sub_80FF9B8(struct Sprite* sprite, s16 c) +static void InitItemBagData(struct Sprite* sprite, s16 c) { - int a = (sprite->pos1.x << 8) | sprite->pos1.y; + int a = (sprite->x << 8) | sprite->y; int b = (sprite->data[6] << 8) | sprite->data[7]; c <<= 8; sprite->data[5] = a; @@ -4111,14 +4117,14 @@ bool8 moveAlongLinearPath(struct Sprite* sprite) if (xEndPos == 0) xEndPos = -32; else if (xEndPos == 255) - xEndPos = 272; + xEndPos = DISPLAY_WIDTH + 32; yEndPos_2 = yEndPos - yStartPos; r0 = xEndPos - xStartPos; var1 = r0 * currentTime / totalTime; vaxEndPos = yEndPos_2 * currentTime / totalTime; - sprite->pos1.x = var1 + xStartPos; - sprite->pos1.y = vaxEndPos + yStartPos; + sprite->x = var1 + xStartPos; + sprite->y = vaxEndPos + yStartPos; if (++currentTime == totalTime) return TRUE; @@ -4145,10 +4151,10 @@ static void AnimItemSteal_Step1(struct Sprite* sprite) sprite->data[0] = 0; } - sprite->pos2.y = Sin(sprite->data[0] + 128, 30 - sprite->data[1] * 8); + sprite->y2 = Sin(sprite->data[0] + 128, 30 - sprite->data[1] * 8); if (moveAlongLinearPath(sprite)) { - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[0] = 0; sprite->callback = AnimItemSteal_Step2; } @@ -4165,14 +4171,14 @@ static void AnimPresent(struct Sprite* sprite) { sprite->data[6] = targetX; sprite->data[7] = targetY + 10; - sub_80FF9B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 1; } else { sprite->data[6] = targetX; sprite->data[7] = targetY + 10; - sub_80FF9B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 3; } @@ -4180,7 +4186,7 @@ static void AnimPresent(struct Sprite* sprite) sprite->callback = AnimItemSteal_Step1; } -static void sub_80FFB90(struct Sprite* sprite) +static void AnimKnockOffOpponentsItem(struct Sprite* sprite) { int zero; sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]); @@ -4191,10 +4197,10 @@ static void sub_80FFB90(struct Sprite* sprite) sprite->data[0] = zero; } - sprite->pos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); + sprite->y2 = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); if (moveAlongLinearPath(sprite)) { - sprite->pos2.y = zero; + sprite->y2 = zero; sprite->data[0] = zero; DestroyAnimSprite(sprite); } @@ -4207,7 +4213,7 @@ static void AnimKnockOffItem(struct Sprite* sprite) { sprite->data[6] = 0; sprite->data[7] = targetY + 10; - sub_80FF9B8(sprite, 40); + InitItemBagData(sprite, 40); sprite->data[3] = 3; sprite->data[4] = 60; sprite->callback = AnimItemSteal_Step1; @@ -4219,10 +4225,10 @@ static void AnimKnockOffItem(struct Sprite* sprite) if (IsContest()) sprite->data[6] = 0; - sub_80FF9B8(sprite, 40); + InitItemBagData(sprite, 40); sprite->data[3] = 3; sprite->data[4] = 60; - sprite->callback = sub_80FFB90; + sprite->callback = AnimKnockOffOpponentsItem; } } @@ -4240,7 +4246,7 @@ static void AnimPresentHealParticle(struct Sprite* sprite) } sprite->data[0]++; - sprite->pos2.y = sprite->data[1] * sprite->data[0]; + sprite->y2 = sprite->data[1] * sprite->data[0]; if (sprite->animEnded) DestroyAnimSprite(sprite); } @@ -4256,14 +4262,14 @@ static void AnimItemSteal(struct Sprite* sprite) { sprite->data[6] = attackerX; sprite->data[7] = attackerY + 10; - sub_80FF9B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 1; } else { sprite->data[6] = attackerX; sprite->data[7] = attackerY + 10; - sub_80FF9B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 3; } @@ -4282,13 +4288,13 @@ static void AnimItemSteal_Step3(struct Sprite* sprite) sprite->data[0] = zero; } - sprite->pos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); - if (sprite->pos2.y == 0) + sprite->y2 = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); + if (sprite->y2 == 0) PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(63)); if (moveAlongLinearPath(sprite)) { - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[0] = 0; sprite->callback = AnimItemSteal_Step2; PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); @@ -4308,7 +4314,7 @@ static void AnimTrickBag(struct Sprite* sprite) if (!IsContest()) { sprite->data[1] = gBattleAnimArgs[1]; - sprite->pos1.x = 120; + sprite->x = 120; } else { @@ -4319,14 +4325,14 @@ static void AnimTrickBag(struct Sprite* sprite) b = a; sprite->data[1] = a - ((b >> 8) << 8); - sprite->pos1.x = 70; + sprite->x = 70; } - sprite->pos1.y = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[4] = 20; - sprite->pos2.x = Cos(sprite->data[1], 60); - sprite->pos2.y = Sin(sprite->data[1], 20); + sprite->x2 = Cos(sprite->data[1], 60); + sprite->y2 = Sin(sprite->data[1], 20); sprite->callback = AnimTrickBag_Step1; if (sprite->data[1] > 0 && sprite->data[1] < 192) sprite->subpriority = 31; @@ -4350,7 +4356,7 @@ static void AnimTrickBag_Step1(struct Sprite* sprite) { sprite->data[2] += sprite->data[4] / 10; sprite->data[4] += 3; - sprite->pos1.y = sprite->data[2]; + sprite->y = sprite->data[2]; break; } break; @@ -4390,8 +4396,8 @@ static void AnimTrickBag_Step2(struct Sprite* sprite) sprite->subpriority = 29; } - sprite->pos2.x = Cos(sprite->data[1], 60); - sprite->pos2.y = Sin(sprite->data[1], 20); + sprite->x2 = Cos(sprite->data[1], 60); + sprite->y2 = Sin(sprite->data[1], 20); } } @@ -4462,14 +4468,14 @@ static void AnimTask_LeafBlade_Step(u8 taskId) } break; case 1: - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0] = 10; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = task->data[6]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = task->data[7]; sprite->data[5] = LeafBladeGetPosFactor(sprite); task->data[4] += 2; @@ -4488,14 +4494,14 @@ static void AnimTask_LeafBlade_Step(u8 taskId) } break; case 3: - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0] = 10; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = task->data[6] - ((task->data[10] / 2) + 10) * task->data[5]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = task->data[7] - ((task->data[11] / 2) + 10) * task->data[5]; sprite->data[5] = LeafBladeGetPosFactor(sprite); task->data[3] = 2; @@ -4505,14 +4511,14 @@ static void AnimTask_LeafBlade_Step(u8 taskId) task->data[0]++; break; case 5: - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0] = 10; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = task->data[6] + ((task->data[10] / 2) + 10) * task->data[5]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = task->data[7] + ((task->data[11] / 2) + 10) * task->data[5]; sprite->data[5] = LeafBladeGetPosFactor(sprite); task->data[4] -= 2; @@ -4531,14 +4537,14 @@ static void AnimTask_LeafBlade_Step(u8 taskId) } break; case 7: - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0] = 10; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = task->data[6]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = task->data[7]; sprite->data[5] = LeafBladeGetPosFactor(sprite); task->data[4] += 2; @@ -4549,14 +4555,14 @@ static void AnimTask_LeafBlade_Step(u8 taskId) task->data[0]++; break; case 9: - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0] = 10; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = task->data[6] - ((task->data[10] / 2) + 10) * task->data[5]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = task->data[7] + ((task->data[11] / 2) + 10) * task->data[5]; sprite->data[5] = LeafBladeGetPosFactor(sprite); task->data[3] = 5; @@ -4575,14 +4581,14 @@ static void AnimTask_LeafBlade_Step(u8 taskId) break; case 11: { - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0] = 10; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = task->data[8]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = task->data[9]; sprite->data[5] = LeafBladeGetPosFactor(sprite); task->data[4] -= 2; @@ -4618,7 +4624,7 @@ static void AnimTask_LeafBlade_Step(u8 taskId) static s16 LeafBladeGetPosFactor(struct Sprite* sprite) { s16 var = 8; - if (sprite->data[4] < sprite->pos1.y) + if (sprite->data[4] < sprite->y) var = -var; return var; @@ -4633,8 +4639,8 @@ static void AnimTask_LeafBlade_Step2(struct Task* task, u8 taskId) s16 spriteX; s16 spriteY; task->data[14] = 0; - spriteX = gSprites[task->data[2]].pos1.x + gSprites[task->data[2]].pos2.x; - spriteY = gSprites[task->data[2]].pos1.y + gSprites[task->data[2]].pos2.y; + spriteX = gSprites[task->data[2]].x + gSprites[task->data[2]].x2; + spriteY = gSprites[task->data[2]].y + gSprites[task->data[2]].y2; spriteId = CreateSprite(&gLeafBladeSpriteTemplate, spriteX, spriteY, task->data[4]); if (spriteId != MAX_SPRITES) { @@ -4678,13 +4684,13 @@ static void AnimFlyingParticle(struct Sprite* sprite) { sprite->data[4] = 0; sprite->data[2] = gBattleAnimArgs[3]; - sprite->pos1.x = 0xFFF0; + sprite->x = 0xFFF0; } else { sprite->data[4] = 1; sprite->data[2] = -gBattleAnimArgs[3]; - sprite->pos1.x = 0x100; + sprite->x = 0x100; } sprite->data[1] = gBattleAnimArgs[1]; @@ -4693,19 +4699,19 @@ static void AnimFlyingParticle(struct Sprite* sprite) switch (gBattleAnimArgs[5]) { case 0: - sprite->pos1.y = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[0]; sprite->oam.priority = GetBattlerSpriteBGPriority(battler); break; case 1: - sprite->pos1.y = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[0]; sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1; break; case 2: - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[0]; sprite->oam.priority = GetBattlerSpriteBGPriority(battler); break; case 3: - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[0]; GetAnimBattlerSpriteId(ANIM_TARGET); sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1; break; @@ -4718,17 +4724,17 @@ static void AnimFlyingParticle_Step(struct Sprite* sprite) { int a = sprite->data[7]; sprite->data[7]++; - sprite->pos2.y = (sprite->data[1] * gSineTable[sprite->data[0]]) >> 8; - sprite->pos2.x = sprite->data[2] * a; + sprite->y2 = (sprite->data[1] * gSineTable[sprite->data[0]]) >> 8; + sprite->x2 = sprite->data[2] * a; sprite->data[0] = (sprite->data[3] * a) & 0xFF; if (!sprite->data[4]) { - if (sprite->pos2.x + sprite->pos1.x <= 0xF7) + if (sprite->x2 + sprite->x <= 0xF7) return; } else { - if (sprite->pos2.x + sprite->pos1.x > -16) + if (sprite->x2 + sprite->x > -16) return; } @@ -4793,25 +4799,25 @@ void AnimNeedleArmSpike(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[4]; if (gBattleAnimArgs[1] == 0) { - sprite->pos1.x = gBattleAnimArgs[2] + a; - sprite->pos1.y = gBattleAnimArgs[3] + b; + sprite->x = gBattleAnimArgs[2] + a; + sprite->y = gBattleAnimArgs[3] + b; sprite->data[5] = a; sprite->data[6] = b; } else { - sprite->pos1.x = a; - sprite->pos1.y = b; + sprite->x = a; + sprite->y = b; sprite->data[5] = gBattleAnimArgs[2] + a; sprite->data[6] = gBattleAnimArgs[3] + b; } - x = sprite->pos1.x; + x = sprite->x; sprite->data[1] = x * 16; - y = sprite->pos1.y; + y = sprite->y; sprite->data[2] = y * 16; - sprite->data[3] = (sprite->data[5] - sprite->pos1.x) * 16 / gBattleAnimArgs[4]; - sprite->data[4] = (sprite->data[6] - sprite->pos1.y) * 16 / gBattleAnimArgs[4]; + sprite->data[3] = (sprite->data[5] - sprite->x) * 16 / gBattleAnimArgs[4]; + sprite->data[4] = (sprite->data[6] - sprite->y) * 16 / gBattleAnimArgs[4]; c = ArcTan2Neg(sprite->data[5] - x, sprite->data[6] - y); if (IsContest()) c -= 0x8000; @@ -4827,8 +4833,8 @@ void AnimNeedleArmSpike_Step(struct Sprite* sprite) { sprite->data[1] += sprite->data[3]; sprite->data[2] += sprite->data[4]; - sprite->pos1.x = sprite->data[1] >> 4 ; - sprite->pos1.y = sprite->data[2] >> 4 ; + sprite->x = sprite->data[1] >> 4 ; + sprite->y = sprite->data[2] >> 4 ; sprite->data[0]--; } else @@ -4837,23 +4843,23 @@ void AnimNeedleArmSpike_Step(struct Sprite* sprite) } } -static void sub_81009DC(struct Sprite* sprite) +static void AnimWhipHit_WaitEnd(struct Sprite* sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); } -static void sub_81009F8(struct Sprite* sprite) +static void AnimSlidingHit(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x -= gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } else { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } sprite->callback = RunStoredCallbackWhenAnimEnds; @@ -4865,15 +4871,15 @@ static void AnimWhipHit(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) StartSpriteAnim(sprite, 1); - sprite->callback = sub_81009DC; + sprite->callback = AnimWhipHit_WaitEnd; SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } -static void sub_8100A94(struct Sprite* sprite) +static void AnimFlickeringPunch(struct Sprite* sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; @@ -4890,23 +4896,23 @@ static void sub_8100A94(struct Sprite* sprite) // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right void AnimCuttingSlice(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) - sprite->pos1.y += 8; + sprite->y += 8; sprite->callback = AnimSlice_Step; if (gBattleAnimArgs[2] == 0) { - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; } else { - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; sprite->hFlip = 1; } - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[1] -= 0x400; sprite->data[2] += 0x400; sprite->data[5] = gBattleAnimArgs[2]; @@ -4940,23 +4946,23 @@ static void AnimAirCutterSlice(struct Sprite* sprite) break; } - sprite->pos1.x = a; - sprite->pos1.y = b; + sprite->x = a; + sprite->y = b; if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) - sprite->pos1.y += 8; + sprite->y += 8; sprite->callback = AnimSlice_Step; if (gBattleAnimArgs[2] == 0) { - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; } else { - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; sprite->hFlip = 1; } - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[1] -= 0x400; sprite->data[2] += 0x400; sprite->data[5] = gBattleAnimArgs[2]; @@ -4974,8 +4980,8 @@ static void AnimSlice_Step(struct Sprite* sprite) sprite->data[1] -= 0x18; sprite->data[2] -= 0x18; - sprite->pos2.x = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; + sprite->x2 = sprite->data[3] >> 8; + sprite->y2 = sprite->data[4] >> 8; sprite->data[0]++; if (sprite->data[0] == 20) { @@ -4985,7 +4991,7 @@ static void AnimSlice_Step(struct Sprite* sprite) } } -void unref_sub_8100D38(struct Sprite* sprite) +static void UnusedFlickerAnim(struct Sprite* sprite) { if (sprite->data[2] > 1) { @@ -5018,34 +5024,34 @@ void unref_sub_8100D38(struct Sprite* sprite) } } -static void sub_8100E1C(struct Sprite* sprite) +static void AnimCirclingMusicNote(struct Sprite* sprite) { sprite->data[0] = gBattleAnimArgs[2]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; StartSpriteAnim(sprite, gBattleAnimArgs[5]); sprite->data[1] = -gBattleAnimArgs[3]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[3] = gBattleAnimArgs[4]; - sprite->callback = sub_8100E80; + sprite->callback = AnimCirclingMusicNote_Step; sprite->callback(sprite); } -static void sub_8100E80(struct Sprite* sprite) +static void AnimCirclingMusicNote_Step(struct Sprite* sprite) { - sprite->pos2.x = Cos(sprite->data[0], 100); - sprite->pos2.y = Sin(sprite->data[0], 20); + sprite->x2 = Cos(sprite->data[0], 100); + sprite->y2 = Sin(sprite->data[0], 20); if (sprite->data[0] < 128) sprite->subpriority = 0; else sprite->subpriority = 14; sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; - sprite->data[5] += 0x82; - sprite->pos2.y += sprite->data[5] >> 8; + sprite->data[5] += 130; + sprite->y2 += sprite->data[5] >> 8; sprite->data[2]++; if (sprite->data[2] == sprite->data[3]) DestroyAnimSprite(sprite); @@ -5056,8 +5062,8 @@ static void AnimProtect(struct Sprite* sprite) if (IsContest()) gBattleAnimArgs[1] += 8; - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER || IsContest()) sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker) + 1; else @@ -5075,7 +5081,7 @@ static void AnimProtect_Step(struct Sprite *sprite) { int i, id, savedPal; sprite->data[5] += 96; - sprite->pos2.x = -(sprite->data[5] >> 8); + sprite->x2 = -(sprite->data[5] >> 8); if (++sprite->data[1] > 1) { sprite->data[1] = 0; @@ -5116,8 +5122,8 @@ static void AnimProtect_Step(struct Sprite *sprite) static void AnimMilkBottle(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 0xFFE8; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 0xFFE8; sprite->data[0] = 0; sprite->data[1] = 0; sprite->data[2] = 0; @@ -5167,7 +5173,7 @@ static void AnimMilkBottle_Step1(struct Sprite* sprite) if (++sprite->data[1] > 2) { sprite->data[1] = 0; - sprite->pos1.y++; + sprite->y++; } if (++sprite->data[2] <= 29) @@ -5214,10 +5220,10 @@ static void AnimMilkBottle_Step2(struct Sprite* sprite, int unk1, int unk2) if ((sprite->data[3]) > 0x2F) sprite->data[4] += 2; - sprite->pos2.x = sprite->data[4] / 9; - sprite->pos2.y = sprite->data[4] / 14; - if (sprite->pos2.y < 0) - sprite->pos2.y *= -1; + sprite->x2 = sprite->data[4] / 9; + sprite->y2 = sprite->data[4] / 14; + if (sprite->y2 < 0) + sprite->y2 *= -1; sprite->data[3]++; if (sprite->data[3] > 0x3B) @@ -5230,7 +5236,7 @@ void AnimGrantingStars(struct Sprite* sprite) SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[5]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; @@ -5248,21 +5254,21 @@ static void AnimSparkingStars(struct Sprite* sprite) if (IsDoubleBattle() && IsBattlerSpriteVisible(BATTLE_PARTNER(battler))) { - SetAverageBattlerPositions(battler, gBattleAnimArgs[6], &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(battler, gBattleAnimArgs[6], &sprite->x, &sprite->y); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } else { if (!gBattleAnimArgs[6]) { - sprite->pos1.x = GetBattlerSpriteCoord(battler, 0); - sprite->pos1.y = GetBattlerSpriteCoord(battler, 1) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(battler, 0); + sprite->y = GetBattlerSpriteCoord(battler, 1) + gBattleAnimArgs[1]; } else { - sprite->pos1.x = GetBattlerSpriteCoord(battler, 2); - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(battler, 2); + sprite->y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[1]; } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -5275,30 +5281,30 @@ static void AnimSparkingStars(struct Sprite* sprite) sprite->callback = TranslateSpriteLinearFixedPoint; } -static void sub_8101440(struct Sprite* sprite) +static void AnimBubbleBurst(struct Sprite* sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } else { - sprite->pos1.x -= gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; StartSpriteAnim(sprite, 1); } - sprite->callback = sub_81014A0; + sprite->callback = AnimBubbleBurst_Step; } -static void sub_81014A0(struct Sprite* sprite) +static void AnimBubbleBurst_Step(struct Sprite* sprite) { if (++sprite->data[0] > 30) { - sprite->pos2.y = (30 - sprite->data[0]) / 3; - sprite->pos2.x = Sin(sprite->data[1] * 4, 3); + sprite->y2 = (30 - sprite->data[0]) / 3; + sprite->x2 = Sin(sprite->data[1] * 4, 3); sprite->data[1]++; } @@ -5311,14 +5317,14 @@ static void AnimSleepLetterZ(struct Sprite* sprite) SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[3] = 1; } else { - sprite->pos1.x -= gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[3] = 0xFFFF; StartSpriteAffineAnim(sprite, 1); } @@ -5328,8 +5334,8 @@ static void AnimSleepLetterZ(struct Sprite* sprite) static void AnimSleepLetterZ_Step(struct Sprite* sprite) { - sprite->pos2.y = -(sprite->data[0] / 0x28); - sprite->pos2.x = sprite->data[4] / 10; + sprite->y2 = -(sprite->data[0] / 0x28); + sprite->x2 = sprite->data[4] / 10; sprite->data[4] += sprite->data[3] * 2; sprite->data[0] += sprite->data[1]; if (++sprite->data[1] > 60) @@ -5338,8 +5344,8 @@ static void AnimSleepLetterZ_Step(struct Sprite* sprite) static void AnimLockOnTarget(struct Sprite* sprite) { - sprite->pos1.x -= 32; - sprite->pos1.y -= 32; + sprite->x -= 32; + sprite->y -= 32; sprite->data[0] = 20; sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step1); @@ -5355,13 +5361,13 @@ static void AnimLockOnTarget_Step1(struct Sprite* sprite) StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step1); break; case 1: - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[0] = 8; - sprite->data[2] = sprite->pos1.x + gInclineMonCoordTable[sprite->data[5] >> 8][0]; - sprite->data[4] = sprite->pos1.y + gInclineMonCoordTable[sprite->data[5] >> 8][1]; + sprite->data[2] = sprite->x + gInclineMonCoordTable[sprite->data[5] >> 8][0]; + sprite->data[4] = sprite->y + gInclineMonCoordTable[sprite->data[5] >> 8][1]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2); sprite->data[5] += 0x100; @@ -5420,10 +5426,10 @@ static void AnimLockOnTarget_Step3(struct Sprite* sprite) break; } - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[0] = 6; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + a; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + b; @@ -5444,7 +5450,7 @@ static void AnimLockOnTarget_Step4(struct Sprite* sprite) sprite->data[1] = 0; } - BlendPalettes(sub_80A75AC(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31)); + BlendPalettes(GetBattleBgPalettesMask(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31)); if (sprite->data[1] == 16) { int pal; @@ -5487,25 +5493,25 @@ static void AnimLockOnMoveTarget(struct Sprite* sprite) sprite->oam.affineParam = gBattleAnimArgs[0]; if ((s16)sprite->oam.affineParam == 1) { - sprite->pos1.x -= 0x18; - sprite->pos1.y -= 0x18; + sprite->x -= 0x18; + sprite->y -= 0x18; } else if ((s16)sprite->oam.affineParam == 2) { - sprite->pos1.x -= 0x18; - sprite->pos1.y += 0x18; + sprite->x -= 0x18; + sprite->y += 0x18; sprite->oam.matrixNum = ST_OAM_VFLIP; } else if ((s16)sprite->oam.affineParam == 3) { - sprite->pos1.x += 0x18; - sprite->pos1.y -= 0x18; + sprite->x += 0x18; + sprite->y -= 0x18; sprite->oam.matrixNum = ST_OAM_HFLIP; } else { - sprite->pos1.x += 0x18; - sprite->pos1.y += 0x18; + sprite->x += 0x18; + sprite->y += 0x18; sprite->oam.matrixNum = ST_OAM_HFLIP | ST_OAM_VFLIP; } @@ -5617,13 +5623,13 @@ static void AnimBowMon_Step4(struct Sprite* sprite) DestroyAnimSprite(sprite); } -static void sub_8101B90(struct Sprite *sprite) +static void AnimTipMon(struct Sprite *sprite) { sprite->data[0] = 0; - sprite->callback = sub_8101BA0; + sprite->callback = AnimTipMon_Step; } -static void sub_8101BA0(struct Sprite *sprite) +static void AnimTipMon_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -5707,7 +5713,7 @@ static void AnimTask_SkullBashPositionSet(u8 taskId) if (task->data[3]) { task->data[4] += task->data[5]; - gSprites[task->data[0]].pos2.x = task->data[4]; + gSprites[task->data[0]].x2 = task->data[4]; task->data[3]--; } else @@ -5730,7 +5736,7 @@ static void AnimTask_SkullBashPositionSet(u8 taskId) else { task->data[3] = 8; - task->data[4] = gSprites[task->data[0]].pos2.x; + task->data[4] = gSprites[task->data[0]].x2; task->data[5] = (task->data[1] == 0) ? 0x2 : -0x2; task->data[6] = 1; task->data[2]++; @@ -5746,9 +5752,9 @@ static void AnimTask_SkullBashPositionSet(u8 taskId) else { if (task->data[3] & 1) - gSprites[task->data[0]].pos2.x = task->data[4] + task->data[5]; + gSprites[task->data[0]].x2 = task->data[4] + task->data[5]; else - gSprites[task->data[0]].pos2.x = task->data[4] - task->data[5]; + gSprites[task->data[0]].x2 = task->data[4] - task->data[5]; task->data[6] = 1; task->data[3]--; @@ -5756,7 +5762,7 @@ static void AnimTask_SkullBashPositionSet(u8 taskId) } else { - gSprites[task->data[0]].pos2.x = task->data[4]; + gSprites[task->data[0]].x2 = task->data[4]; task->data[3] = 12; task->data[2]++; } @@ -5769,7 +5775,7 @@ static void AnimTask_SkullBashPositionSet(u8 taskId) else { task->data[3] = 3; - task->data[4] = gSprites[task->data[0]].pos2.x; + task->data[4] = gSprites[task->data[0]].x2; task->data[5] = (task->data[1] == 0) ? 8 : -8; task->data[2]++; } @@ -5778,7 +5784,7 @@ static void AnimTask_SkullBashPositionSet(u8 taskId) if (task->data[3]) { task->data[4] += task->data[5]; - gSprites[task->data[0]].pos2.x = task->data[4]; + gSprites[task->data[0]].x2 = task->data[4]; task->data[3]--; } else @@ -5810,13 +5816,13 @@ static void AnimSlashSlice(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[2]; } sprite->data[0] = 0; @@ -5827,16 +5833,16 @@ static void AnimSlashSlice(struct Sprite* sprite) static void AnimFalseSwipeSlice(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step1); sprite->callback = RunStoredCallbackWhenAnimEnds; } static void AnimFalseSwipePositionedSlice(struct Sprite* sprite) { - sprite->pos1.x = sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0 + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0 + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); StartSpriteAnim(sprite, 1); sprite->data[0] = 0; sprite->data[1] = 0; @@ -5877,13 +5883,13 @@ void AnimEndureEnergy(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[2]; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[2]; } sprite->data[0] = 0; @@ -5896,18 +5902,18 @@ static void AnimEndureEnergy_Step(struct Sprite* sprite) if (++sprite->data[0] > sprite->data[1]) { sprite->data[0] = 0; - sprite->pos1.y--; + sprite->y--; } - sprite->pos1.y -= sprite->data[0]; + sprite->y -= sprite->data[0]; if (sprite->animEnded) DestroyAnimSprite(sprite); } static void AnimSharpenSphere(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) - 12; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) - 12; sprite->data[0] = 0; sprite->data[1] = 2; sprite->data[2] = 0; @@ -5945,10 +5951,10 @@ void AnimConversion(struct Sprite* sprite) { if (sprite->data[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; if (IsContest()) - sprite->pos1.y += 10; + sprite->y += 10; sprite->data[0]++; } @@ -6018,22 +6024,24 @@ void AnimTask_Conversion2AlphaBlend(u8 taskId) } } -void unref_sub_8102434(u8 taskId) +// Unused +static void AnimTask_HideBattlersHealthbox(u8 taskId) { u8 i; for (i = 0; i < gBattlersCount; i++) { - if (gBattleAnimArgs[0] == 1 && GetBattlerSide(i) == B_SIDE_PLAYER) + if (gBattleAnimArgs[0] == TRUE && GetBattlerSide(i) == B_SIDE_PLAYER) SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]); - if (gBattleAnimArgs[1] == 1 && GetBattlerSide(i) == B_SIDE_OPPONENT) + if (gBattleAnimArgs[1] == TRUE && GetBattlerSide(i) == B_SIDE_OPPONENT) SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]); } DestroyAnimVisualTask(taskId); } -void unref_sub_81024A8(u8 taskId) +// Unused +static void AnimTask_ShowBattlersHealthbox(u8 taskId) { u8 i; for (i = 0; i < gBattlersCount; i++) @@ -6046,13 +6054,13 @@ static void AnimMoon(struct Sprite* sprite) { if (IsContest()) { - sprite->pos1.x = 48; - sprite->pos1.y = 40; + sprite->x = 48; + sprite->y = 40; } else { - sprite->pos1.x = gBattleAnimArgs[0]; - sprite->pos1.y = gBattleAnimArgs[1]; + sprite->x = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[1]; } sprite->oam.shape = SPRITE_SHAPE(64x64); @@ -6069,8 +6077,8 @@ static void AnimMoon_Step(struct Sprite* sprite) static void AnimMoonlightSparkle(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[1]; sprite->data[0] = 0; sprite->data[1] = 0; sprite->data[2] = 0; @@ -6086,7 +6094,7 @@ static void AnimMoonlightSparkle_Step(struct Sprite* sprite) sprite->data[1] = 0; if (sprite->data[2] < 120) { - sprite->pos1.y++; + sprite->y++; sprite->data[2]++; } } @@ -6097,7 +6105,7 @@ static void AnimMoonlightSparkle_Step(struct Sprite* sprite) void AnimTask_MoonlightEndFade(u8 taskId) { - int a = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; + int a = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; int b; int c; int d; @@ -6112,7 +6120,7 @@ void AnimTask_MoonlightEndFade(u8 taskId) gTasks[taskId].data[7] = 13; gTasks[taskId].data[8] = 14; gTasks[taskId].data[9] = 15; - b = sub_80A76C4(1, 1, 1, 1); + b = GetBattleMonSpritePalettesMask(1, 1, 1, 1); c = a | b; StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c); b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); @@ -6210,36 +6218,36 @@ static void AnimHornHit(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[2]; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; - sprite->data[6] = sprite->pos1.x; - sprite->data[7] = sprite->pos1.y; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->data[6] = sprite->x; + sprite->data[7] = sprite->y; if (IsContest()) { sprite->oam.matrixNum = ST_OAM_HFLIP; - sprite->pos1.x += 40; - sprite->pos1.y += 20; - sprite->data[2] = sprite->pos1.x << 7; + sprite->x += 40; + sprite->y += 20; + sprite->data[2] = sprite->x << 7; sprite->data[3] = -0x1400 / sprite->data[1]; - sprite->data[4] = sprite->pos1.y << 7; + sprite->data[4] = sprite->y << 7; sprite->data[5] = -0xA00 / sprite->data[1]; } else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - sprite->pos1.x -= 40; - sprite->pos1.y += 20; - sprite->data[2] = sprite->pos1.x << 7; + sprite->x -= 40; + sprite->y += 20; + sprite->data[2] = sprite->x << 7; sprite->data[3] = 0x1400 / sprite->data[1]; - sprite->data[4] = sprite->pos1.y << 7; + sprite->data[4] = sprite->y << 7; sprite->data[5] = -0xA00 / sprite->data[1]; } else { - sprite->pos1.x += 40; - sprite->pos1.y -= 20; - sprite->data[2] = sprite->pos1.x << 7; + sprite->x += 40; + sprite->y -= 20; + sprite->data[2] = sprite->x << 7; sprite->data[3] = -0x1400 / sprite->data[1]; - sprite->data[4] = sprite->pos1.y << 7; + sprite->data[4] = sprite->y << 7; sprite->data[5] = 0xA00 / sprite->data[1]; sprite->oam.matrixNum = (ST_OAM_HFLIP | ST_OAM_VFLIP); } @@ -6251,12 +6259,12 @@ static void AnimHornHit_Step(struct Sprite* sprite) { sprite->data[2] += sprite->data[3]; sprite->data[4] += sprite->data[5]; - sprite->pos1.x = sprite->data[2] >> 7; - sprite->pos1.y = sprite->data[4] >> 7; + sprite->x = sprite->data[2] >> 7; + sprite->y = sprite->data[4] >> 7; if (--sprite->data[1] == 1) { - sprite->pos1.x = sprite->data[6]; - sprite->pos1.y = sprite->data[7]; + sprite->x = sprite->data[6]; + sprite->y = sprite->data[7]; } if (sprite->data[1] == 0) @@ -6331,7 +6339,7 @@ static void AnimDoubleTeam(struct Sprite* sprite) sprite->data[4] = gSineTable[sprite->data[0]] / 6; sprite->data[5] = gSineTable[sprite->data[0]] / 13; sprite->data[1] = (sprite->data[1] + sprite->data[5]) & 0xFF; - sprite->pos2.x = Sin(sprite->data[1], sprite->data[4]); + sprite->x2 = Sin(sprite->data[1], sprite->data[4]); } } @@ -6402,9 +6410,9 @@ static void AnimWavyMusicNotes(struct Sprite* sprite) b = GetBattlerSpriteCoord(gBattleAnimTarget, 3); } - sprite->data[4] = sprite->pos1.x << 4; - sprite->data[5] = sprite->pos1.y << 4; - AnimWavyMusicNotesGetNextPos(a - sprite->pos1.x, b - sprite->pos1.y, &sprite->data[6], &sprite->data[7], 40); + sprite->data[4] = sprite->x << 4; + sprite->data[5] = sprite->y << 4; + AnimWavyMusicNotesGetNextPos(a - sprite->x, b - sprite->y, &sprite->data[6], &sprite->data[7], 40); sprite->callback = AnimWavyMusicNotes_Step; } @@ -6433,12 +6441,12 @@ static void AnimWavyMusicNotes_Step(struct Sprite* sprite) yDelta = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8); sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; - sprite->pos1.x = sprite->data[4] >> 4; - sprite->pos1.y = sprite->data[5] >> 4; - sprite->pos2.y = Sin(yDelta, 15); + sprite->x = sprite->data[4] >> 4; + sprite->y = sprite->data[5] >> 4; + sprite->y2 = Sin(yDelta, 15); - y = sprite->pos1.y; - if (sprite->pos1.x < -16 || sprite->pos1.x > 256 || y < -16 || y > 128) + y = sprite->y; + if (sprite->x < -16 || sprite->x > 256 || y < -16 || y > 128) { DestroySpriteAndMatrix(sprite); } @@ -6462,13 +6470,13 @@ static void AnimFlyingMusicNotes(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[1] *= -1; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[0]); sprite->data[2] = 0; sprite->data[3] = 0; - sprite->data[4] = sprite->pos1.x << 4; - sprite->data[5] = sprite->pos1.y << 4; + sprite->data[4] = sprite->x << 4; + sprite->data[5] = sprite->y << 4; sprite->data[6] = (gBattleAnimArgs[1] << 4) / 5; sprite->data[7] = (gBattleAnimArgs[2] << 7) / 5; sprite->callback = AnimFlyingMusicNotes_Step; @@ -6478,13 +6486,13 @@ static void AnimFlyingMusicNotes_Step(struct Sprite* sprite) { sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; - sprite->pos1.x = sprite->data[4] >> 4; - sprite->pos1.y = sprite->data[5] >> 4; + sprite->x = sprite->data[4] >> 4; + sprite->y = sprite->data[5] >> 4; if (sprite->data[0] > 5 && sprite->data[3] == 0) { sprite->data[2] = (sprite->data[2] + 16) & 0xFF; - sprite->pos2.x = Cos(sprite->data[2], 18); - sprite->pos2.y = Sin(sprite->data[2], 18); + sprite->x2 = Cos(sprite->data[2], 18); + sprite->y2 = Sin(sprite->data[2], 18); if (sprite->data[2] == 0) sprite->data[3] = 1; } @@ -6506,8 +6514,8 @@ static void AnimBellyDrumHand(struct Sprite* sprite) a = -16; } - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + a; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 8; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + a; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 8; sprite->data[0] = 8; sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -6518,7 +6526,7 @@ void AnimSlowFlyingMusicNotes(struct Sprite* sprite) s16 xDiff; u8 index; SetSpriteCoordsToAnimAttackerCoords(sprite); - sprite->pos1.y += 8; + sprite->y += 8; StartSpriteAnim(sprite, gBattleAnimArgs[1]); index = IndexOfSpritePaletteTag(gParticlesColorBlendTable[gBattleAnimArgs[2]][0]); if (index != 0xFF) @@ -6526,9 +6534,9 @@ void AnimSlowFlyingMusicNotes(struct Sprite* sprite) xDiff = (gBattleAnimArgs[0] == 0) ? -32 : 32; sprite->data[0] = 40; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = xDiff + sprite->data[1]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = sprite->data[3] - 40; InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; @@ -6541,11 +6549,11 @@ static void AnimSlowFlyingMusicNotes_Step(struct Sprite* sprite) { s16 xDiff; xDiff = Sin(sprite->data[5], 8); - if (sprite->pos2.x < 0) + if (sprite->x2 < 0) xDiff = -xDiff; - sprite->pos2.x += xDiff; - sprite->pos2.y += Sin(sprite->data[5], 4); + sprite->x2 += xDiff; + sprite->y2 += Sin(sprite->data[5], 4); sprite->data[5] = (sprite->data[5] + 8) & 0xFF; } else @@ -6557,11 +6565,11 @@ static void AnimSlowFlyingMusicNotes_Step(struct Sprite* sprite) void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite) { if (GetBattlerSide(battler) == B_SIDE_PLAYER) - sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) + 8; + sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) + 8; else - sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8; + sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8; - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; + sprite->y = GetBattlerSpriteCoord(battler, 3) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; } void AnimThoughtBubble(struct Sprite* sprite) @@ -6624,10 +6632,10 @@ void AnimFollowMeFinger(struct Sprite* sprite) else battler = gBattleAnimTarget; - sprite->pos1.x = GetBattlerSpriteCoord(battler, 0); - sprite->pos1.y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP); - if (sprite->pos1.y <= 9) - sprite->pos1.y = 10; + sprite->x = GetBattlerSpriteCoord(battler, 0); + sprite->y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_TOP); + if (sprite->y <= 9) + sprite->y = 10; sprite->data[0] = 1; sprite->data[1] = 0; @@ -6653,7 +6661,7 @@ static void AnimFollowMeFinger_Step2(struct Sprite* sprite) { if (--sprite->data[0] == 0) { - sprite->pos2.x = 0; + sprite->x2 = 0; sprite->callback = AnimMetronomeFinger_Step; return; } @@ -6671,7 +6679,7 @@ static void AnimFollowMeFinger_Step2(struct Sprite* sprite) x1 = gSineTable[sprite->data[1]]; x2 = x1 >> 3; - sprite->pos2.x = (x1 >> 3) + (x2 >> 1); + sprite->x2 = (x1 >> 3) + (x2 >> 1); } static void AnimTauntFinger(struct Sprite* sprite) @@ -6750,7 +6758,7 @@ static void AnimPoisonJabProjectile(struct Sprite *sprite) InitSpritePosToAnimTarget(sprite, TRUE); targetXPos = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); targetYPos = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y); + rotation = ArcTan2Neg(targetXPos - sprite->x, targetYPos - sprite->y); TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = targetXPos; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 6c0d76055a..54bcf40f2e 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -16,21 +16,21 @@ #include "constants/rgb.h" #include "constants/songs.h" -static void sub_8103448(struct Sprite *); -static void sub_8103498(struct Sprite *); -static void sub_81034D8(struct Sprite *); -static void sub_810358C(struct Sprite *); -static void sub_8103620(struct Sprite *); -static void sub_8103658(struct Sprite *); -static void sub_8103680(struct Sprite *); +static void AnimCirclingFinger(struct Sprite *); +static void AnimBouncingMusicNote(struct Sprite *); +static void AnimBouncingMusicNote_Step(struct Sprite *); +static void AnimVibrateBattlerBack(struct Sprite *); +static void AnimMovingClamp(struct Sprite *); +static void AnimMovingClamp_Step(struct Sprite *); +static void AnimMovingClamp_End(struct Sprite *); static void AnimKinesisZapEnergy(struct Sprite *); static void AnimSwordsDanceBlade(struct Sprite *); static void AnimSwordsDanceBlade_Step(struct Sprite *); static void AnimAirWaveProjectile(struct Sprite *); static void AnimAirWaveProjectile_Step1(struct Sprite *sprite); static void AnimAirWaveProjectile_Step2(struct Sprite *sprite); -static void sub_8103FE8(struct Sprite *); -static void sub_8104018(struct Sprite *); +static void AnimVoidLines(struct Sprite *); +static void AnimVoidLines_Step(struct Sprite *); static void AnimCoinThrow(struct Sprite *); static void AnimFallingCoin(struct Sprite *); static void AnimFallingCoin_Step(struct Sprite *); @@ -83,7 +83,7 @@ static void AnimPerishSongMusicNote_Step1(struct Sprite *); static void AnimPerishSongMusicNote_Step2(struct Sprite *); static void AnimGuardRing(struct Sprite *); static void AnimTask_Withdraw_Step(u8); -static void AnimTask_GrowAndGreyscale_Step(u8); +static void AnimTask_GrowAndGrayscale_Step(u8); static void AnimTask_Minimize_Step(u8); static void CreateMinimizeSprite(struct Task *, u8); static void ClonedMinizeSprite_Step(struct Sprite *); @@ -103,7 +103,7 @@ static void AnimTask_ScaryFace_Step(u8); static void AnimTask_UproarDistortion_Step(u8); // Unused -const struct SpriteTemplate gUnknown_08593264 = +static const struct SpriteTemplate sCirclingFingerSpriteTemplate = { .tileTag = ANIM_TAG_FINGER, .paletteTag = ANIM_TAG_FINGER, @@ -111,23 +111,23 @@ const struct SpriteTemplate gUnknown_08593264 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8103448, + .callback = AnimCirclingFinger, }; -const union AnimCmd gUnknown_0859327C[] = +static const union AnimCmd sAnim_BouncingMusicNote[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -// Unused -const union AnimCmd *const gUnknown_08593284[] = +// Unused (association assumed) +static const union AnimCmd *const sAnims_BouncingMusicNote[] = { - gUnknown_0859327C, + sAnim_BouncingMusicNote, }; // Unused -const struct SpriteTemplate gUnknown_08593288 = +static const struct SpriteTemplate sBouncingMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, @@ -135,11 +135,11 @@ const struct SpriteTemplate gUnknown_08593288 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8103498, + .callback = AnimBouncingMusicNote, }; // Unused -const struct SpriteTemplate gUnknown_085932A0 = +static const struct SpriteTemplate sVibrateBattlerBackSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -147,11 +147,11 @@ const struct SpriteTemplate gUnknown_085932A0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810358C, + .callback = AnimVibrateBattlerBack, }; // Unused -const struct SpriteTemplate gUnknown_085932B8 = +static const struct SpriteTemplate sMovingClampSpriteTemplate = { .tileTag = ANIM_TAG_CLAMP, .paletteTag = ANIM_TAG_CLAMP, @@ -159,10 +159,10 @@ const struct SpriteTemplate gUnknown_085932B8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gAffineAnims_Bite, - .callback = sub_8103620, + .callback = AnimMovingClamp, }; -const union AnimCmd gUnknown_085932D0[] = +static const union AnimCmd sAnim_SmallExplosion[] = { ANIMCMD_FRAME(0, 9), ANIMCMD_FRAME(16, 3), @@ -171,32 +171,32 @@ const union AnimCmd gUnknown_085932D0[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085932E4[] = +static const union AnimCmd *const sAnims_SmallExplosion[] = { - gUnknown_085932D0, + sAnim_SmallExplosion, }; -const union AffineAnimCmd gUnknown_085932E8[] = +static const union AffineAnimCmd sAffineAnim_SmallExplosion[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), AFFINEANIMCMD_FRAME(0x9, 0x9, 0, 18), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08593300[] = +static const union AffineAnimCmd *const sAffineAnims_SmallExplosion[] = { - gUnknown_085932E8, + sAffineAnim_SmallExplosion, }; // Unused -const struct SpriteTemplate gUnknown_08593304 = +static const struct SpriteTemplate sSmallExplosionSpriteTemplate = { .tileTag = ANIM_TAG_EXPLOSION_6, .paletteTag = ANIM_TAG_EXPLOSION_6, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_085932E4, + .anims = sAnims_SmallExplosion, .images = NULL, - .affineAnims = gUnknown_08593300, + .affineAnims = sAffineAnims_SmallExplosion, .callback = AnimSpriteOnMonPos, }; @@ -360,7 +360,7 @@ const struct SpriteTemplate gEggThrowSpriteTemplate = }; // Unused -const struct SpriteTemplate gUnknown_085934A0 = +static const struct SpriteTemplate sVoidLinesSpriteTemplate = { .tileTag = ANIM_TAG_VOID_LINES, .paletteTag = ANIM_TAG_VOID_LINES, @@ -368,7 +368,7 @@ const struct SpriteTemplate gUnknown_085934A0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8103FE8, + .callback = AnimVoidLines, }; const union AnimCmd gCoinAnimCmds[] = @@ -1112,7 +1112,7 @@ const struct SpriteTemplate gDevilSpriteTemplate = .callback = AnimDevil, }; -const union AnimCmd gUnknown_08593B08[] = +static const union AnimCmd sAnim_FurySwipes[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -1121,7 +1121,7 @@ const union AnimCmd gUnknown_08593B08[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08593B1C[] = +static const union AnimCmd sAnim_FurySwipes_Flipped[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -1130,10 +1130,10 @@ const union AnimCmd gUnknown_08593B1C[] = ANIMCMD_END, }; -const union AnimCmd *const gFurySwipesAnimTable[] = +static const union AnimCmd *const sAnims_FurySwipes[] = { - gUnknown_08593B08, - gUnknown_08593B1C, + sAnim_FurySwipes, + sAnim_FurySwipes_Flipped, }; const struct SpriteTemplate gFurySwipesSpriteTemplate = @@ -1141,7 +1141,7 @@ const struct SpriteTemplate gFurySwipesSpriteTemplate = .tileTag = ANIM_TAG_SWIPE, .paletteTag = ANIM_TAG_SWIPE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gFurySwipesAnimTable, + .anims = sAnims_FurySwipes, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFurySwipes, @@ -1299,11 +1299,11 @@ const struct SpriteTemplate gRoarOfTimeBombTemplate = .callback = AnimSpriteOnMonPos }; -static void sub_8103448(struct Sprite *sprite) +static void AnimCirclingFinger(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[2]; sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[5]; @@ -1313,7 +1313,7 @@ static void sub_8103448(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_8103498(struct Sprite *sprite) +static void AnimBouncingMusicNote(struct Sprite *sprite) { u8 battler; if (gBattleAnimArgs[0] == 0) @@ -1324,20 +1324,20 @@ static void sub_8103498(struct Sprite *sprite) SetSpriteNextToMonHead(battler, sprite); sprite->data[0] = 0; sprite->data[1] = 0; - sprite->callback = sub_81034D8; + sprite->callback = AnimBouncingMusicNote_Step; } -static void sub_81034D8(struct Sprite *sprite) +static void AnimBouncingMusicNote_Step(struct Sprite *sprite) { switch (sprite->data[0]) { case 0: - sprite->pos2.y -= 3; + sprite->y2 -= 3; if (++sprite->data[1] == 6) sprite->data[0]++; break; case 1: - sprite->pos2.y += 3; + sprite->y2 += 3; if (--sprite->data[1] == 0) sprite->data[0]++; break; @@ -1348,60 +1348,60 @@ static void sub_81034D8(struct Sprite *sprite) } } -static void sub_810353C(struct Sprite *sprite) +static void AnimVibrateBattlerBack_Step(struct Sprite *sprite) { s16 temp; - gSprites[sprite->data[2]].pos2.x += sprite->data[1]; + gSprites[sprite->data[2]].x2 += sprite->data[1]; temp = sprite->data[1]; sprite->data[1] = -temp; if (sprite->data[0] == 0) { - gSprites[sprite->data[2]].pos2.x = 0; + gSprites[sprite->data[2]].x2 = 0; DestroySpriteAndMatrix(sprite); } sprite->data[0]--; } -static void sub_810358C(struct Sprite *sprite) +static void AnimVibrateBattlerBack(struct Sprite *sprite) { u8 spriteId; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); spriteId = gBattlerSpriteIds[gBattleAnimTarget]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = spriteId; - sprite->callback = sub_810353C; + sprite->callback = AnimVibrateBattlerBack_Step; sprite->invisible = TRUE; } -static void sub_8103620(struct Sprite *sprite) +static void AnimMovingClamp(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[4]; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_8103658); + StoreSpriteCallbackInData6(sprite, AnimMovingClamp_Step); } -static void sub_8103658(struct Sprite *sprite) +static void AnimMovingClamp_Step(struct Sprite *sprite) { sprite->data[0] = sprite->data[1]; - sprite->data[2] = sprite->pos1.x; - sprite->data[4] = sprite->pos1.y + 15; + sprite->data[2] = sprite->x; + sprite->data[4] = sprite->y + 15; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, sub_8103680); + StoreSpriteCallbackInData6(sprite, AnimMovingClamp_End); } -static void sub_8103680(struct Sprite *sprite) +static void AnimMovingClamp_End(struct Sprite *sprite) { if (sprite->data[5] == 0) DestroyAnimSprite(sprite); @@ -1431,7 +1431,7 @@ static void AnimTask_Withdraw_Step(u8 taskId) { gTasks[taskId].data[0] += 0xB0; // this y position update gets overwritten by SetBattlerSpriteYOffsetFromRotation() - gSprites[spriteId].pos2.y++; + gSprites[spriteId].y2++; } else if (gTasks[taskId].data[1] == 1) { @@ -1444,7 +1444,7 @@ static void AnimTask_Withdraw_Step(u8 taskId) { gTasks[taskId].data[0] -= 0xB0; // this y position update gets overwritten by SetBattlerSpriteYOffsetFromRotation() - gSprites[spriteId].pos2.y--; + gSprites[spriteId].y2--; } SetBattlerSpriteYOffsetFromRotation(spriteId); @@ -1470,11 +1470,11 @@ static void AnimKinesisZapEnergy(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { sprite->hFlip = 1; @@ -1504,8 +1504,8 @@ static void AnimSwordsDanceBlade(struct Sprite *sprite) static void AnimSwordsDanceBlade_Step(struct Sprite *sprite) { sprite->data[0] = 6; - sprite->data[2] = sprite->pos1.x; - sprite->data[4] = sprite->pos1.y - 32; + sprite->data[2] = sprite->x; + sprite->data[4] = sprite->y - 32; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -1537,7 +1537,7 @@ void AnimSonicBoomProjectile(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); targetXPos = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; targetYPos = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; - rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y); + rotation = ArcTan2Neg(targetXPos - sprite->x, targetYPos - sprite->y); rotation += 0xF000; if (IsContest()) rotation -= 0x6000; @@ -1576,14 +1576,14 @@ static void AnimAirWaveProjectile_Step1(struct Sprite *sprite) sprite->data[1] += sprite->data[5]; sprite->data[2] += sprite->data[6]; if (1 & task->data[7]) - sprite->pos2.x = ((u16)sprite->data[1] >> 8) * -1; + sprite->x2 = ((u16)sprite->data[1] >> 8) * -1; else - sprite->pos2.x = (u16)sprite->data[1] >> 8; + sprite->x2 = (u16)sprite->data[1] >> 8; if (1 & task->data[8]) - sprite->pos2.y = ((u16)sprite->data[2] / 256u) * -1; + sprite->y2 = ((u16)sprite->data[2] / 256u) * -1; else - sprite->pos2.y = (u16)sprite->data[2] / 256u; + sprite->y2 = (u16)sprite->data[2] / 256u; if (sprite->data[0]-- <= 0) { @@ -1602,33 +1602,33 @@ static void AnimAirWaveProjectile(struct Sprite *sprite) sprite->data[1] += (-2 & task->data[7]); sprite->data[2] += (-2 & task->data[8]); if (1 & task->data[7]) - sprite->pos2.x = ((u16)sprite->data[1] >> 8) * -1; + sprite->x2 = ((u16)sprite->data[1] >> 8) * -1; else - sprite->pos2.x = (u16)sprite->data[1] >> 8; + sprite->x2 = (u16)sprite->data[1] >> 8; if (1 & task->data[8]) - sprite->pos2.y = ((u16)sprite->data[2] / 256u) * -1; + sprite->y2 = ((u16)sprite->data[2] / 256u) * -1; else - sprite->pos2.y = (u16)sprite->data[2] / 256u; + sprite->y2 = (u16)sprite->data[2] / 256u; if (sprite->data[0]-- <= 0) { sprite->data[0] = 8; task->data[5] = 4; a = MathUtil_Inv16(Q_8_8(16)); - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; - if (task->data[11] >= sprite->pos1.x) - b = (task->data[11] - sprite->pos1.x) << 8; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; + if (task->data[11] >= sprite->x) + b = (task->data[11] - sprite->x) << 8; else - b = (sprite->pos1.x - task->data[11]) << 8; + b = (sprite->x - task->data[11]) << 8; - if (task->data[12] >= sprite->pos1.y) - c = (task->data[12] - sprite->pos1.y) << 8; + if (task->data[12] >= sprite->y) + c = (task->data[12] - sprite->y) << 8; else - c = (sprite->pos1.y - task->data[12]) << 8; + c = (sprite->y - task->data[12]) << 8; sprite->data[2] = 0; sprite->data[1] = 0; @@ -1775,14 +1775,14 @@ void AnimTask_AirCutterProjectile(u8 taskId) gTasks[taskId].func = AirCutterProjectileStep1; } -static void sub_8103FE8(struct Sprite *sprite) +static void AnimVoidLines(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); - sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(gUnknown_085934A0.paletteTag) << 4); - sprite->callback = sub_8104018; + sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sVoidLinesSpriteTemplate.paletteTag) << 4); + sprite->callback = AnimVoidLines_Step; } -static void sub_8104018(struct Sprite *sprite) +static void AnimVoidLines_Step(struct Sprite *sprite) { u16 id, val; int i; @@ -1815,31 +1815,31 @@ static void AnimCoinThrow(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; r6 += gBattleAnimArgs[2]; - var = ArcTan2Neg(r6 - sprite->pos1.x, r7 - sprite->pos1.y); + var = ArcTan2Neg(r6 - sprite->x, r7 - sprite->y); var += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, var); sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = r6; sprite->data[4] = r7; - sprite->callback = sub_80A7000; + sprite->callback = InitAnimLinearTranslationWithSpeedAndPos; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } static void AnimFallingCoin(struct Sprite *sprite) { sprite->data[2] = -16; - sprite->pos1.y += 8; + sprite->y += 8; sprite->callback = AnimFallingCoin_Step; } static void AnimFallingCoin_Step(struct Sprite *sprite) { sprite->data[0] += 0x80; - sprite->pos2.x = sprite->data[0] >> 8; + sprite->x2 = sprite->data[0] >> 8; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - sprite->pos2.x = -sprite->pos2.x; + sprite->x2 = -sprite->x2; - sprite->pos2.y = Sin(sprite->data[1], sprite->data[2]); + sprite->y2 = Sin(sprite->data[1], sprite->data[2]); sprite->data[1] += 5; if (sprite->data[1] > 126) { @@ -1867,10 +1867,10 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite) u16 rand; s16* ptr; PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(63)); - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; ptr = &sprite->data[7]; for (i = 0; i < 8; i++) ptr[i - 7] = 0; @@ -1886,11 +1886,11 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite) static void AnimBulletSeed_Step2(struct Sprite *sprite) { sprite->data[0] += sprite->data[7]; - sprite->pos2.x = sprite->data[0] >> 8; + sprite->x2 = sprite->data[0] >> 8; if (sprite->data[7] & 1) - sprite->pos2.x = -sprite->pos2.x; + sprite->x2 = -sprite->x2; - sprite->pos2.y = Sin(sprite->data[1], sprite->data[6]); + sprite->y2 = Sin(sprite->data[1], sprite->data[6]); sprite->data[1] += 8; if (sprite->data[1] > 126) { @@ -1913,7 +1913,7 @@ static void AnimRazorWindTornado(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - sprite->pos1.y += 16; + sprite->y += 16; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[1] = gBattleAnimArgs[2]; @@ -1942,8 +1942,8 @@ static void AnimViceGripPincer(struct Sprite *sprite) StartSpriteAnim(sprite, 1); } - sprite->pos1.x += startXOffset; - sprite->pos1.y += startYOffset; + sprite->x += startXOffset; + sprite->y += startYOffset; sprite->data[0] = 6; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + endXOffset; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + endYOffset; @@ -1974,12 +1974,12 @@ static void AnimGuillotinePincer(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[0]); } - sprite->pos1.x += startXOffset; - sprite->pos1.y += startYOffset; + sprite->x += startXOffset; + sprite->y += startYOffset; sprite->data[0] = 6; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + endXOffset; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + endYOffset; InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[0]; @@ -1993,10 +1993,10 @@ static void AnimGuillotinePincer_Step1(struct Sprite *sprite) { SeekSpriteAnim(sprite, 0); sprite->animPaused = 1; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 2; - sprite->pos2.y = -2; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 2; + sprite->y2 = -2; sprite->data[0] = sprite->data[6]; sprite->data[1] ^= 1; sprite->data[2] ^= 1; @@ -2010,15 +2010,15 @@ static void AnimGuillotinePincer_Step2(struct Sprite *sprite) { if (sprite->data[3]) { - sprite->pos2.x = -sprite->pos2.x; - sprite->pos2.y = -sprite->pos2.y; + sprite->x2 = -sprite->x2; + sprite->y2 = -sprite->y2; } sprite->data[3] ^= 1; if (++sprite->data[4] == 51) { - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[4] = 0; sprite->data[3] = 0; sprite->animPaused = 0; @@ -2033,26 +2033,26 @@ static void AnimGuillotinePincer_Step3(struct Sprite *sprite) DestroyAnimSprite(sprite); } -// Scales up the target mon sprite, and sets the palette to greyscale. +// Scales up the target mon sprite, and sets the palette to grayscale. // Used in MOVE_DISABLE. // No args. -void AnimTask_GrowAndGreyscale(u8 taskId) +void AnimTask_GrowAndGrayscale(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND); SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0); - SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); + SetGrayscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); gTasks[taskId].data[0] = 80; - gTasks[taskId].func = AnimTask_GrowAndGreyscale_Step; + gTasks[taskId].func = AnimTask_GrowAndGrayscale_Step; } -static void AnimTask_GrowAndGreyscale_Step(u8 taskId) +static void AnimTask_GrowAndGrayscale_Step(u8 taskId) { if (--gTasks[taskId].data[0] == -1) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); ResetSpriteRotScale(spriteId); - SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, TRUE); + SetGrayscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, TRUE); DestroyAnimVisualTask(taskId); } } @@ -2136,7 +2136,7 @@ static void AnimTask_Minimize_Step(u8 taskId) break; case 5: ResetSpriteRotScale(task->data[0]); - gSprites[task->data[15]].pos2.y = 0; + gSprites[task->data[15]].y2 = 0; DestroyAnimVisualTask(taskId); break; } @@ -2213,7 +2213,7 @@ static void AnimTask_Splash_Step(u8 taskId) case 0: RunAffineAnimFromTaskData(task); task->data[4] += 3; - gSprites[task->data[0]].pos2.y += task->data[4]; + gSprites[task->data[0]].y2 += task->data[4]; if (++task->data[3] > 7) { task->data[3] = 0; @@ -2222,7 +2222,7 @@ static void AnimTask_Splash_Step(u8 taskId) break; case 1: RunAffineAnimFromTaskData(task); - gSprites[task->data[0]].pos2.y += task->data[4]; + gSprites[task->data[0]].y2 += task->data[4]; if (++task->data[3] > 7) { task->data[3] = 0; @@ -2232,7 +2232,7 @@ static void AnimTask_Splash_Step(u8 taskId) case 2: if (task->data[4] != 0) { - gSprites[task->data[0]].pos2.y -= 2; + gSprites[task->data[0]].y2 -= 2; task->data[4] -= 2; } else @@ -2243,7 +2243,7 @@ static void AnimTask_Splash_Step(u8 taskId) { if (--task->data[2] == 0) { - gSprites[task->data[0]].pos2.y = 0; + gSprites[task->data[0]].y2 = 0; DestroyAnimVisualTask(taskId); } else @@ -2282,17 +2282,17 @@ static void AnimBreathPuff(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { StartSpriteAnim(sprite, 0); - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + 32; sprite->data[1] = 64; } else { StartSpriteAnim(sprite, 1); - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - 32; sprite->data[1] = -64; } - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = 52; sprite->data[2] = 0; sprite->data[3] = 0; @@ -2316,10 +2316,10 @@ void AnimAngerMark(struct Sprite *sprite) if (GetBattlerSide(battler) == B_SIDE_OPPONENT) gBattleAnimArgs[1] *= -1; - sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; - if (sprite->pos1.y < 8) - sprite->pos1.y = 8; + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; + if (sprite->y < 8) + sprite->y = 8; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; @@ -2352,8 +2352,8 @@ void AnimTask_ThrashMoveMonVertical(u8 taskId) task->data[2] = 4; task->data[3] = 7; task->data[4] = 3; - task->data[5] = gSprites[task->data[0]].pos1.x; - task->data[6] = gSprites[task->data[0]].pos1.y; + task->data[5] = gSprites[task->data[0]].x; + task->data[6] = gSprites[task->data[0]].y; task->data[7] = 0; task->data[8] = 0; task->data[9] = 2; @@ -2371,14 +2371,14 @@ static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId) task->data[7] = 0; task->data[8]++; if (task->data[8] & 1) - gSprites[task->data[0]].pos1.y += task->data[9]; + gSprites[task->data[0]].y += task->data[9]; else - gSprites[task->data[0]].pos1.y -= task->data[9]; + gSprites[task->data[0]].y -= task->data[9]; } switch (task->data[1]) { case 0: - gSprites[task->data[0]].pos1.x += task->data[2]; + gSprites[task->data[0]].x += task->data[2]; if (--task->data[3] == 0) { task->data[3] = 14; @@ -2386,7 +2386,7 @@ static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId) } break; case 1: - gSprites[task->data[0]].pos1.x -= task->data[2]; + gSprites[task->data[0]].x -= task->data[2]; if (--task->data[3] == 0) { task->data[3] = 7; @@ -2394,7 +2394,7 @@ static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId) } break; case 2: - gSprites[task->data[0]].pos1.x += task->data[2]; + gSprites[task->data[0]].x += task->data[2]; if (--task->data[3] == 0) { if (--task->data[4] != 0) @@ -2405,7 +2405,7 @@ static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId) else { if ((task->data[8] & 1) != 0) - gSprites[task->data[0]].pos1.y -= task->data[9]; + gSprites[task->data[0]].y -= task->data[9]; DestroyAnimVisualTask(taskId); } @@ -2504,8 +2504,8 @@ static void AnimTask_SketchDrawMon_Step(u8 taskId) static void AnimPencil(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) - 16; - sprite->pos1.y = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 16; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) - 16; + sprite->y = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 16; sprite->data[0] = 0; sprite->data[1] = 0; sprite->data[2] = 0; @@ -2536,7 +2536,7 @@ static void AnimPencil_Step(struct Sprite *sprite) if (++sprite->data[1] > 3 && sprite->data[2] < sprite->data[5]) { sprite->data[1] = 0; - sprite->pos1.y -= 1; + sprite->y -= 1; sprite->data[2]++; if (sprite->data[2] % 10 == 0) PlaySE12WithPanning(SE_M_SKETCH, sprite->data[6]); @@ -2552,7 +2552,7 @@ static void AnimPencil_Step(struct Sprite *sprite) sprite->data[4] = -0x40 - sprite->data[4]; sprite->data[3] *= -1; } - sprite->pos2.x = sprite->data[4]; + sprite->x2 = sprite->data[4]; if (sprite->data[5] == sprite->data[2]) { sprite->data[1] = 0; @@ -2606,7 +2606,7 @@ static void AnimBlendThinRing(struct Sprite *sprite) sprite->callback(sprite); } -void sub_8105284(struct Sprite *sprite) +static void AnimHyperVoiceRing_WaitEnd(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -2661,7 +2661,7 @@ void AnimHyperVoiceRing(struct Sprite *sprite) r9 = GetBattlerSpriteCoord(battler1, r10) - gBattleAnimArgs[0]; if (!IsContest() && IsBattlerSpriteVisible(BATTLE_PARTNER(battler1))) { - if (gSprites[gBattlerSpriteIds[battler1]].pos1.x < gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler1)]].pos1.x) + if (gSprites[gBattlerSpriteIds[battler1]].x < gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler1)]].x) sprite->subpriority = gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler1)]].subpriority + 1; else sprite->subpriority = gSprites[gBattlerSpriteIds[battler1]].subpriority - 1; @@ -2690,13 +2690,13 @@ void AnimHyperVoiceRing(struct Sprite *sprite) sp0 -= gBattleAnimArgs[3]; sp1 += gBattleAnimArgs[4]; - sprite->pos1.x = sprite->data[1] = r9; - sprite->pos1.y = sprite->data[3] = r6; + sprite->x = sprite->data[1] = r9; + sprite->y = sprite->data[3] = r6; sprite->data[2] = sp0; sprite->data[4] = sp1; sprite->data[0] = gBattleAnimArgs[0]; InitAnimLinearTranslation(sprite); - sprite->callback = sub_8105284; + sprite->callback = AnimHyperVoiceRing_WaitEnd; sprite->callback(sprite); } @@ -2727,17 +2727,17 @@ static void AnimSoftBoiledEgg(struct Sprite *sprite) static void AnimSoftBoiledEgg_Step1(struct Sprite *sprite) { s16 add; - sprite->pos2.y -= (sprite->data[0] >> 8); - sprite->pos2.x = sprite->data[1] >> 8; + sprite->y2 -= (sprite->data[0] >> 8); + sprite->x2 = sprite->data[1] >> 8; sprite->data[0] -= 32; add = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? -160 : 160; sprite->data[1] += add; - if (sprite->pos2.y > 0) + if (sprite->y2 > 0) { - sprite->pos1.y += sprite->pos2.y; - sprite->pos1.x += sprite->pos2.x; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->y += sprite->y2; + sprite->x += sprite->x2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[0] = 0; StartSpriteAffineAnim(sprite, 1); sprite->callback = AnimSoftBoiledEgg_Step2; @@ -2774,7 +2774,7 @@ static void AnimSoftBoiledEgg_Step3(struct Sprite *sprite) static void AnimSoftBoiledEgg_Step3_Callback1(struct Sprite *sprite) { - sprite->pos2.y -= 2; + sprite->y2 -= 2; if (++sprite->data[0] == 9) { sprite->data[0] = 16; @@ -2830,7 +2830,7 @@ static void AnimTask_AttackerStretchAndDisappear_Step(u8 taskId) struct Task* task = &gTasks[taskId]; if (!RunAffineAnimFromTaskData(task)) { - gSprites[task->data[0]].pos2.y = 0; + gSprites[task->data[0]].y2 = 0; gSprites[task->data[0]].invisible = TRUE; DestroyAnimVisualTask(taskId); } @@ -2866,7 +2866,7 @@ static void AnimTask_ExtremeSpeedImpact_Step(u8 taskId) switch (task->data[0]) { case 0: - gSprites[task->data[15]].pos2.x += task->data[14]; + gSprites[task->data[15]].x2 += task->data[14]; task->data[1] = 0; task->data[2] = 0; task->data[3] = 0; @@ -2878,14 +2878,14 @@ static void AnimTask_ExtremeSpeedImpact_Step(u8 taskId) task->data[1] = 0; task->data[2]++; if (task->data[2] & 1) - gSprites[task->data[15]].pos2.x += 6; + gSprites[task->data[15]].x2 += 6; else - gSprites[task->data[15]].pos2.x -= 6; + gSprites[task->data[15]].x2 -= 6; if (++task->data[3] > 4) { if (task->data[2] & 1) - gSprites[task->data[15]].pos2.x -= 6; + gSprites[task->data[15]].x2 -= 6; task->data[0]++; } @@ -2898,8 +2898,8 @@ static void AnimTask_ExtremeSpeedImpact_Step(u8 taskId) task->data[0]++; break; case 3: - gSprites[task->data[15]].pos2.x += task->data[13]; - if (gSprites[task->data[15]].pos2.x == 0) + gSprites[task->data[15]].x2 += task->data[13]; + if (gSprites[task->data[15]].x2 == 0) DestroyAnimVisualTask(taskId); break; } @@ -3012,8 +3012,8 @@ static void AnimTask_SpeedDust_Step(u8 taskId) { gSprites[spriteId].data[0] = taskId; gSprites[spriteId].data[1] = 13; - gSprites[spriteId].pos2.x = gSpeedDustPosTable[task->data[2]][0]; - gSprites[spriteId].pos2.y = gSpeedDustPosTable[task->data[2]][1]; + gSprites[spriteId].x2 = gSpeedDustPosTable[task->data[2]][0]; + gSprites[spriteId].y2 = gSpeedDustPosTable[task->data[2]][1]; task->data[13]++; if (++task->data[2] > 3) { @@ -3096,8 +3096,8 @@ static void AnimMagentaHeart(struct Sprite *sprite) if (++sprite->data[0] == 1) InitSpritePosToAnimAttacker(sprite, FALSE); - sprite->pos2.x = Sin(sprite->data[1], 8); - sprite->pos2.y = sprite->data[2] >> 8; + sprite->x2 = Sin(sprite->data[1], 8); + sprite->y2 = sprite->data[2] >> 8; sprite->data[1] = (sprite->data[1] + 7) & 0xFF; sprite->data[2] -= 0x80; if (sprite->data[0] == 60) @@ -3106,17 +3106,17 @@ static void AnimMagentaHeart(struct Sprite *sprite) void AnimTask_FakeOut(u8 taskId) { - u16 win0h = IsContest() ? 0x98 : 0xF0; + u16 win0h = IsContest() ? 152 : DISPLAY_WIDTH; u16 win0v = 0; gBattle_WIN0H = win0h; - gBattle_WIN0V = 0xA0; + gBattle_WIN0V = DISPLAY_HEIGHT; SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V); - SetGpuReg(REG_OFFSET_WININ, 0x3F1F); - SetGpuReg(REG_OFFSET_WINOUT, 0x3F3F); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN1_ALL); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_ALL | WINOUT_WINOBJ_ALL); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN); - SetGpuReg(REG_OFFSET_BLDY, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 16); gTasks[taskId].data[0] = win0v; gTasks[taskId].data[1] = win0h; gTasks[taskId].func = AnimTask_FakeOut_Step1; @@ -3133,7 +3133,7 @@ static void AnimTask_FakeOut_Step1(u8 taskId) } else { - gBattle_WIN0H = gTasks[taskId].data[1] | (gTasks[taskId].data[0] << 8); + gBattle_WIN0H = WIN_RANGE(gTasks[taskId].data[0], gTasks[taskId].data[1]); } } @@ -3143,7 +3143,7 @@ static void AnimTask_FakeOut_Step2(u8 taskId) { gTasks[taskId].data[11] = 0x88; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN); - BlendPalettes(sub_80A75AC(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31)); + BlendPalettes(GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31)); } else if (gTasks[taskId].data[10] > 4) { @@ -3163,15 +3163,15 @@ void AnimTask_StretchTargetUp(u8 taskId) if (++gTasks[taskId].data[0] == 1) { PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_TARGET), sAffineAnims_StretchBattlerUp); - gSprites[spriteId].pos2.x = 4; + gSprites[spriteId].x2 = 4; } else { - gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x; + gSprites[spriteId].x2 = -gSprites[spriteId].x2; if (!RunAffineAnimFromTaskData(&gTasks[taskId])) { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; DestroyAnimVisualTask(taskId); } } @@ -3183,15 +3183,15 @@ void AnimTask_StretchAttackerUp(u8 taskId) if (++gTasks[taskId].data[0] == 1) { PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), sAffineAnims_StretchBattlerUp); - gSprites[spriteId].pos2.x = 4; + gSprites[spriteId].x2 = 4; } else { - gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x; + gSprites[spriteId].x2 = -gSprites[spriteId].x2; if (!RunAffineAnimFromTaskData(&gTasks[taskId])) { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; DestroyAnimVisualTask(taskId); } } @@ -3201,9 +3201,9 @@ static void AnimRedHeartProjectile(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 95; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); InitAnimLinearTranslation(sprite); sprite->callback = AnimRedHeartProjectile_Step; @@ -3213,7 +3213,7 @@ static void AnimRedHeartProjectile_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { - sprite->pos2.y += Sin(sprite->data[5], 14); + sprite->y2 += Sin(sprite->data[5], 14); sprite->data[5] = (sprite->data[5] + 4) & 0xFF; } else @@ -3233,8 +3233,8 @@ void AnimParticleBurst(struct Sprite *sprite) else { sprite->data[4] += sprite->data[1]; - sprite->pos2.x = sprite->data[4] >> 8; - sprite->pos2.y = Sin(sprite->data[3], sprite->data[2]); + sprite->x2 = sprite->data[4] >> 8; + sprite->y2 = Sin(sprite->data[3], sprite->data[2]); sprite->data[3] = (sprite->data[3] + 3) & 0xFF; if (sprite->data[3] > 100) sprite->invisible = sprite->data[3] % 2; @@ -3246,8 +3246,8 @@ void AnimParticleBurst(struct Sprite *sprite) static void AnimRedHeartRising(struct Sprite *sprite) { - sprite->pos1.x = gBattleAnimArgs[0]; - sprite->pos1.y = 160; + sprite->x = gBattleAnimArgs[0]; + sprite->y = DISPLAY_HEIGHT; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[1]; sprite->callback = WaitAnimForDuration; @@ -3258,10 +3258,10 @@ static void AnimRedHeartRising_Step(struct Sprite *sprite) { s16 y; sprite->data[2] += sprite->data[1]; - sprite->pos2.y = -((u16)sprite->data[2] >> 8); - sprite->pos2.x = Sin(sprite->data[3], 4); + sprite->y2 = -((u16)sprite->data[2] >> 8); + sprite->x2 = Sin(sprite->data[3], 4); sprite->data[3] = (sprite->data[3] + 3) & 0xFF; - y = sprite->pos1.y + sprite->pos2.y; + y = sprite->y + sprite->y2; if (y <= 72) { sprite->invisible = sprite->data[3] % 2; @@ -3285,7 +3285,7 @@ void AnimTask_HeartsBackground(u8 taskId) gBattle_BG1_Y = 0; SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgGfx(animBg.bgId, &gBattleAnimBgImage_Attract, animBg.tilesOffset); AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_Attract, 0); LoadCompressedPalette(&gBattleAnimBgPalette_Attract, animBg.paletteId * 16, 32); @@ -3332,8 +3332,8 @@ static void AnimTask_HeartsBackground_Step(u8 taskId) } break; case 3: - sub_80A6B30(&animBg); - sub_80A6C68(animBg.bgId); + GetBattleAnimBg1Data(&animBg); + ClearBattleAnimBg(animBg.bgId); gTasks[taskId].data[12]++; break; case 4: @@ -3363,7 +3363,7 @@ void AnimTask_ScaryFace(u8 taskId) gBattle_BG1_Y = 0; SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); if (IsContest()) AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_ScaryFaceContest, 0); else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) @@ -3416,9 +3416,9 @@ static void AnimTask_ScaryFace_Step(u8 taskId) } break; case 3: - sub_80A6B30(&animBg); - sub_80A6C68(1); - sub_80A6C68(2); + GetBattleAnimBg1Data(&animBg); + ClearBattleAnimBg(1); + ClearBattleAnimBg(2); gTasks[taskId].data[12]++; // fall through case 4: @@ -3439,8 +3439,8 @@ static void AnimTask_ScaryFace_Step(u8 taskId) // arg 1: initial wave offset void AnimOrbitFast(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->affineAnimPaused = 1; sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; @@ -3456,8 +3456,8 @@ static void AnimOrbitFast_Step(struct Sprite *sprite) else sprite->subpriority = sprite->data[7] - 1; - sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8); - sprite->pos2.y = Cos(sprite->data[1], sprite->data[3] >> 8); + sprite->x2 = Sin(sprite->data[1], sprite->data[2] >> 8); + sprite->y2 = Cos(sprite->data[1], sprite->data[3] >> 8); sprite->data[1] = (sprite->data[1] + 9) & 0xFF; switch (sprite->data[5]) { @@ -3490,8 +3490,8 @@ static void AnimOrbitFast_Step(struct Sprite *sprite) // arg 0: initial wave offset void AnimOrbitScatter(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->callback = AnimOrbitScatter_Step; @@ -3499,24 +3499,25 @@ void AnimOrbitScatter(struct Sprite *sprite) static void AnimOrbitScatter_Step(struct Sprite *sprite) { - sprite->pos2.x += sprite->data[0]; - sprite->pos2.y += sprite->data[1]; - if (sprite->pos1.x + sprite->pos2.x + 16 > 272u || sprite->pos1.y + sprite->pos2.y > 160 || sprite->pos1.y + sprite->pos2.y < -16) + sprite->x2 += sprite->data[0]; + sprite->y2 += sprite->data[1]; + if (sprite->x + sprite->x2 + 16 > ((u32)DISPLAY_WIDTH + 32) + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); } static void AnimSpitUpOrb_Step(struct Sprite *sprite) { - sprite->pos2.x += sprite->data[0]; - sprite->pos2.y += sprite->data[1]; + sprite->x2 += sprite->data[0]; + sprite->y2 += sprite->data[1]; if (sprite->data[3]++ >= sprite->data[2]) DestroyAnimSprite(sprite); } static void AnimSpitUpOrb(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->data[2] = gBattleAnimArgs[1]; @@ -3540,31 +3541,31 @@ static void AnimAngel(struct Sprite *sprite) s16 var0; if (!sprite->data[0]) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } sprite->data[0]++; var0 = (sprite->data[0] * 10) & 0xFF; - sprite->pos2.x = Sin(var0, 80) >> 8; + sprite->x2 = Sin(var0, 80) >> 8; if (sprite->data[0] < 80) - sprite->pos2.y = (sprite->data[0] / 2) + (Cos(var0, 80) >> 8); + sprite->y2 = (sprite->data[0] / 2) + (Cos(var0, 80) >> 8); if (sprite->data[0] > 90) { sprite->data[2]++; - sprite->pos2.x -= sprite->data[2] / 2; + sprite->x2 -= sprite->data[2] / 2; } if (sprite->data[0] > 100) DestroyAnimSprite(sprite); } -static void sub_8106A64(struct Sprite *sprite) +static void AnimPinkHeart_Step(struct Sprite *sprite) { sprite->data[5]++; - sprite->pos2.x = Sin(sprite->data[3], 5); - sprite->pos2.y = sprite->data[5] / 2; + sprite->x2 = Sin(sprite->data[3], 5); + sprite->y2 = sprite->data[5] / 2; sprite->data[3] = (sprite->data[3] + 3) & 0xFF; if (sprite->data[5] > 20) sprite->invisible = sprite->data[5] % 2; @@ -3584,16 +3585,16 @@ static void AnimPinkHeart(struct Sprite *sprite) else { sprite->data[4] += sprite->data[1]; - sprite->pos2.x = sprite->data[4] >> 8; - sprite->pos2.y = Sin(sprite->data[3], sprite->data[2]); + sprite->x2 = sprite->data[4] >> 8; + sprite->y2 = Sin(sprite->data[3], sprite->data[2]); sprite->data[3] = (sprite->data[3] + 3) & 0xFF; if (sprite->data[3] > 70) { - sprite->callback = sub_8106A64; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->callback = AnimPinkHeart_Step; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[3] = Random2() % 180; } } @@ -3603,8 +3604,8 @@ static void AnimDevil(struct Sprite *sprite) { if (sprite->data[3] == 0) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; StartSpriteAnim(sprite, 0); sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 1; sprite->data[2] = 1; @@ -3613,8 +3614,8 @@ static void AnimDevil(struct Sprite *sprite) sprite->data[1] = (sprite->data[0] * 4) % 256; if (sprite->data[1] < 0) sprite->data[1] = 0; - sprite->pos2.x = Cos(sprite->data[1], 30 - sprite->data[0] / 4); - sprite->pos2.y = Sin(sprite->data[1], 10 - sprite->data[0] / 8); + sprite->x2 = Cos(sprite->data[1], 30 - sprite->data[0] / 4); + sprite->y2 = Sin(sprite->data[1], 10 - sprite->data[0] / 8); if (sprite->data[1] > 128 && sprite->data[2] > 0) sprite->data[2] = -1; if (sprite->data[1] == 0 && sprite->data[2] < 0) @@ -3632,8 +3633,8 @@ static void AnimFurySwipes(struct Sprite *sprite) { if (sprite->data[0] == 0) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->data[0]++; } @@ -3653,19 +3654,19 @@ static void AnimMovementWaves(struct Sprite *sprite) { if (!gBattleAnimArgs[0]) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); } if (!gBattleAnimArgs[1]) - sprite->pos1.x += 32; + sprite->x += 32; else - sprite->pos1.x -= 32; + sprite->x -= 32; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[1]; @@ -3707,11 +3708,11 @@ static void AnimJaggedMusicNote(struct Sprite *sprite) if (GetBattlerSide(battler) == B_SIDE_OPPONENT) gBattleAnimArgs[1] *= -1; - sprite->pos1.x = GetBattlerSpriteCoord(battler, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(battler, 2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[2]; sprite->data[0] = 0; - sprite->data[1] = (u16)sprite->pos1.x << 3; - sprite->data[2] = (u16)sprite->pos1.y << 3; + sprite->data[1] = (u16)sprite->x << 3; + sprite->data[2] = (u16)sprite->y << 3; var1 = gBattleAnimArgs[1] << 3; if (var1 < 0) @@ -3731,8 +3732,8 @@ static void AnimJaggedMusicNote_Step(struct Sprite *sprite) { sprite->data[1] += sprite->data[3]; sprite->data[2] += sprite->data[4]; - sprite->pos1.x = sprite->data[1] >> 3; - sprite->pos1.y = sprite->data[2] >> 3; + sprite->x = sprite->data[1] >> 3; + sprite->y = sprite->data[2] >> 3; if (++sprite->data[0] > 16) DestroyAnimSprite(sprite); } @@ -3746,7 +3747,7 @@ static void AnimPerishSongMusicNote2(struct Sprite *sprite) } if (++sprite->data[0] == sprite->data[1]) - SetGreyscaleOrOriginalPalette(sprite->oam.paletteNum + 16, 0); + SetGrayscaleOrOriginalPalette(sprite->oam.paletteNum + 16, 0); if (sprite->data[0] == sprite->data[1] + 80) DestroyAnimSprite(sprite); @@ -3759,8 +3760,8 @@ static void AnimPerishSongMusicNote(struct Sprite *sprite) if (!sprite->data[0]) { - sprite->pos1.x = 120; - sprite->pos1.y = (gBattleAnimArgs[0] + (((u16)gBattleAnimArgs[0]) >> 31)) / 2 - 15; + sprite->x = 120; + sprite->y = (gBattleAnimArgs[0] + (((u16)gBattleAnimArgs[0]) >> 31)) / 2 - 15; StartSpriteAnim(sprite, gBattleAnimArgs[1]); @@ -3776,9 +3777,9 @@ static void AnimPerishSongMusicNote(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] + 10) & 0xFF; index &= var2; - sprite->pos2.x = Cos(index, 100); + sprite->x2 = Cos(index, 100); - sprite->pos2.y = sprite->data[1] + Sin(index, 10) + Cos(sprite->data[6], 4); + sprite->y2 = sprite->data[1] + Sin(index, 10) + Cos(sprite->data[6], 4); if (sprite->data[0] > sprite->data[5]) { @@ -3806,7 +3807,7 @@ static void AnimPerishSongMusicNote_Step1(struct Sprite *sprite) static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite) { sprite->data[3] += sprite->data[2]; - sprite->pos2.y = sprite->data[3]; + sprite->y2 = sprite->data[3]; sprite->data[2]++; @@ -3833,20 +3834,20 @@ static void AnimGuardRing(struct Sprite *sprite) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { - SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->pos1.x, &sprite->pos1.y); - sprite->pos1.y += 40; + SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y); + sprite->y += 40; StartSpriteAffineAnim(sprite, 1); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 40; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 40; } sprite->data[0] = 13; - sprite->data[2] = sprite->pos1.x; - sprite->data[4] = sprite->pos1.y - 72; + sprite->data[2] = sprite->x; + sprite->data[4] = sprite->y - 72; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 8bee2cead3..78b02168e2 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -87,7 +87,7 @@ static void AnimForesightMagnifyingGlass_Step(struct Sprite *); static void AnimMeteorMashStar(struct Sprite *); static void AnimMeteorMashStar_Step(struct Sprite *sprite); static void AnimBlockX_Step(struct Sprite *); -static void sub_815FE80(struct Sprite *); +static void AnimUnusedItemBagSteal(struct Sprite *); static void AnimKnockOffStrike(struct Sprite *); static void AnimKnockOffStrike_Step(struct Sprite *sprite); static void AnimRecycle(struct Sprite *); @@ -439,7 +439,7 @@ const struct SpriteTemplate gRapidSpinSpriteTemplate = .callback = AnimRapidSpin, }; -const union AffineAnimCmd gUnknown_085CE2A0[] = +static const union AffineAnimCmd sAffineAnims_Torment[] = { AFFINEANIMCMD_FRAME(-12, 8, 0, 4), AFFINEANIMCMD_FRAME(20, -20, 0, 4), @@ -725,7 +725,7 @@ const struct SpriteTemplate gSweetScentPetalSpriteTemplate = .callback = AnimSweetScentPetal, }; -const u16 gUnknown_085CE55C[] = INCBIN_U16("graphics/unknown/unknown_85CE55C.gbapal"); +static const u16 sUnusedPalette[] = INCBIN_U16("graphics/battle_anims/unused.gbapal"); const union AnimCmd gPainSplitAnimCmds[] = { @@ -1078,7 +1078,7 @@ const struct SpriteTemplate gMeteorMashStarSpriteTemplate = .callback = AnimMeteorMashStar, }; -const struct SpriteTemplate gUnknown_085CE8F4 = +static const struct SpriteTemplate sUnusedStarBurstSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -1100,7 +1100,7 @@ const struct SpriteTemplate gBlockXSpriteTemplate = .callback = AnimBlockX, }; -const struct SpriteTemplate gUnknown_085CE924 = +static const struct SpriteTemplate sUnusedItemBagStealSpriteTemplate = { .tileTag = ANIM_TAG_ITEM_BAG, .paletteTag = ANIM_TAG_ITEM_BAG, @@ -1108,7 +1108,7 @@ const struct SpriteTemplate gUnknown_085CE924 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_815FE80, + .callback = AnimUnusedItemBagSteal, }; const union AnimCmd gKnockOffStrikeAnimCmds[] = @@ -1221,8 +1221,8 @@ const struct SpriteTemplate gMegaSymbolSpriteTemplate = void AnimBlackSmoke(struct Sprite *sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; if (!gBattleAnimArgs[3]) sprite->data[0] = gBattleAnimArgs[2]; @@ -1237,7 +1237,7 @@ static void AnimBlackSmoke_Step(struct Sprite *sprite) { if (sprite->data[1] > 0) { - sprite->pos2.x = sprite->data[2] >> 8; + sprite->x2 = sprite->data[2] >> 8; sprite->data[2] += sprite->data[0]; sprite->invisible ^= 1; sprite->data[1]--; @@ -1292,7 +1292,7 @@ void AnimTealAlert(struct Sprite *sprite) InitSpritePosToAnimTarget(sprite, TRUE); - rotation = ArcTan2Neg(sprite->pos1.x - x, sprite->pos1.y - y); + rotation = ArcTan2Neg(sprite->x - x, sprite->y - y); rotation += 0x6000; if (IsContest()) rotation += 0x4000; @@ -1355,23 +1355,23 @@ static void AnimMeanLookEye_Step3(struct Sprite *sprite) { case 0: case 1: - sprite->pos2.x = 1; - sprite->pos2.y = 0; + sprite->x2 = 1; + sprite->y2 = 0; break; case 2: case 3: - sprite->pos2.x = -1; - sprite->pos2.y = 0; + sprite->x2 = -1; + sprite->y2 = 0; break; case 4: case 5: - sprite->pos2.x = 0; - sprite->pos2.y = 1; + sprite->x2 = 0; + sprite->y2 = 1; break; case 6: default: - sprite->pos2.x = 0; - sprite->pos2.y = -1; + sprite->x2 = 0; + sprite->y2 = -1; break; } @@ -1510,7 +1510,7 @@ static void AnimLeer(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->callback = RunStoredCallbackWhenAnimEnds; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -1546,10 +1546,10 @@ static void AnimLetterZ(struct Sprite *sprite) var0 = (sprite->data[0] * 20) & 0xFF; sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite->pos2.x = sprite->data[3] / 2; - sprite->pos2.y = Sin(var0 & 0xFF, 5) + (sprite->data[4] / 2); + sprite->x2 = sprite->data[3] / 2; + sprite->y2 = Sin(var0 & 0xFF, 5) + (sprite->data[4] / 2); - if ((u16)(sprite->pos1.x + sprite->pos2.x) > 240) + if ((u16)(sprite->x + sprite->x2) > DISPLAY_WIDTH) DestroyAnimSprite(sprite); } @@ -1607,7 +1607,7 @@ static void AnimSpotlight_Step1(struct Sprite *sprite) case 1: case 3: sprite->data[1] += 117; - sprite->pos2.x = sprite->data[1] >> 8; + sprite->x2 = sprite->data[1] >> 8; if (++sprite->data[2] == 21) { sprite->data[2] = 0; @@ -1616,7 +1616,7 @@ static void AnimSpotlight_Step1(struct Sprite *sprite) break; case 2: sprite->data[1] -= 117; - sprite->pos2.x = sprite->data[1] >> 8; + sprite->x2 = sprite->data[1] >> 8; if (++sprite->data[2] == 41) { sprite->data[2] = 0; @@ -1648,23 +1648,23 @@ static void AnimClappingHand(struct Sprite *sprite) { if (gBattleAnimArgs[3] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); } - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->oam.tileNum += 16; if (gBattleAnimArgs[2] == 0) { sprite->oam.matrixNum = ST_OAM_HFLIP; - sprite->pos2.x = -12; + sprite->x2 = -12; sprite->data[1] = 2; } else { - sprite->pos2.x = 12; + sprite->x2 = 12; sprite->data[1] = -2; } @@ -1680,8 +1680,8 @@ static void AnimClappingHand_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->pos2.x += sprite->data[1]; - if (sprite->pos2.x == 0) + sprite->x2 += sprite->data[1]; + if (sprite->x2 == 0) { sprite->data[2]++; if (sprite->data[3] == 0) @@ -1692,8 +1692,8 @@ static void AnimClappingHand_Step(struct Sprite *sprite) } else { - sprite->pos2.x -= sprite->data[1]; - if (abs(sprite->pos2.x) == 12) + sprite->x2 -= sprite->data[1]; + if (abs(sprite->x2) == 12) { sprite->data[0]--; sprite->data[2]--; @@ -1716,18 +1716,18 @@ void AnimTask_CreateSpotlight(u8 taskId) { if (IsContest()) { - SetGpuReg(REG_OFFSET_WININ, 0x1F3F); - gBattle_WIN1H = 0x98F0; - gBattle_WIN1V = 0x00A0; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ); + gBattle_WIN1H = WIN_RANGE(152, DISPLAY_WIDTH); + gBattle_WIN1V = WIN_RANGE(0, DISPLAY_HEIGHT); SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN0H); SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN0V); } else { SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ); - gBattle_WIN1H = 0x00F0; - gBattle_WIN1V = 0x78A0; - SetGpuReg(REG_OFFSET_WIN1H, 0x00F0); + gBattle_WIN1H = WIN_RANGE(0, DISPLAY_WIDTH); + gBattle_WIN1V = WIN_RANGE(120, DISPLAY_HEIGHT); + SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H); SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); } @@ -1750,18 +1750,18 @@ static void AnimRapidSpin(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); } - sprite->pos2.y = gBattleAnimArgs[2]; + sprite->y2 = gBattleAnimArgs[2]; - sprite->data[0] = (sprite->pos2.y > gBattleAnimArgs[3]); + sprite->data[0] = (sprite->y2 > gBattleAnimArgs[3]); sprite->data[1] = 0; sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[5]; @@ -1772,17 +1772,17 @@ static void AnimRapidSpin(struct Sprite *sprite) static void AnimRapidSpin_Step(struct Sprite *sprite) { sprite->data[1] = (sprite->data[1] + sprite->data[2]) & 0xFF; - sprite->pos2.x = gSineTable[sprite->data[1]] >> 4; - sprite->pos2.y += sprite->data[3]; + sprite->x2 = gSineTable[sprite->data[1]] >> 4; + sprite->y2 += sprite->data[3]; if (sprite->data[0]) { - if (sprite->pos2.y < sprite->data[4]) + if (sprite->y2 < sprite->data[4]) DestroyAnimSprite(sprite); } else { - if (sprite->pos2.y > sprite->data[4]) + if (sprite->y2 > sprite->data[4]) DestroyAnimSprite(sprite); } } @@ -1825,13 +1825,13 @@ void AnimTask_RapinSpinMonElevation(u8 taskId) { var3 = gBattle_BG1_X; task->data[8] = var3; - var4 = var3 + 240; + var4 = var3 + DISPLAY_WIDTH; } else { var3 = gBattle_BG2_X; task->data[8] = var3; - var4 = var3 + 240; + var4 = var3 + DISPLAY_WIDTH; } task->data[9] = var4; @@ -1984,7 +1984,7 @@ static void TormentAttacker_Step(u8 taskId) task->data[5] -= 6; } - PrepareAffineAnimInTaskData(task, task->data[15], gUnknown_085CE2A0); + PrepareAffineAnimInTaskData(task, task->data[15], sAffineAnims_Torment); task->data[1]++; task->data[0] = 1; break; @@ -2073,10 +2073,10 @@ static void AnimTriAttackTriangle(struct Sprite *sprite) if (sprite->data[0] == 61) { StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0] = 20; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); @@ -2106,8 +2106,8 @@ static void AnimBatonPassPokeball(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); sprite->data[1] = 256; sprite->data[2] = 256; @@ -2135,8 +2135,8 @@ static void AnimBatonPassPokeball(struct Sprite *sprite) } break; case 3: - sprite->pos2.y -= 6; - if (sprite->pos1.y + sprite->pos2.y < -32) + sprite->y2 -= 6; + if (sprite->y + sprite->y2 < -32) DestroyAnimSprite(sprite); break; } @@ -2145,11 +2145,11 @@ static void AnimBatonPassPokeball(struct Sprite *sprite) static void AnimWishStar(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x = -16; + sprite->x = -16; else - sprite->pos1.x = 256; + sprite->x = 256; - sprite->pos1.y = 0; + sprite->y = 0; sprite->callback = AnimWishStar_Step; } @@ -2159,23 +2159,23 @@ static void AnimWishStar_Step(struct Sprite *sprite) sprite->data[0] += 72; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos2.x = sprite->data[0] >> 4; + sprite->x2 = sprite->data[0] >> 4; else - sprite->pos2.x = -(sprite->data[0] >> 4); + sprite->x2 = -(sprite->data[0] >> 4); sprite->data[1] += 16; - sprite->pos2.y += sprite->data[1] >> 8; + sprite->y2 += sprite->data[1] >> 8; if (++sprite->data[2] % 3 == 0) { CreateSpriteAndAnimate( &gMiniTwinklingStarSpriteTemplate, - sprite->pos1.x + sprite->pos2.x, - sprite->pos1.y + sprite->pos2.y, + sprite->x + sprite->x2, + sprite->y + sprite->y2, sprite->subpriority + 1); } - newX = sprite->pos1.x + sprite->pos2.x + 32; + newX = sprite->x + sprite->x2 + 32; if (newX > 304) DestroyAnimSprite(sprite); } @@ -2195,7 +2195,7 @@ static void AnimMiniTwinklingStar(struct Sprite *sprite) if (y > 3) y = -y; - sprite->pos2.y = y; + sprite->y2 = y; sprite->callback = AnimMiniTwinklingStar_Step; } @@ -2266,9 +2266,9 @@ static void AnimSwallowBlueOrb(struct Sprite *sprite) sprite->data[0]++; break; case 1: - sprite->pos2.y -= sprite->data[1] >> 8; + sprite->y2 -= sprite->data[1] >> 8; sprite->data[1] -= 96; - if (sprite->pos1.y + sprite->pos2.y > sprite->data[2]) + if (sprite->y + sprite->y2 > sprite->data[2]) DestroyAnimSprite(sprite); break; } @@ -2332,7 +2332,7 @@ void AnimTask_TransformMon(u8 taskId) src = gMonSpritesGfxPtr->sprites.ptr[position] + (gBattleMonForms[gBattleAnimAttacker] << 11); dest = animBg.bgTiles; - CpuCopy32(src, dest, 0x800); + CpuCopy32(src, dest, MON_PIC_SIZE); LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset); if (IsContest()) { @@ -2359,11 +2359,11 @@ void AnimTask_TransformMon(u8 taskId) } if (IsSpeciesNotUnown(gContestResources->moveAnim->targetSpecies)) - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF6C0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gAffineAnims_BattleSpriteContest; else - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF694; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gAffineAnims_BattleSpriteOpponentSide; - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], BATTLER_AFFINE_NORMAL); } gTasks[taskId].data[0]++; @@ -2427,7 +2427,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimMaskTilemap_LightBeam, 0); if (IsContest()) { @@ -2490,8 +2490,8 @@ void AnimTask_MorningSunLightBeam(u8 taskId) } break; case 4: - sub_80A6B30(&animBg); - sub_80A6C68(animBg.bgId); + GetBattleAnimBg1Data(&animBg); + ClearBattleAnimBg(animBg.bgId); if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); @@ -2516,13 +2516,13 @@ static void AnimGreenStar(struct Sprite *sprite) if (xOffset > 31) xOffset = 32 - xOffset; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + xOffset; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + xOffset; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; - spriteId1 = CreateSprite(&gGreenStarSpriteTemplate, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); - spriteId2 = CreateSprite(&gGreenStarSpriteTemplate, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); + spriteId1 = CreateSprite(&gGreenStarSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1); + spriteId2 = CreateSprite(&gGreenStarSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1); StartSpriteAnim(&gSprites[spriteId1], 1); StartSpriteAnim(&gSprites[spriteId2], 2); @@ -2545,16 +2545,16 @@ static void AnimGreenStar(struct Sprite *sprite) static void AnimGreenStar_Step1(struct Sprite *sprite) { s16 delta = sprite->data[3] + sprite->data[2]; - sprite->pos2.y -= delta >> 8; + sprite->y2 -= delta >> 8; sprite->data[3] += sprite->data[2]; sprite->data[3] &= 0xFF; - if (sprite->data[4] == 0 && sprite->pos2.y < -8) + if (sprite->data[4] == 0 && sprite->y2 < -8) { gSprites[sprite->data[6]].invisible = FALSE; sprite->data[4]++; } - if (sprite->data[4] == 1 && sprite->pos2.y < -16) + if (sprite->data[4] == 1 && sprite->y2 < -16) { gSprites[sprite->data[7]].invisible = FALSE; sprite->data[4]++; @@ -2583,7 +2583,7 @@ static void AnimGreenStar_Callback(struct Sprite *sprite) if (!sprite->invisible) { s16 delta = sprite->data[3] + sprite->data[2]; - sprite->pos2.y -= delta >> 8; + sprite->y2 -= delta >> 8; sprite->data[3] += sprite->data[2]; sprite->data[3] &= 0xFF; if (--sprite->data[1] == -1) @@ -2608,7 +2608,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId) if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimMaskTilemap_LightBeam, 0); if (IsContest()) { @@ -2679,8 +2679,8 @@ void AnimTask_DoomDesireLightBeam(u8 taskId) gTasks[taskId].data[0] = 1; break; case 5: - sub_80A6B30(&animBg); - sub_80A6C68(animBg.bgId); + GetBattleAnimBg1Data(&animBg); + ClearBattleAnimBg(animBg.bgId); if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); @@ -2726,12 +2726,12 @@ static void AnimWeakFrustrationAngerMark(struct Sprite *sprite) sprite->data[2] += 128; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos2.x = -(sprite->data[1] >> 8); + sprite->x2 = -(sprite->data[1] >> 8); else - sprite->pos2.x = sprite->data[1] >> 8; + sprite->x2 = sprite->data[1] >> 8; - sprite->pos2.y += sprite->data[2] >> 8; - if (sprite->pos2.y > 64) + sprite->y2 += sprite->data[2] >> 8; + if (sprite->y2 > 64) DestroyAnimSprite(sprite); } } @@ -2787,7 +2787,7 @@ static void AnimTask_RockMonBackAndForth_Step(u8 taskId) switch (task->data[0]) { case 0: - gSprites[task->data[15]].pos2.x += task->data[5]; + gSprites[task->data[15]].x2 += task->data[5]; task->data[2] -= task->data[4]; SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]); SetBattlerSpriteYOffsetFromRotation(task->data[15]); @@ -2798,7 +2798,7 @@ static void AnimTask_RockMonBackAndForth_Step(u8 taskId) } break; case 1: - gSprites[task->data[15]].pos2.x -= task->data[5]; + gSprites[task->data[15]].x2 -= task->data[5]; task->data[2] += task->data[4]; SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]); SetBattlerSpriteYOffsetFromRotation(task->data[15]); @@ -2809,7 +2809,7 @@ static void AnimTask_RockMonBackAndForth_Step(u8 taskId) } break; case 2: - gSprites[task->data[15]].pos2.x += task->data[5]; + gSprites[task->data[15]].x2 += task->data[5]; task->data[2] -= task->data[4]; SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]); SetBattlerSpriteYOffsetFromRotation(task->data[15]); @@ -2842,13 +2842,13 @@ void AnimSweetScentPetal(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - sprite->pos1.x = 0; - sprite->pos1.y = gBattleAnimArgs[0]; + sprite->x = 0; + sprite->y = gBattleAnimArgs[0]; } else { - sprite->pos1.x = 240; - sprite->pos1.y = gBattleAnimArgs[0] - 30; + sprite->x = DISPLAY_WIDTH; + sprite->y = gBattleAnimArgs[0] - 30; } sprite->data[2] = gBattleAnimArgs[2]; @@ -2861,23 +2861,23 @@ static void AnimSweetScentPetal_Step(struct Sprite *sprite) sprite->data[0] += 3; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - sprite->pos1.x += 5; - sprite->pos1.y -= 1; + sprite->x += 5; + sprite->y -= 1; - if (sprite->pos1.x > 240) + if (sprite->x > DISPLAY_WIDTH) DestroyAnimSprite(sprite); - sprite->pos2.y = Sin(sprite->data[0] & 0xFF, 16); + sprite->y2 = Sin(sprite->data[0] & 0xFF, 16); } else { - sprite->pos1.x -= 5; - sprite->pos1.y += 1; + sprite->x -= 5; + sprite->y += 1; - if (sprite->pos1.x < 0) + if (sprite->x < 0) DestroyAnimSprite(sprite); - sprite->pos2.y = Cos(sprite->data[0] & 0xFF, 16); + sprite->y2 = Cos(sprite->data[0] & 0xFF, 16); } } @@ -2953,7 +2953,7 @@ static void AnimTask_FlailMovement_Step(u8 taskId) SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]); SetBattlerSpriteYOffsetFromRotation(task->data[15]); - gSprites[task->data[15]].pos2.x = -(((temp = task->data[2]) >= 0 ? task->data[2] : temp + 63) >> 6); + gSprites[task->data[15]].x2 = -(((temp = task->data[2]) >= 0 ? task->data[2] : temp + 63) >> 6); if (++task->data[1] > 8) { @@ -2981,12 +2981,12 @@ static void AnimPainSplitProjectile(struct Sprite *sprite) { if (gBattleAnimArgs[2] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[1] = 0x80; sprite->data[2] = 0x300; sprite->data[3] = gBattleAnimArgs[1]; @@ -2994,9 +2994,9 @@ static void AnimPainSplitProjectile(struct Sprite *sprite) } else { - sprite->pos2.x = sprite->data[1] >> 8; - sprite->pos2.y += sprite->data[2] >> 8; - if (sprite->data[4] == 0 && sprite->pos2.y > -sprite->data[3]) + sprite->x2 = sprite->data[1] >> 8; + sprite->y2 += sprite->data[2] >> 8; + if (sprite->data[4] == 0 && sprite->y2 > -sprite->data[3]) { sprite->data[4] = 1; sprite->data[2] = (-sprite->data[2] / 3) * 2; @@ -3037,17 +3037,17 @@ void AnimTask_PainSplitMovement(u8 taskId) SetSpriteRotScale(spriteId, 0xD0, 0x130, 0xF00); SetBattlerSpriteYOffsetFromYScale(spriteId); if (IsContest() || GetBattlerSide(gTasks[taskId].data[11]) == B_SIDE_PLAYER) - gSprites[spriteId].pos2.y += 16; + gSprites[spriteId].y2 += 16; break; case 2: SetSpriteRotScale(spriteId, 0xD0, 0x130, 0xF100); SetBattlerSpriteYOffsetFromYScale(spriteId); if (IsContest() || GetBattlerSide(gTasks[taskId].data[11]) == B_SIDE_PLAYER) - gSprites[spriteId].pos2.y += 16; + gSprites[spriteId].y2 += 16; break; } - gSprites[spriteId].pos2.x = 2; + gSprites[spriteId].x2 = 2; gTasks[taskId].data[0]++; } else @@ -3056,14 +3056,14 @@ void AnimTask_PainSplitMovement(u8 taskId) if (++gTasks[taskId].data[2] == 3) { gTasks[taskId].data[2] = 0; - gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x; + gSprites[spriteId].x2 = -gSprites[spriteId].x2; } if (++gTasks[taskId].data[1] == 13) { ResetSpriteRotScale(spriteId); - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; DestroyAnimVisualTask(taskId); } } @@ -3094,11 +3094,11 @@ static void AnimFlatterConfetti(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[0]; if (sprite->data[2] == ANIM_ATTACKER) - sprite->pos1.x = -8; + sprite->x = -8; else - sprite->pos1.x = 248; + sprite->x = 248; - sprite->pos1.y = 104; + sprite->y = 104; sprite->callback = AnimFlatterConfetti_Step; } @@ -3106,13 +3106,13 @@ static void AnimFlatterConfetti_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->pos2.x += sprite->data[0] >> 8; - sprite->pos2.y -= sprite->data[1] >> 8; + sprite->x2 += sprite->data[0] >> 8; + sprite->y2 -= sprite->data[1] >> 8; } else { - sprite->pos2.x -= sprite->data[0] >> 8; - sprite->pos2.y -= sprite->data[1] >> 8; + sprite->x2 -= sprite->data[0] >> 8; + sprite->y2 -= sprite->data[1] >> 8; } sprite->data[0] -= 22; @@ -3180,8 +3180,8 @@ static void AnimFlatterSpotlight_Step(struct Sprite *sprite) // arg 1: initial wave offset static void AnimReversalOrb(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->callback = AnimReversalOrb_Step; @@ -3190,8 +3190,8 @@ static void AnimReversalOrb(struct Sprite *sprite) static void AnimReversalOrb_Step(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8); - sprite->pos2.y = Cos(sprite->data[1], sprite->data[3] >> 8); + sprite->x2 = Sin(sprite->data[1], sprite->data[2] >> 8); + sprite->y2 = Cos(sprite->data[1], sprite->data[3] >> 8); sprite->data[1] = (sprite->data[1] + 9) & 0xFF; if ((u16)sprite->data[1] < 64 || sprite->data[1] > 195) @@ -3288,7 +3288,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId) coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); - spriteId = sub_80A8394(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1); + spriteId = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, TRUE); gSprites[spriteId].oam.priority = priority; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; @@ -3326,7 +3326,7 @@ static void AnimTask_RolePlaySilhouette_Step2(u8 taskId) TrySetSpriteRotScale(&gSprites[spriteId], TRUE, gTasks[taskId].data[10], gTasks[taskId].data[11], 0); if (++gTasks[taskId].data[12] == 9) { - sub_80A749C(&gSprites[spriteId]); + ResetSpriteRotScale_PreserveAffine(&gSprites[spriteId]); DestroySpriteAndFreeResources_(&gSprites[spriteId]); gTasks[taskId].func = DestroyAnimVisualTaskAndDisableBlend; } @@ -3536,14 +3536,14 @@ static void AnimTask_DeepInhale_Step(u8 taskId) task->data[1] = 0; task->data[2]++; if (task->data[2] & 1) - gSprites[task->data[15]].pos2.x = 1; + gSprites[task->data[15]].x2 = 1; else - gSprites[task->data[15]].pos2.x = -1; + gSprites[task->data[15]].x2 = -1; } } else { - gSprites[task->data[15]].pos2.x = 0; + gSprites[task->data[15]].x2 = 0; } if (!RunAffineAnimFromTaskData(&gTasks[taskId])) @@ -3552,8 +3552,8 @@ static void AnimTask_DeepInhale_Step(u8 taskId) static void InitYawnCloudPosition(struct Sprite *sprite, s16 startX, s16 startY, s16 destX, s16 destY, u16 duration) { - sprite->pos1.x = startX; - sprite->pos1.y = startY; + sprite->x = startX; + sprite->y = startY; sprite->data[4] = startX << 4; sprite->data[5] = startY << 4; sprite->data[6] = ((destX - startX) << 4) / duration; @@ -3564,20 +3564,20 @@ static void UpdateYawnCloudPosition(struct Sprite *sprite) { sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; - sprite->pos1.x = sprite->data[4] >> 4; - sprite->pos1.y = sprite->data[5] >> 4; + sprite->x = sprite->data[4] >> 4; + sprite->y = sprite->data[5] >> 4; } // Drifts a cloud in a wavy path towards the target mon. // arg 0: which affine anim static void AnimYawnCloud(struct Sprite *sprite) { - s16 destX = sprite->pos1.x; - s16 destY = sprite->pos1.y; + s16 destX = sprite->x; + s16 destY = sprite->y; SetSpriteCoordsToAnimAttackerCoords(sprite); StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]); - InitYawnCloudPosition(sprite, sprite->pos1.x, sprite->pos1.y, destX, destY, 64); + InitYawnCloudPosition(sprite, sprite->x, sprite->y, destX, destY, 64); sprite->data[0] = 0; sprite->callback = AnimYawnCloud_Step; } @@ -3589,7 +3589,7 @@ static void AnimYawnCloud_Step(struct Sprite *sprite) sprite->data[0]++; index = (sprite->data[0] * 8) & 0xFF; UpdateYawnCloudPosition(sprite); - sprite->pos2.y = Sin(index, 8); + sprite->y2 = Sin(index, 8); if (sprite->data[0] > 58) { if (++sprite->data[1] > 1) @@ -3615,12 +3615,12 @@ static void AnimSmokeBallEscapeCloud(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; sprite->callback = DestroyAnimSpriteAfterTimer; } -static void sub_815D8D8(u8 taskId) +static void AnimTask_SlideMonForFocusBand_Step2(u8 taskId) { u16 var0 = 0; u16 var1 = 0; @@ -3654,14 +3654,14 @@ static void sub_815D8D8(u8 taskId) var0 = gTasks[taskId].data[7]; var1 = gTasks[taskId].data[8]; if (gTasks[taskId].data[2] & 0x8000) - gSprites[gTasks[taskId].data[15]].pos2.x = gTasks[taskId].data[9] - (var0 >> 8); + gSprites[gTasks[taskId].data[15]].x2 = gTasks[taskId].data[9] - (var0 >> 8); else - gSprites[gTasks[taskId].data[15]].pos2.x = gTasks[taskId].data[9] + (var0 >> 8); + gSprites[gTasks[taskId].data[15]].x2 = gTasks[taskId].data[9] + (var0 >> 8); if (gTasks[taskId].data[3] & 0x8000) - gSprites[gTasks[taskId].data[15]].pos2.y = gTasks[taskId].data[10] - (var1 >> 8); + gSprites[gTasks[taskId].data[15]].y2 = gTasks[taskId].data[10] - (var1 >> 8); else - gSprites[gTasks[taskId].data[15]].pos2.y = gTasks[taskId].data[10] + (var1 >> 8); + gSprites[gTasks[taskId].data[15]].y2 = gTasks[taskId].data[10] + (var1 >> 8); if (gTasks[taskId].data[0] < 1) { @@ -3670,7 +3670,7 @@ static void sub_815D8D8(u8 taskId) } } -static void sub_815DA20(u8 taskId) +static void AnimTask_SlideMonForFocusBand_Step1(u8 taskId) { u16 var0 = 0; u16 var1 = 0; @@ -3704,14 +3704,14 @@ static void sub_815DA20(u8 taskId) var0 = (gTasks[taskId].data[2] & 0x7FFF) + gTasks[taskId].data[7]; var1 = (gTasks[taskId].data[3] & 0x7FFF) + gTasks[taskId].data[8]; if (gTasks[taskId].data[2] & 0x8000) - gSprites[gTasks[taskId].data[15]].pos2.x = gTasks[taskId].data[9] - (var0 >> 8); + gSprites[gTasks[taskId].data[15]].x2 = gTasks[taskId].data[9] - (var0 >> 8); else - gSprites[gTasks[taskId].data[15]].pos2.x = gTasks[taskId].data[9] + (var0 >> 8); + gSprites[gTasks[taskId].data[15]].x2 = gTasks[taskId].data[9] + (var0 >> 8); if (gTasks[taskId].data[3] & 0x8000) - gSprites[gTasks[taskId].data[15]].pos2.y = gTasks[taskId].data[10] - (var1 >> 8); + gSprites[gTasks[taskId].data[15]].y2 = gTasks[taskId].data[10] - (var1 >> 8); else - gSprites[gTasks[taskId].data[15]].pos2.y = gTasks[taskId].data[10] + (var1 >> 8); + gSprites[gTasks[taskId].data[15]].y2 = gTasks[taskId].data[10] + (var1 >> 8); gTasks[taskId].data[7] = var0; gTasks[taskId].data[8] = var1; @@ -3719,7 +3719,7 @@ static void sub_815DA20(u8 taskId) { gTasks[taskId].data[0] = 30; gTasks[taskId].data[13] = 0; - gTasks[taskId].func = sub_815D8D8; + gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step2; } } @@ -3754,7 +3754,7 @@ void AnimTask_SlideMonForFocusBand(u8 taskId) gTasks[taskId].data[7] = 0; gTasks[taskId].data[4] = gBattleAnimArgs[4]; gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].func = sub_815DA20; + gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step1; } // Squishes the mon vertically and emits sweat droplets a few times. @@ -3863,8 +3863,8 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) static void AnimFacadeSweatDrop(struct Sprite *sprite) { - sprite->pos1.x += sprite->data[1]; - sprite->pos1.y += sprite->data[2]; + sprite->x += sprite->data[1]; + sprite->y += sprite->data[2]; if (++sprite->data[0] > 6) { gTasks[sprite->data[3]].data[sprite->data[4]]--; @@ -3906,7 +3906,7 @@ static void AnimTask_FacadeColorBlend_Step(u8 taskId) // The sliding circle effect used by Refresh and Aromatherapy void AnimTask_StatusClearedEffect(u8 taskId) { - sub_8117854( + StartMonScrollingBgMask( taskId, 0, 0x1A0, @@ -3929,8 +3929,8 @@ static void AnimRoarNoiseLine(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[1]; if (gBattleAnimArgs[2] == 0) { sprite->data[0] = 0x280; @@ -3961,8 +3961,8 @@ static void AnimRoarNoiseLine_Step(struct Sprite *sprite) { sprite->data[6] += sprite->data[0]; sprite->data[7] += sprite->data[1]; - sprite->pos2.x = sprite->data[6] >> 8; - sprite->pos2.y = sprite->data[7] >> 8; + sprite->x2 = sprite->data[6] >> 8; + sprite->y2 = sprite->data[7] >> 8; if (++sprite->data[5] == 14) DestroyAnimSprite(sprite); } @@ -4027,21 +4027,21 @@ static void AnimTask_GlareEyeDots_Step(u8 taskId) if (task->data[7] == 0) { if (i == 0) - gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = -task->data[6]; + gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->data[6]; else - gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = task->data[6]; + gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->data[6]; } else { if (i == 0) { - gSprites[spriteId].pos2.x = -task->data[6]; - gSprites[spriteId].pos2.y = task->data[6]; + gSprites[spriteId].x2 = -task->data[6]; + gSprites[spriteId].y2 = task->data[6]; } else { - gSprites[spriteId].pos2.x = task->data[6]; - gSprites[spriteId].pos2.y = -task->data[6]; + gSprites[spriteId].x2 = task->data[6]; + gSprites[spriteId].y2 = -task->data[6]; } } @@ -4108,8 +4108,8 @@ static void AnimGlareEyeDot(struct Sprite *sprite) // arg 4: duration static void AnimAssistPawprint(struct Sprite *sprite) { - sprite->pos1.x = gBattleAnimArgs[0]; - sprite->pos1.y = gBattleAnimArgs[1]; + sprite->x = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[0] = gBattleAnimArgs[4]; @@ -4205,15 +4205,15 @@ static void AnimSmellingSaltsHand(struct Sprite *sprite) sprite->oam.tileNum += 16; sprite->data[6] = gBattleAnimArgs[2]; sprite->data[7] = gBattleAnimArgs[1] == 0 ? -1 : 1; - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3); + sprite->y = GetBattlerSpriteCoord(battler, 3); if (gBattleAnimArgs[1] == 0) { sprite->oam.matrixNum |= ST_OAM_HFLIP; - sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8; + sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8; } else { - sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) + 8; + sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) + 8; } sprite->callback = AnimSmellingSaltsHand_Step; @@ -4227,7 +4227,7 @@ static void AnimSmellingSaltsHand_Step(struct Sprite *sprite) if (++sprite->data[1] > 1) { sprite->data[1] = 0; - sprite->pos2.x += sprite->data[7]; + sprite->x2 += sprite->data[7]; if (++sprite->data[2] == 12) sprite->data[0]++; } @@ -4240,7 +4240,7 @@ static void AnimSmellingSaltsHand_Step(struct Sprite *sprite) } break; case 2: - sprite->pos2.x -= sprite->data[7] * 4; + sprite->x2 -= sprite->data[7] * 4; if (++sprite->data[1] == 6) { sprite->data[1] = 0; @@ -4248,7 +4248,7 @@ static void AnimSmellingSaltsHand_Step(struct Sprite *sprite) } break; case 3: - sprite->pos2.x += sprite->data[7] * 3; + sprite->x2 += sprite->data[7] * 3; if (++sprite->data[1] == 8) { if (--sprite->data[6]) @@ -4291,14 +4291,14 @@ static void AnimTask_SmellingSaltsSquish_Step(u8 taskId) { task->data[1] = 0; if (!(task->data[2] & 1)) - gSprites[task->data[15]].pos2.x = 2; + gSprites[task->data[15]].x2 = 2; else - gSprites[task->data[15]].pos2.x = -2; + gSprites[task->data[15]].x2 = -2; } if (!RunAffineAnimFromTaskData(task)) { - gSprites[task->data[15]].pos2.x = 0; + gSprites[task->data[15]].x2 = 0; if (--task->data[0]) { PrepareAffineAnimInTaskData(&gTasks[taskId], gTasks[taskId].data[15], gSmellingSaltsSquishAffineAnimCmds); @@ -4320,17 +4320,17 @@ static void AnimSmellingSaltExclamation(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_TOP); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->y = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_TOP); } - if (sprite->pos1.y < 8) - sprite->pos1.y = 8; + if (sprite->y < 8) + sprite->y = 8; sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[1]; @@ -4359,16 +4359,16 @@ static void AnimHelpingHandClap(struct Sprite *sprite) if (gBattleAnimArgs[0] == 0) { sprite->oam.matrixNum |= ST_OAM_HFLIP; - sprite->pos1.x = 100; + sprite->x = 100; sprite->data[7] = 1; } else { - sprite->pos1.x = 140; + sprite->x = 140; sprite->data[7] = -1; } - sprite->pos1.y = 56; + sprite->y = 56; sprite->callback = AnimHelpingHandClap_Step; } @@ -4377,9 +4377,9 @@ static void AnimHelpingHandClap_Step(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos1.y -= sprite->data[7] * 2; + sprite->y -= sprite->data[7] * 2; if (sprite->data[1] & 1) - sprite->pos1.x -= sprite->data[7] * 2; + sprite->x -= sprite->data[7] * 2; if (++sprite->data[1] == 9) { @@ -4396,8 +4396,8 @@ static void AnimHelpingHandClap_Step(struct Sprite *sprite) break; case 2: sprite->data[1]++; - sprite->pos1.y += sprite->data[7] * 3; - sprite->pos2.x = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3); + sprite->y += sprite->data[7] * 3; + sprite->x2 = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3); if (sprite->data[1] == 12) { sprite->data[1] = 0; @@ -4413,15 +4413,15 @@ static void AnimHelpingHandClap_Step(struct Sprite *sprite) break; case 4: sprite->data[1]++; - sprite->pos1.y -= sprite->data[7] * 3; - sprite->pos2.x = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3); + sprite->y -= sprite->data[7] * 3; + sprite->x2 = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3); if (sprite->data[1] == 12) sprite->data[0]++; break; case 5: sprite->data[1]++; - sprite->pos1.y += sprite->data[7] * 3; - sprite->pos2.x = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3); + sprite->y += sprite->data[7] * 3; + sprite->x2 = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3); if (sprite->data[1] == 15) sprite->oam.tileNum += 16; @@ -4432,7 +4432,7 @@ static void AnimHelpingHandClap_Step(struct Sprite *sprite) } break; case 6: - sprite->pos1.x += sprite->data[7] * 6; + sprite->x += sprite->data[7] * 6; if (++sprite->data[1] == 9) { sprite->data[1] = 0; @@ -4440,7 +4440,7 @@ static void AnimHelpingHandClap_Step(struct Sprite *sprite) } break; case 7: - sprite->pos1.x += sprite->data[7] * 2; + sprite->x += sprite->data[7] * 2; if (++sprite->data[1] == 1) { sprite->data[1] = 0; @@ -4448,7 +4448,7 @@ static void AnimHelpingHandClap_Step(struct Sprite *sprite) } break; case 8: - sprite->pos1.x -= sprite->data[7] * 3; + sprite->x -= sprite->data[7] * 3; if (++sprite->data[1] == 5) DestroyAnimSprite(sprite); break; @@ -4503,7 +4503,7 @@ static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) } break; case 1: - gSprites[task->data[15]].pos2.x -= task->data[14] * 3; + gSprites[task->data[15]].x2 -= task->data[14] * 3; if (++task->data[1] == 6) { task->data[1] = 0; @@ -4511,7 +4511,7 @@ static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) } break; case 2: - gSprites[task->data[15]].pos2.x += task->data[14] * 3; + gSprites[task->data[15]].x2 += task->data[14] * 3; if (++task->data[1] == 6) { task->data[1] = 0; @@ -4534,7 +4534,7 @@ static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) } break; case 4: - gSprites[task->data[15]].pos2.x += task->data[14]; + gSprites[task->data[15]].x2 += task->data[14]; if (++task->data[1] == 3) { task->data[1] = 0; @@ -4549,7 +4549,7 @@ static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) } break; case 6: - gSprites[task->data[15]].pos2.x -= task->data[14] * 4; + gSprites[task->data[15]].x2 -= task->data[14] * 4; if (++task->data[1] == 5) { task->data[1] = 0; @@ -4557,7 +4557,7 @@ static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) } break; case 7: - gSprites[task->data[15]].pos2.x += task->data[14] * 4; + gSprites[task->data[15]].x2 += task->data[14] * 4; if (++task->data[1] == 5) { task->data[1] = 0; @@ -4565,7 +4565,7 @@ static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) } break; case 8: - gSprites[task->data[15]].pos2.x = 0; + gSprites[task->data[15]].x2 = 0; DestroyAnimVisualTask(taskId); break; } @@ -4634,9 +4634,9 @@ static void AnimForesightMagnifyingGlass_Step(struct Sprite *sprite) else sprite->data[0] = 12; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = x; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = y; InitAnimLinearTranslation(sprite); sprite->data[5]++; @@ -4647,19 +4647,19 @@ static void AnimForesightMagnifyingGlass_Step(struct Sprite *sprite) switch (sprite->data[6]) { default: - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[0] = 0; sprite->data[5]++; sprite->data[6]++; break; case 4: - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[5] = 0; sprite->data[6]++; break; @@ -4708,14 +4708,14 @@ const struct SpriteTemplate gDracoMeteorSmashSpriteTemplate = static void AnimMeteorMashStar_Step(struct Sprite *sprite) { - sprite->pos2.x = ((sprite->data[2] - sprite->data[0]) * sprite->data[5]) / sprite->data[4]; - sprite->pos2.y = ((sprite->data[3] - sprite->data[1]) * sprite->data[5]) / sprite->data[4]; + sprite->x2 = ((sprite->data[2] - sprite->data[0]) * sprite->data[5]) / sprite->data[4]; + sprite->y2 = ((sprite->data[3] - sprite->data[1]) * sprite->data[5]) / sprite->data[4]; if (!(sprite->data[5] & 1)) { CreateSprite( &gMiniTwinklingStarSpriteTemplate, - sprite->pos1.x + sprite->pos2.x, - sprite->pos1.y + sprite->pos2.y, 5); + sprite->x + sprite->x2, + sprite->y + sprite->y2, 5); } if (sprite->data[5] == sprite->data[4]) @@ -4737,20 +4737,20 @@ static void AnimMeteorMashStar(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER || IsContest()) { - sprite->data[0] = sprite->pos1.x - gBattleAnimArgs[0]; - sprite->data[2] = sprite->pos1.x - gBattleAnimArgs[2]; + sprite->data[0] = sprite->x - gBattleAnimArgs[0]; + sprite->data[2] = sprite->x - gBattleAnimArgs[2]; } else { - sprite->data[0] = sprite->pos1.x + gBattleAnimArgs[0]; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; + sprite->data[0] = sprite->x + gBattleAnimArgs[0]; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; } - sprite->data[1] = sprite->pos1.y + gBattleAnimArgs[1]; - sprite->data[3] = sprite->pos1.y + gBattleAnimArgs[3]; + sprite->data[1] = sprite->y + gBattleAnimArgs[1]; + sprite->data[3] = sprite->y + gBattleAnimArgs[3]; sprite->data[4] = gBattleAnimArgs[4]; - sprite->pos1.x = sprite->data[0]; - sprite->pos1.y = sprite->data[1]; + sprite->x = sprite->data[0]; + sprite->y = sprite->data[1]; sprite->callback = AnimMeteorMashStar_Step; } @@ -4784,11 +4784,11 @@ void AnimTask_MonToSubstitute(u8 taskId) LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, 0, spriteId); if (IsContest()) { - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF6C0; - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0); + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gAffineAnims_BattleSpriteContest; + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], BATTLER_AFFINE_NORMAL); } - for (i = 0; i < 16; i++) + for (i = 0; i < NUM_TASK_DATA; i++) gTasks[taskId].data[i] = 0; gTasks[taskId].func = AnimTask_MonToSubstituteDoll; @@ -4802,22 +4802,22 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) switch (gTasks[taskId].data[0]) { case 0: - gSprites[spriteId].pos2.y = -200; - gSprites[spriteId].pos2.x = 200; + gSprites[spriteId].y2 = -200; + gSprites[spriteId].x2 = 200; gSprites[spriteId].invisible = FALSE; gTasks[taskId].data[10] = 0; gTasks[taskId].data[0]++; break; case 1: gTasks[taskId].data[10] += 112; - gSprites[spriteId].pos2.y += gTasks[taskId].data[10] >> 8; - if (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y >= -32) - gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].y2 += gTasks[taskId].data[10] >> 8; + if (gSprites[spriteId].y + gSprites[spriteId].y2 >= -32) + gSprites[spriteId].x2 = 0; - if (gSprites[spriteId].pos2.y > 0) - gSprites[spriteId].pos2.y = 0; + if (gSprites[spriteId].y2 > 0) + gSprites[spriteId].y2 = 0; - if (gSprites[spriteId].pos2.y == 0) + if (gSprites[spriteId].y2 == 0) { PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); gTasks[taskId].data[10] -= 0x800; @@ -4829,17 +4829,17 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) if (gTasks[taskId].data[10] < 0) gTasks[taskId].data[10] = 0; - gSprites[spriteId].pos2.y -= gTasks[taskId].data[10] >> 8; + gSprites[spriteId].y2 -= gTasks[taskId].data[10] >> 8; if (gTasks[taskId].data[10] == 0) gTasks[taskId].data[0]++; break; case 3: gTasks[taskId].data[10] += 112; - gSprites[spriteId].pos2.y += gTasks[taskId].data[10] >> 8; - if (gSprites[spriteId].pos2.y > 0) - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].y2 += gTasks[taskId].data[10] >> 8; + if (gSprites[spriteId].y2 > 0) + gSprites[spriteId].y2 = 0; - if (gSprites[spriteId].pos2.y == 0) + if (gSprites[spriteId].y2 == 0) { PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); DestroyAnimVisualTask(taskId); @@ -4865,8 +4865,8 @@ void AnimBlockX(struct Sprite *sprite) y = -96; } - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - sprite->pos2.y = y; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->y2 = y; sprite->callback = AnimBlockX_Step; } @@ -4875,32 +4875,32 @@ static void AnimBlockX_Step(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos2.y += 10; - if (sprite->pos2.y >= 0) + sprite->y2 += 10; + if (sprite->y2 >= 0) { PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[0]++; } break; case 1: sprite->data[1] += 4; - sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 3); + sprite->y2 = -(gSineTable[sprite->data[1]] >> 3); if (sprite->data[1] > 0x7F) { PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); sprite->data[1] = 0; - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[0]++; } break; case 2: sprite->data[1] += 6; - sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 4); + sprite->y2 = -(gSineTable[sprite->data[1]] >> 4); if (sprite->data[1] > 0x7F) { sprite->data[1] = 0; - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[0]++; } break; @@ -4952,8 +4952,8 @@ void AnimTask_OdorSleuthMovement(u8 taskId) return; } - gSprites[spriteId2].pos2.x += 24; - gSprites[spriteId1].pos2.x -= 24; + gSprites[spriteId2].x2 += 24; + gSprites[spriteId1].x2 -= 24; gSprites[spriteId2].data[0] = 0; gSprites[spriteId1].data[0] = 0; gSprites[spriteId2].data[1] = 0; @@ -4998,7 +4998,6 @@ static void AnimTask_OdorSleuthMovementWaitFinish(u8 taskId) static void MoveOdorSleuthClone(struct Sprite *sprite) { - int zero = 0; if (++sprite->data[1] > 1) { sprite->data[1] = 0; @@ -5008,7 +5007,7 @@ static void MoveOdorSleuthClone(struct Sprite *sprite) sprite->data[4] = sprite->data[4] + sprite->data[3]; sprite->data[4] &= 0xFF; - sprite->pos2.x = Cos(sprite->data[4], sprite->data[5]); + sprite->x2 = Cos(sprite->data[4], sprite->data[5]); switch (sprite->data[0]) { case 0: @@ -5066,12 +5065,12 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); gTasks[taskId].data[1] += 0x800; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - gSprites[spriteId].pos2.x += (gTasks[taskId].data[1] >> 8); + gSprites[spriteId].x2 += (gTasks[taskId].data[1] >> 8); else - gSprites[spriteId].pos2.x -= (gTasks[taskId].data[1] >> 8); + gSprites[spriteId].x2 -= (gTasks[taskId].data[1] >> 8); gTasks[taskId].data[1] &= 0xFF; - x = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; + x = gSprites[spriteId].x + gSprites[spriteId].x2; if ((u16)(x + 32) > 304) { gTasks[taskId].data[1] = 0; @@ -5101,7 +5100,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; isBackPic = FALSE; - x = 272; + x = DISPLAY_WIDTH + 32; } else { @@ -5118,7 +5117,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } } - spriteId2 = sub_80A8394(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0); + spriteId2 = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, FALSE); if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE) BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE); @@ -5129,12 +5128,12 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) spriteId2 = gTasks[taskId].data[15]; gTasks[taskId].data[1] += 0x800; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - gSprites[spriteId2].pos2.x -= (gTasks[taskId].data[1] >> 8); + gSprites[spriteId2].x2 -= (gTasks[taskId].data[1] >> 8); else - gSprites[spriteId2].pos2.x += (gTasks[taskId].data[1] >> 8); + gSprites[spriteId2].x2 += (gTasks[taskId].data[1] >> 8); gTasks[taskId].data[1] &= 0xFF; - x = gSprites[spriteId2].pos1.x + gSprites[spriteId2].pos2.x; + x = gSprites[spriteId2].x + gSprites[spriteId2].x2; if (gTasks[taskId].data[14] == 0) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -5166,9 +5165,9 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) spriteId2 = gTasks[taskId].data[15]; DestroySpriteAndFreeResources_(&gSprites[spriteId2]); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - gSprites[spriteId].pos2.x = -gSprites[spriteId].pos1.x - 32; + gSprites[spriteId].x2 = -gSprites[spriteId].x - 32; else - gSprites[spriteId].pos2.x = 272 - gSprites[spriteId].pos1.x; + gSprites[spriteId].x2 = DISPLAY_WIDTH + 32 - gSprites[spriteId].x; gTasks[taskId].data[0]++; break; @@ -5177,25 +5176,25 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) gTasks[taskId].data[1] += 0x800; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - gSprites[spriteId].pos2.x += (gTasks[taskId].data[1] >> 8); - if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x >= GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X)) - gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].x2 += (gTasks[taskId].data[1] >> 8); + if (gSprites[spriteId].x2 + gSprites[spriteId].x >= GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X)) + gSprites[spriteId].x2 = 0; } else { - gSprites[spriteId].pos2.x -= (gTasks[taskId].data[1] >> 8); - if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x <= GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X)) - gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].x2 -= (gTasks[taskId].data[1] >> 8); + if (gSprites[spriteId].x2 + gSprites[spriteId].x <= GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X)) + gSprites[spriteId].x2 = 0; } gTasks[taskId].data[1] &= 0xFF; - if (gSprites[spriteId].pos2.x == 0) + if (gSprites[spriteId].x2 == 0) DestroyAnimVisualTask(taskId); break; } } -static void sub_815FE80(struct Sprite *sprite) +static void AnimUnusedItemBagSteal(struct Sprite *sprite) { switch (sprite->data[7]) { @@ -5203,7 +5202,7 @@ static void sub_815FE80(struct Sprite *sprite) if (gBattleAnimArgs[7] == -1) { PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(63)); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16; sprite->data[0] = -32; sprite->data[7]++; sprite->invisible = FALSE; @@ -5216,7 +5215,7 @@ static void sub_815FE80(struct Sprite *sprite) } break; case 1: - sprite->pos2.y = Sin(sprite->data[1], sprite->data[0]); + sprite->y2 = Sin(sprite->data[1], sprite->data[0]); sprite->data[1] += 5; if (sprite->data[1] > 0x7F) { @@ -5227,9 +5226,9 @@ static void sub_815FE80(struct Sprite *sprite) sprite->data[2] += 0x100; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - sprite->pos2.x -= (sprite->data[2] >> 8); + sprite->x2 -= (sprite->data[2] >> 8); else - sprite->pos2.x += (sprite->data[2] >> 8); + sprite->x2 += (sprite->data[2] >> 8); sprite->data[2] &= 0xFF; if (sprite->data[3] == 2) @@ -5260,15 +5259,15 @@ void AnimTask_SnatchPartnerMove(u8 taskId) break; case 1: spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - gSprites[spriteId].pos2.x += gTasks[taskId].data[0]; + gSprites[spriteId].x2 += gTasks[taskId].data[0]; if (gTasks[taskId].data[0] > 0) { - if (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x >= gTasks[taskId].data[2]) + if (gSprites[spriteId].x + gSprites[spriteId].x2 >= gTasks[taskId].data[2]) gTasks[taskId].data[15]++; } else { - if (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x <= gTasks[taskId].data[2]) + if (gSprites[spriteId].x + gSprites[spriteId].x2 <= gTasks[taskId].data[2]) gTasks[taskId].data[15]++; } break; @@ -5278,22 +5277,22 @@ void AnimTask_SnatchPartnerMove(u8 taskId) break; case 3: spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - gSprites[spriteId].pos2.x += gTasks[taskId].data[0]; + gSprites[spriteId].x2 += gTasks[taskId].data[0]; if (gTasks[taskId].data[0] < 0) { - if (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x <= gTasks[taskId].data[1]) + if (gSprites[spriteId].x + gSprites[spriteId].x2 <= gTasks[taskId].data[1]) gTasks[taskId].data[15]++; } else { - if (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x >= gTasks[taskId].data[1]) + if (gSprites[spriteId].x + gSprites[spriteId].x2 >= gTasks[taskId].data[1]) gTasks[taskId].data[15]++; } break; case 4: default: spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].x2 = 0; DestroyAnimVisualTask(taskId); break; } @@ -5306,8 +5305,8 @@ void AnimTask_TeeterDanceMovement(u8 taskId) struct Task *task = &gTasks[taskId]; task->data[3] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[4] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : -1; - task->data[6] = gSprites[task->data[3]].pos1.y; - task->data[5] = gSprites[task->data[3]].pos1.x; + task->data[6] = gSprites[task->data[3]].y; + task->data[5] = gSprites[task->data[3]].x; task->data[9] = 0; task->data[11] = 0; task->data[10] = 1; @@ -5323,23 +5322,23 @@ static void AnimTask_TeeterDanceMovement_Step(u8 taskId) case 0: task->data[11] += 8; task->data[11] &= 0xFF; - gSprites[task->data[3]].pos2.x = gSineTable[task->data[11]] >> 5; + gSprites[task->data[3]].x2 = gSineTable[task->data[11]] >> 5; task->data[9] += 2; task->data[9] &= 0xFF; - gSprites[task->data[3]].pos1.x = (gSineTable[task->data[9]] >> 3) * task->data[4] + task->data[5]; + gSprites[task->data[3]].x = (gSineTable[task->data[9]] >> 3) * task->data[4] + task->data[5]; if (task->data[9] == 0) { - gSprites[task->data[3]].pos1.x = task->data[5]; + gSprites[task->data[3]].x = task->data[5]; task->data[0]++; } break; case 1: task->data[11] += 8; task->data[11] &= 0xFF; - gSprites[task->data[3]].pos2.x = gSineTable[task->data[11]] >> 5; + gSprites[task->data[3]].x2 = gSineTable[task->data[11]] >> 5; if (task->data[11] == 0) { - gSprites[task->data[3]].pos2.x = 0; + gSprites[task->data[3]].x2 = 0; task->data[0]++; } break; @@ -5363,8 +5362,8 @@ static void AnimKnockOffStrike_Step(struct Sprite *sprite) sprite->data[1] &= 0xFF; } - sprite->pos2.x = Cos(sprite->data[1], 20); - sprite->pos2.y = Sin(sprite->data[1], 20); + sprite->x2 = Cos(sprite->data[1], 20); + sprite->y2 = Sin(sprite->data[1], 20); if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -5378,8 +5377,8 @@ static void AnimKnockOffStrike(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { - sprite->pos1.x -= gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = -11; sprite->data[1] = 192; StartSpriteAffineAnim(sprite, 1); @@ -5388,8 +5387,8 @@ static void AnimKnockOffStrike(struct Sprite *sprite) { sprite->data[0] = 11; sprite->data[1] = 192; - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } sprite->callback = AnimKnockOffStrike_Step; @@ -5399,10 +5398,10 @@ static void AnimKnockOffStrike(struct Sprite *sprite) // No args. static void AnimRecycle(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP); - if (sprite->pos1.y < 16) - sprite->pos1.y = 16; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP); + if (sprite->y < 16) + sprite->y = 16; sprite->data[6] = 0; sprite->data[7] = 16; @@ -5508,14 +5507,14 @@ static void AnimTask_SlackOffSquish_Step(u8 taskId) task->data[1] = 0; task->data[2]++; if (!(task->data[2] & 1)) - gSprites[task->data[15]].pos2.x = -1; + gSprites[task->data[15]].x2 = -1; else - gSprites[task->data[15]].pos2.x = 1; + gSprites[task->data[15]].x2 = 1; } } else { - gSprites[task->data[15]].pos2.x = 0; + gSprites[task->data[15]].x2 = 0; } if (!RunAffineAnimFromTaskData(&gTasks[taskId])) diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index 3d61ab7034..9095aff526 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -8,9 +8,9 @@ static void AnimLightning(struct Sprite *); static void AnimLightning_Step(struct Sprite *); -static void sub_810A214(struct Sprite *); -static void sub_810A258(struct Sprite *); -static void sub_810A274(struct Sprite *); +static void AnimUnusedSpinningFist(struct Sprite *); +static void AnimUnusedSpinningFist_Step(struct Sprite *); +static void AnimUnusedCirclingShock(struct Sprite *); static void AnimZapCannonSpark_Step(struct Sprite *); static void AnimThunderboltOrb(struct Sprite *); static void AnimThunderboltOrb_Step(struct Sprite *); @@ -24,12 +24,12 @@ static void AnimElectricChargingParticles(struct Sprite *); static void AnimElectricChargingParticles_Step(struct Sprite *); static void AnimVoltTackleOrbSlide(struct Sprite *); static void AnimVoltTackleOrbSlide_Step(struct Sprite *); -static bool8 sub_810B154(struct Task *task, u8 taskId); +static bool8 CreateVoltTackleBolt(struct Task *task, u8 taskId); static void AnimVoltTackleBolt(struct Sprite *); -static bool8 sub_810B430(struct Task *task, u8 taskId); +static bool8 CreateShockWaveBoltSprite(struct Task *task, u8 taskId); static void AnimShockWaveProgressingBolt(struct Sprite *); -static bool8 sub_810B614(struct Task *task, u8 taskId); -static void sub_810B684(struct Sprite *sprite); +static bool8 CreateShockWaveLightningSprite(struct Task *task, u8 taskId); +static void AnimShockWaveLightning(struct Sprite *sprite); static const union AnimCmd sAnim_Lightning[] = { @@ -57,7 +57,7 @@ const struct SpriteTemplate gLightningSpriteTemplate = .callback = AnimLightning, }; -static const union AffineAnimCmd gUnknown_085956D8[] = +static const union AffineAnimCmd sAffineAnim_UnusedSpinningFist[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20), @@ -65,24 +65,24 @@ static const union AffineAnimCmd gUnknown_085956D8[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_085956F8[] = +static const union AffineAnimCmd *const sAffineAnims_UnusedSpinningFist[] = { - gUnknown_085956D8, + sAffineAnim_UnusedSpinningFist, }; // Unused -const struct SpriteTemplate gUnknown_085956FC = +static const struct SpriteTemplate sUnusedSpinningFistSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_085956F8, - .callback = sub_810A214, + .affineAnims = sAffineAnims_UnusedSpinningFist, + .callback = AnimUnusedSpinningFist, }; -static const union AnimCmd gUnknown_08595714[] = +static const union AnimCmd sAnim_UnusedCirclingShock[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -93,21 +93,21 @@ static const union AnimCmd gUnknown_08595714[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_08595730[] = +static const union AnimCmd *const sAnims_UnusedCirclingShock[] = { - gUnknown_08595714, + sAnim_UnusedCirclingShock, }; // Unused -const struct SpriteTemplate gUnknown_08595734 = +static const struct SpriteTemplate sUnusedCirclingShockSpriteTemplate = { .tileTag = ANIM_TAG_SHOCK, .paletteTag = ANIM_TAG_SHOCK, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595730, + .anims = sAnims_UnusedCirclingShock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810A274, + .callback = AnimUnusedCirclingShock, }; const struct SpriteTemplate gSparkElectricitySpriteTemplate = @@ -553,11 +553,11 @@ const struct SpriteTemplate gSeedFlareGreenChargeTemplate = static void AnimLightning(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->callback = AnimLightning_Step; } @@ -567,36 +567,36 @@ static void AnimLightning_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_810A214(struct Sprite *sprite) +static void AnimUnusedSpinningFist(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->callback = sub_810A258; + sprite->callback = AnimUnusedSpinningFist_Step; } -static void sub_810A258(struct Sprite *sprite) +static void AnimUnusedSpinningFist_Step(struct Sprite *sprite) { if (sprite->affineAnimEnded) DestroySpriteAndMatrix(sprite); } -static void sub_810A274(struct Sprite *sprite) +static void AnimUnusedCirclingShock(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x -= gBattleAnimArgs[0]; - sprite->pos1.y -= gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[0]; + sprite->y -= gBattleAnimArgs[1]; } else { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[2]; @@ -637,17 +637,17 @@ void AnimSparkElectricity(struct Sprite *sprite) if (gBattleAnimArgs[5] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y); + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y); } else { - sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); } - sprite->pos2.x = (gSineTable[gBattleAnimArgs[0]] * gBattleAnimArgs[1]) >> 8; - sprite->pos2.y = (gSineTable[gBattleAnimArgs[0] + 64] * gBattleAnimArgs[1]) >> 8; + sprite->x2 = (gSineTable[gBattleAnimArgs[0]] * gBattleAnimArgs[1]) >> 8; + sprite->y2 = (gSineTable[gBattleAnimArgs[0] + 64] * gBattleAnimArgs[1]) >> 8; if (gBattleAnimArgs[6] & 1) sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1; @@ -667,9 +667,9 @@ void AnimZapCannonSpark(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[2]; @@ -684,8 +684,8 @@ static void AnimZapCannonSpark_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { - sprite->pos2.x += Sin(sprite->data[7], sprite->data[5]); - sprite->pos2.y += Cos(sprite->data[7], sprite->data[5]); + sprite->x2 += Sin(sprite->data[7], sprite->data[5]); + sprite->y2 += Cos(sprite->data[7], sprite->data[5]); sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF; if(!(sprite->data[7] % 3)) sprite->invisible ^= 1; @@ -710,8 +710,8 @@ static void AnimThunderboltOrb(struct Sprite *sprite) if (IsContest() || GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; sprite->data[3] = gBattleAnimArgs[0]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[3]; @@ -731,8 +731,8 @@ void AnimSparkElectricityFlashing(struct Sprite *sprite) if (IsContest() || GetBattlerSide(battler) == B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[4] = gBattleAnimArgs[7] & 0x7FFF; sprite->data[5] = gBattleAnimArgs[2]; @@ -746,8 +746,8 @@ void AnimSparkElectricityFlashing(struct Sprite *sprite) static void AnimSparkElectricityFlashing_Step(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[7], sprite->data[5]); - sprite->pos2.y = Cos(sprite->data[7], sprite->data[5]); + sprite->x2 = Sin(sprite->data[7], sprite->data[5]); + sprite->y2 = Cos(sprite->data[7], sprite->data[5]); sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF; if (sprite->data[7] % sprite->data[4] == 0) @@ -873,13 +873,12 @@ void AnimThunderWave(struct Sprite *sprite) { u8 spriteId; - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; if (gAnimMoveIndex == MOVE_THUNDER_WAVE) - spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); + spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->x + 32, sprite->y, sprite->subpriority); else - spriteId = CreateSprite(&gAnchorShotChainTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); - + spriteId = CreateSprite(&gAnchorShotChainTemplate, sprite->x + 32, sprite->y, sprite->subpriority); gSprites[spriteId].oam.tileNum += 8; gAnimVisualTaskCount++; @@ -944,13 +943,13 @@ static void AnimTask_ElectricChargingParticles_Step(u8 taskId) if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; - sprite->pos1.x += sElectricChargingParticleCoordOffsets[task->data[9]][0]; - sprite->pos1.y += sElectricChargingParticleCoordOffsets[task->data[9]][1]; + sprite->x += sElectricChargingParticleCoordOffsets[task->data[9]][0]; + sprite->y += sElectricChargingParticleCoordOffsets[task->data[9]][1]; sprite->data[0] = 40 - task->data[8] * 5; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = task->data[14]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = task->data[15]; sprite->data[5] = taskId; @@ -996,13 +995,13 @@ void AnimGrowingChargeOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); @@ -1014,17 +1013,17 @@ void AnimElectricPuff(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } - sprite->pos2.x = gBattleAnimArgs[1]; - sprite->pos2.y = gBattleAnimArgs[2]; + sprite->x2 = gBattleAnimArgs[1]; + sprite->y2 = gBattleAnimArgs[2]; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->callback = RunStoredCallbackWhenAnimEnds; } @@ -1033,8 +1032,8 @@ void AnimElectricPuff(struct Sprite *sprite) static void AnimVoltTackleOrbSlide(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[6] = GetAnimBattlerSpriteId(ANIM_ATTACKER); sprite->data[7] = 16; @@ -1053,9 +1052,9 @@ static void AnimVoltTackleOrbSlide_Step(struct Sprite *sprite) sprite->data[0]++; break; case 1: - sprite->pos1.x += sprite->data[7]; - gSprites[sprite->data[6]].pos2.x += sprite->data[7]; - if ((u16)(sprite->pos1.x + 80) > 400) + sprite->x += sprite->data[7]; + gSprites[sprite->data[6]].x2 += sprite->data[7]; + if ((u16)(sprite->x + 80) > 400) DestroySpriteAndMatrix(sprite); } } @@ -1080,7 +1079,7 @@ void AnimTask_VoltTackleAttackerReappear(u8 taskId) task->data[13] = -2; } - gSprites[task->data[15]].pos2.x = task->data[14]; + gSprites[task->data[15]].x2 = task->data[14]; task->data[0]++; break; case 1: @@ -1092,7 +1091,7 @@ void AnimTask_VoltTackleAttackerReappear(u8 taskId) if (task->data[14]) { task->data[14] += task->data[13]; - gSprites[task->data[15]].pos2.x = task->data[14]; + gSprites[task->data[15]].x2 = task->data[14]; } else task->data[0]++; @@ -1180,7 +1179,7 @@ void AnimTask_VoltTackleBolt(u8 taskId) if (++task->data[2] > 0) { task->data[2] = 0; - if (sub_810B154(task, taskId) || sub_810B154(task, taskId)) + if (CreateVoltTackleBolt(task, taskId) || CreateVoltTackleBolt(task, taskId)) task->data[0]++; } break; @@ -1190,7 +1189,7 @@ void AnimTask_VoltTackleBolt(u8 taskId) } } -static bool8 sub_810B154(struct Task *task, u8 taskId) +static bool8 CreateVoltTackleBolt(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&gVoltTackleBoltSpriteTemplate, task->data[3], task->data[5], 35); if (spriteId != MAX_SPRITES) @@ -1235,8 +1234,8 @@ void AnimGrowingShockWaveOrb(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); StartSpriteAffineAnim(sprite, 2); sprite->data[0]++; break; @@ -1274,7 +1273,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) if (++task->data[1] > 0) { task->data[1] = 0; - if (sub_810B430(task, taskId)) + if (CreateShockWaveBoltSprite(task, taskId)) { if (task->data[2] == 5) task->data[0] = 3; @@ -1327,7 +1326,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) } } -static bool8 sub_810B430(struct Task *task, u8 taskId) +static bool8 CreateShockWaveBoltSprite(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&gShockWaveProgressingBoltSpriteTemplate, task->data[6], task->data[7], 35); if (spriteId != MAX_SPRITES) @@ -1397,7 +1396,7 @@ void AnimTask_ShockWaveLightning(u8 taskId) if (++task->data[1] > 1) { task->data[1] = 0; - if (sub_810B614(task, taskId)) + if (CreateShockWaveLightningSprite(task, taskId)) task->data[0]++; } break; @@ -1408,12 +1407,12 @@ void AnimTask_ShockWaveLightning(u8 taskId) } } -bool8 sub_810B614(struct Task *task, u8 taskId) +static bool8 CreateShockWaveLightningSprite(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&gLightningSpriteTemplate, task->data[13], task->data[14], task->data[12]); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].callback = sub_810B684; + gSprites[spriteId].callback = AnimShockWaveLightning; gSprites[spriteId].data[6] = taskId; gSprites[spriteId].data[7] = 10; task->data[10]++; @@ -1424,7 +1423,7 @@ bool8 sub_810B614(struct Task *task, u8 taskId) return FALSE; } -static void sub_810B684(struct Sprite *sprite) +static void AnimShockWaveLightning(struct Sprite *sprite) { if (sprite->animEnded) { diff --git a/src/battle_anim_fight.c b/src/battle_anim_fight.c index 477a15b6d9..21f35173f8 100644 --- a/src/battle_anim_fight.c +++ b/src/battle_anim_fight.c @@ -6,7 +6,7 @@ #include "trig.h" #include "constants/rgb.h" -static void unc_080B08A0(struct Sprite *); +static void AnimUnusedHumanoidFoot(struct Sprite *); static void AnimSlideHandOrFootToTarget(struct Sprite *); static void AnimFistOrFootRandomPos(struct Sprite *); static void AnimFistOrFootRandomPos_Step(struct Sprite *); @@ -33,7 +33,7 @@ static void AnimForcePalm(struct Sprite *sprite); extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; // Unused -const struct SpriteTemplate gUnknown_08595E14 = +static const struct SpriteTemplate sUnusedHumanoidFootSpriteTemplate = { .tileTag = ANIM_TAG_HUMANOID_FOOT, .paletteTag = ANIM_TAG_HUMANOID_FOOT, @@ -41,54 +41,46 @@ const struct SpriteTemplate gUnknown_08595E14 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = unc_080B08A0, + .callback = AnimUnusedHumanoidFoot, }; -static const union AnimCmd sAnim_HandOrFoot[] = +static const union AnimCmd sAnim_Fist[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_SlidingKick_0[] = +static const union AnimCmd sAnim_FootWide[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_SlidingKick_1[] = +static const union AnimCmd sAnim_FootTall[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_CrossChopHand_0[] = +static const union AnimCmd sAnim_HandLeft[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_CrossChopHand_1[] = +static const union AnimCmd sAnim_HandRight[] = { ANIMCMD_FRAME(48, 1, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd *const gAnims_HandOrFoot[] = +const union AnimCmd *const gAnims_HandsAndFeet[] = { - sAnim_HandOrFoot, -}; - -static const union AnimCmd *const sAnims_SlidingKick[] = -{ - sAnim_SlidingKick_0, - sAnim_SlidingKick_1, -}; - -static const union AnimCmd *const sAnims_CrossChopHand[] = -{ - sAnim_CrossChopHand_0, - sAnim_CrossChopHand_1, + sAnim_Fist, + sAnim_FootWide, + sAnim_FootTall, + sAnim_HandLeft, + sAnim_HandRight, }; const struct SpriteTemplate gKarateChopSpriteTemplate = @@ -96,7 +88,7 @@ const struct SpriteTemplate gKarateChopSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlideHandOrFootToTarget, @@ -107,7 +99,7 @@ const struct SpriteTemplate gJumpKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimJumpKick, @@ -118,7 +110,7 @@ const struct SpriteTemplate gFistFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, @@ -129,7 +121,7 @@ const struct SpriteTemplate gFistFootRandomPosSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFistOrFootRandomPos, @@ -140,7 +132,7 @@ const struct SpriteTemplate gCrossChopHandSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_CrossChopHand, + .anims = &gAnims_HandsAndFeet[3], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimCrossChopHand, @@ -151,7 +143,7 @@ const struct SpriteTemplate gSlidingKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_SlidingKick, + .anims = &gAnims_HandsAndFeet[1], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlidingKick, @@ -175,7 +167,7 @@ const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gAffineAnims_SpinningHandOrFoot, .callback = AnimSpinningKickOrPunch, @@ -198,7 +190,7 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gAffineAnims_MegaPunchKick, .callback = AnimSpinningKickOrPunch, @@ -209,7 +201,7 @@ const struct SpriteTemplate gStompFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_SlidingKick, + .anims = &gAnims_HandsAndFeet[1], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimStompFoot, @@ -300,7 +292,7 @@ const struct SpriteTemplate gArmThrustHandSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimArmThrustHit, @@ -404,7 +396,7 @@ const struct SpriteTemplate gFocusPunchFistSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = sAffineAnims_FocusPunchFist, .callback = AnimFocusPunchFist, @@ -415,7 +407,7 @@ const struct SpriteTemplate gPalmSpriteTemplate = .tileTag = ANIM_TAG_PURPLE_HAND_OUTLINE, .paletteTag = ANIM_TAG_PURPLE_HAND_OUTLINE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, @@ -490,10 +482,10 @@ static void AnimForcePalm(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void unc_080B08A0(struct Sprite *sprite) +static void AnimUnusedHumanoidFoot(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = 15; sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -559,8 +551,8 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) gBattleAnimArgs[2] = Random2() % 5; StartSpriteAnim(sprite, gBattleAnimArgs[2]); - sprite->pos1.x = GetBattlerSpriteCoord(battler, 2); - sprite->pos1.y = GetBattlerSpriteCoord(battler, 3); + sprite->x = GetBattlerSpriteCoord(battler, 2); + sprite->y = GetBattlerSpriteCoord(battler, 3); xMod = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_WIDTH) / 2; yMod = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; @@ -576,11 +568,11 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) if ((gBattlerPositions[battler] & BIT_SIDE) == B_SIDE_PLAYER) y += 0xFFF0; - sprite->pos1.x += x; - sprite->pos1.y += y; + sprite->x += x; + sprite->y += y; sprite->data[0] = gBattleAnimArgs[1]; - sprite->data[7] = CreateSprite(&gBasicHitSplatSpriteTemplate, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1); + sprite->data[7] = CreateSprite(&gBasicHitSplatSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1); if (sprite->data[7] != 64) { StartSpriteAffineAnim(&gSprites[sprite->data[7]], 0); @@ -615,15 +607,15 @@ static void AnimCrossChopHand(struct Sprite *sprite) if (gBattleAnimArgs[2] == 0) { - sprite->data[2] = sprite->pos1.x - 20; + sprite->data[2] = sprite->x - 20; } else { - sprite->data[2] = sprite->pos1.x + 20; + sprite->data[2] = sprite->x + 20; sprite->hFlip = 1; } - sprite->data[4] = sprite->pos1.y - 20; + sprite->data[4] = sprite->y - 20; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimCrossChopHand_Step); } @@ -632,13 +624,13 @@ static void AnimCrossChopHand_Step(struct Sprite *sprite) { if (++sprite->data[5] == 11) { - sprite->data[2] = sprite->pos1.x - sprite->pos2.x; - sprite->data[4] = sprite->pos1.y - sprite->pos2.y; + sprite->data[2] = sprite->x - sprite->x2; + sprite->data[4] = sprite->y - sprite->y2; sprite->data[0] = 8; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -657,10 +649,10 @@ static void AnimSlidingKick(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y; InitAnimLinearTranslation(sprite); @@ -675,7 +667,7 @@ static void AnimSlidingKick_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { - sprite->pos2.y += Sin(sprite->data[7] >> 8, sprite->data[5]); + sprite->y2 += Sin(sprite->data[7] >> 8, sprite->data[5]); sprite->data[7] += sprite->data[6]; } else @@ -755,8 +747,8 @@ void AnimDizzyPunchDuck(struct Sprite *sprite) else { sprite->data[4] += sprite->data[1]; - sprite->pos2.x = sprite->data[4] >> 8; - sprite->pos2.y = Sin(sprite->data[3], sprite->data[2]); + sprite->x2 = sprite->data[4] >> 8; + sprite->y2 = Sin(sprite->data[3], sprite->data[2]); sprite->data[3] = (sprite->data[3] + 3) & 0xFF; if (sprite->data[3] > 100) @@ -772,17 +764,17 @@ static void AnimBrickBreakWall(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); } - sprite->pos1.x += gBattleAnimArgs[1]; - sprite->pos1.y += gBattleAnimArgs[2]; + sprite->x += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[2]; sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[3]; @@ -810,9 +802,9 @@ void AnimBrickBreakWall_Step(struct Sprite *sprite) sprite->data[1] = 0; sprite->data[3]++; if (sprite->data[3] & 1) - sprite->pos2.x = 2; + sprite->x2 = 2; else - sprite->pos2.x = -2; + sprite->x2 = -2; } if (--sprite->data[2] == 0) @@ -826,13 +818,13 @@ static void AnimBrickBreakWallShard(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3]; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[2]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[3]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[2]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[3]; } sprite->oam.tileNum += gBattleAnimArgs[1] * 16; @@ -866,8 +858,8 @@ static void AnimBrickBreakWallShard(struct Sprite *sprite) static void AnimBrickBreakWallShard_Step(struct Sprite *sprite) { - sprite->pos1.x += sprite->data[6]; - sprite->pos1.y += sprite->data[7]; + sprite->x += sprite->data[6]; + sprite->y += sprite->data[7]; if (++sprite->data[0] > 40) DestroyAnimSprite(sprite); @@ -877,8 +869,8 @@ static void AnimSuperpowerOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattlerAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattlerAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, 3); sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); sprite->data[7] = gBattleAnimTarget; } @@ -901,25 +893,25 @@ static void AnimSuperpowerOrb_Step(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDCNT, 0); sprite->data[0] = 16; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(sprite->data[7], 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = sub_80A6F98; + sprite->callback = AnimTranslateLinear_WaitEnd; } } // Floating rock that flies off to hit the target. Used by Superpower static void AnimSuperpowerRock(struct Sprite *sprite) { - sprite->pos1.x = gBattleAnimArgs[0]; - sprite->pos1.y = 120; + sprite->x = gBattleAnimArgs[0]; + sprite->y = 120; sprite->data[0] = gBattleAnimArgs[3]; - StorePointerInVars(&sprite->data[4], &sprite->data[5], (void *)(sprite->pos1.y << 8)); + StorePointerInVars(&sprite->data[4], &sprite->data[5], (void *)(sprite->y << 8)); sprite->data[6] = gBattleAnimArgs[1]; sprite->oam.tileNum += gBattleAnimArgs[2] * 4; @@ -938,8 +930,8 @@ static void AnimSuperpowerRock_Step1(struct Sprite *sprite) StorePointerInVars(&sprite->data[4], &sprite->data[5], var0); var0 = (void *)(((intptr_t)var0) >> 8); - sprite->pos1.y = (intptr_t)var0; - if (sprite->pos1.y < -8) + sprite->y = (intptr_t)var0; + if (sprite->y < -8) DestroyAnimSprite(sprite); else sprite->data[0]--; @@ -953,8 +945,8 @@ static void AnimSuperpowerRock_Step1(struct Sprite *sprite) sprite->data[0] = pos2 - pos0; sprite->data[1] = pos3 - pos1; - sprite->data[2] = sprite->pos1.x << 4; - sprite->data[3] = sprite->pos1.y << 4; + sprite->data[2] = sprite->x << 4; + sprite->data[3] = sprite->y << 4; sprite->callback = AnimSuperpowerRock_Step2; } @@ -966,11 +958,11 @@ static void AnimSuperpowerRock_Step2(struct Sprite *sprite) sprite->data[2] += sprite->data[0]; sprite->data[3] += sprite->data[1]; - sprite->pos1.x = sprite->data[2] >> 4; - sprite->pos1.y = sprite->data[3] >> 4; + sprite->x = sprite->data[2] >> 4; + sprite->y = sprite->data[3] >> 4; - edgeX = sprite->pos1.x + 8; - if (edgeX > 256 || sprite->pos1.y < -8 || sprite->pos1.y > 120) + edgeX = sprite->x + 8; + if (edgeX > 256 || sprite->y < -8 || sprite->y > 120) DestroyAnimSprite(sprite); } @@ -980,8 +972,8 @@ static void AnimSuperpowerFireball(struct Sprite *sprite) if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattlerAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattlerAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, 3); battler = gBattleAnimTarget; sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); } @@ -997,14 +989,14 @@ static void AnimSuperpowerFireball(struct Sprite *sprite) sprite->oam.matrixNum |= (ST_OAM_HFLIP | ST_OAM_VFLIP); sprite->data[0] = 16; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(battler, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(battler, 3); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = sub_80A6F98; + sprite->callback = AnimTranslateLinear_WaitEnd; } static void AnimArmThrustHit_Step(struct Sprite *sprite) @@ -1019,8 +1011,8 @@ static void AnimArmThrustHit(struct Sprite *sprite) { u8 turn; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[1]; @@ -1037,8 +1029,8 @@ static void AnimArmThrustHit(struct Sprite *sprite) } StartSpriteAnim(sprite, sprite->data[1]); - sprite->pos2.x = sprite->data[2]; - sprite->pos2.y = sprite->data[3]; + sprite->x2 = sprite->data[2]; + sprite->y2 = sprite->data[3]; sprite->callback = AnimArmThrustHit_Step; } @@ -1068,7 +1060,7 @@ static void AnimFocusPunchFist(struct Sprite *sprite) if (sprite->affineAnimEnded) { sprite->data[1] = (sprite->data[1] + 40) & 0xFF; - sprite->pos2.x = Sin(sprite->data[1], 2); + sprite->x2 = Sin(sprite->data[1], 2); if (++sprite->data[0] > 40) DestroyAnimSprite(sprite); } @@ -1081,7 +1073,7 @@ void AnimTask_MoveSkyUppercutBg(u8 taskId) switch (task->data[0]) { case 0: - sub_80A6DAC(0); + UpdateAnimBg3ScreenSize(FALSE); task->data[8] = gBattleAnimArgs[0]; task->data[0]++; break; @@ -1110,7 +1102,7 @@ void AnimTask_MoveSkyUppercutBg(u8 taskId) { gBattle_BG3_X = 0; gBattle_BG3_Y = 0; - sub_80A6DAC(1); + UpdateAnimBg3ScreenSize(TRUE); DestroyAnimVisualTask(taskId); } } diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index df951ab1a4..05ba936296 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -10,9 +10,9 @@ static void AnimFireSpiralInward(struct Sprite *); static void AnimFirePlume(struct Sprite *); static void AnimLargeFlame(struct Sprite *); -static void sub_8109028(struct Sprite *); -static void sub_8109064(struct Sprite *); -static void sub_81090D8(struct Sprite *); +static void AnimLargeFlame_Step(struct Sprite *); +static void AnimUnusedSmallEmber(struct Sprite *); +static void AnimUnusedSmallEmber_Step(struct Sprite *); static void AnimSunlight(struct Sprite *); static void AnimEmberFlare(struct Sprite *); static void AnimBurnFlame(struct Sprite *); @@ -162,7 +162,7 @@ const struct SpriteTemplate gFirePlumeSpriteTemplate = }; // Unused -const struct SpriteTemplate gUnknown_08595440 = +static const struct SpriteTemplate sUnusedEmberFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -173,7 +173,7 @@ const struct SpriteTemplate gUnknown_08595440 = .callback = AnimFirePlume, }; -static const union AnimCmd gUnknown_08595458[] = +static const union AnimCmd sAnim_UnusedSmallEmber[] = { ANIMCMD_FRAME(16, 6), ANIMCMD_FRAME(32, 6), @@ -181,21 +181,21 @@ static const union AnimCmd gUnknown_08595458[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_08595468[] = +static const union AnimCmd *const sAnims_UnusedSmallEmber[] = { - gUnknown_08595458, + sAnim_UnusedSmallEmber, }; // Unused -const struct SpriteTemplate gUnknown_0859546C = +static const struct SpriteTemplate sUnusedSmallEmberSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_08595468, + .anims = sAnims_UnusedSmallEmber, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8109064, + .callback = AnimUnusedSmallEmber, }; static const union AffineAnimCmd sAffineAnim_SunlightRay[] = @@ -316,23 +316,23 @@ const union AnimCmd *const gAnims_FireBlastCross[] = sAnim_FireBlastCross, }; -static const union AffineAnimCmd gUnknown_08595544[] = +static const union AffineAnimCmd sAffineAnim_Unused_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_08595554[] = +static const union AffineAnimCmd sAffineAnim_Unused_1[] = { AFFINEANIMCMD_FRAME(0xA0, 0xA0, 0, 0), AFFINEANIMCMD_END, }; // Unused -static const union AffineAnimCmd *const gUnknown_08595564[] = +static const union AffineAnimCmd *const sAffineAnims_Unused[] = { - gUnknown_08595544, - gUnknown_08595554, + sAffineAnim_Unused_0, + sAffineAnim_Unused_1, }; const struct SpriteTemplate gFireBlastCrossSpriteTemplate = @@ -532,8 +532,8 @@ const struct SpriteTemplate gSpacialRendBladesTemplate2 = static void AnimLavaPlumeOrbitScatter(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); sprite->callback = AnimLavaPlumeOrbitScatterStep; @@ -541,9 +541,9 @@ static void AnimLavaPlumeOrbitScatter(struct Sprite *sprite) static void AnimLavaPlumeOrbitScatterStep(struct Sprite *sprite) { - sprite->pos2.x += sprite->data[0]; - sprite->pos2.y += sprite->data[1]; - if (sprite->pos1.x + sprite->pos2.x + 16 > 272u || sprite->pos1.y + sprite->pos2.y > 160 || sprite->pos1.y + sprite->pos2.y < -16) + sprite->x2 += sprite->data[0]; + sprite->y2 += sprite->data[1]; + if (sprite->x + sprite->x2 + 16 > 272u || sprite->y + sprite->y2 > 160 || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); } @@ -567,10 +567,10 @@ void AnimFireSpread(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; - sprite->data[0] = gBattleAnimArgs[4]; // duration - sprite->data[1] = gBattleAnimArgs[2]; // x - sprite->data[2] = gBattleAnimArgs[3]; // y + sprite->y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = gBattleAnimArgs[2]; + sprite->data[2] = gBattleAnimArgs[3]; sprite->callback = TranslateSpriteLinearFixedPoint; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -582,14 +582,14 @@ static void AnimFirePlume(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker)) { - sprite->pos1.x -= gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[2] = -gBattleAnimArgs[4]; } else { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[4]; } @@ -597,21 +597,21 @@ static void AnimFirePlume(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_8109028; + sprite->callback = AnimLargeFlame_Step; } static void AnimLargeFlame(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker)) { - sprite->pos1.x -= gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[4]; } else { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[2] = -gBattleAnimArgs[4]; } @@ -619,36 +619,36 @@ static void AnimLargeFlame(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_8109028; + sprite->callback = AnimLargeFlame_Step; } -static void sub_8109028(struct Sprite *sprite) +static void AnimLargeFlame_Step(struct Sprite *sprite) { if (++sprite->data[0] < sprite->data[4]) { - sprite->pos2.x += sprite->data[2]; - sprite->pos2.y += sprite->data[3]; + sprite->x2 += sprite->data[2]; + sprite->y2 += sprite->data[3]; } if (sprite->data[0] == sprite->data[1]) DestroySpriteAndMatrix(sprite); } -static void sub_8109064(struct Sprite *sprite) +static void AnimUnusedSmallEmber(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker)) { - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; } else { - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; sprite->subpriority = 8; } - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; @@ -656,18 +656,18 @@ static void sub_8109064(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[6]; sprite->data[5] = 0; - sprite->callback = sub_81090D8; + sprite->callback = AnimUnusedSmallEmber_Step; } -static void sub_81090D8(struct Sprite *sprite) +static void AnimUnusedSmallEmber_Step(struct Sprite *sprite) { if (sprite->data[3]) { if(sprite->data[5] > 10000) sprite->subpriority = 1; - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8)); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8)); + sprite->x2 = Sin(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8)); + sprite->y2 = Cos(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8)); sprite->data[0] += sprite->data[2]; sprite->data[5] += sprite->data[4]; @@ -688,8 +688,8 @@ static void sub_81090D8(struct Sprite *sprite) // Sunlight from Sunny Day / sunny weather static void AnimSunlight(struct Sprite *sprite) { - sprite->pos1.x = 0; - sprite->pos1.y = 0; + sprite->x = 0; + sprite->y = 0; sprite->data[0] = 60; sprite->data[2] = 140; sprite->data[4] = 80; @@ -697,8 +697,6 @@ static void AnimSunlight(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -//fire 2 - // Animates the secondary effect of MOVE_EMBER, where the flames grow and slide // horizontally a bit. // arg 0: initial x pixel offset @@ -752,9 +750,9 @@ static void AnimFireRing_Step1(struct Sprite *sprite) if (++sprite->data[0] == 0x12) { sprite->data[0] = 0x19; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); InitAnimLinearTranslation(sprite); @@ -769,18 +767,18 @@ static void AnimFireRing_Step2(struct Sprite *sprite) { sprite->data[0] = 0; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->y2 = 0; + sprite->x2 = 0; sprite->callback = AnimFireRing_Step3; sprite->callback(sprite); } else { - sprite->pos2.x += Sin(sprite->data[7], 28); - sprite->pos2.y += Cos(sprite->data[7], 28); + sprite->x2 += Sin(sprite->data[7], 28); + sprite->y2 += Cos(sprite->data[7], 28); sprite->data[7] = (sprite->data[7] + 20) & 0xFF; } @@ -796,8 +794,8 @@ static void AnimFireRing_Step3(struct Sprite *sprite) static void UpdateFireRingCircleOffset(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[7], 28); - sprite->pos2.y = Cos(sprite->data[7], 28); + sprite->x2 = Sin(sprite->data[7], 28); + sprite->y2 = Cos(sprite->data[7], 28); sprite->data[7] = (sprite->data[7] + 20) & 0xFF; } @@ -810,8 +808,8 @@ static void UpdateFireRingCircleOffset(struct Sprite *sprite) // AnimFireCross(struct Sprite *sprite) static void AnimFireCross(struct Sprite *sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; @@ -848,8 +846,8 @@ static void AnimFireSpiralOutward_Step1(struct Sprite *sprite) static void AnimFireSpiralOutward_Step2(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8); - sprite->pos2.y = Cos(sprite->data[1], sprite->data[2] >> 8); + sprite->x2 = Sin(sprite->data[1], sprite->data[2] >> 8); + sprite->y2 = Cos(sprite->data[1], sprite->data[2] >> 8); sprite->data[1] = (sprite->data[1] + 10) & 0xFF; sprite->data[2] += 0xD0; @@ -869,7 +867,7 @@ void AnimTask_EruptionLaunchRocks(u8 taskId) task->data[1] = 0; task->data[2] = 0; task->data[3] = 0; - task->data[4] = gSprites[task->data[15]].pos1.y; + task->data[4] = gSprites[task->data[15]].y; task->data[5] = GetBattlerSide(gBattleAnimAttacker); task->data[6] = 0; @@ -878,15 +876,14 @@ void AnimTask_EruptionLaunchRocks(u8 taskId) task->func = AnimTask_EruptionLaunchRocks_Step; } -static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTION? +static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[0]) { case 0: - sub_80A805C(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 0x20); - + PrepareEruptAnimTaskData(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 32); task->data[0]++; case 1: if (++task->data[1] > 1) @@ -894,24 +891,24 @@ static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTIO task->data[1] = 0; if (++task->data[2] & 0x1) - gSprites[task->data[15]].pos2.x = 3; + gSprites[task->data[15]].x2 = 3; else - gSprites[task->data[15]].pos2.x = -3; + gSprites[task->data[15]].x2 = -3; } - if (task->data[5]) + if (task->data[5] != B_SIDE_PLAYER) { if (++task->data[3] > 4) { task->data[3] = 0; - gSprites[task->data[15]].pos1.y++; + gSprites[task->data[15]].y++; } } - if(!sub_80A80C8(task)) + if(!UpdateEruptAnimTask(task)) { SetBattlerSpriteYOffsetFromYScale(task->data[15]); - gSprites[task->data[15]].pos2.x = 0; + gSprites[task->data[15]].x2 = 0; task->data[1] = 0; task->data[2] = 0; @@ -922,20 +919,19 @@ static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTIO case 2: if (++task->data[1] > 4) { - if (task->data[5]) - sub_80A805C(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6); + if (task->data[5] != B_SIDE_PLAYER) + PrepareEruptAnimTaskData(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 6); else - sub_80A805C(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 0x6); + PrepareEruptAnimTaskData(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 6); task->data[1] = 0; task->data[0]++; } break; case 3: - if (!sub_80A80C8(task)) + if (!UpdateEruptAnimTask(task)) { CreateEruptionLaunchRocks(task->data[15], taskId, 6); - task->data[0]++; } break; @@ -945,20 +941,20 @@ static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTIO task->data[1] = 0; if (++task->data[2] & 1) - gSprites[task->data[15]].pos2.y += 3; + gSprites[task->data[15]].y2 += 3; else - gSprites[task->data[15]].pos2.y -= 3; + gSprites[task->data[15]].y2 -= 3; } if (++task->data[3] > 0x18) { - if (task->data[5]) - sub_80A805C(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 0x8); + if (task->data[5] != B_SIDE_PLAYER) + PrepareEruptAnimTaskData(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 8); else - sub_80A805C(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 0x8); + PrepareEruptAnimTaskData(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 8); if (task->data[2] & 1) - gSprites[task->data[15]].pos2.y -= 3; + gSprites[task->data[15]].y2 -= 3; task->data[1] = 0; task->data[2] = 0; @@ -967,14 +963,13 @@ static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTIO } break; case 5: - if (task->data[5]) - gSprites[task->data[15]].pos1.y--; + if (task->data[5] != B_SIDE_PLAYER) + gSprites[task->data[15]].y--; - if (!sub_80A80C8(task)) + if (!UpdateEruptAnimTask(task)) { - gSprites[task->data[15]].pos1.y = task->data[4]; + gSprites[task->data[15]].y = task->data[4]; ResetSpriteRotScale(task->data[15]); - task->data[2] = 0; task->data[0]++; } @@ -982,7 +977,6 @@ static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTIO case 6: if (!task->data[6]) DestroyAnimVisualTask(taskId); - break; default: break; @@ -995,7 +989,7 @@ static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3) s8 sign; u16 y = GetEruptionLaunchRockInitialYPos(spriteId); - u16 x = gSprites[spriteId].pos1.x; + u16 x = gSprites[spriteId].x; if(!GetBattlerSide(gBattleAnimAttacker)) { @@ -1041,16 +1035,12 @@ static void AnimEruptionLaunchRock(struct Sprite *sprite) static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId) { - u16 y = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY; + s16 y = gSprites[spriteId].y + gSprites[spriteId].y2 + gSprites[spriteId].centerToCornerVecY; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - { - y = ((y << 16) + 0x4A0000) >> 16; - } + y += 74; else - { - y = ((y << 16) + 0x2C0000) >> 16; - } + y += 44; return y; } @@ -1059,8 +1049,8 @@ static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 x, s16 y) { sprite->data[0] = 0; sprite->data[1] = 0; - sprite->data[2] = (u16)sprite->pos1.x * 8; - sprite->data[3] = (u16)sprite->pos1.y * 8; + sprite->data[2] = (u16)sprite->x * 8; + sprite->data[3] = (u16)sprite->y * 8; sprite->data[4] = x * 8; sprite->data[5] = y * 8; } @@ -1077,18 +1067,18 @@ static void UpdateEruptionLaunchRockPos(struct Sprite *sprite) } sprite->data[2] += sprite->data[4]; - sprite->pos1.x = sprite->data[2] >> 3; + sprite->x = sprite->data[2] >> 3; sprite->data[3] += sprite->data[5]; - sprite->pos1.y = sprite->data[3] >> 3; + sprite->y = sprite->data[3] >> 3; - if (sprite->pos1.x < -8 || sprite->pos1.x > 0xf8 || sprite->pos1.y < -8 || sprite->pos1.y > 120) + if (sprite->x < -8 || sprite->x > 0xf8 || sprite->y < -8 || sprite->y > 120) sprite->invisible = TRUE; } static void AnimEruptionFallingRock(struct Sprite *sprite) { - sprite->pos1.x = gBattleAnimArgs[0]; - sprite->pos1.y = gBattleAnimArgs[1]; + sprite->x = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[1]; sprite->data[0] = 0; sprite->data[1] = 0; @@ -1114,10 +1104,10 @@ static void AnimEruptionFallingRock_Step(struct Sprite *sprite) sprite->data[0]++; // fall through case 1: - sprite->pos1.y += 8; - if (sprite->pos1.y >= sprite->data[7]) + sprite->y += 8; + if (sprite->y >= sprite->data[7]) { - sprite->pos1.y = sprite->data[7]; + sprite->y = sprite->data[7]; sprite->data[0]++; } break; @@ -1127,11 +1117,11 @@ static void AnimEruptionFallingRock_Step(struct Sprite *sprite) sprite->data[1] = 0; if ((++sprite->data[2] & 1) != 0) { - sprite->pos2.y = -3; + sprite->y2 = -3; } else { - sprite->pos2.y = 3; + sprite->y2 = 3; } } @@ -1168,14 +1158,14 @@ static void AnimWillOWispOrb(struct Sprite *sprite) sprite->data[1] += 192; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos2.y = -(sprite->data[1] >> 8); + sprite->y2 = -(sprite->data[1] >> 8); } else { - sprite->pos2.y = sprite->data[1] >> 8; + sprite->y2 = sprite->data[1] >> 8; } - sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]); + sprite->x2 = Sin(sprite->data[2], sprite->data[4]); sprite->data[2] = (sprite->data[2] + 4) & 0xFF; if (++sprite->data[3] == 1) @@ -1185,23 +1175,23 @@ static void AnimWillOWispOrb(struct Sprite *sprite) } break; case 2: - sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]); + sprite->x2 = Sin(sprite->data[2], sprite->data[4]); sprite->data[2] = (sprite->data[2] + 4) & 0xFF; if (++sprite->data[3] == 31) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[0] = 256; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - sub_80A6FD4(sprite); + InitAnimLinearTranslationWithSpeed(sprite); sprite->callback = AnimWillOWispOrb_Step; } break; @@ -1215,7 +1205,7 @@ static void AnimWillOWispOrb_Step(struct Sprite *sprite) if (!AnimTranslateLinear(sprite)) { - sprite->pos2.x += Sin(sprite->data[5], 16); + sprite->x2 += Sin(sprite->data[5], 16); initialData5 = sprite->data[5]; sprite->data[5] = (sprite->data[5] + 4) & 0xFF; newData5 = sprite->data[5]; @@ -1242,8 +1232,8 @@ static void AnimWillOWispFire(struct Sprite *sprite) sprite->data[3] += 0xC0 * 2; sprite->data[4] += 0xA0; - sprite->pos2.x = Sin(sprite->data[1], sprite->data[3] >> 8); - sprite->pos2.y = Cos(sprite->data[1], sprite->data[4] >> 8); + sprite->x2 = Sin(sprite->data[1], sprite->data[3] >> 8); + sprite->y2 = Cos(sprite->data[1], sprite->data[4] >> 8); sprite->data[1] = (sprite->data[1] + 7) & 0xFF; @@ -1301,7 +1291,7 @@ static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId) for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++) { - gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11]; + gSprites[task->data[task->data[3] + 14]].x2 = task->data[10] + task->data[11]; } if (++task->data[9] == 16) @@ -1324,7 +1314,7 @@ static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId) for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++) { - gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11]; + gSprites[task->data[task->data[3] + 14]].x2 = task->data[10] + task->data[11]; } if (++task->data[9] == 96) @@ -1349,7 +1339,7 @@ static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId) for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++) { - gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11]; + gSprites[task->data[task->data[3] + 14]].x2 = task->data[10] + task->data[11]; } if (++task->data[9] == 16) @@ -1360,7 +1350,7 @@ static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId) case 3: for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++) { - gSprites[task->data[task->data[3] + 14]].pos2.x = 0; + gSprites[task->data[task->data[3] + 14]].x2 = 0; } DestroyAnimVisualTask(taskId); @@ -1368,14 +1358,14 @@ static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId) } } -// Used to add a color mask to the battle interface / HUD in Heat Wave. +// Used to add a color mask to the battle background. // arg 0: opacity // arg 1: color code void AnimTask_BlendBackground(u8 taskId) { struct BattleAnimBgData animBg; - sub_80A6B30(&animBg); - BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor + GetBattleAnimBg1Data(&animBg); + BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); DestroyAnimVisualTask(taskId); } @@ -1408,14 +1398,14 @@ void AnimTask_ShakeTargetInPattern(u8 taskId) dir = sShakeDirsPattern1[gTasks[taskId].tShakeNum % 10]; if (gTasks[taskId].tVertical == TRUE) - gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * dir < 0 ? -(gBattleAnimArgs[1] * dir) : gBattleAnimArgs[1] * dir; + gSprites[spriteId].y2 = gBattleAnimArgs[1] * dir < 0 ? -(gBattleAnimArgs[1] * dir) : gBattleAnimArgs[1] * dir; else - gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * dir; + gSprites[spriteId].x2 = gBattleAnimArgs[1] * dir; if (gTasks[taskId].tShakeNum == gTasks[taskId].tMaxShakes) { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; DestroyAnimVisualTask(taskId); } } diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c index 7e62532ea1..2b93206ca3 100644 --- a/src/battle_anim_flying.c +++ b/src/battle_anim_flying.c @@ -13,9 +13,9 @@ static void AnimEllipticalGust_Step(struct Sprite *); static void AnimGustToTarget(struct Sprite *); static void AnimGustToTarget_Step(struct Sprite *); static void AnimFallingFeather(struct Sprite *); -static void sub_810E520(struct Sprite *); -static void sub_810EB40(struct Sprite *); -static void sub_810EA4C(struct Sprite *); +static void AnimFallingFeather_Step(struct Sprite *); +static void AnimWhirlwindLine_Step(struct Sprite *); +static void AnimUnusedBubbleThrow(struct Sprite *); static void AnimWhirlwindLine(struct Sprite *); static void AnimBounceBallShrink(struct Sprite *); static void AnimBounceBallLand(struct Sprite *); @@ -25,8 +25,8 @@ static void AnimDiveBall_Step2(struct Sprite *); static void AnimDiveWaterSplash(struct Sprite *); static void AnimSprayWaterDroplet(struct Sprite *); static void AnimSprayWaterDroplet_Step(struct Sprite *); -static void sub_810F004(struct Sprite *); -static void sub_810F018(struct Sprite *); +static void AnimUnusedFlashingLight(struct Sprite *); +static void AnimUnusedFlashingLight_Step(struct Sprite *); static void AnimSkyAttackBird(struct Sprite *); static void AnimSkyAttackBird_Step(struct Sprite *); static void AnimTask_AnimateGustTornadoPalette_Step(u8); @@ -174,7 +174,8 @@ const struct SpriteTemplate gFallingFeatherSpriteTemplate = .callback = AnimFallingFeather, }; -const struct SpriteTemplate gUnknown_085963A0 = +// Unused +static const struct SpriteTemplate sUnusedBubbleThrowSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, @@ -182,7 +183,7 @@ const struct SpriteTemplate gUnknown_085963A0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810EA4C, + .callback = AnimUnusedBubbleThrow, }; static const union AnimCmd sAnim_WhirlwindLines[] = @@ -284,7 +285,7 @@ const struct SpriteTemplate gDiveBallSpriteTemplate = .callback = AnimDiveBall, }; -static const union AffineAnimCmd gUnknown_085964A8[] = +static const union AffineAnimCmd sAnim_Unused[] = { AFFINEANIMCMD_FRAME(0x100, 0x0, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x20, 0, 12), @@ -293,9 +294,9 @@ static const union AffineAnimCmd gUnknown_085964A8[] = }; // Unused -static const union AffineAnimCmd *const gUnknown_085964C8[] = +static const union AffineAnimCmd *const sAnims_Unused[] = { - gUnknown_085964A8, + sAnim_Unused, }; const struct SpriteTemplate gDiveWaterSplashSpriteTemplate = @@ -320,7 +321,8 @@ const struct SpriteTemplate gSprayWaterDropletSpriteTemplate = .callback = AnimSprayWaterDroplet, }; -const struct SpriteTemplate gUnknown_085964FC = +// Unused +static const struct SpriteTemplate sUnusedFlashingLightSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, @@ -328,7 +330,7 @@ const struct SpriteTemplate gUnknown_085964FC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810F004, + .callback = AnimUnusedFlashingLight, }; const struct SpriteTemplate gSkyAttackBirdSpriteTemplate = @@ -346,7 +348,7 @@ const struct SpriteTemplate gSkyAttackBirdSpriteTemplate = static void AnimEllipticalGust(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); - sprite->pos1.y += 20; + sprite->y += 20; sprite->data[1] = 191; sprite->callback = AnimEllipticalGust_Step; sprite->callback(sprite); @@ -354,8 +356,8 @@ static void AnimEllipticalGust(struct Sprite *sprite) static void AnimEllipticalGust_Step(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[1], 32); - sprite->pos2.y = Cos(sprite->data[1], 8); + sprite->x2 = Sin(sprite->data[1], 32); + sprite->y2 = Cos(sprite->data[1], 8); sprite->data[1] += 5; sprite->data[1] &= 0xFF; if (++sprite->data[0] == 71) @@ -405,9 +407,9 @@ static void AnimGustToTarget(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; @@ -436,10 +438,10 @@ void AnimAirWaveCrescent(struct Sprite *sprite) gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; if (gBattleAnimArgs[6] == 0) @@ -478,10 +480,10 @@ void AnimFlyBallUp_Step(struct Sprite *sprite) else { sprite->data[2] += sprite->data[1]; - sprite->pos2.y -= (sprite->data[2] >> 8); + sprite->y2 -= (sprite->data[2] >> 8); } - if (sprite->pos1.y + sprite->pos2.y < -32) + if (sprite->y + sprite->y2 < -32) DestroyAnimSprite(sprite); } @@ -489,20 +491,20 @@ void AnimFlyBallAttack(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x = 272; - sprite->pos1.y = -32; + sprite->x = DISPLAY_WIDTH + 32; + sprite->y = -32; StartSpriteAffineAnim(sprite, 1); } else { - sprite->pos1.x = -32; - sprite->pos1.y = -32; + sprite->x = -32; + sprite->y = -32; } sprite->data[0] = gBattleAnimArgs[0]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = gBattleAnimArgs[1]; // if sprite is to remain invisible @@ -516,14 +518,14 @@ void AnimFlyBallAttack_Step(struct Sprite *sprite) AnimTranslateLinear(sprite); if (((u16)sprite->data[3] >> 8) > 200) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->x2 = 0; sprite->data[3] &= 0xFF; } - if (sprite->pos1.x + sprite->pos2.x < -32 - || sprite->pos1.x + sprite->pos2.x > 272 - || sprite->pos1.y + sprite->pos2.y > 160) + if (sprite->x + sprite->x2 < -32 + || sprite->x + sprite->x2 > DISPLAY_WIDTH + 32 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT) { gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = sprite->data[5]; DestroyAnimSprite(sprite); @@ -578,11 +580,11 @@ static void AnimFallingFeather(struct Sprite *sprite) if (GetBattlerSide(battler) == B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_HEIGHT) + gBattleAnimArgs[0]; + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_HEIGHT) + gBattleAnimArgs[0]; spriteCoord = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH); - sprite->pos1.y = spriteCoord + gBattleAnimArgs[1]; + sprite->y = spriteCoord + gBattleAnimArgs[1]; - data->unk8 = sprite->pos1.y << 8; + data->unk8 = sprite->y << 8; data->unkE_1 = spriteCoord + gBattleAnimArgs[6]; data->unk0_0c = 1; data->unk2 = gBattleAnimArgs[2] & 0xFF; @@ -625,20 +627,20 @@ static void AnimFallingFeather(struct Sprite *sprite) } data->unk0_1 = data->unk2 >> 6; - sprite->pos2.x = (gSineTable[data->unk2] * data->unkC[0]) >> 8; + sprite->x2 = (gSineTable[data->unk2] * data->unkC[0]) >> 8; matrixNum = sprite->oam.matrixNum; - sinIndex = (-sprite->pos2.x >> 1) + data->unkA; + sinIndex = (-sprite->x2 >> 1) + data->unkA; spriteCoord = gSineTable[sinIndex]; gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; gOamMatrices[matrixNum].b = spriteCoord; gOamMatrices[matrixNum].c = -spriteCoord; - sprite->callback = sub_810E520; + sprite->callback = AnimFallingFeather_Step; } -static void sub_810E520(struct Sprite *sprite) +static void AnimFallingFeather_Step(struct Sprite *sprite) { u8 matrixNum, sinIndex; s16 sinVal = 0; @@ -704,7 +706,6 @@ static void sub_810E520(struct Sprite *sprite) } } data->unk0_0d = 0; - data->unk2; } data->unk0_1 = 0; break; @@ -862,10 +863,10 @@ static void sub_810E520(struct Sprite *sprite) break; } - sprite->pos2.x = ((s32)data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8; + sprite->x2 = ((s32)data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8; matrixNum = sprite->oam.matrixNum; - sinIndex = (-sprite->pos2.x >> 1) + data->unkA; + sinIndex = (-sprite->x2 >> 1) + data->unkA; sinVal = gSineTable[sinIndex]; gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; @@ -873,13 +874,13 @@ static void sub_810E520(struct Sprite *sprite) gOamMatrices[matrixNum].c = -sinVal; data->unk8 += data->unk6; - sprite->pos1.y = data->unk8 >> 8; + sprite->y = data->unk8 >> 8; if (data->unk4 & 0x8000) data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF; else data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF; - if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1) + if (sprite->y + sprite->y2 >= data->unkE_1) { sprite->data[0] = 0; sprite->callback = DestroyAnimSpriteAfterTimer; @@ -887,17 +888,17 @@ static void sub_810E520(struct Sprite *sprite) } } -static void sub_810EA4C(struct Sprite *sprite) +static void AnimUnusedBubbleThrow(struct Sprite *sprite) { sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget); - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->callback = TranslateAnimSpriteToTargetMonLocation; } static void AnimWhirlwindLine(struct Sprite * sprite) { - u16 arg; + u16 offset; u8 mult; if (gBattleAnimArgs[2] == ANIM_ATTACKER) @@ -908,29 +909,29 @@ static void AnimWhirlwindLine(struct Sprite * sprite) if ((gBattleAnimArgs[2] == ANIM_ATTACKER && !GetBattlerSide(gBattleAnimAttacker)) || (gBattleAnimArgs[2] == ANIM_TARGET && !GetBattlerSide(gBattleAnimTarget))) { - sprite->pos1.x += 8; + sprite->x += 8; } SeekSpriteAnim(sprite, gBattleAnimArgs[4]); - sprite->pos1.x -= 32; + sprite->x -= 32; sprite->data[1] = 0x0ccc; - arg = gBattleAnimArgs[4]; + offset = gBattleAnimArgs[4]; mult = 12; - sprite->pos2.x += mult * arg; - sprite->data[0] = arg; + sprite->x2 += mult * offset; + sprite->data[0] = offset; sprite->data[7] = gBattleAnimArgs[3]; - sprite->callback = sub_810EB40; + sprite->callback = AnimWhirlwindLine_Step; } -static void sub_810EB40(struct Sprite *sprite) +static void AnimWhirlwindLine_Step(struct Sprite *sprite) { - sprite->pos2.x += sprite->data[1] >> 8; + sprite->x2 += sprite->data[1] >> 8; if (++sprite->data[0] == 6) { sprite->data[0] = 0; - sprite->pos2.x = 0; + sprite->x2 = 0; StartSpriteAnim(sprite, 0); } @@ -982,18 +983,18 @@ static void AnimBounceBallLand(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); - sprite->pos2.y = -sprite->pos1.y - 32; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->y2 = -sprite->y - 32; sprite->data[0]++; break; case 1: - sprite->pos2.y += 10; - if (sprite->pos2.y >= 0) + sprite->y2 += 10; + if (sprite->y2 >= 0) ++sprite->data[0]; break; case 2: - sprite->pos2.y -= 10; - if (sprite->pos1.y + sprite->pos2.y < -32) + sprite->y2 -= 10; + if (sprite->y + sprite->y2 < -32) { gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE; DestroyAnimSprite(sprite); @@ -1017,10 +1018,10 @@ void AnimDiveBall_Step1(struct Sprite *sprite) { sprite->data[0]--; } - else if (sprite->pos1.y + sprite->pos2.y > -32) + else if (sprite->y + sprite->y2 > -32) { sprite->data[2] += sprite->data[1]; - sprite->pos2.y -= (sprite->data[2] >> 8); + sprite->y2 -= (sprite->data[2] >> 8); } else { @@ -1032,12 +1033,12 @@ void AnimDiveBall_Step1(struct Sprite *sprite) static void AnimDiveBall_Step2(struct Sprite *sprite) { - sprite->pos2.y += sprite->data[2] >> 8; + sprite->y2 += sprite->data[2] >> 8; - if (sprite->pos1.y + sprite->pos2.y > -32) + if (sprite->y + sprite->y2 > -32) sprite->invisible = FALSE; - if (sprite->pos2.y > 0) + if (sprite->y2 > 0) DestroyAnimSprite(sprite); } @@ -1051,18 +1052,18 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) case 0: if (!gBattleAnimArgs[0]) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); } - sprite->data[1] = 512; + sprite->data[1] = 0x200; - TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); + TrySetSpriteRotScale(sprite, 0, 0x100, sprite->data[1], 0); sprite->data[0]++; break; case 1: @@ -1073,22 +1074,22 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) sprite->data[2]++; - TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); + TrySetSpriteRotScale(sprite, 0, 0x100, sprite->data[1], 0); matrixNum = sprite->oam.matrixNum; - t1 = 15616; + t1 = 0x3D00; t2 = t1 / gOamMatrices[matrixNum].d + 1; if (t2 > 128) t2 = 128; t2 = (64 - t2) / 2; - sprite->pos2.y = t2; + sprite->y2 = t2; if (sprite->data[2] == 24) { - sub_80A749C(sprite); + ResetSpriteRotScale_PreserveAffine(sprite); DestroyAnimSprite(sprite); } break; @@ -1118,13 +1119,13 @@ static void AnimSprayWaterDroplet(struct Sprite *sprite) if (gBattleAnimArgs[1] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32; } sprite->callback = AnimSprayWaterDroplet_Step; @@ -1134,13 +1135,13 @@ static void AnimSprayWaterDroplet_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->pos2.x += sprite->data[0] >> 8; - sprite->pos2.y -= sprite->data[1] >> 8; + sprite->x2 += sprite->data[0] >> 8; + sprite->y2 -= sprite->data[1] >> 8; } else { - sprite->pos2.x -= sprite->data[0] >> 8; - sprite->pos2.y -= sprite->data[1] >> 8; + sprite->x2 -= sprite->data[0] >> 8; + sprite->y2 -= sprite->data[1] >> 8; } sprite->data[0] = sprite->data[0]; @@ -1153,14 +1154,14 @@ static void AnimSprayWaterDroplet_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_810F004(struct Sprite *sprite) +static void AnimUnusedFlashingLight(struct Sprite *sprite) { sprite->data[6] = 0; sprite->data[7] = 64; - sprite->callback = sub_810F018; + sprite->callback = AnimUnusedFlashingLight_Step; } -static void sub_810F018(struct Sprite *sprite) +static void AnimUnusedFlashingLight_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1182,19 +1183,19 @@ static void sub_810F018(struct Sprite *sprite) static void AnimSkyAttackBird(struct Sprite *sprite) { u16 rotation; - s16 posx = sprite->pos1.x; - s16 posy = sprite->pos1.y; + s16 posx = sprite->x; + s16 posy = sprite->y; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); - sprite->data[4] = sprite->pos1.x << 4; - sprite->data[5] = sprite->pos1.y << 4; + sprite->data[4] = sprite->x << 4; + sprite->data[5] = sprite->y << 4; - sprite->data[6] = ((posx - sprite->pos1.x) << 4) / 12; - sprite->data[7] = ((posy - sprite->pos1.y) << 4) / 12; + sprite->data[6] = ((posx - sprite->x) << 4) / 12; + sprite->data[7] = ((posy - sprite->y) << 4) / 12; - rotation = ArcTan2Neg(posx - sprite->pos1.x, posy - sprite->pos1.y); + rotation = ArcTan2Neg(posx - sprite->x, posy - sprite->y); rotation -= 16384; TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation); @@ -1207,15 +1208,16 @@ void AnimSkyAttackBird_Step(struct Sprite *sprite) sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; - sprite->pos1.x = sprite->data[4] >> 4; - sprite->pos1.y = sprite->data[5] >> 4; + sprite->x = sprite->data[4] >> 4; + sprite->y = sprite->data[5] >> 4; - if (sprite->pos1.x > 285 || sprite->pos1.x < -45 - || sprite->pos1.y > 157 || sprite->pos1.y < -45) + if (sprite->x > 285 || sprite->x < -45 + || sprite->y > 157 || sprite->y < -45) DestroySpriteAndMatrix(sprite); } -void unref_sub_810F184(u8 taskId) +// Unused +static void AnimTask_SetAttackerVisibility(u8 taskId) { if (gBattleAnimArgs[0] == 0) { diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index 8831cae5e3..adca0dd2c7 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -14,7 +14,7 @@ static void AnimConfuseRayBallBounce(struct Sprite *); static void AnimConfuseRayBallBounce_Step1(struct Sprite *); static void AnimConfuseRayBallBounce_Step2(struct Sprite *); -static void sub_8111764(struct Sprite *); +static void UpdateConfuseRayBallBlend(struct Sprite *); static void AnimConfuseRayBallSpiral(struct Sprite *); static void AnimConfuseRayBallSpiral_Step(struct Sprite *); static void AnimTask_NightShadeClone_Step1(u8 taskId); @@ -37,8 +37,8 @@ static void AnimCurseNail_Step2(struct Sprite *); static void AnimCurseNail_End(struct Sprite *); static void AnimGhostStatusSprite_Step(struct Sprite *); static void AnimGrudgeFlame(struct Sprite *); -static void sub_8112F60(struct Sprite *); -static void sub_8112FB8(struct Sprite *); +static void AnimMonMoveCircular(struct Sprite *); +static void AnimMonMoveCircular_Step(struct Sprite *); static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] = { @@ -155,16 +155,16 @@ const struct SpriteTemplate gLickSpriteTemplate = .callback = AnimLick, }; -static const union AffineAnimCmd gUnknown_08596DA4[] = +static const union AffineAnimCmd sAffineAnim_Unused[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_END, }; // Unused -static const union AffineAnimCmd *const gUnknown_08596DB4[] = +static const union AffineAnimCmd *const sAffineAnims_Unused[] = { - gUnknown_08596DA4, + sAffineAnim_Unused, }; const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate = @@ -248,7 +248,7 @@ const struct SpriteTemplate gGrudgeFlameSpriteTemplate = }; // Unused -const struct SpriteTemplate gUnknown_08596E48 = +static const struct SpriteTemplate sMonMoveCircularSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -256,7 +256,7 @@ const struct SpriteTemplate gUnknown_08596E48 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8112F60, + .callback = AnimMonMoveCircular, }; const struct SpriteTemplate gFlashCannonBallMovementTemplate = @@ -272,13 +272,13 @@ const struct SpriteTemplate gFlashCannonBallMovementTemplate = static void AnimConfuseRayBallBounce(struct Sprite *sprite) { - InitSpritePosToAnimAttacker(sprite, 1); + InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - sub_80A6FD4(sprite); + InitAnimLinearTranslationWithSpeed(sprite); sprite->callback = AnimConfuseRayBallBounce_Step1; sprite->data[6] = 16; SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); @@ -289,15 +289,15 @@ static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite) { s16 r0; s16 r2; - sub_8111764(sprite); + UpdateConfuseRayBallBlend(sprite); if (AnimTranslateLinear(sprite)) { sprite->callback = AnimConfuseRayBallBounce_Step2; return; } - sprite->pos2.x += Sin(sprite->data[5], 10); - sprite->pos2.y += Cos(sprite->data[5], 15); + sprite->x2 += Sin(sprite->data[5], 10); + sprite->y2 += Cos(sprite->data[5], 15); r2 = sprite->data[5]; sprite->data[5] = (sprite->data[5] + 5) & 0xFF; r0 = sprite->data[5]; @@ -314,8 +314,8 @@ static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) s16 r0; sprite->data[0] = 1; AnimTranslateLinear(sprite); - sprite->pos2.x += Sin(sprite->data[5], 10); - sprite->pos2.y += Cos(sprite->data[5], 15); + sprite->x2 += Sin(sprite->data[5], 10); + sprite->y2 += Cos(sprite->data[5], 15); r2 = sprite->data[5]; sprite->data[5] = (sprite->data[5] + 5) & 0xFF; @@ -333,13 +333,11 @@ static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) sprite->callback = DestroyAnimSpriteAndDisableBlend; } else - sub_8111764(sprite); + UpdateConfuseRayBallBlend(sprite); } -static void sub_8111764(struct Sprite *sprite) +static void UpdateConfuseRayBallBlend(struct Sprite *sprite) { - - s16 r0; if (sprite->data[6] > 0xFF) { if (++sprite->data[6] == 0x10d) @@ -347,10 +345,7 @@ static void sub_8111764(struct Sprite *sprite) return; } - r0 = sprite->data[7]; - sprite->data[7]++; - - if ((r0 & 0xFF) == 0) + if ((sprite->data[7]++ & 0xFF) == 0) { sprite->data[7] &= 0xff00; if ((sprite->data[7] & 0x100) != 0) @@ -376,8 +371,8 @@ static void AnimConfuseRayBallSpiral(struct Sprite *sprite) static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite) { u16 temp1; - sprite->pos2.x = Sin(sprite->data[0], 32); - sprite->pos2.y = Cos(sprite->data[0], 8); + sprite->x2 = Sin(sprite->data[0], 32); + sprite->y2 = Cos(sprite->data[0], 8); temp1 = sprite->data[0] - 65; if (temp1 <= 130) sprite->oam.priority = 2; @@ -385,7 +380,7 @@ static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite) sprite->oam.priority = 1; sprite->data[0] = (sprite->data[0] + 19) & 0xFF; sprite->data[2] += 80; - sprite->pos2.y += sprite->data[2] >> 8; + sprite->y2 += sprite->data[2] >> 8; sprite->data[7] += 1; if (sprite->data[7] == 61) DestroyAnimSprite(sprite); @@ -455,19 +450,19 @@ static void AnimTask_NightShadeClone_Step2(u8 taskId) // arg 2: duration step 3 (center -> target) void AnimShadowBall(struct Sprite *sprite) { - s16 oldPosX = sprite->pos1.x; - s16 oldPosY = sprite->pos1.y; + s16 oldPosX = sprite->x; + s16 oldPosY = sprite->y; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; sprite->data[3] = gBattleAnimArgs[2]; - sprite->data[4] = sprite->pos1.x << 4; - sprite->data[5] = sprite->pos1.y << 4; - sprite->data[6] = ((oldPosX - sprite->pos1.x) << 4) / (gBattleAnimArgs[0] << 1); - sprite->data[7] = ((oldPosY - sprite->pos1.y) << 4) / (gBattleAnimArgs[0] << 1); + sprite->data[4] = sprite->x << 4; + sprite->data[5] = sprite->y << 4; + sprite->data[6] = ((oldPosX - sprite->x) << 4) / (gBattleAnimArgs[0] << 1); + sprite->data[7] = ((oldPosY - sprite->y) << 4) / (gBattleAnimArgs[0] << 1); sprite->callback = AnimShadowBall_Step; } @@ -478,8 +473,8 @@ static void AnimShadowBall_Step(struct Sprite *sprite) case 0: sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; - sprite->pos1.x = sprite->data[4] >> 4; - sprite->pos1.y = sprite->data[5] >> 4; + sprite->x = sprite->data[4] >> 4; + sprite->y = sprite->data[5] >> 4; sprite->data[1] -= 1; if (sprite->data[1] > 0) break; @@ -491,22 +486,22 @@ static void AnimShadowBall_Step(struct Sprite *sprite) break; sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - sprite->data[4] = sprite->pos1.x << 4; - sprite->data[5] = sprite->pos1.y << 4; - sprite->data[6] = ((sprite->data[1] - sprite->pos1.x) << 4) / sprite->data[3]; - sprite->data[7] = ((sprite->data[2] - sprite->pos1.y) << 4) / sprite->data[3]; + sprite->data[4] = sprite->x << 4; + sprite->data[5] = sprite->y << 4; + sprite->data[6] = ((sprite->data[1] - sprite->x) << 4) / sprite->data[3]; + sprite->data[7] = ((sprite->data[2] - sprite->y) << 4) / sprite->data[3]; sprite->data[0] += 1; break; case 2: sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; - sprite->pos1.x = sprite->data[4] >> 4; - sprite->pos1.y = sprite->data[5] >> 4; + sprite->x = sprite->data[4] >> 4; + sprite->y = sprite->data[5] >> 4; sprite->data[3] -= 1; if (sprite->data[3] > 0) break; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); sprite->data[0] += 1; break; case 3: @@ -701,12 +696,12 @@ static void AnimTask_SpiteTargetShadow_Step1(u8 taskId) break; case 1: task->data[14] = (task->data[14] + 16) * 16; - CpuSet(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], 0x4000008); + CpuCopy32(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], 32); BlendPalette(task->data[4], 16, 10, RGB(13, 0, 15)); task->data[15]++; break; case 2: - startLine = gSprites[task->data[13]].pos1.y + gSprites[task->data[13]].pos2.y - 32; + startLine = gSprites[task->data[13]].y + gSprites[task->data[13]].y2 - 32; if (startLine < 0) startLine = 0; @@ -828,8 +823,8 @@ static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) sprite->data[6] = battler2Y; sprite->data[7] = sprite->data[4] / 2; sprite->oam.priority = 2; - sprite->pos1.x = battler1X; - sprite->pos1.y = battler1Y; + sprite->x = battler1X; + sprite->y = battler1Y; sprite->callback = AnimDestinyBondWhiteShadow_Step; sprite->invisible = TRUE; } @@ -840,8 +835,8 @@ static void AnimDestinyBondWhiteShadow_Step(struct Sprite *sprite) { sprite->data[0] += sprite->data[2]; sprite->data[1] += sprite->data[3]; - sprite->pos1.x = sprite->data[0] >> 4; - sprite->pos1.y = sprite->data[1] >> 4; + sprite->x = sprite->data[0] >> 4; + sprite->y = sprite->data[1] >> 4; if (--sprite->data[4] == 0) sprite->data[0] = 0; } @@ -1016,19 +1011,19 @@ void AnimTask_CurseStretchingBlackBg(u8 taskId) SetGpuReg(REG_OFFSET_WINOUT, ((WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) | (WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR))); SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN)); - SetGpuReg(REG_OFFSET_BLDY, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 16); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER || IsContest()) startX = 40; else startX = 200; - gBattle_WIN0H = (startX << 8) | startX; + gBattle_WIN0H = WIN_RANGE(startX, startX); startY = 40; - gBattle_WIN0V = (startY << 8) | startY; + gBattle_WIN0V = WIN_RANGE(startY, startY); leftDistance = startX; - rightDistance = 240 - startX; + rightDistance = DISPLAY_WIDTH - startX; topDistance = startY; bottomDistance = 72; gTasks[taskId].data[1] = leftDistance; @@ -1067,16 +1062,16 @@ static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId) else { left = 0; - right = 240; + right = DISPLAY_WIDTH; top = 0; bottom = 112; - selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0); BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0)); gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step2; } - gBattle_WIN0H = (left << 8) | right; - gBattle_WIN0V = (top << 8) | bottom; + gBattle_WIN0H = WIN_RANGE(left, right); + gBattle_WIN0V = WIN_RANGE(top, bottom); } static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId) @@ -1113,7 +1108,7 @@ static void AnimCurseNail(struct Sprite *sprite) xDelta2 = 2; } - sprite->pos1.x += xDelta; + sprite->x += xDelta; sprite->data[1] = xDelta2; sprite->data[0] = 60; sprite->callback = AnimCurseNail_Step1; @@ -1129,12 +1124,12 @@ static void AnimCurseNail_Step1(struct Sprite *sprite) } else { - sprite->pos2.x += sprite->data[1]; - var0 = sprite->pos2.x + 7; + sprite->x2 += sprite->data[1]; + var0 = sprite->x2 + 7; if (var0 > 14) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->x2 = 0; sprite->oam.tileNum += 8; if (++sprite->data[2] == 3) { @@ -1191,13 +1186,13 @@ void AnimGhostStatusSprite(struct Sprite *sprite) u16 coeffB; u16 coeffA; - sprite->pos2.x = Sin(sprite->data[0], 12); + sprite->x2 = Sin(sprite->data[0], 12); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos2.x = -sprite->pos2.x; + sprite->x2 = -sprite->x2; sprite->data[0] = (sprite->data[0] + 6) & 0xFF; sprite->data[1] += 0x100; - sprite->pos2.y = -(sprite->data[1] >> 8); + sprite->y2 = -(sprite->data[1] >> 8); sprite->data[7]++; if (sprite->data[7] == 1) @@ -1350,7 +1345,7 @@ static void AnimGrudgeFlame(struct Sprite *sprite) sprite->data[2] -= 2; sprite->data[2] &= 0xFF; - sprite->pos2.x = Sin(sprite->data[2], sprite->data[3]); + sprite->x2 = Sin(sprite->data[2], sprite->data[3]); index = sprite->data[2] - 65; if (index < 127) @@ -1360,7 +1355,7 @@ static void AnimGrudgeFlame(struct Sprite *sprite) sprite->data[5]++; sprite->data[6] = (sprite->data[5] * 8) & 0xFF; - sprite->pos2.y = Sin(sprite->data[6], 7); + sprite->y2 = Sin(sprite->data[6], 7); if (gTasks[sprite->data[0]].data[8]) { gTasks[sprite->data[0]].data[7]--; @@ -1368,7 +1363,7 @@ static void AnimGrudgeFlame(struct Sprite *sprite) } } -static void sub_8112F60(struct Sprite *sprite) +static void AnimMonMoveCircular(struct Sprite *sprite) { sprite->invisible = TRUE; sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker]; @@ -1376,27 +1371,27 @@ static void sub_8112F60(struct Sprite *sprite) sprite->data[1] = 10; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[1]; - sprite->callback = sub_8112FB8; + sprite->callback = AnimMonMoveCircular_Step; - gSprites[sprite->data[5]].pos1.y += 8; + gSprites[sprite->data[5]].y += 8; } -static void sub_8112FB8(struct Sprite *sprite) +static void AnimMonMoveCircular_Step(struct Sprite *sprite) { if (sprite->data[3]) { sprite->data[3]--; - gSprites[sprite->data[5]].pos2.x = Sin(sprite->data[0], sprite->data[1]); - gSprites[sprite->data[5]].pos2.y = Cos(sprite->data[0], sprite->data[1]); + gSprites[sprite->data[5]].x2 = Sin(sprite->data[0], sprite->data[1]); + gSprites[sprite->data[5]].y2 = Cos(sprite->data[0], sprite->data[1]); sprite->data[0] += sprite->data[2]; if (sprite->data[0] > 255) sprite->data[0] -= 256; } else { - gSprites[sprite->data[5]].pos2.x = 0; - gSprites[sprite->data[5]].pos2.y = 0; - gSprites[sprite->data[5]].pos1.y -= 8; + gSprites[sprite->data[5]].x2 = 0; + gSprites[sprite->data[5]].y2 = 0; + gSprites[sprite->data[5]].y -= 8; sprite->callback = DestroySpriteAndMatrix; } } diff --git a/src/battle_anim_ground.c b/src/battle_anim_ground.c index 8c1442fd4c..aca6b819d4 100644 --- a/src/battle_anim_ground.c +++ b/src/battle_anim_ground.c @@ -18,11 +18,11 @@ static void AnimTask_DigBounceMovement(u8); static void AnimTask_DigEndBounceMovementSetInvisible(u8); static void AnimTask_DigSetVisibleUnderground(u8); static void AnimTask_DigRiseUpFromHole(u8); -static void sub_81150E0(u8, s16, s16); +static void SetDigScanlineEffect(u8, s16, s16); static void AnimTask_ShakeTerrain(u8); static void AnimTask_ShakeBattlers(u8); static void SetBattlersXOffsetForShake(struct Task *); -static void sub_81156D0(u8); +static void WaitForFissureCompletion(u8); static const union AffineAnimCmd sAffineAnim_Bonemerang[] = { @@ -160,8 +160,8 @@ const struct SpriteTemplate gMudBombToss = // a boomerang. After hitting the target mon, it comes back to the user. static void AnimBonemerangProjectile(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[0] = 20; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); @@ -174,10 +174,10 @@ static void AnimBonemerangProjectile_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[0] = 20; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); @@ -253,16 +253,16 @@ void AnimMudSportDirt(struct Sprite *sprite) sprite->oam.tileNum++; if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[1] > 0 ? 1 : -1; sprite->callback = AnimMudSportDirtRising; } else { - sprite->pos1.x = gBattleAnimArgs[1]; - sprite->pos1.y = gBattleAnimArgs[2]; - sprite->pos2.y = -gBattleAnimArgs[2]; + sprite->x = gBattleAnimArgs[1]; + sprite->y = gBattleAnimArgs[2]; + sprite->y2 = -gBattleAnimArgs[2]; sprite->callback = AnimMudSportDirtFalling; } } @@ -272,11 +272,11 @@ void AnimMudSportDirtRising(struct Sprite *sprite) if (++sprite->data[1] > 1) { sprite->data[1] = 0; - sprite->pos1.x += sprite->data[0]; + sprite->x += sprite->data[0]; } - sprite->pos1.y -= 4; - if (sprite->pos1.y < -4) + sprite->y -= 4; + if (sprite->y < -4) DestroyAnimSprite(sprite); } @@ -285,10 +285,10 @@ static void AnimMudSportDirtFalling(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos2.y += 4; - if (sprite->pos2.y >= 0) + sprite->y2 += 4; + if (sprite->y2 >= 0) { - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[0]++; } break; @@ -318,7 +318,7 @@ void AnimTask_DigDownMovement(u8 taskId) static void AnimTask_DigBounceMovement(u8 taskId) { - u8 var0; + u8 y; struct Task *task = &gTasks[taskId]; switch (task->data[0]) @@ -337,9 +337,9 @@ static void AnimTask_DigBounceMovement(u8 taskId) task->data[13] = gBattle_BG2_Y; } - var0 = GetBattlerYCoordWithElevation(gBattleAnimAttacker); - task->data[14] = var0 - 32; - task->data[15] = var0 + 32; + y = GetBattlerYCoordWithElevation(gBattleAnimAttacker); + task->data[14] = y - 32; + task->data[15] = y + 32; if (task->data[14] < 0) task->data[14] = 0; @@ -347,7 +347,7 @@ static void AnimTask_DigBounceMovement(u8 taskId) task->data[0]++; break; case 1: - sub_81150E0(task->data[11], task->data[14], task->data[15]); + SetDigScanlineEffect(task->data[11], task->data[14], task->data[15]); task->data[0]++; break; case 2: @@ -372,7 +372,7 @@ static void AnimTask_DigBounceMovement(u8 taskId) else gBattle_BG2_Y = task->data[13] - task->data[5]; - gSprites[task->data[10]].pos2.x = 272 - gSprites[task->data[10]].pos1.x; + gSprites[task->data[10]].x2 = DISPLAY_WIDTH + 32 - gSprites[task->data[10]].x; task->data[0]++; } break; @@ -391,8 +391,8 @@ static void AnimTask_DigEndBounceMovementSetInvisible(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) gBattle_BG1_Y = 0; @@ -423,8 +423,8 @@ static void AnimTask_DigSetVisibleUnderground(u8 taskId) case 0: task->data[10] = GetAnimBattlerSpriteId(ANIM_ATTACKER); gSprites[task->data[10]].invisible = FALSE; - gSprites[task->data[10]].pos2.x = 0; - gSprites[task->data[10]].pos2.y = 160 - gSprites[task->data[10]].pos1.y; + gSprites[task->data[10]].x2 = 0; + gSprites[task->data[10]].y2 = DISPLAY_HEIGHT - gSprites[task->data[10]].y; task->data[0]++; break; case 1: @@ -453,16 +453,16 @@ static void AnimTask_DigRiseUpFromHole(u8 taskId) task->data[0]++; break; case 1: - sub_81150E0(task->data[11], 0, task->data[15]); + SetDigScanlineEffect(task->data[11], 0, task->data[15]); task->data[0]++; break; case 2: - gSprites[task->data[10]].pos2.y = 96; + gSprites[task->data[10]].y2 = 96; task->data[0]++; break; case 3: - gSprites[task->data[10]].pos2.y -= 8; - if (gSprites[task->data[10]].pos2.y == 0) + gSprites[task->data[10]].y2 -= 8; + if (gSprites[task->data[10]].y2 == 0) { gScanlineEffect.state = 3; task->data[0]++; @@ -474,7 +474,7 @@ static void AnimTask_DigRiseUpFromHole(u8 taskId) } } -static void sub_81150E0(u8 useBG1, s16 y, s16 endY) +static void SetDigScanlineEffect(u8 useBG1, s16 y, s16 endY) { s16 bgX; struct ScanlineEffectParams scanlineParams; @@ -537,11 +537,11 @@ void AnimDirtPlumeParticle(struct Sprite *sprite) gBattleAnimArgs[2] *= -1; } - sprite->pos1.x = GetBattlerSpriteCoord(battler, 2) + xOffset; - sprite->pos1.y = GetBattlerYCoordWithElevation(battler) + 30; + sprite->x = GetBattlerSpriteCoord(battler, 2) + xOffset; + sprite->y = GetBattlerYCoordWithElevation(battler) + 30; sprite->data[0] = gBattleAnimArgs[5]; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[3]; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[4] = sprite->y + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[4]; InitAnimArcTranslation(sprite); sprite->callback = AnimDirtPlumeParticle_Step; @@ -568,8 +568,8 @@ static void AnimDigDirtMound(struct Sprite *sprite) else battler = gBattleAnimTarget; - sprite->pos1.x = GetBattlerSpriteCoord(battler, 0) - 16 + (gBattleAnimArgs[1] * 32); - sprite->pos1.y = GetBattlerYCoordWithElevation(battler) + 32; + sprite->x = GetBattlerSpriteCoord(battler, 0) - 16 + (gBattleAnimArgs[1] * 32); + sprite->y = GetBattlerYCoordWithElevation(battler) + 32; sprite->oam.tileNum += gBattleAnimArgs[1] * 8; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->data[0] = gBattleAnimArgs[2]; @@ -621,7 +621,7 @@ void AnimTask_HorizontalShake(u8 taskId) break; default: // Shake specific battler task->tbattlerSpriteIds(0) = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (task->tbattlerSpriteIds(0) == 0xFF) + if (task->tbattlerSpriteIds(0) == SPRITE_NONE) { DestroyAnimVisualTask(taskId); } @@ -716,7 +716,7 @@ static void AnimTask_ShakeBattlers(u8 taskId) break; case 2: for (i = 0; i < task->tNumBattlers; i++) - gSprites[task->tbattlerSpriteIds(i)].pos2.x = 0; + gSprites[task->tbattlerSpriteIds(i)].x2 = 0; DestroyAnimVisualTask(taskId); break; @@ -735,7 +735,7 @@ static void SetBattlersXOffsetForShake(struct Task *task) for (i = 0; i < task->tNumBattlers; i++) { - gSprites[task->tbattlerSpriteIds(i)].pos2.x = xOffset; + gSprites[task->tbattlerSpriteIds(i)].x2 = xOffset; } } @@ -761,21 +761,23 @@ void AnimTask_PositionFissureBgOnBattler(u8 taskId) u8 battler = (gBattleAnimArgs[0] & ANIM_TARGET) ? gBattleAnimTarget : gBattleAnimAttacker; if (gBattleAnimArgs[0] > ANIM_TARGET) - battler ^= 2; + battler = BATTLE_PARTNER(battler); - newTask = &gTasks[CreateTask(sub_81156D0, gBattleAnimArgs[1])]; - newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, 2)) & 0x1FF; - newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, 3)) & 0xFF; + newTask = &gTasks[CreateTask(WaitForFissureCompletion, gBattleAnimArgs[1])]; + newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2)) & 0x1FF; + newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET)) & 0xFF; gBattle_BG3_X = newTask->data[1]; gBattle_BG3_Y = newTask->data[2]; newTask->data[3] = gBattleAnimArgs[2]; DestroyAnimVisualTask(taskId); } -static void sub_81156D0(u8 taskId) +static void WaitForFissureCompletion(u8 taskId) { struct Task *task = &gTasks[taskId]; + // Holds the BG3 offsets until gBattleAnimArgs[7] + // is set to a special terminator value. if (gBattleAnimArgs[7] == task->data[3]) { gBattle_BG3_X = 0; diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index c3aa2680b0..d7bc599782 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -20,8 +20,8 @@ struct HailStruct { s32 unk3:4; }; -static void sub_810B6C4(struct Sprite *); -static void sub_810B848(struct Sprite *); +static void AnimUnusedIceCrystalThrow(struct Sprite *); +static void AnimUnusedIceCrystalThrow_Step(struct Sprite *); static void AnimIcePunchSwirlingParticle(struct Sprite *); static void AnimIceBeamParticle(struct Sprite *); static void AnimFlickerIceEffectParticle(struct Sprite *); @@ -40,27 +40,27 @@ static void InitIceBallAnim(struct Sprite *); static void AnimThrowIceBall(struct Sprite *); static void InitIceBallParticle(struct Sprite *); static void AnimIceBallParticle(struct Sprite *); -static void AnimTask_Haze2(u8); -static void AnimTask_OverlayFogTiles(u8); +static void AnimTask_HazeScrollingFog_Step(u8); +static void AnimTask_LoadMistTiles_Step(u8); static void AnimTask_Hail2(u8); static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c); static void AvalancheAnim_Step(struct Sprite *sprite); static void AvalancheAnim_Step2(struct Sprite *sprite); -static const union AnimCmd gUnknown_08595A48[] = +static const union AnimCmd sAnim_Unused[] = { ANIMCMD_FRAME(0, 5, .hFlip = TRUE), ANIMCMD_FRAME(1, 5, .hFlip = TRUE), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_08595A54[] = +static const union AnimCmd *const sAnims_Unused[] = { - gUnknown_08595A48, + sAnim_Unused, }; // Unused -const struct SpriteTemplate gUnknown_08595A58 = +static const struct SpriteTemplate sUnusedIceCrystalThrowSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, @@ -68,10 +68,10 @@ const struct SpriteTemplate gUnknown_08595A58 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810B6C4, + .callback = AnimUnusedIceCrystalThrow, }; -static const union AnimCmd gUnknown_08595A70[] = +static const union AnimCmd sAnim_IceCrystalLargeChunk[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, @@ -108,10 +108,10 @@ static const union AnimCmd sAnim_SmallBubblePair[] = ANIMCMD_JUMP(0), }; -// Unused -static const union AnimCmd *const gUnknown_08595AA4[] = +// Unused, contains just the top left corner of the large ice crystal +static const union AnimCmd *const sAnims_IceCrystalLargeChunk[] = { - gUnknown_08595A70, + sAnim_IceCrystalLargeChunk, }; const union AnimCmd *const gAnims_IceCrystalLarge[] = @@ -335,7 +335,7 @@ const struct SpriteTemplate gSmogCloudSpriteTemplate = .callback = InitSwirlingFogAnim, }; -static const u8 sUnknown_08595C5C[] = +static const u8 sHazeBlendAmounts[] = { 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9, }; @@ -351,7 +351,7 @@ const struct SpriteTemplate gMistBallSpriteTemplate = .callback = AnimThrowMistBall, }; -static const u8 sUnknown_08595C88[] = +static const u8 wMistBlendAmounts[] = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, }; @@ -571,10 +571,10 @@ const struct SpriteTemplate gChatterSingNotesTemplate = static void AvalancheAnim_Step(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) - SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += 14; + sprite->x += gBattleAnimArgs[0]; + sprite->y += 14; StartSpriteAnim(sprite, gBattleAnimArgs[1]); AnimateSprite(sprite); @@ -593,7 +593,7 @@ static void AvalancheAnim_Step(struct Sprite *sprite) static void AvalancheAnim_Step2(struct Sprite *sprite) { - sprite->pos1.x += sprite->data[5]; + sprite->x += sprite->data[5]; sprite->data[0] = 192; sprite->data[1] = sprite->data[5]; @@ -607,7 +607,7 @@ static void AvalancheAnim_Step2(struct Sprite *sprite) } // Unused -static void sub_810B6C4(struct Sprite *sprite) +static void AnimUnusedIceCrystalThrow(struct Sprite *sprite) { s16 targetX, targetY, attackerX, attackerY; @@ -623,18 +623,18 @@ static void sub_810B6C4(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[3] + targetY; sub_80A64EC(sprite); - for (;(targetX >= -32 && targetX <= 272) && (targetY >= -32 && targetY <= 192); + for (;(targetX >= -32 && targetX <= DISPLAY_WIDTH + 32) && (targetY >= -32 && targetY <= DISPLAY_HEIGHT + 32); targetX += sprite->data[1], targetY += sprite->data[2]) ; sprite->data[1] = -sprite->data[1]; sprite->data[2] = -sprite->data[2]; - for (;(attackerX >= -32 && attackerX <= 272) && (attackerY >= -32 && attackerY <= 192); + for (;(attackerX >= -32 && attackerX <= DISPLAY_WIDTH + 32) && (attackerY >= -32 && attackerY <= DISPLAY_HEIGHT + 32); attackerX += sprite->data[1], attackerY += sprite->data[2]) ; - sprite->pos1.x = attackerX; - sprite->pos1.y = attackerY; + sprite->x = attackerX; + sprite->y = attackerY; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[1] = attackerX; sprite->data[2] = targetX; @@ -643,19 +643,19 @@ static void sub_810B6C4(struct Sprite *sprite) sub_80A64EC(sprite); sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[6]; - sprite->callback = sub_810B848; + sprite->callback = AnimUnusedIceCrystalThrow_Step; } -static void sub_810B848(struct Sprite *sprite) +static void AnimUnusedIceCrystalThrow_Step(struct Sprite *sprite) { if (sprite->data[0] != 0) { sprite->data[5] += sprite->data[1]; sprite->data[6] += sprite->data[2]; - sprite->pos2.x = sprite->data[5]; - sprite->pos2.y = sprite->data[6]; - sprite->pos2.x += Sin(sprite->data[7], sprite->data[3]); - sprite->pos2.y += Sin(sprite->data[7], sprite->data[3]); + sprite->x2 = sprite->data[5]; + sprite->y2 = sprite->data[6]; + sprite->x2 += Sin(sprite->data[7], sprite->data[3]); + sprite->y2 += Sin(sprite->data[7], sprite->data[3]); sprite->data[7] = (sprite->data[7] + sprite->data[4]) & 0xFF; sprite->data[0]--; } @@ -714,12 +714,12 @@ void AnimIceEffectParticle(struct Sprite *sprite) } else { - SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->x, &sprite->y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } StoreSpriteCallbackInData6(sprite, AnimFlickerIceEffectParticle); @@ -749,8 +749,8 @@ static void AnimSwirlingSnowball(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; if (!gBattleAnimArgs[5]) { @@ -779,21 +779,21 @@ static void AnimSwirlingSnowball(struct Sprite *sprite) sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->pos1.x + sprite->pos2.x + 16) > 272 - || sprite->pos1.y + sprite->pos2.y > 160 - || sprite->pos1.y + sprite->pos2.y < -16) + if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT + || sprite->y + sprite->y2 < -16) break; } - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; for (i = 0; i < 8; i++) sprite->data[i] = tempDataHolder[i]; - sprite->callback = sub_80A718C; + sprite->callback = InitAnimFastLinearTranslationWithSpeedAndPos; StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1); } @@ -801,10 +801,10 @@ void AnimSwirlingSnowball_Step1(struct Sprite *sprite) { s16 tempVar; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[0] = 128; tempVar = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 20 : -20; @@ -823,17 +823,17 @@ static void AnimSwirlingSnowball_Step2(struct Sprite *sprite) if (sprite->data[5] <= 31) { - sprite->pos2.x = Sin(sprite->data[0], tempVar) - sprite->data[3]; - sprite->pos2.y = Cos(sprite->data[0], 15) - sprite->data[4]; + sprite->x2 = Sin(sprite->data[0], tempVar) - sprite->data[3]; + sprite->y2 = Cos(sprite->data[0], 15) - sprite->data[4]; sprite->data[0] = (sprite->data[0] + 16) & 0xFF; sprite->data[5] += 1; } else { - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->data[4] = 0; sprite->data[3] = 0; sprite->callback = AnimSwirlingSnowball_End; @@ -845,9 +845,9 @@ static void AnimSwirlingSnowball_End(struct Sprite *sprite) sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->pos1.x + sprite->pos2.x + 16) > 272 - || sprite->pos1.y + sprite->pos2.y > 256 - || sprite->pos1.y + sprite->pos2.y < -16) + if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 + || sprite->y + sprite->y2 > 256 + || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); } @@ -869,8 +869,8 @@ void AnimMoveParticleBeyondTarget(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; if (!gBattleAnimArgs[7]) { @@ -899,16 +899,16 @@ void AnimMoveParticleBeyondTarget(struct Sprite *sprite) { sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->pos1.x + sprite->pos2.x + 16) > 272 - || sprite->pos1.y + sprite->pos2.y > 160 - || sprite->pos1.y + sprite->pos2.y < -16) + if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT + || sprite->y + sprite->y2 < -16) break; } - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; for (i = 0; i < 8; i++) sprite->data[i] = tempDataHolder[i]; @@ -925,13 +925,13 @@ static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite) if (sprite->data[0] == 0) sprite->data[0] = 1; - sprite->pos2.y += Sin(sprite->data[7], sprite->data[5]); + sprite->y2 += Sin(sprite->data[7], sprite->data[5]); sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF; if (sprite->data[0] == 1) { - if ((u32)(sprite->pos1.x + sprite->pos2.x + 16) > 272 - || sprite->pos1.y + sprite->pos2.y > 160 - || sprite->pos1.y + sprite->pos2.y < -16) + if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT + || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); } } @@ -950,13 +950,13 @@ static void AnimWaveFromCenterOfTarget(struct Sprite *sprite) } else { - SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } sprite->data[0]++; @@ -988,13 +988,13 @@ static void InitSwirlingFogAnim(struct Sprite *sprite) } else { - SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } battler = gBattleAnimAttacker; @@ -1007,13 +1007,13 @@ static void InitSwirlingFogAnim(struct Sprite *sprite) } else { - SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } battler = gBattleAnimTarget; @@ -1027,13 +1027,13 @@ static void InitSwirlingFogAnim(struct Sprite *sprite) sprite->data[6] = tempVar; if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) - sprite->pos1.y += 8; + sprite->y += 8; sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[2]; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); @@ -1047,8 +1047,8 @@ static void AnimSwirlingFogAnim(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { - sprite->pos2.x += Sin(sprite->data[5], sprite->data[6]); - sprite->pos2.y += Cos(sprite->data[5], -6); + sprite->x2 += Sin(sprite->data[5], sprite->data[6]); + sprite->y2 += Cos(sprite->data[5], -6); if ((u16)(sprite->data[5] - 64) <= 0x7F) sprite->oam.priority = GetBattlerSpriteBGPriority(sprite->data[7]); @@ -1081,15 +1081,15 @@ void AnimTask_HazeScrollingFog(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset); AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, 0); - LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32); + LoadPalette(&gFogPalette, animBg.paletteId * 16, 32); - gTasks[taskId].func = AnimTask_Haze2; + gTasks[taskId].func = AnimTask_HazeScrollingFog_Step; } -static void AnimTask_Haze2(u8 taskId) +static void AnimTask_HazeScrollingFog_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -1103,7 +1103,7 @@ static void AnimTask_Haze2(u8 taskId) { gTasks[taskId].data[10] = 0; gTasks[taskId].data[9]++; - gTasks[taskId].data[11] = sUnknown_08595C5C[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = sHazeBlendAmounts[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 9) @@ -1135,12 +1135,10 @@ static void AnimTask_Haze2(u8 taskId) } break; case 3: - sub_80A6B30(&animBg); - sub_80A6C68(1); - sub_80A6C68(2); - + GetBattleAnimBg1Data(&animBg); + ClearBattleAnimBg(1); + ClearBattleAnimBg(2); gTasks[taskId].data[12]++; - // fall through case 4: if (!IsContest()) @@ -1165,8 +1163,8 @@ static void AnimTask_Haze2(u8 taskId) // arg 5: ??? unknown (seems to vibrate target mon somehow) void AnimThrowMistBall(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = TranslateAnimSpriteToTargetMonLocation; } @@ -1188,16 +1186,16 @@ void AnimTask_LoadMistTiles(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset); AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, 0); - LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32); + LoadPalette(&gFogPalette, animBg.paletteId * 16, 32); gTasks[taskId].data[15] = -1; - gTasks[taskId].func = AnimTask_OverlayFogTiles; + gTasks[taskId].func = AnimTask_LoadMistTiles_Step; } -static void AnimTask_OverlayFogTiles(u8 taskId) +static void AnimTask_LoadMistTiles_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -1208,7 +1206,7 @@ static void AnimTask_OverlayFogTiles(u8 taskId) { case 0: gTasks[taskId].data[9] += 1; - gTasks[taskId].data[11] = sUnknown_08595C88[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = wMistBlendAmounts[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 5) { @@ -1237,9 +1235,9 @@ static void AnimTask_OverlayFogTiles(u8 taskId) } break; case 3: - sub_80A6B30(&animBg); - sub_80A6C68(1); - sub_80A6C68(2); + GetBattleAnimBg1Data(&animBg); + ClearBattleAnimBg(1); + ClearBattleAnimBg(2); gTasks[taskId].data[12]++; @@ -1285,21 +1283,21 @@ static void InitPoisonGasCloudAnim(struct Sprite *sprite) sprite->data[6] = 1; } - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); if (gBattleAnimArgs[7]) { - sprite->data[1] = sprite->pos1.x + gBattleAnimArgs[1]; + sprite->data[1] = sprite->x + gBattleAnimArgs[1]; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[3]; - sprite->data[3] = sprite->pos1.y + gBattleAnimArgs[2]; + sprite->data[3] = sprite->y + gBattleAnimArgs[2]; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[4]; sprite->data[7] |= GetBattlerSpriteBGPriority(gBattleAnimTarget) << 8; } else { - sprite->data[1] = sprite->pos1.x + gBattleAnimArgs[1]; + sprite->data[1] = sprite->x + gBattleAnimArgs[1]; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[3]; - sprite->data[3] = sprite->pos1.y + gBattleAnimArgs[2]; + sprite->data[3] = sprite->y + gBattleAnimArgs[2]; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[4]; sprite->data[7] |= GetBattlerSpriteBGPriority(gBattleAnimTarget) << 8; } @@ -1323,7 +1321,7 @@ static void MovePoisonGasCloud(struct Sprite *sprite) case 0: AnimTranslateLinear(sprite); value = gSineTable[sprite->data[5]]; - sprite->pos2.x += value >> 4; + sprite->x2 += value >> 4; if (sprite->data[6]) sprite->data[5] = (sprite->data[5] - 8) & 0xFF; else @@ -1332,12 +1330,12 @@ static void MovePoisonGasCloud(struct Sprite *sprite) if (sprite->data[0] <= 0) { sprite->data[0] = 80; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x; - sprite->pos1.y += sprite->pos2.y; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y + 29; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x; + sprite->y += sprite->y2; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y + 29; sprite->data[7]++; if (IsContest()) sprite->data[5] = 80; @@ -1346,9 +1344,9 @@ static void MovePoisonGasCloud(struct Sprite *sprite) else sprite->data[5] = 80; - sprite->pos2.y = 0; + sprite->y2 = 0; value = gSineTable[sprite->data[5]]; - sprite->pos2.x = value >> 3; + sprite->x2 = value >> 3; sprite->data[5] = (sprite->data[5] + 2) & 0xFF; InitAnimLinearTranslation(sprite); } @@ -1356,8 +1354,8 @@ static void MovePoisonGasCloud(struct Sprite *sprite) case 1: AnimTranslateLinear(sprite); value = gSineTable[sprite->data[5]]; - sprite->pos2.x += value >> 3; - sprite->pos2.y += (gSineTable[sprite->data[5] + 0x40] * -3) >> 8; + sprite->x2 += value >> 3; + sprite->y2 += (gSineTable[sprite->data[5] + 0x40] * -3) >> 8; if (!IsContest()) { u16 var0 = sprite->data[5] - 0x40; @@ -1382,9 +1380,9 @@ static void MovePoisonGasCloud(struct Sprite *sprite) if (sprite->data[0] <= 0) { sprite->data[0] = 0x300; - sprite->data[1] = sprite->pos1.x += sprite->pos2.x; - sprite->data[3] = sprite->pos1.y += sprite->pos2.y; - sprite->data[4] = sprite->pos1.y + 4; + sprite->data[1] = sprite->x += sprite->x2; + sprite->data[3] = sprite->y += sprite->y2; + sprite->data[4] = sprite->y + 4; if (IsContest()) sprite->data[2] = -0x10; else if (GET_BATTLER_SIDE2(gBattleAnimTarget) != B_SIDE_PLAYER) @@ -1393,8 +1391,8 @@ static void MovePoisonGasCloud(struct Sprite *sprite) sprite->data[2] = -0x10; sprite->data[7]++; - sprite->pos2.x = sprite->pos2.y = 0; - sub_80A6FD4(sprite); + sprite->x2 = sprite->y2 = 0; + InitAnimLinearTranslationWithSpeed(sprite); } break; case 2: @@ -1527,10 +1525,10 @@ static void AnimHailBegin(struct Sprite *sprite) { u8 spriteId; - sprite->pos1.x += 4; - sprite->pos1.y += 8; + sprite->x += 4; + sprite->y += 8; - if (sprite->pos1.x < sprite->data[3] && sprite->pos1.y < sprite->data[4]) + if (sprite->x < sprite->data[3] && sprite->y < sprite->data[4]) return; if (sprite->data[0] == 1 && sprite->data[5] == 0) @@ -1635,11 +1633,11 @@ static void AnimIceBallParticle(struct Sprite *sprite) sprite->data[4] += sprite->data[2]; if (sprite->data[1] & 1) - sprite->pos2.x = -(sprite->data[3] >> 8); + sprite->x2 = -(sprite->data[3] >> 8); else - sprite->pos2.x = sprite->data[3] >> 8; + sprite->x2 = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; + sprite->y2 = sprite->data[4] >> 8; if (++sprite->data[0] == 21) DestroyAnimSprite(sprite); diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 4b6d53304e..0cf6bafd0d 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -95,13 +95,13 @@ void AnimTask_ShakeMon(u8 taskId) { u8 spriteId; spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xff) + if (spriteId == SPRITE_NONE) { DestroyAnimVisualTask(taskId); return; } - gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; - gSprites[spriteId].pos2.y = gBattleAnimArgs[2]; + gSprites[spriteId].x2 = gBattleAnimArgs[1]; + gSprites[spriteId].y2 = gBattleAnimArgs[2]; gTasks[taskId].data[0] = spriteId; gTasks[taskId].data[1] = gBattleAnimArgs[3]; gTasks[taskId].data[2] = gBattleAnimArgs[4]; @@ -116,27 +116,27 @@ static void AnimTask_ShakeMon_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { - if (gSprites[gTasks[taskId].data[0]].pos2.x == 0) + if (gSprites[gTasks[taskId].data[0]].x2 == 0) { - gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4]; + gSprites[gTasks[taskId].data[0]].x2 = gTasks[taskId].data[4]; } else { - gSprites[gTasks[taskId].data[0]].pos2.x = 0; + gSprites[gTasks[taskId].data[0]].x2 = 0; } - if (gSprites[gTasks[taskId].data[0]].pos2.y == 0) + if (gSprites[gTasks[taskId].data[0]].y2 == 0) { - gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5]; + gSprites[gTasks[taskId].data[0]].y2 = gTasks[taskId].data[5]; } else { - gSprites[gTasks[taskId].data[0]].pos2.y = 0; + gSprites[gTasks[taskId].data[0]].y2 = 0; } gTasks[taskId].data[3] = gTasks[taskId].data[2]; if (--gTasks[taskId].data[1] == 0) { - gSprites[gTasks[taskId].data[0]].pos2.x = 0; - gSprites[gTasks[taskId].data[0]].pos2.y = 0; + gSprites[gTasks[taskId].data[0]].x2 = 0; + gSprites[gTasks[taskId].data[0]].y2 = 0; DestroyAnimVisualTask(taskId); return; } @@ -163,7 +163,7 @@ void AnimTask_ShakeMon2(u8 taskId) if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT) { spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xff) + if (spriteId == SPRITE_NONE) { DestroyAnimVisualTask(taskId); return; @@ -204,8 +204,8 @@ void AnimTask_ShakeMon2(u8 taskId) return; } - gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; - gSprites[spriteId].pos2.y = gBattleAnimArgs[2]; + gSprites[spriteId].x2 = gBattleAnimArgs[1]; + gSprites[spriteId].y2 = gBattleAnimArgs[2]; gTasks[taskId].data[0] = spriteId; gTasks[taskId].data[1] = gBattleAnimArgs[3]; gTasks[taskId].data[2] = gBattleAnimArgs[4]; @@ -220,21 +220,21 @@ static void AnimTask_ShakeMon2_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { - if (gSprites[gTasks[taskId].data[0]].pos2.x == gTasks[taskId].data[4]) - gSprites[gTasks[taskId].data[0]].pos2.x = -gTasks[taskId].data[4]; + if (gSprites[gTasks[taskId].data[0]].x2 == gTasks[taskId].data[4]) + gSprites[gTasks[taskId].data[0]].x2 = -gTasks[taskId].data[4]; else - gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4]; + gSprites[gTasks[taskId].data[0]].x2 = gTasks[taskId].data[4]; - if (gSprites[gTasks[taskId].data[0]].pos2.y == gTasks[taskId].data[5]) - gSprites[gTasks[taskId].data[0]].pos2.y = -gTasks[taskId].data[5]; + if (gSprites[gTasks[taskId].data[0]].y2 == gTasks[taskId].data[5]) + gSprites[gTasks[taskId].data[0]].y2 = -gTasks[taskId].data[5]; else - gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5]; + gSprites[gTasks[taskId].data[0]].y2 = gTasks[taskId].data[5]; gTasks[taskId].data[3] = gTasks[taskId].data[2]; if (--gTasks[taskId].data[1] == 0) { - gSprites[gTasks[taskId].data[0]].pos2.x = 0; - gSprites[gTasks[taskId].data[0]].pos2.y = 0; + gSprites[gTasks[taskId].data[0]].x2 = 0; + gSprites[gTasks[taskId].data[0]].y2 = 0; DestroyAnimVisualTask(taskId); return; } @@ -256,14 +256,14 @@ static void AnimTask_ShakeMon2_Step(u8 taskId) void AnimTask_ShakeMonInPlace(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xff) + if (spriteId == SPRITE_NONE) { DestroyAnimVisualTask(taskId); return; } - gSprites[spriteId].pos2.x += gBattleAnimArgs[1]; - gSprites[spriteId].pos2.y += gBattleAnimArgs[2]; + gSprites[spriteId].x2 += gBattleAnimArgs[1]; + gSprites[spriteId].y2 += gBattleAnimArgs[2]; gTasks[taskId].data[0] = spriteId; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = gBattleAnimArgs[3]; @@ -281,26 +281,26 @@ static void AnimTask_ShakeMonInPlace_Step(u8 taskId) { if (gTasks[taskId].data[1] & 1) { - gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5]; - gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6]; + gSprites[gTasks[taskId].data[0]].x2 += gTasks[taskId].data[5]; + gSprites[gTasks[taskId].data[0]].y2 += gTasks[taskId].data[6]; } else { - gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5]; - gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6]; + gSprites[gTasks[taskId].data[0]].x2 -= gTasks[taskId].data[5]; + gSprites[gTasks[taskId].data[0]].y2 -= gTasks[taskId].data[6]; } gTasks[taskId].data[3] = gTasks[taskId].data[4]; if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2]) { if (gTasks[taskId].data[1] & 1) { - gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5] / 2; - gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6] / 2; + gSprites[gTasks[taskId].data[0]].x2 += gTasks[taskId].data[5] / 2; + gSprites[gTasks[taskId].data[0]].y2 += gTasks[taskId].data[6] / 2; } else { - gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5] / 2; - gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6] / 2; + gSprites[gTasks[taskId].data[0]].x2 -= gTasks[taskId].data[5] / 2; + gSprites[gTasks[taskId].data[0]].y2 -= gTasks[taskId].data[6] / 2; } DestroyAnimVisualTask(taskId); return; @@ -321,7 +321,14 @@ static void AnimTask_ShakeMonInPlace_Step(u8 taskId) void AnimTask_ShakeAndSinkMon(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; + + if (spriteId == SPRITE_NONE) + { + DestroyAnimVisualTask(taskId); + return; + } + + gSprites[spriteId].x2 = gBattleAnimArgs[1]; gTasks[taskId].data[0] = spriteId; gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; @@ -340,15 +347,15 @@ static void AnimTask_ShakeAndSinkMon_Step(u8 taskId) if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++) { gTasks[taskId].data[8] = 0; - if (gSprites[spriteId].pos2.x == x) + if (gSprites[spriteId].x2 == x) x = -x; - gSprites[spriteId].pos2.x += x; + gSprites[spriteId].x2 += x; } gTasks[taskId].data[1] = x; gTasks[taskId].data[9] += gTasks[taskId].data[3]; - gSprites[spriteId].pos2.y = gTasks[taskId].data[9] >> 8; + gSprites[spriteId].y2 = gTasks[taskId].data[9] >> 8; if (--gTasks[taskId].data[4] == 0) { DestroyAnimVisualTask(taskId); @@ -391,9 +398,9 @@ void AnimTask_TranslateMonElliptical(u8 taskId) static void AnimTask_TranslateMonElliptical_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; - gSprites[spriteId].pos2.x = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]); - gSprites[spriteId].pos2.y = -Cos(gTasks[taskId].data[5], gTasks[taskId].data[2]); - gSprites[spriteId].pos2.y += gTasks[taskId].data[2]; + gSprites[spriteId].x2 = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]); + gSprites[spriteId].y2 = -Cos(gTasks[taskId].data[5], gTasks[taskId].data[2]); + gSprites[spriteId].y2 += gTasks[taskId].data[2]; gTasks[taskId].data[5] += gTasks[taskId].data[4]; gTasks[taskId].data[5] &= 0xff; @@ -402,8 +409,8 @@ static void AnimTask_TranslateMonElliptical_Step(u8 taskId) if (gTasks[taskId].data[3] == 0) { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; DestroyAnimVisualTask(taskId); return; } @@ -494,15 +501,15 @@ static void SlideMonToOriginalPos(struct Sprite *sprite) monSpriteId = gBattlerSpriteIds[gBattleAnimTarget]; sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = gSprites[monSpriteId].pos1.x + gSprites[monSpriteId].pos2.x; - sprite->data[2] = gSprites[monSpriteId].pos1.x; - sprite->data[3] = gSprites[monSpriteId].pos1.y + gSprites[monSpriteId].pos2.y; - sprite->data[4] = gSprites[monSpriteId].pos1.y; + sprite->data[1] = gSprites[monSpriteId].x + gSprites[monSpriteId].x2; + sprite->data[2] = gSprites[monSpriteId].x; + sprite->data[3] = gSprites[monSpriteId].y + gSprites[monSpriteId].y2; + sprite->data[4] = gSprites[monSpriteId].y; InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = 0; sprite->data[4] = 0; - sprite->data[5] = gSprites[monSpriteId].pos2.x; - sprite->data[6] = gSprites[monSpriteId].pos2.y; + sprite->data[5] = gSprites[monSpriteId].x2; + sprite->data[6] = gSprites[monSpriteId].y2; sprite->invisible = TRUE; if (gBattleAnimArgs[1] == 1) @@ -527,10 +534,10 @@ static void SlideMonToOriginalPos_Step(struct Sprite *sprite) if (sprite->data[0] == 0) { if (lo < 2) - monSprite->pos2.x = 0; + monSprite->x2 = 0; if (lo == 2 || lo == 0) - monSprite->pos2.y = 0; + monSprite->y2 = 0; DestroyAnimSprite(sprite); } @@ -539,8 +546,8 @@ static void SlideMonToOriginalPos_Step(struct Sprite *sprite) sprite->data[0]--; sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - monSprite->pos2.x = (s8)(sprite->data[3] >> 8) + sprite->data[5]; - monSprite->pos2.y = (s8)(sprite->data[4] >> 8) + sprite->data[6]; + monSprite->x2 = (s8)(sprite->data[3] >> 8) + sprite->data[5]; + monSprite->y2 = (s8)(sprite->data[4] >> 8) + sprite->data[6]; } } @@ -572,10 +579,10 @@ static void SlideMonToOffset(struct Sprite *sprite) } sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = gSprites[monSpriteId].pos1.x; - sprite->data[2] = gSprites[monSpriteId].pos1.x + gBattleAnimArgs[1]; - sprite->data[3] = gSprites[monSpriteId].pos1.y; - sprite->data[4] = gSprites[monSpriteId].pos1.y + gBattleAnimArgs[2]; + sprite->data[1] = gSprites[monSpriteId].x; + sprite->data[2] = gSprites[monSpriteId].x + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[monSpriteId].y; + sprite->data[4] = gSprites[monSpriteId].y + gBattleAnimArgs[2]; InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = 0; sprite->data[4] = 0; @@ -606,13 +613,13 @@ static void SlideMonToOffsetAndBack(struct Sprite *sprite) } } sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; + sprite->data[1] = gSprites[spriteId].x + gSprites[spriteId].x2; sprite->data[2] = sprite->data[1] + gBattleAnimArgs[1]; - sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y; + sprite->data[3] = gSprites[spriteId].y + gSprites[spriteId].y2; sprite->data[4] = sprite->data[3] + gBattleAnimArgs[2]; InitSpriteDataForLinearTranslation(sprite); - sprite->data[3] = gSprites[spriteId].pos2.x << 8; - sprite->data[4] = gSprites[spriteId].pos2.y << 8; + sprite->data[3] = gSprites[spriteId].x2 << 8; + sprite->data[4] = gSprites[spriteId].y2 << 8; sprite->data[5] = spriteId; sprite->data[6] = gBattleAnimArgs[5]; if (!gBattleAnimArgs[5]) @@ -629,8 +636,8 @@ static void SlideMonToOffsetAndBack(struct Sprite *sprite) static void SlideMonToOffsetAndBack_End(struct Sprite *sprite) { - gSprites[sprite->data[5]].pos2.x = 0; - gSprites[sprite->data[5]].pos2.y = 0; + gSprites[sprite->data[5]].x2 = 0; + gSprites[sprite->data[5]].y2 = 0; DestroyAnimSprite(sprite); } @@ -668,8 +675,8 @@ static void AnimTask_WindUpLunge_Step1(u8 taskId) u8 spriteId; spriteId = gTasks[taskId].data[0]; gTasks[taskId].data[11] += gTasks[taskId].data[1]; - gSprites[spriteId].pos2.x = gTasks[taskId].data[11] >> 8; - gSprites[spriteId].pos2.y = Sin((u8)(gTasks[taskId].data[10] >> 8), gTasks[taskId].data[2]); + gSprites[spriteId].x2 = gTasks[taskId].data[11] >> 8; + gSprites[spriteId].y2 = Sin((u8)(gTasks[taskId].data[10] >> 8), gTasks[taskId].data[2]); gTasks[taskId].data[10] += gTasks[taskId].data[7]; if (--gTasks[taskId].data[3] == 0) { @@ -688,7 +695,7 @@ static void AnimTask_WindUpLunge_Step2(u8 taskId) { spriteId = gTasks[taskId].data[0]; gTasks[taskId].data[12] += gTasks[taskId].data[5]; - gSprites[spriteId].pos2.x = (gTasks[taskId].data[12] >> 8) + (gTasks[taskId].data[11] >> 8); + gSprites[spriteId].x2 = (gTasks[taskId].data[12] >> 8) + (gTasks[taskId].data[11] >> 8); if (--gTasks[taskId].data[6] == 0) { DestroyAnimVisualTask(taskId); @@ -742,8 +749,8 @@ void AnimTask_SlideOffScreen(u8 taskId) static void AnimTask_SlideOffScreen_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; - gSprites[spriteId].pos2.x += gTasks[taskId].data[1]; - if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x + 0x20 > 0x130u) + gSprites[spriteId].x2 += gTasks[taskId].data[1]; + if (gSprites[spriteId].x2 + gSprites[spriteId].x + 0x20 > 0x130u) { DestroyAnimVisualTask(taskId); return; @@ -800,17 +807,17 @@ static void AnimTask_SwayMonStep(u8 taskId) if (gTasks[taskId].data[0] == 0) { - gSprites[spriteId].pos2.x = sineValue; + gSprites[spriteId].x2 = sineValue; } else { if (GetBattlerSide(gTasks[taskId].data[5]) == B_SIDE_PLAYER) { - gSprites[spriteId].pos2.y = (sineValue >= 0) ? sineValue : -sineValue; + gSprites[spriteId].y2 = (sineValue >= 0) ? sineValue : -sineValue; } else { - gSprites[spriteId].pos2.y = (sineValue >= 0) ? -sineValue : sineValue; + gSprites[spriteId].y2 = (sineValue >= 0) ? -sineValue : sineValue; } } @@ -821,8 +828,8 @@ static void AnimTask_SwayMonStep(u8 taskId) gTasks[taskId].data[12] ^= 1; if (--gTasks[taskId].data[3] == 0) { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; DestroyAnimVisualTask(taskId); return; } @@ -1017,8 +1024,8 @@ void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId) gTasks[taskId].data[10] = gBattleAnimArgs[3]; gTasks[taskId].data[11] = gBattleAnimArgs[4]; gTasks[taskId].data[7] = GetAnimBattlerSpriteId(ANIM_TARGET); - gTasks[taskId].data[8] = gSprites[gTasks[taskId].data[7]].pos2.x; - gTasks[taskId].data[9] = gSprites[gTasks[taskId].data[7]].pos2.y; + gTasks[taskId].data[8] = gSprites[gTasks[taskId].data[7]].x2; + gTasks[taskId].data[9] = gSprites[gTasks[taskId].data[7]].y2; gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; @@ -1036,28 +1043,28 @@ static void AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step(u8 taskId) { if (task->data[12]) { - gSprites[task->data[7]].pos2.x = task->data[8] + task->data[13]; + gSprites[task->data[7]].x2 = task->data[8] + task->data[13]; } else { - gSprites[task->data[7]].pos2.x = task->data[8] - task->data[14]; + gSprites[task->data[7]].x2 = task->data[8] - task->data[14]; } } if (task->data[11]) { if (task->data[12]) { - gSprites[task->data[7]].pos2.y = task->data[15]; + gSprites[task->data[7]].y2 = task->data[15]; } else { - gSprites[task->data[7]].pos2.y = 0; + gSprites[task->data[7]].y2 = 0; } } if (!--task->data[2]) { - gSprites[task->data[7]].pos2.x = 0; - gSprites[task->data[7]].pos2.y = 0; + gSprites[task->data[7]].x2 = 0; + gSprites[task->data[7]].y2 = 0; DestroyAnimVisualTask(taskId); return; } diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index c7c0e0b65f..ef34461c7c 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -16,27 +16,20 @@ #include "util.h" #include "constants/battle_anim.h" -#define GET_UNOWN_LETTER(personality) (( \ - (((personality & 0x03000000) >> 24) << 6) \ - | (((personality & 0x00030000) >> 16) << 4) \ - | (((personality & 0x00000300) >> 8) << 2) \ - | (((personality & 0x00000003) >> 0) << 0) \ -) % 28) - #define IS_DOUBLE_BATTLE() ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) extern const struct OamData gOamData_AffineNormal_ObjNormal_64x64; static void sub_80A6FB4(struct Sprite *sprite); -static void sub_80A7144(struct Sprite *sprite); +static void AnimFastTranslateLinearWaitEnd(struct Sprite *sprite); static void AnimThrowProjectile_Step(struct Sprite *sprite); static void sub_80A8DFC(struct Sprite *sprite); -static void sub_80A8E88(struct Sprite *sprite); +static void AnimWeatherBallUp_Step(struct Sprite *sprite); static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); static void AnimTask_BlendPalInAndOutSetup(struct Task *task); -static void sub_80A7AFC(u8 taskId); -static void sub_80A8CAC(u8 taskId); -static void AnimTask_BlendMonInAndOutStep(u8 taskId); +static void AnimTask_AlphaFadeIn_Step(u8 taskId); +static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId); +static void AnimTask_BlendMonInAndOut_Step(u8 taskId); static bool8 sub_80A7238(void); static void sub_80A8D78(struct Task *task, u8 taskId); @@ -86,11 +79,15 @@ static const u8 sCastformBackSpriteYCoords[] = 0, // HAIL }; -static const struct SpriteTemplate sUnknown_08525F90[] = +// Placeholders for pokemon sprites to be created for a move animation effect (e.g. Role Play / Snatch) +#define TAG_MOVE_EFFECT_MON_1 55125 +#define TAG_MOVE_EFFECT_MON_2 55126 + +static const struct SpriteTemplate sSpriteTemplate_MoveEffectMons[] = { { - .tileTag = 55125, - .paletteTag = 55125, + .tileTag = TAG_MOVE_EFFECT_MON_1, + .paletteTag = TAG_MOVE_EFFECT_MON_1, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, @@ -98,8 +95,8 @@ static const struct SpriteTemplate sUnknown_08525F90[] = .callback = SpriteCallbackDummy, }, { - .tileTag = 55126, - .paletteTag = 55126, + .tileTag = TAG_MOVE_EFFECT_MON_2, + .paletteTag = TAG_MOVE_EFFECT_MON_2, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, @@ -108,10 +105,10 @@ static const struct SpriteTemplate sUnknown_08525F90[] = } }; -static const struct SpriteSheet sUnknown_08525FC0[] = +static const struct SpriteSheet sSpriteSheet_MoveEffectMons[] = { - { gMiscBlank_Gfx, 0x800, 55125, }, - { gMiscBlank_Gfx, 0x800, 55126, }, + { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_1, }, + { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_2, }, }; u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType) @@ -433,8 +430,8 @@ void TranslateSpriteInCircleOverDuration(struct Sprite *sprite) { if (sprite->data[3]) { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]); + sprite->x2 = Sin(sprite->data[0], sprite->data[1]); + sprite->y2 = Cos(sprite->data[0], sprite->data[1]); sprite->data[0] += sprite->data[2]; if (sprite->data[0] >= 0x100) sprite->data[0] -= 0x100; @@ -452,8 +449,8 @@ void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite) { if (sprite->data[3]) { - sprite->pos2.x = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); + sprite->x2 = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); + sprite->y2 = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); sprite->data[0] += sprite->data[2]; sprite->data[5] += sprite->data[4]; if (sprite->data[0] >= 0x100) @@ -472,8 +469,8 @@ void sub_80A63C8(struct Sprite *sprite) { if (sprite->data[3]) { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[4], sprite->data[1]); + sprite->x2 = Sin(sprite->data[0], sprite->data[1]); + sprite->y2 = Cos(sprite->data[4], sprite->data[1]); sprite->data[0] += sprite->data[2]; sprite->data[4] += sprite->data[5]; if (sprite->data[0] >= 0x100) @@ -496,8 +493,8 @@ void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) { if (sprite->data[3]) { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[4]); + sprite->x2 = Sin(sprite->data[0], sprite->data[1]); + sprite->y2 = Cos(sprite->data[0], sprite->data[4]); sprite->data[0] += sprite->data[2]; if (sprite->data[0] >= 0x100) sprite->data[0] -= 0x100; @@ -548,8 +545,8 @@ void TranslateSpriteLinear(struct Sprite *sprite) if (sprite->data[0] > 0) { sprite->data[0]--; - sprite->pos2.x += sprite->data[1]; - sprite->pos2.y += sprite->data[2]; + sprite->x2 += sprite->data[1]; + sprite->y2 += sprite->data[2]; } else { @@ -564,8 +561,8 @@ void TranslateSpriteLinearFixedPoint(struct Sprite *sprite) sprite->data[0]--; sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite->pos2.x = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; + sprite->x2 = sprite->data[3] >> 8; + sprite->y2 = sprite->data[4] >> 8; } else { @@ -580,8 +577,8 @@ static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite) sprite->data[0]--; sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite->pos2.x = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; + sprite->x2 = sprite->data[3] >> 8; + sprite->y2 = sprite->data[4] >> 8; } else { @@ -593,8 +590,8 @@ static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite) void sub_80A65EC(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x + sprite->pos2.x; - sprite->data[3] = sprite->pos1.y + sprite->pos2.y; + sprite->data[1] = sprite->x + sprite->x2; + sprite->data[3] = sprite->y + sprite->y2; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = sub_80A64D0; @@ -605,8 +602,8 @@ void TranslateMonSpriteLinear(struct Sprite *sprite) if (sprite->data[0] > 0) { sprite->data[0]--; - gSprites[sprite->data[3]].pos2.x += sprite->data[1]; - gSprites[sprite->data[3]].pos2.y += sprite->data[2]; + gSprites[sprite->data[3]].x2 += sprite->data[1]; + gSprites[sprite->data[3]].y2 += sprite->data[2]; } else { @@ -621,8 +618,8 @@ void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite) sprite->data[0]--; sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - gSprites[sprite->data[5]].pos2.x = sprite->data[3] >> 8; - gSprites[sprite->data[5]].pos2.y = sprite->data[4] >> 8; + gSprites[sprite->data[5]].x2 = sprite->data[3] >> 8; + gSprites[sprite->data[5]].y2 = sprite->data[4] >> 8; } else { @@ -635,9 +632,9 @@ void TranslateSpriteLinearAndFlicker(struct Sprite *sprite) if (sprite->data[0] > 0) { sprite->data[0]--; - sprite->pos2.x = sprite->data[2] >> 8; + sprite->x2 = sprite->data[2] >> 8; sprite->data[2] += sprite->data[1]; - sprite->pos2.y = sprite->data[4] >> 8; + sprite->y2 = sprite->data[4] >> 8; sprite->data[4] += sprite->data[3]; if (sprite->data[0] % sprite->data[5] == 0) { @@ -659,8 +656,8 @@ void DestroySpriteAndMatrix(struct Sprite *sprite) void sub_80A6760(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x + sprite->pos2.x; - sprite->data[3] = sprite->pos1.y + sprite->pos2.y; + sprite->data[1] = sprite->x + sprite->x2; + sprite->data[3] = sprite->y + sprite->y2; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = sub_80A64D0; @@ -700,8 +697,8 @@ void DestroyAnimVisualTaskAndDisableBlend(u8 taskId) void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } // Sets the initial x offset of the anim sprite depending on the horizontal orientation @@ -713,25 +710,25 @@ void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset) if (attackerX > targetX) { - sprite->pos1.x -= xOffset; + sprite->x -= xOffset; } else if (attackerX < targetX) { - sprite->pos1.x += xOffset; + sprite->x += xOffset; } else { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= xOffset; + sprite->x -= xOffset; else - sprite->pos1.x += xOffset; + sprite->x += xOffset; } } void InitAnimArcTranslation(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; InitAnimLinearTranslation(sprite); sprite->data[6] = 0x8000 / sprite->data[0]; sprite->data[7] = 0; @@ -742,7 +739,7 @@ bool8 TranslateAnimHorizontalArc(struct Sprite *sprite) if (AnimTranslateLinear(sprite)) return TRUE; sprite->data[7] += sprite->data[6]; - sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); + sprite->y2 += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); return FALSE; } @@ -751,16 +748,16 @@ bool8 TranslateAnimVerticalArc(struct Sprite *sprite) if (AnimTranslateLinear(sprite)) return TRUE; sprite->data[7] += sprite->data[6]; - sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); + sprite->x2 += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); return FALSE; } void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; } void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets) @@ -769,43 +766,43 @@ void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets // is why there is no else clause for the "respectMonPicOffsets" check. if (!respectMonPicOffsets) { - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y); + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y); } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets) { if (!respectMonPicOffsets) { - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y); + sprite->x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } void InitSpritePosToAnimAttackerPartner(struct Sprite *sprite, bool8 respectMonPicOffsets) { if (!respectMonPicOffsets) { - sprite->pos1.x = GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y); + sprite->x = GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y); } else { - sprite->pos1.x = GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y_PIC_OFFSET); } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } bool32 InitSpritePosToAnimBattler(u32 animBattlerId, struct Sprite *sprite, bool8 respectMonPicOffsets) @@ -819,16 +816,16 @@ bool32 InitSpritePosToAnimBattler(u32 animBattlerId, struct Sprite *sprite, bool if (!respectMonPicOffsets) { - sprite->pos1.x = GetBattlerSpriteCoord2(battlerId, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord2(battlerId, BATTLER_COORD_Y); + sprite->x = GetBattlerSpriteCoord2(battlerId, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord2(battlerId, BATTLER_COORD_Y); } else if (animBattlerId != ANIM_TARGET) { - sprite->pos1.x = GetBattlerSpriteCoord2(battlerId, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord2(battlerId, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord2(battlerId, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord2(battlerId, BATTLER_COORD_Y_PIC_OFFSET); } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; return TRUE; } @@ -892,90 +889,90 @@ bool8 IsDoubleBattle(void) return IS_DOUBLE_BATTLE(); } -void sub_80A6B30(struct BattleAnimBgData *unk) +void GetBattleAnimBg1Data(struct BattleAnimBgData *out) { if (IsContest()) { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - unk->paletteId = 14; - unk->bgId = 1; - unk->tilesOffset = 0; - unk->unused = 0; + out->bgTiles = gUnknown_0202305C; + out->bgTilemap = (u16 *)gUnknown_02023060; + out->paletteId = 14; + out->bgId = 1; + out->tilesOffset = 0; + out->unused = 0; } else { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - unk->paletteId = 8; - unk->bgId = 1; - unk->tilesOffset = 0x200; - unk->unused = 0; + out->bgTiles = gUnknown_0202305C; + out->bgTilemap = (u16 *)gUnknown_02023060; + out->paletteId = 8; + out->bgId = 1; + out->tilesOffset = 0x200; + out->unused = 0; } } -void sub_80A6B90(struct BattleAnimBgData *unk, u32 arg1) +void GetBattleAnimBgData(struct BattleAnimBgData *out, u32 bgId) { if (IsContest()) { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - unk->paletteId = 14; - unk->bgId = 1; - unk->tilesOffset = 0; - unk->unused = 0; + out->bgTiles = gUnknown_0202305C; + out->bgTilemap = (u16 *)gUnknown_02023060; + out->paletteId = 14; + out->bgId = 1; + out->tilesOffset = 0; + out->unused = 0; } - else if (arg1 == 1) + else if (bgId == 1) { - sub_80A6B30(unk); + GetBattleAnimBg1Data(out); } else { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - unk->paletteId = 9; - unk->bgId = 2; - unk->tilesOffset = 0x300; - unk->unused = 0; + out->bgTiles = gUnknown_0202305C; + out->bgTilemap = (u16 *)gUnknown_02023060; + out->paletteId = 9; + out->bgId = 2; + out->tilesOffset = 0x300; + out->unused = 0; } } -void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused) +void sub_80A6BFC(struct BattleAnimBgData *out, u8 unused) { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; + out->bgTiles = gUnknown_0202305C; + out->bgTilemap = (u16 *)gUnknown_02023060; if (IsContest()) { - unk->paletteId = 14; - unk->bgId = 1; - unk->tilesOffset = 0; - unk->unused = 0; + out->paletteId = 14; + out->bgId = 1; + out->tilesOffset = 0; + out->unused = 0; } else if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) { - unk->paletteId = 8; - unk->bgId = 1; - unk->tilesOffset = 0x200; - unk->unused = 0; + out->paletteId = 8; + out->bgId = 1; + out->tilesOffset = 0x200; + out->unused = 0; } else { - unk->paletteId = 9; - unk->bgId = 2; - unk->tilesOffset = 0x300; - unk->unused = 0; + out->paletteId = 9; + out->bgId = 2; + out->tilesOffset = 0x300; + out->unused = 0; } } -void sub_80A6C68(u32 bgId) +void ClearBattleAnimBg(u32 bgId) { - struct BattleAnimBgData unkStruct; + struct BattleAnimBgData bgAnimData; - sub_80A6B90(&unkStruct, bgId); - CpuFill32(0, unkStruct.bgTiles, 0x2000); - LoadBgTiles(unkStruct.bgId, unkStruct.bgTiles, 0x2000, unkStruct.tilesOffset); - FillBgTilemapBufferRect(unkStruct.bgId, 0, 0, 0, 32, 64, 17); - CopyBgTilemapBufferToVram(unkStruct.bgId); + GetBattleAnimBgData(&bgAnimData, bgId); + CpuFill32(0, bgAnimData.bgTiles, 0x2000); + LoadBgTiles(bgAnimData.bgId, bgAnimData.bgTiles, 0x2000, bgAnimData.tilesOffset); + FillBgTilemapBufferRect(bgAnimData.bgId, 0, 0, 0, 32, 64, 17); + CopyBgTilemapBufferToVram(bgAnimData.bgId); } void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset) @@ -1013,9 +1010,9 @@ u8 GetBattleBgPaletteNum(void) return 2; } -void sub_80A6DAC(bool8 arg0) +void UpdateAnimBg3ScreenSize(bool8 largeScreenSize) { - if (!arg0 || IsContest()) + if (!largeScreenSize || IsContest()) { SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 0); SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 1); @@ -1029,8 +1026,8 @@ void sub_80A6DAC(bool8 arg0) void TradeMenuBouncePartySprites(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; InitSpriteDataForLinearTranslation(sprite); sprite->callback = TranslateSpriteLinearFixedPointIconFrame; sprite->callback(sprite); @@ -1076,17 +1073,17 @@ void InitAnimLinearTranslation(struct Sprite *sprite) void StartAnimLinearTranslation(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; InitAnimLinearTranslation(sprite); - sprite->callback = sub_80A6F98; + sprite->callback = AnimTranslateLinear_WaitEnd; sprite->callback(sprite); } void sub_80A6F14(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; InitAnimLinearTranslation(sprite); sprite->callback = sub_80A6FB4; sprite->callback(sprite); @@ -1107,14 +1104,14 @@ bool8 AnimTranslateLinear(struct Sprite *sprite) y += v2; if (v1 & 1) - sprite->pos2.x = -(x >> 8); + sprite->x2 = -(x >> 8); else - sprite->pos2.x = x >> 8; + sprite->x2 = x >> 8; if (v2 & 1) - sprite->pos2.y = -(y >> 8); + sprite->y2 = -(y >> 8); else - sprite->pos2.y = y >> 8; + sprite->y2 = y >> 8; sprite->data[3] = x; sprite->data[4] = y; @@ -1122,7 +1119,7 @@ bool8 AnimTranslateLinear(struct Sprite *sprite) return FALSE; } -void sub_80A6F98(struct Sprite *sprite) +void AnimTranslateLinear_WaitEnd(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) SetCallbackToStoredInData6(sprite); @@ -1135,19 +1132,19 @@ static void sub_80A6FB4(struct Sprite *sprite) SetCallbackToStoredInData6(sprite); } -void sub_80A6FD4(struct Sprite *sprite) +void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite) { int v1 = abs(sprite->data[2] - sprite->data[1]) << 8; sprite->data[0] = v1 / sprite->data[0]; InitAnimLinearTranslation(sprite); } -void sub_80A7000(struct Sprite *sprite) +void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - sub_80A6FD4(sprite); - sprite->callback = sub_80A6F98; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; + InitAnimLinearTranslationWithSpeed(sprite); + sprite->callback = AnimTranslateLinear_WaitEnd; sprite->callback(sprite); } @@ -1181,10 +1178,10 @@ static void InitAnimFastLinearTranslation(struct Sprite *sprite) void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; InitAnimFastLinearTranslation(sprite); - sprite->callback = sub_80A7144; + sprite->callback = AnimFastTranslateLinearWaitEnd; sprite->callback(sprite); } @@ -1203,14 +1200,14 @@ bool8 AnimFastTranslateLinear(struct Sprite *sprite) y += v2; if (v1 & 1) - sprite->pos2.x = -(x >> 4); + sprite->x2 = -(x >> 4); else - sprite->pos2.x = x >> 4; + sprite->x2 = x >> 4; if (v2 & 1) - sprite->pos2.y = -(y >> 4); + sprite->y2 = -(y >> 4); else - sprite->pos2.y = y >> 4; + sprite->y2 = y >> 4; sprite->data[3] = x; sprite->data[4] = y; @@ -1218,7 +1215,7 @@ bool8 AnimFastTranslateLinear(struct Sprite *sprite) return FALSE; } -static void sub_80A7144(struct Sprite *sprite) +static void AnimFastTranslateLinearWaitEnd(struct Sprite *sprite) { if (AnimFastTranslateLinear(sprite)) SetCallbackToStoredInData6(sprite); @@ -1231,12 +1228,12 @@ void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite) InitAnimFastLinearTranslation(sprite); } -void sub_80A718C(struct Sprite *sprite) +void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite) { - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[3] = sprite->y; InitAnimFastLinearTranslationWithSpeed(sprite); - sprite->callback = sub_80A7144; + sprite->callback = AnimFastTranslateLinearWaitEnd; sprite->callback(sprite); } @@ -1307,7 +1304,7 @@ void SetBattlerSpriteYOffsetFromRotation(u8 spriteId) if (c < 0) c = -c; - gSprites[spriteId].pos2.y = c >> 3; + gSprites[spriteId].y2 = c >> 3; } void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation) @@ -1335,7 +1332,7 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x } } -void sub_80A749C(struct Sprite *sprite) +void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite) { TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, 0); sprite->affineAnimPaused = FALSE; @@ -1353,7 +1350,7 @@ u16 ArcTan2Neg(s16 a, s16 b) return -var; } -void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) +void SetGrayscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) { int i; struct PlttData *originalColor; @@ -1382,7 +1379,7 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) } } -u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7) +u32 GetBattleBgPalettesMask(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7) { u32 selectedPalettes = 0; u32 shift; @@ -1435,59 +1432,60 @@ u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, return selectedPalettes; } -u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4) +u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight) { - u32 var = 0; + u32 selectedPalettes = 0; u32 shift; if (IsContest()) { - if (a1) + if (playerLeft) { - var |= 1 << 18; - return var; + selectedPalettes |= 1 << 18; + return selectedPalettes; } } else { - if (a1) + if (playerLeft) { if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT))) { - var |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16); + selectedPalettes |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16); } } - if (a2) + if (playerRight) { if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT))) { shift = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } - if (a3) + if (opponentLeft) { if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))) { shift = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } - if (a4) + if (opponentRight) { if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) { shift = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } } - return var; + return selectedPalettes; } -u8 sub_80A77AC(u8 a1) +// Presumably something commented here, just returns arg +u8 AnimDummyReturnArg(u8 battler) { - return a1; + return battler; } static u8 GetBattlerAtPosition_(u8 position) @@ -1615,7 +1613,7 @@ s16 CloneBattlerSpriteWithBlend(u8 animBattler) u16 i; u8 spriteId = GetAnimBattlerSpriteId(animBattler); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { for (i = 0; i < MAX_SPRITES; i++) { @@ -1662,10 +1660,10 @@ void AnimTask_AlphaFadeIn(u8 taskId) gTasks[taskId].data[7] = gBattleAnimArgs[2]; gTasks[taskId].data[8] = gBattleAnimArgs[3]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gBattleAnimArgs[0], gBattleAnimArgs[1])); - gTasks[taskId].func = sub_80A7AFC; + gTasks[taskId].func = AnimTask_AlphaFadeIn_Step; } -static void sub_80A7AFC(u8 taskId) +static void AnimTask_AlphaFadeIn_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1701,7 +1699,7 @@ static void sub_80A7AFC(u8 taskId) void AnimTask_BlendMonInAndOut(u8 task) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xff) + if (spriteId == SPRITE_NONE) { DestroyAnimVisualTask(task); return; @@ -1719,10 +1717,10 @@ static void AnimTask_BlendPalInAndOutSetup(struct Task *task) task->data[5] = gBattleAnimArgs[3]; task->data[6] = 0; task->data[7] = gBattleAnimArgs[4]; - task->func = AnimTask_BlendMonInAndOutStep; + task->func = AnimTask_BlendMonInAndOut_Step; } -static void AnimTask_BlendMonInAndOutStep(u8 taskId) +static void AnimTask_BlendMonInAndOut_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1847,7 +1845,7 @@ bool8 RunAffineAnimFromTaskData(struct Task *task) task->data[7]++; break; case AFFINEANIMCMDTYPE_END: - gSprites[task->data[15]].pos2.y = 0; + gSprites[task->data[15]].y2 = 0; ResetSpriteRotScale(task->data[15]); return FALSE; } @@ -1861,11 +1859,11 @@ void SetBattlerSpriteYOffsetFromYScale(u8 spriteId) { int var = 64 - GetBattlerYDeltaFromSpriteId(spriteId) * 2; u16 matrix = gSprites[spriteId].oam.matrixNum; - int var2 = (var << 8) / gOamMatrices[matrix].d; + int var2 = SAFE_DIV(var << 8, gOamMatrices[matrix].d); if (var2 > 128) var2 = 128; - gSprites[spriteId].pos2.y = (var - var2) / 2; + gSprites[spriteId].y2 = (var - var2) / 2; } // Sets the sprite's y offset equal to the y displacement caused by another sprite @@ -1874,11 +1872,11 @@ void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId) { int var = 64 - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2; u16 matrix = gSprites[spriteId].oam.matrixNum; - int var2 = (var << 8) / gOamMatrices[matrix].d; + int var2 = SAFE_DIV(var << 8, gOamMatrices[matrix].d); if (var2 > 128) var2 = 128; - gSprites[spriteId].pos2.y = (var - var2) / 2; + gSprites[spriteId].y2 = (var - var2) / 2; } static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) @@ -1942,19 +1940,19 @@ void *LoadPointerFromVars(s16 lo, s16 hi) return (void *)((u16)lo | ((u16)hi << 16)); } -void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7) +void PrepareEruptAnimTaskData(struct Task *task, u8 spriteId, s16 xScaleStart, s16 yScaleStart, s16 xScaleEnd, s16 yScaleEnd, u16 duration) { - task->data[8] = a7; - task->data[15] = a2; // spriteId - task->data[9] = a3; - task->data[10] = a4; - task->data[13] = a5; - task->data[14] = a6; - task->data[11] = (a5 - a3) / a7; - task->data[12] = (a6 - a4) / a7; + task->data[8] = duration; + task->data[15] = spriteId; + task->data[9] = xScaleStart; + task->data[10] = yScaleStart; + task->data[13] = xScaleEnd; + task->data[14] = yScaleEnd; + task->data[11] = (xScaleEnd - xScaleStart) / duration; + task->data[12] = (yScaleEnd - yScaleStart) / duration; } -u8 sub_80A80C8(struct Task *task) +u8 UpdateEruptAnimTask(struct Task *task) { if (!task->data[8]) return 0; @@ -1973,7 +1971,7 @@ u8 sub_80A80C8(struct Task *task) if (task->data[8]) SetBattlerSpriteYOffsetFromYScale(task->data[15]); else - gSprites[task->data[15]].pos2.y = 0; + gSprites[task->data[15]].y2 = 0; return task->data[8]; } @@ -2072,18 +2070,19 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId) return 1; } -u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10) +// Create pokemon sprite to be used for a move animation effect (e.g. Role Play / Snatch) +u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm) { u8 spriteId; - u16 sheet = LoadSpriteSheet(&sUnknown_08525FC0[a3]); - u16 palette = AllocSpritePalette(sUnknown_08525F90[a3].paletteTag); + u16 sheet = LoadSpriteSheet(&sSpriteSheet_MoveEffectMons[id]); + u16 palette = AllocSpritePalette(sSpriteTemplate_MoveEffectMons[id].paletteTag); if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->buffer == NULL) gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000); if (!isBackpic) { LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); - if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) + if (ignoreDeoxysForm == TRUE || ShouldIgnoreDeoxysForm(5, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->buffer, species, @@ -2099,7 +2098,7 @@ u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority else { LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); - if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) + if (ignoreDeoxysForm == TRUE || ShouldIgnoreDeoxysForm(5, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->buffer, species, @@ -2113,18 +2112,18 @@ u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority FALSE); } - RequestDma3Copy(gMonSpritesGfxPtr->buffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1); + RequestDma3Copy(gMonSpritesGfxPtr->buffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), MON_PIC_SIZE, 1); FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); if (!isBackpic) - spriteId = CreateSprite(&sUnknown_08525F90[a3], x, y + gMonFrontPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplate_MoveEffectMons[id], x, y + gMonFrontPicCoords[species].y_offset, subpriority); else - spriteId = CreateSprite(&sUnknown_08525F90[a3], x, y + gMonBackPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplate_MoveEffectMons[id], x, y + gMonBackPicCoords[species].y_offset, subpriority); if (IsContest()) { - gSprites[spriteId].affineAnims = gUnknown_082FF6C0; - StartSpriteAffineAnim(&gSprites[spriteId], 0); + gSprites[spriteId].affineAnims = gAffineAnims_BattleSpriteContest; + StartSpriteAffineAnim(&gSprites[spriteId], BATTLER_AFFINE_NORMAL); } return spriteId; } @@ -2306,7 +2305,7 @@ void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x *y = (battlerY + partnerY) / 2; } -u8 sub_80A89C8(int battlerId, u8 spriteId, int species) +u8 CreateInvisibleSpriteCopy(int battlerId, u8 spriteId, int species) { u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); gSprites[newSpriteId] = gSprites[spriteId]; @@ -2318,20 +2317,20 @@ u8 sub_80A89C8(int battlerId, u8 spriteId, int species) return newSpriteId; } -void sub_80A8A6C(struct Sprite *sprite) +void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker)) { - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; sprite->hFlip = TRUE; } else { - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; } - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; @@ -2340,18 +2339,19 @@ void sub_80A8A6C(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -void sub_80A8AEC(struct Sprite *sprite) +// Used by three different unused battle anim sprite templates. +void AnimTranslateLinearAndFlicker(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; gBattleAnimArgs[3] *= -1; } else { - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; } - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; @@ -2366,10 +2366,10 @@ void AnimSpinningSparkle(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker)) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->callback = RunStoredCallbackWhenAnimEnds; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -2387,8 +2387,8 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId) task->data[1] = ((GetBattlerSide(gBattleAnimAttacker)) != B_SIDE_PLAYER) ? -8 : 8; task->data[2] = 0; task->data[3] = 0; - gSprites[task->data[0]].pos2.x -= task->data[0]; - task->data[4] = AllocSpritePalette(10097); + gSprites[task->data[0]].x2 -= task->data[0]; + task->data[4] = AllocSpritePalette(ANIM_TAG_BENT_SPOON); task->data[5] = 0; dest = (task->data[4] + 0x10) * 0x10; @@ -2400,17 +2400,17 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId) task->data[6] = 3; CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20); BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]); - task->func = sub_80A8CAC; + task->func = AnimTask_AttackerPunchWithTrace_Step; } -static void sub_80A8CAC(u8 taskId) +static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[2]) { case 0: sub_80A8D78(task, taskId); - gSprites[task->data[0]].pos2.x += task->data[1]; + gSprites[task->data[0]].x2 += task->data[1]; if (++task->data[3] == 5) { task->data[3]--; @@ -2419,10 +2419,10 @@ static void sub_80A8CAC(u8 taskId) break; case 1: sub_80A8D78(task, taskId); - gSprites[task->data[0]].pos2.x -= task->data[1]; + gSprites[task->data[0]].x2 -= task->data[1]; if (--task->data[3] == 0) { - gSprites[task->data[0]].pos2.x = 0; + gSprites[task->data[0]].x2 = 0; task->data[2]++; } break; @@ -2446,7 +2446,7 @@ static void sub_80A8D78(struct Task *task, u8 taskId) gSprites[spriteId].data[0] = 8; gSprites[spriteId].data[1] = taskId; gSprites[spriteId].data[2] = spriteId; - gSprites[spriteId].pos2.x = gSprites[task->data[0]].pos2.x; + gSprites[spriteId].x2 = gSprites[task->data[0]].x2; gSprites[spriteId].callback = sub_80A8DFC; task->data[5]++; } @@ -2463,25 +2463,25 @@ static void sub_80A8DFC(struct Sprite *sprite) void AnimWeatherBallUp(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); if (!GetBattlerSide(gBattleAnimAttacker)) sprite->data[0] = 5; else sprite->data[0] = -10; sprite->data[1] = -40; - sprite->callback = sub_80A8E88; + sprite->callback = AnimWeatherBallUp_Step; } -static void sub_80A8E88(struct Sprite *sprite) +static void AnimWeatherBallUp_Step(struct Sprite *sprite) { sprite->data[2] += sprite->data[0]; sprite->data[3] += sprite->data[1]; - sprite->pos2.x = sprite->data[2] / 10; - sprite->pos2.y = sprite->data[3] / 10; + sprite->x2 = sprite->data[2] / 10; + sprite->y2 = sprite->data[3] / 10; if (sprite->data[1] < -20) sprite->data[1]++; - if (sprite->pos1.y + sprite->pos2.y < -32) + if (sprite->y + sprite->y2 < -32) DestroyAnimSprite(sprite); } @@ -2489,19 +2489,19 @@ void AnimWeatherBallDown(struct Sprite *sprite) { int x; sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4]; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5]; + sprite->data[2] = sprite->x + gBattleAnimArgs[4]; + sprite->data[4] = sprite->y + gBattleAnimArgs[5]; if (!GetBattlerSide(gBattleAnimTarget)) { x = (u16)gBattleAnimArgs[4] + 30; - sprite->pos1.x += x; - sprite->pos1.y = gBattleAnimArgs[5] - 20; + sprite->x += x; + sprite->y = gBattleAnimArgs[5] - 20; } else { x = (u16)gBattleAnimArgs[4] - 30; - sprite->pos1.x += x; - sprite->pos1.y = gBattleAnimArgs[5] - 80; + sprite->x += x; + sprite->y = gBattleAnimArgs[5] - 80; } sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index a1c4d1afd3..0c452c236f 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -353,7 +353,7 @@ const struct SpriteTemplate gQuickGuardArmImpactTemplate = .tileTag = ANIM_TAG_QUICK_GUARD_HAND, .paletteTag = ANIM_TAG_QUICK_GUARD_HAND, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot @@ -421,7 +421,7 @@ const struct SpriteTemplate gQuashArmHitTemplate = .tileTag = ANIM_TAG_ASSURANCE_HAND, .paletteTag = ANIM_TAG_ASSURANCE_HAND, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimStompFoot @@ -534,7 +534,7 @@ const struct SpriteTemplate gHeartStampSpinningHeartTemplate = .tileTag = ANIM_TAG_HEART_STAMP, .paletteTag = ANIM_TAG_HEART_STAMP, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gAffineAnims_SpinningHandOrFoot, .callback = AnimSpinningKickOrPunch @@ -720,7 +720,7 @@ const struct SpriteTemplate gSearingShotEruptionImpactTemplate = .tileTag = ANIM_TAG_WARM_ROCK, .paletteTag = ANIM_TAG_WARM_ROCK, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = sSpriteAffineAnimTable_SearingShotRock, .callback = SpriteCB_SearingShotRock @@ -2170,7 +2170,7 @@ const struct SpriteTemplate gIceHammerPunchStompTemplate = .tileTag = ANIM_TAG_HORSESHOE_SIDE_FIST, .paletteTag = ANIM_TAG_HORSESHOE_SIDE_FIST, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimStompFoot @@ -2238,7 +2238,7 @@ const struct SpriteTemplate gHighHorsepowerHorseshoeTemplate = .tileTag = ANIM_TAG_HORSESHOE_SIDE_FIST, .paletteTag = ANIM_TAG_HORSESHOE_SIDE_FIST, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gAffineAnims_MegaPunchKick, .callback = AnimSpinningKickOrPunch @@ -2807,7 +2807,7 @@ const struct SpriteTemplate gTropKickGreenFootTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimJumpKick @@ -3731,7 +3731,7 @@ const struct SpriteTemplate gClangorousSoulRedFistTemplate = .tileTag = ANIM_TAG_HORSESHOE_SIDE_FIST, .paletteTag = ANIM_TAG_VERTICAL_HEX, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gAnims_HandOrFoot, + .anims = gAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimJumpKick @@ -4107,46 +4107,46 @@ static u8 GetProperCentredCoord(u8 battler, u8 coordType) static void InitSpritePosToGivenTarget(struct Sprite* sprite, u8 target) { - sprite->pos1.x = GetBattlerSpriteCoord2(target, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord2(target, BATTLER_COORD_Y); + sprite->x = GetBattlerSpriteCoord2(target, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord2(target, BATTLER_COORD_Y); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos2.y = gBattleAnimArgs[1]; + sprite->y2 = gBattleAnimArgs[1]; } static void InitSpritePosToAnimTargetsCentre(struct Sprite *sprite, bool8 respectMonPicOffsets) { if (!respectMonPicOffsets) { - sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X) + sprite->x = (GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X) + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_X)) / 2; - sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y) + sprite->y = (GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y) + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_Y)) / 2; } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } static void InitSpritePosToAnimAttackersCentre(struct Sprite *sprite, bool8 respectMonPicOffsets) { if (!respectMonPicOffsets) { - sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X) + sprite->x = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X) + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X)) / 2; - sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y) + sprite->y = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y) + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y)) / 2; } else { - sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2) + sprite->x = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X_2)) / 2; - sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + sprite->y = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y_PIC_OFFSET)) / 2; } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; } //sprite callbacks @@ -4194,10 +4194,10 @@ static void SpriteCB_SpriteOnMonForDuration(struct Sprite *sprite) } else { - sprite->pos1.x = GetBattlerSpriteCoord(target, 0); - sprite->pos1.y = GetBattlerSpriteCoord(target, 1); - sprite->pos1.x += gBattleAnimArgs[1]; - sprite->pos1.y += gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(target, 0); + sprite->y = GetBattlerSpriteCoord(target, 1); + sprite->x += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[2]; sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; @@ -4209,13 +4209,13 @@ static void SpriteCB_SpriteOnMonForDuration(struct Sprite *sprite) static void SpriteCB_ToxicThreadWrap(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) - sprite->pos1.y += 8; + sprite->y += 8; sprite->callback = AnimStringWrap_Step; } @@ -4227,8 +4227,8 @@ static void SpriteCB_GrowingSuperpower(struct Sprite *sprite) if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); battler = gBattleAnimTarget; sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); } @@ -4242,14 +4242,14 @@ static void SpriteCB_GrowingSuperpower(struct Sprite *sprite) StartSpriteAffineAnim(sprite, 1); sprite->data[0] = 16; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(battler, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(battler, 3); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = sub_80A6F98; + sprite->callback = AnimTranslateLinear_WaitEnd; } static void SpriteCB_CentredSpiderWeb(struct Sprite* sprite) @@ -4281,7 +4281,7 @@ static void SpriteCB_CoreEnforcerHits(struct Sprite* sprite) InitSpritePosToAnimTarget(sprite, FALSE); } - sprite->pos1.y += 20; + sprite->y += 20; sprite->callback = AnimFlashingHitSplat_Step; } @@ -4357,17 +4357,17 @@ static void SpriteCB_FallingObject(struct Sprite *sprite) DestroyAnimSprite(sprite); else { - sprite->pos1.x = GetBattlerSpriteCoord2(target, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord2(target, BATTLER_COORD_Y); + sprite->x = GetBattlerSpriteCoord2(target, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord2(target, BATTLER_COORD_Y); - sprite->pos2.x = gBattleAnimArgs[0]; - sprite->pos1.y = gBattleAnimArgs[1]; - sprite->pos2.y = -gBattleAnimArgs[1]; + sprite->x2 = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[1]; + sprite->y2 = -gBattleAnimArgs[1]; if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { - sprite->pos1.y += 45; - sprite->pos2.y -= 45; + sprite->y += 45; + sprite->y2 -= 45; } sprite->data[3] = gBattleAnimArgs[2]; //Speed @@ -4379,10 +4379,10 @@ static void SpriteCB_FallingObjectStep(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos2.y += sprite->data[3]; - if (sprite->pos2.y >= 0) + sprite->y2 += sprite->data[3]; + if (sprite->y2 >= 0) { - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[0]++; } break; @@ -4402,19 +4402,19 @@ static void SpriteCB_SunsteelStrikeRings(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x = 272; - sprite->pos1.y = -32; + sprite->x = 272; + sprite->y = -32; } else { - sprite->pos1.x = -32; - sprite->pos1.y = -32; + sprite->x = -32; + sprite->y = -32; } sprite->data[0] = gBattleAnimArgs[0]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); @@ -4429,8 +4429,8 @@ static void SpriteCB_SunsteelStrikeRings(struct Sprite* sprite) //arg 5: wave amplitude static void SpriteCB_MoongeistCharge(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; //Target X @@ -4448,18 +4448,18 @@ static void SpriteCB_MoongeistCharge(struct Sprite *sprite) //arg 2: duration step 3 (center -> target) static void SpriteCB_MindBlownBall(struct Sprite *sprite) { - s16 oldPosX = sprite->pos1.x; - s16 oldPosY = sprite->pos1.y; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + s16 oldPosX = sprite->x; + s16 oldPosY = sprite->y; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; sprite->data[3] = gBattleAnimArgs[2]; - sprite->data[4] = sprite->pos1.x << 4; - sprite->data[5] = sprite->pos1.y << 4; - sprite->data[6] = ((oldPosX - sprite->pos1.x) << 4) / (gBattleAnimArgs[0] << 1); - sprite->data[7] = ((oldPosY - sprite->pos1.y) << 4) / (gBattleAnimArgs[0] << 1); + sprite->data[4] = sprite->x << 4; + sprite->data[5] = sprite->y << 4; + sprite->data[6] = ((oldPosX - sprite->x) << 4) / (gBattleAnimArgs[0] << 1); + sprite->data[7] = ((oldPosY - sprite->y) << 4) / (gBattleAnimArgs[0] << 1); sprite->callback = AnimMindBlownBallStep; } static void AnimMindBlownBallStep(struct Sprite *sprite) @@ -4469,8 +4469,8 @@ static void AnimMindBlownBallStep(struct Sprite *sprite) case 0: sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; - sprite->pos1.x = sprite->data[4] >> 4; - sprite->pos1.y = sprite->data[5] >> 4; + sprite->x = sprite->data[4] >> 4; + sprite->y = sprite->data[5] >> 4; sprite->data[1] -= 1; if (sprite->data[1] > 0) break; @@ -4483,22 +4483,22 @@ static void AnimMindBlownBallStep(struct Sprite *sprite) sprite->data[1] = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[2] = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - sprite->data[4] = sprite->pos1.x << 4; - sprite->data[5] = sprite->pos1.y << 4; - sprite->data[6] = ((sprite->data[1] - sprite->pos1.x) << 4) / sprite->data[3]; - sprite->data[7] = ((sprite->data[2] - sprite->pos1.y) << 4) / sprite->data[3]; + sprite->data[4] = sprite->x << 4; + sprite->data[5] = sprite->y << 4; + sprite->data[6] = ((sprite->data[1] - sprite->x) << 4) / sprite->data[3]; + sprite->data[7] = ((sprite->data[2] - sprite->y) << 4) / sprite->data[3]; sprite->data[0] += 1; break; case 2: sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; - sprite->pos1.x = sprite->data[4] >> 4; - sprite->pos1.y = sprite->data[5] >> 4; + sprite->x = sprite->data[4] >> 4; + sprite->y = sprite->data[5] >> 4; sprite->data[3] -= 1; if (sprite->data[3] > 0) break; - sprite->pos1.x = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->pos1.y = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] += 1; break; case 3: @@ -4526,25 +4526,25 @@ static void SpriteCB_MindBlownExplosion(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[4]; if (gBattleAnimArgs[1] == 0) { - sprite->pos1.x = gBattleAnimArgs[2] + a; - sprite->pos1.y = gBattleAnimArgs[3] + b; + sprite->x = gBattleAnimArgs[2] + a; + sprite->y = gBattleAnimArgs[3] + b; sprite->data[5] = a; sprite->data[6] = b; } else { - sprite->pos1.x = a; - sprite->pos1.y = b; + sprite->x = a; + sprite->y = b; sprite->data[5] = gBattleAnimArgs[2] + a; sprite->data[6] = gBattleAnimArgs[3] + b; } - x = sprite->pos1.x; + x = sprite->x; sprite->data[1] = x * 16; - y = sprite->pos1.y; + y = sprite->y; sprite->data[2] = y * 16; - sprite->data[3] = (sprite->data[5] - sprite->pos1.x) * 16 / gBattleAnimArgs[4]; - sprite->data[4] = (sprite->data[6] - sprite->pos1.y) * 16 / gBattleAnimArgs[4]; + sprite->data[3] = (sprite->data[5] - sprite->x) * 16 / gBattleAnimArgs[4]; + sprite->data[4] = (sprite->data[6] - sprite->y) * 16 / gBattleAnimArgs[4]; sprite->callback = AnimNeedleArmSpike_Step; } @@ -4572,8 +4572,8 @@ static void SpriteCB_RandomCentredHits(struct Sprite* sprite) InitSpritePosToAnimTarget(sprite, FALSE); } - sprite->pos2.x += (Random() % 48) - 24; - sprite->pos2.y += (Random() % 24) - 12; + sprite->x2 += (Random() % 48) - 24; + sprite->y2 += (Random() % 24) - 12; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; @@ -4584,8 +4584,8 @@ static void SpriteCB_RandomCentredHits(struct Sprite* sprite) //arg 6: Time to hold bite for. static void SpriteCB_LockingJaw(struct Sprite *sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[4]; @@ -4597,8 +4597,8 @@ static void SpriteCB_LockingJawStep(struct Sprite *sprite) { sprite->data[4] += sprite->data[0]; sprite->data[5] += sprite->data[1]; - sprite->pos2.x = sprite->data[4] >> 8; - sprite->pos2.y = sprite->data[5] >> 8; + sprite->x2 = sprite->data[4] >> 8; + sprite->y2 = sprite->data[5] >> 8; if (++sprite->data[3] == sprite->data[2]) sprite->callback = SpriteCB_LockingJawFinish; } @@ -4613,21 +4613,21 @@ static void SpriteCB_LockingJawFinish(struct Sprite *sprite) //arg 1: Speed static void SpriteCB_LeftRightSlice(struct Sprite *sprite) { - sprite->pos2.x = gBattleAnimArgs[0]; + sprite->x2 = gBattleAnimArgs[0]; sprite->data[0] = -gBattleAnimArgs[0]; //Slice distance sprite->data[1] = gBattleAnimArgs[1]; //Slice speed sprite->callback = SpriteCB_LeftRightSliceStep0; } static void SpriteCB_LeftRightSliceStep1(struct Sprite *sprite) { - sprite->pos2.x += sprite->data[1]; - if (sprite->pos2.x >= sprite->data[0]) + sprite->x2 += sprite->data[1]; + if (sprite->x2 >= sprite->data[0]) DestroyAnimSprite(sprite); } static void SpriteCB_LeftRightSliceStep0(struct Sprite *sprite) { - sprite->pos2.x -= sprite->data[1]; - if (sprite->pos2.x <= sprite->data[0]) + sprite->x2 -= sprite->data[1]; + if (sprite->x2 <= sprite->data[0]) { sprite->data[0] = -sprite->data[0]; sprite->callback = SpriteCB_LeftRightSliceStep1; @@ -4646,7 +4646,7 @@ static void SpriteCB_PyroBallRockBounceStep(struct Sprite* sprite) s8 initialVerticalVelocity; s8 initialHorizontalVelocity; - if (sprite->pos2.y > 0) //Rock returned back down + if (sprite->y2 > 0) //Rock returned back down { if (gBattleAnimArgs[2] || sMovingBackHorizontally) //Finished moving from left to right DestroyAnimSprite(sprite); @@ -4664,13 +4664,13 @@ static void SpriteCB_PyroBallRockBounceStep(struct Sprite* sprite) //g = 0.25 (gravity not negative b/c go up to go closer to 0) //h = vi*t + 0.5g*t^2 //t = sVerticalTime - sprite->pos2.y = (initialVerticalVelocity * sVerticalTime + (1 * sVerticalTime * sVerticalTime) / 4); + sprite->y2 = (initialVerticalVelocity * sVerticalTime + (1 * sVerticalTime * sVerticalTime) / 4); //x = vi*t //vi = sprite->data[2] //t = sHorizontalTime if (!gBattleAnimArgs[2]) - sprite->pos2.x = (initialHorizontalVelocity * sHorizontalTime); + sprite->x2 = (initialHorizontalVelocity * sHorizontalTime); sVerticalTime++; @@ -4683,10 +4683,10 @@ static void SpriteCB_PyroBallRockBounceStep(struct Sprite* sprite) static void InitSpritePositionForPyroBall(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, 0); - sprite->pos1.y += 20; //Move closer to attacker's feet + sprite->y += 20; //Move closer to attacker's feet if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - sprite->pos1.y += 20; //Move below the text box + sprite->y += 20; //Move below the text box } @@ -4731,7 +4731,7 @@ static void SpriteCB_AcidLaunchSingleTarget(struct Sprite *sprite) StartSpriteAnim(sprite, 2); InitSpritePosToAnimTarget(sprite, TRUE); - l1 = sprite->pos1.x; l2 = sprite->pos1.y; + l1 = sprite->x; l2 = sprite->y; InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker)) gBattleAnimArgs[4] = -gBattleAnimArgs[4]; @@ -4750,12 +4750,12 @@ static void SpriteCB_AcidDripSingleTarget(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[4] = sprite->pos1.y + sprite->data[0]; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[4] = sprite->y + sprite->data[0]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -4774,13 +4774,13 @@ static void SpriteCB_WaterDroplet(struct Sprite *sprite) else { InitSpritePosToGivenTarget(sprite, target); - sprite->data[1] = sprite->pos1.y; //Target's y coord + sprite->data[1] = sprite->y; //Target's y coord - sprite->pos2.x = gBattleAnimArgs[0]; - sprite->pos2.y = 0; + sprite->x2 = gBattleAnimArgs[0]; + sprite->y2 = 0; //Put droplet at the top of the screen - sprite->pos1.y = 15; + sprite->y = 15; sprite->callback = SpriteCB_WaterDropletDrip; } @@ -4794,8 +4794,8 @@ static void SpriteCB_WaterDropletDrip(struct Sprite *sprite) } static void SpriteCB_WaterDropletDrop(struct Sprite *sprite) { - sprite->pos2.y += 4; - if (sprite->pos2.y >= sprite->data[1]) + sprite->y2 += 4; + if (sprite->y2 >= sprite->data[1]) { sprite->data[0] = 19; StartSpriteAnim(sprite, 1); @@ -4826,12 +4826,12 @@ static void SpriteCB_AnimSpriteOnSelectedMonPos(struct Sprite *sprite) static void SpriteCB_SurroundingRing(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 40; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 40; sprite->data[0] = 13; - sprite->data[2] = sprite->pos1.x; - sprite->data[4] = sprite->pos1.y - 72; + sprite->data[2] = sprite->x; + sprite->data[4] = sprite->y - 72; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -4918,10 +4918,10 @@ static void SpriteCB_SearingShotRock(struct Sprite* sprite) static void AnimHappyHourCoinShower(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) - SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->pos1.x, &sprite->pos1.y); //coin shower on attacker + SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y); //coin shower on attacker - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += 14; + sprite->x += gBattleAnimArgs[0]; + sprite->y += 14; StartSpriteAnim(sprite, gBattleAnimArgs[1]); AnimateSprite(sprite); sprite->data[0] = 0; @@ -4941,8 +4941,8 @@ static void AnimHappyHourCoinShower(struct Sprite *sprite) //arg 2: initial y pixel offset static void SpriteCB_Geyser(struct Sprite* sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[1] > 0 ? 1 : -1; sprite->callback = AnimMudSportDirtRising; @@ -4969,10 +4969,10 @@ void AnimTask_SquishTarget(u8 taskId) void CoreEnforcerLoadBeamTarget(struct Sprite* sprite) { sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_X_2)) / 2; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_Y_PIC_OFFSET)) / 2; } diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c index 0e45fe644c..4cead3d97f 100644 --- a/src/battle_anim_normal.c +++ b/src/battle_anim_normal.c @@ -12,7 +12,7 @@ static void AnimSimplePaletteBlend_Step(struct Sprite *); static void AnimComplexPaletteBlend(struct Sprite *); static void AnimComplexPaletteBlend_Step1(struct Sprite *); static void AnimComplexPaletteBlend_Step2(struct Sprite *); -static void sub_81159B4(struct Sprite *); +static void AnimCirclingSparkle(struct Sprite *); static void AnimShakeMonOrBattleTerrain(struct Sprite *); static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *); static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void); @@ -144,7 +144,7 @@ const struct SpriteTemplate gPowerSwapGuardSwapSpriteTemplate = .callback = AnimMovePowerSwapGuardSwap }; -static const union AnimCmd gUnknown_085972A4[] = +static const union AnimCmd sAnim_CirclingSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -154,21 +154,21 @@ static const union AnimCmd gUnknown_085972A4[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_085972BC[] = +static const union AnimCmd *const sAnims_CirclingSparkle[] = { - gUnknown_085972A4, + sAnim_CirclingSparkle, }; // Unused -const struct SpriteTemplate gUnknown_085972C0 = +static const struct SpriteTemplate sCirclingSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_085972BC, + .anims = sAnims_CirclingSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81159B4, + .callback = AnimCirclingSparkle, }; const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate = @@ -346,8 +346,8 @@ static void AnimMovePowerSwapGuardSwap(struct Sprite* sprite) // arg 4: duration static void AnimConfusionDuck(struct Sprite *sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -368,8 +368,8 @@ static void AnimConfusionDuck(struct Sprite *sprite) static void AnimConfusionDuck_Step(struct Sprite *sprite) { - sprite->pos2.x = Cos(sprite->data[0], 30); - sprite->pos2.y = Sin(sprite->data[0], 10); + sprite->x2 = Cos(sprite->data[0], 30); + sprite->y2 = Sin(sprite->data[0], 10); if ((u16)sprite->data[0] < 128) sprite->oam.priority = 1; @@ -389,7 +389,7 @@ static void AnimConfusionDuck_Step(struct Sprite *sprite) // arg 4: blend color static void AnimSimplePaletteBlend(struct Sprite *sprite) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]); BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]); sprite->invisible = TRUE; sprite->callback = AnimSimplePaletteBlend_Step; @@ -404,7 +404,7 @@ static void AnimSimplePaletteBlend(struct Sprite *sprite) // 4: gBattleAnimTarget partner OBJ palette // 5: BG palette 4 // 6: BG palette 5 -u32 UnpackSelectedBattleAnimPalettes(s16 selector) +u32 UnpackSelectedBattleBgPalettes(s16 selector) { u8 battleBackground = selector & 1; u8 attacker = (selector >> 1) & 1; @@ -413,7 +413,7 @@ u32 UnpackSelectedBattleAnimPalettes(s16 selector) u8 targetPartner = (selector >> 4) & 1; u8 arg5 = (selector >> 5) & 1; u8 arg6 = (selector >> 6) & 1; - return sub_80A75AC(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6); + return GetBattleBgPalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6); } static void AnimSimplePaletteBlend_Step(struct Sprite *sprite) @@ -435,7 +435,7 @@ static void AnimComplexPaletteBlend(struct Sprite *sprite) sprite->data[6] = gBattleAnimArgs[6]; sprite->data[7] = gBattleAnimArgs[0]; - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]); BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]); sprite->invisible = TRUE; sprite->callback = AnimComplexPaletteBlend_Step1; @@ -460,7 +460,7 @@ static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite) return; } - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]); if (sprite->data[1] & 0x100) BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]); else @@ -477,16 +477,16 @@ static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite) if (!gPaletteFade.active) { - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]); BlendPalettes(selectedPalettes, 0, 0); DestroyAnimSprite(sprite); } } -static void sub_81159B4(struct Sprite *sprite) +static void AnimCirclingSparkle(struct Sprite *sprite) { - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = 0; sprite->data[1] = 10; sprite->data[2] = 8; @@ -527,7 +527,7 @@ void AnimTask_BlendColorCycle(u8 taskId) static void BlendColorCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].tPalSelector); + u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gTasks[taskId].tPalSelector); BeginNormalPaletteFade( selectedPalettes, gTasks[taskId].tDelay, @@ -649,8 +649,6 @@ static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId) // See AnimTask_BlendColorCycle. Same, but selects palette by ANIM_TAG_* void AnimTask_BlendColorCycleByTag(u8 taskId) { - u8 paletteIndex; - gTasks[taskId].tPalTag = gBattleAnimArgs[0]; gTasks[taskId].tDelay = gBattleAnimArgs[1]; gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; @@ -806,7 +804,7 @@ void AnimTask_InvertScreenColor(u8 taskId) u32 selectedPalettes = 0; if (gBattleAnimArgs[0] & 0x1) - selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0); if (gBattleAnimArgs[0] & 0x2) selectedPalettes |= (0x10000 << gBattleAnimAttacker); if (gBattleAnimArgs[0] & 0x4) @@ -820,7 +818,7 @@ void AnimTask_InvertScreenColor(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_8115F94(u8 taskId) +void UnusedAnimTask_8115F94(u8 taskId) { u8 attackerBattler; u8 targetBattler; @@ -1056,8 +1054,8 @@ void AnimHitSplatRandom(struct Sprite *sprite) return; StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]); - sprite->pos2.x += (Random2() % 48) - 24; - sprite->pos2.y += (Random2() % 24) - 12; + sprite->x2 += (Random2() % 48) - 24; + sprite->y2 += (Random2() % 24) - 12; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; @@ -1066,10 +1064,10 @@ void AnimHitSplatRandom(struct Sprite *sprite) void AnimHitSplatOnMonEdge(struct Sprite *sprite) { sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x; - sprite->pos1.y = gSprites[sprite->data[0]].pos1.y + gSprites[sprite->data[0]].pos2.y; - sprite->pos2.x = gBattleAnimArgs[1]; - sprite->pos2.y = gBattleAnimArgs[2]; + sprite->x = gSprites[sprite->data[0]].x + gSprites[sprite->data[0]].x2; + sprite->y = gSprites[sprite->data[0]].y + gSprites[sprite->data[0]].y2; + sprite->x2 = gBattleAnimArgs[1]; + sprite->y2 = gBattleAnimArgs[2]; StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; diff --git a/src/battle_anim_poison.c b/src/battle_anim_poison.c index f50ad1298d..90a645fd78 100644 --- a/src/battle_anim_poison.c +++ b/src/battle_anim_poison.c @@ -324,9 +324,9 @@ static void AnimGunkShotParticles(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 30; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); InitAnimLinearTranslation(sprite); sprite->data[5] = 0xD200 / sprite->data[0]; @@ -349,7 +349,7 @@ static void AnimGunkShotParticlesStep(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); - sprite->pos2.y += Sin(sprite->data[6] >> 8, sprite->data[7]); + sprite->y2 += Sin(sprite->data[6] >> 8, sprite->data[7]); if ((sprite->data[6] + sprite->data[5]) >> 8 > 127) { sprite->data[6] = 0; @@ -372,10 +372,10 @@ static void AnimSuckerPunch(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y; InitAnimLinearTranslation(sprite); @@ -390,7 +390,7 @@ static void AnimSuckerPunchStep(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { - sprite->pos2.y += Sin(sprite->data[7] >> 8, sprite->data[5]); + sprite->y2 += Sin(sprite->data[7] >> 8, sprite->data[5]); sprite->data[7] += sprite->data[6]; } else @@ -456,10 +456,10 @@ void AnimAcidPoisonBubble_Step(struct Sprite *sprite) void AnimSludgeBombHitParticle(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[0]; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[1]; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x + gBattleAnimArgs[0]; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y + gBattleAnimArgs[1]; InitSpriteDataForLinearTranslation(sprite); @@ -483,17 +483,17 @@ static void AnimSludgeBombHitParticle_Step(struct Sprite *sprite) static void AnimAcidPoisonDroplet(struct Sprite *sprite) { if (gBattleAnimArgs[5]) - SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->x, &sprite->y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[4] = sprite->pos1.y + sprite->data[0]; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[4] = sprite->y + sprite->data[0]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -513,13 +513,13 @@ static void AnimBubbleEffect(struct Sprite *sprite) } else { - SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->x, &sprite->y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } sprite->callback = AnimBubbleEffect_Step; @@ -528,9 +528,9 @@ static void AnimBubbleEffect(struct Sprite *sprite) static void AnimBubbleEffect_Step(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 0xB) & 0xFF; - sprite->pos2.x = Sin(sprite->data[0], 4); + sprite->x2 = Sin(sprite->data[0], 4); sprite->data[1] += 0x30; - sprite->pos2.y = -(sprite->data[1] >> 8); + sprite->y2 = -(sprite->data[1] >> 8); if (sprite->affineAnimEnded) DestroyAnimSprite(sprite); diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index e4e91bd426..2cc48b571a 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -507,7 +507,7 @@ static void AnimPsychoCut(struct Sprite *sprite) lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; - rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y); + rot = ArcTan2Neg(lVarX - sprite->x, lVarY - sprite->y); rot += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot); @@ -523,13 +523,13 @@ static void AnimateZenHeadbutt(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; } StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); @@ -567,13 +567,13 @@ static void AnimDefensiveWall(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - sprite->pos1.x = 72; - sprite->pos1.y = 80; + sprite->x = 72; + sprite->y = 80; } else { - sprite->pos1.x = 176; - sprite->pos1.y = 40; + sprite->x = 176; + sprite->y = 40; } } else @@ -581,15 +581,15 @@ static void AnimDefensiveWall(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[1]; } sprite->data[0] = 256 + IndexOfSpritePaletteTag(gBattleAnimArgs[2]) * 16; if (isContest) { - sprite->pos1.y += 9; + sprite->y += 9; sprite->callback = AnimDefensiveWall_Step2; sprite->callback(sprite); } @@ -682,14 +682,14 @@ static void AnimDefensiveWall_Step5(struct Sprite *sprite) u8 battler = battlerCopy = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); u8 rank = GetBattlerSpriteBGPriorityRank(battler); int var0 = 1; - u8 toBG_2 = (rank ^ var0) != 0; + bool8 toBG2 = (rank ^ var0) != 0; if (IsBattlerSpriteVisible(battler)) - sub_80A477C(toBG_2); + ResetBattleAnimBg(toBG2); battler = battlerCopy ^ 2; if (IsBattlerSpriteVisible(battler)) - sub_80A477C(toBG_2 ^ var0); + ResetBattleAnimBg(toBG2 ^ var0); } sprite->callback = DestroyAnimSprite; @@ -709,13 +709,13 @@ static void AnimWallSparkle(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - sprite->pos1.x = 72 - gBattleAnimArgs[0]; - sprite->pos1.y = gBattleAnimArgs[1] + 80; + sprite->x = 72 - gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[1] + 80; } else { - sprite->pos1.x = gBattleAnimArgs[0] + 176; - sprite->pos1.y = gBattleAnimArgs[1] + 40; + sprite->x = gBattleAnimArgs[0] + 176; + sprite->y = gBattleAnimArgs[1] + 40; } } else @@ -737,20 +737,20 @@ static void AnimWallSparkle(struct Sprite *sprite) static void AnimBentSpoon(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { StartSpriteAnim(sprite, 1); - sprite->pos1.x -= 40; - sprite->pos1.y += 10; + sprite->x -= 40; + sprite->y += 10; sprite->data[1] = -1; } else { - sprite->pos1.x += 40; - sprite->pos1.y -= 10; + sprite->x += 40; + sprite->y -= 10; sprite->data[1] = 1; } @@ -767,11 +767,11 @@ static void AnimQuestionMark(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) x = -x; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + x; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + y; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + x; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + y; - if (sprite->pos1.y < 16) - sprite->pos1.y = 16; + if (sprite->y < 16) + sprite->y = 16; StoreSpriteCallbackInData6(sprite, AnimQuestionMark_Step1); sprite->callback = RunStoredCallbackWhenAnimEnds; @@ -848,13 +848,13 @@ static void AnimTask_Teleport_Step(u8 taskId) case 1: if (task->data[3] != 0) { - gSprites[task->data[0]].pos2.y -= 8; + gSprites[task->data[0]].y2 -= 8; task->data[3]--; } else { gSprites[task->data[0]].invisible = TRUE; - gSprites[task->data[0]].pos1.x = 272; + gSprites[task->data[0]].x = DISPLAY_WIDTH + 32; ResetSpriteRotScale(task->data[0]); DestroyAnimVisualTask(taskId); } @@ -902,20 +902,20 @@ static void AnimTask_ImprisonOrbs_Step(u8 taskId) switch (task->data[2]) { case 0: - gSprites[spriteId].pos2.x = task->data[12]; - gSprites[spriteId].pos2.y = -task->data[12]; + gSprites[spriteId].x2 = task->data[12]; + gSprites[spriteId].y2 = -task->data[12]; break; case 1: - gSprites[spriteId].pos2.x = -task->data[12]; - gSprites[spriteId].pos2.y = task->data[12]; + gSprites[spriteId].x2 = -task->data[12]; + gSprites[spriteId].y2 = task->data[12]; break; case 2: - gSprites[spriteId].pos2.x = task->data[12]; - gSprites[spriteId].pos2.y = task->data[12]; + gSprites[spriteId].x2 = task->data[12]; + gSprites[spriteId].y2 = task->data[12]; break; case 3: - gSprites[spriteId].pos2.x = -task->data[12]; - gSprites[spriteId].pos2.y = -task->data[12]; + gSprites[spriteId].x2 = -task->data[12]; + gSprites[spriteId].y2 = -task->data[12]; break; } } @@ -953,7 +953,7 @@ static void AnimTask_ImprisonOrbs_Step(u8 taskId) } } -static void sub_810FB60(struct Sprite *sprite) +static void AnimRedX_Step(struct Sprite *sprite) { if (sprite->data[1] > sprite->data[0] - 10) sprite->invisible = sprite->data[1] & 1; @@ -968,12 +968,12 @@ static void AnimRedX(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } sprite->data[0] = gBattleAnimArgs[1]; - sprite->callback = sub_810FB60; + sprite->callback = AnimRedX_Step; } void AnimTask_SkillSwap(u8 taskId) @@ -1240,11 +1240,11 @@ void AnimPsychoBoost(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); if (IsContest()) - sprite->pos1.y += 12; + sprite->y += 12; sprite->data[1] = 8; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); @@ -1273,7 +1273,7 @@ void AnimPsychoBoost(struct Sprite *sprite) } sprite->data[3] += 0x380; - sprite->pos2.y -= sprite->data[3] >> 8; + sprite->y2 -= sprite->data[3] >> 8; sprite->data[3] &= 0xFF; break; case 3: diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index b5c0f4b1cf..da2d9b6458 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -19,7 +19,7 @@ static void AnimRockScatter(struct Sprite *); static void AnimRockScatter_Step(struct Sprite *sprite); static void AnimParticleInVortex_Step(struct Sprite *sprite); static void AnimTask_LoadSandstormBackground_Step(u8 taskId); -static void sub_8111214(struct Task *task); +static void CreateRolloutDirtSprite(struct Task *task); static void AnimStealthRockStep2(struct Sprite *sprite); static void AnimStealthRockStep(struct Sprite *sprite); static void AnimStealthRock(struct Sprite *sprite); @@ -140,37 +140,37 @@ static const struct SubspriteTable sFlyingSandSubspriteTable[] = {ARRAY_COUNT(sFlyingSandSubsprites), sFlyingSandSubsprites}, }; -static const union AnimCmd sAnim_BasicRock_0[] = +static const union AnimCmd sAnim_Rock_Biggest[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_BasicRock_1[] = +static const union AnimCmd sAnim_Rock_Bigger[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_WeatherBallRockDown_0[] = +static const union AnimCmd sAnim_Rock_Big[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_WeatherBallRockDown_1[] = +static const union AnimCmd sAnim_Rock_Small[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_TwisterRock_0[] = +static const union AnimCmd sAnim_Rock_Smaller[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_TwisterRock_1[] = +static const union AnimCmd sAnim_Rock_Smallest[] = { ANIMCMD_FRAME(80, 1), ANIMCMD_END, @@ -178,16 +178,12 @@ static const union AnimCmd sAnim_TwisterRock_1[] = static const union AnimCmd *const sAnims_BasicRock[] = { - sAnim_BasicRock_0, - sAnim_BasicRock_1, - sAnim_WeatherBallRockDown_0, - sAnim_WeatherBallRockDown_1, -}; - -static const union AnimCmd *const sAnims_TwisterRock[] = -{ - sAnim_TwisterRock_0, - sAnim_TwisterRock_1, + sAnim_Rock_Biggest, + sAnim_Rock_Bigger, + sAnim_Rock_Big, + sAnim_Rock_Small, + sAnim_Rock_Smaller, + sAnim_Rock_Smallest, }; const struct SpriteTemplate gAncientPowerRockSpriteTemplate = @@ -279,7 +275,7 @@ const struct SpriteTemplate gTwisterRockSpriteTemplate = .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_TwisterRock, + .anims = &sAnims_BasicRock[4], .images = NULL, .affineAnims = gAffineAnims_BasicRock, .callback = AnimMoveTwisterParticle, @@ -398,10 +394,10 @@ static void AnimStealthRockStep2(struct Sprite *sprite) void AnimFallingRock(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) - SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); + SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y); - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += 14; + sprite->x += gBattleAnimArgs[0]; + sprite->y += 14; StartSpriteAnim(sprite, gBattleAnimArgs[1]); AnimateSprite(sprite); @@ -420,7 +416,7 @@ void AnimFallingRock(struct Sprite *sprite) void AnimFallingRock_Step(struct Sprite *sprite) { - sprite->pos1.x += sprite->data[5]; + sprite->x += sprite->data[5]; sprite->data[0] = 192; sprite->data[1] = sprite->data[5]; @@ -440,17 +436,17 @@ static void AnimRockFragment(struct Sprite *sprite) AnimateSprite(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->x -= gBattleAnimArgs[0]; else - sprite->pos1.x += gBattleAnimArgs[0]; + sprite->x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[3]; + sprite->data[1] = sprite->x; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[3] = sprite->y; + sprite->data[4] = sprite->y + gBattleAnimArgs[3]; InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = 0; @@ -479,8 +475,8 @@ void AnimParticleInVortex(struct Sprite *sprite) static void AnimParticleInVortex_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; - sprite->pos2.y = -(sprite->data[4] >> 8); - sprite->pos2.x = Sin(sprite->data[5], sprite->data[3]); + sprite->y2 = -(sprite->data[4] >> 8); + sprite->x2 = Sin(sprite->data[5], sprite->data[3]); sprite->data[5] = (sprite->data[5] + sprite->data[2]) & 0xFF; if (--sprite->data[0] == -1) @@ -508,7 +504,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Sandstorm, animBg.tilesOffset); AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_Sandstorm, 0); LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32); @@ -567,8 +563,8 @@ static void AnimTask_LoadSandstormBackground_Step(u8 taskId) } break; case 3: - sub_80A6B30(&animBg); - sub_80A6C68(animBg.bgId); + GetBattleAnimBg1Data(&animBg); + ClearBattleAnimBg(animBg.bgId); gTasks[taskId].data[12]++; break; case 4: @@ -597,17 +593,17 @@ void AnimFlyingSandCrescent(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0 && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x = 304; + sprite->x = DISPLAY_WIDTH + 64; gBattleAnimArgs[1] = -gBattleAnimArgs[1]; sprite->data[5] = 1; sprite->oam.matrixNum = ST_OAM_HFLIP; } else { - sprite->pos1.x = -64; + sprite->x = -64; } - sprite->pos1.y = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[0]; SetSubspriteTables(sprite, sFlyingSandSubspriteTable); sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; @@ -617,19 +613,19 @@ void AnimFlyingSandCrescent(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite->pos2.x += (sprite->data[3] >> 8); - sprite->pos2.y += (sprite->data[4] >> 8); + sprite->x2 += (sprite->data[3] >> 8); + sprite->y2 += (sprite->data[4] >> 8); sprite->data[3] &= 0xFF; sprite->data[4] &= 0xFF; if (sprite->data[5] == 0) { - if (sprite->pos1.x + sprite->pos2.x > 272) + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 32) { sprite->callback = DestroyAnimSprite; } } - else if (sprite->pos1.x + sprite->pos2.x < -32) + else if (sprite->x + sprite->x2 < -32) { sprite->callback = DestroyAnimSprite; } @@ -648,8 +644,8 @@ void AnimRaiseSprite(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, 0); sprite->data[0] = gBattleAnimArgs[3]; - sprite->data[2] = sprite->pos1.x; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[2]; + sprite->data[2] = sprite->x; + sprite->data[4] = sprite->y + gBattleAnimArgs[2]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -719,8 +715,8 @@ static void AnimTask_Rollout_Step(u8 taskId) case 0: task->data[6] -= task->data[4]; task->data[7] -= task->data[5]; - gSprites[task->data[15]].pos2.x = task->data[6] >> 3; - gSprites[task->data[15]].pos2.y = task->data[7] >> 3; + gSprites[task->data[15]].x2 = task->data[6] >> 3; + gSprites[task->data[15]].y2 = task->data[7] >> 3; if (++task->data[9] == 10) { @@ -747,8 +743,8 @@ static void AnimTask_Rollout_Step(u8 taskId) task->data[0]++; } - gSprites[task->data[15]].pos2.x = task->data[6] >> 3; - gSprites[task->data[15]].pos2.y = task->data[7] >> 3; + gSprites[task->data[15]].x2 = task->data[6] >> 3; + gSprites[task->data[15]].y2 = task->data[7] >> 3; break; case 3: task->data[2] += task->data[4]; @@ -756,7 +752,7 @@ static void AnimTask_Rollout_Step(u8 taskId) if (++task->data[9] >= task->data[10]) { task->data[9] = 0; - sub_8111214(task); + CreateRolloutDirtSprite(task); task->data[13] += task->data[14]; PlaySE12WithPanning(SE_M_DIG, task->data[13]); } @@ -773,7 +769,7 @@ static void AnimTask_Rollout_Step(u8 taskId) } } -static void sub_8111214(struct Task *task) +static void CreateRolloutDirtSprite(struct Task *task) { const struct SpriteTemplate *spriteTemplate; int tileOffset; @@ -828,7 +824,7 @@ static void AnimRolloutParticle(struct Sprite *sprite) if (TranslateAnimHorizontalArc(sprite)) { u8 taskId = FindTaskIdByFunc(AnimTask_Rollout_Step); - if (taskId != 0xFF) + if (taskId != TASK_NONE) gTasks[taskId].data[11]--; DestroySprite(sprite); @@ -849,7 +845,7 @@ static void AnimRockTomb(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); - sprite->pos2.x = gBattleAnimArgs[0]; + sprite->x2 = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; sprite->data[3] -= gBattleAnimArgs[2]; sprite->data[0] = 3; @@ -863,7 +859,7 @@ static void AnimRockTomb_Step(struct Sprite *sprite) sprite->invisible = FALSE; if (sprite->data[3] != 0) { - sprite->pos2.y = sprite->data[2] + sprite->data[3]; + sprite->y2 = sprite->data[2] + sprite->data[3]; sprite->data[3] += sprite->data[0]; sprite->data[0]++; if (sprite->data[3] > 0) @@ -888,10 +884,10 @@ static void AnimRockBlastRock(struct Sprite *sprite) static void AnimRockScatter(struct Sprite *sprite) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; @@ -907,8 +903,8 @@ static void AnimRockScatter_Step(struct Sprite *sprite) sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite->pos2.x += sprite->data[3] / 40; - sprite->pos2.y -= Sin(sprite->data[0], sprite->data[5]); + sprite->x2 += sprite->data[3] / 40; + sprite->y2 -= Sin(sprite->data[0], sprite->data[5]); if (sprite->data[0] > 140) DestroyAnimSprite(sprite); @@ -930,7 +926,7 @@ void AnimTask_MoveSeismicTossBg(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - sub_80A6DAC(FALSE); + UpdateAnimBg3ScreenSize(FALSE); gTasks[taskId].data[1] = 200; } @@ -939,7 +935,7 @@ void AnimTask_MoveSeismicTossBg(u8 taskId) if (gTasks[taskId].data[0] == 120) { - sub_80A6DAC(TRUE); + UpdateAnimBg3ScreenSize(TRUE); DestroyAnimVisualTask(taskId); } @@ -950,7 +946,7 @@ void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - sub_80A6DAC(FALSE); + UpdateAnimBg3ScreenSize(FALSE); gTasks[taskId].data[0]++; gTasks[taskId].data[2] = gBattle_BG3_Y; } @@ -962,7 +958,7 @@ void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId) if (gBattleAnimArgs[7] == 0xFFF) { gBattle_BG3_Y = 0; - sub_80A6DAC(TRUE); + UpdateAnimBg3ScreenSize(TRUE); DestroyAnimVisualTask(taskId); } } diff --git a/src/battle_anim_smokescreen.c b/src/battle_anim_smokescreen.c index 4120dda726..ea7f948434 100644 --- a/src/battle_anim_smokescreen.c +++ b/src/battle_anim_smokescreen.c @@ -125,7 +125,7 @@ const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow = .data = gEnemyMonShadow_Gfx, .size = 0x80, .tag = 55129 }; -static const struct OamData gUnknown_0831C6A8 = +static const struct OamData sOamData_EnemyShadow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -146,7 +146,7 @@ const struct SpriteTemplate gSpriteTemplate_EnemyShadow = { .tileTag = 55129, .paletteTag = 55039, - .oam = &gUnknown_0831C6A8, + .oam = &sOamData_EnemyShadow, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index c1aea13f19..1bcbcd0e0b 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -9,17 +9,22 @@ extern struct MusicPlayerInfo gMPlayInfo_SE1; -// this file's functions -static void sub_8158B98(u8 taskId); -static void sub_8158C04(u8 taskId); +static void SoundTask_FireBlast_Step1(u8 taskId); +static void SoundTask_FireBlast_Step2(u8 taskId); static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId); static void SoundTask_PlayDoubleCry_Step(u8 taskId); static void SoundTask_PlayCryWithEcho_Step(u8 taskId); static void SoundTask_AdjustPanningVar_Step(u8 taskId); static void SoundTask_SeVolumeChange(u8 taskId); -// task start -void sub_8158B30(u8 taskId) +// Loops the specified sound effect and pans from the +// attacker to the target. The second specified sound effect +// is played at the very end. This task is effectively +// hardcoded to the move FIRE_BLAST due to the baked-in +// durations. +// arg 0: looped sound effect +// arg 1: ending sound effect +void SoundTask_FireBlast(u8 taskId) { s8 pan1, pan2, panIncrement; @@ -35,10 +40,10 @@ void sub_8158B30(u8 taskId) gTasks[taskId].data[4] = panIncrement; gTasks[taskId].data[10] = 10; - gTasks[taskId].func = sub_8158B98; + gTasks[taskId].func = SoundTask_FireBlast_Step1; } -static void sub_8158B98(u8 taskId) +static void SoundTask_FireBlast_Step1(u8 taskId) { s16 pan = gTasks[taskId].data[2]; s8 panIncrement = gTasks[taskId].data[4]; @@ -46,7 +51,7 @@ static void sub_8158B98(u8 taskId) { gTasks[taskId].data[10] = 5; gTasks[taskId].data[11] = 0; - gTasks[taskId].func = sub_8158C04; + gTasks[taskId].func = SoundTask_FireBlast_Step2; } else { @@ -60,7 +65,7 @@ static void sub_8158B98(u8 taskId) } } -static void sub_8158C04(u8 taskId) +static void SoundTask_FireBlast_Step2(u8 taskId) { if (++gTasks[taskId].data[10] == 6) { @@ -73,9 +78,7 @@ static void sub_8158C04(u8 taskId) DestroyAnimSoundTask(taskId); } } -// task end -// task start void SoundTask_LoopSEAdjustPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; @@ -127,9 +130,7 @@ static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId) gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan); } } -// task end -// task start void SoundTask_PlayCryHighPitch(u8 taskId) { u16 species = 0; @@ -138,8 +139,10 @@ void SoundTask_PlayCryHighPitch(u8 taskId) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) species = gContestResources->moveAnim->species; + #ifndef UBFIX else - DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task. + DestroyAnimVisualTask(taskId); // UB: task gets destroyed twice. + #endif } else { @@ -173,9 +176,7 @@ void SoundTask_PlayCryHighPitch(u8 taskId) DestroyAnimVisualTask(taskId); } -// task end -// task start void SoundTask_PlayDoubleCry(u8 taskId) { u16 species = 0; @@ -184,8 +185,10 @@ void SoundTask_PlayDoubleCry(u8 taskId) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) species = gContestResources->moveAnim->species; + #ifndef UBFIX else - DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task. + DestroyAnimVisualTask(taskId); // UB: task gets destroyed twice. + #endif } else { @@ -262,7 +265,6 @@ static void SoundTask_PlayDoubleCry_Step(u8 taskId) } } } -// task end void SoundTask_WaitForCry(u8 taskId) { @@ -277,7 +279,6 @@ void SoundTask_WaitForCry(u8 taskId) } } -// task start void SoundTask_PlayCryWithEcho(u8 taskId) { u16 species; @@ -333,7 +334,6 @@ static void SoundTask_PlayCryWithEcho_Step(u8 taskId) break; } } -// task end void SoundTask_PlaySE1WithPanning(u8 taskId) { @@ -451,4 +451,3 @@ static void SoundTask_SeVolumeChange(u8 taskId) m4aMPlayVolumeControl(&gMPlayInfo_SE1, 0xFFFF, gTasks[taskId].tCurrentVolume); } } - diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 56a8afa531..4893abd585 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -17,18 +17,16 @@ extern const u8 *const gBattleAnims_StatusConditions[]; extern const struct OamData gOamData_AffineOff_ObjNormal_8x8; extern const struct OamData gOamData_AffineOff_ObjBlend_64x64; -// This file's functions. -static void sub_80A9DB4(u8 taskId); +static void Task_UpdateFlashingCircleImpacts(u8 taskId); static void AnimTask_FrozenIceCube_Step1(u8 taskId); static void AnimTask_FrozenIceCube_Step2(u8 taskId); static void AnimTask_FrozenIceCube_Step3(u8 taskId); static void AnimTask_FrozenIceCube_Step4(u8 taskId); static void Task_DoStatusAnimation(u8 taskId); -static void sub_80A9E44(struct Sprite *sprite); -static void sub_80A9E78(struct Sprite *sprite); +static void AnimFlashingCircleImpact(struct Sprite *sprite); +static void AnimFlashingCircleImpact_Step(struct Sprite *sprite); -// const rom data -static const union AnimCmd sSpriteAnim_853EDE4[] = +static const union AnimCmd sAnim_FlickeringOrb[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(4, 3), @@ -37,33 +35,33 @@ static const union AnimCmd sSpriteAnim_853EDE4[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_853EDF8[] = +static const union AnimCmd *const sAnims_FlickeringOrb[] = { - sSpriteAnim_853EDE4 + sAnim_FlickeringOrb }; // Unused -const struct SpriteTemplate gUnknown_0853EDFC = +static const struct SpriteTemplate sFlickeringOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_853EDF8, + .anims = sAnims_FlickeringOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8AEC, + .callback = AnimTranslateLinearAndFlicker, }; // Unused -const struct SpriteTemplate gUnknown_0853EE14 = +static const struct SpriteTemplate sFlickeringOrbFlippedSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_853EDF8, + .anims = sAnims_FlickeringOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8A6C, + .callback = AnimTranslateLinearAndFlicker_Flipped, }; static const union AnimCmd sAnim_WeatherBallNormal[] = @@ -99,7 +97,7 @@ const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = .callback = AnimWeatherBallDown, }; -static const union AnimCmd sSpriteAnim_853EE68[] = +static const union AnimCmd sAnim_SpinningSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -109,9 +107,9 @@ static const union AnimCmd sSpriteAnim_853EE68[] = ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_853EE80[] = +static const union AnimCmd *const sAnims_SpinningSparkle[] = { - sSpriteAnim_853EE68 + sAnim_SpinningSparkle }; const struct SpriteTemplate gSpinningSparkleSpriteTemplate = @@ -119,14 +117,14 @@ const struct SpriteTemplate gSpinningSparkleSpriteTemplate = .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_853EE80, + .anims = sAnims_SpinningSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpinningSparkle, }; // Unused -const struct SpriteTemplate gUnknown_0853EE9C = +static const struct SpriteTemplate sFlickeringFootSpriteTemplate = { .tileTag = ANIM_TAG_MONSTER_FOOT, .paletteTag = ANIM_TAG_MONSTER_FOOT, @@ -134,78 +132,79 @@ const struct SpriteTemplate gUnknown_0853EE9C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8AEC, + .callback = AnimTranslateLinearAndFlicker, }; -static const union AnimCmd sSpriteAnim_853EEB4[] = +static const union AnimCmd sAnim_FlickeringImpact_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_853EEBC[] = +static const union AnimCmd sAnim_FlickeringImpact_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_853EEC4[] = +static const union AnimCmd sAnim_FlickeringImpact_2[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_853EECC[] = +static const union AnimCmd *const sAnims_FlickeringImpact[] = { - sSpriteAnim_853EEB4, - sSpriteAnim_853EEBC, - sSpriteAnim_853EEC4 + sAnim_FlickeringImpact_0, + sAnim_FlickeringImpact_1, + sAnim_FlickeringImpact_2, }; // Unused -const struct SpriteTemplate gUnknown_0853EED8 = +static const struct SpriteTemplate sFlickeringImpactSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_853EECC, + .anims = sAnims_FlickeringImpact, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8AEC, + .callback = AnimTranslateLinearAndFlicker, }; -static const union AnimCmd sSpriteAnim_853EEF0[] = +static const union AnimCmd sAnim_FlickeringShrinkOrb[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_853EEF8[] = +static const union AnimCmd *const sAnims_FlickeringShrinkOrb[] = { - sSpriteAnim_853EEF0 + sAnim_FlickeringShrinkOrb }; -static const union AffineAnimCmd sSpriteAffineAnim_853EEFC[] = +static const union AffineAnimCmd sAffineAnim_FlickeringShrinkOrb[] = { AFFINEANIMCMD_FRAME(96, 96, 0, 0), AFFINEANIMCMD_FRAME(2, 2, 0, 1), AFFINEANIMCMD_JUMP(1) }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_853EEF8[] = +static const union AffineAnimCmd *const sAffineAnims_FlickeringShrinkOrb[] = { - sSpriteAffineAnim_853EEFC + sAffineAnim_FlickeringShrinkOrb }; -const struct SpriteTemplate gUnknown_0853EF18 = +// Unused +static const struct SpriteTemplate sFlickeringShrinkOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sSpriteAnimTable_853EEF8, + .anims = sAnims_FlickeringShrinkOrb, .images = NULL, - .affineAnims = sSpriteAffineAnimTable_853EEF8, - .callback = sub_80A8A6C, + .affineAnims = sAffineAnims_FlickeringShrinkOrb, + .callback = AnimTranslateLinearAndFlicker_Flipped, }; static const struct Subsprite sFrozenIceCubeSubsprites[] = @@ -260,7 +259,7 @@ static const struct SpriteTemplate gFrozenIceCubeSpriteTemplate = .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate gUnknown_0853EF60 = +static const struct SpriteTemplate sFlashingCircleImpactSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_IMPACT, .paletteTag = ANIM_TAG_CIRCLE_IMPACT, @@ -268,31 +267,31 @@ static const struct SpriteTemplate gUnknown_0853EF60 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A9E44, + .callback = AnimFlashingCircleImpact, }; // Unused -u8 sub_80A9C70(u8 battlerId, bool8 b) +static u8 Task_FlashingCircleImpacts(u8 battlerId, bool8 red) { u8 battlerSpriteId = gBattlerSpriteIds[battlerId]; - u8 taskId = CreateTask(sub_80A9DB4, 10); - u8 spriteId2; + u8 taskId = CreateTask(Task_UpdateFlashingCircleImpacts, 10); + u8 spriteId; u8 i; LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]); LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]); gTasks[taskId].data[0] = battlerId; - if (b) + if (red) { gTasks[taskId].data[1] = RGB_RED; for (i = 0; i < 10; i++) { - spriteId2 = CreateSprite(&gUnknown_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y + 32, 0); - gSprites[spriteId2].data[0] = i * 51; - gSprites[spriteId2].data[1] = -256; - gSprites[spriteId2].invisible = TRUE; + spriteId = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y + 32, 0); + gSprites[spriteId].data[0] = i * 51; + gSprites[spriteId].data[1] = -256; + gSprites[spriteId].invisible = TRUE; if (i > 4) - gSprites[spriteId2].data[6] = 21; + gSprites[spriteId].data[6] = 21; } } else @@ -300,19 +299,19 @@ u8 sub_80A9C70(u8 battlerId, bool8 b) gTasks[taskId].data[1] = RGB_BLUE; for (i = 0; i < 10; i++) { - spriteId2 = CreateSprite(&gUnknown_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y - 32, 0); - gSprites[spriteId2].data[0] = i * 51; - gSprites[spriteId2].data[1] = 256; - gSprites[spriteId2].invisible = TRUE; + spriteId = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y - 32, 0); + gSprites[spriteId].data[0] = i * 51; + gSprites[spriteId].data[1] = 256; + gSprites[spriteId].invisible = TRUE; if (i > 4) - gSprites[spriteId2].data[6] = 21; + gSprites[spriteId].data[6] = 21; } } - gSprites[spriteId2].data[7] = 1; + gSprites[spriteId].data[7] = 1; return taskId; } -static void sub_80A9DB4(u8 taskId) +static void Task_UpdateFlashingCircleImpacts(u8 taskId) { if (gTasks[taskId].data[2] == 2) { @@ -345,13 +344,13 @@ static void sub_80A9DB4(u8 taskId) } } -static void sub_80A9E44(struct Sprite *sprite) +static void AnimFlashingCircleImpact(struct Sprite *sprite) { if (sprite->data[6] == 0) { sprite->invisible = FALSE; - sprite->callback = sub_80A9E78; - sub_80A9E78(sprite); + sprite->callback = AnimFlashingCircleImpact_Step; + AnimFlashingCircleImpact_Step(sprite); } else { @@ -359,17 +358,17 @@ static void sub_80A9E44(struct Sprite *sprite) } } -static void sub_80A9E78(struct Sprite *sprite) +static void AnimFlashingCircleImpact_Step(struct Sprite *sprite) { - sprite->pos2.x = Cos(sprite->data[0], 32); - sprite->pos2.y = Sin(sprite->data[0], 8); + sprite->x2 = Cos(sprite->data[0], 32); + sprite->y2 = Sin(sprite->data[0], 8); if (sprite->data[0] < 128) sprite->subpriority = 29; else sprite->subpriority = 31; sprite->data[0] = (sprite->data[0] + 8) & 0xFF; sprite->data[5] += sprite->data[1]; - sprite->pos2.y += sprite->data[5] >> 8; + sprite->y2 += sprite->data[5] >> 8; sprite->data[2]++; if (sprite->data[2] == 52) { @@ -538,8 +537,8 @@ void AnimTask_StatsChange(u8 taskId) gBattleAnimArgs[2] = 0; gBattleAnimArgs[3] = 0; gBattleAnimArgs[4] = sharply; - gTasks[taskId].func = sub_8116EB4; - sub_8116EB4(taskId); + gTasks[taskId].func = InitStatsChangeAnimation; + InitStatsChangeAnimation(taskId); } #undef CASE diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c index c8c2b9e6a4..207d1255d6 100755 --- a/src/battle_anim_throw.c +++ b/src/battle_anim_throw.c @@ -16,6 +16,7 @@ #include "task.h" #include "trig.h" #include "util.h" +#include "data.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/songs.h" @@ -48,7 +49,7 @@ enum { SHINY_STAR_DIAGONAL, }; -static void sub_8170660(u8); +static void AnimTask_UnusedLevelUpHealthBox_Step(u8); static void AnimTask_FlashHealthboxOnLevelUp_Step(u8); static void AnimTask_ThrowBall_Step(u8); static void SpriteCB_Ball_Throw(struct Sprite *); @@ -430,9 +431,12 @@ static const struct SpriteTemplate sSafariRockSpriteTemplate = extern const struct SpriteTemplate gWishStarSpriteTemplate; extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; -void unref_sub_8170478(u8 taskId) +// This is an unused function, but it seems likely that it was +// intended to be an additional effect during the level-up animation. +// It is an upward blue gradient effect on the mon's healthbox. +void AnimTask_UnusedLevelUpHealthBox(u8 taskId) { - struct BattleAnimBgData unknownStruct; + struct BattleAnimBgData animBgData; u8 healthBoxSpriteId; u8 battler; u8 spriteId1, spriteId2, spriteId3, spriteId4; @@ -465,20 +469,20 @@ void unref_sub_8170478(u8 taskId) gSprites[spriteId3].callback = SpriteCallbackDummy; gSprites[spriteId4].callback = SpriteCallbackDummy; - sub_80A6B30(&unknownStruct); - AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_08C2EA9C); - AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset); - LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32); + GetBattleAnimBg1Data(&animBgData); + AnimLoadCompressedBgTilemap(animBgData.bgId, UnusedLevelupAnimationTilemap); + AnimLoadCompressedBgGfx(animBgData.bgId, UnusedLevelupAnimationGfx, animBgData.tilesOffset); + LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32); - gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32; - gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32; + gBattle_BG1_X = -gSprites[spriteId3].x + 32; + gBattle_BG1_Y = -gSprites[spriteId3].y - 32; gTasks[taskId].data[1] = 640; gTasks[taskId].data[0] = spriteId3; gTasks[taskId].data[2] = spriteId4; - gTasks[taskId].func = sub_8170660; + gTasks[taskId].func = AnimTask_UnusedLevelUpHealthBox_Step; } -static void sub_8170660(u8 taskId) +static void AnimTask_UnusedLevelUpHealthBox_Step(u8 taskId) { u8 spriteId1, spriteId2; u8 battler; @@ -512,7 +516,7 @@ static void sub_8170660(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); if (gTasks[taskId].data[12] == 0) { - sub_80A477C(0); + ResetBattleAnimBg(0); gBattle_WIN0H = 0; gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); @@ -687,7 +691,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId) priority = gSprites[spriteId].oam.priority; subpriority = gSprites[spriteId].subpriority; gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId); - selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0); gTasks[taskId].data[11] = LaunchBallFadeMonTask(FALSE, gBattleAnimAttacker, selectedPalettes, ballId); gTasks[taskId].data[0]++; break; @@ -854,9 +858,9 @@ static void SpriteCB_Ball_Throw(struct Sprite *sprite) u16 targetX = sprite->sTargetXArg; u16 targetY = sprite->sTargetYArg; - sprite->sOffsetX = sprite->pos1.x; + sprite->sOffsetX = sprite->x; sprite->sTargetX = targetX; - sprite->sOffsetY = sprite->pos1.y; + sprite->sOffsetY = sprite->y; sprite->sTargetY = targetY; sprite->sAmplitude = -40; InitAnimArcTranslation(sprite); @@ -888,10 +892,10 @@ static void SpriteCB_Ball_Arc(struct Sprite *sprite) else { StartSpriteAnim(sprite, 1); - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; for (i = 0; i < 8; i++) sprite->data[i] = 0; @@ -903,7 +907,7 @@ static void SpriteCB_Ball_Arc(struct Sprite *sprite) switch (ballId) { case 0 ... POKEBALL_COUNT - 1: - AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); LaunchBallFadeMonTask(FALSE, gBattleAnimTarget, 14, ballId); break; } @@ -945,7 +949,7 @@ static void SpriteCB_Ball_MonShrink_Step(struct Sprite *sprite) PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); gTasks[taskId].data[10] = 256; gMonShrinkDuration = 28; - gMonShrinkDistance = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y); + gMonShrinkDistance = (gSprites[spriteId].y + gSprites[spriteId].y2) - (sprite->y + sprite->y2); gMonShrinkDelta = (u32)(gMonShrinkDistance * 256) / gMonShrinkDuration; gTasks[taskId].data[2] = gMonShrinkDelta; gTasks[taskId].tState++; // MON_SHRINK_STEP @@ -954,7 +958,7 @@ static void SpriteCB_Ball_MonShrink_Step(struct Sprite *sprite) gTasks[taskId].data[10] += 32; SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0); gTasks[taskId].data[3] += gTasks[taskId].data[2]; - gSprites[spriteId].pos2.y = -gTasks[taskId].data[3] >> 8; + gSprites[spriteId].y2 = -gTasks[taskId].data[3] >> 8; if (gTasks[taskId].data[10] >= 1152) gTasks[taskId].tState++; // MON_SHRINK_INVISIBLE break; @@ -991,8 +995,8 @@ static void SpriteCB_Ball_Bounce(struct Sprite *sprite) sprite->sState = 0; sprite->sAmplitude = 40; sprite->sPhase = 0; - sprite->pos1.y += Cos(0, 40); - sprite->pos2.y = -Cos(0, sprite->sAmplitude); + sprite->y += Cos(0, 40); + sprite->y2 = -Cos(0, sprite->sAmplitude); if (IsCriticalCapture()) sprite->callback = CB_CriticalCaptureThrownBallMovement; else @@ -1029,7 +1033,7 @@ static void SpriteCB_Ball_Bounce_Step(struct Sprite *sprite) switch (DIRECTION(sprite->sState)) { case BALL_FALLING: - sprite->pos2.y = -Cos(sprite->sPhase, sprite->sAmplitude); + sprite->y2 = -Cos(sprite->sPhase, sprite->sAmplitude); sprite->sPhase += PHASE_DELTA(sprite->sState) + 4; // Once the ball touches the ground if (sprite->sPhase >= 64) @@ -1059,7 +1063,7 @@ static void SpriteCB_Ball_Bounce_Step(struct Sprite *sprite) } break; case BALL_RISING: - sprite->pos2.y = -Cos(sprite->sPhase, sprite->sAmplitude); + sprite->y2 = -Cos(sprite->sPhase, sprite->sAmplitude); sprite->sPhase -= PHASE_DELTA(sprite->sState) + 4; // Once ball reaches max height if (sprite->sPhase <= 0) @@ -1074,8 +1078,8 @@ static void SpriteCB_Ball_Bounce_Step(struct Sprite *sprite) if (lastBounce) { sprite->sState = 0; - sprite->pos1.y += Cos(64, 40); - sprite->pos2.y = 0; + sprite->y += Cos(64, 40); + sprite->y2 = 0; if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_NO_SHAKES) { sprite->sTimer = 0; @@ -1140,7 +1144,7 @@ static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite) // Rolling effect: every frame in the rotation, the sprite shifts 176/256 of a pixel. if (gBattleSpritesDataPtr->animationData->ballSubpx > 255) { - sprite->pos2.x += sprite->sDirection; + sprite->x2 += sprite->sDirection; gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else @@ -1174,7 +1178,7 @@ static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite) case BALL_ROLL_2: if (gBattleSpritesDataPtr->animationData->ballSubpx > 255) { - sprite->pos2.x += sprite->sDirection; + sprite->x2 += sprite->sDirection; gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else @@ -1209,7 +1213,7 @@ static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite) case BALL_ROLL_3: if (gBattleSpritesDataPtr->animationData->ballSubpx > 0xFF) { - sprite->pos2.x += sprite->sDirection; + sprite->x2 += sprite->sDirection; gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else @@ -1332,7 +1336,7 @@ static void SpriteCB_Ball_Capture_Step(struct Sprite *sprite) else if (sprite->sTimer == 95) { gDoingBattleAnim = FALSE; - UpdateOamPriorityInAllHealthboxes(1); + UpdateOamPriorityInAllHealthboxes(1, FALSE); m4aMPlayAllStop(); PlaySE(MUS_RG_CAUGHT_INTRO); } @@ -1433,12 +1437,12 @@ static void MakeCaptureStars(struct Sprite *sprite) LoadBallParticleGfx(BALL_MASTER); for (i = 0; i < ARRAY_COUNT(sCaptureStars); i++) { - u8 spriteId = CreateSprite(&sBallParticleSpriteTemplates[4], sprite->pos1.x, sprite->pos1.y, subpriority); + u8 spriteId = CreateSprite(&sBallParticleSpriteTemplates[BALL_MASTER], sprite->x, sprite->y, subpriority); if (spriteId != MAX_SPRITES) { gSprites[spriteId].sDuration = 24; - gSprites[spriteId].sTargetX = sprite->pos1.x + sCaptureStars[i].xOffset; - gSprites[spriteId].sTargetY = sprite->pos1.y + sCaptureStars[i].yOffset; + gSprites[spriteId].sTargetX = sprite->x + sCaptureStars[i].xOffset; + gSprites[spriteId].sTargetY = sprite->y + sCaptureStars[i].yOffset; gSprites[spriteId].sAmplitude = sCaptureStars[i].amplitude; InitAnimArcTranslation(&gSprites[spriteId]); gSprites[spriteId].callback = SpriteCB_CaptureStar_Flicker; @@ -1478,14 +1482,14 @@ static void SpriteCB_Ball_Release_Step(struct Sprite *sprite) switch (ballId) { case 0 ... POKEBALL_COUNT - 1: - AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); LaunchBallFadeMonTask(TRUE, gBattleAnimTarget, 14, ballId); break; } // Animate Pokémon emerging from Poké Ball gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = FALSE; - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], BATTLER_AFFINE_EMERGE); AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]); gSprites[gBattlerSpriteIds[gBattleAnimTarget]].sOffsetY = 4096; } @@ -1499,23 +1503,23 @@ static void SpriteCB_Ball_Release_Wait(struct Sprite *sprite) if (gSprites[gBattlerSpriteIds[gBattleAnimTarget]].affineAnimEnded) { - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 0); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], BATTLER_AFFINE_NORMAL); released = TRUE; } else { gSprites[gBattlerSpriteIds[gBattleAnimTarget]].sOffsetY -= 288; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].sOffsetY >> 8; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].y2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].sOffsetY >> 8; } if (sprite->animEnded && released) { - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = 0; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].y2 = 0; gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->wildMonInvisible; sprite->sFrame = 0; sprite->callback = DestroySpriteAfterOneFrame; gDoingBattleAnim = 0; - UpdateOamPriorityInAllHealthboxes(1); + UpdateOamPriorityInAllHealthboxes(1, FALSE); } } @@ -1526,10 +1530,10 @@ static void SpriteCB_Ball_Block(struct Sprite *sprite) { s32 i; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; for (i = 0; i < 6; i++) sprite->data[i] = 0; @@ -1546,18 +1550,18 @@ static void SpriteCB_Ball_Block_Step(struct Sprite *sprite) { s16 dy = sprite->sDy + 0x800; s16 dx = sprite->sDx + 0x680; - sprite->pos2.x -= dx >> 8; - sprite->pos2.y += dy >> 8; + sprite->x2 -= dx >> 8; + sprite->y2 += dy >> 8; sprite->sDy = (sprite->sDy + 0x800) & 0xFF; sprite->sDx = (sprite->sDx + 0x680) & 0xFF; - if (sprite->pos1.y + sprite->pos2.y > 160 - || sprite->pos1.x + sprite->pos2.x < -8) + if (sprite->y + sprite->y2 > DISPLAY_HEIGHT + || sprite->x + sprite->x2 < -8) { sprite->sFrame = 0; sprite->callback = DestroySpriteAfterOneFrame; gDoingBattleAnim = 0; - UpdateOamPriorityInAllHealthboxes(1); + UpdateOamPriorityInAllHealthboxes(1, FALSE); } } @@ -1568,8 +1572,6 @@ static void SpriteCB_Ball_Block_Step(struct Sprite *sprite) static void LoadBallParticleGfx(u8 ballId) { - u8 taskId; - if (GetSpriteTileStartByTag(sBallParticleSpriteSheets[ballId].tag) == 0xFFFF) { LoadCompressedSpriteSheetUsingHeap(&sBallParticleSpriteSheets[ballId]); @@ -1653,8 +1655,8 @@ static void PokeBallOpenParticleAnimation_Step1(struct Sprite *sprite) static void PokeBallOpenParticleAnimation_Step2(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]); + sprite->x2 = Sin(sprite->data[0], sprite->data[1]); + sprite->y2 = Cos(sprite->data[0], sprite->data[1]); sprite->data[1] += 2; if (sprite->data[1] == 50) DestroyBallOpenAnimationParticle(sprite); @@ -1846,8 +1848,8 @@ static void GreatBallOpenParticleAnimation(u8 taskId) static void FanOutBallOpenParticles_Step1(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[2]); + sprite->x2 = Sin(sprite->data[0], sprite->data[1]); + sprite->y2 = Cos(sprite->data[0], sprite->data[2]); sprite->data[0] = (sprite->data[0] + sprite->data[4]) & 0xFF; sprite->data[1] += sprite->data[5]; sprite->data[2] += sprite->data[6]; @@ -1888,8 +1890,8 @@ static void RepeatBallOpenParticleAnimation(u8 taskId) static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], Sin(sprite->data[0], sprite->data[2])); + sprite->x2 = Sin(sprite->data[0], sprite->data[1]); + sprite->y2 = Cos(sprite->data[0], Sin(sprite->data[0], sprite->data[2])); sprite->data[0] = (sprite->data[0] + 6) & 0xFF; sprite->data[1]++; sprite->data[2]++; @@ -1976,8 +1978,8 @@ static void PremierBallOpenParticleAnimation(u8 taskId) static void PremierBallOpenParticleAnimation_Step1(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], Sin(sprite->data[0] & 0x3F, sprite->data[2])); + sprite->x2 = Sin(sprite->data[0], sprite->data[1]); + sprite->y2 = Cos(sprite->data[0], Sin(sprite->data[0] & 0x3F, sprite->data[2])); sprite->data[0] = (sprite->data[0] + 10) & 0xFF; sprite->data[1]++; sprite->data[2]++; @@ -2126,12 +2128,12 @@ void AnimTask_SwapMonSpriteToFromSubstitute(u8 taskId) gTasks[taskId].data[11] = gBattleAnimArgs[0]; gTasks[taskId].data[0] += 0x500; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - gSprites[spriteId].pos2.x += gTasks[taskId].data[0] >> 8; + gSprites[spriteId].x2 += gTasks[taskId].data[0] >> 8; else - gSprites[spriteId].pos2.x -= gTasks[taskId].data[0] >> 8; + gSprites[spriteId].x2 -= gTasks[taskId].data[0] >> 8; gTasks[taskId].data[0] &= 0xFF; - x = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x + 32; + x = gSprites[spriteId].x + gSprites[spriteId].x2 + 32; if (x > 304) gTasks[taskId].data[10]++; break; @@ -2142,24 +2144,24 @@ void AnimTask_SwapMonSpriteToFromSubstitute(u8 taskId) case 2: gTasks[taskId].data[0] += 0x500; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - gSprites[spriteId].pos2.x -= gTasks[taskId].data[0] >> 8; + gSprites[spriteId].x2 -= gTasks[taskId].data[0] >> 8; else - gSprites[spriteId].pos2.x += gTasks[taskId].data[0] >> 8; + gSprites[spriteId].x2 += gTasks[taskId].data[0] >> 8; gTasks[taskId].data[0] &= 0xFF; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - if (gSprites[spriteId].pos2.x <= 0) + if (gSprites[spriteId].x2 <= 0) { - gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].x2 = 0; done = TRUE; } } else { - if (gSprites[spriteId].pos2.x >= 0) + if (gSprites[spriteId].x2 >= 0) { - gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].x2 = 0; done = TRUE; } } @@ -2198,7 +2200,7 @@ void AnimTask_SubstituteFadeToInvisible(u8 taskId) break; case 2: spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, 1); + RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, MON_PIC_SIZE, 1); ClearBehindSubstituteBit(gBattleAnimAttacker); DestroyAnimVisualTask(taskId); break; @@ -2317,8 +2319,8 @@ static void Task_ShinyStars(u8 taskId) else { gSprites[spriteId].callback = SpriteCB_ShinyStars_Diagonal; - gSprites[spriteId].pos2.x = -32; - gSprites[spriteId].pos2.y = 32; + gSprites[spriteId].x2 = -32; + gSprites[spriteId].y2 = 32; gSprites[spriteId].invisible = TRUE; if (gTasks[taskId].tStarIdx == 0) { @@ -2358,8 +2360,8 @@ static void Task_ShinyStars_Wait(u8 taskId) static void SpriteCB_ShinyStars_Encircle(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->sPhase, 24); - sprite->pos2.y = Cos(sprite->sPhase, 24); + sprite->x2 = Sin(sprite->sPhase, 24); + sprite->y2 = Cos(sprite->sPhase, 24); sprite->sPhase += 12; if (sprite->sPhase > 255) { @@ -2377,9 +2379,9 @@ static void SpriteCB_ShinyStars_Diagonal(struct Sprite *sprite) else { sprite->invisible = FALSE; - sprite->pos2.x += 5; - sprite->pos2.y -= 5; - if (sprite->pos2.x > 32) + sprite->x2 += 5; + sprite->y2 -= 5; + if (sprite->x2 > 32) { gTasks[sprite->sTaskId].tNumStars--; FreeSpriteOamMatrix(sprite); @@ -2527,15 +2529,15 @@ static void CB_CriticalCaptureThrownBallMovement(struct Sprite *sprite) { case 0: if (bounceCount < 3) - sprite->pos2.x++; + sprite->x2++; if (++sprite->data[5] >= 3) sprite->data[3] += 257; break; case 1: - if (bounceCount < 3 || sprite->pos2.x != 0) - sprite->pos2.x--; + if (bounceCount < 3 || sprite->x2 != 0) + sprite->x2--; if (--sprite->data[5] <= 0) { diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 411e60767e..6cefba92a6 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -29,26 +29,26 @@ static void AnimTask_HardwarePaletteFade_Step(u8); static void AnimTask_TraceMonBlended_Step(u8); static void AnimMonTrace(struct Sprite*); static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8); -static void sub_8116F04(u8); -static void sub_81170EC(u8); -static void sub_81172EC(u8); +static void StatsChangeAnimation_Step1(u8); +static void StatsChangeAnimation_Step2(u8); +static void StatsChangeAnimation_Step3(u8); static void AnimTask_Flash_Step(u8); -static void sub_81175C4(u32, u16); +static void SetPalettesToColor(u32, u16); static void AnimTask_UpdateSlidingBg(u8); -static void sub_8117A60(u8); +static void UpdateMonScrollingBgMask(u8); static void AnimTask_WaitAndRestoreVisibility(u8); -const u16 gUnknown_08597418 = RGB(31, 31, 31); +static const u16 sCurseLinesPalette[] = { RGB_WHITE }; -// These belong in battle_intro.c, but there putting them there causes 2 bytes of alignment padding +// These belong in battle_intro.c, but putting them there causes 2 bytes of alignment padding // between the two .rodata segments. Perhaps battle_intro.c actually belongs in this file, too. -const u8 gUnknown_0859741A[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT}; -const u8 gUnknown_0859741E[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT}; +const u8 gBattleAnimBgCntSet[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT}; +const u8 gBattleAnimBgCntGet[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT}; void AnimTask_BlendBattleAnimPal(u8 taskId) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); - selectedPalettes |= sub_80A76C4((gBattleAnimArgs[0] >> 7) & 1, + u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]); + selectedPalettes |= GetBattleMonSpritePalettesMask((gBattleAnimArgs[0] >> 7) & 1, (gBattleAnimArgs[0] >> 8) & 1, (gBattleAnimArgs[0] >> 9) & 1, (gBattleAnimArgs[0] >> 10) & 1); @@ -62,7 +62,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId) u8 animBattlers[2]; animBattlers[1] = 0xFF; - selectedPalettes = UnpackSelectedBattleAnimPalettes(1); + selectedPalettes = UnpackSelectedBattleBgPalettes(1); switch (gBattleAnimArgs[0]) { case 2: @@ -97,7 +97,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId) for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++) { if (battler != animBattlers[0] && battler != animBattlers[1] && IsBattlerSpriteVisible(battler)) - selectedPalettes |= 0x10000 << sub_80A77AC(battler); + selectedPalettes |= 0x10000 << AnimDummyReturnArg(battler); } StartBlendAnimSpriteColor(taskId, selectedPalettes); @@ -105,7 +105,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId) void AnimTask_SetCamouflageBlend(u8 taskId) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]); switch (gBattleTerrain) { case BATTLE_TERRAIN_GRASS: @@ -278,7 +278,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) int spriteId, newSpriteId; u16 var0; u16 bg1Cnt; - struct BattleAnimBgData unknownStruct; + struct BattleAnimBgData animBgData; var0 = 0; gBattle_WIN0H = 0; @@ -329,14 +329,14 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) } spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species); - sub_80A6B30(&unknownStruct); - AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gUnknown_08C20684, 0); - AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C20668, unknownStruct.tilesOffset); - LoadPalette(&gUnknown_08597418, unknownStruct.paletteId * 16 + 1, 2); + newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species); + GetBattleAnimBg1Data(&animBgData); + AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleAnimMaskTilemap_Curse, 0); + AnimLoadCompressedBgGfx(animBgData.bgId, gBattleAnimMaskImage_Curse, animBgData.tilesOffset); + LoadPalette(sCurseLinesPalette, animBgData.paletteId * 16 + 1, 2); - gBattle_BG1_X = -gSprites[spriteId].pos1.x + 32; - gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32; + gBattle_BG1_X = -gSprites[spriteId].x + 32; + gBattle_BG1_Y = -gSprites[spriteId].y + 32; gTasks[taskId].data[0] = newSpriteId; gTasks[taskId].data[6] = var0; gTasks[taskId].func = AnimTask_DrawFallingWhiteLinesOnAttacker_Step; @@ -344,7 +344,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId) { - struct BattleAnimBgData unknownStruct; + struct BattleAnimBgData animBgData; struct Sprite *sprite; u16 bg1Cnt; @@ -356,7 +356,7 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId) gBattle_BG1_Y += 64; if (++gTasks[taskId].data[11] == 4) { - sub_80A477C(0); + ResetBattleAnimBg(0); gBattle_WIN0H = 0; gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR @@ -377,8 +377,8 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId) sprite = &gSprites[gTasks[taskId].data[0]]; DestroySprite(sprite); - sub_80A6B30(&unknownStruct); - sub_80A6C68(unknownStruct.bgId); + GetBattleAnimBg1Data(&animBgData); + ClearBattleAnimBg(animBgData.bgId); if (gTasks[taskId].data[6] == 1) gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++; @@ -388,7 +388,7 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId) } } -void sub_8116EB4(u8 taskId) +void InitStatsChangeAnimation(u8 taskId) { u8 i; @@ -396,10 +396,10 @@ void sub_8116EB4(u8 taskId) for (i = 0; i < 8; i++) sAnimStatsChangeData->data[i] = gBattleAnimArgs[i]; - gTasks[taskId].func = sub_8116F04; + gTasks[taskId].func = StatsChangeAnimation_Step1; } -static void sub_8116F04(u8 taskId) +static void StatsChangeAnimation_Step1(u8 taskId) { if (sAnimStatsChangeData->data[2] == 0) sAnimStatsChangeData->battler1 = gBattleAnimAttacker; @@ -450,56 +450,56 @@ static void sub_8116F04(u8 taskId) sAnimStatsChangeData->species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[sAnimStatsChangeData->battler1]], MON_DATA_SPECIES); } - gTasks[taskId].func = sub_81170EC; + gTasks[taskId].func = StatsChangeAnimation_Step2; } -static void sub_81170EC(u8 taskId) +static void StatsChangeAnimation_Step2(u8 taskId) { - struct BattleAnimBgData unknownStruct; + struct BattleAnimBgData animBgData; u8 spriteId, spriteId2; u8 battlerSpriteId; spriteId2 = 0; battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1]; - spriteId = sub_80A89C8(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species); + spriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species); if (sAnimStatsChangeData->data[3]) { battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2]; - spriteId2 = sub_80A89C8(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species); + spriteId2 = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species); } - sub_80A6B30(&unknownStruct); + GetBattleAnimBg1Data(&animBgData); if (sAnimStatsChangeData->data[0] == 0) - AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gBattleStatMask1_Tilemap, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleStatMask1_Tilemap, 0); else - AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, gBattleStatMask2_Tilemap, 0); + AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleStatMask2_Tilemap, 0); - AnimLoadCompressedBgGfx(unknownStruct.bgId, gBattleStatMask_Gfx, unknownStruct.tilesOffset); + AnimLoadCompressedBgGfx(animBgData.bgId, gBattleStatMask_Gfx, animBgData.tilesOffset); switch (sAnimStatsChangeData->data[1]) { case 0: - LoadCompressedPalette(gBattleStatMask2_Pal, unknownStruct.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask2_Pal, animBgData.paletteId * 16, 32); break; case 1: - LoadCompressedPalette(gBattleStatMask1_Pal, unknownStruct.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask1_Pal, animBgData.paletteId * 16, 32); break; case 2: - LoadCompressedPalette(gBattleStatMask3_Pal, unknownStruct.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask3_Pal, animBgData.paletteId * 16, 32); break; case 3: - LoadCompressedPalette(gBattleStatMask4_Pal, unknownStruct.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask4_Pal, animBgData.paletteId * 16, 32); break; case 4: - LoadCompressedPalette(gBattleStatMask6_Pal, unknownStruct.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask6_Pal, animBgData.paletteId * 16, 32); break; case 5: - LoadCompressedPalette(gBattleStatMask7_Pal, unknownStruct.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask7_Pal, animBgData.paletteId * 16, 32); break; case 6: - LoadCompressedPalette(gBattleStatMask8_Pal, unknownStruct.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask8_Pal, animBgData.paletteId * 16, 32); break; default: - LoadCompressedPalette(gBattleStatMask5_Pal, unknownStruct.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask5_Pal, animBgData.paletteId * 16, 32); break; } @@ -532,7 +532,7 @@ static void sub_81170EC(u8 taskId) gTasks[taskId].data[3] = spriteId2; gTasks[taskId].data[6] = sAnimStatsChangeData->higherPriority; gTasks[taskId].data[7] = gBattlerSpriteIds[sAnimStatsChangeData->battler2]; - gTasks[taskId].func = sub_81172EC; + gTasks[taskId].func = StatsChangeAnimation_Step3; if (sAnimStatsChangeData->data[0] == 0) PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64)); @@ -540,7 +540,7 @@ static void sub_81170EC(u8 taskId) PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64)); } -static void sub_81172EC(u8 taskId) +static void StatsChangeAnimation_Step3(u8 taskId) { gBattle_BG1_Y += gTasks[taskId].data[1]; @@ -568,7 +568,7 @@ static void sub_81172EC(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); if (gTasks[taskId].data[12] == 0) { - sub_80A477C(0); + ResetBattleAnimBg(0); gTasks[taskId].data[15]++; } } @@ -603,12 +603,12 @@ static void sub_81172EC(u8 taskId) void AnimTask_Flash(u8 taskId) { - u32 selectedPalettes = sub_80A76C4(1, 1, 1, 1); - sub_81175C4(selectedPalettes, 0); + u32 selectedPalettes = GetBattleMonSpritePalettesMask(1, 1, 1, 1); + SetPalettesToColor(selectedPalettes, RGB_BLACK); gTasks[taskId].data[14] = selectedPalettes >> 16; - selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; - sub_81175C4(selectedPalettes, 0xFFFF); + selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; + SetPalettesToColor(selectedPalettes, RGB_WHITEALPHA); gTasks[taskId].data[15] = selectedPalettes; gTasks[taskId].data[0] = 0; @@ -662,7 +662,7 @@ static void AnimTask_Flash_Step(u8 taskId) } } -static void sub_81175C4(u32 selectedPalettes, u16 color) +static void SetPalettesToColor(u32 selectedPalettes, u16 color) { u16 i; @@ -705,7 +705,7 @@ void AnimTask_StartSlidingBg(u8 taskId) { u8 newTaskId; - sub_80A6DAC(0); + UpdateAnimBg3ScreenSize(FALSE); newTaskId = CreateTask(AnimTask_UpdateSlidingBg, 5); if (gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -733,7 +733,7 @@ static void AnimTask_UpdateSlidingBg(u8 taskId) { gBattle_BG3_X = 0; gBattle_BG3_Y = 0; - sub_80A6DAC(1); + UpdateAnimBg3ScreenSize(TRUE); DestroyTask(taskId); } } @@ -756,8 +756,6 @@ void AnimTask_GetTargetIsAttackerPartner(u8 taskId) DestroyAnimVisualTask(taskId); } -#define tInvisible gBattleAnimArgs[0]; - // For hiding or subsequently revealing all other battlers void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) { @@ -766,27 +764,25 @@ void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++) { if (battler != gBattleAnimAttacker && IsBattlerSpriteVisible(battler)) - gSprites[gBattlerSpriteIds[battler]].invisible = tInvisible; + gSprites[gBattlerSpriteIds[battler]].invisible = gBattleAnimArgs[0]; } DestroyAnimVisualTask(taskId); } -#undef tInvisible - -void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette) +void StartMonScrollingBgMask(u8 taskId, int unused, u16 scrollSpeed, u8 battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u32 *palette) { u16 species; u8 spriteId, spriteId2; u16 bg1Cnt; - struct BattleAnimBgData unknownStruct; + struct BattleAnimBgData animBgData; u8 battler2; spriteId2 = 0; - battler2 = BATTLE_PARTNER(battler1); + battler2 = BATTLE_PARTNER(battler); - if (IsContest() || (arg4 && !IsBattlerSpriteVisible(battler2))) - arg4 = 0; + if (IsContest() || (includePartner && !IsBattlerSpriteVisible(battler2))) + includePartner = FALSE; gBattle_WIN0H = 0; gBattle_WIN0V = 0; @@ -814,34 +810,34 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, } else { - if (GetBattlerSide(battler1) != B_SIDE_PLAYER) - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); + if (GetBattlerSide(battler) != B_SIDE_PLAYER) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES); else - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES); } - spriteId = sub_80A89C8(battler1, gBattlerSpriteIds[battler1], species); - if (arg4) - spriteId2 = sub_80A89C8(battler2, gBattlerSpriteIds[battler2], species); + spriteId = CreateInvisibleSpriteCopy(battler, gBattlerSpriteIds[battler], species); + if (includePartner) + spriteId2 = CreateInvisibleSpriteCopy(battler2, gBattlerSpriteIds[battler2], species); - sub_80A6B30(&unknownStruct); - AnimLoadCompressedBgTilemapHandleContest(&unknownStruct, tilemap, 0); - AnimLoadCompressedBgGfx(unknownStruct.bgId, gfx, unknownStruct.tilesOffset); - LoadCompressedPalette(palette, unknownStruct.paletteId * 16, 32); + GetBattleAnimBg1Data(&animBgData); + AnimLoadCompressedBgTilemapHandleContest(&animBgData, tilemap, 0); + AnimLoadCompressedBgGfx(animBgData.bgId, gfx, animBgData.tilesOffset); + LoadCompressedPalette(palette, animBgData.paletteId * 16, 32); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; - gTasks[taskId].data[1] = arg2; - gTasks[taskId].data[4] = arg5; - gTasks[taskId].data[5] = arg7; - gTasks[taskId].data[6] = arg6; + gTasks[taskId].data[1] = scrollSpeed; + gTasks[taskId].data[4] = numFadeSteps; + gTasks[taskId].data[5] = duration; + gTasks[taskId].data[6] = fadeStepDelay; gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[2] = arg4; + gTasks[taskId].data[2] = includePartner; gTasks[taskId].data[3] = spriteId2; - gTasks[taskId].func = sub_8117A60; + gTasks[taskId].func = UpdateMonScrollingBgMask; } -static void sub_8117A60(u8 taskId) +static void UpdateMonScrollingBgMask(u8 taskId) { gTasks[taskId].data[13] += gTasks[taskId].data[1] < 0 ? -gTasks[taskId].data[1] : gTasks[taskId].data[1]; if (gTasks[taskId].data[1] < 0) @@ -874,7 +870,7 @@ static void sub_8117A60(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); if (gTasks[taskId].data[12] == 0) { - sub_80A477C(0); + ResetBattleAnimBg(0); gBattle_WIN0H = 0; gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR @@ -927,7 +923,7 @@ void AnimTask_CopyPalUnfadedToBackup(u8 taskId) if (gBattleAnimArgs[0] == 0) { - selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0); while ((selectedPalettes & 1) == 0) { selectedPalettes >>= 1; @@ -954,7 +950,7 @@ void AnimTask_CopyPalUnfadedFromBackup(u8 taskId) if (gBattleAnimArgs[0] == 0) { - selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0); while ((selectedPalettes & 1) == 0) { selectedPalettes >>= 1; @@ -981,7 +977,7 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId) if (gBattleAnimArgs[0] == 0) { - selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0); while ((selectedPalettes & 1) == 0) { selectedPalettes >>= 1; @@ -1088,3 +1084,9 @@ void AnimTask_SetInvisible(u8 taskId) gSprites[spriteId].invisible = gBattleSpritesDataPtr->battlerData[battlerId].invisible = gBattleAnimArgs[1]; DestroyAnimVisualTask(taskId); } + +void AnimTask_SetAnimTargetToAttackerOpposite(u8 taskId) +{ + gBattleAnimTarget = BATTLE_OPPOSITE(gBattleAnimAttacker); + DestroyAnimVisualTask(taskId); +} diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 6893933bae..8ff49c6236 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -604,8 +604,8 @@ static void AnimKnockOffAquaTail(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { - sprite->pos1.x -= gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x -= gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; sprite->data[0] = -11; sprite->data[1] = 192; StartSpriteAffineAnim(sprite, 1); @@ -614,8 +614,8 @@ static void AnimKnockOffAquaTail(struct Sprite *sprite) { sprite->data[0] = 11; sprite->data[1] = 192; - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; + sprite->x += gBattleAnimArgs[0]; + sprite->y += gBattleAnimArgs[1]; } sprite->callback = AnimKnockOffAquaTailStep; @@ -625,8 +625,8 @@ static void AnimKnockOffAquaTailStep(struct Sprite *sprite) { sprite->data[1] += sprite->data[0]; sprite->data[1] &= 0xFF; - sprite->pos2.x = Cos(sprite->data[1], 20); - sprite->pos2.y = Sin(sprite->data[1], 20); + sprite->x2 = Cos(sprite->data[1], 20); + sprite->y2 = Sin(sprite->data[1], 20); if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -646,8 +646,8 @@ void AnimTask_CreateRaindrops(u8 taskId) gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] % gTasks[taskId].data[2] == 1) { - x = Random2() % 240; - y = Random2() % 80; + x = Random2() % DISPLAY_WIDTH; + y = Random2() % (DISPLAY_HEIGHT / 2); CreateSprite(&gRainDropSpriteTemplate, x, y, 4); } if (gTasks[taskId].data[0] == gTasks[taskId].data[3]) @@ -663,8 +663,8 @@ static void AnimRainDrop_Step(struct Sprite *sprite) { if (++sprite->data[0] <= 13) { - sprite->pos2.x++; - sprite->pos2.y += 4; + sprite->x2++; + sprite->y2 += 4; } if (sprite->animEnded) DestroySprite(sprite); @@ -677,28 +677,28 @@ static void AnimWaterBubbleProjectile(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; sprite->animPaused = TRUE; } else { - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; sprite->animPaused = TRUE; } if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[6]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); InitAnimLinearTranslation(sprite); spriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); sprite->data[5] = spriteId; - sprite->pos1.x -= Sin((u8)gBattleAnimArgs[4], gBattleAnimArgs[2]); - sprite->pos1.y -= Cos((u8)gBattleAnimArgs[4], gBattleAnimArgs[3]); + sprite->x -= Sin((u8)gBattleAnimArgs[4], gBattleAnimArgs[2]); + sprite->y -= Cos((u8)gBattleAnimArgs[4], gBattleAnimArgs[3]); gSprites[spriteId].data[0] = gBattleAnimArgs[2]; gSprites[spriteId].data[1] = gBattleAnimArgs[3]; gSprites[spriteId].data[2] = gBattleAnimArgs[5]; @@ -716,8 +716,8 @@ static void AnimWaterBubbleProjectile_Step1(struct Sprite *sprite) sprite->data[0] = 1; AnimTranslateLinear(sprite); - sprite->pos2.x += Sin(trigIndex >> 8, gSprites[otherSpriteId].data[0]); - sprite->pos2.y += Cos(trigIndex >> 8, gSprites[otherSpriteId].data[1]); + sprite->x2 += Sin(trigIndex >> 8, gSprites[otherSpriteId].data[0]); + sprite->y2 += Cos(trigIndex >> 8, gSprites[otherSpriteId].data[1]); gSprites[otherSpriteId].data[3] = trigIndex + gSprites[otherSpriteId].data[2]; if (--timer != 0) { @@ -754,9 +754,9 @@ static void AnimAuroraBeamRings(struct Sprite *sprite) else unkArg = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + unkArg; - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); sprite->callback = AnimAuroraBeamRings_Step; @@ -805,8 +805,8 @@ static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) void AnimFlyUpTarget(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); - sprite->pos2.y += GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_HEIGHT) / 2; - sprite->pos2.y += gBattleAnimArgs[1]; + sprite->y2 += GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_HEIGHT) / 2; + sprite->y2 += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; //max y offset sprite->data[1] = gBattleAnimArgs[3]; //speed sprite->callback = AnimFlyUpTarget_Step; @@ -815,12 +815,12 @@ void AnimFlyUpTarget(struct Sprite *sprite) static void AnimFlyUpTarget_Step(struct Sprite *sprite) { - if(sprite->pos2.y <= sprite->data[0]) + if(sprite->y2 <= sprite->data[0]) { DestroyAnimSprite(sprite); return; } - sprite->pos2.y -= sprite->data[1]; + sprite->y2 -= sprite->data[1]; } // For animating undulating beam attacks (e.g. Flamethrower, Hydro Pump, Signal Beam) @@ -830,9 +830,9 @@ static void AnimToTargetInSinWave(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 30; - sprite->data[1] = sprite->pos1.x; + sprite->data[1] = sprite->x; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[3] = sprite->pos1.y; + sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); InitAnimLinearTranslation(sprite); sprite->data[5] = 0xD200 / sprite->data[0]; @@ -855,7 +855,7 @@ static void AnimToTargetInSinWave_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); - sprite->pos2.y += Sin(sprite->data[6] >> 8, sprite->data[7]); + sprite->y2 += Sin(sprite->data[6] >> 8, sprite->data[7]); if ((sprite->data[6] + sprite->data[5]) >> 8 > 127) { sprite->data[6] = 0; @@ -886,26 +886,26 @@ static void AnimHydroCannonCharge(struct Sprite *sprite) { u8 priority; - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); - sprite->pos2.y = -10; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->y2 = -10; priority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); if (!IsContest()) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - sprite->pos2.x = 10; + sprite->x2 = 10; sprite->subpriority = priority + 2; } else { - sprite->pos2.x = -10; + sprite->x2 = -10; sprite->subpriority = priority - 2; } } else { - sprite->pos2.x = -10; + sprite->x2 = -10; sprite->subpriority = priority + 2; } sprite->callback = AnimHydroCannonCharge_Step; @@ -951,8 +951,8 @@ static void AnimWaterGunDroplet(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[4]; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + sprite->data[4] = sprite->y + gBattleAnimArgs[4]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -970,9 +970,9 @@ void AnimSmallBubblePair(struct Sprite *sprite) static void AnimSmallBubblePair_Step(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 11) & 0xFF; - sprite->pos2.x = Sin(sprite->data[0], 4); + sprite->x2 = Sin(sprite->data[0], 4); sprite->data[1] += 48; - sprite->pos2.y = -(sprite->data[1] >> 8); + sprite->y2 = -(sprite->data[1] >> 8); if (--sprite->data[7] == -1) DestroyAnimSprite(sprite); } @@ -991,7 +991,7 @@ void AnimTask_CreateSurfWave(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); if (!IsContest()) { SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); @@ -1074,12 +1074,10 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId) u16 rgbBuffer; u16 *BGptrX = &gBattle_BG1_X; u16 *BGptrY = &gBattle_BG1_Y; - u32 palOffset; - u16 palNum; *BGptrX += gTasks[taskId].data[0]; *BGptrY += gTasks[taskId].data[1]; - sub_80A6B30(&animBg); + GetBattleAnimBg1Data(&animBg); gTasks[taskId].data[2] += gTasks[taskId].data[1]; if (++gTasks[taskId].data[5] == 4) { @@ -1118,8 +1116,8 @@ static void AnimTask_CreateSurfWave_Step2(u8 taskId) u16 *BGptrY = &gBattle_BG1_Y; if (gTasks[taskId].data[0] == 0) { - sub_80A6C68(1); - sub_80A6C68(2); + ClearBattleAnimBg(1); + ClearBattleAnimBg(2); gTasks[taskId].data[0]++; } else @@ -1222,10 +1220,10 @@ static void AnimSmallDriftingBubbles_Step(struct Sprite *sprite) sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; if (sprite->data[1] & 1) - sprite->pos2.x = -(sprite->data[3] >> 8); + sprite->x2 = -(sprite->data[3] >> 8); else - sprite->pos2.x = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; + sprite->x2 = sprite->data[3] >> 8; + sprite->y2 = sprite->data[4] >> 8; if (++sprite->data[0] == 21) DestroyAnimSprite(sprite); } @@ -1235,7 +1233,7 @@ void AnimTask_WaterSpoutLaunch(u8 taskId) struct Task *task = &gTasks[taskId]; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->data[5] = gSprites[task->data[15]].pos1.y; + task->data[5] = gSprites[task->data[15]].y; task->data[1] = GetWaterSpoutPowerForAnim(); PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); task->func = AnimTask_WaterSpoutLaunch_Step; @@ -1248,7 +1246,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId) switch (task->data[0]) { case 0: - sub_80A805C(task, task->data[15], 0x100, 0x100, 224, 0x200, 32); + PrepareEruptAnimTaskData(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 32); task->data[0]++; case 1: if (++task->data[3] > 1) @@ -1256,18 +1254,18 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId) task->data[3] = 0; if (++task->data[4] & 1) { - gSprites[task->data[15]].pos2.x = 3; - gSprites[task->data[15]].pos1.y++; + gSprites[task->data[15]].x2 = 3; + gSprites[task->data[15]].y++; } else { - gSprites[task->data[15]].pos2.x = -3; + gSprites[task->data[15]].x2 = -3; } } - if (sub_80A80C8(task) == 0) + if (UpdateEruptAnimTask(task) == 0) { SetBattlerSpriteYOffsetFromYScale(task->data[15]); - gSprites[task->data[15]].pos2.x = 0; + gSprites[task->data[15]].x2 = 0; task->data[3] = 0; task->data[4] = 0; task->data[0]++; @@ -1276,13 +1274,13 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId) case 2: if (++task->data[3] > 4) { - sub_80A805C(task, task->data[15], 224, 0x200, 384, 224, 8); + PrepareEruptAnimTaskData(task, task->data[15], 0xE0, 0x200, 0x180, 0xE0, 8); task->data[3] = 0; task->data[0]++; } break; case 3: - if (sub_80A80C8(task) == 0) + if (UpdateEruptAnimTask(task) == 0) { task->data[3] = 0; task->data[4] = 0; @@ -1297,12 +1295,12 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId) { task->data[3] = 0; if (++task->data[4] & 1) - gSprites[task->data[15]].pos2.y += 2; + gSprites[task->data[15]].y2 += 2; else - gSprites[task->data[15]].pos2.y -= 2; + gSprites[task->data[15]].y2 -= 2; if (task->data[4] == 10) { - sub_80A805C(task, task->data[15], 384, 224, 0x100, 0x100, 8); + PrepareEruptAnimTaskData(task, task->data[15], 0x180, 0xE0, 0x100, 0x100, 8); task->data[3] = 0; task->data[4] = 0; task->data[0]++; @@ -1310,11 +1308,11 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId) } break; case 6: - gSprites[task->data[15]].pos1.y--; - if (sub_80A80C8(task) == 0) + gSprites[task->data[15]].y--; + if (UpdateEruptAnimTask(task) == 0) { ResetSpriteRotScale(task->data[15]); - gSprites[task->data[15]].pos1.y = task->data[5]; + gSprites[task->data[15]].y = task->data[5]; task->data[4] = 0; task->data[0]++; } @@ -1404,9 +1402,9 @@ static void AnimSmallWaterOrb(struct Sprite *sprite) case 1: sprite->data[2] += sprite->data[4]; sprite->data[3] += sprite->data[5]; - sprite->pos1.x = sprite->data[2] >> 4; - sprite->pos1.y = sprite->data[3] >> 4; - if (sprite->pos1.x < -8 || sprite->pos1.x > 248 || sprite->pos1.y < -8 || sprite->pos1.y > 120) + sprite->x = sprite->data[2] >> 4; + sprite->y = sprite->data[3] >> 4; + if (sprite->x < -8 || sprite->x > 248 || sprite->y < -8 || sprite->y > 120) { gTasks[sprite->data[6]].data[sprite->data[7]]--; DestroySprite(sprite); @@ -1455,14 +1453,14 @@ static void AnimTask_WaterSpoutRain_Step(u8 taskId) gBattleAnimArgs[1] = 0; gBattleAnimArgs[2] = 12; taskId2 = CreateTask(AnimTask_HorizontalShake, 80); - if (taskId2 != 0xFF) + if (taskId2 != TASK_NONE) { gTasks[taskId2].func(taskId2); gAnimVisualTaskCount++; } gBattleAnimArgs[0] = ANIM_DEF_PARTNER; taskId2 = CreateTask(AnimTask_HorizontalShake, 80); - if (taskId2 != 0xFF) + if (taskId2 != TASK_NONE) { gTasks[taskId2].func(taskId2); gAnimVisualTaskCount++; @@ -1501,11 +1499,11 @@ static void AnimWaterSpoutRain(struct Sprite *sprite) { if (sprite->data[0] == 0) { - sprite->pos1.y += 8; - if (sprite->pos1.y >= sprite->data[5]) + sprite->y += 8; + if (sprite->y >= sprite->data[5]) { gTasks[sprite->data[6]].data[10] = 1; - sprite->data[1] = CreateSprite(&gWaterHitSplatSpriteTemplate, sprite->pos1.x, sprite->pos1.y, 1); + sprite->data[1] = CreateSprite(&gWaterHitSplatSpriteTemplate, sprite->x, sprite->y, 1); if (sprite->data[1] != MAX_SPRITES) { StartSpriteAffineAnim(&gSprites[sprite->data[1]], 3); @@ -1644,11 +1642,11 @@ static void AnimWaterSportDroplet(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; + sprite->x += sprite->x2; + sprite->y += sprite->y2; sprite->data[0] = 6; - sprite->data[2] = (Random2() & 0x1F) - 16 + sprite->pos1.x; - sprite->data[4] = (Random2() & 0x1F) - 16 + sprite->pos1.y; + sprite->data[2] = (Random2() & 0x1F) - 16 + sprite->x; + sprite->data[4] = (Random2() & 0x1F) - 16 + sprite->y; sprite->data[5] = ~(Random2() & 7); InitAnimArcTranslation(sprite); sprite->callback = AnimWaterSportDroplet_Step; @@ -1675,8 +1673,8 @@ static void AnimWaterSportDroplet_Step(struct Sprite *sprite) void AnimWaterPulseBubble(struct Sprite *sprite) { - sprite->pos1.x = gBattleAnimArgs[0]; - sprite->pos1.y = gBattleAnimArgs[1]; + sprite->x = gBattleAnimArgs[0]; + sprite->y = gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; @@ -1687,9 +1685,9 @@ void AnimWaterPulseBubble(struct Sprite *sprite) static void AnimWaterPulseBubble_Step(struct Sprite *sprite) { sprite->data[4] -= sprite->data[0]; - sprite->pos2.y = sprite->data[4] / 10; + sprite->y2 = sprite->data[4] / 10; sprite->data[5] = (sprite->data[5] + sprite->data[1]) & 0xFF; - sprite->pos2.x = Sin(sprite->data[5], sprite->data[2]); + sprite->x2 = Sin(sprite->data[5], sprite->data[2]); if (--sprite->data[3] == 0) DestroyAnimSprite(sprite); } @@ -1698,8 +1696,8 @@ static void AnimWaterPulseRingBubble(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - sprite->pos2.x = sprite->data[3] >> 7; - sprite->pos2.y = sprite->data[4] >> 7; + sprite->x2 = sprite->data[3] >> 7; + sprite->y2 = sprite->data[4] >> 7; if (--sprite->data[0] == 0) { FreeSpriteOamMatrix(sprite); @@ -1719,11 +1717,11 @@ void AnimWaterPulseRing(struct Sprite *sprite) static void AnimWaterPulseRing_Step(struct Sprite *sprite) { - int xDiff = sprite->data[1] - sprite->pos1.x; - int yDiff = sprite->data[2] - sprite->pos1.y; + int xDiff = sprite->data[1] - sprite->x; + int yDiff = sprite->data[2] - sprite->y; - sprite->pos2.x = (sprite->data[0] * xDiff) / sprite->data[3]; - sprite->pos2.y = (sprite->data[0] * yDiff) / sprite->data[3]; + sprite->x2 = (sprite->data[0] * xDiff) / sprite->data[3]; + sprite->y2 = (sprite->data[0] * yDiff) / sprite->data[3]; if (++sprite->data[5] == sprite->data[4]) { sprite->data[5] = 0; @@ -1746,8 +1744,8 @@ static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yD u8 spriteId; something = sprite->data[0] / 2; - combinedX = sprite->pos1.x + sprite->pos2.x; - combinedY = sprite->pos1.y + sprite->pos2.y; + combinedX = sprite->x + sprite->x2; + combinedY = sprite->y + sprite->y2; if (yDiff < 0) unusedVar *= -1; //Needed to match randomSomethingY = yDiff + (Random2() % 10) - 5; diff --git a/src/battle_arena.c b/src/battle_arena.c index e25b9ce56c..8d31230791 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -774,7 +774,8 @@ void BattleArena_DeductMindPoints(u8 battler, u16 stringId) } } -void sub_81A586C(u8 battler) // Unused. +// Unused +static void UpdateHPAtStart(u8 battler) { u16 *hpAtStart = gBattleStruct->arenaStartHp; diff --git a/src/battle_bg.c b/src/battle_bg.c index ca1893d652..aaa1c60f95 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -102,7 +102,7 @@ static const struct SpriteTemplate sVsLetter_V_SpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = sVsLetterAffineAnimTable, - .callback = nullsub_17 + .callback = SpriteCB_VsLetterDummy }; static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = @@ -113,7 +113,7 @@ static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = sVsLetterAffineAnimTable, - .callback = nullsub_17 + .callback = SpriteCB_VsLetterDummy }; static const struct CompressedSpriteSheet sVsLettersSpriteSheet = @@ -761,7 +761,7 @@ void LoadBattleMenuWindowGfx(void) void DrawMainBattleBackground(void) { - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK)) { LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); @@ -1118,8 +1118,8 @@ void InitLinkBattleVsScreen(u8 taskId) gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.tileNum += 0x40; gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[0] = 0; gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[0] = 1; - gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_V].pos1.x; - gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_S].pos1.x; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_V].x; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_S].x; gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[2] = 0; gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[2] = 0; } @@ -1132,7 +1132,7 @@ void DrawBattleEntryBackground(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { LZDecompressVram(gUnknown_08D778F0, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gVsLettersGfx, (void*)(VRAM + 0x10000)); + LZDecompressVram(gVsLettersGfx, (void*)OBJ_VRAM0); LoadCompressedPalette(gUnknown_08D77AE4, 0x60, 0x20); SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1); SetGpuReg(REG_OFFSET_BG1CNT, 0x5C04); @@ -1140,13 +1140,13 @@ void DrawBattleEntryBackground(void) CopyToBgTilemapBuffer(2, gUnknown_08D779D8, 0, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); - SetGpuReg(REG_OFFSET_WININ, 0x36); - SetGpuReg(REG_OFFSET_WINOUT, 0x36); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); gBattle_BG1_Y = 0xFF5C; gBattle_BG2_Y = 0xFF5C; LoadCompressedSpriteSheetUsingHeap(&sVsLettersSpriteSheet); } - else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) + else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId == TRAINER_STEVEN_PARTNER || gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER) { @@ -1227,7 +1227,7 @@ bool8 LoadChosenBattleElement(u8 caseId) LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40); break; case 3: - if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) + if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); } @@ -1286,7 +1286,7 @@ bool8 LoadChosenBattleElement(u8 caseId) } break; case 4: - if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) + if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); } @@ -1348,7 +1348,7 @@ bool8 LoadChosenBattleElement(u8 caseId) } break; case 5: - if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) + if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); } diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index a9e153cd93..aae9f17e3c 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" #include "battle_anim.h" #include "battle_controllers.h" #include "battle_interface.h" @@ -51,7 +51,7 @@ static void LinkOpponentHandleMoveAnimation(void); static void LinkOpponentHandlePrintString(void); static void LinkOpponentHandlePrintSelectionString(void); static void LinkOpponentHandleChooseAction(void); -static void LinkOpponentHandleUnknownYesNoBox(void); +static void LinkOpponentHandleYesNoBox(void); static void LinkOpponentHandleChooseMove(void); static void LinkOpponentHandleChooseItem(void); static void LinkOpponentHandleChoosePokemon(void); @@ -69,12 +69,12 @@ static void LinkOpponentHandleTwoReturnValues(void); static void LinkOpponentHandleChosenMonReturnValue(void); static void LinkOpponentHandleOneReturnValue(void); static void LinkOpponentHandleOneReturnValue_Duplicate(void); -static void LinkOpponentHandleCmd37(void); -static void LinkOpponentHandleCmd38(void); -static void LinkOpponentHandleCmd39(void); -static void LinkOpponentHandleCmd40(void); +static void LinkOpponentHandleClearUnkVar(void); +static void LinkOpponentHandleSetUnkVar(void); +static void LinkOpponentHandleClearUnkFlag(void); +static void LinkOpponentHandleToggleUnkFlag(void); static void LinkOpponentHandleHitAnimation(void); -static void LinkOpponentHandleCmd42(void); +static void LinkOpponentHandleCantSwitch(void); static void LinkOpponentHandlePlaySE(void); static void LinkOpponentHandlePlayFanfareOrBGM(void); static void LinkOpponentHandleFaintingCry(void); @@ -87,85 +87,85 @@ static void LinkOpponentHandleSpriteInvisibility(void); static void LinkOpponentHandleBattleAnimation(void); static void LinkOpponentHandleLinkStandbyMsg(void); static void LinkOpponentHandleResetActionMoveSelection(void); -static void LinkOpponentHandleCmd55(void); +static void LinkOpponentHandleEndLinkBattle(void); static void LinkOpponentHandleBattleDebug(void); static void LinkOpponentCmdEnd(void); static void LinkOpponentBufferRunCommand(void); static void LinkOpponentBufferExecCompleted(void); -static void sub_8064DD0(void); +static void SwitchIn_HandleSoundAndEnd(void); static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst); static void SetLinkOpponentMonData(u8 monId); -static void sub_8066494(u8 battlerId, bool8 dontClearSubstituteBit); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void LinkOpponentDoMoveAnimation(void); -static void sub_8067618(u8 taskId); -static void sub_80676FC(struct Sprite *sprite); -static void sub_806782C(void); +static void Task_StartSendOutAnim(u8 taskId); +static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite); +static void EndDrawPartyStatusSummary(void); static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - LinkOpponentHandleGetMonData, - LinkOpponentHandleGetRawMonData, - LinkOpponentHandleSetMonData, - LinkOpponentHandleSetRawMonData, - LinkOpponentHandleLoadMonSprite, - LinkOpponentHandleSwitchInAnim, - LinkOpponentHandleReturnMonToBall, - LinkOpponentHandleDrawTrainerPic, - LinkOpponentHandleTrainerSlide, - LinkOpponentHandleTrainerSlideBack, - LinkOpponentHandleFaintAnimation, - LinkOpponentHandlePaletteFade, - LinkOpponentHandleSuccessBallThrowAnim, - LinkOpponentHandleBallThrowAnim, - LinkOpponentHandlePause, - LinkOpponentHandleMoveAnimation, - LinkOpponentHandlePrintString, - LinkOpponentHandlePrintSelectionString, - LinkOpponentHandleChooseAction, - LinkOpponentHandleUnknownYesNoBox, - LinkOpponentHandleChooseMove, - LinkOpponentHandleChooseItem, - LinkOpponentHandleChoosePokemon, - LinkOpponentHandleCmd23, - LinkOpponentHandleHealthBarUpdate, - LinkOpponentHandleExpUpdate, - LinkOpponentHandleStatusIconUpdate, - LinkOpponentHandleStatusAnimation, - LinkOpponentHandleStatusXor, - LinkOpponentHandleDataTransfer, - LinkOpponentHandleDMA3Transfer, - LinkOpponentHandlePlayBGM, - LinkOpponentHandleCmd32, - LinkOpponentHandleTwoReturnValues, - LinkOpponentHandleChosenMonReturnValue, - LinkOpponentHandleOneReturnValue, - LinkOpponentHandleOneReturnValue_Duplicate, - LinkOpponentHandleCmd37, - LinkOpponentHandleCmd38, - LinkOpponentHandleCmd39, - LinkOpponentHandleCmd40, - LinkOpponentHandleHitAnimation, - LinkOpponentHandleCmd42, - LinkOpponentHandlePlaySE, - LinkOpponentHandlePlayFanfareOrBGM, - LinkOpponentHandleFaintingCry, - LinkOpponentHandleIntroSlide, - LinkOpponentHandleIntroTrainerBallThrow, - LinkOpponentHandleDrawPartyStatusSummary, - LinkOpponentHandleHidePartyStatusSummary, - LinkOpponentHandleEndBounceEffect, - LinkOpponentHandleSpriteInvisibility, - LinkOpponentHandleBattleAnimation, - LinkOpponentHandleLinkStandbyMsg, - LinkOpponentHandleResetActionMoveSelection, - LinkOpponentHandleCmd55, - LinkOpponentHandleBattleDebug, - LinkOpponentCmdEnd + [CONTROLLER_GETMONDATA] = LinkOpponentHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = LinkOpponentHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = LinkOpponentHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = LinkOpponentHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = LinkOpponentHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = LinkOpponentHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = LinkOpponentHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = LinkOpponentHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = LinkOpponentHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = LinkOpponentHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = LinkOpponentHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = LinkOpponentHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = LinkOpponentHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = LinkOpponentHandleBallThrowAnim, + [CONTROLLER_PAUSE] = LinkOpponentHandlePause, + [CONTROLLER_MOVEANIMATION] = LinkOpponentHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = LinkOpponentHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = LinkOpponentHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = LinkOpponentHandleChooseAction, + [CONTROLLER_YESNOBOX] = LinkOpponentHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = LinkOpponentHandleChooseMove, + [CONTROLLER_OPENBAG] = LinkOpponentHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = LinkOpponentHandleChoosePokemon, + [CONTROLLER_23] = LinkOpponentHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = LinkOpponentHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = LinkOpponentHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = LinkOpponentHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = LinkOpponentHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = LinkOpponentHandleStatusXor, + [CONTROLLER_DATATRANSFER] = LinkOpponentHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = LinkOpponentHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = LinkOpponentHandlePlayBGM, + [CONTROLLER_32] = LinkOpponentHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = LinkOpponentHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = LinkOpponentHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = LinkOpponentHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = LinkOpponentHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = LinkOpponentHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = LinkOpponentHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = LinkOpponentHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = LinkOpponentHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = LinkOpponentHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = LinkOpponentHandleCantSwitch, + [CONTROLLER_PLAYSE] = LinkOpponentHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = LinkOpponentHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = LinkOpponentHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = LinkOpponentHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = LinkOpponentHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = LinkOpponentHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = LinkOpponentHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = LinkOpponentHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = LinkOpponentHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = LinkOpponentHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = LinkOpponentHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = LinkOpponentHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = LinkOpponentHandleEndLinkBattle, + [CONTROLLER_DEBUGMENU] = LinkOpponentHandleBattleDebug, + [CONTROLLER_TERMINATOR_NOP] = LinkOpponentCmdEnd }; -static void nullsub_28(void) +static void LinkOpponentDummy(void) { } @@ -197,7 +197,7 @@ static void CompleteOnBankSpriteCallbackDummy2(void) LinkOpponentBufferExecCompleted(); } -static void sub_8064470(void) +static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { @@ -208,38 +208,38 @@ static void sub_8064470(void) } } -static void sub_80644D8(void) +static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; LinkOpponentBufferExecCompleted(); } } -static void sub_8064520(void) +static void Intro_WaitForShinyAnimAndHealthbox(void) { - bool32 r8 = FALSE; - bool32 r4 = FALSE; + bool32 healthboxAnimDone = FALSE; + bool32 twoMons = FALSE; if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - r8 = TRUE; + healthboxAnimDone = TRUE; } else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { - r8 = TRUE; + healthboxAnimDone = TRUE; } - r4 = TRUE; + twoMons = TRUE; } - if (r8) + if (healthboxAnimDone) { - if (r4 || !IsBattlerSpriteVisible(BATTLE_PARTNER(gActiveBattler))) + if (twoMons || !IsBattlerSpriteVisible(BATTLE_PARTNER(gActiveBattler))) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) return; @@ -252,8 +252,8 @@ static void sub_8064520(void) gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } else { @@ -265,19 +265,19 @@ static void sub_8064520(void) if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerControllerFuncs[gActiveBattler] = sub_80644D8; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; + gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; } } -static void sub_8064734(void) +static void Intro_TryShinyAnimShowHealthbox(void) { - bool32 r10 = FALSE; + bool32 bgmRestored = FALSE; if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim @@ -296,27 +296,27 @@ static void sub_8064734(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); - sub_8076918(BATTLE_PARTNER(gActiveBattler)); + StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler)); SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = TRUE; } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x40 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -329,45 +329,45 @@ static void sub_8064734(void) } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; - r10 = TRUE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = TRUE; + bgmRestored = TRUE; } - if (r10) + if (bgmRestored) { - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { - if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 1) + if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 1) return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; } if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[BATTLE_PARTNER(gActiveBattler)]]); + DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]); SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES)); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = FALSE; - gBattlerControllerFuncs[gActiveBattler] = sub_8064520; + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } } -static void sub_8064B04(void) +static void TryShinyAnimAfterMonAnim(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) + && gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim) { @@ -379,8 +379,8 @@ static void sub_8064B04(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); LinkOpponentBufferExecCompleted(); } } @@ -403,7 +403,7 @@ static void CompleteOnHealthbarDone(void) } } -static void sub_8064C14(void) +static void HideHealthboxAfterMonFaint(void) { if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse) { @@ -412,7 +412,7 @@ static void sub_8064C14(void) } } -static void sub_8064C58(void) +static void FreeMonSpriteAfterSwitchOutAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { @@ -449,18 +449,18 @@ static void DoHitAnimBlinkSpriteEffect(void) } } -static void sub_8064D60(void) +static void SwitchIn_ShowSubstitute(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerControllerFuncs[gActiveBattler] = sub_8064DD0; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_HandleSoundAndEnd; } } -static void sub_8064DD0(void) +static void SwitchIn_HandleSoundAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { @@ -473,7 +473,7 @@ static void sub_8064DD0(void) } } -static void sub_8064E50(void) +static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) @@ -481,20 +481,20 @@ static void sub_8064E50(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); - gBattlerControllerFuncs[gActiveBattler] = sub_8064D60; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowSubstitute; } } -static void sub_8064F40(void) +static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim) @@ -502,12 +502,12 @@ static void sub_8064F40(void) TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerControllerFuncs[gActiveBattler] = sub_8064E50; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowHealthbox; } } @@ -1135,31 +1135,31 @@ static void LinkOpponentHandleLoadMonSprite(void) GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerControllerFuncs[gActiveBattler] = sub_8064B04; + gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim; } static void LinkOpponentHandleSwitchInAnim(void) { gBattlerPartyIndexes[gActiveBattler] = gBattleResources->bufferA[gActiveBattler][1]; - sub_8066494(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); - gBattlerControllerFuncs[gActiveBattler] = sub_8064F40; + StartSendOutAnim(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim; } -static void sub_8066494(u8 battlerId, bool8 dontClearSubstituteBit) +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) { u16 species; ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714); + gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); @@ -1169,8 +1169,8 @@ static void sub_8066494(u8 battlerId, bool8 dontClearSubstituteBit) GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); - gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; - gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId; + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattleControllerData[battlerId]].data[2] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; @@ -1181,7 +1181,7 @@ static void sub_8066494(u8 battlerId, bool8 dontClearSubstituteBit) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void LinkOpponentHandleReturnMonToBall(void) @@ -1216,12 +1216,14 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattlerControllerFuncs[gActiveBattler] = sub_8064C58; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim; } break; } } +#define sSpeedX data[0] + static void LinkOpponentHandleDrawTrainerPic(void) { s16 xPos; @@ -1301,11 +1303,11 @@ static void LinkOpponentHandleDrawTrainerPic(void) (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } @@ -1323,26 +1325,28 @@ static void LinkOpponentHandleTrainerSlide(void) SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 176, (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, 0x1E); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 96; + gSprites[gBattlerSpriteIds[gActiveBattler]].x += 32; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; // this line is redundant, because LinkOpponentBufferExecCompleted changes the battle battlerId function LinkOpponentBufferExecCompleted(); } +#undef sSpeedX + static void LinkOpponentHandleTrainerSlideBack(void) { SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerControllerFuncs[gActiveBattler] = sub_8064470; + gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } static void LinkOpponentHandleFaintAnimation(void) @@ -1360,7 +1364,7 @@ static void LinkOpponentHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; - gBattlerControllerFuncs[gActiveBattler] = sub_8064C14; + gBattlerControllerFuncs[gActiveBattler] = HideHealthboxAfterMonFaint; } } } @@ -1387,7 +1391,7 @@ static void LinkOpponentHandlePause(void) static void LinkOpponentHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u16 move = gBattleResources->bufferA[gActiveBattler][1] | (gBattleResources->bufferA[gActiveBattler][2] << 8); @@ -1430,7 +1434,7 @@ static void LinkOpponentDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - sub_805EB9C(ST_OAM_AFFINE_OFF); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1439,7 +1443,7 @@ static void LinkOpponentDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_805EB9C(ST_OAM_AFFINE_NORMAL); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1483,7 +1487,7 @@ static void LinkOpponentHandleChooseAction(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleUnknownYesNoBox(void) +static void LinkOpponentHandleYesNoBox(void) { LinkOpponentBufferExecCompleted(); } @@ -1539,7 +1543,7 @@ static void LinkOpponentHandleExpUpdate(void) static void LinkOpponentHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 battlerId; @@ -1552,7 +1556,7 @@ static void LinkOpponentHandleStatusIconUpdate(void) static void LinkOpponentHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { InitAndLaunchChosenStatusAnimation(gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8) | (gBattleResources->bufferA[gActiveBattler][4] << 16) | (gBattleResources->bufferA[gActiveBattler][5] << 24)); @@ -1605,27 +1609,27 @@ static void LinkOpponentHandleOneReturnValue_Duplicate(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd37(void) +static void LinkOpponentHandleClearUnkVar(void) { - gUnknown_02022D0C.field_0 = 0; + gUnusedControllerStruct.unk = 0; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd38(void) +static void LinkOpponentHandleSetUnkVar(void) { - gUnknown_02022D0C.field_0 = gBattleResources->bufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleResources->bufferA[gActiveBattler][1]; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd39(void) +static void LinkOpponentHandleClearUnkFlag(void) { - gUnknown_02022D0C.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd40(void) +static void LinkOpponentHandleToggleUnkFlag(void) { - gUnknown_02022D0C.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; LinkOpponentBufferExecCompleted(); } @@ -1644,7 +1648,7 @@ static void LinkOpponentHandleHitAnimation(void) } } -static void LinkOpponentHandleCmd42(void) +static void LinkOpponentHandleCantSwitch(void) { LinkOpponentBufferExecCompleted(); } @@ -1694,29 +1698,28 @@ static void LinkOpponentHandleIntroSlide(void) static void LinkOpponentHandleIntroTrainerBallThrow(void) { - u8 paletteNum; u8 taskId; SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80676FC); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreeOpponentSprite); - taskId = CreateTask(sub_8067618, 5); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerControllerFuncs[gActiveBattler] = nullsub_28; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; + gBattlerControllerFuncs[gActiveBattler] = LinkOpponentDummy; } -static void sub_8067618(u8 taskId) +static void Task_StartSendOutAnim(u8 taskId) { u8 savedActiveBank = gActiveBattler; @@ -1724,23 +1727,23 @@ static void sub_8067618(u8 taskId) if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_8066494(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); } else { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_8066494(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler = BATTLE_PARTNER(gActiveBattler); gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_8066494(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler = BATTLE_PARTNER(gActiveBattler); } - gBattlerControllerFuncs[gActiveBattler] = sub_8064734; + gBattlerControllerFuncs[gActiveBattler] = Intro_TryShinyAnimShowHealthbox; gActiveBattler = savedActiveBank; DestroyTask(taskId); } -static void sub_80676FC(struct Sprite *sprite) +static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite) { FreeTrainerFrontPicPalette(sprite->oam.affineParam); FreeSpriteOamMatrix(sprite); @@ -1771,20 +1774,20 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void) } gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleResources->bufferA[gActiveBattler][4], gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; if (gBattleResources->bufferA[gActiveBattler][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; - gBattlerControllerFuncs[gActiveBattler] = sub_806782C; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } -static void sub_806782C(void) +static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; LinkOpponentBufferExecCompleted(); } } @@ -1813,7 +1816,7 @@ static void LinkOpponentHandleSpriteInvisibility(void) static void LinkOpponentHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 animationId = gBattleResources->bufferA[gActiveBattler][1]; u16 argument = gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8); @@ -1829,7 +1832,7 @@ static void LinkOpponentHandleBattleAnimation(void) static void LinkOpponentHandleLinkStandbyMsg(void) { - sub_81851A8(&gBattleResources->bufferA[gActiveBattler][2]); + RecordedBattle_RecordAllBattlerData(&gBattleResources->bufferA[gActiveBattler][2]); LinkOpponentBufferExecCompleted(); } @@ -1838,9 +1841,9 @@ static void LinkOpponentHandleResetActionMoveSelection(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd55(void) +static void LinkOpponentHandleEndLinkBattle(void) { - sub_81851A8(&gBattleResources->bufferA[gActiveBattler][4]); + RecordedBattle_RecordAllBattlerData(&gBattleResources->bufferA[gActiveBattler][4]); if (gBattleResources->bufferA[gActiveBattler][1] == B_OUTCOME_DREW) gBattleOutcome = gBattleResources->bufferA[gActiveBattler][1]; @@ -1851,7 +1854,7 @@ static void LinkOpponentHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkOpponentBufferExecCompleted(); - gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks; } static void LinkOpponentHandleBattleDebug(void) diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 2f0929f257..966ea5eb5a 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" #include "battle_anim.h" #include "battle_controllers.h" #include "battle_interface.h" @@ -49,7 +49,7 @@ static void LinkPartnerHandleMoveAnimation(void); static void LinkPartnerHandlePrintString(void); static void LinkPartnerHandlePrintSelectionString(void); static void LinkPartnerHandleChooseAction(void); -static void LinkPartnerHandleUnknownYesNoBox(void); +static void LinkPartnerHandleYesNoBox(void); static void LinkPartnerHandleChooseMove(void); static void LinkPartnerHandleChooseItem(void); static void LinkPartnerHandleChoosePokemon(void); @@ -67,12 +67,12 @@ static void LinkPartnerHandleTwoReturnValues(void); static void LinkPartnerHandleChosenMonReturnValue(void); static void LinkPartnerHandleOneReturnValue(void); static void LinkPartnerHandleOneReturnValue_Duplicate(void); -static void LinkPartnerHandleCmd37(void); -static void LinkPartnerHandleCmd38(void); -static void LinkPartnerHandleCmd39(void); -static void LinkPartnerHandleCmd40(void); +static void LinkPartnerHandleClearUnkVar(void); +static void LinkPartnerHandleSetUnkVar(void); +static void LinkPartnerHandleClearUnkFlag(void); +static void LinkPartnerHandleToggleUnkFlag(void); static void LinkPartnerHandleHitAnimation(void); -static void LinkPartnerHandleCmd42(void); +static void LinkPartnerHandleCantSwitch(void); static void LinkPartnerHandlePlaySE(void); static void LinkPartnerHandlePlayFanfareOrBGM(void); static void LinkPartnerHandleFaintingCry(void); @@ -85,81 +85,81 @@ static void LinkPartnerHandleSpriteInvisibility(void); static void LinkPartnerHandleBattleAnimation(void); static void LinkPartnerHandleLinkStandbyMsg(void); static void LinkPartnerHandleResetActionMoveSelection(void); -static void LinkPartnerHandleCmd55(void); +static void LinkPartnerHandleEndLinkBattle(void); static void LinkPartnerHandleBattleDebug(void); static void LinkPartnerCmdEnd(void); static void LinkPartnerBufferRunCommand(void); static void LinkPartnerBufferExecCompleted(void); -static void sub_814B554(void); +static void SwitchIn_WaitAndEnd(void); static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst); static void SetLinkPartnerMonData(u8 monId); -static void sub_814CC98(u8 battlerId, bool8 dontClearSubstituteBit); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void LinkPartnerDoMoveAnimation(void); -static void sub_814DCCC(u8 taskId); -static void sub_814DE9C(void); +static void Task_StartSendOutAnim(u8 taskId); +static void EndDrawPartyStatusSummary(void); static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - LinkPartnerHandleGetMonData, - LinkPartnerHandleGetRawMonData, - LinkPartnerHandleSetMonData, - LinkPartnerHandleSetRawMonData, - LinkPartnerHandleLoadMonSprite, - LinkPartnerHandleSwitchInAnim, - LinkPartnerHandleReturnMonToBall, - LinkPartnerHandleDrawTrainerPic, - LinkPartnerHandleTrainerSlide, - LinkPartnerHandleTrainerSlideBack, - LinkPartnerHandleFaintAnimation, - LinkPartnerHandlePaletteFade, - LinkPartnerHandleSuccessBallThrowAnim, - LinkPartnerHandleBallThrowAnim, - LinkPartnerHandlePause, - LinkPartnerHandleMoveAnimation, - LinkPartnerHandlePrintString, - LinkPartnerHandlePrintSelectionString, - LinkPartnerHandleChooseAction, - LinkPartnerHandleUnknownYesNoBox, - LinkPartnerHandleChooseMove, - LinkPartnerHandleChooseItem, - LinkPartnerHandleChoosePokemon, - LinkPartnerHandleCmd23, - LinkPartnerHandleHealthBarUpdate, - LinkPartnerHandleExpUpdate, - LinkPartnerHandleStatusIconUpdate, - LinkPartnerHandleStatusAnimation, - LinkPartnerHandleStatusXor, - LinkPartnerHandleDataTransfer, - LinkPartnerHandleDMA3Transfer, - LinkPartnerHandlePlayBGM, - LinkPartnerHandleCmd32, - LinkPartnerHandleTwoReturnValues, - LinkPartnerHandleChosenMonReturnValue, - LinkPartnerHandleOneReturnValue, - LinkPartnerHandleOneReturnValue_Duplicate, - LinkPartnerHandleCmd37, - LinkPartnerHandleCmd38, - LinkPartnerHandleCmd39, - LinkPartnerHandleCmd40, - LinkPartnerHandleHitAnimation, - LinkPartnerHandleCmd42, - LinkPartnerHandlePlaySE, - LinkPartnerHandlePlayFanfareOrBGM, - LinkPartnerHandleFaintingCry, - LinkPartnerHandleIntroSlide, - LinkPartnerHandleIntroTrainerBallThrow, - LinkPartnerHandleDrawPartyStatusSummary, - LinkPartnerHandleHidePartyStatusSummary, - LinkPartnerHandleEndBounceEffect, - LinkPartnerHandleSpriteInvisibility, - LinkPartnerHandleBattleAnimation, - LinkPartnerHandleLinkStandbyMsg, - LinkPartnerHandleResetActionMoveSelection, - LinkPartnerHandleCmd55, - LinkPartnerHandleBattleDebug, - LinkPartnerCmdEnd + [CONTROLLER_GETMONDATA] = LinkPartnerHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = LinkPartnerHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = LinkPartnerHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = LinkPartnerHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = LinkPartnerHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = LinkPartnerHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = LinkPartnerHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = LinkPartnerHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = LinkPartnerHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = LinkPartnerHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = LinkPartnerHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = LinkPartnerHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = LinkPartnerHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = LinkPartnerHandleBallThrowAnim, + [CONTROLLER_PAUSE] = LinkPartnerHandlePause, + [CONTROLLER_MOVEANIMATION] = LinkPartnerHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = LinkPartnerHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = LinkPartnerHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = LinkPartnerHandleChooseAction, + [CONTROLLER_YESNOBOX] = LinkPartnerHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = LinkPartnerHandleChooseMove, + [CONTROLLER_OPENBAG] = LinkPartnerHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = LinkPartnerHandleChoosePokemon, + [CONTROLLER_23] = LinkPartnerHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = LinkPartnerHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = LinkPartnerHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = LinkPartnerHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = LinkPartnerHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = LinkPartnerHandleStatusXor, + [CONTROLLER_DATATRANSFER] = LinkPartnerHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = LinkPartnerHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = LinkPartnerHandlePlayBGM, + [CONTROLLER_32] = LinkPartnerHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = LinkPartnerHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = LinkPartnerHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = LinkPartnerHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = LinkPartnerHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = LinkPartnerHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = LinkPartnerHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = LinkPartnerHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = LinkPartnerHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = LinkPartnerHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = LinkPartnerHandleCantSwitch, + [CONTROLLER_PLAYSE] = LinkPartnerHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = LinkPartnerHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = LinkPartnerHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = LinkPartnerHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = LinkPartnerHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = LinkPartnerHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = LinkPartnerHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = LinkPartnerHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = LinkPartnerHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = LinkPartnerHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = LinkPartnerHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = LinkPartnerHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = LinkPartnerHandleEndLinkBattle, + [CONTROLLER_DEBUGMENU] = LinkPartnerHandleBattleDebug, + [CONTROLLER_TERMINATOR_NOP] = LinkPartnerCmdEnd }; static void SpriteCB_Null2(void) @@ -188,86 +188,86 @@ static void CompleteOnBattlerSpriteCallbackDummy(void) LinkPartnerBufferExecCompleted(); } -static void sub_814AF54(void) +static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - nullsub_25(0); + BattleGfxSfxDummy3(MALE); FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); LinkPartnerBufferExecCompleted(); } } -static void sub_814AFBC(void) +static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; LinkPartnerBufferExecCompleted(); } } -static void sub_814B004(void) +static void Intro_WaitForHealthbox(void) { - bool32 r6 = FALSE; + bool32 finished = FALSE; if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - r6 = TRUE; + finished = TRUE; } else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - r6 = TRUE; + finished = TRUE; } } if (IsCryPlayingOrClearCrySongs()) - r6 = FALSE; + finished = FALSE; - if (r6) + if (finished) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerControllerFuncs[gActiveBattler] = sub_814AFBC; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; + gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; } } -static void sub_814B0E8(void) +static void Intro_ShowHealthbox(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive - && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 != 1) + && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->field_9_x1 = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; - gBattlerControllerFuncs[gActiveBattler] = sub_814B004; + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForHealthbox; } } -static void sub_814B290(void) +static void WaitForMonAnimAfterLoad(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0) LinkPartnerBufferExecCompleted(); } @@ -288,13 +288,13 @@ static void CompleteOnHealthbarDone(void) } } -static void sub_814B340(void) +static void FreeMonSpriteAfterFaintAnim(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].y + gSprites[gBattlerSpriteIds[gActiveBattler]].y2 > DISPLAY_HEIGHT) { u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - nullsub_24(species); + BattleGfxSfxDummy2(species); FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); @@ -302,7 +302,7 @@ static void sub_814B340(void) } } -static void sub_814B3DC(void) +static void FreeMonSpriteAfterSwitchOutAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { @@ -338,7 +338,7 @@ static void DoHitAnimBlinkSpriteEffect(void) } } -static void sub_814B4E0(void) +static void SwitchIn_ShowSubstitute(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { @@ -346,11 +346,11 @@ static void sub_814B4E0(void) if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerControllerFuncs[gActiveBattler] = sub_814B554; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_WaitAndEnd; } } -static void sub_814B554(void) +static void SwitchIn_WaitAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) @@ -359,28 +359,28 @@ static void sub_814B554(void) } } -static void sub_814B5A8(void) +static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); - CreateTask(c3_0802FDF4, 10); + CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattlerControllerFuncs[gActiveBattler] = sub_814B4E0; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowSubstitute; } } -static void sub_814B69C(void) +static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) @@ -388,11 +388,11 @@ static void sub_814B69C(void) TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - gBattlerControllerFuncs[gActiveBattler] = sub_814B5A8; + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowHealthbox; } } @@ -1022,11 +1022,11 @@ static void LinkPartnerHandleLoadMonSprite(void) GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - gBattlerControllerFuncs[gActiveBattler] = sub_814B290; + gBattlerControllerFuncs[gActiveBattler] = WaitForMonAnimAfterLoad; } static void LinkPartnerHandleSwitchInAnim(void) @@ -1034,18 +1034,18 @@ static void LinkPartnerHandleSwitchInAnim(void) ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); gBattlerPartyIndexes[gActiveBattler] = gBattleResources->bufferA[gActiveBattler][1]; BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - sub_814CC98(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); - gBattlerControllerFuncs[gActiveBattler] = sub_814B69C; + StartSendOutAnim(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim; } -static void sub_814CC98(u8 battlerId, bool8 dontClearSubstituteBit) +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) { u16 species; ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714); + gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite( @@ -1054,8 +1054,8 @@ static void sub_814CC98(u8 battlerId, bool8 dontClearSubstituteBit) GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); - gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; - gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId; + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattleControllerData[battlerId]].data[2] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; @@ -1066,7 +1066,7 @@ static void sub_814CC98(u8 battlerId, bool8 dontClearSubstituteBit) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void LinkPartnerHandleReturnMonToBall(void) @@ -1100,12 +1100,14 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerControllerFuncs[gActiveBattler] = sub_814B3DC; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim; } break; } } +#define sSpeedX data[0] + static void LinkPartnerHandleDrawTrainerPic(void) { s16 xPos; @@ -1143,13 +1145,15 @@ static void LinkPartnerHandleDrawTrainerPic(void) gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } +#undef sSpeedX + static void LinkPartnerHandleTrainerSlide(void) { LinkPartnerBufferExecCompleted(); @@ -1160,12 +1164,15 @@ static void LinkPartnerHandleTrainerSlideBack(void) SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerControllerFuncs[gActiveBattler] = sub_814AF54; + gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } +#define sSpeedX data[1] +#define sSpeedY data[2] + static void LinkPartnerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) @@ -1181,14 +1188,17 @@ static void LinkPartnerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); - gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; - gBattlerControllerFuncs[gActiveBattler] = sub_814B340; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedY = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintSlideAnim; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterFaintAnim; } } } +#undef sSpeedX +#undef sSpeedY + static void LinkPartnerHandlePaletteFade(void) { LinkPartnerBufferExecCompleted(); @@ -1211,7 +1221,7 @@ static void LinkPartnerHandlePause(void) static void LinkPartnerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u16 move = gBattleResources->bufferA[gActiveBattler][1] | (gBattleResources->bufferA[gActiveBattler][2] << 8); @@ -1254,7 +1264,7 @@ static void LinkPartnerDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - sub_805EB9C(ST_OAM_AFFINE_OFF); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1263,7 +1273,7 @@ static void LinkPartnerDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_805EB9C(ST_OAM_AFFINE_NORMAL); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1307,7 +1317,7 @@ static void LinkPartnerHandleChooseAction(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleUnknownYesNoBox(void) +static void LinkPartnerHandleYesNoBox(void) { LinkPartnerBufferExecCompleted(); } @@ -1363,7 +1373,7 @@ static void LinkPartnerHandleExpUpdate(void) static void LinkPartnerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 battlerId; @@ -1376,7 +1386,7 @@ static void LinkPartnerHandleStatusIconUpdate(void) static void LinkPartnerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { InitAndLaunchChosenStatusAnimation(gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8) | (gBattleResources->bufferA[gActiveBattler][4] << 16) | (gBattleResources->bufferA[gActiveBattler][5] << 24)); @@ -1429,27 +1439,27 @@ static void LinkPartnerHandleOneReturnValue_Duplicate(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd37(void) +static void LinkPartnerHandleClearUnkVar(void) { - gUnknown_02022D0C.field_0 = 0; + gUnusedControllerStruct.unk = 0; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd38(void) +static void LinkPartnerHandleSetUnkVar(void) { - gUnknown_02022D0C.field_0 = gBattleResources->bufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleResources->bufferA[gActiveBattler][1]; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd39(void) +static void LinkPartnerHandleClearUnkFlag(void) { - gUnknown_02022D0C.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd40(void) +static void LinkPartnerHandleToggleUnkFlag(void) { - gUnknown_02022D0C.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; LinkPartnerBufferExecCompleted(); } @@ -1468,7 +1478,7 @@ static void LinkPartnerHandleHitAnimation(void) } } -static void LinkPartnerHandleCmd42(void) +static void LinkPartnerHandleCantSwitch(void) { LinkPartnerBufferExecCompleted(); } @@ -1526,11 +1536,11 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); @@ -1554,17 +1564,17 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; - taskId = CreateTask(sub_814DCCC, 5); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->field_9_x1 = 1; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = SpriteCB_Null2; } -static void sub_814DCCC(u8 taskId) +static void Task_StartSendOutAnim(u8 taskId) { if (gTasks[taskId].data[1] < 24) { @@ -1578,19 +1588,19 @@ static void sub_814DCCC(u8 taskId) if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_814CC98(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); } else { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_814CC98(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - sub_814CC98(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerControllerFuncs[gActiveBattler] = sub_814B0E8; + gBattlerControllerFuncs[gActiveBattler] = Intro_ShowHealthbox; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1606,20 +1616,20 @@ static void LinkPartnerHandleDrawPartyStatusSummary(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleResources->bufferA[gActiveBattler][4], gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; if (gBattleResources->bufferA[gActiveBattler][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; - gBattlerControllerFuncs[gActiveBattler] = sub_814DE9C; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } -static void sub_814DE9C(void) +static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; LinkPartnerBufferExecCompleted(); } } @@ -1648,7 +1658,7 @@ static void LinkPartnerHandleSpriteInvisibility(void) static void LinkPartnerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 animationId = gBattleResources->bufferA[gActiveBattler][1]; u16 argument = gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8); @@ -1664,7 +1674,7 @@ static void LinkPartnerHandleBattleAnimation(void) static void LinkPartnerHandleLinkStandbyMsg(void) { - sub_81851A8(&gBattleResources->bufferA[gActiveBattler][2]); + RecordedBattle_RecordAllBattlerData(&gBattleResources->bufferA[gActiveBattler][2]); LinkPartnerBufferExecCompleted(); } @@ -1673,15 +1683,15 @@ static void LinkPartnerHandleResetActionMoveSelection(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd55(void) +static void LinkPartnerHandleEndLinkBattle(void) { - sub_81851A8(&gBattleResources->bufferA[gActiveBattler][4]); + RecordedBattle_RecordAllBattlerData(&gBattleResources->bufferA[gActiveBattler][4]); gBattleOutcome = gBattleResources->bufferA[gActiveBattler][1]; gSaveBlock2Ptr->frontier.disableRecordBattle = gBattleResources->bufferA[gActiveBattler][2]; FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkPartnerBufferExecCompleted(); - gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks; } static void LinkPartnerHandleBattleDebug(void) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 78765a3867..2698956d69 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" #include "battle_anim.h" #include "battle_arena.h" #include "battle_controllers.h" @@ -56,7 +56,7 @@ static void OpponentHandleMoveAnimation(void); static void OpponentHandlePrintString(void); static void OpponentHandlePrintSelectionString(void); static void OpponentHandleChooseAction(void); -static void OpponentHandleUnknownYesNoBox(void); +static void OpponentHandleYesNoBox(void); static void OpponentHandleChooseMove(void); static void OpponentHandleChooseItem(void); static void OpponentHandleChoosePokemon(void); @@ -74,12 +74,12 @@ static void OpponentHandleTwoReturnValues(void); static void OpponentHandleChosenMonReturnValue(void); static void OpponentHandleOneReturnValue(void); static void OpponentHandleOneReturnValue_Duplicate(void); -static void OpponentHandleCmd37(void); -static void OpponentHandleCmd38(void); -static void OpponentHandleCmd39(void); -static void OpponentHandleCmd40(void); +static void OpponentHandleClearUnkVar(void); +static void OpponentHandleSetUnkVar(void); +static void OpponentHandleClearUnkFlag(void); +static void OpponentHandleToggleUnkFlag(void); static void OpponentHandleHitAnimation(void); -static void OpponentHandleCmd42(void); +static void OpponentHandleCantSwitch(void); static void OpponentHandlePlaySE(void); static void OpponentHandlePlayFanfareOrBGM(void); static void OpponentHandleFaintingCry(void); @@ -92,88 +92,88 @@ static void OpponentHandleSpriteInvisibility(void); static void OpponentHandleBattleAnimation(void); static void OpponentHandleLinkStandbyMsg(void); static void OpponentHandleResetActionMoveSelection(void); -static void OpponentHandleCmd55(void); +static void OpponentHandleEndLinkBattle(void); static void OpponentHandleDebugMenu(void); static void OpponentCmdEnd(void); static void OpponentBufferRunCommand(void); static void OpponentBufferExecCompleted(void); -static void sub_805FC80(void); +static void SwitchIn_HandleSoundAndEnd(void); static u32 GetOpponentMonData(u8 monId, u8 *dst); static void SetOpponentMonData(u8 monId); -static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void OpponentDoMoveAnimation(void); -static void sub_806280C(struct Sprite *sprite); -static void sub_8062828(u8 taskId); -static void sub_8062A2C(void); +static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite); +static void Task_StartSendOutAnim(u8 taskId); +static void EndDrawPartyStatusSummary(void); static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - OpponentHandleGetMonData, - OpponentHandleGetRawMonData, - OpponentHandleSetMonData, - OpponentHandleSetRawMonData, - OpponentHandleLoadMonSprite, - OpponentHandleSwitchInAnim, - OpponentHandleReturnMonToBall, - OpponentHandleDrawTrainerPic, - OpponentHandleTrainerSlide, - OpponentHandleTrainerSlideBack, - OpponentHandleFaintAnimation, - OpponentHandlePaletteFade, - OpponentHandleSuccessBallThrowAnim, - OpponentHandleBallThrow, - OpponentHandlePause, - OpponentHandleMoveAnimation, - OpponentHandlePrintString, - OpponentHandlePrintSelectionString, - OpponentHandleChooseAction, - OpponentHandleUnknownYesNoBox, - OpponentHandleChooseMove, - OpponentHandleChooseItem, - OpponentHandleChoosePokemon, - OpponentHandleCmd23, - OpponentHandleHealthBarUpdate, - OpponentHandleExpUpdate, - OpponentHandleStatusIconUpdate, - OpponentHandleStatusAnimation, - OpponentHandleStatusXor, - OpponentHandleDataTransfer, - OpponentHandleDMA3Transfer, - OpponentHandlePlayBGM, - OpponentHandleCmd32, - OpponentHandleTwoReturnValues, - OpponentHandleChosenMonReturnValue, - OpponentHandleOneReturnValue, - OpponentHandleOneReturnValue_Duplicate, - OpponentHandleCmd37, - OpponentHandleCmd38, - OpponentHandleCmd39, - OpponentHandleCmd40, - OpponentHandleHitAnimation, - OpponentHandleCmd42, - OpponentHandlePlaySE, - OpponentHandlePlayFanfareOrBGM, - OpponentHandleFaintingCry, - OpponentHandleIntroSlide, - OpponentHandleIntroTrainerBallThrow, - OpponentHandleDrawPartyStatusSummary, - OpponentHandleHidePartyStatusSummary, - OpponentHandleEndBounceEffect, - OpponentHandleSpriteInvisibility, - OpponentHandleBattleAnimation, - OpponentHandleLinkStandbyMsg, - OpponentHandleResetActionMoveSelection, - OpponentHandleCmd55, - OpponentHandleDebugMenu, - OpponentCmdEnd + [CONTROLLER_GETMONDATA] = OpponentHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = OpponentHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = OpponentHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = OpponentHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = OpponentHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = OpponentHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = OpponentHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = OpponentHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = OpponentHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = OpponentHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = OpponentHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = OpponentHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = OpponentHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = OpponentHandleBallThrow, + [CONTROLLER_PAUSE] = OpponentHandlePause, + [CONTROLLER_MOVEANIMATION] = OpponentHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = OpponentHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = OpponentHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = OpponentHandleChooseAction, + [CONTROLLER_YESNOBOX] = OpponentHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = OpponentHandleChooseMove, + [CONTROLLER_OPENBAG] = OpponentHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = OpponentHandleChoosePokemon, + [CONTROLLER_23] = OpponentHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = OpponentHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = OpponentHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = OpponentHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = OpponentHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = OpponentHandleStatusXor, + [CONTROLLER_DATATRANSFER] = OpponentHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = OpponentHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = OpponentHandlePlayBGM, + [CONTROLLER_32] = OpponentHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = OpponentHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = OpponentHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = OpponentHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = OpponentHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = OpponentHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = OpponentHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = OpponentHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = OpponentHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = OpponentHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = OpponentHandleCantSwitch, + [CONTROLLER_PLAYSE] = OpponentHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = OpponentHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = OpponentHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = OpponentHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = OpponentHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = OpponentHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = OpponentHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = OpponentHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = OpponentHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = OpponentHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = OpponentHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = OpponentHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = OpponentHandleEndLinkBattle, + [CONTROLLER_DEBUGMENU] = OpponentHandleDebugMenu, + [CONTROLLER_TERMINATOR_NOP] = OpponentCmdEnd }; // unknown unused data -static const u8 sUnknown_0831C7AC[] = {0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20}; +static const u8 sUnused[] = {0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20}; -static void nullsub_26(void) +static void OpponentDummy(void) { } @@ -205,7 +205,7 @@ static void CompleteOnBankSpriteCallbackDummy2(void) OpponentBufferExecCompleted(); } -static void sub_805F240(void) +static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { @@ -216,40 +216,40 @@ static void sub_805F240(void) } } -static void sub_805F2A8(void) +static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; OpponentBufferExecCompleted(); } } -static void sub_805F2F0(void) +static void Intro_WaitForShinyAnimAndHealthbox(void) { - bool8 var = FALSE; - bool8 var2; + bool8 healthboxAnimDone = FALSE; + bool8 twoMons; if (!IsDoubleBattle() || ((IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI) && !BATTLE_TWO_VS_ONE_OPPONENT) || (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - var = TRUE; - var2 = FALSE; + healthboxAnimDone = TRUE; + twoMons = FALSE; } else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) - var = TRUE; - var2 = TRUE; + healthboxAnimDone = TRUE; + twoMons = TRUE; } - gUnknown_020244D8 = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler]; - gUnknown_020244DC = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK]; + gBattleControllerOpponentHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler]; + gBattleControllerOpponentFlankHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK]; - if (var) + if (healthboxAnimDone) { - if (var2 == TRUE) + if (twoMons == TRUE) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) @@ -258,8 +258,8 @@ static void sub_805F2F0(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } else return; @@ -271,8 +271,8 @@ static void sub_805F2F0(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } else return; @@ -283,15 +283,15 @@ static void sub_805F2F0(void) else return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerControllerFuncs[gActiveBattler] = sub_805F2A8; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; + gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; } } -static void sub_805F560(void) +static void Intro_TryShinyAnimShowHealthbox(void) { - bool32 sp = FALSE; - bool32 r10 = FALSE; + bool32 bgmRestored = FALSE; + bool32 battlerAnimsDone = FALSE; if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive @@ -308,27 +308,27 @@ static void sub_805F560(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (IsDoubleBattle() && (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) || BATTLE_TWO_VS_ONE_OPPONENT)) { UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = TRUE; } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -338,50 +338,50 @@ static void sub_805F560(void) else m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; - sp = TRUE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = TRUE; + bgmRestored = TRUE; } if (!IsDoubleBattle() || (IsDoubleBattle() && gBattleTypeFlags & BATTLE_TYPE_MULTI && !BATTLE_TWO_VS_ONE_OPPONENT)) { - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - r10 = TRUE; + battlerAnimsDone = TRUE; } } else { - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - r10 = TRUE; + battlerAnimsDone = TRUE; } } - if (sp && r10) + if (bgmRestored && battlerAnimsDone) { if (IsDoubleBattle() && (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) || BATTLE_TWO_VS_ONE_OPPONENT)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = FALSE; - gBattlerControllerFuncs[gActiveBattler] = sub_805F2F0; + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } -static void sub_805F994(void) +static void TryShinyAnimAfterMonAnim(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0 + if (gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); @@ -391,8 +391,8 @@ static void sub_805F994(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); OpponentBufferExecCompleted(); } } @@ -409,7 +409,7 @@ static void CompleteOnHealthbarDone(void) OpponentBufferExecCompleted(); } -static void sub_805FAC4(void) +static void HideHealthboxAfterMonFaint(void) { if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse) { @@ -418,7 +418,7 @@ static void sub_805FAC4(void) } } -static void sub_805FB08(void) +static void FreeMonSpriteAfterSwitchOutAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { @@ -455,21 +455,22 @@ static void DoHitAnimBlinkSpriteEffect(void) } } -static void sub_805FC10(void) +static void SwitchIn_ShowSubstitute(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerControllerFuncs[gActiveBattler] = sub_805FC80; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_HandleSoundAndEnd; } } -static void sub_805FC80(void) +static void SwitchIn_HandleSoundAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); OpponentBufferExecCompleted(); @@ -477,36 +478,36 @@ static void sub_805FC80(void) } } -static void sub_805FD00(void) +static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); - gBattlerControllerFuncs[gActiveBattler] = sub_805FC10; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowSubstitute; } } -static void sub_805FDF0(void) +static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerControllerFuncs[gActiveBattler] = sub_805FD00; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowHealthbox; } } @@ -1143,7 +1144,7 @@ static void OpponentHandleLoadMonSprite(void) GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = species; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -1151,25 +1152,25 @@ static void OpponentHandleLoadMonSprite(void) SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerControllerFuncs[gActiveBattler] = sub_805F994; + gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim; } static void OpponentHandleSwitchInAnim(void) { *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; gBattlerPartyIndexes[gActiveBattler] = gBattleResources->bufferA[gActiveBattler][1]; - sub_80613DC(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); - gBattlerControllerFuncs[gActiveBattler] = sub_805FDF0; + StartSendOutAnim(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim; } -static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit) +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) { u16 species; ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714); + gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); @@ -1181,8 +1182,8 @@ static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit) gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; - gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; - gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId; + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattleControllerData[battlerId]].data[2] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].oam.paletteNum = battlerId; @@ -1191,7 +1192,7 @@ static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void OpponentHandleReturnMonToBall(void) @@ -1226,12 +1227,14 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattlerControllerFuncs[gActiveBattler] = sub_805FB08; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim; } break; } } +#define sSpeedX data[0] + static void OpponentHandleDrawTrainerPic(void) { u32 trainerPicId; @@ -1261,7 +1264,7 @@ static void OpponentHandleDrawTrainerPic(void) } else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { - if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI)) { if (gActiveBattler == 1) trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); @@ -1308,11 +1311,11 @@ static void OpponentHandleDrawTrainerPic(void) (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } @@ -1345,7 +1348,7 @@ static void OpponentHandleTrainerSlide(void) } else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { - if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI)) { if (gActiveBattler == 1) trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); @@ -1377,25 +1380,27 @@ static void OpponentHandleTrainerSlide(void) SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 176, (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, 0x1E); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 96; + gSprites[gBattlerSpriteIds[gActiveBattler]].x += 32; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } +#undef sSpeedX + static void OpponentHandleTrainerSlideBack(void) { SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerControllerFuncs[gActiveBattler] = sub_805F240; + gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } static void OpponentHandleFaintAnimation(void) @@ -1413,7 +1418,7 @@ static void OpponentHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; - gBattlerControllerFuncs[gActiveBattler] = sub_805FAC4; + gBattlerControllerFuncs[gActiveBattler] = HideHealthboxAfterMonFaint; } } } @@ -1440,7 +1445,7 @@ static void OpponentHandlePause(void) static void OpponentHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u16 move = gBattleResources->bufferA[gActiveBattler][1] | (gBattleResources->bufferA[gActiveBattler][2] << 8); @@ -1482,7 +1487,7 @@ static void OpponentDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - sub_805EB9C(ST_OAM_AFFINE_OFF); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1491,7 +1496,7 @@ static void OpponentDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_805EB9C(ST_OAM_AFFINE_NORMAL); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1536,7 +1541,7 @@ static void OpponentHandleChooseAction(void) OpponentBufferExecCompleted(); } -static void OpponentHandleUnknownYesNoBox(void) +static void OpponentHandleYesNoBox(void) { OpponentBufferExecCompleted(); } @@ -1699,7 +1704,7 @@ static void OpponentHandleExpUpdate(void) static void OpponentHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 battlerId; @@ -1712,7 +1717,7 @@ static void OpponentHandleStatusIconUpdate(void) static void OpponentHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { InitAndLaunchChosenStatusAnimation(gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8) | (gBattleResources->bufferA[gActiveBattler][4] << 16) | (gBattleResources->bufferA[gActiveBattler][5] << 24)); @@ -1765,27 +1770,27 @@ static void OpponentHandleOneReturnValue_Duplicate(void) OpponentBufferExecCompleted(); } -static void OpponentHandleCmd37(void) +static void OpponentHandleClearUnkVar(void) { - gUnknown_02022D0C.field_0 = 0; + gUnusedControllerStruct.unk = 0; OpponentBufferExecCompleted(); } -static void OpponentHandleCmd38(void) +static void OpponentHandleSetUnkVar(void) { - gUnknown_02022D0C.field_0 = gBattleResources->bufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleResources->bufferA[gActiveBattler][1]; OpponentBufferExecCompleted(); } -static void OpponentHandleCmd39(void) +static void OpponentHandleClearUnkFlag(void) { - gUnknown_02022D0C.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; OpponentBufferExecCompleted(); } -static void OpponentHandleCmd40(void) +static void OpponentHandleToggleUnkFlag(void) { - gUnknown_02022D0C.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; OpponentBufferExecCompleted(); } @@ -1804,7 +1809,7 @@ static void OpponentHandleHitAnimation(void) } } -static void OpponentHandleCmd42(void) +static void OpponentHandleCantSwitch(void) { OpponentBufferExecCompleted(); } @@ -1854,36 +1859,35 @@ static void OpponentHandleIntroSlide(void) static void OpponentHandleIntroTrainerBallThrow(void) { - u8 paletteNum; u8 taskId; SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_806280C); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreeOpponentSprite); - taskId = CreateTask(sub_8062828, 5); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerControllerFuncs[gActiveBattler] = nullsub_26; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; + gBattlerControllerFuncs[gActiveBattler] = OpponentDummy; } -static void sub_806280C(struct Sprite *sprite) +static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite) { FreeTrainerFrontPicPalette(sprite->oam.affineParam); FreeSpriteOamMatrix(sprite); DestroySprite(sprite); } -static void sub_8062828(u8 taskId) +static void Task_StartSendOutAnim(u8 taskId) { u8 savedActiveBank = gActiveBattler; @@ -1891,23 +1895,23 @@ static void sub_8062828(u8 taskId) if ((!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) && !BATTLE_TWO_VS_ONE_OPPONENT) { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_80613DC(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); } else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)) { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_80613DC(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); } else { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_80613DC(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_80613DC(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerControllerFuncs[gActiveBattler] = sub_805F560; + gBattlerControllerFuncs[gActiveBattler] = Intro_TryShinyAnimShowHealthbox; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1936,20 +1940,20 @@ static void OpponentHandleDrawPartyStatusSummary(void) } gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleResources->bufferA[gActiveBattler][4], gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; if (gBattleResources->bufferA[gActiveBattler][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; - gBattlerControllerFuncs[gActiveBattler] = sub_8062A2C; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } -static void sub_8062A2C(void) +static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; OpponentBufferExecCompleted(); } } @@ -1978,7 +1982,7 @@ static void OpponentHandleSpriteInvisibility(void) static void OpponentHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 animationId = gBattleResources->bufferA[gActiveBattler][1]; u16 argument = gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8); @@ -2000,7 +2004,7 @@ static void OpponentHandleResetActionMoveSelection(void) OpponentBufferExecCompleted(); } -static void OpponentHandleCmd55(void) +static void OpponentHandleEndLinkBattle(void) { if (gBattleTypeFlags & BATTLE_TYPE_LINK && !(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 9392421058..841e303270 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -58,7 +58,7 @@ static void PlayerHandleMoveAnimation(void); static void PlayerHandlePrintString(void); static void PlayerHandlePrintSelectionString(void); static void PlayerHandleChooseAction(void); -static void PlayerHandleUnknownYesNoBox(void); +static void PlayerHandleYesNoBox(void); static void PlayerHandleChooseMove(void); static void PlayerHandleChooseItem(void); static void PlayerHandleChoosePokemon(void); @@ -76,12 +76,12 @@ static void PlayerHandleTwoReturnValues(void); static void PlayerHandleChosenMonReturnValue(void); static void PlayerHandleOneReturnValue(void); static void PlayerHandleOneReturnValue_Duplicate(void); -static void PlayerHandleCmd37(void); -static void PlayerHandleCmd38(void); -static void PlayerHandleCmd39(void); -static void PlayerHandleCmd40(void); +static void PlayerHandleClearUnkVar(void); +static void PlayerHandleSetUnkVar(void); +static void PlayerHandleClearUnkFlag(void); +static void PlayerHandleToggleUnkFlag(void); static void PlayerHandleHitAnimation(void); -static void PlayerHandleCmd42(void); +static void PlayerHandleCantSwitch(void); static void PlayerHandlePlaySE(void); static void PlayerHandlePlayFanfareOrBGM(void); static void PlayerHandleFaintingCry(void); @@ -94,7 +94,7 @@ static void PlayerHandleSpriteInvisibility(void); static void PlayerHandleBattleAnimation(void); static void PlayerHandleLinkStandbyMsg(void); static void PlayerHandleResetActionMoveSelection(void); -static void PlayerHandleCmd55(void); +static void PlayerHandleEndLinkBattle(void); static void PlayerHandleBattleDebug(void); static void PlayerCmdEnd(void); @@ -108,89 +108,89 @@ static void MoveSelectionDisplayPpString(void); static void MoveSelectionDisplayMoveType(void); static void MoveSelectionDisplayMoveNames(void); static void HandleMoveSwitching(void); -static void sub_8058FC0(void); +static void SwitchIn_HandleSoundAndEnd(void); static void WaitForMonSelection(void); static void CompleteWhenChoseItem(void); static void Task_LaunchLvlUpAnim(u8 taskId); static void Task_PrepareToGiveExpWithExpBar(u8 taskId); static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId); -static void sub_8059400(u8 taskId); +static void Task_GiveExpWithExpBar(u8 taskId); static void Task_UpdateLvlInHealthbox(u8 taskId); static void PrintLinkStandbyMsg(void); static u32 CopyPlayerMonData(u8 monId, u8 *dst); static void SetPlayerMonData(u8 monId); -static void sub_805B258(u8 battlerId, bool8 dontClearSubstituteBit); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void PlayerDoMoveAnimation(void); -static void task05_08033660(u8 taskId); -static void sub_805CE38(void); +static void Task_StartSendOutAnim(u8 taskId); +static void EndDrawPartyStatusSummary(void); static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - PlayerHandleGetMonData, - PlayerHandleGetRawMonData, - PlayerHandleSetMonData, - PlayerHandleSetRawMonData, - PlayerHandleLoadMonSprite, - PlayerHandleSwitchInAnim, - PlayerHandleReturnMonToBall, - PlayerHandleDrawTrainerPic, - PlayerHandleTrainerSlide, - PlayerHandleTrainerSlideBack, - PlayerHandleFaintAnimation, - PlayerHandlePaletteFade, - PlayerHandleSuccessBallThrowAnim, - PlayerHandleBallThrowAnim, - PlayerHandlePause, - PlayerHandleMoveAnimation, - PlayerHandlePrintString, - PlayerHandlePrintSelectionString, - PlayerHandleChooseAction, - PlayerHandleUnknownYesNoBox, - PlayerHandleChooseMove, - PlayerHandleChooseItem, - PlayerHandleChoosePokemon, - PlayerHandleCmd23, - PlayerHandleHealthBarUpdate, - PlayerHandleExpUpdate, - PlayerHandleStatusIconUpdate, - PlayerHandleStatusAnimation, - PlayerHandleStatusXor, - PlayerHandleDataTransfer, - PlayerHandleDMA3Transfer, - PlayerHandlePlayBGM, - PlayerHandleCmd32, - PlayerHandleTwoReturnValues, - PlayerHandleChosenMonReturnValue, - PlayerHandleOneReturnValue, - PlayerHandleOneReturnValue_Duplicate, - PlayerHandleCmd37, - PlayerHandleCmd38, - PlayerHandleCmd39, - PlayerHandleCmd40, - PlayerHandleHitAnimation, - PlayerHandleCmd42, - PlayerHandlePlaySE, - PlayerHandlePlayFanfareOrBGM, - PlayerHandleFaintingCry, - PlayerHandleIntroSlide, - PlayerHandleIntroTrainerBallThrow, - PlayerHandleDrawPartyStatusSummary, - PlayerHandleHidePartyStatusSummary, - PlayerHandleEndBounceEffect, - PlayerHandleSpriteInvisibility, - PlayerHandleBattleAnimation, - PlayerHandleLinkStandbyMsg, - PlayerHandleResetActionMoveSelection, - PlayerHandleCmd55, - PlayerHandleBattleDebug, - PlayerCmdEnd + [CONTROLLER_GETMONDATA] = PlayerHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = PlayerHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = PlayerHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = PlayerHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = PlayerHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = PlayerHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = PlayerHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = PlayerHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = PlayerHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = PlayerHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = PlayerHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = PlayerHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = PlayerHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = PlayerHandleBallThrowAnim, + [CONTROLLER_PAUSE] = PlayerHandlePause, + [CONTROLLER_MOVEANIMATION] = PlayerHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = PlayerHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = PlayerHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = PlayerHandleChooseAction, + [CONTROLLER_YESNOBOX] = PlayerHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = PlayerHandleChooseMove, + [CONTROLLER_OPENBAG] = PlayerHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = PlayerHandleChoosePokemon, + [CONTROLLER_23] = PlayerHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = PlayerHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = PlayerHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = PlayerHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = PlayerHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = PlayerHandleStatusXor, + [CONTROLLER_DATATRANSFER] = PlayerHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = PlayerHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = PlayerHandlePlayBGM, + [CONTROLLER_32] = PlayerHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = PlayerHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = PlayerHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = PlayerHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = PlayerHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = PlayerHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = PlayerHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = PlayerHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = PlayerHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = PlayerHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = PlayerHandleCantSwitch, + [CONTROLLER_PLAYSE] = PlayerHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = PlayerHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = PlayerHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = PlayerHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = PlayerHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = PlayerHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = PlayerHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = PlayerHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = PlayerHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = PlayerHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = PlayerHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = PlayerHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = PlayerHandleEndLinkBattle, + [CONTROLLER_DEBUGMENU] = PlayerHandleBattleDebug, + [CONTROLLER_TERMINATOR_NOP] = PlayerCmdEnd }; // unknown unused data -static const u8 sUnknown_0831C5FC[] = {0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58}; +static const u8 sUnused[] = {0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58}; -void nullsub_21(void) +void BattleControllerDummy(void) { } @@ -230,7 +230,7 @@ static void PlayerBufferRunCommand(void) static void CompleteOnBankSpritePosX_0(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0) PlayerBufferExecCompleted(); } @@ -338,7 +338,7 @@ static void HandleInputChooseAction(void) } } -static void sub_80577F0(void) // unused +static void UnusedEndBounceEffect(void) { EndBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX); EndBounceEffect(gActiveBattler, BOUNCE_MON); @@ -348,7 +348,7 @@ static void sub_80577F0(void) // unused static void HandleInputChooseTarget(void) { s32 i; - static const u8 identities[4] = {B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT}; + static const u8 identities[MAX_BATTLERS_COUNT] = {B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT}; u16 move = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler]); DoBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX, 15, 1); @@ -407,7 +407,7 @@ static void HandleInputChooseTarget(void) do { if (--i < 0) - i = 3; + i = MAX_BATTLERS_COUNT - 1; gMultiUsePlayerCursor = GetBattlerAtPosition(identities[i]); } while (gMultiUsePlayerCursor == gBattlersCount); @@ -711,7 +711,7 @@ static void HandleInputChooseMove(void) } } -u32 sub_8057FBC(void) // unused +static u32 HandleMoveInputUnused(void) { u32 var = 0; @@ -724,7 +724,7 @@ u32 sub_8057FBC(void) // unused { PlaySE(SE_SELECT); gBattle_BG0_X = 0; - gBattle_BG0_Y = 0x140; + gBattle_BG0_Y = DISPLAY_HEIGHT * 2; var = 0xFF; } if (JOY_NEW(DPAD_LEFT) && gMoveSelectionCursor[gActiveBattler] & 1) @@ -945,7 +945,7 @@ static void HandleMoveSwitching(void) } } -static void sub_80586F8(void) +static void SetLinkBattleEndCallbacks(void) { if (gWirelessCommType == 0) { @@ -954,7 +954,7 @@ static void sub_80586F8(void) m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; - SetMainCallback2(sub_8038D64); + SetMainCallback2(CB2_InitEndLinkBattle); if (gBattleOutcome == B_OUTCOME_WON) TryPutLinkBattleTvShowOnAir(); FreeAllWindowBuffers(); @@ -967,7 +967,7 @@ static void sub_80586F8(void) m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; - SetMainCallback2(sub_8038D64); + SetMainCallback2(CB2_InitEndLinkBattle); if (gBattleOutcome == B_OUTCOME_WON) TryPutLinkBattleTvShowOnAir(); FreeAllWindowBuffers(); @@ -975,7 +975,8 @@ static void sub_80586F8(void) } } -void sub_80587B0(void) +// Despite handling link battles separately, this is only ever used by link battles +void SetBattleEndCallbacks(void) { if (!gPaletteFade.active) { @@ -988,7 +989,7 @@ void sub_80587B0(void) else SetLinkStandbyCallback(); - gBattlerControllerFuncs[gActiveBattler] = sub_80586F8; + gBattlerControllerFuncs[gActiveBattler] = SetLinkBattleEndCallbacks; } } else @@ -1013,161 +1014,174 @@ static void CompleteOnBankSpriteCallbackDummy2(void) PlayerBufferExecCompleted(); } -static void sub_80588B4(void) +static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - nullsub_25(gSaveBlock2Ptr->playerGender); + BattleGfxSfxDummy3(gSaveBlock2Ptr->playerGender); FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); PlayerBufferExecCompleted(); } } -static void sub_8058924(void) +static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; PlayerBufferExecCompleted(); } } -static void sub_805896C(void) +static void Intro_WaitForShinyAnimAndHealthbox(void) { - bool8 var = FALSE; + bool8 healthboxAnimDone = FALSE; + // Check if healthbox has finished sliding in if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - var = TRUE; + healthboxAnimDone = TRUE; } else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) - var = TRUE; + healthboxAnimDone = TRUE; } - if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim + // If healthbox and shiny anim are done + if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { + // Reset shiny anim (even if it didn't occur) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerControllerFuncs[gActiveBattler] = sub_8058924; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; + gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; } } -static void sub_8058B40(void) +static void Intro_TryShinyAnimShowHealthbox(void) { - bool32 r9 = FALSE; - bool32 r8 = FALSE; + bool32 bgmRestored = FALSE; + bool32 battlerAnimsDone = FALSE; + // Start shiny animation if applicable for 1st pokemon if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); + // Start shiny animation if applicable for 2nd pokemon if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + // Show healthbox after ball anim + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = TRUE; } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 + // Restore bgm after cry has played and healthbox anim is started + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) m4aMPlayContinue(&gMPlayInfo_BGM); else m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; - r9 = TRUE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = TRUE; + bgmRestored = TRUE; } + // Wait for battler anims if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - r8 = TRUE; + battlerAnimsDone = TRUE; } } else { - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - r8 = TRUE; + battlerAnimsDone = TRUE; } } - if (r9 && r8) + // Clean up + if (bgmRestored && battlerAnimsDone) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); - gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = FALSE; - gBattlerControllerFuncs[gActiveBattler] = sub_805896C; + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } -static void sub_8058EDC(void) +static void SwitchIn_CleanShinyAnimShowSubstitute(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { CopyBattleSpriteInvisibility(gActiveBattler); + + // Reset shiny anim (even if it didn't occur) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); + // Check if Substitute should be shown if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerControllerFuncs[gActiveBattler] = sub_8058FC0; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_HandleSoundAndEnd; } } -static void sub_8058FC0(void) +static void SwitchIn_HandleSoundAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) @@ -1178,24 +1192,26 @@ static void sub_8058FC0(void) } } -static void sub_805902C(void) +static void SwitchIn_TryShinyAnimShowHealthbox(void) { + // Start shiny animation if applicable if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + // Wait for ball anim, then show healthbox + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattlerControllerFuncs[gActiveBattler] = sub_8058EDC; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_CleanShinyAnimShowSubstitute; } } -void c3_0802FDF4(u8 taskId) +void Task_PlayerController_RestoreBgmAfterCry(u8 taskId) { if (!IsCryPlayingOrClearCrySongs()) { @@ -1227,16 +1243,22 @@ static void CompleteOnInactiveTextPrinter(void) PlayerBufferExecCompleted(); } -#define tExpTask_monId data[0] -#define tExpTask_gainedExp data[1] -#define tExpTask_battler data[2] -#define tExpTask_frames data[10] +#define tExpTask_monId data[0] +#define tExpTask_battler data[2] +#define tExpTask_gainedExp_1 data[3] +#define tExpTask_gainedExp_2 data[4] // Stored as two half-words containing a word. +#define tExpTask_frames data[10] + +static s32 GetTaskExpValue(u8 taskId) +{ + return (u16)(gTasks[taskId].tExpTask_gainedExp_1) | (gTasks[taskId].tExpTask_gainedExp_2 << 16); +} static void Task_GiveExpToMon(u8 taskId) { u32 monId = (u8)(gTasks[taskId].tExpTask_monId); u8 battlerId = gTasks[taskId].tExpTask_battler; - s16 gainedExp = gTasks[taskId].tExpTask_gainedExp; + s32 gainedExp = GetTaskExpValue(taskId); if (IsDoubleBattle() == TRUE || monId != gBattlerPartyIndexes[battlerId]) // Give exp without moving the expbar. { @@ -1281,7 +1303,7 @@ static void Task_GiveExpToMon(u8 taskId) static void Task_PrepareToGiveExpWithExpBar(u8 taskId) { u8 monIndex = gTasks[taskId].tExpTask_monId; - s32 gainedExp = gTasks[taskId].tExpTask_gainedExp; + s32 gainedExp = GetTaskExpValue(taskId); u8 battlerId = gTasks[taskId].tExpTask_battler; struct Pokemon *mon = &gPlayerParty[monIndex]; u8 level = GetMonData(mon, MON_DATA_LEVEL); @@ -1294,10 +1316,10 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId) expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp; SetBattleBarStruct(battlerId, gHealthboxSpriteIds[battlerId], expToNextLvl, exp, -gainedExp); PlaySE(SE_EXP); - gTasks[taskId].func = sub_8059400; + gTasks[taskId].func = Task_GiveExpWithExpBar; } -static void sub_8059400(u8 taskId) +static void Task_GiveExpWithExpBar(u8 taskId) { if (gTasks[taskId].tExpTask_frames < 13) { @@ -1306,9 +1328,9 @@ static void sub_8059400(u8 taskId) else { u8 monId = gTasks[taskId].tExpTask_monId; - s16 gainedExp = gTasks[taskId].tExpTask_gainedExp; + s32 gainedExp = GetTaskExpValue(taskId); u8 battlerId = gTasks[taskId].tExpTask_battler; - s16 newExpPoints; + s32 newExpPoints; newExpPoints = MoveBattleBar(battlerId, gHealthboxSpriteIds[battlerId], EXP_BAR, 0); SetHealthboxSpriteVisible(gHealthboxSpriteIds[battlerId]); @@ -1392,13 +1414,13 @@ static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId) DestroyTask(taskId); } -static void sub_80596A8(void) +static void FreeMonSpriteAfterFaintAnim(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].y + gSprites[gBattlerSpriteIds[gActiveBattler]].y2 > DISPLAY_HEIGHT) { u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - nullsub_24(species); + BattleGfxSfxDummy2(species); FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); @@ -1406,7 +1428,7 @@ static void sub_80596A8(void) } } -static void sub_8059744(void) +static void FreeMonSpriteAfterSwitchOutAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { @@ -1430,8 +1452,8 @@ static void OpenPartyMenuToChooseMon(void) u8 caseId; gBattlerControllerFuncs[gActiveBattler] = WaitForMonSelection; - caseId = gTasks[gUnknown_03005D7C[gActiveBattler]].data[0]; - DestroyTask(gUnknown_03005D7C[gActiveBattler]); + caseId = gTasks[gBattleControllerData[gActiveBattler]].data[0]; + DestroyTask(gBattleControllerData[gActiveBattler]); FreeAllWindowBuffers(); OpenPartyMenuInBattle(caseId); } @@ -1458,7 +1480,7 @@ static void OpenBagAndChooseItem(void) if (!gPaletteFade.active) { gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem; - nullsub_35(); + ReshowBattleScreenDummy(); FreeAllWindowBuffers(); CB2_BagMenuFromBattle(); } @@ -1498,7 +1520,7 @@ static void DoHitAnimBlinkSpriteEffect(void) } } -static void PlayerHandleUnknownYesNoInput(void) +static void PlayerHandleYesNoInput(void) { if (JOY_NEW(DPAD_UP) && gMultiUsePlayerCursor != 0) { @@ -2268,18 +2290,18 @@ static void PlayerHandleSwitchInAnim(void) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); gActionSelectionCursor[gActiveBattler] = 0; gMoveSelectionCursor[gActiveBattler] = 0; - sub_805B258(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); - gBattlerControllerFuncs[gActiveBattler] = sub_805902C; + StartSendOutAnim(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnimShowHealthbox; } -static void sub_805B258(u8 battlerId, bool8 dontClearSubstituteBit) +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) { u16 species; ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714); + gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite( @@ -2288,8 +2310,8 @@ static void sub_805B258(u8 battlerId, bool8 dontClearSubstituteBit) GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); - gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; - gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId; + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattleControllerData[battlerId]].data[2] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; @@ -2300,7 +2322,7 @@ static void sub_805B258(u8 battlerId, bool8 dontClearSubstituteBit) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void PlayerHandleReturnMonToBall(void) @@ -2334,12 +2356,14 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerControllerFuncs[gActiveBattler] = sub_8059744; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim; } break; } } +#define sSpeedX data[0] + // In emerald it's possible to have a tag battle in the battle frontier facilities with AI // which use the front sprite for both the player and the partner as opposed to any other battles (including the one with Steven) // that use an animated back pic. @@ -2403,10 +2427,10 @@ static void PlayerHandleDrawTrainerPic(void) gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].y2 = 48; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = ST_OAM_AFFINE_OFF; gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1; } @@ -2418,9 +2442,9 @@ static void PlayerHandleDrawTrainerPic(void) gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; } gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; @@ -2457,25 +2481,30 @@ static void PlayerHandleTrainerSlide(void) gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -96; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } +#undef sSpeedX + static void PlayerHandleTrainerSlideBack(void) { SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); - gBattlerControllerFuncs[gActiveBattler] = sub_80588B4; + gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } +#define sSpeedX data[1] +#define sSpeedY data[2] + static void PlayerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) @@ -2491,17 +2520,20 @@ static void PlayerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); - gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; - gBattlerControllerFuncs[gActiveBattler] = sub_80596A8; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedY = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintSlideAnim; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterFaintAnim; } } } +#undef sSpeedX +#undef sSpeedY + static void PlayerHandlePaletteFade(void) { - BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 2, 0, 16, RGB_BLACK); PlayerBufferExecCompleted(); } @@ -2533,18 +2565,17 @@ static void PlayerHandleBallThrowAnim(void) static void PlayerHandlePause(void) { - u8 var = gBattleResources->bufferA[gActiveBattler][1]; + u8 timer = gBattleResources->bufferA[gActiveBattler][1]; - // WTF is this?? - while (var != 0) - var--; + while (timer != 0) + timer--; PlayerBufferExecCompleted(); } static void PlayerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u16 move = gBattleResources->bufferA[gActiveBattler][1] | (gBattleResources->bufferA[gActiveBattler][2] << 8); @@ -2587,7 +2618,7 @@ static void PlayerDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - sub_805EB9C(ST_OAM_AFFINE_OFF); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -2596,7 +2627,7 @@ static void PlayerDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_805EB9C(ST_OAM_AFFINE_NORMAL); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -2644,7 +2675,7 @@ static void HandleChooseActionAfterDma3(void) if (!IsDma3ManagerBusyWithBgCopy()) { gBattle_BG0_X = 0; - gBattle_BG0_Y = 160; + gBattle_BG0_Y = DISPLAY_HEIGHT; gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseAction; } } @@ -2665,7 +2696,7 @@ static void PlayerHandleChooseAction(void) BattlePutTextOnWindow(gDisplayedStringBattle, 1); } -static void PlayerHandleUnknownYesNoBox(void) +static void PlayerHandleYesNoBox(void) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { @@ -2673,7 +2704,7 @@ static void PlayerHandleUnknownYesNoBox(void) BattlePutTextOnWindow(gText_BattleYesNoChoice, 12); gMultiUsePlayerCursor = 1; BattleCreateYesNoCursorAt(1); - gBattlerControllerFuncs[gActiveBattler] = PlayerHandleUnknownYesNoInput; + gBattlerControllerFuncs[gActiveBattler] = PlayerHandleYesNoInput; } else { @@ -2686,7 +2717,7 @@ static void HandleChooseMoveAfterDma3(void) if (!IsDma3ManagerBusyWithBgCopy()) { gBattle_BG0_X = 0; - gBattle_BG0_Y = 320; + gBattle_BG0_Y = DISPLAY_HEIGHT * 2; gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; } } @@ -2736,7 +2767,7 @@ static void PlayerHandleChooseItem(void) { s32 i; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem; gBattlerInMenuId = gActiveBattler; @@ -2758,10 +2789,10 @@ static void PlayerHandleChoosePokemon(void) } else { - gUnknown_03005D7C[gActiveBattler] = CreateTask(TaskDummy, 0xFF); - gTasks[gUnknown_03005D7C[gActiveBattler]].data[0] = gBattleResources->bufferA[gActiveBattler][1] & 0xF; + gBattleControllerData[gActiveBattler] = CreateTask(TaskDummy, 0xFF); + gTasks[gBattleControllerData[gActiveBattler]].data[0] = gBattleResources->bufferA[gActiveBattler][1] & 0xF; *(&gBattleStruct->battlerPreventingSwitchout) = gBattleResources->bufferA[gActiveBattler][1] >> 4; - *(&gBattleStruct->field_8B) = gBattleResources->bufferA[gActiveBattler][2]; + *(&gBattleStruct->prevSelectedPartySlot) = gBattleResources->bufferA[gActiveBattler][2]; *(&gBattleStruct->abilityPreventingSwitchout) = (gBattleResources->bufferA[gActiveBattler][3] & 0xFF) | (gBattleResources->bufferA[gActiveBattler][7] << 8); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon; @@ -2772,7 +2803,7 @@ static void PlayerHandleChoosePokemon(void) static void PlayerHandleCmd23(void) { BattleStopLowHpSound(); - BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 2, 0, 16, RGB_BLACK); PlayerBufferExecCompleted(); } @@ -2808,6 +2839,7 @@ static void PlayerHandleHealthBarUpdate(void) static void PlayerHandleExpUpdate(void) { u8 monId = gBattleResources->bufferA[gActiveBattler][1]; + s32 taskId, expPointsToGive; if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_LEVEL) { @@ -2815,28 +2847,27 @@ static void PlayerHandleExpUpdate(void) } else { - s16 expPointsToGive; - u8 taskId; - LoadBattleBarGfx(1); GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); // Unused return value. - expPointsToGive = T1_READ_16(&gBattleResources->bufferA[gActiveBattler][2]); + expPointsToGive = T1_READ_32(&gBattleResources->bufferA[gActiveBattler][2]); taskId = CreateTask(Task_GiveExpToMon, 10); gTasks[taskId].tExpTask_monId = monId; - gTasks[taskId].tExpTask_gainedExp = expPointsToGive; + gTasks[taskId].tExpTask_gainedExp_1 = expPointsToGive; + gTasks[taskId].tExpTask_gainedExp_2 = expPointsToGive >> 16; gTasks[taskId].tExpTask_battler = gActiveBattler; - gBattlerControllerFuncs[gActiveBattler] = nullsub_21; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } } #undef tExpTask_monId -#undef tExpTask_gainedExp #undef tExpTask_battler +#undef tExpTask_gainedExp_1 +#undef tExpTask_gainedExp_2 #undef tExpTask_frames static void PlayerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 battlerId; @@ -2849,7 +2880,7 @@ static void PlayerHandleStatusIconUpdate(void) static void PlayerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { InitAndLaunchChosenStatusAnimation(gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8) | (gBattleResources->bufferA[gActiveBattler][4] << 16) | (gBattleResources->bufferA[gActiveBattler][5] << 24)); @@ -2932,27 +2963,27 @@ static void PlayerHandleOneReturnValue_Duplicate(void) PlayerBufferExecCompleted(); } -static void PlayerHandleCmd37(void) +static void PlayerHandleClearUnkVar(void) { - gUnknown_02022D0C.field_0 = 0; + gUnusedControllerStruct.unk = 0; PlayerBufferExecCompleted(); } -static void PlayerHandleCmd38(void) +static void PlayerHandleSetUnkVar(void) { - gUnknown_02022D0C.field_0 = gBattleResources->bufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleResources->bufferA[gActiveBattler][1]; PlayerBufferExecCompleted(); } -static void PlayerHandleCmd39(void) +static void PlayerHandleClearUnkFlag(void) { - gUnknown_02022D0C.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; PlayerBufferExecCompleted(); } -static void PlayerHandleCmd40(void) +static void PlayerHandleToggleUnkFlag(void) { - gUnknown_02022D0C.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; PlayerBufferExecCompleted(); } @@ -2971,7 +3002,7 @@ static void PlayerHandleHitAnimation(void) } } -static void PlayerHandleCmd42(void) +static void PlayerHandleCantSwitch(void) { PlayerBufferExecCompleted(); } @@ -3019,6 +3050,12 @@ static void PlayerHandleIntroSlide(void) PlayerBufferExecCompleted(); } +// Task data for Task_StartSendOutAnim +#define tBattlerId data[0] +#define tStartTimer data[1] + +#define sBattlerId data[5] + static void PlayerHandleIntroTrainerBallThrow(void) { u8 paletteNum; @@ -3028,70 +3065,79 @@ static void PlayerHandleIntroTrainerBallThrow(void) gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].sBattlerId = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; - taskId = CreateTask(task05_08033660, 5); - gTasks[taskId].data[0] = gActiveBattler; + taskId = CreateTask(Task_StartSendOutAnim, 5); + gTasks[taskId].tBattlerId = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerControllerFuncs[gActiveBattler] = nullsub_21; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } -void sub_805CC00(struct Sprite *sprite) +void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite) { - u8 battlerId = sprite->data[5]; + u8 battlerId = sprite->sBattlerId; + // Free player trainer sprite FreeSpriteOamMatrix(sprite); FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); DestroySprite(sprite); + + // Load mon sprite BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId); StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerId]], 0); } -static void task05_08033660(u8 taskId) +#undef sBattlerId + +// Send out at start of battle +static void Task_StartSendOutAnim(u8 taskId) { - if (gTasks[taskId].data[1] < 31) + if (gTasks[taskId].tStartTimer < 31) { - gTasks[taskId].data[1]++; + gTasks[taskId].tStartTimer++; } else { u8 savedActiveBattler = gActiveBattler; - gActiveBattler = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].tBattlerId; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_805B258(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); } else { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_805B258(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - sub_805B258(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerControllerFuncs[gActiveBattler] = sub_8058B40; + gBattlerControllerFuncs[gActiveBattler] = Intro_TryShinyAnimShowHealthbox; gActiveBattler = savedActiveBattler; DestroyTask(taskId); } } +#undef tBattlerId +#undef tStartTimer + static void PlayerHandleDrawPartyStatusSummary(void) { if (gBattleResources->bufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) @@ -3102,20 +3148,21 @@ static void PlayerHandleDrawPartyStatusSummary(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleResources->bufferA[gActiveBattler][4], gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; + // If intro, skip the delay after drawing if (gBattleResources->bufferA[gActiveBattler][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; - gBattlerControllerFuncs[gActiveBattler] = sub_805CE38; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } -static void sub_805CE38(void) +static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; PlayerBufferExecCompleted(); } } @@ -3146,7 +3193,7 @@ static void PlayerHandleSpriteInvisibility(void) static void PlayerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 animationId = gBattleResources->bufferA[gActiveBattler][1]; u16 argument = gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8); @@ -3162,7 +3209,7 @@ static void PlayerHandleBattleAnimation(void) static void PlayerHandleLinkStandbyMsg(void) { - sub_81851A8(&gBattleResources->bufferA[gActiveBattler][2]); + RecordedBattle_RecordAllBattlerData(&gBattleResources->bufferA[gActiveBattler][2]); switch (gBattleResources->bufferA[gActiveBattler][1]) { case 0: @@ -3197,15 +3244,15 @@ static void PlayerHandleResetActionMoveSelection(void) PlayerBufferExecCompleted(); } -static void PlayerHandleCmd55(void) +static void PlayerHandleEndLinkBattle(void) { - sub_81851A8(&gBattleResources->bufferA[gActiveBattler][4]); + RecordedBattle_RecordAllBattlerData(&gBattleResources->bufferA[gActiveBattler][4]); gBattleOutcome = gBattleResources->bufferA[gActiveBattler][1]; gSaveBlock2Ptr->frontier.disableRecordBattle = gBattleResources->bufferA[gActiveBattler][2]; FadeOutMapMusic(5); BeginFastPaletteFade(3); PlayerBufferExecCompleted(); - gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks; } static void WaitForDebug(void) diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 06a73beab1..f0540e65f5 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" #include "battle_anim.h" #include "battle_controllers.h" #include "battle_message.h" @@ -47,7 +47,7 @@ static void PlayerPartnerHandleMoveAnimation(void); static void PlayerPartnerHandlePrintString(void); static void PlayerPartnerHandlePrintSelectionString(void); static void PlayerPartnerHandleChooseAction(void); -static void PlayerPartnerHandleUnknownYesNoBox(void); +static void PlayerPartnerHandleYesNoBox(void); static void PlayerPartnerHandleChooseMove(void); static void PlayerPartnerHandleChooseItem(void); static void PlayerPartnerHandleChoosePokemon(void); @@ -65,12 +65,12 @@ static void PlayerPartnerHandleTwoReturnValues(void); static void PlayerPartnerHandleChosenMonReturnValue(void); static void PlayerPartnerHandleOneReturnValue(void); static void PlayerPartnerHandleOneReturnValue_Duplicate(void); -static void PlayerPartnerHandleCmd37(void); -static void PlayerPartnerHandleCmd38(void); -static void PlayerPartnerHandleCmd39(void); -static void PlayerPartnerHandleCmd40(void); +static void PlayerPartnerHandleClearUnkVar(void); +static void PlayerPartnerHandleSetUnkVar(void); +static void PlayerPartnerHandleClearUnkFlag(void); +static void PlayerPartnerHandleToggleUnkFlag(void); static void PlayerPartnerHandleHitAnimation(void); -static void PlayerPartnerHandleCmd42(void); +static void PlayerPartnerHandleCantSwitch(void); static void PlayerPartnerHandlePlaySE(void); static void PlayerPartnerHandlePlayFanfareOrBGM(void); static void PlayerPartnerHandleFaintingCry(void); @@ -83,91 +83,90 @@ static void PlayerPartnerHandleSpriteInvisibility(void); static void PlayerPartnerHandleBattleAnimation(void); static void PlayerPartnerHandleLinkStandbyMsg(void); static void PlayerPartnerHandleResetActionMoveSelection(void); -static void PlayerPartnerHandleCmd55(void); +static void PlayerPartnerHandleEndLinkBattle(void); static void PlayerPartnerHandleBattleDebug(void); static void PlayerPartnerCmdEnd(void); static void PlayerPartnerBufferRunCommand(void); static void PlayerPartnerBufferExecCompleted(void); -static void sub_81BB628(u8 taskId); +static void Task_LaunchLvlUpAnim(u8 taskId); static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId); static void Task_PrepareToGiveExpWithExpBar(u8 taskId); -static void sub_81BB4E4(u8 taskId); -static void sub_81BB628(u8 taskId); -static void sub_81BB688(u8 taskId); -static void sub_81BB9A0(void); +static void Task_GiveExpWithExpBar(u8 taskId); +static void Task_UpdateLvlInHealthbox(u8 taskId); +static void SwitchIn_WaitAndEnd(void); static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst); static void SetPlayerPartnerMonData(u8 monId); -static void sub_81BD0E4(u8 battlerId, bool8 dontClearSubstituteBit); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void PlayerPartnerDoMoveAnimation(void); -static void sub_81BE2C8(u8 taskId); -static void sub_81BE498(void); +static void Task_StartSendOutAnim(u8 taskId); +static void EndDrawPartyStatusSummary(void); static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - PlayerPartnerHandleGetMonData, - PlayerPartnerHandleGetRawMonData, - PlayerPartnerHandleSetMonData, - PlayerPartnerHandleSetRawMonData, - PlayerPartnerHandleLoadMonSprite, - PlayerPartnerHandleSwitchInAnim, - PlayerPartnerHandleReturnMonToBall, - PlayerPartnerHandleDrawTrainerPic, - PlayerPartnerHandleTrainerSlide, - PlayerPartnerHandleTrainerSlideBack, - PlayerPartnerHandleFaintAnimation, - PlayerPartnerHandlePaletteFade, - PlayerPartnerHandleSuccessBallThrowAnim, - PlayerPartnerHandleBallThrowAnim, - PlayerPartnerHandlePause, - PlayerPartnerHandleMoveAnimation, - PlayerPartnerHandlePrintString, - PlayerPartnerHandlePrintSelectionString, - PlayerPartnerHandleChooseAction, - PlayerPartnerHandleUnknownYesNoBox, - PlayerPartnerHandleChooseMove, - PlayerPartnerHandleChooseItem, - PlayerPartnerHandleChoosePokemon, - PlayerPartnerHandleCmd23, - PlayerPartnerHandleHealthBarUpdate, - PlayerPartnerHandleExpUpdate, - PlayerPartnerHandleStatusIconUpdate, - PlayerPartnerHandleStatusAnimation, - PlayerPartnerHandleStatusXor, - PlayerPartnerHandleDataTransfer, - PlayerPartnerHandleDMA3Transfer, - PlayerPartnerHandlePlayBGM, - PlayerPartnerHandleCmd32, - PlayerPartnerHandleTwoReturnValues, - PlayerPartnerHandleChosenMonReturnValue, - PlayerPartnerHandleOneReturnValue, - PlayerPartnerHandleOneReturnValue_Duplicate, - PlayerPartnerHandleCmd37, - PlayerPartnerHandleCmd38, - PlayerPartnerHandleCmd39, - PlayerPartnerHandleCmd40, - PlayerPartnerHandleHitAnimation, - PlayerPartnerHandleCmd42, - PlayerPartnerHandlePlaySE, - PlayerPartnerHandlePlayFanfareOrBGM, - PlayerPartnerHandleFaintingCry, - PlayerPartnerHandleIntroSlide, - PlayerPartnerHandleIntroTrainerBallThrow, - PlayerPartnerHandleDrawPartyStatusSummary, - PlayerPartnerHandleHidePartyStatusSummary, - PlayerPartnerHandleEndBounceEffect, - PlayerPartnerHandleSpriteInvisibility, - PlayerPartnerHandleBattleAnimation, - PlayerPartnerHandleLinkStandbyMsg, - PlayerPartnerHandleResetActionMoveSelection, - PlayerPartnerHandleCmd55, - PlayerPartnerHandleBattleDebug, - PlayerPartnerCmdEnd + [CONTROLLER_GETMONDATA] = PlayerPartnerHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = PlayerPartnerHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = PlayerPartnerHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = PlayerPartnerHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = PlayerPartnerHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = PlayerPartnerHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = PlayerPartnerHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = PlayerPartnerHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = PlayerPartnerHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = PlayerPartnerHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = PlayerPartnerHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = PlayerPartnerHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = PlayerPartnerHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = PlayerPartnerHandleBallThrowAnim, + [CONTROLLER_PAUSE] = PlayerPartnerHandlePause, + [CONTROLLER_MOVEANIMATION] = PlayerPartnerHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = PlayerPartnerHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = PlayerPartnerHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = PlayerPartnerHandleChooseAction, + [CONTROLLER_YESNOBOX] = PlayerPartnerHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = PlayerPartnerHandleChooseMove, + [CONTROLLER_OPENBAG] = PlayerPartnerHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = PlayerPartnerHandleChoosePokemon, + [CONTROLLER_23] = PlayerPartnerHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = PlayerPartnerHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = PlayerPartnerHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = PlayerPartnerHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = PlayerPartnerHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = PlayerPartnerHandleStatusXor, + [CONTROLLER_DATATRANSFER] = PlayerPartnerHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = PlayerPartnerHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = PlayerPartnerHandlePlayBGM, + [CONTROLLER_32] = PlayerPartnerHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = PlayerPartnerHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = PlayerPartnerHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = PlayerPartnerHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = PlayerPartnerHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = PlayerPartnerHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = PlayerPartnerHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = PlayerPartnerHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = PlayerPartnerHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = PlayerPartnerHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = PlayerPartnerHandleCantSwitch, + [CONTROLLER_PLAYSE] = PlayerPartnerHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = PlayerPartnerHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = PlayerPartnerHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = PlayerPartnerHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = PlayerPartnerHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = PlayerPartnerHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = PlayerPartnerHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = PlayerPartnerHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = PlayerPartnerHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = PlayerPartnerHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = PlayerPartnerHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = PlayerPartnerHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = PlayerPartnerHandleEndLinkBattle, + [CONTROLLER_DEBUGMENU] = PlayerPartnerHandleBattleDebug, + [CONTROLLER_TERMINATOR_NOP] = PlayerPartnerCmdEnd }; // unknown unused data -static const u8 sUnknown_08617254[] = +static const u8 sUnused[] = { 0x83, 0x4d, 0xf3, 0x5f, 0x6f, 0x4f, 0xeb, 0x3e, 0x67, 0x2e, 0x10, 0x46, 0x8c, 0x3d, 0x28, 0x35, @@ -175,7 +174,7 @@ static const u8 sUnknown_08617254[] = 0x3b, 0x43, 0xda, 0x36, 0x79, 0x2a, 0x0e, 0x53, }; -static void nullsub_77(void) +static void PlayerPartnerDummy(void) { } @@ -201,86 +200,86 @@ static void CompleteOnBattlerSpriteCallbackDummy(void) PlayerPartnerBufferExecCompleted(); } -static void sub_81BAE98(void) +static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - nullsub_25(0); + BattleGfxSfxDummy3(MALE); FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); PlayerPartnerBufferExecCompleted(); } } -static void sub_81BAF00(void) +static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; PlayerPartnerBufferExecCompleted(); } } -static void sub_81BAF48(void) +static void Intro_WaitForHealthbox(void) { - bool32 r6 = FALSE; + bool32 finished = FALSE; if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - r6 = TRUE; + finished = TRUE; } else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - r6 = TRUE; + finished = TRUE; } } if (IsCryPlayingOrClearCrySongs()) - r6 = FALSE; + finished = FALSE; - if (r6) + if (finished) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerControllerFuncs[gActiveBattler] = sub_81BAF00; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; + gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; } } -static void sub_81BB02C(void) +static void Intro_ShowHealthbox(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive - && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 != 1) + && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->field_9_x1 = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; - gBattlerControllerFuncs[gActiveBattler] = sub_81BAF48; + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForHealthbox; } } -static void sub_81BB1D4(void) +static void WaitForMonAnimAfterLoad(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0) PlayerPartnerBufferExecCompleted(); } @@ -341,7 +340,7 @@ static void Task_GiveExpToMon(u8 taskId) if (IsDoubleBattle() == TRUE && ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])) - gTasks[taskId].func = sub_81BB628; + gTasks[taskId].func = Task_LaunchLvlUpAnim; else gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; } @@ -375,10 +374,10 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId) expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp; SetBattleBarStruct(battlerId, gHealthboxSpriteIds[battlerId], expToNextLvl, exp, -gainedExp); PlaySE(SE_EXP); - gTasks[taskId].func = sub_81BB4E4; + gTasks[taskId].func = Task_GiveExpWithExpBar; } -static void sub_81BB4E4(u8 taskId) +static void Task_GiveExpWithExpBar(u8 taskId) { if (gTasks[taskId].tExpTask_frames < 13) { @@ -417,7 +416,7 @@ static void sub_81BB4E4(u8 taskId) gActiveBattler = battlerId; BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELED_UP, gainedExp); gActiveBattler = savedActiveBank; - gTasks[taskId].func = sub_81BB628; + gTasks[taskId].func = Task_LaunchLvlUpAnim; } else { @@ -430,7 +429,7 @@ static void sub_81BB4E4(u8 taskId) } } -static void sub_81BB628(u8 taskId) +static void Task_LaunchLvlUpAnim(u8 taskId) { u8 battlerId = gTasks[taskId].tExpTask_bank; u8 monIndex = gTasks[taskId].tExpTask_monId; @@ -439,10 +438,10 @@ static void sub_81BB628(u8 taskId) battlerId ^= BIT_FLANK; InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP); - gTasks[taskId].func = sub_81BB688; + gTasks[taskId].func = Task_UpdateLvlInHealthbox; } -static void sub_81BB688(u8 taskId) +static void Task_UpdateLvlInHealthbox(u8 taskId) { u8 battlerId = gTasks[taskId].tExpTask_bank; @@ -473,13 +472,13 @@ static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId) DestroyTask(taskId); } -static void sub_81BB78C(void) +static void FreeMonSpriteAfterFaintAnim(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].y + gSprites[gBattlerSpriteIds[gActiveBattler]].y2 > DISPLAY_HEIGHT) { u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - nullsub_24(species); + BattleGfxSfxDummy2(species); FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); @@ -487,7 +486,7 @@ static void sub_81BB78C(void) } } -static void sub_81BB828(void) +static void FreeMonSpriteAfterSwitchOutAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { @@ -523,7 +522,7 @@ static void DoHitAnimBlinkSpriteEffect(void) } } -static void sub_81BB92C(void) +static void SwitchIn_ShowSubstitute(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { @@ -531,11 +530,11 @@ static void sub_81BB92C(void) if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerControllerFuncs[gActiveBattler] = sub_81BB9A0; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_WaitAndEnd; } } -static void sub_81BB9A0(void) +static void SwitchIn_WaitAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) @@ -544,28 +543,28 @@ static void sub_81BB9A0(void) } } -static void sub_81BB9F4(void) +static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); - CreateTask(c3_0802FDF4, 10); + CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattlerControllerFuncs[gActiveBattler] = sub_81BB92C; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowSubstitute; } } -static void sub_81BBAE8(void) +static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) @@ -573,11 +572,11 @@ static void sub_81BBAE8(void) TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - gBattlerControllerFuncs[gActiveBattler] = sub_81BB9F4; + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowHealthbox; } } @@ -1207,11 +1206,11 @@ static void PlayerPartnerHandleLoadMonSprite(void) GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - gBattlerControllerFuncs[gActiveBattler] = sub_81BB1D4; + gBattlerControllerFuncs[gActiveBattler] = WaitForMonAnimAfterLoad; } static void PlayerPartnerHandleSwitchInAnim(void) @@ -1219,18 +1218,18 @@ static void PlayerPartnerHandleSwitchInAnim(void) ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); gBattlerPartyIndexes[gActiveBattler] = gBattleResources->bufferA[gActiveBattler][1]; BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - sub_81BD0E4(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); - gBattlerControllerFuncs[gActiveBattler] = sub_81BBAE8; + StartSendOutAnim(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim; } -static void sub_81BD0E4(u8 battlerId, bool8 dontClearSubstituteBit) +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) { u16 species; ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714); + gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite( @@ -1239,8 +1238,8 @@ static void sub_81BD0E4(u8 battlerId, bool8 dontClearSubstituteBit) GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); - gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; - gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId; + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattleControllerData[battlerId]].data[2] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; @@ -1251,7 +1250,7 @@ static void sub_81BD0E4(u8 battlerId, bool8 dontClearSubstituteBit) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void PlayerPartnerHandleReturnMonToBall(void) @@ -1285,12 +1284,14 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerControllerFuncs[gActiveBattler] = sub_81BB828; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim; } break; } } +#define sSpeedX data[0] + // some explanation here // in emerald it's possible to have a tag battle in the battle frontier facilities with AI // which use the front sprite for both the player and the partner as opposed to any other battles (including the one with Steven) that use the back pic as well as animate it @@ -1326,9 +1327,9 @@ static void PlayerPartnerHandleDrawTrainerPic(void) gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; } else // otherwise use front sprite { @@ -1337,10 +1338,10 @@ static void PlayerPartnerHandleDrawTrainerPic(void) gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].y2 = 48; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = ST_OAM_AFFINE_OFF; gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1; } @@ -1348,6 +1349,8 @@ static void PlayerPartnerHandleDrawTrainerPic(void) gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } +#undef sSpeedX + static void PlayerPartnerHandleTrainerSlide(void) { PlayerPartnerBufferExecCompleted(); @@ -1358,12 +1361,15 @@ static void PlayerPartnerHandleTrainerSlideBack(void) SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerControllerFuncs[gActiveBattler] = sub_81BAE98; + gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } +#define sSpeedX data[1] +#define sSpeedY data[2] + static void PlayerPartnerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) @@ -1379,14 +1385,17 @@ static void PlayerPartnerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); - gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; - gBattlerControllerFuncs[gActiveBattler] = sub_81BB78C; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedY = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintSlideAnim; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterFaintAnim; } } } +#undef sSpeedX +#undef sSpeedY + static void PlayerPartnerHandlePaletteFade(void) { PlayerPartnerBufferExecCompleted(); @@ -1409,7 +1418,7 @@ static void PlayerPartnerHandlePause(void) static void PlayerPartnerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u16 move = gBattleResources->bufferA[gActiveBattler][1] | (gBattleResources->bufferA[gActiveBattler][2] << 8); @@ -1451,7 +1460,7 @@ static void PlayerPartnerDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - sub_805EB9C(ST_OAM_AFFINE_OFF); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1460,7 +1469,7 @@ static void PlayerPartnerDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_805EB9C(ST_OAM_AFFINE_NORMAL); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1504,7 +1513,7 @@ static void PlayerPartnerHandleChooseAction(void) PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleUnknownYesNoBox(void) +static void PlayerPartnerHandleYesNoBox(void) { PlayerPartnerBufferExecCompleted(); } @@ -1612,7 +1621,7 @@ static void PlayerPartnerHandleExpUpdate(void) gTasks[taskId].tExpTask_monId = monId; gTasks[taskId].tExpTask_gainedExp = expPointsToGive; gTasks[taskId].tExpTask_bank = gActiveBattler; - gBattlerControllerFuncs[gActiveBattler] = nullsub_21; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } } @@ -1623,7 +1632,7 @@ static void PlayerPartnerHandleExpUpdate(void) static void PlayerPartnerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 battlerId; @@ -1636,7 +1645,7 @@ static void PlayerPartnerHandleStatusIconUpdate(void) static void PlayerPartnerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { InitAndLaunchChosenStatusAnimation(gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8) | (gBattleResources->bufferA[gActiveBattler][4] << 16) | (gBattleResources->bufferA[gActiveBattler][5] << 24)); @@ -1689,27 +1698,27 @@ static void PlayerPartnerHandleOneReturnValue_Duplicate(void) PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleCmd37(void) +static void PlayerPartnerHandleClearUnkVar(void) { - gUnknown_02022D0C.field_0 = 0; + gUnusedControllerStruct.unk = 0; PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleCmd38(void) +static void PlayerPartnerHandleSetUnkVar(void) { - gUnknown_02022D0C.field_0 = gBattleResources->bufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleResources->bufferA[gActiveBattler][1]; PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleCmd39(void) +static void PlayerPartnerHandleClearUnkFlag(void) { - gUnknown_02022D0C.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleCmd40(void) +static void PlayerPartnerHandleToggleUnkFlag(void) { - gUnknown_02022D0C.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; PlayerPartnerBufferExecCompleted(); } @@ -1728,7 +1737,7 @@ static void PlayerPartnerHandleHitAnimation(void) } } -static void PlayerPartnerHandleCmd42(void) +static void PlayerPartnerHandleCantSwitch(void) { PlayerPartnerBufferExecCompleted(); } @@ -1785,11 +1794,11 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); @@ -1812,17 +1821,17 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; - taskId = CreateTask(sub_81BE2C8, 5); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerControllerFuncs[gActiveBattler] = nullsub_77; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; + gBattlerControllerFuncs[gActiveBattler] = PlayerPartnerDummy; } -static void sub_81BE2C8(u8 taskId) +static void Task_StartSendOutAnim(u8 taskId) { if (gTasks[taskId].data[1] < 24) { @@ -1836,19 +1845,19 @@ static void sub_81BE2C8(u8 taskId) if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_81BD0E4(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); } else { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_81BD0E4(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - sub_81BD0E4(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerControllerFuncs[gActiveBattler] = sub_81BB02C; + gBattlerControllerFuncs[gActiveBattler] = Intro_ShowHealthbox; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1864,20 +1873,20 @@ static void PlayerPartnerHandleDrawPartyStatusSummary(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleResources->bufferA[gActiveBattler][4], gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; if (gBattleResources->bufferA[gActiveBattler][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; - gBattlerControllerFuncs[gActiveBattler] = sub_81BE498; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } -static void sub_81BE498(void) +static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; PlayerPartnerBufferExecCompleted(); } } @@ -1906,7 +1915,7 @@ static void PlayerPartnerHandleSpriteInvisibility(void) static void PlayerPartnerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 animationId = gBattleResources->bufferA[gActiveBattler][1]; u16 argument = gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8); @@ -1928,13 +1937,13 @@ static void PlayerPartnerHandleResetActionMoveSelection(void) PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleCmd55(void) +static void PlayerPartnerHandleEndLinkBattle(void) { gBattleOutcome = gBattleResources->bufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); PlayerPartnerBufferExecCompleted(); - gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks; } static void PlayerPartnerHandleBattleDebug(void) diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 3480cda921..df5880c723 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" #include "battle_anim.h" #include "battle_controllers.h" #include "battle_interface.h" @@ -51,7 +51,7 @@ static void RecordedOpponentHandleMoveAnimation(void); static void RecordedOpponentHandlePrintString(void); static void RecordedOpponentHandlePrintSelectionString(void); static void RecordedOpponentHandleChooseAction(void); -static void RecordedOpponentHandleUnknownYesNoBox(void); +static void RecordedOpponentHandleYesNoBox(void); static void RecordedOpponentHandleChooseMove(void); static void RecordedOpponentHandleChooseItem(void); static void RecordedOpponentHandleChoosePokemon(void); @@ -69,12 +69,12 @@ static void RecordedOpponentHandleTwoReturnValues(void); static void RecordedOpponentHandleChosenMonReturnValue(void); static void RecordedOpponentHandleOneReturnValue(void); static void RecordedOpponentHandleOneReturnValue_Duplicate(void); -static void RecordedOpponentHandleCmd37(void); -static void RecordedOpponentHandleCmd38(void); -static void RecordedOpponentHandleCmd39(void); -static void RecordedOpponentHandleCmd40(void); +static void RecordedOpponentHandleClearUnkVar(void); +static void RecordedOpponentHandleSetUnkVar(void); +static void RecordedOpponentHandleClearUnkFlag(void); +static void RecordedOpponentHandleToggleUnkFlag(void); static void RecordedOpponentHandleHitAnimation(void); -static void RecordedOpponentHandleCmd42(void); +static void RecordedOpponentHandleCantSwitch(void); static void RecordedOpponentHandlePlaySE(void); static void RecordedOpponentHandlePlayFanfareOrBGM(void); static void RecordedOpponentHandleFaintingCry(void); @@ -87,85 +87,85 @@ static void RecordedOpponentHandleSpriteInvisibility(void); static void RecordedOpponentHandleBattleAnimation(void); static void RecordedOpponentHandleLinkStandbyMsg(void); static void RecordedOpponentHandleResetActionMoveSelection(void); -static void RecordedOpponentHandleCmd55(void); +static void RecordedOpponentHandleEndLinkBattle(void); static void RecordedOpponentHandleBattleDebug(void); static void RecordedOpponentCmdEnd(void); static void RecordedOpponentBufferRunCommand(void); static void RecordedOpponentBufferExecCompleted(void); -static void sub_8186F14(void); +static void SwitchIn_HandleSoundAndEnd(void); static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst); static void SetRecordedOpponentMonData(u8 monId); -static void sub_81885D8(u8 battlerId, bool8 dontClearSubstituteBit); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void RecordedOpponentDoMoveAnimation(void); -static void sub_8189548(u8 taskId); -static void sub_818962C(struct Sprite *sprite); -static void sub_818975C(void); +static void Task_StartSendOutAnim(u8 taskId); +static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite); +static void EndDrawPartyStatusSummary(void); static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - RecordedOpponentHandleGetMonData, - RecordedOpponentHandleGetRawMonData, - RecordedOpponentHandleSetMonData, - RecordedOpponentHandleSetRawMonData, - RecordedOpponentHandleLoadMonSprite, - RecordedOpponentHandleSwitchInAnim, - RecordedOpponentHandleReturnMonToBall, - RecordedOpponentHandleDrawTrainerPic, - RecordedOpponentHandleTrainerSlide, - RecordedOpponentHandleTrainerSlideBack, - RecordedOpponentHandleFaintAnimation, - RecordedOpponentHandlePaletteFade, - RecordedOpponentHandleSuccessBallThrowAnim, - RecordedOpponentHandleBallThrowAnim, - RecordedOpponentHandlePause, - RecordedOpponentHandleMoveAnimation, - RecordedOpponentHandlePrintString, - RecordedOpponentHandlePrintSelectionString, - RecordedOpponentHandleChooseAction, - RecordedOpponentHandleUnknownYesNoBox, - RecordedOpponentHandleChooseMove, - RecordedOpponentHandleChooseItem, - RecordedOpponentHandleChoosePokemon, - RecordedOpponentHandleCmd23, - RecordedOpponentHandleHealthBarUpdate, - RecordedOpponentHandleExpUpdate, - RecordedOpponentHandleStatusIconUpdate, - RecordedOpponentHandleStatusAnimation, - RecordedOpponentHandleStatusXor, - RecordedOpponentHandleDataTransfer, - RecordedOpponentHandleDMA3Transfer, - RecordedOpponentHandlePlayBGM, - RecordedOpponentHandleCmd32, - RecordedOpponentHandleTwoReturnValues, - RecordedOpponentHandleChosenMonReturnValue, - RecordedOpponentHandleOneReturnValue, - RecordedOpponentHandleOneReturnValue_Duplicate, - RecordedOpponentHandleCmd37, - RecordedOpponentHandleCmd38, - RecordedOpponentHandleCmd39, - RecordedOpponentHandleCmd40, - RecordedOpponentHandleHitAnimation, - RecordedOpponentHandleCmd42, - RecordedOpponentHandlePlaySE, - RecordedOpponentHandlePlayFanfareOrBGM, - RecordedOpponentHandleFaintingCry, - RecordedOpponentHandleIntroSlide, - RecordedOpponentHandleIntroTrainerBallThrow, - RecordedOpponentHandleDrawPartyStatusSummary, - RecordedOpponentHandleHidePartyStatusSummary, - RecordedOpponentHandleEndBounceEffect, - RecordedOpponentHandleSpriteInvisibility, - RecordedOpponentHandleBattleAnimation, - RecordedOpponentHandleLinkStandbyMsg, - RecordedOpponentHandleResetActionMoveSelection, - RecordedOpponentHandleCmd55, - RecordedOpponentHandleBattleDebug, - RecordedOpponentCmdEnd + [CONTROLLER_GETMONDATA] = RecordedOpponentHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = RecordedOpponentHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = RecordedOpponentHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = RecordedOpponentHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = RecordedOpponentHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = RecordedOpponentHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = RecordedOpponentHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = RecordedOpponentHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = RecordedOpponentHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = RecordedOpponentHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = RecordedOpponentHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = RecordedOpponentHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = RecordedOpponentHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = RecordedOpponentHandleBallThrowAnim, + [CONTROLLER_PAUSE] = RecordedOpponentHandlePause, + [CONTROLLER_MOVEANIMATION] = RecordedOpponentHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = RecordedOpponentHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = RecordedOpponentHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = RecordedOpponentHandleChooseAction, + [CONTROLLER_YESNOBOX] = RecordedOpponentHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = RecordedOpponentHandleChooseMove, + [CONTROLLER_OPENBAG] = RecordedOpponentHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = RecordedOpponentHandleChoosePokemon, + [CONTROLLER_23] = RecordedOpponentHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = RecordedOpponentHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = RecordedOpponentHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = RecordedOpponentHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = RecordedOpponentHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = RecordedOpponentHandleStatusXor, + [CONTROLLER_DATATRANSFER] = RecordedOpponentHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = RecordedOpponentHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = RecordedOpponentHandlePlayBGM, + [CONTROLLER_32] = RecordedOpponentHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = RecordedOpponentHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = RecordedOpponentHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = RecordedOpponentHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = RecordedOpponentHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = RecordedOpponentHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = RecordedOpponentHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = RecordedOpponentHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = RecordedOpponentHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = RecordedOpponentHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = RecordedOpponentHandleCantSwitch, + [CONTROLLER_PLAYSE] = RecordedOpponentHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = RecordedOpponentHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = RecordedOpponentHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = RecordedOpponentHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = RecordedOpponentHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = RecordedOpponentHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = RecordedOpponentHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = RecordedOpponentHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = RecordedOpponentHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = RecordedOpponentHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = RecordedOpponentHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = RecordedOpponentHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = RecordedOpponentHandleEndLinkBattle, + [CONTROLLER_DEBUGMENU] = RecordedOpponentHandleBattleDebug, + [CONTROLLER_TERMINATOR_NOP] = RecordedOpponentCmdEnd }; -static void nullsub_70(void) +static void RecordedOpponentDummy(void) { } @@ -197,7 +197,7 @@ static void CompleteOnBankSpriteCallbackDummy2(void) RecordedOpponentBufferExecCompleted(); } -static void sub_81865C8(void) +static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { @@ -208,24 +208,24 @@ static void sub_81865C8(void) } } -static void sub_8186630(void) +static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; RecordedOpponentBufferExecCompleted(); } } -static void sub_8186678(void) +static void Intro_WaitForShinyAnimAndHealthbox(void) { - bool8 var = FALSE; + bool8 healthboxAnimDone = FALSE; if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded) - var = TRUE; + healthboxAnimDone = TRUE; } else @@ -234,10 +234,10 @@ static void sub_8186678(void) && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded) - var = TRUE; + healthboxAnimDone = TRUE; } - if (var) + if (healthboxAnimDone) { if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { @@ -250,19 +250,19 @@ static void sub_8186678(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerControllerFuncs[gActiveBattler] = sub_8186630; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; + gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; } } -static void sub_818686C(void) +static void Intro_TryShinyAnimShowHealthbox(void) { - bool32 r9 = FALSE; - bool32 r8 = FALSE; + bool32 bgmRestored = FALSE; + bool32 battlerAnimsDone = FALSE; if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) @@ -274,27 +274,27 @@ static void sub_818686C(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = TRUE; } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -306,52 +306,52 @@ static void sub_818686C(void) m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; - r9 = TRUE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = TRUE; + bgmRestored = TRUE; } if (!IsDoubleBattle()) { - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - r8 = TRUE; + battlerAnimsDone = TRUE; } } else { - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - r8 = TRUE; + battlerAnimsDone = TRUE; } } - if (r9 && r8) + if (bgmRestored && battlerAnimsDone) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = FALSE; - gBattlerControllerFuncs[gActiveBattler] = sub_8186678; + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } -static void sub_8186C48(void) +static void TryShinyAnimAfterMonAnim(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) + && gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim) { @@ -363,8 +363,8 @@ static void sub_8186C48(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); RecordedOpponentBufferExecCompleted(); } } @@ -387,7 +387,7 @@ static void CompleteOnHealthbarDone(void) } } -static void sub_8186D58(void) +static void HideHealthboxAfterMonFaint(void) { if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse) { @@ -396,7 +396,7 @@ static void sub_8186D58(void) } } -static void sub_8186D9C(void) +static void FreeMonSpriteAfterSwitchOutAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { @@ -433,18 +433,18 @@ static void DoHitAnimBlinkSpriteEffect(void) } } -static void sub_8186EA4(void) +static void SwitchIn_ShowSubstitute(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerControllerFuncs[gActiveBattler] = sub_8186F14; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_HandleSoundAndEnd; } } -static void sub_8186F14(void) +static void SwitchIn_HandleSoundAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) @@ -458,7 +458,7 @@ static void sub_8186F14(void) } } -static void sub_8186F94(void) +static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) @@ -466,31 +466,31 @@ static void sub_8186F94(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); - gBattlerControllerFuncs[gActiveBattler] = sub_8186EA4; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowSubstitute; } } -static void sub_8187084(void) +static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim) TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerControllerFuncs[gActiveBattler] = sub_8186F94; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowHealthbox; } } @@ -1118,31 +1118,31 @@ static void RecordedOpponentHandleLoadMonSprite(void) GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerControllerFuncs[gActiveBattler] = sub_8186C48; + gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim; } static void RecordedOpponentHandleSwitchInAnim(void) { gBattlerPartyIndexes[gActiveBattler] = gBattleResources->bufferA[gActiveBattler][1]; - sub_81885D8(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); - gBattlerControllerFuncs[gActiveBattler] = sub_8187084; + StartSendOutAnim(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim; } -static void sub_81885D8(u8 battlerId, bool8 dontClearSubstituteBit) +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) { u16 species; ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714); + gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); @@ -1151,8 +1151,8 @@ static void sub_81885D8(u8 battlerId, bool8 dontClearSubstituteBit) GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); - gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; - gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId; + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattleControllerData[battlerId]].data[2] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; @@ -1163,7 +1163,7 @@ static void sub_81885D8(u8 battlerId, bool8 dontClearSubstituteBit) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void RecordedOpponentHandleReturnMonToBall(void) @@ -1198,12 +1198,14 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattlerControllerFuncs[gActiveBattler] = sub_8186D9C; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim; } break; } } +#define sSpeedX data[0] + static void RecordedOpponentHandleDrawTrainerPic(void) { s16 xPos; @@ -1237,7 +1239,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void) } else { - trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[gUnknown_0203C7B4 ^ BIT_SIDE].gender); + trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[gRecordedBattleMultiplayerId ^ BIT_SIDE].gender); } } @@ -1248,15 +1250,17 @@ static void RecordedOpponentHandleDrawTrainerPic(void) (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } +#undef sSpeedX + static void RecordedOpponentHandleTrainerSlide(void) { RecordedOpponentBufferExecCompleted(); @@ -1267,10 +1271,10 @@ static void RecordedOpponentHandleTrainerSlideBack(void) SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerControllerFuncs[gActiveBattler] = sub_81865C8; + gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } static void RecordedOpponentHandleFaintAnimation(void) @@ -1288,7 +1292,7 @@ static void RecordedOpponentHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; - gBattlerControllerFuncs[gActiveBattler] = sub_8186D58; + gBattlerControllerFuncs[gActiveBattler] = HideHealthboxAfterMonFaint; } } } @@ -1315,7 +1319,7 @@ static void RecordedOpponentHandlePause(void) static void RecordedOpponentHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u16 move = gBattleResources->bufferA[gActiveBattler][1] | (gBattleResources->bufferA[gActiveBattler][2] << 8); @@ -1357,7 +1361,7 @@ static void RecordedOpponentDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - sub_805EB9C(ST_OAM_AFFINE_OFF); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1366,7 +1370,7 @@ static void RecordedOpponentDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_805EB9C(ST_OAM_AFFINE_NORMAL); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1410,7 +1414,7 @@ static void RecordedOpponentHandleChooseAction(void) RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleUnknownYesNoBox(void) +static void RecordedOpponentHandleYesNoBox(void) { RecordedOpponentBufferExecCompleted(); } @@ -1479,7 +1483,7 @@ static void RecordedOpponentHandleExpUpdate(void) static void RecordedOpponentHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 battlerId; @@ -1492,7 +1496,7 @@ static void RecordedOpponentHandleStatusIconUpdate(void) static void RecordedOpponentHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { InitAndLaunchChosenStatusAnimation(gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8) | (gBattleResources->bufferA[gActiveBattler][4] << 16) | (gBattleResources->bufferA[gActiveBattler][5] << 24)); @@ -1545,27 +1549,27 @@ static void RecordedOpponentHandleOneReturnValue_Duplicate(void) RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleCmd37(void) +static void RecordedOpponentHandleClearUnkVar(void) { - gUnknown_02022D0C.field_0 = 0; + gUnusedControllerStruct.unk = 0; RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleCmd38(void) +static void RecordedOpponentHandleSetUnkVar(void) { - gUnknown_02022D0C.field_0 = gBattleResources->bufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleResources->bufferA[gActiveBattler][1]; RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleCmd39(void) +static void RecordedOpponentHandleClearUnkFlag(void) { - gUnknown_02022D0C.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleCmd40(void) +static void RecordedOpponentHandleToggleUnkFlag(void) { - gUnknown_02022D0C.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; RecordedOpponentBufferExecCompleted(); } @@ -1584,7 +1588,7 @@ static void RecordedOpponentHandleHitAnimation(void) } } -static void RecordedOpponentHandleCmd42(void) +static void RecordedOpponentHandleCantSwitch(void) { RecordedOpponentBufferExecCompleted(); } @@ -1634,29 +1638,28 @@ static void RecordedOpponentHandleIntroSlide(void) static void RecordedOpponentHandleIntroTrainerBallThrow(void) { - u8 paletteNum; u8 taskId; SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_818962C); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreeOpponentSprite); - taskId = CreateTask(sub_8189548, 5); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerControllerFuncs[gActiveBattler] = nullsub_70; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; + gBattlerControllerFuncs[gActiveBattler] = RecordedOpponentDummy; } -static void sub_8189548(u8 taskId) +static void Task_StartSendOutAnim(u8 taskId) { u8 savedActiveBank = gActiveBattler; @@ -1664,23 +1667,23 @@ static void sub_8189548(u8 taskId) if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_81885D8(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); } else { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_81885D8(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_81885D8(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerControllerFuncs[gActiveBattler] = sub_818686C; + gBattlerControllerFuncs[gActiveBattler] = Intro_TryShinyAnimShowHealthbox; gActiveBattler = savedActiveBank; DestroyTask(taskId); } -static void sub_818962C(struct Sprite *sprite) +static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite) { FreeTrainerFrontPicPalette(sprite->oam.affineParam); FreeSpriteOamMatrix(sprite); @@ -1711,20 +1714,20 @@ static void RecordedOpponentHandleDrawPartyStatusSummary(void) } gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleResources->bufferA[gActiveBattler][4], gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; if (gBattleResources->bufferA[gActiveBattler][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; - gBattlerControllerFuncs[gActiveBattler] = sub_818975C; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } -static void sub_818975C(void) +static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; RecordedOpponentBufferExecCompleted(); } } @@ -1753,7 +1756,7 @@ static void RecordedOpponentHandleSpriteInvisibility(void) static void RecordedOpponentHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 animationId = gBattleResources->bufferA[gActiveBattler][1]; u16 argument = gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8); @@ -1775,7 +1778,7 @@ static void RecordedOpponentHandleResetActionMoveSelection(void) RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleCmd55(void) +static void RecordedOpponentHandleEndLinkBattle(void) { if (gBattleResources->bufferA[gActiveBattler][1] == B_OUTCOME_DREW) gBattleOutcome = gBattleResources->bufferA[gActiveBattler][1]; @@ -1785,7 +1788,7 @@ static void RecordedOpponentHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); RecordedOpponentBufferExecCompleted(); - gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks; } static void RecordedOpponentHandleBattleDebug(void) diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index c26b421fa5..c6d6083c81 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" #include "battle_anim.h" #include "battle_controllers.h" #include "battle_message.h" @@ -47,7 +47,7 @@ static void RecordedPlayerHandleMoveAnimation(void); static void RecordedPlayerHandlePrintString(void); static void RecordedPlayerHandlePrintSelectionString(void); static void RecordedPlayerHandleChooseAction(void); -static void RecordedPlayerHandleUnknownYesNoBox(void); +static void RecordedPlayerHandleYesNoBox(void); static void RecordedPlayerHandleChooseMove(void); static void RecordedPlayerHandleChooseItem(void); static void RecordedPlayerHandleChoosePokemon(void); @@ -65,12 +65,12 @@ static void RecordedPlayerHandleTwoReturnValues(void); static void RecordedPlayerHandleChosenMonReturnValue(void); static void RecordedPlayerHandleOneReturnValue(void); static void RecordedPlayerHandleOneReturnValue_Duplicate(void); -static void RecordedPlayerHandleCmd37(void); -static void RecordedPlayerHandleCmd38(void); -static void RecordedPlayerHandleCmd39(void); -static void RecordedPlayerHandleCmd40(void); +static void RecordedPlayerHandleClearUnkVar(void); +static void RecordedPlayerHandleSetUnkVar(void); +static void RecordedPlayerHandleClearUnkFlag(void); +static void RecordedPlayerHandleToggleUnkFlag(void); static void RecordedPlayerHandleHitAnimation(void); -static void RecordedPlayerHandleCmd42(void); +static void RecordedPlayerHandleCantSwitch(void); static void RecordedPlayerHandlePlaySE(void); static void RecordedPlayerHandlePlayFanfareOrBGM(void); static void RecordedPlayerHandleFaintingCry(void); @@ -83,82 +83,82 @@ static void RecordedPlayerHandleSpriteInvisibility(void); static void RecordedPlayerHandleBattleAnimation(void); static void RecordedPlayerHandleLinkStandbyMsg(void); static void RecordedPlayerHandleResetActionMoveSelection(void); -static void RecordedPlayerHandleCmd55(void); +static void RecordedPlayerHandleEndLinkBattle(void); static void RecordedPlayerCmdEnd(void); static void RecordedPlayerBufferRunCommand(void); static void RecordedPlayerBufferExecCompleted(void); -static void sub_818A328(void); +static void SwitchIn_WaitAndEnd(void); static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst); static void SetRecordedPlayerMonData(u8 monId); -static void sub_818BA6C(u8 battlerId, bool8 dontClearSubstituteBit); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void RecordedPlayerDoMoveAnimation(void); -static void sub_818CC24(u8 taskId); -static void sub_818CDF4(void); +static void Task_StartSendOutAnim(u8 taskId); +static void EndDrawPartyStatusSummary(void); static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - RecordedPlayerHandleGetMonData, - RecordedPlayerHandleGetRawMonData, - RecordedPlayerHandleSetMonData, - RecordedPlayerHandleSetRawMonData, - RecordedPlayerHandleLoadMonSprite, - RecordedPlayerHandleSwitchInAnim, - RecordedPlayerHandleReturnMonToBall, - RecordedPlayerHandleDrawTrainerPic, - RecordedPlayerHandleTrainerSlide, - RecordedPlayerHandleTrainerSlideBack, - RecordedPlayerHandleFaintAnimation, - RecordedPlayerHandlePaletteFade, - RecordedPlayerHandleSuccessBallThrowAnim, - RecordedPlayerHandleBallThrowAnim, - RecordedPlayerHandlePause, - RecordedPlayerHandleMoveAnimation, - RecordedPlayerHandlePrintString, - RecordedPlayerHandlePrintSelectionString, - RecordedPlayerHandleChooseAction, - RecordedPlayerHandleUnknownYesNoBox, - RecordedPlayerHandleChooseMove, - RecordedPlayerHandleChooseItem, - RecordedPlayerHandleChoosePokemon, - RecordedPlayerHandleCmd23, - RecordedPlayerHandleHealthBarUpdate, - RecordedPlayerHandleExpUpdate, - RecordedPlayerHandleStatusIconUpdate, - RecordedPlayerHandleStatusAnimation, - RecordedPlayerHandleStatusXor, - RecordedPlayerHandleDataTransfer, - RecordedPlayerHandleDMA3Transfer, - RecordedPlayerHandlePlayBGM, - RecordedPlayerHandleCmd32, - RecordedPlayerHandleTwoReturnValues, - RecordedPlayerHandleChosenMonReturnValue, - RecordedPlayerHandleOneReturnValue, - RecordedPlayerHandleOneReturnValue_Duplicate, - RecordedPlayerHandleCmd37, - RecordedPlayerHandleCmd38, - RecordedPlayerHandleCmd39, - RecordedPlayerHandleCmd40, - RecordedPlayerHandleHitAnimation, - RecordedPlayerHandleCmd42, - RecordedPlayerHandlePlaySE, - RecordedPlayerHandlePlayFanfareOrBGM, - RecordedPlayerHandleFaintingCry, - RecordedPlayerHandleIntroSlide, - RecordedPlayerHandleIntroTrainerBallThrow, - RecordedPlayerHandleDrawPartyStatusSummary, - RecordedPlayerHandleHidePartyStatusSummary, - RecordedPlayerHandleEndBounceEffect, - RecordedPlayerHandleSpriteInvisibility, - RecordedPlayerHandleBattleAnimation, - RecordedPlayerHandleLinkStandbyMsg, - RecordedPlayerHandleResetActionMoveSelection, - RecordedPlayerHandleCmd55, - RecordedPlayerCmdEnd + [CONTROLLER_GETMONDATA] = RecordedPlayerHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = RecordedPlayerHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = RecordedPlayerHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = RecordedPlayerHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = RecordedPlayerHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = RecordedPlayerHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = RecordedPlayerHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = RecordedPlayerHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = RecordedPlayerHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = RecordedPlayerHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = RecordedPlayerHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = RecordedPlayerHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = RecordedPlayerHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = RecordedPlayerHandleBallThrowAnim, + [CONTROLLER_PAUSE] = RecordedPlayerHandlePause, + [CONTROLLER_MOVEANIMATION] = RecordedPlayerHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = RecordedPlayerHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = RecordedPlayerHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = RecordedPlayerHandleChooseAction, + [CONTROLLER_YESNOBOX] = RecordedPlayerHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = RecordedPlayerHandleChooseMove, + [CONTROLLER_OPENBAG] = RecordedPlayerHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = RecordedPlayerHandleChoosePokemon, + [CONTROLLER_23] = RecordedPlayerHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = RecordedPlayerHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = RecordedPlayerHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = RecordedPlayerHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = RecordedPlayerHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = RecordedPlayerHandleStatusXor, + [CONTROLLER_DATATRANSFER] = RecordedPlayerHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = RecordedPlayerHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = RecordedPlayerHandlePlayBGM, + [CONTROLLER_32] = RecordedPlayerHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = RecordedPlayerHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = RecordedPlayerHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = RecordedPlayerHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = RecordedPlayerHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = RecordedPlayerHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = RecordedPlayerHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = RecordedPlayerHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = RecordedPlayerHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = RecordedPlayerHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = RecordedPlayerHandleCantSwitch, + [CONTROLLER_PLAYSE] = RecordedPlayerHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = RecordedPlayerHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = RecordedPlayerHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = RecordedPlayerHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = RecordedPlayerHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = RecordedPlayerHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = RecordedPlayerHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = RecordedPlayerHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = RecordedPlayerHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = RecordedPlayerHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = RecordedPlayerHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = RecordedPlayerHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = RecordedPlayerHandleEndLinkBattle, + [CONTROLLER_TERMINATOR_NOP] = RecordedPlayerCmdEnd }; -static void nullsub_120(void) +static void RecordedPlayerDummy(void) { } @@ -184,47 +184,47 @@ static void CompleteOnBattlerSpriteCallbackDummy(void) RecordedPlayerBufferExecCompleted(); } -static void sub_81899F0(void) +static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - nullsub_25(0); + BattleGfxSfxDummy3(MALE); FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); RecordedPlayerBufferExecCompleted(); } } -static void sub_8189A58(void) +static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; RecordedPlayerBufferExecCompleted(); } } -static void sub_8189AA0(void) +static void Intro_WaitForShinyAnimAndHealthbox(void) { - bool32 r6 = FALSE; + bool32 healthboxAnimDone = FALSE; if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) { if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - r6 = TRUE; + healthboxAnimDone = TRUE; } else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - r6 = TRUE; + healthboxAnimDone = TRUE; } } - if (r6 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim + if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; @@ -233,15 +233,15 @@ static void sub_8189AA0(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerControllerFuncs[gActiveBattler] = sub_8189A58; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; + gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; } } else @@ -249,31 +249,31 @@ static void sub_8189AA0(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - r6 = TRUE; + healthboxAnimDone = TRUE; } else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - r6 = TRUE; + healthboxAnimDone = TRUE; } } if (IsCryPlayingOrClearCrySongs()) - r6 = FALSE; + healthboxAnimDone = FALSE; - if (r6) + if (healthboxAnimDone) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerControllerFuncs[gActiveBattler] = sub_8189A58; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; + gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; } } } -static void sub_8189D40(void) +static void Intro_TryShinyAnimShowHealthbox(void) { - bool32 r10 = FALSE; + bool32 bgmRestored = FALSE; if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) { @@ -289,27 +289,27 @@ static void sub_8189D40(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = TRUE; } - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) { if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { @@ -322,27 +322,27 @@ static void sub_8189D40(void) } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; - r10 = TRUE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = TRUE; + bgmRestored = TRUE; } - if (r10 && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (bgmRestored && gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattlerControllerFuncs[gActiveBattler] = sub_8189AA0; + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted = FALSE; + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } -static void sub_818A064(void) +static void WaitForMonAnimAfterLoad(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0) RecordedPlayerBufferExecCompleted(); } @@ -363,13 +363,13 @@ static void CompleteOnHealthbarDone(void) } } -static void sub_818A114(void) +static void FreeMonSpriteAfterFaintAnim(void) { - if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].y + gSprites[gBattlerSpriteIds[gActiveBattler]].y2 > DISPLAY_HEIGHT) { u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - nullsub_24(species); + BattleGfxSfxDummy2(species); FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); @@ -377,7 +377,7 @@ static void sub_818A114(void) } } -static void sub_818A1B0(void) +static void FreeMonSpriteAfterSwitchOutAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { @@ -413,7 +413,7 @@ static void DoHitAnimBlinkSpriteEffect(void) } } -static void sub_818A2B4(void) +static void SwitchIn_ShowSubstitute(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { @@ -421,11 +421,11 @@ static void sub_818A2B4(void) if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerControllerFuncs[gActiveBattler] = sub_818A328; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_WaitAndEnd; } } -static void sub_818A328(void) +static void SwitchIn_WaitAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) @@ -434,28 +434,28 @@ static void sub_818A328(void) } } -static void sub_818A37C(void) +static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); - CreateTask(c3_0802FDF4, 10); + CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattlerControllerFuncs[gActiveBattler] = sub_818A2B4; + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowSubstitute; } } -static void sub_818A470(void) +static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) @@ -463,11 +463,11 @@ static void sub_818A470(void) TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - gBattlerControllerFuncs[gActiveBattler] = sub_818A37C; + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_ShowHealthbox; } } @@ -1097,11 +1097,11 @@ static void RecordedPlayerHandleLoadMonSprite(void) GetBattlerSpriteCoord(gActiveBattler, 2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - gBattlerControllerFuncs[gActiveBattler] = sub_818A064; + gBattlerControllerFuncs[gActiveBattler] = WaitForMonAnimAfterLoad; } static void RecordedPlayerHandleSwitchInAnim(void) @@ -1109,18 +1109,18 @@ static void RecordedPlayerHandleSwitchInAnim(void) ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); gBattlerPartyIndexes[gActiveBattler] = gBattleResources->bufferA[gActiveBattler][1]; BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - sub_818BA6C(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); - gBattlerControllerFuncs[gActiveBattler] = sub_818A470; + StartSendOutAnim(gActiveBattler, gBattleResources->bufferA[gActiveBattler][2]); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim; } -static void sub_818BA6C(u8 battlerId, bool8 dontClearSubstituteBit) +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) { u16 species; ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714); + gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite( @@ -1129,8 +1129,8 @@ static void sub_818BA6C(u8 battlerId, bool8 dontClearSubstituteBit) GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); - gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; - gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId; + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattleControllerData[battlerId]].data[2] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; @@ -1141,7 +1141,7 @@ static void sub_818BA6C(u8 battlerId, bool8 dontClearSubstituteBit) gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void RecordedPlayerHandleReturnMonToBall(void) @@ -1175,23 +1175,25 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerControllerFuncs[gActiveBattler] = sub_818A1B0; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterSwitchOutAnim; } break; } } +#define sSpeedX data[0] + static void RecordedPlayerHandleDrawTrainerPic(void) { s16 xPos, yPos; u32 trainerPicId; - if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) trainerPicId = GetActiveBattlerLinkPlayerGender(); else - trainerPicId = gLinkPlayers[gUnknown_0203C7B4].gender; + trainerPicId = gLinkPlayers[gRecordedBattleMultiplayerId].gender; } else { @@ -1230,10 +1232,10 @@ static void RecordedPlayerHandleDrawTrainerPic(void) gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].y2 = 48; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = ST_OAM_AFFINE_OFF; gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1; } @@ -1244,14 +1246,16 @@ static void RecordedPlayerHandleDrawTrainerPic(void) gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; } gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } +#undef sSpeedX + static void RecordedPlayerHandleTrainerSlide(void) { RecordedPlayerBufferExecCompleted(); @@ -1262,12 +1266,15 @@ static void RecordedPlayerHandleTrainerSlideBack(void) SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerControllerFuncs[gActiveBattler] = sub_81899F0; + gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } +#define sSpeedX data[1] +#define sSpeedY data[2] + static void RecordedPlayerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) @@ -1283,14 +1290,17 @@ static void RecordedPlayerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_FAINT, -64); - gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; - gBattlerControllerFuncs[gActiveBattler] = sub_818A114; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedY = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintSlideAnim; + gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterFaintAnim; } } } +#undef sSpeedX +#undef sSpeedY + static void RecordedPlayerHandlePaletteFade(void) { RecordedPlayerBufferExecCompleted(); @@ -1313,7 +1323,7 @@ static void RecordedPlayerHandlePause(void) static void RecordedPlayerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u16 move = gBattleResources->bufferA[gActiveBattler][1] | (gBattleResources->bufferA[gActiveBattler][2] << 8); @@ -1355,7 +1365,7 @@ static void RecordedPlayerDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - sub_805EB9C(ST_OAM_AFFINE_OFF); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1364,7 +1374,7 @@ static void RecordedPlayerDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_805EB9C(ST_OAM_AFFINE_NORMAL); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1424,7 +1434,7 @@ static void RecordedPlayerHandleChooseAction(void) } } -static void RecordedPlayerHandleUnknownYesNoBox(void) +static void RecordedPlayerHandleYesNoBox(void) { RecordedPlayerBufferExecCompleted(); } @@ -1494,7 +1504,7 @@ static void RecordedPlayerHandleExpUpdate(void) static void RecordedPlayerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 battlerId; @@ -1507,7 +1517,7 @@ static void RecordedPlayerHandleStatusIconUpdate(void) static void RecordedPlayerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { InitAndLaunchChosenStatusAnimation(gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8) | (gBattleResources->bufferA[gActiveBattler][4] << 16) | (gBattleResources->bufferA[gActiveBattler][5] << 24)); @@ -1560,27 +1570,27 @@ static void RecordedPlayerHandleOneReturnValue_Duplicate(void) RecordedPlayerBufferExecCompleted(); } -static void RecordedPlayerHandleCmd37(void) +static void RecordedPlayerHandleClearUnkVar(void) { - gUnknown_02022D0C.field_0 = 0; + gUnusedControllerStruct.unk = 0; RecordedPlayerBufferExecCompleted(); } -static void RecordedPlayerHandleCmd38(void) +static void RecordedPlayerHandleSetUnkVar(void) { - gUnknown_02022D0C.field_0 = gBattleResources->bufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleResources->bufferA[gActiveBattler][1]; RecordedPlayerBufferExecCompleted(); } -static void RecordedPlayerHandleCmd39(void) +static void RecordedPlayerHandleClearUnkFlag(void) { - gUnknown_02022D0C.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; RecordedPlayerBufferExecCompleted(); } -static void RecordedPlayerHandleCmd40(void) +static void RecordedPlayerHandleToggleUnkFlag(void) { - gUnknown_02022D0C.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; RecordedPlayerBufferExecCompleted(); } @@ -1599,7 +1609,7 @@ static void RecordedPlayerHandleHitAnimation(void) } } -static void RecordedPlayerHandleCmd42(void) +static void RecordedPlayerHandleCantSwitch(void) { RecordedPlayerBufferExecCompleted(); } @@ -1657,15 +1667,15 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void) gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); - if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; else trainerPicId = gSaveBlock2Ptr->playerGender; @@ -1674,17 +1684,17 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void) gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; - taskId = CreateTask(sub_818CC24, 5); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerControllerFuncs[gActiveBattler] = nullsub_120; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; + gBattlerControllerFuncs[gActiveBattler] = RecordedPlayerDummy; } -static void sub_818CC24(u8 taskId) +static void Task_StartSendOutAnim(u8 taskId) { if (gTasks[taskId].data[1] < 24) { @@ -1698,19 +1708,19 @@ static void sub_818CC24(u8 taskId) if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_818BA6C(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); } else { gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_818BA6C(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - sub_818BA6C(gActiveBattler, FALSE); + StartSendOutAnim(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerControllerFuncs[gActiveBattler] = sub_8189D40; + gBattlerControllerFuncs[gActiveBattler] = Intro_TryShinyAnimShowHealthbox; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1726,20 +1736,20 @@ static void RecordedPlayerHandleDrawPartyStatusSummary(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleResources->bufferA[gActiveBattler][4], gBattleResources->bufferA[gActiveBattler][1], gBattleResources->bufferA[gActiveBattler][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; if (gBattleResources->bufferA[gActiveBattler][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; - gBattlerControllerFuncs[gActiveBattler] = sub_818CDF4; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } -static void sub_818CDF4(void) +static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; RecordedPlayerBufferExecCompleted(); } } @@ -1768,7 +1778,7 @@ static void RecordedPlayerHandleSpriteInvisibility(void) static void RecordedPlayerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBattler)) + if (!IsBattleSEPlaying(gActiveBattler)) { u8 animationId = gBattleResources->bufferA[gActiveBattler][1]; u16 argument = gBattleResources->bufferA[gActiveBattler][2] | (gBattleResources->bufferA[gActiveBattler][3] << 8); @@ -1790,13 +1800,13 @@ static void RecordedPlayerHandleResetActionMoveSelection(void) RecordedPlayerBufferExecCompleted(); } -static void RecordedPlayerHandleCmd55(void) +static void RecordedPlayerHandleEndLinkBattle(void) { gBattleOutcome = gBattleResources->bufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); RecordedPlayerBufferExecCompleted(); - gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks; } static void RecordedPlayerCmdEnd(void) diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 95a4d3aba0..212e0d2285 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -44,7 +44,7 @@ static void SafariHandleMoveAnimation(void); static void SafariHandlePrintString(void); static void SafariHandlePrintSelectionString(void); static void SafariHandleChooseAction(void); -static void SafariHandleUnknownYesNoBox(void); +static void SafariHandleYesNoBox(void); static void SafariHandleChooseMove(void); static void SafariHandleChooseItem(void); static void SafariHandleChoosePokemon(void); @@ -62,12 +62,12 @@ static void SafariHandleTwoReturnValues(void); static void SafariHandleChosenMonReturnValue(void); static void SafariHandleOneReturnValue(void); static void SafariHandleOneReturnValue_Duplicate(void); -static void SafariHandleCmd37(void); -static void SafariHandleCmd38(void); -static void SafariHandleCmd39(void); -static void SafariHandleCmd40(void); +static void SafariHandleClearUnkVar(void); +static void SafariHandleSetUnkVar(void); +static void SafariHandleClearUnkFlag(void); +static void SafariHandleToggleUnkFlag(void); static void SafariHandleHitAnimation(void); -static void SafariHandleCmd42(void); +static void SafariHandleCantSwitch(void); static void SafariHandlePlaySE(void); static void SafariHandlePlayFanfareOrBGM(void); static void SafariHandleFaintingCry(void); @@ -80,7 +80,7 @@ static void SafariHandleSpriteInvisibility(void); static void SafariHandleBattleAnimation(void); static void SafariHandleLinkStandbyMsg(void); static void SafariHandleResetActionMoveSelection(void); -static void SafariHandleCmd55(void); +static void SafariHandleEndLinkBattle(void); static void SafariHandleBattleDebug(void); static void SafariCmdEnd(void); @@ -90,64 +90,64 @@ static void CompleteWhenChosePokeblock(void); static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - SafariHandleGetMonData, - SafariHandleGetRawMonData, - SafariHandleSetMonData, - SafariHandleSetRawMonData, - SafariHandleLoadMonSprite, - SafariHandleSwitchInAnim, - SafariHandleReturnMonToBall, - SafariHandleDrawTrainerPic, - SafariHandleTrainerSlide, - SafariHandleTrainerSlideBack, - SafariHandleFaintAnimation, - SafariHandlePaletteFade, - SafariHandleSuccessBallThrowAnim, - SafariHandleBallThrowAnim, - SafariHandlePause, - SafariHandleMoveAnimation, - SafariHandlePrintString, - SafariHandlePrintSelectionString, - SafariHandleChooseAction, - SafariHandleUnknownYesNoBox, - SafariHandleChooseMove, - SafariHandleChooseItem, - SafariHandleChoosePokemon, - SafariHandleCmd23, - SafariHandleHealthBarUpdate, - SafariHandleExpUpdate, - SafariHandleStatusIconUpdate, - SafariHandleStatusAnimation, - SafariHandleStatusXor, - SafariHandleDataTransfer, - SafariHandleDMA3Transfer, - SafariHandlePlayBGM, - SafariHandleCmd32, - SafariHandleTwoReturnValues, - SafariHandleChosenMonReturnValue, - SafariHandleOneReturnValue, - SafariHandleOneReturnValue_Duplicate, - SafariHandleCmd37, - SafariHandleCmd38, - SafariHandleCmd39, - SafariHandleCmd40, - SafariHandleHitAnimation, - SafariHandleCmd42, - SafariHandlePlaySE, - SafariHandlePlayFanfareOrBGM, - SafariHandleFaintingCry, - SafariHandleIntroSlide, - SafariHandleIntroTrainerBallThrow, - SafariHandleDrawPartyStatusSummary, - SafariHandleHidePartyStatusSummary, - SafariHandleEndBounceEffect, - SafariHandleSpriteInvisibility, - SafariHandleBattleAnimation, - SafariHandleLinkStandbyMsg, - SafariHandleResetActionMoveSelection, - SafariHandleCmd55, - SafariHandleBattleDebug, - SafariCmdEnd + [CONTROLLER_GETMONDATA] = SafariHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = SafariHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = SafariHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = SafariHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = SafariHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = SafariHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = SafariHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = SafariHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = SafariHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = SafariHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = SafariHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = SafariHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = SafariHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = SafariHandleBallThrowAnim, + [CONTROLLER_PAUSE] = SafariHandlePause, + [CONTROLLER_MOVEANIMATION] = SafariHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = SafariHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = SafariHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = SafariHandleChooseAction, + [CONTROLLER_YESNOBOX] = SafariHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = SafariHandleChooseMove, + [CONTROLLER_OPENBAG] = SafariHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = SafariHandleChoosePokemon, + [CONTROLLER_23] = SafariHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = SafariHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = SafariHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = SafariHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = SafariHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = SafariHandleStatusXor, + [CONTROLLER_DATATRANSFER] = SafariHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = SafariHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = SafariHandlePlayBGM, + [CONTROLLER_32] = SafariHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = SafariHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = SafariHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = SafariHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = SafariHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = SafariHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = SafariHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = SafariHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = SafariHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = SafariHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = SafariHandleCantSwitch, + [CONTROLLER_PLAYSE] = SafariHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = SafariHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = SafariHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = SafariHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = SafariHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = SafariHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = SafariHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = SafariHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = SafariHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = SafariHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = SafariHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = SafariHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = SafariHandleEndLinkBattle, + [CONTROLLER_DEBUGMENU] = SafariHandleBattleDebug, + [CONTROLLER_TERMINATOR_NOP] = SafariCmdEnd }; static void SpriteCB_Null4(void) @@ -253,7 +253,7 @@ static void CompleteOnHealthboxSpriteCallbackDummy(void) SafariBufferExecCompleted(); } -static void sub_81595E4(void) +static void SafariSetBattleEndCallbacks(void) { if (!gPaletteFade.active) { @@ -351,6 +351,8 @@ static void SafariHandleReturnMonToBall(void) SafariBufferExecCompleted(); } +#define sSpeedX data[0] + static void SafariHandleDrawTrainerPic(void) { DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, gActiveBattler); @@ -361,12 +363,14 @@ static void SafariHandleDrawTrainerPic(void) (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } +#undef sSpeedX + static void SafariHandleTrainerSlide(void) { SafariBufferExecCompleted(); @@ -440,7 +444,7 @@ static void HandleChooseActionAfterDma3(void) if (!IsDma3ManagerBusyWithBgCopy()) { gBattle_BG0_X = 0; - gBattle_BG0_Y = 160; + gBattle_BG0_Y = DISPLAY_HEIGHT; gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseAction; } } @@ -460,7 +464,7 @@ static void SafariHandleChooseAction(void) BattlePutTextOnWindow(gDisplayedStringBattle, 1); } -static void SafariHandleUnknownYesNoBox(void) +static void SafariHandleYesNoBox(void) { SafariBufferExecCompleted(); } @@ -472,9 +476,7 @@ static void SafariHandleChooseMove(void) static void SafariHandleChooseItem(void) { - s32 i; - - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattlerControllerFuncs[gActiveBattler] = SafariOpenPokeblockCase; gBattlerInMenuId = gActiveBattler; } @@ -555,22 +557,22 @@ static void SafariHandleOneReturnValue_Duplicate(void) SafariBufferExecCompleted(); } -static void SafariHandleCmd37(void) +static void SafariHandleClearUnkVar(void) { SafariBufferExecCompleted(); } -static void SafariHandleCmd38(void) +static void SafariHandleSetUnkVar(void) { SafariBufferExecCompleted(); } -static void SafariHandleCmd39(void) +static void SafariHandleClearUnkFlag(void) { SafariBufferExecCompleted(); } -static void SafariHandleCmd40(void) +static void SafariHandleToggleUnkFlag(void) { SafariBufferExecCompleted(); } @@ -580,7 +582,7 @@ static void SafariHandleHitAnimation(void) SafariBufferExecCompleted(); } -static void SafariHandleCmd42(void) +static void SafariHandleCantSwitch(void) { SafariBufferExecCompleted(); } @@ -631,7 +633,7 @@ static void SafariHandleIntroSlide(void) static void SafariHandleIntroTrainerBallThrow(void) { UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy; } @@ -677,14 +679,14 @@ static void SafariHandleResetActionMoveSelection(void) SafariBufferExecCompleted(); } -static void SafariHandleCmd55(void) +static void SafariHandleEndLinkBattle(void) { gBattleOutcome = gBattleResources->bufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); SafariBufferExecCompleted(); if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) - gBattlerControllerFuncs[gActiveBattler] = sub_81595E4; + gBattlerControllerFuncs[gActiveBattler] = SafariSetBattleEndCallbacks; } static void SafariHandleBattleDebug(void) diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index a63863e3e3..18dcdb06db 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -52,7 +52,7 @@ static void WallyHandleMoveAnimation(void); static void WallyHandlePrintString(void); static void WallyHandlePrintSelectionString(void); static void WallyHandleChooseAction(void); -static void WallyHandleUnknownYesNoBox(void); +static void WallyHandleYesNoBox(void); static void WallyHandleChooseMove(void); static void WallyHandleChooseItem(void); static void WallyHandleChoosePokemon(void); @@ -70,12 +70,12 @@ static void WallyHandleTwoReturnValues(void); static void WallyHandleChosenMonReturnValue(void); static void WallyHandleOneReturnValue(void); static void WallyHandleOneReturnValue_Duplicate(void); -static void WallyHandleCmd37(void); -static void WallyHandleCmd38(void); -static void WallyHandleCmd39(void); -static void WallyHandleCmd40(void); +static void WallyHandleClearUnkVar(void); +static void WallyHandleSetUnkVar(void); +static void WallyHandleClearUnkFlag(void); +static void WallyHandleToggleUnkFlag(void); static void WallyHandleHitAnimation(void); -static void WallyHandleCmd42(void); +static void WallyHandleCantSwitch(void); static void WallyHandlePlaySE(void); static void WallyHandlePlayFanfareOrBGM(void); static void WallyHandleFaintingCry(void); @@ -88,79 +88,79 @@ static void WallyHandleSpriteInvisibility(void); static void WallyHandleBattleAnimation(void); static void WallyHandleLinkStandbyMsg(void); static void WallyHandleResetActionMoveSelection(void); -static void WallyHandleCmd55(void); +static void WallyHandleEndLinkBattle(void); static void WallyHandleBattleDebug(void); static void WallyCmdEnd(void); static void WallyBufferRunCommand(void); static void WallyBufferExecCompleted(void); static void CompleteOnChosenItem(void); -static void sub_8168818(void); +static void Intro_WaitForShinyAnimAndHealthbox(void); static u32 CopyWallyMonData(u8 monId, u8 *dst); static void SetWallyMonData(u8 monId); static void WallyDoMoveAnimation(void); -static void sub_816AC04(u8 taskId); +static void Task_StartSendOutAnim(u8 taskId); static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - WallyHandleGetMonData, - WallyHandleGetRawMonData, - WallyHandleSetMonData, - WallyHandleSetRawMonData, - WallyHandleLoadMonSprite, - WallyHandleSwitchInAnim, - WallyHandleReturnMonToBall, - WallyHandleDrawTrainerPic, - WallyHandleTrainerSlide, - WallyHandleTrainerSlideBack, - WallyHandleFaintAnimation, - WallyHandlePaletteFade, - WallyHandleSuccessBallThrowAnim, - WallyHandleBallThrowAnim, - WallyHandlePause, - WallyHandleMoveAnimation, - WallyHandlePrintString, - WallyHandlePrintSelectionString, - WallyHandleChooseAction, - WallyHandleUnknownYesNoBox, - WallyHandleChooseMove, - WallyHandleChooseItem, - WallyHandleChoosePokemon, - WallyHandleCmd23, - WallyHandleHealthBarUpdate, - WallyHandleExpUpdate, - WallyHandleStatusIconUpdate, - WallyHandleStatusAnimation, - WallyHandleStatusXor, - WallyHandleDataTransfer, - WallyHandleDMA3Transfer, - WallyHandlePlayBGM, - WallyHandleCmd32, - WallyHandleTwoReturnValues, - WallyHandleChosenMonReturnValue, - WallyHandleOneReturnValue, - WallyHandleOneReturnValue_Duplicate, - WallyHandleCmd37, - WallyHandleCmd38, - WallyHandleCmd39, - WallyHandleCmd40, - WallyHandleHitAnimation, - WallyHandleCmd42, - WallyHandlePlaySE, - WallyHandlePlayFanfareOrBGM, - WallyHandleFaintingCry, - WallyHandleIntroSlide, - WallyHandleIntroTrainerBallThrow, - WallyHandleDrawPartyStatusSummary, - WallyHandleHidePartyStatusSummary, - WallyHandleEndBounceEffect, - WallyHandleSpriteInvisibility, - WallyHandleBattleAnimation, - WallyHandleLinkStandbyMsg, - WallyHandleResetActionMoveSelection, - WallyHandleCmd55, - WallyHandleBattleDebug, - WallyCmdEnd + [CONTROLLER_GETMONDATA] = WallyHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = WallyHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = WallyHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = WallyHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = WallyHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = WallyHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = WallyHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = WallyHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = WallyHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = WallyHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = WallyHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = WallyHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = WallyHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = WallyHandleBallThrowAnim, + [CONTROLLER_PAUSE] = WallyHandlePause, + [CONTROLLER_MOVEANIMATION] = WallyHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = WallyHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = WallyHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = WallyHandleChooseAction, + [CONTROLLER_YESNOBOX] = WallyHandleYesNoBox, + [CONTROLLER_CHOOSEMOVE] = WallyHandleChooseMove, + [CONTROLLER_OPENBAG] = WallyHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = WallyHandleChoosePokemon, + [CONTROLLER_23] = WallyHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = WallyHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = WallyHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = WallyHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = WallyHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = WallyHandleStatusXor, + [CONTROLLER_DATATRANSFER] = WallyHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = WallyHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = WallyHandlePlayBGM, + [CONTROLLER_32] = WallyHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = WallyHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = WallyHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = WallyHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = WallyHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = WallyHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = WallyHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = WallyHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = WallyHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = WallyHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = WallyHandleCantSwitch, + [CONTROLLER_PLAYSE] = WallyHandlePlaySE, + [CONTROLLER_PLAYFANFAREORBGM] = WallyHandlePlayFanfareOrBGM, + [CONTROLLER_FAINTINGCRY] = WallyHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = WallyHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = WallyHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = WallyHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = WallyHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = WallyHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = WallyHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = WallyHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = WallyHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = WallyHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = WallyHandleEndLinkBattle, + [CONTROLLER_DEBUGMENU] = WallyHandleBattleDebug, + [CONTROLLER_TERMINATOR_NOP] = WallyCmdEnd }; static void SpriteCB_Null7(void) @@ -192,7 +192,7 @@ static void WallyHandleActions(void) switch (gBattleStruct->wallyBattleState) { case 0: - gBattleStruct->wallyWaitFrames = 64; + gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG; gBattleStruct->wallyBattleState++; case 1: if (--gBattleStruct->wallyWaitFrames == 0) @@ -202,7 +202,7 @@ static void WallyHandleActions(void) WallyBufferExecCompleted(); gBattleStruct->wallyBattleState++; gBattleStruct->wallyMovesState = 0; - gBattleStruct->wallyWaitFrames = 64; + gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG; } break; case 2: @@ -213,17 +213,17 @@ static void WallyHandleActions(void) WallyBufferExecCompleted(); gBattleStruct->wallyBattleState++; gBattleStruct->wallyMovesState = 0; - gBattleStruct->wallyWaitFrames = 64; + gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG; } break; case 3: if (--gBattleStruct->wallyWaitFrames == 0) { - BtlController_EmitTwoReturnValues(1, 9, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_WALLY_THROW, 0); WallyBufferExecCompleted(); gBattleStruct->wallyBattleState++; gBattleStruct->wallyMovesState = 0; - gBattleStruct->wallyWaitFrames = 64; + gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG; } break; case 4: @@ -232,7 +232,7 @@ static void WallyHandleActions(void) PlaySE(SE_SELECT); ActionSelectionDestroyCursorAt(0); ActionSelectionCreateCursorAt(1, 0); - gBattleStruct->wallyWaitFrames = 64; + gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG; gBattleStruct->wallyBattleState++; } break; @@ -270,7 +270,7 @@ static void OpenBagAfterPaletteFade(void) if (!gPaletteFade.active) { gBattlerControllerFuncs[gActiveBattler] = CompleteOnChosenItem; - nullsub_35(); + ReshowBattleScreenDummy(); FreeAllWindowBuffers(); DoWallyTutorialBagMenu(); } @@ -285,7 +285,7 @@ static void CompleteOnChosenItem(void) } } -static void sub_816864C(void) +static void Intro_TryShinyAnimShowHealthbox(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) @@ -297,35 +297,35 @@ static void sub_816864C(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive - && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattlerControllerFuncs[gActiveBattler] = sub_8168818; + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForShinyAnimAndHealthbox; } } -static void sub_8168818(void) +static void Intro_WaitForShinyAnimAndHealthbox(void) { - bool32 r4 = FALSE; + bool32 healthboxAnimDone = FALSE; if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - r4 = TRUE; + healthboxAnimDone = TRUE; - if (r4 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim + if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; @@ -334,10 +334,10 @@ static void sub_8168818(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(0x27F9); - FreeSpritePaletteByTag(0x27F9); + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); - CreateTask(c3_0802FDF4, 10); + CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); @@ -380,7 +380,7 @@ static void DoHitAnimBlinkSpriteEffect(void) } } -static void sub_8168A20(void) +static void DoSwitchOutAnimation(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { @@ -1020,7 +1020,7 @@ static void WallyHandleReturnMonToBall(void) if (gBattleResources->bufferA[gActiveBattler][1] == 0) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerControllerFuncs[gActiveBattler] = sub_8168A20; + gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { @@ -1031,6 +1031,8 @@ static void WallyHandleReturnMonToBall(void) } } +#define sSpeedX data[0] + static void WallyHandleDrawTrainerPic(void) { DecompressTrainerBackPic(TRAINER_BACK_PIC_WALLY, gActiveBattler); @@ -1040,9 +1042,9 @@ static void WallyHandleDrawTrainerPic(void) 80 + 4 * (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].size), 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } @@ -1055,12 +1057,14 @@ static void WallyHandleTrainerSlide(void) 80 + 4 * (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].size), 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -96; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } +#undef sSpeedX + static void WallyHandleTrainerSlideBack(void) { WallyBufferExecCompleted(); @@ -1138,7 +1142,7 @@ static void WallyDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - sub_805EB9C(ST_OAM_AFFINE_OFF); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1147,7 +1151,7 @@ static void WallyDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_805EB9C(ST_OAM_AFFINE_NORMAL); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1192,7 +1196,7 @@ static void HandleChooseActionAfterDma3(void) if (!IsDma3ManagerBusyWithBgCopy()) { gBattle_BG0_X = 0; - gBattle_BG0_Y = 160; + gBattle_BG0_Y = DISPLAY_HEIGHT; gBattlerControllerFuncs[gActiveBattler] = WallyHandleActions; } } @@ -1212,7 +1216,7 @@ static void WallyHandleChooseAction(void) BattlePutTextOnWindow(gDisplayedStringBattle, 1); } -static void WallyHandleUnknownYesNoBox(void) +static void WallyHandleYesNoBox(void) { WallyBufferExecCompleted(); } @@ -1230,7 +1234,7 @@ static void WallyHandleChooseMove(void) if (!IsDma3ManagerBusyWithBgCopy()) { gBattle_BG0_X = 0; - gBattle_BG0_Y = 0x140; + gBattle_BG0_Y = DISPLAY_HEIGHT * 2; gBattleStruct->wallyMovesState++; } break; @@ -1247,7 +1251,7 @@ static void WallyHandleChooseMove(void) static void WallyHandleChooseItem(void) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattlerControllerFuncs[gActiveBattler] = OpenBagAfterPaletteFade; gBattlerInMenuId = gActiveBattler; } @@ -1347,22 +1351,22 @@ static void WallyHandleOneReturnValue_Duplicate(void) WallyBufferExecCompleted(); } -static void WallyHandleCmd37(void) +static void WallyHandleClearUnkVar(void) { WallyBufferExecCompleted(); } -static void WallyHandleCmd38(void) +static void WallyHandleSetUnkVar(void) { WallyBufferExecCompleted(); } -static void WallyHandleCmd39(void) +static void WallyHandleClearUnkFlag(void) { WallyBufferExecCompleted(); } -static void WallyHandleCmd40(void) +static void WallyHandleToggleUnkFlag(void) { WallyBufferExecCompleted(); } @@ -1382,7 +1386,7 @@ static void WallyHandleHitAnimation(void) } } -static void WallyHandleCmd42(void) +static void WallyHandleCantSwitch(void) { WallyBufferExecCompleted(); } @@ -1432,43 +1436,43 @@ static void WallyHandleIntroTrainerBallThrow(void) gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_WALLY].data, 0x100 + paletteNum * 16, 32); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; - taskId = CreateTask(sub_816AC04, 5); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; - gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerControllerFuncs[gActiveBattler] = nullsub_21; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } -static void sub_816AA80(u8 battlerId) +static void StartSendOutAnim(u8 battlerId) { u16 species; gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies = 0; gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - gUnknown_03005D7C[battlerId] = CreateInvisibleSpriteWithCallback(sub_805D714); + gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battlerId, 2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); - gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; - gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId; + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattleControllerData[battlerId]].data[2] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; @@ -1477,10 +1481,10 @@ static void sub_816AA80(u8 battlerId) StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerId]], gBattleMonForms[battlerId]); gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } -static void sub_816AC04(u8 taskId) +static void Task_StartSendOutAnim(u8 taskId) { if (gTasks[taskId].data[1] < 31) { @@ -1492,8 +1496,8 @@ static void sub_816AC04(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; gBattleResources->bufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; - sub_816AA80(gActiveBattler); - gBattlerControllerFuncs[gActiveBattler] = sub_816864C; + StartSendOutAnim(gActiveBattler); + gBattlerControllerFuncs[gActiveBattler] = Intro_TryShinyAnimShowHealthbox; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1549,7 +1553,7 @@ static void WallyHandleResetActionMoveSelection(void) WallyBufferExecCompleted(); } -static void WallyHandleCmd55(void) +static void WallyHandleEndLinkBattle(void) { gBattleOutcome = gBattleResources->bufferA[gActiveBattler][1]; FadeOutMapMusic(5); @@ -1557,7 +1561,7 @@ static void WallyHandleCmd55(void) WallyBufferExecCompleted(); if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) && gBattleTypeFlags & BATTLE_TYPE_LINK) - gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks; } static void WallyHandleBattleDebug(void) diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 79f1ff7ad0..2fc7cac075 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" #include "battle_anim.h" #include "battle_controllers.h" #include "battle_message.h" @@ -17,11 +17,10 @@ static EWRAM_DATA u8 sLinkSendTaskId = 0; static EWRAM_DATA u8 sLinkReceiveTaskId = 0; -static EWRAM_DATA u8 sUnknown_02022D0A = 0; -EWRAM_DATA struct UnusedControllerStruct gUnknown_02022D0C = {}; +static EWRAM_DATA u8 sUnused = 0; // Debug? Never read +EWRAM_DATA struct UnusedControllerStruct gUnusedControllerStruct = {}; // Debug? Unused code that writes to it, never read static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {}; -// this file's funcionts static void CreateTasksForSendRecvLinkBuffers(void); static void InitLinkBtlControllers(void); static void InitSinglePlayerBtlControllers(void); @@ -46,11 +45,11 @@ void SetUpBattleVarsAndBirchZigzagoon(void) { s32 i; - gBattleMainFunc = nullsub_20; + gBattleMainFunc = BeginBattleIntroDummy; for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - gBattlerControllerFuncs[i] = nullsub_21; + gBattlerControllerFuncs[i] = BattleControllerDummy; gBattlerPositions[i] = 0xFF; gActionSelectionCursor[i] = 0; gMoveSelectionCursor[i] = 0; @@ -66,23 +65,24 @@ void SetUpBattleVarsAndBirchZigzagoon(void) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) { ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], SPECIES_ZIGZAGOON, 2, 32, 0, 0, OT_ID_PLAYER_ID, 0); + CreateMon(&gEnemyParty[0], SPECIES_ZIGZAGOON, 2, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0); i = 0; SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &i); } - gUnknown_02022FF4 = 0; - gUnknown_0202428C = 0; + // Below are never read + gUnusedFirstBattleVar1 = 0; + gUnusedFirstBattleVar2 = 0; } -void sub_8032768(void) +void InitBattleControllers(void) { s32 i; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - sub_8184DA4(1); + RecordedBattle_Init(B_RECORD_MODE_RECORDING); else - sub_8184DA4(2); + RecordedBattle_Init(B_RECORD_MODE_PLAYBACK); if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) RecordedBattle_SaveParties(); @@ -184,9 +184,9 @@ static void InitSinglePlayerBtlControllers(void) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { - if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { - if (gBattleTypeFlags & BATTLE_TYPE_x80000000) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER) { gBattleMainFunc = BeginBattleIntro; @@ -269,9 +269,9 @@ static void InitSinglePlayerBtlControllers(void) } else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - u8 var; // multiplayer Id in a recorded battle? + u8 multiplayerId; - for (var = gUnknown_0203C7B4, i = 0; i < MAX_BATTLERS_COUNT; i++) + for (multiplayerId = gRecordedBattleMultiplayerId, i = 0; i < MAX_BATTLERS_COUNT; i++) { switch (gLinkPlayers[i].id) { @@ -285,7 +285,7 @@ static void InitSinglePlayerBtlControllers(void) break; } - if (i == var) + if (i == multiplayerId) { gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedPlayer; switch (gLinkPlayers[i].id) @@ -302,8 +302,8 @@ static void InitSinglePlayerBtlControllers(void) break; } } - else if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[var].id & 1)) - || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[var].id & 1))) + else if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[multiplayerId].id & 1)) + || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[multiplayerId].id & 1))) { gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToRecordedPlayer; switch (gLinkPlayers[i].id) @@ -347,7 +347,7 @@ static void InitSinglePlayerBtlControllers(void) gBattlerControllerFuncs[2] = SetControllerToRecordedPlayer; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { gBattlerControllerFuncs[1] = SetControllerToRecordedOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; @@ -372,7 +372,7 @@ static void InitSinglePlayerBtlControllers(void) gBattlerControllerFuncs[3] = SetControllerToRecordedPlayer; gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; - if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { gBattlerControllerFuncs[0] = SetControllerToRecordedOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; @@ -703,7 +703,7 @@ static void CreateTasksForSendRecvLinkBuffers(void) gTasks[sLinkReceiveTaskId].data[14] = 0; gTasks[sLinkReceiveTaskId].data[15] = 0; - sUnknown_02022D0A = 0; + sUnused = 0; } enum @@ -829,13 +829,13 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) } } -void sub_8033648(void) +void TryReceiveLinkBattleData(void) { u8 i; s32 j; u8 *recvBuffer; - if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_20)) + if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE)) { DestroyTask_RfuIdle(); for (i = 0; i < GetLinkPlayerCount(); i++) @@ -846,9 +846,9 @@ void sub_8033648(void) recvBuffer = (u8 *)gBlockRecvBuffer[i]; { u8 *dest, *src; - u16 r6 = gBlockRecvBuffer[i][2]; + u16 dataSize = gBlockRecvBuffer[i][2]; - if (gTasks[sLinkReceiveTaskId].data[14] + 9 + r6 > 0x1000) + if (gTasks[sLinkReceiveTaskId].data[14] + 9 + dataSize > 0x1000) { gTasks[sLinkReceiveTaskId].data[12] = gTasks[sLinkReceiveTaskId].data[14]; gTasks[sLinkReceiveTaskId].data[14] = 0; @@ -857,10 +857,10 @@ void sub_8033648(void) dest = &gLinkBattleRecvBuffer[gTasks[sLinkReceiveTaskId].data[14]]; src = recvBuffer; - for (j = 0; j < r6 + 8; j++) + for (j = 0; j < dataSize + 8; j++) dest[j] = src[j]; - gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + r6 + 8; + gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + dataSize + 8; } } } @@ -891,7 +891,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) return; memcpy(gBattleResources->bufferA[battlerId], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA], blockSize); - sub_803F850(battlerId); + MarkBattlerReceivedLinkData(battlerId); if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { @@ -1153,12 +1153,14 @@ void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitUnknownYesNoBox(u8 bufferId) +// Only used by the forfeit prompt in the Battle Frontier +// For other Yes/No boxes in battle, see Cmd_yesnobox +void BtlController_EmitYesNoBox(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX; - sBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX; - sBattleBuffersTransferData[2] = CONTROLLER_UNKNOWNYESNOBOX; - sBattleBuffersTransferData[3] = CONTROLLER_UNKNOWNYESNOBOX; + sBattleBuffersTransferData[0] = CONTROLLER_YESNOBOX; + sBattleBuffersTransferData[1] = CONTROLLER_YESNOBOX; + sBattleBuffersTransferData[2] = CONTROLLER_YESNOBOX; + sBattleBuffersTransferData[3] = CONTROLLER_YESNOBOX; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } @@ -1218,14 +1220,15 @@ void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// why is the argument u16 if it's being cast to s16 anyway? -void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints) +void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, s32 expPoints) { sBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE; sBattleBuffersTransferData[1] = partyId; - sBattleBuffersTransferData[2] = (s16)expPoints; - sBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8; - PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); + sBattleBuffersTransferData[2] = expPoints; + sBattleBuffersTransferData[3] = (expPoints & 0x0000FF00) >> 8; + sBattleBuffersTransferData[4] = (expPoints & 0x00FF0000) >> 16; + sBattleBuffersTransferData[5] = (expPoints & 0xFF000000) >> 24; + PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6); } void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2) @@ -1293,7 +1296,7 @@ void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataPara { s32 i; - sBattleBuffersTransferData[0] = CONTROLLER_31; + sBattleBuffersTransferData[0] = CONTROLLER_PLAYBGM; sBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; for (i = 0; i < songId; i++) // ???? @@ -1313,13 +1316,15 @@ void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3); } -void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2) +void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u32 arg2) { sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES; sBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[2] = arg2; - sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; - PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); + sBattleBuffersTransferData[3] = (arg2 & 0x0000FF00) >> 8; + sBattleBuffersTransferData[4] = (arg2 & 0x00FF0000) >> 16; + sBattleBuffersTransferData[5] = (arg2 & 0xFF000000) >> 24; + PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6); } void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battlePartyOrder) @@ -1351,37 +1356,37 @@ void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitCmd37(u8 bufferId) +void BtlController_EmitClearUnkVar(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_37; - sBattleBuffersTransferData[1] = CONTROLLER_37; - sBattleBuffersTransferData[2] = CONTROLLER_37; - sBattleBuffersTransferData[3] = CONTROLLER_37; + sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[2] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[3] = CONTROLLER_CLEARUNKVAR; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitCmd38(u8 bufferId, u8 b) +void BtlController_EmitSetUnkVar(u8 bufferId, u8 b) { - sBattleBuffersTransferData[0] = CONTROLLER_38; + sBattleBuffersTransferData[0] = CONTROLLER_SETUNKVAR; sBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); } -void BtlController_EmitCmd39(u8 bufferId) +void BtlController_EmitClearUnkFlag(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_39; - sBattleBuffersTransferData[1] = CONTROLLER_39; - sBattleBuffersTransferData[2] = CONTROLLER_39; - sBattleBuffersTransferData[3] = CONTROLLER_39; + sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[2] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[3] = CONTROLLER_CLEARUNKFLAG; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitCmd40(u8 bufferId) +void BtlController_EmitToggleUnkFlag(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_40; - sBattleBuffersTransferData[1] = CONTROLLER_40; - sBattleBuffersTransferData[2] = CONTROLLER_40; - sBattleBuffersTransferData[3] = CONTROLLER_40; + sBattleBuffersTransferData[0] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[1] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[2] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[3] = CONTROLLER_TOGGLEUNKFLAG; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } @@ -1394,18 +1399,18 @@ void BtlController_EmitHitAnimation(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitCmd42(u8 bufferId) +void BtlController_EmitCantSwitch(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_42; - sBattleBuffersTransferData[1] = CONTROLLER_42; - sBattleBuffersTransferData[2] = CONTROLLER_42; - sBattleBuffersTransferData[3] = CONTROLLER_42; + sBattleBuffersTransferData[0] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[1] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[2] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[3] = CONTROLLER_CANTSWITCH; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } void BtlController_EmitPlaySE(u8 bufferId, u16 songId) { - sBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; + sBattleBuffersTransferData[0] = CONTROLLER_PLAYSE; sBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; @@ -1446,13 +1451,13 @@ void BtlController_EmitIntroTrainerBallThrow(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2) +void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 flags) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; - sBattleBuffersTransferData[1] = arg2 & 0x7F; - sBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7; + sBattleBuffersTransferData[1] = flags & 0x7F; + sBattleBuffersTransferData[2] = (flags & 0x80) >> 7; // If true, skip delay after drawing. True during intro sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * PARTY_SIZE); i++) sBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus)); @@ -1495,14 +1500,14 @@ void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2) +void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 record) { - bool8 arg2_ = arg2; + bool8 record_ = record; sBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG; sBattleBuffersTransferData[1] = arg1; - if (arg2_) - sBattleBuffersTransferData[3] = sBattleBuffersTransferData[2] = sub_81850DC(&sBattleBuffersTransferData[4]); + if (record_) + sBattleBuffersTransferData[3] = sBattleBuffersTransferData[2] = RecordedBattle_BufferNewBattlerData(&sBattleBuffersTransferData[4]); else sBattleBuffersTransferData[3] = sBattleBuffersTransferData[2] = 0; @@ -1516,13 +1521,13 @@ void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); } -void BtlController_EmitCmd55(u8 bufferId, u8 battleOutcome) +void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome) { - sBattleBuffersTransferData[0] = CONTROLLER_55; + sBattleBuffersTransferData[0] = CONTROLLER_ENDLINKBATTLE; sBattleBuffersTransferData[1] = battleOutcome; sBattleBuffersTransferData[2] = gSaveBlock2Ptr->frontier.disableRecordBattle; sBattleBuffersTransferData[3] = gSaveBlock2Ptr->frontier.disableRecordBattle; - sBattleBuffersTransferData[5] = sBattleBuffersTransferData[4] = sub_81850DC(&sBattleBuffersTransferData[6]); + sBattleBuffersTransferData[5] = sBattleBuffersTransferData[4] = RecordedBattle_BufferNewBattlerData(&sBattleBuffersTransferData[6]); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sBattleBuffersTransferData[4] + 6); } diff --git a/src/battle_debug.c b/src/battle_debug.c index 05e6c9ef24..b9cfcdc033 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -18,7 +18,8 @@ #include "text_window.h" #include "international_string_util.h" #include "strings.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" +#include "battle_ai_util.h" #include "list_menu.h" #include "decompress.h" #include "trainer_pokemon_sprites.h" @@ -32,6 +33,7 @@ #include "constants/moves.h" #include "constants/items.h" #include "constants/rgb.h" +#include "constants/hold_effects.h" #define MAX_MODIFY_DIGITS 4 @@ -98,6 +100,7 @@ enum LIST_ITEM_SIDE_STATUS, LIST_ITEM_AI, LIST_ITEM_AI_MOVES_PTS, + LIST_ITEM_AI_INFO, LIST_ITEM_VARIOUS, LIST_ITEM_COUNT }; @@ -149,7 +152,11 @@ enum VARIOUS_IN_LOVE, }; +// Static Declarations +static const u8 *GetHoldEffectName(u16 holdEffect); + // const rom data +static const u8 sText_HoldEffect[] = _("Hold Effect"); static const u8 sText_Ability[] = _("Ability"); static const u8 sText_Moves[] = _("Moves"); static const u8 sText_Stats[] = _("Stats"); @@ -222,6 +229,7 @@ static const u8 sText_HpAware[] = _("HP aware"); static const u8 sText_Unknown[] = _("Unknown"); static const u8 sText_InLove[] = _("In Love"); static const u8 sText_AIMovePts[] = _("AI Move Pts"); +static const u8 sText_AiKnowledge[] = _("AI Info"); static const u8 sText_EffectOverride[] = _("Effect Override"); static const u8 sText_EmptyString[] = _(""); @@ -319,6 +327,7 @@ static const struct ListMenuItem sMainListItems[] = {sText_SideStatus, LIST_ITEM_SIDE_STATUS}, {sText_AI, LIST_ITEM_AI}, {sText_AIMovePts, LIST_ITEM_AI_MOVES_PTS}, + {sText_AiKnowledge, LIST_ITEM_AI_INFO}, {sText_Various, LIST_ITEM_VARIOUS}, }; @@ -737,9 +746,15 @@ static void Task_ShowAiPoints(u8 taskId) { if (i != data->aiBattlerId && IsBattlerAlive(i)) { + #ifndef POKEMON_EXPANSION data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species, SpriteCallbackDummy, 95 + (count * 60), 17, 0, 0, FALSE); + #else + data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species, + SpriteCallbackDummy, + 95 + (count * 60), 17, 0, 0); + #endif gSprites[data->aiIconSpriteIds[i]].data[0] = i; // battler id count++; } @@ -748,11 +763,19 @@ static void Task_ShowAiPoints(u8 taskId) data->aiIconSpriteIds[i] = 0xFF; } } + #ifndef POKEMON_EXPANSION data->aiMonSpriteId = CreateMonPicSprite_HandleDeoxys(gBattleMons[data->aiBattlerId].species, gBattleMons[data->aiBattlerId].otId, gBattleMons[data->aiBattlerId].personality, TRUE, 39, 130, 15, 0xFFFF); + #else + data->aiMonSpriteId = CreateMonPicSprite(gBattleMons[data->aiBattlerId].species, + gBattleMons[data->aiBattlerId].otId, + gBattleMons[data->aiBattlerId].personality, + TRUE, + 39, 130, 15, 0xFFFF); + #endif data->aiViewState++; break; // Put text @@ -783,6 +806,128 @@ static void SwitchToAiPointsView(u8 taskId) GetStructPtr(taskId)->aiViewState = 0; } +static const u8 *const sAiInfoItemNames[] = +{ + sText_Ability, + sText_HeldItem, + sText_HoldEffect, +}; +static void PutAiInfoText(struct BattleDebugMenu *data) +{ + u32 i, j, count; + u8 *text = malloc(0x50); + + FillWindowPixelBuffer(data->aiMovesWindowId, 0x11); + + // item names + for (i = 0; i < ARRAY_COUNT(sAiInfoItemNames); i++) + { + AddTextPrinterParameterized(data->aiMovesWindowId, 1, sAiInfoItemNames[i], 3, i * 15, 0, NULL); + } + + // items info + for (i = 0; i < gBattlersCount; i++) + { + if (GET_BATTLER_SIDE(i) == B_SIDE_PLAYER && IsBattlerAlive(i)) + { + u16 ability = AI_GetAbility(i); + u16 holdEffect = AI_GetHoldEffect(i); + u16 item = gBattleMons[i].item; + u8 x = (i == B_POSITION_PLAYER_LEFT) ? 83 + (i) * 75 : 83 + (i-1) * 75; + AddTextPrinterParameterized(data->aiMovesWindowId, 0, gAbilityNames[ability], x, 0, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, 0, ItemId_GetName(item), x, 15, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, 0, GetHoldEffectName(holdEffect), x, 30, 0, NULL); + } + } + + CopyWindowToVram(data->aiMovesWindowId, 3); + free(text); +} + +static void Task_ShowAiKnowledge(u8 taskId) +{ + u32 i, count; + struct WindowTemplate winTemplate; + struct BattleDebugMenu *data = GetStructPtr(taskId); + + switch (data->aiViewState) + { + case 0: + HideBg(0); + ShowBg(1); + + // Swap battler if it's player mon + data->aiBattlerId = data->battlerId; + while (!IsBattlerAIControlled(data->aiBattlerId)) + { + if (++data->aiBattlerId >= gBattlersCount) + data->aiBattlerId = 0; + } + + LoadMonIconPalettes(); + for (count = 0, i = 0; i < MAX_BATTLERS_COUNT; i++) + { + if (GET_BATTLER_SIDE(i) == B_SIDE_PLAYER && IsBattlerAlive(i)) + { + #ifndef POKEMON_EXPANSION + data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species, + SpriteCallbackDummy, + 95 + (count * 80), 17, 0, 0, FALSE); + #else + data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species, + SpriteCallbackDummy, + 95 + (count * 80), 17, 0, 0); + #endif + gSprites[data->aiIconSpriteIds[i]].data[0] = i; // battler id + count++; + } + else + { + data->aiIconSpriteIds[i] = 0xFF; + } + } + #ifndef POKEMON_EXPANSION + data->aiMonSpriteId = CreateMonPicSprite_HandleDeoxys(gBattleMons[data->aiBattlerId].species, + gBattleMons[data->aiBattlerId].otId, + gBattleMons[data->aiBattlerId].personality, + TRUE, + 39, 130, 15, 0xFFFF); + #else + data->aiMonSpriteId = CreateMonPicSprite(gBattleMons[data->aiBattlerId].species, + gBattleMons[data->aiBattlerId].otId, + gBattleMons[data->aiBattlerId].personality, + TRUE, + 39, 130, 15, 0xFFFF); + #endif + data->aiViewState++; + break; + // Put text + case 1: + winTemplate = CreateWindowTemplate(1, 0, 4, 27, 14, 15, 0x200); + data->aiMovesWindowId = AddWindow(&winTemplate); + PutWindowTilemap(data->aiMovesWindowId); + PutAiInfoText(data); + data->aiViewState++; + break; + // Input + case 2: + if (gMain.newKeys & (SELECT_BUTTON | B_BUTTON)) + { + SwitchToDebugView(taskId); + HideBg(1); + ShowBg(0); + return; + } + break; + } +} + +static void SwitchToAiInfoView(u8 taskId) +{ + gTasks[taskId].func = Task_ShowAiKnowledge; + GetStructPtr(taskId)->aiViewState = 0; +} + static void SwitchToDebugView(u8 taskId) { u32 i; @@ -844,6 +989,11 @@ static void Task_DebugMenuProcessInput(u8 taskId) SwitchToAiPointsView(taskId); return; } + else if (listItemId == LIST_ITEM_AI_INFO && gMain.newKeys & A_BUTTON) + { + SwitchToAiInfoView(taskId); + return; + } data->currentMainListItemId = listItemId; // Create the secondary menu list. @@ -890,8 +1040,8 @@ static void Task_DebugMenuProcessInput(u8 taskId) if (data->modifyArrows.currentDigit != (data->modifyArrows.maxDigits - 1)) { data->modifyArrows.currentDigit++; - gSprites[data->modifyArrows.arrowSpriteId[0]].pos2.x += 6; - gSprites[data->modifyArrows.arrowSpriteId[1]].pos2.x += 6; + gSprites[data->modifyArrows.arrowSpriteId[0]].x2 += 6; + gSprites[data->modifyArrows.arrowSpriteId[1]].x2 += 6; } } else if (gMain.newKeys & DPAD_LEFT) @@ -899,8 +1049,8 @@ static void Task_DebugMenuProcessInput(u8 taskId) if (data->modifyArrows.currentDigit != 0) { data->modifyArrows.currentDigit--; - gSprites[data->modifyArrows.arrowSpriteId[0]].pos2.x -= 6; - gSprites[data->modifyArrows.arrowSpriteId[1]].pos2.x -= 6; + gSprites[data->modifyArrows.arrowSpriteId[0]].x2 -= 6; + gSprites[data->modifyArrows.arrowSpriteId[1]].x2 -= 6; } } else if (gMain.newKeys & DPAD_UP) @@ -1040,6 +1190,7 @@ static void CreateSecondaryListMenu(struct BattleDebugMenu *data) itemsCount = ARRAY_COUNT(sSideStatusListItems); break; case LIST_ITEM_AI_MOVES_PTS: + case LIST_ITEM_AI_INFO: return; } @@ -1171,7 +1322,7 @@ static void PrintSecondaryEntries(struct BattleDebugMenu *data) static void DestroyModifyArrows(struct BattleDebugMenu *data) { - FreeSpritePaletteByTag(gSpritePalette_RtcArrow.tag); + FreeSpritePaletteByTag(gSpritePalette_Arrow.tag); if (data->modifyArrows.arrowSpriteId[0] != 0xFF) DestroySprite(&gSprites[data->modifyArrows.arrowSpriteId[0]]); if (data->modifyArrows.arrowSpriteId[1] != 0xFF) @@ -1440,9 +1591,9 @@ static u8 *GetSideStatusValue(struct BattleDebugMenu *data, bool32 changeStatus, static void SetUpModifyArrows(struct BattleDebugMenu *data) { - LoadSpritePalette(&gSpritePalette_RtcArrow); - data->modifyArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_RtcArrow, 207, 12, 0); - data->modifyArrows.arrowSpriteId[1] = CreateSprite(&gSpriteTemplate_RtcArrow, 207, 36, 0); + LoadSpritePalette(&gSpritePalette_Arrow); + data->modifyArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_Arrow, 207, 12, 0); + data->modifyArrows.arrowSpriteId[1] = CreateSprite(&gSpriteTemplate_Arrow, 207, 36, 0); gSprites[data->modifyArrows.arrowSpriteId[1]].animNum = 1; switch (data->currentMainListItemId) { @@ -1677,3 +1828,289 @@ static void UpdateMonData(struct BattleDebugMenu *data) } } } + +static const u8 sText_HoldEffectNone[] = _("????????"); +static const u8 sText_HoldEffectRestoreHp[] = _("Restore Hp"); +static const u8 sText_HoldEffectCurePar[] = _("Cure Par"); +static const u8 sText_HoldEffectCureSlp[] = _("Cure Slp"); +static const u8 sText_HoldEffectCurePsn[] = _("Cure Psn"); +static const u8 sText_HoldEffectCureBrn[] = _("Cure Brn"); +static const u8 sText_HoldEffectCureFrz[] = _("Cure Frz"); +static const u8 sText_HoldEffectRestorePp[] = _("Restore Pp"); +static const u8 sText_HoldEffectCureConfusion[] = _("Cure Confusion"); +static const u8 sText_HoldEffectCureStatus[] = _("Cure Status"); +static const u8 sText_HoldEffectConfuseSpicy[] = _("Confuse Spicy"); +static const u8 sText_HoldEffectConfuseDry[] = _("Confuse Dry"); +static const u8 sText_HoldEffectConfuseSweet[] = _("Confuse Sweet"); +static const u8 sText_HoldEffectConfuseBitter[] = _("Confuse Bitter"); +static const u8 sText_HoldEffectConfuseSour[] = _("Confuse Sour"); +static const u8 sText_HoldEffectAttackUp[] = _("Attack Up"); +static const u8 sText_HoldEffectDefenseUp[] = _("Defense Up"); +static const u8 sText_HoldEffectSpeedUp[] = _("Speed Up"); +static const u8 sText_HoldEffectSpAttackUp[] = _("Sp Attack Up"); +static const u8 sText_HoldEffectSpDefenseUp[] = _("Sp Defense Up"); +static const u8 sText_HoldEffectCriticalUp[] = _("Critical Up"); +static const u8 sText_HoldEffectRandomStatUp[] = _("Random Stat Up"); +static const u8 sText_HoldEffectEvasionUp[] = _("Evasion Up"); +static const u8 sText_HoldEffectRestoreStats[] = _("Restore Stats"); +static const u8 sText_HoldEffectMachoBrace[] = _("Macho Brace"); +static const u8 sText_HoldEffectExpShare[] = _("Exp Share"); +static const u8 sText_HoldEffectQuickClaw[] = _("Quick Claw"); +static const u8 sText_HoldEffectFriendshipUp[] = _("Friendship Up"); +static const u8 sText_HoldEffectMentalHerb[] = _("Mental Herb"); +static const u8 sText_HoldEffectChoiceBand[] = _("Choice Band"); +static const u8 sText_HoldEffectFlinch[] = _("Flinch"); +static const u8 sText_HoldEffectBugPower[] = _("Bug Power"); +static const u8 sText_HoldEffectDoublePrize[] = _("Double Prize"); +static const u8 sText_HoldEffectRepel[] = _("Repel"); +static const u8 sText_HoldEffectSoulDew[] = _("Soul Dew"); +static const u8 sText_HoldEffectDeepSeaTooth[] = _("Deep Sea Tooth"); +static const u8 sText_HoldEffectDeepSeaScale[] = _("Deep Sea Scale"); +static const u8 sText_HoldEffectCanAlwaysRun[] = _("Can Always Run"); +static const u8 sText_HoldEffectPreventEvolve[] = _("Prevent Evolve"); +static const u8 sText_HoldEffectFocusBand[] = _("Focus Band"); +static const u8 sText_HoldEffectLuckyEgg[] = _("Lucky Egg"); +static const u8 sText_HoldEffectScopeLens[] = _("Scope Lens"); +static const u8 sText_HoldEffectSteelPower[] = _("Steel Power"); +static const u8 sText_HoldEffectLeftovers[] = _("Leftovers"); +static const u8 sText_HoldEffectDragonScale[] = _("Dragon Scale"); +static const u8 sText_HoldEffectLightBall[] = _("Light Ball"); +static const u8 sText_HoldEffectGroundPower[] = _("Ground Power"); +static const u8 sText_HoldEffectRockPower[] = _("Rock Power"); +static const u8 sText_HoldEffectGrassPower[] = _("Grass Power"); +static const u8 sText_HoldEffectDarkPower[] = _("Dark Power"); +static const u8 sText_HoldEffectFightingPower[] = _("Fighting Power"); +static const u8 sText_HoldEffectElectricPower[] = _("Electric Power"); +static const u8 sText_HoldEffectWaterPower[] = _("Water Power"); +static const u8 sText_HoldEffectFlyingPower[] = _("Flying Power"); +static const u8 sText_HoldEffectPoisonPower[] = _("Poison Power"); +static const u8 sText_HoldEffectIcePower[] = _("Ice Power"); +static const u8 sText_HoldEffectGhostPower[] = _("Ghost Power"); +static const u8 sText_HoldEffectPsychicPower[] = _("Psychic Power"); +static const u8 sText_HoldEffectFirePower[] = _("Fire Power"); +static const u8 sText_HoldEffectDragonPower[] = _("Dragon Power"); +static const u8 sText_HoldEffectNormalPower[] = _("Normal Power"); +static const u8 sText_HoldEffectUpGrade[] = _("Up Grade"); +static const u8 sText_HoldEffectShellBell[] = _("Shell Bell"); +static const u8 sText_HoldEffectLuckyPunch[] = _("Lucky Punch"); +static const u8 sText_HoldEffectMetalPowder[] = _("Metal Powder"); +static const u8 sText_HoldEffectThickClub[] = _("Thick Club"); +static const u8 sText_HoldEffectStick[] = _("Stick"); +static const u8 sText_HoldEffectChoiceScarf[] = _("Choice Scarf"); +static const u8 sText_HoldEffectChoiceSpecs[] = _("Choice Specs"); +static const u8 sText_HoldEffectDampRock[] = _("Damp Rock"); +static const u8 sText_HoldEffectGripClaw[] = _("Grip Claw"); +static const u8 sText_HoldEffectHeatRock[] = _("Heat Rock"); +static const u8 sText_HoldEffectIcyRock[] = _("Icy Rock"); +static const u8 sText_HoldEffectLightClay[] = _("Light Clay"); +static const u8 sText_HoldEffectSmoothRock[] = _("Smooth Rock"); +static const u8 sText_HoldEffectPowerHerb[] = _("Power Herb"); +static const u8 sText_HoldEffectBigRoot[] = _("Big Root"); +static const u8 sText_HoldEffectExpertBelt[] = _("Expert Belt"); +static const u8 sText_HoldEffectLifeOrb[] = _("Life Orb"); +static const u8 sText_HoldEffectMetronome[] = _("Metronome"); +static const u8 sText_HoldEffectMuscleBand[] = _("Muscle Band"); +static const u8 sText_HoldEffectWideLens[] = _("Wide Lens"); +static const u8 sText_HoldEffectWiseGlasses[] = _("Wise Glasses"); +static const u8 sText_HoldEffectZoomLens[] = _("Zoom Lens"); +static const u8 sText_HoldEffectLaggingTail[] = _("Lagging Tail"); +static const u8 sText_HoldEffectFocusSash[] = _("Focus Sash"); +static const u8 sText_HoldEffectFlameOrb[] = _("Flame Orb"); +static const u8 sText_HoldEffectToxicOrb[] = _("Toxic Orb"); +static const u8 sText_HoldEffectStickyBarb[] = _("Sticky Barb"); +static const u8 sText_HoldEffectIronBall[] = _("Iron Ball"); +static const u8 sText_HoldEffectBlackSludge[] = _("Black Sludge"); +static const u8 sText_HoldEffectDestinyKnot[] = _("Destiny Knot"); +static const u8 sText_HoldEffectShedShell[] = _("Shed Shell"); +static const u8 sText_HoldEffectQuickPowder[] = _("Quick Powder"); +static const u8 sText_HoldEffectAdamantOrb[] = _("Adamant Orb"); +static const u8 sText_HoldEffectLustrousOrb[] = _("Lustrous Orb"); +static const u8 sText_HoldEffectGriseousOrb[] = _("Griseous Orb"); +static const u8 sText_HoldEffectGracidea[] = _("Gracidea"); +static const u8 sText_HoldEffectResistBerry[] = _("Resist Berry"); +static const u8 sText_HoldEffectPowerItem[] = _("Power Item"); +static const u8 sText_HoldEffectRestorePctHp[] = _("Restore Pct Hp"); +static const u8 sText_HoldEffectMicleBerry[] = _("Micle Berry"); +static const u8 sText_HoldEffectCustapBerry[] = _("Custap Berry"); +static const u8 sText_HoldEffectJabocaBerry[] = _("Jaboca Berry"); +static const u8 sText_HoldEffectRowapBerry[] = _("Rowap Berry"); +static const u8 sText_HoldEffectKeeBerry[] = _("Kee Berry"); +static const u8 sText_HoldEffectMarangaBerry[] = _("Maranga Berry"); +static const u8 sText_HoldEffectFloatStone[] = _("Float Stone"); +static const u8 sText_HoldEffectEviolite[] = _("Eviolite"); +static const u8 sText_HoldEffectAssaultVest[] = _("Assault Vest"); +static const u8 sText_HoldEffectDrive[] = _("Drive"); +static const u8 sText_HoldEffectGems[] = _("Gems"); +static const u8 sText_HoldEffectRockyHelmet[] = _("Rocky Helmet"); +static const u8 sText_HoldEffectAirBalloon[] = _("Air Balloon"); +static const u8 sText_HoldEffectRedCard[] = _("Red Card"); +static const u8 sText_HoldEffectRingTarget[] = _("Ring Target"); +static const u8 sText_HoldEffectBindingBand[] = _("Binding Band"); +static const u8 sText_HoldEffectEjectButton[] = _("Eject Button"); +static const u8 sText_HoldEffectAbsorbBulb[] = _("Absorb Bulb"); +static const u8 sText_HoldEffectCellBattery[] = _("Cell Battery"); +static const u8 sText_HoldEffectFairyPower[] = _("Fairy Power"); +static const u8 sText_HoldEffectMegaStone[] = _("Mega Stone"); +static const u8 sText_HoldEffectSafetyGoogles[] = _("Safety Googles"); +static const u8 sText_HoldEffectLuminousMoss[] = _("Luminous Moss"); +static const u8 sText_HoldEffectSnowball[] = _("Snowball"); +static const u8 sText_HoldEffectWeaknessPolicy[] = _("Weakness Policy"); +static const u8 sText_HoldEffectProtectivePads[] = _("Protective Pads"); +static const u8 sText_HoldEffectTerrainExtender[] = _("Terrain Extender"); +static const u8 sText_HoldEffectSeeds[] = _("Seeds"); +static const u8 sText_HoldEffectAdrenalineOrb[] = _("Adrenaline Orb"); +static const u8 sText_HoldEffectMemory[] = _("Memory"); +static const u8 sText_HoldEffectPlate[] = _("Plate"); +static const u8 sText_HoldEffectUtilityUmbrella[] = _("Utility Umbrella"); +static const u8 sText_HoldEffectEjectPack[] = _("Eject Pack"); +static const u8 sText_HoldEffectRoomService[] = _("Room Service"); +static const u8 sText_HoldEffectBlunderPolicy[] = _("Blunder Policy"); +static const u8 sText_HoldEffectHeavyDutyBoots[] = _("Heavy Duty Boots"); +static const u8 sText_HoldEffectThroatSpray[] = _("Throat Spray"); +static const u8 *const sHoldEffectNames[] = +{ + [HOLD_EFFECT_NONE] = sText_HoldEffectNone, + [HOLD_EFFECT_RESTORE_HP] = sText_HoldEffectRestoreHp, + [HOLD_EFFECT_CURE_PAR] = sText_HoldEffectCurePar, + [HOLD_EFFECT_CURE_SLP] = sText_HoldEffectCureSlp, + [HOLD_EFFECT_CURE_PSN] = sText_HoldEffectCurePsn, + [HOLD_EFFECT_CURE_BRN] = sText_HoldEffectCureBrn, + [HOLD_EFFECT_CURE_FRZ] = sText_HoldEffectCureFrz, + [HOLD_EFFECT_RESTORE_PP] = sText_HoldEffectRestorePp, + [HOLD_EFFECT_CURE_CONFUSION] = sText_HoldEffectCureConfusion, + [HOLD_EFFECT_CURE_STATUS] = sText_HoldEffectCureStatus, + [HOLD_EFFECT_CONFUSE_SPICY] = sText_HoldEffectConfuseSpicy, + [HOLD_EFFECT_CONFUSE_DRY] = sText_HoldEffectConfuseDry, + [HOLD_EFFECT_CONFUSE_SWEET] = sText_HoldEffectConfuseSweet, + [HOLD_EFFECT_CONFUSE_BITTER] = sText_HoldEffectConfuseBitter, + [HOLD_EFFECT_CONFUSE_SOUR] = sText_HoldEffectConfuseSour, + [HOLD_EFFECT_ATTACK_UP] = sText_HoldEffectAttackUp, + [HOLD_EFFECT_DEFENSE_UP] = sText_HoldEffectDefenseUp, + [HOLD_EFFECT_SPEED_UP] = sText_HoldEffectSpeedUp, + [HOLD_EFFECT_SP_ATTACK_UP] = sText_HoldEffectSpAttackUp, + [HOLD_EFFECT_SP_DEFENSE_UP] = sText_HoldEffectSpDefenseUp, + [HOLD_EFFECT_CRITICAL_UP] = sText_HoldEffectCriticalUp, + [HOLD_EFFECT_RANDOM_STAT_UP] = sText_HoldEffectRandomStatUp, + [HOLD_EFFECT_EVASION_UP] = sText_HoldEffectEvasionUp, + [HOLD_EFFECT_RESTORE_STATS] = sText_HoldEffectRestoreStats, + [HOLD_EFFECT_MACHO_BRACE] = sText_HoldEffectMachoBrace, + [HOLD_EFFECT_EXP_SHARE] = sText_HoldEffectExpShare, + [HOLD_EFFECT_QUICK_CLAW] = sText_HoldEffectQuickClaw, + [HOLD_EFFECT_FRIENDSHIP_UP] = sText_HoldEffectFriendshipUp, + //[HOLD_EFFECT_MENTAL_HERB] = sText_HoldEffectMentalHerb, + [HOLD_EFFECT_CHOICE_BAND] = sText_HoldEffectChoiceBand, + [HOLD_EFFECT_FLINCH] = sText_HoldEffectFlinch, + [HOLD_EFFECT_BUG_POWER] = sText_HoldEffectBugPower, + [HOLD_EFFECT_DOUBLE_PRIZE] = sText_HoldEffectDoublePrize, + [HOLD_EFFECT_REPEL] = sText_HoldEffectRepel, + [HOLD_EFFECT_SOUL_DEW] = sText_HoldEffectSoulDew, + [HOLD_EFFECT_DEEP_SEA_TOOTH] = sText_HoldEffectDeepSeaTooth, + [HOLD_EFFECT_DEEP_SEA_SCALE] = sText_HoldEffectDeepSeaScale, + [HOLD_EFFECT_CAN_ALWAYS_RUN] = sText_HoldEffectCanAlwaysRun, + [HOLD_EFFECT_PREVENT_EVOLVE] = sText_HoldEffectPreventEvolve, + [HOLD_EFFECT_FOCUS_BAND] = sText_HoldEffectFocusBand, + [HOLD_EFFECT_LUCKY_EGG] = sText_HoldEffectLuckyEgg, + [HOLD_EFFECT_SCOPE_LENS] = sText_HoldEffectScopeLens, + [HOLD_EFFECT_STEEL_POWER] = sText_HoldEffectSteelPower, + [HOLD_EFFECT_LEFTOVERS] = sText_HoldEffectLeftovers, + [HOLD_EFFECT_DRAGON_SCALE] = sText_HoldEffectDragonScale, + [HOLD_EFFECT_LIGHT_BALL] = sText_HoldEffectLightBall, + [HOLD_EFFECT_GROUND_POWER] = sText_HoldEffectGroundPower, + [HOLD_EFFECT_ROCK_POWER] = sText_HoldEffectRockPower, + [HOLD_EFFECT_GRASS_POWER] = sText_HoldEffectGrassPower, + [HOLD_EFFECT_DARK_POWER] = sText_HoldEffectDarkPower, + [HOLD_EFFECT_FIGHTING_POWER] = sText_HoldEffectFightingPower, + [HOLD_EFFECT_ELECTRIC_POWER] = sText_HoldEffectElectricPower, + [HOLD_EFFECT_WATER_POWER] = sText_HoldEffectWaterPower, + [HOLD_EFFECT_FLYING_POWER] = sText_HoldEffectFlyingPower, + [HOLD_EFFECT_POISON_POWER] = sText_HoldEffectPoisonPower, + [HOLD_EFFECT_ICE_POWER] = sText_HoldEffectIcePower, + [HOLD_EFFECT_GHOST_POWER] = sText_HoldEffectGhostPower, + [HOLD_EFFECT_PSYCHIC_POWER] = sText_HoldEffectPsychicPower, + [HOLD_EFFECT_FIRE_POWER] = sText_HoldEffectFirePower, + [HOLD_EFFECT_DRAGON_POWER] = sText_HoldEffectDragonPower, + [HOLD_EFFECT_NORMAL_POWER] = sText_HoldEffectNormalPower, + [HOLD_EFFECT_UP_GRADE] = sText_HoldEffectUpGrade, + [HOLD_EFFECT_SHELL_BELL] = sText_HoldEffectShellBell, + [HOLD_EFFECT_LUCKY_PUNCH] = sText_HoldEffectLuckyPunch, + [HOLD_EFFECT_METAL_POWDER] = sText_HoldEffectMetalPowder, + [HOLD_EFFECT_THICK_CLUB] = sText_HoldEffectThickClub, + [HOLD_EFFECT_STICK] = sText_HoldEffectStick, + [HOLD_EFFECT_CHOICE_SCARF] = sText_HoldEffectChoiceScarf, + [HOLD_EFFECT_CHOICE_SPECS] = sText_HoldEffectChoiceSpecs, + [HOLD_EFFECT_DAMP_ROCK] = sText_HoldEffectDampRock, + [HOLD_EFFECT_GRIP_CLAW] = sText_HoldEffectGripClaw, + [HOLD_EFFECT_HEAT_ROCK] = sText_HoldEffectHeatRock, + [HOLD_EFFECT_ICY_ROCK] = sText_HoldEffectIcyRock, + [HOLD_EFFECT_LIGHT_CLAY] = sText_HoldEffectLightClay, + [HOLD_EFFECT_SMOOTH_ROCK] = sText_HoldEffectSmoothRock, + [HOLD_EFFECT_POWER_HERB] = sText_HoldEffectPowerHerb, + [HOLD_EFFECT_BIG_ROOT] = sText_HoldEffectBigRoot, + [HOLD_EFFECT_EXPERT_BELT] = sText_HoldEffectExpertBelt, + [HOLD_EFFECT_LIFE_ORB] = sText_HoldEffectLifeOrb, + [HOLD_EFFECT_METRONOME] = sText_HoldEffectMetronome, + [HOLD_EFFECT_MUSCLE_BAND] = sText_HoldEffectMuscleBand, + [HOLD_EFFECT_WIDE_LENS] = sText_HoldEffectWideLens, + [HOLD_EFFECT_WISE_GLASSES] = sText_HoldEffectWiseGlasses, + [HOLD_EFFECT_ZOOM_LENS] = sText_HoldEffectZoomLens, + [HOLD_EFFECT_LAGGING_TAIL] = sText_HoldEffectLaggingTail, + [HOLD_EFFECT_FOCUS_SASH] = sText_HoldEffectFocusSash, + [HOLD_EFFECT_FLAME_ORB] = sText_HoldEffectFlameOrb, + [HOLD_EFFECT_TOXIC_ORB] = sText_HoldEffectToxicOrb, + [HOLD_EFFECT_STICKY_BARB] = sText_HoldEffectStickyBarb, + [HOLD_EFFECT_IRON_BALL] = sText_HoldEffectIronBall, + [HOLD_EFFECT_BLACK_SLUDGE] = sText_HoldEffectBlackSludge, + [HOLD_EFFECT_DESTINY_KNOT] = sText_HoldEffectDestinyKnot, + [HOLD_EFFECT_SHED_SHELL] = sText_HoldEffectShedShell, + [HOLD_EFFECT_QUICK_POWDER] = sText_HoldEffectQuickPowder, + [HOLD_EFFECT_ADAMANT_ORB] = sText_HoldEffectAdamantOrb, + [HOLD_EFFECT_LUSTROUS_ORB] = sText_HoldEffectLustrousOrb, + [HOLD_EFFECT_GRISEOUS_ORB] = sText_HoldEffectGriseousOrb, + [HOLD_EFFECT_GRACIDEA] = sText_HoldEffectGracidea, + [HOLD_EFFECT_RESIST_BERRY] = sText_HoldEffectResistBerry, + [HOLD_EFFECT_POWER_ITEM] = sText_HoldEffectPowerItem, + [HOLD_EFFECT_RESTORE_PCT_HP] = sText_HoldEffectRestorePctHp, + //[HOLD_EFFECT_MICLE_BERRY] = sText_HoldEffectMicleBerry, + //[HOLD_EFFECT_CUSTAP_BERRY] = sText_HoldEffectCustapBerry, + //[HOLD_EFFECT_JABOCA_BERRY] = sText_HoldEffectJabocaBerry, + //[HOLD_EFFECT_ROWAP_BERRY] = sText_HoldEffectRowapBerry, + //[HOLD_EFFECT_KEE_BERRY] = sText_HoldEffectKeeBerry, + //[HOLD_EFFECT_MARANGA_BERRY] = sText_HoldEffectMarangaBerry, + [HOLD_EFFECT_FLOAT_STONE] = sText_HoldEffectFloatStone, + [HOLD_EFFECT_EVIOLITE] = sText_HoldEffectEviolite, + [HOLD_EFFECT_ASSAULT_VEST] = sText_HoldEffectAssaultVest, + [HOLD_EFFECT_DRIVE] = sText_HoldEffectDrive, + [HOLD_EFFECT_GEMS] = sText_HoldEffectGems, + [HOLD_EFFECT_ROCKY_HELMET] = sText_HoldEffectRockyHelmet, + [HOLD_EFFECT_AIR_BALLOON] = sText_HoldEffectAirBalloon, + [HOLD_EFFECT_RED_CARD] = sText_HoldEffectRedCard, + [HOLD_EFFECT_RING_TARGET] = sText_HoldEffectRingTarget, + [HOLD_EFFECT_BINDING_BAND] = sText_HoldEffectBindingBand, + [HOLD_EFFECT_EJECT_BUTTON] = sText_HoldEffectEjectButton, + [HOLD_EFFECT_ABSORB_BULB] = sText_HoldEffectAbsorbBulb, + [HOLD_EFFECT_CELL_BATTERY] = sText_HoldEffectCellBattery, + [HOLD_EFFECT_FAIRY_POWER] = sText_HoldEffectFairyPower, + [HOLD_EFFECT_MEGA_STONE] = sText_HoldEffectMegaStone, + [HOLD_EFFECT_SAFETY_GOOGLES] = sText_HoldEffectSafetyGoogles, + [HOLD_EFFECT_LUMINOUS_MOSS] = sText_HoldEffectLuminousMoss, + [HOLD_EFFECT_SNOWBALL] = sText_HoldEffectSnowball, + [HOLD_EFFECT_WEAKNESS_POLICY] = sText_HoldEffectWeaknessPolicy, + [HOLD_EFFECT_PROTECTIVE_PADS] = sText_HoldEffectProtectivePads, + [HOLD_EFFECT_TERRAIN_EXTENDER] = sText_HoldEffectTerrainExtender, + [HOLD_EFFECT_SEEDS] = sText_HoldEffectSeeds, + [HOLD_EFFECT_ADRENALINE_ORB] = sText_HoldEffectAdrenalineOrb, + [HOLD_EFFECT_MEMORY] = sText_HoldEffectMemory, + [HOLD_EFFECT_PLATE] = sText_HoldEffectPlate, + [HOLD_EFFECT_UTILITY_UMBRELLA] = sText_HoldEffectUtilityUmbrella, + [HOLD_EFFECT_EJECT_PACK] = sText_HoldEffectEjectPack, + [HOLD_EFFECT_ROOM_SERVICE] = sText_HoldEffectRoomService, + [HOLD_EFFECT_BLUNDER_POLICY] = sText_HoldEffectBlunderPolicy, + [HOLD_EFFECT_HEAVY_DUTY_BOOTS] = sText_HoldEffectHeavyDutyBoots, + [HOLD_EFFECT_THROAT_SPRAY] = sText_HoldEffectThroatSpray, +}; +static const u8 *GetHoldEffectName(u16 holdEffect) +{ + if (holdEffect > ARRAY_COUNT(sHoldEffectNames)) + return sHoldEffectNames[0]; + return sHoldEffectNames[holdEffect]; +} diff --git a/src/battle_dome.c b/src/battle_dome.c index bc74d6242f..005c8caa94 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -1211,8 +1211,8 @@ static const u8 gUnknown_0860D1A0[DOME_TOURNAMENT_TRAINERS_COUNT / 2][DOME_ROUND static const u8 gUnknown_0860D1C0[DOME_TOURNAMENT_TRAINERS_COUNT] = {0, 15, 8, 7, 3, 12, 11, 4, 1, 14, 9, 6, 2, 13, 10, 5}; -// Each tourney trainer has a text describing their potential to win, depending on their seed ranking for the current tourney -// Dome Ace Tucker has their own separate potential text +// The first line of text on a trainers info card. It describes their potential to win, based on their seed in the tournament tree. +// Dome Ace Tucker has their own separate potential text. static const u8 *const sBattleDomePotentialTexts[DOME_TOURNAMENT_TRAINERS_COUNT + 1] = { BattleDome_Text_Potential1, // Highest potential @@ -1234,7 +1234,7 @@ static const u8 *const sBattleDomePotentialTexts[DOME_TOURNAMENT_TRAINERS_COUNT BattleDome_Text_PotentialDomeAceTucker, }; -// The first line of text on a trainers info card that gives information about their battle style (dependent on their party's moves) +// The second line of text on a trainers info card. It gives information about their battle style (dependent on their party's moves). static const u8 *const sBattleDomeOpponentStyleTexts[NUM_BATTLE_STYLES] = { [DOME_BATTLE_STYLE_RISKY] = BattleDome_Text_StyleRiskDisaster, @@ -1271,7 +1271,7 @@ static const u8 *const sBattleDomeOpponentStyleTexts[NUM_BATTLE_STYLES] = [DOME_BATTLE_STYLE_UNUSED4] = BattleDome_Text_StyleSampleMessage4, }; -// The second line of text on a trainers info card that gives information about their party's stat spread +// The third line of text on a trainers info card. It that gives information about their party's stat spread (based on their Pokémon's effort values and Nature). static const u8 *const sBattleDomeOpponentStatsTexts[] = { BattleDome_Text_EmphasizesHPAndAtk, // DOME_TEXT_TWO_GOOD_STATS and DOME_TEXT_HP start here @@ -2866,7 +2866,7 @@ static u8 GetDomeTrainerMonIvs(u16 trainerId) else if (trainerId <= FRONTIER_TRAINER_TESS) // 200 - 219 fixedIv = 21; else // 220+ (- 299) - fixedIv = 31; + fixedIv = MAX_PER_STAT_IVS; return fixedIv; } @@ -2989,7 +2989,7 @@ static void Task_ShowTourneyInfoCard(u8 taskId) if (mode == INFOCARD_MATCH) gBattle_BG2_X = 0, gBattle_BG2_Y = 0; else - gBattle_BG2_X = 0, gBattle_BG2_Y = 160; + gBattle_BG2_X = 0, gBattle_BG2_Y = DISPLAY_HEIGHT; gTasks[taskId].tState++; break; @@ -3031,7 +3031,7 @@ static void Task_ShowTourneyInfoCard(u8 taskId) SetVBlankCallback(VblankCb_TourneyInfoCard); sInfoCard = AllocZeroed(sizeof(*sInfoCard)); for (i = 0; i < NUM_INFOCARD_SPRITES; i++) - sInfoCard->spriteIds[i] = 0xFF; + sInfoCard->spriteIds[i] = SPRITE_NONE; LoadMonIconPalettes(); i = CreateTask(Task_HandleInfoCardInput, 0); gTasks[i].data[0] = 0; @@ -3084,19 +3084,19 @@ static void Task_ShowTourneyInfoCard(u8 taskId) // That means that the sprite needs to move with the moving card in the opposite scrolling direction. static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite) { - sprite->pos1.y += 4; + sprite->y += 4; if (sprite->data[0] != 0) { - if (sprite->pos1.y >= -32) + if (sprite->y >= -32) sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCallbackDummy; } else { - if (sprite->pos1.y >= 192) + if (sprite->y >= 192) { - sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = SPRITE_NONE; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -3104,19 +3104,19 @@ static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite) static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite) { - sprite->pos1.y -= 4; + sprite->y -= 4; if (sprite->data[0] != 0) { - if (sprite->pos1.y <= 192) + if (sprite->y <= 192) sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCallbackDummy; } else { - if (sprite->pos1.y <= -32) + if (sprite->y <= -32) { - sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = SPRITE_NONE; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -3124,19 +3124,19 @@ static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite) static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite) { - sprite->pos1.x += 4; + sprite->x += 4; if (sprite->data[0] != 0) { - if (sprite->pos1.x >= -32) + if (sprite->x >= -32) sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCallbackDummy; } else { - if (sprite->pos1.x >= 272) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = SPRITE_NONE; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -3144,19 +3144,19 @@ static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite) static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite) { - sprite->pos1.x -= 4; + sprite->x -= 4; if (sprite->data[0] != 0) { - if (sprite->pos1.x <= 272) + if (sprite->x <= DISPLAY_WIDTH + 32) sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCallbackDummy; } else { - if (sprite->pos1.x <= -32) + if (sprite->x <= -32) { - sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = SPRITE_NONE; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -3174,19 +3174,19 @@ static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite) { if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); - sprite->pos1.y += 4; + sprite->y += 4; if (sprite->data[0] != 0) { - if (sprite->pos1.y >= -16) + if (sprite->y >= -16) sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCb_MonIcon; } else { - if (sprite->pos1.y >= 176) + if (sprite->y >= 176) { - sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = SPRITE_NONE; FreeAndDestroyMonIconSprite(sprite); } } @@ -3196,19 +3196,19 @@ static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite) { if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); - sprite->pos1.y -= 4; + sprite->y -= 4; if (sprite->data[0] != 0) { - if (sprite->pos1.y <= 176) + if (sprite->y <= 176) sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCb_MonIcon; } else { - if (sprite->pos1.y <= -16) + if (sprite->y <= -16) { - sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = SPRITE_NONE; FreeAndDestroyMonIconSprite(sprite); } } @@ -3218,19 +3218,19 @@ static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite) { if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); - sprite->pos1.x += 4; + sprite->x += 4; if (sprite->data[0] != 0) { - if (sprite->pos1.x >= -16) + if (sprite->x >= -16) sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCb_MonIcon; } else { - if (sprite->pos1.x >= 256) + if (sprite->x >= DISPLAY_WIDTH + 16) { - sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = SPRITE_NONE; FreeAndDestroyMonIconSprite(sprite); } } @@ -3240,19 +3240,19 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) { if (!sprite->sMonIconStill) UpdateMonIconFrame(sprite); - sprite->pos1.x -= 4; + sprite->x -= 4; if (sprite->data[0] != 0) { - if (sprite->pos1.x <= 256) + if (sprite->x <= DISPLAY_WIDTH + 16) sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCb_MonIcon; } else { - if (sprite->pos1.x <= -16) + if (sprite->x <= -16) { - sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = SPRITE_NONE; FreeAndDestroyMonIconSprite(sprite); } } @@ -3384,7 +3384,7 @@ static void Task_HandleInfoCardInput(u8 taskId) case STATE_FADE_IN: if (!gPaletteFade.active) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gTasks[taskId].tState = STATE_WAIT_FADE; } break; @@ -3397,7 +3397,7 @@ static void Task_HandleInfoCardInput(u8 taskId) switch (i) { case INFOCARD_INPUT_AB: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].tState = STATE_CLOSE_CARD; break; case TRAINERCARD_INPUT_UP ... TRAINERCARD_INPUT_RIGHT: @@ -3430,12 +3430,12 @@ static void Task_HandleInfoCardInput(u8 taskId) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gBattle_BG1_X = 0; - gBattle_BG1_Y = 160; + gBattle_BG1_Y = DISPLAY_HEIGHT; } else { gBattle_BG0_X = 0; - gBattle_BG0_Y = 160; + gBattle_BG0_Y = DISPLAY_HEIGHT; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; } @@ -3445,13 +3445,13 @@ static void Task_HandleInfoCardInput(u8 taskId) if (sInfoCard->pos == 0) { gBattle_BG2_X = 0; - gBattle_BG2_Y = 320; + gBattle_BG2_Y = DISPLAY_HEIGHT * 2; trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId); } else { - gBattle_BG2_X = 256; + gBattle_BG2_X = DISPLAY_WIDTH + 16; gBattle_BG2_Y = 0; trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId); @@ -3465,7 +3465,7 @@ static void Task_HandleInfoCardInput(u8 taskId) matchNo = gTasks[taskId2].data[1] - 16; BufferDomeWinString(matchNo, sInfoCard->tournamentIds); gBattle_BG2_X = 0; - gBattle_BG2_Y = 320; + gBattle_BG2_Y = DISPLAY_HEIGHT * 2; trainerTourneyId = sInfoCard->tournamentIds[0]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId); } @@ -3474,14 +3474,14 @@ static void Task_HandleInfoCardInput(u8 taskId) matchNo = gTasks[taskId2].data[1] - 16; BufferDomeWinString(matchNo, sInfoCard->tournamentIds); gBattle_BG2_X = 0; - gBattle_BG2_Y = 320; + gBattle_BG2_Y = DISPLAY_HEIGHT * 2; trainerTourneyId = sInfoCard->tournamentIds[1]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId); } else { - gBattle_BG2_X = 256; - gBattle_BG2_Y = 160; + gBattle_BG2_X = DISPLAY_WIDTH + 16; + gBattle_BG2_Y = DISPLAY_HEIGHT; matchNo = gTasks[taskId2].data[1] - 16; DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, matchNo); } @@ -3491,7 +3491,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 2) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollUp; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3502,7 +3502,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollUp; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3515,7 +3515,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 10) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollUp; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3526,7 +3526,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollUp; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3546,12 +3546,12 @@ static void Task_HandleInfoCardInput(u8 taskId) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gBattle_BG1_X = 0; - gBattle_BG1_Y = -160; + gBattle_BG1_Y = -DISPLAY_HEIGHT; } else { gBattle_BG0_X = 0; - gBattle_BG0_Y = -160; + gBattle_BG0_Y = -DISPLAY_HEIGHT; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; } @@ -3561,7 +3561,7 @@ static void Task_HandleInfoCardInput(u8 taskId) if (sInfoCard->pos == 0) { gBattle_BG2_X = 0; - gBattle_BG2_Y = 160; + gBattle_BG2_Y = DISPLAY_HEIGHT; trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId); } @@ -3581,7 +3581,7 @@ static void Task_HandleInfoCardInput(u8 taskId) matchNo = gTasks[taskId2].data[1] - 16; BufferDomeWinString(matchNo, sInfoCard->tournamentIds); gBattle_BG2_X = 0; - gBattle_BG2_Y = 160; + gBattle_BG2_Y = DISPLAY_HEIGHT; trainerTourneyId = sInfoCard->tournamentIds[0]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId); } @@ -3590,13 +3590,13 @@ static void Task_HandleInfoCardInput(u8 taskId) matchNo = gTasks[taskId2].data[1] - 16; BufferDomeWinString(matchNo, sInfoCard->tournamentIds); gBattle_BG2_X = 0; - gBattle_BG2_Y = 160; + gBattle_BG2_Y = DISPLAY_HEIGHT; trainerTourneyId = sInfoCard->tournamentIds[1]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId); } else { - gBattle_BG2_X = 256; + gBattle_BG2_X = DISPLAY_WIDTH + 16; gBattle_BG2_Y = 0; matchNo = gTasks[taskId2].data[1] - 16; DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, matchNo); @@ -3607,7 +3607,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 2) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollDown; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3618,7 +3618,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollDown; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3631,7 +3631,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 10) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollDown; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3642,7 +3642,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollDown; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3660,12 +3660,12 @@ static void Task_HandleInfoCardInput(u8 taskId) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattle_BG1_X = 256; + gBattle_BG1_X = DISPLAY_WIDTH + 16; gBattle_BG1_Y = 0; } else { - gBattle_BG0_X = 256; + gBattle_BG0_X = DISPLAY_WIDTH + 16; gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; @@ -3673,14 +3673,14 @@ static void Task_HandleInfoCardInput(u8 taskId) if (sInfoCard->pos == 0) { - gBattle_BG2_X = 256; - gBattle_BG2_Y = 160; + gBattle_BG2_X = DISPLAY_WIDTH + 16; + gBattle_BG2_Y = DISPLAY_HEIGHT; trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, trainerTourneyId); } else { - gBattle_BG2_X = 256; + gBattle_BG2_X = DISPLAY_WIDTH + 16; gBattle_BG2_Y = 0; matchNo = sIdToMatchNumber[gTasks[taskId2].data[1]][sInfoCard->pos - 1]; DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, matchNo); @@ -3690,7 +3690,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 2) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3701,7 +3701,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3714,7 +3714,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 10) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3725,7 +3725,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3743,12 +3743,12 @@ static void Task_HandleInfoCardInput(u8 taskId) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattle_BG1_X = 256; + gBattle_BG1_X = DISPLAY_WIDTH + 16; gBattle_BG1_Y = 0; } else { - gBattle_BG0_X = 256; + gBattle_BG0_X = DISPLAY_WIDTH + 16; gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; @@ -3756,15 +3756,15 @@ static void Task_HandleInfoCardInput(u8 taskId) if (sInfoCard->pos == 0) { - gBattle_BG2_X = 256; - gBattle_BG2_Y = 160; + gBattle_BG2_X = DISPLAY_WIDTH + 16; + gBattle_BG2_Y = DISPLAY_HEIGHT; trainerTourneyId = sInfoCard->tournamentIds[0]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, trainerTourneyId); } else { gBattle_BG2_X = 0; - gBattle_BG2_Y = 160; + gBattle_BG2_Y = DISPLAY_HEIGHT; matchNo = gTasks[taskId2].data[1] - 16; DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, matchNo); } @@ -3773,7 +3773,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 2) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3784,7 +3784,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3797,7 +3797,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 10) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3808,7 +3808,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3826,12 +3826,12 @@ static void Task_HandleInfoCardInput(u8 taskId) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattle_BG1_X = -256; + gBattle_BG1_X = -(DISPLAY_WIDTH + 16); gBattle_BG1_Y = 0; } else { - gBattle_BG0_X = -256; + gBattle_BG0_X = -(DISPLAY_WIDTH + 16); gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; @@ -3840,7 +3840,7 @@ static void Task_HandleInfoCardInput(u8 taskId) if (sInfoCard->pos == 1) { gBattle_BG2_X = 0; - gBattle_BG2_Y = 160; + gBattle_BG2_Y = DISPLAY_HEIGHT; } else { @@ -3854,7 +3854,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 2) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3865,7 +3865,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3878,7 +3878,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 10) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3889,7 +3889,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3907,12 +3907,12 @@ static void Task_HandleInfoCardInput(u8 taskId) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattle_BG1_X = -256; + gBattle_BG1_X = -(DISPLAY_WIDTH + 16); gBattle_BG1_Y = 0; } else { - gBattle_BG0_X = -256; + gBattle_BG0_X = -(DISPLAY_WIDTH + 16); gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; @@ -3920,15 +3920,15 @@ static void Task_HandleInfoCardInput(u8 taskId) if (sInfoCard->pos == 2) { - gBattle_BG2_X = 256; - gBattle_BG2_Y = 160; + gBattle_BG2_X = DISPLAY_WIDTH + 16; + gBattle_BG2_Y = DISPLAY_HEIGHT; trainerTourneyId = sInfoCard->tournamentIds[1]; DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_RIGHT, trainerTourneyId); } else { gBattle_BG2_X = 0; - gBattle_BG2_Y = 160; + gBattle_BG2_Y = DISPLAY_HEIGHT; matchNo = gTasks[taskId2].data[1] - 16; DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_RIGHT, matchNo); } @@ -3937,7 +3937,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 2) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3948,7 +3948,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; @@ -3961,7 +3961,7 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 10) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -3972,7 +3972,7 @@ static void Task_HandleInfoCardInput(u8 taskId) } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) { gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight; gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; @@ -4042,12 +4042,12 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 2) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) FreeAndDestroyTrainerPicSprite(sInfoCard->spriteIds[i]); } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) FreeAndDestroyMonIconSprite(&gSprites[sInfoCard->spriteIds[i]]); } } @@ -4055,12 +4055,12 @@ static void Task_HandleInfoCardInput(u8 taskId) { if (i < 10) { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) FreeAndDestroyTrainerPicSprite(sInfoCard->spriteIds[i]); } else { - if (sInfoCard->spriteIds[i] != 0xFF) + if (sInfoCard->spriteIds[i] != SPRITE_NONE) FreeAndDestroyMonIconSprite(&gSprites[sInfoCard->spriteIds[i]]); } } @@ -4239,13 +4239,13 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId) if (flags & CARD_ALTERNATE_SLOT) arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = 9, palSlot = 2; if (flags & MOVE_CARD_RIGHT) - x = 256; + x = DISPLAY_WIDTH + 16; if (flags & MOVE_CARD_DOWN) - y = 160; + y = DISPLAY_HEIGHT; if (flags & MOVE_CARD_LEFT) - x = -256; + x = -(DISPLAY_WIDTH + 16); if (flags & MOVE_CARD_UP) - y = -160; + y = -DISPLAY_HEIGHT; // Create trainer pic sprite if (trainerId == TRAINER_PLAYER) @@ -4699,13 +4699,13 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) if (flags & CARD_ALTERNATE_SLOT) arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = 9, palSlot = 2; if (flags & MOVE_CARD_RIGHT) - x = 256; + x = DISPLAY_WIDTH + 16; if (flags & MOVE_CARD_DOWN) - y = 160; + y = DISPLAY_HEIGHT; if (flags & MOVE_CARD_LEFT) - x = -256; + x = -(DISPLAY_WIDTH + 16); if (flags & MOVE_CARD_UP) - y = -160; + y = -DISPLAY_HEIGHT; // Copy trainers information to handy arrays. winStringId = BufferDomeWinString(matchNo, sInfoCard->tournamentIds); @@ -4936,7 +4936,7 @@ static void Task_HandleTourneyTreeInput(u8 taskId) case STATE_FADE_IN: if (!gPaletteFade.active) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gTasks[taskId].tState = STATE_WAIT_FADE; StartSpriteAnim(&gSprites[spriteId], 1); } @@ -4950,17 +4950,17 @@ static void Task_HandleTourneyTreeInput(u8 taskId) { case TOURNEY_TREE_SELECTED_CLOSE: default: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].tState = STATE_CLOSE_TOURNEY_TREE; break; case TOURNEY_TREE_NO_SELECTION: break; case TOURNEY_TREE_SELECTED_TRAINER: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].tState = STATE_SHOW_INFOCARD_TRAINER; break; case TOURNEY_TREE_SELECTED_MATCH: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].tState = STATE_SHOW_INFOCARD_MATCH; break; } @@ -5201,40 +5201,38 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun } j = bestId; - goto LABEL; - while (j != 0) + do { - for (j = 0, k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++) + for (i = 0; i < roundId - 1; i++) { - if (bestScore < moveScores[k]) - { - j = k; - bestScore = moveScores[k]; - } - else if (bestScore == moveScores[k] && moveIds[j] < moveIds[k]) - { - j = k; - } - } - if (i == roundId - 1) - break; - LABEL: - { - for (i = 0; i < roundId - 1; i++) - { - if (gSaveBlock2Ptr->frontier.domeWinningMoves[sub_81953E8(winnerTournamentId, i)] == moveIds[j]) - break; - } - if (i == roundId - 1) + if (gSaveBlock2Ptr->frontier.domeWinningMoves[sub_81953E8(winnerTournamentId, i)] == moveIds[j]) break; - + } + if (i != roundId - 1) + { moveScores[j] = 0; bestScore = 0; j = 0; for (k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++) j += moveScores[k]; + if (j == 0) + break; + j = 0; + for (k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++) + { + if (bestScore < moveScores[k]) + { + j = k; + bestScore = moveScores[k]; + } + else if (bestScore == moveScores[k] && moveIds[j] < moveIds[k]) // Yes, these conditions are redundant + { + j = k; + bestScore = moveScores[k]; + } + } } - } + } while (i != roundId - 1); if (moveScores[j] == 0) j = bestId; @@ -5275,10 +5273,10 @@ static void Task_ShowTourneyTree(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); SetGpuReg(REG_OFFSET_MOSAIC, 0); - SetGpuReg(REG_OFFSET_WIN0H, 0x5860); - SetGpuReg(REG_OFFSET_WIN0V, 0x9F); - SetGpuReg(REG_OFFSET_WIN1H, 0x9098); - SetGpuReg(REG_OFFSET_WIN1V, 0x9F); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(88, 96)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, DISPLAY_HEIGHT - 1)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(144, 152)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0, DISPLAY_HEIGHT - 1)); SetGpuReg(REG_OFFSET_WININ, 0); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); ResetPaletteFade(); @@ -5387,7 +5385,7 @@ static void Task_ShowTourneyTree(u8 taskId) { if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) { - textPrinter.fgColor = TEXT_COLOR_LIGHT_GREY; + textPrinter.fgColor = TEXT_COLOR_LIGHT_GRAY; textPrinter.shadowColor = TEXT_COLOR_RED; } else @@ -5400,7 +5398,7 @@ static void Task_ShowTourneyTree(u8 taskId) { if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) { - textPrinter.fgColor = TEXT_COLOR_LIGHT_GREY; + textPrinter.fgColor = TEXT_COLOR_LIGHT_GRAY; textPrinter.shadowColor = TEXT_COLOR_RED; } else @@ -5499,7 +5497,7 @@ static void Task_HandleStaticTourneyTreeInput(u8 taskId) switch (gTasks[taskId].tState) { case STATE_FADE_IN: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gTasks[taskId].tState = STATE_SHOW_RESULTS; break; case STATE_SHOW_RESULTS: @@ -5549,7 +5547,7 @@ static void Task_HandleStaticTourneyTreeInput(u8 taskId) case STATE_WAIT_FOR_INPUT: if (JOY_NEW(A_BUTTON | B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].tState = STATE_CLOSE_TOURNEY_TREE; } break; @@ -5764,6 +5762,8 @@ static void InitRandomTourneyTreeResults(void) int monTypesBits; int trainerId; int monId; + int zero1; + int zero2; u8 lvlMode; u16 *statSums; int *statValues; @@ -5779,12 +5779,11 @@ static void InitRandomTourneyTreeResults(void) statValues = AllocZeroed(sizeof(int) * NUM_STATS); lvlMode = gSaveBlock2Ptr->frontier.lvlMode; gSaveBlock2Ptr->frontier.lvlMode = FRONTIER_LVL_50; - // This one, I'd like to call a 'C fakematching'. - { - u8 one; - gSaveBlock2Ptr->frontier.domeLvlMode = (one = 1); - gSaveBlock2Ptr->frontier.domeBattleMode = one; - } + zero1 = 0; + zero2 = 0; + + gSaveBlock2Ptr->frontier.domeLvlMode = zero1 + 1; + gSaveBlock2Ptr->frontier.domeBattleMode = zero2 + 1; for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { diff --git a/src/battle_factory.c b/src/battle_factory.c index a2b1d337ac..aec00cd819 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -25,8 +25,8 @@ static void InitFactoryChallenge(void); static void GetBattleFactoryData(void); static void SetBattleFactoryData(void); static void SaveFactoryChallenge(void); -static void nullsub_75(void); -static void nullsub_123(void); +static void FactoryDummy1(void); +static void FactoryDummy2(void); static void SelectInitialRentalMons(void); static void SwapRentalMons(void); static void SetPerformedRentalSwap(void); @@ -38,11 +38,19 @@ static void GenerateInitialRentalMons(void); static void GetOpponentMostCommonMonType(void); static void GetOpponentBattleStyle(void); static void RestorePlayerPartyHeldItems(void); -static u16 GetFactoryMonId(u8 lvlMode, u8 challengeNum, bool8 arg2); +static u16 GetFactoryMonId(u8 lvlMode, u8 challengeNum, bool8 useBetterRange); static u8 GetMoveBattleStyle(u16 move); -// Const rom data. -static const u8 sRequiredMoveCounts[] = {3, 3, 3, 2, 2, 2, 2}; +// Number of moves needed on the team to be considered using a certain battle style +static const u8 sRequiredMoveCounts[FACTORY_NUM_STYLES - 1] = { + [FACTORY_STYLE_PREPARATION - 1] = 3, + [FACTORY_STYLE_SLOW_STEADY - 1] = 3, + [FACTORY_STYLE_ENDURANCE - 1] = 3, + [FACTORY_STYLE_HIGH_RISK - 1] = 2, + [FACTORY_STYLE_WEAKENING - 1] = 2, + [FACTORY_STYLE_UNPREDICTABLE - 1] = 2, + [FACTORY_STYLE_WEATHER - 1] = 2 +}; static const u16 sMoves_TotalPreparation[] = { @@ -119,8 +127,8 @@ static void (* const sBattleFactoryFunctions[])(void) = [BATTLE_FACTORY_FUNC_GET_DATA] = GetBattleFactoryData, [BATTLE_FACTORY_FUNC_SET_DATA] = SetBattleFactoryData, [BATTLE_FACTORY_FUNC_SAVE] = SaveFactoryChallenge, - [BATTLE_FACTORY_FUNC_NULL] = nullsub_75, - [BATTLE_FACTORY_FUNC_NULL2] = nullsub_123, + [BATTLE_FACTORY_FUNC_NULL] = FactoryDummy1, + [BATTLE_FACTORY_FUNC_NULL2] = FactoryDummy2, [BATTLE_FACTORY_FUNC_SELECT_RENT_MONS] = SelectInitialRentalMons, [BATTLE_FACTORY_FUNC_SWAP_RENT_MONS] = SwapRentalMons, [BATTLE_FACTORY_FUNC_SET_SWAPPED] = SetPerformedRentalSwap, @@ -266,12 +274,12 @@ static void SaveFactoryChallenge(void) SaveGameFrontier(); } -static void nullsub_75(void) +static void FactoryDummy1(void) { } -static void nullsub_123(void) +static void FactoryDummy2(void) { } @@ -376,10 +384,10 @@ static void SetRentalsToOpponentParty(void) for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId = gFrontierTempParty[i]; - gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL); - gSaveBlock2Ptr->frontier.rentalMons[i + 3].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY, NULL); - gSaveBlock2Ptr->frontier.rentalMons[i + 3].abilityNum = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ABILITY_NUM, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].monId = gFrontierTempParty[i]; + gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].abilityNum = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ABILITY_NUM, NULL); SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[gFrontierTempParty[i]].itemTableId]); } } @@ -455,13 +463,13 @@ static void SetPlayerAndOpponentParties(void) case 2: for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - monId = gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId; - ivs = gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs; + monId = gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].monId; + ivs = gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].ivs; CreateMon(&gEnemyParty[i], gFacilityTrainerMons[monId].species, monLevel, ivs, - TRUE, gSaveBlock2Ptr->frontier.rentalMons[i + 3].personality, + TRUE, gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].personality, OT_ID_PLAYER_ID, 0); count = 0; @@ -484,7 +492,7 @@ static void SetPlayerAndOpponentParties(void) for (k = 0; k < MAX_MON_MOVES; k++) SetMonMoveAvoidReturn(&gEnemyParty[i], gFacilityTrainerMons[monId].moves[k], k); SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); - SetMonData(&gEnemyParty[i], MON_DATA_ABILITY_NUM, &gSaveBlock2Ptr->frontier.rentalMons[i + 3].abilityNum); + SetMonData(&gEnemyParty[i], MON_DATA_ABILITY_NUM, &gSaveBlock2Ptr->frontier.rentalMons[i + FRONTIER_PARTY_SIZE].abilityNum); } break; } @@ -584,39 +592,58 @@ static void GenerateInitialRentalMons(void) } } +// Determines if the upcoming opponent has a single most-common +// type in its party. If there are two different types that are +// tied, then the opponent is deemed to have no preferred type, +// and NUMBER_OF_MON_TYPES is the result. static void GetOpponentMostCommonMonType(void) { u8 i; - u8 typesCount[NUMBER_OF_MON_TYPES]; - u8 usedType[2]; + u8 typeCounts[NUMBER_OF_MON_TYPES]; + u8 mostCommonTypes[2]; gFacilityTrainerMons = gBattleFrontierMons; - for (i = 0; i < NUMBER_OF_MON_TYPES; i++) - typesCount[i] = 0; + + // Count the number of times each type occurs in the opponent's party. + for (i = TYPE_NORMAL; i < NUMBER_OF_MON_TYPES; i++) + typeCounts[i] = 0; for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { u32 species = gFacilityTrainerMons[gFrontierTempParty[i]].species; - - typesCount[gBaseStats[species].type1]++; + typeCounts[gBaseStats[species].type1]++; if (gBaseStats[species].type1 != gBaseStats[species].type2) - typesCount[gBaseStats[species].type2]++; + typeCounts[gBaseStats[species].type2]++; } - usedType[0] = 0; - usedType[1] = 0; - for (i = 1; i < NUMBER_OF_MON_TYPES; i++) + // Determine which are the two most-common types. + // The second most-common type is only updated if + // its count is equal to the most-common type. + mostCommonTypes[0] = TYPE_NORMAL; + mostCommonTypes[1] = TYPE_NORMAL; + for (i = TYPE_FIGHTING; i < NUMBER_OF_MON_TYPES; i++) { - if (typesCount[usedType[0]] < typesCount[i]) - usedType[0] = i; - else if (typesCount[usedType[0]] == typesCount[i]) - usedType[1] = i; + if (typeCounts[mostCommonTypes[0]] < typeCounts[i]) + mostCommonTypes[0] = i; + else if (typeCounts[mostCommonTypes[0]] == typeCounts[i]) + mostCommonTypes[1] = i; } - gSpecialVar_Result = gSpecialVar_Result; // Needed to match. Don't ask me why. - if (typesCount[usedType[0]] != 0 && (typesCount[usedType[0]] > typesCount[usedType[1]] || usedType[0] == usedType[1])) - gSpecialVar_Result = usedType[0]; + if (typeCounts[mostCommonTypes[0]] != 0) + { + // The most-common type must be strictly greater than + // the second-most-common type, or the top two must be + // the same type. + if (typeCounts[mostCommonTypes[0]] > typeCounts[mostCommonTypes[1]]) + gSpecialVar_Result = mostCommonTypes[0]; + else if (mostCommonTypes[0] == mostCommonTypes[1]) + gSpecialVar_Result = mostCommonTypes[0]; + else + gSpecialVar_Result = NUMBER_OF_MON_TYPES; + } else + { gSpecialVar_Result = NUMBER_OF_MON_TYPES; + } } static void GetOpponentBattleStyle(void) @@ -639,7 +666,7 @@ static void GetOpponentBattleStyle(void) } } - gSpecialVar_Result = 0; + gSpecialVar_Result = FACTORY_STYLE_NONE; for (i = 1; i < FACTORY_NUM_STYLES; i++) { if (stylePoints[i] >= sRequiredMoveCounts[i - 1]) @@ -850,13 +877,13 @@ u32 GetAiScriptsInBattleFactory(void) int challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7; if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) - return AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY; + return AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY; else if (challengeNum < 2) return 0; else if (challengeNum < 4) - return AI_SCRIPT_CHECK_BAD_MOVE; + return AI_FLAG_CHECK_BAD_MOVE; else - return AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY; + return AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY; } } diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index ba1e390060..3fb65d498d 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -25,52 +25,77 @@ #include "util.h" #include "trainer_pokemon_sprites.h" #include "starter_choose.h" +#include "strings.h" +#include "graphics.h" #include "constants/battle_frontier.h" #include "constants/songs.h" #include "constants/rgb.h" -// Select_ refers to the first Pokemon selection screen where you choose 3 Pokemon. -// Swap_ refers to the consecutive selection screen where you can keep your Pokemon or swap one with beaten trainer's. +// Select_ refers to the first Pokemon selection screen where you choose your initial 3 rental Pokemon. +// Swap_ refers to the subsequent selection screens where you can swap a Pokemon with one from the beaten trainer -#define MENU_SUMMARY 0 -#define MENU_RENT 1 -#define MENU_DESELECT 1 -#define MENU_OTHERS 2 -#define MENU_OPTIONS_COUNT 3 +// Note that, generally, "Action" will refer to the immediate actions that can be taken on each screen, +// i.e. selecting a pokemon or selecting the Cancel button +// The "Options menu" will refer to the popup menu that shows when some actions have been selected + +#define SWAP_PLAYER_SCREEN 0 // The screen where the player selects which of their pokemon to swap away +#define SWAP_ENEMY_SCREEN 1 // The screen where the player selects which new pokemon from the defeated party to swap for #define SELECTABLE_MONS_COUNT 6 -#define TAG_PAL_BALL_GREY 0x64 -#define TAG_PAL_BALL_SELECTED 0x65 -#define TAG_PAL_66 0x66 -#define TAG_PAL_67 0x67 +enum { + PALTAG_BALL_GRAY = 100, + PALTAG_BALL_SELECTED, + PALTAG_INTERFACE, + PALTAG_MON_PIC_BG, +}; -#define TAG_TILE_64 0x64 -#define TAG_TILE_65 0x65 -#define TAG_TILE_66 0x66 -#define TAG_TILE_67 0x67 -#define TAG_TILE_68 0x68 -#define TAG_TILE_69 0x69 -#define TAG_TILE_6A 0x6A -#define TAG_TILE_6B 0x6B -#define TAG_TILE_6C 0x6C -#define TAG_TILE_6D 0x6D +enum { + GFXTAG_BALL = 100, + GFXTAG_ARROW, + GFXTAG_MENU_HIGHLIGHT_LEFT, + GFXTAG_MENU_HIGHLIGHT_RIGHT, + GFXTAG_ACTION_BOX_LEFT, + GFXTAG_ACTION_BOX_RIGHT, + GFXTAG_ACTION_HIGHLIGHT_LEFT, + GFXTAG_ACTION_HIGHLIGHT_MIDDLE, + GFXTAG_ACTION_HIGHLIGHT_RIGHT, + GFXTAG_MON_PIC_BG_ANIM, +}; -struct FactorySelecteableMon +// Tasks in this file universally use data[0] as a state for switches +#define tState data[0] + +// States for both Select/Swap versions of Task_FadeSpeciesName +enum { + FADESTATE_INIT, + FADESTATE_RUN, + FADESTATE_DELAY +}; + +// Return states for the Select Actions +enum { + SELECT_SUMMARY, + SELECT_CONTINUE_CHOOSING, + SELECT_CONFIRM_MONS, + SELECT_INVALID_MON, +}; + +struct FactorySelectableMon { u16 monId; - u16 spriteId; + u16 ballSpriteId; u8 selectedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon struct Pokemon monData; }; -struct UnkFactoryStruct +struct FactoryMonPic { - u8 field0; - u8 field1; + u8 monSpriteId; + u8 bgSpriteId; }; -struct FactorySelectMonsStruct +struct FactorySelectScreen { u8 menuCursorPos; u8 menuCursor1SpriteId; @@ -80,206 +105,201 @@ struct FactorySelectMonsStruct u8 selectingMonsState; bool8 fromSummaryScreen; u8 yesNoCursorPos; - u8 unused8; - struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; - struct UnkFactoryStruct unk294[3]; - bool8 unk2A0; + u8 unused; + struct FactorySelectableMon mons[SELECTABLE_MONS_COUNT]; + struct FactoryMonPic monPics[FRONTIER_PARTY_SIZE]; // Array so all chosen mons can be shown at once + bool8 monPicAnimating; u8 fadeSpeciesNameTaskId; - bool8 unk2A2; - u16 unk2A4; - bool8 unk2A6; - u8 unk2A7; - u8 unk2A8; - u8 unk2A9; + bool8 fadeSpeciesNameActive; + u16 speciesNameColorBackup; + bool8 fadeSpeciesNameFadeOut; + u8 fadeSpeciesNameCoeffDelay; + u8 fadeSpeciesNameCoeff; + u8 faceSpeciesNameDelay; }; -// 'Action' refers to the 3 Selectable mons, Cancel, Pknm for swap windows. -#define ACTIONS_PLAYER_SCREEN 0 -#define ACTIONS_ENEMY_SCREEN 1 - -struct SwapActionIdAndFunc +struct SwapScreenAction { u8 id; void (*func)(u8 taskId); }; -struct FactorySwapMonsStruct +struct FactorySwapScreen { u8 menuCursorPos; u8 menuCursor1SpriteId; u8 menuCursor2SpriteId; u8 cursorPos; u8 cursorSpriteId; - u8 ballSpriteIds[3]; - u8 unk8[2][3]; - u8 unkE[2][2]; + u8 ballSpriteIds[FRONTIER_PARTY_SIZE]; + u8 pkmnForSwapButtonSpriteIds[2][3]; // For this and sprite ID array below, [0][i] is the button background, [1][i] is the button highlight + u8 cancelButtonSpriteIds[2][2]; u8 playerMonId; u8 enemyMonId; bool8 inEnemyScreen; bool8 fromSummaryScreen; u8 yesNoCursorPos; u8 actionsCount; - const struct SwapActionIdAndFunc *actionsData; - u8 unused1C[4]; + const struct SwapScreenAction *actionsData; + u8 unused[4]; bool8 monSwapped; u8 fadeSpeciesNameTaskId; - bool8 unk22; - u16 unk24; - bool8 unk26; - u8 unk27; - u8 unk28; - u8 unk29; - struct UnkFactoryStruct unk2C; - bool8 unk30; + bool8 fadeSpeciesNameActive; + u16 speciesNameColorBackup; + bool8 fadeSpeciesNameFadeOut; + u8 fadeSpeciesNameCoeffDelay; + u8 fadeSpeciesNameCoeff; + u8 faceSpeciesNameDelay; + struct FactoryMonPic monPic; + bool8 monPicAnimating; }; -// This file's functions. -static void sub_819A44C(struct Sprite *sprite); +static void SpriteCB_Pokeball(struct Sprite *); +static void SpriteCB_OpenMonPic(struct Sprite *); +static void OpenMonPic(u8 *, bool8 *, bool8); +static void HideMonPic(struct FactoryMonPic, bool8 *); +static void CloseMonPic(struct FactoryMonPic, bool8 *, bool8); +static void Task_OpenMonPic(u8); +static void Task_CloseMonPic(u8); + +// Select screen static void CB2_InitSelectScreen(void); -static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); +static void Select_SetWinRegs(s16, s16, s16, s16); static void Select_InitMonsData(void); static void Select_InitAllSprites(void); -static void Select_ShowSummaryMonSprite(void); +static void Select_ReshowMonSprite(void); static void Select_PrintSelectMonString(void); static void Select_PrintMonSpecies(void); static void Select_PrintMonCategory(void); static void Select_PrintRentalPkmnString(void); static void Select_CopyMonsToPlayerParty(void); -static void sub_819C4B4(void); +static void Select_ShowChosenMons(void); static void Select_ShowYesNoOptions(void); -static void sub_819C568(void); +static void Select_HideChosenMons(void); static void Select_ShowMenuOptions(void); static void Select_PrintMenuOptions(void); static void Select_PrintYesNoOptions(void); -static void Task_SelectFadeSpeciesName(u8 taskId); -static void sub_819C1D0(u8 taskId); -static void Task_HandleSelectionScreenChooseMons(u8 taskId); -static void Task_HandleSelectionScreenMenu(u8 taskId); -static void CreateFrontierFactorySelectableMons(u8 firstMonId); -static void CreateTentFactorySelectableMons(u8 firstMonId); -static void Select_SetBallSpritePaletteNum(u8 id); -static void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1); -static void sub_819B958(u8 windowId); -static void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen); -static void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen); +static void Select_Task_FadeSpeciesName(u8); +static void Select_Task_OpenChosenMonPics(u8); +static void Select_Task_HandleChooseMons(u8); +static void Select_Task_HandleMenu(u8); +static void CreateFrontierFactorySelectableMons(u8); +static void CreateSlateportTentSelectableMons(u8); +static void Select_SetBallSpritePaletteNum(u8); +static void Select_ErasePopupMenu(u8); static u8 Select_RunMenuOptionFunc(void); -static u8 sub_819BC9C(void); +static u8 Select_DeclineChosenMons(void); static u8 Select_OptionSummary(void); static u8 Select_OptionOthers(void); static u8 Select_OptionRentDeselect(void); -static bool32 Select_AreSpeciesValid(u16 monId); +static bool32 Select_AreSpeciesValid(u16); + +// Swap screen +static void CB2_InitSwapScreen(void); static void Swap_DestroyAllSprites(void); static void Swap_ShowYesNoOptions(void); -static void sub_819E8EC(void); -static void sub_819EAC0(void); -static void Swap_UpdateYesNoCursorPosition(s8 direction); -static void Swap_UpdateMenuCursorPosition(s8 direction); -static void sub_819EA64(u8 windowId); -static void sub_819D770(u8 taskId); -static void Task_HandleSwapScreenChooseMons(u8 taskId); -static void sub_819D588(u8 taskId); -static void sub_819F7B4(u8 taskId); -static void Swap_PrintOnInfoWindow(const u8 *str); +static void Swap_HideActionButtonHighlights(void); +static void Swap_EraseSpeciesWindow(void); +static void Swap_UpdateYesNoCursorPosition(s8); +static void Swap_UpdateMenuCursorPosition(s8); +static void Swap_ErasePopupMenu(u8); +static void Swap_Task_ScreenInfoTransitionIn(u8); +static void Swap_Task_HandleChooseMons(u8); +static void Swap_Task_ScreenInfoTransitionOut(u8); +static void Swap_PrintOnInfoWindow(const u8 *); static void Swap_ShowMenuOptions(void); static void Swap_PrintMenuOptions(void); static void Swap_PrintYesNoOptions(void); static void Swap_PrintMonSpecies(void); -static void Swap_PrintMonSpecies2(void); -static void Swap_PrintMonSpecies3(void); +static void Swap_PrintMonSpeciesAtFade(void); +static void Swap_PrintMonSpeciesForTransition(void); static void Swap_PrintMonCategory(void); static void Swap_InitAllSprites(void); static void Swap_PrintPkmnSwap(void); -static void sub_819EADC(void); -static void sub_819EAF8(void); -static void CB2_InitSwapScreen(void); +static void Swap_EraseSpeciesAtFadeWindow(void); +static void Swap_EraseActionFadeWindow(void); static void Swap_ShowSummaryMonSprite(void); -static void Swap_UpdateActionCursorPosition(s8 direction); -static void Swap_UpdateBallCursorPosition(s8 direction); -static void Swap_RunMenuOptionFunc(u8 taskId); -static void sub_819F0CC(u8 taskId); -static void sub_819F114(u8 taskId); -static void sub_819F134(u8 taskId); -static void Swap_RunActionFunc(u8 taskId); -static void sub_819F69C(u8 taskId); -static void Task_SwapCantHaveSameMons(u8 taskId); -static void Swap_ShowMonSprite(void); +static void Swap_UpdateActionCursorPosition(s8); +static void Swap_UpdateBallCursorPosition(s8); +static void Swap_RunMenuOptionFunc(u8); +static void Swap_OptionSwap(u8); +static void Swap_OptionSummary(u8); +static void Swap_OptionRechoose(u8); +static void Swap_RunActionFunc(u8); +static void Swap_TaskCantHaveSameMons(u8); +static void Swap_CreateMonSprite(void); static void Swap_PrintActionStrings(void); static void Swap_PrintActionStrings2(void); -static void Swap_PrintOneActionString(u8 which); -static void Swap_InitActions(u8 id); -static void sub_819E838(u8 arg0); -static bool8 Swap_AlreadyHasSameSpecies(u8 monId); -static void sub_819F600(struct Sprite *sprite); -static void Swap_ActionMon(u8 taskId); -static void Swap_ActionCancel(u8 taskId); -static void Swap_ActionPkmnForSwap(u8 taskId); +static void Swap_PrintOneActionString(u8); +static void Swap_InitActions(u8); +static void Swap_HighlightActionButton(u8); +static bool8 Swap_AlreadyHasSameSpecies(u8); +static void Swap_ActionMon(u8); +static void Swap_ActionCancel(u8); +static void Swap_ActionPkmnForSwap(u8); -// Ewram variables static EWRAM_DATA u8 *sSelectMenuTilesetBuffer = NULL; -static EWRAM_DATA u8 *sSelectMonCardBgTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSelectMonPicBgTilesetBuffer = NULL; static EWRAM_DATA u8 *sSelectMenuTilemapBuffer = NULL; -static EWRAM_DATA u8 *sSelectMonCardBgTilemapBuffer = NULL; +static EWRAM_DATA u8 *sSelectMonPicBgTilemapBuffer = NULL; static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; static EWRAM_DATA u8 *sSwapMenuTilesetBuffer = NULL; -static EWRAM_DATA u8 *sSwapMonCardBgTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSwapMonPicBgTilesetBuffer = NULL; static EWRAM_DATA u8 *sSwapMenuTilemapBuffer = NULL; -static EWRAM_DATA u8 *sSwapMonCardBgTilemapBuffer = NULL; +static EWRAM_DATA u8 *sSwapMonPicBgTilemapBuffer = NULL; -// IWRAM bss -static struct FactorySelectMonsStruct *sFactorySelectScreen; -static void (*sSwap_CurrentTableFunc)(u8 taskId); -static struct FactorySwapMonsStruct *sFactorySwapScreen; +static struct FactorySelectScreen *sFactorySelectScreen; +static void (*sSwap_CurrentOptionFunc)(u8 taskId); +static struct FactorySwapScreen *sFactorySwapScreen; -// IWRAM common -u8 (*gUnknown_030062E8)(void); +u8 (*gFactorySelect_CurrentOptionFunc)(void); -// Const rom data. -static const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); -static const u16 gUnknown_0860F15C[] = INCBIN_U16("graphics/unknown/unknown_60F15C.gbapal"); -static const u16 gUnknown_0860F17C[] = INCBIN_U16("graphics/unknown/unknown_60F17C.gbapal"); -static const u8 gUnknown_0860F1BC[] = INCBIN_U8("graphics/unknown/unknown_60F1BC.4bpp"); -static const u8 gUnknown_0860F3BC[] = INCBIN_U8("graphics/unknown/unknown_60F3BC.4bpp"); -static const u8 gUnknown_0860F43C[] = INCBIN_U8("graphics/unknown/unknown_60F43C.4bpp"); -static const u8 gUnknown_0860F53C[] = INCBIN_U8("graphics/unknown/unknown_60F53C.4bpp"); -static const u8 gUnknown_0860F63C[] = INCBIN_U8("graphics/unknown/unknown_60F63C.4bpp"); -static const u8 gUnknown_0860F6BC[] = INCBIN_U8("graphics/unknown/unknown_60F6BC.4bpp"); -static const u8 gUnknown_0860F7BC[] = INCBIN_U8("graphics/unknown/unknown_60F7BC.4bpp"); -static const u8 gUnknown_0860F83C[] = INCBIN_U8("graphics/unknown/unknown_60F83C.4bpp"); -static const u8 gUnknown_0860F93C[] = INCBIN_U8("graphics/unknown/unknown_60F93C.4bpp"); -static const u8 gUnknown_0860FA3C[] = INCBIN_U8("graphics/unknown/unknown_60FA3C.4bpp"); -static const u8 gUnknown_0861023C[] = INCBIN_U8("graphics/unknown/unknown_61023C.bin"); -static const u8 gUnknown_0861033C[] = INCBIN_U8("graphics/unknown/unknown_61033C.4bpp"); -static const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbapal"); +static const u16 sPokeballGray_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/pokeball_gray.gbapal"); +static const u16 sPokeballSelected_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/pokeball_selected.gbapal"); +static const u16 sInterface_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/interface.gbapal"); // Arrow, menu/action highlights, action box, etc +static const u8 sPokeball_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/pokeball.4bpp"); // Unused, gPokeballSelection_Gfx used instead +static const u8 sArrow_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/arrow.4bpp"); +static const u8 sMenuHighlightLeft_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/menu_highlight_left.4bpp"); +static const u8 sMenuHighlightRight_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/menu_highlight_right.4bpp"); +static const u8 sActionBoxLeft_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/action_box_left.4bpp"); +static const u8 sActionBoxRight_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/action_box_right.4bpp"); +static const u8 sActionHighlightLeft_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/action_highlight_left.4bpp"); +static const u8 sActionHighlightMiddle_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/action_highlight_middle.4bpp"); +static const u8 sActionHighlightRight_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/action_highlight_right.4bpp"); +static const u8 sMonPicBgAnim_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/mon_pic_bg_anim.4bpp"); +static const u8 sMonPicBg_Tilemap[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/mon_pic_bg.bin"); +static const u8 sMonPicBg_Gfx[] = INCBIN_U8( "graphics/battle_frontier/factory_screen/mon_pic_bg.4bpp"); +static const u16 sMonPicBg_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/mon_pic_bg.gbapal"); -static const struct SpriteSheet gUnknown_086103BC[] = +static const struct SpriteSheet sSelect_SpriteSheets[] = { - {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65}, - {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66}, - {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), TAG_TILE_67}, - {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), TAG_TILE_6D}, + {sArrow_Gfx, sizeof(sArrow_Gfx), GFXTAG_ARROW}, + {sMenuHighlightLeft_Gfx, sizeof(sMenuHighlightLeft_Gfx), GFXTAG_MENU_HIGHLIGHT_LEFT}, + {sMenuHighlightRight_Gfx, sizeof(sMenuHighlightRight_Gfx), GFXTAG_MENU_HIGHLIGHT_RIGHT}, + {sMonPicBgAnim_Gfx, sizeof(sMonPicBgAnim_Gfx), GFXTAG_MON_PIC_BG_ANIM}, {}, }; -static const struct CompressedSpriteSheet gUnknown_086103E4[] = +static const struct CompressedSpriteSheet sSelect_BallGfx[] = { - {gPokeballSelection_Gfx, 0x800, TAG_TILE_64}, + {gPokeballSelection_Gfx, 0x800, GFXTAG_BALL}, {}, }; -static const struct SpritePalette gUnknown_086103F4[] = +static const struct SpritePalette sSelect_SpritePalettes[] = { - {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, - {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, - {gUnknown_0860F17C, TAG_PAL_66}, - {gUnknown_0861039C, TAG_PAL_67}, + {sPokeballGray_Pal, PALTAG_BALL_GRAY}, + {sPokeballSelected_Pal, PALTAG_BALL_SELECTED}, + {sInterface_Pal, PALTAG_INTERFACE}, + {sMonPicBg_Pal, PALTAG_MON_PIC_BG}, {}, }; u8 static (* const sSelect_MenuOptionFuncs[])(void) = { - [MENU_SUMMARY] = Select_OptionSummary, - [MENU_RENT] /*Or Deselect*/ = Select_OptionRentDeselect, - [MENU_OTHERS] = Select_OptionOthers + Select_OptionSummary, + Select_OptionRentDeselect, + Select_OptionOthers }; static const struct BgTemplate sSelect_BgTemplates[] = @@ -313,9 +333,18 @@ static const struct BgTemplate sSelect_BgTemplates[] = }, }; +enum { + SELECT_WIN_TITLE, + SELECT_WIN_SPECIES, + SELECT_WIN_INFO, + SELECT_WIN_OPTIONS, + SELECT_WIN_YES_NO, + SELECT_WIN_MON_CATEGORY, +}; + static const struct WindowTemplate sSelect_WindowTemplates[] = { - { + [SELECT_WIN_TITLE] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 2, @@ -324,7 +353,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x0001, }, - { + [SELECT_WIN_SPECIES] = { .bg = 0, .tilemapLeft = 19, .tilemapTop = 2, @@ -333,7 +362,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .paletteNum = 14, .baseBlock = 0x0019, }, - { + [SELECT_WIN_INFO] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 15, @@ -342,7 +371,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x002f, }, - { + [SELECT_WIN_OPTIONS] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 14, @@ -351,7 +380,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x006b, }, - { + [SELECT_WIN_YES_NO] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 14, @@ -360,7 +389,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x009b, }, - { + [SELECT_WIN_MON_CATEGORY] = { .bg = 0, .tilemapLeft = 15, .tilemapTop = 0, @@ -372,12 +401,11 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = DUMMY_WIN_TEMPLATE, }; -static const u16 gUnknown_0861046C[] = INCBIN_U16("graphics/unknown/unknown_61046C.gbapal"); - -static const u8 sMenuOptionTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_TRANSPARENT}; +static const u16 sSelectText_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/text.gbapal"); +static const u8 sMenuOptionTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_TRANSPARENT}; static const u8 sSpeciesNameTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_TRANSPARENT}; -static const struct OamData gUnknown_0861047C = +static const struct OamData sOam_Select_Pokeball = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -394,7 +422,7 @@ static const struct OamData gUnknown_0861047C = .affineParam = 0, }; -static const struct OamData gUnknown_08610484 = +static const struct OamData sOam_Select_Arrow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -411,7 +439,7 @@ static const struct OamData gUnknown_08610484 = .affineParam = 0, }; -static const struct OamData gUnknown_0861048C = +static const struct OamData sOam_Select_MenuHighlight = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -428,7 +456,7 @@ static const struct OamData gUnknown_0861048C = .affineParam = 0, }; -static const struct OamData gUnknown_08610494 = +static const struct OamData sOam_Select_MonPicBgAnim = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -445,25 +473,25 @@ static const struct OamData gUnknown_08610494 = .affineParam = 1, }; -static const union AnimCmd gUnknown_0861049C[] = +static const union AnimCmd sAnim_Select_Interface[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_086104A4[] = +static const union AnimCmd sAnim_Select_MonPicBgAnim[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_086104AC[] = +static const union AnimCmd sAnim_Select_Pokeball_Still[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; -static const union AnimCmd gUnknown_086104B4[] = +static const union AnimCmd sAnim_Select_Pokeball_Moving[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(0, 4), @@ -485,23 +513,23 @@ static const union AnimCmd gUnknown_086104B4[] = ANIMCMD_END, }; -static const union AnimCmd * const gUnknown_086104FC[] = +static const union AnimCmd * const sAnims_Select_Interface[] = { - gUnknown_0861049C, + sAnim_Select_Interface, }; -static const union AnimCmd * const gUnknown_08610500[] = +static const union AnimCmd * const sAnims_Select_MonPicBgAnim[] = { - gUnknown_086104A4, + sAnim_Select_MonPicBgAnim, }; -static const union AnimCmd * const gUnknown_08610504[] = +static const union AnimCmd * const sAnims_Select_Pokeball[] = { - gUnknown_086104AC, - gUnknown_086104B4, + sAnim_Select_Pokeball_Still, + sAnim_Select_Pokeball_Moving, }; -static const union AffineAnimCmd gUnknown_0861050C[] = +static const union AffineAnimCmd sAffineAnim_Select_MonPicBg_Opening[] = { AFFINEANIMCMD_FRAME(5, 5, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 0, 1), @@ -517,7 +545,7 @@ static const union AffineAnimCmd gUnknown_0861050C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_0861056C[] = +static const union AffineAnimCmd sAffineAnim_Select_MonPicBg_Closing[] = { AFFINEANIMCMD_FRAME(128, 5, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 0, 1), @@ -531,104 +559,104 @@ static const union AffineAnimCmd gUnknown_0861056C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_086105BC[] = +static const union AffineAnimCmd sAffineAnim_Select_MonPicBg_Open[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd * const gUnknown_086105CC[] = +static const union AffineAnimCmd * const sAffineAnims_Select_MonPicBgAnim[] = { - gUnknown_0861050C, - gUnknown_0861056C, - gUnknown_086105BC, + sAffineAnim_Select_MonPicBg_Opening, + sAffineAnim_Select_MonPicBg_Closing, + sAffineAnim_Select_MonPicBg_Open, }; -static const struct SpriteTemplate gUnknown_086105D8 = +static const struct SpriteTemplate sSpriteTemplate_Select_Pokeball = { - .tileTag = TAG_TILE_64, - .paletteTag = TAG_PAL_BALL_GREY, - .oam = &gUnknown_0861047C, - .anims = gUnknown_08610504, + .tileTag = GFXTAG_BALL, + .paletteTag = PALTAG_BALL_GRAY, + .oam = &sOam_Select_Pokeball, + .anims = sAnims_Select_Pokeball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_819A44C + .callback = SpriteCB_Pokeball }; -static const struct SpriteTemplate gUnknown_086105F0 = +static const struct SpriteTemplate sSpriteTemplate_Select_Arrow = { - .tileTag = TAG_TILE_65, - .paletteTag = TAG_PAL_66, - .oam = &gUnknown_08610484, - .anims = gUnknown_086104FC, + .tileTag = GFXTAG_ARROW, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Select_Arrow, + .anims = sAnims_Select_Interface, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_08610608 = +static const struct SpriteTemplate sSpriteTemplate_Select_MenuHighlightLeft = { - .tileTag = TAG_TILE_66, - .paletteTag = TAG_PAL_66, - .oam = &gUnknown_0861048C, - .anims = gUnknown_086104FC, + .tileTag = GFXTAG_MENU_HIGHLIGHT_LEFT, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Select_MenuHighlight, + .anims = sAnims_Select_Interface, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_08610620 = +static const struct SpriteTemplate sSpriteTemplate_Select_MenuHighlightRight = { - .tileTag = TAG_TILE_67, - .paletteTag = TAG_PAL_66, - .oam = &gUnknown_0861048C, - .anims = gUnknown_086104FC, + .tileTag = GFXTAG_MENU_HIGHLIGHT_RIGHT, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Select_MenuHighlight, + .anims = sAnims_Select_Interface, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_08610638 = +static const struct SpriteTemplate sSpriteTemplate_Select_MonPicBgAnim = { - .tileTag = TAG_TILE_6D, - .paletteTag = TAG_PAL_67, - .oam = &gUnknown_08610494, - .anims = gUnknown_08610500, + .tileTag = GFXTAG_MON_PIC_BG_ANIM, + .paletteTag = PALTAG_MON_PIC_BG, + .oam = &sOam_Select_MonPicBgAnim, + .anims = sAnims_Select_MonPicBgAnim, .images = NULL, - .affineAnims = gUnknown_086105CC, + .affineAnims = sAffineAnims_Select_MonPicBgAnim, .callback = SpriteCallbackDummy }; -static const struct SpriteSheet gUnknown_08610650[] = +static const struct SpriteSheet sSwap_SpriteSheets[] = { - {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65}, - {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66}, - {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), TAG_TILE_67}, - {gUnknown_0860F63C, sizeof(gUnknown_0860F63C), TAG_TILE_68}, - {gUnknown_0860F6BC, sizeof(gUnknown_0860F6BC), TAG_TILE_69}, - {gUnknown_0860F7BC, 0x100, TAG_TILE_6A}, - {gUnknown_0860F83C, sizeof(gUnknown_0860F83C), TAG_TILE_6B}, - {gUnknown_0860F93C, sizeof(gUnknown_0860F93C), TAG_TILE_6C}, - {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), TAG_TILE_6D}, + {sArrow_Gfx, sizeof(sArrow_Gfx), GFXTAG_ARROW}, + {sMenuHighlightLeft_Gfx, sizeof(sMenuHighlightLeft_Gfx), GFXTAG_MENU_HIGHLIGHT_LEFT}, + {sMenuHighlightRight_Gfx, sizeof(sMenuHighlightRight_Gfx), GFXTAG_MENU_HIGHLIGHT_RIGHT}, + {sActionBoxLeft_Gfx, sizeof(sActionBoxLeft_Gfx), GFXTAG_ACTION_BOX_LEFT}, + {sActionBoxRight_Gfx, sizeof(sActionBoxRight_Gfx), GFXTAG_ACTION_BOX_RIGHT}, + {sActionHighlightLeft_Gfx, 0x100, GFXTAG_ACTION_HIGHLIGHT_LEFT}, + {sActionHighlightMiddle_Gfx, sizeof(sActionHighlightMiddle_Gfx), GFXTAG_ACTION_HIGHLIGHT_MIDDLE}, + {sActionHighlightRight_Gfx, sizeof(sActionHighlightRight_Gfx), GFXTAG_ACTION_HIGHLIGHT_RIGHT}, + {sMonPicBgAnim_Gfx, sizeof(sMonPicBgAnim_Gfx), GFXTAG_MON_PIC_BG_ANIM}, {}, }; -static const struct CompressedSpriteSheet gUnknown_086106A0[] = +static const struct CompressedSpriteSheet sSwap_BallGfx[] = { - {gPokeballSelection_Gfx, 0x800, TAG_TILE_64}, + {gPokeballSelection_Gfx, 0x800, GFXTAG_BALL}, {}, }; -static const struct SpritePalette gUnknown_086106B0[] = +static const struct SpritePalette sSwap_SpritePalettes[] = { - {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, - {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, - {gUnknown_0860F17C, TAG_PAL_66}, - {gUnknown_0861039C, TAG_PAL_67}, + {sPokeballGray_Pal, PALTAG_BALL_GRAY}, + {sPokeballSelected_Pal, PALTAG_BALL_SELECTED}, + {sInterface_Pal, PALTAG_INTERFACE}, + {sMonPicBg_Pal, PALTAG_MON_PIC_BG}, {}, }; -static const struct OamData gUnknown_086106D8 = +static const struct OamData sOam_Swap_Pokeball = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -645,7 +673,7 @@ static const struct OamData gUnknown_086106D8 = .affineParam = 0, }; -static const struct OamData gUnknown_086106E0 = +static const struct OamData sOam_Swap_Arrow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -662,7 +690,7 @@ static const struct OamData gUnknown_086106E0 = .affineParam = 0, }; -static const struct OamData gUnknown_086106E8 = +static const struct OamData sOam_Swap_MenuHighlight = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -679,7 +707,7 @@ static const struct OamData gUnknown_086106E8 = .affineParam = 0, }; -static const struct OamData gUnknown_086106F0 = +static const struct OamData sOam_Swap_MonPicBgAnim = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -696,25 +724,25 @@ static const struct OamData gUnknown_086106F0 = .affineParam = 1, }; -static const union AnimCmd gUnknown_086106F8[] = +static const union AnimCmd sAnim_Swap_Interface[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_08610700[] = +static const union AnimCmd sAnim_Swap_MonPicBgAnim[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_08610708[] = +static const union AnimCmd sAnim_Swap_Pokeball_Still[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; -static const union AnimCmd gUnknown_08610710[] = +static const union AnimCmd sAnim_Swap_Pokeball_Moving[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(0, 4), @@ -736,23 +764,23 @@ static const union AnimCmd gUnknown_08610710[] = ANIMCMD_END, }; -static const union AnimCmd * const gUnknown_08610758[] = +static const union AnimCmd * const sAnims_Swap_Interface[] = { - gUnknown_086106F8, + sAnim_Swap_Interface, }; -static const union AnimCmd * const gUnknown_0861075C[] = +static const union AnimCmd * const sAnims_Swap_MonPicBgAnim[] = { - gUnknown_08610700, + sAnim_Swap_MonPicBgAnim, }; -static const union AnimCmd * const gUnknown_08610760[] = +static const union AnimCmd * const sAnims_Swap_Pokeball[] = { - gUnknown_08610708, - gUnknown_08610710, + sAnim_Swap_Pokeball_Still, + sAnim_Swap_Pokeball_Moving, }; -static const union AffineAnimCmd gUnknown_08610768[] = +static const union AffineAnimCmd sAffineAnim_Swap_MonPicBg_Opening[] = { AFFINEANIMCMD_FRAME(5, 5, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 0, 1), @@ -768,7 +796,7 @@ static const union AffineAnimCmd gUnknown_08610768[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_086107C8[] = +static const union AffineAnimCmd sAffineAnim_Swap_MonPicBg_Closing[] = { AFFINEANIMCMD_FRAME(128, 5, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 0, 1), @@ -782,79 +810,79 @@ static const union AffineAnimCmd gUnknown_086107C8[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_08610818[] = +static const union AffineAnimCmd sAffineAnim_Swap_MonPicBg_Open[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd * const gUnknown_08610828[] = +static const union AffineAnimCmd * const sAffineAnims_Swap_MonPicBgAnim[] = { - gUnknown_08610768, - gUnknown_086107C8, - gUnknown_08610818, + sAffineAnim_Swap_MonPicBg_Opening, + sAffineAnim_Swap_MonPicBg_Closing, + sAffineAnim_Swap_MonPicBg_Open, }; -static const struct SpriteTemplate gUnknown_08610834 = +static const struct SpriteTemplate sSpriteTemplate_Swap_Pokeball = { - .tileTag = TAG_TILE_64, - .paletteTag = TAG_PAL_BALL_GREY, - .oam = &gUnknown_086106D8, - .anims = gUnknown_08610760, + .tileTag = GFXTAG_BALL, + .paletteTag = PALTAG_BALL_GRAY, + .oam = &sOam_Swap_Pokeball, + .anims = sAnims_Swap_Pokeball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_819A44C + .callback = SpriteCB_Pokeball }; -static const struct SpriteTemplate gUnknown_0861084C = +static const struct SpriteTemplate sSpriteTemplate_Swap_Arrow = { - .tileTag = TAG_TILE_65, - .paletteTag = TAG_PAL_66, - .oam = &gUnknown_086106E0, - .anims = gUnknown_08610758, + .tileTag = GFXTAG_ARROW, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Swap_Arrow, + .anims = sAnims_Swap_Interface, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_08610864 = +static const struct SpriteTemplate sSpriteTemplate_Swap_MenuHighlightLeft = { - .tileTag = TAG_TILE_66, - .paletteTag = TAG_PAL_66, - .oam = &gUnknown_086106E8, - .anims = gUnknown_08610758, + .tileTag = GFXTAG_MENU_HIGHLIGHT_LEFT, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Swap_MenuHighlight, + .anims = sAnims_Swap_Interface, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0861087C = +static const struct SpriteTemplate sSpriteTemplate_Swap_MenuHighlightRight = { - .tileTag = TAG_TILE_67, - .paletteTag = TAG_PAL_66, - .oam = &gUnknown_086106E8, - .anims = gUnknown_08610758, + .tileTag = GFXTAG_MENU_HIGHLIGHT_RIGHT, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Swap_MenuHighlight, + .anims = sAnims_Swap_Interface, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_08610894 = +static const struct SpriteTemplate sSpriteTemplate_Swap_MonPicBgAnim = { - .tileTag = TAG_TILE_6D, - .paletteTag = TAG_PAL_67, - .oam = &gUnknown_086106F0, - .anims = gUnknown_0861075C, + .tileTag = GFXTAG_MON_PIC_BG_ANIM, + .paletteTag = PALTAG_MON_PIC_BG, + .oam = &sOam_Swap_MonPicBgAnim, + .anims = sAnims_Swap_MonPicBgAnim, .images = NULL, - .affineAnims = gUnknown_08610828, + .affineAnims = sAffineAnims_Swap_MonPicBgAnim, .callback = SpriteCallbackDummy }; void static (* const sSwap_MenuOptionFuncs[])(u8 taskId) = { - sub_819F114, - sub_819F0CC, - sub_819F134, + Swap_OptionSummary, + Swap_OptionSwap, + Swap_OptionRechoose, }; static const struct BgTemplate sSwap_BgTemplates[4] = @@ -897,9 +925,21 @@ static const struct BgTemplate sSwap_BgTemplates[4] = }, }; +enum { + SWAP_WIN_TITLE, + SWAP_WIN_SPECIES, + SWAP_WIN_INFO, + SWAP_WIN_OPTIONS, + SWAP_WIN_YES_NO, + SWAP_WIN_ACTION_FADE, // Used for action text fading out during screen transition + SWAP_WIN_UNUSED, + SWAP_WIN_SPECIES_AT_FADE, // Used to print species name stopped at current fade level + SWAP_WIN_MON_CATEGORY, +}; + static const struct WindowTemplate sSwap_WindowTemplates[] = { - { + [SWAP_WIN_TITLE] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 2, @@ -908,7 +948,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x0001, }, - { + [SWAP_WIN_SPECIES] = { .bg = 2, .tilemapLeft = 19, .tilemapTop = 2, @@ -917,7 +957,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .paletteNum = 14, .baseBlock = 0x0019, }, - { + [SWAP_WIN_INFO] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 15, @@ -926,7 +966,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x002f, }, - { + [SWAP_WIN_OPTIONS] = { .bg = 0, .tilemapLeft = 21, .tilemapTop = 14, @@ -935,7 +975,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x006b, }, - { + [SWAP_WIN_YES_NO] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 14, @@ -944,7 +984,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x00a1, }, - { + [SWAP_WIN_ACTION_FADE] = { .bg = 2, .tilemapLeft = 21, .tilemapTop = 15, @@ -953,7 +993,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .paletteNum = 14, .baseBlock = 0x006b, }, - { + [SWAP_WIN_UNUSED] = { .bg = 2, .tilemapLeft = 10, .tilemapTop = 2, @@ -962,7 +1002,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .paletteNum = 14, .baseBlock = 0x00c1, }, - { + [SWAP_WIN_SPECIES_AT_FADE] = { .bg = 0, .tilemapLeft = 19, .tilemapTop = 2, @@ -971,7 +1011,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .paletteNum = 15, .baseBlock = 0x00c9, }, - { + [SWAP_WIN_MON_CATEGORY] = { .bg = 0, .tilemapLeft = 15, .tilemapTop = 0, @@ -983,64 +1023,36 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = DUMMY_WIN_TEMPLATE, }; -static const u16 gUnknown_08610918[] = {RGB_BLACK, RGB_BLACK, RGB_WHITE, RGB_BLACK, RGB_RED}; // Palette. -static const u8 sSwapMenuOptionsTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_TRANSPARENT}; +static const u16 sSwapText_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/text.gbapal"); // Identical to sSelectText_Pal +static const u8 sSwapMenuOptionsTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_TRANSPARENT}; static const u8 sSwapSpeciesNameTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_TRANSPARENT}; -static const struct SwapActionIdAndFunc sSwap_PlayerScreenActions[] = +#define SWAPACTION_MON 1 +#define SWAPACTION_PKMN_FOR_SWAP 2 +#define SWAPACTION_CANCEL 3 + +static const struct SwapScreenAction sSwap_PlayerScreenActions[] = { - {1, Swap_ActionMon}, - {1, Swap_ActionMon}, - {1, Swap_ActionMon}, - {3, Swap_ActionCancel}, + {.id = SWAPACTION_MON, .func = Swap_ActionMon}, + {.id = SWAPACTION_MON, .func = Swap_ActionMon}, + {.id = SWAPACTION_MON, .func = Swap_ActionMon}, + {.id = SWAPACTION_CANCEL, .func = Swap_ActionCancel}, }; -static const struct SwapActionIdAndFunc sSwap_EnemyScreenActions[] = +static const struct SwapScreenAction sSwap_EnemyScreenActions[] = { - {1, Swap_ActionMon}, - {1, Swap_ActionMon}, - {1, Swap_ActionMon}, - {2, Swap_ActionPkmnForSwap}, - {3, Swap_ActionCancel}, + {.id = SWAPACTION_MON, .func = Swap_ActionMon}, + {.id = SWAPACTION_MON, .func = Swap_ActionMon}, + {.id = SWAPACTION_MON, .func = Swap_ActionMon}, + {.id = SWAPACTION_PKMN_FOR_SWAP, .func = Swap_ActionPkmnForSwap}, + {.id = SWAPACTION_CANCEL, .func = Swap_ActionCancel}, }; -// gfx -extern const u8 gFrontierFactorySelectMenu_Gfx[]; -extern const u8 gFrontierFactorySelectMenu_Tilemap[]; -extern const u16 gFrontierFactorySelectMenu_Pal[]; - -// text -extern const u8 gText_RentalPkmn2[]; -extern const u8 gText_SelectFirstPkmn[]; -extern const u8 gText_SelectSecondPkmn[]; -extern const u8 gText_SelectThirdPkmn[]; -extern const u8 gText_TheseThreePkmnOkay[]; -extern const u8 gText_CantSelectSamePkmn[]; -extern const u8 gText_Summary[]; -extern const u8 gText_Rechoose[]; -extern const u8 gText_Deselect[]; -extern const u8 gText_Rent[]; -extern const u8 gText_Others2[]; -extern const u8 gText_Yes2[]; -extern const u8 gText_Yes3[]; -extern const u8 gText_No2[]; -extern const u8 gText_No3[]; -extern const u8 gText_QuitSwapping[]; -extern const u8 gText_AcceptThisPkmn[]; -extern const u8 gText_SelectPkmnToAccept[]; -extern const u8 gText_SelectPkmnToSwap[]; -extern const u8 gText_PkmnSwap[]; -extern const u8 gText_Swap[]; -extern const u8 gText_Summary2[]; -extern const u8 gText_PkmnForSwap[]; -extern const u8 gText_SamePkmnInPartyAlready[]; -extern const u8 gText_Cancel3[]; - -// code -static void sub_819A44C(struct Sprite *sprite) +static void SpriteCB_Pokeball(struct Sprite *sprite) { - if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) + if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(PALTAG_BALL_SELECTED)) { + // Pokeball selected, do rocking animation if (sprite->animEnded) { if (sprite->data[0] != 0) @@ -1064,11 +1076,12 @@ static void sub_819A44C(struct Sprite *sprite) } else { + // Pokeball not selected, remain still StartSpriteAnimIfDifferent(sprite, 0); } } -static void Select_CB2(void) +static void CB2_SelectScreen(void) { AnimateSprites(); BuildOamBuffer(); @@ -1077,7 +1090,7 @@ static void Select_CB2(void) RunTasks(); } -static void Select_VblankCb(void) +static void VBlankCB_SelectScreen(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -1090,6 +1103,27 @@ void DoBattleFactorySelectScreen(void) SetMainCallback2(CB2_InitSelectScreen); } +// Main select states +// States for the main tasks of the Select_ functions after initialization, including: +// Select_Task_OpenSummaryScreen, Select_Task_HandleYesNo, Select_Task_HandleMenu, and Select_Task_HandleChooseMons +// Unnecessarily complicated, could easily have just kept states numbered in each task always starting at 0 +// There's only one instance (Select_Task_HandleChooseMons) where a non-initial case is used +// Select_Task_Exit has its own straightforward states +#define STATE_CHOOSE_MONS_INIT 0 +#define STATE_CHOOSE_MONS_HANDLE_INPUT 1 +#define STATE_MENU_INIT 2 +#define STATE_MENU_HANDLE_INPUT 3 +#define STATE_YESNO_SHOW_OPTIONS 4 +#define STATE_YESNO_HANDLE_INPUT 5 +#define STATE_SUMMARY_FADE 6 +#define STATE_SUMMARY_CLEAN 7 +#define STATE_SUMMARY_SHOW 8 +#define STATE_MENU_SHOW_OPTIONS 9 +#define STATE_YESNO_SHOW_MONS 10 +#define STATE_CHOOSE_MONS_INVALID 11 +#define STATE_MENU_REINIT 12 +#define STATE_MENU_RESHOW 13 + static void CB2_InitSelectScreen(void) { u8 taskId; @@ -1110,9 +1144,9 @@ static void CB2_InitSelectScreen(void) break; case 1: sSelectMenuTilesetBuffer = Alloc(0x440); - sSelectMonCardBgTilesetBuffer = AllocZeroed(0x440); - sSelectMenuTilemapBuffer = Alloc(0x800); - sSelectMonCardBgTilemapBuffer = AllocZeroed(0x800); + sSelectMonPicBgTilesetBuffer = AllocZeroed(0x440); + sSelectMenuTilemapBuffer = Alloc(BG_SCREEN_SIZE); + sSelectMonPicBgTilemapBuffer = AllocZeroed(BG_SCREEN_SIZE); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -1137,45 +1171,45 @@ static void CB2_InitSelectScreen(void) ResetTasks(); FreeAllSpritePalettes(); CpuCopy16(gFrontierFactorySelectMenu_Gfx, sSelectMenuTilesetBuffer, 0x440); - CpuCopy16(gUnknown_0861033C, sSelectMonCardBgTilesetBuffer, 0x60); + CpuCopy16(sMonPicBg_Gfx, sSelectMonPicBgTilesetBuffer, 0x60); LoadBgTiles(1, sSelectMenuTilesetBuffer, 0x440, 0); - LoadBgTiles(3, sSelectMonCardBgTilesetBuffer, 0x60, 0); - CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSelectMenuTilemapBuffer, 0x800); - LoadBgTilemap(1, sSelectMenuTilemapBuffer, 0x800, 0); + LoadBgTiles(3, sSelectMonPicBgTilesetBuffer, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSelectMenuTilemapBuffer, BG_SCREEN_SIZE); + LoadBgTilemap(1, sSelectMenuTilemapBuffer, BG_SCREEN_SIZE, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); - LoadPalette(gUnknown_0861046C, 0xF0, 8); - LoadPalette(gUnknown_0861046C, 0xE0, 10); - #if MODERN + LoadPalette(sSelectText_Pal, 0xF0, 8); + LoadPalette(sSelectText_Pal, 0xE0, 10); +#ifdef UBFIX if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen) - #else +#else if (sFactorySelectScreen->fromSummaryScreen == TRUE) - #endif - gPlttBufferUnfaded[228] = sFactorySelectScreen->unk2A4; - LoadPalette(gUnknown_0861039C, 0x20, 4); +#endif + gPlttBufferUnfaded[228] = sFactorySelectScreen->speciesNameColorBackup; + LoadPalette(sMonPicBg_Pal, 0x20, 4); gMain.state++; break; case 3: - SetBgTilemapBuffer(3, sSelectMonCardBgTilemapBuffer); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); + SetBgTilemapBuffer(3, sSelectMonPicBgTilemapBuffer); + CopyToBgTilemapBufferRect(3, sMonPicBg_Tilemap, 11, 4, 8, 8); + CopyToBgTilemapBufferRect(3, sMonPicBg_Tilemap, 2, 4, 8, 8); + CopyToBgTilemapBufferRect(3, sMonPicBg_Tilemap, 20, 4, 8, 8); CopyBgTilemapBufferToVram(3); gMain.state++; break; case 4: - LoadSpritePalettes(gUnknown_086103F4); - LoadSpriteSheets(gUnknown_086103BC); - LoadCompressedSpriteSheet(gUnknown_086103E4); + LoadSpritePalettes(sSelect_SpritePalettes); + LoadSpriteSheets(sSelect_SpriteSheets); + LoadCompressedSpriteSheet(sSelect_BallGfx); ShowBg(0); ShowBg(1); - SetVBlankCallback(Select_VblankCb); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + SetVBlankCallback(VBlankCB_SelectScreen); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); - #if MODERN +#ifdef UBFIX if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen) - #else +#else if (sFactorySelectScreen->fromSummaryScreen == TRUE) - #endif +#endif { Select_SetWinRegs(88, 152, 32, 96); ShowBg(3); @@ -1189,54 +1223,54 @@ static void CB2_InitSelectScreen(void) gMain.state++; break; case 5: - #if MODERN +#ifdef UBFIX if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen) - #else +#else if (sFactorySelectScreen->fromSummaryScreen == TRUE) - #endif +#endif sFactorySelectScreen->cursorPos = gLastViewedMonIndex; Select_InitMonsData(); Select_InitAllSprites(); if (sFactorySelectScreen->fromSummaryScreen == TRUE) - Select_ShowSummaryMonSprite(); + Select_ReshowMonSprite(); gMain.state++; break; case 6: Select_PrintSelectMonString(); - PutWindowTilemap(2); + PutWindowTilemap(SELECT_WIN_INFO); gMain.state++; break; case 7: Select_PrintMonCategory(); - PutWindowTilemap(5); + PutWindowTilemap(SELECT_WIN_MON_CATEGORY); gMain.state++; break; case 8: Select_PrintMonSpecies(); - PutWindowTilemap(1); + PutWindowTilemap(SELECT_WIN_SPECIES); gMain.state++; break; case 9: Select_PrintRentalPkmnString(); - PutWindowTilemap(0); + PutWindowTilemap(SELECT_WIN_TITLE); gMain.state++; break; case 10: - sFactorySelectScreen->fadeSpeciesNameTaskId = CreateTask(Task_SelectFadeSpeciesName, 0); + sFactorySelectScreen->fadeSpeciesNameTaskId = CreateTask(Select_Task_FadeSpeciesName, 0); if (!sFactorySelectScreen->fromSummaryScreen) { - gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 0; - taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0); - gTasks[taskId].data[0] = 0; + gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].tState = FADESTATE_INIT; + taskId = CreateTask(Select_Task_HandleChooseMons, 0); + gTasks[taskId].tState = STATE_CHOOSE_MONS_INIT; } else { - gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 1; - sFactorySelectScreen->unk2A2 = FALSE; - taskId = CreateTask(Task_HandleSelectionScreenMenu, 0); - gTasks[taskId].data[0] = 13; + gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].tState = FADESTATE_RUN; + sFactorySelectScreen->fadeSpeciesNameActive = FALSE; + taskId = CreateTask(Select_Task_HandleMenu, 0); + gTasks[taskId].tState = STATE_MENU_RESHOW; } - SetMainCallback2(Select_CB2); + SetMainCallback2(CB2_SelectScreen); break; } } @@ -1258,7 +1292,7 @@ static void Select_InitMonsData(void) if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) CreateFrontierFactorySelectableMons(0); else - CreateTentFactorySelectableMons(0); + CreateSlateportTentSelectableMons(0); } static void Select_InitAllSprites(void) @@ -1268,15 +1302,15 @@ static void Select_InitAllSprites(void) for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - sFactorySelectScreen->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); - gSprites[sFactorySelectScreen->mons[i].spriteId].data[0] = 0; + sFactorySelectScreen->mons[i].ballSpriteId = CreateSprite(&sSpriteTemplate_Select_Pokeball, (35 * i) + 32, 64, 1); + gSprites[sFactorySelectScreen->mons[i].ballSpriteId].data[0] = 0; Select_SetBallSpritePaletteNum(i); } cursorPos = sFactorySelectScreen->cursorPos; - x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x; - sFactorySelectScreen->cursorSpriteId = CreateSprite(&gUnknown_086105F0, x, 88, 0); - sFactorySelectScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); - sFactorySelectScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); + x = gSprites[sFactorySelectScreen->mons[cursorPos].ballSpriteId].x; + sFactorySelectScreen->cursorSpriteId = CreateSprite(&sSpriteTemplate_Select_Arrow, x, 88, 0); + sFactorySelectScreen->menuCursor1SpriteId = CreateSprite(&sSpriteTemplate_Select_MenuHighlightLeft, 176, 112, 0); + sFactorySelectScreen->menuCursor2SpriteId = CreateSprite(&sSpriteTemplate_Select_MenuHighlightRight, 176, 144, 0); gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; @@ -1292,7 +1326,7 @@ static void Select_DestroyAllSprites(void) u8 i; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - DestroySprite(&gSprites[sFactorySelectScreen->mons[i].spriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->mons[i].ballSpriteId]); DestroySprite(&gSprites[sFactorySelectScreen->cursorSpriteId]); DestroySprite(&gSprites[sFactorySelectScreen->menuCursor1SpriteId]); @@ -1318,14 +1352,14 @@ static void Select_UpdateBallCursorPosition(s8 direction) } cursorPos = sFactorySelectScreen->cursorPos; - gSprites[sFactorySelectScreen->cursorSpriteId].pos1.x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x; + gSprites[sFactorySelectScreen->cursorSpriteId].x = gSprites[sFactorySelectScreen->mons[cursorPos].ballSpriteId].x; } static void Select_UpdateMenuCursorPosition(s8 direction) { if (direction > 0) // Move cursor down. { - if (sFactorySelectScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1) + if (sFactorySelectScreen->menuCursorPos != ARRAY_COUNT(sSelect_MenuOptionFuncs) - 1) sFactorySelectScreen->menuCursorPos++; else sFactorySelectScreen->menuCursorPos = 0; @@ -1335,11 +1369,11 @@ static void Select_UpdateMenuCursorPosition(s8 direction) if (sFactorySelectScreen->menuCursorPos != 0) sFactorySelectScreen->menuCursorPos--; else - sFactorySelectScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1; + sFactorySelectScreen->menuCursorPos = ARRAY_COUNT(sSelect_MenuOptionFuncs) - 1; } - gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].y = (sFactorySelectScreen->menuCursorPos * 16) + 112; } static void Select_UpdateYesNoCursorPosition(s8 direction) @@ -1359,8 +1393,8 @@ static void Select_UpdateYesNoCursorPosition(s8 direction) sFactorySelectScreen->yesNoCursorPos = 1; } - gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; } static void Select_HandleMonSelectionChange(void) @@ -1369,12 +1403,13 @@ static void Select_HandleMonSelectionChange(void) u8 cursorPos = sFactorySelectScreen->cursorPos; if (sFactorySelectScreen->mons[cursorPos].selectedId) // Deselect a mon. { - paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); - if (sFactorySelectScreen->selectingMonsState == 3 && sFactorySelectScreen->mons[cursorPos].selectedId == 1) + paletteNum = IndexOfSpritePaletteTag(PALTAG_BALL_GRAY); + if (sFactorySelectScreen->selectingMonsState == FRONTIER_PARTY_SIZE + && sFactorySelectScreen->mons[cursorPos].selectedId == 1) { for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - if (sFactorySelectScreen->mons[i].selectedId == 2) + if (sFactorySelectScreen->mons[i].selectedId == FRONTIER_PARTY_SIZE - 1) break; } if (i == SELECTABLE_MONS_COUNT) @@ -1387,12 +1422,12 @@ static void Select_HandleMonSelectionChange(void) } else // Select a mon. { - paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + paletteNum = IndexOfSpritePaletteTag(PALTAG_BALL_SELECTED); sFactorySelectScreen->mons[cursorPos].selectedId = sFactorySelectScreen->selectingMonsState; sFactorySelectScreen->selectingMonsState++; } - gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].oam.paletteNum = paletteNum; + gSprites[sFactorySelectScreen->mons[cursorPos].ballSpriteId].oam.paletteNum = paletteNum; } static void Select_SetBallSpritePaletteNum(u8 id) @@ -1400,191 +1435,196 @@ static void Select_SetBallSpritePaletteNum(u8 id) u8 palNum; if (sFactorySelectScreen->mons[id].selectedId) - palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + palNum = IndexOfSpritePaletteTag(PALTAG_BALL_SELECTED); else - palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + palNum = IndexOfSpritePaletteTag(PALTAG_BALL_GRAY); - gSprites[sFactorySelectScreen->mons[id].spriteId].oam.paletteNum = palNum; + gSprites[sFactorySelectScreen->mons[id].ballSpriteId].oam.paletteNum = palNum; } -static void Task_FromSelectScreenToSummaryScreen(u8 taskId) +static void Select_Task_OpenSummaryScreen(u8 taskId) { u8 i; u8 currMonId; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 6: + case STATE_SUMMARY_FADE: gPlttBufferUnfaded[228] = gPlttBufferFaded[228]; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0] = 7; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].tState = STATE_SUMMARY_CLEAN; break; - case 7: + case STATE_SUMMARY_CLEAN: if (!gPaletteFade.active) { DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); - sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0); + HideMonPic(sFactorySelectScreen->monPics[1], &sFactorySelectScreen->monPicAnimating); Select_DestroyAllSprites(); FREE_AND_SET_NULL(sSelectMenuTilesetBuffer); - FREE_AND_SET_NULL(sSelectMonCardBgTilesetBuffer); + FREE_AND_SET_NULL(sSelectMonPicBgTilesetBuffer); FREE_AND_SET_NULL(sSelectMenuTilemapBuffer); - FREE_AND_SET_NULL(sSelectMonCardBgTilemapBuffer); + FREE_AND_SET_NULL(sSelectMonPicBgTilemapBuffer); FreeAllWindowBuffers(); - gTasks[taskId].data[0] = 8; + gTasks[taskId].tState = STATE_SUMMARY_SHOW; } break; - case 8: - sFactorySelectScreen->unk2A4 = gPlttBufferUnfaded[228]; + case STATE_SUMMARY_SHOW: + sFactorySelectScreen->speciesNameColorBackup = gPlttBufferUnfaded[228]; DestroyTask(taskId); sFactorySelectScreen->fromSummaryScreen = TRUE; currMonId = sFactorySelectScreen->cursorPos; sFactorySelectMons = AllocZeroed(sizeof(struct Pokemon) * SELECTABLE_MONS_COUNT); for (i = 0; i < SELECTABLE_MONS_COUNT; i++) sFactorySelectMons[i] = sFactorySelectScreen->mons[i].monData; - ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, CB2_InitSelectScreen); + ShowPokemonSummaryScreen(SUMMARY_MODE_LOCK_MOVES, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, CB2_InitSelectScreen); break; } } -static void Task_CloseSelectionScreen(u8 taskId) +static void Select_Task_Exit(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != TRUE) + if (sFactorySelectScreen->monPicAnimating == TRUE) + return; + + switch (gTasks[taskId].tState) { - switch (gTasks[taskId].data[0]) + case 0: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].tState++; + break; + case 1: + if (!UpdatePaletteFade()) { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0]++; - break; - case 1: - if (!UpdatePaletteFade()) - { - Select_CopyMonsToPlayerParty(); - DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); - Select_DestroyAllSprites(); - FREE_AND_SET_NULL(sSelectMenuTilesetBuffer); - FREE_AND_SET_NULL(sSelectMenuTilemapBuffer); - FREE_AND_SET_NULL(sSelectMonCardBgTilemapBuffer); - FREE_AND_SET_NULL(sFactorySelectScreen); - FreeAllWindowBuffers(); - SetMainCallback2(CB2_ReturnToFieldContinueScript); - DestroyTask(taskId); - } - break; + Select_CopyMonsToPlayerParty(); + DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); + Select_DestroyAllSprites(); + FREE_AND_SET_NULL(sSelectMenuTilesetBuffer); + FREE_AND_SET_NULL(sSelectMenuTilemapBuffer); + FREE_AND_SET_NULL(sSelectMonPicBgTilemapBuffer); + FREE_AND_SET_NULL(sFactorySelectScreen); + FreeAllWindowBuffers(); + SetMainCallback2(CB2_ReturnToFieldContinueScript); + DestroyTask(taskId); } + break; } } -static void Task_HandleSelectionScreenYesNo(u8 taskId) +// Handles the Yes/No prompt when confirming the 3 selected rental pokemon +static void Select_Task_HandleYesNo(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != TRUE) + if (sFactorySelectScreen->monPicAnimating == TRUE) + return; + + switch (gTasks[taskId].tState) { - switch (gTasks[taskId].data[0]) + case STATE_YESNO_SHOW_MONS: + Select_ShowChosenMons(); + gTasks[taskId].tState = STATE_YESNO_SHOW_OPTIONS; + break; + case STATE_YESNO_SHOW_OPTIONS: + Select_ShowYesNoOptions(); + gTasks[taskId].tState = STATE_YESNO_HANDLE_INPUT; + break; + case STATE_YESNO_HANDLE_INPUT: + if (JOY_NEW(A_BUTTON)) { - case 10: - sub_819C4B4(); - gTasks[taskId].data[0] = 4; - break; - case 4: - Select_ShowYesNoOptions(); - gTasks[taskId].data[0] = 5; - break; - case 5: - if (JOY_NEW(A_BUTTON)) + PlaySE(SE_SELECT); + if (sFactorySelectScreen->yesNoCursorPos == 0) { - PlaySE(SE_SELECT); - if (sFactorySelectScreen->yesNoCursorPos == 0) - { - sub_819C568(); - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = Task_CloseSelectionScreen; - } - else - { - sub_819B958(4); - sub_819BC9C(); - sFactorySelectScreen->unk2A2 = TRUE; - gTasks[taskId].data[0] = 1; - gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; - } + // Selected Yes, confirmed selected pokemon + Select_HideChosenMons(); + gTasks[taskId].tState = 0; + gTasks[taskId].func = Select_Task_Exit; } - else if (JOY_NEW(B_BUTTON)) + else { - PlaySE(SE_SELECT); - sub_819B958(4); - sub_819BC9C(); - sFactorySelectScreen->unk2A2 = TRUE; - gTasks[taskId].data[0] = 1; - gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + // Selected No, continue choosing pokemon + Select_ErasePopupMenu(SELECT_WIN_YES_NO); + Select_DeclineChosenMons(); + sFactorySelectScreen->fadeSpeciesNameActive = TRUE; + gTasks[taskId].tState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Select_Task_HandleChooseMons; } - else if (JOY_REPEAT(DPAD_UP)) - { - PlaySE(SE_SELECT); - Select_UpdateYesNoCursorPosition(-1); - } - else if (JOY_REPEAT(DPAD_DOWN)) - { - PlaySE(SE_SELECT); - Select_UpdateYesNoCursorPosition(1); - } - break; } + else if (JOY_NEW(B_BUTTON)) + { + // Pressed B, Continue choosing pokemon + PlaySE(SE_SELECT); + Select_ErasePopupMenu(SELECT_WIN_YES_NO); + Select_DeclineChosenMons(); + sFactorySelectScreen->fadeSpeciesNameActive = TRUE; + gTasks[taskId].tState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Select_Task_HandleChooseMons; + } + else if (JOY_REPEAT(DPAD_UP)) + { + PlaySE(SE_SELECT); + Select_UpdateYesNoCursorPosition(-1); + } + else if (JOY_REPEAT(DPAD_DOWN)) + { + PlaySE(SE_SELECT); + Select_UpdateYesNoCursorPosition(1); + } + break; } } -static void Task_HandleSelectionScreenMenu(u8 taskId) +// Handles the popup menu that shows when a pokemon is selected +static void Select_Task_HandleMenu(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 2: + case STATE_MENU_INIT: if (!sFactorySelectScreen->fromSummaryScreen) - sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, FALSE); - gTasks[taskId].data[0] = 9; + OpenMonPic(&sFactorySelectScreen->monPics[1].bgSpriteId, &sFactorySelectScreen->monPicAnimating, FALSE); + gTasks[taskId].tState = STATE_MENU_SHOW_OPTIONS; break; - case 9: - if (sFactorySelectScreen->unk2A0 != TRUE) + case STATE_MENU_SHOW_OPTIONS: + if (sFactorySelectScreen->monPicAnimating != TRUE) { Select_ShowMenuOptions(); sFactorySelectScreen->fromSummaryScreen = FALSE; - gTasks[taskId].data[0] = 3; + gTasks[taskId].tState = STATE_MENU_HANDLE_INPUT; } break; - case 3: + case STATE_MENU_HANDLE_INPUT: if (JOY_NEW(A_BUTTON)) { u8 retVal; PlaySE(SE_SELECT); retVal = Select_RunMenuOptionFunc(); - if (retVal == 1) + if (retVal == SELECT_CONTINUE_CHOOSING) { - sFactorySelectScreen->unk2A2 = TRUE; - gTasks[taskId].data[0] = 1; - gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + sFactorySelectScreen->fadeSpeciesNameActive = TRUE; + gTasks[taskId].tState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Select_Task_HandleChooseMons; } - else if (retVal == 2) + else if (retVal == SELECT_CONFIRM_MONS) { - gTasks[taskId].data[0] = 10; - gTasks[taskId].func = Task_HandleSelectionScreenYesNo; + gTasks[taskId].tState = STATE_YESNO_SHOW_MONS; + gTasks[taskId].func = Select_Task_HandleYesNo; } - else if (retVal == 3) + else if (retVal == SELECT_INVALID_MON) { - gTasks[taskId].data[0] = 11; - gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + gTasks[taskId].tState = STATE_CHOOSE_MONS_INVALID; + gTasks[taskId].func = Select_Task_HandleChooseMons; } - else + else // SELECT_SUMMARY { - gTasks[taskId].data[0] = 6; - gTasks[taskId].func = Task_FromSelectScreenToSummaryScreen; + gTasks[taskId].tState = STATE_SUMMARY_FADE; + gTasks[taskId].func = Select_Task_OpenSummaryScreen; } } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); - sub_819B958(3); - sFactorySelectScreen->unk2A2 = TRUE; - gTasks[taskId].data[0] = 1; - gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + CloseMonPic(sFactorySelectScreen->monPics[1], &sFactorySelectScreen->monPicAnimating, FALSE); + Select_ErasePopupMenu(SELECT_WIN_OPTIONS); + sFactorySelectScreen->fadeSpeciesNameActive = TRUE; + gTasks[taskId].tState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Select_Task_HandleChooseMons; } else if (JOY_REPEAT(DPAD_UP)) { @@ -1597,81 +1637,97 @@ static void Task_HandleSelectionScreenMenu(u8 taskId) Select_UpdateMenuCursorPosition(1); } break; - case 12: + case STATE_MENU_REINIT: if (!gPaletteFade.active) { if (sFactorySelectScreen->fromSummaryScreen == TRUE) { - gPlttBufferFaded[228] = sFactorySelectScreen->unk2A4; + gPlttBufferFaded[228] = sFactorySelectScreen->speciesNameColorBackup; gPlttBufferUnfaded[228] = gPlttBufferUnfaded[244]; } sFactorySelectScreen->fromSummaryScreen = FALSE; - gTasks[taskId].data[0] = 3; + gTasks[taskId].tState = STATE_MENU_HANDLE_INPUT; } break; - case 13: + case STATE_MENU_RESHOW: Select_ShowMenuOptions(); - gTasks[taskId].data[0] = 12; + gTasks[taskId].tState = STATE_MENU_REINIT; break; } } -static void Task_HandleSelectionScreenChooseMons(u8 taskId) +// Handles input on the main selection screen, when no popup menu is open +static void Select_Task_HandleChooseMons(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != TRUE) + if (sFactorySelectScreen->monPicAnimating == TRUE) + return; + + switch (gTasks[taskId].tState) { - switch (gTasks[taskId].data[0]) + case STATE_CHOOSE_MONS_INIT: + if (!gPaletteFade.active) { - case 0: - if (!gPaletteFade.active) - { - gTasks[taskId].data[0] = 1; - sFactorySelectScreen->unk2A2 = TRUE; - } - break; - case 1: - if (JOY_NEW(A_BUTTON)) - { - PlaySE(SE_SELECT); - sFactorySelectScreen->unk2A2 = FALSE; - gTasks[taskId].data[0] = 2; - gTasks[taskId].func = Task_HandleSelectionScreenMenu; - } - else if (JOY_REPEAT(DPAD_LEFT)) - { - PlaySE(SE_SELECT); - Select_UpdateBallCursorPosition(-1); - Select_PrintMonCategory(); - Select_PrintMonSpecies(); - } - else if (JOY_REPEAT(DPAD_RIGHT)) - { - PlaySE(SE_SELECT); - Select_UpdateBallCursorPosition(1); - Select_PrintMonCategory(); - Select_PrintMonSpecies(); - } - break; - case 11: - if (JOY_NEW(A_BUTTON)) - { - PlaySE(SE_SELECT); - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); - Select_PrintSelectMonString(); - sFactorySelectScreen->unk2A2 = TRUE; - gTasks[taskId].data[0] = 1; - } - break; + gTasks[taskId].tState = STATE_CHOOSE_MONS_HANDLE_INPUT; + sFactorySelectScreen->fadeSpeciesNameActive = TRUE; } + break; + case STATE_CHOOSE_MONS_HANDLE_INPUT: + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + sFactorySelectScreen->fadeSpeciesNameActive = FALSE; + gTasks[taskId].tState = STATE_MENU_INIT; + gTasks[taskId].func = Select_Task_HandleMenu; + } + else if (JOY_REPEAT(DPAD_LEFT)) + { + PlaySE(SE_SELECT); + Select_UpdateBallCursorPosition(-1); + Select_PrintMonCategory(); + Select_PrintMonSpecies(); + } + else if (JOY_REPEAT(DPAD_RIGHT)) + { + PlaySE(SE_SELECT); + Select_UpdateBallCursorPosition(1); + Select_PrintMonCategory(); + Select_PrintMonSpecies(); + } + break; + case STATE_CHOOSE_MONS_INVALID: + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + CloseMonPic(sFactorySelectScreen->monPics[1], &sFactorySelectScreen->monPicAnimating, FALSE); + Select_PrintSelectMonString(); + sFactorySelectScreen->fadeSpeciesNameActive = TRUE; + gTasks[taskId].tState = STATE_CHOOSE_MONS_HANDLE_INPUT; + } + break; } } +#undef STATE_CHOOSE_MONS_INIT +#undef STATE_CHOOSE_MONS_HANDLE_INPUT +#undef STATE_MENU_INIT +#undef STATE_MENU_HANDLE_INPUT +#undef STATE_YESNO_SHOW_OPTIONS +#undef STATE_YESNO_HANDLE_INPUT +#undef STATE_SUMMARY_FADE +#undef STATE_SUMMARY_CLEAN +#undef STATE_SUMMARY_SHOW +#undef STATE_MENU_SHOW_OPTIONS +#undef STATE_YESNO_SHOW_MONS +#undef STATE_CHOOSE_MONS_INVALID +#undef STATE_MENU_REINIT +#undef STATE_MENU_RESHOW + static void CreateFrontierFactorySelectableMons(u8 firstMonId) { u8 i, j = 0; u8 ivs = 0; u8 level = 0; - u8 happiness = 0; + u8 friendship = 0; u32 otId = 0; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -1702,20 +1758,20 @@ static void CreateFrontierFactorySelectableMons(u8 firstMonId) ivs, gFacilityTrainerMons[monId].evSpread, otId); - happiness = 0; + friendship = 0; for (j = 0; j < MAX_MON_MOVES; j++) SetMonMoveAvoidReturn(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monId].moves[j], j); - SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &friendship); SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); } } -static void CreateTentFactorySelectableMons(u8 firstMonId) +static void CreateSlateportTentSelectableMons(u8 firstMonId) { u8 i, j; u8 ivs = 0; u8 level = 30; - u8 happiness = 0; + u8 friendship = 0; u32 otId = 0; gFacilityTrainerMons = gSlateportBattleTentMons; @@ -1732,10 +1788,10 @@ static void CreateTentFactorySelectableMons(u8 firstMonId) ivs, gFacilityTrainerMons[monId].evSpread, otId); - happiness = 0; + friendship = 0; for (j = 0; j < MAX_MON_MOVES; j++) SetMonMoveAvoidReturn(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monId].moves[j], j); - SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &friendship); SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); } } @@ -1744,7 +1800,7 @@ static void Select_CopyMonsToPlayerParty(void) { u8 i, j; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { for (j = 0; j < SELECTABLE_MONS_COUNT; j++) { @@ -1767,10 +1823,10 @@ static void Select_ShowMenuOptions(void) if (!sFactorySelectScreen->fromSummaryScreen) sFactorySelectScreen->menuCursorPos = 0; - gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.x = 176; - gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].x = 176; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].x = 208; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].y = (sFactorySelectScreen->menuCursorPos * 16) + 112; gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = FALSE; gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = FALSE; @@ -1782,10 +1838,10 @@ static void Select_ShowYesNoOptions(void) { sFactorySelectScreen->yesNoCursorPos = 0; - gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.x = 176; - gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = 112; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].x = 176; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].y = 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].x = 208; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].y = 112; gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = FALSE; gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = FALSE; @@ -1793,7 +1849,7 @@ static void Select_ShowYesNoOptions(void) Select_PrintYesNoOptions(); } -static void sub_819B958(u8 windowId) +static void Select_ErasePopupMenu(u8 windowId) { gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; @@ -1804,9 +1860,9 @@ static void sub_819B958(u8 windowId) static void Select_PrintRentalPkmnString(void) { - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - AddTextPrinterParameterized(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); - CopyWindowToVram(0, 3); + FillWindowPixelBuffer(SELECT_WIN_TITLE, PIXEL_FILL(0)); + AddTextPrinterParameterized(SELECT_WIN_TITLE, 1, gText_RentalPkmn2, 2, 1, 0, NULL); + CopyWindowToVram(SELECT_WIN_TITLE, 3); } static void Select_PrintMonSpecies(void) @@ -1815,19 +1871,19 @@ static void Select_PrintMonSpecies(void) u8 x; u8 monId = sFactorySelectScreen->cursorPos; - FillWindowPixelBuffer(1, PIXEL_FILL(0)); + FillWindowPixelBuffer(SELECT_WIN_SPECIES, PIXEL_FILL(0)); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); - AddTextPrinterParameterized3(1, 1, x, 1, sSpeciesNameTextColors, 0, gStringVar4); - CopyWindowToVram(1, 2); + AddTextPrinterParameterized3(SELECT_WIN_SPECIES, 1, x, 1, sSpeciesNameTextColors, 0, gStringVar4); + CopyWindowToVram(SELECT_WIN_SPECIES, 2); } static void Select_PrintSelectMonString(void) { const u8 *str = NULL; - FillWindowPixelBuffer(2, PIXEL_FILL(0)); + FillWindowPixelBuffer(SELECT_WIN_INFO, PIXEL_FILL(0)); if (sFactorySelectScreen->selectingMonsState == 1) str = gText_SelectFirstPkmn; else if (sFactorySelectScreen->selectingMonsState == 2) @@ -1837,46 +1893,46 @@ static void Select_PrintSelectMonString(void) else str = gText_TheseThreePkmnOkay; - AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); - CopyWindowToVram(2, 2); + AddTextPrinterParameterized(SELECT_WIN_INFO, 1, str, 2, 5, 0, NULL); + CopyWindowToVram(SELECT_WIN_INFO, 2); } static void Select_PrintCantSelectSameMon(void) { - FillWindowPixelBuffer(2, PIXEL_FILL(0)); - AddTextPrinterParameterized(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); - CopyWindowToVram(2, 2); + FillWindowPixelBuffer(SELECT_WIN_INFO, PIXEL_FILL(0)); + AddTextPrinterParameterized(SELECT_WIN_INFO, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); + CopyWindowToVram(SELECT_WIN_INFO, 2); } static void Select_PrintMenuOptions(void) { u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; - PutWindowTilemap(3); - FillWindowPixelBuffer(3, PIXEL_FILL(0)); - AddTextPrinterParameterized3(3, 1, 7, 1, sMenuOptionTextColors, 0, gText_Summary); + PutWindowTilemap(SELECT_WIN_OPTIONS); + FillWindowPixelBuffer(SELECT_WIN_OPTIONS, PIXEL_FILL(0)); + AddTextPrinterParameterized3(SELECT_WIN_OPTIONS, 1, 7, 1, sMenuOptionTextColors, 0, gText_Summary); if (selectedId != 0) - AddTextPrinterParameterized3(3, 1, 7, 17, sMenuOptionTextColors, 0, gText_Deselect); + AddTextPrinterParameterized3(SELECT_WIN_OPTIONS, 1, 7, 17, sMenuOptionTextColors, 0, gText_Deselect); else - AddTextPrinterParameterized3(3, 1, 7, 17, sMenuOptionTextColors, 0, gText_Rent); + AddTextPrinterParameterized3(SELECT_WIN_OPTIONS, 1, 7, 17, sMenuOptionTextColors, 0, gText_Rent); - AddTextPrinterParameterized3(3, 1, 7, 33, sMenuOptionTextColors, 0, gText_Others2); - CopyWindowToVram(3, 3); + AddTextPrinterParameterized3(SELECT_WIN_OPTIONS, 1, 7, 33, sMenuOptionTextColors, 0, gText_Others2); + CopyWindowToVram(SELECT_WIN_OPTIONS, 3); } static void Select_PrintYesNoOptions(void) { - PutWindowTilemap(4); - FillWindowPixelBuffer(4, PIXEL_FILL(0)); - AddTextPrinterParameterized3(4, 1, 7, 1, sMenuOptionTextColors, 0, gText_Yes2); - AddTextPrinterParameterized3(4, 1, 7, 17, sMenuOptionTextColors, 0, gText_No2); - CopyWindowToVram(4, 3); + PutWindowTilemap(SELECT_WIN_YES_NO); + FillWindowPixelBuffer(SELECT_WIN_YES_NO, PIXEL_FILL(0)); + AddTextPrinterParameterized3(SELECT_WIN_YES_NO, 1, 7, 1, sMenuOptionTextColors, 0, gText_Yes2); + AddTextPrinterParameterized3(SELECT_WIN_YES_NO, 1, 7, 17, sMenuOptionTextColors, 0, gText_No2); + CopyWindowToVram(SELECT_WIN_YES_NO, 3); } static u8 Select_RunMenuOptionFunc(void) { - gUnknown_030062E8 = sSelect_MenuOptionFuncs[sFactorySelectScreen->menuCursorPos]; - return gUnknown_030062E8(); + gFactorySelect_CurrentOptionFunc = sSelect_MenuOptionFuncs[sFactorySelectScreen->menuCursorPos]; + return gFactorySelect_CurrentOptionFunc(); } static u8 Select_OptionRentDeselect(void) @@ -1886,29 +1942,29 @@ static u8 Select_OptionRentDeselect(void) if (selectedId == 0 && !Select_AreSpeciesValid(monId)) { Select_PrintCantSelectSameMon(); - sub_819B958(3); - return 3; + Select_ErasePopupMenu(SELECT_WIN_OPTIONS); + return SELECT_INVALID_MON; } else { - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); + CloseMonPic(sFactorySelectScreen->monPics[1], &sFactorySelectScreen->monPicAnimating, FALSE); Select_HandleMonSelectionChange(); Select_PrintSelectMonString(); - sub_819B958(3); - if (sFactorySelectScreen->selectingMonsState > 3) - return 2; + Select_ErasePopupMenu(SELECT_WIN_OPTIONS); + if (sFactorySelectScreen->selectingMonsState > FRONTIER_PARTY_SIZE) + return SELECT_CONFIRM_MONS; else - return 1; + return SELECT_CONTINUE_CHOOSING; } } -static u8 sub_819BC9C(void) +static u8 Select_DeclineChosenMons(void) { - sub_819C568(); + Select_HideChosenMons(); Select_HandleMonSelectionChange(); Select_PrintSelectMonString(); - sub_819B958(3); - if (sFactorySelectScreen->selectingMonsState > 3) + Select_ErasePopupMenu(SELECT_WIN_OPTIONS); + if (sFactorySelectScreen->selectingMonsState > FRONTIER_PARTY_SIZE) return 2; else return 1; @@ -1916,14 +1972,14 @@ static u8 sub_819BC9C(void) static u8 Select_OptionSummary(void) { - return 0; + return SELECT_SUMMARY; } static u8 Select_OptionOthers(void) { - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); - sub_819B958(3); - return 1; + CloseMonPic(sFactorySelectScreen->monPics[1], &sFactorySelectScreen->monPicAnimating, FALSE); + Select_ErasePopupMenu(SELECT_WIN_OPTIONS); + return SELECT_CONTINUE_CHOOSING; } static void Select_PrintMonCategory(void) @@ -1934,17 +1990,17 @@ static void Select_PrintMonCategory(void) u8 monId = sFactorySelectScreen->cursorPos; if (monId < SELECTABLE_MONS_COUNT) { - PutWindowTilemap(5); - FillWindowPixelBuffer(5, PIXEL_FILL(0)); + PutWindowTilemap(SELECT_WIN_MON_CATEGORY); + FillWindowPixelBuffer(SELECT_WIN_MON_CATEGORY, PIXEL_FILL(0)); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); - AddTextPrinterParameterized(5, 1, text, x, 1, 0, NULL); - CopyWindowToVram(5, 2); + AddTextPrinterParameterized(SELECT_WIN_MON_CATEGORY, 1, text, x, 1, 0, NULL); + CopyWindowToVram(SELECT_WIN_MON_CATEGORY, 2); } } -static void Summary_ShowMonSprite(void) +static void Select_CreateMonSprite(void) { u8 monId = sFactorySelectScreen->cursorPos; struct Pokemon *mon = &sFactorySelectScreen->mons[monId].monData; @@ -1952,44 +2008,44 @@ static void Summary_ShowMonSprite(void) u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - sFactorySelectScreen->unk294[1].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); - gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; - gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; + sFactorySelectScreen->monPics[1].monSpriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySelectScreen->monPics[1].monSpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->monPics[1].monSpriteId].centerToCornerVecY = 0; - sFactorySelectScreen->unk2A0 = FALSE; + sFactorySelectScreen->monPicAnimating = FALSE; } -static void sub_819BE20(bool8 arg0) +static void Select_SetMonPicAnimating(bool8 animating) { - sFactorySelectScreen->unk2A0 = arg0; + sFactorySelectScreen->monPicAnimating = animating; } -static void Select_ShowSummaryMonSprite(void) +static void Select_ReshowMonSprite(void) { struct Pokemon *mon; u16 species; u32 personality, otId; - sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); - StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 2); + sFactorySelectScreen->monPics[1].bgSpriteId = CreateSprite(&sSpriteTemplate_Select_MonPicBgAnim, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->monPics[1].bgSpriteId], 2); mon = &sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monData; species = GetMonData(mon, MON_DATA_SPECIES, NULL); personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - sFactorySelectScreen->unk294[1].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); - gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; - gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; + sFactorySelectScreen->monPics[1].monSpriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySelectScreen->monPics[1].monSpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->monPics[1].monSpriteId].centerToCornerVecY = 0; - gSprites[sFactorySelectScreen->unk294[1].field1].invisible = TRUE; + gSprites[sFactorySelectScreen->monPics[1].bgSpriteId].invisible = TRUE; } -static void Select_ShowChosenMonsSprites(void) +static void Select_CreateChosenMonsSprites(void) { u8 i, j; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { for (j = 0; j < SELECTABLE_MONS_COUNT; j++) { @@ -2000,66 +2056,80 @@ static void Select_ShowChosenMonsSprites(void) u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - sFactorySelectScreen->unk294[i].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, (i * 72) + 16, 32, i + 13, 0xFFFF); - gSprites[sFactorySelectScreen->unk294[i].field0].centerToCornerVecX = 0; - gSprites[sFactorySelectScreen->unk294[i].field0].centerToCornerVecY = 0; + sFactorySelectScreen->monPics[i].monSpriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, (i * 72) + 16, 32, i + 13, 0xFFFF); + gSprites[sFactorySelectScreen->monPics[i].monSpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->monPics[i].monSpriteId].centerToCornerVecY = 0; break; } } } - sFactorySelectScreen->unk2A0 = FALSE; + sFactorySelectScreen->monPicAnimating = FALSE; } -static void sub_819C040(struct Sprite *sprite) +static void SpriteCB_OpenChosenMonPics(struct Sprite *sprite) { u8 taskId; + // Current sprite is monPics[1] if (sprite->affineAnimEnded - && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded - && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded) + && gSprites[sFactorySelectScreen->monPics[0].bgSpriteId].affineAnimEnded + && gSprites[sFactorySelectScreen->monPics[2].bgSpriteId].affineAnimEnded) { sprite->invisible = TRUE; - gSprites[sFactorySelectScreen->unk294[0].field1].invisible = TRUE; - gSprites[sFactorySelectScreen->unk294[2].field1].invisible = TRUE; + gSprites[sFactorySelectScreen->monPics[0].bgSpriteId].invisible = TRUE; + gSprites[sFactorySelectScreen->monPics[2].bgSpriteId].invisible = TRUE; - taskId = CreateTask(sub_819C1D0, 1); + taskId = CreateTask(Select_Task_OpenChosenMonPics, 1); gTasks[taskId].func(taskId); sprite->callback = SpriteCallbackDummy; } } -static void sub_819C100(struct Sprite *sprite) +static void SpriteCB_CloseChosenMonPics(struct Sprite *sprite) { + // Current sprite is monPics[1] if (sprite->affineAnimEnded - && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded - && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded) + && gSprites[sFactorySelectScreen->monPics[0].bgSpriteId].affineAnimEnded + && gSprites[sFactorySelectScreen->monPics[2].bgSpriteId].affineAnimEnded) { FreeOamMatrix(sprite->oam.matrixNum); - FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[0].field1].oam.matrixNum); - FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[2].field1].oam.matrixNum); + FreeOamMatrix(gSprites[sFactorySelectScreen->monPics[0].bgSpriteId].oam.matrixNum); + FreeOamMatrix(gSprites[sFactorySelectScreen->monPics[2].bgSpriteId].oam.matrixNum); - sFactorySelectScreen->unk2A0 = FALSE; + sFactorySelectScreen->monPicAnimating = FALSE; - DestroySprite(&gSprites[sFactorySelectScreen->unk294[0].field1]); - DestroySprite(&gSprites[sFactorySelectScreen->unk294[2].field1]); + DestroySprite(&gSprites[sFactorySelectScreen->monPics[0].bgSpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->monPics[2].bgSpriteId]); DestroySprite(sprite); } } -static void sub_819C1D0(u8 taskId) +// Task data for Select_Task_OpenChosenMonPics, Select_Task_CloseChosenMonPics, Task_CloseMonPic, and Task_OpenMonPic +#define tWinLeft data[3] +#ifndef UBFIX +#define tWinRight data[24] // UB: Typo? Likely meant data[4], 24 is out of bounds +#else +#define tWinRight data[4] +#endif +#define tWinTop data[5] +#define tWinBottom data[8] +#define tSpriteId data[6] // TODO: Clarify, what sprite +#define tIsSwapScreen data[7] + +static void Select_Task_OpenChosenMonPics(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - task->data[3] = 16; - task->data[24] = 224; // BUG: writing outside the array's bounds. - task->data[5] = 64; - task->data[8] = 65; + task->tWinLeft = 16; + task->tWinRight = DISPLAY_WIDTH - 16; + task->tWinTop = 64; + task->tWinBottom = 65; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); break; @@ -2069,97 +2139,97 @@ static void sub_819C1D0(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); break; case 2: - task->data[5] -= 4; - task->data[8] += 4; - if (task->data[5] <= 32 || task->data[8] >= 96) + task->tWinTop -= 4; + task->tWinBottom += 4; + if (task->tWinTop <= 32 || task->tWinBottom >= 96) { - task->data[5] = 32; - task->data[8] = 96; + task->tWinTop = 32; + task->tWinBottom = 96; ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); - if (task->data[5] != 32) + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + if (task->tWinTop != 32) return; break; default: DestroyTask(taskId); - Select_ShowChosenMonsSprites(); + Select_CreateChosenMonsSprites(); return; } - task->data[0]++; + task->tState++; } -static void sub_819C2D4(u8 taskId) +static void Select_Task_CloseChosenMonPics(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { + case 0: + task->tWinLeft = 16; + task->tWinRight = DISPLAY_WIDTH - 16; + task->tWinTop = 32; + task->tWinBottom = 96; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + task->tState++; + break; + case 1: + task->tWinTop += 4; + task->tWinBottom -= 4; + if (task->tWinTop >= 64 || task->tWinBottom <= 65) + { + task->tWinTop = 64; + task->tWinBottom = 65; + } + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + if (task->tWinTop == 64) + task->tState++; + break; default: HideBg(3); - gSprites[sFactorySelectScreen->unk294[1].field1].invisible = FALSE; - gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C100; - gSprites[sFactorySelectScreen->unk294[0].field1].invisible = FALSE; - gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; - gSprites[sFactorySelectScreen->unk294[2].field1].invisible = FALSE; - gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; - StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 1); - StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[0].field1], 1); - StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[2].field1], 1); + gSprites[sFactorySelectScreen->monPics[1].bgSpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->monPics[1].bgSpriteId].callback = SpriteCB_CloseChosenMonPics; + gSprites[sFactorySelectScreen->monPics[0].bgSpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->monPics[0].bgSpriteId].callback = SpriteCallbackDummy; + gSprites[sFactorySelectScreen->monPics[2].bgSpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->monPics[2].bgSpriteId].callback = SpriteCallbackDummy; + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->monPics[1].bgSpriteId], 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->monPics[0].bgSpriteId], 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->monPics[2].bgSpriteId], 1); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); DestroyTask(taskId); break; - case 0: - task->data[3] = 16; - task->data[24] = 224; // BUG: writing outside the array's bounds. - task->data[5] = 32; - task->data[8] = 96; - SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); - task->data[0]++; - break; - case 1: - task->data[5] += 4; - task->data[8] -= 4; - if (task->data[5] >= 64 || task->data[8] <= 65) - { - task->data[5] = 64; - task->data[8] = 65; - } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); - if (task->data[5] == 64) - task->data[0]++; - break; } } -static void sub_819C4B4(void) +static void Select_ShowChosenMons(void) { - sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); - sFactorySelectScreen->unk294[0].field1 = CreateSprite(&gUnknown_08610638, 44, 64, 1); - sFactorySelectScreen->unk294[2].field1 = CreateSprite(&gUnknown_08610638, 196, 64, 1); + sFactorySelectScreen->monPics[1].bgSpriteId = CreateSprite(&sSpriteTemplate_Select_MonPicBgAnim, 120, 64, 1); + sFactorySelectScreen->monPics[0].bgSpriteId = CreateSprite(&sSpriteTemplate_Select_MonPicBgAnim, 44, 64, 1); + sFactorySelectScreen->monPics[2].bgSpriteId = CreateSprite(&sSpriteTemplate_Select_MonPicBgAnim, 196, 64, 1); - gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C040; - gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; - gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; + gSprites[sFactorySelectScreen->monPics[1].bgSpriteId].callback = SpriteCB_OpenChosenMonPics; + gSprites[sFactorySelectScreen->monPics[0].bgSpriteId].callback = SpriteCallbackDummy; + gSprites[sFactorySelectScreen->monPics[2].bgSpriteId].callback = SpriteCallbackDummy; - sFactorySelectScreen->unk2A0 = TRUE; + sFactorySelectScreen->monPicAnimating = TRUE; } -static void sub_819C568(void) +static void Select_HideChosenMons(void) { u8 taskId; - FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[0].field0); - FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[1].field0); - FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[2].field0); + FreeAndDestroyMonPicSprite(sFactorySelectScreen->monPics[0].monSpriteId); + FreeAndDestroyMonPicSprite(sFactorySelectScreen->monPics[1].monSpriteId); + FreeAndDestroyMonPicSprite(sFactorySelectScreen->monPics[2].monSpriteId); - taskId = CreateTask(sub_819C2D4, 1); + taskId = CreateTask(Select_Task_CloseChosenMonPics, 1); gTasks[taskId].func(taskId); - sFactorySelectScreen->unk2A0 = TRUE; + sFactorySelectScreen->monPicAnimating = TRUE; } static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V) @@ -2190,60 +2260,59 @@ static bool32 Select_AreSpeciesValid(u16 monId) } } } - return TRUE; } -static void Task_SelectFadeSpeciesName(u8 taskId) +static void Select_Task_FadeSpeciesName(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: - sFactorySelectScreen->unk2A7 = 0; - sFactorySelectScreen->unk2A8 = 0; - sFactorySelectScreen->unk2A6 = TRUE; - gTasks[taskId].data[0] = 1; + case FADESTATE_INIT: + sFactorySelectScreen->fadeSpeciesNameCoeffDelay = 0; + sFactorySelectScreen->fadeSpeciesNameCoeff = 0; + sFactorySelectScreen->fadeSpeciesNameFadeOut = TRUE; + gTasks[taskId].tState = FADESTATE_RUN; break; - case 1: - if (sFactorySelectScreen->unk2A2) + case FADESTATE_RUN: + if (sFactorySelectScreen->fadeSpeciesNameActive) { - if (sFactorySelectScreen->unk2A9) + if (sFactorySelectScreen->faceSpeciesNameDelay) { - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = FADESTATE_DELAY; } else { - sFactorySelectScreen->unk2A7++; - if (sFactorySelectScreen->unk2A7 > 6) + sFactorySelectScreen->fadeSpeciesNameCoeffDelay++; + if (sFactorySelectScreen->fadeSpeciesNameCoeffDelay > 6) { - sFactorySelectScreen->unk2A7 = 0; - if (!sFactorySelectScreen->unk2A6) - sFactorySelectScreen->unk2A8--; + sFactorySelectScreen->fadeSpeciesNameCoeffDelay = 0; + if (!sFactorySelectScreen->fadeSpeciesNameFadeOut) + sFactorySelectScreen->fadeSpeciesNameCoeff--; else - sFactorySelectScreen->unk2A8++; + sFactorySelectScreen->fadeSpeciesNameCoeff++; } - BlendPalettes(0x4000, sFactorySelectScreen->unk2A8, 0); - if (sFactorySelectScreen->unk2A8 > 5) + BlendPalettes(0x4000, sFactorySelectScreen->fadeSpeciesNameCoeff, 0); + if (sFactorySelectScreen->fadeSpeciesNameCoeff > 5) { - sFactorySelectScreen->unk2A6 = FALSE; + sFactorySelectScreen->fadeSpeciesNameFadeOut = FALSE; } - else if (sFactorySelectScreen->unk2A8 == 0) + else if (sFactorySelectScreen->fadeSpeciesNameCoeff == 0) { - gTasks[taskId].data[0] = 2; - sFactorySelectScreen->unk2A6 = TRUE; + gTasks[taskId].tState = FADESTATE_DELAY; + sFactorySelectScreen->fadeSpeciesNameFadeOut = TRUE; } } } break; - case 2: - if (sFactorySelectScreen->unk2A9 > 14) + case FADESTATE_DELAY: + if (sFactorySelectScreen->faceSpeciesNameDelay > 14) { - sFactorySelectScreen->unk2A9 = 0; - gTasks[taskId].data[0] = 1; + sFactorySelectScreen->faceSpeciesNameDelay = 0; + gTasks[taskId].tState = FADESTATE_RUN; } else { - sFactorySelectScreen->unk2A9++; + sFactorySelectScreen->faceSpeciesNameDelay++; } break; } @@ -2269,233 +2338,257 @@ static void Swap_VblankCb(void) static void CopySwappedMonData(void) { - u8 happiness; + u8 friendship; gPlayerParty[sFactorySwapScreen->playerMonId] = gEnemyParty[sFactorySwapScreen->enemyMonId]; - happiness = 0; - SetMonData(&gPlayerParty[sFactorySwapScreen->playerMonId], MON_DATA_FRIENDSHIP, &happiness); - gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + 3].monId; - gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + 3].ivs; + friendship = 0; + SetMonData(&gPlayerParty[sFactorySwapScreen->playerMonId], MON_DATA_FRIENDSHIP, &friendship); + gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + FRONTIER_PARTY_SIZE].monId; + gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + FRONTIER_PARTY_SIZE].ivs; gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL); gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].abilityNum = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ABILITY_NUM, NULL); } -static void Task_FromSwapScreenToSummaryScreen(u8 taskId) +// Main swap states +// States for the main tasks of the Swap_ functions after initialization, including: +// Swap_Task_OpenSummaryScreen, Swap_Task_HandleYesNo, Swap_Task_HandleMenu, and Swap_Task_HandleChooseMons +// Tasks sharing states was unnecessary, see "Main select states" +#define STATE_CHOOSE_MONS_INIT 0 +#define STATE_CHOOSE_MONS_HANDLE_INPUT 1 +#define STATE_MENU_INIT 2 +#define STATE_MENU_HANDLE_INPUT 3 +#define STATE_YESNO_SHOW 4 +#define STATE_YESNO_HANDLE_INPUT 5 +#define STATE_SUMMARY_FADE 6 +#define STATE_SUMMARY_CLEAN 7 +#define STATE_SUMMARY_SHOW 8 +#define STATE_MENU_SHOW_OPTIONS 9 + +static void Swap_Task_OpenSummaryScreen(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 6: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0] = 7; + case STATE_SUMMARY_FADE: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].tState = STATE_SUMMARY_CLEAN; break; - case 7: + case STATE_SUMMARY_CLEAN: if (!gPaletteFade.active) { DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); - sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); + HideMonPic(sFactorySwapScreen->monPic, &sFactorySwapScreen->monPicAnimating); Swap_DestroyAllSprites(); FREE_AND_SET_NULL(sSwapMenuTilesetBuffer); - FREE_AND_SET_NULL(sSwapMonCardBgTilesetBuffer); + FREE_AND_SET_NULL(sSwapMonPicBgTilesetBuffer); FREE_AND_SET_NULL(sSwapMenuTilemapBuffer); - FREE_AND_SET_NULL(sSwapMonCardBgTilemapBuffer); + FREE_AND_SET_NULL(sSwapMonPicBgTilemapBuffer); FreeAllWindowBuffers(); - gTasks[taskId].data[0] = 8; + gTasks[taskId].tState = STATE_SUMMARY_SHOW; } break; - case 8: + case STATE_SUMMARY_SHOW: DestroyTask(taskId); sFactorySwapScreen->fromSummaryScreen = TRUE; - sFactorySwapScreen->unk24 = gPlttBufferUnfaded[244]; - ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->cursorPos, 3 - 1, CB2_InitSwapScreen); + sFactorySwapScreen->speciesNameColorBackup = gPlttBufferUnfaded[244]; + ShowPokemonSummaryScreen(SUMMARY_MODE_NORMAL, gPlayerParty, sFactorySwapScreen->cursorPos, FRONTIER_PARTY_SIZE - 1, CB2_InitSwapScreen); break; } } -static void Task_CloseSwapScreen(u8 taskId) +static void Swap_Task_Exit(u8 taskId) { - if (sFactorySwapScreen->unk30 != TRUE) + if (sFactorySwapScreen->monPicAnimating == TRUE) + return; + + switch (gTasks[taskId].tState) { - switch (gTasks[taskId].data[0]) + case 0: + // Set return value for script + // TRUE if player kept their current pokemon + if (sFactorySwapScreen->monSwapped == TRUE) { - case 0: - if (sFactorySwapScreen->monSwapped == TRUE) - { - gTasks[taskId].data[0]++; - gSpecialVar_Result = 0; - } - else - { - gTasks[taskId].data[0] = 2; - gSpecialVar_Result = 1; - } - break; - case 1: - if (sFactorySwapScreen->monSwapped == TRUE) - { - sFactorySwapScreen->enemyMonId = sFactorySwapScreen->cursorPos; - CopySwappedMonData(); - } - gTasks[taskId].data[0]++; - break; - case 2: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0]++; - break; - case 3: - if (!UpdatePaletteFade()) - { - DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); - Swap_DestroyAllSprites(); - FREE_AND_SET_NULL(sSwapMenuTilesetBuffer); - FREE_AND_SET_NULL(sSwapMonCardBgTilesetBuffer); - FREE_AND_SET_NULL(sSwapMenuTilemapBuffer); - FREE_AND_SET_NULL(sSwapMonCardBgTilemapBuffer); - FREE_AND_SET_NULL(sFactorySwapScreen); - FreeAllWindowBuffers(); - SetMainCallback2(CB2_ReturnToFieldContinueScript); - DestroyTask(taskId); - } - break; + gTasks[taskId].tState++; + gSpecialVar_Result = FALSE; } + else + { + gTasks[taskId].tState = 2; + gSpecialVar_Result = TRUE; + } + break; + case 1: + if (sFactorySwapScreen->monSwapped == TRUE) + { + sFactorySwapScreen->enemyMonId = sFactorySwapScreen->cursorPos; + CopySwappedMonData(); + } + gTasks[taskId].tState++; + break; + case 2: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].tState++; + break; + case 3: + if (!UpdatePaletteFade()) + { + DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); + Swap_DestroyAllSprites(); + FREE_AND_SET_NULL(sSwapMenuTilesetBuffer); + FREE_AND_SET_NULL(sSwapMonPicBgTilesetBuffer); + FREE_AND_SET_NULL(sSwapMenuTilemapBuffer); + FREE_AND_SET_NULL(sSwapMonPicBgTilemapBuffer); + FREE_AND_SET_NULL(sFactorySwapScreen); + FreeAllWindowBuffers(); + SetMainCallback2(CB2_ReturnToFieldContinueScript); + DestroyTask(taskId); + } + break; } } -static void Task_HandleSwapScreenYesNo(u8 taskId) +#define tSaidYes data[1] +#define tFollowUpTaskState data[5] +#define tFollowUpTaskPtrHi data[6] +#define tFollowUpTaskPtrLo data[7] + +static void Swap_Task_HandleYesNo(u8 taskId) { u16 loPtr, hiPtr; - if (sFactorySwapScreen->unk30 != TRUE) + if (sFactorySwapScreen->monPicAnimating == TRUE) + return; + + switch (gTasks[taskId].tState) { - switch (gTasks[taskId].data[0]) + case STATE_YESNO_SHOW: + Swap_ShowYesNoOptions(); + gTasks[taskId].tState = STATE_YESNO_HANDLE_INPUT; + break; + case STATE_YESNO_HANDLE_INPUT: + if (JOY_NEW(A_BUTTON)) { - case 4: - Swap_ShowYesNoOptions(); - gTasks[taskId].data[0] = 5; - break; - case 5: - if (JOY_NEW(A_BUTTON)) + PlaySE(SE_SELECT); + if (sFactorySwapScreen->yesNoCursorPos == 0) { - PlaySE(SE_SELECT); - if (sFactorySwapScreen->yesNoCursorPos == 0) - { - gTasks[taskId].data[1] = 1; - hiPtr = gTasks[taskId].data[6]; - loPtr = gTasks[taskId].data[7]; - gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); - } - else - { - gTasks[taskId].data[1] = 0; - sub_819EA64(4); - hiPtr = gTasks[taskId].data[6]; - loPtr = gTasks[taskId].data[7]; - gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); - } - } - else if (JOY_NEW(B_BUTTON)) - { - PlaySE(SE_SELECT); - gTasks[taskId].data[1] = 0; - sub_819EA64(4); - hiPtr = gTasks[taskId].data[6]; - loPtr = gTasks[taskId].data[7]; + // Selected Yes + gTasks[taskId].tSaidYes = TRUE; + hiPtr = gTasks[taskId].tFollowUpTaskPtrHi; + loPtr = gTasks[taskId].tFollowUpTaskPtrLo; gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); } - else if (JOY_REPEAT(DPAD_UP)) + else { - PlaySE(SE_SELECT); - Swap_UpdateYesNoCursorPosition(-1); + // Selected No + gTasks[taskId].tSaidYes = FALSE; + Swap_ErasePopupMenu(SWAP_WIN_YES_NO); + hiPtr = gTasks[taskId].tFollowUpTaskPtrHi; + loPtr = gTasks[taskId].tFollowUpTaskPtrLo; + gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); } - else if (JOY_REPEAT(DPAD_DOWN)) - { - PlaySE(SE_SELECT); - Swap_UpdateYesNoCursorPosition(1); - } - break; } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + gTasks[taskId].tSaidYes = FALSE; + Swap_ErasePopupMenu(SWAP_WIN_YES_NO); + hiPtr = gTasks[taskId].tFollowUpTaskPtrHi; + loPtr = gTasks[taskId].tFollowUpTaskPtrLo; + gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); + } + else if (JOY_REPEAT(DPAD_UP)) + { + PlaySE(SE_SELECT); + Swap_UpdateYesNoCursorPosition(-1); + } + else if (JOY_REPEAT(DPAD_DOWN)) + { + PlaySE(SE_SELECT); + Swap_UpdateYesNoCursorPosition(1); + } + break; } } -static void sub_819CBDC(u8 taskId) +static void Swap_HandleQuitSwappingResposne(u8 taskId) { - if (gTasks[taskId].data[1] == 1) + if (gTasks[taskId].tSaidYes == TRUE) { - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = Task_CloseSwapScreen; + gTasks[taskId].tState = 0; + gTasks[taskId].func = Swap_Task_Exit; } else { - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; - gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); - gTasks[taskId].data[5] = 1; - gTasks[taskId].func = sub_819D770; + gTasks[taskId].tState = 0; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_Task_HandleChooseMons) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_Task_HandleChooseMons); + gTasks[taskId].tFollowUpTaskState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionIn; } } -static void sub_819CC24(u8 taskId) +static void Swap_AskQuitSwapping(u8 taskId) { - if (gTasks[taskId].data[0] == 0) + if (gTasks[taskId].tState == 0) { Swap_PrintOnInfoWindow(gText_QuitSwapping); sFactorySwapScreen->monSwapped = FALSE; - gTasks[taskId].data[0] = 4; - gTasks[taskId].data[6] = (u32)(sub_819CBDC) >> 16; - gTasks[taskId].data[7] = (u32)(sub_819CBDC); - gTasks[taskId].func = Task_HandleSwapScreenYesNo; + gTasks[taskId].tState = STATE_YESNO_SHOW; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_HandleQuitSwappingResposne) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_HandleQuitSwappingResposne); + gTasks[taskId].func = Swap_Task_HandleYesNo; } } -static void sub_819CC74(u8 taskId) +static void Swap_HandleAcceptMonResponse(u8 taskId) { - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); - if (gTasks[taskId].data[1] == 1) + CloseMonPic(sFactorySwapScreen->monPic, &sFactorySwapScreen->monPicAnimating, TRUE); + if (gTasks[taskId].tSaidYes == TRUE) { - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = Task_CloseSwapScreen; + gTasks[taskId].tState = 0; + gTasks[taskId].func = Swap_Task_Exit; } else { - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; - gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); - gTasks[taskId].data[5] = 1; - gTasks[taskId].func = sub_819D770; + gTasks[taskId].tState = 0; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_Task_HandleChooseMons) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_Task_HandleChooseMons); + gTasks[taskId].tFollowUpTaskState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionIn; } } -static void sub_819CCD4(u8 taskId) +static void Swap_AskAcceptMon(u8 taskId) { - if (gTasks[taskId].data[0] == 0) + if (gTasks[taskId].tState == 0) { - sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); + OpenMonPic(&sFactorySwapScreen->monPic.bgSpriteId, &sFactorySwapScreen->monPicAnimating, TRUE); Swap_PrintOnInfoWindow(gText_AcceptThisPkmn); sFactorySwapScreen->monSwapped = TRUE; - gTasks[taskId].data[0] = 4; - gTasks[taskId].data[6] = (u32)(sub_819CC74) >> 16; - gTasks[taskId].data[7] = (u32)(sub_819CC74); - gTasks[taskId].func = Task_HandleSwapScreenYesNo; + gTasks[taskId].tState = STATE_YESNO_SHOW; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_HandleAcceptMonResponse) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_HandleAcceptMonResponse); + gTasks[taskId].func = Swap_Task_HandleYesNo; } } -static void Task_HandleSwapScreenMenu(u8 taskId) +static void Swap_Task_HandleMenu(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 2: + case STATE_MENU_INIT: if (!sFactorySwapScreen->fromSummaryScreen) - sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); - gTasks[taskId].data[0] = 9; + OpenMonPic(&sFactorySwapScreen->monPic.bgSpriteId, &sFactorySwapScreen->monPicAnimating, TRUE); + gTasks[taskId].tState = STATE_MENU_SHOW_OPTIONS; break; - case 9: - if (sFactorySwapScreen->unk30 != TRUE) + case STATE_MENU_SHOW_OPTIONS: + if (sFactorySwapScreen->monPicAnimating != TRUE) { Swap_ShowMenuOptions(); - gTasks[taskId].data[0] = 3; + gTasks[taskId].tState = STATE_MENU_HANDLE_INPUT; } break; - case 3: - if (sFactorySwapScreen->unk30 != TRUE) + case STATE_MENU_HANDLE_INPUT: + if (sFactorySwapScreen->monPicAnimating != TRUE) { if (JOY_NEW(A_BUTTON)) { @@ -2505,13 +2598,13 @@ static void Task_HandleSwapScreenMenu(u8 taskId) else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); - sub_819EA64(3); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; - gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); - gTasks[taskId].data[5] = 1; - gTasks[taskId].func = sub_819D770; + CloseMonPic(sFactorySwapScreen->monPic, &sFactorySwapScreen->monPicAnimating, TRUE); + Swap_ErasePopupMenu(SWAP_WIN_OPTIONS); + gTasks[taskId].tState = 0; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_Task_HandleChooseMons) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_Task_HandleChooseMons); + gTasks[taskId].tFollowUpTaskState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionIn; } else if (JOY_REPEAT(DPAD_UP)) { @@ -2526,37 +2619,40 @@ static void Task_HandleSwapScreenMenu(u8 taskId) } } -static void Task_HandleSwapScreenChooseMons(u8 taskId) +// Handles input on the two main swap screens (choosing a current pokeon to get rid of, and choosing a new pokemon to receive) +static void Swap_Task_HandleChooseMons(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: + case STATE_CHOOSE_MONS_INIT: if (!gPaletteFade.active) { - sFactorySwapScreen->unk22 = TRUE; - gTasks[taskId].data[0] = 1; + sFactorySwapScreen->fadeSpeciesNameActive = TRUE; + gTasks[taskId].tState = STATE_CHOOSE_MONS_HANDLE_INPUT; } break; - case 1: + case STATE_CHOOSE_MONS_HANDLE_INPUT: if (JOY_NEW(A_BUTTON)) { + // Run whatever action is currently selected (a pokeball, the Cancel button, etc.) PlaySE(SE_SELECT); - sFactorySwapScreen->unk22 = FALSE; - Swap_PrintMonSpecies2(); - sub_819EAC0(); + sFactorySwapScreen->fadeSpeciesNameActive = FALSE; + Swap_PrintMonSpeciesAtFade(); + Swap_EraseSpeciesWindow(); Swap_RunActionFunc(taskId); } else if (JOY_NEW(B_BUTTON)) { + // Ask if player wants to quit swapping PlaySE(SE_SELECT); - sFactorySwapScreen->unk22 = FALSE; - Swap_PrintMonSpecies2(); - sub_819EAC0(); - gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 16; - gTasks[taskId].data[7] = (u32)(sub_819CC24); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[5] = 0; - gTasks[taskId].func = sub_819D588; + sFactorySwapScreen->fadeSpeciesNameActive = FALSE; + Swap_PrintMonSpeciesAtFade(); + Swap_EraseSpeciesWindow(); + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_AskQuitSwapping) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_AskQuitSwapping); + gTasks[taskId].tState = 0; + gTasks[taskId].tFollowUpTaskState = 0; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionOut; } else if (JOY_REPEAT(DPAD_LEFT)) { @@ -2586,521 +2682,573 @@ static void Task_HandleSwapScreenChooseMons(u8 taskId) } } -static void Task_SwapFadeSpeciesName(u8 taskId) +static void Swap_Task_FadeSpeciesName(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: - sFactorySwapScreen->unk27 = 0; - sFactorySwapScreen->unk28 = 0; - sFactorySwapScreen->unk26 = TRUE; - gTasks[taskId].data[0] = 1; + case FADESTATE_INIT: + sFactorySwapScreen->fadeSpeciesNameCoeffDelay = 0; + sFactorySwapScreen->fadeSpeciesNameCoeff = 0; + sFactorySwapScreen->fadeSpeciesNameFadeOut = TRUE; + gTasks[taskId].tState = FADESTATE_RUN; break; - case 1: - if (sFactorySwapScreen->unk22) + case FADESTATE_RUN: + if (sFactorySwapScreen->fadeSpeciesNameActive) { - if (sFactorySwapScreen->unk29) + if (sFactorySwapScreen->faceSpeciesNameDelay) { - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = FADESTATE_DELAY; } else { - sFactorySwapScreen->unk27++; - if (sFactorySwapScreen->unk27 > 6) + sFactorySwapScreen->fadeSpeciesNameCoeffDelay++; + if (sFactorySwapScreen->fadeSpeciesNameCoeffDelay > 6) { - sFactorySwapScreen->unk27 = 0; - if (!sFactorySwapScreen->unk26) - sFactorySwapScreen->unk28--; + sFactorySwapScreen->fadeSpeciesNameCoeffDelay = 0; + if (!sFactorySwapScreen->fadeSpeciesNameFadeOut) + sFactorySwapScreen->fadeSpeciesNameCoeff--; else - sFactorySwapScreen->unk28++; + sFactorySwapScreen->fadeSpeciesNameCoeff++; } - BlendPalettes(0x4000, sFactorySwapScreen->unk28, 0); - if (sFactorySwapScreen->unk28 > 5) + BlendPalettes(0x4000, sFactorySwapScreen->fadeSpeciesNameCoeff, 0); + if (sFactorySwapScreen->fadeSpeciesNameCoeff > 5) { - sFactorySwapScreen->unk26 = FALSE; + sFactorySwapScreen->fadeSpeciesNameFadeOut = FALSE; } - else if (sFactorySwapScreen->unk28 == 0) + else if (sFactorySwapScreen->fadeSpeciesNameCoeff == 0) { - gTasks[taskId].data[0] = 2; - sFactorySwapScreen->unk26 = TRUE; + gTasks[taskId].tState = FADESTATE_DELAY; + sFactorySwapScreen->fadeSpeciesNameFadeOut = TRUE; } } } break; - case 2: - if (sFactorySwapScreen->unk29 > 14) + case FADESTATE_DELAY: + if (sFactorySwapScreen->faceSpeciesNameDelay > 14) { - sFactorySwapScreen->unk29 = 0; - gTasks[taskId].data[0] = 1; + sFactorySwapScreen->faceSpeciesNameDelay = 0; + gTasks[taskId].tState = FADESTATE_RUN; } else { - sFactorySwapScreen->unk29++; + sFactorySwapScreen->faceSpeciesNameDelay++; } break; } } -static void Task_SwapFadeSpeciesName2(u8 taskId) +#define tFadeOutFinished data[4] + +static void Swap_Task_FadeOutSpeciesName(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: - sFactorySwapScreen->unk27 = 0; - gTasks[taskId].data[4] = 0; - gTasks[taskId].data[0]++; + sFactorySwapScreen->fadeSpeciesNameCoeffDelay = 0; + gTasks[taskId].tFadeOutFinished = FALSE; + gTasks[taskId].tState++; break; case 1: LoadPalette(&gPlttBufferUnfaded[0xF0], 0xE0, 0xA); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 2: - if (sFactorySwapScreen->unk28 > 15) + if (sFactorySwapScreen->fadeSpeciesNameCoeff > 15) { - gTasks[taskId].data[4] = 1; - gTasks[taskId].data[0]++; + gTasks[taskId].tFadeOutFinished = TRUE; + gTasks[taskId].tState++; } - sFactorySwapScreen->unk27++; - if (sFactorySwapScreen->unk27 > 3) + sFactorySwapScreen->fadeSpeciesNameCoeffDelay++; + if (sFactorySwapScreen->fadeSpeciesNameCoeffDelay > 3) { - sFactorySwapScreen->unk27 = 0; + sFactorySwapScreen->fadeSpeciesNameCoeffDelay = 0; gPlttBufferUnfaded[244] = gPlttBufferFaded[228]; - sFactorySwapScreen->unk28++; + sFactorySwapScreen->fadeSpeciesNameCoeff++; } - BlendPalettes(0x4000, sFactorySwapScreen->unk28, 0); + BlendPalettes(0x4000, sFactorySwapScreen->fadeSpeciesNameCoeff, 0); break; } } -static void sub_819D12C(u8 taskId) +// Slide current pokeballs offscreen to the right and new pokeballs onscreen from +// the left during transition between player's/enemy's party screens +#define tBallCycled(i) data[(i) + 1] +static void Swap_Task_SlideCycleBalls(u8 taskId) { s8 i; - u8 var_2C; - bool8 destroyTask; + u8 lastX; + bool8 finished; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[0] = 1; + gTasks[taskId].tBallCycled(0) = FALSE; + gTasks[taskId].tBallCycled(1) = FALSE; + gTasks[taskId].tBallCycled(2) = FALSE; + gTasks[taskId].tState = 1; break; case 1: - var_2C = 0; - for (i = 2; i >= 0; i--) + lastX = 0; + for (i = FRONTIER_PARTY_SIZE - 1; i >= 0; i--) { - if (i != 2) + if (i != FRONTIER_PARTY_SIZE - 1) { - u8 posX = var_2C - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; - if (posX == 16 || gTasks[taskId].data[i + 2] == 1) + u8 posX = lastX - gSprites[sFactorySwapScreen->ballSpriteIds[i]].x; + if (posX == 16 || gTasks[taskId].tBallCycled(i + 1) == TRUE) { - var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x += 10; + lastX = gSprites[sFactorySwapScreen->ballSpriteIds[i]].x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].x += 10; } else if (posX > 16) { - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[i + 1]].pos1.x - 48; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].x = gSprites[sFactorySwapScreen->ballSpriteIds[i + 1]].x - 48; } } else { - var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x += 10; + lastX = gSprites[sFactorySwapScreen->ballSpriteIds[i]].x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].x += 10; } - if (gTasks[taskId].data[i + 1] == 1) + if (gTasks[taskId].tBallCycled(i) == TRUE) { - if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x > (i * 48) + 72) + // New ball coming in from left, check if it has reached dest + if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].x > (i * 48) + 72) { - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = (i * 48) + 72; - destroyTask = TRUE; + // Overshot dest, set x and finish + gSprites[sFactorySwapScreen->ballSpriteIds[i]].x = (i * 48) + 72; + finished = TRUE; } - else if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x == (i * 48) + 72) + else if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].x == (i * 48) + 72) { - destroyTask = TRUE; + finished = TRUE; } else { - destroyTask = FALSE; + finished = FALSE; } } else { - destroyTask = FALSE; + finished = FALSE; } - if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x - 16 > 240) + if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].x - 16 > DISPLAY_WIDTH) { - var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = -16; + // Ball is offscreen right, cycle its palette and move to left side of screen + lastX = gSprites[sFactorySwapScreen->ballSpriteIds[i]].x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].x = -16; if (sFactorySwapScreen->inEnemyScreen == TRUE) - gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(PALTAG_BALL_SELECTED); else - gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(PALTAG_BALL_GRAY); - gTasks[taskId].data[i + 1] = 1; + gTasks[taskId].tBallCycled(i) = TRUE; } } - if (destroyTask == TRUE) + if (finished == TRUE) DestroyTask(taskId); break; } } -static void sub_819D324(u8 taskId) +// For sliding the action buttons (Cancel, Pkmn for Swap) on/off screen + +#define SLIDE_BUTTON_PKMN 0 +#define SLIDE_BUTTON_CANCEL 1 + +#define tTaskId data[1] +#define tSlidingOn data[2] +#define tXIncrement data[3] + +// Data to be used by the task that creates this task +#define tSecondSlideDelay data[2] +#define tSlideFinishedPkmn data[3] +#define tSlideFinishedCancel data[4] + +static void Swap_Task_SlideButtonOnOffScreen(u8 taskId) { u8 i, j; s32 posX = 0; - s8 r4 = gTasks[taskId].data[3]; - bool8 r1; + s8 deltaX = gTasks[taskId].tXIncrement; + bool8 sliding; s16 currPosX; - u8 taskId2; + u8 prevTaskId; - if (gTasks[taskId].data[2] == 1) - r4 *= -1; + if (gTasks[taskId].tSlidingOn == TRUE) + deltaX *= -1; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: - currPosX = gSprites[sFactorySwapScreen->unk8[0][0]].pos1.x; - if (!gTasks[taskId].data[2]) + case SLIDE_BUTTON_PKMN: + currPosX = gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0][0]].x; + if (!gTasks[taskId].tSlidingOn) { - if (currPosX + r4 < 240) + // Sliding "Pkmn for Swap" offscreen + if (currPosX + deltaX < DISPLAY_WIDTH) { - r1 = TRUE; + sliding = TRUE; } else { - r1 = FALSE; - posX = 240; + sliding = FALSE; + posX = DISPLAY_WIDTH; } } else { - if (currPosX + r4 > 160) + // Sliding "Pkmn for Swap" onscreen + if (currPosX + deltaX > 160) { - r1 = TRUE; + sliding = TRUE; } else { - r1 = FALSE; + sliding = FALSE; posX = 160; } } - if (r1 == TRUE) + if (sliding == TRUE) { - for (i = 0; i < 3; i++) + // Do movement + for (i = 0; i < ARRAY_COUNT(sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0]); i++) { - for (j = 0; j < 2; j++) - gSprites[sFactorySwapScreen->unk8[j][i]].pos1.x += r4; + for (j = 0; j < ARRAY_COUNT(sFactorySwapScreen->pkmnForSwapButtonSpriteIds); j++) + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[j][i]].x += deltaX; } } else { - for (j = 0; j < 2; j++) + // Set final position + for (j = 0; j < ARRAY_COUNT(sFactorySwapScreen->pkmnForSwapButtonSpriteIds); j++) { - gSprites[sFactorySwapScreen->unk8[j][0]].pos1.x = posX; - gSprites[sFactorySwapScreen->unk8[j][1]].pos1.x = posX + 16; - gSprites[sFactorySwapScreen->unk8[j][2]].pos1.x = posX + 48; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[j][0]].x = posX; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[j][1]].x = posX + 16; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[j][2]].x = posX + 48; } - taskId2 = gTasks[taskId].data[1]; - gTasks[taskId2].data[3] = 1; + prevTaskId = gTasks[taskId].tTaskId; + gTasks[prevTaskId].tSlideFinishedPkmn = TRUE; DestroyTask(taskId); } break; - case 1: - currPosX = gSprites[sFactorySwapScreen->unkE[0][0]].pos1.x; - if (!gTasks[taskId].data[2]) + case SLIDE_BUTTON_CANCEL: + currPosX = gSprites[sFactorySwapScreen->cancelButtonSpriteIds[0][0]].x; + if (!gTasks[taskId].tSlidingOn) { - if (currPosX + r4 < 240) + // Sliding "Cancel" offscreen + if (currPosX + deltaX < DISPLAY_WIDTH) { - r1 = TRUE; + sliding = TRUE; } else { - r1 = FALSE; - posX = 240; + sliding = FALSE; + posX = DISPLAY_WIDTH; } } else { - if (currPosX + r4 > 192) + // Sliding "Cancel" onscreen + if (currPosX + deltaX > 192) { - r1 = TRUE; + sliding = TRUE; } else { - r1 = FALSE; + sliding = FALSE; posX = 192; } } - if (r1 == TRUE) + if (sliding == TRUE) { - for (i = 0; i < 2; i++) + // Do movement + for (i = 0; i < ARRAY_COUNT(sFactorySwapScreen->cancelButtonSpriteIds); i++) { - for (j = 0; j < 2; j++) - gSprites[sFactorySwapScreen->unkE[j][i]].pos1.x += r4; + for (j = 0; j < ARRAY_COUNT(sFactorySwapScreen->cancelButtonSpriteIds[0]); j++) + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[j][i]].x += deltaX; } } else { - for (j = 0; j < 2; j++) + // Set final position + for (j = 0; j < ARRAY_COUNT(sFactorySwapScreen->cancelButtonSpriteIds); j++) { - gSprites[sFactorySwapScreen->unkE[j][0]].pos1.x = posX; - gSprites[sFactorySwapScreen->unkE[j][1]].pos1.x = posX + 16; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[j][0]].x = posX; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[j][1]].x = posX + 16; } - taskId2 = gTasks[taskId].data[1]; - gTasks[taskId2].data[4] = 1; + prevTaskId = gTasks[taskId].tTaskId; + gTasks[prevTaskId].tSlideFinishedCancel = TRUE; DestroyTask(taskId); } break; } } -static void sub_819D588(u8 taskId) +// Slide action buttons offscreen +static void Swap_Task_ScreenInfoTransitionOut(u8 taskId) { - u8 anotherTaskId; - u16 loPtr, hiPtr; + u8 slideTaskId; + u16 hiPtr, loPtr; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: - LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); + LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal)); Swap_PrintActionStrings(); - PutWindowTilemap(5); - gTasks[taskId].data[0]++; + PutWindowTilemap(SWAP_WIN_ACTION_FADE); + gTasks[taskId].tState++; break; case 1: - sub_819EA64(3); - gTasks[taskId].data[0]++; + Swap_ErasePopupMenu(SWAP_WIN_OPTIONS); + gTasks[taskId].tState++; break; case 2: - BeginNormalPaletteFade(0x4000, 0, 0, 0x10, gUnknown_0860F13C[37]); - gTasks[taskId].data[0]++; + BeginNormalPaletteFade(0x4000, 0, 0, 16, sPokeballGray_Pal[37]); + gTasks[taskId].tState++; break; case 3: if (!gPaletteFade.active) { - FillWindowPixelBuffer(5, PIXEL_FILL(0)); - CopyWindowToVram(5, 2); + FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0)); + CopyWindowToVram(SWAP_WIN_ACTION_FADE, 2); if (sFactorySwapScreen->inEnemyScreen == TRUE) { - anotherTaskId = CreateTask(sub_819D324, 0); - gTasks[taskId].data[3] = 0; - gTasks[anotherTaskId].data[1] = taskId; - gTasks[anotherTaskId].data[0] = 0; - gTasks[anotherTaskId].data[2] = 0; - gTasks[anotherTaskId].data[3] = 6; - gTasks[taskId].data[2] = 5; - gTasks[taskId].data[0]++; + // Start "Pkmn for Swap" button slide offscreen + slideTaskId = CreateTask(Swap_Task_SlideButtonOnOffScreen, 0); + gTasks[taskId].tSlideFinishedPkmn = FALSE; + gTasks[slideTaskId].tTaskId = taskId; + gTasks[slideTaskId].tState = SLIDE_BUTTON_PKMN; + gTasks[slideTaskId].tSlidingOn = FALSE; + gTasks[slideTaskId].tXIncrement = 6; + gTasks[taskId].tSecondSlideDelay = 5; + gTasks[taskId].tState++; } else { - anotherTaskId = CreateTask(sub_819D324, 0); - gTasks[taskId].data[3] = 1; - gTasks[taskId].data[4] = 0; - gTasks[anotherTaskId].data[1] = taskId; - gTasks[anotherTaskId].data[0] = 1; - gTasks[anotherTaskId].data[2] = 0; - gTasks[anotherTaskId].data[3] = 6; - gTasks[taskId].data[0] += 2; + // Start "Cancel" button slide offscreen + slideTaskId = CreateTask(Swap_Task_SlideButtonOnOffScreen, 0); + gTasks[taskId].tSlideFinishedPkmn = TRUE; + gTasks[taskId].tSlideFinishedCancel = FALSE; + gTasks[slideTaskId].tTaskId = taskId; + gTasks[slideTaskId].tState = SLIDE_BUTTON_CANCEL; + gTasks[slideTaskId].tSlidingOn = FALSE; + gTasks[slideTaskId].tXIncrement = 6; + gTasks[taskId].tState += 2; } } break; case 4: - if (gTasks[taskId].data[2] == 0) + // Start "Cancel" button slide offscreen for screens with both buttons + if (gTasks[taskId].tSecondSlideDelay == 0) { - anotherTaskId = CreateTask(sub_819D324, 0); - gTasks[taskId].data[4] = 0; - gTasks[anotherTaskId].data[1] = taskId; - gTasks[anotherTaskId].data[0] = 1; - gTasks[anotherTaskId].data[2] = 0; - gTasks[anotherTaskId].data[3] = 6; - gTasks[taskId].data[0]++; + slideTaskId = CreateTask(Swap_Task_SlideButtonOnOffScreen, 0); + gTasks[taskId].tSlideFinishedCancel = FALSE; + gTasks[slideTaskId].tTaskId = taskId; + gTasks[slideTaskId].tState = SLIDE_BUTTON_CANCEL; + gTasks[slideTaskId].tSlidingOn = FALSE; + gTasks[slideTaskId].tXIncrement = 6; + gTasks[taskId].tState++; } else { - gTasks[taskId].data[2]--; + gTasks[taskId].tSecondSlideDelay--; } break; case 5: - if (gTasks[taskId].data[3] == 1 && gTasks[taskId].data[4] == 1) + if (gTasks[taskId].tSlideFinishedPkmn == TRUE + && gTasks[taskId].tSlideFinishedCancel == TRUE) { - gTasks[taskId].data[0] = gTasks[taskId].data[5]; - loPtr = gTasks[taskId].data[6]; - hiPtr = gTasks[taskId].data[7]; - gTasks[taskId].func = (void *)((loPtr << 0x10) | (hiPtr)); + gTasks[taskId].tState = gTasks[taskId].tFollowUpTaskState; + hiPtr = gTasks[taskId].tFollowUpTaskPtrHi; + loPtr = gTasks[taskId].tFollowUpTaskPtrLo; + gTasks[taskId].func = (void *)((hiPtr << 16) | (loPtr)); } break; } } -static void sub_819D770(u8 taskId) +// Slide action buttons onscreen, reprint swap dialogue and mon info +static void Swap_Task_ScreenInfoTransitionIn(u8 taskId) { - u8 anotherTaskId; - u16 loPtr, hiPtr; - if (sFactorySwapScreen->unk30 == TRUE) + u8 slideTaskId; + u16 hiPtr, loPtr; + if (sFactorySwapScreen->monPicAnimating == TRUE) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (sFactorySwapScreen->inEnemyScreen == TRUE) { - anotherTaskId = CreateTask(sub_819D324, 0); - gTasks[taskId].data[3] = 0; - gTasks[anotherTaskId].data[1] = taskId; - gTasks[anotherTaskId].data[0] = 0; - gTasks[anotherTaskId].data[2] = 1; - gTasks[anotherTaskId].data[3] = 6; - gTasks[taskId].data[2] = 10; - gTasks[taskId].data[0]++; + // Start "Pkmn for Swap" button slide onscreen + slideTaskId = CreateTask(Swap_Task_SlideButtonOnOffScreen, 0); + gTasks[taskId].tSlideFinishedPkmn = FALSE; + gTasks[slideTaskId].tTaskId = taskId; + gTasks[slideTaskId].tState = SLIDE_BUTTON_PKMN; + gTasks[slideTaskId].tSlidingOn = TRUE; + gTasks[slideTaskId].tXIncrement = 6; + gTasks[taskId].tSecondSlideDelay = 10; + gTasks[taskId].tState++; } else { - anotherTaskId = CreateTask(sub_819D324, 0); - gTasks[taskId].data[3] = 1; - gTasks[taskId].data[4] = 0; - gTasks[anotherTaskId].data[1] = taskId; - gTasks[anotherTaskId].data[0] = 1; - gTasks[anotherTaskId].data[2] = 1; - gTasks[anotherTaskId].data[3] = 6; - gTasks[taskId].data[0] += 2; + // Start "Cancel" button slide onscreen + slideTaskId = CreateTask(Swap_Task_SlideButtonOnOffScreen, 0); + gTasks[taskId].tSlideFinishedPkmn = TRUE; + gTasks[taskId].tSlideFinishedCancel = FALSE; + gTasks[slideTaskId].tTaskId = taskId; + gTasks[slideTaskId].tState = SLIDE_BUTTON_CANCEL; + gTasks[slideTaskId].tSlidingOn = TRUE; + gTasks[slideTaskId].tXIncrement = 6; + gTasks[taskId].tState += 2; } break; case 1: - if (gTasks[taskId].data[2] == 0) + // Start "Cancel" button slide onscreen for screens with both buttons + if (gTasks[taskId].tSecondSlideDelay == 0) { - anotherTaskId = CreateTask(sub_819D324, 0); - gTasks[taskId].data[4] = 0; - gTasks[anotherTaskId].data[1] = taskId; - gTasks[anotherTaskId].data[0] = 1; - gTasks[anotherTaskId].data[2] = 1; - gTasks[anotherTaskId].data[3] = 6; - gTasks[taskId].data[0]++; + slideTaskId = CreateTask(Swap_Task_SlideButtonOnOffScreen, 0); + gTasks[taskId].tSlideFinishedCancel = FALSE; + gTasks[slideTaskId].tTaskId = taskId; + gTasks[slideTaskId].tState = SLIDE_BUTTON_CANCEL; + gTasks[slideTaskId].tSlidingOn = TRUE; + gTasks[slideTaskId].tXIncrement = 6; + gTasks[taskId].tState++; } else { - gTasks[taskId].data[2]--; + gTasks[taskId].tSecondSlideDelay--; } break; case 2: - if (gTasks[taskId].data[3] == 1 && gTasks[taskId].data[4] == 1) + if (gTasks[taskId].tSlideFinishedPkmn == TRUE + && gTasks[taskId].tSlideFinishedCancel == TRUE) { - gPlttBufferFaded[226] = gUnknown_0860F13C[37]; + gPlttBufferFaded[226] = sPokeballGray_Pal[37]; Swap_PrintActionStrings(); - PutWindowTilemap(5); - gTasks[taskId].data[0]++; + PutWindowTilemap(SWAP_WIN_ACTION_FADE); + gTasks[taskId].tState++; } break; case 3: - BeginNormalPaletteFade(0x4000, 0, 0x10, 0, gUnknown_0860F13C[37]); - gTasks[taskId].data[0]++; + BeginNormalPaletteFade(0x4000, 0, 16, 0, sPokeballGray_Pal[37]); + gTasks[taskId].tState++; break; case 4: if (!gPaletteFade.active) { Swap_PrintOneActionString(0); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 5: Swap_PrintOneActionString(1); - PutWindowTilemap(3); - gTasks[taskId].data[0]++; + PutWindowTilemap(SWAP_WIN_OPTIONS); + gTasks[taskId].tState++; break; case 6: - FillWindowPixelBuffer(5, PIXEL_FILL(0)); - CopyWindowToVram(5, 2); - gTasks[taskId].data[0]++; + FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0)); + CopyWindowToVram(SWAP_WIN_ACTION_FADE, 2); + gTasks[taskId].tState++; break; case 7: if (!sFactorySwapScreen->inEnemyScreen) Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); else Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); - if (sFactorySwapScreen->cursorPos < 3) + if (sFactorySwapScreen->cursorPos < FRONTIER_PARTY_SIZE) gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE; Swap_PrintMonCategory(); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 8: - Swap_PrintMonSpecies3(); - sub_819EADC(); - sFactorySwapScreen->unk22 = TRUE; - gTasks[taskId].data[0] = gTasks[taskId].data[5]; - loPtr = gTasks[taskId].data[6]; - hiPtr = gTasks[taskId].data[7]; - gTasks[taskId].func = (void *)((loPtr << 0x10) | (hiPtr)); + Swap_PrintMonSpeciesForTransition(); + Swap_EraseSpeciesAtFadeWindow(); + sFactorySwapScreen->fadeSpeciesNameActive = TRUE; + gTasks[taskId].tState = gTasks[taskId].tFollowUpTaskState; + hiPtr = gTasks[taskId].tFollowUpTaskPtrHi; + loPtr = gTasks[taskId].tFollowUpTaskPtrLo; + gTasks[taskId].func = (void *)((hiPtr << 16) | (loPtr)); break; } } -static void sub_819D9EC(u8 taskId) +#undef tTaskId +#undef tSlidingOn +#undef tXIncrement +#undef tSlideFinishedPkmn +#undef tSlideFinishedCancel + +// For switching between the swap screens with the player's / enemy's parties +static void Swap_Task_SwitchPartyScreen(u8 taskId) { u8 i; - if (sFactorySwapScreen->unk30 == TRUE) + if (sFactorySwapScreen->monPicAnimating == TRUE) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: - Swap_PrintMonSpecies3(); - gTasks[taskId].data[0]++; + Swap_PrintMonSpeciesForTransition(); + gTasks[taskId].tState++; break; case 1: - sub_819EADC(); + Swap_EraseSpeciesAtFadeWindow(); gSprites[sFactorySwapScreen->cursorSpriteId].invisible = TRUE; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 2: - CreateTask(sub_819D12C, 0); - gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName2; - gTasks[taskId].data[0]++; + CreateTask(Swap_Task_SlideCycleBalls, 0); + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Swap_Task_FadeOutSpeciesName; + gTasks[taskId].tState++; break; case 3: - if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[4] == 1) + if (!FuncIsActiveTask(Swap_Task_SlideCycleBalls) + && gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].tFadeOutFinished == TRUE) { - sub_819EAC0(); + Swap_EraseSpeciesWindow(); if (!sFactorySwapScreen->inEnemyScreen) { - Swap_InitActions(ACTIONS_ENEMY_SCREEN); + Swap_InitActions(SWAP_ENEMY_SCREEN); } else { - Swap_InitActions(ACTIONS_PLAYER_SCREEN); - for (i = 0; i < 3; i++) - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; + Swap_InitActions(SWAP_PLAYER_SCREEN); + + // Hide "Pkmn for Swap" button + for (i = 0; i < ARRAY_COUNT(sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0]); i++) + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[1][i]].invisible = TRUE; } - gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x; - gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName; - sFactorySwapScreen->unk27 = 0; - sFactorySwapScreen->unk28 = 6; - sFactorySwapScreen->unk26 = FALSE; - gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1; - gTasks[taskId].data[0]++; + gSprites[sFactorySwapScreen->cursorSpriteId].x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].x; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Swap_Task_FadeSpeciesName; + sFactorySwapScreen->fadeSpeciesNameCoeffDelay = 0; + sFactorySwapScreen->fadeSpeciesNameCoeff = 6; + sFactorySwapScreen->fadeSpeciesNameFadeOut = FALSE; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].tState = FADESTATE_RUN; + gTasks[taskId].tState++; } break; case 4: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 0x10; - gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); - gTasks[taskId].data[5] = 1; - gTasks[taskId].func = sub_819D770; + gTasks[taskId].tState = 0; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_Task_HandleChooseMons) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_Task_HandleChooseMons); + gTasks[taskId].tFollowUpTaskState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionIn; break; } } +#undef tFadeOutFinished + static void Swap_InitStruct(void) { if (sFactorySwapScreen == NULL) { sFactorySwapScreen = AllocZeroed(sizeof(*sFactorySwapScreen)); sFactorySwapScreen->cursorPos = 0; - sFactorySwapScreen->unk30 = FALSE; + sFactorySwapScreen->monPicAnimating = FALSE; sFactorySwapScreen->fromSummaryScreen = FALSE; } } @@ -3129,9 +3277,9 @@ static void CB2_InitSwapScreen(void) break; case 1: sSwapMenuTilesetBuffer = Alloc(0x440); - sSwapMonCardBgTilesetBuffer = AllocZeroed(0x440); - sSwapMenuTilemapBuffer = Alloc(0x800); - sSwapMonCardBgTilemapBuffer = AllocZeroed(0x800); + sSwapMonPicBgTilesetBuffer = AllocZeroed(0x440); + sSwapMenuTilemapBuffer = Alloc(BG_SCREEN_SIZE); + sSwapMonPicBgTilemapBuffer = AllocZeroed(BG_SCREEN_SIZE); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -3157,36 +3305,36 @@ static void CB2_InitSwapScreen(void) FreeAllSpritePalettes(); ResetAllPicSprites(); CpuCopy16(gFrontierFactorySelectMenu_Gfx, sSwapMenuTilesetBuffer, 0x440); - CpuCopy16(gUnknown_0861033C, sSwapMonCardBgTilesetBuffer, 0x60); + CpuCopy16(sMonPicBg_Gfx, sSwapMonPicBgTilesetBuffer, 0x60); LoadBgTiles(1, sSwapMenuTilesetBuffer, 0x440, 0); - LoadBgTiles(3, sSwapMonCardBgTilesetBuffer, 0x60, 0); - CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, 0x800); - LoadBgTilemap(1, sSwapMenuTilemapBuffer, 0x800, 0); + LoadBgTiles(3, sSwapMonPicBgTilesetBuffer, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, BG_SCREEN_SIZE); + LoadBgTilemap(1, sSwapMenuTilemapBuffer, BG_SCREEN_SIZE, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); - LoadPalette(gUnknown_08610918, 0xF0, sizeof(gUnknown_08610918)); - LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); - LoadPalette(gUnknown_0861039C, 0x20, 4); + LoadPalette(sSwapText_Pal, 0xF0, sizeof(sSwapText_Pal)); + LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal)); + LoadPalette(sMonPicBg_Pal, 0x20, 4); gMain.state++; break; case 3: - SetBgTilemapBuffer(3, sSwapMonCardBgTilemapBuffer); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); + SetBgTilemapBuffer(3, sSwapMonPicBgTilemapBuffer); + CopyToBgTilemapBufferRect(3, sMonPicBg_Tilemap, 11, 4, 8, 8); CopyBgTilemapBufferToVram(3); gMain.state++; break; case 4: - LoadSpritePalettes(gUnknown_086106B0); - LoadSpriteSheets(gUnknown_08610650); - LoadCompressedSpriteSheet(gUnknown_086106A0); + LoadSpritePalettes(sSwap_SpritePalettes); + LoadSpriteSheets(sSwap_SpriteSheets); + LoadCompressedSpriteSheet(sSwap_BallGfx); SetVBlankCallback(Swap_VblankCb); gMain.state++; break; case 5: - #if MODERN +#ifdef UBFIX if (sFactorySwapScreen && sFactorySwapScreen->fromSummaryScreen) - #else +#else if (sFactorySwapScreen->fromSummaryScreen == TRUE) - #endif +#endif sFactorySwapScreen->cursorPos = gLastViewedMonIndex; gMain.state++; break; @@ -3195,28 +3343,28 @@ static void CB2_InitSwapScreen(void) Swap_InitAllSprites(); if (sFactorySwapScreen->fromSummaryScreen == TRUE) Swap_ShowSummaryMonSprite(); - Swap_InitActions(ACTIONS_PLAYER_SCREEN); + Swap_InitActions(SWAP_PLAYER_SCREEN); gMain.state++; break; case 7: Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); - PutWindowTilemap(2); + PutWindowTilemap(SWAP_WIN_INFO); gMain.state++; break; case 8: Swap_PrintMonCategory(); - PutWindowTilemap(8); + PutWindowTilemap(SWAP_WIN_MON_CATEGORY); gMain.state++; break; case 9: if (!sFactorySwapScreen->fromSummaryScreen) Swap_PrintMonSpecies(); - PutWindowTilemap(1); + PutWindowTilemap(SWAP_WIN_SPECIES); gMain.state++; break; case 10: Swap_PrintPkmnSwap(); - PutWindowTilemap(0); + PutWindowTilemap(SWAP_WIN_TITLE); gMain.state++; break; case 11: @@ -3224,16 +3372,16 @@ static void CB2_InitSwapScreen(void) break; case 12: if (sFactorySwapScreen->fromSummaryScreen) - Swap_PrintMonSpecies2(); + Swap_PrintMonSpeciesAtFade(); gMain.state++; break; case 13: Swap_PrintActionStrings2(); - PutWindowTilemap(3); + PutWindowTilemap(SWAP_WIN_OPTIONS); gMain.state++; break; case 14: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); ShowBg(1); @@ -3251,20 +3399,20 @@ static void CB2_InitSwapScreen(void) gMain.state++; break; case 15: - sFactorySwapScreen->fadeSpeciesNameTaskId = CreateTask(Task_SwapFadeSpeciesName, 0); + sFactorySwapScreen->fadeSpeciesNameTaskId = CreateTask(Swap_Task_FadeSpeciesName, 0); if (!sFactorySwapScreen->fromSummaryScreen) { - gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 0; - taskId = CreateTask(Task_HandleSwapScreenChooseMons, 0); - gTasks[taskId].data[0] = 0; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].tState = FADESTATE_INIT; + taskId = CreateTask(Swap_Task_HandleChooseMons, 0); + gTasks[taskId].tState = STATE_CHOOSE_MONS_INIT; } else { - sub_819EAF8(); - gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1; - sFactorySwapScreen->unk22 = FALSE; - taskId = CreateTask(Task_HandleSwapScreenMenu, 0); - gTasks[taskId].data[0] = 2; + Swap_EraseActionFadeWindow(); + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].tState = FADESTATE_RUN; + sFactorySwapScreen->fadeSpeciesNameActive = FALSE; + taskId = CreateTask(Swap_Task_HandleMenu, 0); + gTasks[taskId].tState = STATE_MENU_INIT; } SetMainCallback2(Swap_CB2); break; @@ -3277,17 +3425,17 @@ static void Swap_InitAllSprites(void) u8 x; struct SpriteTemplate spriteTemplate; - spriteTemplate = gUnknown_08610834; - spriteTemplate.paletteTag = TAG_PAL_BALL_SELECTED; + spriteTemplate = sSpriteTemplate_Swap_Pokeball; + spriteTemplate.paletteTag = PALTAG_BALL_SELECTED; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { sFactorySwapScreen->ballSpriteIds[i] = CreateSprite(&spriteTemplate, (48 * i) + 72, 64, 1); gSprites[sFactorySwapScreen->ballSpriteIds[i]].data[0] = 0; } - sFactorySwapScreen->cursorSpriteId = CreateSprite(&gUnknown_0861084C, gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x, 88, 0); - sFactorySwapScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610864, 176, 112, 0); - sFactorySwapScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_0861087C, 176, 144, 0); + sFactorySwapScreen->cursorSpriteId = CreateSprite(&sSpriteTemplate_Swap_Arrow, gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].x, 88, 0); + sFactorySwapScreen->menuCursor1SpriteId = CreateSprite(&sSpriteTemplate_Swap_MenuHighlightLeft, 176, 112, 0); + sFactorySwapScreen->menuCursor2SpriteId = CreateSprite(&sSpriteTemplate_Swap_MenuHighlightRight, 176, 144, 0); gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecX = 0; @@ -3296,105 +3444,110 @@ static void Swap_InitAllSprites(void) gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecY = 0; if (sFactorySwapScreen->fromSummaryScreen == TRUE) - x = 240; + x = DISPLAY_WIDTH; else - x = 192; + x = DISPLAY_WIDTH - 48; - spriteTemplate = gUnknown_0861084C; - spriteTemplate.tileTag = TAG_TILE_68; - sFactorySwapScreen->unk8[0][0] = CreateSprite(&spriteTemplate, 240, 120, 10); + // Unusual way to create sprites + // The sprite template for the selector arrow is re-used + // with the tiles swapped out + spriteTemplate = sSpriteTemplate_Swap_Arrow; + spriteTemplate.tileTag = GFXTAG_ACTION_BOX_LEFT; + sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0][0] = CreateSprite(&spriteTemplate, DISPLAY_WIDTH, 120, 10); - spriteTemplate = gUnknown_08610864; - spriteTemplate.tileTag = TAG_TILE_69; - sFactorySwapScreen->unk8[0][1] = CreateSprite(&spriteTemplate, 256, 120, 10); - sFactorySwapScreen->unk8[0][2] = CreateSprite(&spriteTemplate, 288, 120, 10); + spriteTemplate = sSpriteTemplate_Swap_MenuHighlightLeft; + spriteTemplate.tileTag = GFXTAG_ACTION_BOX_RIGHT; + sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0][1] = CreateSprite(&spriteTemplate, DISPLAY_WIDTH + 16, 120, 10); + sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0][2] = CreateSprite(&spriteTemplate, DISPLAY_WIDTH + 48, 120, 10); - spriteTemplate = gUnknown_0861084C; - spriteTemplate.tileTag = TAG_TILE_6A; - sFactorySwapScreen->unk8[1][0] = CreateSprite(&spriteTemplate, 240, 120, 1); + spriteTemplate = sSpriteTemplate_Swap_Arrow; + spriteTemplate.tileTag = GFXTAG_ACTION_HIGHLIGHT_LEFT; + sFactorySwapScreen->pkmnForSwapButtonSpriteIds[1][0] = CreateSprite(&spriteTemplate, DISPLAY_WIDTH, 120, 1); - spriteTemplate = gUnknown_08610864; - spriteTemplate.tileTag = TAG_TILE_6B; - sFactorySwapScreen->unk8[1][1] = CreateSprite(&spriteTemplate, 256, 120, 1); - spriteTemplate.tileTag = TAG_TILE_6C; - sFactorySwapScreen->unk8[1][2] = CreateSprite(&spriteTemplate, 288, 120, 1); + spriteTemplate = sSpriteTemplate_Swap_MenuHighlightLeft; + spriteTemplate.tileTag = GFXTAG_ACTION_HIGHLIGHT_MIDDLE; + sFactorySwapScreen->pkmnForSwapButtonSpriteIds[1][1] = CreateSprite(&spriteTemplate, DISPLAY_WIDTH + 16, 120, 1); + spriteTemplate.tileTag = GFXTAG_ACTION_HIGHLIGHT_RIGHT; + sFactorySwapScreen->pkmnForSwapButtonSpriteIds[1][2] = CreateSprite(&spriteTemplate, DISPLAY_WIDTH + 48, 120, 1); - spriteTemplate = gUnknown_0861084C; - spriteTemplate.tileTag = TAG_TILE_68; - sFactorySwapScreen->unkE[0][0] = CreateSprite(&spriteTemplate, x, 144, 10); + spriteTemplate = sSpriteTemplate_Swap_Arrow; + spriteTemplate.tileTag = GFXTAG_ACTION_BOX_LEFT; + sFactorySwapScreen->cancelButtonSpriteIds[0][0] = CreateSprite(&spriteTemplate, x, 144, 10); - spriteTemplate = gUnknown_08610864; - spriteTemplate.tileTag = TAG_TILE_69; - sFactorySwapScreen->unkE[0][1] = CreateSprite(&spriteTemplate, x + 16, 144, 10); + spriteTemplate = sSpriteTemplate_Swap_MenuHighlightLeft; + spriteTemplate.tileTag = GFXTAG_ACTION_BOX_RIGHT; + sFactorySwapScreen->cancelButtonSpriteIds[0][1] = CreateSprite(&spriteTemplate, x + 16, 144, 10); - spriteTemplate = gUnknown_0861084C; - spriteTemplate.tileTag = TAG_TILE_6A; - sFactorySwapScreen->unkE[1][0] = CreateSprite(&spriteTemplate, x, 144, 1); + spriteTemplate = sSpriteTemplate_Swap_Arrow; + spriteTemplate.tileTag = GFXTAG_ACTION_HIGHLIGHT_LEFT; + sFactorySwapScreen->cancelButtonSpriteIds[1][0] = CreateSprite(&spriteTemplate, x, 144, 1); - spriteTemplate = gUnknown_08610864; - spriteTemplate.tileTag = TAG_TILE_6C; - sFactorySwapScreen->unkE[1][1] = CreateSprite(&spriteTemplate, x + 16, 144, 1); + spriteTemplate = sSpriteTemplate_Swap_MenuHighlightLeft; + spriteTemplate.tileTag = GFXTAG_ACTION_HIGHLIGHT_RIGHT; + sFactorySwapScreen->cancelButtonSpriteIds[1][1] = CreateSprite(&spriteTemplate, x + 16, 144, 1); for (i = 0; i < 2; i++) { - gSprites[sFactorySwapScreen->unk8[i][0]].centerToCornerVecX = 0; - gSprites[sFactorySwapScreen->unk8[i][0]].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unk8[i][1]].centerToCornerVecX = 0; - gSprites[sFactorySwapScreen->unk8[i][1]].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unk8[i][2]].centerToCornerVecX = 0; - gSprites[sFactorySwapScreen->unk8[i][2]].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unkE[i][0]].centerToCornerVecX = 0; - gSprites[sFactorySwapScreen->unkE[i][0]].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecX = 0; - gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][0]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][0]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][1]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][1]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][2]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][2]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[i][0]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[i][0]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[i][1]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[i][1]].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unk8[i][0]].invisible = TRUE; - gSprites[sFactorySwapScreen->unk8[i][1]].invisible = TRUE; - gSprites[sFactorySwapScreen->unk8[i][2]].invisible = TRUE; - gSprites[sFactorySwapScreen->unkE[i][0]].invisible = TRUE; - gSprites[sFactorySwapScreen->unkE[i][1]].invisible = TRUE; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][0]].invisible = TRUE; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][1]].invisible = TRUE; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][2]].invisible = TRUE; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[i][0]].invisible = TRUE; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[i][1]].invisible = TRUE; } - gSprites[sFactorySwapScreen->unkE[0][0]].invisible = FALSE; - gSprites[sFactorySwapScreen->unkE[0][1]].invisible = FALSE; - gSprites[sFactorySwapScreen->unk8[0][0]].invisible = FALSE; - gSprites[sFactorySwapScreen->unk8[0][1]].invisible = FALSE; - gSprites[sFactorySwapScreen->unk8[0][2]].invisible = FALSE; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[0][0]].invisible = FALSE; + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[0][1]].invisible = FALSE; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0][0]].invisible = FALSE; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0][1]].invisible = FALSE; + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0][2]].invisible = FALSE; } static void Swap_DestroyAllSprites(void) { u8 i, j; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) DestroySprite(&gSprites[sFactorySwapScreen->ballSpriteIds[i]]); DestroySprite(&gSprites[sFactorySwapScreen->cursorSpriteId]); DestroySprite(&gSprites[sFactorySwapScreen->menuCursor1SpriteId]); DestroySprite(&gSprites[sFactorySwapScreen->menuCursor2SpriteId]); - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sFactorySwapScreen->pkmnForSwapButtonSpriteIds); i++) { - for (j = 0; j < 3; j++) - DestroySprite(&gSprites[sFactorySwapScreen->unk8[i][j]]); + for (j = 0; j < ARRAY_COUNT(sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0]); j++) + DestroySprite(&gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[i][j]]); } - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sFactorySwapScreen->cancelButtonSpriteIds); i++) { - for (j = 0; j < 2; j++) - DestroySprite(&gSprites[sFactorySwapScreen->unkE[i][j]]); + for (j = 0; j < ARRAY_COUNT(sFactorySwapScreen->cancelButtonSpriteIds[0]); j++) + DestroySprite(&gSprites[sFactorySwapScreen->cancelButtonSpriteIds[i][j]]); } } static void Swap_HandleActionCursorChange(u8 cursorId) { - if (cursorId < 3) + if (cursorId < FRONTIER_PARTY_SIZE) { + // Cursor is on one of the pokemon gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE; - sub_819E8EC(); - gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].pos1.x; + Swap_HideActionButtonHighlights(); + gSprites[sFactorySwapScreen->cursorSpriteId].x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].x; } else { + // Cursor is on an action button gSprites[sFactorySwapScreen->cursorSpriteId].invisible = TRUE; - sub_819E838(sFactorySwapScreen->actionsData[cursorId].id); + Swap_HighlightActionButton(sFactorySwapScreen->actionsData[cursorId].id); } } @@ -3427,8 +3580,8 @@ static void Swap_UpdateActionCursorPosition(s8 direction) PlaySE(SE_SELECT); if (direction > 0) // Move cursor down. { - if (sFactorySwapScreen->cursorPos < 3) - sFactorySwapScreen->cursorPos = 3; + if (sFactorySwapScreen->cursorPos < FRONTIER_PARTY_SIZE) + sFactorySwapScreen->cursorPos = FRONTIER_PARTY_SIZE; else if (sFactorySwapScreen->cursorPos + 1 != sFactorySwapScreen->actionsCount) sFactorySwapScreen->cursorPos++; else @@ -3436,7 +3589,7 @@ static void Swap_UpdateActionCursorPosition(s8 direction) } else // Move cursor up. { - if (sFactorySwapScreen->cursorPos < 3) + if (sFactorySwapScreen->cursorPos < FRONTIER_PARTY_SIZE) sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1; else if (sFactorySwapScreen->cursorPos != 0) sFactorySwapScreen->cursorPos--; @@ -3465,8 +3618,8 @@ static void Swap_UpdateYesNoCursorPosition(s8 direction) sFactorySwapScreen->yesNoCursorPos = 1; } - gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; } static void Swap_UpdateMenuCursorPosition(s8 direction) @@ -3474,7 +3627,7 @@ static void Swap_UpdateMenuCursorPosition(s8 direction) PlaySE(SE_SELECT); if (direction > 0) // Move cursor down. { - if (sFactorySwapScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1) + if (sFactorySwapScreen->menuCursorPos != ARRAY_COUNT(sSwap_MenuOptionFuncs) - 1) sFactorySwapScreen->menuCursorPos++; else sFactorySwapScreen->menuCursorPos = 0; @@ -3484,43 +3637,52 @@ static void Swap_UpdateMenuCursorPosition(s8 direction) if (sFactorySwapScreen->menuCursorPos != 0) sFactorySwapScreen->menuCursorPos--; else - sFactorySwapScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1; + sFactorySwapScreen->menuCursorPos = ARRAY_COUNT(sSwap_MenuOptionFuncs) - 1; } - gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].y = (sFactorySwapScreen->menuCursorPos * 16) + 112; } -static void sub_819E838(u8 arg0) +static void Swap_HighlightActionButton(u8 actionId) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < ARRAY_COUNT(sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0]); i++) { - if (arg0 == 2) + if (actionId == SWAPACTION_PKMN_FOR_SWAP) { - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = FALSE; - if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = TRUE; + // Show button highlight on "Pkmn for Swap" + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[1][i]].invisible = FALSE; + + // Hide button highlight on Cancel + if (i < ARRAY_COUNT(sFactorySwapScreen->cancelButtonSpriteIds[0])) + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[1][i]].invisible = TRUE; } - else if (arg0 == 3) + else if (actionId == SWAPACTION_CANCEL) { - if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = FALSE; - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; + // Show button highlight on Cancel + if (i < ARRAY_COUNT(sFactorySwapScreen->cancelButtonSpriteIds[0])) + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[1][i]].invisible = FALSE; + + // Hide button highlight on "Pkmn for Swap" + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[1][i]].invisible = TRUE; } } } -static void sub_819E8EC(void) +static void Swap_HideActionButtonHighlights(void) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < ARRAY_COUNT(sFactorySwapScreen->pkmnForSwapButtonSpriteIds[0]); i++) { - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; - if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = TRUE; + // Hide button highlight on "Pkmn for Swap" + gSprites[sFactorySwapScreen->pkmnForSwapButtonSpriteIds[1][i]].invisible = TRUE; + + // Hide button highlight on Cancel + if (i < ARRAY_COUNT(sFactorySwapScreen->cancelButtonSpriteIds[0])) + gSprites[sFactorySwapScreen->cancelButtonSpriteIds[1][i]].invisible = TRUE; } } @@ -3531,10 +3693,10 @@ static void Swap_ShowMenuOptions(void) else sFactorySwapScreen->menuCursorPos = 0; - gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.x = 176; - gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].x = 176; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].x = 208; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].y = (sFactorySwapScreen->menuCursorPos * 16) + 112; gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = FALSE; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = FALSE; @@ -3546,10 +3708,10 @@ static void Swap_ShowYesNoOptions(void) { sFactorySwapScreen->yesNoCursorPos = 0; - gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.x = 176; - gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = 112; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = 112; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].x = 176; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].y = 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].x = 208; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].y = 112; gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = FALSE; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = FALSE; @@ -3557,7 +3719,7 @@ static void Swap_ShowYesNoOptions(void) Swap_PrintYesNoOptions(); } -static void sub_819EA64(u8 windowId) +static void Swap_ErasePopupMenu(u8 windowId) { gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; @@ -3566,33 +3728,33 @@ static void sub_819EA64(u8 windowId) ClearWindowTilemap(windowId); } -static void sub_819EAC0(void) +static void Swap_EraseSpeciesWindow(void) { - PutWindowTilemap(1); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - CopyWindowToVram(1, 2); + PutWindowTilemap(SWAP_WIN_SPECIES); + FillWindowPixelBuffer(SWAP_WIN_SPECIES, PIXEL_FILL(0)); + CopyWindowToVram(SWAP_WIN_SPECIES, 2); } -static void sub_819EADC(void) +static void Swap_EraseSpeciesAtFadeWindow(void) { - PutWindowTilemap(7); - FillWindowPixelBuffer(7, PIXEL_FILL(0)); - CopyWindowToVram(7, 2); + PutWindowTilemap(SWAP_WIN_SPECIES_AT_FADE); + FillWindowPixelBuffer(SWAP_WIN_SPECIES_AT_FADE, PIXEL_FILL(0)); + CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, 2); } -static void sub_819EAF8(void) +static void Swap_EraseActionFadeWindow(void) { - sub_819EAC0(); - PutWindowTilemap(5); - FillWindowPixelBuffer(5, PIXEL_FILL(0)); - CopyWindowToVram(5, 2); + Swap_EraseSpeciesWindow(); + PutWindowTilemap(SWAP_WIN_ACTION_FADE); + FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0)); + CopyWindowToVram(SWAP_WIN_ACTION_FADE, 2); } static void Swap_PrintPkmnSwap(void) { - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); - CopyWindowToVram(0, 3); + FillWindowPixelBuffer(SWAP_WIN_TITLE, PIXEL_FILL(1)); + AddTextPrinterParameterized(SWAP_WIN_TITLE, 1, gText_PkmnSwap, 2, 1, 0, NULL); + CopyWindowToVram(SWAP_WIN_TITLE, 3); } static void Swap_PrintMonSpecies(void) @@ -3600,10 +3762,10 @@ static void Swap_PrintMonSpecies(void) u16 species; u8 x; - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - if (sFactorySwapScreen->cursorPos > 2) + FillWindowPixelBuffer(SWAP_WIN_SPECIES, PIXEL_FILL(0)); + if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE) { - CopyWindowToVram(1, 2); + CopyWindowToVram(SWAP_WIN_SPECIES, 2); } else { @@ -3614,35 +3776,35 @@ static void Swap_PrintMonSpecies(void) species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); - AddTextPrinterParameterized3(1, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4); - CopyWindowToVram(1, 3); + AddTextPrinterParameterized3(SWAP_WIN_SPECIES, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4); + CopyWindowToVram(SWAP_WIN_SPECIES, 3); } } static void Swap_PrintOnInfoWindow(const u8 *str) { - FillWindowPixelBuffer(2, PIXEL_FILL(0)); - AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); - CopyWindowToVram(2, 2); + FillWindowPixelBuffer(SWAP_WIN_INFO, PIXEL_FILL(0)); + AddTextPrinterParameterized(SWAP_WIN_INFO, 1, str, 2, 5, 0, NULL); + CopyWindowToVram(SWAP_WIN_INFO, 2); } static void Swap_PrintMenuOptions(void) { - PutWindowTilemap(3); - FillWindowPixelBuffer(3, PIXEL_FILL(0)); - AddTextPrinterParameterized3(3, 1, 15, 1, sSwapMenuOptionsTextColors, 0, gText_Summary2); - AddTextPrinterParameterized3(3, 1, 15, 17, sSwapMenuOptionsTextColors, 0, gText_Swap); - AddTextPrinterParameterized3(3, 1, 15, 33, sSwapMenuOptionsTextColors, 0, gText_Rechoose); - CopyWindowToVram(3, 3); + PutWindowTilemap(SWAP_WIN_OPTIONS); + FillWindowPixelBuffer(SWAP_WIN_OPTIONS, PIXEL_FILL(0)); + AddTextPrinterParameterized3(SWAP_WIN_OPTIONS, 1, 15, 1, sSwapMenuOptionsTextColors, 0, gText_Summary2); + AddTextPrinterParameterized3(SWAP_WIN_OPTIONS, 1, 15, 17, sSwapMenuOptionsTextColors, 0, gText_Swap); + AddTextPrinterParameterized3(SWAP_WIN_OPTIONS, 1, 15, 33, sSwapMenuOptionsTextColors, 0, gText_Rechoose); + CopyWindowToVram(SWAP_WIN_OPTIONS, 3); } static void Swap_PrintYesNoOptions(void) { - PutWindowTilemap(4); - FillWindowPixelBuffer(4, PIXEL_FILL(0)); - AddTextPrinterParameterized3(4, 1, 7, 1, sSwapMenuOptionsTextColors, 0, gText_Yes3); - AddTextPrinterParameterized3(4, 1, 7, 17, sSwapMenuOptionsTextColors, 0, gText_No3); - CopyWindowToVram(4, 3); + PutWindowTilemap(SWAP_WIN_YES_NO); + FillWindowPixelBuffer(SWAP_WIN_YES_NO, PIXEL_FILL(0)); + AddTextPrinterParameterized3(SWAP_WIN_YES_NO, 1, 7, 1, sSwapMenuOptionsTextColors, 0, gText_Yes3); + AddTextPrinterParameterized3(SWAP_WIN_YES_NO, 1, 7, 17, sSwapMenuOptionsTextColors, 0, gText_No3); + CopyWindowToVram(SWAP_WIN_YES_NO, 3); } static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) @@ -3653,30 +3815,30 @@ static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) static void Swap_PrintActionStrings(void) { - FillWindowPixelBuffer(5, PIXEL_FILL(0)); + FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0)); switch (sFactorySwapScreen->inEnemyScreen) { case TRUE: - Swap_PrintActionString(gText_PkmnForSwap, 0, 5); + Swap_PrintActionString(gText_PkmnForSwap, 0, SWAP_WIN_ACTION_FADE); case FALSE: - Swap_PrintActionString(gText_Cancel3, 24, 5); + Swap_PrintActionString(gText_Cancel3, 24, SWAP_WIN_ACTION_FADE); break; } - CopyWindowToVram(5, 3); + CopyWindowToVram(SWAP_WIN_ACTION_FADE, 3); } static void Swap_PrintActionStrings2(void) { - FillWindowPixelBuffer(3, PIXEL_FILL(0)); + FillWindowPixelBuffer(SWAP_WIN_OPTIONS, PIXEL_FILL(0)); switch (sFactorySwapScreen->inEnemyScreen) { case TRUE: - Swap_PrintActionString(gText_PkmnForSwap, 8, 3); + Swap_PrintActionString(gText_PkmnForSwap, 8, SWAP_WIN_OPTIONS); case FALSE: - Swap_PrintActionString(gText_Cancel3, 32, 3); + Swap_PrintActionString(gText_Cancel3, 32, SWAP_WIN_OPTIONS); break; } - CopyWindowToVram(3, 3); + CopyWindowToVram(SWAP_WIN_OPTIONS, 3); } static void Swap_PrintOneActionString(u8 which) @@ -3685,33 +3847,34 @@ static void Swap_PrintOneActionString(u8 which) { case 0: if (sFactorySwapScreen->inEnemyScreen == TRUE) - Swap_PrintActionString(gText_PkmnForSwap, 8, 3); + Swap_PrintActionString(gText_PkmnForSwap, 8, SWAP_WIN_OPTIONS); break; case 1: - Swap_PrintActionString(gText_Cancel3, 32, 3); + Swap_PrintActionString(gText_Cancel3, 32, SWAP_WIN_OPTIONS); break; } - CopyWindowToVram(3, 3); + CopyWindowToVram(SWAP_WIN_OPTIONS, 3); } -static void Swap_PrintMonSpecies2(void) +// For printing the species name once its selected. Keep the current fade but don't keep fading in and out +static void Swap_PrintMonSpeciesAtFade(void) { u16 species; u8 x; u16 pal[5]; - CpuCopy16(gUnknown_08610918, pal, 8); + CpuCopy16(sSwapText_Pal, pal, 8); if (!sFactorySwapScreen->fromSummaryScreen) pal[4] = gPlttBufferFaded[228]; else - pal[4] = sFactorySwapScreen->unk24; - LoadPalette(pal, 0xF0, 0xA); + pal[4] = sFactorySwapScreen->speciesNameColorBackup; + LoadPalette(pal, 0xF0, sizeof(sSwapText_Pal)); - PutWindowTilemap(7); - FillWindowPixelBuffer(7, PIXEL_FILL(0)); - if (sFactorySwapScreen->cursorPos > 2) + PutWindowTilemap(SWAP_WIN_SPECIES_AT_FADE); + FillWindowPixelBuffer(SWAP_WIN_SPECIES_AT_FADE, PIXEL_FILL(0)); + if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE) { - CopyWindowToVram(7, 3); + CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, 3); } else { @@ -3722,22 +3885,23 @@ static void Swap_PrintMonSpecies2(void) species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); - AddTextPrinterParameterized3(7, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4); - CopyWindowToVram(7, 3); + AddTextPrinterParameterized3(SWAP_WIN_SPECIES_AT_FADE, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4); + CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, 3); } } -static void Swap_PrintMonSpecies3(void) +// Reprints the species name over the faded one after a transition +static void Swap_PrintMonSpeciesForTransition(void) { u16 species; u8 x; - LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); - CpuCopy16(gPlttBufferUnfaded + 240, gPlttBufferFaded + 224, 10); + LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal)); + CpuCopy16(&gPlttBufferUnfaded[240], &gPlttBufferFaded[224], 10); - if (sFactorySwapScreen->cursorPos > 2) + if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE) { - CopyWindowToVram(1, 2); + CopyWindowToVram(SWAP_WIN_SPECIES, 2); } else { @@ -3748,8 +3912,8 @@ static void Swap_PrintMonSpecies3(void) species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); - AddTextPrinterParameterized3(1, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4); - CopyWindowToVram(1, 3); + AddTextPrinterParameterized3(SWAP_WIN_SPECIES, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4); + CopyWindowToVram(SWAP_WIN_SPECIES, 3); } } @@ -3760,22 +3924,22 @@ static void Swap_PrintMonCategory(void) u8 x; u8 monId = sFactorySwapScreen->cursorPos; - FillWindowPixelBuffer(8, PIXEL_FILL(0)); - if (monId > 2) + FillWindowPixelBuffer(SWAP_WIN_MON_CATEGORY, PIXEL_FILL(0)); + if (monId >= FRONTIER_PARTY_SIZE) { - CopyWindowToVram(8, 2); + CopyWindowToVram(SWAP_WIN_MON_CATEGORY, 2); } else { - PutWindowTilemap(8); + PutWindowTilemap(SWAP_WIN_MON_CATEGORY); if (!sFactorySwapScreen->inEnemyScreen) species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); else species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); - AddTextPrinterParameterized(8, 1, text, x, 1, 0, NULL); - CopyWindowToVram(8, 2); + AddTextPrinterParameterized(SWAP_WIN_MON_CATEGORY, 1, text, x, 1, 0, NULL); + CopyWindowToVram(SWAP_WIN_MON_CATEGORY, 2); } } @@ -3785,13 +3949,13 @@ static void Swap_InitActions(u8 id) { switch (id) { - case ACTIONS_PLAYER_SCREEN: + case SWAP_PLAYER_SCREEN: sFactorySwapScreen->inEnemyScreen = FALSE; sFactorySwapScreen->cursorPos = 0; sFactorySwapScreen->actionsCount = ARRAY_COUNT(sSwap_PlayerScreenActions); sFactorySwapScreen->actionsData = sSwap_PlayerScreenActions; break; - case ACTIONS_ENEMY_SCREEN: + case SWAP_ENEMY_SCREEN: sFactorySwapScreen->inEnemyScreen = TRUE; sFactorySwapScreen->cursorPos = 0; sFactorySwapScreen->actionsCount = ARRAY_COUNT(sSwap_EnemyScreenActions); @@ -3803,92 +3967,94 @@ static void Swap_InitActions(u8 id) static void Swap_RunMenuOptionFunc(u8 taskId) { - sSwap_CurrentTableFunc = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; - sSwap_CurrentTableFunc(taskId); + sSwap_CurrentOptionFunc = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; + sSwap_CurrentOptionFunc(taskId); } -static void sub_819F0CC(u8 taskId) +static void Swap_OptionSwap(u8 taskId) { - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); + CloseMonPic(sFactorySwapScreen->monPic, &sFactorySwapScreen->monPicAnimating, TRUE); sFactorySwapScreen->playerMonId = sFactorySwapScreen->cursorPos; - sub_819EA64(3); - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_819D9EC; + Swap_ErasePopupMenu(SWAP_WIN_OPTIONS); + gTasks[taskId].tState = 0; + gTasks[taskId].func = Swap_Task_SwitchPartyScreen; } -static void sub_819F114(u8 taskId) +static void Swap_OptionSummary(u8 taskId) { - gTasks[taskId].data[0] = 6; - gTasks[taskId].func = Task_FromSwapScreenToSummaryScreen; + gTasks[taskId].tState = STATE_SUMMARY_FADE; + gTasks[taskId].func = Swap_Task_OpenSummaryScreen; } -static void sub_819F134(u8 taskId) +static void Swap_OptionRechoose(u8 taskId) { - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); - sub_819EA64(3); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 0x10; - gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); - gTasks[taskId].data[5] = 1; - gTasks[taskId].func = sub_819D770; + CloseMonPic(sFactorySwapScreen->monPic, &sFactorySwapScreen->monPicAnimating, TRUE); + Swap_ErasePopupMenu(SWAP_WIN_OPTIONS); + gTasks[taskId].tState = 0; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_Task_HandleChooseMons) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_Task_HandleChooseMons); + gTasks[taskId].tFollowUpTaskState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionIn; } static void Swap_RunActionFunc(u8 taskId) { - sSwap_CurrentTableFunc = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; - sSwap_CurrentTableFunc(taskId); + sSwap_CurrentOptionFunc = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; + sSwap_CurrentOptionFunc(taskId); } static void Swap_ActionCancel(u8 taskId) { - gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 0x10; - gTasks[taskId].data[7] = (u32)(sub_819CC24); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[5] = 0; - gTasks[taskId].func = sub_819D588; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_AskQuitSwapping) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_AskQuitSwapping); + gTasks[taskId].tState = 0; + gTasks[taskId].tFollowUpTaskState = 0; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionOut; } static void Swap_ActionPkmnForSwap(u8 taskId) { - gTasks[taskId].data[6] = (u32)(sub_819D9EC) >> 0x10; - gTasks[taskId].data[7] = (u32)(sub_819D9EC); - gTasks[taskId].data[5] = 0; - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_819D588; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_Task_SwitchPartyScreen) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_Task_SwitchPartyScreen); + gTasks[taskId].tFollowUpTaskState = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionOut; } static void Swap_ActionMon(u8 taskId) { if (!sFactorySwapScreen->inEnemyScreen) { - gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenMenu) >> 0x10; - gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenMenu); - gTasks[taskId].data[5] = 2; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_Task_HandleMenu) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_Task_HandleMenu); + gTasks[taskId].tFollowUpTaskState = STATE_MENU_INIT; } else if (Swap_AlreadyHasSameSpecies(sFactorySwapScreen->cursorPos) == TRUE) { - sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[5] = 1; - gTasks[taskId].func = Task_SwapCantHaveSameMons; + OpenMonPic(&sFactorySwapScreen->monPic.bgSpriteId, &sFactorySwapScreen->monPicAnimating, TRUE); + gTasks[taskId].tState = 0; + gTasks[taskId].tFollowUpTaskState = STATE_CHOOSE_MONS_HANDLE_INPUT; + gTasks[taskId].func = Swap_TaskCantHaveSameMons; return; } else { - gTasks[taskId].data[6] = (u32)(sub_819CCD4) >> 0x10; - gTasks[taskId].data[7] = (u32)(sub_819CCD4); - gTasks[taskId].data[5] = 0; + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_AskAcceptMon) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_AskAcceptMon); + gTasks[taskId].tFollowUpTaskState = 0; } - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_819D588; + gTasks[taskId].tState = 0; + gTasks[taskId].func = Swap_Task_ScreenInfoTransitionOut; } -static void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) +#define sIsSwapScreen data[7] + +static void OpenMonPic(u8 *spriteId, bool8 *animating, bool8 swapScreen) { - *arg0 = CreateSprite(&gUnknown_08610894, 120, 64, 1); - gSprites[*arg0].callback = sub_819F600; - gSprites[*arg0].data[7] = swapScreen; - *arg1 = TRUE; + *spriteId = CreateSprite(&sSpriteTemplate_Swap_MonPicBgAnim, 120, 64, 1); + gSprites[*spriteId].callback = SpriteCB_OpenMonPic; + gSprites[*spriteId].sIsSwapScreen = swapScreen; + *animating = TRUE; } static void Swap_ShowSummaryMonSprite(void) @@ -3897,83 +4063,83 @@ static void Swap_ShowSummaryMonSprite(void) u16 species; u32 personality, otId; - sFactorySwapScreen->unk2C.field1 = CreateSprite(&gUnknown_08610894, 120, 64, 1); - StartSpriteAffineAnim(&gSprites[sFactorySwapScreen->unk2C.field1], 2); + sFactorySwapScreen->monPic.bgSpriteId = CreateSprite(&sSpriteTemplate_Swap_MonPicBgAnim, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[sFactorySwapScreen->monPic.bgSpriteId], 2); mon = &gPlayerParty[sFactorySwapScreen->cursorPos]; species = GetMonData(mon, MON_DATA_SPECIES, NULL); personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - #ifdef BUGFIX - sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); - #else - sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, personality, otId, TRUE, 88, 32, 15, 0xFFFF); - #endif - gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0; - gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0; +#ifdef BUGFIX + sFactorySwapScreen->monPic.monSpriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); +#else + sFactorySwapScreen->monPic.monSpriteId = CreateMonPicSprite_HandleDeoxys(species, personality, otId, TRUE, 88, 32, 15, 0xFFFF); +#endif + gSprites[sFactorySwapScreen->monPic.monSpriteId].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->monPic.monSpriteId].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unk2C.field1].invisible = TRUE; + gSprites[sFactorySwapScreen->monPic.bgSpriteId].invisible = TRUE; } -static void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) +static void CloseMonPic(struct FactoryMonPic pic, bool8 *animating, bool8 swapScreen) { u8 taskId; - FreeAndDestroyMonPicSprite(arg0.field0); - taskId = CreateTask(sub_819F7B4, 1); - gTasks[taskId].data[7] = swapScreen; - gTasks[taskId].data[6] = arg0.field1; + FreeAndDestroyMonPicSprite(pic.monSpriteId); + taskId = CreateTask(Task_CloseMonPic, 1); + gTasks[taskId].tIsSwapScreen = swapScreen; + gTasks[taskId].tSpriteId = pic.bgSpriteId; gTasks[taskId].func(taskId); - *arg1 = TRUE; + *animating = TRUE; } -static void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) +static void HideMonPic(struct FactoryMonPic pic, bool8 *animating) { - FreeAndDestroyMonPicSprite(arg0.field0); - FreeOamMatrix(gSprites[arg0.field1].oam.matrixNum); - DestroySprite(&gSprites[arg0.field1]); - *arg1 = FALSE; + FreeAndDestroyMonPicSprite(pic.monSpriteId); + FreeOamMatrix(gSprites[pic.bgSpriteId].oam.matrixNum); + DestroySprite(&gSprites[pic.bgSpriteId]); + *animating = FALSE; } -static void Task_SwapCantHaveSameMons(u8 taskId) +static void Swap_TaskCantHaveSameMons(u8 taskId) { - if (sFactorySwapScreen->unk30 == TRUE) + if (sFactorySwapScreen->monPicAnimating == TRUE) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: Swap_PrintOnInfoWindow(gText_SamePkmnInPartyAlready); sFactorySwapScreen->monSwapped = FALSE; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 1: if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); - gTasks[taskId].data[0]++; + CloseMonPic(sFactorySwapScreen->monPic, &sFactorySwapScreen->monPicAnimating, TRUE); + gTasks[taskId].tState++; } break; case 2: - if (sFactorySwapScreen->unk30 != TRUE) + if (sFactorySwapScreen->monPicAnimating != TRUE) { - FillWindowPixelBuffer(5, PIXEL_FILL(0)); - CopyWindowToVram(5, 2); - gTasks[taskId].data[0]++; + FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0)); + CopyWindowToVram(SWAP_WIN_ACTION_FADE, 2); + gTasks[taskId].tState++; } break; case 3: Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 4: - Swap_PrintMonSpecies3(); - sub_819EADC(); - sFactorySwapScreen->unk22 = TRUE; - gTasks[taskId].data[0] = gTasks[taskId].data[5]; - gTasks[taskId].func = Task_HandleSwapScreenChooseMons; + Swap_PrintMonSpeciesForTransition(); + Swap_EraseSpeciesAtFadeWindow(); + sFactorySwapScreen->fadeSpeciesNameActive = TRUE; + gTasks[taskId].tState = gTasks[taskId].tFollowUpTaskState; + gTasks[taskId].func = Swap_Task_HandleChooseMons; break; } } @@ -3983,7 +4149,7 @@ static bool8 Swap_AlreadyHasSameSpecies(u8 monId) u8 i; u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { if (i != sFactorySwapScreen->playerMonId && (u16)(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL)) == species) return TRUE; @@ -3991,120 +4157,131 @@ static bool8 Swap_AlreadyHasSameSpecies(u8 monId) return FALSE; } -static void sub_819F600(struct Sprite *sprite) +static void SpriteCB_OpenMonPic(struct Sprite *sprite) { u8 taskId; if (sprite->affineAnimEnded) { sprite->invisible = TRUE; - taskId = CreateTask(sub_819F69C, 1); - gTasks[taskId].data[7] = sprite->data[7]; + taskId = CreateTask(Task_OpenMonPic, 1); + gTasks[taskId].tIsSwapScreen = sprite->sIsSwapScreen; gTasks[taskId].func(taskId); sprite->callback = SpriteCallbackDummy; } } -static void sub_819F654(struct Sprite *sprite) +static void SpriteCB_CloseMonPic(struct Sprite *sprite) { if (sprite->affineAnimEnded) { FreeOamMatrix(sprite->oam.matrixNum); - if (sprite->data[7] == TRUE) - sFactorySwapScreen->unk30 = FALSE; + if (sprite->sIsSwapScreen == TRUE) + sFactorySwapScreen->monPicAnimating = FALSE; else - sub_819BE20(FALSE); + Select_SetMonPicAnimating(FALSE); DestroySprite(sprite); } } -static void sub_819F69C(u8 taskId) +static void Task_OpenMonPic(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - task->data[3] = 88; - task->data[24] = 152; // BUG: writing outside the array's bounds. - task->data[5] = 64; - task->data[8] = 65; + // Init + task->tWinLeft = 88; + task->tWinRight = DISPLAY_WIDTH - 88; + task->tWinTop = 64; + task->tWinBottom = 65; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); break; case 1: + // Show mon pic bg ShowBg(3); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); break; case 2: - task->data[5] -= 4; - task->data[8] += 4; - if (task->data[5] <= 32 || task->data[8] >= 96) + // Animate mon pic bg + task->tWinTop -= 4; + task->tWinBottom += 4; + if (task->tWinTop <= 32 || task->tWinBottom >= 96) { - task->data[5] = 32; - task->data[8] = 96; + task->tWinTop = 32; + task->tWinBottom = 96; } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); - if (task->data[5] != 32) + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + if (task->tWinTop != 32) return; break; default: + #ifndef UBFIX DestroyTask(taskId); + #endif // UB: Should not use the task after it has been deleted. - if (gTasks[taskId].data[7] == TRUE) - Swap_ShowMonSprite(); + if (gTasks[taskId].tIsSwapScreen == TRUE) + Swap_CreateMonSprite(); else - Summary_ShowMonSprite(); + Select_CreateMonSprite(); + #ifdef UBFIX + DestroyTask(taskId); + #endif return; } - task->data[0]++; + task->tState++; } -static void sub_819F7B4(u8 taskId) +static void Task_CloseMonPic(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { + case 0: + // Init + task->tWinLeft = 88; + task->tWinRight = DISPLAY_WIDTH - 88; + task->tWinTop = 32; + task->tWinBottom = 96; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + task->tState++; + break; + case 1: + // Animate bg + task->tWinTop += 4; + task->tWinBottom -= 4; + if (task->tWinTop >= 64 || task->tWinBottom <= 65) + { + task->tWinTop = 64; + task->tWinBottom = 65; + } + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + if (task->tWinTop == 64) + task->tState++; + break; default: + // Hide bg HideBg(3); - gSprites[task->data[6]].data[7] = task->data[7]; - gSprites[task->data[6]].invisible = FALSE; - gSprites[task->data[6]].callback = sub_819F654; - StartSpriteAffineAnim(&gSprites[task->data[6]], 1); + gSprites[task->tSpriteId].sIsSwapScreen = task->tIsSwapScreen; + gSprites[task->tSpriteId].invisible = FALSE; + gSprites[task->tSpriteId].callback = SpriteCB_CloseMonPic; + StartSpriteAffineAnim(&gSprites[task->tSpriteId], 1); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); DestroyTask(taskId); break; - case 0: - task->data[3] = 88; - task->data[24] = 152; // BUG: writing outside the array's bounds. - task->data[5] = 32; - task->data[8] = 96; - SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); - task->data[0]++; - break; - case 1: - task->data[5] += 4; - task->data[8] -= 4; - if (task->data[5] >= 64 || task->data[8] <= 65) - { - task->data[5] = 64; - task->data[8] = 65; - } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); - if (task->data[5] == 64) - task->data[0]++; - break; } } -static void Swap_ShowMonSprite(void) +static void Swap_CreateMonSprite(void) { struct Pokemon *mon; u16 species; @@ -4119,9 +4296,9 @@ static void Swap_ShowMonSprite(void) personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); - gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0; - gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0; + sFactorySwapScreen->monPic.monSpriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySwapScreen->monPic.monSpriteId].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->monPic.monSpriteId].centerToCornerVecY = 0; - sFactorySwapScreen->unk30 = FALSE; + sFactorySwapScreen->monPicAnimating = FALSE; } diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 216953b2da..482a135c5b 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1,7 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_controllers.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" #include "battle_anim.h" #include "constants/battle_anim.h" #include "battle_interface.h" @@ -40,8 +40,8 @@ extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; // this file's functions static u8 GetBattlePalaceMoveGroup(u16 move); static u16 GetBattlePalaceTarget(void); -static void sub_805D7EC(struct Sprite *sprite); -static bool8 ShouldAnimBeDoneRegardlessOfSubsitute(u8 animId); +static void SpriteCB_TrainerSlideVertical(struct Sprite *sprite); +static bool8 ShouldAnimBeDoneRegardlessOfSubstitute(u8 animId); static void Task_ClearBitWhenBattleTableAnimDone(u8 taskId); static void Task_ClearBitWhenSpecialAnimDone(u8 taskId); static void ClearSpritesBattlerHealthboxAnimData(void); @@ -337,7 +337,8 @@ static u16 GetBattlePalaceTarget(void) return (gActiveBattler ^ BIT_SIDE) << 8; } -void sub_805D714(struct Sprite *sprite) +// Wait for the pokemon to finish appearing out from the pokeball on send out +void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite) { u8 spriteId = sprite->data[1]; @@ -357,9 +358,9 @@ void sub_805D714(struct Sprite *sprite) } } -void sub_805D770(struct Sprite *sprite, bool8 arg1) +static void UnusedDoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 arg1) { - sprite->animPaused = 1; + sprite->animPaused = TRUE; sprite->callback = SpriteCallbackDummy; if (!arg1) @@ -370,28 +371,33 @@ void sub_805D770(struct Sprite *sprite, bool8 arg1) AnimateSprite(sprite); } -void sub_805D7AC(struct Sprite *sprite) +#define sSpeedX data[0] + +void SpriteCB_TrainerSlideIn(struct Sprite *sprite) { if (!(gIntroSlideFlags & 1)) { - sprite->pos2.x += sprite->data[0]; - if (sprite->pos2.x == 0) + sprite->x2 += sprite->sSpeedX; + if (sprite->x2 == 0) { - if (sprite->pos2.y != 0) - sprite->callback = sub_805D7EC; + if (sprite->y2 != 0) + sprite->callback = SpriteCB_TrainerSlideVertical; else sprite->callback = SpriteCallbackDummy; } } } -static void sub_805D7EC(struct Sprite *sprite) +// Slide up to 0 if necessary (used by multi battle intro) +static void SpriteCB_TrainerSlideVertical(struct Sprite *sprite) { - sprite->pos2.y -= 2; - if (sprite->pos2.y == 0) + sprite->y2 -= 2; + if (sprite->y2 == 0) sprite->callback = SpriteCallbackDummy; } +#undef sSpeedX + void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 1; @@ -439,7 +445,7 @@ bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattler, u8 atkBattler, u8 de return TRUE; } if (gBattleSpritesDataPtr->battlerData[activeBattler].behindSubstitute - && !ShouldAnimBeDoneRegardlessOfSubsitute(tableId)) + && !ShouldAnimBeDoneRegardlessOfSubstitute(tableId)) { return TRUE; } @@ -481,7 +487,7 @@ static void Task_ClearBitWhenBattleTableAnimDone(u8 taskId) #undef tBattlerId -static bool8 ShouldAnimBeDoneRegardlessOfSubsitute(u8 animId) +static bool8 ShouldAnimBeDoneRegardlessOfSubstitute(u8 animId) { switch (animId) { @@ -532,14 +538,15 @@ bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn) return FALSE; } -bool8 mplay_80342A4(u8 battlerId) +// Check if SE has finished or 30 calls, whichever comes first +bool8 IsBattleSEPlaying(u8 battlerId) { u8 zero = 0; if (IsSEPlaying()) { - gBattleSpritesDataPtr->healthBoxesData[battlerId].field_8++; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_8 < 30) + gBattleSpritesDataPtr->healthBoxesData[battlerId].soundTimer++; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].soundTimer < 30) return TRUE; m4aMPlayStop(&gMPlayInfo_SE1); @@ -547,10 +554,11 @@ bool8 mplay_80342A4(u8 battlerId) } if (zero == 0) { - gBattleSpritesDataPtr->healthBoxesData[battlerId].field_8 = 0; + gBattleSpritesDataPtr->healthBoxesData[battlerId].soundTimer = 0; return FALSE; } + // Never reached return TRUE; } @@ -584,7 +592,7 @@ static void BattleLoadMonSpriteGfx(struct Pokemon *mon, u32 battlerId, bool32 op } else { - if (sub_80688F8(1, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) + if (ShouldIgnoreDeoxysForm(1, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) { HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[position], @@ -634,7 +642,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId) BattleLoadMonSpriteGfx(mon, battlerId, FALSE); } -void nullsub_24(u16 species) +void BattleGfxSfxDummy2(u16 species) { } @@ -657,7 +665,7 @@ void DecompressTrainerBackPic(u16 backPicId, u8 battlerId) 0x100 + 16 * battlerId, 0x20); } -void nullsub_25(u8 arg0) +void BattleGfxSfxDummy3(u8 gender) { } @@ -916,13 +924,13 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform BlendPalette(paletteOffset, 16, 6, RGB_WHITE); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); } - gSprites[gBattlerSpriteIds[battlerAtk]].pos1.y = GetBattlerSpriteDefault_Y(battlerAtk); + gSprites[gBattlerSpriteIds[battlerAtk]].y = GetBattlerSpriteDefault_Y(battlerAtk); } else { src = gMonSpritesGfxPtr->sprites.ptr[position]; - dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); - DmaCopy32(3, src, dst, 0x800); + dst = (void *)(OBJ_VRAM0 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); + DmaCopy32(3, src, dst, MON_PIC_SIZE); paletteOffset = 0x100 + battlerAtk * 16; lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue); LZDecompressWram(lzPaletteData, gDecompressionBuffer); @@ -947,7 +955,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform gBattleMonForms[battlerAtk] = gBattleMonForms[battlerDef]; } - gSprites[gBattlerSpriteIds[battlerAtk]].pos1.y = GetBattlerSpriteDefault_Y(battlerAtk); + gSprites[gBattlerSpriteIds[battlerAtk]].y = GetBattlerSpriteDefault_Y(battlerAtk); StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerAtk]], gBattleMonForms[battlerAtk]); } } @@ -964,15 +972,15 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite) position = GetBattlerPosition(battlerId); if (IsContest()) - LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites.ptr[position]); + LZDecompressVram(gSubstituteDollBackGfx, gMonSpritesGfxPtr->sprites.ptr[position]); else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites.ptr[position]); + LZDecompressVram(gSubstituteDollFrontGfx, gMonSpritesGfxPtr->sprites.ptr[position]); else - LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites.ptr[position]); + LZDecompressVram(gSubstituteDollBackGfx, gMonSpritesGfxPtr->sprites.ptr[position]); for (i = 1; i < 4; i++) { - Dma3CopyLarge32_(gMonSpritesGfxPtr->sprites.ptr[position], &gMonSpritesGfxPtr->sprites.byte[position][0x800 * i], 0x800); + Dma3CopyLarge32_(gMonSpritesGfxPtr->sprites.ptr[position], &gMonSpritesGfxPtr->sprites.byte[position][MON_PIC_SIZE * i], MON_PIC_SIZE); } palOffset = (battlerId * 16) + 0x100; @@ -996,9 +1004,9 @@ void LoadBattleMonGfxAndAnimate(u8 battlerId, bool8 loadMonSprite, u8 spriteId) StartSpriteAnim(&gSprites[spriteId], gBattleMonForms[battlerId]); if (!loadMonSprite) - gSprites[spriteId].pos1.y = GetSubstituteSpriteDefault_Y(battlerId); + gSprites[spriteId].y = GetSubstituteSpriteDefault_Y(battlerId); else - gSprites[spriteId].pos1.y = GetBattlerSpriteDefault_Y(battlerId); + gSprites[spriteId].y = GetBattlerSpriteDefault_Y(battlerId); } void TrySetBehindSubstituteSpriteBit(u8 battlerId, u16 move) @@ -1077,7 +1085,7 @@ void HandleBattleLowHpMusicChange(void) } } -void sub_805EB9C(u8 affineMode) +void SetBattlerSpriteAffineMode(u8 affineMode) { s32 i; @@ -1139,8 +1147,8 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) if (gBattleSpritesDataPtr->battlerData[battlerId].behindSubstitute) invisible = TRUE; - shadowSprite->pos1.x = battlerSprite->pos1.x; - shadowSprite->pos2.x = battlerSprite->pos2.x; + shadowSprite->x = battlerSprite->x; + shadowSprite->x2 = battlerSprite->x2; shadowSprite->invisible = invisible; } @@ -1154,7 +1162,7 @@ void SpriteCB_SetInvisible(struct Sprite *sprite) void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species) { // The player's shadow is never seen. - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || gBattleScripting.monCaught) return; if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) @@ -1213,12 +1221,12 @@ void AllocateMonSpritesGfx(void) for (i = 0; i < MAX_BATTLERS_COUNT; i++) { gMonSpritesGfxPtr->sprites.ptr[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000); - *(gMonSpritesGfxPtr->templates + i) = gUnknown_08329D98[i]; + *(gMonSpritesGfxPtr->templates + i) = gBattlerSpriteTemplates[i]; for (j = 0; j < 4; j++) { - gMonSpritesGfxPtr->field_74[i][j].data = gMonSpritesGfxPtr->sprites.ptr[i] + (j * 0x800); - gMonSpritesGfxPtr->field_74[i][j].size = 0x800; + gMonSpritesGfxPtr->field_74[i][j].data = gMonSpritesGfxPtr->sprites.ptr[i] + (j * MON_PIC_SIZE); + gMonSpritesGfxPtr->field_74[i][j].size = MON_PIC_SIZE; } gMonSpritesGfxPtr->templates[i].images = gMonSpritesGfxPtr->field_74[i]; diff --git a/src/battle_interface.c b/src/battle_interface.c index a77aacde5d..c4fcfe3316 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -153,7 +153,7 @@ enum // strings extern const u8 gText_Slash[]; -extern const u8 gText_HighlightDarkGrey[]; +extern const u8 gText_HighlightDarkGray[]; extern const u8 gText_DynColor2[]; extern const u8 gText_DynColor2Male[]; extern const u8 gText_DynColor1Female[]; @@ -329,7 +329,7 @@ static const struct SpriteTemplate sHealthbarSpriteTemplates[MAX_BATTLERS_COUNT] static const struct Subsprite sUnknown_0832C258[] = { { - .x = 240, + .x = DISPLAY_WIDTH, .y = 0, .shape = SPRITE_SHAPE(32x8), .size = SPRITE_SIZE(32x8), @@ -349,7 +349,7 @@ static const struct Subsprite sUnknown_0832C258[] = static const struct Subsprite sUnknown_0832C260[] = { { - .x = 240, + .x = DISPLAY_WIDTH, .y = 0, .shape = SPRITE_SHAPE(32x8), .size = SPRITE_SIZE(32x8), @@ -365,7 +365,7 @@ static const struct Subsprite sUnknown_0832C260[] = .priority = 1 }, { - .x = 224, + .x = DISPLAY_WIDTH - 16, .y = 0, .shape = SPRITE_SHAPE(8x8), .size = SPRITE_SIZE(8x8), @@ -734,8 +734,8 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId) { if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) { - healthboxLeftSpriteId = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); - healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); + healthboxLeftSpriteId = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); + healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); gSprites[healthboxLeftSpriteId].oam.shape = ST_OAM_SQUARE; @@ -744,8 +744,8 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId) } else { - healthboxLeftSpriteId = CreateSprite(&sHealthboxOpponentSpriteTemplates[0], 240, 160, 1); - healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[0], 240, 160, 1); + healthboxLeftSpriteId = CreateSprite(&sHealthboxOpponentSpriteTemplates[0], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); + healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[0], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); gSprites[healthboxRightSpriteId].oam.tileNum += 32; @@ -760,8 +760,8 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId) { if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) { - healthboxLeftSpriteId = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battlerId) / 2], 240, 160, 1); - healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battlerId) / 2], 240, 160, 1); + healthboxLeftSpriteId = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battlerId) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); + healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battlerId) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); gSprites[healthboxLeftSpriteId].oam.affineParam = healthboxRightSpriteId; @@ -773,8 +773,8 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId) } else { - healthboxLeftSpriteId = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battlerId) / 2], 240, 160, 1); - healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battlerId) / 2], 240, 160, 1); + healthboxLeftSpriteId = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battlerId) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); + healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battlerId) / 2], DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); gSprites[healthboxLeftSpriteId].oam.affineParam = healthboxRightSpriteId; @@ -819,8 +819,8 @@ u8 CreateSafariPlayerHealthboxSprites(void) { u8 healthboxLeftSpriteId, healthboxRightSpriteId; - healthboxLeftSpriteId = CreateSprite(&sHealthboxSafariSpriteTemplate, 240, 160, 1); - healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxSafariSpriteTemplate, 240, 160, 1); + healthboxLeftSpriteId = CreateSprite(&sHealthboxSafariSpriteTemplate, DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); + healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxSafariSpriteTemplate, DISPLAY_WIDTH, DISPLAY_HEIGHT, 1); gSprites[healthboxLeftSpriteId].oam.shape = ST_OAM_SQUARE; gSprites[healthboxRightSpriteId].oam.shape = ST_OAM_SQUARE; @@ -850,22 +850,22 @@ static void SpriteCB_HealthBar(struct Sprite *sprite) switch (sprite->hBar_Data6) { case 0: - sprite->pos1.x = gSprites[healthboxSpriteId].pos1.x + 16; - sprite->pos1.y = gSprites[healthboxSpriteId].pos1.y; + sprite->x = gSprites[healthboxSpriteId].x + 16; + sprite->y = gSprites[healthboxSpriteId].y; break; case 1: - sprite->pos1.x = gSprites[healthboxSpriteId].pos1.x + 16; - sprite->pos1.y = gSprites[healthboxSpriteId].pos1.y; + sprite->x = gSprites[healthboxSpriteId].x + 16; + sprite->y = gSprites[healthboxSpriteId].y; break; case 2: default: - sprite->pos1.x = gSprites[healthboxSpriteId].pos1.x + 8; - sprite->pos1.y = gSprites[healthboxSpriteId].pos1.y; + sprite->x = gSprites[healthboxSpriteId].x + 8; + sprite->y = gSprites[healthboxSpriteId].y; break; } - sprite->pos2.x = gSprites[healthboxSpriteId].pos2.x; - sprite->pos2.y = gSprites[healthboxSpriteId].pos2.y; + sprite->x2 = gSprites[healthboxSpriteId].x2; + sprite->y2 = gSprites[healthboxSpriteId].y2; } static void SpriteCB_HealthBoxOther(struct Sprite *sprite) @@ -873,16 +873,16 @@ static void SpriteCB_HealthBoxOther(struct Sprite *sprite) u8 healthboxMainSpriteId = sprite->hOther_HealthBoxSpriteId; u8 megaSpriteId = sprite->hOther_IndicatorSpriteId; - sprite->pos1.x = gSprites[healthboxMainSpriteId].pos1.x + 64; - sprite->pos1.y = gSprites[healthboxMainSpriteId].pos1.y; + sprite->x = gSprites[healthboxMainSpriteId].x + 64; + sprite->y = gSprites[healthboxMainSpriteId].y; - sprite->pos2.x = gSprites[healthboxMainSpriteId].pos2.x; - sprite->pos2.y = gSprites[healthboxMainSpriteId].pos2.y; + sprite->x2 = gSprites[healthboxMainSpriteId].x2; + sprite->y2 = gSprites[healthboxMainSpriteId].y2; if (megaSpriteId != 0xFF) { - gSprites[megaSpriteId].pos2.x = sprite->pos2.x; - gSprites[megaSpriteId].pos2.y = sprite->pos2.y; + gSprites[megaSpriteId].x2 = sprite->x2; + gSprites[megaSpriteId].y2 = sprite->y2; } } @@ -922,8 +922,8 @@ void SetHealthboxSpriteVisible(u8 healthboxSpriteId) static void UpdateSpritePos(u8 spriteId, s16 x, s16 y) { - gSprites[spriteId].pos1.x = x; - gSprites[spriteId].pos1.y = y; + gSprites[spriteId].x = x; + gSprites[spriteId].y = y; } void DestoryHealthboxSprite(u8 healthboxSpriteId) @@ -943,45 +943,12 @@ static void TryToggleHealboxVisibility(u8 priority, u8 healthboxLeftSpriteId, u8 { u8 spriteIds[4] = {healthboxLeftSpriteId, healthboxRightSpriteId, healthbarSpriteId, indicatorSpriteId}; int i; - - switch (gBattleResources->bufferA[gBattleAnimAttacker][0]) - { - case CONTROLLER_MOVEANIMATION: - if (gBattleResources->bufferA[gBattleAnimAttacker][1] == MOVE_TRANSFORM) - return; - break; - case CONTROLLER_BALLTHROWANIM: - return; //throwing ball does not hide hp boxes - case CONTROLLER_BATTLEANIMATION: - //check special anims that hide health boxes - switch (gBattleResources->bufferA[gBattleAnimAttacker][1]) - { - case B_ANIM_TURN_TRAP: - case B_ANIM_LEECH_SEED_DRAIN: - case B_ANIM_MON_HIT: - case B_ANIM_SNATCH_MOVE: - case B_ANIM_FUTURE_SIGHT_HIT: - case B_ANIM_DOOM_DESIRE_HIT: - case B_ANIM_WISH_HEAL: - //new - case B_ANIM_MEGA_EVOLUTION: - case B_ANIM_TERRAIN_MISTY: - case B_ANIM_TERRAIN_GRASSY: - case B_ANIM_TERRAIN_ELECTRIC: - case B_ANIM_TERRAIN_PSYCHIC: - break; - } - return; //all other special anims dont hide - default: - return; - } - - // if we've reached here, we should hide hp boxes + for (i = 0; i < NELEMS(spriteIds); i++) { if (spriteIds[i] == 0xFF) continue; - + switch (priority) { case 0: //start of anim -> make invisible @@ -994,10 +961,10 @@ static void TryToggleHealboxVisibility(u8 priority, u8 healthboxLeftSpriteId, u8 } } -void UpdateOamPriorityInAllHealthboxes(u8 priority) +void UpdateOamPriorityInAllHealthboxes(u8 priority, bool32 hideHPBoxes) { s32 i; - + for (i = 0; i < gBattlersCount; i++) { u8 healthboxLeftSpriteId = gHealthboxSpriteIds[i]; @@ -1010,9 +977,9 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) gSprites[healthbarSpriteId].oam.priority = priority; if (indicatorSpriteId != 0xFF) gSprites[indicatorSpriteId].oam.priority = priority; - + #if B_HIDE_HEALTHBOXES_DURING_ANIMS - if (IsBattlerAlive(i)) + if (hideHPBoxes && IsBattlerAlive(i)) TryToggleHealboxVisibility(priority, healthboxLeftSpriteId, healthboxRightSpriteId, healthbarSpriteId, indicatorSpriteId); #endif } @@ -1062,32 +1029,24 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) u32 windowId, spriteTileNum; u8 *windowTileData; u8 text[16]; - u32 xPos, var1; - void *objVram; + u32 xPos; + u8 *objVram; u8 battler = gSprites[healthboxSpriteId].hMain_Battler; // Don't print Lv char if mon is mega evolved. if (gBattleStruct->mega.evolvedPartyIds[GetBattlerSide(battler)] & gBitTable[gBattlerPartyIndexes[battler]]) { - xPos = (u32) ConvertIntToDecimalStringN(text, lvl, STR_CONV_MODE_LEFT_ALIGN, 3); + objVram = ConvertIntToDecimalStringN(text, lvl, STR_CONV_MODE_LEFT_ALIGN, 3); } else { - text[0] = 0xF9; - text[1] = 5; + text[0] = CHAR_EXTRA_SYMBOL; + text[1] = CHAR_LV_2; - xPos = (u32) ConvertIntToDecimalStringN(text + 2, lvl, STR_CONV_MODE_LEFT_ALIGN, 3); + objVram = ConvertIntToDecimalStringN(text + 2, lvl, STR_CONV_MODE_LEFT_ALIGN, 3); } - // Alright, that part was unmatchable. It's basically doing: - // xPos = 5 * (3 - (u32)(&text[2])); - xPos--; - xPos--; - xPos -= ((u32)(text)); - var1 = (3 - xPos); - xPos = 4 * var1; - xPos += var1; - + xPos = 5 * (3 - (objVram - (text + 2))); windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, 2, &windowId); spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP; @@ -1441,12 +1400,12 @@ void CreateMegaTriggerSprite(u8 battlerId, u8 palId) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) gBattleStruct->mega.triggerSpriteId = CreateSprite(&sSpriteTemplate_MegaTrigger, - gSprites[gHealthboxSpriteIds[battlerId]].pos1.x - DOUBLES_MEGA_TRIGGER_POS_X_SLIDE, - gSprites[gHealthboxSpriteIds[battlerId]].pos1.y - DOUBLES_MEGA_TRIGGER_POS_Y_DIFF, 0); + gSprites[gHealthboxSpriteIds[battlerId]].x - DOUBLES_MEGA_TRIGGER_POS_X_SLIDE, + gSprites[gHealthboxSpriteIds[battlerId]].y - DOUBLES_MEGA_TRIGGER_POS_Y_DIFF, 0); else gBattleStruct->mega.triggerSpriteId = CreateSprite(&sSpriteTemplate_MegaTrigger, - gSprites[gHealthboxSpriteIds[battlerId]].pos1.x - SINGLES_MEGA_TRIGGER_POS_X_SLIDE, - gSprites[gHealthboxSpriteIds[battlerId]].pos1.y - SINGLES_MEGA_TRIGGER_POS_Y_DIFF, 0); + gSprites[gHealthboxSpriteIds[battlerId]].x - SINGLES_MEGA_TRIGGER_POS_X_SLIDE, + gSprites[gHealthboxSpriteIds[battlerId]].y - SINGLES_MEGA_TRIGGER_POS_Y_DIFF, 0); } gSprites[gBattleStruct->mega.triggerSpriteId].tBattler = battlerId; gSprites[gBattleStruct->mega.triggerSpriteId].tHide = FALSE; @@ -1476,31 +1435,31 @@ static void SpriteCb_MegaTrigger(struct Sprite *sprite) if (sprite->tHide) { - if (sprite->pos1.x != gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos1.x - xSlide) - sprite->pos1.x++; + if (sprite->x != gSprites[gHealthboxSpriteIds[sprite->tBattler]].x - xSlide) + sprite->x++; - if (sprite->pos1.x >= gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos1.x - xPriority) + if (sprite->x >= gSprites[gHealthboxSpriteIds[sprite->tBattler]].x - xPriority) sprite->oam.priority = 2; else sprite->oam.priority = 1; - sprite->pos1.y = gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos1.y - yDiff; - sprite->pos2.y = gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos2.y - yDiff; - if (sprite->pos1.x == gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos1.x - xSlide) + sprite->y = gSprites[gHealthboxSpriteIds[sprite->tBattler]].y - yDiff; + sprite->y2 = gSprites[gHealthboxSpriteIds[sprite->tBattler]].y2 - yDiff; + if (sprite->x == gSprites[gHealthboxSpriteIds[sprite->tBattler]].x - xSlide) DestroyMegaTriggerSprite(); } else { - if (sprite->pos1.x != gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos1.x - xOptimal) - sprite->pos1.x--; + if (sprite->x != gSprites[gHealthboxSpriteIds[sprite->tBattler]].x - xOptimal) + sprite->x--; - if (sprite->pos1.x >= gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos1.x - xPriority) + if (sprite->x >= gSprites[gHealthboxSpriteIds[sprite->tBattler]].x - xPriority) sprite->oam.priority = 2; else sprite->oam.priority = 1; - sprite->pos1.y = gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos1.y - yDiff; - sprite->pos2.y = gSprites[gHealthboxSpriteIds[sprite->tBattler]].pos2.y - yDiff; + sprite->y = gSprites[gHealthboxSpriteIds[sprite->tBattler]].y - yDiff; + sprite->y2 = gSprites[gHealthboxSpriteIds[sprite->tBattler]].y2 - yDiff; } } @@ -1516,8 +1475,11 @@ bool32 IsMegaTriggerSpriteActive(void) void HideMegaTriggerSprite(void) { - ChangeMegaTriggerSprite(gBattleStruct->mega.triggerSpriteId, 0); - gSprites[gBattleStruct->mega.triggerSpriteId].tHide = TRUE; + if (gBattleStruct->mega.triggerSpriteId != 0xFF) + { + ChangeMegaTriggerSprite(gBattleStruct->mega.triggerSpriteId, 0); + gSprites[gBattleStruct->mega.triggerSpriteId].tHide = TRUE; + } } void DestroyMegaTriggerSprite(void) @@ -1654,17 +1616,17 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, summaryBarSpriteId = CreateSprite(&sStatusSummaryBarSpriteTemplates[isOpponent], bar_X, bar_Y, 10); SetSubspriteTables(&gSprites[summaryBarSpriteId], sStatusSummaryBar_SubspriteTable); - gSprites[summaryBarSpriteId].pos2.x = bar_pos2_X; + gSprites[summaryBarSpriteId].x2 = bar_pos2_X; gSprites[summaryBarSpriteId].data[0] = bar_data0; if (isOpponent) { - gSprites[summaryBarSpriteId].pos1.x -= 96; + gSprites[summaryBarSpriteId].x -= 96; gSprites[summaryBarSpriteId].oam.matrixNum = ST_OAM_HFLIP; } else { - gSprites[summaryBarSpriteId].pos1.x += 96; + gSprites[summaryBarSpriteId].x += 96; } for (i = 0; i < PARTY_SIZE; i++) @@ -1676,23 +1638,23 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, if (!isOpponent) { - gSprites[ballIconSpritesIds[i]].pos2.x = 0; - gSprites[ballIconSpritesIds[i]].pos2.y = 0; + gSprites[ballIconSpritesIds[i]].x2 = 0; + gSprites[ballIconSpritesIds[i]].y2 = 0; } gSprites[ballIconSpritesIds[i]].data[0] = summaryBarSpriteId; if (!isOpponent) { - gSprites[ballIconSpritesIds[i]].pos1.x += 10 * i + 24; + gSprites[ballIconSpritesIds[i]].x += 10 * i + 24; gSprites[ballIconSpritesIds[i]].data[1] = i * 7 + 10; - gSprites[ballIconSpritesIds[i]].pos2.x = 120; + gSprites[ballIconSpritesIds[i]].x2 = 120; } else { - gSprites[ballIconSpritesIds[i]].pos1.x -= 10 * (5 - i) + 24; + gSprites[ballIconSpritesIds[i]].x -= 10 * (5 - i) + 24; gSprites[ballIconSpritesIds[i]].data[1] = (6 - i) * 7 + 10; - gSprites[ballIconSpritesIds[i]].pos2.x = -120; + gSprites[ballIconSpritesIds[i]].x2 = -120; } gSprites[ballIconSpritesIds[i]].data[2] = isOpponent; @@ -1962,17 +1924,17 @@ static void sub_8073F98(u8 taskId) static void SpriteCB_StatusSummaryBar(struct Sprite *sprite) { - if (sprite->pos2.x != 0) - sprite->pos2.x += sprite->data[0]; + if (sprite->x2 != 0) + sprite->x2 += sprite->data[0]; } static void sub_8074090(struct Sprite *sprite) { sprite->data[1] += 32; if (sprite->data[0] > 0) - sprite->pos2.x += sprite->data[1] >> 4; + sprite->x2 += sprite->data[1] >> 4; else - sprite->pos2.x -= sprite->data[1] >> 4; + sprite->x2 -= sprite->data[1] >> 4; sprite->data[1] &= 0xF; } @@ -1995,18 +1957,18 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) if (var1 != 0) { - sprite->pos2.x += var2 >> 4; - if (sprite->pos2.x > 0) - sprite->pos2.x = 0; + sprite->x2 += var2 >> 4; + if (sprite->x2 > 0) + sprite->x2 = 0; } else { - sprite->pos2.x -= var2 >> 4; - if (sprite->pos2.x < 0) - sprite->pos2.x = 0; + sprite->x2 -= var2 >> 4; + if (sprite->x2 < 0) + sprite->x2 = 0; } - if (sprite->pos2.x == 0) + if (sprite->x2 == 0) { pan = SOUND_PAN_TARGET; if (var1 != 0) @@ -2036,11 +1998,11 @@ static void sub_8074158(struct Sprite *sprite) var2 += 56; sprite->data[3] = var2 & 0xFFF0; if (var1 != 0) - sprite->pos2.x += var2 >> 4; + sprite->x2 += var2 >> 4; else - sprite->pos2.x -= var2 >> 4; - if (sprite->pos2.x + sprite->pos1.x > 248 - || sprite->pos2.x + sprite->pos1.x < -8) + sprite->x2 -= var2 >> 4; + if (sprite->x2 + sprite->x > 248 + || sprite->x2 + sprite->x < -8) { sprite->invisible = TRUE; sprite->callback = SpriteCallbackDummy; @@ -2051,15 +2013,14 @@ static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite) { u8 barSpriteId = sprite->data[0]; - sprite->pos2.x = gSprites[barSpriteId].pos2.x; - sprite->pos2.y = gSprites[barSpriteId].pos2.y; + sprite->x2 = gSprites[barSpriteId].x2; + sprite->y2 = gSprites[barSpriteId].y2; } static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) { u8 nickname[POKEMON_NAME_LENGTH + 1]; void *ptr; - const u8 *genderTxt; u32 windowId, spriteTileNum, species; u8 *windowTileData; u8 gender; @@ -2067,7 +2028,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) if (illusionMon != NULL) mon = illusionMon; - StringCopy(gDisplayedStringBattle, gText_HighlightDarkGrey); + StringCopy(gDisplayedStringBattle, gText_HighlightDarkGray); GetMonData(mon, MON_DATA_NICKNAME, nickname); StringGetEnd10(nickname); ptr = StringAppend(gDisplayedStringBattle, nickname); @@ -2100,7 +2061,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { - TextIntoHealthboxObject((void*)(VRAM + 0x10040 + spriteTileNum), windowTileData, 6); + TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x40 + spriteTileNum), windowTileData, 6); ptr = (void*)(OBJ_VRAM0); if (!IsDoubleBattle()) ptr += spriteTileNum + 0x800; @@ -2110,7 +2071,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) } else { - TextIntoHealthboxObject((void*)(VRAM + 0x10020 + spriteTileNum), windowTileData, 7); + TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x20 + spriteTileNum), windowTileData, 7); } RemoveWindowOnHealthbox(windowId); @@ -2891,7 +2852,34 @@ static void PrintOnAbilityPopUp(const u8 *str, u8 *spriteTileData1, u8 *spriteTi static void PrintBattlerOnAbilityPopUp(u8 battlerId, u8 spriteId1, u8 spriteId2) { - PrintOnAbilityPopUp(gBattleMons[battlerId].nickname, + int i; + u8 lastChar; + u8* name; + u8 monName[POKEMON_NAME_LENGTH + 3] = {0}; + u8* nick = gBattleMons[battlerId].nickname; + + for (i = 0; i < POKEMON_NAME_LENGTH; ++i) + { + monName[i] = nick[i]; + if (nick[i] == EOS || i + 1 == POKEMON_NAME_LENGTH) + break; + } + + name = monName + i + 1; + if (*(name - 1) == EOS) + name--; + + lastChar = *(name - 1); + name[0] = CHAR_SGL_QUOT_RIGHT; // apostraphe + name++; + if (lastChar != CHAR_S && lastChar != CHAR_s) + { + name[0] = CHAR_s; + name++; + } + + name[0] = EOS; + PrintOnAbilityPopUp((const u8 *)monName, (void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32), (void*)(OBJ_VRAM0) + (gSprites[spriteId2].oam.tileNum * 32), 7, 0, @@ -2909,106 +2897,106 @@ static void PrintAbilityOnAbilityPopUp(u32 ability, u8 spriteId1, u8 spriteId2) 7, 9, 1); } -#define PIXEL_COORDS_TO_OFFSET(x, y)( \ -/*Add tiles by X*/ \ -((y / 8) * 32 * 8) \ -/*Add tiles by X*/ \ -+ ((x / 8) * 32) \ -/*Add pixels by Y*/ \ -+ ((((y) - ((y / 8) * 8))) * 4) \ -/*Add pixels by X*/ \ +#define PIXEL_COORDS_TO_OFFSET(x, y)( \ +/*Add tiles by X*/ \ +((y / 8) * 32 * 8) \ +/*Add tiles by X*/ \ ++ ((x / 8) * 32) \ +/*Add pixels by Y*/ \ ++ ((((y) - ((y / 8) * 8))) * 4) \ +/*Add pixels by X*/ \ + ((((x) - ((x / 8) * 8)) / 2))) static const u16 sOverwrittenPixelsTable[][2] = { - {PIXEL_COORDS_TO_OFFSET(0, 0), 5}, - {PIXEL_COORDS_TO_OFFSET(0, 1), 5}, - {PIXEL_COORDS_TO_OFFSET(0, 2), 5}, - {PIXEL_COORDS_TO_OFFSET(0, 3), 5}, - {PIXEL_COORDS_TO_OFFSET(0, 4), 5}, - {PIXEL_COORDS_TO_OFFSET(0, 5), 5}, - {PIXEL_COORDS_TO_OFFSET(0, 6), 5}, - {PIXEL_COORDS_TO_OFFSET(0, 7), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 8), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 9), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 10), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 11), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 12), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 13), 8}, + {PIXEL_COORDS_TO_OFFSET(0, 0), 5}, + {PIXEL_COORDS_TO_OFFSET(0, 1), 5}, + {PIXEL_COORDS_TO_OFFSET(0, 2), 5}, + {PIXEL_COORDS_TO_OFFSET(0, 3), 5}, + {PIXEL_COORDS_TO_OFFSET(0, 4), 5}, + {PIXEL_COORDS_TO_OFFSET(0, 5), 5}, + {PIXEL_COORDS_TO_OFFSET(0, 6), 5}, + {PIXEL_COORDS_TO_OFFSET(0, 7), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 8), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 9), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 10), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 11), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 12), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 13), 8}, - {PIXEL_COORDS_TO_OFFSET(8, 13), 8}, - {PIXEL_COORDS_TO_OFFSET(16, 13), 8}, - {PIXEL_COORDS_TO_OFFSET(24, 13), 8}, - {PIXEL_COORDS_TO_OFFSET(32, 13), 8}, - {PIXEL_COORDS_TO_OFFSET(40, 13), 8}, - {PIXEL_COORDS_TO_OFFSET(48, 13), 8}, - {PIXEL_COORDS_TO_OFFSET(56, 13), 8}, + {PIXEL_COORDS_TO_OFFSET(8, 13), 8}, + {PIXEL_COORDS_TO_OFFSET(16, 13), 8}, + {PIXEL_COORDS_TO_OFFSET(24, 13), 8}, + {PIXEL_COORDS_TO_OFFSET(32, 13), 8}, + {PIXEL_COORDS_TO_OFFSET(40, 13), 8}, + {PIXEL_COORDS_TO_OFFSET(48, 13), 8}, + {PIXEL_COORDS_TO_OFFSET(56, 13), 8}, {PIXEL_COORDS_TO_OFFSET(0, 14), 8}, - {PIXEL_COORDS_TO_OFFSET(8, 14), 8}, - {PIXEL_COORDS_TO_OFFSET(16, 14), 8}, - {PIXEL_COORDS_TO_OFFSET(24, 14), 8}, - {PIXEL_COORDS_TO_OFFSET(32, 14), 8}, - {PIXEL_COORDS_TO_OFFSET(40, 14), 8}, - {PIXEL_COORDS_TO_OFFSET(48, 14), 8}, - {PIXEL_COORDS_TO_OFFSET(56, 14), 8}, + {PIXEL_COORDS_TO_OFFSET(8, 14), 8}, + {PIXEL_COORDS_TO_OFFSET(16, 14), 8}, + {PIXEL_COORDS_TO_OFFSET(24, 14), 8}, + {PIXEL_COORDS_TO_OFFSET(32, 14), 8}, + {PIXEL_COORDS_TO_OFFSET(40, 14), 8}, + {PIXEL_COORDS_TO_OFFSET(48, 14), 8}, + {PIXEL_COORDS_TO_OFFSET(56, 14), 8}, - {PIXEL_COORDS_TO_OFFSET(0, 15), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 16), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 17), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 18), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 19), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 20), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 21), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 22), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 23), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 24), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 25), 3}, - {PIXEL_COORDS_TO_OFFSET(0, 26), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 15), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 16), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 17), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 18), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 19), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 20), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 21), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 22), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 23), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 24), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 25), 3}, + {PIXEL_COORDS_TO_OFFSET(0, 26), 3}, }; static inline void CopyPixels(u8 *dest, const u8 *src, u32 pixelCount) { - u32 i = 0; + u32 i = 0; - if (pixelCount & 1) - { - while (pixelCount != 0) - { - dest[i] &= ~(0xF); - dest[i] |= (src[i] & 0xF); - if (--pixelCount != 0) - { - dest[i] &= ~(0xF0); - dest[i] |= (src[i] & 0xF0); - pixelCount--; - } - i++; - } - } - else - { - for (i = 0; i < pixelCount / 2; i++) - dest[i] = src[i]; - } + if (pixelCount & 1) + { + while (pixelCount != 0) + { + dest[i] &= ~(0xF); + dest[i] |= (src[i] & 0xF); + if (--pixelCount != 0) + { + dest[i] &= ~(0xF0); + dest[i] |= (src[i] & 0xF0); + pixelCount--; + } + i++; + } + } + else + { + for (i = 0; i < pixelCount / 2; i++) + dest[i] = src[i]; + } } static void RestoreOverwrittenPixels(u8 *tiles) { - u32 i; - u8 *buffer = Alloc(sizeof(sAbilityPopUpGfx) * 2); + u32 i; + u8 *buffer = Alloc(sizeof(sAbilityPopUpGfx) * 2); - CpuCopy32(tiles, buffer, sizeof(sAbilityPopUpGfx)); + CpuCopy32(tiles, buffer, sizeof(sAbilityPopUpGfx)); - for (i = 0; i < ARRAY_COUNT(sOverwrittenPixelsTable); i++) - { - CopyPixels(buffer + sOverwrittenPixelsTable[i][0], - sAbilityPopUpGfx + sOverwrittenPixelsTable[i][0], - sOverwrittenPixelsTable[i][1]); - } + for (i = 0; i < ARRAY_COUNT(sOverwrittenPixelsTable); i++) + { + CopyPixels(buffer + sOverwrittenPixelsTable[i][0], + sAbilityPopUpGfx + sOverwrittenPixelsTable[i][0], + sOverwrittenPixelsTable[i][1]); + } - CpuCopy32(buffer, tiles, sizeof(sAbilityPopUpGfx)); - Free(buffer); + CpuCopy32(buffer, tiles, sizeof(sAbilityPopUpGfx)); + Free(buffer); } void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) @@ -3019,6 +3007,9 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) if (!B_ABILITY_POP_UP) return; + if (gBattleScripting.abilityPopupOverwrite != 0) + ability = gBattleScripting.abilityPopupOverwrite; + if (!gBattleStruct->activeAbilityPopUps) { LoadSpriteSheet(&sSpriteSheet_AbilityPopUp); @@ -3062,7 +3053,7 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) gSprites[spriteId1].tRightToLeft = FALSE; gSprites[spriteId2].tRightToLeft = FALSE; } - + gBattleStruct->abilityPopUpSpriteIds[gBattleAnimAttacker][0] = spriteId1; gBattleStruct->abilityPopUpSpriteIds[gBattleAnimAttacker][1] = spriteId2; @@ -3089,12 +3080,12 @@ static void SpriteCb_AbilityPopUp(struct Sprite *sprite) if (!sprite->tHide) // Show { if (sprite->tIsMain && ++sprite->tFrames == 4) - PlaySE(SE_SELECT); - if ((!sprite->tRightToLeft && (sprite->pos1.x -= 4) <= sprite->tOriginalX) - || (sprite->tRightToLeft && (sprite->pos1.x += 4) >= sprite->tOriginalX) + PlaySE(SE_BALL_TRAY_ENTER); + if ((!sprite->tRightToLeft && (sprite->x -= 4) <= sprite->tOriginalX) + || (sprite->tRightToLeft && (sprite->x += 4) >= sprite->tOriginalX) ) { - sprite->pos1.x = sprite->tOriginalX; + sprite->x = sprite->tOriginalX; sprite->tHide = TRUE; sprite->tFrames = FRAMES_TO_WAIT; } @@ -3103,8 +3094,8 @@ static void SpriteCb_AbilityPopUp(struct Sprite *sprite) { if (sprite->tFrames == 0) { - if ((!sprite->tRightToLeft && (sprite->pos1.x += 4) >= sprite->tOriginalX + ABILITY_POP_UP_POS_X_SLIDE) - ||(sprite->tRightToLeft && (sprite->pos1.x -= 4) <= sprite->tOriginalX - ABILITY_POP_UP_POS_X_SLIDE) + if ((!sprite->tRightToLeft && (sprite->x += 4) >= sprite->tOriginalX + ABILITY_POP_UP_POS_X_SLIDE) + ||(sprite->tRightToLeft && (sprite->x -= 4) <= sprite->tOriginalX - ABILITY_POP_UP_POS_X_SLIDE) ) { gBattleStruct->activeAbilityPopUps &= ~(gBitTable[sprite->tBattlerId]); diff --git a/src/battle_intro.c b/src/battle_intro.c index 8c0b2d8312..39b2bd1c17 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -13,8 +13,8 @@ static EWRAM_DATA u16 sBgCnt = 0; -extern const u8 gUnknown_0859741A[]; -extern const u8 gUnknown_0859741E[]; +extern const u8 gBattleAnimBgCntSet[]; +extern const u8 gBattleAnimBgCntGet[]; static void BattleIntroSlide1(u8); static void BattleIntroSlide2(u8); @@ -24,23 +24,23 @@ static void BattleIntroSlidePartner(u8); static const TaskFunc sBattleIntroSlideFuncs[] = { - BattleIntroSlide1, // BATTLE_TERRAIN_GRASS - BattleIntroSlide1, // BATTLE_TERRAIN_LONG_GRASS - BattleIntroSlide2, // BATTLE_TERRAIN_SAND - BattleIntroSlide2, // BATTLE_TERRAIN_UNDERWATER - BattleIntroSlide2, // BATTLE_TERRAIN_WATER - BattleIntroSlide1, // BATTLE_TERRAIN_POND - BattleIntroSlide1, // BATTLE_TERRAIN_MOUNTAIN - BattleIntroSlide1, // BATTLE_TERRAIN_CAVE - BattleIntroSlide3, // BATTLE_TERRAIN_BUILDING - BattleIntroSlide3, // BATTLE_TERRAIN_PLAIN + [BATTLE_TERRAIN_GRASS] = BattleIntroSlide1, + [BATTLE_TERRAIN_LONG_GRASS] = BattleIntroSlide1, + [BATTLE_TERRAIN_SAND] = BattleIntroSlide2, + [BATTLE_TERRAIN_UNDERWATER] = BattleIntroSlide2, + [BATTLE_TERRAIN_WATER] = BattleIntroSlide2, + [BATTLE_TERRAIN_POND] = BattleIntroSlide1, + [BATTLE_TERRAIN_MOUNTAIN] = BattleIntroSlide1, + [BATTLE_TERRAIN_CAVE] = BattleIntroSlide1, + [BATTLE_TERRAIN_BUILDING] = BattleIntroSlide3, + [BATTLE_TERRAIN_PLAIN] = BattleIntroSlide3, }; void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value) { if (bgId < 4) { - sBgCnt = GetGpuReg(gUnknown_0859741A[bgId]); + sBgCnt = GetGpuReg(gBattleAnimBgCntSet[bgId]); switch (attributeId) { case BG_ANIM_SCREEN_SIZE: @@ -66,7 +66,7 @@ void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value) break; } - SetGpuReg(gUnknown_0859741A[bgId], sBgCnt); + SetGpuReg(gBattleAnimBgCntSet[bgId], sBgCnt); } } @@ -76,7 +76,7 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId) if (bgId < 4) { - bgCnt = GetGpuReg(gUnknown_0859741E[bgId]); + bgCnt = GetGpuReg(gBattleAnimBgCntGet[bgId]); switch (attributeId) { case BG_ANIM_SCREEN_SIZE: @@ -99,6 +99,9 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId) return 0; } +#define tState data[0] +#define tTerrain data[1] + void HandleIntroSlide(u8 terrain) { u8 taskId; @@ -125,8 +128,8 @@ void HandleIntroSlide(u8 terrain) taskId = CreateTask(sBattleIntroSlideFuncs[terrain], 0); } - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = terrain; + gTasks[taskId].tState = 0; + gTasks[taskId].tTerrain = terrain; gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 0; gTasks[taskId].data[4] = 0; @@ -134,7 +137,7 @@ void HandleIntroSlide(u8 terrain) gTasks[taskId].data[6] = 0; } -void sub_811828C(u8 taskId) +static void BattleIntroSlideEnd(u8 taskId) { DestroyTask(taskId); gBattle_BG1_X = 0; @@ -153,24 +156,24 @@ static void BattleIntroSlide1(u8 taskId) int i; gBattle_BG1_X += 6; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gTasks[taskId].data[2] = 16; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } else { gTasks[taskId].data[2] = 1; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: if (--gTasks[taskId].data[2] == 0) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); } break; @@ -178,7 +181,7 @@ static void BattleIntroSlide1(u8 taskId) gBattle_WIN0V -= 0xFF; if ((gBattle_WIN0V & 0xFF00) == 0x3000) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; gTasks[taskId].data[2] = 240; gTasks[taskId].data[3] = 32; gIntroSlideFlags &= ~1; @@ -191,7 +194,7 @@ static void BattleIntroSlide1(u8 taskId) } else { - if (gTasks[taskId].data[1] == 1) + if (gTasks[taskId].tTerrain == BATTLE_TERRAIN_LONG_GRASS) { if (gBattle_BG1_Y != 0xFFB0) gBattle_BG1_Y -= 2; @@ -219,7 +222,7 @@ static void BattleIntroSlide1(u8 taskId) if (!gTasks[taskId].data[2]) { gScanlineEffect.state = 3; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE); SetBgAttribute(1, BG_ATTR_CHARBASEINDEX, 0); SetBgAttribute(2, BG_ATTR_CHARBASEINDEX, 0); @@ -228,7 +231,7 @@ static void BattleIntroSlide1(u8 taskId) } break; case 4: - sub_811828C(taskId); + BattleIntroSlideEnd(taskId); break; } } @@ -237,18 +240,18 @@ static void BattleIntroSlide2(u8 taskId) { int i; - switch (gTasks[taskId].data[1]) + switch (gTasks[taskId].tTerrain) { - case 2: - case 4: + case BATTLE_TERRAIN_SAND: + case BATTLE_TERRAIN_WATER: gBattle_BG1_X += 8; break; - case 3: + case BATTLE_TERRAIN_UNDERWATER: gBattle_BG1_X += 6; break; } - if (gTasks[taskId].data[1] == 4) + if (gTasks[taskId].tTerrain == BATTLE_TERRAIN_WATER) { gBattle_BG1_Y = Cos2(gTasks[taskId].data[6]) / 512 - 8; if (gTasks[taskId].data[6] < 180) @@ -260,25 +263,25 @@ static void BattleIntroSlide2(u8 taskId) gTasks[taskId].data[6] = 0; } - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: gTasks[taskId].data[4] = 16; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gTasks[taskId].data[2] = 16; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } else { gTasks[taskId].data[2] = 1; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: if (--gTasks[taskId].data[2] == 0) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); } break; @@ -286,7 +289,7 @@ static void BattleIntroSlide2(u8 taskId) gBattle_WIN0V -= 0xFF; if ((gBattle_WIN0V & 0xFF00) == 0x3000) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; gTasks[taskId].data[2] = 240; gTasks[taskId].data[3] = 32; gTasks[taskId].data[5] = 1; @@ -328,7 +331,7 @@ static void BattleIntroSlide2(u8 taskId) if (!gTasks[taskId].data[2]) { gScanlineEffect.state = 3; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE); SetBgAttribute(1, BG_ATTR_CHARBASEINDEX, 0); SetBgAttribute(2, BG_ATTR_CHARBASEINDEX, 0); @@ -337,11 +340,11 @@ static void BattleIntroSlide2(u8 taskId) } break; case 4: - sub_811828C(taskId); + BattleIntroSlideEnd(taskId); break; } - if (gTasks[taskId].data[0] != 4) + if (gTasks[taskId].tState != 4) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0)); } @@ -350,28 +353,28 @@ static void BattleIntroSlide3(u8 taskId) int i; gBattle_BG1_X += 8; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8)); SetGpuReg(REG_OFFSET_BLDY, 0); gTasks[taskId].data[4] = BLDALPHA_BLEND(8, 8); - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { gTasks[taskId].data[2] = 16; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } else { gTasks[taskId].data[2] = 1; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: if (--gTasks[taskId].data[2] == 0) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); } break; @@ -379,7 +382,7 @@ static void BattleIntroSlide3(u8 taskId) gBattle_WIN0V -= 0xFF; if ((gBattle_WIN0V & 0xFF00) == 0x3000) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; gTasks[taskId].data[2] = 240; gTasks[taskId].data[3] = 32; gTasks[taskId].data[5] = 1; @@ -416,7 +419,7 @@ static void BattleIntroSlide3(u8 taskId) if (!gTasks[taskId].data[2]) { gScanlineEffect.state = 3; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE); SetBgAttribute(1, BG_ATTR_CHARBASEINDEX, 0); SetBgAttribute(2, BG_ATTR_CHARBASEINDEX, 0); @@ -425,11 +428,11 @@ static void BattleIntroSlide3(u8 taskId) } break; case 4: - sub_811828C(taskId); + BattleIntroSlideEnd(taskId); break; } - if (gTasks[taskId].data[0] != 4) + if (gTasks[taskId].tState != 4) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0)); } @@ -437,7 +440,7 @@ static void BattleIntroSlideLink(u8 taskId) { int i; - if (gTasks[taskId].data[0] > 1 && !gTasks[taskId].data[4]) + if (gTasks[taskId].tState > 1 && !gTasks[taskId].data[4]) { u16 var0 = gBattle_BG1_X & 0x8000; if (var0 || gBattle_BG1_X < 80) @@ -453,20 +456,20 @@ static void BattleIntroSlideLink(u8 taskId) } } - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: gTasks[taskId].data[2] = 32; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 1: if (--gTasks[taskId].data[2] == 0) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; gSprites[gBattleStruct->linkBattleVsSpriteId_V].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[gBattleStruct->linkBattleVsSpriteId_V].callback = sub_8038B74; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].callback = SpriteCB_VsLetterInit; gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[gBattleStruct->linkBattleVsSpriteId_S].callback = sub_8038B74; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].callback = SpriteCB_VsLetterInit; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2); } @@ -475,7 +478,7 @@ static void BattleIntroSlideLink(u8 taskId) gBattle_WIN0V -= 0xFF; if ((gBattle_WIN0V & 0xFF00) == 0x3000) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; gTasks[taskId].data[2] = 240; gTasks[taskId].data[3] = 32; gIntroSlideFlags &= ~1; @@ -498,7 +501,7 @@ static void BattleIntroSlideLink(u8 taskId) if (!gTasks[taskId].data[2]) { gScanlineEffect.state = 3; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; SetBgAttribute(1, BG_ATTR_CHARBASEINDEX, 0); SetBgAttribute(2, BG_ATTR_CHARBASEINDEX, 0); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512); @@ -506,31 +509,31 @@ static void BattleIntroSlideLink(u8 taskId) } break; case 4: - sub_811828C(taskId); + BattleIntroSlideEnd(taskId); break; } } static void BattleIntroSlidePartner(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: gTasks[taskId].data[2] = 1; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 1: if (--gTasks[taskId].data[2] == 0) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT512x256); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256); SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR); gBattle_BG0_Y = -48; - gBattle_BG1_X = 240; - gBattle_BG2_X = -240; + gBattle_BG1_X = DISPLAY_WIDTH; + gBattle_BG2_X = -DISPLAY_WIDTH; } break; case 2: @@ -540,7 +543,7 @@ static void BattleIntroSlidePartner(u8 taskId) if ((gBattle_WIN0V & 0xFF00) == 0x2000) { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; gTasks[taskId].data[2] = 240; gIntroSlideFlags &= ~1; } @@ -555,7 +558,7 @@ static void BattleIntroSlidePartner(u8 taskId) gBattle_BG1_X = gTasks[taskId].data[2]; gBattle_BG2_X = -gTasks[taskId].data[2]; if (!gTasks[taskId].data[2]) - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 4: gBattle_BG0_Y += 2; @@ -572,11 +575,11 @@ static void BattleIntroSlidePartner(u8 taskId) SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256); gScanlineEffect.state = 3; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 5: - sub_811828C(taskId); + BattleIntroSlideEnd(taskId); break; } } diff --git a/src/battle_main.c b/src/battle_main.c index f48129acbb..77e71c5b71 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1,7 +1,8 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" +#include "battle_ai_util.h" #include "battle_arena.h" #include "battle_controllers.h" #include "battle_interface.h" @@ -69,9 +70,6 @@ extern const struct BgTemplate gBattleBgTemplates[]; extern const struct WindowTemplate *const gBattleWindowTemplates[]; // this file's functions -#if !defined(NONMATCHING) && MODERN -#define static -#endif static void CB2_InitBattleInternal(void); static void CB2_PreInitMultiBattle(void); static void CB2_PreInitIngamePlayerPartnerBattle(void); @@ -82,8 +80,8 @@ static void TryCorrectShedinjaLanguage(struct Pokemon *mon); static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 firstTrainer); static void BattleMainCB1(void); static void sub_8038538(struct Sprite *sprite); -static void sub_8038F14(void); -static void sub_8038F34(void); +static void CB2_EndLinkBattle(void); +static void EndLinkBattleInSteps(void); static void sub_80392A8(void); static void sub_803937C(void); static void sub_803939C(void); @@ -94,7 +92,7 @@ static void sub_80398D0(struct Sprite *sprite); static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite); static void SpriteCb_BlinkVisible(struct Sprite *sprite); static void SpriteCallbackDummy_3(struct Sprite *sprite); -static void oac_poke_ally_(struct Sprite *sprite); +static void SpriteCB_BattleSpriteSlideLeft(struct Sprite *sprite); static void TurnValuesCleanUp(bool8 var0); static void SpriteCB_BounceEffect(struct Sprite *sprite); static void BattleStartClearSetData(void); @@ -107,6 +105,7 @@ static void sub_803CDF8(void); static bool8 AllAtActionConfirmed(void); static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void); static void CheckMegaEvolutionBeforeTurn(void); +static void CheckQuickClaw_CustapBerryActivation(void); static void FreeResetData_ReturnToOvOrDoEvolutions(void); static void ReturnFromBattleToOverworld(void); static void TryEvolvePokemon(void); @@ -137,7 +136,7 @@ EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u32 gBattleTypeFlags = 0; EWRAM_DATA u8 gBattleTerrain = 0; -EWRAM_DATA u32 gUnknown_02022FF4 = 0; +EWRAM_DATA u32 gUnusedFirstBattleVar1 = 0; // Never read EWRAM_DATA struct UnknownPokemonStruct4 gMultiPartnerParty[MULTI_PARTY_SIZE] = {0}; EWRAM_DATA static struct UnknownPokemonStruct4* sMultiPartnerPartyBuffer = NULL; EWRAM_DATA u8 *gUnknown_0202305C = NULL; @@ -187,7 +186,7 @@ EWRAM_DATA u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gMoveResultFlags = 0; EWRAM_DATA u32 gHitMarker = 0; EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA u8 gUnknown_0202428C = 0; +EWRAM_DATA u8 gUnusedFirstBattleVar2 = 0; // Never read EWRAM_DATA u32 gSideStatuses[2] = {0}; EWRAM_DATA struct SideTimer gSideTimers[2] = {0}; EWRAM_DATA u32 gStatuses3[MAX_BATTLERS_COUNT] = {0}; @@ -219,8 +218,8 @@ EWRAM_DATA u32 gTransformedPersonalities[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gPlayerDpadHoldFrames = 0; EWRAM_DATA struct BattleSpriteData *gBattleSpritesDataPtr = NULL; EWRAM_DATA struct MonSpritesGfx *gMonSpritesGfxPtr = NULL; -EWRAM_DATA struct BattleHealthboxInfo *gUnknown_020244D8 = NULL; -EWRAM_DATA struct BattleHealthboxInfo *gUnknown_020244DC = NULL; +EWRAM_DATA struct BattleHealthboxInfo *gBattleControllerOpponentHealthboxData = NULL; // Never read +EWRAM_DATA struct BattleHealthboxInfo *gBattleControllerOpponentFlankHealthboxData = NULL; // Never read EWRAM_DATA u16 gBattleMovePower = 0; EWRAM_DATA u16 gMoveToLearn = 0; EWRAM_DATA u8 gBattleMonForms[MAX_BATTLERS_COUNT] = {0}; @@ -241,7 +240,7 @@ void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; u8 gMultiUsePlayerCursor; u8 gNumberOfMovesToChoose; -u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +u8 gBattleControllerData[MAX_BATTLERS_COUNT]; // Used by the battle controllers to store misc sprite/task IDs for each battler // rom const data static const struct ScanlineEffectParams sIntroScanlineParams16Bit = @@ -268,7 +267,7 @@ const struct SpriteTemplate gUnknown_0831AC88 = static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin -const struct OamData gOamData_831ACA8 = +const struct OamData gOamData_BattleSpriteOpponentSide = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -283,7 +282,7 @@ const struct OamData gOamData_831ACA8 = .affineParam = 0, }; -const struct OamData gOamData_831ACB0 = +const struct OamData gOamData_BattleSpritePlayerSide = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -302,25 +301,25 @@ static const s8 gUnknown_0831ACE0[] ={-32, -16, -16, -32, -32, 0, 0, 0}; const u8 gTypeNames[NUMBER_OF_MON_TYPES][TYPE_NAME_LENGTH + 1] = { - _("NORMAL"), - _("FIGHT"), - _("FLYING"), - _("POISON"), - _("GROUND"), - _("ROCK"), - _("BUG"), - _("GHOST"), - _("STEEL"), - _("???"), - _("FIRE"), - _("WATER"), - _("GRASS"), - _("ELECTR"), - _("PSYCHC"), - _("ICE"), - _("DRAGON"), - _("DARK"), - _("FAIRY"), + [TYPE_NORMAL] = _("Normal"), + [TYPE_FIGHTING] = _("Fight"), + [TYPE_FLYING] = _("Flying"), + [TYPE_POISON] = _("Poison"), + [TYPE_GROUND] = _("Ground"), + [TYPE_ROCK] = _("Rock"), + [TYPE_BUG] = _("Bug"), + [TYPE_GHOST] = _("Ghost"), + [TYPE_STEEL] = _("Steel"), + [TYPE_MYSTERY] = _("???"), + [TYPE_FIRE] = _("Fire"), + [TYPE_WATER] = _("Water"), + [TYPE_GRASS] = _("Grass"), + [TYPE_ELECTRIC] = _("Electr"), + [TYPE_PSYCHIC] = _("Psychc"), + [TYPE_ICE] = _("Ice"), + [TYPE_DRAGON] = _("Dragon"), + [TYPE_DARK] = _("Dark"), + [TYPE_FAIRY] = _("Fairy"), }; // This is a factor in how much money you get for beating a trainer. @@ -445,7 +444,7 @@ void CB2_InitBattle(void) AllocateBattleResources(); AllocateBattleSpritesData(); AllocateMonSpritesGfx(); - sub_8185F84(); + RecordedBattle_ClearFrontierPassFlag(); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -480,22 +479,22 @@ static void CB2_InitBattleInternal(void) CpuFill32(0, (void*)(VRAM), VRAM_SIZE); SetGpuReg(REG_OFFSET_MOSAIC, 0); - SetGpuReg(REG_OFFSET_WIN0H, 240); - SetGpuReg(REG_OFFSET_WIN0V, 0x5051); + SetGpuReg(REG_OFFSET_WIN0H, DISPLAY_WIDTH); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1)); SetGpuReg(REG_OFFSET_WININ, 0); SetGpuReg(REG_OFFSET_WINOUT, 0); - gBattle_WIN0H = 240; + gBattle_WIN0H = DISPLAY_WIDTH; if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != TRAINER_STEVEN_PARTNER && gPartnerTrainerId < TRAINER_CUSTOM_PARTNER) { - gBattle_WIN0V = 159; - gBattle_WIN1H = 240; + gBattle_WIN0V = DISPLAY_HEIGHT - 1; + gBattle_WIN1H = DISPLAY_WIDTH; gBattle_WIN1V = 32; } else { - gBattle_WIN0V = 0x5051; + gBattle_WIN0V = WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1); ScanlineEffect_Clear(); i = 0; @@ -566,46 +565,52 @@ static void CB2_InitBattleInternal(void) gBattleCommunication[MULTIUSE_STATE] = 0; } -static void sub_8036A5C(void) -{ - u16 r6 = 0; - u16 species = 0; - u16 hp = 0; - u32 status = 0; - s32 i; - - for (i = 0; i < PARTY_SIZE; i++) - { - species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); - status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp != 0 && status == 0) - r6 |= 1 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (hp != 0 && (species == SPECIES_EGG || status != 0)) - r6 |= 2 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp == 0) - r6 |= 3 << i * 2; +#define BUFFER_PARTY_VS_SCREEN_STATUS(party, flags, i) \ + for ((i) = 0; (i) < PARTY_SIZE; (i)++) \ + { \ + u16 species = GetMonData(&(party)[(i)], MON_DATA_SPECIES2); \ + u16 hp = GetMonData(&(party)[(i)], MON_DATA_HP); \ + u32 status = GetMonData(&(party)[(i)], MON_DATA_STATUS); \ + \ + if (species == SPECIES_NONE) \ + continue; \ + \ + /* Is healthy mon? */ \ + if (species != SPECIES_EGG && hp != 0 && status == 0) \ + (flags) |= 1 << (i) * 2; \ + \ + if (species == SPECIES_NONE) /* Redundant */ \ + continue; \ + \ + /* Is Egg or statused? */ \ + if (hp != 0 && (species == SPECIES_EGG || status != 0)) \ + (flags) |= 2 << (i) * 2; \ + \ + if (species == SPECIES_NONE) /* Redundant */ \ + continue; \ + \ + /* Is fainted? */ \ + if (species != SPECIES_EGG && hp == 0) \ + (flags) |= 3 << (i) * 2; \ } - gBattleStruct->field_182 = r6; - *(&gBattleStruct->field_183) = r6 >> 8; - gBattleStruct->field_183 |= FlagGet(FLAG_SYS_FRONTIER_PASS) << 7; +// For Vs Screen at link battle start +static void BufferPartyVsScreenHealth_AtStart(void) +{ + u16 flags = 0; + s32 i; + + BUFFER_PARTY_VS_SCREEN_STATUS(gPlayerParty, flags, i); + gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsLo = flags; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsHi) = flags >> 8; + gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsHi |= FlagGet(FLAG_SYS_FRONTIER_PASS) << 7; } static void SetPlayerBerryDataInBattleStruct(void) { s32 i; struct BattleStruct *battleStruct = gBattleStruct; - struct BattleEnigmaBerry *battleBerry = &battleStruct->battleEnigmaBerry; + struct BattleEnigmaBerry *battleBerry = &battleStruct->multiBuffer.linkBattlerHeader.battleEnigmaBerry; if (IsEnigmaBerryValid() == TRUE) { @@ -745,52 +750,56 @@ static void SetAllPlayersBerryData(void) } } -static void sub_8036EB8(u8 arg0, u8 arg1) +// This was inlined in Ruby/Sapphire +static void FindLinkBattleMaster(u8 numPlayers, u8 multiPlayerId) { - u8 var = 0; + u8 found = 0; - if (gBlockRecvBuffer[0][0] == 256) + // If player 1 is playing the minimum version, player 1 is master. + if (gBlockRecvBuffer[0][0] == 0x100) { - if (arg1 == 0) + if (multiPlayerId == 0) gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - var++; + found++; } - if (var == 0) + if (found == 0) { + // If multiple different versions are being used, player 1 is master. s32 i; - for (i = 0; i < arg0; i++) + for (i = 0; i < numPlayers; i++) { if (gBlockRecvBuffer[0][0] != gBlockRecvBuffer[i][0]) break; } - if (i == arg0) + if (i == numPlayers) { - if (arg1 == 0) + if (multiPlayerId == 0) gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - var++; + found++; } - if (var == 0) + if (found == 0) { - for (i = 0; i < arg0; i++) + // Lowest index player with the highest game version is master. + for (i = 0; i < numPlayers; i++) { - if (gBlockRecvBuffer[i][0] == 0x300) + if (gBlockRecvBuffer[i][0] == 0x300 && i != multiPlayerId) { - if (i != arg1 && i < arg1) + if (i < multiPlayerId) break; } - if (gBlockRecvBuffer[i][0] > 0x300 && i != arg1) + if (gBlockRecvBuffer[i][0] > 0x300 && i != multiPlayerId) break; } - if (i == arg0) + if (i == numPlayers) gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; @@ -833,9 +842,10 @@ static void CB2_HandleStartBattle(void) { if (IsLinkTaskFinished()) { - *(&gBattleStruct->field_180) = 0; - *(&gBattleStruct->field_181) = 3; - sub_8036A5C(); + // 0x300 + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureLo) = 0; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 3; + BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) @@ -844,7 +854,7 @@ static void CB2_HandleStartBattle(void) gLinkPlayers[1].id = 1; } - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); gBattleCommunication[MULTIUSE_STATE] = 2; } if (gWirelessCommType) @@ -865,16 +875,16 @@ static void CB2_HandleStartBattle(void) u8 taskId; ResetBlockReceivedFlags(); - sub_8036EB8(2, playerMultiplayerId); + FindLinkBattleMaster(2, playerMultiplayerId); SetAllPlayersBerryData(); taskId = CreateTask(InitLinkBattleVsScreen, 0); gTasks[taskId].data[1] = 0x10E; gTasks[taskId].data[2] = 0x5A; gTasks[taskId].data[5] = 0; - gTasks[taskId].data[3] = gBattleStruct->field_182 | (gBattleStruct->field_183 << 8); + gTasks[taskId].data[3] = gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsHi << 8); gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1]; - sub_8185F90(gBlockRecvBuffer[playerMultiplayerId][1]); - sub_8185F90(gBlockRecvBuffer[enemyMultiplayerId][1]); + RecordedBattle_SetFrontierPassFlagFromHword(gBlockRecvBuffer[playerMultiplayerId][1]); + RecordedBattle_SetFrontierPassFlagFromHword(gBlockRecvBuffer[enemyMultiplayerId][1]); SetDeoxysStats(); gBattleCommunication[MULTIUSE_STATE]++; } @@ -931,7 +941,7 @@ static void CB2_HandleStartBattle(void) } break; case 15: - sub_8032768(); + InitBattleControllers(); sub_8184E58(); gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -975,7 +985,7 @@ static void CB2_HandleStartBattle(void) SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - gBattleTypeFlags |= BATTLE_TYPE_20; + gBattleTypeFlags |= BATTLE_TYPE_LINK_IN_BATTLE; } } break; @@ -1041,11 +1051,12 @@ static void CB2_HandleStartMultiPartnerBattle(void) if (IsLinkTaskFinished()) { - *(&gBattleStruct->field_180) = 0; - *(&gBattleStruct->field_181) = 3; - sub_8036A5C(); + // 0x300 + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureLo) = 0; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 3; + BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); gBattleCommunication[MULTIUSE_STATE] = 2; } @@ -1067,7 +1078,7 @@ static void CB2_HandleStartMultiPartnerBattle(void) u8 taskId; ResetBlockReceivedFlags(); - sub_8036EB8(2, playerMultiplayerId); + FindLinkBattleMaster(2, playerMultiplayerId); SetAllPlayersBerryData(); taskId = CreateTask(InitLinkBattleVsScreen, 0); gTasks[taskId].data[1] = 0x10E; @@ -1191,7 +1202,7 @@ static void CB2_HandleStartMultiPartnerBattle(void) } break; case 13: - sub_8032768(); + InitBattleControllers(); sub_8184E58(); gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -1229,7 +1240,7 @@ static void CB2_HandleStartMultiPartnerBattle(void) SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - gBattleTypeFlags |= BATTLE_TYPE_20; + gBattleTypeFlags |= BATTLE_TYPE_LINK_IN_BATTLE; } } break; @@ -1428,12 +1439,13 @@ static void CB2_HandleStartMultiBattle(void) { if (IsLinkTaskFinished()) { - *(&gBattleStruct->field_180) = 0; - *(&gBattleStruct->field_181) = 3; - sub_8036A5C(); + // 0x300 + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureLo) = 0; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 3; + BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); gBattleCommunication[MULTIUSE_STATE]++; } if (gWirelessCommType) @@ -1452,7 +1464,7 @@ static void CB2_HandleStartMultiBattle(void) if ((GetBlockReceivedStatus() & 0xF) == 0xF) { ResetBlockReceivedFlags(); - sub_8036EB8(4, playerMultiplayerId); + FindLinkBattleMaster(4, playerMultiplayerId); SetAllPlayersBerryData(); SetDeoxysStats(); var = CreateTask(InitLinkBattleVsScreen, 0); @@ -1464,7 +1476,7 @@ static void CB2_HandleStartMultiBattle(void) for (id = 0; id < MAX_LINK_PLAYERS; id++) { - sub_8185F90(gBlockRecvBuffer[id][1]); + RecordedBattle_SetFrontierPassFlagFromHword(gBlockRecvBuffer[id][1]); switch (gLinkPlayers[id].id) { case 0: @@ -1628,7 +1640,7 @@ static void CB2_HandleStartMultiBattle(void) } break; case 7: - sub_8032768(); + InitBattleControllers(); sub_8184E58(); gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -1649,10 +1661,10 @@ static void CB2_HandleStartMultiBattle(void) case 8: if (IsLinkTaskFinished()) { - u32* ptr = (u32*)(&gBattleStruct->field_180); + u32* ptr = gBattleStruct->multiBuffer.battleVideo; ptr[0] = gBattleTypeFlags; ptr[1] = gRecordedBattleRngSeed; // UB: overwrites berry data - SendBlock(bitmask_all_link_players_but_self(), ptr, 8); + SendBlock(bitmask_all_link_players_but_self(), ptr, sizeof(gBattleStruct->multiBuffer.battleVideo)); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1682,7 +1694,7 @@ static void CB2_HandleStartMultiBattle(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gTrainerBattleOpponent_A = TRAINER_LINK_OPPONENT; - gBattleTypeFlags |= BATTLE_TYPE_20; + gBattleTypeFlags |= BATTLE_TYPE_LINK_IN_BATTLE; } } break; @@ -1701,7 +1713,7 @@ void BattleMainCB2(void) { gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; ResetPaletteFadeControl(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); SetMainCallback2(CB2_QuitRecordedBattle); } } @@ -1817,10 +1829,10 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir if (gTrainers[trainerNum].doubleBattle == TRUE) personalityValue = 0x80; - else if (gTrainers[trainerNum].encounterMusic_gender & 0x80) - personalityValue = 0x78; + else if (gTrainers[trainerNum].encounterMusic_gender & F_TRAINER_FEMALE) + personalityValue = 0x78; // Use personality more likely to result in a female Pokémon else - personalityValue = 0x88; + personalityValue = 0x88; // Use personality more likely to result in a male Pokémon for (j = 0; gTrainers[trainerNum].trainerName[j] != EOS; j++) nameHash += gTrainers[trainerNum].trainerName[j]; @@ -1835,7 +1847,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir nameHash += gSpeciesNames[partyData[i].species][j]; personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; + fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255; CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); break; } @@ -1847,7 +1859,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir nameHash += gSpeciesNames[partyData[i].species][j]; personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; + fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255; CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); for (j = 0; j < MAX_MON_MOVES; j++) @@ -1865,7 +1877,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir nameHash += gSpeciesNames[partyData[i].species][j]; personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; + fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255; CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); @@ -1879,7 +1891,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir nameHash += gSpeciesNames[partyData[i].species][j]; personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; + fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255; CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); @@ -1924,123 +1936,83 @@ void VBlankCB_Battle(void) ScanlineEffect_InitHBlankDmaTransfer(); } -void nullsub_17(struct Sprite *sprite) +void SpriteCB_VsLetterDummy(struct Sprite *sprite) { } -static void sub_8038B04(struct Sprite *sprite) +static void SpriteCB_VsLetter(struct Sprite *sprite) { if (sprite->data[0] != 0) - sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); + sprite->x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); else - sprite->pos1.x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8); + sprite->x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8); sprite->data[2] += 0x180; if (sprite->affineAnimEnded) { - FreeSpriteTilesByTag(0x2710); - FreeSpritePaletteByTag(0x2710); + FreeSpriteTilesByTag(ANIM_SPRITES_START); + FreeSpritePaletteByTag(ANIM_SPRITES_START); FreeSpriteOamMatrix(sprite); DestroySprite(sprite); } } -void sub_8038B74(struct Sprite *sprite) +void SpriteCB_VsLetterInit(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); - sprite->callback = sub_8038B04; + sprite->callback = SpriteCB_VsLetter; PlaySE(SE_MUGSHOT); } -static void sub_8038B94(u8 taskId) +static void BufferPartyVsScreenHealth_AtEnd(u8 taskId) { - struct Pokemon *sp4 = NULL; - struct Pokemon *sp8 = NULL; - u8 r2 = gBattleScripting.multiplayerId; - u32 r7; + struct Pokemon *party1 = NULL; + struct Pokemon *party2 = NULL; + u8 multiplayerId = gBattleScripting.multiplayerId; + u32 flags; s32 i; if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - switch (gLinkPlayers[r2].id) + switch (gLinkPlayers[multiplayerId].id) { case 0: case 2: - sp4 = gPlayerParty; - sp8 = gEnemyParty; + party1 = gPlayerParty; + party2 = gEnemyParty; break; case 1: case 3: - sp4 = gEnemyParty; - sp8 = gPlayerParty; + party1 = gEnemyParty; + party2 = gPlayerParty; break; } } else { - sp4 = gPlayerParty; - sp8 = gEnemyParty; + party1 = gPlayerParty; + party2 = gEnemyParty; } - r7 = 0; - for (i = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(&sp4[i], MON_DATA_SPECIES2); - u16 hp = GetMonData(&sp4[i], MON_DATA_HP); - u32 status = GetMonData(&sp4[i], MON_DATA_STATUS); + flags = 0; + BUFFER_PARTY_VS_SCREEN_STATUS(party1, flags, i); + gTasks[taskId].data[3] = flags; - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp != 0 && status == 0) - r7 |= 1 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (hp != 0 && (species == SPECIES_EGG || status != 0)) - r7 |= 2 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp == 0) - r7 |= 3 << i * 2; - } - gTasks[taskId].data[3] = r7; - - r7 = 0; - for (i = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(&sp8[i], MON_DATA_SPECIES2); - u16 hp = GetMonData(&sp8[i], MON_DATA_HP); - u32 status = GetMonData(&sp8[i], MON_DATA_STATUS); - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp != 0 && status == 0) - r7 |= 1 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (hp != 0 && (species == SPECIES_EGG || status != 0)) - r7 |= 2 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp == 0) - r7 |= 3 << i * 2; - } - gTasks[taskId].data[4] = r7; + flags = 0; + BUFFER_PARTY_VS_SCREEN_STATUS(party2, flags, i); + gTasks[taskId].data[4] = flags; } -void sub_8038D64(void) +void CB2_InitEndLinkBattle(void) { s32 i; u8 taskId; SetHBlankCallback(NULL); SetVBlankCallback(NULL); - gBattleTypeFlags &= ~(BATTLE_TYPE_20); + gBattleTypeFlags &= ~(BATTLE_TYPE_LINK_IN_BATTLE); if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { @@ -2053,12 +2025,12 @@ void sub_8038D64(void) { CpuFill32(0, (void*)(VRAM), VRAM_SIZE); SetGpuReg(REG_OFFSET_MOSAIC, 0); - SetGpuReg(REG_OFFSET_WIN0H, 0xF0); - SetGpuReg(REG_OFFSET_WIN0V, 0x5051); + SetGpuReg(REG_OFFSET_WIN0H, DISPLAY_WIDTH); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1)); SetGpuReg(REG_OFFSET_WININ, 0); SetGpuReg(REG_OFFSET_WINOUT, 0); - gBattle_WIN0H = 0xF0; - gBattle_WIN0V = 0x5051; + gBattle_WIN0H = DISPLAY_WIDTH; + gBattle_WIN0V = WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1); ScanlineEffect_Clear(); i = 0; @@ -2093,24 +2065,26 @@ void sub_8038D64(void) ResetSpriteData(); ResetTasks(); DrawBattleEntryBackground(); - SetGpuReg(REG_OFFSET_WINOUT, 0x37); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 4; SetVBlankCallback(VBlankCB_Battle); + // Show end Vs screen with battle results taskId = CreateTask(InitLinkBattleVsScreen, 0); gTasks[taskId].data[1] = 0x10E; gTasks[taskId].data[2] = 0x5A; gTasks[taskId].data[5] = 1; - sub_8038B94(taskId); - SetMainCallback2(sub_8038F14); + BufferPartyVsScreenHealth_AtEnd(taskId); + + SetMainCallback2(CB2_EndLinkBattle); gBattleCommunication[MULTIUSE_STATE] = 0; } } -static void sub_8038F14(void) +static void CB2_EndLinkBattle(void) { - sub_8038F34(); + EndLinkBattleInSteps(); AnimateSprites(); BuildOamBuffer(); RunTextPrinters(); @@ -2118,7 +2092,7 @@ static void sub_8038F14(void) RunTasks(); } -static void sub_8038F34(void) +static void EndLinkBattleInSteps(void) { s32 i; @@ -2134,7 +2108,7 @@ static void sub_8038F34(void) case 1: if (--gBattleCommunication[1] == 0) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -2143,7 +2117,7 @@ static void sub_8038F34(void) { u8 monsCount; - gMain.field_439_x4 = sub_8185FAC(); + gMain.anyLinkBattlerHasFrontierPass = RecordedBattle_GetFrontierPassFlag(); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) monsCount = 4; @@ -2159,7 +2133,7 @@ static void sub_8038F34(void) FreeAllWindowBuffers(); SetMainCallback2(sub_80392A8); } - else if (!gMain.field_439_x4) + else if (!gMain.anyLinkBattlerHasFrontierPass) { SetMainCallback2(gMain.savedCallback); FreeBattleResources(); @@ -2168,7 +2142,7 @@ static void sub_8038F34(void) } else if (gReceivedRemoteLinkPlayers == 0) { - CreateTask(sub_80B3AF8, 5); + CreateTask(Task_ReconnectWithLinkPlayers, 5); gBattleCommunication[MULTIUSE_STATE]++; } else @@ -2191,7 +2165,7 @@ static void sub_8038F34(void) for (i = 0; i < 2; i++) LoadChosenBattleElement(i); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gBattleCommunication[MULTIUSE_STATE]++; break; case 4: @@ -2199,7 +2173,7 @@ static void sub_8038F34(void) gBattleCommunication[MULTIUSE_STATE]++; break; case 5: - if (!FuncIsActiveTask(sub_80B3AF8)) + if (!FuncIsActiveTask(Task_ReconnectWithLinkPlayers)) gBattleCommunication[MULTIUSE_STATE]++; break; case 6: @@ -2223,9 +2197,9 @@ static void sub_8038F34(void) gBattleCommunication[MULTIUSE_STATE]++; break; case 9: - if (!gMain.field_439_x4 || gWirelessCommType || gReceivedRemoteLinkPlayers != 1) + if (!gMain.anyLinkBattlerHasFrontierPass || gWirelessCommType || gReceivedRemoteLinkPlayers != 1) { - gMain.field_439_x4 = 0; + gMain.anyLinkBattlerHasFrontierPass = 0; SetMainCallback2(gMain.savedCallback); FreeBattleResources(); FreeBattleSpritesData(); @@ -2235,7 +2209,7 @@ static void sub_8038F34(void) } } -u32 sub_80391E0(u8 arrayId, u8 caseId) +u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId) { u32 ret = 0; @@ -2256,7 +2230,7 @@ u32 sub_80391E0(u8 arrayId, u8 caseId) case 4: ret = gBattleBgTemplates[arrayId].paletteMode; break; - case 5: + case 5: // Only this case is used ret = gBattleBgTemplates[arrayId].priority; break; case 6: @@ -2296,7 +2270,7 @@ static void sub_80392A8(void) gReservedSpritePaletteCount = 4; SetVBlankCallback(VBlankCB_Battle); SetMainCallback2(sub_803937C); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gBattleCommunication[MULTIUSE_STATE] = 0; } @@ -2321,12 +2295,12 @@ static void sub_803939C(void) gBattleCommunication[MULTIUSE_STATE]++; break; case 1: - if (gMain.field_439_x4 && gReceivedRemoteLinkPlayers == 0) - CreateTask(sub_80B3AF8, 5); + if (gMain.anyLinkBattlerHasFrontierPass && gReceivedRemoteLinkPlayers == 0) + CreateTask(Task_ReconnectWithLinkPlayers, 5); gBattleCommunication[MULTIUSE_STATE]++; break; case 2: - if (!FuncIsActiveTask(sub_80B3AF8)) + if (!FuncIsActiveTask(Task_ReconnectWithLinkPlayers)) gBattleCommunication[MULTIUSE_STATE]++; break; case 3: @@ -2391,7 +2365,7 @@ static void sub_803939C(void) if (IsLinkTaskFinished() == TRUE) { HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); - if (gMain.field_439_x4) + if (gMain.anyLinkBattlerHasFrontierPass) { SetLinkStandbyCallback(); BattlePutTextOnWindow(gText_LinkStandby3, 0); @@ -2402,15 +2376,15 @@ static void sub_803939C(void) case 8: if (--gBattleCommunication[1] == 0) { - if (gMain.field_439_x4 && !gWirelessCommType) + if (gMain.anyLinkBattlerHasFrontierPass && !gWirelessCommType) SetCloseLinkCallback(); gBattleCommunication[MULTIUSE_STATE]++; } break; case 9: - if (!gMain.field_439_x4 || gWirelessCommType || gReceivedRemoteLinkPlayers != 1) + if (!gMain.anyLinkBattlerHasFrontierPass || gWirelessCommType || gReceivedRemoteLinkPlayers != 1) { - gMain.field_439_x4 = 0; + gMain.anyLinkBattlerHasFrontierPass = 0; if (!gPaletteFade.active) { SetMainCallback2(gMain.savedCallback); @@ -2440,7 +2414,7 @@ static void sub_803939C(void) case 11: if (IsLinkTaskFinished() == TRUE && !IsTextPrinterActive(0) && --gBattleCommunication[1] == 0) { - if (gMain.field_439_x4) + if (gMain.anyLinkBattlerHasFrontierPass) { SetLinkStandbyCallback(); BattlePutTextOnWindow(gText_LinkStandby3, 0); @@ -2452,11 +2426,11 @@ static void sub_803939C(void) case 7: if (!IsTextPrinterActive(0)) { - if (gMain.field_439_x4) + if (gMain.anyLinkBattlerHasFrontierPass) { if (IsLinkTaskFinished() == TRUE) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattleCommunication[1] = 0x20; gBattleCommunication[MULTIUSE_STATE] = 8; } @@ -2464,7 +2438,7 @@ static void sub_803939C(void) } else { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattleCommunication[1] = 0x20; gBattleCommunication[MULTIUSE_STATE] = 8; } @@ -2487,7 +2461,7 @@ static void TryCorrectShedinjaLanguage(struct Pokemon *mon) } } -u32 sub_80397C4(u32 setId, u32 tableId) +u32 GetBattleWindowTemplatePixelWidth(u32 setId, u32 tableId) { return gBattleWindowTemplates[setId][tableId].width * 8; } @@ -2509,8 +2483,8 @@ static void SpriteCb_MoveWildMonToRight(struct Sprite *sprite) { if ((gIntroSlideFlags & 1) == 0) { - sprite->pos2.x += 2; - if (sprite->pos2.x == 0) + sprite->x2 += 2; + if (sprite->x2 == 0) { sprite->callback = SpriteCb_WildMonShowHealthbox; } @@ -2521,7 +2495,7 @@ static void SpriteCb_WildMonShowHealthbox(struct Sprite *sprite) { if (sprite->animEnded) { - sub_8076918(sprite->sBattler); + StartHealthboxSlideIn(sprite->sBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]); sprite->callback = SpriteCb_WildMonAnimate; StartSpriteAnimIfDifferent(sprite, 0); @@ -2581,7 +2555,7 @@ void SpriteCB_FaintOpponentMon(struct Sprite *sprite) if (species == SPECIES_UNOWN) { u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY); - u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); + u16 unownForm = GET_UNOWN_LETTER(personalityValue); u16 unownSpecies; if (unownForm == 0) @@ -2616,7 +2590,7 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite) if (--sprite->data[4] == 0) { sprite->data[4] = 2; - sprite->pos2.y += 8; // Move the sprite down. + sprite->y2 += 8; // Move the sprite down. if (--sprite->data[3] < 0) { FreeSpriteOamMatrix(sprite); @@ -2662,7 +2636,7 @@ void SpriteCb_OpponentMonFromBall(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - if (!(gHitMarker & HITMARKER_NO_ANIMATIONS) || gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (!(gHitMarker & HITMARKER_NO_ANIMATIONS) || gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { if (HasTwoFramesAnimation(sprite->sSpeciesId)) StartSpriteAnim(sprite, 1); @@ -2671,17 +2645,18 @@ void SpriteCb_OpponentMonFromBall(struct Sprite *sprite) } } -void sub_8039BB4(struct Sprite *sprite) +// This callback is frequently overwritten by SpriteCB_TrainerSlideIn +void SpriteCB_BattleSpriteStartSlideLeft(struct Sprite *sprite) { - sprite->callback = oac_poke_ally_; + sprite->callback = SpriteCB_BattleSpriteSlideLeft; } -static void oac_poke_ally_(struct Sprite *sprite) +static void SpriteCB_BattleSpriteSlideLeft(struct Sprite *sprite) { if (!(gIntroSlideFlags & 1)) { - sprite->pos2.x -= 2; - if (sprite->pos2.x == 0) + sprite->x2 -= 2; + if (sprite->x2 == 0) { sprite->callback = SpriteCallbackDummy_3; sprite->data[1] = 0; @@ -2689,7 +2664,8 @@ static void oac_poke_ally_(struct Sprite *sprite) } } -void sub_80105DC(struct Sprite *sprite) +// Unused +static void sub_80105DC(struct Sprite *sprite) { sprite->callback = SpriteCallbackDummy_3; } @@ -2698,15 +2674,21 @@ static void SpriteCallbackDummy_3(struct Sprite *sprite) { } -void sub_8039C00(struct Sprite *sprite) +#define sSpeedX data[1] +#define sSpeedY data[2] + +void SpriteCB_FaintSlideAnim(struct Sprite *sprite) { if (!(gIntroSlideFlags & 1)) { - sprite->pos2.x += sprite->data[1]; - sprite->pos2.y += sprite->data[2]; + sprite->x2 += sprite->sSpeedX; + sprite->y2 += sprite->sSpeedY; } } +#undef sSpeedX +#undef sSpeedY + #define sSinIndex data[3] #define sDelta data[4] #define sAmplitude data[5] @@ -2751,8 +2733,8 @@ void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude) gSprites[invisibleSpriteId].sBouncerSpriteId = bouncerSpriteId; gSprites[invisibleSpriteId].sWhich = which; gSprites[invisibleSpriteId].sBattler = battler; - gSprites[bouncerSpriteId].pos2.x = 0; - gSprites[bouncerSpriteId].pos2.y = 0; + gSprites[bouncerSpriteId].x2 = 0; + gSprites[bouncerSpriteId].y2 = 0; } void EndBounceEffect(u8 battler, u8 which) @@ -2778,8 +2760,8 @@ void EndBounceEffect(u8 battler, u8 which) gBattleSpritesDataPtr->healthBoxesData[battler].battlerIsBouncing = 0; } - gSprites[bouncerSpriteId].pos2.x = 0; - gSprites[bouncerSpriteId].pos2.y = 0; + gSprites[bouncerSpriteId].x2 = 0; + gSprites[bouncerSpriteId].y2 = 0; } static void SpriteCB_BounceEffect(struct Sprite *sprite) @@ -2788,12 +2770,12 @@ static void SpriteCB_BounceEffect(struct Sprite *sprite) s32 index = sprite->sSinIndex; s32 y = Sin(index, sprite->sAmplitude) + sprite->sAmplitude; - gSprites[bouncerSpriteId].pos2.y = y; + gSprites[bouncerSpriteId].y2 = y; sprite->sSinIndex = (sprite->sSinIndex + sprite->sDelta) & 0xFF; bouncerSpriteId = GetMegaIndicatorSpriteId(sprite->sBouncerSpriteId); if (sprite->sWhich == BOUNCE_HEALTHBOX && bouncerSpriteId != 0xFF) - gSprites[bouncerSpriteId].pos2.y = y; + gSprites[bouncerSpriteId].y2 = y; } #undef sSinIndex @@ -2827,7 +2809,7 @@ void sub_8039E9C(struct Sprite *sprite) sprite->centerToCornerVecX = gUnknown_0831ACE0[sprite->animCmdIndex]; } -void nullsub_20(void) +void BeginBattleIntroDummy(void) { } @@ -2902,7 +2884,7 @@ static void BattleStartClearSetData(void) if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && gSaveBlock2Ptr->optionsBattleSceneOff == TRUE) gHitMarker |= HITMARKER_NO_ANIMATIONS; } - else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && GetBattleSceneInRecordedBattle()) + else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) && GetBattleSceneInRecordedBattle()) { gHitMarker |= HITMARKER_NO_ANIMATIONS; } @@ -2947,6 +2929,9 @@ static void BattleStartClearSetData(void) gBattleStruct->arenaLostOpponentMons = 0; gBattleStruct->mega.triggerSpriteId = 0xFF; + + for (i = 0; i < PARTY_SIZE; i++) + gBattleStruct->itemStolen[i].originalItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); } void SwitchInClearSetData(void) @@ -3050,6 +3035,7 @@ void SwitchInClearSetData(void) ClearBattlerMoveHistory(gActiveBattler); ClearBattlerAbilityHistory(gActiveBattler); + ClearBattlerItemEffectHistory(gActiveBattler); } void FaintClearSetData(void) @@ -3138,7 +3124,8 @@ void FaintClearSetData(void) ClearBattlerMoveHistory(gActiveBattler); ClearBattlerAbilityHistory(gActiveBattler); - UndoFormChange(gBattlerPartyIndexes[gActiveBattler], GET_BATTLER_SIDE(gActiveBattler)); + ClearBattlerItemEffectHistory(gActiveBattler); + UndoFormChange(gBattlerPartyIndexes[gActiveBattler], GET_BATTLER_SIDE(gActiveBattler), FALSE); if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) UndoMegaEvolution(gBattlerPartyIndexes[gActiveBattler]); } @@ -3335,7 +3322,7 @@ static void DoBattleIntro(void) } break; case 9: // print opponent sends out - if (gBattleTypeFlags & BATTLE_TYPE_x2000000 && !(gBattleTypeFlags & BATTLE_TYPE_x80000000)) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && !(gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)) PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)); else PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)); @@ -3346,7 +3333,7 @@ static void DoBattleIntro(void) (*state)++; break; case 11: // first opponent's mon send out animation - if (gBattleTypeFlags & BATTLE_TYPE_x2000000 && !(gBattleTypeFlags & BATTLE_TYPE_x80000000)) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && !(gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)) gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); @@ -3360,7 +3347,7 @@ static void DoBattleIntro(void) case 13: // second opponent's mon send out if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS) && !BATTLE_TWO_VS_ONE_OPPONENT) { - if (gBattleTypeFlags & BATTLE_TYPE_x2000000 && !(gBattleTypeFlags & BATTLE_TYPE_x80000000)) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && !(gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)) gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); else gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); @@ -3368,7 +3355,7 @@ static void DoBattleIntro(void) BtlController_EmitIntroTrainerBallThrow(0); MarkBattlerForControllerExec(gActiveBattler); } - if (B_FAST_INTRO && !(gBattleTypeFlags & (BATTLE_TYPE_RECORDED | BATTLE_TYPE_x2000000 | BATTLE_TYPE_x80000000 | BATTLE_TYPE_LINK))) + if (B_FAST_INTRO && !(gBattleTypeFlags & (BATTLE_TYPE_RECORDED | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_RECORDED_IS_MASTER | BATTLE_TYPE_LINK))) *state = 15; // Print at the same time as trainer sends out second mon. else (*state)++; @@ -3384,7 +3371,7 @@ static void DoBattleIntro(void) case 16: // print player sends out if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) { - if (gBattleTypeFlags & BATTLE_TYPE_x2000000 && !(gBattleTypeFlags & BATTLE_TYPE_x80000000)) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && !(gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)) gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); @@ -3392,7 +3379,7 @@ static void DoBattleIntro(void) // A hack that makes fast intro work in trainer battles too. if (B_FAST_INTRO && gBattleTypeFlags & BATTLE_TYPE_TRAINER - && !(gBattleTypeFlags & (BATTLE_TYPE_RECORDED | BATTLE_TYPE_x2000000 | BATTLE_TYPE_x80000000 | BATTLE_TYPE_LINK)) + && !(gBattleTypeFlags & (BATTLE_TYPE_RECORDED | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_RECORDED_IS_MASTER | BATTLE_TYPE_LINK)) && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_SIDE]].callback == SpriteCallbackDummy) { return; @@ -3405,7 +3392,7 @@ static void DoBattleIntro(void) case 17: // wait for player send out message if (!(gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleControllerExecFlags)) { - if (gBattleTypeFlags & BATTLE_TYPE_x2000000 && !(gBattleTypeFlags & BATTLE_TYPE_x80000000)) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && !(gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)) gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); @@ -3415,7 +3402,7 @@ static void DoBattleIntro(void) } break; case 18: // player 1 send out - if (gBattleTypeFlags & BATTLE_TYPE_x2000000 && !(gBattleTypeFlags & BATTLE_TYPE_x80000000)) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && !(gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)) gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); @@ -3427,7 +3414,7 @@ static void DoBattleIntro(void) case 19: // player 2 send out if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_INGAME_PARTNER)) { - if (gBattleTypeFlags & BATTLE_TYPE_x2000000 && !(gBattleTypeFlags & BATTLE_TYPE_x80000000)) + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && !(gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER)) gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); else gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); @@ -3446,7 +3433,7 @@ static void DoBattleIntro(void) && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_TRAINER_HILL))) { HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); @@ -3489,7 +3476,13 @@ static void TryDoEventsBeforeFirstTurn(void) gBattleStruct->overworldWeatherDone = TRUE; return; } - + + if (!gBattleStruct->terrainDone && AbilityBattleEffects(0, 0, 0, ABILITYEFFECT_SWITCH_IN_TERRAIN, 0) != 0) + { + gBattleStruct->terrainDone = TRUE; + return; + } + // Totem boosts for (i = 0; i < gBattlersCount; i++) { @@ -3501,7 +3494,7 @@ static void TryDoEventsBeforeFirstTurn(void) } } memset(gTotemBoosts, 0, sizeof(gTotemBoosts)); // erase all totem boosts just to be safe - + // Check all switch in abilities happening from the fastest mon to slowest. while (gBattleStruct->switchInAbilitiesCounter < gBattlersCount) { @@ -3519,7 +3512,7 @@ static void TryDoEventsBeforeFirstTurn(void) if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattlerByTurnOrder[gBattleStruct->switchInItemsCounter++], FALSE)) return; } - + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { *(gBattleStruct->monToSwitchIntoId + i) = PARTY_SIZE; @@ -3661,13 +3654,13 @@ u8 IsRunningFromBattleImpossible(void) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) // Cannot ever run from saving Birch's battle. { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DONT_LEAVE_BIRCH; return 1; } if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT && WILD_DOUBLE_BATTLE && IsBattlerAlive(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT))) // The second pokemon cannot run from a double wild battle, unless it's the only alive mon. { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_ESCAPE; return 1; } @@ -3682,13 +3675,13 @@ u8 IsRunningFromBattleImpossible(void) { gBattleScripting.battler = i - 1; gLastUsedAbility = gBattleMons[i - 1].ability; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PREVENTS_ESCAPE; return 2; } if (!CanBattlerEscape(gActiveBattler)) { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_ESCAPE; return 1; } return 0; @@ -3794,7 +3787,7 @@ static void HandleTurnActionSelectionState(void) } break; case STATE_WAIT_ACTION_CHOSEN: // Try to perform an action. - if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF << 28) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 12)))) { RecordedBattle_SetBattlerAction(gActiveBattler, gBattleResources->bufferB[gActiveBattler][1]); gChosenActionByBattler[gActiveBattler] = gBattleResources->bufferB[gActiveBattler][1]; @@ -3845,7 +3838,7 @@ static void HandleTurnActionSelectionState(void) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER_NO_PYRAMID | BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_x2000000)) + | BATTLE_TYPE_RECORDED_LINK)) { RecordedBattle_ClearBattlerAction(gActiveBattler, 1); gSelectionBattleScripts[gActiveBattler] = BattleScript_ActionSelectionItemsCantBeUsed; @@ -3953,7 +3946,7 @@ static void HandleTurnActionSelectionState(void) return; } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER - && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) && gBattleResources->bufferB[gActiveBattler][1] == B_ACTION_RUN) { BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); @@ -3975,7 +3968,7 @@ static void HandleTurnActionSelectionState(void) } break; case STATE_WAIT_ACTION_CASE_CHOSEN: - if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF << 28) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 12)))) { switch (gChosenActionByBattler[gActiveBattler]) { @@ -4090,7 +4083,11 @@ static void HandleTurnActionSelectionState(void) } break; case STATE_WAIT_ACTION_CONFIRMED_STANDBY: - if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) + | (0xF << 28) + | (gBitTable[gActiveBattler] << 4) + | (gBitTable[gActiveBattler] << 8) + | (gBitTable[gActiveBattler] << 12)))) { if (AllAtActionConfirmed()) i = TRUE; @@ -4112,7 +4109,7 @@ static void HandleTurnActionSelectionState(void) } break; case STATE_WAIT_ACTION_CONFIRMED: - if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF << 28) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 12)))) { gBattleCommunication[ACTIONS_CONFIRMED_COUNT]++; } @@ -4126,7 +4123,7 @@ static void HandleTurnActionSelectionState(void) { gBattlerAttacker = gActiveBattler; gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; - if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF << 28) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 12)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } @@ -4134,7 +4131,7 @@ static void HandleTurnActionSelectionState(void) } break; case STATE_WAIT_SET_BEFORE_ACTION: - if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF << 28) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 12)))) { gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; } @@ -4158,7 +4155,7 @@ static void HandleTurnActionSelectionState(void) { gBattlerAttacker = gActiveBattler; gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; - if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF << 28) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 12)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } @@ -4258,7 +4255,7 @@ u32 GetBattlerTotalSpeedStat(u8 battlerId) speed /= gStatStageRatios[gBattleMons[battlerId].statStages[STAT_SPEED]][1]; // player's badge boost - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_FRONTIER)) && ShouldGetStatBadgeBoost(FLAG_BADGE03_GET, battlerId) && GetBattlerSide(battlerId) == B_SIDE_PLAYER) { @@ -4266,7 +4263,7 @@ u32 GetBattlerTotalSpeedStat(u8 battlerId) } // item effects - if (GetBattlerHoldEffect(battlerId, FALSE) == HOLD_EFFECT_MACHO_BRACE || GetBattlerHoldEffect(battlerId, FALSE) == HOLD_EFFECT_POWER_ITEM) + if (holdEffect == HOLD_EFFECT_MACHO_BRACE || holdEffect == HOLD_EFFECT_POWER_ITEM) speed /= 2; else if (holdEffect == HOLD_EFFECT_IRON_BALL) speed /= 2; @@ -4344,20 +4341,23 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) u8 strikesFirst = 0; u32 speedBattler1 = 0, speedBattler2 = 0; u32 holdEffectBattler1 = 0, holdEffectBattler2 = 0; - bool32 quickClawBattler1 = FALSE, quickClawBattler2 = FALSE; s8 priority1 = 0, priority2 = 0; speedBattler1 = GetBattlerTotalSpeedStat(battler1); holdEffectBattler1 = GetBattlerHoldEffect(battler1, TRUE); - if (holdEffectBattler1 == HOLD_EFFECT_QUICK_CLAW - && gRandomTurnNumber < (0xFFFF * GetBattlerHoldEffectParam(battler1)) / 100) - quickClawBattler1 = TRUE; + if ((holdEffectBattler1 == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * GetBattlerHoldEffectParam(battler1)) / 100) + || (!IsAbilityOnOpposingSide(battler1, ABILITY_UNNERVE) + && holdEffectBattler1 == HOLD_EFFECT_CUSTAP_BERRY + && HasEnoughHpToEatBerry(battler1, 4, gBattleMons[battler1].item))) + gProtectStructs[battler1].custap = TRUE; speedBattler2 = GetBattlerTotalSpeedStat(battler2); holdEffectBattler2 = GetBattlerHoldEffect(battler2, TRUE); - if (holdEffectBattler2 == HOLD_EFFECT_QUICK_CLAW - && gRandomTurnNumber < (0xFFFF * GetBattlerHoldEffectParam(battler2)) / 100) - quickClawBattler2 = TRUE; + if ((holdEffectBattler2 == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * GetBattlerHoldEffectParam(battler2)) / 100) + || (!IsAbilityOnOpposingSide(battler2, ABILITY_UNNERVE) + && holdEffectBattler2 == HOLD_EFFECT_CUSTAP_BERRY + && HasEnoughHpToEatBerry(battler2, 4, gBattleMons[battler2].item))) + gProtectStructs[battler2].custap = TRUE; if (!ignoreChosenMoves) { @@ -4369,13 +4369,13 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) if (priority1 == priority2) { - // QUICK CLAW - always first + // QUICK CLAW / CUSTAP - always first // LAGGING TAIL - always last // STALL - always last - if (quickClawBattler1 && !quickClawBattler2) + if (gProtectStructs[battler1].custap && !gProtectStructs[battler2].custap) strikesFirst = 0; - else if (quickClawBattler2 && !quickClawBattler1) + else if (gProtectStructs[battler2].custap && !gProtectStructs[battler1].custap) strikesFirst = 1; else if (holdEffectBattler1 == HOLD_EFFECT_LAGGING_TAIL && holdEffectBattler2 != HOLD_EFFECT_LAGGING_TAIL) strikesFirst = 1; @@ -4612,6 +4612,45 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) } } + gBattleMainFunc = CheckQuickClaw_CustapBerryActivation; + gBattleStruct->quickClawBattlerId = 0; +} + +static void CheckQuickClaw_CustapBerryActivation(void) +{ + u32 i; + + if (!(gHitMarker & HITMARKER_RUN)) + { + while (gBattleStruct->quickClawBattlerId < gBattlersCount) + { + gActiveBattler = gBattlerAttacker = gBattleStruct->quickClawBattlerId; + gBattleStruct->quickClawBattlerId++; + if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_MOVE + && gChosenMoveByBattler[gActiveBattler] != MOVE_FOCUS_PUNCH // quick claw message doesn't need to activate here + && gProtectStructs[gActiveBattler].custap + && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) + && !(gDisableStructs[gBattlerAttacker].truantCounter) + && !(gProtectStructs[gActiveBattler].noValidMoves)) + { + gProtectStructs[gActiveBattler].custap = FALSE; + gLastUsedItem = gBattleMons[gActiveBattler].item; + if (GetBattlerHoldEffect(gActiveBattler, FALSE) == HOLD_EFFECT_CUSTAP_BERRY) + { + // don't record berry since its gone now + BattleScriptExecute(BattleScript_CustapBerryActivation); + } + else + { + RecordItemEffectBattle(gActiveBattler, GetBattlerHoldEffect(gActiveBattler, FALSE)); + BattleScriptExecute(BattleScript_QuickClawActivation); + } + return; + } + } + } + + // setup stuff before turns/actions TryClearRageAndFuryCutter(); gCurrentTurnActionNumber = 0; gCurrentActionFuncId = gActionsByTurnOrder[0]; @@ -4656,7 +4695,7 @@ static void HandleEndTurn_BattleWon(void) { gCurrentActionFuncId = 0; - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { gSpecialVar_Result = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome; @@ -4714,7 +4753,7 @@ static void HandleEndTurn_BattleLost(void) { gCurrentActionFuncId = 0; - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { @@ -4726,7 +4765,7 @@ static void HandleEndTurn_BattleLost(void) } else { - gBattlescriptCurrInstr = BattleScript_82DAA0B; + gBattlescriptCurrInstr = BattleScript_FrontierLinkBattleLost; gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } } @@ -4797,7 +4836,7 @@ static void HandleEndTurn_FinishBattle(void) if (gCurrentActionFuncId == B_ACTION_TRY_FINISH || gCurrentActionFuncId == B_ACTION_FINISHED) { if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_EREADER_TRAINER @@ -4820,11 +4859,11 @@ static void HandleEndTurn_FinishBattle(void) } } } - PutPokemonTodayCaughtOnAir(); + TryPutPokemonTodayOnAir(); } if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI @@ -4833,16 +4872,20 @@ static void HandleEndTurn_FinishBattle(void) | BATTLE_TYPE_WALLY_TUTORIAL)) && gBattleResults.shinyWildMon) { - sub_80EE184(); + TryPutBreakingNewsOnAir(); } sub_8186444(); BeginFastPaletteFade(3); FadeOutMapMusic(5); + #if B_TRAINERS_KNOCK_OFF_ITEMS + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + TryRestoreStolenItems(); + #endif for (i = 0; i < PARTY_SIZE; i++) { UndoMegaEvolution(i); - UndoFormChange(i, B_SIDE_PLAYER); + UndoFormChange(i, B_SIDE_PLAYER, FALSE); } gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions; gCB2_AfterEvolution = BattleMainCB2; @@ -4895,7 +4938,7 @@ static void TryEvolvePokemon(void) levelUpBits &= ~(gBitTable[i]); gLeveledUpInBattle = levelUpBits; - species = GetEvolutionTargetSpecies(&gPlayerParty[i], 0, levelUpBits); + species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_NORMAL, levelUpBits); if (species != SPECIES_NONE) { FreeAllWindowBuffers(); @@ -4934,7 +4977,12 @@ static void ReturnFromBattleToOverworld(void) if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) { UpdateRoamerHPStatus(&gEnemyParty[0]); + +#ifndef BUGFIX if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT) +#else + if ((gBattleOutcome == B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT) // Bug: When Roar is used by roamer, gBattleOutcome is B_OUTCOME_PLAYER_TELEPORTED (5). +#endif // & with B_OUTCOME_WON (1) will return TRUE and deactivates the roamer. SetRoamerInactive(); } @@ -5072,13 +5120,13 @@ void SetTypeBeforeUsingMove(u16 move, u8 battlerAtk) // special to set a field's totem boost(s) // inputs: -// var8000: battlerId +// var8000: battlerId // var8001 - var8007: stat changes void SetTotemBoost(void) { u8 battlerId = gSpecialVar_0x8000; u8 i; - + for (i = 0; i < (NUM_BATTLE_STATS - 1); i++) { if (*(&gSpecialVar_0x8001 + i)) diff --git a/src/battle_message.c b/src/battle_message.c index 90e8c89671..19468f168e 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -22,7 +22,6 @@ #include "constants/abilities.h" #include "constants/battle_dome.h" #include "constants/battle_string_ids.h" -#include "constants/berry.h" #include "constants/frontier_util.h" #include "constants/items.h" #include "constants/moves.h" @@ -182,7 +181,7 @@ static const u8 sText_PkmnStayedAwakeUsing[] = _("{B_DEF_NAME_WITH_PREFIX} staye static const u8 sText_PkmnStoringEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} is storing\nenergy!"); static const u8 sText_PkmnUnleashedEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} unleashed\nenergy!"); static const u8 sText_PkmnFatigueConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} became\nconfused due to fatigue!"); -static const u8 sText_PkmnPickedUpItem[] = _("{B_PLAYER_NAME} picked up\n¥{B_BUFF1}!\p"); +static const u8 sText_PlayerPickedUpMoney[] = _("{B_PLAYER_NAME} picked up\n¥{B_BUFF1}!\p"); static const u8 sText_PkmnUnaffected[] = _("{B_DEF_NAME_WITH_PREFIX} is\nunaffected!"); static const u8 sText_PkmnTransformedInto[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto {B_BUFF1}!"); static const u8 sText_PkmnMadeSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} made\na SUBSTITUTE!"); @@ -309,11 +308,11 @@ const u8 gText_StatSharply[] = _("sharply "); const u8 gText_StatRose[] = _("rose!"); static const u8 sText_StatHarshly[] = _("harshly "); static const u8 sText_StatFell[] = _("fell!"); -static const u8 sText_PkmnsStatChanged[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); -const u8 gText_PkmnsStatChanged2[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); -static const u8 sText_UsingXTheYOfZN[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); -static const u8 sText_PkmnsStatChanged3[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); -static const u8 sText_PkmnsStatChanged4[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); +static const u8 sText_AttackersStatRose[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_DefendersStatRose[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); +static const u8 sText_UsingItemTheStatOfPkmnRose[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); +static const u8 sText_AttackersStatFell[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); +static const u8 sText_DefendersStatFell[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats won't\ngo any higher!"); static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!"); static const u8 sText_CriticalHit[] = _("A critical hit!"); @@ -343,9 +342,9 @@ static const u8 sText_ButItFailed[] = _("But it failed!"); static const u8 sText_ItHurtConfusion[] = _("It hurt itself in its\nconfusion!"); static const u8 sText_MirrorMoveFailed[] = _("The MIRROR MOVE failed!"); static const u8 sText_StartedToRain[] = _("It started to rain!"); -static const u8 sText_DownpourStarted[] = _("A downpour started!"); +static const u8 sText_DownpourStarted[] = _("A downpour started!"); // corresponds to DownpourText in pokegold and pokecrystal and is used by Rain Dance in GSC static const u8 sText_RainContinues[] = _("Rain continues to fall."); -static const u8 sText_DownpourContinues[] = _("The downpour continues."); +static const u8 sText_DownpourContinues[] = _("The downpour continues."); // unused static const u8 sText_RainStopped[] = _("The rain stopped."); static const u8 sText_SandstormBrewed[] = _("A sandstorm brewed!"); static const u8 sText_SandstormRages[] = _("The sandstorm rages."); @@ -387,7 +386,7 @@ static const u8 sText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEB static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_DING_DONG}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); static const u8 sText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); -static const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); +static const u8 sText_LegendaryPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppearedPause[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!{PAUSE 127}"); static const u8 sText_TwoWildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME} appeared!\p"); static const u8 sText_Trainer1WantsToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwould like to battle!\p"); @@ -545,7 +544,7 @@ static const u8 sText_VanishedInstantly[] =_("{B_ATK_NAME_WITH_PREFIX} vanished\ static const u8 sText_ProtectedTeam[] =_("{B_CURRENT_MOVE} protected\n{B_ATK_TEAM2} team!"); static const u8 sText_SharedItsGuard[] =_("{B_ATK_NAME_WITH_PREFIX} shared its\nguard with the target!"); static const u8 sText_SharedItsPower[] =_("{B_ATK_NAME_WITH_PREFIX} shared its\npower with the target!"); -static const u8 sText_SwapsDefAndSpDefOfAllPkmn[] =_("It created a bizarre area in which\nthe Defense and Sp.Def stats are swapped!"); +static const u8 sText_SwapsDefAndSpDefOfAllPkmn[] =_("It created a bizarre area in which the\nDefense and Sp.Def stats are swapped!"); static const u8 sText_BecameNimble[] =_("{B_ATK_NAME_WITH_PREFIX} became nimble!"); static const u8 sText_HurledIntoTheAir[] =_("{B_DEF_NAME_WITH_PREFIX} was hurled\ninto the air!"); static const u8 sText_HeldItemsLoseEffects[] =_("It created a bizarre area in which\nPokémon's held items lose their effects!"); @@ -569,8 +568,8 @@ static const u8 sText_TelekinesisEnds[] = _("{B_ATK_NAME_WITH_PREFIX} was freed\ static const u8 sText_TailwindEnds[] = _("{B_ATK_TEAM1} team's tailwind\n petered out!"); static const u8 sText_LuckyChantEnds[] = _("{B_ATK_TEAM1} team's Lucky Chant\n wore off!"); static const u8 sText_TrickRoomEnds[] = _("The twisted dimensions returned to\nnormal!"); -static const u8 sText_WonderRoomEnds[] = _("Wonder Room wore off, and\nDefense and Sp. Def stats returned to normal!"); -static const u8 sText_MagicRoomEnds[] = _("Magic Room wore off, and\nheld items' effects returned to normal!"); +static const u8 sText_WonderRoomEnds[] = _("Wonder Room wore off, and Defense\nand Sp. Def stats returned to normal!"); +static const u8 sText_MagicRoomEnds[] = _("Magic Room wore off, and held items'\neffects returned to normal!"); static const u8 sText_MudSportEnds[] = _("The effects of Mud Sport have faded."); static const u8 sText_WaterSportEnds[] = _("The effects of Water Sport have faded."); static const u8 sText_GravityEnds[] = _("Gravity returned to normal!"); @@ -601,7 +600,7 @@ static const u8 sText_SnowWarningHail[] = _("It started to hail!"); static const u8 sText_FriskActivates[] = _("{B_ATK_NAME_WITH_PREFIX} frisked {B_DEF_NAME_WITH_PREFIX} and\nfound its {B_LAST_ITEM}!"); static const u8 sText_UnnerveEnters[] = _("The opposing team is too nervous\nto eat Berries!"); static const u8 sText_HarvestBerry[] = _("{B_ATK_NAME_WITH_PREFIX} harvested\nits {B_LAST_ITEM}!"); -static const u8 sText_MoxieAtkRise[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} raised its Attack!"); +static const u8 sText_LastAbilityRaisedBuff1[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}\nraised its {B_BUFF1}!"); static const u8 sText_MagicBounceActivates[] = _("The {B_DEF_NAME_WITH_PREFIX} bounced the\n{B_ATK_NAME_WITH_PREFIX} back!"); static const u8 sText_ProteanTypeChange[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} transformed\nit into the {B_BUFF1} type!"); static const u8 sText_SymbiosisItemPass[] = _("{B_ATK_NAME_WITH_PREFIX} passed its {B_LAST_ITEM}\nto {B_SCR_ACTIVE_NAME_WITH_PREFIX} through {B_ATK_ABILITY}!"); @@ -635,7 +634,7 @@ static const u8 sText_GravityPreventsUsage[] = _("{B_ATK_NAME_WITH_PREFIX} can't static const u8 sText_HealBlockPreventsUsage[] = _("{B_ATK_NAME_WITH_PREFIX} was\nprevented from healing!\p"); static const u8 sText_MegaEvoReacting[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ITEM} is \nreacting to {B_ATK_TRAINER_NAME}'s Mega Ring!"); static const u8 sText_FerventWishReached[] = _("{B_ATK_TRAINER_NAME}'s fervent wish\nhas reached {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_MegaEvoEvolved[] = _("{B_ATK_NAME_WITH_PREFIX} has Mega\nEvolved into Mega {B_BUFF1}!"); +static const u8 sText_MegaEvoEvolved[] = _("{B_ATK_NAME_WITH_PREFIX} has Mega Evolved into\nMega {B_BUFF1}!"); static const u8 sText_drastically[] = _("drastically "); static const u8 sText_severely[] = _("severely "); static const u8 sText_Infestation[] = _("{B_DEF_NAME_WITH_PREFIX} has been afflicted\nwith an infestation by {B_ATK_NAME_WITH_PREFIX}!"); @@ -691,9 +690,27 @@ static const u8 sText_BattlerAbilityRaisedStat[] = _("{B_SCR_ACTIVE_NAME_WITH_PR static const u8 sText_ASandstormKickedUp[] = _("A sandstorm kicked up!"); static const u8 sText_PkmnsWillPerishIn3Turns[] = _("Both Pokémon will perish\nin three turns!"); static const u8 sText_AbilityRaisedStatDrastically[] = _("{B_DEF_ABILITY} raised {B_DEF_NAME_WITH_PREFIX}'s\n{B_BUFF1} drastically!"); +static const u8 sText_AsOneEnters[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} has two Abilities!"); +static const u8 sText_CuriousMedicineEnters[] = _("{B_EFF_NAME_WITH_PREFIX}'s\nstat changes were reset!"); +static const u8 sText_CanActFaster[] = _("{B_ATK_NAME_WITH_PREFIX} can act faster,\nthanks to {B_LAST_ITEM}!"); +static const u8 sText_MicleBerryActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} boosted the accuracy of its\nnext move using {B_LAST_ITEM}!"); +static const u8 sText_PkmnShookOffTheTaunt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} shook off\nthe taunt!"); +static const u8 sText_PkmnGotOverItsInfatuation[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} got over\nits infatuation!"); +static const u8 sText_ItemCannotBeRemoved[] = _("{B_ATK_NAME_WITH_PREFIX}'s item cannot be removed!"); +static const u8 sText_StickyBarbTransfer[] = _("The {B_LAST_ITEM} attached itself to\n{B_ATK_NAME_WITH_PREFIX}!"); +static const u8 sText_PkmnBurnHealed[] = _("{B_DEF_NAME_WITH_PREFIX}'s\nburn was healed."); const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = { + [STRINGID_PKMNBURNHEALED - 12] = sText_PkmnBurnHealed, + [STRINGID_STICKYBARBTRANSFER - 12] = sText_StickyBarbTransfer, + [STRINGID_ITEMCANNOTBEREMOVED - 12] = sText_ItemCannotBeRemoved, + [STRINGID_PKMNGOTOVERITSINFATUATION - 12] = sText_PkmnGotOverItsInfatuation, + [STRINGID_PKMNSHOOKOFFTHETAUNT - 12] = sText_PkmnShookOffTheTaunt, + [STRINGID_MICLEBERRYACTIVATES - 12] = sText_MicleBerryActivates, + [STRINGID_CANACTFASTERTHANKSTO - 12] = sText_CanActFaster, + [STRINGID_CURIOUSMEDICINEENTERS - 12] = sText_CuriousMedicineEnters, + [STRINGID_ASONEENTERS - 12] = sText_AsOneEnters, [STRINGID_ABILITYRAISEDSTATDRASTICALLY - 12] = sText_AbilityRaisedStatDrastically, [STRINGID_PKMNSWILLPERISHIN3TURNS - 12] = sText_PkmnsWillPerishIn3Turns, [STRINGID_ASANDSTORMKICKEDUP - 12] = sText_ASandstormKickedUp, @@ -839,7 +856,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_PKMNSTORINGENERGY - 12] = sText_PkmnStoringEnergy, [STRINGID_PKMNUNLEASHEDENERGY - 12] = sText_PkmnUnleashedEnergy, [STRINGID_PKMNFATIGUECONFUSION - 12] = sText_PkmnFatigueConfusion, - [STRINGID_PKMNPICKEDUPITEM - 12] = sText_PkmnPickedUpItem, + [STRINGID_PLAYERPICKEDUPMONEY - 12] = sText_PlayerPickedUpMoney, [STRINGID_PKMNUNAFFECTED - 12] = sText_PkmnUnaffected, [STRINGID_PKMNTRANSFORMEDINTO - 12] = sText_PkmnTransformedInto, [STRINGID_PKMNMADESUBSTITUTE - 12] = sText_PkmnMadeSubstitute, @@ -929,10 +946,10 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_STATROSE - 12] = gText_StatRose, [STRINGID_STATHARSHLY - 12] = sText_StatHarshly, [STRINGID_STATFELL - 12] = sText_StatFell, - [STRINGID_PKMNSSTATCHANGED - 12] = sText_PkmnsStatChanged, - [STRINGID_PKMNSSTATCHANGED2 - 12] = gText_PkmnsStatChanged2, - [STRINGID_PKMNSSTATCHANGED3 - 12] = sText_PkmnsStatChanged3, - [STRINGID_PKMNSSTATCHANGED4 - 12] = sText_PkmnsStatChanged4, + [STRINGID_ATTACKERSSTATROSE - 12] = sText_AttackersStatRose, + [STRINGID_DEFENDERSSTATROSE - 12] = gText_DefendersStatRose, + [STRINGID_ATTACKERSSTATFELL - 12] = sText_AttackersStatFell, + [STRINGID_DEFENDERSSTATFELL - 12] = sText_DefendersStatFell, [STRINGID_CRITICALHIT - 12] = sText_CriticalHit, [STRINGID_ONEHITKO - 12] = sText_OneHitKO, [STRINGID_123POOF - 12] = sText_123Poof, @@ -1041,7 +1058,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_SOOTHINGAROMA - 12] = sText_SoothingAroma, [STRINGID_ITEMSCANTBEUSEDNOW - 12] = sText_ItemsCantBeUsedNow, [STRINGID_FORXCOMMAYZ - 12] = sText_ForXCommaYZ, - [STRINGID_USINGXTHEYOFZN - 12] = sText_UsingXTheYOfZN, + [STRINGID_USINGITEMSTATOFPKMNROSE - 12] = sText_UsingItemTheStatOfPkmnRose, [STRINGID_PKMNUSEDXTOGETPUMPED - 12] = sText_PkmnUsedXToGetPumped, [STRINGID_PKMNSXMADEYUSELESS - 12] = sText_PkmnsXMadeYUseless, [STRINGID_PKMNTRAPPEDBYSANDTOMB - 12] = sText_PkmnTrappedBySandTomb, @@ -1185,7 +1202,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_FRISKACTIVATES - 12] = sText_FriskActivates, [STRINGID_UNNERVEENTERS - 12] = sText_UnnerveEnters, [STRINGID_HARVESTBERRY - 12] = sText_HarvestBerry, - [STRINGID_MOXIEATKRISE - 12] = sText_MoxieAtkRise, + [STRINGID_LASTABILITYRAISEDSTAT - 12] = sText_LastAbilityRaisedBuff1, [STRINGID_MAGICBOUNCEACTIVATES - 12] = sText_MagicBounceActivates, [STRINGID_PROTEANTYPECHANGE - 12] = sText_ProteanTypeChange, [STRINGID_SYMBIOSISITEMPASS - 12] = sText_SymbiosisItemPass, @@ -1274,132 +1291,172 @@ const u16 gDmgHazardsStringIds[] = const u16 gSwitchInAbilityStringIds[] = { - [MULTI_SWITCHIN_MOLDBREAKER] = STRINGID_MOLDBREAKERENTERS, - [MULTI_SWITCHIN_TERAVOLT] = STRINGID_TERAVOLTENTERS, - [MULTI_SWITCHIN_TURBOBLAZE] = STRINGID_TURBOBLAZEENTERS, - [MULTI_SWITCHIN_SLOWSTART] = STRINGID_SLOWSTARTENTERS, - [MULTI_SWITCHIN_UNNERVE] = STRINGID_UNNERVEENTERS, - [MULTI_SWITCHIN_ANTICIPATION] = STRINGID_ANTICIPATIONACTIVATES, - [MULTI_SWITCHIN_FOREWARN] = STRINGID_FOREWARNACTIVATES, - [MULTI_SWITCHIN_PRESSURE] = STRINGID_PRESSUREENTERS, - [MULTI_SWITCHIN_DARKAURA] = STRINGID_DARKAURAENTERS, - [MULTI_SWITCHIN_FAIRYAURA] = STRINGID_FAIRYAURAENTERS, - [MULTI_SWITCHIN_AURABREAK] = STRINGID_AURABREAKENTERS, - [MULTI_SWITCHIN_COMATOSE] = STRINGID_COMATOSEENTERS, - [MULTI_SWITCHIN_SCREENCLEANER] = STRINGID_SCREENCLEANERENTERS, + [B_MSG_SWITCHIN_MOLDBREAKER] = STRINGID_MOLDBREAKERENTERS, + [B_MSG_SWITCHIN_TERAVOLT] = STRINGID_TERAVOLTENTERS, + [B_MSG_SWITCHIN_TURBOBLAZE] = STRINGID_TURBOBLAZEENTERS, + [B_MSG_SWITCHIN_SLOWSTART] = STRINGID_SLOWSTARTENTERS, + [B_MSG_SWITCHIN_UNNERVE] = STRINGID_UNNERVEENTERS, + [B_MSG_SWITCHIN_ANTICIPATION] = STRINGID_ANTICIPATIONACTIVATES, + [B_MSG_SWITCHIN_FOREWARN] = STRINGID_FOREWARNACTIVATES, + [B_MSG_SWITCHIN_PRESSURE] = STRINGID_PRESSUREENTERS, + [B_MSG_SWITCHIN_DARKAURA] = STRINGID_DARKAURAENTERS, + [B_MSG_SWITCHIN_FAIRYAURA] = STRINGID_FAIRYAURAENTERS, + [B_MSG_SWITCHIN_AURABREAK] = STRINGID_AURABREAKENTERS, + [B_MSG_SWITCHIN_COMATOSE] = STRINGID_COMATOSEENTERS, + [B_MSG_SWITCHIN_SCREENCLEANER] = STRINGID_SCREENCLEANERENTERS, + [B_MSG_SWITCHIN_ASONE] = STRINGID_ASONEENTERS, + [B_MSG_SWITCHIN_CURIOUS_MEDICINE] = STRINGID_CURIOUSMEDICINEENTERS, }; const u16 gMissStringIds[] = { - STRINGID_ATTACKMISSED, STRINGID_PKMNPROTECTEDITSELF, - STRINGID_PKMNAVOIDEDATTACK, STRINGID_AVOIDEDDAMAGE, - STRINGID_PKMNMAKESGROUNDMISS + [B_MSG_MISSED] = STRINGID_ATTACKMISSED, + [B_MSG_PROTECTED] = STRINGID_PKMNPROTECTEDITSELF, + [B_MSG_AVOIDED_ATK] = STRINGID_PKMNAVOIDEDATTACK, + [B_MSG_AVOIDED_DMG] = STRINGID_AVOIDEDDAMAGE, + [B_MSG_GROUND_MISS] = STRINGID_PKMNMAKESGROUNDMISS }; const u16 gNoEscapeStringIds[] = { - STRINGID_CANTESCAPE, STRINGID_DONTLEAVEBIRCH, STRINGID_PREVENTSESCAPE, - STRINGID_CANTESCAPE2, STRINGID_ATTACKERCANTESCAPE + [B_MSG_CANT_ESCAPE] = STRINGID_CANTESCAPE, + [B_MSG_DONT_LEAVE_BIRCH] = STRINGID_DONTLEAVEBIRCH, + [B_MSG_PREVENTS_ESCAPE] = STRINGID_PREVENTSESCAPE, + [B_MSG_CANT_ESCAPE_2] = STRINGID_CANTESCAPE2, + [B_MSG_ATTACKER_CANT_ESCAPE] = STRINGID_ATTACKERCANTESCAPE }; const u16 gMoveWeatherChangeStringIds[] = { - STRINGID_STARTEDTORAIN, STRINGID_DOWNPOURSTARTED, STRINGID_BUTITFAILED, - STRINGID_SANDSTORMBREWED, STRINGID_SUNLIGHTGOTBRIGHT, STRINGID_STARTEDHAIL + [B_MSG_STARTED_RAIN] = STRINGID_STARTEDTORAIN, + [B_MSG_STARTED_DOWNPOUR] = STRINGID_DOWNPOURSTARTED, // Unused + [B_MSG_WEATHER_FAILED] = STRINGID_BUTITFAILED, + [B_MSG_STARTED_SANDSTORM] = STRINGID_SANDSTORMBREWED, + [B_MSG_STARTED_SUNLIGHT] = STRINGID_SUNLIGHTGOTBRIGHT, + [B_MSG_STARTED_HAIL] = STRINGID_STARTEDHAIL, }; const u16 gSandStormHailContinuesStringIds[] = { - STRINGID_SANDSTORMRAGES, STRINGID_HAILCONTINUES + [B_MSG_SANDSTORM] = STRINGID_SANDSTORMRAGES, + [B_MSG_HAIL] = STRINGID_HAILCONTINUES }; const u16 gSandStormHailDmgStringIds[] = { - STRINGID_PKMNBUFFETEDBYSANDSTORM, STRINGID_PKMNPELTEDBYHAIL + [B_MSG_SANDSTORM] = STRINGID_PKMNBUFFETEDBYSANDSTORM, + [B_MSG_HAIL] = STRINGID_PKMNPELTEDBYHAIL }; const u16 gSandStormHailEndStringIds[] = { - STRINGID_SANDSTORMSUBSIDED, STRINGID_HAILSTOPPED + [B_MSG_SANDSTORM] = STRINGID_SANDSTORMSUBSIDED, + [B_MSG_HAIL] = STRINGID_HAILSTOPPED }; const u16 gRainContinuesStringIds[] = { - STRINGID_RAINCONTINUES, STRINGID_DOWNPOURCONTINUES, STRINGID_RAINSTOPPED + [B_MSG_RAIN_CONTINUES] = STRINGID_RAINCONTINUES, + [B_MSG_DOWNPOUR_CONTINUES] = STRINGID_DOWNPOURCONTINUES, + [B_MSG_RAIN_STOPPED] = STRINGID_RAINSTOPPED }; const u16 gProtectLikeUsedStringIds[] = { - STRINGID_PKMNPROTECTEDITSELF2, STRINGID_PKMNBRACEDITSELF, STRINGID_BUTITFAILED, STRINGID_PROTECTEDTEAM, + [B_MSG_PROTECTED_ITSELF] = STRINGID_PKMNPROTECTEDITSELF2, + [B_MSG_BRACED_ITSELF] = STRINGID_PKMNBRACEDITSELF, + [B_MSG_PROTECT_FAILED] = STRINGID_BUTITFAILED, + [B_MSG_PROTECTED_TEAM] = STRINGID_PROTECTEDTEAM, }; const u16 gReflectLightScreenSafeguardStringIds[] = { - STRINGID_BUTITFAILED, STRINGID_PKMNRAISEDDEF, STRINGID_PKMNRAISEDDEFALITTLE, - STRINGID_PKMNRAISEDSPDEF, STRINGID_PKMNRAISEDSPDEFALITTLE, STRINGID_PKMNCOVEREDBYVEIL + [B_MSG_SIDE_STATUS_FAILED] = STRINGID_BUTITFAILED, + [B_MSG_SET_REFLECT_SINGLE] = STRINGID_PKMNRAISEDDEF, + [B_MSG_SET_REFLECT_DOUBLE] = STRINGID_PKMNRAISEDDEFALITTLE, + [B_MSG_SET_LIGHTSCREEN_SINGLE] = STRINGID_PKMNRAISEDSPDEF, + [B_MSG_SET_LIGHTSCREEN_DOUBLE] = STRINGID_PKMNRAISEDSPDEFALITTLE, + [B_MSG_SET_SAFEGUARD] = STRINGID_PKMNCOVEREDBYVEIL, }; const u16 gLeechSeedStringIds[] = { - STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK, - STRINGID_ITDOESNTAFFECT, STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_ITSUCKEDLIQUIDOOZE, + [B_MSG_LEECH_SEED_SET] = STRINGID_PKMNSEEDED, + [B_MSG_LEECH_SEED_MISS] = STRINGID_PKMNEVADEDATTACK, + [B_MSG_LEECH_SEED_FAIL] = STRINGID_ITDOESNTAFFECT, + [B_MSG_LEECH_SEED_DRAIN] = STRINGID_PKMNSAPPEDBYLEECHSEED, + [B_MSG_LEECH_SEED_OOZE] = STRINGID_ITSUCKEDLIQUIDOOZE, }; const u16 gRestUsedStringIds[] = { - STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY + [B_MSG_REST] = STRINGID_PKMNWENTTOSLEEP, + [B_MSG_REST_STATUSED] = STRINGID_PKMNSLEPTHEALTHY }; const u16 gUproarOverTurnStringIds[] = { - STRINGID_PKMNMAKINGUPROAR, STRINGID_PKMNCALMEDDOWN + [B_MSG_UPROAR_CONTINUES] = STRINGID_PKMNMAKINGUPROAR, + [B_MSG_UPROAR_ENDS] = STRINGID_PKMNCALMEDDOWN }; const u16 gStockpileUsedStringIds[] = { - STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSTOCKPILE, + [B_MSG_STOCKPILED] = STRINGID_PKMNSTOCKPILED, + [B_MSG_CANT_STOCKPILE] = STRINGID_PKMNCANTSTOCKPILE, }; const u16 gWokeUpStringIds[] = { - STRINGID_PKMNWOKEUP, STRINGID_PKMNWOKEUPINUPROAR + [B_MSG_WOKE_UP] = STRINGID_PKMNWOKEUP, + [B_MSG_WOKE_UP_UPROAR] = STRINGID_PKMNWOKEUPINUPROAR }; const u16 gSwallowFailStringIds[] = { - STRINGID_FAILEDTOSWALLOW, STRINGID_PKMNHPFULL + [B_MSG_SWALLOW_FAILED] = STRINGID_FAILEDTOSWALLOW, + [B_MSG_SWALLOW_FULL_HP] = STRINGID_PKMNHPFULL }; const u16 gUproarAwakeStringIds[] = { - STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE, STRINGID_PKMNSTAYEDAWAKEUSING + [B_MSG_CANT_SLEEP_UPROAR] = STRINGID_PKMNCANTSLEEPINUPROAR2, + [B_MSG_UPROAR_KEPT_AWAKE] = STRINGID_UPROARKEPTPKMNAWAKE, + [B_MSG_STAYED_AWAKE_USING] = STRINGID_PKMNSTAYEDAWAKEUSING, }; const u16 gStatUpStringIds[] = { - STRINGID_PKMNSSTATCHANGED, STRINGID_PKMNSSTATCHANGED2, STRINGID_STATSWONTINCREASE, - STRINGID_EMPTYSTRING3, STRINGID_USINGXTHEYOFZN, STRINGID_PKMNUSEDXTOGETPUMPED + [B_MSG_ATTACKER_STAT_ROSE] = STRINGID_ATTACKERSSTATROSE, + [B_MSG_DEFENDER_STAT_ROSE] = STRINGID_DEFENDERSSTATROSE, + [B_MSG_STAT_WONT_INCREASE] = STRINGID_STATSWONTINCREASE, + [B_MSG_STAT_ROSE_EMPTY] = STRINGID_EMPTYSTRING3, + [B_MSG_STAT_ROSE_ITEM] = STRINGID_USINGITEMSTATOFPKMNROSE, + [B_MSG_USED_DIRE_HIT] = STRINGID_PKMNUSEDXTOGETPUMPED, }; const u16 gStatDownStringIds[] = { - STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3 + [B_MSG_ATTACKER_STAT_FELL] = STRINGID_ATTACKERSSTATFELL, + [B_MSG_DEFENDER_STAT_FELL] = STRINGID_DEFENDERSSTATFELL, + [B_MSG_STAT_WONT_DECREASE] = STRINGID_STATSWONTDECREASE, + [B_MSG_STAT_FELL_EMPTY] = STRINGID_EMPTYSTRING3, }; // Index read from sTWOTURN_STRINGID const u16 gFirstTurnOfTwoStringIds[] = { - STRINGID_PKMNWHIPPEDWHIRLWIND, // MOVE_RAZOR_WIND - STRINGID_PKMNTOOKSUNLIGHT, // MOVE_SOLAR_BEAM - STRINGID_PKMNLOWEREDHEAD, // MOVE_SKULL_BASH - STRINGID_PKMNISGLOWING, // MOVE_SKY_ATTACK - STRINGID_PKMNFLEWHIGH, // MOVE_FLY - STRINGID_PKMNDUGHOLE, // MOVE_DIG - STRINGID_PKMNHIDUNDERWATER, // MOVE_DIVE - STRINGID_PKMNSPRANGUP, // MOVE_BOUNCE - STRINGID_VANISHEDINSTANTLY, // MOVE_PHANTOM_FORCE - STRINGID_PKNMABSORBINGPOWER, // MOVE_GEOMANCY - STRINGID_CLOAKEDINAFREEZINGLIGHT, // MOVE_FREEZE_SHOCK + [B_MSG_TURN1_RAZOR_WIND] = STRINGID_PKMNWHIPPEDWHIRLWIND, + [B_MSG_TURN1_SOLAR_BEAM] = STRINGID_PKMNTOOKSUNLIGHT, + [B_MSG_TURN1_SKULL_BASH] = STRINGID_PKMNLOWEREDHEAD, + [B_MSG_TURN1_SKY_ATTACK] = STRINGID_PKMNISGLOWING, + [B_MSG_TURN1_FLY] = STRINGID_PKMNFLEWHIGH, + [B_MSG_TURN1_DIG] = STRINGID_PKMNDUGHOLE, + [B_MSG_TURN1_DIVE] = STRINGID_PKMNHIDUNDERWATER, + [B_MSG_TURN1_BOUNCE] = STRINGID_PKMNSPRANGUP, + [B_MSG_TURN1_PHANTOM_FORCE] = STRINGID_VANISHEDINSTANTLY, + [B_MSG_TURN1_GEOMANCY] = STRINGID_PKNMABSORBINGPOWER, + [B_MSG_TURN1_FREEZE_SHOCK] = STRINGID_CLOAKEDINAFREEZINGLIGHT, }; // Index copied from move's index in gTrappingMoves @@ -1416,89 +1473,109 @@ const u16 gWrappedStringIds[] = const u16 gMistUsedStringIds[] = { - STRINGID_PKMNSHROUDEDINMIST, STRINGID_BUTITFAILED + [B_MSG_SET_MIST] = STRINGID_PKMNSHROUDEDINMIST, + [B_MSG_MIST_FAILED] = STRINGID_BUTITFAILED }; const u16 gFocusEnergyUsedStringIds[] = { - STRINGID_PKMNGETTINGPUMPED, STRINGID_BUTITFAILED + [B_MSG_GETTING_PUMPED] = STRINGID_PKMNGETTINGPUMPED, + [B_MSG_FOCUS_ENERGY_FAILED] = STRINGID_BUTITFAILED }; const u16 gTransformUsedStringIds[] = { - STRINGID_PKMNTRANSFORMEDINTO, STRINGID_BUTITFAILED + [B_MSG_TRANSFORMED] = STRINGID_PKMNTRANSFORMEDINTO, + [B_MSG_TRANSFORM_FAILED] = STRINGID_BUTITFAILED }; -const u16 gSubsituteUsedStringIds[] = +const u16 gSubstituteUsedStringIds[] = { - STRINGID_PKMNMADESUBSTITUTE, STRINGID_TOOWEAKFORSUBSTITUTE + [B_MSG_SET_SUBSTITUTE] = STRINGID_PKMNMADESUBSTITUTE, + [B_MSG_SUBSTITUTE_FAILED] = STRINGID_TOOWEAKFORSUBSTITUTE }; const u16 gGotPoisonedStringIds[] = { - STRINGID_PKMNWASPOISONED, STRINGID_PKMNPOISONEDBY + [B_MSG_STATUSED] = STRINGID_PKMNWASPOISONED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNPOISONEDBY }; const u16 gGotParalyzedStringIds[] = { - STRINGID_PKMNWASPARALYZED, STRINGID_PKMNWASPARALYZEDBY + [B_MSG_STATUSED] = STRINGID_PKMNWASPARALYZED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNWASPARALYZEDBY }; const u16 gFellAsleepStringIds[] = { - STRINGID_PKMNFELLASLEEP, STRINGID_PKMNMADESLEEP, + [B_MSG_STATUSED] = STRINGID_PKMNFELLASLEEP, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNMADESLEEP, }; const u16 gGotBurnedStringIds[] = { - STRINGID_PKMNWASBURNED, STRINGID_PKMNBURNEDBY + [B_MSG_STATUSED] = STRINGID_PKMNWASBURNED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNBURNEDBY }; const u16 gGotFrozenStringIds[] = { - STRINGID_PKMNWASFROZEN, STRINGID_PKMNFROZENBY + [B_MSG_STATUSED] = STRINGID_PKMNWASFROZEN, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNFROZENBY }; const u16 gGotDefrostedStringIds[] = { - STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY + [B_MSG_DEFROSTED] = STRINGID_PKMNWASDEFROSTED2, + [B_MSG_DEFROSTED_BY_MOVE] = STRINGID_PKMNWASDEFROSTEDBY }; const u16 gKOFailedStringIds[] = { - STRINGID_ATTACKMISSED, STRINGID_PKMNUNAFFECTED + [B_MSG_KO_MISS] = STRINGID_ATTACKMISSED, + [B_MSG_KO_UNAFFECTED] = STRINGID_PKMNUNAFFECTED }; const u16 gAttractUsedStringIds[] = { - STRINGID_PKMNFELLINLOVE, STRINGID_PKMNSXINFATUATEDY + [B_MSG_STATUSED] = STRINGID_PKMNFELLINLOVE, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNSXINFATUATEDY }; -const u16 gLeechSeedDrainStringIds[] = +const u16 gAbsorbDrainStringIds[] = { - STRINGID_PKMNENERGYDRAINED, STRINGID_ITSUCKEDLIQUIDOOZE + [B_MSG_ABSORB] = STRINGID_PKMNENERGYDRAINED, + [B_MSG_ABSORB_OOZE] = STRINGID_ITSUCKEDLIQUIDOOZE }; const u16 gSportsUsedStringIds[] = { - STRINGID_ELECTRICITYWEAKENED, STRINGID_FIREWEAKENED + [B_MSG_WEAKEN_ELECTRIC] = STRINGID_ELECTRICITYWEAKENED, + [B_MSG_WEAKEN_FIRE] = STRINGID_FIREWEAKENED }; const u16 gPartyStatusHealStringIds[] = { - STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, - // interesting how there are four instances of the same string - STRINGID_SOOTHINGAROMA + [B_MSG_BELL] = STRINGID_BELLCHIMED, + [B_MSG_BELL_SOUNDPROOF_ATTACKER] = STRINGID_BELLCHIMED, + [B_MSG_BELL_SOUNDPROOF_PARTNER] = STRINGID_BELLCHIMED, + [B_MSG_BELL_BOTH_SOUNDPROOF] = STRINGID_BELLCHIMED, + [B_MSG_SOOTHING_AROMA] = STRINGID_SOOTHINGAROMA }; const u16 gFutureMoveUsedStringIds[] = { - STRINGID_PKMNFORESAWATTACK, STRINGID_PKMNCHOSEXASDESTINY + [B_MSG_FUTURE_SIGHT] = STRINGID_PKMNFORESAWATTACK, + [B_MSG_DOOM_DESIRE] = STRINGID_PKMNCHOSEXASDESTINY }; const u16 gBallEscapeStringIds[] = { - STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, STRINGID_SHOOTSOCLOSE + [BALL_NO_SHAKES] = STRINGID_PKMNBROKEFREE, + [BALL_1_SHAKE] = STRINGID_ITAPPEAREDCAUGHT, + [BALL_2_SHAKES] = STRINGID_AARGHALMOSTHADIT, + [BALL_3_SHAKES_FAIL] = STRINGID_SHOOTSOCLOSE }; // Overworld weathers that don't have an associated battle weather default to "It is raining." @@ -1524,59 +1601,82 @@ const u16 gWeatherStartsStringIds[] = const u16 gInobedientStringIds[] = { - STRINGID_PKMNLOAFING, STRINGID_PKMNWONTOBEY, STRINGID_PKMNTURNEDAWAY, - STRINGID_PKMNPRETENDNOTNOTICE, STRINGID_PKMNINCAPABLEOFPOWER + [B_MSG_LOAFING] = STRINGID_PKMNLOAFING, + [B_MSG_WONT_OBEY] = STRINGID_PKMNWONTOBEY, + [B_MSG_TURNED_AWAY] = STRINGID_PKMNTURNEDAWAY, + [B_MSG_PRETEND_NOT_NOTICE] = STRINGID_PKMNPRETENDNOTNOTICE, + [B_MSG_INCAPABLE_OF_POWER] = STRINGID_PKMNINCAPABLEOFPOWER }; const u16 gSafariGetNearStringIds[] = { - STRINGID_CREPTCLOSER, STRINGID_CANTGETCLOSER + [B_MSG_CREPT_CLOSER] = STRINGID_CREPTCLOSER, + [B_MSG_CANT_GET_CLOSER] = STRINGID_CANTGETCLOSER }; const u16 gSafariPokeblockResultStringIds[] = { - STRINGID_PKMNCURIOUSABOUTX, STRINGID_PKMNENTHRALLEDBYX, STRINGID_PKMNIGNOREDX + [B_MSG_MON_CURIOUS] = STRINGID_PKMNCURIOUSABOUTX, + [B_MSG_MON_ENTHRALLED] = STRINGID_PKMNENTHRALLEDBYX, + [B_MSG_MON_IGNORED] = STRINGID_PKMNIGNOREDX }; const u16 gTrainerItemCuredStatusStringIds[] = { - STRINGID_PKMNSITEMSNAPPEDOUT, STRINGID_PKMNSITEMCUREDPARALYSIS, STRINGID_PKMNSITEMDEFROSTEDIT, - STRINGID_PKMNSITEMHEALEDBURN, STRINGID_PKMNSITEMCUREDPOISON, STRINGID_PKMNSITEMWOKEIT + [AI_HEAL_CONFUSION] = STRINGID_PKMNSITEMSNAPPEDOUT, + [AI_HEAL_PARALYSIS] = STRINGID_PKMNSITEMCUREDPARALYSIS, + [AI_HEAL_FREEZE] = STRINGID_PKMNSITEMDEFROSTEDIT, + [AI_HEAL_BURN] = STRINGID_PKMNSITEMHEALEDBURN, + [AI_HEAL_POISON] = STRINGID_PKMNSITEMCUREDPOISON, + [AI_HEAL_SLEEP] = STRINGID_PKMNSITEMWOKEIT }; const u16 gBerryEffectStringIds[] = { - STRINGID_PKMNSITEMCUREDPROBLEM, STRINGID_PKMNSITEMNORMALIZEDSTATUS + [B_MSG_CURED_PROBLEM] = STRINGID_PKMNSITEMCUREDPROBLEM, + [B_MSG_NORMALIZED_STATUS] = STRINGID_PKMNSITEMNORMALIZEDSTATUS }; const u16 gBRNPreventionStringIds[] = { - STRINGID_PKMNSXPREVENTSBURNS, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNSXPREVENTSBURNS, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; const u16 gPRLZPreventionStringIds[] = { - STRINGID_PKMNPREVENTSPARALYSISWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNPREVENTSPARALYSISWITH, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; const u16 gPSNPreventionStringIds[] = { - STRINGID_PKMNPREVENTSPOISONINGWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNPREVENTSPOISONINGWITH, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; const u16 gItemSwapStringIds[] = { - STRINGID_PKMNOBTAINEDX, STRINGID_PKMNOBTAINEDX2, STRINGID_PKMNOBTAINEDXYOBTAINEDZ + [B_MSG_ITEM_SWAP_TAKEN] = STRINGID_PKMNOBTAINEDX, + [B_MSG_ITEM_SWAP_GIVEN] = STRINGID_PKMNOBTAINEDX2, + [B_MSG_ITEM_SWAP_BOTH] = STRINGID_PKMNOBTAINEDXYOBTAINEDZ }; const u16 gFlashFireStringIds[] = { - STRINGID_PKMNRAISEDFIREPOWERWITH, STRINGID_PKMNSXMADEYINEFFECTIVE + [B_MSG_FLASH_FIRE_BOOST] = STRINGID_PKMNRAISEDFIREPOWERWITH, + [B_MSG_FLASH_FIRE_NO_BOOST] = STRINGID_PKMNSXMADEYINEFFECTIVE }; const u16 gCaughtMonStringIds[] = { - STRINGID_PKMNTRANSFERREDSOMEONESPC, STRINGID_PKMNTRANSFERREDLANETTESPC, STRINGID_PKMNBOXSOMEONESPCFULL, STRINGID_PKMNBOXLANETTESPCFULL, + [B_MSG_SENT_SOMEONES_PC] = STRINGID_PKMNTRANSFERREDSOMEONESPC, + [B_MSG_SENT_LANETTES_PC] = STRINGID_PKMNTRANSFERREDLANETTESPC, + [B_MSG_SOMEONES_BOX_FULL] = STRINGID_PKMNBOXSOMEONESPCFULL, + [B_MSG_LANETTES_BOX_FULL] = STRINGID_PKMNBOXLANETTESPCFULL, }; const u16 gTrappingMoves[] = @@ -1619,14 +1719,15 @@ const u8 gText_BattleSwitchWhich3[] = _("{UP_ARROW}"); const u8 gText_BattleSwitchWhich4[] = _("{ESCAPE 4}"); const u8 gText_BattleSwitchWhich5[] = _("-"); -const u8 * const gStatNamesTable2[] = +// Unused +static const u8 * const sStatNamesTable2[] = { gText_HP3, gText_SpAtk, gText_Attack, gText_SpDef, gText_Defense, gText_Speed }; -const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GREY}SAFARI BALLS"); -const u8 gText_SafariBallLeft[] = _("{HIGHLIGHT DARK_GREY}Left: $" "{HIGHLIGHT DARK_GREY}"); +const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GRAY}SAFARI BALLS"); +const u8 gText_SafariBallLeft[] = _("{HIGHLIGHT DARK_GRAY}Left: $" "{HIGHLIGHT DARK_GRAY}"); const u8 gText_Sleep[] = _("sleep"); const u8 gText_Poison[] = _("poison"); const u8 gText_Burn[] = _("burn"); @@ -1649,7 +1750,8 @@ const u8 gText_Draw[] = _("{HIGHLIGHT TRANSPARENT}Draw"); static const u8 sText_SpaceIs[] = _(" is"); static const u8 sText_ApostropheS[] = _("'s"); -static const u8 sATypeMove_Table[][NUMBER_OF_MON_TYPES - 1] = +// For displaying names of invalid moves +static const u8 sATypeMove_Table[NUMBER_OF_MON_TYPES][17] = { [TYPE_NORMAL] = _("a NORMAL move"), [TYPE_FIGHTING] = _("a FIGHTING move"), @@ -1712,10 +1814,10 @@ static const u8 sText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is const u16 gBattlePalaceFlavorTextTable[] = { - STRINGID_GLINTAPPEARSINEYE, - STRINGID_PKMNGETTINGINTOPOSITION, - STRINGID_PKMNBEGANGROWLINGDEEPLY, - STRINGID_PKMNEAGERFORMORE + [B_MSG_GLINT_IN_EYE] = STRINGID_GLINTAPPEARSINEYE, + [B_MSG_GETTING_IN_POS] = STRINGID_PKMNGETTINGINTOPOSITION, + [B_MSG_GROWL_DEEPLY] = STRINGID_PKMNBEGANGROWLINGDEEPLY, + [B_MSG_EAGER_FOR_MORE] = STRINGID_PKMNEAGERFORMORE, }; static const u8 sText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!"); @@ -1723,9 +1825,9 @@ static const u8 sText_RefThatsIt[] = _("REFEREE: That's it! We will now go to\nj static const u8 sText_RefJudgeMind[] = _("REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p"); static const u8 sText_RefJudgeSkill[] = _("REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p"); static const u8 sText_RefJudgeBody[] = _("REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p"); -static const u8 sText_RefJudgement1[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}'s {B_PLAYER_MON1_NAME}!\p"); -static const u8 sText_RefJudgement2[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}'s {B_OPPONENT_MON1_NAME}!\p"); -static const u8 sText_RefJudgement3[] = _("REFEREE: Judgment: 3 to 3!\nWe have a draw!\p"); +static const u8 sText_RefPlayerWon[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}'s {B_PLAYER_MON1_NAME}!\p"); +static const u8 sText_RefOpponentWon[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}'s {B_OPPONENT_MON1_NAME}!\p"); +static const u8 sText_RefDraw[] = _("REFEREE: Judgment: 3 to 3!\nWe have a draw!\p"); static const u8 sText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} defeated the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); static const u8 sText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} lost to the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); static const u8 sText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} tied the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); @@ -1733,15 +1835,15 @@ static const u8 sText_RefCommenceBattle[] = _("REFEREE: {B_PLAYER_MON1_NAME} VS const u8 * const gRefereeStringsTable[] = { - sText_RefIfNothingIsDecided, - sText_RefThatsIt, - sText_RefJudgeMind, - sText_RefJudgeSkill, - sText_RefJudgeBody, - sText_RefJudgement1, - sText_RefJudgement2, - sText_RefJudgement3, - sText_RefCommenceBattle, + [B_MSG_REF_NOTHING_IS_DECIDED] = sText_RefIfNothingIsDecided, + [B_MSG_REF_THATS_IT] = sText_RefThatsIt, + [B_MSG_REF_JUDGE_MIND] = sText_RefJudgeMind, + [B_MSG_REF_JUDGE_SKILL] = sText_RefJudgeSkill, + [B_MSG_REF_JUDGE_BODY] = sText_RefJudgeBody, + [B_MSG_REF_PLAYER_WON] = sText_RefPlayerWon, + [B_MSG_REF_OPPONENT_WON] = sText_RefOpponentWon, + [B_MSG_REF_DRAW] = sText_RefDraw, + [B_MSG_REF_COMMENCE_BATTLE] = sText_RefCommenceBattle, }; static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the match\nand quit now?"); @@ -2415,9 +2517,9 @@ void BufferStringBattle(u16 stringID) case STRINGID_INTROMSG: // first battle msg if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { - if (gBattleTypeFlags & BATTLE_TYPE_x800000) + if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI) { stringPtr = sText_TwoTrainersWantToBattle; } @@ -2453,7 +2555,7 @@ void BufferStringBattle(u16 stringID) else { if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) - stringPtr = sText_WildPkmnAppeared2; + stringPtr = sText_LegendaryPkmnAppeared; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) // interesting, looks like they had something planned for wild double battles stringPtr = sText_TwoWildPkmnAppeared; else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) @@ -2489,18 +2591,18 @@ void BufferStringBattle(u16 stringID) stringPtr = sText_Trainer1SentOutTwoPkmn; else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) stringPtr = sText_TwoTrainersSentPkmn; - else if (gBattleTypeFlags & BATTLE_TYPE_x800000) + else if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI) stringPtr = sText_TwoTrainersSentPkmn; else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_TwoLinkTrainersSentOutPkmn; - else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) stringPtr = sText_LinkTrainerSentOutTwoPkmn; else stringPtr = sText_Trainer1SentOutTwoPkmn; } else { - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))) stringPtr = sText_Trainer1SentOutPkmn; else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1SentOutPkmn; @@ -2523,7 +2625,7 @@ void BufferStringBattle(u16 stringID) } else { - if (gTrainerBattleOpponent_A == TRAINER_LINK_OPPONENT || gBattleTypeFlags & BATTLE_TYPE_x2000000) + if (gTrainerBattleOpponent_A == TRAINER_LINK_OPPONENT || gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_LinkTrainer2WithdrewPkmn; @@ -2550,9 +2652,9 @@ void BufferStringBattle(u16 stringID) } else { - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { - if (gBattleTypeFlags & BATTLE_TYPE_x800000) + if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI) { if (gBattleScripting.battler == 1) stringPtr = sText_Trainer1SentOutPkmn2; @@ -2617,7 +2719,7 @@ void BufferStringBattle(u16 stringID) switch (gBattleTextBuff1[0]) { case B_OUTCOME_WON: - if (gBattleTypeFlags & BATTLE_TYPE_x800000) + if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI) stringPtr = sText_TwoInGameTrainersDefeated; else stringPtr = sText_TwoLinkTrainersDefeated; @@ -2891,8 +2993,8 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) u8 multiplayerId; s32 i; - if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - multiplayerId = gUnknown_0203C7B4; + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) + multiplayerId = gRecordedBattleMultiplayerId; else multiplayerId = GetMultiplayerId(); @@ -3026,7 +3128,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gMoveNames[gBattleMsgDataPtr->originallyUsedMove]; break; case B_TXT_LAST_ITEM: // last used item - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { if (gLastUsedItem == ITEM_ENIGMA_BERRY) { @@ -3448,7 +3550,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) break; case B_BUFF_ITEM: // item name hword = T1_READ_16(&src[srcID + 1]); - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { if (hword == ITEM_ENIGMA_BERRY) { @@ -3591,7 +3693,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) if (printerTemplate.x == 0xFF) { - u32 width = sub_80397C4(gBattleScripting.windowsType, windowId); + u32 width = GetBattleWindowTemplatePixelWidth(gBattleScripting.windowsType, windowId); s32 alignX = GetStringCenterAlignXOffsetWithLetterSpacing(printerTemplate.fontId, printerTemplate.currentChar, width, printerTemplate.letterSpacing); printerTemplate.x = printerTemplate.currentX = alignX; } @@ -3608,7 +3710,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) if (windowId == 0 || windowId == 0x16) { - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) speed = 1; else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) speed = sRecordedBattleTextSpeeds[GetTextSpeedInRecordedBattle()]; diff --git a/src/battle_pike.c b/src/battle_pike.c index 54c2361f13..e44ad81cc9 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -58,8 +58,8 @@ static void GetRoomType(void); static void SetInWildMonRoom(void); static void ClearInWildMonRoom(void); static void SavePikeChallenge(void); -static void nullsub_76(void); -static void nullsub_124(void); +static void PikeDummy1(void); +static void PikeDummy2(void); static void GetRoomInflictedStatus(void); static void GetRoomInflictedStatusMon(void); static void HealOneOrTwoMons(void); @@ -429,32 +429,32 @@ static const u16 sNPCSpeeches[][EASY_CHAT_BATTLE_WORDS_COUNT] = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_A, EC_WORD_MISTAKE, EC_WORD_QUES}, {EC_WORD_IT_S, EC_WORD_MEAN, EC_WORD_AND, EC_WORD_AWFUL, EC_WORD_IN, EC_WORD_HERE}, {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_TIRED, EC_WORD_OF, EC_WORD_THIS, EC_WORD_PLACE}, - {EC_WORD_I, EC_WORD_QUITE, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_CHALLENGE, 0xFFFF}, + {EC_WORD_I, EC_WORD_QUITE, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_CHALLENGE, EC_EMPTY_WORD}, {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_HOW, EC_WORD_I, EC_MOVE2(TACKLE), EC_WORD_THIS}, - {EC_WORD_READY, EC_WORD_TO, EC_WORD_GIVE_UP, EC_WORD_YET, EC_WORD_QUES, 0xFFFF}, + {EC_WORD_READY, EC_WORD_TO, EC_WORD_GIVE_UP, EC_WORD_YET, EC_WORD_QUES, EC_EMPTY_WORD}, {EC_WORD_OH, EC_WORD_NO, EC_WORD_WHO, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_QUES}, {EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_WANDERING, EC_WORD_ABOUT, EC_WORD_FOREVER, EC_WORD_ELLIPSIS}, - {EC_WORD_I, EC_WORD_THINK, EC_WORD_I, EC_WORD_WILL, EC_WORD_GIVE_UP, 0xFFFF}, + {EC_WORD_I, EC_WORD_THINK, EC_WORD_I, EC_WORD_WILL, EC_WORD_GIVE_UP, EC_EMPTY_WORD}, {EC_WORD_WHAT, EC_WORD_SHOULD, EC_WORD_I, EC_WORD_DO, EC_WORD_NEXT, EC_WORD_QUES}, {EC_WORD_I, EC_WORD_CAN_WIN, EC_WORD_WITH, EC_WORD_MY, EC_MOVE(SHEER_COLD), EC_WORD_GENIUS}, {EC_WORD_WON_T, EC_WORD_SOMEONE, EC_WORD_COOL, EC_WORD_SHOW, EC_WORD_UP, EC_WORD_QUES}, - {EC_WORD_BATTLE, EC_WORD_GAME, EC_WORD_IS, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF}, + {EC_WORD_BATTLE, EC_WORD_GAME, EC_WORD_IS, EC_WORD_AWESOME, EC_WORD_EXCL, EC_EMPTY_WORD}, {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_TAKE, EC_WORD_THIS, EC_WORD_ANY, EC_WORD_MORE}, {EC_WORD_I, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_IF, EC_WORD_IT_S, EC_WORD_OKAY}, {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_TRAINER}, {EC_WORD_IT, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_LEFT, EC_WORD_NEXT}, {EC_WORD_IT, EC_WORD_MUST_BE, EC_WORD_OVER, EC_WORD_SOON, EC_WORD_RIGHT, EC_WORD_QUES}, - {EC_WORD_THIS, EC_WORD_IS, EC_WORD_TOTALLY, EC_WORD_EASY, EC_WORD_ISN_T_IT_QUES, 0xFFFF}, - {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_POWER, EC_WORD_ON, 0xFFFF}, + {EC_WORD_THIS, EC_WORD_IS, EC_WORD_TOTALLY, EC_WORD_EASY, EC_WORD_ISN_T_IT_QUES, EC_EMPTY_WORD}, + {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_POWER, EC_WORD_ON, EC_EMPTY_WORD}, {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_GIVE_UP, EC_WORD_IN, EC_WORD_ME}, {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_IT}, {EC_WORD_GO, EC_WORD_ON, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_ANY, EC_WORD_MORE}, - {EC_WORD_A, EC_WORD_TRAINER, EC_WORD_AFTER, EC_WORD_ANOTHER, EC_WORD_ELLIPSIS, 0xFFFF}, + {EC_WORD_A, EC_WORD_TRAINER, EC_WORD_AFTER, EC_WORD_ANOTHER, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, {EC_WORD_DO, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_STEEL, EC_WORD_POKEMON, EC_WORD_QUES}, - {EC_WORD_EVERY, EC_WORD_TRAINER, EC_WORD_HERE, EC_WORD_IS, EC_WORD_TOO_WEAK, 0xFFFF}, + {EC_WORD_EVERY, EC_WORD_TRAINER, EC_WORD_HERE, EC_WORD_IS, EC_WORD_TOO_WEAK, EC_EMPTY_WORD}, {EC_WORD_YOU, EC_WORD_THINK, EC_WORD_THIS, EC_WORD_IS, EC_WORD_EASY, EC_WORD_QUES}, {EC_WORD_WHAT, EC_WORD_WILL, EC_WORD_COME, EC_WORD_AFTER, EC_WORD_THIS, EC_WORD_QUES}, - {EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_SO, EC_WORD_CONFUSED, EC_WORD_EXCL, 0xFFFF}, + {EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_SO, EC_WORD_CONFUSED, EC_WORD_EXCL, EC_EMPTY_WORD}, {EC_WORD_I, EC_WORD_JUST, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO_HOME, EC_WORD_ELLIPSIS}, {EC_WORD_YEEHAW_EXCL, EC_WORD_THIS, EC_WORD_PLACE, EC_WORD_IS, EC_WORD_A, EC_WORD_PUSHOVER}, {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_BEEN, EC_WORD_IN, EC_WORD_A, EC_WORD_BATTLE}, @@ -489,8 +489,8 @@ static void (* const sBattlePikeFunctions[])(void) = [BATTLE_PIKE_FUNC_SET_IN_WILD_MON_ROOM] = SetInWildMonRoom, [BATTLE_PIKE_FUNC_CLEAR_IN_WILD_MON_ROOM] = ClearInWildMonRoom, [BATTLE_PIKE_FUNC_SAVE] = SavePikeChallenge, - [BATTLE_PIKE_FUNC_NULL_9] = nullsub_76, - [BATTLE_PIKE_FUNC_NULL_10] = nullsub_124, + [BATTLE_PIKE_FUNC_DUMMY_1] = PikeDummy1, + [BATTLE_PIKE_FUNC_DUMMY_2] = PikeDummy2, [BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus, [BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon, [BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons, @@ -712,16 +712,16 @@ static void SavePikeChallenge(void) gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.challengePaused = TRUE; - save_serialize_map(); + SaveMapView(); TrySavingData(SAVE_LINK); } -static void nullsub_76(void) +static void PikeDummy1(void) { } -static void nullsub_124(void) +static void PikeDummy2(void) { } @@ -1186,7 +1186,7 @@ static bool8 StatusInflictionFadeOut(struct Task *task) task->data[7] += task->data[4]; if (task->data[7] > 16) task->data[7] = 16; - BlendPalettes(0xFFFFFFFF, task->data[7], RGB(11, 11, 11)); + BlendPalettes(PALETTES_ALL, task->data[7], RGB(11, 11, 11)); } if (task->data[7] >= 16) @@ -1205,7 +1205,7 @@ static bool8 StatusInflictionFadeIn(struct Task *task) task->data[7] -= task->data[5]; if (task->data[7] < 0) task->data[7] = 0; - BlendPalettes(0xFFFFFFFF, task->data[7], RGB(11, 11, 11)); + BlendPalettes(PALETTES_ALL, task->data[7], RGB(11, 11, 11)); } if (task->data[7] == 0) @@ -1237,7 +1237,7 @@ static void StartStatusInflictionScreenFlash(s16 fadeOutDelay, s16 fadeInDelay, static bool8 IsStatusInflictionScreenFlashTaskFinished(void) { - if (FindTaskIdByFunc(DoStatusInflictionScreenFlash) == 0xFF) + if (FindTaskIdByFunc(DoStatusInflictionScreenFlash) == TASK_NONE) return TRUE; else return FALSE; @@ -1328,7 +1328,7 @@ bool8 InBattlePike(void) return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS - || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_084693AC; + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED; } static void SetHintedRoom(void) diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index ac6d95338a..50efeecb4d 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -933,7 +933,7 @@ static void SavePyramidChallenge(void) gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); gSaveBlock2Ptr->frontier.challengePaused = TRUE; - save_serialize_map(); + SaveMapView(); TrySavingData(SAVE_LINK); } @@ -1399,8 +1399,12 @@ void GenerateBattlePyramidWildMon(void) for (i = 0; i < MAX_MON_MOVES; i++) SetMonMoveSlot(&gEnemyParty[0], wildMons[id].moves[i], i); - // BUG: Reading outside the array as lvl was used for mon level instead of frontier lvl mode. + // UB: Reading outside the array as lvl was used for mon level instead of frontier lvl mode. + #ifndef UBFIX if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] >= 140) + #else + if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[gSaveBlock2Ptr->frontier.lvlMode] >= 140) + #endif { id = (Random() % 17) + 15; for (i = 0; i < NUM_STATS; i++) diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 8fee578554..83bf35090b 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -34,71 +34,83 @@ #include "constants/rgb.h" #include "constants/songs.h" -EWRAM_DATA struct PyramidBagResources *gPyramidBagResources = NULL; -EWRAM_DATA struct PyramidBagCursorData gPyramidBagCursorData = {0}; +#define TAG_SCROLL_ARROW 2910 +#define TAG_PYRAMID_BAG 4132 +#define TAG_ITEM_ICON 4133 +#define TAG_ITEM_ICON_ALT 4134 -// This file's functions. -static void Task_HandlePyramidBagInput(u8 taskId); -static void Task_ChooseItemsToTossFromPyramidBag(u8 taskId); -static void sub_81C5B4C(u8 taskId); -static void Task_BeginItemSwap(u8 taskId); -static void sub_81C5D20(u8 taskId); -static void sub_81C674C(u8 taskId); -static void HandleMenuActionInput(u8 taskId); -static void HandleFewMenuActionsInput(u8 taskId); -static void sub_81C66EC(u8 taskId); -static void SetTaskToMainPyramidBagInputHandler(u8 taskId); -static void sub_81C6350(u8 taskId); -static void sub_81C64B4(u8 taskId); -static void sub_81C65CC(u8 taskId); -static void sub_81C66AC(u8 taskId); -static void PerformItemSwap(u8 taskId); -static void Task_ItemSwapHandleInput(u8 taskId); -static void sub_81C6A14(u8 taskId); +#define POS_NONE ((u8)-1) + +enum { + WIN_LIST, + WIN_INFO, + WIN_MSG, + WIN_TOSS_NUM, +}; + +EWRAM_DATA struct PyramidBagMenu *gPyramidBagMenu = NULL; +EWRAM_DATA struct PyramidBagMenuState gPyramidBagMenuState = {0}; + +static void Task_HandlePyramidBagInput(u8); +static void Task_ChooseItemsToTossFromPyramidBag(u8); +static void Task_ClosePyramidBag(u8); +static void Task_BeginItemSwap(u8); +static void OpenContextMenu(u8); +static void TryCloseBagToGiveItem(u8); +static void HandleMenuActionInput_2x2(u8); +static void HandleMenuActionInput_SingleRow(u8); +static void Task_WaitCloseErrorMessage(u8); +static void SetTaskToMainPyramidBagInputHandler(u8); +static void AskConfirmToss(u8); +static void Task_ChooseHowManyToToss(u8); +static void Task_TossItem(u8); +static void ShowCantHoldMessage(u8); +static void PerformItemSwap(u8); +static void Task_ItemSwapHandleInput(u8); +static void CancelItemSwap(u8); static void SetBagItemsListTemplate(void); -static void sub_81C504C(void); -static void sub_81C51DC(void); -static void AddScrollArrow(void); -static void sub_81C56F8(void); -static void sub_81C5A20(void); -static void sub_81C6BD8(void); -static void sub_81C6EF4(void); -static void sub_81C700C(void); -static void sub_81C6E98(void); -static void sub_81C6F20(void); -static void sub_81C6404(void); +static void CB2_LoadPyramidBagMenu(void); +static void InitPyramidBagBgs(void); +static void AddScrollArrows(void); +static void CreatePyramidBagInputTask(void); +static void InitPyramidBagScroll(void); +static void InitPyramidBagWindows(void); +static void CreatePyramidBagSprite(void); +static void CreateSwapLine(void); +static void LoadPyramidBagPalette(void); +static void ShakePyramidBag(void); +static void ShowNumToToss(void); static void CloseBattlePyramidBagTextWindow(void); -static bool8 sub_81C5238(void); -static bool8 sub_81C5078(void); -static void ShowItemImage(u16 itemId, u8 itemSpriteArrayId); -static void PyramidBag_CopyItemName(u8 *dst, u16 itemId); -static void sub_81C6FF8(u8 arg0); -static void PrintItemDescription(s32 listMenuId); -static void sub_81C5AB8(u8 y, u8 arg1); -static void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId); -static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId); -static u8 sub_81C6D24(u8 windowArrayId); -static void sub_81C6D6C(u8 windowArrayId); -static void sub_81C5EAC(u8 windowId); -static void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount); -static bool8 IsValidMenuAction(s8 arg0); -static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable); -static void sub_81C6CEC(u8 windowId); -static void sub_81C704C(u8 y); -static void sub_81C7028(bool8 invisible); -static void sub_81C6F68(struct Sprite *sprite); -static void BagAction_UseOnField(u8 taskId); -static void BagAction_Toss(u8 taskId); -static void BagAction_Give(u8 taskId); -static void BagAction_Cancel(u8 taskId); -static void BagAction_UseInBattle(u8 taskId); -static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); -static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y); -static void TossItem(u8 taskId); -static void DontTossItem(u8 taskId); +static bool8 LoadPyramidBagGfx(void); +static bool8 LoadPyramidBagMenu(void); +static void ShowItemIcon(u16, u8); +static void CopyBagItemName(u8 *, u16); +static void FreeItemIconSpriteByAltId(u8); +static void PrintItemDescription(s32); +static void PrintSelectorArrowAtPos(u8, u8); +static void PrintOnWindow_Font1(u8, const u8 *, u8, u8, u8, u8, u8, u8); +static void PrintOnWindow_Font7(u8, const u8 *, u8, u8, u8, u8, u8, u8); +static u8 OpenMenuActionWindowById(u8); +static void CloseMenuActionWindowById(u8); +static void PrintMenuActionText_SingleRow(u8); +static void PrintMenuActionText_MultiRow(u8, u8, u8); +static bool8 IsValidMenuAction(s8); +static void CreatePyramidBagYesNo(u8, const struct YesNoFuncTable *); +static void DrawTossNumberWindow(u8); +static void UpdateSwapLinePos(u8); +static void SetSwapLineInvisibility(bool8); +static void SpriteCB_BagWaitForShake(struct Sprite *); +static void BagAction_UseOnField(u8); +static void BagAction_Toss(u8); +static void BagAction_Give(u8); +static void BagAction_Cancel(u8); +static void BagAction_UseInBattle(u8); +static void BagCursorMoved(s32, bool8, struct ListMenu *); +static void PrintItemQuantity(u8 windowId, u32 itemId, u8 y); +static void TossItem(u8); +static void DontTossItem(u8); -// Const rom data. -static const struct BgTemplate gUnknown_0861F2B4[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -129,14 +141,14 @@ static const struct BgTemplate gUnknown_0861F2B4[] = }, }; -static const struct ListMenuTemplate gUnknown_0861F2C0 = +static const struct ListMenuTemplate sListMenuTemplate = { .items = NULL, - .moveCursorFunc = PyramidBagMoveCursorFunc, + .moveCursorFunc = BagCursorMoved, .itemPrintFunc = PrintItemQuantity, .totalItems = 0, .maxShowed = 0, - .windowId = 0, + .windowId = WIN_LIST, .header_X = 0, .item_X = 8, .cursor_X = 0, @@ -151,12 +163,14 @@ static const struct ListMenuTemplate gUnknown_0861F2C0 = .cursorKind = 0 }; -#define ACTION_USE_FIELD 0 -#define ACTION_TOSS 1 -#define ACTION_GIVE 2 -#define ACTION_CANCEL 3 -#define ACTION_USE_BATTLE 4 -#define ACTION_DUMMY 5 +enum { + ACTION_USE_FIELD, + ACTION_TOSS, + ACTION_GIVE, + ACTION_CANCEL, + ACTION_USE_BATTLE, + ACTION_DUMMY, +}; static const struct MenuAction sMenuActions[] = { @@ -168,26 +182,33 @@ static const struct MenuAction sMenuActions[] = [ACTION_DUMMY] = { gText_EmptyString2, NULL }, }; -static const u8 sFieldMenuActionIds[] = {ACTION_USE_FIELD, ACTION_GIVE, ACTION_TOSS, ACTION_CANCEL}; -static const u8 gUnknown_0861F30C[] = {ACTION_TOSS, ACTION_CANCEL}; -static const u8 sBattleMenuActionIds[] = {ACTION_USE_BATTLE, ACTION_CANCEL}; -static const u8 gUnknown_0861F310[] = {ACTION_CANCEL}; +static const u8 sMenuActionIds_Field[] = {ACTION_USE_FIELD, ACTION_GIVE, ACTION_TOSS, ACTION_CANCEL}; +static const u8 sMenuActionIds_ChooseToss[] = {ACTION_TOSS, ACTION_CANCEL}; +static const u8 sMenuActionIds_Battle[] = {ACTION_USE_BATTLE, ACTION_CANCEL}; +static const u8 sMenuActionIds_BattleCannotUse[] = {ACTION_CANCEL}; static const struct YesNoFuncTable sYesNoTossFuncions = { TossItem, DontTossItem }; -static const u8 sColorTable[][3] = -{ - {0, 2, 3}, - {0, 3, 1}, - {1, 2, 3}, +enum { + COLORID_DARK_GRAY, + COLORID_LIGHT_GRAY, + COLORID_WHITE_BG, + COLORID_NONE = 0xFF }; -static const struct WindowTemplate gUnknown_0861F328[] = +static const u8 sTextColors[][3] = { - { + [COLORID_DARK_GRAY] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, + [COLORID_LIGHT_GRAY] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_WHITE}, + [COLORID_WHITE_BG] = {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, // Unused +}; + +static const struct WindowTemplate sWindowTemplates[] = +{ + [WIN_LIST] = { .bg = 0, .tilemapLeft = 14, .tilemapTop = 2, @@ -196,7 +217,7 @@ static const struct WindowTemplate gUnknown_0861F328[] = .paletteNum = 15, .baseBlock = 30 }, - { + [WIN_INFO] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 13, @@ -205,7 +226,7 @@ static const struct WindowTemplate gUnknown_0861F328[] = .paletteNum = 15, .baseBlock = 270 }, - { + [WIN_MSG] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 15, @@ -214,7 +235,7 @@ static const struct WindowTemplate gUnknown_0861F328[] = .paletteNum = 15, .baseBlock = 354 }, - { + [WIN_TOSS_NUM] = { .bg = 1, .tilemapLeft = 24, .tilemapTop = 17, @@ -226,9 +247,17 @@ static const struct WindowTemplate gUnknown_0861F328[] = DUMMY_WIN_TEMPLATE, }; -static const struct WindowTemplate gUnknown_0861F350[] = +enum { + MENU_WIN_1x1, + MENU_WIN_1x2, + MENU_WIN_2x2, + MENU_WIN_2x3, + MENU_WIN_YESNO, +}; + +static const struct WindowTemplate sWindowTemplates_MenuActions[] = { - { + [MENU_WIN_1x1] = { .bg = 1, .tilemapLeft = 22, .tilemapTop = 17, @@ -237,7 +266,7 @@ static const struct WindowTemplate gUnknown_0861F350[] = .paletteNum = 15, .baseBlock = 472 }, - { + [MENU_WIN_1x2] = { .bg = 1, .tilemapLeft = 22, .tilemapTop = 15, @@ -246,7 +275,7 @@ static const struct WindowTemplate gUnknown_0861F350[] = .paletteNum = 15, .baseBlock = 472 }, - { + [MENU_WIN_2x2] = { .bg = 1, .tilemapLeft = 15, .tilemapTop = 15, @@ -255,7 +284,7 @@ static const struct WindowTemplate gUnknown_0861F350[] = .paletteNum = 15, .baseBlock = 472 }, - { + [MENU_WIN_2x3] = { // Unused .bg = 1, .tilemapLeft = 15, .tilemapTop = 13, @@ -264,7 +293,7 @@ static const struct WindowTemplate gUnknown_0861F350[] = .paletteNum = 15, .baseBlock = 472 }, - { + [MENU_WIN_YESNO] = { .bg = 1, .tilemapLeft = 24, .tilemapTop = 15, @@ -275,7 +304,7 @@ static const struct WindowTemplate gUnknown_0861F350[] = }, }; -static const struct OamData gOamData_861F378 = +static const struct OamData sOamData_PyramidBag = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -292,24 +321,24 @@ static const struct OamData gOamData_861F378 = .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_861F380[] = +static const union AnimCmd sAnim_PyramidBag[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_END, }; -static const union AnimCmd * const gSpriteAnimTable_861F388[] = +static const union AnimCmd * const sAnims_PyramidBag[] = { - gSpriteAnim_861F380, + sAnim_PyramidBag, }; -static const union AffineAnimCmd gSpriteAffineAnim_861F38C[] = +static const union AffineAnimCmd sAffineAnim_PyramidBag_Still[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_861F39C[] = +static const union AffineAnimCmd sAffineAnim_PyramidBag_Shake[] = { AFFINEANIMCMD_FRAME(0, 0, 254, 2), AFFINEANIMCMD_FRAME(0, 0, 2, 4), @@ -318,42 +347,50 @@ static const union AffineAnimCmd gSpriteAffineAnim_861F39C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd * const gSpriteAffineAnimTable_861F3C4[] = -{ - gSpriteAffineAnim_861F38C, - gSpriteAffineAnim_861F39C, +enum { + ANIM_BAG_STILL, + ANIM_BAG_SHAKE, }; -static const struct CompressedSpriteSheet gPyramidBagSpriteSheet = {gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024}; - -static const struct SpriteTemplate gUnknown_0861F3D4 = +static const union AffineAnimCmd * const sAffineAnims_PyramidBag[] = { - .tileTag = 0x1024, - .paletteTag = 0x1024, - .oam = &gOamData_861F378, - .anims = gSpriteAnimTable_861F388, + [ANIM_BAG_STILL] = sAffineAnim_PyramidBag_Still, + [ANIM_BAG_SHAKE] = sAffineAnim_PyramidBag_Shake, +}; + +static const struct CompressedSpriteSheet sSpriteSheet_PyramidBag = {gBattleFrontierGfx_PyramidBag, 0x0800, TAG_PYRAMID_BAG}; + +static const struct SpriteTemplate sSpriteTemplate_PyramidBag = +{ + .tileTag = TAG_PYRAMID_BAG, + .paletteTag = TAG_PYRAMID_BAG, + .oam = &sOamData_PyramidBag, + .anims = sAnims_PyramidBag, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_861F3C4, + .affineAnims = sAffineAnims_PyramidBag, .callback = SpriteCallbackDummy }; -// code void InitBattlePyramidBagCursorPosition(void) { - gPyramidBagCursorData.cursorPosition = 0; - gPyramidBagCursorData.scrollPosition = 0; + gPyramidBagMenuState.cursorPosition = 0; + gPyramidBagMenuState.scrollPosition = 0; } void CB2_PyramidBagMenuFromStartMenu(void) { - GoToBattlePyramidBagMenu(0, CB2_ReturnToFieldWithOpenMenu); + GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_FIELD, CB2_ReturnToFieldWithOpenMenu); } -static void sub_81C4F10(void) +// Unused, CB2_BagMenuFromBattle is used instead +static void OpenBattlePyramidBagInBattle(void) { - GoToBattlePyramidBagMenu(1, CB2_SetUpReshowBattleScreenAfterMenu2); + GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_BATTLE, CB2_SetUpReshowBattleScreenAfterMenu2); } +// If the player finishes a round at the Battle Pyramid with insufficient space in their +// Pyramid Bag to store the party's held items, they may choose items to toss in order to +// make room. void ChooseItemsToTossFromPyramidBag(void) { ScriptContext2_Enable(); @@ -367,37 +404,37 @@ static void Task_ChooseItemsToTossFromPyramidBag(u8 taskId) { CleanupOverworldWindowsAndTilemaps(); gFieldCallback2 = CB2_FadeFromPartyMenu; - GoToBattlePyramidBagMenu(3, CB2_ReturnToField); + GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_CHOOSE_TOSS, CB2_ReturnToField); DestroyTask(taskId); } } void CB2_ReturnToPyramidBagMenu(void) { - GoToBattlePyramidBagMenu(4, gPyramidBagCursorData.callback); + GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PREV, gPyramidBagMenuState.exitCallback); } -void GoToBattlePyramidBagMenu(u8 a0, void (*callback)(void)) +void GoToBattlePyramidBagMenu(u8 location, void (*exitCallback)(void)) { - gPyramidBagResources = AllocZeroed(sizeof(*gPyramidBagResources)); + gPyramidBagMenu = AllocZeroed(sizeof(*gPyramidBagMenu)); - if (a0 != 4) - gPyramidBagCursorData.unk4 = a0; + if (location != PYRAMIDBAG_LOC_PREV) + gPyramidBagMenuState.location = location; - if (callback != NULL) - gPyramidBagCursorData.callback = callback; + if (exitCallback != NULL) + gPyramidBagMenuState.exitCallback = exitCallback; - gPyramidBagResources->callback2 = NULL; - gPyramidBagResources->unk814 = 0xFF; - gPyramidBagResources->scrollIndicatorsTaskId = 0xFF; + gPyramidBagMenu->newScreenCallback = NULL; + gPyramidBagMenu->toSwapPos = POS_NONE; + gPyramidBagMenu->scrollIndicatorsTaskId = TASK_NONE; - memset(gPyramidBagResources->itemsSpriteIds, 0xFF, sizeof(gPyramidBagResources->itemsSpriteIds)); - memset(gPyramidBagResources->windowIds, 0xFF, sizeof(gPyramidBagResources->windowIds)); + memset(gPyramidBagMenu->spriteIds, SPRITE_NONE, sizeof(gPyramidBagMenu->spriteIds)); + memset(gPyramidBagMenu->windowIds, WINDOW_NONE, sizeof(gPyramidBagMenu->windowIds)); - SetMainCallback2(sub_81C504C); + SetMainCallback2(CB2_LoadPyramidBagMenu); } -static void sub_81C501C(void) +static void CB2_PyramidBag(void) { RunTasks(); AnimateSprites(); @@ -406,19 +443,21 @@ static void sub_81C501C(void) UpdatePaletteFade(); } -static void sub_81C5038(void) +static void VBlankCB_PyramidBag(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -static void sub_81C504C(void) +static void CB2_LoadPyramidBagMenu(void) { - while (MenuHelpers_CallLinkSomething() != TRUE && sub_81C5078() != TRUE && MenuHelpers_LinkSomething() != TRUE); + while (MenuHelpers_CallLinkSomething() != TRUE + && LoadPyramidBagMenu() != TRUE + && MenuHelpers_LinkSomething() != TRUE); } -static bool8 sub_81C5078(void) +static bool8 LoadPyramidBagMenu(void) { switch (gMain.state) { @@ -446,30 +485,26 @@ static bool8 sub_81C5078(void) break; case 5: if (!MenuHelpers_LinkSomething()) - { ResetTasks(); - } gMain.state++; break; case 6: - sub_81C51DC(); - gPyramidBagResources->state = 0; + InitPyramidBagBgs(); + gPyramidBagMenu->state = 0; gMain.state++; break; case 7: - if (sub_81C5238()) - { + if (LoadPyramidBagGfx()) gMain.state++; - } break; case 8: - sub_81C6BD8(); + InitPyramidBagWindows(); gMain.state++; break; case 9: - sub_81C5924(); - sub_81C59BC(); - sub_81C5A20(); + UpdatePyramidBagList(); + UpdatePyramidBagCursorPos(); + InitPyramidBagScroll(); gMain.state++; break; case 10: @@ -477,44 +512,44 @@ static bool8 sub_81C5078(void) gMain.state++; break; case 11: - sub_81C56F8(); + CreatePyramidBagInputTask(); gMain.state++; break; case 12: - sub_81C6EF4(); + CreatePyramidBagSprite(); gMain.state++; break; case 13: - AddScrollArrow(); + AddScrollArrows(); gMain.state++; break; case 14: - sub_81C700C(); + CreateSwapLine(); gMain.state++; break; case 15: - BlendPalettes(0xFFFFFFFF, 0x10, 0); + BlendPalettes(PALETTES_ALL, 16, 0); gMain.state++; break; case 16: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gPaletteFade.bufferTransferDisabled = FALSE; gMain.state++; break; default: - SetVBlankCallback(sub_81C5038); - SetMainCallback2(sub_81C501C); + SetVBlankCallback(VBlankCB_PyramidBag); + SetMainCallback2(CB2_PyramidBag); return TRUE; } return FALSE; } -static void sub_81C51DC(void) +static void InitPyramidBagBgs(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0861F2B4, ARRAY_COUNT(gUnknown_0861F2B4)); - SetBgTilemapBuffer(2, gPyramidBagResources->tilemapBuffer); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + SetBgTilemapBuffer(2, gPyramidBagMenu->tilemapBuffer); ResetAllBgsCoordinates(); ScheduleBgCopyTilemapToVram(2); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | @@ -526,37 +561,37 @@ static void sub_81C51DC(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -static bool8 sub_81C5238(void) +static bool8 LoadPyramidBagGfx(void) { - switch (gPyramidBagResources->state) + switch (gPyramidBagMenu->state) { case 0: ResetTempTileDataBuffers(); DecompressAndCopyTileDataToVram(2, gBagScreen_Gfx, 0, 0, 0); - gPyramidBagResources->state++; + gPyramidBagMenu->state++; break; case 1: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - LZDecompressWram(gBattleFrontierGfx_PyramidBagTileMap, gPyramidBagResources->tilemapBuffer); - gPyramidBagResources->state++; + LZDecompressWram(gBattleFrontierGfx_PyramidBagTileMap, gPyramidBagMenu->tilemapBuffer); + gPyramidBagMenu->state++; } break; case 2: - LoadCompressedPalette(gUnknown_08D9AF44, 0, 0x20); - gPyramidBagResources->state++; + LoadCompressedPalette(gUnknown_08D9AF44, 0, 32); + gPyramidBagMenu->state++; break; case 3: - LoadCompressedSpriteSheet(&gPyramidBagSpriteSheet); - gPyramidBagResources->state++; + LoadCompressedSpriteSheet(&sSpriteSheet_PyramidBag); + gPyramidBagMenu->state++; break; case 4: - sub_81C6E98(); - gPyramidBagResources->state++; + LoadPyramidBagPalette(); + gPyramidBagMenu->state++; break; default: - LoadListMenuArrowsGfx(); - gPyramidBagResources->state = 0; + LoadListMenuSwapLineGfx(); + gPyramidBagMenu->state = 0; return TRUE; } @@ -566,30 +601,30 @@ static bool8 sub_81C5238(void) static void SetBagItemsListTemplate(void) { u16 i; - u16 *pyramidItems = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; + u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; - for (i = 0; i < gPyramidBagResources->listMenuCount - 1; i++) + for (i = 0; i < gPyramidBagMenu->listMenuCount - 1; i++) { - PyramidBag_CopyItemName(gPyramidBagResources->itemStrings[i], pyramidItems[i]); - gPyramidBagResources->bagListItems[i].name = gPyramidBagResources->itemStrings[i]; - gPyramidBagResources->bagListItems[i].id = i; + CopyBagItemName(gPyramidBagMenu->itemStrings[i], itemIds[i]); + gPyramidBagMenu->bagListItems[i].name = gPyramidBagMenu->itemStrings[i]; + gPyramidBagMenu->bagListItems[i].id = i; } - StringCopy(gPyramidBagResources->itemStrings[i], gText_CloseBag); - gPyramidBagResources->bagListItems[i].name = gPyramidBagResources->itemStrings[i]; - gPyramidBagResources->bagListItems[i].id = LIST_CANCEL; - gMultiuseListMenuTemplate = gUnknown_0861F2C0; - gMultiuseListMenuTemplate.totalItems = gPyramidBagResources->listMenuCount; - gMultiuseListMenuTemplate.items = gPyramidBagResources->bagListItems; - gMultiuseListMenuTemplate.maxShowed = gPyramidBagResources->listMenuMaxShown; + StringCopy(gPyramidBagMenu->itemStrings[i], gText_CloseBag); + gPyramidBagMenu->bagListItems[i].name = gPyramidBagMenu->itemStrings[i]; + gPyramidBagMenu->bagListItems[i].id = LIST_CANCEL; + gMultiuseListMenuTemplate = sListMenuTemplate; + gMultiuseListMenuTemplate.totalItems = gPyramidBagMenu->listMenuCount; + gMultiuseListMenuTemplate.items = gPyramidBagMenu->bagListItems; + gMultiuseListMenuTemplate.maxShowed = gPyramidBagMenu->listMenuMaxShown; } -static void PyramidBag_CopyItemName(u8 *dst, u16 itemId) +static void CopyBagItemName(u8 *dst, u16 itemId) { if (ItemId_GetPocket(itemId) == POCKET_BERRIES) { ConvertIntToDecimalStringN(gStringVar1, ITEM_TO_BERRY(itemId), STR_CONV_MODE_LEADING_ZEROS, 2); CopyItemName(itemId, gStringVar2); - StringExpandPlaceholders(dst, gText_NumberVar1Clear7Var2); + StringExpandPlaceholders(dst, gText_NumberItem_TMBerry); } else { @@ -597,45 +632,48 @@ static void PyramidBag_CopyItemName(u8 *dst, u16 itemId) } } -static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void BagCursorMoved(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) { PlaySE(SE_SELECT); - sub_81C6F20(); + ShakePyramidBag(); } - if (gPyramidBagResources->unk814 == 0xFF) + if (gPyramidBagMenu->toSwapPos == POS_NONE) { - sub_81C6FF8(gPyramidBagResources->unk815 ^ 1); + FreeItemIconSpriteByAltId(gPyramidBagMenu->isAltIcon ^ 1); if (itemIndex != LIST_CANCEL) - ShowItemImage(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gPyramidBagResources->unk815); + ShowItemIcon(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gPyramidBagMenu->isAltIcon); else - ShowItemImage(0xFFFF, gPyramidBagResources->unk815); - gPyramidBagResources->unk815 ^= 1; + ShowItemIcon(0xFFFF, gPyramidBagMenu->isAltIcon); // Show exit arrow if on Cancel + gPyramidBagMenu->isAltIcon ^= 1; PrintItemDescription(itemIndex); } } -static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) +static void PrintItemQuantity(u8 windowId, u32 itemIndex, u8 y) { s32 xAlign; if (itemIndex == LIST_CANCEL) return; - if (gPyramidBagResources->unk814 != 0xFF) + if (gPyramidBagMenu->toSwapPos != POS_NONE) { - if (gPyramidBagResources->unk814 == (u8)(itemIndex)) - sub_81C5AB8(y, 1); + // Performing a swap. Keep a gray selector arrow on the position to swap to + // and erase the selector arrow anywhere else + if (gPyramidBagMenu->toSwapPos == (u8)(itemIndex)) + PrintSelectorArrowAtPos(y, COLORID_LIGHT_GRAY); else - sub_81C5AB8(y, 0xFF); + PrintSelectorArrowAtPos(y, COLORID_NONE); } + ConvertIntToDecimalStringN(gStringVar1, gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], STR_CONV_MODE_RIGHT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_xVar1); - xAlign = GetStringRightAlignXOffset(7, gStringVar4, 0x77); - PrintOnWindow_Font7(windowId, gStringVar4, xAlign, y, 0, 0, TEXT_SPEED_FF, 0); + xAlign = GetStringRightAlignXOffset(7, gStringVar4, 119); + PrintOnWindow_Font7(windowId, gStringVar4, xAlign, y, 0, 0, TEXT_SPEED_FF, COLORID_DARK_GRAY); } static void PrintItemDescription(s32 listMenuId) @@ -647,34 +685,42 @@ static void PrintItemDescription(s32 listMenuId) } else { - StringCopy(gStringVar1, gReturnToXStringsTable2[gPyramidBagCursorData.unk4]); + StringCopy(gStringVar1, gPyramidBagMenu_ReturnToStrings[gPyramidBagMenuState.location]); StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); desc = gStringVar4; } - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - PrintOnWindow_Font1(1, desc, 3, 0, 0, 1, 0, 0); + FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); + PrintOnWindow_Font1(WIN_INFO, desc, 3, 0, 0, 1, 0, COLORID_DARK_GRAY); } -static void AddScrollArrow(void) +static void AddScrollArrows(void) { - if (gPyramidBagResources->scrollIndicatorsTaskId == 0xFF) - gPyramidBagResources->scrollIndicatorsTaskId = AddScrollIndicatorArrowPairParameterized(2, 172, 12, 148, gPyramidBagResources->listMenuCount - gPyramidBagResources->listMenuMaxShown, 0xB5E, 0xB5E, &gPyramidBagCursorData.scrollPosition); + if (gPyramidBagMenu->scrollIndicatorsTaskId == TASK_NONE) + gPyramidBagMenu->scrollIndicatorsTaskId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 172, 12, 148, + gPyramidBagMenu->listMenuCount - gPyramidBagMenu->listMenuMaxShown, + TAG_SCROLL_ARROW, TAG_SCROLL_ARROW, + &gPyramidBagMenuState.scrollPosition); } static void RemoveScrollArrow(void) { - if (gPyramidBagResources->scrollIndicatorsTaskId != 0xFF) + if (gPyramidBagMenu->scrollIndicatorsTaskId != TASK_NONE) { - RemoveScrollIndicatorArrowPair(gPyramidBagResources->scrollIndicatorsTaskId); - gPyramidBagResources->scrollIndicatorsTaskId = 0xFF; + RemoveScrollIndicatorArrowPair(gPyramidBagMenu->scrollIndicatorsTaskId); + gPyramidBagMenu->scrollIndicatorsTaskId = TASK_NONE; } } -static void sub_81C56F8(void) +#define tListTaskId data[0] +#define tListPos data[1] +#define tQuantity data[2] +#define tNumToToss data[8] + +static void CreatePyramidBagInputTask(void) { u8 taskId = CreateTask(Task_HandlePyramidBagInput, 0); s16 *data = gTasks[taskId].data; - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gPyramidBagCursorData.scrollPosition, gPyramidBagCursorData.cursorPosition); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, gPyramidBagMenuState.scrollPosition, gPyramidBagMenuState.cursorPosition); } static void SwapItems(u8 id1, u8 id2) @@ -728,9 +774,9 @@ static void CompactItems(void) for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { - if (itemIds[i] == 0 || quantities[i] == 0) + if (itemIds[i] == ITEM_NONE || quantities[i] == 0) { - itemIds[i] = 0; + itemIds[i] = ITEM_NONE; quantities[i] = 0; } } @@ -738,98 +784,100 @@ static void CompactItems(void) { for (j = i + 1; j < PYRAMID_BAG_ITEMS_COUNT; j++) { - if (itemIds[i] == 0 || quantities[i] == 0) + if (itemIds[i] == ITEM_NONE || quantities[i] == 0) SwapItems(i, j); } } } -void sub_81C5924(void) +void UpdatePyramidBagList(void) { u16 i; u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; CompactItems(); - gPyramidBagResources->listMenuCount = 0; + gPyramidBagMenu->listMenuCount = 0; for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { - if (itemIds[i] != 0) - gPyramidBagResources->listMenuCount++; + if (itemIds[i] != ITEM_NONE) + gPyramidBagMenu->listMenuCount++; } - gPyramidBagResources->listMenuCount++; - if (gPyramidBagResources->listMenuCount > 8) - gPyramidBagResources->listMenuMaxShown = 8; + gPyramidBagMenu->listMenuCount++; + if (gPyramidBagMenu->listMenuCount > 8) + gPyramidBagMenu->listMenuMaxShown = 8; else - gPyramidBagResources->listMenuMaxShown = gPyramidBagResources->listMenuCount; + gPyramidBagMenu->listMenuMaxShown = gPyramidBagMenu->listMenuCount; } -void sub_81C59BC(void) +void UpdatePyramidBagCursorPos(void) { - if (gPyramidBagCursorData.scrollPosition != 0 && gPyramidBagCursorData.scrollPosition + gPyramidBagResources->listMenuMaxShown > gPyramidBagResources->listMenuCount) - gPyramidBagCursorData.scrollPosition = gPyramidBagResources->listMenuCount - gPyramidBagResources->listMenuMaxShown; - if (gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition >= gPyramidBagResources->listMenuCount) + if (gPyramidBagMenuState.scrollPosition != 0 && gPyramidBagMenuState.scrollPosition + gPyramidBagMenu->listMenuMaxShown > gPyramidBagMenu->listMenuCount) + gPyramidBagMenuState.scrollPosition = gPyramidBagMenu->listMenuCount - gPyramidBagMenu->listMenuMaxShown; + + if (gPyramidBagMenuState.scrollPosition + gPyramidBagMenuState.cursorPosition >= gPyramidBagMenu->listMenuCount) { - if (gPyramidBagResources->listMenuCount == 0) - gPyramidBagCursorData.cursorPosition = 0; + if (gPyramidBagMenu->listMenuCount == 0) + gPyramidBagMenuState.cursorPosition = 0; else - gPyramidBagCursorData.cursorPosition = gPyramidBagResources->listMenuCount - 1; + gPyramidBagMenuState.cursorPosition = gPyramidBagMenu->listMenuCount - 1; } } -static void sub_81C5A20(void) +static void InitPyramidBagScroll(void) { u8 i; - if (gPyramidBagCursorData.cursorPosition > 4) + if (gPyramidBagMenuState.cursorPosition > 4) { - for (i = 0; i <= gPyramidBagCursorData.cursorPosition - 4; i++) + for (i = 0; i <= gPyramidBagMenuState.cursorPosition - 4; i++) { - if (gPyramidBagCursorData.scrollPosition + gPyramidBagResources->listMenuMaxShown == gPyramidBagResources->listMenuCount) - { - // daycare.c sends its regards. + if (gPyramidBagMenuState.scrollPosition + gPyramidBagMenu->listMenuMaxShown == gPyramidBagMenu->listMenuCount) break; - } - gPyramidBagCursorData.cursorPosition--; - gPyramidBagCursorData.scrollPosition++; + + gPyramidBagMenuState.cursorPosition--; + gPyramidBagMenuState.scrollPosition++; } } } -static void sub_81C5A98(u8 listMenuTaskId, u8 arg1) +static void PrintSelectorArrow(u8 listMenuTaskId, u8 colorId) { u8 y = ListMenuGetYCoordForPrintingArrowCursor(listMenuTaskId); - sub_81C5AB8(y, arg1); + PrintSelectorArrowAtPos(y, colorId); } -static void sub_81C5AB8(u8 y, u8 arg1) +static void PrintSelectorArrowAtPos(u8 y, u8 colorId) { - if (arg1 == 0xFF) - FillWindowPixelRect(0, PIXEL_FILL(0), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + if (colorId == COLORID_NONE) // If 'no color', erase arrow + FillWindowPixelRect(WIN_LIST, PIXEL_FILL(0), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else - PrintOnWindow_Font1(0, gText_SelectorArrow2, 0, y, 0, 0, 0, arg1); + PrintOnWindow_Font1(WIN_LIST, gText_SelectorArrow2, 0, y, 0, 0, 0, colorId); } -void CloseBattlePyramidBagAndSetCallback(u8 taskId) +void CloseBattlePyramidBag(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].func = sub_81C5B4C; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_ClosePyramidBag; } -static void sub_81C5B4C(u8 taskId) +static void Task_ClosePyramidBag(u8 taskId) { s16 *data = gTasks[taskId].data; if (!gPaletteFade.active) { - DestroyListMenuTask(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); - if (gPyramidBagResources->callback2 != NULL) - SetMainCallback2(gPyramidBagResources->callback2); + DestroyListMenuTask(tListTaskId, &gPyramidBagMenuState.scrollPosition, &gPyramidBagMenuState.cursorPosition); + + // If ready for a new screen (e.g. party menu for giving an item) go to that screen + // Otherwise exit the bag and use callback set up when the bag was first opened + if (gPyramidBagMenu->newScreenCallback != NULL) + SetMainCallback2(gPyramidBagMenu->newScreenCallback); else - SetMainCallback2(gPyramidBagCursorData.callback); + SetMainCallback2(gPyramidBagMenuState.exitCallback); RemoveScrollArrow(); ResetSpriteData(); FreeAllSpritePalettes(); FreeAllWindowBuffers(); - Free(gPyramidBagResources); + Free(gPyramidBagMenu); DestroyTask(taskId); } } @@ -837,108 +885,110 @@ static void sub_81C5B4C(u8 taskId) static void Task_HandlePyramidBagInput(u8 taskId) { s16 *data = gTasks[taskId].data; - if (MenuHelpers_CallLinkSomething() != TRUE && !gPaletteFade.active) + if (MenuHelpers_CallLinkSomething() == TRUE || gPaletteFade.active) + return; + + if (JOY_NEW(SELECT_BUTTON)) { - if (JOY_NEW(SELECT_BUTTON)) + if (gPyramidBagMenuState.location != PYRAMIDBAG_LOC_PARTY) { - if (gPyramidBagCursorData.unk4 != 2) + ListMenuGetScrollAndRow(tListTaskId, &gPyramidBagMenuState.scrollPosition, &gPyramidBagMenuState.cursorPosition); + if (gPyramidBagMenuState.scrollPosition + gPyramidBagMenuState.cursorPosition != gPyramidBagMenu->listMenuCount - 1) { - ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); - if (gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition != gPyramidBagResources->listMenuCount - 1) - { - PlaySE(SE_SELECT); - Task_BeginItemSwap(taskId); - } + PlaySE(SE_SELECT); + Task_BeginItemSwap(taskId); } } - else + } + else + { + s32 listId = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &gPyramidBagMenuState.scrollPosition, &gPyramidBagMenuState.cursorPosition); + switch (listId) { - s32 listId = ListMenu_ProcessInput(data[0]); - ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); - switch (listId) - { - case LIST_NOTHING_CHOSEN: - break; - case LIST_CANCEL: - PlaySE(SE_SELECT); - gSpecialVar_ItemId = 0; - CloseBattlePyramidBagAndSetCallback(taskId); - break; - default: - PlaySE(SE_SELECT); - gSpecialVar_ItemId = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listId]; - data[1] = listId; - data[2] = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode][listId]; - if (gPyramidBagCursorData.unk4 == 2) - sub_81C674C(taskId); - else - sub_81C5D20(taskId); - break; - } + case LIST_NOTHING_CHOSEN: + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + gSpecialVar_ItemId = ITEM_NONE; + CloseBattlePyramidBag(taskId); + break; + default: + PlaySE(SE_SELECT); + gSpecialVar_ItemId = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listId]; + tListPos = listId; + tQuantity = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode][listId]; + if (gPyramidBagMenuState.location == PYRAMIDBAG_LOC_PARTY) + TryCloseBagToGiveItem(taskId); + else + OpenContextMenu(taskId); + break; } } } -static void sub_81C5D20(u8 taskId) +static void OpenContextMenu(u8 taskId) { s16 *data = gTasks[taskId].data; RemoveScrollArrow(); - sub_81C5A98(data[0], 1); - switch (gPyramidBagCursorData.unk4) + PrintSelectorArrow(tListTaskId, COLORID_LIGHT_GRAY); + switch (gPyramidBagMenuState.location) { default: - gPyramidBagResources->menuActionIds = sFieldMenuActionIds; - gPyramidBagResources->menuActionsCount = ARRAY_COUNT(sFieldMenuActionIds); +// case PYRAMIDBAG_LOC_FIELD: +// case PYRAMIDBAG_LOC_PARTY: + gPyramidBagMenu->menuActionIds = sMenuActionIds_Field; + gPyramidBagMenu->menuActionsCount = ARRAY_COUNT(sMenuActionIds_Field); break; - case 1: + case PYRAMIDBAG_LOC_BATTLE: if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) { - gPyramidBagResources->menuActionIds = sBattleMenuActionIds; - gPyramidBagResources->menuActionsCount = ARRAY_COUNT(sBattleMenuActionIds); + gPyramidBagMenu->menuActionIds = sMenuActionIds_Battle; + gPyramidBagMenu->menuActionsCount = ARRAY_COUNT(sMenuActionIds_Battle); } else { - gPyramidBagResources->menuActionIds = gUnknown_0861F310; - gPyramidBagResources->menuActionsCount = ARRAY_COUNT(gUnknown_0861F310); + gPyramidBagMenu->menuActionIds = sMenuActionIds_BattleCannotUse; + gPyramidBagMenu->menuActionsCount = ARRAY_COUNT(sMenuActionIds_BattleCannotUse); } break; - case 3: - gPyramidBagResources->menuActionIds = gUnknown_0861F30C; - gPyramidBagResources->menuActionsCount = ARRAY_COUNT(gUnknown_0861F30C); + case PYRAMIDBAG_LOC_CHOOSE_TOSS: + gPyramidBagMenu->menuActionIds = sMenuActionIds_ChooseToss; + gPyramidBagMenu->menuActionsCount = ARRAY_COUNT(sMenuActionIds_ChooseToss); break; } CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); - if (gPyramidBagResources->menuActionsCount == 1) - sub_81C5EAC(sub_81C6D24(0)); - else if (gPyramidBagResources->menuActionsCount == 2) - sub_81C5EAC(sub_81C6D24(1)); + FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); + PrintOnWindow_Font1(WIN_INFO, gStringVar4, 3, 0, 0, 1, 0, COLORID_DARK_GRAY); + if (gPyramidBagMenu->menuActionsCount == 1) + PrintMenuActionText_SingleRow(OpenMenuActionWindowById(MENU_WIN_1x1)); + else if (gPyramidBagMenu->menuActionsCount == 2) + PrintMenuActionText_SingleRow(OpenMenuActionWindowById(MENU_WIN_1x2)); else - sub_81C5F08(sub_81C6D24(2), 2, 2); + PrintMenuActionText_MultiRow(OpenMenuActionWindowById(MENU_WIN_2x2), 2, 2); - if (gPyramidBagResources->menuActionsCount == 4) - gTasks[taskId].func = HandleMenuActionInput; + if (gPyramidBagMenu->menuActionsCount == 2 * 2) // Assumes any non 2x2 menu is single-row + gTasks[taskId].func = HandleMenuActionInput_2x2; else - gTasks[taskId].func = HandleFewMenuActionsInput; + gTasks[taskId].func = HandleMenuActionInput_SingleRow; } -static void sub_81C5EAC(u8 windowId) +static void PrintMenuActionText_SingleRow(u8 windowId) { - AddItemMenuActionTextPrinters(windowId, 7, 8, 1, 0, 0x10, gPyramidBagResources->menuActionsCount, sMenuActions, gPyramidBagResources->menuActionIds); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gPyramidBagResources->menuActionsCount, 0); + AddItemMenuActionTextPrinters(windowId, 7, 8, 1, 0, 0x10, gPyramidBagMenu->menuActionsCount, sMenuActions, gPyramidBagMenu->menuActionIds); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gPyramidBagMenu->menuActionsCount, 0); } -static void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount) +static void PrintMenuActionText_MultiRow(u8 windowId, u8 horizontalCount, u8 verticalCount) { - sub_8198DBC(windowId, 7, 8, 1, 0x38, horizontalCount, verticalCount, sMenuActions, gPyramidBagResources->menuActionIds); - sub_8199944(windowId, 0x38, horizontalCount, verticalCount, 0); + PrintMenuActionGrid(windowId, 7, 8, 1, 56, horizontalCount, verticalCount, sMenuActions, gPyramidBagMenu->menuActionIds); + InitMenuActionGrid(windowId, 56, horizontalCount, verticalCount, 0); } -static void HandleFewMenuActionsInput(u8 taskId) +static void HandleMenuActionInput_SingleRow(u8 taskId) { if (MenuHelpers_CallLinkSomething() != TRUE) { @@ -953,14 +1003,14 @@ static void HandleFewMenuActionsInput(u8 taskId) break; default: PlaySE(SE_SELECT); - if (sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8 != NULL) - sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8(taskId); + if (sMenuActions[gPyramidBagMenu->menuActionIds[id]].func.void_u8 != NULL) + sMenuActions[gPyramidBagMenu->menuActionIds[id]].func.void_u8(taskId); break; } } } -static void HandleMenuActionInput(u8 taskId) +static void HandleMenuActionInput_2x2(u8 taskId) { if (MenuHelpers_CallLinkSomething() != TRUE) { @@ -975,7 +1025,7 @@ static void HandleMenuActionInput(u8 taskId) } else if (JOY_NEW(DPAD_DOWN)) { - if (id < gPyramidBagResources->menuActionsCount - 2 && IsValidMenuAction(id + 2)) + if (id < gPyramidBagMenu->menuActionsCount - 2 && IsValidMenuAction(id + 2)) { PlaySE(SE_SELECT); ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); @@ -1000,8 +1050,8 @@ static void HandleMenuActionInput(u8 taskId) else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - if (sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8 != NULL) - sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8(taskId); + if (sMenuActions[gPyramidBagMenu->menuActionIds[id]].func.void_u8 != NULL) + sMenuActions[gPyramidBagMenu->menuActionIds[id]].func.void_u8(taskId); } else if (JOY_NEW(B_BUTTON)) { @@ -1015,22 +1065,22 @@ static bool8 IsValidMenuAction(s8 actionTableId) { if (actionTableId < 0) return FALSE; - else if (actionTableId > gPyramidBagResources->menuActionsCount) + else if (actionTableId > gPyramidBagMenu->menuActionsCount) return FALSE; - else if (gPyramidBagResources->menuActionIds[actionTableId] == ACTION_DUMMY) + else if (gPyramidBagMenu->menuActionIds[actionTableId] == ACTION_DUMMY) return FALSE; else return TRUE; } -static void sub_81C61A8(void) +static void CloseMenuActionWindow(void) { - if (gPyramidBagResources->menuActionsCount == 1) - sub_81C6D6C(0); - else if (gPyramidBagResources->menuActionsCount == 2) - sub_81C6D6C(1); + if (gPyramidBagMenu->menuActionsCount == 1) + CloseMenuActionWindowById(MENU_WIN_1x1); + else if (gPyramidBagMenu->menuActionsCount == 2) + CloseMenuActionWindowById(MENU_WIN_1x2); else - sub_81C6D6C(2); + CloseMenuActionWindowById(MENU_WIN_2x2); } static void BagAction_UseOnField(u8 taskId) @@ -1042,13 +1092,13 @@ static void BagAction_UseOnField(u8 taskId) || pocketId == POCKET_TM_HM || ItemIsMail(gSpecialVar_ItemId) == TRUE) { - sub_81C61A8(); + CloseMenuActionWindow(); DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, Task_CloseBattlePyramidBagMessage); } else if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL) { - sub_81C61A8(); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); + CloseMenuActionWindow(); + FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); ScheduleBgCopyTilemapToVram(0); ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); } @@ -1058,17 +1108,17 @@ static void BagAction_Cancel(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_81C61A8(); - PrintItemDescription(data[1]); + CloseMenuActionWindow(); + PrintItemDescription(tListPos); ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(1); - sub_81C5A98(data[0], 0); + PrintSelectorArrow(tListTaskId, COLORID_DARK_GRAY); SetTaskToMainPyramidBagInputHandler(taskId); } static void SetTaskToMainPyramidBagInputHandler(u8 taskId) { - AddScrollArrow(); + AddScrollArrows(); gTasks[taskId].func = Task_HandlePyramidBagInput; } @@ -1076,86 +1126,86 @@ static void BagAction_Toss(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_81C61A8(); - data[8] = 1; - if (data[2] == 1) + CloseMenuActionWindow(); + tNumToToss = 1; + if (tQuantity == 1) { - sub_81C6350(taskId); + AskConfirmToss(taskId); } else { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); - sub_81C6404(); - gTasks[taskId].func = sub_81C64B4; + FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); + PrintOnWindow_Font1(WIN_INFO, gStringVar4, 3, 0, 0, 1, 0, COLORID_DARK_GRAY); + ShowNumToToss(); + gTasks[taskId].func = Task_ChooseHowManyToToss; } } -static void sub_81C6350(u8 taskId) +static void AskConfirmToss(u8 taskId) { s16 *data = gTasks[taskId].data; CopyItemName(gSpecialVar_ItemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); + ConvertIntToDecimalStringN(gStringVar2, tNumToToss, STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); - sub_81C6DAC(taskId, &sYesNoTossFuncions); + FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); + PrintOnWindow_Font1(WIN_INFO, gStringVar4, 3, 0, 0, 1, 0, COLORID_DARK_GRAY); + CreatePyramidBagYesNo(taskId, &sYesNoTossFuncions); } static void DontTossItem(u8 taskId) { s16 *data = gTasks[taskId].data; - PrintItemDescription(data[1]); - sub_81C5A98(data[0], 0); + PrintItemDescription(tListPos); + PrintSelectorArrow(tListTaskId, COLORID_DARK_GRAY); SetTaskToMainPyramidBagInputHandler(taskId); } -static void sub_81C6404(void) +static void ShowNumToToss(void) { s32 x; - ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_xVar1); - sub_81C6CEC(3); + DrawTossNumberWindow(WIN_TOSS_NUM); x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28); - AddTextPrinterParameterized(3, 1, gStringVar4, x, 2, 0, NULL); + AddTextPrinterParameterized(WIN_TOSS_NUM, 1, gStringVar4, x, 2, 0, NULL); } -static void sub_81C645C(s16 value) +static void UpdateNumToToss(s16 num) { s32 x; - - ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, 2); + ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_xVar1); x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28); - AddTextPrinterParameterized(3, 1, gStringVar4, x, 2, 0, NULL); + AddTextPrinterParameterized(WIN_TOSS_NUM, 1, gStringVar4, x, 2, 0, NULL); } -static void sub_81C64B4(u8 taskId) +static void Task_ChooseHowManyToToss(u8 taskId) { s16 *data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&tNumToToss, tQuantity) == TRUE) { - sub_81C645C(data[8]); + UpdateNumToToss(tNumToToss); } else if (JOY_NEW(A_BUTTON)) { + // Toss PlaySE(SE_SELECT); - ClearStdWindowAndFrameToTransparent(3, 0); - ClearWindowTilemap(3); + ClearStdWindowAndFrameToTransparent(WIN_TOSS_NUM, 0); + ClearWindowTilemap(WIN_TOSS_NUM); ScheduleBgCopyTilemapToVram(1); - sub_81C6350(taskId); + AskConfirmToss(taskId); } else if (JOY_NEW(B_BUTTON)) { + // Cancel tossing PlaySE(SE_SELECT); - ClearStdWindowAndFrameToTransparent(3, 0); - ClearWindowTilemap(3); + ClearStdWindowAndFrameToTransparent(WIN_TOSS_NUM, 0); + ClearWindowTilemap(WIN_TOSS_NUM); ScheduleBgCopyTilemapToVram(1); DontTossItem(taskId); } @@ -1166,28 +1216,28 @@ static void TossItem(u8 taskId) s16 *data = gTasks[taskId].data; CopyItemName(gSpecialVar_ItemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); + ConvertIntToDecimalStringN(gStringVar2, tNumToToss, STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); - gTasks[taskId].func = sub_81C65CC; + FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); + PrintOnWindow_Font1(WIN_INFO, gStringVar4, 3, 0, 0, 1, 0, COLORID_DARK_GRAY); + gTasks[taskId].func = Task_TossItem; } -static void sub_81C65CC(u8 taskId) +static void Task_TossItem(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition; - u16 *selectedRow = &gPyramidBagCursorData.cursorPosition; + u16 *scrollOffset = &gPyramidBagMenuState.scrollPosition; + u16 *selectedRow = &gPyramidBagMenuState.cursorPosition; if (JOY_NEW(A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); - RemovePyramidBagItem(gSpecialVar_ItemId, data[8]); - DestroyListMenuTask(data[0], scrollOffset, selectedRow); - sub_81C5924(); - sub_81C59BC(); + RemovePyramidBagItem(gSpecialVar_ItemId, tNumToToss); + DestroyListMenuTask(tListTaskId, scrollOffset, selectedRow); + UpdatePyramidBagList(); + UpdatePyramidBagCursorPos(); SetBagItemsListTemplate(); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); ScheduleBgCopyTilemapToVram(0); SetTaskToMainPyramidBagInputHandler(taskId); } @@ -1195,30 +1245,30 @@ static void sub_81C65CC(u8 taskId) static void BagAction_Give(u8 taskId) { - sub_81C61A8(); + CloseMenuActionWindow(); if (ItemIsMail(gSpecialVar_ItemId) == TRUE) { - DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, sub_81C66EC); + DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, Task_WaitCloseErrorMessage); } else if (!ItemId_GetImportance(gSpecialVar_ItemId)) { - gPyramidBagResources->callback2 = CB2_ChooseMonToGiveItem; - CloseBattlePyramidBagAndSetCallback(taskId); + gPyramidBagMenu->newScreenCallback = CB2_ChooseMonToGiveItem; + CloseBattlePyramidBag(taskId); } else { - sub_81C66AC(taskId); + ShowCantHoldMessage(taskId); } } -static void sub_81C66AC(u8 taskId) +static void ShowCantHoldMessage(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld); - DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C66EC); + DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_WaitCloseErrorMessage); } -static void sub_81C66EC(u8 taskId) +static void Task_WaitCloseErrorMessage(u8 taskId) { if (JOY_NEW(A_BUTTON)) { @@ -1232,26 +1282,26 @@ void Task_CloseBattlePyramidBagMessage(u8 taskId) s16 *data = gTasks[taskId].data; CloseBattlePyramidBagTextWindow(); - PrintItemDescription(data[1]); - sub_81C5A98(data[0], 0); + PrintItemDescription(tListPos); + PrintSelectorArrow(tListTaskId, COLORID_DARK_GRAY); SetTaskToMainPyramidBagInputHandler(taskId); } -static void sub_81C674C(u8 taskId) +static void TryCloseBagToGiveItem(u8 taskId) { - if (!itemid_80BF6D8_mail_related(gSpecialVar_ItemId)) - DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, sub_81C66EC); + if (!IsWritingMailAllowed(gSpecialVar_ItemId)) + DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, Task_WaitCloseErrorMessage); else if (!ItemId_GetImportance(gSpecialVar_ItemId)) - CloseBattlePyramidBagAndSetCallback(taskId); + CloseBattlePyramidBag(taskId); else - sub_81C66AC(taskId); + ShowCantHoldMessage(taskId); } static void BagAction_UseInBattle(u8 taskId) { if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL) { - sub_81C61A8(); + CloseMenuActionWindow(); ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId); } } @@ -1260,15 +1310,15 @@ static void Task_BeginItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - data[1] = gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition; - gPyramidBagResources->unk814 = data[1]; - ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1); - CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][data[1]], gStringVar1); + tListPos = gPyramidBagMenuState.scrollPosition + gPyramidBagMenuState.cursorPosition; + gPyramidBagMenu->toSwapPos = tListPos; + ListMenuSetUnkIndicatorsStructField(tListTaskId, 0x10, 1); + CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][tListPos], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); - sub_81C5A98(data[0], 1); - sub_81C704C(data[1]); + FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); + PrintOnWindow_Font1(WIN_INFO, gStringVar4, 3, 0, 0, 1, 0, COLORID_DARK_GRAY); + PrintSelectorArrow(tListTaskId, COLORID_LIGHT_GRAY); + UpdateSwapLinePos(tListPos); gTasks[taskId].func = Task_ItemSwapHandleInput; } @@ -1280,15 +1330,15 @@ static void Task_ItemSwapHandleInput(u8 taskId) if (JOY_NEW(SELECT_BUTTON)) { PlaySE(SE_SELECT); - ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); + ListMenuGetScrollAndRow(tListTaskId, &gPyramidBagMenuState.scrollPosition, &gPyramidBagMenuState.cursorPosition); PerformItemSwap(taskId); } else { - s32 id = ListMenu_ProcessInput(data[0]); - ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); - sub_81C7028(FALSE); - sub_81C704C(gPyramidBagCursorData.cursorPosition); + s32 id = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &gPyramidBagMenuState.scrollPosition, &gPyramidBagMenuState.cursorPosition); + SetSwapLineInvisibility(FALSE); + UpdateSwapLinePos(gPyramidBagMenuState.cursorPosition); switch (id) { case LIST_NOTHING_CHOSEN: @@ -1298,7 +1348,7 @@ static void Task_ItemSwapHandleInput(u8 taskId) if (JOY_NEW(A_BUTTON)) PerformItemSwap(taskId); else - sub_81C6A14(taskId); + CancelItemSwap(taskId); break; default: PlaySE(SE_SELECT); @@ -1312,41 +1362,41 @@ static void Task_ItemSwapHandleInput(u8 taskId) static void PerformItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition; - u16 *selectedRow = &gPyramidBagCursorData.cursorPosition; - u16 var = *scrollOffset + *selectedRow; + u16 *scrollOffset = &gPyramidBagMenuState.scrollPosition; + u16 *selectedRow = &gPyramidBagMenuState.cursorPosition; + u16 swapPos = *scrollOffset + *selectedRow; - if (data[1] == var || data[1] == var - 1) + if (tListPos == swapPos || tListPos == swapPos - 1) { - sub_81C6A14(taskId); + CancelItemSwap(taskId); } else { - MovePyramidBagItemSlotInList(data[1], var); - gPyramidBagResources->unk814 = 0xFF; - sub_81C7028(TRUE); - DestroyListMenuTask(data[0], scrollOffset, selectedRow); - if (data[1] < var) - gPyramidBagCursorData.cursorPosition--; + MovePyramidBagItemSlotInList(tListPos, swapPos); + gPyramidBagMenu->toSwapPos = POS_NONE; + SetSwapLineInvisibility(TRUE); + DestroyListMenuTask(tListTaskId, scrollOffset, selectedRow); + if (tListPos < swapPos) + gPyramidBagMenuState.cursorPosition--; SetBagItemsListTemplate(); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); SetTaskToMainPyramidBagInputHandler(taskId); } } -static void sub_81C6A14(u8 taskId) +static void CancelItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition; - u16 *selectedRow = &gPyramidBagCursorData.cursorPosition; + u16 *scrollOffset = &gPyramidBagMenuState.scrollPosition; + u16 *selectedRow = &gPyramidBagMenuState.cursorPosition; - gPyramidBagResources->unk814 = 0xFF; - sub_81C7028(TRUE); - DestroyListMenuTask(data[0], scrollOffset, selectedRow); - if (data[1] < *scrollOffset + *selectedRow) - gPyramidBagCursorData.cursorPosition--; + gPyramidBagMenu->toSwapPos = POS_NONE; + SetSwapLineInvisibility(TRUE); + DestroyListMenuTask(tListTaskId, scrollOffset, selectedRow); + if (tListPos < *scrollOffset + *selectedRow) + gPyramidBagMenuState.cursorPosition--; SetBagItemsListTemplate(); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); SetTaskToMainPyramidBagInputHandler(taskId); } @@ -1385,177 +1435,178 @@ void TryStoreHeldItemsInPyramidBag(void) Free(newQuantities); } -static void sub_81C6BD8(void) +static void InitPyramidBagWindows(void) { u8 i; - InitWindows(gUnknown_0861F328); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x1, 0xE0); LoadMessageBoxGfx(0, 0xA, 0xD0); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sWindowTemplates); i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); - PutWindowTilemap(0); - PutWindowTilemap(1); + PutWindowTilemap(WIN_LIST); + PutWindowTilemap(WIN_INFO); ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(1); } static void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) { - AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); + AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, sTextColors[colorTableId], speed, src); } static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId) { - AddTextPrinterParameterized4(windowId, 7, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); + AddTextPrinterParameterized4(windowId, 7, x, y, letterSpacing, lineSpacing, sTextColors[colorTableId], speed, src); } -static void sub_81C6CEC(u8 windowId) +static void DrawTossNumberWindow(u8 windowId) { DrawStdFrameWithCustomTileAndPalette(windowId, 0, 1, 0xE); ScheduleBgCopyTilemapToVram(1); } -static u8 sub_81C6D08(u8 windowArrayId) +// Unused +static u8 GetMenuActionWindowId(u8 windowArrayId) { - return gPyramidBagResources->windowIds[windowArrayId]; + return gPyramidBagMenu->windowIds[windowArrayId]; } -static u8 sub_81C6D24(u8 windowArrayId) +static u8 OpenMenuActionWindowById(u8 windowArrayId) { - u8 *windowId = &gPyramidBagResources->windowIds[windowArrayId]; - if (*windowId == 0xFF) + u8 *windowId = &gPyramidBagMenu->windowIds[windowArrayId]; + if (*windowId == WINDOW_NONE) { - *windowId = AddWindow(&gUnknown_0861F350[windowArrayId]); + *windowId = AddWindow(&sWindowTemplates_MenuActions[windowArrayId]); DrawStdFrameWithCustomTileAndPalette(*windowId, FALSE, 1, 0xE); ScheduleBgCopyTilemapToVram(1); } return *windowId; } -static void sub_81C6D6C(u8 windowArrayId) +static void CloseMenuActionWindowById(u8 windowArrayId) { - u8 *windowId = &gPyramidBagResources->windowIds[windowArrayId]; - if (*windowId != 0xFF) + u8 *windowId = &gPyramidBagMenu->windowIds[windowArrayId]; + if (*windowId != WINDOW_NONE) { ClearStdWindowAndFrameToTransparent(*windowId, FALSE); ClearWindowTilemap(*windowId); RemoveWindow(*windowId); ScheduleBgCopyTilemapToVram(1); - *windowId = 0xFF; + *windowId = WINDOW_NONE; } } -static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable) +static void CreatePyramidBagYesNo(u8 taskId, const struct YesNoFuncTable *yesNoTable) { - CreateYesNoMenuWithCallbacks(taskId, &gUnknown_0861F350[4], 1, 0, 2, 1, 0xE, yesNoTable); + CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates_MenuActions[MENU_WIN_YESNO], 1, 0, 2, 1, 0xE, yesNoTable); } void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId)) { - FillWindowPixelBuffer(2, PIXEL_FILL(1)); - DisplayMessageAndContinueTask(taskId, 2, 0xA, 0xD, 1, GetPlayerTextSpeedDelay(), str, callback); + FillWindowPixelBuffer(WIN_MSG, PIXEL_FILL(1)); + DisplayMessageAndContinueTask(taskId, WIN_MSG, 0xA, 0xD, 1, GetPlayerTextSpeedDelay(), str, callback); ScheduleBgCopyTilemapToVram(1); } static void CloseBattlePyramidBagTextWindow(void) { - ClearDialogWindowAndFrameToTransparent(2, FALSE); + ClearDialogWindowAndFrameToTransparent(WIN_MSG, FALSE); // This ClearWindowTilemap call is redundant, since ClearDialogWindowAndFrameToTransparent already calls it. - ClearWindowTilemap(2); + ClearWindowTilemap(WIN_MSG); ScheduleBgCopyTilemapToVram(1); } -#define ITEM_IMAGE_TAG 0x1024 - -static void sub_81C6E38(u8 itemSpriteArrayId) +static void FreeItemIconSprite(u8 spriteArrId) { - u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[itemSpriteArrayId]; - if (*spriteId != 0xFF) + u8 *spriteId = &gPyramidBagMenu->spriteIds[spriteArrId]; + if (*spriteId != SPRITE_NONE) { - FreeSpriteTilesByTag(ITEM_IMAGE_TAG + itemSpriteArrayId); - FreeSpritePaletteByTag(ITEM_IMAGE_TAG + itemSpriteArrayId); + // spriteArrId is PBAG_SPRITE_ITEM_ICON / PBAG_SPRITE_ITEM_ICON_ALT here (1-2) + // so tag will be TAG_ITEM_ICON / TAG_ITEM_ICON_ALT + FreeSpriteTilesByTag(TAG_ITEM_ICON - 1 + spriteArrId); + FreeSpritePaletteByTag(TAG_ITEM_ICON - 1 + spriteArrId); FreeSpriteOamMatrix(&gSprites[*spriteId]); DestroySprite(&gSprites[*spriteId]); - *spriteId = 0xFF; + *spriteId = SPRITE_NONE; } } -static void sub_81C6E98(void) +static void LoadPyramidBagPalette(void) { struct SpritePalette spritePalette; u16 *palPtr = Alloc(0x40); LZDecompressWram(gBattleFrontierGfx_PyramidBag_Pal, palPtr); spritePalette.data = palPtr + (gSaveBlock2Ptr->frontier.lvlMode * 16); - spritePalette.tag = ITEM_IMAGE_TAG; + spritePalette.tag = TAG_PYRAMID_BAG; LoadSpritePalette(&spritePalette); Free(palPtr); } -static void sub_81C6EF4(void) +static void CreatePyramidBagSprite(void) { - u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[0]; - *spriteId = CreateSprite(&gUnknown_0861F3D4, 0x44, 0x38, 0); + u8 *spriteId = &gPyramidBagMenu->spriteIds[PBAG_SPRITE_BAG]; + *spriteId = CreateSprite(&sSpriteTemplate_PyramidBag, 68, 56, 0); } -static void sub_81C6F20(void) +static void ShakePyramidBag(void) { - struct Sprite *sprite = &gSprites[gPyramidBagResources->itemsSpriteIds[0]]; + struct Sprite *sprite = &gSprites[gPyramidBagMenu->spriteIds[PBAG_SPRITE_BAG]]; if (sprite->affineAnimEnded) { - StartSpriteAffineAnim(sprite, 1); - sprite->callback = sub_81C6F68; + StartSpriteAffineAnim(sprite, ANIM_BAG_SHAKE); + sprite->callback = SpriteCB_BagWaitForShake; } } -static void sub_81C6F68(struct Sprite *sprite) +static void SpriteCB_BagWaitForShake(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - StartSpriteAffineAnim(sprite, 0); + StartSpriteAffineAnim(sprite, ANIM_BAG_STILL); sprite->callback = SpriteCallbackDummy; } } -static void ShowItemImage(u16 itemId, u8 itemSpriteArrayId) +static void ShowItemIcon(u16 itemId, bool8 isAlt) { u8 itemSpriteId; - u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[itemSpriteArrayId + 1]; - if (*spriteId == 0xFF) + u8 *spriteId = &gPyramidBagMenu->spriteIds[isAlt + PBAG_SPRITE_ITEM_ICON]; + if (*spriteId == SPRITE_NONE) { - FreeSpriteTilesByTag(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId); - FreeSpritePaletteByTag(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId); - itemSpriteId = AddItemIconSprite(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId, ITEM_IMAGE_TAG + 1 + itemSpriteArrayId, itemId); + FreeSpriteTilesByTag(TAG_ITEM_ICON + isAlt); + FreeSpritePaletteByTag(TAG_ITEM_ICON + isAlt); + itemSpriteId = AddItemIconSprite(TAG_ITEM_ICON + isAlt, TAG_ITEM_ICON + isAlt, itemId); if (itemSpriteId != MAX_SPRITES) { *spriteId = itemSpriteId; - gSprites[itemSpriteId].pos2.x = 24; - gSprites[itemSpriteId].pos2.y = 88; + gSprites[itemSpriteId].x2 = 24; + gSprites[itemSpriteId].y2 = 88; } } } -static void sub_81C6FF8(u8 itemSpriteArrayId) +static void FreeItemIconSpriteByAltId(bool8 isAlt) { - sub_81C6E38(itemSpriteArrayId + 1); + FreeItemIconSprite(isAlt + PBAG_SPRITE_ITEM_ICON); } -static void sub_81C700C(void) +static void CreateSwapLine(void) { - sub_8122344(&gPyramidBagResources->itemsSpriteIds[3], 8); + CreateSwapLineSprites(&gPyramidBagMenu->spriteIds[PBAG_SPRITE_SWAP_LINE_START], NUM_SWAP_LINE_SPRITES); } -static void sub_81C7028(bool8 invisible) +static void SetSwapLineInvisibility(bool8 invisible) { - sub_81223FC(&gPyramidBagResources->itemsSpriteIds[3], 8, invisible); + SetSwapLineSpritesInvisibility(&gPyramidBagMenu->spriteIds[PBAG_SPRITE_SWAP_LINE_START], NUM_SWAP_LINE_SPRITES, invisible); } -static void sub_81C704C(u8 y) +static void UpdateSwapLinePos(u8 y) { - sub_8122448(&gPyramidBagResources->itemsSpriteIds[3], 8 | 0x80, 120, (y + 1) * 16); + UpdateSwapLineSpritesPos(&gPyramidBagMenu->spriteIds[PBAG_SPRITE_SWAP_LINE_START], NUM_SWAP_LINE_SPRITES | 0x80, 120, (y + 1) * 16); } diff --git a/src/battle_records.c b/src/battle_records.c index a8b9ead14b..5dff8e6d34 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -365,7 +365,7 @@ static void Task_CloseTrainerHillRecordsOnButton(u8 taskId) static void Task_BeginPaletteFade(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ExitTrainerHillRecords; } @@ -512,7 +512,7 @@ static void CB2_ShowTrainerHillRecords(void) gMain.state++; break; case 6: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gMain.state++; break; case 7: diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b52f65e3e6..f98460d52f 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4,7 +4,8 @@ #include "constants/battle_script_commands.h" #include "battle_message.h" #include "battle_anim.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" +#include "battle_ai_util.h" #include "battle_scripts.h" #include "constants/moves.h" #include "constants/abilities.h" @@ -61,7 +62,7 @@ extern const u8* const gBattleScriptsForMoveEffects[]; // table to avoid ugly powing on gba (courtesy of doesnt) // this returns (i^2.5)/4 // the quarters cancel so no need to re-quadruple them in actual calculation -static const s32 sExperienceScalingFactors[] = +static const s32 sExperienceScalingFactors[] = { 0, 0, @@ -332,7 +333,7 @@ static void Cmd_jumpifstat(void); static void Cmd_jumpifstatus3condition(void); static void Cmd_jumpbasedontype(void); static void Cmd_getexp(void); -static void atk24(void); +static void Cmd_unknown_24(void); static void Cmd_movevaluescleanup(void); static void Cmd_setmultihit(void); static void Cmd_decrementmultihit(void); @@ -355,7 +356,7 @@ static void Cmd_bichalfword(void); static void Cmd_bicword(void); static void Cmd_pause(void); static void Cmd_waitstate(void); -static void Cmd_update(void); +static void Cmd_healthbar_update(void); static void Cmd_return(void); static void Cmd_end(void); static void Cmd_end2(void); @@ -383,14 +384,14 @@ static void Cmd_trainerslidein(void); static void Cmd_playse(void); static void Cmd_fanfare(void); static void Cmd_playfaintcry(void); -static void atk57(void); +static void Cmd_endlinkbattle(void); static void Cmd_returntoball(void); static void Cmd_handlelearnnewmove(void); static void Cmd_yesnoboxlearnmove(void); static void Cmd_yesnoboxstoplearningmove(void); static void Cmd_hitanimation(void); static void Cmd_getmoneyreward(void); -static void atk5E(void); +static void Cmd_unknown_5E(void); static void Cmd_swapattackerwithtarget(void); static void Cmd_incrementgamestat(void); static void Cmd_drawpartystatussummary(void); @@ -555,271 +556,265 @@ static void Cmd_metalburstdamagecalculator(void); void (* const gBattleScriptingCommandsTable[])(void) = { - Cmd_attackcanceler, // 0x0 - Cmd_accuracycheck, // 0x1 - Cmd_attackstring, // 0x2 - Cmd_ppreduce, // 0x3 - Cmd_critcalc, // 0x4 - Cmd_damagecalc, // 0x5 - Cmd_typecalc, // 0x6 - Cmd_adjustdamage, // 0x7 - Cmd_multihitresultmessage, // 0x8 - Cmd_attackanimation, // 0x9 - Cmd_waitanimation, // 0xA - Cmd_healthbarupdate, // 0xB - Cmd_datahpupdate, // 0xC - Cmd_critmessage, // 0xD - Cmd_effectivenesssound, // 0xE - Cmd_resultmessage, // 0xF - Cmd_printstring, // 0x10 - Cmd_printselectionstring, // 0x11 - Cmd_waitmessage, // 0x12 - Cmd_printfromtable, // 0x13 - Cmd_printselectionstringfromtable, // 0x14 - Cmd_seteffectwithchance, // 0x15 - Cmd_seteffectprimary, // 0x16 - Cmd_seteffectsecondary, // 0x17 - Cmd_clearstatusfromeffect, // 0x18 - Cmd_tryfaintmon, // 0x19 - Cmd_dofaintanimation, // 0x1A - Cmd_cleareffectsonfaint, // 0x1B - Cmd_jumpifstatus, // 0x1C - Cmd_jumpifstatus2, // 0x1D - Cmd_jumpifability, // 0x1E - Cmd_jumpifsideaffecting, // 0x1F - Cmd_jumpifstat, // 0x20 - Cmd_jumpifstatus3condition, // 0x21 - Cmd_jumpbasedontype, // 0x22 - Cmd_getexp, // 0x23 - atk24, // 0x24 - Cmd_movevaluescleanup, // 0x25 - Cmd_setmultihit, // 0x26 - Cmd_decrementmultihit, // 0x27 - Cmd_goto, // 0x28 - Cmd_jumpifbyte, // 0x29 - Cmd_jumpifhalfword, // 0x2A - Cmd_jumpifword, // 0x2B - Cmd_jumpifarrayequal, // 0x2C - Cmd_jumpifarraynotequal, // 0x2D - Cmd_setbyte, // 0x2E - Cmd_addbyte, // 0x2F - Cmd_subbyte, // 0x30 - Cmd_copyarray, // 0x31 - Cmd_copyarraywithindex, // 0x32 - Cmd_orbyte, // 0x33 - Cmd_orhalfword, // 0x34 - Cmd_orword, // 0x35 - Cmd_bicbyte, // 0x36 - Cmd_bichalfword, // 0x37 - Cmd_bicword, // 0x38 - Cmd_pause, // 0x39 - Cmd_waitstate, // 0x3A - Cmd_update, // 0x3B - Cmd_return, // 0x3C - Cmd_end, // 0x3D - Cmd_end2, // 0x3E - Cmd_end3, // 0x3F - Cmd_jumpifaffectedbyprotect, // 0x40 - Cmd_call, // 0x41 - Cmd_setroost, // 0x42 - Cmd_jumpifabilitypresent, // 0x43 - Cmd_endselectionscript, // 0x44 - Cmd_playanimation, // 0x45 - Cmd_playanimation2, // 0x46 - Cmd_setgraphicalstatchangevalues, // 0x47 - Cmd_playstatchangeanimation, // 0x48 - Cmd_moveend, // 0x49 - Cmd_sethealblock, // 0x4A - Cmd_returnatktoball, // 0x4B - Cmd_getswitchedmondata, // 0x4C - Cmd_switchindataupdate, // 0x4D - Cmd_switchinanim, // 0x4E - Cmd_jumpifcantswitch, // 0x4F - Cmd_openpartyscreen, // 0x50 - Cmd_switchhandleorder, // 0x51 - Cmd_switchineffects, // 0x52 - Cmd_trainerslidein, // 0x53 - Cmd_playse, // 0x54 - Cmd_fanfare, // 0x55 - Cmd_playfaintcry, // 0x56 - atk57, // 0x57 - Cmd_returntoball, // 0x58 - Cmd_handlelearnnewmove, // 0x59 - Cmd_yesnoboxlearnmove, // 0x5A - Cmd_yesnoboxstoplearningmove, // 0x5B - Cmd_hitanimation, // 0x5C - Cmd_getmoneyreward, // 0x5D - atk5E, // 0x5E - Cmd_swapattackerwithtarget, // 0x5F - Cmd_incrementgamestat, // 0x60 - Cmd_drawpartystatussummary, // 0x61 - Cmd_hidepartystatussummary, // 0x62 - Cmd_jumptocalledmove, // 0x63 - Cmd_statusanimation, // 0x64 - Cmd_status2animation, // 0x65 - Cmd_chosenstatusanimation, // 0x66 - Cmd_yesnobox, // 0x67 - Cmd_cancelallactions, // 0x68 - Cmd_setgravity, // 0x69 - Cmd_removeitem, // 0x6A - Cmd_atknameinbuff1, // 0x6B - Cmd_drawlvlupbox, // 0x6C - Cmd_resetsentmonsvalue, // 0x6D - Cmd_setatktoplayer0, // 0x6E - Cmd_makevisible, // 0x6F - Cmd_recordability, // 0x70 - Cmd_buffermovetolearn, // 0x71 - Cmd_jumpifplayerran, // 0x72 - Cmd_hpthresholds, // 0x73 - Cmd_hpthresholds2, // 0x74 - Cmd_useitemonopponent, // 0x75 - Cmd_various, // 0x76 - Cmd_setprotectlike, // 0x77 - Cmd_faintifabilitynotdamp, // 0x78 - Cmd_setatkhptozero, // 0x79 - Cmd_jumpifnexttargetvalid, // 0x7A - Cmd_tryhealhalfhealth, // 0x7B - Cmd_trymirrormove, // 0x7C - Cmd_setrain, // 0x7D - Cmd_setreflect, // 0x7E - Cmd_setseeded, // 0x7F - Cmd_manipulatedamage, // 0x80 - Cmd_trysetrest, // 0x81 - Cmd_jumpifnotfirstturn, // 0x82 - Cmd_setmiracleeye, // 0x83 - Cmd_jumpifcantmakeasleep, // 0x84 - Cmd_stockpile, // 0x85 - Cmd_stockpiletobasedamage, // 0x86 - Cmd_stockpiletohpheal, // 0x87 - Cmd_setdrainedhp, // 0x88 - Cmd_statbuffchange, // 0x89 - Cmd_normalisebuffs, // 0x8A - Cmd_setbide, // 0x8B - Cmd_confuseifrepeatingattackends, // 0x8C - Cmd_setmultihitcounter, // 0x8D - Cmd_initmultihitstring, // 0x8E - Cmd_forcerandomswitch, // 0x8F - Cmd_tryconversiontypechange, // 0x90 - Cmd_givepaydaymoney, // 0x91 - Cmd_setlightscreen, // 0x92 - Cmd_tryKO, // 0x93 - Cmd_damagetohalftargethp, // 0x94 - Cmd_setsandstorm, // 0x95 - Cmd_weatherdamage, // 0x96 - Cmd_tryinfatuating, // 0x97 - Cmd_updatestatusicon, // 0x98 - Cmd_setmist, // 0x99 - Cmd_setfocusenergy, // 0x9A - Cmd_transformdataexecution, // 0x9B - Cmd_setsubstitute, // 0x9C - Cmd_mimicattackcopy, // 0x9D - Cmd_metronome, // 0x9E - Cmd_dmgtolevel, // 0x9F - Cmd_psywavedamageeffect, // 0xA0 - Cmd_counterdamagecalculator, // 0xA1 - Cmd_mirrorcoatdamagecalculator, // 0xA2 - Cmd_disablelastusedattack, // 0xA3 - Cmd_trysetencore, // 0xA4 - Cmd_painsplitdmgcalc, // 0xA5 - Cmd_settypetorandomresistance, // 0xA6 - Cmd_setalwayshitflag, // 0xA7 - Cmd_copymovepermanently, // 0xA8 - Cmd_trychoosesleeptalkmove, // 0xA9 - Cmd_setdestinybond, // 0xAA - Cmd_trysetdestinybondtohappen, // 0xAB - Cmd_settailwind, // 0xAC - Cmd_tryspiteppreduce, // 0xAD - Cmd_healpartystatus, // 0xAE - Cmd_cursetarget, // 0xAF - Cmd_trysetspikes, // 0xB0 - Cmd_setforesight, // 0xB1 - Cmd_trysetperishsong, // 0xB2 - Cmd_handlerollout, // 0xB3 - Cmd_jumpifconfusedandstatmaxed, // 0xB4 - Cmd_handlefurycutter, // 0xB5 - Cmd_setembargo, // 0xB6 - Cmd_presentdamagecalculation, // 0xB7 - Cmd_setsafeguard, // 0xB8 - Cmd_magnitudedamagecalculation, // 0xB9 - Cmd_jumpifnopursuitswitchdmg, // 0xBA - Cmd_setsunny, // 0xBB - Cmd_maxattackhalvehp, // 0xBC - Cmd_copyfoestats, // 0xBD - Cmd_rapidspinfree, // 0xBE - Cmd_setdefensecurlbit, // 0xBF - Cmd_recoverbasedonsunlight, // 0xC0 - Cmd_setstickyweb, // 0xC1 - Cmd_selectfirstvalidtarget, // 0xC2 - Cmd_trysetfutureattack, // 0xC3 - Cmd_trydobeatup, // 0xC4 - Cmd_setsemiinvulnerablebit, // 0xC5 - Cmd_clearsemiinvulnerablebit, // 0xC6 - Cmd_setminimize, // 0xC7 - Cmd_sethail, // 0xC8 - Cmd_jumpifattackandspecialattackcannotfall, // 0xC9 - Cmd_setforcedtarget, // 0xCA - Cmd_setcharge, // 0xCB - Cmd_callterrainattack, // 0xCC - Cmd_cureifburnedparalysedorpoisoned, // 0xCD - Cmd_settorment, // 0xCE - Cmd_jumpifnodamage, // 0xCF - Cmd_settaunt, // 0xD0 - Cmd_trysethelpinghand, // 0xD1 - Cmd_tryswapitems, // 0xD2 - Cmd_trycopyability, // 0xD3 - Cmd_trywish, // 0xD4 - Cmd_settoxicspikes, // 0xD5 - Cmd_setgastroacid, // 0xD6 - Cmd_setyawn, // 0xD7 - Cmd_setdamagetohealthdifference, // 0xD8 - Cmd_setroom, // 0xD9 - Cmd_tryswapabilities, // 0xDA - Cmd_tryimprison, // 0xDB - Cmd_setstealthrock, // 0xDC - Cmd_setuserstatus3, // 0xDD - Cmd_assistattackselect, // 0xDE - Cmd_trysetmagiccoat, // 0xDF - Cmd_trysetsnatch, // 0xE0 - Cmd_trygetintimidatetarget, // 0xE1 - Cmd_switchoutabilities, // 0xE2 - Cmd_jumpifhasnohp, // 0xE3 - Cmd_getsecretpowereffect, // 0xE4 - Cmd_pickup, // 0xE5 - Cmd_docastformchangeanimation, // 0xE6 - Cmd_trycastformdatachange, // 0xE7 - Cmd_settypebasedhalvers, // 0xE8 - Cmd_jumpifsubstituteblocks, // 0xE9 - Cmd_tryrecycleitem, // 0xEA - Cmd_settypetoterrain, // 0xEB - Cmd_pursuitrelated, // 0xEC - Cmd_snatchsetbattlers, // 0xED - Cmd_removelightscreenreflect, // 0xEE - Cmd_handleballthrow, // 0xEF - Cmd_givecaughtmon, // 0xF0 - Cmd_trysetcaughtmondexflags, // 0xF1 - Cmd_displaydexinfo, // 0xF2 - Cmd_trygivecaughtmonnick, // 0xF3 - Cmd_subattackerhpbydmg, // 0xF4 - Cmd_removeattackerstatus1, // 0xF5 - Cmd_finishaction, // 0xF6 - Cmd_finishturn, // 0xF7 - Cmd_trainerslideout, // 0xF8 - Cmd_settelekinesis, // 0xF9 - Cmd_swapstatstages, // 0xFA - Cmd_averagestats, // 0xFB - Cmd_jumpifoppositegenders, // 0xFC - Cmd_trygetbaddreamstarget, // 0xFD - Cmd_tryworryseed, // 0xFE - Cmd_metalburstdamagecalculator, // 0xFF + Cmd_attackcanceler, //0x0 + Cmd_accuracycheck, //0x1 + Cmd_attackstring, //0x2 + Cmd_ppreduce, //0x3 + Cmd_critcalc, //0x4 + Cmd_damagecalc, //0x5 + Cmd_typecalc, //0x6 + Cmd_adjustdamage, //0x7 + Cmd_multihitresultmessage, //0x8 + Cmd_attackanimation, //0x9 + Cmd_waitanimation, //0xA + Cmd_healthbarupdate, //0xB + Cmd_datahpupdate, //0xC + Cmd_critmessage, //0xD + Cmd_effectivenesssound, //0xE + Cmd_resultmessage, //0xF + Cmd_printstring, //0x10 + Cmd_printselectionstring, //0x11 + Cmd_waitmessage, //0x12 + Cmd_printfromtable, //0x13 + Cmd_printselectionstringfromtable, //0x14 + Cmd_seteffectwithchance, //0x15 + Cmd_seteffectprimary, //0x16 + Cmd_seteffectsecondary, //0x17 + Cmd_clearstatusfromeffect, //0x18 + Cmd_tryfaintmon, //0x19 + Cmd_dofaintanimation, //0x1A + Cmd_cleareffectsonfaint, //0x1B + Cmd_jumpifstatus, //0x1C + Cmd_jumpifstatus2, //0x1D + Cmd_jumpifability, //0x1E + Cmd_jumpifsideaffecting, //0x1F + Cmd_jumpifstat, //0x20 + Cmd_jumpifstatus3condition, //0x21 + Cmd_jumpbasedontype, //0x22 + Cmd_getexp, //0x23 + Cmd_unknown_24, //0x24 + Cmd_movevaluescleanup, //0x25 + Cmd_setmultihit, //0x26 + Cmd_decrementmultihit, //0x27 + Cmd_goto, //0x28 + Cmd_jumpifbyte, //0x29 + Cmd_jumpifhalfword, //0x2A + Cmd_jumpifword, //0x2B + Cmd_jumpifarrayequal, //0x2C + Cmd_jumpifarraynotequal, //0x2D + Cmd_setbyte, //0x2E + Cmd_addbyte, //0x2F + Cmd_subbyte, //0x30 + Cmd_copyarray, //0x31 + Cmd_copyarraywithindex, //0x32 + Cmd_orbyte, //0x33 + Cmd_orhalfword, //0x34 + Cmd_orword, //0x35 + Cmd_bicbyte, //0x36 + Cmd_bichalfword, //0x37 + Cmd_bicword, //0x38 + Cmd_pause, //0x39 + Cmd_waitstate, //0x3A + Cmd_healthbar_update, //0x3B + Cmd_return, //0x3C + Cmd_end, //0x3D + Cmd_end2, //0x3E + Cmd_end3, //0x3F + Cmd_jumpifaffectedbyprotect, //0x40 + Cmd_call, //0x41 + Cmd_setroost, //0x42 + Cmd_jumpifabilitypresent, //0x43 + Cmd_endselectionscript, //0x44 + Cmd_playanimation, //0x45 + Cmd_playanimation2, //0x46 + Cmd_setgraphicalstatchangevalues, //0x47 + Cmd_playstatchangeanimation, //0x48 + Cmd_moveend, //0x49 + Cmd_sethealblock, //0x4A + Cmd_returnatktoball, //0x4B + Cmd_getswitchedmondata, //0x4C + Cmd_switchindataupdate, //0x4D + Cmd_switchinanim, //0x4E + Cmd_jumpifcantswitch, //0x4F + Cmd_openpartyscreen, //0x50 + Cmd_switchhandleorder, //0x51 + Cmd_switchineffects, //0x52 + Cmd_trainerslidein, //0x53 + Cmd_playse, //0x54 + Cmd_fanfare, //0x55 + Cmd_playfaintcry, //0x56 + Cmd_endlinkbattle, //0x57 + Cmd_returntoball, //0x58 + Cmd_handlelearnnewmove, //0x59 + Cmd_yesnoboxlearnmove, //0x5A + Cmd_yesnoboxstoplearningmove, //0x5B + Cmd_hitanimation, //0x5C + Cmd_getmoneyreward, //0x5D + Cmd_unknown_5E, //0x5E + Cmd_swapattackerwithtarget, //0x5F + Cmd_incrementgamestat, //0x60 + Cmd_drawpartystatussummary, //0x61 + Cmd_hidepartystatussummary, //0x62 + Cmd_jumptocalledmove, //0x63 + Cmd_statusanimation, //0x64 + Cmd_status2animation, //0x65 + Cmd_chosenstatusanimation, //0x66 + Cmd_yesnobox, //0x67 + Cmd_cancelallactions, //0x68 + Cmd_setgravity, //0x69 + Cmd_removeitem, //0x6A + Cmd_atknameinbuff1, //0x6B + Cmd_drawlvlupbox, //0x6C + Cmd_resetsentmonsvalue, //0x6D + Cmd_setatktoplayer0, //0x6E + Cmd_makevisible, //0x6F + Cmd_recordability, //0x70 + Cmd_buffermovetolearn, //0x71 + Cmd_jumpifplayerran, //0x72 + Cmd_hpthresholds, //0x73 + Cmd_hpthresholds2, //0x74 + Cmd_useitemonopponent, //0x75 + Cmd_various, //0x76 + Cmd_setprotectlike, //0x77 + Cmd_faintifabilitynotdamp, //0x78 + Cmd_setatkhptozero, //0x79 + Cmd_jumpifnexttargetvalid, //0x7A + Cmd_tryhealhalfhealth, //0x7B + Cmd_trymirrormove, //0x7C + Cmd_setrain, //0x7D + Cmd_setreflect, //0x7E + Cmd_setseeded, //0x7F + Cmd_manipulatedamage, //0x80 + Cmd_trysetrest, //0x81 + Cmd_jumpifnotfirstturn, //0x82 + Cmd_setmiracleeye, //0x83 + Cmd_jumpifcantmakeasleep, //0x84 + Cmd_stockpile, //0x85 + Cmd_stockpiletobasedamage, //0x86 + Cmd_stockpiletohpheal, //0x87 + Cmd_setdrainedhp, //0x88 + Cmd_statbuffchange, //0x89 + Cmd_normalisebuffs, //0x8A + Cmd_setbide, //0x8B + Cmd_confuseifrepeatingattackends, //0x8C + Cmd_setmultihitcounter, //0x8D + Cmd_initmultihitstring, //0x8E + Cmd_forcerandomswitch, //0x8F + Cmd_tryconversiontypechange, //0x90 + Cmd_givepaydaymoney, //0x91 + Cmd_setlightscreen, //0x92 + Cmd_tryKO, //0x93 + Cmd_damagetohalftargethp, //0x94 + Cmd_setsandstorm, //0x95 + Cmd_weatherdamage, //0x96 + Cmd_tryinfatuating, //0x97 + Cmd_updatestatusicon, //0x98 + Cmd_setmist, //0x99 + Cmd_setfocusenergy, //0x9A + Cmd_transformdataexecution, //0x9B + Cmd_setsubstitute, //0x9C + Cmd_mimicattackcopy, //0x9D + Cmd_metronome, //0x9E + Cmd_dmgtolevel, //0x9F + Cmd_psywavedamageeffect, //0xA0 + Cmd_counterdamagecalculator, //0xA1 + Cmd_mirrorcoatdamagecalculator, //0xA2 + Cmd_disablelastusedattack, //0xA3 + Cmd_trysetencore, //0xA4 + Cmd_painsplitdmgcalc, //0xA5 + Cmd_settypetorandomresistance, //0xA6 + Cmd_setalwayshitflag, //0xA7 + Cmd_copymovepermanently, //0xA8 + Cmd_trychoosesleeptalkmove, //0xA9 + Cmd_setdestinybond, //0xAA + Cmd_trysetdestinybondtohappen, //0xAB + Cmd_settailwind, //0xAC + Cmd_tryspiteppreduce, //0xAD + Cmd_healpartystatus, //0xAE + Cmd_cursetarget, //0xAF + Cmd_trysetspikes, //0xB0 + Cmd_setforesight, //0xB1 + Cmd_trysetperishsong, //0xB2 + Cmd_handlerollout, //0xB3 + Cmd_jumpifconfusedandstatmaxed, //0xB4 + Cmd_handlefurycutter, //0xB5 + Cmd_setembargo, //0xB6 + Cmd_presentdamagecalculation, //0xB7 + Cmd_setsafeguard, //0xB8 + Cmd_magnitudedamagecalculation, //0xB9 + Cmd_jumpifnopursuitswitchdmg, //0xBA + Cmd_setsunny, //0xBB + Cmd_maxattackhalvehp, //0xBC + Cmd_copyfoestats, //0xBD + Cmd_rapidspinfree, //0xBE + Cmd_setdefensecurlbit, //0xBF + Cmd_recoverbasedonsunlight, //0xC0 + Cmd_setstickyweb, //0xC1 + Cmd_selectfirstvalidtarget, //0xC2 + Cmd_trysetfutureattack, //0xC3 + Cmd_trydobeatup, //0xC4 + Cmd_setsemiinvulnerablebit, //0xC5 + Cmd_clearsemiinvulnerablebit, //0xC6 + Cmd_setminimize, //0xC7 + Cmd_sethail, //0xC8 + Cmd_jumpifattackandspecialattackcannotfall, //0xC9 + Cmd_setforcedtarget, //0xCA + Cmd_setcharge, //0xCB + Cmd_callterrainattack, //0xCC + Cmd_cureifburnedparalysedorpoisoned, //0xCD + Cmd_settorment, //0xCE + Cmd_jumpifnodamage, //0xCF + Cmd_settaunt, //0xD0 + Cmd_trysethelpinghand, //0xD1 + Cmd_tryswapitems, //0xD2 + Cmd_trycopyability, //0xD3 + Cmd_trywish, //0xD4 + Cmd_settoxicspikes, //0xD5 + Cmd_setgastroacid, //0xD6 + Cmd_setyawn, //0xD7 + Cmd_setdamagetohealthdifference, //0xD8 + Cmd_setroom, //0xD9 + Cmd_tryswapabilities, //0xDA + Cmd_tryimprison, //0xDB + Cmd_setstealthrock, //0xDC + Cmd_setuserstatus3, //0xDD + Cmd_assistattackselect, //0xDE + Cmd_trysetmagiccoat, //0xDF + Cmd_trysetsnatch, //0xE0 + Cmd_trygetintimidatetarget, //0xE1 + Cmd_switchoutabilities, //0xE2 + Cmd_jumpifhasnohp, //0xE3 + Cmd_getsecretpowereffect, //0xE4 + Cmd_pickup, //0xE5 + Cmd_docastformchangeanimation, //0xE6 + Cmd_trycastformdatachange, //0xE7 + Cmd_settypebasedhalvers, //0xE8 + Cmd_jumpifsubstituteblocks, //0xE9 + Cmd_tryrecycleitem, //0xEA + Cmd_settypetoterrain, //0xEB + Cmd_pursuitrelated, //0xEC + Cmd_snatchsetbattlers, //0xED + Cmd_removelightscreenreflect, //0xEE + Cmd_handleballthrow, //0xEF + Cmd_givecaughtmon, //0xF0 + Cmd_trysetcaughtmondexflags, //0xF1 + Cmd_displaydexinfo, //0xF2 + Cmd_trygivecaughtmonnick, //0xF3 + Cmd_subattackerhpbydmg, //0xF4 + Cmd_removeattackerstatus1, //0xF5 + Cmd_finishaction, //0xF6 + Cmd_finishturn, //0xF7 + Cmd_trainerslideout, //0xF8 + Cmd_settelekinesis, //0xF9 + Cmd_swapstatstages, //0xFA + Cmd_averagestats, //0xFB + Cmd_jumpifoppositegenders, //0xFC + Cmd_trygetbaddreamstarget, //0xFD + Cmd_tryworryseed, //0xFE + Cmd_metalburstdamagecalculator, //0xFF }; -struct StatFractions -{ - u8 dividend; - u8 divisor; -}; - -static const struct StatFractions sAccuracyStageRatios[] = +const struct StatFractions gAccuracyStageRatios[] = { { 33, 100}, // -6 { 36, 100}, // -5 @@ -857,18 +852,18 @@ static const u32 sStatusFlagsForMoveEffects[NUM_MOVE_EFFECTS] = static const u8* const sMoveEffectBS_Ptrs[] = { - [MOVE_EFFECT_SLEEP] = BattleScript_MoveEffectSleep, - [MOVE_EFFECT_POISON] = BattleScript_MoveEffectPoison, - [MOVE_EFFECT_BURN] = BattleScript_MoveEffectBurn, - [MOVE_EFFECT_FREEZE] = BattleScript_MoveEffectFreeze, - [MOVE_EFFECT_PARALYSIS] = BattleScript_MoveEffectParalysis, - [MOVE_EFFECT_TOXIC] = BattleScript_MoveEffectToxic, - [MOVE_EFFECT_CONFUSION] = BattleScript_MoveEffectConfusion, - [MOVE_EFFECT_UPROAR] = BattleScript_MoveEffectUproar, - [MOVE_EFFECT_PAYDAY] = BattleScript_MoveEffectPayDay, - [MOVE_EFFECT_WRAP] = BattleScript_MoveEffectWrap, - [MOVE_EFFECT_RECOIL_25] = BattleScript_MoveEffectRecoil, - [MOVE_EFFECT_RECOIL_33] = BattleScript_MoveEffectRecoil, + [MOVE_EFFECT_SLEEP] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_POISON] = BattleScript_MoveEffectPoison, + [MOVE_EFFECT_BURN] = BattleScript_MoveEffectBurn, + [MOVE_EFFECT_FREEZE] = BattleScript_MoveEffectFreeze, + [MOVE_EFFECT_PARALYSIS] = BattleScript_MoveEffectParalysis, + [MOVE_EFFECT_TOXIC] = BattleScript_MoveEffectToxic, + [MOVE_EFFECT_CONFUSION] = BattleScript_MoveEffectConfusion, + [MOVE_EFFECT_UPROAR] = BattleScript_MoveEffectUproar, + [MOVE_EFFECT_PAYDAY] = BattleScript_MoveEffectPayDay, + [MOVE_EFFECT_WRAP] = BattleScript_MoveEffectWrap, + [MOVE_EFFECT_RECOIL_25] = BattleScript_MoveEffectRecoil, + [MOVE_EFFECT_RECOIL_33] = BattleScript_MoveEffectRecoil, }; static const struct WindowTemplate sUnusedWinTemplate = {0, 1, 3, 7, 0xF, 0x1F, 0x3F}; @@ -921,92 +916,167 @@ static const u8 sForbiddenMoves[MOVES_COUNT] = [MOVE_NONE] = 0xFF, // Can't use a non-move lol [MOVE_STRUGGLE] = 0xFF, // Neither Struggle [MOVE_AFTER_YOU] = FORBIDDEN_METRONOME, + [MOVE_APPLE_ACID] = FORBIDDEN_METRONOME, [MOVE_ASSIST] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, + [MOVE_ASTRAL_BARRAGE] = FORBIDDEN_METRONOME, + [MOVE_AURA_WHEEL] = FORBIDDEN_METRONOME, + [MOVE_BADDY_BAD] = FORBIDDEN_METRONOME, [MOVE_BANEFUL_BUNKER] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_BEAK_BLAST] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, + [MOVE_BEHEMOTH_BASH] = FORBIDDEN_METRONOME | FORBIDDEN_COPYCAT, + [MOVE_BEHEMOTH_BLADE] = FORBIDDEN_METRONOME | FORBIDDEN_COPYCAT, [MOVE_BELCH] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, [MOVE_BESTOW] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_BIDE] = FORBIDDEN_SLEEP_TALK, + [MOVE_BODY_PRESS] = FORBIDDEN_METRONOME, + [MOVE_BOUNCE] = FORBIDDEN_ASSIST | FORBIDDEN_SLEEP_TALK, + [MOVE_BOUNCY_BUBBLE] = FORBIDDEN_METRONOME, + [MOVE_BRANCH_POKE] = FORBIDDEN_METRONOME, + [MOVE_BREAKING_SWIPE] = FORBIDDEN_METRONOME, + [MOVE_BUZZY_BUZZ] = FORBIDDEN_METRONOME, [MOVE_CELEBRATE] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, [MOVE_CHATTER] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_MIMIC | FORBIDDEN_SLEEP_TALK, [MOVE_CIRCLE_THROW] = FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_CLANGOROUS_SOUL] = FORBIDDEN_METRONOME, [MOVE_COPYCAT] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, [MOVE_COUNTER] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_COVET] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, - [MOVE_CRAFTY_SHIELD] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_CRAFTY_SHIELD] = FORBIDDEN_METRONOME, + [MOVE_DECORATE] = FORBIDDEN_METRONOME, [MOVE_DESTINY_BOND] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_DETECT] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, - [MOVE_DIG] = FORBIDDEN_ASSIST, - [MOVE_DIVE] = FORBIDDEN_ASSIST, - [MOVE_DRAGON_TAIL] = FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_DIAMOND_STORM] = FORBIDDEN_METRONOME, + [MOVE_DIG] = FORBIDDEN_ASSIST | FORBIDDEN_SLEEP_TALK, + [MOVE_DIVE] = FORBIDDEN_ASSIST | FORBIDDEN_SLEEP_TALK, + [MOVE_DOUBLE_IRON_BASH] = FORBIDDEN_METRONOME, + [MOVE_DRAGON_ASCENT] = FORBIDDEN_METRONOME, + [MOVE_DRAGON_ENERGY] = FORBIDDEN_METRONOME, + [MOVE_DRAGON_TAIL] = FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_DRUM_BEATING] = FORBIDDEN_METRONOME, + [MOVE_DYNAMAX_CANNON] = FORBIDDEN_METRONOME | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, [MOVE_ENDURE] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_ETERNABEAM] = FORBIDDEN_METRONOME, + [MOVE_FALSE_SURRENDER] = FORBIDDEN_METRONOME, [MOVE_FEINT] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_FIERY_WRATH] = FORBIDDEN_METRONOME, [MOVE_FLEUR_CANNON] = FORBIDDEN_METRONOME, - [MOVE_FLY] = FORBIDDEN_ASSIST, + [MOVE_FLOATY_FALL] = FORBIDDEN_METRONOME, + [MOVE_FLY] = FORBIDDEN_ASSIST | FORBIDDEN_SLEEP_TALK, [MOVE_FOCUS_PUNCH] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, [MOVE_FOLLOW_ME] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, - [MOVE_FREEZE_SHOCK] = FORBIDDEN_METRONOME, + [MOVE_FREEZE_SHOCK] = FORBIDDEN_METRONOME | FORBIDDEN_SLEEP_TALK, + [MOVE_FREEZING_GLARE] = FORBIDDEN_METRONOME, + [MOVE_FREEZY_FROST] = FORBIDDEN_METRONOME, + [MOVE_GEOMANCY] = FORBIDDEN_SLEEP_TALK, + [MOVE_GLACIAL_LANCE] = FORBIDDEN_METRONOME, + [MOVE_GLITZY_GLOW] = FORBIDDEN_METRONOME, + [MOVE_GRAV_APPLE] = FORBIDDEN_METRONOME, [MOVE_HELPING_HAND] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_HOLD_HANDS] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, [MOVE_HYPERSPACE_FURY] = FORBIDDEN_METRONOME, [MOVE_HYPERSPACE_HOLE] = FORBIDDEN_METRONOME, - [MOVE_ICE_BURN] = FORBIDDEN_METRONOME, + [MOVE_ICE_BURN] = FORBIDDEN_METRONOME | FORBIDDEN_SLEEP_TALK, [MOVE_INSTRUCT] = FORBIDDEN_METRONOME, + [MOVE_JUNGLE_HEALING] = FORBIDDEN_METRONOME, [MOVE_KINGS_SHIELD] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_LIFE_DEW] = FORBIDDEN_METRONOME, [MOVE_LIGHT_OF_RUIN] = FORBIDDEN_METRONOME, [MOVE_MAT_BLOCK] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_ME_FIRST] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, + [MOVE_METEOR_ASSAULT] = FORBIDDEN_METRONOME, [MOVE_METRONOME] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, [MOVE_MIMIC] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_MIMIC | FORBIDDEN_SLEEP_TALK, + [MOVE_MIND_BLOWN] = FORBIDDEN_METRONOME, [MOVE_MIRROR_COAT] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_MIRROR_MOVE] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, + [MOVE_MOONGEIST_BEAM] = FORBIDDEN_METRONOME, [MOVE_NATURE_POWER] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, + [MOVE_NATURES_MADNESS] = FORBIDDEN_METRONOME, + [MOVE_OBSTRUCT] = FORBIDDEN_METRONOME | FORBIDDEN_COPYCAT, [MOVE_ORIGIN_PULSE] = FORBIDDEN_METRONOME, + [MOVE_OVERDRIVE] = FORBIDDEN_METRONOME, + [MOVE_PHANTOM_FORCE] = FORBIDDEN_ASSIST | FORBIDDEN_SLEEP_TALK, + [MOVE_PHOTON_GEYSER] = FORBIDDEN_METRONOME, + [MOVE_PIKA_PAPOW] = FORBIDDEN_METRONOME, + [MOVE_PLASMA_FISTS] = FORBIDDEN_METRONOME, [MOVE_PRECIPICE_BLADES] = FORBIDDEN_METRONOME, [MOVE_PROTECT] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_PYRO_BALL] = FORBIDDEN_METRONOME, [MOVE_QUASH] = FORBIDDEN_METRONOME, [MOVE_QUICK_GUARD] = FORBIDDEN_METRONOME, [MOVE_RAGE_POWDER] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_RAZOR_WIND] = FORBIDDEN_SLEEP_TALK, [MOVE_RELIC_SONG] = FORBIDDEN_METRONOME, [MOVE_ROAR] = FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_SAPPY_SEED] = FORBIDDEN_METRONOME, [MOVE_SECRET_SWORD] = FORBIDDEN_METRONOME, + [MOVE_SHADOW_FORCE] = FORBIDDEN_ASSIST | FORBIDDEN_SLEEP_TALK, [MOVE_SHELL_TRAP] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, - [MOVE_SKETCH] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, + [MOVE_SIZZLY_SLIDE] = FORBIDDEN_METRONOME, + [MOVE_SKETCH] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_MIMIC | FORBIDDEN_SLEEP_TALK, + [MOVE_SKULL_BASH] = FORBIDDEN_SLEEP_TALK, + [MOVE_SKY_ATTACK] = FORBIDDEN_SLEEP_TALK, + [MOVE_SKY_DROP] = FORBIDDEN_ASSIST | FORBIDDEN_SLEEP_TALK, [MOVE_SLEEP_TALK] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_SLEEP_TALK, + [MOVE_SNAP_TRAP] = FORBIDDEN_METRONOME, [MOVE_SNARL] = FORBIDDEN_METRONOME, [MOVE_SNATCH] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_SNORE] = FORBIDDEN_METRONOME, + [MOVE_SOLAR_BEAM] = FORBIDDEN_SLEEP_TALK, + [MOVE_SOLAR_BLADE] = FORBIDDEN_SLEEP_TALK, + [MOVE_SPARKLY_SWIRL] = FORBIDDEN_METRONOME, [MOVE_SPECTRAL_THIEF] = FORBIDDEN_METRONOME, [MOVE_SPIKY_SHIELD] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, - [MOVE_SPOTLIGHT] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST, + [MOVE_SPIRIT_BREAK] = FORBIDDEN_METRONOME, + [MOVE_SPLISHY_SPLASH] = FORBIDDEN_METRONOME, + [MOVE_SPOTLIGHT] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_STEAM_ERUPTION] = FORBIDDEN_METRONOME, + [MOVE_STEEL_BEAM] = FORBIDDEN_METRONOME, + [MOVE_STRANGE_STEAM] = FORBIDDEN_METRONOME, + [MOVE_SUNSTEEL_STRIKE] = FORBIDDEN_METRONOME, + [MOVE_SURGING_STRIKES] = FORBIDDEN_METRONOME, [MOVE_SWITCHEROO] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_TECHNO_BLAST] = FORBIDDEN_METRONOME, [MOVE_THIEF] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_THOUSAND_ARROWS] = FORBIDDEN_METRONOME, [MOVE_THOUSAND_WAVES] = FORBIDDEN_METRONOME, + [MOVE_THUNDER_CAGE] = FORBIDDEN_METRONOME, + [MOVE_THUNDEROUS_KICK] = FORBIDDEN_METRONOME, [MOVE_TRANSFORM] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT | FORBIDDEN_MIMIC, [MOVE_TRICK] = FORBIDDEN_METRONOME | FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, - [MOVE_V_CREATE] = FORBIDDEN_METRONOME, - [MOVE_WIDE_GUARD] = FORBIDDEN_METRONOME, - [MOVE_WHIRLWIND] = FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, [MOVE_UPROAR] = FORBIDDEN_SLEEP_TALK, + [MOVE_V_CREATE] = FORBIDDEN_METRONOME, + [MOVE_VEEVEE_VOLLEY] = FORBIDDEN_METRONOME, + [MOVE_WHIRLWIND] = FORBIDDEN_ASSIST | FORBIDDEN_COPYCAT, + [MOVE_WICKED_BLOW] = FORBIDDEN_METRONOME, + [MOVE_WIDE_GUARD] = FORBIDDEN_METRONOME, + [MOVE_ZIPPY_ZAP] = FORBIDDEN_METRONOME, }; static const u16 sMoveEffectsForbiddenToInstruct[] = { EFFECT_ASSIST, //EFFECT_BEAK_BLAST, + EFFECT_BELCH, EFFECT_BIDE, + //EFFECT_CELEBRATE, + //EFFECT_CHATTER, + EFFECT_COPYCAT, + //EFFECT_DYNAMAX_CANNON, EFFECT_FOCUS_PUNCH, - //EFFECT_GEOMANCY, + EFFECT_GEOMANCY, + //EFFECT_HOLD_HANDS, EFFECT_INSTRUCT, EFFECT_ME_FIRST, EFFECT_METRONOME, + EFFECT_MIMIC, EFFECT_MIRROR_MOVE, EFFECT_NATURE_POWER, + //EFFECT_OBSTRUCT, + EFFECT_RAMPAGE, EFFECT_RECHARGE, + EFFECT_RECOIL_25, + EFFECT_ROLLOUT, EFFECT_SEMI_INVULNERABLE, //EFFECT_SHELL_TRAP, EFFECT_SKETCH, @@ -1016,21 +1086,22 @@ static const u16 sMoveEffectsForbiddenToInstruct[] = EFFECT_SOLARBEAM, EFFECT_TRANSFORM, EFFECT_TWO_TURNS_ATTACK, + EFFECT_UPROAR, FORBIDDEN_INSTRUCT_END }; static const u16 sNaturePowerMoves[] = { - [BATTLE_TERRAIN_GRASS] = MOVE_STUN_SPORE, - [BATTLE_TERRAIN_LONG_GRASS] = MOVE_RAZOR_LEAF, - [BATTLE_TERRAIN_SAND] = MOVE_EARTHQUAKE, + [BATTLE_TERRAIN_GRASS] = MOVE_ENERGY_BALL, + [BATTLE_TERRAIN_LONG_GRASS] = MOVE_ENERGY_BALL, + [BATTLE_TERRAIN_SAND] = MOVE_EARTH_POWER, [BATTLE_TERRAIN_UNDERWATER] = MOVE_HYDRO_PUMP, - [BATTLE_TERRAIN_WATER] = MOVE_SURF, - [BATTLE_TERRAIN_POND] = MOVE_BUBBLE_BEAM, - [BATTLE_TERRAIN_MOUNTAIN] = MOVE_ROCK_SLIDE, - [BATTLE_TERRAIN_CAVE] = MOVE_SHADOW_BALL, - [BATTLE_TERRAIN_BUILDING] = MOVE_SWIFT, - [BATTLE_TERRAIN_PLAIN] = MOVE_SWIFT + [BATTLE_TERRAIN_WATER] = MOVE_HYDRO_PUMP, + [BATTLE_TERRAIN_POND] = MOVE_HYDRO_PUMP, + [BATTLE_TERRAIN_MOUNTAIN] = MOVE_EARTH_POWER, + [BATTLE_TERRAIN_CAVE] = MOVE_POWER_GEM, + [BATTLE_TERRAIN_BUILDING] = MOVE_TRI_ATTACK, + [BATTLE_TERRAIN_PLAIN] = MOVE_TRI_ATTACK }; static const u16 sPickupItems[] = @@ -1083,7 +1154,7 @@ static const u8 sTerrainToType[] = [BATTLE_TERRAIN_UNDERWATER] = TYPE_WATER, [BATTLE_TERRAIN_WATER] = TYPE_WATER, [BATTLE_TERRAIN_POND] = TYPE_WATER, - [BATTLE_TERRAIN_MOUNTAIN] = TYPE_ROCK, + [BATTLE_TERRAIN_MOUNTAIN] = TYPE_GROUND, [BATTLE_TERRAIN_CAVE] = TYPE_ROCK, [BATTLE_TERRAIN_BUILDING] = TYPE_NORMAL, [BATTLE_TERRAIN_PLAIN] = TYPE_NORMAL, @@ -1135,34 +1206,33 @@ const ALIGNED(4) u8 gBattlePalaceNatureToMoveGroupLikelihood[NUM_NATURES][4] = [NATURE_QUIRKY] = PALACE_STYLE(56, 22, 56, 22) // 22%, 22% }; -// Indices into gBattlePalaceFlavorTextTable static const u8 sBattlePalaceNatureToFlavorTextId[NUM_NATURES] = { - [NATURE_HARDY] = 3, - [NATURE_LONELY] = 0, - [NATURE_BRAVE] = 1, - [NATURE_ADAMANT] = 0, - [NATURE_NAUGHTY] = 0, - [NATURE_BOLD] = 1, - [NATURE_DOCILE] = 3, - [NATURE_RELAXED] = 0, - [NATURE_IMPISH] = 1, - [NATURE_LAX] = 2, - [NATURE_TIMID] = 2, - [NATURE_HASTY] = 0, - [NATURE_SERIOUS] = 3, - [NATURE_JOLLY] = 1, - [NATURE_NAIVE] = 3, - [NATURE_MODEST] = 1, - [NATURE_MILD] = 2, - [NATURE_QUIET] = 3, - [NATURE_BASHFUL] = 3, - [NATURE_RASH] = 2, - [NATURE_CALM] = 1, - [NATURE_GENTLE] = 0, - [NATURE_SASSY] = 2, - [NATURE_CAREFUL] = 2, - [NATURE_QUIRKY] = 3, + [NATURE_HARDY] = B_MSG_EAGER_FOR_MORE, + [NATURE_LONELY] = B_MSG_GLINT_IN_EYE, + [NATURE_BRAVE] = B_MSG_GETTING_IN_POS, + [NATURE_ADAMANT] = B_MSG_GLINT_IN_EYE, + [NATURE_NAUGHTY] = B_MSG_GLINT_IN_EYE, + [NATURE_BOLD] = B_MSG_GETTING_IN_POS, + [NATURE_DOCILE] = B_MSG_EAGER_FOR_MORE, + [NATURE_RELAXED] = B_MSG_GLINT_IN_EYE, + [NATURE_IMPISH] = B_MSG_GETTING_IN_POS, + [NATURE_LAX] = B_MSG_GROWL_DEEPLY, + [NATURE_TIMID] = B_MSG_GROWL_DEEPLY, + [NATURE_HASTY] = B_MSG_GLINT_IN_EYE, + [NATURE_SERIOUS] = B_MSG_EAGER_FOR_MORE, + [NATURE_JOLLY] = B_MSG_GETTING_IN_POS, + [NATURE_NAIVE] = B_MSG_EAGER_FOR_MORE, + [NATURE_MODEST] = B_MSG_GETTING_IN_POS, + [NATURE_MILD] = B_MSG_GROWL_DEEPLY, + [NATURE_QUIET] = B_MSG_EAGER_FOR_MORE, + [NATURE_BASHFUL] = B_MSG_EAGER_FOR_MORE, + [NATURE_RASH] = B_MSG_GROWL_DEEPLY, + [NATURE_CALM] = B_MSG_GETTING_IN_POS, + [NATURE_GENTLE] = B_MSG_GLINT_IN_EYE, + [NATURE_SASSY] = B_MSG_GROWL_DEEPLY, + [NATURE_CAREFUL] = B_MSG_GROWL_DEEPLY, + [NATURE_QUIRKY] = B_MSG_EAGER_FOR_MORE, }; bool32 IsBattlerProtected(u8 battlerId, u16 move) @@ -1319,7 +1389,7 @@ static void Cmd_attackcanceler(void) } gHitMarker |= HITMARKER_OBEYS; - if (NoTargetPresent(gCurrentMove)) + if (NoTargetPresent(gCurrentMove) && (!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))) { gBattlescriptCurrInstr = BattleScript_ButItFailedAtkStringPpReduce; if (!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) @@ -1382,13 +1452,16 @@ static void Cmd_attackcanceler(void) } else if (IsBattlerProtected(gBattlerTarget, gCurrentMove) && (gCurrentMove != MOVE_CURSE || IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_GHOST)) - && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)))) + && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))) + && gBattleMoves[gCurrentMove].effect != EFFECT_SUCKER_PUNCH) { + if (gBattleMoves[gCurrentMove].flags & FLAG_MAKES_CONTACT) + gProtectStructs[gBattlerAttacker].touchedProtectLike = 1; CancelMultiTurnMoves(gBattlerAttacker); gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[gBattlerTarget] = 0; gLastHitByType[gBattlerTarget] = 0; - gBattleCommunication[6] = 1; + gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED; gBattlescriptCurrInstr++; } else @@ -1422,7 +1495,7 @@ static void Cmd_jumpifaffectedbyprotect(void) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(5, 0); - gBattleCommunication[6] = 1; + gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED; } else { @@ -1437,7 +1510,7 @@ bool8 JumpIfMoveAffectedByProtect(u16 move) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); - gBattleCommunication[6] = 1; + gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED; affected = TRUE; } return affected; @@ -1471,7 +1544,8 @@ static bool32 AccuracyCalcHelper(u16 move) } if ((gStatuses3[gBattlerTarget] & STATUS3_PHANTOM_FORCE) - || (!(gBattleMoves[move].flags & FLAG_HIT_IN_AIR) && gStatuses3[gBattlerTarget] & STATUS3_ON_AIR) + || (!(gBattleMoves[move].flags & FLAG_DMG_IN_AIR) && gStatuses3[gBattlerTarget] & STATUS3_ON_AIR) + || (!(gBattleMoves[move].flags & FLAG_DMG_2X_IN_AIR) && gStatuses3[gBattlerTarget] & STATUS3_ON_AIR) || (!(gBattleMoves[move].flags & FLAG_DMG_UNDERGROUND) && gStatuses3[gBattlerTarget] & STATUS3_UNDERGROUND) || (!(gBattleMoves[move].flags & FLAG_DMG_UNDERWATER) && gStatuses3[gBattlerTarget] & STATUS3_UNDERWATER)) { @@ -1510,7 +1584,7 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move) accStage = gBattleMons[battlerAtk].statStages[STAT_ACC]; evasionStage = gBattleMons[battlerDef].statStages[STAT_EVASION]; - if (atkAbility == ABILITY_UNAWARE) + if (atkAbility == ABILITY_UNAWARE || atkAbility == ABILITY_KEEN_EYE) evasionStage = 6; if (gBattleMoves[move].flags & FLAG_STAT_STAGES_IGNORED) evasionStage = 6; @@ -1536,8 +1610,8 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move) if (defAbility == ABILITY_WONDER_SKIN && gBattleMoves[move].power == 0) moveAcc = 50; - calc = sAccuracyStageRatios[buff].dividend * moveAcc; - calc /= sAccuracyStageRatios[buff].divisor; + calc = gAccuracyStageRatios[buff].dividend * moveAcc; + calc /= gAccuracyStageRatios[buff].divisor; if (atkAbility == ABILITY_COMPOUND_EYES) calc = (calc * 130) / 100; // 1.3 compound eyes boost @@ -1564,6 +1638,18 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move) else if (atkHoldEffect == HOLD_EFFECT_ZOOM_LENS && GetBattlerTurnOrderNum(battlerAtk) > GetBattlerTurnOrderNum(battlerDef)); calc = (calc * (100 + atkParam)) / 100; + if (gProtectStructs[battlerAtk].micle) + { + gProtectStructs[battlerAtk].micle = FALSE; + if (atkAbility == ABILITY_RIPEN) + calc = (calc * 140) / 100; // ripen gives 40% acc boost + else + calc = (calc * 120) / 100; // 20% acc boost + } + + if (gFieldStatuses & STATUS_FIELD_GRAVITY) + calc = (calc * 5) / 3; // 1.66 Gravity acc boost + return calc; } @@ -1597,9 +1683,9 @@ static void Cmd_accuracycheck(void) gMoveResultFlags |= MOVE_RESULT_MISSED; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && (gBattleMoves[move].target == MOVE_TARGET_BOTH || gBattleMoves[move].target == MOVE_TARGET_FOES_AND_ALLY)) - gBattleCommunication[6] = 2; + gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_ATK; else - gBattleCommunication[6] = 0; + gBattleCommunication[MISS_TYPE] = B_MSG_MISSED; if (gBattleMoves[move].power) CalcTypeEffectivenessMultiplier(move, type, gBattlerAttacker, gBattlerTarget, TRUE); @@ -2175,11 +2261,11 @@ static void Cmd_resultmessage(void) if (gBattleControllerExecFlags) return; - if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2)) + if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[MISS_TYPE] > B_MSG_AVOIDED_ATK)) { - if (gBattleCommunication[6] > 2) // Wonder Guard or Levitate - show the ability pop-up + if (gBattleCommunication[MISS_TYPE] > B_MSG_AVOIDED_ATK) // Wonder Guard or Levitate - show the ability pop-up CreateAbilityPopUp(gBattlerTarget, gBattleMons[gBattlerTarget].ability, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0); - stringId = gMissStringIds[gBattleCommunication[6]]; + stringId = gMissStringIds[gBattleCommunication[MISS_TYPE]]; gBattleCommunication[MSG_DISPLAY] = 1; } else @@ -2369,6 +2455,32 @@ static void CheckSetUnburden(u8 battlerId) } } +// battlerStealer steals the item of battlerItem +void StealTargetItem(u8 battlerStealer, u8 battlerItem) +{ + gLastUsedItem = gBattleMons[battlerItem].item; + gBattleMons[battlerItem].item = 0; + + RecordItemEffectBattle(battlerItem, 0); + RecordItemEffectBattle(battlerStealer, ItemId_GetHoldEffect(gLastUsedItem)); + gBattleMons[battlerStealer].item = gLastUsedItem; + + CheckSetUnburden(battlerItem); + gBattleResources->flags->flags[battlerStealer] &= ~(RESOURCE_FLAG_UNBURDEN); + + gActiveBattler = battlerStealer; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); // set attacker item + MarkBattlerForControllerExec(battlerStealer); + + gActiveBattler = battlerItem; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[battlerItem].item); // remove target item + MarkBattlerForControllerExec(battlerItem); + + gBattleStruct->choicedMove[battlerItem] = 0; + + TrySaveExchangedItem(battlerItem, gLastUsedItem); +} + #define INCREMENT_RESET_RETURN \ { \ gBattlescriptCurrInstr++; \ @@ -2419,9 +2531,7 @@ void SetMoveEffect(bool32 primary, u32 certain) && !primary && gBattleScripting.moveEffect <= 7) INCREMENT_RESET_RETURN - if (GetBattlerAbility(gBattlerAttacker) == ABILITY_SHEER_FORCE - && gBattleMoves[gCurrentMove].flags & FLAG_SHEER_FORCE_BOOST - && affectsUser != MOVE_EFFECT_AFFECTS_USER) + if (TestSheerForceFlag(gBattlerAttacker, gCurrentMove) && affectsUser != MOVE_EFFECT_AFFECTS_USER) INCREMENT_RESET_RETURN if (gBattleMons[gEffectBattler].hp == 0 @@ -2474,12 +2584,12 @@ void SetMoveEffect(bool32 primary, u32 certain) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_MOVE_STATUS; } RESET_RETURN } @@ -2490,7 +2600,7 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PSNPrevention; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUS_HAD_NO_EFFECT; RESET_RETURN } if (!CanPoisonType(gBattleScripting.battler, gEffectBattler)) @@ -2515,12 +2625,12 @@ void SetMoveEffect(bool32 primary, u32 certain) gBattlescriptCurrInstr = BattleScript_BRNPrevention; if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_MOVE_STATUS; } RESET_RETURN } @@ -2531,7 +2641,7 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_BRNPrevention; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUS_HAD_NO_EFFECT; RESET_RETURN } if (IS_BATTLER_OF_TYPE(gEffectBattler, TYPE_FIRE)) @@ -2575,12 +2685,12 @@ void SetMoveEffect(bool32 primary, u32 certain) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_MOVE_STATUS; } RESET_RETURN } @@ -2619,12 +2729,12 @@ void SetMoveEffect(bool32 primary, u32 certain) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_MOVE_STATUS; } RESET_RETURN } @@ -2635,7 +2745,7 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PSNPrevention; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUS_HAD_NO_EFFECT; RESET_RETURN } if (gBattleMons[gEffectBattler].status1) @@ -2676,12 +2786,12 @@ void SetMoveEffect(bool32 primary, u32 certain) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUSED_BY_ABILITY; gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUSED; } // for synchronize @@ -2732,16 +2842,7 @@ void SetMoveEffect(bool32 primary, u32 certain) case MOVE_EFFECT_FLINCH: if (GetBattlerAbility(gEffectBattler) == ABILITY_INNER_FOCUS) { - if (primary == TRUE || certain == MOVE_EFFECT_CERTAIN) - { - gLastUsedAbility = ABILITY_INNER_FOCUS; - RecordAbilityBattle(gEffectBattler, ABILITY_INNER_FOCUS); - gBattlescriptCurrInstr = BattleScript_FlinchPrevention; - } - else - { - gBattlescriptCurrInstr++; - } + gBattlescriptCurrInstr++; } else { @@ -2777,9 +2878,10 @@ void SetMoveEffect(bool32 primary, u32 certain) gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleScripting.moveEffect]; break; case MOVE_EFFECT_HAPPY_HOUR: - if (GET_BATTLER_SIDE(gBattlerAttacker) == B_SIDE_PLAYER) + if (GET_BATTLER_SIDE(gBattlerAttacker) == B_SIDE_PLAYER && !gBattleStruct->moneyMultiplierMove) { gBattleStruct->moneyMultiplier *= 2; + gBattleStruct->moneyMultiplierMove = 1; } gBattlescriptCurrInstr++; break; @@ -2924,7 +3026,7 @@ void SetMoveEffect(bool32 primary, u32 certain) break; case MOVE_EFFECT_STEAL_ITEM: { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) + if (!CanStealItem(gBattlerAttacker, gBattlerTarget, gBattleMons[gBattlerTarget].item)) { gBattlescriptCurrInstr++; break; @@ -2936,7 +3038,7 @@ void SetMoveEffect(bool32 primary, u32 certain) (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_SECRET_BASE))) { gBattlescriptCurrInstr++; @@ -2945,7 +3047,7 @@ void SetMoveEffect(bool32 primary, u32 certain) (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_SECRET_BASE)) && (gWishFutureKnock.knockedOffMons[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]])) { @@ -2962,31 +3064,17 @@ void SetMoveEffect(bool32 primary, u32 certain) } else if (gBattleMons[gBattlerAttacker].item != 0 || gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY - || IS_ITEM_MAIL(gBattleMons[gBattlerTarget].item) || gBattleMons[gBattlerTarget].item == 0) { gBattlescriptCurrInstr++; } else { - gLastUsedItem = gBattleStruct->changedItems[gBattlerAttacker] = gBattleMons[gBattlerTarget].item; - gBattleMons[gBattlerTarget].item = 0; - - CheckSetUnburden(gBattlerTarget); - gBattleResources->flags->flags[gBattlerAttacker] &= ~(RESOURCE_FLAG_UNBURDEN); - - gActiveBattler = gBattlerAttacker; - BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); - MarkBattlerForControllerExec(gBattlerAttacker); - - gActiveBattler = gBattlerTarget; - BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattlerTarget].item); - MarkBattlerForControllerExec(gBattlerTarget); - + StealTargetItem(gBattlerAttacker, gBattlerTarget); // Attacker steals target item + gBattleMons[gBattlerAttacker].item = 0; // Item assigned later on with thief (see MOVEEND_CHANGED_ITEMS) + gBattleStruct->changedItems[gBattlerAttacker] = gLastUsedItem; // Stolen item to be assigned later BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_ItemSteal; - - gBattleStruct->choicedMove[gBattlerTarget] = 0; } } @@ -3022,7 +3110,18 @@ void SetMoveEffect(bool32 primary, u32 certain) MarkBattlerForControllerExec(gActiveBattler); BattleScriptPush(gBattlescriptCurrInstr + 1); - gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; + switch (gBattleMoves[gCurrentMove].argument) + { + case STATUS1_PARALYSIS: + gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; + break; + case STATUS1_SLEEP: + gBattlescriptCurrInstr = BattleScript_TargetWokeUp; + break; + case STATUS1_BURN: + gBattlescriptCurrInstr = BattleScript_TargetBurnHeal; + break; + } } break; case MOVE_EFFECT_ATK_DEF_DOWN: // SuperPower @@ -3107,7 +3206,7 @@ void SetMoveEffect(bool32 primary, u32 certain) case MOVE_EFFECT_FLAME_BURST: if (IsBattlerAlive(BATTLE_PARTNER(gBattlerTarget)) && GetBattlerAbility(BATTLE_PARTNER(gBattlerTarget)) != ABILITY_MAGIC_GUARD) { - gBattleScripting.battler = BATTLE_PARTNER(gBattlerTarget); + gBattleScripting.savedBattler = BATTLE_PARTNER(gBattlerTarget); gBattleMoveDamage = gBattleMons[BATTLE_PARTNER(gBattlerTarget)].hp / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -3605,7 +3704,7 @@ static void Cmd_getexp(void) u8 holdEffect; s32 sentIn; s32 viaExpShare = 0; - u16 *exp = &gBattleStruct->expValue; + u32 *exp = &gBattleStruct->expValue; gBattlerFainted = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); sentIn = gSentPokesToOpponent[(gBattlerFainted & 2) >> 1]; @@ -3615,7 +3714,7 @@ static void Cmd_getexp(void) case 0: // check if should receive exp at all if (GetBattlerSide(gBattlerFainted) != B_SIDE_OPPONENT || (gBattleTypeFlags & (BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SAFARI @@ -3632,7 +3731,7 @@ static void Cmd_getexp(void) break; case 1: // calculate experience points to redistribute { - u16 calculatedExp; + u32 calculatedExp; s32 viaSentIn; for (viaSentIn = 0, i = 0; i < PARTY_SIZE; i++) @@ -3661,7 +3760,7 @@ static void Cmd_getexp(void) #if B_SPLIT_EXP < GEN_6 if (viaExpShare) // at least one mon is getting exp via exp share { - *exp = calculatedExp / 2 / viaSentIn; + *exp = SAFE_DIV(calculatedExp / 2, viaSentIn); if (*exp == 0) *exp = 1; @@ -3671,7 +3770,7 @@ static void Cmd_getexp(void) } else { - *exp = calculatedExp / viaSentIn; + *exp = SAFE_DIV(calculatedExp, viaSentIn); if (*exp == 0) *exp = 1; gExpShareExp = 0; @@ -3739,9 +3838,14 @@ static void Cmd_getexp(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && B_TRAINER_EXP_MULTIPLIER <= GEN_7) gBattleMoveDamage = (gBattleMoveDamage * 150) / 100; #if (B_SCALED_EXP >= GEN_5) && (B_SCALED_EXP != GEN_6) - gBattleMoveDamage *= sExperienceScalingFactors[(gBattleMons[gBattlerFainted].level * 2) + 10]; - gBattleMoveDamage /= sExperienceScalingFactors[gBattleMons[gBattlerFainted].level + GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) + 10]; - gBattleMoveDamage++; + { + // Note: There is an edge case where if a pokemon receives a large amount of exp, it wouldn't be properly calculated + // because of multiplying by scaling factor(the value would simply be larger than an u32 can hold). Hence u64 is needed. + u64 value = gBattleMoveDamage; + value *= sExperienceScalingFactors[(gBattleMons[gBattlerFainted].level * 2) + 10]; + value /= sExperienceScalingFactors[gBattleMons[gBattlerFainted].level + GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) + 10]; + gBattleMoveDamage = value + 1; + } #endif if (IsTradedMon(&gPlayerParty[gBattleStruct->expGetterMonId])) @@ -3765,7 +3869,7 @@ static void Cmd_getexp(void) // get exp getter battlerId if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterMonId) && !(gAbsentBattlerFlags & gBitTable[2])) + if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterMonId && !(gAbsentBattlerFlags & gBitTable[2])) gBattleStruct->expGetterBattlerId = 2; else { @@ -3783,7 +3887,7 @@ static void Cmd_getexp(void) PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, gBattleStruct->expGetterMonId); // buffer 'gained' or 'gained a boosted' PREPARE_STRING_BUFFER(gBattleTextBuff2, i); - PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage); + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 6, gBattleMoveDamage); PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBattlerId); MonGainEVs(&gPlayerParty[gBattleStruct->expGetterMonId], gBattleMons[gBattlerFainted].species); @@ -3829,7 +3933,7 @@ static void Cmd_getexp(void) BattleScriptPushCursor(); gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterMonId]; gBattlescriptCurrInstr = BattleScript_LevelUp; - gBattleMoveDamage = (gBattleResources->bufferB[gActiveBattler][2] | (gBattleResources->bufferB[gActiveBattler][3] << 8)); + gBattleMoveDamage = T1_READ_32(&gBattleResources->bufferB[gActiveBattler][2]); AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterMonId], FRIENDSHIP_EVENT_GROW_LEVEL); // update battle mon structure after level up @@ -3938,7 +4042,7 @@ bool32 NoAliveMonsForEitherParty(void) return (NoAliveMonsForPlayer() || NoAliveMonsForOpponent()); } -static void atk24(void) +static void Cmd_unknown_24(void) { if (gBattleControllerExecFlags) return; @@ -3948,7 +4052,7 @@ static void atk24(void) if (NoAliveMonsForOpponent()) gBattleOutcome |= B_OUTCOME_WON; - if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) + if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))) { s32 i, foundPlayer, foundOpponent; @@ -3957,7 +4061,7 @@ static void atk24(void) if ((gHitMarker & HITMARKER_FAINTED2(i)) && (!gSpecialStatuses[i].flag40)) foundPlayer++; } - + foundOpponent = 0; for (i = 1; i < gBattlersCount; i += 2) @@ -3992,7 +4096,7 @@ static void MoveValuesCleanUp(void) gMoveResultFlags = 0; gIsCriticalHit = FALSE; gBattleScripting.moveEffect = 0; - gBattleCommunication[6] = 0; + gBattleCommunication[MISS_TYPE] = 0; gHitMarker &= ~(HITMARKER_DESTINYBOND); gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); } @@ -4304,7 +4408,7 @@ static void Cmd_waitstate(void) gBattlescriptCurrInstr++; } -static void Cmd_update(void) +static void Cmd_healthbar_update(void) { if (gBattlescriptCurrInstr[1] == BS_TARGET) gActiveBattler = gBattlerTarget; @@ -4404,6 +4508,15 @@ static void Cmd_playanimation(void) gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); argumentPtr = T2_READ_PTR(gBattlescriptCurrInstr + 3); + #if B_TERRAIN_BG_CHANGE == FALSE + if (gBattlescriptCurrInstr[2] == B_ANIM_RESTORE_BG) + { + // workaround for .if not working + gBattlescriptCurrInstr += 7; + return; + } + #endif + if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE || gBattlescriptCurrInstr[2] == B_ANIM_SNATCH_MOVE || gBattlescriptCurrInstr[2] == B_ANIM_MEGA_EVOLUTION @@ -4613,7 +4726,7 @@ static void Cmd_playstatchangeanimation(void) } } - if (flags & STAT_CHANGE_ONLY_MULTIPLE && changeableStatsCount < 2) + if (flags & STAT_CHANGE_MULTIPLE_STATS && changeableStatsCount < 2) { gBattlescriptCurrInstr += 4; } @@ -4621,7 +4734,7 @@ static void Cmd_playstatchangeanimation(void) { BtlController_EmitBattleAnimation(0, B_ANIM_STATS_CHANGE, statAnimId); MarkBattlerForControllerExec(gActiveBattler); - if (flags & STAT_CHANGE_ONLY_MULTIPLE && changeableStatsCount > 1) + if (flags & STAT_CHANGE_MULTIPLE_STATS && changeableStatsCount > 1) gBattleScripting.statAnimPlayed = TRUE; gBattlescriptCurrInstr += 4; } @@ -4688,10 +4801,11 @@ static void Cmd_moveend(void) switch (gBattleScripting.moveendState) { case MOVEEND_PROTECT_LIKE_EFFECT: - if (gBattleMoves[gCurrentMove].flags & FLAG_MAKES_CONTACT) + if (gProtectStructs[gBattlerAttacker].touchedProtectLike) { if (gProtectStructs[gBattlerTarget].spikyShielded && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { + gProtectStructs[gBattlerAttacker].touchedProtectLike = 0; gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -4702,6 +4816,7 @@ static void Cmd_moveend(void) } else if (gProtectStructs[gBattlerTarget].kingsShielded) { + gProtectStructs[gBattlerAttacker].touchedProtectLike = 0; i = gBattlerAttacker; gBattlerAttacker = gBattlerTarget; gBattlerTarget = i; // gBattlerTarget and gBattlerAttacker are swapped in order to activate Defiant, if applicable @@ -4712,6 +4827,7 @@ static void Cmd_moveend(void) } else if (gProtectStructs[gBattlerTarget].banefulBunkered) { + gProtectStructs[gBattlerAttacker].touchedProtectLike = 0; gBattleScripting.moveEffect = MOVE_EFFECT_POISON | MOVE_EFFECT_AFFECTS_USER; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_BANEFUL_BUNKER); BattleScriptPushCursor(); @@ -4784,9 +4900,8 @@ static void Cmd_moveend(void) && (*choicedMoveAtk == 0 || *choicedMoveAtk == 0xFFFF)) { if ((gBattleMoves[gChosenMove].effect == EFFECT_BATON_PASS - || gBattleMoves[gChosenMove].effect == EFFECT_HEALING_WISH - || gBattleMoves[gChosenMove].effect == EFFECT_HIT_ESCAPE) - && !(gMoveResultFlags & MOVE_RESULT_FAILED)) + || gBattleMoves[gChosenMove].effect == EFFECT_HEALING_WISH) + && !(gMoveResultFlags & MOVE_RESULT_FAILED)) { ++gBattleScripting.moveendState; break; @@ -4916,7 +5031,8 @@ static void Cmd_moveend(void) && gBattleMoves[originallyUsedMove].effect != EFFECT_HEALING_WISH) { if (gHitMarker & HITMARKER_OBEYS) - { if (!gSpecialStatuses[gBattlerAttacker].dancerUsedMove) + { + if (!gSpecialStatuses[gBattlerAttacker].dancerUsedMove) { gLastMoves[gBattlerAttacker] = gChosenMove; gLastResultingMoves[gBattlerAttacker] = gCurrentMove; @@ -5010,7 +5126,7 @@ static void Cmd_moveend(void) case MOVEEND_LIFE_ORB: if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_LIFE_ORB && IsBattlerAlive(gBattlerAttacker) - && !(GetBattlerAbility(gBattlerAttacker) == ABILITY_SHEER_FORCE && gBattleMoves[gCurrentMove].flags & FLAG_SHEER_FORCE_BOOST) + && !(TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD && gSpecialStatuses[gBattlerAttacker].damagedMons) { @@ -5024,6 +5140,43 @@ static void Cmd_moveend(void) } gBattleScripting.moveendState++; break; + case MOVEEND_PICKPOCKET: + if (IsBattlerAlive(gBattlerAttacker) + && gBattleMons[gBattlerAttacker].item != ITEM_NONE // Attacker must be holding an item + && !(gWishFutureKnock.knockedOffMons[GetBattlerSide(gBattlerAttacker)] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]) // But not knocked off + && !(TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) // Pickpocket doesn't activate for sheer force + && IsMoveMakingContact(gCurrentMove, gBattlerAttacker) // Pickpocket requires contact + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) // Obviously attack needs to have worked + { + u8 battlers[4] = {0, 1, 2, 3}; + SortBattlersBySpeed(battlers, FALSE); // Pickpocket activates for fastest mon without item + for (i = 0; i < gBattlersCount; i++) + { + u8 battler = battlers[i]; + // Attacker is mon who made contact, battler is mon with pickpocket + if (battler != gBattlerAttacker // Cannot pickpocket yourself + && GetBattlerAbility(battler) == ABILITY_PICKPOCKET // Target must have pickpocket ability + && BATTLER_DAMAGED(battler) // Target needs to have been damaged + && !DoesSubstituteBlockMove(gCurrentMove, gBattlerAttacker, battler) // Subsitute unaffected + && IsBattlerAlive(battler) // Battler must be alive to pickpocket + && gBattleMons[battler].item == ITEM_NONE // Pickpocketer can't have an item already + && CanStealItem(battler, gBattlerAttacker, gBattleMons[gBattlerAttacker].item)) // Cannot steal plates, mega stones, etc + { + gBattlerTarget = gBattlerAbility = battler; + // Battle scripting is super brittle so we shall do the item exchange now (if possible) + if (GetBattlerAbility(gBattlerAttacker) != ABILITY_STICKY_HOLD) + StealTargetItem(gBattlerTarget, gBattlerAttacker); // Target takes attacker's item + + gEffectBattler = gBattlerAttacker; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_Pickpocket; // Includes sticky hold check to print separate string + effect = TRUE; + break; // Pickpocket activates on fastest mon, so exit loop. + } + } + } + gBattleScripting.moveendState++; + break; case MOVEEND_DANCER: // Special case because it's so annoying if (gBattleMoves[gCurrentMove].flags & FLAG_DANCE) { @@ -5216,7 +5369,7 @@ static void Cmd_switchinanim(void) if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_FRONTIER))) HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); @@ -5279,7 +5432,7 @@ bool32 CanBattlerSwitch(u32 battlerId) } else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (gBattleTypeFlags & BATTLE_TYPE_x800000) + if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI) { if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) { @@ -5398,7 +5551,9 @@ static void Cmd_jumpifcantswitch(void) } } -static void sub_804CF10(u8 slotId) +// Opens the party screen to choose a new Pokémon to send out +// slotId is the Pokémon to replace +static void ChooseMonToSendOut(u8 slotId) { *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; @@ -5419,7 +5574,7 @@ static void Cmd_openpartyscreen(void) flags = 0; jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 2); - if (gBattlescriptCurrInstr[1] == 5) + if (gBattlescriptCurrInstr[1] == BS_UNK_5) { if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE) { @@ -5427,22 +5582,22 @@ static void Cmd_openpartyscreen(void) { if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) { - if (HasNoMonsToSwitch(gActiveBattler, 6, 6)) + if (HasNoMonsToSwitch(gActiveBattler, PARTY_SIZE, PARTY_SIZE)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { - sub_804CF10(PARTY_SIZE); + ChooseMonToSendOut(PARTY_SIZE); gSpecialStatuses[gActiveBattler].flag40 = 1; } } else { - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); } } @@ -5451,26 +5606,26 @@ static void Cmd_openpartyscreen(void) { u8 flag40_0, flag40_1, flag40_2, flag40_3; - hitmarkerFaintBits = gHitMarker >> 0x1C; + hitmarkerFaintBits = gHitMarker >> 28; if (gBitTable[0] & hitmarkerFaintBits) { gActiveBattler = 0; - if (HasNoMonsToSwitch(0, 6, 6)) + if (HasNoMonsToSwitch(0, PARTY_SIZE, PARTY_SIZE)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - BtlController_EmitCmd42(0); + BtlController_EmitCantSwitch(0); MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { - sub_804CF10(gBattleStruct->monToSwitchIntoId[2]); + ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[2]); gSpecialStatuses[gActiveBattler].flag40 = 1; } else { - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); flags |= 1; } @@ -5478,42 +5633,42 @@ static void Cmd_openpartyscreen(void) if (gBitTable[2] & hitmarkerFaintBits && !(gBitTable[0] & hitmarkerFaintBits)) { gActiveBattler = 2; - if (HasNoMonsToSwitch(2, 6, 6)) + if (HasNoMonsToSwitch(2, PARTY_SIZE, PARTY_SIZE)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - BtlController_EmitCmd42(0); + BtlController_EmitCantSwitch(0); MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { - sub_804CF10(gBattleStruct->monToSwitchIntoId[0]); + ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[0]); gSpecialStatuses[gActiveBattler].flag40 = 1; } else if (!(flags & 1)) { - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); } } if (gBitTable[1] & hitmarkerFaintBits) { gActiveBattler = 1; - if (HasNoMonsToSwitch(1, 6, 6)) + if (HasNoMonsToSwitch(1, PARTY_SIZE, PARTY_SIZE)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - BtlController_EmitCmd42(0); + BtlController_EmitCantSwitch(0); MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { - sub_804CF10(gBattleStruct->monToSwitchIntoId[3]); + ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[3]); gSpecialStatuses[gActiveBattler].flag40 = 1; } else { - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); flags |= 2; } @@ -5521,21 +5676,21 @@ static void Cmd_openpartyscreen(void) if (gBitTable[3] & hitmarkerFaintBits && !(gBitTable[1] & hitmarkerFaintBits)) { gActiveBattler = 3; - if (HasNoMonsToSwitch(3, 6, 6)) + if (HasNoMonsToSwitch(3, PARTY_SIZE, PARTY_SIZE)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - BtlController_EmitCmd42(0); + BtlController_EmitCantSwitch(0); MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { - sub_804CF10(gBattleStruct->monToSwitchIntoId[1]); + ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[1]); gSpecialStatuses[gActiveBattler].flag40 = 1; } else if (!(flags & 2)) { - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); } } @@ -5551,7 +5706,7 @@ static void Cmd_openpartyscreen(void) else gActiveBattler = 0; - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); } @@ -5567,49 +5722,49 @@ static void Cmd_openpartyscreen(void) else gActiveBattler = 1; - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); } } } gBattlescriptCurrInstr += 6; } - else if (gBattlescriptCurrInstr[1] == 6) + else if (gBattlescriptCurrInstr[1] == BS_UNK_6) { if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - hitmarkerFaintBits = gHitMarker >> 0x1C; + hitmarkerFaintBits = gHitMarker >> 28; if (gBitTable[2] & hitmarkerFaintBits && gBitTable[0] & hitmarkerFaintBits) { gActiveBattler = 2; - if (HasNoMonsToSwitch(2, gBattleResources->bufferB[0][1], 6)) + if (HasNoMonsToSwitch(2, gBattleResources->bufferB[0][1], PARTY_SIZE)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - BtlController_EmitCmd42(0); + BtlController_EmitCantSwitch(0); MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { - sub_804CF10(gBattleStruct->monToSwitchIntoId[0]); + ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[0]); gSpecialStatuses[gActiveBattler].flag40 = 1; } } if (gBitTable[3] & hitmarkerFaintBits && hitmarkerFaintBits & gBitTable[1]) { gActiveBattler = 3; - if (HasNoMonsToSwitch(3, gBattleResources->bufferB[1][1], 6)) + if (HasNoMonsToSwitch(3, gBattleResources->bufferB[1][1], PARTY_SIZE)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - BtlController_EmitCmd42(0); + BtlController_EmitCantSwitch(0); MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { - sub_804CF10(gBattleStruct->monToSwitchIntoId[1]); + ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[1]); gSpecialStatuses[gActiveBattler].flag40 = 1; } } @@ -5625,7 +5780,7 @@ static void Cmd_openpartyscreen(void) gBattlescriptCurrInstr += 6; } - hitmarkerFaintBits = gHitMarker >> 0x1C; + hitmarkerFaintBits = gHitMarker >> 28; gBattlerFainted = 0; while (!(gBitTable[gBattlerFainted] & hitmarkerFaintBits) @@ -5637,17 +5792,17 @@ static void Cmd_openpartyscreen(void) } else { - if (gBattlescriptCurrInstr[1] & 0x80) + if (gBattlescriptCurrInstr[1] & PARTY_SCREEN_OPTIONAL) hitmarkerFaintBits = PARTY_ACTION_CHOOSE_MON; // Used here as the caseId for the EmitChoose function. else hitmarkerFaintBits = PARTY_ACTION_SEND_OUT; - battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1] & ~(0x80)); + battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1] & ~(PARTY_SCREEN_OPTIONAL)); if (gSpecialStatuses[battlerId].flag40) { gBattlescriptCurrInstr += 6; } - else if (HasNoMonsToSwitch(battlerId, 6, 6)) + else if (HasNoMonsToSwitch(battlerId, PARTY_SIZE, PARTY_SIZE)) { gActiveBattler = battlerId; gAbsentBattlerFlags |= gBitTable[gActiveBattler]; @@ -5675,7 +5830,7 @@ static void Cmd_openpartyscreen(void) { if (gActiveBattler != battlerId) { - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); } } @@ -5686,7 +5841,7 @@ static void Cmd_openpartyscreen(void) if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) gActiveBattler ^= BIT_FLANK; - BtlController_EmitLinkStandbyMsg(0, 2, 0); + BtlController_EmitLinkStandbyMsg(0, 2, FALSE); MarkBattlerForControllerExec(gActiveBattler); } } @@ -5881,7 +6036,7 @@ static void Cmd_switchineffects(void) if (gBattlescriptCurrInstr[1] == 5) { - u32 hitmarkerFaintBits = gHitMarker >> 0x1C; + u32 hitmarkerFaintBits = gHitMarker >> 28; gBattlerFainted++; while (1) @@ -5933,10 +6088,10 @@ static void Cmd_playfaintcry(void) gBattlescriptCurrInstr += 2; } -static void atk57(void) +static void Cmd_endlinkbattle(void) { gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - BtlController_EmitCmd55(0, gBattleOutcome); + BtlController_EmitEndLinkBattle(0, gBattleOutcome); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 1; @@ -6025,7 +6180,7 @@ static void Cmd_yesnoboxlearnmove(void) if (gBattleCommunication[1] == 0) { HandleBattleWindow(0x18, 0x8, 0x1D, 0xD, WINDOW_CLEAR); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattleScripting.learnMoveState++; } else @@ -6246,7 +6401,7 @@ static void Cmd_getmoneyreward(void) gBattlescriptCurrInstr++; } -static void atk5E(void) +static void Cmd_unknown_5E(void) { gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); @@ -6684,7 +6839,7 @@ static void PutLevelAndGenderOnLvlUpBox(void) printerTemplate.unk = 0; printerTemplate.fgColor = TEXT_COLOR_WHITE; printerTemplate.bgColor = TEXT_COLOR_TRANSPARENT; - printerTemplate.shadowColor = TEXT_COLOR_DARK_GREY; + printerTemplate.shadowColor = TEXT_COLOR_DARK_GRAY; AddTextPrinter(&printerTemplate, 0xFF, NULL); @@ -6695,7 +6850,7 @@ static void PutLevelAndGenderOnLvlUpBox(void) var = (u32)(txtPtr); txtPtr = ConvertIntToDecimalStringN(txtPtr, monLevel, STR_CONV_MODE_LEFT_ALIGN, 3); var = (u32)(txtPtr) - var; - txtPtr = StringFill(txtPtr, CHAR_UNK_SPACER, 4 - var); + txtPtr = StringFill(txtPtr, CHAR_GENDERLESS, 4 - var); if (monGender != MON_GENDERLESS) { @@ -6766,9 +6921,9 @@ static void PutMonIconOnLvlUpBox(void) static void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite) { - sprite->pos2.x = sprite->sSavedLvlUpBoxXPosition - gBattle_BG2_X; + sprite->x2 = sprite->sSavedLvlUpBoxXPosition - gBattle_BG2_X; - if (sprite->pos2.x != 0) + if (sprite->x2 != 0) { sprite->sDestroy = TRUE; } @@ -6899,7 +7054,7 @@ static void Cmd_hpthresholds2(void) static void Cmd_useitemonopponent(void) { gBattlerInMenuId = gBattlerAttacker; - PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1); + PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, TRUE); gBattlescriptCurrInstr += 1; } @@ -7318,7 +7473,7 @@ static void Cmd_various(void) case VARIOUS_SET_MAGIC_COAT_TARGET: gBattlerAttacker = gBattlerTarget; side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; - if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) + if (IsAffectedByFollowMe(gBattlerAttacker, side)) gBattlerTarget = gSideTimers[side].followmeTarget; else gBattlerTarget = gActiveBattler; @@ -7331,9 +7486,9 @@ static void Cmd_various(void) break; case VARIOUS_GET_BATTLER_FAINTED: if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) - gBattleCommunication[0] = 1; + gBattleCommunication[0] = TRUE; else - gBattleCommunication[0] = 0; + gBattleCommunication[0] = FALSE; break; case VARIOUS_RESET_INTIMIDATE_TRACE_BITS: gSpecialStatuses[gActiveBattler].intimidatedMon = 0; @@ -7367,7 +7522,8 @@ static void Cmd_various(void) } break; case VARIOUS_PALACE_FLAVOR_TEXT: - gBattleCommunication[0] = 0; + // Try and print end-of-turn Battle Palace flavor text (e.g. "A glint appears in mon's eyes") + gBattleCommunication[0] = FALSE; // whether or not msg should be printed gBattleScripting.battler = gActiveBattler = gBattleCommunication[1]; if (!(gBattleStruct->palaceFlags & gBitTable[gActiveBattler]) && gBattleMons[gActiveBattler].maxHP / 2 >= gBattleMons[gActiveBattler].hp @@ -7375,7 +7531,7 @@ static void Cmd_various(void) && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)) { gBattleStruct->palaceFlags |= gBitTable[gActiveBattler]; - gBattleCommunication[0] = 1; + gBattleCommunication[0] = TRUE; gBattleCommunication[MULTISTRING_CHOOSER] = sBattlePalaceNatureToFlavorTextId[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)]; } break; @@ -7411,7 +7567,7 @@ static void Cmd_various(void) gDisableStructs[1].truantSwitchInHack = 1; break; case VARIOUS_EMIT_YESNOBOX: - BtlController_EmitUnknownYesNoBox(0); + BtlController_EmitYesNoBox(0); MarkBattlerForControllerExec(gActiveBattler); break; case 14: @@ -7422,10 +7578,10 @@ static void Cmd_various(void) break; case VARIOUS_ARENA_JUDGMENT_STRING: BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[gBattlescriptCurrInstr[1]]); - BattlePutTextOnWindow(gDisplayedStringBattle, 0x16); + BattlePutTextOnWindow(gDisplayedStringBattle, 22); break; case VARIOUS_ARENA_WAIT_STRING: - if (IsTextPrinterActive(0x16)) + if (IsTextPrinterActive(22)) return; break; case VARIOUS_WAIT_CRY: @@ -7523,17 +7679,40 @@ static void Cmd_various(void) BtlController_EmitSetMonData(0, REQUEST_PP_DATA_BATTLE, 0, 5, data); MarkBattlerForControllerExec(gActiveBattler); break; - case VARIOUS_TRY_ACTIVATE_MOXIE: - if (GetBattlerAbility(gActiveBattler) == ABILITY_MOXIE - && HasAttackerFaintedTarget() - && !NoAliveMonsForEitherParty() - && gBattleMons[gBattlerAttacker].statStages[STAT_ATK] != 12) + case VARIOUS_TRY_ACTIVATE_MOXIE: // and chilling neigh + as one ice rider + if ((GetBattlerAbility(gActiveBattler) == ABILITY_MOXIE + || GetBattlerAbility(gActiveBattler) == ABILITY_CHILLING_NEIGH + || GetBattlerAbility(gActiveBattler) == ABILITY_AS_ONE_ICE_RIDER) + && HasAttackerFaintedTarget() + && !NoAliveMonsForEitherParty() + && gBattleMons[gBattlerAttacker].statStages[STAT_ATK] != 12) { gBattleMons[gBattlerAttacker].statStages[STAT_ATK]++; SET_STATCHANGER(STAT_ATK, 1, FALSE); PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK); BattleScriptPush(gBattlescriptCurrInstr + 3); - gBattlescriptCurrInstr = BattleScript_AttackerAbilityStatRaise; + gLastUsedAbility = GetBattlerAbility(gActiveBattler); + if (GetBattlerAbility(gActiveBattler) == ABILITY_AS_ONE_ICE_RIDER) + gBattleScripting.abilityPopupOverwrite = gLastUsedAbility = ABILITY_CHILLING_NEIGH; + gBattlescriptCurrInstr = BattleScript_RaiseStatOnFaintingTarget; + return; + } + break; + case VARIOUS_TRY_ACTIVATE_GRIM_NEIGH: // and as one shadow rider + if ((GetBattlerAbility(gActiveBattler) == ABILITY_GRIM_NEIGH + || GetBattlerAbility(gActiveBattler) == ABILITY_AS_ONE_SHADOW_RIDER) + && HasAttackerFaintedTarget() + && !NoAliveMonsForEitherParty() + && gBattleMons[gBattlerAttacker].statStages[STAT_SPATK] != 12) + { + gBattleMons[gBattlerAttacker].statStages[STAT_SPATK]++; + SET_STATCHANGER(STAT_SPATK, 1, FALSE); + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK); + BattleScriptPush(gBattlescriptCurrInstr + 3); + gLastUsedAbility = GetBattlerAbility(gActiveBattler); + if (GetBattlerAbility(gActiveBattler) == ABILITY_AS_ONE_SHADOW_RIDER) + gBattleScripting.abilityPopupOverwrite = gLastUsedAbility = ABILITY_GRIM_NEIGH; + gBattlescriptCurrInstr = BattleScript_RaiseStatOnFaintingTarget; return; } break; @@ -7642,51 +7821,25 @@ static void Cmd_various(void) gBattlescriptCurrInstr += 7; return; case VARIOUS_SET_SIMPLE_BEAM: - switch (gBattleMons[gActiveBattler].ability) + if (IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gActiveBattler].ability)) { - case ABILITY_SIMPLE: - case ABILITY_TRUANT: - case ABILITY_STANCE_CHANGE: - case ABILITY_DISGUISE: - case ABILITY_MULTITYPE: gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); - break; - default: + } + else + { gBattleMons[gActiveBattler].ability = ABILITY_SIMPLE; gBattlescriptCurrInstr += 7; break; } return; case VARIOUS_TRY_ENTRAINMENT: - switch (gBattleMons[gBattlerTarget].ability) + if (IsEntrainmentBannedAbilityAttacker(gBattleMons[gBattlerAttacker].ability) + || IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability)) { - case ABILITY_TRUANT: - case ABILITY_MULTITYPE: - case ABILITY_STANCE_CHANGE: - case ABILITY_SCHOOLING: - case ABILITY_COMATOSE: - case ABILITY_SHIELDS_DOWN: - case ABILITY_DISGUISE: - case ABILITY_RKS_SYSTEM: - case ABILITY_BATTLE_BOND: - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); - return; - } - switch (gBattleMons[gBattlerAttacker].ability) - { - case ABILITY_TRACE: - case ABILITY_FORECAST: - case ABILITY_FLOWER_GIFT: - case ABILITY_ZEN_MODE: - case ABILITY_ILLUSION: - case ABILITY_IMPOSTER: - case ABILITY_POWER_OF_ALCHEMY: - case ABILITY_RECEIVER: - case ABILITY_DISGUISE: - case ABILITY_POWER_CONSTRUCT: gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); return; } + if (gBattleMons[gBattlerTarget].ability == gBattleMons[gBattlerAttacker].ability) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); @@ -8315,7 +8468,7 @@ static void Cmd_various(void) SET_STATCHANGER(i + 1, abs(gTotemBoosts[gActiveBattler].statChanges[i]), TRUE); else SET_STATCHANGER(i + 1, gTotemBoosts[gActiveBattler].statChanges[i], FALSE); - + gTotemBoosts[gActiveBattler].stats &= ~(1 << i); gBattleScripting.battler = gActiveBattler; gBattlerTarget = gActiveBattler; @@ -8334,6 +8487,10 @@ static void Cmd_various(void) gBattlescriptCurrInstr += 7; // exit if loop failed (failsafe) } return; + case VARIOUS_MOVEEND_ITEM_EFFECTS: + if (ItemBattleEffects(1, gActiveBattler, FALSE)) + return; + break; } gBattlescriptCurrInstr += 3; @@ -8357,27 +8514,27 @@ static void Cmd_setprotectlike(void) if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE) { gProtectStructs[gBattlerAttacker].endured = 1; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_BRACED_ITSELF; } else if (gCurrentMove == MOVE_DETECT || gCurrentMove == MOVE_PROTECT) { gProtectStructs[gBattlerAttacker].protected = 1; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_ITSELF; } else if (gCurrentMove == MOVE_SPIKY_SHIELD) { gProtectStructs[gBattlerAttacker].spikyShielded = 1; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_ITSELF; } else if (gCurrentMove == MOVE_KINGS_SHIELD) { gProtectStructs[gBattlerAttacker].kingsShielded = 1; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_ITSELF; } else if (gCurrentMove == MOVE_BANEFUL_BUNKER) { gProtectStructs[gBattlerAttacker].banefulBunkered = 1; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_ITSELF; } gDisableStructs[gBattlerAttacker].protectUses++; @@ -8389,28 +8546,28 @@ static void Cmd_setprotectlike(void) if (gCurrentMove == MOVE_WIDE_GUARD && !(gSideStatuses[side] & SIDE_STATUS_WIDE_GUARD)) { gSideStatuses[side] |= SIDE_STATUS_WIDE_GUARD; - gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_TEAM; gDisableStructs[gBattlerAttacker].protectUses++; fail = FALSE; } else if (gCurrentMove == MOVE_QUICK_GUARD && !(gSideStatuses[side] & SIDE_STATUS_QUICK_GUARD)) { gSideStatuses[side] |= SIDE_STATUS_QUICK_GUARD; - gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_TEAM; gDisableStructs[gBattlerAttacker].protectUses++; fail = FALSE; } else if (gCurrentMove == MOVE_CRAFTY_SHIELD && !(gSideStatuses[side] & SIDE_STATUS_CRAFTY_SHIELD)) { gSideStatuses[side] |= SIDE_STATUS_CRAFTY_SHIELD; - gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_TEAM; gDisableStructs[gBattlerAttacker].protectUses++; fail = FALSE; } else if (gCurrentMove == MOVE_MAT_BLOCK && !(gSideStatuses[side] & SIDE_STATUS_MAT_BLOCK)) { gSideStatuses[side] |= SIDE_STATUS_MAT_BLOCK; - gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_TEAM; fail = FALSE; } } @@ -8419,7 +8576,7 @@ static void Cmd_setprotectlike(void) if (fail) { gDisableStructs[gBattlerAttacker].protectUses = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECT_FAILED; gMoveResultFlags |= MOVE_RESULT_MISSED; } @@ -8551,11 +8708,11 @@ static void Cmd_setrain(void) if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_RAIN, FALSE)) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_RAIN; } gBattlescriptCurrInstr++; } @@ -8565,7 +8722,7 @@ static void Cmd_setreflect(void) if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_REFLECT) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED; } else { @@ -8577,9 +8734,9 @@ static void Cmd_setreflect(void) gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].reflectBattlerId = gBattlerAttacker; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_REFLECT_DOUBLE; else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_REFLECT_SINGLE; } gBattlescriptCurrInstr++; } @@ -8589,18 +8746,18 @@ static void Cmd_setseeded(void) if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_MISS; } else if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_GRASS)) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_FAIL; } else { gStatuses3[gBattlerTarget] |= gBattlerAttacker; gStatuses3[gBattlerTarget] |= STATUS3_LEECHSEED; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_SET; } gBattlescriptCurrInstr++; @@ -8663,11 +8820,11 @@ static void Cmd_trysetrest(void) else { if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS1_SLEEP))) - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_REST_STATUSED; else - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_REST; - gBattleMons[gBattlerTarget].status1 = 3; + gBattleMons[gBattlerTarget].status1 = STATUS1_SLEEP_TURN(3); BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; @@ -8711,9 +8868,9 @@ bool8 UproarWakeUpCheck(u8 battlerId) if (gBattlerTarget == 0xFF) gBattlerTarget = i; else if (gBattlerTarget == i) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_SLEEP_UPROAR; else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_KEPT_AWAKE; break; } @@ -8736,7 +8893,7 @@ static void Cmd_jumpifcantmakeasleep(void) else if (ability == ABILITY_INSOMNIA || ability == ABILITY_VITAL_SPIRIT) { gLastUsedAbility = ability; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAYED_AWAKE_USING; gBattlescriptCurrInstr = jumpPtr; RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } @@ -8754,7 +8911,7 @@ static void Cmd_stockpile(void) if (gDisableStructs[gBattlerAttacker].stockpileCounter >= 3) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_STOCKPILE; } else { @@ -8762,7 +8919,7 @@ static void Cmd_stockpile(void) gDisableStructs[gBattlerAttacker].stockpileBeforeDef = gBattleMons[gBattlerAttacker].statStages[STAT_DEF]; gDisableStructs[gBattlerAttacker].stockpileBeforeSpDef = gBattleMons[gBattlerAttacker].statStages[STAT_SPDEF]; PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattlerAttacker].stockpileCounter); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STOCKPILED; } break; case 1: // Save def/sp def stats. @@ -8786,7 +8943,7 @@ static void Cmd_stockpiletobasedamage(void) } else { - if (gBattleCommunication[6] != 1) + if (gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED) gBattleScripting.animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; gDisableStructs[gBattlerAttacker].stockpileCounter = 0; @@ -8804,7 +8961,7 @@ static void Cmd_stockpiletohpheal(void) if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jumpPtr; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWALLOW_FAILED; } else { @@ -8813,7 +8970,7 @@ static void Cmd_stockpiletohpheal(void) gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr = jumpPtr; gBattlerTarget = gBattlerAttacker; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWALLOW_FULL_HP; } else { @@ -8835,15 +8992,16 @@ static void Cmd_stockpiletohpheal(void) } } +// Sign change for drained HP handled in GetDrainedBigRootHp static void Cmd_setdrainedhp(void) { if (gBattleMoves[gCurrentMove].argument != 0) - gBattleMoveDamage = -(gHpDealt * gBattleMoves[gCurrentMove].argument / 100); + gBattleMoveDamage = (gHpDealt * gBattleMoves[gCurrentMove].argument / 100); else - gBattleMoveDamage = -(gHpDealt / 2); + gBattleMoveDamage = (gHpDealt / 2); if (gBattleMoveDamage == 0) - gBattleMoveDamage = -1; + gBattleMoveDamage = 1; gBattlescriptCurrInstr++; } @@ -9019,9 +9177,9 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gBattleTextBuff2[index] = B_BUFF_EOS; if (gBattleMons[gActiveBattler].statStages[statId] == MIN_STAT_STAGE) - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAT_WONT_DECREASE; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); // B_MSG_ATTACKER_STAT_FELL or B_MSG_DEFENDER_STAT_FELL } } else // stat increase @@ -9056,9 +9214,9 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gBattleTextBuff2[index] = B_BUFF_EOS; if (gBattleMons[gActiveBattler].statStages[statId] == MAX_STAT_STAGE) - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAT_WONT_INCREASE; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); // B_MSG_ATTACKER_STAT_ROSE or B_MSG_DEFENDER_STAT_ROSE } gBattleMons[gActiveBattler].statStages[statId] += statValue; @@ -9067,10 +9225,10 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr if (gBattleMons[gActiveBattler].statStages[statId] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[statId] = MAX_STAT_STAGE; - if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_BUFF_ALLOW_PTR) + if (gBattleCommunication[MULTISTRING_CHOOSER] == B_MSG_STAT_WONT_INCREASE && flags & STAT_BUFF_ALLOW_PTR) gMoveResultFlags |= MOVE_RESULT_MISSED; - if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & STAT_BUFF_ALLOW_PTR)) + if (gBattleCommunication[MULTISTRING_CHOOSER] == B_MSG_STAT_WONT_INCREASE && !(flags & STAT_BUFF_ALLOW_PTR)) return STAT_CHANGE_DIDNT_WORK; return STAT_CHANGE_WORKED; @@ -9088,17 +9246,30 @@ static void Cmd_statbuffchange(void) gBattlescriptCurrInstr = jumpPtr; } +bool32 TryResetBattlerStatChanges(u8 battler) +{ + u32 j; + bool32 ret = FALSE; + + gDisableStructs[battler].stockpileDef = 0; + gDisableStructs[battler].stockpileSpDef = 0; + for (j = 0; j < NUM_BATTLE_STATS; j++) + { + if (gBattleMons[battler].statStages[j] != DEFAULT_STAT_STAGE) + ret = TRUE; // returns TRUE if any stat was reset + + gBattleMons[battler].statStages[j] = DEFAULT_STAT_STAGE; + } + + return ret; +} + static void Cmd_normalisebuffs(void) // haze { s32 i, j; for (i = 0; i < gBattlersCount; i++) - { - gDisableStructs[i].stockpileDef = 0; - gDisableStructs[i].stockpileSpDef = 0; - for (j = 0; j < NUM_BATTLE_STATS; j++) - gBattleMons[i].statStages[j] = DEFAULT_STAT_STAGE; - } + TryResetBattlerStatChanges(i); gBattlescriptCurrInstr++; } @@ -9213,7 +9384,7 @@ static void Cmd_forcerandomswitch(void) battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; } else if ((gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_LINK) - || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_x2000000) + || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) || (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) { if ((gBattlerTarget & BIT_FLANK) != 0) @@ -9232,7 +9403,7 @@ static void Cmd_forcerandomswitch(void) battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; } else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) - || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000)) + || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)) { if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gBattlerTarget)) == 1) { @@ -9332,8 +9503,8 @@ static void Cmd_forcerandomswitch(void) if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) - || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) - || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI)) + || (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + || (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)) { SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0); SwitchPartyOrderLinkMulti(gBattlerTarget ^ BIT_FLANK, i, 1); @@ -9395,7 +9566,7 @@ static void Cmd_tryconversiontypechange(void) // randomly changes user's type to do { - while ((moveChecked = Random() & 3) >= validMoves); + while ((moveChecked = Random() & (MAX_MON_MOVES - 1)) >= validMoves); moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[moveChecked]].type; @@ -9418,7 +9589,7 @@ static void Cmd_tryconversiontypechange(void) // randomly changes user's type to static void Cmd_givepaydaymoney(void) { - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && gPaydayMoney != 0) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) && gPaydayMoney != 0) { u32 bonusMoney = gPaydayMoney * gBattleStruct->moneyMultiplier; AddMoney(&gSaveBlock1Ptr->money, bonusMoney); @@ -9439,7 +9610,7 @@ static void Cmd_setlightscreen(void) if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_LIGHTSCREEN) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED; } else { @@ -9451,9 +9622,9 @@ static void Cmd_setlightscreen(void) gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].lightscreenBattlerId = gBattlerAttacker; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) - gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_LIGHTSCREEN_DOUBLE; else - gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_LIGHTSCREEN_SINGLE; } gBattlescriptCurrInstr++; @@ -9525,9 +9696,9 @@ static void Cmd_tryKO(void) { gMoveResultFlags |= MOVE_RESULT_MISSED; if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_KO_MISS; else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_KO_UNAFFECTED; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } @@ -9547,11 +9718,11 @@ static void Cmd_setsandstorm(void) if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_SANDSTORM, FALSE)) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SANDSTORM; } gBattlescriptCurrInstr++; } @@ -9634,7 +9805,7 @@ static void Cmd_tryinfatuating(void) if (GetBattlerAbility(gBattlerTarget) == ABILITY_OBLIVIOUS) { - gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction; + gBattlescriptCurrInstr = BattleScript_NotAffectedAbilityPopUp; gLastUsedAbility = ABILITY_OBLIVIOUS; RecordAbilityBattle(gBattlerTarget, ABILITY_OBLIVIOUS); } @@ -9693,14 +9864,14 @@ static void Cmd_setmist(void) if (gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer) { gMoveResultFlags |= MOVE_RESULT_FAILED; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MIST_FAILED; } else { gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer = 5; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistBattlerId = gBattlerAttacker; gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_MIST; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_MIST; } gBattlescriptCurrInstr++; } @@ -9710,12 +9881,12 @@ static void Cmd_setfocusenergy(void) if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) { gMoveResultFlags |= MOVE_RESULT_FAILED; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FOCUS_ENERGY_FAILED; } else { gBattleMons[gBattlerAttacker].status2 |= STATUS2_FOCUS_ENERGY; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_GETTING_PUMPED; } gBattlescriptCurrInstr++; } @@ -9729,7 +9900,7 @@ static void Cmd_transformdataexecution(void) || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) { gMoveResultFlags |= MOVE_RESULT_FAILED; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_TRANSFORM_FAILED; } else { @@ -9762,7 +9933,7 @@ static void Cmd_transformdataexecution(void) gActiveBattler = gBattlerAttacker; BtlController_EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION); MarkBattlerForControllerExec(gActiveBattler); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_TRANSFORMED; } } @@ -9775,7 +9946,7 @@ static void Cmd_setsubstitute(void) if (gBattleMons[gBattlerAttacker].hp <= hp) { gBattleMoveDamage = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SUBSTITUTE_FAILED; } else { @@ -9786,7 +9957,7 @@ static void Cmd_setsubstitute(void) gBattleMons[gBattlerAttacker].status2 |= STATUS2_SUBSTITUTE; gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED); gDisableStructs[gBattlerAttacker].substituteHP = gBattleMoveDamage; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_SUBSTITUTE; gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; } @@ -9878,7 +10049,7 @@ static void Cmd_counterdamagecalculator(void) { gBattleMoveDamage = gProtectStructs[gBattlerAttacker].physicalDmg * 2; - if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) + if (IsAffectedByFollowMe(gBattlerAttacker, sideTarget)) gBattlerTarget = gSideTimers[sideTarget].followmeTarget; else gBattlerTarget = gProtectStructs[gBattlerAttacker].physicalBattlerId; @@ -9897,11 +10068,13 @@ static void Cmd_mirrorcoatdamagecalculator(void) // a copy of atkA1 with the phy u8 sideAttacker = GetBattlerSide(gBattlerAttacker); u8 sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].specialBattlerId); - if (gProtectStructs[gBattlerAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattlerAttacker].specialBattlerId].hp) + if (gProtectStructs[gBattlerAttacker].specialDmg + && sideAttacker != sideTarget + && gBattleMons[gProtectStructs[gBattlerAttacker].specialBattlerId].hp) { gBattleMoveDamage = gProtectStructs[gBattlerAttacker].specialDmg * 2; - if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) + if (IsAffectedByFollowMe(gBattlerAttacker, sideTarget)) gBattlerTarget = gSideTimers[sideTarget].followmeTarget; else gBattlerTarget = gProtectStructs[gBattlerAttacker].specialBattlerId; @@ -10166,7 +10339,7 @@ static void Cmd_trychoosesleeptalkmove(void) { do { - movePosition = Random() & 3; + movePosition = Random() & (MAX_MON_MOVES - 1); } while ((gBitTable[movePosition] & unusableMovesBits)); gCalledMove = gBattleMons[gBattlerAttacker].moves[movePosition]; @@ -10209,7 +10382,7 @@ static void Cmd_settailwind(void) { gSideStatuses[side] |= SIDE_STATUS_TAILWIND; gSideTimers[side].tailwindBattlerId = gBattlerAttacker; - gSideTimers[side].tailwindTimer = 3; + gSideTimers[side].tailwindTimer = (B_TAILWIND_TIMER >= GEN_5) ? 4 : 3; gBattlescriptCurrInstr += 5; } else @@ -10288,7 +10461,7 @@ static void Cmd_healpartystatus(void) struct Pokemon *party; s32 i; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_BELL; if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) party = gPlayerParty; @@ -10303,7 +10476,7 @@ static void Cmd_healpartystatus(void) else { RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability); - gBattleCommunication[MULTISTRING_CHOOSER] |= 1; + gBattleCommunication[MULTISTRING_CHOOSER] |= B_MSG_BELL_SOUNDPROOF_ATTACKER; } gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); @@ -10319,10 +10492,12 @@ static void Cmd_healpartystatus(void) else { RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); - gBattleCommunication[MULTISTRING_CHOOSER] |= 2; + gBattleCommunication[MULTISTRING_CHOOSER] |= B_MSG_BELL_SOUNDPROOF_PARTNER; } } + // Because the above MULTISTRING_CHOOSER are ORd, if both are set then it will be B_MSG_BELL_BOTH_SOUNDPROOF + for (i = 0; i < PARTY_SIZE; i++) { u16 species = GetMonData(&party[i], MON_DATA_SPECIES2); @@ -10348,7 +10523,7 @@ static void Cmd_healpartystatus(void) } else // Aromatherapy { - gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOOTHING_AROMA; toHeal = 0x3F; gBattleMons[gBattlerAttacker].status1 = 0; @@ -10550,14 +10725,14 @@ static void Cmd_setsafeguard(void) if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_SAFEGUARD) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED; } else { gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_SAFEGUARD; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardTimer = 5; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardBattlerId = gBattlerAttacker; - gBattleCommunication[MULTISTRING_CHOOSER] = 5; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_SAFEGUARD; } gBattlescriptCurrInstr++; @@ -10664,11 +10839,11 @@ static void Cmd_setsunny(void) if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_SUN, FALSE)) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SUNLIGHT; } gBattlescriptCurrInstr++; @@ -10844,9 +11019,9 @@ static void Cmd_trysetfutureattack(void) gWishFutureKnock.futureSightCounter[gBattlerTarget] = 3; if (gCurrentMove == MOVE_DOOM_DESIRE) - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOOM_DESIRE; else - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FUTURE_SIGHT; gBattlescriptCurrInstr += 5; } @@ -10941,11 +11116,11 @@ static void Cmd_sethail(void) if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_HAIL, FALSE)) { gMoveResultFlags |= MOVE_RESULT_MISSED; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 5; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_HAIL; } gBattlescriptCurrInstr++; @@ -10953,9 +11128,16 @@ static void Cmd_sethail(void) static void Cmd_jumpifattackandspecialattackcannotfall(void) // memento { + #if B_MEMENTO_FAIL == GEN_3 if (gBattleMons[gBattlerTarget].statStages[STAT_ATK] == MIN_STAT_STAGE && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] == MIN_STAT_STAGE - && gBattleCommunication[6] != 1) + && gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED) + #else + if (gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED + || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE + || IsBattlerProtected(gBattlerTarget, gCurrentMove) + || DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove)) + #endif { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } @@ -10973,6 +11155,7 @@ static void Cmd_setforcedtarget(void) // follow me { gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTimer = 1; gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTarget = gBattlerAttacker; + gSideTimers[GetBattlerSide(gBattlerAttacker)].followmePowder = TestMoveFlags(gCurrentMove, FLAG_POWDER); gBattlescriptCurrInstr++; } @@ -10993,6 +11176,12 @@ static void Cmd_callterrainattack(void) // nature power gBattlescriptCurrInstr++; } +u16 GetNaturePowerMove(void) +{ + //TODO terrain + return sNaturePowerMoves[gBattleTerrain]; +} + static void Cmd_cureifburnedparalysedorpoisoned(void) // refresh { if (gBattleMons[gBattlerAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) @@ -11032,7 +11221,13 @@ static void Cmd_jumpifnodamage(void) static void Cmd_settaunt(void) { - if (gDisableStructs[gBattlerTarget].tauntTimer == 0) + if (GetBattlerAbility(gBattlerTarget) == ABILITY_OBLIVIOUS) + { + gBattlescriptCurrInstr = BattleScript_NotAffectedAbilityPopUp; + gLastUsedAbility = ABILITY_OBLIVIOUS; + RecordAbilityBattle(gBattlerTarget, ABILITY_OBLIVIOUS); + } + else if (gDisableStructs[gBattlerTarget].tauntTimer == 0) { u8 turns = 4; if (GetBattlerTurnOrderNum(gBattlerTarget) > GetBattlerTurnOrderNum(gBattlerAttacker)) @@ -11074,7 +11269,11 @@ static void Cmd_tryswapitems(void) // trick | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SECRET_BASE - | BATTLE_TYPE_x2000000)))) + | BATTLE_TYPE_RECORDED_LINK + #if B_TRAINERS_KNOCK_OFF_ITEMS + | BATTLE_TYPE_TRAINER + #endif + )))) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } @@ -11088,7 +11287,7 @@ static void Cmd_tryswapitems(void) // trick | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SECRET_BASE - | BATTLE_TYPE_x2000000)) + | BATTLE_TYPE_RECORDED_LINK)) && (gWishFutureKnock.knockedOffMons[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]] || gWishFutureKnock.knockedOffMons[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]])) { @@ -11122,6 +11321,9 @@ static void Cmd_tryswapitems(void) // trick gBattleMons[gBattlerAttacker].item = 0; gBattleMons[gBattlerTarget].item = oldItemAtk; + + RecordItemEffectBattle(gBattlerAttacker, 0); + RecordItemEffectBattle(gBattlerTarget, ItemId_GetHoldEffect(oldItemAtk)); gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk); @@ -11138,20 +11340,29 @@ static void Cmd_tryswapitems(void) // trick PREPARE_ITEM_BUFFER(gBattleTextBuff1, *newItemAtk) PREPARE_ITEM_BUFFER(gBattleTextBuff2, oldItemAtk) + + if (!(sideAttacker == sideTarget && IsPartnerMonFromSameTrainer(gBattlerAttacker))) + { + // if targeting your own side and you aren't in a multi battle, don't save items as stolen + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) + TrySaveExchangedItem(gBattlerAttacker, oldItemAtk); + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) + TrySaveExchangedItem(gBattlerTarget, *newItemAtk); + } if (oldItemAtk != 0 && *newItemAtk != 0) - gBattleCommunication[MULTISTRING_CHOOSER] = 2; // attacker's item -> <- target's item + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ITEM_SWAP_BOTH; // attacker's item -> <- target's item else if (oldItemAtk == 0 && *newItemAtk != 0) { if (GetBattlerAbility(gBattlerAttacker) == ABILITY_UNBURDEN && gBattleResources->flags->flags[gBattlerAttacker] & RESOURCE_FLAG_UNBURDEN) gBattleResources->flags->flags[gBattlerAttacker] &= ~(RESOURCE_FLAG_UNBURDEN); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; // nothing -> <- target's item + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ITEM_SWAP_TAKEN; // nothing -> <- target's item } else { CheckSetUnburden(gBattlerAttacker); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; // attacker's item -> <- nothing + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ITEM_SWAP_GIVEN; // attacker's item -> <- nothing } } } @@ -11159,18 +11370,20 @@ static void Cmd_tryswapitems(void) // trick static void Cmd_trycopyability(void) // role play { - switch (gBattleMons[gBattlerTarget].ability) + u16 defAbility = gBattleMons[gBattlerTarget].ability; + + if (gBattleMons[gBattlerAttacker].ability == defAbility + || defAbility == ABILITY_NONE + || IsRolePlayBannedAbilityAtk(gBattleMons[gBattlerAttacker].ability) + || IsRolePlayBannedAbility(defAbility)) { - case ABILITY_NONE: - case ABILITY_WONDER_GUARD: - case ABILITY_DISGUISE: - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); - break; - default: - gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability; - gLastUsedAbility = gBattleMons[gBattlerTarget].ability; - gBattlescriptCurrInstr += 5; - break; + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + } + else + { + gBattleMons[gBattlerAttacker].ability = defAbility; + gLastUsedAbility = defAbility; + gBattlescriptCurrInstr += 5; } } @@ -11224,23 +11437,14 @@ static void Cmd_settoxicspikes(void) static void Cmd_setgastroacid(void) { - switch (gBattleMons[gBattlerTarget].ability) + if (IsGastroAcidBannedAbility(gBattleMons[gBattlerTarget].ability)) { - case ABILITY_MULTITYPE: - case ABILITY_STANCE_CHANGE: - case ABILITY_SCHOOLING: - case ABILITY_COMATOSE: - case ABILITY_SHIELDS_DOWN: - case ABILITY_DISGUISE: - case ABILITY_RKS_SYSTEM: - case ABILITY_BATTLE_BOND: - case ABILITY_POWER_CONSTRUCT: gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); - break; - default: + } + else + { gStatuses3[gBattlerTarget] |= STATUS3_GASTRO_ACID; gBattlescriptCurrInstr += 5; - break; } } @@ -11309,20 +11513,9 @@ static void Cmd_setroom(void) static void Cmd_tryswapabilities(void) // skill swap { - switch (gBattleMons[gBattlerAttacker].ability) + if (IsSkillSwapBannedAbility(gBattleMons[gBattlerAttacker].ability) + || IsSkillSwapBannedAbility(gBattleMons[gBattlerTarget].ability)) { - case ABILITY_NONE: - case ABILITY_WONDER_GUARD: - case ABILITY_DISGUISE: - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); - return; - } - - switch (gBattleMons[gBattlerTarget].ability) - { - case ABILITY_NONE: - case ABILITY_WONDER_GUARD: - case ABILITY_DISGUISE: gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); return; } @@ -11554,7 +11747,7 @@ static void Cmd_getsecretpowereffect(void) switch (gBattleTerrain) { case BATTLE_TERRAIN_GRASS: - gBattleScripting.moveEffect = MOVE_EFFECT_POISON; + gBattleScripting.moveEffect = MOVE_EFFECT_SLEEP; break; case BATTLE_TERRAIN_LONG_GRASS: gBattleScripting.moveEffect = MOVE_EFFECT_SLEEP; @@ -11563,16 +11756,16 @@ static void Cmd_getsecretpowereffect(void) gBattleScripting.moveEffect = MOVE_EFFECT_ACC_MINUS_1; break; case BATTLE_TERRAIN_UNDERWATER: - gBattleScripting.moveEffect = MOVE_EFFECT_DEF_MINUS_1; + gBattleScripting.moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; case BATTLE_TERRAIN_WATER: gBattleScripting.moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; case BATTLE_TERRAIN_POND: - gBattleScripting.moveEffect = MOVE_EFFECT_SPD_MINUS_1; + gBattleScripting.moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; case BATTLE_TERRAIN_MOUNTAIN: - gBattleScripting.moveEffect = MOVE_EFFECT_CONFUSION; + gBattleScripting.moveEffect = MOVE_EFFECT_ACC_MINUS_1; break; case BATTLE_TERRAIN_CAVE: gBattleScripting.moveEffect = MOVE_EFFECT_FLINCH; @@ -11724,7 +11917,7 @@ static void Cmd_settypebasedhalvers(void) // water and mud sport { gFieldStatuses |= STATUS_FIELD_MUDSPORT; gFieldTimers.mudSportTimer = 5; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEAKEN_ELECTRIC; worked = TRUE; } } @@ -11734,7 +11927,7 @@ static void Cmd_settypebasedhalvers(void) // water and mud sport { gFieldStatuses |= STATUS_FIELD_WATERSPORT; gFieldTimers.waterSportTimer = 5; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEAKEN_FIRE; worked = TRUE; } } @@ -11762,7 +11955,8 @@ bool32 DoesDisguiseBlockMove(u8 battlerAtk, u8 battlerDef, u32 move) if (GetBattlerAbility(battlerDef) != ABILITY_DISGUISE || gBattleMons[battlerDef].species != SPECIES_MIMIKYU || gBattleMons[battlerDef].status2 & STATUS2_TRANSFORMED - || gBattleMoves[move].power == 0) + || gBattleMoves[move].power == 0 + || gHitMarker & HITMARKER_IGNORE_DISGUISE) return FALSE; else return TRUE; @@ -11799,6 +11993,13 @@ static void Cmd_tryrecycleitem(void) } } +bool32 CanCamouflage(u8 battlerId) +{ + if (IS_BATTLER_OF_TYPE(battlerId, sTerrainToType[gBattleTerrain])) + return FALSE; + return TRUE; +} + static void Cmd_settypetoterrain(void) { if (!IS_BATTLER_OF_TYPE(gBattlerAttacker, sTerrainToType[gBattleTerrain])) @@ -11985,6 +12186,7 @@ static void Cmd_handleballthrow(void) { BtlController_EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); MarkBattlerForControllerExec(gActiveBattler); + UndoFormChange(gBattlerPartyIndexes[gBattlerTarget], GET_BATTLER_SIDE(gBattlerTarget), FALSE); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &gLastUsedItem); @@ -12029,6 +12231,7 @@ static void Cmd_handleballthrow(void) if (IsCriticalCapture()) gBattleSpritesDataPtr->animationData->criticalCaptureSuccess = 1; + UndoFormChange(gBattlerPartyIndexes[gBattlerTarget], GET_BATTLER_SIDE(gBattlerTarget), FALSE); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == PARTY_SIZE) @@ -12058,18 +12261,19 @@ static void Cmd_givecaughtmon(void) { if (!ShouldShowBoxWasFullMessage()) { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SENT_SOMEONES_PC; StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_NICKNAME, gStringVar2); } else { - StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); + StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_NICKNAME, gStringVar2); - StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOMEONES_BOX_FULL; } + // Change to B_MSG_SENT_LANETTES_PC or B_MSG_LANETTES_BOX_FULL if (FlagGet(FLAG_SYS_PC_LANETTE)) gBattleCommunication[MULTISTRING_CHOOSER]++; } @@ -12104,7 +12308,7 @@ static void Cmd_displaydexinfo(void) switch (gBattleCommunication[0]) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattleCommunication[0]++; break; case 1: @@ -12135,7 +12339,7 @@ static void Cmd_displaydexinfo(void) case 4: if (!IsDma3ManagerBusyWithBgCopy()) { - BeginNormalPaletteFade(0xFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_BG, 0, 0x10, 0, RGB_BLACK); ShowBg(0); ShowBg(3); gBattleCommunication[0]++; @@ -12322,11 +12526,36 @@ static void Cmd_trainerslideout(void) gBattlescriptCurrInstr += 2; } +static const u16 sTelekinesisBanList[] = +{ + SPECIES_DIGLETT, + SPECIES_DUGTRIO, + #ifdef POKEMON_EXPANSION + SPECIES_DIGLETT_ALOLAN, + SPECIES_DUGTRIO_ALOLAN, + SPECIES_SANDYGAST, + SPECIES_PALOSSAND, + SPECIES_GENGAR_MEGA, + #endif +}; + +bool32 IsTelekinesisBannedSpecies(u16 species) +{ + u32 i; + + for (i = 0; i < ARRAY_COUNT(sTelekinesisBanList); i++) + { + if (species == sTelekinesisBanList[i]) + return TRUE; + } + return FALSE; +} + static void Cmd_settelekinesis(void) { if (gStatuses3[gBattlerTarget] & (STATUS3_TELEKINESIS | STATUS3_ROOTED | STATUS3_SMACKED_DOWN) || gFieldStatuses & STATUS_FIELD_GRAVITY - || (gBattleMons[gBattlerTarget].species == SPECIES_DIGLETT || gBattleMons[gBattlerTarget].species == SPECIES_DUGTRIO)) + || IsTelekinesisBannedSpecies(gBattleMons[gBattlerTarget].species)) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } @@ -12394,19 +12623,14 @@ static void Cmd_trygetbaddreamstarget(void) static void Cmd_tryworryseed(void) { - switch (gBattleMons[gBattlerTarget].ability) + if (IsWorrySeedBannedAbility(gBattleMons[gBattlerTarget].ability)) { - case ABILITY_INSOMNIA: - case ABILITY_MULTITYPE: - case ABILITY_TRUANT: - case ABILITY_STANCE_CHANGE: - case ABILITY_DISGUISE: gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); - break; - default: + } + else + { gBattleMons[gBattlerTarget].ability = ABILITY_INSOMNIA; gBattlescriptCurrInstr += 5; - break; } } @@ -12421,7 +12645,7 @@ static void Cmd_metalburstdamagecalculator(void) { gBattleMoveDamage = gProtectStructs[gBattlerAttacker].physicalDmg * 150 / 100; - if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) + if (IsAffectedByFollowMe(gBattlerAttacker, sideTarget)) gBattlerTarget = gSideTimers[sideTarget].followmeTarget; else gBattlerTarget = gProtectStructs[gBattlerAttacker].physicalBattlerId; @@ -12434,7 +12658,7 @@ static void Cmd_metalburstdamagecalculator(void) { gBattleMoveDamage = gProtectStructs[gBattlerAttacker].specialDmg * 150 / 100; - if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) + if (IsAffectedByFollowMe(gBattlerAttacker, sideTarget)) gBattlerTarget = gSideTimers[sideTarget].followmeTarget; else gBattlerTarget = gProtectStructs[gBattlerAttacker].specialBattlerId; diff --git a/src/battle_setup.c b/src/battle_setup.c index a2ea9cda50..07ac3396b3 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -624,7 +624,7 @@ static void CB2_EndWildBattle(void) else { SetMainCallback2(CB2_ReturnToField); - gFieldCallback = sub_80AF6F0; + gFieldCallback = FieldCB_ReturnToFieldNoScriptCheckMusic; } } @@ -1215,7 +1215,7 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerObjEventId, const u8 *trainerSc gSelectedObjectEvent = trainerObjEventId; gSpecialVar_LastTalked = gObjectEvents[trainerObjEventId].localId; BattleSetup_ConfigureTrainerBattle(trainerScript + 1); - ScriptContext1_SetupScript(EventScript_271354); + ScriptContext1_SetupScript(EventScript_StartTrainerApproach); ScriptContext2_Enable(); } @@ -1228,7 +1228,7 @@ void ConfigureTwoTrainersBattle(u8 trainerObjEventId, const u8 *trainerScript) void SetUpTwoTrainersBattle(void) { - ScriptContext1_SetupScript(EventScript_271354); + ScriptContext1_SetupScript(EventScript_StartTrainerApproach); ScriptContext2_Enable(); } @@ -1238,10 +1238,12 @@ bool32 GetTrainerFlagFromScriptPointer(const u8 *data) return FlagGet(TRAINER_FLAGS_START + flag); } -void SetUpTrainerMovement(void) +// Set trainer's movement type so they stop and remain facing that direction +// Note: Only for trainers who are spoken to directly +// For trainers who spot the player this is handled by PlayerFaceApproachingTrainer +void SetTrainerFacingDirection(void) { struct ObjectEvent *objectEvent = &gObjectEvents[gSelectedObjectEvent]; - SetTrainerMovementType(objectEvent, GetTrainerFacingDirectionMovementType(objectEvent->facingDirection)); } @@ -1455,7 +1457,7 @@ void ShowTrainerCantBattleSpeech(void) ShowFieldMessage(GetTrainerCantBattleSpeech()); } -void SetUpTrainerEncounterMusic(void) +void PlayTrainerEncounterMusic(void) { u16 trainerId; u16 music; diff --git a/src/battle_tower.c b/src/battle_tower.c index 1b3c7c8332..4771143406 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -36,7 +36,6 @@ #include "constants/event_objects.h" #include "constants/moves.h" #include "constants/easy_chat.h" -#include "constants/tv.h" extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer[]; extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer[]; @@ -775,7 +774,7 @@ struct { { .species = SPECIES_METANG, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .level = 42, .nature = NATURE_BRAVE, .evs = {0, 252, 252, 0, 6, 0}, @@ -783,7 +782,7 @@ struct }, { .species = SPECIES_SKARMORY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .level = 43, .nature = NATURE_IMPISH, .evs = {252, 0, 0, 0, 6, 252}, @@ -791,7 +790,7 @@ struct }, { .species = SPECIES_AGGRON, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .level = 44, .nature = NATURE_ADAMANT, .evs = {0, 252, 0, 0, 252, 6}, @@ -878,12 +877,8 @@ static const u16 sFrontierTrainerIdRangesHard[][2] = {FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_GRETEL}, // 200 - 299 }; -// Trainer IDs? Don't make sense as part of previous array, min/max relationship reversed and never accessed -static const u16 sUnused_085DFA1A[][2] = -{ - {179, 141}, // FRONTIER_TRAINER_ALISON - FRONTIER_TRAINER_KAYDEN - {200, 183}, // FRONTIER_TRAINER_JAXON - FRONTIER_TRAINER_HUNTER -}; +// Unknown, unused data +static const u16 sUnused[] = { 179, 141, 200, 183 }; static const u8 sBattleTowerPartySizes[FRONTIER_MODE_COUNT] = { @@ -1863,7 +1858,7 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId) } else { - fixedIV = 31; + fixedIV = MAX_PER_STAT_IVS; } level = SetFacilityPtrsGetLevel(); @@ -2040,7 +2035,7 @@ void DoSpecialTrainerBattle(void) gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS; break; case FRONTIER_MODE_LINK_MULTIS: - gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_MULTI | BATTLE_TYPE_x800000; + gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_MULTI | BATTLE_TYPE_TOWER_LINK_MULTI; FillFrontierTrainersParties(FRONTIER_MULTI_PARTY_SIZE); break; } @@ -2809,7 +2804,11 @@ static void AwardBattleTowerRibbons(void) { s32 i; u32 partyIndex; +#ifdef BUGFIX + struct RibbonCounter ribbons[MAX_FRONTIER_PARTY_SIZE]; +#else struct RibbonCounter ribbons[3]; // BUG: 4 Pokemon can receive ribbons in a double battle mode. +#endif u8 ribbonType = 0; u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -3405,7 +3404,7 @@ static u8 GetFrontierTrainerFixedIvs(u16 trainerId) else if (trainerId <= FRONTIER_TRAINER_TESS) // 200 - 219 fixedIv = 21; else // 220+ (- 299) - fixedIv = 31; + fixedIv = MAX_PER_STAT_IVS; return fixedIv; } @@ -3631,7 +3630,7 @@ bool32 ValidateBattleTowerRecord(u8 recordId) // unused void TrySetLinkBattleTowerEnemyPartyLevel(void) { - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { s32 i; u8 enemyLevel = SetFacilityPtrsGetLevel(); diff --git a/src/battle_transition.c b/src/battle_transition.c index 74e1548e7d..4d446b3df1 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -991,7 +991,7 @@ static bool8 Transition_Phase1(struct Task *task) static bool8 Transition_WaitForPhase1(struct Task *task) { - if (FindTaskIdByFunc(sPhase1_Tasks[task->tTransitionId]) == 0xFF) + if (FindTaskIdByFunc(sPhase1_Tasks[task->tTransitionId]) == TASK_NONE) { task->tState++; return TRUE; @@ -1012,7 +1012,7 @@ static bool8 Transition_Phase2(struct Task *task) static bool8 Transition_WaitForPhase2(struct Task *task) { task->tTransitionDone = FALSE; - if (FindTaskIdByFunc(sPhase2_Tasks[task->tTransitionId]) == 0xFF) + if (FindTaskIdByFunc(sPhase2_Tasks[task->tTransitionId]) == TASK_NONE) task->tTransitionDone = TRUE; return FALSE; } @@ -1071,7 +1071,7 @@ static bool8 Phase2_Blur_Func2(struct Task *task) { task->tData1 = 4; if (++task->tData2 == 10) - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 0x10, RGB_BLACK); SetGpuReg(REG_OFFSET_MOSAIC, (task->tData2 & 15) * 17); if (task->tData2 > 14) task->tState++; @@ -1098,7 +1098,7 @@ static bool8 Phase2_Swirl_Func1(struct Task *task) { InitTransitionStructVars(); ScanlineEffect_Clear(); - BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 4, 0, 0x10, RGB_BLACK); sub_8149F98(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_14, 0, 2, 0, 160); SetVBlankCallback(VBlankCB_Phase2_Swirl); @@ -1153,7 +1153,7 @@ static bool8 Phase2_Shuffle_Func1(struct Task *task) InitTransitionStructVars(); ScanlineEffect_Clear(); - BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 4, 0, 0x10, RGB_BLACK); memset(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_16, 0x140); SetVBlankCallback(VBlankCB_Phase2_Shuffle); @@ -1250,12 +1250,12 @@ static void sub_814669C(struct Task *task) task->tData2 = 0; task->tData4 = 0; task->tData5 = 0x4000; - sTransitionStructPtr->WININ = 63; + sTransitionStructPtr->WININ = WININ_WIN0_ALL; sTransitionStructPtr->WINOUT = 0; - sTransitionStructPtr->WIN0H = 240; - sTransitionStructPtr->WIN0V = 160; - sTransitionStructPtr->BLDCNT = 0x3F41; - sTransitionStructPtr->BLDALPHA = (task->tData1 << 8) | (task->tData2); + sTransitionStructPtr->WIN0H = DISPLAY_WIDTH; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; + sTransitionStructPtr->BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL; + sTransitionStructPtr->BLDALPHA = BLDALPHA_BLEND(task->tData2, task->tData1); for (i = 0; i < 160; i++) { @@ -1323,6 +1323,12 @@ static bool8 Phase2_BigPokeball_Func1(struct Task *task) return FALSE; } +#define SOME_VRAM_STORE(ptr, posY, posX, toStore) \ +{ \ + u32 index = (posY) * 32 + posX; \ + ptr[index] = toStore; \ +} + static bool8 Phase2_BigPokeball_Func2(struct Task *task) { s16 i, j; @@ -1335,7 +1341,7 @@ static bool8 Phase2_BigPokeball_Func2(struct Task *task) { for (j = 0; j < 30; j++, BigPokeballMap++) { - tilemap[i * 32 + j] = *BigPokeballMap | 0xF000; + SOME_VRAM_STORE(tilemap, i, j, *BigPokeballMap | 0xF000); } } sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); @@ -1456,7 +1462,7 @@ static bool8 Phase2_Kyogre_Func5(struct Task *task) static bool8 Phase2_WeatherDuo_Func6(struct Task *task) { - BeginNormalPaletteFade(0xFFFF8000, 1, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_OBJECTS | 0x8000, 1, 0, 0x10, RGB_BLACK); task->tState++; return FALSE; } @@ -1480,7 +1486,7 @@ static bool8 Phase2_BigPokeball_Func3(struct Task *task) task->tData2++; task->tData3 = 2; } - sTransitionStructPtr->BLDALPHA = (task->tData1 << 8) | task->tData2; + sTransitionStructPtr->BLDALPHA = BLDALPHA_BLEND(task->tData2, task->tData1); if (task->tData2 > 15) task->tState++; task->tData4 += 8; @@ -1500,7 +1506,7 @@ static bool8 Phase2_BigPokeball_Func4(struct Task *task) task->tData1--; task->tData3 = 2; } - sTransitionStructPtr->BLDALPHA = (task->tData1 << 8) | task->tData2; + sTransitionStructPtr->BLDALPHA = BLDALPHA_BLEND(task->tData2, task->tData1); if (task->tData1 == 0) task->tState++; task->tData4 += 8; @@ -1541,7 +1547,7 @@ static bool8 Phase2_FramesCountdown(struct Task *task) static bool8 Phase2_WeatherTrio_Func1(struct Task *task) { - BeginNormalPaletteFade(0x0000FFFF, 1, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_BG, 1, 0, 0x10, RGB_BLACK); task->tState++; return FALSE; } @@ -1675,12 +1681,6 @@ bool8 FldEff_Pokeball(void) return FALSE; } -#define SOME_VRAM_STORE(ptr, posY, posX, toStore) \ -{ \ - u32 index = (posY) * 32 + posX; \ - ptr[index] = toStore; \ -} - static void sub_814713C(struct Sprite *sprite) { s16 arr0[ARRAY_COUNT(sUnknown_085C8B96)]; @@ -1692,10 +1692,10 @@ static void sub_814713C(struct Sprite *sprite) } else { - if (sprite->pos1.x >= 0 && sprite->pos1.x <= 240) + if (sprite->x >= 0 && sprite->x <= DISPLAY_WIDTH) { - s16 posX = sprite->pos1.x >> 3; - s16 posY = sprite->pos1.y >> 3; + s16 posX = sprite->x >> 3; + s16 posY = sprite->y >> 3; if (posX != sprite->data[2]) { @@ -1712,8 +1712,8 @@ static void sub_814713C(struct Sprite *sprite) SOME_VRAM_STORE(ptr, posY + 1, posX, 0xF001); } } - sprite->pos1.x += arr0[sprite->data[0]]; - if (sprite->pos1.x < -15 || sprite->pos1.x > 255) + sprite->x += arr0[sprite->data[0]]; + if (sprite->x < -15 || sprite->x > 255) FieldEffectStop(sprite, FLDEFF_POKEBALL); } } @@ -1731,9 +1731,9 @@ static bool8 Phase2_Clockwise_BlackFade_Func1(struct Task *task) ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0; - sTransitionStructPtr->WINOUT = 63; + sTransitionStructPtr->WINOUT = WINOUT_WIN01_ALL; sTransitionStructPtr->WIN0H = -3855; - sTransitionStructPtr->WIN0V = 160; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; for (i = 0; i < 160; i++) { @@ -1962,7 +1962,7 @@ static bool8 Phase2_Ripple_Func2(struct Task *task) if (++task->tData3 == 81) { task->tData4++; - BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 0x10, RGB_BLACK); } if (task->tData4 != 0 && !gPaletteFade.active) @@ -1999,10 +1999,10 @@ static bool8 Phase2_Wave_Func1(struct Task *task) InitTransitionStructVars(); ScanlineEffect_Clear(); - sTransitionStructPtr->WININ = 63; + sTransitionStructPtr->WININ = WININ_WIN0_ALL; sTransitionStructPtr->WINOUT = 0; - sTransitionStructPtr->WIN0H = 240; - sTransitionStructPtr->WIN0V = 160; + sTransitionStructPtr->WIN0H = DISPLAY_WIDTH; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; for (i = 0; i < 160; i++) { @@ -2111,9 +2111,9 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task) task->tData1 = 0; task->tData2 = 1; task->tData3 = 239; - sTransitionStructPtr->WININ = 63; - sTransitionStructPtr->WINOUT = 62; - sTransitionStructPtr->WIN0V = 160; + sTransitionStructPtr->WININ = WININ_WIN0_ALL; + sTransitionStructPtr->WINOUT = WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; for (i = 0; i < 160; i++) { @@ -2142,7 +2142,7 @@ static bool8 Phase2_Mugshot_Func2(struct Task *task) { for (j = 0; j < 32; j++, mugshotsMap++) { - tilemap[i * 32 + j] = *mugshotsMap | 0xF000; + SOME_VRAM_STORE(tilemap, i, j, *mugshotsMap | 0xF000); } } @@ -2253,12 +2253,12 @@ static bool8 Phase2_Mugshot_Func6(struct Task *task) DmaStop(0); memset(gScanlineEffectRegBuffers[0], 0, 0x140); memset(gScanlineEffectRegBuffers[1], 0, 0x140); - SetGpuReg(REG_OFFSET_WIN0H, 0xF0); + SetGpuReg(REG_OFFSET_WIN0H, DISPLAY_WIDTH); SetGpuReg(REG_OFFSET_BLDY, 0); task->tState++; task->tData3 = 0; task->tData4 = 0; - sTransitionStructPtr->BLDCNT = 0xBF; + sTransitionStructPtr->BLDCNT = BLDCNT_TGT1_ALL | BLDCNT_EFFECT_LIGHTEN; SetVBlankCallback(VBlankCB1_Phase2_Mugshots); } return FALSE; @@ -2308,7 +2308,7 @@ static bool8 Phase2_Mugshot_Func7(struct Task *task) static bool8 Phase2_Mugshot_Func8(struct Task *task) { sTransitionStructPtr->VBlank_DMA = FALSE; - BlendPalettes(0xFFFFFFFF, 0x10, RGB_WHITE); + BlendPalettes(PALETTES_ALL, 0x10, RGB_WHITE); sTransitionStructPtr->BLDCNT = 0xFF; task->tData3 = 0; @@ -2384,7 +2384,7 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task *task) sMugshotsOpponentCoords[mugshotId][0] - 32, sMugshotsOpponentCoords[mugshotId][1] + 42, 0, gDecompressionBuffer); - task->tPlayerSpriteId = CreateTrainerSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), 272, 106, 0, gDecompressionBuffer); + task->tPlayerSpriteId = CreateTrainerSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), DISPLAY_WIDTH + 32, 106, 0, gDecompressionBuffer); opponentSprite = &gSprites[task->tOpponentSpriteId]; playerSprite = &gSprites[task->tPlayerSpriteId]; @@ -2438,10 +2438,10 @@ static bool8 TrainerPicCb_SetSlideOffsets(struct Sprite *sprite) // fast slide to around middle screen static bool8 TrainerPicCb_Slide1(struct Sprite *sprite) { - sprite->pos1.x += sprite->sOffsetX; - if (sprite->sSlideTableId && sprite->pos1.x < 133) + sprite->x += sprite->sOffsetX; + if (sprite->sSlideTableId && sprite->x < 133) sprite->sState++; - else if (!sprite->sSlideTableId && sprite->pos1.x > 103) + else if (!sprite->sSlideTableId && sprite->x > 103) sprite->sState++; return FALSE; } @@ -2450,7 +2450,7 @@ static bool8 TrainerPicCb_Slide1(struct Sprite *sprite) static bool8 TrainerPicCb_Slide2(struct Sprite *sprite) { sprite->sOffsetX += sprite->sOffsetX2; - sprite->pos1.x += sprite->sOffsetX; + sprite->x += sprite->sOffsetX; if (sprite->sOffsetX == 0) { sprite->sState++; @@ -2464,8 +2464,8 @@ static bool8 TrainerPicCb_Slide2(struct Sprite *sprite) static bool8 TrainerPicCb_Slide3(struct Sprite *sprite) { sprite->sOffsetX += sprite->sOffsetX2; - sprite->pos1.x += sprite->sOffsetX; - if (sprite->pos1.x < -31 || sprite->pos1.x > 271) + sprite->x += sprite->sOffsetX; + if (sprite->x < -31 || sprite->x > 271) sprite->sState++; return FALSE; } @@ -2505,9 +2505,9 @@ static bool8 Phase2_Slice_Func1(struct Task *task) task->tData2 = 256; task->tData3 = 1; - sTransitionStructPtr->WININ = 63; + sTransitionStructPtr->WININ = WININ_WIN0_ALL; sTransitionStructPtr->WINOUT = 0; - sTransitionStructPtr->WIN0V = 160; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; sTransitionStructPtr->VBlank_DMA = FALSE; for (i = 0; i < 160; i++) @@ -2606,9 +2606,9 @@ static bool8 Phase2_ShredSplit_Func1(struct Task *task) InitTransitionStructVars(); ScanlineEffect_Clear(); - sTransitionStructPtr->WININ = 63; + sTransitionStructPtr->WININ = WININ_WIN0_ALL; sTransitionStructPtr->WINOUT = 0; - sTransitionStructPtr->WIN0V = 160; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; for (i = 0; i < 0xA0; i++) { @@ -2779,9 +2779,9 @@ static bool8 Phase2_Blackhole_Func1(struct Task *task) ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0; - sTransitionStructPtr->WINOUT = 63; - sTransitionStructPtr->WIN0H = 240; - sTransitionStructPtr->WIN0V = 160; + sTransitionStructPtr->WINOUT = WINOUT_WIN01_ALL; + sTransitionStructPtr->WIN0H = DISPLAY_WIDTH; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; for (i = 0; i < 0xA0; i++) { @@ -2960,17 +2960,15 @@ static bool8 Phase2_RectangularSpiral_Func2(struct Task *task) if (sub_8149048(gUnknown_085C8D38[j / 2], &sRectangularSpiralTransition[j])) { - u32 one; done = FALSE; var = sRectangularSpiralTransition[j].field_2; - one = 1; - if ((j & 1) == one) + if ((j % 2) == 1) var = 0x27D - var; var2 = var % 32; - var3 = var / 32 * 32; + var3 = var / 32; - tilemap[var3 + var2] = 0xF002; + SOME_VRAM_STORE(tilemap, var3, var2, 0xF002); } } } @@ -3116,7 +3114,7 @@ static bool8 Phase2_Rayquaza_Func3(struct Task *task) InitTransitionStructVars(); ScanlineEffect_Clear(); - SetGpuReg(REG_OFFSET_BG0CNT, 0x9A08); + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(26) | BGCNT_TXT256x512); GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, 0x800); CpuCopy16(sRayquaza_Tileset, tileset, 0x2000); @@ -3168,7 +3166,7 @@ static bool8 Phase2_Rayquaza_Func6(struct Task *task) { task->tState++; task->tData1 = 0; - BeginNormalPaletteFade(0xFFFF8000, 2, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_OBJECTS | 0x8000, 2, 0, 0x10, RGB_BLACK); } return FALSE; @@ -3187,8 +3185,8 @@ static bool8 Phase2_Rayquaza_Func7(struct Task *task) static bool8 Phase2_Rayquaza_Func8(struct Task *task) { - BlendPalettes(0x00007FFF, 8, 0); - BlendPalettes(0xFFFF8000, 0, 0); + BlendPalettes(PALETTES_BG & ~(0x8000), 8, 0); + BlendPalettes(PALETTES_OBJECTS | 0x8000, 0, 0); task->tState++; return FALSE; @@ -3207,9 +3205,9 @@ static bool8 Phase2_Rayquaza_Func9(struct Task *task) u16 i; sTransitionStructPtr->WININ = 0; - sTransitionStructPtr->WINOUT = 63; - sTransitionStructPtr->WIN0H = 240; - sTransitionStructPtr->WIN0V = 160; + sTransitionStructPtr->WINOUT = WINOUT_WIN01_ALL; + sTransitionStructPtr->WIN0H = DISPLAY_WIDTH; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; for (i = 0; i < 160; i++) { @@ -3255,11 +3253,11 @@ static bool8 Phase2_WhiteFade_Func1(struct Task *task) InitTransitionStructVars(); ScanlineEffect_Clear(); - sTransitionStructPtr->BLDCNT = 0xBF; + sTransitionStructPtr->BLDCNT = BLDCNT_TGT1_ALL | BLDCNT_EFFECT_LIGHTEN; sTransitionStructPtr->BLDY = 0; - sTransitionStructPtr->WININ = 0x1E; - sTransitionStructPtr->WINOUT = 0x3F; - sTransitionStructPtr->WIN0V = 0xA0; + sTransitionStructPtr->WININ = WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ; + sTransitionStructPtr->WINOUT = WINOUT_WIN01_ALL; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; for (i = 0; i < 160; i++) { @@ -3285,8 +3283,8 @@ static bool8 Phase2_WhiteFade_Func2(struct Task *task) for (i = 0, posY = 0; i < 8; i++, posY += 0x14) { sprite = &gSprites[CreateInvisibleSprite(sub_8149864)]; - sprite->pos1.x = 0xF0; - sprite->pos1.y = posY; + sprite->x = 0xF0; + sprite->y = posY; sprite->data[5] = arr1[i]; } sprite->data[6]++; @@ -3300,7 +3298,7 @@ static bool8 Phase2_WhiteFade_Func3(struct Task *task) sTransitionStructPtr->VBlank_DMA = 0; if (sTransitionStructPtr->field_20 > 7) { - BlendPalettes(-1, 0x10, 0x7FFF); + BlendPalettes(PALETTES_ALL, 0x10, 0x7FFF); task->tState++; } return FALSE; @@ -3314,10 +3312,10 @@ static bool8 Phase2_WhiteFade_Func4(struct Task *task) SetVBlankCallback(0); SetHBlankCallback(0); - sTransitionStructPtr->WIN0H = 0xF0; + sTransitionStructPtr->WIN0H = DISPLAY_WIDTH; sTransitionStructPtr->BLDY = 0; sTransitionStructPtr->BLDCNT = 0xFF; - sTransitionStructPtr->WININ = 0x3F; + sTransitionStructPtr->WININ = WININ_WIN0_ALL; SetVBlankCallback(VBlankCB1_Phase2_WhiteFade); @@ -3375,21 +3373,21 @@ static void sub_8149864(struct Sprite *sprite) else { u16 i; - u16* ptr1 = &gScanlineEffectRegBuffers[0][sprite->pos1.y]; - u16* ptr2 = &gScanlineEffectRegBuffers[0][sprite->pos1.y + 160]; + u16* ptr1 = &gScanlineEffectRegBuffers[0][sprite->y]; + u16* ptr2 = &gScanlineEffectRegBuffers[0][sprite->y + 160]; for (i = 0; i < 20; i++) { ptr1[i] = sprite->data[0] >> 8; - ptr2[i] = (u8)(sprite->pos1.x); + ptr2[i] = (u8)(sprite->x); } - if (sprite->pos1.x == 0 && sprite->data[0] == 0x1000) + if (sprite->x == 0 && sprite->data[0] == 0x1000) sprite->data[1] = 1; - sprite->pos1.x -= 16; + sprite->x -= 16; sprite->data[0] += 0x80; - if (sprite->pos1.x < 0) - sprite->pos1.x = 0; + if (sprite->x < 0) + sprite->x = 0; if (sprite->data[0] > 0x1000) sprite->data[0] = 0x1000; @@ -3468,9 +3466,9 @@ static bool8 Phase2_Shards_Func1(struct Task *task) InitTransitionStructVars(); ScanlineEffect_Clear(); - sTransitionStructPtr->WININ = 0x3F; + sTransitionStructPtr->WININ = WININ_WIN0_ALL; sTransitionStructPtr->WINOUT = 0; - sTransitionStructPtr->WIN0V = 0xA0; + sTransitionStructPtr->WIN0V = DISPLAY_HEIGHT; for (i = 0; i < 160; i++) { @@ -3612,7 +3610,7 @@ static void CreatePhase1Task(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4) static bool8 IsPhase1Done(void) { - if (FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) == 0xFF) + if (FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) == TASK_NONE) return TRUE; else return FALSE; @@ -3631,7 +3629,7 @@ static bool8 Phase1_TransitionAll_Func1(struct Task *task) task->tData7 += task->tData4; if (task->tData7 > 16) task->tData7 = 16; - BlendPalettes(-1, task->tData7, 0x2D6B); + BlendPalettes(PALETTES_ALL, task->tData7, 0x2D6B); } if (task->tData7 > 15) { @@ -3649,7 +3647,7 @@ static bool8 Phase1_TransitionAll_Func2(struct Task *task) task->tData7 -= task->tData5; if (task->tData7 < 0) task->tData7 = 0; - BlendPalettes(-1, task->tData7, 0x2D6B); + BlendPalettes(PALETTES_ALL, task->tData7, 0x2D6B); } if (task->tData7 == 0) { @@ -3675,7 +3673,7 @@ static bool8 Phase1_TransitionAll_Func2(struct Task *task) static void InitTransitionStructVars(void) { memset(sTransitionStructPtr, 0, sizeof(*sTransitionStructPtr)); - sub_8089C08(&sTransitionStructPtr->field_14, &sTransitionStructPtr->field_16); + GetCameraOffsetWithPan(&sTransitionStructPtr->field_14, &sTransitionStructPtr->field_16); } static void VBlankCB_BattleTransition(void) @@ -3706,7 +3704,7 @@ void GetBg0TilesDst(u16 **tilemap, u16 **tileset) static void FadeScreenBlack(void) { - BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); } static void sub_8149F98(s16 *array, s16 sinAdd, s16 index, s16 indexIncrementer, s16 amplitude, s16 arrSize) @@ -3895,8 +3893,8 @@ static bool8 Phase2_FrontierLogoWave_Func1(struct Task *task) task->tData5 = 0; task->tData6 = 16; task->tData7 = 2560; - sTransitionStructPtr->BLDCNT = 0x3F41; - sTransitionStructPtr->BLDALPHA = (task->tData6 << 8) | (task->tData5); + sTransitionStructPtr->BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL; + sTransitionStructPtr->BLDALPHA = BLDALPHA_BLEND(task->tData5, task->tData6); REG_BLDCNT = sTransitionStructPtr->BLDCNT; REG_BLDALPHA = sTransitionStructPtr->BLDALPHA; GetBg0TilesDst(&tilemap, &tileset); @@ -3965,7 +3963,7 @@ static bool8 Phase2_FrontierLogoWave_Func4(struct Task *task) else if (task->tData6 > 0) task->tData6--; - sTransitionStructPtr->BLDALPHA = (task->tData6 << 8) | (task->tData5); + sTransitionStructPtr->BLDALPHA = BLDALPHA_BLEND(task->tData5, task->tData6); } for (i = 0; i < 160; i++, var6 += var8) @@ -3977,7 +3975,7 @@ static bool8 Phase2_FrontierLogoWave_Func4(struct Task *task) if (++task->tData3 == 101) { task->tData4++; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); } if (task->tData4 != 0 && !gPaletteFade.active) @@ -4077,7 +4075,7 @@ static bool8 Phase2_FrontierSquares_Func3(struct Task *task) } break; case 1: - BlendPalettes(0xFFFF7FFF, 0x10, 0); + BlendPalettes(PALETTES_ALL & ~(0x8000), 0x10, 0); LZ77UnCompVram(sFrontierSquares_EmptyBg_Tileset, tileset); break; case 2: @@ -4138,7 +4136,7 @@ static bool8 Phase2_FrontierSquaresSpiral_Func2(struct Task *task) static bool8 Phase2_FrontierSquaresSpiral_Func3(struct Task *task) { BlendPalette(0xE0, 0x10, 3, 0); - BlendPalettes(0xFFFF3FFF, 0x10, 0); + BlendPalettes(PALETTES_ALL & ~(0x8000 | 0x4000), 0x10, 0); task->tData2 = 0; task->tData3 = 0; @@ -4194,7 +4192,7 @@ static bool8 Phase2_FrontierSquares_End(struct Task *task) { FillBgTilemapBufferRect_Palette0(0, 1, 0, 0, 0x20, 0x20); CopyBgTilemapBufferToVram(0); - BlendPalettes(0xFFFFFFFF, 0x10, 0); + BlendPalettes(PALETTES_ALL, 0x10, 0); DestroyTask(FindTaskIdByFunc(task->func)); return FALSE; } @@ -4286,7 +4284,7 @@ static bool8 Phase2_FrontierSquaresScroll_Func2(struct Task *task) static bool8 Phase2_FrontierSquaresScroll_Func3(struct Task *task) { - BlendPalettes(0xFFFF7FFF, 0x10, 0); + BlendPalettes(PALETTES_ALL & ~(0x8000), 0x10, 0); task->tData2 = 0; @@ -4325,10 +4323,13 @@ static bool8 Phase2_FrontierSquaresScroll_Func5(struct Task *task) FillBgTilemapBufferRect_Palette0(0, 1, 0, 0, 0x20, 0x20); CopyBgTilemapBufferToVram(0); - BlendPalettes(0xFFFFFFFF, 0x10, 0); + BlendPalettes(PALETTES_ALL, 0x10, 0); DestroyTask(FindTaskIdByFunc(task->func)); + +#ifndef UBFIX task->tState++; // UB: changing value of a destroyed task +#endif return FALSE; } diff --git a/src/battle_transition_frontier.c b/src/battle_transition_frontier.c index 931de5e445..2d34c9f86a 100644 --- a/src/battle_transition_frontier.c +++ b/src/battle_transition_frontier.c @@ -243,7 +243,7 @@ static void SpriteCB_LogoCircleSlide(struct Sprite *sprite) { s16 *data = sprite->data; - if (sprite->pos1.x == data[0] && sprite->pos1.y == data[1]) + if (sprite->x == data[0] && sprite->y == data[1]) { sprite->callback = SpriteCallbackDummy; } @@ -251,7 +251,7 @@ static void SpriteCB_LogoCircleSlide(struct Sprite *sprite) { if (data[4] == data[6]) { - sprite->pos1.x += data[2]; + sprite->x += data[2]; data[4] = 0; } else @@ -261,7 +261,7 @@ static void SpriteCB_LogoCircleSlide(struct Sprite *sprite) if (data[5] == data[7]) { - sprite->pos1.y += data[3]; + sprite->y += data[3]; data[5] = 0; } else @@ -305,8 +305,8 @@ static u8 CreateSpiralingLogoCircleSprite(s16 x, s16 y, s16 arg2, s16 arg3, s16 static void SpriteCB_LogoCircleSpiral(struct Sprite *sprite) { - sprite->pos2.x = (Sin2(sprite->data[2]) * sprite->data[4]) >> 12; // div by 4096 - sprite->pos2.y = (Cos2(sprite->data[2]) * sprite->data[4]) >> 12; // div by 4096 + sprite->x2 = (Sin2(sprite->data[2]) * sprite->data[4]) >> 12; // div by 4096 + sprite->y2 = (Cos2(sprite->data[2]) * sprite->data[4]) >> 12; // div by 4096 sprite->data[2] = (sprite->data[2] + sprite->data[3]) % 360; @@ -373,7 +373,7 @@ static bool8 FadeInCenterLogoCircle(struct Task *task) { if (task->data[3] == 31) { - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 0x10, RGB_BLACK); task->tState++; } else diff --git a/src/battle_tv.c b/src/battle_tv.c index ac4cb80fc2..e6e29470d7 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -8,15 +8,68 @@ #include "constants/moves.h" #include "battle_message.h" #include "tv.h" +#include "constants/battle_move_effects.h" // this file's functions -static bool8 sub_817E0B8(u16 stringId); +static bool8 IsNotSpecialBattleString(u16 stringId); static void AddMovePoints(u8 caseId, u16 arg1, u8 arg2, u8 arg3); static void TrySetBattleSeminarShow(void); static void AddPointsOnFainting(bool8 targetFainted); static void AddPointsBasedOnWeather(u16 weatherFlags, u16 moveId, u8 moveSlot); static bool8 ShouldCalculateDamage(u16 moveId, s32 *dmg, u16 *powerOverride); +#define TABLE_END ((u16)-1) + +enum { + PTS_MOVE_EFFECT, + PTS_EFFECTIVENESS, + PTS_SET_UP, // Broadly. Used by Wish, Future Sight, Ingrain, etc. + PTS_RAIN, + PTS_SUN, + PTS_SANDSTORM, + PTS_HAIL, + PTS_ELECTRIC, + PTS_STATUS_DMG, + PTS_STATUS, + PTS_SPIKES, + PTS_WATER_SPORT, + PTS_MUD_SPORT, + PTS_REFLECT, + PTS_LIGHT_SCREEN, + PTS_SAFEGUARD, + PTS_MIST, + PTS_BREAK_WALL, + PTS_CRITICAL_HIT, + PTS_FAINT, + PTS_FAINT_SET_UP, + PTS_FLINCHED, + PTS_STAT_INCREASE_1, + PTS_STAT_INCREASE_2, + PTS_STAT_DECREASE_SELF, + PTS_STAT_DECREASE_1, + PTS_STAT_DECREASE_2, + PTS_STAT_INCREASE_NOT_SELF, +}; + +enum { + FNT_NONE, + FNT_CURSE, + FNT_LEECH_SEED, + FNT_POISON, + FNT_BURN, + FNT_NIGHTMARE, + FNT_WRAP, + FNT_SPIKES, + FNT_FUTURE_SIGHT, + FNT_DOOM_DESIRE, + FNT_PERISH_SONG, + FNT_DESTINY_BOND, + FNT_CONFUSION, + FNT_EXPLOSION, + FNT_RECOIL, + FNT_OTHER, +}; + // const rom data static const u16 sVariableDmgMoves[] = { @@ -26,180 +79,462 @@ static const u16 sVariableDmgMoves[] = MOVE_WATER_SPOUT, MOVE_DREAM_EATER, MOVE_WEATHER_BALL, MOVE_SNORE, MOVE_PAIN_SPLIT, MOVE_GUILLOTINE, MOVE_FRUSTRATION, MOVE_RETURN, MOVE_ENDEAVOR, - MOVE_PRESENT, MOVE_REVENGE, 0xFFFF, + MOVE_PRESENT, MOVE_REVENGE, TABLE_END, // those are handled by the function itself - MOVE_MAGNITUDE, MOVE_PSYWAVE, 0xFFFF + MOVE_MAGNITUDE, MOVE_PSYWAVE, TABLE_END }; -static const u16 sUnknown_0860A4E0[] = +static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = { - 0x0001, 0x0001, 0x0001, 0x0004, 0x0001, 0x0001, 0x0001, 0x0000, 0x0005, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0005, 0x0005, 0x0004, 0x0005, 0x0001, 0x0003, 0x0001, - 0x0003, 0x0005, 0x0001, 0x0007, 0x0001, 0x0007, 0x0007, 0x0001, 0x0005, 0x0002, 0x0004, 0x0001, 0x0001, 0x0001, 0x0005, 0x0001, - 0x0002, 0x0004, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0007, 0x0004, 0x0004, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0004, 0x0001, 0x0001, 0x0001, 0x0004, - 0x0005, 0x0002, 0x0004, 0x0001, 0x0004, 0x0001, 0x0007, 0x0002, 0x0001, 0x0005, 0x0007, 0x0003, 0x0003, 0x0004, 0x0003, 0x0003, - 0x0003, 0x0003, 0x0003, 0x0002, 0x0004, 0x0001, 0x0005, 0x0001, 0x0001, 0x0004, 0x0005, 0x0003, 0x0001, 0x0002, 0x0001, 0x0005, - 0x0004, 0x0003, 0x0006, 0x0004, 0x0003, 0x0003, 0x0003, 0x0002, 0x0004, 0x0001, 0x0001, 0x0001, 0x0005, 0x0001, 0x0001, 0x0007, - 0x0002, 0x0002, 0x0001, 0x0001, 0x0004, 0x0004, 0x0004, 0x0001, 0x0004, 0x0004, 0x0001, 0x0001, 0x0001, 0x0001, 0x0007, 0x0007, - 0x0006, 0x0003, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0003, 0x0001, 0x0001, 0x0004, 0x0004, - 0x0003, 0x0003, 0x0003, 0x0001, 0x0004, 0x0007, 0x0007, 0x0005, 0x0007, 0x0001, 0x0007, 0x0001, 0x0005, 0x0000, 0x0004, 0x0004, - 0x0004, 0x0004, 0x0004, 0x0002, 0x0002, 0x0006, 0x0003, 0x0006, 0x0004, 0x0004, 0x0002, 0x0005, 0x0002, 0x0001, 0x0001, 0x0006, - 0x0006, 0x0006, 0x0001, 0x0001, 0x0001, 0x0001, 0x0002, 0x0006, 0x0001, 0x0004, 0x0001, 0x0001, 0x0003, 0x0001, 0x0001, 0x0001, - 0x0001, 0x0001, 0x0004, 0x0001, 0x0001, 0x0003 + [EFFECT_HIT] = 1, + [EFFECT_SLEEP] = 1, + [EFFECT_POISON_HIT] = 1, + [EFFECT_ABSORB] = 4, + [EFFECT_BURN_HIT] = 1, + [EFFECT_FREEZE_HIT] = 1, + [EFFECT_PARALYZE_HIT] = 1, + [EFFECT_EXPLOSION] = 0, + [EFFECT_DREAM_EATER] = 5, + [EFFECT_MIRROR_MOVE] = 1, + [EFFECT_ATTACK_UP] = 1, + [EFFECT_DEFENSE_UP] = 1, + [EFFECT_SPEED_UP] = 1, + [EFFECT_SPECIAL_ATTACK_UP] = 1, + [EFFECT_SPECIAL_DEFENSE_UP] = 1, + [EFFECT_ACCURACY_UP] = 1, + [EFFECT_EVASION_UP] = 1, +// [EFFECT_ALWAYS_HIT] = 2, + [EFFECT_ATTACK_DOWN] = 1, + [EFFECT_DEFENSE_DOWN] = 1, + [EFFECT_SPEED_DOWN] = 1, + [EFFECT_SPECIAL_ATTACK_DOWN] = 1, + [EFFECT_SPECIAL_DEFENSE_DOWN] = 1, + [EFFECT_ACCURACY_DOWN] = 1, + [EFFECT_EVASION_DOWN] = 1, + [EFFECT_HAZE] = 5, + [EFFECT_BIDE] = 5, + [EFFECT_RAMPAGE] = 4, + [EFFECT_ROAR] = 5, + [EFFECT_MULTI_HIT] = 1, + [EFFECT_CONVERSION] = 3, + [EFFECT_FLINCH_HIT] = 1, + [EFFECT_RESTORE_HP] = 3, + [EFFECT_TOXIC] = 5, + [EFFECT_PAY_DAY] = 1, + [EFFECT_LIGHT_SCREEN] = 7, + [EFFECT_TRI_ATTACK] = 1, + [EFFECT_REST] = 7, + [EFFECT_OHKO] = 7, +// [EFFECT_RAZOR_WIND] = 1, + [EFFECT_SUPER_FANG] = 5, + [EFFECT_DRAGON_RAGE] = 2, + [EFFECT_TRAP] = 4, +// [EFFECT_HIGH_CRITICAL] = 1, + [EFFECT_DOUBLE_HIT] = 1, + [EFFECT_RECOIL_IF_MISS] = 1, + [EFFECT_MIST] = 5, + [EFFECT_FOCUS_ENERGY] = 1, + [EFFECT_RECOIL_25] = 2, + [EFFECT_CONFUSE] = 4, + [EFFECT_ATTACK_UP_2] = 1, + [EFFECT_DEFENSE_UP_2] = 1, + [EFFECT_SPEED_UP_2] = 1, + [EFFECT_SPECIAL_ATTACK_UP_2] = 1, + [EFFECT_SPECIAL_DEFENSE_UP_2] = 1, + [EFFECT_ACCURACY_UP_2] = 1, + [EFFECT_EVASION_UP_2] = 1, + [EFFECT_TRANSFORM] = 0, + [EFFECT_ATTACK_DOWN_2] = 1, + [EFFECT_DEFENSE_DOWN_2] = 1, + [EFFECT_SPEED_DOWN_2] = 1, + [EFFECT_SPECIAL_ATTACK_DOWN_2] = 1, + [EFFECT_SPECIAL_DEFENSE_DOWN_2] = 1, + [EFFECT_ACCURACY_DOWN_2] = 1, + [EFFECT_EVASION_DOWN_2] = 1, + [EFFECT_REFLECT] = 7, + [EFFECT_POISON] = 4, + [EFFECT_PARALYZE] = 4, + [EFFECT_ATTACK_DOWN_HIT] = 1, + [EFFECT_DEFENSE_DOWN_HIT] = 1, + [EFFECT_SPEED_DOWN_HIT] = 1, + [EFFECT_SPECIAL_ATTACK_DOWN_HIT] = 1, + [EFFECT_SPECIAL_DEFENSE_DOWN_HIT] = 1, + [EFFECT_ACCURACY_DOWN_HIT] = 1, + [EFFECT_EVASION_DOWN_HIT] = 1, +// [EFFECT_SKY_ATTACK] = 4, + [EFFECT_CONFUSE_HIT] = 1, + [EFFECT_TWINEEDLE] = 1, + [EFFECT_VITAL_THROW] = 1, + [EFFECT_SUBSTITUTE] = 4, + [EFFECT_RECHARGE] = 5, + [EFFECT_RAGE] = 2, + [EFFECT_MIMIC] = 4, + [EFFECT_METRONOME] = 1, + [EFFECT_LEECH_SEED] = 4, + [EFFECT_DO_NOTHING] = 1, + [EFFECT_DISABLE] = 7, + [EFFECT_LEVEL_DAMAGE] = 2, + [EFFECT_PSYWAVE] = 1, + [EFFECT_COUNTER] = 5, + [EFFECT_ENCORE] = 7, + [EFFECT_PAIN_SPLIT] = 3, + [EFFECT_SNORE] = 3, + [EFFECT_CONVERSION_2] = 4, + [EFFECT_LOCK_ON] = 3, + [EFFECT_SKETCH] = 3, +// [EFFECT_UNUSED_60] = 3, + [EFFECT_SLEEP_TALK] = 3, + [EFFECT_DESTINY_BOND] = 3, + [EFFECT_FLAIL] = 2, + [EFFECT_SPITE] = 4, + [EFFECT_FALSE_SWIPE] = 1, + [EFFECT_HEAL_BELL] = 5, +// [EFFECT_QUICK_ATTACK] = 1, + [EFFECT_TRIPLE_KICK] = 1, + [EFFECT_THIEF] = 4, + [EFFECT_MEAN_LOOK] = 5, + [EFFECT_NIGHTMARE] = 3, + [EFFECT_MINIMIZE] = 1, + [EFFECT_CURSE] = 2, +// [EFFECT_UNUSED_6E] = 1, + [EFFECT_PROTECT] = 5, + [EFFECT_SPIKES] = 4, + [EFFECT_FORESIGHT] = 3, + [EFFECT_PERISH_SONG] = 6, + [EFFECT_SANDSTORM] = 4, + [EFFECT_ENDURE] = 3, + [EFFECT_ROLLOUT] = 3, + [EFFECT_SWAGGER] = 3, + [EFFECT_FURY_CUTTER] = 2, + [EFFECT_ATTRACT] = 4, + [EFFECT_RETURN] = 1, + [EFFECT_PRESENT] = 1, + [EFFECT_FRUSTRATION] = 1, + [EFFECT_SAFEGUARD] = 5, +// [EFFECT_THAW_HIT] = 1, Now unused + [EFFECT_MAGNITUDE] = 1, + [EFFECT_BATON_PASS] = 7, + [EFFECT_PURSUIT] = 2, + [EFFECT_RAPID_SPIN] = 2, + [EFFECT_SONICBOOM] = 1, +// [EFFECT_UNUSED_83] = 1, + [EFFECT_MORNING_SUN] = 4, + [EFFECT_SYNTHESIS] = 4, + [EFFECT_MOONLIGHT] = 4, + [EFFECT_HIDDEN_POWER] = 1, + [EFFECT_RAIN_DANCE] = 4, + [EFFECT_SUNNY_DAY] = 4, + [EFFECT_DEFENSE_UP_HIT] = 1, + [EFFECT_ATTACK_UP_HIT] = 1, + [EFFECT_ALL_STATS_UP_HIT] = 1, +// [EFFECT_UNUSED_8D] = 1, + [EFFECT_BELLY_DRUM] = 7, + [EFFECT_PSYCH_UP] = 7, + [EFFECT_MIRROR_COAT] = 6, + [EFFECT_SKULL_BASH] = 3, + [EFFECT_TWISTER] = 1, + [EFFECT_EARTHQUAKE] = 1, + [EFFECT_FUTURE_SIGHT] = 1, + [EFFECT_GUST] = 1, + [EFFECT_FLINCH_MINIMIZE_HIT] = 1, + [EFFECT_SOLARBEAM] = 1, + [EFFECT_THUNDER] = 1, + [EFFECT_TELEPORT] = 1, + [EFFECT_BEAT_UP] = 2, + [EFFECT_SEMI_INVULNERABLE] = 3, + [EFFECT_DEFENSE_CURL] = 1, + [EFFECT_SOFTBOILED] = 1, + [EFFECT_FAKE_OUT] = 4, + [EFFECT_UPROAR] = 4, + [EFFECT_STOCKPILE] = 3, + [EFFECT_SPIT_UP] = 3, + [EFFECT_SWALLOW] = 3, +// [EFFECT_UNUSED_A3] = 1, + [EFFECT_HAIL] = 4, + [EFFECT_TORMENT] = 7, + [EFFECT_FLATTER] = 7, + [EFFECT_WILL_O_WISP] = 5, + [EFFECT_MEMENTO] = 7, + [EFFECT_FACADE] = 1, + [EFFECT_FOCUS_PUNCH] = 7, + [EFFECT_SMELLINGSALT] = 1, + [EFFECT_FOLLOW_ME] = 5, + [EFFECT_NATURE_POWER] = 0, + [EFFECT_CHARGE] = 4, + [EFFECT_TAUNT] = 4, + [EFFECT_HELPING_HAND] = 4, + [EFFECT_TRICK] = 4, + [EFFECT_ROLE_PLAY] = 4, + [EFFECT_WISH] = 2, + [EFFECT_ASSIST] = 2, + [EFFECT_INGRAIN] = 6, + [EFFECT_SUPERPOWER] = 3, + [EFFECT_MAGIC_COAT] = 6, + [EFFECT_RECYCLE] = 4, + [EFFECT_REVENGE] = 4, + [EFFECT_BRICK_BREAK] = 2, + [EFFECT_YAWN] = 5, + [EFFECT_KNOCK_OFF] = 2, + [EFFECT_ENDEAVOR] = 1, + [EFFECT_ERUPTION] = 1, + [EFFECT_SKILL_SWAP] = 6, + [EFFECT_IMPRISON] = 6, + [EFFECT_REFRESH] = 6, + [EFFECT_GRUDGE] = 1, + [EFFECT_SNATCH] = 1, + [EFFECT_LOW_KICK] = 1, + [EFFECT_SECRET_POWER] = 1, + [EFFECT_RECOIL_33] = 2, + [EFFECT_TEETER_DANCE] = 6, +// [EFFECT_BLAZE_KICK] = 1, + [EFFECT_MUD_SPORT] = 4, + [EFFECT_POISON_FANG] = 1, + [EFFECT_WEATHER_BALL] = 1, + [EFFECT_OVERHEAT] = 3, + [EFFECT_TICKLE] = 1, + [EFFECT_COSMIC_POWER] = 1, + [EFFECT_SKY_UPPERCUT] = 1, + [EFFECT_BULK_UP] = 1, +// [EFFECT_POISON_TAIL] = 1, + [EFFECT_WATER_SPORT] = 4, + [EFFECT_CALM_MIND] = 1, + [EFFECT_DRAGON_DANCE] = 1, + [EFFECT_CAMOUFLAGE] = 3 }; -static const u16 sUnknown_0860A68C[] = + +static const u16 sPoints_Effectiveness[] = { - 0x0004, 0xfffd, 0xfffa + 4, // Super Effective + -3, // Not Very Effective + -6 // No Effect }; -static const u16 sUnknown_0860A692[] = +static const u16 sPoints_SetUp[] = { - 0x0004, 0x0004, 0x0006, 0x0006, 0x0007, 0x0006, 0x0002 + 4, // Future Sight + 4, // Doom Desire + 6, + 6, // Wish + 7, // Grudge + 6, + 2 // Ingrain }; -static const u16 sUnknown_0860A6A0[] = +static const u16 sPoints_RainMoves[] = { - 0x0091, 0x0003, 0x00fa, 0x0003, 0x00be, 0x0003, 0x0080, 0x0003, 0x006e, 0x0003, 0x0098, 0x0003, 0x0143, 0x0003, 0x0123, 0x0003, - 0x007f, 0x0003, 0x014a, 0x0003, 0x0039, 0x0003, 0x0134, 0x0003, 0x0038, 0x0003, 0x003d, 0x0003, 0x015a, 0x0000, 0x0037, 0x0003, - 0x0160, 0x0003, 0x0137, 0x0003, 0x0057, 0x0003, 0x004c, 0xfffc, 0x013b, 0xfffc, 0x00ac, 0xfffc, 0x0035, 0xfffc, 0x00dd, 0xfffc, - 0x007e, 0xfffc, 0x0101, 0xfffc, 0x0034, 0xfffc, 0x0133, 0xfffc, 0x012b, 0xfffc, 0x011c, 0xfffc, 0x0053, 0xfffc, 0x0007, 0xfffc, - 0x004c, 0xfffc, 0xffff, 0x0000 + MOVE_BUBBLE, 3, + MOVE_WHIRLPOOL, 3, + MOVE_OCTAZOOKA, 3, + MOVE_CLAMP, 3, + MOVE_WITHDRAW, 3, + MOVE_CRABHAMMER, 3, + MOVE_WATER_SPOUT, 3, + MOVE_DIVE, 3, + MOVE_WATERFALL, 3, + MOVE_MUDDY_WATER, 3, + MOVE_SURF, 3, + MOVE_HYDRO_CANNON, 3, + MOVE_HYDRO_PUMP, 3, + MOVE_BUBBLE_BEAM, 3, + MOVE_WATER_SPORT, 0, // Unnecessary, unlisted moves are already given 0 points + MOVE_WATER_GUN, 3, + MOVE_WATER_PULSE, 3, + MOVE_WEATHER_BALL, 3, + MOVE_THUNDER, 3, + MOVE_SOLAR_BEAM, -4, + MOVE_OVERHEAT, -4, + MOVE_FLAME_WHEEL, -4, + MOVE_FLAMETHROWER, -4, + MOVE_SACRED_FIRE, -4, + MOVE_FIRE_BLAST, -4, + MOVE_HEAT_WAVE, -4, + MOVE_EMBER, -4, + MOVE_BLAST_BURN, -4, + MOVE_BLAZE_KICK, -4, + MOVE_ERUPTION, -4, + MOVE_FIRE_SPIN, -4, + MOVE_FIRE_PUNCH, -4, + MOVE_SOLAR_BEAM, -4, // Repeated + TABLE_END, 0 }; -static const u16 sUnknown_0860A728[] = +static const u16 sPoints_SunMoves[] = { - 0x013b, 0x0003, 0x00ac, 0x0003, 0x0035, 0x0003, 0x00dd, 0x0003, 0x007e, 0x0003, 0x0101, 0x0003, 0x0034, 0x0003, 0x0133, 0x0003, - 0x012b, 0x0003, 0x011c, 0x0003, 0x0053, 0x0003, 0x0007, 0x0003, 0x004c, 0x0005, 0x00eb, 0x0003, 0x00ea, 0x0003, 0x00ec, 0x0003, - 0x0137, 0x0003, 0xffff, 0x0000 + MOVE_OVERHEAT, 3, + MOVE_FLAME_WHEEL, 3, + MOVE_FLAMETHROWER, 3, + MOVE_SACRED_FIRE, 3, + MOVE_FIRE_BLAST, 3, + MOVE_HEAT_WAVE, 3, + MOVE_EMBER, 3, + MOVE_BLAST_BURN, 3, + MOVE_BLAZE_KICK, 3, + MOVE_ERUPTION, 3, + MOVE_FIRE_SPIN, 3, + MOVE_FIRE_PUNCH, 3, + MOVE_SOLAR_BEAM, 5, + MOVE_SYNTHESIS, 3, + MOVE_MORNING_SUN, 3, + MOVE_MOONLIGHT, 3, + MOVE_WEATHER_BALL, 3, + TABLE_END, 0 }; -static const u16 sUnknown_0860A770[] = +static const u16 sPoints_SandstormMoves[] = { - 0x0137, 0x0003, 0x004c, 0xfffd, 0xffff, 0x0000 + MOVE_WEATHER_BALL, 3, + MOVE_SOLAR_BEAM, -3, + TABLE_END, 0 }; -static const u16 sUnknown_0860A77C[] = +static const u16 sPoints_HailMoves[] = { - 0x0137, 0x0003, 0x004c, 0xfffd, 0xffff, 0x0000 + MOVE_WEATHER_BALL, 3, + MOVE_SOLAR_BEAM, -3, + TABLE_END, 0 }; -static const u16 sUnknown_0860A788[] = +static const u16 sPoints_ElectricMoves[] = { - 0x0055, 0x0003, 0x0009, 0x0003, 0x00d1, 0x0003, 0x0054, 0x0003, 0x00c0, 0x0003, 0x015f, 0x0003, 0x0056, 0x0000, 0x0057, 0x0003, - 0x0158, 0x0003, 0xffff, 0x0000 + MOVE_THUNDERBOLT, 3, + MOVE_THUNDER_PUNCH, 3, + MOVE_SPARK, 3, + MOVE_THUNDER_SHOCK, 3, + MOVE_ZAP_CANNON, 3, + MOVE_SHOCK_WAVE, 3, + MOVE_THUNDER_WAVE, 0, // Unnecessary, unlisted moves are already given 0 points + MOVE_THUNDER, 3, + MOVE_VOLT_TACKLE, 3, + TABLE_END, 0 }; -static const u16 sUnknown_0860A7B0[] = +static const u16 sPoints_StatusDmg[] = { - 0x0005, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003 + 5, // Curse + 3, // Leech Seed + 3, // Poison + 3, // Toxic + 3, // Burn + 3, // Nightmare + 3 // Wrap (Trapping move) }; -static const u16 sUnknown_0860A7BE[] = +static const u16 sPoints_Status[] = { - 0x0005, 0x0005, 0x0005, 0x0005, 0x0005 + 5, // Attraction + 5, // Confusion + 5, // Paralysis + 5, // Sleep + 5 // Freeze }; -static const u16 sUnknown_0860A7C8[] = + +static const u16 sPoints_Spikes[] = { 4 }; +static const u16 sPoints_WaterSport[] = { 5 }; +static const u16 sPoints_MudSport[] = { 5 }; +static const u16 sPoints_Reflect[] = { 3 }; +static const u16 sPoints_LightScreen[] = { 3 }; +static const u16 sPoints_Safeguard[] = { 4 }; +static const u16 sPoints_Mist[] = { 3 }; +static const u16 sPoints_BreakWall[] = { 6 }; +static const u16 sPoints_CriticalHit[] = { 6 }; +static const u16 sPoints_Faint[] = { 6 }; +static const u16 sPoints_Flinched[] = { 4 }; + +static const u16 sPoints_StatIncrease1[NUM_BATTLE_STATS - 1] = { - 0x0004 + [STAT_ATK - 1] = 2, + [STAT_DEF - 1] = 2, + [STAT_SPEED - 1] = 2, + [STAT_SPATK - 1] = 2, + [STAT_SPDEF - 1] = 2, + [STAT_ACC - 1] = 2, + [STAT_EVASION - 1] = 2 }; -static const u16 sUnknown_0860A7CA[] = +static const u16 sPoints_StatIncrease2[NUM_BATTLE_STATS - 1] = { - 0x0005 + [STAT_ATK - 1] = 4, + [STAT_DEF - 1] = 4, + [STAT_SPEED - 1] = 4, + [STAT_SPATK - 1] = 4, + [STAT_SPDEF - 1] = 4, + [STAT_ACC - 1] = 4, + [STAT_EVASION - 1] = 4 }; -static const u16 sUnknown_0860A7CC[] = +static const u16 sPoints_StatDecreaseSelf[NUM_BATTLE_STATS - 1] = { - 0x0005 + [STAT_ATK - 1] = -1, + [STAT_DEF - 1] = -1, + [STAT_SPEED - 1] = -1, + [STAT_SPATK - 1] = -1, + [STAT_SPDEF - 1] = -1, + [STAT_ACC - 1] = -1, + [STAT_EVASION - 1] = -1 }; -static const u16 sUnknown_0860A7CE[] = +static const u16 sPoints_StatDecrease1[NUM_BATTLE_STATS - 1] = { - 0x0003 + [STAT_ATK - 1] = 2, + [STAT_DEF - 1] = 2, + [STAT_SPEED - 1] = 2, + [STAT_SPATK - 1] = 2, + [STAT_SPDEF - 1] = 2, + [STAT_ACC - 1] = 2, + [STAT_EVASION - 1] = 2 }; -static const u16 sUnknown_0860A7D0[] = +static const u16 sPoints_StatDecrease2[NUM_BATTLE_STATS - 1] = { - 0x0003 + [STAT_ATK - 1] = 4, + [STAT_DEF - 1] = 4, + [STAT_SPEED - 1] = 4, + [STAT_SPATK - 1] = 4, + [STAT_SPDEF - 1] = 4, + [STAT_ACC - 1] = 4, + [STAT_EVASION - 1] = 4 }; -static const u16 sUnknown_0860A7D2[] = +static const u16 sPoints_StatIncreaseNotSelf[NUM_BATTLE_STATS - 1] = { - 0x0004 -}; -static const u16 sUnknown_0860A7D4[] = -{ - 0x0003 -}; -static const u16 sUnknown_0860A7D6[] = -{ - 0x0006 -}; -static const u16 sUnknown_0860A7D8[] = -{ - 0x0006 -}; -static const u16 sUnknown_0860A7DA[] = -{ - 0x0006 -}; -static const u16 sUnknown_0860A7DC[] = -{ - 0x0004 -}; -static const u16 sUnknown_0860A7DE[] = -{ - 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002 -}; -static const u16 sUnknown_0860A7EC[] = -{ - 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004 -}; -static const u16 sUnknown_0860A7FA[] = -{ - 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff -}; -static const u16 sUnknown_0860A808[] = -{ - 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002 -}; -static const u16 sUnknown_0860A816[] = -{ - 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004 -}; -static const u16 sUnknown_0860A824[] = -{ - 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe, 0xfffe + [STAT_ATK - 1] = -2, + [STAT_DEF - 1] = -2, + [STAT_SPEED - 1] = -2, + [STAT_SPATK - 1] = -2, + [STAT_SPDEF - 1] = -2, + [STAT_ACC - 1] = -2, + [STAT_EVASION - 1] = -2 }; static const u16 *const sPointsArray[] = { - sUnknown_0860A4E0, - sUnknown_0860A68C, - sUnknown_0860A692, - sUnknown_0860A6A0, - sUnknown_0860A728, - sUnknown_0860A770, - sUnknown_0860A77C, - sUnknown_0860A788, - sUnknown_0860A7B0, - sUnknown_0860A7BE, - sUnknown_0860A7C8, - sUnknown_0860A7CA, - sUnknown_0860A7CC, - sUnknown_0860A7CE, - sUnknown_0860A7D0, - sUnknown_0860A7D2, - sUnknown_0860A7D4, - sUnknown_0860A7D6, - sUnknown_0860A7D8, - sUnknown_0860A7DA, - sUnknown_0860A7DA, - sUnknown_0860A7DC, - sUnknown_0860A7DE, - sUnknown_0860A7EC, - sUnknown_0860A7FA, - sUnknown_0860A808, - sUnknown_0860A816, - sUnknown_0860A824 + [PTS_MOVE_EFFECT] = sPoints_MoveEffect, + [PTS_EFFECTIVENESS] = sPoints_Effectiveness, + [PTS_SET_UP] = sPoints_SetUp, + [PTS_RAIN] = sPoints_RainMoves, + [PTS_SUN] = sPoints_SunMoves, + [PTS_SANDSTORM] = sPoints_SandstormMoves, + [PTS_HAIL] = sPoints_HailMoves, + [PTS_ELECTRIC] = sPoints_ElectricMoves, + [PTS_STATUS_DMG] = sPoints_StatusDmg, + [PTS_STATUS] = sPoints_Status, + [PTS_SPIKES] = sPoints_Spikes, + [PTS_WATER_SPORT] = sPoints_WaterSport, + [PTS_MUD_SPORT] = sPoints_MudSport, + [PTS_REFLECT] = sPoints_Reflect, + [PTS_LIGHT_SCREEN] = sPoints_LightScreen, + [PTS_SAFEGUARD] = sPoints_Safeguard, + [PTS_MIST] = sPoints_Mist, + [PTS_BREAK_WALL] = sPoints_BreakWall, + [PTS_CRITICAL_HIT] = sPoints_CriticalHit, + [PTS_FAINT] = sPoints_Faint, + [PTS_FAINT_SET_UP] = sPoints_Faint, + [PTS_FLINCHED] = sPoints_Flinched, + [PTS_STAT_INCREASE_1] = sPoints_StatIncrease1, + [PTS_STAT_INCREASE_2] = sPoints_StatIncrease2, + [PTS_STAT_DECREASE_SELF] = sPoints_StatDecreaseSelf, + [PTS_STAT_DECREASE_1] = sPoints_StatDecrease1, + [PTS_STAT_DECREASE_2] = sPoints_StatDecrease2, + [PTS_STAT_INCREASE_NOT_SELF] = sPoints_StatIncreaseNotSelf }; -static const u16 sUnknown_0860A8A4[] = +// Points will always be calculated for these messages +// even if current pokemon does not have corresponding move +static const u16 sSpecialBattleStrings[] = { STRINGID_PKMNPERISHCOUNTFELL, STRINGID_PKMNWISHCAMETRUE, STRINGID_PKMNLOSTPPGRUDGE, STRINGID_PKMNTOOKFOE, STRINGID_PKMNABSORBEDNUTRIENTS, STRINGID_PKMNANCHOREDITSELF, STRINGID_PKMNAFFLICTEDBYCURSE, STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_PKMNLOCKEDINNIGHTMARE, STRINGID_PKMNHURTBY, STRINGID_PKMNHURTBYBURN, STRINGID_PKMNHURTBYPOISON, STRINGID_PKMNHURTBYSPIKES, STRINGID_ATTACKERFAINTED, STRINGID_TARGETFAINTED, - STRINGID_PKMNHITWITHRECOIL, STRINGID_PKMNCRASHED, 0xFFFF + STRINGID_PKMNHITWITHRECOIL, STRINGID_PKMNCRASHED, TABLE_END }; // code @@ -235,9 +570,9 @@ void BattleTv_SetDataBasedOnString(u16 stringId) moveSlot = GetBattlerMoveSlotId(gBattlerAttacker, gBattleMsgDataPtr->currentMove); - if (moveSlot >= 4 && sub_817E0B8(stringId) && stringId > BATTLESTRINGS_ID_ADDER) + if (moveSlot >= MAX_MON_MOVES && IsNotSpecialBattleString(stringId) && stringId > BATTLESTRINGS_ID_ADDER) { - tvPtr->side[atkSide].faintCause = 15; + tvPtr->side[atkSide].faintCause = FNT_OTHER; return; } @@ -252,17 +587,17 @@ void BattleTv_SetDataBasedOnString(u16 stringId) switch (stringId) { case STRINGID_ITDOESNTAFFECT: - AddMovePoints(1, moveSlot, 2, 0); + AddMovePoints(PTS_EFFECTIVENESS, moveSlot, 2, 0); if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) TrySetBattleSeminarShow(); break; case STRINGID_NOTVERYEFFECTIVE: - AddMovePoints(1, moveSlot, 1, 0); + AddMovePoints(PTS_EFFECTIVENESS, moveSlot, 1, 0); if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && GetMonData(defMon, MON_DATA_HP, NULL) != 0) TrySetBattleSeminarShow(); break; case STRINGID_SUPEREFFECTIVE: - AddMovePoints(1, moveSlot, 0, 0); + AddMovePoints(PTS_EFFECTIVENESS, moveSlot, 0, 0); break; case STRINGID_PKMNFORESAWATTACK: tvPtr->side[atkSide].futureSightMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; @@ -279,12 +614,12 @@ void BattleTv_SetDataBasedOnString(u16 stringId) break; case STRINGID_PKMNPERISHCOUNTFELL: if (*perishCount == 0) - tvPtr->side[atkSide].faintCause = 10; + tvPtr->side[atkSide].faintCause = FNT_PERISH_SONG; break; case STRINGID_PKMNWISHCAMETRUE: if (tvPtr->side[defSide].wishMonId != 0) { - AddMovePoints(2, 3, defSide, + AddMovePoints(PTS_SET_UP, 3, defSide, (tvPtr->side[defSide].wishMonId - 1) * 4 + tvPtr->side[defSide].wishMoveSlot); } break; @@ -295,7 +630,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId) case STRINGID_PKMNLOSTPPGRUDGE: if (tvPtr->side[defSide].grudgeMonId != 0) { - AddMovePoints(2, 4, defSide, + AddMovePoints(PTS_SET_UP, 4, defSide, (tvPtr->side[defSide].grudgeMonId - 1) * 4 + tvPtr->side[defSide].grudgeMoveSlot); } break; @@ -305,7 +640,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId) break; case STRINGID_PKMNTOOKFOE: if (tvPtr->side[defSide].destinyBondMonId != 0) - tvPtr->side[atkSide].faintCause = 11; + tvPtr->side[atkSide].faintCause = FNT_DESTINY_BOND; break; case STRINGID_PKMNPLANTEDROOTS: tvPtr->pos[atkSide][atkFlank].ingrainMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; @@ -314,14 +649,14 @@ void BattleTv_SetDataBasedOnString(u16 stringId) case STRINGID_PKMNABSORBEDNUTRIENTS: if (tvPtr->pos[atkSide][atkFlank].ingrainMonId != 0) { - AddMovePoints(2, 6, atkSide, + AddMovePoints(PTS_SET_UP, 6, atkSide, (tvPtr->pos[atkSide][atkFlank].ingrainMonId - 1) * 4 + tvPtr->pos[atkSide][atkFlank].ingrainMoveSlot); } break; case STRINGID_PKMNANCHOREDITSELF: if (tvPtr->pos[defSide][defFlank].ingrainMonId != 0) { - AddMovePoints(2, 6, defSide, + AddMovePoints(PTS_SET_UP, 6, defSide, (tvPtr->pos[defSide][defFlank].ingrainMonId - 1) * 4 + tvPtr->pos[defSide][defFlank].ingrainMoveSlot); } break; @@ -329,44 +664,44 @@ void BattleTv_SetDataBasedOnString(u16 stringId) gBattleStruct->anyMonHasTransformed = TRUE; break; case STRINGID_CRITICALHIT: - AddMovePoints(0x12, moveSlot, 0, 0); + AddMovePoints(PTS_CRITICAL_HIT, moveSlot, 0, 0); break; - case STRINGID_PKMNSSTATCHANGED: + case STRINGID_ATTACKERSSTATROSE: if (gBattleTextBuff1[2] != 0) { if (*statStringId == STRINGID_STATSHARPLY) - AddMovePoints(0x17, moveSlot, gBattleTextBuff1[2] - 1, 0); + AddMovePoints(PTS_STAT_INCREASE_2, moveSlot, gBattleTextBuff1[2] - 1, 0); else - AddMovePoints(0x16, moveSlot, gBattleTextBuff1[2] - 1, 0); + AddMovePoints(PTS_STAT_INCREASE_1, moveSlot, gBattleTextBuff1[2] - 1, 0); } break; - case STRINGID_PKMNSSTATCHANGED2: + case STRINGID_DEFENDERSSTATROSE: if (gBattleTextBuff1[2] != 0) { if (gBattlerAttacker == gBattlerTarget) { if (*statStringId == STRINGID_STATSHARPLY) - AddMovePoints(0x17, moveSlot, gBattleTextBuff1[2] - 1, 0); + AddMovePoints(PTS_STAT_INCREASE_2, moveSlot, gBattleTextBuff1[2] - 1, 0); else - AddMovePoints(0x16, moveSlot, gBattleTextBuff1[2] - 1, 0); + AddMovePoints(PTS_STAT_INCREASE_1, moveSlot, gBattleTextBuff1[2] - 1, 0); } else { - AddMovePoints(0x1B, moveSlot, gBattleTextBuff1[2] - 1, 0); + AddMovePoints(PTS_STAT_INCREASE_NOT_SELF, moveSlot, gBattleTextBuff1[2] - 1, 0); } } break; - case STRINGID_PKMNSSTATCHANGED3: + case STRINGID_ATTACKERSSTATFELL: if (gBattleTextBuff1[2] != 0) - AddMovePoints(0x18, moveSlot, gBattleTextBuff1[2] - 1, 0); + AddMovePoints(PTS_STAT_DECREASE_SELF, moveSlot, gBattleTextBuff1[2] - 1, 0); break; - case STRINGID_PKMNSSTATCHANGED4: + case STRINGID_DEFENDERSSTATFELL: if (gBattleTextBuff1[2] != 0) { if (*statStringId == STRINGID_STATHARSHLY) - AddMovePoints(0x1A, moveSlot, gBattleTextBuff1[2] - 1, 0); + AddMovePoints(PTS_STAT_DECREASE_2, moveSlot, gBattleTextBuff1[2] - 1, 0); else - AddMovePoints(0x19, moveSlot, gBattleTextBuff1[2] - 1, 0); + AddMovePoints(PTS_STAT_DECREASE_1, moveSlot, gBattleTextBuff1[2] - 1, 0); } break; case STRINGID_PKMNLAIDCURSE: @@ -377,8 +712,8 @@ void BattleTv_SetDataBasedOnString(u16 stringId) if (GetMonData(atkMon, MON_DATA_HP, NULL) && tvPtr->pos[atkSide][atkFlank].curseMonId != 0) { - AddMovePoints(8, 0, tvPtr->pos[atkSide][atkFlank].curseMonId - 1, tvPtr->pos[atkSide][atkFlank].curseMoveSlot); - tvPtr->side[atkSide].faintCause = 1; + AddMovePoints(PTS_STATUS_DMG, 0, tvPtr->pos[atkSide][atkFlank].curseMonId - 1, tvPtr->pos[atkSide][atkFlank].curseMoveSlot); + tvPtr->side[atkSide].faintCause = FNT_CURSE; tvPtr->side[atkSide].faintCauseMonId = atkFlank; } break; @@ -389,8 +724,8 @@ void BattleTv_SetDataBasedOnString(u16 stringId) case STRINGID_PKMNSAPPEDBYLEECHSEED: if (tvPtr->pos[atkSide][atkFlank].leechSeedMonId != 0) { - AddMovePoints(8, 1, tvPtr->pos[atkSide][atkFlank].leechSeedMonId - 1, tvPtr->pos[atkSide][atkFlank].leechSeedMoveSlot); - tvPtr->side[atkSide].faintCause = 2; + AddMovePoints(PTS_STATUS_DMG, 1, tvPtr->pos[atkSide][atkFlank].leechSeedMonId - 1, tvPtr->pos[atkSide][atkFlank].leechSeedMoveSlot); + tvPtr->side[atkSide].faintCause = FNT_LEECH_SEED; tvPtr->side[atkSide].faintCauseMonId = atkFlank; } break; @@ -402,8 +737,8 @@ void BattleTv_SetDataBasedOnString(u16 stringId) if (GetMonData(atkMon, MON_DATA_HP, NULL) != 0 && tvPtr->pos[atkSide][atkFlank].nightmareMonId != 0) { - AddMovePoints(8, 5, tvPtr->pos[atkSide][atkFlank].nightmareMonId - 1, tvPtr->pos[atkSide][atkFlank].nightmareMoveSlot); - tvPtr->side[atkSide].faintCause = 5; + AddMovePoints(PTS_STATUS_DMG, 5, tvPtr->pos[atkSide][atkFlank].nightmareMonId - 1, tvPtr->pos[atkSide][atkFlank].nightmareMoveSlot); + tvPtr->side[atkSide].faintCause = FNT_NIGHTMARE; tvPtr->side[atkSide].faintCauseMonId = atkFlank; } break; @@ -419,8 +754,8 @@ void BattleTv_SetDataBasedOnString(u16 stringId) if (GetMonData(atkMon, MON_DATA_HP, NULL) != 0 && tvPtr->pos[atkSide][atkFlank].wrapMonId != 0) { - AddMovePoints(8, 6, tvPtr->pos[atkSide][atkFlank].wrapMonId - 1, tvPtr->pos[atkSide][atkFlank].wrapMoveSlot); - tvPtr->side[atkSide].faintCause = 6; + AddMovePoints(PTS_STATUS_DMG, 6, tvPtr->pos[atkSide][atkFlank].wrapMonId - 1, tvPtr->pos[atkSide][atkFlank].wrapMoveSlot); + tvPtr->side[atkSide].faintCause = FNT_WRAP; tvPtr->side[atkSide].faintCauseMonId = atkFlank; } break; @@ -432,8 +767,8 @@ void BattleTv_SetDataBasedOnString(u16 stringId) if (GetMonData(atkMon, MON_DATA_HP, NULL) != 0) { if (tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].brnMonId != 0) - AddMovePoints(8, 4, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].brnMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].brnMoveSlot); - tvPtr->side[atkSide].faintCause = 4; + AddMovePoints(PTS_STATUS_DMG, 4, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].brnMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].brnMoveSlot); + tvPtr->side[atkSide].faintCause = FNT_BURN; tvPtr->side[atkSide].faintCauseMonId = gBattlerPartyIndexes[gBattlerAttacker]; } break; @@ -449,10 +784,10 @@ void BattleTv_SetDataBasedOnString(u16 stringId) if (GetMonData(atkMon, MON_DATA_HP, NULL) != 0) { if (tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].psnMonId != 0) - AddMovePoints(8, 2, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].psnMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].psnMoveSlot); + AddMovePoints(PTS_STATUS_DMG, 2, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].psnMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].psnMoveSlot); if (tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].badPsnMonId != 0) - AddMovePoints(8, 3, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].badPsnMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].badPsnMoveSlot); - tvPtr->side[atkSide].faintCause = 3; + AddMovePoints(PTS_STATUS_DMG, 3, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].badPsnMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].badPsnMoveSlot); + tvPtr->side[atkSide].faintCause = FNT_POISON; tvPtr->side[atkSide].faintCauseMonId = gBattlerPartyIndexes[gBattlerAttacker]; } break; @@ -462,7 +797,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId) break; case STRINGID_PKMNIMMOBILIZEDBYLOVE: if (tvPtr->pos[atkSide][atkFlank].attractMonId != 0) - AddMovePoints(9, 0, tvPtr->pos[atkSide][atkFlank].attractMonId - 1, tvPtr->pos[atkSide][atkFlank].attractMoveSlot); + AddMovePoints(PTS_STATUS, 0, tvPtr->pos[atkSide][atkFlank].attractMonId - 1, tvPtr->pos[atkSide][atkFlank].attractMoveSlot); break; case STRINGID_PKMNWASPARALYZED: tvPtr->mon[effSide][gBattlerPartyIndexes[gEffectBattler]].prlzMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; @@ -470,7 +805,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId) break; case STRINGID_PKMNISPARALYZED: if (tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].prlzMonId != 0) - AddMovePoints(9, 2, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].prlzMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].prlzMoveSlot); + AddMovePoints(PTS_STATUS, 2, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].prlzMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].prlzMoveSlot); break; case STRINGID_PKMNFELLASLEEP: tvPtr->mon[effSide][gBattlerPartyIndexes[gEffectBattler]].slpMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; @@ -480,7 +815,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId) if (tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].slpMonId != 0 && gBattleMsgDataPtr->currentMove != MOVE_SNORE && gBattleMsgDataPtr->currentMove != MOVE_SLEEP_TALK) - AddMovePoints(9, 3, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].slpMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].slpMoveSlot); + AddMovePoints(PTS_STATUS, 3, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].slpMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].slpMoveSlot); break; case STRINGID_PKMNWASFROZEN: tvPtr->mon[effSide][gBattlerPartyIndexes[gEffectBattler]].frzMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; @@ -488,7 +823,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId) break; case STRINGID_PKMNISFROZEN: if (tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].frzMonId != 0) - AddMovePoints(9, 4, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].frzMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].frzMoveSlot); + AddMovePoints(PTS_STATUS, 4, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].frzMonId - 1, tvPtr->mon[atkSide][gBattlerPartyIndexes[gBattlerAttacker]].frzMoveSlot); break; case STRINGID_PKMNWASCONFUSED: tvPtr->pos[effSide][effFlank].confusionMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; @@ -496,8 +831,8 @@ void BattleTv_SetDataBasedOnString(u16 stringId) break; case STRINGID_ITHURTCONFUSION: if (tvPtr->pos[atkSide][atkFlank].confusionMonId != 0) - AddMovePoints(9, 1, tvPtr->pos[atkSide][atkFlank].confusionMonId - 1, tvPtr->pos[atkSide][atkFlank].confusionMoveSlot); - tvPtr->side[atkSide].faintCause = 12; + AddMovePoints(PTS_STATUS, 1, tvPtr->pos[atkSide][atkFlank].confusionMonId - 1, tvPtr->pos[atkSide][atkFlank].confusionMoveSlot); + tvPtr->side[atkSide].faintCause = FNT_CONFUSION; break; case STRINGID_SPIKESSCATTERED: tvPtr->side[defSide].spikesMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; @@ -506,8 +841,8 @@ void BattleTv_SetDataBasedOnString(u16 stringId) case STRINGID_PKMNHURTBYSPIKES: if (tvPtr->side[scriptingSide].spikesMonId != 0) { - AddMovePoints(10, scriptingSide ^ BIT_SIDE, tvPtr->side[scriptingSide].spikesMonId - 1, tvPtr->side[scriptingSide].spikesMoveSlot); - tvPtr->side[scriptingSide].faintCause = 7; + AddMovePoints(PTS_SPIKES, scriptingSide ^ BIT_SIDE, tvPtr->side[scriptingSide].spikesMonId - 1, tvPtr->side[scriptingSide].spikesMoveSlot); + tvPtr->side[scriptingSide].faintCause = FNT_SPIKES; } break; case STRINGID_PKMNBLEWAWAYSPIKES: @@ -582,7 +917,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId) break; case STRINGID_PKMNUSEDSAFEGUARD: if (tvPtr->side[defSide].safeguardMonId != 0) - AddMovePoints(15, 0, tvPtr->side[defSide].safeguardMonId - 1, tvPtr->side[defSide].safeguardMoveSlot); + AddMovePoints(PTS_SAFEGUARD, 0, tvPtr->side[defSide].safeguardMonId - 1, tvPtr->side[defSide].safeguardMoveSlot); break; case STRINGID_PKMNSAFEGUARDEXPIRED: tvPtr->side[atkSide].safeguardMonId = 0; @@ -594,40 +929,40 @@ void BattleTv_SetDataBasedOnString(u16 stringId) break; case STRINGID_PKMNPROTECTEDBYMIST: if (tvPtr->side[defSide].mistMonId != 0) - AddMovePoints(16, 0, tvPtr->side[defSide].mistMonId - 1, tvPtr->side[defSide].mistMoveSlot); + AddMovePoints(PTS_MIST, 0, tvPtr->side[defSide].mistMonId - 1, tvPtr->side[defSide].mistMoveSlot); break; case STRINGID_THEWALLSHATTERED: tvPtr->side[defSide].reflectMonId = 0; tvPtr->side[defSide].reflectMoveSlot = 0; tvPtr->side[defSide].lightScreenMonId = 0; tvPtr->side[defSide].lightScreenMoveSlot = 0; - AddMovePoints(17, 0, gBattlerPartyIndexes[gBattlerAttacker], moveSlot); + AddMovePoints(PTS_BREAK_WALL, 0, gBattlerPartyIndexes[gBattlerAttacker], moveSlot); break; case STRINGID_PKMNFLINCHED: if (tvPtr->pos[atkSide][0].attackedByMonId != 0) - AddMovePoints(21, 0, tvPtr->pos[atkSide][0].attackedByMonId - 1, tvPtr->pos[atkSide][0].attackedByMoveSlot); + AddMovePoints(PTS_FLINCHED, 0, tvPtr->pos[atkSide][0].attackedByMonId - 1, tvPtr->pos[atkSide][0].attackedByMoveSlot); if (tvPtr->pos[atkSide][1].attackedByMonId != 0) - AddMovePoints(21, 0, tvPtr->pos[atkSide][1].attackedByMonId - 1, tvPtr->pos[atkSide][1].attackedByMoveSlot); + AddMovePoints(PTS_FLINCHED, 0, tvPtr->pos[atkSide][1].attackedByMonId - 1, tvPtr->pos[atkSide][1].attackedByMoveSlot); break; case STRINGID_PKMNCRASHED: case STRINGID_PKMNHITWITHRECOIL: - tvPtr->side[atkSide].faintCause = 14; + tvPtr->side[atkSide].faintCause = FNT_RECOIL; break; } } -static bool8 sub_817E0B8(u16 stringId) +static bool8 IsNotSpecialBattleString(u16 stringId) { s32 i = 0; do { - if (sUnknown_0860A8A4[i] == stringId) + if (sSpecialBattleStrings[i] == stringId) break; i++; - } while (sUnknown_0860A8A4[i] != 0xFFFF); + } while (sSpecialBattleStrings[i] != TABLE_END); - if (sUnknown_0860A8A4[i] == 0xFFFF) + if (sSpecialBattleStrings[i] == TABLE_END) return TRUE; else return FALSE; @@ -648,19 +983,19 @@ void BattleTv_SetDataBasedOnMove(u16 move, u16 weatherFlags, struct DisableStruc defSide = GetBattlerSide(gBattlerTarget); moveSlot = GetBattlerMoveSlotId(gBattlerAttacker, move); - if (moveSlot >= 4) + if (moveSlot >= MAX_MON_MOVES) { - tvPtr->side[atkSide].faintCause = 15; + tvPtr->side[atkSide].faintCause = FNT_OTHER; return; } tvPtr->pos[defSide][GetBattlerPosition(gBattlerAttacker) / 2].attackedByMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; tvPtr->pos[defSide][GetBattlerPosition(gBattlerAttacker) / 2].attackedByMoveSlot = moveSlot; tvPtr->side[atkSide].usedMoveSlot = moveSlot; - AddMovePoints(0, moveSlot, gBattleMoves[move].effect, 0); + AddMovePoints(PTS_MOVE_EFFECT, moveSlot, gBattleMoves[move].effect, 0); AddPointsBasedOnWeather(weatherFlags, move, moveSlot); if (disableStructPtr->chargeTimer != 0) - AddMovePoints(7, move, moveSlot, 0); + AddMovePoints(PTS_ELECTRIC, move, moveSlot, 0); if (move == MOVE_WISH) { @@ -671,14 +1006,14 @@ void BattleTv_SetDataBasedOnMove(u16 move, u16 weatherFlags, struct DisableStruc { tvPtr->side[atkSide ^ BIT_SIDE].explosionMonId = gBattlerPartyIndexes[gBattlerAttacker] + 1; tvPtr->side[atkSide ^ BIT_SIDE].explosionMoveSlot = moveSlot; - tvPtr->side[atkSide ^ BIT_SIDE].faintCause = 13; - tvPtr->side[atkSide ^ BIT_SIDE].explosion = 1; + tvPtr->side[atkSide ^ BIT_SIDE].faintCause = FNT_EXPLOSION; + tvPtr->side[atkSide ^ BIT_SIDE].explosion = TRUE; } - AddMovePoints(13, gBattleMoves[move].type, gBattleMoves[move].power, 0); - AddMovePoints(14, gBattleMoves[move].type, gBattleMoves[move].power, 0); - AddMovePoints(11, gBattleMoves[move].type, 0, 0); - AddMovePoints(12, gBattleMoves[move].type, 0, 0); + AddMovePoints(PTS_REFLECT, move, gBattleMoves[move].power, 0); + AddMovePoints(PTS_LIGHT_SCREEN, move, gBattleMoves[move].power, 0); + AddMovePoints(PTS_WATER_SPORT, move, 0, 0); + AddMovePoints(PTS_MUD_SPORT, move, 0, 0); } void BattleTv_SetDataBasedOnAnimation(u8 animationId) @@ -696,17 +1031,17 @@ void BattleTv_SetDataBasedOnAnimation(u8 animationId) case B_ANIM_FUTURE_SIGHT_HIT: if (tvPtr->side[atkSide].futureSightMonId != 0) { - AddMovePoints(2, 0, atkSide, + AddMovePoints(PTS_SET_UP, 0, atkSide, (tvPtr->side[atkSide].futureSightMonId - 1) * 4 + tvPtr->side[atkSide].futureSightMoveSlot); - tvPtr->side[atkSide].faintCause = 8; + tvPtr->side[atkSide].faintCause = FNT_FUTURE_SIGHT; } break; case B_ANIM_DOOM_DESIRE_HIT: if (tvPtr->side[atkSide].doomDesireMonId != 0) { - AddMovePoints(2, 1, atkSide, + AddMovePoints(PTS_SET_UP, 1, atkSide, (tvPtr->side[atkSide].doomDesireMonId - 1) * 4 + tvPtr->side[atkSide].doomDesireMoveSlot); - tvPtr->side[atkSide].faintCause = 9; + tvPtr->side[atkSide].faintCause = FNT_DOOM_DESIRE; } break; } @@ -819,49 +1154,67 @@ static void AddMovePoints(u8 caseId, u16 arg1, u8 arg2, u8 arg3) switch (caseId) { - case 0: - case 1: - case 18: - case 22 ... 27: + case PTS_MOVE_EFFECT: + case PTS_EFFECTIVENESS: + case PTS_CRITICAL_HIT: + case PTS_STAT_INCREASE_1: + case PTS_STAT_INCREASE_2: + case PTS_STAT_DECREASE_SELF: + case PTS_STAT_DECREASE_1: + case PTS_STAT_DECREASE_2: + case PTS_STAT_INCREASE_NOT_SELF: movePoints->points[atkSide][gBattlerPartyIndexes[gBattlerAttacker] * 4 + arg1] += sPointsArray[caseId][arg2]; break; - case 3 ... 7: + +#define move arg1 + case PTS_RAIN: + case PTS_SUN: + case PTS_SANDSTORM: + case PTS_HAIL: + case PTS_ELECTRIC: i = 0; ptr = sPointsArray[caseId]; do { - if (arg1 == ptr[i]) + if (move == ptr[i]) { movePoints->points[atkSide][gBattlerPartyIndexes[gBattlerAttacker] * 4 + arg2] += ptr[i+1]; break; } i += 2; - } while (ptr[i] != 0xFFFF); + } while (ptr[i] != TABLE_END); break; - case 19: - tvPtr->side[arg2 ^ 1].faintCause = 0; +#undef move + + case PTS_FAINT: + tvPtr->side[arg2 ^ 1].faintCause = FNT_NONE; movePoints->points[arg2][0 * 4 + arg3] += sPointsArray[caseId][arg1]; break; - case 20: - tvPtr->side[arg2].faintCause = 0; - case 2: + case PTS_FAINT_SET_UP: + tvPtr->side[arg2].faintCause = FNT_NONE; + // fallthrough + case PTS_SET_UP: movePoints->points[arg2][0 * 4 + arg3] += sPointsArray[caseId][arg1]; break; - case 17: + case PTS_BREAK_WALL: movePoints->points[atkSide][arg2 * 4 + arg3] += sPointsArray[caseId][arg1]; break; - case 8: - case 9: - case 15: - case 16: - case 21: + case PTS_STATUS_DMG: + case PTS_STATUS: + case PTS_SAFEGUARD: + case PTS_MIST: + case PTS_FLINCHED: movePoints->points[atkSide ^ BIT_SIDE][arg2 * 4 + arg3] += sPointsArray[caseId][arg1]; break; - case 10: + case PTS_SPIKES: movePoints->points[arg1][arg2 * 4 + arg3] += sPointsArray[caseId][0]; break; - case 11: - if (tvPtr->pos[defSide][0].waterSportMonId != -(tvPtr->pos[defSide][1].waterSportMonId) && arg1 == 10) + +#define move arg1 +#define power arg2 + case PTS_WATER_SPORT: + // If used fire move during Water Sport + if (tvPtr->pos[defSide][0].waterSportMonId != -(tvPtr->pos[defSide][1].waterSportMonId) && gBattleMoves[move].type == TYPE_FIRE) { if (tvPtr->pos[defSide][0].waterSportMonId != 0) { @@ -875,8 +1228,9 @@ static void AddMovePoints(u8 caseId, u16 arg1, u8 arg2, u8 arg3) } } break; - case 12: - if (tvPtr->pos[defSide][0].mudSportMonId != -(tvPtr->pos[defSide][1].mudSportMonId) && arg1 == 13) + case PTS_MUD_SPORT: + // If used Electric move during Mud Sport + if (tvPtr->pos[defSide][0].mudSportMonId != -(tvPtr->pos[defSide][1].mudSportMonId) && gBattleMoves[move].type == TYPE_ELECTRIC) { if (tvPtr->pos[defSide][0].mudSportMonId != 0) { @@ -890,20 +1244,24 @@ static void AddMovePoints(u8 caseId, u16 arg1, u8 arg2, u8 arg3) } } break; - case 13: - if (arg1 <= 8 && arg2 != 0 && tvPtr->side[defSide].reflectMonId != 0) + case PTS_REFLECT: + // If hit Reflect with damaging physical move + if (IS_MOVE_PHYSICAL(move) && power != 0 && tvPtr->side[defSide].reflectMonId != 0) { u32 id = (tvPtr->side[defSide].reflectMonId - 1) * 4; movePoints->points[defSide][id + tvPtr->side[defSide].reflectMoveSlot] += sPointsArray[caseId][0]; } break; - case 14: - if (arg1 > 8 && arg2 != 0 && tvPtr->side[defSide].lightScreenMonId != 0) + case PTS_LIGHT_SCREEN: + // If hit Light Screen with damaging special move + if (IS_MOVE_SPECIAL(move) && power != 0 && tvPtr->side[defSide].lightScreenMonId != 0) { u32 id = (tvPtr->side[defSide].lightScreenMonId - 1) * 4; movePoints->points[defSide][id + tvPtr->side[defSide].lightScreenMoveSlot] += sPointsArray[caseId][0]; } break; +#undef move +#undef power } } @@ -915,144 +1273,144 @@ static void AddPointsOnFainting(bool8 targetFainted) u32 atkArrId = tvPtr->side[atkSide].faintCauseMonId; s32 i; - if (tvPtr->side[atkSide].faintCause != 0) + if (tvPtr->side[atkSide].faintCause != FNT_NONE) { switch (tvPtr->side[atkSide].faintCause) { - case 1: + case FNT_CURSE: if (tvPtr->pos[atkSide][atkArrId].curseMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->pos[atkSide][atkArrId].curseMonId - 1) * 4 + tvPtr->pos[atkSide][atkArrId].curseMoveSlot); } break; - case 2: + case FNT_LEECH_SEED: if (tvPtr->pos[atkSide][atkArrId].leechSeedMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->pos[atkSide][atkArrId].leechSeedMonId - 1) * 4 + tvPtr->pos[atkSide][atkArrId].leechSeedMoveSlot); } break; - case 3: + case FNT_POISON: if (tvPtr->mon[atkSide][atkArrId].psnMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->mon[atkSide][atkArrId].psnMonId - 1) * 4 + tvPtr->mon[atkSide][atkArrId].psnMoveSlot); } if (tvPtr->mon[atkSide][atkArrId].badPsnMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->mon[atkSide][atkArrId].badPsnMonId - 1) * 4 + tvPtr->mon[atkSide][atkArrId].badPsnMoveSlot); } break; - case 4: + case FNT_BURN: if (tvPtr->mon[atkSide][atkArrId].brnMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->mon[atkSide][atkArrId].brnMonId - 1) * 4 + tvPtr->mon[atkSide][atkArrId].brnMoveSlot); } break; - case 5: + case FNT_NIGHTMARE: if (tvPtr->pos[atkSide][atkArrId].nightmareMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->pos[atkSide][atkArrId].nightmareMonId - 1) * 4 + tvPtr->pos[atkSide][atkArrId].nightmareMoveSlot); } break; - case 6: + case FNT_WRAP: if (tvPtr->pos[atkSide][atkArrId].wrapMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->pos[atkSide][atkArrId].wrapMonId - 1) * 4 + tvPtr->pos[atkSide][atkArrId].wrapMoveSlot); } break; - case 7: + case FNT_SPIKES: if (tvPtr->side[atkSide].spikesMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->side[atkSide].spikesMonId - 1) * 4 + tvPtr->side[atkSide].spikesMoveSlot); } break; - case 8: + case FNT_FUTURE_SIGHT: if (tvPtr->side[atkSide].futureSightMonId != 0) { - AddMovePoints(20, 0, atkSide, + AddMovePoints(PTS_FAINT_SET_UP, 0, atkSide, (tvPtr->side[atkSide].futureSightMonId - 1) * 4 + tvPtr->side[atkSide].futureSightMoveSlot); } break; - case 9: + case FNT_DOOM_DESIRE: if (tvPtr->side[atkSide].doomDesireMonId != 0) { - AddMovePoints(20, 0, atkSide, + AddMovePoints(PTS_FAINT_SET_UP, 0, atkSide, (tvPtr->side[atkSide].doomDesireMonId - 1) * 4 + tvPtr->side[atkSide].doomDesireMoveSlot); } break; - case 10: + case FNT_PERISH_SONG: if (tvPtr->side[atkSide].perishSong && tvPtr->side[atkSide].perishSongMonId - 1 != gBattlerPartyIndexes[gBattlerAttacker]) { - AddMovePoints(19, 0, atkSide, + AddMovePoints(PTS_FAINT, 0, atkSide, (tvPtr->side[atkSide].perishSongMonId - 1) * 4 + tvPtr->side[atkSide].perishSongMoveSlot); } if (tvPtr->side[atkSide ^ BIT_SIDE].perishSong) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->side[atkSide ^ BIT_SIDE].perishSongMonId - 1) * 4 + tvPtr->side[atkSide ^ BIT_SIDE].perishSongMoveSlot); } break; - case 11: + case FNT_DESTINY_BOND: if (tvPtr->side[atkSide ^ BIT_SIDE].destinyBondMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->side[atkSide ^ BIT_SIDE].destinyBondMonId - 1) * 4 + tvPtr->side[atkSide ^ BIT_SIDE].destinyBondMoveSlot); } break; - case 12: + case FNT_CONFUSION: for (i = 0; i < 2; i++) { if (tvPtr->pos[atkSide][i].confusionMonId != 0) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->pos[atkSide][i].confusionMonId - 1) * 4 + tvPtr->pos[atkSide][i].confusionMoveSlot); } } break; - case 13: + case FNT_EXPLOSION: if (tvPtr->side[atkSide].explosion) { - AddMovePoints(19, 0, atkSide, + AddMovePoints(PTS_FAINT, 0, atkSide, (tvPtr->side[atkSide].explosionMonId - 1) * 4 + tvPtr->side[atkSide].explosionMoveSlot); } if (tvPtr->side[atkSide ^ BIT_SIDE].explosion) { - AddMovePoints(19, 0, atkSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, atkSide ^ BIT_SIDE, (tvPtr->side[atkSide ^ BIT_SIDE].explosionMonId - 1) * 4 + tvPtr->side[atkSide ^ BIT_SIDE].explosionMoveSlot); } break; - case 14: + case FNT_RECOIL: if (targetFainted == TRUE) { - AddMovePoints(20, 0, atkSide, + AddMovePoints(PTS_FAINT_SET_UP, 0, atkSide, (gBattlerPartyIndexes[gBattlerAttacker]) * 4 + tvPtr->side[atkSide].usedMoveSlot); } break; - case 15: + case FNT_OTHER: break; } } else { - if (tvPtr->side[defSide].faintCause == 7) + if (tvPtr->side[defSide].faintCause == FNT_SPIKES) { if (tvPtr->side[defSide].spikesMonId != 0) { - AddMovePoints(19, 0, defSide ^ BIT_SIDE, + AddMovePoints(PTS_FAINT, 0, defSide ^ BIT_SIDE, (tvPtr->side[defSide].spikesMonId - 1) * 4 + tvPtr->side[defSide].spikesMoveSlot); } } else { - AddMovePoints(20, 0, atkSide, + AddMovePoints(PTS_FAINT_SET_UP, 0, atkSide, (gBattlerPartyIndexes[gBattlerAttacker]) * 4 + tvPtr->side[atkSide].usedMoveSlot); } } @@ -1061,11 +1419,11 @@ static void AddPointsOnFainting(bool8 targetFainted) static void TrySetBattleSeminarShow(void) { s32 i; - s32 dmgByMove[4]; + s32 dmgByMove[MAX_MON_MOVES]; u16 powerOverride; u16 currMoveSaved; - if (gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) return; else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) return; @@ -1087,9 +1445,9 @@ static void TrySetBattleSeminarShow(void) if (currMoveSaved == sVariableDmgMoves[i]) break; i++; - } while (sVariableDmgMoves[i] != 0xFFFF); + } while (sVariableDmgMoves[i] != TABLE_END); - if (sVariableDmgMoves[i] != 0xFFFF) + if (sVariableDmgMoves[i] != TABLE_END) return; dmgByMove[gMoveSelectionCursor[gBattlerAttacker]] = gBattleMoveDamage; @@ -1127,7 +1485,7 @@ static void TrySetBattleSeminarShow(void) opponentSpecies = GetMonData(&gEnemyParty [gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES, NULL); playerSpecies = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]], MON_DATA_SPECIES, NULL); - sub_80EE35C(opponentSpecies, playerSpecies, gMoveSelectionCursor[gBattlerAttacker], gBattleMons[gBattlerAttacker].moves, gBattleMons[gBattlerAttacker].moves[bestMoveId]); + TryPutBattleSeminarOnAir(opponentSpecies, playerSpecies, gMoveSelectionCursor[gBattlerAttacker], gBattleMons[gBattlerAttacker].moves, gBattleMons[gBattlerAttacker].moves[bestMoveId]); break; } } @@ -1151,9 +1509,9 @@ static bool8 ShouldCalculateDamage(u16 moveId, s32 *dmg, u16 *powerOverride) if (moveId == sVariableDmgMoves[i]) break; i++; - } while (sVariableDmgMoves[i] != 0xFFFF); + } while (sVariableDmgMoves[i] != TABLE_END); - if (sVariableDmgMoves[i] != 0xFFFF) + if (sVariableDmgMoves[i] != TABLE_END) { *dmg = 0; return FALSE; @@ -1182,8 +1540,8 @@ void BattleTv_ClearExplosionFaintCause(void) { struct BattleTv *tvPtr = &gBattleStruct->tv; - tvPtr->side[B_SIDE_PLAYER].faintCause = 0; - tvPtr->side[B_SIDE_OPPONENT].faintCause = 0; + tvPtr->side[B_SIDE_PLAYER].faintCause = FNT_NONE; + tvPtr->side[B_SIDE_OPPONENT].faintCause = FNT_NONE; tvPtr->side[B_SIDE_PLAYER].faintCauseMonId = 0; tvPtr->side[B_SIDE_OPPONENT].faintCauseMonId = 0; @@ -1194,8 +1552,8 @@ void BattleTv_ClearExplosionFaintCause(void) tvPtr->side[B_SIDE_PLAYER].explosionMoveSlot = 0; tvPtr->side[B_SIDE_OPPONENT].explosionMoveSlot = 0; - tvPtr->side[B_SIDE_PLAYER].explosion = 0; - tvPtr->side[B_SIDE_OPPONENT].explosion = 0; + tvPtr->side[B_SIDE_PLAYER].explosion = FALSE; + tvPtr->side[B_SIDE_OPPONENT].explosion = FALSE; } } @@ -1225,11 +1583,11 @@ u8 GetBattlerMoveSlotId(u8 battlerId, u16 moveId) static void AddPointsBasedOnWeather(u16 weatherFlags, u16 moveId, u8 moveSlot) { if (weatherFlags & WEATHER_RAIN_ANY) - AddMovePoints(3, moveId, moveSlot, 0); + AddMovePoints(PTS_RAIN, moveId, moveSlot, 0); else if (weatherFlags & WEATHER_SUN_ANY) - AddMovePoints(4, moveId, moveSlot, 0); + AddMovePoints(PTS_SUN, moveId, moveSlot, 0); else if (weatherFlags & WEATHER_SANDSTORM_ANY) - AddMovePoints(5, moveId, moveSlot, 0); + AddMovePoints(PTS_SANDSTORM, moveId, moveSlot, 0); else if (weatherFlags & WEATHER_HAIL_ANY) - AddMovePoints(6, moveId, moveSlot, 0); + AddMovePoints(PTS_HAIL, moveId, moveSlot, 0); } diff --git a/src/battle_util.c b/src/battle_util.c index 18a5c128c3..9d57e06976 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -23,7 +23,8 @@ #include "trig.h" #include "window.h" #include "battle_message.h" -#include "battle_ai_script_commands.h" +#include "battle_ai_main.h" +#include "battle_ai_util.h" #include "event_data.h" #include "link.h" #include "malloc.h" @@ -37,7 +38,6 @@ #include "constants/battle_move_effects.h" #include "constants/battle_script_commands.h" #include "constants/battle_string_ids.h" -#include "constants/berry.h" #include "constants/hold_effects.h" #include "constants/items.h" #include "constants/moves.h" @@ -46,6 +46,8 @@ #include "constants/trainers.h" #include "constants/weather.h" +extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; + /* NOTE: The data and functions in this file up until (but not including) sSoundMovesTable are actually part of battle_main.c. They needed to be moved to this file in order to @@ -53,16 +55,184 @@ match the ROM; this is also why sSoundMovesTable's declaration is in the middle functions instead of at the top of the file with the other declarations. */ +static bool32 TryRemoveScreens(u8 battler); +static bool32 IsUnnerveAbilityOnOpposingSide(u8 battlerId); + extern const u8 *const gBattleScriptsForMoveEffects[]; extern const u8 *const gBattlescriptsForBallThrow[]; extern const u8 *const gBattlescriptsForRunningByItem[]; extern const u8 *const gBattlescriptsForUsingItem[]; extern const u8 *const gBattlescriptsForSafariActions[]; -static const u8 sPkblToEscapeFactor[][3] = {{0, 0, 0}, {3, 5, 0}, {2, 3, 0}, {1, 2, 0}, {1, 1, 0}}; +static const u8 sPkblToEscapeFactor[][3] = { + { + [B_MSG_MON_CURIOUS] = 0, + [B_MSG_MON_ENTHRALLED] = 0, + [B_MSG_MON_IGNORED] = 0 + },{ + [B_MSG_MON_CURIOUS] = 3, + [B_MSG_MON_ENTHRALLED] = 5, + [B_MSG_MON_IGNORED] = 0 + },{ + [B_MSG_MON_CURIOUS] = 2, + [B_MSG_MON_ENTHRALLED] = 3, + [B_MSG_MON_IGNORED] = 0 + },{ + [B_MSG_MON_CURIOUS] = 1, + [B_MSG_MON_ENTHRALLED] = 2, + [B_MSG_MON_IGNORED] = 0 + },{ + [B_MSG_MON_CURIOUS] = 1, + [B_MSG_MON_ENTHRALLED] = 1, + [B_MSG_MON_IGNORED] = 0 + } +}; static const u8 sGoNearCounterToCatchFactor[] = {4, 3, 2, 1}; static const u8 sGoNearCounterToEscapeFactor[] = {4, 4, 4, 4}; +static const u16 sSkillSwapBannedAbilities[] = +{ + ABILITY_WONDER_GUARD, + ABILITY_MULTITYPE, + ABILITY_ILLUSION, + ABILITY_STANCE_CHANGE, + ABILITY_SCHOOLING, + ABILITY_COMATOSE, + ABILITY_SHIELDS_DOWN, + ABILITY_DISGUISE, + ABILITY_RKS_SYSTEM, + ABILITY_BATTLE_BOND, + ABILITY_POWER_CONSTRUCT, + ABILITY_NEUTRALIZING_GAS, + ABILITY_ICE_FACE, + ABILITY_HUNGER_SWITCH, + ABILITY_GULP_MISSILE, +}; + +static const u16 sRolePlayBannedAbilities[] = +{ + ABILITY_TRACE, + ABILITY_WONDER_GUARD, + ABILITY_FORECAST, + ABILITY_FLOWER_GIFT, + ABILITY_MULTITYPE, + ABILITY_ILLUSION, + ABILITY_ZEN_MODE, + ABILITY_IMPOSTER, + ABILITY_STANCE_CHANGE, + ABILITY_POWER_OF_ALCHEMY, + ABILITY_RECEIVER, + ABILITY_SCHOOLING, + ABILITY_COMATOSE, + ABILITY_SHIELDS_DOWN, + ABILITY_DISGUISE, + ABILITY_RKS_SYSTEM, + ABILITY_BATTLE_BOND, + ABILITY_POWER_CONSTRUCT, + ABILITY_ICE_FACE, + ABILITY_HUNGER_SWITCH, + ABILITY_GULP_MISSILE, +}; + +static const u16 sRolePlayBannedAttackerAbilities[] = +{ + ABILITY_MULTITYPE, + ABILITY_ZEN_MODE, + ABILITY_STANCE_CHANGE, + ABILITY_SCHOOLING, + ABILITY_COMATOSE, + ABILITY_SHIELDS_DOWN, + ABILITY_DISGUISE, + ABILITY_RKS_SYSTEM, + ABILITY_BATTLE_BOND, + ABILITY_POWER_CONSTRUCT, + ABILITY_ICE_FACE, + ABILITY_GULP_MISSILE, +}; + +static const u16 sWorrySeedBannedAbilities[] = +{ + ABILITY_MULTITYPE, + ABILITY_STANCE_CHANGE, + ABILITY_SCHOOLING, + ABILITY_COMATOSE, + ABILITY_SHIELDS_DOWN, + ABILITY_DISGUISE, + ABILITY_RKS_SYSTEM, + ABILITY_BATTLE_BOND, + ABILITY_POWER_CONSTRUCT, + ABILITY_TRUANT, + ABILITY_ICE_FACE, + ABILITY_GULP_MISSILE, +}; + +static const u16 sGastroAcidBannedAbilities[] = +{ + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, + ABILITY_BATTLE_BOND, + ABILITY_COMATOSE, + ABILITY_DISGUISE, + ABILITY_GULP_MISSILE, + ABILITY_ICE_FACE, + ABILITY_MULTITYPE, + ABILITY_POWER_CONSTRUCT, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_STANCE_CHANGE, + ABILITY_ZEN_MODE, +}; + +static const u16 sEntrainmentBannedAttackerAbilities[] = +{ + ABILITY_TRACE, + ABILITY_FORECAST, + ABILITY_FLOWER_GIFT, + ABILITY_ZEN_MODE, + ABILITY_ILLUSION, + ABILITY_IMPOSTER, + ABILITY_POWER_OF_ALCHEMY, + ABILITY_RECEIVER, + ABILITY_DISGUISE, + ABILITY_POWER_CONSTRUCT, + ABILITY_NEUTRALIZING_GAS, + ABILITY_ICE_FACE, + ABILITY_HUNGER_SWITCH, + ABILITY_GULP_MISSILE, +}; + +static const u16 sEntrainmentTargetSimpleBeamBannedAbilities[] = +{ + ABILITY_TRUANT, + ABILITY_MULTITYPE, + ABILITY_STANCE_CHANGE, + ABILITY_SCHOOLING, + ABILITY_COMATOSE, + ABILITY_SHIELDS_DOWN, + ABILITY_DISGUISE, + ABILITY_RKS_SYSTEM, + ABILITY_BATTLE_BOND, + ABILITY_ICE_FACE, + ABILITY_GULP_MISSILE, +}; + +bool32 IsAffectedByFollowMe(u32 battlerAtk, u32 defSide) +{ + u32 ability = GetBattlerAbility(battlerAtk); + + if (gSideTimers[defSide].followmeTimer == 0 + || gBattleMons[gSideTimers[defSide].followmeTarget].hp == 0 + || ability == ABILITY_PROPELLER_TAIL || ability == ABILITY_STALWART) + return FALSE; + + if (gSideTimers[defSide].followmePowder && !IsAffectedByPowder(battlerAtk, ability, GetBattlerHoldEffect(battlerAtk, TRUE))) + return FALSE; + + return TRUE; +} + +// Functions void HandleAction_UseMove(void) { u32 i, side, moveType, var = 4; @@ -96,7 +266,7 @@ void HandleAction_UseMove(void) } // encore forces you to use the same move else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBattlerAttacker].encoredMove == gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos]) + && gDisableStructs[gBattlerAttacker].encoredMove == gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos]) { gCurrentMove = gChosenMove = gDisableStructs[gBattlerAttacker].encoredMove; gCurrMovePos = gChosenMovePos = gDisableStructs[gBattlerAttacker].encoredMovePos; @@ -104,7 +274,7 @@ void HandleAction_UseMove(void) } // check if the encored move wasn't overwritten else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBattlerAttacker].encoredMove != gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos]) + && gDisableStructs[gBattlerAttacker].encoredMove != gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos]) { gCurrMovePos = gChosenMovePos = gDisableStructs[gBattlerAttacker].encoredMovePos; gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; @@ -137,22 +307,17 @@ void HandleAction_UseMove(void) // choose target side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; - if (gSideTimers[side].followmeTimer != 0 + if (IsAffectedByFollowMe(gBattlerAttacker, side) && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED - && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) - && gBattleMons[gSideTimers[side].followmeTarget].hp != 0 - && (GetBattlerAbility(gBattlerAttacker) != ABILITY_PROPELLER_TAIL - || GetBattlerAbility(gBattlerAttacker) != ABILITY_STALWART)) + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)) { gBattlerTarget = gSideTimers[side].followmeTarget; } else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - && gSideTimers[side].followmeTimer == 0 - && (gBattleMoves[gCurrentMove].power != 0 || gBattleMoves[gCurrentMove].target != MOVE_TARGET_USER) - && ((gBattleMons[*(gBattleStruct->moveTarget + gBattlerAttacker)].ability != ABILITY_LIGHTNING_ROD && moveType == TYPE_ELECTRIC) - || (gBattleMons[*(gBattleStruct->moveTarget + gBattlerAttacker)].ability != ABILITY_STORM_DRAIN && moveType == TYPE_WATER) - ) - ) + && gSideTimers[side].followmeTimer == 0 + && (gBattleMoves[gCurrentMove].power != 0 || gBattleMoves[gCurrentMove].target != MOVE_TARGET_USER) + && ((gBattleMons[*(gBattleStruct->moveTarget + gBattlerAttacker)].ability != ABILITY_LIGHTNING_ROD && moveType == TYPE_ELECTRIC) + || (gBattleMons[*(gBattleStruct->moveTarget + gBattlerAttacker)].ability != ABILITY_STORM_DRAIN && moveType == TYPE_WATER))) { side = GetBattlerSide(gBattlerAttacker); for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) @@ -160,10 +325,10 @@ void HandleAction_UseMove(void) if (side != GetBattlerSide(gActiveBattler) && *(gBattleStruct->moveTarget + gBattlerAttacker) != gActiveBattler && ((GetBattlerAbility(gActiveBattler) == ABILITY_LIGHTNING_ROD && moveType == TYPE_ELECTRIC) - || (GetBattlerAbility(gActiveBattler) == ABILITY_STORM_DRAIN && moveType == TYPE_WATER)) + || (GetBattlerAbility(gActiveBattler) == ABILITY_STORM_DRAIN && moveType == TYPE_WATER)) && GetBattlerTurnOrderNum(gActiveBattler) < var && (GetBattlerAbility(gBattlerAttacker) != ABILITY_PROPELLER_TAIL - || GetBattlerAbility(gBattlerAttacker) != ABILITY_STALWART)) + || GetBattlerAbility(gBattlerAttacker) != ABILITY_STALWART)) { var = GetBattlerTurnOrderNum(gActiveBattler); } @@ -228,7 +393,7 @@ void HandleAction_UseMove(void) } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) + && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { @@ -259,7 +424,7 @@ void HandleAction_UseMove(void) gBattlerTarget = gBattlerAttacker; } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattleMoves[gChosenMove].target == MOVE_TARGET_FOES_AND_ALLY) + && gBattleMoves[gChosenMove].target == MOVE_TARGET_FOES_AND_ALLY) { for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { @@ -287,10 +452,9 @@ void HandleAction_UseMove(void) } } - // Choose battlescript. - if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gProtectStructs[gBattlerAttacker].palaceUnableToUseMove) + if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gProtectStructs[gBattlerAttacker].palaceUnableToUseMove) { + // Battle Palace, select battle script for failure to use move if (gBattleMons[gBattlerAttacker].hp == 0) { gCurrentActionFuncId = B_ACTION_FINISHED; @@ -298,13 +462,13 @@ void HandleAction_UseMove(void) } else if (gPalaceSelectionBattleScripts[gBattlerAttacker] != NULL) { - gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_INCAPABLE_OF_POWER; gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattlerAttacker]; gPalaceSelectionBattleScripts[gBattlerAttacker] = NULL; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_INCAPABLE_OF_POWER; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; } } @@ -340,7 +504,7 @@ void HandleAction_Switch(void) if (gBattleResults.playerSwitchesCounter < 255) gBattleResults.playerSwitchesCounter++; - UndoFormChange(gBattlerPartyIndexes[gBattlerAttacker], GetBattlerSide(gBattlerAttacker)); + UndoFormChange(gBattlerPartyIndexes[gBattlerAttacker], GetBattlerSide(gBattlerAttacker), TRUE); } void HandleAction_UseItem(void) @@ -374,26 +538,29 @@ void HandleAction_UseItem(void) case AI_ITEM_HEAL_HP: break; case AI_ITEM_CURE_CONDITION: - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1) + gBattleCommunication[MULTISTRING_CHOOSER] = AI_HEAL_CONFUSION; + if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & (1 << AI_HEAL_CONFUSION)) { if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 0x3E) - gBattleCommunication[MULTISTRING_CHOOSER] = 5; + gBattleCommunication[MULTISTRING_CHOOSER] = AI_HEAL_SLEEP; } else { + // Check for other statuses, stopping at first (shouldn't be more than one) while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1)) { *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1; gBattleCommunication[MULTISTRING_CHOOSER]++; + // MULTISTRING_CHOOSER will be either AI_HEAL_PARALYSIS, AI_HEAL_FREEZE, + // AI_HEAL_BURN, AI_HEAL_POISON, or AI_HEAL_SLEEP } } break; case AI_ITEM_X_STAT: - gBattleCommunication[MULTISTRING_CHOOSER] = 4; - if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & 0x80) + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAT_ROSE_ITEM; + if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & (1 << AI_DIRE_HIT)) { - gBattleCommunication[MULTISTRING_CHOOSER] = 5; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_USED_DIRE_HIT; } else { @@ -410,11 +577,20 @@ void HandleAction_UseItem(void) gBattleScripting.animArg2 = 0; } break; - case AI_ITEM_GUARD_SPECS: + case AI_ITEM_GUARD_SPEC: + // It seems probable that at some point there was a special message for + // an AI trainer using Guard Spec in a double battle. + // There isn't now however, and the assignment to 2 below goes out of + // bounds for gMistUsedStringIds and instead prints "{mon} is getting pumped" + // from the next table, gFocusEnergyUsedStringIds. + // In any case this isn't an issue in the retail version, as no trainers + // are ever given any Guard Spec to use. +#ifndef UBFIX if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = 0; +#endif + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_MIST; break; } @@ -508,7 +684,7 @@ void HandleAction_Run(void) { gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) { gCurrentTurnActionNumber = gBattlersCount; @@ -536,7 +712,7 @@ void HandleAction_Run(void) if (!TryRunFromBattle(gBattlerAttacker)) // failed to run away { ClearFuryCutterDestinyBondGrudge(gBattlerAttacker); - gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_ESCAPE_2; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } @@ -545,7 +721,7 @@ void HandleAction_Run(void) { if (!CanBattlerEscape(gBattlerAttacker)) { - gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ATTACKER_CANT_ESCAPE; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } @@ -624,11 +800,11 @@ void HandleAction_GoNear(void) if (gBattleStruct->safariGoNearCounter < 3) { gBattleStruct->safariGoNearCounter++; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CREPT_CLOSER; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; // Can't get closer. + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_GET_CLOSER; } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1]; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; @@ -683,7 +859,7 @@ void HandleAction_ActionFinished(void) gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_x100000 | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT - | HITMARKER_CHARGING | HITMARKER_x4000000); + | HITMARKER_CHARGING | HITMARKER_x4000000 | HITMARKER_IGNORE_DISGUISE); gCurrentMove = 0; gBattleMoveDamage = 0; @@ -703,6 +879,43 @@ void HandleAction_ActionFinished(void) // rom const data +static const u8 sMovesNotAffectedByStench[] = +{ + [MOVE_AIR_SLASH] = 1, + [MOVE_ASTONISH] = 1, + [MOVE_BITE] = 1, + [MOVE_BONE_CLUB] = 1, + [MOVE_DARK_PULSE] = 1, + [MOVE_DOUBLE_IRON_BASH] = 1, + [MOVE_DRAGON_RUSH] = 1, + [MOVE_EXTRASENSORY] = 1, + [MOVE_FAKE_OUT] = 1, + [MOVE_FIERY_WRATH] = 1, + [MOVE_FIRE_FANG] = 1, + [MOVE_FLING] = 1, + [MOVE_FLOATY_FALL] = 1, + [MOVE_HEADBUTT] = 1, + [MOVE_HEART_STAMP] = 1, + [MOVE_HYPER_FANG] = 1, + [MOVE_ICE_FANG] = 1, + [MOVE_ICICLE_CRASH] = 1, + [MOVE_IRON_HEAD] = 1, + [MOVE_NEEDLE_ARM] = 1, + [MOVE_NONE] = 1, + [MOVE_ROCK_SLIDE] = 1, + [MOVE_ROLLING_KICK] = 1, + [MOVE_SECRET_POWER] = 1, + [MOVE_SKY_ATTACK] = 1, + [MOVE_SNORE] = 1, + [MOVE_STEAMROLLER] = 1, + [MOVE_STOMP] = 1, + [MOVE_THUNDER_FANG] = 1, + [MOVE_TWISTER] = 1, + [MOVE_WATERFALL] = 1, + [MOVE_ZEN_HEADBUTT] = 1, + [MOVE_ZING_ZAP] = 1, +}; + static const u8 sAbilitiesAffectedByMoldBreaker[] = { [ABILITY_BATTLE_ARMOR] = 1, @@ -772,14 +985,20 @@ static const u8 sAbilitiesAffectedByMoldBreaker[] = static const u8 sAbilitiesNotTraced[ABILITIES_COUNT] = { + [ABILITY_AS_ONE_ICE_RIDER] = 1, + [ABILITY_AS_ONE_SHADOW_RIDER] = 1, [ABILITY_BATTLE_BOND] = 1, [ABILITY_COMATOSE] = 1, [ABILITY_DISGUISE] = 1, [ABILITY_FLOWER_GIFT] = 1, [ABILITY_FORECAST] = 1, + [ABILITY_GULP_MISSILE] = 1, + [ABILITY_HUNGER_SWITCH] = 1, + [ABILITY_ICE_FACE] = 1, [ABILITY_ILLUSION] = 1, [ABILITY_IMPOSTER] = 1, [ABILITY_MULTITYPE] = 1, + [ABILITY_NEUTRALIZING_GAS] = 1, [ABILITY_NONE] = 1, [ABILITY_POWER_CONSTRUCT] = 1, [ABILITY_POWER_OF_ALCHEMY] = 1, @@ -1140,7 +1359,7 @@ void MarkAllBattlersForControllerExec(void) // unused if (gBattleTypeFlags & BATTLE_TYPE_LINK) { for (i = 0; i < gBattlersCount; i++) - gBattleControllerExecFlags |= gBitTable[i] << 0x1C; + gBattleControllerExecFlags |= gBitTable[i] << (32 - MAX_BATTLERS_COUNT); } else { @@ -1160,19 +1379,19 @@ bool32 IsBattlerMarkedForControllerExec(u8 battlerId) void MarkBattlerForControllerExec(u8 battlerId) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) - gBattleControllerExecFlags |= gBitTable[battlerId] << 0x1C; + gBattleControllerExecFlags |= gBitTable[battlerId] << (32 - MAX_BATTLERS_COUNT); else gBattleControllerExecFlags |= gBitTable[battlerId]; } -void sub_803F850(u8 arg0) +void MarkBattlerReceivedLinkData(u8 battlerId) { s32 i; for (i = 0; i < GetLinkPlayerCount(); i++) - gBattleControllerExecFlags |= gBitTable[arg0] << (i << 2); + gBattleControllerExecFlags |= gBitTable[battlerId] << (i << 2); - gBattleControllerExecFlags &= ~(0x10000000 << arg0); + gBattleControllerExecFlags &= ~(0x10000000 << battlerId); } void CancelMultiTurnMoves(u8 battler) @@ -1224,9 +1443,9 @@ void PrepareStringBattle(u16 stringId, u8 battler) stringId = STRINGID_STATSWONTDECREASE2; // Check Defiant and Competitive stat raise whenever a stat is lowered. - else if ((stringId == STRINGID_PKMNSSTATCHANGED4 || stringId == STRINGID_PKMNCUTSATTACKWITH) - && ((GetBattlerAbility(gBattlerTarget) == ABILITY_DEFIANT && gBattleMons[gBattlerTarget].statStages[STAT_ATK] != 12) - || (GetBattlerAbility(gBattlerTarget) == ABILITY_COMPETITIVE && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] != 12)) + else if ((stringId == STRINGID_DEFENDERSSTATFELL || stringId == STRINGID_PKMNCUTSATTACKWITH) + && ((GetBattlerAbility(gBattlerTarget) == ABILITY_DEFIANT && gBattleMons[gBattlerTarget].statStages[STAT_ATK] != MAX_STAT_STAGE) + || (GetBattlerAbility(gBattlerTarget) == ABILITY_COMPETITIVE && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] != MAX_STAT_STAGE)) && gSpecialStatuses[gBattlerTarget].changedStatsBattlerId != BATTLE_PARTNER(gBattlerTarget) && gSpecialStatuses[gBattlerTarget].changedStatsBattlerId != gBattlerTarget) { @@ -1331,7 +1550,7 @@ static bool32 IsGravityPreventingMove(u32 move) } } -static bool32 IsHealBlockPreventingMove(u32 battler, u32 move) +bool32 IsHealBlockPreventingMove(u32 battler, u32 move) { if (!(gStatuses3[battler] & STATUS3_HEAL_BLOCK)) return FALSE; @@ -1887,20 +2106,20 @@ u8 DoFieldEndTurnEffects(void) { gBattleWeather &= ~WEATHER_RAIN_TEMPORARY; gBattleWeather &= ~WEATHER_RAIN_DOWNPOUR; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_STOPPED; } else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOWNPOUR_CONTINUES; else - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_CONTINUES; } else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOWNPOUR_CONTINUES; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_CONTINUES; } BattleScriptExecute(BattleScript_RainContinuesOrEnds); @@ -1922,7 +2141,7 @@ u8 DoFieldEndTurnEffects(void) } gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SANDSTORM; BattleScriptExecute(gBattlescriptCurrInstr); effect++; } @@ -1960,7 +2179,7 @@ u8 DoFieldEndTurnEffects(void) } gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_HAIL; BattleScriptExecute(gBattlescriptCurrInstr); effect++; } @@ -1994,16 +2213,18 @@ u8 DoFieldEndTurnEffects(void) gBattleStruct->turnCountersTracker++; break; case ENDTURN_ELECTRIC_TERRAIN: - if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN && --gFieldTimers.electricTerrainTimer == 0) + if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN + && ((!gFieldStatuses & STATUS_FIELD_TERRAIN_PERMANENT) && --gFieldTimers.electricTerrainTimer == 0)) { - gFieldStatuses &= ~(STATUS_FIELD_ELECTRIC_TERRAIN); + gFieldStatuses &= ~(STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_TERRAIN_PERMANENT); BattleScriptExecute(BattleScript_ElectricTerrainEnds); effect++; } gBattleStruct->turnCountersTracker++; break; case ENDTURN_MISTY_TERRAIN: - if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN && --gFieldTimers.mistyTerrainTimer == 0) + if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN + && ((!gFieldStatuses & STATUS_FIELD_TERRAIN_PERMANENT) && --gFieldTimers.mistyTerrainTimer == 0)) { gFieldStatuses &= ~(STATUS_FIELD_MISTY_TERRAIN); BattleScriptExecute(BattleScript_MistyTerrainEnds); @@ -2014,15 +2235,18 @@ u8 DoFieldEndTurnEffects(void) case ENDTURN_GRASSY_TERRAIN: if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN) { - if (gFieldTimers.grassyTerrainTimer == 0 || --gFieldTimers.grassyTerrainTimer == 0) + if (!(gFieldStatuses & STATUS_FIELD_TERRAIN_PERMANENT) + && (gFieldTimers.grassyTerrainTimer == 0 || --gFieldTimers.grassyTerrainTimer == 0)) gFieldStatuses &= ~(STATUS_FIELD_GRASSY_TERRAIN); + BattleScriptExecute(BattleScript_GrassyTerrainHeals); effect++; } gBattleStruct->turnCountersTracker++; break; case ENDTURN_PSYCHIC_TERRAIN: - if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN && --gFieldTimers.psychicTerrainTimer == 0) + if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN + && ((!gFieldStatuses & STATUS_FIELD_TERRAIN_PERMANENT) && --gFieldTimers.psychicTerrainTimer == 0)) { gFieldStatuses &= ~(STATUS_FIELD_PSYCHIC_TERRAIN); BattleScriptExecute(BattleScript_PsychicTerrainEnds); @@ -2125,7 +2349,7 @@ s32 GetDrainedBigRootHp(u32 battler, s32 hp) return hp * -1; } -#define MAGIC_GAURD_CHECK \ +#define MAGIC_GUARD_CHECK \ if (ability == ABILITY_MAGIC_GUARD) \ {\ RecordAbilityBattle(gActiveBattler, ability);\ @@ -2200,7 +2424,7 @@ u8 DoBattlerEndTurnEffects(void) && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER].hp != 0 && gBattleMons[gActiveBattler].hp != 0) { - MAGIC_GAURD_CHECK; + MAGIC_GUARD_CHECK; gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER; // Notice gBattlerTarget is actually the HP receiver. gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; @@ -2217,7 +2441,7 @@ u8 DoBattlerEndTurnEffects(void) if ((gBattleMons[gActiveBattler].status1 & STATUS1_POISON) && gBattleMons[gActiveBattler].hp != 0) { - MAGIC_GAURD_CHECK; + MAGIC_GUARD_CHECK; if (ability == ABILITY_POISON_HEAL) { @@ -2246,7 +2470,7 @@ u8 DoBattlerEndTurnEffects(void) if ((gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBattler].hp != 0) { - MAGIC_GAURD_CHECK; + MAGIC_GUARD_CHECK; if (ability == ABILITY_POISON_HEAL) { @@ -2278,7 +2502,7 @@ u8 DoBattlerEndTurnEffects(void) if ((gBattleMons[gActiveBattler].status1 & STATUS1_BURN) && gBattleMons[gActiveBattler].hp != 0) { - MAGIC_GAURD_CHECK; + MAGIC_GUARD_CHECK; gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (B_BURN_DAMAGE >= GEN_7 ? 16 : 8); if (ability == ABILITY_HEATPROOF) @@ -2298,7 +2522,7 @@ u8 DoBattlerEndTurnEffects(void) if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0) { - MAGIC_GAURD_CHECK; + MAGIC_GUARD_CHECK; // R/S does not perform this sleep check, which causes the nightmare effect to // persist even after the affected Pokemon has been awakened by Shed Skin. if (gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) @@ -2320,7 +2544,7 @@ u8 DoBattlerEndTurnEffects(void) if ((gBattleMons[gActiveBattler].status2 & STATUS2_CURSED) && gBattleMons[gActiveBattler].hp != 0) { - MAGIC_GAURD_CHECK; + MAGIC_GUARD_CHECK; gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -2334,16 +2558,16 @@ u8 DoBattlerEndTurnEffects(void) { if (--gDisableStructs[gActiveBattler].wrapTurns != 0) // damaged by wrap { - MAGIC_GAURD_CHECK; + MAGIC_GUARD_CHECK; gBattleScripting.animArg1 = gBattleStruct->wrappedMove[gActiveBattler]; gBattleScripting.animArg2 = gBattleStruct->wrappedMove[gActiveBattler] >> 8; PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleStruct->wrappedMove[gActiveBattler]); gBattlescriptCurrInstr = BattleScript_WrapTurnDmg; if (GetBattlerHoldEffect(gBattleStruct->wrappedBy[gActiveBattler], TRUE) == HOLD_EFFECT_BINDING_BAND) - gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (B_BINDING_DAMAGE >= GEN_6) ? 6 : 8; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / ((B_BINDING_DAMAGE >= GEN_6) ? 6 : 8); else - gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (B_BINDING_DAMAGE >= GEN_6) ? 8 : 16; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / ((B_BINDING_DAMAGE >= GEN_6) ? 8 : 16); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -2389,16 +2613,16 @@ u8 DoBattlerEndTurnEffects(void) if (WasUnableToUseMove(gActiveBattler)) { CancelMultiTurnMoves(gActiveBattler); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_ENDS; } else if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_CONTINUES; gBattleMons[gActiveBattler].status2 |= STATUS2_MULTIPLETURNS; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_ENDS; CancelMultiTurnMoves(gActiveBattler); } BattleScriptExecute(BattleScript_PrintUproarOverTurns); @@ -2640,9 +2864,9 @@ bool8 HandleWishPerishSongOnTurnEnd(void) && gBattleMons[gActiveBattler].hp != 0) { if (gWishFutureKnock.futureSightMove[gActiveBattler] == MOVE_FUTURE_SIGHT) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FUTURE_SIGHT; else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOOM_DESIRE; PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBattler]); @@ -2738,7 +2962,7 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState++; for (i = 0; i < gBattlersCount; i++) { - if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, 6, 6)) + if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, PARTY_SIZE, PARTY_SIZE)) gAbsentBattlerFlags &= ~(gBitTable[i]); } // fall through @@ -2876,7 +3100,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP); gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP_UPROAR; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; effect = 2; } @@ -2904,7 +3128,7 @@ u8 AtkCanceller_UnableToUseMove(void) { gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; effect = 2; } @@ -2913,27 +3137,19 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case CANCELLER_FROZEN: // check being frozen - if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE) + if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE && !(gBattleMoves[gCurrentMove].flags & FLAG_THAW_USER)) { if (Random() % 5) { - if (gBattleMoves[gCurrentMove].effect != EFFECT_THAW_HIT) // unfreezing via a move effect happens in case 13 - { - gBattlescriptCurrInstr = BattleScript_MoveUsedIsFrozen; - gHitMarker |= HITMARKER_NO_ATTACKSTRING; - } - else - { - gBattleStruct->atkCancellerTracker++; - break; - } + gBattlescriptCurrInstr = BattleScript_MoveUsedIsFrozen; + gHitMarker |= HITMARKER_NO_ATTACKSTRING; } else // unfreeze { gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED; } effect = 2; } @@ -2944,7 +3160,7 @@ u8 AtkCanceller_UnableToUseMove(void) { CancelMultiTurnMoves(gBattlerAttacker); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LOAFING; gBattlerAbility = gBattlerAttacker; gBattlescriptCurrInstr = BattleScript_TruantLoafingAround; gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -3041,7 +3257,7 @@ u8 AtkCanceller_UnableToUseMove(void) { if (Random() % ((B_CONFUSION_SELF_DMG_CHANCE >= GEN_7) ? 3 : 2) == 0) // confusion dmg { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = TRUE; gBattlerTarget = gBattlerAttacker; gBattleMoveDamage = CalculateMoveDamage(MOVE_NONE, gBattlerAttacker, gBattlerAttacker, TYPE_MYSTERY, 40, FALSE, FALSE, TRUE); gProtectStructs[gBattlerAttacker].confusionSelfDmg = 1; @@ -3049,7 +3265,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = FALSE; BattleScriptPushCursor(); } gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused; @@ -3128,20 +3344,19 @@ u8 AtkCanceller_UnableToUseMove(void) case CANCELLER_THAW: // move thawing if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE) { - if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT - || (gBattleMoves[gCurrentMove].effect == EFFECT_BURN_UP && IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_FIRE))) + if (!(gBattleMoves[gCurrentMove].effect == EFFECT_BURN_UP && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_FIRE))) { gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED_BY_MOVE; } effect = 2; } gBattleStruct->atkCancellerTracker++; break; case CANCELLER_POWDER_MOVE: - if (gBattleMoves[gCurrentMove].flags & FLAG_POWDER) + if ((gBattleMoves[gCurrentMove].flags & FLAG_POWDER) && (gBattlerAttacker != gBattlerTarget)) { if ((B_POWDER_GRASS >= GEN_6 && IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_GRASS)) || GetBattlerAbility(gBattlerTarget) == ABILITY_OVERCOAT) @@ -3302,7 +3517,7 @@ bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2) } else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (gBattleTypeFlags & BATTLE_TYPE_x800000) + if (gBattleTypeFlags & BATTLE_TYPE_TOWER_LINK_MULTI) { if (GetBattlerSide(battler) == B_SIDE_PLAYER) { @@ -3627,6 +3842,41 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move gBattleScripting.battler = battler; switch (gLastUsedAbility) { + case ABILITYEFFECT_SWITCH_IN_TERRAIN: + if (VarGet(VAR_TERRAIN) & STATUS_TERRAIN_ANY) + { + u16 terrainFlags = VarGet(VAR_TERRAIN) & STATUS_TERRAIN_ANY; // only works for status flag (1 << 15) + gFieldStatuses = terrainFlags | STATUS_FIELD_TERRAIN_PERMANENT; // terrain is permanent + switch (VarGet(VAR_TERRAIN) & STATUS_TERRAIN_ANY) + { + case STATUS_FIELD_ELECTRIC_TERRAIN: + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + break; + case STATUS_FIELD_MISTY_TERRAIN: + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + break; + case STATUS_FIELD_GRASSY_TERRAIN: + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + break; + case STATUS_FIELD_PSYCHIC_TERRAIN: + gBattleCommunication[MULTISTRING_CHOOSER] = 3; + break; + } + + BattleScriptPushCursorAndCallback(BattleScript_OverworldTerrain); + effect++; + } + #if B_THUNDERSTORM_TERRAIN == TRUE + else if (GetCurrentWeather() == WEATHER_RAIN_THUNDERSTORM && !(gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN)) + { + // overworld weather started rain, so just do electric terrain anim + gFieldStatuses = (STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_TERRAIN_PERMANENT); + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + BattleScriptPushCursorAndCallback(BattleScript_OverworldTerrain); + effect++; + } + #endif + break; case ABILITYEFFECT_SWITCH_IN_WEATHER: if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) { @@ -3673,6 +3923,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move && !(gBattleStruct->illusion[BATTLE_OPPOSITE(battler)].on) && !(gStatuses3[BATTLE_OPPOSITE(battler)] & STATUS3_SEMI_INVULNERABLE)) { + gBattlerAttacker = battler; gBattlerTarget = BATTLE_OPPOSITE(battler); BattleScriptPushCursorAndCallback(BattleScript_ImposterActivates); effect++; @@ -3681,7 +3932,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_MOLD_BREAKER: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_MOLDBREAKER; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_MOLDBREAKER; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3690,7 +3941,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_TERAVOLT: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_TERAVOLT; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_TERAVOLT; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3699,7 +3950,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_TURBOBLAZE: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_TURBOBLAZE; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_TURBOBLAZE; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3709,7 +3960,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (!gSpecialStatuses[battler].switchInAbilityDone) { gDisableStructs[battler].slowStartTimer = 5; - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_SLOWSTART; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_SLOWSTART; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3718,7 +3969,29 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_UNNERVE: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_UNNERVE; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_UNNERVE; + gSpecialStatuses[battler].switchInAbilityDone = 1; + BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); + effect++; + } + break; + case ABILITY_AS_ONE_ICE_RIDER: + case ABILITY_AS_ONE_SHADOW_RIDER: + if (!gSpecialStatuses[battler].switchInAbilityDone) + { + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_ASONE; + gSpecialStatuses[battler].switchInAbilityDone = 1; + BattleScriptPushCursorAndCallback(BattleScript_ActivateAsOne); + effect++; + } + break; + case ABILITY_CURIOUS_MEDICINE: + if (!gSpecialStatuses[battler].switchInAbilityDone && IsDoubleBattle() + && IsBattlerAlive(BATTLE_PARTNER(battler)) && TryResetBattlerStatChanges(BATTLE_PARTNER(battler))) + { + u32 i; + gEffectBattler = BATTLE_PARTNER(battler); + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_CURIOUS_MEDICINE; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3748,7 +4021,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (effect) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_ANTICIPATION; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_ANTICIPATION; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); } @@ -3766,7 +4039,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (!gSpecialStatuses[battler].switchInAbilityDone) { ForewarnChooseMove(battler); - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_FOREWARN; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_FOREWARN; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3799,7 +4072,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move gSpecialStatuses[battler].switchInAbilityDone = 1; - if (gBattleMons[battler].statStages[statId] != 12) + if (gBattleMons[battler].statStages[statId] != MAX_STAT_STAGE) { gBattleMons[battler].statStages[statId]++; SET_STATCHANGER(statId, 1, FALSE); @@ -3812,7 +4085,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_PRESSURE: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_PRESSURE; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_PRESSURE; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3821,7 +4094,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_DARK_AURA: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_DARKAURA; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_DARKAURA; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3830,7 +4103,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_FAIRY_AURA: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_FAIRYAURA; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_FAIRYAURA; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3839,7 +4112,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_AURA_BREAK: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_AURABREAK; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_AURABREAK; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -3848,16 +4121,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_COMATOSE: if (!gSpecialStatuses[battler].switchInAbilityDone) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_COMATOSE; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_COMATOSE; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; } break; case ABILITY_SCREEN_CLEANER: - if (!gSpecialStatuses[battler].switchInAbilityDone) + if (!gSpecialStatuses[battler].switchInAbilityDone && TryRemoveScreens(battler)) { - gBattleCommunication[MULTISTRING_CHOOSER] = MULTI_SWITCHIN_SCREENCLEANER; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_SCREENCLEANER; gSpecialStatuses[battler].switchInAbilityDone = 1; BattleScriptPushCursorAndCallback(BattleScript_SwitchInAbilityMsg); effect++; @@ -4050,10 +4323,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move } break; case ABILITY_SPEED_BOOST: - if (gBattleMons[battler].statStages[STAT_SPEED] < 0xC && gDisableStructs[battler].isFirstTurn != 2) + if (gBattleMons[battler].statStages[STAT_SPEED] < MAX_STAT_STAGE && gDisableStructs[battler].isFirstTurn != 2) { gBattleMons[battler].statStages[STAT_SPEED]++; - gBattleScripting.animArg1 = 0x11; + gBattleScripting.animArg1 = 14 + STAT_SPEED; gBattleScripting.animArg2 = 0; BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates); gBattleScripting.battler = battler; @@ -4068,9 +4341,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move for (i = STAT_ATK; i < statsNum; i++) { - if (gBattleMons[battler].statStages[i] != 0) + if (gBattleMons[battler].statStages[i] != MIN_STAT_STAGE) validToLower |= gBitTable[i]; - if (gBattleMons[battler].statStages[i] != 12) + if (gBattleMons[battler].statStages[i] != MAX_STAT_STAGE) validToRaise |= gBitTable[i]; } @@ -4226,7 +4499,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move { if (!(gBattleResources->flags->flags[battler] & RESOURCE_FLAG_FLASH_FIRE)) { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FLASH_FIRE_BOOST; if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else @@ -4237,7 +4510,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FLASH_FIRE_NO_BOOST; if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else @@ -4273,7 +4546,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move } else if (effect == 2) // Boost Stat ability; { - if (gBattleMons[battler].statStages[statId] == 0xC) + if (gBattleMons[battler].statStages[statId] == MAX_STAT_STAGE) { if ((gProtectStructs[gBattlerAttacker].notFirstStrike)) gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless; @@ -4302,7 +4575,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && moveType == TYPE_DARK - && gBattleMons[battler].statStages[STAT_ATK] != 12) + && gBattleMons[battler].statStages[STAT_ATK] != MAX_STAT_STAGE) { SET_STATCHANGER(STAT_ATK, 1, FALSE); BattleScriptPushCursor(); @@ -4315,7 +4588,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && (moveType == TYPE_DARK || moveType == TYPE_BUG || moveType == TYPE_GHOST) - && gBattleMons[battler].statStages[STAT_SPEED] != 12) + && gBattleMons[battler].statStages[STAT_SPEED] != MAX_STAT_STAGE) { SET_STATCHANGER(STAT_SPEED, 1, FALSE); BattleScriptPushCursor(); @@ -4328,7 +4601,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && moveType == TYPE_WATER - && gBattleMons[battler].statStages[STAT_DEF] != 12) + && gBattleMons[battler].statStages[STAT_DEF] != MAX_STAT_STAGE) { SET_STATCHANGER(STAT_DEF, 2, FALSE); BattleScriptPushCursor(); @@ -4340,7 +4613,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) - && gBattleMons[battler].statStages[STAT_DEF] != 12) + && gBattleMons[battler].statStages[STAT_DEF] != MAX_STAT_STAGE) { SET_STATCHANGER(STAT_DEF, 1, FALSE); BattleScriptPushCursor(); @@ -4356,8 +4629,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move && gBattleStruct->hpBefore[battler] > gBattleMons[battler].maxHP / 2 && gBattleMons[battler].hp < gBattleMons[battler].maxHP / 2 && (gMultiHitCounter == 0 || gMultiHitCounter == 1) - && !(GetBattlerAbility(gBattlerAttacker) == ABILITY_SHEER_FORCE && gBattleMoves[gCurrentMove].flags & FLAG_SHEER_FORCE_BOOST) - && gBattleMons[battler].statStages[STAT_SPATK] != 12) + && !(TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) + && gBattleMons[battler].statStages[STAT_SPATK] != MAX_STAT_STAGE) { SET_STATCHANGER(STAT_SPATK, 1, FALSE); BattleScriptPushCursor(); @@ -4374,9 +4647,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move && gBattleStruct->hpBefore[battler] > gBattleMons[battler].maxHP / 2 && gBattleMons[battler].hp < gBattleMons[battler].maxHP / 2 && (gMultiHitCounter == 0 || gMultiHitCounter == 1) - && !(GetBattlerAbility(gBattlerAttacker) == ABILITY_SHEER_FORCE && gBattleMoves[gCurrentMove].flags & FLAG_SHEER_FORCE_BOOST) + && !(TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) && (CanBattlerSwitch(battler) || !(gBattleTypeFlags & BATTLE_TYPE_TRAINER)) - && !(gBattleTypeFlags & BATTLE_TYPE_ARENA)) + && !(gBattleTypeFlags & BATTLE_TYPE_ARENA) + && CountUsablePartyMons(battler) > 0) { gBattleResources->flags->flags[battler] |= RESOURCE_FLAG_EMERGENCY_EXIT; effect++; @@ -4387,7 +4661,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && IS_MOVE_PHYSICAL(gCurrentMove) - && (gBattleMons[battler].statStages[STAT_SPEED] != 12 || gBattleMons[battler].statStages[STAT_DEF] != 0)) + && (gBattleMons[battler].statStages[STAT_SPEED] != MAX_STAT_STAGE || gBattleMons[battler].statStages[STAT_DEF] != MIN_STAT_STAGE)) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WeakArmorActivates; @@ -4444,9 +4718,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move && gIsCriticalHit && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) - && gBattleMons[battler].statStages[STAT_ATK] != 12) + && gBattleMons[battler].statStages[STAT_ATK] != MAX_STAT_STAGE) { - SET_STATCHANGER(STAT_ATK, 12 - gBattleMons[battler].statStages[STAT_ATK], FALSE); + SET_STATCHANGER(STAT_ATK, MAX_STAT_STAGE - gBattleMons[battler].statStages[STAT_ATK], FALSE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_TargetsStatWasMaxedOut; effect++; @@ -4471,7 +4745,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_TANGLING_HAIR: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBattlerAttacker].hp != 0 - && gBattleMons[gBattlerAttacker].statStages[STAT_SPEED] != 0 + && gBattleMons[gBattlerAttacker].statStages[STAT_SPEED] != MIN_STAT_STAGE && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && IsMoveMakingContact(move, gBattlerAttacker)) @@ -4664,7 +4938,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) - && gBattleMons[battler].statStages[STAT_SPEED] != 12 + && gBattleMons[battler].statStages[STAT_SPEED] != MAX_STAT_STAGE && (moveType == TYPE_FIRE || moveType == TYPE_WATER)) { SET_STATCHANGER(STAT_SPEED, 6, FALSE); @@ -4733,6 +5007,21 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move effect++; } break; + case ABILITY_STENCH: + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && gBattleMons[gBattlerTarget].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (Random() % 10) == 0 + && !IS_MOVE_STATUS(move) + && !sMovesNotAffectedByStench[gCurrentMove]) + { + gBattleScripting.moveEffect = MOVE_EFFECT_FLINCH; + BattleScriptPushCursor(); + SetMoveEffect(FALSE, 0); + BattleScriptPop(); + effect++; + } + break; } break; case ABILITYEFFECT_MOVE_END_OTHER: // Abilities that activate on *another* battler's moveend: Dancer, Soul-Heart, Receiver, Symbiosis @@ -4815,10 +5104,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move break; case ABILITY_OBLIVIOUS: if (gBattleMons[battler].status2 & STATUS2_INFATUATION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); effect = 3; - } + else if (gDisableStructs[battler].tauntTimer != 0) + effect = 4; break; } if (effect) @@ -4827,17 +5115,26 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move { case 1: // status cleared gBattleMons[battler].status1 = 0; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; break; case 2: // get rid of confusion gBattleMons[battler].status2 &= ~(STATUS2_CONFUSION); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; break; case 3: // get rid of infatuation gBattleMons[battler].status2 &= ~(STATUS2_INFATUATION); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BattlerGotOverItsInfatuation; + break; + case 4: // get rid of taunt + gDisableStructs[battler].tauntTimer = 0; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BattlerShookOffTaunt; break; } - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; gBattleScripting.battler = gActiveBattler = gBattlerAbility = battler; BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); @@ -5062,10 +5359,16 @@ u32 IsAbilityPreventingEscape(u32 battlerId) bool32 CanBattlerEscape(u32 battlerId) // no ability check { - return (GetBattlerHoldEffect(battlerId, TRUE) == HOLD_EFFECT_SHED_SHELL - || !((gBattleMons[battlerId].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) - || (gStatuses3[battlerId] & STATUS3_ROOTED) - || gFieldStatuses & STATUS_FIELD_FAIRY_LOCK)); + if (GetBattlerHoldEffect(battlerId, TRUE) == HOLD_EFFECT_SHED_SHELL) + return TRUE; + else if ((B_GHOSTS_ESCAPE >= GEN_6 && !IS_BATTLER_OF_TYPE(battlerId, TYPE_GHOST)) && gBattleMons[battlerId].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) + return FALSE; + else if (gStatuses3[battlerId] & STATUS3_ROOTED) + return FALSE; + else if (gFieldStatuses & STATUS_FIELD_FAIRY_LOCK) + return FALSE; + else + return TRUE; } void BattleScriptExecute(const u8 *BS_ptr) @@ -5095,14 +5398,14 @@ enum }; // second argument is 1/X of current hp compared to max hp -static bool32 HasEnoughHpToEatBerry(u32 battlerId, u32 hpFraction, u32 itemId) +bool32 HasEnoughHpToEatBerry(u32 battlerId, u32 hpFraction, u32 itemId) { bool32 isBerry = (ItemId_GetPocket(itemId) == POCKET_BERRIES); if (gBattleMons[battlerId].hp == 0) return FALSE; // Unnerve prevents consumption of opponents' berries. - if (isBerry && IsAbilityOnOpposingSide(battlerId, ABILITY_UNNERVE)) + if (isBerry && IsUnnerveAbilityOnOpposingSide(battlerId)) return FALSE; if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / hpFraction) return TRUE; @@ -5117,7 +5420,7 @@ static bool32 HasEnoughHpToEatBerry(u32 battlerId, u32 hpFraction, u32 itemId) return FALSE; } -static u8 HealConfuseBerry(u32 battlerId, u32 itemId, u8 flavorId) +static u8 HealConfuseBerry(u32 battlerId, u32 itemId, u8 flavorId, bool32 end2) { if (HasEnoughHpToEatBerry(battlerId, 2, itemId)) { @@ -5127,40 +5430,71 @@ static u8 HealConfuseBerry(u32 battlerId, u32 itemId, u8 flavorId) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, flavorId) < 0) - BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + + if (GetBattlerAbility(battlerId) == ABILITY_RIPEN) + { + gBattleMoveDamage *= 2; + gBattlerAbility = battlerId; + } + + if (end2) + { + if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, flavorId) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItemEnd2); + } else - BattleScriptExecute(BattleScript_ItemHealHP_RemoveItemEnd2); + { + BattleScriptPushCursor(); + if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, flavorId) < 0) + gBattlescriptCurrInstr = BattleScript_BerryConfuseHealRet; + else + gBattlescriptCurrInstr = BattleScript_ItemHealHP_RemoveItemRet; + } return ITEM_HP_CHANGE; } return 0; } -static u8 StatRaiseBerry(u32 battlerId, u32 itemId, u32 statId) +static u8 StatRaiseBerry(u32 battlerId, u32 itemId, u32 statId, bool32 end2) { - if (gBattleMons[battlerId].statStages[statId] < 0xC && HasEnoughHpToEatBerry(battlerId, GetBattlerHoldEffectParam(battlerId), itemId)) + if (gBattleMons[battlerId].statStages[statId] < MAX_STAT_STAGE && HasEnoughHpToEatBerry(battlerId, GetBattlerHoldEffectParam(battlerId), itemId)) { PREPARE_STAT_BUFFER(gBattleTextBuff1, statId); PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); gEffectBattler = battlerId; - SET_STATCHANGER(statId, 1, FALSE); - gBattleScripting.animArg1 = 0xE + statId; + if (GetBattlerAbility(battlerId) == ABILITY_RIPEN) + SET_STATCHANGER(statId, 2, FALSE); + else + SET_STATCHANGER(statId, 1, FALSE); + + gBattleScripting.animArg1 = 14 + statId; gBattleScripting.animArg2 = 0; - BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + + if (end2) + { + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + } + else + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryStatRaiseRet; + } return ITEM_STATS_CHANGE; } return 0; } -static u8 RandomStatRaiseBerry(u32 battlerId, u32 itemId) +static u8 RandomStatRaiseBerry(u32 battlerId, u32 itemId, bool32 end2) { s32 i; for (i = 0; i < 5; i++) { - if (gBattleMons[battlerId].statStages[STAT_ATK + i] < 0xC) + if (gBattleMons[battlerId].statStages[STAT_ATK + i] < MAX_STAT_STAGE) break; } if (i != 5 && HasEnoughHpToEatBerry(battlerId, GetBattlerHoldEffectParam(battlerId), itemId)) @@ -5168,7 +5502,7 @@ static u8 RandomStatRaiseBerry(u32 battlerId, u32 itemId) do { i = Random() % 5; - } while (gBattleMons[battlerId].statStages[STAT_ATK + i] == 0xC); + } while (gBattleMons[battlerId].statStages[STAT_ATK + i] == MAX_STAT_STAGE); PREPARE_STAT_BUFFER(gBattleTextBuff1, i + 1); @@ -5182,10 +5516,71 @@ static u8 RandomStatRaiseBerry(u32 battlerId, u32 itemId) gBattleTextBuff2[7] = EOS; gEffectBattler = battlerId; - SET_STATCHANGER(i + 1, 2, FALSE); + + if (GetBattlerAbility(battlerId) == ABILITY_RIPEN) + SET_STATCHANGER(i + 1, 4, FALSE); + else + SET_STATCHANGER(i + 1, 2, FALSE); + gBattleScripting.animArg1 = 0x21 + i + 6; gBattleScripting.animArg2 = 0; - BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + + if (end2) + { + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + } + else + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryStatRaiseRet; + } + return ITEM_STATS_CHANGE; + } + return 0; +} + +static u8 TrySetMicleBerry(u32 battlerId, u32 itemId, bool32 end2) +{ + if (HasEnoughHpToEatBerry(battlerId, 4, itemId)) + { + gProtectStructs[battlerId].micle = TRUE; // battler's next attack has increased accuracy + + if (end2) + { + BattleScriptExecute(BattleScript_MicleBerryActivateEnd2); + } + else + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MicleBerryActivateRet; + } + return ITEM_EFFECT_OTHER; + } + return 0; +} + +static u8 DamagedStatBoostBerryEffect(u8 battlerId, u8 statId, u8 split) +{ + if (IsBattlerAlive(battlerId) + && TARGET_TURN_DAMAGED + && gBattleMons[battlerId].statStages[statId] < MAX_STAT_STAGE + && !DoesSubstituteBlockMove(gBattlerAttacker, battlerId, gCurrentMove) + && GetBattleMoveSplit(gCurrentMove) == split) + { + + PREPARE_STAT_BUFFER(gBattleTextBuff1, statId); + PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); + + gEffectBattler = battlerId; + if (GetBattlerAbility(battlerId) == ABILITY_RIPEN) + SET_STATCHANGER(statId, 2, FALSE); + else + SET_STATCHANGER(statId, 1, FALSE); + + gBattleScripting.animArg1 = 14 + statId; + gBattleScripting.animArg2 = 0; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryStatRaiseRet; return ITEM_STATS_CHANGE; } return 0; @@ -5200,6 +5595,11 @@ static u8 ItemHealHp(u32 battlerId, u32 itemId, bool32 end2, bool32 percentHeal) else gBattleMoveDamage = GetBattlerHoldEffectParam(battlerId) * -1; + // check ripen + if (ItemId_GetPocket(itemId) == POCKET_BERRIES && GetBattlerAbility(battlerId) == ABILITY_RIPEN) + gBattleMoveDamage *= 2; + + gBattlerAbility = battlerId; // in SWSH, berry juice shows ability pop up but has no effect. This is mimicked here if (end2) { BattleScriptExecute(BattleScript_ItemHealHP_RemoveItemEnd2); @@ -5216,7 +5616,7 @@ static u8 ItemHealHp(u32 battlerId, u32 itemId, bool32 end2, bool32 percentHeal) static bool32 UnnerveOn(u32 battlerId, u32 itemId) { - if (ItemId_GetPocket(itemId) == POCKET_BERRIES && IsAbilityOnOpposingSide(battlerId, ABILITY_UNNERVE)) + if (ItemId_GetPocket(itemId) == POCKET_BERRIES && IsUnnerveAbilityOnOpposingSide(battlerId)) return TRUE; return FALSE; } @@ -5245,8 +5645,11 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) switch (battlerHoldEffect) { case HOLD_EFFECT_DOUBLE_PRIZE: - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER && !gBattleStruct->moneyMultiplierItem) + { gBattleStruct->moneyMultiplier *= 2; + gBattleStruct->moneyMultiplierItem = 1; + } break; case HOLD_EFFECT_RESTORE_STATS: for (i = 0; i < NUM_BATTLE_STATS; i++) @@ -5267,43 +5670,43 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; case HOLD_EFFECT_CONFUSE_SPICY: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY, TRUE); break; case HOLD_EFFECT_CONFUSE_DRY: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY, TRUE); break; case HOLD_EFFECT_CONFUSE_SWEET: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET, TRUE); break; case HOLD_EFFECT_CONFUSE_BITTER: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER, TRUE); break; case HOLD_EFFECT_CONFUSE_SOUR: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR, TRUE); break; case HOLD_EFFECT_ATTACK_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK, TRUE); break; case HOLD_EFFECT_DEFENSE_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF, TRUE); break; case HOLD_EFFECT_SPEED_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED, TRUE); break; case HOLD_EFFECT_SP_ATTACK_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK, TRUE); break; case HOLD_EFFECT_SP_DEFENSE_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF, TRUE); break; case HOLD_EFFECT_CRITICAL_UP: if (B_BERRIES_INSTANT >= GEN_4 && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY) && HasEnoughHpToEatBerry(battlerId, GetBattlerHoldEffectParam(battlerId), gLastUsedItem)) @@ -5315,7 +5718,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; case HOLD_EFFECT_RANDOM_STAT_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = RandomStatRaiseBerry(battlerId, gLastUsedItem); + effect = RandomStatRaiseBerry(battlerId, gLastUsedItem, TRUE); break; case HOLD_EFFECT_CURE_PAR: if (B_BERRIES_INSTANT >= GEN_4 && gBattleMons[battlerId].status1 & STATUS1_PARALYSIS && !UnnerveOn(battlerId, gLastUsedItem)) @@ -5394,9 +5797,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) i++; } if (!(i > 1)) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_NORMALIZED_STATUS; gBattleMons[battlerId].status1 = 0; gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); @@ -5447,7 +5850,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) effect = ItemHealHp(battlerId, gLastUsedItem, TRUE, FALSE); break; case HOLD_EFFECT_RESTORE_PCT_HP: - if (B_BERRIES_INSTANT >= GEN_4) + if (!moveTurn) effect = ItemHealHp(battlerId, gLastUsedItem, TRUE, TRUE); break; case HOLD_EFFECT_RESTORE_PP: @@ -5457,10 +5860,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) u8 ppBonuses; u16 move; - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - mon = &gPlayerParty[gBattlerPartyIndexes[battlerId]]; - else - mon = &gEnemyParty[gBattlerPartyIndexes[battlerId]]; + mon = GetBattlerPartyData(battlerId); for (i = 0; i < MAX_MON_MOVES; i++) { move = GetMonData(mon, MON_DATA_MOVE1 + i); @@ -5472,10 +5872,17 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) if (i != MAX_MON_MOVES) { u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i); - if (changedPP + GetBattlerHoldEffectParam(battlerId) > maxPP) + u8 ppRestored = GetBattlerHoldEffectParam(battlerId); + + if (GetBattlerAbility(battlerId) == ABILITY_RIPEN) + { + ppRestored *= 2; + gBattlerAbility = battlerId; + } + if (changedPP + ppRestored > maxPP) changedPP = maxPP; else - changedPP = changedPP + GetBattlerHoldEffectParam(battlerId); + changedPP = changedPP + ppRestored; PREPARE_MOVE_BUFFER(gBattleTextBuff1, move); @@ -5489,9 +5896,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_RESTORE_STATS: for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } @@ -5506,18 +5913,6 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_BLACK_SLUDGE: if (IS_BATTLER_OF_TYPE(battlerId, TYPE_POISON)) goto LEFTOVERS; - case HOLD_EFFECT_STICKY_BARB: - if (!moveTurn) - { - gBattleMoveDamage = gBattleMons[battlerId].maxHP / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - BattleScriptExecute(BattleScript_ItemHurtEnd2); - effect = ITEM_HP_CHANGE; - RecordItemEffectBattle(battlerId, battlerHoldEffect); - PREPARE_ITEM_BUFFER(gBattleTextBuff1, gLastUsedItem); - } - break; case HOLD_EFFECT_LEFTOVERS: LEFTOVERS: if (gBattleMons[battlerId].hp < gBattleMons[battlerId].maxHP && !moveTurn) @@ -5533,43 +5928,43 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; case HOLD_EFFECT_CONFUSE_SPICY: if (!moveTurn) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY, TRUE); break; case HOLD_EFFECT_CONFUSE_DRY: if (!moveTurn) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY, TRUE); break; case HOLD_EFFECT_CONFUSE_SWEET: if (!moveTurn) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET, TRUE); break; case HOLD_EFFECT_CONFUSE_BITTER: if (!moveTurn) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER, TRUE); break; case HOLD_EFFECT_CONFUSE_SOUR: if (!moveTurn) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR, TRUE); break; case HOLD_EFFECT_ATTACK_UP: if (!moveTurn) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK, TRUE); break; case HOLD_EFFECT_DEFENSE_UP: if (!moveTurn) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF, TRUE); break; case HOLD_EFFECT_SPEED_UP: if (!moveTurn) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED, TRUE); break; case HOLD_EFFECT_SP_ATTACK_UP: if (!moveTurn) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK, TRUE); break; case HOLD_EFFECT_SP_DEFENSE_UP: if (!moveTurn) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF, TRUE); break; case HOLD_EFFECT_CRITICAL_UP: if (!moveTurn && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY) && HasEnoughHpToEatBerry(battlerId, GetBattlerHoldEffectParam(battlerId), gLastUsedItem)) @@ -5581,7 +5976,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; case HOLD_EFFECT_RANDOM_STAT_UP: if (!moveTurn) - effect = RandomStatRaiseBerry(battlerId, gLastUsedItem); + effect = RandomStatRaiseBerry(battlerId, gLastUsedItem, TRUE); break; case HOLD_EFFECT_CURE_PAR: if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS && !UnnerveOn(battlerId, gLastUsedItem)) @@ -5668,9 +6063,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) i++; } if (!(i > 1)) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_NORMALIZED_STATUS; gBattleMons[battlerId].status1 = 0; gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); @@ -5683,10 +6078,14 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gBattleMons[battlerId].status2 &= ~(STATUS2_INFATUATION); StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; effect = ITEM_EFFECT_OTHER; } break; + case HOLD_EFFECT_MICLE_BERRY: + if (!moveTurn) + effect = TrySetMicleBerry(battlerId, gLastUsedItem, TRUE); + break; } if (effect) @@ -5713,6 +6112,10 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) battlerHoldEffect = GetBattlerHoldEffect(battlerId, TRUE); switch (battlerHoldEffect) { + case HOLD_EFFECT_MICLE_BERRY: + if (B_HP_BERRIES >= GEN_4) + effect = TrySetMicleBerry(battlerId, gLastUsedItem, FALSE); + break; case HOLD_EFFECT_RESTORE_HP: if (B_HP_BERRIES >= GEN_4) effect = ItemHealHp(battlerId, gLastUsedItem, FALSE, FALSE); @@ -5721,6 +6124,50 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) if (B_BERRIES_INSTANT >= GEN_4) effect = ItemHealHp(battlerId, gLastUsedItem, FALSE, TRUE); break; + case HOLD_EFFECT_CONFUSE_SPICY: + if (B_BERRIES_INSTANT >= GEN_4) + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY, FALSE); + break; + case HOLD_EFFECT_CONFUSE_DRY: + if (B_BERRIES_INSTANT >= GEN_4) + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY, FALSE); + break; + case HOLD_EFFECT_CONFUSE_SWEET: + if (B_BERRIES_INSTANT >= GEN_4) + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET, FALSE); + break; + case HOLD_EFFECT_CONFUSE_BITTER: + if (B_BERRIES_INSTANT >= GEN_4) + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER, FALSE); + break; + case HOLD_EFFECT_CONFUSE_SOUR: + if (B_BERRIES_INSTANT >= GEN_4) + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR, FALSE); + break; + case HOLD_EFFECT_ATTACK_UP: + if (B_BERRIES_INSTANT >= GEN_4) + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK, FALSE); + break; + case HOLD_EFFECT_DEFENSE_UP: + if (B_BERRIES_INSTANT >= GEN_4) + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF, FALSE); + break; + case HOLD_EFFECT_SPEED_UP: + if (B_BERRIES_INSTANT >= GEN_4) + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED, FALSE); + break; + case HOLD_EFFECT_SP_ATTACK_UP: + if (B_BERRIES_INSTANT >= GEN_4) + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK, FALSE); + break; + case HOLD_EFFECT_SP_DEFENSE_UP: + if (B_BERRIES_INSTANT >= GEN_4) + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF, FALSE); + break; + case HOLD_EFFECT_RANDOM_STAT_UP: + if (B_BERRIES_INSTANT >= GEN_4) + effect = RandomStatRaiseBerry(battlerId, gLastUsedItem, FALSE); + break; case HOLD_EFFECT_CURE_PAR: if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS && !UnnerveOn(battlerId, gLastUsedItem)) { @@ -5782,7 +6229,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gBattleMons[battlerId].status2 &= ~(STATUS2_INFATUATION); StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; effect = ITEM_EFFECT_OTHER; } @@ -5818,7 +6265,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gBattleMons[battlerId].status1 = 0; gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; effect = ITEM_STATUS_CHANGE; } @@ -5980,6 +6427,69 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gBattleScripting.statChanger = SET_STATCHANGER(STAT_SPATK, 1, FALSE); } break; + case HOLD_EFFECT_JABOCA_BERRY: // consume and damage attacker if used physical move + if (IsBattlerAlive(battlerId) + && TARGET_TURN_DAMAGED + && !DoesSubstituteBlockMove(gBattlerAttacker, battlerId, gCurrentMove) + && IS_MOVE_PHYSICAL(gCurrentMove) + && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) + { + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (GetBattlerAbility(battlerId) == ABILITY_RIPEN) + gBattleMoveDamage *= 2; + + effect = ITEM_HP_CHANGE; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_JabocaRowapBerryActivates; + PREPARE_ITEM_BUFFER(gBattleTextBuff1, gLastUsedItem); + RecordItemEffectBattle(battlerId, HOLD_EFFECT_ROCKY_HELMET); + } + break; + case HOLD_EFFECT_ROWAP_BERRY: // consume and damage attacker if used special move + if (IsBattlerAlive(battlerId) + && TARGET_TURN_DAMAGED + && !DoesSubstituteBlockMove(gBattlerAttacker, battlerId, gCurrentMove) + && IS_MOVE_SPECIAL(gCurrentMove) + && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) + { + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (GetBattlerAbility(battlerId) == ABILITY_RIPEN) + gBattleMoveDamage *= 2; + + effect = ITEM_HP_CHANGE; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_JabocaRowapBerryActivates; + PREPARE_ITEM_BUFFER(gBattleTextBuff1, gLastUsedItem); + RecordItemEffectBattle(battlerId, HOLD_EFFECT_ROCKY_HELMET); + } + break; + case HOLD_EFFECT_KEE_BERRY: // consume and boost defense if used physical move + effect = DamagedStatBoostBerryEffect(battlerId, STAT_DEF, SPLIT_PHYSICAL); + break; + case HOLD_EFFECT_MARANGA_BERRY: // consume and boost sp. defense if used special move + effect = DamagedStatBoostBerryEffect(battlerId, STAT_SPDEF, SPLIT_SPECIAL); + break; + case HOLD_EFFECT_STICKY_BARB: + if (TARGET_TURN_DAMAGED + && (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + && IsMoveMakingContact(gCurrentMove, gBattlerAttacker) + && !DoesSubstituteBlockMove(gCurrentMove, gBattlerAttacker, battlerId) + && IsBattlerAlive(gBattlerAttacker) + && CanStealItem(gBattlerAttacker, gBattlerTarget, gBattleMons[gBattlerTarget].item) + && gBattleMons[gBattlerAttacker].item == ITEM_NONE) + { + // No sticky hold checks. + gEffectBattler = battlerId; // gEffectBattler = target + StealTargetItem(gBattlerAttacker, gBattlerTarget); // Attacker takes target's barb + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_StickyBarbTransfer; + effect = ITEM_EFFECT_OTHER; + } + break; } } break; @@ -5989,7 +6499,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_TOXIC_ORB: if (!gBattleMons[battlerId].status1 && CanPoisonType(battlerId, battlerId) - && GetBattlerAbility(battlerId) != ABILITY_IMMUNITY) + && GetBattlerAbility(battlerId) != ABILITY_IMMUNITY + && GetBattlerAbility(battlerId) != ABILITY_COMATOSE + && IsBattlerAlive) { effect = ITEM_STATUS_CHANGE; gBattleMons[battlerId].status1 = STATUS1_TOXIC_POISON; @@ -6000,7 +6512,10 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_FLAME_ORB: if (!gBattleMons[battlerId].status1 && !IS_BATTLER_OF_TYPE(battlerId, TYPE_FIRE) - && GetBattlerAbility(battlerId) != ABILITY_WATER_VEIL) + && GetBattlerAbility(battlerId) != ABILITY_WATER_VEIL + && GetBattlerAbility(battlerId) != ABILITY_WATER_BUBBLE + && GetBattlerAbility(battlerId) != ABILITY_COMATOSE + && IsBattlerAlive) { effect = ITEM_STATUS_CHANGE; gBattleMons[battlerId].status1 = STATUS1_BURN; @@ -6008,6 +6523,18 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) RecordItemEffectBattle(battlerId, battlerHoldEffect); } break; + case HOLD_EFFECT_STICKY_BARB: // Not an orb per se, but similar effect, and needs to NOT activate with pickpocket + if (GetBattlerAbility(battlerId) != ABILITY_MAGIC_GUARD) + { + gBattleMoveDamage = gBattleMons[battlerId].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_ItemHurtEnd2); + effect = ITEM_HP_CHANGE; + RecordItemEffectBattle(battlerId, battlerHoldEffect); + PREPARE_ITEM_BUFFER(gBattleTextBuff1, gLastUsedItem); + } + break; } if (effect == ITEM_STATUS_CHANGE) @@ -6076,7 +6603,7 @@ u8 GetMoveTarget(u16 move, u8 setTarget) { case MOVE_TARGET_SELECTED: side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; - if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + if (IsAffectedByFollowMe(gBattlerAttacker, side)) { targetBattler = gSideTimers[side].followmeTarget; } @@ -6111,7 +6638,7 @@ u8 GetMoveTarget(u16 move, u8 setTarget) break; case MOVE_TARGET_RANDOM: side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; - if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + if (IsAffectedByFollowMe(gBattlerAttacker, side)) targetBattler = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) targetBattler = SetRandomTarget(gBattlerAttacker); @@ -6136,14 +6663,14 @@ u8 GetMoveTarget(u16 move, u8 setTarget) return targetBattler; } -static bool32 HasObedientBitSet(u8 battlerId) +static bool32 IsMonEventLegal(u8 battlerId) { if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT) return TRUE; if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS && GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_MEW) return TRUE; - return GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_OBEDIENCE, NULL); + return GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_EVENT_LEGAL, NULL); } u8 IsMonDisobedient(void) @@ -6152,12 +6679,12 @@ u8 IsMonDisobedient(void) s32 calc; u8 obedienceLevel = 0; - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) return 0; if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) return 0; - if (HasObedientBitSet(gBattlerAttacker)) // only if species is Mew or Deoxys + if (IsMonEventLegal(gBattlerAttacker)) // only false if illegal Mew or Deoxys { if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattlerAttacker) == 2) return 0; @@ -6203,7 +6730,9 @@ u8 IsMonDisobedient(void) calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], 0xFF); if (calc == 0xF) // all moves cannot be used { - gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; + // Randomly select, then print a disobedient string + // B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE + gBattleCommunication[MULTISTRING_CHOOSER] = Random() & (NUM_LOAF_STRINGS - 1); gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; return 1; } @@ -6211,7 +6740,7 @@ u8 IsMonDisobedient(void) { do { - gCurrMovePos = gChosenMovePos = Random() & 3; + gCurrMovePos = gChosenMovePos = Random() & (MAX_MON_MOVES - 1); } while (gBitTable[gCurrMovePos] & calc); gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; @@ -6252,7 +6781,9 @@ u8 IsMonDisobedient(void) } else { - gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; + // Randomly select, then print a disobedient string + // B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE + gBattleCommunication[MULTISTRING_CHOOSER] = Random() & (NUM_LOAF_STRINGS - 1); gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; return 1; } @@ -6394,8 +6925,8 @@ u32 CountBattlerStatIncreases(u8 battlerId, bool32 countEvasionAcc) { if ((i == STAT_ACC || i == STAT_EVASION) && !countEvasionAcc) continue; - if (gBattleMons[battlerId].statStages[i] > 6) // Stat is increased. - count += gBattleMons[battlerId].statStages[i] - 6; + if (gBattleMons[battlerId].statStages[i] > DEFAULT_STAT_STAGE) // Stat is increased. + count += gBattleMons[battlerId].statStages[i] - DEFAULT_STAT_STAGE; } return count; @@ -6742,7 +7273,8 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe MulModifier(&modifier, UQ_4_12(1.3)); break; case ABILITY_SAND_FORCE: - if (moveType == TYPE_STEEL || moveType == TYPE_ROCK || moveType == TYPE_GROUND) + if ((moveType == TYPE_STEEL || moveType == TYPE_ROCK || moveType == TYPE_GROUND) + && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SANDSTORM_ANY) MulModifier(&modifier, UQ_4_12(1.3)); break; case ABILITY_RIVALRY: @@ -6804,6 +7336,18 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe if (gBattleMoves[move].flags & FLAG_SOUND) MulModifier(&modifier, UQ_4_12(1.3)); break; + case ABILITY_STEELY_SPIRIT: + if (moveType == TYPE_STEEL) + MulModifier(&modifier, UQ_4_12(1.5)); + break; + case ABILITY_TRANSISTOR: + if (moveType == TYPE_ELECTRIC) + MulModifier(&modifier, UQ_4_12(1.5)); + break; + case ABILITY_DRAGONS_MAW: + if (moveType == TYPE_DRAGON) + MulModifier(&modifier, UQ_4_12(1.5)); + break; } // field abilities @@ -6828,6 +7372,10 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe case ABILITY_POWER_SPOT: MulModifier(&modifier, UQ_4_12(1.3)); break; + case ABILITY_STEELY_SPIRIT: + if (moveType == TYPE_STEEL) + MulModifier(&modifier, UQ_4_12(1.5)); + break; } } @@ -6944,7 +7492,7 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe MulModifier(&modifier, UQ_4_12(2.0)); break; case EFFECT_VENOSHOCK: - if (gBattleMons[battlerAtk].status1 & STATUS1_PSN_ANY) + if (gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY) MulModifier(&modifier, UQ_4_12(2.0)); break; case EFFECT_RETALITATE: @@ -7008,6 +7556,11 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b atkStage = gBattleMons[battlerDef].statStages[STAT_SPATK]; } } + if (gBattleMoves[move].effect == EFFECT_BODY_PRESS) + { + atkStat = gBattleMons[battlerAtk].defense; + atkStage = gBattleMons[battlerAtk].statStages[STAT_DEF]; + } else { if (IS_MOVE_PHYSICAL(move)) @@ -7023,11 +7576,11 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b } // critical hits ignore attack stat's stage drops - if (isCrit && atkStage < 6) - atkStage = 6; + if (isCrit && atkStage < DEFAULT_STAT_STAGE) + atkStage = DEFAULT_STAT_STAGE; // pokemon with unaware ignore attack stat changes while taking damage if (GetBattlerAbility(battlerDef) == ABILITY_UNAWARE) - atkStage = 6; + atkStage = DEFAULT_STAT_STAGE; atkStat *= gStatStageRatios[atkStage][0]; atkStat /= gStatStageRatios[atkStage][1]; @@ -7052,7 +7605,7 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b MulModifier(&modifier, UQ_4_12(1.5)); break; case ABILITY_DEFEATIST: - if (gBattleMons[battlerAtk].hp <= (gBattleMons[battlerDef].maxHP / 2)) + if (gBattleMons[battlerAtk].hp <= (gBattleMons[battlerAtk].maxHP / 2)) MulModifier(&modifier, UQ_4_12(0.5)); break; case ABILITY_FLASH_FIRE: @@ -7115,7 +7668,7 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b break; case ABILITY_ICE_SCALES: if (IS_MOVE_SPECIAL(move)) - MulModifier(&modifier, UQ_4_12(0.5)); + MulModifier(&modifier, UQ_4_12(0.5)); break; } @@ -7125,7 +7678,7 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b switch (GetBattlerAbility(BATTLE_PARTNER(battlerAtk))) { case ABILITY_FLOWER_GIFT: - if (gBattleMons[BATTLE_PARTNER(battlerAtk)].species == SPECIES_CHERRIM && IS_MOVE_PHYSICAL(move)) + if (gBattleMons[BATTLE_PARTNER(battlerAtk)].species == SPECIES_CHERRIM && WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_SUN_ANY) && IS_MOVE_PHYSICAL(move)) MulModifier(&modifier, UQ_4_12(1.5)); break; } @@ -7135,7 +7688,9 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b switch (GetBattlerHoldEffect(battlerAtk, TRUE)) { case HOLD_EFFECT_THICK_CLUB: - if ((gBattleMons[battlerAtk].species == SPECIES_CUBONE || gBattleMons[battlerAtk].species == SPECIES_MAROWAK) && IS_MOVE_PHYSICAL(move)) + if ((GET_BASE_SPECIES_ID(gBattleMons[battlerAtk].species) == SPECIES_CUBONE + || GET_BASE_SPECIES_ID(gBattleMons[battlerAtk].species) == SPECIES_MAROWAK) + && IS_MOVE_PHYSICAL(move)) MulModifier(&modifier, UQ_4_12(2.0)); break; case HOLD_EFFECT_DEEP_SEA_TOOTH: @@ -7172,7 +7727,9 @@ static bool32 CanEvolve(u32 species) for (i = 0; i < EVOS_PER_MON; i++) { - if (gEvolutionTable[species][i].method && gEvolutionTable[species][i].method != EVO_MEGA_EVOLUTION) + if (gEvolutionTable[species][i].method + && gEvolutionTable[species][i].method != EVO_MEGA_EVOLUTION + && gEvolutionTable[species][i].method != EVO_MOVE_MEGA_EVOLUTION) return TRUE; } return FALSE; @@ -7210,14 +7767,14 @@ static u32 CalcDefenseStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, } // critical hits ignore positive stat changes - if (isCrit && defStage > 6) - defStage = 6; + if (isCrit && defStage > DEFAULT_STAT_STAGE) + defStage = DEFAULT_STAT_STAGE; // pokemon with unaware ignore defense stat changes while dealing damage if (GetBattlerAbility(battlerAtk) == ABILITY_UNAWARE) - defStage = 6; + defStage = DEFAULT_STAT_STAGE; // certain moves also ignore stat changes if (gBattleMoves[move].flags & FLAG_STAT_STAGES_IGNORED) - defStage = 6; + defStage = DEFAULT_STAT_STAGE; defStat *= gStatStageRatios[defStage][0]; defStat /= gStatStageRatios[defStage][1]; @@ -7258,7 +7815,7 @@ static u32 CalcDefenseStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, break; case ABILITY_PUNK_ROCK: if (gBattleMoves[move].flags & FLAG_SOUND) - MulModifier(&modifier, UQ_4_12(1.3)); + MulModifier(&modifier, UQ_4_12(2.0)); break; } @@ -7268,7 +7825,7 @@ static u32 CalcDefenseStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, switch (GetBattlerAbility(BATTLE_PARTNER(battlerDef))) { case ABILITY_FLOWER_GIFT: - if (gBattleMons[BATTLE_PARTNER(battlerDef)].species == SPECIES_CHERRIM && !usesDefStat) + if (gBattleMons[BATTLE_PARTNER(battlerDef)].species == SPECIES_CHERRIM && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY && !usesDefStat) MulModifier(&modifier, UQ_4_12(1.5)); break; } @@ -7438,7 +7995,10 @@ static u32 CalcFinalDmg(u32 dmg, u16 move, u8 battlerAtk, u8 battlerDef, u8 move if (moveType == GetBattlerHoldEffectParam(battlerDef) && (moveType == TYPE_NORMAL || typeEffectivenessModifier >= UQ_4_12(2.0))) { - MulModifier(&finalModifier, UQ_4_12(0.5)); + if (abilityDef == ABILITY_RIPEN) + MulModifier(&finalModifier, UQ_4_12(0.25)); + else + MulModifier(&finalModifier, UQ_4_12(0.5)); if (updateFlags) gSpecialStatuses[battlerDef].berryReduced = 1; } @@ -7451,7 +8011,7 @@ static u32 CalcFinalDmg(u32 dmg, u16 move, u8 battlerAtk, u8 battlerDef, u8 move MulModifier(&finalModifier, UQ_4_12(2.0)); if (gBattleMoves[move].flags & FLAG_DMG_UNDERWATER && gStatuses3[battlerDef] & STATUS3_UNDERWATER) MulModifier(&finalModifier, UQ_4_12(2.0)); - if (gBattleMoves[move].flags & FLAG_DMG_IN_AIR && gStatuses3[battlerDef] & STATUS3_ON_AIR) + if (gBattleMoves[move].flags & FLAG_DMG_2X_IN_AIR && gStatuses3[battlerDef] & STATUS3_ON_AIR) MulModifier(&finalModifier, UQ_4_12(2.0)); dmg = ApplyModifier(finalModifier, dmg); @@ -7566,7 +8126,7 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat && gBattleMons[battlerDef].type3 != gBattleMons[battlerDef].type1) MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, gBattleMons[battlerDef].type3, battlerAtk, recordAbilities); - if (moveType == TYPE_GROUND && !IsBattlerGrounded(battlerDef)) + if (moveType == TYPE_GROUND && !IsBattlerGrounded(battlerDef) && !(gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING)) { modifier = UQ_4_12(0.0); if (recordAbilities && GetBattlerAbility(battlerDef) == ABILITY_LEVITATE) @@ -7574,10 +8134,18 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat gLastUsedAbility = ABILITY_LEVITATE; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gLastLandedMoves[battlerDef] = 0; - gBattleCommunication[6] = 4; + gBattleCommunication[MISS_TYPE] = B_MSG_GROUND_MISS; RecordAbilityBattle(battlerDef, ABILITY_LEVITATE); } } + + // Thousand Arrows ignores type modifiers for flying mons + if (!IsBattlerGrounded(battlerDef) && (gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING) + && (gBattleMons[battlerDef].type1 == TYPE_FLYING || gBattleMons[battlerDef].type2 == TYPE_FLYING || gBattleMons[battlerDef].type3 == TYPE_FLYING)) + { + modifier = UQ_4_12(1.0); + } + if (GetBattlerAbility(battlerDef) == ABILITY_WONDER_GUARD && modifier <= UQ_4_12(1.0) && gBattleMoves[move].power) { modifier = UQ_4_12(0.0); @@ -7586,7 +8154,7 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; gLastLandedMoves[battlerDef] = 0; - gBattleCommunication[6] = 3; + gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_DMG; RecordAbilityBattle(battlerDef, ABILITY_WONDER_GUARD); } } @@ -7686,7 +8254,7 @@ s32 GetStealthHazardDamage(u8 hazardType, u8 battlerId) return dmg; } -static bool32 IsPartnerMonFromSameTrainer(u8 battlerId) +bool32 IsPartnerMonFromSameTrainer(u8 battlerId) { if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT && gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) return FALSE; @@ -7735,6 +8303,13 @@ bool32 CanMegaEvolve(u8 battlerId) u8 partnerPosition = GetBattlerPosition(BATTLE_PARTNER(battlerId)); struct MegaEvolutionData *mega = &(((struct ChooseMoveStruct*)(&gBattleResources->bufferA[gActiveBattler][4]))->mega); +#ifdef ITEM_EXPANSION + // Check if Player has a Mega Bracelet + if ((GetBattlerPosition(battlerId) == B_POSITION_PLAYER_LEFT || (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT)) + && !CheckBagHasItem(ITEM_MEGA_BRACELET, 1)) + return FALSE; +#endif + // Check if trainer already mega evolved a pokemon. if (mega->alreadyEvolved[battlerPosition]) return FALSE; @@ -7800,14 +8375,14 @@ void UndoMegaEvolution(u32 monId) } } -void UndoFormChange(u32 monId, u32 side) +void UndoFormChange(u32 monId, u32 side, bool32 isSwitchingOut) { u32 i, currSpecies; struct Pokemon *party = (side == B_SIDE_PLAYER) ? gPlayerParty : gEnemyParty; static const u16 species[][2] = // changed form id, default form id { - {SPECIES_AEGISLASH_BLADE, SPECIES_AEGISLASH}, {SPECIES_MIMIKYU_BUSTED, SPECIES_MIMIKYU}, + {SPECIES_AEGISLASH_BLADE, SPECIES_AEGISLASH}, {SPECIES_DARMANITAN_ZEN_MODE, SPECIES_DARMANITAN}, {SPECIES_MINIOR, SPECIES_MINIOR_CORE_RED}, {SPECIES_MINIOR_METEOR_BLUE, SPECIES_MINIOR_CORE_BLUE}, @@ -7819,8 +8394,13 @@ void UndoFormChange(u32 monId, u32 side) {SPECIES_WISHIWASHI_SCHOOL, SPECIES_WISHIWASHI}, }; + if (isSwitchingOut) // Don't revert Mimikyu Busted when switching out + i = 1; + else + i = 0; + currSpecies = GetMonData(&party[monId], MON_DATA_SPECIES, NULL); - for (i = 0; i < ARRAY_COUNT(species); i++) + for (; i < ARRAY_COUNT(species); i++) { if (currSpecies == species[i][0]) { @@ -7854,25 +8434,30 @@ bool32 DoBattlersShareType(u32 battler1, u32 battler2) bool32 CanBattlerGetOrLoseItem(u8 battlerId, u16 itemId) { u16 species = gBattleMons[battlerId].species; - - if (IS_ITEM_MAIL(itemId)) + u16 holdEffect = ItemId_GetHoldEffect(itemId); + + // Mail can be stolen now + if (itemId == ITEM_ENIGMA_BERRY) return FALSE; - else if (itemId == ITEM_ENIGMA_BERRY) + else if (GET_BASE_SPECIES_ID(species) == SPECIES_KYOGRE && itemId == ITEM_BLUE_ORB) // includes primal return FALSE; - else if (species == SPECIES_KYOGRE && itemId == ITEM_BLUE_ORB) + else if (GET_BASE_SPECIES_ID(species) == SPECIES_GROUDON && itemId == ITEM_RED_ORB) // includes primal return FALSE; - else if (species == SPECIES_GROUDON && itemId == ITEM_RED_ORB) + // Mega stone cannot be lost if pokemon's base species can mega evolve with it. + else if (holdEffect == HOLD_EFFECT_MEGA_STONE && (GetMegaEvolutionSpecies(GET_BASE_SPECIES_ID(species), itemId) != SPECIES_NONE)) return FALSE; - // Mega stone cannot be lost if pokemon can mega evolve with it or is already mega evolved. - else if (ItemId_GetHoldEffect(itemId) == HOLD_EFFECT_MEGA_STONE - && ((GetMegaEvolutionSpecies(species, itemId) != SPECIES_NONE) || gBattleStruct->mega.evolvedPartyIds[GetBattlerSide(battlerId)] & gBitTable[gBattlerPartyIndexes[battlerId]])) + else if (GET_BASE_SPECIES_ID(species) == SPECIES_GIRATINA && itemId == ITEM_GRISEOUS_ORB) return FALSE; - else if (species == SPECIES_GIRATINA && itemId == ITEM_GRISEOUS_ORB) + else if (GET_BASE_SPECIES_ID(species) == SPECIES_GENESECT && holdEffect == HOLD_EFFECT_DRIVE) return FALSE; - else if (species == SPECIES_GENESECT && GetBattlerHoldEffect(battlerId, FALSE) == HOLD_EFFECT_DRIVE) + else if (GET_BASE_SPECIES_ID(species) == SPECIES_SILVALLY && holdEffect == HOLD_EFFECT_MEMORY) return FALSE; - else if (species == SPECIES_SILVALLY && GetBattlerHoldEffect(battlerId, FALSE) == HOLD_EFFECT_MEMORY) + else if (GET_BASE_SPECIES_ID(species) == SPECIES_ARCEUS && holdEffect == HOLD_EFFECT_PLATE) return FALSE; +#ifdef HOLD_EFFECT_Z_CRYSTAL + else if (holdEffect == HOLD_EFFECT_Z_CRYSTAL) + return FALSE; +#endif else return TRUE; } @@ -7942,7 +8527,7 @@ bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) { if (B_BADGE_BOOST != GEN_3) return FALSE; - else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) + else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_FRONTIER)) return FALSE; else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) return FALSE; @@ -7963,3 +8548,279 @@ u8 GetBattleMoveSplit(u32 moveId) else return SPLIT_SPECIAL; } + +static bool32 TryRemoveScreens(u8 battler) +{ + bool32 removed = FALSE; + u8 battlerSide = GetBattlerSide(battler); + u8 enemySide = GetBattlerSide(BATTLE_OPPOSITE(battler)); + + // try to remove from battler's side + if (gSideStatuses[battlerSide] & (SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL)) + { + gSideStatuses[battlerSide] &= ~(SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL); + gSideTimers[battlerSide].reflectTimer = 0; + gSideTimers[battlerSide].lightscreenTimer = 0; + gSideTimers[battlerSide].auroraVeilTimer = 0; + removed = TRUE; + } + + // try to remove from battler opponent's side + if (gSideStatuses[enemySide] & (SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL)) + { + gSideStatuses[enemySide] &= ~(SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL); + gSideTimers[enemySide].reflectTimer = 0; + gSideTimers[enemySide].lightscreenTimer = 0; + gSideTimers[enemySide].auroraVeilTimer = 0; + removed = TRUE; + } + + return removed; +} + +static bool32 IsUnnerveAbilityOnOpposingSide(u8 battlerId) +{ + if (IsAbilityOnOpposingSide(battlerId, ABILITY_UNNERVE) + || IsAbilityOnOpposingSide(battlerId, ABILITY_AS_ONE_ICE_RIDER) + || IsAbilityOnOpposingSide(battlerId, ABILITY_AS_ONE_SHADOW_RIDER)) + return TRUE; + return FALSE; +} + +bool32 TestMoveFlags(u16 move, u32 flag) +{ + if (gBattleMoves[move].flags & flag) + return TRUE; + return FALSE; +} + +struct Pokemon *GetBattlerPartyData(u8 battlerId) +{ + struct Pokemon *mon; + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) + mon = &gPlayerParty[gBattlerPartyIndexes[battlerId]]; + else + mon = &gEnemyParty[gBattlerPartyIndexes[battlerId]]; + + return mon; +} + +//Make sure the input bank is any bank on the specific mon's side +bool32 CanFling(u8 battlerId) +{ + u16 item = gBattleMons[battlerId].item; + u16 itemEffect = ItemId_GetHoldEffect(item); + + if (item == ITEM_NONE + || GetBattlerAbility(battlerId) == ABILITY_KLUTZ + || gFieldStatuses & STATUS_FIELD_MAGIC_ROOM + || gDisableStructs[battlerId].embargoTimer != 0 + || !CanBattlerGetOrLoseItem(battlerId, item) + //|| itemEffect == HOLD_EFFECT_PRIMAL_ORB + || itemEffect == HOLD_EFFECT_GEMS + #ifdef ITEM_ABILITY_CAPSULE + || item == ITEM_ABILITY_CAPSULE + #endif + || (ItemId_GetPocket(item) == POCKET_BERRIES && IsAbilityOnSide(battlerId, ABILITY_UNNERVE)) + || GetPocketByItemId(item) == POCKET_POKE_BALLS) + return FALSE; + + return TRUE; +} + +// ability checks +bool32 IsRolePlayBannedAbilityAtk(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sRolePlayBannedAttackerAbilities); i++) + { + if (ability == sRolePlayBannedAttackerAbilities[i]) + return TRUE; + } + return FALSE; +} + +bool32 IsRolePlayBannedAbility(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sRolePlayBannedAbilities); i++) + { + if (ability == sRolePlayBannedAbilities[i]) + return TRUE; + } + return FALSE; +} + +bool32 IsSkillSwapBannedAbility(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sSkillSwapBannedAbilities); i++) + { + if (ability == sSkillSwapBannedAbilities[i]) + return TRUE; + } + return FALSE; +} + +bool32 IsWorrySeedBannedAbility(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sWorrySeedBannedAbilities); i++) + { + if (ability == sWorrySeedBannedAbilities[i]) + return TRUE; + } + return FALSE; +} + +bool32 IsGastroAcidBannedAbility(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sGastroAcidBannedAbilities); i++) + { + if (ability == sGastroAcidBannedAbilities[i]) + return TRUE; + } + return FALSE; +} + +bool32 IsEntrainmentBannedAbilityAttacker(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sEntrainmentBannedAttackerAbilities); i++) + { + if (ability == sEntrainmentBannedAttackerAbilities[i]) + return TRUE; + } + return FALSE; +} + +bool32 IsEntrainmentTargetOrSimpleBeamBannedAbility(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sEntrainmentTargetSimpleBeamBannedAbilities); i++) + { + if (ability == sEntrainmentTargetSimpleBeamBannedAbilities[i]) + return TRUE; + } + return FALSE; +} + +// Sort an array of battlers by speed +// Useful for effects like pickpocket, eject button, red card, dancer +void SortBattlersBySpeed(u8 *battlers, bool8 slowToFast) +{ + int i, j, currSpeed, currBattler; + u16 speeds[4] = {0}; + + for (i = 0; i < gBattlersCount; i++) + speeds[i] = GetBattlerTotalSpeedStat(battlers[i]); + + for (i = 1; i < gBattlersCount; i++) + { + currBattler = battlers[i]; + currSpeed = speeds[i]; + j = i - 1; + + if (slowToFast) + { + while (j >= 0 && speeds[j] > currSpeed) + { + battlers[j + 1] = battlers[j]; + speeds[j + 1] = speeds[j]; + j = j - 1; + } + } + else + { + while (j >= 0 && speeds[j] < currSpeed) + { + battlers[j + 1] = battlers[j]; + speeds[j + 1] = speeds[j]; + j = j - 1; + } + } + + battlers[j + 1] = currBattler; + speeds[j + 1] = currSpeed; + } +} + +bool32 TestSheerForceFlag(u8 battler, u16 move) +{ + if (GetBattlerAbility(battler) == ABILITY_SHEER_FORCE && gBattleMoves[move].flags & FLAG_SHEER_FORCE_BOOST) + return TRUE; + else + return FALSE; +} + +void TryRestoreStolenItems(void) +{ + u32 i; + u16 stolenItem = ITEM_NONE; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (gBattleStruct->itemStolen[i].stolen) + { + stolenItem = gBattleStruct->itemStolen[i].originalItem; + if (stolenItem != ITEM_NONE && ItemId_GetPocket(stolenItem) != POCKET_BERRIES) + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &stolenItem); // Restore stolen non-berry items + } + } +} + +bool32 CanStealItem(u8 battlerStealing, u8 battlerItem, u16 item) +{ + u8 stealerSide = GetBattlerSide(battlerStealing); + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) + return FALSE; + + // Check if the battler trying to steal should be able to + if (stealerSide == B_SIDE_OPPONENT + && !(gBattleTypeFlags & + (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_LINK + | BATTLE_TYPE_RECORDED_LINK + | BATTLE_TYPE_SECRET_BASE + #if B_TRAINERS_KNOCK_OFF_ITEMS + | BATTLE_TYPE_TRAINER + #endif + ))) + { + return FALSE; + } + else if (!(gBattleTypeFlags & + (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_LINK + | BATTLE_TYPE_RECORDED_LINK + | BATTLE_TYPE_SECRET_BASE)) + && (gWishFutureKnock.knockedOffMons[stealerSide] & gBitTable[gBattlerPartyIndexes[battlerStealing]])) + { + return FALSE; + } + + if (!CanBattlerGetOrLoseItem(battlerItem, item) // Battler with item cannot have it stolen + ||!CanBattlerGetOrLoseItem(battlerStealing, item)) // Stealer cannot take the item + return FALSE; + + return TRUE; +} + +void TrySaveExchangedItem(u8 battlerId, u16 stolenItem) +{ + // Because BtlController_EmitSetMonData does SetMonData, we need to save the stolen item only if it matches the battler's original + // So, if the player steals an item during battle and has it stolen from it, it will not end the battle with it (naturally) + #if B_TRAINERS_KNOCK_OFF_ITEMS == TRUE + // If regular trainer battle and mon's original item matches what is being stolen, save it to be restored at end of battle + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER + && !(gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + && GetBattlerSide(battlerId) == B_SIDE_PLAYER + && stolenItem == gBattleStruct->itemStolen[gBattlerPartyIndexes[battlerId]].originalItem) + gBattleStruct->itemStolen[gBattlerPartyIndexes[battlerId]].stolen = TRUE; + #endif +} + diff --git a/src/battle_util2.c b/src/battle_util2.c index 55f710a77c..d15700706a 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -10,6 +10,7 @@ #include "constants/abilities.h" #include "random.h" #include "battle_scripts.h" +#include "constants/battle_string_ids.h" void AllocateBattleResources(void) { @@ -26,7 +27,6 @@ void AllocateBattleResources(void) gBattleResources->beforeLvlUp = AllocZeroed(sizeof(*gBattleResources->beforeLvlUp)); gBattleResources->ai = AllocZeroed(sizeof(*gBattleResources->ai)); gBattleResources->battleHistory = AllocZeroed(sizeof(*gBattleResources->battleHistory)); - gBattleResources->AI_ScriptsStack = AllocZeroed(sizeof(*gBattleResources->AI_ScriptsStack)); gLinkBattleSendBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE); gLinkBattleRecvBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE); @@ -45,7 +45,7 @@ void FreeBattleResources(void) { if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) FreeTrainerHillBattleStruct(); - + gFieldStatuses = 0; if (gBattleResources != NULL) { @@ -58,7 +58,6 @@ void FreeBattleResources(void) FREE_AND_SET_NULL(gBattleResources->beforeLvlUp); FREE_AND_SET_NULL(gBattleResources->ai); FREE_AND_SET_NULL(gBattleResources->battleHistory); - FREE_AND_SET_NULL(gBattleResources->AI_ScriptsStack); FREE_AND_SET_NULL(gBattleResources); FREE_AND_SET_NULL(gLinkBattleSendBuffer); @@ -135,7 +134,7 @@ u32 sub_805725C(u8 battlerId) gBattleMons[battlerId].status1 &= ~(STATUS1_SLEEP); gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP_UPROAR; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; effect = 2; } @@ -162,7 +161,7 @@ u32 sub_805725C(u8 battlerId) { gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; effect = 2; } @@ -182,7 +181,7 @@ u32 sub_805725C(u8 battlerId) gBattleMons[battlerId].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED; } effect = 2; } diff --git a/src/berry.c b/src/berry.c index 98264f37b8..d56ec801ca 100644 --- a/src/berry.c +++ b/src/berry.c @@ -11,7 +11,6 @@ #include "random.h" #include "string_util.h" #include "text.h" -#include "constants/berry.h" #include "constants/event_object_movement.h" #include "constants/items.h" @@ -890,50 +889,50 @@ const struct Berry gBerries[] = }, }; -const struct UnkStruct_0858AB24 gUnknown_0858AB24[] = { - { 50, 20}, - { 50, 20}, - { 50, 20}, - { 50, 20}, - { 50, 20}, - { 50, 30}, - { 50, 30}, - { 50, 30}, - { 50, 30}, - { 50, 30}, - { 60, 50}, - { 60, 50}, - { 60, 50}, - { 60, 50}, - { 60, 50}, - { 80, 70}, - { 80, 70}, - { 80, 70}, - { 80, 70}, - { 80, 70}, - {100, 100}, - {100, 100}, - {100, 100}, - {100, 100}, - {100, 100}, - {130, 150}, - {130, 150}, - {130, 150}, - {130, 150}, - {130, 150}, - {160, 250}, - {160, 250}, - {160, 250}, - {160, 250}, - {160, 250}, - {180, 500}, - {180, 500}, - {180, 500}, - {180, 500}, - {180, 500}, - {200, 750}, - {200, 750}, - {150, 200} +const struct BerryCrushBerryData gBerryCrush_BerryData[] = { + [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20}, + [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20}, + [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20}, + [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20}, + [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20}, + [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30}, + [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30}, + [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30}, + [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30}, + [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30}, + [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50}, + [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50}, + [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50}, + [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50}, + [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50}, + [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70}, + [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70}, + [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70}, + [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70}, + [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70}, + [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100}, + [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100}, + [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100}, + [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100}, + [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100}, + [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150}, + [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150}, + [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150}, + [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150}, + [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150}, + [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250}, + [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250}, + [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250}, + [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250}, + [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250}, + [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500}, + [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500}, + [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500}, + [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500}, + [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500}, + [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 200, .powder = 750}, + [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 200, .powder = 750}, + [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 150, .powder = 200} }; const struct BerryTree gBlankBerryTree = {}; @@ -1046,8 +1045,9 @@ void ClearBerryTrees(void) static bool32 BerryTreeGrow(struct BerryTree *tree) { - if (tree->growthSparkle) + if (tree->stopGrowth) return FALSE; + switch (tree->stage) { case BERRY_STAGE_NO_BERRY: @@ -1082,7 +1082,7 @@ void BerryTreeTimeUpdate(s32 minutes) { tree = &gSaveBlock1Ptr->berryTrees[i]; - if (tree->berry && tree->stage && !tree->growthSparkle) + if (tree->berry && tree->stage && !tree->stopGrowth) { if (minutes >= GetStageDurationByBerryType(tree->berry) * 71) { @@ -1111,7 +1111,7 @@ void BerryTreeTimeUpdate(s32 minutes) } } -void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle) +void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 allowGrowth) { struct BerryTree *tree = GetBerryTreeInfo(id); @@ -1125,8 +1125,10 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle) tree->minutesUntilNextStage *= 4; } - if (!sparkle) - tree->growthSparkle = TRUE; + // Stop growth, to keep tree at this stage until the player has seen it + // allowGrowth is always true for berry trees the player has planted + if (!allowGrowth) + tree->stopGrowth = TRUE; } void RemoveBerryTree(u8 id) @@ -1175,9 +1177,9 @@ void GetBerryCountStringByBerryType(u8 berry, u8* dest, u32 berryCount) GetBerryCountString(dest, GetBerryInfo(berry)->name, berryCount); } -void ResetBerryTreeSparkleFlag(u8 id) +void AllowBerryTreeGrowth(u8 id) { - GetBerryTreeInfo(id)->growthSparkle = FALSE; + GetBerryTreeInfo(id)->stopGrowth = FALSE; } static u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree) @@ -1262,7 +1264,7 @@ void ObjectEventInteractionGetBerryTreeData(void) id = GetObjectEventBerryTreeId(gSelectedObjectEvent); berry = GetBerryTypeByBerryTreeId(id); - ResetBerryTreeSparkleFlag(id); + AllowBerryTreeGrowth(id); localId = gSpecialVar_LastTalked; num = gSaveBlock1Ptr->location.mapNum; group = gSaveBlock1Ptr->location.mapGroup; @@ -1313,7 +1315,7 @@ void ObjectEventInteractionPickBerryTree(void) void ObjectEventInteractionRemoveBerryTree(void) { RemoveBerryTree(GetObjectEventBerryTreeId(gSelectedObjectEvent)); - sub_8092EF0(gSpecialVar_LastTalked, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + SetBerryTreeJustPicked(gSpecialVar_LastTalked, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } bool8 PlayerHasBerries(void) @@ -1321,7 +1323,9 @@ bool8 PlayerHasBerries(void) return IsBagPocketNonEmpty(POCKET_BERRIES); } -void ResetBerryTreeSparkleFlags(void) +// Berry tree growth is frozen at their initial stage (usually, fully grown) until the player has seen the tree +// For all berry trees on screen, allow normal growth +void SetBerryTreesSeen(void) { s16 cam_left; s16 cam_top; @@ -1343,7 +1347,7 @@ void ResetBerryTreeSparkleFlags(void) cam_left = gObjectEvents[i].currentCoords.x; cam_top = gObjectEvents[i].currentCoords.y; if (left <= cam_left && cam_left <= right && top <= cam_top && cam_top <= bottom) - ResetBerryTreeSparkleFlag(gObjectEvents[i].trainerRange_berryTreeId); + AllowBerryTreeGrowth(gObjectEvents[i].trainerRange_berryTreeId); } } } diff --git a/src/berry_blender.c b/src/berry_blender.c index 573affbd51..8e8d392db5 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -34,7 +34,6 @@ #include "new_game.h" #include "save.h" #include "strings.h" -#include "constants/berry.h" #include "constants/game_stat.h" #include "constants/items.h" #include "constants/rgb.h" @@ -1098,7 +1097,7 @@ static void CB2_LoadBerryBlender(void) } break; case 2: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); UpdateBlenderCenter(); sBerryBlender->mainState++; break; @@ -1112,7 +1111,7 @@ static void CB2_LoadBerryBlender(void) sBerryBlender->mainState++; break; case 5: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); sBerryBlender->mainState++; break; case 6: @@ -1163,8 +1162,8 @@ static void SpriteCB_Berry(struct Sprite* sprite) else PlaySE(SE_BALL_TRAY_EXIT); } - sprite->pos1.x = sprite->sX; - sprite->pos1.y = sprite->sY; + sprite->x = sprite->sX; + sprite->y = sprite->sY; } static void SetBerrySpriteData(struct Sprite* sprite, s16 x, s16 y, s16 bounceSpeed, s16 xSpeed, s16 ySpeed) @@ -1327,7 +1326,7 @@ static void CB2_StartBlenderLink(void) sBerryBlender->mainState++; break; case 3: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); sBerryBlender->mainState++; break; case 4: @@ -1427,7 +1426,7 @@ static void CB2_StartBlenderLink(void) sBerryBlender->centerScale += 4; if (sBerryBlender->centerScale > 255) { - SetGpuRegBits(REG_OFFSET_BG2CNT, 2); + SetGpuRegBits(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2)); sBerryBlender->mainState++; sBerryBlender->centerScale = 256; sBerryBlender->arrowPos = sArrowStartPos[sArrowStartPosIds[sBerryBlender->numPlayers - 2]]; @@ -1665,7 +1664,7 @@ static void CB2_StartBlenderLocal(void) sBerryBlender->mainState++; break; case 3: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); sBerryBlender->mainState++; sBerryBlender->framesToWait = 0; break; @@ -1727,7 +1726,7 @@ static void CB2_StartBlenderLocal(void) sBerryBlender->mainState++; sBerryBlender->centerScale = 256; sBerryBlender->arrowPos = sArrowStartPos[sArrowStartPosIds[sBerryBlender->numPlayers - 2]]; - SetGpuRegBits(REG_OFFSET_BG2CNT, 2); + SetGpuRegBits(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2)); sBerryBlender->framesToWait = 0; PlaySE(SE_TRUCK_DOOR); PrintPlayerNames(); @@ -2390,7 +2389,7 @@ static s16 Debug_GetGameTimeStage(void) static void CalculatePokeblock(struct BlenderBerry *berries, struct Pokeblock *pokeblock, u8 numPlayers, u8 *flavors, u16 maxRPM) { s32 i, j; - s32 multiuseVar, var2; + s32 multiuseVar; u8 numNegatives; for (i = 0; i < FLAVOR_COUNT + 1; i++) @@ -2896,7 +2895,7 @@ static void CB2_CheckPlayAgainLink(void) case 9: if (IsLinkTaskFinished()) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); sBerryBlender->gameEndState++; } break; @@ -3164,8 +3163,8 @@ static void SpriteCB_Particle(struct Sprite* sprite) { sprite->data[2] += sprite->data[0]; sprite->data[3] += sprite->data[1]; - sprite->pos2.x = sprite->data[2] / 8; - sprite->pos2.y = sprite->data[3] / 8; + sprite->x2 = sprite->data[2] / 8; + sprite->y2 = sprite->data[3] / 8; if (sprite->animEnded) DestroySprite(sprite); @@ -3198,7 +3197,7 @@ static void CreateParticleSprites(void) static void SpriteCB_ScoreSymbol(struct Sprite* sprite) { sprite->data[0]++; - sprite->pos2.y = -(sprite->data[0] / 3); + sprite->y2 = -(sprite->data[0] / 3); if (sprite->animEnded) DestroySprite(sprite); @@ -3207,10 +3206,10 @@ static void SpriteCB_ScoreSymbol(struct Sprite* sprite) static void SpriteCB_ScoreSymbolBest(struct Sprite* sprite) { sprite->data[0]++; - sprite->pos2.y = -(sprite->data[0] * 2); + sprite->y2 = -(sprite->data[0] * 2); - if (sprite->pos2.y < -12) - sprite->pos2.y = -12; + if (sprite->y2 < -12) + sprite->y2 = -12; if (sprite->animEnded) DestroySprite(sprite); } @@ -3265,7 +3264,7 @@ static void SpriteCB_CountdownNumber(struct Sprite* sprite) break; } - sprite->pos2.y = sprite->sYPos; + sprite->y2 = sprite->sYPos; } #undef sState @@ -3301,7 +3300,7 @@ static void SpriteCB_Start(struct Sprite* sprite) break; } - sprite->pos2.y = sprite->data[1]; + sprite->y2 = sprite->data[1]; } static void TryUpdateProgressBar(u16 current, u16 limit) @@ -3446,8 +3445,8 @@ static bool8 UpdateBlenderLandScreenShake(void) static void SpriteCB_PlayerArrow(struct Sprite* sprite) { - sprite->pos2.x = -(sBerryBlender->bg_X); - sprite->pos2.y = -(sBerryBlender->bg_Y); + sprite->x2 = -(sBerryBlender->bg_X); + sprite->y2 = -(sBerryBlender->bg_Y); } static void TryUpdateBerryBlenderRecord(void) @@ -3860,13 +3859,13 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3 case 0: case 3: txtColor[0] = TEXT_COLOR_WHITE; - txtColor[1] = TEXT_COLOR_DARK_GREY; - txtColor[2] = TEXT_COLOR_LIGHT_GREY; + txtColor[1] = TEXT_COLOR_DARK_GRAY; + txtColor[2] = TEXT_COLOR_LIGHT_GRAY; break; case 1: txtColor[0] = TEXT_COLOR_TRANSPARENT; - txtColor[1] = TEXT_COLOR_DARK_GREY; - txtColor[2] = TEXT_COLOR_LIGHT_GREY; + txtColor[1] = TEXT_COLOR_DARK_GRAY; + txtColor[2] = TEXT_COLOR_LIGHT_GRAY; break; case 2: txtColor[0] = TEXT_COLOR_TRANSPARENT; diff --git a/src/berry_crush.c b/src/berry_crush.c index 90bc7150d2..5504d05d6e 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -38,200 +38,352 @@ #include "constants/rgb.h" #include "constants/songs.h" +#define MAX_TIME (10 * 60 * 60) // Timer can go up to 9:59:59 + +#define TAG_CRUSHER_BASE 1 +#define PALTAG_EFFECT 2 // The next two gfx tags share this pal tag +#define GFXTAG_IMPACT 2 +#define GFXTAG_SPARKLE 3 +#define TAG_TIMER_DIGITS 4 +#define TAG_PLAYER1_BERRY 5 +#define TAG_PLAYER2_BERRY 6 +#define TAG_PLAYER3_BERRY 7 +#define TAG_PLAYER4_BERRY 8 +#define TAG_PLAYER5_BERRY 9 + +#define TAG_COUNTDOWN 0x1000 + +#define CRUSHER_START_Y (-104) + +enum { + RUN_CMD, + SCHEDULE_CMD, +}; + +// IDs for the main berry crush game functions +enum { + CMD_NONE, + CMD_FADE, + CMD_WAIT_FADE, + CMD_PRINT_MSG, + CMD_SHOW_GAME, + CMD_HIDE_GAME, + CMD_READY_BEGIN, + CMD_ASK_PICK_BERRY, + CMD_PICK_BERRY, + CMD_WAIT_BERRIES, + CMD_DROP_BERRIES, + CMD_DROP_LID, + CMD_COUNTDOWN, + CMD_PLAY_GAME_LEADER, + CMD_PLAY_GAME_MEMBER, + CMD_FINISH_GAME, + CMD_TIMES_UP, + CMD_CALC_RESULTS, + CMD_SHOW_RESULTS, + CMD_SAVE, + CMD_ASK_PLAY_AGAIN, + CMD_COMM_PLAY_AGAIN, + CMD_PLAY_AGAIN_YES, + CMD_PLAY_AGAIN_NO, + CMD_CLOSE_LINK, + CMD_QUIT, +}; + +enum { + MSG_PICK_BERRY, + MSG_WAIT_PICK, + MSG_POWDER, + MSG_SAVING, + MSG_PLAY_AGAIN, + MSG_NO_BERRIES, + MSG_DROPPED, + MSG_TIMES_UP, + MSG_COMM_STANDBY, +}; + +#define F_MSG_CLEAR (1 << 0) +#define F_MSG_EXPAND (1 << 1) + +// Main states for the game. Many are assigned but never checked +enum { + STATE_INIT = 1, + STATE_RESET, + STATE_PICK_BERRY, + STATE_DROP_BERRIES, + STATE_DROP_LID, + STATE_COUNTDOWN, + STATE_PLAYING, + STATE_FINISHED, + STATE_TIMES_UP, + STATE_10, // Unused + STATE_RESULTS_PRESSES, + STATE_RESULTS_RANDOM, + STATE_RESULTS_CRUSHING, + STATE_14, // Unused + STATE_PLAY_AGAIN, +}; + +#define RESULTS_STATE_START STATE_RESULTS_PRESSES +#define RESULTS_STATE_END STATE_RESULTS_CRUSHING + +// IDs for each results page that shows in succession at the game's end. +// Only 3 pages are shown for a given game. Presses and Crushing are always shown 1st and 3rd. +// The 2nd page is random, and can be rankings for either Neatness, Cooperative, or Power. +enum { + RESULTS_PAGE_PRESSES, + RESULTS_PAGE_RANDOM, + RESULTS_PAGE_CRUSHING, + NUM_RESULTS_PAGES, +}; +// Random pages, see above +// "Neatness" is how many of the player's inputs were at a regular interval +// "Cooperative" is how often the player pressed A at the same time as others +// "Power" is how much of the time the player spent pressing A +enum { + RESULTS_PAGE_NEATNESS, + RESULTS_PAGE_COOPERATIVE, + RESULTS_PAGE_POWER, + NUM_RANDOM_RESULTS_PAGES +}; + +#define PLAY_AGAIN_YES 0 +#define PLAY_AGAIN_NO 1 +#define PLAY_AGAIN_NO_BERRIES 3 + +enum { + COLORID_GRAY, + COLORID_BLACK, + COLORID_LIGHT_GRAY, + COLORID_BLUE, + COLORID_GREEN, + COLORID_RED, +}; + +// Flags for the inputFlags field +// Field is 16 bits; 3 bits for each player, last bit is unused +// The first two bits are interchangeable +// Needlessly complicated system, the inputState field is sufficient by itself +#define F_INPUT_HIT_A (1 << 0) +#define F_INPUT_HIT_B (1 << 1) +#define F_INPUT_HIT_SYNC (1 << 2) // Input at same time as another player +#define INPUT_FLAGS_PER_PLAYER 3 +#define INPUT_FLAG_MASK ((1 << INPUT_FLAGS_PER_PLAYER) - 1) + +// Values for the inputState field +enum { + INPUT_STATE_NONE, + INPUT_STATE_HIT, // Hit the crusher + INPUT_STATE_HIT_SYNC, // Hit the crusher at same time as another player +}; + +// No reason for this to be 2 +// Simply a flag for whether a given player has sent their data this round +// Data is only sent if the player is the leader or if they pressed A +#define SEND_GAME_STATE 2 + struct BerryCrushGame_Player { - u8 unk0[PLAYER_NAME_LENGTH + 1 + 4]; - u16 unkC; - u16 unkE; - u16 unk10; - u16 unk12; - u16 unk14; - u16 unk16; - u16 unk18; - u16 unk1A; - u8 unk1B; - u8 unk1C; + u8 name[PLAYER_NAME_LENGTH + 1 + 4]; + u16 berryId; + u16 inputTime; + u16 neatInputStreak; + u16 timeSincePrevInput; + u16 maxNeatInputStreak; + u16 numAPresses; + u16 numSyncedAPresses; + u16 timePressingA; + u8 inputFlags; + u8 inputState; }; -struct BerryCrushGame_4E +// This data is set locally and sent to the other players +struct BerryCrushGame_LocalState { - u16 unk0; - u16 unk2; - u8 unk4_0:1; - u8 unk4_1:1; - u8 unk4_2:1; - u8 unk4_3:5; - s8 unk5; - u16 unk6; - u16 unk8; - u16 unkA; - u16 unkC; + u16 sendFlag; + bool8 endGame:1; + bool8 bigSparkle:1; + bool8 pushedAButton:1; + u8 playerPressedAFlags:5; // 1 bit for each player + s8 vibration; + u16 depth; + u16 timer; + u16 inputFlags; + u16 sparkleAmount; }; -struct BerryCrushGame_40 +// This data is read from another player's local state above by casting the recvCmd buffer +// It is identical with exception to the addition of rfuCmd +struct BerryCrushGame_LinkState { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; - s16 unkC; - s16 unkE; + u16 rfuCmd; + u16 sendFlag; + bool8 endGame:1; + bool8 bigSparkle:1; + bool8 pushedAButton:1; + u8 playerPressedAFlags:5; + s8 vibration; + u16 depth; + u16 timer; + u16 inputFlags; + u16 sparkleAmount; }; -struct BerryCrushGame_5C +struct BerryCrushGame_Results { - u16 unk00; - u8 unk02_0:1; - u8 unk02_1:1; - u8 unk02_2:1; - u8 unk02_3:5; - s8 unk03; - u16 unk04; - u16 unk06; - u16 unk08; - u16 unk0A; + u32 powder; + u16 time; + u16 targetPressesPerSec; // Never read + u16 silkiness; + u16 totalAPresses; + u16 stats[2][MAX_RFU_PLAYERS]; + u8 playerIdsRanked[2][MAX_RFU_PLAYERS + 3]; }; -struct BerryCrushGame_68 +// playerIdsRanked above has 3 additional elements after the players. +// Only 1 of these 2*3 is ever used, and it stores the id for which +// random results page to show. Its define below is for readability. +#define randomPageId playerIdsRanked[0][7] + +// Holds position data for various player-associated graphics +struct BerryCrushPlayerCoords { - u32 unk00; - u16 unk04; - u16 unk06; - u16 unk08; - u16 unk0A; - u16 unk0C[2][5]; - u8 unk20[2][8]; + u8 playerId; + u8 windowGfxX; + u8 windowGfxY; + s16 impactXOffset; + s16 impactYOffset; + s16 berryXOffset; + s16 berryXDest; }; -struct BerryCrushGame_138_C +struct BerryCrushGame_Gfx { - u8 unk0; - u8 unk1; - u8 unk2; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; -}; - -struct BerryCrushGame_138 -{ - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - s16 unk4; - s16 unk6; - s16 unk8; - const struct BerryCrushGame_138_C *unkC[5]; - struct Sprite *unk20; - struct Sprite *unk24[5]; - struct Sprite *unk38[5]; - struct Sprite *unk4C[11]; - struct Sprite *unk78[2]; - u8 unk80; - u8 filler81; - u8 unk82; - u8 unk83[5]; - u16 unk88[4][0x800]; + u8 counter; + u8 vibrationIdx; + u8 numVibrations; + bool8 vibrating; + s16 minutes; + s16 secondsInt; + s16 secondsFrac; + const struct BerryCrushPlayerCoords *playerCoords[MAX_RFU_PLAYERS]; + struct Sprite *coreSprite; + struct Sprite *impactSprites[MAX_RFU_PLAYERS]; + struct Sprite *berrySprites[MAX_RFU_PLAYERS]; + struct Sprite *sparkleSprites[11]; + struct Sprite *timerSprites[2]; + u8 resultsState; + u8 unused; + u8 resultsWindowId; + u8 nameWindowIds[MAX_RFU_PLAYERS]; + u16 bgBuffers[4][0x800]; }; struct BerryCrushGame { - MainCallback unk0; - u32 (* unk4)(struct BerryCrushGame *, u8 *); - u8 unk8; - u8 unk9; - u8 mainTask; - u8 unkB; - u8 unkC; - u8 unkD; - u8 unkE; - u8 unkF; - u16 unk10; - u16 unk12; - u16 unk14; - u16 unk16; - s16 unk18; - s16 unk1A; - s32 unk1C; - s32 unk20; - u8 unk24; - u8 unk25_0:1; - u8 unk25_1:1; - u8 unk25_2:1; - u8 unk25_3:1; - u8 unk25_4:1; - u8 unk25_5:3; - u16 unk26; - u16 unk28; - s16 unk2A; - s16 unk2C; - s16 unk2E; - s16 unk30; - s16 unk32; - s16 unk34; - u8 unk36[0xC]; - u16 unk42[6]; - u16 unk4E[7]; - struct BerryCrushGame_5C unk5C; - struct BerryCrushGame_68 unk68; - struct BerryCrushGame_Player unk98[5]; - struct BerryCrushGame_138 unk138; + MainCallback exitCallback; + u32 (*cmdCallback)(struct BerryCrushGame *, u8 *); + u8 localId; + u8 playerCount; + u8 taskId; + u8 textSpeed; + u8 cmdState; + u8 unused; // Never read + u8 nextCmd; + u8 afterPalFadeCmd; + u16 cmdTimer; + u16 gameState; + u16 playAgainState; + u16 pressingSpeed; + s16 targetAPresses; + s16 totalAPresses; + s32 powder; + s32 targetDepth; + u8 newDepth; + bool8 noRoomForPowder:1; // Never read + bool8 newRecord:1; + bool8 playedSound:1; + bool8 endGame:1; + bool8 bigSparkle:1; + u8 sparkleAmount:3; + u16 leaderTimer; + u16 timer; + s16 depth; + s16 vibration; + s16 bigSparkleCounter; + s16 numBigSparkles; + s16 numBigSparkleChecks; + s16 sparkleCounter; + u8 commandArgs[12]; + u16 sendCmd[6]; + u16 recvCmd[7]; + struct BerryCrushGame_LocalState localState; + struct BerryCrushGame_Results results; + struct BerryCrushGame_Player players[MAX_RFU_PLAYERS]; + struct BerryCrushGame_Gfx gfx; }; static void VBlankCB(void); static void MainCB(void); static void MainTask(u8); -static void ParseName_Options(struct BerryCrushGame *); -void sub_8022BEC(u16, u8, u8 *); -static void BerryCrush_SetPaletteFadeParams(u8 *, bool8, u32, s8, u8, u8, u16); -static int sub_8021450(struct BerryCrushGame *); -void sub_8022588(struct BerryCrushGame *); -void sub_8022600(struct BerryCrushGame *); -void sub_80226D0(struct BerryCrushGame *); -void sub_8022730(struct BerryCrushGame *); -void sub_8022960(struct BerryCrushGame *); -void sub_8022524(struct BerryCrushGame_138 *, u16); -void sub_8022B28(struct Sprite *); -void sub_8022554(struct BerryCrushGame_138 *r0); -void sub_8024578(struct BerryCrushGame *); -void sub_8024644(u8 *, u32, u32, u32, u32); -static void sub_8022A20(struct Sprite *sprite); -static u32 BerryCrushCommand_BeginNormalPaletteFade(struct BerryCrushGame *r6, u8 *r1); -static u32 sub_8022CB0(struct BerryCrushGame *r4, u8 *r5); -static u32 sub_8022D14(struct BerryCrushGame *r7, u8 *r5); -static u32 sub_8022E1C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_8022E3C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_8022E5C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_8022EAC(struct BerryCrushGame *r4, u8 *r5); -static u32 sub_8022F04(struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1); -static u32 sub_8022F1C(struct BerryCrushGame *r5, u8 *r2); -static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_80232EC(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_80238F0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_8023998(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6); -static u32 sub_8023CAC(struct BerryCrushGame *r7, __attribute__((unused)) u8 *r1); -static u32 sub_8024048(struct BerryCrushGame *r5, u8 *r6); -static u32 sub_8024134(struct BerryCrushGame *r5, u8 *r4); -static u32 sub_8024228(struct BerryCrushGame *r5, u8 *r6); -static u32 sub_80242E0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1); -static u32 sub_80243BC(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1); -static u32 sub_8024444(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1); -static u32 sub_8024508(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1); -static u32 sub_8024568(__attribute__((unused)) struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1); +static void SetNamesAndTextSpeed(struct BerryCrushGame *); +static void RunOrScheduleCommand(u16, u8, u8 *); +static void SetPaletteFadeArgs(u8 *, bool8, u32, s8, u8, u8, u16); +static s32 UpdateGame(struct BerryCrushGame *); +static void CreatePlayerNameWindows(struct BerryCrushGame *); +static void DrawPlayerNameWindows(struct BerryCrushGame *); +static void CopyPlayerNameWindowGfxToBg(struct BerryCrushGame *); +static void CreateGameSprites(struct BerryCrushGame *); +static void DestroyGameSprites(struct BerryCrushGame *); +static void PrintTimer(struct BerryCrushGame_Gfx *, u16); +static void SpriteCB_Sparkle_Init(struct Sprite *); +static void HideTimer(struct BerryCrushGame_Gfx *); +static void ResetGame(struct BerryCrushGame *); +static void SetPrintMessageArgs(u8 *, u8, u8, u16, u8); +static void SpriteCB_Impact(struct Sprite *); +static u32 Cmd_BeginNormalPaletteFade(struct BerryCrushGame *, u8 *); +static u32 Cmd_WaitPaletteFade(struct BerryCrushGame *, u8 *); +static u32 Cmd_PrintMessage(struct BerryCrushGame *, u8 *); +static u32 Cmd_ShowGameDisplay(struct BerryCrushGame *, u8 *); +static u32 Cmd_HideGameDisplay(struct BerryCrushGame *, u8 *); +static u32 Cmd_SignalReadyToBegin(struct BerryCrushGame *, u8 *); +static u32 Cmd_AskPickBerry(struct BerryCrushGame *, u8 *); +static u32 Cmd_GoToBerryPouch(struct BerryCrushGame *, u8 *); +static u32 Cmd_WaitForOthersToPickBerries(struct BerryCrushGame *, u8 *); +static u32 Cmd_DropBerriesIntoCrusher(struct BerryCrushGame *, u8 *); +static u32 Cmd_DropLid(struct BerryCrushGame *, u8 *); +static u32 Cmd_Countdown(struct BerryCrushGame *, u8 *); +static u32 Cmd_PlayGame_Leader(struct BerryCrushGame *, u8 *); +static u32 Cmd_PlayGame_Member(struct BerryCrushGame *, u8 *); +static u32 Cmd_FinishGame(struct BerryCrushGame *, u8 *); +static u32 Cmd_HandleTimeUp(struct BerryCrushGame *, u8 *); +static u32 Cmd_TabulateResults(struct BerryCrushGame *, u8 *); +static u32 Cmd_ShowResults(struct BerryCrushGame *, u8 *); +static u32 Cmd_SaveGame(struct BerryCrushGame *, u8 *); +static u32 Cmd_AskPlayAgain(struct BerryCrushGame *, u8 *); +static u32 Cmd_CommunicatePlayAgainResponses(struct BerryCrushGame *, u8 *); +static u32 Cmd_PlayAgain(struct BerryCrushGame *, u8 *); +static u32 Cmd_StopGame(struct BerryCrushGame *, u8 *); +static u32 Cmd_CloseLink(struct BerryCrushGame *, u8 *); +static u32 Cmd_Quit(struct BerryCrushGame *, u8 *); -static EWRAM_DATA struct BerryCrushGame *gBerryCrushGame = NULL; +static EWRAM_DATA struct BerryCrushGame *sGame = NULL; -static const u8 gUnknown_082F325C[] = { 1, 2, 4, 8, 16, 32, 64, 128 }; -static const u8 gUnknown_082F3264[] = { 0, 1, 2, 3, 5, 0, 0, 0 }; - -static const s8 gUnknown_082F326C[][7] = +static const u8 sBitTable[] = { + 1 << 0, + 1 << 1, + 1 << 2, + 1 << 3, + 1 << 4, + 1 << 5, + 1 << 6, + 1 << 7 +}; +// Additional A presses are counted depending on the number of players +// The bonus of 5 is unobtainable +static const u8 sSyncPressBonus[MAX_RFU_PLAYERS] = { 0, 1, 2, 3, 5 }; +ALIGNED(4) +static const s8 sIntroOutroVibrationData[][7] = { { 4, 1, 0, -1, 0, 0, 0}, { 4, 2, 0, -1, 0, 0, 0}, @@ -240,9 +392,8 @@ static const s8 gUnknown_082F326C[][7] = { 6, 4, 1, -2, -4, -2, 0}, }; -static const u8 sUnusedZero = 0; - -static const u8 gUnknown_082F3290[][4] = +ALIGNED(4) +static const u8 sVibrationData[MAX_RFU_PLAYERS][4] = { {3, 2, 1, 0}, {3, 3, 1, 0}, @@ -251,20 +402,20 @@ static const u8 gUnknown_082F3290[][4] = {3, 5, 3, 0}, }; -static const u8 *const gUnknown_082F32A4[] = +static const u8 *const sMessages[] = { - gText_ReadyToBerryCrush, - gText_WaitForAllChooseBerry, - gText_EndedWithXUnitsPowder, - gText_RecordingGameResults, - gText_PlayBerryCrushAgain, - gText_YouHaveNoBerries, - gText_MemberDroppedOut, - gText_TimesUpNoGoodPowder, - gText_CommunicationStandby2, + [MSG_PICK_BERRY] = gText_ReadyPickBerry, + [MSG_WAIT_PICK] = gText_WaitForAllChooseBerry, + [MSG_POWDER] = gText_EndedWithXUnitsPowder, + [MSG_SAVING] = gText_RecordingGameResults, + [MSG_PLAY_AGAIN] = gText_PlayBerryCrushAgain, + [MSG_NO_BERRIES] = gText_YouHaveNoBerries, + [MSG_DROPPED] = gText_MemberDroppedOut, + [MSG_TIMES_UP] = gText_TimesUpNoGoodPowder, + [MSG_COMM_STANDBY] = gText_CommunicationStandby2, }; -static const struct BgTemplate gUnknown_082F32C8[4] = +static const struct BgTemplate sBgTemplates[4] = { { .bg = 0, @@ -304,19 +455,18 @@ static const struct BgTemplate gUnknown_082F32C8[4] = }, }; - -static const u8 sBerryCrushTextColorTable[][3] = +static const u8 sTextColorTable[][3] = { - {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, - {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}, - {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_RED}, - {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, - {TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN}, - {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED}, + [COLORID_GRAY] = {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, + [COLORID_BLACK] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}, + [COLORID_LIGHT_GRAY] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_RED}, + [COLORID_BLUE] = {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, + [COLORID_GREEN] = {TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN}, + [COLORID_RED] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED}, }; -static const struct WindowTemplate sWindowTemplate_BerryCrushRankings = +static const struct WindowTemplate sWindowTemplate_Rankings = { .bg = 0, .tilemapLeft = 3, @@ -327,7 +477,7 @@ static const struct WindowTemplate sWindowTemplate_BerryCrushRankings = .baseBlock = 1 }; -static const struct WindowTemplate gUnknown_082F32F4[] = +static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS + 1] = { { .bg = 0, @@ -377,9 +527,9 @@ static const struct WindowTemplate gUnknown_082F32F4[] = DUMMY_WIN_TEMPLATE, }; -static const struct WindowTemplate gUnknown_082F3324[] = +static const struct WindowTemplate sWindowTemplates_Results[] = { - { + [STATE_RESULTS_PRESSES - RESULTS_STATE_START] = { .bg = 0, .tilemapLeft = 5, .tilemapTop = 2, @@ -388,7 +538,7 @@ static const struct WindowTemplate gUnknown_082F3324[] = .paletteNum = 15, .baseBlock = 1 }, - { + [STATE_RESULTS_RANDOM - RESULTS_STATE_START] = { .bg = 0, .tilemapLeft = 5, .tilemapTop = 2, @@ -397,7 +547,7 @@ static const struct WindowTemplate gUnknown_082F3324[] = .paletteNum = 15, .baseBlock = 1 }, - { + [STATE_RESULTS_CRUSHING - RESULTS_STATE_START] = { .bg = 0, .tilemapLeft = 4, .tilemapTop = 2, @@ -409,101 +559,105 @@ static const struct WindowTemplate gUnknown_082F3324[] = DUMMY_WIN_TEMPLATE, }; -static const u8 gUnknown_082F3344[][4] = +// The height of the results window depending on the number of players +// 2 players, 3 players, 4 players, or 5 players +static const u8 sResultsWindowHeights[][MAX_RFU_PLAYERS - 1] = { - {6, 8, 9, 11}, - {12, 14, 15, 16}, + {6, 8, 9, 11}, // "Presses" and "Neatness/Cooperative/Power" pages + {12, 14, 15, 16}, // "Crushing" page }; static const u32 sPressingSpeedConversionTable[] = { - 50000000 / (1 << 0), - 50000000 / (1 << 1), - 50000000 / (1 << 2), - 50000000 / (1 << 3), - 50000000 / (1 << 4), - 50000000 / (1 << 5), - 50000000 / (1 << 6), - 50000000 / (1 << 7), + 50000000, // 50 + 25000000, // 25 + 12500000, // 12.5 + 6250000, // 6.25 + 3125000, // 3.125 + 1562500, // 1.5625 + 781250, // 0.78125 + 390625 // 0.390625 }; -static const u16 gBerryCrushGrinderBasePal[] = INCBIN_U16("graphics/link_games/berrycrush_grinder_base.gbapal"); -static const u16 gBerryCrushMiscSpritesPal[] = INCBIN_U16("graphics/link_games/berrycrush_misc.gbapal"); -static const u16 gBerryCrushTimerDigitsPal[] = INCBIN_U16("graphics/link_games/berrycrush_timerdigits.gbapal"); -static const u32 gBerryCrushGrinderBaseGfx[] = INCBIN_U32("graphics/link_games/berrycrush_grinder_base.4bpp.lz"); -static const u32 gBerryCrushBtnPressGfx[] = INCBIN_U32("graphics/link_games/berrycrush_btnpress.4bpp.lz"); -static const u32 gBerryCrushSparkleGfx[] = INCBIN_U32("graphics/link_games/berrycrush_sparkle.4bpp.lz"); -static const u8 gBerryCrushTimerDigitsGfx[] = INCBIN_U8("graphics/link_games/berrycrush_timerdigits.4bpp.lz"); -static const u8 gBerryCrushGrinderTopTilemap[] = INCBIN_U8("graphics/link_games/berrycrush_grinder_top.bin.lz"); -static const u8 gBerryCrushContainerCapTilemap[] = INCBIN_U8("graphics/link_games/berrycrush_container_cap.bin.lz"); -static const u8 gBerryCrushBackgroundTilemap[] = INCBIN_U8("graphics/link_games/berrycrush_background.bin.lz"); +static const u16 sCrusherBase_Pal[] = INCBIN_U16("graphics/berry_crush/crusher_base.gbapal"); +static const u16 sEffects_Pal[] = INCBIN_U16("graphics/berry_crush/effects.gbapal"); +static const u16 sTimerDigits_Pal[] = INCBIN_U16("graphics/berry_crush/timer_digits.gbapal"); +static const u32 sCrusherBase_Gfx[] = INCBIN_U32("graphics/berry_crush/crusher_base.4bpp.lz"); +static const u32 sImpact_Gfx[] = INCBIN_U32("graphics/berry_crush/impact.4bpp.lz"); +static const u32 sSparkle_Gfx[] = INCBIN_U32("graphics/berry_crush/sparkle.4bpp.lz"); +static const u32 sTimerDigits_Gfx[] = INCBIN_U32("graphics/berry_crush/timer_digits.4bpp.lz"); +static const u8 sCrusherTop_Tilemap[] = INCBIN_U8("graphics/berry_crush/crusher_top.bin.lz"); +static const u8 sContainerCap_Tilemap[] = INCBIN_U8("graphics/berry_crush/container_cap.bin.lz"); +static const u8 sBg_Tilemap[] = INCBIN_U8("graphics/berry_crush/bg.bin.lz"); -static const u8 gUnknown_082F417C[][5] = +// Takes the number of players - 2 and a player id and returns the +// index into sPlayerCoords where that player should be seated +static const u8 sPlayerIdToPosId[MAX_RFU_PLAYERS - 1][MAX_RFU_PLAYERS] = { - {1, 3, 0, 0, 0}, - {0, 1, 3, 0, 0}, - {1, 3, 2, 4, 0}, + {1, 3}, + {0, 1, 3}, + {1, 3, 2, 4}, {0, 1, 3, 2, 4}, }; -static const struct BerryCrushGame_138_C gUnknown_082F4190[] = +static const struct BerryCrushPlayerCoords sPlayerCoords[MAX_RFU_PLAYERS] = { { - .unk0 = 0, - .unk1 = 0, - .unk2 = 0, - .unk4 = 0, - .unk6 = -16, - .unk8 = 0, - .unkA = 0, + .playerId = 0, + .windowGfxX = 0, + .windowGfxY = 0, + .impactXOffset = 0, + .impactYOffset = -16, + .berryXOffset = 0, + .berryXDest = 0, }, { - .unk0 = 1, - .unk1 = 0, - .unk2 = 3, - .unk4 = -28, - .unk6 = -4, - .unk8 = -24, - .unkA = 16, + .playerId = 1, + .windowGfxX = 0, + .windowGfxY = 3, + .impactXOffset = -28, + .impactYOffset = -4, + .berryXOffset = -24, + .berryXDest = 16, }, { - .unk0 = 2, - .unk1 = 0, - .unk2 = 6, - .unk4 = -16, - .unk6 = 20, - .unk8 = -8, - .unkA = 16, + .playerId = 2, + .windowGfxX = 0, + .windowGfxY = 6, + .impactXOffset = -16, + .impactYOffset = 20, + .berryXOffset = -8, + .berryXDest = 16, }, { - .unk0 = 3, - .unk1 = 20, - .unk2 = 3, - .unk4 = 28, - .unk6 = -4, - .unk8 = 32, - .unkA = -8, + .playerId = 3, + .windowGfxX = 20, + .windowGfxY = 3, + .impactXOffset = 28, + .impactYOffset = -4, + .berryXOffset = 32, + .berryXDest = -8, }, { - .unk0 = 4, - .unk1 = 20, - .unk2 = 6, - .unk4 = 16, - .unk6 = 20, - .unk8 = 16, - .unkA = -8, + .playerId = 4, + .windowGfxX = 20, + .windowGfxY = 6, + .impactXOffset = 16, + .impactYOffset = 20, + .berryXOffset = 16, + .berryXDest = -8, } }; -static const s8 gUnknown_082F41CC[][2] = +static const s8 sImpactCoords[][2] = { { 0, 0}, {-1, 0}, { 1, 1}, }; -static const s8 gUnknown_082F41D2[][2] = +static const s8 sSparkleCoords[][2] = { { 0, 0}, {-16, -4}, @@ -518,41 +672,42 @@ static const s8 gUnknown_082F41D2[][2] = { 40, -16}, }; -static const u16 gUnknown_082F41E8[] = {5, 6, 7, 8, 9, 0}; - -static const struct CompressedSpriteSheet gUnknown_082F41F4[] = +static const u16 sPlayerBerrySpriteTags[MAX_RFU_PLAYERS] = { - { .data = gBerryCrushGrinderBaseGfx, .size = 0x800, .tag = 1 }, - { .data = gBerryCrushBtnPressGfx, .size = 0xE00, .tag = 2 }, - { .data = gBerryCrushSparkleGfx, .size = 0x700, .tag = 3 }, + TAG_PLAYER1_BERRY, + TAG_PLAYER2_BERRY, + TAG_PLAYER3_BERRY, + TAG_PLAYER4_BERRY, + TAG_PLAYER5_BERRY }; -static const struct SpriteSheet gUnknown_082F420C[] = +// sTimerDigits_Gfx is part of this array but is (apparently) uncompressed +// It gets cast to raw uncompressed data when used in sDigitObjTemplates +static const struct CompressedSpriteSheet sSpriteSheets[] = { - { .data = gBerryCrushTimerDigitsGfx, .size = 0x2C0, .tag = 4 }, + { .data = sCrusherBase_Gfx, .size = 0x800, .tag = TAG_CRUSHER_BASE }, + { .data = sImpact_Gfx, .size = 0xE00, .tag = GFXTAG_IMPACT }, + { .data = sSparkle_Gfx, .size = 0x700, .tag = GFXTAG_SPARKLE }, + { .data = sTimerDigits_Gfx, .size = 0x2C0, .tag = TAG_TIMER_DIGITS }, {} }; -static const struct SpritePalette gUnknown_082F421C[] = +static const struct SpritePalette sSpritePals[] = { - { .data = gBerryCrushGrinderBasePal, .tag = 1 }, - { .data = gBerryCrushMiscSpritesPal, .tag = 2 }, -}; - -static const struct SpritePalette gUnknown_082F422C[] = -{ - { .data = gBerryCrushTimerDigitsPal, .tag = 4 }, + { .data = sCrusherBase_Pal, .tag = TAG_CRUSHER_BASE }, + { .data = sEffects_Pal, .tag = PALTAG_EFFECT }, // For the impact and sparkle effects + { .data = sTimerDigits_Pal, .tag = TAG_TIMER_DIGITS }, {} }; -static const union AnimCmd gUnknown_082F423C[] = +static const union AnimCmd sAnim_CrusherBase[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gUnknown_082F4244[] = +static const union AnimCmd sAnim_Impact_Small[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -560,7 +715,7 @@ static const union AnimCmd gUnknown_082F4244[] = ANIMCMD_END }; -static const union AnimCmd gUnknown_082F4254[] = +static const union AnimCmd sAnim_Impact_Big[] = { ANIMCMD_FRAME(48, 2), ANIMCMD_FRAME(64, 2), @@ -569,7 +724,7 @@ static const union AnimCmd gUnknown_082F4254[] = ANIMCMD_END }; -static const union AnimCmd gUnknown_082F4268[] = +static const union AnimCmd sAnim_Sparkle_Small[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(4, 2), @@ -580,7 +735,7 @@ static const union AnimCmd gUnknown_082F4268[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_082F4284[] = +static const union AnimCmd sAnim_Sparkle_Big[] = { ANIMCMD_FRAME(24, 4), ANIMCMD_FRAME(28, 4), @@ -593,124 +748,124 @@ static const union AnimCmd gUnknown_082F4284[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_082F42A8[] = +static const union AnimCmd sAnim_Timer[] = { ANIMCMD_FRAME(20, 0), ANIMCMD_END }; -static const union AnimCmd gUnknown_082F42B0[] = +static const union AnimCmd sAnim_PlayerBerry[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AffineAnimCmd gUnknown_082F42B8[] = +static const union AffineAnimCmd sAffineAnim_PlayerBerry_0[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 2, 1), AFFINEANIMCMD_JUMP(1) }; -static const union AffineAnimCmd gUnknown_082F42D0[] = +static const union AffineAnimCmd sAffineAnim_PlayerBerry_1[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(0, 0, -2, 1), AFFINEANIMCMD_JUMP(1) }; -static const union AnimCmd *const gUnknown_082F42E8[] = +static const union AnimCmd *const sAnims_CrusherBase[] = { - gUnknown_082F423C + sAnim_CrusherBase }; -static const union AnimCmd *const gUnknown_082F42EC[] = +static const union AnimCmd *const sAnims_Impact[] = { - gUnknown_082F4244, - gUnknown_082F4254, + sAnim_Impact_Small, + sAnim_Impact_Big, }; -static const union AnimCmd *const gUnknown_082F42F4[] = +static const union AnimCmd *const sAnims_Sparkle[] = { - gUnknown_082F4268, - gUnknown_082F4284, + sAnim_Sparkle_Small, + sAnim_Sparkle_Big, }; -static const union AnimCmd *const gUnknown_082F42FC[] = +static const union AnimCmd *const sAnims_Timer[] = { - gUnknown_082F42A8 + sAnim_Timer }; -static const union AnimCmd *const gUnknown_082F4300[] = +static const union AnimCmd *const sAnims_PlayerBerry[] = { - gUnknown_082F42B0 + sAnim_PlayerBerry }; -static const union AffineAnimCmd *const gUnknown_082F4304[] = +static const union AffineAnimCmd *const sAffineAnims_PlayerBerry[] = { - gUnknown_082F42B8, - gUnknown_082F42D0, + sAffineAnim_PlayerBerry_0, + sAffineAnim_PlayerBerry_1, }; -static const struct SpriteTemplate gUnknown_082F430C = +static const struct SpriteTemplate sSpriteTemplate_CrusherBase = { - .tileTag = 1, - .paletteTag = 1, + .tileTag = TAG_CRUSHER_BASE, + .paletteTag = TAG_CRUSHER_BASE, .oam = &gOamData_AffineOff_ObjNormal_64x64, - .anims = gUnknown_082F42E8, + .anims = sAnims_CrusherBase, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_082F4324 = +static const struct SpriteTemplate sSpriteTemplate_Impact = { - .tileTag = 2, - .paletteTag = 2, + .tileTag = GFXTAG_IMPACT, + .paletteTag = PALTAG_EFFECT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_082F42EC, + .anims = sAnims_Impact, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8022A20 + .callback = SpriteCB_Impact }; -static const struct SpriteTemplate gUnknown_082F433C = +static const struct SpriteTemplate sSpriteTemplate_Sparkle = { - .tileTag = 3, - .paletteTag = 2, + .tileTag = GFXTAG_SPARKLE, + .paletteTag = PALTAG_EFFECT, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_082F42F4, + .anims = sAnims_Sparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_082F4354 = +static const struct SpriteTemplate sSpriteTemplate_Timer = { - .tileTag = 4, - .paletteTag = 4, + .tileTag = TAG_TIMER_DIGITS, + .paletteTag = TAG_TIMER_DIGITS, .oam = &gOamData_AffineOff_ObjNormal_8x16, - .anims = gUnknown_082F42FC, + .anims = sAnims_Timer, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_082F436C = +static const struct SpriteTemplate sSpriteTemplate_PlayerBerry = { - .tileTag = 5, - .paletteTag = 5, + .tileTag = TAG_PLAYER1_BERRY, + .paletteTag = TAG_PLAYER1_BERRY, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_082F4300, + .anims = sAnims_PlayerBerry, .images = NULL, - .affineAnims = gUnknown_082F4304, + .affineAnims = sAffineAnims_PlayerBerry, .callback = SpriteCallbackDummy }; -static const struct DigitObjUtilTemplate gUnknown_082F4384[] = +static const struct DigitObjUtilTemplate sDigitObjTemplates[] = { - { + { // Minutes .strConvMode = 1, .shape = 2, .size = 0, @@ -719,10 +874,10 @@ static const struct DigitObjUtilTemplate gUnknown_082F4384[] = .xDelta = 8, .x = 156, .y = 0, - .spriteSheet = gUnknown_082F420C, - .spritePal = gUnknown_082F422C, + .spriteSheet = (void*) &sSpriteSheets[3], + .spritePal = &sSpritePals[2], }, - { + { // Seconds .strConvMode = 0, .shape = 2, .size = 0, @@ -731,10 +886,10 @@ static const struct DigitObjUtilTemplate gUnknown_082F4384[] = .xDelta = 8, .x = 180, .y = 0, - .spriteSheet = gUnknown_082F420C, - .spritePal = gUnknown_082F422C, + .spriteSheet = (void*) &sSpriteSheets[3], + .spritePal = &sSpritePals[2], }, - { + { // 1/60ths of a second .strConvMode = 0, .shape = 2, .size = 0, @@ -743,79 +898,83 @@ static const struct DigitObjUtilTemplate gUnknown_082F4384[] = .xDelta = 8, .x = 204, .y = 0, - .spriteSheet = gUnknown_082F420C, - .spritePal = gUnknown_082F422C, + .spriteSheet = (void*) &sSpriteSheets[3], + .spritePal = &sSpritePals[2], } }; -static const u8 *const gUnknown_082F43B4[] = +static const u8 *const sResultsTexts[] = { - gText_SpaceTimes2, - gText_XDotY, - gText_Var1Berry, - gText_NeatnessRankings, - gText_CoopRankings, - gText_PressingPowerRankings, + [RESULTS_PAGE_PRESSES] = gText_SpaceTimes2, // " times" + [RESULTS_PAGE_RANDOM] = gText_XDotY, // "##.##", for Neatness, Cooperation, or Power value + [RESULTS_PAGE_CRUSHING] = gText_Var1Berry, + + [RESULTS_PAGE_NEATNESS + NUM_RESULTS_PAGES] = gText_NeatnessRankings, + [RESULTS_PAGE_COOPERATIVE + NUM_RESULTS_PAGES] = gText_CoopRankings, + [RESULTS_PAGE_POWER + NUM_RESULTS_PAGES] = gText_PressingPowerRankings, }; -static u32 (*const gUnknown_082F43CC[])(struct BerryCrushGame *, u8 *) = +static u32 (*const sBerryCrushCommands[])(struct BerryCrushGame * game, u8 * data) = { - NULL, - BerryCrushCommand_BeginNormalPaletteFade, - sub_8022CB0, - sub_8022D14, - sub_8022E1C, - sub_8022E3C, - sub_8022E5C, - sub_8022EAC, - sub_8022F04, - sub_8022F1C, - sub_8023070, - sub_80231B8, - sub_80232EC, - sub_80238F0, - sub_8023998, - sub_8023A30, - sub_8023BC0, - sub_8023CAC, - sub_8024048, - sub_8024134, - sub_8024228, - sub_80242E0, - sub_80243BC, - sub_8024444, - sub_8024508, - sub_8024568, + [CMD_NONE] = NULL, + [CMD_FADE] = Cmd_BeginNormalPaletteFade, + [CMD_WAIT_FADE] = Cmd_WaitPaletteFade, + [CMD_PRINT_MSG] = Cmd_PrintMessage, + [CMD_SHOW_GAME] = Cmd_ShowGameDisplay, + [CMD_HIDE_GAME] = Cmd_HideGameDisplay, + [CMD_READY_BEGIN] = Cmd_SignalReadyToBegin, + [CMD_ASK_PICK_BERRY] = Cmd_AskPickBerry, + [CMD_PICK_BERRY] = Cmd_GoToBerryPouch, + [CMD_WAIT_BERRIES] = Cmd_WaitForOthersToPickBerries, + [CMD_DROP_BERRIES] = Cmd_DropBerriesIntoCrusher, + [CMD_DROP_LID] = Cmd_DropLid, + [CMD_COUNTDOWN] = Cmd_Countdown, + [CMD_PLAY_GAME_LEADER] = Cmd_PlayGame_Leader, + [CMD_PLAY_GAME_MEMBER] = Cmd_PlayGame_Member, + [CMD_FINISH_GAME] = Cmd_FinishGame, + [CMD_TIMES_UP] = Cmd_HandleTimeUp, + [CMD_CALC_RESULTS] = Cmd_TabulateResults, + [CMD_SHOW_RESULTS] = Cmd_ShowResults, + [CMD_SAVE] = Cmd_SaveGame, + [CMD_ASK_PLAY_AGAIN] = Cmd_AskPlayAgain, + [CMD_COMM_PLAY_AGAIN] = Cmd_CommunicatePlayAgainResponses, + [CMD_PLAY_AGAIN_YES] = Cmd_PlayAgain, + [CMD_PLAY_AGAIN_NO] = Cmd_StopGame, + [CMD_CLOSE_LINK] = Cmd_CloseLink, + [CMD_QUIT] = Cmd_Quit, }; -static const u8 gUnknown_082F4434[][4] = +// Per group size, the number of A presses required to increase the number of sparkles. +static const u8 sSparkleThresholds[MAX_RFU_PLAYERS - 1][4] = { - {2, 4, 6, 7}, - {3, 5, 8, 11}, - {3, 7, 11, 15}, - {4, 8, 12, 17}, + {2, 4, 6, 7}, // 2 players + {3, 5, 8, 11}, // 3 players + {3, 7, 11, 15}, // 4 players + {4, 8, 12, 17}, // 5 players }; -static const u8 gUnknown_082F4444[] = {5, 7, 9, 12}; -static const u8 gUnknown_082F4448[] = {3, 7, 15, 31}; +// Per group size, the number of A presses required to get big sparkles +static const u8 sBigSparkleThresholds[MAX_RFU_PLAYERS - 1] = {5, 7, 9, 12}; -struct BerryCrushGame * GetBerryCrushGame(void) +static const u8 sReceivedPlayerBitmasks[] = {0x03, 0x07, 0x0F, 0x1F}; + +static struct BerryCrushGame * GetBerryCrushGame(void) { - return gBerryCrushGame; + return sGame; } -u32 QuitBerryCrush(MainCallback callback) +static u32 QuitBerryCrush(MainCallback exitCallback) { - if (!gBerryCrushGame) + if (!sGame) return 2; - if (!callback) - callback = gBerryCrushGame->unk0; + if (!exitCallback) + exitCallback = sGame->exitCallback; - DestroyTask(gBerryCrushGame->mainTask); - FREE_AND_SET_NULL(gBerryCrushGame); - SetMainCallback2(callback); - if (callback == CB2_ReturnToField) + DestroyTask(sGame->taskId); + FREE_AND_SET_NULL(sGame); + SetMainCallback2(exitCallback); + if (exitCallback == CB2_ReturnToField) { gTextFlags.autoScroll = TRUE; PlayNewMapMusic(MUS_POKE_CENTER); @@ -825,17 +984,23 @@ u32 QuitBerryCrush(MainCallback callback) return 0; } -void StartBerryCrush(MainCallback callback) +#define ERROR_EXIT(exitCallback) \ + { \ + SetMainCallback2(exitCallback); \ + Rfu.unk_10 = 0; \ + Rfu.unk_12 = 0; \ + Rfu.errorState = 1; \ + } + +void StartBerryCrush(MainCallback exitCallback) { u8 playerCount = 0; u8 multiplayerId; if (!gReceivedRemoteLinkPlayers || gWirelessCommType == 0) { - SetMainCallback2(callback); - Rfu.unk_10 = 0; - Rfu.unk_12 = 0; - Rfu.errorState = 1; + // Link disconnected + ERROR_EXIT(exitCallback); return; } @@ -843,56 +1008,52 @@ void StartBerryCrush(MainCallback callback) multiplayerId = GetMultiplayerId(); if (playerCount < 2 || multiplayerId >= playerCount) { - SetMainCallback2(callback); - Rfu.unk_10 = 0; - Rfu.unk_12 = 0; - Rfu.errorState = 1; + // Too few players, or invalid id + ERROR_EXIT(exitCallback); return; } - gBerryCrushGame = AllocZeroed(sizeof(*gBerryCrushGame)); - if (!gBerryCrushGame) + sGame = AllocZeroed(sizeof(*sGame)); + if (!sGame) { - SetMainCallback2(callback); - Rfu.unk_10 = 0; - Rfu.unk_12 = 0; - Rfu.errorState = 1; + // Alloc failed + ERROR_EXIT(exitCallback); return; } - gBerryCrushGame->unk0 = callback; - gBerryCrushGame->unk8 = multiplayerId; - gBerryCrushGame->unk9 = playerCount; - ParseName_Options(gBerryCrushGame); - gBerryCrushGame->unk12 = 1; - gBerryCrushGame->unkE = 1; - gBerryCrushGame->unkF = 6; - BerryCrush_SetPaletteFadeParams(gBerryCrushGame->unk36, 1, -1, 0, 16, 0, 0); - sub_8022BEC(4, 1, gBerryCrushGame->unk36); + sGame->exitCallback = exitCallback; + sGame->localId = multiplayerId; + sGame->playerCount = playerCount; + SetNamesAndTextSpeed(sGame); + sGame->gameState = STATE_INIT; + sGame->nextCmd = CMD_FADE; + sGame->afterPalFadeCmd = CMD_READY_BEGIN; + SetPaletteFadeArgs(sGame->commandArgs, TRUE, PALETTES_ALL, 0, 16, 0, RGB_BLACK); + RunOrScheduleCommand(CMD_SHOW_GAME, 1, sGame->commandArgs); SetMainCallback2(MainCB); - gBerryCrushGame->mainTask = CreateTask(MainTask, 8); - gTextFlags.autoScroll = 0; + sGame->taskId = CreateTask(MainTask, 8); + gTextFlags.autoScroll = FALSE; } static void GetBerryFromBag(void) { if (gSpecialVar_ItemId < FIRST_BERRY_INDEX || gSpecialVar_ItemId > LAST_BERRY_INDEX + 1) - gSpecialVar_ItemId = ITEM_CHERI_BERRY; + gSpecialVar_ItemId = FIRST_BERRY_INDEX; else RemoveBagItem(gSpecialVar_ItemId, 1); - gBerryCrushGame->unk98[gBerryCrushGame->unk8].unkC = gSpecialVar_ItemId - FIRST_BERRY_INDEX; - gBerryCrushGame->unkE = 1; - gBerryCrushGame->unkF = 9; - BerryCrush_SetPaletteFadeParams(gBerryCrushGame->unk36, 0, -1, 0, 16, 0, 0); - sub_8022BEC(4, 1, gBerryCrushGame->unk36); - gBerryCrushGame->mainTask = CreateTask(MainTask, 8); + sGame->players[sGame->localId].berryId = gSpecialVar_ItemId - FIRST_BERRY_INDEX; + sGame->nextCmd = CMD_FADE; + sGame->afterPalFadeCmd = CMD_WAIT_BERRIES; + SetPaletteFadeArgs(sGame->commandArgs, FALSE, PALETTES_ALL, 0, 16, 0, RGB_BLACK); + RunOrScheduleCommand(CMD_SHOW_GAME, 1, sGame->commandArgs); + sGame->taskId = CreateTask(MainTask, 8); SetMainCallback2(MainCB); } -static void BerryCrush_SetupMainTask(void) +static void ChooseBerry(void) { - DestroyTask(gBerryCrushGame->mainTask); + DestroyTask(sGame->taskId); ChooseBerryForMachine(GetBerryFromBag); } @@ -906,54 +1067,60 @@ static void BerryCrush_InitVBlankCB(void) SetVBlankCallback(NULL); } -static void BerryCrush_SaveResults(void) +static void SaveResults(void) { - u32 var0, var1; + u32 time, presses; - var0 = gBerryCrushGame->unk68.unk04; - var0 = Q_24_8(var0); - var0 = MathUtil_Div32(var0, Q_24_8(60)); - var1 = gBerryCrushGame->unk68.unk0A; - var1 = Q_24_8(var1); - var1 = MathUtil_Div32(var1, var0) & 0xFFFF; - gBerryCrushGame->unk16 = var1; - switch (gBerryCrushGame->unk9) + // Calculate pressing speed ((time / 60) / presses) + time = sGame->results.time; + time = Q_24_8(time); + time = MathUtil_Div32(time, Q_24_8(60)); + presses = sGame->results.totalAPresses; + presses = Q_24_8(presses); + presses = MathUtil_Div32(presses, time) & 0xFFFF; + sGame->pressingSpeed = presses; + + switch (sGame->playerCount) { case 2: - if (gBerryCrushGame->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[0]) + if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.pressingSpeeds[0]) { - gBerryCrushGame->unk25_1 = 1; - gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = gBerryCrushGame->unk16; + // New 2-player record + sGame->newRecord = TRUE; + gSaveBlock2Ptr->berryCrush.pressingSpeeds[0] = sGame->pressingSpeed; } break; case 3: - if (gBerryCrushGame->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[1]) + if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.pressingSpeeds[1]) { - gBerryCrushGame->unk25_1 = 1; - gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = gBerryCrushGame->unk16; + // New 3-player record + sGame->newRecord = TRUE; + gSaveBlock2Ptr->berryCrush.pressingSpeeds[1] = sGame->pressingSpeed; } break; case 4: - if (gBerryCrushGame->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[2]) + if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.pressingSpeeds[2]) { - gBerryCrushGame->unk25_1 = 1; - gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = gBerryCrushGame->unk16; + // New 4-player record + sGame->newRecord = TRUE; + gSaveBlock2Ptr->berryCrush.pressingSpeeds[2] = sGame->pressingSpeed; } break; case 5: - if (gBerryCrushGame->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[3]) + if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.pressingSpeeds[3]) { - gBerryCrushGame->unk25_1 = 1; - gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = gBerryCrushGame->unk16; + // New 5-player record + sGame->newRecord = TRUE; + gSaveBlock2Ptr->berryCrush.pressingSpeeds[3] = sGame->pressingSpeed; } break; } - gBerryCrushGame->unk1C = gBerryCrushGame->unk68.unk00; - if (GiveBerryPowder(gBerryCrushGame->unk1C)) + sGame->powder = sGame->results.powder; + if (GiveBerryPowder(sGame->powder)) return; - gBerryCrushGame->unk25_0 = 1; + sGame->noRoomForPowder = TRUE; } static void VBlankCB(void) @@ -973,46 +1140,44 @@ static void MainCB(void) static void MainTask(u8 taskId) { - if (gBerryCrushGame->unk4) - gBerryCrushGame->unk4(gBerryCrushGame, gBerryCrushGame->unk36); + if (sGame->cmdCallback) + sGame->cmdCallback(sGame, sGame->commandArgs); - sub_8021450(gBerryCrushGame); + UpdateGame(sGame); } -static void ParseName_Options(struct BerryCrushGame *arg0) +static void SetNamesAndTextSpeed(struct BerryCrushGame *game) { - u8 i = 0; - - for (; i < arg0->unk9; i++) - StringCopy(arg0->unk98[i].unk0, gLinkPlayers[i].name); - for (; i < 5; i++) + u8 i; + for (i = 0; i < game->playerCount; i++) + StringCopy(game->players[i].name, gLinkPlayers[i].name); + for (; i < MAX_RFU_PLAYERS; i++) { - memset(arg0->unk98[i].unk0, 1, PLAYER_NAME_LENGTH); - arg0->unk98[i].unk0[PLAYER_NAME_LENGTH] = EOS; + memset(game->players[i].name, 1, PLAYER_NAME_LENGTH); + game->players[i].name[PLAYER_NAME_LENGTH] = EOS; } switch (gSaveBlock2Ptr->optionsTextSpeed) { case OPTIONS_TEXT_SPEED_SLOW: - arg0->unkB = 8; + game->textSpeed = 8; break; case OPTIONS_TEXT_SPEED_MID: - arg0->unkB = 4; + game->textSpeed = 4; break; case OPTIONS_TEXT_SPEED_FAST: - arg0->unkB = 1; + game->textSpeed = 1; break; } } -// TODO: Everything from here on is likely in separate files. -s32 InitBerryCrushDisplay(void) +static s32 ShowGameDisplay(void) { struct BerryCrushGame *game = GetBerryCrushGame(); if (!game) return -1; - switch (game->unkC) + switch (game->cmdState) { case 0: SetVBlankCallback(NULL); @@ -1033,10 +1198,10 @@ s32 InitBerryCrushDisplay(void) break; case 3: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_082F32C8, ARRAY_COUNT(gUnknown_082F32C8)); - SetBgTilemapBuffer(1, game->unk138.unk88[0]); - SetBgTilemapBuffer(2, game->unk138.unk88[2]); - SetBgTilemapBuffer(3, game->unk138.unk88[3]); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + SetBgTilemapBuffer(1, game->gfx.bgBuffers[0]); + SetBgTilemapBuffer(2, game->gfx.bgBuffers[2]); + SetBgTilemapBuffer(3, game->gfx.bgBuffers[3]); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(2, 0, 0); @@ -1057,7 +1222,7 @@ s32 InitBerryCrushDisplay(void) CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); - DecompressAndCopyTileDataToVram(1, gUnknown_08DE34B8, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, gBerryCrush_Crusher_Gfx, 0, 0, 0); break; case 6: if (FreeTempTileDataBuffersIfPossible()) @@ -1065,16 +1230,16 @@ s32 InitBerryCrushDisplay(void) InitStandardTextBoxWindows(); InitTextBoxGfxAndPrinters(); - sub_8022588(game); - sub_8022600(game); + CreatePlayerNameWindows(game); + DrawPlayerNameWindows(game); gPaletteFade.bufferTransferDisabled = TRUE; break; case 7: - LoadPalette(gUnknown_08DE3398, 0, 0x180); - CopyToBgTilemapBuffer(1, gBerryCrushGrinderTopTilemap, 0, 0); - CopyToBgTilemapBuffer(2, gBerryCrushContainerCapTilemap, 0, 0); - CopyToBgTilemapBuffer(3, gBerryCrushBackgroundTilemap, 0, 0); - sub_80226D0(game); + LoadPalette(gBerryCrush_Crusher_Pal, 0, 0x180); + CopyToBgTilemapBuffer(1, sCrusherTop_Tilemap, 0, 0); + CopyToBgTilemapBuffer(2, sContainerCap_Tilemap, 0, 0); + CopyToBgTilemapBuffer(3, sBg_Tilemap, 0, 0); + CopyPlayerNameWindowGfxToBg(game); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); @@ -1082,35 +1247,35 @@ s32 InitBerryCrushDisplay(void) case 8: LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); - sub_8022730(game); + CreateGameSprites(game); SetGpuReg(REG_OFFSET_BG1VOFS, -gSpriteCoordOffsetY); ChangeBgX(1, 0, 0); ChangeBgY(1, 0, 0); break; case 9: gPaletteFade.bufferTransferDisabled = FALSE; - BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); ShowBg(0); ShowBg(1); ShowBg(2); ShowBg(3); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); BerryCrush_SetVBlankCB(); - game->unkC = 0; + game->cmdState = 0; return 1; } - game->unkC++; + game->cmdState++; return 0; } -int sub_802130C(void) +static s32 HideGameDisplay(void) { - struct BerryCrushGame *var0 = GetBerryCrushGame(); - if (!var0) + struct BerryCrushGame *game = GetBerryCrushGame(); + if (!game) return -1; - switch (var0->unkC) + switch (game->cmdState) { case 0: Rfu_SetLinkStandbyCallback(); @@ -1118,10 +1283,13 @@ int sub_802130C(void) case 1: if (!IsLinkTaskFinished()) return 0; - // fall through. The original author forgot to use "break" here - // because this will call BeginNormalPaletteFade() twice. + // fall through + // This will call BeginNormalPaletteFade() twice. +#ifdef BUGFIX + break; +#endif case 2: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); UpdatePaletteFade(); break; case 3: @@ -1152,106 +1320,121 @@ int sub_802130C(void) break; case 6: DestroyWirelessStatusIndicatorSprite(); - sub_8022960(var0); + DestroyGameSprites(game); DigitObjUtil_Free(); break; case 7: - var0->unkC = 0; + game->cmdState = 0; return 1; } - var0->unkC++; + game->cmdState++; return 0; } -static int sub_8021450(struct BerryCrushGame *arg0) +// Handles the crusher vibration and the timer +static s32 UpdateGame(struct BerryCrushGame *game) { - gSpriteCoordOffsetY = arg0->unk2A + arg0->unk2C; + gSpriteCoordOffsetY = game->depth + game->vibration; SetGpuReg(REG_OFFSET_BG1VOFS, -gSpriteCoordOffsetY); - if (arg0->unk12 == 7) - { - sub_8022524(&arg0->unk138, arg0->unk28); - } + + if (game->gameState == STATE_PLAYING) + PrintTimer(&game->gfx, game->timer); return 0; } -void sub_8021488(struct BerryCrushGame *arg0) +static void ResetCrusherPos(struct BerryCrushGame *game) { - arg0->unk2A = -104; - arg0->unk2C = 0; + game->depth = CRUSHER_START_Y; + game->vibration = 0; gSpriteCoordOffsetX = 0; - gSpriteCoordOffsetY = -104; + gSpriteCoordOffsetY = CRUSHER_START_Y; } -void sub_80214A8(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) +// Sprite data for berry sprites. Identical to fields for sparkle sprites +#define sX data[0] +#define sYSpeed data[1] +#define sYAccel data[2] +#define sXSpeed data[3] +#define sSinIdx data[4] +#define sSinSpeed data[5] +#define sAmplitude data[6] +// The last element (data[7]) is a bitfield. +// The first 15 bits are the y coord to stop at. +// The last bit is a flag for whether or not to move horizontally too +#define sBitfield data[7] +#define MASK_TARGET_Y 0x7FFF +#define F_MOVE_HORIZ 0x8000 + +static void CreateBerrySprites(struct BerryCrushGame *game, struct BerryCrushGame_Gfx *gfx) { u8 i; u8 spriteId; - s16 var0, var1; + s16 distance, var1; s16 *data; - int var3; - s16 var5; - u32 var6; + s32 amplitude; + s16 speed; + u32 var2; - for (i = 0; i < arg0->unk9; i++) + for (i = 0; i < game->playerCount; i++) { spriteId = AddCustomItemIconSprite( - &gUnknown_082F436C, - gUnknown_082F41E8[i], - gUnknown_082F41E8[i], - arg0->unk98[i].unkC + 133); - arg1->unk38[i] = &gSprites[spriteId]; - arg1->unk38[i]->oam.priority = 3; - arg1->unk38[i]->affineAnimPaused = TRUE; - arg1->unk38[i]->pos1.x = arg1->unkC[i]->unk8 + 120; - arg1->unk38[i]->pos1.y = -16; - data = arg1->unk38[i]->data; - var5 = 512; - data[1] = var5; - data[2] = 32; - data[7] = 112; - var0 = arg1->unkC[i]->unkA - arg1->unkC[i]->unk8; - var3 = var0; - if (var0 < 0) - var3 += 3; + &sSpriteTemplate_PlayerBerry, + sPlayerBerrySpriteTags[i], + sPlayerBerrySpriteTags[i], + game->players[i].berryId + FIRST_BERRY_INDEX); + gfx->berrySprites[i] = &gSprites[spriteId]; + gfx->berrySprites[i]->oam.priority = 3; + gfx->berrySprites[i]->affineAnimPaused = TRUE; + gfx->berrySprites[i]->x = gfx->playerCoords[i]->berryXOffset + 120; + gfx->berrySprites[i]->y = -16; + data = gfx->berrySprites[i]->data; + speed = 512; + sYSpeed = speed; + sYAccel = 32; + sBitfield = 112; // Setting bits in MASK_TARGET_Y + distance = gfx->playerCoords[i]->berryXDest - gfx->playerCoords[i]->berryXOffset; + amplitude = distance; + if (distance < 0) + amplitude += 3; - data[6] = var3 >> 2; - var0 *= 128; - var6 = var5 + 32; - var6 = var6 / 2; - var1 = MathUtil_Div16Shift(7, Q_8_8(63.5), var6); - data[0] = (u16)arg1->unk38[i]->pos1.x * 128; - data[3] = MathUtil_Div16Shift(7, var0, var1); + sAmplitude = amplitude >> 2; + distance *= 128; + var2 = speed + 32; + var2 = var2 / 2; + var1 = MathUtil_Div16Shift(7, Q_8_8(63.5), var2); + sX = (u16)gfx->berrySprites[i]->x * 128; + sXSpeed = MathUtil_Div16Shift(7, distance, var1); var1 = MathUtil_Mul16Shift(7, var1, 85); - data[4] = 0; - data[5] = MathUtil_Div16Shift(7, Q_8_8(63.5), var1); - data[7] |= 0x8000; - if (arg1->unkC[i]->unk8 < 0) - StartSpriteAffineAnim(arg1->unk38[i], 1); + sSinIdx = 0; + sSinSpeed = MathUtil_Div16Shift(7, Q_8_8(63.5), var1); + sBitfield |= F_MOVE_HORIZ; + if (gfx->playerCoords[i]->berryXOffset < 0) + StartSpriteAffineAnim(gfx->berrySprites[i], 1); } } -void sub_8021608(struct Sprite *sprite) +static void SpriteCB_DropBerryIntoCrusher(struct Sprite *sprite) { s16 *data = sprite->data; - data[1] += data[2]; - sprite->pos2.y += data[1] >> 8; - if (data[7] & 0x8000) + sYSpeed += sYAccel; + sprite->y2 += sYSpeed >> 8; + if (sBitfield & F_MOVE_HORIZ) { - sprite->data[0] += data[3]; - data[4] += data[5]; - sprite->pos2.x = Sin(data[4] >> 7, data[6]); - if ((data[7] & 0x8000) && (data[4] >> 7) > 126) + sprite->sX += sXSpeed; + sSinIdx += sSinSpeed; + sprite->x2 = Sin(sSinIdx >> 7, sAmplitude); + if ((sBitfield & F_MOVE_HORIZ) && (sSinIdx >> 7) > 126) { - sprite->pos2.x = 0; - data[7] &= 0x7FFF; + sprite->x2 = 0; + sBitfield &= MASK_TARGET_Y; } } - sprite->pos1.x = data[0] >> 7; - if (sprite->pos1.y + sprite->pos2.y >= (data[7] & 0x7FFF)) + sprite->x = sX >> 7; + if (sprite->y + sprite->y2 >= (sBitfield & MASK_TARGET_Y)) { sprite->callback = SpriteCallbackDummy; FreeSpriteOamMatrix(sprite); @@ -1259,398 +1442,406 @@ void sub_8021608(struct Sprite *sprite) } } -void sub_80216A8(struct BerryCrushGame *arg0, __attribute__((unused)) struct BerryCrushGame_138 *arg1) +#undef sX +#undef sYSpeed +#undef sYAccel +#undef sXSpeed +#undef sSinIdx +#undef sSinSpeed +#undef sAmplitude +#undef sBitfield +#undef MASK_TARGET_Y +#undef F_MOVE_HORIZ + +static void BerryCrushFreeBerrySpriteGfx(struct BerryCrushGame *game, struct BerryCrushGame_Gfx *gfx) { u8 i; - for (i = 0; i < arg0->unk9; i++) + for (i = 0; i < game->playerCount; i++) { - FreeSpritePaletteByTag(gUnknown_082F41E8[i]); - FreeSpriteTilesByTag(gUnknown_082F41E8[i]); + FreeSpritePaletteByTag(sPlayerBerrySpriteTags[i]); + FreeSpriteTilesByTag(sPlayerBerrySpriteTags[i]); } } -void sub_80216E0(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) +static void UpdateInputEffects(struct BerryCrushGame *game, struct BerryCrushGame_Gfx *gfx) { - u8 sp4; - struct BerryCrushGame_4E *var4E; + u8 numPlayersPressed; + struct BerryCrushGame_LinkState *linkState; u8 i; - u16 var, var2; + u16 temp1, xModifier; - sp4 = 0; - var4E = (struct BerryCrushGame_4E *)arg0->unk4E; - for (i = 0; i < arg0->unk9; i++) + numPlayersPressed = 0; + linkState = (struct BerryCrushGame_LinkState *)game->recvCmd; + + // Read inputs and update impact effects + for (i = 0; i < game->playerCount; i++) { - var = var4E->unkA >> (i * 3); - var &= 7; - if (var) - { - sp4++; - if (var & 0x4) - StartSpriteAnim(arg1->unk24[i], 1); - else - StartSpriteAnim(arg1->unk24[i], 0); + #define flags temp1 - arg1->unk24[i]->invisible = FALSE; - arg1->unk24[i]->animPaused = FALSE; - arg1->unk24[i]->pos2.x = gUnknown_082F41CC[(var % 4) - 1][0]; - arg1->unk24[i]->pos2.y = gUnknown_082F41CC[(var % 4) - 1][1]; + flags = linkState->inputFlags >> (i * INPUT_FLAGS_PER_PLAYER); + flags &= INPUT_FLAG_MASK; + if (flags) + { + numPlayersPressed++; + if (flags & F_INPUT_HIT_SYNC) + StartSpriteAnim(gfx->impactSprites[i], 1); // Big impact sprite + else + StartSpriteAnim(gfx->impactSprites[i], 0); // Small impact sprite + + gfx->impactSprites[i]->invisible = FALSE; + gfx->impactSprites[i]->animPaused = FALSE; + gfx->impactSprites[i]->x2 = sImpactCoords[(flags % (ARRAY_COUNT(sImpactCoords) + 1)) - 1][0]; + gfx->impactSprites[i]->y2 = sImpactCoords[(flags % (ARRAY_COUNT(sImpactCoords) + 1)) - 1][1]; } + + #undef flags } - if (sp4 == 0) + if (numPlayersPressed == 0) { - arg0->unk25_2 = 0; + game->playedSound = FALSE; } else { - var = (u8)(arg0->unk28 % 3); - var2 = var; - for (i = 0; i < var4E->unkC * 2 + 3; i++) - { - if (arg1->unk4C[i]->invisible) - { - arg1->unk4C[i]->callback = sub_8022B28; - arg1->unk4C[i]->pos1.x = gUnknown_082F41D2[i][0] + 120; - arg1->unk4C[i]->pos1.y = gUnknown_082F41D2[i][1] + 136 - (var * 4); - arg1->unk4C[i]->pos2.x = gUnknown_082F41D2[i][0] + (gUnknown_082F41D2[i][0] / (var2 * 4)); - arg1->unk4C[i]->pos2.y = gUnknown_082F41D2[i][1]; - if (var4E->unk4_1) - StartSpriteAnim(arg1->unk4C[i], 1); - else - StartSpriteAnim(arg1->unk4C[i], 0); + // Update sparkle effect + #define yModifier temp1 - var++; - if (var > 3) - var = 0; + yModifier = (u8)(game->timer % 3); + xModifier = yModifier; + for (i = 0; i < linkState->sparkleAmount * 2 + 3; i++) + { + if (gfx->sparkleSprites[i]->invisible) + { + gfx->sparkleSprites[i]->callback = SpriteCB_Sparkle_Init; + gfx->sparkleSprites[i]->x = sSparkleCoords[i][0] + 120; + gfx->sparkleSprites[i]->y = sSparkleCoords[i][1] + 136 - (yModifier * 4); + gfx->sparkleSprites[i]->x2 = sSparkleCoords[i][0] + (sSparkleCoords[i][0] / (xModifier * 4)); + gfx->sparkleSprites[i]->y2 = sSparkleCoords[i][1]; + if (linkState->bigSparkle) + StartSpriteAnim(gfx->sparkleSprites[i], 1); + else + StartSpriteAnim(gfx->sparkleSprites[i], 0); + + yModifier++; + if (yModifier > 3) + yModifier = 0; } } - if (arg0->unk25_2) + #undef yModifier + + if (game->playedSound) { - arg0->unk25_2 = 0; + game->playedSound = FALSE; } else { - if (sp4 == 1) + if (numPlayersPressed == 1) PlaySE(SE_MUD_BALL); else PlaySE(SE_BREAKABLE_DOOR); - arg0->unk25_2 = 1; + game->playedSound = TRUE; } } } -bool32 sub_80218D4(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) +static bool32 AreEffectsFinished(struct BerryCrushGame *game, struct BerryCrushGame_Gfx *gfx) { u8 i; - for (i = 0; i < arg0->unk9; i++) + // Are any impact sprites active + for (i = 0; i < game->playerCount; i++) { - if (!arg1->unk24[i]->invisible) + if (!gfx->impactSprites[i]->invisible) return FALSE; } - for (i = 0; i < 11; i++) + // Are any sparkle sprites active + for (i = 0; i < ARRAY_COUNT(gfx->sparkleSprites); i++) { - if (!arg1->unk4C[i]->invisible) + if (!gfx->sparkleSprites[i]->invisible) return FALSE; } - if (arg0->unk2C != 0) - arg0->unk2C = 0; + if (game->vibration != 0) + game->vibration = 0; return TRUE; } -void sub_8021944(struct BerryCrushGame_138 *arg0, u16 arg1) +static void FramesToMinSec(struct BerryCrushGame_Gfx *gfx, u16 frames) { u8 i = 0; - u32 r7 = 0; + u32 fractionalFrames = 0; s16 r3 = 0; - arg0->unk4 = arg1 / 3600; - arg0->unk6 = (arg1 % 3600) / 60; - r3 = MathUtil_Mul16(Q_8_8(arg1 % 60), 4); + gfx->minutes = frames / (60 * 60); + gfx->secondsInt = (frames % (60 * 60)) / 60; + r3 = MathUtil_Mul16(Q_8_8(frames % 60), 4); for (i = 0; i < 8; i++) { if ((r3 >> (7 - i)) & 1) - r7 += sPressingSpeedConversionTable[i]; + fractionalFrames += sPressingSpeedConversionTable[i]; } - arg0->unk8 = r7 / 1000000; + gfx->secondsFrac = fractionalFrames / 1000000; } -void sub_80219C8(u8 windowId, u8 left, u8 colorId, const u8 *string) +static void PrintTextCentered(u8 windowId, u8 left, u8 colorId, const u8 *string) { left = (left * 4) - (GetStringWidth(2, string, -1) / 2u); - AddTextPrinterParameterized3(windowId, 2, left, 0, sBerryCrushTextColorTable[colorId], 0, string); + AddTextPrinterParameterized3(windowId, 2, left, 0, sTextColorTable[colorId], 0, string); } -void sub_8021A28(struct BerryCrushGame * sp0C, u8 sp10, u8 sp14, u8 sp18) +static void PrintResultsText(struct BerryCrushGame * game, u8 page, u8 sp14, u8 baseY) { - u8 r8; - u8 sp1C = 0; - u8 sp20 = 0; - u8 r2; - s32 r3; - u8 r7; - struct BerryCrushGame_68 * sp24 = &sp0C->unk68; + u8 i, j; + u8 playerId = 0; + u8 ranking = 0; + s32 x; + u8 stat; + struct BerryCrushGame_Results * results = &game->results; u32 xOffset; - s32 r6; + s32 y; - sp18 -= 16; - if (sp10 == 2) - sp18 -= 42; - r6 = sp18 - 14 * sp0C->unk9; - if (r6 > 0) - r6 = r6 / 2 + 16; + baseY -= 16; + if (page == RESULTS_PAGE_CRUSHING) + baseY -= 42; + + y = baseY - 14 * game->playerCount; + if (y > 0) + y = y / 2 + 16; else - r6 = 16; + y = 16; - for (r8 = 0; r8 < sp0C->unk9; r6 += 14, ++r8) + for (i = 0; i < game->playerCount; y += 14, i++) { DynamicPlaceholderTextUtil_Reset(); - switch (sp10) + switch (page) { - case 0: - sp1C = sp24->unk20[sp10][r8]; - if (r8 != 0 && sp24->unk0C[sp10][r8] != sp24->unk0C[sp10][r8 - 1]) - sp20 = r8; - ConvertIntToDecimalStringN(gStringVar4, sp24->unk0C[sp10][r8], STR_CONV_MODE_RIGHT_ALIGN, 4); - StringAppend(gStringVar4, gUnknown_082F43B4[sp10]); + case RESULTS_PAGE_PRESSES: + playerId = results->playerIdsRanked[page][i]; + if (i != 0 && results->stats[page][i] != results->stats[page][i - 1]) + ranking = i; + ConvertIntToDecimalStringN(gStringVar4, results->stats[page][i], STR_CONV_MODE_RIGHT_ALIGN, 4); + StringAppend(gStringVar4, sResultsTexts[page]); break; - case 1: - sp1C = sp24->unk20[sp10][r8]; - if (r8 != 0 && sp24->unk0C[sp10][r8] != sp24->unk0C[sp10][r8 - 1]) - sp20 = r8; - ConvertIntToDecimalStringN(gStringVar1, sp24->unk0C[sp10][r8] >> 4, STR_CONV_MODE_RIGHT_ALIGN, 3); + case RESULTS_PAGE_RANDOM: + playerId = results->playerIdsRanked[page][i]; + if (i != 0 && results->stats[page][i] != results->stats[page][i - 1]) + ranking = i; + ConvertIntToDecimalStringN(gStringVar1, results->stats[page][i] >> 4, STR_CONV_MODE_RIGHT_ALIGN, 3); xOffset = 0; - r7 = sp24->unk0C[sp10][r8] & 15; - for (r2 = 0; r2 < 4; ++r2) - if ((r7 >> (3 - r2)) & 1) - xOffset += sPressingSpeedConversionTable[r2]; - r7 = xOffset / 1000000u; - ConvertIntToDecimalStringN(gStringVar2, r7, STR_CONV_MODE_LEADING_ZEROS, 2); - StringExpandPlaceholders(gStringVar4, gUnknown_082F43B4[sp10]); + stat = results->stats[page][i] & 15; + for (j = 0; j < 4; j++) + if ((stat >> (3 - j)) & 1) + xOffset += sPressingSpeedConversionTable[j]; + stat = xOffset / 1000000u; + ConvertIntToDecimalStringN(gStringVar2, stat, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, sResultsTexts[page]); break; - case 2: - sp1C = r8; - sp20 = r8; - r2 = sp0C->unk98[r8].unkC; - if (r2 >= LAST_BERRY_INDEX - FIRST_BERRY_INDEX + 2) - r2 = 0; - StringCopy(gStringVar1, gBerries[r2].name); - StringExpandPlaceholders(gStringVar4, gUnknown_082F43B4[sp10]); + case RESULTS_PAGE_CRUSHING: + playerId = i; + ranking = i; + j = game->players[i].berryId; + if (j >= LAST_BERRY_INDEX - FIRST_BERRY_INDEX + 2) + j = 0; + StringCopy(gStringVar1, gBerries[j].name); + StringExpandPlaceholders(gStringVar4, sResultsTexts[page]); break; } - r3 = GetStringRightAlignXOffset(2, gStringVar4, sp14 - 4); - AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, r3, r6, sBerryCrushTextColorTable[0], 0, gStringVar4); - if (sp1C == sp0C->unk8) + x = GetStringRightAlignXOffset(2, gStringVar4, sp14 - 4); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4); + if (playerId == game->localId) StringCopy(gStringVar3, gText_1DotBlueF700); else StringCopy(gStringVar3, gText_1DotF700); - gStringVar3[0] = sp20 + CHAR_1; - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sp0C->unk98[sp1C].unk0); + gStringVar3[0] = ranking + CHAR_1; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, game->players[playerId].name); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gStringVar3); - AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, 4, r6, sBerryCrushTextColorTable[0], 0, gStringVar4); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 4, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4); } } -void sub_8021D34(struct BerryCrushGame *r8) +static void PrintCrushingResults(struct BerryCrushGame *game) { - u8 r10 = 0; - u8 r6 = 0; - u32 sp0C = 0; - struct BerryCrushGame_68 *sp10 = &r8->unk68; - u8 r7 = GetWindowAttribute(r8->unk138.unk82, WINDOW_HEIGHT) * 8 - 42; + u8 i = 0; + u8 x = 0; + u32 pressingSpeedFrac = 0; + struct BerryCrushGame_Results *results = &game->results; + u8 y = GetWindowAttribute(game->gfx.resultsWindowId, WINDOW_HEIGHT) * 8 - 42; - sub_8021944(&r8->unk138, sp10->unk04); - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gText_TimeColon); - r6 = 176 - (u8)GetStringWidth(2, gText_SpaceSec, -1); - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gText_SpaceSec); - ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk6, STR_CONV_MODE_LEADING_ZEROS, 2); - ConvertIntToDecimalStringN(gStringVar2, r8->unk138.unk8, STR_CONV_MODE_LEADING_ZEROS, 2); + FramesToMinSec(&game->gfx, results->time); + + // Print time text + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gText_TimeColon); + + // Print seconds text + x = 176 - (u8)GetStringWidth(2, gText_SpaceSec, -1); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gText_SpaceSec); + + // Print seconds value + ConvertIntToDecimalStringN(gStringVar1, game->gfx.secondsInt, STR_CONV_MODE_LEADING_ZEROS, 2); + ConvertIntToDecimalStringN(gStringVar2, game->gfx.secondsFrac, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_XDotY2); - r6 -= GetStringWidth(2, gStringVar4, -1); - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gStringVar4); - r6 -= GetStringWidth(2, gText_SpaceMin, -1); - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gText_SpaceMin); - ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk4, STR_CONV_MODE_LEADING_ZEROS, 1); + x -= GetStringWidth(2, gStringVar4, -1); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4); + + // Print minutes text + x -= GetStringWidth(2, gText_SpaceMin, -1); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gText_SpaceMin); + + // Print minutes value + ConvertIntToDecimalStringN(gStringVar1, game->gfx.minutes, STR_CONV_MODE_LEADING_ZEROS, 1); StringExpandPlaceholders(gStringVar4, gText_StrVar1); - r6 -= GetStringWidth(2, gStringVar4, -1); - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gStringVar4); - r7 += 14; - AddTextPrinterParameterized3(r8->unk138.unk82, 2, 0, r7, sBerryCrushTextColorTable[0], 0, gText_PressingSpeed); - r6 = 176 - (u8)GetStringWidth(2, gText_TimesPerSec, -1); - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gText_TimesPerSec); - for (; r10 < 8; ++r10) - if (((u8)r8->unk16 >> (7 - r10)) & 1) - sp0C += *(r10 + sPressingSpeedConversionTable); // It's accessed in a different way here for unknown reason - ConvertIntToDecimalStringN(gStringVar1, r8->unk16 >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3); - ConvertIntToDecimalStringN(gStringVar2, sp0C / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2); + x -= GetStringWidth(2, gStringVar4, -1); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4); + + // Print pressing speed text + y += 14; + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 0, y, sTextColorTable[COLORID_GRAY], 0, gText_PressingSpeed); + x = 176 - (u8)GetStringWidth(2, gText_TimesPerSec, -1); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gText_TimesPerSec); + + // Print pressing speed value + for (i = 0; i < 8; i++) + if (((u8)game->pressingSpeed >> (7 - i)) & 1) + pressingSpeedFrac += *(i + sPressingSpeedConversionTable); // It's accessed in a different way here for unknown reason + ConvertIntToDecimalStringN(gStringVar1, game->pressingSpeed >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar2, pressingSpeedFrac / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_XDotY3); - r6 -= GetStringWidth(2, gStringVar4, -1); - if (r8->unk25_1) - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[5], 0, gStringVar4); + x -= GetStringWidth(2, gStringVar4, -1); + if (game->newRecord) + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_RED], 0, gStringVar4); else - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gStringVar4); - r7 += 14; - AddTextPrinterParameterized3(r8->unk138.unk82, 2, 0, r7, sBerryCrushTextColorTable[0], 0, gText_Silkiness); - ConvertIntToDecimalStringN(gStringVar1, sp10->unk08, STR_CONV_MODE_RIGHT_ALIGN, 3); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4); + + // Print silkiness text + y += 14; + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 0, y, sTextColorTable[COLORID_GRAY], 0, gText_Silkiness); + + // Print silkiness value + ConvertIntToDecimalStringN(gStringVar1, results->silkiness, STR_CONV_MODE_RIGHT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_Var1Percent); - r6 = 176 - (u8)GetStringWidth(2, gStringVar4, -1); - AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gStringVar4); + x = 176 - (u8)GetStringWidth(2, gStringVar4, -1); + AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4); } -bool32 sub_8022070(struct BerryCrushGame *r4, struct BerryCrushGame_138 *r6) +static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGame_Gfx *gfx) { - u8 r5; + u8 playerCountIdx; struct WindowTemplate template; - switch (r6->unk80) + switch (gfx->resultsState) { case 0: - r5 = r4->unk9 - 2; - sub_8022554(r6); - memcpy(&template, &gUnknown_082F3324[r4->unk12 - 11], sizeof(struct WindowTemplate)); - if (r4->unk12 == 13) - template.height = gUnknown_082F3344[1][r5]; + playerCountIdx = game->playerCount - 2; + HideTimer(gfx); + memcpy(&template, &sWindowTemplates_Results[game->gameState - RESULTS_STATE_START], sizeof(struct WindowTemplate)); + if (game->gameState == STATE_RESULTS_CRUSHING) + template.height = sResultsWindowHeights[1][playerCountIdx]; else - template.height = gUnknown_082F3344[0][r5]; - r6->unk82 = AddWindow(&template); + template.height = sResultsWindowHeights[0][playerCountIdx]; + gfx->resultsWindowId = AddWindow(&template); break; case 1: - PutWindowTilemap(r6->unk82); - FillWindowPixelBuffer(r6->unk82, PIXEL_FILL(0)); + PutWindowTilemap(gfx->resultsWindowId); + FillWindowPixelBuffer(gfx->resultsWindowId, PIXEL_FILL(0)); break; case 2: - LoadUserWindowBorderGfx_(r6->unk82, 541, 208); - DrawStdFrameWithCustomTileAndPalette(r6->unk82, 0, 541, 13); + LoadUserWindowBorderGfx_(gfx->resultsWindowId, 541, 208); + DrawStdFrameWithCustomTileAndPalette(gfx->resultsWindowId, 0, 541, 13); break; case 3: - r5 = r4->unk9 - 2; - switch (r4->unk12) + playerCountIdx = game->playerCount - 2; + switch (game->gameState) { - case 11: - sub_80219C8(r6->unk82, 20, 3, gText_PressesRankings); - sub_8021A28(r4, 0, 0xA0, 8 * gUnknown_082F3344[0][r5]); - r6->unk80 = 5; + case STATE_RESULTS_PRESSES: + PrintTextCentered(gfx->resultsWindowId, 20, COLORID_BLUE, gText_PressesRankings); + PrintResultsText(game, RESULTS_PAGE_PRESSES, 0xA0, 8 * sResultsWindowHeights[0][playerCountIdx]); + gfx->resultsState = 5; // Skip past Crushing Results text return FALSE; - case 12: - sub_80219C8(r6->unk82, 20, 4, gUnknown_082F43B4[r4->unk68.unk20[0][7] + 3]); - sub_8021A28(r4, 1, 0xA0, 8 * gUnknown_082F3344[0][r5]); - r6->unk80 = 5; + case STATE_RESULTS_RANDOM: + PrintTextCentered(gfx->resultsWindowId, 20, COLORID_GREEN, sResultsTexts[game->results.randomPageId + NUM_RESULTS_PAGES]); + PrintResultsText(game, RESULTS_PAGE_RANDOM, 0xA0, 8 * sResultsWindowHeights[0][playerCountIdx]); + gfx->resultsState = 5; // Skip past Crushing Results text return FALSE; - case 13: - sub_80219C8(r6->unk82, 22, 3, gText_CrushingResults); - sub_8021A28(r4, 2, 0xB0, 8 * gUnknown_082F3344[1][r5]); + case STATE_RESULTS_CRUSHING: + PrintTextCentered(gfx->resultsWindowId, 22, COLORID_BLUE, gText_CrushingResults); + PrintResultsText(game, RESULTS_PAGE_CRUSHING, 0xB0, 8 * sResultsWindowHeights[1][playerCountIdx]); break; } break; case 4: - sub_8021D34(r4); + PrintCrushingResults(game); break; case 5: - CopyWindowToVram(r6->unk82, 3); - r6->unk80 = 0; + CopyWindowToVram(gfx->resultsWindowId, 3); + gfx->resultsState = 0; return TRUE; } - ++r6->unk80; + gfx->resultsState++; return FALSE; } -void sub_802222C(struct BerryCrushGame *r4) +static void CloseResultsWindow(struct BerryCrushGame *game) { - ClearStdWindowAndFrameToTransparent(r4->unk138.unk82, 1); - RemoveWindow(r4->unk138.unk82); - sub_8022600(r4); + ClearStdWindowAndFrameToTransparent(game->gfx.resultsWindowId, 1); + RemoveWindow(game->gfx.resultsWindowId); + DrawPlayerNameWindows(game); } -static void Task_ShowBerryCrushRankings(u8 taskId) +#define tState data[0] +#define tWindowId data[1] +#define tPressingSpeeds(i) data[2 + (i)] // data[2]-[5], for different group sizes + +static void Task_ShowRankings(u8 taskId) { u8 i = 0, j, xPos, yPos; u32 score = 0; s16 *data = gTasks[taskId].data; - u8 *str; - switch (data[0]) + switch (tState) { case 0: - data[1] = AddWindow(&sWindowTemplate_BerryCrushRankings); - PutWindowTilemap(data[1]); - FillWindowPixelBuffer(data[1], PIXEL_FILL(0)); - LoadUserWindowBorderGfx_(data[1], 541, 208); - DrawStdFrameWithCustomTileAndPalette(data[1], 0, 541, 13); + tWindowId = AddWindow(&sWindowTemplate_Rankings); + PutWindowTilemap(tWindowId); + FillWindowPixelBuffer(tWindowId, PIXEL_FILL(0)); + LoadUserWindowBorderGfx_(tWindowId, 541, 208); + DrawStdFrameWithCustomTileAndPalette(tWindowId, 0, 541, 13); break; case 1: + // Print header text xPos = 96 - GetStringWidth(1, gText_BerryCrush2, -1) / 2u; - AddTextPrinterParameterized3( - data[1], - 1, - xPos, - 1, - sBerryCrushTextColorTable[3], - 0, - gText_BerryCrush2 - ); + AddTextPrinterParameterized3(tWindowId, 1, xPos, 1, sTextColorTable[COLORID_BLUE], 0, gText_BerryCrush2); xPos = 96 - GetStringWidth(1, gText_PressingSpeedRankings, -1) / 2u; - AddTextPrinterParameterized3( - data[1], - 1, - xPos, - 17, - sBerryCrushTextColorTable[3], - 0, - gText_PressingSpeedRankings - ); + AddTextPrinterParameterized3(tWindowId, 1, xPos, 17, sTextColorTable[COLORID_BLUE], 0, gText_PressingSpeedRankings); + + // Print pressing speed record for each group size, ranked yPos = 41; - for (i = 0; i < 4; ++i) + for (i = 0; i < MAX_RFU_PLAYERS - 1; i++) { ConvertIntToDecimalStringN(gStringVar1, i + 2, STR_CONV_MODE_LEFT_ALIGN, 1); StringExpandPlaceholders(gStringVar4, gText_Var1Players); - AddTextPrinterParameterized3( - data[1], - 1, - 0, - yPos, - sBerryCrushTextColorTable[0], - 0, - gStringVar4 - ); + AddTextPrinterParameterized3(tWindowId, 1, 0, yPos, sTextColorTable[COLORID_GRAY], 0, gStringVar4); xPos = 192 - (u8)GetStringWidth(1, gText_TimesPerSec, -1); - AddTextPrinterParameterized3( - data[1], - 1, - xPos, - yPos, - sBerryCrushTextColorTable[0], - 0, - gText_TimesPerSec - ); - for (j = 0; j < 8; ++j) + AddTextPrinterParameterized3(tWindowId, 1, xPos, yPos, sTextColorTable[COLORID_GRAY], 0, gText_TimesPerSec); + for (j = 0; j < 8; j++) { - if (((data[i + 2] & 0xFF) >> (7 - j)) & 1) + if (((tPressingSpeeds(i) & 0xFF) >> (7 - j)) & 1) score += sPressingSpeedConversionTable[j]; } - ConvertIntToDecimalStringN(gStringVar1, (u16)data[i + 2] >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar1, (u16)tPressingSpeeds(i) >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3); ConvertIntToDecimalStringN(gStringVar2, score / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2); StringExpandPlaceholders(gStringVar4, gText_XDotY3); xPos -= GetStringWidth(1, gStringVar4, -1); - AddTextPrinterParameterized3( - data[1], - 1, - xPos, - yPos, - sBerryCrushTextColorTable[0], - 0, - gStringVar4 - ); + AddTextPrinterParameterized3(tWindowId, 1, xPos, yPos, sTextColorTable[COLORID_GRAY], 0, gStringVar4); yPos += 16; score = 0; } - CopyWindowToVram(data[1], 3); + CopyWindowToVram(tWindowId, 3); break; case 2: if (JOY_NEW(A_BUTTON | B_BUTTON)) @@ -1658,16 +1849,16 @@ static void Task_ShowBerryCrushRankings(u8 taskId) else return; case 3: - ClearStdWindowAndFrameToTransparent(data[1], 1); - ClearWindowTilemap(data[1]); - RemoveWindow(data[1]); + ClearStdWindowAndFrameToTransparent(tWindowId, 1); + ClearWindowTilemap(tWindowId); + RemoveWindow(tWindowId); DestroyTask(taskId); EnableBothScriptContexts(); ScriptContext2_Disable(); - data[0] = 0; + tState = 0; return; } - ++data[0]; + tState++; } void ShowBerryCrushRankings(void) @@ -1675,98 +1866,98 @@ void ShowBerryCrushRankings(void) u8 taskId; ScriptContext2_Enable(); - taskId = CreateTask(Task_ShowBerryCrushRankings, 0); - gTasks[taskId].data[2] = gSaveBlock2Ptr->berryCrush.berryCrushResults[0]; - gTasks[taskId].data[3] = gSaveBlock2Ptr->berryCrush.berryCrushResults[1]; - gTasks[taskId].data[4] = gSaveBlock2Ptr->berryCrush.berryCrushResults[2]; - gTasks[taskId].data[5] = gSaveBlock2Ptr->berryCrush.berryCrushResults[3]; + taskId = CreateTask(Task_ShowRankings, 0); + gTasks[taskId].tPressingSpeeds(0) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[0]; + gTasks[taskId].tPressingSpeeds(1) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[1]; + gTasks[taskId].tPressingSpeeds(2) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[2]; + gTasks[taskId].tPressingSpeeds(3) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[3]; } -void sub_8022524(struct BerryCrushGame_138 *r4, u16 r1) +static void PrintTimer(struct BerryCrushGame_Gfx *gfx, u16 timer) { - sub_8021944(r4, r1); - DigitObjUtil_PrintNumOn(0, r4->unk4); - DigitObjUtil_PrintNumOn(1, r4->unk6); - DigitObjUtil_PrintNumOn(2, r4->unk8); + FramesToMinSec(gfx, timer); + DigitObjUtil_PrintNumOn(0, gfx->minutes); + DigitObjUtil_PrintNumOn(1, gfx->secondsInt); + DigitObjUtil_PrintNumOn(2, gfx->secondsFrac); } -void sub_8022554(struct BerryCrushGame_138 *r0) +static void HideTimer(struct BerryCrushGame_Gfx *gfx) { - r0->unk78[0]->invisible = TRUE; - r0->unk78[1]->invisible = TRUE; + gfx->timerSprites[0]->invisible = TRUE; + gfx->timerSprites[1]->invisible = TRUE; DigitObjUtil_HideOrShow(2, 1); DigitObjUtil_HideOrShow(1, 1); DigitObjUtil_HideOrShow(0, 1); } -void sub_8022588(struct BerryCrushGame *r5) +static void CreatePlayerNameWindows(struct BerryCrushGame *game) { - u8 r6; - - for (r6 = 0; r6 < r5->unk9; ++r6) + u8 i; + for (i = 0; i < game->playerCount; i++) { - r5->unk138.unkC[r6] = &gUnknown_082F4190[gUnknown_082F417C[r5->unk9 - 2][r6]]; - r5->unk138.unk83[r6] = AddWindow(&gUnknown_082F32F4[r5->unk138.unkC[r6]->unk0]); - PutWindowTilemap(r5->unk138.unk83[r6]); - FillWindowPixelBuffer(r5->unk138.unk83[r6], 0); + game->gfx.playerCoords[i] = &sPlayerCoords[sPlayerIdToPosId[game->playerCount - 2][i]]; + game->gfx.nameWindowIds[i] = AddWindow(&sWindowTemplates_PlayerNames[game->gfx.playerCoords[i]->playerId]); + PutWindowTilemap(game->gfx.nameWindowIds[i]); + FillWindowPixelBuffer(game->gfx.nameWindowIds[i], 0); } } -void sub_8022600(struct BerryCrushGame *r6) +static void DrawPlayerNameWindows(struct BerryCrushGame *game) { - u8 r7, r2; - u8 *r4; - - for (r7 = 0; r7 < r6->unk9; ++r7) + u8 i; + for (i = 0; i < game->playerCount; i++) { - PutWindowTilemap(r6->unk138.unk83[r7]); - if (r7 == r6->unk8) + PutWindowTilemap(game->gfx.nameWindowIds[i]); + if (i == game->localId) { + // Print the player's name AddTextPrinterParameterized4( - r6->unk138.unk83[r7], + game->gfx.nameWindowIds[i], 2, - 36 - GetStringWidth(2, r6->unk98[r7].unk0, 0) / 2u, + 36 - GetStringWidth(2, game->players[i].name, 0) / 2u, 1, 0, 0, - sBerryCrushTextColorTable[1], + sTextColorTable[COLORID_BLACK], 0, - r6->unk98[r7].unk0 + game->players[i].name ); } else { + // Print a partner's name AddTextPrinterParameterized4( - r6->unk138.unk83[r7], + game->gfx.nameWindowIds[i], 2, - 36 - GetStringWidth(2, r6->unk98[r7].unk0, 0) / 2u, + 36 - GetStringWidth(2, game->players[i].name, 0) / 2u, 1, 0, 0, - sBerryCrushTextColorTable[2], + sTextColorTable[COLORID_LIGHT_GRAY], 0, - r6->unk98[r7].unk0 + game->players[i].name ); } - CopyWindowToVram(r6->unk138.unk83[r7], 3); + CopyWindowToVram(game->gfx.nameWindowIds[i], 3); } CopyBgTilemapBufferToVram(0); } -void sub_80226D0(struct BerryCrushGame *r6) +// Each player name window border uses a color that corresponds to a slot of the crusher lid +static void CopyPlayerNameWindowGfxToBg(struct BerryCrushGame *game) { - u8 r5 = 0; - u8 * r4; + u8 i = 0; + u8 * crusherGfx; - LZ77UnCompWram(gUnknown_08DE3FD4, gDecompressionBuffer); + LZ77UnCompWram(gBerryCrush_Crusher_Tilemap, gDecompressionBuffer); - for (r4 = gDecompressionBuffer; r5 < r6->unk9; ++r5) + for (crusherGfx = gDecompressionBuffer; i < game->playerCount; i++) { CopyToBgTilemapBufferRect( 3, - &r4[r6->unk138.unkC[r5]->unk0 * 40], - r6->unk138.unkC[r5]->unk1, - r6->unk138.unkC[r5]->unk2, + &crusherGfx[game->gfx.playerCoords[i]->playerId * 40], + game->gfx.playerCoords[i]->windowGfxX, + game->gfx.playerCoords[i]->windowGfxY, 10, 2 ); @@ -1774,96 +1965,99 @@ void sub_80226D0(struct BerryCrushGame *r6) CopyBgTilemapBufferToVram(3); } -void sub_8022730(struct BerryCrushGame *r6) +static void CreateGameSprites(struct BerryCrushGame *game) { - u8 r5 = 0; - u8 r2; + u8 i = 0; + u8 spriteId; - r6->unk2A = -104; - r6->unk2C = 0; + game->depth = CRUSHER_START_Y; + game->vibration = 0; gSpriteCoordOffsetX = 0; - gSpriteCoordOffsetY = -104; - for (; r5 < 4; ++r5) - LoadCompressedSpriteSheet(&gUnknown_082F41F4[r5]); - LoadSpritePalettes(gUnknown_082F421C); - r2 = CreateSprite(&gUnknown_082F430C, 120, 88, 5); - r6->unk138.unk20 = &gSprites[r2]; - r6->unk138.unk20->oam.priority = 3; - r6->unk138.unk20->coordOffsetEnabled = TRUE; - r6->unk138.unk20->animPaused = TRUE; - for (r5 = 0; r5 < r6->unk9; ++r5) + gSpriteCoordOffsetY = CRUSHER_START_Y; + for (i = 0; i < ARRAY_COUNT(sSpriteSheets) - 1; i++) + LoadCompressedSpriteSheet(&sSpriteSheets[i]); + LoadSpritePalettes(sSpritePals); + + // Create sprite for crusher base + spriteId = CreateSprite(&sSpriteTemplate_CrusherBase, 120, 88, 5); + game->gfx.coreSprite = &gSprites[spriteId]; + game->gfx.coreSprite->oam.priority = 3; + game->gfx.coreSprite->coordOffsetEnabled = TRUE; + game->gfx.coreSprite->animPaused = TRUE; + + // Create sprites for the impact effect + for (i = 0; i < game->playerCount; i++) { - r2 = CreateSprite( - &gUnknown_082F4324, - r6->unk138.unkC[r5]->unk4 + 120, - r6->unk138.unkC[r5]->unk6 + 32, + spriteId = CreateSprite( + &sSpriteTemplate_Impact, + game->gfx.playerCoords[i]->impactXOffset + 120, + game->gfx.playerCoords[i]->impactYOffset + 32, 0 ); - r6->unk138.unk24[r5] = &gSprites[r2]; - r6->unk138.unk24[r5]->oam.priority = 1; - r6->unk138.unk24[r5]->invisible = TRUE; - r6->unk138.unk24[r5]->coordOffsetEnabled = TRUE; - r6->unk138.unk24[r5]->animPaused = TRUE; + game->gfx.impactSprites[i] = &gSprites[spriteId]; + game->gfx.impactSprites[i]->oam.priority = 1; + game->gfx.impactSprites[i]->invisible = TRUE; + game->gfx.impactSprites[i]->coordOffsetEnabled = TRUE; + game->gfx.impactSprites[i]->animPaused = TRUE; } - for (r5 = 0; r5 < ARRAY_COUNT(r6->unk138.unk4C); ++r5) + + // Create sprites for sparkle effect + for (i = 0; i < ARRAY_COUNT(game->gfx.sparkleSprites); i++) { - r2 = CreateSprite( - &gUnknown_082F433C, - gUnknown_082F41D2[r5][0] + 120, - gUnknown_082F41D2[r5][1] + 136, + spriteId = CreateSprite( + &sSpriteTemplate_Sparkle, + sSparkleCoords[i][0] + 120, + sSparkleCoords[i][1] + 136, 6 ); - r6->unk138.unk4C[r5] = &gSprites[r2]; - r6->unk138.unk4C[r5]->oam.priority = 3; - r6->unk138.unk4C[r5]->invisible = TRUE; - r6->unk138.unk4C[r5]->animPaused = TRUE; - r6->unk138.unk4C[r5]->data[0] = r5; + game->gfx.sparkleSprites[i] = &gSprites[spriteId]; + game->gfx.sparkleSprites[i]->oam.priority = 3; + game->gfx.sparkleSprites[i]->invisible = TRUE; + game->gfx.sparkleSprites[i]->animPaused = TRUE; + game->gfx.sparkleSprites[i]->data[0] = i; } - for (r5 = 0; r5 < ARRAY_COUNT(r6->unk138.unk78); ++r5) + + // Create sprites for timer + for (i = 0; i < ARRAY_COUNT(game->gfx.timerSprites); i++) { - r2 = CreateSprite( - &gUnknown_082F4354, - 24 * r5 + 176, - 8, - 0 - ); - r6->unk138.unk78[r5] = &gSprites[r2]; - r6->unk138.unk78[r5]->oam.priority = 0; - r6->unk138.unk78[r5]->invisible = FALSE; - r6->unk138.unk78[r5]->animPaused = FALSE; + spriteId = CreateSprite(&sSpriteTemplate_Timer, 24 * i + 176, 8, 0); + game->gfx.timerSprites[i] = &gSprites[spriteId]; + game->gfx.timerSprites[i]->oam.priority = 0; + game->gfx.timerSprites[i]->invisible = FALSE; + game->gfx.timerSprites[i]->animPaused = FALSE; } - DigitObjUtil_CreatePrinter(0, 0, &gUnknown_082F4384[0]); - DigitObjUtil_CreatePrinter(1, 0, &gUnknown_082F4384[1]); - DigitObjUtil_CreatePrinter(2, 0, &gUnknown_082F4384[2]); - if (r6->unk12 == 1) - sub_8022554(&r6->unk138); + DigitObjUtil_CreatePrinter(0, 0, &sDigitObjTemplates[0]); + DigitObjUtil_CreatePrinter(1, 0, &sDigitObjTemplates[1]); + DigitObjUtil_CreatePrinter(2, 0, &sDigitObjTemplates[2]); + + if (game->gameState == STATE_INIT) + HideTimer(&game->gfx); } -void sub_8022960(struct BerryCrushGame *r5) +static void DestroyGameSprites(struct BerryCrushGame *game) { - u8 r4 = 0; - - FreeSpriteTilesByTag(4); - FreeSpriteTilesByTag(3); - FreeSpriteTilesByTag(2); - FreeSpriteTilesByTag(1); - FreeSpritePaletteByTag(4); - FreeSpritePaletteByTag(2); - FreeSpritePaletteByTag(1); - for (; r4 < ARRAY_COUNT(r5->unk138.unk78); ++r4) - DestroySprite(r5->unk138.unk78[r4]); + u8 i = 0; + FreeSpriteTilesByTag(TAG_TIMER_DIGITS); + FreeSpriteTilesByTag(GFXTAG_SPARKLE); + FreeSpriteTilesByTag(GFXTAG_IMPACT); + FreeSpriteTilesByTag(TAG_CRUSHER_BASE); + FreeSpritePaletteByTag(TAG_TIMER_DIGITS); + FreeSpritePaletteByTag(PALTAG_EFFECT); + FreeSpritePaletteByTag(TAG_CRUSHER_BASE); + for (i = 0; i < ARRAY_COUNT(game->gfx.timerSprites); i++) + DestroySprite(game->gfx.timerSprites[i]); DigitObjUtil_DeletePrinter(2); DigitObjUtil_DeletePrinter(1); DigitObjUtil_DeletePrinter(0); - for (r4 = 0; r4 < ARRAY_COUNT(r5->unk138.unk4C); ++r4) - DestroySprite(r5->unk138.unk4C[r4]); - for (r4 = 0; r4 < r5->unk9; ++r4) - DestroySprite(r5->unk138.unk24[r4]); - if (r5->unk138.unk20->inUse) - DestroySprite(r5->unk138.unk20); + for (i = 0; i < ARRAY_COUNT(game->gfx.sparkleSprites); i++) + DestroySprite(game->gfx.sparkleSprites[i]); + for (i = 0; i < game->playerCount; i++) + DestroySprite(game->gfx.impactSprites[i]); + if (game->gfx.coreSprite->inUse) + DestroySprite(game->gfx.coreSprite); } -static void sub_8022A20(struct Sprite *sprite) +static void SpriteCB_Impact(struct Sprite *sprite) { if (sprite->animEnded) { @@ -1872,93 +2066,116 @@ static void sub_8022A20(struct Sprite *sprite) } } -void sub_8022A4C(struct Sprite *sprite) +static void SpriteCB_Sparkle_End(struct Sprite *sprite) { - u8 r1 = 0; - SpriteCallback r5 = SpriteCallbackDummy; - - for (; r1 < ARRAY_COUNT(sprite->data); ++r1) - sprite->data[r1] = 0; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + u8 i; + for (i = 0; i < ARRAY_COUNT(sprite->data); i++) + sprite->data[i] = 0; + sprite->x2 = 0; + sprite->y2 = 0; sprite->invisible = TRUE; sprite->animPaused = TRUE; - sprite->callback = r5; + sprite->callback = SpriteCallbackDummy; } -void sub_8022A94(struct Sprite *sprite) -{ - s16 *r4 = sprite->data; +#define sX data[0] +#define sYSpeed data[1] +#define sYAccel data[2] +#define sXSpeed data[3] +#define sSinIdx data[4] +#define sSinSpeed data[5] +#define sAmplitude data[6] +// The last element (data[7]) is a bitfield. +// The first 15 bits are the y coord to stop at. +// The last bit is a flag for whether or not to move on the x too +#define sBitfield data[7] +#define MASK_TARGET_Y 0x7FFF +#define F_MOVE_HORIZ 0x8000 - r4[1] += r4[2]; - sprite->pos2.y += r4[1] >> 8; - if (r4[7] & 0x8000) +static void SpriteCB_Sparkle(struct Sprite *sprite) +{ + s16 *data = sprite->data; + + sYSpeed += sYAccel; + sprite->y2 += sYSpeed >> 8; + if (sBitfield & F_MOVE_HORIZ) { - sprite->data[0] += r4[3]; - r4[4] += r4[5]; - sprite->pos2.x = Sin(r4[4] >> 7, r4[6]); - if (r4[7] & 0x8000 && r4[4] >> 7 > 126) + sprite->sX += sXSpeed; + sSinIdx += sSinSpeed; + sprite->x2 = Sin(sSinIdx >> 7, sAmplitude); + if (sBitfield & F_MOVE_HORIZ && sSinIdx >> 7 > 126) { - sprite->pos2.x = 0; - r4[7] &= 0x7FFF; + sprite->x2 = 0; + sBitfield &= MASK_TARGET_Y; } } - sprite->pos1.x = r4[0] >> 7; - if (sprite->pos1.y + sprite->pos2.y > (r4[7] & 0x7FFF)) - sprite->callback = sub_8022A4C; + sprite->x = sX >> 7; + if (sprite->y + sprite->y2 > (sBitfield & MASK_TARGET_Y)) + sprite->callback = SpriteCB_Sparkle_End; } -void sub_8022B28(struct Sprite *sprite) +static void SpriteCB_Sparkle_Init(struct Sprite *sprite) { - s16 *r7 = sprite->data; - s16 r4, r5; - s32 r2; - u32 r8 = 0; + s16 *data = sprite->data; + s16 xMult, xDiv; + s32 var; + u32 zero = 0; - r2 = 640; - r7[1] = r2; - r7[2] = 32; - r7[7] = 168; - r4 = sprite->pos2.x * 128; - r5 = MathUtil_Div16Shift(7, (168 - sprite->pos1.y) << 7, (r2 + 32) >> 1); - sprite->data[0] = sprite->pos1.x << 7; - r7[3] = MathUtil_Div16Shift(7, r4, r5); - r2 = MathUtil_Mul16Shift(7, r5, 85); - r7[4] = r8; - r7[5] = MathUtil_Div16Shift(7, Q_8_8(63.5), r2); - r7[6] = sprite->pos2.x / 4; - r7[7] |= 0x8000; - sprite->pos2.y = r8; - sprite->pos2.x = r8; - sprite->callback = sub_8022A94; + var = 640; + sYSpeed = var; + sYAccel = 32; + sBitfield = 168; // Setting bits in MASK_TARGET_Y + xMult = sprite->x2 * 128; + xDiv = MathUtil_Div16Shift(7, (168 - sprite->y) << 7, (var + 32) >> 1); + sprite->sX = sprite->x << 7; + sXSpeed = MathUtil_Div16Shift(7, xMult, xDiv); + var = MathUtil_Mul16Shift(7, xDiv, 85); + sSinIdx = zero; + sSinSpeed = MathUtil_Div16Shift(7, Q_8_8(63.5), var); + sAmplitude = sprite->x2 / 4; + sBitfield |= F_MOVE_HORIZ; + sprite->y2 = zero; + sprite->x2 = zero; + sprite->callback = SpriteCB_Sparkle; sprite->animPaused = FALSE; sprite->invisible = FALSE; } -void sub_8022BEC(u16 r5, u8 r4, u8 *r7) -{ - struct BerryCrushGame *r6 = GetBerryCrushGame(); +#undef sX +#undef sYSpeed +#undef sYAccel +#undef sXSpeed +#undef sSinIdx +#undef sSinSpeed +#undef sAmplitude +#undef sBitfield +#undef MASK_TARGET_Y +#undef F_MOVE_HORIZ - if (r5 > 25) - r5 = 0; - switch (r4) +static void RunOrScheduleCommand(u16 cmdId, u8 mode, u8 *args) +{ + struct BerryCrushGame *game = GetBerryCrushGame(); + + if (cmdId >= ARRAY_COUNT(sBerryCrushCommands)) + cmdId = CMD_NONE; + switch (mode) { - case 0: - if (r5 != 0) - gUnknown_082F43CC[r5](r6, r7); - if (r6->unkE > 25) - r6->unkE = r4; - r6->unk4 = gUnknown_082F43CC[r6->unkE]; + case RUN_CMD: + if (cmdId != CMD_NONE) + sBerryCrushCommands[cmdId](game, args); + if (game->nextCmd >= ARRAY_COUNT(sBerryCrushCommands)) + game->nextCmd = CMD_NONE; + game->cmdCallback = sBerryCrushCommands[game->nextCmd]; break; - case 1: - r6->unk4 = gUnknown_082F43CC[r5]; + case SCHEDULE_CMD: + game->cmdCallback = sBerryCrushCommands[cmdId]; break; } } -static u32 BerryCrushCommand_BeginNormalPaletteFade(struct BerryCrushGame *game, u8 *params) +static u32 Cmd_BeginNormalPaletteFade(struct BerryCrushGame *game, u8 *args) { - // params points to packed values: + // args points to packed values: // bytes 0-3: selectedPals (bitfield) // byte 4: delay // byte 5: startY @@ -1969,126 +2186,128 @@ static u32 BerryCrushCommand_BeginNormalPaletteFade(struct BerryCrushGame *game, u16 color; u32 selectedPals[2]; - selectedPals[0] = (u32)params[0]; - selectedPals[1] = (u32)params[1]; + selectedPals[0] = (u32)args[0]; + selectedPals[1] = (u32)args[1]; selectedPals[1] <<= 8; selectedPals[0] |= selectedPals[1]; - selectedPals[1] = (u32)params[2]; + selectedPals[1] = (u32)args[2]; selectedPals[1] <<= 16; selectedPals[0] |= selectedPals[1]; - selectedPals[1] = (u32)params[3]; + selectedPals[1] = (u32)args[3]; selectedPals[1] <<= 24; selectedPals[0] |= selectedPals[1]; - params[0] = params[9]; + args[0] = args[9]; - color = params[8]; + color = args[8]; color <<= 8; - color |= params[7]; + color |= args[7]; gPaletteFade.bufferTransferDisabled = FALSE; - BeginNormalPaletteFade(selectedPals[0], params[4], params[5], params[6], color); + BeginNormalPaletteFade(selectedPals[0], args[4], args[5], args[6], color); UpdatePaletteFade(); - game->unkE = 2; + game->nextCmd = CMD_WAIT_FADE; return 0; } -static u32 sub_8022CB0(struct BerryCrushGame *r4, u8 *r5) +static u32 Cmd_WaitPaletteFade(struct BerryCrushGame *game, u8 *args) { - switch (r4->unkC) + switch (game->cmdState) { case 0: if (UpdatePaletteFade()) return 0; - if(r5[0] != 0) - ++r4->unkC; + if(args[0] != 0) + game->cmdState++; else - r4->unkC = 3; + game->cmdState = 3; return 0; case 1: Rfu_SetLinkStandbyCallback(); - ++r4->unkC; + game->cmdState++; return 0; case 2: if (IsLinkTaskFinished()) { - ++r4->unkC; + game->cmdState++; return 0; } return 0; case 3: - sub_8022BEC(r4->unkF, 1, NULL); - r4->unkC = 0; + RunOrScheduleCommand(game->afterPalFadeCmd, SCHEDULE_CMD, NULL); + game->cmdState = 0; return 0; default: - ++r4->unkC; + game->cmdState++; return 0; } } -static u32 sub_8022D14(struct BerryCrushGame *r7, u8 *r5) +static u32 Cmd_PrintMessage(struct BerryCrushGame *game, u8 *args) { - u16 r4 = r5[3]; + u16 keys = args[3]; + keys <<= 8; + keys |= args[2]; - r4 <<= 8; - r4 |= r5[2]; - switch (r7->unkC) + switch (game->cmdState) { case 0: DrawDialogueFrame(0, 0); - if (r5[1] & 2) + if (args[1] & F_MSG_EXPAND) { - StringExpandPlaceholders(gStringVar4, gUnknown_082F32A4[r5[0]]); - AddTextPrinterParameterized2(0, 1, gStringVar4, r7->unkB, 0, 2, 1, 3); + StringExpandPlaceholders(gStringVar4, sMessages[args[0]]); + AddTextPrinterParameterized2(0, 1, gStringVar4, game->textSpeed, 0, 2, 1, 3); } else { - AddTextPrinterParameterized2(0, 1, gUnknown_082F32A4[r5[0]], r7->unkB, 0, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, sMessages[args[0]], game->textSpeed, 0, 2, 1, 3); } CopyWindowToVram(0, 3); break; case 1: if (!IsTextPrinterActive(0)) { - if (r4 == 0) - ++r7->unkC; + // If no wait keys are given, skip + // waiting state below + if (keys == 0) + game->cmdState++; break; } return 0; case 2: - if (!(r4 & gMain.newKeys)) + if (!JOY_NEW(keys)) return 0; break; case 3: - if (r5[1] & 1) + if (args[1] & F_MSG_CLEAR) ClearDialogWindowAndFrame(0, 1); - sub_8022BEC(r7->unkE, 1, NULL); - r7->unkC = r5[4]; + RunOrScheduleCommand(game->nextCmd, SCHEDULE_CMD, NULL); + game->cmdState = args[4]; return 0; } - ++r7->unkC; + game->cmdState++; return 0; } -static u32 sub_8022E1C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_ShowGameDisplay(struct BerryCrushGame *game, u8 *args) { - if (InitBerryCrushDisplay() != 0) - sub_8022BEC(r4->unkE, 0, r4->unk36); + if (ShowGameDisplay()) + RunOrScheduleCommand(game->nextCmd, RUN_CMD, game->commandArgs); return 0; } -static u32 sub_8022E3C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_HideGameDisplay(struct BerryCrushGame *game, u8 *args) { - if (sub_802130C() != 0) - sub_8022BEC(r4->unkE, 0, r4->unk36); + if (HideGameDisplay()) + RunOrScheduleCommand(game->nextCmd, RUN_CMD, game->commandArgs); return 0; } -static u32 sub_8022E5C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_SignalReadyToBegin(struct BerryCrushGame *game, u8 *args) { - switch (r4->unkC) + switch (game->cmdState) { case 0: Rfu_SetLinkStandbyCallback(); @@ -2097,55 +2316,55 @@ static u32 sub_8022E5C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 if (IsLinkTaskFinished()) { PlayNewMapMusic(MUS_RG_GAME_CORNER); - sub_8022BEC(7, 1, NULL); - r4->unk12 = 3; - r4->unkC = 0; + RunOrScheduleCommand(CMD_ASK_PICK_BERRY, SCHEDULE_CMD, NULL); + game->gameState = STATE_PICK_BERRY; + game->cmdState = 0; } return 0; } - ++r4->unkC; + game->cmdState++; return 0; } -static u32 sub_8022EAC(struct BerryCrushGame *r4, u8 *r5) +static u32 Cmd_AskPickBerry(struct BerryCrushGame *game, u8 *args) { - switch (r4->unkC) + switch (game->cmdState) { default: - ++r4->unkC; + game->cmdState++; break; case 0: - sub_8024578(r4); - sub_8024644(r5, 0, 1, 0, 1); - r4->unkE = 7; - sub_8022BEC(3, 1, NULL); + ResetGame(game); + SetPrintMessageArgs(args, MSG_PICK_BERRY, F_MSG_CLEAR, 0, 1); + game->nextCmd = CMD_ASK_PICK_BERRY; + RunOrScheduleCommand(CMD_PRINT_MSG, SCHEDULE_CMD, NULL); break; case 1: - r4->unkE = 8; - sub_8022BEC(5, 1, NULL); - r4->unkC = 2; + game->nextCmd = CMD_PICK_BERRY; + RunOrScheduleCommand(CMD_HIDE_GAME, SCHEDULE_CMD, NULL); + game->cmdState = 2; break; } return 0; } -static u32 sub_8022F04(struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1) +static u32 Cmd_GoToBerryPouch(struct BerryCrushGame *game, u8 *args) { - r0->unk4 = NULL; - SetMainCallback2(BerryCrush_SetupMainTask); + game->cmdCallback = NULL; + SetMainCallback2(ChooseBerry); return 0; } -static u32 sub_8022F1C(struct BerryCrushGame *r5, u8 *r2) +static u32 Cmd_WaitForOthersToPickBerries(struct BerryCrushGame *game, u8 *args) { - u8 r3; + u8 i; - switch (r5->unkC) + switch (game->cmdState) { case 0: - sub_8024644(r2, 1, 0, 0, 1); - r5->unkE = 9; - sub_8022BEC(3, 1, NULL); + SetPrintMessageArgs(args, MSG_WAIT_PICK, 0, 0, 1); + game->nextCmd = CMD_WAIT_BERRIES; + RunOrScheduleCommand(CMD_PRINT_MSG, SCHEDULE_CMD, NULL); return 0; case 1: Rfu_SetLinkStandbyCallback(); @@ -2153,126 +2372,131 @@ static u32 sub_8022F1C(struct BerryCrushGame *r5, u8 *r2) case 2: if (!IsLinkTaskFinished()) return 0; - memset(r5->unk42, 0, sizeof(r5->unk42)); - r5->unk42[0] = r5->unk98[r5->unk8].unkC; - SendBlock(0, r5->unk42, 2); + + // Send player's chosen berry to partners + memset(game->sendCmd, 0, sizeof(game->sendCmd)); + game->sendCmd[0] = game->players[game->localId].berryId; + SendBlock(0, game->sendCmd, 2); break; case 3: if (!IsLinkTaskFinished()) return 0; - r5->unk10 = 0; + game->cmdTimer = 0; break; case 4: - if (GetBlockReceivedStatus() != gUnknown_082F4448[r5->unk9 - 2]) + // Wait for partners responses + if (GetBlockReceivedStatus() != sReceivedPlayerBitmasks[game->playerCount - 2]) return 0; - for (r3 = 0; r3 < r5->unk9; ++r3) + + // Read partners chosen berries + for (i = 0; i < game->playerCount; i++) { - r5->unk98[r3].unkC = gBlockRecvBuffer[r3][0]; - if (r5->unk98[r3].unkC > 0xB0) - r5->unk98[r3].unkC = 0; - r5->unk18 += gUnknown_0858AB24[r5->unk98[r3].unkC].unk0; - r5->unk1C += gUnknown_0858AB24[r5->unk98[r3].unkC].unk1; + game->players[i].berryId = gBlockRecvBuffer[i][0]; + if (game->players[i].berryId > LAST_BERRY_INDEX + 1) + game->players[i].berryId = 0; + game->targetAPresses += gBerryCrush_BerryData[game->players[i].berryId].difficulty; + game->powder += gBerryCrush_BerryData[game->players[i].berryId].powder; } - r5->unk10 = 0; + game->cmdTimer = 0; ResetBlockReceivedFlags(); - r5->unk20 = MathUtil_Div32(Q_24_8(r5->unk18), Q_24_8(32)); + game->targetDepth = MathUtil_Div32(Q_24_8(game->targetAPresses), Q_24_8(32)); break; case 5: ClearDialogWindowAndFrame(0, 1); - sub_8022BEC(10, 1, NULL); - r5->unk12 = 4; - r5->unkC = 0; + RunOrScheduleCommand(CMD_DROP_BERRIES, SCHEDULE_CMD, NULL); + game->gameState = STATE_DROP_BERRIES; + game->cmdState = 0; return 0; } - ++r5->unkC; + game->cmdState++; return 0; } -static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_DropBerriesIntoCrusher(struct BerryCrushGame *game, u8 *args) { - switch (r4->unkC) + switch (game->cmdState) { case 0: - sub_80214A8(r4, &r4->unk138); + CreateBerrySprites(game, &game->gfx); Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) return 0; - r4->unk138.unk0 = 0; - r4->unk138.unk1 = 0; - r4->unk138.unk2 = 0; - r4->unk138.unk3 = 0; + game->gfx.counter = 0; + game->gfx.vibrationIdx = 0; + game->gfx.numVibrations = 0; + game->gfx.vibrating = FALSE; break; case 2: - r4->unk138.unk38[r4->unk138.unk0]->callback = sub_8021608; - r4->unk138.unk38[r4->unk138.unk0]->affineAnimPaused = FALSE; + game->gfx.berrySprites[game->gfx.counter]->callback = SpriteCB_DropBerryIntoCrusher; + game->gfx.berrySprites[game->gfx.counter]->affineAnimPaused = FALSE; PlaySE(SE_BALL_THROW); break; case 3: - if (r4->unk138.unk38[r4->unk138.unk0]->callback == sub_8021608) + if (game->gfx.berrySprites[game->gfx.counter]->callback == SpriteCB_DropBerryIntoCrusher) return 0; - r4->unk138.unk38[r4->unk138.unk0] = NULL; - ++r4->unk138.unk0; + game->gfx.berrySprites[game->gfx.counter] = NULL; + game->gfx.counter++; Rfu_SetLinkStandbyCallback(); break; case 4: if (!IsLinkTaskFinished()) return 0; - if (r4->unk138.unk0 < r4->unk9) + if (game->gfx.counter < game->playerCount) { - r4->unkC = 2; + game->cmdState = 2; return 0; } - r4->unk138.unk0 = 0; + game->gfx.counter = 0; break; case 5: - sub_80216A8(r4, &r4->unk138); + BerryCrushFreeBerrySpriteGfx(game, &game->gfx); Rfu_SetLinkStandbyCallback(); break; case 6: if (!IsLinkTaskFinished()) return 0; PlaySE(SE_FALL); - sub_8022BEC(11, 1, NULL); - r4->unk12 = 5; - r4->unkC = 0; + RunOrScheduleCommand(CMD_DROP_LID, SCHEDULE_CMD, NULL); + game->gameState = STATE_DROP_LID; + game->cmdState = 0; return 0; } - ++r4->unkC; + game->cmdState++; return 0; } -static u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_DropLid(struct BerryCrushGame *game, u8 *args) { - switch (r4->unkC) + switch (game->cmdState) { case 0: - r4->unk2A += 4; - if (r4->unk2A < 0) + game->depth += 4; + if (game->depth < 0) return 0; - r4->unk2A = 0; - r4->unk138.unk1 = 4; - r4->unk138.unk0 = 0; - r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; + game->depth = 0; + game->gfx.vibrationIdx = 4; + game->gfx.counter = 0; + game->gfx.numVibrations = sIntroOutroVibrationData[game->gfx.vibrationIdx][0]; PlaySE(SE_M_STRENGTH); break; case 1: - r4->unk2C = gUnknown_082F326C[r4->unk138.unk1][r4->unk138.unk0]; - SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C); - SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C); - SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C); - ++r4->unk138.unk0; - if (r4->unk138.unk0 < r4->unk138.unk2) + game->vibration = sIntroOutroVibrationData[game->gfx.vibrationIdx][game->gfx.counter]; + SetGpuReg(REG_OFFSET_BG0VOFS, -game->vibration); + SetGpuReg(REG_OFFSET_BG2VOFS, -game->vibration); + SetGpuReg(REG_OFFSET_BG3VOFS, -game->vibration); + game->gfx.counter++; + if (game->gfx.counter < game->gfx.numVibrations) return 0; - if (r4->unk138.unk1 == 0) + if (game->gfx.vibrationIdx == 0) break; - --r4->unk138.unk1; - r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; - r4->unk138.unk0 = 0; + game->gfx.vibrationIdx--; + game->gfx.numVibrations = sIntroOutroVibrationData[game->gfx.vibrationIdx][0]; + game->gfx.counter = 0; return 0; case 2: - r4->unk2C = 0; + game->vibration = 0; SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); @@ -2281,23 +2505,23 @@ static u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r case 3: if (!IsLinkTaskFinished()) return 0; - sub_8022BEC(12, 1, NULL); - r4->unk12 = 6; - r4->unkC = 0; + RunOrScheduleCommand(CMD_COUNTDOWN, SCHEDULE_CMD, NULL); + game->gameState = STATE_COUNTDOWN; + game->cmdState = 0; return 0; } - ++r4->unkC; + game->cmdState++; return 0; } -static u32 sub_80232EC(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_Countdown(struct BerryCrushGame *game, u8 *args) { - switch (r4-> unkC) + switch (game->cmdState) { case 1: if (!IsLinkTaskFinished()) return 0; - StartMinigameCountdown(0x1000, 0x1000, 120, 80, 0); + StartMinigameCountdown(TAG_COUNTDOWN, TAG_COUNTDOWN, 120, 80, 0); break; case 2: if (IsMinigameCountdownRunning()) @@ -2309,405 +2533,442 @@ static u32 sub_80232EC(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r case 3: if (!IsLinkTaskFinished()) return 0; - r4->unk138.unk0 = 0; - r4->unk138.unk1 = 0; - r4->unk138.unk2 = 0; - r4->unk138.unk3 = 0; - r4->unk10 = 0; - if (r4->unk8 == 0) - sub_8022BEC(13, 1, NULL); + game->gfx.counter = 0; + game->gfx.vibrationIdx = 0; + game->gfx.numVibrations = 0; + game->gfx.vibrating = FALSE; + game->cmdTimer = 0; + if (game->localId == 0) + RunOrScheduleCommand(CMD_PLAY_GAME_LEADER, SCHEDULE_CMD, NULL); else - sub_8022BEC(14, 1, NULL); - r4->unk12 = 7; - r4->unkC = 0; + RunOrScheduleCommand(CMD_PLAY_GAME_MEMBER, SCHEDULE_CMD, NULL); + game->gameState = STATE_PLAYING; + game->cmdState = 0; return 0; } - ++r4->unkC; + game->cmdState++; return 0; } -void sub_802339C(struct BerryCrushGame *r4) +// Receive and process data from all players +// Only used by the link leader +static void HandlePartnerInput(struct BerryCrushGame *game) { - u8 r8 = 0; - u8 r7 = 0; - u16 r3; - s32 r2_ = 0; - struct BerryCrushGame_4E *r2; + u8 numPlayersPressed = 0; + u8 i = 0; + u16 timeDiff; + s32 temp = 0; + struct BerryCrushGame_LinkState *linkState; - for (r7 = 0; r7 < r4->unk9; r7++) + for (i = 0; i < game->playerCount; i++) { - r2 = (struct BerryCrushGame_4E *)gRecvCmds[r7]; - if ((r2->unk0 & 0xFF00) != RFUCMD_SEND_PACKET) + linkState = (struct BerryCrushGame_LinkState *)gRecvCmds[i]; + + // Skip player if we have not received a packet from them + if ((linkState->rfuCmd & 0xFF00) != RFUCMD_SEND_PACKET) continue; - if (r2->unk2 != 2) + if (linkState->sendFlag != SEND_GAME_STATE) continue; - if (r2->unk4_2) + if (linkState->pushedAButton) { - r4->unk5C.unk02_3 |= gUnknown_082F325C[r7]; - r4->unk98[r7].unk1C = 1; - ++r4->unk98[r7].unk16; - ++r8; - r3 = r4->unk28 - r4->unk98[r7].unkE; - if (r3 >= r4->unk98[r7].unk12 - 1 && r3 <= r4->unk98[r7].unk12 + 1) + game->localState.playerPressedAFlags |= sBitTable[i]; + game->players[i].inputState = INPUT_STATE_HIT; + game->players[i].numAPresses++; + numPlayersPressed++; + timeDiff = game->timer - game->players[i].inputTime; + + // If the interval between inputs is regular, the input is considered "neat" + // This counts toward the player's neatness score + if (timeDiff >= game->players[i].timeSincePrevInput - 1 + && timeDiff <= game->players[i].timeSincePrevInput + 1) { - ++r4->unk98[r7].unk10; - r4->unk98[r7].unk12 = r3; - if (r4->unk98[r7].unk10 > r4->unk98[r7].unk14) - r4->unk98[r7].unk14 = r4->unk98[r7].unk10; + // On neat input streak + game->players[i].neatInputStreak++; + game->players[i].timeSincePrevInput = timeDiff; + if (game->players[i].neatInputStreak > game->players[i].maxNeatInputStreak) + game->players[i].maxNeatInputStreak = game->players[i].neatInputStreak; } else { - r4->unk98[r7].unk10 = 0; - r4->unk98[r7].unk12 = r3; + // End neat input streak + game->players[i].neatInputStreak = 0; + game->players[i].timeSincePrevInput = timeDiff; } - r4->unk98[r7].unkE = r4->unk28; - ++r4->unk98[r7].unk1B; - if (r4->unk98[r7].unk1B > 2) - r4->unk98[r7].unk1B = 0; + + game->players[i].inputTime = game->timer; + game->players[i].inputFlags++; + if (game->players[i].inputFlags > F_INPUT_HIT_B) + game->players[i].inputFlags = 0; } else { - r4->unk98[r7].unk1C = 0; + game->players[i].inputState = INPUT_STATE_NONE; } } - if (r8 > 1) + if (numPlayersPressed > 1) { - for (r7 = 0; r7 < r4->unk9; ++r7) + // For each player that pressed A, flag their input as synchronous + // This is used to change their impact sprite to a big impact + for (i = 0; i < game->playerCount; i++) { - if (!r4->unk98[r7].unk1C) + if (game->players[i].inputState == INPUT_STATE_NONE) continue; - r4->unk98[r7].unk1C |= 2; - ++r4->unk98[r7].unk18; + game->players[i].inputState |= INPUT_STATE_HIT_SYNC; + game->players[i].numSyncedAPresses++; } } - if (r8 == 0) + if (numPlayersPressed == 0) return; - r4->unk2E += r8; - r8 += gUnknown_082F3264[r8 - 1]; - r4->unk34 += r8; - r4->unk1A += r8; - if (r4->unk18 - r4->unk1A > 0) + game->bigSparkleCounter += numPlayersPressed; + numPlayersPressed += sSyncPressBonus[numPlayersPressed - 1]; + game->sparkleCounter += numPlayersPressed; + game->totalAPresses += numPlayersPressed; + if (game->targetAPresses - game->totalAPresses > 0) { - r2_ = (s32)r4->unk1A; - r2_ <<= 8; - r2_ = MathUtil_Div32(r2_, r4->unk20); - r2_ >>= 8; - r4->unk24 = (u8)r2_; + temp = (s32)game->totalAPresses; + temp = Q_24_8(temp); + temp = MathUtil_Div32(temp, game->targetDepth); + temp = Q_24_8_TO_INT(temp); + game->newDepth = (u8)temp; return; } - r4->unk24 = 32; - r4->unk5C.unk02_0 = 1; + // Target number of A presses has been reached, game is complete + game->newDepth = 32; + game->localState.endGame = TRUE; } -void sub_8023558(struct BerryCrushGame *r3) +// Updates the crusher, input flags, and timer to send to group members +// Only used by the link leader +static void UpdateLeaderGameState(struct BerryCrushGame *game) { - u8 r6 = 0; - u16 r1 = 0; - u16 r2 = 0; - u8 r4 = 0; + u8 numPlayersPressed = 0; + u16 flags = 0; + u16 temp = 0; + u8 i = 0; - for (r4 = 0; r4 < r3->unk9; ++r4) + for (i = 0; i < game->playerCount; i++) { - if (r3->unk98[r4].unk1C != 0) + if (game->players[i].inputState != INPUT_STATE_NONE) { - ++r6; - r1 = r3->unk98[r4].unk1B + 1; - if (r3->unk98[r4].unk1C & 2) - r1 |= 4; - r1 <<= 3 * r4; - r3->unk5C.unk08 |= r1; + numPlayersPressed++; + flags = game->players[i].inputFlags + F_INPUT_HIT_A; + if (game->players[i].inputState & INPUT_STATE_HIT_SYNC) + flags |= F_INPUT_HIT_SYNC; + flags <<= INPUT_FLAGS_PER_PLAYER * i; + game->localState.inputFlags |= flags; } } - r2 = (u16)r3->unk24; - r3->unk5C.unk04 = r2; - if (r6 == 0) + temp = (u16)game->newDepth; + game->localState.depth = temp; + if (numPlayersPressed == 0) { - if (r3->unk138.unk3 != 0) - ++r3->unk138.unk0; + if (game->gfx.vibrating) + game->gfx.counter++; } - else if (r3->unk138.unk3 != 0) + else if (game->gfx.vibrating) { - if (r6 != r3->unk138.unk1) + if (numPlayersPressed != game->gfx.vibrationIdx) { - r3->unk138.unk1 = r6 - 1; - r3->unk138.unk2 = gUnknown_082F3290[r6 - 1][0]; + game->gfx.vibrationIdx = numPlayersPressed - 1; + game->gfx.numVibrations = sVibrationData[numPlayersPressed - 1][0]; } else { - ++r3->unk138.unk0; + game->gfx.counter++; } } else { - r3->unk138.unk0 = 0; - r3->unk138.unk1 = r6 - 1; - r3->unk138.unk2 = gUnknown_082F3290[r6 - 1][0]; - r3->unk138.unk3 = 1; + game->gfx.counter = 0; + game->gfx.vibrationIdx = numPlayersPressed - 1; + game->gfx.numVibrations = sVibrationData[numPlayersPressed - 1][0]; + game->gfx.vibrating = TRUE; } - if (r3->unk138.unk3 != 0) + if (game->gfx.vibrating) { - if (r3->unk138.unk0 >= r3->unk138.unk2) + if (game->gfx.counter >= game->gfx.numVibrations) { - r3->unk138.unk0 = 0; - r3->unk138.unk1 = 0; - r3->unk138.unk2 = 0; - r3->unk138.unk3 = 0; - r1 = 0; + game->gfx.counter = 0; + game->gfx.vibrationIdx = 0; + game->gfx.numVibrations = 0; + game->gfx.vibrating = FALSE; + temp = 0; } else { - r1 = gUnknown_082F3290[r3->unk138.unk1][r3->unk138.unk0 + 1]; + temp = sVibrationData[game->gfx.vibrationIdx][game->gfx.counter + 1]; } - r3->unk5C.unk03 = (u8)r1; + game->localState.vibration = (u8)temp; } else { - r3->unk5C.unk03 = 0; + game->localState.vibration = 0; } - r3->unk5C.unk06 = r3->unk26; + game->localState.timer = game->leaderTimer; } -void sub_80236B8(struct BerryCrushGame *r5) +// Checks for input and sends data to group members +static void HandlePlayerInput(struct BerryCrushGame *game) { if (JOY_NEW(A_BUTTON)) - r5->unk5C.unk02_2 = 1; + game->localState.pushedAButton = TRUE; + if (JOY_HELD(A_BUTTON)) { - if (r5->unk98[r5->unk8].unk1A < r5->unk28) - ++r5->unk98[r5->unk8].unk1A; + if (game->players[game->localId].timePressingA < game->timer) + game->players[game->localId].timePressingA++; } - if (r5->unk8 != 0 && r5->unk5C.unk02_2 == 0) + + // Only send data to other players if you are the leader or you pressed A + if (game->localId != 0 && !game->localState.pushedAButton) return; - r5->unk5C.unk00 = 2; - if (r5->unk28 % 30 == 0) + game->localState.sendFlag = SEND_GAME_STATE; + + // Every 30 frames, check whether the sparkles produced should be big, + // depending on how many A presses there were in that time + if (game->timer % 30 == 0) { - if (r5->unk2E > gUnknown_082F4444[r5->unk9 - 2]) + if (game->bigSparkleCounter > sBigSparkleThresholds[game->playerCount - 2]) { - ++r5->unk30; - r5->unk25_4 = 1; + game->numBigSparkles++; + game->bigSparkle = TRUE; } else { - r5->unk25_4 = 0; + game->bigSparkle = FALSE; } - r5->unk2E = 0; - ++r5->unk32; + game->bigSparkleCounter = 0; + game->numBigSparkleChecks++; } - if (r5->unk28 % 15 == 0) + + // Every 15 frames, update the amount of sparkles that should be produced, + // depending on how many A presses there were in that time (including the bonus) + if (game->timer % 15 == 0) { - if (r5->unk34 < gUnknown_082F4434[r5->unk9 - 2][0]) - r5->unk25_5 = 0; - else if (r5->unk34 < gUnknown_082F4434[r5->unk9 - 2][1]) - r5->unk25_5 = 1; - else if (r5->unk34 < gUnknown_082F4434[r5->unk9 - 2][2]) - r5->unk34 = 2; // typo since r5->unk34 will be reset? - else if (r5->unk34 < gUnknown_082F4434[r5->unk9 - 2][3]) - r5->unk34 = 3; // typo since r5->unk34 will be reset? + // BUG: The wrong field is used twice below + // As a result, only a sparkleAmount of 0, 1, or 4 is attainable + #ifdef BUGFIX + #define field sparkleAmount + #else + #define field sparkleCounter + #endif + + if (game->sparkleCounter < sSparkleThresholds[game->playerCount - 2][0]) + game->sparkleAmount = 0; + else if (game->sparkleCounter < sSparkleThresholds[game->playerCount - 2][1]) + game->sparkleAmount = 1; + else if (game->sparkleCounter < sSparkleThresholds[game->playerCount - 2][2]) + game->field = 2; + else if (game->sparkleCounter < sSparkleThresholds[game->playerCount - 2][3]) + game->field = 3; else - r5->unk25_5 = 4; - r5->unk34 = 0; + game->sparkleAmount = 4; + game->sparkleCounter = 0; + + #undef field } else { - ++r5->unk10; - if (r5->unk10 > 60) + game->cmdTimer++; + if (game->cmdTimer > 60) { - if (r5->unk10 > 70) + if (game->cmdTimer > 70) { - sub_8011AC8(); - r5->unk10 = 0; + ClearRecvCommands(); + game->cmdTimer = 0; } - else if (r5->unk5C.unk02_3 == 0) + else if (game->localState.playerPressedAFlags == 0) { - sub_8011AC8(); - r5->unk10 = 0; + ClearRecvCommands(); + game->cmdTimer = 0; } } } - if (r5->unk28 >= 36000) - r5->unk5C.unk02_0 = 1; - r5->unk5C.unk02_1 = r5->unk25_4; - r5->unk5C.unk0A = r5->unk25_5; - memcpy(r5->unk42, &r5->unk5C, sizeof(r5->unk42)); - Rfu_SendPacket(r5->unk42); + if (game->timer >= MAX_TIME) + game->localState.endGame = TRUE; + game->localState.bigSparkle = game->bigSparkle; + game->localState.sparkleAmount = game->sparkleAmount; + memcpy(game->sendCmd, &game->localState, sizeof(game->sendCmd)); + Rfu_SendPacket(game->sendCmd); } -void sub_802385C(struct BerryCrushGame *r5) +static void RecvLinkData(struct BerryCrushGame *game) { - u8 r4 = 0; - struct BerryCrushGame_4E *r4_ = NULL; + u8 i = 0; + struct BerryCrushGame_LinkState *linkState = NULL; + + for (i = 0; i < game->playerCount; i++) + game->players[i].inputState = INPUT_STATE_NONE; - for (r4 = 0; r4 < r5->unk9; r4++) - r5->unk98[r4].unk1C = 0; if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) { - r5->unk25_2 = 0; + game->playedSound = FALSE; return; } if (gRecvCmds[0][1] != 2) { - r5->unk25_2 = 0; + game->playedSound = FALSE; return; } - memcpy(r5->unk4E, gRecvCmds[0], 14); - r4_ = (struct BerryCrushGame_4E *)&r5->unk4E; - r5->unk2A = r4_->unk6; - r5->unk2C = (s16)r4_->unk5; - r5->unk28 = r4_->unk8; - sub_80216E0(r5, &(r5->unk138)); - if (r4_->unk4_0) - { - r5->unk25_3 = 1; - } + memcpy(game->recvCmd, gRecvCmds[0], sizeof(game->recvCmd)); + linkState = (struct BerryCrushGame_LinkState *)&game->recvCmd; + game->depth = linkState->depth; + game->vibration = (s16)linkState->vibration; + game->timer = linkState->timer; + UpdateInputEffects(game, &(game->gfx)); + + if (linkState->endGame) + game->endGame = TRUE; } -static u32 sub_80238F0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_PlayGame_Leader(struct BerryCrushGame *game, u8 *args) { - memset(&r4->unk5C, 0, sizeof(r4->unk5C)); - memset(&r4->unk4E, 0, sizeof(r4->unk4E)); - sub_802385C(r4); - SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C); - SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C); - SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C); - if (r4->unk25_3) + memset(&game->localState, 0, sizeof(game->localState)); + memset(&game->recvCmd, 0, sizeof(game->recvCmd)); + RecvLinkData(game); + SetGpuReg(REG_OFFSET_BG0VOFS, -game->vibration); + SetGpuReg(REG_OFFSET_BG2VOFS, -game->vibration); + SetGpuReg(REG_OFFSET_BG3VOFS, -game->vibration); + if (game->endGame) { - if (r4->unk28 >= 36000) + if (game->timer >= MAX_TIME) { - r4->unk28 = 36000; - sub_8022BEC(16, 1, NULL); + game->timer = MAX_TIME; + RunOrScheduleCommand(CMD_TIMES_UP, SCHEDULE_CMD, NULL); } else { - sub_8022BEC(15, 1, NULL); + RunOrScheduleCommand(CMD_FINISH_GAME, SCHEDULE_CMD, NULL); } - r4->unk10 = 0; - r4->unkC = 0; + game->cmdTimer = 0; + game->cmdState = 0; return 0; } else { - ++r4->unk26; - sub_802339C(r4); - sub_8023558(r4); - sub_80236B8(r4); + game->leaderTimer++; + HandlePartnerInput(game); + UpdateLeaderGameState(game); + HandlePlayerInput(game); return 0; } } -static u32 sub_8023998(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_PlayGame_Member(struct BerryCrushGame *game, u8 *args) { - memset(&r4->unk5C, 0, sizeof(r4->unk5C)); - memset(&r4->unk4E, 0, sizeof(r4->unk4E)); - sub_802385C(r4); - SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C); - SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C); - SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C); - if (r4->unk25_3) + memset(&game->localState, 0, sizeof(game->localState)); + memset(&game->recvCmd, 0, sizeof(game->recvCmd)); + RecvLinkData(game); + SetGpuReg(REG_OFFSET_BG0VOFS, -game->vibration); + SetGpuReg(REG_OFFSET_BG2VOFS, -game->vibration); + SetGpuReg(REG_OFFSET_BG3VOFS, -game->vibration); + if (game->endGame) { - if (r4->unk28 >= 36000) + if (game->timer >= MAX_TIME) { - r4->unk28 = 36000; - sub_8022BEC(16, 1, NULL); + game->timer = MAX_TIME; + RunOrScheduleCommand(CMD_TIMES_UP, SCHEDULE_CMD, NULL); } else { - sub_8022BEC(15, 1, NULL); + RunOrScheduleCommand(CMD_FINISH_GAME, SCHEDULE_CMD, NULL); } - r4->unk10 = 0; - r4->unkC = 0; + game->cmdTimer = 0; + game->cmdState = 0; return 0; } else { - sub_80236B8(r4); + HandlePlayerInput(game); return 0; } } -static u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +// Game was 'won', crusher was pushed down fully before time was up +static u32 Cmd_FinishGame(struct BerryCrushGame *game, u8 *args) { - switch (r4->unkC) + switch (game->cmdState) { case 0: - r4->unk12 = 8; + game->gameState = STATE_FINISHED; PlaySE(SE_M_STRENGTH); - BlendPalettes(0xFFFFFFFF, 8, RGB(31, 31, 0)); - r4->unk138.unk0 = 2; + BlendPalettes(PALETTES_ALL, 8, RGB(31, 31, 0)); + game->gfx.counter = 2; break; case 1: - if (--r4->unk138.unk0 != 255) + if (--game->gfx.counter != (u8)-1) return 0; - BlendPalettes(0xFFFFFFFF, 0, RGB(31, 31, 0)); - r4->unk138.unk1 = 4; - r4->unk138.unk0 = 0; - r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; + BlendPalettes(PALETTES_ALL, 0, RGB(31, 31, 0)); + game->gfx.vibrationIdx = 4; + game->gfx.counter = 0; + game->gfx.numVibrations = sIntroOutroVibrationData[game->gfx.vibrationIdx][0]; break; case 2: - r4->unk2C = gUnknown_082F326C[r4->unk138.unk1][r4->unk138.unk0]; - SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C); - SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C); - SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C); - if (++r4->unk138.unk0 < r4->unk138.unk2) + game->vibration = sIntroOutroVibrationData[game->gfx.vibrationIdx][game->gfx.counter]; + SetGpuReg(REG_OFFSET_BG0VOFS, -game->vibration); + SetGpuReg(REG_OFFSET_BG2VOFS, -game->vibration); + SetGpuReg(REG_OFFSET_BG3VOFS, -game->vibration); + if (++game->gfx.counter < game->gfx.numVibrations) return 0; - if (r4->unk138.unk1 != 0) + if (game->gfx.vibrationIdx != 0) { - --r4->unk138.unk1; - r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; - r4->unk138.unk0 = 0; + game->gfx.vibrationIdx--; + game->gfx.numVibrations = sIntroOutroVibrationData[game->gfx.vibrationIdx][0]; + game->gfx.counter = 0; return 0; } break; case 3: - r4->unk2C = 0; + game->vibration = 0; SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); break; case 4: - if (!sub_80218D4(r4, &r4->unk138)) + if (!AreEffectsFinished(game, &game->gfx)) return 0; Rfu_SetLinkStandbyCallback(); - r4->unk10 = 0; + game->cmdTimer = 0; break; case 5: if (!IsLinkTaskFinished()) return 0; - sub_8022BEC(17, 1, NULL); - r4->unk10 = 0; - r4->unkC = 0; + RunOrScheduleCommand(CMD_CALC_RESULTS, SCHEDULE_CMD, NULL); + game->cmdTimer = 0; + game->cmdState = 0; return 0; } - ++r4->unkC; + game->cmdState++; return 0; } -static u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6) +static u32 Cmd_HandleTimeUp(struct BerryCrushGame *game, u8 *args) { - switch (r5->unkC) + switch (game->cmdState) { case 0: - r5->unk12 = 9; + game->gameState = STATE_TIMES_UP; PlaySE(SE_FAILURE); - BlendPalettes(0xFFFFFFFF, 8, RGB(31, 0, 0)); - r5->unk138.unk0 = 4; + BlendPalettes(PALETTES_ALL, 8, RGB(31, 0, 0)); + game->gfx.counter = 4; break; case 1: - if (--r5->unk138.unk0 != 255) + if (--game->gfx.counter != (u8)-1) return 0; - BlendPalettes(0xFFFFFFFF, 0, RGB(31, 0, 0)); - r5->unk138.unk0 = 0; + BlendPalettes(PALETTES_ALL, 0, RGB(31, 0, 0)); + game->gfx.counter = 0; break; case 2: - if (!sub_80218D4(r5, &r5->unk138)) + if (!AreEffectsFinished(game, &game->gfx)) return 0; Rfu_SetLinkStandbyCallback(); - r5->unk10 = 0; + game->cmdTimer = 0; SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); @@ -2715,235 +2976,264 @@ static u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6) case 3: if (!IsLinkTaskFinished()) return 0; - ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, STR_CONV_MODE_LEFT_ALIGN, 6); - sub_8024644(r6, 7, 1, 0, 0); - r5->unkE = 19; - sub_8022BEC(3, 1, NULL); - r5->unk10 = 0; - r5->unkC = 0; + ConvertIntToDecimalStringN(gStringVar1, game->powder, STR_CONV_MODE_LEFT_ALIGN, 6); + SetPrintMessageArgs(args, MSG_TIMES_UP, F_MSG_CLEAR, 0, 0); + game->nextCmd = CMD_SAVE; + RunOrScheduleCommand(CMD_PRINT_MSG, SCHEDULE_CMD, NULL); + game->cmdTimer = 0; + game->cmdState = 0; return 0; } - ++r5->unkC; + game->cmdState++; return 0; } -static u32 sub_8023CAC(struct BerryCrushGame *r7, __attribute__((unused)) u8 *r1) +static u32 Cmd_TabulateResults(struct BerryCrushGame *game, u8 *args) { - u8 r8, r4_, r3; - s32 r2; - s32 r4; - u16 r6; + u8 i, j, tempPlayerId; + s32 temp1, temp2; + u16 tempStat; - switch (r7->unkC) + switch (game->cmdState) { case 0: - memset(r7->unk42, 0, 2 * sizeof(u16)); - if (r7->unk98[r7->unk8].unk1A > r7->unk28) - r7->unk98[r7->unk8].unk1A = r7->unk28; - r7->unk42[0] = r7->unk98[r7->unk8].unk1A; - SendBlock(0, r7->unk42, 2); + memset(game->sendCmd, 0, 2 * sizeof(u16)); + if (game->players[game->localId].timePressingA > game->timer) + game->players[game->localId].timePressingA = game->timer; + game->sendCmd[0] = game->players[game->localId].timePressingA; + SendBlock(0, game->sendCmd, 2); break; case 1: if (!IsLinkTaskFinished()) return 0; - r7->unk10 = 0; + game->cmdTimer = 0; break; case 2: - if (GetBlockReceivedStatus() != gUnknown_082F4448[r7->unk9 - 2]) + if (GetBlockReceivedStatus() != sReceivedPlayerBitmasks[game->playerCount - 2]) return 0; - for (r8 = 0; r8 < r7->unk9; ++r8) - r7->unk98[r8].unk1A = gBlockRecvBuffer[r8][0]; - r7->unk10 = 0; - r7->unk42[0] = 0; + for (i = 0; i < game->playerCount; i++) + game->players[i].timePressingA = gBlockRecvBuffer[i][0]; + + game->cmdTimer = 0; + game->sendCmd[0] = 0; ResetBlockReceivedFlags(); - if (r7->unk8 == 0) - r7->unkC = 3; + + // If player is not leader, skip the steps + // where the results are calculated and sent. + // Group members just read the results sent + // to them by the leader. + if (game->localId == 0) + game->cmdState = 3; else - r7->unkC = 6; + game->cmdState = 6; return 0; case 3: - memset(&r7->unk68, 0, sizeof(struct BerryCrushGame_68)); - r7->unk68.unk04 = r7->unk28; - r7->unk68.unk06 = r7->unk18 / (r7->unk28 / 60); - r2 = MathUtil_Mul32(Q_24_8(r7->unk30), Q_24_8(50)); - r2 = MathUtil_Div32(r2, Q_24_8(r7->unk32)) + Q_24_8(50); - r2 = Q_24_8_TO_INT(r2); - r7->unk68.unk08 = r2 & 0x7F; - r2 = Q_24_8(r2); - r2 = MathUtil_Div32(r2, Q_24_8(100)); - r4 = Q_24_8(r7->unk1C * r7->unk9); - r4 = MathUtil_Mul32(r4, r2); - r7->unk68.unk00 = r4 >> 8; - r7->unk68.unk20[0][7] = Random() % 3; - for (r8 = 0; r8 < r7->unk9; ++r8) + memset(&game->results, 0, sizeof(game->results)); + game->results.time = game->timer; + game->results.targetPressesPerSec = game->targetAPresses / (game->timer / 60); + + // Calculate silkiness + // Silkiness is the percentage of times big sparkles were produced when possible, + // which itself depends on the number of A presses every 30 frames + temp1 = MathUtil_Mul32(Q_24_8(game->numBigSparkles), Q_24_8(50)); + temp1 = MathUtil_Div32(temp1, Q_24_8(game->numBigSparkleChecks)) + Q_24_8(50); + temp1 = Q_24_8_TO_INT(temp1); + game->results.silkiness = temp1 & 0x7F; + + // Calculate amount of powder + temp1 = Q_24_8(temp1); + temp1 = MathUtil_Div32(temp1, Q_24_8(100)); + temp2 = Q_24_8(game->powder * game->playerCount); + temp2 = MathUtil_Mul32(temp2, temp1); + game->results.powder = Q_24_8_TO_INT(temp2); + + // Choose random second results page + game->results.randomPageId = Random() % NUM_RANDOM_RESULTS_PAGES; + + for (i = 0; i < game->playerCount; i++) { - r7->unk68.unk20[0][r8] = r8; - r7->unk68.unk20[1][r8] = r8; - r7->unk68.unk0C[0][r8] = r7->unk98[r8].unk16; - r7->unk68.unk0A += r7->unk68.unk0C[0][r8]; - switch (r7->unk68.unk20[0][7]) + game->results.playerIdsRanked[RESULTS_PAGE_PRESSES][i] = i; + game->results.playerIdsRanked[RESULTS_PAGE_RANDOM][i] = i; + game->results.stats[RESULTS_PAGE_PRESSES][i] = game->players[i].numAPresses; + game->results.totalAPresses += game->results.stats[RESULTS_PAGE_PRESSES][i]; + + // Calculate value for random second results page + switch (game->results.randomPageId) { - case 0: - if (r7->unk98[r8].unk16 != 0) + case RESULTS_PAGE_NEATNESS: + if (game->players[i].numAPresses != 0) { - r2 = r7->unk98[r8].unk14; - r2 = Q_24_8(r2); - r2 = MathUtil_Mul32(r2, Q_24_8(100)); - r4 = r7->unk98[r8].unk16; - r4 = Q_24_8(r4); - r4 = MathUtil_Div32(r2, r4); + // Calculate percentage of inputs that were in largest "neat" streak + // "Neat" inputs are those done at a regular interval + temp1 = game->players[i].maxNeatInputStreak; + temp1 = Q_24_8(temp1); + temp1 = MathUtil_Mul32(temp1, Q_24_8(100)); + temp2 = game->players[i].numAPresses; + temp2 = Q_24_8(temp2); + temp2 = MathUtil_Div32(temp1, temp2); } else { - r4 = 0; + temp2 = 0; } break; - case 1: - if (r7->unk98[r8].unk16 != 0) + case RESULTS_PAGE_COOPERATIVE: + if (game->players[i].numAPresses != 0) { - r2 = r7->unk98[r8].unk18; - r2 = Q_24_8(r2); - r2 = MathUtil_Mul32(r2, Q_24_8(100)); - r4 = r7->unk98[r8].unk16; - r4 = Q_24_8(r4); - r4 = MathUtil_Div32(r2, r4); + // Calculate percentage of inputs that were + // done at the same time as another player + temp1 = game->players[i].numSyncedAPresses; + temp1 = Q_24_8(temp1); + temp1 = MathUtil_Mul32(temp1, Q_24_8(100)); + temp2 = game->players[i].numAPresses; + temp2 = Q_24_8(temp2); + temp2 = MathUtil_Div32(temp1, temp2); } else { - r4 = 0; + temp2 = 0; } break; - case 2: - if (r7->unk98[r8].unk16 == 0) + case RESULTS_PAGE_POWER: + if (game->players[i].numAPresses == 0) { - r4 = 0; + temp2 = 0; } - else if (r7->unk98[r8].unk1A >= r7->unk28) + else if (game->players[i].timePressingA >= game->timer) { - r4 = 0x6400; + // Spent 100% of the time pressing A + temp2 = Q_24_8(100); } else { - r2 = r7->unk98[r8].unk1A; - r2 = Q_24_8(r2); - r2 = MathUtil_Mul32(r2, Q_24_8(100)); - r4 = r7->unk28; - r4 = Q_24_8(r4); - r4 = MathUtil_Div32(r2, r4); + // Calculate percentage of time the + // player spent pressing A + temp1 = game->players[i].timePressingA; + temp1 = Q_24_8(temp1); + temp1 = MathUtil_Mul32(temp1, Q_24_8(100)); + temp2 = game->timer; + temp2 = Q_24_8(temp2); + temp2 = MathUtil_Div32(temp1, temp2); } break; } - r4 >>= 4; - r7->unk68.unk0C[1][r8] = r4; + temp2 >>= 4; + game->results.stats[RESULTS_PAGE_RANDOM][i] = temp2; } break; case 4: - for (r8 = 0; r8 < r7->unk9 - 1; ++r8) + for (i = 0; i < game->playerCount - 1; i++) { - for (r4_ = r7->unk9 - 1; r4_ > r8; --r4_) + for (j = game->playerCount - 1; j > i; j--) { - if (r7->unk68.unk0C[0][r4_ - 1] < r7->unk68.unk0C[0][r4_]) + // Calculate player rankings for "Number of Presses" by sorting arrays + if (game->results.stats[RESULTS_PAGE_PRESSES][j - 1] < game->results.stats[RESULTS_PAGE_PRESSES][j]) { - r6 = r7->unk68.unk0C[0][r4_]; - r7->unk68.unk0C[0][r4_] = r7->unk68.unk0C[0][r4_ - 1]; - r7->unk68.unk0C[0][r4_ - 1] = r6; - r3 = r7->unk68.unk20[0][r4_]; - r7->unk68.unk20[0][r4_] = r7->unk68.unk20[0][r4_ - 1]; - r7->unk68.unk20[0][r4_ - 1] = r3; + SWAP(game->results.stats[RESULTS_PAGE_PRESSES][j], + game->results.stats[RESULTS_PAGE_PRESSES][j - 1], + tempStat); + SWAP(game->results.playerIdsRanked[RESULTS_PAGE_PRESSES][j], + game->results.playerIdsRanked[RESULTS_PAGE_PRESSES][j - 1], + tempPlayerId); } - if (r7->unk68.unk0C[1][r4_ - 1] < r7->unk68.unk0C[1][r4_]) + // Calculate player rankings for random second results page by sorting arrays + if (game->results.stats[RESULTS_PAGE_RANDOM][j - 1] < game->results.stats[RESULTS_PAGE_RANDOM][j]) { - r6 = r7->unk68.unk0C[1][r4_]; - r7->unk68.unk0C[1][r4_] = r7->unk68.unk0C[1][r4_ - 1]; - r7->unk68.unk0C[1][r4_ - 1] = r6; - r3 = r7->unk68.unk20[1][r4_]; - r7->unk68.unk20[1][r4_] = r7->unk68.unk20[1][r4_ - 1]; - r7->unk68.unk20[1][r4_ - 1] = r3; + SWAP(game->results.stats[RESULTS_PAGE_RANDOM][j], + game->results.stats[RESULTS_PAGE_RANDOM][j - 1], + tempStat); + SWAP(game->results.playerIdsRanked[RESULTS_PAGE_RANDOM][j], + game->results.playerIdsRanked[RESULTS_PAGE_RANDOM][j - 1], + tempPlayerId); } } } - SendBlock(0,&r7->unk68, sizeof(struct BerryCrushGame_68)); + SendBlock(0, &game->results, sizeof(game->results)); break; case 5: if (!IsLinkTaskFinished()) return 0; - r7->unk10 = 0; + game->cmdTimer = 0; break; case 6: if (GetBlockReceivedStatus() != 1) return 0; - memset(&r7->unk68, 0, sizeof(struct BerryCrushGame_68)); - memcpy(&r7->unk68, gBlockRecvBuffer, sizeof(struct BerryCrushGame_68)); + + // Receive results calculated by leader + memset(&game->results, 0, sizeof(game->results)); + memcpy(&game->results, gBlockRecvBuffer, sizeof(game->results)); ResetBlockReceivedFlags(); - r7->unk10 = 0; + game->cmdTimer = 0; break; case 7: - BerryCrush_SaveResults(); - sub_8022BEC(18, 1, NULL); - r7->unk12 = 11; - r7->unkC = 0; - r7->unk24 = 0; + SaveResults(); + RunOrScheduleCommand(CMD_SHOW_RESULTS, SCHEDULE_CMD, NULL); + game->gameState = STATE_RESULTS_PRESSES; + game->cmdState = 0; + game->newDepth = 0; return 0; } - ++r7->unkC; + game->cmdState++; return 0; } -static u32 sub_8024048(struct BerryCrushGame *r5, u8 *r6) +static u32 Cmd_ShowResults(struct BerryCrushGame *game, u8 *args) { - switch (r5->unkC) + switch (game->cmdState) { case 0: - if (!sub_8022070(r5, &r5->unk138)) + if (!OpenResultsWindow(game, &game->gfx)) return 0; break; case 1: CopyBgTilemapBufferToVram(0); - r5->unk138.unk0 = 30; + game->gfx.counter = 30; break; case 2: - if (r5->unk138.unk0 != 0) + if (game->gfx.counter != 0) { - --r5->unk138.unk0; + game->gfx.counter--; return 0; } if (!(JOY_NEW(A_BUTTON))) return 0; PlaySE(SE_SELECT); - sub_802222C(r5); + CloseResultsWindow(game); break; case 3: - if (r5->unk12 <= 12) + // Progress through each page of the results + if (game->gameState < RESULTS_STATE_END) { - ++r5->unk12; - r5->unkC = 0; + game->gameState++; + game->cmdState = 0; return 0; } break; case 4: - ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, STR_CONV_MODE_LEFT_ALIGN, 6); + // Print message showing how much powder was created + ConvertIntToDecimalStringN(gStringVar1, game->powder, STR_CONV_MODE_LEFT_ALIGN, 6); ConvertIntToDecimalStringN(gStringVar2, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 6); - sub_8024644(r6, 2, 3, 0, 0); - r5->unkE = 19; - sub_8022BEC(3, 1, NULL); - r5->unkC = 0; + SetPrintMessageArgs(args, MSG_POWDER, F_MSG_CLEAR | F_MSG_EXPAND, 0, 0); + game->nextCmd = CMD_SAVE; + RunOrScheduleCommand(CMD_PRINT_MSG, SCHEDULE_CMD, NULL); + game->cmdState = 0; return 0; } - ++r5->unkC; + game->cmdState++; return 0; } -static u32 sub_8024134(struct BerryCrushGame *r5, u8 *r4) +static u32 Cmd_SaveGame(struct BerryCrushGame *game, u8 *args) { - switch (r5->unkC) + switch (game->cmdState) { case 0: - if (r5->unk28 >= 36000) - sub_8022554(&r5->unk138); - sub_8024644(r4, 8, 0, 0, 1); - r5->unkE = 19; - sub_8022BEC(3, 1, NULL); - r5->unkC = 0; + if (game->timer >= MAX_TIME) + HideTimer(&game->gfx); + SetPrintMessageArgs(args, MSG_COMM_STANDBY, 0, 0, 1); + game->nextCmd = CMD_SAVE; + RunOrScheduleCommand(CMD_PRINT_MSG, SCHEDULE_CMD, NULL); + game->cmdState = 0; // State is progressed by CMD_PRINT_MSG return 0; case 1: Rfu_SetLinkStandbyCallback(); @@ -2961,63 +3251,67 @@ static u32 sub_8024134(struct BerryCrushGame *r5, u8 *r4) return 0; break; case 4: - sub_8022BEC(20, 1, NULL); - r5->unk12 = 15; - r5->unkC = 0; + RunOrScheduleCommand(CMD_ASK_PLAY_AGAIN, SCHEDULE_CMD, NULL); + game->gameState = STATE_PLAY_AGAIN; + game->cmdState = 0; return 0; } - ++r5->unkC; + game->cmdState++; return 0; } -static u32 sub_8024228(struct BerryCrushGame *r5, u8 *r6) +static u32 Cmd_AskPlayAgain(struct BerryCrushGame *game, u8 *args) { - s8 r4 = 0; + s8 input = 0; - switch (r5->unkC) + switch (game->cmdState) { case 0: - sub_8024644(r6, 4, 0, 0, 1); - r5->unkE = 20; - sub_8022BEC(3, 1, NULL); - r5->unkC = 0; // dunno what it's doing because it's already in case 0 + SetPrintMessageArgs(args, MSG_PLAY_AGAIN, 0, 0, 1); + game->nextCmd = CMD_ASK_PLAY_AGAIN; + RunOrScheduleCommand(CMD_PRINT_MSG, SCHEDULE_CMD, NULL); + game->cmdState = 0; // State is progressed by CMD_PRINT_MSG return 0; case 1: DisplayYesNoMenuDefaultYes(); break; case 2: - r4 = Menu_ProcessInputNoWrapClearOnChoose(); - if (r4 != -2) + input = Menu_ProcessInputNoWrapClearOnChoose(); + if (input != -2) { - memset(r5->unk42, 0, sizeof(r5->unk42)); - if (r4 == 0) + memset(game->sendCmd, 0, sizeof(game->sendCmd)); + if (input == 0) { + // Selected Yes if (HasAtLeastOneBerry()) - r5->unk14 = 0; + game->playAgainState = PLAY_AGAIN_YES; else - r5->unk14 = 3; + game->playAgainState = PLAY_AGAIN_NO_BERRIES; } else { - r5->unk14 = 1; + // Selected No + game->playAgainState = PLAY_AGAIN_NO; } + + // Close Yes/No and start communication ClearDialogWindowAndFrame(0, 1); - sub_8024644(r6, 8, 0, 0, 0); - r5->unkE = 21; - sub_8022BEC(3, 1, NULL); - r5->unkC = 0; + SetPrintMessageArgs(args, MSG_COMM_STANDBY, 0, 0, 0); + game->nextCmd = CMD_COMM_PLAY_AGAIN; + RunOrScheduleCommand(CMD_PRINT_MSG, SCHEDULE_CMD, NULL); + game->cmdState = 0; } return 0; } - ++r5->unkC; + game->cmdState++; return 0; } -static u32 sub_80242E0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1) +static u32 Cmd_CommunicatePlayAgainResponses(struct BerryCrushGame *game, u8 *args) { - u8 r5 = 0; + u8 i = 0; - switch (r4->unkC) + switch (game->cmdState) { case 0: Rfu_SetLinkStandbyCallback(); @@ -3025,41 +3319,47 @@ static u32 sub_80242E0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 case 1: if (!IsLinkTaskFinished()) return 0; - r4->unk42[0] = r4->unk14; - r4->unk4E[0] = 0; - SendBlock(0, r4->unk42, sizeof(u16)); + + // Send player's Yes/No response to partners + game->sendCmd[0] = game->playAgainState; + game->recvCmd[0] = 0; + SendBlock(0, game->sendCmd, sizeof(u16)); break; case 2: if (!IsLinkTaskFinished()) return 0; - r4->unk10 = 0; + game->cmdTimer = 0; break; case 3: - if (GetBlockReceivedStatus() != gUnknown_082F4448[r4->unk9 - 2]) + // Wait for partners responses + if (GetBlockReceivedStatus() != sReceivedPlayerBitmasks[game->playerCount - 2]) return 0; - for (; r5 < r4->unk9; ++r5) - r4->unk4E[0] += gBlockRecvBuffer[r5][0]; - if (r4->unk4E[0] != 0) - sub_8022BEC(23, 1, NULL); + + // Read partners responses + for (i = 0; i < game->playerCount; i++) + game->recvCmd[0] += gBlockRecvBuffer[i][0]; + + if (game->recvCmd[0] != PLAY_AGAIN_YES) + RunOrScheduleCommand(CMD_PLAY_AGAIN_NO, SCHEDULE_CMD, NULL); else - sub_8022BEC(22, 1, NULL); + RunOrScheduleCommand(CMD_PLAY_AGAIN_YES, SCHEDULE_CMD, NULL); ResetBlockReceivedFlags(); - r4->unk42[0] = 0; - r4->unk4E[0] = 0; - r4->unk10 = 0; - r4->unkC = 0; + game->sendCmd[0] = 0; + game->recvCmd[0] = 0; + game->cmdTimer = 0; + game->cmdState = 0; return 0; } - ++r4->unkC; + game->cmdState++; return 0; } -static u32 sub_80243BC(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1) +static u32 Cmd_PlayAgain(struct BerryCrushGame *game, u8 *args) { - switch (r5->unkC) + switch (game->cmdState) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 1, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 1, 0, 16, RGB_BLACK); UpdatePaletteFade(); break; case 1: @@ -3068,56 +3368,56 @@ static u32 sub_80243BC(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1 break; case 2: ClearDialogWindowAndFrame(0, 1); - sub_8021488(r5); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + ResetCrusherPos(game); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); UpdatePaletteFade(); break; case 3: if (UpdatePaletteFade()) return 0; - sub_8022BEC(7, 1, NULL); - r5->unk12 = 3; - r5->unkC = 0; + RunOrScheduleCommand(CMD_ASK_PICK_BERRY, SCHEDULE_CMD, NULL); + game->gameState = STATE_PICK_BERRY; + game->cmdState = 0; return 0; } - ++r5->unkC; + game->cmdState++; return 0; } -static u32 sub_8024444(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1) +static u32 Cmd_StopGame(struct BerryCrushGame *game, u8 *args) { - switch (r5->unkC) + switch (game->cmdState) { case 0: DrawDialogueFrame(0, 0); - if (r5->unk14 == 3) - AddTextPrinterParameterized2(0, 1, gUnknown_082F32A4[5], r5->unkB, 0, 2, 1, 3); + if (game->playAgainState == PLAY_AGAIN_NO_BERRIES) + AddTextPrinterParameterized2(0, 1, sMessages[MSG_NO_BERRIES], game->textSpeed, 0, 2, 1, 3); else - AddTextPrinterParameterized2(0, 1, gUnknown_082F32A4[6], r5->unkB, 0, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, sMessages[MSG_DROPPED], game->textSpeed, 0, 2, 1, 3); CopyWindowToVram(0, 3); break; case 1: if (IsTextPrinterActive(0)) return 0; - r5->unk138.unk0 = 120; + game->gfx.counter = 120; break; case 2: - if (r5->unk138.unk0 != 0) - --r5->unk138.unk0; + if (game->gfx.counter != 0) + game->gfx.counter--; else { - sub_8022BEC(24, 1, NULL); - r5->unkC = 0; + RunOrScheduleCommand(CMD_CLOSE_LINK, SCHEDULE_CMD, NULL); + game->cmdState = 0; } return 0; } - ++r5->unkC; + game->cmdState++; return 0; } -static u32 sub_8024508(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1) +static u32 Cmd_CloseLink(struct BerryCrushGame *game, u8 *args) { - switch (r5->unkC) + switch (game->cmdState) { case 0: Rfu_SetLinkStandbyCallback(); @@ -3130,84 +3430,81 @@ static u32 sub_8024508(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1 case 2: if (gReceivedRemoteLinkPlayers != 0) return 0; - r5->unkE = 25; - sub_8022BEC(5, 1, NULL); - r5->unkC = 2; // ??? + game->nextCmd = CMD_QUIT; + RunOrScheduleCommand(CMD_HIDE_GAME, SCHEDULE_CMD, NULL); + game->cmdState = 2; // ??? return 0; } - ++r5->unkC; + game->cmdState++; return 0; } -static u32 sub_8024568(__attribute__((unused)) struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1) +static u32 Cmd_Quit(struct BerryCrushGame *game, u8 *args) { QuitBerryCrush(NULL); return 0; } -void sub_8024578(struct BerryCrushGame *r4) +static void ResetGame(struct BerryCrushGame *game) { - u8 r5 = 0; + u8 i = 0; - IncrementGameStat(GAME_STAT_51); - r4->unkD = 0; - r4->unk10 = 0; - r4->unk12 = 2; - r4->unk14 = 0; - r4->unk1C = 0; - r4->unk18 = 0; - r4->unk1A = 0; - r4->unk20 = 0; - r4->unk24 = 0; - r4->unk25_0 = 0; - r4->unk25_1 = 0; - r4->unk25_2 = 0; - r4->unk25_3 = 0; - r4->unk25_4 = 0; - r4->unk25_5 = 0; - r4->unk26 = 0; - r4->unk28 = 0; - r4->unk2E = 0; - r4->unk32 = -1; - r4->unk30 = 0; - r4->unk34 = 0; - for (; r5 < 5; ++r5) + IncrementGameStat(GAME_STAT_PLAYED_BERRY_CRUSH); + game->unused = 0; + game->cmdTimer = 0; + game->gameState = STATE_RESET; + game->playAgainState = 0; + game->powder = 0; + game->targetAPresses = 0; + game->totalAPresses = 0; + game->targetDepth = 0; + game->newDepth = 0; + game->noRoomForPowder = FALSE; + game->newRecord = FALSE; + game->playedSound = FALSE; + game->endGame = FALSE; + game->bigSparkle = FALSE; + game->sparkleAmount = 0; + game->leaderTimer = 0; + game->timer = 0; + game->bigSparkleCounter = 0; + game->numBigSparkleChecks = -1; + game->numBigSparkles = 0; + game->sparkleCounter = 0; + for (i = 0; i < MAX_RFU_PLAYERS; i++) { - r4->unk98[r5].unkC = -1; - r4->unk98[r5].unkE = 0; - r4->unk98[r5].unk10 = 0; - r4->unk98[r5].unk12 = 1; - r4->unk98[r5].unk14 = 0; - r4->unk98[r5].unk16 = 0; - r4->unk98[r5].unk18 = 0; - r4->unk98[r5].unk1A = 0; - r4->unk98[r5].unk1B = 0; - r4->unk98[r5].unk1C = 0; + game->players[i].berryId = -1; + game->players[i].inputTime = 0; + game->players[i].neatInputStreak = 0; + game->players[i].timeSincePrevInput = 1; + game->players[i].maxNeatInputStreak = 0; + game->players[i].numAPresses = 0; + game->players[i].numSyncedAPresses = 0; + game->players[i].timePressingA = 0; + game->players[i].inputFlags = 0; + game->players[i].inputState = INPUT_STATE_NONE; } } -static void BerryCrush_SetPaletteFadeParams(u8 *params, bool8 communicateAfter, u32 selectedPals, s8 delay, u8 startY, u8 targetY, u16 palette) +static void SetPaletteFadeArgs(u8 *args, bool8 communicateAfter, u32 selectedPals, s8 delay, u8 startY, u8 targetY, u16 palette) { - params[0] = ((u8 *)&selectedPals)[0]; - params[1] = ((u8 *)&selectedPals)[1]; - params[2] = ((u8 *)&selectedPals)[2]; - params[3] = ((u8 *)&selectedPals)[3]; - params[4] = delay; - params[5] = startY; - params[6] = targetY; - params[7] = ((u8 *)&palette)[0]; - params[8] = ((u8 *)&palette)[1]; - params[9] = communicateAfter; + args[0] = ((u8 *)&selectedPals)[0]; + args[1] = ((u8 *)&selectedPals)[1]; + args[2] = ((u8 *)&selectedPals)[2]; + args[3] = ((u8 *)&selectedPals)[3]; + args[4] = delay; + args[5] = startY; + args[6] = targetY; + args[7] = ((u8 *)&palette)[0]; + args[8] = ((u8 *)&palette)[1]; + args[9] = communicateAfter; } -void sub_8024644(u8 *r0, u32 r1, u32 r2, u32 r3, u32 r5) +static void SetPrintMessageArgs(u8 *args, u8 msgId, u8 flags, u16 waitKeys, u8 followupState) { - u8 sp[4]; - - 0[(u16 *)sp] = r3; - r0[0] = r1; - r0[1] = r2; - r0[2] = sp[0]; - r0[3] = sp[1]; - r0[4] = r5; + args[0] = msgId; + args[1] = flags; + args[2] = ((u8 *)&waitKeys)[0]; + args[3] = ((u8 *)&waitKeys)[1]; + args[4] = followupState; } diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 4c4a010b22..31caf79cc0 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -12,40 +12,42 @@ #include "text.h" #include "menu.h" #include "m4a.h" +#include "constants/rgb.h" -// Static type declarations - -typedef struct { +struct { u8 state; - u8 unk1; - u16 unk2; + u8 curScene; + u16 timer; struct MultiBootParam mb; -} berryfix_t; +} static * sBerryFix; -// Static RAM declarations - -static berryfix_t *berry_fix_mb_manager; - -// Static ROM declarations - -static void berry_fix_main(void); -static void berry_fix_gpu_set(void); -static int berry_fix_text_update(int); -static void berry_fix_text_print(int); -static void berry_fix_bg_hide(void); - -// .rodata +static void BerryFix_Main(void); +static void BerryFix_GpuSet(void); +static int BerryFix_TrySetScene(int); +static void BerryFix_SetScene(int); +static void BerryFix_HideScene(void); static const u8 sText_BerryProgramUpdate[] = _("Berry Program Update"); static const u8 sText_RubySapphire[] = _("Ruby/Sapphire"); static const u8 sText_Emerald[] = _("Emerald"); - -static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _("The Berry Program on your POKéMON\nRuby/Sapphire Game Pak will be updated.\n{COLOR RED}{SHADOW LIGHT_RED}Press the A Button."); -static const u8 sText_EnsureGBAConnectionMatches[] = _("Please ensure the connection of your\nGame Boy Advance system matches this.\n{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\nNO: Turn off the power and try again."); -static const u8 sText_TurnOffPowerHoldingStartSelect[] = _("Please turn on the power of POKéMON\nRuby/Sapphire while holding START and\nSELECT simultaneously. Then, ensure\nthe picture above appears."); -static const u8 sText_TransmittingPleaseWait[] = _("Transmitting. Please wait.\n{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\nunplug the Game Boy Advance Game\nLink Cable."); -static const u8 sText_PleaseFollowInstructionsOnScreen[] = _("Please follow the instructions on your\nPOKéMON Ruby/Sapphire screen."); -static const u8 sText_TransmissionFailureTryAgain[] = _("Transmission failure.\n{COLOR RED}{SHADOW LIGHT_RED}Please try again."); +static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _("The Berry Program on your POKéMON\n" + "Ruby/Sapphire Game Pak will be updated.\n" + "{COLOR RED}{SHADOW LIGHT_RED}Press the A Button."); +static const u8 sText_EnsureGBAConnectionMatches[] = _("Please ensure the connection of your\n" + "Game Boy Advance system matches this.\n" + "{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\n" + "NO: Turn off the power and try again."); +static const u8 sText_TurnOffPowerHoldingStartSelect[] = _("Please turn on the power of POKéMON\n" + "Ruby/Sapphire while holding START and\n" + "SELECT simultaneously. Then, ensure\n" + "the picture above appears."); +static const u8 sText_TransmittingPleaseWait[] = _("Transmitting. Please wait.\n" + "{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\n" + "unplug the Game Boy Advance Game\nLink Cable."); +static const u8 sText_PleaseFollowInstructionsOnScreen[] = _("Please follow the instructions on your\n" + "POKéMON Ruby/Sapphire screen."); +static const u8 sText_TransmissionFailureTryAgain[] = _("Transmission failure.\n" + "{COLOR RED}{SHADOW LIGHT_RED}Please try again."); static const struct BgTemplate sBerryFixBgTemplates[] = { { @@ -108,52 +110,66 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { DUMMY_WIN_TEMPLATE }; -static const u16 sUnknown_08618138[] = { - 0x7fff, 0x7fff, 0x318c, 0x675a, - 0x043c, 0x3aff, 0x0664, 0x4bd2, - 0x6546, 0x7b14, 0x7fff, 0x318c, - 0x675a, 0, 0, 0 +static const u16 sBerryFixPalColors[] = { + RGB_WHITE, RGB_WHITE, RGB(12, 12, 12), RGB(26, 26, 25), + RGB(28, 1, 1), RGB(31, 23, 14), RGB(4, 19, 1), RGB(18, 30, 18), + RGB(6, 10, 25), RGB(20, 24, 30), RGB_WHITE, RGB(12, 12, 12), + RGB(26, 26, 25), RGB_BLACK, RGB_BLACK, RGB_BLACK }; static const u8 sBerryProgramTextColors[] = {TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3}; static const u8 sGameTitleTextColors[] = { TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_4}; -static const u8 *const sBerryProgramTexts[] = { - sText_EnsureGBAConnectionMatches, - sText_TurnOffPowerHoldingStartSelect, - sText_TransmittingPleaseWait, - sText_PleaseFollowInstructionsOnScreen, - sText_TransmissionFailureTryAgain, - sText_BerryProgramWillBeUpdatedPressA +enum { + SCENE_ENSURE_CONNECT, + SCENE_TURN_OFF_POWER, + SCENE_TRANSMITTING, + SCENE_FOLLOW_INSTRUCT, + SCENE_TRANSMIT_FAILED, + SCENE_BEGIN, + SCENE_NONE }; +static const u8 *const sBerryProgramTexts[] = { + [SCENE_ENSURE_CONNECT] = sText_EnsureGBAConnectionMatches, + [SCENE_TURN_OFF_POWER] = sText_TurnOffPowerHoldingStartSelect, + [SCENE_TRANSMITTING] = sText_TransmittingPleaseWait, + [SCENE_FOLLOW_INSTRUCT] = sText_PleaseFollowInstructionsOnScreen, + [SCENE_TRANSMIT_FAILED] = sText_TransmissionFailureTryAgain, + [SCENE_BEGIN] = sText_BerryProgramWillBeUpdatedPressA +}; static const struct { const u32 *gfx; const u32 *tilemap; - const u16 *pltt; + const u16 *palette; } sBerryFixGraphics[] = { - { + [SCENE_ENSURE_CONNECT] = { gBerryFixGameboy_Gfx, gBerryFixGameboy_Tilemap, gBerryFixGameboy_Pal - }, { + }, + [SCENE_TURN_OFF_POWER] = { gBerryFixGameboyLogo_Gfx, gBerryFixGameboyLogo_Tilemap, gBerryFixGameboyLogo_Pal - }, { + }, + [SCENE_TRANSMITTING] = { gBerryFixGbaTransfer_Gfx, gBerryFixGbaTransfer_Tilemap, gBerryFixGbaTransfer_Pal - }, { + }, + [SCENE_FOLLOW_INSTRUCT] = { gBerryFixGbaTransferHighlight_Gfx, gBerryFixGbaTransferHighlight_Tilemap, gBerryFixGbaTransferHighlight_Pal - }, { + }, + [SCENE_TRANSMIT_FAILED] = { gBerryFixGbaTransferError_Gfx, gBerryFixGbaTransferError_Tilemap, gBerryFixGbaTransferError_Pal - }, { + }, + [SCENE_BEGIN] = { gBerryFixWindow_Gfx, gBerryFixWindow_Tilemap, gBerryFixWindow_Pal @@ -163,7 +179,16 @@ static const struct { extern const u8 gMultiBootProgram_BerryGlitchFix_Start[0x3BF4]; extern const u8 gMultiBootProgram_BerryGlitchFix_End[]; -// .text +enum { + MAINSTATE_INIT, + MAINSTATE_BEGIN, + MAINSTATE_CONNECT, + MAINSTATE_INIT_MULTIBOOT, + MAINSTATE_MULTIBOOT, + MAINSTATE_TRANSMIT, + MAINSTATE_EXIT, + MAINSTATE_FAILED, +}; void CB2_InitBerryFixProgram(void) { @@ -175,81 +200,79 @@ void CB2_InitBerryFixProgram(void) ResetTasks(); ScanlineEffect_Stop(); SetGpuReg(REG_OFFSET_DISPCNT, 0); - berry_fix_mb_manager = AllocZeroed(0x50); - berry_fix_mb_manager->state = 0; - berry_fix_mb_manager->unk1 = 6; - SetMainCallback2(berry_fix_main); + sBerryFix = AllocZeroed(sizeof(*sBerryFix)); + sBerryFix->state = MAINSTATE_INIT; + sBerryFix->curScene = SCENE_NONE; + SetMainCallback2(BerryFix_Main); } -static void berry_fix_main(void) +#define TryScene(sceneNum) BerryFix_TrySetScene(sceneNum) == (sceneNum) + +static void BerryFix_Main(void) { - switch (berry_fix_mb_manager->state) + switch (sBerryFix->state) { - case 0: - berry_fix_gpu_set(); - berry_fix_mb_manager->state = 1; + case MAINSTATE_INIT: + BerryFix_GpuSet(); + sBerryFix->state = MAINSTATE_BEGIN; break; - case 1: - if (berry_fix_text_update(5) == 5 && (JOY_NEW(A_BUTTON))) + case MAINSTATE_BEGIN: + if (TryScene(SCENE_BEGIN) && (JOY_NEW(A_BUTTON))) + sBerryFix->state = MAINSTATE_CONNECT; + break; + case MAINSTATE_CONNECT: + if (TryScene(SCENE_ENSURE_CONNECT) && (JOY_NEW(A_BUTTON))) + sBerryFix->state = MAINSTATE_INIT_MULTIBOOT; + break; + case MAINSTATE_INIT_MULTIBOOT: + if (TryScene(SCENE_TURN_OFF_POWER)) { - berry_fix_mb_manager->state = 2; + sBerryFix->mb.masterp = gMultiBootProgram_BerryGlitchFix_Start; + sBerryFix->mb.server_type = 0; + MultiBootInit(&sBerryFix->mb); + sBerryFix->timer = 0; + sBerryFix->state = MAINSTATE_MULTIBOOT; } break; - case 2: - if (berry_fix_text_update(0) == 0 && (JOY_NEW(A_BUTTON))) + case MAINSTATE_MULTIBOOT: + MultiBootMain(&sBerryFix->mb); + if (sBerryFix->mb.probe_count != 0 || (!(sBerryFix->mb.response_bit & 2) || !(sBerryFix->mb.client_bit & 2))) { - berry_fix_mb_manager->state = 3; + sBerryFix->timer = 0; + } + else if (++sBerryFix->timer > 180) + { + MultiBootStartMaster(&sBerryFix->mb, + gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE, + (u32)(gMultiBootProgram_BerryGlitchFix_End - (gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE)), + 4, + 1); + sBerryFix->state = MAINSTATE_TRANSMIT; } break; - case 3: - if (berry_fix_text_update(1) == 1) + case MAINSTATE_TRANSMIT: + if (TryScene(SCENE_TRANSMITTING)) { - berry_fix_mb_manager->mb.masterp = gMultiBootProgram_BerryGlitchFix_Start; - berry_fix_mb_manager->mb.server_type = 0; - MultiBootInit(&berry_fix_mb_manager->mb); - berry_fix_mb_manager->unk2 = 0; - berry_fix_mb_manager->state = 4; + MultiBootMain(&sBerryFix->mb); + + if (MultiBootCheckComplete(&sBerryFix->mb)) + sBerryFix->state = MAINSTATE_EXIT; + else if (!(sBerryFix->mb.client_bit & 2)) + sBerryFix->state = MAINSTATE_FAILED; } break; - case 4: - MultiBootMain(&berry_fix_mb_manager->mb); - if (berry_fix_mb_manager->mb.probe_count != 0 || (!(berry_fix_mb_manager->mb.response_bit & 2) || !(berry_fix_mb_manager->mb.client_bit & 2))) - { - berry_fix_mb_manager->unk2 = 0; - } - else if (++ berry_fix_mb_manager->unk2 > 180) - { - MultiBootStartMaster(&berry_fix_mb_manager->mb, gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE, (u32)(gMultiBootProgram_BerryGlitchFix_End - (gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE)), 4, 1); - berry_fix_mb_manager->state = 5; - } - break; - case 5: - if (berry_fix_text_update(2) == 2) { - MultiBootMain(&berry_fix_mb_manager->mb); - if (MultiBootCheckComplete(&berry_fix_mb_manager->mb)) { - berry_fix_mb_manager->state = 6; - } - else if (!(berry_fix_mb_manager->mb.client_bit & 2)) { - berry_fix_mb_manager->state = 7; - } - } - break; - case 6: - if (berry_fix_text_update(3) == 3 && JOY_NEW(A_BUTTON)) - { + case MAINSTATE_EXIT: + if (TryScene(SCENE_FOLLOW_INSTRUCT) && JOY_NEW(A_BUTTON)) DoSoftReset(); - } break; - case 7: - if (berry_fix_text_update(4) == 4 && JOY_NEW(A_BUTTON)) - { - berry_fix_mb_manager->state = 1; - } + case MAINSTATE_FAILED: + if (TryScene(SCENE_TRANSMIT_FAILED) && JOY_NEW(A_BUTTON)) + sBerryFix->state = MAINSTATE_BEGIN; break; } } -static void berry_fix_gpu_set(void) +static void BerryFix_GpuSet(void) { s32 width, left; @@ -274,26 +297,26 @@ static void berry_fix_gpu_set(void) InitWindows(sBerryFixWindowTemplates); DeactivateAllTextPrinters(); - DmaCopy32(3, sUnknown_08618138, BG_PLTT + 0x1E0, 0x20); + DmaCopy32(3, sBerryFixPalColors, BG_PLTT + 0x1E0, sizeof(sBerryFixPalColors)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); FillWindowPixelBuffer(2, PIXEL_FILL(0)); FillWindowPixelBuffer(3, PIXEL_FILL(0)); - FillWindowPixelBuffer(0, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(0, PIXEL_FILL(10)); width = GetStringWidth(0, sText_Emerald, 0); - left = (0x78 - width) / 2; + left = (120 - width) / 2; AddTextPrinterParameterized3(2, 0, left, 3, sGameTitleTextColors, TEXT_SPEED_FF, sText_Emerald); width = GetStringWidth(0, sText_RubySapphire, 0); - left = (0x78 - width) / 2 + 0x78; + left = (120 - width) / 2 + 120; AddTextPrinterParameterized3(2, 0, left, 3, sGameTitleTextColors, TEXT_SPEED_FF, sText_RubySapphire); width = GetStringWidth(0, sText_RubySapphire, 0); - left = (0x70 - width) / 2; + left = (112 - width) / 2; AddTextPrinterParameterized3(3, 0, left, 0, sGameTitleTextColors, TEXT_SPEED_FF, sText_RubySapphire); width = GetStringWidth(1, sText_BerryProgramUpdate, 0); - left = (0xD0 - width) / 2; + left = (208 - width) / 2; AddTextPrinterParameterized3(0, 1, left, 2, sBerryProgramTextColors, TEXT_SPEED_FF, sText_BerryProgramUpdate); CopyWindowToVram(2, 2); @@ -301,56 +324,55 @@ static void berry_fix_gpu_set(void) CopyWindowToVram(0, 2); } -static int berry_fix_text_update(int checkval) +static int BerryFix_TrySetScene(int scene) { - if (berry_fix_mb_manager->unk1 == checkval) + if (sBerryFix->curScene == scene) + return scene; + + if (sBerryFix->curScene == SCENE_NONE) { - return checkval; - } - if (berry_fix_mb_manager->unk1 == 6) - { - berry_fix_text_print(checkval); - berry_fix_mb_manager->unk1 = checkval; + BerryFix_SetScene(scene); + sBerryFix->curScene = scene; } else { - berry_fix_bg_hide(); - berry_fix_mb_manager->unk1 = 6; + BerryFix_HideScene(); + sBerryFix->curScene = SCENE_NONE; } - return berry_fix_mb_manager->unk1; + return sBerryFix->curScene; } -static void berry_fix_text_print(int scene) +static void BerryFix_SetScene(int scene) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillWindowPixelBuffer(1, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(1, PIXEL_FILL(10)); AddTextPrinterParameterized3(1, 1, 0, 0, sBerryProgramTextColors, -1, sBerryProgramTexts[scene]); PutWindowTilemap(1); CopyWindowToVram(1, 2); switch (scene) { - case 0: - case 2: - case 3: - case 4: - PutWindowTilemap(2); - break; - case 1: - PutWindowTilemap(3); - break; - case 5: - PutWindowTilemap(0); - break; + case SCENE_ENSURE_CONNECT: + case SCENE_TRANSMITTING: + case SCENE_FOLLOW_INSTRUCT: + case SCENE_TRANSMIT_FAILED: + PutWindowTilemap(2); + break; + case SCENE_TURN_OFF_POWER: + PutWindowTilemap(3); + break; + case SCENE_BEGIN: + PutWindowTilemap(0); + break; } CopyBgTilemapBufferToVram(0); LZ77UnCompVram(sBerryFixGraphics[scene].gfx, (void *)BG_CHAR_ADDR(1)); LZ77UnCompVram(sBerryFixGraphics[scene].tilemap, (void *)BG_SCREEN_ADDR(31)); - CpuCopy32(sBerryFixGraphics[scene].pltt, (void *)BG_PLTT, 0x100); + CpuCopy32(sBerryFixGraphics[scene].palette, (void *)BG_PLTT, 0x100); ShowBg(0); ShowBg(1); } -static void berry_fix_bg_hide(void) +static void BerryFix_HideScene(void) { HideBg(0); HideBg(1); diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 089228b17b..babbbb3eb2 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -26,7 +26,6 @@ #include "item_menu_icons.h" #include "decompress.h" #include "international_string_util.h" -#include "constants/berry.h" #include "constants/items.h" #include "constants/rgb.h" #include "constants/songs.h" @@ -277,11 +276,11 @@ static bool8 InitBerryTagScreen(void) gMain.state++; break; case 14: - BlendPalettes(-1, 0x10, 0); + BlendPalettes(PALETTES_ALL, 0x10, 0); gMain.state++; break; case 15: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gPaletteFade.bufferTransferDisabled = 0; gMain.state++; break; @@ -515,7 +514,7 @@ static void DestroyFlavorCircleSprites(void) static void PrepareToCloseBerryTagScreen(u8 taskId) { PlaySE(SE_SELECT); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_CloseBerryTagScreen; } @@ -549,9 +548,9 @@ static void Task_HandleInput(u8 taskId) static void TryChangeDisplayedBerry(u8 taskId, s8 toMove) { s16 *data = gTasks[taskId].data; - s16 currPocketPosition = gBagPositionStruct.scrollPosition[3] + gBagPositionStruct.cursorPosition[3]; + s16 currPocketPosition = gBagPosition.scrollPosition[BERRIES_POCKET] + gBagPosition.cursorPosition[BERRIES_POCKET]; u32 newPocketPosition = currPocketPosition + toMove; - if (newPocketPosition < 46 && BagGetItemIdByPocketPosition(POCKET_BERRIES, newPocketPosition) != 0) + if (newPocketPosition < ITEM_TO_BERRY(MAX_BERRY_INDEX) && BagGetItemIdByPocketPosition(POCKET_BERRIES, newPocketPosition) != ITEM_NONE) { if (toMove < 0) data[1] = 2; @@ -567,8 +566,8 @@ static void TryChangeDisplayedBerry(u8 taskId, s8 toMove) static void HandleBagCursorPositionChange(s8 toMove) { - u16 *scrollPos = &gBagPositionStruct.scrollPosition[3]; - u16 *cursorPos = &gBagPositionStruct.cursorPosition[3]; + u16 *scrollPos = &gBagPosition.scrollPosition[BERRIES_POCKET]; + u16 *cursorPos = &gBagPosition.cursorPosition[BERRIES_POCKET]; if (toMove > 0) { if (*cursorPos < 4 || BagGetItemIdByPocketPosition(POCKET_BERRIES, *scrollPos + 8) == 0) @@ -675,9 +674,9 @@ static void Task_DisplayAnotherBerry(u8 taskId) else posY = data[0]; - gSprites[sBerryTag->berrySpriteId].pos2.y = posY; + gSprites[sBerryTag->berrySpriteId].y2 = posY; for (i = 0; i < FLAVOR_COUNT; i++) - gSprites[sBerryTag->flavorCircleIds[i]].pos2.y = posY; + gSprites[sBerryTag->flavorCircleIds[i]].y2 = posY; ChangeBgY(1, 0x1000, data[1]); ChangeBgY(2, 0x1000, data[1]); diff --git a/src/bike.c b/src/bike.c index c4964b6272..e97a5e04e4 100644 --- a/src/bike.c +++ b/src/bike.c @@ -614,27 +614,24 @@ static void AcroBikeTransition_WheelieHoppingMoving(u8 direction) return; } collision = GetBikeCollision(direction); - // TODO: Try to get rid of this goto - if (collision == 0 || collision == COLLISION_WHEELIE_HOP) - { - goto derp; - } - else if (collision == COLLISION_LEDGE_JUMP) - { - PlayerLedgeHoppingWheelie(direction); - } - else if (collision < COLLISION_STOP_SURFING || collision > COLLISION_ROTATING_GATE) + if (collision && collision != COLLISION_WHEELIE_HOP) { + if (collision == COLLISION_LEDGE_JUMP) + { + PlayerLedgeHoppingWheelie(direction); + return; + } + if (collision >= COLLISION_STOP_SURFING && collision <= COLLISION_ROTATING_GATE) + { + return; + } if (collision < COLLISION_VERTICAL_RAIL) { AcroBikeTransition_WheelieHoppingStanding(direction); - } - else - { - derp: - PlayerMovingHoppingWheelie(direction); + return; } } + PlayerMovingHoppingWheelie(direction); } static void AcroBikeTransition_SideJump(u8 direction) @@ -963,9 +960,10 @@ bool8 IsBikingDisallowedByPlayer(void) return TRUE; } -bool8 player_should_look_direction_be_enforced_upon_movement(void) +bool8 IsPlayerNotUsingAcroBikeOnBumpySlope(void) { - if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE) != FALSE && MetatileBehavior_IsBumpySlope(gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior) != FALSE) + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE) + && MetatileBehavior_IsBumpySlope(gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior)) return FALSE; else return TRUE; @@ -1055,7 +1053,7 @@ void Bike_HandleBumpySlopeJump(void) bool32 IsRunningDisallowed(u8 metatile) { - if (!(gMapHeader.flags & MAP_ALLOW_RUNNING) || IsRunningDisallowedByMetatile(metatile) == TRUE) + if (!gMapHeader.allowRunning || IsRunningDisallowedByMetatile(metatile) == TRUE) return TRUE; else return FALSE; diff --git a/src/cable_car.c b/src/cable_car.c index acd0bc7a5d..32d4325352 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -246,7 +246,7 @@ void CableCar(void) { ScriptContext2_Enable(); CreateTask(Task_LoadCableCar, 1); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0)); } static void CB2_LoadCableCar(void) @@ -350,7 +350,7 @@ static void CB2_LoadCableCar(void) gMain.state++; break; case 8: - BeginNormalPaletteFade(0xFFFFFFFF, 3, 16, 0, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 3, 16, 0, RGB(0, 0, 0)); FadeInNewBGM(MUS_CABLE_CAR, 1); SetBgRegs(TRUE); gMain.state++; @@ -468,7 +468,7 @@ static void Task_CableCar(u8 taskId) if (sCableCar->timer == 570) { sCableCar->state = 3; - BeginNormalPaletteFade(0xFFFFFFFF, 3, 0, 16, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 3, 0, 16, RGB(0, 0, 0)); FadeOutBGM(4); } break; @@ -596,13 +596,13 @@ static void SpriteCB_CableCar(struct Sprite *sprite) { if (!GOING_DOWN) { - sprite->pos1.x = sprite->sXPos - (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); - sprite->pos1.y = sprite->sYPos - (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->x = sprite->sXPos - (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->y = sprite->sYPos - (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); } else { - sprite->pos1.x = sprite->sXPos + (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); - sprite->pos1.y = sprite->sYPos + (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->x = sprite->sXPos + (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->y = sprite->sYPos + (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); } } } @@ -617,20 +617,20 @@ static void SpriteCB_Player(struct Sprite *sprite) // Move along with cable car if (!GOING_DOWN) { - sprite->pos1.x = sprite->sXPos - (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); - sprite->pos1.y = sprite->sYPos - (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->x = sprite->sXPos - (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->y = sprite->sYPos - (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); } else { - sprite->pos1.x = sprite->sXPos + (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); - sprite->pos1.y = sprite->sYPos + (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->x = sprite->sXPos + (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->y = sprite->sYPos + (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); } // Bounce up and down switch (sprite->sState) { case 0: - sprite->pos2.y = 17; + sprite->y2 = 17; if (sprite->sTimer++ > 9) { sprite->sTimer = 0; @@ -638,7 +638,7 @@ static void SpriteCB_Player(struct Sprite *sprite) } break; default: - sprite->pos2.y = 16; + sprite->y2 = 16; if (sprite->sTimer++ > 9) { sprite->sTimer = 0; @@ -660,8 +660,8 @@ static void SpriteCB_HikerGoingUp(struct Sprite *sprite) { if (sprite->sTimer == 0) { - sprite->pos1.x += 2 * sprite->centerToCornerVecX; - sprite->pos1.y += 16 + sprite->centerToCornerVecY; + sprite->x += 2 * sprite->centerToCornerVecX; + sprite->y += 16 + sprite->centerToCornerVecY; } if (++sprite->sTimer >= sprite->sDelay) @@ -669,22 +669,22 @@ static void SpriteCB_HikerGoingUp(struct Sprite *sprite) switch (sprite->sSameDir) { case FALSE: - sprite->pos1.x++; + sprite->x++; if ((sprite->sTimer % 4) == 0) - sprite->pos1.y++; + sprite->y++; break; case TRUE: // Hiker moves slower if travelling with the Cable Car if ((sprite->sTimer % 2) != 0) { - sprite->pos1.x++; - if ((sprite->pos1.x % 4) == 0) - sprite->pos1.y++; + sprite->x++; + if ((sprite->x % 4) == 0) + sprite->y++; } break; } - if (sprite->pos1.y > 160) + if (sprite->y > DISPLAY_HEIGHT) DestroySprite(sprite); } } @@ -692,29 +692,29 @@ static void SpriteCB_HikerGoingUp(struct Sprite *sprite) static void SpriteCB_HikerGoingDown(struct Sprite *sprite) { if (sprite->sTimer == 0) - sprite->pos1.y += 16 + sprite->centerToCornerVecY; + sprite->y += 16 + sprite->centerToCornerVecY; if (++sprite->sTimer >= sprite->sDelay) { switch (sprite->sSameDir) { case FALSE: - sprite->pos1.x--; + sprite->x--; if ((sprite->sTimer % 4) == 0) - sprite->pos1.y--; + sprite->y--; break; case TRUE: // Hiker moves slower if travelling with the Cable Car if ((sprite->sTimer % 2) != 0) { - sprite->pos1.x--; - if ((sprite->pos1.x % 4) == 0) - sprite->pos1.y--; + sprite->x--; + if ((sprite->x % 4) == 0) + sprite->y--; } break; } - if (sprite->pos1.y < 80) + if (sprite->y < 80) DestroySprite(sprite); } } @@ -829,20 +829,20 @@ static void CreateCableCarSprites(void) if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 2; - gSprites[spriteId].pos2.x = 8; - gSprites[spriteId].pos2.y = 16; + gSprites[spriteId].x2 = 8; + gSprites[spriteId].y2 = 16; gSprites[spriteId].sXPos = 200; gSprites[spriteId].sYPos = 73; } // Create car sprite spriteId = CreateSprite(&sSpriteTemplate_CableCar[0], 176, 43, 0x67); - gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 32; + gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32; gSprites[spriteId].sXPos = 176; gSprites[spriteId].sYPos = 43; // Create door sprite spriteId = CreateSprite(&sSpriteTemplate_CableCar[1], 200, 99, 0x65); - gSprites[spriteId].pos2.x = 8; - gSprites[spriteId].pos2.y = 4; + gSprites[spriteId].x2 = 8; + gSprites[spriteId].y2 = 4; gSprites[spriteId].sXPos = 200; gSprites[spriteId].sYPos = 99; // Init weather @@ -857,20 +857,20 @@ static void CreateCableCarSprites(void) if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 2; - gSprites[spriteId].pos2.x = 8; - gSprites[spriteId].pos2.y = 16; + gSprites[spriteId].x2 = 8; + gSprites[spriteId].y2 = 16; gSprites[spriteId].sXPos = 128; gSprites[spriteId].sYPos = 39; } // Create car sprite spriteId = CreateSprite(&sSpriteTemplate_CableCar[0], 104, 9, 0x67); - gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 32; + gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32; gSprites[spriteId].sXPos = 104; gSprites[spriteId].sYPos = 9; // Create door sprite spriteId = CreateSprite(&sSpriteTemplate_CableCar[1], 128, 65, 0x65); - gSprites[spriteId].pos2.x = 8; - gSprites[spriteId].pos2.y = 4; + gSprites[spriteId].x2 = 8; + gSprites[spriteId].y2 = 4; gSprites[spriteId].sXPos = 128; gSprites[spriteId].sYPos = 65; // Init weather @@ -882,8 +882,8 @@ static void CreateCableCarSprites(void) for (i = 0; i < 9; i++) { spriteId = CreateSprite(&sSpriteTemplate_Cable, 16 * i + 96, 8 * i - 8, 0x68); - gSprites[spriteId].pos2.x = 8; - gSprites[spriteId].pos2.y = 8; + gSprites[spriteId].x2 = 8; + gSprites[spriteId].y2 = 8; } // 1/64 chance for an NPC to appear hiking on the ground below the Cable Car @@ -894,8 +894,8 @@ static void CreateCableCarSprites(void) if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 2; - gSprites[spriteId].pos2.x = -gSprites[spriteId].centerToCornerVecX; - gSprites[spriteId].pos2.y = -gSprites[spriteId].centerToCornerVecY; + gSprites[spriteId].x2 = -gSprites[spriteId].centerToCornerVecX; + gSprites[spriteId].y2 = -gSprites[spriteId].centerToCornerVecY; // Randomly choose which direction the NPC is going if (!GOING_DOWN) @@ -905,7 +905,7 @@ static void CreateCableCarSprites(void) // Do walking west anim StartSpriteAnim(&gSprites[spriteId], 6); gSprites[spriteId].sSameDir = TRUE; - gSprites[spriteId].pos1.y += 2; + gSprites[spriteId].y += 2; } else { @@ -921,7 +921,7 @@ static void CreateCableCarSprites(void) // Do walking east anim StartSpriteAnim(&gSprites[spriteId], 7); gSprites[spriteId].sSameDir = TRUE; - gSprites[spriteId].pos1.y += 2; + gSprites[spriteId].y += 2; } else { diff --git a/src/cable_club.c b/src/cable_club.c index f02683c9d1..abe1d5d4dd 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -82,7 +82,7 @@ static void Task_ReestablishLinkAwaitConfirmation(u8 taskId); static void CreateLinkupTask(u8 minPlayers, u8 maxPlayers) { - if (FindTaskIdByFunc(Task_LinkupStart) == 0xFF) + if (FindTaskIdByFunc(Task_LinkupStart) == TASK_NONE) { u8 taskId1; @@ -128,8 +128,6 @@ static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 numPlayers) static u32 ExchangeDataAndGetLinkupStatus(u8 minPlayers, u8 maxPlayers) { - int playerCount; - switch (GetLinkPlayerDataExchangeStatusTimed(minPlayers, maxPlayers)) { case EXCHANGE_COMPLETE: @@ -511,7 +509,6 @@ static void FinishLinkup(u16 *linkupStatus, u32 taskId) static void Task_LinkupAwaitTrainerCardData(u8 taskId) { u8 index; - struct TrainerCard *trainerCards; if (CheckLinkErrored(taskId) == TRUE) return; @@ -630,7 +627,7 @@ void ValidateMixingGameLanguage(void) { u32 taskId = FindTaskIdByFunc(Task_ValidateMixingGameLanguage); - if (taskId == 0xFF) + if (taskId == TASK_NONE) { taskId = CreateTask(Task_ValidateMixingGameLanguage, 80); gTasks[taskId].tState = 0; @@ -907,7 +904,7 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) { struct LinkPlayer *player = (struct LinkPlayer *)gBlockRecvBuffer[i]; gLinkPlayers[i] = *player; - sub_800B524(&gLinkPlayers[i]); + ConvertLinkPlayerName(&gLinkPlayers[i]); ResetBlockReceivedFlag(i); } tState = 4; @@ -993,7 +990,7 @@ static void CB2_ReturnFromUnionRoomBattle(void) void CB2_ReturnFromCableClubBattle(void) { - gBattleTypeFlags &= ~BATTLE_TYPE_20; + gBattleTypeFlags &= ~BATTLE_TYPE_LINK_IN_BATTLE; Overworld_ResetMapMusic(); LoadPlayerParty(); SavePlayerBag(); @@ -1056,29 +1053,31 @@ static void Task_EnterCableClubSeat(u8 taskId) case 1: if (IsFieldMessageBoxHidden()) { - sub_8087288(); + SetInCableClubSeat(); SetLocalLinkPlayerId(gSpecialVar_0x8005); task->tState = 2; } break; case 2: - switch (sub_8087214()) + switch (GetCableClubPartnersReady()) { - case 0: + case CABLE_SEAT_WAITING: break; - case 1: + case CABLE_SEAT_SUCCESS: + // Partners linked and ready, switch to relevant link function HideFieldMessageBox(); task->tState = 0; - sub_80872C4(); + SetStartedCableClubActivity(); SwitchTaskToFollowupFunc(taskId); break; - case 2: + case CABLE_SEAT_FAILED: task->tState = 3; break; } break; case 3: - sub_808729C(); + // Exit, failure + SetLinkWaitingForScript(); sub_8197AE8(TRUE); DestroyTask(taskId); EnableBothScriptContexts(); @@ -1270,7 +1269,8 @@ static void sub_80B3AD0(u8 taskId) #define tTimer data[1] -void sub_80B3AF8(u8 taskId) +// Confirm that all cabled link players are connected +void Task_ReconnectWithLinkPlayers(u8 taskId) { s16 *data = gTasks[taskId].data; diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index b91506352d..0d69eb0fa9 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -163,7 +163,7 @@ static bool8 SetupClearSaveDataScreen(void) ShowBg(3); SetGpuReg(REG_OFFSET_BLDCNT, 0); InitClearSaveDataScreenWindows(); - BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_BG, 0, 0x10, 0, RGB_WHITEALPHA); EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(VBlankCB); gMain.state = 1; @@ -185,7 +185,7 @@ static void CB2_FadeAndDoReset(void) { case 0: default: - BeginNormalPaletteFade(0x0000FFFF, 0, 0, 0x10, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_BG, 0, 0, 0x10, RGB_WHITEALPHA); gMain.state = 1; break; case 1: diff --git a/src/confetti_util.c b/src/confetti_util.c index 3bda3ab539..bcf19f705c 100644 --- a/src/confetti_util.c +++ b/src/confetti_util.c @@ -210,8 +210,8 @@ u8 ConfettiUtil_Remove(u8 id) return 0xFF; memset(&sWork->array[id], 0, sizeof(struct ConfettiUtil)); - sWork->array[id].oam.y = 160; - sWork->array[id].oam.x = 240; + sWork->array[id].oam.y = DISPLAY_HEIGHT; + sWork->array[id].oam.x = DISPLAY_WIDTH; sWork->array[id].dummied = TRUE; memcpy(&gMain.oamBuffer[id + 64], &gDummyOamData, sizeof(struct OamData)); return id; diff --git a/src/contest.c b/src/contest.c index 40a0eac66b..46fa0efedb 100644 --- a/src/contest.c +++ b/src/contest.c @@ -42,7 +42,6 @@ #include "constants/moves.h" #include "constants/rgb.h" #include "constants/songs.h" -#include "constants/tv.h" // This file's functions. static void LoadContestPalettes(void); @@ -259,6 +258,11 @@ enum { #define TAG_BLINK_EFFECT_CONTESTANT2 0x80EA #define TAG_BLINK_EFFECT_CONTESTANT3 0x80EB +#define TILE_FILLED_APPEAL_HEART 0x5012 +#define TILE_FILLED_JAM_HEART 0x5014 +#define TILE_EMPTY_APPEAL_HEART 0x5035 +#define TILE_EMPTY_JAM_HEART 0x5036 + enum { SLIDER_HEART_ANIM_NORMAL, SLIDER_HEART_ANIM_DISAPPEAR, @@ -350,8 +354,8 @@ EWRAM_DATA u8 gHighestRibbonRank = 0; EWRAM_DATA struct ContestResources *gContestResources = NULL; EWRAM_DATA u8 sContestBgCopyFlags = 0; EWRAM_DATA struct ContestWinner gCurContestWinner = {0}; -EWRAM_DATA bool8 gUnknown_02039F5C = 0; -EWRAM_DATA u8 gUnknown_02039F5D = 0; +EWRAM_DATA bool8 gCurContestWinnerIsForArtist = 0; +EWRAM_DATA u8 gCurContestWinnerSaveIdx = 0; // IWRAM common vars. u32 gContestRngValue; @@ -1034,7 +1038,7 @@ void LoadContestBgAfterMoveAnim(void) { u32 contestantWindowId = 5 + i; - LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId], 16 * (5 + gContestantTurnOrder[i]), sizeof((eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId]))); + LoadPalette(eContestTempSave.cachedWindowPalettes[contestantWindowId], 16 * (5 + gContestantTurnOrder[i]), sizeof((eContestTempSave.cachedWindowPalettes[contestantWindowId]))); } } @@ -1320,7 +1324,7 @@ static bool8 SetupContestGraphics(u8 *stateVar) CopyToBgTilemapBuffer(2, gUnknown_08C17170, 0, 0); CopyBgTilemapBufferToVram(2); // This is a bug, and copies random junk. savedJunk is never read. - DmaCopy32Defvars(3, gContestResources->contestBgTilemaps[2], eUnknownHeap1A004.savedJunk, sizeof(eUnknownHeap1A004.savedJunk)); + DmaCopy32Defvars(3, gContestResources->contestBgTilemaps[2], eContestTempSave.savedJunk, sizeof(eContestTempSave.savedJunk)); break; case 5: LoadCompressedPalette(gOldContestPalette, 0, 0x200); @@ -1328,7 +1332,7 @@ static bool8 SetupContestGraphics(u8 *stateVar) CpuCopy32(gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, tempPalette2, 16 * sizeof(u16)); CpuCopy32(tempPalette2, gPlttBufferUnfaded + 128, 16 * sizeof(u16)); CpuCopy32(tempPalette1, gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, 16 * sizeof(u16)); - DmaCopy32Defvars(3, gPlttBufferUnfaded, eUnknownHeap1A004.cachedWindowPalettes, sizeof(eUnknownHeap1A004.cachedWindowPalettes)); + DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.cachedWindowPalettes, sizeof(eContestTempSave.cachedWindowPalettes)); LoadContestPalettes(); break; case 6: @@ -1393,7 +1397,7 @@ static void Task_RaiseCurtainAtStart(u8 taskId) break; case 1: *(s16*)&gBattle_BG1_Y += 7; - if ((s16)gBattle_BG1_Y <= 160) + if ((s16)gBattle_BG1_Y <= DISPLAY_HEIGHT) break; gTasks[taskId].data[0]++; break; @@ -1468,7 +1472,7 @@ static void Task_DisplayAppealNumberText(u8 taskId) gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; ContestDebugDoPrint(); - DmaCopy32Defvars(3, gPlttBufferUnfaded, eUnknownHeap1A004.unk18204, PLTT_BUFFER_SIZE * 2); + DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.cachedPlttBufferUnfaded, PLTT_BUFFER_SIZE * 2); ConvertIntToDecimalStringN(gStringVar1, eContest.appealNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_AppealNumWhichMoveWillBePlayed); @@ -1513,8 +1517,8 @@ static void Task_ShowMoveSelectScreen(u8 taskId) u8 i; u8 moveName[32]; - gBattle_BG0_Y = 160; - gBattle_BG2_Y = 160; + gBattle_BG0_Y = DISPLAY_HEIGHT; + gBattle_BG2_Y = DISPLAY_HEIGHT; for (i = 0; i < MAX_MON_MOVES; i++) { @@ -1527,7 +1531,7 @@ static void Task_ShowMoveSelectScreen(u8 taskId) && eContestantStatus[gContestPlayerMonIndex].hasJudgesAttention) { // Highlight the text because it's a combo move - moveNameBuffer = StringCopy(moveName, gText_ColorLightShadowDarkGrey); + moveNameBuffer = StringCopy(moveName, gText_ColorLightShadowDarkGray); } else if (move != MOVE_NONE && eContestantStatus[gContestPlayerMonIndex].prevMove == move @@ -1667,8 +1671,8 @@ static void Task_HideMoveSelectScreen(u8 taskId) } Contest_SetBgCopyFlags(0); // This seems to be a bug; it should have just copied PLTT_BUFFER_SIZE. - DmaCopy32Defvars(3, gPlttBufferFaded, eUnknownHeap1A004.unk18604, PLTT_BUFFER_SIZE * 2); - LoadPalette(eUnknownHeap1A004.unk18204, 0, PLTT_BUFFER_SIZE * 2); + DmaCopy32Defvars(3, gPlttBufferFaded, eContestTempSave.cachedPlttBufferFaded, PLTT_BUFFER_SIZE * 2); + LoadPalette(eContestTempSave.cachedPlttBufferUnfaded, 0, PLTT_BUFFER_SIZE * 2); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; gTasks[taskId].func = Task_HideApplauseMeterForAppealStart; @@ -1780,7 +1784,7 @@ static void Task_DoAppeals(u8 taskId) gContestMons[eContest.currentContestant].otId, gContestMons[eContest.currentContestant].personality, eContest.currentContestant); - gSprites[spriteId].pos2.x = 120; + gSprites[spriteId].x2 = 120; gSprites[spriteId].callback = SpriteCB_MonSlideIn; gTasks[taskId].tMonSpriteId = spriteId; gBattlerSpriteIds[gBattlerAttacker] = spriteId; @@ -2445,9 +2449,9 @@ static void Task_EndWaitForLink(u8 taskId) static void SpriteCB_MonSlideIn(struct Sprite *sprite) { - if (sprite->pos2.x != 0) + if (sprite->x2 != 0) { - sprite->pos2.x -= 2; + sprite->x2 -= 2; } else { @@ -2461,8 +2465,8 @@ static void SpriteCB_MonSlideIn(struct Sprite *sprite) static void SpriteCB_MonSlideOut(struct Sprite *sprite) { - sprite->pos2.x -= 6; - if (sprite->pos1.x + sprite->pos2.x < -32) + sprite->x2 -= 6; + if (sprite->x + sprite->x2 < -32) { sprite->callback = SpriteCallbackDummy; sprite->invisible = TRUE; @@ -2554,7 +2558,7 @@ static void Task_WaitForHeartSliders(u8 taskId) static void sub_80DA348(u8 taskId) { - DmaCopy32Defvars(3, eUnknownHeap1A004.unk18204, gPlttBufferUnfaded, PLTT_BUFFER_SIZE * 2); + DmaCopy32Defvars(3, eContestTempSave.cachedPlttBufferUnfaded, gPlttBufferUnfaded, PLTT_BUFFER_SIZE * 2); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 2; gTasks[taskId].func = Task_WaitPrintRoundResult; @@ -2681,7 +2685,7 @@ static void Task_WaitForOutOfTimeMsg(u8 taskId) { SetBgForCurtainDrop(); gBattle_BG1_X = 0; - gBattle_BG1_Y = 160; + gBattle_BG1_Y = DISPLAY_HEIGHT; PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].func = Task_DropCurtainAtAppealsEnd; @@ -2711,7 +2715,7 @@ static void Task_TryCommunicateFinalStandings(u8 taskId) } else { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_ContestReturnToField; } } @@ -2730,7 +2734,7 @@ static void Task_CommunicateFinalStandings(u8 taskId) static void Task_EndCommunicateFinalStandings(u8 taskId) { DestroyTask(taskId); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[eContest.mainTaskId].func = Task_ContestReturnToField; } @@ -3133,10 +3137,10 @@ static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 ind gSprites[spriteId].data[0] = gSprites[spriteId].oam.paletteNum; gSprites[spriteId].data[2] = species; if (IsSpeciesNotUnown(species)) - gSprites[spriteId].affineAnims = gUnknown_082FF6C0; + gSprites[spriteId].affineAnims = gAffineAnims_BattleSpriteContest; else - gSprites[spriteId].affineAnims = gUnknown_082FF694; - StartSpriteAffineAnim(gSprites + spriteId, 0); + gSprites[spriteId].affineAnims = gAffineAnims_BattleSpriteOpponentSide; + StartSpriteAffineAnim(&gSprites[spriteId], BATTLER_AFFINE_NORMAL); return spriteId; } @@ -3204,27 +3208,25 @@ static void PrintContestMoveDescription(u16 a) ContestBG_FillBoxWithIncrementingTile(0, categoryTile, 0x0b, 0x1f, 0x05, 0x01, 0x11, 0x01); ContestBG_FillBoxWithIncrementingTile(0, categoryTile + 0x10, 0x0b, 0x20, 0x05, 0x01, 0x11, 0x01); + // Appeal hearts if (gContestEffects[gContestMoves[a].effect].appeal == 0xFF) numHearts = 0; else numHearts = gContestEffects[gContestMoves[a].effect].appeal / 10; - if (numHearts > 8) - numHearts = 8; - // Filled-in hearts - ContestBG_FillBoxWithTile(0, 0x5035, 0x15, 0x1f, 0x08, 0x01, 0x11); - // Empty hearts - ContestBG_FillBoxWithTile(0, 0x5012, 0x15, 0x1f, numHearts, 0x01, 0x11); + if (numHearts > MAX_CONTEST_MOVE_HEARTS) + numHearts = MAX_CONTEST_MOVE_HEARTS; + ContestBG_FillBoxWithTile(0, TILE_EMPTY_APPEAL_HEART, 0x15, 0x1f, MAX_CONTEST_MOVE_HEARTS, 0x01, 0x11); + ContestBG_FillBoxWithTile(0, TILE_FILLED_APPEAL_HEART, 0x15, 0x1f, numHearts, 0x01, 0x11); + // Jam hearts if (gContestEffects[gContestMoves[a].effect].jam == 0xFF) numHearts = 0; else numHearts = gContestEffects[gContestMoves[a].effect].jam / 10; - if (numHearts > 8) - numHearts = 8; - // Filled-in hearts - ContestBG_FillBoxWithTile(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11); - // Empty hearts - ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); + if (numHearts > MAX_CONTEST_MOVE_HEARTS) + numHearts = MAX_CONTEST_MOVE_HEARTS; + ContestBG_FillBoxWithTile(0, TILE_EMPTY_JAM_HEART, 0x15, 0x20, MAX_CONTEST_MOVE_HEARTS, 0x01, 0x11); + ContestBG_FillBoxWithTile(0, TILE_FILLED_JAM_HEART, 0x15, 0x20, numHearts, 0x01, 0x11); FillWindowPixelBuffer(WIN_MOVE_DESCRIPTION, PIXEL_FILL(0)); Contest_PrintTextToBg0WindowStd(WIN_MOVE_DESCRIPTION, gContestEffectDescriptionPointers[gContestMoves[a].effect]); @@ -3862,7 +3864,7 @@ static void UpdateHeartSlider(u8 contestant) gSprites[spriteId].invisible = FALSE; gSprites[spriteId].sContestant = contestant; gSprites[spriteId].sTargetX = slideTarget; - if (gSprites[spriteId].sTargetX > gSprites[spriteId].pos2.x) + if (gSprites[spriteId].sTargetX > gSprites[spriteId].x2) gSprites[spriteId].sMoveX = 1; else gSprites[spriteId].sMoveX = -1; @@ -3894,14 +3896,14 @@ static bool8 SlidersDoneUpdating(void) static void SpriteCB_UpdateHeartSlider(struct Sprite *sprite) { - if (sprite->pos2.x == sprite->sTargetX) + if (sprite->x2 == sprite->sTargetX) { eContestGfxState[sprite->sContestant].sliderUpdating = FALSE; sprite->callback = SpriteCallbackDummy; } else { - sprite->pos2.x += sprite->sMoveX; + sprite->x2 += sprite->sMoveX; } } @@ -3915,7 +3917,7 @@ static void UpdateSliderHeartSpriteYPositions(void) s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.y = sSliderHeartYPositions[gContestantTurnOrder[i]]; + gSprites[eContestGfxState[i].sliderHeartSpriteId].y = sSliderHeartYPositions[gContestantTurnOrder[i]]; } // Used to hide (or subsequently reshow) the bottom two slider hearts that get hidden by text windows by moving them offscreen @@ -3929,9 +3931,9 @@ static void SetBottomSliderHeartsInvisibility(bool8 invisible) if (gContestantTurnOrder[i] > 1) { if (!invisible) - gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.x = 180; + gSprites[eContestGfxState[i].sliderHeartSpriteId].x = 180; else - gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.x = 256; + gSprites[eContestGfxState[i].sliderHeartSpriteId].x = 256; } } } @@ -4412,7 +4414,7 @@ static void DrawContestantWindows(void) for (i = 0; i < CONTESTANT_COUNT; i++) { s32 windowId = i + 5; - LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[windowId], (gContestantTurnOrder[i] + 5) * 16, sizeof(eUnknownHeap1A004.cachedWindowPalettes[0])); + LoadPalette(eContestTempSave.cachedWindowPalettes[windowId], (gContestantTurnOrder[i] + 5) * 16, sizeof(eContestTempSave.cachedWindowPalettes[0])); } DrawContestantWindowText(); } @@ -4422,7 +4424,6 @@ static void CalculateAppealMoveImpact(u8 contestant) u16 move; u8 effect; u8 rnd; - bool8 canUseTurn; s32 i; eContestantStatus[contestant].appeal = 0; @@ -4788,7 +4789,7 @@ static void Task_ApplauseOverflowAnimation(u8 taskId) static void SlideApplauseMeterIn(void) { CreateTask(Task_SlideApplauseMeterIn, 10); - gSprites[eContest.applauseMeterSpriteId].pos2.x = -70; + gSprites[eContest.applauseMeterSpriteId].x2 = -70; gSprites[eContest.applauseMeterSpriteId].invisible = FALSE; eContest.applauseMeterIsMoving = TRUE; } @@ -4798,11 +4799,11 @@ static void Task_SlideApplauseMeterIn(u8 taskId) struct Sprite *sprite = &gSprites[eContest.applauseMeterSpriteId]; gTasks[taskId].data[10] += 1664; - sprite->pos2.x += gTasks[taskId].data[10] >> 8; + sprite->x2 += gTasks[taskId].data[10] >> 8; gTasks[taskId].data[10] = gTasks[taskId].data[10] & 0xFF; - if (sprite->pos2.x > 0) - sprite->pos2.x = 0; - if (sprite->pos2.x == 0) + if (sprite->x2 > 0) + sprite->x2 = 0; + if (sprite->x2 == 0) { eContest.applauseMeterIsMoving = FALSE; DestroyTask(taskId); @@ -4818,7 +4819,7 @@ static void SlideApplauseMeterOut(void) else { CreateTask(Task_SlideApplauseMeterOut, 10); - gSprites[eContest.applauseMeterSpriteId].pos2.x = 0; + gSprites[eContest.applauseMeterSpriteId].x2 = 0; eContest.applauseMeterIsMoving = TRUE; } } @@ -4828,11 +4829,11 @@ static void Task_SlideApplauseMeterOut(u8 taskId) struct Sprite *sprite = &gSprites[eContest.applauseMeterSpriteId]; gTasks[taskId].data[10] += 1664; - sprite->pos2.x -= gTasks[taskId].data[10] >> 8; + sprite->x2 -= gTasks[taskId].data[10] >> 8; gTasks[taskId].data[10] = gTasks[taskId].data[10] & 0xFF; - if (sprite->pos2.x < -70) - sprite->pos2.x = -70; - if (sprite->pos2.x == -70) + if (sprite->x2 < -70) + sprite->x2 = -70; + if (sprite->x2 == -70) { sprite->invisible = TRUE; eContest.applauseMeterIsMoving = FALSE; @@ -4877,7 +4878,7 @@ static void Task_ShowAndUpdateApplauseMeter(u8 taskId) // Unused. static void HideApplauseMeterNoAnim(void) { - gSprites[eContest.applauseMeterSpriteId].pos2.x = 0; + gSprites[eContest.applauseMeterSpriteId].x2 = 0; gSprites[eContest.applauseMeterSpriteId].invisible = FALSE; } @@ -5016,7 +5017,7 @@ static void ShowHideNextTurnGfx(bool8 show) if (eContestantStatus[i].turnOrderMod != 0 && show) { CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(OBJ_VRAM0 + (gSprites[eContestGfxState[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32); - gSprites[eContestGfxState[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]]; + gSprites[eContestGfxState[i].nextTurnSpriteId].y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]]; gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = FALSE; } else @@ -5378,10 +5379,10 @@ static void SetBattleTargetSpritePosition(void) { struct Sprite *sprite = &gSprites[gBattlerSpriteIds[B_POSITION_OPPONENT_RIGHT]]; - sprite->pos2.x = 0; - sprite->pos2.y = 0; - sprite->pos1.x = GetBattlerSpriteCoord(B_POSITION_OPPONENT_RIGHT, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord(B_POSITION_OPPONENT_RIGHT, BATTLER_COORD_Y); + sprite->x2 = 0; + sprite->y2 = 0; + sprite->x = GetBattlerSpriteCoord(B_POSITION_OPPONENT_RIGHT, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(B_POSITION_OPPONENT_RIGHT, BATTLER_COORD_Y); sprite->invisible = TRUE; } @@ -5517,40 +5518,46 @@ void ResetContestLinkResults(void) gSaveBlock2Ptr->contestLinkResults[i][j] = 0; } -bool8 sub_80DEDA8(u8 rank) +bool8 SaveContestWinner(u8 rank) { s32 i; - u8 r7 = Random() % 3; + u8 captionId = Random() % NUM_PAINTING_CAPTIONS; + // Get the index of the winner among the contestants for (i = 0; i < CONTESTANT_COUNT - 1; i++) - { if (gContestFinalStandings[i] == 0) break; - } - if (rank == 0xFF && i != gContestPlayerMonIndex) + + // Exit if attempting to save a Pokémon other than the player's to the museum + if (rank == CONTEST_SAVE_FOR_MUSEUM && i != gContestPlayerMonIndex) return FALSE; + + // Adjust the random painting caption depending on the category switch (gSpecialVar_ContestCategory) { case CONTEST_CATEGORY_COOL: - r7 += 0; + captionId += NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_COOL; break; case CONTEST_CATEGORY_BEAUTY: - r7 += 3; + captionId += NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_BEAUTY; break; case CONTEST_CATEGORY_CUTE: - r7 += 6; + captionId += NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_CUTE; break; case CONTEST_CATEGORY_SMART: - r7 += 9; + captionId += NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_SMART; break; case CONTEST_CATEGORY_TOUGH: - r7 += 12; + captionId += NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_TOUGH; break; } - if (rank != 0xFE) - { - u8 id = sub_80DEFA8(rank, 1); + if (rank != CONTEST_SAVE_FOR_ARTIST) + { + // Save winner in the saveblock + // Used to save any winner for the Contest Hall or the Museum + // but excludes the temporary save used by the artist + u8 id = GetContestWinnerSaveIdx(rank, TRUE); gSaveBlock1Ptr->contestWinners[id].personality = gContestMons[i].personality; gSaveBlock1Ptr->contestWinners[id].species = gContestMons[i].species; gSaveBlock1Ptr->contestWinners[id].trainerId = gContestMons[i].otId; @@ -5561,24 +5568,29 @@ bool8 sub_80DEDA8(u8 rank) else gSaveBlock1Ptr->contestWinners[id].contestRank = gSpecialVar_ContestRank; - if (rank != 0xFF) + if (rank != CONTEST_SAVE_FOR_MUSEUM) gSaveBlock1Ptr->contestWinners[id].contestCategory = gSpecialVar_ContestCategory; else - gSaveBlock1Ptr->contestWinners[id].contestCategory = r7; + gSaveBlock1Ptr->contestWinners[id].contestCategory = captionId; } else { + // Set the most recent winner so the artist can show the player their painting gCurContestWinner.personality = gContestMons[i].personality; gCurContestWinner.trainerId = gContestMons[i].otId; gCurContestWinner.species = gContestMons[i].species; StringCopy(gCurContestWinner.monName, gContestMons[i].nickname); StringCopy(gCurContestWinner.trainerName, gContestMons[i].trainerName); - gCurContestWinner.contestCategory = r7; + gCurContestWinner.contestCategory = captionId; } return TRUE; } -u8 sub_80DEFA8(u8 rank, u8 b) +// Rank is either a regular contest rank (for saving winners to show in the Contest Hall) +// Or one of two special IDs listed below (for saving winners to show in Museum, or from the artist) +// If just retrieving the index where the winner *would* go, shift is FALSE +// If actually preparing to insert the winner into the saveblock, shift is TRUE +u8 GetContestWinnerSaveIdx(u8 rank, bool8 shift) { s32 i; @@ -5588,13 +5600,15 @@ u8 sub_80DEFA8(u8 rank, u8 b) case CONTEST_RANK_SUPER: case CONTEST_RANK_HYPER: case CONTEST_RANK_MASTER: - if (b != 0) + if (shift) { - for (i = NUM_CONTEST_HALL_WINNERS - 1; i >= 1; i--) + for (i = NUM_CONTEST_HALL_WINNERS - 1; i > 0; i--) memcpy(&gSaveBlock1Ptr->contestWinners[i], &gSaveBlock1Ptr->contestWinners[i - 1], sizeof(struct ContestWinner)); } - return 0; + return CONTEST_WINNER_HALL_1 - 1; default: +// case CONTEST_SAVE_FOR_MUSEUM: +// case CONTEST_SAVE_FOR_ARTIST: switch (gSpecialVar_ContestCategory) { case CONTEST_CATEGORY_COOL: @@ -5616,7 +5630,7 @@ void ClearContestWinnerPicsInContestHall(void) { s32 i; - for (i = 0; i < 8; i++) + for (i = 0; i < MUSEUM_CONTEST_WINNERS_START; i++) gSaveBlock1Ptr->contestWinners[i] = gDefaultContestWinners[i]; } @@ -5999,7 +6013,7 @@ static u8 GetMonNicknameLanguage(u8 *nickname) u8 ret = GAME_LANGUAGE; if (nickname[0] == EXT_CTRL_CODE_BEGIN && nickname[1] == EXT_CTRL_CODE_JPN) - return LANGUAGE_ENGLISH; + return GAME_LANGUAGE; if (StringLength(nickname) < PLAYER_NAME_LENGTH - 1) { diff --git a/src/contest_painting.c b/src/contest_painting.c index 1602eb94f1..d4bc8ca04e 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -21,18 +21,16 @@ #include "window.h" #include "constants/rgb.h" -// IWRAM common u16 (*gContestMonPixels)[][32]; struct ImageProcessingContext gImageProcessingContext; struct ContestWinner *gContestPaintingWinner; u16 *gContestPaintingMonPalette; -// IWRAM bss -static u8 gContestPaintingState; -static u16 gContestPaintingMosaicVal; -static u16 gContestPaintingFadeCounter; -static bool8 gUnknown_030011F6; -static u8 gContestPaintingWindowId; +static u8 sHoldState; +static u16 sMosaicVal; +static u16 sFadeCounter; +static bool8 sVarsInitialized; +static u8 sWindowId; static void ShowContestPainting(void); static void HoldContestPainting(void); @@ -44,7 +42,7 @@ static void PrintContestPaintingCaption(u8, u8); static void VBlankCB_ContestPainting(void); static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]); -extern const u8 gUnknown_0827EA0C[]; +extern const u8 gContestHallPaintingCaption[]; extern const u8 gContestCoolness[]; extern const u8 gContestBeauty[]; extern const u8 gContestCuteness[]; @@ -71,39 +69,39 @@ extern const u8 gContestPaintingTough1[]; extern const u8 gContestPaintingTough2[]; extern const u8 gContestPaintingTough3[]; -const u16 gPictureFramePalettes[] = INCBIN_U16("graphics/picture_frame/bg.gbapal"); -const u8 gPictureFrameTiles_0[] = INCBIN_U8("graphics/picture_frame/frame0.4bpp.rl"); -const u8 gPictureFrameTiles_1[] = INCBIN_U8("graphics/picture_frame/frame1.4bpp.rl"); -const u8 gPictureFrameTiles_2[] = INCBIN_U8("graphics/picture_frame/frame2.4bpp.rl"); -const u8 gPictureFrameTiles_3[] = INCBIN_U8("graphics/picture_frame/frame3.4bpp.rl"); -const u8 gPictureFrameTiles_4[] = INCBIN_U8("graphics/picture_frame/frame4.4bpp.rl"); -const u8 gPictureFrameTiles_5[] = INCBIN_U8("graphics/picture_frame/frame5.4bpp.rl"); -const u8 gPictureFrameTilemap_0[] = INCBIN_U8("graphics/picture_frame/frame0_map.bin.rl"); -const u8 gPictureFrameTilemap_1[] = INCBIN_U8("graphics/picture_frame/frame1_map.bin.rl"); -const u8 gPictureFrameTilemap_2[] = INCBIN_U8("graphics/picture_frame/frame2_map.bin.rl"); -const u8 gPictureFrameTilemap_3[] = INCBIN_U8("graphics/picture_frame/frame3_map.bin.rl"); -const u8 gPictureFrameTilemap_4[] = INCBIN_U8("graphics/picture_frame/frame4_map.bin.rl"); -const u8 gPictureFrameTilemap_5[] = INCBIN_U8("graphics/picture_frame/frame5_map.bin.rl"); +static const u16 sPictureFramePalettes[] = INCBIN_U16("graphics/picture_frame/bg.gbapal"); +static const u8 sPictureFrameTiles_Cool[] = INCBIN_U8("graphics/picture_frame/cool.4bpp.rl"); +static const u8 sPictureFrameTiles_Beauty[] = INCBIN_U8("graphics/picture_frame/beauty.4bpp.rl"); +static const u8 sPictureFrameTiles_Cute[] = INCBIN_U8("graphics/picture_frame/cute.4bpp.rl"); +static const u8 sPictureFrameTiles_Smart[] = INCBIN_U8("graphics/picture_frame/smart.4bpp.rl"); +static const u8 sPictureFrameTiles_Tough[] = INCBIN_U8("graphics/picture_frame/tough.4bpp.rl"); +static const u8 sPictureFrameTiles_HallLobby[] = INCBIN_U8("graphics/picture_frame/lobby.4bpp.rl"); +static const u8 sPictureFrameTilemap_Cool[] = INCBIN_U8("graphics/picture_frame/cool_map.bin.rl"); +static const u8 sPictureFrameTilemap_Beauty[] = INCBIN_U8("graphics/picture_frame/beauty_map.bin.rl"); +static const u8 sPictureFrameTilemap_Cute[] = INCBIN_U8("graphics/picture_frame/cute_map.bin.rl"); +static const u8 sPictureFrameTilemap_Smart[] = INCBIN_U8("graphics/picture_frame/smart_map.bin.rl"); +static const u8 sPictureFrameTilemap_Tough[] = INCBIN_U8("graphics/picture_frame/tough_map.bin.rl"); +static const u8 sPictureFrameTilemap_HallLobby[] = INCBIN_U8("graphics/picture_frame/lobby_map.bin.rl"); static const u8 *const sContestCategoryNames_Unused[] = { - gContestCoolness, - gContestBeauty, - gContestCuteness, - gContestSmartness, - gContestToughness, + [CONTEST_CATEGORY_COOL] = gContestCoolness, + [CONTEST_CATEGORY_BEAUTY] = gContestBeauty, + [CONTEST_CATEGORY_CUTE] = gContestCuteness, + [CONTEST_CATEGORY_SMART] = gContestSmartness, + [CONTEST_CATEGORY_TOUGH] = gContestToughness, }; static const u8 *const sContestRankNames[] = { - gContestRankNormal, - gContestRankSuper, - gContestRankHyper, - gContestRankMaster, - gContestLink, + [CONTEST_RANK_NORMAL] = gContestRankNormal, + [CONTEST_RANK_SUPER] = gContestRankSuper, + [CONTEST_RANK_HYPER] = gContestRankHyper, + [CONTEST_RANK_MASTER] = gContestRankMaster, + [CONTEST_RANK_LINK] = gContestLink, }; -static const struct BgTemplate sContestPaintingBgTemplates[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 1, @@ -116,7 +114,7 @@ static const struct BgTemplate sContestPaintingBgTemplates[] = }, }; -static const struct WindowTemplate sContestPaintingWindowTemplate = +static const struct WindowTemplate sWindowTemplate = { .bg = 1, .tilemapLeft = 2, @@ -127,23 +125,23 @@ static const struct WindowTemplate sContestPaintingWindowTemplate = .baseBlock = 1, }; -static const u8 *const sContestPaintingDescriptionPointers[] = +static const u8 *const sMuseumCaptions[NUM_PAINTING_CAPTIONS * CONTEST_CATEGORIES_COUNT] = { - gContestPaintingCool1, - gContestPaintingCool2, - gContestPaintingCool3, - gContestPaintingBeauty1, - gContestPaintingBeauty2, - gContestPaintingBeauty3, - gContestPaintingCute1, - gContestPaintingCute2, - gContestPaintingCute3, - gContestPaintingSmart1, - gContestPaintingSmart2, - gContestPaintingSmart3, - gContestPaintingTough1, - gContestPaintingTough2, - gContestPaintingTough3, + [0 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_COOL] = gContestPaintingCool1, + [1 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_COOL] = gContestPaintingCool2, + [2 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_COOL] = gContestPaintingCool3, + [0 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_BEAUTY] = gContestPaintingBeauty1, + [1 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_BEAUTY] = gContestPaintingBeauty2, + [2 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_BEAUTY] = gContestPaintingBeauty3, + [0 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_CUTE] = gContestPaintingCute1, + [1 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_CUTE] = gContestPaintingCute2, + [2 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_CUTE] = gContestPaintingCute3, + [0 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_SMART] = gContestPaintingSmart1, + [1 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_SMART] = gContestPaintingSmart2, + [2 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_SMART] = gContestPaintingSmart3, + [0 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_TOUGH] = gContestPaintingTough1, + [1 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_TOUGH] = gContestPaintingTough2, + [2 + NUM_PAINTING_CAPTIONS * CONTEST_CATEGORY_TOUGH] = gContestPaintingTough3, }; static const struct OamData sContestPaintingMonOamData = @@ -161,16 +159,15 @@ static const struct OamData sContestPaintingMonOamData = .paletteNum = 0, }; -const u16 gUnknown_085B0838[] = {RGB(0, 0, 0), RGB(0, 0, 0)}; +static const u16 sBgPalette[] = {RGB_BLACK, RGB_BLACK}; void SetContestWinnerForPainting(int contestWinnerId) { - // probably fakematching - u8 *ptr1 = &gUnknown_02039F5D; - u8 *ptr2 = &gUnknown_02039F5C; - gCurContestWinner = gSaveBlock1Ptr->contestWinners[contestWinnerId - 1]; - *ptr1 = contestWinnerId - 1; - *ptr2 = FALSE; + u8 *saveIdx = &gCurContestWinnerSaveIdx; + u8 *isForArtist = &gCurContestWinnerIsForArtist; + gCurContestWinner = gSaveBlock1Ptr->contestWinners[contestWinnerId - 1]; + *saveIdx = contestWinnerId - 1; + *isForArtist = FALSE; } void CB2_ContestPainting(void) @@ -190,7 +187,7 @@ static void CB2_QuitContestPainting(void) SetMainCallback2(gMain.savedCallback); FREE_AND_SET_NULL(gContestPaintingMonPalette); FREE_AND_SET_NULL(gContestMonPixels); - RemoveWindow(gContestPaintingWindowId); + RemoveWindow(sWindowId); Free(GetBgTilemapBuffer(1)); FreeMonSpritesGfx(); } @@ -204,13 +201,13 @@ static void ShowContestPainting(void) SetVBlankCallback(NULL); AllocateMonSpritesGfx(); gContestPaintingWinner = &gCurContestWinner; - InitContestPaintingVars(1); + InitContestPaintingVars(TRUE); InitContestPaintingBg(); gMain.state++; break; case 1: ResetPaletteFade(); - DmaFillLarge32(3, 0, (void *)BG_VRAM, 0x18000, 0x1000); + DmaFillLarge32(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); ResetSpriteData(); gMain.state++; break; @@ -221,16 +218,16 @@ static void ShowContestPainting(void) gMain.state++; break; case 3: - CreateContestPaintingPicture(gUnknown_02039F5D, gUnknown_02039F5C); + CreateContestPaintingPicture(gCurContestWinnerSaveIdx, gCurContestWinnerIsForArtist); gMain.state++; break; case 4: - PrintContestPaintingCaption(gUnknown_02039F5D, gUnknown_02039F5C); - LoadPalette(gUnknown_085B0838, 0, 1 * 2); + PrintContestPaintingCaption(gCurContestWinnerSaveIdx, gCurContestWinnerIsForArtist); + LoadPalette(sBgPalette, 0, 1 * 2); DmaClear32(3, PLTT, PLTT_SIZE); BeginFastPaletteFade(2); SetVBlankCallback(VBlankCB_ContestPainting); - gContestPaintingState = 0; + sHoldState = 0; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); SetMainCallback2(CB2_HoldContestPainting); break; @@ -239,29 +236,29 @@ static void ShowContestPainting(void) static void HoldContestPainting(void) { - switch (gContestPaintingState) + switch (sHoldState) { case 0: if (!gPaletteFade.active) - gContestPaintingState = 1; - if (gUnknown_030011F6 && gContestPaintingFadeCounter) - gContestPaintingFadeCounter--; + sHoldState = 1; + if (sVarsInitialized && sFadeCounter) + sFadeCounter--; break; case 1: if ((JOY_NEW(A_BUTTON)) || (JOY_NEW(B_BUTTON))) { - gContestPaintingState++; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + sHoldState++; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0)); } - if (gUnknown_030011F6) - gContestPaintingFadeCounter = 0; + if (sVarsInitialized) + sFadeCounter = 0; break; case 2: if (!gPaletteFade.active) SetMainCallback2(CB2_QuitContestPainting); - if (gUnknown_030011F6 && gContestPaintingFadeCounter < 30) - gContestPaintingFadeCounter++; + if (sVarsInitialized && sFadeCounter < 30) + sFadeCounter++; break; } } @@ -269,45 +266,48 @@ static void HoldContestPainting(void) static void InitContestPaintingWindow(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sContestPaintingBgTemplates, ARRAY_COUNT(sContestPaintingBgTemplates)); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); ChangeBgX(1, 0, 0); ChangeBgY(1, 0, 0); SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE)); - gContestPaintingWindowId = AddWindow(&sContestPaintingWindowTemplate); + sWindowId = AddWindow(&sWindowTemplate); DeactivateAllTextPrinters(); - FillWindowPixelBuffer(gContestPaintingWindowId, PIXEL_FILL(0)); - PutWindowTilemap(gContestPaintingWindowId); - CopyWindowToVram(gContestPaintingWindowId, 3); + FillWindowPixelBuffer(sWindowId, PIXEL_FILL(0)); + PutWindowTilemap(sWindowId); + CopyWindowToVram(sWindowId, 3); ShowBg(1); } -static void PrintContestPaintingCaption(u8 contestType, bool8 arg1) +static void PrintContestPaintingCaption(u8 contestType, bool8 isForArtist) { int x; u8 category; - if (arg1 == TRUE) + // Artist's painting has no caption + if (isForArtist == TRUE) return; category = gContestPaintingWinner->contestCategory; - if (contestType < 8) + if (contestType < MUSEUM_CONTEST_WINNERS_START) { + // Contest Hall caption BufferContestName(gStringVar1, category); StringAppend(gStringVar1, gText_Space); StringAppend(gStringVar1, sContestRankNames[gContestPaintingWinner->contestRank]); StringCopy(gStringVar2, gContestPaintingWinner->trainerName); - sub_81DB5AC(gStringVar2); + ConvertInternationalContestantName(gStringVar2); StringCopy(gStringVar3, gContestPaintingWinner->monName); - StringExpandPlaceholders(gStringVar4, gUnknown_0827EA0C); + StringExpandPlaceholders(gStringVar4, gContestHallPaintingCaption); } else { + // Museum caption StringCopy(gStringVar1, gContestPaintingWinner->monName); - StringExpandPlaceholders(gStringVar4, sContestPaintingDescriptionPointers[category]); + StringExpandPlaceholders(gStringVar4, sMuseumCaptions[category]); } x = GetStringCenterAlignXOffset(1, gStringVar4, 208); - AddTextPrinterParameterized(gContestPaintingWindowId, 1, gStringVar4, x, 1, 0, 0); + AddTextPrinterParameterized(sWindowId, 1, gStringVar4, x, 1, 0, 0); CopyBgTilemapBufferToVram(1); } @@ -322,33 +322,34 @@ static void InitContestPaintingBg(void) SetGpuReg(REG_OFFSET_BLDY, 0); } -static void InitContestPaintingVars(bool8 arg0) +static void InitContestPaintingVars(bool8 reset) { - if (arg0 == FALSE) + if (reset == FALSE) { - gUnknown_030011F6 = FALSE; - gContestPaintingMosaicVal = 0; - gContestPaintingFadeCounter = 0; + // Never reached + sVarsInitialized = FALSE; + sMosaicVal = 0; + sFadeCounter = 0; } else { - gUnknown_030011F6 = TRUE; - gContestPaintingMosaicVal = 15; - gContestPaintingFadeCounter = 30; + sVarsInitialized = TRUE; + sMosaicVal = 15; + sFadeCounter = 30; } } static void UpdateContestPaintingMosaicEffect(void) { - if (!gUnknown_030011F6) + if (!sVarsInitialized) { SetGpuReg(REG_OFFSET_MOSAIC, 0); } else { SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256); - gContestPaintingMosaicVal = gContestPaintingFadeCounter / 2; - SetGpuReg(REG_OFFSET_MOSAIC, (gContestPaintingMosaicVal << 12) | (gContestPaintingMosaicVal << 8) | (gContestPaintingMosaicVal << 4) | (gContestPaintingMosaicVal << 0)); + sMosaicVal = sFadeCounter / 2; + SetGpuReg(REG_OFFSET_MOSAIC, (sMosaicVal << 12) | (sMosaicVal << 8) | (sMosaicVal << 4) | (sMosaicVal << 0)); } } @@ -415,34 +416,35 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels) #define VRAM_PICTURE_DATA(x, y) (((u16 *)(BG_SCREEN_ADDR(12)))[(y) * 32 + (x)]) -static void LoadContestPaintingFrame(u8 contestWinnerId, bool8 arg1) +static void LoadContestPaintingFrame(u8 contestWinnerId, bool8 isForArtist) { u8 x, y; - LoadPalette(gPictureFramePalettes, 0, 0x100); - if (arg1 == TRUE) + LoadPalette(sPictureFramePalettes, 0, 0x100); + if (isForArtist == TRUE) { - switch (gContestPaintingWinner->contestCategory / 3) + // Load Artist's frame + switch (gContestPaintingWinner->contestCategory / NUM_PAINTING_CAPTIONS) { case CONTEST_CATEGORY_COOL: - RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_0, gContestMonPixels); + RLUnCompVram(sPictureFrameTiles_Cool, (void *)VRAM); + RLUnCompWram(sPictureFrameTilemap_Cool, gContestMonPixels); break; case CONTEST_CATEGORY_BEAUTY: - RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_1, gContestMonPixels); + RLUnCompVram(sPictureFrameTiles_Beauty, (void *)VRAM); + RLUnCompWram(sPictureFrameTilemap_Beauty, gContestMonPixels); break; case CONTEST_CATEGORY_CUTE: - RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_2, gContestMonPixels); + RLUnCompVram(sPictureFrameTiles_Cute, (void *)VRAM); + RLUnCompWram(sPictureFrameTilemap_Cute, gContestMonPixels); break; case CONTEST_CATEGORY_SMART: - RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_3, gContestMonPixels); + RLUnCompVram(sPictureFrameTiles_Smart, (void *)VRAM); + RLUnCompWram(sPictureFrameTilemap_Smart, gContestMonPixels); break; case CONTEST_CATEGORY_TOUGH: - RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_4, gContestMonPixels); + RLUnCompVram(sPictureFrameTiles_Tough, (void *)VRAM); + RLUnCompWram(sPictureFrameTilemap_Tough, gContestMonPixels); break; } @@ -464,34 +466,36 @@ static void LoadContestPaintingFrame(u8 contestWinnerId, bool8 arg1) for (x = 0; x < 16; x++) VRAM_PICTURE_DATA(x + 7, 2) = (*gContestMonPixels)[2][7]; } - else if (contestWinnerId < 8) + else if (contestWinnerId < MUSEUM_CONTEST_WINNERS_START) { - RLUnCompVram(gPictureFrameTiles_5, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_5, (void *)(BG_SCREEN_ADDR(12))); + // Load Contest Hall lobby frame + RLUnCompVram(sPictureFrameTiles_HallLobby, (void *)VRAM); + RLUnCompVram(sPictureFrameTilemap_HallLobby, (void *)(BG_SCREEN_ADDR(12))); } else { - switch (gContestPaintingWinner->contestCategory / 3) + // Load Museum frame + switch (gContestPaintingWinner->contestCategory / NUM_PAINTING_CAPTIONS) { case CONTEST_CATEGORY_COOL: - RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_0, (void *)(BG_SCREEN_ADDR(12))); + RLUnCompVram(sPictureFrameTiles_Cool, (void *)VRAM); + RLUnCompVram(sPictureFrameTilemap_Cool, (void *)(BG_SCREEN_ADDR(12))); break; case CONTEST_CATEGORY_BEAUTY: - RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_1, (void *)(BG_SCREEN_ADDR(12))); + RLUnCompVram(sPictureFrameTiles_Beauty, (void *)VRAM); + RLUnCompVram(sPictureFrameTilemap_Beauty, (void *)(BG_SCREEN_ADDR(12))); break; case CONTEST_CATEGORY_CUTE: - RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_2, (void *)(BG_SCREEN_ADDR(12))); + RLUnCompVram(sPictureFrameTiles_Cute, (void *)VRAM); + RLUnCompVram(sPictureFrameTilemap_Cute, (void *)(BG_SCREEN_ADDR(12))); break; case CONTEST_CATEGORY_SMART: - RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_3, (void *)(BG_SCREEN_ADDR(12))); + RLUnCompVram(sPictureFrameTiles_Smart, (void *)VRAM); + RLUnCompVram(sPictureFrameTilemap_Smart, (void *)(BG_SCREEN_ADDR(12))); break; case CONTEST_CATEGORY_TOUGH: - RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_4, (void *)(BG_SCREEN_ADDR(12))); + RLUnCompVram(sPictureFrameTiles_Tough, (void *)VRAM); + RLUnCompVram(sPictureFrameTilemap_Tough, (void *)(BG_SCREEN_ADDR(12))); break; } } @@ -520,10 +524,10 @@ static u8 GetImageEffectForContestWinner(u8 contestWinnerId) { u8 contestCategory; - if (contestWinnerId < 8) + if (contestWinnerId < MUSEUM_CONTEST_WINNERS_START) contestCategory = gContestPaintingWinner->contestCategory; else - contestCategory = gContestPaintingWinner->contestCategory / 3; + contestCategory = gContestPaintingWinner->contestCategory / NUM_PAINTING_CAPTIONS; switch (contestCategory) { @@ -585,12 +589,12 @@ static void DoContestPaintingImageProcessing(u8 imageEffect) LoadPalette(gContestPaintingMonPalette, 0x100, 0x200); } -static void CreateContestPaintingPicture(u8 contestWinnerId, bool8 arg1) +static void CreateContestPaintingPicture(u8 contestWinnerId, bool8 isForArtist) { AllocPaintingResources(); InitContestMonPixels(gContestPaintingWinner->species, 0); DoContestPaintingImageProcessing(GetImageEffectForContestWinner(contestWinnerId)); InitPaintingMonOamData(contestWinnerId); - LoadContestPaintingFrame(contestWinnerId, arg1); + LoadContestPaintingFrame(contestWinnerId, isForArtist); } diff --git a/src/contest_util.c b/src/contest_util.c index e690a3bbe9..aae05d531d 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -44,7 +44,6 @@ #include "constants/game_stat.h" #include "constants/rgb.h" #include "constants/songs.h" -#include "constants/tv.h" #include "contest.h" enum { @@ -61,10 +60,29 @@ enum { #define GET_CONTEST_WINNER_ID(i) { for ((i) = 0; (i) < CONTESTANT_COUNT && gContestFinalStandings[(i)] != 0; (i)++); } +// Gfx/pal tags for the text window sprites on the contest results screen. +// Both types of text windows are made up of 4 individual sprites +// These tags are used by the spritesheets, and implicitly in the loop in CreateResultsTextWindowSprites +#define TAG_TEXT_WINDOW_BASE 3009 +enum { + TAG_RESULTS_TEXT_WINDOW_LEFT = TAG_TEXT_WINDOW_BASE, + TAG_RESULTS_TEXT_WINDOW_MIDLEFT, + TAG_RESULTS_TEXT_WINDOW_MIDRIGHT, + TAG_RESULTS_TEXT_WINDOW_RIGHT, + TAG_LINK_TEXT_WINDOW_LEFT, + TAG_LINK_TEXT_WINDOW_MIDLEFT, + TAG_LINK_TEXT_WINDOW_MIDRIGHT, + TAG_LINK_TEXT_WINDOW_RIGHT, // 3016 +}; #define TAG_CONFETTI 3017 +#define TAG_WIRELESS_INDICATOR_WINDOW 22222 #define MAX_BAR_LENGTH 87 +// Starting x/y for the sliding results screen text box +#define TEXT_BOX_X (DISPLAY_WIDTH + 32) +#define TEXT_BOX_Y (DISPLAY_HEIGHT - 16) + struct ContestResultsInternal { u8 slidingTextBoxSpriteId; @@ -105,14 +123,14 @@ struct ContestResults static EWRAM_DATA struct ContestResults *sContestResults = NULL; static void LoadAllContestMonIconPalettes(void); -static void LoadContestResultsTilemaps(void); +static void LoadContestResultsTitleBarTilemaps(void); static u8 GetNumPreliminaryPoints(u8, bool8); static s8 GetNumRound2Points(u8, bool8); static void AddContestTextPrinter(int, u8 *, int); static void AllocContestResults(void); static void FreeContestResults(void); static void LoadAllContestMonIcons(u8, u8); -static void LoadContestResultSprites(void); +static void CreateResultsTextWindowSprites(void); static void TryCreateWirelessSprites(void); static void Task_StartShowContestResults(u8 taskId); static void CB2_StartShowContestResults(void); @@ -166,11 +184,11 @@ static void SpriteCB_Confetti(struct Sprite *sprite); static void Task_ShowContestEntryMonPic(u8 taskId); static void Task_LinkContestWaitForConnection(u8 taskId); -static const u16 sUnknown_0858D6B0[] = INCBIN_U16("graphics/unknown/unknown_58D6B0.gbapal"); -static const u8 sUnknown_0858D6D0[] = INCBIN_U8("graphics/unknown/unknown_58D6D0.4bpp"); +static const u16 sResultsTextWindow_Pal[] = INCBIN_U16("graphics/contest/results_screen/text_window.gbapal"); +static const u8 sResultsTextWindow_Gfx[] = INCBIN_U8("graphics/contest/results_screen/text_window.4bpp"); static const u16 sMiscBlank_Pal[] = INCBIN_U16("graphics/interface/blank.gbapal"); -static const struct OamData sOamData_858D7F0 = +static const struct OamData sOamData_ResultsTextWindow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -187,33 +205,33 @@ static const struct OamData sOamData_858D7F0 = .affineParam = 0, }; -static const struct SpriteTemplate sSpriteTemplate_858D7F8 = +static const struct SpriteTemplate sSpriteTemplate_ResultsTextWindow = { - .tileTag = 3009, - .paletteTag = 3009, - .oam = &sOamData_858D7F0, + .tileTag = TAG_TEXT_WINDOW_BASE, + .paletteTag = TAG_TEXT_WINDOW_BASE, + .oam = &sOamData_ResultsTextWindow, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteSheet sUnknown_0858D810[] = +static const struct SpriteSheet sSpriteSheets_ResultsTextWindow[] = { - { .data = gMiscBlank_Gfx, .size = 0x400, .tag = 3009 }, - { .data = gMiscBlank_Gfx, .size = 0x400, .tag = 3010 }, - { .data = gMiscBlank_Gfx, .size = 0x400, .tag = 3011 }, - { .data = gMiscBlank_Gfx, .size = 0x400, .tag = 3012 }, - { .data = gMiscBlank_Gfx, .size = 0x400, .tag = 3013 }, - { .data = gMiscBlank_Gfx, .size = 0x400, .tag = 3014 }, - { .data = gMiscBlank_Gfx, .size = 0x400, .tag = 3015 }, - { .data = gMiscBlank_Gfx, .size = 0x400, .tag = 3016 }, + { .data = gMiscBlank_Gfx, .size = 0x400, .tag = TAG_RESULTS_TEXT_WINDOW_LEFT }, + { .data = gMiscBlank_Gfx, .size = 0x400, .tag = TAG_RESULTS_TEXT_WINDOW_MIDLEFT }, + { .data = gMiscBlank_Gfx, .size = 0x400, .tag = TAG_RESULTS_TEXT_WINDOW_MIDRIGHT }, + { .data = gMiscBlank_Gfx, .size = 0x400, .tag = TAG_RESULTS_TEXT_WINDOW_RIGHT }, + { .data = gMiscBlank_Gfx, .size = 0x400, .tag = TAG_LINK_TEXT_WINDOW_LEFT }, + { .data = gMiscBlank_Gfx, .size = 0x400, .tag = TAG_LINK_TEXT_WINDOW_MIDLEFT }, + { .data = gMiscBlank_Gfx, .size = 0x400, .tag = TAG_LINK_TEXT_WINDOW_MIDRIGHT }, + { .data = gMiscBlank_Gfx, .size = 0x400, .tag = TAG_LINK_TEXT_WINDOW_RIGHT }, }; -static const struct SpritePalette sUnknown_0858D850 = +static const struct SpritePalette sSpritePalette_ResultsTextWindow = { .data = sMiscBlank_Pal, - .tag = 3009, + .tag = TAG_TEXT_WINDOW_BASE, }; static const struct OamData sOamData_Confetti = @@ -339,7 +357,7 @@ static const struct WindowTemplate sWindowTemplates[] = DUMMY_WIN_TEMPLATE, }; -static const struct OamData sUnknown_0858D8C0 = +static const struct OamData sOamData_WirelessIndicatorWindow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -357,22 +375,22 @@ static const struct OamData sUnknown_0858D8C0 = }; -static const struct SpriteTemplate sSpriteTemplate_858D8C8 = +static const struct SpriteTemplate sSpriteTemplate_WirelessIndicatorWindow = { - .tileTag = 22222, + .tileTag = TAG_WIRELESS_INDICATOR_WINDOW, .paletteTag = 0, - .oam = &sUnknown_0858D8C0, + .oam = &sOamData_WirelessIndicatorWindow, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteSheet sUnknown_0858D8E0 = +static const struct SpriteSheet sSpriteSheet_WirelessIndicatorWindow = { .data = gMiscBlank_Gfx, .size = 0x200, - .tag = 22222 + .tag = TAG_WIRELESS_INDICATOR_WINDOW }; static const u8 sContestLinkTextColors[4] = {TEXT_COLOR_WHITE, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5}; @@ -430,12 +448,12 @@ static void LoadContestResultsBgGfx(void) u16 tile1, tile2; LZDecompressVram(gContestResults_Gfx, (void *)BG_CHAR_ADDR(0)); - CopyToBgTilemapBuffer(3, gUnknown_08C1A12C, 0, 0); - CopyToBgTilemapBuffer(2, gUnknown_08C1A000, 0, 0); - CopyToBgTilemapBuffer(0, gUnknown_08C19EEC, 0, 0); - LoadContestResultsTilemaps(); + CopyToBgTilemapBuffer(3, gContestResults_Bg_Tilemap, 0, 0); + CopyToBgTilemapBuffer(2, gContestResults_Interface_Tilemap, 0, 0); + CopyToBgTilemapBuffer(0, gContestResults_WinnerBanner_Tilemap, 0, 0); + LoadContestResultsTitleBarTilemaps(); LoadCompressedPalette(gContestResults_Pal, 0, 0x200); - LoadPalette(sUnknown_0858D6B0, 0xF0, 0x20); + LoadPalette(sResultsTextWindow_Pal, 0xF0, sizeof(sResultsTextWindow_Pal)); for (i = 0; i < CONTESTANT_COUNT; i++) { @@ -479,7 +497,7 @@ static void LoadContestMonName(u8 monIndex) struct ContestPokemon *mon = &gContestMons[monIndex]; u8 *str = gDisplayedStringBattle; if (monIndex == gContestPlayerMonIndex) - str = StringCopy(gDisplayedStringBattle, gText_ColorDarkGrey); + str = StringCopy(gDisplayedStringBattle, gText_ColorDarkGray); StringCopy(str, mon->nickname); AddContestTextPrinter(monIndex, gDisplayedStringBattle, 0); @@ -515,14 +533,14 @@ static void CB2_StartShowContestResults(void) LoadAllContestMonNames(); memset(sContestResults->data, 0, sizeof(*sContestResults->data)); memset(sContestResults->monResults, 0, sizeof(*sContestResults->monResults)); - LoadContestResultSprites(); + CreateResultsTextWindowSprites(); TryCreateWirelessSprites(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gPaletteFade.bufferTransferDisabled = FALSE; sContestResults->data->showResultsTaskId = CreateTask(Task_ShowContestResults, 5); SetMainCallback2(CB2_ShowContestResults); - gBattle_WIN1H = 0x00F0; - gBattle_WIN1V = 0x80A0; + gBattle_WIN1H = WIN_RANGE(0, DISPLAY_WIDTH); + gBattle_WIN1V = WIN_RANGE(DISPLAY_HEIGHT - 32, DISPLAY_HEIGHT); CreateTask(Task_SlideContestResultsBg, 20); CalculateContestantsResultData(); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) @@ -587,10 +605,10 @@ static void Task_ShowContestResults(u8 taskId) } TryGainNewFanFromCounter(FANCOUNTER_FINISHED_CONTEST); - sub_80DEDA8(gSpecialVar_ContestRank); - sub_80DEDA8(0xFE); - gUnknown_02039F5C = TRUE; - gUnknown_02039F5D = sub_80DEFA8(0xFE, 0); + SaveContestWinner(gSpecialVar_ContestRank); // Save for lobby painting + SaveContestWinner(CONTEST_SAVE_FOR_ARTIST); + gCurContestWinnerIsForArtist = TRUE; + gCurContestWinnerSaveIdx = GetContestWinnerSaveIdx(CONTEST_SAVE_FOR_ARTIST, FALSE); var = VarGet(VAR_CONTEST_HALL_STATE); VarSet(VAR_CONTEST_HALL_STATE, 0); SetContinueGameWarpStatusToDynamicWarp(); @@ -637,10 +655,10 @@ static void Task_ShowContestResults(u8 taskId) if (gContestFinalStandings[gContestPlayerMonIndex] == 0) IncrementGameStat(GAME_STAT_WON_CONTEST); - sub_80DEDA8(gSpecialVar_ContestRank); - sub_80DEDA8(0xFE); - gUnknown_02039F5C = TRUE; - gUnknown_02039F5D = sub_80DEFA8(0xFE, 0); + SaveContestWinner(gSpecialVar_ContestRank); // Save for lobby painting + SaveContestWinner(CONTEST_SAVE_FOR_ARTIST); + gCurContestWinnerIsForArtist = TRUE; + gCurContestWinnerSaveIdx = GetContestWinnerSaveIdx(CONTEST_SAVE_FOR_ARTIST, FALSE); TryGainNewFanFromCounter(FANCOUNTER_FINISHED_CONTEST); gTasks[taskId].func = Task_AnnouncePreliminaryResults; } @@ -679,7 +697,7 @@ static void Task_AnnouncePreliminaryResults(u8 taskId) { CreateTask(Task_FlashStarsAndHearts, 20); x = DrawResultsTextWindow(gText_AnnouncingResults, sContestResults->data->slidingTextBoxSpriteId); - StartTextBoxSlideIn(x, 144, 120, 1088); + StartTextBoxSlideIn(x, TEXT_BOX_Y, 120, 1088); gTasks[taskId].tState++; } else if (gTasks[taskId].tState == 1) @@ -702,7 +720,7 @@ static void Task_AnnouncePreliminaryResults(u8 taskId) else if (gTasks[taskId].tState == 3) { x = DrawResultsTextWindow(gText_PreliminaryResults, sContestResults->data->slidingTextBoxSpriteId); - StartTextBoxSlideIn(x, 144, -1, 1088); + StartTextBoxSlideIn(x, TEXT_BOX_Y, -1, 1088); gTasks[taskId].tState++; } else if (gTasks[taskId].tState == 4) @@ -752,7 +770,7 @@ static void Task_AnnounceRound2Results(u8 taskId) { gTasks[taskId].tTimer = 0; x = DrawResultsTextWindow(gText_Round2Results, sContestResults->data->slidingTextBoxSpriteId); - StartTextBoxSlideIn(x, 144, -1, 1088); + StartTextBoxSlideIn(x, TEXT_BOX_Y, -1, 1088); } } else if (sContestResults->data->slidingTextBoxState == SLIDING_TEXT_ARRIVED) @@ -837,11 +855,11 @@ static void Task_AnnounceWinner(u8 taskId) gTasks[taskId].tTimer = 0; GET_CONTEST_WINNER_ID(i); StringCopy(gStringVar1, gContestMons[i].trainerName); - sub_81DB5AC(gStringVar1); + ConvertInternationalContestantName(gStringVar1); StringCopy(gStringVar2, gContestMons[i].nickname); StringExpandPlaceholders(winnerTextBuffer, gText_ContestantsMonWon); x = DrawResultsTextWindow(winnerTextBuffer, sContestResults->data->slidingTextBoxSpriteId); - StartTextBoxSlideIn(x, 144, -1, 1088); + StartTextBoxSlideIn(x, TEXT_BOX_Y, -1, 1088); gTasks[taskId].tState++; } break; @@ -864,8 +882,8 @@ static void Task_ShowWinnerMonBanner(u8 taskId) switch (gTasks[taskId].tState) { case 0: - gBattle_WIN0H = 0x00F0; - gBattle_WIN0V = 0x5050; + gBattle_WIN0H = WIN_RANGE(0, DISPLAY_WIDTH); + gBattle_WIN0V = WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2); GET_CONTEST_WINNER_ID(i); species = gContestMons[i].species; @@ -892,7 +910,7 @@ static void Task_ShowWinnerMonBanner(u8 taskId) LoadCompressedSpritePalette(pokePal); SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_OPPONENT_LEFT); gMultiuseSpriteTemplate.paletteTag = pokePal->tag; - spriteId = CreateSprite(&gMultiuseSpriteTemplate, 272, 80, 10); + spriteId = CreateSprite(&gMultiuseSpriteTemplate, DISPLAY_WIDTH + 32, DISPLAY_HEIGHT / 2, 10); gSprites[spriteId].data[1] = species; gSprites[spriteId].oam.priority = 0; gSprites[spriteId].callback = SpriteCB_WinnerMonSlideIn; @@ -912,7 +930,7 @@ static void Task_ShowWinnerMonBanner(u8 taskId) gTasks[taskId].tCounter = 32; counter = gTasks[taskId].tCounter; - gBattle_WIN0V = ((80 - counter) << 8) | (80 + counter); + gBattle_WIN0V = WIN_RANGE(DISPLAY_HEIGHT / 2 - counter, DISPLAY_HEIGHT / 2 + counter); if (counter == 32) gTasks[taskId].tState++; } @@ -934,11 +952,11 @@ static void Task_ShowWinnerMonBanner(u8 taskId) { u8 top = (gBattle_WIN0V >> 8); top += 2; - if (top > 80) - top = 80; + if (top > DISPLAY_HEIGHT / 2) + top = DISPLAY_HEIGHT / 2; - gBattle_WIN0V = (top << 8) | (160 - top); - if (top == 80) + gBattle_WIN0V = WIN_RANGE(top, DISPLAY_HEIGHT - top); + if (top == DISPLAY_HEIGHT / 2) gTasks[taskId].tState++; } break; @@ -1018,12 +1036,12 @@ static void Task_EndShowContestResults(u8 taskId) if (gTasks[taskId].tTimer == 0) { DestroyTask(sContestResults->data->highlightWinnerTaskId); - BlendPalettes(0x0000FFFF, 16, RGB_BLACK); + BlendPalettes(PALETTES_BG, 16, RGB_BLACK); gTasks[taskId].tTimer++; } else if (gTasks[taskId].tTimer == 1) { - BlendPalettes(0xFFFF0000, 16, RGB_BLACK); + BlendPalettes(PALETTES_OBJECTS, 16, RGB_BLACK); gTasks[taskId].tTimer++; } else @@ -1136,9 +1154,9 @@ static void TryCreateWirelessSprites(void) LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(8, 8); gSprites[gWirelessStatusIndicatorSpriteId].subpriority = 1; - sheet = LoadSpriteSheet(&sUnknown_0858D8E0); + sheet = LoadSpriteSheet(&sSpriteSheet_WirelessIndicatorWindow); RequestDma3Fill(0xFFFFFFFF, (void *)BG_CHAR_ADDR(4) + sheet * 0x20, 0x80, 1); - spriteId = CreateSprite(&sSpriteTemplate_858D8C8, 8, 8, 0); + spriteId = CreateSprite(&sSpriteTemplate_WirelessIndicatorWindow, 8, 8, 0); gSprites[spriteId].oam.objMode = ST_OAM_OBJ_WINDOW; } } @@ -1150,14 +1168,13 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId) int strWidth; u8 *spriteTilePtrs[4]; u8 *dst; - { - struct WindowTemplate windowTemplate; - memset(&windowTemplate, 0, sizeof(windowTemplate)); - windowTemplate.width = 30; - windowTemplate.height = 2; - windowId = AddWindow(&windowTemplate); - FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); - } + + struct WindowTemplate windowTemplate; + memset(&windowTemplate, 0, sizeof(windowTemplate)); + windowTemplate.width = 30; + windowTemplate.height = 2; + windowId = AddWindow(&windowTemplate); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); origWidth = GetStringWidth(1, text, 0); strWidth = (origWidth + 9) / 8; @@ -1169,16 +1186,16 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId) s32 i; struct Sprite *sprite; const u8 *src, *windowTilesPtr; - windowTilesPtr = (u8 *)(GetWindowAttribute(windowId, WINDOW_TILE_DATA)); - src = (u8 *)(sUnknown_0858D6D0); + windowTilesPtr = (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA); + src = (u8 *)sResultsTextWindow_Gfx; sprite = &gSprites[spriteId]; spriteTilePtrs[0] = (u8 *)(sprite->oam.tileNum * 32 + OBJ_VRAM0); - for (i = 1; i < 4; i++) + for (i = 1; i < (int)ARRAY_COUNT(spriteTilePtrs); i++) spriteTilePtrs[i] = (void*)(gSprites[sprite->data[i - 1]].oam.tileNum * 32 + OBJ_VRAM0); - for (i = 0; i < 4; i++) + for (i = 0; i < (int)ARRAY_COUNT(spriteTilePtrs); i++) CpuFill32(0, spriteTilePtrs[i], 0x400); dst = spriteTilePtrs[0]; @@ -1205,30 +1222,34 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId) } RemoveWindow(windowId); - return (240 - (strWidth + 2) * 8) / 2; + return (DISPLAY_WIDTH - (strWidth + 2) * 8) / 2; } -static void LoadContestResultSprites(void) +static void CreateResultsTextWindowSprites(void) { int i; struct SpriteTemplate template; - u8 spriteIds[ARRAY_COUNT(sUnknown_0858D810)]; + u8 spriteIds[ARRAY_COUNT(sSpriteSheets_ResultsTextWindow)]; - template = sSpriteTemplate_858D7F8; - for (i = 0; i < (int)ARRAY_COUNT(sUnknown_0858D810); i++) - LoadSpriteSheet(&sUnknown_0858D810[i]); + template = sSpriteTemplate_ResultsTextWindow; + for (i = 0; i < (int)ARRAY_COUNT(sSpriteSheets_ResultsTextWindow); i++) + LoadSpriteSheet(&sSpriteSheets_ResultsTextWindow[i]); - LoadSpritePalette(&sUnknown_0858D850); - for (i = 0; i < (int)ARRAY_COUNT(sUnknown_0858D810); i++) + LoadSpritePalette(&sSpritePalette_ResultsTextWindow); + + // Create sprites for the two window types, each made up of 4 sprites + for (i = 0; i < (int)ARRAY_COUNT(sSpriteSheets_ResultsTextWindow); i++) { - spriteIds[i] = CreateSprite(&template, 272, 144, 10); + spriteIds[i] = CreateSprite(&template, TEXT_BOX_X, TEXT_BOX_Y, 10); template.tileTag++; } + // Save sprite ids of the sliding text box onto its leftmost sprite gSprites[spriteIds[0]].data[0] = spriteIds[1]; gSprites[spriteIds[0]].data[1] = spriteIds[2]; gSprites[spriteIds[0]].data[2] = spriteIds[3]; + // Save sprite ids of the link text box onto its leftmost sprite gSprites[spriteIds[4]].data[0] = spriteIds[5]; gSprites[spriteIds[4]].data[1] = spriteIds[6]; gSprites[spriteIds[4]].data[2] = spriteIds[7]; @@ -1248,10 +1269,10 @@ static void LoadContestResultSprites(void) static void StartTextBoxSlideIn(s16 x, u16 y, u16 slideOutTimer, u16 slideIncrement) { struct Sprite *sprite = &gSprites[sContestResults->data->slidingTextBoxSpriteId]; - sprite->pos1.x = 272; - sprite->pos1.y = y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x = TEXT_BOX_X; + sprite->y = y; + sprite->x2 = 0; + sprite->y2 = 0; sprite->sTargetX = x + 32; sprite->sSlideOutTimer = slideOutTimer; sprite->sSlideIncrement = slideIncrement; @@ -1263,10 +1284,10 @@ static void StartTextBoxSlideIn(s16 x, u16 y, u16 slideOutTimer, u16 slideIncrem static void StartTextBoxSlideOut(u16 slideIncrement) { struct Sprite *sprite = &gSprites[sContestResults->data->slidingTextBoxSpriteId]; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->sSlideIncrement = slideIncrement; sprite->sDistance = 0; sprite->callback = SpriteCB_TextBoxSlideOut; @@ -1275,10 +1296,10 @@ static void StartTextBoxSlideOut(u16 slideIncrement) static void EndTextBoxSlideOut(struct Sprite *sprite) { - sprite->pos1.x = 272; - sprite->pos1.y = 144; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x = TEXT_BOX_X; + sprite->y = TEXT_BOX_Y; + sprite->y2 = 0; + sprite->x2 = 0; sprite->callback = SpriteCallbackDummy; sContestResults->data->slidingTextBoxState = SLIDING_TEXT_OFFSCREEN; } @@ -1288,21 +1309,21 @@ static void SpriteCB_TextBoxSlideIn(struct Sprite *sprite) int i; s16 delta = sprite->sDistance + sprite->sSlideIncrement; - sprite->pos1.x -= delta >> 8; + sprite->x -= delta >> 8; sprite->sDistance += sprite->sSlideIncrement; sprite->sDistance &= 0xFF; // Prevent overshooting target - if (sprite->pos1.x < sprite->sTargetX) - sprite->pos1.x = sprite->sTargetX; + if (sprite->x < sprite->sTargetX) + sprite->x = sprite->sTargetX; for (i = 0; i < 3; i++) { struct Sprite *sprite2 = &gSprites[sprite->data[i]]; - sprite2->pos1.x = sprite->pos1.x + sprite->pos2.x + (i + 1) * 64; + sprite2->x = sprite->x + sprite->x2 + (i + 1) * 64; } - if (sprite->pos1.x == sprite->sTargetX) + if (sprite->x == sprite->sTargetX) sprite->callback = SpriteCB_EndTextBoxSlideIn; } @@ -1322,16 +1343,16 @@ static void SpriteCB_TextBoxSlideOut(struct Sprite *sprite) s16 delta; delta = sprite->sDistance + sprite->sSlideIncrement; - sprite->pos1.x -= delta >> 8; + sprite->x -= delta >> 8; sprite->sDistance += sprite->sSlideIncrement; sprite->sDistance &= 0xFF; for (i = 0; i < 3; i++) { struct Sprite *sprite2 = &gSprites[sprite->data[i]]; - sprite2->pos1.x = sprite->pos1.x + sprite->pos2.x + (i + 1) * 64; + sprite2->x = sprite->x + sprite->x2 + (i + 1) * 64; } - if (sprite->pos1.x + sprite->pos2.x < -224) + if (sprite->x + sprite->x2 < -224) EndTextBoxSlideOut(sprite); } @@ -1343,18 +1364,18 @@ static void ShowLinkResultsTextBox(const u8 *text) x = DrawResultsTextWindow(text, sContestResults->data->linkTextBoxSpriteId); sprite = &gSprites[sContestResults->data->linkTextBoxSpriteId]; - sprite->pos1.x = x + 32; - sprite->pos1.y = 80; + sprite->x = x + 32; + sprite->y = 80; sprite->invisible = FALSE; for (i = 0; i < 3; i++) { - gSprites[sprite->data[i]].pos1.x = sprite->pos1.x + sprite->pos2.x + (i + 1) * 64; - gSprites[sprite->data[i]].pos1.y = sprite->pos1.y; + gSprites[sprite->data[i]].x = sprite->x + sprite->x2 + (i + 1) * 64; + gSprites[sprite->data[i]].y = sprite->y; gSprites[sprite->data[i]].invisible = FALSE; } - gBattle_WIN0H = 0x00F0; - gBattle_WIN0V = ((sprite->pos1.y - 16) << 8) | (sprite->pos1.y + 16); + gBattle_WIN0H = WIN_RANGE(0, DISPLAY_WIDTH); + gBattle_WIN0V = WIN_RANGE(sprite->y - 16, sprite->y + 16); SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR); } @@ -1377,7 +1398,7 @@ static void HideLinkResultsTextBox(void) | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); } -static void LoadContestResultsTilemaps(void) +static void LoadContestResultsTitleBarTilemaps(void) { u8 palette; int x, y; @@ -1386,58 +1407,58 @@ static void LoadContestResultsTilemaps(void) y = 1; if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - CopyToBgTilemapBufferRect(2, gLinkContestResults_Tilemap, 5, 1, 5, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Link_Tilemap, 5, 1, 5, 2); x = 10; } else if (gSpecialVar_ContestRank == CONTEST_RANK_NORMAL) { - CopyToBgTilemapBufferRect(2, gNormalContestResults_Tilemap, 5, 1, 10, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Normal_Tilemap, 5, 1, 10, 2); x = 15; } else if (gSpecialVar_ContestRank == CONTEST_RANK_SUPER) { - CopyToBgTilemapBufferRect(2, gSuperContestResults_Tilemap, 5, 1, 10, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Super_Tilemap, 5, 1, 10, 2); x = 15; } else if (gSpecialVar_ContestRank == CONTEST_RANK_HYPER) { - CopyToBgTilemapBufferRect(2, gHyperContestResults_Tilemap, 5, 1, 10, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Hyper_Tilemap, 5, 1, 10, 2); x = 15; } else // CONTEST_RANK_MASTER { - CopyToBgTilemapBufferRect(2, gMasterContestResults_Tilemap, 5, 1, 10, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Master_Tilemap, 5, 1, 10, 2); x = 15; } if (gSpecialVar_ContestCategory == CONTEST_CATEGORY_COOL) { palette = 0; - CopyToBgTilemapBufferRect(2, gCoolContestResults_Tilemap, x, y, 5, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Cool_Tilemap, x, y, 5, 2); } else if (gSpecialVar_ContestCategory == CONTEST_CATEGORY_BEAUTY) { palette = 1; - CopyToBgTilemapBufferRect(2, gBeautyContestResults_Tilemap, x, y, 5, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Beauty_Tilemap, x, y, 5, 2); } else if (gSpecialVar_ContestCategory == CONTEST_CATEGORY_CUTE) { palette = 2; - CopyToBgTilemapBufferRect(2, gCuteContestResults_Tilemap, x, y, 5, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Cute_Tilemap, x, y, 5, 2); } else if (gSpecialVar_ContestCategory == CONTEST_CATEGORY_SMART) { palette = 3; - CopyToBgTilemapBufferRect(2, gSmartContestResults_Tilemap, x, y, 5, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Smart_Tilemap, x, y, 5, 2); } else // CONTEST_CATEGORY_TOUGH { palette = 4; - CopyToBgTilemapBufferRect(2, gToughContestResults_Tilemap, x, y, 5, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Tough_Tilemap, x, y, 5, 2); } x += 5; - CopyToBgTilemapBufferRect(2, gContestResults_Tilemap, x, y, 6, 2); + CopyToBgTilemapBufferRect(2, gContestResultsTitle_Tilemap, x, y, 6, 2); CopyToBgTilemapBufferRect_ChangePalette(2, sContestResults->tilemapBuffers[2], 0, 0, 32, 4, palette); } @@ -1564,13 +1585,13 @@ static void SpriteCB_WinnerMonSlideIn(struct Sprite *sprite) else { s16 delta = sprite->data[1] + 0x600; - sprite->pos1.x -= delta >> 8; + sprite->x -= delta >> 8; sprite->data[1] += 0x600; sprite->data[1] &= 0xFF; - if (sprite->pos1.x < 120) - sprite->pos1.x = 120; + if (sprite->x < DISPLAY_WIDTH / 2) + sprite->x = DISPLAY_WIDTH / 2; - if (sprite->pos1.x == 120) + if (sprite->x == DISPLAY_WIDTH / 2) { sprite->callback = SpriteCallbackDummy; sprite->data[1] = 0; @@ -1582,10 +1603,10 @@ static void SpriteCB_WinnerMonSlideIn(struct Sprite *sprite) static void SpriteCB_WinnerMonSlideOut(struct Sprite *sprite) { s16 delta = sprite->data[1] + 0x600; - sprite->pos1.x -= delta >> 8; + sprite->x -= delta >> 8; sprite->data[1] += + 0x600; sprite->data[1] &= 0xFF; - if (sprite->pos1.x < -32) + if (sprite->x < -32) { sprite->callback = SpriteCallbackDummy; sprite->invisible = TRUE; @@ -1600,7 +1621,7 @@ static void Task_CreateConfetti(u8 taskId) gTasks[taskId].data[0] = 0; if (sContestResults->data->confettiCount < 40) { - u8 spriteId = CreateSprite(&sSpriteTemplate_Confetti, (Random() % 240) - 20, 44, 5); + u8 spriteId = CreateSprite(&sSpriteTemplate_Confetti, (Random() % DISPLAY_WIDTH) - 20, 44, 5); gSprites[spriteId].data[0] = Random() % 512; gSprites[spriteId].data[1] = (Random() % 24) + 16; gSprites[spriteId].data[2] = (Random() % 256) + 48; @@ -1618,17 +1639,17 @@ static void SpriteCB_Confetti(struct Sprite *sprite) s16 delta; sprite->data[3] += sprite->data[0]; - sprite->pos2.x = Sin(sprite->data[3] >> 8, sprite->data[1]); + sprite->x2 = Sin(sprite->data[3] >> 8, sprite->data[1]); delta = sprite->data[4] + sprite->data[2]; - sprite->pos1.x += delta >> 8; + sprite->x += delta >> 8; sprite->data[4] += sprite->data[2]; sprite->data[4] &= 0xff; - sprite->pos1.y++; + sprite->y++; if (sContestResults->data->destroyConfetti) sprite->invisible = TRUE; - if (sprite->pos1.x > 248 || sprite->pos1.y > 116) + if (sprite->x > DISPLAY_WIDTH + 8 || sprite->y > 116) { DestroySprite(sprite); sContestResults->data->confettiCount--; @@ -2035,7 +2056,7 @@ void GiveMonContestRibbon(void) void BufferContestantTrainerName(void) { StringCopy(gStringVar1, gContestMons[gSpecialVar_0x8006].trainerName); - sub_81DB5AC(gStringVar1); + ConvertInternationalContestantName(gStringVar1); } void BufferContestantMonNickname(void) @@ -2074,7 +2095,7 @@ void BufferContestWinnerTrainerName(void) u8 i; GET_CONTEST_WINNER_ID(i); StringCopy(gStringVar3, gContestMons[i].trainerName); - sub_81DB5AC(gStringVar3); + ConvertInternationalContestantName(gStringVar3); } void BufferContestWinnerMonName(void) @@ -2102,7 +2123,7 @@ void StartContest(void) { ScriptContext2_Enable(); CreateTask(Task_StartContest, 10); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); } void BufferContestantMonSpecies(void) @@ -2123,7 +2144,7 @@ void ShowContestResults(void) { ScriptContext2_Enable(); CreateTask(Task_StartShowContestResults, 10); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); } void GetContestPlayerId(void) @@ -2257,6 +2278,10 @@ static void Task_LinkContest_WaitDisconnect(u8 taskId) } } +/* + A section of contest script functions starts here +*/ + void SetContestTrainerGfxIds(void) { gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_0 - VARS_START] = gContestMons[0].trainerGfxId; @@ -2265,27 +2290,27 @@ void SetContestTrainerGfxIds(void) } // Unused -void sub_80F8814(void) +void GetNpcContestantLocalId(void) { - u16 var1; - u8 var0 = gSpecialVar_0x8005; - switch (var0) + u16 localId; + u8 contestant = gSpecialVar_0x8005; + switch (contestant) { case 0: - var1 = 3; + localId = 3; break; case 1: - var1 = 4; + localId = 4; break; case 2: - var1 = 5; + localId = 5; break; - default: - var1 = 100; + default: // Invalid + localId = 100; break; } - gSpecialVar_0x8004 = var1; + gSpecialVar_0x8004 = localId; } void BufferContestTrainerAndMonNames(void) @@ -2296,26 +2321,26 @@ void BufferContestTrainerAndMonNames(void) } // Unused -void DoesContestCategoryHaveWinner(void) +void DoesContestCategoryHaveMuseumPainting(void) { int contestWinner; switch (gSpecialVar_ContestCategory) { case CONTEST_CATEGORY_COOL: - contestWinner = 8; + contestWinner = CONTEST_WINNER_MUSEUM_COOL - 1; break; case CONTEST_CATEGORY_BEAUTY: - contestWinner = 9; + contestWinner = CONTEST_WINNER_MUSEUM_BEAUTY - 1; break; case CONTEST_CATEGORY_CUTE: - contestWinner = 10; + contestWinner = CONTEST_WINNER_MUSEUM_CUTE - 1; break; case CONTEST_CATEGORY_SMART: - contestWinner = 11; + contestWinner = CONTEST_WINNER_MUSEUM_SMART - 1; break; case CONTEST_CATEGORY_TOUGH: default: - contestWinner = 12; + contestWinner = CONTEST_WINNER_MUSEUM_TOUGH - 1; break; } @@ -2327,7 +2352,7 @@ void DoesContestCategoryHaveWinner(void) void SaveMuseumContestPainting(void) { - sub_80DEDA8(0xFF); + SaveContestWinner(CONTEST_SAVE_FOR_MUSEUM); } void ShouldReadyContestArtist(void) @@ -2344,14 +2369,14 @@ void ShouldReadyContestArtist(void) } } -u8 CountPlayerContestPaintings(void) +u8 CountPlayerMuseumPaintings(void) { int i; u8 count = 0; - for (i = 0; i < 5; i++) + for (i = 0; i < NUM_CONTEST_WINNERS - MUSEUM_CONTEST_WINNERS_START; i++) { - if (gSaveBlock1Ptr->contestWinners[8 + i].species) + if (gSaveBlock1Ptr->contestWinners[MUSEUM_CONTEST_WINNERS_START + i].species) count++; } @@ -2359,19 +2384,21 @@ u8 CountPlayerContestPaintings(void) } // Unused -void sub_80F8970(void) +void GetContestantNamesAtRank(void) { s16 conditions[CONTESTANT_COUNT]; int i, j; s16 condition; - s8 var0; - u8 var2; - u8 r8; - u8 r7; + s8 numAtCondition; + u8 contestantOffset; + u8 tieRank; + u8 rank; + // Get round 1 points for (i = 0; i < CONTESTANT_COUNT; i++) conditions[i] = gContestMonRound1Points[i]; + // Sort round 1 points for (i = 0; i < CONTESTANT_COUNT - 1; i++) { for (j = CONTESTANT_COUNT - 1; j > i; j--) @@ -2384,58 +2411,65 @@ void sub_80F8970(void) } } + // Get round 1 points at specified rank condition = conditions[gSpecialVar_0x8006]; - var0 = 0; - r8 = 0; + + // Count number of contestants with the same number of points + numAtCondition = 0; + tieRank = 0; for (i = 0; i < CONTESTANT_COUNT; i++) { if (conditions[i] == condition) { - var0++; + numAtCondition++; if (i == gSpecialVar_0x8006) - r8 = var0; + tieRank = numAtCondition; } } + // Get rank of first contestant with the same number of points for (i = 0; i < CONTESTANT_COUNT; i++) { if (conditions[i] == condition) break; } + rank = i; - r7 = i; - var2 = r8; + // Get contestant id of player at rank (taking ties into account) + contestantOffset = tieRank; for (i = 0; i < CONTESTANT_COUNT; i++) { if (condition == gContestMonRound1Points[i]) { - if (var2 == 1) + if (contestantOffset == 1) break; - var2--; + contestantOffset--; } } + // Use contestant id to get names StringCopy(gStringVar1, gContestMons[i].nickname); StringCopy(gStringVar2, gContestMons[i].trainerName); - sub_81DB5AC(gStringVar2); + ConvertInternationalContestantName(gStringVar2); - if (var0 == 1) - gSpecialVar_0x8006 = r7; - else if (r8 == var0) - gSpecialVar_0x8006 = r7; + // Return adjusted rank + if (numAtCondition == 1) + gSpecialVar_0x8006 = rank; + else if (tieRank == numAtCondition) + gSpecialVar_0x8006 = rank; else - gSpecialVar_0x8006 = r7 + 4; + gSpecialVar_0x8006 = rank + CONTESTANT_COUNT; } -static void ExitContestWinnerPainting(void) +static void ExitContestPainting(void) { SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } -void ShowContestWinnerPainting(void) +void ShowContestPainting(void) { SetMainCallback2(CB2_ContestPainting); - gMain.savedCallback = ExitContestWinnerPainting; + gMain.savedCallback = ExitContestPainting; } void SetLinkContestPlayerGfx(void) @@ -2535,7 +2569,7 @@ void ShowContestEntryMonPic(void) u8 taskId; u8 left, top; - if (FindTaskIdByFunc(Task_ShowContestEntryMonPic) == 0xFF) + if (FindTaskIdByFunc(Task_ShowContestEntryMonPic) == TASK_NONE) { AllocateMonSpritesGfx(); left = 10; @@ -2578,7 +2612,7 @@ void ShowContestEntryMonPic(void) void HideContestEntryMonPic(void) { u8 taskId = FindTaskIdByFunc(Task_ShowContestEntryMonPic); - if (taskId != 0xFF) + if (taskId != TASK_NONE) { gTasks[taskId].data[0]++; FreeMonSpritesGfx(); diff --git a/src/credits.c b/src/credits.c index 41d1c16866..3ea51f743e 100644 --- a/src/credits.c +++ b/src/credits.c @@ -23,111 +23,44 @@ #include "event_data.h" #include "random.h" -enum -{ - PAGE_TITLE, - PAGE_DIRECTOR, - PAGE_ART_DIRECTOR, - PAGE_WORLD_DIRECTOR, - PAGE_LEAD_PROGRAMMER, - PAGE_PROGRAMMERS_1, - PAGE_PROGRAMMERS_2, - PAGE_PROGRAMMERS_3, - PAGE_PROGRAMMERS_4, - PAGE_GRAPHIC_DESIGNERS_1, - PAGE_GRAPHIC_DESIGNERS_2, - PAGE_GRAPHIC_DESIGNERS_3, - PAGE_MUSIC_COMPOSITION, - PAGE_SOUND_EFFECTS, - PAGE_GAME_DESIGNERS_1, - PAGE_GAME_DESIGNERS_2, - PAGE_GAME_DESIGNERS_3, - PAGE_SCENARIO_PLOT, - PAGE_SCENARIO, - PAGE_SCRIPT_DESIGNERS, - PAGE_MAP_DESIGNERS, - PAGE_BATTLE_FRONTIER_DATA, - PAGE_PARAMETRIC_DESIGNERS, - PAGE_POKEDEX_TEXT, - PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_1, - PAGE_PKMN_DESIGNERS_1, - PAGE_PKMN_DESIGNERS_2, - PAGE_PKMN_DESIGNERS_3, - PAGE_PKMN_DESIGNERS_4, - PAGE_SUPPORT_PROGRAMMERS, - PAGE_NCL_PRODUCT_TESTING, - PAGE_PACKAGE_AND_MANUAL, - PAGE_SPECIAL_THANKS_1, - PAGE_SPECIAL_THANKS_2, - PAGE_SPECIAL_THANKS_3, - PAGE_SPECIAL_THANKS_4, - PAGE_INFORMATION_SUPERVISORS, - PAGE_ARTWORK_1, - PAGE_ARTWORK_2, - PAGE_ARTWORK_3, - PAGE_COORDINATORS, - PAGE_ENGLISH_VERSION, - PAGE_TRANSLATOR, - PAGE_TEXT_EDITOR, - PAGE_NCL_COORDINATOR, - PAGE_PROGRAMMERS_5, - PAGE_GRAPHIC_DESIGNER, - PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_2, - PAGE_NOA_TESTING, - PAGE_BRAILLE_CODE_CHECK_1, - PAGE_BRAILLE_CODE_CHECK_2, - PAGE_SPECIAL_THANKS_5, - PAGE_TASK_MANAGERS, - PAGE_PRODUCERS, - PAGE_EXECUTIVE_DIRECTOR, - PAGE_EXECUTIVE_PRODUCERS_1, - PAGE_EXECUTIVE_PRODUCERS_2, - PAGE_COUNT -}; - #define COLOR_DARK_GREEN RGB(7, 11, 6) #define COLOR_LIGHT_GREEN RGB(13, 20, 12) -enum -{ - TDA_0 = 0, - TDA_TASK_C_ID = 1, - TDA_TASK_E_ID = 2, - TDA_TASK_D_ID = 3, - TDA_4 = 4, - TDA_PLAYER_CYCLIST = 5, - TDA_RIVAL_CYCLIST = 6, - TDA_7 = 7, // Has something to do with the bike scene - TDA_11 = 11, // Gets set depending on whether the bike or the grass scene should be shown - TDA_12 = 12, - TDA_13 = 13, - TDA_14 = 14, - TDA_TASK_B_ID = 15, +#define TAG_MON_BG 1001 - // Appears to be responsible for text - TDB_0 = 0, - TDB_TASK_A_ID = 1, - TDB_CURRENT_PAGE = 2, - TDB_3 = 3, - - TDC_0 = 0, - TDC_1 = 1, - TDC_2 = 2, - TDC_3 = 3, - TDC_4 = 4, - TDC_5 = 5, - - TDD_STATE = 0, - TDD_TASK_A_ID = 1, - TDD_2 = 2, - TDD_3 = 3, - - TDE_0 = 0, - TDE_1 = 1, - TDE_TASK_A_ID = 2, +// Positions for the Pokémon images +enum { + POS_LEFT, + POS_CENTER, + POS_RIGHT, }; +enum { + MODE_NONE, + MODE_BIKE_SCENE, + MODE_SHOW_MONS, +}; + +#define tState data[0] + +// Task data for the main Credits tasks +#define tTaskId_BgScenery data[0] // ID for Task_BicycleBgAnimation (created by CreateBicycleBgAnimationTask) +#define tTaskId_BikeScene data[1] // ID for Task_BikeScene +#define tTaskId_SceneryPal data[2] // ID for Task_CycleSceneryPalette +#define tTaskId_ShowMons data[3] // ID for Task_ShowMons +#define tEndCredits data[4] +#define tPlayerSpriteId data[5] +#define tRivalSpriteId data[6] +#define tSceneNum data[7] +// data[8]-[10] are unused +#define tNextMode data[11] +#define tTheEndDelay data[12] +#define tCurrentMode data[13] +#define tPrintedPage data[14] +#define tTaskId_UpdatePage data[15] + #define NUM_MON_SLIDES 71 + struct CreditsData { u16 monToShow[NUM_MON_SLIDES]; // List of Pokemon species ids that will show during the credits @@ -137,35 +70,55 @@ struct CreditsData u16 numMonToShow; //number of pokemon to show, always NUM_MON_SLIDES after determine function u16 caughtMonIds[NATIONAL_DEX_COUNT]; //temporary location to hold a condensed array of all caught pokemon u16 numCaughtMon; //count of filled spaces in caughtMonIds - u16 unk39C[7]; // unused padding? + u16 unused[7]; }; struct CreditsEntry { - u8 var_0; + u8 unk; // Never read bool8 isTitle; const u8 *text; }; -static EWRAM_DATA s16 gUnknown_0203BCE0 = 0; -static EWRAM_DATA u16 gUnknown_0203BCE2 = 0; // TASK A +static EWRAM_DATA s16 sUnkVar = 0; // Never read, only set to 0 +static EWRAM_DATA u16 sSavedTaskId = 0; EWRAM_DATA bool8 gHasHallOfFameRecords = 0; -static EWRAM_DATA u8 gUnknown_0203BCE5 = 0; +static EWRAM_DATA bool8 sUsedSpeedUp = 0; // Never read static EWRAM_DATA struct CreditsData *sCreditsData = {0}; -static const u16 gUnknown_085E56F0[][16] = -{ - INCBIN_U16("graphics/credits/credits_1.gbapal"), - INCBIN_U16("graphics/credits/credits_2.gbapal"), - INCBIN_U16("graphics/credits/credits_3.gbapal"), - INCBIN_U16("graphics/credits/credits_4.gbapal"), -}; +static const u16 sCredits_Pal[] = INCBIN_U16("graphics/credits/credits.gbapal"); +static const u32 sCreditsCopyrightEnd_Gfx[] = INCBIN_U32("graphics/credits/the_end_copyright.4bpp.lz"); -static const u32 gCreditsCopyrightEnd_Gfx[] = INCBIN_U32("graphics/credits/the_end_copyright.4bpp.lz"); +static void SpriteCB_CreditsMonBg(struct Sprite *); +static void Task_WaitPaletteFade(u8); +static void Task_CreditsMain(u8); +static void Task_ReadyBikeScene(u8); +static void Task_SetBikeScene(u8); +static void Task_LoadShowMons(u8); +static void Task_ReadyShowMons(u8); +static void Task_CreditsTheEnd1(u8); +static void Task_CreditsTheEnd2(u8); +static void Task_CreditsTheEnd3(u8); +static void Task_CreditsTheEnd4(u8); +static void Task_CreditsTheEnd5(u8); +static void Task_CreditsTheEnd6(u8); +static void Task_CreditsSoftReset(u8); +static void ResetGpuAndVram(void); +static void Task_UpdatePage(u8); +static u8 CheckChangeScene(u8, u8); +static void Task_ShowMons(u8); +static void Task_CycleSceneryPalette(u8); +static void Task_BikeScene(u8); +static bool8 LoadBikeScene(u8 data, u8); +static void ResetCreditsTasks(u8); +static void LoadTheEndScreen(u16, u16, u16); +static void DrawTheEnd(u16, u16); +static void SpriteCB_Player(struct Sprite *); +static void SpriteCB_Rival(struct Sprite *); +static u8 CreateCreditsMonSprite(u16, s16, s16, u16); +static void DeterminePokemonToShow(void); -static void sub_81772B8(struct Sprite *sprite); - -static const u8 sTheEnd_LetterTMap[] = +static const u8 sTheEnd_LetterMap_T[] = { 0, 1, 0, 0xFF, 1, 0xFF, @@ -174,7 +127,7 @@ static const u8 sTheEnd_LetterTMap[] = 0xFF, 1, 0xFF, }; -static const u8 sTheEnd_LetterHMap[] = +static const u8 sTheEnd_LetterMap_H[] = { 1, 0xFF, 1, 1, 0xFF, 1, @@ -183,7 +136,7 @@ static const u8 sTheEnd_LetterHMap[] = 1, 0xFF, 1, }; -static const u8 sTheEnd_LetterEMap[] = +static const u8 sTheEnd_LetterMap_E[] = { 1, 0, 0, 1, 0xFF, 0xFF, @@ -192,7 +145,7 @@ static const u8 sTheEnd_LetterEMap[] = 1, 0x80, 0x80, }; -static const u8 sTheEnd_LetterNMap[] = +static const u8 sTheEnd_LetterMap_N[] = { 1, 3, 1, 1, 4, 1, @@ -201,7 +154,7 @@ static const u8 sTheEnd_LetterNMap[] = 1, 0xC3, 1, }; -static const u8 sTheEnd_LetterDMap[] = +static const u8 sTheEnd_LetterMap_D[] = { 1, 6, 7, 1, 8, 9, @@ -210,729 +163,7 @@ static const u8 sTheEnd_LetterDMap[] = 1, 0x86, 0x87, }; -static const u8 gCreditsText_EmptyString[] = _(""); -static const u8 gCreditsText_PkmnEmeraldVersion[] = _("POKéMON EMERALD VERSION"); -static const u8 gCreditsText_Credits[] = _("Credits"); -static const u8 gCreditsText_ExecutiveDirector[] = _("Executive Director"); -static const u8 gCreditsText_Director[] = _("Director"); -static const u8 gCreditsText_ArtDirector[] = _("Art Director"); -static const u8 gCreditsText_BattleDirector[] = _("Battle Director"); -static const u8 gCreditsText_MainProgrammer[] = _("Main Programmer"); -static const u8 gCreditsText_BattleSystemPgrms[] = _("Battle System Programmers"); -static const u8 gCreditsText_FieldSystemPgrms[] = _("Field System Programmer"); -static const u8 gCreditsText_Programmers[] = _("Programmers"); -static const u8 gCreditsText_MainGraphicDesigner[] = _("Main Graphic Designer"); -static const u8 gCreditsText_GraphicDesigners[] = _("Graphic Designers"); -static const u8 gCreditsText_PkmnDesigners[] = _("POKéMON Designers"); -static const u8 gCreditsText_MusicComposition[] = _("Music Composition"); -static const u8 gCreditsText_SoundEffectsAndPkmnVoices[] = _("Sound Effects & POKéMON Voices"); -static const u8 gCreditsText_GameDesigners[] = _("Game Designers"); -static const u8 gCreditsText_ScenarioPlot[] = _("Scenario Plot"); -static const u8 gCreditsText_Scenario[] = _("Scenario"); -static const u8 gCreditsText_ScriptDesigners[] = _("Script Designers"); -static const u8 gCreditsText_MapDesigners[] = _("Map Designers"); -static const u8 gCreditsText_MapDataDesigners[] = _("Map Data Designers"); -static const u8 gCreditsText_ParametricDesigners[] = _("Parametric Designers"); -static const u8 gCreditsText_PokedexText[] = _("POKéDEX Text"); -static const u8 gCreditsText_EnvAndToolPgrms[] = _("Environment & Tool Programmers"); -static const u8 gCreditsText_NCLProductTesting[] = _("NCL Product Testing"); -static const u8 gCreditsText_SpecialThanks[] = _("Special Thanks"); -static const u8 gCreditsText_Coordinators[] = _("Coordinators"); -static const u8 gCreditsText_Producers[] = _("Producers"); -static const u8 gCreditsText_ExecProducers[] = _("Executive Producers"); -static const u8 gCreditsText_InfoSupervisors[] = _("Information Supervisors"); -static const u8 gCreditsText_TaskManagers[] = _("Task Managers"); -static const u8 gCreditsText_BrailleCodeCheck[] = _("Braille Code Check"); -static const u8 gCreditsText_WorldDirector[] = _("World Director"); -static const u8 gCreditsText_BattleFrontierData[] = _("Battle Frontier Data"); -static const u8 gCreditsText_SupportProgrammers[] = _("Support Programmers"); -static const u8 gCreditsText_Artwork[] = _("Artwork"); -static const u8 gCreditsText_LeadProgrammer[] = _("Lead Programmer"); -static const u8 gCreditsText_LeadGraphicArtist[] = _("Lead Graphic Artist"); -static const u8 gCreditsText_SatoshiTajiri[] = _("Satoshi Tajiri"); -static const u8 gCreditsText_JunichiMasuda[] = _("Junichi Masuda"); -static const u8 gCreditsText_KenSugimori[] = _("Ken Sugimori"); -static const u8 gCreditsText_ShigekiMorimoto[] = _("Shigeki Morimoto"); -static const u8 gCreditsText_TetsuyaWatanabe[] = _("Tetsuya Watanabe"); -static const u8 gCreditsText_HisashiSogabe[] = _("Hisashi Sogabe"); -static const u8 gCreditsText_SosukeTamada[] = _("Sosuke Tamada"); -static const u8 gCreditsText_AkitoMori[] = _("Akito Mori"); -static const u8 gCreditsText_KeitaKagaya[] = _("Keita Kagaya"); -static const u8 gCreditsText_YoshinoriMatsuda[] = _("Yoshinori Matsuda"); -static const u8 gCreditsText_HiroyukiNakamura[] = _("Hiroyuki Nakamura"); -static const u8 gCreditsText_MasaoTaya[] = _("Masao Taya"); -static const u8 gCreditsText_SatoshiNohara[] = _("Satoshi Nohara"); -static const u8 gCreditsText_TomomichiOhta[] = _("Tomomichi Ohta"); -static const u8 gCreditsText_MiyukiIwasawa[] = _("Miyuki Iwasawa"); -static const u8 gCreditsText_TakenoriOhta[] = _("Takenori Ohta"); -static const u8 gCreditsText_HironobuYoshida[] = _("Hironobu Yoshida"); -static const u8 gCreditsText_MotofumiFujiwara[] = _("Motofumi Fujiwara"); -static const u8 gCreditsText_SatoshiOhta[] = _("Satoshi Ohta"); -static const u8 gCreditsText_AsukaIwashita[] = _("Asuka Iwashita"); -static const u8 gCreditsText_AimiTomita[] = _("Aimi Tomita"); -static const u8 gCreditsText_TakaoUnno[] = _("Takao Unno"); -static const u8 gCreditsText_KanakoEo[] = _("Kanako Eo"); -static const u8 gCreditsText_JunOkutani[] = _("Jun Okutani"); -static const u8 gCreditsText_AtsukoNishida[] = _("Atsuko Nishida"); -static const u8 gCreditsText_MuneoSaito[] = _("Muneo Saito"); -static const u8 gCreditsText_RenaYoshikawa[] = _("Rena Yoshikawa"); -static const u8 gCreditsText_GoIchinose[] = _("Go Ichinose"); -static const u8 gCreditsText_MorikazuAoki[] = _("Morikazu Aoki"); -static const u8 gCreditsText_KojiNishino[] = _("Koji Nishino"); -static const u8 gCreditsText_KenjiMatsushima[] = _("Kenji Matsushima"); -static const u8 gCreditsText_TetsujiOhta[] = _("Tetsuji Ohta"); -static const u8 gCreditsText_HitomiSato[] = _("Hitomi Sato"); -static const u8 gCreditsText_TakeshiKawachimaru[] = _("Takeshi Kawachimaru"); -static const u8 gCreditsText_TeruyukiShimoyamada[] = _("Teruyuki Shimoyamada"); -static const u8 gCreditsText_ShigeruOhmori[] = _("Shigeru Ohmori"); -static const u8 gCreditsText_TadashiTakahashi[] = _("Tadashi Takahashi"); -static const u8 gCreditsText_ToshinobuMatsumiya[] = _("Toshinobu Matsumiya"); -static const u8 gCreditsText_AkihitoTomisawa[] = _("Akihito Tomisawa"); -static const u8 gCreditsText_HirokiEnomoto[] = _("Hiroki Enomoto"); -static const u8 gCreditsText_KazuyukiTerada[] = _("Kazuyuki Terada"); -static const u8 gCreditsText_YuriSakurai[] = _("Yuri Sakurai"); -static const u8 gCreditsText_HiromiSagawa[] = _("Hiromi Sagawa"); -static const u8 gCreditsText_KenjiTominaga[] = _("Kenji Tominaga"); -static const u8 gCreditsText_YoshioTajiri[] = _("Yoshio Tajiri"); -static const u8 gCreditsText_TeikoSasaki[] = _("Teiko Sasaki"); -static const u8 gCreditsText_SachikoHamano[] = _("Sachiko Hamano"); -static const u8 gCreditsText_ChieMatsumiya[] = _("Chie Matsumiya"); -static const u8 gCreditsText_AkikoShinozaki[] = _("Akiko Shinozaki"); -static const u8 gCreditsText_AstukoFujii[] = _("Astuko Fujii"); -static const u8 gCreditsText_NozomuSaito[] = _("Nozomu Saito"); -static const u8 gCreditsText_KenkichiToyama[] = _("Kenkichi Toyama"); -static const u8 gCreditsText_SuguruNakatsui[] = _("Suguru Nakatsui"); -static const u8 gCreditsText_YumiFunasaka[] = _("Yumi Funasaka"); -static const u8 gCreditsText_NaokoYanase[] = _("Naoko Yanase"); -static const u8 gCreditsText_NCLSuperMarioClub[] = _("NCL Super Mario Club"); -static const u8 gCreditsText_AtsushiTada[] = _("Atsushi Tada"); -static const u8 gCreditsText_TakahiroOhnishi[] = _("Takahiro Ohnishi"); -static const u8 gCreditsText_NorihideOkamura[] = _("Norihide Okamura"); -static const u8 gCreditsText_HiroNakamura[] = _("Hiro Nakamura"); -static const u8 gCreditsText_HiroyukiUesugi[] = _("Hiroyuki Uesugi"); -static const u8 gCreditsText_TerukiMurakawa[] = _("Teruki Murakawa"); -static const u8 gCreditsText_AkiraKinashi[] = _("Akira Kinashi"); -static const u8 gCreditsText_MichikoTakizawa[] = _("Michiko Takizawa"); -static const u8 gCreditsText_MakikoTakada[] = _("Makiko Takada"); -static const u8 gCreditsText_TakanaoKondo[] = _("Takanao Kondo"); -static const u8 gCreditsText_AiMashima[] = _("Ai Mashima"); -static const u8 gCreditsText_GakujiNomoto[] = _("Gakuji Nomoto"); -static const u8 gCreditsText_TakehiroIzushi[] = _("Takehiro Izushi"); -static const u8 gCreditsText_HitoshiYamagami[] = _("Hitoshi Yamagami"); -static const u8 gCreditsText_KyokoWatanabe[] = _("Kyoko Watanabe"); -static const u8 gCreditsText_TakaoNakano[] = _("Takao Nakano"); -static const u8 gCreditsText_HiroyukiJinnai[] = _("Hiroyuki Jinnai"); -static const u8 gCreditsText_HiroakiTsuru[] = _("Hiroaki Tsuru"); -static const u8 gCreditsText_TsunekazIshihara[] = _("Tsunekaz Ishihara"); -static const u8 gCreditsText_SatoruIwata[] = _("Satoru Iwata"); -static const u8 gCreditsText_KazuyaSuyama[] = _("Kazuya Suyama"); -static const u8 gCreditsText_SatoshiMitsuhara[] = _("Satoshi Mitsuhara"); -static const u8 gCreditsText_JapanBrailleLibrary[] = _("Japan Braille Library"); -static const u8 gCreditsText_TomotakaKomura[] = _("Tomotaka Komura"); -static const u8 gCreditsText_MikikoOhhashi[] = _("Mikiko Ohhashi"); -static const u8 gCreditsText_DaisukeHoshino[] = _("Daisuke Hoshino"); -static const u8 gCreditsText_KenjiroIto[] = _("Kenjiro Ito"); -static const u8 gCreditsText_RuiKawaguchi[] = _("Rui Kawaguchi"); -static const u8 gCreditsText_ShunsukeKohori[] = _("Shunsuke Kohori"); -static const u8 gCreditsText_SachikoNakamichi[] = _("Sachiko Nakamichi"); -static const u8 gCreditsText_FujikoNomura[] = _("Fujiko Nomura"); -static const u8 gCreditsText_KazukiYoshihara[] = _("Kazuki Yoshihara"); -static const u8 gCreditsText_RetsujiNomoto[] = _("Retsuji Nomoto"); -static const u8 gCreditsText_AzusaTajima[] = _("Azusa Tajima"); -static const u8 gCreditsText_ShusakuEgami[] = _("Shusaku Egami"); -static const u8 gCreditsText_PackageAndManual[] = _("Package & Manual Illustration"); -static const u8 gCreditsText_EnglishVersion[] = _("English Version Coordinators"); -static const u8 gCreditsText_Translator[] = _("Translator"); -static const u8 gCreditsText_TextEditor[] = _("Text Editor"); -static const u8 gCreditsText_NCLCoordinator[] = _("NCL Coordinator"); -static const u8 gCreditsText_GraphicDesigner[] = _("Graphic Designer"); -static const u8 gCreditsText_NOAProductTesting[] = _("NOA Product Testing"); -static const u8 gCreditsText_HideyukiNakajima[] = _("Hideyuki Nakajima"); -static const u8 gCreditsText_HidenoriSaeki[] = _("Hidenori Saeki"); -static const u8 gCreditsText_YokoWatanabe[] = _("Yoko Watanabe"); -static const u8 gCreditsText_SakaeKimura[] = _("Sakae Kimura"); -static const u8 gCreditsText_ChiakiShinkai[] = _("Chiaki Shinkai"); -static const u8 gCreditsText_SethMcMahill[] = _("Seth McMahill"); -static const u8 gCreditsText_NobOgasawara[] = _("Nob Ogasawara"); -static const u8 gCreditsText_TeresaLillygren[] = _("Teresa Lillygren"); -static const u8 gCreditsText_KimikoNakamichi[] = _("Kimiko Nakamichi"); -static const u8 gCreditsText_SouichiYamamoto[] = _("Souichi Yamamoto"); -static const u8 gCreditsText_YuichiroIto[] = _("Yuichiro Ito"); -static const u8 gCreditsText_ThomasHertzog[] = _("Thomas Hertzog"); -static const u8 gCreditsText_MikaKurosawa[] = _("Mika Kurosawa"); -static const u8 gCreditsText_NationalFederationBlind[] = _("National Federation of the Blind"); -static const u8 gCreditsText_PatriciaAMaurer[] = _("Patricia A. Maurer"); -static const u8 gCreditsText_EuropeanBlindUnion[] = _("European Blind Union"); -static const u8 gCreditsText_AustralianBrailleAuthority[] = _("Australian Braille Authority"); -static const u8 gCreditsText_RoyalNewZealandFederationBlind[] = _("Royal New Zealand Federation for the Blind"); -static const u8 gCreditsText_MotoyasuTojima[] = _("Motoyasu Tojima"); -static const u8 gCreditsText_NicolaPrattBarlow[] = _("Nicola Pratt-Barlow"); -static const u8 gCreditsText_ShellieDow[] = _("Shellie Dow"); -static const u8 gCreditsText_ErikJohnson[] = _("Erik Johnson"); -static const struct CreditsEntry gCreditsEntry_EmptyString[] = {0, FALSE, gCreditsText_EmptyString}; -static const struct CreditsEntry gCreditsEntry_PkmnEmeraldVersion[] = {7, TRUE, gCreditsText_PkmnEmeraldVersion}; -static const struct CreditsEntry gCreditsEntry_Credits[] = {11, TRUE, gCreditsText_Credits}; -static const struct CreditsEntry gCreditsEntry_ExecutiveDirector[] = {8, TRUE, gCreditsText_ExecutiveDirector}; -static const struct CreditsEntry gCreditsEntry_Director[] = {12, TRUE, gCreditsText_Director}; -static const struct CreditsEntry gCreditsEntry_ArtDirector[] = {10, TRUE, gCreditsText_ArtDirector}; -static const struct CreditsEntry gCreditsEntry_BattleDirector[] = {10, TRUE, gCreditsText_BattleDirector}; -static const struct CreditsEntry gCreditsEntry_MainProgrammer[] = {10, TRUE, gCreditsText_MainProgrammer}; -static const struct CreditsEntry gCreditsEntry_BattleSystemPgrms[] = {8, TRUE, gCreditsText_BattleSystemPgrms}; -static const struct CreditsEntry gCreditsEntry_FieldSystemPgrms[] = {7, TRUE, gCreditsText_FieldSystemPgrms}; -static const struct CreditsEntry gCreditsEntry_Programmers[] = {12, TRUE, gCreditsText_Programmers}; -static const struct CreditsEntry gCreditsEntry_MainGraphicDesigner[] = {7, TRUE, gCreditsText_MainGraphicDesigner}; -static const struct CreditsEntry gCreditsEntry_GraphicDesigners[] = {9, TRUE, gCreditsText_GraphicDesigners}; -static const struct CreditsEntry gCreditsEntry_PkmnDesigners[] = {10, TRUE, gCreditsText_PkmnDesigners}; -static const struct CreditsEntry gCreditsEntry_MusicComposition[] = {13, TRUE, gCreditsText_MusicComposition}; -static const struct CreditsEntry gCreditsEntry_SoundEffectsAndPkmnVoices[] = {4, TRUE, gCreditsText_SoundEffectsAndPkmnVoices}; -static const struct CreditsEntry gCreditsEntry_GameDesigners[] = {11, TRUE, gCreditsText_GameDesigners}; -static const struct CreditsEntry gCreditsEntry_ScenarioPlot[] = {11, TRUE, gCreditsText_ScenarioPlot}; -static const struct CreditsEntry gCreditsEntry_Scenario[] = {13, TRUE, gCreditsText_Scenario}; -static const struct CreditsEntry gCreditsEntry_ScriptDesigners[] = {10, TRUE, gCreditsText_ScriptDesigners}; -static const struct CreditsEntry gCreditsEntry_MapDesigners[] = {11, TRUE, gCreditsText_MapDesigners}; -static const struct CreditsEntry gCreditsEntry_MapDataDesigners[] = {9, TRUE, gCreditsText_MapDataDesigners}; -static const struct CreditsEntry gCreditsEntry_ParametricDesigners[] = {9, TRUE, gCreditsText_ParametricDesigners}; -static const struct CreditsEntry gCreditsEntry_PokedexText[] = {11, TRUE, gCreditsText_PokedexText}; -static const struct CreditsEntry gCreditsEntry_EnvAndToolPgrms[] = {6, TRUE, gCreditsText_EnvAndToolPgrms}; -static const struct CreditsEntry gCreditsEntry_NCLProductTesting[] = {11, TRUE, gCreditsText_NCLProductTesting}; -static const struct CreditsEntry gCreditsEntry_SpecialThanks[] = {10, TRUE, gCreditsText_SpecialThanks}; -static const struct CreditsEntry gCreditsEntry_Coordinators[] = {11, TRUE, gCreditsText_Coordinators}; -static const struct CreditsEntry gCreditsEntry_Producers[] = {11, TRUE, gCreditsText_Producers}; -static const struct CreditsEntry gCreditsEntry_ExecProducers[] = {7, TRUE, gCreditsText_ExecProducers}; -static const struct CreditsEntry gCreditsEntry_InfoSupervisors[] = {10, TRUE, gCreditsText_InfoSupervisors}; -static const struct CreditsEntry gCreditsEntry_TaskManagers[] = {8, TRUE, gCreditsText_TaskManagers}; -static const struct CreditsEntry gCreditsEntry_BrailleCodeCheck[] = {10, TRUE, gCreditsText_BrailleCodeCheck}; -static const struct CreditsEntry gCreditsEntry_WorldDirector[] = {10, TRUE, gCreditsText_WorldDirector}; -static const struct CreditsEntry gCreditsEntry_BattleFrontierData[] = {8, TRUE, gCreditsText_BattleFrontierData}; -static const struct CreditsEntry gCreditsEntry_SupportProgrammers[] = {10, TRUE, gCreditsText_SupportProgrammers}; -static const struct CreditsEntry gCreditsEntry_Artwork[] = {12, TRUE, gCreditsText_Artwork}; -static const struct CreditsEntry gCreditsEntry_LeadProgrammer[] = {10, TRUE, gCreditsText_LeadProgrammer}; -static const struct CreditsEntry gCreditsEntry_LeadGraphicArtist[] = {9, TRUE, gCreditsText_LeadGraphicArtist}; -static const struct CreditsEntry gCreditsEntry_SatoshiTajiri[] = {11, FALSE, gCreditsText_SatoshiTajiri}; -static const struct CreditsEntry gCreditsEntry_JunichiMasuda[] = {11, FALSE, gCreditsText_JunichiMasuda}; -static const struct CreditsEntry gCreditsEntry_KenSugimori[] = {11, FALSE, gCreditsText_KenSugimori}; -static const struct CreditsEntry gCreditsEntry_ShigekiMorimoto[] = {11, FALSE, gCreditsText_ShigekiMorimoto}; -static const struct CreditsEntry gCreditsEntry_TetsuyaWatanabe[] = {11, FALSE, gCreditsText_TetsuyaWatanabe}; -static const struct CreditsEntry gCreditsEntry_HisashiSogabe[] = {11, FALSE, gCreditsText_HisashiSogabe}; -static const struct CreditsEntry gCreditsEntry_SosukeTamada[] = {11, FALSE, gCreditsText_SosukeTamada}; -static const struct CreditsEntry gCreditsEntry_AkitoMori[] = {11, FALSE, gCreditsText_AkitoMori}; -static const struct CreditsEntry gCreditsEntry_KeitaKagaya[] = {11, FALSE, gCreditsText_KeitaKagaya}; -static const struct CreditsEntry gCreditsEntry_YoshinoriMatsuda[] = {11, FALSE, gCreditsText_YoshinoriMatsuda}; -static const struct CreditsEntry gCreditsEntry_HiroyukiNakamura[] = {11, FALSE, gCreditsText_HiroyukiNakamura}; -static const struct CreditsEntry gCreditsEntry_MasaoTaya[] = {11, FALSE, gCreditsText_MasaoTaya}; -static const struct CreditsEntry gCreditsEntry_SatoshiNohara[] = {11, FALSE, gCreditsText_SatoshiNohara}; -static const struct CreditsEntry gCreditsEntry_TomomichiOhta[] = {11, FALSE, gCreditsText_TomomichiOhta}; -static const struct CreditsEntry gCreditsEntry_MiyukiIwasawa[] = {11, FALSE, gCreditsText_MiyukiIwasawa}; -static const struct CreditsEntry gCreditsEntry_TakenoriOhta[] = {11, FALSE, gCreditsText_TakenoriOhta}; -static const struct CreditsEntry gCreditsEntry_HironobuYoshida[] = {11, FALSE, gCreditsText_HironobuYoshida}; -static const struct CreditsEntry gCreditsEntry_MotofumiFujiwara[] = {11, FALSE, gCreditsText_MotofumiFujiwara}; -static const struct CreditsEntry gCreditsEntry_SatoshiOhta[] = {11, FALSE, gCreditsText_SatoshiOhta}; -static const struct CreditsEntry gCreditsEntry_AsukaIwashita[] = {11, FALSE, gCreditsText_AsukaIwashita}; -static const struct CreditsEntry gCreditsEntry_AimiTomita[] = {11, FALSE, gCreditsText_AimiTomita}; -static const struct CreditsEntry gCreditsEntry_TakaoUnno[] = {11, FALSE, gCreditsText_TakaoUnno}; -static const struct CreditsEntry gCreditsEntry_KanakoEo[] = {11, FALSE, gCreditsText_KanakoEo}; -static const struct CreditsEntry gCreditsEntry_JunOkutani[] = {11, FALSE, gCreditsText_JunOkutani}; -static const struct CreditsEntry gCreditsEntry_AtsukoNishida[] = {11, FALSE, gCreditsText_AtsukoNishida}; -static const struct CreditsEntry gCreditsEntry_MuneoSaito[] = {11, FALSE, gCreditsText_MuneoSaito}; -static const struct CreditsEntry gCreditsEntry_RenaYoshikawa[] = {11, FALSE, gCreditsText_RenaYoshikawa}; -static const struct CreditsEntry gCreditsEntry_GoIchinose[] = {11, FALSE, gCreditsText_GoIchinose}; -static const struct CreditsEntry gCreditsEntry_MorikazuAoki[] = {11, FALSE, gCreditsText_MorikazuAoki}; -static const struct CreditsEntry gCreditsEntry_KojiNishino[] = {11, FALSE, gCreditsText_KojiNishino}; -static const struct CreditsEntry gCreditsEntry_KenjiMatsushima[] = {11, FALSE, gCreditsText_KenjiMatsushima}; -static const struct CreditsEntry gCreditsEntry_TetsujiOhta[] = {11, FALSE, gCreditsText_TetsujiOhta}; -static const struct CreditsEntry gCreditsEntry_HitomiSato[] = {11, FALSE, gCreditsText_HitomiSato}; -static const struct CreditsEntry gCreditsEntry_TakeshiKawachimaru[] = {11, FALSE, gCreditsText_TakeshiKawachimaru}; -static const struct CreditsEntry gCreditsEntry_TeruyukiShimoyamada[] = {11, FALSE, gCreditsText_TeruyukiShimoyamada}; -static const struct CreditsEntry gCreditsEntry_ShigeruOhmori[] = {11, FALSE, gCreditsText_ShigeruOhmori}; -static const struct CreditsEntry gCreditsEntry_TadashiTakahashi[] = {11, FALSE, gCreditsText_TadashiTakahashi}; -static const struct CreditsEntry gCreditsEntry_ToshinobuMatsumiya[] = {11, FALSE, gCreditsText_ToshinobuMatsumiya}; -static const struct CreditsEntry gCreditsEntry_AkihitoTomisawa[] = {11, FALSE, gCreditsText_AkihitoTomisawa}; -static const struct CreditsEntry gCreditsEntry_HirokiEnomoto[] = {11, FALSE, gCreditsText_HirokiEnomoto}; -static const struct CreditsEntry gCreditsEntry_KazuyukiTerada[] = {11, FALSE, gCreditsText_KazuyukiTerada}; -static const struct CreditsEntry gCreditsEntry_YuriSakurai[] = {11, FALSE, gCreditsText_YuriSakurai}; -static const struct CreditsEntry gCreditsEntry_HiromiSagawa[] = {11, FALSE, gCreditsText_HiromiSagawa}; -static const struct CreditsEntry gCreditsEntry_KenjiTominaga[] = {11, FALSE, gCreditsText_KenjiTominaga}; -static const struct CreditsEntry gCreditsEntry_YoshioTajiri[] = {11, FALSE, gCreditsText_YoshioTajiri}; -static const struct CreditsEntry gCreditsEntry_TeikoSasaki[] = {11, FALSE, gCreditsText_TeikoSasaki}; -static const struct CreditsEntry gCreditsEntry_SachikoHamano[] = {11, FALSE, gCreditsText_SachikoHamano}; -static const struct CreditsEntry gCreditsEntry_ChieMatsumiya[] = {11, FALSE, gCreditsText_ChieMatsumiya}; -static const struct CreditsEntry gCreditsEntry_AkikoShinozaki[] = {11, FALSE, gCreditsText_AkikoShinozaki}; -static const struct CreditsEntry gCreditsEntry_AstukoFujii[] = {11, FALSE, gCreditsText_AstukoFujii}; -static const struct CreditsEntry gCreditsEntry_NozomuSaito[] = {11, FALSE, gCreditsText_NozomuSaito}; -static const struct CreditsEntry gCreditsEntry_KenkichiToyama[] = {11, FALSE, gCreditsText_KenkichiToyama}; -static const struct CreditsEntry gCreditsEntry_SuguruNakatsui[] = {11, FALSE, gCreditsText_SuguruNakatsui}; -static const struct CreditsEntry gCreditsEntry_YumiFunasaka[] = {11, FALSE, gCreditsText_YumiFunasaka}; -static const struct CreditsEntry gCreditsEntry_NaokoYanase[] = {11, FALSE, gCreditsText_NaokoYanase}; -static const struct CreditsEntry gCreditsEntry_NCLSuperMarioClub[] = {11, FALSE, gCreditsText_NCLSuperMarioClub}; -static const struct CreditsEntry gCreditsEntry_AtsushiTada[] = {11, FALSE, gCreditsText_AtsushiTada}; -static const struct CreditsEntry gCreditsEntry_TakahiroOhnishi[] = {11, FALSE, gCreditsText_TakahiroOhnishi}; -static const struct CreditsEntry gCreditsEntry_NorihideOkamura[] = {11, FALSE, gCreditsText_NorihideOkamura}; -static const struct CreditsEntry gCreditsEntry_HiroNakamura[] = {11, FALSE, gCreditsText_HiroNakamura}; -static const struct CreditsEntry gCreditsEntry_HiroyukiUesugi[] = {11, FALSE, gCreditsText_HiroyukiUesugi}; -static const struct CreditsEntry gCreditsEntry_TerukiMurakawa[] = {11, FALSE, gCreditsText_TerukiMurakawa}; -static const struct CreditsEntry gCreditsEntry_AkiraKinashi[] = {11, FALSE, gCreditsText_AkiraKinashi}; -static const struct CreditsEntry gCreditsEntry_MichikoTakizawa[] = {11, FALSE, gCreditsText_MichikoTakizawa}; -static const struct CreditsEntry gCreditsEntry_MakikoTakada[] = {11, FALSE, gCreditsText_MakikoTakada}; -static const struct CreditsEntry gCreditsEntry_TakanaoKondo[] = {11, FALSE, gCreditsText_TakanaoKondo}; -static const struct CreditsEntry gCreditsEntry_AiMashima[] = {11, FALSE, gCreditsText_AiMashima}; -static const struct CreditsEntry gCreditsEntry_GakujiNomoto[] = {11, FALSE, gCreditsText_GakujiNomoto}; -static const struct CreditsEntry gCreditsEntry_TakehiroIzushi[] = {11, FALSE, gCreditsText_TakehiroIzushi}; -static const struct CreditsEntry gCreditsEntry_HitoshiYamagami[] = {11, FALSE, gCreditsText_HitoshiYamagami}; -static const struct CreditsEntry gCreditsEntry_KyokoWatanabe[] = {11, FALSE, gCreditsText_KyokoWatanabe}; -static const struct CreditsEntry gCreditsEntry_TakaoNakano[] = {11, FALSE, gCreditsText_TakaoNakano}; -static const struct CreditsEntry gCreditsEntry_HiroyukiJinnai[] = {11, FALSE, gCreditsText_HiroyukiJinnai}; -static const struct CreditsEntry gCreditsEntry_HiroakiTsuru[] = {11, FALSE, gCreditsText_HiroakiTsuru}; -static const struct CreditsEntry gCreditsEntry_TsunekazIshihara[] = {11, FALSE, gCreditsText_TsunekazIshihara}; -static const struct CreditsEntry gCreditsEntry_SatoruIwata[] = {11, FALSE, gCreditsText_SatoruIwata}; -static const struct CreditsEntry gCreditsEntry_KazuyaSuyama[] = {11, FALSE, gCreditsText_KazuyaSuyama}; -static const struct CreditsEntry gCreditsEntry_SatoshiMitsuhara[] = {11, FALSE, gCreditsText_SatoshiMitsuhara}; -static const struct CreditsEntry gCreditsEntry_JapanBrailleLibrary[] = {9, FALSE, gCreditsText_JapanBrailleLibrary}; -static const struct CreditsEntry gCreditsEntry_TomotakaKomura[] = {11, FALSE, gCreditsText_TomotakaKomura}; -static const struct CreditsEntry gCreditsEntry_MikikoOhhashi[] = {11, FALSE, gCreditsText_MikikoOhhashi}; -static const struct CreditsEntry gCreditsEntry_DaisukeHoshino[] = {11, FALSE, gCreditsText_DaisukeHoshino}; -static const struct CreditsEntry gCreditsEntry_KenjiroIto[] = {11, FALSE, gCreditsText_KenjiroIto}; -static const struct CreditsEntry gCreditsEntry_RuiKawaguchi[] = {11, FALSE, gCreditsText_RuiKawaguchi}; -static const struct CreditsEntry gCreditsEntry_ShunsukeKohori[] = {11, FALSE, gCreditsText_ShunsukeKohori}; -static const struct CreditsEntry gCreditsEntry_SachikoNakamichi[] = {11, FALSE, gCreditsText_SachikoNakamichi}; -static const struct CreditsEntry gCreditsEntry_FujikoNomura[] = {11, FALSE, gCreditsText_FujikoNomura}; -static const struct CreditsEntry gCreditsEntry_KazukiYoshihara[] = {11, FALSE, gCreditsText_KazukiYoshihara}; -static const struct CreditsEntry gCreditsEntry_RetsujiNomoto[] = {11, FALSE, gCreditsText_RetsujiNomoto}; -static const struct CreditsEntry gCreditsEntry_AzusaTajima[] = {11, FALSE, gCreditsText_AzusaTajima}; -static const struct CreditsEntry gCreditsEntry_ShusakuEgami[] = {11, FALSE, gCreditsText_ShusakuEgami}; -static const struct CreditsEntry gCreditsEntry_PackageAndManual[] = {0, TRUE, gCreditsText_PackageAndManual}; -static const struct CreditsEntry gCreditsEntry_EnglishVersion[] = {0, TRUE, gCreditsText_EnglishVersion}; -static const struct CreditsEntry gCreditsEntry_Translator[] = {0, TRUE, gCreditsText_Translator}; -static const struct CreditsEntry gCreditsEntry_TextEditor[] = {0, TRUE, gCreditsText_TextEditor}; -static const struct CreditsEntry gCreditsEntry_NCLCoordinator[] = {0, TRUE, gCreditsText_NCLCoordinator}; -static const struct CreditsEntry gCreditsEntry_GraphicDesigner[] = {0, TRUE, gCreditsText_GraphicDesigner}; -static const struct CreditsEntry gCreditsEntry_NOAProductTesting[] = {0, TRUE, gCreditsText_NOAProductTesting}; -static const struct CreditsEntry gCreditsEntry_HideyukiNakajima[] = {0, FALSE, gCreditsText_HideyukiNakajima}; -static const struct CreditsEntry gCreditsEntry_HidenoriSaeki[] = {0, FALSE, gCreditsText_HidenoriSaeki}; -static const struct CreditsEntry gCreditsEntry_YokoWatanabe[] = {0, FALSE, gCreditsText_YokoWatanabe}; -static const struct CreditsEntry gCreditsEntry_SakaeKimura[] = {0, FALSE, gCreditsText_SakaeKimura}; -static const struct CreditsEntry gCreditsEntry_ChiakiShinkai[] = {0, FALSE, gCreditsText_ChiakiShinkai}; -static const struct CreditsEntry gCreditsEntry_SethMcMahill[] = {0, FALSE, gCreditsText_SethMcMahill}; -static const struct CreditsEntry gCreditsEntry_NobOgasawara[] = {0, FALSE, gCreditsText_NobOgasawara}; -static const struct CreditsEntry gCreditsEntry_TeresaLillygren[] = {0, FALSE, gCreditsText_TeresaLillygren}; -static const struct CreditsEntry gCreditsEntry_KimikoNakamichi[] = {0, FALSE, gCreditsText_KimikoNakamichi}; -static const struct CreditsEntry gCreditsEntry_SouichiYamamoto[] = {0, FALSE, gCreditsText_SouichiYamamoto}; -static const struct CreditsEntry gCreditsEntry_YuichiroIto[] = {0, FALSE, gCreditsText_YuichiroIto}; -static const struct CreditsEntry gCreditsEntry_ThomasHertzog[] = {0, FALSE, gCreditsText_ThomasHertzog}; -static const struct CreditsEntry gCreditsEntry_MikaKurosawa[] = {0, FALSE, gCreditsText_MikaKurosawa}; -static const struct CreditsEntry gCreditsEntry_NationalFederationBlind[] = {0, FALSE, gCreditsText_NationalFederationBlind}; -static const struct CreditsEntry gCreditsEntry_PatriciaAMaurer[] = {0, FALSE, gCreditsText_PatriciaAMaurer}; -static const struct CreditsEntry gCreditsEntry_EuropeanBlindUnion[] = {0, FALSE, gCreditsText_EuropeanBlindUnion}; -static const struct CreditsEntry gCreditsEntry_AustralianBrailleAuthority[] = {0, FALSE, gCreditsText_AustralianBrailleAuthority}; -static const struct CreditsEntry gCreditsEntry_RoyalNewZealandFederationBlind[] = {0, FALSE, gCreditsText_RoyalNewZealandFederationBlind}; -static const struct CreditsEntry gCreditsEntry_MotoyasuTojima[] = {0, FALSE, gCreditsText_MotoyasuTojima}; -static const struct CreditsEntry gCreditsEntry_NicolaPrattBarlow[] = {0, FALSE, gCreditsText_NicolaPrattBarlow}; -static const struct CreditsEntry gCreditsEntry_ShellieDow[] = {0, FALSE, gCreditsText_ShellieDow}; -static const struct CreditsEntry gCreditsEntry_ErikJohnson[] = {0, FALSE, gCreditsText_ErikJohnson}; - -#define _ gCreditsEntry_EmptyString -static const struct CreditsEntry *const gCreditsEntryPointerTable[][5] = -{ - { - _, - gCreditsEntry_PkmnEmeraldVersion, - gCreditsEntry_Credits, - _, - _ - }, - { - _, - gCreditsEntry_Director, - gCreditsEntry_ShigekiMorimoto, - _, - _, - }, - { - _, - gCreditsEntry_ArtDirector, - gCreditsEntry_KenSugimori, - _, - _, - }, - { - _, - gCreditsEntry_WorldDirector, - gCreditsEntry_JunichiMasuda, - _, - _, - }, - { - gCreditsEntry_LeadProgrammer, - gCreditsEntry_HisashiSogabe, - gCreditsEntry_LeadGraphicArtist, - gCreditsEntry_MotofumiFujiwara, - _, - }, - { - gCreditsEntry_Programmers, - gCreditsEntry_HisashiSogabe, - gCreditsEntry_TomomichiOhta, - gCreditsEntry_NozomuSaito, - gCreditsEntry_EmptyString, - }, - { - gCreditsEntry_Programmers, - gCreditsEntry_AkitoMori, - gCreditsEntry_HiroyukiNakamura, - gCreditsEntry_MasaoTaya, - _, - }, - { - gCreditsEntry_Programmers, - gCreditsEntry_SatoshiNohara, - gCreditsEntry_MiyukiIwasawa, - gCreditsEntry_YoshinoriMatsuda, - gCreditsEntry_KeitaKagaya, - }, - { - gCreditsEntry_Programmers, - gCreditsEntry_TetsuyaWatanabe, - gCreditsEntry_SosukeTamada, - gCreditsEntry_TakenoriOhta, - _, - }, - { - _, - gCreditsEntry_GraphicDesigners, - gCreditsEntry_MotofumiFujiwara, - gCreditsEntry_SatoshiOhta, - _, - }, - { - gCreditsEntry_GraphicDesigners, - gCreditsEntry_KenkichiToyama, - gCreditsEntry_AsukaIwashita, - gCreditsEntry_TakaoUnno, - _, - }, - { - gCreditsEntry_GraphicDesigners, - gCreditsEntry_KenSugimori, - gCreditsEntry_HironobuYoshida, - gCreditsEntry_AimiTomita, - gCreditsEntry_KanakoEo, - }, - { - gCreditsEntry_MusicComposition, - gCreditsEntry_GoIchinose, - gCreditsEntry_JunichiMasuda, - gCreditsEntry_MorikazuAoki, - gCreditsEntry_HitomiSato, - }, - { - _, - gCreditsEntry_SoundEffectsAndPkmnVoices, - gCreditsEntry_GoIchinose, - gCreditsEntry_MorikazuAoki, - _, - }, - { - gCreditsEntry_GameDesigners, - gCreditsEntry_ShigekiMorimoto, - gCreditsEntry_TeruyukiShimoyamada, - gCreditsEntry_TakeshiKawachimaru, - gCreditsEntry_AkihitoTomisawa, - }, - { - gCreditsEntry_GameDesigners, - gCreditsEntry_SuguruNakatsui, - gCreditsEntry_TetsujiOhta, - gCreditsEntry_HitomiSato, - gCreditsEntry_KenjiMatsushima, - }, - { - gCreditsEntry_GameDesigners, - gCreditsEntry_JunichiMasuda, - gCreditsEntry_KojiNishino, - gCreditsEntry_ShigeruOhmori, - gCreditsEntry_TadashiTakahashi, - }, - { - gCreditsEntry_ScenarioPlot, - gCreditsEntry_AkihitoTomisawa, - gCreditsEntry_JunichiMasuda, - gCreditsEntry_KojiNishino, - _, - }, - { - gCreditsEntry_Scenario, - gCreditsEntry_AkihitoTomisawa, - gCreditsEntry_HitomiSato, - gCreditsEntry_ToshinobuMatsumiya, - _, - }, - { - gCreditsEntry_ScriptDesigners, - gCreditsEntry_TomomichiOhta, - gCreditsEntry_SatoshiNohara, - _, - _, - }, - { - gCreditsEntry_MapDesigners, - gCreditsEntry_SuguruNakatsui, - gCreditsEntry_TeruyukiShimoyamada, - gCreditsEntry_ShigeruOhmori, - gCreditsEntry_TetsujiOhta, - }, - { - _, - gCreditsEntry_BattleFrontierData, - gCreditsEntry_TetsujiOhta, - _, - _, - }, - { - gCreditsEntry_ParametricDesigners, - gCreditsEntry_TeruyukiShimoyamada, - gCreditsEntry_ShigekiMorimoto, - gCreditsEntry_TetsujiOhta, - gCreditsEntry_KojiNishino, - }, - { - _, - gCreditsEntry_PokedexText, - gCreditsEntry_KenjiMatsushima, - _, - _, - }, - { - gCreditsEntry_EnvAndToolPgrms, - gCreditsEntry_HisashiSogabe, - gCreditsEntry_SosukeTamada, - gCreditsEntry_HiroyukiNakamura, - gCreditsEntry_AkitoMori, - }, - { - gCreditsEntry_PkmnDesigners, - gCreditsEntry_KenSugimori, - gCreditsEntry_MotofumiFujiwara, - gCreditsEntry_ShigekiMorimoto, - _, - }, - { - gCreditsEntry_PkmnDesigners, - gCreditsEntry_HironobuYoshida, - gCreditsEntry_SatoshiOhta, - gCreditsEntry_AsukaIwashita, - _, - }, - { - gCreditsEntry_PkmnDesigners, - gCreditsEntry_TakaoUnno, - gCreditsEntry_KanakoEo, - gCreditsEntry_AimiTomita, - _, - }, - { - gCreditsEntry_PkmnDesigners, - gCreditsEntry_AtsukoNishida, - gCreditsEntry_MuneoSaito, - gCreditsEntry_RenaYoshikawa, - gCreditsEntry_JunOkutani, - }, - { - _, - gCreditsEntry_SupportProgrammers, - gCreditsEntry_SatoshiMitsuhara, - gCreditsEntry_DaisukeHoshino, - _, - }, - { - _, - gCreditsEntry_NCLProductTesting, - gCreditsEntry_NCLSuperMarioClub, - _, - _, - }, - { - _, - gCreditsEntry_PackageAndManual, - gCreditsEntry_KenSugimori, - _, - _, - }, - { - _, - gCreditsEntry_SpecialThanks, - gCreditsEntry_KenjiTominaga, - gCreditsEntry_HirokiEnomoto, - _, - }, - { - gCreditsEntry_SpecialThanks, - gCreditsEntry_KazuyaSuyama, - gCreditsEntry_KenjiroIto, - gCreditsEntry_MichikoTakizawa, - gCreditsEntry_MakikoTakada, - }, - { - gCreditsEntry_SpecialThanks, - gCreditsEntry_MikikoOhhashi, - gCreditsEntry_TakanaoKondo, - gCreditsEntry_RuiKawaguchi, - _, - }, - { - gCreditsEntry_SpecialThanks, - gCreditsEntry_TakahiroOhnishi, - gCreditsEntry_NorihideOkamura, - gCreditsEntry_ShunsukeKohori, - _, - }, - { - gCreditsEntry_InfoSupervisors, - gCreditsEntry_KazuyukiTerada, - gCreditsEntry_YuriSakurai, - gCreditsEntry_YumiFunasaka, - gCreditsEntry_NaokoYanase, - }, - { - _, - gCreditsEntry_Artwork, - gCreditsEntry_SachikoNakamichi, - gCreditsEntry_FujikoNomura, - _, - }, - { - _, - gCreditsEntry_Artwork, - gCreditsEntry_HideyukiNakajima, - gCreditsEntry_HidenoriSaeki, - _, - }, - { - gCreditsEntry_Artwork, - gCreditsEntry_YokoWatanabe, - gCreditsEntry_SakaeKimura, - gCreditsEntry_ChiakiShinkai, - _, - }, - { - gCreditsEntry_Coordinators, - gCreditsEntry_KazukiYoshihara, - gCreditsEntry_AkiraKinashi, - gCreditsEntry_RetsujiNomoto, - _, - }, - { - _, - gCreditsEntry_EnglishVersion, - gCreditsEntry_HiroNakamura, - gCreditsEntry_SethMcMahill, - _, - }, - { - _, - gCreditsEntry_Translator, - gCreditsEntry_NobOgasawara, - _, - _, - }, - { - _, - gCreditsEntry_TextEditor, - gCreditsEntry_TeresaLillygren, - _, - _, - }, - { - _, - gCreditsEntry_NCLCoordinator, - gCreditsEntry_KimikoNakamichi, - _, - _, - }, - { - gCreditsEntry_Programmers, - gCreditsEntry_TerukiMurakawa, - gCreditsEntry_SouichiYamamoto, - gCreditsEntry_YuichiroIto, - gCreditsEntry_AkiraKinashi, - }, - { - _, - gCreditsEntry_GraphicDesigner, - gCreditsEntry_AkiraKinashi, - _, - _, - }, - { - gCreditsEntry_EnvAndToolPgrms, - gCreditsEntry_TerukiMurakawa, - gCreditsEntry_SouichiYamamoto, - gCreditsEntry_KimikoNakamichi, - _, - }, - { - gCreditsEntry_NOAProductTesting, - gCreditsEntry_ThomasHertzog, - gCreditsEntry_ErikJohnson, - gCreditsEntry_MikaKurosawa, - _, - }, - { - gCreditsEntry_BrailleCodeCheck, - gCreditsEntry_NationalFederationBlind, - gCreditsEntry_PatriciaAMaurer, - gCreditsEntry_JapanBrailleLibrary, - gCreditsEntry_EuropeanBlindUnion, - }, - { - _, - gCreditsEntry_BrailleCodeCheck, - gCreditsEntry_AustralianBrailleAuthority, - gCreditsEntry_RoyalNewZealandFederationBlind, - _, - }, - { - gCreditsEntry_SpecialThanks, - gCreditsEntry_HiroyukiUesugi, - gCreditsEntry_MotoyasuTojima, - gCreditsEntry_NicolaPrattBarlow, - gCreditsEntry_ShellieDow, - }, - { - _, - gCreditsEntry_TaskManagers, - gCreditsEntry_AzusaTajima, - gCreditsEntry_ShusakuEgami, - _, - }, - { - gCreditsEntry_Producers, - gCreditsEntry_HiroyukiJinnai, - gCreditsEntry_HitoshiYamagami, - gCreditsEntry_GakujiNomoto, - gCreditsEntry_HiroakiTsuru, - }, - { - _, - gCreditsEntry_ExecutiveDirector, - gCreditsEntry_SatoshiTajiri, - _, - _, - }, - { - _, - gCreditsEntry_ExecProducers, - gCreditsEntry_SatoruIwata, - _, - _, - }, - { - _, - gCreditsEntry_ExecProducers, - gCreditsEntry_TsunekazIshihara, - _, - _, - }, -}; -#undef _ +#include "data/credits.h" static const struct BgTemplate sBackgroundTemplates[] = { @@ -966,7 +197,7 @@ static const u8 sMonSpritePos[][2] = {136, 36}, }; -static const union AnimCmd gUnknown_085E6F84[] = +static const union AnimCmd sAnim_Player_Slow[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(64, 8), @@ -975,7 +206,7 @@ static const union AnimCmd gUnknown_085E6F84[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_085E6F98[] = +static const union AnimCmd sAnim_Player_Fast[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(64, 4), @@ -984,7 +215,7 @@ static const union AnimCmd gUnknown_085E6F98[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_085E6FAC[] = +static const union AnimCmd sAnim_Player_LookBack[] = { ANIMCMD_FRAME(256, 4), ANIMCMD_FRAME(320, 4), @@ -992,7 +223,7 @@ static const union AnimCmd gUnknown_085E6FAC[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E6FBC[] = +static const union AnimCmd sAnim_Player_LookForward[] = { ANIMCMD_FRAME(384, 30), ANIMCMD_FRAME(320, 30), @@ -1001,15 +232,15 @@ static const union AnimCmd gUnknown_085E6FBC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E6FD0[] = +static const union AnimCmd *const sAnims_Player[] = { - gUnknown_085E6F84, - gUnknown_085E6F98, - gUnknown_085E6FAC, - gUnknown_085E6FBC, + sAnim_Player_Slow, + sAnim_Player_Fast, + sAnim_Player_LookBack, + sAnim_Player_LookForward, }; -static const union AnimCmd gUnknown_085E6FE0[] = +static const union AnimCmd sAnim_Rival_Slow[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(64, 8), @@ -1018,7 +249,7 @@ static const union AnimCmd gUnknown_085E6FE0[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_085E6FF4[] = +static const union AnimCmd sAnim_Rival_Fast[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(64, 4), @@ -1027,31 +258,32 @@ static const union AnimCmd gUnknown_085E6FF4[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_085E7008[] = +static const union AnimCmd sAnim_Rival_Still[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E7010[] = +static const union AnimCmd *const sAnims_Rival[] = { - gUnknown_085E6FE0, - gUnknown_085E6FF4, - gUnknown_085E7008, + sAnim_Rival_Slow, + sAnim_Rival_Fast, + sAnim_Rival_Still, }; -static const struct SpriteSheet gUnknown_085E701C[] = { - { gDecompressionBuffer, 6144, 1001 }, - { NULL }, +#define MONBG_OFFSET (MON_PIC_SIZE * 3) +static const struct SpriteSheet sSpriteSheet_MonBg[] = { + { gDecompressionBuffer, MONBG_OFFSET, TAG_MON_BG }, + {}, }; -static const struct SpritePalette gUnknown_085E702C[] = { - { (const u16 *)(gDecompressionBuffer + 0x1800), 1001 }, - { NULL }, +static const struct SpritePalette sSpritePalette_MonBg[] = { + { (const u16 *)&gDecompressionBuffer[MONBG_OFFSET], TAG_MON_BG }, + {}, }; -static const struct OamData gUnknown_085E703C = +static const struct OamData sOamData_MonBg = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -1066,101 +298,74 @@ static const struct OamData gUnknown_085E703C = .affineParam = 0, }; -static const union AnimCmd gUnknown_085E7044[] = +static const union AnimCmd sAnim_MonBg_Yellow[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E704C[] = +static const union AnimCmd sAnim_MonBg_Red[] = { ANIMCMD_FRAME(64, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E7054[] = +static const union AnimCmd sAnim_MonBg_Blue[] = { ANIMCMD_FRAME(128, 8), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E705C[] = +static const union AnimCmd *const sAnims_MonBg[] = { - gUnknown_085E7044, - gUnknown_085E704C, - gUnknown_085E7054, + [POS_LEFT] = sAnim_MonBg_Yellow, + [POS_CENTER] = sAnim_MonBg_Red, + [POS_RIGHT] = sAnim_MonBg_Blue, }; -static const struct SpriteTemplate gUnknown_085E7068 = +static const struct SpriteTemplate sSpriteTemplate_CreditsMonBg = { - .tileTag = 1001, - .paletteTag = 1001, - .oam = &gUnknown_085E703C, - .anims = gUnknown_085E705C, + .tileTag = TAG_MON_BG, + .paletteTag = TAG_MON_BG, + .oam = &sOamData_MonBg, + .anims = sAnims_MonBg, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81772B8, + .callback = SpriteCB_CreditsMonBg, }; -static void Task_WaitPaletteFade(u8 taskIdA); -static void Task_ProgressCreditTasks(u8 taskIdA); -static void sub_8175808(u8 taskIdA); -static void c2_080C9BFC(u8 taskIdA); -static void Task_CreditsLoadGrassScene(u8 taskIdA); -static void sub_81758A4(u8 taskIdA); -static void Task_CreditsTheEnd1(u8 taskIdA); -static void Task_CreditsTheEnd2(u8 taskIdA); -static void Task_CreditsTheEnd3(u8 taskIdA); -static void Task_CreditsTheEnd4(u8 taskIdA); -static void Task_CreditsTheEnd5(u8 taskIdA); -static void Task_CreditsTheEnd6(u8 taskIdA); -static void Task_CreditsSoftReset(u8 taskIdA); -static void ResetGpuAndVram(void); -static void sub_8175DA0(u8 taskIdB); -static u8 CheckChangeScene(u8 page, u8 taskIdA); -static void sub_81760FC(u8 taskIdA); -static void sub_817651C(u8 taskIdA); -static void sub_817624C(u8 taskIdA); -static bool8 sub_8176AB0(u8 data, u8 taskIdA); -static void ResetCreditsTasks(u8 taskIdA); -static void LoadTheEndScreen(u16, u16, u16); -static void sub_8176E40(u16 arg0, u16 palette); -static void sub_8176EE8(struct Sprite *sprite); -static void sub_8176F90(struct Sprite *sprite); -static u8 MakeMonSprite(u16 species, s16 x, s16 y, u16 position); -static void DeterminePokemonToShow(void); - -static void CreditsVBlankCallback(void) +static void VBlankCB_Credits(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -static void CB2_RunCreditsSequence(void) +static void CB2_Credits(void) { RunTasks(); AnimateSprites(); if ((JOY_HELD(B_BUTTON)) - && gHasHallOfFameRecords != 0 - && gTasks[gUnknown_0203BCE2].func == Task_ProgressCreditTasks) + && gHasHallOfFameRecords + && gTasks[sSavedTaskId].func == Task_CreditsMain) { - CreditsVBlankCallback(); + // Speed up credits + VBlankCB_Credits(); RunTasks(); AnimateSprites(); - gUnknown_0203BCE5 = 1; + sUsedSpeedUp = TRUE; } BuildOamBuffer(); UpdatePaletteFade(); } -static void sub_8175548(void) +static void InitCreditsBgsAndWindows(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sBackgroundTemplates, 1); + InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE)); - LoadPalette(gUnknown_085E56F0, 0x80, 0x40); + LoadPalette(sCredits_Pal, 0x80, 64); InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); PutWindowTilemap(0); @@ -1168,7 +373,7 @@ static void sub_8175548(void) ShowBg(0); } -static void sub_81755A4(void) +static void FreeCreditsBgsAndWindows(void) { void *ptr; FreeAllWindowBuffers(); @@ -1182,153 +387,153 @@ static void PrintCreditsText(const u8 *string, u8 y, bool8 isTitle) u8 x; u8 color[3]; - color[0] = 0; + color[0] = TEXT_COLOR_TRANSPARENT; if (isTitle == TRUE) { - color[1] = 3; - color[2] = 4; + color[1] = TEXT_COLOR_LIGHT_GRAY; + color[2] = TEXT_COLOR_RED; } else { - color[1] = 1; - color[2] = 2; + color[1] = TEXT_COLOR_WHITE; + color[2] = TEXT_COLOR_DARK_GRAY; } - x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, 0xF0, 1); + x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, DISPLAY_WIDTH, 1); AddTextPrinterParameterized4(0, 1, x, y, 1, 0, color, -1, string); } +#define tMainTaskId data[1] + void CB2_StartCreditsSequence(void) { - u8 taskIdA; - s16 taskIdC; - u8 taskIdB; + u8 taskId; + s16 bikeTaskId; + u8 pageTaskId; ResetGpuAndVram(); SetVBlankCallback(NULL); InitHeap(gHeap, HEAP_SIZE); ResetPaletteFade(); ResetTasks(); - sub_8175548(); + InitCreditsBgsAndWindows(); - taskIdA = CreateTask(Task_WaitPaletteFade, 0); + taskId = CreateTask(Task_WaitPaletteFade, 0); - gTasks[taskIdA].data[TDA_4] = 0; - gTasks[taskIdA].data[TDA_7] = 0; - gTasks[taskIdA].data[TDA_11] = 0; - gTasks[taskIdA].data[TDA_13] = 1; + gTasks[taskId].tEndCredits = FALSE; + gTasks[taskId].tSceneNum = SCENE_OCEAN_MORNING; + gTasks[taskId].tNextMode = MODE_NONE; + gTasks[taskId].tCurrentMode = MODE_BIKE_SCENE; while (TRUE) { - if (sub_8176AB0(0, taskIdA)) + if (LoadBikeScene(SCENE_OCEAN_MORNING, taskId)) break; } - taskIdC = gTasks[taskIdA].data[TDA_TASK_C_ID]; - gTasks[taskIdC].data[TDC_0] = 40; + bikeTaskId = gTasks[taskId].tTaskId_BikeScene; + gTasks[bikeTaskId].tState = 40; SetGpuReg(REG_OFFSET_BG0VOFS, 0xFFFC); - taskIdB = CreateTask(sub_8175DA0, 0); + pageTaskId = CreateTask(Task_UpdatePage, 0); - gTasks[taskIdB].data[TDB_TASK_A_ID] = taskIdA; - gTasks[taskIdA].data[TDA_TASK_B_ID] = taskIdB; + gTasks[pageTaskId].tMainTaskId = taskId; + gTasks[taskId].tTaskId_UpdatePage = pageTaskId; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); EnableInterrupts(INTR_FLAG_VBLANK); - SetVBlankCallback(CreditsVBlankCallback); + SetVBlankCallback(VBlankCB_Credits); m4aSongNumStart(MUS_CREDITS); - SetMainCallback2(CB2_RunCreditsSequence); - gUnknown_0203BCE5 = 0; + SetMainCallback2(CB2_Credits); + sUsedSpeedUp = FALSE; sCreditsData = AllocZeroed(sizeof(struct CreditsData)); DeterminePokemonToShow(); sCreditsData->imgCounter = 0; - sCreditsData->nextImgPos = 0; + sCreditsData->nextImgPos = POS_LEFT; sCreditsData->currShownMon = 0; - gUnknown_0203BCE2 = taskIdA; + sSavedTaskId = taskId; } -static void Task_WaitPaletteFade(u8 taskIdA) +static void Task_WaitPaletteFade(u8 taskId) { if (!gPaletteFade.active) - gTasks[taskIdA].func = Task_ProgressCreditTasks; + gTasks[taskId].func = Task_CreditsMain; } -static void Task_ProgressCreditTasks(u8 taskIdA) +static void Task_CreditsMain(u8 taskId) { - u16 data1; + u16 mode; - if (gTasks[taskIdA].data[TDA_4]) + if (gTasks[taskId].tEndCredits) { - s16 taskIdC; + s16 bikeTaskId = gTasks[taskId].tTaskId_BikeScene; + gTasks[bikeTaskId].tState = 30; - taskIdC = gTasks[taskIdA].data[TDA_TASK_C_ID]; - gTasks[taskIdC].data[TDC_0] = 30; - - gTasks[taskIdA].data[TDA_12] = 0x100; - gTasks[taskIdA].func = Task_CreditsTheEnd1; + gTasks[taskId].tTheEndDelay = 256; + gTasks[taskId].func = Task_CreditsTheEnd1; return; } - gUnknown_0203BCE0 = 0; - data1 = gTasks[taskIdA].data[TDA_11]; + sUnkVar = 0; + mode = gTasks[taskId].tNextMode; - if (gTasks[taskIdA].data[TDA_11] == 1) + if (gTasks[taskId].tNextMode == MODE_BIKE_SCENE) { - gTasks[taskIdA].data[TDA_13] = data1; - gTasks[taskIdA].data[TDA_11] = 0; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[taskIdA].func = sub_8175808; + // Start a bike cutscene + gTasks[taskId].tCurrentMode = mode; + gTasks[taskId].tNextMode = MODE_NONE; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_ReadyBikeScene; } - else if (gTasks[taskIdA].data[TDA_11] == 2) + else if (gTasks[taskId].tNextMode == MODE_SHOW_MONS) { - gTasks[taskIdA].data[TDA_13] = data1; - gTasks[taskIdA].data[TDA_11] = 0; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[taskIdA].func = sub_81758A4; + // Start a Pokémon interlude + gTasks[taskId].tCurrentMode = mode; + gTasks[taskId].tNextMode = MODE_NONE; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_ReadyShowMons; } } -static void sub_8175808(u8 taskIdA) +static void Task_ReadyBikeScene(u8 taskId) { if (!gPaletteFade.active) { SetGpuReg(REG_OFFSET_DISPCNT, 0); - ResetCreditsTasks(taskIdA); - gTasks[taskIdA].func = c2_080C9BFC; + ResetCreditsTasks(taskId); + gTasks[taskId].func = Task_SetBikeScene; } } -static void c2_080C9BFC(u8 taskIdA) +static void Task_SetBikeScene(u8 taskId) { - u16 backup; - SetVBlankCallback(NULL); - if (sub_8176AB0(gTasks[taskIdA].data[TDA_7], taskIdA)) + if (LoadBikeScene(gTasks[taskId].tSceneNum, taskId)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); EnableInterrupts(INTR_FLAG_VBLANK); - SetVBlankCallback(CreditsVBlankCallback); - gTasks[taskIdA].func = Task_WaitPaletteFade; + SetVBlankCallback(VBlankCB_Credits); + gTasks[taskId].func = Task_WaitPaletteFade; } } -static void sub_81758A4(u8 taskIdA) +static void Task_ReadyShowMons(u8 taskId) { if (!gPaletteFade.active) { SetGpuReg(REG_OFFSET_DISPCNT, 0); - ResetCreditsTasks(taskIdA); - gTasks[taskIdA].func = Task_CreditsLoadGrassScene; + ResetCreditsTasks(taskId); + gTasks[taskId].func = Task_LoadShowMons; } } -static void Task_CreditsLoadGrassScene(u8 taskIdA) +static void Task_LoadShowMons(u8 taskId) { switch (gMain.state) { @@ -1346,32 +551,32 @@ static void Task_CreditsLoadGrassScene(u8 taskIdA) LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(7))); LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2); - for (i = 0; i < 0x800; i++) + for (i = 0; i < MON_PIC_SIZE; i++) gDecompressionBuffer[i] = 0x11; - for (i = 0; i < 0x800; i++) - (gDecompressionBuffer + 0x800)[i] = 0x22; - for (i = 0; i < 0x800; i++) - (gDecompressionBuffer + 0x1000)[i] = 0x33; + for (i = 0; i < MON_PIC_SIZE; i++) + (gDecompressionBuffer + MON_PIC_SIZE)[i] = 0x22; + for (i = 0; i < MON_PIC_SIZE; i++) + (gDecompressionBuffer + MON_PIC_SIZE * 2)[i] = 0x33; - temp = (u16 *)(&gDecompressionBuffer[0x1800]); + temp = (u16 *)(&gDecompressionBuffer[MONBG_OFFSET]); temp[0] = RGB_BLACK; temp[1] = RGB(31, 31, 20); // light yellow temp[2] = RGB(31, 20, 20); // light red temp[3] = RGB(20, 20, 31); // light blue - LoadSpriteSheet(gUnknown_085E701C); - LoadSpritePalette(gUnknown_085E702C); + LoadSpriteSheet(sSpriteSheet_MonBg); + LoadSpritePalette(sSpritePalette_MonBg); - gMain.state += 1; + gMain.state++; break; } case 1: - gTasks[taskIdA].data[TDA_TASK_D_ID] = CreateTask(sub_81760FC, 0); - gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_STATE] = 1; - gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_TASK_A_ID] = taskIdA; - gTasks[gTasks[taskIdA].data[TDA_TASK_D_ID]].data[TDD_2] = gTasks[taskIdA].data[TDA_7]; + gTasks[taskId].tTaskId_ShowMons = CreateTask(Task_ShowMons, 0); + gTasks[gTasks[taskId].tTaskId_ShowMons].tState = 1; + gTasks[gTasks[taskId].tTaskId_ShowMons].tMainTaskId = taskId; + gTasks[gTasks[taskId].tTaskId_ShowMons].data[2] = gTasks[taskId].tSceneNum; // data[2] never read - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); SetGpuReg(REG_OFFSET_BG3HOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 32); SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) @@ -1386,41 +591,43 @@ static void Task_CreditsLoadGrassScene(u8 taskIdA) | DISPCNT_OBJ_ON); gMain.state = 0; - gUnknown_0203BD28 = 0; - gTasks[taskIdA].func = Task_WaitPaletteFade; + gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_NORMAL; + gTasks[taskId].func = Task_WaitPaletteFade; break; } } -static void Task_CreditsTheEnd1(u8 taskIdA) +static void Task_CreditsTheEnd1(u8 taskId) { - if (gTasks[taskIdA].data[TDA_12]) + if (gTasks[taskId].tTheEndDelay) { - gTasks[taskIdA].data[TDA_12] -= 1; + gTasks[taskId].tTheEndDelay--; return; } - BeginNormalPaletteFade(0xFFFFFFFF, 12, 0, 16, RGB_BLACK); - gTasks[taskIdA].func = Task_CreditsTheEnd2; + BeginNormalPaletteFade(PALETTES_ALL, 12, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_CreditsTheEnd2; } -static void Task_CreditsTheEnd2(u8 taskIdA) +static void Task_CreditsTheEnd2(u8 taskId) { if (!gPaletteFade.active) { - ResetCreditsTasks(taskIdA); - gTasks[taskIdA].func = Task_CreditsTheEnd3; + ResetCreditsTasks(taskId); + gTasks[taskId].func = Task_CreditsTheEnd3; } } -static void Task_CreditsTheEnd3(u8 taskIdA) +#define tDelay data[0] + +static void Task_CreditsTheEnd3(u8 taskId) { ResetGpuAndVram(); ResetPaletteFade(); LoadTheEndScreen(0, 0x3800, 0); ResetSpriteData(); FreeAllSpritePalettes(); - BeginNormalPaletteFade(0xFFFFFFFF, 8, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 8, 16, 0, RGB_BLACK); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) @@ -1432,60 +639,62 @@ static void Task_CreditsTheEnd3(u8 taskIdA) | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); - gTasks[taskIdA].data[TDA_0] = 235; //set this to 215 to actually show "THE END" in time to the last song beat - gTasks[taskIdA].func = Task_CreditsTheEnd4; + gTasks[taskId].tDelay = 235; //set this to 215 to actually show "THE END" in time to the last song beat + gTasks[taskId].func = Task_CreditsTheEnd4; } -static void Task_CreditsTheEnd4(u8 taskIdA) +static void Task_CreditsTheEnd4(u8 taskId) { - if (gTasks[taskIdA].data[TDA_0]) + if (gTasks[taskId].tDelay) { - gTasks[taskIdA].data[TDA_0] -= 1; + gTasks[taskId].tDelay--; return; } - BeginNormalPaletteFade(0xFFFFFFFF, 6, 0, 16, RGB_BLACK); - gTasks[taskIdA].func = Task_CreditsTheEnd5; + BeginNormalPaletteFade(PALETTES_ALL, 6, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_CreditsTheEnd5; } -static void Task_CreditsTheEnd5(u8 taskIdA) +static void Task_CreditsTheEnd5(u8 taskId) { if (!gPaletteFade.active) { - sub_8176E40(0x3800, 0); + DrawTheEnd(0x3800, 0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_BLACK); - gTasks[taskIdA].data[TDA_0] = 7200; - gTasks[taskIdA].func = Task_CreditsTheEnd6; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0, RGB_BLACK); + gTasks[taskId].tDelay = 7200; + gTasks[taskId].func = Task_CreditsTheEnd6; } } -static void Task_CreditsTheEnd6(u8 taskIdA) +static void Task_CreditsTheEnd6(u8 taskId) { if (!gPaletteFade.active) { - if (gTasks[taskIdA].data[TDA_0] == 0 || gMain.newKeys) + if (gTasks[taskId].tDelay == 0 || gMain.newKeys) { FadeOutBGM(4); - BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 16, RGB_WHITEALPHA); - gTasks[taskIdA].func = Task_CreditsSoftReset; + BeginNormalPaletteFade(PALETTES_ALL, 8, 0, 16, RGB_WHITEALPHA); + gTasks[taskId].func = Task_CreditsSoftReset; return; } - if (gTasks[taskIdA].data[TDA_0] == 7144) + if (gTasks[taskId].tDelay == 7144) FadeOutBGM(8); - if (gTasks[taskIdA].data[TDA_0] == 6840) + if (gTasks[taskId].tDelay == 6840) m4aSongNumStart(MUS_END); - gTasks[taskIdA].data[TDA_0] -= 1; + gTasks[taskId].tDelay--; } } -static void Task_CreditsSoftReset(u8 taskIdA) +#undef tDelay + +static void Task_CreditsSoftReset(u8 taskId) { if (!gPaletteFade.active) - SoftReset(0xFF); + SoftReset(RESET_ALL); } static void ResetGpuAndVram(void) @@ -1510,11 +719,14 @@ static void ResetGpuAndVram(void) DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); } -static void sub_8175DA0(u8 taskIdB) +#define tCurrentPage data[2] +#define tDelay data[3] + +static void Task_UpdatePage(u8 taskId) { int i; - switch (gTasks[taskIdB].data[TDB_0]) + switch (gTasks[taskId].tState) { case 0: case 6: @@ -1524,419 +736,450 @@ static void sub_8175DA0(u8 taskIdB) default: if (!gPaletteFade.active) { - gTasks[taskIdB].data[TDB_0] = 1; - gTasks[taskIdB].data[TDB_3] = 0x48; - gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 0; - gUnknown_0203BCE0 = 0; + gTasks[taskId].tState = 1; + gTasks[taskId].tDelay = 72; + gTasks[gTasks[taskId].tMainTaskId].tPrintedPage = FALSE; + sUnkVar = 0; } return; case 1: - if (gTasks[taskIdB].data[TDB_3] != 0) + if (gTasks[taskId].tDelay != 0) { - gTasks[taskIdB].data[TDB_3] -= 1; + gTasks[taskId].tDelay--; return; } - gTasks[taskIdB].data[TDB_0] += 1; + gTasks[taskId].tState++; return; case 2: - if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == Task_ProgressCreditTasks) + if (gTasks[gTasks[taskId].tMainTaskId].func == Task_CreditsMain) { - if (gTasks[taskIdB].data[TDB_CURRENT_PAGE] < PAGE_COUNT) + if (gTasks[taskId].tCurrentPage < PAGE_COUNT) { - for (i = 0; i < 5; i++) + // Print text for this Credits page + for (i = 0; i < ENTRIES_PER_PAGE; i++) PrintCreditsText( - gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text, + sCreditsEntryPointerTable[gTasks[taskId].tCurrentPage][i]->text, 5 + i * 16, - gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->isTitle); - + sCreditsEntryPointerTable[gTasks[taskId].tCurrentPage][i]->isTitle); CopyWindowToVram(0, 2); - gTasks[taskIdB].data[TDB_CURRENT_PAGE] += 1; - gTasks[taskIdB].data[TDB_0] += 1; + gTasks[taskId].tCurrentPage++; + gTasks[taskId].tState++; - gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 1; + gTasks[gTasks[taskId].tMainTaskId].tPrintedPage = TRUE; - if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_13] == 1) - BeginNormalPaletteFade(0x00000300, 0, 16, 0, COLOR_LIGHT_GREEN); - else - BeginNormalPaletteFade(0x00000300, 0, 16, 0, COLOR_DARK_GREEN); + if (gTasks[gTasks[taskId].tMainTaskId].tCurrentMode == MODE_BIKE_SCENE) + BeginNormalPaletteFade(0x300, 0, 16, 0, COLOR_LIGHT_GREEN); + else // MODE_SHOW_MONS + BeginNormalPaletteFade(0x300, 0, 16, 0, COLOR_DARK_GREEN); return; } - gTasks[taskIdB].data[TDB_0] = 10; + + // Reached final page of Credits, end task + gTasks[taskId].tState = 10; return; } - gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 0; + gTasks[gTasks[taskId].tMainTaskId].tPrintedPage = FALSE; return; case 3: if (!gPaletteFade.active) { - gTasks[taskIdB].data[TDB_3] = 0x73; - gTasks[taskIdB].data[TDB_0] += 1; + gTasks[taskId].tDelay = 115; + gTasks[taskId].tState++; } return; case 4: - if (gTasks[taskIdB].data[TDB_3] != 0) + if (gTasks[taskId].tDelay != 0) { - gTasks[taskIdB].data[TDB_3] -= 1; + gTasks[taskId].tDelay--; return; } - if (CheckChangeScene((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID])) + if (CheckChangeScene((u8)gTasks[taskId].tCurrentPage, (u8)gTasks[taskId].tMainTaskId)) { - gTasks[taskIdB].data[TDB_0] += 1; + gTasks[taskId].tState++; return; } - gTasks[taskIdB].data[TDB_0] += 1; - if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_13] == 1) - BeginNormalPaletteFade(0x00000300, 0, 0, 16, COLOR_LIGHT_GREEN); - else - BeginNormalPaletteFade(0x00000300, 0, 0, 16, COLOR_DARK_GREEN); + gTasks[taskId].tState++; + if (gTasks[gTasks[taskId].tMainTaskId].tCurrentMode == MODE_BIKE_SCENE) + BeginNormalPaletteFade(0x300, 0, 0, 16, COLOR_LIGHT_GREEN); + else // MODE_SHOW_MONS + BeginNormalPaletteFade(0x300, 0, 0, 16, COLOR_DARK_GREEN); return; case 5: if (!gPaletteFade.active) { + // Still more Credits pages to show, return to state 2 to print FillWindowPixelBuffer(0, PIXEL_FILL(0)); CopyWindowToVram(0, 2); - gTasks[taskIdB].data[TDB_0] = 2; + gTasks[taskId].tState = 2; } return; case 10: - gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_4] = 1; - DestroyTask(taskIdB); - sub_81755A4(); + gTasks[gTasks[taskId].tMainTaskId].tEndCredits = TRUE; + DestroyTask(taskId); + FreeCreditsBgsAndWindows(); FREE_AND_SET_NULL(sCreditsData); return; } } -static u8 CheckChangeScene(u8 page, u8 taskIdA) -{ - // Starts with bike + ocean + morning +#undef tDelay - if (page == 6) +#define PAGE_INTERVAL (PAGE_COUNT / 9) // 9 scenes (5 bike scenes, 4 Pokémon interludes) + +static u8 CheckChangeScene(u8 page, u8 taskId) +{ + // Starts with bike + ocean + morning (SCENE_OCEAN_MORNING) + + if (page == PAGE_INTERVAL * 1) { - // Grass patch - gTasks[taskIdA].data[TDA_11] = 2; + // Pokémon interlude + gTasks[taskId].tNextMode = MODE_SHOW_MONS; } - if (page == 12) + if (page == PAGE_INTERVAL * 2) { // Bike + ocean + sunset - gTasks[taskIdA].data[TDA_7] = 1; - gTasks[taskIdA].data[TDA_11] = 1; + gTasks[taskId].tSceneNum = SCENE_OCEAN_SUNSET; + gTasks[taskId].tNextMode = MODE_BIKE_SCENE; } - if (page == 18) + if (page == PAGE_INTERVAL * 3) { - // Grass patch - gTasks[taskIdA].data[TDA_11] = 2; + // Pokémon interlude + gTasks[taskId].tNextMode = MODE_SHOW_MONS; } - if (page == 24) + if (page == PAGE_INTERVAL * 4) { // Bike + forest + sunset - gTasks[taskIdA].data[TDA_7] = 2; - gTasks[taskIdA].data[TDA_11] = 1; + gTasks[taskId].tSceneNum = SCENE_FOREST_RIVAL_ARRIVE; + gTasks[taskId].tNextMode = MODE_BIKE_SCENE; } - if (page == 30) + if (page == PAGE_INTERVAL * 5) { - // Grass patch - gTasks[taskIdA].data[TDA_11] = 2; + // Pokémon interlude + gTasks[taskId].tNextMode = MODE_SHOW_MONS; } - if (page == 36) + if (page == PAGE_INTERVAL * 6) { // Bike + forest + sunset - gTasks[taskIdA].data[TDA_7] = 3; - gTasks[taskIdA].data[TDA_11] = 1; + gTasks[taskId].tSceneNum = SCENE_FOREST_CATCH_RIVAL; + gTasks[taskId].tNextMode = MODE_BIKE_SCENE; } - if (page == 42) + if (page == PAGE_INTERVAL * 7) { - // Grass patch - gTasks[taskIdA].data[TDA_11] = 2; + // Pokémon interlude + gTasks[taskId].tNextMode = MODE_SHOW_MONS; } - if (page == 48) + if (page == PAGE_INTERVAL * 8) { // Bike + town + night - gTasks[taskIdA].data[TDA_7] = 4; - gTasks[taskIdA].data[TDA_11] = 1; + gTasks[taskId].tSceneNum = SCENE_CITY_NIGHT; + gTasks[taskId].tNextMode = MODE_BIKE_SCENE; } - if (gTasks[taskIdA].data[TDA_11] != 0) + if (gTasks[taskId].tNextMode != MODE_NONE) { - // Returns true if changed? + // Returns true if changed return TRUE; } return FALSE; } -static void sub_81760FC(u8 taskIdD) -{ - u8 r2; +#define tDelay data[3] - switch (gTasks[taskIdD].data[TDD_STATE]) +static void Task_ShowMons(u8 taskId) +{ + u8 spriteId; + + switch (gTasks[taskId].tState) { case 0: break; case 1: - if (sCreditsData->nextImgPos == 0 && gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].data[TDA_14] == 0) + if (sCreditsData->nextImgPos == POS_LEFT && gTasks[gTasks[taskId].tMainTaskId].tPrintedPage == FALSE) break; - gTasks[taskIdD].data[TDD_STATE]++; + gTasks[taskId].tState++; break; case 2: - if (sCreditsData->imgCounter == NUM_MON_SLIDES || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != Task_ProgressCreditTasks) + if (sCreditsData->imgCounter == NUM_MON_SLIDES || gTasks[gTasks[taskId].tMainTaskId].func != Task_CreditsMain) break; - r2 = MakeMonSprite(sCreditsData->monToShow[sCreditsData->currShownMon], sMonSpritePos[sCreditsData->nextImgPos][0], sMonSpritePos[sCreditsData->nextImgPos][1], sCreditsData->nextImgPos); + spriteId = CreateCreditsMonSprite(sCreditsData->monToShow[sCreditsData->currShownMon], + sMonSpritePos[sCreditsData->nextImgPos][0], + sMonSpritePos[sCreditsData->nextImgPos][1], + sCreditsData->nextImgPos); if (sCreditsData->currShownMon < sCreditsData->numMonToShow - 1) { sCreditsData->currShownMon++; - gSprites[r2].data[3] = 50; + gSprites[spriteId].data[3] = 50; } else { sCreditsData->currShownMon = 0; - gSprites[r2].data[3] = 512; + gSprites[spriteId].data[3] = 512; } sCreditsData->imgCounter++; - if (sCreditsData->nextImgPos == 2) - sCreditsData->nextImgPos = 0; + + if (sCreditsData->nextImgPos == POS_RIGHT) + sCreditsData->nextImgPos = POS_LEFT; else sCreditsData->nextImgPos++; - gTasks[taskIdD].data[TDD_3] = 50; - gTasks[taskIdD].data[TDD_STATE]++; + + gTasks[taskId].tDelay = 50; + gTasks[taskId].tState++; break; case 3: - if (gTasks[taskIdD].data[TDD_3] != 0) - gTasks[taskIdD].data[TDD_3]--; + if (gTasks[taskId].tDelay != 0) + gTasks[taskId].tDelay--; else - gTasks[taskIdD].data[TDD_STATE] = 1; + gTasks[taskId].tState = 1; break; } } -static void sub_817624C(u8 taskIdC) +#undef tMainTaskId +#undef tDelay + +#define tPlayer data[2] +#define tRival data[3] +#define tDelay data[4] +#define tSinIdx data[5] + +static void Task_BikeScene(u8 taskId) { - switch (gTasks[taskIdC].data[TDC_0]) + switch (gTasks[taskId].tState) { case 0: - gUnknown_0203BD26 = Sin((gTasks[taskIdC].data[TDC_5] >> 1) & 0x7F, 12); - gTasks[taskIdC].data[TDC_5]++; + gIntroCredits_MovingSceneryVOffset = Sin((gTasks[taskId].tSinIdx >> 1) & 0x7F, 12); + gTasks[taskId].tSinIdx++; break; case 1: - if (gUnknown_0203BD26 != 0) + if (gIntroCredits_MovingSceneryVOffset != 0) { - gUnknown_0203BD26 = Sin((gTasks[taskIdC].data[TDC_5] >> 1) & 0x7F, 12); - gTasks[taskIdC].data[TDC_5]++; + gIntroCredits_MovingSceneryVOffset = Sin((gTasks[taskId].tSinIdx >> 1) & 0x7F, 12); + gTasks[taskId].tSinIdx++; } else { - gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 2; - gTasks[taskIdC].data[TDC_5] = 0; - gTasks[taskIdC].data[TDC_0]++; + gSprites[gTasks[taskId].tPlayer].data[0] = 2; + gTasks[taskId].tSinIdx = 0; + gTasks[taskId].tState++; } break; case 2: - if (gTasks[taskIdC].data[TDC_5] < 64) + if (gTasks[taskId].tSinIdx < 64) { - gTasks[taskIdC].data[TDC_5]++; - gUnknown_0203BD26 = Sin(gTasks[taskIdC].data[TDC_5] & 0x7F, 20); + gTasks[taskId].tSinIdx++; + gIntroCredits_MovingSceneryVOffset = Sin(gTasks[taskId].tSinIdx & 0x7F, 20); } else { - gTasks[taskIdC].data[TDC_0]++; + gTasks[taskId].tState++; } break; case 3: - gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 3; - gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 1; - gTasks[taskIdC].data[TDC_4] = 120; - gTasks[taskIdC].data[TDC_0]++; + gSprites[gTasks[taskId].tPlayer].data[0] = 3; + gSprites[gTasks[taskId].tRival].data[0] = 1; + gTasks[taskId].tDelay = 120; + gTasks[taskId].tState++; break; case 4: - if (gTasks[taskIdC].data[TDC_4] != 0) + if (gTasks[taskId].tDelay != 0) { - gTasks[taskIdC].data[TDC_4]--; + gTasks[taskId].tDelay--; } else { - gTasks[taskIdC].data[TDC_5] = 64; - gTasks[taskIdC].data[TDC_0]++; + gTasks[taskId].tSinIdx = 64; + gTasks[taskId].tState++; } break; case 5: - if (gTasks[taskIdC].data[TDC_5] > 0) + if (gTasks[taskId].tSinIdx > 0) { - gTasks[taskIdC].data[TDC_5]--; - gUnknown_0203BD26 = Sin(gTasks[taskIdC].data[TDC_5] & 0x7F, 20); + gTasks[taskId].tSinIdx--; + gIntroCredits_MovingSceneryVOffset = Sin(gTasks[taskId].tSinIdx & 0x7F, 20); } else { - gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 1; - gTasks[taskIdC].data[TDC_0]++; + gSprites[gTasks[taskId].tPlayer].data[0] = 1; + gTasks[taskId].tState++; } break; case 6: - gTasks[taskIdC].data[TDC_0] = 50; + gTasks[taskId].tState = 50; break; case 10: - gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 2; - gTasks[taskIdC].data[TDC_0] = 50; + gSprites[gTasks[taskId].tRival].data[0] = 2; + gTasks[taskId].tState = 50; break; case 20: - gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 4; - gTasks[taskIdC].data[TDC_0] = 50; + gSprites[gTasks[taskId].tPlayer].data[0] = 4; + gTasks[taskId].tState = 50; break; case 30: - gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 5; - gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 3; - gTasks[taskIdC].data[TDC_0] = 50; + gSprites[gTasks[taskId].tPlayer].data[0] = 5; + gSprites[gTasks[taskId].tRival].data[0] = 3; + gTasks[taskId].tState = 50; break; case 50: - gTasks[taskIdC].data[TDC_0] = 0; + gTasks[taskId].tState = 0; break; } } -static void sub_817651C(u8 taskIdE) -{ - s16 taskIdC; +#define TIMER_STOP 0x7FFF +#define tTimer data[1] +#define tMainTaskId data[2] - switch (gTasks[taskIdE].data[TDE_0]) +static void Task_CycleSceneryPalette(u8 taskId) +{ + s16 bikeTaskId; + + switch (gTasks[taskId].tState) { default: - case 0: - if (gTasks[taskIdE].data[TDE_1] != 0x7FFF) + case SCENE_OCEAN_MORNING: + if (gTasks[taskId].tTimer != TIMER_STOP) { - - if (gTasks[gTasks[gTasks[taskIdE].data[TDE_TASK_A_ID]].data[TDA_TASK_B_ID]].data[TDB_CURRENT_PAGE] == 2) + if (gTasks[gTasks[gTasks[taskId].tMainTaskId].tTaskId_UpdatePage].tCurrentPage == 2) { - gTasks[gTasks[gTasks[taskIdE].data[TDE_TASK_A_ID]].data[TDA_TASK_C_ID]].data[TDC_0] = 20; - gTasks[taskIdE].data[TDE_1] = 0x7FFF; + gTasks[gTasks[gTasks[taskId].tMainTaskId].tTaskId_BikeScene].tState = 20; + gTasks[taskId].tTimer = TIMER_STOP; } } - sub_817B540(0); + CycleSceneryPalette(0); break; - case 1: - sub_817B540(0); + case SCENE_OCEAN_SUNSET: + CycleSceneryPalette(0); break; - case 2: - if (gTasks[taskIdE].data[TDE_1] != 0x7FFF) + case SCENE_FOREST_RIVAL_ARRIVE: + if (gTasks[taskId].tTimer != TIMER_STOP) { - taskIdC = gTasks[gTasks[taskIdE].data[TDE_TASK_A_ID]].data[TDA_TASK_C_ID]; + bikeTaskId = gTasks[gTasks[taskId].tMainTaskId].tTaskId_BikeScene; // Floor to multiple of 128 - if ((gTasks[taskIdC].data[TDC_5] & -128) == 640) + if ((gTasks[bikeTaskId].tSinIdx & -128) == 640) { - gTasks[taskIdC].data[TDC_0] = 1; - gTasks[taskIdE].data[TDE_1] = 0x7FFF; + gTasks[bikeTaskId].tState = 1; + gTasks[taskId].tTimer = TIMER_STOP; } } - sub_817B540(1); + CycleSceneryPalette(1); break; - case 3: - if (gTasks[taskIdE].data[TDE_1] != 0x7FFF) + case SCENE_FOREST_CATCH_RIVAL: + if (gTasks[taskId].tTimer != TIMER_STOP) { - if (gTasks[taskIdE].data[TDE_1] == 0x248) + if (gTasks[taskId].tTimer == 584) { - gTasks[gTasks[gTasks[taskIdE].data[TDE_TASK_A_ID]].data[TDA_TASK_C_ID]].data[TDC_0] = 10; - gTasks[taskIdE].data[TDE_1] = 0x7FFF; + gTasks[gTasks[gTasks[taskId].tMainTaskId].tTaskId_BikeScene].tState = 10; + gTasks[taskId].tTimer = TIMER_STOP; } else { - gTasks[taskIdE].data[TDE_1] += 1; + gTasks[taskId].tTimer++; } } - sub_817B540(1); + CycleSceneryPalette(1); break; - case 4: - sub_817B540(2); + case SCENE_CITY_NIGHT: + CycleSceneryPalette(2); break; } } -static void sub_817664C(u8 data, u8 taskIdA) +static void SetBikeScene(u8 scene, u8 taskId) { - switch (data) + switch (scene) { - case 0: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 272; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(0, 0x2000, 0x20, 8); + case SCENE_OCEAN_MORNING: + gSprites[gTasks[taskId].tPlayerSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tRivalSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tPlayerSpriteId].x = DISPLAY_WIDTH + 32; + gSprites[gTasks[taskId].tRivalSpriteId].x = DISPLAY_WIDTH + 32; + gSprites[gTasks[taskId].tPlayerSpriteId].y = 46; + gSprites[gTasks[taskId].tRivalSpriteId].y = 46; + gSprites[gTasks[taskId].tPlayerSpriteId].data[0] = 0; + gSprites[gTasks[taskId].tRivalSpriteId].data[0] = 0; + gTasks[taskId].tTaskId_BgScenery = CreateBicycleBgAnimationTask(0, 0x2000, 0x20, 8); break; - case 1: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(0, 0x2000, 0x20, 8); + case SCENE_OCEAN_SUNSET: + gSprites[gTasks[taskId].tPlayerSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tRivalSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tPlayerSpriteId].x = 120; + gSprites[gTasks[taskId].tRivalSpriteId].x = DISPLAY_WIDTH + 32; + gSprites[gTasks[taskId].tPlayerSpriteId].y = 46; + gSprites[gTasks[taskId].tRivalSpriteId].y = 46; + gSprites[gTasks[taskId].tPlayerSpriteId].data[0] = 0; + gSprites[gTasks[taskId].tRivalSpriteId].data[0] = 0; + gTasks[taskId].tTaskId_BgScenery = CreateBicycleBgAnimationTask(0, 0x2000, 0x20, 8); break; - case 2: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(1, 0x2000, 0x200, 8); + case SCENE_FOREST_RIVAL_ARRIVE: + gSprites[gTasks[taskId].tPlayerSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tRivalSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tPlayerSpriteId].x = 120; + gSprites[gTasks[taskId].tRivalSpriteId].x = DISPLAY_WIDTH + 32; + gSprites[gTasks[taskId].tPlayerSpriteId].y = 46; + gSprites[gTasks[taskId].tRivalSpriteId].y = 46; + gSprites[gTasks[taskId].tPlayerSpriteId].data[0] = 0; + gSprites[gTasks[taskId].tRivalSpriteId].data[0] = 0; + gTasks[taskId].tTaskId_BgScenery = CreateBicycleBgAnimationTask(1, 0x2000, 0x200, 8); break; - case 3: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = -32; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(1, 0x2000, 0x200, 8); + case SCENE_FOREST_CATCH_RIVAL: + gSprites[gTasks[taskId].tPlayerSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tRivalSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tPlayerSpriteId].x = 120; + gSprites[gTasks[taskId].tRivalSpriteId].x = -32; + gSprites[gTasks[taskId].tPlayerSpriteId].y = 46; + gSprites[gTasks[taskId].tRivalSpriteId].y = 46; + gSprites[gTasks[taskId].tPlayerSpriteId].data[0] = 0; + gSprites[gTasks[taskId].tRivalSpriteId].data[0] = 0; + gTasks[taskId].tTaskId_BgScenery = CreateBicycleBgAnimationTask(1, 0x2000, 0x200, 8); break; - case 4: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 88; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 152; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(2, 0x2000, 0x200, 8); + case SCENE_CITY_NIGHT: + gSprites[gTasks[taskId].tPlayerSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tRivalSpriteId].invisible = FALSE; + gSprites[gTasks[taskId].tPlayerSpriteId].x = 88; + gSprites[gTasks[taskId].tRivalSpriteId].x = 152; + gSprites[gTasks[taskId].tPlayerSpriteId].y = 46; + gSprites[gTasks[taskId].tRivalSpriteId].y = 46; + gSprites[gTasks[taskId].tPlayerSpriteId].data[0] = 0; + gSprites[gTasks[taskId].tRivalSpriteId].data[0] = 0; + gTasks[taskId].tTaskId_BgScenery = CreateBicycleBgAnimationTask(2, 0x2000, 0x200, 8); break; } - gTasks[taskIdA].data[TDA_TASK_E_ID] = CreateTask(sub_817651C, 0); - gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_0] = data; - gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_1] = 0; - gTasks[gTasks[taskIdA].data[TDA_TASK_E_ID]].data[TDE_TASK_A_ID] = taskIdA; + gTasks[taskId].tTaskId_SceneryPal = CreateTask(Task_CycleSceneryPalette, 0); + gTasks[gTasks[taskId].tTaskId_SceneryPal].tState = scene; + gTasks[gTasks[taskId].tTaskId_SceneryPal].tTimer = 0; + gTasks[gTasks[taskId].tTaskId_SceneryPal].tMainTaskId = taskId; - gTasks[taskIdA].data[TDA_TASK_C_ID] = CreateTask(sub_817624C, 0); - gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_0] = 0; - gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_1] = taskIdA; - gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_2] = gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]; - gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_3] = gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]; - gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_4] = 0; + gTasks[taskId].tTaskId_BikeScene = CreateTask(Task_BikeScene, 0); + gTasks[gTasks[taskId].tTaskId_BikeScene].tState = 0; + gTasks[gTasks[taskId].tTaskId_BikeScene].data[1] = taskId; // data[1] is never read + gTasks[gTasks[taskId].tTaskId_BikeScene].tPlayer = gTasks[taskId].tPlayerSpriteId; + gTasks[gTasks[taskId].tTaskId_BikeScene].tRival = gTasks[taskId].tRivalSpriteId; + gTasks[gTasks[taskId].tTaskId_BikeScene].tDelay = 0; - if (data == 2) - gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_5] = 0x45; + if (scene == SCENE_FOREST_RIVAL_ARRIVE) + gTasks[gTasks[taskId].tTaskId_BikeScene].tSinIdx = 69; } -static bool8 sub_8176AB0(u8 data, u8 taskIdA) +#undef tTimer +#undef tDelay +#undef tSinIdx +#undef tRival +#undef tPlayer + +static bool8 LoadBikeScene(u8 scene, u8 taskId) { u8 spriteId; @@ -1958,116 +1201,120 @@ static bool8 sub_8176AB0(u8 data, u8 taskIdA) gMain.state = 1; break; case 1: - gUnknown_0203BD24 = 34; - gUnknown_0203BD26 = 0; - sub_817B1C8(data); - gMain.state += 1; + gIntroCredits_MovingSceneryVBase = 34; + gIntroCredits_MovingSceneryVOffset = 0; + LoadCreditsSceneGraphics(scene); + gMain.state++; break; case 2: if (gSaveBlock2Ptr->playerGender == MALE) { - LoadCompressedSpriteSheet(gUnknown_085F5334); - LoadCompressedSpriteSheet(gUnknown_085F53BC); - LoadCompressedSpriteSheet(gUnknown_085F5354); - LoadSpritePalettes(gUnknown_085F5384); + LoadCompressedSpriteSheet(gSpriteSheet_CreditsBrendan); + LoadCompressedSpriteSheet(gSpriteSheet_CreditsRivalMay); + LoadCompressedSpriteSheet(gSpriteSheet_CreditsBicycle); + LoadSpritePalettes(gSpritePalettes_Credits); - spriteId = intro_create_brendan_sprite(120, 46); - gTasks[taskIdA].data[TDA_PLAYER_CYCLIST] = spriteId; - gSprites[spriteId].callback = sub_8176EE8; - gSprites[spriteId].anims = gUnknown_085E6FD0; + spriteId = CreateIntroBrendanSprite(120, 46); + gTasks[taskId].tPlayerSpriteId = spriteId; + gSprites[spriteId].callback = SpriteCB_Player; + gSprites[spriteId].anims = sAnims_Player; - spriteId = intro_create_may_sprite(272, 46); - gTasks[taskIdA].data[TDA_RIVAL_CYCLIST] = spriteId; - gSprites[spriteId].callback = sub_8176F90; - gSprites[spriteId].anims = gUnknown_085E7010; + spriteId = CreateIntroMaySprite(DISPLAY_WIDTH + 32, 46); + gTasks[taskId].tRivalSpriteId = spriteId; + gSprites[spriteId].callback = SpriteCB_Rival; + gSprites[spriteId].anims = sAnims_Rival; } else { - LoadCompressedSpriteSheet(gUnknown_085F5344); - LoadCompressedSpriteSheet(gUnknown_085F53AC); - LoadCompressedSpriteSheet(gUnknown_085F5354); - LoadSpritePalettes(gUnknown_085F5384); + LoadCompressedSpriteSheet(gSpriteSheet_CreditsMay); + LoadCompressedSpriteSheet(gSpriteSheet_CreditsRivalBrendan); + LoadCompressedSpriteSheet(gSpriteSheet_CreditsBicycle); + LoadSpritePalettes(gSpritePalettes_Credits); - spriteId = intro_create_may_sprite(120, 46); - gTasks[taskIdA].data[TDA_PLAYER_CYCLIST] = spriteId; - gSprites[spriteId].callback = sub_8176EE8; - gSprites[spriteId].anims = gUnknown_085E6FD0; + spriteId = CreateIntroMaySprite(120, 46); + gTasks[taskId].tPlayerSpriteId = spriteId; + gSprites[spriteId].callback = SpriteCB_Player; + gSprites[spriteId].anims = sAnims_Player; - spriteId = intro_create_brendan_sprite(272, 46); - gTasks[taskIdA].data[TDA_RIVAL_CYCLIST] = spriteId; - gSprites[spriteId].callback = sub_8176F90; - gSprites[spriteId].anims = gUnknown_085E7010; + spriteId = CreateIntroBrendanSprite(DISPLAY_WIDTH + 32, 46); + gTasks[taskId].tRivalSpriteId = spriteId; + gSprites[spriteId].callback = SpriteCB_Rival; + gSprites[spriteId].anims = sAnims_Rival; }; - gMain.state += 1; + gMain.state++; break; case 3: - sub_817664C(data, taskIdA); - sub_817B3A8(data); + SetBikeScene(scene, taskId); + SetCreditsSceneBgCnt(scene); gMain.state = 0; return TRUE; } return FALSE; } -static void ResetCreditsTasks(u8 taskIdA) +static void ResetCreditsTasks(u8 taskId) { - if (gTasks[taskIdA].data[TDA_0] != 0) + // Destroy Task_BicycleBgAnimation, if running + if (gTasks[taskId].tTaskId_BgScenery != 0) { - DestroyTask(gTasks[taskIdA].data[TDA_0]); - gTasks[taskIdA].data[TDA_0] = 0; + DestroyTask(gTasks[taskId].tTaskId_BgScenery); + gTasks[taskId].tTaskId_BgScenery = 0; } - if (gTasks[taskIdA].data[TDA_TASK_C_ID] != 0) + // Destroy Task_BikeScene, if running + if (gTasks[taskId].tTaskId_BikeScene != 0) { - DestroyTask(gTasks[taskIdA].data[TDA_TASK_C_ID]); - gTasks[taskIdA].data[TDA_TASK_C_ID] = 0; + DestroyTask(gTasks[taskId].tTaskId_BikeScene); + gTasks[taskId].tTaskId_BikeScene = 0; } - if (gTasks[taskIdA].data[TDA_TASK_E_ID] != 0) + // Destroy Task_CycleSceneryPalette, if running + if (gTasks[taskId].tTaskId_SceneryPal != 0) { - DestroyTask(gTasks[taskIdA].data[TDA_TASK_E_ID]); - gTasks[taskIdA].data[TDA_TASK_E_ID] = 0; + DestroyTask(gTasks[taskId].tTaskId_SceneryPal); + gTasks[taskId].tTaskId_SceneryPal = 0; } - if (gTasks[taskIdA].data[TDA_TASK_D_ID] != 0) + // Destroy Task_ShowMons, if running + if (gTasks[taskId].tTaskId_ShowMons != 0) { - DestroyTask(gTasks[taskIdA].data[TDA_TASK_D_ID]); - gTasks[taskIdA].data[TDA_TASK_D_ID] = 0; + DestroyTask(gTasks[taskId].tTaskId_ShowMons); + gTasks[taskId].tTaskId_ShowMons = 0; } - gUnknown_0203BD28 = 1; + gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_DESTROY; } -static void LoadTheEndScreen(u16 arg0, u16 arg1, u16 arg2) +static void LoadTheEndScreen(u16 arg0, u16 arg1, u16 palOffset) { u16 baseTile; u16 i; - LZ77UnCompVram(gCreditsCopyrightEnd_Gfx, (void *)(VRAM + arg0)); - LoadPalette(gIntroCopyright_Pal, arg2, sizeof(gIntroCopyright_Pal)); + LZ77UnCompVram(sCreditsCopyrightEnd_Gfx, (void *)(VRAM + arg0)); + LoadPalette(gIntroCopyright_Pal, palOffset, sizeof(gIntroCopyright_Pal)); - baseTile = (arg2 / 16) << 12; + baseTile = (palOffset / 16) << 12; for (i = 0; i < 32 * 32; i++) ((u16 *) (VRAM + arg1))[i] = baseTile + 1; } -static u16 sub_8176D78(u8 arg0) +static u16 GetLetterMapTile(u8 baseTiles) { - u16 out = (arg0 & 0x3F) + 80; + u16 out = (baseTiles & 0x3F) + 80; - if (arg0 == 0xFF) + if (baseTiles == 0xFF) return 1; - if (arg0 & (1 << 7)) + if (baseTiles & (1 << 7)) out |= 1 << 11; - if (arg0 & (1 << 6)) + if (baseTiles & (1 << 6)) out |= 1 << 10; return out; } -static void sub_8176DBC(const u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette) +static void DrawLetterMapTiles(const u8 baseTiles[], u8 baseX, u8 baseY, u16 offset, u16 palette) { u8 y, x; const u16 tileOffset = (palette / 16) << 12; @@ -2075,43 +1322,45 @@ static void sub_8176DBC(const u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palet for (y = 0; y < 5; y++) { for (x = 0; x < 3; x++) - ((u16 *) (VRAM + arg3 + (baseY + y) * 64))[baseX + x] = tileOffset + sub_8176D78(arg0[y * 3 + x]); + ((u16 *) (VRAM + offset + (baseY + y) * 64))[baseX + x] = tileOffset + GetLetterMapTile(baseTiles[y * 3 + x]); } } -static void sub_8176E40(u16 arg0, u16 palette) +static void DrawTheEnd(u16 offset, u16 palette) { u16 pos; u16 baseTile = (palette / 16) << 12; for (pos = 0; pos < 32 * 32; pos++) - ((u16 *) (VRAM + arg0))[pos] = baseTile + 1; + ((u16 *) (VRAM + offset))[pos] = baseTile + 1; - sub_8176DBC(sTheEnd_LetterTMap, 3, 7, arg0, palette); - sub_8176DBC(sTheEnd_LetterHMap, 7, 7, arg0, palette); - sub_8176DBC(sTheEnd_LetterEMap, 11, 7, arg0, palette); - sub_8176DBC(sTheEnd_LetterEMap, 16, 7, arg0, palette); - sub_8176DBC(sTheEnd_LetterNMap, 20, 7, arg0, palette); - sub_8176DBC(sTheEnd_LetterDMap, 24, 7, arg0, palette); + DrawLetterMapTiles(sTheEnd_LetterMap_T, 3, 7, offset, palette); + DrawLetterMapTiles(sTheEnd_LetterMap_H, 7, 7, offset, palette); + DrawLetterMapTiles(sTheEnd_LetterMap_E, 11, 7, offset, palette); + DrawLetterMapTiles(sTheEnd_LetterMap_E, 16, 7, offset, palette); + DrawLetterMapTiles(sTheEnd_LetterMap_N, 20, 7, offset, palette); + DrawLetterMapTiles(sTheEnd_LetterMap_D, 24, 7, offset, palette); } -static void sub_8176EE8(struct Sprite *sprite) +#define sState data[0] + +static void SpriteCB_Player(struct Sprite *sprite) { - if (gUnknown_0203BD28 != 0) + if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_NORMAL) { DestroySprite(sprite); return; } - switch (sprite->data[0]) + switch (sprite->sState) { case 0: StartSpriteAnimIfDifferent(sprite, 0); break; case 1: StartSpriteAnimIfDifferent(sprite, 1); - if (sprite->pos1.x > -32) - sprite->pos1.x -= 1; + if (sprite->x > -32) + sprite->x--; break; case 2: StartSpriteAnimIfDifferent(sprite, 2); @@ -2121,104 +1370,107 @@ static void sub_8176EE8(struct Sprite *sprite) break; case 4: StartSpriteAnimIfDifferent(sprite, 0); - if (sprite->pos1.x > 120) - sprite->pos1.x -= 1; + if (sprite->x > 120) + sprite->x--; break; case 5: StartSpriteAnimIfDifferent(sprite, 0); - if (sprite->pos1.x > -32) - sprite->pos1.x -= 1; + if (sprite->x > -32) + sprite->x--; break; } } -static void sub_8176F90(struct Sprite *sprite) +static void SpriteCB_Rival(struct Sprite *sprite) { - if (gUnknown_0203BD28 != 0) + if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_NORMAL) { DestroySprite(sprite); return; } - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->pos2.y = 0; + sprite->y2 = 0; StartSpriteAnimIfDifferent(sprite, 0); break; case 1: - if (sprite->pos1.x > 200) + if (sprite->x > 200) StartSpriteAnimIfDifferent(sprite, 1); else StartSpriteAnimIfDifferent(sprite, 2); - if (sprite->pos1.x > -32) - sprite->pos1.x -= 2; - sprite->pos2.y = -gUnknown_0203BD26; + if (sprite->x > -32) + sprite->x -= 2; + sprite->y2 = -gIntroCredits_MovingSceneryVOffset; break; case 2: - sprite->data[7] += 1; + sprite->data[7]++; StartSpriteAnimIfDifferent(sprite, 0); if ((sprite->data[7] & 3) == 0) - sprite->pos1.x += 1; + sprite->x++; break; case 3: StartSpriteAnimIfDifferent(sprite, 0); - if (sprite->pos1.x > -32) - sprite->pos1.x -= 1; + if (sprite->x > -32) + sprite->x--; break; } } -static void sub_8177050(struct Sprite *sprite) +#define sPosition data[1] +#define sSpriteId data[6] + +static void SpriteCB_CreditsMon(struct Sprite *sprite) { - if (gUnknown_0203BD28) + if (gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_NORMAL) { - FreeAndDestroyMonPicSprite(sprite->data[6]); + FreeAndDestroyMonPicSprite(sprite->sSpriteId); return; } - sprite->data[7] += 1; - switch (sprite->data[0]) + sprite->data[7]++; + switch (sprite->sState) { case 0: default: sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; - sprite->oam.matrixNum = sprite->data[1]; + sprite->oam.matrixNum = sprite->sPosition; sprite->data[2] = 16; - SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]); + SetOamMatrix(sprite->sPosition, 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]); sprite->invisible = FALSE; - sprite->data[0] = 1; + sprite->sState = 1; break; case 1: if (sprite->data[2] < 256) { sprite->data[2] += 8; - SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]); + SetOamMatrix(sprite->sPosition, 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]); } else { - sprite->data[0] += 1; + sprite->sState++; } - switch (sprite->data[1]) + switch (sprite->sPosition) { - case 1: + case POS_LEFT + 1: if ((sprite->data[7] & 3) == 0) - sprite->pos1.y += 1; - sprite->pos1.x -= 2; + sprite->y++; + sprite->x -= 2; break; - case 2: + case POS_CENTER + 1: break; - case 3: + case POS_RIGHT + 1: if ((sprite->data[7] & 3) == 0) - sprite->pos1.y += 1; - sprite->pos1.x += 2; + sprite->y++; + sprite->x += 2; break; } break; case 2: if (sprite->data[3] != 0) { - sprite->data[3] -= 1; + sprite->data[3]--; } else { @@ -2226,7 +1478,7 @@ static void sub_8177050(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); sprite->oam.objMode = ST_OAM_OBJ_BLEND; sprite->data[3] = 16; - sprite->data[0] += 1; + sprite->sState++; } break; case 3: @@ -2234,7 +1486,7 @@ static void sub_8177050(struct Sprite *sprite) { int data3; - sprite->data[3] -= 1; + sprite->data[3]--; data3 = 16 - sprite->data[3]; SetGpuReg(REG_OFFSET_BLDALPHA, (data3 << 8) + sprite->data[3]); @@ -2242,11 +1494,11 @@ static void sub_8177050(struct Sprite *sprite) else { sprite->invisible = TRUE; - sprite->data[0] = 9; + sprite->sState = 9; } break; case 9: - sprite->data[0] += 1; + sprite->sState++; break; case 10: SetGpuReg(REG_OFFSET_BLDCNT, 0); @@ -2256,40 +1508,44 @@ static void sub_8177050(struct Sprite *sprite) } } -static u8 MakeMonSprite(u16 nationalDexNum, s16 x, s16 y, u16 position) +#define sMonSpriteId data[0] + +static u8 CreateCreditsMonSprite(u16 nationalDexNum, s16 x, s16 y, u16 position) { - u8 spriteId; - u8 spriteId2; + u8 monSpriteId; + u8 bgSpriteId; - spriteId = CreateMonSpriteFromNationalDexNumber(nationalDexNum, x, y, position); - gSprites[spriteId].oam.priority = 1; - gSprites[spriteId].data[1] = position + 1; - gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].callback = sub_8177050; - gSprites[spriteId].data[6] = spriteId; + monSpriteId = CreateMonSpriteFromNationalDexNumber(nationalDexNum, x, y, position); + gSprites[monSpriteId].oam.priority = 1; + gSprites[monSpriteId].sPosition = position + 1; + gSprites[monSpriteId].invisible = TRUE; + gSprites[monSpriteId].callback = SpriteCB_CreditsMon; + gSprites[monSpriteId].sSpriteId = monSpriteId; - spriteId2 = CreateSprite(&gUnknown_085E7068, gSprites[spriteId].pos1.x, gSprites[spriteId].pos1.y, 1); - gSprites[spriteId2].data[0] = spriteId; + bgSpriteId = CreateSprite(&sSpriteTemplate_CreditsMonBg, gSprites[monSpriteId].x, gSprites[monSpriteId].y, 1); + gSprites[bgSpriteId].sMonSpriteId = monSpriteId; - StartSpriteAnimIfDifferent(&gSprites[spriteId2], position); + StartSpriteAnimIfDifferent(&gSprites[bgSpriteId], position); - return spriteId; + return monSpriteId; } -static void sub_81772B8(struct Sprite *sprite) +static void SpriteCB_CreditsMonBg(struct Sprite *sprite) { - if (gSprites[sprite->data[0]].data[0] == 10 || gUnknown_0203BD28) + if (gSprites[sprite->sMonSpriteId].data[0] == 10 + || gIntroCredits_MovingSceneryState != INTROCRED_SCENERY_NORMAL) { DestroySprite(sprite); return; } - sprite->invisible = gSprites[sprite->data[0]].invisible; - sprite->oam.objMode = gSprites[sprite->data[0]].oam.objMode; - sprite->oam.affineMode = gSprites[sprite->data[0]].oam.affineMode; - sprite->oam.matrixNum = gSprites[sprite->data[0]].oam.matrixNum; - sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; - sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; + // Copy sprite data from the associated Pokémon + sprite->invisible = gSprites[sprite->sMonSpriteId].invisible; + sprite->oam.objMode = gSprites[sprite->sMonSpriteId].oam.objMode; + sprite->oam.affineMode = gSprites[sprite->sMonSpriteId].oam.affineMode; + sprite->oam.matrixNum = gSprites[sprite->sMonSpriteId].oam.matrixNum; + sprite->x = gSprites[sprite->sMonSpriteId].x; + sprite->y = gSprites[sprite->sMonSpriteId].y; } static void DeterminePokemonToShow(void) @@ -2312,7 +1568,7 @@ static void DeterminePokemonToShow(void) // Fill the rest of the array with zeroes for (dexNum = j; dexNum < NATIONAL_DEX_COUNT; dexNum++) - sCreditsData->caughtMonIds[dexNum] = 0; + sCreditsData->caughtMonIds[dexNum] = NATIONAL_DEX_NONE; // Cap the number of pokemon we care about to NUM_MON_SLIDES, the max we show in the credits scene (-1 for the starter) sCreditsData->numCaughtMon = j; @@ -2354,7 +1610,7 @@ static void DeterminePokemonToShow(void) page = 0; } // Ensure the last pokemon is our starter - sCreditsData->monToShow[NUM_MON_SLIDES-1] = starter; + sCreditsData->monToShow[NUM_MON_SLIDES - 1] = starter; } else { @@ -2365,12 +1621,12 @@ static void DeterminePokemonToShow(void) if (dexNum < sCreditsData->numMonToShow - 1) { sCreditsData->monToShow[dexNum] = sCreditsData->monToShow[NUM_MON_SLIDES-1]; - sCreditsData->monToShow[NUM_MON_SLIDES-1] = starter; + sCreditsData->monToShow[NUM_MON_SLIDES - 1] = starter; } else { // Ensure the last pokemon is our starter - sCreditsData->monToShow[NUM_MON_SLIDES-1] = starter; + sCreditsData->monToShow[NUM_MON_SLIDES - 1] = starter; } } sCreditsData->numMonToShow = NUM_MON_SLIDES; diff --git a/src/crt0.s b/src/crt0.s index 49f214f80d..385e340a57 100644 --- a/src/crt0.s +++ b/src/crt0.s @@ -1,3 +1,4 @@ +#include "constants/global.h" .include "constants/gba_constants.inc" .syntax unified @@ -34,8 +35,8 @@ GPIOPortReadEnable: @ 80000C8 @ 80000CC .space 0x34 - .4byte 3 - .4byte 2 + .4byte GAME_VERSION + .4byte GAME_LANGUAGE .ascii "pokemon emerald version" .space 9 @@ -51,17 +52,33 @@ GPIOPortReadEnable: @ 80000C8 .4byte gMoveNames .4byte gDecorations - .4byte 0x00001270, 0x0000139c, 0x00000018, 0x00000988 - .4byte 0x00003b24, 0x00000046, 0x000008e4, 0x000008ac - .4byte 0x00000182 + .4byte 0x00001270 @ offsetof(struct SaveBlock1, flags) + .4byte 0x0000139c @ offsetof(struct SaveBlock1, vars) + .4byte 0x00000018 @ offsetof(struct SaveBlock2, pokedex) + .4byte 0x00000988 @ offsetof(struct SaveBlock1, seen1) + .4byte 0x00003b24 @ offsetof(struct SaveBlock1, seen2) + .4byte 0x00000046 @ ? + .4byte 0x000008e4 @ ? + .4byte 0x000008ac @ ? + .4byte 0x00000182 @ NATIONAL_DEX_COUNT? .byte 0x07, 0x0a, 0x0a, 0x0a, 0x0c, 0x0c, 0x06, 0x0c .byte 0x06, 0x10, 0x12, 0x0c, 0x0f, 0x0b, 0x01, 0x08 - .4byte 0x0000000c, 0x00000f2c, 0x00003d88, 0x00000234 - .4byte 0x00000238, 0x00000009, 0x0000000a, 0x00000000 - .4byte 0x00000008, 0x00000ca8, 0x00000ca8, 0x000031c7 - .4byte 0x000031b3, 0x00000000 + .4byte 0x0000000c @ ? + .4byte 0x00000f2c @ sizeof(struct SaveBlock2) + .4byte 0x00003d88 @ sizeof(struct SaveBlock1) + .4byte 0x00000234 @ offsetof(struct SaveBlock1, playerPartyCount) + .4byte 0x00000238 @ offsetof(struct SaveBlock1, playerParty) + .4byte 0x00000009 @ offsetof(struct SaveBlock2, specialSaveWarpFlags) + .4byte 0x0000000a @ offsetof(struct SaveBlock2, playerTrainerId) + .4byte 0x00000000 @ offsetof(struct SaveBlock2, playerName) + .4byte 0x00000008 @ offsetof(struct SaveBlock2, playerGender) + .4byte 0x00000ca8 @ offsetof(struct SaveBlock2, frontier.challengeStatus) + .4byte 0x00000ca8 @ offsetof(struct SaveBlock2, frontier.challengeStatus) + .4byte 0x000031c7 @ offsetof(struct SaveBlock1, externalEventFlags) + .4byte 0x000031b3 @ offsetof(struct SaveBlock1, externalEventData) + .4byte 0x00000000 .4byte gBaseStats .4byte gAbilityNames @@ -71,12 +88,19 @@ GPIOPortReadEnable: @ 80000C8 .4byte gBallSpriteSheets .4byte gBallSpritePalettes - .4byte 0x000000a8, 0x00000864, 0x0000089b + .4byte 0x000000a8 @ offsetof(struct SaveBlock2, gcnLinkFlags) + .4byte 0x00000864 @ ? + .4byte 0x0000089b @ ? .byte 0x1e, 0x1e, 0x10, 0x40 - .4byte 0x0000322e, 0x00000498, 0x000031a8, 0x000031f8 - .4byte 0x00000034, 0x00000000, 0x00000000 + .4byte 0x0000322e @ offsetof(struct SaveBlock1, ? part-way into unk_322C) + .4byte 0x00000498 @ offsetof(struct SaveBlock1, pcItems) + .4byte 0x000031a8 @ offsetof(struct SaveBlock1, giftRibbons) + .4byte 0x000031f8 @ offsetof(struct SaveBlock1, enigmaBerry) + .4byte 0x00000034 @ offsetof(struct SaveBlock1, mapView) + .4byte 0x00000000 + .4byte 0x00000000 .arm .align 2, 0 diff --git a/src/data.c b/src/data.c index 4861da18b5..5856d17b85 100644 --- a/src/data.c +++ b/src/data.c @@ -8,41 +8,42 @@ #include "constants/trainers.h" #include "constants/battle_ai.h" -const u16 gUnknown_082FF1D8[] = INCBIN_U16("graphics/link/minigame_digits.gbapal"); -const u32 gUnknown_082FF1F8[] = INCBIN_U32("graphics/link/minigame_digits.4bpp.lz"); -// unused -const u32 gUnknown_082FF2B8[] = INCBIN_U32("graphics/link/minigame_digits2.4bpp.lz"); +const u16 gMinigameDigits_Pal[] = INCBIN_U16("graphics/link/minigame_digits.gbapal"); +const u32 gMinigameDigits_Gfx[] = INCBIN_U32("graphics/link/minigame_digits.4bpp.lz"); +static const u32 sMinigameDigitsThin_Gfx[] = INCBIN_U32("graphics/link/minigame_digits2.4bpp.lz"); // Unused -const struct SpriteFrameImage gUnknown_082FF3A8[] = +#define BATTLER_OFFSET(i) (gHeap + 0x8000 + MON_PIC_SIZE * (i)) + +const struct SpriteFrameImage gBattlerPicTable_PlayerLeft[] = { - gHeap + 0x8000, 0x800, - gHeap + 0x8800, 0x800, - gHeap + 0x9000, 0x800, - gHeap + 0x9800, 0x800, + BATTLER_OFFSET(0), MON_PIC_SIZE, + BATTLER_OFFSET(1), MON_PIC_SIZE, + BATTLER_OFFSET(2), MON_PIC_SIZE, + BATTLER_OFFSET(3), MON_PIC_SIZE, }; -const struct SpriteFrameImage gUnknown_082FF3C8[] = +const struct SpriteFrameImage gBattlerPicTable_OpponentLeft[] = { - gHeap + 0xA000, 0x800, - gHeap + 0xA800, 0x800, - gHeap + 0xB000, 0x800, - gHeap + 0xB800, 0x800, + BATTLER_OFFSET(4), MON_PIC_SIZE, + BATTLER_OFFSET(5), MON_PIC_SIZE, + BATTLER_OFFSET(6), MON_PIC_SIZE, + BATTLER_OFFSET(7), MON_PIC_SIZE, }; -const struct SpriteFrameImage gUnknown_082FF3E8[] = +const struct SpriteFrameImage gBattlerPicTable_PlayerRight[] = { - gHeap + 0xC000, 0x800, - gHeap + 0xC800, 0x800, - gHeap + 0xD000, 0x800, - gHeap + 0xD800, 0x800, + BATTLER_OFFSET(8), MON_PIC_SIZE, + BATTLER_OFFSET(9), MON_PIC_SIZE, + BATTLER_OFFSET(10), MON_PIC_SIZE, + BATTLER_OFFSET(11), MON_PIC_SIZE, }; -const struct SpriteFrameImage gUnknown_082FF408[] = +const struct SpriteFrameImage gBattlerPicTable_OpponentRight[] = { - gHeap + 0xE000, 0x800, - gHeap + 0xE800, 0x800, - gHeap + 0xF000, 0x800, - gHeap + 0xF800, 0x800, + BATTLER_OFFSET(12), MON_PIC_SIZE, + BATTLER_OFFSET(13), MON_PIC_SIZE, + BATTLER_OFFSET(14), MON_PIC_SIZE, + BATTLER_OFFSET(15), MON_PIC_SIZE, }; const struct SpriteFrameImage gTrainerBackPicTable_Brendan[] = @@ -123,175 +124,181 @@ static const union AnimCmd sAnim_GeneralFrame3[] = ANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF548[] = +// Many of these affine anims seem to go unused, and +// instead SetSpriteRotScale is used to manipulate +// the battler sprites directly (for instance, in AnimTask_SwitchOutShrinkMon). +// Those with explicit indexes are referenced elsewhere. + +static const union AffineAnimCmd sAffineAnim_Battler_Normal[] = { - AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF558[] = +static const union AffineAnimCmd sAffineAnim_Battler_Flipped[] = { - AFFINEANIMCMD_FRAME(0xff00, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF568[] = +static const union AffineAnimCmd sAffineAnim_Battler_Emerge[] = { - AFFINEANIMCMD_FRAME(0x0028, 0x0028, 0x00, 0x00), - AFFINEANIMCMD_FRAME(0x0012, 0x0012, 0x00, 0x0c), + AFFINEANIMCMD_FRAME(0x28, 0x28, 0, 0), + AFFINEANIMCMD_FRAME(0x12, 0x12, 0, 12), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF580[] = +static const union AffineAnimCmd sAffineAnim_Battler_Return[] = { - AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x12), - AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x0f), + AFFINEANIMCMD_FRAME( -0x2, -0x2, 0, 18), + AFFINEANIMCMD_FRAME(-0x10, -0x10, 0, 15), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF598[] = +static const union AffineAnimCmd sAffineAnim_Battler_HorizontalSquishLoop[] = { - AFFINEANIMCMD_FRAME(0x00a0, 0x0100, 0x00, 0x00), - AFFINEANIMCMD_FRAME(0x0004, 0x0000, 0x00, 0x08), - AFFINEANIMCMD_FRAME(0xfffc, 0x0000, 0x00, 0x08), + AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0), + AFFINEANIMCMD_FRAME( 0x4, 0x0, 0, 8), + AFFINEANIMCMD_FRAME(-0x4, 0x0, 0, 8), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd gUnknown_082FF5B8[] = +static const union AffineAnimCmd sAffineAnim_Battler_Grow[] = { - AFFINEANIMCMD_FRAME(0x0002, 0x0002, 0x00, 0x14), + AFFINEANIMCMD_FRAME(0x2, 0x2, 0, 20), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF5C8[] = +static const union AffineAnimCmd sAffineAnim_Battler_Shrink[] = { - AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x14), + AFFINEANIMCMD_FRAME(-0x2, -0x2, 0, 20), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF5D8[] = +static const union AffineAnimCmd sAffineAnim_Battler_BigToSmall[] = { - AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0000), - AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x09), + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(-0x10, -0x10, 0, 9), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF5F0[] = +static const union AffineAnimCmd sAffineAnim_Battler_GrowLarge[] = { - AFFINEANIMCMD_FRAME(0x0004, 0x0004, 0x00, 0x3f), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 63), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF600[] = +static const union AffineAnimCmd sAffineAnim_Battler_TipRight[] = { - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), + AFFINEANIMCMD_FRAME(0x0, 0x0, -3, 5), + AFFINEANIMCMD_FRAME(0x0, 0x0, 3, 5), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_082FF618[] = +const union AffineAnimCmd *const gAffineAnims_BattleSpritePlayerSide[] = { - gUnknown_082FF548, - gUnknown_082FF568, - gUnknown_082FF580, - gUnknown_082FF598, - gUnknown_082FF5B8, - gUnknown_082FF5C8, - gUnknown_082FF5F0, - gUnknown_082FF600, - gUnknown_082FF5D8, + [BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Normal, + [BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge, + [BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return, + sAffineAnim_Battler_HorizontalSquishLoop, + sAffineAnim_Battler_Grow, + sAffineAnim_Battler_Shrink, + sAffineAnim_Battler_GrowLarge, + sAffineAnim_Battler_TipRight, + sAffineAnim_Battler_BigToSmall, }; -static const union AffineAnimCmd gUnknown_082FF63C[] = +static const union AffineAnimCmd sAffineAnim_Battler_SpinShrink[] = { - AFFINEANIMCMD_FRAME(0xfffc, 0xfffc, 0x04, 0x3f), + AFFINEANIMCMD_FRAME(-0x4, -0x4, 4, 63), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF64C[] = +static const union AffineAnimCmd sAffineAnim_Battler_TipLeft[] = { - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), + AFFINEANIMCMD_FRAME(0x0, 0x0, 3, 5), + AFFINEANIMCMD_FRAME(0x0, 0x0, -3, 5), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF664[] = +static const union AffineAnimCmd sAffineAnim_Battler_RotateUpAndBack[] = { - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfb, 0x14), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x00, 0x14), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x05, 0x14), + AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 20), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20), + AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 20), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_082FF684[] = +static const union AffineAnimCmd sAffineAnim_Battler_Spin[] = { - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x09, 0x6e), + AFFINEANIMCMD_FRAME(0x0, 0x0, 9, 110), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_082FF694[] = +const union AffineAnimCmd *const gAffineAnims_BattleSpriteOpponentSide[] = { - gUnknown_082FF548, - gUnknown_082FF568, - gUnknown_082FF580, - gUnknown_082FF598, - gUnknown_082FF5B8, - gUnknown_082FF5C8, - gUnknown_082FF63C, - gUnknown_082FF64C, - gUnknown_082FF664, - gUnknown_082FF5D8, - gUnknown_082FF684, + [BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Normal, + [BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge, + [BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return, + sAffineAnim_Battler_HorizontalSquishLoop, + sAffineAnim_Battler_Grow, + sAffineAnim_Battler_Shrink, + sAffineAnim_Battler_SpinShrink, + sAffineAnim_Battler_TipLeft, + sAffineAnim_Battler_RotateUpAndBack, + sAffineAnim_Battler_BigToSmall, + sAffineAnim_Battler_Spin, }; -const union AffineAnimCmd *const gUnknown_082FF6C0[] = +const union AffineAnimCmd *const gAffineAnims_BattleSpriteContest[] = { - gUnknown_082FF558, - gUnknown_082FF568, - gUnknown_082FF580, - gUnknown_082FF598, - gUnknown_082FF5B8, - gUnknown_082FF5C8, - gUnknown_082FF63C, - gUnknown_082FF64C, - gUnknown_082FF664, - gUnknown_082FF5D8, - gUnknown_082FF684, + [BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Flipped, + [BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge, + [BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return, + sAffineAnim_Battler_HorizontalSquishLoop, + sAffineAnim_Battler_Grow, + sAffineAnim_Battler_Shrink, + sAffineAnim_Battler_SpinShrink, + sAffineAnim_Battler_TipLeft, + sAffineAnim_Battler_RotateUpAndBack, + sAffineAnim_Battler_BigToSmall, + sAffineAnim_Battler_Spin, }; -static const union AnimCmd gUnknown_082FF6EC[] = + +static const union AnimCmd sAnim_MonPic_0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF6F4[] = +static const union AnimCmd sAnim_MonPic_1[] = { ANIMCMD_FRAME(1, 0), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF6FC[] = +static const union AnimCmd sAnim_MonPic_2[] = { ANIMCMD_FRAME(2, 0), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF704[] = +static const union AnimCmd sAnim_MonPic_3[] = { ANIMCMD_FRAME(3, 0), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_082FF70C[] = +const union AnimCmd *const gAnims_MonPic[] = { - gUnknown_082FF6EC, - gUnknown_082FF6F4, - gUnknown_082FF6FC, - gUnknown_082FF704, + sAnim_MonPic_0, + sAnim_MonPic_1, + sAnim_MonPic_2, + sAnim_MonPic_3, }; -#define SPECIES_SPRITE(species, sprite) [SPECIES_##species] = {sprite, 0x800, SPECIES_##species} +#define SPECIES_SPRITE(species, sprite) [SPECIES_##species] = {sprite, MON_PIC_SIZE, SPECIES_##species} #define SPECIES_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species} #define SPECIES_SHINY_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species + SPECIES_SHINY_TAG} @@ -312,121 +319,7 @@ const union AnimCmd *const gUnknown_082FF70C[] = #include "data/pokemon_graphics/enemy_mon_elevation.h" #include "data/pokemon_graphics/front_pic_anims.h" #include "data/pokemon_graphics/front_pic_table.h" - -// unused -const u32 gUnknown830AF4C[] = -{ - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000088, 0x00000888, 0x00000888, 0x00000886, - 0x00000888, 0x00000886, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000886, 0x00000886, - 0x00000888, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000886, 0x00000888, - 0x00000888, 0x00000888, 0x00000886, 0x00000886, - 0x00000888, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000886, 0x00000886, 0x00000088, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000886, 0x00000888, 0x00000088, 0x00000088, - 0x00000888, 0x00000888, 0x00000888, 0x00000886, - 0x00000888, 0x00000888, 0x00000888, 0x00000886, - 0x00000886, 0x00000886, 0x00000886, 0x00000886, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000886, 0x00000886, 0x00000886, 0x00000886, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000886, 0x00000886, 0x00000888, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000088, 0x00000088, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000088, 0x00000886, - 0x00000888, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000886, 0x00000888, - 0x00000088, 0x00000088, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000888, 0x00000886, - 0x00000886, 0x00000888, 0x00000888, 0x00000088, - 0x00000888, 0x00000886, 0x00000886, 0x00000888, - 0x00000886, 0x00000888, 0x00000888, 0x00000886, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000088, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000088, 0x00000888, 0x00000888, 0x00000886, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000886, - 0x00000888, 0x00000886, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000088, 0x00000888, - 0x00000888, 0x00000088, 0x00000088, 0x00000888, - 0x00000886, 0x00000888, 0x00000886, 0x00000886, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000088, 0x00000888, 0x00000888, 0x00000888, - 0x00000088, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000088, 0x00000088, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000088, 0x00000888, - 0x00000886, 0x00000888, 0x00000088, 0x00000088, - 0x00000888, 0x00000888, 0x00000088, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000088, - 0x00000888, 0x00000888, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000088, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000886, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000886, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000088, 0x00000886, - 0x00000088, 0x00000886, 0x00000886, 0x00000886, - 0x00000088, 0x00000886, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000886, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000886, 0x00000886, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000886, 0x00000886, - 0x00001882, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000886, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000886, 0x00000088, 0x00000886, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000088, 0x00000886, - 0x00000886, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000886, 0x00000088, - 0x00000088, 0x00000886, 0x00000886, 0x00000886, - 0x00000886, 0x00000886, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000886, - 0x00000886, 0x00000886, 0x00000886, 0x00000088, - 0x00000886, 0x00000088, 0x00000886, 0x00000886, - 0x00000886, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000886, 0x00000886, - 0x00000886, 0x00000888, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000886, 0x00000886, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, -}; +#include "data/pokemon_graphics/unknown_table.h" #include "data/trainer_parties.h" #include "data/text/trainer_class_names.h" diff --git a/src/data/bard_music/bard_sounds.h b/src/data/bard_music/bard_sounds.h index 4a09117268..1dd5c7f56f 100644 --- a/src/data/bard_music/bard_sounds.h +++ b/src/data/bard_music/bard_sounds.h @@ -24,29 +24,29 @@ #include "events.h" #include "trendysaying.h" -const struct BardSound (*const gBardSoundsTable[])[6] = { - NULL, - gBardSounds_Trainer, - gBardSounds_Status, - gBardSounds_Battle, - gBardSounds_Greetings, - gBardSounds_People, - gBardSounds_Voices, - gBardSounds_Speech, - gBardSounds_Endings, - gBardSounds_Feelings, - gBardSounds_Conditions, - gBardSounds_Actions, - gBardSounds_Lifestyle, - gBardSounds_Hobbies, - gBardSounds_Time, - gBardSounds_Misc, - gBardSounds_Adjectives, - gBardSounds_Events, - NULL, - NULL, - gBardSounds_TrendySaying, - NULL +const struct BardSound (*const gBardSoundsTable[EC_NUM_GROUPS])[6] = { + [EC_GROUP_POKEMON] = NULL, // Handled by gBardSounds_Pokemon + [EC_GROUP_TRAINER] = gBardSounds_Trainer, + [EC_GROUP_STATUS] = gBardSounds_Status, + [EC_GROUP_BATTLE] = gBardSounds_Battle, + [EC_GROUP_GREETINGS] = gBardSounds_Greetings, + [EC_GROUP_PEOPLE] = gBardSounds_People, + [EC_GROUP_VOICES] = gBardSounds_Voices, + [EC_GROUP_SPEECH] = gBardSounds_Speech, + [EC_GROUP_ENDINGS] = gBardSounds_Endings, + [EC_GROUP_FEELINGS] = gBardSounds_Feelings, + [EC_GROUP_CONDITIONS] = gBardSounds_Conditions, + [EC_GROUP_ACTIONS] = gBardSounds_Actions, + [EC_GROUP_LIFESTYLE] = gBardSounds_Lifestyle, + [EC_GROUP_HOBBIES] = gBardSounds_Hobbies, + [EC_GROUP_TIME] = gBardSounds_Time, + [EC_GROUP_MISC] = gBardSounds_Misc, + [EC_GROUP_ADJECTIVES] = gBardSounds_Adjectives, + [EC_GROUP_EVENTS] = gBardSounds_Events, + [EC_GROUP_MOVE_1] = NULL, // Handled by gBardSounds_Moves + [EC_GROUP_MOVE_2] = NULL, // Handled by gBardSounds_Moves + [EC_GROUP_TRENDY_SAYING] = gBardSounds_TrendySaying, + [EC_GROUP_POKEMON_NATIONAL] = NULL // Handled by gBardSounds_Pokemon }; #endif //GUARD_BARD_SOUNDS_TABLE_H diff --git a/src/data/bard_music/moves.h b/src/data/bard_music/moves.h index 6bb350a7c5..89fc4c0f13 100644 --- a/src/data/bard_music/moves.h +++ b/src/data/bard_music/moves.h @@ -1,12 +1,12 @@ #ifndef GUARD_DATA_BARD_MUSIC_MOVES_H #define GUARD_DATA_BARD_MUSIC_MOVES_H -#include "moves.h" +#include "constants/moves.h" -const u16 gUnknown_085FA1D4 = 0x163; +const u16 gNumBardWords_Moves = MOVES_COUNT; -const struct BardSound gBardSounds_Moves[][6] = { - { +const struct BardSound gBardSounds_Moves[MOVES_COUNT][6] = { + [MOVE_NONE] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -14,7 +14,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_POUND] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -22,7 +22,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_KARATE_CHOP] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, @@ -30,7 +30,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DOUBLE_SLAP] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0xa, 0x0, 0x0, 0x0, 0x0}, { 0x2, 0x0, 0x0, 0x0, 0x0}, @@ -38,7 +38,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_COMET_PUNCH] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -46,7 +46,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MEGA_PUNCH] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -54,7 +54,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PAY_DAY] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -62,7 +62,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FIRE_PUNCH] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -70,7 +70,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ICE_PUNCH] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, @@ -78,7 +78,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_THUNDER_PUNCH] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -86,7 +86,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SCRATCH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -94,7 +94,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_VISE_GRIP] = { { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -102,7 +102,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_GUILLOTINE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, @@ -110,7 +110,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_RAZOR_WIND] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -118,7 +118,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SWORDS_DANCE] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1, 0x0, 0x0, 0x0, 0x0}, @@ -126,7 +126,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CUT] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -134,7 +134,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_GUST] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -142,7 +142,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WING_ATTACK] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -150,7 +150,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WHIRLWIND] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, @@ -158,7 +158,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FLY] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -166,7 +166,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BIND] = { { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -174,7 +174,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SLAM] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -182,7 +182,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_VINE_WHIP] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -190,7 +190,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_STOMP] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -198,7 +198,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DOUBLE_KICK] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -206,7 +206,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MEGA_KICK] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -214,7 +214,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_JUMP_KICK] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -222,7 +222,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROLLING_KICK] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -230,7 +230,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SAND_ATTACK] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -238,7 +238,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HEADBUTT] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -246,7 +246,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HORN_ATTACK] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -254,7 +254,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FURY_ATTACK] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -262,7 +262,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HORN_DRILL] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -270,7 +270,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TACKLE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -278,7 +278,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BODY_SLAM] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2, 0x0, 0x0, 0x0, 0x0}, @@ -286,7 +286,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WRAP] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -294,7 +294,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TAKE_DOWN] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x23, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -302,7 +302,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_THRASH] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -310,7 +310,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DOUBLE_EDGE] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0xa, 0x0, 0x0, 0x0, 0x0}, @@ -318,7 +318,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TAIL_WHIP] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -326,7 +326,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_POISON_STING] = { { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, @@ -334,7 +334,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TWINEEDLE] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -342,7 +342,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PIN_MISSILE] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -350,7 +350,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LEER] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -358,7 +358,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BITE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -366,7 +366,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_GROWL] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -374,7 +374,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROAR] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -382,7 +382,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SING] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -390,7 +390,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SUPERSONIC] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -398,7 +398,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SONIC_BOOM] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -406,7 +406,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DISABLE] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -414,7 +414,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ACID] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -422,7 +422,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_EMBER] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -430,7 +430,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FLAMETHROWER] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -438,7 +438,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MIST] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -446,7 +446,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WATER_GUN] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -454,7 +454,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HYDRO_PUMP] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -462,7 +462,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SURF] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -470,7 +470,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ICE_BEAM] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -478,7 +478,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BLIZZARD] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -486,7 +486,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PSYBEAM] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -494,7 +494,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BUBBLE_BEAM] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -502,7 +502,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_AURORA_BEAM] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -510,7 +510,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_HYPER_BEAM] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -518,7 +518,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PECK] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -526,7 +526,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DRILL_PECK] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -534,7 +534,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SUBMISSION] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, @@ -542,7 +542,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LOW_KICK] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -550,7 +550,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_COUNTER] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -558,7 +558,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SEISMIC_TOSS] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -566,7 +566,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_STRENGTH] = { { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -574,7 +574,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ABSORB] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -582,7 +582,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MEGA_DRAIN] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, @@ -590,7 +590,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LEECH_SEED] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -598,7 +598,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_GROWTH] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -606,7 +606,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_RAZOR_LEAF] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -614,7 +614,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SOLAR_BEAM] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -622,7 +622,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_POISON_POWDER] = { { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -630,7 +630,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_STUN_SPORE] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -638,7 +638,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SLEEP_POWDER] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -646,7 +646,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PETAL_DANCE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2, 0x0, 0x0, 0x0, 0x0}, @@ -654,7 +654,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_STRING_SHOT] = { { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -662,7 +662,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DRAGON_RAGE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, @@ -670,7 +670,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_FIRE_SPIN] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -678,7 +678,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_THUNDER_SHOCK] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -686,7 +686,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_THUNDERBOLT] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, @@ -694,7 +694,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_THUNDER_WAVE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, @@ -702,7 +702,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_THUNDER] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -710,7 +710,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROCK_THROW] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -718,7 +718,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_EARTHQUAKE] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -726,7 +726,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FISSURE] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -734,7 +734,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DIG] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -742,7 +742,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TOXIC] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -750,7 +750,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CONFUSION] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x29, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -758,7 +758,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PSYCHIC] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -766,7 +766,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HYPNOSIS] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -774,7 +774,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MEDITATE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, @@ -782,7 +782,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_AGILITY] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -790,7 +790,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_QUICK_ATTACK] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -798,7 +798,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_RAGE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -806,7 +806,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TELEPORT] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, @@ -814,7 +814,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_NIGHT_SHADE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -822,7 +822,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MIMIC] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -830,7 +830,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SCREECH] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xd, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -838,7 +838,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DOUBLE_TEAM] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -846,7 +846,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_RECOVER] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -854,7 +854,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HARDEN] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -862,7 +862,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MINIMIZE] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -870,7 +870,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SMOKESCREEN] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -878,7 +878,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CONFUSE_RAY] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x2d, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, @@ -886,7 +886,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WITHDRAW] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -894,7 +894,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DEFENSE_CURL] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, @@ -902,7 +902,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BARRIER] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -910,7 +910,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LIGHT_SCREEN] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -918,7 +918,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HAZE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -926,7 +926,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_REFLECT] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -934,7 +934,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FOCUS_ENERGY] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, @@ -942,7 +942,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_BIDE] = { { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -950,7 +950,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_METRONOME] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -958,7 +958,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MIRROR_MOVE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x29, 0x0, 0x0, 0x0, 0x0}, @@ -966,7 +966,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SELF_DESTRUCT] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -974,7 +974,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_EGG_BOMB] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -982,7 +982,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LICK] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -990,7 +990,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SMOG] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -998,7 +998,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SLUDGE] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1006,7 +1006,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BONE_CLUB] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1014,7 +1014,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FIRE_BLAST] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1022,7 +1022,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WATERFALL] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, @@ -1030,7 +1030,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CLAMP] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1038,7 +1038,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SWIFT] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1046,7 +1046,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SKULL_BASH] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1054,7 +1054,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SPIKE_CANNON] = { { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, @@ -1062,7 +1062,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CONSTRICT] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1070,7 +1070,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_AMNESIA] = { { 0x2, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1078,7 +1078,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_KINESIS] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -1086,7 +1086,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SOFT_BOILED] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, @@ -1094,7 +1094,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HIGH_JUMP_KICK] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -1102,7 +1102,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_GLARE] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1110,7 +1110,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DREAM_EATER] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -1118,7 +1118,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_POISON_GAS] = { { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1126,7 +1126,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BARRAGE] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1134,7 +1134,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LEECH_LIFE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1142,7 +1142,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LOVELY_KISS] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1150,7 +1150,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_SKY_ATTACK] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1158,7 +1158,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TRANSFORM] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1166,7 +1166,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BUBBLE] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1174,7 +1174,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DIZZY_PUNCH] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1182,7 +1182,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SPORE] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1190,7 +1190,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FLASH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1198,7 +1198,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PSYWAVE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1206,7 +1206,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SPLASH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1214,7 +1214,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ACID_ARMOR] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1222,7 +1222,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CRABHAMMER] = { { 0x2, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -1230,7 +1230,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_EXPLOSION] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1238,7 +1238,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_FURY_SWIPES] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -1246,7 +1246,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BONEMERANG] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1254,7 +1254,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_REST] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1262,7 +1262,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROCK_SLIDE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1270,7 +1270,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HYPER_FANG] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1278,7 +1278,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SHARPEN] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1286,7 +1286,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CONVERSION] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1294,7 +1294,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TRI_ATTACK] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1302,7 +1302,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SUPER_FANG] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1, 0x0, 0x0, 0x0, 0x0}, @@ -1310,7 +1310,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SLASH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1318,7 +1318,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SUBSTITUTE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -1326,7 +1326,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_STRUGGLE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1334,7 +1334,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SKETCH] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1342,7 +1342,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TRIPLE_KICK] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -1350,7 +1350,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_THIEF] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1358,7 +1358,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SPIDER_WEB] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -1366,7 +1366,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MIND_READER] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -1374,7 +1374,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_NIGHTMARE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1382,7 +1382,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FLAME_WHEEL] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1390,7 +1390,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SNORE] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1398,7 +1398,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CURSE] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1406,7 +1406,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FLAIL] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1414,7 +1414,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CONVERSION_2] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1422,7 +1422,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_AEROBLAST] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1430,7 +1430,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_COTTON_SPORE] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, @@ -1438,7 +1438,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_REVERSAL] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -1446,7 +1446,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SPITE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1454,7 +1454,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_POWDER_SNOW] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -1462,7 +1462,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PROTECT] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1470,7 +1470,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MACH_PUNCH] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1478,7 +1478,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SCARY_FACE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, @@ -1486,7 +1486,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FEINT_ATTACK] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1494,7 +1494,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SWEET_KISS] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1502,7 +1502,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BELLY_DRUM] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -1510,7 +1510,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SLUDGE_BOMB] = { { 0x2b, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1518,7 +1518,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MUD_SLAP] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1526,7 +1526,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_OCTAZOOKA] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x28, 0x0, 0x0, 0x0, 0x0}, @@ -1534,7 +1534,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SPIKES] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1542,7 +1542,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ZAP_CANNON] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1550,7 +1550,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FORESIGHT] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1558,7 +1558,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DESTINY_BOND] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1566,7 +1566,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PERISH_SONG] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1574,7 +1574,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ICY_WIND] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -1582,7 +1582,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DETECT] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1590,7 +1590,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BONE_RUSH] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1598,7 +1598,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LOCK_ON] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1606,7 +1606,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_OUTRAGE] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1614,7 +1614,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SANDSTORM] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1622,7 +1622,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_GIGA_DRAIN] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, @@ -1630,7 +1630,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ENDURE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1638,7 +1638,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CHARM] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1646,7 +1646,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROLLOUT] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1654,7 +1654,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FALSE_SWIPE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1662,7 +1662,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SWAGGER] = { { 0x2, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1670,7 +1670,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MILK_DRINK] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1678,7 +1678,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SPARK] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1686,7 +1686,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FURY_CUTTER] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -1694,7 +1694,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_STEEL_WING] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0xd, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1702,7 +1702,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MEAN_LOOK] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1710,7 +1710,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ATTRACT] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1718,7 +1718,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SLEEP_TALK] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1726,7 +1726,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HEAL_BELL] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0xa, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1734,7 +1734,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_RETURN] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1742,7 +1742,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PRESENT] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1750,7 +1750,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FRUSTRATION] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1758,7 +1758,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SAFEGUARD] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1766,7 +1766,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PAIN_SPLIT] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1774,7 +1774,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SACRED_FIRE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -1782,7 +1782,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_MAGNITUDE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -1790,7 +1790,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DYNAMIC_PUNCH] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -1798,7 +1798,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MEGAHORN] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, @@ -1806,7 +1806,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DRAGON_BREATH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, @@ -1814,7 +1814,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_BATON_PASS] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1822,7 +1822,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ENCORE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1830,7 +1830,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PURSUIT] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1838,7 +1838,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_RAPID_SPIN] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -1846,7 +1846,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SWEET_SCENT] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1854,7 +1854,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_IRON_TAIL] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, @@ -1862,7 +1862,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_METAL_CLAW] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1870,7 +1870,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_VITAL_THROW] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -1878,7 +1878,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MORNING_SUN] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1886,7 +1886,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SYNTHESIS] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -1894,7 +1894,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MOONLIGHT] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1902,7 +1902,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HIDDEN_POWER] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -1910,7 +1910,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CROSS_CHOP] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1918,7 +1918,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TWISTER] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1926,7 +1926,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_RAIN_DANCE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1934,7 +1934,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SUNNY_DAY] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, @@ -1942,7 +1942,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CRUNCH] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1950,7 +1950,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MIRROR_COAT] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -1958,7 +1958,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_PSYCH_UP] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1966,7 +1966,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_EXTREME_SPEED] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1974,7 +1974,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ANCIENT_POWER] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -1982,7 +1982,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_SHADOW_BALL] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1990,7 +1990,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FUTURE_SIGHT] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -1998,7 +1998,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROCK_SMASH] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2006,7 +2006,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WHIRLPOOL] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2014,7 +2014,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BEAT_UP] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2022,7 +2022,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FAKE_OUT] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2030,7 +2030,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_UPROAR] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2038,7 +2038,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_STOCKPILE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2046,7 +2046,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SPIT_UP] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2054,7 +2054,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SWALLOW] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2062,7 +2062,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HEAT_WAVE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2070,7 +2070,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HAIL] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2078,7 +2078,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TORMENT] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2086,7 +2086,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FLATTER] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2094,7 +2094,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WILL_O_WISP] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -2102,7 +2102,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MEMENTO] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -2110,7 +2110,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FACADE] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2118,7 +2118,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FOCUS_PUNCH] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -2126,7 +2126,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SMELLING_SALTS] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -2134,7 +2134,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FOLLOW_ME] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2142,7 +2142,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_NATURE_POWER] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -2150,7 +2150,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CHARGE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2158,7 +2158,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TAUNT] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2166,7 +2166,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HELPING_HAND] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -2174,7 +2174,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TRICK] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2182,7 +2182,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROLE_PLAY] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2190,7 +2190,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WISH] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2198,7 +2198,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ASSIST] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2206,7 +2206,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_INGRAIN] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2214,7 +2214,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SUPERPOWER] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -2222,7 +2222,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MAGIC_COAT] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -2230,7 +2230,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_RECYCLE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -2238,7 +2238,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_REVENGE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2246,7 +2246,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BRICK_BREAK] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2254,7 +2254,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_YAWN] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2262,7 +2262,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_KNOCK_OFF] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2270,7 +2270,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ENDEAVOR] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -2278,7 +2278,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ERUPTION] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, @@ -2286,7 +2286,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SKILL_SWAP] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2294,7 +2294,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_IMPRISON] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -2302,7 +2302,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_REFRESH] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2310,7 +2310,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_GRUDGE] = { { 0x2b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2318,7 +2318,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SNATCH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2326,7 +2326,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SECRET_POWER] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -2334,7 +2334,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DIVE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2342,7 +2342,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ARM_THRUST] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2350,7 +2350,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CAMOUFLAGE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -2358,7 +2358,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TAIL_GLOW] = { { 0x4, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2366,7 +2366,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LUSTER_PURGE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, @@ -2374,7 +2374,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MIST_BALL] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2382,7 +2382,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FEATHER_DANCE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -2390,7 +2390,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TEETER_DANCE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -2398,7 +2398,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BLAZE_KICK] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2406,7 +2406,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MUD_SPORT] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -2414,7 +2414,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ICE_BALL] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2422,7 +2422,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_NEEDLE_ARM] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, @@ -2430,7 +2430,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SLACK_OFF] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2438,7 +2438,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HYPER_VOICE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1e, 0x0, 0x0, 0x0, 0x0}, @@ -2446,7 +2446,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_POISON_FANG] = { { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -2454,7 +2454,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CRUSH_CLAW] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2462,7 +2462,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BLAST_BURN] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -2470,7 +2470,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HYDRO_CANNON] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -2478,7 +2478,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_METEOR_MASH] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -2486,7 +2486,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0} }, - { + [MOVE_ASTONISH] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -2494,7 +2494,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WEATHER_BALL] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -2502,7 +2502,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_AROMATHERAPY] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -2510,7 +2510,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0} }, - { + [MOVE_FAKE_TEARS] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2518,7 +2518,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_AIR_CUTTER] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -2526,7 +2526,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_OVERHEAT] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2534,7 +2534,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ODOR_SLEUTH] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -2542,7 +2542,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROCK_TOMB] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2550,7 +2550,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SILVER_WIND] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -2558,7 +2558,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_METAL_SOUND] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -2566,7 +2566,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_GRASS_WHISTLE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -2574,7 +2574,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_TICKLE] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2582,7 +2582,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_COSMIC_POWER] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -2590,7 +2590,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WATER_SPOUT] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, @@ -2598,7 +2598,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SIGNAL_BEAM] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2606,7 +2606,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SHADOW_PUNCH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -2614,7 +2614,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_EXTRASENSORY] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -2622,7 +2622,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_SKY_UPPERCUT] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -2630,7 +2630,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SAND_TOMB] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2638,7 +2638,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SHEER_COLD] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -2646,7 +2646,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MUDDY_WATER] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -2654,7 +2654,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BULLET_SEED] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2662,7 +2662,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_AERIAL_ACE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2670,7 +2670,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ICICLE_SPEAR] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2678,7 +2678,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_IRON_DEFENSE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2686,7 +2686,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BLOCK] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2694,7 +2694,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_HOWL] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2702,7 +2702,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DRAGON_CLAW] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, @@ -2710,7 +2710,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_FRENZY_PLANT] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2718,7 +2718,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BULK_UP] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2726,7 +2726,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_BOUNCE] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2734,7 +2734,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MUD_SHOT] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2742,7 +2742,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_POISON_TAIL] = { { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, @@ -2750,7 +2750,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_COVET] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2758,7 +2758,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_VOLT_TACKLE] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -2766,7 +2766,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_MAGICAL_LEAF] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -2774,7 +2774,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_WATER_SPORT] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, @@ -2782,7 +2782,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_CALM_MIND] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2790,7 +2790,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_LEAF_BLADE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2798,7 +2798,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DRAGON_DANCE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -2806,7 +2806,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_ROCK_BLAST] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2814,7 +2814,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_SHOCK_WAVE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2822,7 +2822,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_WATER_PULSE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -2830,7 +2830,7 @@ const struct BardSound gBardSounds_Moves[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [MOVE_DOOM_DESIRE] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2838,7 +2838,7 @@ const struct BardSound gBardSounds_Moves[][6] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [MOVE_PSYCHO_BOOST] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, diff --git a/src/data/bard_music/pokemon.h b/src/data/bard_music/pokemon.h index 5ccf2f830d..294cd4078c 100644 --- a/src/data/bard_music/pokemon.h +++ b/src/data/bard_music/pokemon.h @@ -1,10 +1,10 @@ #ifndef GUARD_DATA_BARD_MUSIC_POKEMON_H #define GUARD_DATA_BARD_MUSIC_POKEMON_H -const u16 gNumSpeciesNames = NUM_SPECIES; +const u16 gNumBardWords_Species = NUM_SPECIES; -const struct BardSound gBardSounds_Pokemon[][6] = { - { +const struct BardSound gBardSounds_Pokemon[NUM_SPECIES][6] = { + [SPECIES_NONE] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -12,7 +12,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BULBASAUR] = { { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -20,7 +20,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_IVYSAUR] = { { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, @@ -28,7 +28,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VENUSAUR] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -36,7 +36,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CHARMANDER] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x2, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, @@ -44,7 +44,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CHARMELEON] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -52,7 +52,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [SPECIES_CHARIZARD] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, @@ -60,7 +60,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [SPECIES_SQUIRTLE] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -68,7 +68,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WARTORTLE] = { { 0x8, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -76,7 +76,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BLASTOISE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -84,7 +84,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CATERPIE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -92,7 +92,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_METAPOD] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -100,7 +100,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BUTTERFREE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -108,7 +108,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WEEDLE] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x26, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -116,7 +116,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KAKUNA] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -124,7 +124,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BEEDRILL] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -132,7 +132,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PIDGEY] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -140,7 +140,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PIDGEOTTO] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -148,7 +148,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PIDGEOT] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -156,7 +156,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RATTATA] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -164,7 +164,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RATICATE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, @@ -172,7 +172,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SPEAROW] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -180,7 +180,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FEAROW] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -188,7 +188,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_EKANS] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -196,7 +196,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ARBOK] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x17, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -204,7 +204,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PIKACHU] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -212,7 +212,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RAICHU] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -220,7 +220,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SANDSHREW] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -228,7 +228,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SANDSLASH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -236,7 +236,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NIDORAN_F] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -244,7 +244,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NIDORINA] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -252,7 +252,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NIDOQUEEN] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -260,7 +260,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NIDORAN_M] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -268,7 +268,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NIDORINO] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -276,7 +276,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NIDOKING] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -284,7 +284,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CLEFAIRY] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -292,7 +292,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CLEFABLE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, @@ -300,7 +300,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VULPIX] = { { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -308,7 +308,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NINETALES] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -316,7 +316,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_JIGGLYPUFF] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -324,7 +324,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [SPECIES_WIGGLYTUFF] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -332,7 +332,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [SPECIES_ZUBAT] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -340,7 +340,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GOLBAT] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -348,7 +348,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ODDISH] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -356,7 +356,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GLOOM] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -364,7 +364,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VILEPLUME] = { { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -372,7 +372,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PARAS] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -380,7 +380,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PARASECT] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -388,7 +388,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VENONAT] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -396,7 +396,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VENOMOTH] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -404,7 +404,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DIGLETT] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -412,7 +412,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DUGTRIO] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -420,7 +420,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MEOWTH] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -428,7 +428,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PERSIAN] = { { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -436,7 +436,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PSYDUCK] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -444,7 +444,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GOLDUCK] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -452,7 +452,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MANKEY] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -460,7 +460,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PRIMEAPE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -468,7 +468,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GROWLITHE] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -476,7 +476,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ARCANINE] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -484,7 +484,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_POLIWAG] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -492,7 +492,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_POLIWHIRL] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -500,7 +500,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_POLIWRATH] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -508,7 +508,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ABRA] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -516,7 +516,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KADABRA] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -524,7 +524,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ALAKAZAM] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -532,7 +532,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MACHOP] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -540,7 +540,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MACHOKE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -548,7 +548,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MACHAMP] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -556,7 +556,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BELLSPROUT] = { { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -564,7 +564,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WEEPINBELL] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, @@ -572,7 +572,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VICTREEBEL] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -580,7 +580,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TENTACOOL] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -588,7 +588,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TENTACRUEL] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -596,7 +596,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GEODUDE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -604,7 +604,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GRAVELER] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -612,7 +612,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GOLEM] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -620,7 +620,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PONYTA] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -628,7 +628,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RAPIDASH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -636,7 +636,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SLOWPOKE] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -644,7 +644,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SLOWBRO] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -652,7 +652,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAGNEMITE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -660,7 +660,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAGNETON] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -668,7 +668,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FARFETCHD] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -676,7 +676,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DODUO] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -684,7 +684,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DODRIO] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -692,7 +692,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SEEL] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -700,7 +700,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DEWGONG] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -708,7 +708,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GRIMER] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -716,7 +716,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MUK] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -724,7 +724,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SHELLDER] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -732,7 +732,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CLOYSTER] = { { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -740,7 +740,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GASTLY] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -748,7 +748,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HAUNTER] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -756,7 +756,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GENGAR] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x8, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -764,7 +764,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ONIX] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -772,7 +772,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DROWZEE] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -780,7 +780,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HYPNO] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -788,7 +788,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KRABBY] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -796,7 +796,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KINGLER] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -804,7 +804,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VOLTORB] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -812,7 +812,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ELECTRODE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -820,7 +820,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_EXEGGCUTE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -828,7 +828,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_EXEGGUTOR] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -836,7 +836,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [SPECIES_CUBONE] = { { 0x2d, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -844,7 +844,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAROWAK] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -852,7 +852,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HITMONLEE] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -860,7 +860,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HITMONCHAN] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -868,7 +868,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LICKITUNG] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -876,7 +876,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KOFFING] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -884,7 +884,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WEEZING] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -892,7 +892,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RHYHORN] = { { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -900,7 +900,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RHYDON] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -908,7 +908,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CHANSEY] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -916,7 +916,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TANGELA] = { { 0x2, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -924,7 +924,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KANGASKHAN] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -932,7 +932,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HORSEA] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -940,7 +940,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SEADRA] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -948,7 +948,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GOLDEEN] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -956,7 +956,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SEAKING] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -964,7 +964,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_STARYU] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -972,7 +972,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_STARMIE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -980,7 +980,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MR_MIME] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -988,7 +988,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SCYTHER] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -996,7 +996,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_JYNX] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1004,7 +1004,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ELECTABUZZ] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1012,7 +1012,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAGMAR] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1020,7 +1020,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PINSIR] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1028,7 +1028,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TAUROS] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1036,7 +1036,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAGIKARP] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1044,7 +1044,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GYARADOS] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -1052,7 +1052,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LAPRAS] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1060,7 +1060,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DITTO] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1068,7 +1068,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_EEVEE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1076,7 +1076,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VAPOREON] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1084,7 +1084,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_JOLTEON] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -1092,7 +1092,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FLAREON] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -1100,7 +1100,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PORYGON] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -1108,7 +1108,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OMANYTE] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -1116,7 +1116,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OMASTAR] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -1124,7 +1124,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KABUTO] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, @@ -1132,7 +1132,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KABUTOPS] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -1140,7 +1140,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_AERODACTYL] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1148,7 +1148,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SNORLAX] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1156,7 +1156,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ARTICUNO] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -1164,7 +1164,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ZAPDOS] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1172,7 +1172,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MOLTRES] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1180,7 +1180,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DRATINI] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1188,7 +1188,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DRAGONAIR] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, @@ -1196,7 +1196,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DRAGONITE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -1204,7 +1204,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MEWTWO] = { { 0x2d, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND, @@ -1212,7 +1212,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MEW] = { { 0x2d, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -1220,7 +1220,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CHIKORITA] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1228,7 +1228,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BAYLEEF] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1236,7 +1236,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MEGANIUM] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1244,7 +1244,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CYNDAQUIL] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -1252,7 +1252,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_QUILAVA] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x8, 0x0, 0x0, 0x0, 0x0}, @@ -1260,7 +1260,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TYPHLOSION] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1268,7 +1268,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { { 0x33, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [SPECIES_TOTODILE] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -1276,7 +1276,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CROCONAW] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1284,7 +1284,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FERALIGATR] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -1292,7 +1292,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, NULL_BARD_SOUND }, - { + [SPECIES_SENTRET] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1300,7 +1300,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FURRET] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1308,7 +1308,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HOOTHOOT] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1316,7 +1316,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NOCTOWL] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1324,7 +1324,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LEDYBA] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -1332,7 +1332,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LEDIAN] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1340,7 +1340,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SPINARAK] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -1348,7 +1348,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ARIADOS] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -1356,7 +1356,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CROBAT] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1364,7 +1364,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CHINCHOU] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1372,7 +1372,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LANTURN] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1380,7 +1380,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PICHU] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1388,7 +1388,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CLEFFA] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1396,7 +1396,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_IGGLYBUFF] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1404,7 +1404,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TOGEPI] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1412,7 +1412,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TOGETIC] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -1420,7 +1420,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NATU] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1428,7 +1428,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_XATU] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1436,7 +1436,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAREEP] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1444,7 +1444,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FLAAFFY] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1452,7 +1452,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_AMPHAROS] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -1460,7 +1460,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BELLOSSOM] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1468,7 +1468,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MARILL] = { { 0x8, 0x0, 0x0, 0x0, 0x0}, { 0x10, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1476,7 +1476,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_AZUMARILL] = { { 0x8, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1484,7 +1484,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SUDOWOODO] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -1492,7 +1492,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_POLITOED] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -1500,7 +1500,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HOPPIP] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1508,7 +1508,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SKIPLOOM] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1516,7 +1516,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_JUMPLUFF] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1524,7 +1524,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_AIPOM] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1532,7 +1532,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SUNKERN] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1540,7 +1540,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SUNFLORA] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1548,7 +1548,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_YANMA] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1556,7 +1556,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WOOPER] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1564,7 +1564,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_QUAGSIRE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, @@ -1572,7 +1572,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ESPEON] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1580,7 +1580,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_UMBREON] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1588,7 +1588,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MURKROW] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1596,7 +1596,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SLOWKING] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1604,7 +1604,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MISDREAVUS] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, @@ -1612,7 +1612,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_UNOWN] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1620,7 +1620,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WOBBUFFET] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -1628,7 +1628,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GIRAFARIG] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -1636,7 +1636,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PINECO] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1644,7 +1644,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FORRETRESS] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -1652,7 +1652,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DUNSPARCE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1660,7 +1660,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GLIGAR] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1668,7 +1668,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_STEELIX] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1676,7 +1676,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SNUBBULL] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1684,7 +1684,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GRANBULL] = { { 0x2, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1692,7 +1692,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_QWILFISH] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1700,7 +1700,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SCIZOR] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1708,7 +1708,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SHUCKLE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x26, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1716,7 +1716,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HERACROSS] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1724,7 +1724,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SNEASEL] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x26, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1732,7 +1732,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TEDDIURSA] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -1740,7 +1740,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_URSARING] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1748,7 +1748,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SLUGMA] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1756,7 +1756,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAGCARGO] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -1764,7 +1764,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SWINUB] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1772,7 +1772,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PILOSWINE] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -1780,7 +1780,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CORSOLA] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -1788,7 +1788,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_REMORAID] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, @@ -1796,7 +1796,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OCTILLERY] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -1804,7 +1804,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DELIBIRD] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -1812,7 +1812,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MANTINE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1820,7 +1820,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SKARMORY] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -1828,7 +1828,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HOUNDOUR] = { { 0x23, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1836,7 +1836,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HOUNDOOM] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1844,7 +1844,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KINGDRA] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1852,7 +1852,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PHANPY] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1860,7 +1860,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DONPHAN] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1868,7 +1868,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PORYGON2] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1876,7 +1876,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_STANTLER] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1884,7 +1884,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SMEARGLE] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x26, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1892,7 +1892,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TYROGUE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1900,7 +1900,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HITMONTOP] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, @@ -1908,7 +1908,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SMOOCHUM] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1916,7 +1916,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ELEKID] = { { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -1924,7 +1924,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAGBY] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1932,7 +1932,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MILTANK] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1940,7 +1940,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BLISSEY] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1948,7 +1948,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RAIKOU] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1956,7 +1956,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ENTEI] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1964,7 +1964,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SUICUNE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -1972,7 +1972,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LARVITAR] = { { 0x15, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x15, 0x0, 0x0, 0x0, 0x0}, @@ -1980,7 +1980,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PUPITAR] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -1988,7 +1988,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TYRANITAR] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -1996,7 +1996,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LUGIA] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2004,7 +2004,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HO_OH] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2012,7 +2012,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CELEBI] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2020,7 +2020,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_B] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2028,7 +2028,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_C] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2036,7 +2036,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_D] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2044,7 +2044,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_E] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2052,7 +2052,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_F] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2060,7 +2060,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_G] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2068,7 +2068,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_H] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2076,7 +2076,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_I] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2084,7 +2084,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_J] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2092,7 +2092,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_K] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2100,7 +2100,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_L] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2108,7 +2108,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_M] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2116,7 +2116,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_N] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2124,7 +2124,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_O] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2132,7 +2132,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_P] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2140,7 +2140,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_Q] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2148,7 +2148,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_R] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2156,7 +2156,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_S] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2164,7 +2164,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_T] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2172,7 +2172,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_U] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2180,7 +2180,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_V] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2188,7 +2188,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_W] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2196,7 +2196,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_X] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2204,7 +2204,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_Y] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2212,7 +2212,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_OLD_UNOWN_Z] = { NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2220,7 +2220,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TREECKO] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2228,7 +2228,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GROVYLE] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2236,7 +2236,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SCEPTILE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2244,7 +2244,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TORCHIC] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2252,7 +2252,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_COMBUSKEN] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -2260,7 +2260,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BLAZIKEN] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -2268,7 +2268,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MUDKIP] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2276,7 +2276,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MARSHTOMP] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2284,7 +2284,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SWAMPERT] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2292,7 +2292,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_POOCHYENA] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -2300,7 +2300,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MIGHTYENA] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -2308,7 +2308,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ZIGZAGOON] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, @@ -2316,7 +2316,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LINOONE] = { { 0x14, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2324,7 +2324,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WURMPLE] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2332,7 +2332,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SILCOON] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x28, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2340,7 +2340,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BEAUTIFLY] = { { 0x2d, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -2348,7 +2348,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CASCOON] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2356,7 +2356,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DUSTOX] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x17, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2364,7 +2364,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LOTAD] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2372,7 +2372,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LOMBRE] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2380,7 +2380,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LUDICOLO] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, @@ -2388,7 +2388,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SEEDOT] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2396,7 +2396,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NUZLEAF] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2404,7 +2404,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SHIFTRY] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2412,7 +2412,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NINCADA] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x6, 0x0, 0x0, 0x0, 0x0}, @@ -2420,7 +2420,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NINJASK] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2428,7 +2428,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SHEDINJA] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2436,7 +2436,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TAILLOW] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2444,7 +2444,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SWELLOW] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2452,7 +2452,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SHROOMISH] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2460,7 +2460,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BRELOOM] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2468,7 +2468,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SPINDA] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2476,7 +2476,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WINGULL] = { { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2484,7 +2484,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PELIPPER] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -2492,7 +2492,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SURSKIT] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2500,7 +2500,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MASQUERAIN] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, @@ -2508,7 +2508,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WAILMER] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2516,7 +2516,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WAILORD] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2524,7 +2524,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SKITTY] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2532,7 +2532,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DELCATTY] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2540,7 +2540,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KECLEON] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -2548,7 +2548,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BALTOY] = { { 0x1, 0x0, 0x0, 0x0, 0x0}, { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2556,7 +2556,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CLAYDOL] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2564,7 +2564,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NOSEPASS] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2572,7 +2572,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TORKOAL] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2580,7 +2580,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SABLEYE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -2588,7 +2588,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BARBOACH] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2596,7 +2596,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WHISCASH] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2604,7 +2604,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LUVDISC] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2612,7 +2612,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CORPHISH] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2620,7 +2620,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CRAWDAUNT] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2628,7 +2628,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FEEBAS] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2636,7 +2636,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MILOTIC] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -2644,7 +2644,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CARVANHA] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2652,7 +2652,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SHARPEDO] = { { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -2660,7 +2660,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TRAPINCH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2668,7 +2668,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VIBRAVA] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2676,7 +2676,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_FLYGON] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2684,7 +2684,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAKUHITA] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2692,7 +2692,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HARIYAMA] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -2700,7 +2700,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ELECTRIKE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -2708,7 +2708,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MANECTRIC] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -2716,7 +2716,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_NUMEL] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0xb, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2724,7 +2724,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CAMERUPT] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2732,7 +2732,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SPHEAL] = { { 0xe, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2740,7 +2740,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SEALEO] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -2748,7 +2748,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WALREIN] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2756,7 +2756,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CACNEA] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2764,7 +2764,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CACTURNE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2772,7 +2772,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SNORUNT] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2780,7 +2780,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GLALIE] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2788,7 +2788,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LUNATONE] = { { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -2796,7 +2796,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SOLROCK] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2804,7 +2804,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_AZURILL] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, @@ -2812,7 +2812,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SPOINK] = { { 0x1e, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2820,7 +2820,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GRUMPIG] = { { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2828,7 +2828,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_PLUSLE] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2836,7 +2836,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MINUN] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2844,7 +2844,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MAWILE] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2852,7 +2852,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MEDITITE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -2860,7 +2860,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_MEDICHAM] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -2868,7 +2868,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SWABLU] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2876,7 +2876,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ALTARIA] = { { 0x6, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2884,7 +2884,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WYNAUT] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2892,7 +2892,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DUSKULL] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x26, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2900,7 +2900,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DUSCLOPS] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2908,7 +2908,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ROSELIA] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -2916,7 +2916,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SLAKOTH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2924,7 +2924,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VIGOROTH] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -2932,7 +2932,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SLAKING] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2940,7 +2940,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GULPIN] = { { 0x24, 0x0, 0x0, 0x0, 0x0}, { 0xf, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2948,7 +2948,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SWALOT] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2956,7 +2956,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_TROPIUS] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -2964,7 +2964,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_WHISMUR] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2972,7 +2972,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LOUDRED] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2980,7 +2980,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_EXPLOUD] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2988,7 +2988,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CLAMPERL] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x32, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -2996,7 +2996,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_HUNTAIL] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3004,7 +3004,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GOREBYSS] = { { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x2c, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -3012,7 +3012,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ABSOL] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3020,7 +3020,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SHUPPET] = { { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3028,7 +3028,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BANETTE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3036,7 +3036,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SEVIPER] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -3044,7 +3044,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ZANGOOSE] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3052,7 +3052,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RELICANTH] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -3060,7 +3060,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ARON] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1d, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3068,7 +3068,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LAIRON] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3076,7 +3076,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_AGGRON] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3084,7 +3084,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CASTFORM] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x1a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3092,7 +3092,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_VOLBEAT] = { { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3100,7 +3100,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ILLUMISE] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x27, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -3108,7 +3108,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LILEEP] = { { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3116,7 +3116,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CRADILY] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -3124,7 +3124,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ANORITH] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -3132,7 +3132,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_ARMALDO] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -3140,7 +3140,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RALTS] = { { 0x7, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3148,7 +3148,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KIRLIA] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -3156,7 +3156,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GARDEVOIR] = { { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -3164,7 +3164,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BAGON] = { { 0x5, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3172,7 +3172,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SHELGON] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3180,7 +3180,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_SALAMENCE] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, @@ -3188,7 +3188,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_BELDUM] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3196,7 +3196,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_METANG] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3204,7 +3204,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_METAGROSS] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -3212,7 +3212,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_REGIROCK] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, @@ -3220,7 +3220,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_REGICE] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x12, 0x0, 0x0, 0x0, 0x0}, @@ -3228,7 +3228,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_REGISTEEL] = { { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0xe, 0x0, 0x0, 0x0, 0x0}, @@ -3236,7 +3236,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_KYOGRE] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, { 0x30, 0x0, 0x0, 0x0, 0x0}, @@ -3244,7 +3244,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_GROUDON] = { { 0x21, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x33, 0x0, 0x0, 0x0, 0x0}, @@ -3252,7 +3252,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_RAYQUAZA] = { { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x3, 0x0, 0x0, 0x0, 0x0}, { 0x2a, 0x0, 0x0, 0x0, 0x0}, @@ -3260,7 +3260,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LATIAS] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x0, 0x0, 0x0, 0x0, 0x0}, @@ -3268,7 +3268,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_LATIOS] = { { 0x0, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, @@ -3276,7 +3276,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_JIRACHI] = { { 0x30, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0xc, 0x0, 0x0, 0x0, 0x0}, @@ -3284,7 +3284,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_DEOXYS] = { { 0xc, 0x0, 0x0, 0x0, 0x0}, { 0x1b, 0x0, 0x0, 0x0, 0x0}, { 0x11, 0x0, 0x0, 0x0, 0x0}, @@ -3292,7 +3292,7 @@ const struct BardSound gBardSounds_Pokemon[][6] = { NULL_BARD_SOUND, NULL_BARD_SOUND }, - { + [SPECIES_CHIMECHO] = { { 0x12, 0x0, 0x0, 0x0, 0x0}, { 0x9, 0x0, 0x0, 0x0, 0x0}, { 0x18, 0x0, 0x0, 0x0, 0x0}, diff --git a/src/data/bard_music/word_pitch.h b/src/data/bard_music/word_pitch.h index 54a87acc96..35527017c6 100644 --- a/src/data/bard_music/word_pitch.h +++ b/src/data/bard_music/word_pitch.h @@ -1,182 +1,186 @@ #ifndef GUARD_WORD_PITCH_H #define GUARD_WORD_PITCH_H -const s16 gUnknown_0860A1C0[] = { - -0x300, 0x1800 +#define PITCH_END 0x1800 + +static const s16 sPitch1_0[] = { + -0x300, PITCH_END }; -const s16 gUnknown_0860A1C4[] = { - 0x0900, 0x1800 +static const s16 sPitch1_1[] = { + 0x0900, PITCH_END }; -const s16 gUnknown_0860A1C8[] = { - 0x0100, 0x1800 +static const s16 sPitch1_2[] = { + 0x0100, PITCH_END }; -const s16 gUnknown_0860A1CC[] = { - 0x0400, 0x1800 +static const s16 sPitch1_3[] = { + 0x0400, PITCH_END }; -const s16 gUnknown_0860A1D0[] = { - 0x0b00, 0x1800 +static const s16 sPitch1_4[] = { + 0x0b00, PITCH_END }; -const s16 gUnknown_0860A1D4[] = { - -0x300, -0x100, 0x1800 +static const s16 sPitch2_0[] = { + -0x300, -0x100, PITCH_END }; -const s16 gUnknown_0860A1DA[] = { - -0x300, 0x0200, 0x1800 +static const s16 sPitch2_1[] = { + -0x300, 0x0200, PITCH_END }; -const s16 gUnknown_0860A1E0[] = { - 0x0200, 0x0400, 0x1800 +static const s16 sPitch2_2[] = { + 0x0200, 0x0400, PITCH_END }; -const s16 gUnknown_0860A1E6[] = { - 0x0600, 0x0800, 0x1800 +static const s16 sPitch2_3[] = { + 0x0600, 0x0800, PITCH_END }; -const s16 gUnknown_0860A1EC[] = { - 0x0900, 0x0800, 0x1800 +static const s16 sPitch2_4[] = { + 0x0900, 0x0800, PITCH_END }; -const s16 gUnknown_0860A1F2[] = { - -0x300, -0x100, -0x300, 0x1800 +static const s16 sPitch3_0[] = { + -0x300, -0x100, -0x300, PITCH_END }; -const s16 gUnknown_0860A1FA[] = { - 0x0400, -0x300, 0x0400, 0x1800 +static const s16 sPitch3_1[] = { + 0x0400, -0x300, 0x0400, PITCH_END }; -const s16 gUnknown_0860A202[] = { - 0x0900, 0x0800, 0x0600, 0x1800 +static const s16 sPitch3_2[] = { + 0x0900, 0x0800, 0x0600, PITCH_END }; -const s16 gUnknown_0860A20A[] = { - 0x0100, 0x0200, 0x0400, 0x1800 +static const s16 sPitch3_3[] = { + 0x0100, 0x0200, 0x0400, PITCH_END }; -const s16 gUnknown_0860A212[] = { - 0x0600, 0x1000, 0x0d00, 0x1800 +static const s16 sPitch3_4[] = { + 0x0600, 0x1000, 0x0d00, PITCH_END }; -const s16 gUnknown_0860A21A[] = { - 0x0400, 0x0900, 0x0400, 0x0900, 0x1800 +static const s16 sPitch4_0[] = { + 0x0400, 0x0900, 0x0400, 0x0900, PITCH_END }; -const s16 gUnknown_0860A224[] = { - 0x0900, 0x0400, 0x0d00, 0x0400, 0x1800 +static const s16 sPitch4_1[] = { + 0x0900, 0x0400, 0x0d00, 0x0400, PITCH_END }; -const s16 gUnknown_0860A22E[] = { - 0x0100, 0x0200, 0x0400, 0x0600, 0x1800 +static const s16 sPitch4_2[] = { + 0x0100, 0x0200, 0x0400, 0x0600, PITCH_END }; -const s16 gUnknown_0860A238[] = { - 0x0800, 0x0600, 0x0400, 0x0200, 0x1800 +static const s16 sPitch4_3[] = { + 0x0800, 0x0600, 0x0400, 0x0200, PITCH_END }; -const s16 gUnknown_0860A242[] = { - 0x0f00, 0x0d00, 0x0b00, 0x0a00, 0x1800 +static const s16 sPitch4_4[] = { + 0x0f00, 0x0d00, 0x0b00, 0x0a00, PITCH_END }; -const s16 gUnknown_0860A24C[] = { - -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x1800 +static const s16 sPitch5_0[] = { + -0x300, -0x100, 0x0100, 0x0200, 0x0400, PITCH_END }; -const s16 gUnknown_0860A258[] = { - 0x0900, 0x0800, 0x0600, 0x0400, 0x0200, 0x1800 +static const s16 sPitch5_1[] = { + 0x0900, 0x0800, 0x0600, 0x0400, 0x0200, PITCH_END }; -const s16 gUnknown_0860A264[] = { - 0x0100, 0x0400, 0x0900, 0x0400, 0x0100, 0x1800 +static const s16 sPitch5_2[] = { + 0x0100, 0x0400, 0x0900, 0x0400, 0x0100, PITCH_END }; -const s16 gUnknown_0860A270[] = { - 0x0900, 0x0400, 0x0900, 0x0400, -0x300, 0x1800 +static const s16 sPitch5_3[] = { + 0x0900, 0x0400, 0x0900, 0x0400, -0x300, PITCH_END }; -const s16 gUnknown_0860A27C[] = { - 0x0b00, 0x0800, 0x0400, 0x0400, 0x0600, 0x1800 +static const s16 sPitch5_4[] = { + 0x0b00, 0x0800, 0x0400, 0x0400, 0x0600, PITCH_END }; -const s16 gUnknown_0860A288[] = { - -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x0600, 0x1800 +static const s16 sPitch6_0[] = { + -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x0600, PITCH_END }; -const s16 gUnknown_0860A296[] = { - 0x0800, 0x0600, 0x0400, 0x0200, 0x0100, -0x100, 0x1800 +static const s16 sPitch6_1[] = { + 0x0800, 0x0600, 0x0400, 0x0200, 0x0100, -0x100, PITCH_END }; -const s16 gUnknown_0860A2A4[] = { - 0x0100, 0x0200, 0x0400, 0x0100, 0x0200, 0x1000, 0x1800 +static const s16 sPitch6_2[] = { + 0x0100, 0x0200, 0x0400, 0x0100, 0x0200, 0x1000, PITCH_END }; -const s16 gUnknown_0860A2B2[] = { - 0x0400, -0x300, 0x0900, 0x0400, 0x0900, 0x0400, 0x1800 +static const s16 sPitch6_3[] = { + 0x0400, -0x300, 0x0900, 0x0400, 0x0900, 0x0400, PITCH_END }; -const s16 gUnknown_0860A2C0[] = { - 0x0800, 0x0900, 0x0800, 0x0900, 0x0800, 0x0900, 0x1800 +static const s16 sPitch6_4[] = { + 0x0800, 0x0900, 0x0800, 0x0900, 0x0800, 0x0900, PITCH_END }; -const s16 gUnknown_0860A2CE[] = { - 0x0200, 0x0100, 0x0200, 0x0100, 0x0200, 0x0400, 0x0200, 0x1800 +static const s16 sPitch7_0[] = { + 0x0200, 0x0100, 0x0200, 0x0100, 0x0200, 0x0400, 0x0200, PITCH_END }; -const s16 gUnknown_0860A2DE[] = { - 0x0100, 0x0100, -0x100, -0x100, -0x300, 0x0400, -0x300, 0x1800 +static const s16 sPitch7_1[] = { + 0x0100, 0x0100, -0x100, -0x100, -0x300, 0x0400, -0x300, PITCH_END }; -const s16 gUnknown_0860A2EE[] = { - 0x0800, 0x0900, 0x0b00, 0x0d00, 0x0e00, 0x0d00, 0x0b00, 0x1800 +static const s16 sPitch7_2[] = { + 0x0800, 0x0900, 0x0b00, 0x0d00, 0x0e00, 0x0d00, 0x0b00, PITCH_END }; -const s16 gUnknown_0860A2FE[] = { - 0x0800, 0x0600, 0x0400, 0x0200, 0x0d00, 0x0b00, 0x0900, 0x1800 +static const s16 sPitch7_3[] = { + 0x0800, 0x0600, 0x0400, 0x0200, 0x0d00, 0x0b00, 0x0900, PITCH_END }; -const s16 gUnknown_0860A30E[] = { - 0x0300, 0x0400, 0x0600, 0x0800, 0x0700, 0x0800, 0x0400, 0x1800 +static const s16 sPitch7_4[] = { + 0x0300, 0x0400, 0x0600, 0x0800, 0x0700, 0x0800, 0x0400, PITCH_END }; -const s16 *const gBardSoundPitchTables[] = { - gUnknown_0860A1C0, - gUnknown_0860A1C4, - gUnknown_0860A1C8, - gUnknown_0860A1CC, - gUnknown_0860A1D0, - gUnknown_0860A1D4, - gUnknown_0860A1DA, - gUnknown_0860A1E0, - gUnknown_0860A1E6, - gUnknown_0860A1EC, - gUnknown_0860A1F2, - gUnknown_0860A1FA, - gUnknown_0860A202, - gUnknown_0860A20A, - gUnknown_0860A212, - gUnknown_0860A21A, - gUnknown_0860A224, - gUnknown_0860A22E, - gUnknown_0860A238, - gUnknown_0860A242, - gUnknown_0860A24C, - gUnknown_0860A258, - gUnknown_0860A264, - gUnknown_0860A270, - gUnknown_0860A27C, - gUnknown_0860A288, - gUnknown_0860A296, - gUnknown_0860A2A4, - gUnknown_0860A2B2, - gUnknown_0860A2C0, - gUnknown_0860A2CE, - gUnknown_0860A2DE, - gUnknown_0860A2EE, - gUnknown_0860A2FE, - gUnknown_0860A30E +// Only sPitch7_# are used below +// This table is always indexed with (x + 30), where x is some value 0 - 4 +static const s16 *const sBardSoundPitchTables[] = { + sPitch1_0, + sPitch1_1, + sPitch1_2, + sPitch1_3, + sPitch1_4, + sPitch2_0, + sPitch2_1, + sPitch2_2, + sPitch2_3, + sPitch2_4, + sPitch3_0, + sPitch3_1, + sPitch3_2, + sPitch3_3, + sPitch3_4, + sPitch4_0, + sPitch4_1, + sPitch4_2, + sPitch4_3, + sPitch4_4, + sPitch5_0, + sPitch5_1, + sPitch5_2, + sPitch5_3, + sPitch5_4, + sPitch6_0, + sPitch6_1, + sPitch6_2, + sPitch6_3, + sPitch6_4, + sPitch7_0, + sPitch7_1, + sPitch7_2, + sPitch7_3, + sPitch7_4 }; diff --git a/src/data/battle_frontier/apprentice.h b/src/data/battle_frontier/apprentice.h index e501eb403b..285946de45 100644 --- a/src/data/battle_frontier/apprentice.h +++ b/src/data/battle_frontier/apprentice.h @@ -326,7 +326,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_LASS, .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA}, .id = 3, - .speechLost = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, 0xFFFF}, + .speechLost = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, EC_EMPTY_WORD}, }, { .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")}, @@ -358,7 +358,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_BEAUTY, .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC}, .id = 7, - .speechLost = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, + .speechLost = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, EC_EMPTY_WORD}, }, { .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")}, @@ -374,7 +374,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_HIKER, .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON}, .id = 9, - .speechLost = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLost = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, }, { .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")}, @@ -382,7 +382,7 @@ const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] = .facilityClass = FACILITY_CLASS_FISHERMAN, .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA}, .id = 10, - .speechLost = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, + .speechLost = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, EC_EMPTY_WORD}, }, { .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")}, diff --git a/src/data/battle_frontier/battle_frontier_trainers.h b/src/data/battle_frontier/battle_frontier_trainers.h index bbd88d76f0..1cae890c25 100644 --- a/src/data/battle_frontier/battle_frontier_trainers.h +++ b/src/data/battle_frontier/battle_frontier_trainers.h @@ -4,15 +4,15 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("BRADY"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NEVER, EC_WORD_GOING, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_EXCL}, - .speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, 0xFFFF}, - .speechLose = {EC_WORD_WHAT, EC_WORD_QUES, 0xFFFF, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES}, + .speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_WHAT, EC_WORD_QUES, EC_EMPTY_WORD, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES}, .monSet = gBattleFrontierTrainerMons_Brady }, [FRONTIER_TRAINER_CONNER] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("CONNER"), - .speechBefore = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, 0xFFFF, 0xFFFF}, - .speechWin = {EC_WORD_A, EC_WORD_WIN, EC_WORD_IS, EC_WORD_JUST, EC_WORD_AWESOME, 0xFFFF}, + .speechBefore = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_A, EC_WORD_WIN, EC_WORD_IS, EC_WORD_JUST, EC_WORD_AWESOME, EC_EMPTY_WORD}, .speechLose = {EC_WORD_DARN, EC_WORD_ELLIPSIS, EC_WORD_LOSING, EC_WORD_DOES, EC_WORD_BUG, EC_WORD_ME}, .monSet = gBattleFrontierTrainerMons_Conner }, @@ -20,7 +20,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("BRADLEY"), .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_MY, EC_WORD_OPPONENT, EC_WORD_TODAY}, - .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL, 0xFFFF, EC_WORD_SEE_YA, EC_WORD_LATER, EC_WORD_EXCL}, + .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_SEE_YA, EC_WORD_LATER, EC_WORD_EXCL}, .speechLose = {EC_WORD_TOMORROW, EC_WORD_IS, EC_WORD_WHEN, EC_WORD_WE, EC_WORD_REALLY, EC_WORD_BATTLE}, .monSet = gBattleFrontierTrainerMons_Bradley }, @@ -44,7 +44,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("PEGGY"), .speechBefore = {EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_BE, EC_WORD_DESTROYED, EC_WORD_EXCL}, - .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_LOLLING, EC_WORD_EXCL}, + .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_LOLLING, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_SAD, EC_WORD_THANKS, EC_WORD_TO, EC_WORD_YOU}, .monSet = gBattleFrontierTrainerMons_Peggy }, @@ -52,7 +52,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("KEITH"), .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_JUST, EC_WORD_STUDY, EC_WORD_YOU, EC_WORD_KNOW}, - .speechWin = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_STUDY, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechWin = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_STUDY, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Keith }, @@ -60,15 +60,15 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("GRAYSON"), .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_BATTLE, EC_WORD_ISN_T, EC_WORD_CHILD_S_PLAY, EC_WORD_EXCL}, - .speechWin = {EC_WORD_YOU_RE, EC_WORD_DONE, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_DONE, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, EC_EMPTY_WORD}, .speechLose = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_LIKE, EC_WORD_TOYS, EC_WORD_TO, EC_WORD_YOU}, .monSet = gBattleFrontierTrainerMons_Grayson }, [FRONTIER_TRAINER_GLENN] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("GLENN"), - .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_COOL, EC_WORD_IF_I_WIN, 0xFFFF}, - .speechWin = {EC_WORD_COOL, EC_WORD_EXCL, 0xFFFF, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM}, + .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_COOL, EC_WORD_IF_I_WIN, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_COOL, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM}, .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_COOL}, .monSet = gBattleFrontierTrainerMons_Glenn }, @@ -92,7 +92,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("ZOEY"), .speechBefore = {EC_WORD_PLEASE, EC_WORD_BATTLE, EC_WORD_LIKE, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_IT}, - .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, .speechLose = {EC_WORD_WERE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_BEING, EC_WORD_SERIOUS, EC_WORD_QUES}, .monSet = gBattleFrontierTrainerMons_Zoey }, @@ -100,8 +100,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("MANUEL"), .speechBefore = {EC_WORD_ME, EC_WORD_LOSE, EC_WORD_QUES, EC_WORD_THAT_S, EC_WORD_PREPOSTEROUS, EC_WORD_EXCL}, - .speechWin = {EC_WORD_NATURALLY, EC_WORD_I, EC_WORD_WIN, 0xFFFF, 0xFFFF, 0xFFFF}, - .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_LOST, EC_WORD_MOTHER}, + .speechWin = {EC_WORD_NATURALLY, EC_WORD_I, EC_WORD_WIN, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_LOST, EC_WORD_MOTHER}, .monSet = gBattleFrontierTrainerMons_Manuel }, [FRONTIER_TRAINER_RUSS] = { @@ -115,16 +115,16 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_DUSTIN] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("DUSTIN"), - .speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_COOL, EC_WORD_POKEMON, 0xFFFF}, - .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_WHEN_I_WIN, EC_WORD_EXCL, 0xFFFF}, - .speechLose = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_IF_I_LOSE, EC_WORD_TOO, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_COOL, EC_WORD_POKEMON, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_WHEN_I_WIN, EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_IF_I_LOSE, EC_WORD_TOO, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Dustin }, [FRONTIER_TRAINER_TINA] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("TINA"), .speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_YOU, EC_WORD_CAN, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(SWEET_KISS)}, - .speechWin = {EC_WORD_HERE_IT_IS, EC_WORD_YOUR, EC_MOVE2(SWEET_KISS), EC_WORD_FROM, EC_WORD_MY, EC_POKEMON2(JYNX)}, + .speechWin = {EC_WORD_HERE_IT_IS, EC_WORD_YOUR, EC_MOVE2(SWEET_KISS), EC_WORD_FROM, EC_WORD_MY, EC_POKEMON_NATIONAL(JYNX)}, .speechLose = {EC_WORD_YOU, EC_WORD_WANT, EC_WORD_A, EC_MOVE(SWIFT), EC_MOVE2(MEGA_KICK), EC_WORD_INSTEAD}, .monSet = gBattleFrontierTrainerMons_Tina }, @@ -133,14 +133,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("GILLIAN"), .speechBefore = {EC_WORD_THE, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_IS, EC_WORD_SO, EC_WORD_YESTERDAY}, .speechWin = {EC_WORD_POKEMON, EC_WORD_NEVER, EC_WORD_GO, EC_WORD_OUT, EC_WORD_OF, EC_WORD_FASHION}, - .speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_DISAPPOINT, EC_WORD_ME, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_DISAPPOINT, EC_WORD_ME, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Gillian }, [FRONTIER_TRAINER_ZOE] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("ZOE"), .speechBefore = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_A, EC_WORD_WORRY, EC_WORD_AT, EC_WORD_ALL}, - .speechWin = {EC_WORD_LIFE, EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_GOOD, EC_WORD_TO_ME, 0xFFFF}, + .speechWin = {EC_WORD_LIFE, EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_GOOD, EC_WORD_TO_ME, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_WORRY, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SKILL}, .monSet = gBattleFrontierTrainerMons_Zoe }, @@ -156,7 +156,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("AL"), .speechBefore = {EC_WORD_YOUR, EC_WORD_LOOK, EC_WORD_SAYS, EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_TOUGH}, - .speechWin = {EC_WORD_IT_S, EC_WORD_ME, EC_WORD_WHO_IS, EC_WORD_REALLY, EC_WORD_TOUGH, 0xFFFF}, + .speechWin = {EC_WORD_IT_S, EC_WORD_ME, EC_WORD_WHO_IS, EC_WORD_REALLY, EC_WORD_TOUGH, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I_AM, EC_WORD_RIGHT, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_TOUGH}, .monSet = gBattleFrontierTrainerMons_Al }, @@ -165,15 +165,15 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("MITCH"), .speechBefore = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_IS, EC_WORD_MY, EC_WORD_ALLY, EC_WORD_EXCL}, .speechWin = {EC_WORD_WAS, EC_WORD_THAT, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_YOU, EC_WORD_QUES}, - .speechLose = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_DIDN_T, EC_WORD_LET_ME_WIN, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_DIDN_T, EC_WORD_LET_ME_WIN, EC_WORD_QUES, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Mitch }, [FRONTIER_TRAINER_ANNE] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("ANNE"), .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_NOW}, - .speechWin = {EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_EXCL, 0xFFFF}, - .speechLose = {EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechWin = {EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Anne }, [FRONTIER_TRAINER_ALIZE] = { @@ -203,15 +203,15 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_JASON] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("JASON"), - .speechBefore = {EC_WORD_TEACH, EC_WORD_ME, EC_WORD_A, EC_WORD_GOOD, EC_WORD_STRATEGY, 0xFFFF}, - .speechWin = {EC_WORD_THAT_WAS, EC_WORD_YOUR, EC_WORD_GOOD, EC_WORD_STRATEGY, EC_WORD_QUES_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_TEACH, EC_WORD_ME, EC_WORD_A, EC_WORD_GOOD, EC_WORD_STRATEGY, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_YOUR, EC_WORD_GOOD, EC_WORD_STRATEGY, EC_WORD_QUES_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_WOW, EC_WORD_THAT, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWESOME, EC_WORD_STRATEGY}, .monSet = gBattleFrontierTrainerMons_Jason }, [FRONTIER_TRAINER_JOHN] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("JOHN"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_PRETTY, EC_WORD_NEW, EC_WORD_TRAINER, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_PRETTY, EC_WORD_NEW, EC_WORD_TRAINER, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I_AM, EC_WORD_NEW, EC_WORD_BUT, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_NEW, EC_WORD_SO, EC_WORD_WHAT, EC_WORD_IF_I_LOSE, EC_WORD_QUES}, .monSet = gBattleFrontierTrainerMons_John @@ -237,14 +237,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("CARLIE"), .speechBefore = {EC_WORD_MY, EC_WORD_SUMMER, EC_WORD_VACATION, EC_WORD_IS, EC_WORD_FOR, EC_WORD_POKEMON}, .speechWin = {EC_WORD_MY, EC_WORD_SUMMER, EC_WORD_VACATION, EC_WORD_WILL, EC_WORD_BE, EC_WORD_AWESOME}, - .speechLose = {EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_LIKE, EC_WORD_THIS, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_LIKE, EC_WORD_THIS, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Carlie }, [FRONTIER_TRAINER_GORDON] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("GORDON"), - .speechBefore = {EC_WORD_VICTORY, EC_WORD_WILL, EC_WORD_COME, EC_WORD_TO_ME, EC_WORD_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_OH_YEAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_REALLY, EC_WORD_WON}, + .speechBefore = {EC_WORD_VICTORY, EC_WORD_WILL, EC_WORD_COME, EC_WORD_TO_ME, EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_OH_YEAH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_REALLY, EC_WORD_WON}, .speechLose = {EC_WORD_NOTHING, EC_WORD_IS, EC_WORD_WORKING, EC_WORD_OUT, EC_WORD_FOR, EC_WORD_ME}, .monSet = gBattleFrontierTrainerMons_Gordon }, @@ -268,7 +268,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("CIERRA"), .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_SYNCHRONIZE, EC_WORD_MY, EC_WORD_SWIFT_SWIM}, - .speechWin = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SYNCHRONIZE, EC_WORD_WITH, EC_WORD_ME, 0xFFFF}, + .speechWin = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SYNCHRONIZE, EC_WORD_WITH, EC_WORD_ME, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_SYNCHRONIZE, EC_WORD_BETTER, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Cierra }, @@ -324,7 +324,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("AMANDA"), .speechBefore = {EC_WORD_I, EC_WORD_COME, EC_WORD_FROM, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_FAMILY}, - .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_TREASURE, EC_WORD_THIS, EC_WORD_WIN, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_TREASURE, EC_WORD_THIS, EC_WORD_WIN, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO_HOME, EC_WORD_RIGHT, EC_WORD_NOW}, .monSet = gBattleFrontierTrainerMons_Amanda }, @@ -340,7 +340,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("RAFAEL"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_EXCL, EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_SOME, EC_WORD_SPIRIT}, - .speechWin = {EC_WORD_THAT_S_IT_EXCL, EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_SPIRIT, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_THAT_S_IT_EXCL, EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_SPIRIT, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_WELL, EC_WORD_SO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_OUR, EC_WORD_SPIRIT}, .monSet = gBattleFrontierTrainerMons_Rafael }, @@ -356,15 +356,15 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("PAYTON"), .speechBefore = {EC_WORD_I, EC_WORD_TRAIN, EC_WORD_FROM, EC_WORD_THE, EC_WORD_EGG, EC_WORD_UP}, - .speechWin = {EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF}, - .speechLose = {EC_WORD_THAT_WAS, EC_WORD_A, EC_MOVE2(SOFT_BOILED), EC_WORD_LOSS, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechWin = {EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_A, EC_MOVE2(SOFT_BOILED), EC_WORD_LOSS, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Payton }, [FRONTIER_TRAINER_PAMELA] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("PAMELA"), .speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_ADORE, EC_WORD_A, EC_WORD_KIND, EC_WORD_TRAINER}, - .speechWin = {EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_YOU, EC_WORD_LOST, 0xFFFF}, + .speechWin = {EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_YOU, EC_WORD_LOST, EC_EMPTY_WORD}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_KIND, EC_WORD_AND, EC_WORD_YOU_RE, EC_WORD_ALSO, EC_WORD_STRONG}, .monSet = gBattleFrontierTrainerMons_Pamela }, @@ -379,7 +379,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_MARISA] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("MARISA"), - .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, EC_EMPTY_WORD}, .speechWin = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BETTER}, .speechLose = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_PLEASE, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Marisa @@ -397,23 +397,23 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("YOSHI"), .speechBefore = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_LOVEY_DOVEY}, .speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_THE, EC_WORD_BEST, EC_WORD_EXCL}, - .speechLose = {EC_WORD_YOU_RE, EC_WORD_IGNORANT, EC_WORD_ABOUT, EC_WORD_BUG, EC_WORD_POKEMON, 0xFFFF}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_IGNORANT, EC_WORD_ABOUT, EC_WORD_BUG, EC_WORD_POKEMON, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Yoshi }, [FRONTIER_TRAINER_DESTIN] = { .facilityClass = FACILITY_CLASS_BUG_CATCHER, .trainerName = _("DESTIN"), - .speechBefore = {EC_WORD_IT_S, EC_WORD_WAY, EC_WORD_TOO, EC_WORD_HOT, EC_WORD_HERE, 0xFFFF}, - .speechWin = {EC_WORD_I_AM, EC_WORD_ABOUT, EC_WORD_TO, EC_MOVE(OVERHEAT), 0xFFFF, 0xFFFF}, - .speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_WATER, 0xFFFF}, + .speechBefore = {EC_WORD_IT_S, EC_WORD_WAY, EC_WORD_TOO, EC_WORD_HOT, EC_WORD_HERE, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_I_AM, EC_WORD_ABOUT, EC_WORD_TO, EC_MOVE(OVERHEAT), EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_WATER, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Destin }, [FRONTIER_TRAINER_KEON] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("KEON"), - .speechBefore = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_BUT, EC_WORD_HERE_I_COME, EC_WORD_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_BUT, EC_WORD_HERE_I_COME, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_FOR, EC_WORD_MY, EC_WORD_OVERWHELMING, EC_WORD_POWER}, - .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Keon }, [FRONTIER_TRAINER_STUART] = { @@ -429,7 +429,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("NESTOR"), .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_A, EC_WORD_REALLY, EC_WORD_SMOOTH, EC_WORD_MOVE}, .speechWin = {EC_WORD_THERE, EC_WORD_WAS, EC_WORD_NOTHING, EC_WORD_SMOOTH, EC_WORD_ABOUT, EC_WORD_THAT}, - .speechLose = {EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_ARE, EC_WORD_SMOOTH, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_ARE, EC_WORD_SMOOTH, EC_WORD_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Nestor }, [FRONTIER_TRAINER_DERRICK] = { @@ -445,13 +445,13 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("BRYSON"), .speechBefore = {EC_MOVE2(POISON_POWDER), EC_WORD_IS, EC_WORD_IN, EC_WORD_OUR, EC_MOVE2(COTTON_SPORE), EC_WORD_MOVE}, .speechWin = {EC_WORD_HOW_DO, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_OUR, EC_MOVE2(POISON_POWDER), EC_WORD_QUES}, - .speechLose = {EC_WORD_MY, EC_MOVE2(COTTON_SPORE), EC_WORD_WAS, EC_WORD_USELESS, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_MY, EC_MOVE2(COTTON_SPORE), EC_WORD_WAS, EC_WORD_USELESS, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Bryson }, [FRONTIER_TRAINER_CLAYTON] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("CLAYTON"), - .speechBefore = {EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, EC_WORD_WHERE, EC_WORD_IS_IT_QUES, 0xFFFF}, + .speechBefore = {EC_WORD_HUH_QUES, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_EMPTY_WORD}, .speechWin = {EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_WORD_POKENAV}, .speechLose = {EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_WORD_SENSE}, .monSet = gBattleFrontierTrainerMons_Clayton @@ -459,7 +459,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_TRENTON] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("TRENTON"), - .speechBefore = {EC_WORD_COME_OVER, EC_WORD_FOR, EC_WORD_SOME, EC_WORD_TASTY, EC_WORD_WATER, 0xFFFF}, + .speechBefore = {EC_WORD_COME_OVER, EC_WORD_FOR, EC_WORD_SOME, EC_WORD_TASTY, EC_WORD_WATER, EC_EMPTY_WORD}, .speechWin = {EC_WORD_MMM, EC_WORD_DO, EC_WORD_YOU, EC_WORD_WANT, EC_WORD_SOME, EC_WORD_QUES}, .speechLose = {EC_WORD_I, EC_WORD_GOT, EC_WORD_THIS, EC_WORD_TASTY, EC_WORD_WATER, EC_WORD_SHOPPING}, .monSet = gBattleFrontierTrainerMons_Trenton @@ -475,9 +475,9 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_WESLEY] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("WESLEY"), - .speechBefore = {EC_POKEMON2(MEW), EC_POKEMON2(MEW), EC_WORD_IS, EC_WORD_HOW, EC_WORD_I, EC_WORD_CRY}, + .speechBefore = {EC_POKEMON_NATIONAL(MEW), EC_POKEMON_NATIONAL(MEW), EC_WORD_IS, EC_WORD_HOW, EC_WORD_I, EC_WORD_CRY}, .speechWin = {EC_WORD_YES, EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_EXCL}, - .speechLose = {EC_POKEMON2(MEW), EC_POKEMON2(MEW), EC_WORD_EXCL, EC_POKEMON2(MEW), EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechLose = {EC_POKEMON_NATIONAL(MEW), EC_POKEMON_NATIONAL(MEW), EC_WORD_EXCL, EC_POKEMON_NATIONAL(MEW), EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Wesley }, [FRONTIER_TRAINER_ANTON] = { @@ -491,7 +491,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_LAWSON] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("LAWSON"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AT, EC_WORD_HEART, EC_WORD_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AT, EC_WORD_HEART, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_NOT, EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_NOT, EC_WORD_AT, EC_WORD_ALL}, .speechLose = {EC_WORD_I_AM, EC_WORD_OLD, EC_WORD_AND, EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Lawson @@ -515,16 +515,16 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_ADRIAN] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("ADRIAN"), - .speechBefore = {EC_WORD_YAHOO, EC_WORD_EXCL, 0xFFFF, EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, 0xFFFF}, - .speechLose = {EC_WORD_GOOD_BYE, EC_WORD_EXCL, 0xFFFF, EC_WORD_GOOD_BYE, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_YAHOO, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_GOOD_BYE, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_GOOD_BYE, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Adrian }, [FRONTIER_TRAINER_TRISTAN] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("TRISTAN"), - .speechBefore = {EC_WORD_CONFUSED, EC_WORD_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS}, - .speechWin = {EC_WORD_SEE, EC_WORD_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS}, + .speechBefore = {EC_WORD_CONFUSED, EC_WORD_QUES, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS}, + .speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS}, .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_IN, EC_WORD_BATTLE}, .monSet = gBattleFrontierTrainerMons_Tristan }, @@ -548,8 +548,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("CHELSEA"), .speechBefore = {EC_WORD_I, EC_WORD_SERIOUSLY, EC_WORD_MEAN, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL}, - .speechWin = {EC_WORD_THAT_WAS, EC_WORD_MY, EC_WORD_WILL, EC_WORD_TO, EC_WORD_WIN, 0xFFFF}, - .speechLose = {EC_WORD_YOU_RE, EC_WORD_FAR, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, 0xFFFF}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_MY, EC_WORD_WILL, EC_WORD_TO, EC_WORD_WIN, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_FAR, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Chelsea }, [FRONTIER_TRAINER_DANELA] = { @@ -613,7 +613,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("JADEN"), .speechBefore = {EC_WORD_HELLO, EC_WORD_I, EC_WORD_THINK, EC_WORD_I, EC_WORD_ADORE, EC_WORD_YOU}, .speechWin = {EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_MOVE(THRASH), EC_WORD_IN, EC_MOVE2(FRUSTRATION)}, - .speechLose = {EC_WORD_THIS_IS_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_GOOD_BYE, EC_WORD_FOREVER, EC_WORD_EXCL}, + .speechLose = {EC_WORD_THIS_IS_IT_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_GOOD_BYE, EC_WORD_FOREVER, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Jaden }, [FRONTIER_TRAINER_DAKOTA] = { @@ -621,7 +621,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("DAKOTA"), .speechBefore = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_DANCE, EC_WORD_WITH, EC_WORD_POWER}, .speechWin = {EC_WORD_GOT, EC_WORD_IT, EC_WORD_QUES, EC_WORD_DANCE, EC_WORD_WITH, EC_WORD_POWER}, - .speechLose = {EC_WORD_OKAY, EC_WORD_YOU, EC_WORD_UNDERSTAND, EC_WORD_ALL_RIGHT, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_OKAY, EC_WORD_YOU, EC_WORD_UNDERSTAND, EC_WORD_ALL_RIGHT, EC_WORD_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Dakota }, [FRONTIER_TRAINER_BRAYDEN] = { @@ -637,22 +637,22 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("CORSON"), .speechBefore = {EC_WORD_I, EC_WORD_GET, EC_WORD_TO, EC_MOVE2(BEAT_UP), EC_WORD_ON, EC_WORD_YOU}, .speechWin = {EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_COOL}, - .speechLose = {EC_WORD_WHY, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_I, EC_MOVE2(CURSE), EC_WORD_YOU}, + .speechLose = {EC_WORD_WHY, EC_WORD_QUES_EXCL, EC_EMPTY_WORD, EC_WORD_I, EC_MOVE2(CURSE), EC_WORD_YOU}, .monSet = gBattleFrontierTrainerMons_Corson }, [FRONTIER_TRAINER_TREVIN] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("TREVIN"), .speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NONE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_ME}, - .speechWin = {EC_WORD_YES_SIR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST}, - .speechLose = {EC_WORD_SERIOUS, EC_WORD_QUES_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_YES_SIR_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST}, + .speechLose = {EC_WORD_SERIOUS, EC_WORD_QUES_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Trevin }, [FRONTIER_TRAINER_PATRICK] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("PATRICK"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_GIVE_UP, EC_WORD_NOW, 0xFFFF}, - .speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_DISAPPOINTED, EC_WORD_I_AM, EC_WORD_PERFECT, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_GIVE_UP, EC_WORD_NOW, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_DISAPPOINTED, EC_WORD_I_AM, EC_WORD_PERFECT, EC_EMPTY_WORD}, .speechLose = {EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Patrick }, @@ -667,9 +667,9 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_MAXWELL] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("MAXWELL"), - .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_WHO_IS, EC_WORD_YOUR, EC_WORD_RIVAL, EC_WORD_QUES, 0xFFFF}, + .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_WHO_IS, EC_WORD_YOUR, EC_WORD_RIVAL, EC_WORD_QUES, EC_EMPTY_WORD}, .speechWin = {EC_WORD_MY, EC_WORD_RIVAL, EC_WORD_IS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_FRIEND}, - .speechLose = {EC_WORD_I_AM, EC_WORD_MAKING, EC_WORD_YOU, EC_WORD_MY, EC_WORD_RIVAL, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_MAKING, EC_WORD_YOU, EC_WORD_MY, EC_WORD_RIVAL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Maxwell }, [FRONTIER_TRAINER_DARYL] = { @@ -685,22 +685,22 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("KENNETH"), .speechBefore = {EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_MOVE2(SLACK_OFF), EC_WORD_WITH, EC_WORD_ME}, .speechWin = {EC_WORD_DID, EC_WORD_MY, EC_MOVE2(TAUNT), EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES}, - .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Kenneth }, [FRONTIER_TRAINER_RICH] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("RICH"), - .speechBefore = {EC_WORD_YOUR, EC_MOVE(FACADE), EC_WORD_DOESN_T, EC_MOVE2(TRICK), EC_WORD_ME, 0xFFFF}, - .speechWin = {EC_WORD_SERIOUSLY, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_OK_QUES, 0xFFFF}, - .speechLose = {EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TOUGH, EC_WORD_ON, EC_WORD_ME, 0xFFFF}, + .speechBefore = {EC_WORD_YOUR, EC_MOVE(FACADE), EC_WORD_DOESN_T, EC_MOVE2(TRICK), EC_WORD_ME, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_SERIOUSLY, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_OK_QUES, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TOUGH, EC_WORD_ON, EC_WORD_ME, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Rich }, [FRONTIER_TRAINER_CADEN] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("CADEN"), - .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_DEFEATED, EC_WORD_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_FIRE, EC_WORD_EXCL, 0xFFFF, EC_WORD_FIRE, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_DEFEATED, EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_FIRE, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_FIRE, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_SO, EC_WORD_HOT}, .monSet = gBattleFrontierTrainerMons_Caden }, @@ -715,9 +715,9 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_NASH] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("NASH"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_BABY, EC_WORD_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_BABY, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I, EC_WORD_LEFT, EC_WORD_YOU, EC_WORD_JUST, EC_WORD_AN, EC_MOVE2(EMBER)}, - .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_WATER, EC_WORD_PLEASE}, + .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD, EC_WORD_NO, EC_WORD_WATER, EC_WORD_PLEASE}, .monSet = gBattleFrontierTrainerMons_Nash }, [FRONTIER_TRAINER_ROBBY] = { @@ -749,13 +749,13 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("ELLEN"), .speechBefore = {EC_WORD_CRUSH, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_AN, EC_WORD_EGG, EC_WORD_EXCL}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_A, EC_WORD_TASTY, EC_WORD_VICTORY, EC_WORD_FOR, EC_WORD_ME}, - .speechLose = {EC_WORD_TOO, EC_WORD_TOUGH, EC_WORD_TO, EC_WORD_CRUSH, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_TOO, EC_WORD_TOUGH, EC_WORD_TO, EC_WORD_CRUSH, EC_WORD_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Ellen }, [FRONTIER_TRAINER_RAMON] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .trainerName = _("RAMON"), - .speechBefore = {EC_WORD_OKAY, EC_WORD_EXCL, 0xFFFF, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PERFECTION}, + .speechBefore = {EC_WORD_OKAY, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PERFECTION}, .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_THAT, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, .speechLose = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_SECRET, EC_WORD_WHY, EC_WORD_I_AM, EC_WORD_HAPPY}, .monSet = gBattleFrontierTrainerMons_Ramon @@ -764,8 +764,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .trainerName = _("ARTHUR"), .speechBefore = {EC_WORD_HERE_I_COME, EC_WORD_FEELING, EC_WORD_READY, EC_WORD_FOR, EC_WORD_IT, EC_WORD_ALL}, - .speechWin = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_THAT_WAS, EC_WORD_FABULOUS, EC_WORD_EXCL}, - .speechLose = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_WHAT, EC_WORD_I, EC_WORD_NEED, 0xFFFF}, + .speechWin = {EC_WORD_THAT_S_IT_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_THAT_WAS, EC_WORD_FABULOUS, EC_WORD_EXCL}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_WHAT, EC_WORD_I, EC_WORD_NEED, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Arthur }, [FRONTIER_TRAINER_ALONDRA] = { @@ -781,7 +781,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("ADRIANA"), .speechBefore = {EC_WORD_COME, EC_WORD_SEE, EC_WORD_AN, EC_WORD_INCREDIBLE, EC_WORD_SWIFT_SWIM, EC_WORD_EXCL}, .speechWin = {EC_WORD_I, EC_WORD_MAKE, EC_WORD_IT, EC_WORD_LOOK, EC_WORD_SO, EC_WORD_EASY}, - .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_TIRED, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_TIRED, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Adriana }, [FRONTIER_TRAINER_MALIK] = { @@ -795,17 +795,17 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_JILL] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .trainerName = _("JILL"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_WINS, EC_WORD_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_WINS, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_GIVES, EC_WORD_UP, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Jill }, [FRONTIER_TRAINER_ERIK] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .trainerName = _("ERIK"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_THANK_YOU, EC_WORD_FROM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL}, - .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL}, + .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL}, .monSet = gBattleFrontierTrainerMons_Erik }, [FRONTIER_TRAINER_YAZMIN] = { @@ -843,9 +843,9 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_CARLO] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .trainerName = _("CARLO"), - .speechBefore = {EC_WORD_HAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_HAH, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD, EC_WORD_YEAH, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I, EC_WORD_DO, EC_WORD_THINGS, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_EXCL}, - .speechLose = {EC_WORD_I, EC_WORD_LOST, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_LOST, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Carlo }, [FRONTIER_TRAINER_EMILIA] = { @@ -859,7 +859,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_DALIA] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .trainerName = _("DALIA"), - .speechBefore = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_VERY, EC_WORD_EXPENSIVE, 0xFFFF}, + .speechBefore = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_VERY, EC_WORD_EXPENSIVE, EC_EMPTY_WORD}, .speechWin = {EC_WORD_DON_T, EC_WORD_COME, EC_WORD_NEAR, EC_WORD_MY, EC_WORD_BIKE, EC_WORD_EXCL}, .speechLose = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_MY, EC_WORD_BEST, EC_WORD_FRIEND}, .monSet = gBattleFrontierTrainerMons_Dalia @@ -867,24 +867,24 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_HITOMI] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("HITOMI"), - .speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_HAH, EC_WORD_EXCL_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL}, - .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL_EXCL}, + .speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD, EC_WORD_HAH, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL}, + .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL_EXCL}, .monSet = gBattleFrontierTrainerMons_Hitomi }, [FRONTIER_TRAINER_RICARDO] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("RICARDO"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_EXCL, EC_WORD_PLAY, EC_WORD_TIME, EC_WORD_IS, EC_WORD_OVER}, - .speechWin = {EC_WORD_YOU_RE, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HERE, EC_WORD_EXCL, 0xFFFF}, - .speechLose = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_HIT, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HERE, EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_HIT, EC_WORD_ME, EC_WORD_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Ricardo }, [FRONTIER_TRAINER_SHIZUKA] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("SHIZUKA"), .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_EXCL}, - .speechWin = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGET, EC_WORD_ABOUT, EC_WORD_YOU, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGET, EC_WORD_ABOUT, EC_WORD_YOU, EC_EMPTY_WORD}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_PERFECT, EC_WORD_IN, EC_WORD_EVERY, EC_WORD_WAY, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Shizuka }, @@ -900,7 +900,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("KELLY"), .speechBefore = {EC_WORD_MY, EC_WORD_NIGHT, EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_SCARY}, - .speechWin = {EC_WORD_A, EC_WORD_LADY, EC_WORD_GHOST, EC_WORD_APPEARS, EC_WORD_THERE, 0xFFFF}, + .speechWin = {EC_WORD_A, EC_WORD_LADY, EC_WORD_GHOST, EC_WORD_APPEARS, EC_WORD_THERE, EC_EMPTY_WORD}, .speechLose = {EC_WORD_THE, EC_WORD_HOME, EC_WORD_WORK, EC_WORD_IS, EC_WORD_AWFULLY, EC_WORD_SCARY}, .monSet = gBattleFrontierTrainerMons_Kelly }, @@ -908,14 +908,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("RAYNA"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_WHEN, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_POWER}, - .speechWin = {EC_WORD_UNDERSTAND, EC_WORD_MY, EC_WORD_POWER, EC_WORD_NOW, EC_WORD_QUES, 0xFFFF}, - .speechLose = {EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_UNDERSTAND, EC_WORD_MY, EC_WORD_POWER, EC_WORD_NOW, EC_WORD_QUES, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Rayna }, [FRONTIER_TRAINER_EVAN] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("EVAN"), - .speechBefore = {EC_WORD_EVERY, EC_WORD_BATTLE, EC_WORD_HAS, EC_WORD_A, EC_WORD_SMELL, 0xFFFF}, + .speechBefore = {EC_WORD_EVERY, EC_WORD_BATTLE, EC_WORD_HAS, EC_WORD_A, EC_WORD_SMELL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_OH, EC_WORD_EXCL, EC_WORD_THE, EC_MOVE(SWEET_SCENT), EC_WORD_OF, EC_WORD_VICTORY}, .speechLose = {EC_WORD_THE, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_OF, EC_WORD_A, EC_WORD_LOSS}, .monSet = gBattleFrontierTrainerMons_Evan @@ -923,23 +923,23 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_JORDAN] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("JORDAN"), - .speechBefore = {EC_WORD_GOOD, EC_WORD_EXCL, 0xFFFF, EC_WORD_COME_ON, EC_WORD_EXCL_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, - .speechLose = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES}, + .speechBefore = {EC_WORD_GOOD, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_COME_ON, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, EC_EMPTY_WORD, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES}, .monSet = gBattleFrontierTrainerMons_Jordan }, [FRONTIER_TRAINER_JOEL] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("JOEL"), - .speechBefore = {EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, - .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, - .speechLose = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechBefore = {EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Joel }, [FRONTIER_TRAINER_KRISTEN] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("KRISTEN"), - .speechBefore = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_A, EC_WORD_KID, EC_WORD_ELLIPSIS}, + .speechBefore = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_A, EC_WORD_KID, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_JUST, EC_WORD_A_LITTLE, EC_WORD_KID, EC_WORD_AFTER, EC_WORD_ALL, EC_WORD_EXCL}, .speechLose = {EC_WORD_A, EC_WORD_TOUGH, EC_WORD_KID, EC_WORD_HUH_QUES, EC_WORD_HUMPH, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Kristen @@ -947,7 +947,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_SELPHY] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("SELPHY"), - .speechBefore = {EC_WORD_HUH_QUES, EC_WORD_WHAT, EC_WORD_IS_IT_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechBefore = {EC_WORD_HUH_QUES, EC_WORD_WHAT, EC_WORD_IS_IT_QUES, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .speechWin = {EC_WORD_OH, EC_WORD_YES, EC_WORD_EXCL, EC_WORD_WHY, EC_WORD_NOT, EC_WORD_QUES}, .speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_WHY, EC_WORD_NOT, EC_WORD_QUES}, .monSet = gBattleFrontierTrainerMons_Selphy @@ -956,14 +956,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("CHLOE"), .speechBefore = {EC_WORD_COME, EC_WORD_WE, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BATTLE, EC_WORD_NOW}, - .speechWin = {EC_WORD_MORE, EC_WORD_EXCL, 0xFFFF, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_EXCL}, - .speechLose = {EC_WORD_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_STRONG, EC_WORD_YOU, EC_WORD_ARE}, + .speechWin = {EC_WORD_MORE, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_OH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_STRONG, EC_WORD_YOU, EC_WORD_ARE}, .monSet = gBattleFrontierTrainerMons_Chloe }, [FRONTIER_TRAINER_NORTON] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("NORTON"), - .speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_ONLY, EC_WORD_YOU, 0xFFFF, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_ONLY, EC_WORD_YOU, EC_EMPTY_WORD, EC_EMPTY_WORD}, .speechWin = {EC_WORD_EXCUSE_ME, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_PUSHOVER, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_SOME, EC_WORD_KIND, EC_WORD_OF, EC_WORD_AWESOME, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Norton @@ -973,15 +973,15 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("LUKAS"), .speechBefore = {EC_WORD_MY, EC_WORD_JOKING, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_EXISTS, EC_WORD_TO, EC_WORD_SHINE, EC_WORD_EXCL}, - .speechLose = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_COME, EC_WORD_TO, EC_WORD_SHINE, 0xFFFF}, + .speechLose = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_COME, EC_WORD_TO, EC_WORD_SHINE, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Lukas }, [FRONTIER_TRAINER_ZACH] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("ZACH"), .speechBefore = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_EXCELLENT, EC_MOVE2(MIMIC), EC_WORD_OF, EC_WORD_POKEMON}, - .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_LIKE, EC_WORD_A_LITTLE, EC_POKEMON2(TOGEPI), EC_WORD_EXCL}, - .speechLose = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_LIKE, EC_WORD_A, EC_POKEMON2(MANKEY), EC_WORD_EXCL}, + .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_LIKE, EC_WORD_A_LITTLE, EC_POKEMON_NATIONAL(TOGEPI), EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_LIKE, EC_WORD_A, EC_POKEMON_NATIONAL(MANKEY), EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Zach }, [FRONTIER_TRAINER_KAITLYN] = { @@ -997,7 +997,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("BREANNA"), .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_WILL, EC_WORD_CRUSH, EC_WORD_YOU, EC_WORD_EXCL}, .speechWin = {EC_WORD_HAVE, EC_WORD_SOME, EC_WORD_MORE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_EXCL}, - .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GUTS, EC_WORD_AND, EC_WORD_SKILL, 0xFFFF}, + .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GUTS, EC_WORD_AND, EC_WORD_SKILL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Breanna }, [FRONTIER_TRAINER_KENDRA] = { @@ -1005,7 +1005,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("KENDRA"), .speechBefore = {EC_WORD_IF, EC_WORD_YOU_RE, EC_WORD_SMART, EC_WORD_STOP, EC_WORD_RIGHT, EC_WORD_NOW}, .speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_STOP}, - .speechLose = {EC_WORD_WHY, EC_WORD_DIDN_T, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_WHY, EC_WORD_DIDN_T, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_QUES, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Kendra }, [FRONTIER_TRAINER_MOLLY] = { @@ -1013,7 +1013,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("MOLLY"), .speechBefore = {EC_WORD_WILL, EC_WORD_MY, EC_WORD_CUTE_CHARM, EC_MOVE2(ATTRACT), EC_WORD_YOU, EC_WORD_QUES}, .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_MY, EC_WORD_TOYS, EC_WORD_NOW}, - .speechLose = {EC_WORD_OH, EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_OH, EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Molly }, [FRONTIER_TRAINER_JAZMIN] = { @@ -1077,7 +1077,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("BALEY"), .speechBefore = {EC_MOVE(SCREECH), EC_WORD_IS, EC_WORD_LIKE, EC_WORD_MUSIC, EC_WORD_TO_ME, EC_WORD_EXCL}, .speechWin = {EC_WORD_MY, EC_MOVE(SCREECH), EC_WORD_STRATEGY, EC_WORD_IS, EC_WORD_THE, EC_WORD_BEST}, - .speechLose = {EC_WORD_YOU_RE, EC_WORD_SOUNDPROOF, EC_WORD_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_SOUNDPROOF, EC_WORD_QUES, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Baley }, [FRONTIER_TRAINER_ZACKARY] = { @@ -1093,7 +1093,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("GABRIEL"), .speechBefore = {EC_MOVE2(POUND), EC_WORD_THE, EC_WORD_THICK_FAT, EC_WORD_ON, EC_WORD_MY, EC_MOVE2(BELLY_DRUM)}, .speechWin = {EC_MOVE2(POUND), EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_MOVE2(POUND), EC_WORD_MY, EC_MOVE2(BELLY_DRUM)}, - .speechLose = {EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_WORD_WAS, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLose = {EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_WORD_WAS, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Gabriel }, [FRONTIER_TRAINER_EMILY] = { @@ -1115,17 +1115,17 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_SOFIA] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("SOFIA"), - .speechBefore = {EC_POKEMON(LOUDRED), EC_WORD_PROBABLY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), 0xFFFF}, + .speechBefore = {EC_POKEMON(LOUDRED), EC_WORD_PROBABLY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), EC_EMPTY_WORD}, .speechWin = {EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_FEELING, EC_WORD_THAT, EC_WORD_I, EC_WORD_GET}, - .speechLose = {EC_WORD_I, EC_WORD_WORK, EC_WORD_AT, EC_WORD_THE, EC_WORD_DEPT_STORE, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_WORK, EC_WORD_AT, EC_WORD_THE, EC_WORD_DEPT_STORE, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Sofia }, [FRONTIER_TRAINER_BRADEN] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("BRADEN"), - .speechBefore = {EC_WORD_I_CHOOSE_YOU, EC_WORD_EXCL, 0xFFFF, EC_WORD_THIS_IS_IT_EXCL, 0xFFFF, 0xFFFF}, + .speechBefore = {EC_WORD_I_CHOOSE_YOU, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_THIS_IS_IT_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_PRETTY, EC_WORD_AWESOME, EC_WORD_ABOUT, EC_WORD_MYSELF}, - .speechLose = {EC_WORD_ALL_RIGHT, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_EXCL}, + .speechLose = {EC_WORD_ALL_RIGHT, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Braden }, [FRONTIER_TRAINER_KAYDEN] = { @@ -1133,7 +1133,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("KAYDEN"), .speechBefore = {EC_WORD_THEY, EC_WORD_OVERDO, EC_WORD_THAT, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_THAT, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_ISN_T, EC_WORD_FOR, EC_WORD_ME}, - .speechLose = {EC_WORD_HEY, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TASTY, 0xFFFF}, + .speechLose = {EC_WORD_HEY, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TASTY, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Kayden }, [FRONTIER_TRAINER_COOPER] = { @@ -1141,7 +1141,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("COOPER"), .speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_ABSOLUTELY, EC_WORD_BE, EC_WORD_A, EC_WORD_PUSHOVER}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_TOO, EC_WORD_EXCITING, EC_WORD_FOR, EC_WORD_ME, EC_WORD_ELLIPSIS}, - .speechLose = {EC_WORD_PLEASE, EC_WORD_EXCL, 0xFFFF, EC_WORD_SORRY, EC_WORD_I_AM, EC_WORD_SORRY}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_SORRY, EC_WORD_I_AM, EC_WORD_SORRY}, .monSet = gBattleFrontierTrainerMons_Cooper }, [FRONTIER_TRAINER_JULIA] = { @@ -1179,8 +1179,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_DOMINIC] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("DOMINIC"), - .speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_THIS, EC_WORD_EXCELLENT, EC_WORD_CAMERA, 0xFFFF}, - .speechWin = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_WAS, EC_WORD_AWFULLY, EC_WORD_EXPENSIVE, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_THIS, EC_WORD_EXCELLENT, EC_WORD_CAMERA, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_WAS, EC_WORD_AWFULLY, EC_WORD_EXPENSIVE, EC_EMPTY_WORD}, .speechLose = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_DOESN_T, EC_WORD_MISS, EC_WORD_A, EC_WORD_THING}, .monSet = gBattleFrontierTrainerMons_Dominic }, @@ -1188,8 +1188,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("NIKOLAS"), .speechBefore = {EC_WORD_I, EC_MOVE2(MIMIC), EC_WORD_POKEMON, EC_WORD_AFTER, EC_WORD_EVERY, EC_WORD_BATTLE}, - .speechWin = {EC_WORD_IF_I_WIN, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON2(TAUROS)}, - .speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON2(MILTANK)}, + .speechWin = {EC_WORD_IF_I_WIN, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON_NATIONAL(TAUROS)}, + .speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON_NATIONAL(MILTANK)}, .monSet = gBattleFrontierTrainerMons_Nikolas }, [FRONTIER_TRAINER_VALERIA] = { @@ -1212,16 +1212,16 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .trainerName = _("MEGHAN"), .speechBefore = {EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_OUT, EC_WORD_TIME, EC_WORD_TO, EC_WORD_PLAY}, - .speechWin = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_LIKES, EC_WORD_COMICS, 0xFFFF}, - .speechLose = {EC_WORD_IT_S, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_SOON, 0xFFFF}, + .speechWin = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_LIKES, EC_WORD_COMICS, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_IT_S, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_SOON, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Meghan }, [FRONTIER_TRAINER_ROBERTO] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("ROBERTO"), - .speechBefore = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_INVINCIBLE, EC_WORD_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_INVINCIBLE, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_YOU, EC_WORD_WEREN_T, EC_WORD_BAD, EC_WORD_I_WAS, EC_WORD_JUST, EC_WORD_BETTER}, - .speechLose = {EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_SATISFIED, EC_WORD_YET, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_SATISFIED, EC_WORD_YET, EC_WORD_QUES, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Roberto }, [FRONTIER_TRAINER_DAMIAN] = { @@ -1229,7 +1229,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("DAMIAN"), .speechBefore = {EC_WORD_MY, EC_WORD_PURE_POWER, EC_WORD_IS, EC_WORD_MACHINE, EC_WORD_LIKE, EC_WORD_EXCL}, .speechWin = {EC_WORD_MY, EC_MOVE2(MACH_PUNCH), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_A, EC_MOVE(BRICK_BREAK)}, - .speechLose = {EC_WORD_ARRGH, EC_WORD_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_ARRGH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_NO, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Damian }, [FRONTIER_TRAINER_BRODY] = { @@ -1243,7 +1243,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_GRAHAM] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("GRAHAM"), - .speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_WAHAHAHA, EC_WORD_EXCL, EC_WORD_WAHAHAHA, EC_WORD_WAHAHAHA, EC_WORD_EXCL_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_MY, EC_WORD_BAD}, .monSet = gBattleFrontierTrainerMons_Graham @@ -1252,23 +1252,23 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("TYLOR"), .speechBefore = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_FEELING, EC_WORD_MY, EC_MOVE2(HEAT_WAVE), EC_WORD_QUES}, - .speechWin = {EC_WORD_YES, EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_YES, EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_BUT, EC_WORD_I_WAS, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_FOR, EC_WORD_YOU}, .monSet = gBattleFrontierTrainerMons_Tylor }, [FRONTIER_TRAINER_JAREN] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("JAREN"), - .speechBefore = {EC_WORD_FIGHTING, EC_WORD_SPIRIT, EC_WORD_QUES, EC_WORD_ME, EC_WORD_QUES, 0xFFFF}, - .speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MORE, EC_WORD_CUTE, EC_WORD_POKEMON, 0xFFFF}, - .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_LOOK, EC_WORD_QUITE, EC_WORD_CUTE, 0xFFFF}, + .speechBefore = {EC_WORD_FIGHTING, EC_WORD_SPIRIT, EC_WORD_QUES, EC_WORD_ME, EC_WORD_QUES, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MORE, EC_WORD_CUTE, EC_WORD_POKEMON, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_LOOK, EC_WORD_QUITE, EC_WORD_CUTE, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Jaren }, [FRONTIER_TRAINER_CORDELL] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("CORDELL"), .speechBefore = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_DECIDED, EC_WORD_ON, EC_WORD_SPIRIT}, - .speechWin = {EC_WORD_CAN_T, EC_WORD_YOU, EC_WORD_ACCEPT, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_CAN_T, EC_WORD_YOU, EC_WORD_ACCEPT, EC_WORD_THAT, EC_WORD_QUES, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_ON, EC_WORD_MY, EC_WORD_WAY}, .monSet = gBattleFrontierTrainerMons_Cordell }, @@ -1291,7 +1291,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_JOHAN] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("JOHAN"), - .speechBefore = {EC_WORD_WINTER, EC_WORD_WILL, EC_WORD_SOON, EC_WORD_BE, EC_WORD_HERE, 0xFFFF}, + .speechBefore = {EC_WORD_WINTER, EC_WORD_WILL, EC_WORD_SOON, EC_WORD_BE, EC_WORD_HERE, EC_EMPTY_WORD}, .speechWin = {EC_WORD_MY, EC_WORD_ALLOWANCE, EC_WORD_COULD, EC_WORD_USE, EC_WORD_A, EC_MOVE2(HELPING_HAND)}, .speechLose = {EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_USE, EC_WORD_MY, EC_WORD_ALLOWANCE, EC_WORD_UP}, .monSet = gBattleFrontierTrainerMons_Johan @@ -1315,7 +1315,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_ISIAH] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("ISIAH"), - .speechBefore = {EC_WORD_I, EC_WORD_PRETEND, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_A_LOT, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_PRETEND, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_A_LOT, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I, EC_MOVE2(TRICK), EC_WORD_MOTHER, EC_WORD_FOR, EC_WORD_MY, EC_WORD_ALLOWANCE}, .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_WANT, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE}, .monSet = gBattleFrontierTrainerMons_Isiah @@ -1340,14 +1340,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("MEGAN"), .speechBefore = {EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_AN, EC_MOVE(AROMATHERAPY), EC_WORD_BATH}, - .speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_HEALTHY, EC_WORD_CLEAR_BODY, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_HEALTHY, EC_WORD_CLEAR_BODY, EC_EMPTY_WORD}, .speechLose = {EC_WORD_IF, EC_WORD_ONLY, EC_MOVE(AROMATHERAPY), EC_WORD_WERE, EC_WORD_LESS, EC_WORD_EXPENSIVE}, .monSet = gBattleFrontierTrainerMons_Megan }, [FRONTIER_TRAINER_ISSAC] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("ISSAC"), - .speechBefore = {EC_WORD_MY, EC_WORD_HOBBY, EC_WORD_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechBefore = {EC_WORD_MY, EC_WORD_HOBBY, EC_WORD_QUES, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_ANY, EC_WORD_KIND, EC_WORD_OF, EC_MOVE2(WATER_SPORT)}, .speechLose = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_ANY, EC_WORD_KIND, EC_WORD_OF, EC_MOVE2(MUD_SPORT)}, .monSet = gBattleFrontierTrainerMons_Issac @@ -1355,8 +1355,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_QUINTON] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("QUINTON"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_SAD, EC_WORD_CAUSE, EC_WORD_I_AM, EC_WORD_TOO_WEAK, 0xFFFF}, - .speechWin = {EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_SAD, EC_WORD_CAUSE, EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, EC_EMPTY_WORD}, .speechLose = {EC_WORD_HEY, EC_WORD_WHAT, EC_WORD_DID, EC_WORD_I, EC_WORD_DO, EC_WORD_QUES}, .monSet = gBattleFrontierTrainerMons_Quinton }, @@ -1372,7 +1372,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("ANSLEY"), .speechBefore = {EC_WORD_I_AM, EC_WORD_BORED, EC_WORD_ELLIPSIS, EC_WORD_DANCE, EC_WORD_FOR, EC_WORD_ME}, - .speechWin = {EC_WORD_YOU_VE, EC_WORD_BORED, EC_WORD_ME, EC_WORD_SOME, EC_WORD_MORE, 0xFFFF}, + .speechWin = {EC_WORD_YOU_VE, EC_WORD_BORED, EC_WORD_ME, EC_WORD_SOME, EC_WORD_MORE, EC_EMPTY_WORD}, .speechLose = {EC_WORD_TAKE, EC_WORD_YOUR, EC_MOVE2(FRUSTRATION), EC_WORD_SOME, EC_WORD_OTHER, EC_WORD_PLACE}, .monSet = gBattleFrontierTrainerMons_Ansley }, @@ -1380,8 +1380,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_BUG_CATCHER, .trainerName = _("HOLDEN"), .speechBefore = {EC_WORD_LET_S, EC_WORD_COMMEMORATE, EC_WORD_MY, EC_WORD_COOLNESS, EC_WORD_IN, EC_WORD_BATTLE}, - .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_PRAISE, 0xFFFF}, - .speechLose = {EC_WORD_YOUR, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_AMUSING, 0xFFFF}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_PRAISE, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_YOUR, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_AMUSING, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Holden }, [FRONTIER_TRAINER_LUCA] = { @@ -1396,14 +1396,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("JAMISON"), .speechBefore = {EC_WORD_MY, EC_MOVE2(SECRET_POWER), EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_TO, EC_WORD_POKEMON}, - .speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_QUES, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_USE, EC_MOVE(SMOKESCREEN), EC_WORD_TO, EC_WORD_ESCAPE}, .monSet = gBattleFrontierTrainerMons_Jamison }, [FRONTIER_TRAINER_GUNNAR] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("GUNNAR"), - .speechBefore = {EC_WORD_I, EC_MOVE(CUT), EC_WORD_DOWN, EC_WORD_EVERY, EC_WORD_OPPONENT, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_MOVE(CUT), EC_WORD_DOWN, EC_WORD_EVERY, EC_WORD_OPPONENT, EC_EMPTY_WORD}, .speechWin = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS}, .speechLose = {EC_WORD_PLEASE, EC_WORD_LOSE, EC_WORD_THAT, EC_MOVE(SCARY_FACE), EC_WORD_OF, EC_WORD_YOURS}, .monSet = gBattleFrontierTrainerMons_Gunnar @@ -1413,22 +1413,22 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("CRAIG"), .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_FOR, EC_WORD_MY, EC_WORD_TRAIN}, .speechWin = {EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_ISN_T, EC_WORD_HERE, EC_WORD_YET, EC_WORD_ELLIPSIS}, - .speechLose = {EC_WORD_HERE_IT_IS, EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_SEE_YA, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_HERE_IT_IS, EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_SEE_YA, EC_WORD_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Craig }, [FRONTIER_TRAINER_PIERCE] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("PIERCE"), .speechBefore = {EC_WORD_THERE, EC_WORD_WAS, EC_WORD_A, EC_MOVE2(HEAT_WAVE), EC_WORD_LAST, EC_WORD_WEEK}, - .speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(HEAT_WAVE), 0xFFFF}, - .speechLose = {EC_WORD_DIDN_T, EC_WORD_IT, EC_MOVE(HAIL), EC_WORD_TOO, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(HEAT_WAVE), EC_EMPTY_WORD}, + .speechLose = {EC_WORD_DIDN_T, EC_WORD_IT, EC_MOVE(HAIL), EC_WORD_TOO, EC_WORD_QUES, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Pierce }, [FRONTIER_TRAINER_REGINA] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("REGINA"), .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_PLAY, EC_WORD_IN, EC_WORD_WATER}, - .speechWin = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_COME, EC_WORD_OUT, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_COME, EC_WORD_OUT, EC_EMPTY_WORD}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_MUCH, EC_WORD_GOOD, EC_WORD_IN, EC_WORD_WATER}, .monSet = gBattleFrontierTrainerMons_Regina }, @@ -1469,7 +1469,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("HUNTER"), .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_A, EC_WORD_TOTALLY, EC_WORD_COOL, EC_MOVE(CROSS_CHOP)}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_DO, EC_WORD_A, EC_MOVE(CROSS_CHOP)}, - .speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_A, EC_WORD_MISTAKE, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_A, EC_WORD_MISTAKE, EC_WORD_QUES, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Hunter }, [FRONTIER_TRAINER_AIDEN] = { @@ -1483,9 +1483,9 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_XAVIER] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("XAVIER"), - .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, 0xFFFF, EC_WORD_LOOK, EC_WORD_LOOK, EC_WORD_EXCL_EXCL}, - .speechWin = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, EC_WORD_THAT_WAS, EC_WORD_FUNNY, 0xFFFF}, - .speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL}, + .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_LOOK, EC_WORD_LOOK, EC_WORD_EXCL_EXCL}, + .speechWin = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, EC_WORD_THAT_WAS, EC_WORD_FUNNY, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL}, .monSet = gBattleFrontierTrainerMons_Xavier }, [FRONTIER_TRAINER_CLINTON] = { @@ -1493,7 +1493,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("CLINTON"), .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_QUES}, .speechWin = {EC_WORD_YOUR, EC_MOVE2(FURY_SWIPES), EC_WORD_YOUR, EC_MOVE(STRENGTH), EC_WORD_YOUNG, EC_WORD_TRAINER}, - .speechLose = {EC_WORD_TCH, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_TCH, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Clinton }, [FRONTIER_TRAINER_JESSE] = { @@ -1501,7 +1501,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("JESSE"), .speechBefore = {EC_WORD_THIS, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_FOR, EC_WORD_MY, EC_WORD_MOTHER}, .speechWin = {EC_WORD_MOTHER, EC_WORD_WILL, EC_WORD_BE, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_ME}, - .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MY, EC_WORD_MOTHER, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MY, EC_WORD_MOTHER, EC_WORD_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Jesse }, [FRONTIER_TRAINER_EDUARDO] = { @@ -1515,7 +1515,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_HAL] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("HAL"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_TRENDY, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_TRENDY, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_HIP_AND, EC_WORD_HAPPENING, EC_WORD_OH_YEAH, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_ALWAYS, EC_WORD_TRENDY, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH}, .monSet = gBattleFrontierTrainerMons_Hal @@ -1525,7 +1525,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("GAGE"), .speechBefore = {EC_WORD_HERE_IT_IS, EC_WORD_A, EC_WORD_FLYING, EC_WORD_TYPE, EC_WORD_HIDDEN, EC_WORD_MOVE}, .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_FLYING, EC_WORD_TYPE, EC_WORD_VICTORY, EC_WORD_EXCL}, - .speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_JUST, EC_MOVE(FLY), EC_WORD_AWAY, 0xFFFF}, + .speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_JUST, EC_MOVE(FLY), EC_WORD_AWAY, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Gage }, [FRONTIER_TRAINER_ARNOLD] = { @@ -1563,8 +1563,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_GUSTAVO] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("GUSTAVO"), - .speechBefore = {EC_MOVE(CHARGE), EC_WORD_EXCL, 0xFFFF, EC_MOVE(CHARGE), EC_WORD_EXCL_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_SURRENDER, EC_WORD_QUES, 0xFFFF, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES}, + .speechBefore = {EC_MOVE(CHARGE), EC_WORD_EXCL, EC_EMPTY_WORD, EC_MOVE(CHARGE), EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_SURRENDER, EC_WORD_QUES, EC_EMPTY_WORD, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES}, .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_SURRENDER, EC_WORD_YET}, .monSet = gBattleFrontierTrainerMons_Gustavo }, @@ -1581,7 +1581,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("ALFREDO"), .speechBefore = {EC_WORD_A, EC_WORD_FIERY, EC_WORD_GOURMET, EC_WORD_AM, EC_WORD_I, EC_WORD_EXCL}, .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_TASTY, EC_WORD_GOURMET, EC_WORD_VICTORY, EC_WORD_EXCL}, - .speechLose = {EC_WORD_WHAT, EC_WORD_A, EC_WORD_DISASTER, EC_WORD_THAT_WAS, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_WHAT, EC_WORD_A, EC_WORD_DISASTER, EC_WORD_THAT_WAS, EC_WORD_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Alfredo }, [FRONTIER_TRAINER_RUBEN] = { @@ -1589,15 +1589,15 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("RUBEN"), .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING}, .speechWin = {EC_WORD_GET, EC_WORD_GOING, EC_WORD_EXCL, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE}, - .speechLose = {EC_WORD_I_VE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING, 0xFFFF}, + .speechLose = {EC_WORD_I_VE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Ruben }, [FRONTIER_TRAINER_LAMAR] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("LAMAR"), - .speechBefore = {EC_WORD_A, EC_MOVE2(PRESENT), EC_WORD_FOR, EC_WORD_ME, EC_WORD_QUES, 0xFFFF}, + .speechBefore = {EC_WORD_A, EC_MOVE2(PRESENT), EC_WORD_FOR, EC_WORD_ME, EC_WORD_QUES, EC_EMPTY_WORD}, .speechWin = {EC_WORD_MMM, EC_WORD_THIS, EC_WORD_IS, EC_WORD_QUITE, EC_WORD_TASTY, EC_WORD_ELLIPSIS}, - .speechLose = {EC_WORD_OH, EC_WORD_IT_S, EC_WORD_A, EC_WORD_GAME, EC_WORD_IS_IT_QUES, 0xFFFF}, + .speechLose = {EC_WORD_OH, EC_WORD_IT_S, EC_WORD_A, EC_WORD_GAME, EC_WORD_IS_IT_QUES, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Lamar }, [FRONTIER_TRAINER_JAXON] = { @@ -1645,14 +1645,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("SKYLER"), .speechBefore = {EC_MOVE2(INGRAIN), EC_WORD_IS, EC_WORD_MY, EC_WORD_CHOICE, EC_WORD_BATTLE, EC_WORD_MOVE}, .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MOVE, EC_WORD_ME, EC_WORD_NOW, EC_WORD_EXCL}, - .speechLose = {EC_WORD_YOU, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DOWN, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLose = {EC_WORD_YOU, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DOWN, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Skyler }, [FRONTIER_TRAINER_RUTH] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("RUTH"), .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_BATTLE}, - .speechWin = {EC_WORD_THAT_WAS, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_PLEASE, EC_WORD_STOP, EC_WORD_I, EC_WORD_DON_T, EC_WORD_ENJOY, EC_WORD_THIS}, .monSet = gBattleFrontierTrainerMons_Ruth }, @@ -1669,7 +1669,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("PEDRO"), .speechBefore = {EC_WORD_A, EC_WORD_SWIFT_SWIM, EC_WORD_WILL, EC_WORD_DO, EC_WORD_YOU, EC_WORD_GOOD}, .speechWin = {EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_I, EC_WORD_SINK, EC_WORD_AN, EC_WORD_OPPONENT}, - .speechLose = {EC_WORD_UH_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_EXCL}, + .speechLose = {EC_WORD_UH_OH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Pedro }, [FRONTIER_TRAINER_ERICK] = { @@ -1693,7 +1693,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("JOYCE"), .speechBefore = {EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GO, EC_WORD_AHAHA, EC_WORD_EXCL}, .speechWin = {EC_WORD_LALALA, EC_WORD_NO, EC_WORD_LOSING, EC_WORD_FOR, EC_WORD_ME, EC_WORD_EXCL}, - .speechLose = {EC_WORD_LALALA, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_LALALA, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_HUH_QUES, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Joyce }, [FRONTIER_TRAINER_TODD] = { @@ -1707,8 +1707,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_GAVIN] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("GAVIN"), - .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(BIDE), EC_WORD_MY, EC_WORD_TIME, 0xFFFF}, - .speechWin = {EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(BIDE), EC_WORD_MY, EC_WORD_TIME, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES, EC_EMPTY_WORD}, .speechLose = {EC_WORD_MY, EC_WORD_MISTAKE, EC_WORD_WAS, EC_WORD_TOO, EC_WORD_EXPENSIVE, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Gavin }, @@ -1716,7 +1716,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("MALORY"), .speechBefore = {EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_SHOW, EC_WORD_ME, EC_WORD_CUTE, EC_WORD_POKEMON}, - .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, + .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, .speechLose = {EC_WORD_TCH, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_VERY, EC_WORD_NICE}, .monSet = gBattleFrontierTrainerMons_Malory }, @@ -1733,7 +1733,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("OSCAR"), .speechBefore = {EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_IN, EC_WORD_FULL}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_YOUR, EC_WORD_FULL, EC_WORD_POWER, EC_WORD_EXCL}, - .speechLose = {EC_WORD_NOT, EC_WORD_FUNNY, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, 0xFFFF}, + .speechLose = {EC_WORD_NOT, EC_WORD_FUNNY, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Oscar }, [FRONTIER_TRAINER_WILSON] = { @@ -1772,8 +1772,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("ALONZO"), .speechBefore = {EC_WORD_I_VE, EC_WORD_NOT, EC_WORD_LOST, EC_WORD_ONCE, EC_WORD_YET, EC_WORD_EXCL}, - .speechWin = {EC_WORD_YOUR, EC_WORD_SAD, EC_WORD_LOOK, EC_WORD_BECOMES, EC_WORD_YOU, 0xFFFF}, - .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechWin = {EC_WORD_YOUR, EC_WORD_SAD, EC_WORD_LOOK, EC_WORD_BECOMES, EC_WORD_YOU, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Alonzo }, [FRONTIER_TRAINER_VINCE] = { @@ -1812,7 +1812,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("CARRIE"), .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_SHOW, EC_WORD_YOU, EC_WORD_GUTSY, EC_WORD_EXCL}, - .speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_ABOUT, EC_WORD_GUTS, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_ABOUT, EC_WORD_GUTS, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_ELLIPSIS, EC_MOVE(SELF_DESTRUCT), EC_WORD_MODE, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Carrie }, @@ -1827,9 +1827,9 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_TYLER] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("TYLER"), - .speechBefore = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_LET_S, EC_WORD_GO, EC_WORD_EXCL_EXCL}, - .speechWin = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_WON, EC_WORD_YO}, - .speechLose = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_LOST, EC_WORD_YO}, + .speechBefore = {EC_WORD_YO, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_LET_S, EC_WORD_GO, EC_WORD_EXCL_EXCL}, + .speechWin = {EC_WORD_YO, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_WON, EC_WORD_YO}, + .speechLose = {EC_WORD_YO, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_LOST, EC_WORD_YO}, .monSet = gBattleFrontierTrainerMons_Tyler }, [FRONTIER_TRAINER_CHAZ] = { @@ -1867,7 +1867,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_DORINE] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .trainerName = _("DORINE"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AND, EC_WORD_STRONG, EC_WORD_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AND, EC_WORD_STRONG, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_GOOD, EC_WORD_QUES}, .speechLose = {EC_WORD_THIS, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_OUT, EC_WORD_AT, EC_WORD_ALL}, .monSet = gBattleFrontierTrainerMons_Dorine @@ -1883,9 +1883,9 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_DAVIN] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("DAVIN"), - .speechBefore = {EC_WORD_LET_S, EC_WORD_HEAR, EC_WORD_YOU, EC_MOVE2(ROAR), EC_WORD_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_VICTORY, EC_WORD_EXCL_EXCL, 0xFFFF}, - .speechLose = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_WHY, EC_WORD_QUES_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_LET_S, EC_WORD_HEAR, EC_WORD_YOU, EC_MOVE2(ROAR), EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_WROOOAAR_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_VICTORY, EC_WORD_EXCL_EXCL, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_WROOOAAR_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_WHY, EC_WORD_QUES_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Davin }, [FRONTIER_TRAINER_TREVON] = { @@ -1915,7 +1915,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_RAUL] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("RAUL"), - .speechBefore = {EC_WORD_I, EC_WORD_REJECT, EC_WORD_EVERY, EC_WORD_WEAK, EC_WORD_TRAINER, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_REJECT, EC_WORD_EVERY, EC_WORD_WEAK, EC_WORD_TRAINER, EC_EMPTY_WORD}, .speechWin = {EC_WORD_HUMPH, EC_WORD_EXCL, EC_WORD_ANOTHER, EC_WORD_WEAK, EC_WORD_TRAINER, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NOTHING, EC_WORD_WEAK, EC_WORD_ABOUT, EC_WORD_YOU}, .monSet = gBattleFrontierTrainerMons_Raul @@ -1923,7 +1923,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_KAY] = { .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("KAY"), - .speechBefore = {EC_WORD_AND, EC_WORD_YET, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_QUES, 0xFFFF}, + .speechBefore = {EC_WORD_AND, EC_WORD_YET, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_QUES, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_GOOD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_AT, EC_WORD_LAST, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Kay @@ -1940,7 +1940,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("ALANA"), .speechBefore = {EC_WORD_EAT, EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_ATTACK, EC_WORD_YOU, EC_WORD_EXCL}, - .speechWin = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_LEARN, 0xFFFF}, + .speechWin = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_LEARN, EC_EMPTY_WORD}, .speechLose = {EC_WORD_SO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_ATTACK}, .monSet = gBattleFrontierTrainerMons_Alana }, @@ -1948,7 +1948,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("ALEXAS"), .speechBefore = {EC_WORD_GOOD, EC_WORD_TO, EC_WORD_MEET_YOU, EC_WORD_YOUNG, EC_WORD_TRAINER, EC_WORD_EXCL}, - .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, 0xFFFF, EC_WORD_GIVE, EC_WORD_IT, EC_WORD_UP}, + .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_GIVE, EC_WORD_IT, EC_WORD_UP}, .speechLose = {EC_WORD_YOU, EC_WORD_ARE, EC_WORD_A, EC_WORD_STRONG, EC_WORD_TRAINER, EC_WORD_KID}, .monSet = gBattleFrontierTrainerMons_Alexas }, @@ -1964,7 +1964,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("JASPER"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_OLD, EC_WORD_I_AM, EC_WORD_SKILLED, EC_WORD_EXCL}, - .speechWin = {EC_WORD_SKILLED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_SKILLED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I_AM, EC_WORD_SHOCKED, EC_WORD_EXCL, EC_WORD_DOWN, EC_WORD_I, EC_WORD_GO}, .monSet = gBattleFrontierTrainerMons_Jasper }, @@ -1972,14 +1972,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("NADIA"), .speechBefore = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_DOWN, EC_WORD_EXCL}, - .speechWin = {EC_WORD_HAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU}, - .speechLose = {EC_WORD_I_AM, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_DOWNCAST, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechWin = {EC_WORD_HAH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU}, + .speechLose = {EC_WORD_I_AM, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_DOWNCAST, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Nadia }, [FRONTIER_TRAINER_MIRANDA] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("MIRANDA"), - .speechBefore = {EC_WORD_WELL, EC_WORD_WELL, 0xFFFF, EC_WORD_LET_S, EC_WORD_START, 0xFFFF}, + .speechBefore = {EC_WORD_WELL, EC_WORD_WELL, EC_EMPTY_WORD, EC_WORD_LET_S, EC_WORD_START, EC_EMPTY_WORD}, .speechWin = {EC_WORD_WHAT, EC_WORD_QUES, EC_WORD_DONE, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES}, .speechLose = {EC_WORD_WELL, EC_WORD_I, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_I_AM, EC_WORD_TOO_WEAK}, .monSet = gBattleFrontierTrainerMons_Miranda @@ -1987,8 +1987,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_EMMA] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("EMMA"), - .speechBefore = {EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_ABOUT, EC_WORD_YOU, 0xFFFF}, - .speechWin = {EC_WORD_I, EC_WORD_THINK, EC_WORD_I_VE, EC_WORD_MISHEARD, EC_WORD_THINGS, 0xFFFF}, + .speechBefore = {EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_ABOUT, EC_WORD_YOU, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_I, EC_WORD_THINK, EC_WORD_I_VE, EC_WORD_MISHEARD, EC_WORD_THINGS, EC_EMPTY_WORD}, .speechLose = {EC_WORD_WHAT, EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_IS, EC_WORD_RIGHT}, .monSet = gBattleFrontierTrainerMons_Emma }, @@ -2004,15 +2004,15 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("STANLY"), .speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_AN, EC_WORD_EASY, EC_WORD_MATCH}, - .speechWin = {EC_WORD_IT, EC_WORD_REALLY, EC_WORD_WAS, EC_WORD_EASY, 0xFFFF, 0xFFFF}, - .speechLose = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_HAPPY, EC_WORD_NOW, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_IT, EC_WORD_REALLY, EC_WORD_WAS, EC_WORD_EASY, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_HAPPY, EC_WORD_NOW, EC_WORD_QUES, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Stanly }, [FRONTIER_TRAINER_DARIO] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("DARIO"), .speechBefore = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_SAYS, EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN}, - .speechWin = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_HAS, EC_WORD_BEEN, EC_WORD_PERFECT, 0xFFFF}, + .speechWin = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_HAS, EC_WORD_BEEN, EC_WORD_PERFECT, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_SEE, EC_WORD_THIS, EC_MOVE(REVERSAL), EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Dario }, @@ -2020,7 +2020,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_PSYCHIC_F, .trainerName = _("KARLEE"), .speechBefore = {EC_WORD_SOMETHING, EC_WORD_GOOD, EC_WORD_WILL, EC_WORD_COME, EC_WORD_OF, EC_WORD_THIS}, - .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_FANTASTIC, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_FANTASTIC, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_THAT, EC_WORD_SOMETHING, EC_WORD_GOOD, EC_WORD_WENT, EC_WORD_TO, EC_WORD_YOU}, .monSet = gBattleFrontierTrainerMons_Karlee }, @@ -2043,7 +2043,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_DELILAH] = { .facilityClass = FACILITY_CLASS_HEX_MANIAC, .trainerName = _("DELILAH"), - .speechBefore = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_IF_I_WIN, EC_WORD_OK_QUES, 0xFFFF}, + .speechBefore = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_IF_I_WIN, EC_WORD_OK_QUES, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOU, EC_WORD_ANGRY}, .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GRUDGE), EC_WORD_WITH, EC_WORD_YOU}, .monSet = gBattleFrontierTrainerMons_Delilah @@ -2060,16 +2060,16 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_HEX_MANIAC, .trainerName = _("LEXIE"), .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_SCARY, EC_WORD_POKEMON, EC_WORD_QUES}, - .speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_SCARY, EC_WORD_EH_QUES, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_SCARY, EC_WORD_EH_QUES, EC_EMPTY_WORD, EC_EMPTY_WORD}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_SCARY, EC_WORD_THAN, EC_WORD_MY, EC_WORD_POKEMON}, .monSet = gBattleFrontierTrainerMons_Lexie }, [FRONTIER_TRAINER_MILLER] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("MILLER"), - .speechBefore = {EC_WORD_HELLO, EC_WORD_QUES, 0xFFFF, EC_WORD_HELLO, EC_WORD_QUES_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_HELLO, EC_WORD_QUES, EC_EMPTY_WORD, EC_WORD_HELLO, EC_WORD_QUES_EXCL, EC_EMPTY_WORD}, .speechWin = {EC_WORD_HELLO, EC_WORD_MOTHER, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, - .speechLose = {EC_WORD_MY, EC_WORD_PHONE, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLose = {EC_WORD_MY, EC_WORD_PHONE, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Miller }, [FRONTIER_TRAINER_MARV] = { @@ -2099,7 +2099,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_GREGORY] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("GREGORY"), - .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD, EC_WORD_YET, 0xFFFF}, + .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD, EC_WORD_YET, EC_EMPTY_WORD}, .speechWin = {EC_WORD_WHO, EC_WORD_SAYS, EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_OLD, EC_WORD_QUES}, .speechLose = {EC_WORD_PLEASE, EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD}, .monSet = gBattleFrontierTrainerMons_Gregory @@ -2107,23 +2107,23 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_REESE] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("REESE"), - .speechBefore = {EC_WORD_I_VE, EC_WORD_A, EC_WORD_COUPLE, EC_WORD_THINGS, 0xFFFF, 0xFFFF}, - .speechWin = {EC_WORD_DON_T, EC_WORD_DIET, EC_WORD_PLAY, EC_WORD_SPORTS, EC_WORD_INSTEAD, 0xFFFF}, + .speechBefore = {EC_WORD_I_VE, EC_WORD_A, EC_WORD_COUPLE, EC_WORD_THINGS, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_DON_T, EC_WORD_DIET, EC_WORD_PLAY, EC_WORD_SPORTS, EC_WORD_INSTEAD, EC_EMPTY_WORD}, .speechLose = {EC_WORD_INSTEAD, EC_WORD_OF, EC_WORD_TELEVISION, EC_WORD_GET, EC_WORD_A, EC_WORD_BOOK}, .monSet = gBattleFrontierTrainerMons_Reese }, [FRONTIER_TRAINER_MASON] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .trainerName = _("MASON"), - .speechBefore = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_THIS, EC_WORD_SCARY, 0xFFFF}, - .speechWin = {EC_WORD_THANK_YOU, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_NOW}, - .speechLose = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechBefore = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_THIS, EC_WORD_SCARY, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_NOW}, + .speechLose = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Mason }, [FRONTIER_TRAINER_TOBY] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .trainerName = _("TOBY"), - .speechBefore = {EC_WORD_LISTEN, EC_WORD_UP, 0xFFFF, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_WIN}, + .speechBefore = {EC_WORD_LISTEN, EC_WORD_UP, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_WIN}, .speechWin = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_OR, EC_WORD_WHAT, EC_WORD_QUES}, .speechLose = {EC_WORD_I, EC_WORD_CAN, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_AT, EC_WORD_SMARTNESS}, .monSet = gBattleFrontierTrainerMons_Toby @@ -2141,14 +2141,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("PIPER"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_YOU, EC_WORD_NEED, EC_WORD_A, EC_WORD_SPEED_BOOST, EC_WORD_QUES}, .speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_SHOW, EC_WORD_MORE, EC_WORD_GUTS}, - .speechLose = {EC_WORD_OH, EC_WORD_YOU, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_OH, EC_WORD_YOU, EC_WORD_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Piper }, [FRONTIER_TRAINER_FINN] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .trainerName = _("FINN"), - .speechBefore = {EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_TRAINER, EC_WORD_BATTLE, EC_WORD_ELLIPSIS, 0xFFFF}, - .speechWin = {EC_WORD_WON_T, EC_WORD_THIS, EC_WORD_EVER, EC_WORD_END, EC_WORD_QUES, 0xFFFF}, + .speechBefore = {EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_TRAINER, EC_WORD_BATTLE, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_WON_T, EC_WORD_THIS, EC_WORD_EVER, EC_WORD_END, EC_WORD_QUES, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_GET, EC_WORD_TO, EC_MOVE2(REST), EC_WORD_A_LITTLE}, .monSet = gBattleFrontierTrainerMons_Finn }, @@ -2157,7 +2157,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("SAMIR"), .speechBefore = {EC_WORD_I, EC_MOVE2(DIVE), EC_WORD_BELOW, EC_WORD_THE, EC_MOVE2(SURF), EC_WORD_EXCL}, .speechWin = {EC_WORD_YAHOO, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(DIVE), EC_WORD_YOU, EC_WORD_EXCL}, - .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_SINK, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_SINK, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Samir }, [FRONTIER_TRAINER_FIONA] = { @@ -2179,7 +2179,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_NICO] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .trainerName = _("NICO"), - .speechBefore = {EC_WORD_LIKE, EC_WORD_A, EC_MOVE(SONIC_BOOM), EC_WORD_I_VE_ARRIVED, 0xFFFF, 0xFFFF}, + .speechBefore = {EC_WORD_LIKE, EC_WORD_A, EC_MOVE(SONIC_BOOM), EC_WORD_I_VE_ARRIVED, EC_EMPTY_WORD, EC_EMPTY_WORD}, .speechWin = {EC_WORD_SORRY, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SO, EC_WORD_DOWNCAST}, .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_WITH, EC_WORD_A, EC_MOVE2(SUPERSONIC), EC_WORD_SPEED_BOOST}, .monSet = gBattleFrontierTrainerMons_Nico @@ -2220,7 +2220,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("LIAM"), .speechBefore = {EC_WORD_WE, EC_WORD_REALLY, EC_WORD_DISLIKE, EC_WORD_FIRE, EC_WORD_AND, EC_WORD_FLYING}, - .speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_BAD, EC_WORD_HEY_QUES, 0xFFFF}, + .speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_BAD, EC_WORD_HEY_QUES, EC_EMPTY_WORD}, .speechLose = {EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_WHAT, EC_WORD_WE, EC_WORD_DISLIKE, EC_WORD_HEY_QUES}, .monSet = gBattleFrontierTrainerMons_Liam }, @@ -2269,14 +2269,14 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .trainerName = _("TRISTON"), .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_RATHER, EC_WORD_LOOK, EC_WORD_AT, EC_WORD_POKEMON}, .speechWin = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL}, - .speechLose = {EC_WORD_SEE, EC_WORD_QUES, 0xFFFF, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_LOSE}, + .speechLose = {EC_WORD_SEE, EC_WORD_QUES, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_LOSE}, .monSet = gBattleFrontierTrainerMons_Triston }, [FRONTIER_TRAINER_CHARLES] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("CHARLES"), .speechBefore = {EC_WORD_IT_S, EC_WORD_HOPELESS, EC_WORD_TO, EC_MOVE2(STRUGGLE), EC_WORD_WITH, EC_WORD_ME}, - .speechWin = {EC_MOVE(SUBMISSION), EC_WORD_WAS, EC_WORD_YOUR, EC_WORD_ONLY, EC_WORD_CHOICE, 0xFFFF}, + .speechWin = {EC_MOVE(SUBMISSION), EC_WORD_WAS, EC_WORD_YOUR, EC_WORD_ONLY, EC_WORD_CHOICE, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_DOWN, EC_WORD_DOWN, EC_WORD_DOWN, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Charles }, @@ -2284,7 +2284,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("RAYMOND"), .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_HEAR, EC_WORD_MY, EC_WORD_SONG, EC_WORD_QUES}, - .speechWin = {EC_WORD_SATISFIED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_SATISFIED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_SATISFIED, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE}, .monSet = gBattleFrontierTrainerMons_Raymond }, @@ -2348,7 +2348,7 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("FERRIS"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_IN, EC_WORD_THE, EC_WORD_OLD, EC_WORD_CLASS}, - .speechWin = {EC_WORD_NO_1, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_NO_1, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_NO_1, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_ELLIPSIS}, .monSet = gBattleFrontierTrainerMons_Ferris }, @@ -2363,24 +2363,24 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU [FRONTIER_TRAINER_PAIGE] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("PAIGE"), - .speechBefore = {EC_WORD_LET_S, EC_WORD_ENJOY, EC_WORD_OUR, EC_WORD_BATTLE, EC_WORD_TOGETHER, 0xFFFF}, - .speechWin = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH}, - .speechLose = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_DO, EC_WORD_GO, EC_WORD_ON}, + .speechBefore = {EC_WORD_LET_S, EC_WORD_ENJOY, EC_WORD_OUR, EC_WORD_BATTLE, EC_WORD_TOGETHER, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_THAT_S_IT_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH}, + .speechLose = {EC_WORD_THAT_S_IT_EXCL, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_DO, EC_WORD_GO, EC_WORD_ON}, .monSet = gBattleFrontierTrainerMons_Paige }, [FRONTIER_TRAINER_ANYA] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("ANYA"), .speechBefore = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_OH, EC_WORD_SO, EC_WORD_PRETTY, EC_WORD_FASHION}, - .speechWin = {EC_WORD_FASHION, EC_WORD_SHOULD, EC_WORD_MATCH, EC_WORD_THE, EC_WORD_PERSON, 0xFFFF}, - .speechLose = {EC_WORD_PRETTY, EC_WORD_COULD, EC_WORD_BE, EC_WORD_GOOD, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_FASHION, EC_WORD_SHOULD, EC_WORD_MATCH, EC_WORD_THE, EC_WORD_PERSON, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_PRETTY, EC_WORD_COULD, EC_WORD_BE, EC_WORD_GOOD, EC_EMPTY_WORD, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Anya }, [FRONTIER_TRAINER_DAWN] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("DAWN"), - .speechBefore = {EC_WORD_I, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_EXCL, 0xFFFF}, - .speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_A, EC_WORD_BABY, EC_WORD_EXCL, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_A, EC_WORD_BABY, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_YOU, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_MOVE, EC_WORD_ON, EC_WORD_EXCL}, .monSet = gBattleFrontierTrainerMons_Dawn }, @@ -2388,8 +2388,8 @@ const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COU .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("ABBY"), .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_THAT_S, EC_WORD_REFRESHING}, - .speechWin = {EC_WORD_VICTORY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), EC_WORD_EXCL, 0xFFFF}, - .speechLose = {EC_WORD_WHAT, EC_WORD_AN, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_VICTORY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), EC_WORD_EXCL, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_WHAT, EC_WORD_AN, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_EXCL, EC_EMPTY_WORD}, .monSet = gBattleFrontierTrainerMons_Abby }, [FRONTIER_TRAINER_GRETEL] = { diff --git a/src/data/battle_frontier/battle_tent.h b/src/data/battle_frontier/battle_tent.h index 1615d9562c..bce7979c8c 100644 --- a/src/data/battle_frontier/battle_tent.h +++ b/src/data/battle_frontier/battle_tent.h @@ -616,9 +616,9 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[NUM_BATTLE_TENT_ [SLATEPORT_TENT_TRAINER_MAGGIE] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("MAGGIE"), - .speechBefore = {EC_POKEMON(VULPIX), EC_POKEMON(XATU), EC_POKEMON2(UMBREON), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_WORD_ELLIPSIS}, + .speechBefore = {EC_POKEMON(VULPIX), EC_POKEMON(XATU), EC_POKEMON_NATIONAL(UMBREON), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_WORD_ELLIPSIS}, .speechWin = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON(SEVIPER), EC_WORD_EXCL, -1}, - .speechLose = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON2(SNORLAX), EC_WORD_ELLIPSIS, EC_WORD_UH_OH}, + .speechLose = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON_NATIONAL(SNORLAX), EC_WORD_ELLIPSIS, EC_WORD_UH_OH}, .monSet = gSlateportBattleTentTrainerMons_Maggie }, [SLATEPORT_TENT_TRAINER_STEPHON] = { diff --git a/src/data/battle_frontier/trainer_hill.h b/src/data/battle_frontier/trainer_hill.h index 0268526a69..59cfabd644 100644 --- a/src/data/battle_frontier/trainer_hill.h +++ b/src/data/battle_frontier/trainer_hill.h @@ -314,7 +314,7 @@ static const struct TrHillFloor sDataTagJPDefault_Floors[] = { .speechBefore = { EC_WORD_SISTER, EC_WORD_ALTHOUGH, EC_WORD_KIND, EC_WORD_MATCH, EC_WORD_PLEASE, EC_WORD_WITHOUT }, .speechWin = { EC_WORD_KIND, EC_WORD_ELLIPSIS, EC_WORD_INSTEAD, EC_WORD_DEEP, EC_WORD_WEAK, EC_WORD_QUES }, .speechLose = { EC_WORD_AWFUL, EC_WORD_GWAH, EC_WORD_HOPELESS, EC_WORD_CAN_T_WIN, EC_WORD_IS, EC_WORD_NONE }, - .speechAfter = { EC_WORD_AWW, 0xFFFF, 0xFFFF, EC_WORD_ALMOST, EC_WORD_GOOD, EC_WORD_ANYWHERE }, + .speechAfter = { EC_WORD_AWW, EC_EMPTY_WORD, EC_EMPTY_WORD, EC_WORD_ALMOST, EC_WORD_GOOD, EC_WORD_ANYWHERE }, .mons = { [0] = NULL_BATTLE_TOWER_POKEMON, [1] = NULL_BATTLE_TOWER_POKEMON, @@ -444,7 +444,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = .unused = 0, .speechBefore = {EC_WORD_YOU, EC_WORD_CAN, EC_WORD_CHOOSE, EC_WORD_NOT, EC_WORD_TO, EC_WORD_BELIEVE}, .speechWin = {EC_WORD_A, EC_WORD_SUPER, EC_WORD_NATURAL, EC_WORD_POWER, EC_WORD_HAS, EC_WORD_COME}, - .speechLose = {EC_WORD_THIS, EC_WORD_MUST_BE, EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_THIS, EC_WORD_MUST_BE, EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_EXCL, EC_EMPTY_WORD}, .speechAfter = {EC_WORD_I, EC_WORD_WILL, EC_WORD_DISAPPEAR, EC_WORD_IN, EC_WORD_THE, EC_WORD_DARK}, .mons = { @@ -589,7 +589,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = .name = _("ALFONSO"), .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .unused = 0, - .speechBefore = {EC_WORD_I, EC_WORD_NEVER, EC_WORD_TAKE, EC_WORD_A, EC_WORD_TRAIN, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_NEVER, EC_WORD_TAKE, EC_WORD_A, EC_WORD_TRAIN, EC_EMPTY_WORD}, .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_MOVE2(SUPERSONIC), EC_WORD_ON, EC_WORD_MY, EC_WORD_BIKE}, .speechLose = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_EXCL, EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_IT}, .speechAfter = {EC_WORD_A, EC_WORD_BIKE, EC_WORD_OVER, EC_WORD_ANY, EC_WORD_TRAIN, EC_WORD_EXCL}, @@ -907,8 +907,8 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .unused = 0, .speechBefore = {EC_WORD_SOME, EC_WORD_THINGS, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_DO, EC_WORD_ALONE}, - .speechWin = {EC_WORD_YOU, EC_WORD_WIN, EC_WORD_AS, EC_WORD_A, EC_WORD_GROUP, 0xFFFF}, - .speechLose = {EC_WORD_WE, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_TOGETHER, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_YOU, EC_WORD_WIN, EC_WORD_AS, EC_WORD_A, EC_WORD_GROUP, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_WE, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_TOGETHER, EC_WORD_QUES, EC_EMPTY_WORD}, .speechAfter = {EC_WORD_MAYBE, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_BOY, EC_WORD_FRIEND}, .mons = { @@ -1086,7 +1086,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = .speechBefore = {EC_WORD_LET_S, EC_MOVE2(WRAP), EC_WORD_THINGS, EC_WORD_UP, EC_WORD_HERE, EC_WORD_HEY_QUES}, .speechWin = {EC_WORD_WOULD, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_GO_HOME, EC_WORD_QUES}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SORRY, EC_WORD_FRIEND}, - .speechAfter = {EC_WORD_HAVEN_T, EC_WORD_YOU, EC_WORD_DONE, EC_WORD_ENOUGH, EC_WORD_QUES, 0xFFFF}, + .speechAfter = {EC_WORD_HAVEN_T, EC_WORD_YOU, EC_WORD_DONE, EC_WORD_ENOUGH, EC_WORD_QUES, EC_EMPTY_WORD}, .mons = { [0] = @@ -1229,7 +1229,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .unused = 0, .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_STRONG, EC_WORD_BEAUTY, EC_WORD_AROUND, EC_WORD_HERE}, - .speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_EXCL, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_TODAY, EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_EXCL}, .speechAfter = {EC_WORD_WHY, EC_WORD_YES, EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_THANK_YOU, EC_WORD_EXCL}, .mons = @@ -1244,12 +1244,12 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = .attackEV = 252, .speedEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xCB, .nickname = _("SKITTY"), @@ -1404,8 +1404,8 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = .name = _("KEENAN"), .facilityClass = FACILITY_CLASS_PSYCHIC_M, .unused = 0, - .speechBefore = {EC_WORD_YOU, EC_WORD_LOOK, EC_WORD_SO, EC_WORD_HURRIED, 0xFFFF, 0xFFFF}, - .speechWin = {EC_WORD_TOO, EC_WORD_BAD, 0xFFFF, EC_WORD_TIME, EC_WORD_IS, EC_WORD_UP}, + .speechBefore = {EC_WORD_YOU, EC_WORD_LOOK, EC_WORD_SO, EC_WORD_HURRIED, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_TOO, EC_WORD_BAD, EC_EMPTY_WORD, EC_WORD_TIME, EC_WORD_IS, EC_WORD_UP}, .speechLose = {EC_WORD_DOES, EC_WORD_THE, EC_WORD_TIME, EC_WORD_WORRY, EC_WORD_YOU, EC_WORD_QUES}, .speechAfter = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_HAVE, EC_WORD_TIME, EC_WORD_TO, EC_WORD_CHAT}, .mons = @@ -1547,7 +1547,7 @@ static const struct TrHillFloor sDataTagNormal_Floors[] = .unused = 0, .speechBefore = {EC_WORD_IT_S, EC_WORD_HOT, EC_WORD_ELLIPSIS, EC_WORD_WHAT, EC_WORD_A, EC_WORD_STENCH}, .speechWin = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_AN, EC_WORD_OFFENSIVE, EC_WORD_STENCH}, - .speechLose = {EC_WORD_I, EC_MOVE2(COVET), EC_WORD_ANY, EC_WORD_STRONG, EC_WORD_STENCH, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_MOVE2(COVET), EC_WORD_ANY, EC_WORD_STRONG, EC_WORD_STENCH, EC_EMPTY_WORD}, .speechAfter = {EC_WORD_MY, EC_WORD_SENSE, EC_WORD_OF, EC_WORD_SMELL, EC_WORD_ISN_T, EC_WORD_NORMAL}, .mons = { @@ -1731,8 +1731,8 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .unused = 0, .speechBefore = {EC_WORD_GOOD, EC_WORD_CHILDREN, EC_WORD_WILL, EC_WORD_GET, EC_WORD_A, EC_MOVE2(PRESENT)}, .speechWin = {EC_WORD_THANK_YOU, EC_WORD_MY, EC_WORD_VICTORY, EC_WORD_IS, EC_WORD_YOUR, EC_MOVE2(PRESENT)}, - .speechLose = {EC_WORD_THAT_WAS, EC_WORD_MY, EC_MOVE2(PRESENT), EC_WORD_TO, EC_WORD_YOU, 0xFFFF}, - .speechAfter = {EC_WORD_WELL_THEN, EC_WORD_CONGRATS, EC_WORD_MY, EC_WORD_FRIEND, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_MY, EC_MOVE2(PRESENT), EC_WORD_TO, EC_WORD_YOU, EC_EMPTY_WORD}, + .speechAfter = {EC_WORD_WELL_THEN, EC_WORD_CONGRATS, EC_WORD_MY, EC_WORD_FRIEND, EC_EMPTY_WORD, EC_EMPTY_WORD}, .mons = { [0] = @@ -1870,7 +1870,7 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .unused = 0, .speechBefore = {EC_WORD_CAN, EC_WORD_YOU, EC_WORD_SENSE, EC_WORD_ME, EC_MOVE(FOCUS_ENERGY), EC_WORD_QUES}, .speechWin = {EC_WORD_THAT_S, EC_WORD_ABOUT, EC_WORD_RIGHT, EC_WORD_I, EC_WORD_WOULD, EC_WORD_THINK}, - .speechLose = {EC_WORD_THINGS, EC_WORD_DON_T, EC_WORD_ALWAYS, EC_WORD_WORK, EC_WORD_OUT, 0xFFFF}, + .speechLose = {EC_WORD_THINGS, EC_WORD_DON_T, EC_WORD_ALWAYS, EC_WORD_WORK, EC_WORD_OUT, EC_EMPTY_WORD}, .speechAfter = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LONESOME, EC_WORD_AND, EC_WORD_SAD, EC_WORD_NOW}, .mons = { @@ -2040,7 +2040,7 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .unused = 0, .speechBefore = {EC_WORD_HI, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_FEELING, EC_WORD_UPBEAT, EC_WORD_QUES}, - .speechWin = {EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_FEELING, EC_WORD_WELL, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_FEELING, EC_WORD_WELL, EC_WORD_QUES, EC_EMPTY_WORD}, .speechLose = {EC_WORD_I, EC_WORD_CAN, EC_WORD_SEE, EC_WORD_YOU_RE, EC_WORD_FEELING, EC_WORD_GREAT}, .speechAfter = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_LOOK, EC_WORD_READY, EC_WORD_TO, EC_WORD_HUSTLE}, .mons = @@ -2380,8 +2380,8 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .unused = 0, .speechBefore = {EC_WORD_GET, EC_WORD_READY, EC_WORD_FOR, EC_WORD_AN, EC_WORD_AWESOME, EC_WORD_TIME}, - .speechWin = {EC_WORD_HEY, EC_WORD_HEY, EC_WORD_EXCL, EC_WORD_WHAT_S_UP_QUES, 0xFFFF, 0xFFFF}, - .speechLose = {EC_WORD_AWW, EC_WORD_COULDN_T, EC_WORD_YOU, EC_WORD_LET_ME_WIN, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_HEY, EC_WORD_HEY, EC_WORD_EXCL, EC_WORD_WHAT_S_UP_QUES, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechLose = {EC_WORD_AWW, EC_WORD_COULDN_T, EC_WORD_YOU, EC_WORD_LET_ME_WIN, EC_WORD_QUES, EC_EMPTY_WORD}, .speechAfter = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_MY, EC_WORD_SKILL, EC_WORD_QUES}, .mons = { @@ -2717,11 +2717,11 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .spAttackEV = 255, .otId = TRAINER_HILL_OTID, .hpIV = 30, - .attackIV = 31, + .attackIV = MAX_PER_STAT_IVS, .defenseIV = 30, - .speedIV = 31, + .speedIV = MAX_PER_STAT_IVS, .spAttackIV = 30, - .spDefenseIV = 31, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x202, .nickname = _("UNOWN"), @@ -2738,11 +2738,11 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .spAttackEV = 255, .otId = TRAINER_HILL_OTID, .hpIV = 30, - .attackIV = 31, - .defenseIV = 31, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, .speedIV = 30, .spAttackIV = 30, - .spDefenseIV = 31, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x10001, .nickname = _("UNOWN"), @@ -2840,10 +2840,10 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .name = _("FRANCISCO"), .facilityClass = FACILITY_CLASS_POKEFAN_M, .unused = 0, - .speechBefore = {EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_TOO, 0xFFFF}, - .speechWin = {EC_WORD_SO, EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_YOU, EC_WORD_LOSE, 0xFFFF}, + .speechBefore = {EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_TOO, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_SO, EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_YOU, EC_WORD_LOSE, EC_EMPTY_WORD}, .speechLose = {EC_WORD_NO, EC_WORD_WONDER, EC_WORD_I, EC_WORD_COULDN_T, EC_WORD_BEAT, EC_WORD_YOU}, - .speechAfter = {EC_WORD_YES, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_THANK_YOU, 0xFFFF, 0xFFFF}, + .speechAfter = {EC_WORD_YES, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_THANK_YOU, EC_EMPTY_WORD, EC_EMPTY_WORD}, .mons = { [0] = @@ -2921,11 +2921,11 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .spAttackEV = 255, .otId = TRAINER_HILL_OTID, .hpIV = 30, - .attackIV = 31, + .attackIV = MAX_PER_STAT_IVS, .defenseIV = 30, .speedIV = 30, .spAttackIV = 30, - .spDefenseIV = 31, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x302, .nickname = _("UNOWN"), @@ -2941,10 +2941,10 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .hpEV = 255, .attackEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, + .hpIV = MAX_PER_STAT_IVS, .attackIV = 30, - .defenseIV = 31, - .speedIV = 31, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, .spAttackIV = 30, .spDefenseIV = 30, .abilityNum = 0, @@ -2962,12 +2962,12 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = { .hpEV = 255, .spAttackEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, .defenseIV = 30, .speedIV = 30, - .spAttackIV = 31, - .spDefenseIV = 31, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x301, .nickname = _("UNOWN"), @@ -3023,10 +3023,10 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = { .name = _("MEREDITH"), .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .unused = 0, - .speechBefore = {EC_WORD_UM, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I, EC_WORD_ELLIPSIS, 0xFFFF}, - .speechWin = {EC_WORD_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_UM, EC_WORD_ELLIPSIS, EC_WORD_YAY}, - .speechLose = {EC_WORD_UM, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_WAAAH, EC_WORD_ELLIPSIS, 0xFFFF}, - .speechAfter = {EC_WORD_UM, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_SAD, EC_WORD_ELLIPSIS}, + .speechBefore = {EC_WORD_UM, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_I, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, + .speechWin = {EC_WORD_OH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_UM, EC_WORD_ELLIPSIS, EC_WORD_YAY}, + .speechLose = {EC_WORD_UM, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_WAAAH, EC_WORD_ELLIPSIS, EC_EMPTY_WORD}, + .speechAfter = {EC_WORD_UM, EC_WORD_ELLIPSIS, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_SAD, EC_WORD_ELLIPSIS}, .mons = { [0] = @@ -3820,12 +3820,12 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x32, .nickname = _("SMOOCHUM"), @@ -3842,12 +3842,12 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xC8, .nickname = _("AZURILL"), @@ -3864,12 +3864,12 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x0, .nickname = _("ELEKID"), @@ -3886,12 +3886,12 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = { .attackEV = 252, .speedEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x0, .nickname = _("CLEFFA"), @@ -3908,12 +3908,12 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = { .defenseEV = 130, .spDefenseEV = 130, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x84, .nickname = _("WYNAUT"), @@ -3930,12 +3930,12 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xF, .nickname = _("MAGBY"), @@ -4319,12 +4319,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .defenseEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x35, .nickname = _("SNORLAX"), @@ -4341,12 +4341,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .speedEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x3, .nickname = _("MILTANK"), @@ -4363,12 +4363,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .spAttackEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x7F, .nickname = _("URSARING"), @@ -4385,12 +4385,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .spDefenseEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x80, .nickname = _("SLAKING"), @@ -4407,12 +4407,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .speedEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x3, .nickname = _("KANGASKHAN"), @@ -4429,12 +4429,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .speedEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x80, .nickname = _("ZANGOOSE"), @@ -4464,12 +4464,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 110, .spAttackEV = 200, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 1, .personality = 0xF, .nickname = _("SLOWKING"), @@ -4486,12 +4486,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x28, .nickname = _("ESPEON"), @@ -4508,12 +4508,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 1, .personality = 0xF, .nickname = _("STARMIE"), @@ -4530,12 +4530,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xF, .nickname = _("GENGAR"), @@ -4552,12 +4552,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xF, .nickname = _("GARDEVOIR"), @@ -4574,12 +4574,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xF, .nickname = _("ALAKAZAM"), @@ -4641,12 +4641,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .spDefenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x3, .nickname = _("SWELLOW"), @@ -4663,12 +4663,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .spDefenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x3, .nickname = _("MACHAMP"), @@ -4685,12 +4685,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .spDefenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x3, .nickname = _("URSARING"), @@ -4707,12 +4707,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .spDefenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x80, .nickname = _("KINGLER"), @@ -4729,12 +4729,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .defenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x80, .nickname = _("TYRANITAR"), @@ -4751,12 +4751,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .spDefenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x80, .nickname = _("DRAGONITE"), @@ -4786,12 +4786,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xA, .nickname = _("JOLTEON"), @@ -4808,12 +4808,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xA, .nickname = _("ALAKAZAM"), @@ -4830,12 +4830,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 1, .personality = 0xA, .nickname = _("STARMIE"), @@ -4852,12 +4852,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 252, .spDefenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x82, .nickname = _("DUSCLOPS"), @@ -4874,12 +4874,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xD2, .nickname = _("NINETALES"), @@ -4896,12 +4896,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 252, .spDefenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x85, .nickname = _("BANETTE"), @@ -4948,8 +4948,8 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .unused = 0, .speechBefore = {EC_WORD_OH_DEAR, EC_WORD_THIS, EC_WORD_MATCH, EC_WORD_IS, EC_WORD_FOR, EC_WORD_YOU}, .speechWin = {EC_WORD_OH_DEAR, EC_WORD_DID, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_QUES}, - .speechLose = {EC_WORD_OH_DEAR, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, 0xFFFF, 0xFFFF}, - .speechAfter = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_GRANDMOTHER, EC_WORD_STRONG, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_OH_DEAR, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, EC_EMPTY_WORD, EC_EMPTY_WORD}, + .speechAfter = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_GRANDMOTHER, EC_WORD_STRONG, EC_WORD_QUES, EC_EMPTY_WORD}, .mons = { [0] = @@ -4963,12 +4963,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 130, .spDefenseEV = 130, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x94, .nickname = _("WOBBUFFET"), @@ -4985,12 +4985,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 130, .spDefenseEV = 130, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x85, .nickname = _("EXPLOUD"), @@ -5007,12 +5007,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 130, .spDefenseEV = 130, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x0, .nickname = _("CROBAT"), @@ -5029,12 +5029,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 252, .speedEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 1, .personality = 0xD, .nickname = _("DUGTRIO"), @@ -5051,12 +5051,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 252, .spAttackEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x5, .nickname = _("ELECTRODE"), @@ -5073,12 +5073,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spDefenseEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x14, .nickname = _("GENGAR"), @@ -5094,7 +5094,7 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speechBefore = {EC_WORD_OH_DEAR, EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN, EC_WORD_FOR, EC_WORD_YOU}, .speechWin = {EC_WORD_OH_DEAR, EC_WORD_WE, EC_WORD_HAVE, EC_WORD_A, EC_WORD_PARTY, EC_WORD_LATER}, .speechLose = {EC_WORD_OH_DEAR, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_TO, EC_WORD_DISAPPOINT, EC_WORD_YOU}, - .speechAfter = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_GRANDFATHER, EC_WORD_COOL, EC_WORD_QUES, 0xFFFF}, + .speechAfter = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_GRANDFATHER, EC_WORD_COOL, EC_WORD_QUES, EC_EMPTY_WORD}, .mons = { [0] = @@ -5108,12 +5108,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 130, .spDefenseEV = 130, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x82, .nickname = _("LAPRAS"), @@ -5130,12 +5130,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 6, .speedEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x8A, .nickname = _("ABSOL"), @@ -5152,12 +5152,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .spAttackEV = 6, .spDefenseEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x0, .nickname = _("ALTARIA"), @@ -5174,12 +5174,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 252, .spAttackEV = 6, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x14, .nickname = _("DEWGONG"), @@ -5196,12 +5196,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .spAttackEV = 6, .spDefenseEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 1, .personality = 0x14, .nickname = _("POLITOED"), @@ -5218,12 +5218,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 6, .spDefenseEV = 252, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 1, .personality = 0x17, .nickname = _("MAROWAK"), @@ -5271,7 +5271,7 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speechBefore = {EC_WORD_WAAAH, EC_WORD_THIS, EC_WORD_IS, EC_WORD_SO, EC_WORD_EXCITING, EC_WORD_EXCL}, .speechWin = {EC_WORD_WAAAH, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_I, EC_WORD_WON}, .speechLose = {EC_WORD_WAAAH, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SAD, EC_WORD_I, EC_WORD_LOST}, - .speechAfter = {EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_GO, EC_WORD_AWAY, EC_WORD_EXCL}, + .speechAfter = {EC_WORD_WAAAH, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_GO, EC_WORD_AWAY, EC_WORD_EXCL}, .mons = { [0] = @@ -5285,12 +5285,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 200, .spDefenseEV = 200, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x3, .nickname = _("FORRETRESS"), @@ -5306,12 +5306,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 255, .spAttackEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 1, .personality = 0xC, .nickname = _("ELECTRODE"), @@ -5327,12 +5327,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 255, .spAttackEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x7F, .nickname = _("EXEGGUTOR"), @@ -5349,12 +5349,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 200, .spDefenseEV = 200, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x93, .nickname = _("DUSCLOPS"), @@ -5370,12 +5370,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 255, .spAttackEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0xF, .nickname = _("NINETALES"), @@ -5391,12 +5391,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .hpEV = 255, .spAttackEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x96, .nickname = _("BANETTE"), @@ -5410,7 +5410,7 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .unused = 0, .speechBefore = {EC_WORD_WAHAHAHA, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_STOP, EC_WORD_ME, EC_WORD_EXCL}, - .speechWin = {EC_WORD_WOWEE, EC_WORD_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_AWESOME, EC_WORD_COOL}, + .speechWin = {EC_WORD_WOWEE, EC_WORD_EXCL, EC_EMPTY_WORD, EC_WORD_I_AM, EC_WORD_AWESOME, EC_WORD_COOL}, .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_COOL, EC_WORD_AT, EC_WORD_ALL, EC_WORD_EXCL}, .speechAfter = {EC_WORD_HEHEHE, EC_WORD_THAT_WAS, EC_WORD_AN, EC_WORD_AWESOME, EC_WORD_BATTLE, EC_WORD_EXCL}, .mons = @@ -5425,12 +5425,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 255, .spAttackEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x95, .nickname = _("SALAMENCE"), @@ -5446,12 +5446,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .speedEV = 255, .spAttackEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x8C, .nickname = _("GENGAR"), @@ -5467,12 +5467,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 255, .speedEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x3, .nickname = _("GYARADOS"), @@ -5488,12 +5488,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .attackEV = 255, .speedEV = 255, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x3, .nickname = _("GENGAR"), @@ -5510,12 +5510,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 200, .spDefenseEV = 200, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x14, .nickname = _("DUSCLOPS"), @@ -5532,12 +5532,12 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = { .defenseEV = 180, .spDefenseEV = 150, .otId = TRAINER_HILL_OTID, - .hpIV = 31, - .attackIV = 31, - .defenseIV = 31, - .speedIV = 31, - .spAttackIV = 31, - .spDefenseIV = 31, + .hpIV = MAX_PER_STAT_IVS, + .attackIV = MAX_PER_STAT_IVS, + .defenseIV = MAX_PER_STAT_IVS, + .speedIV = MAX_PER_STAT_IVS, + .spAttackIV = MAX_PER_STAT_IVS, + .spDefenseIV = MAX_PER_STAT_IVS, .abilityNum = 0, .personality = 0x85, .nickname = _("MISDREAVUS"), diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 9f7aea69b3..657341b5ef 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -242,7 +242,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_IN_AIR, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_2X_IN_AIR, .split = SPLIT_SPECIAL, }, @@ -265,12 +265,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 0, .flags = FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - #elif B_UPDATED_MOVE_DATA >= GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .accuracy = 100, - .flags = FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #else .accuracy = 100, - .flags = FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #endif .effect = EFFECT_ROAR, .power = 0, @@ -337,7 +337,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 45, .pp = 25, - #elif B_UPDATED_MOVE_DATA >= GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 || B_UPDATED_MOVE_DATA == GEN_5 .power = 35, .pp = 15, #else @@ -356,7 +356,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STOMP] = { - .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .effect = EFFECT_FLINCH_HIT, .power = 65, .type = TYPE_NORMAL, .accuracy = 100, @@ -420,6 +420,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROLLING_KICK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_FLINCH_HIT, .power = 60, .type = TYPE_FIGHTING, @@ -428,7 +433,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -507,7 +511,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_7 .power = 40, .accuracy = 100, - #elif B_UPDATED_MOVE_DATA >= GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 || B_UPDATED_MOVE_DATA == GEN_6 .power = 50, .accuracy = 100, #else @@ -526,6 +530,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BODY_SLAM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_MINIMIZE, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_PARALYZE_HIT, .power = 85, .type = TYPE_NORMAL, @@ -534,7 +543,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_MINIMIZE, .split = SPLIT_PHYSICAL, }, @@ -711,12 +719,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 0, .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGIC_COAT_AFFECTED, - #elif B_UPDATED_MOVE_DATA >= GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .accuracy = 100, - .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGIC_COAT_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGIC_COAT_AFFECTED, #else .accuracy = 100, - .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND, #endif .effect = EFFECT_ROAR, .power = 0, @@ -893,7 +901,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, .target = MOVE_TARGET_FOES_AND_ALLY, - #elif B_UPDATED_MOVE_DATA >= GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 || B_UPDATED_MOVE_DATA == GEN_5 .power = 95, .target = MOVE_TARGET_FOES_AND_ALLY, #else @@ -1064,8 +1072,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_COUNTER] = { - #if B_UPDATED_MOVE_DATA >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_5 .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .flags = FLAG_MAKES_CONTACT, #else .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED, #endif @@ -1270,7 +1280,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STRING_SHOT] = { - .effect = EFFECT_SPEED_DOWN_2, + #if B_UPDATED_MOVE_DATA >= GEN_6 + .effect = EFFECT_SPEED_DOWN_2, + #else + .effect = EFFECT_SPEED_DOWN, + #endif .power = 0, .type = TYPE_BUG, .accuracy = 95, @@ -1379,7 +1393,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_HIT_IN_AIR, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_IN_AIR, .split = SPLIT_SPECIAL, }, @@ -1951,9 +1965,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_BLAST] = { #if B_UPDATED_MOVE_DATA >= GEN_6 - .power = 120, - #else .power = 110, + #else + .power = 120, #endif .effect = EFFECT_BURN_HIT, .type = TYPE_FIRE, @@ -1968,10 +1982,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WATERFALL] = { - #if B_UPDATED_MOVE_DATA >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_5 .effect = EFFECT_FLINCH_HIT, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .effect = EFFECT_FLINCH_HIT, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, #else .effect = EFFECT_HIT, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, #endif .power = 80, .type = TYPE_WATER, @@ -1980,7 +1999,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -2170,13 +2188,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 90, - .target = MOVE_TARGET_FOES_AND_ALLY, + .target = MOVE_TARGET_BOTH, #elif B_UPDATED_MOVE_DATA == GEN_5 .accuracy = 80, - .target = MOVE_TARGET_FOES_AND_ALLY, + .target = MOVE_TARGET_BOTH, #else .accuracy = 55, - .target = MOVE_TARGET_BOTH, + .target = MOVE_TARGET_SELECTED, #endif .effect = EFFECT_POISON, .power = 0, @@ -2237,6 +2255,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SKY_ATTACK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_TWO_TURNS_ATTACK, .power = 140, .type = TYPE_FLYING, @@ -2245,7 +2268,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, .argument = MOVE_EFFECT_FLINCH, }, @@ -2694,7 +2716,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLAME_WHEEL] = { - .effect = EFFECT_THAW_HIT, + .effect = EFFECT_BURN_HIT, .power = 60, .type = TYPE_FIRE, .accuracy = 100, @@ -2702,7 +2724,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_THAW_USER, .split = SPLIT_PHYSICAL, }, @@ -2710,8 +2732,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 50, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_SOUND, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .power = 40, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_SOUND, #else .power = 40, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_SOUND, #endif .effect = EFFECT_SNORE, .type = TYPE_NORMAL, @@ -2720,7 +2747,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_SOUND, .split = SPLIT_SPECIAL, }, @@ -2758,17 +2784,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CONVERSION_2] = { - #if B_UPDATED_MOVE_DATA >= GEN_5 - .target = MOVE_TARGET_USER, - #else - .target = MOVE_TARGET_FOES_AND_ALLY, - #endif .effect = EFFECT_CONVERSION_2, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 30, .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, .priority = 0, .flags = 0, .split = SPLIT_STATUS, @@ -2795,10 +2817,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .target = MOVE_TARGET_BOTH, #elif B_UPDATED_MOVE_DATA == GEN_5 .accuracy = 100, - .target = MOVE_TARGET_FOES_AND_ALLY, + .target = MOVE_TARGET_SELECTED, #else .accuracy = 85, - .target = MOVE_TARGET_FOES_AND_ALLY, + .target = MOVE_TARGET_SELECTED, #endif .effect = EFFECT_SPEED_DOWN_2, .power = 0, @@ -2858,6 +2880,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PROTECT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .priority = 4, + #else + .priority = 3, + #endif .effect = EFFECT_PROTECT, .power = 0, .type = TYPE_NORMAL, @@ -2865,7 +2892,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 4, .flags = FLAG_PROTECTION_MOVE, .split = SPLIT_STATUS, }, @@ -3035,7 +3061,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGIC_COAT_AFFECTED, - #elif B_UPDATED_MOVE_DATA >= GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 .accuracy = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #else @@ -3096,6 +3122,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DETECT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .priority = 4, + #else + .priority = 3, + #endif .effect = EFFECT_PROTECT, .power = 0, .type = TYPE_FIGHTING, @@ -3103,7 +3134,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 4, .flags = FLAG_PROTECTION_MOVE, .split = SPLIT_STATUS, }, @@ -3129,9 +3159,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LOCK_ON] = { #if B_UPDATED_MOVE_DATA >= GEN_4 - .accuracy = 100, - #else .accuracy = 0, + #else + .accuracy = 100, #endif .effect = EFFECT_LOCK_ON, .power = 0, @@ -3204,6 +3234,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ENDURE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .priority = 4, + #else + .priority = 3, + #endif .effect = EFFECT_ENDURE, .power = 0, .type = TYPE_NORMAL, @@ -3211,7 +3246,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 4, .flags = FLAG_PROTECTION_MOVE, .split = SPLIT_STATUS, }, @@ -3474,7 +3508,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SACRED_FIRE] = { - .effect = EFFECT_THAW_HIT, + .effect = EFFECT_BURN_HIT, .power = 100, .type = TYPE_FIRE, .accuracy = 95, @@ -3482,7 +3516,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 50, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_THAW_USER, .split = SPLIT_PHYSICAL, }, @@ -3590,7 +3624,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RAPID_SPIN] = { - #if B_UPDATED_MOVE_DATA >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_8 .power = 50, #else .power = 20, @@ -3608,7 +3642,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SWEET_SCENT] = { - .effect = EFFECT_EVASION_DOWN_2, + #if B_UPDATED_MOVE_DATA >= GEN_6 + .effect = EFFECT_EVASION_DOWN_2, + #else + .effect = EFFECT_EVASION_DOWN, + #endif .power = 0, .type = TYPE_NORMAL, .accuracy = 100, @@ -3710,8 +3748,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HIDDEN_POWER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .power = 60, + #else + .power = 1, + #endif .effect = EFFECT_HIDDEN_POWER, - .power = 60, .type = TYPE_NORMAL, .accuracy = 100, .pp = 15, @@ -3738,6 +3780,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TWISTER] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_2X_IN_AIR, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_2X_IN_AIR, + #endif .effect = EFFECT_TWISTER, .power = 40, .type = TYPE_DRAGON, @@ -3746,7 +3793,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 20, .target = MOVE_TARGET_BOTH, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_IN_AIR, .split = SPLIT_SPECIAL, }, @@ -3798,8 +3844,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MIRROR_COAT] = { - #if B_UPDATED_MOVE_DATA >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_5 .flags = FLAG_PROTECT_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .flags = 0, #else .flags = FLAG_MIRROR_MOVE_AFFECTED, #endif @@ -3817,9 +3865,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PSYCH_UP] = { #if B_UPDATED_MOVE_DATA >= GEN_5 - .flags = FLAG_SNATCH_AFFECTED, - #else .flags = 0, + #else + .flags = FLAG_SNATCH_AFFECTED, #endif .effect = EFFECT_PSYCH_UP, .power = 0, @@ -3945,12 +3993,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BEAT_UP] = { - .effect = EFFECT_BEAT_UP, - #if B_BEAT_UP_DMG >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 1, #else .power = 10, #endif + .effect = EFFECT_BEAT_UP, .type = TYPE_DARK, .accuracy = 100, .pp = 10, @@ -3963,9 +4011,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FAKE_OUT] = { - #if B_UPDATED_MOVE_DATA >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_5 + .priority = 3, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .priority = 1, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, #else + .priority = 1, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, #endif .effect = EFFECT_FAKE_OUT, @@ -3975,7 +4028,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, - .priority = 3, .split = SPLIT_PHYSICAL, }, @@ -4192,6 +4244,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FOLLOW_ME] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .priority = 2, + #else + .priority = 3, + #endif .effect = EFFECT_FOLLOW_ME, .power = 0, .type = TYPE_NORMAL, @@ -4199,7 +4256,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 2, .flags = 0, .split = SPLIT_STATUS, }, @@ -4209,7 +4265,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_NATURE_POWER, .power = 0, .type = TYPE_NORMAL, - .accuracy = 95, + .accuracy = 0, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, @@ -4236,6 +4292,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_5 .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #else .flags = FLAG_PROTECT_AFFECTED, #endif @@ -4306,7 +4364,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_WISH, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, @@ -4612,10 +4670,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TAIL_GLOW] = { - .effect = EFFECT_SPECIAL_ATTACK_UP_3, + #if B_UPDATED_MOVE_DATA >= GEN_5 + .effect = EFFECT_SPECIAL_ATTACK_UP_3, + #else + .effect = EFFECT_SPECIAL_ATTACK_UP_2, + #endif .power = 0, .type = TYPE_BUG, - .accuracy = 100, + .accuracy = 0, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, @@ -4728,7 +4790,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_NEEDLE_ARM] = { - .effect = EFFECT_FLINCH_MINIMIZE_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_MINIMIZE, + #endif + .effect = EFFECT_FLINCH_HIT, .power = 60, .type = TYPE_GRASS, .accuracy = 100, @@ -4736,7 +4803,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -4770,7 +4836,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_POISON_FANG] = { - #if B_UPDATED_MOVE_DATA >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_6 .secondaryEffectChance = 50, #else .secondaryEffectChance = 30, @@ -4849,7 +4915,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ASTONISH] = { - .effect = EFFECT_FLINCH_MINIMIZE_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_MINIMIZE, + #endif + .effect = EFFECT_FLINCH_HIT, .power = 30, .type = TYPE_GHOST, .accuracy = 100, @@ -4857,7 +4928,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -4926,9 +4996,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 130, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, - #elif B_UPDATED_MOVE_DATA >= GEN_4 - .power = 130, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_4 || B_UPDATED_MOVE_DATA == GEN_5 + .power = 140, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, #else .power = 140, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, @@ -4945,9 +5015,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ODOR_SLEUTH] = { - #if B_UPDATED_MOVE_DATA >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGIC_COAT_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .accuracy = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #else .accuracy = 100, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, @@ -5098,17 +5171,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 20, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #elif B_UPDATED_MOVE_DATA == GEN_4 || B_UPDATED_MOVE_DATA == GEN_5 + .pp = 30, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, #else .pp = 30, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_MINIMIZE, #endif - .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .effect = EFFECT_FLINCH_HIT, .power = 80, .type = TYPE_PSYCHIC, .accuracy = 100, .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -5122,7 +5199,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_IRON_FIST_BOOST | FLAG_HIT_IN_AIR, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_IRON_FIST_BOOST | FLAG_DMG_IN_AIR, .split = SPLIT_PHYSICAL, }, @@ -5481,10 +5558,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_BLAST] = { - #if B_UPDATED_MOVE_DATA >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_7 .accuracy = 90, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_BALLISTIC, + #elif B_UPDATED_MOVE_DATA == GEN_5 || B_UPDATED_MOVE_DATA == GEN_6 + .accuracy = 90, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, #else .accuracy = 80, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, #endif .effect = EFFECT_MULTI_HIT, .power = 25, @@ -5493,7 +5575,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_BALLISTIC, .split = SPLIT_PHYSICAL, }, @@ -5630,7 +5711,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .type = TYPE_FIGHTING, .accuracy = 90, .pp = 10, - .secondaryEffectChance = 0, + .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_IRON_FIST_BOOST, @@ -6191,7 +6272,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_RECKLESS_BOOST, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_RECKLESS_BOOST | FLAG_THAW_USER, .split = SPLIT_PHYSICAL, .argument = STATUS1_BURN, }, @@ -6258,6 +6339,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DARK_PULSE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_MEGA_LAUNCHER_BOOST, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_MEGA_LAUNCHER_BOOST, + #endif .effect = EFFECT_FLINCH_HIT, .power = 80, .type = TYPE_DARK, @@ -6266,7 +6352,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_MEGA_LAUNCHER_BOOST, .split = SPLIT_SPECIAL, }, @@ -6316,8 +6401,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 15, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .pp = 20, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, #else .pp = 20, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, #endif .effect = EFFECT_FLINCH_HIT, .power = 75, @@ -6326,7 +6416,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -6378,6 +6467,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRAGON_RUSH] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_MINIMIZE, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_FLINCH_HIT, .power = 100, .type = TYPE_DRAGON, @@ -6386,7 +6482,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_MINIMIZE, .split = SPLIT_PHYSICAL, }, @@ -6601,6 +6696,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDER_FANG] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, + #endif .effect = EFFECT_FLINCH_STATUS, .power = 65, .type = TYPE_ELECTRIC, @@ -6609,13 +6709,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, .split = SPLIT_PHYSICAL, .argument = STATUS1_PARALYSIS, }, [MOVE_ICE_FANG] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, + #endif .effect = EFFECT_FLINCH_STATUS, .power = 65, .type = TYPE_ICE, @@ -6624,13 +6728,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, .split = SPLIT_PHYSICAL, .argument = STATUS1_FREEZE, }, [MOVE_FIRE_FANG] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, + #endif .effect = EFFECT_FLINCH_STATUS, .power = 65, .type = TYPE_FIRE, @@ -6639,7 +6747,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, .split = SPLIT_PHYSICAL, .argument = STATUS1_BURN, }, @@ -6770,7 +6877,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = -7, - .flags = 0, + .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -6900,6 +7007,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_IRON_HEAD] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_FLINCH_HIT, .power = 80, .type = TYPE_STEEL, @@ -6908,7 +7020,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -6990,17 +7101,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 65, + .secondaryEffectChance = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_SHEER_FORCE_BOOST, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .power = 60, + .secondaryEffectChance = 10, + .flags = FLAG_PROTECT_AFFECTED | FLAG_SOUND | FLAG_SHEER_FORCE_BOOST, #else .power = 60, + .secondaryEffectChance = 31, + .flags = FLAG_PROTECT_AFFECTED | FLAG_SOUND | FLAG_SHEER_FORCE_BOOST, #endif .effect = EFFECT_CONFUSE_HIT, .type = TYPE_FLYING, .accuracy = 100, .pp = 20, - .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_SOUND | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -7275,6 +7392,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SHADOW_FORCE] = { + #if B_UPDATED_MOVE_DATA == GEN_6 + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_MINIMIZE, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + #endif .effect = EFFECT_SEMI_INVULNERABLE, .power = 120, .type = TYPE_GHOST, @@ -7283,7 +7405,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -7358,7 +7479,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .flags = 0, + .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -7450,7 +7571,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .flags = 0, + .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -7464,7 +7585,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_HIT_IN_AIR, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_IN_AIR, .split = SPLIT_PHYSICAL, }, @@ -7530,6 +7651,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEAVY_SLAM] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_MINIMIZE, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + #endif .effect = EFFECT_HEAT_CRASH, .power = 1, .type = TYPE_STEEL, @@ -7538,7 +7664,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_MINIMIZE, .split = SPLIT_PHYSICAL, }, @@ -7818,7 +7943,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_THAW_USER, .split = SPLIT_SPECIAL, }, @@ -7846,7 +7971,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MEGA_LAUNCHER_BOOST, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_MEGA_LAUNCHER_BOOST, .split = SPLIT_STATUS, }, @@ -8294,6 +8419,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEAT_CRASH] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_MINIMIZE, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + #endif .effect = EFFECT_HEAT_CRASH, .power = 1, .type = TYPE_FIRE, @@ -8302,7 +8432,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_MINIMIZE, .split = SPLIT_PHYSICAL, }, @@ -8322,7 +8451,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STEAMROLLER] = { - .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .effect = EFFECT_FLINCH_HIT, .power = 65, .type = TYPE_BUG, .accuracy = 100, @@ -8330,8 +8459,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_MINIMIZE, }, [MOVE_COTTON_GUARD] = @@ -8404,7 +8533,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_HIT_IN_AIR, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_DMG_IN_AIR, .split = SPLIT_SPECIAL, }, @@ -8635,7 +8764,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_THAW_USER, .split = SPLIT_SPECIAL, }, @@ -8749,6 +8878,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PHANTOM_FORCE] = { + #if B_UPDATED_MOVE_DATA == GEN_6 + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_MINIMIZE, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + #endif .effect = EFFECT_SEMI_INVULNERABLE, .power = 90, .type = TYPE_GHOST, @@ -8757,7 +8891,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, .split = SPLIT_PHYSICAL, .argument = MOVE_EFFECT_FEINT, }, @@ -8819,7 +8952,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, .split = SPLIT_SPECIAL, }, @@ -8862,7 +8995,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -9064,7 +9197,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = 0, + .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -9138,7 +9271,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_THAW_USER, .split = SPLIT_SPECIAL, }, @@ -9158,7 +9291,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WATER_SHURIKEN] = { - #if B_WATER_SHURIKEN_SPLIT >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .split = SPLIT_SPECIAL, #else .split = SPLIT_PHYSICAL, @@ -9452,10 +9585,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .type = TYPE_GROUND, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, + .secondaryEffectChance = 100, .target = MOVE_TARGET_BOTH, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_HIT_IN_AIR, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_DMG_IN_AIR | FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING, .split = SPLIT_PHYSICAL, }, @@ -9623,7 +9756,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_STAT_STAGES_IGNORED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_STAT_STAGES_IGNORED, .split = SPLIT_PHYSICAL, }, @@ -9634,8 +9767,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .type = TYPE_WATER, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SOUND | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, @@ -9649,10 +9782,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .type = TYPE_ICE, .accuracy = 90, .pp = 10, - .secondaryEffectChance = 0, + .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_IRON_FIST_BOOST, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_IRON_FIST_BOOST, .split = SPLIT_PHYSICAL, }, @@ -9820,7 +9953,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -9890,7 +10023,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_THAW_USER, .split = SPLIT_SPECIAL, }, @@ -9960,7 +10093,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, .split = SPLIT_SPECIAL, }, @@ -10002,21 +10135,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -3, - .flags = FLAG_PROTECT_AFFECTED | FLAG_BALLISTIC, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_BALLISTIC, .split = SPLIT_PHYSICAL, }, [MOVE_CLANGING_SCALES] = { - .effect = EFFECT_DEFENSE_DOWN_HIT, + .effect = EFFECT_ATTACKER_DEFENSE_DOWN_HIT, .power = 110, .type = TYPE_DRAGON, .accuracy = 100, .pp = 5, - .secondaryEffectChance = 100, + .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SOUND, .split = SPLIT_SPECIAL, }, @@ -10030,7 +10163,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -10086,7 +10219,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, .split = SPLIT_SPECIAL, }, @@ -10142,7 +10275,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -10156,7 +10289,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -10288,7 +10421,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, - .split = SPLIT_PHYSICAL, + .split = SPLIT_SPECIAL, }, [MOVE_PLASMA_FISTS] = @@ -10323,17 +10456,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_8 .power = 80, + .effect = EFFECT_PLACEHOLDER, // TODO: EFFECT_EVASION_UP_HIT .pp = 10, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, #else + .effect = EFFECT_ALWAYS_CRIT, .power = 50, .pp = 15, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, #endif - .effect = EFFECT_ALWAYS_CRIT, .type = TYPE_ELECTRIC, .accuracy = 100, - .secondaryEffectChance = 0, + .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 2, .split = SPLIT_PHYSICAL, @@ -10342,9 +10476,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SPLISHY_SPLASH] = { #if B_UPDATED_MOVE_DATA >= GEN_8 - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, #else - .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, #endif .effect = EFFECT_PARALYZE_HIT, .power = 90, @@ -10360,9 +10494,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLOATY_FALL] = { #if B_UPDATED_MOVE_DATA >= GEN_8 - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, #else - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_SHEER_FORCE_BOOST, #endif .effect = EFFECT_FLINCH_HIT, .power = 90, @@ -10439,11 +10573,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_8 .power = 60, .pp = 20, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_THAW_USER, #else .power = 90, .pp = 15, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_THAW_USER, #endif .effect = EFFECT_BURN_HIT, .type = TYPE_FIRE, @@ -10577,6 +10711,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DOUBLE_IRON_BASH] = { + #if B_UPDATED_MOVE_DATA >= GEN_8 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_IRON_FIST_BOOST | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE | FLAG_IRON_FIST_BOOST | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_PLACEHOLDER, //TODO (EFFECT_FLINCH_HIT + EFFECT_DOUBLE_HIT) .power = 60, .type = TYPE_STEEL, @@ -10585,7 +10724,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE | FLAG_IRON_FIST_BOOST, .split = SPLIT_PHYSICAL, }, @@ -10788,7 +10926,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BODY_PRESS] = { - .effect = EFFECT_PLACEHOLDER, //TODO + .effect = EFFECT_BODY_PRESS, .power = 80, .type = TYPE_FIGHTING, .accuracy = 100, @@ -10824,7 +10962,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -10852,7 +10990,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_BALLISTIC, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_BALLISTIC | FLAG_SHEER_FORCE_BOOST | FLAG_THAW_USER, .split = SPLIT_PHYSICAL, }, @@ -10908,7 +11046,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_BOTH, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -10950,7 +11088,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -10964,7 +11102,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -10978,7 +11116,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -10992,7 +11130,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -11146,7 +11284,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -11216,7 +11354,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -11230,7 +11368,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -11342,7 +11480,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_THAW_USER, .split = SPLIT_SPECIAL, }, @@ -11425,7 +11563,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -11453,7 +11591,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -11495,7 +11633,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SOUND, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_SOUND, .split = SPLIT_SPECIAL, }, }; diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index b1680189ca..db801971ac 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -138,7 +138,7 @@ const struct ContestWinner gDefaultContestWinners[] = { - { + [CONTEST_WINNER_HALL_1 - 1] = { .personality = 0, .trainerId = 0xFFFF, .species = SPECIES_ELECTRIKE, @@ -147,7 +147,7 @@ const struct ContestWinner gDefaultContestWinners[] = .trainerName = _("EZRA"), .contestRank = CONTEST_RANK_NORMAL }, - { + [CONTEST_WINNER_HALL_2 - 1] = { .personality = 0, .trainerId = 0xFFFF, .species = SPECIES_TROPIUS, @@ -156,7 +156,7 @@ const struct ContestWinner gDefaultContestWinners[] = .trainerName = _("ALLAN"), .contestRank = CONTEST_RANK_HYPER }, - { + [CONTEST_WINNER_HALL_3 - 1] = { .personality = 0, .trainerId = 0xFFFF, .species = SPECIES_XATU, @@ -165,7 +165,7 @@ const struct ContestWinner gDefaultContestWinners[] = .trainerName = _("JULIET"), .contestRank = CONTEST_RANK_NORMAL }, - { + [CONTEST_WINNER_HALL_4 - 1] = { .personality = 0, .trainerId = 0xFFFF, .species = SPECIES_PLUSLE, @@ -174,7 +174,7 @@ const struct ContestWinner gDefaultContestWinners[] = .trainerName = _("BAILY"), .contestRank = CONTEST_RANK_MASTER }, - { + [CONTEST_WINNER_HALL_5 - 1] = { .personality = 0, .trainerId = 0xFFFF, .species = SPECIES_SHUPPET, @@ -183,7 +183,7 @@ const struct ContestWinner gDefaultContestWinners[] = .trainerName = _("MELANY"), .contestRank = CONTEST_RANK_SUPER }, - { + [CONTEST_WINNER_HALL_6 - 1] = { .personality = 0, .trainerId = 0xFFFF, .species = SPECIES_ZANGOOSE, @@ -192,7 +192,7 @@ const struct ContestWinner gDefaultContestWinners[] = .trainerName = _("HANA"), .contestRank = CONTEST_RANK_HYPER }, - { + [CONTEST_WINNER_HALL_UNUSED_1 - 1] = { .personality = 0, .trainerId = 0xFFFF, .species = SPECIES_LOUDRED, @@ -201,7 +201,7 @@ const struct ContestWinner gDefaultContestWinners[] = .trainerName = _("BRYANT"), .contestRank = CONTEST_RANK_HYPER }, - { + [CONTEST_WINNER_HALL_UNUSED_2 - 1] = { .personality = 0, .trainerId = 0xFFFF, .species = SPECIES_DELCATTY, diff --git a/src/data/credits.h b/src/data/credits.h new file mode 100644 index 0000000000..3ae2b1d3be --- /dev/null +++ b/src/data/credits.h @@ -0,0 +1,787 @@ +enum +{ + PAGE_TITLE, + PAGE_DIRECTOR, + PAGE_ART_DIRECTOR, + PAGE_WORLD_DIRECTOR, + PAGE_LEAD_PROGRAMMER, + PAGE_PROGRAMMERS_1, + PAGE_PROGRAMMERS_2, + PAGE_PROGRAMMERS_3, + PAGE_PROGRAMMERS_4, + PAGE_GRAPHIC_DESIGNERS_1, + PAGE_GRAPHIC_DESIGNERS_2, + PAGE_GRAPHIC_DESIGNERS_3, + PAGE_MUSIC_COMPOSITION, + PAGE_SOUND_EFFECTS, + PAGE_GAME_DESIGNERS_1, + PAGE_GAME_DESIGNERS_2, + PAGE_GAME_DESIGNERS_3, + PAGE_SCENARIO_PLOT, + PAGE_SCENARIO, + PAGE_SCRIPT_DESIGNERS, + PAGE_MAP_DESIGNERS, + PAGE_BATTLE_FRONTIER_DATA, + PAGE_PARAMETRIC_DESIGNERS, + PAGE_POKEDEX_TEXT, + PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_1, + PAGE_PKMN_DESIGNERS_1, + PAGE_PKMN_DESIGNERS_2, + PAGE_PKMN_DESIGNERS_3, + PAGE_PKMN_DESIGNERS_4, + PAGE_SUPPORT_PROGRAMMERS, + PAGE_NCL_PRODUCT_TESTING, + PAGE_PACKAGE_AND_MANUAL, + PAGE_SPECIAL_THANKS_1, + PAGE_SPECIAL_THANKS_2, + PAGE_SPECIAL_THANKS_3, + PAGE_SPECIAL_THANKS_4, + PAGE_INFORMATION_SUPERVISORS, + PAGE_ARTWORK_1, + PAGE_ARTWORK_2, + PAGE_ARTWORK_3, + PAGE_COORDINATORS, + PAGE_ENGLISH_VERSION, + PAGE_TRANSLATOR, + PAGE_TEXT_EDITOR, + PAGE_NCL_COORDINATOR, + PAGE_PROGRAMMERS_5, + PAGE_GRAPHIC_DESIGNER, + PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_2, + PAGE_NOA_TESTING, + PAGE_BRAILLE_CODE_CHECK_1, + PAGE_BRAILLE_CODE_CHECK_2, + PAGE_SPECIAL_THANKS_5, + PAGE_TASK_MANAGERS, + PAGE_PRODUCERS, + PAGE_EXECUTIVE_DIRECTOR, + PAGE_EXECUTIVE_PRODUCERS_1, + PAGE_EXECUTIVE_PRODUCERS_2, + PAGE_COUNT +}; + +#define ENTRIES_PER_PAGE 5 + +static const u8 sCreditsText_EmptyString[] = _(""); +static const u8 sCreditsText_PkmnEmeraldVersion[] = _("POKéMON EMERALD VERSION"); +static const u8 sCreditsText_Credits[] = _("Credits"); +static const u8 sCreditsText_ExecutiveDirector[] = _("Executive Director"); +static const u8 sCreditsText_Director[] = _("Director"); +static const u8 sCreditsText_ArtDirector[] = _("Art Director"); +static const u8 sCreditsText_BattleDirector[] = _("Battle Director"); +static const u8 sCreditsText_MainProgrammer[] = _("Main Programmer"); +static const u8 sCreditsText_BattleSystemPgrms[] = _("Battle System Programmers"); +static const u8 sCreditsText_FieldSystemPgrms[] = _("Field System Programmer"); +static const u8 sCreditsText_Programmers[] = _("Programmers"); +static const u8 sCreditsText_MainGraphicDesigner[] = _("Main Graphic Designer"); +static const u8 sCreditsText_GraphicDesigners[] = _("Graphic Designers"); +static const u8 sCreditsText_PkmnDesigners[] = _("POKéMON Designers"); +static const u8 sCreditsText_MusicComposition[] = _("Music Composition"); +static const u8 sCreditsText_SoundEffectsAndPkmnVoices[] = _("Sound Effects & POKéMON Voices"); +static const u8 sCreditsText_GameDesigners[] = _("Game Designers"); +static const u8 sCreditsText_ScenarioPlot[] = _("Scenario Plot"); +static const u8 sCreditsText_Scenario[] = _("Scenario"); +static const u8 sCreditsText_ScriptDesigners[] = _("Script Designers"); +static const u8 sCreditsText_MapDesigners[] = _("Map Designers"); +static const u8 sCreditsText_MapDataDesigners[] = _("Map Data Designers"); +static const u8 sCreditsText_ParametricDesigners[] = _("Parametric Designers"); +static const u8 sCreditsText_PokedexText[] = _("POKéDEX Text"); +static const u8 sCreditsText_EnvAndToolPgrms[] = _("Environment & Tool Programmers"); +static const u8 sCreditsText_NCLProductTesting[] = _("NCL Product Testing"); +static const u8 sCreditsText_SpecialThanks[] = _("Special Thanks"); +static const u8 sCreditsText_Coordinators[] = _("Coordinators"); +static const u8 sCreditsText_Producers[] = _("Producers"); +static const u8 sCreditsText_ExecProducers[] = _("Executive Producers"); +static const u8 sCreditsText_InfoSupervisors[] = _("Information Supervisors"); +static const u8 sCreditsText_TaskManagers[] = _("Task Managers"); +static const u8 sCreditsText_BrailleCodeCheck[] = _("Braille Code Check"); +static const u8 sCreditsText_WorldDirector[] = _("World Director"); +static const u8 sCreditsText_BattleFrontierData[] = _("Battle Frontier Data"); +static const u8 sCreditsText_SupportProgrammers[] = _("Support Programmers"); +static const u8 sCreditsText_Artwork[] = _("Artwork"); +static const u8 sCreditsText_LeadProgrammer[] = _("Lead Programmer"); +static const u8 sCreditsText_LeadGraphicArtist[] = _("Lead Graphic Artist"); +static const u8 sCreditsText_SatoshiTajiri[] = _("Satoshi Tajiri"); +static const u8 sCreditsText_JunichiMasuda[] = _("Junichi Masuda"); +static const u8 sCreditsText_KenSugimori[] = _("Ken Sugimori"); +static const u8 sCreditsText_ShigekiMorimoto[] = _("Shigeki Morimoto"); +static const u8 sCreditsText_TetsuyaWatanabe[] = _("Tetsuya Watanabe"); +static const u8 sCreditsText_HisashiSogabe[] = _("Hisashi Sogabe"); +static const u8 sCreditsText_SosukeTamada[] = _("Sosuke Tamada"); +static const u8 sCreditsText_AkitoMori[] = _("Akito Mori"); +static const u8 sCreditsText_KeitaKagaya[] = _("Keita Kagaya"); +static const u8 sCreditsText_YoshinoriMatsuda[] = _("Yoshinori Matsuda"); +static const u8 sCreditsText_HiroyukiNakamura[] = _("Hiroyuki Nakamura"); +static const u8 sCreditsText_MasaoTaya[] = _("Masao Taya"); +static const u8 sCreditsText_SatoshiNohara[] = _("Satoshi Nohara"); +static const u8 sCreditsText_TomomichiOhta[] = _("Tomomichi Ohta"); +static const u8 sCreditsText_MiyukiIwasawa[] = _("Miyuki Iwasawa"); +static const u8 sCreditsText_TakenoriOhta[] = _("Takenori Ohta"); +static const u8 sCreditsText_HironobuYoshida[] = _("Hironobu Yoshida"); +static const u8 sCreditsText_MotofumiFujiwara[] = _("Motofumi Fujiwara"); +static const u8 sCreditsText_SatoshiOhta[] = _("Satoshi Ohta"); +static const u8 sCreditsText_AsukaIwashita[] = _("Asuka Iwashita"); +static const u8 sCreditsText_AimiTomita[] = _("Aimi Tomita"); +static const u8 sCreditsText_TakaoUnno[] = _("Takao Unno"); +static const u8 sCreditsText_KanakoEo[] = _("Kanako Eo"); +static const u8 sCreditsText_JunOkutani[] = _("Jun Okutani"); +static const u8 sCreditsText_AtsukoNishida[] = _("Atsuko Nishida"); +static const u8 sCreditsText_MuneoSaito[] = _("Muneo Saito"); +static const u8 sCreditsText_RenaYoshikawa[] = _("Rena Yoshikawa"); +static const u8 sCreditsText_GoIchinose[] = _("Go Ichinose"); +static const u8 sCreditsText_MorikazuAoki[] = _("Morikazu Aoki"); +static const u8 sCreditsText_KojiNishino[] = _("Koji Nishino"); +static const u8 sCreditsText_KenjiMatsushima[] = _("Kenji Matsushima"); +static const u8 sCreditsText_TetsujiOhta[] = _("Tetsuji Ohta"); +static const u8 sCreditsText_HitomiSato[] = _("Hitomi Sato"); +static const u8 sCreditsText_TakeshiKawachimaru[] = _("Takeshi Kawachimaru"); +static const u8 sCreditsText_TeruyukiShimoyamada[] = _("Teruyuki Shimoyamada"); +static const u8 sCreditsText_ShigeruOhmori[] = _("Shigeru Ohmori"); +static const u8 sCreditsText_TadashiTakahashi[] = _("Tadashi Takahashi"); +static const u8 sCreditsText_ToshinobuMatsumiya[] = _("Toshinobu Matsumiya"); +static const u8 sCreditsText_AkihitoTomisawa[] = _("Akihito Tomisawa"); +static const u8 sCreditsText_HirokiEnomoto[] = _("Hiroki Enomoto"); +static const u8 sCreditsText_KazuyukiTerada[] = _("Kazuyuki Terada"); +static const u8 sCreditsText_YuriSakurai[] = _("Yuri Sakurai"); +static const u8 sCreditsText_HiromiSagawa[] = _("Hiromi Sagawa"); +static const u8 sCreditsText_KenjiTominaga[] = _("Kenji Tominaga"); +static const u8 sCreditsText_YoshioTajiri[] = _("Yoshio Tajiri"); +static const u8 sCreditsText_TeikoSasaki[] = _("Teiko Sasaki"); +static const u8 sCreditsText_SachikoHamano[] = _("Sachiko Hamano"); +static const u8 sCreditsText_ChieMatsumiya[] = _("Chie Matsumiya"); +static const u8 sCreditsText_AkikoShinozaki[] = _("Akiko Shinozaki"); +static const u8 sCreditsText_AstukoFujii[] = _("Astuko Fujii"); +static const u8 sCreditsText_NozomuSaito[] = _("Nozomu Saito"); +static const u8 sCreditsText_KenkichiToyama[] = _("Kenkichi Toyama"); +static const u8 sCreditsText_SuguruNakatsui[] = _("Suguru Nakatsui"); +static const u8 sCreditsText_YumiFunasaka[] = _("Yumi Funasaka"); +static const u8 sCreditsText_NaokoYanase[] = _("Naoko Yanase"); +static const u8 sCreditsText_NCLSuperMarioClub[] = _("NCL Super Mario Club"); +static const u8 sCreditsText_AtsushiTada[] = _("Atsushi Tada"); +static const u8 sCreditsText_TakahiroOhnishi[] = _("Takahiro Ohnishi"); +static const u8 sCreditsText_NorihideOkamura[] = _("Norihide Okamura"); +static const u8 sCreditsText_HiroNakamura[] = _("Hiro Nakamura"); +static const u8 sCreditsText_HiroyukiUesugi[] = _("Hiroyuki Uesugi"); +static const u8 sCreditsText_TerukiMurakawa[] = _("Teruki Murakawa"); +static const u8 sCreditsText_AkiraKinashi[] = _("Akira Kinashi"); +static const u8 sCreditsText_MichikoTakizawa[] = _("Michiko Takizawa"); +static const u8 sCreditsText_MakikoTakada[] = _("Makiko Takada"); +static const u8 sCreditsText_TakanaoKondo[] = _("Takanao Kondo"); +static const u8 sCreditsText_AiMashima[] = _("Ai Mashima"); +static const u8 sCreditsText_GakujiNomoto[] = _("Gakuji Nomoto"); +static const u8 sCreditsText_TakehiroIzushi[] = _("Takehiro Izushi"); +static const u8 sCreditsText_HitoshiYamagami[] = _("Hitoshi Yamagami"); +static const u8 sCreditsText_KyokoWatanabe[] = _("Kyoko Watanabe"); +static const u8 sCreditsText_TakaoNakano[] = _("Takao Nakano"); +static const u8 sCreditsText_HiroyukiJinnai[] = _("Hiroyuki Jinnai"); +static const u8 sCreditsText_HiroakiTsuru[] = _("Hiroaki Tsuru"); +static const u8 sCreditsText_TsunekazIshihara[] = _("Tsunekaz Ishihara"); +static const u8 sCreditsText_SatoruIwata[] = _("Satoru Iwata"); +static const u8 sCreditsText_KazuyaSuyama[] = _("Kazuya Suyama"); +static const u8 sCreditsText_SatoshiMitsuhara[] = _("Satoshi Mitsuhara"); +static const u8 sCreditsText_JapanBrailleLibrary[] = _("Japan Braille Library"); +static const u8 sCreditsText_TomotakaKomura[] = _("Tomotaka Komura"); +static const u8 sCreditsText_MikikoOhhashi[] = _("Mikiko Ohhashi"); +static const u8 sCreditsText_DaisukeHoshino[] = _("Daisuke Hoshino"); +static const u8 sCreditsText_KenjiroIto[] = _("Kenjiro Ito"); +static const u8 sCreditsText_RuiKawaguchi[] = _("Rui Kawaguchi"); +static const u8 sCreditsText_ShunsukeKohori[] = _("Shunsuke Kohori"); +static const u8 sCreditsText_SachikoNakamichi[] = _("Sachiko Nakamichi"); +static const u8 sCreditsText_FujikoNomura[] = _("Fujiko Nomura"); +static const u8 sCreditsText_KazukiYoshihara[] = _("Kazuki Yoshihara"); +static const u8 sCreditsText_RetsujiNomoto[] = _("Retsuji Nomoto"); +static const u8 sCreditsText_AzusaTajima[] = _("Azusa Tajima"); +static const u8 sCreditsText_ShusakuEgami[] = _("Shusaku Egami"); +static const u8 sCreditsText_PackageAndManual[] = _("Package & Manual Illustration"); +static const u8 sCreditsText_EnglishVersion[] = _("English Version Coordinators"); +static const u8 sCreditsText_Translator[] = _("Translator"); +static const u8 sCreditsText_TextEditor[] = _("Text Editor"); +static const u8 sCreditsText_NCLCoordinator[] = _("NCL Coordinator"); +static const u8 sCreditsText_GraphicDesigner[] = _("Graphic Designer"); +static const u8 sCreditsText_NOAProductTesting[] = _("NOA Product Testing"); +static const u8 sCreditsText_HideyukiNakajima[] = _("Hideyuki Nakajima"); +static const u8 sCreditsText_HidenoriSaeki[] = _("Hidenori Saeki"); +static const u8 sCreditsText_YokoWatanabe[] = _("Yoko Watanabe"); +static const u8 sCreditsText_SakaeKimura[] = _("Sakae Kimura"); +static const u8 sCreditsText_ChiakiShinkai[] = _("Chiaki Shinkai"); +static const u8 sCreditsText_SethMcMahill[] = _("Seth McMahill"); +static const u8 sCreditsText_NobOgasawara[] = _("Nob Ogasawara"); +static const u8 sCreditsText_TeresaLillygren[] = _("Teresa Lillygren"); +static const u8 sCreditsText_KimikoNakamichi[] = _("Kimiko Nakamichi"); +static const u8 sCreditsText_SouichiYamamoto[] = _("Souichi Yamamoto"); +static const u8 sCreditsText_YuichiroIto[] = _("Yuichiro Ito"); +static const u8 sCreditsText_ThomasHertzog[] = _("Thomas Hertzog"); +static const u8 sCreditsText_MikaKurosawa[] = _("Mika Kurosawa"); +static const u8 sCreditsText_NationalFederationBlind[] = _("National Federation of the Blind"); +static const u8 sCreditsText_PatriciaAMaurer[] = _("Patricia A. Maurer"); +static const u8 sCreditsText_EuropeanBlindUnion[] = _("European Blind Union"); +static const u8 sCreditsText_AustralianBrailleAuthority[] = _("Australian Braille Authority"); +static const u8 sCreditsText_RoyalNewZealandFederationBlind[] = _("Royal New Zealand Federation for the Blind"); +static const u8 sCreditsText_MotoyasuTojima[] = _("Motoyasu Tojima"); +static const u8 sCreditsText_NicolaPrattBarlow[] = _("Nicola Pratt-Barlow"); +static const u8 sCreditsText_ShellieDow[] = _("Shellie Dow"); +static const u8 sCreditsText_ErikJohnson[] = _("Erik Johnson"); +static const struct CreditsEntry sCreditsEntry_EmptyString[] = { 0, FALSE, sCreditsText_EmptyString}; +static const struct CreditsEntry sCreditsEntry_PkmnEmeraldVersion[] = { 7, TRUE, sCreditsText_PkmnEmeraldVersion}; +static const struct CreditsEntry sCreditsEntry_Credits[] = {11, TRUE, sCreditsText_Credits}; +static const struct CreditsEntry sCreditsEntry_ExecutiveDirector[] = { 8, TRUE, sCreditsText_ExecutiveDirector}; +static const struct CreditsEntry sCreditsEntry_Director[] = {12, TRUE, sCreditsText_Director}; +static const struct CreditsEntry sCreditsEntry_ArtDirector[] = {10, TRUE, sCreditsText_ArtDirector}; +static const struct CreditsEntry sCreditsEntry_BattleDirector[] = {10, TRUE, sCreditsText_BattleDirector}; +static const struct CreditsEntry sCreditsEntry_MainProgrammer[] = {10, TRUE, sCreditsText_MainProgrammer}; +static const struct CreditsEntry sCreditsEntry_BattleSystemPgrms[] = { 8, TRUE, sCreditsText_BattleSystemPgrms}; +static const struct CreditsEntry sCreditsEntry_FieldSystemPgrms[] = { 7, TRUE, sCreditsText_FieldSystemPgrms}; +static const struct CreditsEntry sCreditsEntry_Programmers[] = {12, TRUE, sCreditsText_Programmers}; +static const struct CreditsEntry sCreditsEntry_MainGraphicDesigner[] = { 7, TRUE, sCreditsText_MainGraphicDesigner}; +static const struct CreditsEntry sCreditsEntry_GraphicDesigners[] = { 9, TRUE, sCreditsText_GraphicDesigners}; +static const struct CreditsEntry sCreditsEntry_PkmnDesigners[] = {10, TRUE, sCreditsText_PkmnDesigners}; +static const struct CreditsEntry sCreditsEntry_MusicComposition[] = {13, TRUE, sCreditsText_MusicComposition}; +static const struct CreditsEntry sCreditsEntry_SoundEffectsAndPkmnVoices[] = { 4, TRUE, sCreditsText_SoundEffectsAndPkmnVoices}; +static const struct CreditsEntry sCreditsEntry_GameDesigners[] = {11, TRUE, sCreditsText_GameDesigners}; +static const struct CreditsEntry sCreditsEntry_ScenarioPlot[] = {11, TRUE, sCreditsText_ScenarioPlot}; +static const struct CreditsEntry sCreditsEntry_Scenario[] = {13, TRUE, sCreditsText_Scenario}; +static const struct CreditsEntry sCreditsEntry_ScriptDesigners[] = {10, TRUE, sCreditsText_ScriptDesigners}; +static const struct CreditsEntry sCreditsEntry_MapDesigners[] = {11, TRUE, sCreditsText_MapDesigners}; +static const struct CreditsEntry sCreditsEntry_MapDataDesigners[] = { 9, TRUE, sCreditsText_MapDataDesigners}; +static const struct CreditsEntry sCreditsEntry_ParametricDesigners[] = { 9, TRUE, sCreditsText_ParametricDesigners}; +static const struct CreditsEntry sCreditsEntry_PokedexText[] = {11, TRUE, sCreditsText_PokedexText}; +static const struct CreditsEntry sCreditsEntry_EnvAndToolPgrms[] = { 6, TRUE, sCreditsText_EnvAndToolPgrms}; +static const struct CreditsEntry sCreditsEntry_NCLProductTesting[] = {11, TRUE, sCreditsText_NCLProductTesting}; +static const struct CreditsEntry sCreditsEntry_SpecialThanks[] = {10, TRUE, sCreditsText_SpecialThanks}; +static const struct CreditsEntry sCreditsEntry_Coordinators[] = {11, TRUE, sCreditsText_Coordinators}; +static const struct CreditsEntry sCreditsEntry_Producers[] = {11, TRUE, sCreditsText_Producers}; +static const struct CreditsEntry sCreditsEntry_ExecProducers[] = { 7, TRUE, sCreditsText_ExecProducers}; +static const struct CreditsEntry sCreditsEntry_InfoSupervisors[] = {10, TRUE, sCreditsText_InfoSupervisors}; +static const struct CreditsEntry sCreditsEntry_TaskManagers[] = { 8, TRUE, sCreditsText_TaskManagers}; +static const struct CreditsEntry sCreditsEntry_BrailleCodeCheck[] = {10, TRUE, sCreditsText_BrailleCodeCheck}; +static const struct CreditsEntry sCreditsEntry_WorldDirector[] = {10, TRUE, sCreditsText_WorldDirector}; +static const struct CreditsEntry sCreditsEntry_BattleFrontierData[] = { 8, TRUE, sCreditsText_BattleFrontierData}; +static const struct CreditsEntry sCreditsEntry_SupportProgrammers[] = {10, TRUE, sCreditsText_SupportProgrammers}; +static const struct CreditsEntry sCreditsEntry_Artwork[] = {12, TRUE, sCreditsText_Artwork}; +static const struct CreditsEntry sCreditsEntry_LeadProgrammer[] = {10, TRUE, sCreditsText_LeadProgrammer}; +static const struct CreditsEntry sCreditsEntry_LeadGraphicArtist[] = { 9, TRUE, sCreditsText_LeadGraphicArtist}; +static const struct CreditsEntry sCreditsEntry_SatoshiTajiri[] = {11, FALSE, sCreditsText_SatoshiTajiri}; +static const struct CreditsEntry sCreditsEntry_JunichiMasuda[] = {11, FALSE, sCreditsText_JunichiMasuda}; +static const struct CreditsEntry sCreditsEntry_KenSugimori[] = {11, FALSE, sCreditsText_KenSugimori}; +static const struct CreditsEntry sCreditsEntry_ShigekiMorimoto[] = {11, FALSE, sCreditsText_ShigekiMorimoto}; +static const struct CreditsEntry sCreditsEntry_TetsuyaWatanabe[] = {11, FALSE, sCreditsText_TetsuyaWatanabe}; +static const struct CreditsEntry sCreditsEntry_HisashiSogabe[] = {11, FALSE, sCreditsText_HisashiSogabe}; +static const struct CreditsEntry sCreditsEntry_SosukeTamada[] = {11, FALSE, sCreditsText_SosukeTamada}; +static const struct CreditsEntry sCreditsEntry_AkitoMori[] = {11, FALSE, sCreditsText_AkitoMori}; +static const struct CreditsEntry sCreditsEntry_KeitaKagaya[] = {11, FALSE, sCreditsText_KeitaKagaya}; +static const struct CreditsEntry sCreditsEntry_YoshinoriMatsuda[] = {11, FALSE, sCreditsText_YoshinoriMatsuda}; +static const struct CreditsEntry sCreditsEntry_HiroyukiNakamura[] = {11, FALSE, sCreditsText_HiroyukiNakamura}; +static const struct CreditsEntry sCreditsEntry_MasaoTaya[] = {11, FALSE, sCreditsText_MasaoTaya}; +static const struct CreditsEntry sCreditsEntry_SatoshiNohara[] = {11, FALSE, sCreditsText_SatoshiNohara}; +static const struct CreditsEntry sCreditsEntry_TomomichiOhta[] = {11, FALSE, sCreditsText_TomomichiOhta}; +static const struct CreditsEntry sCreditsEntry_MiyukiIwasawa[] = {11, FALSE, sCreditsText_MiyukiIwasawa}; +static const struct CreditsEntry sCreditsEntry_TakenoriOhta[] = {11, FALSE, sCreditsText_TakenoriOhta}; +static const struct CreditsEntry sCreditsEntry_HironobuYoshida[] = {11, FALSE, sCreditsText_HironobuYoshida}; +static const struct CreditsEntry sCreditsEntry_MotofumiFujiwara[] = {11, FALSE, sCreditsText_MotofumiFujiwara}; +static const struct CreditsEntry sCreditsEntry_SatoshiOhta[] = {11, FALSE, sCreditsText_SatoshiOhta}; +static const struct CreditsEntry sCreditsEntry_AsukaIwashita[] = {11, FALSE, sCreditsText_AsukaIwashita}; +static const struct CreditsEntry sCreditsEntry_AimiTomita[] = {11, FALSE, sCreditsText_AimiTomita}; +static const struct CreditsEntry sCreditsEntry_TakaoUnno[] = {11, FALSE, sCreditsText_TakaoUnno}; +static const struct CreditsEntry sCreditsEntry_KanakoEo[] = {11, FALSE, sCreditsText_KanakoEo}; +static const struct CreditsEntry sCreditsEntry_JunOkutani[] = {11, FALSE, sCreditsText_JunOkutani}; +static const struct CreditsEntry sCreditsEntry_AtsukoNishida[] = {11, FALSE, sCreditsText_AtsukoNishida}; +static const struct CreditsEntry sCreditsEntry_MuneoSaito[] = {11, FALSE, sCreditsText_MuneoSaito}; +static const struct CreditsEntry sCreditsEntry_RenaYoshikawa[] = {11, FALSE, sCreditsText_RenaYoshikawa}; +static const struct CreditsEntry sCreditsEntry_GoIchinose[] = {11, FALSE, sCreditsText_GoIchinose}; +static const struct CreditsEntry sCreditsEntry_MorikazuAoki[] = {11, FALSE, sCreditsText_MorikazuAoki}; +static const struct CreditsEntry sCreditsEntry_KojiNishino[] = {11, FALSE, sCreditsText_KojiNishino}; +static const struct CreditsEntry sCreditsEntry_KenjiMatsushima[] = {11, FALSE, sCreditsText_KenjiMatsushima}; +static const struct CreditsEntry sCreditsEntry_TetsujiOhta[] = {11, FALSE, sCreditsText_TetsujiOhta}; +static const struct CreditsEntry sCreditsEntry_HitomiSato[] = {11, FALSE, sCreditsText_HitomiSato}; +static const struct CreditsEntry sCreditsEntry_TakeshiKawachimaru[] = {11, FALSE, sCreditsText_TakeshiKawachimaru}; +static const struct CreditsEntry sCreditsEntry_TeruyukiShimoyamada[] = {11, FALSE, sCreditsText_TeruyukiShimoyamada}; +static const struct CreditsEntry sCreditsEntry_ShigeruOhmori[] = {11, FALSE, sCreditsText_ShigeruOhmori}; +static const struct CreditsEntry sCreditsEntry_TadashiTakahashi[] = {11, FALSE, sCreditsText_TadashiTakahashi}; +static const struct CreditsEntry sCreditsEntry_ToshinobuMatsumiya[] = {11, FALSE, sCreditsText_ToshinobuMatsumiya}; +static const struct CreditsEntry sCreditsEntry_AkihitoTomisawa[] = {11, FALSE, sCreditsText_AkihitoTomisawa}; +static const struct CreditsEntry sCreditsEntry_HirokiEnomoto[] = {11, FALSE, sCreditsText_HirokiEnomoto}; +static const struct CreditsEntry sCreditsEntry_KazuyukiTerada[] = {11, FALSE, sCreditsText_KazuyukiTerada}; +static const struct CreditsEntry sCreditsEntry_YuriSakurai[] = {11, FALSE, sCreditsText_YuriSakurai}; +static const struct CreditsEntry sCreditsEntry_HiromiSagawa[] = {11, FALSE, sCreditsText_HiromiSagawa}; +static const struct CreditsEntry sCreditsEntry_KenjiTominaga[] = {11, FALSE, sCreditsText_KenjiTominaga}; +static const struct CreditsEntry sCreditsEntry_YoshioTajiri[] = {11, FALSE, sCreditsText_YoshioTajiri}; +static const struct CreditsEntry sCreditsEntry_TeikoSasaki[] = {11, FALSE, sCreditsText_TeikoSasaki}; +static const struct CreditsEntry sCreditsEntry_SachikoHamano[] = {11, FALSE, sCreditsText_SachikoHamano}; +static const struct CreditsEntry sCreditsEntry_ChieMatsumiya[] = {11, FALSE, sCreditsText_ChieMatsumiya}; +static const struct CreditsEntry sCreditsEntry_AkikoShinozaki[] = {11, FALSE, sCreditsText_AkikoShinozaki}; +static const struct CreditsEntry sCreditsEntry_AstukoFujii[] = {11, FALSE, sCreditsText_AstukoFujii}; +static const struct CreditsEntry sCreditsEntry_NozomuSaito[] = {11, FALSE, sCreditsText_NozomuSaito}; +static const struct CreditsEntry sCreditsEntry_KenkichiToyama[] = {11, FALSE, sCreditsText_KenkichiToyama}; +static const struct CreditsEntry sCreditsEntry_SuguruNakatsui[] = {11, FALSE, sCreditsText_SuguruNakatsui}; +static const struct CreditsEntry sCreditsEntry_YumiFunasaka[] = {11, FALSE, sCreditsText_YumiFunasaka}; +static const struct CreditsEntry sCreditsEntry_NaokoYanase[] = {11, FALSE, sCreditsText_NaokoYanase}; +static const struct CreditsEntry sCreditsEntry_NCLSuperMarioClub[] = {11, FALSE, sCreditsText_NCLSuperMarioClub}; +static const struct CreditsEntry sCreditsEntry_AtsushiTada[] = {11, FALSE, sCreditsText_AtsushiTada}; +static const struct CreditsEntry sCreditsEntry_TakahiroOhnishi[] = {11, FALSE, sCreditsText_TakahiroOhnishi}; +static const struct CreditsEntry sCreditsEntry_NorihideOkamura[] = {11, FALSE, sCreditsText_NorihideOkamura}; +static const struct CreditsEntry sCreditsEntry_HiroNakamura[] = {11, FALSE, sCreditsText_HiroNakamura}; +static const struct CreditsEntry sCreditsEntry_HiroyukiUesugi[] = {11, FALSE, sCreditsText_HiroyukiUesugi}; +static const struct CreditsEntry sCreditsEntry_TerukiMurakawa[] = {11, FALSE, sCreditsText_TerukiMurakawa}; +static const struct CreditsEntry sCreditsEntry_AkiraKinashi[] = {11, FALSE, sCreditsText_AkiraKinashi}; +static const struct CreditsEntry sCreditsEntry_MichikoTakizawa[] = {11, FALSE, sCreditsText_MichikoTakizawa}; +static const struct CreditsEntry sCreditsEntry_MakikoTakada[] = {11, FALSE, sCreditsText_MakikoTakada}; +static const struct CreditsEntry sCreditsEntry_TakanaoKondo[] = {11, FALSE, sCreditsText_TakanaoKondo}; +static const struct CreditsEntry sCreditsEntry_AiMashima[] = {11, FALSE, sCreditsText_AiMashima}; +static const struct CreditsEntry sCreditsEntry_GakujiNomoto[] = {11, FALSE, sCreditsText_GakujiNomoto}; +static const struct CreditsEntry sCreditsEntry_TakehiroIzushi[] = {11, FALSE, sCreditsText_TakehiroIzushi}; +static const struct CreditsEntry sCreditsEntry_HitoshiYamagami[] = {11, FALSE, sCreditsText_HitoshiYamagami}; +static const struct CreditsEntry sCreditsEntry_KyokoWatanabe[] = {11, FALSE, sCreditsText_KyokoWatanabe}; +static const struct CreditsEntry sCreditsEntry_TakaoNakano[] = {11, FALSE, sCreditsText_TakaoNakano}; +static const struct CreditsEntry sCreditsEntry_HiroyukiJinnai[] = {11, FALSE, sCreditsText_HiroyukiJinnai}; +static const struct CreditsEntry sCreditsEntry_HiroakiTsuru[] = {11, FALSE, sCreditsText_HiroakiTsuru}; +static const struct CreditsEntry sCreditsEntry_TsunekazIshihara[] = {11, FALSE, sCreditsText_TsunekazIshihara}; +static const struct CreditsEntry sCreditsEntry_SatoruIwata[] = {11, FALSE, sCreditsText_SatoruIwata}; +static const struct CreditsEntry sCreditsEntry_KazuyaSuyama[] = {11, FALSE, sCreditsText_KazuyaSuyama}; +static const struct CreditsEntry sCreditsEntry_SatoshiMitsuhara[] = {11, FALSE, sCreditsText_SatoshiMitsuhara}; +static const struct CreditsEntry sCreditsEntry_JapanBrailleLibrary[] = { 9, FALSE, sCreditsText_JapanBrailleLibrary}; +static const struct CreditsEntry sCreditsEntry_TomotakaKomura[] = {11, FALSE, sCreditsText_TomotakaKomura}; +static const struct CreditsEntry sCreditsEntry_MikikoOhhashi[] = {11, FALSE, sCreditsText_MikikoOhhashi}; +static const struct CreditsEntry sCreditsEntry_DaisukeHoshino[] = {11, FALSE, sCreditsText_DaisukeHoshino}; +static const struct CreditsEntry sCreditsEntry_KenjiroIto[] = {11, FALSE, sCreditsText_KenjiroIto}; +static const struct CreditsEntry sCreditsEntry_RuiKawaguchi[] = {11, FALSE, sCreditsText_RuiKawaguchi}; +static const struct CreditsEntry sCreditsEntry_ShunsukeKohori[] = {11, FALSE, sCreditsText_ShunsukeKohori}; +static const struct CreditsEntry sCreditsEntry_SachikoNakamichi[] = {11, FALSE, sCreditsText_SachikoNakamichi}; +static const struct CreditsEntry sCreditsEntry_FujikoNomura[] = {11, FALSE, sCreditsText_FujikoNomura}; +static const struct CreditsEntry sCreditsEntry_KazukiYoshihara[] = {11, FALSE, sCreditsText_KazukiYoshihara}; +static const struct CreditsEntry sCreditsEntry_RetsujiNomoto[] = {11, FALSE, sCreditsText_RetsujiNomoto}; +static const struct CreditsEntry sCreditsEntry_AzusaTajima[] = {11, FALSE, sCreditsText_AzusaTajima}; +static const struct CreditsEntry sCreditsEntry_ShusakuEgami[] = {11, FALSE, sCreditsText_ShusakuEgami}; +static const struct CreditsEntry sCreditsEntry_PackageAndManual[] = { 0, TRUE, sCreditsText_PackageAndManual}; +static const struct CreditsEntry sCreditsEntry_EnglishVersion[] = { 0, TRUE, sCreditsText_EnglishVersion}; +static const struct CreditsEntry sCreditsEntry_Translator[] = { 0, TRUE, sCreditsText_Translator}; +static const struct CreditsEntry sCreditsEntry_TextEditor[] = { 0, TRUE, sCreditsText_TextEditor}; +static const struct CreditsEntry sCreditsEntry_NCLCoordinator[] = { 0, TRUE, sCreditsText_NCLCoordinator}; +static const struct CreditsEntry sCreditsEntry_GraphicDesigner[] = { 0, TRUE, sCreditsText_GraphicDesigner}; +static const struct CreditsEntry sCreditsEntry_NOAProductTesting[] = { 0, TRUE, sCreditsText_NOAProductTesting}; +static const struct CreditsEntry sCreditsEntry_HideyukiNakajima[] = { 0, FALSE, sCreditsText_HideyukiNakajima}; +static const struct CreditsEntry sCreditsEntry_HidenoriSaeki[] = { 0, FALSE, sCreditsText_HidenoriSaeki}; +static const struct CreditsEntry sCreditsEntry_YokoWatanabe[] = { 0, FALSE, sCreditsText_YokoWatanabe}; +static const struct CreditsEntry sCreditsEntry_SakaeKimura[] = { 0, FALSE, sCreditsText_SakaeKimura}; +static const struct CreditsEntry sCreditsEntry_ChiakiShinkai[] = { 0, FALSE, sCreditsText_ChiakiShinkai}; +static const struct CreditsEntry sCreditsEntry_SethMcMahill[] = { 0, FALSE, sCreditsText_SethMcMahill}; +static const struct CreditsEntry sCreditsEntry_NobOgasawara[] = { 0, FALSE, sCreditsText_NobOgasawara}; +static const struct CreditsEntry sCreditsEntry_TeresaLillygren[] = { 0, FALSE, sCreditsText_TeresaLillygren}; +static const struct CreditsEntry sCreditsEntry_KimikoNakamichi[] = { 0, FALSE, sCreditsText_KimikoNakamichi}; +static const struct CreditsEntry sCreditsEntry_SouichiYamamoto[] = { 0, FALSE, sCreditsText_SouichiYamamoto}; +static const struct CreditsEntry sCreditsEntry_YuichiroIto[] = { 0, FALSE, sCreditsText_YuichiroIto}; +static const struct CreditsEntry sCreditsEntry_ThomasHertzog[] = { 0, FALSE, sCreditsText_ThomasHertzog}; +static const struct CreditsEntry sCreditsEntry_MikaKurosawa[] = { 0, FALSE, sCreditsText_MikaKurosawa}; +static const struct CreditsEntry sCreditsEntry_NationalFederationBlind[] = { 0, FALSE, sCreditsText_NationalFederationBlind}; +static const struct CreditsEntry sCreditsEntry_PatriciaAMaurer[] = { 0, FALSE, sCreditsText_PatriciaAMaurer}; +static const struct CreditsEntry sCreditsEntry_EuropeanBlindUnion[] = { 0, FALSE, sCreditsText_EuropeanBlindUnion}; +static const struct CreditsEntry sCreditsEntry_AustralianBrailleAuthority[] = { 0, FALSE, sCreditsText_AustralianBrailleAuthority}; +static const struct CreditsEntry sCreditsEntry_RoyalNewZealandFederationBlind[] = { 0, FALSE, sCreditsText_RoyalNewZealandFederationBlind}; +static const struct CreditsEntry sCreditsEntry_MotoyasuTojima[] = { 0, FALSE, sCreditsText_MotoyasuTojima}; +static const struct CreditsEntry sCreditsEntry_NicolaPrattBarlow[] = { 0, FALSE, sCreditsText_NicolaPrattBarlow}; +static const struct CreditsEntry sCreditsEntry_ShellieDow[] = { 0, FALSE, sCreditsText_ShellieDow}; +static const struct CreditsEntry sCreditsEntry_ErikJohnson[] = { 0, FALSE, sCreditsText_ErikJohnson}; + +#define _ sCreditsEntry_EmptyString +static const struct CreditsEntry *const sCreditsEntryPointerTable[PAGE_COUNT][ENTRIES_PER_PAGE] = +{ + [PAGE_TITLE] = { + _, + sCreditsEntry_PkmnEmeraldVersion, + sCreditsEntry_Credits, + _, + _ + }, + [PAGE_DIRECTOR] = { + _, + sCreditsEntry_Director, + sCreditsEntry_ShigekiMorimoto, + _, + _, + }, + [PAGE_ART_DIRECTOR] = { + _, + sCreditsEntry_ArtDirector, + sCreditsEntry_KenSugimori, + _, + _, + }, + [PAGE_WORLD_DIRECTOR] = { + _, + sCreditsEntry_WorldDirector, + sCreditsEntry_JunichiMasuda, + _, + _, + }, + [PAGE_LEAD_PROGRAMMER] = { + sCreditsEntry_LeadProgrammer, + sCreditsEntry_HisashiSogabe, + sCreditsEntry_LeadGraphicArtist, + sCreditsEntry_MotofumiFujiwara, + _, + }, + [PAGE_PROGRAMMERS_1] = { + sCreditsEntry_Programmers, + sCreditsEntry_HisashiSogabe, + sCreditsEntry_TomomichiOhta, + sCreditsEntry_NozomuSaito, + sCreditsEntry_EmptyString, + }, + [PAGE_PROGRAMMERS_2] = { + sCreditsEntry_Programmers, + sCreditsEntry_AkitoMori, + sCreditsEntry_HiroyukiNakamura, + sCreditsEntry_MasaoTaya, + _, + }, + [PAGE_PROGRAMMERS_3] = { + sCreditsEntry_Programmers, + sCreditsEntry_SatoshiNohara, + sCreditsEntry_MiyukiIwasawa, + sCreditsEntry_YoshinoriMatsuda, + sCreditsEntry_KeitaKagaya, + }, + [PAGE_PROGRAMMERS_4] = { + sCreditsEntry_Programmers, + sCreditsEntry_TetsuyaWatanabe, + sCreditsEntry_SosukeTamada, + sCreditsEntry_TakenoriOhta, + _, + }, + [PAGE_GRAPHIC_DESIGNERS_1] = { + _, + sCreditsEntry_GraphicDesigners, + sCreditsEntry_MotofumiFujiwara, + sCreditsEntry_SatoshiOhta, + _, + }, + [PAGE_GRAPHIC_DESIGNERS_2] = { + sCreditsEntry_GraphicDesigners, + sCreditsEntry_KenkichiToyama, + sCreditsEntry_AsukaIwashita, + sCreditsEntry_TakaoUnno, + _, + }, + [PAGE_GRAPHIC_DESIGNERS_3] = { + sCreditsEntry_GraphicDesigners, + sCreditsEntry_KenSugimori, + sCreditsEntry_HironobuYoshida, + sCreditsEntry_AimiTomita, + sCreditsEntry_KanakoEo, + }, + [PAGE_MUSIC_COMPOSITION] = { + sCreditsEntry_MusicComposition, + sCreditsEntry_GoIchinose, + sCreditsEntry_JunichiMasuda, + sCreditsEntry_MorikazuAoki, + sCreditsEntry_HitomiSato, + }, + [PAGE_SOUND_EFFECTS] = { + _, + sCreditsEntry_SoundEffectsAndPkmnVoices, + sCreditsEntry_GoIchinose, + sCreditsEntry_MorikazuAoki, + _, + }, + [PAGE_GAME_DESIGNERS_1] = { + sCreditsEntry_GameDesigners, + sCreditsEntry_ShigekiMorimoto, + sCreditsEntry_TeruyukiShimoyamada, + sCreditsEntry_TakeshiKawachimaru, + sCreditsEntry_AkihitoTomisawa, + }, + [PAGE_GAME_DESIGNERS_2] = { + sCreditsEntry_GameDesigners, + sCreditsEntry_SuguruNakatsui, + sCreditsEntry_TetsujiOhta, + sCreditsEntry_HitomiSato, + sCreditsEntry_KenjiMatsushima, + }, + [PAGE_GAME_DESIGNERS_3] = { + sCreditsEntry_GameDesigners, + sCreditsEntry_JunichiMasuda, + sCreditsEntry_KojiNishino, + sCreditsEntry_ShigeruOhmori, + sCreditsEntry_TadashiTakahashi, + }, + [PAGE_SCENARIO_PLOT] = { + sCreditsEntry_ScenarioPlot, + sCreditsEntry_AkihitoTomisawa, + sCreditsEntry_JunichiMasuda, + sCreditsEntry_KojiNishino, + _, + }, + [PAGE_SCENARIO] = { + sCreditsEntry_Scenario, + sCreditsEntry_AkihitoTomisawa, + sCreditsEntry_HitomiSato, + sCreditsEntry_ToshinobuMatsumiya, + _, + }, + [PAGE_SCRIPT_DESIGNERS] = { + sCreditsEntry_ScriptDesigners, + sCreditsEntry_TomomichiOhta, + sCreditsEntry_SatoshiNohara, + _, + _, + }, + [PAGE_MAP_DESIGNERS] = { + sCreditsEntry_MapDesigners, + sCreditsEntry_SuguruNakatsui, + sCreditsEntry_TeruyukiShimoyamada, + sCreditsEntry_ShigeruOhmori, + sCreditsEntry_TetsujiOhta, + }, + [PAGE_BATTLE_FRONTIER_DATA] = { + _, + sCreditsEntry_BattleFrontierData, + sCreditsEntry_TetsujiOhta, + _, + _, + }, + [PAGE_PARAMETRIC_DESIGNERS] = { + sCreditsEntry_ParametricDesigners, + sCreditsEntry_TeruyukiShimoyamada, + sCreditsEntry_ShigekiMorimoto, + sCreditsEntry_TetsujiOhta, + sCreditsEntry_KojiNishino, + }, + [PAGE_POKEDEX_TEXT] = { + _, + sCreditsEntry_PokedexText, + sCreditsEntry_KenjiMatsushima, + _, + _, + }, + [PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_1] = { + sCreditsEntry_EnvAndToolPgrms, + sCreditsEntry_HisashiSogabe, + sCreditsEntry_SosukeTamada, + sCreditsEntry_HiroyukiNakamura, + sCreditsEntry_AkitoMori, + }, + [PAGE_PKMN_DESIGNERS_1] = { + sCreditsEntry_PkmnDesigners, + sCreditsEntry_KenSugimori, + sCreditsEntry_MotofumiFujiwara, + sCreditsEntry_ShigekiMorimoto, + _, + }, + [PAGE_PKMN_DESIGNERS_2] = { + sCreditsEntry_PkmnDesigners, + sCreditsEntry_HironobuYoshida, + sCreditsEntry_SatoshiOhta, + sCreditsEntry_AsukaIwashita, + _, + }, + [PAGE_PKMN_DESIGNERS_3] = { + sCreditsEntry_PkmnDesigners, + sCreditsEntry_TakaoUnno, + sCreditsEntry_KanakoEo, + sCreditsEntry_AimiTomita, + _, + }, + [PAGE_PKMN_DESIGNERS_4] = { + sCreditsEntry_PkmnDesigners, + sCreditsEntry_AtsukoNishida, + sCreditsEntry_MuneoSaito, + sCreditsEntry_RenaYoshikawa, + sCreditsEntry_JunOkutani, + }, + [PAGE_SUPPORT_PROGRAMMERS] = { + _, + sCreditsEntry_SupportProgrammers, + sCreditsEntry_SatoshiMitsuhara, + sCreditsEntry_DaisukeHoshino, + _, + }, + [PAGE_NCL_PRODUCT_TESTING] = { + _, + sCreditsEntry_NCLProductTesting, + sCreditsEntry_NCLSuperMarioClub, + _, + _, + }, + [PAGE_PACKAGE_AND_MANUAL] = { + _, + sCreditsEntry_PackageAndManual, + sCreditsEntry_KenSugimori, + _, + _, + }, + [PAGE_SPECIAL_THANKS_1] = { + _, + sCreditsEntry_SpecialThanks, + sCreditsEntry_KenjiTominaga, + sCreditsEntry_HirokiEnomoto, + _, + }, + [PAGE_SPECIAL_THANKS_2] = { + sCreditsEntry_SpecialThanks, + sCreditsEntry_KazuyaSuyama, + sCreditsEntry_KenjiroIto, + sCreditsEntry_MichikoTakizawa, + sCreditsEntry_MakikoTakada, + }, + [PAGE_SPECIAL_THANKS_3] = { + sCreditsEntry_SpecialThanks, + sCreditsEntry_MikikoOhhashi, + sCreditsEntry_TakanaoKondo, + sCreditsEntry_RuiKawaguchi, + _, + }, + [PAGE_SPECIAL_THANKS_4] = { + sCreditsEntry_SpecialThanks, + sCreditsEntry_TakahiroOhnishi, + sCreditsEntry_NorihideOkamura, + sCreditsEntry_ShunsukeKohori, + _, + }, + [PAGE_INFORMATION_SUPERVISORS] = { + sCreditsEntry_InfoSupervisors, + sCreditsEntry_KazuyukiTerada, + sCreditsEntry_YuriSakurai, + sCreditsEntry_YumiFunasaka, + sCreditsEntry_NaokoYanase, + }, + [PAGE_ARTWORK_1] = { + _, + sCreditsEntry_Artwork, + sCreditsEntry_SachikoNakamichi, + sCreditsEntry_FujikoNomura, + _, + }, + [PAGE_ARTWORK_2] = { + _, + sCreditsEntry_Artwork, + sCreditsEntry_HideyukiNakajima, + sCreditsEntry_HidenoriSaeki, + _, + }, + [PAGE_ARTWORK_3] = { + sCreditsEntry_Artwork, + sCreditsEntry_YokoWatanabe, + sCreditsEntry_SakaeKimura, + sCreditsEntry_ChiakiShinkai, + _, + }, + [PAGE_COORDINATORS] = { + sCreditsEntry_Coordinators, + sCreditsEntry_KazukiYoshihara, + sCreditsEntry_AkiraKinashi, + sCreditsEntry_RetsujiNomoto, + _, + }, + [PAGE_ENGLISH_VERSION] = { + _, + sCreditsEntry_EnglishVersion, + sCreditsEntry_HiroNakamura, + sCreditsEntry_SethMcMahill, + _, + }, + [PAGE_TRANSLATOR] = { + _, + sCreditsEntry_Translator, + sCreditsEntry_NobOgasawara, + _, + _, + }, + [PAGE_TEXT_EDITOR] = { + _, + sCreditsEntry_TextEditor, + sCreditsEntry_TeresaLillygren, + _, + _, + }, + [PAGE_NCL_COORDINATOR] = { + _, + sCreditsEntry_NCLCoordinator, + sCreditsEntry_KimikoNakamichi, + _, + _, + }, + [PAGE_PROGRAMMERS_5] = { + sCreditsEntry_Programmers, + sCreditsEntry_TerukiMurakawa, + sCreditsEntry_SouichiYamamoto, + sCreditsEntry_YuichiroIto, + sCreditsEntry_AkiraKinashi, + }, + [PAGE_GRAPHIC_DESIGNER] = { + _, + sCreditsEntry_GraphicDesigner, + sCreditsEntry_AkiraKinashi, + _, + _, + }, + [PAGE_ENVIRONMENT_AND_TOOL_PROGRAMS_2] = { + sCreditsEntry_EnvAndToolPgrms, + sCreditsEntry_TerukiMurakawa, + sCreditsEntry_SouichiYamamoto, + sCreditsEntry_KimikoNakamichi, + _, + }, + [PAGE_NOA_TESTING] = { + sCreditsEntry_NOAProductTesting, + sCreditsEntry_ThomasHertzog, + sCreditsEntry_ErikJohnson, + sCreditsEntry_MikaKurosawa, + _, + }, + [PAGE_BRAILLE_CODE_CHECK_1] = { + sCreditsEntry_BrailleCodeCheck, + sCreditsEntry_NationalFederationBlind, + sCreditsEntry_PatriciaAMaurer, + sCreditsEntry_JapanBrailleLibrary, + sCreditsEntry_EuropeanBlindUnion, + }, + [PAGE_BRAILLE_CODE_CHECK_2] = { + _, + sCreditsEntry_BrailleCodeCheck, + sCreditsEntry_AustralianBrailleAuthority, + sCreditsEntry_RoyalNewZealandFederationBlind, + _, + }, + [PAGE_SPECIAL_THANKS_5] = { + sCreditsEntry_SpecialThanks, + sCreditsEntry_HiroyukiUesugi, + sCreditsEntry_MotoyasuTojima, + sCreditsEntry_NicolaPrattBarlow, + sCreditsEntry_ShellieDow, + }, + [PAGE_TASK_MANAGERS] = { + _, + sCreditsEntry_TaskManagers, + sCreditsEntry_AzusaTajima, + sCreditsEntry_ShusakuEgami, + _, + }, + [PAGE_PRODUCERS] = { + sCreditsEntry_Producers, + sCreditsEntry_HiroyukiJinnai, + sCreditsEntry_HitoshiYamagami, + sCreditsEntry_GakujiNomoto, + sCreditsEntry_HiroakiTsuru, + }, + [PAGE_EXECUTIVE_DIRECTOR] = { + _, + sCreditsEntry_ExecutiveDirector, + sCreditsEntry_SatoshiTajiri, + _, + _, + }, + [PAGE_EXECUTIVE_PRODUCERS_1] = { + _, + sCreditsEntry_ExecProducers, + sCreditsEntry_SatoruIwata, + _, + _, + }, + [PAGE_EXECUTIVE_PRODUCERS_2] = { + _, + sCreditsEntry_ExecProducers, + sCreditsEntry_TsunekazIshihara, + _, + _, + }, +}; +#undef _ diff --git a/src/data/decoration/header.h b/src/data/decoration/header.h index 55458c7a3f..c574988281 100644 --- a/src/data/decoration/header.h +++ b/src/data/decoration/header.h @@ -1,1091 +1,1454 @@ -const struct Decoration gDecorations[] = { +const struct Decoration gDecorations[] = +{ + [DECOR_NONE] = { - DECOR_NONE, - _("SMALL DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x1, - DECORCAT_DESK, - 0, - DecorDesc_SMALL_DESK, - DecorGfx_SMALL_DESK - }, { - DECOR_SMALL_DESK, - _("SMALL DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x1, - DECORCAT_DESK, - 3000, - DecorDesc_SMALL_DESK, - DecorGfx_SMALL_DESK - }, { - DECOR_POKEMON_DESK, - _("POKéMON DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x1, - DECORCAT_DESK, - 3000, - DecorDesc_POKEMON_DESK, - DecorGfx_POKEMON_DESK - }, { - DECOR_HEAVY_DESK, - _("HEAVY DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_3x2, - DECORCAT_DESK, - 6000, - DecorDesc_HEAVY_DESK, - DecorGfx_HEAVY_DESK - }, { - DECOR_RAGGED_DESK, - _("RAGGED DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_3x2, - DECORCAT_DESK, - 6000, - DecorDesc_RAGGED_DESK, - DecorGfx_RAGGED_DESK - }, { - DECOR_COMFORT_DESK, - _("COMFORT DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_3x2, - DECORCAT_DESK, - 6000, - DecorDesc_COMFORT_DESK, - DecorGfx_COMFORT_DESK - }, { - DECOR_PRETTY_DESK, - _("PRETTY DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_3x3, - DECORCAT_DESK, - 9000, - DecorDesc_PRETTY_DESK, - DecorGfx_PRETTY_DESK - }, { - DECOR_BRICK_DESK, - _("BRICK DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_3x3, - DECORCAT_DESK, - 9000, - DecorDesc_BRICK_DESK, - DecorGfx_BRICK_DESK - }, { - DECOR_CAMP_DESK, - _("CAMP DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_3x3, - DECORCAT_DESK, - 9000, - DecorDesc_CAMP_DESK, - DecorGfx_CAMP_DESK - }, { - DECOR_HARD_DESK, - _("HARD DESK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_3x3, - DECORCAT_DESK, - 9000, - DecorDesc_HARD_DESK, - DecorGfx_HARD_DESK - }, { - DECOR_SMALL_CHAIR, - _("SMALL CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_SMALL_CHAIR, - DecorGfx_SMALL_CHAIR - }, { - DECOR_POKEMON_CHAIR, - _("POKéMON CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_POKEMON_CHAIR, - DecorGfx_POKEMON_CHAIR - }, { - DECOR_HEAVY_CHAIR, - _("HEAVY CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_HEAVY_CHAIR, - DecorGfx_HEAVY_CHAIR - }, { - DECOR_PRETTY_CHAIR, - _("PRETTY CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_PRETTY_CHAIR, - DecorGfx_PRETTY_CHAIR - }, { - DECOR_COMFORT_CHAIR, - _("COMFORT CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_COMFORT_CHAIR, - DecorGfx_COMFORT_CHAIR - }, { - DECOR_RAGGED_CHAIR, - _("RAGGED CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_RAGGED_CHAIR, - DecorGfx_RAGGED_CHAIR - }, { - DECOR_BRICK_CHAIR, - _("BRICK CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_BRICK_CHAIR, - DecorGfx_BRICK_CHAIR - }, { - DECOR_CAMP_CHAIR, - _("CAMP CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_CAMP_CHAIR, - DecorGfx_CAMP_CHAIR - }, { - DECOR_HARD_CHAIR, - _("HARD CHAIR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_CHAIR, - 2000, - DecorDesc_HARD_CHAIR, - DecorGfx_HARD_CHAIR - }, { - DECOR_RED_PLANT, - _("RED PLANT"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_1x2, - DECORCAT_PLANT, - 3000, - DecorDesc_RED_PLANT, - DecorGfx_RED_PLANT - }, { - DECOR_TROPICAL_PLANT, - _("TROPICAL PLANT"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_1x2, - DECORCAT_PLANT, - 3000, - DecorDesc_TROPICAL_PLANT, - DecorGfx_TROPICAL_PLANT - }, { - DECOR_PRETTY_FLOWERS, - _("PRETTY FLOWERS"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_1x2, - DECORCAT_PLANT, - 3000, - DecorDesc_PRETTY_FLOWERS, - DecorGfx_PRETTY_FLOWERS - }, { - DECOR_COLORFUL_PLANT, - _("COLORFUL PLANT"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_2x2, - DECORCAT_PLANT, - 5000, - DecorDesc_COLORFUL_PLANT, - DecorGfx_COLORFUL_PLANT - }, { - DECOR_BIG_PLANT, - _("BIG PLANT"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_2x2, - DECORCAT_PLANT, - 5000, - DecorDesc_BIG_PLANT, - DecorGfx_BIG_PLANT - }, { - DECOR_GORGEOUS_PLANT, - _("GORGEOUS PLANT"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_2x2, - DECORCAT_PLANT, - 5000, - DecorDesc_GORGEOUS_PLANT, - DecorGfx_GORGEOUS_PLANT - }, { - DECOR_RED_BRICK, - _("RED BRICK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 500, - DecorDesc_RED_BRICK, - DecorGfx_RED_BRICK - }, { - DECOR_YELLOW_BRICK, - _("YELLOW BRICK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 500, - DecorDesc_YELLOW_BRICK, - DecorGfx_YELLOW_BRICK - }, { - DECOR_BLUE_BRICK, - _("BLUE BRICK"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 500, - DecorDesc_BLUE_BRICK, - DecorGfx_BLUE_BRICK - }, { - DECOR_RED_BALLOON, - _("RED BALLOON"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 500, - DecorDesc_RED_BALLOON, - DecorGfx_RED_BALLOON - }, { - DECOR_BLUE_BALLOON, - _("BLUE BALLOON"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 500, - DecorDesc_BLUE_BALLOON, - DecorGfx_BLUE_BALLOON - }, { - DECOR_YELLOW_BALLOON, - _("YELLOW BALLOON"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 500, - DecorDesc_YELLOW_BALLOON, - DecorGfx_YELLOW_BALLOON - }, { - DECOR_RED_TENT, - _("RED TENT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_ORNAMENT, - 10000, - DecorDesc_RED_TENT, - DecorGfx_RED_TENT - }, { - DECOR_BLUE_TENT, - _("BLUE TENT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_ORNAMENT, - 10000, - DecorDesc_BLUE_TENT, - DecorGfx_BLUE_TENT - }, { - DECOR_SOLID_BOARD, - _("SOLID BOARD"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 3000, - DecorDesc_SOLID_BOARD, - DecorGfx_SOLID_BOARD - }, { - DECOR_SLIDE, - _("SLIDE"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_2x4, - DECORCAT_ORNAMENT, - 8000, - DecorDesc_SLIDE, - DecorGfx_SLIDE - }, { - DECOR_FENCE_LENGTH, - _("FENCE LENGTH"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 500, - DecorDesc_FENCE_LENGTH, - DecorGfx_FENCE_LENGTH - }, { - DECOR_FENCE_WIDTH, - _("FENCE WIDTH"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 500, - DecorDesc_FENCE_WIDTH, - DecorGfx_FENCE_WIDTH - }, { - DECOR_TIRE, - _("TIRE"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_2x2, - DECORCAT_ORNAMENT, - 800, - DecorDesc_TIRE, - DecorGfx_TIRE - }, { - DECOR_STAND, - _("STAND"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_4x2, - DECORCAT_ORNAMENT, - 7000, - DecorDesc_STAND, - DecorGfx_STAND - }, { - DECOR_MUD_BALL, - _("MUD BALL"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 200, - DecorDesc_MUD_BALL, - DecorGfx_MUD_BALL - }, { - DECOR_BREAKABLE_DOOR, - _("BREAKABLE DOOR"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 3000, - DecorDesc_BREAKABLE_DOOR, - DecorGfx_BREAKABLE_DOOR - }, { - DECOR_SAND_ORNAMENT, - _("SAND ORNAMENT"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 3000, - DecorDesc_SAND_ORNAMENT, - DecorGfx_SAND_ORNAMENT - }, { - DECOR_SILVER_SHIELD, - _("SILVER SHIELD"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 0, - DecorDesc_SILVER_SHIELD, - DecorGfx_SILVER_SHIELD - }, { - DECOR_GOLD_SHIELD, - _("GOLD SHIELD"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 0, - DecorDesc_GOLD_SHIELD, - DecorGfx_GOLD_SHIELD - }, { - DECOR_GLASS_ORNAMENT, - _("GLASS ORNAMENT"), - DECORPERM_BEHIND_FLOOR, - DECORSHAPE_1x2, - DECORCAT_ORNAMENT, - 0, - DecorDesc_GLASS_ORNAMENT, - DecorGfx_GLASS_ORNAMENT - }, { - DECOR_TV, - _("TV"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 3000, - DecorDesc_TV, - DecorGfx_TV - }, { - DECOR_ROUND_TV, - _("ROUND TV"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 4000, - DecorDesc_ROUND_TV, - DecorGfx_ROUND_TV - }, { - DECOR_CUTE_TV, - _("CUTE TV"), - DECORPERM_SOLID_FLOOR, - DECORSHAPE_1x1, - DECORCAT_ORNAMENT, - 4000, - DecorDesc_CUTE_TV, - DecorGfx_CUTE_TV - }, { - DECOR_GLITTER_MAT, - _("GLITTER MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 2000, - DecorDesc_GLITTER_MAT, - DecorGfx_GLITTER_MAT - }, { - DECOR_JUMP_MAT, - _("JUMP MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 2000, - DecorDesc_JUMP_MAT, - DecorGfx_JUMP_MAT - }, { - DECOR_SPIN_MAT, - _("SPIN MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 2000, - DecorDesc_SPIN_MAT, - DecorGfx_SPIN_MAT - }, { - DECOR_C_LOW_NOTE_MAT, - _("C Low NOTE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 500, - DecorDesc_C_LOW_NOTE_MAT, - DecorGfx_C_LOW_NOTE_MAT - }, { - DECOR_D_NOTE_MAT, - _("D NOTE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 500, - DecorDesc_D_NOTE_MAT, - DecorGfx_D_NOTE_MAT - }, { - DECOR_E_NOTE_MAT, - _("E NOTE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 500, - DecorDesc_E_NOTE_MAT, - DecorGfx_E_NOTE_MAT - }, { - DECOR_F_NOTE_MAT, - _("F NOTE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 500, - DecorDesc_F_NOTE_MAT, - DecorGfx_F_NOTE_MAT - }, { - DECOR_G_NOTE_MAT, - _("G NOTE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 500, - DecorDesc_G_NOTE_MAT, - DecorGfx_G_NOTE_MAT - }, { - DECOR_A_NOTE_MAT, - _("A NOTE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 500, - DecorDesc_A_NOTE_MAT, - DecorGfx_A_NOTE_MAT - }, { - DECOR_B_NOTE_MAT, - _("B NOTE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 500, - DecorDesc_B_NOTE_MAT, - DecorGfx_B_NOTE_MAT - }, { - DECOR_C_HIGH_NOTE_MAT, - _("C High NOTE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_1x1, - DECORCAT_MAT, - 500, - DecorDesc_C_HIGH_NOTE_MAT, - DecorGfx_C_HIGH_NOTE_MAT - }, { - DECOR_SURF_MAT, - _("SURF MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_MAT, - 4000, - DecorDesc_SURF_MAT, - DecorGfx_SURF_MAT - }, { - DECOR_THUNDER_MAT, - _("THUNDER MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_MAT, - 4000, - DecorDesc_THUNDER_MAT, - DecorGfx_THUNDER_MAT - }, { - DECOR_FIRE_BLAST_MAT, - _("FIRE BLAST MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_MAT, - 4000, - DecorDesc_FIRE_BLAST_MAT, - DecorGfx_FIRE_BLAST_MAT - }, { - DECOR_POWDER_SNOW_MAT, - _("POWDER SNOW MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_MAT, - 4000, - DecorDesc_POWDER_SNOW_MAT, - DecorGfx_POWDER_SNOW_MAT - }, { - DECOR_ATTRACT_MAT, - _("ATTRACT MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_MAT, - 4000, - DecorDesc_ATTRACT_MAT, - DecorGfx_ATTRACT_MAT - }, { - DECOR_FISSURE_MAT, - _("FISSURE MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_MAT, - 4000, - DecorDesc_FISSURE_MAT, - DecorGfx_FISSURE_MAT - }, { - DECOR_SPIKES_MAT, - _("SPIKES MAT"), - DECORPERM_PASS_FLOOR, - DECORSHAPE_3x3, - DECORCAT_MAT, - 4000, - DecorDesc_SPIKES_MAT, - DecorGfx_SPIKES_MAT - }, { - DECOR_BALL_POSTER, - _("BALL POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_1x1, - DECORCAT_POSTER, - 1000, - DecorDesc_BALL_POSTER, - DecorGfx_BALL_POSTER - }, { - DECOR_GREEN_POSTER, - _("GREEN POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_1x1, - DECORCAT_POSTER, - 1000, - DecorDesc_GREEN_POSTER, - DecorGfx_GREEN_POSTER - }, { - DECOR_RED_POSTER, - _("RED POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_1x1, - DECORCAT_POSTER, - 1000, - DecorDesc_RED_POSTER, - DecorGfx_RED_POSTER - }, { - DECOR_BLUE_POSTER, - _("BLUE POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_1x1, - DECORCAT_POSTER, - 1000, - DecorDesc_BLUE_POSTER, - DecorGfx_BLUE_POSTER - }, { - DECOR_CUTE_POSTER, - _("CUTE POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_1x1, - DECORCAT_POSTER, - 1000, - DecorDesc_CUTE_POSTER, - DecorGfx_CUTE_POSTER - }, { - DECOR_PIKA_POSTER, - _("PIKA POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_2x1, - DECORCAT_POSTER, - 1500, - DecorDesc_PIKA_POSTER, - DecorGfx_PIKA_POSTER - }, { - DECOR_LONG_POSTER, - _("LONG POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_2x1, - DECORCAT_POSTER, - 1500, - DecorDesc_LONG_POSTER, - DecorGfx_LONG_POSTER - }, { - DECOR_SEA_POSTER, - _("SEA POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_2x1, - DECORCAT_POSTER, - 1500, - DecorDesc_SEA_POSTER, - DecorGfx_SEA_POSTER - }, { - DECOR_SKY_POSTER, - _("SKY POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_2x1, - DECORCAT_POSTER, - 1500, - DecorDesc_SKY_POSTER, - DecorGfx_SKY_POSTER - }, { - DECOR_KISS_POSTER, - _("KISS POSTER"), - DECORPERM_NA_WALL, - DECORSHAPE_2x1, - DECORCAT_POSTER, - 1500, - DecorDesc_KISS_POSTER, - DecorGfx_KISS_POSTER - }, { - DECOR_PICHU_DOLL, - _("PICHU DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_PICHU_DOLL, - DecorGfx_PICHU_DOLL - }, { - DECOR_PIKACHU_DOLL, - _("PIKACHU DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_PIKACHU_DOLL, - DecorGfx_PIKACHU_DOLL - }, { - DECOR_MARILL_DOLL, - _("MARILL DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_MARILL_DOLL, - DecorGfx_MARILL_DOLL - }, { - DECOR_TOGEPI_DOLL, - _("TOGEPI DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_TOGEPI_DOLL, - DecorGfx_TOGEPI_DOLL - }, { - DECOR_CYNDAQUIL_DOLL, - _("CYNDAQUIL DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_CYNDAQUIL_DOLL, - DecorGfx_CYNDAQUIL_DOLL - }, { - DECOR_CHIKORITA_DOLL, - _("CHIKORITA DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_CHIKORITA_DOLL, - DecorGfx_CHIKORITA_DOLL - }, { - DECOR_TOTODILE_DOLL, - _("TOTODILE DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_TOTODILE_DOLL, - DecorGfx_TOTODILE_DOLL - }, { - DECOR_JIGGLYPUFF_DOLL, - _("JIGGLYPUFF DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_JIGGLYPUFF_DOLL, - DecorGfx_JIGGLYPUFF_DOLL - }, { - DECOR_MEOWTH_DOLL, - _("MEOWTH DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_MEOWTH_DOLL, - DecorGfx_MEOWTH_DOLL - }, { - DECOR_CLEFAIRY_DOLL, - _("CLEFAIRY DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_CLEFAIRY_DOLL, - DecorGfx_CLEFAIRY_DOLL - }, { - DECOR_DITTO_DOLL, - _("DITTO DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_DITTO_DOLL, - DecorGfx_DITTO_DOLL - }, { - DECOR_SMOOCHUM_DOLL, - _("SMOOCHUM DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_SMOOCHUM_DOLL, - DecorGfx_SMOOCHUM_DOLL - }, { - DECOR_TREECKO_DOLL, - _("TREECKO DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_TREECKO_DOLL, - DecorGfx_TREECKO_DOLL - }, { - DECOR_TORCHIC_DOLL, - _("TORCHIC DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_TORCHIC_DOLL, - DecorGfx_TORCHIC_DOLL - }, { - DECOR_MUDKIP_DOLL, - _("MUDKIP DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_MUDKIP_DOLL, - DecorGfx_MUDKIP_DOLL - }, { - DECOR_DUSKULL_DOLL, - _("DUSKULL DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_DUSKULL_DOLL, - DecorGfx_DUSKULL_DOLL - }, { - DECOR_WYNAUT_DOLL, - _("WYNAUT DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_WYNAUT_DOLL, - DecorGfx_WYNAUT_DOLL - }, { - DECOR_BALTOY_DOLL, - _("BALTOY DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_BALTOY_DOLL, - DecorGfx_BALTOY_DOLL - }, { - DECOR_KECLEON_DOLL, - _("KECLEON DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_KECLEON_DOLL, - DecorGfx_KECLEON_DOLL - }, { - DECOR_AZURILL_DOLL, - _("AZURILL DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_AZURILL_DOLL, - DecorGfx_AZURILL_DOLL - }, { - DECOR_SKITTY_DOLL, - _("SKITTY DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_SKITTY_DOLL, - DecorGfx_SKITTY_DOLL - }, { - DECOR_SWABLU_DOLL, - _("SWABLU DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_SWABLU_DOLL, - DecorGfx_SWABLU_DOLL - }, { - DECOR_GULPIN_DOLL, - _("GULPIN DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_GULPIN_DOLL, - DecorGfx_GULPIN_DOLL - }, { - DECOR_LOTAD_DOLL, - _("LOTAD DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_LOTAD_DOLL, - DecorGfx_LOTAD_DOLL - }, { - DECOR_SEEDOT_DOLL, - _("SEEDOT DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_DOLL, - 3000, - DecorDesc_SEEDOT_DOLL, - DecorGfx_SEEDOT_DOLL - }, { - DECOR_PIKA_CUSHION, - _("PIKA CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_PIKA_CUSHION, - DecorGfx_PIKA_CUSHION - }, { - DECOR_ROUND_CUSHION, - _("ROUND CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_ROUND_CUSHION, - DecorGfx_ROUND_CUSHION - }, { - DECOR_KISS_CUSHION, - _("KISS CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_KISS_CUSHION, - DecorGfx_KISS_CUSHION - }, { - DECOR_ZIGZAG_CUSHION, - _("ZIGZAG CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_ZIGZAG_CUSHION, - DecorGfx_ZIGZAG_CUSHION - }, { - DECOR_SPIN_CUSHION, - _("SPIN CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_SPIN_CUSHION, - DecorGfx_SPIN_CUSHION - }, { - DECOR_DIAMOND_CUSHION, - _("DIAMOND CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_DIAMOND_CUSHION, - DecorGfx_DIAMOND_CUSHION - }, { - DECOR_BALL_CUSHION, - _("BALL CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_BALL_CUSHION, - DecorGfx_BALL_CUSHION - }, { - DECOR_GRASS_CUSHION, - _("GRASS CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_GRASS_CUSHION, - DecorGfx_GRASS_CUSHION - }, { - DECOR_FIRE_CUSHION, - _("FIRE CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_FIRE_CUSHION, - DecorGfx_FIRE_CUSHION - }, { - DECOR_WATER_CUSHION, - _("WATER CUSHION"), - DECORPERM_SPRITE, - DECORSHAPE_1x1, - DECORCAT_CUSHION, - 2000, - DecorDesc_WATER_CUSHION, - DecorGfx_WATER_CUSHION - }, { - DECOR_SNORLAX_DOLL, - _("SNORLAX DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_SNORLAX_DOLL, - DecorGfx_SNORLAX_DOLL - }, { - DECOR_RHYDON_DOLL, - _("RHYDON DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_RHYDON_DOLL, - DecorGfx_RHYDON_DOLL - }, { - DECOR_LAPRAS_DOLL, - _("LAPRAS DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_LAPRAS_DOLL, - DecorGfx_LAPRAS_DOLL - }, { - DECOR_VENUSAUR_DOLL, - _("VENUSAUR DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_VENUSAUR_DOLL, - DecorGfx_VENUSAUR_DOLL - }, { - DECOR_CHARIZARD_DOLL, - _("CHARIZARD DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_CHARIZARD_DOLL, - DecorGfx_CHARIZARD_DOLL - }, { - DECOR_BLASTOISE_DOLL, - _("BLASTOISE DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_BLASTOISE_DOLL, - DecorGfx_BLASTOISE_DOLL - }, { - DECOR_WAILMER_DOLL, - _("WAILMER DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_WAILMER_DOLL, - DecorGfx_WAILMER_DOLL - }, { - DECOR_REGIROCK_DOLL, - _("REGIROCK DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_REGIROCK_DOLL, - DecorGfx_REGIROCK_DOLL - }, { - DECOR_REGICE_DOLL, - _("REGICE DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_REGICE_DOLL, - DecorGfx_REGICE_DOLL - }, { - DECOR_REGISTEEL_DOLL, - _("REGISTEEL DOLL"), - DECORPERM_SPRITE, - DECORSHAPE_1x2, - DECORCAT_DOLL, - 10000, - DecorDesc_REGISTEEL_DOLL, - DecorGfx_REGISTEEL_DOLL} + .id = DECOR_NONE, + .name = _("SMALL DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DESK, + .price = 0, + .description = DecorDesc_SMALL_DESK, + .tiles = DecorGfx_SMALL_DESK, + }, + + [DECOR_SMALL_DESK] = + { + .id = DECOR_SMALL_DESK, + .name = _("SMALL DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DESK, + .price = 3000, + .description = DecorDesc_SMALL_DESK, + .tiles = DecorGfx_SMALL_DESK, + }, + + [DECOR_POKEMON_DESK] = + { + .id = DECOR_POKEMON_DESK, + .name = _("POKéMON DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DESK, + .price = 3000, + .description = DecorDesc_POKEMON_DESK, + .tiles = DecorGfx_POKEMON_DESK, + }, + + [DECOR_HEAVY_DESK] = + { + .id = DECOR_HEAVY_DESK, + .name = _("HEAVY DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_3x2, + .category = DECORCAT_DESK, + .price = 6000, + .description = DecorDesc_HEAVY_DESK, + .tiles = DecorGfx_HEAVY_DESK, + }, + + [DECOR_RAGGED_DESK] = + { + .id = DECOR_RAGGED_DESK, + .name = _("RAGGED DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_3x2, + .category = DECORCAT_DESK, + .price = 6000, + .description = DecorDesc_RAGGED_DESK, + .tiles = DecorGfx_RAGGED_DESK, + }, + + [DECOR_COMFORT_DESK] = + { + .id = DECOR_COMFORT_DESK, + .name = _("COMFORT DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_3x2, + .category = DECORCAT_DESK, + .price = 6000, + .description = DecorDesc_COMFORT_DESK, + .tiles = DecorGfx_COMFORT_DESK, + }, + + [DECOR_PRETTY_DESK] = + { + .id = DECOR_PRETTY_DESK, + .name = _("PRETTY DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_DESK, + .price = 9000, + .description = DecorDesc_PRETTY_DESK, + .tiles = DecorGfx_PRETTY_DESK, + }, + + [DECOR_BRICK_DESK] = + { + .id = DECOR_BRICK_DESK, + .name = _("BRICK DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_DESK, + .price = 9000, + .description = DecorDesc_BRICK_DESK, + .tiles = DecorGfx_BRICK_DESK, + }, + + [DECOR_CAMP_DESK] = + { + .id = DECOR_CAMP_DESK, + .name = _("CAMP DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_DESK, + .price = 9000, + .description = DecorDesc_CAMP_DESK, + .tiles = DecorGfx_CAMP_DESK, + }, + + [DECOR_HARD_DESK] = + { + .id = DECOR_HARD_DESK, + .name = _("HARD DESK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_DESK, + .price = 9000, + .description = DecorDesc_HARD_DESK, + .tiles = DecorGfx_HARD_DESK, + }, + + [DECOR_SMALL_CHAIR] = + { + .id = DECOR_SMALL_CHAIR, + .name = _("SMALL CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_SMALL_CHAIR, + .tiles = DecorGfx_SMALL_CHAIR, + }, + + [DECOR_POKEMON_CHAIR] = + { + .id = DECOR_POKEMON_CHAIR, + .name = _("POKéMON CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_POKEMON_CHAIR, + .tiles = DecorGfx_POKEMON_CHAIR, + }, + + [DECOR_HEAVY_CHAIR] = + { + .id = DECOR_HEAVY_CHAIR, + .name = _("HEAVY CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_HEAVY_CHAIR, + .tiles = DecorGfx_HEAVY_CHAIR, + }, + + [DECOR_PRETTY_CHAIR] = + { + .id = DECOR_PRETTY_CHAIR, + .name = _("PRETTY CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_PRETTY_CHAIR, + .tiles = DecorGfx_PRETTY_CHAIR, + }, + + [DECOR_COMFORT_CHAIR] = + { + .id = DECOR_COMFORT_CHAIR, + .name = _("COMFORT CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_COMFORT_CHAIR, + .tiles = DecorGfx_COMFORT_CHAIR, + }, + + [DECOR_RAGGED_CHAIR] = + { + .id = DECOR_RAGGED_CHAIR, + .name = _("RAGGED CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_RAGGED_CHAIR, + .tiles = DecorGfx_RAGGED_CHAIR, + }, + + [DECOR_BRICK_CHAIR] = + { + .id = DECOR_BRICK_CHAIR, + .name = _("BRICK CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_BRICK_CHAIR, + .tiles = DecorGfx_BRICK_CHAIR, + }, + + [DECOR_CAMP_CHAIR] = + { + .id = DECOR_CAMP_CHAIR, + .name = _("CAMP CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_CAMP_CHAIR, + .tiles = DecorGfx_CAMP_CHAIR, + }, + + [DECOR_HARD_CHAIR] = + { + .id = DECOR_HARD_CHAIR, + .name = _("HARD CHAIR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CHAIR, + .price = 2000, + .description = DecorDesc_HARD_CHAIR, + .tiles = DecorGfx_HARD_CHAIR, + }, + + [DECOR_RED_PLANT] = + { + .id = DECOR_RED_PLANT, + .name = _("RED PLANT"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_PLANT, + .price = 3000, + .description = DecorDesc_RED_PLANT, + .tiles = DecorGfx_RED_PLANT, + }, + + [DECOR_TROPICAL_PLANT] = + { + .id = DECOR_TROPICAL_PLANT, + .name = _("TROPICAL PLANT"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_PLANT, + .price = 3000, + .description = DecorDesc_TROPICAL_PLANT, + .tiles = DecorGfx_TROPICAL_PLANT, + }, + + [DECOR_PRETTY_FLOWERS] = + { + .id = DECOR_PRETTY_FLOWERS, + .name = _("PRETTY FLOWERS"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_PLANT, + .price = 3000, + .description = DecorDesc_PRETTY_FLOWERS, + .tiles = DecorGfx_PRETTY_FLOWERS, + }, + + [DECOR_COLORFUL_PLANT] = + { + .id = DECOR_COLORFUL_PLANT, + .name = _("COLORFUL PLANT"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_2x2, + .category = DECORCAT_PLANT, + .price = 5000, + .description = DecorDesc_COLORFUL_PLANT, + .tiles = DecorGfx_COLORFUL_PLANT, + }, + + [DECOR_BIG_PLANT] = + { + .id = DECOR_BIG_PLANT, + .name = _("BIG PLANT"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_2x2, + .category = DECORCAT_PLANT, + .price = 5000, + .description = DecorDesc_BIG_PLANT, + .tiles = DecorGfx_BIG_PLANT, + }, + + [DECOR_GORGEOUS_PLANT] = + { + .id = DECOR_GORGEOUS_PLANT, + .name = _("GORGEOUS PLANT"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_2x2, + .category = DECORCAT_PLANT, + .price = 5000, + .description = DecorDesc_GORGEOUS_PLANT, + .tiles = DecorGfx_GORGEOUS_PLANT, + }, + + [DECOR_RED_BRICK] = + { + .id = DECOR_RED_BRICK, + .name = _("RED BRICK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 500, + .description = DecorDesc_RED_BRICK, + .tiles = DecorGfx_RED_BRICK, + }, + + [DECOR_YELLOW_BRICK] = + { + .id = DECOR_YELLOW_BRICK, + .name = _("YELLOW BRICK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 500, + .description = DecorDesc_YELLOW_BRICK, + .tiles = DecorGfx_YELLOW_BRICK, + }, + + [DECOR_BLUE_BRICK] = + { + .id = DECOR_BLUE_BRICK, + .name = _("BLUE BRICK"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 500, + .description = DecorDesc_BLUE_BRICK, + .tiles = DecorGfx_BLUE_BRICK, + }, + + [DECOR_RED_BALLOON] = + { + .id = DECOR_RED_BALLOON, + .name = _("RED BALLOON"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 500, + .description = DecorDesc_RED_BALLOON, + .tiles = DecorGfx_RED_BALLOON, + }, + + [DECOR_BLUE_BALLOON] = + { + .id = DECOR_BLUE_BALLOON, + .name = _("BLUE BALLOON"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 500, + .description = DecorDesc_BLUE_BALLOON, + .tiles = DecorGfx_BLUE_BALLOON, + }, + + [DECOR_YELLOW_BALLOON] = + { + .id = DECOR_YELLOW_BALLOON, + .name = _("YELLOW BALLOON"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 500, + .description = DecorDesc_YELLOW_BALLOON, + .tiles = DecorGfx_YELLOW_BALLOON, + }, + + [DECOR_RED_TENT] = + { + .id = DECOR_RED_TENT, + .name = _("RED TENT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_ORNAMENT, + .price = 10000, + .description = DecorDesc_RED_TENT, + .tiles = DecorGfx_RED_TENT, + }, + + [DECOR_BLUE_TENT] = + { + .id = DECOR_BLUE_TENT, + .name = _("BLUE TENT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_ORNAMENT, + .price = 10000, + .description = DecorDesc_BLUE_TENT, + .tiles = DecorGfx_BLUE_TENT, + }, + + [DECOR_SOLID_BOARD] = + { + .id = DECOR_SOLID_BOARD, + .name = _("SOLID BOARD"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 3000, + .description = DecorDesc_SOLID_BOARD, + .tiles = DecorGfx_SOLID_BOARD, + }, + + [DECOR_SLIDE] = + { + .id = DECOR_SLIDE, + .name = _("SLIDE"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_2x4, + .category = DECORCAT_ORNAMENT, + .price = 8000, + .description = DecorDesc_SLIDE, + .tiles = DecorGfx_SLIDE, + }, + + [DECOR_FENCE_LENGTH] = + { + .id = DECOR_FENCE_LENGTH, + .name = _("FENCE LENGTH"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 500, + .description = DecorDesc_FENCE_LENGTH, + .tiles = DecorGfx_FENCE_LENGTH, + }, + + [DECOR_FENCE_WIDTH] = + { + .id = DECOR_FENCE_WIDTH, + .name = _("FENCE WIDTH"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 500, + .description = DecorDesc_FENCE_WIDTH, + .tiles = DecorGfx_FENCE_WIDTH, + }, + + [DECOR_TIRE] = + { + .id = DECOR_TIRE, + .name = _("TIRE"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_2x2, + .category = DECORCAT_ORNAMENT, + .price = 800, + .description = DecorDesc_TIRE, + .tiles = DecorGfx_TIRE, + }, + + [DECOR_STAND] = + { + .id = DECOR_STAND, + .name = _("STAND"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_4x2, + .category = DECORCAT_ORNAMENT, + .price = 7000, + .description = DecorDesc_STAND, + .tiles = DecorGfx_STAND, + }, + + [DECOR_MUD_BALL] = + { + .id = DECOR_MUD_BALL, + .name = _("MUD BALL"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 200, + .description = DecorDesc_MUD_BALL, + .tiles = DecorGfx_MUD_BALL, + }, + + [DECOR_BREAKABLE_DOOR] = + { + .id = DECOR_BREAKABLE_DOOR, + .name = _("BREAKABLE DOOR"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 3000, + .description = DecorDesc_BREAKABLE_DOOR, + .tiles = DecorGfx_BREAKABLE_DOOR, + }, + + [DECOR_SAND_ORNAMENT] = + { + .id = DECOR_SAND_ORNAMENT, + .name = _("SAND ORNAMENT"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 3000, + .description = DecorDesc_SAND_ORNAMENT, + .tiles = DecorGfx_SAND_ORNAMENT, + }, + + [DECOR_SILVER_SHIELD] = + { + .id = DECOR_SILVER_SHIELD, + .name = _("SILVER SHIELD"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 0, + .description = DecorDesc_SILVER_SHIELD, + .tiles = DecorGfx_SILVER_SHIELD, + }, + + [DECOR_GOLD_SHIELD] = + { + .id = DECOR_GOLD_SHIELD, + .name = _("GOLD SHIELD"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 0, + .description = DecorDesc_GOLD_SHIELD, + .tiles = DecorGfx_GOLD_SHIELD, + }, + + [DECOR_GLASS_ORNAMENT] = + { + .id = DECOR_GLASS_ORNAMENT, + .name = _("GLASS ORNAMENT"), + .permission = DECORPERM_BEHIND_FLOOR, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_ORNAMENT, + .price = 0, + .description = DecorDesc_GLASS_ORNAMENT, + .tiles = DecorGfx_GLASS_ORNAMENT, + }, + + [DECOR_TV] = + { + .id = DECOR_TV, + .name = _("TV"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 3000, + .description = DecorDesc_TV, + .tiles = DecorGfx_TV, + }, + + [DECOR_ROUND_TV] = + { + .id = DECOR_ROUND_TV, + .name = _("ROUND TV"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 4000, + .description = DecorDesc_ROUND_TV, + .tiles = DecorGfx_ROUND_TV, + }, + + [DECOR_CUTE_TV] = + { + .id = DECOR_CUTE_TV, + .name = _("CUTE TV"), + .permission = DECORPERM_SOLID_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_ORNAMENT, + .price = 4000, + .description = DecorDesc_CUTE_TV, + .tiles = DecorGfx_CUTE_TV, + }, + + [DECOR_GLITTER_MAT] = + { + .id = DECOR_GLITTER_MAT, + .name = _("GLITTER MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 2000, + .description = DecorDesc_GLITTER_MAT, + .tiles = DecorGfx_GLITTER_MAT, + }, + + [DECOR_JUMP_MAT] = + { + .id = DECOR_JUMP_MAT, + .name = _("JUMP MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 2000, + .description = DecorDesc_JUMP_MAT, + .tiles = DecorGfx_JUMP_MAT, + }, + + [DECOR_SPIN_MAT] = + { + .id = DECOR_SPIN_MAT, + .name = _("SPIN MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 2000, + .description = DecorDesc_SPIN_MAT, + .tiles = DecorGfx_SPIN_MAT, + }, + + [DECOR_C_LOW_NOTE_MAT] = + { + .id = DECOR_C_LOW_NOTE_MAT, + .name = _("C Low NOTE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 500, + .description = DecorDesc_C_LOW_NOTE_MAT, + .tiles = DecorGfx_C_LOW_NOTE_MAT, + }, + + [DECOR_D_NOTE_MAT] = + { + .id = DECOR_D_NOTE_MAT, + .name = _("D NOTE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 500, + .description = DecorDesc_D_NOTE_MAT, + .tiles = DecorGfx_D_NOTE_MAT, + }, + + [DECOR_E_NOTE_MAT] = + { + .id = DECOR_E_NOTE_MAT, + .name = _("E NOTE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 500, + .description = DecorDesc_E_NOTE_MAT, + .tiles = DecorGfx_E_NOTE_MAT, + }, + + [DECOR_F_NOTE_MAT] = + { + .id = DECOR_F_NOTE_MAT, + .name = _("F NOTE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 500, + .description = DecorDesc_F_NOTE_MAT, + .tiles = DecorGfx_F_NOTE_MAT, + }, + + [DECOR_G_NOTE_MAT] = + { + .id = DECOR_G_NOTE_MAT, + .name = _("G NOTE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 500, + .description = DecorDesc_G_NOTE_MAT, + .tiles = DecorGfx_G_NOTE_MAT, + }, + + [DECOR_A_NOTE_MAT] = + { + .id = DECOR_A_NOTE_MAT, + .name = _("A NOTE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 500, + .description = DecorDesc_A_NOTE_MAT, + .tiles = DecorGfx_A_NOTE_MAT, + }, + + [DECOR_B_NOTE_MAT] = + { + .id = DECOR_B_NOTE_MAT, + .name = _("B NOTE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 500, + .description = DecorDesc_B_NOTE_MAT, + .tiles = DecorGfx_B_NOTE_MAT, + }, + + [DECOR_C_HIGH_NOTE_MAT] = + { + .id = DECOR_C_HIGH_NOTE_MAT, + .name = _("C High NOTE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_MAT, + .price = 500, + .description = DecorDesc_C_HIGH_NOTE_MAT, + .tiles = DecorGfx_C_HIGH_NOTE_MAT, + }, + + [DECOR_SURF_MAT] = + { + .id = DECOR_SURF_MAT, + .name = _("SURF MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_MAT, + .price = 4000, + .description = DecorDesc_SURF_MAT, + .tiles = DecorGfx_SURF_MAT, + }, + + [DECOR_THUNDER_MAT] = + { + .id = DECOR_THUNDER_MAT, + .name = _("THUNDER MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_MAT, + .price = 4000, + .description = DecorDesc_THUNDER_MAT, + .tiles = DecorGfx_THUNDER_MAT, + }, + + [DECOR_FIRE_BLAST_MAT] = + { + .id = DECOR_FIRE_BLAST_MAT, + .name = _("FIRE BLAST MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_MAT, + .price = 4000, + .description = DecorDesc_FIRE_BLAST_MAT, + .tiles = DecorGfx_FIRE_BLAST_MAT, + }, + + [DECOR_POWDER_SNOW_MAT] = + { + .id = DECOR_POWDER_SNOW_MAT, + .name = _("POWDER SNOW MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_MAT, + .price = 4000, + .description = DecorDesc_POWDER_SNOW_MAT, + .tiles = DecorGfx_POWDER_SNOW_MAT, + }, + + [DECOR_ATTRACT_MAT] = + { + .id = DECOR_ATTRACT_MAT, + .name = _("ATTRACT MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_MAT, + .price = 4000, + .description = DecorDesc_ATTRACT_MAT, + .tiles = DecorGfx_ATTRACT_MAT, + }, + + [DECOR_FISSURE_MAT] = + { + .id = DECOR_FISSURE_MAT, + .name = _("FISSURE MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_MAT, + .price = 4000, + .description = DecorDesc_FISSURE_MAT, + .tiles = DecorGfx_FISSURE_MAT, + }, + + [DECOR_SPIKES_MAT] = + { + .id = DECOR_SPIKES_MAT, + .name = _("SPIKES MAT"), + .permission = DECORPERM_PASS_FLOOR, + .shape = DECORSHAPE_3x3, + .category = DECORCAT_MAT, + .price = 4000, + .description = DecorDesc_SPIKES_MAT, + .tiles = DecorGfx_SPIKES_MAT, + }, + + [DECOR_BALL_POSTER] = + { + .id = DECOR_BALL_POSTER, + .name = _("BALL POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_POSTER, + .price = 1000, + .description = DecorDesc_BALL_POSTER, + .tiles = DecorGfx_BALL_POSTER, + }, + + [DECOR_GREEN_POSTER] = + { + .id = DECOR_GREEN_POSTER, + .name = _("GREEN POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_POSTER, + .price = 1000, + .description = DecorDesc_GREEN_POSTER, + .tiles = DecorGfx_GREEN_POSTER, + }, + + [DECOR_RED_POSTER] = + { + .id = DECOR_RED_POSTER, + .name = _("RED POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_POSTER, + .price = 1000, + .description = DecorDesc_RED_POSTER, + .tiles = DecorGfx_RED_POSTER, + }, + + [DECOR_BLUE_POSTER] = + { + .id = DECOR_BLUE_POSTER, + .name = _("BLUE POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_POSTER, + .price = 1000, + .description = DecorDesc_BLUE_POSTER, + .tiles = DecorGfx_BLUE_POSTER, + }, + + [DECOR_CUTE_POSTER] = + { + .id = DECOR_CUTE_POSTER, + .name = _("CUTE POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_POSTER, + .price = 1000, + .description = DecorDesc_CUTE_POSTER, + .tiles = DecorGfx_CUTE_POSTER, + }, + + [DECOR_PIKA_POSTER] = + { + .id = DECOR_PIKA_POSTER, + .name = _("PIKA POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_2x1, + .category = DECORCAT_POSTER, + .price = 1500, + .description = DecorDesc_PIKA_POSTER, + .tiles = DecorGfx_PIKA_POSTER, + }, + + [DECOR_LONG_POSTER] = + { + .id = DECOR_LONG_POSTER, + .name = _("LONG POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_2x1, + .category = DECORCAT_POSTER, + .price = 1500, + .description = DecorDesc_LONG_POSTER, + .tiles = DecorGfx_LONG_POSTER, + }, + + [DECOR_SEA_POSTER] = + { + .id = DECOR_SEA_POSTER, + .name = _("SEA POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_2x1, + .category = DECORCAT_POSTER, + .price = 1500, + .description = DecorDesc_SEA_POSTER, + .tiles = DecorGfx_SEA_POSTER, + }, + + [DECOR_SKY_POSTER] = + { + .id = DECOR_SKY_POSTER, + .name = _("SKY POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_2x1, + .category = DECORCAT_POSTER, + .price = 1500, + .description = DecorDesc_SKY_POSTER, + .tiles = DecorGfx_SKY_POSTER, + }, + + [DECOR_KISS_POSTER] = + { + .id = DECOR_KISS_POSTER, + .name = _("KISS POSTER"), + .permission = DECORPERM_NA_WALL, + .shape = DECORSHAPE_2x1, + .category = DECORCAT_POSTER, + .price = 1500, + .description = DecorDesc_KISS_POSTER, + .tiles = DecorGfx_KISS_POSTER, + }, + + [DECOR_PICHU_DOLL] = + { + .id = DECOR_PICHU_DOLL, + .name = _("PICHU DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_PICHU_DOLL, + .tiles = DecorGfx_PICHU_DOLL, + }, + + [DECOR_PIKACHU_DOLL] = + { + .id = DECOR_PIKACHU_DOLL, + .name = _("PIKACHU DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_PIKACHU_DOLL, + .tiles = DecorGfx_PIKACHU_DOLL, + }, + + [DECOR_MARILL_DOLL] = + { + .id = DECOR_MARILL_DOLL, + .name = _("MARILL DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_MARILL_DOLL, + .tiles = DecorGfx_MARILL_DOLL, + }, + + [DECOR_TOGEPI_DOLL] = + { + .id = DECOR_TOGEPI_DOLL, + .name = _("TOGEPI DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_TOGEPI_DOLL, + .tiles = DecorGfx_TOGEPI_DOLL, + }, + + [DECOR_CYNDAQUIL_DOLL] = + { + .id = DECOR_CYNDAQUIL_DOLL, + .name = _("CYNDAQUIL DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_CYNDAQUIL_DOLL, + .tiles = DecorGfx_CYNDAQUIL_DOLL, + }, + + [DECOR_CHIKORITA_DOLL] = + { + .id = DECOR_CHIKORITA_DOLL, + .name = _("CHIKORITA DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_CHIKORITA_DOLL, + .tiles = DecorGfx_CHIKORITA_DOLL, + }, + + [DECOR_TOTODILE_DOLL] = + { + .id = DECOR_TOTODILE_DOLL, + .name = _("TOTODILE DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_TOTODILE_DOLL, + .tiles = DecorGfx_TOTODILE_DOLL, + }, + + [DECOR_JIGGLYPUFF_DOLL] = + { + .id = DECOR_JIGGLYPUFF_DOLL, + .name = _("JIGGLYPUFF DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_JIGGLYPUFF_DOLL, + .tiles = DecorGfx_JIGGLYPUFF_DOLL, + }, + + [DECOR_MEOWTH_DOLL] = + { + .id = DECOR_MEOWTH_DOLL, + .name = _("MEOWTH DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_MEOWTH_DOLL, + .tiles = DecorGfx_MEOWTH_DOLL, + }, + + [DECOR_CLEFAIRY_DOLL] = + { + .id = DECOR_CLEFAIRY_DOLL, + .name = _("CLEFAIRY DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_CLEFAIRY_DOLL, + .tiles = DecorGfx_CLEFAIRY_DOLL, + }, + + [DECOR_DITTO_DOLL] = + { + .id = DECOR_DITTO_DOLL, + .name = _("DITTO DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_DITTO_DOLL, + .tiles = DecorGfx_DITTO_DOLL, + }, + + [DECOR_SMOOCHUM_DOLL] = + { + .id = DECOR_SMOOCHUM_DOLL, + .name = _("SMOOCHUM DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_SMOOCHUM_DOLL, + .tiles = DecorGfx_SMOOCHUM_DOLL, + }, + + [DECOR_TREECKO_DOLL] = + { + .id = DECOR_TREECKO_DOLL, + .name = _("TREECKO DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_TREECKO_DOLL, + .tiles = DecorGfx_TREECKO_DOLL, + }, + + [DECOR_TORCHIC_DOLL] = + { + .id = DECOR_TORCHIC_DOLL, + .name = _("TORCHIC DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_TORCHIC_DOLL, + .tiles = DecorGfx_TORCHIC_DOLL, + }, + + [DECOR_MUDKIP_DOLL] = + { + .id = DECOR_MUDKIP_DOLL, + .name = _("MUDKIP DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_MUDKIP_DOLL, + .tiles = DecorGfx_MUDKIP_DOLL, + }, + + [DECOR_DUSKULL_DOLL] = + { + .id = DECOR_DUSKULL_DOLL, + .name = _("DUSKULL DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_DUSKULL_DOLL, + .tiles = DecorGfx_DUSKULL_DOLL, + }, + + [DECOR_WYNAUT_DOLL] = + { + .id = DECOR_WYNAUT_DOLL, + .name = _("WYNAUT DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_WYNAUT_DOLL, + .tiles = DecorGfx_WYNAUT_DOLL, + }, + + [DECOR_BALTOY_DOLL] = + { + .id = DECOR_BALTOY_DOLL, + .name = _("BALTOY DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_BALTOY_DOLL, + .tiles = DecorGfx_BALTOY_DOLL, + }, + + [DECOR_KECLEON_DOLL] = + { + .id = DECOR_KECLEON_DOLL, + .name = _("KECLEON DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_KECLEON_DOLL, + .tiles = DecorGfx_KECLEON_DOLL, + }, + + [DECOR_AZURILL_DOLL] = + { + .id = DECOR_AZURILL_DOLL, + .name = _("AZURILL DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_AZURILL_DOLL, + .tiles = DecorGfx_AZURILL_DOLL, + }, + + [DECOR_SKITTY_DOLL] = + { + .id = DECOR_SKITTY_DOLL, + .name = _("SKITTY DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_SKITTY_DOLL, + .tiles = DecorGfx_SKITTY_DOLL, + }, + + [DECOR_SWABLU_DOLL] = + { + .id = DECOR_SWABLU_DOLL, + .name = _("SWABLU DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_SWABLU_DOLL, + .tiles = DecorGfx_SWABLU_DOLL, + }, + + [DECOR_GULPIN_DOLL] = + { + .id = DECOR_GULPIN_DOLL, + .name = _("GULPIN DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_GULPIN_DOLL, + .tiles = DecorGfx_GULPIN_DOLL, + }, + + [DECOR_LOTAD_DOLL] = + { + .id = DECOR_LOTAD_DOLL, + .name = _("LOTAD DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_LOTAD_DOLL, + .tiles = DecorGfx_LOTAD_DOLL, + }, + + [DECOR_SEEDOT_DOLL] = + { + .id = DECOR_SEEDOT_DOLL, + .name = _("SEEDOT DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_DOLL, + .price = 3000, + .description = DecorDesc_SEEDOT_DOLL, + .tiles = DecorGfx_SEEDOT_DOLL, + }, + + [DECOR_PIKA_CUSHION] = + { + .id = DECOR_PIKA_CUSHION, + .name = _("PIKA CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_PIKA_CUSHION, + .tiles = DecorGfx_PIKA_CUSHION, + }, + + [DECOR_ROUND_CUSHION] = + { + .id = DECOR_ROUND_CUSHION, + .name = _("ROUND CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_ROUND_CUSHION, + .tiles = DecorGfx_ROUND_CUSHION, + }, + + [DECOR_KISS_CUSHION] = + { + .id = DECOR_KISS_CUSHION, + .name = _("KISS CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_KISS_CUSHION, + .tiles = DecorGfx_KISS_CUSHION, + }, + + [DECOR_ZIGZAG_CUSHION] = + { + .id = DECOR_ZIGZAG_CUSHION, + .name = _("ZIGZAG CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_ZIGZAG_CUSHION, + .tiles = DecorGfx_ZIGZAG_CUSHION, + }, + + [DECOR_SPIN_CUSHION] = + { + .id = DECOR_SPIN_CUSHION, + .name = _("SPIN CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_SPIN_CUSHION, + .tiles = DecorGfx_SPIN_CUSHION, + }, + + [DECOR_DIAMOND_CUSHION] = + { + .id = DECOR_DIAMOND_CUSHION, + .name = _("DIAMOND CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_DIAMOND_CUSHION, + .tiles = DecorGfx_DIAMOND_CUSHION, + }, + + [DECOR_BALL_CUSHION] = + { + .id = DECOR_BALL_CUSHION, + .name = _("BALL CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_BALL_CUSHION, + .tiles = DecorGfx_BALL_CUSHION, + }, + + [DECOR_GRASS_CUSHION] = + { + .id = DECOR_GRASS_CUSHION, + .name = _("GRASS CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_GRASS_CUSHION, + .tiles = DecorGfx_GRASS_CUSHION, + }, + + [DECOR_FIRE_CUSHION] = + { + .id = DECOR_FIRE_CUSHION, + .name = _("FIRE CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_FIRE_CUSHION, + .tiles = DecorGfx_FIRE_CUSHION, + }, + + [DECOR_WATER_CUSHION] = + { + .id = DECOR_WATER_CUSHION, + .name = _("WATER CUSHION"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x1, + .category = DECORCAT_CUSHION, + .price = 2000, + .description = DecorDesc_WATER_CUSHION, + .tiles = DecorGfx_WATER_CUSHION, + }, + + [DECOR_SNORLAX_DOLL] = + { + .id = DECOR_SNORLAX_DOLL, + .name = _("SNORLAX DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_SNORLAX_DOLL, + .tiles = DecorGfx_SNORLAX_DOLL, + }, + + [DECOR_RHYDON_DOLL] = + { + .id = DECOR_RHYDON_DOLL, + .name = _("RHYDON DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_RHYDON_DOLL, + .tiles = DecorGfx_RHYDON_DOLL, + }, + + [DECOR_LAPRAS_DOLL] = + { + .id = DECOR_LAPRAS_DOLL, + .name = _("LAPRAS DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_LAPRAS_DOLL, + .tiles = DecorGfx_LAPRAS_DOLL, + }, + + [DECOR_VENUSAUR_DOLL] = + { + .id = DECOR_VENUSAUR_DOLL, + .name = _("VENUSAUR DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_VENUSAUR_DOLL, + .tiles = DecorGfx_VENUSAUR_DOLL, + }, + + [DECOR_CHARIZARD_DOLL] = + { + .id = DECOR_CHARIZARD_DOLL, + .name = _("CHARIZARD DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_CHARIZARD_DOLL, + .tiles = DecorGfx_CHARIZARD_DOLL, + }, + + [DECOR_BLASTOISE_DOLL] = + { + .id = DECOR_BLASTOISE_DOLL, + .name = _("BLASTOISE DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_BLASTOISE_DOLL, + .tiles = DecorGfx_BLASTOISE_DOLL, + }, + + [DECOR_WAILMER_DOLL] = + { + .id = DECOR_WAILMER_DOLL, + .name = _("WAILMER DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_WAILMER_DOLL, + .tiles = DecorGfx_WAILMER_DOLL, + }, + + [DECOR_REGIROCK_DOLL] = + { + .id = DECOR_REGIROCK_DOLL, + .name = _("REGIROCK DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_REGIROCK_DOLL, + .tiles = DecorGfx_REGIROCK_DOLL, + }, + + [DECOR_REGICE_DOLL] = + { + .id = DECOR_REGICE_DOLL, + .name = _("REGICE DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_REGICE_DOLL, + .tiles = DecorGfx_REGICE_DOLL, + }, + + [DECOR_REGISTEEL_DOLL] = + { + .id = DECOR_REGISTEEL_DOLL, + .name = _("REGISTEEL DOLL"), + .permission = DECORPERM_SPRITE, + .shape = DECORSHAPE_1x2, + .category = DECORCAT_DOLL, + .price = 10000, + .description = DecorDesc_REGISTEEL_DOLL, + .tiles = DecorGfx_REGISTEEL_DOLL, + } }; diff --git a/src/data/decoration/tilemaps.h b/src/data/decoration/tilemaps.h index 12fe31dc08..eebb3acb25 100644 --- a/src/data/decoration/tilemaps.h +++ b/src/data/decoration/tilemaps.h @@ -1,37 +1,37 @@ -const u8 Unknown_085A6FB0[] = { +static const u8 sDecorTilemap_1x1_Tiles[] = { 0x00, 0x01, 0x02, 0x03 }; -const u8 Unknown_085A6FB4[] = { +static const u8 sDecorTilemap_3x1_Tiles[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d }; -const u8 Unknown_085A6FC0[] = { +static const u8 sDecorTilemap_2x2_Tiles[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }; -const u8 Unknown_085A6FD0[] = { +static const u8 sDecorTilemap_1x3_Tiles[] = { 0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0c, 0x0d, 0x10, 0x11, 0x14, 0x15 }; -const u8 Unknown_085A6FDC[] = { +static const u8 sDecorTilemap_2x1_Tiles[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }; -const u8 Unknown_085A6FE4[] = { +static const u8 sDecorTilemap_4x2_Tiles[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }; -const u8 Unknown_085A7004[] = { +static const u8 sDecorTilemap_3x3_Tiles[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, @@ -40,60 +40,60 @@ const u8 Unknown_085A7004[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d }; -const u8 Unknown_085A7028[] = { +static const u8 sDecorTilemap_3x2_Tiles[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d }; -const u8 Unknown_085A7040[] = { +static const u8 sDecorTilemap_1x1_Y[] = { 0x00, 0x00, 0x00, 0x00 }; -const u8 Unknown_085A7044[] = { +static const u8 sDecorTilemap_2x1_Y[] = { 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01 }; -const u8 Unknown_085A704C[] = { +static const u8 sDecorTilemap_3x1_Y[] = { 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02 }; -const u8 Unknown_085A7058[] = { +static const u8 sDecorTilemap_4x2_Y[] = { 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07 }; -const u8 Unknown_085A7078[] = { +static const u8 sDecorTilemap_2x2_Y[] = { 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03 }; -const u8 Unknown_085A7088[] = { +static const u8 sDecorTilemap_1x2_Y[] = { 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01 }; -const u8 Unknown_085A7090[] = { +static const u8 sDecorTilemap_1x3_Y[] = { 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02 }; -const u8 Unknown_085A709C[] = { +static const u8 sDecorTilemap_2x4_Y[] = { 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x06, 0x06, 0x07, 0x07 }; -const u8 Unknown_085A70BC[] = { +static const u8 sDecorTilemap_3x3_Y[] = { 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, @@ -102,60 +102,60 @@ const u8 Unknown_085A70BC[] = { 0x06, 0x06, 0x07, 0x07, 0x08, 0x08 }; -const u8 Unknown_085A70E0[] = { +static const u8 sDecorTilemap_3x2_Y[] = { 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05 }; -const u8 Unknown_085A70F8[] = { +static const u8 sDecorTilemap_1x1_X[] = { 0x04, 0x05, 0x06, 0x07 }; -const u8 Unknown_085A70FC[] = { +static const u8 sDecorTilemap_2x1_X[] = { 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07 }; -const u8 Unknown_085A7104[] = { +static const u8 sDecorTilemap_3x1_X[] = { 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 }; -const u8 Unknown_085A7110[] = { +static const u8 sDecorTilemap_4x2_X[] = { 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 }; -const u8 Unknown_085A7130[] = { +static const u8 sDecorTilemap_2x2_X[] = { 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07 }; -const u8 Unknown_085A7140[] = { +static const u8 sDecorTilemap_1x2_X[] = { 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07 }; -const u8 Unknown_085A7148[] = { +static const u8 sDecorTilemap_1x3_X[] = { 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07, 0x04, 0x05, 0x06, 0x07 }; -const u8 Unknown_085A7154[] = { +static const u8 sDecorTilemap_2x4_X[] = { 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07 }; -const u8 Unknown_085A7174[] = { +static const u8 sDecorTilemap_3x3_X[] = { 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, @@ -164,67 +164,78 @@ const u8 Unknown_085A7174[] = { 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 }; -const u8 Unknown_085A7198[] = { +static const u8 sDecorTilemap_3x2_X[] = { 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 }; -const struct { +#define DECORSIZE(width, height)((width) * (height) * 4) + +static const struct { const u8 *tiles; const u8 *y; const u8 *x; u8 size; -} gUnknown_085A71B0[] = { - { - Unknown_085A6FB0, - Unknown_085A7040, - Unknown_085A70F8, - 0x04 - }, { - Unknown_085A6FDC, - Unknown_085A7044, - Unknown_085A70FC, - 0x08 - }, { - Unknown_085A6FB4, - Unknown_085A704C, - Unknown_085A7104, - 0x0c - }, { - Unknown_085A6FE4, - Unknown_085A7058, - Unknown_085A7110, - 0x20 - }, { - Unknown_085A6FC0, - Unknown_085A7078, - Unknown_085A7130, - 0x10 - }, { - Unknown_085A6FDC, - Unknown_085A7088, - Unknown_085A7140, - 0x08 - }, { - Unknown_085A6FD0, - Unknown_085A7090, - Unknown_085A7148, - 0x0c - }, { - Unknown_085A6FE4, - Unknown_085A709C, - Unknown_085A7154, - 0x20 - }, { - Unknown_085A7004, - Unknown_085A70BC, - Unknown_085A7174, - 0x24 - }, { - Unknown_085A7028, - Unknown_085A70E0, - Unknown_085A7198, - 0x18 +} sDecorTilemaps[] = { + [DECORSHAPE_1x1] = { + .tiles = sDecorTilemap_1x1_Tiles, + .y = sDecorTilemap_1x1_Y, + .x = sDecorTilemap_1x1_X, + .size = DECORSIZE(1, 1) + }, + [DECORSHAPE_2x1] = { + .tiles = sDecorTilemap_2x1_Tiles, + .y = sDecorTilemap_2x1_Y, + .x = sDecorTilemap_2x1_X, + .size = DECORSIZE(2, 1) + }, + [DECORSHAPE_3x1] = { + .tiles = sDecorTilemap_3x1_Tiles, + .y = sDecorTilemap_3x1_Y, + .x = sDecorTilemap_3x1_X, + .size = DECORSIZE(3, 1) + }, + [DECORSHAPE_4x2] = { + .tiles = sDecorTilemap_4x2_Tiles, + .y = sDecorTilemap_4x2_Y, + .x = sDecorTilemap_4x2_X, + .size = DECORSIZE(4, 2) + }, + [DECORSHAPE_2x2] = { + .tiles = sDecorTilemap_2x2_Tiles, + .y = sDecorTilemap_2x2_Y, + .x = sDecorTilemap_2x2_X, + .size = DECORSIZE(2, 2) + }, + [DECORSHAPE_1x2] = { + .tiles = sDecorTilemap_2x1_Tiles, + .y = sDecorTilemap_1x2_Y, + .x = sDecorTilemap_1x2_X, + .size = DECORSIZE(1, 2) + }, + [DECORSHAPE_1x3] = { + .tiles = sDecorTilemap_1x3_Tiles, + .y = sDecorTilemap_1x3_Y, + .x = sDecorTilemap_1x3_X, + .size = DECORSIZE(1, 3) + }, + [DECORSHAPE_2x4] = { + .tiles = sDecorTilemap_4x2_Tiles, + .y = sDecorTilemap_2x4_Y, + .x = sDecorTilemap_2x4_X, + .size = DECORSIZE(2, 4) + }, + [DECORSHAPE_3x3] = { + .tiles = sDecorTilemap_3x3_Tiles, + .y = sDecorTilemap_3x3_Y, + .x = sDecorTilemap_3x3_X, + .size = DECORSIZE(3, 3) + }, + [DECORSHAPE_3x2] = { + .tiles = sDecorTilemap_3x2_Tiles, + .y = sDecorTilemap_3x2_Y, + .x = sDecorTilemap_3x2_X, + .size = DECORSIZE(3, 2) }}; diff --git a/src/data/decoration/tiles.h b/src/data/decoration/tiles.h index de5c43575b..1b25da3d4d 100644 --- a/src/data/decoration/tiles.h +++ b/src/data/decoration/tiles.h @@ -1,4 +1,4 @@ -#define DECOR_TILE(name) (METATILE_SecretBase_##name - 0x200) +#define DECOR_TILE(name) (METATILE_SecretBase_##name - NUM_TILES_IN_PRIMARY) const u16 DecorGfx_SMALL_DESK[] = { DECOR_TILE(SmallDesk) diff --git a/src/data/easy_chat/easy_chat_groups.h b/src/data/easy_chat/easy_chat_groups.h index df114d9803..a89f228fe8 100755 --- a/src/data/easy_chat/easy_chat_groups.h +++ b/src/data/easy_chat/easy_chat_groups.h @@ -26,112 +26,112 @@ const struct EasyChatGroup gEasyChatGroups[] = { { .wordData = {.valueList = gEasyChatGroup_Pokemon}, - .numWords = 202, - .numEnabledWords = 202, + .numWords = ARRAY_COUNT(gEasyChatGroup_Pokemon), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Pokemon), }, { .wordData = {.words = gEasyChatGroup_Trainer}, - .numWords = 27, - .numEnabledWords = 21, + .numWords = ARRAY_COUNT(gEasyChatGroup_Trainer), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Trainer) - 6, // Excludes Red, Green, Flame, Gold, Leaf, and Silver }, { .wordData = {.words = gEasyChatGroup_Status}, - .numWords = 109, - .numEnabledWords = 109, + .numWords = ARRAY_COUNT(gEasyChatGroup_Status), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Status), }, { .wordData = {.words = gEasyChatGroup_Battle}, - .numWords = 63, - .numEnabledWords = 63, + .numWords = ARRAY_COUNT(gEasyChatGroup_Battle), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Battle), }, { .wordData = {.words = gEasyChatGroup_Greetings}, - .numWords = 42, - .numEnabledWords = 42, + .numWords = ARRAY_COUNT(gEasyChatGroup_Greetings), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Greetings), }, { .wordData = {.words = gEasyChatGroup_People}, - .numWords = 75, - .numEnabledWords = 75, + .numWords = ARRAY_COUNT(gEasyChatGroup_People), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_People), }, { .wordData = {.words = gEasyChatGroup_Voices}, - .numWords = 63, - .numEnabledWords = 63, + .numWords = ARRAY_COUNT(gEasyChatGroup_Voices), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Voices), }, { .wordData = {.words = gEasyChatGroup_Speech}, - .numWords = 60, - .numEnabledWords = 60, + .numWords = ARRAY_COUNT(gEasyChatGroup_Speech), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Speech), }, { .wordData = {.words = gEasyChatGroup_Endings}, - .numWords = 69, - .numEnabledWords = 69, + .numWords = ARRAY_COUNT(gEasyChatGroup_Endings), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Endings), }, { .wordData = {.words = gEasyChatGroup_Feelings}, - .numWords = 69, - .numEnabledWords = 69, + .numWords = ARRAY_COUNT(gEasyChatGroup_Feelings), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Feelings), }, { .wordData = {.words = gEasyChatGroup_Conditions}, - .numWords = 69, - .numEnabledWords = 69, + .numWords = ARRAY_COUNT(gEasyChatGroup_Conditions), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Conditions), }, { .wordData = {.words = gEasyChatGroup_Actions}, - .numWords = 78, - .numEnabledWords = 78, + .numWords = ARRAY_COUNT(gEasyChatGroup_Actions), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Actions), }, { .wordData = {.words = gEasyChatGroup_Lifestyle}, - .numWords = 45, - .numEnabledWords = 45, + .numWords = ARRAY_COUNT(gEasyChatGroup_Lifestyle), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Lifestyle), }, { .wordData = {.words = gEasyChatGroup_Hobbies}, - .numWords = 54, - .numEnabledWords = 54, + .numWords = ARRAY_COUNT(gEasyChatGroup_Hobbies), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Hobbies), }, { .wordData = {.words = gEasyChatGroup_Time}, - .numWords = 45, - .numEnabledWords = 45, + .numWords = ARRAY_COUNT(gEasyChatGroup_Time), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Time), }, { .wordData = {.words = gEasyChatGroup_Misc}, - .numWords = 42, - .numEnabledWords = 42, + .numWords = ARRAY_COUNT(gEasyChatGroup_Misc), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Misc), }, { .wordData = {.words = gEasyChatGroup_Adjectives}, - .numWords = 36, - .numEnabledWords = 36, + .numWords = ARRAY_COUNT(gEasyChatGroup_Adjectives), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Adjectives), }, { .wordData = {.words = gEasyChatGroup_Events}, - .numWords = 29, - .numEnabledWords = 29, + .numWords = ARRAY_COUNT(gEasyChatGroup_Events), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Events), }, { .wordData = {.valueList = gEasyChatGroup_Move1}, - .numWords = 154, - .numEnabledWords = 154, + .numWords = ARRAY_COUNT(gEasyChatGroup_Move1), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Move1), }, { .wordData = {.valueList = gEasyChatGroup_Move2}, - .numWords = 200, - .numEnabledWords = 200, + .numWords = ARRAY_COUNT(gEasyChatGroup_Move2), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Move2), }, { .wordData = {.words = gEasyChatGroup_TrendySaying}, - .numWords = 33, - .numEnabledWords = 33, + .numWords = ARRAY_COUNT(gEasyChatGroup_TrendySaying), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_TrendySaying), }, { .wordData = {.valueList = gEasyChatGroup_Pokemon2}, - .numWords = 251, - .numEnabledWords = 251, + .numWords = ARRAY_COUNT(gEasyChatGroup_Pokemon2), + .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Pokemon2), }, }; diff --git a/src/data/easy_chat/easy_chat_words_by_letter.h b/src/data/easy_chat/easy_chat_words_by_letter.h index 347f875d46..df6524b173 100755 --- a/src/data/easy_chat/easy_chat_words_by_letter.h +++ b/src/data/easy_chat/easy_chat_words_by_letter.h @@ -1,6 +1,8 @@ #include "easy_chat.h" #include "constants/easy_chat.h" +#define DOUBLE_SPECIES_NAME EC_EMPTY_WORD, 2, + const u16 gEasyChatWordsByLetter_Others[] = { EC_WORD_EXCL, EC_WORD_EXCL_EXCL, @@ -21,9 +23,9 @@ const u16 gEasyChatWordsByLetter_A[] = { EC_WORD_A_TINY_BIT, EC_WORD_ABOUT, EC_WORD_ABOVE, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(ABRA), - EC_POKEMON2(ABRA), + EC_POKEMON_NATIONAL(ABRA), EC_WORD_ABSENT, EC_POKEMON(ABSOL), EC_WORD_ABSOLUTELY, @@ -36,7 +38,7 @@ const u16 gEasyChatWordsByLetter_A[] = { EC_WORD_ADVENTURE, EC_MOVE2(AERIAL_ACE), EC_MOVE(AEROBLAST), - EC_POKEMON2(AERODACTYL), + EC_POKEMON_NATIONAL(AERODACTYL), EC_WORD_AFTER, EC_WORD_AGE, EC_POKEMON(AGGRON), @@ -44,13 +46,13 @@ const u16 gEasyChatWordsByLetter_A[] = { EC_WORD_AGREE, EC_WORD_AHAHA, EC_WORD_AIM, - EC_POKEMON2(AIPOM), + EC_POKEMON_NATIONAL(AIPOM), EC_MOVE(AIR_CUTTER), EC_WORD_AIR_LOCK, EC_WORD_AIYEEH, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(ALAKAZAM), - EC_POKEMON2(ALAKAZAM), + EC_POKEMON_NATIONAL(ALAKAZAM), EC_WORD_ALL, EC_WORD_ALL_RIGHT, EC_WORD_ALLOW, @@ -65,7 +67,7 @@ const u16 gEasyChatWordsByLetter_A[] = { EC_WORD_ALWAYS, EC_WORD_AM, EC_MOVE2(AMNESIA), - EC_POKEMON2(AMPHAROS), + EC_POKEMON_NATIONAL(AMPHAROS), EC_WORD_AMUSING, EC_WORD_AN, EC_MOVE(ANCIENT_POWER), @@ -85,19 +87,19 @@ const u16 gEasyChatWordsByLetter_A[] = { EC_WORD_APPEARS, EC_WORD_APPRECIATE, EC_WORD_APPROVED, - EC_POKEMON2(ARBOK), - EC_POKEMON2(ARCANINE), + EC_POKEMON_NATIONAL(ARBOK), + EC_POKEMON_NATIONAL(ARCANINE), EC_WORD_ARE, EC_WORD_AREN_T, EC_WORD_ARENA_TRAP, - EC_POKEMON2(ARIADOS), + EC_POKEMON_NATIONAL(ARIADOS), EC_MOVE2(ARM_THRUST), EC_POKEMON(ARMALDO), EC_MOVE(AROMATHERAPY), EC_POKEMON(ARON), EC_WORD_AROUND, EC_WORD_ARRGH, - EC_POKEMON2(ARTICUNO), + EC_POKEMON_NATIONAL(ARTICUNO), EC_WORD_AS, EC_WORD_AS_IF, EC_WORD_AS_MUCH_AS, @@ -114,9 +116,9 @@ const u16 gEasyChatWordsByLetter_A[] = { EC_WORD_AWFUL, EC_WORD_AWFULLY, EC_WORD_AWW, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(AZUMARILL), - EC_POKEMON2(AZUMARILL), + EC_POKEMON_NATIONAL(AZUMARILL), EC_POKEMON(AZURILL), }; @@ -141,7 +143,7 @@ const u16 gEasyChatWordsByLetter_B[] = { EC_WORD_BATTLE_ARMOR, EC_WORD_BATTLE_ROOM, EC_WORD_BATTLE_TOWER, - EC_POKEMON2(BAYLEEF), + EC_POKEMON_NATIONAL(BAYLEEF), EC_WORD_BE, EC_WORD_BEAT, EC_MOVE2(BEAT_UP), @@ -149,17 +151,17 @@ const u16 gEasyChatWordsByLetter_B[] = { EC_WORD_BEAUTIFUL, EC_WORD_BEAUTY, EC_WORD_BECOMES, - EC_POKEMON2(BEEDRILL), + EC_POKEMON_NATIONAL(BEEDRILL), EC_WORD_BEEN, EC_WORD_BEFORE, EC_WORD_BEGINNING, EC_WORD_BEING, EC_POKEMON(BELDUM), EC_WORD_BELIEVE, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(BELLOSSOM), - EC_POKEMON2(BELLOSSOM), - EC_POKEMON2(BELLSPROUT), + EC_POKEMON_NATIONAL(BELLOSSOM), + EC_POKEMON_NATIONAL(BELLSPROUT), EC_MOVE2(BELLY_DRUM), EC_WORD_BELONGS_TO, EC_WORD_BELOW, @@ -173,12 +175,12 @@ const u16 gEasyChatWordsByLetter_B[] = { EC_MOVE(BIND), EC_MOVE(BITE), EC_MOVE2(BLAST_BURN), - EC_POKEMON2(BLASTOISE), + EC_POKEMON_NATIONAL(BLASTOISE), EC_WORD_BLAZE, EC_MOVE2(BLAZE_KICK), EC_POKEMON(BLAZIKEN), EC_WORD_BLEND, - EC_POKEMON2(BLISSEY), + EC_POKEMON_NATIONAL(BLISSEY), EC_MOVE2(BLIZZARD), EC_MOVE2(BLOCK), EC_WORD_BOARD, @@ -199,12 +201,12 @@ const u16 gEasyChatWordsByLetter_B[] = { EC_MOVE(BUBBLE), EC_MOVE2(BUBBLE_BEAM), EC_WORD_BUG, - EC_POKEMON2(BULBASAUR), + EC_POKEMON_NATIONAL(BULBASAUR), EC_MOVE2(BULK_UP), EC_MOVE2(BULLET_SEED), EC_WORD_BUSY, EC_WORD_BUT, - EC_POKEMON2(BUTTERFREE), + EC_POKEMON_NATIONAL(BUTTERFREE), EC_WORD_BYE_BYE, }; @@ -229,27 +231,27 @@ const u16 gEasyChatWordsByLetter_C[] = { EC_POKEMON(CASCOON), EC_WORD_CASE, EC_POKEMON(CASTFORM), - EC_POKEMON2(CATERPIE), + EC_POKEMON_NATIONAL(CATERPIE), EC_WORD_CAUSE, - EC_POKEMON2(CELEBI), + EC_POKEMON_NATIONAL(CELEBI), EC_WORD_CENTER, EC_WORD_CHALLENGE, EC_WORD_CHANGE, EC_WORD_CHANNEL, - EC_POKEMON2(CHANSEY), + EC_POKEMON_NATIONAL(CHANSEY), EC_MOVE(CHARGE), - EC_POKEMON2(CHARIZARD), + EC_POKEMON_NATIONAL(CHARIZARD), EC_MOVE(CHARM), - EC_POKEMON2(CHARMANDER), - EC_POKEMON2(CHARMELEON), + EC_POKEMON_NATIONAL(CHARMANDER), + EC_POKEMON_NATIONAL(CHARMELEON), EC_WORD_CHAT, - EC_POKEMON2(CHIKORITA), + EC_POKEMON_NATIONAL(CHIKORITA), EC_WORD_CHILD_S_PLAY, EC_WORD_CHILDREN, EC_POKEMON(CHIMECHO), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(CHINCHOU), - EC_POKEMON2(CHINCHOU), + EC_POKEMON_NATIONAL(CHINCHOU), EC_WORD_CHLOROPHYLL, EC_WORD_CHOICE, EC_WORD_CHOOSE, @@ -259,12 +261,12 @@ const u16 gEasyChatWordsByLetter_C[] = { EC_WORD_CLASS, EC_POKEMON(CLAYDOL), EC_WORD_CLEAR_BODY, - EC_POKEMON2(CLEFABLE), - EC_POKEMON2(CLEFAIRY), - EC_POKEMON2(CLEFFA), + EC_POKEMON_NATIONAL(CLEFABLE), + EC_POKEMON_NATIONAL(CLEFAIRY), + EC_POKEMON_NATIONAL(CLEFFA), EC_WORD_CLOSE, EC_WORD_CLOUD_NINE, - EC_POKEMON2(CLOYSTER), + EC_POKEMON_NATIONAL(CLOYSTER), EC_WORD_COLD, EC_WORD_COLLECT, EC_WORD_COLLECTION, @@ -293,9 +295,9 @@ const u16 gEasyChatWordsByLetter_C[] = { EC_WORD_COOLNESS, EC_POKEMON(CORPHISH), EC_WORD_CORRECT, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(CORSOLA), - EC_POKEMON2(CORSOLA), + EC_POKEMON_NATIONAL(CORSOLA), EC_MOVE(COSMIC_POWER), EC_MOVE2(COTTON_SPORE), EC_WORD_COULD, @@ -308,23 +310,23 @@ const u16 gEasyChatWordsByLetter_C[] = { EC_POKEMON(CRADILY), EC_POKEMON(CRAWDAUNT), EC_WORD_CRIES, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(CROBAT), - EC_POKEMON2(CROBAT), - EC_POKEMON2(CROCONAW), + EC_POKEMON_NATIONAL(CROBAT), + EC_POKEMON_NATIONAL(CROCONAW), EC_MOVE(CROSS_CHOP), EC_MOVE(CRUNCH), EC_WORD_CRUSH, EC_MOVE2(CRUSH_CLAW), EC_WORD_CRY, - EC_POKEMON2(CUBONE), + EC_POKEMON_NATIONAL(CUBONE), EC_WORD_CURRENT, EC_MOVE2(CURSE), EC_MOVE(CUT), EC_WORD_CUTE, EC_WORD_CUTE_CHARM, EC_WORD_CUTENESS, - EC_POKEMON2(CYNDAQUIL), + EC_POKEMON_NATIONAL(CYNDAQUIL), }; const u16 gEasyChatWordsByLetter_D[] = { @@ -345,7 +347,7 @@ const u16 gEasyChatWordsByLetter_D[] = { EC_WORD_DEFEATED, EC_MOVE2(DEFENSE_CURL), EC_POKEMON(DELCATTY), - EC_POKEMON2(DELIBIRD), + EC_POKEMON_NATIONAL(DELIBIRD), EC_POKEMON(DEOXYS), EC_WORD_DEPT_STORE, EC_WORD_DESIGN, @@ -353,14 +355,14 @@ const u16 gEasyChatWordsByLetter_D[] = { EC_MOVE2(DESTINY_BOND), EC_WORD_DESTROYED, EC_MOVE2(DETECT), - EC_POKEMON2(DEWGONG), + EC_POKEMON_NATIONAL(DEWGONG), EC_WORD_DID, EC_WORD_DIDN_T, EC_WORD_DIET, EC_WORD_DIFFERENT, EC_MOVE(DIG), EC_WORD_DIGITAL, - EC_POKEMON2(DIGLETT), + EC_POKEMON_NATIONAL(DIGLETT), EC_WORD_DIRECT, EC_MOVE(DISABLE), EC_WORD_DISAPPEAR, @@ -370,24 +372,24 @@ const u16 gEasyChatWordsByLetter_D[] = { EC_WORD_DISASTER, EC_WORD_DISLIKE, EC_WORD_DISLIKES, - EC_POKEMON2(DITTO), + EC_POKEMON_NATIONAL(DITTO), EC_MOVE2(DIVE), EC_MOVE2(DIZZY_PUNCH), EC_WORD_DO, EC_WORD_DOCILE, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(DODRIO), - EC_POKEMON2(DODRIO), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(DODRIO), + DOUBLE_SPECIES_NAME EC_POKEMON(DODUO), - EC_POKEMON2(DODUO), + EC_POKEMON_NATIONAL(DODUO), EC_WORD_DOES, EC_WORD_DOESN_T, EC_WORD_DON_T, EC_WORD_DONE, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(DONPHAN), - EC_POKEMON2(DONPHAN), + EC_POKEMON_NATIONAL(DONPHAN), EC_MOVE2(DOOM_DESIRE), EC_MOVE2(DOUBLE_KICK), EC_MOVE(DOUBLE_TEAM), @@ -399,10 +401,10 @@ const u16 gEasyChatWordsByLetter_D[] = { EC_MOVE2(DRAGON_CLAW), EC_MOVE2(DRAGON_DANCE), EC_MOVE2(DRAGON_RAGE), - EC_POKEMON2(DRAGONAIR), + EC_POKEMON_NATIONAL(DRAGONAIR), EC_MOVE2(DRAGON_BREATH), - EC_POKEMON2(DRAGONITE), - EC_POKEMON2(DRATINI), + EC_POKEMON_NATIONAL(DRAGONITE), + EC_POKEMON_NATIONAL(DRATINI), EC_WORD_DREAM, EC_MOVE2(DREAM_EATER), EC_MOVE2(DRILL_PECK), @@ -411,10 +413,10 @@ const u16 gEasyChatWordsByLetter_D[] = { EC_WORD_DRIZZLE, EC_WORD_DROOLING, EC_WORD_DROUGHT, - EC_POKEMON2(DROWZEE), + EC_POKEMON_NATIONAL(DROWZEE), EC_WORD_DUDE, - EC_POKEMON2(DUGTRIO), - EC_POKEMON2(DUNSPARCE), + EC_POKEMON_NATIONAL(DUGTRIO), + EC_POKEMON_NATIONAL(DUNSPARCE), EC_POKEMON(DUSCLOPS), EC_POKEMON(DUSKULL), EC_POKEMON(DUSTOX), @@ -429,20 +431,20 @@ const u16 gEasyChatWordsByLetter_E[] = { EC_WORD_EAT, EC_WORD_EATS, EC_WORD_EEK, - EC_POKEMON2(EEVEE), + EC_POKEMON_NATIONAL(EEVEE), EC_WORD_EFFECT_SPORE, EC_WORD_EGG, EC_MOVE2(EGG_BOMB), EC_WORD_EH_QUES, EC_WORD_EHEHE, - EC_POKEMON2(EKANS), - EC_POKEMON2(ELECTABUZZ), + EC_POKEMON_NATIONAL(EKANS), + EC_POKEMON_NATIONAL(ELECTABUZZ), EC_WORD_ELECTRIC, EC_POKEMON(ELECTRIKE), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(ELECTRODE), - EC_POKEMON2(ELECTRODE), - EC_POKEMON2(ELEKID), + EC_POKEMON_NATIONAL(ELECTRODE), + EC_POKEMON_NATIONAL(ELEKID), EC_WORD_ELSE, EC_MOVE2(EMBER), EC_WORD_EMERALD, @@ -454,11 +456,11 @@ const u16 gEasyChatWordsByLetter_E[] = { EC_WORD_ENJOY, EC_WORD_ENJOYS, EC_WORD_ENOUGH, - EC_POKEMON2(ENTEI), + EC_POKEMON_NATIONAL(ENTEI), EC_WORD_ENTERTAINING, EC_MOVE2(ERUPTION), EC_WORD_ESCAPE, - EC_POKEMON2(ESPEON), + EC_POKEMON_NATIONAL(ESPEON), EC_WORD_EVEN_SO, EC_WORD_EVENT, EC_WORD_EVENTS, @@ -472,8 +474,8 @@ const u16 gEasyChatWordsByLetter_E[] = { EC_WORD_EXCITING, EC_WORD_EXCUSE, EC_WORD_EXCUSE_ME, - EC_POKEMON2(EXEGGCUTE), - EC_POKEMON2(EXEGGUTOR), + EC_POKEMON_NATIONAL(EXEGGCUTE), + EC_POKEMON_NATIONAL(EXEGGUTOR), EC_WORD_EXISTS, EC_WORD_EXPENSIVE, EC_MOVE2(EXPLOSION), @@ -495,16 +497,16 @@ const u16 gEasyChatWordsByLetter_F[] = { EC_WORD_FAMILY, EC_WORD_FANTASTIC, EC_WORD_FAR, - EC_POKEMON2(FARFETCHD), + EC_POKEMON_NATIONAL(FARFETCHD), EC_WORD_FASHION, EC_WORD_FAST, EC_WORD_FATHER, EC_WORD_FEAR, - EC_POKEMON2(FEAROW), + EC_POKEMON_NATIONAL(FEAROW), EC_MOVE2(FEATHER_DANCE), EC_POKEMON(FEEBAS), EC_WORD_FEELING, - EC_POKEMON2(FERALIGATR), + EC_POKEMON_NATIONAL(FERALIGATR), EC_WORD_FESTIVAL, EC_WORD_FEVER, EC_WORD_FIERY, @@ -520,13 +522,13 @@ const u16 gEasyChatWordsByLetter_F[] = { EC_MOVE2(FIRE_SPIN), EC_WORD_FISHING, EC_MOVE(FISSURE), - EC_POKEMON2(FLAAFFY), + EC_POKEMON_NATIONAL(FLAAFFY), EC_MOVE(FLAIL), EC_WORD_FLAME, EC_WORD_FLAME_BODY, EC_MOVE(FLAME_WHEEL), EC_MOVE(FLAMETHROWER), - EC_POKEMON2(FLAREON), + EC_POKEMON_NATIONAL(FLAREON), EC_MOVE2(FLASH), EC_WORD_FLASH_FIRE, EC_WORD_FLATTEN, @@ -547,7 +549,7 @@ const u16 gEasyChatWordsByLetter_F[] = { EC_WORD_FORGET, EC_WORD_FORGETS, EC_WORD_FORGIVE, - EC_POKEMON2(FORRETRESS), + EC_POKEMON_NATIONAL(FORRETRESS), EC_MOVE2(FRENZY_PLANT), EC_WORD_FRIDAY, EC_WORD_FRIEND, @@ -558,7 +560,7 @@ const u16 gEasyChatWordsByLetter_F[] = { EC_WORD_FUFUFU, EC_WORD_FULL, EC_WORD_FUNNY, - EC_POKEMON2(FURRET), + EC_POKEMON_NATIONAL(FURRET), EC_MOVE2(FURY_ATTACK), EC_MOVE2(FURY_CUTTER), EC_MOVE2(FURY_SWIPES), @@ -568,12 +570,12 @@ const u16 gEasyChatWordsByLetter_F[] = { const u16 gEasyChatWordsByLetter_G[] = { EC_WORD_GAME, EC_POKEMON(GARDEVOIR), - EC_POKEMON2(GASTLY), - EC_POKEMON2(GENGAR), + EC_POKEMON_NATIONAL(GASTLY), + EC_POKEMON_NATIONAL(GENGAR), EC_WORD_GENIUS, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(GEODUDE), - EC_POKEMON2(GEODUDE), + EC_POKEMON_NATIONAL(GEODUDE), EC_WORD_GET, EC_WORD_GETS, EC_WORD_GHOST, @@ -581,9 +583,9 @@ const u16 gEasyChatWordsByLetter_G[] = { EC_MOVE(GIGA_DRAIN), EC_WORD_GIGGLE, EC_WORD_GIMME, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(GIRAFARIG), - EC_POKEMON2(GIRAFARIG), + EC_POKEMON_NATIONAL(GIRAFARIG), EC_WORD_GIRL, EC_WORD_GIVE, EC_WORD_GIVE_ME, @@ -591,29 +593,29 @@ const u16 gEasyChatWordsByLetter_G[] = { EC_WORD_GIVES, EC_POKEMON(GLALIE), EC_MOVE2(GLARE), - EC_POKEMON2(GLIGAR), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(GLIGAR), + DOUBLE_SPECIES_NAME EC_POKEMON(GLOOM), - EC_POKEMON2(GLOOM), + EC_POKEMON_NATIONAL(GLOOM), EC_WORD_GO, EC_WORD_GO_AHEAD, EC_WORD_GO_EASY, EC_WORD_GO_HOME, EC_WORD_GOES, EC_WORD_GOING, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(GOLBAT), - EC_POKEMON2(GOLBAT), + EC_POKEMON_NATIONAL(GOLBAT), EC_WORD_GOLD, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(GOLDEEN), - EC_POKEMON2(GOLDEEN), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(GOLDEEN), + DOUBLE_SPECIES_NAME EC_POKEMON(GOLDUCK), - EC_POKEMON2(GOLDUCK), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(GOLDUCK), + DOUBLE_SPECIES_NAME EC_POKEMON(GOLEM), - EC_POKEMON2(GOLEM), + EC_POKEMON_NATIONAL(GOLEM), EC_WORD_GOOD, EC_WORD_GOOD_BYE, EC_POKEMON(GOREBYSS), @@ -621,25 +623,25 @@ const u16 gEasyChatWordsByLetter_G[] = { EC_WORD_GOTCHA, EC_WORD_GOURMET, EC_WORD_GRAAAH, - EC_POKEMON2(GRANBULL), + EC_POKEMON_NATIONAL(GRANBULL), EC_WORD_GRANDFATHER, EC_WORD_GRANDMOTHER, EC_WORD_GRASS, EC_MOVE(GRASS_WHISTLE), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(GRAVELER), - EC_POKEMON2(GRAVELER), + EC_POKEMON_NATIONAL(GRAVELER), EC_WORD_GREAT, EC_WORD_GREEN, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(GRIMER), - EC_POKEMON2(GRIMER), + EC_POKEMON_NATIONAL(GRIMER), EC_POKEMON(GROUDON), EC_WORD_GROUND, EC_WORD_GROUP, EC_POKEMON(GROVYLE), EC_MOVE2(GROWL), - EC_POKEMON2(GROWLITHE), + EC_POKEMON_NATIONAL(GROWLITHE), EC_MOVE(GROWTH), EC_MOVE(GRUDGE), EC_POKEMON(GRUMPIG), @@ -651,9 +653,9 @@ const u16 gEasyChatWordsByLetter_G[] = { EC_WORD_GUTSY, EC_WORD_GWAH, EC_WORD_GWAHAHAHA, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(GYARADOS), - EC_POKEMON2(GYARADOS), + EC_POKEMON_NATIONAL(GYARADOS), }; const u16 gEasyChatWordsByLetter_H[] = { @@ -671,7 +673,7 @@ const u16 gEasyChatWordsByLetter_H[] = { EC_POKEMON(HARIYAMA), EC_WORD_HAS, EC_WORD_HASSLE, - EC_POKEMON2(HAUNTER), + EC_POKEMON_NATIONAL(HAUNTER), EC_WORD_HAVE, EC_WORD_HAVEN_T, EC_MOVE(HAZE), @@ -691,9 +693,9 @@ const u16 gEasyChatWordsByLetter_H[] = { EC_WORD_HELLO, EC_MOVE2(HELPING_HAND), EC_WORD_HER, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(HERACROSS), - EC_POKEMON2(HERACROSS), + EC_POKEMON_NATIONAL(HERACROSS), EC_WORD_HERE, EC_WORD_HERE_GOES, EC_WORD_HERE_I_COME, @@ -714,28 +716,28 @@ const u16 gEasyChatWordsByLetter_H[] = { EC_WORD_HIP_AND, EC_WORD_HIS, EC_WORD_HIT, - EC_POKEMON2(HITMONCHAN), - EC_POKEMON2(HITMONLEE), - EC_POKEMON2(HITMONTOP), + EC_POKEMON_NATIONAL(HITMONCHAN), + EC_POKEMON_NATIONAL(HITMONLEE), + EC_POKEMON_NATIONAL(HITMONTOP), EC_WORD_HIYAH, EC_WORD_HMM, - EC_POKEMON2(HO_OH), + EC_POKEMON_NATIONAL(HO_OH), EC_WORD_HOBBY, EC_WORD_HOHOHO, EC_WORD_HOLIDAY, EC_WORD_HOME, EC_WORD_HOO_HAH, - EC_POKEMON2(HOOTHOOT), + EC_POKEMON_NATIONAL(HOOTHOOT), EC_WORD_HOPELESS, - EC_POKEMON2(HOPPIP), + EC_POKEMON_NATIONAL(HOPPIP), EC_MOVE2(HORN_ATTACK), EC_MOVE2(HORN_DRILL), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(HORSEA), - EC_POKEMON2(HORSEA), + EC_POKEMON_NATIONAL(HORSEA), EC_WORD_HOT, - EC_POKEMON2(HOUNDOOM), - EC_POKEMON2(HOUNDOUR), + EC_POKEMON_NATIONAL(HOUNDOOM), + EC_POKEMON_NATIONAL(HOUNDOUR), EC_WORD_HOW, EC_WORD_HOW_DO, EC_WORD_HOWEVER, @@ -754,7 +756,7 @@ const u16 gEasyChatWordsByLetter_H[] = { EC_WORD_HYPER_CUTTER, EC_MOVE2(HYPER_FANG), EC_MOVE2(HYPER_VOICE), - EC_POKEMON2(HYPNO), + EC_POKEMON_NATIONAL(HYPNO), EC_MOVE(HYPNOSIS), }; @@ -775,9 +777,9 @@ const u16 gEasyChatWordsByLetter_I[] = { EC_WORD_IF, EC_WORD_IF_I_LOSE, EC_WORD_IF_I_WIN, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(IGGLYBUFF), - EC_POKEMON2(IGGLYBUFF), + EC_POKEMON_NATIONAL(IGGLYBUFF), EC_WORD_IGNORANT, EC_WORD_ILLUMINATE, EC_POKEMON(ILLUMISE), @@ -805,32 +807,32 @@ const u16 gEasyChatWordsByLetter_I[] = { EC_WORD_IT, EC_WORD_IT_S, EC_WORD_ITEM, - EC_POKEMON2(IVYSAUR), + EC_POKEMON_NATIONAL(IVYSAUR), }; const u16 gEasyChatWordsByLetter_J[] = { - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(JIGGLYPUFF), - EC_POKEMON2(JIGGLYPUFF), + EC_POKEMON_NATIONAL(JIGGLYPUFF), EC_POKEMON(JIRACHI), EC_WORD_JOKING, - EC_POKEMON2(JOLTEON), + EC_POKEMON_NATIONAL(JOLTEON), EC_WORD_JOY, EC_WORD_JUDGE, EC_MOVE2(JUMP_KICK), - EC_POKEMON2(JUMPLUFF), + EC_POKEMON_NATIONAL(JUMPLUFF), EC_WORD_JUST, - EC_POKEMON2(JYNX), + EC_POKEMON_NATIONAL(JYNX), }; const u16 gEasyChatWordsByLetter_K[] = { - EC_POKEMON2(KABUTO), - EC_POKEMON2(KABUTOPS), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(KABUTO), + EC_POKEMON_NATIONAL(KABUTOPS), + DOUBLE_SPECIES_NAME EC_POKEMON(KADABRA), - EC_POKEMON2(KADABRA), - EC_POKEMON2(KAKUNA), - EC_POKEMON2(KANGASKHAN), + EC_POKEMON_NATIONAL(KADABRA), + EC_POKEMON_NATIONAL(KAKUNA), + EC_POKEMON_NATIONAL(KANGASKHAN), EC_MOVE(KARATE_CHOP), EC_POKEMON(KECLEON), EC_WORD_KEEN_EYE, @@ -839,19 +841,19 @@ const u16 gEasyChatWordsByLetter_K[] = { EC_WORD_KIND, EC_WORD_KINDERGARTEN, EC_MOVE(KINESIS), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(KINGDRA), - EC_POKEMON2(KINGDRA), - EC_POKEMON2(KINGLER), + EC_POKEMON_NATIONAL(KINGDRA), + EC_POKEMON_NATIONAL(KINGLER), EC_POKEMON(KIRLIA), EC_MOVE2(KNOCK_OFF), EC_WORD_KNOCKOUT, EC_WORD_KNOW, EC_WORD_KNOWS, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(KOFFING), - EC_POKEMON2(KOFFING), - EC_POKEMON2(KRABBY), + EC_POKEMON_NATIONAL(KOFFING), + EC_POKEMON_NATIONAL(KRABBY), EC_WORD_KTHX_BYE, EC_POKEMON(KYOGRE), }; @@ -862,11 +864,11 @@ const u16 gEasyChatWordsByLetter_L[] = { EC_WORD_LADY, EC_POKEMON(LAIRON), EC_WORD_LALALA, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(LANTURN), - EC_POKEMON2(LANTURN), - EC_POKEMON2(LAPRAS), - EC_POKEMON2(LARVITAR), + EC_POKEMON_NATIONAL(LANTURN), + EC_POKEMON_NATIONAL(LAPRAS), + EC_POKEMON_NATIONAL(LARVITAR), EC_WORD_LAST, EC_WORD_LATE, EC_WORD_LATER, @@ -879,8 +881,8 @@ const u16 gEasyChatWordsByLetter_L[] = { EC_WORD_LEAF, EC_MOVE2(LEAF_BLADE), EC_WORD_LEARN, - EC_POKEMON2(LEDIAN), - EC_POKEMON2(LEDYBA), + EC_POKEMON_NATIONAL(LEDIAN), + EC_POKEMON_NATIONAL(LEDYBA), EC_MOVE(LEECH_LIFE), EC_MOVE2(LEECH_SEED), EC_MOVE2(LEER), @@ -894,7 +896,7 @@ const u16 gEasyChatWordsByLetter_L[] = { EC_WORD_LEVEL, EC_WORD_LEVITATE, EC_MOVE(LICK), - EC_POKEMON2(LICKITUNG), + EC_POKEMON_NATIONAL(LICKITUNG), EC_WORD_LIE, EC_WORD_LIFE, EC_MOVE2(LIGHT_SCREEN), @@ -933,7 +935,7 @@ const u16 gEasyChatWordsByLetter_L[] = { EC_MOVE(LOW_KICK), EC_WORD_LOWS, EC_POKEMON(LUDICOLO), - EC_POKEMON2(LUGIA), + EC_POKEMON_NATIONAL(LUGIA), EC_WORD_LUKEWARM, EC_POKEMON(LUNATONE), EC_MOVE2(LUSTER_PURGE), @@ -942,35 +944,35 @@ const u16 gEasyChatWordsByLetter_L[] = { const u16 gEasyChatWordsByLetter_M[] = { EC_MOVE2(MACH_PUNCH), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(MACHAMP), - EC_POKEMON2(MACHAMP), + EC_POKEMON_NATIONAL(MACHAMP), EC_WORD_MACHINE, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(MACHOKE), - EC_POKEMON2(MACHOKE), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(MACHOKE), + DOUBLE_SPECIES_NAME EC_POKEMON(MACHOP), - EC_POKEMON2(MACHOP), + EC_POKEMON_NATIONAL(MACHOP), EC_WORD_MAGAZINE, - EC_POKEMON2(MAGBY), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(MAGBY), + DOUBLE_SPECIES_NAME EC_POKEMON(MAGCARGO), - EC_POKEMON2(MAGCARGO), + EC_POKEMON_NATIONAL(MAGCARGO), EC_MOVE2(MAGIC_COAT), EC_MOVE2(MAGICAL_LEAF), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(MAGIKARP), - EC_POKEMON2(MAGIKARP), + EC_POKEMON_NATIONAL(MAGIKARP), EC_WORD_MAGMA_ARMOR, - EC_POKEMON2(MAGMAR), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(MAGMAR), + DOUBLE_SPECIES_NAME EC_POKEMON(MAGNEMITE), - EC_POKEMON2(MAGNEMITE), + EC_POKEMON_NATIONAL(MAGNEMITE), EC_WORD_MAGNET_PULL, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(MAGNETON), - EC_POKEMON2(MAGNETON), + EC_POKEMON_NATIONAL(MAGNETON), EC_MOVE2(MAGNITUDE), EC_WORD_MAIL, EC_WORD_MAKE, @@ -978,13 +980,13 @@ const u16 gEasyChatWordsByLetter_M[] = { EC_POKEMON(MAKUHITA), EC_WORD_MAN, EC_POKEMON(MANECTRIC), - EC_POKEMON2(MANKEY), - EC_POKEMON2(MANTINE), - EC_POKEMON2(MAREEP), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(MANKEY), + EC_POKEMON_NATIONAL(MANTINE), + EC_POKEMON_NATIONAL(MAREEP), + DOUBLE_SPECIES_NAME EC_POKEMON(MARILL), - EC_POKEMON2(MARILL), - EC_POKEMON2(MAROWAK), + EC_POKEMON_NATIONAL(MARILL), + EC_POKEMON_NATIONAL(MAROWAK), EC_POKEMON(MARSHTOMP), EC_WORD_MARVEL_SCALE, EC_POKEMON(MASQUERAIN), @@ -1008,23 +1010,23 @@ const u16 gEasyChatWordsByLetter_M[] = { EC_MOVE2(MEGA_KICK), EC_MOVE2(MEGA_PUNCH), EC_MOVE2(MEGAHORN), - EC_POKEMON2(MEGANIUM), + EC_POKEMON_NATIONAL(MEGANIUM), EC_MOVE(MEMENTO), - EC_POKEMON2(MEOWTH), + EC_POKEMON_NATIONAL(MEOWTH), EC_WORD_MESSAGE, EC_POKEMON(METAGROSS), EC_MOVE2(METAL_CLAW), EC_MOVE(METAL_SOUND), EC_POKEMON(METANG), - EC_POKEMON2(METAPOD), + EC_POKEMON_NATIONAL(METAPOD), EC_MOVE(METEOR_MASH), EC_MOVE2(METRONOME), - EC_POKEMON2(MEW), - EC_POKEMON2(MEWTWO), + EC_POKEMON_NATIONAL(MEW), + EC_POKEMON_NATIONAL(MEWTWO), EC_POKEMON(MIGHTYENA), EC_MOVE2(MILK_DRINK), EC_POKEMON(MILOTIC), - EC_POKEMON2(MILTANK), + EC_POKEMON_NATIONAL(MILTANK), EC_MOVE2(MIMIC), EC_MOVE(MIND_READER), EC_MOVE2(MINIMIZE), @@ -1032,7 +1034,7 @@ const u16 gEasyChatWordsByLetter_M[] = { EC_WORD_MINUS, EC_MOVE2(MIRROR_COAT), EC_MOVE(MIRROR_MOVE), - EC_POKEMON2(MISDREAVUS), + EC_POKEMON_NATIONAL(MISDREAVUS), EC_WORD_MISHEARD, EC_WORD_MISS, EC_MOVE(MIST), @@ -1041,7 +1043,7 @@ const u16 gEasyChatWordsByLetter_M[] = { EC_WORD_MMM, EC_WORD_MODE, EC_WORD_MODERN, - EC_POKEMON2(MOLTRES), + EC_POKEMON_NATIONAL(MOLTRES), EC_WORD_MOMENTUM, EC_WORD_MONDAY, EC_WORD_MONEY, @@ -1055,7 +1057,7 @@ const u16 gEasyChatWordsByLetter_M[] = { EC_WORD_MOVE, EC_WORD_MOVIE, EC_WORD_MR, - EC_POKEMON2(MR_MIME), + EC_POKEMON_NATIONAL(MR_MIME), EC_WORD_MRS, EC_WORD_MUCH, EC_WORD_MUCH_OBLIGED, @@ -1065,10 +1067,10 @@ const u16 gEasyChatWordsByLetter_M[] = { EC_MOVE2(MUDDY_WATER), EC_POKEMON(MUDKIP), EC_WORD_MUFUFU, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(MUK), - EC_POKEMON2(MUK), - EC_POKEMON2(MURKROW), + EC_POKEMON_NATIONAL(MUK), + EC_POKEMON_NATIONAL(MURKROW), EC_WORD_MUSIC, EC_WORD_MUST_BE, EC_WORD_MY, @@ -1079,9 +1081,9 @@ const u16 gEasyChatWordsByLetter_M[] = { const u16 gEasyChatWordsByLetter_N[] = { EC_WORD_NAME, EC_WORD_NAP, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(NATU), - EC_POKEMON2(NATU), + EC_POKEMON_NATIONAL(NATU), EC_WORD_NATURAL, EC_WORD_NATURAL_CURE, EC_WORD_NATURALLY, @@ -1097,26 +1099,26 @@ const u16 gEasyChatWordsByLetter_N[] = { EC_WORD_NEWS, EC_WORD_NEXT, EC_WORD_NICE, - EC_POKEMON2(NIDOKING), - EC_POKEMON2(NIDOQUEEN), - EC_POKEMON2(NIDORAN_F), - EC_POKEMON2(NIDORAN_M), - EC_POKEMON2(NIDORINA), - EC_POKEMON2(NIDORINO), + EC_POKEMON_NATIONAL(NIDOKING), + EC_POKEMON_NATIONAL(NIDOQUEEN), + EC_POKEMON_NATIONAL(NIDORAN_F), + EC_POKEMON_NATIONAL(NIDORAN_M), + EC_POKEMON_NATIONAL(NIDORINA), + EC_POKEMON_NATIONAL(NIDORINO), EC_WORD_NIGHT, EC_MOVE2(NIGHT_SHADE), EC_MOVE(NIGHTMARE), EC_WORD_NIGHTTIME, EC_POKEMON(NINCADA), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(NINETALES), - EC_POKEMON2(NINETALES), + EC_POKEMON_NATIONAL(NINETALES), EC_POKEMON(NINJASK), EC_WORD_NITWIT, EC_WORD_NO, EC_WORD_NO_MATCH, EC_WORD_NO_1, - EC_POKEMON2(NOCTOWL), + EC_POKEMON_NATIONAL(NOCTOWL), EC_WORD_NOISY, EC_WORD_NON_STOP, EC_WORD_NONE, @@ -1134,10 +1136,10 @@ const u16 gEasyChatWordsByLetter_N[] = { const u16 gEasyChatWordsByLetter_O[] = { EC_WORD_OBLIVIOUS, EC_MOVE(OCTAZOOKA), - EC_POKEMON2(OCTILLERY), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(OCTILLERY), + DOUBLE_SPECIES_NAME EC_POKEMON(ODDISH), - EC_POKEMON2(ODDISH), + EC_POKEMON_NATIONAL(ODDISH), EC_MOVE(ODOR_SLEUTH), EC_WORD_OF, EC_WORD_OFF, @@ -1153,11 +1155,11 @@ const u16 gEasyChatWordsByLetter_O[] = { EC_WORD_OKAY, EC_WORD_OLD, EC_WORD_OLDEN, - EC_POKEMON2(OMANYTE), - EC_POKEMON2(OMASTAR), + EC_POKEMON_NATIONAL(OMANYTE), + EC_POKEMON_NATIONAL(OMASTAR), EC_WORD_ON, EC_WORD_ONCE, - EC_POKEMON2(ONIX), + EC_POKEMON_NATIONAL(ONIX), EC_WORD_ONLY, EC_WORD_OOPS, EC_WORD_OPPONENT, @@ -1179,8 +1181,8 @@ const u16 gEasyChatWordsByLetter_O[] = { const u16 gEasyChatWordsByLetter_P[] = { EC_MOVE(PAIN_SPLIT), - EC_POKEMON2(PARAS), - EC_POKEMON2(PARASECT), + EC_POKEMON_NATIONAL(PARAS), + EC_POKEMON_NATIONAL(PARASECT), EC_WORD_PARDON, EC_WORD_PARENT, EC_WORD_PARTNER, @@ -1193,29 +1195,29 @@ const u16 gEasyChatWordsByLetter_P[] = { EC_WORD_PERFECT, EC_WORD_PERFECTION, EC_MOVE2(PERISH_SONG), - EC_POKEMON2(PERSIAN), + EC_POKEMON_NATIONAL(PERSIAN), EC_WORD_PERSON, EC_MOVE2(PETAL_DANCE), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(PHANPY), - EC_POKEMON2(PHANPY), + EC_POKEMON_NATIONAL(PHANPY), EC_WORD_PHONE, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(PICHU), - EC_POKEMON2(PICHU), + EC_POKEMON_NATIONAL(PICHU), EC_WORD_PICKUP, - EC_POKEMON2(PIDGEOT), - EC_POKEMON2(PIDGEOTTO), - EC_POKEMON2(PIDGEY), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(PIDGEOT), + EC_POKEMON_NATIONAL(PIDGEOTTO), + EC_POKEMON_NATIONAL(PIDGEY), + DOUBLE_SPECIES_NAME EC_POKEMON(PIKACHU), - EC_POKEMON2(PIKACHU), - EC_POKEMON2(PILOSWINE), + EC_POKEMON_NATIONAL(PIKACHU), + EC_POKEMON_NATIONAL(PILOSWINE), EC_MOVE2(PIN_MISSILE), - EC_POKEMON2(PINECO), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(PINECO), + DOUBLE_SPECIES_NAME EC_POKEMON(PINSIR), - EC_POKEMON2(PINSIR), + EC_POKEMON_NATIONAL(PINSIR), EC_WORD_PKRS, EC_WORD_PLACE, EC_WORD_PLANS, @@ -1238,15 +1240,15 @@ const u16 gEasyChatWordsByLetter_P[] = { EC_WORD_POKEDEX, EC_WORD_POKEMON, EC_WORD_POKENAV, - EC_POKEMON2(POLITOED), - EC_POKEMON2(POLIWAG), - EC_POKEMON2(POLIWHIRL), - EC_POKEMON2(POLIWRATH), - EC_POKEMON2(PONYTA), + EC_POKEMON_NATIONAL(POLITOED), + EC_POKEMON_NATIONAL(POLIWAG), + EC_POKEMON_NATIONAL(POLIWHIRL), + EC_POKEMON_NATIONAL(POLIWRATH), + EC_POKEMON_NATIONAL(PONYTA), EC_POKEMON(POOCHYENA), EC_WORD_POPULAR, - EC_POKEMON2(PORYGON), - EC_POKEMON2(PORYGON2), + EC_POKEMON_NATIONAL(PORYGON), + EC_POKEMON_NATIONAL(PORYGON2), EC_MOVE2(POUND), EC_MOVE(POWDER_SNOW), EC_WORD_POWER, @@ -1256,52 +1258,52 @@ const u16 gEasyChatWordsByLetter_P[] = { EC_WORD_PRESSURE, EC_WORD_PRETEND, EC_WORD_PRETTY, - EC_POKEMON2(PRIMEAPE), + EC_POKEMON_NATIONAL(PRIMEAPE), EC_WORD_PROBABLY, EC_WORD_PROMISE, EC_MOVE2(PROTECT), EC_MOVE(PSYBEAM), EC_MOVE(PSYCH_UP), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_WORD_PSYCHIC, EC_MOVE(PSYCHIC), EC_MOVE(PSYCHO_BOOST), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(PSYDUCK), - EC_POKEMON2(PSYDUCK), + EC_POKEMON_NATIONAL(PSYDUCK), EC_MOVE(PSYWAVE), - EC_POKEMON2(PUPITAR), + EC_POKEMON_NATIONAL(PUPITAR), EC_WORD_PURE_POWER, EC_MOVE(PURSUIT), EC_WORD_PUSHOVER, }; const u16 gEasyChatWordsByLetter_Q[] = { - EC_POKEMON2(QUAGSIRE), + EC_POKEMON_NATIONAL(QUAGSIRE), EC_WORD_QUESTION, EC_MOVE2(QUICK_ATTACK), - EC_POKEMON2(QUILAVA), + EC_POKEMON_NATIONAL(QUILAVA), EC_WORD_QUITE, - EC_POKEMON2(QWILFISH), + EC_POKEMON_NATIONAL(QWILFISH), }; const u16 gEasyChatWordsByLetter_R[] = { EC_WORD_RADIO, EC_MOVE(RAGE), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(RAICHU), - EC_POKEMON2(RAICHU), - EC_POKEMON2(RAIKOU), + EC_POKEMON_NATIONAL(RAICHU), + EC_POKEMON_NATIONAL(RAIKOU), EC_MOVE(RAIN_DANCE), EC_WORD_RAIN_DISH, EC_POKEMON(RALTS), EC_WORD_RANK, EC_MOVE(RAPID_SPIN), - EC_POKEMON2(RAPIDASH), + EC_POKEMON_NATIONAL(RAPIDASH), EC_WORD_RARE, EC_WORD_RATHER, - EC_POKEMON2(RATICATE), - EC_POKEMON2(RATTATA), + EC_POKEMON_NATIONAL(RATICATE), + EC_POKEMON_NATIONAL(RATTATA), EC_POKEMON(RAYQUAZA), EC_MOVE2(RAZOR_LEAF), EC_MOVE(RAZOR_WIND), @@ -1323,19 +1325,19 @@ const u16 gEasyChatWordsByLetter_R[] = { EC_WORD_REJECT, EC_WORD_RELEASE, EC_POKEMON(RELICANTH), - EC_POKEMON2(REMORAID), + EC_POKEMON_NATIONAL(REMORAID), EC_WORD_RENTAL, EC_MOVE2(REST), EC_WORD_RESUSCITATE, EC_MOVE(RETURN), EC_MOVE2(REVENGE), EC_MOVE(REVERSAL), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(RHYDON), - EC_POKEMON2(RHYDON), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(RHYDON), + DOUBLE_SPECIES_NAME EC_POKEMON(RHYHORN), - EC_POKEMON2(RHYHORN), + EC_POKEMON_NATIONAL(RHYHORN), EC_WORD_RIBBON, EC_WORD_RICKETY, EC_WORD_RIGHT, @@ -1377,12 +1379,12 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_MOVE(SAND_TOMB), EC_WORD_SAND_VEIL, EC_MOVE(SAND_ATTACK), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(SANDSHREW), - EC_POKEMON2(SANDSHREW), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(SANDSHREW), + DOUBLE_SPECIES_NAME EC_POKEMON(SANDSLASH), - EC_POKEMON2(SANDSLASH), + EC_POKEMON_NATIONAL(SANDSLASH), EC_MOVE(SANDSTORM), EC_WORD_SAPPHIRE, EC_WORD_SATISFIED, @@ -1393,16 +1395,16 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_WORD_SCATTER, EC_POKEMON(SCEPTILE), EC_WORD_SCHOOL, - EC_POKEMON2(SCIZOR), + EC_POKEMON_NATIONAL(SCIZOR), EC_MOVE2(SCRATCH), EC_MOVE(SCREECH), - EC_POKEMON2(SCYTHER), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(SCYTHER), + DOUBLE_SPECIES_NAME EC_POKEMON(SEADRA), - EC_POKEMON2(SEADRA), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(SEADRA), + DOUBLE_SPECIES_NAME EC_POKEMON(SEAKING), - EC_POKEMON2(SEAKING), + EC_POKEMON_NATIONAL(SEAKING), EC_POKEMON(SEALEO), EC_WORD_SEARCH, EC_WORD_SECRET, @@ -1412,13 +1414,13 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_WORD_SEE_YA, EC_POKEMON(SEEDOT), EC_WORD_SEEK, - EC_POKEMON2(SEEL), + EC_POKEMON_NATIONAL(SEEL), EC_WORD_SEEMS, EC_WORD_SEES, EC_MOVE2(SEISMIC_TOSS), EC_MOVE(SELF_DESTRUCT), EC_WORD_SENSE, - EC_POKEMON2(SENTRET), + EC_POKEMON_NATIONAL(SENTRET), EC_WORD_SERENE_GRACE, EC_WORD_SERIOUS, EC_WORD_SERIOUSLY, @@ -1441,7 +1443,7 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_MOVE(SHEER_COLD), EC_POKEMON(SHELGON), EC_WORD_SHELL_ARMOR, - EC_POKEMON2(SHELLDER), + EC_POKEMON_NATIONAL(SHELLDER), EC_WORD_SHIELD_DUST, EC_POKEMON(SHIFTRY), EC_WORD_SHINE, @@ -1452,7 +1454,7 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_WORD_SHOW, EC_WORD_SHREDDED, EC_POKEMON(SHROOMISH), - EC_POKEMON2(SHUCKLE), + EC_POKEMON_NATIONAL(SHUCKLE), EC_POKEMON(SHUPPET), EC_WORD_SIBLINGS, EC_WORD_SIGH, @@ -1466,14 +1468,14 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_MOVE(SING), EC_WORD_SINK, EC_WORD_SISTER, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(SKARMORY), - EC_POKEMON2(SKARMORY), + EC_POKEMON_NATIONAL(SKARMORY), EC_MOVE(SKETCH), EC_WORD_SKILL, EC_MOVE(SKILL_SWAP), EC_WORD_SKILLED, - EC_POKEMON2(SKIPLOOM), + EC_POKEMON_NATIONAL(SKIPLOOM), EC_POKEMON(SKITTY), EC_MOVE2(SKULL_BASH), EC_MOVE(SKY_ATTACK), @@ -1489,34 +1491,34 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_WORD_SLEPT, EC_WORD_SLIDE, EC_WORD_SLIMY, - EC_POKEMON2(SLOWBRO), - EC_POKEMON2(SLOWKING), - EC_POKEMON2(SLOWPOKE), + EC_POKEMON_NATIONAL(SLOWBRO), + EC_POKEMON_NATIONAL(SLOWKING), + EC_POKEMON_NATIONAL(SLOWPOKE), EC_MOVE2(SLUDGE), EC_MOVE2(SLUDGE_BOMB), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(SLUGMA), - EC_POKEMON2(SLUGMA), + EC_POKEMON_NATIONAL(SLUGMA), EC_WORD_SMACK, EC_WORD_SMALL, EC_WORD_SMART, EC_WORD_SMARTNESS, - EC_POKEMON2(SMEARGLE), + EC_POKEMON_NATIONAL(SMEARGLE), EC_WORD_SMELL, EC_WORD_SMELL_YA, EC_MOVE(SMELLING_SALTS), EC_WORD_SMITE, EC_MOVE(SMOG), EC_MOVE(SMOKESCREEN), - EC_POKEMON2(SMOOCHUM), + EC_POKEMON_NATIONAL(SMOOCHUM), EC_WORD_SMOOTH, EC_MOVE2(SNATCH), - EC_POKEMON2(SNEASEL), + EC_POKEMON_NATIONAL(SNEASEL), EC_MOVE(SNORE), - EC_POKEMON2(SNORLAX), + EC_POKEMON_NATIONAL(SNORLAX), EC_WORD_SNORT, EC_POKEMON(SNORUNT), - EC_POKEMON2(SNUBBULL), + EC_POKEMON_NATIONAL(SNUBBULL), EC_WORD_SO, EC_MOVE2(SOFT_BOILED), EC_WORD_SOFTWARE, @@ -1536,14 +1538,14 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_WORD_SOUNDPROOF, EC_WORD_SP_ABILITY, EC_MOVE(SPARK), - EC_POKEMON2(SPEAROW), + EC_POKEMON_NATIONAL(SPEAROW), EC_WORD_SPECTATOR, EC_WORD_SPEED_BOOST, EC_POKEMON(SPHEAL), EC_MOVE(SPIDER_WEB), EC_MOVE2(SPIKE_CANNON), EC_MOVE2(SPIKES), - EC_POKEMON2(SPINARAK), + EC_POKEMON_NATIONAL(SPINARAK), EC_POKEMON(SPINDA), EC_WORD_SPIRALING, EC_WORD_SPIRIT, @@ -1554,21 +1556,21 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_MOVE(SPORE), EC_WORD_SPORTS, EC_WORD_SPRING, - EC_POKEMON2(SQUIRTLE), + EC_POKEMON_NATIONAL(SQUIRTLE), EC_WORD_STAGE, - EC_POKEMON2(STANTLER), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(STANTLER), + DOUBLE_SPECIES_NAME EC_POKEMON(STARMIE), - EC_POKEMON2(STARMIE), + EC_POKEMON_NATIONAL(STARMIE), EC_WORD_START, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(STARYU), - EC_POKEMON2(STARYU), + EC_POKEMON_NATIONAL(STARYU), EC_WORD_STATIC, EC_WORD_STAY_AT_HOME, EC_WORD_STEEL, EC_MOVE2(STEEL_WING), - EC_POKEMON2(STEELIX), + EC_POKEMON_NATIONAL(STEELIX), EC_WORD_STENCH, EC_WORD_STICKY_HOLD, EC_MOVE2(STOCKPILE), @@ -1588,12 +1590,12 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_MOVE(SUBMISSION), EC_MOVE2(SUBSTITUTE), EC_WORD_SUCTION_CUPS, - EC_POKEMON2(SUDOWOODO), - EC_POKEMON2(SUICUNE), + EC_POKEMON_NATIONAL(SUDOWOODO), + EC_POKEMON_NATIONAL(SUICUNE), EC_WORD_SUMMER, EC_WORD_SUNDAY, - EC_POKEMON2(SUNFLORA), - EC_POKEMON2(SUNKERN), + EC_POKEMON_NATIONAL(SUNFLORA), + EC_POKEMON_NATIONAL(SUNKERN), EC_MOVE2(SUNNY_DAY), EC_WORD_SUPER, EC_MOVE(SUPER_FANG), @@ -1615,7 +1617,7 @@ const u16 gEasyChatWordsByLetter_S[] = { EC_POKEMON(SWELLOW), EC_MOVE(SWIFT), EC_WORD_SWIFT_SWIM, - EC_POKEMON2(SWINUB), + EC_POKEMON_NATIONAL(SWINUB), EC_MOVE2(SWORDS_DANCE), EC_WORD_SYNCHRONIZE, EC_MOVE(SYNTHESIS), @@ -1633,24 +1635,24 @@ const u16 gEasyChatWordsByLetter_T[] = { EC_WORD_TALENT, EC_WORD_TALK, EC_WORD_TALKING, - EC_POKEMON2(TANGELA), + EC_POKEMON_NATIONAL(TANGELA), EC_WORD_TASTY, EC_MOVE2(TAUNT), - EC_POKEMON2(TAUROS), + EC_POKEMON_NATIONAL(TAUROS), EC_WORD_TCH, EC_WORD_TEACH, EC_WORD_TEACHER, EC_WORD_TEACHES, - EC_POKEMON2(TEDDIURSA), + EC_POKEMON_NATIONAL(TEDDIURSA), EC_MOVE2(TEETER_DANCE), EC_MOVE2(TELEPORT), EC_WORD_TELEVISION, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(TENTACOOL), - EC_POKEMON2(TENTACOOL), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(TENTACOOL), + DOUBLE_SPECIES_NAME EC_POKEMON(TENTACRUEL), - EC_POKEMON2(TENTACRUEL), + EC_POKEMON_NATIONAL(TENTACRUEL), EC_WORD_TERRIBLE, EC_WORD_TEST, EC_WORD_THAN, @@ -1704,9 +1706,9 @@ const u16 gEasyChatWordsByLetter_T[] = { EC_WORD_TO_US, EC_WORD_TO_WHOM, EC_WORD_TODAY, - EC_POKEMON2(TOGEPI), + EC_POKEMON_NATIONAL(TOGEPI), EC_WORD_TOGETHER, - EC_POKEMON2(TOGETIC), + EC_POKEMON_NATIONAL(TOGETIC), EC_WORD_TOMORROW, EC_WORD_TOO, EC_WORD_TOO_LATE, @@ -1718,7 +1720,7 @@ const u16 gEasyChatWordsByLetter_T[] = { EC_MOVE(TORMENT), EC_WORD_TORRENT, EC_WORD_TOTALLY, - EC_POKEMON2(TOTODILE), + EC_POKEMON_NATIONAL(TOTODILE), EC_WORD_TOUGH, EC_WORD_TOUGHNESS, EC_WORD_TOURNAMENT, @@ -1751,9 +1753,9 @@ const u16 gEasyChatWordsByLetter_T[] = { EC_WORD_TWIRLING, EC_MOVE2(TWISTER), EC_WORD_TYPE, - EC_POKEMON2(TYPHLOSION), - EC_POKEMON2(TYRANITAR), - EC_POKEMON2(TYROGUE), + EC_POKEMON_NATIONAL(TYPHLOSION), + EC_POKEMON_NATIONAL(TYRANITAR), + EC_POKEMON_NATIONAL(TYROGUE), }; const u16 gEasyChatWordsByLetter_U[] = { @@ -1761,7 +1763,7 @@ const u16 gEasyChatWordsByLetter_U[] = { EC_WORD_UH_HUH, EC_WORD_UH_OH, EC_WORD_UM, - EC_POKEMON2(UMBREON), + EC_POKEMON_NATIONAL(UMBREON), EC_WORD_UNAVOIDABLE, EC_WORD_UNBELIEVABLE, EC_WORD_UNCLE, @@ -1769,14 +1771,14 @@ const u16 gEasyChatWordsByLetter_U[] = { EC_WORD_UNDERSTANDS, EC_WORD_UNDERSTOOD, EC_WORD_UNION, - EC_POKEMON2(UNOWN), + EC_POKEMON_NATIONAL(UNOWN), EC_WORD_UNTIL, EC_WORD_UP, EC_WORD_UPBEAT, EC_MOVE(UPROAR), EC_WORD_UPSIDE_DOWN, EC_WORD_URGH, - EC_POKEMON2(URSARING), + EC_POKEMON_NATIONAL(URSARING), EC_WORD_USE, EC_WORD_USELESS, EC_WORD_USES, @@ -1785,35 +1787,35 @@ const u16 gEasyChatWordsByLetter_U[] = { const u16 gEasyChatWordsByLetter_V[] = { EC_WORD_VACATION, - EC_POKEMON2(VAPOREON), - EC_POKEMON2(VENOMOTH), - EC_POKEMON2(VENONAT), - EC_POKEMON2(VENUSAUR), + EC_POKEMON_NATIONAL(VAPOREON), + EC_POKEMON_NATIONAL(VENOMOTH), + EC_POKEMON_NATIONAL(VENONAT), + EC_POKEMON_NATIONAL(VENUSAUR), EC_WORD_VERSION, EC_WORD_VERSUS, EC_WORD_VERY, EC_POKEMON(VIBRAVA), EC_MOVE2(VISE_GRIP), EC_WORD_VICTORY, - EC_POKEMON2(VICTREEBEL), + EC_POKEMON_NATIONAL(VICTREEBEL), EC_WORD_VIEWING, EC_POKEMON(VIGOROTH), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(VILEPLUME), - EC_POKEMON2(VILEPLUME), + EC_POKEMON_NATIONAL(VILEPLUME), EC_MOVE2(VINE_WHIP), EC_WORD_VITAL_SPIRIT, EC_MOVE(VITAL_THROW), EC_POKEMON(VOLBEAT), EC_WORD_VOLT_ABSORB, EC_MOVE2(VOLT_TACKLE), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(VOLTORB), - EC_POKEMON2(VOLTORB), + EC_POKEMON_NATIONAL(VOLTORB), EC_WORD_VORACIOUS, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(VULPIX), - EC_POKEMON2(VULPIX), + EC_POKEMON_NATIONAL(VULPIX), }; const u16 gEasyChatWordsByLetter_W[] = { @@ -1832,7 +1834,7 @@ const u16 gEasyChatWordsByLetter_W[] = { EC_WORD_WANNABE, EC_WORD_WANT, EC_WORD_WANTS, - EC_POKEMON2(WARTORTLE), + EC_POKEMON_NATIONAL(WARTORTLE), EC_WORD_WAS, EC_WORD_WASN_T, EC_WORD_WATER, @@ -1851,12 +1853,12 @@ const u16 gEasyChatWordsByLetter_W[] = { EC_WORD_WEAKENED, EC_MOVE(WEATHER_BALL), EC_WORD_WEDNESDAY, - EC_POKEMON2(WEEDLE), + EC_POKEMON_NATIONAL(WEEDLE), EC_WORD_WEEK, - EC_POKEMON2(WEEPINBELL), - -1, 2, // Doubled pokemon species name + EC_POKEMON_NATIONAL(WEEPINBELL), + DOUBLE_SPECIES_NAME EC_POKEMON(WEEZING), - EC_POKEMON2(WEEZING), + EC_POKEMON_NATIONAL(WEEZING), EC_WORD_WEIRD, EC_WORD_WELCOME, EC_WORD_WELL, @@ -1883,9 +1885,9 @@ const u16 gEasyChatWordsByLetter_W[] = { EC_WORD_WHOM, EC_WORD_WHOSE, EC_WORD_WHY, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(WIGGLYTUFF), - EC_POKEMON2(WIGGLYTUFF), + EC_POKEMON_NATIONAL(WIGGLYTUFF), EC_WORD_WILD, EC_WORD_WILL, EC_WORD_WILL_BE_HERE, @@ -1903,15 +1905,15 @@ const u16 gEasyChatWordsByLetter_W[] = { EC_MOVE(WITHDRAW), EC_WORD_WITHOUT, EC_WORD_WOBBLY, - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(WOBBUFFET), - EC_POKEMON2(WOBBUFFET), + EC_POKEMON_NATIONAL(WOBBUFFET), EC_WORD_WOMAN, EC_WORD_WON, EC_WORD_WON_T, EC_WORD_WONDER, EC_WORD_WONDER_GUARD, - EC_POKEMON2(WOOPER), + EC_POKEMON_NATIONAL(WOOPER), EC_WORD_WORD, EC_WORD_WORK, EC_WORD_WORKING, @@ -1928,14 +1930,14 @@ const u16 gEasyChatWordsByLetter_W[] = { }; const u16 gEasyChatWordsByLetter_X[] = { - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(XATU), - EC_POKEMON2(XATU), + EC_POKEMON_NATIONAL(XATU), }; const u16 gEasyChatWordsByLetter_Y[] = { EC_WORD_YAHOO, - EC_POKEMON2(YANMA), + EC_POKEMON_NATIONAL(YANMA), EC_MOVE(YAWN), EC_WORD_YAY, EC_WORD_YEAH, @@ -1958,59 +1960,59 @@ const u16 gEasyChatWordsByLetter_Y[] = { const u16 gEasyChatWordsByLetter_Z[] = { EC_POKEMON(ZANGOOSE), EC_MOVE2(ZAP_CANNON), - EC_POKEMON2(ZAPDOS), + EC_POKEMON_NATIONAL(ZAPDOS), EC_POKEMON(ZIGZAGOON), - -1, 2, // Doubled pokemon species name + DOUBLE_SPECIES_NAME EC_POKEMON(ZUBAT), - EC_POKEMON2(ZUBAT), + EC_POKEMON_NATIONAL(ZUBAT), }; const u16 gEasyChatWordsByLetter_UnusedJapaneseHi[] = { - EC_POKEMON2(CLEFFA), + EC_POKEMON_NATIONAL(CLEFFA), EC_WORD_AIYEEH, - EC_POKEMON2(WEEDLE), + EC_POKEMON_NATIONAL(WEEDLE), EC_WORD_HERO, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(PIKACHU), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(PIKACHU), EC_POKEMON(PIKACHU), EC_MOVE2(LIGHT_SCREEN), EC_WORD_SHINE, EC_WORD_LOW, - EC_POKEMON2(CLEFABLE), + EC_POKEMON_NATIONAL(CLEFABLE), EC_WORD_FLYING, - EC_POKEMON2(PIDGEOT), - EC_POKEMON2(PIDGEOTTO), + EC_POKEMON_NATIONAL(PIDGEOT), + EC_POKEMON_NATIONAL(PIDGEOTTO), EC_WORD_LEFT, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(PICHU), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(PICHU), EC_POKEMON(PICHU), EC_MOVE2(SCRATCH), EC_WORD_SURPRISE, EC_MOVE2(HYPER_FANG), - EC_POKEMON2(CLEFAIRY), + EC_POKEMON_NATIONAL(CLEFAIRY), EC_WORD_DROUGHT, EC_WORD_HIDDEN, EC_WORD_PERSON, EC_WORD_AWFUL, - EC_POKEMON2(CHARMANDER), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(STARYU), + EC_POKEMON_NATIONAL(CHARMANDER), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(STARYU), EC_POKEMON(STARYU), EC_WORD_ALONE, - EC_POKEMON2(CYNDAQUIL), + EC_POKEMON_NATIONAL(CYNDAQUIL), EC_MOVE2(EMBER), EC_POKEMON(VIBRAVA), EC_WORD_BORED, - EC_POKEMON2(SUNKERN), + EC_POKEMON_NATIONAL(SUNKERN), EC_WORD_SECRET, EC_WORD_SECRET_BASE, EC_MOVE2(SECRET_POWER), - EC_POKEMON2(TEDDIURSA), + EC_POKEMON_NATIONAL(TEDDIURSA), EC_WORD_HIYAH, EC_MOVE2(DIZZY_PUNCH), EC_WORD_LIGHTNINGROD, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(VOLTORB), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(VOLTORB), EC_POKEMON(VOLTORB), EC_WORD_DAYTIME, EC_MOVE2(BULK_UP), @@ -2021,42 +2023,42 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseHi[] = { const u16 gEasyChatWordsByLetter_UnusedJapaneseFu[] = { EC_WORD_FIGHT, - EC_POKEMON2(MOLTRES), + EC_POKEMON_NATIONAL(MOLTRES), EC_WORD_FASHION, EC_WORD_FEAR, EC_WORD_FEVER, EC_MOVE2(IMPRISON), - EC_POKEMON2(FLAREON), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(ALAKAZAM), + EC_POKEMON_NATIONAL(FLAREON), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(ALAKAZAM), EC_POKEMON(ALAKAZAM), - EC_POKEMON2(MAGMAR), + EC_POKEMON_NATIONAL(MAGMAR), EC_POKEMON(GRUMPIG), EC_MOVE2(FEATHER_DANCE), - EC_POKEMON2(FORRETRESS), + EC_POKEMON_NATIONAL(FORRETRESS), EC_MOVE2(WHIRLWIND), EC_WORD_COMPOUNDEYES, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(WIGGLYTUFF), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(WIGGLYTUFF), EC_POKEMON(WIGGLYTUFF), EC_MOVE2(BEAT_UP), EC_WORD_MYSTERY, - EC_POKEMON2(IVYSAUR), - EC_POKEMON2(BULBASAUR), + EC_POKEMON_NATIONAL(IVYSAUR), + EC_POKEMON_NATIONAL(BULBASAUR), EC_WORD_MARVEL_SCALE, EC_WORD_WONDER_GUARD, - EC_POKEMON2(VENUSAUR), + EC_POKEMON_NATIONAL(VENUSAUR), EC_WORD_LACKS, EC_WORD_RESUSCITATE, EC_WORD_SMACK, EC_WORD_FUFUFU, - EC_POKEMON2(AERODACTYL), + EC_POKEMON_NATIONAL(AERODACTYL), EC_WORD_WIMPY, - EC_POKEMON2(MAGBY), + EC_POKEMON_NATIONAL(MAGBY), EC_WORD_LOL, EC_MOVE2(BLIZZARD), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(IGGLYBUFF), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(IGGLYBUFF), EC_POKEMON(IGGLYBUFF), EC_WORD_SNORT, EC_MOVE2(STOMP), @@ -2067,17 +2069,17 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseFu[] = { EC_WORD_PLUS, EC_MOVE2(BLAST_BURN), EC_POKEMON(PLUSLE), - EC_POKEMON2(UMBREON), + EC_POKEMON_NATIONAL(UMBREON), EC_MOVE2(FLASH), EC_WORD_WOBBLY, EC_MOVE2(TEETER_DANCE), EC_WORD_PRETEND, - EC_POKEMON2(ARTICUNO), + EC_POKEMON_NATIONAL(ARTICUNO), EC_WORD_WANNABE, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(JIGGLYPUFF), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(JIGGLYPUFF), EC_POKEMON(JIGGLYPUFF), - EC_POKEMON2(SNUBBULL), + EC_POKEMON_NATIONAL(SNUBBULL), EC_WORD_SHAKY, EC_MOVE2(CRUSH_CLAW), EC_MOVE2(BLAZE_KICK), @@ -2093,29 +2095,29 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseHe[] = { EC_WORD_HEY, EC_POKEMON(CORPHISH), EC_WORD_BABY, - EC_POKEMON2(BAYLEEF), + EC_POKEMON_NATIONAL(BAYLEEF), EC_WORD_BEST, EC_WORD_LOUSY, EC_WORD_HEHEHE, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(GRIMER), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(GRIMER), EC_POKEMON(GRIMER), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(MUK), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(MUK), EC_POKEMON(MUK), EC_WORD_LIQUID_OOZE, EC_MOVE2(SLUDGE), EC_MOVE2(SLUDGE_BOMB), EC_MOVE2(GLARE), EC_WORD_HEH, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(HERACROSS), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(HERACROSS), EC_POKEMON(HERACROSS), EC_POKEMON(PELIPPER), - EC_POKEMON2(HOUNDOOM), - EC_POKEMON2(PERSIAN), + EC_POKEMON_NATIONAL(HOUNDOOM), + EC_POKEMON_NATIONAL(PERSIAN), EC_WORD_RIPPED, - EC_POKEMON2(LICKITUNG), + EC_POKEMON_NATIONAL(LICKITUNG), EC_WORD_STUDY, EC_WORD_COLOR_CHANGE, EC_MOVE2(TRANSFORM), @@ -2124,7 +2126,7 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseHe[] = { const u16 gEasyChatWordsByLetter_UnusedJapaneseHo[] = { EC_MOVE2(POISON_TAIL), EC_WORD_POINTS, - EC_POKEMON2(HO_OH), + EC_POKEMON_NATIONAL(HO_OH), EC_WORD_SOUNDPROOF, EC_WORD_ADVENTURE, EC_WORD_EFFECT_SPORE, @@ -2133,7 +2135,7 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseHo[] = { EC_POKEMON(WAILMER), EC_WORD_DUDE, EC_WORD_BOARD, - EC_POKEMON2(HOOTHOOT), + EC_POKEMON_NATIONAL(HOOTHOOT), EC_POKEMON(SALAMENCE), EC_WORD_BALL, EC_MOVE2(BONE_RUSH), @@ -2154,21 +2156,21 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseHo[] = { EC_POKEMON(AGGRON), EC_MOVE2(TAIL_GLOW), EC_POKEMON(POOCHYENA), - EC_POKEMON2(PIDGEY), + EC_POKEMON_NATIONAL(PIDGEY), EC_WORD_AS_MUCH_AS, - EC_POKEMON2(PONYTA), + EC_POKEMON_NATIONAL(PONYTA), EC_MOVE2(BONE_CLUB), EC_MOVE2(BONEMERANG), EC_WORD_FIRE, EC_MOVE2(FIRE_SPIN), EC_WORD_FLAME_BODY, EC_MOVE2(FIRE_PUNCH), - EC_POKEMON2(SKIPLOOM), + EC_POKEMON_NATIONAL(SKIPLOOM), EC_WORD_HOHOHO, EC_WORD_PRAISE, EC_WORD_UH_HUH, - EC_POKEMON2(PORYGON), - EC_POKEMON2(PORYGON2), + EC_POKEMON_NATIONAL(PORYGON), + EC_POKEMON_NATIONAL(PORYGON2), EC_MOVE2(VOLT_TACKLE), EC_WORD_POKEBLOCK, EC_MOVE2(PERISH_SONG), @@ -2189,16 +2191,16 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseMa[] = { EC_WORD_OWN_TEMPO, EC_MOVE2(WRAP), EC_MOVE2(SPIKES), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(MAGCARGO), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(MAGCARGO), EC_POKEMON(MAGCARGO), EC_MOVE2(MAGNITUDE), EC_POKEMON(MAKUHITA), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(SLUGMA), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(SLUGMA), EC_POKEMON(SLUGMA), EC_WORD_MAGMA_ARMOR, - EC_POKEMON2(QUILAVA), + EC_POKEMON_NATIONAL(QUILAVA), EC_WORD_OVERDO, EC_WORD_LOSS, EC_WORD_IF_I_LOSE, @@ -2214,9 +2216,9 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseMa[] = { EC_WORD_INCREASING, EC_WORD_TOO, EC_WORD_LIKE, - EC_POKEMON2(BELLSPROUT), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(WEEZING), + EC_POKEMON_NATIONAL(BELLSPROUT), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(WEEZING), EC_POKEMON(WEEZING), EC_WORD_SMELL, EC_WORD_YET, @@ -2231,23 +2233,23 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseMa[] = { EC_WORD_GUARD, EC_MOVE2(PROTECT), EC_POKEMON(CASCOON), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(MARILL), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(MARILL), EC_POKEMON(MARILL), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(AZUMARILL), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(AZUMARILL), EC_POKEMON(AZUMARILL), EC_MOVE2(DEFENSE_CURL), EC_WORD_AS_IF, EC_POKEMON(SWALOT), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(ELECTRODE), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(ELECTRODE), EC_POKEMON(ELECTRODE), EC_MOVE2(ROLLING_KICK), EC_WORD_COMICS, - EC_POKEMON2(MANKEY), + EC_POKEMON_NATIONAL(MANKEY), EC_WORD_SATISFIED, - EC_POKEMON2(MANTINE), + EC_POKEMON_NATIONAL(MANTINE), }; const u16 gEasyChatWordsByLetter_UnusedJapaneseMi[] = { @@ -2272,16 +2274,16 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseMi[] = { EC_WORD_LOOKS, EC_WORD_REJECT, EC_WORD_ACCEPT, - EC_POKEMON2(DRATINI), + EC_POKEMON_NATIONAL(DRATINI), EC_MOVE2(FALSE_SWIPE), EC_MOVE2(FORESIGHT), - EC_POKEMON2(MEW), - EC_POKEMON2(MEWTWO), + EC_POKEMON_NATIONAL(MEW), + EC_POKEMON_NATIONAL(MEWTWO), EC_MOVE2(MIRROR_COAT), EC_MOVE2(FUTURE_SIGHT), EC_WORD_SEES, EC_MOVE2(MILK_DRINK), - EC_POKEMON2(MILTANK), + EC_POKEMON_NATIONAL(MILTANK), EC_POKEMON(MILOTIC), EC_WORD_WE, EC_WORD_BEEN, @@ -2292,13 +2294,13 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseMi[] = { const u16 gEasyChatWordsByLetter_UnusedJapaneseMu[] = { EC_WORD_MOOD, - EC_POKEMON2(MISDREAVUS), + EC_POKEMON_NATIONAL(MISDREAVUS), EC_WORD_OLDEN, EC_WORD_ARRGH, EC_WORD_BUG, EC_WORD_SWARM, EC_WORD_RATHER, - EC_POKEMON2(SMOOCHUM), + EC_POKEMON_NATIONAL(SMOOCHUM), EC_WORD_INVINCIBLE, EC_WORD_HEART, EC_WORD_MUFUFU, @@ -2311,23 +2313,23 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseMe[] = { EC_MOVE2(MEGA_DRAIN), EC_MOVE2(MEGA_KICK), EC_MOVE2(MEGA_PUNCH), - EC_POKEMON2(MEGANIUM), + EC_POKEMON_NATIONAL(MEGANIUM), EC_MOVE2(MEGAHORN), EC_WORD_SEEK, EC_MOVE2(HIDDEN_POWER), EC_WORD_RARE, EC_POKEMON(METAGROSS), - EC_POKEMON2(DITTO), + EC_POKEMON_NATIONAL(DITTO), EC_MOVE2(METAL_CLAW), EC_POKEMON(METANG), EC_WORD_DESTROYED, EC_WORD_MESSAGE, EC_WORD_AWFULLY, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(TENTACOOL), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(TENTACOOL), EC_POKEMON(TENTACOOL), EC_WORD_FIERY, - EC_POKEMON2(MAREEP), + EC_POKEMON_NATIONAL(MAREEP), EC_MOVE2(ATTRACT), EC_WORD_CUTE_CHARM, EC_WORD_IMMUNITY, @@ -2340,7 +2342,7 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseMo[] = { EC_WORD_MODE, EC_WORD_OLD, EC_WORD_THURSDAY, - EC_POKEMON2(FLAAFFY), + EC_POKEMON_NATIONAL(FLAAFFY), EC_WORD_LISTENING, EC_WORD_OWN, EC_WORD_MORE, @@ -2351,9 +2353,9 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseMo[] = { EC_WORD_PATTERN, EC_WORD_FLASH_FIRE, EC_WORD_RECEIVED, - EC_POKEMON2(VENOMOTH), + EC_POKEMON_NATIONAL(VENOMOTH), EC_WORD_DOESN_T, - EC_POKEMON2(TANGELA), + EC_POKEMON_NATIONAL(TANGELA), }; const u16 gEasyChatWordsByLetter_UnusedJapaneseYa[] = { @@ -2368,19 +2370,19 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseYa[] = { EC_WORD_FINALLY, EC_WORD_ANY, EC_WORD_YAHOO, - EC_POKEMON2(SLOWKING), - EC_POKEMON2(SLOWBRO), + EC_POKEMON_NATIONAL(SLOWKING), + EC_POKEMON_NATIONAL(SLOWBRO), EC_MOVE2(LEECH_SEED), - EC_POKEMON2(SLOWPOKE), + EC_POKEMON_NATIONAL(SLOWPOKE), EC_WORD_DANGER, - EC_POKEMON2(MURKROW), + EC_POKEMON_NATIONAL(MURKROW), EC_POKEMON(SABLEYE), EC_WORD_DEFEATED, EC_WORD_BEAT, EC_WORD_VITAL_SPIRIT, EC_POKEMON(VIGOROTH), EC_WORD_YOUNG, - EC_POKEMON2(YANMA), + EC_POKEMON_NATIONAL(YANMA), }; const u16 gEasyChatWordsByLetter_UnusedJapaneseYu[] = { @@ -2393,8 +2395,8 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseYu[] = { EC_WORD_ALLOW, EC_WORD_FORGET, EC_POKEMON(CRADILY), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(KADABRA), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(KADABRA), EC_POKEMON(KADABRA), }; @@ -2406,7 +2408,7 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseYo[] = { EC_WORD_KINDERGARTEN, EC_WORD_CHLOROPHYLL, EC_WORD_AFTER, - EC_POKEMON2(LARVITAR), + EC_POKEMON_NATIONAL(LARVITAR), EC_WORD_OH_KAY, EC_WORD_BEFORE, EC_WORD_GREAT, @@ -2422,7 +2424,7 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseYo[] = { EC_WORD_EASY, EC_WORD_INSTEAD, EC_WORD_NIGHT, - EC_POKEMON2(NOCTOWL), + EC_POKEMON_NATIONAL(NOCTOWL), EC_WORD_COUNT_ON, EC_WORD_WEAK, EC_WORD_TOO_WEAK, @@ -2430,10 +2432,10 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseYo[] = { }; const u16 gEasyChatWordsByLetter_UnusedJapaneseRa[] = { - EC_POKEMON2(RAIKOU), + EC_POKEMON_NATIONAL(RAIKOU), EC_WORD_WEEK, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(RAICHU), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(RAICHU), EC_POKEMON(RAICHU), EC_WORD_RIVAL, EC_WORD_LIFE, @@ -2445,31 +2447,31 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseRa[] = { EC_WORD_SEEMS, EC_WORD_RADIO, EC_MOVE2(LUSTER_PURGE), - EC_POKEMON2(CHANSEY), - EC_POKEMON2(RATICATE), + EC_POKEMON_NATIONAL(CHANSEY), + EC_POKEMON_NATIONAL(RATICATE), EC_POKEMON(LATIAS), EC_POKEMON(LATIOS), EC_POKEMON(LUVDISC), - EC_POKEMON2(LAPRAS), + EC_POKEMON_NATIONAL(LAPRAS), EC_WORD_LOVEY_DOVEY, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(VILEPLUME), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(VILEPLUME), EC_POKEMON(VILEPLUME), EC_WORD_LALALA, EC_POKEMON(RALTS), EC_WORD_FORGETS, EC_WORD_APPEARS, EC_WORD_RANK, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(LANTURN), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(LANTURN), EC_POKEMON(LANTURN), }; const u16 gEasyChatWordsByLetter_UnusedJapaneseRi[] = { EC_WORD_LEADER, EC_MOVE2(LEAF_BLADE), - EC_POKEMON2(CHARMELEON), - EC_POKEMON2(CHARIZARD), + EC_POKEMON_NATIONAL(CHARMELEON), + EC_POKEMON_NATIONAL(CHARIZARD), EC_MOVE2(RECYCLE), EC_MOVE2(REFLECT), EC_MOVE2(REFRESH), @@ -2481,15 +2483,15 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseRi[] = { EC_MOVE2(DRAGON_DANCE), EC_WORD_VACATION, EC_POKEMON(LILEEP), - EC_POKEMON2(URSARING), + EC_POKEMON_NATIONAL(URSARING), EC_WORD_SHIELD_DUST, }; const u16 gEasyChatWordsByLetter_UnusedJapaneseRu[] = { - EC_POKEMON2(JYNX), + EC_POKEMON_NATIONAL(JYNX), EC_WORD_ROOM, EC_WORD_RULE, - EC_POKEMON2(LUGIA), + EC_POKEMON_NATIONAL(LUGIA), EC_WORD_LOOK, EC_POKEMON(LUNATONE), EC_WORD_RUBY, @@ -2500,8 +2502,8 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseRu[] = { }; const u16 gEasyChatWordsByLetter_UnusedJapaneseRe[] = { - -1, 2, // Doubled pokemon species name - EC_POKEMON2(MAGNETON), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(MAGNETON), EC_POKEMON(MAGNETON), EC_MOVE2(ICE_PUNCH), EC_MOVE2(ICE_BEAM), @@ -2510,8 +2512,8 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseRe[] = { EC_POKEMON(REGIROCK), EC_POKEMON(RAYQUAZA), EC_WORD_UGLY, - EC_POKEMON2(LEDIAN), - EC_POKEMON2(LEDYBA), + EC_POKEMON_NATIONAL(LEDIAN), + EC_POKEMON_NATIONAL(LEDYBA), EC_WORD_FANTASTIC, EC_WORD_LEVEL, EC_MOVE2(FURY_CUTTER), @@ -2521,8 +2523,8 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseRe[] = { const u16 gEasyChatWordsByLetter_UnusedJapaneseRo[] = { EC_MOVE2(SKULL_BASH), - -1, 2, // Doubled pokemon species name - EC_POKEMON2(VULPIX), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(VULPIX), EC_POKEMON(VULPIX), EC_POKEMON(ROSELIA), EC_MOVE2(LOCK_ON), @@ -2553,198 +2555,198 @@ const u16 gEasyChatWordsByLetter_UnusedJapaneseWa[] = { EC_WORD_HERS, EC_WORD_SHE_IS, EC_WORD_SOME, - EC_POKEMON2(JUMPLUFF), + EC_POKEMON_NATIONAL(JUMPLUFF), EC_MOVE2(COTTON_SPORE), EC_WORD_GWAH, - EC_POKEMON2(TOTODILE), + EC_POKEMON_NATIONAL(TOTODILE), EC_WORD_WAHAHAHA, EC_WORD_ANYWHERE, EC_MOVE2(STRUGGLE), EC_WORD_BADLY, - -1, 2, // Doubled pokemon species name - EC_POKEMON2(MACHOP), + DOUBLE_SPECIES_NAME + EC_POKEMON_NATIONAL(MACHOP), EC_POKEMON(MACHOP), }; -const struct EasyChatWordsByLetter gEasyChatWordsByLetterPointers[] = { +const struct EasyChatWordsByLetter gEasyChatWordsByLetterPointers[EC_NUM_ALPHABET_GROUPS + 18] = { // 18 unused JP groups { .words = gEasyChatWordsByLetter_Others, - .numWords = 10, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_Others), }, { .words = gEasyChatWordsByLetter_A, - .numWords = 106, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_A), }, { .words = gEasyChatWordsByLetter_B, - .numWords = 86, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_B), }, { .words = gEasyChatWordsByLetter_C, - .numWords = 119, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_C), }, { .words = gEasyChatWordsByLetter_D, - .numWords = 94, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_D), }, { .words = gEasyChatWordsByLetter_E, - .numWords = 59, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_E), }, { .words = gEasyChatWordsByLetter_F, - .numWords = 80, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_F), }, { .words = gEasyChatWordsByLetter_G, - .numWords = 98, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_G), }, { .words = gEasyChatWordsByLetter_H, - .numWords = 101, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_H), }, { .words = gEasyChatWordsByLetter_I, - .numWords = 48, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_I), }, { .words = gEasyChatWordsByLetter_J, - .numWords = 13, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_J), }, { .words = gEasyChatWordsByLetter_K, - .numWords = 33, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_K), }, { .words = gEasyChatWordsByLetter_L, - .numWords = 82, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_L), }, { .words = gEasyChatWordsByLetter_M, - .numWords = 142, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_M), }, { .words = gEasyChatWordsByLetter_N, - .numWords = 54, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_N), }, { .words = gEasyChatWordsByLetter_O, - .numWords = 44, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_O), }, { .words = gEasyChatWordsByLetter_P, - .numWords = 102, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_P), }, { .words = gEasyChatWordsByLetter_Q, - .numWords = 6, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_Q), }, { .words = gEasyChatWordsByLetter_R, - .numWords = 80, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_R), }, { .words = gEasyChatWordsByLetter_S, - .numWords = 262, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_S), }, { .words = gEasyChatWordsByLetter_T, - .numWords = 133, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_T), }, { .words = gEasyChatWordsByLetter_U, - .numWords = 24, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_U), }, { .words = gEasyChatWordsByLetter_V, - .numWords = 33, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_V), }, { .words = gEasyChatWordsByLetter_W, - .numWords = 111, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_W), }, { .words = gEasyChatWordsByLetter_X, - .numWords = 4, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_X), }, { .words = gEasyChatWordsByLetter_Y, - .numWords = 19, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_Y), }, { .words = gEasyChatWordsByLetter_Z, - .numWords = 8, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_Z), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseHi, - .numWords = 55, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseHi), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseFu, - .numWords = 71, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseFu), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseHe, - .numWords = 32, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseHe), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseHo, - .numWords = 55, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseHo), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseMa, - .numWords = 74, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseMa), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseMi, - .numWords = 37, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseMi), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseMu, - .numWords = 12, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseMu), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseMe, - .numWords = 26, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseMe), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseMo, - .numWords = 20, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseMo), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseYa, - .numWords = 24, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseYa), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseYu, - .numWords = 13, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseYu), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseYo, - .numWords = 28, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseYo), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseRa, - .numWords = 36, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseRa), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseRi, - .numWords = 17, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseRi), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseRu, - .numWords = 11, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseRu), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseRe, - .numWords = 18, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseRe), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseRo, - .numWords = 10, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseRo), }, { .words = gEasyChatWordsByLetter_UnusedJapaneseWa, - .numWords = 33, + .numWords = ARRAY_COUNT(gEasyChatWordsByLetter_UnusedJapaneseWa), }, }; diff --git a/src/data/field_effects/field_effect_objects.h b/src/data/field_effects/field_effect_objects.h index 4fc3ecff69..54145efbcc 100755 --- a/src/data/field_effects/field_effect_objects.h +++ b/src/data/field_effects/field_effect_objects.h @@ -1263,16 +1263,16 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle = { const struct SpritePalette gSpritePalette_SmallSparkle = {gFieldEffectPal_SmallSparkle, FLDEFF_PAL_TAG_SMALL_SPARKLE}; -static const union AnimCmd sAnim_Rayquaza[] = { +static const union AnimCmd sAnim_RayquazaSpotlightEffect[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd *const sAnimTable_Rayquaza[] = { - sAnim_Rayquaza, +static const union AnimCmd *const sAnimTable_RayquazaSpotlightEffect[] = { + sAnim_RayquazaSpotlightEffect, }; -const struct SpriteFrameImage sPicTable_Rayquaza[] = { +const struct SpriteFrameImage sPicTable_RayquazaSpotlightEffect[] = { overworld_frame(gObjectEventPic_Rayquaza, 4, 4, 0), }; @@ -1280,8 +1280,8 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = { .tileTag = 0xFFFF, .paletteTag = 0xFFFF, .oam = &gObjectEventBaseOam_32x32, - .anims = sAnimTable_Rayquaza, - .images = sPicTable_Rayquaza, + .anims = sAnimTable_RayquazaSpotlightEffect, + .images = sPicTable_RayquazaSpotlightEffect, .affineAnims = gDummySpriteAffineAnimTable, .callback = UpdateRayquazaSpotlightEffect, }; diff --git a/src/data/graphics/intro_scene.h b/src/data/graphics/intro_scene.h index ea67c7b0d0..cb7706c9a3 100644 --- a/src/data/graphics/intro_scene.h +++ b/src/data/graphics/intro_scene.h @@ -1,48 +1,47 @@ -const u16 gIntro1GameFreakTextFadePal[] = INCBIN_U16("graphics/intro/intro1_text.gbapal"); // game freak text blue fade -const u16 gIntro2BrendanNoTurnPal[] = INCBIN_U16("graphics/intro/intro2_brendan_noturn.gbapal"); -const u16 gIntro3BgPal[] = INCBIN_U16("graphics/intro/intro3.gbapal"); -const u16 gIntro2VolbeatPal[] = INCBIN_U16("graphics/intro/intro2_volbeat.gbapal"); -const u16 gIntro2TorchicPal[] = INCBIN_U16("graphics/intro/intro2_torchic.gbapal"); -const u16 gIntro2ManectricPal[] = INCBIN_U16("graphics/intro/intro2_manectric.gbapal"); -const u16 gIntro2FlygonPal[] = INCBIN_U16("graphics/intro/intro2_flygon.gbapal"); +const u16 gIntroGameFreakTextFade_Pal[] = INCBIN_U16("graphics/intro/scene_1/text.gbapal"); // game freak text blue fade +const u16 gIntroPlayer_Pal[] = INCBIN_U16("graphics/intro/scene_2/player.gbapal"); +const u16 gIntro3Bg_Pal[] = INCBIN_U16("graphics/intro/scene_3/bg.gbapal"); +const u16 gIntroVolbeat_Pal[] = INCBIN_U16("graphics/intro/scene_2/volbeat.gbapal"); +const u16 gIntroTorchic_Pal[] = INCBIN_U16("graphics/intro/scene_2/torchic.gbapal"); +const u16 gIntroManectric_Pal[] = INCBIN_U16("graphics/intro/scene_2/manectric.gbapal"); +const u16 gIntroFlygon_Pal[] = INCBIN_U16("graphics/intro/scene_2/flygon.gbapal"); -const u32 gIntro2VolbeatGfx[] = INCBIN_U32("graphics/intro/intro2_volbeat.4bpp.lz"); -const u32 gIntro2TorchicGfx[] = INCBIN_U32("graphics/intro/intro2_torchic.4bpp.lz"); -const u32 gIntro2ManectricGfx[] = INCBIN_U32("graphics/intro/intro2_manectric.4bpp.lz"); -const u32 gIntro2FlygonGfx[] = INCBIN_U32("graphics/intro/intro2_flygon.4bpp.lz"); -const u32 gIntro2BrendanNoTurnGfx[] = INCBIN_U32("graphics/intro/intro2_brendan_noturn.4bpp.lz"); -const u32 gIntro2MayNoTurnGfx[] = INCBIN_U32("graphics/intro/intro2_may_noturn.4bpp.lz"); +const u32 gIntroVolbeat_Gfx[] = INCBIN_U32("graphics/intro/scene_2/volbeat.4bpp.lz"); +const u32 gIntroTorchic_Gfx[] = INCBIN_U32("graphics/intro/scene_2/torchic.4bpp.lz"); +const u32 gIntroManectric_Gfx[] = INCBIN_U32("graphics/intro/scene_2/manectric.4bpp.lz"); +const u32 gIntroFlygon_Gfx[] = INCBIN_U32("graphics/intro/scene_2/flygon.4bpp.lz"); +const u32 gIntroBrendan_Gfx[] = INCBIN_U32("graphics/intro/scene_2/brendan.4bpp.lz"); +const u32 gIntroMay_Gfx[] = INCBIN_U32("graphics/intro/scene_2/may.4bpp.lz"); -const u32 gIntro3GroudonGfx[] = INCBIN_U32("graphics/intro/intro3_groudon.8bpp.lz"); -const u32 gIntro3GroudonTilemap[] = INCBIN_U32("graphics/intro/intro3_groudon.bin.lz"); +const u32 gIntroGroudon_Gfx[] = INCBIN_U32("graphics/intro/scene_3/groudon.8bpp.lz"); +const u32 gIntroGroudon_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/groudon.bin.lz"); -const u32 gIntro3KyogreGfx[] = INCBIN_U32("graphics/intro/intro3_kyogre.8bpp.lz"); -const u32 gIntro3KyogreTilemap[] = INCBIN_U32("graphics/intro/intro3_kyogre.bin.lz"); +const u32 gIntroKyogre_Gfx[] = INCBIN_U32("graphics/intro/scene_3/kyogre.8bpp.lz"); +const u32 gIntroKyogre_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/kyogre.bin.lz"); -const u32 gIntro3LegendBgGfx[] = INCBIN_U32("graphics/intro/legend_bg.4bpp.lz"); // groudon/kyogre/bg +const u32 gIntroLegendBg_Gfx[] = INCBIN_U32("graphics/intro/scene_3/legend_bg.4bpp.lz"); // groudon/kyogre bg +const u32 gIntroGroudonBg_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/groudon_bg.bin.lz"); +const u32 gIntroKyogreBg_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/kyogre_bg.bin.lz"); -const u32 gIntro3GroudonBgTilemap[] = INCBIN_U32("graphics/intro/legend_bg1.bin.lz"); -const u32 gIntro3KyogreBgTilemap[] = INCBIN_U32("graphics/intro/legend_bg2.bin.lz"); +const u32 gIntroClouds_Gfx[] = INCBIN_U32("graphics/intro/scene_3/clouds.4bpp.lz"); +const u32 gIntroCloudsLeft_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/clouds_left.bin.lz"); +const u32 gIntroCloudsRight_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/clouds_right.bin.lz"); +const u32 gIntroCloudsSun_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/clouds_sun.bin.lz"); -const u32 gIntro3CloudsGfx[] = INCBIN_U32("graphics/intro/intro3_clouds.4bpp.lz"); -const u32 gIntro3Clouds1Tilemap[] = INCBIN_U32("graphics/intro/intro3_clouds1.bin.lz"); -const u32 gIntro3Clouds2Tilemap[] = INCBIN_U32("graphics/intro/intro3_clouds2.bin.lz"); -const u32 gIntro3Clouds3Tilemap[] = INCBIN_U32("graphics/intro/intro3_clouds3.bin.lz"); +const u32 gIntroLightning_Gfx[] = INCBIN_U32("graphics/intro/scene_3/lightning.4bpp.lz"); +const u16 gIntroLightning_Pal[] = INCBIN_U16("graphics/intro/scene_3/lightning.gbapal"); -const u32 gIntro3LightningGfx[] = INCBIN_U32("graphics/intro/intro3_lightning.4bpp.lz"); -const u16 gIntro3LightningPal[] = INCBIN_U16("graphics/intro/intro3_lightning.gbapal"); +const u32 gIntroRayquaza_Gfx[] = INCBIN_U32("graphics/intro/scene_3/rayquaza.4bpp.lz"); +const u32 gIntroRayquaza_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/rayquaza.bin.lz"); -const u32 gIntro3RayquazaGfx[] = INCBIN_U32("graphics/intro/intro3_rayquaza.4bpp.lz"); -const u32 gIntro3RayquazaTilemap[] = INCBIN_U32("graphics/intro/intro3_rayquaza.bin.lz"); +const u32 gIntroUnused1_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/unused_1.bin.lz"); +const u32 gIntroUnused2_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/unused_2.bin.lz"); -const u32 gUnknown_D8C374[] = INCBIN_U32("graphics/unknown/unknown_D8C374.bin.lz"); -const u32 gUnknown_D8C5C4[] = INCBIN_U32("graphics/unknown/unknown_D8C5C4.bin.lz"); +const u32 gIntroRayquazaClouds_Gfx[] = INCBIN_U32("graphics/intro/scene_3/rayquaza_clouds.4bpp.lz"); +const u32 gIntroRayquazaClouds_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/rayquaza_clouds.bin.lz"); -const u32 gIntro3Clouds2Gfx[] = INCBIN_U32("graphics/intro/intro3_clouds2.4bpp.lz"); //clouds 2, during the rayquaza flash -const u32 gIntro3Clouds4Tilemap[] = INCBIN_U32("graphics/intro/intro3_clouds4.bin.lz"); +const u32 gIntroBubbles_Gfx[] = INCBIN_U32("graphics/intro/scene_3/bubbles.4bpp.lz"); +const u16 gIntroBubbles_Pal[] = INCBIN_U16("graphics/intro/scene_3/bubbles.gbapal"); -const u32 gIntro2BubblesGfx[] = INCBIN_U32("graphics/intro/intro2_bubbles.4bpp.lz"); -const u16 gIntro2BubblesPal[] = INCBIN_U16("graphics/intro/intro2_bubbles.gbapal"); - -const u32 gIntro1FlygonGfx[] = INCBIN_U32("graphics/intro/intro1_flygon.4bpp.lz"); -const u32 gIntro1SparkleGfx[] = INCBIN_U32("graphics/intro/intro1_sparkle.4bpp.lz"); +const u32 gIntroFlygonSilhouette_Gfx[] = INCBIN_U32("graphics/intro/scene_1/flygon.4bpp.lz"); +const u32 gIntroSparkle_Gfx[] = INCBIN_U32("graphics/intro/scene_1/sparkle.4bpp.lz"); diff --git a/src/data/item_icon_table.h b/src/data/item_icon_table.h index c36969ab54..ea8315e760 100644 --- a/src/data/item_icon_table.h +++ b/src/data/item_icon_table.h @@ -192,10 +192,9 @@ const u32 *const gItemIconTable[][2] = [ITEM_LANSAT_BERRY] = {gItemIcon_LansatBerry, gItemIconPalette_LansatBerry}, [ITEM_STARF_BERRY] = {gItemIcon_StarfBerry, gItemIconPalette_StarfBerry}, [ITEM_ENIGMA_BERRY] = {gItemIcon_EnigmaBerry, gItemIconPalette_EnigmaBerry}, - // ???????? - [ITEM_0B0] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, - [ITEM_0B1] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, - [ITEM_0B2] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_UNUSED_BERRY_1] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_UNUSED_BERRY_2] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_UNUSED_BERRY_3] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // Hold items [ITEM_BRIGHT_POWDER] = {gItemIcon_BrightPowder, gItemIconPalette_BrightPowder}, [ITEM_WHITE_HERB] = {gItemIcon_InBattleHerb, gItemIconPalette_WhiteHerb}, diff --git a/src/data/items.h b/src/data/items.h index 30beb53528..370cd2022c 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -7,9 +7,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Pokeballs @@ -21,10 +20,10 @@ const struct Item gItems[] = .price = 0, .description = sMasterBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 0, - .battleUsage = 2, + .type = ITEM_MASTER_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 0, + .secondaryId = ITEM_MASTER_BALL - FIRST_BALL, }, [ITEM_ULTRA_BALL] = @@ -34,10 +33,10 @@ const struct Item gItems[] = .price = 1200, .description = sUltraBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 1, - .battleUsage = 2, + .type = ITEM_ULTRA_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 1, + .secondaryId = ITEM_ULTRA_BALL - FIRST_BALL, }, [ITEM_GREAT_BALL] = @@ -47,10 +46,10 @@ const struct Item gItems[] = .price = 600, .description = sGreatBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 2, - .battleUsage = 2, + .type = ITEM_GREAT_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 2, + .secondaryId = ITEM_GREAT_BALL - FIRST_BALL, }, [ITEM_POKE_BALL] = @@ -60,10 +59,10 @@ const struct Item gItems[] = .price = 200, .description = sPokeBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 3, - .battleUsage = 2, + .type = ITEM_POKE_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 3, + .secondaryId = ITEM_POKE_BALL - FIRST_BALL, }, [ITEM_SAFARI_BALL] = @@ -73,10 +72,10 @@ const struct Item gItems[] = .price = 0, .description = sSafariBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 4, - .battleUsage = 2, + .type = ITEM_SAFARI_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 4, + .secondaryId = ITEM_SAFARI_BALL - FIRST_BALL, }, [ITEM_NET_BALL] = @@ -86,10 +85,10 @@ const struct Item gItems[] = .price = 1000, .description = sNetBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 5, - .battleUsage = 2, + .type = ITEM_NET_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 5, + .secondaryId = ITEM_NET_BALL - FIRST_BALL, }, [ITEM_DIVE_BALL] = @@ -99,10 +98,10 @@ const struct Item gItems[] = .price = 1000, .description = sDiveBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 6, - .battleUsage = 2, + .type = ITEM_DIVE_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 6, + .secondaryId = ITEM_DIVE_BALL - FIRST_BALL, }, [ITEM_NEST_BALL] = @@ -112,10 +111,10 @@ const struct Item gItems[] = .price = 1000, .description = sNestBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 7, - .battleUsage = 2, + .type = ITEM_NEST_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 7, + .secondaryId = ITEM_NEST_BALL - FIRST_BALL, }, [ITEM_REPEAT_BALL] = @@ -125,10 +124,10 @@ const struct Item gItems[] = .price = 1000, .description = sRepeatBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 8, - .battleUsage = 2, + .type = ITEM_REPEAT_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 8, + .secondaryId = ITEM_REPEAT_BALL - FIRST_BALL, }, [ITEM_TIMER_BALL] = @@ -138,10 +137,10 @@ const struct Item gItems[] = .price = 1000, .description = sTimerBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 9, - .battleUsage = 2, + .type = ITEM_TIMER_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 9, + .secondaryId = ITEM_TIMER_BALL - FIRST_BALL, }, [ITEM_LUXURY_BALL] = @@ -151,10 +150,10 @@ const struct Item gItems[] = .price = 1000, .description = sLuxuryBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 10, - .battleUsage = 2, + .type = ITEM_LUXURY_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 10, + .secondaryId = ITEM_LUXURY_BALL - FIRST_BALL, }, [ITEM_PREMIER_BALL] = @@ -164,10 +163,10 @@ const struct Item gItems[] = .price = 200, .description = sPremierBallDesc, .pocket = POCKET_POKE_BALLS, - .type = 11, - .battleUsage = 2, + .type = ITEM_PREMIER_BALL - FIRST_BALL, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_PokeBall, - .secondaryId = 11, + .secondaryId = ITEM_PREMIER_BALL - FIRST_BALL, }, // Medicine @@ -180,11 +179,10 @@ const struct Item gItems[] = .holdEffectParam = 20, .description = sPotionDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_ANTIDOTE] = @@ -194,11 +192,10 @@ const struct Item gItems[] = .price = 100, .description = sAntidoteDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_BURN_HEAL] = @@ -208,11 +205,10 @@ const struct Item gItems[] = .price = 250, .description = sBurnHealDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_ICE_HEAL] = @@ -222,11 +218,10 @@ const struct Item gItems[] = .price = 250, .description = sIceHealDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_AWAKENING] = @@ -236,11 +231,10 @@ const struct Item gItems[] = .price = 250, .description = sAwakeningDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_PARALYZE_HEAL] = @@ -250,11 +244,10 @@ const struct Item gItems[] = .price = 200, .description = sParalyzeHealDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_FULL_RESTORE] = @@ -265,11 +258,10 @@ const struct Item gItems[] = .holdEffectParam = 255, .description = sFullRestoreDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_MAX_POTION] = @@ -280,11 +272,10 @@ const struct Item gItems[] = .holdEffectParam = 255, .description = sMaxPotionDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_HYPER_POTION] = @@ -295,11 +286,10 @@ const struct Item gItems[] = .holdEffectParam = 200, .description = sHyperPotionDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_SUPER_POTION] = @@ -310,11 +300,10 @@ const struct Item gItems[] = .holdEffectParam = 50, .description = sSuperPotionDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_FULL_HEAL] = @@ -324,11 +313,10 @@ const struct Item gItems[] = .price = 600, .description = sFullHealDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_REVIVE] = @@ -338,11 +326,10 @@ const struct Item gItems[] = .price = 1500, .description = sReviveDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_MAX_REVIVE] = @@ -352,11 +339,10 @@ const struct Item gItems[] = .price = 4000, .description = sMaxReviveDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_FRESH_WATER] = @@ -367,11 +353,10 @@ const struct Item gItems[] = .holdEffectParam = 50, .description = sFreshWaterDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_SODA_POP] = @@ -382,11 +367,10 @@ const struct Item gItems[] = .holdEffectParam = 60, .description = sSodaPopDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_LEMONADE] = @@ -397,11 +381,10 @@ const struct Item gItems[] = .holdEffectParam = 80, .description = sLemonadeDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_MOOMOO_MILK] = @@ -412,11 +395,10 @@ const struct Item gItems[] = .holdEffectParam = 100, .description = sMoomooMilkDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_ENERGY_POWDER] = @@ -426,11 +408,10 @@ const struct Item gItems[] = .price = 500, .description = sEnergyPowderDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_ENERGY_ROOT] = @@ -440,11 +421,10 @@ const struct Item gItems[] = .price = 800, .description = sEnergyRootDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_HEAL_POWDER] = @@ -454,11 +434,10 @@ const struct Item gItems[] = .price = 450, .description = sHealPowderDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_REVIVAL_HERB] = @@ -468,11 +447,10 @@ const struct Item gItems[] = .price = 2800, .description = sRevivalHerbDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_ETHER] = @@ -483,11 +461,10 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sEtherDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_PPRecovery, - .secondaryId = 0, }, [ITEM_MAX_ETHER] = @@ -498,11 +475,10 @@ const struct Item gItems[] = .holdEffectParam = 255, .description = sMaxEtherDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_PPRecovery, - .secondaryId = 0, }, [ITEM_ELIXIR] = @@ -513,11 +489,10 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sElixirDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_PPRecovery, - .secondaryId = 0, }, [ITEM_MAX_ELIXIR] = @@ -528,11 +503,10 @@ const struct Item gItems[] = .holdEffectParam = 255, .description = sMaxElixirDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_PPRecovery, - .secondaryId = 0, }, [ITEM_LAVA_COOKIE] = @@ -542,11 +516,10 @@ const struct Item gItems[] = .price = 200, .description = sLavaCookieDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_BLUE_FLUTE] = @@ -556,11 +529,10 @@ const struct Item gItems[] = .price = 100, .description = sBlueFluteDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_YELLOW_FLUTE] = @@ -570,11 +542,10 @@ const struct Item gItems[] = .price = 200, .description = sYellowFluteDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_RED_FLUTE] = @@ -584,11 +555,10 @@ const struct Item gItems[] = .price = 300, .description = sRedFluteDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_BLACK_FLUTE] = @@ -599,9 +569,8 @@ const struct Item gItems[] = .holdEffectParam = 50, .description = sBlackFluteDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, - .secondaryId = 0, }, [ITEM_WHITE_FLUTE] = @@ -612,9 +581,8 @@ const struct Item gItems[] = .holdEffectParam = 150, .description = sWhiteFluteDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, - .secondaryId = 0, }, [ITEM_BERRY_JUICE] = @@ -626,11 +594,10 @@ const struct Item gItems[] = .holdEffectParam = 20, .description = sBerryJuiceDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_SACRED_ASH] = @@ -640,9 +607,8 @@ const struct Item gItems[] = .price = 200, .description = sSacredAshDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_SacredAsh, - .secondaryId = 0, }, // Collectibles @@ -654,9 +620,8 @@ const struct Item gItems[] = .price = 20, .description = sShoalSaltDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SHOAL_SHELL] = @@ -666,9 +631,8 @@ const struct Item gItems[] = .price = 20, .description = sShoalShellDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_RED_SHARD] = @@ -678,9 +642,8 @@ const struct Item gItems[] = .price = 200, .description = sRedShardDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BLUE_SHARD] = @@ -690,9 +653,8 @@ const struct Item gItems[] = .price = 200, .description = sBlueShardDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_YELLOW_SHARD] = @@ -702,9 +664,8 @@ const struct Item gItems[] = .price = 200, .description = sYellowShardDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_GREEN_SHARD] = @@ -714,9 +675,8 @@ const struct Item gItems[] = .price = 200, .description = sGreenShardDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_034] = @@ -726,9 +686,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_035] = @@ -738,9 +697,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_036] = @@ -750,9 +708,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_037] = @@ -762,9 +719,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_038] = @@ -774,9 +730,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_039] = @@ -786,9 +741,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_03A] = @@ -798,9 +752,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_03B] = @@ -810,9 +763,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_03C] = @@ -822,9 +774,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_03D] = @@ -834,9 +785,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_03E] = @@ -846,9 +796,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Vitamins @@ -860,9 +809,8 @@ const struct Item gItems[] = .price = 9800, .description = sHPUpDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .secondaryId = 0, }, [ITEM_PROTEIN] = @@ -872,9 +820,8 @@ const struct Item gItems[] = .price = 9800, .description = sProteinDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .secondaryId = 0, }, [ITEM_IRON] = @@ -884,9 +831,8 @@ const struct Item gItems[] = .price = 9800, .description = sIronDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .secondaryId = 0, }, [ITEM_CARBOS] = @@ -896,9 +842,8 @@ const struct Item gItems[] = .price = 9800, .description = sCarbosDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .secondaryId = 0, }, [ITEM_CALCIUM] = @@ -908,9 +853,8 @@ const struct Item gItems[] = .price = 9800, .description = sCalciumDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .secondaryId = 0, }, [ITEM_RARE_CANDY] = @@ -920,9 +864,8 @@ const struct Item gItems[] = .price = 4800, .description = sRareCandyDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RareCandy, - .secondaryId = 0, }, [ITEM_PP_UP] = @@ -932,9 +875,8 @@ const struct Item gItems[] = .price = 9800, .description = sPPUpDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPUp, - .secondaryId = 0, }, [ITEM_ZINC] = @@ -944,9 +886,8 @@ const struct Item gItems[] = .price = 9800, .description = sZincDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .secondaryId = 0, }, [ITEM_PP_MAX] = @@ -956,9 +897,8 @@ const struct Item gItems[] = .price = 9800, .description = sPPMaxDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPUp, - .secondaryId = 0, }, [ITEM_048] = @@ -968,9 +908,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Battle items @@ -982,11 +921,10 @@ const struct Item gItems[] = .price = 700, .description = sGuardSpecDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_StatIncrease, - .secondaryId = 0, }, [ITEM_DIRE_HIT] = @@ -996,11 +934,10 @@ const struct Item gItems[] = .price = 650, .description = sDireHitDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_StatIncrease, - .secondaryId = 0, }, [ITEM_X_ATTACK] = @@ -1010,11 +947,10 @@ const struct Item gItems[] = .price = 500, .description = sXAttackDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_StatIncrease, - .secondaryId = 0, }, [ITEM_X_DEFEND] = @@ -1024,11 +960,10 @@ const struct Item gItems[] = .price = 550, .description = sXDefendDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_StatIncrease, - .secondaryId = 0, }, [ITEM_X_SPEED] = @@ -1038,11 +973,10 @@ const struct Item gItems[] = .price = 350, .description = sXSpeedDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_StatIncrease, - .secondaryId = 0, }, [ITEM_X_ACCURACY] = @@ -1052,11 +986,10 @@ const struct Item gItems[] = .price = 950, .description = sXAccuracyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_StatIncrease, - .secondaryId = 0, }, [ITEM_X_SPECIAL] = @@ -1066,11 +999,10 @@ const struct Item gItems[] = .price = 350, .description = sXSpecialDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_StatIncrease, - .secondaryId = 0, }, [ITEM_POKE_DOLL] = @@ -1080,11 +1012,10 @@ const struct Item gItems[] = .price = 1000, .description = sPokeDollDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_Escape, - .secondaryId = 0, }, [ITEM_FLUFFY_TAIL] = @@ -1094,11 +1025,10 @@ const struct Item gItems[] = .price = 1000, .description = sFluffyTailDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 2, + .battleUsage = ITEM_B_USE_OTHER, .battleUseFunc = ItemUseInBattle_Escape, - .secondaryId = 0, }, [ITEM_052] = @@ -1108,9 +1038,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Field items @@ -1123,9 +1052,8 @@ const struct Item gItems[] = .holdEffectParam = 200, .description = sSuperRepelDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Repel, - .secondaryId = 0, }, [ITEM_MAX_REPEL] = @@ -1136,9 +1064,8 @@ const struct Item gItems[] = .holdEffectParam = 250, .description = sMaxRepelDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Repel, - .secondaryId = 0, }, [ITEM_ESCAPE_ROPE] = @@ -1148,9 +1075,8 @@ const struct Item gItems[] = .price = 550, .description = sEscapeRopeDesc, .pocket = POCKET_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_EscapeRope, - .secondaryId = 0, }, [ITEM_REPEL] = @@ -1161,9 +1087,8 @@ const struct Item gItems[] = .holdEffectParam = 100, .description = sRepelDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Repel, - .secondaryId = 0, }, [ITEM_057] = @@ -1173,9 +1098,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_058] = @@ -1185,9 +1109,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_059] = @@ -1197,9 +1120,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_05A] = @@ -1209,9 +1131,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_05B] = @@ -1221,9 +1142,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_05C] = @@ -1233,9 +1153,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Evolution stones @@ -1247,9 +1166,8 @@ const struct Item gItems[] = .price = 2100, .description = sSunStoneDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, - .secondaryId = 0, }, [ITEM_MOON_STONE] = @@ -1259,9 +1177,8 @@ const struct Item gItems[] = .price = 0, .description = sMoonStoneDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, - .secondaryId = 0, }, [ITEM_FIRE_STONE] = @@ -1271,9 +1188,8 @@ const struct Item gItems[] = .price = 2100, .description = sFireStoneDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, - .secondaryId = 0, }, [ITEM_THUNDER_STONE] = @@ -1283,9 +1199,8 @@ const struct Item gItems[] = .price = 2100, .description = sThunderStoneDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, - .secondaryId = 0, }, [ITEM_WATER_STONE] = @@ -1295,9 +1210,8 @@ const struct Item gItems[] = .price = 2100, .description = sWaterStoneDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, - .secondaryId = 0, }, [ITEM_LEAF_STONE] = @@ -1307,9 +1221,8 @@ const struct Item gItems[] = .price = 2100, .description = sLeafStoneDesc, .pocket = POCKET_ITEMS, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, - .secondaryId = 0, }, [ITEM_063] = @@ -1319,9 +1232,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_064] = @@ -1331,9 +1243,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_065] = @@ -1343,9 +1254,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_066] = @@ -1355,9 +1265,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Valuable items @@ -1369,9 +1278,8 @@ const struct Item gItems[] = .price = 500, .description = sTinyMushroomDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BIG_MUSHROOM] = @@ -1381,9 +1289,8 @@ const struct Item gItems[] = .price = 5000, .description = sBigMushroomDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_069] = @@ -1393,9 +1300,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_PEARL] = @@ -1405,9 +1311,8 @@ const struct Item gItems[] = .price = 1400, .description = sPearlDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BIG_PEARL] = @@ -1417,9 +1322,8 @@ const struct Item gItems[] = .price = 7500, .description = sBigPearlDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_STARDUST] = @@ -1429,9 +1333,8 @@ const struct Item gItems[] = .price = 2000, .description = sStardustDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_STAR_PIECE] = @@ -1441,9 +1344,8 @@ const struct Item gItems[] = .price = 9800, .description = sStarPieceDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_NUGGET] = @@ -1453,9 +1355,8 @@ const struct Item gItems[] = .price = 10000, .description = sNuggetDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_HEART_SCALE] = @@ -1465,9 +1366,8 @@ const struct Item gItems[] = .price = 100, .description = sHeartScaleDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_070] = @@ -1477,9 +1377,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_071] = @@ -1489,9 +1388,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_072] = @@ -1501,9 +1399,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_073] = @@ -1513,9 +1410,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_074] = @@ -1525,9 +1421,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_075] = @@ -1537,9 +1432,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_076] = @@ -1549,9 +1443,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_077] = @@ -1561,9 +1454,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_078] = @@ -1573,9 +1465,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Mail @@ -1586,9 +1477,9 @@ const struct Item gItems[] = .price = 50, .description = sOrangeMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 0, + .secondaryId = ITEM_TO_MAIL(ITEM_ORANGE_MAIL), }, [ITEM_HARBOR_MAIL] = @@ -1598,9 +1489,9 @@ const struct Item gItems[] = .price = 50, .description = sHarborMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 1, + .secondaryId = ITEM_TO_MAIL(ITEM_HARBOR_MAIL), }, [ITEM_GLITTER_MAIL] = @@ -1610,9 +1501,9 @@ const struct Item gItems[] = .price = 50, .description = sGlitterMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 2, + .secondaryId = ITEM_TO_MAIL(ITEM_GLITTER_MAIL), }, [ITEM_MECH_MAIL] = @@ -1622,9 +1513,9 @@ const struct Item gItems[] = .price = 50, .description = sMechMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 3, + .secondaryId = ITEM_TO_MAIL(ITEM_MECH_MAIL), }, [ITEM_WOOD_MAIL] = @@ -1634,9 +1525,9 @@ const struct Item gItems[] = .price = 50, .description = sWoodMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 4, + .secondaryId = ITEM_TO_MAIL(ITEM_WOOD_MAIL), }, [ITEM_WAVE_MAIL] = @@ -1646,9 +1537,9 @@ const struct Item gItems[] = .price = 50, .description = sWaveMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 5, + .secondaryId = ITEM_TO_MAIL(ITEM_WAVE_MAIL), }, [ITEM_BEAD_MAIL] = @@ -1658,9 +1549,9 @@ const struct Item gItems[] = .price = 50, .description = sBeadMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 6, + .secondaryId = ITEM_TO_MAIL(ITEM_BEAD_MAIL), }, [ITEM_SHADOW_MAIL] = @@ -1670,9 +1561,9 @@ const struct Item gItems[] = .price = 50, .description = sShadowMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 7, + .secondaryId = ITEM_TO_MAIL(ITEM_SHADOW_MAIL), }, [ITEM_TROPIC_MAIL] = @@ -1682,9 +1573,9 @@ const struct Item gItems[] = .price = 50, .description = sTropicMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 8, + .secondaryId = ITEM_TO_MAIL(ITEM_TROPIC_MAIL), }, [ITEM_DREAM_MAIL] = @@ -1694,9 +1585,9 @@ const struct Item gItems[] = .price = 50, .description = sDreamMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 9, + .secondaryId = ITEM_TO_MAIL(ITEM_DREAM_MAIL), }, [ITEM_FAB_MAIL] = @@ -1706,9 +1597,9 @@ const struct Item gItems[] = .price = 50, .description = sFabMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 10, + .secondaryId = ITEM_TO_MAIL(ITEM_FAB_MAIL), }, [ITEM_RETRO_MAIL] = @@ -1718,9 +1609,9 @@ const struct Item gItems[] = .price = 0, .description = sRetroMailDesc, .pocket = POCKET_ITEMS, - .type = 0, + .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, - .secondaryId = 11, + .secondaryId = ITEM_TO_MAIL(ITEM_RETRO_MAIL), }, // Berries @@ -1733,11 +1624,10 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CURE_PAR, .description = sCheriBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_CHESTO_BERRY] = @@ -1748,11 +1638,10 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CURE_SLP, .description = sChestoBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_PECHA_BERRY] = @@ -1763,11 +1652,10 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CURE_PSN, .description = sPechaBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_RAWST_BERRY] = @@ -1778,11 +1666,10 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CURE_BRN, .description = sRawstBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_ASPEAR_BERRY] = @@ -1793,11 +1680,10 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CURE_FRZ, .description = sAspearBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_LEPPA_BERRY] = @@ -1809,11 +1695,10 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sLeppaBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_PPRecovery, - .secondaryId = 0, }, [ITEM_ORAN_BERRY] = @@ -1825,11 +1710,10 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sOranBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_PERSIM_BERRY] = @@ -1840,11 +1724,10 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CURE_CONFUSION, .description = sPersimBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_LUM_BERRY] = @@ -1855,11 +1738,10 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CURE_STATUS, .description = sLumBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_SITRUS_BERRY] = @@ -1871,11 +1753,10 @@ const struct Item gItems[] = .holdEffectParam = 30, .description = sSitrusBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_Medicine, - .secondaryId = 0, }, [ITEM_FIGY_BERRY] = @@ -1887,9 +1768,8 @@ const struct Item gItems[] = .holdEffectParam = 8, .description = sFigyBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_WIKI_BERRY] = @@ -1901,9 +1781,8 @@ const struct Item gItems[] = .holdEffectParam = 8, .description = sWikiBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_MAGO_BERRY] = @@ -1915,9 +1794,8 @@ const struct Item gItems[] = .holdEffectParam = 8, .description = sMagoBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_AGUAV_BERRY] = @@ -1929,9 +1807,8 @@ const struct Item gItems[] = .holdEffectParam = 8, .description = sAguavBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_IAPAPA_BERRY] = @@ -1943,9 +1820,8 @@ const struct Item gItems[] = .holdEffectParam = 8, .description = sIapapaBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_RAZZ_BERRY] = @@ -1955,9 +1831,8 @@ const struct Item gItems[] = .price = 20, .description = sRazzBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BLUK_BERRY] = @@ -1967,9 +1842,8 @@ const struct Item gItems[] = .price = 20, .description = sBlukBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_NANAB_BERRY] = @@ -1979,9 +1853,8 @@ const struct Item gItems[] = .price = 20, .description = sNanabBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_WEPEAR_BERRY] = @@ -1991,9 +1864,8 @@ const struct Item gItems[] = .price = 20, .description = sWepearBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_PINAP_BERRY] = @@ -2003,9 +1875,8 @@ const struct Item gItems[] = .price = 20, .description = sPinapBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_POMEG_BERRY] = @@ -2015,9 +1886,8 @@ const struct Item gItems[] = .price = 20, .description = sPomegBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, - .secondaryId = 0, }, [ITEM_KELPSY_BERRY] = @@ -2027,9 +1897,8 @@ const struct Item gItems[] = .price = 20, .description = sKelpsyBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, - .secondaryId = 0, }, [ITEM_QUALOT_BERRY] = @@ -2039,9 +1908,8 @@ const struct Item gItems[] = .price = 20, .description = sQualotBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, - .secondaryId = 0, }, [ITEM_HONDEW_BERRY] = @@ -2051,9 +1919,8 @@ const struct Item gItems[] = .price = 20, .description = sHondewBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, - .secondaryId = 0, }, [ITEM_GREPA_BERRY] = @@ -2063,9 +1930,8 @@ const struct Item gItems[] = .price = 20, .description = sGrepaBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, - .secondaryId = 0, }, [ITEM_TAMATO_BERRY] = @@ -2075,9 +1941,8 @@ const struct Item gItems[] = .price = 20, .description = sTamatoBerryDesc, .pocket = POCKET_BERRIES, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, - .secondaryId = 0, }, [ITEM_CORNN_BERRY] = @@ -2087,9 +1952,8 @@ const struct Item gItems[] = .price = 20, .description = sCornnBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_MAGOST_BERRY] = @@ -2099,9 +1963,8 @@ const struct Item gItems[] = .price = 20, .description = sMagostBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_RABUTA_BERRY] = @@ -2111,9 +1974,8 @@ const struct Item gItems[] = .price = 20, .description = sRabutaBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_NOMEL_BERRY] = @@ -2123,9 +1985,8 @@ const struct Item gItems[] = .price = 20, .description = sNomelBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SPELON_BERRY] = @@ -2135,9 +1996,8 @@ const struct Item gItems[] = .price = 20, .description = sSpelonBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_PAMTRE_BERRY] = @@ -2147,9 +2007,8 @@ const struct Item gItems[] = .price = 20, .description = sPamtreBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_WATMEL_BERRY] = @@ -2159,9 +2018,8 @@ const struct Item gItems[] = .price = 20, .description = sWatmelBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_DURIN_BERRY] = @@ -2171,9 +2029,8 @@ const struct Item gItems[] = .price = 20, .description = sDurinBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BELUE_BERRY] = @@ -2183,9 +2040,8 @@ const struct Item gItems[] = .price = 20, .description = sBelueBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_LIECHI_BERRY] = @@ -2197,9 +2053,8 @@ const struct Item gItems[] = .holdEffectParam = 4, .description = sLiechiBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_GANLON_BERRY] = @@ -2211,9 +2066,8 @@ const struct Item gItems[] = .holdEffectParam = 4, .description = sGanlonBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SALAC_BERRY] = @@ -2225,9 +2079,8 @@ const struct Item gItems[] = .holdEffectParam = 4, .description = sSalacBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_PETAYA_BERRY] = @@ -2239,9 +2092,8 @@ const struct Item gItems[] = .holdEffectParam = 4, .description = sPetayaBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_APICOT_BERRY] = @@ -2253,9 +2105,8 @@ const struct Item gItems[] = .holdEffectParam = 4, .description = sApicotBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_LANSAT_BERRY] = @@ -2267,9 +2118,8 @@ const struct Item gItems[] = .holdEffectParam = 4, .description = sLansatBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_STARF_BERRY] = @@ -2281,9 +2131,8 @@ const struct Item gItems[] = .holdEffectParam = 4, .description = sStarfBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_ENIGMA_BERRY] = @@ -2293,47 +2142,43 @@ const struct Item gItems[] = .price = 20, .description = sEnigmaBerryDesc, .pocket = POCKET_BERRIES, - .type = 4, + .type = ITEM_USE_BAG_MENU, // Type handled by ItemUseOutOfBattle_EnigmaBerry .fieldUseFunc = ItemUseOutOfBattle_EnigmaBerry, - .battleUsage = 1, + .battleUsage = ITEM_B_USE_MEDICINE, .battleUseFunc = ItemUseInBattle_EnigmaBerry, - .secondaryId = 0, }, - [ITEM_0B0] = + [ITEM_UNUSED_BERRY_1] = { .name = _("????????"), .itemId = ITEM_NONE, .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, - [ITEM_0B1] = + [ITEM_UNUSED_BERRY_2] = { .name = _("????????"), .itemId = ITEM_NONE, .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, - [ITEM_0B2] = + [ITEM_UNUSED_BERRY_3] = { .name = _("????????"), .itemId = ITEM_NONE, .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Hold items @@ -2347,9 +2192,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sBrightPowderDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_WHITE_HERB] = @@ -2360,9 +2204,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_RESTORE_STATS, .description = sWhiteHerbDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_MACHO_BRACE] = @@ -2373,9 +2216,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_MACHO_BRACE, .description = sMachoBraceDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_EXP_SHARE] = @@ -2386,9 +2228,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_EXP_SHARE, .description = sExpShareDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_QUICK_CLAW] = @@ -2400,9 +2241,8 @@ const struct Item gItems[] = .holdEffectParam = 20, .description = sQuickClawDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SOOTHE_BELL] = @@ -2410,12 +2250,11 @@ const struct Item gItems[] = .name = _("SOOTHE BELL"), .itemId = ITEM_SOOTHE_BELL, .price = 100, - .holdEffect = HOLD_EFFECT_HAPPINESS_UP, + .holdEffect = HOLD_EFFECT_FRIENDSHIP_UP, .description = sSootheBellDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_MENTAL_HERB] = @@ -2426,9 +2265,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CURE_ATTRACT, .description = sMentalHerbDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_CHOICE_BAND] = @@ -2439,9 +2277,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CHOICE_BAND, .description = sChoiceBandDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_KINGS_ROCK] = @@ -2453,9 +2290,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sKingsRockDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SILVER_POWDER] = @@ -2467,9 +2303,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sSilverPowderDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_AMULET_COIN] = @@ -2481,9 +2316,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sAmuletCoinDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_CLEANSE_TAG] = @@ -2494,9 +2328,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_REPEL, .description = sCleanseTagDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SOUL_DEW] = @@ -2507,9 +2340,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_SOUL_DEW, .description = sSoulDewDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_DEEP_SEA_TOOTH] = @@ -2520,9 +2352,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_DEEP_SEA_TOOTH, .description = sDeepSeaToothDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_DEEP_SEA_SCALE] = @@ -2533,9 +2364,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_DEEP_SEA_SCALE, .description = sDeepSeaScaleDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SMOKE_BALL] = @@ -2546,9 +2376,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_CAN_ALWAYS_RUN, .description = sSmokeBallDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_EVERSTONE] = @@ -2559,9 +2388,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_PREVENT_EVOLVE, .description = sEverstoneDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_FOCUS_BAND] = @@ -2573,9 +2401,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sFocusBandDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_LUCKY_EGG] = @@ -2586,9 +2413,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_LUCKY_EGG, .description = sLuckyEggDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SCOPE_LENS] = @@ -2599,9 +2425,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_SCOPE_LENS, .description = sScopeLensDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_METAL_COAT] = @@ -2613,9 +2438,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sMetalCoatDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_LEFTOVERS] = @@ -2627,9 +2451,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sLeftoversDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_DRAGON_SCALE] = @@ -2641,9 +2464,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sDragonScaleDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_LIGHT_BALL] = @@ -2654,9 +2476,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_LIGHT_BALL, .description = sLightBallDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SOFT_SAND] = @@ -2668,9 +2489,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sSoftSandDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_HARD_STONE] = @@ -2682,9 +2502,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sHardStoneDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_MIRACLE_SEED] = @@ -2696,9 +2515,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sMiracleSeedDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BLACK_GLASSES] = @@ -2710,9 +2528,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sBlackGlassesDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BLACK_BELT] = @@ -2724,9 +2541,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sBlackBeltDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_MAGNET] = @@ -2738,9 +2554,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sMagnetDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_MYSTIC_WATER] = @@ -2752,9 +2567,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sMysticWaterDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SHARP_BEAK] = @@ -2766,9 +2580,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sSharpBeakDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_POISON_BARB] = @@ -2780,9 +2593,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sPoisonBarbDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_NEVER_MELT_ICE] = @@ -2794,9 +2606,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sNeverMeltIceDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SPELL_TAG] = @@ -2808,9 +2619,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sSpellTagDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_TWISTED_SPOON] = @@ -2822,9 +2632,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sTwistedSpoonDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_CHARCOAL] = @@ -2836,9 +2645,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sCharcoalDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_DRAGON_FANG] = @@ -2850,9 +2658,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sDragonFangDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SILK_SCARF] = @@ -2864,9 +2671,8 @@ const struct Item gItems[] = .holdEffectParam = 10, .description = sSilkScarfDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_UP_GRADE] = @@ -2877,9 +2683,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_UP_GRADE, .description = sUpGradeDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SHELL_BELL] = @@ -2891,9 +2696,8 @@ const struct Item gItems[] = .holdEffectParam = 8, .description = sShellBellDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SEA_INCENSE] = @@ -2905,9 +2709,8 @@ const struct Item gItems[] = .holdEffectParam = 5, .description = sSeaIncenseDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_LAX_INCENSE] = @@ -2919,9 +2722,8 @@ const struct Item gItems[] = .holdEffectParam = 5, .description = sLaxIncenseDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_LUCKY_PUNCH] = @@ -2932,9 +2734,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_LUCKY_PUNCH, .description = sLuckyPunchDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_METAL_POWDER] = @@ -2945,9 +2746,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_METAL_POWDER, .description = sMetalPowderDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_THICK_CLUB] = @@ -2958,9 +2758,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_THICK_CLUB, .description = sThickClubDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_STICK] = @@ -2971,9 +2770,8 @@ const struct Item gItems[] = .holdEffect = HOLD_EFFECT_STICK, .description = sStickDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0E2] = @@ -2983,9 +2781,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0E3] = @@ -2995,9 +2792,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0E4] = @@ -3007,9 +2803,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0E5] = @@ -3019,9 +2814,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0E6] = @@ -3031,9 +2825,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0E7] = @@ -3043,9 +2836,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0E8] = @@ -3055,9 +2847,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0E9] = @@ -3067,9 +2858,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0EA] = @@ -3079,9 +2869,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0EB] = @@ -3091,9 +2880,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0EC] = @@ -3103,9 +2891,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0ED] = @@ -3115,9 +2902,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0EE] = @@ -3127,9 +2913,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0EF] = @@ -3139,9 +2924,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F0] = @@ -3151,9 +2935,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F1] = @@ -3163,9 +2946,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F2] = @@ -3175,9 +2957,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F3] = @@ -3187,9 +2968,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F4] = @@ -3199,9 +2979,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F5] = @@ -3211,9 +2990,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F6] = @@ -3223,9 +3001,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F7] = @@ -3235,9 +3012,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F8] = @@ -3247,9 +3023,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0F9] = @@ -3259,9 +3034,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0FA] = @@ -3271,9 +3045,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0FB] = @@ -3283,9 +3056,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0FC] = @@ -3295,9 +3067,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_0FD] = @@ -3307,9 +3078,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_RED_SCARF] = @@ -3319,9 +3089,8 @@ const struct Item gItems[] = .price = 100, .description = sRedScarfDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BLUE_SCARF] = @@ -3331,9 +3100,8 @@ const struct Item gItems[] = .price = 100, .description = sBlueScarfDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_PINK_SCARF] = @@ -3343,9 +3111,8 @@ const struct Item gItems[] = .price = 100, .description = sPinkScarfDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_GREEN_SCARF] = @@ -3355,9 +3122,8 @@ const struct Item gItems[] = .price = 100, .description = sGreenScarfDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_YELLOW_SCARF] = @@ -3367,9 +3133,8 @@ const struct Item gItems[] = .price = 100, .description = sYellowScarfDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Key items @@ -3383,9 +3148,9 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Bike, - .secondaryId = 0, + .secondaryId = MACH_BIKE, }, [ITEM_COIN_CASE] = @@ -3396,9 +3161,8 @@ const struct Item gItems[] = .description = sCoinCaseDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CoinCase, - .secondaryId = 0, }, [ITEM_ITEMFINDER] = @@ -3410,9 +3174,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Itemfinder, - .secondaryId = 0, }, [ITEM_OLD_ROD] = @@ -3424,7 +3187,7 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Rod, .secondaryId = OLD_ROD, }, @@ -3438,7 +3201,7 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Rod, .secondaryId = GOOD_ROD, }, @@ -3452,7 +3215,7 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Rod, .secondaryId = SUPER_ROD, }, @@ -3465,9 +3228,8 @@ const struct Item gItems[] = .description = sSSTicketDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_CONTEST_PASS] = @@ -3478,9 +3240,8 @@ const struct Item gItems[] = .description = sContestPassDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_10B] = @@ -3490,9 +3251,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_WAILMER_PAIL] = @@ -3503,9 +3263,8 @@ const struct Item gItems[] = .description = sWailmerPailDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_WailmerPail, - .secondaryId = 0, }, [ITEM_DEVON_GOODS] = @@ -3516,9 +3275,8 @@ const struct Item gItems[] = .description = sDevonGoodsDesc, .importance = 2, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SOOT_SACK] = @@ -3529,9 +3287,8 @@ const struct Item gItems[] = .description = sSootSackDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BASEMENT_KEY] = @@ -3542,9 +3299,8 @@ const struct Item gItems[] = .description = sBasementKeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_ACRO_BIKE] = @@ -3556,9 +3312,9 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Bike, - .secondaryId = 1, + .secondaryId = ACRO_BIKE, }, [ITEM_POKEBLOCK_CASE] = @@ -3570,9 +3326,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 3, + .type = ITEM_USE_PBLOCK_CASE, .fieldUseFunc = ItemUseOutOfBattle_PokeblockCase, - .secondaryId = 0, }, [ITEM_LETTER] = @@ -3583,9 +3338,8 @@ const struct Item gItems[] = .description = sLetterDesc, .importance = 2, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_EON_TICKET] = @@ -3596,7 +3350,7 @@ const struct Item gItems[] = .description = sEonTicketDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, .secondaryId = 1, }, @@ -3609,9 +3363,8 @@ const struct Item gItems[] = .description = sRedOrbDesc, .importance = 2, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BLUE_ORB] = @@ -3622,9 +3375,8 @@ const struct Item gItems[] = .description = sBlueOrbDesc, .importance = 2, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SCANNER] = @@ -3635,9 +3387,8 @@ const struct Item gItems[] = .description = sScannerDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_GO_GOGGLES] = @@ -3648,9 +3399,8 @@ const struct Item gItems[] = .description = sGoGogglesDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_METEORITE] = @@ -3661,9 +3411,8 @@ const struct Item gItems[] = .description = sMeteoriteDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_ROOM_1_KEY] = @@ -3674,9 +3423,8 @@ const struct Item gItems[] = .description = sRoom1KeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_ROOM_2_KEY] = @@ -3687,9 +3435,8 @@ const struct Item gItems[] = .description = sRoom2KeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_ROOM_4_KEY] = @@ -3700,9 +3447,8 @@ const struct Item gItems[] = .description = sRoom4KeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_ROOM_6_KEY] = @@ -3713,9 +3459,8 @@ const struct Item gItems[] = .description = sRoom6KeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_STORAGE_KEY] = @@ -3726,9 +3471,8 @@ const struct Item gItems[] = .description = sStorageKeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_ROOT_FOSSIL] = @@ -3739,9 +3483,8 @@ const struct Item gItems[] = .description = sRootFossilDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_CLAW_FOSSIL] = @@ -3752,9 +3495,8 @@ const struct Item gItems[] = .description = sClawFossilDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_DEVON_SCOPE] = @@ -3765,9 +3507,8 @@ const struct Item gItems[] = .description = sDevonScopeDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // TMs/HMs @@ -3779,9 +3520,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM01Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM02_DRAGON_CLAW] = @@ -3791,9 +3531,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM02Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM03_WATER_PULSE] = @@ -3803,9 +3542,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM03Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM04_CALM_MIND] = @@ -3815,9 +3553,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM04Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM05_ROAR] = @@ -3827,9 +3564,8 @@ const struct Item gItems[] = .price = 1000, .description = sTM05Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM06_TOXIC] = @@ -3839,9 +3575,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM06Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM07_HAIL] = @@ -3851,9 +3586,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM07Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM08_BULK_UP] = @@ -3863,9 +3597,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM08Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM09_BULLET_SEED] = @@ -3875,9 +3608,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM09Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM10_HIDDEN_POWER] = @@ -3887,9 +3619,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM10Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM11_SUNNY_DAY] = @@ -3899,9 +3630,8 @@ const struct Item gItems[] = .price = 2000, .description = sTM11Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM12_TAUNT] = @@ -3911,9 +3641,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM12Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM13_ICE_BEAM] = @@ -3923,9 +3652,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM13Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM14_BLIZZARD] = @@ -3935,9 +3663,8 @@ const struct Item gItems[] = .price = 5500, .description = sTM14Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM15_HYPER_BEAM] = @@ -3947,9 +3674,8 @@ const struct Item gItems[] = .price = 7500, .description = sTM15Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM16_LIGHT_SCREEN] = @@ -3959,9 +3685,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM16Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM17_PROTECT] = @@ -3971,9 +3696,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM17Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM18_RAIN_DANCE] = @@ -3983,9 +3707,8 @@ const struct Item gItems[] = .price = 2000, .description = sTM18Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM19_GIGA_DRAIN] = @@ -3995,9 +3718,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM19Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM20_SAFEGUARD] = @@ -4007,9 +3729,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM20Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM21_FRUSTRATION] = @@ -4019,9 +3740,8 @@ const struct Item gItems[] = .price = 1000, .description = sTM21Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM22_SOLARBEAM] = @@ -4031,9 +3751,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM22Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM23_IRON_TAIL] = @@ -4043,9 +3762,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM23Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM24_THUNDERBOLT] = @@ -4055,9 +3773,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM24Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM25_THUNDER] = @@ -4067,9 +3784,8 @@ const struct Item gItems[] = .price = 5500, .description = sTM25Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM26_EARTHQUAKE] = @@ -4079,9 +3795,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM26Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM27_RETURN] = @@ -4091,9 +3806,8 @@ const struct Item gItems[] = .price = 1000, .description = sTM27Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM28_DIG] = @@ -4103,9 +3817,8 @@ const struct Item gItems[] = .price = 2000, .description = sTM28Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM29_PSYCHIC] = @@ -4115,9 +3828,8 @@ const struct Item gItems[] = .price = 2000, .description = sTM29Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM30_SHADOW_BALL] = @@ -4127,9 +3839,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM30Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM31_BRICK_BREAK] = @@ -4139,9 +3850,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM31Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM32_DOUBLE_TEAM] = @@ -4151,9 +3861,8 @@ const struct Item gItems[] = .price = 2000, .description = sTM32Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM33_REFLECT] = @@ -4163,9 +3872,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM33Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM34_SHOCK_WAVE] = @@ -4175,9 +3883,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM34Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM35_FLAMETHROWER] = @@ -4187,9 +3894,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM35Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM36_SLUDGE_BOMB] = @@ -4199,9 +3905,8 @@ const struct Item gItems[] = .price = 1000, .description = sTM36Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM37_SANDSTORM] = @@ -4211,9 +3916,8 @@ const struct Item gItems[] = .price = 2000, .description = sTM37Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM38_FIRE_BLAST] = @@ -4223,9 +3927,8 @@ const struct Item gItems[] = .price = 5500, .description = sTM38Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM39_ROCK_TOMB] = @@ -4235,9 +3938,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM39Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM40_AERIAL_ACE] = @@ -4247,9 +3949,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM40Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM41_TORMENT] = @@ -4259,9 +3960,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM41Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM42_FACADE] = @@ -4271,9 +3971,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM42Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM43_SECRET_POWER] = @@ -4283,9 +3982,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM43Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM44_REST] = @@ -4295,9 +3993,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM44Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM45_ATTRACT] = @@ -4307,9 +4004,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM45Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM46_THIEF] = @@ -4319,9 +4015,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM46Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM47_STEEL_WING] = @@ -4331,9 +4026,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM47Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM48_SKILL_SWAP] = @@ -4343,9 +4037,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM48Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM49_SNATCH] = @@ -4355,9 +4048,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM49Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_TM50_OVERHEAT] = @@ -4367,9 +4059,8 @@ const struct Item gItems[] = .price = 3000, .description = sTM50Desc, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_HM01_CUT] = @@ -4380,9 +4071,8 @@ const struct Item gItems[] = .description = sHM01Desc, .importance = 1, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_HM02_FLY] = @@ -4393,9 +4083,8 @@ const struct Item gItems[] = .description = sHM02Desc, .importance = 1, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_HM03_SURF] = @@ -4406,9 +4095,8 @@ const struct Item gItems[] = .description = sHM03Desc, .importance = 1, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_HM04_STRENGTH] = @@ -4419,9 +4107,8 @@ const struct Item gItems[] = .description = sHM04Desc, .importance = 1, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_HM05_FLASH] = @@ -4432,9 +4119,8 @@ const struct Item gItems[] = .description = sHM05Desc, .importance = 1, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_HM06_ROCK_SMASH] = @@ -4445,9 +4131,8 @@ const struct Item gItems[] = .description = sHM06Desc, .importance = 1, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_HM07_WATERFALL] = @@ -4458,9 +4143,8 @@ const struct Item gItems[] = .description = sHM07Desc, .importance = 1, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_HM08_DIVE] = @@ -4471,9 +4155,8 @@ const struct Item gItems[] = .description = sHM08Desc, .importance = 1, .pocket = POCKET_TM_HM, - .type = 1, + .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .secondaryId = 0, }, [ITEM_15B] = @@ -4483,9 +4166,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_15C] = @@ -4495,9 +4177,8 @@ const struct Item gItems[] = .price = 0, .description = sDummyDesc, .pocket = POCKET_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // FireRed/LeafGreen key items @@ -4510,9 +4191,8 @@ const struct Item gItems[] = .description = sOaksParcelDesc, .importance = 2, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_POKE_FLUTE] = @@ -4523,9 +4203,8 @@ const struct Item gItems[] = .description = sPokeFluteDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SECRET_KEY] = @@ -4536,9 +4215,8 @@ const struct Item gItems[] = .description = sSecretKeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BIKE_VOUCHER] = @@ -4549,9 +4227,8 @@ const struct Item gItems[] = .description = sBikeVoucherDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_GOLD_TEETH] = @@ -4562,9 +4239,8 @@ const struct Item gItems[] = .description = sGoldTeethDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_OLD_AMBER] = @@ -4575,9 +4251,8 @@ const struct Item gItems[] = .description = sOldAmberDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_CARD_KEY] = @@ -4588,9 +4263,8 @@ const struct Item gItems[] = .description = sCardKeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_LIFT_KEY] = @@ -4601,9 +4275,8 @@ const struct Item gItems[] = .description = sLiftKeyDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_HELIX_FOSSIL] = @@ -4614,9 +4287,8 @@ const struct Item gItems[] = .description = sHelixFossilDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_DOME_FOSSIL] = @@ -4627,9 +4299,8 @@ const struct Item gItems[] = .description = sDomeFossilDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SILPH_SCOPE] = @@ -4640,9 +4311,8 @@ const struct Item gItems[] = .description = sSilphScopeDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BICYCLE] = @@ -4654,9 +4324,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_TOWN_MAP] = @@ -4668,9 +4337,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_VS_SEEKER] = @@ -4682,9 +4350,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_FAME_CHECKER] = @@ -4696,9 +4363,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_TM_CASE] = @@ -4710,9 +4376,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_BERRY_POUCH] = @@ -4724,9 +4389,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_TEACHY_TV] = @@ -4738,9 +4402,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 2, + .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_TRI_PASS] = @@ -4752,9 +4415,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_RAINBOW_PASS] = @@ -4766,9 +4428,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_TEA] = @@ -4780,9 +4441,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_MYSTIC_TICKET] = @@ -4794,9 +4454,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_AURORA_TICKET] = @@ -4808,9 +4467,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_POWDER_JAR] = @@ -4822,9 +4480,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_PowderJar, - .secondaryId = 0, }, [ITEM_RUBY] = @@ -4836,9 +4493,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_SAPPHIRE] = @@ -4850,9 +4506,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, // Emerald-specific key items @@ -4866,9 +4521,8 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, [ITEM_OLD_SEA_MAP] = @@ -4880,8 +4534,7 @@ const struct Item gItems[] = .importance = 1, .unk19 = 1, .pocket = POCKET_KEY_ITEMS, - .type = 4, + .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, - .secondaryId = 0, }, }; diff --git a/src/data/lilycove_lady.h b/src/data/lilycove_lady.h index 37bae7e951..818a5fd5f3 100644 --- a/src/data/lilycove_lady.h +++ b/src/data/lilycove_lady.h @@ -53,7 +53,7 @@ static const u16 sQuizLadyQuestion3[] = EC_WORD_POKEMON, EC_WORD_EVOLVE, EC_WORD_QUES, - 0xFFFF, + EC_EMPTY_WORD, EC_WORD_LEVEL, EC_WORD_INSOMNIA, EC_WORD_CUTE_CHARM @@ -92,7 +92,7 @@ static const u16 sQuizLadyQuestion6[] = EC_WORD_STOP, EC_MOVE2(CONFUSION), EC_WORD_QUES, - 0xFFFF, + EC_EMPTY_WORD, EC_WORD_ILLUMINATE, EC_WORD_OWN_TEMPO, EC_WORD_SWIFT_SWIM @@ -118,7 +118,7 @@ static const u16 sQuizLadyQuestion8[] = EC_MOVE2(BLOCK), EC_WORD_ESCAPE, EC_WORD_QUES, - 0xFFFF, + EC_EMPTY_WORD, EC_WORD_RUN_AWAY, EC_WORD_SHADOW_TAG, EC_WORD_WONDER_GUARD @@ -131,7 +131,7 @@ static const u16 sQuizLadyQuestion9[] = EC_WORD_STOP, EC_WORD_POISON, EC_WORD_QUES, - 0xFFFF, + EC_EMPTY_WORD, EC_WORD_GUTS, EC_WORD_IMMUNITY, EC_WORD_SHED_SKIN @@ -144,7 +144,7 @@ static const u16 sQuizLadyQuestion10[] = EC_WORD_WITH, EC_WORD_CENTER, EC_WORD_QUES, - 0xFFFF, + EC_EMPTY_WORD, EC_WORD_POKEDEX, EC_WORD_POKEMON, EC_WORD_POKENAV @@ -157,7 +157,7 @@ static const u16 sQuizLadyQuestion11[] = EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_QUES, - 0xFFFF, + EC_EMPTY_WORD, EC_WORD_PC, EC_WORD_DEPT_STORE, EC_WORD_TELEVISION @@ -199,7 +199,7 @@ static const u16 sQuizLadyQuestion14[] = EC_WORD_QUES, EC_WORD_ICE, EC_WORD_GROUND, - 0xFFFF + EC_EMPTY_WORD }; static const u16 sQuizLadyQuestion15[] = @@ -212,7 +212,7 @@ static const u16 sQuizLadyQuestion15[] = EC_WORD_QUES, EC_WORD_PSYCHIC, EC_WORD_FIGHTING, - 0xFFFF + EC_EMPTY_WORD }; static const u16 sQuizLadyQuestion16[] = @@ -225,7 +225,7 @@ static const u16 sQuizLadyQuestion16[] = EC_WORD_QUES, EC_WORD_NORMAL, EC_WORD_DARK, - 0xFFFF + EC_EMPTY_WORD }; static const u16 *const sQuizLadyQuizQuestions[] = diff --git a/src/data/object_events/berry_tree_graphics_tables.h b/src/data/object_events/berry_tree_graphics_tables.h index d558b583f8..fe41bda3b1 100755 --- a/src/data/object_events/berry_tree_graphics_tables.h +++ b/src/data/object_events/berry_tree_graphics_tables.h @@ -1,4 +1,4 @@ -const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[] = { +static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -12,7 +12,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_KelpsyBerryTree[] = { +static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -26,7 +26,7 @@ const struct SpriteFrameImage gObjectEventPicTable_KelpsyBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2}; -const struct SpriteFrameImage gObjectEventPicTable_WepearBerryTree[] = { +static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -40,7 +40,7 @@ const struct SpriteFrameImage gObjectEventPicTable_WepearBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2}; -const struct SpriteFrameImage gObjectEventPicTable_IapapaBerryTree[] = { +static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -54,7 +54,7 @@ const struct SpriteFrameImage gObjectEventPicTable_IapapaBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_CheriBerryTree[] = { +static const struct SpriteFrameImage sPicTable_CheriBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -68,7 +68,7 @@ const struct SpriteFrameImage gObjectEventPicTable_CheriBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_FigyBerryTree[] = { +static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -82,7 +82,7 @@ const struct SpriteFrameImage gObjectEventPicTable_FigyBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_MagoBerryTree[] = { +static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -96,7 +96,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MagoBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_LumBerryTree[] = { +static const struct SpriteFrameImage sPicTable_LumBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -110,7 +110,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LumBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_RazzBerryTree[] = { +static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -124,7 +124,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RazzBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_GrepaBerryTree[] = { +static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -138,7 +138,7 @@ const struct SpriteFrameImage gObjectEventPicTable_GrepaBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_RabutaBerryTree[] = { +static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -152,7 +152,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RabutaBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_NomelBerryTree[] = { +static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -166,7 +166,7 @@ const struct SpriteFrameImage gObjectEventPicTable_NomelBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_LeppaBerryTree[] = { +static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -180,7 +180,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LeppaBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_LiechiBerryTree[] = { +static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -194,7 +194,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LiechiBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_HondewBerryTree[] = { +static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -208,7 +208,7 @@ const struct SpriteFrameImage gObjectEventPicTable_HondewBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5}; -const struct SpriteFrameImage gObjectEventPicTable_AguavBerryTree[] = { +static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -222,7 +222,7 @@ const struct SpriteFrameImage gObjectEventPicTable_AguavBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_WikiBerryTree[] = { +static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -236,7 +236,7 @@ const struct SpriteFrameImage gObjectEventPicTable_WikiBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_PomegBerryTree[] = { +static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -250,7 +250,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PomegBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_RawstBerryTree[] = { +static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -264,7 +264,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RawstBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_SpelonBerryTree[] = { +static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -278,7 +278,7 @@ const struct SpriteFrameImage gObjectEventPicTable_SpelonBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_ChestoBerryTree[] = { +static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -292,7 +292,7 @@ const struct SpriteFrameImage gObjectEventPicTable_ChestoBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2}; -const struct SpriteFrameImage gObjectEventPicTable_OranBerryTree[] = { +static const struct SpriteFrameImage sPicTable_OranBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -306,7 +306,7 @@ const struct SpriteFrameImage gObjectEventPicTable_OranBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2}; -const struct SpriteFrameImage gObjectEventPicTable_PersimBerryTree[] = { +static const struct SpriteFrameImage sPicTable_PersimBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -320,7 +320,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PersimBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2}; -const struct SpriteFrameImage gObjectEventPicTable_SitrusBerryTree[] = { +static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -334,7 +334,7 @@ const struct SpriteFrameImage gObjectEventPicTable_SitrusBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_AspearBerryTree[] = { +static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -348,7 +348,7 @@ const struct SpriteFrameImage gObjectEventPicTable_AspearBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3}; -const struct SpriteFrameImage gObjectEventPicTable_PamtreBerryTree[] = { +static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -362,7 +362,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PamtreBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2}; -const struct SpriteFrameImage gObjectEventPicTable_CornnBerryTree[] = { +static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -376,7 +376,7 @@ const struct SpriteFrameImage gObjectEventPicTable_CornnBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2}; -const struct SpriteFrameImage gObjectEventPicTable_LansatBerryTree[] = { +static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -390,7 +390,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LansatBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2}; -const struct SpriteFrameImage gObjectEventPicTable_DurinBerryTree[] = { +static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -404,7 +404,7 @@ const struct SpriteFrameImage gObjectEventPicTable_DurinBerryTree[] = { const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4}; -const struct SpriteFrameImage gObjectEventPicTable_TamatoBerryTree[] = { +static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = { overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), @@ -423,49 +423,49 @@ const u8 gDeadBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_ const u8 gBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES}; const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = { - [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_CheriBerryTree, - [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_ChestoBerryTree, - [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PechaBerryTree, - [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RawstBerryTree, - [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_AspearBerryTree, - [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_LeppaBerryTree, - [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_OranBerryTree, - [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PersimBerryTree, - [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_LumBerryTree, - [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_SitrusBerryTree, - [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_FigyBerryTree, - [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_WikiBerryTree, - [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_MagoBerryTree, - [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_AguavBerryTree, - [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_IapapaBerryTree, - [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RazzBerryTree, - [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RazzBerryTree, - [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_MagoBerryTree, - [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_WepearBerryTree, - [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_IapapaBerryTree, - [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PomegBerryTree, - [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_KelpsyBerryTree, - [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_WepearBerryTree, - [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_HondewBerryTree, - [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_GrepaBerryTree, - [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_TamatoBerryTree, - [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_CornnBerryTree, - [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PomegBerryTree, - [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RabutaBerryTree, - [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_NomelBerryTree, - [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_SpelonBerryTree, - [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PamtreBerryTree, - [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RabutaBerryTree, - [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_DurinBerryTree, - [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_HondewBerryTree, - [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_LiechiBerryTree, - [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_HondewBerryTree, - [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_AguavBerryTree, - [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PomegBerryTree, - [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_GrepaBerryTree, - [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_LansatBerryTree, - [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_CornnBerryTree, - [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_DurinBerryTree, + [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = sPicTable_CheriBerryTree, + [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = sPicTable_ChestoBerryTree, + [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PechaBerryTree, + [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = sPicTable_RawstBerryTree, + [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = sPicTable_AspearBerryTree, + [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_LeppaBerryTree, + [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_OranBerryTree, + [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = sPicTable_PersimBerryTree, + [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = sPicTable_LumBerryTree, + [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = sPicTable_SitrusBerryTree, + [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = sPicTable_FigyBerryTree, + [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = sPicTable_WikiBerryTree, + [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = sPicTable_MagoBerryTree, + [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = sPicTable_AguavBerryTree, + [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_IapapaBerryTree, + [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree, + [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree, + [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = sPicTable_MagoBerryTree, + [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = sPicTable_WepearBerryTree, + [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = sPicTable_IapapaBerryTree, + [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree, + [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = sPicTable_KelpsyBerryTree, + [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = sPicTable_WepearBerryTree, + [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree, + [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree, + [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = sPicTable_TamatoBerryTree, + [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree, + [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree, + [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = sPicTable_RabutaBerryTree, + [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = sPicTable_NomelBerryTree, + [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = sPicTable_SpelonBerryTree, + [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = sPicTable_PamtreBerryTree, + [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = sPicTable_RabutaBerryTree, + [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree, + [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree, + [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = sPicTable_LiechiBerryTree, + [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree, + [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = sPicTable_AguavBerryTree, + [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree, + [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree, + [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = sPicTable_LansatBerryTree, + [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree, + [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree, }; const u8 *const gBerryTreePaletteSlotTablePointers[] = { @@ -559,7 +559,7 @@ const u8 *const gBerryTreeObjectEventGraphicsIdTablePointers[] = { [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable, [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable, // 3 unused berries. - [ITEM_0B0 - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable, - [ITEM_0B1 - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable, - [ITEM_0B2 - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable, + [ITEM_UNUSED_BERRY_1 - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable, + [ITEM_UNUSED_BERRY_2 - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable, + [ITEM_UNUSED_BERRY_3 - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable, }; diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h index 8cf7d1699f..4df07be0dd 100755 --- a/src/data/object_events/movement_action_func_tables.h +++ b/src/data/object_events/movement_action_func_tables.h @@ -252,7 +252,7 @@ u8 MovementAction_AcroEndWheelieMoveRight_Step0(struct ObjectEvent *, struct Spr u8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementAction_Levitate_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_StopLevitate_Step0(struct ObjectEvent *, struct Sprite *); -u8 MovementAction_DestroyExtraTaskIfAtTop_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_StopLevitateAtTop_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_Finish(struct ObjectEvent *, struct Sprite *); u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *, struct Sprite *); @@ -416,7 +416,7 @@ u8 (*const gMovementActionFuncs_WalkLeftAffine[])(struct ObjectEvent *, struct S u8 (*const gMovementActionFuncs_WalkRightAffine[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_Levitate[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_StopLevitate[])(struct ObjectEvent *, struct Sprite *); -u8 (*const gMovementActionFuncs_DestroyExtraTaskIfAtTop[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_StopLevitateAtTop[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_Figure8[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *); @@ -576,7 +576,7 @@ u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) [MOVEMENT_ACTION_WALK_RIGHT_AFFINE] = gMovementActionFuncs_WalkRightAffine, [MOVEMENT_ACTION_LEVITATE] = gMovementActionFuncs_Levitate, [MOVEMENT_ACTION_STOP_LEVITATE] = gMovementActionFuncs_StopLevitate, - [MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP] = gMovementActionFuncs_DestroyExtraTaskIfAtTop, + [MOVEMENT_ACTION_STOP_LEVITATE_AT_TOP] = gMovementActionFuncs_StopLevitateAtTop, [MOVEMENT_ACTION_FIGURE_8] = gMovementActionFuncs_Figure8, [MOVEMENT_ACTION_FLY_UP] = gMovementActionFuncs_FlyUp, [MOVEMENT_ACTION_FLY_DOWN] = gMovementActionFuncs_FlyDown, @@ -602,7 +602,7 @@ u8 (*const gMovementActionFuncs_FaceRight[])(struct ObjectEvent *, struct Sprite MovementAction_PauseSpriteAnim, }; -u8 (*const gUnknown_0850DEE8[])(u8) = { +static u8 (*const sDirectionAnimFuncsBySpeed[])(u8) = { GetMoveDirectionAnimNum, GetMoveDirectionFastAnimNum, GetMoveDirectionFastAnimNum, @@ -706,8 +706,8 @@ u8 (*const gMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct MovementAction_PauseSpriteAnim, }; -const s16 gUnknown_0850DFBC[] = {0, 1, 1}; -const s16 gUnknown_0850DFC2[] = {0, 0, 1}; +static const s16 sJumpInitDisplacements[] = {0, 1, 1}; +static const s16 sJumpDisplacements[] = {0, 0, 1}; u8 (*const gMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Down_Step0, @@ -1507,7 +1507,7 @@ u8 (*const gMovementActionFuncs_StopLevitate[])(struct ObjectEvent *, struct Spr MovementAction_Finish, }; -u8 (*const gMovementActionFuncs_DestroyExtraTaskIfAtTop[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_DestroyExtraTaskIfAtTop_Step0, +u8 (*const gMovementActionFuncs_StopLevitateAtTop[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_StopLevitateAtTop_Step0, MovementAction_Finish, }; diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h index 7d149a6284..f4890d6846 100755 --- a/src/data/object_events/movement_type_func_tables.h +++ b/src/data/object_events/movement_type_func_tables.h @@ -63,11 +63,11 @@ u8 (*const gMovementTypeFuncs_FaceDirection[])(struct ObjectEvent *, struct Spri }; u8 (*const gMovementTypeFuncs_BerryTreeGrowth[])(struct ObjectEvent *, struct Sprite *) = { - MovementType_BerryTreeGrowth_Step0, - MovementType_BerryTreeGrowth_Step1, - MovementType_BerryTreeGrowth_Step2, - MovementType_BerryTreeGrowth_Step3, - MovementType_BerryTreeGrowth_Step4, + MovementType_BerryTreeGrowth_Normal, + MovementType_BerryTreeGrowth_Move, + MovementType_BerryTreeGrowth_SparkleStart, + MovementType_BerryTreeGrowth_Sparkle, + MovementType_BerryTreeGrowth_SparkleEnd, }; u8 (*const gMovementTypeFuncs_FaceDownAndUp[])(struct ObjectEvent *, struct Sprite *) = { @@ -407,8 +407,8 @@ u8 (*const gMovementTypeFuncs_CopyPlayerInGrass[])(struct ObjectEvent *, struct MovementType_CopyPlayer_Step2, }; -u8 (*const gMovementTypeFuncs_Hidden[])(struct ObjectEvent *, struct Sprite *) = { - MovementType_Hidden_Step0, +u8 (*const gMovementTypeFuncs_Buried[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_Buried_Step0, }; u8 (*const gMovementTypeFuncs_WalkInPlace[])(struct ObjectEvent *, struct Sprite *) = { diff --git a/src/data/object_events/object_event_anims.h b/src/data/object_events/object_event_anims.h index b319c2845f..93f4022583 100755 --- a/src/data/object_events/object_event_anims.h +++ b/src/data/object_events/object_event_anims.h @@ -1,4 +1,4 @@ -const union AnimCmd gObjectEventImageAnim_StayStill[] = +static const union AnimCmd sAnim_StayStill[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(0, 8), @@ -7,31 +7,31 @@ const union AnimCmd gObjectEventImageAnim_StayStill[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpFaceSouth[] = +static const union AnimCmd sAnim_QuintyPlumpFaceSouth[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpFaceNorth[] = +static const union AnimCmd sAnim_QuintyPlumpFaceNorth[] = { ANIMCMD_FRAME(1, 16), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpFaceWest[] = +static const union AnimCmd sAnim_QuintyPlumpFaceWest[] = { ANIMCMD_FRAME(2, 16), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpFaceEast[] = +static const union AnimCmd sAnim_QuintyPlumpFaceEast[] = { ANIMCMD_FRAME(2, 16, .hFlip = TRUE), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoSouth[] = +static const union AnimCmd sAnim_QuintyPlumpGoSouth[] = { ANIMCMD_FRAME(3, 8), ANIMCMD_FRAME(0, 8), @@ -40,7 +40,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoNorth[] = +static const union AnimCmd sAnim_QuintyPlumpGoNorth[] = { ANIMCMD_FRAME(4, 8), ANIMCMD_FRAME(1, 8), @@ -49,7 +49,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoWest[] = +static const union AnimCmd sAnim_QuintyPlumpGoWest[] = { ANIMCMD_FRAME(5, 8), ANIMCMD_FRAME(2, 8), @@ -58,7 +58,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoEast[] = +static const union AnimCmd sAnim_QuintyPlumpGoEast[] = { ANIMCMD_FRAME(5, 8, .hFlip = TRUE), ANIMCMD_FRAME(2, 8, .hFlip = TRUE), @@ -67,7 +67,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastSouth[] = +static const union AnimCmd sAnim_QuintyPlumpGoFastSouth[] = { ANIMCMD_FRAME(3, 4), ANIMCMD_FRAME(0, 4), @@ -76,7 +76,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastNorth[] = +static const union AnimCmd sAnim_QuintyPlumpGoFastNorth[] = { ANIMCMD_FRAME(4, 4), ANIMCMD_FRAME(1, 4), @@ -85,7 +85,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastWest[] = +static const union AnimCmd sAnim_QuintyPlumpGoFastWest[] = { ANIMCMD_FRAME(5, 4), ANIMCMD_FRAME(2, 4), @@ -94,7 +94,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastEast[] = +static const union AnimCmd sAnim_QuintyPlumpGoFastEast[] = { ANIMCMD_FRAME(5, 4, .hFlip = TRUE), ANIMCMD_FRAME(2, 4, .hFlip = TRUE), @@ -103,7 +103,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFasterSouth[] = +static const union AnimCmd sAnim_QuintyPlumpGoFasterSouth[] = { ANIMCMD_FRAME(3, 2), ANIMCMD_FRAME(0, 2), @@ -112,7 +112,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFasterSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFasterNorth[] = +static const union AnimCmd sAnim_QuintyPlumpGoFasterNorth[] = { ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(1, 2), @@ -121,7 +121,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFasterNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFasterWest[] = +static const union AnimCmd sAnim_QuintyPlumpGoFasterWest[] = { ANIMCMD_FRAME(5, 2), ANIMCMD_FRAME(2, 2), @@ -130,7 +130,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFasterWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFasterEast[] = +static const union AnimCmd sAnim_QuintyPlumpGoFasterEast[] = { ANIMCMD_FRAME(5, 2, .hFlip = TRUE), ANIMCMD_FRAME(2, 2, .hFlip = TRUE), @@ -139,7 +139,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFasterEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastestSouth[] = +static const union AnimCmd sAnim_QuintyPlumpGoFastestSouth[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_FRAME(0, 1), @@ -148,7 +148,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastestSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastestNorth[] = +static const union AnimCmd sAnim_QuintyPlumpGoFastestNorth[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_FRAME(1, 1), @@ -157,7 +157,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastestNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastestWest[] = +static const union AnimCmd sAnim_QuintyPlumpGoFastestWest[] = { ANIMCMD_FRAME(5, 1), ANIMCMD_FRAME(2, 1), @@ -166,7 +166,7 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastestWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastestEast[] = +static const union AnimCmd sAnim_QuintyPlumpGoFastestEast[] = { ANIMCMD_FRAME(5, 1, .hFlip = TRUE), ANIMCMD_FRAME(2, 1, .hFlip = TRUE), @@ -175,31 +175,31 @@ const union AnimCmd gObjectEventImageAnim_QuintyPlumpGoFastestEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_FaceSouth[] = +static const union AnimCmd sAnim_FaceSouth[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_FaceNorth[] = +static const union AnimCmd sAnim_FaceNorth[] = { ANIMCMD_FRAME(1, 16), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_FaceWest[] = +static const union AnimCmd sAnim_FaceWest[] = { ANIMCMD_FRAME(2, 16), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_FaceEast[] = +static const union AnimCmd sAnim_FaceEast[] = { ANIMCMD_FRAME(2, 16, .hFlip = TRUE), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoSouth[] = +static const union AnimCmd sAnim_GoSouth[] = { ANIMCMD_FRAME(3, 8), ANIMCMD_FRAME(0, 8), @@ -208,7 +208,7 @@ const union AnimCmd gObjectEventImageAnim_GoSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoNorth[] = +static const union AnimCmd sAnim_GoNorth[] = { ANIMCMD_FRAME(5, 8), ANIMCMD_FRAME(1, 8), @@ -217,7 +217,7 @@ const union AnimCmd gObjectEventImageAnim_GoNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoWest[] = +static const union AnimCmd sAnim_GoWest[] = { ANIMCMD_FRAME(7, 8), ANIMCMD_FRAME(2, 8), @@ -226,7 +226,7 @@ const union AnimCmd gObjectEventImageAnim_GoWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoEast[] = +static const union AnimCmd sAnim_GoEast[] = { ANIMCMD_FRAME(7, 8, .hFlip = TRUE), ANIMCMD_FRAME(2, 8, .hFlip = TRUE), @@ -235,7 +235,7 @@ const union AnimCmd gObjectEventImageAnim_GoEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFastSouth[] = +static const union AnimCmd sAnim_GoFastSouth[] = { ANIMCMD_FRAME(3, 4), ANIMCMD_FRAME(0, 4), @@ -244,7 +244,7 @@ const union AnimCmd gObjectEventImageAnim_GoFastSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFastNorth[] = +static const union AnimCmd sAnim_GoFastNorth[] = { ANIMCMD_FRAME(5, 4), ANIMCMD_FRAME(1, 4), @@ -253,7 +253,7 @@ const union AnimCmd gObjectEventImageAnim_GoFastNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFastWest[] = +static const union AnimCmd sAnim_GoFastWest[] = { ANIMCMD_FRAME(7, 4), ANIMCMD_FRAME(2, 4), @@ -262,7 +262,7 @@ const union AnimCmd gObjectEventImageAnim_GoFastWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFastEast[] = +static const union AnimCmd sAnim_GoFastEast[] = { ANIMCMD_FRAME(7, 4, .hFlip = TRUE), ANIMCMD_FRAME(2, 4, .hFlip = TRUE), @@ -271,7 +271,7 @@ const union AnimCmd gObjectEventImageAnim_GoFastEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFasterSouth[] = +static const union AnimCmd sAnim_GoFasterSouth[] = { ANIMCMD_FRAME(3, 2), ANIMCMD_FRAME(0, 2), @@ -280,7 +280,7 @@ const union AnimCmd gObjectEventImageAnim_GoFasterSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFasterNorth[] = +static const union AnimCmd sAnim_GoFasterNorth[] = { ANIMCMD_FRAME(5, 2), ANIMCMD_FRAME(1, 2), @@ -289,7 +289,7 @@ const union AnimCmd gObjectEventImageAnim_GoFasterNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFasterWest[] = +static const union AnimCmd sAnim_GoFasterWest[] = { ANIMCMD_FRAME(7, 2), ANIMCMD_FRAME(2, 2), @@ -298,7 +298,7 @@ const union AnimCmd gObjectEventImageAnim_GoFasterWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFasterEast[] = +static const union AnimCmd sAnim_GoFasterEast[] = { ANIMCMD_FRAME(7, 2, .hFlip = TRUE), ANIMCMD_FRAME(2, 2, .hFlip = TRUE), @@ -307,7 +307,7 @@ const union AnimCmd gObjectEventImageAnim_GoFasterEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFastestSouth[] = +static const union AnimCmd sAnim_GoFastestSouth[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_FRAME(0, 1), @@ -316,7 +316,7 @@ const union AnimCmd gObjectEventImageAnim_GoFastestSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFastestNorth[] = +static const union AnimCmd sAnim_GoFastestNorth[] = { ANIMCMD_FRAME(5, 1), ANIMCMD_FRAME(1, 1), @@ -325,7 +325,7 @@ const union AnimCmd gObjectEventImageAnim_GoFastestNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFastestWest[] = +static const union AnimCmd sAnim_GoFastestWest[] = { ANIMCMD_FRAME(7, 1), ANIMCMD_FRAME(2, 1), @@ -334,7 +334,7 @@ const union AnimCmd gObjectEventImageAnim_GoFastestWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GoFastestEast[] = +static const union AnimCmd sAnim_GoFastestEast[] = { ANIMCMD_FRAME(7, 1, .hFlip = TRUE), ANIMCMD_FRAME(2, 1, .hFlip = TRUE), @@ -343,7 +343,7 @@ const union AnimCmd gObjectEventImageAnim_GoFastestEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_RunSouth[] = +static const union AnimCmd sAnim_RunSouth[] = { ANIMCMD_FRAME(12, 5), ANIMCMD_FRAME(9, 3), @@ -352,7 +352,7 @@ const union AnimCmd gObjectEventImageAnim_RunSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_RunNorth[] = +static const union AnimCmd sAnim_RunNorth[] = { ANIMCMD_FRAME(14, 5), ANIMCMD_FRAME(10, 3), @@ -361,7 +361,7 @@ const union AnimCmd gObjectEventImageAnim_RunNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_RunWest[] = +static const union AnimCmd sAnim_RunWest[] = { ANIMCMD_FRAME(16, 5), ANIMCMD_FRAME(11, 3), @@ -370,7 +370,7 @@ const union AnimCmd gObjectEventImageAnim_RunWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_RunEast[] = +static const union AnimCmd sAnim_RunEast[] = { ANIMCMD_FRAME(16, 5, .hFlip = TRUE), ANIMCMD_FRAME(11, 3, .hFlip = TRUE), @@ -379,7 +379,7 @@ const union AnimCmd gObjectEventImageAnim_RunEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_FieldMove[] = +static const union AnimCmd sAnim_FieldMove[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -389,143 +389,143 @@ const union AnimCmd gObjectEventImageAnim_FieldMove[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_GetOnOffSurfBlobSouth[] = +static const union AnimCmd sAnim_GetOnOffSurfBlobSouth[] = { ANIMCMD_FRAME(9, 32), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GetOnOffSurfBlobNorth[] = +static const union AnimCmd sAnim_GetOnOffSurfBlobNorth[] = { ANIMCMD_FRAME(10, 32), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GetOnOffSurfBlobWest[] = +static const union AnimCmd sAnim_GetOnOffSurfBlobWest[] = { ANIMCMD_FRAME(11, 32), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_GetOnOffSurfBlobEast[] = +static const union AnimCmd sAnim_GetOnOffSurfBlobEast[] = { ANIMCMD_FRAME(11, 32, .hFlip = TRUE), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_BunnyHoppyBackWheelSouth[] = +static const union AnimCmd sAnim_BunnyHoppyBackWheelSouth[] = { ANIMCMD_FRAME(9, 4), ANIMCMD_FRAME(10, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BunnyHoppyBackWheelNorth[] = +static const union AnimCmd sAnim_BunnyHoppyBackWheelNorth[] = { ANIMCMD_FRAME(13, 4), ANIMCMD_FRAME(14, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BunnyHoppyBackWheelWest[] = +static const union AnimCmd sAnim_BunnyHoppyBackWheelWest[] = { ANIMCMD_FRAME(17, 4), ANIMCMD_FRAME(18, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BunnyHoppyBackWheelEast[] = +static const union AnimCmd sAnim_BunnyHoppyBackWheelEast[] = { ANIMCMD_FRAME(17, 4, .hFlip = TRUE), ANIMCMD_FRAME(18, 4, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BunnyHoppyFrontWheelSouth[] = +static const union AnimCmd sAnim_BunnyHoppyFrontWheelSouth[] = { ANIMCMD_FRAME(11, 4), ANIMCMD_FRAME(12, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BunnyHoppyFrontWheelNorth[] = +static const union AnimCmd sAnim_BunnyHoppyFrontWheelNorth[] = { ANIMCMD_FRAME(15, 4), ANIMCMD_FRAME(16, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BunnyHoppyFrontWheelWest[] = +static const union AnimCmd sAnim_BunnyHoppyFrontWheelWest[] = { ANIMCMD_FRAME(19, 4), ANIMCMD_FRAME(20, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BunnyHoppyFrontWheelEast[] = +static const union AnimCmd sAnim_BunnyHoppyFrontWheelEast[] = { ANIMCMD_FRAME(19, 4, .hFlip = TRUE), ANIMCMD_FRAME(20, 4, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_StandingWheelieBackWheelSouth[] = +static const union AnimCmd sAnim_StandingWheelieBackWheelSouth[] = { ANIMCMD_FRAME(9, 4), ANIMCMD_FRAME(0, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_StandingWheelieBackWheelNorth[] = +static const union AnimCmd sAnim_StandingWheelieBackWheelNorth[] = { ANIMCMD_FRAME(13, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_StandingWheelieBackWheelWest[] = +static const union AnimCmd sAnim_StandingWheelieBackWheelWest[] = { ANIMCMD_FRAME(17, 4), ANIMCMD_FRAME(2, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_StandingWheelieBackWheelEast[] = +static const union AnimCmd sAnim_StandingWheelieBackWheelEast[] = { ANIMCMD_FRAME(17, 4, .hFlip = TRUE), ANIMCMD_FRAME(2, 4, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_StandingWheelieFrontWheelSouth[] = +static const union AnimCmd sAnim_StandingWheelieFrontWheelSouth[] = { ANIMCMD_FRAME(11, 4), ANIMCMD_FRAME(0, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_StandingWheelieFrontWheelNorth[] = +static const union AnimCmd sAnim_StandingWheelieFrontWheelNorth[] = { ANIMCMD_FRAME(15, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_StandingWheelieFrontWheelWest[] = +static const union AnimCmd sAnim_StandingWheelieFrontWheelWest[] = { ANIMCMD_FRAME(19, 4), ANIMCMD_FRAME(2, 4), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_StandingWheelieFrontWheelEast[] = +static const union AnimCmd sAnim_StandingWheelieFrontWheelEast[] = { ANIMCMD_FRAME(19, 4, .hFlip = TRUE), ANIMCMD_FRAME(2, 4, .hFlip = TRUE), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_MovingWheelieSouth[] = +static const union AnimCmd sAnim_MovingWheelieSouth[] = { ANIMCMD_FRAME(21, 4), ANIMCMD_FRAME(10, 4), @@ -534,7 +534,7 @@ const union AnimCmd gObjectEventImageAnim_MovingWheelieSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_MovingWheelieNorth[] = +static const union AnimCmd sAnim_MovingWheelieNorth[] = { ANIMCMD_FRAME(23, 4), ANIMCMD_FRAME(14, 4), @@ -543,7 +543,7 @@ const union AnimCmd gObjectEventImageAnim_MovingWheelieNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_MovingWheelieWest[] = +static const union AnimCmd sAnim_MovingWheelieWest[] = { ANIMCMD_FRAME(25, 4), ANIMCMD_FRAME(18, 4), @@ -552,7 +552,7 @@ const union AnimCmd gObjectEventImageAnim_MovingWheelieWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_MovingWheelieEast[] = +static const union AnimCmd sAnim_MovingWheelieEast[] = { ANIMCMD_FRAME(25, 4, .hFlip = TRUE), ANIMCMD_FRAME(18, 4, .hFlip = TRUE), @@ -561,27 +561,27 @@ const union AnimCmd gObjectEventImageAnim_MovingWheelieEast[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_BerryTreeStage0[] = +static const union AnimCmd sAnim_BerryTreeStage0[] = { ANIMCMD_FRAME(0, 32), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BerryTreeStage1[] = +static const union AnimCmd sAnim_BerryTreeStage1[] = { ANIMCMD_FRAME(1, 32), ANIMCMD_FRAME(2, 32), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BerryTreeStage2[] = +static const union AnimCmd sAnim_BerryTreeStage2[] = { ANIMCMD_FRAME(3, 48), ANIMCMD_FRAME(4, 48), ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BerryTreeStage3[] = +static const union AnimCmd sAnim_BerryTreeStage3[] = { ANIMCMD_FRAME(5, 32), ANIMCMD_FRAME(5, 32), @@ -590,7 +590,7 @@ const union AnimCmd gObjectEventImageAnim_BerryTreeStage3[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_BerryTreeStage4[] = +static const union AnimCmd sAnim_BerryTreeStage4[] = { ANIMCMD_FRAME(7, 48), ANIMCMD_FRAME(7, 48), @@ -599,7 +599,7 @@ const union AnimCmd gObjectEventImageAnim_BerryTreeStage4[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_NurseBow[] = +static const union AnimCmd sAnim_NurseBow[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(9, 32), @@ -607,7 +607,7 @@ const union AnimCmd gObjectEventImageAnim_NurseBow[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_RockBreak[] = +static const union AnimCmd sAnim_RockBreak[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -616,7 +616,7 @@ const union AnimCmd gObjectEventImageAnim_RockBreak[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_TreeCut[] = +static const union AnimCmd sAnim_TreeCut[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(1, 6), @@ -625,7 +625,7 @@ const union AnimCmd gObjectEventImageAnim_TreeCut[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_TakeOutRodSouth[] = +static const union AnimCmd sAnim_TakeOutRodSouth[] = { ANIMCMD_FRAME(8, 4), ANIMCMD_FRAME(9, 4), @@ -634,7 +634,7 @@ const union AnimCmd gObjectEventImageAnim_TakeOutRodSouth[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_TakeOutRodNorth[] = +static const union AnimCmd sAnim_TakeOutRodNorth[] = { ANIMCMD_FRAME(4, 4), ANIMCMD_FRAME(5, 4), @@ -643,7 +643,7 @@ const union AnimCmd gObjectEventImageAnim_TakeOutRodNorth[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_TakeOutRodWest[] = +static const union AnimCmd sAnim_TakeOutRodWest[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -652,7 +652,7 @@ const union AnimCmd gObjectEventImageAnim_TakeOutRodWest[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_TakeOutRodEast[] = +static const union AnimCmd sAnim_TakeOutRodEast[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(1, 4, .hFlip = TRUE), @@ -661,7 +661,7 @@ const union AnimCmd gObjectEventImageAnim_TakeOutRodEast[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_PutAwayRodSouth[] = +static const union AnimCmd sAnim_PutAwayRodSouth[] = { ANIMCMD_FRAME(11, 4), ANIMCMD_FRAME(10, 6), @@ -670,7 +670,7 @@ const union AnimCmd gObjectEventImageAnim_PutAwayRodSouth[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_PutAwayRodNorth[] = +static const union AnimCmd sAnim_PutAwayRodNorth[] = { ANIMCMD_FRAME(7, 4), ANIMCMD_FRAME(6, 6), @@ -679,7 +679,7 @@ const union AnimCmd gObjectEventImageAnim_PutAwayRodNorth[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_PutAwayRodWest[] = +static const union AnimCmd sAnim_PutAwayRodWest[] = { ANIMCMD_FRAME(3, 4), ANIMCMD_FRAME(2, 4), @@ -688,7 +688,7 @@ const union AnimCmd gObjectEventImageAnim_PutAwayRodWest[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_PutAwayRodEast[] = +static const union AnimCmd sAnim_PutAwayRodEast[] = { ANIMCMD_FRAME(3, 4, .hFlip = TRUE), ANIMCMD_FRAME(2, 4, .hFlip = TRUE), @@ -697,7 +697,7 @@ const union AnimCmd gObjectEventImageAnim_PutAwayRodEast[] = ANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_HookedPokemonSouth[] = +static const union AnimCmd sAnim_HookedPokemonSouth[] = { ANIMCMD_FRAME(10, 6), ANIMCMD_FRAME(11, 6), @@ -706,7 +706,7 @@ const union AnimCmd gObjectEventImageAnim_HookedPokemonSouth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_HookedPokemonNorth[] = +static const union AnimCmd sAnim_HookedPokemonNorth[] = { ANIMCMD_FRAME(6, 6), ANIMCMD_FRAME(7, 6), @@ -715,7 +715,7 @@ const union AnimCmd gObjectEventImageAnim_HookedPokemonNorth[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_HookedPokemonWest[] = +static const union AnimCmd sAnim_HookedPokemonWest[] = { ANIMCMD_FRAME(2, 6), ANIMCMD_FRAME(3, 6), @@ -724,7 +724,7 @@ const union AnimCmd gObjectEventImageAnim_HookedPokemonWest[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_HookedPokemonEast[] = +static const union AnimCmd sAnim_HookedPokemonEast[] = { ANIMCMD_FRAME(2, 6, .hFlip = TRUE), ANIMCMD_FRAME(3, 6, .hFlip = TRUE), @@ -733,7 +733,7 @@ const union AnimCmd gObjectEventImageAnim_HookedPokemonEast[] = ANIMCMD_JUMP(0), }; -const union AffineAnimCmd gObjectEventRotScalAnim_8508FD8[] = +static const union AffineAnimCmd sAffineAnim_KyogreGroudon_GoSouthStart[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 1), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), @@ -743,7 +743,7 @@ const union AffineAnimCmd gObjectEventRotScalAnim_8508FD8[] = AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gObjectEventRotScalAnim_8509008[] = +static const union AffineAnimCmd sAffineAnim_KyogreGroudon_GoSouth[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 1), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), @@ -754,33 +754,33 @@ const union AffineAnimCmd gObjectEventRotScalAnim_8509008[] = AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd gObjectEventRotScalAnim_8509040[] = +static const union AffineAnimCmd sAffineAnim_KyogreGroudon_AttackEast[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 10, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gObjectEventRotScalAnim_8509050[] = +static const union AffineAnimCmd sAffineAnim_KyogreGroudon_AttackWest[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 10, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gObjectEventRotScalAnim_8509060[] = +static const union AffineAnimCmd sAffineAnim_KyogreGroudon_DipEast[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 1), AFFINEANIMCMD_LOOP(8), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gObjectEventRotScalAnim_8509078[] = +static const union AffineAnimCmd sAffineAnim_KyogreGroudon_DipWest[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 1), AFFINEANIMCMD_LOOP(8), AFFINEANIMCMD_END, }; -const union AnimCmd gObjectEventImageAnim_HoOhFlapWings[] = +static const union AnimCmd sAnim_HoOhFlapWings[] = { ANIMCMD_FRAME(3, 8), ANIMCMD_FRAME(4, 8), @@ -789,383 +789,389 @@ const union AnimCmd gObjectEventImageAnim_HoOhFlapWings[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_HoOhStayStill[] = +static const union AnimCmd sAnim_HoOhStayStill[] = { ANIMCMD_FRAME(3, 16), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gObjectEventImageAnimTable_Inanimate[] = { - gObjectEventImageAnim_StayStill, +static const union AnimCmd *const sAnimTable_Inanimate[] = { + sAnim_StayStill, }; -const union AnimCmd *const gObjectEventImageAnimTable_QuintyPlump[] = { - gObjectEventImageAnim_QuintyPlumpFaceSouth, - gObjectEventImageAnim_QuintyPlumpFaceNorth, - gObjectEventImageAnim_QuintyPlumpFaceWest, - gObjectEventImageAnim_QuintyPlumpFaceEast, - gObjectEventImageAnim_QuintyPlumpGoSouth, - gObjectEventImageAnim_QuintyPlumpGoNorth, - gObjectEventImageAnim_QuintyPlumpGoWest, - gObjectEventImageAnim_QuintyPlumpGoEast, - gObjectEventImageAnim_QuintyPlumpGoFastSouth, - gObjectEventImageAnim_QuintyPlumpGoFastNorth, - gObjectEventImageAnim_QuintyPlumpGoFastWest, - gObjectEventImageAnim_QuintyPlumpGoFastEast, - gObjectEventImageAnim_QuintyPlumpGoFasterSouth, - gObjectEventImageAnim_QuintyPlumpGoFasterNorth, - gObjectEventImageAnim_QuintyPlumpGoFasterWest, - gObjectEventImageAnim_QuintyPlumpGoFasterEast, - gObjectEventImageAnim_QuintyPlumpGoFastestSouth, - gObjectEventImageAnim_QuintyPlumpGoFastestNorth, - gObjectEventImageAnim_QuintyPlumpGoFastestWest, - gObjectEventImageAnim_QuintyPlumpGoFastestEast, +static const union AnimCmd *const sAnimTable_QuintyPlump[] = { + sAnim_QuintyPlumpFaceSouth, + sAnim_QuintyPlumpFaceNorth, + sAnim_QuintyPlumpFaceWest, + sAnim_QuintyPlumpFaceEast, + sAnim_QuintyPlumpGoSouth, + sAnim_QuintyPlumpGoNorth, + sAnim_QuintyPlumpGoWest, + sAnim_QuintyPlumpGoEast, + sAnim_QuintyPlumpGoFastSouth, + sAnim_QuintyPlumpGoFastNorth, + sAnim_QuintyPlumpGoFastWest, + sAnim_QuintyPlumpGoFastEast, + sAnim_QuintyPlumpGoFasterSouth, + sAnim_QuintyPlumpGoFasterNorth, + sAnim_QuintyPlumpGoFasterWest, + sAnim_QuintyPlumpGoFasterEast, + sAnim_QuintyPlumpGoFastestSouth, + sAnim_QuintyPlumpGoFastestNorth, + sAnim_QuintyPlumpGoFastestWest, + sAnim_QuintyPlumpGoFastestEast, }; -const union AnimCmd *const gObjectEventImageAnimTable_Standard[] = { - gObjectEventImageAnim_FaceSouth, - gObjectEventImageAnim_FaceNorth, - gObjectEventImageAnim_FaceWest, - gObjectEventImageAnim_FaceEast, - gObjectEventImageAnim_GoSouth, - gObjectEventImageAnim_GoNorth, - gObjectEventImageAnim_GoWest, - gObjectEventImageAnim_GoEast, - gObjectEventImageAnim_GoFastSouth, - gObjectEventImageAnim_GoFastNorth, - gObjectEventImageAnim_GoFastWest, - gObjectEventImageAnim_GoFastEast, - gObjectEventImageAnim_GoFasterSouth, - gObjectEventImageAnim_GoFasterNorth, - gObjectEventImageAnim_GoFasterWest, - gObjectEventImageAnim_GoFasterEast, - gObjectEventImageAnim_GoFastestSouth, - gObjectEventImageAnim_GoFastestNorth, - gObjectEventImageAnim_GoFastestWest, - gObjectEventImageAnim_GoFastestEast, +static const union AnimCmd *const sAnimTable_Standard[] = { + sAnim_FaceSouth, + sAnim_FaceNorth, + sAnim_FaceWest, + sAnim_FaceEast, + sAnim_GoSouth, + sAnim_GoNorth, + sAnim_GoWest, + sAnim_GoEast, + sAnim_GoFastSouth, + sAnim_GoFastNorth, + sAnim_GoFastWest, + sAnim_GoFastEast, + sAnim_GoFasterSouth, + sAnim_GoFasterNorth, + sAnim_GoFasterWest, + sAnim_GoFasterEast, + sAnim_GoFastestSouth, + sAnim_GoFastestNorth, + sAnim_GoFastestWest, + sAnim_GoFastestEast, }; -const union AnimCmd *const gObjectEventImageAnimTable_HoOh[] = { - gObjectEventImageAnim_FaceSouth, - gObjectEventImageAnim_FaceNorth, - gObjectEventImageAnim_FaceWest, - gObjectEventImageAnim_FaceEast, - gObjectEventImageAnim_HoOhFlapWings, - gObjectEventImageAnim_HoOhStayStill, - gObjectEventImageAnim_GoWest, - gObjectEventImageAnim_GoEast, - gObjectEventImageAnim_GoFastSouth, - gObjectEventImageAnim_GoFastNorth, - gObjectEventImageAnim_GoFastWest, - gObjectEventImageAnim_GoFastEast, - gObjectEventImageAnim_GoFasterSouth, - gObjectEventImageAnim_GoFasterNorth, - gObjectEventImageAnim_GoFasterWest, - gObjectEventImageAnim_GoFasterEast, - gObjectEventImageAnim_GoFastestSouth, - gObjectEventImageAnim_GoFastestNorth, - gObjectEventImageAnim_GoFastestWest, - gObjectEventImageAnim_GoFastestEast, +static const union AnimCmd *const sAnimTable_HoOh[] = { + sAnim_FaceSouth, + sAnim_FaceNorth, + sAnim_FaceWest, + sAnim_FaceEast, + sAnim_HoOhFlapWings, + sAnim_HoOhStayStill, + sAnim_GoWest, + sAnim_GoEast, + sAnim_GoFastSouth, + sAnim_GoFastNorth, + sAnim_GoFastWest, + sAnim_GoFastEast, + sAnim_GoFasterSouth, + sAnim_GoFasterNorth, + sAnim_GoFasterWest, + sAnim_GoFasterEast, + sAnim_GoFastestSouth, + sAnim_GoFastestNorth, + sAnim_GoFastestWest, + sAnim_GoFastestEast, }; -const union AnimCmd *const gObjectEventImageAnimTable_Groudon3[] = { - gObjectEventImageAnim_FaceSouth, - gObjectEventImageAnim_FaceNorth, - gObjectEventImageAnim_FaceWest, - gObjectEventImageAnim_FaceEast, - gObjectEventImageAnim_GoSouth, - gObjectEventImageAnim_GoEast, - gObjectEventImageAnim_GoWest, - gObjectEventImageAnim_GoEast, - gObjectEventImageAnim_GoFastSouth, - gObjectEventImageAnim_GoFastEast, - gObjectEventImageAnim_GoFastWest, - gObjectEventImageAnim_GoFastEast, - gObjectEventImageAnim_GoFasterSouth, - gObjectEventImageAnim_GoFasterEast, - gObjectEventImageAnim_GoFasterWest, - gObjectEventImageAnim_GoFasterEast, - gObjectEventImageAnim_GoFastestSouth, - gObjectEventImageAnim_GoFastestEast, - gObjectEventImageAnim_GoFastestWest, - gObjectEventImageAnim_GoFastestEast, +static const union AnimCmd *const sAnimTable_GroudonSide[] = { + sAnim_FaceSouth, + sAnim_FaceNorth, + sAnim_FaceWest, + sAnim_FaceEast, + sAnim_GoSouth, + sAnim_GoEast, + sAnim_GoWest, + sAnim_GoEast, + sAnim_GoFastSouth, + sAnim_GoFastEast, + sAnim_GoFastWest, + sAnim_GoFastEast, + sAnim_GoFasterSouth, + sAnim_GoFasterEast, + sAnim_GoFasterWest, + sAnim_GoFasterEast, + sAnim_GoFastestSouth, + sAnim_GoFastestEast, + sAnim_GoFastestWest, + sAnim_GoFastestEast, }; -const union AnimCmd gObjectEventImageAnim_85091F0[] = +static const union AnimCmd sAnim_RayquazaCoiledAwake[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_85091F8[] = +static const union AnimCmd sAnim_RayquazaFlyUp[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_8509200[] = +static const union AnimCmd sAnim_RayquazaCoiledAsleep[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_8509208[] = +static const union AnimCmd sAnim_RayquazaCoiledMouthOpen[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_8509210[] = +static const union AnimCmd sAnim_RayquazaNormal[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_8509218[] = +// Identical to sAnim_RayquazaCoiledAsleep +static const union AnimCmd sAnim_RayquazaFaceSouth[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_8509220[] = +// Identical to sAnim_RayquazaCoiledAsleep +static const union AnimCmd sAnim_RayquazaFaceNorth[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_8509228[] = +// Identical to sAnim_RayquazaCoiledAsleep +static const union AnimCmd sAnim_RayquazaFaceWest[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd gObjectEventImageAnim_8509230[] = +// Identical to sAnim_RayquazaNormal +static const union AnimCmd sAnim_RayquazaFaceEast[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gObjectEventImageAnimTable_Rayquaza2[] = { - gObjectEventImageAnim_8509218, - gObjectEventImageAnim_8509220, - gObjectEventImageAnim_8509228, - gObjectEventImageAnim_8509230, - gObjectEventImageAnim_8509200, - gObjectEventImageAnim_85091F8, - gObjectEventImageAnim_8509208, - gObjectEventImageAnim_8509210, - gObjectEventImageAnim_8509200, - gObjectEventImageAnim_85091F8, - gObjectEventImageAnim_85091F0, - gObjectEventImageAnim_8509210, - gObjectEventImageAnim_8509200, - gObjectEventImageAnim_85091F8, - gObjectEventImageAnim_8509208, - gObjectEventImageAnim_8509210, - gObjectEventImageAnim_8509200, - gObjectEventImageAnim_85091F8, - gObjectEventImageAnim_8509208, - gObjectEventImageAnim_8509210, +// Though they correspond to facing/walking movements, Rayquaza doesn't have +// equivalent images aside from flying up. Its other frames aside from the 'normal' +// frame are for the sequence where it awakens on Sky Pillar. +// The corresponding facing/walking movements are commented alongside +static const union AnimCmd *const sAnimTable_Rayquaza[] = { + sAnim_RayquazaFaceSouth, // Face South + sAnim_RayquazaFaceNorth, // Face North + sAnim_RayquazaFaceWest, // Face West + sAnim_RayquazaFaceEast, // Face East + sAnim_RayquazaCoiledAsleep, // Go South + sAnim_RayquazaFlyUp, // Go North + sAnim_RayquazaCoiledMouthOpen, // Go West + sAnim_RayquazaNormal, // Go East + sAnim_RayquazaCoiledAsleep, // Go fast South + sAnim_RayquazaFlyUp, // Go fast North + sAnim_RayquazaCoiledAwake, // Go fast West + sAnim_RayquazaNormal, // Go fast East + sAnim_RayquazaCoiledAsleep, // Go faster South + sAnim_RayquazaFlyUp, // Go faster North + sAnim_RayquazaCoiledMouthOpen, // Go faster West + sAnim_RayquazaNormal, // Go faster East + sAnim_RayquazaCoiledAsleep, // Go fastest South + sAnim_RayquazaFlyUp, // Go fastest North + sAnim_RayquazaCoiledMouthOpen, // Go fastest West + sAnim_RayquazaNormal, // Go fastest East }; -const union AnimCmd *const gObjectEventImageAnimTable_BrendanMayNormal[] = { - gObjectEventImageAnim_FaceSouth, - gObjectEventImageAnim_FaceNorth, - gObjectEventImageAnim_FaceWest, - gObjectEventImageAnim_FaceEast, - gObjectEventImageAnim_GoSouth, - gObjectEventImageAnim_GoNorth, - gObjectEventImageAnim_GoWest, - gObjectEventImageAnim_GoEast, - gObjectEventImageAnim_GoFastSouth, - gObjectEventImageAnim_GoFastNorth, - gObjectEventImageAnim_GoFastWest, - gObjectEventImageAnim_GoFastEast, - gObjectEventImageAnim_GoFasterSouth, - gObjectEventImageAnim_GoFasterNorth, - gObjectEventImageAnim_GoFasterWest, - gObjectEventImageAnim_GoFasterEast, - gObjectEventImageAnim_GoFastestSouth, - gObjectEventImageAnim_GoFastestNorth, - gObjectEventImageAnim_GoFastestWest, - gObjectEventImageAnim_GoFastestEast, - gObjectEventImageAnim_RunSouth, - gObjectEventImageAnim_RunNorth, - gObjectEventImageAnim_RunWest, - gObjectEventImageAnim_RunEast, +static const union AnimCmd *const sAnimTable_BrendanMayNormal[] = { + sAnim_FaceSouth, + sAnim_FaceNorth, + sAnim_FaceWest, + sAnim_FaceEast, + sAnim_GoSouth, + sAnim_GoNorth, + sAnim_GoWest, + sAnim_GoEast, + sAnim_GoFastSouth, + sAnim_GoFastNorth, + sAnim_GoFastWest, + sAnim_GoFastEast, + sAnim_GoFasterSouth, + sAnim_GoFasterNorth, + sAnim_GoFasterWest, + sAnim_GoFasterEast, + sAnim_GoFastestSouth, + sAnim_GoFastestNorth, + sAnim_GoFastestWest, + sAnim_GoFastestEast, + sAnim_RunSouth, + sAnim_RunNorth, + sAnim_RunWest, + sAnim_RunEast, }; -const union AnimCmd *const gObjectEventImageAnimTable_AcroBike[] = { - gObjectEventImageAnim_FaceSouth, - gObjectEventImageAnim_FaceNorth, - gObjectEventImageAnim_FaceWest, - gObjectEventImageAnim_FaceEast, - gObjectEventImageAnim_GoSouth, - gObjectEventImageAnim_GoNorth, - gObjectEventImageAnim_GoWest, - gObjectEventImageAnim_GoEast, - gObjectEventImageAnim_GoFastSouth, - gObjectEventImageAnim_GoFastNorth, - gObjectEventImageAnim_GoFastWest, - gObjectEventImageAnim_GoFastEast, - gObjectEventImageAnim_GoFasterSouth, - gObjectEventImageAnim_GoFasterNorth, - gObjectEventImageAnim_GoFasterWest, - gObjectEventImageAnim_GoFasterEast, - gObjectEventImageAnim_GoFastestSouth, - gObjectEventImageAnim_GoFastestNorth, - gObjectEventImageAnim_GoFastestWest, - gObjectEventImageAnim_GoFastestEast, - gObjectEventImageAnim_BunnyHoppyBackWheelSouth, - gObjectEventImageAnim_BunnyHoppyBackWheelNorth, - gObjectEventImageAnim_BunnyHoppyBackWheelWest, - gObjectEventImageAnim_BunnyHoppyBackWheelEast, - gObjectEventImageAnim_BunnyHoppyFrontWheelSouth, - gObjectEventImageAnim_BunnyHoppyFrontWheelNorth, - gObjectEventImageAnim_BunnyHoppyFrontWheelWest, - gObjectEventImageAnim_BunnyHoppyFrontWheelEast, - gObjectEventImageAnim_StandingWheelieBackWheelSouth, - gObjectEventImageAnim_StandingWheelieBackWheelNorth, - gObjectEventImageAnim_StandingWheelieBackWheelWest, - gObjectEventImageAnim_StandingWheelieBackWheelEast, - gObjectEventImageAnim_StandingWheelieFrontWheelSouth, - gObjectEventImageAnim_StandingWheelieFrontWheelNorth, - gObjectEventImageAnim_StandingWheelieFrontWheelWest, - gObjectEventImageAnim_StandingWheelieFrontWheelEast, - gObjectEventImageAnim_MovingWheelieSouth, - gObjectEventImageAnim_MovingWheelieNorth, - gObjectEventImageAnim_MovingWheelieWest, - gObjectEventImageAnim_MovingWheelieEast, +static const union AnimCmd *const sAnimTable_AcroBike[] = { + sAnim_FaceSouth, + sAnim_FaceNorth, + sAnim_FaceWest, + sAnim_FaceEast, + sAnim_GoSouth, + sAnim_GoNorth, + sAnim_GoWest, + sAnim_GoEast, + sAnim_GoFastSouth, + sAnim_GoFastNorth, + sAnim_GoFastWest, + sAnim_GoFastEast, + sAnim_GoFasterSouth, + sAnim_GoFasterNorth, + sAnim_GoFasterWest, + sAnim_GoFasterEast, + sAnim_GoFastestSouth, + sAnim_GoFastestNorth, + sAnim_GoFastestWest, + sAnim_GoFastestEast, + sAnim_BunnyHoppyBackWheelSouth, + sAnim_BunnyHoppyBackWheelNorth, + sAnim_BunnyHoppyBackWheelWest, + sAnim_BunnyHoppyBackWheelEast, + sAnim_BunnyHoppyFrontWheelSouth, + sAnim_BunnyHoppyFrontWheelNorth, + sAnim_BunnyHoppyFrontWheelWest, + sAnim_BunnyHoppyFrontWheelEast, + sAnim_StandingWheelieBackWheelSouth, + sAnim_StandingWheelieBackWheelNorth, + sAnim_StandingWheelieBackWheelWest, + sAnim_StandingWheelieBackWheelEast, + sAnim_StandingWheelieFrontWheelSouth, + sAnim_StandingWheelieFrontWheelNorth, + sAnim_StandingWheelieFrontWheelWest, + sAnim_StandingWheelieFrontWheelEast, + sAnim_MovingWheelieSouth, + sAnim_MovingWheelieNorth, + sAnim_MovingWheelieWest, + sAnim_MovingWheelieEast, }; -const union AnimCmd *const gObjectEventImageAnimTable_Surfing[] = { - gObjectEventImageAnim_FaceSouth, - gObjectEventImageAnim_FaceNorth, - gObjectEventImageAnim_FaceWest, - gObjectEventImageAnim_FaceEast, - gObjectEventImageAnim_GoSouth, - gObjectEventImageAnim_GoNorth, - gObjectEventImageAnim_GoWest, - gObjectEventImageAnim_GoEast, - gObjectEventImageAnim_GoFastSouth, - gObjectEventImageAnim_GoFastNorth, - gObjectEventImageAnim_GoFastWest, - gObjectEventImageAnim_GoFastEast, - gObjectEventImageAnim_GoFasterSouth, - gObjectEventImageAnim_GoFasterNorth, - gObjectEventImageAnim_GoFasterWest, - gObjectEventImageAnim_GoFasterEast, - gObjectEventImageAnim_GoFastestSouth, - gObjectEventImageAnim_GoFastestNorth, - gObjectEventImageAnim_GoFastestWest, - gObjectEventImageAnim_GoFastestEast, - gObjectEventImageAnim_GetOnOffSurfBlobSouth, - gObjectEventImageAnim_GetOnOffSurfBlobNorth, - gObjectEventImageAnim_GetOnOffSurfBlobWest, - gObjectEventImageAnim_GetOnOffSurfBlobEast, +static const union AnimCmd *const sAnimTable_Surfing[] = { + sAnim_FaceSouth, + sAnim_FaceNorth, + sAnim_FaceWest, + sAnim_FaceEast, + sAnim_GoSouth, + sAnim_GoNorth, + sAnim_GoWest, + sAnim_GoEast, + sAnim_GoFastSouth, + sAnim_GoFastNorth, + sAnim_GoFastWest, + sAnim_GoFastEast, + sAnim_GoFasterSouth, + sAnim_GoFasterNorth, + sAnim_GoFasterWest, + sAnim_GoFasterEast, + sAnim_GoFastestSouth, + sAnim_GoFastestNorth, + sAnim_GoFastestWest, + sAnim_GoFastestEast, + sAnim_GetOnOffSurfBlobSouth, + sAnim_GetOnOffSurfBlobNorth, + sAnim_GetOnOffSurfBlobWest, + sAnim_GetOnOffSurfBlobEast, }; -const union AnimCmd *const gObjectEventImageAnimTable_Nurse[] = { - gObjectEventImageAnim_FaceSouth, - gObjectEventImageAnim_FaceNorth, - gObjectEventImageAnim_FaceWest, - gObjectEventImageAnim_FaceEast, - gObjectEventImageAnim_GoSouth, - gObjectEventImageAnim_GoNorth, - gObjectEventImageAnim_GoWest, - gObjectEventImageAnim_GoEast, - gObjectEventImageAnim_GoFastSouth, - gObjectEventImageAnim_GoFastNorth, - gObjectEventImageAnim_GoFastWest, - gObjectEventImageAnim_GoFastEast, - gObjectEventImageAnim_GoFasterSouth, - gObjectEventImageAnim_GoFasterNorth, - gObjectEventImageAnim_GoFasterWest, - gObjectEventImageAnim_GoFasterEast, - gObjectEventImageAnim_GoFastestSouth, - gObjectEventImageAnim_GoFastestNorth, - gObjectEventImageAnim_GoFastestWest, - gObjectEventImageAnim_GoFastestEast, - gObjectEventImageAnim_NurseBow, +static const union AnimCmd *const sAnimTable_Nurse[] = { + sAnim_FaceSouth, + sAnim_FaceNorth, + sAnim_FaceWest, + sAnim_FaceEast, + sAnim_GoSouth, + sAnim_GoNorth, + sAnim_GoWest, + sAnim_GoEast, + sAnim_GoFastSouth, + sAnim_GoFastNorth, + sAnim_GoFastWest, + sAnim_GoFastEast, + sAnim_GoFasterSouth, + sAnim_GoFasterNorth, + sAnim_GoFasterWest, + sAnim_GoFasterEast, + sAnim_GoFastestSouth, + sAnim_GoFastestNorth, + sAnim_GoFastestWest, + sAnim_GoFastestEast, + sAnim_NurseBow, }; -const union AnimCmd *const gObjectEventImageAnimTable_FieldMove[] = { - gObjectEventImageAnim_FieldMove, +static const union AnimCmd *const sAnimTable_FieldMove[] = { + sAnim_FieldMove, }; -const union AnimCmd *const gObjectEventImageAnimTable_BerryTree[] = { - gObjectEventImageAnim_BerryTreeStage0, - gObjectEventImageAnim_BerryTreeStage1, - gObjectEventImageAnim_BerryTreeStage2, - gObjectEventImageAnim_BerryTreeStage3, - gObjectEventImageAnim_BerryTreeStage4, +static const union AnimCmd *const sAnimTable_BerryTree[] = { + sAnim_BerryTreeStage0, + sAnim_BerryTreeStage1, + sAnim_BerryTreeStage2, + sAnim_BerryTreeStage3, + sAnim_BerryTreeStage4, }; -const union AnimCmd *const gObjectEventImageAnimTable_BreakableRock[] = { - gObjectEventImageAnim_StayStill, - gObjectEventImageAnim_RockBreak, +static const union AnimCmd *const sAnimTable_BreakableRock[] = { + sAnim_StayStill, + sAnim_RockBreak, }; -const union AnimCmd *const gObjectEventImageAnimTable_CuttableTree[] = { - gObjectEventImageAnim_StayStill, - gObjectEventImageAnim_TreeCut, +static const union AnimCmd *const sAnimTable_CuttableTree[] = { + sAnim_StayStill, + sAnim_TreeCut, }; -const union AnimCmd *const gObjectEventImageAnimTable_Fishing[] = { - gObjectEventImageAnim_TakeOutRodSouth, - gObjectEventImageAnim_TakeOutRodNorth, - gObjectEventImageAnim_TakeOutRodWest, - gObjectEventImageAnim_TakeOutRodEast, - gObjectEventImageAnim_PutAwayRodSouth, - gObjectEventImageAnim_PutAwayRodNorth, - gObjectEventImageAnim_PutAwayRodWest, - gObjectEventImageAnim_PutAwayRodEast, - gObjectEventImageAnim_HookedPokemonSouth, - gObjectEventImageAnim_HookedPokemonNorth, - gObjectEventImageAnim_HookedPokemonWest, - gObjectEventImageAnim_HookedPokemonEast, +static const union AnimCmd *const sAnimTable_Fishing[] = { + sAnim_TakeOutRodSouth, + sAnim_TakeOutRodNorth, + sAnim_TakeOutRodWest, + sAnim_TakeOutRodEast, + sAnim_PutAwayRodSouth, + sAnim_PutAwayRodNorth, + sAnim_PutAwayRodWest, + sAnim_PutAwayRodEast, + sAnim_HookedPokemonSouth, + sAnim_HookedPokemonNorth, + sAnim_HookedPokemonWest, + sAnim_HookedPokemonEast, }; -const union AffineAnimCmd *const gObjectEventRotScalAnimTable_KyogreGroudon[] = { - gObjectEventRotScalAnim_8508FD8, - gObjectEventRotScalAnim_8509008, - gObjectEventRotScalAnim_8509050, - gObjectEventRotScalAnim_8509040, - gObjectEventRotScalAnim_8509078, - gObjectEventRotScalAnim_8509060, +static const union AffineAnimCmd *const sAffineAnimTable_KyogreGroudon[] = { + sAffineAnim_KyogreGroudon_GoSouthStart, // Used by Kyogre/Groudon when awakened + sAffineAnim_KyogreGroudon_GoSouth, // Used by Kyogre/Groudon when awakened + sAffineAnim_KyogreGroudon_AttackWest, // Used by Kyogre during Sootopolis fight + sAffineAnim_KyogreGroudon_AttackEast, // Unused + sAffineAnim_KyogreGroudon_DipWest, // Unused + sAffineAnim_KyogreGroudon_DipEast, // Unused }; -const struct UnkStruct_085094AC gUnknown_085094AC[] = { +// For animations with alternating steps +static const struct StepAnimTable sStepAnimTables[] = { { - .anims = gObjectEventImageAnimTable_QuintyPlump, + .anims = sAnimTable_QuintyPlump, .animPos = {1, 3, 0, 2}, }, { - .anims = gObjectEventImageAnimTable_Standard, + .anims = sAnimTable_Standard, .animPos = {1, 3, 0, 2}, }, { - .anims = gObjectEventImageAnimTable_BrendanMayNormal, + .anims = sAnimTable_BrendanMayNormal, .animPos = {1, 3, 0, 2}, }, { - .anims = gObjectEventImageAnimTable_AcroBike, + .anims = sAnimTable_AcroBike, .animPos = {1, 3, 0, 2}, }, { - .anims = gObjectEventImageAnimTable_Surfing, + .anims = sAnimTable_Surfing, .animPos = {1, 3, 0, 2}, }, { - .anims = gObjectEventImageAnimTable_Nurse, + .anims = sAnimTable_Nurse, .animPos = {1, 3, 0, 2}, }, { - .anims = gObjectEventImageAnimTable_Fishing, + .anims = sAnimTable_Fishing, .animPos = {1, 3, 0, 2}, }, - { - NULL, - {0, 0, 0, 0}, - }, + {}, }; diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h index c6c78dca99..ddc6a1cad3 100755 --- a/src/data/object_events/object_event_graphics_info.h +++ b/src/data/object_events/object_event_graphics_info.h @@ -1,245 +1,245 @@ -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_QuintyPlump = {0xFFFF, OBJ_EVENT_PAL_TAG_QUINTY_PLUMP, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_QuintyPlump, gObjectEventPicTable_QuintyPlump, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NinjaBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_NinjaBoy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Twin = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Twin, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleBoy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleGirl, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy3, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl3, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RichBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RichBoy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_FatMan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PokefanF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ExpertM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ExpertF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman3, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PokefanM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman4, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cook = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cook, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkReceptionist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LinkReceptionist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldMan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldWoman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Camper, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Picnicker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man3, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman5, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Youngster, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BugCatcher, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PsychicM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SchoolKidM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Maniac, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HexManiac, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RayquazaStill, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BlackBelt, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Beauty, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lass, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Gentleman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sailor, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisherman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Fisherman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Hiker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Nurse, gObjectEventPicTable_Nurse, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ItemBall, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, NULL, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ProfBirch, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man4, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man5, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ReporterM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ReporterF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Storyteller = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giddy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedNatuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMagnemiteDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedSquirtleDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWooperDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPorygon2Doll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CuttableTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_CuttableTree, gObjectEventPicTable_CuttableTree, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MartEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MartEmployee, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RooftopSaleWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Teala = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Teala, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BreakableRock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_BreakableRock, gObjectEventPicTable_BreakableRock, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PushableBoulder = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PushableBoulder, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrBrineysBoat = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayMachBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck = {0xFFFF, OBJ_EVENT_PAL_TAG_TRUCK, OBJ_EVENT_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_48x48, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Truck, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirchsBag, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_EnemyZigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_ZIGZAGOON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_EnemyZigzagoon, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena = {0xFFFF, OBJ_EVENT_PAL_TAG_POOCHYENA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Poochyena, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Artist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Artist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayMachBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cameraman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cameraman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayUnderwater, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MovingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_MOVING_BOX, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MovingBox, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableCar = {0xFFFF, OBJ_EVENT_PAL_TAG_CABLE_CAR, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_CableCar, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DevonEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DevonEmployee, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_AquaMemberM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_AquaMemberF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MagmaMemberM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MagmaMemberF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sidney = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sidney, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Phoebe = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Phoebe, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Glacia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Glacia, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Drake = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Drake, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Roxanne = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Roxanne, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brawly = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brawly, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wattson = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wattson, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Flannery = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Flannery, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Norman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Norman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Winona = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Winona, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Liza = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Liza, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tate = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Tate, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wallace = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wallace, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Steven = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Steven, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wally = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wally, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireLittleBoy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_BrendanFishing, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_MayFishing, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal = {0xFFFF, OBJ_EVENT_PAL_TAG_SSTIDAL, OBJ_EVENT_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_96x40, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SSTidal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, OBJ_EVENT_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_88x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SubmarineShadow, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PichuDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikachuDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MarillDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TogepiDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TogepiDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyndaquilDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ChikoritaDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TotodileDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TotodileDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_JigglypuffDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MeowthDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MeowthDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ClefairyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ClefairyDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DittoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DittoDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SmoochumDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SmoochumDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TreeckoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TreeckoDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TorchicDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TorchicDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MudkipDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MudkipDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DuskullDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DuskullDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WynautDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WynautDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaltoyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BaltoyDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_KecleonDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AzurillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_AzurillDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SkittyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SkittyDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwabluDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SwabluDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GulpinDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GulpinDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LotadDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_LotadDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SeedotDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SeedotDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikaCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikaCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RoundCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_RoundCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KissCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_KissCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ZigzagCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ZigzagCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SpinCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SpinCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DiamondCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DiamondCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BallCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BallCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GrassCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GrassCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FireCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_FireCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WaterCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WaterCushion, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigSnorlaxDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRhydonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigLaprasDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigVenusaurDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigCharizardDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigBlastoiseDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigWailmerDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegirockDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegiceDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegisteelDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latias = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latios = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GameboyKid = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GameboyKid, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ContestJudge = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ContestJudge, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanWatering, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayWatering, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BrendanDecorating, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MayDecorating, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Archie, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Maxie, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreFront, gObjectEventRotScalAnimTable_KyogreGroudon}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GroudonFront, gObjectEventRotScalAnimTable_KyogreGroudon}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreSide, gObjectEventRotScalAnimTable_KyogreGroudon}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Groudon3, gObjectEventPicTable_GroudonSide, gObjectEventRotScalAnimTable_KyogreGroudon}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Fossil, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Skitty, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kecleon, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre2 = {0xFFFF, OBJ_EVENT_PAL_TAG_KYOGRE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreFront, gObjectEventRotScalAnimTable_KyogreGroudon}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon2 = {0xFFFF, OBJ_EVENT_PAL_TAG_GROUDON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GroudonFront, gObjectEventRotScalAnimTable_KyogreGroudon}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Rayquaza2, gObjectEventPicTable_Rayquaza, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Zigzagoon, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pikachu, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Azumarill, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wingull, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonBridgeShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kecleon, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberMSwimming, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Azurill, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mom, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Juan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scott, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MysteryEventDeliveryman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Statue, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_S, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kirlia, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Dusclops = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Dusclops, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomAttendant = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnionRoomAttendant, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Red = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Red, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Leaf = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Leaf, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sudowoodo = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sudowoodo, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mew, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Deoxys = {0xFFFF, OBJ_EVENT_PAL_TAG_DEOXYS, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Deoxys, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirthIslandStone = {0xFFFF, OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirthIslandStone, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Anabel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Anabel, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tucker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Tucker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Greta = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Greta, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spenser = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Spenser, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Noland = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Noland, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lucy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lucy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brandon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brandon, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireBrendan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_MAY, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireMay, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {0xFFFF, OBJ_EVENT_PAL_TAG_LUGIA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lugia, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {0xFFFF, OBJ_EVENT_PAL_TAG_HO_OH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_HoOh, gObjectEventPicTable_HoOh, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Surfing, sPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_FieldMove, sPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_QuintyPlump = {0xFFFF, OBJ_EVENT_PAL_TAG_QUINTY_PLUMP, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_QuintyPlump, sPicTable_QuintyPlump, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NinjaBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_NinjaBoy, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Twin = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Twin, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Boy1, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Girl1, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Boy2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Girl2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_LittleBoy, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_LittleGirl, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Boy3, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Girl3, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RichBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RichBoy, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman1, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_FatMan, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_PokefanF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man1, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ExpertM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ExpertF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman3, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_PokefanM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman4, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cook = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Cook, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkReceptionist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_LinkReceptionist, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_OldMan, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_OldWoman, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Camper, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Picnicker, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man3, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman5, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Youngster, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_BugCatcher, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_PsychicM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_SchoolKidM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Maniac, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_HexManiac, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RayquazaStill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, sOamTables_64x64, sAnimTable_Standard, sPicTable_RayquazaStill, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_BlackBelt, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Beauty, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Scientist1, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Lass, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Gentleman, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Sailor, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisherman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Fisherman, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_TuberF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_TuberM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Hiker, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Nurse, sPicTable_Nurse, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_ItemBall, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, NULL, sAnimTable_BerryTree, sPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_BerryTree, sPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BerryTree, sPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ProfBirch, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man4, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man5, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ReporterM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ReporterF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Storyteller = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giddy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedNatuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMagnemiteDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedSquirtleDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWooperDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPorygon2Doll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CuttableTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_CuttableTree, sPicTable_CuttableTree, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MartEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MartEmployee, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RooftopSaleWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Teala = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Teala, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BreakableRock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_BreakableRock, sPicTable_BreakableRock, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PushableBoulder = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_PushableBoulder, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrBrineysBoat = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_MayNormal, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MayMachBike, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Surfing, sPicTable_MaySurfing, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_FieldMove, sPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck = {0xFFFF, OBJ_EVENT_PAL_TAG_TRUCK, OBJ_EVENT_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_48x48, sAnimTable_Inanimate, sPicTable_Truck, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_BirchsBag, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_EnemyZigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_ZIGZAGOON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_EnemyZigzagoon, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena = {0xFFFF, OBJ_EVENT_PAL_TAG_POOCHYENA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Poochyena, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Artist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Artist, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Surfing, sPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_FieldMove, sPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_MayNormal, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MayMachBike, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Surfing, sPicTable_MaySurfing, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_FieldMove, sPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cameraman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Cameraman, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MayUnderwater, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MovingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_MOVING_BOX, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_MovingBox, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableCar = {0xFFFF, OBJ_EVENT_PAL_TAG_CABLE_CAR, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, sOamTables_64x64, sAnimTable_Inanimate, sPicTable_CableCar, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Scientist2, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DevonEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_DevonEmployee, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_AquaMemberM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_AquaMemberF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MagmaMemberM, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MagmaMemberF, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sidney = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Sidney, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Phoebe = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Phoebe, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Glacia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Glacia, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Drake = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Drake, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Roxanne = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Roxanne, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brawly = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Brawly, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wattson = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Wattson, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Flannery = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Flannery, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Norman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Norman, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Winona = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Winona, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Liza = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Liza, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tate = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Tate, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wallace = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Wallace, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Steven = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Steven, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wally = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Wally, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_RubySapphireLittleBoy, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Fishing, sPicTable_BrendanFishing, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Fishing, sPicTable_MayFishing, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal = {0xFFFF, OBJ_EVENT_PAL_TAG_SSTIDAL, OBJ_EVENT_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, sOamTables_96x40, sAnimTable_Standard, sPicTable_SSTidal, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, OBJ_EVENT_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, sOamTables_88x32, sAnimTable_Standard, sPicTable_SubmarineShadow, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_PichuDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_PikachuDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_MarillDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TogepiDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_TogepiDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyndaquilDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ChikoritaDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TotodileDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_TotodileDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_JigglypuffDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MeowthDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_MeowthDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ClefairyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_ClefairyDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DittoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_DittoDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SmoochumDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SmoochumDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TreeckoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_TreeckoDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TorchicDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_TorchicDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MudkipDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_MudkipDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DuskullDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_DuskullDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WynautDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_WynautDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaltoyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_BaltoyDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_KecleonDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AzurillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_AzurillDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SkittyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SkittyDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwabluDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SwabluDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GulpinDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_GulpinDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LotadDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_LotadDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SeedotDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SeedotDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikaCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_PikaCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RoundCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_RoundCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KissCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_KissCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ZigzagCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_ZigzagCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SpinCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SpinCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DiamondCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_DiamondCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BallCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_BallCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GrassCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_GrassCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FireCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_FireCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WaterCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_WaterCushion, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigSnorlaxDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRhydonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigLaprasDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigVenusaurDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigCharizardDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigBlastoiseDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigWailmerDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegirockDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegiceDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegisteelDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latias = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latios = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GameboyKid = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_GameboyKid, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ContestJudge = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ContestJudge, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_BrendanWatering, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MayWatering, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Inanimate, sPicTable_BrendanDecorating, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Inanimate, sPicTable_MayDecorating, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Archie, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Maxie, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreFront = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_KyogreFront, sAffineAnimTable_KyogreGroudon}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonFront = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_GroudonFront, sAffineAnimTable_KyogreGroudon}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreSide = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_KyogreSide, sAffineAnimTable_KyogreGroudon}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonSide = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_GroudonSide, sPicTable_GroudonSide, sAffineAnimTable_KyogreGroudon}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_Fossil, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Regi, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Regi, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Regi, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Skitty, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Kecleon, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreAsleep = {0xFFFF, OBJ_EVENT_PAL_TAG_KYOGRE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_KyogreFront, sAffineAnimTable_KyogreGroudon}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonAsleep = {0xFFFF, OBJ_EVENT_PAL_TAG_GROUDON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_GroudonFront, sAffineAnimTable_KyogreGroudon}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, sOamTables_64x64, sAnimTable_Rayquaza, sPicTable_Rayquaza, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Zigzagoon, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Pikachu, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Azumarill, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Wingull, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonBridgeShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Kecleon, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_TuberMSwimming, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Azurill, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Mom, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_MayNormal, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Juan, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Scott, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MysteryEventDeliveryman, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Inanimate, sPicTable_Statue, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_S, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Kirlia, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Dusclops = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Dusclops, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomAttendant = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_UnionRoomAttendant, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Red = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Red, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Leaf = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Leaf, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sudowoodo = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Sudowoodo, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Mew, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Deoxys = {0xFFFF, OBJ_EVENT_PAL_TAG_DEOXYS, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Deoxys, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirthIslandStone = {0xFFFF, OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BirthIslandStone, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Anabel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Anabel, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tucker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Tucker, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Greta = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Greta, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spenser = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Spenser, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Noland = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Noland, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lucy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Lucy, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brandon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Brandon, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RubySapphireBrendan, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_MAY, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RubySapphireMay, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {0xFFFF, OBJ_EVENT_PAL_TAG_LUGIA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Lugia, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {0xFFFF, OBJ_EVENT_PAL_TAG_HO_OH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_HoOh, sPicTable_HoOh, gDummySpriteAffineAnimTable}; diff --git a/src/data/object_events/object_event_graphics_info_pointers.h b/src/data/object_events/object_event_graphics_info_pointers.h index 0ca70fa337..1c94919a75 100755 --- a/src/data/object_events/object_event_graphics_info_pointers.h +++ b/src/data/object_events/object_event_graphics_info_pointers.h @@ -39,7 +39,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza1; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RayquazaStill; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt; @@ -195,17 +195,17 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre1; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon1; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreFront; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonFront; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre2; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon2; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza2; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreAsleep; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonAsleep; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill; @@ -219,8 +219,8 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre3; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon3; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreSide; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonSide; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia; @@ -288,7 +288,7 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM [OBJ_EVENT_GFX_SCHOOL_KID_M] = &gObjectEventGraphicsInfo_SchoolKidM, [OBJ_EVENT_GFX_MANIAC] = &gObjectEventGraphicsInfo_Maniac, [OBJ_EVENT_GFX_HEX_MANIAC] = &gObjectEventGraphicsInfo_HexManiac, - [OBJ_EVENT_GFX_RAYQUAZA_1] = &gObjectEventGraphicsInfo_Rayquaza1, + [OBJ_EVENT_GFX_RAYQUAZA_STILL] = &gObjectEventGraphicsInfo_RayquazaStill, [OBJ_EVENT_GFX_SWIMMER_M] = &gObjectEventGraphicsInfo_SwimmerM, [OBJ_EVENT_GFX_SWIMMER_F] = &gObjectEventGraphicsInfo_SwimmerF, [OBJ_EVENT_GFX_BLACK_BELT] = &gObjectEventGraphicsInfo_BlackBelt, @@ -444,17 +444,17 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM [OBJ_EVENT_GFX_MAY_DECORATING] = &gObjectEventGraphicsInfo_MayDecorating, [OBJ_EVENT_GFX_ARCHIE] = &gObjectEventGraphicsInfo_Archie, [OBJ_EVENT_GFX_MAXIE] = &gObjectEventGraphicsInfo_Maxie, - [OBJ_EVENT_GFX_KYOGRE_1] = &gObjectEventGraphicsInfo_Kyogre1, - [OBJ_EVENT_GFX_GROUDON_1] = &gObjectEventGraphicsInfo_Groudon1, + [OBJ_EVENT_GFX_KYOGRE_FRONT] = &gObjectEventGraphicsInfo_KyogreFront, + [OBJ_EVENT_GFX_GROUDON_FRONT] = &gObjectEventGraphicsInfo_GroudonFront, [OBJ_EVENT_GFX_FOSSIL] = &gObjectEventGraphicsInfo_Fossil, [OBJ_EVENT_GFX_REGIROCK] = &gObjectEventGraphicsInfo_Regirock, [OBJ_EVENT_GFX_REGICE] = &gObjectEventGraphicsInfo_Regice, [OBJ_EVENT_GFX_REGISTEEL] = &gObjectEventGraphicsInfo_Registeel, [OBJ_EVENT_GFX_SKITTY] = &gObjectEventGraphicsInfo_Skitty, [OBJ_EVENT_GFX_KECLEON] = &gObjectEventGraphicsInfo_Kecleon, - [OBJ_EVENT_GFX_KYOGRE_2] = &gObjectEventGraphicsInfo_Kyogre2, - [OBJ_EVENT_GFX_GROUDON_2] = &gObjectEventGraphicsInfo_Groudon2, - [OBJ_EVENT_GFX_RAYQUAZA_2] = &gObjectEventGraphicsInfo_Rayquaza2, + [OBJ_EVENT_GFX_KYOGRE_ASLEEP] = &gObjectEventGraphicsInfo_KyogreAsleep, + [OBJ_EVENT_GFX_GROUDON_ASLEEP] = &gObjectEventGraphicsInfo_GroudonAsleep, + [OBJ_EVENT_GFX_RAYQUAZA] = &gObjectEventGraphicsInfo_Rayquaza, [OBJ_EVENT_GFX_ZIGZAGOON_2] = &gObjectEventGraphicsInfo_Zigzagoon, [OBJ_EVENT_GFX_PIKACHU] = &gObjectEventGraphicsInfo_Pikachu, [OBJ_EVENT_GFX_AZUMARILL] = &gObjectEventGraphicsInfo_Azumarill, @@ -468,8 +468,8 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM [OBJ_EVENT_GFX_JUAN] = &gObjectEventGraphicsInfo_Juan, [OBJ_EVENT_GFX_SCOTT] = &gObjectEventGraphicsInfo_Scott, [OBJ_EVENT_GFX_POOCHYENA] = &gObjectEventGraphicsInfo_Poochyena, - [OBJ_EVENT_GFX_KYOGRE_3] = &gObjectEventGraphicsInfo_Kyogre3, - [OBJ_EVENT_GFX_GROUDON_3] = &gObjectEventGraphicsInfo_Groudon3, + [OBJ_EVENT_GFX_KYOGRE_SIDE] = &gObjectEventGraphicsInfo_KyogreSide, + [OBJ_EVENT_GFX_GROUDON_SIDE] = &gObjectEventGraphicsInfo_GroudonSide, [OBJ_EVENT_GFX_MYSTERY_GIFT_MAN] = &gObjectEventGraphicsInfo_MysteryEventDeliveryman, [OBJ_EVENT_GFX_TRICK_HOUSE_STATUE] = &gObjectEventGraphicsInfo_Statue, [OBJ_EVENT_GFX_KIRLIA] = &gObjectEventGraphicsInfo_Kirlia, diff --git a/src/data/object_events/object_event_pic_tables.h b/src/data/object_events/object_event_pic_tables.h index 9cfdca7c16..1b8c9c727a 100755 --- a/src/data/object_events/object_event_pic_tables.h +++ b/src/data/object_events/object_event_pic_tables.h @@ -1,4 +1,4 @@ -const struct SpriteFrameImage gObjectEventPicTable_BrendanNormal[] = { +static const struct SpriteFrameImage sPicTable_BrendanNormal[] = { overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 0), overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 1), overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 2), @@ -19,7 +19,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BrendanNormal[] = { overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_BrendanMachBike[] = { +static const struct SpriteFrameImage sPicTable_BrendanMachBike[] = { overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 0), overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 1), overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 2), @@ -31,7 +31,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BrendanMachBike[] = { overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_BrendanAcroBike[] = { +static const struct SpriteFrameImage sPicTable_BrendanAcroBike[] = { overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 0), overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 1), overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 2), @@ -61,7 +61,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BrendanAcroBike[] = { overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 26), }; -const struct SpriteFrameImage gObjectEventPicTable_BrendanSurfing[] = { +static const struct SpriteFrameImage sPicTable_BrendanSurfing[] = { overworld_frame(gObjectEventPic_BrendanSurfing, 4, 4, 0), overworld_frame(gObjectEventPic_BrendanSurfing, 4, 4, 2), overworld_frame(gObjectEventPic_BrendanSurfing, 4, 4, 4), @@ -76,7 +76,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BrendanSurfing[] = { overworld_frame(gObjectEventPic_BrendanSurfing, 4, 4, 5), }; -const struct SpriteFrameImage gObjectEventPicTable_BrendanUnderwater[] = { +static const struct SpriteFrameImage sPicTable_BrendanUnderwater[] = { overworld_frame(gObjectEventPic_BrendanUnderwater, 4, 4, 0), overworld_frame(gObjectEventPic_BrendanUnderwater, 4, 4, 1), overworld_frame(gObjectEventPic_BrendanUnderwater, 4, 4, 2), @@ -88,7 +88,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BrendanUnderwater[] = { overworld_frame(gObjectEventPic_BrendanUnderwater, 4, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_BrendanFieldMove[] = { +static const struct SpriteFrameImage sPicTable_BrendanFieldMove[] = { overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 0), overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 1), overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 2), @@ -96,7 +96,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BrendanFieldMove[] = { overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 4), }; -const struct SpriteFrameImage gObjectEventPicTable_QuintyPlump[] = { +static const struct SpriteFrameImage sPicTable_QuintyPlump[] = { overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 0), overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 1), overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 2), @@ -106,7 +106,7 @@ const struct SpriteFrameImage gObjectEventPicTable_QuintyPlump[] = { overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 6), }; -const struct SpriteFrameImage gObjectEventPicTable_NinjaBoy[] = { +static const struct SpriteFrameImage sPicTable_NinjaBoy[] = { overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 0), overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 1), overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 2), @@ -118,7 +118,7 @@ const struct SpriteFrameImage gObjectEventPicTable_NinjaBoy[] = { overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Twin[] = { +static const struct SpriteFrameImage sPicTable_Twin[] = { overworld_frame(gObjectEventPic_Twin, 2, 4, 0), overworld_frame(gObjectEventPic_Twin, 2, 4, 1), overworld_frame(gObjectEventPic_Twin, 2, 4, 2), @@ -130,7 +130,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Twin[] = { overworld_frame(gObjectEventPic_Twin, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Boy1[] = { +static const struct SpriteFrameImage sPicTable_Boy1[] = { overworld_frame(gObjectEventPic_Boy1, 2, 4, 0), overworld_frame(gObjectEventPic_Boy1, 2, 4, 1), overworld_frame(gObjectEventPic_Boy1, 2, 4, 2), @@ -142,7 +142,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Boy1[] = { overworld_frame(gObjectEventPic_Boy1, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Girl1[] = { +static const struct SpriteFrameImage sPicTable_Girl1[] = { overworld_frame(gObjectEventPic_Girl1, 2, 4, 0), overworld_frame(gObjectEventPic_Girl1, 2, 4, 1), overworld_frame(gObjectEventPic_Girl1, 2, 4, 2), @@ -154,7 +154,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Girl1[] = { overworld_frame(gObjectEventPic_Girl1, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Boy2[] = { +static const struct SpriteFrameImage sPicTable_Boy2[] = { overworld_frame(gObjectEventPic_Boy2, 2, 4, 0), overworld_frame(gObjectEventPic_Boy2, 2, 4, 1), overworld_frame(gObjectEventPic_Boy2, 2, 4, 2), @@ -166,7 +166,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Boy2[] = { overworld_frame(gObjectEventPic_Boy2, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Girl2[] = { +static const struct SpriteFrameImage sPicTable_Girl2[] = { overworld_frame(gObjectEventPic_Girl2, 2, 4, 0), overworld_frame(gObjectEventPic_Girl2, 2, 4, 1), overworld_frame(gObjectEventPic_Girl2, 2, 4, 2), @@ -178,7 +178,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Girl2[] = { overworld_frame(gObjectEventPic_Girl2, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_LittleBoy[] = { +static const struct SpriteFrameImage sPicTable_LittleBoy[] = { overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 0), overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 1), overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 2), @@ -190,7 +190,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LittleBoy[] = { overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_LittleGirl[] = { +static const struct SpriteFrameImage sPicTable_LittleGirl[] = { overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 0), overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 1), overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 2), @@ -202,7 +202,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LittleGirl[] = { overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Boy3[] = { +static const struct SpriteFrameImage sPicTable_Boy3[] = { overworld_frame(gObjectEventPic_Boy3, 2, 4, 0), overworld_frame(gObjectEventPic_Boy3, 2, 4, 1), overworld_frame(gObjectEventPic_Boy3, 2, 4, 2), @@ -214,7 +214,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Boy3[] = { overworld_frame(gObjectEventPic_Boy3, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Girl3[] = { +static const struct SpriteFrameImage sPicTable_Girl3[] = { overworld_frame(gObjectEventPic_Girl3, 2, 4, 0), overworld_frame(gObjectEventPic_Girl3, 2, 4, 1), overworld_frame(gObjectEventPic_Girl3, 2, 4, 2), @@ -226,7 +226,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Girl3[] = { overworld_frame(gObjectEventPic_Girl3, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_RichBoy[] = { +static const struct SpriteFrameImage sPicTable_RichBoy[] = { overworld_frame(gObjectEventPic_RichBoy, 2, 4, 0), overworld_frame(gObjectEventPic_RichBoy, 2, 4, 1), overworld_frame(gObjectEventPic_RichBoy, 2, 4, 2), @@ -238,7 +238,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RichBoy[] = { overworld_frame(gObjectEventPic_RichBoy, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Woman1[] = { +static const struct SpriteFrameImage sPicTable_Woman1[] = { overworld_frame(gObjectEventPic_Woman1, 2, 4, 0), overworld_frame(gObjectEventPic_Woman1, 2, 4, 1), overworld_frame(gObjectEventPic_Woman1, 2, 4, 2), @@ -250,7 +250,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Woman1[] = { overworld_frame(gObjectEventPic_Woman1, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_FatMan[] = { +static const struct SpriteFrameImage sPicTable_FatMan[] = { overworld_frame(gObjectEventPic_FatMan, 2, 4, 0), overworld_frame(gObjectEventPic_FatMan, 2, 4, 1), overworld_frame(gObjectEventPic_FatMan, 2, 4, 2), @@ -262,7 +262,7 @@ const struct SpriteFrameImage gObjectEventPicTable_FatMan[] = { overworld_frame(gObjectEventPic_FatMan, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_PokefanF[] = { +static const struct SpriteFrameImage sPicTable_PokefanF[] = { overworld_frame(gObjectEventPic_PokefanF, 2, 4, 0), overworld_frame(gObjectEventPic_PokefanF, 2, 4, 1), overworld_frame(gObjectEventPic_PokefanF, 2, 4, 2), @@ -274,7 +274,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PokefanF[] = { overworld_frame(gObjectEventPic_PokefanF, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Man1[] = { +static const struct SpriteFrameImage sPicTable_Man1[] = { overworld_frame(gObjectEventPic_Man1, 2, 4, 0), overworld_frame(gObjectEventPic_Man1, 2, 4, 1), overworld_frame(gObjectEventPic_Man1, 2, 4, 2), @@ -286,7 +286,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Man1[] = { overworld_frame(gObjectEventPic_Man1, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Woman2[] = { +static const struct SpriteFrameImage sPicTable_Woman2[] = { overworld_frame(gObjectEventPic_Woman2, 2, 4, 0), overworld_frame(gObjectEventPic_Woman2, 2, 4, 1), overworld_frame(gObjectEventPic_Woman2, 2, 4, 2), @@ -298,7 +298,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Woman2[] = { overworld_frame(gObjectEventPic_Woman2, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_ExpertM[] = { +static const struct SpriteFrameImage sPicTable_ExpertM[] = { overworld_frame(gObjectEventPic_ExpertM, 2, 4, 0), overworld_frame(gObjectEventPic_ExpertM, 2, 4, 1), overworld_frame(gObjectEventPic_ExpertM, 2, 4, 2), @@ -310,7 +310,7 @@ const struct SpriteFrameImage gObjectEventPicTable_ExpertM[] = { overworld_frame(gObjectEventPic_ExpertM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_ExpertF[] = { +static const struct SpriteFrameImage sPicTable_ExpertF[] = { overworld_frame(gObjectEventPic_ExpertF, 2, 4, 0), overworld_frame(gObjectEventPic_ExpertF, 2, 4, 1), overworld_frame(gObjectEventPic_ExpertF, 2, 4, 2), @@ -322,7 +322,7 @@ const struct SpriteFrameImage gObjectEventPicTable_ExpertF[] = { overworld_frame(gObjectEventPic_ExpertF, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Man2[] = { +static const struct SpriteFrameImage sPicTable_Man2[] = { overworld_frame(gObjectEventPic_Man2, 2, 4, 0), overworld_frame(gObjectEventPic_Man2, 2, 4, 1), overworld_frame(gObjectEventPic_Man2, 2, 4, 2), @@ -334,7 +334,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Man2[] = { overworld_frame(gObjectEventPic_Man2, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Woman3[] = { +static const struct SpriteFrameImage sPicTable_Woman3[] = { overworld_frame(gObjectEventPic_Woman3, 2, 4, 0), overworld_frame(gObjectEventPic_Woman3, 2, 4, 1), overworld_frame(gObjectEventPic_Woman3, 2, 4, 2), @@ -346,7 +346,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Woman3[] = { overworld_frame(gObjectEventPic_Woman3, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_PokefanM[] = { +static const struct SpriteFrameImage sPicTable_PokefanM[] = { overworld_frame(gObjectEventPic_PokefanM, 2, 4, 0), overworld_frame(gObjectEventPic_PokefanM, 2, 4, 1), overworld_frame(gObjectEventPic_PokefanM, 2, 4, 2), @@ -358,7 +358,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PokefanM[] = { overworld_frame(gObjectEventPic_PokefanM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Woman4[] = { +static const struct SpriteFrameImage sPicTable_Woman4[] = { overworld_frame(gObjectEventPic_Woman4, 2, 4, 0), overworld_frame(gObjectEventPic_Woman4, 2, 4, 1), overworld_frame(gObjectEventPic_Woman4, 2, 4, 2), @@ -370,7 +370,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Woman4[] = { overworld_frame(gObjectEventPic_Woman4, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Cook[] = { +static const struct SpriteFrameImage sPicTable_Cook[] = { overworld_frame(gObjectEventPic_Cook, 2, 4, 0), overworld_frame(gObjectEventPic_Cook, 2, 4, 1), overworld_frame(gObjectEventPic_Cook, 2, 4, 2), @@ -382,7 +382,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Cook[] = { overworld_frame(gObjectEventPic_Cook, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_LinkReceptionist[] = { +static const struct SpriteFrameImage sPicTable_LinkReceptionist[] = { overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 0), overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 1), overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 2), @@ -394,7 +394,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LinkReceptionist[] = { overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_OldMan[] = { +static const struct SpriteFrameImage sPicTable_OldMan[] = { overworld_frame(gObjectEventPic_OldMan, 2, 4, 0), overworld_frame(gObjectEventPic_OldMan, 2, 4, 1), overworld_frame(gObjectEventPic_OldMan, 2, 4, 2), @@ -406,7 +406,7 @@ const struct SpriteFrameImage gObjectEventPicTable_OldMan[] = { overworld_frame(gObjectEventPic_OldMan, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_OldWoman[] = { +static const struct SpriteFrameImage sPicTable_OldWoman[] = { overworld_frame(gObjectEventPic_OldWoman, 2, 4, 0), overworld_frame(gObjectEventPic_OldWoman, 2, 4, 1), overworld_frame(gObjectEventPic_OldWoman, 2, 4, 2), @@ -418,7 +418,7 @@ const struct SpriteFrameImage gObjectEventPicTable_OldWoman[] = { overworld_frame(gObjectEventPic_OldWoman, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Camper[] = { +static const struct SpriteFrameImage sPicTable_Camper[] = { overworld_frame(gObjectEventPic_Camper, 2, 4, 0), overworld_frame(gObjectEventPic_Camper, 2, 4, 1), overworld_frame(gObjectEventPic_Camper, 2, 4, 2), @@ -430,7 +430,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Camper[] = { overworld_frame(gObjectEventPic_Camper, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Picnicker[] = { +static const struct SpriteFrameImage sPicTable_Picnicker[] = { overworld_frame(gObjectEventPic_Picnicker, 2, 4, 0), overworld_frame(gObjectEventPic_Picnicker, 2, 4, 1), overworld_frame(gObjectEventPic_Picnicker, 2, 4, 2), @@ -442,7 +442,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Picnicker[] = { overworld_frame(gObjectEventPic_Picnicker, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Man3[] = { +static const struct SpriteFrameImage sPicTable_Man3[] = { overworld_frame(gObjectEventPic_Man3, 2, 4, 0), overworld_frame(gObjectEventPic_Man3, 2, 4, 1), overworld_frame(gObjectEventPic_Man3, 2, 4, 2), @@ -454,7 +454,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Man3[] = { overworld_frame(gObjectEventPic_Man3, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Woman5[] = { +static const struct SpriteFrameImage sPicTable_Woman5[] = { overworld_frame(gObjectEventPic_Woman5, 2, 4, 0), overworld_frame(gObjectEventPic_Woman5, 2, 4, 1), overworld_frame(gObjectEventPic_Woman5, 2, 4, 2), @@ -466,7 +466,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Woman5[] = { overworld_frame(gObjectEventPic_Woman5, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Youngster[] = { +static const struct SpriteFrameImage sPicTable_Youngster[] = { overworld_frame(gObjectEventPic_Youngster, 2, 4, 0), overworld_frame(gObjectEventPic_Youngster, 2, 4, 1), overworld_frame(gObjectEventPic_Youngster, 2, 4, 2), @@ -478,7 +478,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Youngster[] = { overworld_frame(gObjectEventPic_Youngster, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_BugCatcher[] = { +static const struct SpriteFrameImage sPicTable_BugCatcher[] = { overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 0), overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 1), overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 2), @@ -490,7 +490,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BugCatcher[] = { overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_PsychicM[] = { +static const struct SpriteFrameImage sPicTable_PsychicM[] = { overworld_frame(gObjectEventPic_PsychicM, 2, 4, 0), overworld_frame(gObjectEventPic_PsychicM, 2, 4, 1), overworld_frame(gObjectEventPic_PsychicM, 2, 4, 2), @@ -502,7 +502,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PsychicM[] = { overworld_frame(gObjectEventPic_PsychicM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_SchoolKidM[] = { +static const struct SpriteFrameImage sPicTable_SchoolKidM[] = { overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 0), overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 1), overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 2), @@ -514,7 +514,7 @@ const struct SpriteFrameImage gObjectEventPicTable_SchoolKidM[] = { overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Maniac[] = { +static const struct SpriteFrameImage sPicTable_Maniac[] = { overworld_frame(gObjectEventPic_Maniac, 2, 4, 0), overworld_frame(gObjectEventPic_Maniac, 2, 4, 1), overworld_frame(gObjectEventPic_Maniac, 2, 4, 2), @@ -526,7 +526,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Maniac[] = { overworld_frame(gObjectEventPic_Maniac, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_HexManiac[] = { +static const struct SpriteFrameImage sPicTable_HexManiac[] = { overworld_frame(gObjectEventPic_HexManiac, 2, 4, 0), overworld_frame(gObjectEventPic_HexManiac, 2, 4, 1), overworld_frame(gObjectEventPic_HexManiac, 2, 4, 2), @@ -538,7 +538,7 @@ const struct SpriteFrameImage gObjectEventPicTable_HexManiac[] = { overworld_frame(gObjectEventPic_HexManiac, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_SwimmerM[] = { +static const struct SpriteFrameImage sPicTable_SwimmerM[] = { overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 0), overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 1), overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 2), @@ -550,7 +550,7 @@ const struct SpriteFrameImage gObjectEventPicTable_SwimmerM[] = { overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_SwimmerF[] = { +static const struct SpriteFrameImage sPicTable_SwimmerF[] = { overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 0), overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 1), overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 2), @@ -562,7 +562,7 @@ const struct SpriteFrameImage gObjectEventPicTable_SwimmerF[] = { overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_BlackBelt[] = { +static const struct SpriteFrameImage sPicTable_BlackBelt[] = { overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 0), overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 1), overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 2), @@ -574,7 +574,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BlackBelt[] = { overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Beauty[] = { +static const struct SpriteFrameImage sPicTable_Beauty[] = { overworld_frame(gObjectEventPic_Beauty, 2, 4, 0), overworld_frame(gObjectEventPic_Beauty, 2, 4, 1), overworld_frame(gObjectEventPic_Beauty, 2, 4, 2), @@ -586,7 +586,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Beauty[] = { overworld_frame(gObjectEventPic_Beauty, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Scientist1[] = { +static const struct SpriteFrameImage sPicTable_Scientist1[] = { overworld_frame(gObjectEventPic_Scientist1, 2, 4, 0), overworld_frame(gObjectEventPic_Scientist1, 2, 4, 1), overworld_frame(gObjectEventPic_Scientist1, 2, 4, 2), @@ -598,7 +598,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Scientist1[] = { overworld_frame(gObjectEventPic_Scientist1, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Lass[] = { +static const struct SpriteFrameImage sPicTable_Lass[] = { overworld_frame(gObjectEventPic_Lass, 2, 4, 0), overworld_frame(gObjectEventPic_Lass, 2, 4, 1), overworld_frame(gObjectEventPic_Lass, 2, 4, 2), @@ -610,7 +610,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Lass[] = { overworld_frame(gObjectEventPic_Lass, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Gentleman[] = { +static const struct SpriteFrameImage sPicTable_Gentleman[] = { overworld_frame(gObjectEventPic_Gentleman, 2, 4, 0), overworld_frame(gObjectEventPic_Gentleman, 2, 4, 1), overworld_frame(gObjectEventPic_Gentleman, 2, 4, 2), @@ -622,7 +622,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Gentleman[] = { overworld_frame(gObjectEventPic_Gentleman, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Sailor[] = { +static const struct SpriteFrameImage sPicTable_Sailor[] = { overworld_frame(gObjectEventPic_Sailor, 2, 4, 0), overworld_frame(gObjectEventPic_Sailor, 2, 4, 1), overworld_frame(gObjectEventPic_Sailor, 2, 4, 2), @@ -634,7 +634,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Sailor[] = { overworld_frame(gObjectEventPic_Sailor, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Fisherman[] = { +static const struct SpriteFrameImage sPicTable_Fisherman[] = { overworld_frame(gObjectEventPic_Fisherman, 2, 4, 0), overworld_frame(gObjectEventPic_Fisherman, 2, 4, 1), overworld_frame(gObjectEventPic_Fisherman, 2, 4, 2), @@ -646,7 +646,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Fisherman[] = { overworld_frame(gObjectEventPic_Fisherman, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_RunningTriathleteM[] = { +static const struct SpriteFrameImage sPicTable_RunningTriathleteM[] = { overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 0), overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 1), overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 2), @@ -658,7 +658,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RunningTriathleteM[] = { overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_RunningTriathleteF[] = { +static const struct SpriteFrameImage sPicTable_RunningTriathleteF[] = { overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 0), overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 1), overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 2), @@ -670,7 +670,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RunningTriathleteF[] = { overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_TuberF[] = { +static const struct SpriteFrameImage sPicTable_TuberF[] = { overworld_frame(gObjectEventPic_TuberF, 2, 2, 0), overworld_frame(gObjectEventPic_TuberF, 2, 2, 1), overworld_frame(gObjectEventPic_TuberF, 2, 2, 2), @@ -682,7 +682,7 @@ const struct SpriteFrameImage gObjectEventPicTable_TuberF[] = { overworld_frame(gObjectEventPic_TuberF, 2, 2, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_TuberM[] = { +static const struct SpriteFrameImage sPicTable_TuberM[] = { overworld_frame(gObjectEventPic_TuberM, 2, 2, 0), overworld_frame(gObjectEventPic_TuberM, 2, 2, 1), overworld_frame(gObjectEventPic_TuberM, 2, 2, 2), @@ -694,7 +694,7 @@ const struct SpriteFrameImage gObjectEventPicTable_TuberM[] = { overworld_frame(gObjectEventPic_TuberM, 2, 2, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Hiker[] = { +static const struct SpriteFrameImage sPicTable_Hiker[] = { overworld_frame(gObjectEventPic_Hiker, 2, 4, 0), overworld_frame(gObjectEventPic_Hiker, 2, 4, 1), overworld_frame(gObjectEventPic_Hiker, 2, 4, 2), @@ -706,7 +706,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Hiker[] = { overworld_frame(gObjectEventPic_Hiker, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_CyclingTriathleteM[] = { +static const struct SpriteFrameImage sPicTable_CyclingTriathleteM[] = { overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 0), overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 1), overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 2), @@ -718,7 +718,7 @@ const struct SpriteFrameImage gObjectEventPicTable_CyclingTriathleteM[] = { overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_CyclingTriathleteF[] = { +static const struct SpriteFrameImage sPicTable_CyclingTriathleteF[] = { overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 0), overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 1), overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 2), @@ -730,7 +730,7 @@ const struct SpriteFrameImage gObjectEventPicTable_CyclingTriathleteF[] = { overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Nurse[] = { +static const struct SpriteFrameImage sPicTable_Nurse[] = { overworld_frame(gObjectEventPic_Nurse, 2, 4, 0), overworld_frame(gObjectEventPic_Nurse, 2, 4, 1), overworld_frame(gObjectEventPic_Nurse, 2, 4, 2), @@ -743,11 +743,11 @@ const struct SpriteFrameImage gObjectEventPicTable_Nurse[] = { overworld_frame(gObjectEventPic_Nurse, 2, 4, 3), }; -const struct SpriteFrameImage gObjectEventPicTable_ItemBall[] = { +static const struct SpriteFrameImage sPicTable_ItemBall[] = { obj_frame_tiles(gObjectEventPic_ItemBall), }; -const struct SpriteFrameImage gObjectEventPicTable_ProfBirch[] = { +static const struct SpriteFrameImage sPicTable_ProfBirch[] = { overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 0), overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 1), overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 2), @@ -759,7 +759,7 @@ const struct SpriteFrameImage gObjectEventPicTable_ProfBirch[] = { overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Man4[] = { +static const struct SpriteFrameImage sPicTable_Man4[] = { overworld_frame(gObjectEventPic_Man4, 2, 4, 0), overworld_frame(gObjectEventPic_Man4, 2, 4, 1), overworld_frame(gObjectEventPic_Man4, 2, 4, 2), @@ -771,7 +771,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Man4[] = { overworld_frame(gObjectEventPic_Man4, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Man5[] = { +static const struct SpriteFrameImage sPicTable_Man5[] = { overworld_frame(gObjectEventPic_Man5, 2, 4, 0), overworld_frame(gObjectEventPic_Man5, 2, 4, 1), overworld_frame(gObjectEventPic_Man5, 2, 4, 2), @@ -783,7 +783,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Man5[] = { overworld_frame(gObjectEventPic_Man5, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_ReporterM[] = { +static const struct SpriteFrameImage sPicTable_ReporterM[] = { overworld_frame(gObjectEventPic_ReporterM, 2, 4, 0), overworld_frame(gObjectEventPic_ReporterM, 2, 4, 1), overworld_frame(gObjectEventPic_ReporterM, 2, 4, 2), @@ -795,7 +795,7 @@ const struct SpriteFrameImage gObjectEventPicTable_ReporterM[] = { overworld_frame(gObjectEventPic_ReporterM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_ReporterF[] = { +static const struct SpriteFrameImage sPicTable_ReporterF[] = { overworld_frame(gObjectEventPic_ReporterF, 2, 4, 0), overworld_frame(gObjectEventPic_ReporterF, 2, 4, 1), overworld_frame(gObjectEventPic_ReporterF, 2, 4, 2), @@ -807,7 +807,7 @@ const struct SpriteFrameImage gObjectEventPicTable_ReporterF[] = { overworld_frame(gObjectEventPic_ReporterF, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MauvilleOldMan1[] = { +static const struct SpriteFrameImage sPicTable_MauvilleOldMan1[] = { overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 0), overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 1), overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 2), @@ -819,7 +819,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MauvilleOldMan1[] = { overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MauvilleOldMan2[] = { +static const struct SpriteFrameImage sPicTable_MauvilleOldMan2[] = { overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 0), overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 1), overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 2), @@ -831,38 +831,38 @@ const struct SpriteFrameImage gObjectEventPicTable_MauvilleOldMan2[] = { overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_UnusedNatuDoll[] = { +static const struct SpriteFrameImage sPicTable_UnusedNatuDoll[] = { obj_frame_tiles(gObjectEventPic_UnusedNatuDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_UnusedMagnemiteDoll[] = { +static const struct SpriteFrameImage sPicTable_UnusedMagnemiteDoll[] = { obj_frame_tiles(gObjectEventPic_UnusedMagnemiteDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_UnusedSquirtleDoll[] = { +static const struct SpriteFrameImage sPicTable_UnusedSquirtleDoll[] = { obj_frame_tiles(gObjectEventPic_UnusedSquirtleDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_UnusedWooperDoll[] = { +static const struct SpriteFrameImage sPicTable_UnusedWooperDoll[] = { obj_frame_tiles(gObjectEventPic_UnusedWooperDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_UnusedPikachuDoll[] = { +static const struct SpriteFrameImage sPicTable_UnusedPikachuDoll[] = { obj_frame_tiles(gObjectEventPic_UnusedPikachuDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_UnusedPorygon2Doll[] = { +static const struct SpriteFrameImage sPicTable_UnusedPorygon2Doll[] = { obj_frame_tiles(gObjectEventPic_UnusedPorygon2Doll), }; -const struct SpriteFrameImage gObjectEventPicTable_CuttableTree[] = { +static const struct SpriteFrameImage sPicTable_CuttableTree[] = { overworld_frame(gObjectEventPic_CuttableTree, 2, 2, 0), overworld_frame(gObjectEventPic_CuttableTree, 2, 2, 1), overworld_frame(gObjectEventPic_CuttableTree, 2, 2, 2), overworld_frame(gObjectEventPic_CuttableTree, 2, 2, 3), }; -const struct SpriteFrameImage gObjectEventPicTable_MartEmployee[] = { +static const struct SpriteFrameImage sPicTable_MartEmployee[] = { overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 0), overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 1), overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 2), @@ -874,7 +874,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MartEmployee[] = { overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_RooftopSaleWoman[] = { +static const struct SpriteFrameImage sPicTable_RooftopSaleWoman[] = { overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 0), overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 1), overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 2), @@ -886,7 +886,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RooftopSaleWoman[] = { overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Teala[] = { +static const struct SpriteFrameImage sPicTable_Teala[] = { overworld_frame(gObjectEventPic_Teala, 2, 4, 0), overworld_frame(gObjectEventPic_Teala, 2, 4, 1), overworld_frame(gObjectEventPic_Teala, 2, 4, 2), @@ -898,18 +898,18 @@ const struct SpriteFrameImage gObjectEventPicTable_Teala[] = { overworld_frame(gObjectEventPic_Teala, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_BreakableRock[] = { +static const struct SpriteFrameImage sPicTable_BreakableRock[] = { overworld_frame(gObjectEventPic_BreakableRock, 2, 2, 0), overworld_frame(gObjectEventPic_BreakableRock, 2, 2, 1), overworld_frame(gObjectEventPic_BreakableRock, 2, 2, 2), overworld_frame(gObjectEventPic_BreakableRock, 2, 2, 3), }; -const struct SpriteFrameImage gObjectEventPicTable_PushableBoulder[] = { +static const struct SpriteFrameImage sPicTable_PushableBoulder[] = { obj_frame_tiles(gObjectEventPic_PushableBoulder), }; -const struct SpriteFrameImage gObjectEventPicTable_MrBrineysBoat[] = { +static const struct SpriteFrameImage sPicTable_MrBrineysBoat[] = { overworld_frame(gObjectEventPic_MrBrineysBoat, 4, 4, 0), overworld_frame(gObjectEventPic_MrBrineysBoat, 4, 4, 1), overworld_frame(gObjectEventPic_MrBrineysBoat, 4, 4, 2), @@ -921,11 +921,11 @@ const struct SpriteFrameImage gObjectEventPicTable_MrBrineysBoat[] = { overworld_frame(gObjectEventPic_MrBrineysBoat, 4, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Truck[] = { +static const struct SpriteFrameImage sPicTable_Truck[] = { obj_frame_tiles(gObjectEventPic_Truck), }; -const struct SpriteFrameImage gObjectEventPicTable_VigorothCarryingBox[] = { +static const struct SpriteFrameImage sPicTable_VigorothCarryingBox[] = { overworld_frame(gObjectEventPic_Vigoroth, 4, 4, 0), overworld_frame(gObjectEventPic_Vigoroth, 4, 4, 0), overworld_frame(gObjectEventPic_Vigoroth, 4, 4, 0), @@ -937,7 +937,7 @@ const struct SpriteFrameImage gObjectEventPicTable_VigorothCarryingBox[] = { overworld_frame(gObjectEventPic_Vigoroth, 4, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_VigorothFacingAway[] = { +static const struct SpriteFrameImage sPicTable_VigorothFacingAway[] = { overworld_frame(gObjectEventPic_Vigoroth, 4, 4, 3), overworld_frame(gObjectEventPic_Vigoroth, 4, 4, 3), overworld_frame(gObjectEventPic_Vigoroth, 4, 4, 3), @@ -949,11 +949,11 @@ const struct SpriteFrameImage gObjectEventPicTable_VigorothFacingAway[] = { overworld_frame(gObjectEventPic_Vigoroth, 4, 4, 4), }; -const struct SpriteFrameImage gObjectEventPicTable_BirchsBag[] = { +static const struct SpriteFrameImage sPicTable_BirchsBag[] = { obj_frame_tiles(gObjectEventPic_BirchsBag), }; -const struct SpriteFrameImage gObjectEventPicTable_EnemyZigzagoon[] = { +static const struct SpriteFrameImage sPicTable_EnemyZigzagoon[] = { overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 0), overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 1), overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 2), @@ -965,7 +965,7 @@ const struct SpriteFrameImage gObjectEventPicTable_EnemyZigzagoon[] = { overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Poochyena[] = { +static const struct SpriteFrameImage sPicTable_Poochyena[] = { overworld_frame(gObjectEventPic_Poochyena, 4, 4, 0), overworld_frame(gObjectEventPic_Poochyena, 4, 4, 1), overworld_frame(gObjectEventPic_Poochyena, 4, 4, 2), @@ -977,7 +977,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Poochyena[] = { overworld_frame(gObjectEventPic_Poochyena, 4, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Artist[] = { +static const struct SpriteFrameImage sPicTable_Artist[] = { overworld_frame(gObjectEventPic_Artist, 2, 4, 0), overworld_frame(gObjectEventPic_Artist, 2, 4, 1), overworld_frame(gObjectEventPic_Artist, 2, 4, 2), @@ -989,7 +989,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Artist[] = { overworld_frame(gObjectEventPic_Artist, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MayNormal[] = { +static const struct SpriteFrameImage sPicTable_MayNormal[] = { overworld_frame(gObjectEventPic_MayNormal, 2, 4, 0), overworld_frame(gObjectEventPic_MayNormal, 2, 4, 1), overworld_frame(gObjectEventPic_MayNormal, 2, 4, 2), @@ -1010,7 +1010,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MayNormal[] = { overworld_frame(gObjectEventPic_MayRunning, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MayMachBike[] = { +static const struct SpriteFrameImage sPicTable_MayMachBike[] = { overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 0), overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 1), overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 2), @@ -1022,7 +1022,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MayMachBike[] = { overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MayAcroBike[] = { +static const struct SpriteFrameImage sPicTable_MayAcroBike[] = { overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 0), overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 1), overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 2), @@ -1052,7 +1052,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MayAcroBike[] = { overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 26), }; -const struct SpriteFrameImage gObjectEventPicTable_MaySurfing[] = { +static const struct SpriteFrameImage sPicTable_MaySurfing[] = { overworld_frame(gObjectEventPic_MaySurfing, 4, 4, 0), overworld_frame(gObjectEventPic_MaySurfing, 4, 4, 2), overworld_frame(gObjectEventPic_MaySurfing, 4, 4, 4), @@ -1067,7 +1067,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MaySurfing[] = { overworld_frame(gObjectEventPic_MaySurfing, 4, 4, 5), }; -const struct SpriteFrameImage gObjectEventPicTable_MayUnderwater[] = { +static const struct SpriteFrameImage sPicTable_MayUnderwater[] = { overworld_frame(gObjectEventPic_MayUnderwater, 4, 4, 0), overworld_frame(gObjectEventPic_MayUnderwater, 4, 4, 1), overworld_frame(gObjectEventPic_MayUnderwater, 4, 4, 2), @@ -1079,7 +1079,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MayUnderwater[] = { overworld_frame(gObjectEventPic_MayUnderwater, 4, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_MayFieldMove[] = { +static const struct SpriteFrameImage sPicTable_MayFieldMove[] = { overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 0), overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 1), overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 2), @@ -1087,7 +1087,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MayFieldMove[] = { overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 4), }; -const struct SpriteFrameImage gObjectEventPicTable_Cameraman[] = { +static const struct SpriteFrameImage sPicTable_Cameraman[] = { overworld_frame(gObjectEventPic_Cameraman, 2, 4, 0), overworld_frame(gObjectEventPic_Cameraman, 2, 4, 1), overworld_frame(gObjectEventPic_Cameraman, 2, 4, 2), @@ -1099,15 +1099,15 @@ const struct SpriteFrameImage gObjectEventPicTable_Cameraman[] = { overworld_frame(gObjectEventPic_Cameraman, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MovingBox[] = { +static const struct SpriteFrameImage sPicTable_MovingBox[] = { obj_frame_tiles(gObjectEventPic_MovingBox), }; -const struct SpriteFrameImage gObjectEventPicTable_CableCar[] = { +static const struct SpriteFrameImage sPicTable_CableCar[] = { obj_frame_tiles(gObjectEventPic_CableCar), }; -const struct SpriteFrameImage gObjectEventPicTable_Scientist2[] = { +static const struct SpriteFrameImage sPicTable_Scientist2[] = { overworld_frame(gObjectEventPic_Scientist2, 2, 4, 0), overworld_frame(gObjectEventPic_Scientist2, 2, 4, 1), overworld_frame(gObjectEventPic_Scientist2, 2, 4, 2), @@ -1119,7 +1119,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Scientist2[] = { overworld_frame(gObjectEventPic_Scientist2, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_DevonEmployee[] = { +static const struct SpriteFrameImage sPicTable_DevonEmployee[] = { overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 0), overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 1), overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 2), @@ -1131,7 +1131,7 @@ const struct SpriteFrameImage gObjectEventPicTable_DevonEmployee[] = { overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_AquaMemberM[] = { +static const struct SpriteFrameImage sPicTable_AquaMemberM[] = { overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 0), overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 1), overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 2), @@ -1143,7 +1143,7 @@ const struct SpriteFrameImage gObjectEventPicTable_AquaMemberM[] = { overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_AquaMemberF[] = { +static const struct SpriteFrameImage sPicTable_AquaMemberF[] = { overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 0), overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 1), overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 2), @@ -1155,7 +1155,7 @@ const struct SpriteFrameImage gObjectEventPicTable_AquaMemberF[] = { overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MagmaMemberM[] = { +static const struct SpriteFrameImage sPicTable_MagmaMemberM[] = { overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 0), overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 1), overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 2), @@ -1167,7 +1167,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MagmaMemberM[] = { overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MagmaMemberF[] = { +static const struct SpriteFrameImage sPicTable_MagmaMemberF[] = { overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 0), overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 1), overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 2), @@ -1179,7 +1179,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MagmaMemberF[] = { overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Sidney[] = { +static const struct SpriteFrameImage sPicTable_Sidney[] = { overworld_frame(gObjectEventPic_Sidney, 2, 4, 0), overworld_frame(gObjectEventPic_Sidney, 2, 4, 1), overworld_frame(gObjectEventPic_Sidney, 2, 4, 2), @@ -1191,7 +1191,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Sidney[] = { overworld_frame(gObjectEventPic_Sidney, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Phoebe[] = { +static const struct SpriteFrameImage sPicTable_Phoebe[] = { overworld_frame(gObjectEventPic_Phoebe, 2, 4, 0), overworld_frame(gObjectEventPic_Phoebe, 2, 4, 1), overworld_frame(gObjectEventPic_Phoebe, 2, 4, 2), @@ -1203,7 +1203,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Phoebe[] = { overworld_frame(gObjectEventPic_Phoebe, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Glacia[] = { +static const struct SpriteFrameImage sPicTable_Glacia[] = { overworld_frame(gObjectEventPic_Glacia, 2, 4, 0), overworld_frame(gObjectEventPic_Glacia, 2, 4, 1), overworld_frame(gObjectEventPic_Glacia, 2, 4, 2), @@ -1215,7 +1215,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Glacia[] = { overworld_frame(gObjectEventPic_Glacia, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Drake[] = { +static const struct SpriteFrameImage sPicTable_Drake[] = { overworld_frame(gObjectEventPic_Drake, 2, 4, 0), overworld_frame(gObjectEventPic_Drake, 2, 4, 1), overworld_frame(gObjectEventPic_Drake, 2, 4, 2), @@ -1227,7 +1227,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Drake[] = { overworld_frame(gObjectEventPic_Drake, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Roxanne[] = { +static const struct SpriteFrameImage sPicTable_Roxanne[] = { overworld_frame(gObjectEventPic_Roxanne, 2, 4, 0), overworld_frame(gObjectEventPic_Roxanne, 2, 4, 1), overworld_frame(gObjectEventPic_Roxanne, 2, 4, 2), @@ -1239,7 +1239,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Roxanne[] = { overworld_frame(gObjectEventPic_Roxanne, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Brawly[] = { +static const struct SpriteFrameImage sPicTable_Brawly[] = { overworld_frame(gObjectEventPic_Brawly, 2, 4, 0), overworld_frame(gObjectEventPic_Brawly, 2, 4, 1), overworld_frame(gObjectEventPic_Brawly, 2, 4, 2), @@ -1251,7 +1251,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Brawly[] = { overworld_frame(gObjectEventPic_Brawly, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Wattson[] = { +static const struct SpriteFrameImage sPicTable_Wattson[] = { overworld_frame(gObjectEventPic_Wattson, 2, 4, 0), overworld_frame(gObjectEventPic_Wattson, 2, 4, 1), overworld_frame(gObjectEventPic_Wattson, 2, 4, 2), @@ -1263,7 +1263,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Wattson[] = { overworld_frame(gObjectEventPic_Wattson, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Flannery[] = { +static const struct SpriteFrameImage sPicTable_Flannery[] = { overworld_frame(gObjectEventPic_Flannery, 2, 4, 0), overworld_frame(gObjectEventPic_Flannery, 2, 4, 1), overworld_frame(gObjectEventPic_Flannery, 2, 4, 2), @@ -1275,7 +1275,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Flannery[] = { overworld_frame(gObjectEventPic_Flannery, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Norman[] = { +static const struct SpriteFrameImage sPicTable_Norman[] = { overworld_frame(gObjectEventPic_Norman, 2, 4, 0), overworld_frame(gObjectEventPic_Norman, 2, 4, 1), overworld_frame(gObjectEventPic_Norman, 2, 4, 2), @@ -1287,7 +1287,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Norman[] = { overworld_frame(gObjectEventPic_Norman, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Winona[] = { +static const struct SpriteFrameImage sPicTable_Winona[] = { overworld_frame(gObjectEventPic_Winona, 2, 4, 0), overworld_frame(gObjectEventPic_Winona, 2, 4, 1), overworld_frame(gObjectEventPic_Winona, 2, 4, 2), @@ -1299,7 +1299,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Winona[] = { overworld_frame(gObjectEventPic_Winona, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Liza[] = { +static const struct SpriteFrameImage sPicTable_Liza[] = { overworld_frame(gObjectEventPic_Liza, 2, 4, 0), overworld_frame(gObjectEventPic_Liza, 2, 4, 1), overworld_frame(gObjectEventPic_Liza, 2, 4, 2), @@ -1311,7 +1311,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Liza[] = { overworld_frame(gObjectEventPic_Liza, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Tate[] = { +static const struct SpriteFrameImage sPicTable_Tate[] = { overworld_frame(gObjectEventPic_Tate, 2, 4, 0), overworld_frame(gObjectEventPic_Tate, 2, 4, 1), overworld_frame(gObjectEventPic_Tate, 2, 4, 2), @@ -1323,7 +1323,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Tate[] = { overworld_frame(gObjectEventPic_Tate, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Wallace[] = { +static const struct SpriteFrameImage sPicTable_Wallace[] = { overworld_frame(gObjectEventPic_Wallace, 2, 4, 0), overworld_frame(gObjectEventPic_Wallace, 2, 4, 1), overworld_frame(gObjectEventPic_Wallace, 2, 4, 2), @@ -1335,7 +1335,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Wallace[] = { overworld_frame(gObjectEventPic_Wallace, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Steven[] = { +static const struct SpriteFrameImage sPicTable_Steven[] = { overworld_frame(gObjectEventPic_Steven, 2, 4, 0), overworld_frame(gObjectEventPic_Steven, 2, 4, 1), overworld_frame(gObjectEventPic_Steven, 2, 4, 2), @@ -1347,7 +1347,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Steven[] = { overworld_frame(gObjectEventPic_Steven, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Wally[] = { +static const struct SpriteFrameImage sPicTable_Wally[] = { overworld_frame(gObjectEventPic_Wally, 2, 4, 0), overworld_frame(gObjectEventPic_Wally, 2, 4, 1), overworld_frame(gObjectEventPic_Wally, 2, 4, 2), @@ -1359,7 +1359,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Wally[] = { overworld_frame(gObjectEventPic_Wally, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_RubySapphireLittleBoy[] = { +static const struct SpriteFrameImage sPicTable_RubySapphireLittleBoy[] = { overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 0), overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 1), overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 2), @@ -1371,7 +1371,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RubySapphireLittleBoy[] = { overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_BrendanFishing[] = { +static const struct SpriteFrameImage sPicTable_BrendanFishing[] = { overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 0), overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 1), overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 2), @@ -1386,7 +1386,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BrendanFishing[] = { overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 11), }; -const struct SpriteFrameImage gObjectEventPicTable_MayFishing[] = { +static const struct SpriteFrameImage sPicTable_MayFishing[] = { overworld_frame(gObjectEventPic_MayFishing, 4, 4, 0), overworld_frame(gObjectEventPic_MayFishing, 4, 4, 1), overworld_frame(gObjectEventPic_MayFishing, 4, 4, 2), @@ -1401,7 +1401,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MayFishing[] = { overworld_frame(gObjectEventPic_MayFishing, 4, 4, 11), }; -const struct SpriteFrameImage gObjectEventPicTable_HotSpringsOldWoman[] = { +static const struct SpriteFrameImage sPicTable_HotSpringsOldWoman[] = { overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 0), overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 1), overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 2), @@ -1413,7 +1413,7 @@ const struct SpriteFrameImage gObjectEventPicTable_HotSpringsOldWoman[] = { overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_SSTidal[] = { +static const struct SpriteFrameImage sPicTable_SSTidal[] = { obj_frame_tiles(gObjectEventPic_SSTidal), obj_frame_tiles(gObjectEventPic_SSTidal), obj_frame_tiles(gObjectEventPic_SSTidal), @@ -1425,7 +1425,7 @@ const struct SpriteFrameImage gObjectEventPicTable_SSTidal[] = { obj_frame_tiles(gObjectEventPic_SSTidal), }; -const struct SpriteFrameImage gObjectEventPicTable_SubmarineShadow[] = { +static const struct SpriteFrameImage sPicTable_SubmarineShadow[] = { obj_frame_tiles(gObjectEventPic_SubmarineShadow), obj_frame_tiles(gObjectEventPic_SubmarineShadow), obj_frame_tiles(gObjectEventPic_SubmarineShadow), @@ -1437,187 +1437,187 @@ const struct SpriteFrameImage gObjectEventPicTable_SubmarineShadow[] = { obj_frame_tiles(gObjectEventPic_SubmarineShadow), }; -const struct SpriteFrameImage gObjectEventPicTable_PichuDoll[] = { +static const struct SpriteFrameImage sPicTable_PichuDoll[] = { obj_frame_tiles(gObjectEventPic_PichuDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_PikachuDoll[] = { +static const struct SpriteFrameImage sPicTable_PikachuDoll[] = { obj_frame_tiles(gObjectEventPic_PikachuDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_MarillDoll[] = { +static const struct SpriteFrameImage sPicTable_MarillDoll[] = { obj_frame_tiles(gObjectEventPic_MarillDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_TogepiDoll[] = { +static const struct SpriteFrameImage sPicTable_TogepiDoll[] = { obj_frame_tiles(gObjectEventPic_TogepiDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_CyndaquilDoll[] = { +static const struct SpriteFrameImage sPicTable_CyndaquilDoll[] = { obj_frame_tiles(gObjectEventPic_CyndaquilDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_ChikoritaDoll[] = { +static const struct SpriteFrameImage sPicTable_ChikoritaDoll[] = { obj_frame_tiles(gObjectEventPic_ChikoritaDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_TotodileDoll[] = { +static const struct SpriteFrameImage sPicTable_TotodileDoll[] = { obj_frame_tiles(gObjectEventPic_TotodileDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_JigglypuffDoll[] = { +static const struct SpriteFrameImage sPicTable_JigglypuffDoll[] = { obj_frame_tiles(gObjectEventPic_JigglypuffDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_MeowthDoll[] = { +static const struct SpriteFrameImage sPicTable_MeowthDoll[] = { obj_frame_tiles(gObjectEventPic_MeowthDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_ClefairyDoll[] = { +static const struct SpriteFrameImage sPicTable_ClefairyDoll[] = { obj_frame_tiles(gObjectEventPic_ClefairyDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_DittoDoll[] = { +static const struct SpriteFrameImage sPicTable_DittoDoll[] = { obj_frame_tiles(gObjectEventPic_DittoDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_SmoochumDoll[] = { +static const struct SpriteFrameImage sPicTable_SmoochumDoll[] = { obj_frame_tiles(gObjectEventPic_SmoochumDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_TreeckoDoll[] = { +static const struct SpriteFrameImage sPicTable_TreeckoDoll[] = { obj_frame_tiles(gObjectEventPic_TreeckoDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_TorchicDoll[] = { +static const struct SpriteFrameImage sPicTable_TorchicDoll[] = { obj_frame_tiles(gObjectEventPic_TorchicDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_MudkipDoll[] = { +static const struct SpriteFrameImage sPicTable_MudkipDoll[] = { obj_frame_tiles(gObjectEventPic_MudkipDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_DuskullDoll[] = { +static const struct SpriteFrameImage sPicTable_DuskullDoll[] = { obj_frame_tiles(gObjectEventPic_DuskullDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_WynautDoll[] = { +static const struct SpriteFrameImage sPicTable_WynautDoll[] = { obj_frame_tiles(gObjectEventPic_WynautDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BaltoyDoll[] = { +static const struct SpriteFrameImage sPicTable_BaltoyDoll[] = { obj_frame_tiles(gObjectEventPic_BaltoyDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_KecleonDoll[] = { +static const struct SpriteFrameImage sPicTable_KecleonDoll[] = { obj_frame_tiles(gObjectEventPic_KecleonDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_AzurillDoll[] = { +static const struct SpriteFrameImage sPicTable_AzurillDoll[] = { obj_frame_tiles(gObjectEventPic_AzurillDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_SkittyDoll[] = { +static const struct SpriteFrameImage sPicTable_SkittyDoll[] = { obj_frame_tiles(gObjectEventPic_SkittyDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_SwabluDoll[] = { +static const struct SpriteFrameImage sPicTable_SwabluDoll[] = { obj_frame_tiles(gObjectEventPic_SwabluDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_GulpinDoll[] = { +static const struct SpriteFrameImage sPicTable_GulpinDoll[] = { obj_frame_tiles(gObjectEventPic_GulpinDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_LotadDoll[] = { +static const struct SpriteFrameImage sPicTable_LotadDoll[] = { obj_frame_tiles(gObjectEventPic_LotadDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_SeedotDoll[] = { +static const struct SpriteFrameImage sPicTable_SeedotDoll[] = { obj_frame_tiles(gObjectEventPic_SeedotDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_PikaCushion[] = { +static const struct SpriteFrameImage sPicTable_PikaCushion[] = { obj_frame_tiles(gObjectEventPic_PikaCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_RoundCushion[] = { +static const struct SpriteFrameImage sPicTable_RoundCushion[] = { obj_frame_tiles(gObjectEventPic_RoundCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_KissCushion[] = { +static const struct SpriteFrameImage sPicTable_KissCushion[] = { obj_frame_tiles(gObjectEventPic_KissCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_ZigzagCushion[] = { +static const struct SpriteFrameImage sPicTable_ZigzagCushion[] = { obj_frame_tiles(gObjectEventPic_ZigzagCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_SpinCushion[] = { +static const struct SpriteFrameImage sPicTable_SpinCushion[] = { obj_frame_tiles(gObjectEventPic_SpinCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_DiamondCushion[] = { +static const struct SpriteFrameImage sPicTable_DiamondCushion[] = { obj_frame_tiles(gObjectEventPic_DiamondCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_BallCushion[] = { +static const struct SpriteFrameImage sPicTable_BallCushion[] = { obj_frame_tiles(gObjectEventPic_BallCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_GrassCushion[] = { +static const struct SpriteFrameImage sPicTable_GrassCushion[] = { obj_frame_tiles(gObjectEventPic_GrassCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_FireCushion[] = { +static const struct SpriteFrameImage sPicTable_FireCushion[] = { obj_frame_tiles(gObjectEventPic_FireCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_WaterCushion[] = { +static const struct SpriteFrameImage sPicTable_WaterCushion[] = { obj_frame_tiles(gObjectEventPic_WaterCushion), }; -const struct SpriteFrameImage gObjectEventPicTable_BigSnorlaxDoll[] = { +static const struct SpriteFrameImage sPicTable_BigSnorlaxDoll[] = { obj_frame_tiles(gObjectEventPic_BigSnorlaxDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigRhydonDoll[] = { +static const struct SpriteFrameImage sPicTable_BigRhydonDoll[] = { obj_frame_tiles(gObjectEventPic_BigRhydonDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigLaprasDoll[] = { +static const struct SpriteFrameImage sPicTable_BigLaprasDoll[] = { obj_frame_tiles(gObjectEventPic_BigLaprasDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigVenusaurDoll[] = { +static const struct SpriteFrameImage sPicTable_BigVenusaurDoll[] = { obj_frame_tiles(gObjectEventPic_BigVenusaurDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigCharizardDoll[] = { +static const struct SpriteFrameImage sPicTable_BigCharizardDoll[] = { obj_frame_tiles(gObjectEventPic_BigCharizardDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigBlastoiseDoll[] = { +static const struct SpriteFrameImage sPicTable_BigBlastoiseDoll[] = { obj_frame_tiles(gObjectEventPic_BigBlastoiseDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigWailmerDoll[] = { +static const struct SpriteFrameImage sPicTable_BigWailmerDoll[] = { obj_frame_tiles(gObjectEventPic_BigWailmerDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigRegirockDoll[] = { +static const struct SpriteFrameImage sPicTable_BigRegirockDoll[] = { obj_frame_tiles(gObjectEventPic_BigRegirockDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigRegiceDoll[] = { +static const struct SpriteFrameImage sPicTable_BigRegiceDoll[] = { obj_frame_tiles(gObjectEventPic_BigRegiceDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_BigRegisteelDoll[] = { +static const struct SpriteFrameImage sPicTable_BigRegisteelDoll[] = { obj_frame_tiles(gObjectEventPic_BigRegisteelDoll), }; -const struct SpriteFrameImage gObjectEventPicTable_LatiasLatios[] = { +static const struct SpriteFrameImage sPicTable_LatiasLatios[] = { overworld_frame(gObjectEventPic_LatiasLatios, 4, 4, 0), overworld_frame(gObjectEventPic_LatiasLatios, 4, 4, 0), overworld_frame(gObjectEventPic_LatiasLatios, 4, 4, 0), @@ -1629,7 +1629,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LatiasLatios[] = { overworld_frame(gObjectEventPic_LatiasLatios, 4, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_GameboyKid[] = { +static const struct SpriteFrameImage sPicTable_GameboyKid[] = { overworld_frame(gObjectEventPic_GameboyKid, 2, 4, 0), overworld_frame(gObjectEventPic_GameboyKid, 2, 4, 1), overworld_frame(gObjectEventPic_GameboyKid, 2, 4, 2), @@ -1641,7 +1641,7 @@ const struct SpriteFrameImage gObjectEventPicTable_GameboyKid[] = { overworld_frame(gObjectEventPic_GameboyKid, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_ContestJudge[] = { +static const struct SpriteFrameImage sPicTable_ContestJudge[] = { overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 0), overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 1), overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 2), @@ -1653,7 +1653,7 @@ const struct SpriteFrameImage gObjectEventPicTable_ContestJudge[] = { overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_BrendanWatering[] = { +static const struct SpriteFrameImage sPicTable_BrendanWatering[] = { overworld_frame(gObjectEventPic_BrendanWatering, 4, 4, 0), overworld_frame(gObjectEventPic_BrendanWatering, 4, 4, 2), overworld_frame(gObjectEventPic_BrendanWatering, 4, 4, 4), @@ -1665,7 +1665,7 @@ const struct SpriteFrameImage gObjectEventPicTable_BrendanWatering[] = { overworld_frame(gObjectEventPic_BrendanWatering, 4, 4, 5), }; -const struct SpriteFrameImage gObjectEventPicTable_MayWatering[] = { +static const struct SpriteFrameImage sPicTable_MayWatering[] = { overworld_frame(gObjectEventPic_MayWatering, 4, 4, 0), overworld_frame(gObjectEventPic_MayWatering, 4, 4, 2), overworld_frame(gObjectEventPic_MayWatering, 4, 4, 4), @@ -1677,15 +1677,15 @@ const struct SpriteFrameImage gObjectEventPicTable_MayWatering[] = { overworld_frame(gObjectEventPic_MayWatering, 4, 4, 5), }; -const struct SpriteFrameImage gObjectEventPicTable_BrendanDecorating[] = { +static const struct SpriteFrameImage sPicTable_BrendanDecorating[] = { obj_frame_tiles(gObjectEventPic_BrendanDecorating), }; -const struct SpriteFrameImage gObjectEventPicTable_MayDecorating[] = { +static const struct SpriteFrameImage sPicTable_MayDecorating[] = { obj_frame_tiles(gObjectEventPic_MayDecorating), }; -const struct SpriteFrameImage gObjectEventPicTable_Archie[] = { +static const struct SpriteFrameImage sPicTable_Archie[] = { overworld_frame(gObjectEventPic_Archie, 2, 4, 0), overworld_frame(gObjectEventPic_Archie, 2, 4, 1), overworld_frame(gObjectEventPic_Archie, 2, 4, 2), @@ -1697,7 +1697,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Archie[] = { overworld_frame(gObjectEventPic_Archie, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Maxie[] = { +static const struct SpriteFrameImage sPicTable_Maxie[] = { overworld_frame(gObjectEventPic_Maxie, 2, 4, 0), overworld_frame(gObjectEventPic_Maxie, 2, 4, 1), overworld_frame(gObjectEventPic_Maxie, 2, 4, 2), @@ -1709,7 +1709,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Maxie[] = { overworld_frame(gObjectEventPic_Maxie, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_KyogreFront[] = { +static const struct SpriteFrameImage sPicTable_KyogreFront[] = { overworld_frame(gObjectEventPic_Kyogre, 4, 4, 0), overworld_frame(gObjectEventPic_Kyogre, 4, 4, 0), overworld_frame(gObjectEventPic_Kyogre, 4, 4, 0), @@ -1721,7 +1721,7 @@ const struct SpriteFrameImage gObjectEventPicTable_KyogreFront[] = { overworld_frame(gObjectEventPic_Kyogre, 4, 4, 1), }; -const struct SpriteFrameImage gObjectEventPicTable_GroudonFront[] = { +static const struct SpriteFrameImage sPicTable_GroudonFront[] = { overworld_frame(gObjectEventPic_Groudon, 4, 4, 0), overworld_frame(gObjectEventPic_Groudon, 4, 4, 0), overworld_frame(gObjectEventPic_Groudon, 4, 4, 0), @@ -1733,7 +1733,7 @@ const struct SpriteFrameImage gObjectEventPicTable_GroudonFront[] = { overworld_frame(gObjectEventPic_Groudon, 4, 4, 1), }; -const struct SpriteFrameImage gObjectEventPicTable_KyogreSide[] = { +static const struct SpriteFrameImage sPicTable_KyogreSide[] = { overworld_frame(gObjectEventPic_Kyogre, 4, 4, 2), overworld_frame(gObjectEventPic_Kyogre, 4, 4, 2), overworld_frame(gObjectEventPic_Kyogre, 4, 4, 2), @@ -1745,7 +1745,7 @@ const struct SpriteFrameImage gObjectEventPicTable_KyogreSide[] = { overworld_frame(gObjectEventPic_Kyogre, 4, 4, 3), }; -const struct SpriteFrameImage gObjectEventPicTable_GroudonSide[] = { +static const struct SpriteFrameImage sPicTable_GroudonSide[] = { overworld_frame(gObjectEventPic_Groudon, 4, 4, 2), overworld_frame(gObjectEventPic_Groudon, 4, 4, 2), overworld_frame(gObjectEventPic_Groudon, 4, 4, 2), @@ -1757,11 +1757,11 @@ const struct SpriteFrameImage gObjectEventPicTable_GroudonSide[] = { overworld_frame(gObjectEventPic_Groudon, 4, 4, 3), }; -const struct SpriteFrameImage gObjectEventPicTable_Fossil[] = { +static const struct SpriteFrameImage sPicTable_Fossil[] = { obj_frame_tiles(gObjectEventPic_Fossil), }; -const struct SpriteFrameImage gObjectEventPicTable_Regi[] = { +static const struct SpriteFrameImage sPicTable_Regi[] = { obj_frame_tiles(gObjectEventPic_Regi), obj_frame_tiles(gObjectEventPic_Regi), obj_frame_tiles(gObjectEventPic_Regi), @@ -1773,7 +1773,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Regi[] = { obj_frame_tiles(gObjectEventPic_Regi), }; -const struct SpriteFrameImage gObjectEventPicTable_Skitty[] = { +static const struct SpriteFrameImage sPicTable_Skitty[] = { overworld_frame(gObjectEventPic_Skitty, 2, 2, 0), overworld_frame(gObjectEventPic_Skitty, 2, 2, 1), overworld_frame(gObjectEventPic_Skitty, 2, 2, 2), @@ -1785,7 +1785,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Skitty[] = { overworld_frame(gObjectEventPic_Skitty, 2, 2, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Kecleon[] = { +static const struct SpriteFrameImage sPicTable_Kecleon[] = { overworld_frame(gObjectEventPic_Kecleon, 2, 2, 0), overworld_frame(gObjectEventPic_Kecleon, 2, 2, 1), overworld_frame(gObjectEventPic_Kecleon, 2, 2, 2), @@ -1797,7 +1797,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Kecleon[] = { overworld_frame(gObjectEventPic_Kecleon, 2, 2, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Rayquaza[] = { +static const struct SpriteFrameImage sPicTable_Rayquaza[] = { overworld_frame(gObjectEventPic_Rayquaza, 8, 8, 0), overworld_frame(gObjectEventPic_Rayquaza, 8, 8, 1), overworld_frame(gObjectEventPic_Rayquaza, 8, 8, 2), @@ -1805,7 +1805,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Rayquaza[] = { overworld_frame(gObjectEventPic_Rayquaza, 8, 8, 4), }; -const struct SpriteFrameImage gObjectEventPicTable_RayquazaStill[] = { +static const struct SpriteFrameImage sPicTable_RayquazaStill[] = { obj_frame_tiles(gObjectEventPic_RayquazaStill), obj_frame_tiles(gObjectEventPic_RayquazaStill), obj_frame_tiles(gObjectEventPic_RayquazaStill), @@ -1817,7 +1817,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RayquazaStill[] = { obj_frame_tiles(gObjectEventPic_RayquazaStill), }; -const struct SpriteFrameImage gObjectEventPicTable_Zigzagoon[] = { +static const struct SpriteFrameImage sPicTable_Zigzagoon[] = { overworld_frame(gObjectEventPic_Zigzagoon, 2, 2, 0), overworld_frame(gObjectEventPic_Zigzagoon, 2, 2, 1), overworld_frame(gObjectEventPic_Zigzagoon, 2, 2, 2), @@ -1829,7 +1829,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Zigzagoon[] = { overworld_frame(gObjectEventPic_Zigzagoon, 2, 2, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Pikachu[] = { +static const struct SpriteFrameImage sPicTable_Pikachu[] = { overworld_frame(gObjectEventPic_Pikachu, 2, 2, 0), overworld_frame(gObjectEventPic_Pikachu, 2, 2, 1), overworld_frame(gObjectEventPic_Pikachu, 2, 2, 2), @@ -1841,7 +1841,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Pikachu[] = { overworld_frame(gObjectEventPic_Pikachu, 2, 2, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Azumarill[] = { +static const struct SpriteFrameImage sPicTable_Azumarill[] = { overworld_frame(gObjectEventPic_Azumarill, 2, 2, 0), overworld_frame(gObjectEventPic_Azumarill, 2, 2, 1), overworld_frame(gObjectEventPic_Azumarill, 2, 2, 2), @@ -1853,7 +1853,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Azumarill[] = { overworld_frame(gObjectEventPic_Azumarill, 2, 2, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Wingull[] = { +static const struct SpriteFrameImage sPicTable_Wingull[] = { overworld_frame(gObjectEventPic_Wingull, 2, 2, 0), overworld_frame(gObjectEventPic_Wingull, 2, 2, 2), overworld_frame(gObjectEventPic_Wingull, 2, 2, 4), @@ -1865,7 +1865,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Wingull[] = { overworld_frame(gObjectEventPic_Wingull, 2, 2, 5), }; -const struct SpriteFrameImage gObjectEventPicTable_TuberMSwimming[] = { +static const struct SpriteFrameImage sPicTable_TuberMSwimming[] = { overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 0), overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 1), overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 2), @@ -1877,7 +1877,7 @@ const struct SpriteFrameImage gObjectEventPicTable_TuberMSwimming[] = { overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Azurill[] = { +static const struct SpriteFrameImage sPicTable_Azurill[] = { overworld_frame(gObjectEventPic_Azurill, 2, 2, 0), overworld_frame(gObjectEventPic_Azurill, 2, 2, 1), overworld_frame(gObjectEventPic_Azurill, 2, 2, 2), @@ -1889,7 +1889,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Azurill[] = { overworld_frame(gObjectEventPic_Azurill, 2, 2, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Mom[] = { +static const struct SpriteFrameImage sPicTable_Mom[] = { overworld_frame(gObjectEventPic_Mom, 2, 4, 0), overworld_frame(gObjectEventPic_Mom, 2, 4, 1), overworld_frame(gObjectEventPic_Mom, 2, 4, 2), @@ -1901,7 +1901,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Mom[] = { overworld_frame(gObjectEventPic_Mom, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Scott[] = { +static const struct SpriteFrameImage sPicTable_Scott[] = { overworld_frame(gObjectEventPic_Scott, 2, 4, 0), overworld_frame(gObjectEventPic_Scott, 2, 4, 1), overworld_frame(gObjectEventPic_Scott, 2, 4, 2), @@ -1913,7 +1913,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Scott[] = { overworld_frame(gObjectEventPic_Scott, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Juan[] = { +static const struct SpriteFrameImage sPicTable_Juan[] = { overworld_frame(gObjectEventPic_Juan, 2, 4, 0), overworld_frame(gObjectEventPic_Juan, 2, 4, 1), overworld_frame(gObjectEventPic_Juan, 2, 4, 2), @@ -1925,7 +1925,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Juan[] = { overworld_frame(gObjectEventPic_Juan, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_MysteryEventDeliveryman[] = { +static const struct SpriteFrameImage sPicTable_MysteryEventDeliveryman[] = { overworld_frame(gObjectEventPic_MysteryEventDeliveryman, 2, 4, 0), overworld_frame(gObjectEventPic_MysteryEventDeliveryman, 2, 4, 1), overworld_frame(gObjectEventPic_MysteryEventDeliveryman, 2, 4, 2), @@ -1937,11 +1937,11 @@ const struct SpriteFrameImage gObjectEventPicTable_MysteryEventDeliveryman[] = { overworld_frame(gObjectEventPic_MysteryEventDeliveryman, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Statue[] = { +static const struct SpriteFrameImage sPicTable_Statue[] = { obj_frame_tiles(gObjectEventPic_Statue), }; -const struct SpriteFrameImage gObjectEventPicTable_Dusclops[] = { +static const struct SpriteFrameImage sPicTable_Dusclops[] = { overworld_frame(gObjectEventPic_Dusclops, 2, 4, 0), overworld_frame(gObjectEventPic_Dusclops, 2, 4, 1), overworld_frame(gObjectEventPic_Dusclops, 2, 4, 2), @@ -1953,7 +1953,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Dusclops[] = { overworld_frame(gObjectEventPic_Dusclops, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Kirlia[] = { +static const struct SpriteFrameImage sPicTable_Kirlia[] = { overworld_frame(gObjectEventPic_Kirlia, 2, 4, 0), overworld_frame(gObjectEventPic_Kirlia, 2, 4, 1), overworld_frame(gObjectEventPic_Kirlia, 2, 4, 2), @@ -1965,7 +1965,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Kirlia[] = { overworld_frame(gObjectEventPic_Kirlia, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_UnionRoomAttendant[] = { +static const struct SpriteFrameImage sPicTable_UnionRoomAttendant[] = { overworld_frame(gObjectEventPic_UnionRoomAttendant, 2, 4, 0), overworld_frame(gObjectEventPic_UnionRoomAttendant, 2, 4, 1), overworld_frame(gObjectEventPic_UnionRoomAttendant, 2, 4, 2), @@ -1977,7 +1977,7 @@ const struct SpriteFrameImage gObjectEventPicTable_UnionRoomAttendant[] = { overworld_frame(gObjectEventPic_UnionRoomAttendant, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Sudowoodo[] = { +static const struct SpriteFrameImage sPicTable_Sudowoodo[] = { overworld_frame(gObjectEventPic_Sudowoodo, 2, 4, 0), overworld_frame(gObjectEventPic_Sudowoodo, 2, 4, 0), overworld_frame(gObjectEventPic_Sudowoodo, 2, 4, 1), @@ -1989,7 +1989,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Sudowoodo[] = { overworld_frame(gObjectEventPic_Sudowoodo, 2, 4, 2), }; -const struct SpriteFrameImage gObjectEventPicTable_Mew[] = { +static const struct SpriteFrameImage sPicTable_Mew[] = { overworld_frame(gObjectEventPic_Mew, 2, 4, 0), overworld_frame(gObjectEventPic_Mew, 2, 4, 1), overworld_frame(gObjectEventPic_Mew, 2, 4, 2), @@ -2001,7 +2001,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Mew[] = { overworld_frame(gObjectEventPic_Mew, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Red[] = { +static const struct SpriteFrameImage sPicTable_Red[] = { overworld_frame(gObjectEventPic_Red, 2, 4, 0), overworld_frame(gObjectEventPic_Red, 2, 4, 1), overworld_frame(gObjectEventPic_Red, 2, 4, 2), @@ -2013,7 +2013,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Red[] = { overworld_frame(gObjectEventPic_Red, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Leaf[] = { +static const struct SpriteFrameImage sPicTable_Leaf[] = { overworld_frame(gObjectEventPic_Leaf, 2, 4, 0), overworld_frame(gObjectEventPic_Leaf, 2, 4, 1), overworld_frame(gObjectEventPic_Leaf, 2, 4, 2), @@ -2025,7 +2025,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Leaf[] = { overworld_frame(gObjectEventPic_Leaf, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Deoxys[] = { +static const struct SpriteFrameImage sPicTable_Deoxys[] = { overworld_frame(gObjectEventPic_Deoxys, 4, 4, 0), overworld_frame(gObjectEventPic_Deoxys, 4, 4, 0), overworld_frame(gObjectEventPic_Deoxys, 4, 4, 0), @@ -2037,11 +2037,11 @@ const struct SpriteFrameImage gObjectEventPicTable_Deoxys[] = { overworld_frame(gObjectEventPic_Deoxys, 4, 4, 0), }; -const struct SpriteFrameImage gObjectEventPicTable_BirthIslandStone[] = { +static const struct SpriteFrameImage sPicTable_BirthIslandStone[] = { obj_frame_tiles(gObjectEventPic_BirthIslandStone), }; -const struct SpriteFrameImage gObjectEventPicTable_Anabel[] = { +static const struct SpriteFrameImage sPicTable_Anabel[] = { overworld_frame(gObjectEventPic_Anabel, 2, 4, 0), overworld_frame(gObjectEventPic_Anabel, 2, 4, 1), overworld_frame(gObjectEventPic_Anabel, 2, 4, 2), @@ -2053,7 +2053,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Anabel[] = { overworld_frame(gObjectEventPic_Anabel, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Tucker[] = { +static const struct SpriteFrameImage sPicTable_Tucker[] = { overworld_frame(gObjectEventPic_Tucker, 2, 4, 0), overworld_frame(gObjectEventPic_Tucker, 2, 4, 1), overworld_frame(gObjectEventPic_Tucker, 2, 4, 2), @@ -2065,7 +2065,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Tucker[] = { overworld_frame(gObjectEventPic_Tucker, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Spenser[] = { +static const struct SpriteFrameImage sPicTable_Spenser[] = { overworld_frame(gObjectEventPic_Spenser, 2, 4, 0), overworld_frame(gObjectEventPic_Spenser, 2, 4, 1), overworld_frame(gObjectEventPic_Spenser, 2, 4, 2), @@ -2077,7 +2077,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Spenser[] = { overworld_frame(gObjectEventPic_Spenser, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Greta[] = { +static const struct SpriteFrameImage sPicTable_Greta[] = { overworld_frame(gObjectEventPic_Greta, 2, 4, 0), overworld_frame(gObjectEventPic_Greta, 2, 4, 1), overworld_frame(gObjectEventPic_Greta, 2, 4, 2), @@ -2089,7 +2089,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Greta[] = { overworld_frame(gObjectEventPic_Greta, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Noland[] = { +static const struct SpriteFrameImage sPicTable_Noland[] = { overworld_frame(gObjectEventPic_Noland, 2, 4, 0), overworld_frame(gObjectEventPic_Noland, 2, 4, 1), overworld_frame(gObjectEventPic_Noland, 2, 4, 2), @@ -2101,7 +2101,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Noland[] = { overworld_frame(gObjectEventPic_Noland, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Lucy[] = { +static const struct SpriteFrameImage sPicTable_Lucy[] = { overworld_frame(gObjectEventPic_Lucy, 2, 4, 0), overworld_frame(gObjectEventPic_Lucy, 2, 4, 1), overworld_frame(gObjectEventPic_Lucy, 2, 4, 2), @@ -2113,7 +2113,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Lucy[] = { overworld_frame(gObjectEventPic_Lucy, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Brandon[] = { +static const struct SpriteFrameImage sPicTable_Brandon[] = { overworld_frame(gObjectEventPic_Brandon, 2, 4, 0), overworld_frame(gObjectEventPic_Brandon, 2, 4, 1), overworld_frame(gObjectEventPic_Brandon, 2, 4, 2), @@ -2125,7 +2125,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Brandon[] = { overworld_frame(gObjectEventPic_Brandon, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_Lugia[] = { +static const struct SpriteFrameImage sPicTable_Lugia[] = { overworld_frame(gObjectEventPic_Lugia, 4, 4, 0), overworld_frame(gObjectEventPic_Lugia, 4, 4, 0), overworld_frame(gObjectEventPic_Lugia, 4, 4, 0), @@ -2137,7 +2137,7 @@ const struct SpriteFrameImage gObjectEventPicTable_Lugia[] = { overworld_frame(gObjectEventPic_Lugia, 4, 4, 1), }; -const struct SpriteFrameImage gObjectEventPicTable_HoOh[] = { +static const struct SpriteFrameImage sPicTable_HoOh[] = { overworld_frame(gObjectEventPic_HoOh, 4, 4, 0), overworld_frame(gObjectEventPic_HoOh, 4, 4, 0), overworld_frame(gObjectEventPic_HoOh, 4, 4, 0), @@ -2149,7 +2149,7 @@ const struct SpriteFrameImage gObjectEventPicTable_HoOh[] = { overworld_frame(gObjectEventPic_HoOh, 4, 4, 1), }; -const struct SpriteFrameImage gObjectEventPicTable_RubySapphireBrendan[] = { +static const struct SpriteFrameImage sPicTable_RubySapphireBrendan[] = { overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 0), overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 1), overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 2), @@ -2161,7 +2161,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RubySapphireBrendan[] = { overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 8), }; -const struct SpriteFrameImage gObjectEventPicTable_RubySapphireMay[] = { +static const struct SpriteFrameImage sPicTable_RubySapphireMay[] = { overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 0), overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 1), overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 2), diff --git a/src/data/object_events/object_event_subsprites.h b/src/data/object_events/object_event_subsprites.h index 63df1f7778..0d55c2df28 100755 --- a/src/data/object_events/object_event_subsprites.h +++ b/src/data/object_events/object_event_subsprites.h @@ -1,4 +1,4 @@ -const struct Subsprite gObjectEventSpriteOamTable_16x16_0[] = { +static const struct Subsprite sOamTable_16x16_0[] = { { .x = -8, .y = -8, @@ -9,7 +9,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_0[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_16x16_1[] = { +static const struct Subsprite sOamTable_16x16_1[] = { { .x = -8, .y = -8, @@ -20,7 +20,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_1[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_16x16_2[] = { +static const struct Subsprite sOamTable_16x16_2[] = { { .x = -8, .y = -8, @@ -39,7 +39,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_2[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_16x16_3[] = { +static const struct Subsprite sOamTable_16x16_3[] = { { .x = -8, .y = -8, @@ -58,7 +58,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_3[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_16x16_4[] = { +static const struct Subsprite sOamTable_16x16_4[] = { { .x = -8, .y = -8, @@ -77,16 +77,16 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_4[] = { } }; -const struct SubspriteTable gObjectEventSpriteOamTables_16x16[] = { +static const struct SubspriteTable sOamTables_16x16[] = { {0, NULL}, - {1, gObjectEventSpriteOamTable_16x16_0}, - {1, gObjectEventSpriteOamTable_16x16_1}, - {2, gObjectEventSpriteOamTable_16x16_2}, - {2, gObjectEventSpriteOamTable_16x16_3}, - {2, gObjectEventSpriteOamTable_16x16_4} + {1, sOamTable_16x16_0}, + {1, sOamTable_16x16_1}, + {2, sOamTable_16x16_2}, + {2, sOamTable_16x16_3}, + {2, sOamTable_16x16_4} }; -const struct Subsprite gObjectEventSpriteOamTable_16x32_0[] = { +static const struct Subsprite sOamTable_16x32_0[] = { { .x = -8, .y = -16, @@ -97,7 +97,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_0[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_16x32_1[] = { +static const struct Subsprite sOamTable_16x32_1[] = { { .x = -8, .y = -16, @@ -108,7 +108,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_1[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_16x32_2[] = { +static const struct Subsprite sOamTable_16x32_2[] = { { .x = -8, .y = -16, @@ -135,7 +135,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_2[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_16x32_3[] = { +static const struct Subsprite sOamTable_16x32_3[] = { { .x = -8, .y = -16, @@ -154,7 +154,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_3[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_16x32_4[] = { +static const struct Subsprite sOamTable_16x32_4[] = { { .x = -8, .y = -16, @@ -173,16 +173,16 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_4[] = { } }; -const struct SubspriteTable gObjectEventSpriteOamTables_16x32[] = { +static const struct SubspriteTable sOamTables_16x32[] = { {0, NULL}, - {1, gObjectEventSpriteOamTable_16x32_0}, - {1, gObjectEventSpriteOamTable_16x32_1}, - {3, gObjectEventSpriteOamTable_16x32_2}, - {2, gObjectEventSpriteOamTable_16x32_3}, - {2, gObjectEventSpriteOamTable_16x32_4} + {1, sOamTable_16x32_0}, + {1, sOamTable_16x32_1}, + {3, sOamTable_16x32_2}, + {2, sOamTable_16x32_3}, + {2, sOamTable_16x32_4} }; -const struct Subsprite gObjectEventSpriteOamTable_32x32_0[] = { +static const struct Subsprite sOamTable_32x32_0[] = { { .x = -16, .y = -16, @@ -193,7 +193,7 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_0[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_32x32_1[] = { +static const struct Subsprite sOamTable_32x32_1[] = { { .x = -16, .y = -16, @@ -204,7 +204,7 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_1[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_32x32_2[] = { +static const struct Subsprite sOamTable_32x32_2[] = { { .x = -16, .y = -16, @@ -231,7 +231,7 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_2[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_32x32_3[] = { +static const struct Subsprite sOamTable_32x32_3[] = { { .x = -16, .y = -16, @@ -250,7 +250,7 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_3[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_32x32_4[] = { +static const struct Subsprite sOamTable_32x32_4[] = { { .x = -16, .y = -16, @@ -269,16 +269,16 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_4[] = { } }; -const struct SubspriteTable gObjectEventSpriteOamTables_32x32[] = { +static const struct SubspriteTable sOamTables_32x32[] = { {0, NULL}, - {1, gObjectEventSpriteOamTable_32x32_0}, - {1, gObjectEventSpriteOamTable_32x32_1}, - {3, gObjectEventSpriteOamTable_32x32_2}, - {2, gObjectEventSpriteOamTable_32x32_3}, - {2, gObjectEventSpriteOamTable_32x32_4} + {1, sOamTable_32x32_0}, + {1, sOamTable_32x32_1}, + {3, sOamTable_32x32_2}, + {2, sOamTable_32x32_3}, + {2, sOamTable_32x32_4} }; -const struct Subsprite gObjectEventSpriteOamTable_48x48[] = { +static const struct Subsprite sOamTable_48x48[] = { { .x = -24, .y = -24, @@ -377,16 +377,16 @@ const struct Subsprite gObjectEventSpriteOamTable_48x48[] = { } }; -const struct SubspriteTable gObjectEventSpriteOamTables_48x48[] = { - {12, gObjectEventSpriteOamTable_48x48}, - {12, gObjectEventSpriteOamTable_48x48}, - {12, gObjectEventSpriteOamTable_48x48}, - {12, gObjectEventSpriteOamTable_48x48}, - {12, gObjectEventSpriteOamTable_48x48}, - {12, gObjectEventSpriteOamTable_48x48} +static const struct SubspriteTable sOamTables_48x48[] = { + {12, sOamTable_48x48}, + {12, sOamTable_48x48}, + {12, sOamTable_48x48}, + {12, sOamTable_48x48}, + {12, sOamTable_48x48}, + {12, sOamTable_48x48} }; -const struct Subsprite gObjectEventSpriteOamTable_64x32_0[] = { +static const struct Subsprite sOamTable_64x32_0[] = { { .x = -32, .y = -16, @@ -397,7 +397,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x32_0[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_64x32_1[] = { +static const struct Subsprite sOamTable_64x32_1[] = { { .x = -32, .y = -16, @@ -408,7 +408,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x32_1[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_64x32_2[] = { +static const struct Subsprite sOamTable_64x32_2[] = { { .x = -32, .y = -16, @@ -419,7 +419,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x32_2[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_64x32_3[] = { +static const struct Subsprite sOamTable_64x32_3[] = { { .x = -32, .y = -16, @@ -431,16 +431,16 @@ const struct Subsprite gObjectEventSpriteOamTable_64x32_3[] = { }; // Unused -const struct SubspriteTable gObjectEventSpriteOamTables_64x32[] = { +static const struct SubspriteTable sOamTables_64x32[] = { {0, NULL}, - {1, gObjectEventSpriteOamTable_64x32_0}, - {1, gObjectEventSpriteOamTable_64x32_1}, - {1, gObjectEventSpriteOamTable_64x32_2}, - {1, gObjectEventSpriteOamTable_64x32_3}, - {1, gObjectEventSpriteOamTable_64x32_3} + {1, sOamTable_64x32_0}, + {1, sOamTable_64x32_1}, + {1, sOamTable_64x32_2}, + {1, sOamTable_64x32_3}, + {1, sOamTable_64x32_3} }; -const struct Subsprite gObjectEventSpriteOamTable_64x64_0[] = { +static const struct Subsprite sOamTable_64x64_0[] = { { .x = -32, .y = -32, @@ -451,7 +451,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x64_0[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_64x64_1[] = { +static const struct Subsprite sOamTable_64x64_1[] = { { .x = -32, .y = -32, @@ -462,7 +462,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x64_1[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_64x64_2[] = { +static const struct Subsprite sOamTable_64x64_2[] = { { .x = -32, .y = -32, @@ -473,7 +473,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x64_2[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_64x64_3[] = { +static const struct Subsprite sOamTable_64x64_3[] = { { .x = -32, .y = -32, @@ -484,16 +484,16 @@ const struct Subsprite gObjectEventSpriteOamTable_64x64_3[] = { } }; -const struct SubspriteTable gObjectEventSpriteOamTables_64x64[] = { +static const struct SubspriteTable sOamTables_64x64[] = { {0, NULL}, - {1, gObjectEventSpriteOamTable_64x64_0}, - {1, gObjectEventSpriteOamTable_64x64_1}, - {1, gObjectEventSpriteOamTable_64x64_2}, - {1, gObjectEventSpriteOamTable_64x64_3}, - {1, gObjectEventSpriteOamTable_64x64_3} + {1, sOamTable_64x64_0}, + {1, sOamTable_64x64_1}, + {1, sOamTable_64x64_2}, + {1, sOamTable_64x64_3}, + {1, sOamTable_64x64_3} }; -const struct Subsprite gObjectEventSpriteOamTable_96x40_0[] = { +static const struct Subsprite sOamTable_96x40_0[] = { { .x = -48, .y = -20, @@ -616,7 +616,7 @@ const struct Subsprite gObjectEventSpriteOamTable_96x40_0[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_96x40_1[] = { +static const struct Subsprite sOamTable_96x40_1[] = { { .x = -48, .y = -20, @@ -739,7 +739,7 @@ const struct Subsprite gObjectEventSpriteOamTable_96x40_1[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_96x40_2[] = { +static const struct Subsprite sOamTable_96x40_2[] = { { .x = -48, .y = -20, @@ -862,7 +862,7 @@ const struct Subsprite gObjectEventSpriteOamTable_96x40_2[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_96x40_3[] = { +static const struct Subsprite sOamTable_96x40_3[] = { { .x = -48, .y = -20, @@ -986,16 +986,16 @@ const struct Subsprite gObjectEventSpriteOamTable_96x40_3[] = { }; // Used by SS Tidal -const struct SubspriteTable gObjectEventSpriteOamTables_96x40[] = { - {15, gObjectEventSpriteOamTable_96x40_0}, - {15, gObjectEventSpriteOamTable_96x40_0}, - {15, gObjectEventSpriteOamTable_96x40_1}, - {15, gObjectEventSpriteOamTable_96x40_2}, - {15, gObjectEventSpriteOamTable_96x40_3}, - {15, gObjectEventSpriteOamTable_96x40_3} +static const struct SubspriteTable sOamTables_96x40[] = { + {15, sOamTable_96x40_0}, + {15, sOamTable_96x40_0}, + {15, sOamTable_96x40_1}, + {15, sOamTable_96x40_2}, + {15, sOamTable_96x40_3}, + {15, sOamTable_96x40_3} }; -const struct Subsprite gObjectEventSpriteOamTable_88x32_0[] = { +static const struct Subsprite sOamTable_88x32_0[] = { { .x = -48, .y = -20, @@ -1126,7 +1126,7 @@ const struct Subsprite gObjectEventSpriteOamTable_88x32_0[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_88x32_1[] = { +static const struct Subsprite sOamTable_88x32_1[] = { { .x = -48, .y = -20, @@ -1257,7 +1257,7 @@ const struct Subsprite gObjectEventSpriteOamTable_88x32_1[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_88x32_2[] = { +static const struct Subsprite sOamTable_88x32_2[] = { { .x = -48, .y = -20, @@ -1388,7 +1388,7 @@ const struct Subsprite gObjectEventSpriteOamTable_88x32_2[] = { } }; -const struct Subsprite gObjectEventSpriteOamTable_88x32_3[] = { +static const struct Subsprite sOamTable_88x32_3[] = { { .x = -48, .y = -20, @@ -1520,11 +1520,11 @@ const struct Subsprite gObjectEventSpriteOamTable_88x32_3[] = { }; // Used by Submarine Shadow -const struct SubspriteTable gObjectEventSpriteOamTables_88x32[] = { - {16, gObjectEventSpriteOamTable_88x32_0}, - {16, gObjectEventSpriteOamTable_88x32_0}, - {16, gObjectEventSpriteOamTable_88x32_1}, - {16, gObjectEventSpriteOamTable_88x32_2}, - {16, gObjectEventSpriteOamTable_88x32_3}, - {16, gObjectEventSpriteOamTable_88x32_3} +static const struct SubspriteTable sOamTables_88x32[] = { + {16, sOamTable_88x32_0}, + {16, sOamTable_88x32_0}, + {16, sOamTable_88x32_1}, + {16, sOamTable_88x32_2}, + {16, sOamTable_88x32_3}, + {16, sOamTable_88x32_3} }; diff --git a/src/data/party_menu.h b/src/data/party_menu.h index 3c3a3e1ce3..570ef738eb 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -118,12 +118,12 @@ static const u32 sCancelButton_Tilemap[] = INCBIN_U32("graphics/interface/party_ // Text colors for BG, FG, and Shadow in that order static const u8 sFontColorTable[][3] = { - {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_DARK_GREY}, // Default + {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_DARK_GRAY}, // Default {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_GREEN}, // Unused {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3}, // Gender symbol - {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, // Selection actions + {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, // Selection actions {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, // Field moves - {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}, // Unused + {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}, // Unused }; static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = @@ -543,7 +543,7 @@ static const struct WindowTemplate sLevelUpStatsWindowTemplate = .baseBlock = 0x2E9, }; -static const struct WindowTemplate sUnusedWindowTemplate_08615978 = +static const struct WindowTemplate sUnusedWindowTemplate1 = { .bg = 2, .tilemapLeft = 2, @@ -554,7 +554,7 @@ static const struct WindowTemplate sUnusedWindowTemplate_08615978 = .baseBlock = 0x1DF, }; -static const struct WindowTemplate sUnusedWindowTemplate_08615980 = +static const struct WindowTemplate sUnusedWindowTemplate2 = { .bg = 2, .tilemapLeft = 0, @@ -669,7 +669,7 @@ static const u8 *const sDescriptionStringTable[] = [PARTYBOX_DESC_DONT_HAVE] = gText_DontHave, }; -static const u16 sUnused_08615B94[] = +static const u16 sUnusedData[] = { 0x0108, 0x0151, 0x0160, 0x015b, 0x002e, 0x005c, 0x0102, 0x0153, 0x014b, 0x00ed, 0x00f1, 0x010d, 0x003a, 0x003b, 0x003f, 0x0071, 0x00b6, 0x00f0, 0x00ca, 0x00db, 0x00da, 0x004c, 0x00e7, 0x0055, 0x0057, 0x0059, 0x00d8, 0x005b, 0x005e, 0x00f7, 0x0118, 0x0068, @@ -1194,62 +1194,62 @@ static const u8 *const sUnused_StatStrings[] = static const u16 sTMHMMoves[] = { - MOVE_FOCUS_PUNCH, - MOVE_DRAGON_CLAW, - MOVE_WATER_PULSE, - MOVE_CALM_MIND, - MOVE_ROAR, - MOVE_TOXIC, - MOVE_HAIL, - MOVE_BULK_UP, - MOVE_BULLET_SEED, - MOVE_HIDDEN_POWER, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_ICE_BEAM, - MOVE_BLIZZARD, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_GIGA_DRAIN, - MOVE_SAFEGUARD, - MOVE_FRUSTRATION, - MOVE_SOLAR_BEAM, - MOVE_IRON_TAIL, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_EARTHQUAKE, - MOVE_RETURN, - MOVE_DIG, - MOVE_PSYCHIC, - MOVE_SHADOW_BALL, - MOVE_BRICK_BREAK, - MOVE_DOUBLE_TEAM, - MOVE_REFLECT, - MOVE_SHOCK_WAVE, - MOVE_FLAMETHROWER, - MOVE_SLUDGE_BOMB, - MOVE_SANDSTORM, - MOVE_FIRE_BLAST, - MOVE_ROCK_TOMB, - MOVE_AERIAL_ACE, - MOVE_TORMENT, - MOVE_FACADE, - MOVE_SECRET_POWER, - MOVE_REST, - MOVE_ATTRACT, - MOVE_THIEF, - MOVE_STEEL_WING, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_OVERHEAT, - MOVE_CUT, - MOVE_FLY, - MOVE_SURF, - MOVE_STRENGTH, - MOVE_FLASH, - MOVE_ROCK_SMASH, - MOVE_WATERFALL, - MOVE_DIVE, + [ITEM_TM01 - ITEM_TM01] = MOVE_FOCUS_PUNCH, + [ITEM_TM02 - ITEM_TM01] = MOVE_DRAGON_CLAW, + [ITEM_TM03 - ITEM_TM01] = MOVE_WATER_PULSE, + [ITEM_TM04 - ITEM_TM01] = MOVE_CALM_MIND, + [ITEM_TM05 - ITEM_TM01] = MOVE_ROAR, + [ITEM_TM06 - ITEM_TM01] = MOVE_TOXIC, + [ITEM_TM07 - ITEM_TM01] = MOVE_HAIL, + [ITEM_TM08 - ITEM_TM01] = MOVE_BULK_UP, + [ITEM_TM09 - ITEM_TM01] = MOVE_BULLET_SEED, + [ITEM_TM10 - ITEM_TM01] = MOVE_HIDDEN_POWER, + [ITEM_TM11 - ITEM_TM01] = MOVE_SUNNY_DAY, + [ITEM_TM12 - ITEM_TM01] = MOVE_TAUNT, + [ITEM_TM13 - ITEM_TM01] = MOVE_ICE_BEAM, + [ITEM_TM14 - ITEM_TM01] = MOVE_BLIZZARD, + [ITEM_TM15 - ITEM_TM01] = MOVE_HYPER_BEAM, + [ITEM_TM16 - ITEM_TM01] = MOVE_LIGHT_SCREEN, + [ITEM_TM17 - ITEM_TM01] = MOVE_PROTECT, + [ITEM_TM18 - ITEM_TM01] = MOVE_RAIN_DANCE, + [ITEM_TM19 - ITEM_TM01] = MOVE_GIGA_DRAIN, + [ITEM_TM20 - ITEM_TM01] = MOVE_SAFEGUARD, + [ITEM_TM21 - ITEM_TM01] = MOVE_FRUSTRATION, + [ITEM_TM22 - ITEM_TM01] = MOVE_SOLAR_BEAM, + [ITEM_TM23 - ITEM_TM01] = MOVE_IRON_TAIL, + [ITEM_TM24 - ITEM_TM01] = MOVE_THUNDERBOLT, + [ITEM_TM25 - ITEM_TM01] = MOVE_THUNDER, + [ITEM_TM26 - ITEM_TM01] = MOVE_EARTHQUAKE, + [ITEM_TM27 - ITEM_TM01] = MOVE_RETURN, + [ITEM_TM28 - ITEM_TM01] = MOVE_DIG, + [ITEM_TM29 - ITEM_TM01] = MOVE_PSYCHIC, + [ITEM_TM30 - ITEM_TM01] = MOVE_SHADOW_BALL, + [ITEM_TM31 - ITEM_TM01] = MOVE_BRICK_BREAK, + [ITEM_TM32 - ITEM_TM01] = MOVE_DOUBLE_TEAM, + [ITEM_TM33 - ITEM_TM01] = MOVE_REFLECT, + [ITEM_TM34 - ITEM_TM01] = MOVE_SHOCK_WAVE, + [ITEM_TM35 - ITEM_TM01] = MOVE_FLAMETHROWER, + [ITEM_TM36 - ITEM_TM01] = MOVE_SLUDGE_BOMB, + [ITEM_TM37 - ITEM_TM01] = MOVE_SANDSTORM, + [ITEM_TM38 - ITEM_TM01] = MOVE_FIRE_BLAST, + [ITEM_TM39 - ITEM_TM01] = MOVE_ROCK_TOMB, + [ITEM_TM40 - ITEM_TM01] = MOVE_AERIAL_ACE, + [ITEM_TM41 - ITEM_TM01] = MOVE_TORMENT, + [ITEM_TM42 - ITEM_TM01] = MOVE_FACADE, + [ITEM_TM43 - ITEM_TM01] = MOVE_SECRET_POWER, + [ITEM_TM44 - ITEM_TM01] = MOVE_REST, + [ITEM_TM45 - ITEM_TM01] = MOVE_ATTRACT, + [ITEM_TM46 - ITEM_TM01] = MOVE_THIEF, + [ITEM_TM47 - ITEM_TM01] = MOVE_STEEL_WING, + [ITEM_TM48 - ITEM_TM01] = MOVE_SKILL_SWAP, + [ITEM_TM49 - ITEM_TM01] = MOVE_SNATCH, + [ITEM_TM50 - ITEM_TM01] = MOVE_OVERHEAT, + [ITEM_HM01 - ITEM_TM01] = MOVE_CUT, + [ITEM_HM02 - ITEM_TM01] = MOVE_FLY, + [ITEM_HM03 - ITEM_TM01] = MOVE_SURF, + [ITEM_HM04 - ITEM_TM01] = MOVE_STRENGTH, + [ITEM_HM05 - ITEM_TM01] = MOVE_FLASH, + [ITEM_HM06 - ITEM_TM01] = MOVE_ROCK_SMASH, + [ITEM_HM07 - ITEM_TM01] = MOVE_WATERFALL, + [ITEM_HM08 - ITEM_TM01] = MOVE_DIVE, }; diff --git a/src/data/pointillism_points.h b/src/data/pointillism_points.h new file mode 100644 index 0000000000..708f5c02e6 --- /dev/null +++ b/src/data/pointillism_points.h @@ -0,0 +1,3210 @@ +#define GET_POINT_OFFSET_DL(bits) (((bits) >> 0) & 1) +#define GET_POINT_COLOR_TYPE(bits) (((bits) >> 1) & 3) +#define GET_POINT_DELTA(bits) (((bits) >> 3) & 7) + +#define PT(x, y, delta, colorType, offsetDownLeft) x, y, (delta << 3) | (colorType << 1) | offsetDownLeft + +static const u8 sPointillismPoints[][3] = { + PT( 0, 29, 3, 2, FALSE), + PT(14, 30, 3, 1, TRUE), + PT( 0, 1, 6, 1, FALSE), + PT(46, 30, 6, 3, TRUE), + PT(10, 34, 3, 3, TRUE), + PT( 5, 38, 5, 3, FALSE), + PT(18, 23, 3, 3, FALSE), + PT(26, 3, 2, 0, TRUE), + PT( 5, 17, 3, 0, FALSE), + PT( 5, 39, 5, 3, TRUE), + PT(26, 63, 2, 1, FALSE), + PT(34, 63, 2, 3, FALSE), + PT(43, 47, 5, 3, FALSE), + PT(17, 2, 5, 2, TRUE), + PT(35, 13, 5, 0, FALSE), + PT(23, 12, 3, 0, TRUE), + PT(47, 14, 2, 1, TRUE), + PT(48, 24, 4, 0, FALSE), + PT(45, 40, 4, 1, FALSE), + PT( 1, 3, 3, 0, TRUE), + PT(14, 42, 5, 1, TRUE), + PT(34, 21, 4, 2, TRUE), + PT(34, 10, 4, 3, FALSE), + PT(57, 6, 4, 1, TRUE), + PT(22, 7, 5, 3, TRUE), + PT(34, 58, 3, 1, TRUE), + PT(59, 54, 6, 2, TRUE), + PT(10, 43, 4, 2, FALSE), + PT(54, 9, 2, 1, FALSE), + PT(28, 47, 4, 1, TRUE), + PT(46, 56, 5, 2, FALSE), + PT( 5, 42, 4, 0, FALSE), + PT( 7, 20, 6, 1, FALSE), + PT(49, 8, 2, 3, TRUE), + PT(26, 36, 5, 2, TRUE), + PT(34, 10, 2, 3, FALSE), + PT(27, 38, 5, 1, TRUE), + PT(41, 22, 2, 0, TRUE), + PT(53, 8, 2, 2, FALSE), + PT(30, 8, 2, 2, FALSE), + PT( 5, 49, 2, 2, FALSE), + PT(56, 49, 2, 3, TRUE), + PT(52, 51, 2, 1, FALSE), + PT(17, 9, 3, 3, TRUE), + PT(40, 61, 6, 1, FALSE), + PT(53, 3, 3, 3, FALSE), + PT(60, 43, 5, 3, FALSE), + PT(16, 1, 2, 3, TRUE), + PT( 3, 62, 4, 1, FALSE), + PT(23, 24, 6, 2, FALSE), + PT( 8, 41, 3, 0, TRUE), + PT( 3, 36, 5, 0, FALSE), + PT(61, 51, 5, 3, TRUE), + PT(49, 36, 3, 0, TRUE), + PT(27, 24, 4, 3, FALSE), + PT( 7, 13, 4, 2, TRUE), + PT(45, 63, 2, 1, FALSE), + PT(47, 21, 4, 2, TRUE), + PT(41, 15, 2, 1, FALSE), + PT( 7, 44, 2, 1, FALSE), + PT(44, 11, 4, 3, FALSE), + PT(18, 26, 2, 3, FALSE), + PT( 0, 11, 5, 3, TRUE), + PT(22, 53, 4, 2, FALSE), + PT(31, 28, 4, 1, FALSE), + PT(41, 51, 4, 3, TRUE), + PT(59, 48, 2, 3, TRUE), + PT(17, 6, 6, 2, TRUE), + PT(62, 49, 5, 3, TRUE), + PT(17, 58, 4, 2, TRUE), + PT(42, 2, 3, 0, TRUE), + PT(51, 24, 6, 2, TRUE), + PT(42, 32, 4, 0, TRUE), + PT(46, 50, 3, 1, TRUE), + PT(59, 31, 4, 1, TRUE), + PT(57, 41, 5, 1, FALSE), + PT(46, 49, 5, 0, TRUE), + PT(42, 14, 5, 2, TRUE), + PT(45, 0, 3, 3, TRUE), + PT(56, 40, 3, 1, TRUE), + PT(20, 59, 5, 1, TRUE), + PT(46, 4, 4, 3, FALSE), + PT(54, 48, 2, 0, TRUE), + PT(59, 33, 5, 2, TRUE), + PT(43, 63, 3, 1, TRUE), + PT(32, 19, 6, 0, TRUE), + PT(51, 12, 6, 0, FALSE), + PT(34, 43, 5, 1, TRUE), + PT(22, 2, 3, 3, FALSE), + PT(28, 18, 3, 2, FALSE), + PT(15, 60, 6, 3, FALSE), + PT(56, 16, 5, 2, TRUE), + PT(24, 47, 5, 2, TRUE), + PT(53, 59, 2, 0, TRUE), + PT(55, 49, 2, 1, TRUE), + PT(19, 61, 5, 3, TRUE), + PT(30, 44, 6, 1, TRUE), + PT(46, 55, 2, 1, FALSE), + PT(60, 31, 6, 1, TRUE), + PT(50, 42, 4, 3, TRUE), + PT(13, 59, 3, 2, FALSE), + PT(53, 42, 4, 3, TRUE), + PT( 9, 61, 4, 3, TRUE), + PT(18, 11, 3, 0, FALSE), + PT(12, 21, 3, 2, TRUE), + PT(32, 1, 3, 2, FALSE), + PT( 8, 59, 3, 2, FALSE), + PT(18, 55, 6, 1, TRUE), + PT(21, 3, 5, 2, FALSE), + PT(42, 59, 6, 0, TRUE), + PT(15, 4, 6, 2, TRUE), + PT( 8, 23, 6, 1, TRUE), + PT(56, 61, 5, 1, FALSE), + PT(47, 53, 2, 3, FALSE), + PT(16, 53, 2, 3, FALSE), + PT(35, 19, 5, 2, FALSE), + PT(47, 6, 4, 0, FALSE), + PT(39, 58, 4, 2, FALSE), + PT( 0, 28, 5, 1, FALSE), + PT( 3, 57, 3, 2, TRUE), + PT(40, 7, 3, 1, FALSE), + PT(32, 10, 6, 3, TRUE), + PT( 7, 53, 5, 2, TRUE), + PT(21, 47, 5, 2, FALSE), + PT(16, 44, 4, 1, TRUE), + PT(63, 41, 2, 2, FALSE), + PT(42, 33, 6, 3, FALSE), + PT(52, 26, 5, 2, FALSE), + PT(28, 61, 6, 1, TRUE), + PT(56, 43, 4, 1, FALSE), + PT(53, 40, 3, 3, TRUE), + PT(61, 15, 3, 2, FALSE), + PT(30, 62, 3, 1, TRUE), + PT(12, 62, 3, 3, TRUE), + PT(43, 49, 5, 2, FALSE), + PT(50, 57, 2, 0, TRUE), + PT( 5, 9, 2, 0, TRUE), + PT( 4, 56, 5, 1, FALSE), + PT(50, 0, 2, 3, FALSE), + PT(19, 11, 6, 0, TRUE), + PT(52, 42, 2, 1, TRUE), + PT(44, 34, 4, 0, TRUE), + PT(57, 47, 2, 2, TRUE), + PT(55, 40, 3, 3, FALSE), + PT( 7, 59, 5, 2, TRUE), + PT(17, 3, 5, 0, FALSE), + PT(45, 48, 3, 3, FALSE), + PT(49, 17, 2, 0, TRUE), + PT(35, 1, 3, 3, FALSE), + PT(61, 49, 6, 2, FALSE), + PT(28, 2, 6, 2, FALSE), + PT(33, 14, 4, 2, TRUE), + PT(61, 7, 2, 3, TRUE), + PT(51, 21, 2, 0, FALSE), + PT(41, 50, 6, 1, FALSE), + PT(24, 31, 6, 0, FALSE), + PT(45, 59, 6, 0, FALSE), + PT(39, 62, 2, 3, FALSE), + PT(49, 21, 2, 1, FALSE), + PT(48, 37, 2, 3, TRUE), + PT(51, 6, 6, 2, FALSE), + PT( 0, 41, 3, 0, FALSE), + PT(60, 3, 2, 1, FALSE), + PT(44, 12, 2, 0, TRUE), + PT( 9, 48, 6, 0, FALSE), + PT(16, 14, 2, 0, TRUE), + PT(39, 22, 3, 1, TRUE), + PT(12, 59, 5, 3, FALSE), + PT(43, 51, 3, 3, FALSE), + PT(19, 45, 5, 2, TRUE), + PT(17, 36, 5, 0, TRUE), + PT(52, 62, 5, 1, TRUE), + PT(36, 30, 4, 0, TRUE), + PT(39, 26, 5, 2, TRUE), + PT( 4, 57, 2, 3, FALSE), + PT(62, 51, 4, 3, FALSE), + PT(27, 46, 4, 2, TRUE), + PT(12, 6, 3, 0, TRUE), + PT(37, 25, 3, 0, FALSE), + PT(29, 51, 6, 1, TRUE), + PT(29, 40, 5, 2, TRUE), + PT(28, 16, 5, 1, FALSE), + PT(31, 53, 3, 3, FALSE), + PT(52, 2, 2, 0, FALSE), + PT(43, 58, 2, 2, FALSE), + PT(13, 11, 2, 2, TRUE), + PT(12, 44, 2, 0, FALSE), + PT(55, 58, 3, 0, TRUE), + PT( 6, 19, 2, 3, TRUE), + PT(36, 16, 4, 2, TRUE), + PT(36, 4, 3, 3, FALSE), + PT( 0, 53, 6, 2, FALSE), + PT(58, 0, 6, 3, TRUE), + PT(60, 7, 3, 1, FALSE), + PT(43, 40, 6, 3, FALSE), + PT(52, 57, 5, 3, TRUE), + PT(40, 9, 3, 3, TRUE), + PT(56, 49, 6, 0, FALSE), + PT(22, 37, 6, 0, TRUE), + PT(24, 40, 6, 0, TRUE), + PT(24, 12, 4, 1, FALSE), + PT( 6, 57, 5, 2, TRUE), + PT(61, 32, 4, 2, FALSE), + PT(46, 39, 4, 0, TRUE), + PT(62, 24, 3, 0, FALSE), + PT(21, 60, 4, 2, FALSE), + PT( 6, 27, 4, 3, FALSE), + PT(21, 14, 4, 1, FALSE), + PT(10, 13, 3, 3, TRUE), + PT(24, 22, 6, 2, FALSE), + PT(16, 40, 4, 0, TRUE), + PT(32, 17, 2, 0, TRUE), + PT(54, 50, 2, 2, TRUE), + PT(59, 46, 4, 2, FALSE), + PT(31, 45, 2, 1, FALSE), + PT(54, 46, 4, 0, FALSE), + PT(11, 23, 6, 1, TRUE), + PT(38, 3, 3, 3, TRUE), + PT( 8, 25, 6, 0, TRUE), + PT(42, 24, 4, 2, TRUE), + PT(53, 45, 5, 2, TRUE), + PT(48, 56, 3, 0, FALSE), + PT(28, 37, 2, 2, FALSE), + PT(28, 34, 5, 0, FALSE), + PT( 8, 35, 4, 0, TRUE), + PT(38, 30, 6, 0, FALSE), + PT(25, 15, 2, 2, TRUE), + PT(16, 47, 4, 1, FALSE), + PT(18, 2, 4, 2, TRUE), + PT(60, 1, 3, 2, TRUE), + PT(14, 20, 3, 0, FALSE), + PT(13, 24, 2, 3, TRUE), + PT(34, 11, 6, 0, TRUE), + PT(19, 52, 4, 0, TRUE), + PT(15, 45, 6, 3, FALSE), + PT(57, 31, 4, 2, TRUE), + PT(24, 16, 3, 3, TRUE), + PT(45, 32, 4, 0, FALSE), + PT(25, 11, 6, 0, TRUE), + PT(51, 19, 2, 2, FALSE), + PT(46, 17, 4, 0, TRUE), + PT(45, 10, 6, 3, TRUE), + PT( 7, 21, 3, 1, TRUE), + PT(50, 4, 6, 1, FALSE), + PT( 6, 24, 3, 1, TRUE), + PT(19, 36, 2, 1, FALSE), + PT(54, 34, 2, 3, FALSE), + PT(29, 41, 3, 2, FALSE), + PT(53, 23, 4, 0, TRUE), + PT(54, 23, 5, 1, TRUE), + PT(53, 50, 3, 0, TRUE), + PT(42, 15, 5, 3, FALSE), + PT(16, 0, 6, 2, FALSE), + PT( 2, 14, 5, 0, FALSE), + PT(49, 50, 6, 1, FALSE), + PT(59, 5, 4, 0, FALSE), + PT(54, 38, 2, 1, FALSE), + PT(52, 6, 6, 2, FALSE), + PT(30, 49, 6, 1, FALSE), + PT(53, 5, 6, 2, FALSE), + PT(30, 19, 2, 2, TRUE), + PT(21, 20, 5, 2, FALSE), + PT(41, 28, 3, 0, FALSE), + PT(36, 36, 2, 1, FALSE), + PT(34, 41, 3, 0, FALSE), + PT(52, 54, 6, 0, FALSE), + PT(30, 1, 4, 1, TRUE), + PT(12, 60, 4, 2, FALSE), + PT(10, 61, 2, 3, FALSE), + PT(39, 30, 4, 1, TRUE), + PT(21, 2, 2, 1, FALSE), + PT(17, 25, 5, 1, FALSE), + PT(29, 49, 2, 2, TRUE), + PT( 3, 59, 5, 1, FALSE), + PT(33, 25, 5, 2, FALSE), + PT(10, 35, 2, 0, TRUE), + PT(37, 17, 3, 1, FALSE), + PT(26, 10, 6, 2, FALSE), + PT(59, 11, 6, 1, TRUE), + PT(33, 11, 6, 3, TRUE), + PT( 1, 49, 5, 0, FALSE), + PT(53, 29, 4, 3, TRUE), + PT(44, 48, 6, 0, TRUE), + PT(46, 57, 5, 2, TRUE), + PT(48, 5, 5, 2, FALSE), + PT(18, 42, 5, 1, TRUE), + PT(57, 34, 4, 0, FALSE), + PT(21, 52, 3, 2, FALSE), + PT(28, 1, 2, 2, TRUE), + PT(32, 22, 4, 1, FALSE), + PT(19, 4, 3, 0, FALSE), + PT(30, 19, 2, 0, FALSE), + PT(37, 51, 2, 2, TRUE), + PT(57, 3, 6, 0, TRUE), + PT(63, 54, 3, 0, FALSE), + PT(20, 35, 2, 0, FALSE), + PT(47, 30, 3, 3, TRUE), + PT(31, 23, 5, 2, FALSE), + PT( 2, 22, 6, 0, TRUE), + PT(32, 24, 6, 0, FALSE), + PT(46, 24, 6, 3, TRUE), + PT(59, 14, 6, 0, FALSE), + PT(16, 57, 4, 2, FALSE), + PT(38, 57, 3, 3, FALSE), + PT(48, 38, 5, 3, FALSE), + PT(18, 1, 2, 2, FALSE), + PT(55, 42, 5, 3, FALSE), + PT(33, 6, 3, 2, TRUE), + PT(42, 22, 6, 1, FALSE), + PT( 9, 56, 3, 2, FALSE), + PT( 7, 34, 2, 3, TRUE), + PT(59, 45, 2, 2, TRUE), + PT( 7, 30, 5, 3, FALSE), + PT(27, 46, 3, 2, TRUE), + PT( 4, 9, 6, 0, FALSE), + PT(48, 45, 6, 3, TRUE), + PT(45, 52, 4, 2, FALSE), + PT(24, 36, 4, 2, TRUE), + PT(14, 45, 4, 3, FALSE), + PT(35, 10, 2, 3, FALSE), + PT(18, 45, 2, 0, TRUE), + PT(33, 40, 5, 3, FALSE), + PT(15, 1, 4, 0, TRUE), + PT( 1, 49, 2, 1, FALSE), + PT(63, 27, 3, 3, FALSE), + PT(33, 37, 5, 1, TRUE), + PT(38, 24, 2, 1, TRUE), + PT(21, 45, 6, 2, FALSE), + PT(35, 33, 6, 3, FALSE), + PT(14, 46, 3, 2, FALSE), + PT(20, 34, 3, 2, FALSE), + PT(44, 11, 5, 0, FALSE), + PT(26, 24, 4, 0, TRUE), + PT(33, 7, 3, 1, FALSE), + PT(36, 38, 5, 0, TRUE), + PT(43, 10, 6, 2, FALSE), + PT(62, 39, 6, 1, TRUE), + PT(18, 52, 3, 1, TRUE), + PT(31, 1, 5, 1, FALSE), + PT(46, 6, 4, 1, TRUE), + PT(47, 31, 2, 2, FALSE), + PT(24, 6, 4, 3, FALSE), + PT(49, 31, 5, 1, TRUE), + PT(34, 38, 5, 3, FALSE), + PT(30, 21, 2, 3, FALSE), + PT(32, 34, 5, 0, FALSE), + PT(21, 55, 2, 1, FALSE), + PT(37, 4, 5, 2, FALSE), + PT(31, 4, 5, 3, FALSE), + PT(12, 19, 3, 0, FALSE), + PT( 7, 11, 6, 3, FALSE), + PT(29, 28, 5, 1, FALSE), + PT(48, 34, 3, 2, FALSE), + PT(46, 18, 5, 3, TRUE), + PT(43, 33, 3, 3, FALSE), + PT(22, 56, 6, 0, FALSE), + PT( 4, 2, 2, 3, FALSE), + PT( 5, 20, 4, 0, FALSE), + PT(56, 60, 6, 1, TRUE), + PT(33, 27, 5, 3, TRUE), + PT(20, 42, 4, 3, TRUE), + PT(56, 20, 3, 1, TRUE), + PT(43, 31, 5, 1, TRUE), + PT(41, 43, 4, 2, TRUE), + PT(39, 54, 4, 0, TRUE), + PT(17, 34, 3, 1, TRUE), + PT(41, 3, 3, 1, TRUE), + PT(24, 36, 5, 0, FALSE), + PT(33, 45, 6, 3, FALSE), + PT(60, 44, 4, 2, FALSE), + PT(51, 23, 3, 3, TRUE), + PT(42, 58, 4, 0, TRUE), + PT(10, 35, 6, 3, TRUE), + PT( 0, 11, 4, 0, TRUE), + PT(17, 56, 3, 0, TRUE), + PT(15, 14, 3, 2, FALSE), + PT(31, 15, 6, 3, TRUE), + PT(60, 16, 6, 3, TRUE), + PT(56, 49, 6, 2, TRUE), + PT( 7, 21, 5, 0, FALSE), + PT(30, 46, 3, 0, TRUE), + PT(38, 16, 6, 1, TRUE), + PT(61, 53, 5, 3, TRUE), + PT(58, 4, 6, 2, FALSE), + PT(13, 24, 3, 1, FALSE), + PT( 1, 45, 2, 2, TRUE), + PT(61, 26, 2, 3, TRUE), + PT(23, 63, 6, 1, FALSE), + PT(11, 33, 2, 0, TRUE), + PT(30, 38, 5, 1, TRUE), + PT(13, 25, 4, 2, FALSE), + PT(46, 4, 3, 1, TRUE), + PT(27, 51, 4, 0, FALSE), + PT(21, 33, 3, 2, TRUE), + PT(31, 4, 4, 0, TRUE), + PT(15, 18, 3, 3, TRUE), + PT(45, 42, 6, 1, FALSE), + PT( 3, 55, 3, 3, TRUE), + PT(53, 7, 4, 3, TRUE), + PT(36, 31, 6, 0, TRUE), + PT(47, 48, 2, 2, TRUE), + PT( 6, 0, 4, 2, FALSE), + PT(11, 34, 3, 1, FALSE), + PT(12, 59, 5, 0, TRUE), + PT(20, 26, 2, 3, TRUE), + PT(55, 32, 4, 2, TRUE), + PT(63, 38, 6, 3, TRUE), + PT(58, 62, 2, 0, FALSE), + PT(34, 4, 2, 0, TRUE), + PT(40, 18, 3, 2, FALSE), + PT( 3, 46, 5, 3, FALSE), + PT(14, 56, 5, 0, FALSE), + PT( 1, 41, 4, 1, FALSE), + PT(30, 51, 3, 0, TRUE), + PT( 6, 33, 4, 3, TRUE), + PT(51, 25, 3, 1, FALSE), + PT( 2, 5, 2, 3, TRUE), + PT(17, 17, 5, 2, FALSE), + PT(31, 38, 3, 3, FALSE), + PT(57, 31, 5, 0, FALSE), + PT(46, 47, 2, 1, FALSE), + PT(34, 52, 2, 1, TRUE), + PT(59, 38, 5, 3, TRUE), + PT(52, 0, 2, 2, FALSE), + PT(16, 49, 2, 0, TRUE), + PT(29, 45, 5, 1, FALSE), + PT( 8, 8, 6, 3, TRUE), + PT(21, 24, 6, 2, FALSE), + PT( 4, 43, 4, 2, FALSE), + PT(47, 30, 4, 3, TRUE), + PT(34, 42, 4, 2, FALSE), + PT( 7, 20, 4, 2, TRUE), + PT( 1, 39, 3, 0, TRUE), + PT(41, 10, 5, 0, TRUE), + PT(61, 28, 5, 3, TRUE), + PT(13, 31, 3, 2, FALSE), + PT(36, 61, 6, 1, FALSE), + PT(54, 29, 4, 2, FALSE), + PT(20, 33, 2, 3, FALSE), + PT(26, 13, 5, 0, TRUE), + PT(63, 43, 5, 1, FALSE), + PT(26, 62, 6, 2, TRUE), + PT(17, 40, 3, 0, FALSE), + PT(50, 5, 2, 2, TRUE), + PT(33, 46, 6, 2, FALSE), + PT(45, 20, 5, 1, FALSE), + PT(60, 8, 6, 3, TRUE), + PT(63, 52, 3, 3, FALSE), + PT(39, 36, 3, 2, FALSE), + PT(22, 22, 6, 1, TRUE), + PT(41, 59, 3, 0, TRUE), + PT(54, 47, 3, 2, FALSE), + PT( 3, 37, 5, 2, FALSE), + PT(11, 22, 6, 3, FALSE), + PT(28, 29, 3, 1, TRUE), + PT(44, 39, 3, 1, TRUE), + PT(11, 31, 5, 1, TRUE), + PT( 8, 16, 4, 3, TRUE), + PT(63, 37, 5, 3, TRUE), + PT(51, 19, 3, 3, TRUE), + PT( 4, 49, 6, 3, TRUE), + PT(14, 47, 2, 1, FALSE), + PT( 8, 35, 4, 0, FALSE), + PT(58, 26, 3, 3, FALSE), + PT(47, 11, 3, 3, TRUE), + PT(30, 32, 3, 0, TRUE), + PT(35, 59, 2, 2, FALSE), + PT(37, 0, 4, 3, TRUE), + PT(20, 4, 4, 2, TRUE), + PT(54, 26, 5, 1, TRUE), + PT(39, 33, 2, 2, TRUE), + PT(40, 19, 5, 2, FALSE), + PT(14, 60, 6, 2, TRUE), + PT(12, 45, 5, 1, TRUE), + PT(55, 22, 2, 2, TRUE), + PT(41, 21, 3, 2, TRUE), + PT(23, 52, 6, 3, FALSE), + PT( 9, 10, 6, 0, TRUE), + PT(55, 34, 5, 0, FALSE), + PT(23, 43, 6, 2, TRUE), + PT(20, 43, 2, 1, FALSE), + PT( 8, 19, 3, 3, TRUE), + PT(49, 19, 5, 0, FALSE), + PT( 6, 7, 6, 2, TRUE), + PT(35, 58, 5, 0, TRUE), + PT(15, 36, 5, 3, FALSE), + PT( 7, 53, 4, 3, FALSE), + PT(14, 18, 2, 2, TRUE), + PT(35, 51, 5, 2, FALSE), + PT(14, 33, 4, 3, FALSE), + PT(28, 18, 4, 2, TRUE), + PT(35, 29, 5, 3, TRUE), + PT( 4, 53, 6, 1, TRUE), + PT(22, 1, 4, 2, FALSE), + PT(61, 44, 5, 3, FALSE), + PT(53, 10, 4, 2, TRUE), + PT(17, 19, 4, 2, TRUE), + PT(27, 27, 2, 2, TRUE), + PT(21, 57, 2, 0, FALSE), + PT(11, 53, 4, 2, FALSE), + PT(58, 39, 6, 0, FALSE), + PT(46, 47, 2, 2, TRUE), + PT(16, 31, 6, 2, TRUE), + PT(27, 40, 6, 2, TRUE), + PT(38, 48, 6, 3, TRUE), + PT(52, 55, 5, 1, TRUE), + PT(15, 48, 5, 0, TRUE), + PT(46, 63, 5, 1, TRUE), + PT(56, 52, 5, 1, TRUE), + PT(43, 47, 4, 2, TRUE), + PT(13, 40, 5, 1, FALSE), + PT(51, 24, 2, 0, FALSE), + PT(33, 18, 2, 0, TRUE), + PT(31, 34, 6, 2, FALSE), + PT(17, 37, 4, 1, TRUE), + PT(33, 63, 2, 0, TRUE), + PT(38, 39, 4, 2, TRUE), + PT(40, 54, 2, 1, FALSE), + PT(21, 38, 6, 1, FALSE), + PT(17, 24, 4, 2, FALSE), + PT(50, 37, 6, 3, TRUE), + PT(39, 58, 6, 1, TRUE), + PT(53, 7, 3, 2, FALSE), + PT(26, 14, 5, 1, FALSE), + PT(30, 47, 3, 3, TRUE), + PT( 0, 46, 4, 0, TRUE), + PT(27, 60, 2, 2, FALSE), + PT(47, 58, 5, 3, TRUE), + PT(62, 56, 2, 2, TRUE), + PT(26, 19, 5, 3, TRUE), + PT(41, 13, 5, 3, TRUE), + PT(55, 23, 3, 0, FALSE), + PT(48, 28, 6, 2, TRUE), + PT(21, 52, 2, 2, FALSE), + PT(40, 17, 5, 2, FALSE), + PT(44, 37, 5, 1, FALSE), + PT(32, 63, 5, 0, FALSE), + PT(12, 52, 3, 1, TRUE), + PT(48, 46, 4, 2, TRUE), + PT(55, 28, 4, 2, FALSE), + PT(31, 37, 4, 3, FALSE), + PT(12, 25, 6, 2, FALSE), + PT(24, 16, 6, 2, TRUE), + PT(10, 19, 2, 0, TRUE), + PT(37, 19, 4, 0, FALSE), + PT(19, 25, 2, 0, TRUE), + PT(32, 40, 3, 2, TRUE), + PT(62, 48, 3, 1, TRUE), + PT(35, 36, 4, 0, TRUE), + PT(13, 35, 4, 1, TRUE), + PT(29, 40, 5, 3, FALSE), + PT(45, 18, 3, 3, TRUE), + PT(14, 46, 5, 1, TRUE), + PT(11, 49, 6, 1, FALSE), + PT(36, 60, 5, 2, FALSE), + PT(19, 60, 2, 1, FALSE), + PT(40, 22, 5, 1, FALSE), + PT( 5, 12, 6, 1, FALSE), + PT(57, 11, 6, 1, FALSE), + PT(33, 4, 2, 2, FALSE), + PT(16, 49, 6, 1, FALSE), + PT(18, 31, 4, 1, TRUE), + PT(57, 46, 5, 3, FALSE), + PT(34, 61, 4, 3, TRUE), + PT(12, 30, 3, 0, FALSE), + PT(37, 0, 2, 3, TRUE), + PT( 6, 49, 2, 2, FALSE), + PT(19, 33, 3, 1, FALSE), + PT(20, 32, 6, 2, TRUE), + PT(10, 59, 4, 2, TRUE), + PT(51, 8, 5, 0, FALSE), + PT(61, 2, 6, 1, TRUE), + PT(35, 0, 2, 1, TRUE), + PT(34, 33, 5, 0, FALSE), + PT(48, 20, 5, 3, FALSE), + PT(20, 50, 6, 3, FALSE), + PT(57, 35, 3, 3, FALSE), + PT(28, 17, 6, 0, FALSE), + PT(55, 22, 6, 0, FALSE), + PT(21, 49, 3, 3, TRUE), + PT(52, 40, 5, 2, FALSE), + PT(53, 5, 5, 0, TRUE), + PT(55, 51, 5, 1, FALSE), + PT(28, 23, 5, 3, FALSE), + PT(16, 6, 2, 3, FALSE), + PT(50, 31, 5, 3, TRUE), + PT( 0, 41, 3, 3, FALSE), + PT( 4, 1, 2, 3, FALSE), + PT(59, 35, 3, 3, FALSE), + PT(27, 52, 5, 1, FALSE), + PT(48, 17, 5, 1, TRUE), + PT( 3, 0, 3, 3, TRUE), + PT(29, 55, 3, 1, FALSE), + PT(58, 24, 4, 2, TRUE), + PT(28, 22, 5, 2, FALSE), + PT( 4, 63, 6, 1, TRUE), + PT(38, 35, 5, 2, TRUE), + PT(21, 44, 4, 3, TRUE), + PT( 2, 53, 4, 3, TRUE), + PT( 7, 53, 6, 1, TRUE), + PT(26, 12, 2, 0, FALSE), + PT(40, 38, 5, 2, FALSE), + PT(47, 54, 2, 3, FALSE), + PT(55, 11, 4, 3, TRUE), + PT(27, 61, 3, 0, FALSE), + PT(39, 31, 4, 0, FALSE), + PT(43, 42, 6, 1, TRUE), + PT(11, 15, 4, 0, FALSE), + PT(53, 60, 5, 3, TRUE), + PT(51, 33, 2, 2, TRUE), + PT(45, 38, 6, 2, FALSE), + PT(31, 26, 4, 0, TRUE), + PT(47, 44, 5, 1, FALSE), + PT(26, 50, 3, 1, FALSE), + PT(59, 63, 4, 0, TRUE), + PT(19, 63, 2, 1, TRUE), + PT(15, 36, 4, 1, FALSE), + PT(20, 27, 2, 0, FALSE), + PT(33, 6, 5, 0, FALSE), + PT(37, 52, 2, 0, FALSE), + PT(46, 14, 2, 2, FALSE), + PT(60, 62, 4, 2, TRUE), + PT(22, 6, 6, 0, FALSE), + PT(11, 4, 3, 3, TRUE), + PT(62, 2, 4, 2, FALSE), + PT(12, 23, 4, 2, TRUE), + PT(43, 60, 5, 2, TRUE), + PT(21, 54, 6, 1, TRUE), + PT(24, 35, 5, 1, FALSE), + PT(29, 16, 5, 1, FALSE), + PT(53, 23, 5, 0, FALSE), + PT( 0, 55, 4, 2, FALSE), + PT(10, 59, 2, 2, TRUE), + PT(29, 11, 3, 3, TRUE), + PT(60, 49, 4, 2, TRUE), + PT(29, 15, 3, 2, TRUE), + PT(32, 19, 6, 2, FALSE), + PT(17, 43, 5, 3, FALSE), + PT(35, 12, 5, 3, FALSE), + PT(36, 2, 2, 2, FALSE), + PT(49, 22, 3, 0, TRUE), + PT(14, 35, 6, 2, TRUE), + PT(26, 16, 2, 3, FALSE), + PT(20, 4, 3, 0, TRUE), + PT(45, 39, 6, 3, TRUE), + PT(51, 2, 6, 0, TRUE), + PT( 2, 4, 2, 3, FALSE), + PT(13, 34, 4, 2, TRUE), + PT(37, 0, 2, 3, FALSE), + PT(42, 63, 4, 3, FALSE), + PT(32, 12, 2, 1, FALSE), + PT(47, 46, 6, 2, TRUE), + PT(27, 13, 4, 1, FALSE), + PT(30, 1, 6, 2, FALSE), + PT( 5, 34, 4, 0, TRUE), + PT(52, 42, 6, 1, FALSE), + PT(11, 9, 3, 2, TRUE), + PT(63, 50, 5, 3, TRUE), + PT(61, 24, 5, 2, TRUE), + PT(11, 56, 6, 3, FALSE), + PT(57, 23, 5, 0, FALSE), + PT(52, 4, 4, 2, FALSE), + PT(54, 14, 5, 1, FALSE), + PT(56, 1, 2, 2, FALSE), + PT(60, 36, 4, 1, FALSE), + PT(33, 3, 3, 0, FALSE), + PT(50, 47, 2, 1, FALSE), + PT(41, 36, 6, 0, TRUE), + PT(10, 59, 2, 1, FALSE), + PT(26, 28, 4, 0, FALSE), + PT(48, 49, 3, 1, TRUE), + PT(26, 33, 2, 0, FALSE), + PT( 5, 41, 2, 0, FALSE), + PT(38, 45, 2, 1, TRUE), + PT(22, 12, 3, 2, TRUE), + PT(43, 6, 3, 1, TRUE), + PT( 6, 18, 2, 2, FALSE), + PT(56, 15, 6, 2, TRUE), + PT(35, 58, 5, 2, FALSE), + PT( 0, 25, 6, 1, TRUE), + PT(41, 20, 5, 2, TRUE), + PT(42, 33, 5, 0, TRUE), + PT(20, 49, 2, 2, FALSE), + PT(26, 6, 3, 3, FALSE), + PT(24, 27, 5, 0, FALSE), + PT(59, 22, 5, 0, TRUE), + PT(21, 30, 2, 1, FALSE), + PT(52, 10, 2, 2, FALSE), + PT(27, 5, 4, 3, TRUE), + PT(11, 1, 4, 3, FALSE), + PT(42, 34, 6, 2, TRUE), + PT(33, 32, 3, 0, FALSE), + PT(32, 55, 2, 3, TRUE), + PT(20, 31, 2, 0, TRUE), + PT(29, 17, 4, 2, TRUE), + PT(36, 43, 5, 3, TRUE), + PT( 7, 63, 3, 3, TRUE), + PT(44, 37, 4, 2, TRUE), + PT(42, 41, 3, 0, FALSE), + PT(17, 36, 5, 0, FALSE), + PT(49, 44, 5, 1, FALSE), + PT(57, 11, 4, 3, FALSE), + PT(40, 16, 4, 3, FALSE), + PT(34, 6, 2, 3, FALSE), + PT( 9, 44, 2, 1, TRUE), + PT(52, 25, 2, 2, TRUE), + PT(58, 18, 4, 0, TRUE), + PT(29, 56, 4, 1, TRUE), + PT(18, 37, 4, 2, FALSE), + PT(33, 48, 2, 1, FALSE), + PT(55, 26, 2, 1, FALSE), + PT(36, 59, 4, 2, TRUE), + PT(50, 21, 4, 1, TRUE), + PT(13, 26, 2, 0, FALSE), + PT(22, 46, 4, 3, FALSE), + PT(29, 20, 2, 3, FALSE), + PT(62, 46, 3, 3, TRUE), + PT(10, 22, 2, 0, FALSE), + PT(29, 48, 5, 1, TRUE), + PT( 4, 58, 3, 0, TRUE), + PT( 8, 45, 5, 3, FALSE), + PT(40, 30, 6, 1, TRUE), + PT(10, 18, 5, 3, FALSE), + PT(13, 3, 5, 3, TRUE), + PT(38, 58, 3, 3, FALSE), + PT(53, 59, 5, 1, FALSE), + PT( 3, 26, 3, 0, FALSE), + PT(63, 11, 4, 3, TRUE), + PT( 4, 5, 6, 2, FALSE), + PT(54, 11, 4, 3, TRUE), + PT(59, 23, 2, 0, TRUE), + PT(13, 39, 4, 3, FALSE), + PT(44, 31, 4, 0, FALSE), + PT(38, 16, 4, 0, FALSE), + PT(37, 35, 5, 2, TRUE), + PT(55, 9, 2, 1, TRUE), + PT(20, 23, 5, 2, TRUE), + PT(46, 61, 4, 1, TRUE), + PT(29, 26, 3, 3, TRUE), + PT(33, 51, 5, 3, FALSE), + PT(40, 23, 2, 1, TRUE), + PT(38, 60, 6, 3, FALSE), + PT(20, 26, 6, 1, TRUE), + PT(50, 32, 5, 1, TRUE), + PT(25, 62, 4, 0, FALSE), + PT(12, 2, 5, 2, TRUE), + PT(60, 60, 5, 1, FALSE), + PT(48, 48, 5, 0, FALSE), + PT(37, 63, 3, 3, FALSE), + PT( 3, 23, 3, 3, FALSE), + PT(53, 17, 3, 2, FALSE), + PT(27, 20, 5, 1, FALSE), + PT(40, 58, 4, 1, TRUE), + PT(14, 31, 2, 1, FALSE), + PT(54, 33, 4, 0, FALSE), + PT( 7, 59, 2, 0, FALSE), + PT(35, 25, 6, 2, FALSE), + PT(13, 46, 3, 0, FALSE), + PT(63, 32, 4, 2, TRUE), + PT(62, 59, 2, 2, TRUE), + PT(11, 46, 2, 1, FALSE), + PT(55, 11, 4, 1, TRUE), + PT(61, 50, 3, 3, TRUE), + PT(22, 3, 4, 3, TRUE), + PT(20, 12, 4, 0, TRUE), + PT(24, 3, 6, 0, FALSE), + PT(62, 33, 2, 1, TRUE), + PT(15, 0, 6, 1, FALSE), + PT(63, 35, 2, 3, FALSE), + PT(14, 49, 3, 2, TRUE), + PT(24, 28, 3, 2, TRUE), + PT(48, 14, 3, 3, FALSE), + PT(33, 32, 4, 1, TRUE), + PT(63, 12, 3, 3, FALSE), + PT(20, 51, 4, 1, FALSE), + PT(34, 33, 2, 2, TRUE), + PT(54, 5, 3, 3, FALSE), + PT(29, 49, 2, 2, FALSE), + PT(32, 17, 6, 3, TRUE), + PT(13, 51, 3, 0, TRUE), + PT(37, 5, 6, 3, FALSE), + PT(30, 49, 4, 0, FALSE), + PT(53, 58, 5, 3, TRUE), + PT(50, 47, 6, 0, FALSE), + PT(20, 35, 5, 2, TRUE), + PT(53, 30, 5, 0, TRUE), + PT( 5, 5, 3, 1, TRUE), + PT( 9, 31, 4, 3, FALSE), + PT(47, 11, 2, 2, TRUE), + PT(21, 17, 2, 1, TRUE), + PT(41, 27, 3, 0, FALSE), + PT(28, 19, 6, 2, TRUE), + PT(52, 49, 4, 1, TRUE), + PT(39, 63, 5, 3, TRUE), + PT( 9, 48, 3, 0, TRUE), + PT(35, 18, 6, 2, FALSE), + PT( 2, 42, 4, 0, TRUE), + PT( 9, 60, 3, 2, TRUE), + PT(12, 2, 2, 0, FALSE), + PT(34, 5, 2, 3, TRUE), + PT(34, 8, 3, 1, TRUE), + PT(10, 15, 2, 2, TRUE), + PT( 2, 17, 2, 1, TRUE), + PT( 1, 33, 4, 1, FALSE), + PT(22, 57, 6, 1, TRUE), + PT(36, 56, 6, 2, FALSE), + PT(15, 30, 5, 1, TRUE), + PT(43, 21, 2, 2, TRUE), + PT(32, 34, 5, 3, FALSE), + PT(58, 63, 6, 0, TRUE), + PT(26, 39, 5, 1, TRUE), + PT(41, 52, 2, 2, FALSE), + PT(22, 57, 5, 3, TRUE), + PT(19, 62, 2, 3, FALSE), + PT(54, 33, 6, 0, FALSE), + PT( 0, 36, 5, 1, TRUE), + PT(36, 33, 6, 0, FALSE), + PT(21, 49, 2, 1, TRUE), + PT(16, 55, 4, 2, FALSE), + PT( 8, 7, 4, 1, TRUE), + PT(33, 9, 4, 2, TRUE), + PT( 5, 60, 6, 1, FALSE), + PT(25, 3, 4, 2, TRUE), + PT(15, 41, 5, 1, TRUE), + PT(22, 7, 2, 1, TRUE), + PT(62, 61, 4, 2, TRUE), + PT(54, 11, 5, 0, FALSE), + PT(46, 43, 2, 3, FALSE), + PT(12, 49, 2, 0, TRUE), + PT(48, 19, 5, 2, TRUE), + PT(38, 62, 6, 3, TRUE), + PT(41, 47, 5, 3, FALSE), + PT(21, 61, 2, 3, TRUE), + PT(28, 46, 4, 0, TRUE), + PT(51, 47, 2, 0, FALSE), + PT(13, 5, 3, 2, TRUE), + PT(28, 26, 2, 1, FALSE), + PT(14, 24, 6, 3, TRUE), + PT(27, 17, 2, 2, FALSE), + PT( 6, 20, 4, 0, TRUE), + PT(49, 14, 4, 3, TRUE), + PT(26, 3, 2, 0, FALSE), + PT( 0, 52, 6, 0, TRUE), + PT(63, 11, 3, 2, TRUE), + PT(15, 18, 3, 3, TRUE), + PT(26, 21, 2, 0, FALSE), + PT(15, 0, 4, 2, FALSE), + PT(62, 10, 5, 1, FALSE), + PT(48, 43, 4, 2, FALSE), + PT(38, 49, 2, 0, FALSE), + PT(45, 47, 5, 3, TRUE), + PT(63, 12, 2, 1, TRUE), + PT(18, 11, 2, 3, FALSE), + PT(21, 7, 3, 3, TRUE), + PT(40, 16, 6, 1, FALSE), + PT(15, 23, 2, 2, TRUE), + PT(11, 39, 6, 1, TRUE), + PT(52, 29, 2, 0, FALSE), + PT(28, 58, 2, 1, FALSE), + PT(44, 39, 6, 3, TRUE), + PT(10, 26, 6, 1, FALSE), + PT( 5, 31, 4, 0, TRUE), + PT(36, 13, 3, 3, TRUE), + PT(28, 23, 4, 2, FALSE), + PT(47, 59, 6, 1, FALSE), + PT(59, 37, 2, 0, FALSE), + PT( 3, 47, 4, 0, TRUE), + PT(12, 16, 4, 1, TRUE), + PT(14, 58, 5, 2, FALSE), + PT(51, 3, 5, 2, FALSE), + PT(18, 6, 3, 2, FALSE), + PT(42, 55, 6, 0, FALSE), + PT(63, 1, 3, 3, FALSE), + PT(53, 22, 6, 3, TRUE), + PT(44, 50, 6, 2, TRUE), + PT( 5, 17, 4, 1, FALSE), + PT(41, 9, 4, 0, FALSE), + PT(43, 13, 3, 3, TRUE), + PT(24, 13, 4, 0, FALSE), + PT(35, 57, 2, 3, FALSE), + PT(15, 58, 3, 0, FALSE), + PT(33, 53, 5, 1, TRUE), + PT(54, 38, 5, 1, TRUE), + PT(35, 5, 5, 3, TRUE), + PT(27, 8, 2, 3, TRUE), + PT(62, 9, 2, 3, FALSE), + PT(45, 58, 6, 3, TRUE), + PT(21, 53, 6, 2, TRUE), + PT(41, 10, 2, 1, FALSE), + PT( 2, 57, 3, 3, TRUE), + PT(20, 52, 6, 1, TRUE), + PT(23, 29, 3, 0, FALSE), + PT(22, 29, 3, 1, FALSE), + PT( 1, 57, 4, 1, FALSE), + PT(30, 39, 6, 3, FALSE), + PT(50, 20, 4, 3, FALSE), + PT(10, 57, 6, 3, FALSE), + PT(31, 13, 3, 3, FALSE), + PT(11, 10, 3, 0, TRUE), + PT(53, 29, 6, 2, FALSE), + PT( 3, 18, 2, 3, FALSE), + PT(12, 19, 5, 3, FALSE), + PT(12, 52, 3, 3, FALSE), + PT(16, 20, 3, 3, FALSE), + PT(35, 50, 4, 3, TRUE), + PT( 2, 16, 5, 0, TRUE), + PT(53, 24, 6, 1, TRUE), + PT(51, 29, 3, 1, FALSE), + PT(60, 21, 4, 1, TRUE), + PT(62, 63, 4, 1, FALSE), + PT(42, 2, 5, 2, FALSE), + PT(40, 10, 5, 3, TRUE), + PT(26, 6, 6, 2, TRUE), + PT(60, 23, 5, 1, TRUE), + PT( 3, 18, 2, 3, TRUE), + PT(47, 10, 4, 3, FALSE), + PT(18, 56, 2, 0, TRUE), + PT(54, 27, 4, 1, TRUE), + PT( 1, 57, 6, 2, TRUE), + PT(25, 25, 2, 3, TRUE), + PT( 9, 40, 4, 1, FALSE), + PT(30, 39, 5, 2, FALSE), + PT(53, 51, 5, 2, FALSE), + PT(39, 37, 6, 0, TRUE), + PT( 6, 49, 5, 2, TRUE), + PT(26, 57, 5, 0, FALSE), + PT(45, 4, 3, 3, FALSE), + PT(36, 62, 3, 2, FALSE), + PT(60, 48, 3, 1, TRUE), + PT(63, 62, 6, 3, TRUE), + PT(34, 54, 2, 0, TRUE), + PT( 0, 1, 3, 2, FALSE), + PT(18, 26, 2, 0, FALSE), + PT(18, 30, 5, 2, FALSE), + PT(31, 18, 5, 1, FALSE), + PT(47, 6, 3, 0, TRUE), + PT(53, 26, 3, 0, FALSE), + PT(59, 9, 6, 3, FALSE), + PT(52, 29, 2, 1, TRUE), + PT( 2, 7, 2, 0, FALSE), + PT(32, 47, 3, 2, TRUE), + PT(11, 3, 6, 1, TRUE), + PT(28, 22, 6, 0, TRUE), + PT( 5, 19, 3, 1, TRUE), + PT(41, 6, 2, 1, TRUE), + PT(48, 45, 6, 3, FALSE), + PT(42, 45, 5, 2, FALSE), + PT(25, 52, 3, 2, FALSE), + PT(15, 21, 2, 1, FALSE), + PT(54, 21, 5, 2, FALSE), + PT(58, 6, 3, 2, FALSE), + PT(18, 29, 4, 3, FALSE), + PT( 3, 56, 3, 2, TRUE), + PT( 1, 1, 5, 2, TRUE), + PT(23, 46, 2, 0, FALSE), + PT(20, 23, 3, 2, FALSE), + PT(52, 15, 5, 0, FALSE), + PT( 9, 55, 3, 1, TRUE), + PT(40, 29, 4, 3, FALSE), + PT(41, 45, 6, 3, FALSE), + PT(30, 23, 5, 0, FALSE), + PT(21, 15, 3, 2, FALSE), + PT(32, 45, 2, 0, FALSE), + PT(39, 22, 5, 3, FALSE), + PT(20, 9, 2, 1, FALSE), + PT(59, 61, 4, 0, TRUE), + PT(37, 26, 5, 2, FALSE), + PT( 0, 34, 6, 3, FALSE), + PT(13, 48, 2, 0, FALSE), + PT(23, 25, 3, 1, TRUE), + PT( 0, 59, 4, 0, TRUE), + PT(42, 40, 6, 2, FALSE), + PT(45, 15, 2, 3, FALSE), + PT(10, 48, 5, 0, FALSE), + PT( 6, 0, 4, 2, TRUE), + PT(49, 46, 5, 1, FALSE), + PT(20, 51, 5, 0, FALSE), + PT(54, 16, 5, 3, FALSE), + PT( 5, 46, 3, 0, TRUE), + PT(25, 26, 2, 2, TRUE), + PT(44, 20, 2, 3, TRUE), + PT(55, 15, 2, 1, TRUE), + PT(50, 23, 3, 1, TRUE), + PT(57, 24, 6, 1, FALSE), + PT(46, 50, 3, 3, FALSE), + PT(36, 29, 6, 0, TRUE), + PT(18, 29, 5, 1, TRUE), + PT(20, 12, 4, 3, TRUE), + PT(54, 46, 6, 1, FALSE), + PT( 6, 10, 3, 1, FALSE), + PT(40, 40, 4, 0, FALSE), + PT(58, 58, 2, 3, TRUE), + PT( 8, 39, 6, 3, FALSE), + PT(24, 26, 2, 0, FALSE), + PT(30, 38, 3, 1, TRUE), + PT(31, 51, 3, 3, TRUE), + PT(33, 23, 5, 3, TRUE), + PT( 1, 8, 4, 0, FALSE), + PT(53, 3, 3, 0, TRUE), + PT(59, 2, 4, 0, FALSE), + PT( 2, 45, 4, 1, TRUE), + PT(14, 23, 6, 1, FALSE), + PT(49, 41, 2, 0, TRUE), + PT(34, 23, 4, 1, FALSE), + PT(58, 44, 4, 1, TRUE), + PT(52, 32, 3, 0, FALSE), + PT( 0, 58, 4, 1, FALSE), + PT(37, 51, 4, 0, TRUE), + PT(51, 4, 4, 3, TRUE), + PT( 4, 24, 6, 1, FALSE), + PT(44, 12, 5, 3, TRUE), + PT(40, 20, 5, 2, FALSE), + PT(63, 48, 5, 1, TRUE), + PT(48, 33, 3, 2, TRUE), + PT( 1, 37, 6, 1, FALSE), + PT( 5, 35, 6, 2, FALSE), + PT(36, 16, 6, 0, FALSE), + PT(61, 20, 3, 1, TRUE), + PT(63, 56, 5, 3, TRUE), + PT(34, 27, 6, 1, FALSE), + PT(37, 7, 6, 3, TRUE), + PT(10, 12, 3, 2, TRUE), + PT( 3, 30, 3, 1, FALSE), + PT(15, 60, 2, 1, FALSE), + PT(17, 24, 3, 2, TRUE), + PT( 0, 53, 5, 3, TRUE), + PT(50, 24, 2, 2, FALSE), + PT(35, 48, 3, 1, TRUE), + PT(17, 61, 2, 1, FALSE), + PT(26, 22, 6, 2, TRUE), + PT(40, 5, 4, 2, FALSE), + PT(23, 61, 6, 3, TRUE), + PT(46, 9, 5, 3, FALSE), + PT(24, 29, 2, 3, TRUE), + PT(32, 31, 3, 0, FALSE), + PT(35, 44, 5, 3, TRUE), + PT(32, 63, 2, 3, FALSE), + PT(63, 41, 5, 3, FALSE), + PT(35, 59, 5, 0, TRUE), + PT(24, 57, 2, 1, TRUE), + PT(30, 50, 6, 2, TRUE), + PT(20, 29, 5, 1, FALSE), + PT(53, 1, 3, 2, TRUE), + PT(62, 59, 3, 3, FALSE), + PT(34, 30, 2, 3, FALSE), + PT(24, 34, 2, 1, FALSE), + PT(62, 41, 6, 1, TRUE), + PT(47, 20, 3, 0, TRUE), + PT(59, 7, 2, 2, TRUE), + PT( 6, 61, 5, 0, TRUE), + PT(53, 55, 4, 1, TRUE), + PT(52, 29, 5, 2, TRUE), + PT(24, 18, 3, 1, TRUE), + PT(11, 19, 4, 2, FALSE), + PT(19, 56, 3, 2, FALSE), + PT(31, 11, 3, 1, TRUE), + PT(19, 33, 3, 2, FALSE), + PT( 6, 57, 6, 1, FALSE), + PT(55, 61, 4, 3, FALSE), + PT(41, 38, 2, 2, TRUE), + PT(60, 51, 4, 3, TRUE), + PT( 0, 1, 5, 3, FALSE), + PT(21, 24, 6, 0, TRUE), + PT(13, 44, 2, 1, TRUE), + PT(39, 59, 4, 0, FALSE), + PT(45, 1, 4, 3, FALSE), + PT(35, 21, 6, 0, FALSE), + PT(36, 0, 2, 3, TRUE), + PT(55, 63, 6, 1, TRUE), + PT(37, 36, 6, 0, TRUE), + PT( 6, 59, 6, 3, TRUE), + PT( 3, 24, 3, 1, FALSE), + PT(44, 52, 2, 2, FALSE), + PT(29, 54, 3, 0, FALSE), + PT(58, 4, 4, 1, TRUE), + PT(18, 38, 2, 2, TRUE), + PT(43, 25, 3, 1, FALSE), + PT(41, 44, 6, 3, FALSE), + PT( 1, 25, 3, 2, TRUE), + PT(47, 6, 5, 1, TRUE), + PT(12, 18, 4, 3, FALSE), + PT(54, 50, 3, 2, TRUE), + PT(13, 18, 5, 0, FALSE), + PT( 3, 40, 2, 1, TRUE), + PT(41, 6, 2, 3, TRUE), + PT( 3, 56, 4, 0, TRUE), + PT(48, 44, 2, 0, FALSE), + PT(34, 0, 5, 0, FALSE), + PT(36, 59, 3, 2, FALSE), + PT(32, 62, 2, 1, TRUE), + PT( 2, 12, 3, 0, TRUE), + PT(41, 44, 3, 1, FALSE), + PT(57, 48, 4, 1, FALSE), + PT(42, 31, 4, 1, FALSE), + PT(20, 52, 5, 2, FALSE), + PT(20, 37, 3, 1, TRUE), + PT( 6, 59, 2, 2, TRUE), + PT( 6, 28, 2, 1, TRUE), + PT(21, 3, 3, 0, FALSE), + PT(30, 42, 3, 1, TRUE), + PT(23, 37, 5, 3, TRUE), + PT(28, 41, 5, 3, FALSE), + PT( 2, 50, 3, 3, FALSE), + PT(29, 40, 6, 2, TRUE), + PT(54, 3, 6, 2, FALSE), + PT(22, 61, 5, 1, FALSE), + PT(18, 13, 2, 1, TRUE), + PT(29, 45, 4, 0, TRUE), + PT(50, 23, 5, 3, FALSE), + PT(26, 21, 4, 3, FALSE), + PT(34, 47, 2, 2, TRUE), + PT(60, 14, 4, 0, FALSE), + PT(47, 39, 2, 1, TRUE), + PT( 4, 9, 6, 1, FALSE), + PT(30, 1, 6, 2, FALSE), + PT( 6, 22, 3, 3, FALSE), + PT(46, 27, 3, 2, FALSE), + PT(40, 19, 5, 1, FALSE), + PT(48, 52, 2, 1, FALSE), + PT(18, 50, 3, 0, FALSE), + PT(29, 29, 6, 2, TRUE), + PT( 7, 28, 2, 3, FALSE), + PT(45, 61, 6, 2, TRUE), + PT(28, 27, 4, 2, FALSE), + PT(33, 45, 3, 3, FALSE), + PT(16, 9, 2, 2, FALSE), + PT(61, 17, 2, 1, FALSE), + PT(37, 2, 4, 3, FALSE), + PT(35, 2, 3, 0, TRUE), + PT(25, 5, 2, 2, FALSE), + PT(11, 33, 3, 1, FALSE), + PT( 9, 2, 5, 2, FALSE), + PT(24, 40, 5, 2, TRUE), + PT(30, 16, 2, 1, FALSE), + PT(46, 24, 5, 3, FALSE), + PT(31, 2, 5, 2, FALSE), + PT(20, 23, 4, 2, FALSE), + PT(57, 8, 6, 1, FALSE), + PT(22, 20, 4, 1, FALSE), + PT(22, 40, 4, 0, TRUE), + PT(17, 16, 5, 2, FALSE), + PT(35, 54, 5, 1, TRUE), + PT(57, 33, 4, 3, FALSE), + PT(14, 6, 5, 2, TRUE), + PT(60, 62, 4, 3, FALSE), + PT(42, 27, 3, 3, TRUE), + PT( 0, 60, 6, 1, TRUE), + PT(53, 63, 2, 2, FALSE), + PT( 0, 11, 2, 0, FALSE), + PT(52, 60, 2, 3, TRUE), + PT(45, 7, 3, 3, TRUE), + PT(36, 57, 4, 3, TRUE), + PT(22, 0, 3, 2, TRUE), + PT(51, 43, 3, 3, FALSE), + PT(15, 8, 6, 0, TRUE), + PT(58, 9, 2, 1, TRUE), + PT(12, 33, 3, 2, FALSE), + PT(42, 23, 6, 2, FALSE), + PT(41, 39, 2, 0, FALSE), + PT(55, 27, 3, 0, FALSE), + PT(21, 8, 5, 3, TRUE), + PT(31, 22, 2, 1, FALSE), + PT(31, 40, 6, 2, FALSE), + PT(28, 32, 4, 1, FALSE), + PT(18, 1, 2, 1, FALSE), + PT(33, 49, 2, 0, FALSE), + PT(34, 38, 3, 3, FALSE), + PT( 1, 61, 2, 0, TRUE), + PT(30, 39, 4, 2, TRUE), + PT(61, 48, 4, 2, FALSE), + PT(29, 17, 4, 1, FALSE), + PT(54, 48, 2, 3, FALSE), + PT(31, 62, 5, 1, FALSE), + PT(60, 39, 3, 1, TRUE), + PT(31, 41, 2, 0, FALSE), + PT(30, 5, 5, 1, FALSE), + PT(10, 16, 2, 2, FALSE), + PT(31, 0, 5, 3, FALSE), + PT(11, 59, 3, 0, FALSE), + PT(10, 57, 6, 0, FALSE), + PT(55, 11, 3, 3, TRUE), + PT(29, 10, 5, 0, TRUE), + PT(62, 28, 6, 1, TRUE), + PT(19, 46, 5, 0, FALSE), + PT(39, 27, 3, 3, FALSE), + PT(29, 2, 3, 2, FALSE), + PT( 1, 37, 2, 2, FALSE), + PT(58, 16, 3, 2, FALSE), + PT(18, 5, 5, 1, FALSE), + PT(48, 32, 4, 3, FALSE), + PT(47, 46, 5, 3, FALSE), + PT( 3, 7, 4, 2, FALSE), + PT(54, 4, 5, 1, TRUE), + PT(17, 37, 5, 2, TRUE), + PT(40, 14, 5, 3, FALSE), + PT(15, 29, 2, 2, TRUE), + PT(28, 40, 6, 0, FALSE), + PT(31, 35, 4, 3, FALSE), + PT(54, 18, 6, 3, TRUE), + PT(58, 49, 2, 0, FALSE), + PT(44, 44, 5, 3, TRUE), + PT(26, 13, 2, 2, TRUE), + PT(63, 60, 6, 1, FALSE), + PT(53, 28, 2, 3, FALSE), + PT(51, 22, 5, 0, FALSE), + PT(29, 63, 4, 0, TRUE), + PT(44, 62, 5, 1, TRUE), + PT(36, 35, 5, 3, TRUE), + PT(50, 21, 5, 1, FALSE), + PT(27, 16, 6, 2, TRUE), + PT(24, 55, 2, 0, FALSE), + PT(59, 30, 2, 0, TRUE), + PT(43, 22, 4, 2, FALSE), + PT(29, 22, 4, 3, FALSE), + PT(60, 45, 2, 0, TRUE), + PT(21, 40, 5, 0, FALSE), + PT(39, 39, 4, 3, TRUE), + PT(59, 58, 2, 3, FALSE), + PT(26, 12, 3, 1, FALSE), + PT(21, 8, 4, 2, TRUE), + PT(11, 16, 4, 1, FALSE), + PT(26, 62, 2, 3, TRUE), + PT(40, 31, 3, 3, FALSE), + PT( 1, 30, 3, 3, FALSE), + PT(28, 47, 2, 0, FALSE), + PT(37, 11, 6, 2, FALSE), + PT(62, 12, 3, 1, FALSE), + PT(27, 16, 5, 1, FALSE), + PT(15, 20, 2, 3, TRUE), + PT(15, 63, 2, 3, TRUE), + PT( 3, 21, 3, 3, TRUE), + PT( 2, 54, 2, 3, TRUE), + PT(21, 29, 3, 0, FALSE), + PT( 8, 54, 2, 0, FALSE), + PT(20, 13, 5, 1, TRUE), + PT(10, 5, 3, 2, TRUE), + PT(38, 18, 3, 3, FALSE), + PT(62, 24, 3, 0, TRUE), + PT(54, 24, 6, 3, TRUE), + PT(23, 57, 5, 3, FALSE), + PT(13, 4, 3, 0, TRUE), + PT(22, 34, 2, 2, TRUE), + PT(62, 38, 3, 3, TRUE), + PT( 0, 6, 2, 3, TRUE), + PT(51, 34, 3, 2, TRUE), + PT(43, 57, 5, 1, TRUE), + PT(62, 49, 3, 2, FALSE), + PT(34, 63, 2, 1, TRUE), + PT(48, 28, 6, 0, TRUE), + PT( 7, 43, 2, 2, FALSE), + PT(50, 53, 3, 3, FALSE), + PT( 2, 7, 4, 0, FALSE), + PT(15, 59, 2, 0, TRUE), + PT(32, 7, 2, 1, FALSE), + PT(42, 48, 3, 2, TRUE), + PT(40, 56, 6, 3, FALSE), + PT(32, 1, 2, 3, TRUE), + PT(21, 32, 4, 0, TRUE), + PT(58, 27, 3, 3, FALSE), + PT(56, 18, 4, 2, FALSE), + PT( 3, 62, 3, 3, TRUE), + PT(41, 29, 2, 1, TRUE), + PT(32, 39, 3, 0, TRUE), + PT(18, 37, 4, 0, FALSE), + PT(50, 51, 5, 1, TRUE), + PT(63, 5, 6, 0, TRUE), + PT(53, 60, 5, 2, TRUE), + PT(45, 2, 5, 3, FALSE), + PT(16, 42, 2, 3, FALSE), + PT(23, 8, 6, 0, TRUE), + PT(23, 46, 5, 1, TRUE), + PT(48, 30, 2, 2, TRUE), + PT(49, 21, 4, 3, FALSE), + PT( 8, 16, 6, 1, TRUE), + PT(21, 1, 4, 3, TRUE), + PT(18, 7, 5, 3, TRUE), + PT(41, 39, 6, 2, FALSE), + PT(63, 8, 6, 0, TRUE), + PT(28, 32, 3, 1, FALSE), + PT(51, 12, 2, 1, TRUE), + PT(24, 49, 4, 2, FALSE), + PT(55, 45, 5, 3, FALSE), + PT(33, 24, 4, 2, FALSE), + PT(58, 39, 6, 0, TRUE), + PT(53, 62, 6, 0, FALSE), + PT(58, 20, 6, 1, TRUE), + PT(15, 26, 5, 2, TRUE), + PT(48, 46, 2, 0, TRUE), + PT(26, 49, 3, 2, TRUE), + PT(23, 60, 3, 0, FALSE), + PT(51, 49, 4, 1, TRUE), + PT(29, 57, 5, 2, TRUE), + PT(16, 29, 5, 3, TRUE), + PT(36, 21, 3, 2, FALSE), + PT(37, 1, 5, 1, TRUE), + PT(34, 22, 5, 3, FALSE), + PT(27, 37, 6, 2, TRUE), + PT(55, 16, 4, 3, FALSE), + PT(57, 1, 6, 3, FALSE), + PT(23, 43, 2, 2, FALSE), + PT( 9, 22, 2, 3, TRUE), + PT(32, 40, 4, 1, TRUE), + PT(38, 58, 4, 3, FALSE), + PT(39, 42, 4, 2, FALSE), + PT(54, 2, 5, 2, FALSE), + PT(41, 48, 6, 2, TRUE), + PT(54, 1, 3, 3, TRUE), + PT(40, 59, 3, 2, TRUE), + PT(35, 30, 5, 2, TRUE), + PT(17, 30, 5, 2, FALSE), + PT(47, 50, 3, 0, TRUE), + PT(63, 38, 6, 0, TRUE), + PT(56, 30, 2, 3, TRUE), + PT( 5, 24, 5, 3, FALSE), + PT( 0, 46, 2, 1, FALSE), + PT(52, 63, 6, 2, FALSE), + PT(22, 16, 5, 0, TRUE), + PT(32, 61, 6, 3, FALSE), + PT(47, 22, 4, 2, TRUE), + PT(18, 23, 2, 0, FALSE), + PT(33, 55, 6, 2, TRUE), + PT(37, 55, 5, 2, TRUE), + PT( 1, 8, 4, 3, TRUE), + PT( 3, 31, 5, 0, TRUE), + PT(13, 42, 2, 3, FALSE), + PT(58, 63, 6, 1, TRUE), + PT(43, 25, 3, 2, TRUE), + PT(42, 31, 5, 0, TRUE), + PT(40, 44, 2, 0, FALSE), + PT(40, 48, 2, 0, FALSE), + PT(57, 20, 3, 1, TRUE), + PT( 0, 24, 4, 0, TRUE), + PT(40, 12, 6, 3, TRUE), + PT(17, 16, 2, 0, TRUE), + PT(60, 51, 6, 1, FALSE), + PT(51, 54, 3, 1, FALSE), + PT(54, 0, 3, 2, FALSE), + PT(49, 27, 3, 2, TRUE), + PT(56, 29, 2, 0, FALSE), + PT(60, 57, 4, 3, TRUE), + PT(58, 63, 2, 2, FALSE), + PT(25, 18, 2, 2, FALSE), + PT(13, 31, 3, 0, FALSE), + PT( 0, 37, 3, 0, FALSE), + PT(40, 28, 6, 1, FALSE), + PT(39, 3, 3, 1, FALSE), + PT(38, 45, 5, 1, FALSE), + PT(41, 40, 4, 3, TRUE), + PT(10, 42, 3, 0, FALSE), + PT(10, 26, 6, 0, FALSE), + PT(32, 26, 5, 3, FALSE), + PT( 6, 11, 3, 2, TRUE), + PT(15, 12, 3, 2, FALSE), + PT(53, 40, 3, 2, FALSE), + PT(61, 22, 4, 1, TRUE), + PT(33, 28, 6, 0, TRUE), + PT(20, 28, 5, 3, FALSE), + PT(34, 50, 6, 2, TRUE), + PT( 9, 41, 6, 0, FALSE), + PT(32, 26, 2, 0, FALSE), + PT(49, 63, 5, 2, FALSE), + PT(10, 61, 6, 3, TRUE), + PT(11, 46, 5, 2, TRUE), + PT(31, 34, 6, 0, TRUE), + PT( 6, 7, 5, 0, TRUE), + PT(34, 23, 5, 2, TRUE), + PT(48, 17, 3, 0, FALSE), + PT(12, 25, 2, 2, TRUE), + PT( 7, 10, 6, 2, FALSE), + PT(24, 41, 4, 3, TRUE), + PT(51, 12, 6, 0, FALSE), + PT( 3, 26, 6, 3, TRUE), + PT( 6, 1, 5, 2, TRUE), + PT(15, 59, 5, 1, TRUE), + PT(17, 31, 6, 3, TRUE), + PT(43, 33, 6, 3, FALSE), + PT(63, 35, 2, 3, TRUE), + PT(23, 7, 5, 1, TRUE), + PT(43, 14, 6, 0, FALSE), + PT(17, 57, 3, 2, TRUE), + PT(41, 3, 6, 1, TRUE), + PT(48, 3, 5, 3, TRUE), + PT(60, 32, 4, 3, FALSE), + PT( 3, 34, 2, 2, FALSE), + PT(58, 40, 6, 2, TRUE), + PT( 1, 40, 5, 1, TRUE), + PT(62, 21, 3, 0, FALSE), + PT(48, 7, 2, 3, TRUE), + PT(59, 44, 6, 0, FALSE), + PT(21, 7, 5, 2, FALSE), + PT(23, 39, 3, 2, TRUE), + PT(63, 30, 6, 1, TRUE), + PT(13, 23, 2, 0, FALSE), + PT(21, 14, 6, 0, FALSE), + PT( 9, 5, 6, 0, FALSE), + PT(45, 32, 2, 2, TRUE), + PT(60, 61, 6, 0, FALSE), + PT(12, 23, 3, 2, FALSE), + PT(26, 13, 4, 2, TRUE), + PT(43, 43, 5, 1, FALSE), + PT( 2, 22, 5, 2, TRUE), + PT(23, 49, 2, 3, TRUE), + PT( 0, 8, 2, 1, TRUE), + PT(55, 53, 4, 0, TRUE), + PT(30, 28, 3, 3, TRUE), + PT(43, 50, 3, 2, FALSE), + PT(16, 42, 2, 3, FALSE), + PT(58, 51, 6, 0, TRUE), + PT(23, 43, 5, 1, FALSE), + PT(12, 61, 2, 0, TRUE), + PT(40, 10, 6, 0, FALSE), + PT(35, 10, 4, 3, FALSE), + PT(10, 20, 4, 2, FALSE), + PT(11, 15, 6, 0, FALSE), + PT(27, 30, 5, 0, TRUE), + PT( 2, 53, 5, 0, FALSE), + PT(59, 2, 2, 2, FALSE), + PT( 0, 15, 6, 2, TRUE), + PT(28, 60, 5, 3, FALSE), + PT(40, 56, 3, 0, TRUE), + PT(27, 17, 2, 1, FALSE), + PT( 9, 22, 2, 0, FALSE), + PT(46, 13, 4, 0, FALSE), + PT(61, 4, 6, 1, FALSE), + PT(22, 44, 4, 2, TRUE), + PT( 2, 61, 3, 0, FALSE), + PT(11, 19, 3, 2, FALSE), + PT(34, 42, 3, 2, FALSE), + PT(32, 39, 4, 1, FALSE), + PT( 5, 38, 4, 1, FALSE), + PT(18, 29, 5, 2, FALSE), + PT( 8, 5, 5, 3, FALSE), + PT(63, 28, 2, 3, TRUE), + PT(36, 13, 6, 1, TRUE), + PT(54, 8, 4, 2, FALSE), + PT(16, 34, 5, 0, TRUE), + PT(28, 10, 2, 0, TRUE), + PT(37, 15, 2, 0, FALSE), + PT(36, 56, 5, 3, TRUE), + PT(37, 50, 3, 3, FALSE), + PT( 6, 42, 5, 0, TRUE), + PT(62, 58, 5, 0, FALSE), + PT(52, 23, 6, 1, TRUE), + PT(24, 51, 2, 3, TRUE), + PT( 7, 20, 3, 3, TRUE), + PT(17, 23, 4, 0, FALSE), + PT(19, 14, 2, 2, FALSE), + PT(59, 28, 2, 1, FALSE), + PT(42, 19, 6, 3, TRUE), + PT(42, 53, 6, 1, FALSE), + PT(48, 2, 4, 2, TRUE), + PT( 0, 7, 3, 3, TRUE), + PT(12, 4, 5, 2, FALSE), + PT(55, 55, 6, 0, FALSE), + PT(37, 18, 4, 2, TRUE), + PT(18, 34, 4, 0, TRUE), + PT(34, 53, 6, 1, TRUE), + PT( 7, 32, 5, 2, TRUE), + PT(39, 14, 6, 0, FALSE), + PT(52, 25, 3, 1, FALSE), + PT(10, 60, 4, 2, TRUE), + PT( 7, 29, 5, 1, TRUE), + PT(49, 58, 2, 1, FALSE), + PT(26, 61, 6, 3, TRUE), + PT(22, 21, 2, 3, FALSE), + PT(57, 19, 2, 2, TRUE), + PT(45, 3, 5, 3, FALSE), + PT( 6, 57, 5, 2, FALSE), + PT(22, 0, 2, 1, TRUE), + PT(53, 42, 6, 2, TRUE), + PT(36, 1, 3, 0, FALSE), + PT(36, 55, 5, 0, FALSE), + PT(37, 27, 6, 2, FALSE), + PT(37, 25, 2, 3, TRUE), + PT(39, 47, 3, 1, TRUE), + PT(39, 13, 2, 0, FALSE), + PT(54, 60, 6, 0, FALSE), + PT(60, 51, 4, 1, TRUE), + PT(62, 39, 3, 3, FALSE), + PT(37, 45, 5, 0, TRUE), + PT(31, 18, 4, 0, TRUE), + PT(55, 50, 3, 3, TRUE), + PT(17, 33, 6, 2, TRUE), + PT(48, 12, 3, 0, TRUE), + PT(37, 61, 4, 3, FALSE), + PT(23, 2, 3, 2, TRUE), + PT(20, 46, 2, 0, TRUE), + PT(56, 19, 6, 0, FALSE), + PT(10, 43, 4, 0, FALSE), + PT(30, 16, 2, 2, TRUE), + PT(55, 48, 5, 3, FALSE), + PT(30, 4, 5, 2, FALSE), + PT(20, 52, 3, 0, TRUE), + PT( 8, 20, 3, 0, FALSE), + PT(14, 28, 6, 0, FALSE), + PT(26, 46, 3, 1, TRUE), + PT(31, 57, 6, 0, TRUE), + PT(12, 28, 5, 0, FALSE), + PT(62, 51, 4, 1, TRUE), + PT(15, 19, 2, 3, FALSE), + PT(37, 57, 5, 3, TRUE), + PT(20, 27, 3, 1, FALSE), + PT(40, 62, 4, 0, TRUE), + PT(45, 25, 2, 0, TRUE), + PT(12, 52, 6, 1, FALSE), + PT(57, 49, 3, 0, TRUE), + PT(26, 8, 6, 2, FALSE), + PT( 9, 47, 2, 0, TRUE), + PT(48, 4, 3, 2, FALSE), + PT( 2, 59, 3, 1, TRUE), + PT(51, 33, 6, 1, TRUE), + PT(56, 2, 3, 1, FALSE), + PT(49, 56, 6, 1, FALSE), + PT(31, 29, 2, 3, FALSE), + PT(23, 16, 3, 1, TRUE), + PT(50, 32, 2, 3, TRUE), + PT( 0, 51, 2, 1, FALSE), + PT(33, 15, 4, 3, TRUE), + PT(20, 25, 4, 3, TRUE), + PT(36, 44, 6, 3, TRUE), + PT(37, 5, 5, 3, TRUE), + PT(61, 37, 2, 0, TRUE), + PT(18, 48, 3, 1, FALSE), + PT(22, 3, 3, 1, FALSE), + PT(20, 9, 2, 1, TRUE), + PT( 2, 35, 4, 1, FALSE), + PT( 1, 60, 2, 0, FALSE), + PT(63, 45, 4, 1, TRUE), + PT(49, 63, 4, 1, TRUE), + PT(23, 0, 6, 1, TRUE), + PT(63, 15, 5, 3, TRUE), + PT(38, 7, 2, 2, TRUE), + PT(33, 43, 5, 1, FALSE), + PT(56, 57, 3, 3, FALSE), + PT( 9, 37, 5, 1, TRUE), + PT(59, 48, 4, 2, TRUE), + PT(18, 45, 2, 1, TRUE), + PT(50, 25, 5, 0, FALSE), + PT(36, 28, 5, 2, TRUE), + PT(53, 50, 4, 3, FALSE), + PT(13, 35, 3, 3, FALSE), + PT(29, 7, 4, 0, TRUE), + PT(11, 52, 2, 3, TRUE), + PT(45, 50, 6, 1, FALSE), + PT(58, 60, 6, 2, TRUE), + PT(26, 16, 6, 1, TRUE), + PT(26, 7, 4, 1, FALSE), + PT(59, 27, 5, 1, FALSE), + PT(51, 31, 4, 3, FALSE), + PT(14, 53, 3, 1, FALSE), + PT(59, 10, 3, 2, FALSE), + PT(17, 7, 2, 0, TRUE), + PT(13, 60, 5, 2, TRUE), + PT(30, 55, 5, 0, TRUE), + PT(17, 5, 2, 1, FALSE), + PT(21, 47, 3, 2, FALSE), + PT(36, 49, 2, 3, FALSE), + PT(43, 33, 3, 1, TRUE), + PT(35, 16, 6, 0, TRUE), + PT( 2, 20, 5, 0, TRUE), + PT(38, 32, 2, 3, FALSE), + PT(16, 23, 2, 0, FALSE), + PT(11, 15, 6, 1, TRUE), + PT( 1, 46, 2, 2, FALSE), + PT(33, 14, 6, 3, TRUE), + PT(26, 29, 5, 3, TRUE), + PT(30, 48, 4, 2, FALSE), + PT( 4, 20, 5, 2, TRUE), + PT(17, 0, 6, 0, FALSE), + PT( 8, 42, 3, 2, TRUE), + PT(29, 34, 4, 0, TRUE), + PT(36, 44, 6, 3, TRUE), + PT(36, 17, 2, 1, FALSE), + PT( 4, 46, 5, 0, FALSE), + PT(29, 24, 4, 1, TRUE), + PT(60, 22, 2, 3, FALSE), + PT(16, 23, 6, 0, TRUE), + PT(32, 33, 2, 1, FALSE), + PT(51, 62, 6, 2, FALSE), + PT( 6, 19, 2, 1, TRUE), + PT(23, 56, 5, 1, TRUE), + PT(20, 13, 2, 2, TRUE), + PT(36, 59, 5, 1, TRUE), + PT(52, 59, 3, 3, FALSE), + PT(24, 7, 6, 2, FALSE), + PT(55, 29, 3, 3, TRUE), + PT(11, 41, 4, 0, FALSE), + PT(18, 30, 3, 2, TRUE), + PT(26, 36, 4, 2, FALSE), + PT(61, 40, 4, 2, FALSE), + PT(11, 18, 6, 1, TRUE), + PT(27, 58, 4, 1, FALSE), + PT(20, 19, 5, 1, FALSE), + PT(49, 56, 2, 2, TRUE), + PT(55, 43, 5, 3, FALSE), + PT(25, 30, 5, 2, FALSE), + PT(63, 27, 5, 1, FALSE), + PT(51, 31, 6, 1, TRUE), + PT(63, 21, 5, 0, TRUE), + PT( 1, 30, 3, 0, FALSE), + PT(31, 34, 3, 0, TRUE), + PT(51, 60, 6, 2, FALSE), + PT(30, 18, 4, 1, FALSE), + PT(13, 55, 5, 2, FALSE), + PT(15, 8, 6, 0, TRUE), + PT(46, 9, 6, 3, FALSE), + PT( 1, 5, 3, 3, FALSE), + PT(28, 4, 3, 3, FALSE), + PT(12, 1, 3, 2, FALSE), + PT(41, 40, 5, 3, TRUE), + PT(57, 45, 2, 2, FALSE), + PT( 9, 34, 6, 3, FALSE), + PT( 4, 55, 6, 3, TRUE), + PT(45, 47, 6, 2, TRUE), + PT(36, 35, 3, 1, TRUE), + PT( 8, 32, 6, 1, FALSE), + PT(32, 31, 6, 2, FALSE), + PT( 2, 49, 3, 0, TRUE), + PT(24, 19, 6, 3, FALSE), + PT( 6, 43, 3, 3, FALSE), + PT(14, 27, 2, 0, FALSE), + PT(47, 14, 3, 2, FALSE), + PT(17, 56, 2, 1, TRUE), + PT( 1, 55, 3, 0, TRUE), + PT(20, 17, 4, 3, FALSE), + PT(49, 61, 6, 1, TRUE), + PT(29, 27, 6, 2, FALSE), + PT(37, 49, 5, 3, TRUE), + PT(17, 10, 5, 3, TRUE), + PT(57, 23, 3, 1, TRUE), + PT( 5, 14, 2, 1, TRUE), + PT(41, 37, 4, 1, FALSE), + PT(21, 13, 4, 0, FALSE), + PT(43, 39, 4, 0, TRUE), + PT(62, 36, 4, 3, TRUE), + PT(42, 43, 2, 3, FALSE), + PT(36, 61, 2, 2, TRUE), + PT(21, 48, 6, 0, TRUE), + PT(15, 51, 4, 2, FALSE), + PT( 6, 22, 2, 1, TRUE), + PT( 6, 49, 2, 0, FALSE), + PT(46, 63, 2, 0, FALSE), + PT( 5, 13, 5, 3, TRUE), + PT(60, 31, 3, 0, TRUE), + PT(18, 19, 4, 2, FALSE), + PT(15, 51, 6, 3, FALSE), + PT(21, 59, 6, 1, TRUE), + PT( 3, 15, 5, 1, FALSE), + PT(59, 60, 5, 2, FALSE), + PT(54, 9, 5, 0, TRUE), + PT(17, 59, 4, 3, TRUE), + PT(40, 43, 6, 0, TRUE), + PT(26, 14, 5, 3, TRUE), + PT(57, 44, 6, 0, TRUE), + PT(14, 60, 6, 2, TRUE), + PT(44, 36, 6, 1, TRUE), + PT(61, 17, 5, 1, TRUE), + PT( 7, 60, 6, 3, TRUE), + PT(20, 24, 2, 1, TRUE), + PT(29, 63, 5, 3, FALSE), + PT(48, 18, 4, 2, TRUE), + PT(38, 29, 2, 0, TRUE), + PT( 7, 17, 3, 3, FALSE), + PT(52, 1, 2, 0, TRUE), + PT(11, 57, 4, 0, TRUE), + PT(41, 2, 5, 0, TRUE), + PT(21, 16, 3, 1, FALSE), + PT(48, 31, 6, 2, TRUE), + PT(60, 43, 5, 1, FALSE), + PT(48, 59, 6, 3, FALSE), + PT(32, 26, 4, 1, TRUE), + PT(50, 36, 5, 1, TRUE), + PT(21, 32, 3, 2, FALSE), + PT(37, 61, 6, 3, FALSE), + PT(45, 20, 6, 0, TRUE), + PT(24, 35, 2, 3, TRUE), + PT(24, 5, 2, 1, TRUE), + PT(52, 48, 6, 3, TRUE), + PT(14, 57, 4, 1, TRUE), + PT(29, 31, 2, 3, TRUE), + PT( 1, 21, 5, 3, TRUE), + PT(11, 62, 3, 1, TRUE), + PT(13, 25, 5, 3, FALSE), + PT(49, 56, 3, 2, FALSE), + PT(21, 52, 2, 2, TRUE), + PT(19, 25, 5, 0, TRUE), + PT(25, 20, 4, 3, TRUE), + PT(21, 24, 4, 1, TRUE), + PT(41, 12, 4, 3, TRUE), + PT(45, 14, 2, 3, TRUE), + PT(52, 24, 2, 0, FALSE), + PT(59, 30, 5, 0, TRUE), + PT(52, 44, 4, 1, FALSE), + PT(49, 8, 2, 1, TRUE), + PT(29, 24, 3, 1, FALSE), + PT(28, 11, 5, 1, FALSE), + PT(25, 30, 3, 1, FALSE), + PT(35, 39, 2, 3, TRUE), + PT(59, 14, 6, 3, TRUE), + PT(25, 43, 2, 3, FALSE), + PT(47, 8, 4, 0, TRUE), + PT(55, 2, 4, 0, FALSE), + PT(11, 50, 6, 0, FALSE), + PT(22, 5, 6, 0, FALSE), + PT(19, 5, 3, 1, FALSE), + PT( 7, 57, 3, 0, TRUE), + PT(12, 59, 5, 1, FALSE), + PT(21, 5, 6, 0, FALSE), + PT(48, 5, 3, 0, TRUE), + PT(19, 0, 2, 1, FALSE), + PT(39, 22, 5, 1, FALSE), + PT(15, 40, 4, 3, TRUE), + PT(12, 35, 5, 3, TRUE), + PT(57, 40, 5, 1, FALSE), + PT(36, 37, 3, 3, TRUE), + PT(24, 41, 2, 2, FALSE), + PT(22, 5, 3, 1, FALSE), + PT(53, 47, 4, 3, FALSE), + PT(10, 58, 5, 0, TRUE), + PT(52, 44, 6, 3, FALSE), + PT(46, 58, 2, 2, TRUE), + PT(26, 10, 5, 2, TRUE), + PT(22, 20, 5, 3, FALSE), + PT(53, 40, 5, 1, FALSE), + PT(53, 15, 2, 0, TRUE), + PT(17, 50, 3, 0, TRUE), + PT(32, 26, 5, 0, FALSE), + PT(23, 26, 5, 0, FALSE), + PT(22, 51, 4, 2, TRUE), + PT(19, 44, 5, 0, TRUE), + PT( 9, 22, 6, 1, TRUE), + PT(29, 39, 4, 3, FALSE), + PT(21, 12, 5, 3, TRUE), + PT(34, 28, 3, 0, TRUE), + PT(41, 51, 2, 0, FALSE), + PT(45, 17, 3, 1, TRUE), + PT(22, 25, 5, 3, FALSE), + PT(13, 12, 5, 0, FALSE), + PT(55, 58, 6, 2, FALSE), + PT(42, 29, 6, 3, TRUE), + PT(48, 10, 6, 3, FALSE), + PT(36, 57, 3, 1, TRUE), + PT(57, 10, 6, 1, FALSE), + PT(17, 3, 5, 2, TRUE), + PT(50, 29, 6, 0, FALSE), + PT(56, 30, 4, 3, TRUE), + PT(46, 23, 3, 0, FALSE), + PT(22, 23, 5, 1, FALSE), + PT(54, 59, 6, 0, TRUE), + PT(23, 4, 3, 0, TRUE), + PT(58, 37, 5, 2, TRUE), + PT( 0, 54, 4, 3, TRUE), + PT(37, 18, 6, 1, TRUE), + PT( 6, 10, 2, 2, FALSE), + PT(17, 5, 5, 3, TRUE), + PT( 3, 53, 5, 3, TRUE), + PT(11, 52, 5, 0, TRUE), + PT( 0, 49, 2, 1, TRUE), + PT(39, 15, 3, 2, FALSE), + PT(29, 6, 5, 2, TRUE), + PT(28, 48, 4, 3, TRUE), + PT(47, 42, 4, 3, TRUE), + PT(22, 32, 6, 0, TRUE), + PT(51, 43, 5, 1, TRUE), + PT( 5, 48, 6, 3, FALSE), + PT(41, 35, 6, 2, TRUE), + PT(16, 22, 5, 3, TRUE), + PT(45, 32, 5, 0, TRUE), + PT(55, 19, 4, 2, FALSE), + PT(45, 14, 4, 2, TRUE), + PT( 8, 10, 3, 0, FALSE), + PT(15, 3, 3, 1, TRUE), + PT(49, 12, 6, 3, TRUE), + PT(30, 52, 6, 0, TRUE), + PT(27, 14, 4, 2, TRUE), + PT(26, 7, 6, 2, FALSE), + PT(13, 60, 6, 1, TRUE), + PT( 0, 58, 6, 3, FALSE), + PT( 4, 39, 2, 1, FALSE), + PT(35, 24, 4, 2, FALSE), + PT(13, 11, 3, 0, FALSE), + PT(49, 50, 6, 3, TRUE), + PT( 0, 13, 4, 0, TRUE), + PT(50, 16, 2, 1, FALSE), + PT(38, 13, 3, 0, TRUE), + PT(41, 36, 5, 1, TRUE), + PT(61, 33, 3, 3, TRUE), + PT(30, 27, 5, 0, FALSE), + PT(13, 18, 5, 0, FALSE), + PT(53, 30, 4, 1, TRUE), + PT(10, 46, 4, 1, FALSE), + PT(39, 39, 6, 2, TRUE), + PT( 1, 14, 4, 0, FALSE), + PT(49, 57, 5, 0, TRUE), + PT(59, 36, 6, 3, FALSE), + PT(20, 16, 6, 1, TRUE), + PT(24, 44, 4, 3, FALSE), + PT( 4, 45, 2, 2, TRUE), + PT(26, 17, 6, 3, TRUE), + PT(15, 11, 2, 2, FALSE), + PT(14, 44, 5, 2, FALSE), + PT(33, 23, 5, 2, FALSE), + PT(22, 33, 6, 2, TRUE), + PT(62, 16, 2, 0, FALSE), + PT(10, 5, 3, 3, FALSE), + PT(59, 9, 2, 1, TRUE), + PT(38, 24, 3, 3, FALSE), + PT(35, 12, 3, 1, FALSE), + PT(51, 55, 3, 3, TRUE), + PT( 9, 18, 6, 2, TRUE), + PT(61, 13, 2, 2, TRUE), + PT(54, 6, 4, 2, FALSE), + PT(51, 48, 5, 0, TRUE), + PT(59, 15, 5, 0, FALSE), + PT(52, 42, 5, 2, FALSE), + PT( 2, 18, 6, 2, TRUE), + PT( 9, 34, 6, 0, TRUE), + PT(59, 49, 3, 2, FALSE), + PT(51, 34, 4, 3, TRUE), + PT(61, 52, 2, 2, TRUE), + PT(20, 34, 5, 0, FALSE), + PT(40, 16, 3, 3, FALSE), + PT(33, 49, 2, 0, FALSE), + PT(45, 22, 4, 0, TRUE), + PT(30, 5, 6, 1, TRUE), + PT(15, 48, 6, 0, TRUE), + PT(14, 26, 6, 2, TRUE), + PT(56, 46, 5, 0, FALSE), + PT(38, 55, 3, 3, FALSE), + PT(43, 19, 6, 1, TRUE), + PT(31, 30, 6, 3, TRUE), + PT(10, 40, 4, 2, FALSE), + PT(50, 28, 3, 1, FALSE), + PT(31, 63, 3, 0, TRUE), + PT(57, 57, 5, 0, TRUE), + PT(44, 27, 2, 2, FALSE), + PT(21, 42, 2, 3, TRUE), + PT(50, 15, 4, 0, TRUE), + PT(48, 33, 3, 0, FALSE), + PT(35, 42, 4, 3, TRUE), + PT(61, 7, 2, 0, FALSE), + PT(11, 63, 5, 3, TRUE), + PT(49, 2, 5, 3, FALSE), + PT( 8, 57, 5, 3, TRUE), + PT(63, 32, 3, 0, FALSE), + PT(45, 52, 2, 0, TRUE), + PT(46, 52, 2, 0, FALSE), + PT(38, 18, 4, 1, TRUE), + PT(37, 10, 6, 3, TRUE), + PT(52, 9, 4, 2, TRUE), + PT(10, 62, 2, 3, FALSE), + PT(26, 23, 2, 0, TRUE), + PT(56, 28, 4, 0, FALSE), + PT(17, 33, 4, 3, FALSE), + PT( 5, 15, 3, 0, FALSE), + PT(38, 43, 6, 1, FALSE), + PT(10, 12, 2, 3, FALSE), + PT( 3, 41, 3, 2, TRUE), + PT(41, 59, 4, 1, TRUE), + PT(22, 27, 5, 0, TRUE), + PT( 7, 9, 2, 3, TRUE), + PT(23, 44, 3, 2, FALSE), + PT(53, 51, 6, 0, FALSE), + PT(23, 18, 3, 3, FALSE), + PT(61, 26, 5, 1, TRUE), + PT(33, 29, 2, 0, FALSE), + PT(10, 8, 2, 3, TRUE), + PT(20, 60, 6, 3, FALSE), + PT(40, 54, 6, 3, FALSE), + PT(59, 32, 3, 1, TRUE), + PT(19, 34, 3, 2, TRUE), + PT(19, 58, 2, 2, TRUE), + PT( 2, 35, 5, 2, FALSE), + PT(62, 25, 2, 2, FALSE), + PT(57, 60, 3, 1, FALSE), + PT(16, 8, 3, 3, FALSE), + PT(10, 19, 5, 0, TRUE), + PT(63, 56, 5, 2, FALSE), + PT( 7, 35, 3, 3, TRUE), + PT(25, 42, 4, 2, FALSE), + PT(20, 60, 3, 3, TRUE), + PT(13, 4, 6, 3, TRUE), + PT(26, 47, 5, 0, FALSE), + PT(42, 29, 3, 3, FALSE), + PT(17, 55, 5, 0, TRUE), + PT(40, 39, 2, 1, FALSE), + PT(13, 0, 4, 3, FALSE), + PT(10, 60, 4, 3, FALSE), + PT(31, 28, 6, 1, TRUE), + PT( 4, 58, 5, 2, FALSE), + PT(36, 61, 5, 1, TRUE), + PT(38, 49, 5, 3, TRUE), + PT(19, 28, 4, 0, TRUE), + PT(62, 18, 4, 1, TRUE), + PT(54, 10, 3, 1, FALSE), + PT(45, 30, 3, 0, TRUE), + PT( 5, 31, 3, 1, TRUE), + PT(30, 10, 3, 3, TRUE), + PT(32, 8, 4, 2, FALSE), + PT(44, 12, 6, 1, TRUE), + PT(29, 31, 2, 0, TRUE), + PT(14, 18, 2, 0, FALSE), + PT(39, 18, 3, 0, TRUE), + PT(42, 19, 6, 0, TRUE), + PT(28, 4, 6, 0, FALSE), + PT(26, 56, 3, 3, TRUE), + PT(44, 53, 4, 2, TRUE), + PT( 7, 11, 6, 1, TRUE), + PT(45, 2, 3, 1, FALSE), + PT(42, 53, 6, 2, TRUE), + PT(22, 47, 2, 2, FALSE), + PT(17, 49, 6, 1, TRUE), + PT(44, 49, 3, 3, FALSE), + PT(60, 58, 4, 3, TRUE), + PT(60, 43, 2, 1, FALSE), + PT(39, 29, 2, 1, FALSE), + PT(54, 44, 5, 1, TRUE), + PT(37, 59, 6, 2, TRUE), + PT(18, 61, 4, 3, TRUE), + PT(19, 35, 3, 0, TRUE), + PT(51, 44, 4, 3, FALSE), + PT( 9, 60, 2, 1, FALSE), + PT(21, 26, 4, 1, TRUE), + PT(33, 7, 3, 1, FALSE), + PT(34, 37, 4, 0, FALSE), + PT(25, 27, 5, 2, FALSE), + PT(58, 25, 6, 2, TRUE), + PT( 5, 38, 3, 2, TRUE), + PT(35, 34, 4, 2, TRUE), + PT(14, 30, 2, 0, TRUE), + PT(19, 48, 2, 1, FALSE), + PT(44, 34, 4, 2, TRUE), + PT(10, 29, 3, 0, FALSE), + PT(35, 62, 3, 2, TRUE), + PT( 2, 40, 4, 2, TRUE), + PT(33, 14, 4, 0, FALSE), + PT(33, 34, 6, 3, TRUE), + PT(24, 51, 4, 3, TRUE), + PT(35, 35, 6, 0, TRUE), + PT(36, 26, 3, 1, FALSE), + PT(62, 37, 4, 2, FALSE), + PT(36, 1, 3, 0, FALSE), + PT(52, 16, 4, 1, FALSE), + PT( 7, 0, 6, 3, TRUE), + PT( 6, 32, 4, 0, FALSE), + PT(58, 2, 5, 1, TRUE), + PT( 7, 44, 5, 2, FALSE), + PT( 9, 47, 5, 1, FALSE), + PT( 1, 50, 5, 2, FALSE), + PT( 0, 53, 2, 1, TRUE), + PT(43, 60, 3, 3, TRUE), + PT(54, 55, 3, 3, FALSE), + PT(32, 53, 3, 2, TRUE), + PT(12, 7, 6, 1, TRUE), + PT(22, 8, 2, 1, FALSE), + PT(63, 54, 2, 0, TRUE), + PT(11, 31, 5, 2, TRUE), + PT(33, 32, 6, 1, TRUE), + PT(23, 26, 5, 3, FALSE), + PT(22, 1, 5, 3, TRUE), + PT(47, 28, 6, 2, FALSE), + PT(41, 49, 5, 3, FALSE), + PT(59, 56, 6, 0, TRUE), + PT(13, 22, 2, 1, FALSE), + PT( 7, 41, 4, 2, FALSE), + PT(51, 60, 6, 2, FALSE), + PT(62, 30, 3, 0, FALSE), + PT(48, 2, 6, 2, FALSE), + PT(42, 52, 3, 1, TRUE), + PT(46, 35, 3, 0, FALSE), + PT(52, 0, 3, 3, TRUE), + PT(32, 14, 5, 0, FALSE), + PT(21, 51, 6, 3, TRUE), + PT(39, 53, 4, 1, TRUE), + PT(55, 62, 2, 0, TRUE), + PT(50, 46, 6, 3, FALSE), + PT(58, 2, 5, 1, TRUE), + PT( 0, 54, 3, 2, TRUE), + PT(19, 41, 2, 3, FALSE), + PT( 8, 43, 6, 3, TRUE), + PT( 8, 2, 4, 3, TRUE), + PT(50, 45, 6, 2, FALSE), + PT(48, 54, 5, 0, TRUE), + PT(46, 16, 2, 1, FALSE), + PT(60, 46, 5, 1, FALSE), + PT( 4, 51, 6, 0, FALSE), + PT(63, 1, 4, 1, FALSE), + PT(55, 20, 3, 2, TRUE), + PT(39, 0, 5, 3, TRUE), + PT(12, 57, 4, 3, FALSE), + PT(39, 4, 4, 0, TRUE), + PT(25, 8, 3, 2, TRUE), + PT( 1, 4, 3, 3, FALSE), + PT(39, 27, 5, 1, TRUE), + PT(49, 23, 3, 3, TRUE), + PT( 7, 1, 5, 2, TRUE), + PT(46, 59, 3, 3, TRUE), + PT(52, 36, 6, 0, TRUE), + PT(50, 43, 4, 2, FALSE), + PT(14, 7, 3, 3, FALSE), + PT(15, 51, 2, 0, FALSE), + PT(22, 33, 6, 1, FALSE), + PT(57, 2, 3, 1, FALSE), + PT(51, 61, 4, 1, FALSE), + PT(12, 37, 3, 1, FALSE), + PT(41, 41, 5, 0, FALSE), + PT(58, 50, 4, 3, FALSE), + PT(11, 19, 4, 1, FALSE), + PT(31, 15, 3, 2, FALSE), + PT( 4, 44, 4, 0, FALSE), + PT(57, 26, 3, 1, TRUE), + PT(26, 42, 3, 3, TRUE), + PT(36, 19, 3, 1, FALSE), + PT(49, 59, 6, 1, TRUE), + PT(57, 35, 5, 0, FALSE), + PT(49, 7, 6, 0, TRUE), + PT(31, 16, 4, 0, FALSE), + PT(41, 23, 6, 1, FALSE), + PT(38, 59, 5, 2, TRUE), + PT( 2, 60, 3, 2, FALSE), + PT(14, 0, 4, 0, FALSE), + PT(20, 62, 6, 3, TRUE), + PT( 1, 15, 5, 2, TRUE), + PT( 6, 18, 4, 3, TRUE), + PT(48, 19, 3, 0, TRUE), + PT( 0, 51, 5, 1, FALSE), + PT(12, 7, 4, 3, TRUE), + PT(17, 58, 3, 2, FALSE), + PT(21, 10, 2, 1, TRUE), + PT(31, 13, 5, 1, FALSE), + PT(55, 7, 5, 1, FALSE), + PT(52, 53, 6, 2, FALSE), + PT(40, 22, 4, 3, TRUE), + PT( 6, 2, 6, 3, FALSE), + PT( 9, 35, 6, 0, FALSE), + PT(20, 2, 5, 0, FALSE), + PT(57, 50, 6, 2, FALSE), + PT(36, 53, 2, 1, FALSE), + PT(18, 34, 4, 3, FALSE), + PT( 9, 7, 6, 1, TRUE), + PT(15, 62, 3, 3, FALSE), + PT( 0, 60, 6, 1, TRUE), + PT(16, 55, 2, 2, FALSE), + PT(58, 3, 4, 2, TRUE), + PT(45, 30, 4, 2, FALSE), + PT(54, 54, 4, 3, FALSE), + PT(31, 60, 3, 1, FALSE), + PT(55, 51, 4, 2, TRUE), + PT(35, 19, 3, 3, TRUE), + PT(51, 13, 2, 1, TRUE), + PT(37, 48, 3, 3, FALSE), + PT(23, 3, 3, 0, FALSE), + PT(24, 24, 2, 2, FALSE), + PT(48, 7, 4, 1, FALSE), + PT(62, 51, 4, 0, TRUE), + PT(20, 55, 2, 3, FALSE), + PT(22, 0, 2, 1, FALSE), + PT(44, 18, 5, 3, TRUE), + PT(37, 63, 3, 3, FALSE), + PT(36, 25, 2, 3, FALSE), + PT(22, 15, 6, 2, TRUE), + PT(45, 16, 2, 0, TRUE), + PT(36, 42, 5, 0, FALSE), + PT(25, 37, 5, 3, FALSE), + PT(12, 22, 3, 3, TRUE), + PT(56, 33, 6, 3, FALSE), + PT(61, 26, 5, 3, TRUE), + PT(59, 50, 2, 1, FALSE), + PT(54, 19, 5, 0, TRUE), + PT(14, 48, 6, 0, TRUE), + PT(25, 7, 5, 3, TRUE), + PT(37, 35, 5, 0, FALSE), + PT(32, 8, 5, 0, TRUE), + PT(42, 0, 6, 0, FALSE), + PT(48, 56, 4, 1, TRUE), + PT(30, 15, 3, 3, TRUE), + PT(59, 27, 6, 0, FALSE), + PT(58, 55, 5, 3, TRUE), + PT(57, 55, 6, 2, TRUE), + PT(57, 45, 5, 3, TRUE), + PT(31, 46, 3, 3, FALSE), + PT(26, 43, 3, 3, FALSE), + PT(20, 23, 4, 0, FALSE), + PT(47, 3, 2, 0, TRUE), + PT(29, 0, 6, 0, FALSE), + PT(23, 43, 3, 2, TRUE), + PT(53, 40, 4, 2, TRUE), + PT(59, 15, 2, 0, TRUE), + PT( 9, 4, 5, 3, FALSE), + PT(35, 17, 3, 3, FALSE), + PT(19, 55, 3, 3, FALSE), + PT(55, 55, 3, 3, FALSE), + PT( 7, 1, 6, 1, FALSE), + PT(20, 6, 6, 1, FALSE), + PT(17, 12, 5, 3, FALSE), + PT(54, 46, 4, 2, FALSE), + PT(21, 42, 3, 2, FALSE), + PT(34, 21, 6, 2, FALSE), + PT(44, 30, 6, 2, TRUE), + PT(34, 39, 6, 1, TRUE), + PT(25, 63, 5, 2, TRUE), + PT(33, 51, 2, 2, TRUE), + PT(38, 26, 2, 0, TRUE), + PT(22, 62, 2, 1, FALSE), + PT(43, 36, 2, 2, TRUE), + PT(60, 15, 5, 2, TRUE), + PT(49, 21, 6, 3, FALSE), + PT(63, 36, 3, 2, TRUE), + PT(37, 1, 6, 3, TRUE), + PT(51, 22, 3, 1, FALSE), + PT(31, 14, 2, 0, FALSE), + PT(47, 11, 2, 1, FALSE), + PT(42, 26, 4, 2, TRUE), + PT(23, 10, 6, 2, TRUE), + PT( 9, 40, 6, 2, TRUE), + PT( 2, 19, 6, 3, FALSE), + PT(52, 47, 2, 3, TRUE), + PT( 3, 4, 6, 0, TRUE), + PT(62, 38, 2, 0, TRUE), + PT(53, 51, 6, 0, TRUE), + PT(34, 23, 4, 1, TRUE), + PT(29, 5, 5, 1, TRUE), + PT(46, 39, 4, 0, FALSE), + PT( 3, 43, 3, 2, TRUE), + PT( 1, 25, 3, 3, FALSE), + PT(14, 5, 3, 0, FALSE), + PT(22, 37, 2, 3, TRUE), + PT( 2, 40, 3, 0, FALSE), + PT(25, 11, 4, 2, FALSE), + PT(62, 53, 2, 3, FALSE), + PT(46, 41, 4, 2, TRUE), + PT(62, 56, 3, 3, FALSE), + PT(58, 47, 2, 1, FALSE), + PT(20, 23, 5, 2, TRUE), + PT(17, 18, 6, 0, FALSE), + PT(21, 49, 3, 0, FALSE), + PT( 8, 11, 5, 0, TRUE), + PT(45, 0, 6, 1, TRUE), + PT(44, 6, 3, 1, FALSE), + PT(20, 28, 5, 3, FALSE), + PT( 4, 8, 2, 1, FALSE), + PT(27, 43, 5, 2, TRUE), + PT(42, 55, 6, 1, TRUE), + PT(16, 39, 5, 2, FALSE), + PT(29, 14, 6, 2, FALSE), + PT(32, 2, 2, 1, FALSE), + PT(30, 26, 5, 3, FALSE), + PT( 7, 11, 2, 0, FALSE), + PT(54, 30, 6, 1, TRUE), + PT(43, 40, 3, 1, TRUE), + PT(49, 37, 3, 3, TRUE), + PT(56, 58, 5, 3, TRUE), + PT(57, 48, 5, 3, TRUE), + PT(18, 9, 2, 2, FALSE), + PT(14, 8, 3, 0, TRUE), + PT( 0, 13, 5, 2, FALSE), + PT(27, 14, 6, 2, FALSE), + PT(17, 37, 2, 2, TRUE), + PT(12, 45, 4, 3, FALSE), + PT(54, 44, 2, 3, FALSE), + PT(49, 49, 5, 2, FALSE), + PT( 3, 26, 2, 3, FALSE), + PT(28, 50, 2, 2, FALSE), + PT(10, 62, 6, 3, FALSE), + PT(51, 27, 4, 3, TRUE), + PT(31, 50, 3, 0, FALSE), + PT(51, 38, 6, 1, TRUE), + PT(26, 19, 3, 1, FALSE), + PT(15, 52, 3, 2, FALSE), + PT(53, 44, 5, 3, TRUE), + PT(56, 3, 3, 0, FALSE), + PT(21, 15, 4, 3, TRUE), + PT(49, 41, 4, 0, FALSE), + PT(40, 14, 5, 0, FALSE), + PT(49, 44, 5, 3, FALSE), + PT(21, 25, 3, 1, TRUE), + PT(16, 3, 5, 3, TRUE), + PT(46, 42, 6, 1, FALSE), + PT(42, 39, 3, 1, TRUE), + PT(54, 4, 3, 3, FALSE), + PT(59, 4, 4, 0, TRUE), + PT( 7, 47, 3, 0, TRUE), + PT(39, 29, 3, 2, TRUE), + PT(60, 61, 5, 3, FALSE), + PT(37, 8, 6, 1, FALSE), + PT(59, 52, 5, 1, FALSE), + PT(12, 16, 2, 1, TRUE), + PT(37, 53, 3, 1, FALSE), + PT(47, 25, 5, 0, FALSE), + PT(23, 0, 5, 1, TRUE), + PT(10, 28, 2, 3, TRUE), + PT(10, 17, 3, 1, TRUE), + PT(53, 19, 6, 3, TRUE), + PT(41, 28, 5, 0, FALSE), + PT(12, 49, 6, 2, TRUE), + PT(60, 16, 3, 1, FALSE), + PT(27, 58, 5, 2, TRUE), + PT(58, 28, 3, 0, FALSE), + PT(34, 16, 5, 2, TRUE), + PT(28, 60, 2, 1, FALSE), + PT(23, 24, 5, 1, FALSE), + PT(11, 43, 5, 3, TRUE), + PT(45, 4, 5, 3, FALSE), + PT(60, 19, 4, 1, TRUE), + PT( 1, 28, 5, 3, FALSE), + PT(20, 22, 4, 1, FALSE), + PT(12, 36, 2, 1, TRUE), + PT(53, 55, 6, 2, FALSE), + PT(27, 48, 3, 3, FALSE), + PT(58, 28, 4, 0, FALSE), + PT( 6, 6, 6, 3, FALSE), + PT( 9, 21, 3, 1, FALSE), + PT(27, 26, 4, 3, TRUE), + PT(15, 51, 6, 2, TRUE), + PT(55, 6, 4, 1, TRUE), + PT(58, 18, 3, 2, TRUE), + PT( 0, 22, 5, 0, TRUE), + PT(14, 29, 6, 2, TRUE), + PT(63, 56, 2, 3, FALSE), + PT(42, 60, 6, 2, FALSE), + PT(19, 50, 2, 0, FALSE), + PT(23, 44, 6, 3, TRUE), + PT(41, 42, 3, 3, FALSE), + PT(53, 47, 5, 2, TRUE), + PT(60, 42, 2, 0, TRUE), + PT(40, 19, 4, 0, TRUE), + PT(25, 30, 6, 2, FALSE), + PT(12, 6, 5, 2, TRUE), + PT( 9, 4, 3, 2, FALSE), + PT(29, 47, 4, 3, FALSE), + PT(57, 7, 2, 3, FALSE), + PT(20, 4, 5, 2, TRUE), + PT(58, 47, 5, 3, FALSE), + PT(41, 21, 6, 2, TRUE), + PT(36, 2, 6, 3, FALSE), + PT(63, 2, 3, 1, FALSE), + PT(15, 24, 4, 2, FALSE), + PT(22, 29, 3, 0, TRUE), + PT(20, 22, 2, 0, FALSE), + PT(41, 27, 2, 1, TRUE), + PT(21, 14, 3, 0, TRUE), + PT(58, 46, 5, 1, TRUE), + PT( 8, 48, 2, 2, TRUE), + PT(53, 22, 6, 0, FALSE), + PT(46, 24, 6, 2, TRUE), + PT(59, 11, 3, 2, FALSE), + PT(58, 24, 2, 1, TRUE), + PT(41, 19, 3, 3, FALSE), + PT(32, 19, 4, 3, TRUE), + PT( 4, 29, 6, 2, FALSE), + PT( 0, 56, 3, 0, TRUE), + PT( 8, 57, 6, 1, FALSE), + PT(32, 16, 4, 3, FALSE), + PT( 8, 2, 5, 0, FALSE), + PT(63, 15, 2, 3, FALSE), + PT(48, 31, 3, 0, TRUE), + PT(32, 45, 2, 0, FALSE), + PT(56, 23, 3, 2, FALSE), + PT(24, 49, 4, 3, TRUE), + PT(51, 56, 6, 0, FALSE), + PT(22, 51, 4, 1, TRUE), + PT( 0, 1, 6, 3, FALSE), + PT(13, 2, 4, 1, TRUE), + PT(57, 4, 3, 3, TRUE), + PT(14, 48, 4, 2, FALSE), + PT( 6, 1, 5, 2, FALSE), + PT(52, 51, 6, 2, TRUE), + PT(22, 52, 5, 3, FALSE), + PT(50, 22, 4, 2, FALSE), + PT(38, 57, 6, 2, FALSE), + PT(31, 60, 3, 2, TRUE), + PT(40, 29, 6, 3, TRUE), + PT(23, 21, 5, 1, TRUE), + PT(39, 57, 6, 0, FALSE), + PT(11, 27, 3, 0, FALSE), + PT(53, 32, 5, 2, TRUE), + PT(11, 53, 3, 2, FALSE), + PT( 3, 14, 4, 0, TRUE), + PT( 6, 12, 4, 0, FALSE), + PT( 2, 24, 6, 2, FALSE), + PT(30, 54, 5, 2, TRUE), + PT(22, 12, 3, 0, TRUE), + PT(37, 9, 5, 2, FALSE), + PT(55, 5, 5, 3, FALSE), + PT(46, 43, 5, 2, FALSE), + PT(36, 26, 2, 2, FALSE), + PT(39, 4, 2, 0, FALSE), + PT(50, 56, 6, 1, TRUE), + PT(55, 21, 6, 2, TRUE), + PT(17, 63, 3, 2, TRUE), + PT(35, 35, 3, 3, TRUE), + PT(41, 63, 3, 2, TRUE), + PT(26, 60, 5, 1, TRUE), + PT(27, 44, 5, 2, FALSE), + PT(56, 59, 6, 3, FALSE), + PT( 4, 19, 6, 1, TRUE), + PT(44, 20, 2, 1, FALSE), + PT(26, 9, 3, 1, TRUE), + PT(54, 17, 4, 2, FALSE), + PT(58, 63, 2, 0, TRUE), + PT( 1, 14, 5, 1, TRUE), + PT(59, 3, 5, 1, FALSE), + PT( 8, 13, 5, 1, TRUE), + PT(43, 19, 4, 3, TRUE), + PT(58, 60, 3, 2, FALSE), + PT(58, 21, 5, 1, FALSE), + PT(36, 0, 2, 3, TRUE), + PT(62, 10, 2, 2, TRUE), + PT(12, 41, 5, 2, TRUE), + PT(31, 21, 6, 0, FALSE), + PT(53, 24, 3, 0, TRUE), + PT(61, 55, 6, 3, TRUE), + PT(18, 56, 3, 1, TRUE), + PT(59, 2, 4, 0, FALSE), + PT( 8, 33, 3, 0, TRUE), + PT(46, 54, 3, 2, TRUE), + PT(21, 61, 4, 2, FALSE), + PT(34, 12, 4, 3, TRUE), + PT(54, 63, 6, 1, TRUE), + PT(51, 18, 2, 0, TRUE), + PT(26, 25, 3, 3, TRUE), + PT(43, 36, 2, 1, FALSE), + PT(17, 42, 3, 0, FALSE), + PT(37, 50, 5, 1, FALSE), + PT(44, 26, 2, 1, FALSE), + PT(38, 6, 2, 0, FALSE), + PT(17, 41, 6, 1, TRUE), + PT(44, 9, 2, 2, FALSE), + PT(43, 18, 5, 1, TRUE), + PT(29, 3, 4, 2, FALSE), + PT( 0, 18, 2, 2, TRUE), + PT(34, 61, 4, 3, FALSE), + PT(21, 55, 3, 1, FALSE), + PT(15, 18, 6, 3, TRUE), + PT(36, 1, 3, 0, FALSE), + PT(42, 23, 2, 1, TRUE), + PT(20, 59, 5, 0, TRUE), + PT(42, 25, 6, 1, FALSE), + PT(45, 23, 2, 3, TRUE), + PT(11, 44, 6, 1, TRUE), + PT( 7, 45, 6, 2, FALSE), + PT( 7, 56, 3, 2, TRUE), + PT(31, 54, 4, 1, FALSE), + PT(17, 10, 2, 3, TRUE), + PT(20, 17, 2, 1, TRUE), + PT(42, 23, 4, 2, TRUE), + PT( 1, 58, 3, 2, FALSE), + PT(38, 39, 6, 0, FALSE), + PT(45, 59, 6, 2, TRUE), + PT(58, 48, 6, 2, FALSE), + PT( 6, 58, 3, 2, FALSE), + PT(45, 5, 2, 1, TRUE), + PT(33, 50, 2, 1, FALSE), + PT(62, 30, 5, 2, FALSE), + PT(58, 63, 5, 2, TRUE), + PT(32, 42, 6, 2, FALSE), + PT(38, 3, 3, 1, FALSE), + PT(25, 39, 5, 3, FALSE), + PT(49, 4, 4, 3, FALSE), + PT(42, 63, 6, 0, FALSE), + PT(37, 35, 5, 1, FALSE), + PT( 8, 8, 6, 2, TRUE), + PT(44, 48, 3, 3, FALSE), + PT( 8, 5, 3, 0, FALSE), + PT( 6, 9, 5, 2, TRUE), + PT(25, 0, 4, 3, TRUE), + PT(13, 16, 3, 0, TRUE), + PT(28, 0, 2, 1, TRUE), + PT(61, 11, 4, 2, FALSE), + PT(46, 31, 2, 3, FALSE), + PT(61, 24, 6, 2, FALSE), + PT(18, 30, 2, 2, TRUE), + PT(21, 57, 4, 2, TRUE), + PT(51, 15, 2, 3, TRUE), + PT(26, 28, 3, 1, TRUE), + PT(55, 41, 3, 1, TRUE), + PT(59, 56, 2, 1, FALSE), + PT(29, 34, 6, 2, FALSE), + PT(38, 10, 6, 0, TRUE), + PT(22, 45, 2, 1, TRUE), + PT(13, 32, 4, 3, TRUE), + PT(36, 29, 2, 3, FALSE), + PT(46, 43, 3, 0, FALSE), + PT(22, 42, 3, 1, TRUE), + PT(36, 23, 6, 3, FALSE), + PT( 2, 5, 5, 1, TRUE), + PT(55, 26, 2, 3, TRUE), + PT(17, 61, 5, 2, FALSE), + PT(30, 47, 4, 1, FALSE), + PT(44, 41, 3, 1, FALSE), + PT(47, 4, 4, 2, TRUE), + PT(54, 12, 6, 2, TRUE), + PT(48, 62, 2, 1, FALSE), + PT(17, 48, 6, 3, TRUE), + PT(18, 33, 5, 3, FALSE), + PT(33, 48, 2, 3, TRUE), + PT(44, 61, 4, 2, FALSE), + PT(17, 35, 2, 2, FALSE), + PT(26, 50, 2, 3, TRUE), + PT(57, 39, 3, 0, FALSE), + PT(15, 36, 3, 0, TRUE), + PT( 0, 61, 6, 3, TRUE), + PT(44, 60, 3, 2, FALSE), + PT(11, 57, 4, 1, TRUE), + PT(14, 4, 3, 3, TRUE), + PT(28, 49, 2, 2, FALSE), + PT( 0, 4, 2, 2, TRUE), + PT(38, 42, 5, 1, FALSE), + PT(32, 37, 5, 1, FALSE), + PT(11, 60, 6, 1, TRUE), + PT(17, 11, 5, 3, FALSE), + PT(55, 34, 5, 3, FALSE), + PT(14, 34, 4, 3, FALSE), + PT(24, 45, 4, 3, TRUE), + PT( 6, 12, 3, 2, FALSE), + PT(38, 24, 5, 3, TRUE), + PT(58, 1, 5, 1, FALSE), + PT(47, 49, 6, 2, FALSE), + PT(31, 52, 3, 1, FALSE), + PT(49, 5, 2, 0, FALSE), + PT(46, 23, 6, 2, FALSE), + PT(24, 34, 4, 1, TRUE), + PT(35, 33, 6, 1, FALSE), + PT( 7, 8, 4, 1, FALSE), + PT(38, 28, 4, 1, FALSE), + PT(49, 18, 5, 3, TRUE), + PT( 8, 31, 2, 0, FALSE), + PT(39, 21, 5, 1, FALSE), + PT(31, 11, 4, 3, FALSE), + PT(47, 20, 6, 2, TRUE), + PT(36, 31, 4, 3, FALSE), + PT(59, 35, 6, 1, TRUE), + PT(32, 62, 5, 2, TRUE), + PT(23, 12, 2, 2, TRUE), + PT(19, 57, 3, 1, FALSE), + PT(48, 20, 4, 2, TRUE), + PT( 9, 7, 2, 3, TRUE), + PT(56, 56, 3, 3, TRUE), + PT(41, 36, 4, 3, TRUE), + PT(23, 39, 5, 0, FALSE), + PT(27, 18, 5, 1, FALSE), + PT(43, 61, 5, 2, TRUE), + PT(25, 52, 3, 2, FALSE), + PT( 1, 29, 2, 0, FALSE), + PT( 8, 57, 2, 0, TRUE), + PT(14, 54, 3, 1, TRUE), + PT(38, 19, 2, 0, FALSE), + PT(22, 40, 3, 3, FALSE), + PT(60, 40, 2, 3, TRUE), + PT(62, 57, 6, 2, FALSE), + PT(10, 3, 5, 3, FALSE), + PT(55, 26, 2, 1, TRUE), + PT(43, 51, 4, 3, FALSE), + PT(19, 44, 4, 0, TRUE), + PT(37, 20, 2, 0, FALSE), + PT(22, 11, 6, 2, TRUE), + PT(29, 53, 6, 1, TRUE), + PT(33, 8, 6, 1, TRUE), + PT(40, 33, 3, 1, FALSE), + PT(18, 12, 3, 1, TRUE), + PT(54, 42, 3, 0, TRUE), + PT(44, 43, 4, 1, TRUE), + PT( 1, 15, 4, 3, FALSE), + PT(23, 12, 3, 0, FALSE), + PT( 9, 15, 2, 0, TRUE), + PT(43, 36, 3, 2, FALSE), + PT( 9, 9, 2, 2, TRUE), + PT(54, 8, 2, 1, TRUE), + PT(32, 57, 4, 0, TRUE), + PT( 0, 58, 3, 3, TRUE), + PT(43, 54, 6, 0, TRUE), + PT( 2, 55, 2, 1, TRUE), + PT( 4, 52, 6, 2, TRUE), + PT(55, 61, 3, 1, FALSE), + PT(23, 61, 2, 1, TRUE), + PT(43, 54, 5, 3, TRUE), + PT(19, 30, 2, 1, TRUE), + PT(62, 17, 6, 1, TRUE), + PT(39, 58, 5, 2, TRUE), + PT(30, 49, 3, 1, FALSE), + PT( 3, 3, 5, 2, TRUE), + PT(37, 55, 3, 3, TRUE), + PT(17, 1, 4, 1, FALSE), + PT(28, 18, 2, 3, TRUE), + PT(48, 58, 6, 0, FALSE), + PT(23, 29, 5, 0, TRUE), + PT(14, 19, 4, 3, TRUE), + PT(26, 46, 4, 2, FALSE), + PT(45, 0, 3, 2, FALSE), + PT(23, 40, 3, 2, TRUE), + PT( 9, 31, 5, 3, FALSE), + PT(26, 45, 4, 3, FALSE), + PT(10, 19, 6, 1, FALSE), + PT(62, 0, 4, 3, TRUE), + PT(11, 59, 6, 0, FALSE), + PT( 8, 58, 5, 2, TRUE), + PT(34, 18, 3, 3, FALSE), + PT(52, 29, 5, 1, TRUE), + PT(38, 34, 6, 2, TRUE), + PT(23, 44, 2, 3, TRUE), + PT(41, 19, 5, 2, TRUE), + PT(45, 16, 2, 0, FALSE), + PT(32, 49, 4, 1, TRUE), + PT(30, 51, 3, 0, FALSE), + PT(51, 6, 5, 2, TRUE), + PT(38, 20, 4, 3, TRUE), + PT(34, 29, 5, 1, FALSE), + PT(45, 6, 3, 0, FALSE), + PT( 7, 9, 5, 3, FALSE), + PT(33, 21, 5, 3, FALSE), + PT(33, 56, 4, 1, TRUE), + PT(53, 11, 6, 2, FALSE), + PT(36, 11, 4, 1, FALSE), + PT(30, 1, 2, 3, TRUE), + PT(11, 36, 2, 0, TRUE), + PT(23, 7, 4, 0, FALSE), + PT(20, 37, 6, 1, FALSE), + PT(26, 14, 5, 3, TRUE), + PT(53, 23, 3, 3, TRUE), + PT(12, 8, 4, 0, TRUE), + PT(48, 53, 3, 3, TRUE), + PT(12, 11, 4, 0, FALSE), + PT( 4, 16, 2, 0, TRUE), + PT(53, 17, 3, 3, FALSE), + PT(51, 61, 2, 3, FALSE), + PT(30, 43, 3, 2, TRUE), + PT(26, 25, 2, 0, FALSE), + PT( 4, 6, 4, 1, FALSE), + PT( 3, 61, 4, 2, FALSE), + PT(42, 14, 6, 2, TRUE), + PT( 3, 62, 2, 3, TRUE), + PT(11, 24, 6, 3, FALSE), + PT(61, 13, 4, 3, FALSE), + PT(53, 18, 4, 0, FALSE), + PT(31, 13, 2, 3, FALSE), + PT(35, 50, 3, 1, FALSE), + PT( 0, 61, 4, 3, FALSE), + PT(48, 25, 6, 3, FALSE), + PT(18, 14, 4, 1, TRUE), + PT( 1, 35, 5, 0, FALSE), + PT(59, 49, 2, 0, TRUE), + PT(45, 28, 6, 3, FALSE), + PT(42, 5, 2, 3, FALSE), + PT(20, 14, 6, 0, FALSE), + PT(58, 55, 3, 0, TRUE), + PT(31, 48, 4, 2, TRUE), + PT(16, 38, 5, 3, TRUE), + PT(34, 17, 3, 3, TRUE), + PT(46, 43, 3, 3, FALSE), + PT(22, 22, 4, 0, TRUE), + PT(50, 24, 6, 2, TRUE), + PT(35, 50, 3, 1, FALSE), + PT(61, 13, 3, 0, TRUE), + PT(57, 9, 4, 1, TRUE), + PT(48, 46, 4, 2, FALSE), + PT(30, 15, 4, 2, FALSE), + PT( 9, 33, 6, 0, TRUE), + PT( 5, 3, 2, 0, TRUE), + PT( 5, 34, 5, 1, FALSE), + PT( 3, 7, 6, 3, TRUE), + PT( 4, 8, 2, 1, TRUE), + PT( 5, 16, 6, 2, FALSE), + PT(55, 20, 5, 0, TRUE), + PT(10, 36, 6, 1, FALSE), + PT(52, 30, 3, 1, TRUE), + PT(18, 23, 5, 3, FALSE), + PT( 1, 2, 2, 1, TRUE), + PT(10, 12, 2, 0, TRUE), + PT( 2, 20, 2, 1, TRUE), + PT(13, 37, 4, 1, TRUE), + PT( 0, 7, 3, 1, FALSE), + PT(28, 40, 6, 2, TRUE), + PT( 8, 14, 5, 2, FALSE), + PT(27, 60, 2, 2, TRUE), + PT(28, 25, 3, 2, TRUE), + PT(50, 19, 3, 1, FALSE), + PT(28, 0, 6, 3, TRUE), + PT(34, 27, 6, 2, TRUE), + PT(57, 62, 2, 2, FALSE), + PT(50, 6, 6, 0, TRUE), + PT(23, 5, 5, 1, TRUE), + PT( 1, 15, 4, 0, FALSE), + PT(30, 15, 6, 2, FALSE), + PT(24, 3, 3, 3, TRUE), + PT(43, 0, 2, 2, FALSE), + PT(21, 58, 6, 0, FALSE), + PT(37, 48, 4, 0, TRUE), + PT(11, 0, 6, 3, TRUE), + PT(36, 55, 3, 2, TRUE), + PT(41, 33, 2, 3, FALSE), + PT(36, 15, 5, 2, FALSE), + PT(62, 21, 6, 3, FALSE), + PT(60, 45, 4, 1, TRUE), + PT(61, 60, 2, 3, TRUE), + PT(26, 28, 2, 1, TRUE), + PT(10, 41, 4, 1, FALSE), + PT(37, 63, 4, 3, FALSE), + PT(59, 57, 5, 3, TRUE), + PT(29, 8, 2, 3, FALSE), + PT(11, 25, 2, 2, FALSE), + PT(18, 1, 5, 2, FALSE), + PT(53, 17, 5, 1, FALSE), + PT( 2, 0, 2, 1, TRUE), + PT(57, 42, 6, 2, TRUE), + PT( 7, 26, 2, 0, TRUE), + PT(36, 14, 3, 3, FALSE), + PT(14, 44, 2, 2, TRUE), + PT( 8, 49, 3, 1, TRUE), + PT(33, 29, 4, 3, FALSE), + PT(29, 28, 5, 1, FALSE), + PT(29, 36, 2, 1, TRUE), + PT( 1, 0, 3, 0, FALSE), + PT(40, 42, 6, 3, TRUE), + PT(21, 15, 2, 1, TRUE), + PT(16, 50, 6, 3, FALSE), + PT(34, 19, 6, 0, TRUE), + PT(19, 5, 3, 3, FALSE), + PT(23, 53, 6, 2, TRUE), + PT(59, 14, 4, 2, FALSE), + PT(53, 58, 3, 2, TRUE), + PT(27, 54, 3, 1, TRUE), + PT( 3, 29, 4, 2, FALSE), + PT(15, 22, 6, 0, FALSE), + PT(45, 9, 4, 2, TRUE), + PT( 5, 33, 2, 1, TRUE), + PT(10, 39, 6, 3, FALSE), + PT( 4, 13, 3, 2, FALSE), + PT( 6, 62, 4, 0, TRUE), + PT(42, 39, 6, 1, TRUE), + PT(40, 14, 2, 2, TRUE), + PT(11, 23, 3, 2, TRUE), + PT(29, 50, 5, 2, TRUE), + PT( 8, 61, 5, 0, TRUE), + PT(33, 50, 2, 3, TRUE), + PT(51, 49, 4, 1, FALSE), + PT(14, 3, 4, 0, TRUE), + PT(13, 11, 2, 3, FALSE), + PT(62, 42, 5, 3, FALSE), + PT(25, 54, 5, 1, FALSE), + PT(13, 0, 2, 2, FALSE), + PT(34, 7, 6, 3, FALSE), + PT(10, 9, 2, 2, TRUE), + PT(20, 16, 4, 1, FALSE), + PT( 7, 22, 5, 2, FALSE), + PT(54, 19, 2, 2, TRUE), + PT( 9, 47, 3, 1, TRUE), + PT(32, 59, 5, 3, FALSE), + PT(58, 58, 2, 3, FALSE), + PT(13, 21, 5, 1, FALSE), + PT(57, 19, 5, 1, TRUE), + PT(11, 1, 5, 1, FALSE), + PT(19, 23, 3, 3, FALSE), + PT( 8, 23, 3, 3, FALSE), + PT(12, 15, 6, 2, FALSE), + PT(31, 49, 2, 1, FALSE), + PT( 7, 58, 3, 2, TRUE), + PT(53, 30, 2, 1, FALSE), + PT(36, 44, 2, 2, TRUE), + PT(14, 33, 3, 0, TRUE), + PT(52, 59, 6, 1, TRUE), + PT(25, 15, 5, 0, FALSE), + PT(16, 47, 5, 3, FALSE), + PT(35, 39, 6, 0, TRUE), + PT(57, 46, 3, 0, FALSE), + PT(60, 63, 4, 2, FALSE), + PT( 7, 35, 6, 0, FALSE), + PT(40, 19, 6, 2, TRUE), + PT(19, 10, 2, 0, FALSE), + PT(53, 25, 6, 1, TRUE), + PT(35, 40, 5, 0, TRUE), + PT(19, 47, 3, 1, FALSE), + PT(58, 25, 2, 2, FALSE), + PT(55, 54, 4, 3, FALSE), + PT(32, 59, 2, 2, TRUE), + PT(55, 57, 2, 0, FALSE), + PT(60, 33, 6, 2, FALSE), + PT(28, 56, 6, 0, FALSE), + PT(21, 7, 4, 3, FALSE), + PT(39, 33, 3, 0, TRUE), + PT(24, 17, 4, 1, TRUE), + PT(48, 40, 6, 3, TRUE), + PT(50, 45, 3, 3, TRUE), + PT(44, 63, 6, 0, FALSE), + PT(29, 47, 4, 3, FALSE), + PT( 1, 17, 3, 2, FALSE), + PT(59, 15, 2, 1, FALSE), + PT(42, 23, 4, 3, TRUE), + PT( 5, 0, 3, 1, TRUE), + PT(37, 28, 6, 1, FALSE), + PT( 4, 34, 5, 2, TRUE), + PT(16, 15, 4, 2, TRUE), + PT(13, 57, 6, 0, FALSE), + PT(11, 46, 4, 3, TRUE), + PT(45, 52, 2, 2, TRUE), + PT(62, 48, 6, 3, FALSE), + PT(22, 38, 5, 1, FALSE), + PT( 5, 63, 5, 1, TRUE), + PT(32, 59, 5, 3, FALSE), + PT(59, 28, 5, 3, TRUE), + PT( 1, 24, 2, 3, FALSE), + PT(22, 61, 2, 0, FALSE), + PT(10, 31, 3, 0, FALSE), + PT(23, 15, 4, 1, FALSE), + PT( 6, 19, 2, 0, TRUE), + PT(56, 33, 2, 3, TRUE), + PT(23, 10, 6, 3, TRUE), + PT(28, 25, 6, 0, FALSE), + PT(22, 56, 6, 0, TRUE), + PT(48, 16, 6, 3, FALSE), + PT(49, 47, 4, 3, FALSE), + PT(60, 27, 4, 1, TRUE), + PT(51, 47, 3, 0, TRUE), + PT(22, 53, 4, 2, TRUE), + PT(58, 24, 3, 3, TRUE), + PT(55, 1, 3, 3, FALSE), + PT(13, 24, 2, 1, FALSE), + PT(31, 28, 3, 1, TRUE), + PT( 7, 52, 5, 2, TRUE), + PT(11, 63, 6, 1, TRUE), + PT(30, 52, 3, 2, TRUE), + PT(44, 19, 5, 2, FALSE), + PT(32, 32, 2, 1, TRUE), + PT(32, 15, 6, 0, TRUE), + PT( 8, 15, 4, 2, FALSE), + PT(24, 61, 3, 2, FALSE), + PT(54, 52, 4, 3, TRUE), + PT(51, 42, 4, 2, TRUE), + PT(45, 48, 4, 3, FALSE), + PT(61, 55, 4, 3, FALSE), + PT(37, 17, 2, 0, TRUE), + PT( 3, 5, 3, 0, FALSE), + PT(16, 4, 5, 0, TRUE), + PT( 7, 46, 6, 3, FALSE), + PT(42, 41, 2, 2, TRUE), + PT(58, 14, 6, 1, TRUE), + PT(42, 6, 5, 0, TRUE), + PT(61, 1, 5, 0, TRUE), + PT(39, 14, 2, 3, FALSE), + PT(29, 40, 3, 1, TRUE), + PT(16, 51, 5, 1, TRUE), + PT(12, 20, 3, 2, TRUE), + PT(21, 63, 4, 2, TRUE), + PT(55, 35, 3, 3, FALSE), + PT( 4, 44, 3, 2, FALSE), + PT(21, 52, 5, 1, FALSE), + PT( 9, 47, 2, 2, TRUE), + PT( 2, 63, 2, 2, FALSE), + PT(25, 44, 6, 1, TRUE), + PT(57, 50, 4, 0, FALSE), + PT(42, 24, 6, 1, FALSE), + PT(23, 35, 4, 0, TRUE), + PT(11, 45, 4, 2, TRUE), + PT(36, 58, 5, 2, TRUE), + PT(49, 63, 6, 2, FALSE), + PT(24, 25, 4, 2, FALSE), + PT(30, 21, 3, 1, FALSE), + PT(23, 51, 5, 1, TRUE), + PT(35, 9, 4, 3, FALSE), + PT(27, 13, 2, 2, TRUE), + PT(54, 38, 5, 0, FALSE), + PT(58, 28, 2, 2, FALSE), + PT(12, 62, 2, 0, FALSE), + PT(24, 6, 6, 2, TRUE), + PT(55, 38, 6, 3, FALSE), + PT(33, 38, 2, 3, TRUE), + PT(61, 28, 5, 2, FALSE), + PT(22, 37, 3, 2, TRUE), + PT(30, 11, 3, 3, FALSE), + PT(29, 13, 6, 1, FALSE), + PT( 8, 31, 3, 1, TRUE), + PT(18, 28, 2, 1, FALSE), + PT(32, 42, 5, 0, FALSE), + PT( 6, 59, 6, 2, TRUE), + PT(57, 14, 3, 3, FALSE), + PT(49, 48, 5, 0, FALSE), + PT( 2, 33, 2, 2, FALSE), + PT( 6, 30, 5, 0, TRUE), + PT(22, 9, 3, 2, FALSE), + PT(39, 50, 5, 2, TRUE), + PT(57, 3, 4, 3, TRUE), + PT(41, 9, 3, 3, FALSE), + PT(27, 17, 3, 2, FALSE), + PT(40, 58, 5, 2, FALSE), + PT( 3, 3, 3, 0, FALSE), + PT(35, 9, 5, 3, TRUE), + PT(48, 23, 4, 1, TRUE), + PT(15, 37, 6, 1, TRUE), + PT( 6, 36, 6, 3, TRUE), + PT(34, 9, 6, 1, TRUE), + PT(44, 9, 5, 1, FALSE), + PT(12, 18, 5, 1, FALSE), + PT(40, 32, 2, 0, FALSE), + PT(21, 41, 6, 1, TRUE), + PT(15, 26, 2, 1, TRUE), + PT(19, 24, 6, 3, FALSE), + PT(46, 22, 2, 1, TRUE), + PT(60, 26, 2, 2, TRUE), + PT(58, 17, 6, 1, FALSE), + PT( 2, 10, 5, 2, FALSE), + PT(25, 57, 2, 0, TRUE), + PT(49, 62, 3, 2, TRUE), + PT(50, 20, 6, 1, FALSE), + PT(18, 46, 6, 2, FALSE), + PT(62, 54, 4, 1, TRUE), + PT(55, 62, 2, 2, TRUE), + PT(21, 53, 6, 2, FALSE), + PT( 1, 58, 5, 2, FALSE), + PT(38, 37, 4, 1, FALSE), + PT( 1, 43, 6, 3, TRUE), + PT(28, 61, 6, 1, TRUE), + PT(62, 16, 3, 2, FALSE), + PT(38, 51, 3, 0, TRUE), + PT( 5, 25, 2, 3, TRUE), + PT(18, 56, 3, 2, FALSE), + PT(21, 60, 6, 1, FALSE), + PT(63, 15, 6, 3, TRUE), + PT( 2, 57, 6, 1, FALSE), + PT(19, 0, 3, 2, TRUE), + PT(29, 44, 2, 0, FALSE), + PT(57, 19, 6, 0, TRUE), + PT(15, 55, 3, 0, TRUE), + PT( 9, 13, 5, 1, FALSE), + PT(32, 47, 6, 1, FALSE), + PT(59, 52, 4, 1, FALSE), + PT(38, 20, 2, 0, FALSE), + PT(36, 61, 4, 1, FALSE), + PT(11, 49, 4, 1, TRUE), + PT(47, 45, 5, 1, FALSE), + PT(48, 4, 6, 2, TRUE), + PT(25, 32, 5, 1, FALSE), + PT(22, 54, 6, 3, TRUE), + PT(20, 40, 6, 3, TRUE), + PT(17, 11, 4, 3, TRUE), + PT(29, 6, 5, 0, TRUE), + PT(53, 22, 5, 3, FALSE), + PT(36, 46, 5, 0, TRUE), + PT(54, 20, 5, 1, FALSE), + PT(33, 12, 3, 3, TRUE), + PT(63, 57, 3, 0, TRUE), + PT(39, 16, 5, 1, FALSE), + PT(30, 18, 6, 2, FALSE), + PT(16, 36, 6, 2, FALSE), + PT(29, 19, 3, 2, TRUE), + PT(23, 22, 6, 3, TRUE), + PT(39, 27, 4, 3, TRUE), + PT( 7, 36, 4, 0, TRUE), + PT(55, 33, 2, 0, TRUE), + PT(55, 40, 4, 2, FALSE), + PT(25, 2, 3, 2, FALSE), + PT(20, 18, 3, 2, TRUE), + PT(27, 36, 5, 3, FALSE), + PT(46, 58, 2, 2, TRUE), + PT(55, 52, 4, 0, TRUE), + PT(51, 45, 5, 0, TRUE), + PT(47, 30, 6, 2, FALSE), + PT(41, 60, 2, 1, FALSE), + PT( 5, 21, 4, 0, FALSE), + PT( 5, 62, 3, 0, TRUE), + PT(24, 11, 6, 0, FALSE), + PT(47, 2, 4, 3, TRUE), + PT(20, 28, 6, 2, FALSE), + PT(18, 32, 6, 0, FALSE), + PT(43, 34, 3, 1, TRUE), + PT( 6, 49, 5, 0, FALSE), + PT(21, 45, 2, 1, FALSE), + PT( 1, 14, 2, 1, TRUE), + PT(19, 12, 5, 0, FALSE), + PT( 7, 42, 2, 2, FALSE), + PT(29, 54, 2, 2, FALSE), + PT(21, 43, 4, 3, FALSE), + PT( 3, 37, 2, 2, TRUE), + PT(62, 59, 4, 0, FALSE), + PT(53, 12, 4, 2, TRUE), + PT(43, 22, 6, 2, TRUE), + PT(30, 49, 5, 2, FALSE), + PT( 6, 3, 5, 0, TRUE), + PT(36, 7, 3, 3, TRUE), + PT(50, 47, 3, 0, TRUE), + PT(37, 33, 6, 0, TRUE), + PT(34, 38, 3, 2, TRUE), + PT( 0, 27, 3, 0, FALSE), + PT(42, 36, 6, 0, TRUE), + PT(32, 6, 5, 3, TRUE), + PT(30, 50, 4, 3, FALSE), + PT(50, 57, 2, 1, FALSE), + PT(32, 1, 3, 0, TRUE), + PT(15, 21, 2, 2, TRUE), + PT(39, 16, 5, 3, FALSE), + PT( 9, 37, 3, 0, TRUE), + PT(41, 55, 6, 0, FALSE), + PT(19, 28, 3, 2, TRUE), + PT(41, 45, 4, 3, FALSE), + PT( 2, 26, 2, 3, FALSE), + PT(29, 43, 3, 2, FALSE), + PT(24, 4, 6, 2, FALSE), + PT(40, 42, 4, 0, TRUE), + PT(21, 27, 5, 3, FALSE), + PT(22, 1, 2, 0, FALSE), + PT( 5, 9, 2, 2, FALSE), + PT(34, 3, 4, 1, FALSE), + PT( 2, 27, 6, 2, FALSE), + PT(41, 42, 4, 1, TRUE), + PT(38, 54, 2, 1, TRUE), + PT(35, 61, 3, 1, FALSE), + PT(29, 16, 4, 2, FALSE), + PT(37, 43, 6, 3, TRUE), + PT(25, 36, 4, 3, FALSE), + PT(40, 19, 2, 3, FALSE), + PT(23, 20, 3, 0, TRUE), + PT(11, 47, 4, 2, TRUE), + PT(55, 52, 6, 3, TRUE), + PT(57, 33, 3, 1, TRUE), + PT(15, 61, 5, 2, TRUE), + PT(13, 16, 4, 0, FALSE), + PT( 5, 11, 5, 2, TRUE), + PT( 1, 18, 4, 2, FALSE), + PT(24, 61, 6, 1, FALSE), + PT( 9, 33, 4, 3, FALSE), + PT(26, 14, 3, 3, TRUE), + PT(48, 6, 3, 3, TRUE), + PT(11, 60, 5, 0, TRUE), + PT( 7, 62, 4, 3, TRUE), + PT(19, 30, 3, 1, FALSE), + PT(19, 7, 4, 1, TRUE), + PT(16, 52, 3, 3, FALSE), + PT(50, 23, 4, 1, TRUE), + PT(53, 22, 6, 0, TRUE), + PT(50, 46, 3, 1, TRUE), + PT(40, 14, 4, 1, FALSE), + PT(20, 58, 4, 1, TRUE), + PT(34, 3, 5, 0, TRUE), + PT(42, 16, 4, 0, FALSE), + PT(62, 60, 4, 3, TRUE), + PT(22, 32, 2, 1, FALSE), + PT(63, 36, 6, 0, TRUE), + PT(13, 46, 6, 1, FALSE), + PT(47, 23, 5, 2, TRUE), + PT(54, 59, 2, 3, TRUE), + PT(36, 35, 3, 0, FALSE), + PT(55, 29, 2, 1, TRUE), + PT(23, 58, 3, 1, FALSE), + PT(10, 61, 3, 3, FALSE), + PT( 5, 18, 2, 3, FALSE), + PT(51, 50, 4, 2, TRUE), + PT(29, 31, 5, 0, TRUE), + PT(52, 44, 4, 3, FALSE), + PT(32, 41, 6, 2, TRUE), + PT(14, 50, 2, 3, TRUE), + PT( 1, 57, 5, 2, TRUE), + PT(39, 36, 4, 1, TRUE), + PT(40, 63, 3, 0, FALSE), + PT(57, 56, 4, 2, TRUE), + PT(35, 17, 2, 0, TRUE), + PT(25, 44, 5, 0, TRUE), + PT(48, 8, 5, 0, FALSE), + PT(37, 39, 3, 2, TRUE), + PT(23, 37, 4, 0, TRUE), + PT( 9, 61, 2, 3, FALSE), + PT(27, 15, 5, 2, FALSE), + PT(27, 18, 4, 1, FALSE), + PT(40, 62, 4, 3, FALSE), + PT(52, 16, 3, 1, TRUE), + PT( 2, 52, 2, 2, TRUE), + PT(26, 41, 3, 0, TRUE), + PT(41, 17, 6, 0, TRUE), + PT(18, 39, 2, 3, TRUE), + PT(39, 39, 5, 3, TRUE), + PT(52, 39, 4, 2, FALSE), + PT( 3, 25, 6, 3, FALSE), + PT(23, 29, 6, 1, TRUE), + PT(25, 37, 3, 1, FALSE), + PT(43, 57, 2, 1, TRUE), + PT(59, 51, 3, 2, TRUE), + PT(39, 49, 6, 2, FALSE), + PT(40, 51, 6, 3, TRUE), + PT( 9, 48, 3, 1, TRUE), + PT( 3, 58, 4, 3, TRUE), + PT(25, 17, 3, 3, TRUE), + PT(11, 26, 6, 2, FALSE), + PT(61, 42, 2, 2, TRUE), + PT( 4, 36, 6, 3, FALSE), + PT(48, 35, 6, 0, FALSE), + PT(15, 34, 3, 1, TRUE), + PT(61, 61, 4, 2, FALSE), + PT(41, 29, 2, 1, FALSE), + PT(22, 25, 5, 3, FALSE), + PT( 3, 18, 2, 3, TRUE), + PT(24, 37, 6, 1, TRUE), + PT(47, 35, 3, 1, FALSE), + PT(26, 53, 4, 3, TRUE), + PT(33, 38, 3, 0, TRUE), + PT(27, 48, 3, 0, FALSE), + PT(43, 34, 5, 2, TRUE), + PT(44, 26, 6, 2, FALSE), + PT(62, 18, 3, 0, TRUE), + PT(40, 39, 2, 2, TRUE), + PT(27, 17, 2, 1, FALSE), + PT(23, 21, 2, 0, FALSE), + PT(52, 55, 4, 2, TRUE), + PT(18, 63, 2, 2, TRUE), + PT(49, 13, 6, 3, TRUE), + PT(62, 42, 5, 2, TRUE), + PT(15, 36, 4, 2, FALSE), + PT(60, 63, 3, 3, TRUE), + PT(29, 52, 2, 3, TRUE), + PT(26, 35, 3, 3, TRUE), + PT(55, 15, 2, 0, FALSE), + PT(50, 52, 6, 2, TRUE), + PT(25, 5, 4, 1, FALSE), + PT(51, 22, 6, 2, FALSE), + PT(30, 20, 3, 3, FALSE), + PT( 8, 19, 5, 0, TRUE), + PT(58, 55, 6, 0, FALSE), + PT(29, 54, 2, 2, TRUE), + PT(41, 46, 3, 2, TRUE), + PT(50, 46, 4, 1, TRUE), + PT(53, 23, 3, 2, FALSE), + PT(54, 29, 2, 1, TRUE), + PT(35, 52, 6, 2, FALSE), + PT(36, 26, 6, 3, TRUE), + PT(47, 38, 5, 3, FALSE), + PT(30, 23, 3, 1, FALSE), + PT(31, 21, 3, 3, TRUE), + PT(43, 31, 3, 0, TRUE), + PT(10, 51, 3, 1, FALSE), + PT(53, 49, 4, 2, FALSE), + PT(45, 23, 5, 2, FALSE), + PT(12, 33, 6, 3, FALSE), + PT(44, 53, 6, 2, TRUE), + PT(27, 3, 4, 3, TRUE), + PT( 1, 13, 3, 2, TRUE), + PT(28, 14, 2, 0, TRUE), + PT(17, 43, 2, 0, FALSE), + PT(37, 59, 4, 0, FALSE), + PT(31, 23, 3, 0, TRUE), + PT(32, 8, 6, 3, FALSE), + PT(19, 56, 3, 0, TRUE), + PT(27, 43, 4, 2, FALSE), + PT(11, 31, 5, 0, TRUE), + PT(39, 21, 5, 2, FALSE), + PT(55, 57, 2, 0, FALSE), + PT(58, 21, 5, 3, FALSE), + PT(47, 17, 6, 3, FALSE), + PT(36, 4, 4, 0, FALSE), + PT(59, 42, 6, 2, TRUE), + PT(39, 53, 6, 2, FALSE), + PT(13, 27, 4, 0, FALSE), + PT(16, 34, 6, 3, TRUE), + PT(31, 56, 4, 3, TRUE), + PT(49, 15, 5, 0, FALSE), + PT(40, 37, 2, 2, TRUE), + PT( 0, 29, 4, 2, TRUE), + PT(49, 40, 5, 0, FALSE), + PT(11, 58, 3, 2, TRUE), + PT(45, 19, 3, 1, TRUE), + PT( 3, 55, 5, 3, FALSE), + PT(29, 40, 3, 0, TRUE), + PT( 8, 45, 4, 1, FALSE), + PT(39, 57, 6, 1, FALSE), + PT(63, 47, 3, 2, TRUE), + PT(51, 52, 5, 0, FALSE), + PT(24, 8, 6, 0, TRUE), + PT(35, 31, 2, 1, TRUE), + PT(13, 44, 4, 1, TRUE), + PT(58, 45, 3, 1, FALSE), + PT( 2, 37, 2, 1, TRUE), + PT(32, 54, 6, 2, FALSE), + PT(18, 43, 5, 2, TRUE), + PT(53, 53, 6, 2, FALSE), + PT(35, 32, 4, 0, TRUE), + PT(58, 25, 3, 1, TRUE), + PT(31, 43, 3, 0, TRUE), + PT(53, 14, 3, 0, TRUE), + PT(38, 36, 6, 3, TRUE), + PT(24, 8, 2, 0, FALSE), + PT(12, 22, 5, 2, TRUE), + PT(31, 52, 4, 0, TRUE), + PT( 5, 56, 3, 0, TRUE), + PT(20, 33, 4, 2, FALSE), + PT(17, 49, 2, 2, FALSE), + PT(62, 56, 5, 0, TRUE), + PT(63, 8, 4, 2, TRUE), + PT(42, 31, 4, 2, TRUE), + PT(37, 6, 5, 0, FALSE), + PT(11, 30, 2, 2, FALSE), + PT(26, 56, 4, 1, FALSE), + PT(36, 24, 5, 0, TRUE), + PT(26, 17, 4, 0, FALSE), + PT(59, 58, 3, 3, FALSE), + PT(28, 38, 3, 1, FALSE), + PT( 5, 50, 3, 0, TRUE), + PT(57, 42, 6, 0, TRUE), + PT( 9, 7, 4, 2, TRUE), + PT( 5, 62, 2, 3, FALSE), + PT(52, 38, 2, 2, FALSE), + PT(27, 50, 4, 3, FALSE), + PT( 5, 8, 6, 3, TRUE), + PT(15, 3, 4, 0, FALSE), + PT(42, 57, 6, 0, TRUE), + PT( 8, 1, 3, 3, FALSE), + PT(29, 35, 6, 0, TRUE), + PT(40, 27, 5, 0, FALSE), + PT(30, 55, 2, 2, FALSE), + PT(19, 14, 5, 0, FALSE), + PT(42, 59, 6, 3, TRUE), + PT(47, 28, 5, 0, FALSE), + PT(48, 48, 3, 1, FALSE), + PT(54, 31, 2, 3, FALSE), + PT(62, 13, 2, 2, TRUE), + PT(46, 22, 3, 0, FALSE), + PT(21, 55, 4, 0, FALSE), + PT(42, 51, 6, 0, FALSE), + PT(43, 14, 4, 2, TRUE), + PT(24, 32, 2, 3, FALSE), + PT( 2, 25, 4, 2, TRUE), + PT(10, 46, 6, 0, FALSE), + PT(22, 3, 2, 0, TRUE), + PT( 4, 39, 4, 2, TRUE), + PT(27, 28, 4, 0, TRUE), + PT(41, 4, 4, 3, TRUE), + PT(61, 32, 3, 3, FALSE), + PT(40, 51, 6, 0, TRUE), + PT(30, 57, 2, 0, FALSE), + PT(49, 41, 3, 3, FALSE), + PT( 6, 37, 5, 0, FALSE), + PT(25, 59, 2, 1, FALSE), + PT(11, 27, 3, 2, FALSE), + PT(62, 55, 4, 0, FALSE), + PT(10, 55, 6, 1, TRUE), + PT( 2, 44, 4, 2, TRUE), + PT(21, 24, 2, 2, FALSE), + PT(59, 32, 3, 2, FALSE), + PT(34, 59, 3, 2, FALSE), + PT(36, 52, 6, 2, TRUE), + PT(15, 47, 6, 0, TRUE), + PT(59, 23, 6, 2, TRUE), + PT(48, 57, 6, 3, TRUE), + PT(13, 21, 2, 0, TRUE), + PT(16, 3, 3, 3, FALSE), + PT(26, 57, 6, 1, TRUE), + PT(47, 46, 5, 0, FALSE), + PT(28, 40, 6, 3, FALSE), + PT(40, 24, 3, 3, TRUE), + PT(21, 1, 6, 0, FALSE), + PT(62, 50, 5, 0, FALSE), + PT(52, 47, 4, 1, TRUE), + PT( 7, 12, 6, 3, FALSE), + PT(40, 44, 6, 2, FALSE), + PT(42, 12, 3, 3, TRUE), + PT(63, 32, 2, 1, TRUE), + PT(43, 23, 4, 3, TRUE), + PT(40, 41, 5, 1, FALSE), + PT(60, 19, 6, 3, FALSE), + PT(38, 45, 5, 1, FALSE), + PT(10, 6, 3, 3, FALSE), + PT(32, 4, 3, 1, FALSE), + PT( 2, 7, 6, 2, TRUE), + PT(14, 24, 6, 0, FALSE), + PT( 0, 52, 6, 2, FALSE), + PT(47, 20, 6, 3, TRUE), + PT(33, 48, 3, 3, TRUE), + PT(21, 55, 3, 1, TRUE), + PT(58, 11, 6, 1, FALSE), + PT(34, 34, 4, 0, TRUE), + PT(27, 53, 4, 1, TRUE), + PT(13, 3, 3, 2, FALSE), + PT(35, 59, 2, 1, TRUE), + PT(14, 29, 3, 3, TRUE), + PT(29, 63, 5, 3, FALSE), + PT(57, 39, 5, 3, FALSE), + PT(15, 56, 4, 0, FALSE), + PT(49, 60, 6, 2, TRUE), + PT(11, 15, 5, 3, FALSE), + PT( 6, 6, 5, 0, FALSE), + PT(37, 57, 4, 1, TRUE), + PT(10, 50, 2, 2, TRUE), + PT(15, 29, 4, 2, TRUE), + PT(12, 13, 6, 2, FALSE), + PT(18, 46, 4, 0, TRUE), + PT(54, 24, 3, 3, TRUE), + PT(31, 52, 3, 1, TRUE), + PT( 5, 58, 6, 3, FALSE), + PT(43, 1, 2, 3, TRUE), + PT(14, 22, 5, 1, TRUE), + PT(14, 11, 4, 3, FALSE), + PT(13, 45, 2, 0, FALSE), + PT(33, 17, 4, 3, TRUE), + PT(61, 19, 6, 1, FALSE), + PT(21, 37, 5, 1, FALSE), + PT(27, 45, 6, 2, TRUE), + PT(44, 43, 4, 3, FALSE), + PT(38, 31, 4, 0, FALSE), + PT(34, 43, 2, 1, FALSE), + PT(63, 61, 4, 3, TRUE), + PT(48, 10, 6, 3, FALSE), + PT(53, 31, 2, 3, TRUE), + PT(33, 8, 5, 0, TRUE), + PT(29, 32, 6, 1, TRUE), + PT(52, 17, 2, 3, FALSE), + PT( 5, 56, 5, 2, TRUE), +}; + +#undef PT diff --git a/src/data/pokemon/form_species_table_pointers.h b/src/data/pokemon/form_species_table_pointers.h new file mode 100644 index 0000000000..22e32ae421 --- /dev/null +++ b/src/data/pokemon/form_species_table_pointers.h @@ -0,0 +1,80 @@ +const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = +{ + [SPECIES_VENUSAUR] = sVenusaurFormSpeciesIdTable, + [SPECIES_CHARIZARD] = sCharizardFormSpeciesIdTable, + [SPECIES_BLASTOISE] = sBlastoiseFormSpeciesIdTable, + [SPECIES_BEEDRILL] = sBeedrillFormSpeciesIdTable, + [SPECIES_PIDGEOT] = sPidgeotFormSpeciesIdTable, + [SPECIES_RATTATA] = sRattataFormSpeciesIdTable, + [SPECIES_RATICATE] = sRaticateFormSpeciesIdTable, + [SPECIES_PIKACHU] = sPikachuFormSpeciesIdTable, + [SPECIES_RAICHU] = sRaichuFormSpeciesIdTable, + [SPECIES_SANDSHREW] = sSandshrewFormSpeciesIdTable, + [SPECIES_SANDSLASH] = sSandslashFormSpeciesIdTable, + [SPECIES_VULPIX] = sVulpixFormSpeciesIdTable, + [SPECIES_NINETALES] = sNinetalesFormSpeciesIdTable, + [SPECIES_DIGLETT] = sDiglettFormSpeciesIdTable, + [SPECIES_DUGTRIO] = sDugtrioFormSpeciesIdTable, + [SPECIES_MEOWTH] = sMeowthFormSpeciesIdTable, + [SPECIES_PERSIAN] = sPersianFormSpeciesIdTable, + [SPECIES_ALAKAZAM] = sAlakazamFormSpeciesIdTable, + [SPECIES_GEODUDE] = sGeodudeFormSpeciesIdTable, + [SPECIES_GRAVELER] = sGravelerFormSpeciesIdTable, + [SPECIES_GOLEM] = sGolemFormSpeciesIdTable, + [SPECIES_PONYTA] = sPonytaFormSpeciesIdTable, + [SPECIES_RAPIDASH] = sRapidashFormSpeciesIdTable, + [SPECIES_SLOWPOKE] = sSlowpokeFormSpeciesIdTable, + [SPECIES_SLOWBRO] = sSlowbroFormSpeciesIdTable, + [SPECIES_FARFETCHD] = sFarfetchdFormSpeciesIdTable, + [SPECIES_GRIMER] = sGrimerFormSpeciesIdTable, + [SPECIES_MUK] = sMukFormSpeciesIdTable, + [SPECIES_GENGAR] = sGengarFormSpeciesIdTable, + [SPECIES_EXEGGUTOR] = sExeggutorFormSpeciesIdTable, + [SPECIES_MAROWAK] = sMarowakFormSpeciesIdTable, + [SPECIES_WEEZING] = sWeezingFormSpeciesIdTable, + [SPECIES_KANGASKHAN] = sKangaskhanFormSpeciesIdTable, + [SPECIES_MR_MIME] = sMrMimeFormSpeciesIdTable, + [SPECIES_PINSIR] = sPinsirFormSpeciesIdTable, + [SPECIES_GYARADOS] = sGyaradosFormSpeciesIdTable, + [SPECIES_AERODACTYL] = sAerodactylFormSpeciesIdTable, + [SPECIES_ARTICUNO] = sArticunoFormSpeciesIdTable, + [SPECIES_ZAPDOS] = sZapdosFormSpeciesIdTable, + [SPECIES_MOLTRES] = sMoltresFormSpeciesIdTable, + [SPECIES_MEWTWO] = sMewtwoFormSpeciesIdTable, + [SPECIES_PICHU] = sPichuFormSpeciesIdTable, + [SPECIES_AMPHAROS] = sAmpharosFormSpeciesIdTable, + [SPECIES_SLOWKING] = sSlowkingFormSpeciesIdTable, + [SPECIES_UNOWN] = sUnownFormSpeciesIdTable, + [SPECIES_STEELIX] = sSteelixFormSpeciesIdTable, + [SPECIES_SCIZOR] = sScizorFormSpeciesIdTable, + [SPECIES_HERACROSS] = sHeracrossFormSpeciesIdTable, + [SPECIES_CORSOLA] = sCorsolaFormSpeciesIdTable, + [SPECIES_HOUNDOOM] = sHoundoomFormSpeciesIdTable, + [SPECIES_TYRANITAR] = sTyranitarFormSpeciesIdTable, + [SPECIES_SCEPTILE] = sSceptileFormSpeciesIdTable, + [SPECIES_BLAZIKEN] = sBlazikenFormSpeciesIdTable, + [SPECIES_SWAMPERT] = sSwampertFormSpeciesIdTable, + [SPECIES_ZIGZAGOON] = sZigzagoonFormSpeciesIdTable, + [SPECIES_LINOONE] = sLinooneFormSpeciesIdTable, + [SPECIES_GARDEVOIR] = sGardevoirFormSpeciesIdTable, + [SPECIES_SABLEYE] = sSableyeFormSpeciesIdTable, + [SPECIES_MAWILE] = sMawileFormSpeciesIdTable, + [SPECIES_AGGRON] = sAggronFormSpeciesIdTable, + [SPECIES_MEDICHAM] = sMedichamFormSpeciesIdTable, + [SPECIES_MANECTRIC] = sManectricFormSpeciesIdTable, + [SPECIES_SHARPEDO] = sSharpedoFormSpeciesIdTable, + [SPECIES_CAMERUPT] = sCameruptFormSpeciesIdTable, + [SPECIES_ALTARIA] = sAltariaFormSpeciesIdTable, + [SPECIES_CASTFORM] = sCastformFormSpeciesIdTable, + [SPECIES_BANETTE] = sBanetteFormSpeciesIdTable, + [SPECIES_ABSOL] = sAbsolFormSpeciesIdTable, + [SPECIES_GLALIE] = sGlalieFormSpeciesIdTable, + [SPECIES_SALAMENCE] = sSalamenceFormSpeciesIdTable, + [SPECIES_METAGROSS] = sMetagrossFormSpeciesIdTable, + [SPECIES_LATIAS] = sLatiasFormSpeciesIdTable, + [SPECIES_LATIOS] = sLatiosFormSpeciesIdTable, + [SPECIES_KYOGRE] = sKyogreFormSpeciesIdTable, + [SPECIES_GROUDON] = sGroudonFormSpeciesIdTable, + [SPECIES_RAYQUAZA] = sRayquazaFormSpeciesIdTable, + [SPECIES_DEOXYS] = sDeoxysFormSpeciesIdTable, +}; diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h new file mode 100644 index 0000000000..632bdd9be0 --- /dev/null +++ b/src/data/pokemon/form_species_tables.h @@ -0,0 +1,386 @@ +#define FORM_SPECIES_END (0xffff) + +static const u16 sVenusaurFormSpeciesIdTable[] = { + SPECIES_VENUSAUR, + FORM_SPECIES_END, +}; + +static const u16 sCharizardFormSpeciesIdTable[] = { + SPECIES_CHARIZARD, + FORM_SPECIES_END, +}; + +static const u16 sBlastoiseFormSpeciesIdTable[] = { + SPECIES_BLASTOISE, + FORM_SPECIES_END, +}; + +static const u16 sBeedrillFormSpeciesIdTable[] = { + SPECIES_BEEDRILL, + FORM_SPECIES_END, +}; + +static const u16 sPidgeotFormSpeciesIdTable[] = { + SPECIES_PIDGEOT, + FORM_SPECIES_END, +}; + +static const u16 sRattataFormSpeciesIdTable[] = { + SPECIES_RATTATA, + FORM_SPECIES_END, +}; + +static const u16 sRaticateFormSpeciesIdTable[] = { + SPECIES_RATICATE, + FORM_SPECIES_END, +}; + +static const u16 sPikachuFormSpeciesIdTable[] = { + SPECIES_PIKACHU, + FORM_SPECIES_END, +}; + +static const u16 sRaichuFormSpeciesIdTable[] = { + SPECIES_RAICHU, + FORM_SPECIES_END, +}; + +static const u16 sSandshrewFormSpeciesIdTable[] = { + SPECIES_SANDSHREW, + FORM_SPECIES_END, +}; + +static const u16 sSandslashFormSpeciesIdTable[] = { + SPECIES_SANDSLASH, + FORM_SPECIES_END, +}; + +static const u16 sVulpixFormSpeciesIdTable[] = { + SPECIES_VULPIX, + FORM_SPECIES_END, +}; + +static const u16 sNinetalesFormSpeciesIdTable[] = { + SPECIES_NINETALES, + FORM_SPECIES_END, +}; + +static const u16 sDiglettFormSpeciesIdTable[] = { + SPECIES_DIGLETT, + FORM_SPECIES_END, +}; + +static const u16 sDugtrioFormSpeciesIdTable[] = { + SPECIES_DUGTRIO, + FORM_SPECIES_END, +}; + +static const u16 sMeowthFormSpeciesIdTable[] = { + SPECIES_MEOWTH, + FORM_SPECIES_END, +}; + +static const u16 sPersianFormSpeciesIdTable[] = { + SPECIES_PERSIAN, + FORM_SPECIES_END, +}; + +static const u16 sAlakazamFormSpeciesIdTable[] = { + SPECIES_ALAKAZAM, + FORM_SPECIES_END, +}; + +static const u16 sGeodudeFormSpeciesIdTable[] = { + SPECIES_GEODUDE, + FORM_SPECIES_END, +}; + +static const u16 sGravelerFormSpeciesIdTable[] = { + SPECIES_GRAVELER, + FORM_SPECIES_END, +}; + +static const u16 sGolemFormSpeciesIdTable[] = { + SPECIES_GOLEM, + FORM_SPECIES_END, +}; + +static const u16 sPonytaFormSpeciesIdTable[] = { + SPECIES_PONYTA, + FORM_SPECIES_END, +}; + +static const u16 sRapidashFormSpeciesIdTable[] = { + SPECIES_RAPIDASH, + FORM_SPECIES_END, +}; + +static const u16 sSlowpokeFormSpeciesIdTable[] = { + SPECIES_SLOWPOKE, + FORM_SPECIES_END, +}; + +static const u16 sSlowbroFormSpeciesIdTable[] = { + SPECIES_SLOWBRO, + FORM_SPECIES_END, +}; + +static const u16 sFarfetchdFormSpeciesIdTable[] = { + SPECIES_FARFETCHD, + FORM_SPECIES_END, +}; + +static const u16 sGrimerFormSpeciesIdTable[] = { + SPECIES_GRIMER, + FORM_SPECIES_END, +}; + +static const u16 sMukFormSpeciesIdTable[] = { + SPECIES_MUK, + FORM_SPECIES_END, +}; + +static const u16 sGengarFormSpeciesIdTable[] = { + SPECIES_GENGAR, + FORM_SPECIES_END, +}; + +static const u16 sExeggutorFormSpeciesIdTable[] = { + SPECIES_EXEGGUTOR, + FORM_SPECIES_END, +}; + +static const u16 sMarowakFormSpeciesIdTable[] = { + SPECIES_MAROWAK, + FORM_SPECIES_END, +}; + +static const u16 sWeezingFormSpeciesIdTable[] = { + SPECIES_WEEZING, + FORM_SPECIES_END, +}; + +static const u16 sKangaskhanFormSpeciesIdTable[] = { + SPECIES_KANGASKHAN, + FORM_SPECIES_END, +}; + +static const u16 sMrMimeFormSpeciesIdTable[] = { + SPECIES_MR_MIME, + FORM_SPECIES_END, +}; + +static const u16 sPinsirFormSpeciesIdTable[] = { + SPECIES_PINSIR, + FORM_SPECIES_END, +}; + +static const u16 sGyaradosFormSpeciesIdTable[] = { + SPECIES_GYARADOS, + FORM_SPECIES_END, +}; + +static const u16 sAerodactylFormSpeciesIdTable[] = { + SPECIES_AERODACTYL, + FORM_SPECIES_END, +}; + +static const u16 sArticunoFormSpeciesIdTable[] = { + SPECIES_ARTICUNO, + FORM_SPECIES_END, +}; + +static const u16 sZapdosFormSpeciesIdTable[] = { + SPECIES_ZAPDOS, + FORM_SPECIES_END, +}; + +static const u16 sMoltresFormSpeciesIdTable[] = { + SPECIES_MOLTRES, + FORM_SPECIES_END, +}; + +static const u16 sMewtwoFormSpeciesIdTable[] = { + SPECIES_MEWTWO, + FORM_SPECIES_END, +}; + +static const u16 sPichuFormSpeciesIdTable[] = { + SPECIES_PICHU, + FORM_SPECIES_END, +}; + +static const u16 sAmpharosFormSpeciesIdTable[] = { + SPECIES_AMPHAROS, + FORM_SPECIES_END, +}; + +static const u16 sSlowkingFormSpeciesIdTable[] = { + SPECIES_SLOWKING, + FORM_SPECIES_END, +}; + +static const u16 sUnownFormSpeciesIdTable[] = { + SPECIES_UNOWN, + FORM_SPECIES_END, +}; + +static const u16 sSteelixFormSpeciesIdTable[] = { + SPECIES_STEELIX, + FORM_SPECIES_END, +}; + +static const u16 sScizorFormSpeciesIdTable[] = { + SPECIES_SCIZOR, + FORM_SPECIES_END, +}; + +static const u16 sHeracrossFormSpeciesIdTable[] = { + SPECIES_HERACROSS, + FORM_SPECIES_END, +}; + +static const u16 sCorsolaFormSpeciesIdTable[] = { + SPECIES_CORSOLA, + FORM_SPECIES_END, +}; + +static const u16 sHoundoomFormSpeciesIdTable[] = { + SPECIES_HOUNDOOM, + FORM_SPECIES_END, +}; + +static const u16 sTyranitarFormSpeciesIdTable[] = { + SPECIES_TYRANITAR, + FORM_SPECIES_END, +}; + +static const u16 sSceptileFormSpeciesIdTable[] = { + SPECIES_SCEPTILE, + FORM_SPECIES_END, +}; + +static const u16 sBlazikenFormSpeciesIdTable[] = { + SPECIES_BLAZIKEN, + FORM_SPECIES_END, +}; + +static const u16 sSwampertFormSpeciesIdTable[] = { + SPECIES_SWAMPERT, + FORM_SPECIES_END, +}; + +static const u16 sZigzagoonFormSpeciesIdTable[] = { + SPECIES_ZIGZAGOON, + FORM_SPECIES_END, +}; + +static const u16 sLinooneFormSpeciesIdTable[] = { + SPECIES_LINOONE, + FORM_SPECIES_END, +}; + +static const u16 sGardevoirFormSpeciesIdTable[] = { + SPECIES_GARDEVOIR, + FORM_SPECIES_END, +}; + +static const u16 sSableyeFormSpeciesIdTable[] = { + SPECIES_SABLEYE, + FORM_SPECIES_END, +}; + +static const u16 sMawileFormSpeciesIdTable[] = { + SPECIES_MAWILE, + FORM_SPECIES_END, +}; + +static const u16 sAggronFormSpeciesIdTable[] = { + SPECIES_AGGRON, + FORM_SPECIES_END, +}; + +static const u16 sMedichamFormSpeciesIdTable[] = { + SPECIES_MEDICHAM, + FORM_SPECIES_END, +}; + +static const u16 sManectricFormSpeciesIdTable[] = { + SPECIES_MANECTRIC, + FORM_SPECIES_END, +}; + +static const u16 sSharpedoFormSpeciesIdTable[] = { + SPECIES_SHARPEDO, + FORM_SPECIES_END, +}; + +static const u16 sCameruptFormSpeciesIdTable[] = { + SPECIES_CAMERUPT, + FORM_SPECIES_END, +}; + +static const u16 sAltariaFormSpeciesIdTable[] = { + SPECIES_ALTARIA, + FORM_SPECIES_END, +}; + +static const u16 sCastformFormSpeciesIdTable[] = { + SPECIES_CASTFORM, + FORM_SPECIES_END, +}; + +static const u16 sBanetteFormSpeciesIdTable[] = { + SPECIES_BANETTE, + FORM_SPECIES_END, +}; + +static const u16 sAbsolFormSpeciesIdTable[] = { + SPECIES_ABSOL, + FORM_SPECIES_END, +}; + +static const u16 sGlalieFormSpeciesIdTable[] = { + SPECIES_GLALIE, + FORM_SPECIES_END, +}; + +static const u16 sSalamenceFormSpeciesIdTable[] = { + SPECIES_SALAMENCE, + FORM_SPECIES_END, +}; + +static const u16 sMetagrossFormSpeciesIdTable[] = { + SPECIES_METAGROSS, + FORM_SPECIES_END, +}; + +static const u16 sLatiasFormSpeciesIdTable[] = { + SPECIES_LATIAS, + FORM_SPECIES_END, +}; + +static const u16 sLatiosFormSpeciesIdTable[] = { + SPECIES_LATIOS, + FORM_SPECIES_END, +}; + +static const u16 sKyogreFormSpeciesIdTable[] = { + SPECIES_KYOGRE, + FORM_SPECIES_END, +}; + +static const u16 sGroudonFormSpeciesIdTable[] = { + SPECIES_GROUDON, + FORM_SPECIES_END, +}; + +static const u16 sRayquazaFormSpeciesIdTable[] = { + SPECIES_RAYQUAZA, + FORM_SPECIES_END, +}; + +static const u16 sDeoxysFormSpeciesIdTable[] = { + SPECIES_DEOXYS, + FORM_SPECIES_END, +}; diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index 1ed721e44b..00872a9b26 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -1,6 +1,6 @@ const u8 gItemEffect_Potion[7] = { [4] = ITEM4_HEAL_HP, - [6] = 20, + [6] = 20, // Amount of HP to recover }; const u8 gItemEffect_Antidote[6] = { @@ -26,22 +26,22 @@ const u8 gItemEffect_ParalyzeHeal[6] = { const u8 gItemEffect_FullRestore[7] = { [3] = ITEM3_STATUS_ALL, [4] = ITEM4_HEAL_HP, - [6] = ITEM6_HEAL_FULL, + [6] = ITEM6_HEAL_HP_FULL, }; const u8 gItemEffect_MaxPotion[7] = { [4] = ITEM4_HEAL_HP, - [6] = ITEM6_HEAL_FULL, + [6] = ITEM6_HEAL_HP_FULL, }; const u8 gItemEffect_HyperPotion[7] = { [4] = ITEM4_HEAL_HP, - [6] = 200, + [6] = 200, // Amount of HP to recover }; const u8 gItemEffect_SuperPotion[7] = { [4] = ITEM4_HEAL_HP, - [6] = 50, + [6] = 50, // Amount of HP to recover }; const u8 gItemEffect_FullHeal[6] = { @@ -50,87 +50,87 @@ const u8 gItemEffect_FullHeal[6] = { const u8 gItemEffect_Revive[7] = { [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, - [6] = ITEM6_HEAL_HALF, + [6] = ITEM6_HEAL_HP_HALF, }; const u8 gItemEffect_MaxRevive[7] = { [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, - [6] = ITEM6_HEAL_FULL, + [6] = ITEM6_HEAL_HP_FULL, }; const u8 gItemEffect_FreshWater[7] = { [4] = ITEM4_HEAL_HP, - [6] = 50, + [6] = 50, // Amount of HP to recover }; const u8 gItemEffect_SodaPop[7] = { [4] = ITEM4_HEAL_HP, - [6] = 60, + [6] = 60, // Amount of HP to recover }; const u8 gItemEffect_Lemonade[7] = { [4] = ITEM4_HEAL_HP, - [6] = 80, + [6] = 80, // Amount of HP to recover }; const u8 gItemEffect_MoomooMilk[7] = { [4] = ITEM4_HEAL_HP, - [6] = 100, + [6] = 100, // Amount of HP to recover }; const u8 gItemEffect_EnergyPowder[10] = { [4] = ITEM4_HEAL_HP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = 50, - [7] = -5, - [8] = -5, - [9] = -10, + [6] = 50, // Amount of HP to recover + [7] = -5, // Friendship change, low + [8] = -5, // Friendship change, mid + [9] = -10, // Friendship change, high }; const u8 gItemEffect_EnergyRoot[10] = { [4] = ITEM4_HEAL_HP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = 200, - [7] = -10, - [8] = -10, - [9] = -15, + [6] = 200, // Amount of HP to recover + [7] = -10, // Friendship change, low + [8] = -10, // Friendship change, mid + [9] = -15, // Friendship change, high }; const u8 gItemEffect_HealPowder[9] = { [3] = ITEM3_STATUS_ALL, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = -5, - [7] = -5, - [8] = -10, + [6] = -5, // Friendship change, low + [7] = -5, // Friendship change, mid + [8] = -10, // Friendship change, high }; const u8 gItemEffect_RevivalHerb[10] = { [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = ITEM6_HEAL_FULL, - [7] = -15, - [8] = -15, - [9] = -20, + [6] = ITEM6_HEAL_HP_FULL, + [7] = -15, // Friendship change, low + [8] = -15, // Friendship change, mid + [9] = -20, // Friendship change, high }; const u8 gItemEffect_Ether[7] = { - [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL, + [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP, [6] = 10, }; const u8 gItemEffect_MaxEther[7] = { - [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL, - [6] = 0x7F, + [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP, + [6] = ITEM6_HEAL_PP_FULL, }; const u8 gItemEffect_Elixir[7] = { - [4] = ITEM4_HEAL_PP_ALL, - [6] = 10, + [4] = ITEM4_HEAL_PP, + [6] = 10, // Amount of PP to recover }; const u8 gItemEffect_MaxElixir[7] = { - [4] = ITEM4_HEAL_PP_ALL, - [6] = 0x7F, + [4] = ITEM4_HEAL_PP, + [6] = ITEM6_HEAL_PP_FULL, }; const u8 gItemEffect_LavaCookie[6] = { @@ -151,137 +151,125 @@ const u8 gItemEffect_RedFlute[6] = { const u8 gItemEffect_BerryJuice[7] = { [4] = ITEM4_HEAL_HP, - [6] = 20, + [6] = 20, // Amount of HP to recover }; const u8 gItemEffect_SacredAsh[7] = { [0] = ITEM0_SACRED_ASH, [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, - [6] = ITEM6_HEAL_FULL, + [6] = ITEM6_HEAL_HP_FULL, }; +#define VITAMIN_FRIENDSHIP_CHANGE(i) \ + [(i) + 0] = 5, /* Friendship change, low */ \ + [(i) + 1] = 3, /* Friendship change, mid */ \ + [(i) + 2] = 2 /* Friendship change, high */ + const u8 gItemEffect_HPUp[10] = { [4] = ITEM4_EV_HP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = 10, - [7] = 5, - [8] = 3, - [9] = 2, + [6] = ITEM6_ADD_EV, + VITAMIN_FRIENDSHIP_CHANGE(7), }; const u8 gItemEffect_Protein[10] = { [4] = ITEM4_EV_ATK, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = 10, - [7] = 5, - [8] = 3, - [9] = 2, + [6] = ITEM6_ADD_EV, + VITAMIN_FRIENDSHIP_CHANGE(7), }; const u8 gItemEffect_Iron[10] = { [5] = ITEM5_EV_DEF | ITEM5_FRIENDSHIP_ALL, - [6] = 10, - [7] = 5, - [8] = 3, - [9] = 2, + [6] = ITEM6_ADD_EV, + VITAMIN_FRIENDSHIP_CHANGE(7), }; const u8 gItemEffect_Carbos[10] = { [5] = ITEM5_EV_SPEED | ITEM5_FRIENDSHIP_ALL, - [6] = 10, - [7] = 5, - [8] = 3, - [9] = 2, + [6] = ITEM6_ADD_EV, + VITAMIN_FRIENDSHIP_CHANGE(7), }; const u8 gItemEffect_Calcium[10] = { [5] = ITEM5_EV_SPATK | ITEM5_FRIENDSHIP_ALL, - [6] = 10, - [7] = 5, - [8] = 3, - [9] = 2, + [6] = ITEM6_ADD_EV, + VITAMIN_FRIENDSHIP_CHANGE(7), }; const u8 gItemEffect_RareCandy[10] = { [3] = ITEM3_LEVEL_UP, [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = ITEM6_HEAL_LVL_UP, - [7] = 5, - [8] = 3, - [9] = 2, + [6] = ITEM6_HEAL_HP_LVL_UP, + VITAMIN_FRIENDSHIP_CHANGE(7), }; const u8 gItemEffect_PPUp[9] = { [4] = ITEM4_PP_UP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = 5, - [7] = 3, - [8] = 2, + VITAMIN_FRIENDSHIP_CHANGE(6), }; const u8 gItemEffect_Zinc[10] = { [5] = ITEM5_EV_SPDEF | ITEM5_FRIENDSHIP_ALL, - [6] = 10, - [7] = 5, - [8] = 3, - [9] = 2, + [6] = ITEM6_ADD_EV, + VITAMIN_FRIENDSHIP_CHANGE(7), }; const u8 gItemEffect_PPMax[9] = { [5] = ITEM5_PP_MAX | ITEM5_FRIENDSHIP_ALL, - [6] = 5, - [7] = 3, - [8] = 2, + VITAMIN_FRIENDSHIP_CHANGE(6), }; +#define STAT_BOOST_FRIENDSHIP_CHANGE \ + [6] = 1, /* Friendship change, low */ \ + [7] = 1 /* Friendship change, mid */ + const u8 gItemEffect_GuardSpec[8] = { [3] = ITEM3_GUARD_SPEC, [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, - [6] = 1, - [7] = 1, + STAT_BOOST_FRIENDSHIP_CHANGE, }; +// The first item effect value for the stat boost items +// only uses the least significant bit of its full mask. +// The full constant is commented next to it + const u8 gItemEffect_DireHit[8] = { - [0] = 2 << 4, + [0] = 1 << 5, // ITEM0_DIRE_HIT [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, - [6] = 1, - [7] = 1, + STAT_BOOST_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_XAttack[8] = { - [0] = 1, + [0] = 1, // ITEM0_X_ATTACK [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, - [6] = 1, - [7] = 1, + STAT_BOOST_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_XDefend[8] = { - [1] = 1 << 4, + [1] = 1 << 4, /// ITEM1_X_DEFEND [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, - [6] = 1, - [7] = 1, + STAT_BOOST_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_XSpeed[8] = { - [1] = 1, + [1] = 1, // ITEM1_X_SPEED [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, - [6] = 1, - [7] = 1, + STAT_BOOST_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_XAccuracy[8] = { - [2] = 1 << 4, + [2] = 1 << 4, // ITEM2_X_ACCURACY [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, - [6] = 1, - [7] = 1, + STAT_BOOST_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_XSpecial[8] = { - [2] = 1, + [2] = 1, // ITEM2_X_SPATK [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, - [6] = 1, - [7] = 1, + STAT_BOOST_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_SunStone[6] = { @@ -329,13 +317,13 @@ const u8 gItemEffect_AspearBerry[6] = { }; const u8 gItemEffect_LeppaBerry[7] = { - [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL, - [6] = 10, + [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP, + [6] = 10, // Amount of PP to recover }; const u8 gItemEffect_OranBerry[7] = { [4] = ITEM4_HEAL_HP, - [6] = 10, + [6] = 10, // Amount of HP to recover }; const u8 gItemEffect_PersimBerry[6] = { @@ -348,129 +336,122 @@ const u8 gItemEffect_LumBerry[6] = { const u8 gItemEffect_SitrusBerry[7] = { [4] = ITEM4_HEAL_HP, - [6] = 30, + [6] = 30, // Amount of HP to recover }; +#define EV_BERRY_FRIENDSHIP_CHANGE \ + [7] = 10, /* Friendship change, low */ \ + [8] = 5, /* Friendship change, mid */ \ + [9] = 2 /* Friendship change, high */ + const u8 gItemEffect_PomegBerry[10] = { [4] = ITEM4_EV_HP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = -10, - [7] = 10, - [8] = 5, - [9] = 2, + [6] = ITEM6_SUBTRACT_EV, + EV_BERRY_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_KelpsyBerry[10] = { [4] = ITEM4_EV_ATK, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = -10, - [7] = 10, - [8] = 5, - [9] = 2, + [6] = ITEM6_SUBTRACT_EV, + EV_BERRY_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_QualotBerry[10] = { [5] = ITEM5_EV_DEF | ITEM5_FRIENDSHIP_ALL, - [6] = -10, - [7] = 10, - [8] = 5, - [9] = 2, + [6] = ITEM6_SUBTRACT_EV, + EV_BERRY_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_HondewBerry[10] = { [5] = ITEM5_EV_SPATK | ITEM5_FRIENDSHIP_ALL, - [6] = -10, - [7] = 10, - [8] = 5, - [9] = 2, + [6] = ITEM6_SUBTRACT_EV, + EV_BERRY_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_GrepaBerry[10] = { [5] = ITEM5_EV_SPDEF | ITEM5_FRIENDSHIP_ALL, - [6] = -10, - [7] = 10, - [8] = 5, - [9] = 2, + [6] = ITEM6_SUBTRACT_EV, + EV_BERRY_FRIENDSHIP_CHANGE, }; const u8 gItemEffect_TamatoBerry[10] = { [5] = ITEM5_EV_SPEED | ITEM5_FRIENDSHIP_ALL, - [6] = -10, - [7] = 10, - [8] = 5, - [9] = 2, + [6] = ITEM6_SUBTRACT_EV, + EV_BERRY_FRIENDSHIP_CHANGE, }; const u8 *const gItemEffectTable[] = { - [ITEM_POTION - ITEM_POTION] = gItemEffect_Potion, - [ITEM_ANTIDOTE - ITEM_POTION] = gItemEffect_Antidote, - [ITEM_BURN_HEAL - ITEM_POTION] = gItemEffect_BurnHeal, - [ITEM_ICE_HEAL - ITEM_POTION] = gItemEffect_IceHeal, - [ITEM_AWAKENING - ITEM_POTION] = gItemEffect_Awakening, + [ITEM_POTION - ITEM_POTION] = gItemEffect_Potion, + [ITEM_ANTIDOTE - ITEM_POTION] = gItemEffect_Antidote, + [ITEM_BURN_HEAL - ITEM_POTION] = gItemEffect_BurnHeal, + [ITEM_ICE_HEAL - ITEM_POTION] = gItemEffect_IceHeal, + [ITEM_AWAKENING - ITEM_POTION] = gItemEffect_Awakening, [ITEM_PARALYZE_HEAL - ITEM_POTION] = gItemEffect_ParalyzeHeal, - [ITEM_FULL_RESTORE - ITEM_POTION] = gItemEffect_FullRestore, - [ITEM_MAX_POTION - ITEM_POTION] = gItemEffect_MaxPotion, - [ITEM_HYPER_POTION - ITEM_POTION] = gItemEffect_HyperPotion, - [ITEM_SUPER_POTION - ITEM_POTION] = gItemEffect_SuperPotion, - [ITEM_FULL_HEAL - ITEM_POTION] = gItemEffect_FullHeal, - [ITEM_REVIVE - ITEM_POTION] = gItemEffect_Revive, - [ITEM_MAX_REVIVE - ITEM_POTION] = gItemEffect_MaxRevive, - [ITEM_FRESH_WATER - ITEM_POTION] = gItemEffect_FreshWater, - [ITEM_SODA_POP - ITEM_POTION] = gItemEffect_SodaPop, - [ITEM_LEMONADE - ITEM_POTION] = gItemEffect_Lemonade, - [ITEM_MOOMOO_MILK - ITEM_POTION] = gItemEffect_MoomooMilk, + [ITEM_FULL_RESTORE - ITEM_POTION] = gItemEffect_FullRestore, + [ITEM_MAX_POTION - ITEM_POTION] = gItemEffect_MaxPotion, + [ITEM_HYPER_POTION - ITEM_POTION] = gItemEffect_HyperPotion, + [ITEM_SUPER_POTION - ITEM_POTION] = gItemEffect_SuperPotion, + [ITEM_FULL_HEAL - ITEM_POTION] = gItemEffect_FullHeal, + [ITEM_REVIVE - ITEM_POTION] = gItemEffect_Revive, + [ITEM_MAX_REVIVE - ITEM_POTION] = gItemEffect_MaxRevive, + [ITEM_FRESH_WATER - ITEM_POTION] = gItemEffect_FreshWater, + [ITEM_SODA_POP - ITEM_POTION] = gItemEffect_SodaPop, + [ITEM_LEMONADE - ITEM_POTION] = gItemEffect_Lemonade, + [ITEM_MOOMOO_MILK - ITEM_POTION] = gItemEffect_MoomooMilk, [ITEM_ENERGY_POWDER - ITEM_POTION] = gItemEffect_EnergyPowder, - [ITEM_ENERGY_ROOT - ITEM_POTION] = gItemEffect_EnergyRoot, - [ITEM_HEAL_POWDER - ITEM_POTION] = gItemEffect_HealPowder, - [ITEM_REVIVAL_HERB - ITEM_POTION] = gItemEffect_RevivalHerb, - [ITEM_ETHER - ITEM_POTION] = gItemEffect_Ether, - [ITEM_MAX_ETHER - ITEM_POTION] = gItemEffect_MaxEther, - [ITEM_ELIXIR - ITEM_POTION] = gItemEffect_Elixir, - [ITEM_MAX_ELIXIR - ITEM_POTION] = gItemEffect_MaxElixir, - [ITEM_LAVA_COOKIE - ITEM_POTION] = gItemEffect_LavaCookie, - [ITEM_BLUE_FLUTE - ITEM_POTION] = gItemEffect_BlueFlute, - [ITEM_YELLOW_FLUTE - ITEM_POTION] = gItemEffect_YellowFlute, - [ITEM_RED_FLUTE - ITEM_POTION] = gItemEffect_RedFlute, - [ITEM_BERRY_JUICE - ITEM_POTION] = gItemEffect_BerryJuice, - [ITEM_SACRED_ASH - ITEM_POTION] = gItemEffect_SacredAsh, - [ITEM_HP_UP - ITEM_POTION] = gItemEffect_HPUp, - [ITEM_PROTEIN - ITEM_POTION] = gItemEffect_Protein, - [ITEM_IRON - ITEM_POTION] = gItemEffect_Iron, - [ITEM_CARBOS - ITEM_POTION] = gItemEffect_Carbos, - [ITEM_CALCIUM - ITEM_POTION] = gItemEffect_Calcium, - [ITEM_RARE_CANDY - ITEM_POTION] = gItemEffect_RareCandy, - [ITEM_PP_UP - ITEM_POTION] = gItemEffect_PPUp, - [ITEM_ZINC - ITEM_POTION] = gItemEffect_Zinc, - [ITEM_PP_MAX - ITEM_POTION] = gItemEffect_PPMax, - [ITEM_GUARD_SPEC - ITEM_POTION] = gItemEffect_GuardSpec, - [ITEM_DIRE_HIT - ITEM_POTION] = gItemEffect_DireHit, - [ITEM_X_ATTACK - ITEM_POTION] = gItemEffect_XAttack, - [ITEM_X_DEFEND - ITEM_POTION] = gItemEffect_XDefend, - [ITEM_X_SPEED - ITEM_POTION] = gItemEffect_XSpeed, - [ITEM_X_ACCURACY - ITEM_POTION] = gItemEffect_XAccuracy, - [ITEM_X_SPECIAL - ITEM_POTION] = gItemEffect_XSpecial, - [ITEM_SUN_STONE - ITEM_POTION] = gItemEffect_SunStone, - [ITEM_MOON_STONE - ITEM_POTION] = gItemEffect_MoonStone, - [ITEM_FIRE_STONE - ITEM_POTION] = gItemEffect_FireStone, + [ITEM_ENERGY_ROOT - ITEM_POTION] = gItemEffect_EnergyRoot, + [ITEM_HEAL_POWDER - ITEM_POTION] = gItemEffect_HealPowder, + [ITEM_REVIVAL_HERB - ITEM_POTION] = gItemEffect_RevivalHerb, + [ITEM_ETHER - ITEM_POTION] = gItemEffect_Ether, + [ITEM_MAX_ETHER - ITEM_POTION] = gItemEffect_MaxEther, + [ITEM_ELIXIR - ITEM_POTION] = gItemEffect_Elixir, + [ITEM_MAX_ELIXIR - ITEM_POTION] = gItemEffect_MaxElixir, + [ITEM_LAVA_COOKIE - ITEM_POTION] = gItemEffect_LavaCookie, + [ITEM_BLUE_FLUTE - ITEM_POTION] = gItemEffect_BlueFlute, + [ITEM_YELLOW_FLUTE - ITEM_POTION] = gItemEffect_YellowFlute, + [ITEM_RED_FLUTE - ITEM_POTION] = gItemEffect_RedFlute, + [ITEM_BERRY_JUICE - ITEM_POTION] = gItemEffect_BerryJuice, + [ITEM_SACRED_ASH - ITEM_POTION] = gItemEffect_SacredAsh, + [ITEM_HP_UP - ITEM_POTION] = gItemEffect_HPUp, + [ITEM_PROTEIN - ITEM_POTION] = gItemEffect_Protein, + [ITEM_IRON - ITEM_POTION] = gItemEffect_Iron, + [ITEM_CARBOS - ITEM_POTION] = gItemEffect_Carbos, + [ITEM_CALCIUM - ITEM_POTION] = gItemEffect_Calcium, + [ITEM_RARE_CANDY - ITEM_POTION] = gItemEffect_RareCandy, + [ITEM_PP_UP - ITEM_POTION] = gItemEffect_PPUp, + [ITEM_ZINC - ITEM_POTION] = gItemEffect_Zinc, + [ITEM_PP_MAX - ITEM_POTION] = gItemEffect_PPMax, + [ITEM_GUARD_SPEC - ITEM_POTION] = gItemEffect_GuardSpec, + [ITEM_DIRE_HIT - ITEM_POTION] = gItemEffect_DireHit, + [ITEM_X_ATTACK - ITEM_POTION] = gItemEffect_XAttack, + [ITEM_X_DEFEND - ITEM_POTION] = gItemEffect_XDefend, + [ITEM_X_SPEED - ITEM_POTION] = gItemEffect_XSpeed, + [ITEM_X_ACCURACY - ITEM_POTION] = gItemEffect_XAccuracy, + [ITEM_X_SPECIAL - ITEM_POTION] = gItemEffect_XSpecial, + [ITEM_SUN_STONE - ITEM_POTION] = gItemEffect_SunStone, + [ITEM_MOON_STONE - ITEM_POTION] = gItemEffect_MoonStone, + [ITEM_FIRE_STONE - ITEM_POTION] = gItemEffect_FireStone, [ITEM_THUNDER_STONE - ITEM_POTION] = gItemEffect_ThunderStone, - [ITEM_WATER_STONE - ITEM_POTION] = gItemEffect_WaterStone, - [ITEM_LEAF_STONE - ITEM_POTION] = gItemEffect_LeafStone, - [ITEM_CHERI_BERRY - ITEM_POTION] = gItemEffect_CheriBerry, - [ITEM_CHESTO_BERRY - ITEM_POTION] = gItemEffect_ChestoBerry, - [ITEM_PECHA_BERRY - ITEM_POTION] = gItemEffect_PechaBerry, - [ITEM_RAWST_BERRY - ITEM_POTION] = gItemEffect_RawstBerry, - [ITEM_ASPEAR_BERRY - ITEM_POTION] = gItemEffect_AspearBerry, - [ITEM_LEPPA_BERRY - ITEM_POTION] = gItemEffect_LeppaBerry, - [ITEM_ORAN_BERRY - ITEM_POTION] = gItemEffect_OranBerry, - [ITEM_PERSIM_BERRY - ITEM_POTION] = gItemEffect_PersimBerry, - [ITEM_LUM_BERRY - ITEM_POTION] = gItemEffect_LumBerry, - [ITEM_SITRUS_BERRY - ITEM_POTION] = gItemEffect_SitrusBerry, - [ITEM_POMEG_BERRY - ITEM_POTION] = gItemEffect_PomegBerry, - [ITEM_KELPSY_BERRY - ITEM_POTION] = gItemEffect_KelpsyBerry, - [ITEM_QUALOT_BERRY - ITEM_POTION] = gItemEffect_QualotBerry, - [ITEM_HONDEW_BERRY - ITEM_POTION] = gItemEffect_HondewBerry, - [ITEM_GREPA_BERRY - ITEM_POTION] = gItemEffect_GrepaBerry, - [ITEM_TAMATO_BERRY - ITEM_POTION] = gItemEffect_TamatoBerry, - [LAST_BERRY_INDEX - ITEM_POTION] = NULL + [ITEM_WATER_STONE - ITEM_POTION] = gItemEffect_WaterStone, + [ITEM_LEAF_STONE - ITEM_POTION] = gItemEffect_LeafStone, + [ITEM_CHERI_BERRY - ITEM_POTION] = gItemEffect_CheriBerry, + [ITEM_CHESTO_BERRY - ITEM_POTION] = gItemEffect_ChestoBerry, + [ITEM_PECHA_BERRY - ITEM_POTION] = gItemEffect_PechaBerry, + [ITEM_RAWST_BERRY - ITEM_POTION] = gItemEffect_RawstBerry, + [ITEM_ASPEAR_BERRY - ITEM_POTION] = gItemEffect_AspearBerry, + [ITEM_LEPPA_BERRY - ITEM_POTION] = gItemEffect_LeppaBerry, + [ITEM_ORAN_BERRY - ITEM_POTION] = gItemEffect_OranBerry, + [ITEM_PERSIM_BERRY - ITEM_POTION] = gItemEffect_PersimBerry, + [ITEM_LUM_BERRY - ITEM_POTION] = gItemEffect_LumBerry, + [ITEM_SITRUS_BERRY - ITEM_POTION] = gItemEffect_SitrusBerry, + [ITEM_POMEG_BERRY - ITEM_POTION] = gItemEffect_PomegBerry, + [ITEM_KELPSY_BERRY - ITEM_POTION] = gItemEffect_KelpsyBerry, + [ITEM_QUALOT_BERRY - ITEM_POTION] = gItemEffect_QualotBerry, + [ITEM_HONDEW_BERRY - ITEM_POTION] = gItemEffect_HondewBerry, + [ITEM_GREPA_BERRY - ITEM_POTION] = gItemEffect_GrepaBerry, + [ITEM_TAMATO_BERRY - ITEM_POTION] = gItemEffect_TamatoBerry, + [LAST_BERRY_INDEX - ITEM_POTION] = NULL }; diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index a5091c5e1c..77382a1512 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -1,5 +1,4 @@ #define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} -#define LEVEL_UP_END (0xffff) static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), diff --git a/src/data/pokemon_graphics/unknown_table.h b/src/data/pokemon_graphics/unknown_table.h new file mode 100644 index 0000000000..737b79c1ba --- /dev/null +++ b/src/data/pokemon_graphics/unknown_table.h @@ -0,0 +1,444 @@ +// Unknown and unused +static const u32 sUnused[] = +{ + [SPECIES_NONE] = 0x888, + [SPECIES_BULBASAUR] = 0x888, + [SPECIES_IVYSAUR] = 0x888, + [SPECIES_VENUSAUR] = 0x888, + [SPECIES_CHARMANDER] = 0x88, + [SPECIES_CHARMELEON] = 0x888, + [SPECIES_CHARIZARD] = 0x888, + [SPECIES_SQUIRTLE] = 0x886, + [SPECIES_WARTORTLE] = 0x888, + [SPECIES_BLASTOISE] = 0x886, + [SPECIES_CATERPIE] = 0x888, + [SPECIES_METAPOD] = 0x888, + [SPECIES_BUTTERFREE] = 0x888, + [SPECIES_WEEDLE] = 0x888, + [SPECIES_KAKUNA] = 0x888, + [SPECIES_BEEDRILL] = 0x888, + [SPECIES_PIDGEY] = 0x886, + [SPECIES_PIDGEOTTO] = 0x888, + [SPECIES_PIDGEOT] = 0x888, + [SPECIES_RATTATA] = 0x888, + [SPECIES_RATICATE] = 0x888, + [SPECIES_SPEAROW] = 0x888, + [SPECIES_FEAROW] = 0x886, + [SPECIES_EKANS] = 0x886, + [SPECIES_ARBOK] = 0x888, + [SPECIES_PIKACHU] = 0x88, + [SPECIES_RAICHU] = 0x88, + [SPECIES_SANDSHREW] = 0x88, + [SPECIES_SANDSLASH] = 0x88, + [SPECIES_NIDORAN_F] = 0x888, + [SPECIES_NIDORINA] = 0x886, + [SPECIES_NIDOQUEEN] = 0x888, + [SPECIES_NIDORAN_M] = 0x888, + [SPECIES_NIDORINO] = 0x888, + [SPECIES_NIDOKING] = 0x886, + [SPECIES_CLEFAIRY] = 0x886, + [SPECIES_CLEFABLE] = 0x888, + [SPECIES_VULPIX] = 0x88, + [SPECIES_NINETALES] = 0x88, + [SPECIES_JIGGLYPUFF] = 0x88, + [SPECIES_WIGGLYTUFF] = 0x88, + [SPECIES_ZUBAT] = 0x886, + [SPECIES_GOLBAT] = 0x886, + [SPECIES_ODDISH] = 0x88, + [SPECIES_GLOOM] = 0x886, + [SPECIES_VILEPLUME] = 0x886, + [SPECIES_PARAS] = 0x888, + [SPECIES_PARASECT] = 0x888, + [SPECIES_VENONAT] = 0x888, + [SPECIES_VENOMOTH] = 0x888, + [SPECIES_DIGLETT] = 0x888, + [SPECIES_DUGTRIO] = 0x888, + [SPECIES_MEOWTH] = 0x886, + [SPECIES_PERSIAN] = 0x888, + [SPECIES_PSYDUCK] = 0x88, + [SPECIES_GOLDUCK] = 0x88, + [SPECIES_MANKEY] = 0x888, + [SPECIES_PRIMEAPE] = 0x888, + [SPECIES_GROWLITHE] = 0x888, + [SPECIES_ARCANINE] = 0x886, + [SPECIES_POLIWAG] = 0x888, + [SPECIES_POLIWHIRL] = 0x888, + [SPECIES_POLIWRATH] = 0x888, + [SPECIES_ABRA] = 0x886, + [SPECIES_KADABRA] = 0x886, + [SPECIES_ALAKAZAM] = 0x886, + [SPECIES_MACHOP] = 0x886, + [SPECIES_MACHOKE] = 0x886, + [SPECIES_MACHAMP] = 0x886, + [SPECIES_BELLSPROUT] = 0x886, + [SPECIES_WEEPINBELL] = 0x888, + [SPECIES_VICTREEBEL] = 0x888, + [SPECIES_TENTACOOL] = 0x886, + [SPECIES_TENTACRUEL] = 0x886, + [SPECIES_GEODUDE] = 0x886, + [SPECIES_GRAVELER] = 0x886, + [SPECIES_GOLEM] = 0x886, + [SPECIES_PONYTA] = 0x888, + [SPECIES_RAPIDASH] = 0x888, + [SPECIES_SLOWPOKE] = 0x888, + [SPECIES_SLOWBRO] = 0x888, + [SPECIES_MAGNEMITE] = 0x886, + [SPECIES_MAGNETON] = 0x886, + [SPECIES_FARFETCHD] = 0x888, + [SPECIES_DODUO] = 0x886, + [SPECIES_DODRIO] = 0x886, + [SPECIES_SEEL] = 0x888, + [SPECIES_DEWGONG] = 0x888, + [SPECIES_GRIMER] = 0x88, + [SPECIES_MUK] = 0x88, + [SPECIES_SHELLDER] = 0x888, + [SPECIES_CLOYSTER] = 0x888, + [SPECIES_GASTLY] = 0x888, + [SPECIES_HAUNTER] = 0x888, + [SPECIES_GENGAR] = 0x888, + [SPECIES_ONIX] = 0x888, + [SPECIES_DROWZEE] = 0x888, + [SPECIES_HYPNO] = 0x888, + [SPECIES_KRABBY] = 0x888, + [SPECIES_KINGLER] = 0x888, + [SPECIES_VOLTORB] = 0x886, + [SPECIES_ELECTRODE] = 0x886, + [SPECIES_EXEGGCUTE] = 0x888, + [SPECIES_EXEGGUTOR] = 0x888, + [SPECIES_CUBONE] = 0x888, + [SPECIES_MAROWAK] = 0x888, + [SPECIES_HITMONLEE] = 0x88, + [SPECIES_HITMONCHAN] = 0x886, + [SPECIES_LICKITUNG] = 0x888, + [SPECIES_KOFFING] = 0x88, + [SPECIES_WEEZING] = 0x88, + [SPECIES_RHYHORN] = 0x88, + [SPECIES_RHYDON] = 0x88, + [SPECIES_CHANSEY] = 0x888, + [SPECIES_TANGELA] = 0x886, + [SPECIES_KANGASKHAN] = 0x888, + [SPECIES_HORSEA] = 0x88, + [SPECIES_SEADRA] = 0x88, + [SPECIES_GOLDEEN] = 0x886, + [SPECIES_SEAKING] = 0x886, + [SPECIES_STARYU] = 0x88, + [SPECIES_STARMIE] = 0x88, + [SPECIES_MR_MIME] = 0x888, + [SPECIES_SCYTHER] = 0x886, + [SPECIES_JYNX] = 0x886, + [SPECIES_ELECTABUZZ] = 0x888, + [SPECIES_MAGMAR] = 0x888, + [SPECIES_PINSIR] = 0x88, + [SPECIES_TAUROS] = 0x888, + [SPECIES_MAGIKARP] = 0x886, + [SPECIES_GYARADOS] = 0x886, + [SPECIES_LAPRAS] = 0x888, + [SPECIES_DITTO] = 0x886, + [SPECIES_EEVEE] = 0x888, + [SPECIES_VAPOREON] = 0x888, + [SPECIES_JOLTEON] = 0x886, + [SPECIES_FLAREON] = 0x888, + [SPECIES_PORYGON] = 0x888, + [SPECIES_OMANYTE] = 0x888, + [SPECIES_OMASTAR] = 0x888, + [SPECIES_KABUTO] = 0x888, + [SPECIES_KABUTOPS] = 0x888, + [SPECIES_AERODACTYL] = 0x888, + [SPECIES_SNORLAX] = 0x888, + [SPECIES_ARTICUNO] = 0x888, + [SPECIES_ZAPDOS] = 0x888, + [SPECIES_MOLTRES] = 0x888, + [SPECIES_DRATINI] = 0x888, + [SPECIES_DRAGONAIR] = 0x888, + [SPECIES_DRAGONITE] = 0x888, + [SPECIES_MEWTWO] = 0x88, + [SPECIES_MEW] = 0x888, + [SPECIES_CHIKORITA] = 0x888, + [SPECIES_BAYLEEF] = 0x888, + [SPECIES_MEGANIUM] = 0x888, + [SPECIES_CYNDAQUIL] = 0x888, + [SPECIES_QUILAVA] = 0x88, + [SPECIES_TYPHLOSION] = 0x888, + [SPECIES_TOTODILE] = 0x888, + [SPECIES_CROCONAW] = 0x886, + [SPECIES_FERALIGATR] = 0x886, + [SPECIES_SENTRET] = 0x888, + [SPECIES_FURRET] = 0x888, + [SPECIES_HOOTHOOT] = 0x888, + [SPECIES_NOCTOWL] = 0x888, + [SPECIES_LEDYBA] = 0x888, + [SPECIES_LEDIAN] = 0x888, + [SPECIES_SPINARAK] = 0x886, + [SPECIES_ARIADOS] = 0x888, + [SPECIES_CROBAT] = 0x886, + [SPECIES_CHINCHOU] = 0x88, + [SPECIES_LANTURN] = 0x88, + [SPECIES_PICHU] = 0x88, + [SPECIES_CLEFFA] = 0x888, + [SPECIES_IGGLYBUFF] = 0x88, + [SPECIES_TOGEPI] = 0x888, + [SPECIES_TOGETIC] = 0x888, + [SPECIES_NATU] = 0x88, + [SPECIES_XATU] = 0x88, + [SPECIES_MAREEP] = 0x888, + [SPECIES_FLAAFFY] = 0x886, + [SPECIES_AMPHAROS] = 0x888, + [SPECIES_BELLOSSOM] = 0x886, + [SPECIES_MARILL] = 0x886, + [SPECIES_AZUMARILL] = 0x886, + [SPECIES_SUDOWOODO] = 0x888, + [SPECIES_POLITOED] = 0x888, + [SPECIES_HOPPIP] = 0x888, + [SPECIES_SKIPLOOM] = 0x88, + [SPECIES_JUMPLUFF] = 0x888, + [SPECIES_AIPOM] = 0x888, + [SPECIES_SUNKERN] = 0x888, + [SPECIES_SUNFLORA] = 0x88, + [SPECIES_YANMA] = 0x888, + [SPECIES_WOOPER] = 0x888, + [SPECIES_QUAGSIRE] = 0x888, + [SPECIES_ESPEON] = 0x888, + [SPECIES_UMBREON] = 0x888, + [SPECIES_MURKROW] = 0x888, + [SPECIES_SLOWKING] = 0x888, + [SPECIES_MISDREAVUS] = 0x888, + [SPECIES_UNOWN] = 0x888, + [SPECIES_WOBBUFFET] = 0x88, + [SPECIES_GIRAFARIG] = 0x88, + [SPECIES_PINECO] = 0x886, + [SPECIES_FORRETRESS] = 0x888, + [SPECIES_DUNSPARCE] = 0x888, + [SPECIES_GLIGAR] = 0x888, + [SPECIES_STEELIX] = 0x888, + [SPECIES_SNUBBULL] = 0x888, + [SPECIES_GRANBULL] = 0x888, + [SPECIES_QWILFISH] = 0x888, + [SPECIES_SCIZOR] = 0x888, + [SPECIES_SHUCKLE] = 0x888, + [SPECIES_HERACROSS] = 0x88, + [SPECIES_SNEASEL] = 0x888, + [SPECIES_TEDDIURSA] = 0x886, + [SPECIES_URSARING] = 0x888, + [SPECIES_SLUGMA] = 0x88, + [SPECIES_MAGCARGO] = 0x88, + [SPECIES_SWINUB] = 0x888, + [SPECIES_PILOSWINE] = 0x888, + [SPECIES_CORSOLA] = 0x88, + [SPECIES_REMORAID] = 0x888, + [SPECIES_OCTILLERY] = 0x888, + [SPECIES_DELIBIRD] = 0x888, + [SPECIES_MANTINE] = 0x888, + [SPECIES_SKARMORY] = 0x88, + [SPECIES_HOUNDOUR] = 0x888, + [SPECIES_HOUNDOOM] = 0x888, + [SPECIES_KINGDRA] = 0x88, + [SPECIES_PHANPY] = 0x88, + [SPECIES_DONPHAN] = 0x88, + [SPECIES_PORYGON2] = 0x888, + [SPECIES_STANTLER] = 0x88, + [SPECIES_SMEARGLE] = 0x888, + [SPECIES_TYROGUE] = 0x888, + [SPECIES_HITMONTOP] = 0x888, + [SPECIES_SMOOCHUM] = 0x888, + [SPECIES_ELEKID] = 0x888, + [SPECIES_MAGBY] = 0x888, + [SPECIES_MILTANK] = 0x888, + [SPECIES_BLISSEY] = 0x888, + [SPECIES_RAIKOU] = 0x888, + [SPECIES_ENTEI] = 0x888, + [SPECIES_SUICUNE] = 0x888, + [SPECIES_LARVITAR] = 0x888, + [SPECIES_PUPITAR] = 0x888, + [SPECIES_TYRANITAR] = 0x888, + [SPECIES_LUGIA] = 0x886, + [SPECIES_HO_OH] = 0x888, + [SPECIES_CELEBI] = 0x888, + [SPECIES_OLD_UNOWN_B] = 0x888, + [SPECIES_OLD_UNOWN_C] = 0x888, + [SPECIES_OLD_UNOWN_D] = 0x888, + [SPECIES_OLD_UNOWN_E] = 0x888, + [SPECIES_OLD_UNOWN_F] = 0x888, + [SPECIES_OLD_UNOWN_G] = 0x888, + [SPECIES_OLD_UNOWN_H] = 0x888, + [SPECIES_OLD_UNOWN_I] = 0x888, + [SPECIES_OLD_UNOWN_J] = 0x888, + [SPECIES_OLD_UNOWN_K] = 0x888, + [SPECIES_OLD_UNOWN_L] = 0x888, + [SPECIES_OLD_UNOWN_M] = 0x888, + [SPECIES_OLD_UNOWN_N] = 0x888, + [SPECIES_OLD_UNOWN_O] = 0x888, + [SPECIES_OLD_UNOWN_P] = 0x888, + [SPECIES_OLD_UNOWN_Q] = 0x888, + [SPECIES_OLD_UNOWN_R] = 0x888, + [SPECIES_OLD_UNOWN_S] = 0x888, + [SPECIES_OLD_UNOWN_T] = 0x888, + [SPECIES_OLD_UNOWN_U] = 0x888, + [SPECIES_OLD_UNOWN_V] = 0x888, + [SPECIES_OLD_UNOWN_W] = 0x888, + [SPECIES_OLD_UNOWN_X] = 0x888, + [SPECIES_OLD_UNOWN_Y] = 0x888, + [SPECIES_OLD_UNOWN_Z] = 0x888, + [SPECIES_TREECKO] = 0x886, + [SPECIES_GROVYLE] = 0x886, + [SPECIES_SCEPTILE] = 0x886, + [SPECIES_TORCHIC] = 0x88, + [SPECIES_COMBUSKEN] = 0x88, + [SPECIES_BLAZIKEN] = 0x88, + [SPECIES_MUDKIP] = 0x886, + [SPECIES_MARSHTOMP] = 0x88, + [SPECIES_SWAMPERT] = 0x886, + [SPECIES_POOCHYENA] = 0x886, + [SPECIES_MIGHTYENA] = 0x886, + [SPECIES_ZIGZAGOON] = 0x88, + [SPECIES_LINOONE] = 0x886, + [SPECIES_WURMPLE] = 0x88, + [SPECIES_SILCOON] = 0x88, + [SPECIES_BEAUTIFLY] = 0x88, + [SPECIES_CASCOON] = 0x88, + [SPECIES_DUSTOX] = 0x88, + [SPECIES_LOTAD] = 0x886, + [SPECIES_LOMBRE] = 0x886, + [SPECIES_LUDICOLO] = 0x886, + [SPECIES_SEEDOT] = 0x888, + [SPECIES_NUZLEAF] = 0x888, + [SPECIES_SHIFTRY] = 0x886, + [SPECIES_NINCADA] = 0x886, + [SPECIES_NINJASK] = 0x886, + [SPECIES_SHEDINJA] = 0x886, + [SPECIES_TAILLOW] = 0x88, + [SPECIES_SWELLOW] = 0x88, + [SPECIES_SHROOMISH] = 0x886, + [SPECIES_BRELOOM] = 0x886, + [SPECIES_SPINDA] = 0x1882, + [SPECIES_WINGULL] = 0x88, + [SPECIES_PELIPPER] = 0x88, + [SPECIES_SURSKIT] = 0x88, + [SPECIES_MASQUERAIN] = 0x88, + [SPECIES_WAILMER] = 0x886, + [SPECIES_WAILORD] = 0x886, + [SPECIES_SKITTY] = 0x886, + [SPECIES_DELCATTY] = 0x88, + [SPECIES_KECLEON] = 0x88, + [SPECIES_BALTOY] = 0x88, + [SPECIES_CLAYDOL] = 0x88, + [SPECIES_NOSEPASS] = 0x886, + [SPECIES_TORKOAL] = 0x88, + [SPECIES_SABLEYE] = 0x886, + [SPECIES_BARBOACH] = 0x88, + [SPECIES_WHISCASH] = 0x88, + [SPECIES_LUVDISC] = 0x88, + [SPECIES_CORPHISH] = 0x88, + [SPECIES_CRAWDAUNT] = 0x88, + [SPECIES_FEEBAS] = 0x88, + [SPECIES_MILOTIC] = 0x88, + [SPECIES_CARVANHA] = 0x886, + [SPECIES_SHARPEDO] = 0x886, + [SPECIES_TRAPINCH] = 0x88, + [SPECIES_VIBRAVA] = 0x88, + [SPECIES_FLYGON] = 0x88, + [SPECIES_MAKUHITA] = 0x886, + [SPECIES_HARIYAMA] = 0x886, + [SPECIES_ELECTRIKE] = 0x88, + [SPECIES_MANECTRIC] = 0x88, + [SPECIES_NUMEL] = 0x88, + [SPECIES_CAMERUPT] = 0x88, + [SPECIES_SPHEAL] = 0x88, + [SPECIES_SEALEO] = 0x88, + [SPECIES_WALREIN] = 0x88, + [SPECIES_CACNEA] = 0x88, + [SPECIES_CACTURNE] = 0x88, + [SPECIES_SNORUNT] = 0x88, + [SPECIES_GLALIE] = 0x88, + [SPECIES_LUNATONE] = 0x88, + [SPECIES_SOLROCK] = 0x88, + [SPECIES_AZURILL] = 0x886, + [SPECIES_SPOINK] = 0x88, + [SPECIES_GRUMPIG] = 0x88, + [SPECIES_PLUSLE] = 0x886, + [SPECIES_MINUN] = 0x886, + [SPECIES_MAWILE] = 0x886, + [SPECIES_MEDITITE] = 0x886, + [SPECIES_MEDICHAM] = 0x886, + [SPECIES_SWABLU] = 0x88, + [SPECIES_ALTARIA] = 0x88, + [SPECIES_WYNAUT] = 0x88, + [SPECIES_DUSKULL] = 0x88, + [SPECIES_DUSCLOPS] = 0x88, + [SPECIES_ROSELIA] = 0x886, + [SPECIES_SLAKOTH] = 0x886, + [SPECIES_VIGOROTH] = 0x886, + [SPECIES_SLAKING] = 0x886, + [SPECIES_GULPIN] = 0x88, + [SPECIES_SWALOT] = 0x886, + [SPECIES_TROPIUS] = 0x88, + [SPECIES_WHISMUR] = 0x886, + [SPECIES_LOUDRED] = 0x886, + [SPECIES_EXPLOUD] = 0x886, + [SPECIES_CLAMPERL] = 0x88, + [SPECIES_HUNTAIL] = 0x88, + [SPECIES_GOREBYSS] = 0x88, + [SPECIES_ABSOL] = 0x88, + [SPECIES_SHUPPET] = 0x88, + [SPECIES_BANETTE] = 0x88, + [SPECIES_SEVIPER] = 0x88, + [SPECIES_ZANGOOSE] = 0x88, + [SPECIES_RELICANTH] = 0x88, + [SPECIES_ARON] = 0x886, + [SPECIES_LAIRON] = 0x886, + [SPECIES_AGGRON] = 0x886, + [SPECIES_CASTFORM] = 0x888, + [SPECIES_VOLBEAT] = 0x886, + [SPECIES_ILLUMISE] = 0x886, + [SPECIES_LILEEP] = 0x88, + [SPECIES_CRADILY] = 0x88, + [SPECIES_ANORITH] = 0x88, + [SPECIES_ARMALDO] = 0x88, + [SPECIES_RALTS] = 0x886, + [SPECIES_KIRLIA] = 0x886, + [SPECIES_GARDEVOIR] = 0x88, + [SPECIES_BAGON] = 0x88, + [SPECIES_SHELGON] = 0x88, + [SPECIES_SALAMENCE] = 0x88, + [SPECIES_BELDUM] = 0x88, + [SPECIES_METANG] = 0x88, + [SPECIES_METAGROSS] = 0x88, + [SPECIES_REGIROCK] = 0x88, + [SPECIES_REGICE] = 0x88, + [SPECIES_REGISTEEL] = 0x88, + [SPECIES_KYOGRE] = 0x88, + [SPECIES_GROUDON] = 0x88, + [SPECIES_RAYQUAZA] = 0x88, + [SPECIES_LATIAS] = 0x88, + [SPECIES_LATIOS] = 0x88, + [SPECIES_JIRACHI] = 0x88, + [SPECIES_DEOXYS] = 0x88, + [SPECIES_CHIMECHO] = 0x88, + [SPECIES_EGG] = 0x88, + [SPECIES_UNOWN_B] = 0x888, + [SPECIES_UNOWN_C] = 0x888, + [SPECIES_UNOWN_D] = 0x888, + [SPECIES_UNOWN_E] = 0x888, + [SPECIES_UNOWN_F] = 0x888, + [SPECIES_UNOWN_G] = 0x888, + [SPECIES_UNOWN_H] = 0x888, + [SPECIES_UNOWN_I] = 0x888, + [SPECIES_UNOWN_J] = 0x888, + [SPECIES_UNOWN_K] = 0x888, + [SPECIES_UNOWN_L] = 0x888, + [SPECIES_UNOWN_M] = 0x888, + [SPECIES_UNOWN_N] = 0x888, + [SPECIES_UNOWN_O] = 0x888, + [SPECIES_UNOWN_P] = 0x888, + [SPECIES_UNOWN_Q] = 0x888, + [SPECIES_UNOWN_R] = 0x888, + [SPECIES_UNOWN_S] = 0x888, + [SPECIES_UNOWN_T] = 0x888, + [SPECIES_UNOWN_U] = 0x888, + [SPECIES_UNOWN_V] = 0x888, + [SPECIES_UNOWN_W] = 0x888, + [SPECIES_UNOWN_X] = 0x888, + [SPECIES_UNOWN_Y] = 0x888, + [SPECIES_UNOWN_Z] = 0x888, + [SPECIES_UNOWN_EMARK] = 0x888, + [SPECIES_UNOWN_QMARK] = 0x888, +}; diff --git a/src/data/text/abilities.h b/src/data/text/abilities.h index fdecea8a8a..c2c17b7371 100644 --- a/src/data/text/abilities.h +++ b/src/data/text/abilities.h @@ -1,5 +1,5 @@ static const u8 sNoneDescription[] = _("No special ability."); -static const u8 sStenchDescription[] = _("Helps repel wild POKéMON."); +static const u8 sStenchDescription[] = _("May cause a foe to flinch."); static const u8 sDrizzleDescription[] = _("Summons rain in battle."); static const u8 sSpeedBoostDescription[] = _("Gradually boosts Speed."); static const u8 sBattleArmorDescription[] = _("Blocks critical hits."); @@ -40,7 +40,7 @@ static const u8 sPoisonPointDescription[] = _("Poisons foe on contact."); static const u8 sInnerFocusDescription[] = _("Prevents flinching."); static const u8 sMagmaArmorDescription[] = _("Prevents freezing."); static const u8 sWaterVeilDescription[] = _("Prevents burns."); -static const u8 sMagnetPullDescription[] = _("Traps Steel-type POKéMON."); +static const u8 sMagnetPullDescription[] = _("Traps Steel-type Pokémon."); static const u8 sSoundproofDescription[] = _("Avoids sound-based moves."); static const u8 sRainDishDescription[] = _("Slight HP recovery in rain."); static const u8 sSandStreamDescription[] = _("Summons a sandstorm."); @@ -255,7 +255,7 @@ static const u8 sGrimNeighDescription[] = _("KOs boost Sp. Atk stat."); static const u8 sAsOneIceRiderDescription[] = _("Unnerve and Chilling Neigh."); static const u8 sAsOneShadowRiderDescription[] = _("Unnerve and Grim Neigh."); -const u8 gAbilityNames[ABILITIES_COUNT_GEN8][ABILITY_NAME_LENGTH + 1] = +const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1] = { [ABILITY_NONE] = _("-------"), [ABILITY_STENCH] = _("Stench"), @@ -527,7 +527,7 @@ const u8 gAbilityNames[ABILITIES_COUNT_GEN8][ABILITY_NAME_LENGTH + 1] = [ABILITY_AS_ONE_SHADOW_RIDER] = _("As One"), }; -const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT_GEN8] = +const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT] = { [ABILITY_NONE] = sNoneDescription, [ABILITY_STENCH] = sStenchDescription, diff --git a/src/data/text/gift_ribbon_descriptions.h b/src/data/text/gift_ribbon_descriptions.h index ea108be18e..a95f9729d9 100644 --- a/src/data/text/gift_ribbon_descriptions.h +++ b/src/data/text/gift_ribbon_descriptions.h @@ -46,7 +46,7 @@ const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _("for a loved POKéMON.") const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _("RIBBON that shows"); const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _("love for POKéMON."); -const u8 *const gGiftRibbonDescriptionPointers[][2] = +const u8 *const gGiftRibbonDescriptionPointers[MAX_GIFT_RIBBON][2] = { {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion}, {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion}, diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h index d1d52f97cd..e204fb1961 100644 --- a/src/data/text/move_descriptions.h +++ b/src/data/text/move_descriptions.h @@ -55,7 +55,7 @@ static const u8 sRazorWindDescription[] = _( static const u8 sSwordsDanceDescription[] = _( "A fighting dance that\n" - "sharply raises ATTACK."); + "sharply raises Attack."); static const u8 sCutDescription[] = _( "Cuts the foe with sharp\n" @@ -155,7 +155,7 @@ static const u8 sDoubleEdgeDescription[] = _( static const u8 sTailWhipDescription[] = _( "Wags the tail to lower the\n" - "foe's DEFENSE."); + "foe's Defense."); static const u8 sPoisonStingDescription[] = _( "A toxic attack with barbs,\n" @@ -171,7 +171,7 @@ static const u8 sPinMissileDescription[] = _( static const u8 sLeerDescription[] = _( "Frightens the foe with a\n" - "leer to lower DEFENSE."); + "leer to lower Defense."); static const u8 sBiteDescription[] = _( "Bites with vicious fangs.\n" @@ -179,7 +179,7 @@ static const u8 sBiteDescription[] = _( static const u8 sGrowlDescription[] = _( "Growls cutely to reduce the\n" - "foe's ATTACK."); + "foe's Attack."); static const u8 sRoarDescription[] = _( "Makes the foe flee to end\n" @@ -203,7 +203,7 @@ static const u8 sDisableDescription[] = _( static const u8 sAcidDescription[] = _( "Sprays a hide-melting acid.\n" - "May lower DEFENSE."); + "May lower Defense."); static const u8 sEmberDescription[] = _( "A weak fire attack that may\n" @@ -243,11 +243,11 @@ static const u8 sPsybeamDescription[] = _( static const u8 sBubbleBeamDescription[] = _( "Forcefully sprays bubbles\n" - "that may lower SPEED."); + "that may lower Speed."); static const u8 sAuroraBeamDescription[] = _( "Fires a rainbow-colored\n" - "beam that may lower ATTACK."); + "beam that may lower Attack."); static const u8 sHyperBeamDescription[] = _( "Powerful, but leaves the\n" @@ -295,7 +295,7 @@ static const u8 sLeechSeedDescription[] = _( static const u8 sGrowthDescription[] = _( "Forces the body to grow\n" - "and heightens SP. ATK."); + "and heightens Sp. Atk."); static const u8 sRazorLeafDescription[] = _( "Cuts the enemy with leaves.\n" @@ -323,7 +323,7 @@ static const u8 sPetalDanceDescription[] = _( static const u8 sStringShotDescription[] = _( "Binds the foe with string\n" - "to reduce its SPEED."); + "to reduce its Speed."); static const u8 sDragonRageDescription[] = _( "Launches shock waves that\n" @@ -375,7 +375,7 @@ static const u8 sConfusionDescription[] = _( static const u8 sPsychicDescription[] = _( "A powerful psychic attack\n" - "that may lower SP. DEF."); + "that may lower Sp. Def."); static const u8 sHypnosisDescription[] = _( "A hypnotizing move that\n" @@ -383,18 +383,18 @@ static const u8 sHypnosisDescription[] = _( static const u8 sMeditateDescription[] = _( "Meditates in a peaceful\n" - "fashion to raise ATTACK."); + "fashion to raise Attack."); static const u8 sAgilityDescription[] = _( "Relaxes the body to sharply\n" - "boost SPEED."); + "boost Speed."); static const u8 sQuickAttackDescription[] = _( "An extremely fast attack\n" "that always strikes first."); static const u8 sRageDescription[] = _( - "Raises the user's ATTACK\n" + "Raises the user's Attack\n" "every time it is hit."); static const u8 sTeleportDescription[] = _( @@ -411,7 +411,7 @@ static const u8 sMimicDescription[] = _( static const u8 sScreechDescription[] = _( "Emits a screech to sharply\n" - "reduce the foe's DEFENSE."); + "reduce the foe's Defense."); static const u8 sDoubleTeamDescription[] = _( "Creates illusory copies to\n" @@ -423,7 +423,7 @@ static const u8 sRecoverDescription[] = _( static const u8 sHardenDescription[] = _( "Stiffens the body's \n" - "muscles to raise DEFENSE."); + "muscles to raise Defense."); static const u8 sMinimizeDescription[] = _( "Minimizes the user's size\n" @@ -439,19 +439,19 @@ static const u8 sConfuseRayDescription[] = _( static const u8 sWithdrawDescription[] = _( "Withdraws the body into its\n" - "hard shell to raise DEFENSE."); + "hard shell to raise Defense."); static const u8 sDefenseCurlDescription[] = _( "Curls up to conceal weak\n" - "spots and raise DEFENSE."); + "spots and raise Defense."); static const u8 sBarrierDescription[] = _( "Creates a barrier that\n" - "sharply raises DEFENSE."); + "sharply raises Defense."); static const u8 sLightScreenDescription[] = _( "Creates a wall of light that\n" - "lowers SP. ATK damage."); + "lowers Sp. Atk damage."); static const u8 sHazeDescription[] = _( "Creates a black haze that\n" @@ -471,7 +471,7 @@ static const u8 sBideDescription[] = _( static const u8 sMetronomeDescription[] = _( "Waggles a finger to use any\n" - "POKéMON move at random."); + "Pokémon move at random."); static const u8 sMirrorMoveDescription[] = _( "Counters the foe's attack\n" @@ -527,11 +527,11 @@ static const u8 sSpikeCannonDescription[] = _( static const u8 sConstrictDescription[] = _( "Constricts to inflict pain.\n" - "May lower SPEED."); + "May lower Speed."); static const u8 sAmnesiaDescription[] = _( "Forgets about something\n" - "and sharply raises SP. DEF."); + "and sharply raises Sp. Def."); static const u8 sKinesisDescription[] = _( "Distracts the foe.\n" @@ -579,7 +579,7 @@ static const u8 sTransformDescription[] = _( static const u8 sBubbleDescription[] = _( "An attack using bubbles.\n" - "May lower the foe's SPEED."); + "May lower the foe's Speed."); static const u8 sDizzyPunchDescription[] = _( "A rhythmic punch that may\n" @@ -603,7 +603,7 @@ static const u8 sSplashDescription[] = _( static const u8 sAcidArmorDescription[] = _( "Liquifies the user's body\n" - "to sharply raise DEFENSE."); + "to sharply raise Defense."); static const u8 sCrabhammerDescription[] = _( "Hammers with a pincer. Has a\n" @@ -635,7 +635,7 @@ static const u8 sHyperFangDescription[] = _( static const u8 sSharpenDescription[] = _( "Reduces the polygon count\n" - "and raises ATTACK."); + "and raises Attack."); static const u8 sConversionDescription[] = _( "Changes the user's type\n" @@ -711,7 +711,7 @@ static const u8 sAeroblastDescription[] = _( static const u8 sCottonSporeDescription[] = _( "Spores cling to the foe,\n" - "sharply reducing SPEED."); + "sharply reducing Speed."); static const u8 sReversalDescription[] = _( "Inflicts more damage when\n" @@ -735,7 +735,7 @@ static const u8 sMachPunchDescription[] = _( static const u8 sScaryFaceDescription[] = _( "Frightens with a scary face\n" - "to sharply reduce SPEED."); + "to sharply reduce Speed."); static const u8 sFeintAttackDescription[] = _( "Draws the foe close, then\n" @@ -746,7 +746,7 @@ static const u8 sSweetKissDescription[] = _( "look. May cause confusion."); static const u8 sBellyDrumDescription[] = _( - "Maximizes ATTACK while\n" + "Maximizes Attack while\n" "sacrificing HP."); static const u8 sSludgeBombDescription[] = _( @@ -778,12 +778,12 @@ static const u8 sDestinyBondDescription[] = _( "is also made to faint."); static const u8 sPerishSongDescription[] = _( - "Any POKéMON hearing this\n" + "Any Pokémon hearing this\n" "song faints in 3 turns."); static const u8 sIcyWindDescription[] = _( "A chilling attack that\n" - "lowers the foe's SPEED."); + "lowers the foe's Speed."); static const u8 sDetectDescription[] = _( "Evades attack, but may fail\n" @@ -815,7 +815,7 @@ static const u8 sEndureDescription[] = _( static const u8 sCharmDescription[] = _( "Charms the foe and sharply\n" - "reduces its ATTACK."); + "reduces its Attack."); static const u8 sRolloutDescription[] = _( "An attack lasting 5 turns\n" @@ -827,7 +827,7 @@ static const u8 sFalseSwipeDescription[] = _( static const u8 sSwaggerDescription[] = _( "Confuses the foe, but also\n" - "sharply raises ATTACK."); + "sharply raises Attack."); static const u8 sMilkDrinkDescription[] = _( "Recovers up to half the\n" @@ -871,7 +871,7 @@ static const u8 sPresentDescription[] = _( static const u8 sFrustrationDescription[] = _( "An attack that is stronger\n" - "if the TRAINER is disliked."); + "if the Trainer is disliked."); static const u8 sSafeguardDescription[] = _( "A mystical force prevents\n" @@ -923,11 +923,11 @@ static const u8 sSweetScentDescription[] = _( static const u8 sIronTailDescription[] = _( "Attacks with a rock-hard\n" - "tail. May lower DEFENSE."); + "tail. May lower Defense."); static const u8 sMetalClawDescription[] = _( "A claw attack that may\n" - "raise the user's ATTACK."); + "raise the user's Attack."); static const u8 sVitalThrowDescription[] = _( "Makes the user's move last,\n" @@ -958,16 +958,16 @@ static const u8 sTwisterDescription[] = _( "to tear at the foe."); static const u8 sRainDanceDescription[] = _( - "Boosts the power of WATER-\n" + "Boosts the power of Water-\n" "type moves for 5 turns."); static const u8 sSunnyDayDescription[] = _( - "Boosts the power of FIRE-\n" + "Boosts the power of Fire-\n" "type moves for 5 turns."); static const u8 sCrunchDescription[] = _( "Crunches with sharp fangs.\n" - "May lower DEFENSE."); + "May lower Defense."); static const u8 sMirrorCoatDescription[] = _( "Counters the foe's special\n" @@ -987,7 +987,7 @@ static const u8 sAncientPowerDescription[] = _( static const u8 sShadowBallDescription[] = _( "Hurls a black blob that may\n" - "lower the foe's SP. DEF."); + "lower the foe's Sp. Def."); static const u8 sFutureSightDescription[] = _( "Heightens inner power to\n" @@ -995,14 +995,14 @@ static const u8 sFutureSightDescription[] = _( static const u8 sRockSmashDescription[] = _( "A rock-crushing attack\n" - "that may lower DEFENSE."); + "that may lower Defense."); static const u8 sWhirlpoolDescription[] = _( "Traps and hurts the foe in\n" "a whirlpool for 2 to 5 turns."); static const u8 sBeatUpDescription[] = _( - "Summons party POKéMON to\n" + "Summons party Pokémon to\n" "join in the attack."); static const u8 sFakeOutDescription[] = _( @@ -1039,7 +1039,7 @@ static const u8 sTormentDescription[] = _( static const u8 sFlatterDescription[] = _( "Confuses the foe, but\n" - "raises its SP. ATK."); + "raises its Sp. Atk."); static const u8 sWillOWispDescription[] = _( "Inflicts a burn on the foe\n" @@ -1050,7 +1050,7 @@ static const u8 sMementoDescription[] = _( "the foe's abilities."); static const u8 sFacadeDescription[] = _( - "Boosts ATTACK when burned,\n" + "Boosts Attack when burned,\n" "paralyzed, or poisoned."); static const u8 sFocusPunchDescription[] = _( @@ -1170,27 +1170,27 @@ static const u8 sArmThrustDescription[] = _( "strike the foe 2 to 5 times."); static const u8 sCamouflageDescription[] = _( - "Alters the POKéMON's type\n" + "Alters the Pokémon's type\n" "depending on the location."); static const u8 sTailGlowDescription[] = _( "Flashes a light that sharply\n" - "raises SP. ATK."); + "raises Sp. Atk."); static const u8 sLusterPurgeDescription[] = _( "Attacks with a burst of\n" - "light. May lower SP. DEF."); + "light. May lower Sp. Def."); static const u8 sMistBallDescription[] = _( "Attacks with a flurry of\n" - "down. May lower SP. ATK."); + "down. May lower Sp. Atk."); static const u8 sFeatherDanceDescription[] = _( "Envelops the foe with down\n" - "to sharply reduce ATTACK."); + "to sharply reduce Attack."); static const u8 sTeeterDanceDescription[] = _( - "Confuses all POKéMON on\n" + "Confuses all Pokémon on\n" "the scene."); static const u8 sBlazeKickDescription[] = _( @@ -1223,7 +1223,7 @@ static const u8 sPoisonFangDescription[] = _( static const u8 sCrushClawDescription[] = _( "Tears at the foe with sharp\n" - "claws. May lower DEFENSE."); + "claws. May lower Defense."); static const u8 sBlastBurnDescription[] = _( "Powerful, but leaves the\n" @@ -1235,7 +1235,7 @@ static const u8 sHydroCannonDescription[] = _( static const u8 sMeteorMashDescription[] = _( "Fires a meteor-like punch.\n" - "May raise ATTACK."); + "May raise Attack."); static const u8 sAstonishDescription[] = _( "An attack that may shock\n" @@ -1251,7 +1251,7 @@ static const u8 sAromatherapyDescription[] = _( static const u8 sFakeTearsDescription[] = _( "Feigns crying to sharply\n" - "lower the foe's SP. DEF."); + "lower the foe's Sp. Def."); static const u8 sAirCutterDescription[] = _( "Hacks with razorlike wind.\n" @@ -1259,7 +1259,7 @@ static const u8 sAirCutterDescription[] = _( static const u8 sOverheatDescription[] = _( "Allows a full-power attack,\n" - "but sharply lowers SP. ATK."); + "but sharply lowers Sp. Atk."); static const u8 sOdorSleuthDescription[] = _( "Negates the foe's efforts\n" @@ -1267,7 +1267,7 @@ static const u8 sOdorSleuthDescription[] = _( static const u8 sRockTombDescription[] = _( "Stops the foe from moving\n" - "with rocks and cuts SPEED."); + "with rocks and cuts Speed."); static const u8 sSilverWindDescription[] = _( "A powdery attack that may\n" @@ -1275,7 +1275,7 @@ static const u8 sSilverWindDescription[] = _( static const u8 sMetalSoundDescription[] = _( "Emits a horrible screech\n" - "that sharply lowers SP. DEF."); + "that sharply lowers Sp. Def."); static const u8 sGrassWhistleDescription[] = _( "Lulls the foe into sleep\n" @@ -1283,10 +1283,10 @@ static const u8 sGrassWhistleDescription[] = _( static const u8 sTickleDescription[] = _( "Makes the foe laugh to\n" - "lower ATTACK and DEFENSE."); + "lower Attack and Defense."); static const u8 sCosmicPowerDescription[] = _( - "Raises DEFENSE and SP. DEF\n" + "Raises Defense and Sp. Def\n" "with a mystic power."); static const u8 sWaterSpoutDescription[] = _( @@ -1335,7 +1335,7 @@ static const u8 sIcicleSpearDescription[] = _( static const u8 sIronDefenseDescription[] = _( "Hardens the body's surface\n" - "to sharply raise DEFENSE."); + "to sharply raise Defense."); static const u8 sBlockDescription[] = _( "Blocks the foe's way to\n" @@ -1343,7 +1343,7 @@ static const u8 sBlockDescription[] = _( static const u8 sHowlDescription[] = _( "Howls to raise the spirit\n" - "and boosts ATTACK."); + "and boosts Attack."); static const u8 sDragonClawDescription[] = _( "Slashes the foe with sharp\n" @@ -1355,7 +1355,7 @@ static const u8 sFrenzyPlantDescription[] = _( static const u8 sBulkUpDescription[] = _( "Bulks up the body to boost\n" - "both ATTACK and DEFENSE."); + "both Attack and Defense."); static const u8 sBounceDescription[] = _( "Bounces up, then down the\n" @@ -1363,7 +1363,7 @@ static const u8 sBounceDescription[] = _( static const u8 sMudShotDescription[] = _( "Hurls mud at the foe and\n" - "reduces SPEED."); + "reduces Speed."); static const u8 sPoisonTailDescription[] = _( "Has a high critical-hit\n" @@ -1386,7 +1386,7 @@ static const u8 sWaterSportDescription[] = _( "raise resistance to fire."); static const u8 sCalmMindDescription[] = _( - "Raises SP. ATK and SP. DEF\n" + "Raises Sp. Atk and Sp. Def\n" "by focusing the mind."); static const u8 sLeafBladeDescription[] = _( @@ -1395,7 +1395,7 @@ static const u8 sLeafBladeDescription[] = _( static const u8 sDragonDanceDescription[] = _( "A mystical dance that ups\n" - "ATTACK and SPEED."); + "Attack and Speed."); static const u8 sRockBlastDescription[] = _( "Hurls boulders at the foe\n" @@ -1415,7 +1415,7 @@ static const u8 sDoomDesireDescription[] = _( static const u8 sPsychoBoostDescription[] = _( "Allows a full-power attack,\n" - "but sharply lowers SP. ATK."); + "but sharply lowers Sp. Atk."); static const u8 sROOSTDescription[] = _( "Restores the user's HP by\n" @@ -1426,8 +1426,8 @@ static const u8 sGRAVITYDescription[] = _( "negating levitation."); static const u8 sMIRACLE_EYEDescription[] = _( - "Makes GHOSTS and evasive\n" - "foes easier to hit."); + "Negate evasiveness and\n" + "Dark-type's immunities."); static const u8 sWAKE_UP_SLAPDescription[] = _( "Powerful against sleeping\n" @@ -1718,7 +1718,7 @@ static const u8 sDEFOGDescription[] = _( "lowers evasion."); static const u8 sTRICK_ROOMDescription[] = _( - "Slower POKéMON get to move\n" + "Slower Pokémon get to move\n" "first for 5 turns."); static const u8 sDRACO_METEORDescription[] = _( @@ -2183,7 +2183,7 @@ static const u8 sBELCHDescription[] = _( static const u8 sROTOTILLERDescription[] = _( "Ups the Attack and Sp. Atk\n" - "of Grass-type POKéMON."); + "of Grass-type Pokémon."); static const u8 sSTICKY_WEBDescription[] = _( "Weaves a sticky net that\n" @@ -2243,7 +2243,7 @@ static const u8 sCRAFTY_SHIELDDescription[] = _( static const u8 sFLOWER_SHIELDDescription[] = _( "Raises the Defense of\n" - "Grass-type POKéMON."); + "Grass-type Pokémon."); static const u8 sGRASSY_TERRAINDescription[] = _( "The ground turns to grass\n" @@ -2315,7 +2315,7 @@ static const u8 sSPIKY_SHIELDDescription[] = _( static const u8 sAROMATIC_MISTDescription[] = _( "Raises the Sp. Def of a\n" - "partner POKéMON."); + "partner Pokémon."); static const u8 sEERIE_IMPULSEDescription[] = _( "Exposes the foe to a pulse\n" @@ -2431,7 +2431,7 @@ static const u8 sSPARKLING_ARIADescription[] = _( static const u8 sICE_HAMMERDescription[] = _( "Swings the fist to strike.\n" - "Lowers the user's SPEED."); + "Lowers the user's Speed."); static const u8 sFLORAL_HEALINGDescription[] = _( "Restores an ally's HP.\n" @@ -2455,7 +2455,7 @@ static const u8 sLEAFAGEDescription[] = _( static const u8 sSPOTLIGHTDescription[] = _( "Makes the foe attack the\n" - "spotlighted POKéMON."); + "spotlighted Pokémon."); static const u8 sTOXIC_THREADDescription[] = _( "Attacks with a thread that\n" diff --git a/src/data/text/ribbon_descriptions.h b/src/data/text/ribbon_descriptions.h index f455a7771a..5db52dcedf 100644 --- a/src/data/text/ribbon_descriptions.h +++ b/src/data/text/ribbon_descriptions.h @@ -20,29 +20,29 @@ const u8 gRibbonDescriptionPart2_Effort[] = _("being a hard worker."); const u8 *const gRibbonDescriptionPointers[][2] = { - {gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion}, - {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank}, - {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank}, - {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank}, - {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank}, - {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank}, - {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank}, - {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank}, - {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank}, - {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank}, - {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank}, - {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank}, - {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank}, - {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank}, - {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank}, - {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank}, - {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank}, - {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank}, - {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank}, - {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank}, - {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank}, - {gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning}, - {gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory}, - {gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist}, - {gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort}, + [CHAMPION_RIBBON] = {gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion}, + [COOL_RIBBON_NORMAL] = {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank}, + [COOL_RIBBON_SUPER] = {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank}, + [COOL_RIBBON_HYPER] = {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank}, + [COOL_RIBBON_MASTER] = {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank}, + [BEAUTY_RIBBON_NORMAL] = {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank}, + [BEAUTY_RIBBON_SUPER] = {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank}, + [BEAUTY_RIBBON_HYPER] = {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank}, + [BEAUTY_RIBBON_MASTER] = {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank}, + [CUTE_RIBBON_NORMAL] = {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank}, + [CUTE_RIBBON_SUPER] = {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank}, + [CUTE_RIBBON_HYPER] = {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank}, + [CUTE_RIBBON_MASTER] = {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank}, + [SMART_RIBBON_NORMAL] = {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank}, + [SMART_RIBBON_SUPER] = {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank}, + [SMART_RIBBON_HYPER] = {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank}, + [SMART_RIBBON_MASTER] = {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank}, + [TOUGH_RIBBON_NORMAL] = {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank}, + [TOUGH_RIBBON_SUPER] = {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank}, + [TOUGH_RIBBON_HYPER] = {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank}, + [TOUGH_RIBBON_MASTER] = {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank}, + [WINNING_RIBBON] = {gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning}, + [VICTORY_RIBBON] = {gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory}, + [ARTIST_RIBBON] = {gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist}, + [EFFORT_RIBBON] = {gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort}, }; diff --git a/src/data/trade.h b/src/data/trade.h index b9350863b1..752971c112 100644 --- a/src/data/trade.h +++ b/src/data/trade.h @@ -1,3 +1,17 @@ +#define GFXTAG_MENU_TEXT 200 // Used as a base tag in CB2_CreateTradeMenu and CB2_ReturnToTradeMenu +#define GFXTAG_CURSOR 300 +#define GFXTAG_LINK_MON_GLOW 5550 +#define GFXTAG_LINK_MON_SHADOW 5552 +#define GFXTAG_CABLE_END 5554 +#define GFXTAG_GBA_SCREEN 5556 +#define GFXTAG_POKEBALL 5557 + +#define PALTAG_CURSOR 2345 +#define PALTAG_MENU_TEXT 4925 +#define PALTAG_LINK_MON 5551 +#define PALTAG_GBA 5555 +#define PALTAG_POKEBALL 5558 + // Exists unused in RS as well static const u32 sUnusedStructSizes[] = { @@ -15,7 +29,7 @@ static const u16 sTradePartyBoxTilemap[] = INCBIN_U16("graphics/trade/party_box_ static const u8 sTradeStripesBG2Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg2_map.bin"); static const u8 sTradeStripesBG3Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg3_map.bin"); static const u8 sText_EmptyString[] = _(""); -static const u8 sText_UnusedTextFormat[] = _("{COLOR WHITE}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GREY}"); +static const u8 sText_UnusedTextFormat[] = _("{COLOR WHITE}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GRAY}"); const u8 gText_MaleSymbol4[] = _("♂"); const u8 gText_FemaleSymbol4[] = _("♀"); const u8 gText_GenderlessSymbol[] = _(""); @@ -25,7 +39,7 @@ static const u8 sText_Slash[] = _("/"); static const u8 sText_Lv[] = _("Lv. "); static const u8 sText_ThreeDashes[] = _("---"); static const u8 sText_FourQuestionMarks[] = _("????"); -static const u8 sText_832DAE4[] = _(""); +static const u8 sText_UnusedEmpty[] = _(""); static const u8 sText_IsThisTradeOkay[] = _("Is this trade okay?"); static const u8 sText_Cancel[] = _("CANCEL"); static const u8 sText_ChooseAPkmn[] = _("Choose a POKéMON."); @@ -35,10 +49,10 @@ static const u8 sText_CancelTrade[] = _("Cancel trade?"); static const u8 sJPText_PressBButtonToQuit[] = _("Bボタン で もどります"); static const u8 sText_Summary2[] = _("SUMMARY"); static const u8 sText_Trade2[] = _("TRADE"); -static const u8 sText_CommunicationStandby[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}Communication standby…\nPlease wait."); -static const u8 sText_TheTradeHasBeenCanceled[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}The trade has\nbeen canceled."); +static const u8 sText_CommunicationStandby[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Communication standby…\nPlease wait."); +static const u8 sText_TheTradeHasBeenCanceled[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}The trade has\nbeen canceled."); static const u8 sText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle."); -static const u8 sText_WaitingForYourFriend[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}Waiting for your friend\nto finish…"); +static const u8 sText_WaitingForYourFriend[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Waiting for your friend\nto finish…"); static const u8 sText_YourFriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON."); static const struct OamData sTradeOamData_32x16 = @@ -48,107 +62,113 @@ static const struct OamData sTradeOamData_32x16 = .priority = 1 }; -static const struct OamData sTradeOamData_64x32 = +static const struct OamData sOamData_Cursor = { .shape = SPRITE_SHAPE(64x32), .size = SPRITE_SIZE(64x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_832DC24[] = +static const union AnimCmd sAnim_Cursor_Normal[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC2C[] = +static const union AnimCmd sAnim_Cursor_OnCancel[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_832DC34[] = -{ - gSpriteAnim_832DC24, - gSpriteAnim_832DC2C +enum { + CURSOR_ANIM_NORMAL, + CURSOR_ANIM_ON_CANCEL, }; -static const struct SpriteSheet sTradeButtonsSpriteSheet = +static const union AnimCmd *const sAnims_Cursor[] = { - .data = gTradeButtons_Gfx, + [CURSOR_ANIM_NORMAL] = sAnim_Cursor_Normal, + [CURSOR_ANIM_ON_CANCEL] = sAnim_Cursor_OnCancel +}; + +static const struct SpriteSheet sCursor_SpriteSheet = +{ + .data = gTradeCursor_Gfx, .size = 0x800, - .tag = 300 + .tag = GFXTAG_CURSOR }; -static const struct SpritePalette gUnknown_0832DC44 = +static const struct SpritePalette sCursor_SpritePalette = { - .data = gUnknown_08DDB444, - .tag = 2345 + .data = gTradeCursor_Pal, + .tag = PALTAG_CURSOR }; -static const union AnimCmd gSpriteAnim_832DC4C[] = +static const union AnimCmd sAnim_MenuText_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC54[] = +static const union AnimCmd sAnim_MenuText_1[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC5C[] = +static const union AnimCmd sAnim_MenuText_2[] = { ANIMCMD_FRAME(16, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC64[] = +static const union AnimCmd sAnim_MenuText_3[] = { ANIMCMD_FRAME(24, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC6C[] = +static const union AnimCmd sAnim_MenuText_4[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC74[] = +static const union AnimCmd sAnim_MenuText_5[] = { ANIMCMD_FRAME(40, 5), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_832DC7C[] = +// These anims are not used +static const union AnimCmd *const sAnims_MenuText[] = { - gSpriteAnim_832DC4C, - gSpriteAnim_832DC54, - gSpriteAnim_832DC5C, - gSpriteAnim_832DC64, - gSpriteAnim_832DC6C, - gSpriteAnim_832DC74 + sAnim_MenuText_0, + sAnim_MenuText_1, + sAnim_MenuText_2, + sAnim_MenuText_3, + sAnim_MenuText_4, + sAnim_MenuText_5 }; -static const struct SpriteTemplate gSpriteTemplate_832DC94 = +static const struct SpriteTemplate sSpriteTemplate_Cursor = { - .tileTag = 300, - .paletteTag = 2345, - .oam = &sTradeOamData_64x32, - .anims = gSpriteAnimTable_832DC34, + .tileTag = GFXTAG_CURSOR, + .paletteTag = PALTAG_CURSOR, + .oam = &sOamData_Cursor, + .anims = sAnims_Cursor, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate gSpriteTemplate_832DCAC = +static const struct SpriteTemplate sSpriteTemplate_MenuText = { - .tileTag = 200, - .paletteTag = 4925, + .tileTag = GFXTAG_MENU_TEXT, + .paletteTag = PALTAG_MENU_TEXT, .oam = &sTradeOamData_32x16, - .anims = gSpriteAnimTable_832DC7C, + .anims = sAnims_MenuText, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, @@ -158,7 +178,7 @@ static const u16 TradeScreenTextPalette[] = INCBIN_U16("graphics/trade/text.gbap static const struct SpritePalette gSpritePalette_TradeScreenText = { .data = TradeScreenTextPalette, - .tag = 4925 + .tag = PALTAG_MENU_TEXT }; // This is used to determine the next mon to select when the D-Pad is @@ -337,26 +357,26 @@ static const u8 sTradeMonBoxCoords[][2][2] = }, }; -static const u8 sUnref_0832DE6E[] = +static const u8 sUnusedCoords[][2] = { - 0x00, 0x0e, - 0x0f, 0x1d, - 0x03, 0x05, - 0x03, 0x07, - 0x12, 0x05, - 0x12, 0x07, - 0x08, 0x07, - 0x16, 0x0c, - 0x08, 0x07, - 0x16, 0x0c, - 0x06, 0x07, - 0x18, 0x0c, - 0x06, 0x07, - 0x18, 0x0c, - 0x08, 0x07, - 0x16, 0x0c, - 0x07, 0x07, - 0x17, 0x0c + { 0, 14}, + {15, 29}, + { 3, 5}, + { 3, 7}, + {18, 5}, + {18, 7}, + { 8, 7}, + {22, 12}, + { 8, 7}, + {22, 12}, + { 6, 7}, + {24, 12}, + { 6, 7}, + {24, 12}, + { 8, 7}, + {22, 12}, + { 7, 7}, + {23, 12} }; static const u8 *const sTradeActionTexts[] = @@ -392,7 +412,7 @@ static const u8 sTradeTextColors[] = { TEXT_COLOR_TRANSPARENT, //bg color TEXT_COLOR_WHITE, //fg color - TEXT_COLOR_DARK_GREY //shadow color + TEXT_COLOR_DARK_GRAY //shadow color }; static const struct BgTemplate sTradeMenuBgTemplates[] = @@ -620,42 +640,42 @@ static const u8 sTradeMenuPartyMonBoxDimensions[3][2] = [TRADE_PARTNER] = {19, 3} }; -static const u16 sTradePal_PokeBall[] = INCBIN_U16("graphics/trade/pokeball.gbapal"); -static const u8 sTradeGfx_PokeBall[] = INCBIN_U8("graphics/trade/pokeball.4bpp"); -static const u8 sTradeGfx_PokeBallSymbol[] = INCBIN_U8("graphics/trade/pokeball_symbol.8bpp"); // unused? -static const u16 sTradeTilemap_Cable[] = INCBIN_U16("graphics/trade/cable_closeup_map.bin"); +static const u16 sPokeball_Pal[] = INCBIN_U16("graphics/trade/pokeball.gbapal"); +static const u8 sPokeball_Gfx[] = INCBIN_U8("graphics/trade/pokeball.4bpp"); +static const u8 sPokeballSymbol_Gfx[] = INCBIN_U8("graphics/trade/pokeball_symbol.8bpp"); // unused +static const u16 sCrossingHighlightCable_Tilemap[] = INCBIN_U16("graphics/trade/crossing_highlight_cable.bin"); static const u16 sTradeTilemap_PokeBallSymbol[] = INCBIN_U16("graphics/trade/pokeball_symbol_map.bin"); // unused? -static const u16 sUnref_083308C0[] = INCBIN_U16("graphics/trade/unknown_3308C0.gbapal"); -static const u16 sTradePal_Gba[] = INCBIN_U16("graphics/trade/gba.gbapal"); -static const u16 sTradePal_ShadowUnused[] = INCBIN_U16("graphics/trade/shadow.gbapal"); -static const u16 sTradePal_BlackUnused[] = INCBIN_U16("graphics/trade/black.gbapal"); -static const u16 sTradePal_Misc[] = INCBIN_U16("graphics/trade/misc.gbapal"); -static const u8 sTradeGfx_Glow1[] = INCBIN_U8("graphics/trade/glow1.4bpp"); -static const u8 sTradeGfx_Glow2[] = INCBIN_U8("graphics/trade/glow2.4bpp"); -static const u8 sTradeGfx_CableEnd[] = INCBIN_U8("graphics/trade/cable_end.4bpp"); -static const u8 sTradeGfx_GbaScreen[] = INCBIN_U8("graphics/trade/gba_screen.4bpp"); -const u16 gUnknown_08331F60[] = INCBIN_U16("graphics/trade/shadow_map.bin"); -static const u8 sTradeAffine_Gba[] = INCBIN_U8("graphics/trade/gba_affine.8bpp"); -static const u8 sFiller_08335760[64] = {}; -static const u8 sTradeAffineMap_GbaCable[] = INCBIN_U8("graphics/trade/gba_affine_map_cable.bin"); -static const u8 sTradeAffineMap_GbaWireless[] = INCBIN_U8("graphics/trade/gba_affine_map_wireless.bin"); -static const u16 sTradeTilemap_GbaWireless[] = INCBIN_U16("graphics/trade/gba_map_wireless.bin"); -static const u16 sTradeTilemap_GbaCable[] = INCBIN_U16("graphics/trade/gba_map_cable.bin"); -static const u32 gUnknown_083379A0[] = INCBIN_U32("graphics/trade/unknown_3379A0.bin.lz"); //some wireless tilemap -static const u16 sTradePal_WirelessSignalSend[] = INCBIN_U16("graphics/trade/wireless_signal_send.gbapal"); -static const u16 sTradePal_WirelessSignalReceive[] = INCBIN_U16("graphics/trade/wireless_signal_receive.gbapal"); -static const u16 sTradePal_Black[] = INCBIN_U16("graphics/trade/black.gbapal"); -static const u32 sTradeGfx_WirelessSignal[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz"); -static const u32 sTradeTilemap_WirelessSignal[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz"); +static const u16 sUnusedPal1[] = INCBIN_U16("graphics/trade/unused1.gbapal"); +static const u16 sGba_Pal[] = INCBIN_U16("graphics/trade/gba.gbapal"); +static const u16 sUnusedPal2[] = INCBIN_U16("graphics/trade/unused2.gbapal"); +static const u16 sWirelessSignalNone_Pal_Unused[] = INCBIN_U16("graphics/trade/wireless_signal_none.gbapal"); +static const u16 sLinkMon_Pal[] = INCBIN_U16("graphics/trade/link_mon.gbapal"); +static const u8 sLinkMonGlow_Gfx[] = INCBIN_U8("graphics/trade/link_mon_glow.4bpp"); +static const u8 sLinkMonShadow_Gfx[] = INCBIN_U8("graphics/trade/link_mon_shadow.4bpp"); +static const u8 sCableEnd_Gfx[] = INCBIN_U8("graphics/trade/cable_end.4bpp"); +static const u8 sGbaScreen_Gfx[] = INCBIN_U8("graphics/trade/gba_screen.4bpp"); +const u16 gTradePlatform_Tilemap[] = INCBIN_U16("graphics/trade/platform.bin"); +static const u8 sGbaAffine_Gfx[] = INCBIN_U8("graphics/trade/gba_affine.8bpp"); // Only the gfx for when the GBA is zooming in/out +static const u8 sEmptyGfx[64] = {}; +static const u8 sGbaCable_AffineTilemap[] = INCBIN_U8("graphics/trade/gba_affine_map_cable.bin"); +static const u8 sGbaWireless_AffineTilemap[] = INCBIN_U8("graphics/trade/gba_affine_map_wireless.bin"); +static const u16 sGbaWireless_Tilemap[] = INCBIN_U16("graphics/trade/gba_map_wireless.bin"); +static const u16 sGbaCable_Tilemap[] = INCBIN_U16("graphics/trade/gba_map_cable.bin"); +static const u32 sCrossingHighlightWireless_Tilemap[] = INCBIN_U32("graphics/trade/crossing_highlight_wireless.bin.lz"); +static const u16 sWirelessSignalSend_Pal[] = INCBIN_U16("graphics/trade/wireless_signal_send.gbapal"); +static const u16 sWirelessSignalRecv_Pal[] = INCBIN_U16("graphics/trade/wireless_signal_receive.gbapal"); +static const u16 sWirelessSignalNone_Pal[] = INCBIN_U16("graphics/trade/wireless_signal_none.gbapal"); +static const u32 sWirelessSignal_Gfx[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz"); +static const u32 sWirelessSignal_Tilemap[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz"); -static const struct OamData sTradeOamData_16x16 = +static const struct OamData sOamData_Pokeball = { .affineMode = ST_OAM_AFFINE_NORMAL, .shape = SPRITE_SHAPE(16x16), .size = SPRITE_SIZE(16x16) }; -static const union AnimCmd gSpriteAnim_8338C4C[] = +static const union AnimCmd sAnim_Pokeball_SpinOnce[] = { ANIMCMD_FRAME( 0, 3), ANIMCMD_FRAME( 4, 3), @@ -674,7 +694,7 @@ static const union AnimCmd gSpriteAnim_8338C4C[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338C88[] = +static const union AnimCmd sAnim_Pokeball_SpinTwice[] = { ANIMCMD_FRAME( 0, 3), ANIMCMD_FRAME( 4, 3), @@ -693,25 +713,25 @@ static const union AnimCmd gSpriteAnim_8338C88[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338C88[] = +static const union AnimCmd *const sAnims_Pokeball[] = { - gSpriteAnim_8338C4C, - gSpriteAnim_8338C88 + sAnim_Pokeball_SpinOnce, + sAnim_Pokeball_SpinTwice }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CCC[] = +static const union AffineAnimCmd sAffineAnim_Pokeball_Normal[] = { AFFINEANIMCMD_FRAME(0, 0, 0, 1), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CDC[] = +static const union AffineAnimCmd sAffineAnim_Pokeball_Squish[] = { AFFINEANIMCMD_FRAME(-8, 0, 0, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CEC[] = +static const union AffineAnimCmd sAffineAnim_Pokeball_Unsquish[] = { AFFINEANIMCMD_FRAME(0x60, 0x100, 0, 0), AFFINEANIMCMD_FRAME( 0, 0, 0, 5), @@ -719,38 +739,38 @@ static const union AffineAnimCmd gSpriteAffineAnim_8338CEC[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D0C[] = +static const union AffineAnimCmd *const sAffineAnims_Pokeball[] = { - gSpriteAffineAnim_8338CCC, - gSpriteAffineAnim_8338CDC, - gSpriteAffineAnim_8338CEC + sAffineAnim_Pokeball_Normal, + sAffineAnim_Pokeball_Squish, + sAffineAnim_Pokeball_Unsquish }; static const struct SpriteSheet sPokeBallSpriteSheet = { - .data = sTradeGfx_PokeBall, + .data = sPokeball_Gfx, .size = 0x600, - .tag = 5557 + .tag = GFXTAG_POKEBALL }; static const struct SpritePalette sPokeBallSpritePalette = { - .data = sTradePal_PokeBall, - .tag = 5558 + .data = sPokeball_Pal, + .tag = PALTAG_POKEBALL }; -static const struct SpriteTemplate gSpriteTemplate_8338D28 = +static const struct SpriteTemplate sSpriteTemplate_Pokeball = { - .tileTag = 5557, - .paletteTag = 5558, - .oam = &sTradeOamData_16x16, - .anims = gSpriteAnimTable_8338C88, + .tileTag = GFXTAG_POKEBALL, + .paletteTag = PALTAG_POKEBALL, + .oam = &sOamData_Pokeball, + .anims = sAnims_Pokeball, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8338D0C, - .callback = sub_807E55C + .affineAnims = sAffineAnims_Pokeball, + .callback = SpriteCB_BouncingPokeball }; -static const struct OamData sTradeOamData_32x32 = +static const struct OamData sOamData_LinkMonGlow = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, @@ -759,146 +779,151 @@ static const struct OamData sTradeOamData_32x32 = .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338D48[] = +static const union AnimCmd sAnim_LinkMonGlow[] = { - ANIMCMD_FRAME(0, 5, .hFlip = TRUE, .vFlip = TRUE), + ANIMCMD_FRAME(0, 5, .hFlip = TRUE, .vFlip = TRUE), // ? The graphic is a perfect circle, no need to flip ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338D50[] = +static const union AnimCmd *const sAnims_LinkMonGlow[] = { - gSpriteAnim_8338D48 + sAnim_LinkMonGlow }; -static const union AffineAnimCmd gSpriteAffineAnim_8338D54[] = +static const union AffineAnimCmd sAffineAnim_LinkMonGlow[] = { AFFINEANIMCMD_FRAME(-10, -10, 0, 5), AFFINEANIMCMD_FRAME(10, 10, 0, 5), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D6C[] = +static const union AffineAnimCmd *const sAffineAnims_LinkMonGlow[] = { - gSpriteAffineAnim_8338D54 + sAffineAnim_LinkMonGlow }; -static const struct SpriteSheet sGlow1SpriteSheet = +static const struct SpriteSheet sSpriteSheet_LinkMonGlow = { - .data = sTradeGfx_Glow1, + .data = sLinkMonGlow_Gfx, .size = 0x200, - .tag = 5550 + .tag = GFXTAG_LINK_MON_GLOW }; -static const struct SpritePalette sMiscTradeSpritePalette = +static const struct SpritePalette sSpritePalette_LinkMon = { - .data = sTradePal_Misc, - .tag = 5551 + .data = sLinkMon_Pal, + .tag = PALTAG_LINK_MON }; -static const struct SpritePalette sGbaSpritePalette = +static const struct SpritePalette sSpritePalette_Gba = { - .data = sTradePal_Gba, - .tag = 5555 + .data = sGba_Pal, + .tag = PALTAG_GBA }; -static const struct SpriteTemplate gUnknown_08338D88 = +static const struct SpriteTemplate sSpriteTemplate_LinkMonGlow = { - .tileTag = 5550, - .paletteTag = 5551, - .oam = &sTradeOamData_32x32, - .anims = gSpriteAnimTable_8338D50, + .tileTag = GFXTAG_LINK_MON_GLOW, + .paletteTag = PALTAG_LINK_MON, + .oam = &sOamData_LinkMonGlow, + .anims = sAnims_LinkMonGlow, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8338D6C, - .callback = sub_807AA28 + .affineAnims = sAffineAnims_LinkMonGlow, + .callback = SpriteCB_LinkMonGlow }; -static const struct OamData sTradeOamData_16x32 = +static const struct OamData sOamData_LinkMonShadow = { .shape = SPRITE_SHAPE(16x32), .size = SPRITE_SIZE(16x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338DA8[] = +static const union AnimCmd sAnim_LinkMonShadow_Big[] = { ANIMCMD_FRAME(0, 5, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338DB0[] = +static const union AnimCmd sAnim_LinkMonShadow_Small[] = { ANIMCMD_FRAME(8, 5, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338DB8[] = -{ - gSpriteAnim_8338DA8, - gSpriteAnim_8338DB0 +enum { + ANIM_LINKMON_BIG, + ANIM_LINKMON_SMALL, }; -static const struct SpriteSheet sGlow2SpriteSheet = +static const union AnimCmd *const sAnims_LinkMonShadow[] = { - .data = sTradeGfx_Glow2, + [ANIM_LINKMON_BIG] = sAnim_LinkMonShadow_Big, + [ANIM_LINKMON_SMALL] = sAnim_LinkMonShadow_Small +}; + +static const struct SpriteSheet sSpriteSheet_LinkMonShadow = +{ + .data = sLinkMonShadow_Gfx, .size = 0x300, - .tag = 5552 + .tag = GFXTAG_LINK_MON_SHADOW }; -static const struct SpriteTemplate sGlowBallSpriteTemplate = +static const struct SpriteTemplate sSpriteTemplate_LinkMonShadow = { - .tileTag = 5552, - .paletteTag = 5551, - .oam = &sTradeOamData_16x32, - .anims = gSpriteAnimTable_8338DB8, + .tileTag = GFXTAG_LINK_MON_SHADOW, + .paletteTag = PALTAG_LINK_MON, + .oam = &sOamData_LinkMonShadow, + .anims = sAnims_LinkMonShadow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807AA7C + .callback = SpriteCB_LinkMonShadow }; -static const struct OamData sTradeOamData_16x32_2 = +static const struct OamData sOamData_CableEnd = { .shape = SPRITE_SHAPE(16x32), .size = SPRITE_SIZE(16x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338DE8[] = +static const union AnimCmd sAnim_CableEnd[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338DF0[] = +static const union AnimCmd *const sAnims_CableEnd[] = { - gSpriteAnim_8338DE8 + sAnim_CableEnd }; -static const struct SpriteSheet sCableEndSpriteSheet = +static const struct SpriteSheet sSpriteSheet_CableEnd = { - .data = sTradeGfx_CableEnd, + .data = sCableEnd_Gfx, .size = 0x100, - .tag = 5554 + .tag = GFXTAG_CABLE_END }; -static const struct SpriteTemplate gSpriteTemplate_8338DFC = +static const struct SpriteTemplate sSpriteTemplate_CableEnd = { - .tileTag = 5554, - .paletteTag = 5555, - .oam = &sTradeOamData_16x32_2, - .anims = gSpriteAnimTable_8338DF0, + .tileTag = GFXTAG_CABLE_END, + .paletteTag = PALTAG_GBA, + .oam = &sOamData_CableEnd, + .anims = sAnims_CableEnd, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807AABC + .callback = SpriteCB_CableEndSending }; -static const struct OamData sTradeOamData_64x32_2 = +static const struct OamData sOamData_GbaScreen = { .shape = SPRITE_SHAPE(64x32), .size = SPRITE_SIZE(64x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338E1C[] = +static const union AnimCmd sAnim_GbaScreen_Long[] = { ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), @@ -911,7 +936,7 @@ static const union AnimCmd gSpriteAnim_8338E1C[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338E40[] = +static const union AnimCmd sAnim_GbaScreen_Short[] = { ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), @@ -924,56 +949,56 @@ static const union AnimCmd gSpriteAnim_8338E40[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338E64[] = +static const union AnimCmd *const sAnims_GbaScreen_Long[] = { - gSpriteAnim_8338E1C + sAnim_GbaScreen_Long }; -static const union AnimCmd *const gSpriteAnimTable_8338E68[] = +static const union AnimCmd *const sAnims_GbaScreen_Short[] = { - gSpriteAnim_8338E40 + sAnim_GbaScreen_Short }; -static const struct SpriteSheet sGbaScreenSpriteSheet = +static const struct SpriteSheet sSpriteSheet_GbaScreen = { - .data = sTradeGfx_GbaScreen, + .data = sGbaScreen_Gfx, .size = 0x1000, - .tag = 5556 + .tag = GFXTAG_GBA_SCREEN }; -static const struct SpriteTemplate gSpriteTemplate_8338E74 = +static const struct SpriteTemplate sSpriteTemplate_GbaScreenFlash_Long = { - .tileTag = 5556, - .paletteTag = 5555, - .oam = &sTradeOamData_64x32_2, - .anims = gSpriteAnimTable_8338E64, + .tileTag = GFXTAG_GBA_SCREEN, + .paletteTag = PALTAG_GBA, + .oam = &sOamData_GbaScreen, + .anims = sAnims_GbaScreen_Long, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807AB04 + .callback = SpriteCB_GbaScreen }; -static const struct SpriteTemplate gSpriteTemplate_8338E8C = +static const struct SpriteTemplate sSpriteTemplate_GbaScreenFlash_Short = { - .tileTag = 5556, - .paletteTag = 5555, - .oam = &sTradeOamData_64x32_2, - .anims = gSpriteAnimTable_8338E68, + .tileTag = GFXTAG_GBA_SCREEN, + .paletteTag = PALTAG_GBA, + .oam = &sOamData_GbaScreen, + .anims = sAnims_GbaScreen_Short, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807AB04 + .callback = SpriteCB_GbaScreen }; -static const u16 gUnknown_08338EA4[] = INCBIN_U16("graphics/trade/unknown_338EA4.gbapal"); +static const u16 sLinkMonShadow_Pal[] = INCBIN_U16("graphics/trade/link_mon_shadow.gbapal"); -static const union AffineAnimCmd gSpriteAffineAnim_8338EBC[] = +static const union AffineAnimCmd sAffineAnim_CrossingMonPic[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338ECC[] = +static const union AffineAnimCmd *const sAffineAnims_CrossingMonPics[] = { - gSpriteAffineAnim_8338EBC + sAffineAnim_CrossingMonPic }; static const struct InGameTrade sIngameTrades[] = @@ -1070,7 +1095,7 @@ static const u16 sIngameTradeMail[][MAIL_WORDS_COUNT + 1] = EC_WORD_THANK_YOU, EC_WORD_FOR, EC_POKEMON(SKITTY), - EC_POKEMON2(MEOWTH), + EC_POKEMON_NATIONAL(MEOWTH), EC_WORD_CRIES, EC_WORD_IN, EC_WORD_A, @@ -1146,69 +1171,54 @@ static const struct BgTemplate sTradeSequenceBgTemplates[] = static const s8 sTradeBallVerticalVelocityTable[] = { - 0, 0, 1, 0, - 1, 0, 1, 1, - 1, 1, 2, 2, - 2, 2, 3, 3, - 3, 3, 4, 4, - 4, 4, -4, -4, - -4, -3, -3, -3, - -3, -2, -2, -2, - -2, -1, -1, -1, - -1, 0, -1, 0, - -1, 0, 0, 0, - 0, 0, 1, 0, - 1, 0, 1, 1, - 1, 1, 2, 2, - 2, 2, 3, 3, - 3, 3, 4, 4, - 4, 4, -4, -3, - -3, -2, -2, -1, - -1, -1, 0, -1, - 0, 0, 0, 0, - 0, 0, 1, 0, - 1, 1, 1, 2, - 2, 3, 3, 4, - -4, -3, -2, -1, - -1, -1, 0, 0, - 0, 0, 1, 0, - 1, 1, 2, 3 + 0, 0, 1, 0, 1, 0, 1, 1, 1, + 1, 2, 2, 2, 2, 3, 3, 3, 3, + 4, 4, 4, 4, -4, -4, -4, -3, -3, + -3, -3, -2, -2, -2, -2, -1, -1, -1, + -1, 0, -1, 0, -1, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 1, 1, 1, 1, + 2, 2, 2, 2, 3, 3, 3, 3, 4, + 4, 4, 4, -4, -3, -3, -2, -2, -1, + -1, -1, 0, -1, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 1, 1, 2, 2, 3, + 3, 4, -4, -3, -2, -1, -1, -1, 0, + 0, 0, 0, 1, 0, 1, 1, 2, 3 }; static const u8 sWirelessSignalTiming[][2] = { - {0, 1}, - {1, 1}, - {2, 1}, - {3, 1}, - {4, 1}, - {5, 2}, - {6, 2}, - {7, 2}, - {8, 2}, - {9, 2}, - {10, 3}, - {11, 3}, - {12, 3}, - {13, 4}, - {14, 5}, - {15, 2}, - {0, 1}, - {1, 1}, - {2, 1}, - {3, 1}, - {4, 1}, - {5, 2}, - {6, 2}, - {7, 2}, - {8, 2}, - {9, 2}, - {10, 3}, - {11, 3}, - {12, 3}, - {13, 4}, - {14, 5}, - {16, 1}, - {16, 255}, - {0, 0} + { 0, 1}, + { 1, 1}, + { 2, 1}, + { 3, 1}, + { 4, 1}, + { 5, 2}, + { 6, 2}, + { 7, 2}, + { 8, 2}, + { 9, 2}, + {10, 3}, + {11, 3}, + {12, 3}, + {13, 4}, + {14, 5}, + {15, 2}, + { 0, 1}, + { 1, 1}, + { 2, 1}, + { 3, 1}, + { 4, 1}, + { 5, 2}, + { 6, 2}, + { 7, 2}, + { 8, 2}, + { 9, 2}, + {10, 3}, + {11, 3}, + {12, 3}, + {13, 4}, + {14, 5}, + {16, 1}, + {16, -1}, + {} }; diff --git a/src/data/trainers.h b/src/data/trainers.h index 163a8296db..619763ea11 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -22,7 +22,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SAWYER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Sawyer1), .party = {.NoItemDefaultMoves = sParty_Sawyer1}, }, @@ -36,7 +36,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntAquaHideout1), .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout1}, }, @@ -50,7 +50,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntAquaHideout2), .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout2}, }, @@ -64,7 +64,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntAquaHideout3), .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout3}, }, @@ -78,7 +78,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntAquaHideout4), .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout4}, }, @@ -92,7 +92,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern1), .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern1}, }, @@ -106,7 +106,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern2), .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern2}, }, @@ -120,7 +120,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern3), .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern3}, }, @@ -134,7 +134,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABRIELLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Gabrielle1), .party = {.NoItemDefaultMoves = sParty_Gabrielle1}, }, @@ -148,7 +148,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntPetalburgWoods), .party = {.NoItemDefaultMoves = sParty_GruntPetalburgWoods}, }, @@ -162,7 +162,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARCEL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Marcel), .party = {.NoItemDefaultMoves = sParty_Marcel}, }, @@ -176,7 +176,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALBERTO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Alberto), .party = {.NoItemDefaultMoves = sParty_Alberto}, }, @@ -190,7 +190,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ED"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ed), .party = {.NoItemDefaultMoves = sParty_Ed}, }, @@ -204,7 +204,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern4), .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern4}, }, @@ -218,7 +218,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DECLAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Declan), .party = {.NoItemDefaultMoves = sParty_Declan}, }, @@ -232,7 +232,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntRusturfTunnel), .party = {.NoItemDefaultMoves = sParty_GruntRusturfTunnel}, }, @@ -246,7 +246,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntWeatherInst1), .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst1}, }, @@ -260,7 +260,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntWeatherInst2), .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst2}, }, @@ -274,7 +274,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntWeatherInst3), .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst3}, }, @@ -288,7 +288,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMuseum1), .party = {.NoItemDefaultMoves = sParty_GruntMuseum1}, }, @@ -302,7 +302,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMuseum2), .party = {.NoItemDefaultMoves = sParty_GruntMuseum2}, }, @@ -316,7 +316,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter1), .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter1}, }, @@ -330,7 +330,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMtPyre1), .party = {.NoItemDefaultMoves = sParty_GruntMtPyre1}, }, @@ -344,7 +344,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMtPyre2), .party = {.NoItemDefaultMoves = sParty_GruntMtPyre2}, }, @@ -358,7 +358,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMtPyre3), .party = {.NoItemDefaultMoves = sParty_GruntMtPyre3}, }, @@ -372,7 +372,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntWeatherInst4), .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst4}, }, @@ -386,7 +386,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntAquaHideout5), .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout5}, }, @@ -400,7 +400,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntAquaHideout6), .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout6}, }, @@ -414,7 +414,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FREDRICK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Fredrick), .party = {.NoItemDefaultMoves = sParty_Fredrick}, }, @@ -428,7 +428,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MATT"), .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Matt), .party = {.NoItemDefaultMoves = sParty_Matt}, }, @@ -442,7 +442,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ZANDER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Zander), .party = {.NoItemDefaultMoves = sParty_Zander}, }, @@ -456,7 +456,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHELLY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_ShellyWeatherInstitute), .party = {.NoItemDefaultMoves = sParty_ShellyWeatherInstitute}, }, @@ -470,7 +470,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHELLY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_ShellySeafloorCavern), .party = {.NoItemDefaultMoves = sParty_ShellySeafloorCavern}, }, @@ -484,7 +484,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ARCHIE"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Archie), .party = {.NoItemDefaultMoves = sParty_Archie}, }, @@ -498,7 +498,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LEAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Leah), .party = {.NoItemDefaultMoves = sParty_Leah}, }, @@ -512,7 +512,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DAISY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Daisy), .party = {.NoItemDefaultMoves = sParty_Daisy}, }, @@ -526,7 +526,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROSE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rose1), .party = {.NoItemDefaultMoves = sParty_Rose1}, }, @@ -540,7 +540,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FELIX"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Felix), .party = {.NoItemCustomMoves = sParty_Felix}, }, @@ -554,7 +554,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VIOLET"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Violet), .party = {.NoItemDefaultMoves = sParty_Violet}, }, @@ -568,7 +568,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROSE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rose2), .party = {.NoItemDefaultMoves = sParty_Rose2}, }, @@ -582,7 +582,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROSE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rose3), .party = {.NoItemDefaultMoves = sParty_Rose3}, }, @@ -596,7 +596,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROSE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rose4), .party = {.NoItemDefaultMoves = sParty_Rose4}, }, @@ -610,7 +610,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROSE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rose5), .party = {.NoItemDefaultMoves = sParty_Rose5}, }, @@ -624,7 +624,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DUSTY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dusty1), .party = {.NoItemCustomMoves = sParty_Dusty1}, }, @@ -638,7 +638,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CHIP"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Chip), .party = {.NoItemCustomMoves = sParty_Chip}, }, @@ -652,7 +652,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FOSTER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Foster), .party = {.NoItemCustomMoves = sParty_Foster}, }, @@ -666,7 +666,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DUSTY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dusty2), .party = {.NoItemCustomMoves = sParty_Dusty2}, }, @@ -680,7 +680,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DUSTY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dusty3), .party = {.NoItemCustomMoves = sParty_Dusty3}, }, @@ -694,7 +694,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DUSTY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dusty4), .party = {.NoItemCustomMoves = sParty_Dusty4}, }, @@ -708,7 +708,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DUSTY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dusty5), .party = {.NoItemCustomMoves = sParty_Dusty5}, }, @@ -722,7 +722,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABBY & TY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GabbyAndTy1), .party = {.NoItemDefaultMoves = sParty_GabbyAndTy1}, }, @@ -736,7 +736,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABBY & TY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GabbyAndTy2), .party = {.NoItemDefaultMoves = sParty_GabbyAndTy2}, }, @@ -750,7 +750,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABBY & TY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GabbyAndTy3), .party = {.NoItemDefaultMoves = sParty_GabbyAndTy3}, }, @@ -764,7 +764,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABBY & TY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GabbyAndTy4), .party = {.NoItemDefaultMoves = sParty_GabbyAndTy4}, }, @@ -778,7 +778,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABBY & TY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GabbyAndTy5), .party = {.NoItemDefaultMoves = sParty_GabbyAndTy5}, }, @@ -792,7 +792,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABBY & TY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GabbyAndTy6), .party = {.NoItemCustomMoves = sParty_GabbyAndTy6}, }, @@ -806,7 +806,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LOLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lola1), .party = {.NoItemDefaultMoves = sParty_Lola1}, }, @@ -820,7 +820,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AUSTINA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Austina), .party = {.NoItemDefaultMoves = sParty_Austina}, }, @@ -834,7 +834,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GWEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Gwen), .party = {.NoItemDefaultMoves = sParty_Gwen}, }, @@ -848,7 +848,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LOLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lola2), .party = {.NoItemDefaultMoves = sParty_Lola2}, }, @@ -862,7 +862,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LOLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lola3), .party = {.NoItemDefaultMoves = sParty_Lola3}, }, @@ -876,7 +876,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LOLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lola4), .party = {.NoItemDefaultMoves = sParty_Lola4}, }, @@ -890,7 +890,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LOLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lola5), .party = {.NoItemDefaultMoves = sParty_Lola5}, }, @@ -904,7 +904,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RICKY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ricky1), .party = {.NoItemCustomMoves = sParty_Ricky1}, }, @@ -918,7 +918,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SIMON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Simon), .party = {.NoItemDefaultMoves = sParty_Simon}, }, @@ -932,7 +932,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CHARLIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Charlie), .party = {.NoItemDefaultMoves = sParty_Charlie}, }, @@ -946,7 +946,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RICKY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ricky2), .party = {.NoItemCustomMoves = sParty_Ricky2}, }, @@ -960,7 +960,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RICKY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ricky3), .party = {.NoItemCustomMoves = sParty_Ricky3}, }, @@ -974,7 +974,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RICKY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ricky4), .party = {.NoItemCustomMoves = sParty_Ricky4}, }, @@ -988,7 +988,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RICKY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ricky5), .party = {.NoItemCustomMoves = sParty_Ricky5}, }, @@ -1002,7 +1002,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RANDALL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Randall), .party = {.ItemCustomMoves = sParty_Randall}, }, @@ -1016,7 +1016,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PARKER"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Parker), .party = {.ItemCustomMoves = sParty_Parker}, }, @@ -1030,7 +1030,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GEORGE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_George), .party = {.ItemCustomMoves = sParty_George}, }, @@ -1044,7 +1044,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BERKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Berke), .party = {.ItemCustomMoves = sParty_Berke}, }, @@ -1058,7 +1058,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAXTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Braxton), .party = {.NoItemCustomMoves = sParty_Braxton}, }, @@ -1072,7 +1072,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VINCENT"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Vincent), .party = {.NoItemDefaultMoves = sParty_Vincent}, }, @@ -1086,7 +1086,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LEROY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Leroy), .party = {.NoItemDefaultMoves = sParty_Leroy}, }, @@ -1100,7 +1100,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wilton1), .party = {.NoItemDefaultMoves = sParty_Wilton1}, }, @@ -1114,7 +1114,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDGAR"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Edgar), .party = {.NoItemDefaultMoves = sParty_Edgar}, }, @@ -1128,7 +1128,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALBERT"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Albert), .party = {.NoItemDefaultMoves = sParty_Albert}, }, @@ -1142,7 +1142,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SAMUEL"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Samuel), .party = {.NoItemDefaultMoves = sParty_Samuel}, }, @@ -1156,7 +1156,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VITO"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Vito), .party = {.NoItemDefaultMoves = sParty_Vito}, }, @@ -1170,7 +1170,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("OWEN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Owen), .party = {.NoItemDefaultMoves = sParty_Owen}, }, @@ -1184,7 +1184,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wilton2), .party = {.NoItemDefaultMoves = sParty_Wilton2}, }, @@ -1198,7 +1198,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wilton3), .party = {.NoItemDefaultMoves = sParty_Wilton3}, }, @@ -1212,7 +1212,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wilton4), .party = {.NoItemDefaultMoves = sParty_Wilton4}, }, @@ -1226,7 +1226,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wilton5), .party = {.NoItemDefaultMoves = sParty_Wilton5}, }, @@ -1240,7 +1240,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WARREN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Warren), .party = {.NoItemDefaultMoves = sParty_Warren}, }, @@ -1254,7 +1254,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Mary), .party = {.ItemCustomMoves = sParty_Mary}, }, @@ -1268,7 +1268,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALEXIA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Alexia), .party = {.ItemCustomMoves = sParty_Alexia}, }, @@ -1282,7 +1282,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JODY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Jody), .party = {.ItemCustomMoves = sParty_Jody}, }, @@ -1296,7 +1296,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WENDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Wendy), .party = {.NoItemCustomMoves = sParty_Wendy}, }, @@ -1310,7 +1310,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KEIRA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Keira), .party = {.NoItemDefaultMoves = sParty_Keira}, }, @@ -1324,7 +1324,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brooke1), .party = {.NoItemDefaultMoves = sParty_Brooke1}, }, @@ -1338,7 +1338,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNIFER"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Jennifer), .party = {.NoItemDefaultMoves = sParty_Jennifer}, }, @@ -1352,7 +1352,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HOPE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Hope), .party = {.NoItemDefaultMoves = sParty_Hope}, }, @@ -1366,7 +1366,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHANNON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Shannon), .party = {.NoItemDefaultMoves = sParty_Shannon}, }, @@ -1380,7 +1380,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MICHELLE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Michelle), .party = {.NoItemDefaultMoves = sParty_Michelle}, }, @@ -1394,7 +1394,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAROLINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Caroline), .party = {.NoItemDefaultMoves = sParty_Caroline}, }, @@ -1408,7 +1408,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JULIE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Julie), .party = {.NoItemDefaultMoves = sParty_Julie}, }, @@ -1422,7 +1422,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brooke2), .party = {.NoItemDefaultMoves = sParty_Brooke2}, }, @@ -1436,7 +1436,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brooke3), .party = {.NoItemDefaultMoves = sParty_Brooke3}, }, @@ -1450,7 +1450,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brooke4), .party = {.NoItemDefaultMoves = sParty_Brooke4}, }, @@ -1464,7 +1464,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BROOKE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brooke5), .party = {.NoItemDefaultMoves = sParty_Brooke5}, }, @@ -1478,7 +1478,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PATRICIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Patricia), .party = {.NoItemDefaultMoves = sParty_Patricia}, }, @@ -1492,7 +1492,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KINDRA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kindra), .party = {.NoItemDefaultMoves = sParty_Kindra}, }, @@ -1506,7 +1506,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TAMMY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tammy), .party = {.NoItemDefaultMoves = sParty_Tammy}, }, @@ -1520,7 +1520,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VALERIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Valerie1), .party = {.NoItemDefaultMoves = sParty_Valerie1}, }, @@ -1534,7 +1534,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TASHA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tasha), .party = {.NoItemDefaultMoves = sParty_Tasha}, }, @@ -1548,7 +1548,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VALERIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Valerie2), .party = {.NoItemDefaultMoves = sParty_Valerie2}, }, @@ -1562,7 +1562,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VALERIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Valerie3), .party = {.NoItemDefaultMoves = sParty_Valerie3}, }, @@ -1576,7 +1576,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VALERIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Valerie4), .party = {.NoItemDefaultMoves = sParty_Valerie4}, }, @@ -1590,7 +1590,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VALERIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Valerie5), .party = {.NoItemDefaultMoves = sParty_Valerie5}, }, @@ -1604,7 +1604,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cindy1), .party = {.ItemDefaultMoves = sParty_Cindy1}, }, @@ -1618,7 +1618,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DAPHNE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Daphne), .party = {.ItemCustomMoves = sParty_Daphne}, }, @@ -1632,7 +1632,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter2), .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter2}, }, @@ -1646,7 +1646,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cindy2), .party = {.ItemCustomMoves = sParty_Cindy2}, }, @@ -1660,7 +1660,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRIANNA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Brianna), .party = {.ItemDefaultMoves = sParty_Brianna}, }, @@ -1674,7 +1674,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NAOMI"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Naomi), .party = {.ItemDefaultMoves = sParty_Naomi}, }, @@ -1688,7 +1688,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cindy3), .party = {.ItemDefaultMoves = sParty_Cindy3}, }, @@ -1702,7 +1702,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cindy4), .party = {.ItemDefaultMoves = sParty_Cindy4}, }, @@ -1716,7 +1716,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cindy5), .party = {.ItemDefaultMoves = sParty_Cindy5}, }, @@ -1730,7 +1730,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CINDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cindy6), .party = {.ItemCustomMoves = sParty_Cindy6}, }, @@ -1744,7 +1744,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MELISSA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Melissa), .party = {.NoItemDefaultMoves = sParty_Melissa}, }, @@ -1758,7 +1758,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHEILA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Sheila), .party = {.NoItemDefaultMoves = sParty_Sheila}, }, @@ -1772,7 +1772,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHIRLEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Shirley), .party = {.NoItemDefaultMoves = sParty_Shirley}, }, @@ -1786,7 +1786,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JESSICA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jessica1), .party = {.NoItemCustomMoves = sParty_Jessica1}, }, @@ -1800,7 +1800,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CONNIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Connie), .party = {.NoItemDefaultMoves = sParty_Connie}, }, @@ -1814,7 +1814,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRIDGET"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bridget), .party = {.NoItemDefaultMoves = sParty_Bridget}, }, @@ -1828,7 +1828,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("OLIVIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Olivia), .party = {.NoItemCustomMoves = sParty_Olivia}, }, @@ -1842,7 +1842,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TIFFANY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tiffany), .party = {.NoItemDefaultMoves = sParty_Tiffany}, }, @@ -1856,7 +1856,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JESSICA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jessica2), .party = {.NoItemCustomMoves = sParty_Jessica2}, }, @@ -1870,7 +1870,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JESSICA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jessica3), .party = {.NoItemCustomMoves = sParty_Jessica3}, }, @@ -1884,7 +1884,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JESSICA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jessica4), .party = {.NoItemCustomMoves = sParty_Jessica4}, }, @@ -1898,7 +1898,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JESSICA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jessica5), .party = {.NoItemCustomMoves = sParty_Jessica5}, }, @@ -1912,7 +1912,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Winston1), .party = {.ItemDefaultMoves = sParty_Winston1}, }, @@ -1926,7 +1926,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MOLLIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Mollie), .party = {.NoItemDefaultMoves = sParty_Mollie}, }, @@ -1940,7 +1940,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GARRET"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Garret), .party = {.ItemDefaultMoves = sParty_Garret}, }, @@ -1954,7 +1954,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Winston2), .party = {.ItemDefaultMoves = sParty_Winston2}, }, @@ -1968,7 +1968,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Winston3), .party = {.ItemDefaultMoves = sParty_Winston3}, }, @@ -1982,7 +1982,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Winston4), .party = {.ItemDefaultMoves = sParty_Winston4}, }, @@ -1996,7 +1996,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Winston5), .party = {.ItemCustomMoves = sParty_Winston5}, }, @@ -2010,7 +2010,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("STEVE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Steve1), .party = {.NoItemDefaultMoves = sParty_Steve1}, }, @@ -2024,7 +2024,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("THALIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Thalia1), .party = {.NoItemDefaultMoves = sParty_Thalia1}, }, @@ -2038,7 +2038,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Mark), .party = {.NoItemDefaultMoves = sParty_Mark}, }, @@ -2052,7 +2052,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMtChimney1), .party = {.NoItemDefaultMoves = sParty_GruntMtChimney1}, }, @@ -2066,7 +2066,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("STEVE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Steve2), .party = {.NoItemDefaultMoves = sParty_Steve2}, }, @@ -2080,7 +2080,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("STEVE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Steve3), .party = {.NoItemDefaultMoves = sParty_Steve3}, }, @@ -2094,7 +2094,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("STEVE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Steve4), .party = {.NoItemDefaultMoves = sParty_Steve4}, }, @@ -2108,7 +2108,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("STEVE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Steve5), .party = {.NoItemDefaultMoves = sParty_Steve5}, }, @@ -2122,7 +2122,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LUIS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Luis), .party = {.NoItemDefaultMoves = sParty_Luis}, }, @@ -2136,7 +2136,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DOMINIK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dominik), .party = {.NoItemDefaultMoves = sParty_Dominik}, }, @@ -2150,7 +2150,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DOUGLAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Douglas), .party = {.NoItemDefaultMoves = sParty_Douglas}, }, @@ -2164,7 +2164,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DARRIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Darrin), .party = {.NoItemDefaultMoves = sParty_Darrin}, }, @@ -2178,7 +2178,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TONY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tony1), .party = {.NoItemDefaultMoves = sParty_Tony1}, }, @@ -2192,7 +2192,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JEROME"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jerome), .party = {.NoItemDefaultMoves = sParty_Jerome}, }, @@ -2206,7 +2206,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MATTHEW"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Matthew), .party = {.NoItemDefaultMoves = sParty_Matthew}, }, @@ -2220,7 +2220,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DAVID"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_David), .party = {.NoItemDefaultMoves = sParty_David}, }, @@ -2234,7 +2234,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SPENCER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Spencer), .party = {.NoItemDefaultMoves = sParty_Spencer}, }, @@ -2248,7 +2248,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROLAND"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Roland), .party = {.NoItemDefaultMoves = sParty_Roland}, }, @@ -2262,7 +2262,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NOLEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nolen), .party = {.NoItemDefaultMoves = sParty_Nolen}, }, @@ -2276,7 +2276,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("STAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Stan), .party = {.NoItemDefaultMoves = sParty_Stan}, }, @@ -2290,7 +2290,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BARRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Barry), .party = {.NoItemDefaultMoves = sParty_Barry}, }, @@ -2304,7 +2304,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DEAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dean), .party = {.NoItemDefaultMoves = sParty_Dean}, }, @@ -2318,7 +2318,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RODNEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rodney), .party = {.NoItemDefaultMoves = sParty_Rodney}, }, @@ -2332,7 +2332,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RICHARD"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Richard), .party = {.NoItemDefaultMoves = sParty_Richard}, }, @@ -2346,7 +2346,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HERMAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Herman), .party = {.NoItemDefaultMoves = sParty_Herman}, }, @@ -2360,7 +2360,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SANTIAGO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Santiago), .party = {.NoItemDefaultMoves = sParty_Santiago}, }, @@ -2374,7 +2374,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GILBERT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Gilbert), .party = {.NoItemDefaultMoves = sParty_Gilbert}, }, @@ -2388,7 +2388,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FRANKLIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Franklin), .party = {.NoItemDefaultMoves = sParty_Franklin}, }, @@ -2402,7 +2402,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KEVIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kevin), .party = {.NoItemDefaultMoves = sParty_Kevin}, }, @@ -2416,7 +2416,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jack), .party = {.NoItemDefaultMoves = sParty_Jack}, }, @@ -2430,7 +2430,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DUDLEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dudley), .party = {.NoItemDefaultMoves = sParty_Dudley}, }, @@ -2444,7 +2444,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CHAD"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Chad), .party = {.NoItemDefaultMoves = sParty_Chad}, }, @@ -2458,7 +2458,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TONY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tony2), .party = {.NoItemDefaultMoves = sParty_Tony2}, }, @@ -2472,7 +2472,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TONY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tony3), .party = {.NoItemDefaultMoves = sParty_Tony3}, }, @@ -2486,7 +2486,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TONY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tony4), .party = {.NoItemDefaultMoves = sParty_Tony4}, }, @@ -2500,7 +2500,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TONY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tony5), .party = {.NoItemDefaultMoves = sParty_Tony5}, }, @@ -2514,7 +2514,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TAKAO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Takao), .party = {.NoItemDefaultMoves = sParty_Takao}, }, @@ -2528,7 +2528,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HITOSHI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Hitoshi), .party = {.NoItemDefaultMoves = sParty_Hitoshi}, }, @@ -2542,7 +2542,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KIYO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kiyo), .party = {.NoItemDefaultMoves = sParty_Kiyo}, }, @@ -2556,7 +2556,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KOICHI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Koichi), .party = {.NoItemDefaultMoves = sParty_Koichi}, }, @@ -2570,7 +2570,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NOB"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nob1), .party = {.NoItemDefaultMoves = sParty_Nob1}, }, @@ -2584,7 +2584,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NOB"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nob2), .party = {.NoItemDefaultMoves = sParty_Nob2}, }, @@ -2598,7 +2598,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NOB"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nob3), .party = {.NoItemDefaultMoves = sParty_Nob3}, }, @@ -2612,7 +2612,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NOB"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nob4), .party = {.NoItemDefaultMoves = sParty_Nob4}, }, @@ -2626,7 +2626,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NOB"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nob5), .party = {.ItemDefaultMoves = sParty_Nob5}, }, @@ -2640,7 +2640,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("YUJI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Yuji), .party = {.NoItemDefaultMoves = sParty_Yuji}, }, @@ -2654,7 +2654,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DAISUKE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Daisuke), .party = {.NoItemDefaultMoves = sParty_Daisuke}, }, @@ -2668,7 +2668,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ATSUSHI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Atsushi), .party = {.NoItemDefaultMoves = sParty_Atsushi}, }, @@ -2682,7 +2682,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KIRK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kirk), .party = {.NoItemCustomMoves = sParty_Kirk}, }, @@ -2696,7 +2696,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntAquaHideout7), .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout7}, }, @@ -2710,7 +2710,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntAquaHideout8), .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout8}, }, @@ -2724,7 +2724,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHAWN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Shawn), .party = {.NoItemDefaultMoves = sParty_Shawn}, }, @@ -2738,7 +2738,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FERNANDO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Fernando1), .party = {.NoItemDefaultMoves = sParty_Fernando1}, }, @@ -2752,7 +2752,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DALTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dalton1), .party = {.NoItemDefaultMoves = sParty_Dalton1}, }, @@ -2766,7 +2766,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DALTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dalton2), .party = {.NoItemDefaultMoves = sParty_Dalton2}, }, @@ -2780,7 +2780,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DALTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dalton3), .party = {.NoItemDefaultMoves = sParty_Dalton3}, }, @@ -2794,7 +2794,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DALTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dalton4), .party = {.NoItemDefaultMoves = sParty_Dalton4}, }, @@ -2808,7 +2808,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DALTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dalton5), .party = {.NoItemDefaultMoves = sParty_Dalton5}, }, @@ -2822,7 +2822,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("COLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cole), .party = {.NoItemDefaultMoves = sParty_Cole}, }, @@ -2836,7 +2836,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JEFF"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jeff), .party = {.NoItemDefaultMoves = sParty_Jeff}, }, @@ -2850,7 +2850,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AXLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Axle), .party = {.NoItemDefaultMoves = sParty_Axle}, }, @@ -2864,7 +2864,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jace), .party = {.NoItemDefaultMoves = sParty_Jace}, }, @@ -2878,7 +2878,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KEEGAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Keegan), .party = {.NoItemDefaultMoves = sParty_Keegan}, }, @@ -2892,7 +2892,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BERNIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bernie1), .party = {.NoItemDefaultMoves = sParty_Bernie1}, }, @@ -2906,7 +2906,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BERNIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bernie2), .party = {.NoItemDefaultMoves = sParty_Bernie2}, }, @@ -2920,7 +2920,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BERNIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bernie3), .party = {.NoItemDefaultMoves = sParty_Bernie3}, }, @@ -2934,7 +2934,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BERNIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bernie4), .party = {.NoItemDefaultMoves = sParty_Bernie4}, }, @@ -2948,7 +2948,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BERNIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bernie5), .party = {.NoItemDefaultMoves = sParty_Bernie5}, }, @@ -2962,7 +2962,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DREW"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Drew), .party = {.NoItemCustomMoves = sParty_Drew}, }, @@ -2976,7 +2976,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BEAU"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Beau), .party = {.NoItemCustomMoves = sParty_Beau}, }, @@ -2990,7 +2990,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LARRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Larry), .party = {.NoItemDefaultMoves = sParty_Larry}, }, @@ -3004,7 +3004,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHANE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Shane), .party = {.NoItemDefaultMoves = sParty_Shane}, }, @@ -3018,7 +3018,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUSTIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Justin), .party = {.NoItemDefaultMoves = sParty_Justin}, }, @@ -3032,7 +3032,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ETHAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ethan1), .party = {.NoItemDefaultMoves = sParty_Ethan1}, }, @@ -3046,7 +3046,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AUTUMN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Autumn), .party = {.NoItemDefaultMoves = sParty_Autumn}, }, @@ -3060,7 +3060,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TRAVIS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Travis), .party = {.NoItemDefaultMoves = sParty_Travis}, }, @@ -3074,7 +3074,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ETHAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ethan2), .party = {.NoItemDefaultMoves = sParty_Ethan2}, }, @@ -3088,7 +3088,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ETHAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ethan3), .party = {.NoItemDefaultMoves = sParty_Ethan3}, }, @@ -3102,7 +3102,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ETHAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ethan4), .party = {.NoItemDefaultMoves = sParty_Ethan4}, }, @@ -3116,7 +3116,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ETHAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ethan5), .party = {.NoItemDefaultMoves = sParty_Ethan5}, }, @@ -3130,7 +3130,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Brent), .party = {.NoItemDefaultMoves = sParty_Brent}, }, @@ -3144,7 +3144,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DONALD"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Donald), .party = {.NoItemDefaultMoves = sParty_Donald}, }, @@ -3158,7 +3158,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TAYLOR"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Taylor), .party = {.NoItemDefaultMoves = sParty_Taylor}, }, @@ -3172,7 +3172,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JEFFREY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jeffrey1), .party = {.NoItemDefaultMoves = sParty_Jeffrey1}, }, @@ -3186,7 +3186,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DEREK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Derek), .party = {.NoItemDefaultMoves = sParty_Derek}, }, @@ -3200,7 +3200,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JEFFREY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jeffrey2), .party = {.NoItemDefaultMoves = sParty_Jeffrey2}, }, @@ -3214,7 +3214,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JEFFREY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jeffrey3), .party = {.NoItemDefaultMoves = sParty_Jeffrey3}, }, @@ -3228,7 +3228,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JEFFREY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jeffrey4), .party = {.NoItemDefaultMoves = sParty_Jeffrey4}, }, @@ -3242,7 +3242,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JEFFREY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jeffrey5), .party = {.ItemDefaultMoves = sParty_Jeffrey5}, }, @@ -3256,7 +3256,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDWARD"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Edward), .party = {.NoItemCustomMoves = sParty_Edward}, }, @@ -3270,7 +3270,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PRESTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Preston), .party = {.NoItemDefaultMoves = sParty_Preston}, }, @@ -3284,7 +3284,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VIRGIL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Virgil), .party = {.NoItemDefaultMoves = sParty_Virgil}, }, @@ -3298,7 +3298,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BLAKE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Blake), .party = {.NoItemDefaultMoves = sParty_Blake}, }, @@ -3312,7 +3312,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WILLIAM"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_William), .party = {.NoItemDefaultMoves = sParty_William}, }, @@ -3326,7 +3326,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOSHUA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Joshua), .party = {.NoItemDefaultMoves = sParty_Joshua}, }, @@ -3340,7 +3340,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAMERON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cameron1), .party = {.NoItemDefaultMoves = sParty_Cameron1}, }, @@ -3354,7 +3354,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAMERON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cameron2), .party = {.NoItemDefaultMoves = sParty_Cameron2}, }, @@ -3368,7 +3368,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAMERON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cameron3), .party = {.NoItemDefaultMoves = sParty_Cameron3}, }, @@ -3382,7 +3382,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAMERON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cameron4), .party = {.NoItemDefaultMoves = sParty_Cameron4}, }, @@ -3396,7 +3396,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAMERON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cameron5), .party = {.NoItemDefaultMoves = sParty_Cameron5}, }, @@ -3410,7 +3410,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACLYN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jaclyn), .party = {.NoItemCustomMoves = sParty_Jaclyn}, }, @@ -3424,7 +3424,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HANNAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Hannah), .party = {.NoItemDefaultMoves = sParty_Hannah}, }, @@ -3438,7 +3438,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SAMANTHA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Samantha), .party = {.NoItemDefaultMoves = sParty_Samantha}, }, @@ -3452,7 +3452,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAURA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Maura), .party = {.NoItemDefaultMoves = sParty_Maura}, }, @@ -3466,7 +3466,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAYLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kayla), .party = {.NoItemDefaultMoves = sParty_Kayla}, }, @@ -3480,7 +3480,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALEXIS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Alexis), .party = {.NoItemDefaultMoves = sParty_Alexis}, }, @@ -3494,7 +3494,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jacki1), .party = {.NoItemDefaultMoves = sParty_Jacki1}, }, @@ -3508,7 +3508,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jacki2), .party = {.NoItemDefaultMoves = sParty_Jacki2}, }, @@ -3522,7 +3522,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jacki3), .party = {.NoItemDefaultMoves = sParty_Jacki3}, }, @@ -3536,7 +3536,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jacki4), .party = {.NoItemDefaultMoves = sParty_Jacki4}, }, @@ -3550,7 +3550,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jacki5), .party = {.NoItemDefaultMoves = sParty_Jacki5}, }, @@ -3564,7 +3564,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALTER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Walter1), .party = {.NoItemDefaultMoves = sParty_Walter1}, }, @@ -3578,7 +3578,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MICAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Micah), .party = {.NoItemDefaultMoves = sParty_Micah}, }, @@ -3592,7 +3592,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("THOMAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Thomas), .party = {.NoItemDefaultMoves = sParty_Thomas}, }, @@ -3606,7 +3606,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALTER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Walter2), .party = {.NoItemDefaultMoves = sParty_Walter2}, }, @@ -3620,7 +3620,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALTER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Walter3), .party = {.NoItemCustomMoves = sParty_Walter3}, }, @@ -3634,7 +3634,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALTER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Walter4), .party = {.NoItemCustomMoves = sParty_Walter4}, }, @@ -3648,7 +3648,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALTER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Walter5), .party = {.NoItemCustomMoves = sParty_Walter5}, }, @@ -3662,7 +3662,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SIDNEY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Sidney), .party = {.ItemCustomMoves = sParty_Sidney}, }, @@ -3676,7 +3676,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PHOEBE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Phoebe), .party = {.ItemCustomMoves = sParty_Phoebe}, }, @@ -3690,7 +3690,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GLACIA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Glacia), .party = {.ItemCustomMoves = sParty_Glacia}, }, @@ -3704,7 +3704,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DRAKE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Drake), .party = {.ItemCustomMoves = sParty_Drake}, }, @@ -3718,7 +3718,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_POTION, ITEM_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Roxanne1), .party = {.ItemCustomMoves = sParty_Roxanne1}, }, @@ -3732,7 +3732,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brawly1), .party = {.ItemCustomMoves = sParty_Brawly1}, }, @@ -3746,7 +3746,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wattson1), .party = {.ItemCustomMoves = sParty_Wattson1}, }, @@ -3760,7 +3760,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Flannery1), .party = {.ItemCustomMoves = sParty_Flannery1}, }, @@ -3774,7 +3774,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Norman1), .party = {.ItemCustomMoves = sParty_Norman1}, }, @@ -3788,7 +3788,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_RISKY, .partySize = ARRAY_COUNT(sParty_Winona1), .party = {.ItemCustomMoves = sParty_Winona1}, }, @@ -3802,7 +3802,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_HYPER_POTION}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_TateAndLiza1), .party = {.ItemCustomMoves = sParty_TateAndLiza1}, }, @@ -3816,7 +3816,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_HYPER_POTION, ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Juan1), .party = {.ItemCustomMoves = sParty_Juan1}, }, @@ -3830,7 +3830,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JERRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jerry1), .party = {.NoItemDefaultMoves = sParty_Jerry1}, }, @@ -3844,7 +3844,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TED"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ted), .party = {.NoItemDefaultMoves = sParty_Ted}, }, @@ -3858,7 +3858,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PAUL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Paul), .party = {.NoItemDefaultMoves = sParty_Paul}, }, @@ -3872,7 +3872,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JERRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jerry2), .party = {.NoItemDefaultMoves = sParty_Jerry2}, }, @@ -3886,7 +3886,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JERRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jerry3), .party = {.NoItemDefaultMoves = sParty_Jerry3}, }, @@ -3900,7 +3900,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JERRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jerry4), .party = {.NoItemDefaultMoves = sParty_Jerry4}, }, @@ -3914,7 +3914,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JERRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jerry5), .party = {.NoItemDefaultMoves = sParty_Jerry5}, }, @@ -3928,7 +3928,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAREN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Karen1), .party = {.NoItemDefaultMoves = sParty_Karen1}, }, @@ -3942,7 +3942,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GEORGIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Georgia), .party = {.NoItemDefaultMoves = sParty_Georgia}, }, @@ -3956,7 +3956,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAREN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Karen2), .party = {.NoItemDefaultMoves = sParty_Karen2}, }, @@ -3970,7 +3970,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAREN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Karen3), .party = {.NoItemDefaultMoves = sParty_Karen3}, }, @@ -3984,7 +3984,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAREN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Karen4), .party = {.NoItemDefaultMoves = sParty_Karen4}, }, @@ -3998,7 +3998,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAREN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Karen5), .party = {.NoItemDefaultMoves = sParty_Karen5}, }, @@ -4012,7 +4012,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATE & JOY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_KateAndJoy), .party = {.NoItemCustomMoves = sParty_KateAndJoy}, }, @@ -4026,7 +4026,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANNA & MEG"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AnnaAndMeg1), .party = {.NoItemCustomMoves = sParty_AnnaAndMeg1}, }, @@ -4040,7 +4040,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANNA & MEG"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AnnaAndMeg2), .party = {.NoItemCustomMoves = sParty_AnnaAndMeg2}, }, @@ -4054,7 +4054,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANNA & MEG"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AnnaAndMeg3), .party = {.NoItemCustomMoves = sParty_AnnaAndMeg3}, }, @@ -4068,7 +4068,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANNA & MEG"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AnnaAndMeg4), .party = {.NoItemCustomMoves = sParty_AnnaAndMeg4}, }, @@ -4082,7 +4082,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANNA & MEG"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AnnaAndMeg5), .party = {.NoItemCustomMoves = sParty_AnnaAndMeg5}, }, @@ -4096,7 +4096,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VICTOR"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Victor), .party = {.ItemDefaultMoves = sParty_Victor}, }, @@ -4110,7 +4110,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Miguel1), .party = {.ItemDefaultMoves = sParty_Miguel1}, }, @@ -4124,7 +4124,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("COLTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Colton), .party = {.ItemCustomMoves = sParty_Colton}, }, @@ -4138,7 +4138,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Miguel2), .party = {.ItemDefaultMoves = sParty_Miguel2}, }, @@ -4152,7 +4152,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Miguel3), .party = {.ItemDefaultMoves = sParty_Miguel3}, }, @@ -4166,7 +4166,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Miguel4), .party = {.ItemDefaultMoves = sParty_Miguel4}, }, @@ -4180,7 +4180,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Miguel5), .party = {.ItemDefaultMoves = sParty_Miguel5}, }, @@ -4194,7 +4194,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VICTORIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT, .partySize = ARRAY_COUNT(sParty_Victoria), .party = {.ItemDefaultMoves = sParty_Victoria}, }, @@ -4208,7 +4208,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VANESSA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Vanessa), .party = {.ItemDefaultMoves = sParty_Vanessa}, }, @@ -4222,7 +4222,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BETHANY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bethany), .party = {.ItemDefaultMoves = sParty_Bethany}, }, @@ -4236,7 +4236,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isabel1), .party = {.ItemDefaultMoves = sParty_Isabel1}, }, @@ -4250,7 +4250,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isabel2), .party = {.ItemDefaultMoves = sParty_Isabel2}, }, @@ -4264,7 +4264,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isabel3), .party = {.ItemDefaultMoves = sParty_Isabel3}, }, @@ -4278,7 +4278,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isabel4), .party = {.ItemDefaultMoves = sParty_Isabel4}, }, @@ -4292,7 +4292,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isabel5), .party = {.ItemDefaultMoves = sParty_Isabel5}, }, @@ -4306,7 +4306,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TIMOTHY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Timothy1), .party = {.NoItemDefaultMoves = sParty_Timothy1}, }, @@ -4320,7 +4320,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TIMOTHY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Timothy2), .party = {.NoItemCustomMoves = sParty_Timothy2}, }, @@ -4334,7 +4334,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TIMOTHY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Timothy3), .party = {.NoItemCustomMoves = sParty_Timothy3}, }, @@ -4348,7 +4348,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TIMOTHY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Timothy4), .party = {.NoItemCustomMoves = sParty_Timothy4}, }, @@ -4362,7 +4362,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TIMOTHY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Timothy5), .party = {.NoItemCustomMoves = sParty_Timothy5}, }, @@ -4376,7 +4376,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VICKY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Vicky), .party = {.NoItemCustomMoves = sParty_Vicky}, }, @@ -4390,7 +4390,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHELBY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Shelby1), .party = {.NoItemDefaultMoves = sParty_Shelby1}, }, @@ -4404,7 +4404,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHELBY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Shelby2), .party = {.NoItemDefaultMoves = sParty_Shelby2}, }, @@ -4418,7 +4418,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHELBY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Shelby3), .party = {.NoItemDefaultMoves = sParty_Shelby3}, }, @@ -4432,7 +4432,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHELBY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Shelby4), .party = {.NoItemDefaultMoves = sParty_Shelby4}, }, @@ -4446,7 +4446,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHELBY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Shelby5), .party = {.NoItemDefaultMoves = sParty_Shelby5}, }, @@ -4460,7 +4460,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CALVIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Calvin1), .party = {.NoItemDefaultMoves = sParty_Calvin1}, }, @@ -4474,7 +4474,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BILLY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Billy), .party = {.NoItemDefaultMoves = sParty_Billy}, }, @@ -4488,7 +4488,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOSH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Josh), .party = {.NoItemCustomMoves = sParty_Josh}, }, @@ -4502,7 +4502,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TOMMY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tommy), .party = {.NoItemDefaultMoves = sParty_Tommy}, }, @@ -4516,7 +4516,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Joey), .party = {.NoItemDefaultMoves = sParty_Joey}, }, @@ -4530,7 +4530,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ben), .party = {.NoItemCustomMoves = sParty_Ben}, }, @@ -4544,7 +4544,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("QUINCY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Quincy), .party = {.NoItemCustomMoves = sParty_Quincy}, }, @@ -4558,7 +4558,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATELYNN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Katelynn), .party = {.NoItemCustomMoves = sParty_Katelynn}, }, @@ -4572,7 +4572,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAYLEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jaylen), .party = {.NoItemDefaultMoves = sParty_Jaylen}, }, @@ -4586,7 +4586,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DILLON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dillon), .party = {.NoItemDefaultMoves = sParty_Dillon}, }, @@ -4600,7 +4600,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CALVIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Calvin2), .party = {.NoItemDefaultMoves = sParty_Calvin2}, }, @@ -4614,7 +4614,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CALVIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Calvin3), .party = {.NoItemDefaultMoves = sParty_Calvin3}, }, @@ -4628,7 +4628,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CALVIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Calvin4), .party = {.NoItemDefaultMoves = sParty_Calvin4}, }, @@ -4642,7 +4642,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CALVIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Calvin5), .party = {.NoItemDefaultMoves = sParty_Calvin5}, }, @@ -4656,7 +4656,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDDIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Eddie), .party = {.NoItemDefaultMoves = sParty_Eddie}, }, @@ -4670,7 +4670,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALLEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Allen), .party = {.NoItemDefaultMoves = sParty_Allen}, }, @@ -4684,7 +4684,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TIMMY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Timmy), .party = {.NoItemDefaultMoves = sParty_Timmy}, }, @@ -4698,7 +4698,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLACE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wallace), .party = {.ItemCustomMoves = sParty_Wallace}, }, @@ -4712,7 +4712,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANDREW"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Andrew), .party = {.NoItemDefaultMoves = sParty_Andrew}, }, @@ -4726,7 +4726,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("IVAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ivan), .party = {.NoItemDefaultMoves = sParty_Ivan}, }, @@ -4740,7 +4740,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CLAUDE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Claude), .party = {.NoItemDefaultMoves = sParty_Claude}, }, @@ -4754,7 +4754,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ELLIOT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Elliot1), .party = {.NoItemDefaultMoves = sParty_Elliot1}, }, @@ -4768,7 +4768,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NED"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ned), .party = {.NoItemDefaultMoves = sParty_Ned}, }, @@ -4782,7 +4782,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DALE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dale), .party = {.NoItemDefaultMoves = sParty_Dale}, }, @@ -4796,7 +4796,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NOLAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nolan), .party = {.NoItemDefaultMoves = sParty_Nolan}, }, @@ -4810,7 +4810,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BARNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Barny), .party = {.NoItemDefaultMoves = sParty_Barny}, }, @@ -4824,7 +4824,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WADE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Wade), .party = {.NoItemDefaultMoves = sParty_Wade}, }, @@ -4838,7 +4838,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CARTER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Carter), .party = {.NoItemDefaultMoves = sParty_Carter}, }, @@ -4852,7 +4852,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ELLIOT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Elliot2), .party = {.NoItemDefaultMoves = sParty_Elliot2}, }, @@ -4866,7 +4866,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ELLIOT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Elliot3), .party = {.NoItemDefaultMoves = sParty_Elliot3}, }, @@ -4880,7 +4880,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ELLIOT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Elliot4), .party = {.NoItemDefaultMoves = sParty_Elliot4}, }, @@ -4894,7 +4894,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ELLIOT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT, .partySize = ARRAY_COUNT(sParty_Elliot5), .party = {.NoItemDefaultMoves = sParty_Elliot5}, }, @@ -4908,7 +4908,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RONALD"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ronald), .party = {.NoItemDefaultMoves = sParty_Ronald}, }, @@ -4922,7 +4922,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACOB"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jacob), .party = {.NoItemDefaultMoves = sParty_Jacob}, }, @@ -4936,7 +4936,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANTHONY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Anthony), .party = {.NoItemDefaultMoves = sParty_Anthony}, }, @@ -4950,7 +4950,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BENJAMIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Benjamin1), .party = {.NoItemDefaultMoves = sParty_Benjamin1}, }, @@ -4964,7 +4964,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BENJAMIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Benjamin2), .party = {.NoItemDefaultMoves = sParty_Benjamin2}, }, @@ -4978,7 +4978,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BENJAMIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Benjamin3), .party = {.NoItemDefaultMoves = sParty_Benjamin3}, }, @@ -4992,7 +4992,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BENJAMIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Benjamin4), .party = {.NoItemDefaultMoves = sParty_Benjamin4}, }, @@ -5006,7 +5006,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BENJAMIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Benjamin5), .party = {.NoItemDefaultMoves = sParty_Benjamin5}, }, @@ -5020,7 +5020,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ABIGAIL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Abigail1), .party = {.NoItemDefaultMoves = sParty_Abigail1}, }, @@ -5034,7 +5034,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JASMINE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jasmine), .party = {.NoItemDefaultMoves = sParty_Jasmine}, }, @@ -5048,7 +5048,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ABIGAIL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Abigail2), .party = {.NoItemDefaultMoves = sParty_Abigail2}, }, @@ -5062,7 +5062,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ABIGAIL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Abigail3), .party = {.NoItemDefaultMoves = sParty_Abigail3}, }, @@ -5076,7 +5076,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ABIGAIL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Abigail4), .party = {.NoItemDefaultMoves = sParty_Abigail4}, }, @@ -5090,7 +5090,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ABIGAIL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Abigail5), .party = {.NoItemDefaultMoves = sParty_Abigail5}, }, @@ -5104,7 +5104,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DYLAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dylan1), .party = {.NoItemDefaultMoves = sParty_Dylan1}, }, @@ -5118,7 +5118,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DYLAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dylan2), .party = {.NoItemDefaultMoves = sParty_Dylan2}, }, @@ -5132,7 +5132,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DYLAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dylan3), .party = {.NoItemDefaultMoves = sParty_Dylan3}, }, @@ -5146,7 +5146,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DYLAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dylan4), .party = {.NoItemDefaultMoves = sParty_Dylan4}, }, @@ -5160,7 +5160,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DYLAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dylan5), .party = {.NoItemDefaultMoves = sParty_Dylan5}, }, @@ -5174,7 +5174,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Maria1), .party = {.NoItemDefaultMoves = sParty_Maria1}, }, @@ -5188,7 +5188,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Maria2), .party = {.NoItemDefaultMoves = sParty_Maria2}, }, @@ -5202,7 +5202,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Maria3), .party = {.NoItemDefaultMoves = sParty_Maria3}, }, @@ -5216,7 +5216,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Maria4), .party = {.NoItemDefaultMoves = sParty_Maria4}, }, @@ -5230,7 +5230,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Maria5), .party = {.NoItemDefaultMoves = sParty_Maria5}, }, @@ -5244,7 +5244,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAMDEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Camden), .party = {.NoItemDefaultMoves = sParty_Camden}, }, @@ -5258,7 +5258,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DEMETRIUS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Demetrius), .party = {.NoItemDefaultMoves = sParty_Demetrius}, }, @@ -5272,7 +5272,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAIAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaiah1), .party = {.NoItemDefaultMoves = sParty_Isaiah1}, }, @@ -5286,7 +5286,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PABLO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Pablo1), .party = {.NoItemDefaultMoves = sParty_Pablo1}, }, @@ -5300,7 +5300,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CHASE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Chase), .party = {.NoItemDefaultMoves = sParty_Chase}, }, @@ -5314,7 +5314,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAIAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaiah2), .party = {.NoItemDefaultMoves = sParty_Isaiah2}, }, @@ -5328,7 +5328,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAIAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaiah3), .party = {.NoItemDefaultMoves = sParty_Isaiah3}, }, @@ -5342,7 +5342,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAIAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaiah4), .party = {.NoItemDefaultMoves = sParty_Isaiah4}, }, @@ -5356,7 +5356,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAIAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaiah5), .party = {.NoItemDefaultMoves = sParty_Isaiah5}, }, @@ -5370,7 +5370,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISOBEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isobel), .party = {.NoItemDefaultMoves = sParty_Isobel}, }, @@ -5384,7 +5384,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DONNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Donny), .party = {.NoItemDefaultMoves = sParty_Donny}, }, @@ -5398,7 +5398,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TALIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Talia), .party = {.NoItemDefaultMoves = sParty_Talia}, }, @@ -5412,7 +5412,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATELYN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Katelyn1), .party = {.NoItemDefaultMoves = sParty_Katelyn1}, }, @@ -5426,7 +5426,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALLISON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Allison), .party = {.NoItemDefaultMoves = sParty_Allison}, }, @@ -5440,7 +5440,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATELYN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Katelyn2), .party = {.NoItemDefaultMoves = sParty_Katelyn2}, }, @@ -5454,7 +5454,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATELYN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Katelyn3), .party = {.NoItemDefaultMoves = sParty_Katelyn3}, }, @@ -5468,7 +5468,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATELYN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Katelyn4), .party = {.NoItemDefaultMoves = sParty_Katelyn4}, }, @@ -5482,7 +5482,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATELYN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Katelyn5), .party = {.NoItemDefaultMoves = sParty_Katelyn5}, }, @@ -5496,7 +5496,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NICOLAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nicolas1), .party = {.NoItemDefaultMoves = sParty_Nicolas1}, }, @@ -5510,7 +5510,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NICOLAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nicolas2), .party = {.NoItemDefaultMoves = sParty_Nicolas2}, }, @@ -5524,7 +5524,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NICOLAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nicolas3), .party = {.NoItemDefaultMoves = sParty_Nicolas3}, }, @@ -5538,7 +5538,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NICOLAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nicolas4), .party = {.NoItemDefaultMoves = sParty_Nicolas4}, }, @@ -5552,7 +5552,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NICOLAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nicolas5), .party = {.ItemDefaultMoves = sParty_Nicolas5}, }, @@ -5566,7 +5566,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AARON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Aaron), .party = {.NoItemCustomMoves = sParty_Aaron}, }, @@ -5580,7 +5580,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PERRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Perry), .party = {.NoItemDefaultMoves = sParty_Perry}, }, @@ -5594,7 +5594,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HUGH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Hugh), .party = {.NoItemDefaultMoves = sParty_Hugh}, }, @@ -5608,7 +5608,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PHIL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Phil), .party = {.NoItemDefaultMoves = sParty_Phil}, }, @@ -5622,7 +5622,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JARED"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jared), .party = {.NoItemDefaultMoves = sParty_Jared}, }, @@ -5636,7 +5636,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HUMBERTO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Humberto), .party = {.NoItemDefaultMoves = sParty_Humberto}, }, @@ -5650,7 +5650,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PRESLEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Presley), .party = {.NoItemDefaultMoves = sParty_Presley}, }, @@ -5664,7 +5664,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDWARDO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Edwardo), .party = {.NoItemDefaultMoves = sParty_Edwardo}, }, @@ -5678,7 +5678,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("COLIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Colin), .party = {.NoItemDefaultMoves = sParty_Colin}, }, @@ -5692,7 +5692,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROBERT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Robert1), .party = {.NoItemDefaultMoves = sParty_Robert1}, }, @@ -5706,7 +5706,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BENNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Benny), .party = {.NoItemDefaultMoves = sParty_Benny}, }, @@ -5720,7 +5720,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CHESTER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Chester), .party = {.NoItemDefaultMoves = sParty_Chester}, }, @@ -5734,7 +5734,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROBERT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Robert2), .party = {.NoItemDefaultMoves = sParty_Robert2}, }, @@ -5748,7 +5748,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROBERT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Robert3), .party = {.NoItemDefaultMoves = sParty_Robert3}, }, @@ -5762,7 +5762,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROBERT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Robert4), .party = {.NoItemDefaultMoves = sParty_Robert4}, }, @@ -5776,7 +5776,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROBERT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Robert5), .party = {.NoItemDefaultMoves = sParty_Robert5}, }, @@ -5790,7 +5790,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALEX"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Alex), .party = {.NoItemDefaultMoves = sParty_Alex}, }, @@ -5804,7 +5804,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BECK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Beck), .party = {.NoItemDefaultMoves = sParty_Beck}, }, @@ -5818,7 +5818,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("YASU"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT, .partySize = ARRAY_COUNT(sParty_Yasu), .party = {.NoItemDefaultMoves = sParty_Yasu}, }, @@ -5832,7 +5832,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TAKASHI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT, .partySize = ARRAY_COUNT(sParty_Takashi), .party = {.NoItemDefaultMoves = sParty_Takashi}, }, @@ -5958,7 +5958,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOCELYN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jocelyn), .party = {.NoItemDefaultMoves = sParty_Jocelyn}, }, @@ -5972,7 +5972,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LAURA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Laura), .party = {.NoItemDefaultMoves = sParty_Laura}, }, @@ -5986,7 +5986,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CYNDY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cyndy1), .party = {.NoItemDefaultMoves = sParty_Cyndy1}, }, @@ -6000,7 +6000,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CORA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cora), .party = {.NoItemDefaultMoves = sParty_Cora}, }, @@ -6014,7 +6014,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PAULA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Paula), .party = {.NoItemDefaultMoves = sParty_Paula}, }, @@ -6028,7 +6028,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CYNDY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cyndy2), .party = {.NoItemDefaultMoves = sParty_Cyndy2}, }, @@ -6042,7 +6042,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CYNDY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cyndy3), .party = {.NoItemDefaultMoves = sParty_Cyndy3}, }, @@ -6056,7 +6056,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CYNDY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cyndy4), .party = {.NoItemDefaultMoves = sParty_Cyndy4}, }, @@ -6070,7 +6070,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CYNDY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cyndy5), .party = {.NoItemDefaultMoves = sParty_Cyndy5}, }, @@ -6084,7 +6084,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MADELINE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Madeline1), .party = {.NoItemCustomMoves = sParty_Madeline1}, }, @@ -6098,7 +6098,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CLARISSA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Clarissa), .party = {.NoItemDefaultMoves = sParty_Clarissa}, }, @@ -6112,7 +6112,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANGELICA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Angelica), .party = {.NoItemCustomMoves = sParty_Angelica}, }, @@ -6126,7 +6126,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MADELINE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Madeline2), .party = {.NoItemCustomMoves = sParty_Madeline2}, }, @@ -6140,7 +6140,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MADELINE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Madeline3), .party = {.NoItemCustomMoves = sParty_Madeline3}, }, @@ -6154,7 +6154,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MADELINE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Madeline4), .party = {.NoItemCustomMoves = sParty_Madeline4}, }, @@ -6168,7 +6168,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MADELINE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Madeline5), .party = {.NoItemCustomMoves = sParty_Madeline5}, }, @@ -6182,7 +6182,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BEVERLY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Beverly), .party = {.NoItemDefaultMoves = sParty_Beverly}, }, @@ -6196,7 +6196,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("IMANI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Imani), .party = {.NoItemDefaultMoves = sParty_Imani}, }, @@ -6210,7 +6210,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KYLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kyla), .party = {.NoItemDefaultMoves = sParty_Kyla}, }, @@ -6224,7 +6224,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DENISE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Denise), .party = {.NoItemDefaultMoves = sParty_Denise}, }, @@ -6238,7 +6238,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BETH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Beth), .party = {.NoItemDefaultMoves = sParty_Beth}, }, @@ -6252,7 +6252,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TARA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tara), .party = {.NoItemDefaultMoves = sParty_Tara}, }, @@ -6266,7 +6266,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MISSY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Missy), .party = {.NoItemDefaultMoves = sParty_Missy}, }, @@ -6280,7 +6280,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALICE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Alice), .party = {.NoItemDefaultMoves = sParty_Alice}, }, @@ -6294,7 +6294,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jenny1), .party = {.NoItemDefaultMoves = sParty_Jenny1}, }, @@ -6308,7 +6308,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRACE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Grace), .party = {.NoItemDefaultMoves = sParty_Grace}, }, @@ -6322,7 +6322,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TANYA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tanya), .party = {.NoItemDefaultMoves = sParty_Tanya}, }, @@ -6336,7 +6336,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHARON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Sharon), .party = {.NoItemDefaultMoves = sParty_Sharon}, }, @@ -6350,7 +6350,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NIKKI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nikki), .party = {.NoItemDefaultMoves = sParty_Nikki}, }, @@ -6364,7 +6364,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Brenda), .party = {.NoItemDefaultMoves = sParty_Brenda}, }, @@ -6378,7 +6378,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Katie), .party = {.NoItemDefaultMoves = sParty_Katie}, }, @@ -6392,7 +6392,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SUSIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Susie), .party = {.NoItemDefaultMoves = sParty_Susie}, }, @@ -6406,7 +6406,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KARA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kara), .party = {.NoItemDefaultMoves = sParty_Kara}, }, @@ -6420,7 +6420,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DANA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dana), .party = {.NoItemDefaultMoves = sParty_Dana}, }, @@ -6434,7 +6434,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SIENNA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Sienna), .party = {.NoItemDefaultMoves = sParty_Sienna}, }, @@ -6448,7 +6448,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DEBRA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Debra), .party = {.NoItemDefaultMoves = sParty_Debra}, }, @@ -6462,7 +6462,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LINDA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Linda), .party = {.NoItemDefaultMoves = sParty_Linda}, }, @@ -6476,7 +6476,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAYLEE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kaylee), .party = {.NoItemDefaultMoves = sParty_Kaylee}, }, @@ -6490,7 +6490,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LAUREL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Laurel), .party = {.NoItemDefaultMoves = sParty_Laurel}, }, @@ -6504,7 +6504,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CARLEE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Carlee), .party = {.NoItemDefaultMoves = sParty_Carlee}, }, @@ -6518,7 +6518,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jenny2), .party = {.NoItemDefaultMoves = sParty_Jenny2}, }, @@ -6532,7 +6532,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jenny3), .party = {.NoItemDefaultMoves = sParty_Jenny3}, }, @@ -6546,7 +6546,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jenny4), .party = {.NoItemDefaultMoves = sParty_Jenny4}, }, @@ -6560,7 +6560,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jenny5), .party = {.NoItemDefaultMoves = sParty_Jenny5}, }, @@ -6574,7 +6574,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HEIDI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Heidi), .party = {.NoItemCustomMoves = sParty_Heidi}, }, @@ -6588,7 +6588,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BECKY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Becky), .party = {.NoItemCustomMoves = sParty_Becky}, }, @@ -6602,7 +6602,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAROL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Carol), .party = {.NoItemDefaultMoves = sParty_Carol}, }, @@ -6616,7 +6616,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NANCY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nancy), .party = {.NoItemDefaultMoves = sParty_Nancy}, }, @@ -6630,7 +6630,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARTHA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Martha), .party = {.NoItemDefaultMoves = sParty_Martha}, }, @@ -6644,7 +6644,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DIANA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Diana1), .party = {.NoItemDefaultMoves = sParty_Diana1}, }, @@ -6658,7 +6658,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CEDRIC"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cedric), .party = {.NoItemCustomMoves = sParty_Cedric}, }, @@ -6672,7 +6672,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("IRENE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Irene), .party = {.NoItemDefaultMoves = sParty_Irene}, }, @@ -6686,7 +6686,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DIANA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Diana2), .party = {.NoItemDefaultMoves = sParty_Diana2}, }, @@ -6700,7 +6700,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DIANA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Diana3), .party = {.NoItemDefaultMoves = sParty_Diana3}, }, @@ -6714,7 +6714,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DIANA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Diana4), .party = {.NoItemDefaultMoves = sParty_Diana4}, }, @@ -6728,7 +6728,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DIANA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Diana5), .party = {.NoItemDefaultMoves = sParty_Diana5}, }, @@ -6742,7 +6742,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AMY & LIV"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AmyAndLiv1), .party = {.NoItemDefaultMoves = sParty_AmyAndLiv1}, }, @@ -6756,7 +6756,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AMY & LIV"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AmyAndLiv2), .party = {.NoItemDefaultMoves = sParty_AmyAndLiv2}, }, @@ -6770,7 +6770,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GINA & MIA"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GinaAndMia1), .party = {.NoItemDefaultMoves = sParty_GinaAndMia1}, }, @@ -6784,7 +6784,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MIU & YUKI"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_MiuAndYuki), .party = {.NoItemDefaultMoves = sParty_MiuAndYuki}, }, @@ -6798,7 +6798,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AMY & LIV"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AmyAndLiv3), .party = {.NoItemDefaultMoves = sParty_AmyAndLiv3}, }, @@ -6812,7 +6812,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GINA & MIA"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GinaAndMia2), .party = {.NoItemCustomMoves = sParty_GinaAndMia2}, }, @@ -6826,7 +6826,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AMY & LIV"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AmyAndLiv4), .party = {.NoItemDefaultMoves = sParty_AmyAndLiv4}, }, @@ -6840,7 +6840,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AMY & LIV"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AmyAndLiv5), .party = {.NoItemCustomMoves = sParty_AmyAndLiv5}, }, @@ -6854,7 +6854,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AMY & LIV"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_AmyAndLiv6), .party = {.NoItemCustomMoves = sParty_AmyAndLiv6}, }, @@ -6868,7 +6868,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HUEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Huey), .party = {.NoItemDefaultMoves = sParty_Huey}, }, @@ -6882,7 +6882,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDMOND"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Edmond), .party = {.NoItemDefaultMoves = sParty_Edmond}, }, @@ -6896,7 +6896,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ERNEST"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ernest1), .party = {.NoItemDefaultMoves = sParty_Ernest1}, }, @@ -6910,7 +6910,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DWAYNE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dwayne), .party = {.NoItemDefaultMoves = sParty_Dwayne}, }, @@ -6924,7 +6924,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PHILLIP"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Phillip), .party = {.NoItemDefaultMoves = sParty_Phillip}, }, @@ -6938,7 +6938,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LEONARD"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Leonard), .party = {.NoItemDefaultMoves = sParty_Leonard}, }, @@ -6952,7 +6952,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DUNCAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Duncan), .party = {.NoItemDefaultMoves = sParty_Duncan}, }, @@ -6966,7 +6966,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ERNEST"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ernest2), .party = {.NoItemDefaultMoves = sParty_Ernest2}, }, @@ -6980,7 +6980,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ERNEST"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ernest3), .party = {.NoItemDefaultMoves = sParty_Ernest3}, }, @@ -6994,7 +6994,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ERNEST"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ernest4), .party = {.NoItemDefaultMoves = sParty_Ernest4}, }, @@ -7008,7 +7008,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ERNEST"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ernest5), .party = {.NoItemDefaultMoves = sParty_Ernest5}, }, @@ -7022,7 +7022,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ELI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Eli), .party = {.NoItemDefaultMoves = sParty_Eli}, }, @@ -7036,7 +7036,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANNIKA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Annika), .party = {.ItemCustomMoves = sParty_Annika}, }, @@ -7050,7 +7050,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAZMYN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Jazmyn), .party = {.NoItemDefaultMoves = sParty_Jazmyn}, }, @@ -7064,7 +7064,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JONAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Jonas), .party = {.NoItemCustomMoves = sParty_Jonas}, }, @@ -7078,7 +7078,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAYLEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kayley), .party = {.NoItemCustomMoves = sParty_Kayley}, }, @@ -7092,7 +7092,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AURON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Auron), .party = {.NoItemDefaultMoves = sParty_Auron}, }, @@ -7106,7 +7106,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KELVIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kelvin), .party = {.NoItemDefaultMoves = sParty_Kelvin}, }, @@ -7120,7 +7120,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARLEY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Marley), .party = {.ItemCustomMoves = sParty_Marley}, }, @@ -7134,7 +7134,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("REYNA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Reyna), .party = {.NoItemDefaultMoves = sParty_Reyna}, }, @@ -7148,7 +7148,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HUDSON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Hudson), .party = {.NoItemDefaultMoves = sParty_Hudson}, }, @@ -7162,7 +7162,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CONOR"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Conor), .party = {.NoItemDefaultMoves = sParty_Conor}, }, @@ -7176,7 +7176,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDWIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Edwin1), .party = {.NoItemDefaultMoves = sParty_Edwin1}, }, @@ -7190,7 +7190,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HECTOR"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Hector), .party = {.NoItemDefaultMoves = sParty_Hector}, }, @@ -7204,7 +7204,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TABITHA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_TabithaMossdeep), .party = {.NoItemDefaultMoves = sParty_TabithaMossdeep}, }, @@ -7218,7 +7218,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDWIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Edwin2), .party = {.NoItemDefaultMoves = sParty_Edwin2}, }, @@ -7232,7 +7232,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDWIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Edwin3), .party = {.NoItemDefaultMoves = sParty_Edwin3}, }, @@ -7246,7 +7246,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDWIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Edwin4), .party = {.NoItemDefaultMoves = sParty_Edwin4}, }, @@ -7260,7 +7260,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("EDWIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Edwin5), .party = {.NoItemDefaultMoves = sParty_Edwin5}, }, @@ -7274,7 +7274,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_WallyVR1), .party = {.NoItemCustomMoves = sParty_WallyVR1}, }, @@ -7288,7 +7288,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRoute103Mudkip), .party = {.NoItemDefaultMoves = sParty_BrendanRoute103Mudkip}, }, @@ -7302,7 +7302,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRoute110Mudkip), .party = {.NoItemDefaultMoves = sParty_BrendanRoute110Mudkip}, }, @@ -7316,7 +7316,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRoute119Mudkip), .party = {.NoItemDefaultMoves = sParty_BrendanRoute119Mudkip}, }, @@ -7330,7 +7330,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_BrendanRoute103Treecko), .party = {.NoItemDefaultMoves = sParty_BrendanRoute103Treecko}, }, @@ -7344,7 +7344,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRoute110Treecko), .party = {.NoItemDefaultMoves = sParty_BrendanRoute110Treecko}, }, @@ -7358,7 +7358,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRoute119Treecko), .party = {.NoItemDefaultMoves = sParty_BrendanRoute119Treecko}, }, @@ -7372,7 +7372,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRoute103Torchic), .party = {.NoItemDefaultMoves = sParty_BrendanRoute103Torchic}, }, @@ -7386,7 +7386,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRoute110Torchic), .party = {.NoItemDefaultMoves = sParty_BrendanRoute110Torchic}, }, @@ -7400,7 +7400,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRoute119Torchic), .party = {.NoItemDefaultMoves = sParty_BrendanRoute119Torchic}, }, @@ -7414,7 +7414,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute103Mudkip), .party = {.NoItemDefaultMoves = sParty_MayRoute103Mudkip}, }, @@ -7428,7 +7428,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute110Mudkip), .party = {.NoItemDefaultMoves = sParty_MayRoute110Mudkip}, }, @@ -7442,7 +7442,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute119Mudkip), .party = {.NoItemDefaultMoves = sParty_MayRoute119Mudkip}, }, @@ -7456,7 +7456,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute103Treecko), .party = {.NoItemDefaultMoves = sParty_MayRoute103Treecko}, }, @@ -7470,7 +7470,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute110Treecko), .party = {.NoItemDefaultMoves = sParty_MayRoute110Treecko}, }, @@ -7484,7 +7484,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute119Treecko), .party = {.NoItemDefaultMoves = sParty_MayRoute119Treecko}, }, @@ -7498,7 +7498,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute103Torchic), .party = {.NoItemDefaultMoves = sParty_MayRoute103Torchic}, }, @@ -7512,7 +7512,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute110Torchic), .party = {.NoItemDefaultMoves = sParty_MayRoute110Torchic}, }, @@ -7526,7 +7526,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRoute119Torchic), .party = {.NoItemDefaultMoves = sParty_MayRoute119Torchic}, }, @@ -7540,7 +7540,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAAC"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaac1), .party = {.NoItemDefaultMoves = sParty_Isaac1}, }, @@ -7554,7 +7554,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DAVIS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Davis), .party = {.NoItemDefaultMoves = sParty_Davis}, }, @@ -7568,7 +7568,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MITCHELL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Mitchell), .party = {.NoItemCustomMoves = sParty_Mitchell}, }, @@ -7582,7 +7582,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAAC"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaac2), .party = {.NoItemDefaultMoves = sParty_Isaac2}, }, @@ -7596,7 +7596,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAAC"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaac3), .party = {.NoItemDefaultMoves = sParty_Isaac3}, }, @@ -7610,7 +7610,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAAC"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaac4), .party = {.NoItemDefaultMoves = sParty_Isaac4}, }, @@ -7624,7 +7624,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISAAC"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isaac5), .party = {.NoItemDefaultMoves = sParty_Isaac5}, }, @@ -7638,7 +7638,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LYDIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lydia1), .party = {.NoItemDefaultMoves = sParty_Lydia1}, }, @@ -7652,7 +7652,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HALLE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Halle), .party = {.NoItemDefaultMoves = sParty_Halle}, }, @@ -7666,7 +7666,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GARRISON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Garrison), .party = {.NoItemDefaultMoves = sParty_Garrison}, }, @@ -7680,7 +7680,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LYDIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lydia2), .party = {.NoItemDefaultMoves = sParty_Lydia2}, }, @@ -7694,7 +7694,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LYDIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lydia3), .party = {.NoItemDefaultMoves = sParty_Lydia3}, }, @@ -7708,7 +7708,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LYDIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lydia4), .party = {.NoItemDefaultMoves = sParty_Lydia4}, }, @@ -7722,7 +7722,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LYDIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lydia5), .party = {.NoItemDefaultMoves = sParty_Lydia5}, }, @@ -7736,7 +7736,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Jackson1), .party = {.NoItemDefaultMoves = sParty_Jackson1}, }, @@ -7750,7 +7750,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LORENZO"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Lorenzo), .party = {.NoItemDefaultMoves = sParty_Lorenzo}, }, @@ -7764,7 +7764,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SEBASTIAN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Sebastian), .party = {.NoItemDefaultMoves = sParty_Sebastian}, }, @@ -7778,7 +7778,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Jackson2), .party = {.NoItemDefaultMoves = sParty_Jackson2}, }, @@ -7792,7 +7792,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Jackson3), .party = {.NoItemDefaultMoves = sParty_Jackson3}, }, @@ -7806,7 +7806,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Jackson4), .party = {.NoItemDefaultMoves = sParty_Jackson4}, }, @@ -7820,7 +7820,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JACKSON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Jackson5), .party = {.NoItemDefaultMoves = sParty_Jackson5}, }, @@ -7834,7 +7834,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Catherine1), .party = {.NoItemDefaultMoves = sParty_Catherine1}, }, @@ -7848,7 +7848,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JENNA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Jenna), .party = {.NoItemDefaultMoves = sParty_Jenna}, }, @@ -7862,7 +7862,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SOPHIA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Sophia), .party = {.NoItemDefaultMoves = sParty_Sophia}, }, @@ -7876,7 +7876,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Catherine2), .party = {.NoItemDefaultMoves = sParty_Catherine2}, }, @@ -7890,7 +7890,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Catherine3), .party = {.NoItemDefaultMoves = sParty_Catherine3}, }, @@ -7904,7 +7904,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Catherine4), .party = {.NoItemDefaultMoves = sParty_Catherine4}, }, @@ -7918,7 +7918,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CATHERINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Catherine5), .party = {.NoItemDefaultMoves = sParty_Catherine5}, }, @@ -7932,7 +7932,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JULIO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Julio), .party = {.NoItemDefaultMoves = sParty_Julio}, }, @@ -7946,7 +7946,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern5), .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern5}, }, @@ -7960,7 +7960,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntUnused), .party = {.NoItemDefaultMoves = sParty_GruntUnused}, }, @@ -7974,7 +7974,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMtPyre4), .party = {.NoItemDefaultMoves = sParty_GruntMtPyre4}, }, @@ -7988,7 +7988,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntJaggedPass), .party = {.NoItemDefaultMoves = sParty_GruntJaggedPass}, }, @@ -8002,7 +8002,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARC"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Marc), .party = {.NoItemDefaultMoves = sParty_Marc}, }, @@ -8016,7 +8016,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Brenden), .party = {.NoItemDefaultMoves = sParty_Brenden}, }, @@ -8030,7 +8030,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LILITH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lilith), .party = {.NoItemDefaultMoves = sParty_Lilith}, }, @@ -8044,7 +8044,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cristian), .party = {.NoItemDefaultMoves = sParty_Cristian}, }, @@ -8058,7 +8058,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SYLVIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Sylvia), .party = {.NoItemDefaultMoves = sParty_Sylvia}, }, @@ -8072,7 +8072,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LEONARDO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Leonardo), .party = {.NoItemDefaultMoves = sParty_Leonardo}, }, @@ -8086,7 +8086,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ATHENA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Athena), .party = {.ItemCustomMoves = sParty_Athena}, }, @@ -8100,7 +8100,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HARRISON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Harrison), .party = {.NoItemDefaultMoves = sParty_Harrison}, }, @@ -8114,7 +8114,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMtChimney2), .party = {.NoItemDefaultMoves = sParty_GruntMtChimney2}, }, @@ -8128,7 +8128,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CLARENCE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Clarence), .party = {.NoItemDefaultMoves = sParty_Clarence}, }, @@ -8142,7 +8142,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TERRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Terry), .party = {.NoItemDefaultMoves = sParty_Terry}, }, @@ -8156,7 +8156,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NATE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nate), .party = {.NoItemDefaultMoves = sParty_Nate}, }, @@ -8170,7 +8170,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KATHLEEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kathleen), .party = {.NoItemDefaultMoves = sParty_Kathleen}, }, @@ -8184,7 +8184,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CLIFFORD"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Clifford), .party = {.NoItemDefaultMoves = sParty_Clifford}, }, @@ -8198,7 +8198,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NICHOLAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Nicholas), .party = {.NoItemDefaultMoves = sParty_Nicholas}, }, @@ -8212,7 +8212,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter3), .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter3}, }, @@ -8226,7 +8226,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter4), .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter4}, }, @@ -8240,7 +8240,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter5), .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter5}, }, @@ -8254,7 +8254,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter6), .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter6}, }, @@ -8268,7 +8268,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter7), .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter7}, }, @@ -8282,7 +8282,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MACEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Macey), .party = {.NoItemDefaultMoves = sParty_Macey}, }, @@ -8296,7 +8296,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_BrendanRustboroTreecko), .party = {.NoItemDefaultMoves = sParty_BrendanRustboroTreecko}, }, @@ -8310,7 +8310,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_BrendanRustboroMudkip), .party = {.NoItemDefaultMoves = sParty_BrendanRustboroMudkip}, }, @@ -8324,7 +8324,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PAXTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Paxton), .party = {.NoItemDefaultMoves = sParty_Paxton}, }, @@ -8338,7 +8338,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISABELLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isabella), .party = {.NoItemDefaultMoves = sParty_Isabella}, }, @@ -8352,7 +8352,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntWeatherInst5), .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst5}, }, @@ -8366,7 +8366,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TABITHA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_TabithaMtChimney), .party = {.NoItemDefaultMoves = sParty_TabithaMtChimney}, }, @@ -8380,7 +8380,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JONATHAN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_Jonathan), .party = {.NoItemDefaultMoves = sParty_Jonathan}, }, @@ -8394,7 +8394,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanRustboroTorchic), .party = {.NoItemDefaultMoves = sParty_BrendanRustboroTorchic}, }, @@ -8408,7 +8408,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_MayRustboroMudkip), .party = {.NoItemDefaultMoves = sParty_MayRustboroMudkip}, }, @@ -8422,7 +8422,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAXIE"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MaxieMagmaHideout), .party = {.NoItemDefaultMoves = sParty_MaxieMagmaHideout}, }, @@ -8436,7 +8436,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAXIE"), .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MaxieMtChimney), .party = {.NoItemDefaultMoves = sParty_MaxieMtChimney}, }, @@ -8450,7 +8450,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TIANA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tiana), .party = {.NoItemDefaultMoves = sParty_Tiana}, }, @@ -8464,7 +8464,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HALEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Haley1), .party = {.NoItemDefaultMoves = sParty_Haley1}, }, @@ -8478,7 +8478,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JANICE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Janice), .party = {.NoItemDefaultMoves = sParty_Janice}, }, @@ -8492,7 +8492,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VIVI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Vivi), .party = {.NoItemDefaultMoves = sParty_Vivi}, }, @@ -8506,7 +8506,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HALEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Haley2), .party = {.NoItemDefaultMoves = sParty_Haley2}, }, @@ -8520,7 +8520,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HALEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Haley3), .party = {.NoItemDefaultMoves = sParty_Haley3}, }, @@ -8534,7 +8534,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HALEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Haley4), .party = {.NoItemDefaultMoves = sParty_Haley4}, }, @@ -8548,7 +8548,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HALEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Haley5), .party = {.NoItemDefaultMoves = sParty_Haley5}, }, @@ -8562,7 +8562,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SALLY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Sally), .party = {.NoItemDefaultMoves = sParty_Sally}, }, @@ -8576,7 +8576,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROBIN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Robin), .party = {.NoItemDefaultMoves = sParty_Robin}, }, @@ -8590,7 +8590,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANDREA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Andrea), .party = {.NoItemDefaultMoves = sParty_Andrea}, }, @@ -8604,7 +8604,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISSY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Crissy), .party = {.NoItemDefaultMoves = sParty_Crissy}, }, @@ -8618,7 +8618,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RICK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rick), .party = {.NoItemDefaultMoves = sParty_Rick}, }, @@ -8632,7 +8632,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LYLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lyle), .party = {.NoItemDefaultMoves = sParty_Lyle}, }, @@ -8646,7 +8646,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOSE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jose), .party = {.NoItemDefaultMoves = sParty_Jose}, }, @@ -8660,7 +8660,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DOUG"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Doug), .party = {.NoItemDefaultMoves = sParty_Doug}, }, @@ -8674,7 +8674,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GREG"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Greg), .party = {.NoItemDefaultMoves = sParty_Greg}, }, @@ -8688,7 +8688,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KENT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kent), .party = {.NoItemDefaultMoves = sParty_Kent}, }, @@ -8702,7 +8702,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAMES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_James1), .party = {.NoItemDefaultMoves = sParty_James1}, }, @@ -8716,7 +8716,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAMES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_James2), .party = {.NoItemDefaultMoves = sParty_James2}, }, @@ -8730,7 +8730,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAMES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_James3), .party = {.NoItemDefaultMoves = sParty_James3}, }, @@ -8744,7 +8744,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAMES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_James4), .party = {.NoItemDefaultMoves = sParty_James4}, }, @@ -8758,7 +8758,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAMES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_James5), .party = {.NoItemDefaultMoves = sParty_James5}, }, @@ -8772,7 +8772,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRICE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Brice), .party = {.NoItemDefaultMoves = sParty_Brice}, }, @@ -8786,7 +8786,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TRENT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Trent1), .party = {.NoItemDefaultMoves = sParty_Trent1}, }, @@ -8800,7 +8800,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LENNY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lenny), .party = {.NoItemDefaultMoves = sParty_Lenny}, }, @@ -8814,7 +8814,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LUCAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lucas1), .party = {.NoItemDefaultMoves = sParty_Lucas1}, }, @@ -8828,7 +8828,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Alan), .party = {.NoItemDefaultMoves = sParty_Alan}, }, @@ -8842,7 +8842,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CLARK"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Clark), .party = {.NoItemDefaultMoves = sParty_Clark}, }, @@ -8856,7 +8856,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ERIC"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Eric), .party = {.NoItemDefaultMoves = sParty_Eric}, }, @@ -8870,7 +8870,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LUCAS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lucas2), .party = {.NoItemCustomMoves = sParty_Lucas2}, }, @@ -8884,7 +8884,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MIKE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Mike1), .party = {.NoItemCustomMoves = sParty_Mike1}, }, @@ -8898,7 +8898,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MIKE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Mike2), .party = {.NoItemDefaultMoves = sParty_Mike2}, }, @@ -8912,7 +8912,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TRENT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Trent2), .party = {.NoItemDefaultMoves = sParty_Trent2}, }, @@ -8926,7 +8926,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TRENT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Trent3), .party = {.NoItemDefaultMoves = sParty_Trent3}, }, @@ -8940,7 +8940,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TRENT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Trent4), .party = {.NoItemDefaultMoves = sParty_Trent4}, }, @@ -8954,7 +8954,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TRENT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Trent5), .party = {.NoItemDefaultMoves = sParty_Trent5}, }, @@ -8968,7 +8968,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DEZ & LUKE"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_DezAndLuke), .party = {.NoItemDefaultMoves = sParty_DezAndLuke}, }, @@ -8982,7 +8982,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LEA & JED"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_LeaAndJed), .party = {.NoItemDefaultMoves = sParty_LeaAndJed}, }, @@ -8996,7 +8996,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KIRA & DAN"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_KiraAndDan1), .party = {.NoItemDefaultMoves = sParty_KiraAndDan1}, }, @@ -9010,7 +9010,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KIRA & DAN"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_KiraAndDan2), .party = {.NoItemDefaultMoves = sParty_KiraAndDan2}, }, @@ -9024,7 +9024,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KIRA & DAN"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_KiraAndDan3), .party = {.NoItemDefaultMoves = sParty_KiraAndDan3}, }, @@ -9038,7 +9038,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KIRA & DAN"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_KiraAndDan4), .party = {.NoItemDefaultMoves = sParty_KiraAndDan4}, }, @@ -9052,7 +9052,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KIRA & DAN"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_KiraAndDan5), .party = {.NoItemDefaultMoves = sParty_KiraAndDan5}, }, @@ -9066,7 +9066,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOHANNA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Johanna), .party = {.NoItemDefaultMoves = sParty_Johanna}, }, @@ -9080,7 +9080,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GERALD"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Gerald), .party = {.NoItemCustomMoves = sParty_Gerald}, }, @@ -9094,7 +9094,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("VIVIAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Vivian), .party = {.NoItemCustomMoves = sParty_Vivian}, }, @@ -9108,7 +9108,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DANIELLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Danielle), .party = {.NoItemCustomMoves = sParty_Danielle}, }, @@ -9122,7 +9122,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HIDEO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT, .partySize = ARRAY_COUNT(sParty_Hideo), .party = {.NoItemCustomMoves = sParty_Hideo}, }, @@ -9136,7 +9136,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KEIGO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT, .partySize = ARRAY_COUNT(sParty_Keigo), .party = {.NoItemCustomMoves = sParty_Keigo}, }, @@ -9150,7 +9150,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RILEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT, .partySize = ARRAY_COUNT(sParty_Riley), .party = {.NoItemCustomMoves = sParty_Riley}, }, @@ -9164,7 +9164,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLINT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Flint), .party = {.NoItemDefaultMoves = sParty_Flint}, }, @@ -9178,7 +9178,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ASHLEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Ashley), .party = {.NoItemDefaultMoves = sParty_Ashley}, }, @@ -9192,7 +9192,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_WallyMauville), .party = {.NoItemDefaultMoves = sParty_WallyMauville}, }, @@ -9206,7 +9206,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_WallyVR2), .party = {.NoItemCustomMoves = sParty_WallyVR2}, }, @@ -9220,7 +9220,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_WallyVR3), .party = {.NoItemCustomMoves = sParty_WallyVR3}, }, @@ -9234,7 +9234,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_WallyVR4), .party = {.NoItemCustomMoves = sParty_WallyVR4}, }, @@ -9248,7 +9248,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WALLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_WallyVR5), .party = {.NoItemCustomMoves = sParty_WallyVR5}, }, @@ -9262,7 +9262,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanLilycoveMudkip), .party = {.NoItemDefaultMoves = sParty_BrendanLilycoveMudkip}, }, @@ -9276,7 +9276,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanLilycoveTreecko), .party = {.NoItemDefaultMoves = sParty_BrendanLilycoveTreecko}, }, @@ -9290,7 +9290,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_BrendanLilycoveTorchic), .party = {.NoItemDefaultMoves = sParty_BrendanLilycoveTorchic}, }, @@ -9304,7 +9304,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayLilycoveMudkip), .party = {.NoItemDefaultMoves = sParty_MayLilycoveMudkip}, }, @@ -9318,7 +9318,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayLilycoveTreecko), .party = {.NoItemDefaultMoves = sParty_MayLilycoveTreecko}, }, @@ -9332,7 +9332,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayLilycoveTorchic), .party = {.NoItemDefaultMoves = sParty_MayLilycoveTorchic}, }, @@ -9346,7 +9346,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JONAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jonah), .party = {.NoItemDefaultMoves = sParty_Jonah}, }, @@ -9360,7 +9360,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HENRY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Henry), .party = {.NoItemDefaultMoves = sParty_Henry}, }, @@ -9374,7 +9374,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROGER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Roger), .party = {.NoItemDefaultMoves = sParty_Roger}, }, @@ -9388,7 +9388,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALEXA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Alexa), .party = {.NoItemDefaultMoves = sParty_Alexa}, }, @@ -9402,7 +9402,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RUBEN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Ruben), .party = {.NoItemDefaultMoves = sParty_Ruben}, }, @@ -9416,7 +9416,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KOJI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Koji1), .party = {.NoItemDefaultMoves = sParty_Koji1}, }, @@ -9430,7 +9430,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WAYNE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Wayne), .party = {.NoItemDefaultMoves = sParty_Wayne}, }, @@ -9444,7 +9444,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AIDAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Aidan), .party = {.NoItemDefaultMoves = sParty_Aidan}, }, @@ -9458,7 +9458,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("REED"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Reed), .party = {.NoItemDefaultMoves = sParty_Reed}, }, @@ -9472,7 +9472,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TISHA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tisha), .party = {.NoItemDefaultMoves = sParty_Tisha}, }, @@ -9486,7 +9486,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TORI & TIA"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_ToriAndTia), .party = {.NoItemDefaultMoves = sParty_ToriAndTia}, }, @@ -9500,7 +9500,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KIM & IRIS"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_KimAndIris), .party = {.NoItemCustomMoves = sParty_KimAndIris}, }, @@ -9514,7 +9514,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TYRA & IVY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_TyraAndIvy), .party = {.NoItemCustomMoves = sParty_TyraAndIvy}, }, @@ -9528,7 +9528,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MEL & PAUL"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_MelAndPaul), .party = {.NoItemCustomMoves = sParty_MelAndPaul}, }, @@ -9542,7 +9542,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOHN & JAY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_JohnAndJay1), .party = {.NoItemCustomMoves = sParty_JohnAndJay1}, }, @@ -9556,7 +9556,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOHN & JAY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_JohnAndJay2), .party = {.NoItemCustomMoves = sParty_JohnAndJay2}, }, @@ -9570,7 +9570,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOHN & JAY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_JohnAndJay3), .party = {.NoItemCustomMoves = sParty_JohnAndJay3}, }, @@ -9584,7 +9584,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOHN & JAY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SETUP_FIRST_TURN, .partySize = ARRAY_COUNT(sParty_JohnAndJay4), .party = {.NoItemCustomMoves = sParty_JohnAndJay4}, }, @@ -9598,7 +9598,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOHN & JAY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_JohnAndJay5), .party = {.NoItemCustomMoves = sParty_JohnAndJay5}, }, @@ -9612,7 +9612,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RELI & IAN"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_ReliAndIan), .party = {.NoItemDefaultMoves = sParty_ReliAndIan}, }, @@ -9626,7 +9626,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LILA & ROY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_LilaAndRoy1), .party = {.NoItemDefaultMoves = sParty_LilaAndRoy1}, }, @@ -9640,7 +9640,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LILA & ROY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_LilaAndRoy2), .party = {.NoItemDefaultMoves = sParty_LilaAndRoy2}, }, @@ -9654,7 +9654,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LILA & ROY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_LilaAndRoy3), .party = {.NoItemDefaultMoves = sParty_LilaAndRoy3}, }, @@ -9668,7 +9668,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LILA & ROY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_LilaAndRoy4), .party = {.NoItemDefaultMoves = sParty_LilaAndRoy4}, }, @@ -9682,7 +9682,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LILA & ROY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_LilaAndRoy5), .party = {.NoItemDefaultMoves = sParty_LilaAndRoy5}, }, @@ -9696,7 +9696,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LISA & RAY"), .items = {}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_LisaAndRay), .party = {.NoItemDefaultMoves = sParty_LisaAndRay}, }, @@ -9710,7 +9710,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CHRIS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Chris), .party = {.NoItemDefaultMoves = sParty_Chris}, }, @@ -9724,7 +9724,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DAWSON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dawson), .party = {.ItemDefaultMoves = sParty_Dawson}, }, @@ -9738,7 +9738,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SARAH"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Sarah), .party = {.ItemDefaultMoves = sParty_Sarah}, }, @@ -9752,7 +9752,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DARIAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Darian), .party = {.NoItemDefaultMoves = sParty_Darian}, }, @@ -9766,7 +9766,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HAILEY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Hailey), .party = {.NoItemDefaultMoves = sParty_Hailey}, }, @@ -9780,7 +9780,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CHANDLER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Chandler), .party = {.NoItemDefaultMoves = sParty_Chandler}, }, @@ -9794,7 +9794,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KALEB"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kaleb), .party = {.ItemDefaultMoves = sParty_Kaleb}, }, @@ -9808,7 +9808,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOSEPH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Joseph), .party = {.NoItemDefaultMoves = sParty_Joseph}, }, @@ -9822,7 +9822,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALYSSA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Alyssa), .party = {.NoItemDefaultMoves = sParty_Alyssa}, }, @@ -9836,7 +9836,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARCOS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Marcos), .party = {.NoItemDefaultMoves = sParty_Marcos}, }, @@ -9850,7 +9850,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RHETT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rhett), .party = {.NoItemDefaultMoves = sParty_Rhett}, }, @@ -9864,7 +9864,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TYRON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Tyron), .party = {.NoItemDefaultMoves = sParty_Tyron}, }, @@ -9878,7 +9878,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CELINA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Celina), .party = {.NoItemDefaultMoves = sParty_Celina}, }, @@ -9892,7 +9892,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BIANCA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bianca), .party = {.NoItemDefaultMoves = sParty_Bianca}, }, @@ -9906,7 +9906,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HAYDEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Hayden), .party = {.NoItemDefaultMoves = sParty_Hayden}, }, @@ -9920,7 +9920,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SOPHIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Sophie), .party = {.NoItemDefaultMoves = sParty_Sophie}, }, @@ -9934,7 +9934,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("COBY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Coby), .party = {.NoItemDefaultMoves = sParty_Coby}, }, @@ -9948,7 +9948,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LAWRENCE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Lawrence), .party = {.NoItemDefaultMoves = sParty_Lawrence}, }, @@ -9962,7 +9962,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WYATT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Wyatt), .party = {.NoItemDefaultMoves = sParty_Wyatt}, }, @@ -9976,7 +9976,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANGELINA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Angelina), .party = {.NoItemDefaultMoves = sParty_Angelina}, }, @@ -9990,7 +9990,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KAI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kai), .party = {.NoItemDefaultMoves = sParty_Kai}, }, @@ -10004,7 +10004,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CHARLOTTE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Charlotte), .party = {.NoItemDefaultMoves = sParty_Charlotte}, }, @@ -10018,7 +10018,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DEANDRE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Deandre), .party = {.NoItemDefaultMoves = sParty_Deandre}, }, @@ -10032,7 +10032,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout1), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout1}, }, @@ -10046,7 +10046,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout2), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout2}, }, @@ -10060,7 +10060,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout3), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout3}, }, @@ -10074,7 +10074,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout4), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout4}, }, @@ -10088,7 +10088,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout5), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout5}, }, @@ -10102,7 +10102,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout6), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout6}, }, @@ -10116,7 +10116,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout7), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout7}, }, @@ -10130,7 +10130,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout8), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout8}, }, @@ -10144,7 +10144,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout9), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout9}, }, @@ -10158,7 +10158,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout10), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout10}, }, @@ -10172,7 +10172,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout11), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout11}, }, @@ -10186,7 +10186,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout12), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout12}, }, @@ -10200,7 +10200,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout13), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout13}, }, @@ -10214,7 +10214,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout14), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout14}, }, @@ -10228,7 +10228,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout15), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout15}, }, @@ -10242,7 +10242,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRUNT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout16), .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout16}, }, @@ -10256,7 +10256,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TABITHA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_TabithaMagmaHideout), .party = {.NoItemDefaultMoves = sParty_TabithaMagmaHideout}, }, @@ -10270,7 +10270,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DARCY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Darcy), .party = {.NoItemDefaultMoves = sParty_Darcy}, }, @@ -10284,7 +10284,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAXIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MaxieMossdeep), .party = {.NoItemDefaultMoves = sParty_MaxieMossdeep}, }, @@ -10298,7 +10298,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PETE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Pete), .party = {.NoItemDefaultMoves = sParty_Pete}, }, @@ -10312,7 +10312,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ISABELLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Isabelle), .party = {.NoItemDefaultMoves = sParty_Isabelle}, }, @@ -10326,7 +10326,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANDRES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Andres1), .party = {.NoItemDefaultMoves = sParty_Andres1}, }, @@ -10340,7 +10340,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOSUE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Josue), .party = {.NoItemDefaultMoves = sParty_Josue}, }, @@ -10354,7 +10354,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAMRON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Camron), .party = {.NoItemDefaultMoves = sParty_Camron}, }, @@ -10368,7 +10368,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CORY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cory1), .party = {.NoItemDefaultMoves = sParty_Cory1}, }, @@ -10382,7 +10382,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CAROLINA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Carolina), .party = {.NoItemDefaultMoves = sParty_Carolina}, }, @@ -10396,7 +10396,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ELIJAH"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Elijah), .party = {.NoItemDefaultMoves = sParty_Elijah}, }, @@ -10410,7 +10410,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CELIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Celia), .party = {.NoItemDefaultMoves = sParty_Celia}, }, @@ -10424,7 +10424,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRYAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bryan), .party = {.NoItemDefaultMoves = sParty_Bryan}, }, @@ -10438,7 +10438,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRANDEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Branden), .party = {.NoItemDefaultMoves = sParty_Branden}, }, @@ -10452,7 +10452,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRYANT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Bryant), .party = {.NoItemDefaultMoves = sParty_Bryant}, }, @@ -10466,7 +10466,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SHAYLA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Shayla), .party = {.NoItemDefaultMoves = sParty_Shayla}, }, @@ -10480,7 +10480,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KYRA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Kyra), .party = {.NoItemDefaultMoves = sParty_Kyra}, }, @@ -10494,7 +10494,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JAIDEN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Jaiden), .party = {.NoItemDefaultMoves = sParty_Jaiden}, }, @@ -10508,7 +10508,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ALIX"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Alix), .party = {.NoItemDefaultMoves = sParty_Alix}, }, @@ -10522,7 +10522,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("HELENE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Helene), .party = {.NoItemDefaultMoves = sParty_Helene}, }, @@ -10536,7 +10536,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MARLENE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Marlene), .party = {.NoItemDefaultMoves = sParty_Marlene}, }, @@ -10550,7 +10550,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DEVAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Devan), .party = {.NoItemDefaultMoves = sParty_Devan}, }, @@ -10564,7 +10564,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JOHNSON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Johnson), .party = {.NoItemDefaultMoves = sParty_Johnson}, }, @@ -10578,7 +10578,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MELINA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Melina), .party = {.NoItemDefaultMoves = sParty_Melina}, }, @@ -10592,7 +10592,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRANDI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Brandi), .party = {.NoItemDefaultMoves = sParty_Brandi}, }, @@ -10606,7 +10606,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("AISHA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Aisha), .party = {.NoItemDefaultMoves = sParty_Aisha}, }, @@ -10620,7 +10620,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAKAYLA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Makayla), .party = {.NoItemDefaultMoves = sParty_Makayla}, }, @@ -10634,7 +10634,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FABIAN"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Fabian), .party = {.NoItemDefaultMoves = sParty_Fabian}, }, @@ -10648,7 +10648,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DAYTON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Dayton), .party = {.NoItemDefaultMoves = sParty_Dayton}, }, @@ -10662,7 +10662,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("RACHEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Rachel), .party = {.NoItemDefaultMoves = sParty_Rachel}, }, @@ -10676,7 +10676,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LEONEL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Leonel), .party = {.NoItemCustomMoves = sParty_Leonel}, }, @@ -10690,7 +10690,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CALLIE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Callie), .party = {.NoItemDefaultMoves = sParty_Callie}, }, @@ -10704,7 +10704,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CALE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cale), .party = {.NoItemDefaultMoves = sParty_Cale}, }, @@ -10718,7 +10718,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MYLES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Myles), .party = {.NoItemDefaultMoves = sParty_Myles}, }, @@ -10732,7 +10732,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PAT"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Pat), .party = {.NoItemDefaultMoves = sParty_Pat}, }, @@ -10746,7 +10746,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Cristin1), .party = {.NoItemDefaultMoves = sParty_Cristin1}, }, @@ -10760,7 +10760,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRustboroTreecko), .party = {.NoItemDefaultMoves = sParty_MayRustboroTreecko}, }, @@ -10774,7 +10774,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_MayRustboroTorchic), .party = {.NoItemDefaultMoves = sParty_MayRustboroTorchic}, }, @@ -10788,7 +10788,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Roxanne2), .party = {.ItemCustomMoves = sParty_Roxanne2}, }, @@ -10802,7 +10802,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Roxanne3), .party = {.ItemCustomMoves = sParty_Roxanne3}, }, @@ -10816,7 +10816,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Roxanne4), .party = {.ItemCustomMoves = sParty_Roxanne4}, }, @@ -10830,7 +10830,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ROXANNE"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Roxanne5), .party = {.ItemCustomMoves = sParty_Roxanne5}, }, @@ -10844,7 +10844,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brawly2), .party = {.ItemCustomMoves = sParty_Brawly2}, }, @@ -10858,7 +10858,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brawly3), .party = {.ItemCustomMoves = sParty_Brawly3}, }, @@ -10872,7 +10872,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brawly4), .party = {.ItemCustomMoves = sParty_Brawly4}, }, @@ -10886,7 +10886,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRAWLY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brawly5), .party = {.ItemCustomMoves = sParty_Brawly5}, }, @@ -10900,7 +10900,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wattson2), .party = {.ItemCustomMoves = sParty_Wattson2}, }, @@ -10914,7 +10914,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wattson3), .party = {.ItemCustomMoves = sParty_Wattson3}, }, @@ -10928,7 +10928,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wattson4), .party = {.ItemCustomMoves = sParty_Wattson4}, }, @@ -10942,7 +10942,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WATTSON"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Wattson5), .party = {.ItemCustomMoves = sParty_Wattson5}, }, @@ -10956,7 +10956,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Flannery2), .party = {.ItemCustomMoves = sParty_Flannery2}, }, @@ -10970,7 +10970,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Flannery3), .party = {.ItemCustomMoves = sParty_Flannery3}, }, @@ -10984,7 +10984,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Flannery4), .party = {.ItemCustomMoves = sParty_Flannery4}, }, @@ -10998,7 +10998,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FLANNERY"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Flannery5), .party = {.ItemCustomMoves = sParty_Flannery5}, }, @@ -11012,7 +11012,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Norman2), .party = {.ItemCustomMoves = sParty_Norman2}, }, @@ -11026,7 +11026,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Norman3), .party = {.ItemCustomMoves = sParty_Norman3}, }, @@ -11040,7 +11040,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Norman4), .party = {.ItemCustomMoves = sParty_Norman4}, }, @@ -11054,7 +11054,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NORMAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Norman5), .party = {.ItemCustomMoves = sParty_Norman5}, }, @@ -11068,7 +11068,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_RISKY, .partySize = ARRAY_COUNT(sParty_Winona2), .party = {.ItemCustomMoves = sParty_Winona2}, }, @@ -11082,7 +11082,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_RISKY, .partySize = ARRAY_COUNT(sParty_Winona3), .party = {.ItemCustomMoves = sParty_Winona3}, }, @@ -11096,7 +11096,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_RISKY, .partySize = ARRAY_COUNT(sParty_Winona4), .party = {.ItemCustomMoves = sParty_Winona4}, }, @@ -11110,7 +11110,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINONA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_RISKY, .partySize = ARRAY_COUNT(sParty_Winona5), .party = {.ItemCustomMoves = sParty_Winona5}, }, @@ -11124,7 +11124,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_TateAndLiza2), .party = {.ItemCustomMoves = sParty_TateAndLiza2}, }, @@ -11138,7 +11138,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_TateAndLiza3), .party = {.ItemCustomMoves = sParty_TateAndLiza3}, }, @@ -11152,7 +11152,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_TateAndLiza4), .party = {.ItemCustomMoves = sParty_TateAndLiza4}, }, @@ -11166,7 +11166,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TATE&LIZA"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_TateAndLiza5), .party = {.ItemCustomMoves = sParty_TateAndLiza5}, }, @@ -11180,7 +11180,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Juan2), .party = {.ItemCustomMoves = sParty_Juan2}, }, @@ -11194,7 +11194,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Juan3), .party = {.ItemCustomMoves = sParty_Juan3}, }, @@ -11208,7 +11208,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Juan4), .party = {.ItemCustomMoves = sParty_Juan4}, }, @@ -11222,7 +11222,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("JUAN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE}, .doubleBattle = TRUE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Juan5), .party = {.ItemCustomMoves = sParty_Juan5}, }, @@ -11236,7 +11236,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANGELO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Angelo), .party = {.ItemCustomMoves = sParty_Angelo}, }, @@ -11250,7 +11250,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("DARIUS"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Darius), .party = {.NoItemDefaultMoves = sParty_Darius}, }, @@ -11264,7 +11264,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("STEVEN"), .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_FULL_RESTORE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Steven), .party = {.ItemCustomMoves = sParty_Steven}, }, @@ -11278,7 +11278,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANABEL"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Anabel), .party = {.NoItemDefaultMoves = sParty_Anabel}, }, @@ -11292,7 +11292,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("TUCKER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Tucker), .party = {.NoItemDefaultMoves = sParty_Tucker}, }, @@ -11306,7 +11306,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SPENSER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Spenser), .party = {.NoItemDefaultMoves = sParty_Spenser}, }, @@ -11320,7 +11320,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GRETA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Greta), .party = {.NoItemDefaultMoves = sParty_Greta}, }, @@ -11334,7 +11334,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("NOLAND"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Noland), .party = {.NoItemDefaultMoves = sParty_Noland}, }, @@ -11348,7 +11348,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("LUCY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Lucy), .party = {.NoItemDefaultMoves = sParty_Lucy}, }, @@ -11362,7 +11362,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("BRANDON"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Brandon), .party = {.NoItemDefaultMoves = sParty_Brandon}, }, @@ -11376,7 +11376,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANDRES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Andres2), .party = {.NoItemDefaultMoves = sParty_Andres2}, }, @@ -11390,7 +11390,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANDRES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Andres3), .party = {.NoItemDefaultMoves = sParty_Andres3}, }, @@ -11404,7 +11404,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANDRES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Andres4), .party = {.NoItemDefaultMoves = sParty_Andres4}, }, @@ -11418,7 +11418,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("ANDRES"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Andres5), .party = {.NoItemDefaultMoves = sParty_Andres5}, }, @@ -11432,7 +11432,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CORY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cory2), .party = {.NoItemDefaultMoves = sParty_Cory2}, }, @@ -11446,7 +11446,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CORY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cory3), .party = {.NoItemDefaultMoves = sParty_Cory3}, }, @@ -11460,7 +11460,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CORY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cory4), .party = {.NoItemDefaultMoves = sParty_Cory4}, }, @@ -11474,7 +11474,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CORY"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Cory5), .party = {.NoItemDefaultMoves = sParty_Cory5}, }, @@ -11488,7 +11488,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PABLO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Pablo2), .party = {.NoItemDefaultMoves = sParty_Pablo2}, }, @@ -11502,7 +11502,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PABLO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Pablo3), .party = {.NoItemDefaultMoves = sParty_Pablo3}, }, @@ -11516,7 +11516,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PABLO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Pablo4), .party = {.NoItemDefaultMoves = sParty_Pablo4}, }, @@ -11530,7 +11530,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("PABLO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Pablo5), .party = {.NoItemDefaultMoves = sParty_Pablo5}, }, @@ -11544,7 +11544,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KOJI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Koji2), .party = {.NoItemDefaultMoves = sParty_Koji2}, }, @@ -11558,7 +11558,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KOJI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Koji3), .party = {.NoItemDefaultMoves = sParty_Koji3}, }, @@ -11572,7 +11572,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KOJI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Koji4), .party = {.NoItemDefaultMoves = sParty_Koji4}, }, @@ -11586,7 +11586,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("KOJI"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Koji5), .party = {.NoItemDefaultMoves = sParty_Koji5}, }, @@ -11600,7 +11600,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Cristin2), .party = {.NoItemDefaultMoves = sParty_Cristin2}, }, @@ -11614,7 +11614,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Cristin3), .party = {.NoItemDefaultMoves = sParty_Cristin3}, }, @@ -11628,7 +11628,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Cristin4), .party = {.NoItemDefaultMoves = sParty_Cristin4}, }, @@ -11642,7 +11642,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Cristin5), .party = {.NoItemDefaultMoves = sParty_Cristin5}, }, @@ -11656,7 +11656,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FERNANDO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Fernando2), .party = {.NoItemDefaultMoves = sParty_Fernando2}, }, @@ -11670,7 +11670,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FERNANDO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Fernando3), .party = {.NoItemDefaultMoves = sParty_Fernando3}, }, @@ -11684,7 +11684,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FERNANDO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Fernando4), .party = {.NoItemDefaultMoves = sParty_Fernando4}, }, @@ -11698,7 +11698,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("FERNANDO"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Fernando5), .party = {.NoItemDefaultMoves = sParty_Fernando5}, }, @@ -11712,7 +11712,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SAWYER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Sawyer2), .party = {.NoItemDefaultMoves = sParty_Sawyer2}, }, @@ -11726,7 +11726,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SAWYER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Sawyer3), .party = {.NoItemDefaultMoves = sParty_Sawyer3}, }, @@ -11740,7 +11740,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SAWYER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Sawyer4), .party = {.NoItemDefaultMoves = sParty_Sawyer4}, }, @@ -11754,7 +11754,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("SAWYER"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY, .partySize = ARRAY_COUNT(sParty_Sawyer5), .party = {.NoItemDefaultMoves = sParty_Sawyer5}, }, @@ -11768,7 +11768,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABRIELLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Gabrielle2), .party = {.NoItemDefaultMoves = sParty_Gabrielle2}, }, @@ -11782,7 +11782,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABRIELLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Gabrielle3), .party = {.NoItemDefaultMoves = sParty_Gabrielle3}, }, @@ -11796,7 +11796,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABRIELLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Gabrielle4), .party = {.NoItemDefaultMoves = sParty_Gabrielle4}, }, @@ -11810,7 +11810,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("GABRIELLE"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Gabrielle5), .party = {.NoItemDefaultMoves = sParty_Gabrielle5}, }, @@ -11824,7 +11824,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("THALIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Thalia2), .party = {.NoItemDefaultMoves = sParty_Thalia2}, }, @@ -11838,7 +11838,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("THALIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Thalia3), .party = {.NoItemDefaultMoves = sParty_Thalia3}, }, @@ -11852,7 +11852,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("THALIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Thalia4), .party = {.NoItemDefaultMoves = sParty_Thalia4}, }, @@ -11866,7 +11866,7 @@ const struct Trainer gTrainers[] = { .trainerName = _("THALIA"), .items = {}, .doubleBattle = FALSE, - .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, .partySize = ARRAY_COUNT(sParty_Thalia5), .party = {.NoItemDefaultMoves = sParty_Thalia5}, }, diff --git a/src/data/wallpapers.h b/src/data/wallpapers.h new file mode 100644 index 0000000000..64c61fe2d5 --- /dev/null +++ b/src/data/wallpapers.h @@ -0,0 +1,393 @@ +enum { + WALLPAPER_FOREST, + WALLPAPER_CITY, + WALLPAPER_DESERT, + WALLPAPER_SAVANNA, + WALLPAPER_CRAG, + WALLPAPER_VOLCANO, + WALLPAPER_SNOW, + WALLPAPER_CAVE, + WALLPAPER_BEACH, + WALLPAPER_SEAFLOOR, + WALLPAPER_RIVER, + WALLPAPER_SKY, + WALLPAPER_POLKADOT, + WALLPAPER_POKECENTER, + WALLPAPER_MACHINE, + WALLPAPER_PLAIN, + WALLPAPER_FRIENDS, // The one received as a gift from Walda's parents. + WALLPAPER_COUNT +}; +#define MAX_DEFAULT_WALLPAPER WALLPAPER_SAVANNA + +static const u16 sWallpaperPalettes_Forest[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/forest/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/forest/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Forest[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/forest/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Forest[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/forest/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_City[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/city/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/city/bg.gbapal"), +}; +static const u32 sWallpaperTiles_City[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/city/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_City[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/city/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Desert[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/desert/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/desert/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Desert[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/desert/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Desert[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/desert/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Savanna[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/savanna/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/savanna/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Savanna[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/savanna/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Savanna[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/savanna/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Crag[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/crag/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/crag/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Crag[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/crag/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Crag[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/crag/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Volcano[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/volcano/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/volcano/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Volcano[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/volcano/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Volcano[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/volcano/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Snow[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/snow/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/snow/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Snow[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/snow/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Snow[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/snow/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Cave[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/cave/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/cave/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Cave[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/cave/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Cave[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/cave/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Beach[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/beach/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/beach/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Beach[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/beach/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Beach[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/beach/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Seafloor[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/seafloor/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/seafloor/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Seafloor[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/seafloor/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Seafloor[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_River[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/river/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/river/bg.gbapal"), +}; +static const u32 sWallpaperTiles_River[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/river/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_River[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/river/tilemap.bin.lz"); +static const u16 sWallpaperPalettes_Sky[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/sky/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/sky/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Sky[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/sky/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Sky[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/sky/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_PolkaDot[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/polkadot/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/polkadot/bg.gbapal"), +}; +static const u32 sWallpaperTiles_PolkaDot[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/polkadot/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_PolkaDot[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/polkadot/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Pokecenter[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/pokecenter/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/pokecenter/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Pokecenter[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pokecenter/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Pokecenter[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Machine[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/machine/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/machine/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Machine[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/machine/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Machine[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/machine/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Plain[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/plain/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/plain/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Plain[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/plain/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Plain[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/plain/tilemap.bin.lz"); + +// 12x18 tilemap +static const u32 sWallpaperTilemap_Unused[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/unused.bin"); + +// Shadow color, text color +static const u16 sBoxTitleColors[WALLPAPER_COUNT][2] = +{ + [WALLPAPER_FOREST] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_CITY] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_DESERT] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_SAVANNA] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_CRAG] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_VOLCANO] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_SNOW] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_CAVE] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_BEACH] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_SEAFLOOR] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_RIVER] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_SKY] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_POLKADOT] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_POKECENTER] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_MACHINE] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_PLAIN] = {RGB(7, 7, 7), RGB_WHITE}, + [WALLPAPER_FRIENDS] = {RGB(7, 7, 7), RGB_WHITE} +}; + +#define WALLPAPER_ENTRY(name) {sWallpaperTiles_##name, sWallpaperTilemap_##name, sWallpaperPalettes_##name[0]} +// A few wallpapers are not defined in this file +#define WALLPAPER_ENTRY_G(name) {gWallpaperTiles_##name, gWallpaperTilemap_##name, gWallpaperPalettes_##name[0]} + +static const struct Wallpaper sWallpapers[WALLPAPER_COUNT - 1] = +{ + [WALLPAPER_FOREST] = WALLPAPER_ENTRY(Forest), + [WALLPAPER_CITY] = WALLPAPER_ENTRY(City), + [WALLPAPER_DESERT] = WALLPAPER_ENTRY(Desert), + [WALLPAPER_SAVANNA] = WALLPAPER_ENTRY(Savanna), + [WALLPAPER_CRAG] = WALLPAPER_ENTRY(Crag), + [WALLPAPER_VOLCANO] = WALLPAPER_ENTRY(Volcano), + [WALLPAPER_SNOW] = WALLPAPER_ENTRY(Snow), + [WALLPAPER_CAVE] = WALLPAPER_ENTRY(Cave), + [WALLPAPER_BEACH] = WALLPAPER_ENTRY(Beach), + [WALLPAPER_SEAFLOOR] = WALLPAPER_ENTRY(Seafloor), + [WALLPAPER_RIVER] = WALLPAPER_ENTRY(River), + [WALLPAPER_SKY] = WALLPAPER_ENTRY(Sky), + [WALLPAPER_POLKADOT] = WALLPAPER_ENTRY(PolkaDot), + [WALLPAPER_POKECENTER] = WALLPAPER_ENTRY(Pokecenter), + [WALLPAPER_MACHINE] = WALLPAPER_ENTRY(Machine), + [WALLPAPER_PLAIN] = WALLPAPER_ENTRY(Plain), +}; + +static const u8 sArrow_Gfx[] = INCBIN_U8("graphics/pokemon_storage/arrow.4bpp"); + +static const u16 sWallpaperPalettes_Zigzagoon[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame1.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/zigzagoon/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Zigzagoon[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/zigzagoon/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Zigzagoon[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/zigzagoon/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Screen[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame1.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/screen/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Screen[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/screen/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Screen[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/screen/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Diagonal[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame1.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/diagonal/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Diagonal[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/diagonal/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Diagonal[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/diagonal/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Block[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/block/bg.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/block/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Block[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/block/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Block[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/block/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Pokecenter2[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/pokecenter2/bg.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/pokecenter2/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Pokecenter2[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pokecenter2/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Pokecenter2[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pokecenter2/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Frame[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/frame/bg.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/frame/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Frame[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/frame/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Frame[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/frame/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Blank[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame1.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/zigzagoon/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Blank[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/blank/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Blank[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/blank/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Circles[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/circles/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Circles[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/circles/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Circles[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/circles/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Azumarill[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/azumarill/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Azumarill[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/azumarill/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Azumarill[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/azumarill/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Pikachu[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/pikachu/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Pikachu[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pikachu/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Pikachu[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pikachu/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Legendary[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/legendary/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Legendary[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/legendary/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Legendary[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/legendary/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Dusclops[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/dusclops/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Dusclops[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/dusclops/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Dusclops[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/dusclops/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Ludicolo[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/ludicolo/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Ludicolo[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/ludicolo/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Ludicolo[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/ludicolo/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Whiscash[][16] = +{ + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/whiscash/bg.gbapal"), +}; +static const u32 sWallpaperTiles_Whiscash[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/whiscash/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Whiscash[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/whiscash/tilemap.bin.lz"); + +static const u32 sWallpaperIcon_Aqua[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/aqua.4bpp.lz"); +static const u32 sWallpaperIcon_Heart[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/heart.4bpp.lz"); +static const u32 sWallpaperIcon_FiveStar[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/five_star.4bpp.lz"); +static const u32 sWallpaperIcon_Brick[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/brick.4bpp.lz"); +static const u32 sWallpaperIcon_FourStar[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/four_star.4bpp.lz"); +static const u32 sWallpaperIcon_Asterisk[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/asterisk.4bpp.lz"); +static const u32 sWallpaperIcon_Dot[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/dot.4bpp.lz"); +static const u32 sWallpaperIcon_LineCircle[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/line_circle.4bpp.lz"); +static const u32 sWallpaperIcon_PokeBall[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/pokeball.4bpp.lz"); +static const u32 sWallpaperIcon_Maze[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/maze.4bpp.lz"); +static const u32 sWallpaperIcon_Footprint[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/footprint.4bpp.lz"); +static const u32 sWallpaperIcon_BigAsterisk[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/big_asterisk.4bpp.lz"); +static const u32 sWallpaperIcon_Circle[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/circle.4bpp.lz"); +static const u32 sWallpaperIcon_Koffing[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/koffing.4bpp.lz"); +static const u32 sWallpaperIcon_Ribbon[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/ribbon.4bpp.lz"); +static const u32 sWallpaperIcon_FourCircles[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/four_circles.4bpp.lz"); +static const u32 sWallpaperIcon_Lotad[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/lotad.4bpp.lz"); +static const u32 sWallpaperIcon_Crystal[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/crystal.4bpp.lz"); +static const u32 sWallpaperIcon_Pichu[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/pichu.4bpp.lz"); +static const u32 sWallpaperIcon_Diglett[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/diglett.4bpp.lz"); +static const u32 sWallpaperIcon_Luvdisc[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/luvdisc.4bpp.lz"); +static const u32 sWallpaperIcon_StarInCircle[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/star_in_circle.4bpp.lz"); +static const u32 sWallpaperIcon_Spinda[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/spinda.4bpp.lz"); +static const u32 sWallpaperIcon_Latis[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/latis.4bpp.lz"); +static const u32 sWallpaperIcon_Minun[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/minun.4bpp.lz"); +static const u32 sWallpaperIcon_Togepi[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/togepi.4bpp.lz"); +static const u32 sWallpaperIcon_Magma[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/magma.4bpp.lz"); + +static const struct Wallpaper sWaldaWallpapers[] = +{ + WALLPAPER_ENTRY(Zigzagoon), + WALLPAPER_ENTRY(Screen), + WALLPAPER_ENTRY_G(Horizontal), + WALLPAPER_ENTRY(Diagonal), + WALLPAPER_ENTRY(Block), + WALLPAPER_ENTRY_G(Ribbon), + WALLPAPER_ENTRY(Pokecenter2), + WALLPAPER_ENTRY(Frame), + WALLPAPER_ENTRY(Blank), + WALLPAPER_ENTRY(Circles), + WALLPAPER_ENTRY(Azumarill), + WALLPAPER_ENTRY(Pikachu), + WALLPAPER_ENTRY(Legendary), + WALLPAPER_ENTRY(Dusclops), + WALLPAPER_ENTRY(Ludicolo), + WALLPAPER_ENTRY(Whiscash), +}; + +static const u32 *const sWaldaWallpaperIcons[] = +{ + sWallpaperIcon_Aqua, + sWallpaperIcon_Heart, + sWallpaperIcon_FiveStar, + sWallpaperIcon_Brick, + sWallpaperIcon_FourStar, + sWallpaperIcon_Asterisk, + sWallpaperIcon_Dot, + gWallpaperIcon_Cross, + sWallpaperIcon_LineCircle, + sWallpaperIcon_PokeBall, + sWallpaperIcon_Maze, + sWallpaperIcon_Footprint, + sWallpaperIcon_BigAsterisk, + sWallpaperIcon_Circle, + sWallpaperIcon_Koffing, + sWallpaperIcon_Ribbon, + gWallpaperIcon_Bolt, + sWallpaperIcon_FourCircles, + sWallpaperIcon_Lotad, + sWallpaperIcon_Crystal, + sWallpaperIcon_Pichu, + sWallpaperIcon_Diglett, + sWallpaperIcon_Luvdisc, + sWallpaperIcon_StarInCircle, + sWallpaperIcon_Spinda, + sWallpaperIcon_Latis, + gWallpaperIcon_Plusle, + sWallpaperIcon_Minun, + sWallpaperIcon_Togepi, + sWallpaperIcon_Magma, +}; diff --git a/src/daycare.c b/src/daycare.c index 511fa05513..6a17150490 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -23,11 +23,13 @@ #include "constants/moves.h" #include "constants/region_map_sections.h" +extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; + // this file's functions -static void ClearDaycareMonMail(struct DayCareMail *mail); +static void ClearDaycareMonMail(struct DaycareMail *mail); static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare); static u8 GetDaycareCompatibilityScore(struct DayCare *daycare); -static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y); +static void DaycarePrintMonInfo(u8 windowId, u32 daycareSlotId, u8 y); // RAM buffers used to assist with BuildEggMoveset() EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0}; @@ -120,7 +122,7 @@ u8 CountPokemonInDaycare(struct DayCare *daycare) return count; } -void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail) +void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDaycareMail *daycareMail) { u8 i; u8 numDaycareMons = 0; @@ -131,13 +133,9 @@ void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDay { numDaycareMons++; if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_HELD_ITEM) == ITEM_NONE) - { daycareMail->holdsItem[i] = FALSE; - } else - { daycareMail->holdsItem[i] = TRUE; - } } else { @@ -154,7 +152,7 @@ static s8 Daycare_FindEmptySpot(struct DayCare *daycare) for (i = 0; i < DAYCARE_MON_COUNT; i++) { - if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES) == 0) + if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES) == SPECIES_NONE) return i; } @@ -170,7 +168,7 @@ static void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycar StringCopy(daycareMon->mail.OT_name, gSaveBlock2Ptr->playerName); GetMonNickname2(mon, daycareMon->mail.monName); StripExtCtrlCodes(daycareMon->mail.monName); - daycareMon->mail.gameLanguage = LANGUAGE_ENGLISH; + daycareMon->mail.gameLanguage = GAME_LANGUAGE; daycareMon->mail.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE); mailId = GetMonData(mon, MON_DATA_MAIL); daycareMon->mail.message = gSaveBlock1Ptr->mail[mailId]; @@ -349,7 +347,7 @@ u8 GetNumLevelsGainedFromDaycare(void) return 0; } -static void ClearDaycareMonMail(struct DayCareMail *mail) +static void ClearDaycareMonMail(struct DaycareMail *mail) { s32 i; @@ -838,7 +836,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation) u8 metLocation; u8 isEgg; - CreateMon(mon, species, EGG_HATCH_LEVEL, 32, FALSE, 0, OT_ID_PLAYER_ID, 0); + CreateMon(mon, species, EGG_HATCH_LEVEL, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); metLevel = 0; ball = ITEM_POKE_BALL; language = LANGUAGE_JAPANESE; @@ -865,7 +863,7 @@ static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare * u8 language; personality = daycare->offspringPersonality; - CreateMon(mon, species, EGG_HATCH_LEVEL, 32, TRUE, personality, OT_ID_PLAYER_ID, 0); + CreateMon(mon, species, EGG_HATCH_LEVEL, USE_RANDOM_IVS, TRUE, personality, OT_ID_PLAYER_ID, 0); metLevel = 0; ball = ITEM_POKE_BALL; language = LANGUAGE_JAPANESE; @@ -894,8 +892,8 @@ static bool8 TryProduceOrHatchEgg(struct DayCare *daycare) // Check if an egg should be produced if (daycare->offspringPersonality == 0 && validEggs == DAYCARE_MON_COUNT && (daycare->mons[1].steps & 0xFF) == 0xFF) { - u8 compatability = GetDaycareCompatibilityScore(daycare); - if (compatability > (Random() * 100u) / USHRT_MAX) + u8 compatibility = GetDaycareCompatibilityScore(daycare); + if (compatibility > (Random() * 100u) / USHRT_MAX) TriggerPendingDaycareEgg(); } @@ -1050,7 +1048,7 @@ static u8 GetDaycareCompatibilityScore(struct DayCare *daycare) if (trainerIds[0] == trainerIds[1]) return PARENTS_LOW_COMPATIBILITY; - return PARENTS_MED_COMPATABILITY; + return PARENTS_MED_COMPATIBILITY; } // neither parent is Ditto else @@ -1065,14 +1063,14 @@ static u8 GetDaycareCompatibilityScore(struct DayCare *daycare) if (species[0] == species[1]) { if (trainerIds[0] == trainerIds[1]) - return PARENTS_MED_COMPATABILITY; // same species, same trainer + return PARENTS_MED_COMPATIBILITY; // same species, same trainer - return PARENTS_MAX_COMPATABILITY; // same species, different trainers + return PARENTS_MAX_COMPATIBILITY; // same species, different trainers } else { if (trainerIds[0] != trainerIds[1]) - return PARENTS_MED_COMPATABILITY; // different species, different trainers + return PARENTS_MED_COMPATIBILITY; // different species, different trainers return PARENTS_LOW_COMPATIBILITY; // different species, same trainer } @@ -1095,9 +1093,9 @@ void SetDaycareCompatibilityString(void) whichString = 3; if (relationshipScore == PARENTS_LOW_COMPATIBILITY) whichString = 2; - if (relationshipScore == PARENTS_MED_COMPATABILITY) + if (relationshipScore == PARENTS_MED_COMPATIBILITY) whichString = 1; - if (relationshipScore == PARENTS_MAX_COMPATABILITY) + if (relationshipScore == PARENTS_MAX_COMPATIBILITY) whichString = 0; StringCopy(gStringVar4, sCompatibilityMessages[whichString]); @@ -1228,7 +1226,7 @@ static void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycare DaycareAddTextPrinter(windowId, lvlText, x, y); } -static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y) +static void DaycarePrintMonInfo(u8 windowId, u32 daycareSlotId, u8 y) { if (daycareSlotId < (unsigned) DAYCARE_MON_COUNT) { diff --git a/src/decompress.c b/src/decompress.c index 0077533037..a65f38c2d7 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -86,7 +86,7 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 { if (species == SPECIES_UNOWN) { - u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + u16 i = GET_UNOWN_LETTER(personality); // The other Unowns are separate from Unown A. if (i == 0) @@ -308,7 +308,7 @@ void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s { if (species == SPECIES_UNOWN) { - u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + u16 i = GET_UNOWN_LETTER(personality); // The other Unowns are separate from Unown A. if (i == 0) @@ -366,7 +366,7 @@ void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src { if (species == SPECIES_UNOWN) { - u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + u16 i = GET_UNOWN_LETTER(personality); // The other Unowns are separate from Unown A. if (i == 0) @@ -390,5 +390,5 @@ void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src static void DuplicateDeoxysTiles(void *pointer, s32 species) { if (species == SPECIES_DEOXYS) - CpuCopy32(pointer + 0x800, pointer, 0x800); + CpuCopy32(pointer + MON_PIC_SIZE, pointer, MON_PIC_SIZE); } diff --git a/src/decoration.c b/src/decoration.c index 74dbacdf91..39858e9578 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -113,7 +113,7 @@ EWRAM_DATA static u16 sDecorationsCursorPos = 0; EWRAM_DATA static u16 sDecorationsScrollOffset = 0; EWRAM_DATA u8 gCurDecorationIndex = 0; EWRAM_DATA static u8 sCurDecorationCategory = DECORCAT_DESK; -EWRAM_DATA static u32 filler_0203a174[2] = {}; +EWRAM_DATA static u32 sFiller[2] = {}; EWRAM_DATA static struct DecorationPCContext sDecorationContext = {}; EWRAM_DATA static u8 sDecorMenuWindowIds[WINDOW_COUNT] = {}; EWRAM_DATA static struct DecorationItemsMenu *sDecorationItemsMenu = NULL; @@ -147,7 +147,7 @@ static void ReturnToActionsMenuFromCategories(u8 taskId); static void ExitTraderDecorationMenu(u8 taskId); static void CopyDecorationMenuItemName(u8 *dest, u16 decoration); static void DecorationItemsMenu_OnCursorMove(s32 itemIndex, bool8 flag, struct ListMenu *menu); -static void DecorationItemsMenu_PrintDecorationInUse(u8 windowId, s32 itemIndex, u8 y); +static void DecorationItemsMenu_PrintDecorationInUse(u8 windowId, u32 itemIndex, u8 y); static void ShowDecorationItemsWindow(u8 taskId); static void HandleDecorationItemsMenuInput(u8 taskId); static void PrintDecorationItemDescription(s32 itemIndex); @@ -862,12 +862,12 @@ static void InitDecorationItemsMenuLimits(void) static void InitDecorationItemsMenuScrollAndCursor(void) { - sub_812225C(&sDecorationsScrollOffset, &sDecorationsCursorPos, sDecorationItemsMenu->maxShownItems, sDecorationItemsMenu->numMenuItems); + SetCursorWithinListBounds(&sDecorationsScrollOffset, &sDecorationsCursorPos, sDecorationItemsMenu->maxShownItems, sDecorationItemsMenu->numMenuItems); } static void InitDecorationItemsMenuScrollAndCursor2(void) { - sub_8122298(&sDecorationsScrollOffset, &sDecorationsCursorPos, sDecorationItemsMenu->maxShownItems, sDecorationItemsMenu->numMenuItems, 8); + SetCursorScrollWithinListBounds(&sDecorationsScrollOffset, &sDecorationsCursorPos, sDecorationItemsMenu->maxShownItems, sDecorationItemsMenu->numMenuItems, 8); } static void PrintDecorationItemMenuItems(u8 taskId) @@ -912,9 +912,9 @@ static void DecorationItemsMenu_OnCursorMove(s32 itemIndex, bool8 flag, struct L PrintDecorationItemDescription(itemIndex); } -static void DecorationItemsMenu_PrintDecorationInUse(u8 windowId, s32 itemIndex, u8 y) +static void DecorationItemsMenu_PrintDecorationInUse(u8 windowId, u32 itemIndex, u8 y) { - if (itemIndex != -2) + if (itemIndex != LIST_CANCEL) { if (IsDecorationIndexInSecretBase(itemIndex + 1) == TRUE) BlitMenuInfoIcon(windowId, MENU_INFO_ICON_BALL_RED, 92, y + 2); @@ -925,7 +925,7 @@ static void DecorationItemsMenu_PrintDecorationInUse(u8 windowId, s32 itemIndex, static void AddDecorationItemsScrollIndicators(void) { - if (sDecorationItemsMenu->scrollIndicatorsTaskId == 0xFF) + if (sDecorationItemsMenu->scrollIndicatorsTaskId == TASK_NONE) { sDecorationItemsMenu->scrollIndicatorsTaskId = AddScrollIndicatorArrowPairParameterized( SCROLL_ARROW_UP, @@ -941,10 +941,10 @@ static void AddDecorationItemsScrollIndicators(void) static void RemoveDecorationItemsScrollIndicators(void) { - if (sDecorationItemsMenu->scrollIndicatorsTaskId != 0xFF) + if (sDecorationItemsMenu->scrollIndicatorsTaskId != TASK_NONE) { RemoveScrollIndicatorArrowPair(sDecorationItemsMenu->scrollIndicatorsTaskId); - sDecorationItemsMenu->scrollIndicatorsTaskId = 0xFF; + sDecorationItemsMenu->scrollIndicatorsTaskId = TASK_NONE; } } @@ -960,7 +960,7 @@ static void InitDecorationItemsWindow(u8 taskId) AddDecorationWindow(WINDOW_DECORATION_CATEGORY_ITEMS); ShowDecorationCategorySummaryWindow(sCurDecorationCategory); sDecorationItemsMenu = AllocZeroed(sizeof(*sDecorationItemsMenu)); - sDecorationItemsMenu->scrollIndicatorsTaskId = 0xFF; + sDecorationItemsMenu->scrollIndicatorsTaskId = TASK_NONE; InitDecorationItemsMenuLimits(); InitDecorationItemsMenuScrollAndCursor(); InitDecorationItemsMenuScrollAndCursor2(); @@ -1210,7 +1210,7 @@ static void ShowDecorationOnMap_(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, for (i = 0; i < decWidth; i++) { x = mapX + i; - behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decoration].tiles[j * decWidth + i]); + behavior = GetBehaviorByMetatileId(NUM_TILES_IN_PRIMARY + gDecorations[decoration].tiles[j * decWidth + i]); if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decoration].permission != DECORPERM_PASS_FLOOR && (behavior >> METATILE_ELEVATION_SHIFT))) impassableFlag = METATILE_COLLISION_MASK; else @@ -1224,9 +1224,9 @@ static void ShowDecorationOnMap_(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, elevation = GetDecorationElevation(gDecorations[decoration].id, j * decWidth + i); if (elevation != 0xFFFF) - MapGridSetMetatileEntryAt(x, y, (gDecorations[decoration].tiles[j * decWidth + i] + (0x200 | overlapsWall)) | impassableFlag | elevation); + MapGridSetMetatileEntryAt(x, y, (gDecorations[decoration].tiles[j * decWidth + i] + (NUM_TILES_IN_PRIMARY | overlapsWall)) | impassableFlag | elevation); else - MapGridSetMetatileIdAt(x, y, (gDecorations[decoration].tiles[j * decWidth + i] + (0x200 | overlapsWall)) | impassableFlag); + MapGridSetMetatileIdAt(x, y, (gDecorations[decoration].tiles[j * decWidth + i] + (NUM_TILES_IN_PRIMARY | overlapsWall)) | impassableFlag); } } } @@ -1382,8 +1382,8 @@ static void ConfigureCameraObjectForPlacingDecoration(struct PlaceDecorationGrap gFieldCamera.spriteId = gpu_pal_decompress_alloc_tag_and_upload(data, decor); gSprites[gFieldCamera.spriteId].oam.priority = 1; gSprites[gFieldCamera.spriteId].callback = InitializePuttingAwayCursorSprite; - gSprites[gFieldCamera.spriteId].pos1.x = sDecorationMovementInfo[data->decoration->shape].cameraX; - gSprites[gFieldCamera.spriteId].pos1.y = sDecorationMovementInfo[data->decoration->shape].cameraY; + gSprites[gFieldCamera.spriteId].x = sDecorationMovementInfo[data->decoration->shape].cameraX; + gSprites[gFieldCamera.spriteId].y = sDecorationMovementInfo[data->decoration->shape].cameraY; } static void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct PlaceDecorationGraphicsDataBuffer *data) @@ -1524,7 +1524,7 @@ static bool8 CanPlaceDecoration(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].tCursorX + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(NUM_TILES_IN_PRIMARY + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; if (!IsFloorOrBoardAndHole(behaviorAt, decoration)) return FALSE; @@ -1545,7 +1545,7 @@ static bool8 CanPlaceDecoration(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].tCursorX + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(NUM_TILES_IN_PRIMARY + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !IsNonBlockNonElevated(behaviorAt, behaviorBy)) return FALSE; @@ -1562,7 +1562,7 @@ static bool8 CanPlaceDecoration(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].tCursorX + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & METATILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(NUM_TILES_IN_PRIMARY + decoration->tiles[j]) & METATILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsSecretBaseNorthWall(behaviorAt)) return FALSE; @@ -1650,9 +1650,9 @@ static void PlaceDecoration(u8 taskId) ScriptContext1_SetupScript(SecretBase_EventScript_SetDecoration); } - gSprites[sDecor_CameraSpriteObjectIdx1].pos1.y += 2; + gSprites[sDecor_CameraSpriteObjectIdx1].y += 2; if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE) - TV_PutSecretBaseVisitOnTheAir(); + TryPutSecretBaseVisitOnAir(); CancelDecorating_(taskId); } @@ -1971,9 +1971,9 @@ static void SetDecorSelectionMetatiles(struct PlaceDecorationGraphicsDataBuffer u8 shape; shape = data->decoration->shape; - for (i = 0; i < gUnknown_085A71B0[shape].size; i++) + for (i = 0; i < sDecorTilemaps[shape].size; i++) { - data->tiles[gUnknown_085A71B0[shape].tiles[i]] = GetMetatile(data->decoration->tiles[gUnknown_085A71B0[shape].y[i]] * 8 + gUnknown_085A71B0[shape].x[i]); + data->tiles[sDecorTilemaps[shape].tiles[i]] = GetMetatile(data->decoration->tiles[sDecorTilemaps[shape].y[i]] * 8 + sDecorTilemaps[shape].x[i]); } } @@ -2121,8 +2121,8 @@ u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u1 if (spriteId == MAX_SPRITES) return MAX_SPRITES; - gSprites[spriteId].pos2.x = x + 4; - gSprites[spriteId].pos2.y = y + 4; + gSprites[spriteId].x2 = x + 4; + gSprites[spriteId].y2 = y + 4; } else if (gDecorIconTable[decor][0] == NULL) { @@ -2130,11 +2130,11 @@ u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u1 if (spriteId == MAX_SPRITES) return MAX_SPRITES; - gSprites[spriteId].pos2.x = x; + gSprites[spriteId].x2 = x; if (decor == DECOR_SILVER_SHIELD || decor == DECOR_GOLD_SHIELD) - gSprites[spriteId].pos2.y = y - 4; + gSprites[spriteId].y2 = y - 4; else - gSprites[spriteId].pos2.y = y; + gSprites[spriteId].y2 = y; } else { @@ -2142,8 +2142,8 @@ u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u1 if (spriteId == MAX_SPRITES) return MAX_SPRITES; - gSprites[spriteId].pos2.x = x + 4; - gSprites[spriteId].pos2.y = y + 4; + gSprites[spriteId].x2 = x + 4; + gSprites[spriteId].y2 = y + 4; } gSprites[spriteId].oam.priority = priority; @@ -2260,7 +2260,7 @@ static void Task_PutAwayDecoration(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_DecorationReturnedToPC); DisplayItemMessageOnField(taskId, gStringVar4, ContinuePuttingAwayDecorationsPrompt); if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE) - TV_PutSecretBaseVisitOnTheAir(); + TryPutSecretBaseVisitOnAir(); } break; } @@ -2332,8 +2332,8 @@ static void ContinuePuttingAwayDecorations(u8 taskId) gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 0; gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE; gSprites[sDecor_CameraSpriteObjectIdx1].callback = InitializeCameraSprite1; - gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = 136; - gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = 72; + gSprites[sDecor_CameraSpriteObjectIdx2].x = 136; + gSprites[sDecor_CameraSpriteObjectIdx2].y = 72; gTasks[taskId].tButton = 0; gTasks[taskId].func = Task_SelectLocation; } @@ -2449,8 +2449,8 @@ static void SetCameraSpritePosition(u8 x, u8 y) { gSprites[sDecor_CameraSpriteObjectIdx1].invisible = TRUE; gSprites[sDecor_CameraSpriteObjectIdx1].callback = SpriteCallbackDummy; - gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = x * 16 + 136; - gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = y * 16 + 72; + gSprites[sDecor_CameraSpriteObjectIdx2].x = x * 16 + 136; + gSprites[sDecor_CameraSpriteObjectIdx2].y = y * 16 + 72; } static bool8 DecorationIsUnderCursor(u8 taskId, u8 idx, struct DecorRearrangementDataBuffer *data) diff --git a/src/dewford_trend.c b/src/dewford_trend.c index 5c7e50f16b..09a8d2afe9 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -10,311 +10,388 @@ #include "string_util.h" #include "constants/easy_chat.h" -// static functions -static void sub_8122804(struct EasyChatPair *s, u16 b, u8 c); -static bool8 sub_8122A58(struct EasyChatPair *a, struct EasyChatPair *b, u8 c); -static void sub_8122B28(struct EasyChatPair *s); -static bool8 SB1ContainsWords(u16 *a); -static bool8 IsEasyChatPairEqual(u16 *words1, u16 *words2); -static s16 GetEqualEasyChatPairIndex(struct EasyChatPair *s, struct EasyChatPair *a, u16 b); +/* + ## Overview ## + This file handles the "Dewford Trend", a pair of Easy Chat words + repeated by NPCs around Dewford Hall. + + The NPC outside Dewford Hall will ask what the player thinks of the + current trendy phrase, and the player may submit a new pair of words. + If the NPC thinks the submitted phrase is "trendier" than the + current one (see TrySetTrendyPhrase), it becomes the new phrase. + + ## struct DewfordTrend ## + Information about a Dewford trend is stored in a struct DewfordTrend. + In addition to the two easy chat words that make up the trend's phrase, + each trend has a few randomly generated values associated with it. + - rand: + This is a 16 bit value generated once when the phrase is created. + It's used in calculations for Feebas tiles, Slot Machines, and Match Call. + - trendiness / maxTrendiness: + Initialized as a random value between 30-127 inclusive. This is used to + compare how trendy one phrase is vs another. If a submitted phrase is + less trendy than the current one it won't be accepted. If the trend is + "boring" (see below) it will lose trendiness over time until it reaches 0, + at which point it will stop being boring and gain trendiness until it + reaches maxTrendiness (then it becomes boring again and the cycle repeats). + - gainingTrendiness: + This is a flag that determines whether a phrase should be gaining or losing + trendiness. An NPC in Dewford Hall will comment on whether the current phrase + is "boring" or not, and if it is gaining trendiness (or if it is still trendier + than the last phrase) it is not boring. This field will always be TRUE for any + new phrase submitted after the 1st submission. + + ## Saving trends ## + Each time a potential trendy phrase is submitted, it is saved in gSaveBlock1Ptr->dewfordTrends[]. + Up to SAVED_TRENDS_COUNT (5) trends may be saved at one time. The trends in this array are kept + in sorted order from most trendy to least trendy. The current trendy phrase is always at + gSaveBlock1Ptr->dewfordTrends[0]. If the player mixes records with another player, their own + trends are replaced with their mixing partner's, unless the phrase is the same, in which case + the version with a higher trendiness value is used (see ReceiveDewfordTrendData). + + ## TV Show ## + If a submitted phrase is only trendier than 1 or none of the saved trends, it may trigger a + TV Show called Trend Watcher (see TryPutTrendWatcherOnAir) that, ironically, spends the + show talking about how the submitted phrase was not trendy. + +*/ + +enum { + SORT_MODE_NORMAL, + SORT_MODE_MAX_FIRST, + SORT_MODE_FULL, +}; + +static void SortTrends(struct DewfordTrend *, u16, u8); +static bool8 CompareTrends(struct DewfordTrend *, struct DewfordTrend *, u8); +static void SeedTrendRng(struct DewfordTrend *); +static bool8 IsPhraseInSavedTrends(u16 *); +static bool8 IsEasyChatPairEqual(u16 *, u16 *); +static s16 GetSavedTrendIndex(struct DewfordTrend *, struct DewfordTrend *, u16); -// text void InitDewfordTrend(void) { u16 i; - for (i = 0; i < 5; i++) + for (i = 0; i < SAVED_TRENDS_COUNT; i++) { - gSaveBlock1Ptr->easyChatPairs[i].words[0] = GetRandomEasyChatWordFromGroup(EC_GROUP_CONDITIONS); + gSaveBlock1Ptr->dewfordTrends[i].words[0] = GetRandomEasyChatWordFromGroup(EC_GROUP_CONDITIONS); if (Random() & 1) - gSaveBlock1Ptr->easyChatPairs[i].words[1] = GetRandomEasyChatWordFromGroup(EC_GROUP_LIFESTYLE); + gSaveBlock1Ptr->dewfordTrends[i].words[1] = GetRandomEasyChatWordFromGroup(EC_GROUP_LIFESTYLE); else - gSaveBlock1Ptr->easyChatPairs[i].words[1] = GetRandomEasyChatWordFromGroup(EC_GROUP_HOBBIES); + gSaveBlock1Ptr->dewfordTrends[i].words[1] = GetRandomEasyChatWordFromGroup(EC_GROUP_HOBBIES); - gSaveBlock1Ptr->easyChatPairs[i].unk1_6 = Random() & 1; - sub_8122B28(&(gSaveBlock1Ptr->easyChatPairs[i])); + gSaveBlock1Ptr->dewfordTrends[i].gainingTrendiness = Random() & 1; + SeedTrendRng(&(gSaveBlock1Ptr->dewfordTrends[i])); } - sub_8122804(gSaveBlock1Ptr->easyChatPairs, 5, 0); + SortTrends(gSaveBlock1Ptr->dewfordTrends, SAVED_TRENDS_COUNT, SORT_MODE_NORMAL); } -void UpdateDewfordTrendPerDay(u16 a) +void UpdateDewfordTrendPerDay(u16 days) { u16 i; - if (a != 0) + if (days != 0) { - u32 sp0 = a * 5; + u32 clockRand = days * 5; - for (i = 0; i < 5; i++) + for (i = 0; i < SAVED_TRENDS_COUNT; i++) { - u32 r4; - u32 r2 = sp0; - struct EasyChatPair *r5 = &(gSaveBlock1Ptr->easyChatPairs[i]); + u32 trendiness; + u32 rand = clockRand; + struct DewfordTrend *trend = &gSaveBlock1Ptr->dewfordTrends[i]; - if (r5->unk1_6 == 0) + if (!trend->gainingTrendiness) { - if (r5->unk0_0 >= (u16)r2) + // This trend is "boring" + // Lose trendiness until it becomes 0 + if (trend->trendiness >= (u16)rand) { - r5->unk0_0 -= r2; - if (r5->unk0_0 == 0) - r5->unk1_6 = 1; + trend->trendiness -= rand; + if (trend->trendiness == 0) + trend->gainingTrendiness = TRUE; continue; } - r2 -= r5->unk0_0; - r5->unk0_0 = 0; - r5->unk1_6 = 1; + rand -= trend->trendiness; + trend->trendiness = 0; + trend->gainingTrendiness = TRUE; } - r4 = r5->unk0_0 + r2; - if ((u16)r4 > r5->unk0_7) - { - u32 sp4 = r4 % r5->unk0_7; - r4 = r4 / r5->unk0_7; - r5->unk1_6 = r4 ^ 1; - if (r5->unk1_6) - r5->unk0_0 = sp4; + trendiness = trend->trendiness + rand; + if ((u16)trendiness > trend->maxTrendiness) + { + // Reached limit, reset trendiness + u32 newTrendiness = trendiness % trend->maxTrendiness; + trendiness = trendiness / trend->maxTrendiness; + + trend->gainingTrendiness = trendiness ^ 1; + if (trend->gainingTrendiness) + trend->trendiness = newTrendiness; else - r5->unk0_0 = r5->unk0_7 - sp4; + trend->trendiness = trend->maxTrendiness - newTrendiness; } else { - r5->unk0_0 = r4; + // Increase trendiness + trend->trendiness = trendiness; - if (r5->unk0_0 == r5->unk0_7) - r5->unk1_6 = 0; + // Trend has reached its max, becoming "boring" and start losing trendiness + if (trend->trendiness == trend->maxTrendiness) + trend->gainingTrendiness = FALSE; } } - sub_8122804(gSaveBlock1Ptr->easyChatPairs, 5, 0); + SortTrends(gSaveBlock1Ptr->dewfordTrends, SAVED_TRENDS_COUNT, SORT_MODE_NORMAL); } } - -bool8 sub_81226D8(u16 *a) +// Returns TRUE if the current trendy phrase was successfully changed to the given phrase +// Returns FALSE otherwise +// Regardless of whether or not the current trendy phrase was changed, the submitted +// phrase is always saved in gSaveBlock1Ptr->dewfordTrends +bool8 TrySetTrendyPhrase(u16 *phrase) { - struct EasyChatPair s = {0}; + struct DewfordTrend trend = {0}; u16 i; - if (!SB1ContainsWords(a)) + if (!IsPhraseInSavedTrends(phrase)) { - if (!FlagGet(FLAG_SYS_POPWORD_INPUT)) + if (!FlagGet(FLAG_SYS_CHANGED_DEWFORD_TREND)) { - FlagSet(FLAG_SYS_POPWORD_INPUT); + FlagSet(FLAG_SYS_CHANGED_DEWFORD_TREND); + + // Make sure player couldn't have received this phrase by mixing records if (!FlagGet(FLAG_SYS_MIX_RECORD)) { - gSaveBlock1Ptr->easyChatPairs[0].words[0] = a[0]; - gSaveBlock1Ptr->easyChatPairs[0].words[1] = a[1]; + // This is the first time submitting a phrase + // No need to check saved phrases or reset rng, just set the new words + gSaveBlock1Ptr->dewfordTrends[0].words[0] = phrase[0]; + gSaveBlock1Ptr->dewfordTrends[0].words[1] = phrase[1]; return TRUE; } } - s.words[0] = a[0]; - s.words[1] = a[1]; - s.unk1_6 = 1; - sub_8122B28(&s); + // Initialize DewfordTrend using given phrase + trend.words[0] = phrase[0]; + trend.words[1] = phrase[1]; + trend.gainingTrendiness = TRUE; + SeedTrendRng(&trend); - for (i = 0; i < 5; i++) + for (i = 0; i < SAVED_TRENDS_COUNT; i++) { - if (sub_8122A58(&s, &(gSaveBlock1Ptr->easyChatPairs[i]), 0)) + if (CompareTrends(&trend, &(gSaveBlock1Ptr->dewfordTrends[i]), SORT_MODE_NORMAL)) { - u16 r3 = 4; - - while (r3 > i) + // New trend is "trendier" than dewfordTrend[i] + // Shift other trends back to insert new trend + u16 j = SAVED_TRENDS_COUNT - 1; + while (j > i) { - gSaveBlock1Ptr->easyChatPairs[r3] = gSaveBlock1Ptr->easyChatPairs[r3 - 1]; - r3--; + gSaveBlock1Ptr->dewfordTrends[j] = gSaveBlock1Ptr->dewfordTrends[j - 1]; + j--; } - gSaveBlock1Ptr->easyChatPairs[i] = s; - if(i == 4) - sub_80EDC60(a); + gSaveBlock1Ptr->dewfordTrends[i] = trend; + + if (i == SAVED_TRENDS_COUNT - 1) + TryPutTrendWatcherOnAir(phrase); + + // If i is 0, the given phrase is the new current phrase return (i == 0); } } - gSaveBlock1Ptr->easyChatPairs[4] = s; - sub_80EDC60(a); + + // New trend is less "trendy" than all other saved trends, put it in last + gSaveBlock1Ptr->dewfordTrends[SAVED_TRENDS_COUNT - 1] = trend; + TryPutTrendWatcherOnAir(phrase); } return FALSE; } -static void sub_8122804(struct EasyChatPair *s, u16 b, u8 c) +static void SortTrends(struct DewfordTrend *trends, u16 numTrends, u8 mode) { - u16 h; - - for (h = 0; h < b; h++) + u16 i; + for (i = 0; i < numTrends; i++) { - u16 i; - - for (i = h + 1; i < b; i++) + u16 j; + for (j = i + 1; j < numTrends; j++) { - if (sub_8122A58(&s[i], &s[h], c)) + if (CompareTrends(&trends[j], &trends[i], mode)) { - struct EasyChatPair temp; - - temp = s[i]; - s[i] = s[h]; - s[h] = temp; + struct DewfordTrend temp; + SWAP(trends[j], trends[i], temp); } } } } -void ReceiveEasyChatPairsData(struct EasyChatPair *a, size_t size, u8 unused) -{ - u16 i, j, r3, players; - struct EasyChatPair *buffer1, *buffer2, *src, *dst, *foo_of_buffer2; +#define SAVED_TRENDS_SIZE (sizeof(struct DewfordTrend) * SAVED_TRENDS_COUNT) +#define BUFFER_SIZE (SAVED_TRENDS_SIZE * MAX_LINK_PLAYERS > 0x100 ? SAVED_TRENDS_SIZE * MAX_LINK_PLAYERS : 0x100) // More space was allocated than needed - buffer1 = Alloc(0x100); - if(buffer1 != NULL) +void ReceiveDewfordTrendData(struct DewfordTrend *linkedTrends, size_t size, u8 unused) +{ + u16 i, j, numTrends, players; + struct DewfordTrend *linkedTrendsBuffer, *savedTrendsBuffer, *src, *dst, *temp; + + // Exit if alloc fails + if (!(linkedTrendsBuffer = Alloc(BUFFER_SIZE))) + return; + + // Exit if alloc fails + if (!(savedTrendsBuffer = Alloc(BUFFER_SIZE))) { - buffer2 = Alloc(0x100); - if(buffer2 == NULL) + Free(linkedTrendsBuffer); + return; + } + + // Buffer the new trends being received via Record Mixing + players = GetLinkPlayerCount(); + for (i = 0; i < players; i++) + memcpy(&linkedTrendsBuffer[i * SAVED_TRENDS_COUNT], (u8 *)linkedTrends + i * size, SAVED_TRENDS_SIZE); + + // Determine which of the received trends should be saved. + // savedTrendsBuffer starts empty, and when finished will contain + // which of the linked trends to save in the saveblock. + src = linkedTrendsBuffer; + dst = savedTrendsBuffer; + numTrends = 0; + for (i = 0; i < players; i++) + { + for (j = 0; j < SAVED_TRENDS_COUNT; j++) { - Free(buffer1); - } - else - { - players = GetLinkPlayerCount(); - for (i = 0; i < players; i++) - memcpy(&(buffer1[i * 5]), (u8 *)a + i * size, 40); - src = buffer1; - dst = buffer2; - r3 = 0; - for (i = 0; i < players; i++) + s16 idx = GetSavedTrendIndex(savedTrendsBuffer, src, numTrends); + if (idx < 0) { - for (j = 0; j < 5; j++) + // This phrase is not a currently saved trend, save it + *(dst++) = *src; + numTrends++; + } + else + { + // This phrase already exists as a saved phrase + // Only overwrrite it if it's "trendier" + temp = &savedTrendsBuffer[idx]; + if (temp->trendiness < src->trendiness) { - s16 foo = GetEqualEasyChatPairIndex(buffer2, src, r3); - if (foo < 0) - { - *(dst++) = *src; - r3++; - } - else - { - foo_of_buffer2 = (struct EasyChatPair *)((u32)buffer2 + (foo * 8)); //required to do this to reverse the order of register operands in add ASM statement - if (foo_of_buffer2->unk0_0 < src->unk0_0) - { - *foo_of_buffer2 = *src; - } - } - src++; + *temp = *src; } } - sub_8122804(buffer2, r3, 2); - src = buffer2; - dst = gSaveBlock1Ptr->easyChatPairs; - for (i = 0; i < 5; i++) - *(dst++) = *(src++); - Free(buffer1); - Free(buffer2); + src++; } } + SortTrends(savedTrendsBuffer, numTrends, SORT_MODE_FULL); + + // Overwrite current saved trends with new saved trends + src = savedTrendsBuffer; + dst = gSaveBlock1Ptr->dewfordTrends; + for (i = 0; i < SAVED_TRENDS_COUNT; i++) + *(dst++) = *(src++); + + Free(linkedTrendsBuffer); + Free(savedTrendsBuffer); } void BufferTrendyPhraseString(void) { - struct EasyChatPair *s = &gSaveBlock1Ptr->easyChatPairs[gSpecialVar_0x8004]; - - ConvertEasyChatWordsToString(gStringVar1, s->words, 2, 1); + struct DewfordTrend *trend = &gSaveBlock1Ptr->dewfordTrends[gSpecialVar_0x8004]; + ConvertEasyChatWordsToString(gStringVar1, trend->words, 2, 1); } -void TrendyPhraseIsOld(void) +// Returns TRUE if the current trendy phrase is "boring", FALSE otherwise +// This only influences the comment of an NPC inside the Dewford Town Hall +void IsTrendyPhraseBoring(void) { - u16 result = 0; + bool16 result = FALSE; do { - if (gSaveBlock1Ptr->easyChatPairs[0].unk0_0 - gSaveBlock1Ptr->easyChatPairs[1].unk0_0 > 1) + if (gSaveBlock1Ptr->dewfordTrends[0].trendiness - gSaveBlock1Ptr->dewfordTrends[1].trendiness > 1) break; - if (gSaveBlock1Ptr->easyChatPairs[0].unk1_6) + if (gSaveBlock1Ptr->dewfordTrends[0].gainingTrendiness) break; - if (!gSaveBlock1Ptr->easyChatPairs[1].unk1_6) + if (!gSaveBlock1Ptr->dewfordTrends[1].gainingTrendiness) break; - result = 1; + result = TRUE; } while (0); gSpecialVar_Result = result; } +// A painting hangs on the wall of the Dewford Hall +// When interacted with it says "{trendy phrase}'S {name} is the title" +// {name} is one of 8 pre-set words, depending on the current phrase +// See DewfordTown_Hall_EventScript_Painting void GetDewfordHallPaintingNameIndex(void) { - gSpecialVar_Result = (gSaveBlock1Ptr->easyChatPairs[0].words[0] + gSaveBlock1Ptr->easyChatPairs[0].words[1]) & 7; + gSpecialVar_Result = (gSaveBlock1Ptr->dewfordTrends[0].words[0] + gSaveBlock1Ptr->dewfordTrends[0].words[1]) & 7; } -static bool8 sub_8122A58(struct EasyChatPair *a, struct EasyChatPair *b, u8 c) +// Returns TRUE if a > b (a is "trendier" than b), FALSE if a < b (b is "trendier" than a) +// How one trend is compared to the other depends on the mode +// In SORT_MODE_FULL if the trends are equal then TRUE is always returned, otherwise TRUE or FALSE is returned randomly +static bool8 CompareTrends(struct DewfordTrend *a, struct DewfordTrend *b, u8 mode) { - switch (c) + switch (mode) { - case 0: - if (a->unk0_0 > b->unk0_0) - return 1; - if (a->unk0_0 < b->unk0_0) - return 0; - if (a->unk0_7 > b->unk0_7) - return 1; - if (a->unk0_7 < b->unk0_7) - return 0; + case SORT_MODE_NORMAL: + if (a->trendiness > b->trendiness) return TRUE; + if (a->trendiness < b->trendiness) return FALSE; + + if (a->maxTrendiness > b->maxTrendiness) return TRUE; + if (a->maxTrendiness < b->maxTrendiness) return FALSE; break; - case 1: - if (a->unk0_7 > b->unk0_7) - return 1; - if (a->unk0_7 < b->unk0_7) - return 0; - if (a->unk0_0 > b->unk0_0) - return 1; - if (a->unk0_0 < b->unk0_0) - return 0; + case SORT_MODE_MAX_FIRST: // Unused + if (a->maxTrendiness > b->maxTrendiness) return TRUE; + if (a->maxTrendiness < b->maxTrendiness) return FALSE; + + if (a->trendiness > b->trendiness) return TRUE; + if (a->trendiness < b->trendiness) return FALSE; break; - case 2: - if (a->unk0_0 > b->unk0_0) - return 1; - if (a->unk0_0 < b->unk0_0) - return 0; - if (a->unk0_7 > b->unk0_7) - return 1; - if (a->unk0_7 < b->unk0_7) - return 0; - if (a->unk2 > b->unk2) - return 1; - if (a->unk2 < b->unk2) - return 0; - if (a->words[0] > b->words[0]) - return 1; - if (a->words[0] < b->words[0]) - return 0; - if (a->words[1] > b->words[1]) - return 1; - if (a->words[1] < b->words[1]) - return 0; - return 1; + case SORT_MODE_FULL: + if (a->trendiness > b->trendiness) return TRUE; + if (a->trendiness < b->trendiness) return FALSE; + + if (a->maxTrendiness > b->maxTrendiness) return TRUE; + if (a->maxTrendiness < b->maxTrendiness) return FALSE; + + if (a->rand > b->rand) return TRUE; + if (a->rand < b->rand) return FALSE; + + if (a->words[0] > b->words[0]) return TRUE; + if (a->words[0] < b->words[0]) return FALSE; + + if (a->words[1] > b->words[1]) return TRUE; + if (a->words[1] < b->words[1]) return FALSE; + return TRUE; } + + // Invalid mode given, or trends are equal in SORT_MODE_NORMAL or SORT_MODE_MAX_FIRST + // Randomly pick one of the phrases return Random() & 1; } -static void sub_8122B28(struct EasyChatPair *s) +static void SeedTrendRng(struct DewfordTrend *trend) { - u16 r4; + u16 rand; - r4 = Random() % 98; - if (r4 > 50) + rand = Random() % 98; + if (rand > 50) { - r4 = Random() % 98; - if (r4 > 80) - r4 = Random() % 98; + rand = Random() % 98; + if (rand > 80) + rand = Random() % 98; } - s->unk0_7 = r4 + 30; - s->unk0_0 = (Random() % (r4 + 1)) + 30; - s->unk2 = Random(); + trend->maxTrendiness = rand + 30; + trend->trendiness = (Random() % (rand + 1)) + 30; + trend->rand = Random(); } -static bool8 SB1ContainsWords(u16 *a) +static bool8 IsPhraseInSavedTrends(u16 *phrase) { u16 i; - for (i = 0; i < 5; i++) + for (i = 0; i < SAVED_TRENDS_COUNT; i++) { - if (IsEasyChatPairEqual(a, gSaveBlock1Ptr->easyChatPairs[i].words) != 0) + if (IsEasyChatPairEqual(phrase, gSaveBlock1Ptr->dewfordTrends[i].words)) return TRUE; } return FALSE; @@ -332,15 +409,14 @@ static bool8 IsEasyChatPairEqual(u16 *words1, u16 *words2) return TRUE; } -static s16 GetEqualEasyChatPairIndex(struct EasyChatPair*s, struct EasyChatPair *a, u16 b) +static s16 GetSavedTrendIndex(struct DewfordTrend *savedTrends, struct DewfordTrend *trend, u16 numSaved) { s16 i; - - for (i = 0; i < b; i++) + for (i = 0; i < numSaved; i++) { - if (IsEasyChatPairEqual(a->words, s->words)) + if (IsEasyChatPairEqual(trend->words, savedTrends->words)) return i; - s++; + savedTrends++; } return -1; } diff --git a/src/diploma.c b/src/diploma.c index f243d09f96..dca0912e36 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -51,18 +51,18 @@ void CB2_ShowDiploma(void) { SetVBlankCallback(NULL); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG0CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG0HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG0VOFS, DISPCNT_MODE_0); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); // why doesn't this one use the dma manager either? DmaFill16(3, 0, VRAM, VRAM_SIZE); DmaFill32(3, 0, OAM, OAM_SIZE); @@ -84,7 +84,7 @@ void CB2_ShowDiploma(void) CopyBgTilemapBufferToVram(1); DisplayDiplomaText(); BlendPalettes(-1, 16, 0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); EnableInterrupts(1); SetVBlankCallback(VBlankCB); SetMainCallback2(MainCB2); @@ -109,7 +109,7 @@ static void Task_DiplomaWaitForKeyPress(u8 taskId) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_DiplomaFadeOut; } } @@ -121,7 +121,7 @@ static void Task_DiplomaFadeOut(u8 taskId) Free(sDiplomaTilemapPtr); FreeAllWindowBuffers(); DestroyTask(taskId); - SetMainCallback2(sub_80861E8); + SetMainCallback2(CB2_ReturnToFieldFadeFromBlack); } } @@ -129,12 +129,12 @@ static void DisplayDiplomaText(void) { if (HasAllMons()) { - SetGpuReg(REG_OFFSET_BG1HOFS, DISPCNT_BG0_ON); + SetGpuReg(REG_OFFSET_BG1HOFS, DISPLAY_WIDTH + 16); StringCopy(gStringVar1, gText_DexNational); } else { - SetGpuReg(REG_OFFSET_BG1HOFS, DISPCNT_MODE_0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); StringCopy(gStringVar1, gText_DexHoenn); } StringExpandPlaceholders(gStringVar4, gText_PokedexDiploma); @@ -168,14 +168,14 @@ static const struct BgTemplate sDiplomaBgTemplates[2] = static void InitDiplomaBg(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sDiplomaBgTemplates, 2); + InitBgsFromTemplates(0, sDiplomaBgTemplates, ARRAY_COUNT(sDiplomaBgTemplates)); SetBgTilemapBuffer(1, sDiplomaTilemapPtr); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); ShowBg(1); - SetGpuReg(REG_OFFSET_BLDCNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BLDALPHA, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BLDY, DISPCNT_MODE_0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); } static const struct WindowTemplate sDiplomaWinTemplates[2] = diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 66eacc5f92..7a642968bb 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -25,252 +25,3458 @@ #include "constants/items.h" #include "constants/songs.h" -struct DodrioSubstruct_0160 +// Note that in this file 'Dodrio Berry Picking' is often +// shortened to DodrioGame or just Game for convenience + +#define MAX_SCORE 999990 +#define MAX_BERRIES 9999 + +// The minimum score needed to receive a prize +#define PRIZE_SCORE 3000 + +// Difficulty increases as berries are eaten. The rate of new berries increases and the types of berries changes +// When the max difficulty is reached it starts again from the beginning +#define NUM_DIFFICULTIES 7 + +#define MAX_FALL_DIST 10 // The number of times a berry needs to fall before hitting the ground +#define EAT_FALL_DIST 7 // The number of times a berry needs to fall to be available to eat + +enum { + BG_INTERFACE, + BG_TREE_LEFT, + BG_TREE_RIGHT, + BG_SCENERY +}; + +enum { + FUNC_INTRO, + FUNC_INIT_COUNTDOWN, + FUNC_COUNTDOWN, + FUNC_WAIT_START, + FUNC_PLAY_GAME, + FUNC_INIT_RESULTS, + FUNC_RESULTS, + FUNC_ASK_PLAY_AGAIN, + FUNC_END_LINK, + FUNC_EXIT, + FUNC_RESET_GAME, + FUNC_WAIT_END_GAME, +}; + +enum { + GFXFUNC_LOAD, + GFXFUNC_SHOW_NAMES, + GFXFUNC_SHOW_RESULTS, + GFXFUNC_MSG_PLAY_AGAIN, + GFXFUNC_MSG_SAVING, + GFXFUNC_MSG_COMM_STANDBY, + GFXFUNC_ERASE_MSG, + GFXFUNC_MSG_PLAYER_DROPPED, + GFXFUNC_STOP, + GFXFUNC_IDLE, +}; + +enum { + PACKET_READY_START = 1, + PACKET_GAME_STATE, + PACKET_PICK_STATE, + PACKET_READY_END, +}; + +enum { + PLAY_AGAIN_NONE, + PLAY_AGAIN_YES, + PLAY_AGAIN_NO, + PLAY_AGAIN_DROPPED = 5, +}; + +enum { + PICK_NONE, // Dodrio standing still + PICK_RIGHT, // Dodrio reaching right + PICK_MIDDLE, // Dodrio reaching up + PICK_LEFT, // Dodrio reaching left + PICK_DISABLED, // Dodrio down after game over +}; + +enum { + BERRY_BLUE, + BERRY_GREEN, + BERRY_GOLD, + BERRY_MISSED, + BERRY_PRIZE, + BERRY_IN_ROW, + NUM_BERRY_IDS +}; + +#define NUM_BERRY_TYPES 4 // Blue, Green, Gold, and 'missed' + + // Eaten anim comes after the normal & missed versions of other berries +#define ANIM_EATEN (BERRY_MISSED * 2) + +enum { + BERRYSTATE_NONE, + BERRYSTATE_PICKED, // Berry has been picked by a Dodrio, replaced with blue hit sprite (still falling) + BERRYSTATE_EATEN, // Berry has been eaten (after being picked), berry is gone now + BERRYSTATE_SQUISHED, // Berry has hit the ground +}; + +enum { + INPUTSTATE_NONE, + INPUTSTATE_TRY_PICK, + INPUTSTATE_PICKED, + INPUTSTATE_ATE_BERRY, + INPUTSTATE_BAD_MISS, +}; + +// Colors for status bar squares +// Colored gray when a berry is missed +// Flash red when few yellow squares remain +enum { + STATUS_YELLOW, + STATUS_GRAY, + STATUS_RED, +}; + +#define NUM_STATUS_SQUARES 10 + +// Berries fall in predefined columns. +// A total of 10 are available, though fewer will be used with < 5 players +// The 11th column is a repeat of the 1st column wrapped around, so only +// the values 0-9 are unique 'valid' columns +#define NUM_BERRY_COLUMNS 11 + +#define GFXTAG_DODRIO 0 +#define GFXTAG_STATUS 1 +#define GFXTAG_BERRIES 2 +#define GFXTAG_CLOUD 5 +#define GFXTAG_COUNTDOWN 7 + +#define PALTAG_DODRIO_NORMAL 0 +#define PALTAG_DODRIO_SHINY 1 +#define PALTAG_STATUS 2 +#define PALTAG_BERRIES 3 +#define PALTAG_CLOUD 6 +#define PALTAG_COUNTDOWN 8 + +#define NUM_CLOUDS 2 + +#define PLAYER_NONE 0xFF + +struct DodrioGame_Gfx { - /*0x0000 : 0x3000*/ u16 ALIGNED(4) tilemapBuffers[3][BG_SCREEN_SIZE]; - /*0x3000 : 0x3160*/ bool32 finished; - /*0x3004 : 0x3164*/ u8 ALIGNED(4) unk3004; - /*0x3008 : 0x3168*/ u8 ALIGNED(4) unk3008[10]; - /*0x3014 : 0x3174*/ u8 ALIGNED(4) state; - /*0x3018 : 0x3178*/ u8 ALIGNED(4) unk3018; - /*0x301C : 0x317C*/ u16 ALIGNED(4) unk301C; - /*0x3020 : 0x3180*/ u8 ALIGNED(4) unk3020; - /*0x3024 : 0x3184*/ u8 ALIGNED(4) unk3024; - /*0x3024 : 0x3184*/ void (*unk3028)(void); + u16 ALIGNED(4) tilemapBuffers[3][BG_SCREEN_SIZE]; + bool32 finished; + u8 ALIGNED(4) taskId; + u8 ALIGNED(4) windowIds[MAX_RFU_PLAYERS + 5]; // The latter 5 are never used + u8 ALIGNED(4) state; + u8 ALIGNED(4) loadState; + u16 ALIGNED(4) timer; + u8 ALIGNED(4) cursorSelection; + u8 ALIGNED(4) playAgainState; + void (*func)(void); }; // size = 0x302C -struct DodrioStruct_2022CF4 +struct StatusBar { - u8 filler_00[0xc]; - u8 unkC[10]; - s16 unk16[10]; - u16 unk2A[10]; - u16 unk3E; + u8 unused[12]; + bool8 entered[NUM_STATUS_SQUARES]; + s16 yChange[NUM_STATUS_SQUARES]; + u16 spriteIds[NUM_STATUS_SQUARES]; + u16 flashTimer; }; // size = 0x40 -struct DodrioSubstruct_31A0_14 +struct DodrioGame_Berries { - u8 unk0[11]; - u8 unkB[11]; + u8 ids[NUM_BERRY_COLUMNS]; + u8 fallDist[NUM_BERRY_COLUMNS]; }; -struct DodrioSubstruct_31A0_2C +struct DodrioGame_PlayerCommData { - u8 unk0; - u8 ALIGNED(4) unk4; - u8 ALIGNED(4) unk8; + u8 pickState; + bool8 ALIGNED(4) ateBerry; + bool8 ALIGNED(4) missedBerry; }; -struct DodrioSubstruct_31A0 +struct DodrioGame_Player { - u8 name[0x10]; - u32 unk10; - struct DodrioSubstruct_31A0_14 unk14; - struct DodrioSubstruct_31A0_2C unk2C; - u8 filler_35[4]; + u8 name[16]; + bool32 receivedGameStatePacket; // Never read + struct DodrioGame_Berries berries; + struct DodrioGame_PlayerCommData comm; + u32 unused; }; // size = 0x3C -struct DodrioSubstruct_318C +// Because Dodrio is required for this minigame, +// the only relevant information about the selected +// Pokémon is whether or not it's shiny +struct DodrioGame_MonInfo { bool8 isShiny; }; -struct DodrioSubstruct_3308 +struct DodrioGame_ScoreResults { - u8 unk0; - u32 unk4; + u8 ranking; + u32 score; }; -struct DodrioStruct +struct DodrioGame { - /*0x0000*/ void (*savedCallback)(void); - /*0x0004*/ u8 ALIGNED(4) unk04; - /*0x0008*/ u8 ALIGNED(4) unk08; - /*0x000C*/ u8 ALIGNED(4) unk0C; - /*0x0010*/ u8 ALIGNED(4) unk10; - /*0x0014*/ u8 ALIGNED(4) unk14; - /*0x0018*/ u8 ALIGNED(4) unk18; - /*0x001C*/ u8 ALIGNED(4) unk1C; - /*0x0020*/ u8 ALIGNED(4) unk20; - /*0x0024*/ u8 ALIGNED(4) unk24; + /*0x0000*/ void (*exitCallback)(void); + /*0x0004*/ u8 ALIGNED(4) taskId; + /*0x0008*/ u8 ALIGNED(4) playersReceived; + /*0x000C*/ u8 ALIGNED(4) startState; + /*0x0010*/ u8 ALIGNED(4) state; + /*0x0014*/ u8 ALIGNED(4) timer; + /*0x0018*/ u8 ALIGNED(4) funcId; + /*0x001C*/ u8 ALIGNED(4) prevFuncId; // Set, never read + /*0x0020*/ bool8 ALIGNED(4) isLeader; + /*0x0024*/ u8 ALIGNED(4) numPlayers; /*0x0028*/ u8 ALIGNED(4) multiplayerId; - /*0x0029*/ u8 filler_0029[7]; - /*0x0030*/ u8 ALIGNED(4) unk30; - /*0x0034*/ u8 ALIGNED(4) unk34[5]; - /*0x003C*/ u8 ALIGNED(4) unk3C; - /*0x0040*/ u8 ALIGNED(4) unk40; - /*0x0044*/ u8 ALIGNED(4) unk44; - /*0x0048*/ u8 ALIGNED(4) unk48; - /*0x004A*/ u16 unk4A[5][6]; - /*0x0086*/ u16 unk86[5]; - /*0x0090*/ u8 ALIGNED(4) unk90[5]; - /*0x0098*/ u8 ALIGNED(4) unk98[4]; - /*0x009C*/ u8 ALIGNED(4) unk9C[11]; - /*0x00A8*/ u8 ALIGNED(4) unkA8[5]; - /*0x00B0*/ u8 ALIGNED(4) unkB0[5]; - /*0x00B8*/ u8 ALIGNED(4) unkB8[11]; - /*0x00C4*/ u8 ALIGNED(4) unkC4[11]; - /*0x00D0*/ u8 ALIGNED(4) unkD0[11]; - /*0x00DC*/ u8 ALIGNED(4) unkDC[11]; - /*0x00E8*/ u8 ALIGNED(4) unkE8[11]; - /*0x00F4*/ u8 ALIGNED(4) unkF4[11][2]; - /*0x010C*/ u8 ALIGNED(4) unk10C[5]; - /*0x0112*/ u16 unk112; - /*0x0114*/ u16 unk114; - /*0x0118*/ u32 unk118; - /*0x011C*/ u32 unk11C; - /*0x0120*/ u32 unk120; - /*0x0124*/ u8 ALIGNED(4) unk124; - /*0x0128*/ u8 ALIGNED(4) unk128; - /*0x012C*/ u32 unk12C; - /*0x0130*/ u32 unk130[5]; - /*0x0144*/ u8 ALIGNED(4) unk144; - /*0x0148*/ u8 ALIGNED(4) unk148[11]; - /*0x0154*/ u8 ALIGNED(4) unk154; - /*0x0158*/ u8 ALIGNED(4) unk158[5]; - /*0x0160*/ struct DodrioSubstruct_0160 unk160; - /*0x318C*/ struct DodrioSubstruct_318C unk318C[5]; - /*0x31A0*/ struct DodrioSubstruct_31A0 unk31A0[5]; - /*0x32CC*/ struct DodrioSubstruct_31A0 unk32CC; - /*0x3308*/ struct DodrioSubstruct_3308 unk3308[5]; + /*0x0029*/ u8 unused1[7]; + /*0x0030*/ u8 ALIGNED(4) countdownEndDelay; + /*0x0034*/ u8 ALIGNED(4) posToPlayerId[MAX_RFU_PLAYERS]; + /*0x003C*/ u8 ALIGNED(4) unused2; // Set to 0, never read + /*0x0040*/ u8 ALIGNED(4) numGraySquares; + /*0x0044*/ u8 ALIGNED(4) berryColStart; + /*0x0048*/ u8 ALIGNED(4) berryColEnd; + /*0x004A*/ u16 berryResults[MAX_RFU_PLAYERS][NUM_BERRY_IDS]; + /*0x0086*/ u16 berriesEaten[MAX_RFU_PLAYERS]; + /*0x0090*/ u8 ALIGNED(4) difficulty[MAX_RFU_PLAYERS]; + /*0x0098*/ u8 ALIGNED(4) pickStateQueue[4]; + /*0x009C*/ u8 ALIGNED(4) eatTimer[NUM_BERRY_COLUMNS]; + /*0x00A8*/ u8 ALIGNED(4) inputState[MAX_RFU_PLAYERS]; + /*0x00B0*/ u8 ALIGNED(4) inputDelay[MAX_RFU_PLAYERS]; + /*0x00B8*/ u8 ALIGNED(4) berryEatenBy[NUM_BERRY_COLUMNS]; + /*0x00C4*/ u8 ALIGNED(4) berryState[NUM_BERRY_COLUMNS]; + /*0x00D0*/ u8 ALIGNED(4) fallTimer[NUM_BERRY_COLUMNS]; + /*0x00DC*/ u8 ALIGNED(4) newBerryTimer[NUM_BERRY_COLUMNS]; + /*0x00E8*/ u8 ALIGNED(4) prevBerryIds[NUM_BERRY_COLUMNS]; + /*0x00F4*/ u8 ALIGNED(4) playersAttemptingPick[NUM_BERRY_COLUMNS][2]; + /*0x010C*/ u8 ALIGNED(4) playAgainStates[MAX_RFU_PLAYERS]; + /*0x0112*/ u16 berriesPickedInRow; + /*0x0114*/ u16 maxBerriesPickedInRow; + /*0x0118*/ bool32 startCountdown; // Never read + /*0x011C*/ bool32 startGame; + /*0x0120*/ bool32 berriesFalling; + /*0x0124*/ u8 ALIGNED(4) clearRecvCmdTimer; + /*0x0128*/ bool8 ALIGNED(4) clearRecvCmds; + /*0x012C*/ bool32 allReadyToEnd; + /*0x0130*/ bool32 readyToEnd[MAX_RFU_PLAYERS]; + /*0x0144*/ bool8 ALIGNED(4) playingPickSound; + /*0x0148*/ bool8 ALIGNED(4) playingSquishSound[NUM_BERRY_COLUMNS]; + /*0x0154*/ u8 ALIGNED(4) endSoundState; + /*0x0158*/ bool8 ALIGNED(4) readyToStart[MAX_RFU_PLAYERS]; + /*0x0160*/ struct DodrioGame_Gfx gfx; + /*0x318C*/ struct DodrioGame_MonInfo monInfo[MAX_RFU_PLAYERS]; + /*0x31A0*/ struct DodrioGame_Player players[MAX_RFU_PLAYERS]; + /*0x32CC*/ struct DodrioGame_Player player; + /*0x3308*/ struct DodrioGame_ScoreResults scoreResults[MAX_RFU_PLAYERS]; }; // size = 0x3330 -EWRAM_DATA static struct DodrioStruct * gUnknown_02022C98 = NULL; -EWRAM_DATA static u16 *gUnknown_02022C9C[5] = {NULL}; -EWRAM_DATA static u16 *gUnknown_02022CB0[2] = {NULL}; -EWRAM_DATA static u16 *gUnknown_02022CB8[11] = {NULL}; -EWRAM_DATA static u16 *gUnknown_02022CE4[4] = {NULL}; -EWRAM_DATA static struct DodrioStruct_2022CF4 *gUnknown_02022CF4 = NULL; -EWRAM_DATA static struct DodrioSubstruct_0160 *gUnknown_02022CF8 = NULL; +EWRAM_DATA static struct DodrioGame * sGame = NULL; +EWRAM_DATA static u16 * sDodrioSpriteIds[MAX_RFU_PLAYERS] = {NULL}; +EWRAM_DATA static u16 * sCloudSpriteIds[NUM_CLOUDS] = {NULL}; +EWRAM_DATA static u16 * sBerrySpriteIds[NUM_BERRY_COLUMNS] = {NULL}; +EWRAM_DATA static u16 * sBerryIconSpriteIds[NUM_BERRY_TYPES] = {NULL}; +EWRAM_DATA static struct StatusBar * sStatusBar = NULL; +EWRAM_DATA static struct DodrioGame_Gfx * sGfx = NULL; -static bool32 gUnknown_03000DB0; +static bool32 sExitingGame; -static void sub_8024A1C(void); -static void sub_8024A30(struct DodrioStruct *); -static void sub_8024BC8(u8 taskId); -static void sub_8024DBC(void); -static void sub_8024E00(void); -static void sub_8024E38(void); -static void sub_8024F10(void); -static void sub_8024F38(void); -static void sub_8024FFC(void); -static void sub_80250D4(void); -static void sub_8025158(void); -static void sub_8025198(void); -static void sub_8025230(void); -static void sub_8025324(void); -static void sub_8025470(void); -static void sub_8025644(void); -static void sub_80256AC(void); -static void sub_8025758(void); -static void sub_802589C(u8 taskId); -static void sub_8025910(u8 taskId); -static void sub_8025D04(void); -static void sub_8025D50(void); -static void sub_8025E0C(void); -static void sub_8025ED8(void); -static void sub_8025F48(void); -static void sub_8026044(void); -static void sub_80261CC(void); -static void sub_80261E4(void); -static void sub_80261F8(struct DodrioSubstruct_318C *, struct Pokemon *); -static void sub_802620C(TaskFunc, u8); -static void sub_802621C(TaskFunc); -static void sub_8026240(u8); -static bool32 sub_8026264(void); -static void sub_80262C0(void); -static bool32 sub_8026634(u8, u8, u8); -static void sub_802671C(void); -static void sub_8026AF4(void); -static void sub_8026B28(void); -static void sub_8026B5C(u8, u8*, u8*); -static bool32 sub_8026BB8(void); -static void sub_8026C28(void); -static bool32 sub_8026C50(void); -static bool32 sub_8026C90(void); -static void sub_8026D1C(u8); -static u8 sub_8026D8C(u8); -static u8 sub_8026DB0(u8, u8); -static void sub_8026F1C(u8, u8, u8); -static void sub_8027234(bool32 arg0); -static void sub_80272A4(void); -static void sub_80272E8(void); -static void sub_80273F0(void); -static void sub_802749C(void); -static u8 sub_8027518(u8); -static void sub_8027554(void); -static void sub_8027608(void); -static u32 sub_8027748(void); -static void sub_8027DD0(u32 arg0); -static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8); -static u32 sub_8028164(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 *arg6, u32 *arg7, u32 *arg8); -static void sub_80282EC(u8); -static u32 sub_8028318(u32 arg0, u8 *arg1); -static void sub_8028350(u32 arg0); -static u32 sub_8028374(u32 arg0); -static void sub_80283A8(void); -static void sub_8028408(struct DodrioSubstruct_318C *arg0, u8 arg1, u8 id, u8 arg3); -static void sub_80284CC(u8); -static void sub_8028504(u8); -static void sub_8028614(u8 count); -static void sub_802868C(bool8 invisible, u8 count); -static void sub_8028734(void); -static void sub_80287E4(void); -static void sub_80289E8(bool8 invisible); -static void sub_80286E4(void); -static bool32 sub_8028828(void); -static void sub_8028A34(void); -static void sub_8028A88(void); -static void sub_8028B80(void); -static void sub_8028D44(void); -static void sub_8028DFC(void); -static void sub_8028E4C(void); -static void sub_8028E84(void); -static void sub_8028EC8(bool8 invisible); -static void sub_8028FCC(void); -static void sub_802903C(void); -static void sub_8029274(struct DodrioSubstruct_0160 *PTR); -static void sub_80292E0(u8); -static bool32 sub_802A770(void); -static u8 sub_802A794(void); -static void sub_8028BF8(u8 id, bool8 invisible); -static void sub_8028C30(bool8 invisible); -static void sub_8028CA4(u16 id, u8 frameNum); -static void sub_8028C7C(u8 id, u8 y); -static void sub_80286B4(u8 id, u8 frameNum); -static u8 sub_8026E70(u8 arg0, u8 arg1); -static void sub_80288D4(u8 arg0); -static u32 sub_8027DFC(u32 arg0); -static u32 IncrementWithLimit(u32 arg0, u32 arg1); -static u32 Min(u32 arg0, u32 arg1); -static u32 sub_80276C0(u8 arg0); -static void Task_ShowDodrioBerryPickingRecords(u8 taskId); -static void sub_8029314(u8 taskId); -static void sub_8027BEC(u8 windowId, s32 width); -static void nullsub_15(struct Sprite *sprite); -static void sub_80284A8(struct Sprite *sprite); -static u32 sub_802853C(struct Sprite *sprite); -static u32 sub_80285AC(struct Sprite *sprite); -static s16 sub_8028F14(u8 arg0, u8 arg1); -static void sub_8028654(bool8 invisible, u8 id); -static void sub_8029338(void); -static bool32 sub_802A8E8(void); -static void sub_802A7A8(void); -static void sub_802A72C(void (*func)(void)); -static void (*sub_802A75C(void))(void); -static void sub_8029338(void); -static void sub_8029440(void); -static void sub_802988C(void); -static void sub_802A010(void); -static void sub_802A380(void); -static void sub_802A454(void); -static void sub_802A534(void); -static void sub_802A588(void); -static void sub_802A6FC(void); -static void nullsub_16(void); +static void ResetTasksAndSprites(void); +static void InitDodrioGame(struct DodrioGame *); +static void Task_StartDodrioGame(u8); +static void DoGameIntro(void); +static void InitCountdown(void); +static void DoCountdown(void); +static void WaitGameStart(void); +static void PlayGame_Leader(void); +static void PlayGame_Member(void); +static void WaitEndGame_Leader(void); +static void WaitEndGame_Member(void); +static void InitResults_Leader(void); +static void InitResults_Member(void); +static void DoResults(void); +static void AskPlayAgain(void); +static void EndLink(void); +static void ExitGame(void); +static void ResetGame(void); +static void Task_NewGameIntro(u8); +static void Task_CommunicateMonInfo(u8); +static void RecvLinkData_Leader(void); +static void SendLinkData_Leader(void); +static void RecvLinkData_Member(void); +static void SendLinkData_Member(void); +static void HandleSound_Leader(void); +static void HandleSound_Member(void); +static void CB2_DodrioGame(void); +static void VBlankCB_DodrioGame(void); +static void InitMonInfo(struct DodrioGame_MonInfo *, struct Pokemon *); +static void CreateTask_(TaskFunc, u8); +static void CreateDodrioGameTask(TaskFunc); +static void SetGameFunc(u8); +static bool32 SlideTreeBordersOut(void); +static void InitFirstWaveOfBerries(void); +static bool32 TryPickBerry(u8, u8, u8); +static void UpdateFallingBerries(void); +static void UpdateGame_Leader(void); +static void UpdateGame_Member(void); +static void GetActiveBerryColumns(u8, u8*, u8*); +static bool32 AllPlayersReadyToStart(void); +static void ResetReadyToStart(void); +static bool32 ReadyToEndGame_Leader(void); +static bool32 ReadyToEndGame_Member(void); +static void TryIncrementDifficulty(u8); +static u8 GetPlayerIdAtColumn(u8); +static u8 GetNewBerryId(u8, u8); +static void IncrementBerryResult(u8, u8, u8); +static void UpdateBerriesPickedInRow(bool32); +static void SetMaxBerriesPickedInRow(void); +static void ResetForPlayAgainPrompt(void); +static void SetRandomPrize(void); +static void TryUpdateRecords(void); +static u8 UpdatePickStateQueue(u8); +static void HandleWaitPlayAgainInput(void); +static void ResetPickState(void); +static u32 GetHighestScore(void); +static void SendPacket_ReadyToStart(bool32); +static void SendPacket_GameState(struct DodrioGame_Player *, + struct DodrioGame_PlayerCommData *, + struct DodrioGame_PlayerCommData *, + struct DodrioGame_PlayerCommData *, + struct DodrioGame_PlayerCommData *, + struct DodrioGame_PlayerCommData *, + u8 , bool32 , bool32 ); +static bool32 RecvPacket_GameState(u32, + struct DodrioGame_Player *, + struct DodrioGame_PlayerCommData *, + struct DodrioGame_PlayerCommData *, + struct DodrioGame_PlayerCommData *, + struct DodrioGame_PlayerCommData *, + struct DodrioGame_PlayerCommData *, + u8 *, bool32 *, bool32 *); +static void SendPacket_PickState(u8); +static bool32 RecvPacket_PickState(u32, u8 *); +static void SendPacket_ReadyToEnd(bool32); +static bool32 RecvPacket_ReadyToEnd(u32); +static void LoadDodrioGfx(void); +static void CreateDodrioSprite(struct DodrioGame_MonInfo *, u8, u8, u8); +static void StartDodrioMissedAnim(u8); +static void StartDodrioIntroAnim(u8); +static void FreeDodrioSprites(u8); +static void SetAllDodrioInvisibility(bool8, u8); +static void CreateStatusBarSprites(void); +static void FreeStatusBar(void); +static void SetStatusBarInvisibility(bool8); +static void InitStatusBarPos(void); +static bool32 DoStatusBarIntro(void); +static void LoadBerryGfx(void); +static void CreateBerrySprites(void); +static void FreeBerrySprites(void); +static void CreateCloudSprites(void); +static void ResetCloudPos(void); +static void StartCloudMovement(void); +static void FreeCloudSprites(void); +static void SetCloudInvisibility(bool8); +static void ResetBerryAndStatusBarSprites(void); +static void ResetGfxState(void); +static void InitGameGfx(struct DodrioGame_Gfx *); +static void SetGfxFuncById(u8); +static bool32 IsGfxFuncActive(void); +static u8 GetPlayAgainState(void); +static void SetBerryInvisibility(u8, bool8); +static void SetBerryIconsInvisibility(bool8); +static void SetBerryAnim(u16, u8); +static void SetBerryYPos(u8, u8); +static void SetDodrioAnim(u8, u8); +static u8 GetNewBerryIdByDifficulty(u8, u8); +static void UpdateStatusBarAnim(u8); +static u32 RecvPacket_ReadyToStart(u32); +static u32 IncrementWithLimit(u32, u32); +static u32 Min(u32, u32); +static u32 GetScore(u8); +static void Task_ShowDodrioBerryPickingRecords(u8); +static void Task_TryRunGfxFunc(u8); +static void PrintRecordsText(u8, s32); +static void SpriteCB_Status(struct Sprite *); +static void SpriteCB_Dodrio(struct Sprite *); +static u32 DoDodrioMissedAnim(struct Sprite *); +static u32 DoDodrioIntroAnim(struct Sprite *); +static s16 GetDodrioXPos(u8, u8); +static void SetDodrioInvisibility(bool8, u8); +static void LoadGfx(void); +static bool32 LoadBgGfx(void); +static void InitBgs(void); +static void SetGfxFunc(void (*func)(void)); +static void (*GetGfxFunc(void))(void); +static void ShowNames(void); +static void ShowResults(void); +static void Msg_WantToPlayAgain(void); +static void Msg_SavingDontTurnOff(void); +static void Msg_CommunicationStandby(void); +static void EraseMessage(void); +static void Msg_SomeoneDroppedOut(void); +static void StopGfxFuncs(void); +static void GfxIdle(void); -// const rom data -static const u8 gUnknown_082F449C[5][5][11] = +// For each player, the array is a list of all the columns starting with the column to their left +// Only the range of active columns is read from the array (dependent on the number of players), +// so the arrays are spaced such that the numbers in the center are where the data that's read starts and end. +static const u8 sActiveColumnMap[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS][NUM_BERRY_COLUMNS] = +{ + { // 1 player (never used), columns 4-6. + // Sometimes read to get default order regardless of the current number of players + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, + }, + { // 2 players (never used), columns 3-6 + {0, 1, 2, 3, 4, 5, 6, 3, 8, 9, 0}, + {0, 1, 2, 5, 6, 3, 4, 5, 8, 9, 0}, + }, + { // 3 players, columns 2-7 + {0, 1, 2, 3, 4, 5, 6, 7, 2, 9, 0}, + {0, 1, 4, 5, 6, 7, 2, 3, 4, 9, 0}, + {0, 1, 6, 7, 2, 3, 4, 5, 6, 9, 0}, + }, + { // 4 players, columns 1-8 + {0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 0}, + {0, 3, 4, 5, 6, 7, 8, 1, 2, 3, 0}, + {0, 5, 6, 7, 8, 1, 2, 3, 4, 5, 0}, + {0, 7, 8, 1, 2, 3, 4, 5, 6, 7, 0}, + }, + { // 5 players, all columns (0-9) + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }, + { 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2 }, + { 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4 }, + { 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6 }, + { 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8 }, + }, +}; + +// A table for which falling berry column corresponds to which Dodrio head for each player +// The numbers in each array are the column number for each head, {left, middle, right} +// Dependent on the number of players +static const u8 sDodrioHeadToColumnMap[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS][3] = +{ + { // 1 player (never used) + {4, 5, 6}, + }, + { // 2 players (never used) + {3, 4, 5}, + {5, 6, 3}, + }, + { // 3 players + {4, 5, 6}, + {6, 7, 2}, + {2, 3, 4}, + }, + { // 4 players + {3, 4, 5}, + {5, 6, 7}, + {7, 8, 1}, + {1, 2, 3}, + }, + { // 5 players + {4, 5, 6}, + {6, 7, 8}, + {8, 9, 0}, + {0, 1, 2}, + {2, 3, 4}, + }, +}; + +// A table of player ids and their neighbor, dependent on the total number of players +// {L, M, R}, where M is the player in question, L is their neighbor to the left, and R is their neighbor to the right +static const u8 sDodrioNeighborMap[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS][3] = +{ + { // 1 player (never used) + {1, 0, 1}, + }, + { // 2 players (never used) + {1, 0, 1}, + {0, 1, 0}, + }, + { // 3 players + {2, 0, 1}, + {0, 1, 2}, + {1, 2, 0}, + }, + { // 4 players + {3, 0, 1}, + {0, 1, 2}, + {1, 2, 3}, + {2, 3, 0}, + }, + { // 5 players + {4, 0, 1}, + {0, 1, 2}, + {1, 2, 3}, + {2, 3, 4}, + {3, 4, 0}, + }, +}; + +#define __ 9 // No player at this column. This may go out of bounds if this is returned + +// Takes the number of players and a column and returns the player id at that column. +// Note that the assignment is somewhat arbitrary as players share neighboring columns. +ALIGNED(4) +static const u8 sPlayerIdAtColumn[MAX_RFU_PLAYERS][NUM_BERRY_COLUMNS] = +{ + {__, __, __, __, 1, 1, 1, __, __, __, __}, // 1 player + {__, __, __, 0, 0, 1, 1, 0, __, __, __}, // 2 players + {__, __, 2, 2, 0, 0, 1, 1, 1, __, __}, // 3 players + {__, 3, 3, 0, 0, 1, 1, 2, 2, 3, __}, // 4 players + { 3, 3, 4, 4, 0, 0, 1, 1, 2, 2, 3}, // 5 players +}; + +#undef __ + +// Each array contains the columns that belong solely to one player, dependent on the number of players +// When determing how difficult the berries in a column should be, the highest +// difficulty of the players sharing that column is used. +// This table is used to skip that check, and instead automatically use the +// difficulty of the only player who can use the column. +static const u8 sUnsharedColumns[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS] = +{ + {5}, + {4, 6}, + {3, 5, 7}, + {2, 4, 6, 8}, +#ifndef BUGFIX + {1, 3, 5, 6, 9}, // BUG: Column 6 is shared, 7 is not. As a result, the player in column 7 will have their difficulty influenced by their neighbors +#else + {1, 3, 5, 7, 9}, +#endif +}; + +// Duplicate and unused gfx. Feel free to remove. +static const u32 sDuplicateGfx[] = INCBIN_U32("graphics/dodrio_berry_picking/bg.gbapal", + "graphics/dodrio_berry_picking/tree_border.gbapal", + "graphics/dodrio_berry_picking/dodrio.gbapal", + "graphics/dodrio_berry_picking/shiny.gbapal", + "graphics/dodrio_berry_picking/status.gbapal", + "graphics/dodrio_berry_picking/berries.gbapal", + "graphics/dodrio_berry_picking/berries.4bpp.lz", + "graphics/dodrio_berry_picking/cloud.gbapal", + "graphics/dodrio_berry_picking/bg.4bpp.lz", + "graphics/dodrio_berry_picking/tree_border.4bpp.lz", + "graphics/dodrio_berry_picking/status.4bpp.lz", + "graphics/dodrio_berry_picking/cloud.4bpp.lz", + "graphics/dodrio_berry_picking/dodrio.4bpp.lz", + "graphics/dodrio_berry_picking/bg.bin.lz", + "graphics/dodrio_berry_picking/tree_border_right.bin.lz", + "graphics/dodrio_berry_picking/tree_border_left.bin.lz"); + + +static const u8 sBerryFallDelays[][3] = +{ + { [BERRY_BLUE] = 40, [BERRY_GREEN] = 24, [BERRY_GOLD] = 13 }, + { [BERRY_BLUE] = 32, [BERRY_GREEN] = 19, [BERRY_GOLD] = 10 }, + { [BERRY_BLUE] = 22, [BERRY_GREEN] = 13, [BERRY_GOLD] = 7 }, +}; + +// How far the outer tree borders should slide to reveal the game screen. +// Dependent on how many players are playing. +// Curiously the 2-player screen is narrower than the 1-player, though neither +// gets used as there's a 3 player minimum +ALIGNED(4) +static const u8 sTreeBorderXPos[MAX_RFU_PLAYERS] = {8, 5, 8, 11, 15}; + +// The number of berries eaten needed to progress to the next difficulty +ALIGNED(4) +static const u8 sDifficultyThresholds[NUM_DIFFICULTIES] = {5, 10, 20, 30, 50, 70, 100}; + +ALIGNED(4) +static const u8 sPrizeBerryIds[][10] = +{ + { // Possible prizes with 3 players + ITEM_TO_BERRY(ITEM_RAZZ_BERRY) - 1, + ITEM_TO_BERRY(ITEM_BLUK_BERRY) - 1, + ITEM_TO_BERRY(ITEM_NANAB_BERRY) - 1, + ITEM_TO_BERRY(ITEM_WEPEAR_BERRY) - 1, + ITEM_TO_BERRY(ITEM_PINAP_BERRY) - 1, + ITEM_TO_BERRY(ITEM_PINAP_BERRY) - 1, + ITEM_TO_BERRY(ITEM_WEPEAR_BERRY) - 1, + ITEM_TO_BERRY(ITEM_NANAB_BERRY) - 1, + ITEM_TO_BERRY(ITEM_BLUK_BERRY) - 1, + ITEM_TO_BERRY(ITEM_RAZZ_BERRY) - 1 + }, + { // Possible prizes with 4 players + ITEM_TO_BERRY(ITEM_POMEG_BERRY) - 1, + ITEM_TO_BERRY(ITEM_KELPSY_BERRY) - 1, + ITEM_TO_BERRY(ITEM_QUALOT_BERRY) - 1, + ITEM_TO_BERRY(ITEM_HONDEW_BERRY) - 1, + ITEM_TO_BERRY(ITEM_GREPA_BERRY) - 1, + ITEM_TO_BERRY(ITEM_TAMATO_BERRY) - 1, + ITEM_TO_BERRY(ITEM_CORNN_BERRY) - 1, + ITEM_TO_BERRY(ITEM_MAGOST_BERRY) - 1, + ITEM_TO_BERRY(ITEM_RABUTA_BERRY) - 1, + ITEM_TO_BERRY(ITEM_NOMEL_BERRY) - 1 + }, + { // Possible prizes with 5 players + ITEM_TO_BERRY(ITEM_SPELON_BERRY) - 1, + ITEM_TO_BERRY(ITEM_PAMTRE_BERRY) - 1, + ITEM_TO_BERRY(ITEM_WATMEL_BERRY) - 1, + ITEM_TO_BERRY(ITEM_DURIN_BERRY) - 1, + ITEM_TO_BERRY(ITEM_BELUE_BERRY) - 1, + ITEM_TO_BERRY(ITEM_BELUE_BERRY) - 1, + ITEM_TO_BERRY(ITEM_DURIN_BERRY) - 1, + ITEM_TO_BERRY(ITEM_WATMEL_BERRY) - 1, + ITEM_TO_BERRY(ITEM_PAMTRE_BERRY) - 1, + ITEM_TO_BERRY(ITEM_SPELON_BERRY) - 1 + }, +}; + +static void (*const sLeaderFuncs[])(void) = +{ + [FUNC_INTRO] = DoGameIntro, + [FUNC_INIT_COUNTDOWN] = InitCountdown, + [FUNC_COUNTDOWN] = DoCountdown, + [FUNC_WAIT_START] = WaitGameStart, + [FUNC_PLAY_GAME] = PlayGame_Leader, + [FUNC_INIT_RESULTS] = InitResults_Leader, + [FUNC_RESULTS] = DoResults, + [FUNC_ASK_PLAY_AGAIN] = AskPlayAgain, + [FUNC_END_LINK] = EndLink, + [FUNC_EXIT] = ExitGame, + [FUNC_RESET_GAME] = ResetGame, + [FUNC_WAIT_END_GAME] = WaitEndGame_Leader +}; + +static void (*const sMemberFuncs[])(void) = +{ + [FUNC_INTRO] = DoGameIntro, + [FUNC_INIT_COUNTDOWN] = InitCountdown, + [FUNC_COUNTDOWN] = DoCountdown, + [FUNC_WAIT_START] = WaitGameStart, + [FUNC_PLAY_GAME] = PlayGame_Member, + [FUNC_INIT_RESULTS] = InitResults_Member, + [FUNC_RESULTS] = DoResults, + [FUNC_ASK_PLAY_AGAIN] = AskPlayAgain, + [FUNC_END_LINK] = EndLink, + [FUNC_EXIT] = ExitGame, + [FUNC_RESET_GAME] = ResetGame, + [FUNC_WAIT_END_GAME] = WaitEndGame_Member +}; + +void StartDodrioBerryPicking(u16 partyId, void (*exitCallback)(void)) +{ + sExitingGame = FALSE; + + if (gReceivedRemoteLinkPlayers != 0 && (sGame = AllocZeroed(sizeof(*sGame)))) + { + ResetTasksAndSprites(); + InitDodrioGame(sGame); + sGame->exitCallback = exitCallback; + sGame->multiplayerId = GetMultiplayerId(); + sGame->player = sGame->players[sGame->multiplayerId]; + InitMonInfo(&sGame->monInfo[sGame->multiplayerId], &gPlayerParty[partyId]); + CreateTask(Task_StartDodrioGame, 1); + SetMainCallback2(CB2_DodrioGame); + SetRandomPrize(); + GetActiveBerryColumns(sGame->numPlayers, &sGame->berryColStart, &sGame->berryColEnd); + StopMapMusic(); + PlayNewMapMusic(MUS_RG_BERRY_PICK); + } + else + { + // Exit - Alloc failed, or players not connected + SetMainCallback2(exitCallback); + return; + } +} + +static void ResetTasksAndSprites(void) +{ + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); +} + +static void InitDodrioGame(struct DodrioGame * game) +{ + u8 i; + + game->startState = 0; + game->state = 0; + game->timer = 0; + game->funcId = FUNC_INTRO; + game->prevFuncId = FUNC_INTRO; + game->startGame = FALSE; + game->berriesFalling = FALSE; + game->countdownEndDelay = 0; + game->numGraySquares = 0; + game->unused2 = 0; + game->allReadyToEnd = FALSE; + + for (i = 0; i < ARRAY_COUNT(game->pickStateQueue); i++) + game->pickStateQueue[i] = PICK_NONE; + + for (i = 0; i < MAX_RFU_PLAYERS; i++) + { + game->inputState[i] = INPUTSTATE_NONE; + game->inputDelay[i] = 0; + game->berryResults[i][BERRY_BLUE] = 0; + game->berryResults[i][BERRY_GREEN] = 0; + game->berryResults[i][BERRY_GOLD] = 0; + game->berryResults[i][BERRY_MISSED] = 0; + game->berryResults[i][BERRY_IN_ROW] = 0; + game->playAgainStates[i] = PLAY_AGAIN_NONE; + game->readyToEnd[i] = FALSE; + } + + for (i = 0; i < NUM_BERRY_COLUMNS; i++) + { + game->fallTimer[i] = 0; + game->newBerryTimer[i] = 0; + game->berryState[i] = BERRYSTATE_NONE; + game->playersAttemptingPick[i][0] = PLAYER_NONE; + game->playersAttemptingPick[i][1] = PLAYER_NONE; + } + + game->isLeader = GetMultiplayerId() == 0 ? TRUE : FALSE; + game->numPlayers = GetLinkPlayerCount(); + game->posToPlayerId[0] = GetMultiplayerId(); + for (i = 1; i < game->numPlayers; i++) + { + game->posToPlayerId[i] = game->posToPlayerId[i - 1] + 1; + if (game->posToPlayerId[i] > game->numPlayers - 1) + game->posToPlayerId[i] %= game->numPlayers; + } +} + +static void Task_StartDodrioGame(u8 taskId) +{ + u8 i, numPlayers; + + switch (sGame->startState) + { + case 0: + SetVBlankCallback(NULL); + CreateTask_(Task_CommunicateMonInfo, 4); + sGame->startState++; + break; + case 1: + if (!FuncIsActiveTask(Task_CommunicateMonInfo)) + { + InitGameGfx(&sGame->gfx); + sGame->startState++; + } + break; + case 2: + if (!IsGfxFuncActive()) + { + Rfu_SetLinkStandbyCallback(); + sGame->startState++; + } + break; + case 3: + if (IsLinkTaskFinished()) + { + if (gReceivedRemoteLinkPlayers != 0) + { + LoadWirelessStatusIndicatorSpriteGfx(); + CreateWirelessStatusIndicatorSprite(0, 0); + } + sGame->startState++; + } + break; + case 4: + numPlayers = sGame->numPlayers; + LoadDodrioGfx(); + for (i = 0; i < numPlayers; i++) + CreateDodrioSprite(&sGame->monInfo[sGame->posToPlayerId[i]], i, sGame->posToPlayerId[i], sGame->numPlayers); + + SetAllDodrioInvisibility(FALSE, sGame->numPlayers); + sGame->startState++; + break; + case 5: + LoadBerryGfx(); + CreateBerrySprites(); + CreateCloudSprites(); + CreateStatusBarSprites(); + sGame->startState++; + break; + case 6: + BlendPalettes(PALETTES_ALL, 0x10, 0x00); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, 0); + SetVBlankCallback(VBlankCB_DodrioGame); + sGame->startState++; + break; + case 7: + UpdatePaletteFade(); + if (!gPaletteFade.active) + sGame->startState++; + break; + default: + DestroyTask(taskId); + CreateDodrioGameTask(Task_NewGameIntro); + break; + } +} + +static void Task_DodrioGame_Leader(u8 taskId) +{ + RecvLinkData_Leader(); + sLeaderFuncs[sGame->funcId](); + if (!sExitingGame) + UpdateGame_Leader(); + + SendLinkData_Leader(); +} + +static void Task_DodrioGame_Member(u8 taskId) +{ + RecvLinkData_Member(); + sMemberFuncs[sGame->funcId](); + if (!sExitingGame) + UpdateGame_Member(); + + SendLinkData_Member(); +} + +static void DoGameIntro(void) +{ + switch (sGame->state) + { + case 0: + StartDodrioIntroAnim(1); + SetGfxFuncById(GFXFUNC_SHOW_NAMES); + sGame->state++; + break; + case 1: + if (!IsGfxFuncActive()) + SetGameFunc(FUNC_INIT_COUNTDOWN); + break; + } +} + +static void InitCountdown(void) +{ + switch (sGame->state) + { + case 0: + InitFirstWaveOfBerries(); + sGame->state++; + break; + default: + sGame->startCountdown = TRUE; + SetGameFunc(FUNC_COUNTDOWN); + break; + } +} + +static void DoCountdown(void) +{ + switch (sGame->state) + { + case 0: + StartMinigameCountdown(GFXTAG_COUNTDOWN, PALTAG_COUNTDOWN, 120, 80, 0); + sGame->state++; + break; + case 1: + Rfu_SetLinkStandbyCallback(); + sGame->state++; + break; + case 2: + if (IsLinkTaskFinished()) + { + sGame->state++; + sGame->countdownEndDelay = 0; + } + break; + case 3: + if (!IsMinigameCountdownRunning()) + sGame->state++; + break; + case 4: + if (++sGame->countdownEndDelay > 5) + { + Rfu_SetLinkStandbyCallback(); + sGame->state++; + } + break; + case 5: + if (IsLinkTaskFinished()) + SetGameFunc(FUNC_WAIT_START); + break; + } +} + +static void WaitGameStart(void) +{ + switch (sGame->state) + { + case 0: + if (sGame->startGame) + SetGameFunc(FUNC_PLAY_GAME); + break; + } +} + +static void PlayGame_Leader(void) +{ + switch (sGame->state) + { + case 0: + if (sGame->numGraySquares < NUM_STATUS_SQUARES) + { + if (sGame->inputState[0] == INPUTSTATE_NONE) + { + if (JOY_NEW(DPAD_UP)) + { + if (sGame->players[0].comm.pickState == PICK_NONE) + { + sGame->players[0].comm.ateBerry = FALSE; + sGame->players[0].comm.pickState = UpdatePickStateQueue(PICK_MIDDLE); + } + } + else if (JOY_NEW(DPAD_RIGHT)) + { + if (sGame->players[0].comm.pickState == PICK_NONE) + { + sGame->players[0].comm.ateBerry = FALSE; + sGame->players[0].comm.pickState = UpdatePickStateQueue(PICK_RIGHT); + } + } + else if (JOY_NEW(DPAD_LEFT)) + { + if (sGame->players[0].comm.pickState == PICK_NONE) + { + sGame->players[0].comm.ateBerry = FALSE; + sGame->players[0].comm.pickState = UpdatePickStateQueue(PICK_LEFT); + } + } + else + { + sGame->players[0].comm.pickState = UpdatePickStateQueue(PICK_NONE); + } + } + } + else + { + SetGameFunc(FUNC_WAIT_END_GAME); + } + UpdateFallingBerries(); + HandleSound_Leader(); + break; + } +} + +static void PlayGame_Member(void) +{ + if (sGame->numGraySquares < NUM_STATUS_SQUARES) + { + if (JOY_NEW(DPAD_UP)) + { + if (sGame->players[sGame->multiplayerId].comm.pickState == PICK_NONE) + { + sGame->player.comm.pickState = PICK_MIDDLE; + } + } + else if (JOY_NEW(DPAD_RIGHT)) + { + if (sGame->players[sGame->multiplayerId].comm.pickState == PICK_NONE) + { + sGame->player.comm.pickState = PICK_RIGHT; + } + } + else if (JOY_NEW(DPAD_LEFT)) + { + if (sGame->players[sGame->multiplayerId].comm.pickState == PICK_NONE) + { + sGame->player.comm.pickState = PICK_LEFT; + } + } + else + { + sGame->player.comm.pickState = PICK_NONE; + } + } + else + { + SetGameFunc(FUNC_WAIT_END_GAME); + } + HandleSound_Member(); +} + +static void WaitEndGame_Leader(void) +{ + u8 i; + + UpdateFallingBerries(); + HandleSound_Leader(); + if (ReadyToEndGame_Leader() == TRUE) + { + SetMaxBerriesPickedInRow(); + SetGameFunc(FUNC_INIT_RESULTS); + } + else + { + sGame->allReadyToEnd = TRUE; + for (i = 1; i < sGame->numPlayers; i++) + { + if (sGame->readyToEnd[i] != TRUE) + { + sGame->allReadyToEnd = FALSE; + break; + } + } + } +} + +static void WaitEndGame_Member(void) +{ + HandleSound_Member(); + if (ReadyToEndGame_Member() == TRUE) + SetGameFunc(FUNC_INIT_RESULTS); +} + +static bool32 AllLinkBlocksReceived(void) +{ + u8 recvStatus = GetBlockReceivedStatus(); + u8 playerFlags = GetLinkPlayerCountAsBitFlags(); + if (recvStatus == playerFlags) + { + ResetBlockReceivedFlags(); + return TRUE; + } + else + { + return FALSE; + } +} + +static void InitResults_Leader(void) +{ + switch (sGame->state) + { + case 0: + if (SendBlock(0, sGame->berryResults, sizeof(sGame->berryResults))) + { + sGame->playersReceived = 0; + sGame->state++; + } + break; + case 1: + if (IsLinkTaskFinished()) + { + sGame->state++; + } + break; + case 2: + if (AllLinkBlocksReceived()) + { + sGame->playersReceived = sGame->numPlayers; + } + if (sGame->playersReceived >= sGame->numPlayers) + { + sGame->timer++; + sGame->state++; + } + break; + default: + if (WaitFanfare(TRUE)) + { + SetGameFunc(FUNC_RESULTS); + FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); + } + break; + } +} + +static void InitResults_Member(void) +{ + u8 i; + + switch (sGame->state) { + case 0: + if (SendBlock(0, sGame->berryResults[sGame->timer], sizeof(sGame->berryResults))) { + sGame->playersReceived = 0; + sGame->state++; + } + break; + case 1: + if (IsLinkTaskFinished()) { + sGame->state++; + } + break; + case 2: + if (AllLinkBlocksReceived()) { + for (i = 0; i < sGame->numPlayers; i++) { + memcpy(sGame->berryResults, gBlockRecvBuffer, sizeof(sGame->berryResults)); + sGame->playersReceived = sGame->numPlayers; + } + } + if (sGame->playersReceived >= sGame->numPlayers) { + sGame->timer++; + sGame->state++; + } + break; + default: + if (WaitFanfare(TRUE)) { + sGame->maxBerriesPickedInRow = sGame->berryResults[sGame->multiplayerId][BERRY_IN_ROW]; + SetGameFunc(FUNC_RESULTS); + FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); + } + break; + } +} + +static void DoResults(void) +{ + u8 playAgainState = PLAY_AGAIN_YES; + u8 i; + + switch (sGame->state) + { + case 0: + TryUpdateRecords(); + SetStatusBarInvisibility(TRUE); + ResetCloudPos(); + SetCloudInvisibility(TRUE); + SetGfxFuncById(GFXFUNC_SHOW_RESULTS); + sGame->state++; + break; + case 1: + if (!IsGfxFuncActive()) + { + SetGfxFuncById(GFXFUNC_MSG_COMM_STANDBY); + sGame->state++; + } + break; + case 2: + playAgainState = GetPlayAgainState(); + if (SendBlock(0, &playAgainState, sizeof(playAgainState))) + sGame->state++; + break; + case 3: + if (IsLinkTaskFinished()) + { + sGame->state++; + sGame->playersReceived = 0; + } + break; + case 4: + if (AllLinkBlocksReceived()) + { + for (i = 0; i < sGame->numPlayers; i++) + { + *(&sGame->playAgainStates[i]) = *(u8 *)gBlockRecvBuffer[i]; + sGame->playersReceived = sGame->numPlayers; + } + } + if (sGame->playersReceived >= sGame->numPlayers) + { + if (++sGame->timer >= 120) + { + SetGfxFuncById(GFXFUNC_ERASE_MSG); + sGame->state++; + } + } + break; + default: + if (!IsGfxFuncActive()) + SetGameFunc(FUNC_ASK_PLAY_AGAIN); + break; + } +} + +static void AskPlayAgain(void) +{ + u8 playAgainState; + u8 i; + + switch (sGame->state) + { + case 0: + if (GetHighestScore() >= PRIZE_SCORE) + { + SetGfxFuncById(GFXFUNC_MSG_SAVING); + } + sGame->state++; + break; + case 1: + if (!IsGfxFuncActive()) + { + SetGfxFuncById(GFXFUNC_MSG_PLAY_AGAIN); + sGame->state++; + } + break; + case 2: + ResetBerryAndStatusBarSprites(); + ResetForPlayAgainPrompt(); + sGame->state++; + break; + case 3: + if ((playAgainState = GetPlayAgainState()) != PLAY_AGAIN_NONE) + { + sGame->state++; + } + break; + case 4: + if (!IsGfxFuncActive()) + { + SetGfxFuncById(GFXFUNC_MSG_COMM_STANDBY); + sGame->state++; + } + break; + case 5: + playAgainState = GetPlayAgainState(); + if (SendBlock(0, &playAgainState, sizeof(playAgainState))) + { + sGame->playersReceived = 0; + sGame->state++; + } + break; + case 6: + if (IsLinkTaskFinished()) + sGame->state++; + break; + case 7: + if (AllLinkBlocksReceived()) + { + for (i = 0; i < sGame->numPlayers; i++) + { + *(&sGame->playAgainStates[i]) = *(u8 *)gBlockRecvBuffer[i]; + sGame->playersReceived = sGame->numPlayers; + } + } + if (sGame->playersReceived >= sGame->numPlayers) + { + if (++sGame->timer >= 120) + { + ResetPickState(); + SetGfxFuncById(GFXFUNC_ERASE_MSG); + sGame->state++; + } + } + else + { + HandleWaitPlayAgainInput(); + } + break; + default: + if (!IsGfxFuncActive()) + { + for (i = 0; i < sGame->numPlayers; i++) + { + if (sGame->playAgainStates[i] == PLAY_AGAIN_NO) + { + SetGameFunc(FUNC_END_LINK); + return; + } + } + SetGameFunc(FUNC_RESET_GAME); + } + break; + } +} + +static void EndLink(void) +{ + switch (sGame->state) + { + case 0: + SetCloseLinkCallback(); + SetGfxFuncById(GFXFUNC_MSG_PLAYER_DROPPED); + sGame->state++; + break; + case 1: + if (!IsGfxFuncActive()) + sGame->state++; + break; + case 2: + if (GetPlayAgainState() == PLAY_AGAIN_DROPPED) + sGame->state++; + break; + default: + if (gReceivedRemoteLinkPlayers == 0) + { + SetGameFunc(FUNC_EXIT); + } + break; + } +} + +static void ExitGame(void) +{ + switch (sGame->state) + { + case 0: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, 0); + sGame->state++; + break; + case 1: + UpdatePaletteFade(); + if (!gPaletteFade.active) + sGame->state++; + break; + case 2: + FreeBerrySprites(); + FreeStatusBar(); + FreeDodrioSprites(sGame->numPlayers); + FreeCloudSprites(); + sExitingGame = TRUE; + SetGfxFuncById(GFXFUNC_STOP); + sGame->state++; + break; + default: + if (!IsGfxFuncActive()) + { + SetMainCallback2(sGame->exitCallback); + DestroyTask(sGame->taskId); + Free(sGame); + FreeAllWindowBuffers(); + } + break; + } +} + +static void ResetGame(void) +{ + switch (sGame->state) + { + case 0: + SetGfxFuncById(GFXFUNC_IDLE); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, 0); + sGame->state++; + break; + case 1: + UpdatePaletteFade(); + if (!gPaletteFade.active) + { + sGame->state++; + } + break; + case 2: + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + sGame->state++; + break; + case 3: + StopMapMusic(); + sGame->state++; + break; + case 4: + PlayNewMapMusic(MUS_RG_BERRY_PICK); + StartCloudMovement(); + sGame->state++; + break; + case 5: + BlendPalettes(PALETTES_ALL, 16, 0); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, 0); + sGame->state++; + break; + case 6: + UpdatePaletteFade(); + if (!gPaletteFade.active) + sGame->state++; + break; + default: + DestroyTask(sGame->taskId); + CreateDodrioGameTask(Task_NewGameIntro); + ResetGfxState(); + InitDodrioGame(sGame); + if (gReceivedRemoteLinkPlayers == 0) + sGame->numPlayers = 1; + + SetRandomPrize(); + SetCloudInvisibility(FALSE); + break; + } +} + +static void Task_NewGameIntro(u8 taskId) +{ + switch (sGame->state) + { + case 0: + if (SlideTreeBordersOut() == TRUE) + sGame->state++; + break; + case 1: + InitStatusBarPos(); + sGame->state++; + break; + case 2: + if (DoStatusBarIntro() == TRUE) + sGame->state++; + break; + default: + if (sGame->isLeader) + CreateDodrioGameTask(Task_DodrioGame_Leader); + else + CreateDodrioGameTask(Task_DodrioGame_Member); + + DestroyTask(taskId); + break; + } +} + +#define tState data[0] + +static void Task_CommunicateMonInfo(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u8 i; + + switch (tState) + { + case 0: + if (SendBlock(0, &sGame->monInfo[sGame->multiplayerId].isShiny, sizeof(sGame->monInfo[sGame->multiplayerId].isShiny))) + { + sGame->playersReceived = 0; + tState++; + } + break; + case 1: + if (IsLinkTaskFinished()) + tState++; + break; + case 2: + if (AllLinkBlocksReceived()) + { + for (i = 0; i < sGame->numPlayers; i++) + { + *(u8 *)&sGame->monInfo[i] = *(u8 *)gBlockRecvBuffer[i]; + sGame->playersReceived = sGame->numPlayers; + } + } + if (sGame->playersReceived >= sGame->numPlayers) + { + DestroyTask(taskId); + SetGfxFuncById(GFXFUNC_ERASE_MSG); + sGame->state++; + } + break; + } +} + +#undef tState + +static void RecvLinkData_Gameplay(void) +{ + u8 i; + u8 numPlayers = sGame->numPlayers; + + sGame->players[0].receivedGameStatePacket = RecvPacket_GameState(0, + &sGame->players[0], + &sGame->players[0].comm, + &sGame->players[1].comm, + &sGame->players[2].comm, + &sGame->players[3].comm, + &sGame->players[4].comm, + &sGame->numGraySquares, + &sGame->berriesFalling, + &sGame->allReadyToEnd); + sGame->clearRecvCmds = TRUE; + + for (i = 1; i < numPlayers; i++) + { + if (sGame->inputState[i] == INPUTSTATE_NONE && !RecvPacket_PickState(i, &sGame->players[i].comm.pickState)) + { + sGame->players[i].comm.pickState = PICK_NONE; + sGame->clearRecvCmds = FALSE; + } + } + if (++sGame->clearRecvCmdTimer >= 60) + { + if (sGame->clearRecvCmds) + { + ClearRecvCommands(); + sGame->clearRecvCmdTimer = 0; + } + else if (sGame->clearRecvCmdTimer > 70) + { + ClearRecvCommands(); + sGame->clearRecvCmdTimer = 0; + } + } + + for (i = 0; i < numPlayers; i++) + { + if (sGame->players[i].comm.pickState != PICK_NONE && sGame->inputState[i] == INPUTSTATE_NONE) + { + sGame->inputState[i] = INPUTSTATE_TRY_PICK; + } + switch (sGame->inputState[i]) + { + case INPUTSTATE_NONE: + default: + break; + case INPUTSTATE_TRY_PICK: + case INPUTSTATE_PICKED: + case INPUTSTATE_ATE_BERRY: + if (++sGame->inputDelay[i] >= 6) + { + sGame->inputDelay[i] = 0; + sGame->inputState[i] = INPUTSTATE_NONE; + sGame->players[i].comm.pickState = PICK_NONE; + sGame->players[i].comm.ateBerry = FALSE; + sGame->players[i].comm.missedBerry = FALSE; + } + break; + case INPUTSTATE_BAD_MISS: + // Tried to pick with no berry in range, long delay until next input + if (++sGame->inputDelay[i] >= 40) + { + sGame->inputDelay[i] = 0; + sGame->inputState[i] = INPUTSTATE_NONE; + sGame->players[i].comm.pickState = PICK_NONE; + sGame->players[i].comm.ateBerry = FALSE; + sGame->players[i].comm.missedBerry = FALSE; + } + break; + } + } +} + +static void RecvLinkData_ReadyToEnd(void) +{ + u8 i; + u8 numPlayers = sGame->numPlayers; + + sGame->players[0].receivedGameStatePacket = RecvPacket_GameState(0, + &sGame->players[0], + &sGame->players[0].comm, + &sGame->players[1].comm, + &sGame->players[2].comm, + &sGame->players[3].comm, + &sGame->players[4].comm, + &sGame->numGraySquares, + &sGame->berriesFalling, + &sGame->allReadyToEnd); + sGame->clearRecvCmds = TRUE; + + for (i = 1; i < numPlayers; i++) + { + if (RecvPacket_ReadyToEnd(i)) + { + sGame->readyToEnd[i] = TRUE; + sGame->clearRecvCmds = FALSE; + } + } + if (++sGame->clearRecvCmdTimer >= 60) + { + if (sGame->clearRecvCmds) + { + ClearRecvCommands(); + sGame->clearRecvCmdTimer = 0; + } + else if (sGame->clearRecvCmdTimer > 70) + { + ClearRecvCommands(); + sGame->clearRecvCmdTimer = 0; + } + } +} + +static void RecvLinkData_Leader(void) +{ + switch (sGame->funcId) + { + case FUNC_WAIT_START: + if (AllPlayersReadyToStart() == TRUE) + { + ResetReadyToStart(); + sGame->startGame = TRUE; + } + break; + case FUNC_PLAY_GAME: + RecvLinkData_Gameplay(); + break; + case FUNC_WAIT_END_GAME: + RecvLinkData_ReadyToEnd(); + break; + } +} + +static void SendLinkData_Leader(void) +{ + switch (sGame->funcId) + { + case FUNC_PLAY_GAME: + SendPacket_GameState(&sGame->player, + &sGame->players[0].comm, + &sGame->players[1].comm, + &sGame->players[2].comm, + &sGame->players[3].comm, + &sGame->players[4].comm, + sGame->numGraySquares, + sGame->berriesFalling, + sGame->allReadyToEnd); + break; + case FUNC_WAIT_END_GAME: + SendPacket_GameState(&sGame->player, + &sGame->players[0].comm, + &sGame->players[1].comm, + &sGame->players[2].comm, + &sGame->players[3].comm, + &sGame->players[4].comm, + sGame->numGraySquares, + sGame->berriesFalling, + sGame->allReadyToEnd); + break; + } +} + +static void RecvLinkData_Member(void) +{ + switch (sGame->funcId) + { + case FUNC_PLAY_GAME: + RecvPacket_GameState(sGame->multiplayerId, + &sGame->players[sGame->multiplayerId], + &sGame->players[0].comm, + &sGame->players[1].comm, + &sGame->players[2].comm, + &sGame->players[3].comm, + &sGame->players[4].comm, + &sGame->numGraySquares, + &sGame->berriesFalling, + &sGame->allReadyToEnd); + break; + case FUNC_WAIT_END_GAME: + RecvPacket_GameState(sGame->multiplayerId, + &sGame->players[sGame->multiplayerId], + &sGame->players[0].comm, + &sGame->players[1].comm, + &sGame->players[2].comm, + &sGame->players[3].comm, + &sGame->players[4].comm, + &sGame->numGraySquares, + &sGame->berriesFalling, + &sGame->allReadyToEnd); + break; + } +} + +static void SendLinkData_Member(void) +{ + switch (sGame->funcId) + { + case FUNC_WAIT_START: + SendPacket_ReadyToStart(TRUE); + sGame->startGame = TRUE; + break; + case FUNC_PLAY_GAME: + if (sGame->player.comm.pickState != PICK_NONE) + { + SendPacket_PickState(sGame->player.comm.pickState); + } + break; + case FUNC_WAIT_END_GAME: + if (!sGame->berriesFalling && !sGame->allReadyToEnd) + SendPacket_ReadyToEnd(TRUE); + break; + } +} + +static void HandleSound_Leader(void) +{ + if (sGame->players[sGame->multiplayerId].comm.pickState == PICK_NONE) + { + if (!IsSEPlaying()) + sGame->playingPickSound = FALSE; + } + else if (sGame->players[sGame->multiplayerId].comm.ateBerry == TRUE) + { + if (!sGame->playingPickSound) + { + m4aSongNumStop(SE_SUCCESS); + PlaySE(SE_SUCCESS); + sGame->playingPickSound = TRUE; + } + } + else if (sGame->players[sGame->multiplayerId].comm.missedBerry == TRUE) + { + if (!sGame->playingPickSound && !IsSEPlaying()) + { + PlaySE(SE_BOO); + StartDodrioMissedAnim(1); + sGame->playingPickSound = TRUE; + } + } + + if (sGame->endSoundState == 0 && sGame->numGraySquares >= NUM_STATUS_SQUARES) + { + // Ready to play game over sound + StopMapMusic(); + sGame->endSoundState = 1; + } + else if (sGame->endSoundState == 1) + { + // Play game over sound + PlayFanfareByFanfareNum(FANFARE_TOO_BAD); + sGame->endSoundState = 2; + } +} + +static void HandleSound_Member(void) +{ + u8 berryStart = sGame->berryColStart; + u8 berryEnd = sGame->berryColEnd; + u8 i; + if (sGame->players[sGame->multiplayerId].comm.pickState == PICK_NONE) + { + if (sGame->players[sGame->multiplayerId].comm.ateBerry != TRUE + && sGame->players[sGame->multiplayerId].comm.missedBerry != TRUE) + sGame->playingPickSound = 0; + } + else if (sGame->players[sGame->multiplayerId].comm.ateBerry == TRUE) + { + if (!sGame->playingPickSound) + { + m4aSongNumStop(SE_SUCCESS); + PlaySE(SE_SUCCESS); + sGame->playingPickSound = TRUE; + } + } + else if (sGame->players[sGame->multiplayerId].comm.missedBerry == TRUE) + { + if (!sGame->playingPickSound && !IsSEPlaying()) + { + PlaySE(SE_BOO); + StartDodrioMissedAnim(1); + sGame->playingPickSound = TRUE; + } + } + for (i = berryStart; i < berryEnd; i++) + { + struct DodrioGame_Berries * berries = &sGame->players[sGame->multiplayerId].berries; + if (berries->fallDist[i] >= MAX_FALL_DIST) + { + if (!sGame->playingSquishSound[i]) + { + PlaySE(SE_BALLOON_RED + berries->ids[i]); + sGame->playingSquishSound[i] = TRUE; + } + } + else + { + sGame->playingSquishSound[i] = FALSE; + } + } + if (sGame->endSoundState == 0 && sGame->numGraySquares >= NUM_STATUS_SQUARES) + { + // Ready to play game over sound + StopMapMusic(); + sGame->endSoundState = 1; + } + else if (sGame->endSoundState == 1) + { + // Play game over sound + PlayFanfareByFanfareNum(FANFARE_TOO_BAD); + sGame->endSoundState = 2; + } +} + +static void CB2_DodrioGame(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void VBlankCB_DodrioGame(void) +{ + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); +} + +static void InitMonInfo(struct DodrioGame_MonInfo * monInfo, struct Pokemon * mon) +{ + monInfo->isShiny = IsMonShiny(mon); +} + +static void CreateTask_(TaskFunc func, u8 priority) +{ + CreateTask(func, priority); +} + +static void CreateDodrioGameTask(TaskFunc func) +{ + sGame->taskId = CreateTask(func, 1); + sGame->state = 0; + sGame->startState = 0; + sGame->timer = 0; +} + +static void SetGameFunc(u8 funcId) +{ + sGame->prevFuncId = sGame->funcId; + sGame->funcId = funcId; + sGame->state = 0; + sGame->timer = 0; +} + +static bool32 SlideTreeBordersOut(void) +{ + u8 x = sGame->timer / 4; + sGame->timer++; + if (x != 0 && sGame->timer % 4 == 0) + { + if (x < sTreeBorderXPos[sGame->numPlayers - 1]) + { + // Update position + SetGpuReg(REG_OFFSET_BG1HOFS, (x * 8)); // BG_TREE_LEFT + SetGpuReg(REG_OFFSET_BG2HOFS, -(x * 8)); // BG_TREE_RIGHT + return FALSE; + } + else + { + // Animation finished + return TRUE; + } + } + else + { + return FALSE; + } +} + +static void InitFirstWaveOfBerries(void) +{ + u8 i; + u8 berryStart = sGame->berryColStart; + u8 berryEnd = sGame->berryColEnd; + + for (i = berryStart; i < berryEnd; i++) + { + struct DodrioGame_Berries * berries = &sGame->player.berries; + berries->fallDist[i] = (i % 2 == 0) ? 1 : 0; + berries->ids[i] = BERRY_BLUE; + } +} + +// This function checks every berry and resolves if it should be eaten or not. +// It's run in a loop that handles moving each individual berry, which means +// that every time any berry moves, every single berry is checked. +static void HandlePickBerries(void) +{ + u8 berryStart = sGame->berryColStart; + u8 berryEnd = sGame->berryColEnd; + u8 numPlayers = sGame->numPlayers; + u8 i, j, k, column; + + // Game is already over + if (sGame->numGraySquares >= NUM_STATUS_SQUARES) + return; + + for (i = 0; i < numPlayers; i++) + { + u8 *pickState = &sGame->players[i].comm.pickState; + if (*pickState != PICK_NONE && sGame->inputState[i] == INPUTSTATE_TRY_PICK) + { + // Player is attempting to pick a berry + for (j = berryStart; j < berryEnd; j++) + { + column = sActiveColumnMap[0][0][j]; + + // Attempt has already been checked + if (sGame->playersAttemptingPick[column][0] == i + || sGame->playersAttemptingPick[column][1] == i) + break; + + // Check berry pick attempt + if (TryPickBerry(i, *pickState, column) == TRUE) + { + // Attempt was successful + for (k = 0; k < ARRAY_COUNT(sGame->playersAttemptingPick[0]); k++) + { + if (sGame->playersAttemptingPick[column][k] == PLAYER_NONE) + { + sGame->playersAttemptingPick[column][k] = i; + sGame->inputState[i] = INPUTSTATE_PICKED; + sGame->berryState[column] = BERRYSTATE_PICKED; + break; + } + } + break; + } + if (sGame->players[i].comm.missedBerry == TRUE) + break; + } + } + } + + for (j = berryStart; j < berryEnd; j++) + { + u8 playerIdMissed = PLAYER_NONE; + column = sActiveColumnMap[0][0][j]; + if (sGame->berryState[column] == BERRYSTATE_PICKED) + { + s32 delayRemaining; + u8 playerIdPicked, delayStage = sGame->difficulty[GetPlayerIdAtColumn(column)] / NUM_DIFFICULTIES; + if (delayStage >= ARRAY_COUNT(sBerryFallDelays) - 1) + delayStage = ARRAY_COUNT(sBerryFallDelays) - 1; + + delayRemaining = sBerryFallDelays[delayStage][sGame->players[0].berries.ids[column]] - sGame->fallTimer[column]; + if (delayRemaining < 6) + sGame->eatTimer[column] += delayRemaining; + + if (++sGame->eatTimer[column] >= 6) + { + sGame->eatTimer[column] = 0; + + if (sGame->playersAttemptingPick[column][0] == PLAYER_NONE + && sGame->playersAttemptingPick[column][1] == PLAYER_NONE) + { + // No players attempting to pick this berry + continue; + } + else if (sGame->playersAttemptingPick[column][0] != PLAYER_NONE + && sGame->playersAttemptingPick[column][1] == PLAYER_NONE) + { + // One player attempting to pick this berry + playerIdPicked = sGame->playersAttemptingPick[column][0]; + } + else + { + // Two players attempting to pick this berry + // Randomly give it to one of them + u8 playerId1 = sGame->playersAttemptingPick[column][0]; + i = sGame->playersAttemptingPick[column][1]; // playerId2. Have to re-use the variable to match. + if (!(Random() & 1)) + { + playerIdPicked = playerId1; + playerIdMissed = i; + } + else + { + playerIdPicked = i; + playerIdMissed = playerId1; + } + } + + // Eat berry + sGame->player.berries.fallDist[column] = EAT_FALL_DIST; + sGame->berryState[column] = BERRYSTATE_EATEN; + sGame->inputState[playerIdPicked] = INPUTSTATE_ATE_BERRY; + sGame->berryEatenBy[column] = playerIdPicked; + sGame->players[playerIdPicked].comm.ateBerry = TRUE; +#ifdef UBFIX + if (playerIdMissed != PLAYER_NONE) +#endif + sGame->players[playerIdMissed].comm.missedBerry = TRUE; // UB: playerIdMissed can be PLAYER_NONE here, which is out of bounds + + sGame->berriesEaten[playerIdPicked]++; + IncrementBerryResult(0, column, playerIdPicked); + UpdateBerriesPickedInRow(TRUE); + TryIncrementDifficulty(playerIdPicked); + sGame->prevBerryIds[column] = sGame->player.berries.ids[column]; + sGame->player.berries.ids[column] = BERRY_MISSED; // Just to clear berry id, wasn't actually missed + sGame->playersAttemptingPick[column][0] = PLAYER_NONE; + sGame->playersAttemptingPick[column][1] = PLAYER_NONE; + } + } + } +} + +static bool32 TryPickBerry(u8 playerId, u8 pickState, u8 column) +{ + s32 pick = 0; + u8 numPlayersIdx = sGame->numPlayers - 1; + struct DodrioGame_Berries * berries = &sGame->player.berries; + + switch (pickState) + { + case PICK_LEFT: + default: + pick = 0; + break; + case PICK_MIDDLE: + pick = 1; + break; + case PICK_RIGHT: + pick = 2; + break; + } + + // Check if berry is within range to be picked + if (berries->fallDist[column] == EAT_FALL_DIST - 1 || berries->fallDist[column] == EAT_FALL_DIST) + { + // Check if this berry is the one the player is trying to pick + if (column == sDodrioHeadToColumnMap[numPlayersIdx][playerId][pick]) + { + // Check if berry has been picked/eaten by another player + if (sGame->berryState[column] == BERRYSTATE_PICKED || sGame->berryState[column] == BERRYSTATE_EATEN) + { + // Missed berry, picked by someone else + sGame->players[playerId].comm.missedBerry = TRUE; + return FALSE; + } + else + { + // Successfully picked berry + return TRUE; + } + } + } + else + { + // Check if this berry is the one the player is trying to pick + if (column == sDodrioHeadToColumnMap[numPlayersIdx][playerId][pick]) + { + // Missed berry, out of range + sGame->inputState[playerId] = INPUTSTATE_BAD_MISS; + sGame->players[playerId].comm.missedBerry = TRUE; + } + } + return FALSE; +} + +static void UpdateFallingBerries(void) +{ + u8 berryStart = sGame->berryColStart; + u8 berryEnd = sGame->berryColEnd; + u8 delayStage = 0; + u8 otherBerryMissed = 0; + u8 i; + + sGame->berriesFalling = FALSE; + + for (i = berryStart; i < berryEnd - 1; i++) + { + struct DodrioGame *game = sGame; + + if (sGame->berryState[i] == BERRYSTATE_NONE || sGame->berryState[i] == BERRYSTATE_PICKED) + { + sGame->berriesFalling = TRUE; + + if (game->player.berries.fallDist[i] >= MAX_FALL_DIST) + { + // Berry hit the ground + game->player.berries.fallDist[i] = MAX_FALL_DIST; + sGame->berryState[i] = BERRYSTATE_SQUISHED; + if (!sGame->playingSquishSound[i]) + { + sGame->playingSquishSound[i] = TRUE; + PlaySE(SE_BALLOON_RED + game->player.berries.ids[i]); + } + if (sGame->numGraySquares < NUM_STATUS_SQUARES || otherBerryMissed == TRUE) + { + otherBerryMissed = TRUE; + sGame->playingSquishSound[i] = FALSE; + if (sGame->numGraySquares < NUM_STATUS_SQUARES) + sGame->numGraySquares++; + + IncrementBerryResult(BERRY_MISSED, i, 0); + UpdateBerriesPickedInRow(FALSE); + } + } + else + { + // Berry is still falling + u8 delay; + delayStage = sGame->difficulty[GetPlayerIdAtColumn(i)] / NUM_DIFFICULTIES; + if (delayStage >= ARRAY_COUNT(sBerryFallDelays) - 1) + delayStage = ARRAY_COUNT(sBerryFallDelays) - 1; + + delay = sBerryFallDelays[delayStage][game->player.berries.ids[i]]; + if (++sGame->fallTimer[i] >= delay) + { + game->player.berries.fallDist[i]++; + sGame->fallTimer[i] = 0; + } + HandlePickBerries(); + } + } + else if (sGame->berryState[i] == BERRYSTATE_EATEN) + { + // Berry has been eaten, wait and create a new berry + sGame->berriesFalling = TRUE; + if (++sGame->newBerryTimer[i] >= 20) + { + sGame->players[sGame->berryEatenBy[i]].comm.ateBerry = FALSE; + sGame->newBerryTimer[i] = 0; + sGame->fallTimer[i] = 0; + sGame->berryState[i] = BERRYSTATE_NONE; + game->player.berries.fallDist[i] = 1; + game->player.berries.ids[i] = GetNewBerryId(GetPlayerIdAtColumn(i), i); + } + } + else if (sGame->berryState[i] == BERRYSTATE_SQUISHED) + { + // Berry has already hit the ground, wait and create a new berry + if (++sGame->newBerryTimer[i] >= 20) + { + if (sGame->numGraySquares < NUM_STATUS_SQUARES) + { + sGame->newBerryTimer[i] = 0; + sGame->fallTimer[i] = 0; + sGame->berryState[i] = BERRYSTATE_NONE; + game->player.berries.fallDist[i] = 1; + sGame->prevBerryIds[i] = game->player.berries.ids[i]; + game->player.berries.ids[i] = GetNewBerryId(GetPlayerIdAtColumn(i), i); + } + } + } + } +} + +static void UpdateBerrySprites(void) +{ + u8 i; + u8 berryStart = sGame->berryColStart; + u8 berryEnd = sGame->berryColEnd; + + for (i = berryStart; i < berryEnd; i++) + { + struct DodrioGame_Player *player = &sGame->players[sGame->multiplayerId]; + u8 column = sActiveColumnMap[sGame->numPlayers - 1][sGame->multiplayerId][i]; + + if (player->berries.fallDist[column] != 0) + SetBerryInvisibility(i, FALSE); + else + SetBerryInvisibility(i, TRUE); + + if (player->berries.fallDist[column] >= MAX_FALL_DIST) + { + // Berry was missed, set squished anim + SetBerryAnim(i, player->berries.ids[column] + BERRY_MISSED); + SetBerryYPos(i, player->berries.fallDist[column] * 2 - 1); + } + else if (player->berries.ids[column] == 3) + { + // Berry was picked, set eaten anim + player->berries.fallDist[column] = EAT_FALL_DIST; + SetBerryAnim(i, ANIM_EATEN); + SetBerryYPos(i, player->berries.fallDist[column] * 2 - 1); + } + else + { + // Berry is still falling + SetBerryAnim(i, player->berries.ids[column]); + SetBerryYPos(i, player->berries.fallDist[column] * 2); + } + } +} + +static void UpdateAllDodrioAnims(void) +{ + u8 i, numPlayers; + + numPlayers = sGame->numPlayers; + for (i = 0; i < numPlayers; i++) + { + struct DodrioGame_Player *player = &sGame->players[i]; + SetDodrioAnim(i, player->comm.pickState); + } +} + +static void SetAllDodrioDisabled(void) +{ + u8 i, numPlayers; + + numPlayers = sGame->numPlayers; + for (i = 0; i < numPlayers; i++) + SetDodrioAnim(i, PICK_DISABLED); +} + +static void UpdateGame_Leader(void) +{ + UpdateBerrySprites(); + if (sGame->numGraySquares >= NUM_STATUS_SQUARES) + SetAllDodrioDisabled(); + else + UpdateAllDodrioAnims(); + + UpdateStatusBarAnim(sGame->numGraySquares); +} + +// Identical to UpdateGame_Leader +static void UpdateGame_Member(void) +{ + UpdateBerrySprites(); + if (sGame->numGraySquares >= NUM_STATUS_SQUARES) + SetAllDodrioDisabled(); + else + UpdateAllDodrioAnims(); + + UpdateStatusBarAnim(sGame->numGraySquares); +} + +static void GetActiveBerryColumns(u8 numPlayers, u8 *start, u8 *end) +{ + switch (numPlayers) + { + case 1: + *start = 4, *end = 7; + break; + case 2: + *start = 3, *end = 8; + break; + case 3: + *start = 2, *end = 9; + break; + case 4: + *start = 1, *end = 10; + break; + case 5: + *start = 0, *end = 11; + break; + } +} + +static bool32 AllPlayersReadyToStart(void) +{ + u8 i, numPlayers; + + numPlayers = sGame->numPlayers; + for (i = 1; i < numPlayers; i++) + { + if (sGame->readyToStart[i] == FALSE) + sGame->readyToStart[i] = RecvPacket_ReadyToStart(i); + } + + numPlayers = numPlayers; // Needed to force compiler to keep loop below + +#ifdef BUGFIX + i = 1; // i isn't reset, loop below never runs. As a result, game can begin before all players ready +#endif + for (; i < numPlayers; i++) + { + if (sGame->readyToStart[i] == FALSE) + return FALSE; + } + + return TRUE; +} + +static void ResetReadyToStart(void) +{ + u8 i; + + for (i = 0; i < MAX_RFU_PLAYERS; i++) + sGame->readyToStart[i] = FALSE; +} + +static bool32 ReadyToEndGame_Leader(void) +{ + if (sGame->numGraySquares >= NUM_STATUS_SQUARES && !sGame->berriesFalling) + { + sGame->numGraySquares = NUM_STATUS_SQUARES; + if (sGame->allReadyToEnd) + return TRUE; + } + + return FALSE; +} + +static bool32 ReadyToEndGame_Member(void) +{ + u8 i, berryStart, berryEnd; + + if (sGame->numGraySquares >= NUM_STATUS_SQUARES) + { + berryStart = sGame->berryColStart; + berryEnd = sGame->berryColEnd; + sGame->numGraySquares = NUM_STATUS_SQUARES; + if (sGame->allReadyToEnd) + { + for (i = berryStart; i < berryEnd; i++) + { + struct DodrioGame_Player *player = &sGame->players[sGame->multiplayerId]; + u8 column = sActiveColumnMap[sGame->numPlayers - 1][sGame->multiplayerId][i]; + + if (player->berries.fallDist[column] != MAX_FALL_DIST) + return FALSE; + } + return TRUE; + } + } + + return FALSE; +} + +static void TryIncrementDifficulty(u8 playerId) +{ + u8 threshold = sDifficultyThresholds[sGame->difficulty[playerId] % NUM_DIFFICULTIES] + (sGame->difficulty[playerId] / NUM_DIFFICULTIES) * 100; + if (sGame->berriesEaten[playerId] >= threshold) + sGame->difficulty[playerId]++; +} + +static u8 GetPlayerIdAtColumn(u8 column) +{ + return sPlayerIdAtColumn[sGame->numPlayers - 1][column]; +} + +// Get a berry id for when a new falling berry is created. +// What type of berry it is depends on the current difficulty +// level of players who can pick berries from that column. +static u8 GetNewBerryId(u8 playerId, u8 column) +{ + u8 i, highestDifficulty; + u8 numPlayersIdx = sGame->numPlayers - 1; + u8 leftPlayer = sDodrioNeighborMap[numPlayersIdx][playerId][0]; + u8 middlePlayer = sDodrioNeighborMap[numPlayersIdx][playerId][1]; + u8 rightPlayer = sDodrioNeighborMap[numPlayersIdx][playerId][2]; + + for (i = 0; sUnsharedColumns[numPlayersIdx][i] != 0; i++) + { + // If only one player can use this column, just use their difficulty + if (column == sUnsharedColumns[numPlayersIdx][i]) + return GetNewBerryIdByDifficulty(sGame->difficulty[middlePlayer], column); + } + + // This column is shared, get the highest difficulty of adjacent players + if (sGame->difficulty[leftPlayer] > sGame->difficulty[middlePlayer]) + highestDifficulty = sGame->difficulty[leftPlayer]; + else + highestDifficulty = sGame->difficulty[middlePlayer]; + + if (sGame->difficulty[rightPlayer] > highestDifficulty) + highestDifficulty = sGame->difficulty[rightPlayer]; + + return GetNewBerryIdByDifficulty(highestDifficulty, column); +} + +// The berry types cycle through different distributions depending on the difficulty +static u8 GetNewBerryIdByDifficulty(u8 difficulty, u8 column) +{ + u8 prevBerryId = sGame->prevBerryIds[column]; + switch (difficulty % NUM_DIFFICULTIES) + { + default: return BERRY_BLUE; + case 0: return BERRY_BLUE; + case 1: return BERRY_GREEN; + case 2: return BERRY_GOLD; + case 3: + if (prevBerryId == BERRY_BLUE) + return BERRY_GREEN; + else + return BERRY_BLUE; + case 4: + if (prevBerryId == BERRY_BLUE) + return BERRY_GOLD; + else + return BERRY_BLUE; + case 5: + if (prevBerryId == BERRY_GOLD) + return BERRY_GREEN; + else + return BERRY_GOLD; + case 6: + if (prevBerryId == BERRY_BLUE) + return BERRY_GREEN; + else if (prevBerryId == BERRY_GREEN) + return BERRY_GOLD; + else + return BERRY_BLUE; + } +} + +static bool32 IsTotalBerriesMissedOver10(u16 berryResults[MAX_RFU_PLAYERS][NUM_BERRY_IDS]) +{ + int missed = 0, i = 0; + for (; i < GetLinkPlayerCount(); missed += berryResults[i][BERRY_MISSED], i++) + ; + + if (missed > 10) + return TRUE; + else + return FALSE; +} + +// Despite being set up to take a berry id as an argument, this +// function is only ever given BERRY_BLUE or BERRY_MISSED. +// It reads the actual berry id (if necessary) from ids +static void IncrementBerryResult(u8 berryIdArg, u8 column, u8 playerId) +{ + u8 berryId; + u8 numPlayers = sGame->numPlayers; + switch (berryIdArg) + { + case BERRY_BLUE: + case BERRY_GREEN: + case BERRY_GOLD: + berryId = sGame->players[0].berries.ids[column]; + sGame->berryResults[playerId][berryId] = IncrementWithLimit(sGame->berryResults[playerId][berryId], 20000); + break; + case BERRY_MISSED: + if (IsTotalBerriesMissedOver10(sGame->berryResults)) + break; + switch (numPlayers) + { + case 5: + switch (column) + { + case 0: + sGame->berryResults[2][BERRY_MISSED]++; + sGame->berryResults[3][BERRY_MISSED]++; + break; + case 1: + sGame->berryResults[3][BERRY_MISSED]++; + break; + case 2: + sGame->berryResults[3][BERRY_MISSED]++; + sGame->berryResults[4][BERRY_MISSED]++; + break; + case 3: + sGame->berryResults[4][BERRY_MISSED]++; + break; + case 4: + sGame->berryResults[4][BERRY_MISSED]++; + sGame->berryResults[0][BERRY_MISSED]++; + break; + case 5: + sGame->berryResults[0][BERRY_MISSED]++; + break; + case 6: + sGame->berryResults[0][BERRY_MISSED]++; + sGame->berryResults[1][BERRY_MISSED]++; + break; + case 7: + sGame->berryResults[1][BERRY_MISSED]++; + break; + case 8: + sGame->berryResults[1][BERRY_MISSED]++; + sGame->berryResults[2][BERRY_MISSED]++; + break; + case 9: + sGame->berryResults[2][BERRY_MISSED]++; + break; + } + break; + case 4: + switch (column) + { + case 1: + sGame->berryResults[2][BERRY_MISSED]++; + sGame->berryResults[3][BERRY_MISSED]++; + break; + case 2: + sGame->berryResults[3][BERRY_MISSED]++; + break; + case 3: + sGame->berryResults[3][BERRY_MISSED]++; + sGame->berryResults[0][BERRY_MISSED]++; + break; + case 4: + sGame->berryResults[0][BERRY_MISSED]++; + break; + case 5: + sGame->berryResults[0][BERRY_MISSED]++; + sGame->berryResults[1][BERRY_MISSED]++; + break; + case 6: + sGame->berryResults[1][BERRY_MISSED]++; + break; + case 7: + sGame->berryResults[1][BERRY_MISSED]++; + sGame->berryResults[2][BERRY_MISSED]++; + break; + case 8: + sGame->berryResults[2][BERRY_MISSED]++; + break; + } + break; + case 3: + switch (column) + { + case 2: + sGame->berryResults[1][BERRY_MISSED]++; + sGame->berryResults[2][BERRY_MISSED]++; + break; + case 3: + sGame->berryResults[2][BERRY_MISSED]++; + break; + case 4: + sGame->berryResults[2][BERRY_MISSED]++; + sGame->berryResults[0][BERRY_MISSED]++; + break; + case 5: + sGame->berryResults[0][BERRY_MISSED]++; + break; + case 6: + sGame->berryResults[0][BERRY_MISSED]++; + sGame->berryResults[1][BERRY_MISSED]++; + break; + case 7: + sGame->berryResults[1][BERRY_MISSED]++; + break; + } + break; + case 2: + switch (column) + { + case 3: + sGame->berryResults[0][BERRY_MISSED]++; + sGame->berryResults[1][BERRY_MISSED]++; + break; + case 4: + sGame->berryResults[0][BERRY_MISSED]++; + break; + case 5: + sGame->berryResults[0][BERRY_MISSED]++; + sGame->berryResults[1][BERRY_MISSED]++; + break; + case 6: + sGame->berryResults[1][BERRY_MISSED]++; + break; + } + break; + } + break; + } +} + +static void UpdateBerriesPickedInRow(bool32 picked) +{ + // The 'berries picked in row' stat is only + // counted for games with all 5 players + if (sGame->numPlayers != MAX_RFU_PLAYERS) + return; + + if (picked == TRUE) + { + if (++sGame->berriesPickedInRow > sGame->maxBerriesPickedInRow) + sGame->maxBerriesPickedInRow = sGame->berriesPickedInRow; + if (sGame->berriesPickedInRow > MAX_BERRIES) + sGame->berriesPickedInRow = MAX_BERRIES; + } + else // missed + { + if (sGame->berriesPickedInRow > sGame->maxBerriesPickedInRow) + sGame->maxBerriesPickedInRow = sGame->berriesPickedInRow; + sGame->berriesPickedInRow = 0; + } +} + +static void SetMaxBerriesPickedInRow(void) +{ + u8 i; + for (i = 0; i < sGame->numPlayers; i++) + sGame->berryResults[i][BERRY_IN_ROW] = sGame->maxBerriesPickedInRow; +} + +static void ResetForPlayAgainPrompt(void) +{ + u8 i, j; + + for (i = 0; i < MAX_RFU_PLAYERS; i++) + { + for (j = 0; j < NUM_BERRY_COLUMNS; j++) + sGame->players[i].berries.fallDist[j] = 0; + sGame->players[i].comm.pickState = PICK_NONE; + sGame->players[i].comm.ateBerry = FALSE; + sGame->difficulty[i] = 0; + sGame->berriesEaten[i] = 0; + sGame->scoreResults[i].ranking = 0; + sGame->scoreResults[i].score = 0; + sGame->berryResults[i][BERRY_BLUE] = 0; + sGame->berryResults[i][BERRY_GREEN] = 0; + sGame->berryResults[i][BERRY_GOLD] = 0; + sGame->berryResults[i][BERRY_MISSED] = 0; + sGame->berryResults[i][BERRY_PRIZE] = 0; + sGame->berryResults[i][BERRY_IN_ROW] = 0; + } + sGame->endSoundState = 0; + sGame->berriesPickedInRow = 0; + sGame->numGraySquares = 0; + UpdateAllDodrioAnims(); + UpdateBerrySprites(); +} + +static const s16 sBerryScoreMultipliers[] = { + [BERRY_BLUE] = 10, + [BERRY_GREEN] = 30, + [BERRY_GOLD] = 50, + [BERRY_MISSED] = 50 // Subtracted +}; + +static void SetRandomPrize(void) +{ + u8 i, prizeSet = 0, prizeIdx = 0; + + switch (sGame->numPlayers) + { + case 4: prizeSet = 1; break; + case 5: prizeSet = 2; break; + } + + prizeIdx = Random() % ARRAY_COUNT(sPrizeBerryIds[0]); + for (i = 0; i < MAX_RFU_PLAYERS; i++) + sGame->berryResults[i][BERRY_PRIZE] = sPrizeBerryIds[prizeSet][prizeIdx]; +} + +static u32 GetBerriesPicked(u8 playerId) +{ + u32 sum = sGame->berryResults[playerId][BERRY_BLUE] + + sGame->berryResults[playerId][BERRY_GREEN] + + sGame->berryResults[playerId][BERRY_GOLD]; + return min(sum, MAX_BERRIES); +} + +static void TryUpdateRecords(void) +{ + u32 berriesPicked = Min(GetBerriesPicked(sGame->multiplayerId), MAX_BERRIES); // Min here is redundant + u32 score = Min(GetScore(sGame->multiplayerId), MAX_SCORE); + + if (gSaveBlock2Ptr->berryPick.bestScore < score) + gSaveBlock2Ptr->berryPick.bestScore = score; + if (gSaveBlock2Ptr->berryPick.berriesPicked < berriesPicked) + gSaveBlock2Ptr->berryPick.berriesPicked = berriesPicked; + if (gSaveBlock2Ptr->berryPick.berriesPickedInRow < sGame->maxBerriesPickedInRow) + gSaveBlock2Ptr->berryPick.berriesPickedInRow = sGame->maxBerriesPickedInRow; +} + +// Enqueue the given state, and dequeue and return +// the state that should be used next +static u8 UpdatePickStateQueue(u8 pickState) +{ + u8 i, nextState; + + nextState = sGame->pickStateQueue[ARRAY_COUNT(sGame->pickStateQueue) - 1]; + for (i = ARRAY_COUNT(sGame->pickStateQueue) - 1; i != 0; i--) + sGame->pickStateQueue[i] = sGame->pickStateQueue[i - 1]; + sGame->pickStateQueue[0] = pickState; + return nextState; +} + +// The player may extend their Dodrio's heads while they wait for +// other players to respond to the "Play again?" prompt +static void HandleWaitPlayAgainInput(void) +{ + if (sGame->inputDelay[sGame->multiplayerId] == 0) + { + if (JOY_NEW(DPAD_UP)) + { + sGame->players[sGame->multiplayerId].comm.pickState = PICK_MIDDLE; + sGame->inputDelay[sGame->multiplayerId] = 6; + PlaySE(SE_M_CHARM); + } + else if (JOY_NEW(DPAD_LEFT)) + { + sGame->players[sGame->multiplayerId].comm.pickState = PICK_LEFT; + sGame->inputDelay[sGame->multiplayerId] = 6; + PlaySE(SE_M_CHARM); + } + else if (JOY_NEW(DPAD_RIGHT)) + { + sGame->players[sGame->multiplayerId].comm.pickState = PICK_RIGHT; + sGame->inputDelay[sGame->multiplayerId] = 6; + PlaySE(SE_M_CHARM); + } + else + { + sGame->players[sGame->multiplayerId].comm.pickState = PICK_NONE; + } + } + else + { + sGame->inputDelay[sGame->multiplayerId]--; + } +} + +static void ResetPickState(void) +{ + sGame->players[sGame->multiplayerId].comm.pickState = PICK_NONE; +} + +static u16 GetPrizeItemId(void) +{ + return sGame->berryResults[sGame->multiplayerId][BERRY_PRIZE] + FIRST_BERRY_INDEX; +} + +static u8 GetNumPlayers(void) +{ + return sGame->numPlayers; +} + +static u8 *GetPlayerName(u8 id) +{ + if (gReceivedRemoteLinkPlayers) + return gLinkPlayers[id].name; + else + return sGame->players[id].name; +} + +static u16 GetBerryResult(u8 playerId, u8 berryId) +{ + return sGame->berryResults[playerId][berryId]; +} + +static u32 GetScore(u8 playerId) +{ + u8 i; + u32 scoreLost, score = 0; + + // Sum up points for berries picked + for (i = 0; i < BERRY_MISSED; i++) + score += sGame->berryResults[playerId][i] * sBerryScoreMultipliers[i]; + + // Get points lost for berries missed + scoreLost = sGame->berryResults[playerId][BERRY_MISSED] * sBerryScoreMultipliers[BERRY_MISSED]; + + if (score <= scoreLost) + return 0; + else + return score - scoreLost; +} + +static u32 GetHighestScore(void) +{ + u8 i, numPlayers = sGame->numPlayers; + u32 maxScore = GetScore(0); + + for (i = 1; i < numPlayers; i++) + { + u32 score = GetScore(i); + if (score > maxScore) + maxScore = score; + } + return Min(maxScore, MAX_SCORE); +} + +static u32 GetHighestBerryResult(u8 berryId) +{ + u8 i, numPlayers = sGame->numPlayers; + u16 maxScore = sGame->berryResults[0][berryId]; + + for (i = 0; i < numPlayers; i++) + { + u16 score = sGame->berryResults[i][berryId]; + if (score > maxScore) + maxScore = score; + } + return maxScore; +} + +static u32 GetScoreByRanking(u8 ranking) +{ + u32 scores[MAX_RFU_PLAYERS], temp; + s16 unsorted = TRUE; + u8 i; + u8 numPlayers = sGame->numPlayers; + + for (i = 0; i < numPlayers; i++) + scores[i] = temp = GetScore(i); + + // Sort the scores in the array highest to lowest + while (unsorted) + { + unsorted = FALSE; + for (i = 0; i < numPlayers - 1; i++) + { + if (scores[i] < scores[i + 1]) + { + SWAP(scores[i], scores[i + 1], temp); + unsorted = TRUE; + } + } + } + + return scores[ranking]; +} + +static u32 SetScoreResults(void) +{ + u8 i, ranking = 0, nextRanking = 0, playersRanked = 0; + u8 numPlayers = sGame->numPlayers; + + GetHighestScore(); // Useless call + + if (GetHighestScore() == 0) + { + // No one scored any points, put everyone in last place with a score of 0. + // Presumably this was supposed to then return, as the assignments in this + // loop are then overwritten by the rest of the function + for (i = 0; i < numPlayers; i++) + { + sGame->scoreResults[i].ranking = MAX_RFU_PLAYERS - 1; + sGame->scoreResults[i].score = 0; + } + } + + // Set scores + for (i = 0; i < numPlayers; i++) + sGame->scoreResults[i].score = Min(GetScore(i), MAX_SCORE); + + // Set rankings + do + { + u32 score = GetScoreByRanking(ranking); + u8 curRanking = nextRanking; + + // Find all players with the score for this ranking. + // Increment nextRanking but not curRanking to allow + // for ties + for (i = 0; i < numPlayers; i++) + { + if (score == sGame->scoreResults[i].score) + { + sGame->scoreResults[i].ranking = curRanking; + nextRanking++; + playersRanked++; + } + } + ranking = nextRanking; + } while (playersRanked < numPlayers); + + return 0; +} + +static void GetScoreResults(struct DodrioGame_ScoreResults *dst, u8 playerId) +{ + *dst = sGame->scoreResults[playerId]; +} + +// Unused +// Returns where the specified player's score ranks, 0 being first (highest score) +static u8 GetScoreRanking(u8 playerId) +{ + u8 i, ranking = 0; + u8 numPlayers = sGame->numPlayers; + u32 playersScore; + u32 scores[MAX_RFU_PLAYERS] = {0}; + + for (i = 0; i < numPlayers; i++) + scores[i] = GetScore(i); + + playersScore = scores[playerId]; + for (i = 0; i < MAX_RFU_PLAYERS; i++) + { + if (i != playerId && playersScore < scores[i]) + ranking++; + } + + return ranking; +} + +enum { + PRIZE_RECEIVED, + PRIZE_FILLED_BAG, + PRIZE_NO_ROOM, + NO_PRIZE, +}; + +static u8 TryGivePrize(void) +{ + u8 multiplayerId = sGame->multiplayerId; + u16 itemId = GetPrizeItemId(); + + if (GetScore(multiplayerId) != GetHighestScore()) + return NO_PRIZE; + if (!CheckBagHasSpace(itemId, 1)) + return PRIZE_NO_ROOM; + + AddBagItem(itemId, 1); + if (!CheckBagHasSpace(itemId, 1)) + return PRIZE_FILLED_BAG; + return PRIZE_RECEIVED; +} + +static u32 IncrementWithLimit(u32 a, u32 max) +{ + if (a < max) + return a + 1; + else + return max; +} + +static u32 Min(u32 a, u32 b) +{ + if (a < b) + return a; + else + return b; +} + +static u8 GetPlayerIdByPos(u8 id) +{ + return sGame->posToPlayerId[id]; +} + +void IsDodrioInParty(void) +{ + int i; + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_DODRIO) + { + gSpecialVar_Result = TRUE; + return; + } + } + + gSpecialVar_Result = FALSE; +} + +#define NUM_RECORD_TYPES 3 + +void ShowDodrioBerryPickingRecords(void) +{ + u8 taskId = CreateTask(Task_ShowDodrioBerryPickingRecords, 0); + Task_ShowDodrioBerryPickingRecords(taskId); +} + +static const struct WindowTemplate sWindowTemplates_Records = +{ + .bg = 0, + .tilemapLeft = 5, + .tilemapTop = 1, + .width = 20, + .height = 11, + .paletteNum = 15, + .baseBlock = 0x1, +}; + +static const u8 *const sRecordsTexts[NUM_RECORD_TYPES] = {gText_BerriesPicked, gText_BestScore, gText_BerriesInRowFivePlayers}; +static const u8 sRecordNumMaxDigits[NUM_RECORD_TYPES] = {4, 7, 4}; +ALIGNED(4) +static const u8 sRecordTextYCoords[NUM_RECORD_TYPES][2] = {{25}, {41}, {57}}; +static const u8 sRecordNumYCoords[NUM_RECORD_TYPES][2] = {{25}, {41}, {73}}; + +#define tState data[0] +#define tWindowId data[1] + +static void Task_ShowDodrioBerryPickingRecords(u8 taskId) +{ + struct WindowTemplate window; + s32 i, width, widthCurr; + s16 *data = gTasks[taskId].data; + + switch (tState) + { + case 0: + window = sWindowTemplates_Records; + width = GetStringWidth(1, gText_BerryPickingRecords, 0); + for (i = 0; i < ARRAY_COUNT(sRecordsTexts); i++) + { + widthCurr = GetStringWidth(1, sRecordsTexts[i], 0) + 50; + if (widthCurr > width) + width = widthCurr; + } + width = (width + 7) / 8; + if (width & 1) + width++; + window.tilemapLeft = (30 - width) / 2; + window.width = width; + tWindowId = AddWindow(&window); + PrintRecordsText(tWindowId, width); + CopyWindowToVram(tWindowId, 3); + tState++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + tState++; + break; + case 2: + if (JOY_NEW(A_BUTTON | B_BUTTON)) + { + rbox_fill_rectangle(tWindowId); + CopyWindowToVram(tWindowId, 1); + tState++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + RemoveWindow(tWindowId); + DestroyTask(taskId); + EnableBothScriptContexts(); + } + break; + } +} + +#undef tState +#undef tWindowId + +static void PrintRecordsText(u8 windowId, s32 width) +{ + s32 i, x, numWidth; + s32 recordNums[NUM_RECORD_TYPES]; + recordNums[0] = gSaveBlock2Ptr->berryPick.berriesPicked; + recordNums[1] = gSaveBlock2Ptr->berryPick.bestScore; + recordNums[2] = gSaveBlock2Ptr->berryPick.berriesPickedInRow; + + LoadUserWindowBorderGfx_(windowId, 0x21D, 0xD0); + DrawTextBorderOuter(windowId, 0x21D, 0xD); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + AddTextPrinterParameterized(windowId, 1, gText_BerryPickingRecords, GetStringCenterAlignXOffset(1, gText_BerryPickingRecords, width * 8), 1, TEXT_SPEED_FF, NULL); + for (i = 0; i < NUM_RECORD_TYPES; i++) + { + ConvertIntToDecimalStringN(gStringVar1, recordNums[i], STR_CONV_MODE_LEFT_ALIGN, sRecordNumMaxDigits[i]); + numWidth = GetStringWidth(1, gStringVar1, -1); + AddTextPrinterParameterized(windowId, 1, sRecordsTexts[i], 0, sRecordTextYCoords[i][0], TEXT_SPEED_FF, NULL); + x = (width * 8) - numWidth; + AddTextPrinterParameterized(windowId, 1, gStringVar1, x, sRecordNumYCoords[i][0], TEXT_SPEED_FF, NULL); + } + PutWindowTilemap(windowId); +} + +// Debug functions? +static const u16 sDebug_BerryResults[MAX_RFU_PLAYERS][4] = +{ + { + [BERRY_BLUE] = MAX_BERRIES, + [BERRY_GREEN] = 0, + [BERRY_GOLD] = 90, + [BERRY_MISSED] = MAX_BERRIES + }, + { + [BERRY_BLUE] = MAX_BERRIES, + [BERRY_GREEN] = MAX_BERRIES, + [BERRY_GOLD] = 70, + [BERRY_MISSED] = MAX_BERRIES + }, + { + [BERRY_BLUE] = MAX_BERRIES, + [BERRY_GREEN] = 0, + [BERRY_GOLD] = MAX_BERRIES, + [BERRY_MISSED] = 0 + }, + { + [BERRY_BLUE] = MAX_BERRIES, + [BERRY_GREEN] = MAX_BERRIES, + [BERRY_GOLD] = 60, + [BERRY_MISSED] = 0 + }, + { + [BERRY_BLUE] = MAX_BERRIES, + [BERRY_GREEN] = MAX_BERRIES, + [BERRY_GOLD] = MAX_BERRIES, + [BERRY_MISSED] = 0 + }, +}; + +static const u8 sJPText_Vowels[] = _("あいうえおかき"); +static const u8 sText_ABCDEFG[] = _("ABCDEFG"); +static const u8 sText_0123456[] = _("0123456"); + +static const u8 *const sDebug_PlayerNames[] = +{ + sJPText_Vowels, + sJPText_Vowels, + sJPText_Vowels, + sText_ABCDEFG, + sText_0123456 +}; + +static void Debug_UpdateNumPlayers(void) +{ + sGame->numPlayers = GetLinkPlayerCount(); +} + +static void Debug_SetPlayerNamesAndResults(void) +{ + u8 i, playerId; + + for (playerId = sGame->numPlayers; playerId < ARRAY_COUNT(sDebug_PlayerNames); playerId++) + StringCopy(gLinkPlayers[playerId].name, sDebug_PlayerNames[playerId]); + + sGame->numPlayers = MAX_RFU_PLAYERS; + for (i = 0; i < NUM_BERRY_TYPES; i++) + { + for (playerId = 0; playerId < sGame->numPlayers; playerId++) + sGame->berryResults[playerId][i] = sDebug_BerryResults[playerId][i]; + } +} + +struct ReadyToStartPacket +{ + u8 id; + bool8 ALIGNED(4) ready; +}; + +static void SendPacket_ReadyToStart(bool32 ready) +{ + struct ReadyToStartPacket packet; + packet.id = PACKET_READY_START; + packet.ready = ready; + Rfu_SendPacket(&packet); +} + +static u32 RecvPacket_ReadyToStart(u32 playerId) +{ + struct ReadyToStartPacket *packet; + + if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) + return FALSE; + + packet = (void *)&gRecvCmds[playerId][1]; + if (packet->id == PACKET_READY_START) + return packet->ready; + + return FALSE; +} + +struct GameStatePacket +{ + u8 id; + u8 fallDist_Col0:4; + u8 fallDist_Col1:4; + u16 fallDist_Col2:4; + u16 fallDist_Col3:4; + u16 fallDist_Col4:4; + u16 fallDist_Col5:4; + u16 fallDist_Col6:4; + u16 fallDist_Col7:4; + u16 fallDist_Col8:4; + u16 fallDist_Col9:4; + u16 berryId_Col0:2; + u16 berryId_Col1:2; + u16 berryId_Col2:2; + u16 berryId_Col3:2; + u16 berryId_Col4:2; + u16 berryId_Col5:2; + u16 berryId_Col6:2; + u16 berryId_Col7:2; + u8 berryId_Col8:2; + u8 berryId_Col9:2; + u8 pickState_Player1:2; + u8 pickState_Player2:2; + u8 pickState_Player3:2; + u8 pickState_Player4:2; + u8 pickState_Player5:2; + bool8 ateBerry_Player1:1; + bool8 ateBerry_Player2:1; + bool8 ateBerry_Player3:1; + bool8 ateBerry_Player4:1; + bool8 ateBerry_Player5:1; + u8 numGraySquares:5; + bool8 allReadyToEnd:1; + bool8 berriesFalling:1; + bool8 missedBerry_Player1:1; + bool8 missedBerry_Player2:1; + bool8 missedBerry_Player3:1; + bool8 missedBerry_Player4:1; + bool8 missedBerry_Player5:1; +}; + +static void SendPacket_GameState(struct DodrioGame_Player *player, + struct DodrioGame_PlayerCommData *player1, + struct DodrioGame_PlayerCommData *player2, + struct DodrioGame_PlayerCommData *player3, + struct DodrioGame_PlayerCommData *player4, + struct DodrioGame_PlayerCommData *player5, + u8 numGraySquares, + bool32 berriesFalling, + bool32 allReadyToEnd) +{ + struct GameStatePacket packet; + struct DodrioGame_Berries *berries = &player->berries; + + packet.id = PACKET_GAME_STATE; + packet.fallDist_Col0 = berries->fallDist[0]; + packet.fallDist_Col1 = berries->fallDist[1]; + packet.fallDist_Col2 = berries->fallDist[2]; + packet.fallDist_Col3 = berries->fallDist[3]; + packet.fallDist_Col4 = berries->fallDist[4]; + packet.fallDist_Col5 = berries->fallDist[5]; + packet.fallDist_Col6 = berries->fallDist[6]; + packet.fallDist_Col7 = berries->fallDist[7]; + packet.fallDist_Col8 = berries->fallDist[8]; + packet.fallDist_Col9 = berries->fallDist[9]; + + packet.berryId_Col0 = berries->ids[0]; + packet.berryId_Col1 = berries->ids[1]; + packet.berryId_Col2 = berries->ids[2]; + packet.berryId_Col3 = berries->ids[3]; + packet.berryId_Col4 = berries->ids[4]; + packet.berryId_Col5 = berries->ids[5]; + packet.berryId_Col6 = berries->ids[6]; + packet.berryId_Col7 = berries->ids[7]; + packet.berryId_Col8 = berries->ids[8]; + packet.berryId_Col9 = berries->ids[9]; + + packet.pickState_Player1 = player1->pickState; + packet.pickState_Player2 = player2->pickState; + packet.pickState_Player3 = player3->pickState; + packet.pickState_Player4 = player4->pickState; + packet.pickState_Player5 = player5->pickState; + + packet.ateBerry_Player1 = player1->ateBerry; + packet.ateBerry_Player2 = player2->ateBerry; + packet.ateBerry_Player3 = player3->ateBerry; + packet.ateBerry_Player4 = player4->ateBerry; + packet.ateBerry_Player5 = player5->ateBerry; + + packet.missedBerry_Player1 = player1->missedBerry; + packet.missedBerry_Player2 = player2->missedBerry; + packet.missedBerry_Player3 = player3->missedBerry; + packet.missedBerry_Player4 = player4->missedBerry; + packet.missedBerry_Player5 = player5->missedBerry; + + packet.numGraySquares = numGraySquares; + packet.berriesFalling = berriesFalling; + packet.allReadyToEnd = allReadyToEnd; + Rfu_SendPacket(&packet); +} + +static bool32 RecvPacket_GameState(u32 playerId, + struct DodrioGame_Player *player, + struct DodrioGame_PlayerCommData *player1, + struct DodrioGame_PlayerCommData *player2, + struct DodrioGame_PlayerCommData *player3, + struct DodrioGame_PlayerCommData *player4, + struct DodrioGame_PlayerCommData *player5, + u8 *numGraySquares, + bool32 *berriesFalling, + bool32 *allReadyToEnd) +{ + struct GameStatePacket *packet; + struct DodrioGame_Berries *berries = &player->berries; + + if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) + return FALSE; + + packet = (void *)&gRecvCmds[0][1]; + if (packet->id == PACKET_GAME_STATE) + { + berries->fallDist[0] = packet->fallDist_Col0; + berries->fallDist[1] = packet->fallDist_Col1; + berries->fallDist[2] = packet->fallDist_Col2; + berries->fallDist[3] = packet->fallDist_Col3; + berries->fallDist[4] = packet->fallDist_Col4; + berries->fallDist[5] = packet->fallDist_Col5; + berries->fallDist[6] = packet->fallDist_Col6; + berries->fallDist[7] = packet->fallDist_Col7; + berries->fallDist[8] = packet->fallDist_Col8; + berries->fallDist[9] = packet->fallDist_Col9; + berries->fallDist[10] = packet->fallDist_Col0; + + berries->ids[0] = packet->berryId_Col0; + berries->ids[1] = packet->berryId_Col1; + berries->ids[2] = packet->berryId_Col2; + berries->ids[3] = packet->berryId_Col3; + berries->ids[4] = packet->berryId_Col4; + berries->ids[5] = packet->berryId_Col5; + berries->ids[6] = packet->berryId_Col6; + berries->ids[7] = packet->berryId_Col7; + berries->ids[8] = packet->berryId_Col8; + berries->ids[9] = packet->berryId_Col9; + berries->ids[10] = packet->berryId_Col0; + + player1->pickState = packet->pickState_Player1; + player1->ateBerry = packet->ateBerry_Player1; + player1->missedBerry = packet->missedBerry_Player1; + + player2->pickState = packet->pickState_Player2; + player2->ateBerry = packet->ateBerry_Player2; + player2->missedBerry = packet->missedBerry_Player2; + + player3->pickState = packet->pickState_Player3; + player3->ateBerry = packet->ateBerry_Player3; + player3->missedBerry = packet->missedBerry_Player3; + + player4->pickState = packet->pickState_Player4; + player4->ateBerry = packet->ateBerry_Player4; + player4->missedBerry = packet->missedBerry_Player4; + + player5->pickState = packet->pickState_Player5; + player5->ateBerry = packet->ateBerry_Player5; + player5->missedBerry = packet->missedBerry_Player5; + + *numGraySquares = packet->numGraySquares; + *berriesFalling = packet->berriesFalling; + *allReadyToEnd = packet->allReadyToEnd; + return TRUE; + } + + return FALSE; +} + +struct PickStatePacket +{ + u8 id; + u8 ALIGNED(4) pickState; +}; + +static void SendPacket_PickState(u8 pickState) +{ + struct PickStatePacket packet; + packet.id = PACKET_PICK_STATE; + packet.pickState = pickState; + Rfu_SendPacket(&packet); +} + +static bool32 RecvPacket_PickState(u32 playerId, u8 *pickState) +{ + struct PickStatePacket *packet; + + if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) + return FALSE; + + packet = (void *)&gRecvCmds[playerId][1]; + if (packet->id == PACKET_PICK_STATE) + { + *pickState = packet->pickState; + return TRUE; + } + + return FALSE; +} + +struct ReadyToEndPacket +{ + u8 id; + bool32 ready; +}; + +static void SendPacket_ReadyToEnd(bool32 ready) +{ + struct ReadyToEndPacket packet; + packet.id = PACKET_READY_END; + packet.ready = ready; + Rfu_SendPacket(&packet); +} + +static bool32 RecvPacket_ReadyToEnd(u32 playerId) +{ + struct ReadyToEndPacket *packet; + + if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) + return FALSE; + + packet = (void *)&gRecvCmds[playerId][1]; + if (packet->id == PACKET_READY_END) + return packet->ready; + + return FALSE; +} + +static const struct BgTemplate sBgTemplates[] = +{ + { + .bg = BG_INTERFACE, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = BG_TREE_LEFT, + .charBaseIndex = 2, + .mapBaseIndex = 12, + .screenSize = 1, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = BG_TREE_RIGHT, + .charBaseIndex = 2, + .mapBaseIndex = 14, + .screenSize = 1, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = BG_SCENERY, + .charBaseIndex = 3, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate sWindowTemplate_Dummy = DUMMY_WIN_TEMPLATE; + +static const struct WindowTemplate sWindowTemplates_Results[] = +{ + { + .bg = BG_INTERFACE, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 28, + .height = 2, + .paletteNum = 13, + .baseBlock = 0x13, + }, + { + .bg = BG_INTERFACE, + .tilemapLeft = 1, + .tilemapTop = 5, + .width = 28, + .height = 14, + .paletteNum = 13, + .baseBlock = 0x4B, + } +}; + +static const struct WindowTemplate sWindowTemplate_Prize = +{ + .bg = BG_INTERFACE, + .tilemapLeft = 1, + .tilemapTop = 5, + .width = 28, + .height = 7, + .paletteNum = 13, + .baseBlock = 0x4B, +}; + +enum { + WIN_PLAY_AGAIN, + WIN_YES_NO, +}; + +static const struct WindowTemplate sWindowTemplates_PlayAgain[] = +{ + [WIN_PLAY_AGAIN] = { + .bg = BG_INTERFACE, + .tilemapLeft = 1, + .tilemapTop = 8, + .width = 19, + .height = 3, + .paletteNum = 13, + .baseBlock = 0x13, + }, + [WIN_YES_NO] = { + .bg = BG_INTERFACE, + .tilemapLeft = 22, + .tilemapTop = 7, + .width = 6, + .height = 4, + .paletteNum = 13, + .baseBlock = 0x4C, + } +}; + +static const struct WindowTemplate sWindowTemplate_DroppedOut = +{ + .bg = BG_INTERFACE, + .tilemapLeft = 4, + .tilemapTop = 6, + .width = 22, + .height = 5, + .paletteNum = 13, + .baseBlock = 0x13, +}; + +static const struct WindowTemplate sWindowTemplate_CommStandby = +{ + .bg = BG_INTERFACE, + .tilemapLeft = 5, + .tilemapTop = 8, + .width = 19, + .height = 3, + .paletteNum = 13, + .baseBlock = 0x13, +}; + +// Unused duplicate of sActiveColumnMap +static const u8 sActiveColumnMap_Duplicate[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS][NUM_BERRY_COLUMNS] = { { {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, @@ -297,9 +3503,10 @@ static const u8 gUnknown_082F449C[5][5][11] = {6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6}, {8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8}, }, -}; +}; -static const u8 gUknnown_082F45AF[5][5][3] = +// Unused duplicate of sDodrioHeadToColumnMap +static const u8 sDodrioHeadToColumnMap_Duplicate[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS][3] = { { {4, 5, 6}, @@ -328,7 +3535,8 @@ static const u8 gUknnown_082F45AF[5][5][3] = }, }; -static const u8 gUnknown_082F45FA[5][5][3] = +// Unused duplicate of sDodrioNeighborMap +static const u8 sDodrioNeighborMap_Duplicate[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS][3] = { { {1, 0, 1}, @@ -357,8 +3565,9 @@ static const u8 gUnknown_082F45FA[5][5][3] = }, }; +// Unused duplicate of sPlayerIdAtColumn ALIGNED(4) -static const u8 gUnknown_082F4648[5][11] = +static const u8 sPlayerIdAtColumn_Duplicate[MAX_RFU_PLAYERS][NUM_BERRY_COLUMNS] = { {9, 9, 9, 9, 1, 1, 1, 9, 9, 9, 9}, {9, 9, 9, 0, 0, 1, 1, 0, 9, 9, 9}, @@ -367,7 +3576,8 @@ static const u8 gUnknown_082F4648[5][11] = {3, 3, 4, 4, 0, 0, 1, 1, 2, 2, 3}, }; -static const u8 gUnknown_082F467F[5][5] = +// Unused duplicate of sUnsharedColumns +static const u8 sUnsharedColumns_Duplicate[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS] = { {5}, {4, 6}, @@ -376,2765 +3586,24 @@ static const u8 gUnknown_082F467F[5][5] = {1, 3, 5, 6, 9}, }; -// Duplicate and unused gfx. Feel free to remove. -static const u32 sDuplicateGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.gbapal", - "graphics/link_games/dodrioberry_bg2.gbapal", - "graphics/link_games/dodrioberry_pkmn.gbapal", - "graphics/link_games/dodrioberry_shiny.gbapal", - "graphics/link_games/dodrioberry_status.gbapal", - "graphics/link_games/dodrioberry_berrysprites.gbapal", - "graphics/link_games/dodrioberry_berrysprites.4bpp.lz", - "graphics/link_games/dodrioberry_platform.gbapal", - "graphics/link_games/dodrioberry_bg1.4bpp.lz", - "graphics/link_games/dodrioberry_bg2.4bpp.lz", - "graphics/link_games/dodrioberry_status.4bpp.lz", - "graphics/link_games/dodrioberry_platform.4bpp.lz", - "graphics/link_games/dodrioberry_pkmn.4bpp.lz", - "graphics/link_games/dodrioberry_bg1.bin.lz", - "graphics/link_games/dodrioberry_bg2right.bin.lz", - "graphics/link_games/dodrioberry_bg2left.bin.lz"); - - -static const u8 gUnknown_082F7A88[][3] = -{ - {40, 24, 13}, - {32, 19, 10}, - {22, 13, 7}, -}; - -ALIGNED(4) -static const u8 gUnknown_082F7A94[] = {8, 5, 8, 11, 15}; - -ALIGNED(4) -static const u8 gUnknown_082F7A9C[] = {5, 10, 20, 30, 50, 70, 100}; - -ALIGNED(4) -static const u8 gUnknown_082F7AA4[][10] = -{ - {15, 16, 17, 18, 19, 19, 18, 17, 16, 15}, - {20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, - {30, 31, 32, 33, 34, 34, 33, 32, 31, 30}, -}; - -static void (*const gUnknown_082F7AC4[])(void) = -{ - sub_8024DBC, - sub_8024E00, - sub_8024E38, - sub_8024F10, - sub_8024F38, - sub_8025198, - sub_8025324, - sub_8025470, - sub_8025644, - sub_80256AC, - sub_8025758, - sub_80250D4 -}; - -static void (*const gUnknown_082F7AF4[])(void) = -{ - sub_8024DBC, - sub_8024E00, - sub_8024E38, - sub_8024F10, - sub_8024FFC, - sub_8025230, - sub_8025324, - sub_8025470, - sub_8025644, - sub_80256AC, - sub_8025758, - sub_8025158 -}; - -// code -void StartDodrioBerryPicking(u16 a0, void (*callback)(void)) -{ - gUnknown_03000DB0 = FALSE; - - if (gReceivedRemoteLinkPlayers != 0 && (gUnknown_02022C98 = AllocZeroed(sizeof(*gUnknown_02022C98))) != NULL) - { - sub_8024A1C(); - sub_8024A30(gUnknown_02022C98); - gUnknown_02022C98->savedCallback = callback; - gUnknown_02022C98->multiplayerId = GetMultiplayerId(); - gUnknown_02022C98->unk32CC = gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId]; - sub_80261F8(&gUnknown_02022C98->unk318C[gUnknown_02022C98->multiplayerId], &gPlayerParty[a0]); - CreateTask(sub_8024BC8, 1); - SetMainCallback2(sub_80261CC); - sub_80273F0(); - sub_8026B5C(gUnknown_02022C98->unk24, &gUnknown_02022C98->unk44, &gUnknown_02022C98->unk48); - StopMapMusic(); - PlayNewMapMusic(MUS_RG_BERRY_PICK); - } - else - { - SetMainCallback2(callback); - return; - } -} - -static void sub_8024A1C(void) -{ - ResetTasks(); - ResetSpriteData(); - FreeAllSpritePalettes(); -} - -static void sub_8024A30(struct DodrioStruct * data) -{ - u8 i; - - data->unk0C = 0; - data->unk10 = 0; - data->unk14 = 0; - data->unk18 = 0; - data->unk1C = 0; - data->unk11C = 0; - data->unk120 = 0; - data->unk30 = 0; - data->unk40 = 0; - data->unk3C = 0; - data->unk12C = 0; - - for (i = 0; i < 4; i++) - { - data->unk98[i] = 0; - } - - for (i = 0; i < 5; i++) - { - data->unkA8[i] = 0; - data->unkB0[i] = 0; - data->unk4A[i][0] = 0; - data->unk4A[i][1] = 0; - data->unk4A[i][2] = 0; - data->unk4A[i][3] = 0; - data->unk4A[i][5] = 0; - data->unk10C[i] = 0; - data->unk130[i] = 0; - } - - for (i = 0; i < 11; i++) - { - data->unkD0[i] = 0; - data->unkDC[i] = 0; - data->unkC4[i] = 0; - data->unkF4[i][0] = 0xFF; - data->unkF4[i][1] = 0xFF; - } - - data->unk20 = GetMultiplayerId() == 0 ? 1 : 0; - data->unk24 = GetLinkPlayerCount(); - data->unk34[0] = GetMultiplayerId(); - for (i = 1; i < data->unk24; i++) - { - data->unk34[i] = data->unk34[i - 1] + 1; - if (data->unk34[i] > data->unk24 - 1) - data->unk34[i] %= data->unk24; - } -} - -static void sub_8024BC8(u8 taskId) -{ - u8 r4, r5; - - switch (gUnknown_02022C98->unk0C) - { - case 0: - SetVBlankCallback(NULL); - sub_802620C(sub_8025910, 4); - gUnknown_02022C98->unk0C++; - break; - case 1: - if (!FuncIsActiveTask(sub_8025910)) - { - sub_8029274(&gUnknown_02022C98->unk160); - gUnknown_02022C98->unk0C++; - } - break; - case 2: - if (!sub_802A770()) - { - Rfu_SetLinkStandbyCallback(); - gUnknown_02022C98->unk0C++; - } - break; - case 3: - if (IsLinkTaskFinished()) - { - if (gReceivedRemoteLinkPlayers != 0) - { - LoadWirelessStatusIndicatorSpriteGfx(); - CreateWirelessStatusIndicatorSprite(0, 0); - } - gUnknown_02022C98->unk0C++; - } - break; - case 4: - r5 = gUnknown_02022C98->unk24; - sub_80283A8(); - for (r4 = 0; r4 < r5; r4++) - { - sub_8028408(&gUnknown_02022C98->unk318C[gUnknown_02022C98->unk34[r4]], r4, gUnknown_02022C98->unk34[r4], gUnknown_02022C98->unk24); - } - sub_802868C(FALSE, gUnknown_02022C98->unk24); - gUnknown_02022C98->unk0C++; - break; - case 5: - sub_8028A34(); - sub_8028A88(); - sub_8028D44(); - sub_8028734(); - gUnknown_02022C98->unk0C++; - break; - case 6: - BlendPalettes(0xFFFFFFFF, 0x10, 0x00); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - SetVBlankCallback(sub_80261E4); - gUnknown_02022C98->unk0C++; - break; - case 7: - UpdatePaletteFade(); - if (!gPaletteFade.active) - { - gUnknown_02022C98->unk0C++; - } - break; - default: - DestroyTask(taskId); - sub_802621C(sub_802589C); - break; - } -} - -static void sub_8024D4C(u8 taskId) -{ - sub_8025D04(); - gUnknown_082F7AC4[gUnknown_02022C98->unk18](); - if (!gUnknown_03000DB0) - { - sub_8026AF4(); - } - sub_8025D50(); -} - -static void sub_8024D84(u8 taskId) -{ - sub_8025E0C(); - gUnknown_082F7AF4[gUnknown_02022C98->unk18](); - if (!gUnknown_03000DB0) - { - sub_8026B28(); - } - sub_8025ED8(); -} - -static void sub_8024DBC(void) -{ - switch (gUnknown_02022C98->unk10) - { - case 0: - sub_8028504(1); - sub_80292E0(1); - gUnknown_02022C98->unk10++; - break; - case 1: - if (!sub_802A770()) - sub_8026240(1); - break; - } -} - -static void sub_8024E00(void) -{ - if (gUnknown_02022C98->unk10 == 0) - { - sub_80262C0(); - gUnknown_02022C98->unk10++; - } - else - { - gUnknown_02022C98->unk118 = 1; - sub_8026240(2); - } -} - -static void sub_8024E38(void) -{ - switch (gUnknown_02022C98->unk10) - { - case 0: - StartMinigameCountdown(7, 8, 120, 80, 0); - gUnknown_02022C98->unk10++; - break; - case 1: - Rfu_SetLinkStandbyCallback(); - gUnknown_02022C98->unk10++; - break; - case 2: - if (IsLinkTaskFinished()) - { - gUnknown_02022C98->unk10++; - gUnknown_02022C98->unk30 = 0; - } - break; - case 3: - if (!IsMinigameCountdownRunning()) - { - gUnknown_02022C98->unk10++; - } - break; - case 4: - if (++gUnknown_02022C98->unk30 > 5) - { - Rfu_SetLinkStandbyCallback(); - gUnknown_02022C98->unk10++; - } - break; - case 5: - if (IsLinkTaskFinished()) - { - sub_8026240(3); - } - break; - } -} - -static void sub_8024F10(void) -{ - if (gUnknown_02022C98->unk10 == 0) - { - if (gUnknown_02022C98->unk11C != 0) - { - sub_8026240(4); - } - } -} - -static void sub_8024F38(void) -{ - if (gUnknown_02022C98->unk10 == 0) - { - if (gUnknown_02022C98->unk40 < 10) - { - if (gUnknown_02022C98->unkA8[0] == 0) - { - if (JOY_NEW(DPAD_UP)) - { - if (gUnknown_02022C98->unk31A0[0].unk2C.unk0 == 0) - { - gUnknown_02022C98->unk31A0[0].unk2C.unk4 = 0; - gUnknown_02022C98->unk31A0[0].unk2C.unk0 = sub_8027518(2); - } - } - else if (JOY_NEW(DPAD_RIGHT)) - { - if (gUnknown_02022C98->unk31A0[0].unk2C.unk0 == 0) - { - gUnknown_02022C98->unk31A0[0].unk2C.unk4 = 0; - gUnknown_02022C98->unk31A0[0].unk2C.unk0 = sub_8027518(1); - } - } - else if (JOY_NEW(DPAD_LEFT)) - { - if (gUnknown_02022C98->unk31A0[0].unk2C.unk0 == 0) - { - gUnknown_02022C98->unk31A0[0].unk2C.unk4 = 0; - gUnknown_02022C98->unk31A0[0].unk2C.unk0 = sub_8027518(3); - } - } - else - { - gUnknown_02022C98->unk31A0[0].unk2C.unk0 = sub_8027518(0); - } - } - } - else - { - sub_8026240(11); - } - sub_802671C(); - sub_8025F48(); - } -} - -static void sub_8024FFC(void) -{ - if (gUnknown_02022C98->unk40 < 10) - { - if (JOY_NEW(DPAD_UP)) - { - if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) - { - gUnknown_02022C98->unk32CC.unk2C.unk0 = 2; - } - } - else if (JOY_NEW(DPAD_RIGHT)) - { - if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) - { - gUnknown_02022C98->unk32CC.unk2C.unk0 = 1; - } - } - else if (JOY_NEW(DPAD_LEFT)) - { - if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) - { - gUnknown_02022C98->unk32CC.unk2C.unk0 = 3; - } - } - else - { - gUnknown_02022C98->unk32CC.unk2C.unk0 = 0; - } - } - else - { - sub_8026240(11); - } - sub_8026044(); -} - -static void sub_80250D4(void) -{ - u8 i; - - sub_802671C(); - sub_8025F48(); - if (sub_8026C50() == 1) - { - sub_80272A4(); - sub_8026240(5); - } - else - { - gUnknown_02022C98->unk12C = 1; - for (i = 1; i < gUnknown_02022C98->unk24; i++) - { - if (gUnknown_02022C98->unk130[i] != 1) - { - gUnknown_02022C98->unk12C = 0; - break; - } - } - } -} - -static void sub_8025158(void) -{ - sub_8026044(); - if (sub_8026C90() == 1) - sub_8026240(5); -} - -static bool32 sub_8025170(void) -{ - u8 recvStatus = GetBlockReceivedStatus(); - u8 playerFlags = GetLinkPlayerCountAsBitFlags(); - if (recvStatus == playerFlags) - { - ResetBlockReceivedFlags(); - return TRUE; - } - else - { - return FALSE; - } -} - -static void sub_8025198(void) -{ - switch (gUnknown_02022C98->unk10) - { - case 0: - if (SendBlock(0, gUnknown_02022C98->unk4A, sizeof(gUnknown_02022C98->unk4A))) - { - gUnknown_02022C98->unk08 = 0; - gUnknown_02022C98->unk10++; - } - break; - case 1: - if (IsLinkTaskFinished()) - { - gUnknown_02022C98->unk10++; - } - break; - case 2: - if (sub_8025170()) - { - gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; - } - if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) - { - gUnknown_02022C98->unk14++; - gUnknown_02022C98->unk10++; - } - break; - default: - if (WaitFanfare(TRUE)) - { - sub_8026240(6); - FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); - } - break; - } -} - -static void sub_8025230(void) -{ - u8 i; - - switch (gUnknown_02022C98->unk10) { - case 0: - if (SendBlock(0, gUnknown_02022C98->unk4A[gUnknown_02022C98->unk14], - sizeof(gUnknown_02022C98->unk4A))) { - gUnknown_02022C98->unk08 = 0; - gUnknown_02022C98->unk10++; - } - break; - case 1: - if (IsLinkTaskFinished()) { - gUnknown_02022C98->unk10++; - } - break; - case 2: - if (sub_8025170()) { - for (i = 0; i < gUnknown_02022C98->unk24; i++) { - memcpy(gUnknown_02022C98->unk4A, gBlockRecvBuffer, sizeof(gUnknown_02022C98->unk4A)); - gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; - } - } - if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) { - gUnknown_02022C98->unk14++; - gUnknown_02022C98->unk10++; - } - break; - default: - if (WaitFanfare(TRUE)) { - gUnknown_02022C98->unk114 = gUnknown_02022C98->unk4A[gUnknown_02022C98->multiplayerId][5]; - sub_8026240(6); - FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); - } - break; - } -} - -static void sub_8025324(void) -{ - u8 sp00 = 1; - u8 i; - - switch (gUnknown_02022C98->unk10) - { - case 0: - sub_802749C(); - sub_80289E8(TRUE); - sub_8028DFC(); - sub_8028EC8(TRUE); - sub_80292E0(2); - gUnknown_02022C98->unk10++; - break; - case 1: - if (!sub_802A770()) - { - sub_80292E0(5); - gUnknown_02022C98->unk10++; - } - break; - case 2: - sp00 = sub_802A794(); - if (SendBlock(0, &sp00, sizeof(sp00))) - { - gUnknown_02022C98->unk10++; - } - break; - case 3: - if (IsLinkTaskFinished()) - { - gUnknown_02022C98->unk10++; - gUnknown_02022C98->unk08 = 0; - } - break; - case 4: - if (sub_8025170()) - { - for (i = 0; i < gUnknown_02022C98->unk24; i++) - { - *(gUnknown_02022C98->unk10C + i) = *(u8 *)gBlockRecvBuffer[i]; - gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; - } - } - if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) { - if (++gUnknown_02022C98->unk14 >= 120) - { - sub_80292E0(6); - gUnknown_02022C98->unk10++; - } - } - break; - default: - if (!sub_802A770()) - { - sub_8026240(7); - } - break; - } -} - -static void sub_8025470(void) -{ - u8 sp0; - u8 i; - - switch (gUnknown_02022C98->unk10) - { - case 0: - if (sub_8027748() >= 3000) - { - sub_80292E0(4); - } - gUnknown_02022C98->unk10++; - break; - case 1: - if (!sub_802A770()) - { - sub_80292E0(3); - gUnknown_02022C98->unk10++; - } - break; - case 2: - sub_8028FCC(); - sub_80272E8(); - gUnknown_02022C98->unk10++; - break; - case 3: - if ((sp0 = sub_802A794()) != 0) - { - gUnknown_02022C98->unk10++; - } - break; - case 4: - if (!sub_802A770()) - { - sub_80292E0(5); - gUnknown_02022C98->unk10++; - } - break; - case 5: - sp0 = sub_802A794(); - if (SendBlock(0, &sp0, sizeof(sp0))) - { - gUnknown_02022C98->unk08 = 0; - gUnknown_02022C98->unk10++; - } - break; - case 6: - if (IsLinkTaskFinished()) - { - gUnknown_02022C98->unk10++; - } - break; - case 7: - if (sub_8025170()) - { - for (i = 0; i < gUnknown_02022C98->unk24; i++) - { - *(gUnknown_02022C98->unk10C + i) = *(u8 *)gBlockRecvBuffer[i]; - gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; - } - } - if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) { - if (++gUnknown_02022C98->unk14 >= 120) - { - sub_8027608(); - sub_80292E0(6); - gUnknown_02022C98->unk10++; - } - } - else - { - sub_8027554(); - } - break; - default: - if (!sub_802A770()) - { - for (i = 0; i < gUnknown_02022C98->unk24; i++) - { - if (gUnknown_02022C98->unk10C[i] == 2) - { - sub_8026240(8); - return; - } - } - sub_8026240(10); - } - break; - } -} - -static void sub_8025644(void) -{ - switch (gUnknown_02022C98->unk10) - { - case 0: - SetCloseLinkCallback(); - sub_80292E0(7); - gUnknown_02022C98->unk10++; - break; - case 1: - if (!sub_802A770()) - { - gUnknown_02022C98->unk10++; - } - break; - case 2: - if (sub_802A794() == 5) - { - gUnknown_02022C98->unk10++; - } - break; - default: - if (gReceivedRemoteLinkPlayers == 0) - { - sub_8026240(9); - } - break; - } -} - -static void sub_80256AC(void) -{ - switch (gUnknown_02022C98->unk10) - { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gUnknown_02022C98->unk10++; - break; - case 1: - UpdatePaletteFade(); - if (!gPaletteFade.active) - { - gUnknown_02022C98->unk10++; - } - break; - case 2: - sub_8028B80(); - sub_80287E4(); - sub_8028614(gUnknown_02022C98->unk24); - sub_8028E84(); - gUnknown_03000DB0 = TRUE; - sub_80292E0(8); - gUnknown_02022C98->unk10++; - break; - default: - if (!sub_802A770()) - { - SetMainCallback2(gUnknown_02022C98->savedCallback); - DestroyTask(gUnknown_02022C98->unk04); - Free(gUnknown_02022C98); - FreeAllWindowBuffers(); - } - break; - } -} - -static void sub_8025758(void) -{ - switch (gUnknown_02022C98->unk10) - { - case 0: - sub_80292E0(9); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gUnknown_02022C98->unk10++; - break; - case 1: - UpdatePaletteFade(); - if (!gPaletteFade.active) - { - gUnknown_02022C98->unk10++; - } - break; - case 2: - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(2, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 0, 0); - gUnknown_02022C98->unk10++; - break; - case 3: - StopMapMusic(); - gUnknown_02022C98->unk10++; - break; - case 4: - PlayNewMapMusic(MUS_RG_BERRY_PICK); - sub_8028E4C(); - gUnknown_02022C98->unk10++; - break; - case 5: - BlendPalettes(0xFFFFFFFF, 16, 0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - gUnknown_02022C98->unk10++; - break; - case 6: - UpdatePaletteFade(); - if (!gPaletteFade.active) - { - gUnknown_02022C98->unk10++; - } - break; - default: - DestroyTask(gUnknown_02022C98->unk04); - sub_802621C(sub_802589C); - sub_802903C(); - sub_8024A30(gUnknown_02022C98); - if (gReceivedRemoteLinkPlayers == 0) - { - gUnknown_02022C98->unk24 = 1; - } - sub_80273F0(); - sub_8028EC8(FALSE); - break; - } -} - -static void sub_802589C(u8 taskId) -{ - switch (gUnknown_02022C98->unk10) - { - case 0: - if (sub_8026264() == 1) - { - gUnknown_02022C98->unk10++; - } - break; - case 1: - sub_80286E4(); - gUnknown_02022C98->unk10++; - break; - case 2: - if (sub_8028828() == TRUE) - { - gUnknown_02022C98->unk10++; - } - break; - default: - if (gUnknown_02022C98->unk20 != 0) - { - sub_802621C(sub_8024D4C); - } - else - { - sub_802621C(sub_8024D84); - } - DestroyTask(taskId); - break; - } -} - -static void sub_8025910(u8 taskId) -{ - s16 * data = gTasks[taskId].data; - u8 i; - - switch (data[0]) - { - case 0: - if (SendBlock(0, &gUnknown_02022C98->unk318C[gUnknown_02022C98->multiplayerId].isShiny, sizeof(gUnknown_02022C98->unk318C[gUnknown_02022C98->multiplayerId].isShiny))) - { - gUnknown_02022C98->unk08 = 0; - data[0]++; - } - break; - case 1: - if (IsLinkTaskFinished()) - { - data[0]++; - } - break; - case 2: - if (sub_8025170()) - { - for (i = 0; i < gUnknown_02022C98->unk24; i++) - { - *(u8 *)&gUnknown_02022C98->unk318C[i] = *(u8 *)gBlockRecvBuffer[i]; - gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; - } - } - if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) - { - DestroyTask(taskId); - sub_80292E0(6); - gUnknown_02022C98->unk10++; - } - break; - } -} - -static void sub_80259FC(void) -{ - u8 i; - u8 r7 = gUnknown_02022C98->unk24; - - gUnknown_02022C98->unk31A0[0].unk10 = sub_8028164(0, &gUnknown_02022C98->unk31A0[0], &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, &gUnknown_02022C98->unk40, &gUnknown_02022C98->unk120, &gUnknown_02022C98->unk12C); - gUnknown_02022C98->unk128 = 1; - - for (i = 1; i < r7; i++) - { - if ( gUnknown_02022C98->unkA8[i] == 0 - && sub_8028318(i, &gUnknown_02022C98->unk31A0[i].unk2C.unk0) == 0) - { - gUnknown_02022C98->unk31A0[i].unk2C.unk0 = 0; - gUnknown_02022C98->unk128 = 0; - } - } - if (++gUnknown_02022C98->unk124 >= 60) - { - if (gUnknown_02022C98->unk128 != 0) - { - sub_8011AC8(); - gUnknown_02022C98->unk124 = 0; - } - else if (gUnknown_02022C98->unk124 > 70) - { - sub_8011AC8(); - gUnknown_02022C98->unk124 = 0; - } - } - - for (i = 0; i < r7; i++) - { - if ( gUnknown_02022C98->unk31A0[i].unk2C.unk0 != 0 - && gUnknown_02022C98->unkA8[i] == 0) - { - gUnknown_02022C98->unkA8[i] = 1; - } - switch (gUnknown_02022C98->unkA8[i]) - { - case 0: - default: - break; - case 1 ... 3: - if (++gUnknown_02022C98->unkB0[i] >= 6) - { - gUnknown_02022C98->unkB0[i] = 0; - gUnknown_02022C98->unkA8[i] = 0; - gUnknown_02022C98->unk31A0[i].unk2C.unk0 = 0; - gUnknown_02022C98->unk31A0[i].unk2C.unk4 = 0; - gUnknown_02022C98->unk31A0[i].unk2C.unk8 = 0; - } - break; - case 4: - if (++gUnknown_02022C98->unkB0[i] >= 40) - { - gUnknown_02022C98->unkB0[i] = 0; - gUnknown_02022C98->unkA8[i] = 0; - gUnknown_02022C98->unk31A0[i].unk2C.unk0 = 0; - gUnknown_02022C98->unk31A0[i].unk2C.unk4 = 0; - gUnknown_02022C98->unk31A0[i].unk2C.unk8 = 0; - } - break; - } - } -} - -static void sub_8025C0C(void) -{ - u8 i; - u8 r6 = gUnknown_02022C98->unk24; - - gUnknown_02022C98->unk31A0[0].unk10 = sub_8028164(0, &gUnknown_02022C98->unk31A0[0], &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, &gUnknown_02022C98->unk40, &gUnknown_02022C98->unk120, &gUnknown_02022C98->unk12C); - gUnknown_02022C98->unk128 = 1; - - for (i = 1; i < r6; i++) - { - if (sub_8028374(i) != 0) - { - gUnknown_02022C98->unk130[i] = 1; - gUnknown_02022C98->unk128 = 0; - } - } - if (++gUnknown_02022C98->unk124 >= 60) - { - if (gUnknown_02022C98->unk128 != 0) - { - sub_8011AC8(); - gUnknown_02022C98->unk124 = 0; - } - else if (gUnknown_02022C98->unk124 > 70) - { - sub_8011AC8(); - gUnknown_02022C98->unk124 = 0; - } - } -} - -static void sub_8025D04(void) -{ - switch (gUnknown_02022C98->unk18) - { - case 3: - if (sub_8026BB8() == TRUE) - { - sub_8026C28(); - gUnknown_02022C98->unk11C = 1; - } - break; - case 4: - sub_80259FC(); - break; - case 11: - sub_8025C0C(); - break; - } -} - -static void sub_8025D50(void) -{ - switch (gUnknown_02022C98->unk18) - { - case 4: - sub_8027E30(&gUnknown_02022C98->unk32CC, &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, gUnknown_02022C98->unk40, gUnknown_02022C98->unk120, gUnknown_02022C98->unk12C); - break; - case 11: - sub_8027E30(&gUnknown_02022C98->unk32CC, &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, gUnknown_02022C98->unk40, gUnknown_02022C98->unk120, gUnknown_02022C98->unk12C); - break; - } -} - -static void sub_8025E0C(void) -{ - switch (gUnknown_02022C98->unk18) - { - case 4: - sub_8028164(gUnknown_02022C98->multiplayerId, &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId], &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, &gUnknown_02022C98->unk40, &gUnknown_02022C98->unk120, &gUnknown_02022C98->unk12C); - break; - case 11: - sub_8028164(gUnknown_02022C98->multiplayerId, &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId], &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, &gUnknown_02022C98->unk40, &gUnknown_02022C98->unk120, &gUnknown_02022C98->unk12C); - break; - } -} - -static void sub_8025ED8(void) -{ - switch (gUnknown_02022C98->unk18) - { - case 3: - sub_8027DD0(1); - gUnknown_02022C98->unk11C = 1; - break; - case 4: - if (gUnknown_02022C98->unk32CC.unk2C.unk0 != 0) - { - sub_80282EC(gUnknown_02022C98->unk32CC.unk2C.unk0); - } - break; - case 11: - if (gUnknown_02022C98->unk120 == 0 && gUnknown_02022C98->unk12C == 0) - { - sub_8028350(1); - } - break; - } -} - -static void sub_8025F48(void) -{ - if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) - { - if (!IsSEPlaying()) - { - gUnknown_02022C98->unk144 = 0; - } - } - else if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk4 == 1) - { - if (gUnknown_02022C98->unk144 == 0) - { - m4aSongNumStop(SE_SUCCESS); - PlaySE(SE_SUCCESS); - gUnknown_02022C98->unk144 = 1; - } - } - else if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk8 == 1) - { - if (gUnknown_02022C98->unk144 == 0 && !IsSEPlaying()) - { - PlaySE(SE_BOO); - sub_80284CC(1); - gUnknown_02022C98->unk144 = 1; - } - } - - if (gUnknown_02022C98->unk154 == 0 && gUnknown_02022C98->unk40 >= 10) - { - StopMapMusic(); - gUnknown_02022C98->unk154 = 1; - } - else if (gUnknown_02022C98->unk154 == 1) - { - PlayFanfareByFanfareNum(11); // MUS_TOO_BAD - gUnknown_02022C98->unk154 = 2; - } -} - -static void sub_8026044(void) -{ - u8 r8 = gUnknown_02022C98->unk44; - u8 r7 = gUnknown_02022C98->unk48; - u8 r4; - if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) - { - if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk4 != 1 && gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk8 != 1) - { - gUnknown_02022C98->unk144 = 0; - } - } - else if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk4 == 1) - { - if (gUnknown_02022C98->unk144 == 0) - { - m4aSongNumStop(SE_SUCCESS); - PlaySE(SE_SUCCESS); - gUnknown_02022C98->unk144 = 1; - } - } - else if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk8 == 1) - { - if (gUnknown_02022C98->unk144 == 0 && !IsSEPlaying()) - { - PlaySE(SE_BOO); - sub_80284CC(1); - gUnknown_02022C98->unk144 = 1; - } - } - for (r4 = r8; r4 < r7; r4++) - { - struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk14; - if (ptr->unkB[r4] >= 10) - { - if (gUnknown_02022C98->unk148[r4] == 0) - { - PlaySE(SE_BALLOON_RED + ptr->unk0[r4]); - gUnknown_02022C98->unk148[r4] = 1; - } - } - else - { - gUnknown_02022C98->unk148[r4] = 0; - } - } - if (gUnknown_02022C98->unk154 == 0 && gUnknown_02022C98->unk40 >= 10) - { - StopMapMusic(); - gUnknown_02022C98->unk154 = 1; - } - else if (gUnknown_02022C98->unk154 == 1) - { - PlayFanfareByFanfareNum(11); // MUS_TOO_BAD - gUnknown_02022C98->unk154 = 2; - } -} - -static void sub_80261CC(void) -{ - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - UpdatePaletteFade(); -} - -static void sub_80261E4(void) -{ - TransferPlttBuffer(); - LoadOam(); - ProcessSpriteCopyRequests(); -} - -static void sub_80261F8(struct DodrioSubstruct_318C * a0, struct Pokemon * a1) -{ - a0->isShiny = IsMonShiny(a1); -} - -static void sub_802620C(TaskFunc func, u8 priority) -{ - CreateTask(func, priority); -} - -static void sub_802621C(TaskFunc func) -{ - gUnknown_02022C98->unk04 = CreateTask(func, 1); - gUnknown_02022C98->unk10 = 0; - gUnknown_02022C98->unk0C = 0; - gUnknown_02022C98->unk14 = 0; -} - -static void sub_8026240(u8 a0) -{ - gUnknown_02022C98->unk1C = gUnknown_02022C98->unk18; - gUnknown_02022C98->unk18 = a0; - gUnknown_02022C98->unk10 = 0; - gUnknown_02022C98->unk14 = 0; -} - -static bool32 sub_8026264(void) -{ - u8 r2 = gUnknown_02022C98->unk14 / 4; - gUnknown_02022C98->unk14++; - if (r2 != 0 && gUnknown_02022C98->unk14 % 4 == 0) - { - if (r2 < gUnknown_082F7A94[gUnknown_02022C98->unk24 - 1]) - { - SetGpuReg(REG_OFFSET_BG1HOFS, (r2 * 8)); - SetGpuReg(REG_OFFSET_BG2HOFS, -(r2 * 8)); - return FALSE; - } - else - { - return TRUE; - } - } - else - { - return FALSE; - } -} - -static void sub_80262C0(void) -{ - u8 i; - u8 start = gUnknown_02022C98->unk44; - u8 finish = gUnknown_02022C98->unk48; - - for (i = start; i < finish; i++) - { - struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk32CC.unk14; - ptr->unkB[i] = (i % 2 == 0) ? 1 : 0; - ptr->unk0[i] = 0; - } -} - -static void sub_8026324(void) -{ - u8 sp0 = gUnknown_02022C98->unk44; - u8 sp4 = gUnknown_02022C98->unk48; - u8 sp8 = gUnknown_02022C98->unk24; - u8 i, j, k, r5; - - if (gUnknown_02022C98->unk40 >= 10) - return; - - for (i = 0; i < sp8; i++) - { - u8 *ptr = &gUnknown_02022C98->unk31A0[i].unk2C.unk0; - if (*ptr != 0 && gUnknown_02022C98->unkA8[i] == 1) - { - for (j = sp0; j < sp4; j++) - { - r5 = gUnknown_082F449C[0][0][j]; - if (gUnknown_02022C98->unkF4[r5][0] == i || gUnknown_02022C98->unkF4[r5][1] == i) - break; - if (sub_8026634(i, *ptr, r5) == TRUE) - { - for (k = 0; k < 2; k++) - { - if (gUnknown_02022C98->unkF4[r5][k] == 0xFF) - { - gUnknown_02022C98->unkF4[r5][k] = i; - gUnknown_02022C98->unkA8[i] = 2; - gUnknown_02022C98->unkC4[r5] = 1; - break; - } - } - break; - } - if (gUnknown_02022C98->unk31A0[i].unk2C.unk8 == 1) - break; - } - } - } - - for (j = sp0; j < sp4; j++) - { - u8 id = 0xFF; - r5 = gUnknown_082F449C[0][0][j]; - if (gUnknown_02022C98->unkC4[r5] == 1) - { - s32 r2; - u8 r4, r3 = gUnknown_02022C98->unk90[sub_8026D8C(r5)] / 7; - if (r3 >= ARRAY_COUNT(gUnknown_082F7A88) - 1) - r3 = ARRAY_COUNT(gUnknown_082F7A88) - 1; - - r2 = gUnknown_082F7A88[r3][gUnknown_02022C98->unk31A0[0].unk14.unk0[r5]] - gUnknown_02022C98->unkD0[r5]; - if (r2 < 6) - gUnknown_02022C98->unk9C[r5] += r2; - - if (++gUnknown_02022C98->unk9C[r5] >= 6) - { - gUnknown_02022C98->unk9C[r5] = 0; - if (gUnknown_02022C98->unkF4[r5][0] == 0xFF && gUnknown_02022C98->unkF4[r5][1] == 0xFF) - { - continue; - } - else if (gUnknown_02022C98->unkF4[r5][0] != 0xFF && gUnknown_02022C98->unkF4[r5][1] == 0xFF) - { - r4 = gUnknown_02022C98->unkF4[r5][0]; - } - else - { - u8 unk0 = gUnknown_02022C98->unkF4[r5][0]; - i = gUnknown_02022C98->unkF4[r5][1]; // Have to re-use the variable to match. - if (!(Random() & 1)) - { - r4 = unk0; - id = i; - } - else - { - r4 = i; - id = unk0; - } - } - gUnknown_02022C98->unk32CC.unk14.unkB[r5] = 7; - gUnknown_02022C98->unkC4[r5] = 2; - gUnknown_02022C98->unkA8[r4] = 3; - gUnknown_02022C98->unkB8[r5] = r4; - gUnknown_02022C98->unk31A0[r4].unk2C.unk4 = 1; - gUnknown_02022C98->unk31A0[id].unk2C.unk8 = 1; - gUnknown_02022C98->unk86[r4]++; - sub_8026F1C(0, r5, r4); - sub_8027234(TRUE); - sub_8026D1C(r4); - gUnknown_02022C98->unkE8[r5] = gUnknown_02022C98->unk32CC.unk14.unk0[r5]; - gUnknown_02022C98->unk32CC.unk14.unk0[r5] = 3; - gUnknown_02022C98->unkF4[r5][0] = 0xFF; - gUnknown_02022C98->unkF4[r5][1] = 0xFF; - } - } - } -} - -static bool32 sub_8026634(u8 a0, u8 a1, u8 a2) -{ - s32 r7 = 0; - u8 r5 = gUnknown_02022C98->unk24 - 1; - struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk32CC.unk14; - - switch (a1) - { - case 3: - default: - r7 = 0; - break; - case 2: - r7 = 1; - break; - case 1: - r7 = 2; - break; - } - if (ptr->unkB[a2] == 6 || ptr->unkB[a2] == 7) - { - if (a2 == gUknnown_082F45AF[r5][a0][r7]) - { - if (gUnknown_02022C98->unkC4[a2] == 1 || gUnknown_02022C98->unkC4[a2] == 2) - { - gUnknown_02022C98->unk31A0[a0].unk2C.unk8 = 1; - return FALSE; - } - else - { - return TRUE; - } - } - } - else - { - if (a2 == gUknnown_082F45AF[r5][a0][r7]) - { - gUnknown_02022C98->unkA8[a0] = 4; - gUnknown_02022C98->unk31A0[a0].unk2C.unk8 = 1; - } - } - return FALSE; -} - -static void sub_802671C(void) -{ - u8 r1 = gUnknown_02022C98->unk44; - u8 r9 = gUnknown_02022C98->unk48; - u8 r3 = 0; - u8 r10 = 0; - u8 i; - u8 r2; - struct DodrioStruct *ptr; - - gUnknown_02022C98->unk120 = 0; - - for (i = r1; i < r9 - 1; i++) - { - ptr = gUnknown_02022C98; - - if (gUnknown_02022C98->unkC4[i] == 0 || gUnknown_02022C98->unkC4[i] == 1) - { - gUnknown_02022C98->unk120 = 1; - if (ptr->unk32CC.unk14.unkB[i] >= 10) - { - ptr->unk32CC.unk14.unkB[i] = 10; - gUnknown_02022C98->unkC4[i] = 3; - if (gUnknown_02022C98->unk148[i] == 0) - { - gUnknown_02022C98->unk148[i] = 1; - PlaySE(SE_BALLOON_RED + ptr->unk32CC.unk14.unk0[i]); - } - if (gUnknown_02022C98->unk40 < 10 || r10 == 1) - { - r10 = 1; - gUnknown_02022C98->unk148[i] = 0; - if (gUnknown_02022C98->unk40 < 10) - { - gUnknown_02022C98->unk40++; - } - sub_8026F1C(3, i, 0); - sub_8027234(FALSE); - } - } - else - { - r3 = gUnknown_02022C98->unk90[sub_8026D8C(i)] / 7; - if (r3 >= 2) - { - r3 = 2; - } - r2 = gUnknown_082F7A88[r3][ptr->unk32CC.unk14.unk0[i]]; - if (++gUnknown_02022C98->unkD0[i] >= r2) - { - ptr->unk32CC.unk14.unkB[i]++; - gUnknown_02022C98->unkD0[i] = 0; - } - sub_8026324(); - } - } - else if (gUnknown_02022C98->unkC4[i] == 2) - { - gUnknown_02022C98->unk120 = 1; - if (++gUnknown_02022C98->unkDC[i] >= 20) - { - gUnknown_02022C98->unk31A0[gUnknown_02022C98->unkB8[i]].unk2C.unk4 = 0; - gUnknown_02022C98->unkDC[i] = 0; - gUnknown_02022C98->unkD0[i] = 0; - gUnknown_02022C98->unkC4[i] = 0; - ptr->unk32CC.unk14.unkB[i] = 1; - ptr->unk32CC.unk14.unk0[i] = sub_8026DB0(sub_8026D8C(i), i); - } - } - else if (gUnknown_02022C98->unkC4[i] == 3) - { - if (++gUnknown_02022C98->unkDC[i] >= 20) - { - if (gUnknown_02022C98->unk40 < 10) - { - gUnknown_02022C98->unkDC[i] = 0; - gUnknown_02022C98->unkD0[i] = 0; - gUnknown_02022C98->unkC4[i] = 0; - ptr->unk32CC.unk14.unkB[i] = 1; - gUnknown_02022C98->unkE8[i] = ptr->unk32CC.unk14.unk0[i]; - ptr->unk32CC.unk14.unk0[i] = sub_8026DB0(sub_8026D8C(i), i); - } - } - } - } -} - -static void sub_8026988(void) -{ - u8 i, first, count; - - first = gUnknown_02022C98->unk44; - count = gUnknown_02022C98->unk48; - for (i = first; i < count; i++) - { - struct DodrioSubstruct_31A0 *ptr = &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId]; - u8 var = gUnknown_082F449C[gUnknown_02022C98->unk24 - 1][gUnknown_02022C98->multiplayerId][i]; - - if (ptr->unk14.unkB[var] != 0) - sub_8028BF8(i, FALSE); - else - sub_8028BF8(i, TRUE); - - if (ptr->unk14.unkB[var] > 9) - { - sub_8028CA4(i, ptr->unk14.unk0[var] + 3); - sub_8028C7C(i, ptr->unk14.unkB[var] * 2 - 1); - } - else if (ptr->unk14.unk0[var] == 3) - { - ptr->unk14.unkB[var] = 7; - sub_8028CA4(i, 6); - sub_8028C7C(i, ptr->unk14.unkB[var] * 2 - 1); - } - else - { - sub_8028CA4(i, ptr->unk14.unk0[var]); - sub_8028C7C(i, ptr->unk14.unkB[var] * 2); - } - } -} - -static void sub_8026A88(void) -{ - u8 i, count; - - count = gUnknown_02022C98->unk24; - for (i = 0; i < count; i++) - { - struct DodrioSubstruct_31A0 *ptr = &gUnknown_02022C98->unk31A0[i]; - sub_80286B4(i, ptr->unk2C.unk0); - } -} - -static void sub_8026AC8(void) -{ - u8 i, count; - - count = gUnknown_02022C98->unk24; - for (i = 0; i < count; i++) - sub_80286B4(i, 4); -} - -static void sub_8026AF4(void) -{ - sub_8026988(); - if (gUnknown_02022C98->unk40 > 9) - sub_8026AC8(); - else - sub_8026A88(); - - sub_80288D4(gUnknown_02022C98->unk40); -} - -// This function is literally the same as the one above...Why? -static void sub_8026B28(void) -{ - sub_8026988(); - if (gUnknown_02022C98->unk40 > 9) - sub_8026AC8(); - else - sub_8026A88(); - - sub_80288D4(gUnknown_02022C98->unk40); -} - -static void sub_8026B5C(u8 arg0, u8 *arg1, u8 *arg2) -{ - switch (arg0) - { - case 1: - *arg1 = 4, *arg2 = 7; - break; - case 2: - *arg1 = 3, *arg2 = 8; - break; - case 3: - *arg1 = 2, *arg2 = 9; - break; - case 4: - *arg1 = 1, *arg2 = 10; - break; - case 5: - *arg1 = 0, *arg2 = 11; - break; - } -} - -static bool32 sub_8026BB8(void) -{ - u8 i, count; - - count = gUnknown_02022C98->unk24; - for (i = 1; i < count; i++) - { - if (gUnknown_02022C98->unk158[i] == 0) - gUnknown_02022C98->unk158[i] = sub_8027DFC(i); - } - - // This loop won't ever run, the seemingly poitnless assingment below is to make the compiler - // generate code for it. - count = count; - for (; i < count; i++) - { - if (gUnknown_02022C98->unk158[i] == 0) - return FALSE; - } - - return TRUE; -} - -static void sub_8026C28(void) -{ - u8 i; - - for (i = 0; i < 5; i++) - gUnknown_02022C98->unk158[i] = 0; -} - -static bool32 sub_8026C50(void) -{ - if (gUnknown_02022C98->unk40 > 9 && gUnknown_02022C98->unk120 == 0) - { - gUnknown_02022C98->unk40 = 10; - if (gUnknown_02022C98->unk12C != 0) - return TRUE; - } - - return FALSE; -} - -static bool32 sub_8026C90(void) -{ - u8 i, first, count; - - if (gUnknown_02022C98->unk40 > 9) - { - first = gUnknown_02022C98->unk44; - count = gUnknown_02022C98->unk48; - gUnknown_02022C98->unk40 = 10; - if (gUnknown_02022C98->unk12C != 0) - { - for (i = first; i < count; i++) - { - struct DodrioSubstruct_31A0 *ptr = &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId]; - u8 var = gUnknown_082F449C[gUnknown_02022C98->unk24 - 1][gUnknown_02022C98->multiplayerId][i]; - - if (ptr->unk14.unkB[var] != 10) - return FALSE; - } - return TRUE; - } - } - - return FALSE; -} - -static void sub_8026D1C(u8 arg0) -{ - u8 var = gUnknown_082F7A9C[gUnknown_02022C98->unk90[arg0] % 7] + (gUnknown_02022C98->unk90[arg0] / 7) * 100; - if (gUnknown_02022C98->unk86[arg0] >= var) - gUnknown_02022C98->unk90[arg0]++; -} - -static u8 sub_8026D8C(u8 arg0) -{ - return gUnknown_082F4648[gUnknown_02022C98->unk24 - 1][arg0]; -} - -static u8 sub_8026DB0(u8 arg0, u8 arg1) -{ - u8 i, var3; - u8 count = gUnknown_02022C98->unk24 - 1; - u8 var0 = gUnknown_082F45FA[count][arg0][0]; - u8 var1 = gUnknown_082F45FA[count][arg0][1]; - u8 var2 = gUnknown_082F45FA[count][arg0][2]; - - for (i = 0; gUnknown_082F467F[count][i] != 0; i++) - { - if (arg1 == gUnknown_082F467F[count][i]) - return sub_8026E70(gUnknown_02022C98->unk90[var1], arg1); - } - - // Gets the highest of the three. - if (gUnknown_02022C98->unk90[var0] > gUnknown_02022C98->unk90[var1]) - var3 = gUnknown_02022C98->unk90[var0]; - else - var3 = gUnknown_02022C98->unk90[var1]; - - if (gUnknown_02022C98->unk90[var2] > var3) - var3 = gUnknown_02022C98->unk90[var2]; - - return sub_8026E70(var3, arg1); -} - -static u8 sub_8026E70(u8 arg0, u8 arg1) -{ - u8 var = gUnknown_02022C98->unkE8[arg1]; - switch (arg0 % 7) - { - default: return 0; - case 0: return 0; - case 1: return 1; - case 2: return 2; - case 3: - if (var == 0) - return 1; - else - return 0; - case 4: - if (var == 0) - return 2; - else - return 0; - case 5: - if (var == 2) - return 1; - else - return 2; - case 6: - if (var == 0) - return 1; - else if (var == 1) - return 2; - else - return 0; - } -} - -static bool32 sub_8026EEC(u16 arg0[5][6]) -{ - int sum, i; - for (sum = 0, i = 0; i < GetLinkPlayerCount(); sum += arg0[i][3], i++) - ; - - if (sum >= 11) - return TRUE; - else - return FALSE; -} - -static void sub_8026F1C(u8 arg0, u8 arg1, u8 arg2) -{ - u8 var; - u8 count = gUnknown_02022C98->unk24; - switch (arg0) - { - case 0: - case 1: - case 2: - var = gUnknown_02022C98->unk31A0[0].unk14.unk0[arg1]; - gUnknown_02022C98->unk4A[arg2][var] = IncrementWithLimit(gUnknown_02022C98->unk4A[arg2][var], 20000); - break; - case 3: - if (sub_8026EEC(gUnknown_02022C98->unk4A)) - break; - switch (count) - { - case 5: - switch (arg1) - { - case 0: - gUnknown_02022C98->unk4A[2][3]++; - gUnknown_02022C98->unk4A[3][3]++; - break; - case 1: - gUnknown_02022C98->unk4A[3][3]++; - break; - case 2: - gUnknown_02022C98->unk4A[3][3]++; - gUnknown_02022C98->unk4A[4][3]++; - break; - case 3: - gUnknown_02022C98->unk4A[4][3]++; - break; - case 4: - gUnknown_02022C98->unk4A[4][3]++; - gUnknown_02022C98->unk4A[0][3]++; - break; - case 5: - gUnknown_02022C98->unk4A[0][3]++; - break; - case 6: - gUnknown_02022C98->unk4A[0][3]++; - gUnknown_02022C98->unk4A[1][3]++; - break; - case 7: - gUnknown_02022C98->unk4A[1][3]++; - break; - case 8: - gUnknown_02022C98->unk4A[1][3]++; - gUnknown_02022C98->unk4A[2][3]++; - break; - case 9: - gUnknown_02022C98->unk4A[2][3]++; - break; - } - break; - case 4: - switch (arg1) - { - case 1: - gUnknown_02022C98->unk4A[2][3]++; - gUnknown_02022C98->unk4A[3][3]++; - break; - case 2: - gUnknown_02022C98->unk4A[3][3]++; - break; - case 3: - gUnknown_02022C98->unk4A[3][3]++; - gUnknown_02022C98->unk4A[0][3]++; - break; - case 4: - gUnknown_02022C98->unk4A[0][3]++; - break; - case 5: - gUnknown_02022C98->unk4A[0][3]++; - gUnknown_02022C98->unk4A[1][3]++; - break; - case 6: - gUnknown_02022C98->unk4A[1][3]++; - break; - case 7: - gUnknown_02022C98->unk4A[1][3]++; - gUnknown_02022C98->unk4A[2][3]++; - break; - case 8: - gUnknown_02022C98->unk4A[2][3]++; - break; - } - break; - case 3: - switch (arg1) - { - case 2: - gUnknown_02022C98->unk4A[1][3]++; - gUnknown_02022C98->unk4A[2][3]++; - break; - case 3: - gUnknown_02022C98->unk4A[2][3]++; - break; - case 4: - gUnknown_02022C98->unk4A[2][3]++; - gUnknown_02022C98->unk4A[0][3]++; - break; - case 5: - gUnknown_02022C98->unk4A[0][3]++; - break; - case 6: - gUnknown_02022C98->unk4A[0][3]++; - gUnknown_02022C98->unk4A[1][3]++; - break; - case 7: - gUnknown_02022C98->unk4A[1][3]++; - break; - } - break; - case 2: - switch (arg1) - { - case 3: - gUnknown_02022C98->unk4A[0][3]++; - gUnknown_02022C98->unk4A[1][3]++; - break; - case 4: - gUnknown_02022C98->unk4A[0][3]++; - break; - case 5: - gUnknown_02022C98->unk4A[0][3]++; - gUnknown_02022C98->unk4A[1][3]++; - break; - case 6: - gUnknown_02022C98->unk4A[1][3]++; - break; - } - break; - } - break; - } -} - -static void sub_8027234(bool32 arg0) -{ - if (gUnknown_02022C98->unk24 != 5) - return; - - if (arg0 == TRUE) - { - if (++gUnknown_02022C98->unk112 > gUnknown_02022C98->unk114) - gUnknown_02022C98->unk114 = gUnknown_02022C98->unk112; - if (gUnknown_02022C98->unk112 > 9999) - gUnknown_02022C98->unk112 = 9999; - } - else - { - if (gUnknown_02022C98->unk112 > gUnknown_02022C98->unk114) - gUnknown_02022C98->unk114 = gUnknown_02022C98->unk112; - gUnknown_02022C98->unk112 = 0; - } -} - -static void sub_80272A4(void) -{ - u8 i; - for (i = 0; i < gUnknown_02022C98->unk24; i++) - gUnknown_02022C98->unk4A[i][5] = gUnknown_02022C98->unk114; -} - -static void sub_80272E8(void) -{ - u8 i, j; - - for (i = 0; i < 5; i++) - { - for (j = 0; j < 11; j++) - gUnknown_02022C98->unk31A0[i].unk14.unkB[j] = 0; - gUnknown_02022C98->unk31A0[i].unk2C.unk0 = 0; - gUnknown_02022C98->unk31A0[i].unk2C.unk4 = 0; - gUnknown_02022C98->unk90[i] = 0; - gUnknown_02022C98->unk86[i] = 0; - gUnknown_02022C98->unk3308[i].unk0 = 0; - gUnknown_02022C98->unk3308[i].unk4 = 0; - gUnknown_02022C98->unk4A[i][0] = 0; - gUnknown_02022C98->unk4A[i][1] = 0; - gUnknown_02022C98->unk4A[i][2] = 0; - gUnknown_02022C98->unk4A[i][3] = 0; - gUnknown_02022C98->unk4A[i][4] = 0; - gUnknown_02022C98->unk4A[i][5] = 0; - } - gUnknown_02022C98->unk154 = 0; - gUnknown_02022C98->unk112 = 0; - gUnknown_02022C98->unk40 = 0; - sub_8026A88(); - sub_8026988(); -} - -static const s16 gUnknown_082F7B24[] = {10, 30, 50, 50}; - -static void sub_80273F0(void) -{ - u8 i, var = 0, var2 = 0; - - switch (gUnknown_02022C98->unk24) - { - case 4: var = 1; break; - case 5: var = 2; break; - } - - var2 = Random() % 10; - for (i = 0; i < 5; i++) - gUnknown_02022C98->unk4A[i][4] = gUnknown_082F7AA4[var][var2]; -} - -static u32 sub_802745C(u8 arg0) -{ - u32 sum = gUnknown_02022C98->unk4A[arg0][0] - + gUnknown_02022C98->unk4A[arg0][1] - + gUnknown_02022C98->unk4A[arg0][2]; - return min(sum, 9999); -} - -static void sub_802749C(void) -{ - u32 berriesPicked = Min(sub_802745C(gUnknown_02022C98->multiplayerId), 9999); - u32 score = Min(sub_80276C0(gUnknown_02022C98->multiplayerId), 999990); - - if (gSaveBlock2Ptr->berryPick.bestScore < score) - gSaveBlock2Ptr->berryPick.bestScore = score; - if (gSaveBlock2Ptr->berryPick.berriesPicked < berriesPicked) - gSaveBlock2Ptr->berryPick.berriesPicked = berriesPicked; - if (gSaveBlock2Ptr->berryPick.berriesPickedInRow < gUnknown_02022C98->unk114) - gSaveBlock2Ptr->berryPick.berriesPickedInRow = gUnknown_02022C98->unk114; -} - -static u8 sub_8027518(u8 arg0) -{ - u8 i, saved; - - saved = gUnknown_02022C98->unk98[3]; - for (i = 3; i != 0; i--) - gUnknown_02022C98->unk98[i] = gUnknown_02022C98->unk98[i - 1]; - gUnknown_02022C98->unk98[0] = arg0; - return saved; -} - -static void sub_8027554(void) -{ - if (gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] == 0) - { - if (JOY_NEW(DPAD_UP)) - { - gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 2; - gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_M_CHARM); - } - else if (JOY_NEW(DPAD_LEFT)) - { - gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 3; - gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_M_CHARM); - } - else if (JOY_NEW(DPAD_RIGHT)) - { - gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 1; - gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_M_CHARM); - } - else - { - gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 0; - } - } - else - { - gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId]--; - } -} - -static void sub_8027608(void) -{ - gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 0; -} - -static u16 sub_802762C(void) -{ - return gUnknown_02022C98->unk4A[gUnknown_02022C98->multiplayerId][4] + FIRST_BERRY_INDEX; -} - -static u8 sub_8027650(void) -{ - return gUnknown_02022C98->unk24; -} - -static u8 *sub_8027660(u8 id) -{ - if (gReceivedRemoteLinkPlayers) - return gLinkPlayers[id].name; - else - return gUnknown_02022C98->unk31A0[id].name; -} - -static u16 sub_80276A0(u8 arg0, u8 arg1) -{ - return gUnknown_02022C98->unk4A[arg0][arg1]; -} - -static u32 sub_80276C0(u8 arg0) -{ - u8 i; - u32 var, sum = 0; - - for (i = 0; i < 3; i++) - sum += gUnknown_02022C98->unk4A[arg0][i] * gUnknown_082F7B24[i]; - - var = gUnknown_02022C98->unk4A[arg0][3] * gUnknown_082F7B24[3]; - if (sum <= var) - return 0; - else - return sum - var; -} - -static u32 sub_8027748(void) -{ - u8 i, count = gUnknown_02022C98->unk24; - u32 maxVar = sub_80276C0(0); - - for (i = 1; i < count; i++) - { - u32 var = sub_80276C0(i); - if (var > maxVar) - maxVar = var; - } - return Min(maxVar, 999990); -} - -static u32 sub_802778C(u8 arg0) -{ - u8 i, count = gUnknown_02022C98->unk24; - u16 maxVar = gUnknown_02022C98->unk4A[0][arg0]; - - for (i = 0; i < count; i++) - { - u16 var = gUnknown_02022C98->unk4A[i][arg0]; - if (var > maxVar) - maxVar = var; - } - return maxVar; -} - -static u32 sub_80277D0(u8 arg0) -{ - u32 vals[5], temp; - s16 r6 = TRUE; - u8 i, count = gUnknown_02022C98->unk24; - - for (i = 0; i < count; i++) - vals[i] = temp = sub_80276C0(i); - - while (r6) - { - r6 = FALSE; - for (i = 0; i < count - 1; i++) - { - if (vals[i] < vals[i + 1]) - { - SWAP(vals[i], vals[i + 1], temp); - r6 = TRUE; - } - } - } - - return vals[arg0]; -} - -static u32 sub_802784C(void) -{ - u8 i, r10 = 0, r8 = 0, r9 = 0, count = gUnknown_02022C98->unk24; - - // Function called two times for some reason. - sub_8027748(); - if (sub_8027748() == 0) - { - for (i = 0; i < count; i++) - { - gUnknown_02022C98->unk3308[i].unk0 = 4; - gUnknown_02022C98->unk3308[i].unk4 = 0; - } - } - - for (i = 0; i < count; i++) - gUnknown_02022C98->unk3308[i].unk4 = Min(sub_80276C0(i), 999990); - - do - { - u32 r6 = sub_80277D0(r10); - u8 r3 = r8; - for (i = 0; i < count; i++) - { - if (r6 == gUnknown_02022C98->unk3308[i].unk4) - { - gUnknown_02022C98->unk3308[i].unk0 = r3; - r8++; - r9++; - } - } - r10 = r8; - } while (r9 < count); - - return 0; -} - -static void sub_802793C(struct DodrioSubstruct_3308 *dst, u8 id) -{ - *dst = gUnknown_02022C98->unk3308[id]; -} - -// Unused function -static u8 sub_802795C(u8 arg0) -{ - u8 i, ret = 0, count = gUnknown_02022C98->unk24; - u32 var, vars[5] = {0}; - - for (i = 0; i < count; i++) - vars[i] = sub_80276C0(i); - - var = vars[arg0]; - for (i = 0; i < 5; i++) - { - if (i != arg0 && var < vars[i]) - ret++; - } - - return ret; -} - -static u8 sub_80279C8(void) -{ - u8 multiplayerId = gUnknown_02022C98->multiplayerId; - u16 itemId = sub_802762C(); - - if (sub_80276C0(multiplayerId) != sub_8027748()) - return 3; - if (!CheckBagHasSpace(itemId, 1)) - return 2; - - AddBagItem(itemId, 1); - if (!CheckBagHasSpace(itemId, 1)) - return 1; - return 0; -} - -// Really? What next, u32 Add(u32 a)return a+1;? -static u32 IncrementWithLimit(u32 a, u32 max) -{ - if (a < max) - return a + 1; - else - return max; -} - -// Gamefreak pls, min(a, b) ((a) < (b) ? (a) : (b)) is a well-known macro -static u32 Min(u32 a, u32 b) -{ - if (a < b) - return a; - else - return b; -} - -static u8 sub_8027A48(u8 id) -{ - return gUnknown_02022C98->unk34[id]; -} - -void IsDodrioInParty(void) -{ - int i; - for (i = 0; i < PARTY_SIZE; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) - && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_DODRIO) - { - gSpecialVar_Result = TRUE; - return; - } - } - - gSpecialVar_Result = FALSE; -} - -void ShowDodrioBerryPickingRecords(void) -{ - u8 taskId = CreateTask(Task_ShowDodrioBerryPickingRecords, 0); - Task_ShowDodrioBerryPickingRecords(taskId); -} - -// Data related to printing saved results. -static const struct WindowTemplate gUnknown_082F7B2C = -{ - .bg = 0, - .tilemapLeft = 5, - .tilemapTop = 1, - .width = 20, - .height = 11, - .paletteNum = 15, - .baseBlock = 0x1, -}; - -static const u8 *const gUnknown_082F7B34[3] = {gText_BerriesPicked, gText_BestScore, gText_BerriesInRowFivePlayers}; -static const u8 gUnknown_082F7B40[] = {4, 7, 4}; - -ALIGNED(4) -static const u8 gUnknown_082F7B44[][2] = {{25}, {41}, {57}}; -static const u8 gUnknown_082F7B4A[][2] = {{25}, {41}, {73}}; - -static void Task_ShowDodrioBerryPickingRecords(u8 taskId) -{ - struct WindowTemplate window; - s32 i, width, widthCurr; - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 0: - window = gUnknown_082F7B2C; - width = GetStringWidth(1, gText_BerryPickingRecords, 0); - for (i = 0; i < ARRAY_COUNT(gUnknown_082F7B34); i++) - { - widthCurr = GetStringWidth(1, gUnknown_082F7B34[i], 0) + 50; - if (widthCurr > width) - width = widthCurr; - } - width = (width + 7) / 8; - if (width & 1) - width++; - window.tilemapLeft = (30 - width) / 2; - window.width = width; - data[1] = AddWindow(&window); - sub_8027BEC(data[1], width); - CopyWindowToVram(data[1], 3); - data[0]++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - data[0]++; - break; - case 2: - if (JOY_NEW(A_BUTTON | B_BUTTON)) - { - rbox_fill_rectangle(data[1]); - CopyWindowToVram(data[1], 1); - data[0]++; - } - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - { - RemoveWindow(data[1]); - DestroyTask(taskId); - EnableBothScriptContexts(); - } - break; - } -} - -static void sub_8027BEC(u8 windowId, s32 width) -{ - s32 i, x, numWidth; - s32 results[3]; - results[0] = gSaveBlock2Ptr->berryPick.berriesPicked; - results[1] = gSaveBlock2Ptr->berryPick.bestScore; - results[2] = gSaveBlock2Ptr->berryPick.berriesPickedInRow; - - LoadUserWindowBorderGfx_(windowId, 0x21D, 0xD0); - DrawTextBorderOuter(windowId, 0x21D, 0xD); - FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); - AddTextPrinterParameterized(windowId, 1, gText_BerryPickingRecords, GetStringCenterAlignXOffset(1, gText_BerryPickingRecords, width * 8), 1, TEXT_SPEED_FF, NULL); - for (i = 0; i < 3; i++) - { - ConvertIntToDecimalStringN(gStringVar1, results[i], STR_CONV_MODE_LEFT_ALIGN, gUnknown_082F7B40[i]); - numWidth = GetStringWidth(1, gStringVar1, -1); - AddTextPrinterParameterized(windowId, 1, gUnknown_082F7B34[i], 0, gUnknown_082F7B44[i][0], TEXT_SPEED_FF, NULL); - x = (width * 8) - numWidth; - AddTextPrinterParameterized(windowId, 1, gStringVar1, x, gUnknown_082F7B4A[i][0], TEXT_SPEED_FF, NULL); - } - PutWindowTilemap(windowId); -} - -// Debug functions? -static const u16 gUnknown_082F7B50[][4] = -{ - {9999, 0, 90, 9999}, - {9999, 9999, 70, 9999}, - {9999, 0, 9999, 0}, - {9999, 9999, 60, 0}, - {9999, 9999, 9999, 0}, -}; - -static const u8 sJPText_Vowels[] = _("あいうえおかき"); -static const u8 sText_ABCDEFG[] = _("ABCDEFG"); -static const u8 sText_0123456[] = _("0123456"); - -static const u8 *const sPlaceholderPlayerNames[] = -{ - sJPText_Vowels, - sJPText_Vowels, - sJPText_Vowels, - sText_ABCDEFG, - sText_0123456 -}; - -static void sub_8027D20(void) -{ - gUnknown_02022C98->unk24 = GetLinkPlayerCount(); -} - -static void sub_8027D38(void) -{ - u8 i, playerId; - - for (playerId = gUnknown_02022C98->unk24; playerId < ARRAY_COUNT(sPlaceholderPlayerNames); playerId++) - StringCopy(gLinkPlayers[playerId].name, sPlaceholderPlayerNames[playerId]); - - gUnknown_02022C98->unk24 = 5; - for (i = 0; i < 4; i++) - { - for (playerId = 0; playerId < gUnknown_02022C98->unk24; playerId++) - gUnknown_02022C98->unk4A[playerId][i] = gUnknown_082F7B50[playerId][i]; - } -} - -struct UnkPacket1 -{ - u8 id; - u8 ALIGNED(4) unk4; -}; - -static void sub_8027DD0(u32 arg0) -{ - struct UnkPacket1 packet; - packet.id = 1; - packet.unk4 = arg0; - Rfu_SendPacket(&packet); -} - -static u32 sub_8027DFC(u32 arg0) -{ - struct UnkPacket1 *packet; - - if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) - return 0; - - packet = (void *)&gRecvCmds[arg0][1]; - if (packet->id == 1) - return packet->unk4; - - return 0; -} - -struct UnkPacket2 -{ - u8 id; - u8 unk1_0:4; - u8 unk1_1:4; - u16 unk2_0:4; - u16 unk2_1:4; - u16 unk3_0:4; - u16 unk3_1:4; - u16 unk4_0:4; - u16 unk4_1:4; - u16 unk5_0:4; - u16 unk5_1:4; - u16 unk6_0:2; - u16 unk6_1:2; - u16 unk6_2:2; - u16 unk6_3:2; - u16 unk7_0:2; - u16 unk7_1:2; - u16 unk7_2:2; - u16 unk7_3:2; - u8 unk8_0:2; - u8 unk8_1:2; - u8 unk8_2:2; - u8 unk8_3:2; - u8 unk9_0:2; - u8 unk9_1:2; - u8 unk9_2:2; - u8 unk9_3:1; - u8 unk9_4:1; - u8 unkA_0:1; - u8 unkA_1:1; - u8 unkA_2:1; - u8 unkA_3:5; - u8 unkB_0:1; - u8 unkB_1:1; - u8 unkB_2:1; - u8 unkB_3:1; - u8 unkB_4:1; - u8 unkB_5:1; - u8 unkB_6:1; -}; - -static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8) -{ - struct UnkPacket2 packet; - struct DodrioSubstruct_31A0_14 *ptr = &arg0->unk14; - - packet.id = 2; - packet.unk1_0 = ptr->unkB[0]; - packet.unk1_1 = ptr->unkB[1]; - packet.unk2_0 = ptr->unkB[2]; - packet.unk2_1 = ptr->unkB[3]; - packet.unk3_0 = ptr->unkB[4]; - packet.unk3_1 = ptr->unkB[5]; - packet.unk4_0 = ptr->unkB[6]; - packet.unk4_1 = ptr->unkB[7]; - packet.unk5_0 = ptr->unkB[8]; - packet.unk5_1 = ptr->unkB[9]; - - packet.unk6_0 = ptr->unk0[0]; - packet.unk6_1 = ptr->unk0[1]; - packet.unk6_2 = ptr->unk0[2]; - packet.unk6_3 = ptr->unk0[3]; - packet.unk7_0 = ptr->unk0[4]; - packet.unk7_1 = ptr->unk0[5]; - packet.unk7_2 = ptr->unk0[6]; - packet.unk7_3 = ptr->unk0[7]; - packet.unk8_0 = ptr->unk0[8]; - packet.unk8_1 = ptr->unk0[9]; - - packet.unk8_2 = arg1->unk0; - packet.unk8_3 = arg2->unk0; - packet.unk9_0 = arg3->unk0; - packet.unk9_1 = arg4->unk0; - packet.unk9_2 = arg5->unk0; - - packet.unk9_3 = arg1->unk4; - packet.unk9_4 = arg2->unk4; - packet.unkA_0 = arg3->unk4; - packet.unkA_1 = arg4->unk4; - packet.unkA_2 = arg5->unk4; - - packet.unkB_2 = arg1->unk8; - packet.unkB_3 = arg2->unk8; - packet.unkB_4 = arg3->unk8; - packet.unkB_5 = arg4->unk8; - packet.unkB_6 = arg5->unk8; - - packet.unkA_3 = arg6; - packet.unkB_1 = arg7; - packet.unkB_0 = arg8; - Rfu_SendPacket(&packet); -} - -static u32 sub_8028164(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 *arg6, u32 *arg7, u32 *arg8) -{ - struct UnkPacket2 *packet; - struct DodrioSubstruct_31A0_14 *ptr = &arg0->unk14; - - if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) - return 0; - - packet = (void *)&gRecvCmds[0][1]; - if (packet->id == 2) - { - ptr->unkB[0] = packet->unk1_0; - ptr->unkB[1] = packet->unk1_1; - ptr->unkB[2] = packet->unk2_0; - ptr->unkB[3] = packet->unk2_1; - ptr->unkB[4] = packet->unk3_0; - ptr->unkB[5] = packet->unk3_1; - ptr->unkB[6] = packet->unk4_0; - ptr->unkB[7] = packet->unk4_1; - ptr->unkB[8] = packet->unk5_0; - ptr->unkB[9] = packet->unk5_1; - ptr->unkB[10] = packet->unk1_0; - - ptr->unk0[0] = packet->unk6_0; - ptr->unk0[1] = packet->unk6_1; - ptr->unk0[2] = packet->unk6_2; - ptr->unk0[3] = packet->unk6_3; - ptr->unk0[4] = packet->unk7_0; - ptr->unk0[5] = packet->unk7_1; - ptr->unk0[6] = packet->unk7_2; - ptr->unk0[7] = packet->unk7_3; - ptr->unk0[8] = packet->unk8_0; - ptr->unk0[9] = packet->unk8_1; - ptr->unk0[10] = packet->unk6_0; - - arg1->unk0 = packet->unk8_2; - arg1->unk4 = packet->unk9_3; - arg1->unk8 = packet->unkB_2; - - arg2->unk0 = packet->unk8_3; - arg2->unk4 = packet->unk9_4; - arg2->unk8 = packet->unkB_3; - - arg3->unk0 = packet->unk9_0; - arg3->unk4 = packet->unkA_0; - arg3->unk8 = packet->unkB_4; - - arg4->unk0 = packet->unk9_1; - arg4->unk4 = packet->unkA_1; - arg4->unk8 = packet->unkB_5; - - arg5->unk0 = packet->unk9_2; - arg5->unk4 = packet->unkA_2; - arg5->unk8 = packet->unkB_6; - - *arg6 = packet->unkA_3; - *arg7 = packet->unkB_1; - *arg8 = packet->unkB_0; - return 1; - } - - return 0; -} - -struct UnkPacket3 -{ - u8 id; - u8 ALIGNED(4) unk4; -}; - -static void sub_80282EC(u8 arg0) -{ - struct UnkPacket3 packet; - packet.id = 3; - packet.unk4 = arg0; - Rfu_SendPacket(&packet); -} - -static u32 sub_8028318(u32 arg0, u8 *arg1) -{ - struct UnkPacket3 *packet; - - if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) - return 0; - - packet = (void *)&gRecvCmds[arg0][1]; - if (packet->id == 3) - { - *arg1 = packet->unk4; - return 1; - } - - return 0; -} - -struct UnkPacket4 -{ - u8 id; - u32 unk4; -}; - -static void sub_8028350(u32 arg0) -{ - struct UnkPacket4 packet; - packet.id = 4; - packet.unk4 = arg0; - Rfu_SendPacket(&packet); -} - -static u32 sub_8028374(u32 arg0) -{ - struct UnkPacket4 *packet; - - if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) - return 0; - - packet = (void *)&gRecvCmds[arg0][1]; - if (packet->id == 4) - return packet->unk4; - - return 0; -} - -// Large chunk of data -static const struct BgTemplate gUnknown_082F7BA4[] = -{ - { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 30, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0 - }, - { - .bg = 1, - .charBaseIndex = 2, - .mapBaseIndex = 12, - .screenSize = 1, - .paletteMode = 0, - .priority = 1, - .baseTile = 0 - }, - { - .bg = 2, - .charBaseIndex = 2, - .mapBaseIndex = 14, - .screenSize = 1, - .paletteMode = 0, - .priority = 1, - .baseTile = 0 - }, - { - .bg = 3, - .charBaseIndex = 3, - .mapBaseIndex = 31, - .screenSize = 0, - .paletteMode = 0, - .priority = 2, - .baseTile = 0 - }, -}; - -// Unknown unreferenced data, feel free to remove. -static const u32 sUnused[] = {255, 0}; - -static const struct WindowTemplate gUnknown_082F7BBC[] = -{ - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 28, - .height = 2, - .paletteNum = 13, - .baseBlock = 0x13, - }, - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 5, - .width = 28, - .height = 14, - .paletteNum = 13, - .baseBlock = 0x4B, - } -}; -static const struct WindowTemplate gUnknown_082F7BCC = -{ - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 5, - .width = 28, - .height = 7, - .paletteNum = 13, - .baseBlock = 0x4B, -}; -static const struct WindowTemplate gUnknown_082F7BD4[] = -{ - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 8, - .width = 19, - .height = 3, - .paletteNum = 13, - .baseBlock = 0x13, - }, - { - .bg = 0, - .tilemapLeft = 22, - .tilemapTop = 7, - .width = 6, - .height = 4, - .paletteNum = 13, - .baseBlock = 0x4C, - } -}; -static const struct WindowTemplate gUnknown_082F7BE4 = -{ - .bg = 0, - .tilemapLeft = 4, - .tilemapTop = 6, - .width = 22, - .height = 5, - .paletteNum = 13, - .baseBlock = 0x13, -}; -static const struct WindowTemplate gUnknown_082F7BEC = -{ - .bg = 0, - .tilemapLeft = 5, - .tilemapTop = 8, - .width = 19, - .height = 3, - .paletteNum = 13, - .baseBlock = 0x13, -}; - -// This is an unused copy of the tables from the top of the file. Feel free to remove. -static const u8 sDuplicateArray[] = -{ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 3, 8, 9, 0, 0, 1, 2, 5, 6, 3, 4, 5, 8, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 2, 9, - 0, 0, 1, 4, 5, 6, 7, 2, 3, 4, 9, 0, 0, 1, 6, 7, 2, 3, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 0, 0, 3, 4, 5, 6, 7, 8, 1, 2, 3, 0, 0, 5, 6, 7, 8, 1, 2, 3, 4, 5, 0, 0, 7, - 8, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0, - 1, 2, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 4, 5, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 5, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 6, 7, 2, 2, 3, 4, 0, 0, 0, 0, 0, 0, - 3, 4, 5, 5, 6, 7, 7, 8, 1, 1, 2, 3, 0, 0, 0, 4, 5, 6, 6, 7, 8, 8, 9, 0, 0, 1, 2, 2, 3, 4, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 1, - 2, 1, 2, 3, 2, 3, 0, 0, 0, 0, 4, 0, 1, 0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 4, 0, 0, 0, 0, 9, 9, 9, 9, 1, 1, 1, 9, 9, 9, 9, 9, - 9, 9, 0, 0, 1, 1, 0, 9, 9, 9, 9, 9, 2, 2, 0, 0, 1, 1, 1, 9, 9, 9, 3, 3, 0, 0, 1, 1, 2, 2, 3, 9, 3, 3, 4, 4, 0, 0, 1, 1, - 2, 2, 3, 5, 0, 0, 0, 0, 4, 6, 0, 0, 0, 3, 5, 7, 0, 0, 2, 4, 6, 8, 0, 1, 3, 5, 6, 9 -}; - -static const u16 gDodrioBerryBgPal1[] = INCBIN_U16("graphics/link_games/dodrioberry_bg1.gbapal", - "graphics/link_games/dodrioberry_bg2.gbapal"); -static const u16 gDodrioBerryPkmnPal[] = INCBIN_U16("graphics/link_games/dodrioberry_pkmn.gbapal"); -static const u16 gDodrioBerryShinyPal[] = INCBIN_U16("graphics/link_games/dodrioberry_shiny.gbapal"); -static const u16 gDodrioBerryStatusPal[] = INCBIN_U16("graphics/link_games/dodrioberry_status.gbapal"); -static const u16 gDodrioBerrySpritesPal[] = INCBIN_U16("graphics/link_games/dodrioberry_berrysprites.gbapal"); -static const u32 gDodrioBerrySpritesGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_berrysprites.4bpp.lz"); -static const u16 gDodrioBerryPlatformPal[] = INCBIN_U16("graphics/link_games/dodrioberry_platform.gbapal"); -static const u32 gDodrioBerryBgGfx1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.4bpp.lz"); -static const u32 gDodrioBerryBgGfx2[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2.4bpp.lz"); -static const u32 gDodrioBerryStatusGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_status.4bpp.lz"); -static const u32 gDodrioBerryPlatformGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_platform.4bpp.lz"); -static const u32 gDodrioBerryPkmnGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_pkmn.4bpp.lz"); -static const u32 gDodrioBerryBgTilemap1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.bin.lz"); -static const u32 gDodrioBerryBgTilemap2Right[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2right.bin.lz"); -static const u32 gDodrioBerryBgTilemap2Left[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2left.bin.lz"); - -static const struct OamData sOamData_82FB1E0 = +static const u16 sBg_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/bg.gbapal", + "graphics/dodrio_berry_picking/tree_border.gbapal"); +static const u16 sDodrioNormal_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/dodrio.gbapal"); +static const u16 sDodrioShiny_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/shiny.gbapal"); +static const u16 sStatus_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/status.gbapal"); +static const u16 sBerries_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/berries.gbapal"); +static const u32 sBerries_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/berries.4bpp.lz"); +static const u16 sCloud_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/cloud.gbapal"); +static const u32 sBg_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/bg.4bpp.lz"); +static const u32 sTreeBorder_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/tree_border.4bpp.lz"); +static const u32 sStatus_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/status.4bpp.lz"); +static const u32 sCloud_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/cloud.4bpp.lz"); +static const u32 sDodrio_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/dodrio.4bpp.lz"); +static const u32 sBg_Tilemap[] = INCBIN_U32("graphics/dodrio_berry_picking/bg.bin.lz"); +static const u32 sTreeBorderRight_Tilemap[] = INCBIN_U32("graphics/dodrio_berry_picking/tree_border_right.bin.lz"); +static const u32 sTreeBorderLeft_Tilemap[] = INCBIN_U32("graphics/dodrio_berry_picking/tree_border_left.bin.lz"); + +static const struct OamData sOamData_Dodrio = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -3151,7 +3620,8 @@ static const struct OamData sOamData_82FB1E0 = .affineParam = 0 }; -static const struct OamData sOamData_82FB1E8 = +// Used by the status bar and the results screen berry icons +static const struct OamData sOamData_16x16_Priority0 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -3168,7 +3638,7 @@ static const struct OamData sOamData_82FB1E8 = .affineParam = 0 }; -static const struct OamData sOamData_82FB1F0 = +static const struct OamData sOamData_Berry = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -3185,7 +3655,7 @@ static const struct OamData sOamData_82FB1F0 = .affineParam = 0 }; -static const struct OamData sOamData_82FB1F8 = +static const struct OamData sOamData_Cloud = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -3202,659 +3672,719 @@ static const struct OamData sOamData_82FB1F8 = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_82FB200[] = +static const union AnimCmd sAnim_Dodrio_Normal[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB208[] = +static const union AnimCmd sAnim_Dodrio_PickRight[] = { ANIMCMD_FRAME(64, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB210[] = +static const union AnimCmd sAnim_Dodrio_PickMiddle[] = { ANIMCMD_FRAME(128, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB218[] = +static const union AnimCmd sAnim_Dodrio_PickLeft[] = { ANIMCMD_FRAME(192, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB220[] = +static const union AnimCmd sAnim_Dodrio_Down[] = { ANIMCMD_FRAME(256, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_82FB228[] = +static const union AnimCmd *const sAnims_Dodrio[] = { - sSpriteAnim_82FB200, - sSpriteAnim_82FB208, - sSpriteAnim_82FB210, - sSpriteAnim_82FB218, - sSpriteAnim_82FB220 + [PICK_NONE] = sAnim_Dodrio_Normal, + [PICK_RIGHT] = sAnim_Dodrio_PickRight, + [PICK_MIDDLE] = sAnim_Dodrio_PickMiddle, + [PICK_LEFT] = sAnim_Dodrio_PickLeft, + [PICK_DISABLED] = sAnim_Dodrio_Down, + // There is an unused 6th frame of Dodrio's graphic }; -static const union AnimCmd sSpriteAnim_82FB23C[] = +static const union AnimCmd sAnims_StatusBar_Yellow[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB244[] = +static const union AnimCmd sAnims_StatusBar_Gray[] = { ANIMCMD_FRAME(4, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB24C[] = +static const union AnimCmd sAnims_StatusBar_Red[] = { ANIMCMD_FRAME(8, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_82FB254[] = +static const union AnimCmd *const sAnims_StatusBar[] = { - sSpriteAnim_82FB23C, - sSpriteAnim_82FB244, - sSpriteAnim_82FB24C + [STATUS_YELLOW] = sAnims_StatusBar_Yellow, + [STATUS_GRAY] = sAnims_StatusBar_Gray, + [STATUS_RED] = sAnims_StatusBar_Red }; -static const union AnimCmd sSpriteAnim_82FB260[] = +static const union AnimCmd sAnim_Berry_Blue[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB268[] = +static const union AnimCmd sAnim_Berry_Green[] = { ANIMCMD_FRAME(4, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB270[] = +static const union AnimCmd sAnim_Berry_Gold[] = { ANIMCMD_FRAME(8, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB278[] = +static const union AnimCmd sAnim_Berry_BlueSquished[] = { ANIMCMD_FRAME(12, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB280[] = +static const union AnimCmd sAnim_Berry_GreenSquished[] = { ANIMCMD_FRAME(16, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB288[] = +static const union AnimCmd sAnim_Berry_GoldSquished[] = { ANIMCMD_FRAME(20, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB290[] = +static const union AnimCmd sAnim_Berry_Eaten[] = { ANIMCMD_FRAME(24, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB298[] = +static const union AnimCmd sAnim_Berry_Empty1[] = { ANIMCMD_FRAME(28, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_82FB2A0[] = +static const union AnimCmd sAnim_Berry_Empty2[] = { ANIMCMD_FRAME(32, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_82FB2A8[] = +static const union AnimCmd *const sAnims_Berry[] = { - sSpriteAnim_82FB260, - sSpriteAnim_82FB268, - sSpriteAnim_82FB270, - sSpriteAnim_82FB278, - sSpriteAnim_82FB280, - sSpriteAnim_82FB288, - sSpriteAnim_82FB290, - sSpriteAnim_82FB298, - sSpriteAnim_82FB2A0 + [BERRY_BLUE] = sAnim_Berry_Blue, + [BERRY_GREEN] = sAnim_Berry_Green, + [BERRY_GOLD] = sAnim_Berry_Gold, + + [BERRY_BLUE + BERRY_MISSED] = sAnim_Berry_BlueSquished, + [BERRY_GREEN + BERRY_MISSED] = sAnim_Berry_GreenSquished, + [BERRY_GOLD + BERRY_MISSED] = sAnim_Berry_GoldSquished, + + [ANIM_EATEN] = sAnim_Berry_Eaten, + + sAnim_Berry_Empty1, + sAnim_Berry_Empty2 }; -static const union AnimCmd sSpriteAnim_82FB2CC[] = +static const union AnimCmd sAnim_Cloud[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_82FB2D4[] = +static const union AnimCmd *const sAnims_Cloud[] = { - sSpriteAnim_82FB2CC + sAnim_Cloud }; -static void sub_80283A8(void) +static void LoadDodrioGfx(void) { void *ptr = AllocZeroed(0x3000); - struct SpritePalette pal1 = {gDodrioBerryPkmnPal, 0}; - struct SpritePalette pal2 = {gDodrioBerryShinyPal, 1}; + struct SpritePalette normal = {sDodrioNormal_Pal, PALTAG_DODRIO_NORMAL}; + struct SpritePalette shiny = {sDodrioShiny_Pal, PALTAG_DODRIO_SHINY}; - LZ77UnCompWram(gDodrioBerryPkmnGfx, ptr); - // This check should be one line up. - if (ptr != NULL) + LZ77UnCompWram(sDodrio_Gfx, ptr); + if (ptr) { - struct SpriteSheet sheet = {ptr, 0x3000, 0}; + struct SpriteSheet sheet = {ptr, 0x3000, GFXTAG_DODRIO}; LoadSpriteSheet(&sheet); Free(ptr); } - LoadSpritePalette(&pal1); - LoadSpritePalette(&pal2); + LoadSpritePalette(&normal); + LoadSpritePalette(&shiny); } -static void sub_8028408(struct DodrioSubstruct_318C *arg0, u8 arg1, u8 id, u8 arg3) +static void CreateDodrioSprite(struct DodrioGame_MonInfo * monInfo, u8 playerId, u8 id, u8 numPlayers) { - struct SpriteTemplate sprTemplate = + struct SpriteTemplate template = { - .tileTag = 0, - .paletteTag = arg0->isShiny, - .oam = &sOamData_82FB1E0, - .anims = sSpriteAnimTable_82FB228, + .tileTag = GFXTAG_DODRIO, + .paletteTag = monInfo->isShiny, // PALTAG_DODRIO_NORMAL / PALTAG_DODRIO_SHINY + .oam = &sOamData_Dodrio, + .anims = sAnims_Dodrio, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80284A8, + .callback = SpriteCB_Dodrio, }; - gUnknown_02022C9C[id] = AllocZeroed(4); - *gUnknown_02022C9C[id] = CreateSprite(&sprTemplate, sub_8028F14(arg1, arg3), 136, 3); - sub_8028654(TRUE, id); + sDodrioSpriteIds[id] = AllocZeroed(4); + *sDodrioSpriteIds[id] = CreateSprite(&template, GetDodrioXPos(playerId, numPlayers), 136, 3); + SetDodrioInvisibility(TRUE, id); } -static void sub_80284A8(struct Sprite *sprite) +#define sState data[0] +#define sTimer data[1] +#define sUnused1 data[2] +#define sUnused2 data[3] +#define sUnused3 data[4] + +static void SpriteCB_Dodrio(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: break; case 1: - sub_802853C(sprite); + DoDodrioMissedAnim(sprite); break; case 2: - sub_80285AC(sprite); + DoDodrioIntroAnim(sprite); break; } } -static void sub_80284CC(u8 unused) +static void StartDodrioMissedAnim(u8 unused) { - struct Sprite *sprite = &gSprites[*gUnknown_02022C9C[GetMultiplayerId()]]; - sprite->data[0] = 1; - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[3] = 0; - sprite->data[4] = 0; + struct Sprite *sprite = &gSprites[*sDodrioSpriteIds[GetMultiplayerId()]]; + sprite->sState = 1; + sprite->sTimer = 0; + sprite->sUnused1 = 0; + sprite->sUnused2 = 0; + sprite->sUnused3 = 0; } -static void sub_8028504(u8 unused) +static void StartDodrioIntroAnim(u8 unused) { - struct Sprite *sprite = &gSprites[*gUnknown_02022C9C[GetMultiplayerId()]]; - sprite->data[0] = 2; - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[3] = 0; - sprite->data[4] = 0; + struct Sprite *sprite = &gSprites[*sDodrioSpriteIds[GetMultiplayerId()]]; + sprite->sState = 2; + sprite->sTimer = 0; + sprite->sUnused1 = 0; + sprite->sUnused2 = 0; + sprite->sUnused3 = 0; } -static u32 sub_802853C(struct Sprite *sprite) +// Do animation where Dodrio shakes horizontally after reaching for a berry and missing +static u32 DoDodrioMissedAnim(struct Sprite *sprite) { - s8 var; - u8 mod = (++sprite->data[1] / 2) % 4; + s8 x; + u8 state = (++sprite->sTimer / 2) % 4; - if (sprite->data[1] >= 3) + if (sprite->sTimer >= 3) { - switch (mod) + switch (state) { default: - var = 1; + x = 1; break; case 1: case 2: - var = -1; + x = -1; break; } - sprite->pos1.x += var; - if (++sprite->data[1] >= 40) + sprite->x += x; + if (++sprite->sTimer >= 40) { - sprite->data[0] = 0; - sprite->pos1.x = sub_8028F14(0, sub_8027650()); + sprite->sState = 0; + sprite->x = GetDodrioXPos(0, GetNumPlayers()); } } return 0; } -static u32 sub_80285AC(struct Sprite *sprite) -{ - u8 mod = (++sprite->data[1] / 13) % 4; +// Does the intro animation where the player's Dodrio +// cycles through extending each head twice +#define FRAMES_PER_STATE 13 +#define NUM_INTRO_PICK_STATES PICK_DISABLED // Cycle through 'Normal' and each head, but exclude the Disabled state - if (sprite->data[1] % 13 == 0 && mod != 0) +static u32 DoDodrioIntroAnim(struct Sprite *sprite) +{ + u8 pickState = (++sprite->sTimer / FRAMES_PER_STATE) % NUM_INTRO_PICK_STATES; + + // Play a sound effect at the start of each head extension + if (sprite->sTimer % FRAMES_PER_STATE == 0 && pickState != PICK_NONE) PlaySE(SE_M_CHARM); - if (sprite->data[1] >= 104) + + if (sprite->sTimer >= FRAMES_PER_STATE * NUM_INTRO_PICK_STATES * 2) { - sprite->data[0] = 0; - mod = 0; + // End animation + sprite->sState = 0; + pickState = PICK_NONE; } - sub_80286B4(GetMultiplayerId(), mod); + SetDodrioAnim(GetMultiplayerId(), pickState); return 0; } -static void sub_8028614(u8 count) +#undef sState +#undef sTimer +#undef sUnused1 +#undef sUnused2 +#undef sUnused3 + +static void FreeDodrioSprites(u8 numPlayers) { u8 i; - for (i = 0; i < count; i++) + for (i = 0; i < numPlayers; i++) { - struct Sprite *sprite = &gSprites[*gUnknown_02022C9C[i]]; - if (sprite != NULL) + struct Sprite *sprite = &gSprites[*sDodrioSpriteIds[i]]; + if (sprite) DestroySpriteAndFreeResources(sprite); - // Memory should be freed here but is not. +#ifdef BUGFIX + FREE_AND_SET_NULL(sDodrioSpriteIds[i]); // Memory should be freed here but is not. +#endif } } -static void sub_8028654(bool8 invisible, u8 id) +static void SetDodrioInvisibility(bool8 invisible, u8 id) { - gSprites[*gUnknown_02022C9C[id]].invisible = invisible; + gSprites[*sDodrioSpriteIds[id]].invisible = invisible; } -static void sub_802868C(bool8 invisible, u8 count) +static void SetAllDodrioInvisibility(bool8 invisible, u8 count) { u8 i; for (i = 0; i < count; i++) - sub_8028654(invisible, i); + SetDodrioInvisibility(invisible, i); } -static void sub_80286B4(u8 id, u8 frameNum) +static void SetDodrioAnim(u8 id, u8 pickState) { - StartSpriteAnim(&gSprites[*gUnknown_02022C9C[id]], frameNum); + StartSpriteAnim(&gSprites[*sDodrioSpriteIds[id]], pickState); } -static void nullsub_15(struct Sprite *sprite) +static void SpriteCB_Status(struct Sprite *sprite) { } -static void sub_80286E4(void) +static void InitStatusBarPos(void) { u8 i; - for (i = 0; i < 10; i++) + for (i = 0; i < NUM_STATUS_SQUARES; i++) { - struct Sprite *sprite = &gSprites[gUnknown_02022CF4->unk2A[i]]; - sprite->pos1.x = (i * 16) + 48; - sprite->pos1.y = -8 - (i * 8); - gUnknown_02022CF4->unkC[i] = 0; + struct Sprite *sprite = &gSprites[sStatusBar->spriteIds[i]]; + sprite->x = (i * 16) + 48; + sprite->y = -8 - (i * 8); + sStatusBar->entered[i] = FALSE; } } -static void sub_8028734(void) +static void CreateStatusBarSprites(void) { u8 i; void *ptr = AllocZeroed(0x180); - struct SpritePalette spPal = {gDodrioBerryStatusPal, 2}; + struct SpritePalette pal = {sStatus_Pal, PALTAG_STATUS}; - LZ77UnCompWram(gDodrioBerryStatusGfx, ptr); + LZ77UnCompWram(sStatus_Gfx, ptr); // This check should be one line up. - if (ptr != NULL) + if (ptr) { - struct SpriteSheet spSheet = {ptr, 0x180, 1}; - struct SpriteTemplate spTemplate = + struct SpriteSheet sheet = {ptr, 0x180, GFXTAG_STATUS}; + struct SpriteTemplate template = { - .tileTag = 1, - .paletteTag = 2, - .oam = &sOamData_82FB1E8, - .anims = sSpriteAnimTable_82FB254, + .tileTag = GFXTAG_STATUS, + .paletteTag = PALTAG_STATUS, + .oam = &sOamData_16x16_Priority0, + .anims = sAnims_StatusBar, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = nullsub_15, + .callback = SpriteCB_Status, }; - gUnknown_02022CF4 = AllocZeroed(sizeof(*gUnknown_02022CF4)); - LoadSpriteSheet(&spSheet); - LoadSpritePalette(&spPal); - for (i = 0; i < 10; i++) - gUnknown_02022CF4->unk2A[i] = CreateSprite(&spTemplate, (i * 16) + 48, -8 - (i * 8), 0); + sStatusBar = AllocZeroed(sizeof(*sStatusBar)); + LoadSpriteSheet(&sheet); + LoadSpritePalette(&pal); + for (i = 0; i < NUM_STATUS_SQUARES; i++) + sStatusBar->spriteIds[i] = CreateSprite(&template, (i * 16) + 48, -8 - (i * 8), 0); } Free(ptr); } -static void sub_80287E4(void) +static void FreeStatusBar(void) { u8 i; - for (i = 0; i < 10; i++) + for (i = 0; i < NUM_STATUS_SQUARES; i++) { - struct Sprite *sprite = &gSprites[gUnknown_02022CF4->unk2A[i]]; - if (sprite != NULL) + struct Sprite *sprite = &gSprites[sStatusBar->spriteIds[i]]; + if (sprite) DestroySpriteAndFreeResources(sprite); } - FREE_AND_SET_NULL(gUnknown_02022CF4); + FREE_AND_SET_NULL(sStatusBar); } -static bool32 sub_8028828(void) +// Progress an animation where each square of the +// status bar drops down into view, bounces up, +// then settles into position. +// Returns TRUE if the animation is complete +static bool32 DoStatusBarIntro(void) { u8 i; - bool32 r3 = FALSE; - for (i = 0; i < 10; i++) + bool32 animActive = FALSE; + for (i = 0; i < NUM_STATUS_SQUARES; i++) { - struct Sprite *sprite = &gSprites[gUnknown_02022CF4->unk2A[i]]; - gUnknown_02022CF4->unk16[i] = 2; - if (gUnknown_02022CF4->unkC[i] != 0 && sprite->pos1.y == 8) + struct Sprite *sprite = &gSprites[sStatusBar->spriteIds[i]]; + sStatusBar->yChange[i] = 2; + if (sStatusBar->entered[i] && sprite->y == 8) continue; - r3 = TRUE; - if (sprite->pos1.y == 8) + + animActive = TRUE; + if (sprite->y == 8) { - if (gUnknown_02022CF4->unkC[i] != 0) + if (sStatusBar->entered[i]) continue; - gUnknown_02022CF4->unkC[i] = 1; - gUnknown_02022CF4->unk16[i] = -16; + + // Square has entered screen, play click + // sound and reverse direction + sStatusBar->entered[i] = TRUE; + sStatusBar->yChange[i] = -16; PlaySE(SE_CLICK); } - sprite->pos1.y += gUnknown_02022CF4->unk16[i]; + sprite->y += sStatusBar->yChange[i]; } - if (r3) + if (animActive) return FALSE; else return TRUE; } -static void sub_80288D4(u8 arg0) +// The status bar at the top changes color depending on the game performance. +// The squares start out yellow. For every berry missed, a square is colored gray. +// If there are 4 or fewer yellow squares left they also flash red +static void UpdateStatusBarAnim(u8 numEmpty) { u8 i; - if (arg0 > 10) + if (numEmpty > NUM_STATUS_SQUARES) { - for (i = 0; i < 10; i++) - StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 1); + // All squares gray + for (i = 0; i < NUM_STATUS_SQUARES; i++) + StartSpriteAnim(&gSprites[sStatusBar->spriteIds[i]], STATUS_GRAY); } else { - for (i = 0; i < 10 - arg0; i++) + // At least 1 square is yellow + for (i = 0; i < NUM_STATUS_SQUARES - numEmpty; i++) { - if (arg0 > 6) + if (numEmpty > 6) { - gUnknown_02022CF4->unk3E += arg0 - 6; - if (gUnknown_02022CF4->unk3E > 30) - gUnknown_02022CF4->unk3E = 0; - else if (gUnknown_02022CF4->unk3E > 10) - StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 2); + // Flash the yellow squares red + // The flash cycles faster the fewer yellow squares remain + sStatusBar->flashTimer += numEmpty - 6; + if (sStatusBar->flashTimer > 30) + sStatusBar->flashTimer = 0; + else if (sStatusBar->flashTimer > 10) + StartSpriteAnim(&gSprites[sStatusBar->spriteIds[i]], STATUS_RED); else - StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 0); + StartSpriteAnim(&gSprites[sStatusBar->spriteIds[i]], STATUS_YELLOW); } else { - StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 0); + // Set yellow squares, no flash + StartSpriteAnim(&gSprites[sStatusBar->spriteIds[i]], STATUS_YELLOW); } } - for (; i < 10; i++) - StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 1); + + // Set remaining squares gray + for (; i < NUM_STATUS_SQUARES; i++) + StartSpriteAnim(&gSprites[sStatusBar->spriteIds[i]], STATUS_GRAY); } } -static void sub_80289E8(bool8 invisible) +static void SetStatusBarInvisibility(bool8 invisible) { u8 i; - for (i = 0; i < 10; i++) - gSprites[gUnknown_02022CF4->unk2A[i]].invisible = invisible; + for (i = 0; i < NUM_STATUS_SQUARES; i++) + gSprites[sStatusBar->spriteIds[i]].invisible = invisible; } -// Unknown unused data, feel free to remove. -static const u8 sUnused2[] = {0xD4, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0xFB, 0x0, 0x0}; +static const u8 sUnusedSounds[] = { + SE_M_CHARM, + SE_NOTE_C, + SE_NOTE_D, + SE_NOTE_E, + SE_NOTE_F, + SE_NOTE_G, + SE_NOTE_A, + SE_NOTE_B, + SE_NOTE_C_HIGH, + SE_RG_CARD_OPEN +}; -static void sub_8028A34(void) +static void LoadBerryGfx(void) { void *ptr = AllocZeroed(0x480); - struct SpritePalette sprPal = {gDodrioBerrySpritesPal, 3}; + struct SpritePalette pal = {sBerries_Pal, PALTAG_BERRIES}; - LZ77UnCompWram(gDodrioBerrySpritesGfx, ptr); - if (ptr != NULL) + LZ77UnCompWram(sBerries_Gfx, ptr); + if (ptr) { - struct SpriteSheet sprSheet = {ptr, 0x480, 2}; - LoadSpriteSheet(&sprSheet); + struct SpriteSheet sheet = {ptr, 0x480, GFXTAG_BERRIES}; + LoadSpriteSheet(&sheet); } - LoadSpritePalette(&sprPal); + LoadSpritePalette(&pal); Free(ptr); } -static const s16 gUnknown_082FB31C[] = {88, 128, 168, 208}; +static const s16 sBerryIconXCoords[] = {88, 128, 168, 208}; -static void sub_8028A88(void) +static void CreateBerrySprites(void) { u8 i; s16 x; - struct SpriteTemplate sprTemplate1 = + struct SpriteTemplate berry = { - .tileTag = 2, - .paletteTag = 3, - .oam = &sOamData_82FB1F0, - .anims = sSpriteAnimTable_82FB2A8, + .tileTag = GFXTAG_BERRIES, + .paletteTag = PALTAG_BERRIES, + .oam = &sOamData_Berry, + .anims = sAnims_Berry, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; - struct SpriteTemplate sprTemplate2 = + struct SpriteTemplate berryIcon = { - .tileTag = 2, - .paletteTag = 3, - .oam = &sOamData_82FB1E8, - .anims = sSpriteAnimTable_82FB2A8, + .tileTag = GFXTAG_BERRIES, + .paletteTag = PALTAG_BERRIES, + .oam = &sOamData_16x16_Priority0, + .anims = sAnims_Berry, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; - for (i = 0; i < 11; i++) + // Create berry sprites that fall during gameplay + for (i = 0; i < NUM_BERRY_COLUMNS; i++) { - gUnknown_02022CB8[i] = AllocZeroed(4); + sBerrySpriteIds[i] = AllocZeroed(4); x = i * 16; - *gUnknown_02022CB8[i] = CreateSprite(&sprTemplate1, x + (i * 8), 8, 1); - sub_8028BF8(i, TRUE); - } - for (i = 0; i < 4; i++) - { - gUnknown_02022CE4[i] = AllocZeroed(4); - if (i == 3) - *gUnknown_02022CE4[i] = CreateSprite(&sprTemplate2, gUnknown_082FB31C[i], 49, 0); - else - *gUnknown_02022CE4[i] = CreateSprite(&sprTemplate2, gUnknown_082FB31C[i], 52, 0); - StartSpriteAnim(&gSprites[*gUnknown_02022CE4[i]], i); + *sBerrySpriteIds[i] = CreateSprite(&berry, x + (i * 8), 8, 1); + SetBerryInvisibility(i, TRUE); } - sub_8028C30(TRUE); + // Create berry icon sprites for results screen + for (i = 0; i < NUM_BERRY_TYPES; i++) + { + sBerryIconSpriteIds[i] = AllocZeroed(4); + if (i == BERRY_MISSED) + *sBerryIconSpriteIds[i] = CreateSprite(&berryIcon, sBerryIconXCoords[i], 49, 0); + else + *sBerryIconSpriteIds[i] = CreateSprite(&berryIcon, sBerryIconXCoords[i], 52, 0); + StartSpriteAnim(&gSprites[*sBerryIconSpriteIds[i]], i); + } + SetBerryIconsInvisibility(TRUE); } -static void sub_8028B80(void) +static void FreeBerrySprites(void) { struct Sprite *sprite; u8 i; - for (i = 0; i < 11; i++) + for (i = 0; i < NUM_BERRY_COLUMNS; i++) { - sprite = &gSprites[*gUnknown_02022CB8[i]]; - if (sprite != NULL) + sprite = &gSprites[*sBerrySpriteIds[i]]; + if (sprite) DestroySprite(sprite); - FREE_AND_SET_NULL(gUnknown_02022CB8[i]); + FREE_AND_SET_NULL(sBerrySpriteIds[i]); } - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_BERRY_TYPES; i++) { - sprite = &gSprites[*gUnknown_02022CE4[i]]; - if (sprite != NULL) + sprite = &gSprites[*sBerryIconSpriteIds[i]]; + if (sprite) DestroySprite(sprite); - FREE_AND_SET_NULL(gUnknown_02022CE4[i]); + FREE_AND_SET_NULL(sBerryIconSpriteIds[i]); } } -static void sub_8028BF8(u8 id, bool8 invisible) +static void SetBerryInvisibility(u8 id, bool8 invisible) { - gSprites[*gUnknown_02022CB8[id]].invisible = invisible; + gSprites[*sBerrySpriteIds[id]].invisible = invisible; } -static void sub_8028C30(bool8 invisible) +static void SetBerryIconsInvisibility(bool8 invisible) { u8 i; - for (i = 0; i < 4; i++) - gSprites[*gUnknown_02022CE4[i]].invisible = invisible; + for (i = 0; i < NUM_BERRY_TYPES; i++) + gSprites[*sBerryIconSpriteIds[i]].invisible = invisible; } -static void sub_8028C7C(u8 id, u8 y) +static void SetBerryYPos(u8 id, u8 y) { - gSprites[*gUnknown_02022CB8[id]].pos1.y = y * 8; + gSprites[*sBerrySpriteIds[id]].y = y * 8; } -static void sub_8028CA4(u16 id, u8 frameNum) +static void SetBerryAnim(u16 id, u8 animNum) { - StartSpriteAnim(&gSprites[*gUnknown_02022CB8[id]], frameNum); + StartSpriteAnim(&gSprites[*sBerrySpriteIds[id]], animNum); } // Unused -static void sub_8028CD0(u8 spriteId) +static void UnusedSetSpritePos(u8 spriteId) { - gSprites[spriteId].pos1.x = 20 * spriteId + 50; - gSprites[spriteId].pos1.y = 50; + gSprites[spriteId].x = 20 * spriteId + 50; + gSprites[spriteId].y = 50; } // Gamefreak made a mistake there and goes out of bounds for the data array as it holds 8 elements // in turn overwriting sprite's subpriority and subsprites fields. -#if defined(NONMATCHING) || MODERN - #define sKeepPosX data[1] +#ifdef UBFIX + #define sFrozen data[1] #else - #define sKeepPosX data[10] -#endif // NONMATCHING + #define sFrozen data[10] +#endif // UBFIX -static void sub_8028CF4(struct Sprite *sprite) +static void SpriteCB_Cloud(struct Sprite *sprite) { u8 i; - static const u8 array[] = {30, 20}; + static const u8 moveDelays[] = {30, 20}; - if (sprite->sKeepPosX != TRUE) + if (sprite->sFrozen != TRUE) { - for (i = 0; i < 2; i++) + for (i = 0; i < NUM_CLOUDS; i++) { - if (++gUnknown_02022CB0[i][1] > array[i]) + if (++sCloudSpriteIds[i][1] > moveDelays[i]) { - sprite->pos1.x--; - gUnknown_02022CB0[i][1] = 0; + sprite->x--; + sCloudSpriteIds[i][1] = 0; } } } } -static const s16 gUnknown_082FB356[][2] = {{230, 55}, {30, 74}}; +static const s16 sCloudStartCoords[NUM_CLOUDS][2] = +{ + {230, 55}, + { 30, 74} +}; -static void sub_8028D44(void) +static void CreateCloudSprites(void) { u8 i; void *ptr = AllocZeroed(0x400); - struct SpritePalette sprPal = {gDodrioBerryPlatformPal, 6}; + struct SpritePalette pal = {sCloud_Pal, PALTAG_CLOUD}; - LZ77UnCompWram(gDodrioBerryPlatformGfx, ptr); - if (ptr != NULL) + LZ77UnCompWram(sCloud_Gfx, ptr); + if (ptr) { - struct SpriteSheet sprSheet = {ptr, 0x400, 5}; - struct SpriteTemplate sprTemplate = + struct SpriteSheet sheet = {ptr, 0x400, GFXTAG_CLOUD}; + struct SpriteTemplate template = { - .tileTag = 5, - .paletteTag = 6, - .oam = &sOamData_82FB1F8, - .anims = sSpriteAnimTable_82FB2D4, + .tileTag = GFXTAG_CLOUD, + .paletteTag = PALTAG_CLOUD, + .oam = &sOamData_Cloud, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8028CF4, + .callback = SpriteCB_Cloud, }; - LoadSpriteSheet(&sprSheet); - LoadSpritePalette(&sprPal); - for (i = 0; i < 2; i++) + LoadSpriteSheet(&sheet); + LoadSpritePalette(&pal); + for (i = 0; i < NUM_CLOUDS; i++) { - gUnknown_02022CB0[i] = AllocZeroed(4); - *gUnknown_02022CB0[i] = CreateSprite(&sprTemplate, gUnknown_082FB356[i][0], gUnknown_082FB356[i][1], 4); + sCloudSpriteIds[i] = AllocZeroed(4); + *sCloudSpriteIds[i] = CreateSprite(&template, sCloudStartCoords[i][0], sCloudStartCoords[i][1], 4); } } Free(ptr); } -static void sub_8028DFC(void) +static void ResetCloudPos(void) { u8 i; - for (i = 0; i < 2; i++) + for (i = 0; i < NUM_CLOUDS; i++) { - struct Sprite *sprite = &gSprites[*gUnknown_02022CB0[i]]; - sprite->sKeepPosX = TRUE; - sprite->pos1.x = gUnknown_082FB356[i][0]; - sprite->pos1.y = gUnknown_082FB356[i][1]; + struct Sprite *sprite = &gSprites[*sCloudSpriteIds[i]]; + sprite->sFrozen = TRUE; + sprite->x = sCloudStartCoords[i][0]; + sprite->y = sCloudStartCoords[i][1]; } } -static void sub_8028E4C(void) +static void StartCloudMovement(void) { u8 i; - for (i = 0; i < 2; i++) + for (i = 0; i < NUM_CLOUDS; i++) { - struct Sprite *sprite = &gSprites[*gUnknown_02022CB0[i]]; - sprite->sKeepPosX = FALSE; + struct Sprite *sprite = &gSprites[*sCloudSpriteIds[i]]; + sprite->sFrozen = FALSE; } } -static void sub_8028E84(void) +static void FreeCloudSprites(void) { u8 i; - for (i = 0; i < 2; i++) + for (i = 0; i < NUM_CLOUDS; i++) { - struct Sprite *sprite = &gSprites[*gUnknown_02022CB0[i]]; + struct Sprite *sprite = &gSprites[*sCloudSpriteIds[i]]; if (sprite) DestroySprite(sprite); - FREE_AND_SET_NULL(gUnknown_02022CB0[i]); + FREE_AND_SET_NULL(sCloudSpriteIds[i]); } } -static void sub_8028EC8(bool8 invisible) +static void SetCloudInvisibility(bool8 invisible) { u8 i; - for (i = 0; i < 2; i++) - gSprites[*gUnknown_02022CB0[i]].invisible = invisible; + for (i = 0; i < NUM_CLOUDS; i++) + gSprites[*sCloudSpriteIds[i]].invisible = invisible; } -#undef sKeepPosX +#undef sFrozen -static s16 sub_8028F14(u8 arg0, u8 arg1) +static s16 GetDodrioXPos(u8 playerId, u8 numPlayers) { s16 x = 0; - switch (arg1) + switch (numPlayers) { case 1: x = 15; break; case 2: - switch (arg0) + switch (playerId) { case 0: x = 12; break; case 1: x = 18; break; } break; case 3: - switch (arg0) + switch (playerId) { case 0: x = 15; break; case 1: x = 21; break; @@ -3862,7 +4392,7 @@ static s16 sub_8028F14(u8 arg0, u8 arg1) } break; case 4: - switch (arg0) + switch (playerId) { case 0: x = 12; break; case 1: x = 18; break; @@ -3871,7 +4401,7 @@ static s16 sub_8028F14(u8 arg0, u8 arg1) } break; case 5: - switch (arg0) + switch (playerId) { case 0: x = 15; break; case 1: x = 21; break; @@ -3885,78 +4415,79 @@ static s16 sub_8028F14(u8 arg0, u8 arg1) return x * 8; } -static void sub_8028FCC(void) +static void ResetBerryAndStatusBarSprites(void) { u8 i; - for (i = 0; i < 11; i++) + for (i = 0; i < NUM_BERRY_COLUMNS; i++) { - sub_8028BF8(i, TRUE); - sub_8028C7C(i, 1); + SetBerryInvisibility(i, TRUE); + SetBerryYPos(i, 1); } - sub_80289E8(FALSE); + SetStatusBarInvisibility(FALSE); } -static void sub_8028FF8(u8 frameId) +static void LoadWindowFrameGfx(u8 frameId) { - LoadBgTiles(0, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1); + LoadBgTiles(BG_INTERFACE, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1); LoadPalette(GetWindowFrameTilesPal(frameId)->pal, 0xA0, 0x20); } -static void sub_802902C(void) +static void LoadUserWindowFrameGfx(void) { LoadUserWindowBorderGfx_(0, 0xA, 0xB0); } -static void sub_802903C(void) +static void ResetGfxState(void) { - gUnknown_02022CF8->finished = FALSE; - gUnknown_02022CF8->state = 0; - gUnknown_02022CF8->unk3018 = 0; - gUnknown_02022CF8->unk3020 = 0; - gUnknown_02022CF8->unk3024 = 0; + sGfx->finished = FALSE; + sGfx->state = 0; + sGfx->loadState = 0; + sGfx->cursorSelection = 0; + sGfx->playAgainState = PLAY_AGAIN_NONE; } -static void sub_8029074(const struct WindowTemplate *winTempl) +static void DrawYesNoMessageWindow(const struct WindowTemplate *template) { - u8 pal = 0xA; + u8 pal = 10; - FillBgTilemapBufferRect(0, 1, winTempl->tilemapLeft - 1, winTempl->tilemapTop - 1, 1, 1, pal); - FillBgTilemapBufferRect(0, 2, winTempl->tilemapLeft, winTempl->tilemapTop - 1, winTempl->width, 1, pal); - FillBgTilemapBufferRect(0, 3, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop - 1, 1, 1, pal); - FillBgTilemapBufferRect(0, 4, winTempl->tilemapLeft - 1, winTempl->tilemapTop, 1, winTempl->height, pal); - FillBgTilemapBufferRect(0, 6, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop, 1, winTempl->height, pal); - FillBgTilemapBufferRect(0, 7, winTempl->tilemapLeft - 1, winTempl->tilemapTop + winTempl->height, 1, 1, pal); - FillBgTilemapBufferRect(0, 8, winTempl->tilemapLeft, winTempl->tilemapTop + winTempl->height, winTempl->width, 1, pal); - FillBgTilemapBufferRect(0, 9, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop + winTempl->height, 1, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 1, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 2, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 3, template->tilemapLeft + template->width, template->tilemapTop - 1, 1, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 4, template->tilemapLeft - 1, template->tilemapTop, 1, template->height, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 6, template->tilemapLeft + template->width, template->tilemapTop, 1, template->height, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 7, template->tilemapLeft - 1, template->tilemapTop + template->height, 1, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 8, template->tilemapLeft, template->tilemapTop + template->height, template->width, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 9, template->tilemapLeft + template->width, template->tilemapTop + template->height, 1, 1, pal); } -static void sub_8029174(const struct WindowTemplate *winTempl) +static void DrawMessageWindow(const struct WindowTemplate *template) { - u8 pal = 0xB; + u8 pal = 11; - FillBgTilemapBufferRect(0, 10, winTempl->tilemapLeft - 1, winTempl->tilemapTop - 1, 1, 1, pal); - FillBgTilemapBufferRect(0, 11, winTempl->tilemapLeft, winTempl->tilemapTop - 1, winTempl->width, 1, pal); - FillBgTilemapBufferRect(0, 12, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop - 1, 1, 1, pal); - FillBgTilemapBufferRect(0, 13, winTempl->tilemapLeft - 1, winTempl->tilemapTop, 1, winTempl->height, pal); - FillBgTilemapBufferRect(0, 15, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop, 1, winTempl->height, pal); - FillBgTilemapBufferRect(0, 16, winTempl->tilemapLeft - 1, winTempl->tilemapTop + winTempl->height, 1, 1, pal); - FillBgTilemapBufferRect(0, 17, winTempl->tilemapLeft, winTempl->tilemapTop + winTempl->height, winTempl->width, 1, pal); - FillBgTilemapBufferRect(0, 18, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop + winTempl->height, 1, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 10, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 11, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 12, template->tilemapLeft + template->width, template->tilemapTop - 1, 1, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 13, template->tilemapLeft - 1, template->tilemapTop, 1, template->height, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 15, template->tilemapLeft + template->width, template->tilemapTop, 1, template->height, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 16, template->tilemapLeft - 1, template->tilemapTop + template->height, 1, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 17, template->tilemapLeft, template->tilemapTop + template->height, template->width, 1, pal); + FillBgTilemapBufferRect(BG_INTERFACE, 18, template->tilemapLeft + template->width, template->tilemapTop + template->height, 1, 1, pal); } -static void sub_8029274(struct DodrioSubstruct_0160 *ptr) +static void InitGameGfx(struct DodrioGame_Gfx *ptr) { - gUnknown_02022CF8 = ptr; - gUnknown_02022CF8->finished = FALSE; - gUnknown_02022CF8->state = 0; - gUnknown_02022CF8->unk3018 = 0; - gUnknown_02022CF8->unk3020 = 0; - gUnknown_02022CF8->unk3024 = 0; - gUnknown_02022CF8->unk3004 = CreateTask(sub_8029314, 3); - sub_802A72C(sub_8029338); + sGfx = ptr; + sGfx->finished = FALSE; + sGfx->state = 0; + sGfx->loadState = 0; + sGfx->cursorSelection = 0; + sGfx->playAgainState = PLAY_AGAIN_NONE; + sGfx->taskId = CreateTask(Task_TryRunGfxFunc, 3); + SetGfxFunc(LoadGfx); } -static void sub_80292D4(void) +// Unused +static void FreeAllWindowBuffers_(void) { FreeAllWindowBuffers(); } @@ -3968,30 +4499,37 @@ struct WinCoords u8 top; }; +enum { + COLORID_GRAY, + COLORID_RED, + COLORID_BLUE, + COLORID_GREEN, // Unused +}; + static const u8 sTextColorTable[][3] = { - {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, - {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED}, - {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, - {TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN}, + [COLORID_GRAY] = {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, + [COLORID_RED] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED}, + [COLORID_BLUE] = {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, + [COLORID_GREEN] = {TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN}, }; -static const struct WinCoords gUnknown_082FB38C[] = {{12, 6}}; -static const struct WinCoords gUnknown_082FB390[] = {{9, 10}, {15, 6}}; -static const struct WinCoords gUnknown_082FB398[] = {{12, 6}, {18, 10}, {6, 10}}; -static const struct WinCoords gUnknown_082FB3A4[] = {{9, 10}, {15, 6}, {21, 10}, {3, 6}}; -static const struct WinCoords gUnknown_082FB3B4[] = {{12, 6}, {18, 10}, {23, 6}, {1, 6}, {6, 10}}; +static const struct WinCoords sNameWindowCoords_1Player[] = {{12, 6}}; +static const struct WinCoords sNameWindowCoords_2Players[] = {{9, 10}, {15, 6}}; +static const struct WinCoords sNameWindowCoords_3Players[] = {{12, 6}, {18, 10}, {6, 10}}; +static const struct WinCoords sNameWindowCoords_4Players[] = {{9, 10}, {15, 6}, {21, 10}, {3, 6}}; +static const struct WinCoords sNameWindowCoords_5Players[] = {{12, 6}, {18, 10}, {23, 6}, {1, 6}, {6, 10}}; -static const struct WinCoords *const gUnknown_082FB3C8[] = +static const struct WinCoords *const sNameWindowCoords[MAX_RFU_PLAYERS] = { - gUnknown_082FB38C, - gUnknown_082FB390, - gUnknown_082FB398, - gUnknown_082FB3A4, - gUnknown_082FB3B4, + sNameWindowCoords_1Player, + sNameWindowCoords_2Players, + sNameWindowCoords_3Players, + sNameWindowCoords_4Players, + sNameWindowCoords_5Players, }; -static const u8 *const gUnknown_082FB3DC[] = +static const u8 *const sRankingTexts[MAX_RFU_PLAYERS] = { gText_1Colon, gText_2Colon, @@ -4000,625 +4538,640 @@ static const u8 *const gUnknown_082FB3DC[] = gText_5Colon, }; -static const u16 gUnknown_082FB3F0[] = {92, 132, 172, 212}; -static const u16 gUnknown_082FB3F8[] = {33, 49, 65, 81, 97}; -static const u16 gUnknown_082FB402[] = {17, 33, 49, 65, 81}; +static const u16 sResultsXCoords[] = {92, 132, 172, 212}; +static const u16 sResultsYCoords[] = {33, 49, 65, 81, 97}; +static const u16 sRankingYCoords[] = {17, 33, 49, 65, 81}; struct { u8 id; void (*func)(void); -} const gUnknown_082FB40C[] = +} const sGfxFuncs[] = { - {0, sub_8029338}, - {1, sub_8029440}, - {2, sub_802988C}, - {3, sub_802A010}, - {4, sub_802A380}, - {5, sub_802A454}, - {6, sub_802A534}, - {7, sub_802A588}, - {8, sub_802A6FC}, - {9, nullsub_16}, + {GFXFUNC_LOAD, LoadGfx}, // Element not used, LoadGfx is passed directly to SetGfxFunc + {GFXFUNC_SHOW_NAMES, ShowNames}, + {GFXFUNC_SHOW_RESULTS, ShowResults}, + {GFXFUNC_MSG_PLAY_AGAIN, Msg_WantToPlayAgain}, + {GFXFUNC_MSG_SAVING, Msg_SavingDontTurnOff}, + {GFXFUNC_MSG_COMM_STANDBY, Msg_CommunicationStandby}, + {GFXFUNC_ERASE_MSG, EraseMessage}, + {GFXFUNC_MSG_PLAYER_DROPPED, Msg_SomeoneDroppedOut}, + {GFXFUNC_STOP, StopGfxFuncs}, + {GFXFUNC_IDLE, GfxIdle}, }; -static void sub_80292E0(u8 arg0) +static void SetGfxFuncById(u8 funcId) { u8 i; - for (i = 0; i < 10; i++) + for (i = 0; i < ARRAY_COUNT(sGfxFuncs); i++) { - if (gUnknown_082FB40C[i].id == arg0) - sub_802A72C(gUnknown_082FB40C[i].func); + if (sGfxFuncs[i].id == funcId) + SetGfxFunc(sGfxFuncs[i].func); } } -static void sub_8029314(u8 taskId) +static void Task_TryRunGfxFunc(u8 taskId) { - if (!gUnknown_02022CF8->finished) - sub_802A75C()(); + // Continue calling function until it + // has reached its finished state. + // Another will not be called until + // readied by SetGfxFunc + if (!sGfx->finished) + GetGfxFunc()(); } -static void sub_8029338(void) +static void LoadGfx(void) { - switch (gUnknown_02022CF8->state) + switch (sGfx->state) { case 0: - sub_802A7A8(); - gUnknown_02022CF8->state++; + InitBgs(); + sGfx->state++; break; case 1: - if (sub_802A8E8() == TRUE) - gUnknown_02022CF8->state++; + if (LoadBgGfx() == TRUE) + sGfx->state++; break; case 2: - CopyToBgTilemapBuffer(3, gDodrioBerryBgTilemap1, 0, 0); - CopyToBgTilemapBuffer(1, gDodrioBerryBgTilemap2Left, 0, 0); - CopyToBgTilemapBuffer(2, gDodrioBerryBgTilemap2Right, 0, 0); - CopyBgTilemapBufferToVram(3); - CopyBgTilemapBufferToVram(1); - CopyBgTilemapBufferToVram(2); - gUnknown_02022CF8->state++; + CopyToBgTilemapBuffer(BG_SCENERY, sBg_Tilemap, 0, 0); + CopyToBgTilemapBuffer(BG_TREE_LEFT, sTreeBorderLeft_Tilemap, 0, 0); + CopyToBgTilemapBuffer(BG_TREE_RIGHT, sTreeBorderRight_Tilemap, 0, 0); + CopyBgTilemapBufferToVram(BG_SCENERY); + CopyBgTilemapBufferToVram(BG_TREE_LEFT); + CopyBgTilemapBufferToVram(BG_TREE_RIGHT); + sGfx->state++; break; case 3: - ShowBg(0); - ShowBg(3); - ShowBg(1); - ShowBg(2); - gUnknown_02022CF8->state++; + ShowBg(BG_INTERFACE); + ShowBg(BG_SCENERY); + ShowBg(BG_TREE_LEFT); + ShowBg(BG_TREE_RIGHT); + sGfx->state++; break; case 4: - sub_8028FF8(gSaveBlock2Ptr->optionsWindowFrameType); - sub_802902C(); - gUnknown_02022CF8->state++; + LoadWindowFrameGfx(gSaveBlock2Ptr->optionsWindowFrameType); + LoadUserWindowFrameGfx(); + sGfx->state++; break; default: - gUnknown_02022CF8->finished = TRUE; + sGfx->finished = TRUE; break; } } -static void sub_8029440(void) +static void ShowNames(void) { - u8 i, playersCount, id, colorsId, *name; + u8 i, numPlayers, playerId, colorsId, *name; u32 left; struct WindowTemplate window; - const struct WinCoords *ptr; + const struct WinCoords *coords; - switch (gUnknown_02022CF8->state) + switch (sGfx->state) { case 0: - playersCount = sub_8027650(); - ptr = gUnknown_082FB3C8[playersCount - 1]; - window.bg = 0; + numPlayers = GetNumPlayers(); + coords = sNameWindowCoords[numPlayers - 1]; + window.bg = BG_INTERFACE; window.width = 7; window.height = 2; - window.paletteNum = 0xD; + window.paletteNum = 13; window.baseBlock = 0x13; - for (i = 0; i < playersCount; ptr++, i++) + for (i = 0; i < numPlayers; coords++, i++) { - colorsId = 0; - id = sub_8027A48(i); - left = (56 - GetStringWidth(1, sub_8027660(id), -1)) / 2u; - window.tilemapLeft = ptr->left; - window.tilemapTop = ptr->top; - gUnknown_02022CF8->unk3008[i] = AddWindow(&window); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[i]); - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[i], PIXEL_FILL(1)); - if (id == GetMultiplayerId()) - colorsId = 2; - name = sub_8027660(id); - AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[i], 1, left, 1, sTextColorTable[colorsId], -1, name); - CopyWindowToVram(gUnknown_02022CF8->unk3008[i], 2); + colorsId = COLORID_GRAY; + playerId = GetPlayerIdByPos(i); + left = (56 - GetStringWidth(1, GetPlayerName(playerId), -1)) / 2u; + window.tilemapLeft = coords->left; + window.tilemapTop = coords->top; + sGfx->windowIds[i] = AddWindow(&window); + ClearWindowTilemap(sGfx->windowIds[i]); + FillWindowPixelBuffer(sGfx->windowIds[i], PIXEL_FILL(1)); + if (playerId == GetMultiplayerId()) + colorsId = COLORID_BLUE; + name = GetPlayerName(playerId); + AddTextPrinterParameterized3(sGfx->windowIds[i], 1, left, 1, sTextColorTable[colorsId], -1, name); + CopyWindowToVram(sGfx->windowIds[i], 2); window.baseBlock += 0xE; - sub_8029174(&window); + DrawMessageWindow(&window); } - gUnknown_02022CF8->state++; + sGfx->state++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - playersCount = sub_8027650(); - for (i = 0; i < playersCount; i++) - PutWindowTilemap(gUnknown_02022CF8->unk3008[i]); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->state++; + numPlayers = GetNumPlayers(); + for (i = 0; i < numPlayers; i++) + PutWindowTilemap(sGfx->windowIds[i]); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->state++; } break; default: - if (++gUnknown_02022CF8->state > 180) + if (++sGfx->state > 180) { - playersCount = sub_8027650(); - for (i = 0; i < playersCount; i++) + numPlayers = GetNumPlayers(); + for (i = 0; i < numPlayers; i++) { - ClearWindowTilemap(gUnknown_02022CF8->unk3008[i]); - RemoveWindow(gUnknown_02022CF8->unk3008[i]); + ClearWindowTilemap(sGfx->windowIds[i]); + RemoveWindow(sGfx->windowIds[i]); } - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->finished = TRUE; + FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->finished = TRUE; } break; } } -static void sub_80296A8(u8 playersCount_) +static void PrintRankedScores(u8 numPlayers_) { - u8 i, r8 = 0, r6 = 0; - u8 playersCount = playersCount_; // Pointless variable, I know, but it's needed to match. + u8 i, ranking = 0, rankedPlayers = 0; + u8 numPlayers = numPlayers_; // Needed to match u8 *name; u32 x, numWidth; u8 numString[32]; - u8 array[5] = {0, 1, 2, 3, 4}; - struct DodrioSubstruct_3308 temp, structArray[5]; + u8 playersByRanking[MAX_RFU_PLAYERS] = {0, 1, 2, 3, 4}; + struct DodrioGame_ScoreResults temp, scoreResults[MAX_RFU_PLAYERS]; - for (i = 0; i < playersCount; i++) + // Get all players scores and rankings + for (i = 0; i < numPlayers; i++) { - array[i] = i; - sub_802793C(&temp, i); - structArray[i] = temp; + playersByRanking[i] = i; + GetScoreResults(&temp, i); + scoreResults[i] = temp; } - if (sub_8027748() != 0) + // Sort player ids by ranking + if (GetHighestScore() != 0) { do { - for (i = 0; i < playersCount; i++) + for (i = 0; i < numPlayers; i++) { - if (structArray[i].unk0 == r8) + if (scoreResults[i].ranking == ranking) { - array[r6] = i; - r6++; + playersByRanking[rankedPlayers] = i; + rankedPlayers++; } } - r8 = r6; - } while (r6 < playersCount); + ranking = rankedPlayers; + } while (rankedPlayers < numPlayers); } - for (i = 0; i < playersCount; i++) + // Put any player with a score of 0 at lowest ranking + for (i = 0; i < numPlayers; i++) { - if (structArray[i].unk4 == 0) - structArray[i].unk0 = playersCount - 1; + if (scoreResults[i].score == 0) + scoreResults[i].ranking = numPlayers - 1; } + // Print text x = 216 - GetStringWidth(1, gText_SpacePoints, 0); - for (i = 0; i < playersCount; i++) + for (i = 0; i < numPlayers; i++) { - u8 colorsId = 0; - u8 id = array[i]; - u32 points = structArray[id].unk4; + u8 colorsId = COLORID_GRAY; + u8 playerId = playersByRanking[i]; + u32 points = scoreResults[playerId].score; - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gUnknown_082FB3DC[structArray[id].unk0], 8, gUnknown_082FB402[i], -1, NULL); - if (id == GetMultiplayerId()) - colorsId = 2; - name = sub_8027660(id); - AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, 28, gUnknown_082FB402[i], sTextColorTable[colorsId], -1, name); + AddTextPrinterParameterized(sGfx->windowIds[1], 1, sRankingTexts[scoreResults[playerId].ranking], 8, sRankingYCoords[i], -1, NULL); + if (playerId == GetMultiplayerId()) + colorsId = COLORID_BLUE; + name = GetPlayerName(playerId); + AddTextPrinterParameterized3(sGfx->windowIds[1], 1, 28, sRankingYCoords[i], sTextColorTable[colorsId], -1, name); ConvertIntToDecimalStringN(numString, points, STR_CONV_MODE_LEFT_ALIGN, 7); numWidth = GetStringWidth(1, numString, -1); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, numString, x - numWidth, gUnknown_082FB402[i], -1, NULL); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_SpacePoints, x, gUnknown_082FB402[i], -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[1], 1, numString, x - numWidth, sRankingYCoords[i], -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[1], 1, gText_SpacePoints, x, sRankingYCoords[i], -1, NULL); } } -static void sub_802988C(void) +static void ShowResults(void) { - u8 i, j, itemGiveRet, playersCount = sub_8027650(); + u8 i, j, prizeState, numPlayers = GetNumPlayers(); u8 *name; u32 strWidth, x; - switch (gUnknown_02022CF8->state) + switch (sGfx->state) { case 0: - sub_802784C(); - gUnknown_02022CF8->unk301C = 0; - gUnknown_02022CF8->state++; + SetScoreResults(); + sGfx->timer = 0; + sGfx->state++; break; case 1: - gUnknown_02022CF8->unk3008[0] = AddWindow(&gUnknown_082F7BBC[0]); - gUnknown_02022CF8->unk3008[1] = AddWindow(&gUnknown_082F7BBC[1]); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); - sub_8029174(&gUnknown_082F7BBC[0]); - sub_8029174(&gUnknown_082F7BBC[1]); - gUnknown_02022CF8->state++; + sGfx->windowIds[0] = AddWindow(&sWindowTemplates_Results[0]); + sGfx->windowIds[1] = AddWindow(&sWindowTemplates_Results[1]); + ClearWindowTilemap(sGfx->windowIds[0]); + ClearWindowTilemap(sGfx->windowIds[1]); + DrawMessageWindow(&sWindowTemplates_Results[0]); + DrawMessageWindow(&sWindowTemplates_Results[1]); + sGfx->state++; break; case 2: - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); + FillWindowPixelBuffer(sGfx->windowIds[0], PIXEL_FILL(1)); + FillWindowPixelBuffer(sGfx->windowIds[1], PIXEL_FILL(1)); strWidth = GetStringWidth(1, gText_BerryPickingResults, -1); x = (224 - strWidth) / 2; - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_BerryPickingResults, x, 1, -1, NULL); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_10P30P50P50P, 68, 17, -1, NULL); - for (i = 0; i < playersCount; i++) + AddTextPrinterParameterized(sGfx->windowIds[0], 1, gText_BerryPickingResults, x, 1, -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[1], 1, gText_10P30P50P50P, 68, 17, -1, NULL); + for (i = 0; i < numPlayers; i++) { - u8 colorsId = 0; + u8 colorsId = COLORID_GRAY; if (i == GetMultiplayerId()) - colorsId = 2; + colorsId = COLORID_BLUE; - name = sub_8027660(i); - AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, 0, gUnknown_082FB3F8[i], sTextColorTable[colorsId], -1, name); + name = GetPlayerName(i); + AddTextPrinterParameterized3(sGfx->windowIds[1], 1, 0, sResultsYCoords[i], sTextColorTable[colorsId], -1, name); for (j = 0; j < 4; j++) { u32 width; - u16 result1 = Min(sub_80276A0(i, j), 9999); - u16 result2 = Min(sub_802778C(j), 9999); + u16 berriesPicked = Min(GetBerryResult(i, j), MAX_BERRIES); + u16 maxBerriesPicked = Min(GetHighestBerryResult(j), MAX_BERRIES); - ConvertIntToDecimalStringN(gStringVar4, result1, STR_CONV_MODE_LEFT_ALIGN, 4); + ConvertIntToDecimalStringN(gStringVar4, berriesPicked, STR_CONV_MODE_LEFT_ALIGN, 4); width = GetStringWidth(1, gStringVar4, -1); - if (result2 == result1 && result2 != 0) - AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, gUnknown_082FB3F0[j] - width, gUnknown_082FB3F8[i], sTextColorTable[1], -1, gStringVar4); + + // If player got the most of a berry type, highlight their number in red + if (maxBerriesPicked == berriesPicked && maxBerriesPicked != 0) + AddTextPrinterParameterized3(sGfx->windowIds[1], 1, sResultsXCoords[j] - width, sResultsYCoords[i], sTextColorTable[COLORID_RED], -1, gStringVar4); else - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gStringVar4, gUnknown_082FB3F0[j] - width, gUnknown_082FB3F8[i], -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[1], 1, gStringVar4, sResultsXCoords[j] - width, sResultsYCoords[i], -1, NULL); } } - CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); - CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 2); - gUnknown_02022CF8->state++; + CopyWindowToVram(sGfx->windowIds[0], 2); + CopyWindowToVram(sGfx->windowIds[1], 2); + sGfx->state++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); - PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); + PutWindowTilemap(sGfx->windowIds[0]); + PutWindowTilemap(sGfx->windowIds[1]); } - CopyBgTilemapBufferToVram(0); - sub_8028C30(FALSE); - gUnknown_02022CF8->state++; + CopyBgTilemapBufferToVram(BG_INTERFACE); + SetBerryIconsInvisibility(FALSE); + sGfx->state++; break; case 4: - if (++gUnknown_02022CF8->unk301C >= 30 && JOY_NEW(A_BUTTON)) + if (++sGfx->timer >= 30 && JOY_NEW(A_BUTTON)) { - gUnknown_02022CF8->unk301C = 0; + sGfx->timer = 0; PlaySE(SE_SELECT); - sub_8028C30(TRUE); - gUnknown_02022CF8->state++; + SetBerryIconsInvisibility(TRUE); + sGfx->state++; } break; case 5: - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); + FillWindowPixelBuffer(sGfx->windowIds[0], PIXEL_FILL(1)); + FillWindowPixelBuffer(sGfx->windowIds[1], PIXEL_FILL(1)); strWidth = GetStringWidth(1, gText_AnnouncingRankings, -1); x = (224 - strWidth) / 2; - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_AnnouncingRankings, x, 1, -1, NULL); - gUnknown_02022CF8->state++; + AddTextPrinterParameterized(sGfx->windowIds[0], 1, gText_AnnouncingRankings, x, 1, -1, NULL); + sGfx->state++; break; case 6: - sub_80296A8(playersCount); - CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); - CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 2); - gUnknown_02022CF8->state++; + PrintRankedScores(numPlayers); + CopyWindowToVram(sGfx->windowIds[0], 2); + CopyWindowToVram(sGfx->windowIds[1], 2); + sGfx->state++; break; case 7: if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); - PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); + PutWindowTilemap(sGfx->windowIds[0]); + PutWindowTilemap(sGfx->windowIds[1]); } - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->state++; + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->state++; break; case 8: - if (++gUnknown_02022CF8->unk301C >= 30 && JOY_NEW(A_BUTTON)) + if (++sGfx->timer >= 30 && JOY_NEW(A_BUTTON)) { - gUnknown_02022CF8->unk301C = 0; + sGfx->timer = 0; PlaySE(SE_SELECT); - if (sub_8027748() < 3000) + if (GetHighestScore() < PRIZE_SCORE) { - gUnknown_02022CF8->state = 127; + sGfx->state = 127; // Skip to end, past giving prize } else { StopMapMusic(); - gUnknown_02022CF8->state++; + sGfx->state++; } - FillBgTilemapBufferRect_Palette0(0, 0, 0, 5, 30, 15); - RemoveWindow(gUnknown_02022CF8->unk3008[1]); - gUnknown_02022CF8->unk3008[1] = AddWindow(&gUnknown_082F7BCC); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); - sub_8029174(&gUnknown_082F7BCC); + FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 5, 30, 15); + RemoveWindow(sGfx->windowIds[1]); + sGfx->windowIds[1] = AddWindow(&sWindowTemplate_Prize); + ClearWindowTilemap(sGfx->windowIds[1]); + DrawMessageWindow(&sWindowTemplate_Prize); } break; case 9: PlayNewMapMusic(MUS_LEVEL_UP); - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); + FillWindowPixelBuffer(sGfx->windowIds[0], PIXEL_FILL(1)); + FillWindowPixelBuffer(sGfx->windowIds[1], PIXEL_FILL(1)); strWidth = GetStringWidth(1, gText_AnnouncingPrizes, -1); x = (224 - strWidth) / 2; - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_AnnouncingPrizes, x, 1, -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[0], 1, gText_AnnouncingPrizes, x, 1, -1, NULL); DynamicPlaceholderTextUtil_Reset(); - CopyItemName(sub_802762C(), gStringVar1); + CopyItemName(GetPrizeItemId(), gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_FirstPlacePrize); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gStringVar4, 0, 1, -1, NULL); - itemGiveRet = sub_80279C8(); - if (itemGiveRet != 0 && itemGiveRet != 3) + AddTextPrinterParameterized(sGfx->windowIds[1], 1, gStringVar4, 0, 1, -1, NULL); + prizeState = TryGivePrize(); + if (prizeState != PRIZE_RECEIVED && prizeState != NO_PRIZE) { DynamicPlaceholderTextUtil_Reset(); - CopyItemName(sub_802762C(), gStringVar1); + CopyItemName(GetPrizeItemId(), gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); - if (itemGiveRet == 2) + if (prizeState == PRIZE_NO_ROOM) DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_CantHoldAnyMore); - else if (itemGiveRet == 1) + else if (prizeState == PRIZE_FILLED_BAG) DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_FilledStorageSpace); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gStringVar4, 0, 41, -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[1], 1, gStringVar4, 0, 41, -1, NULL); } - CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); - CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 2); - gUnknown_02022CF8->state++; + CopyWindowToVram(sGfx->windowIds[0], 2); + CopyWindowToVram(sGfx->windowIds[1], 2); + sGfx->state++; break; case 10: if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); - PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); + PutWindowTilemap(sGfx->windowIds[0]); + PutWindowTilemap(sGfx->windowIds[1]); } - CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(BG_INTERFACE); FadeOutAndFadeInNewMapMusic(MUS_RG_VICTORY_WILD, 20, 10); - gUnknown_02022CF8->state++; + sGfx->state++; break; case 11: - if (++gUnknown_02022CF8->unk301C >= 30 && JOY_NEW(A_BUTTON)) + if (++sGfx->timer >= 30 && JOY_NEW(A_BUTTON)) { - gUnknown_02022CF8->unk301C = 0; + sGfx->timer = 0; PlaySE(SE_SELECT); - gUnknown_02022CF8->state++; + sGfx->state++; } break; default: - ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); - RemoveWindow(gUnknown_02022CF8->unk3008[0]); - RemoveWindow(gUnknown_02022CF8->unk3008[1]); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->finished = TRUE; + ClearWindowTilemap(sGfx->windowIds[0]); + ClearWindowTilemap(sGfx->windowIds[1]); + RemoveWindow(sGfx->windowIds[0]); + RemoveWindow(sGfx->windowIds[1]); + FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->finished = TRUE; break; } } -static void sub_802A010(void) +static void Msg_WantToPlayAgain(void) { u8 y; - switch (gUnknown_02022CF8->state) + switch (sGfx->state) { case 0: - gUnknown_02022CF8->unk3008[0] = AddWindow(&gUnknown_082F7BD4[0]); - gUnknown_02022CF8->unk3008[1] = AddWindow(&gUnknown_082F7BD4[1]); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); - sub_8029174(&gUnknown_082F7BD4[0]); - sub_8029074(&gUnknown_082F7BD4[1]); - gUnknown_02022CF8->state++; - gUnknown_02022CF8->unk3020 = 0; - gUnknown_02022CF8->unk3024 = 0; + // Create windows + sGfx->windowIds[WIN_PLAY_AGAIN] = AddWindow(&sWindowTemplates_PlayAgain[WIN_PLAY_AGAIN]); + sGfx->windowIds[WIN_YES_NO] = AddWindow(&sWindowTemplates_PlayAgain[WIN_YES_NO]); + ClearWindowTilemap(sGfx->windowIds[WIN_PLAY_AGAIN]); + ClearWindowTilemap(sGfx->windowIds[WIN_YES_NO]); + DrawMessageWindow(&sWindowTemplates_PlayAgain[WIN_PLAY_AGAIN]); + DrawYesNoMessageWindow(&sWindowTemplates_PlayAgain[WIN_YES_NO]); + sGfx->state++; + sGfx->cursorSelection = PLAY_AGAIN_NONE; + sGfx->playAgainState = PLAY_AGAIN_NONE; break; case 1: - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_WantToPlayAgain, 0, 5, -1, NULL); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_Yes, 8, 1, -1, NULL); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_No, 8, 17, -1, NULL); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_SelectorArrow2, 0, 1, -1, NULL); - CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); - CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 2); - gUnknown_02022CF8->state++; + // Print text + FillWindowPixelBuffer(sGfx->windowIds[WIN_PLAY_AGAIN], PIXEL_FILL(1)); + FillWindowPixelBuffer(sGfx->windowIds[WIN_YES_NO], PIXEL_FILL(1)); + AddTextPrinterParameterized(sGfx->windowIds[WIN_PLAY_AGAIN], 1, gText_WantToPlayAgain, 0, 5, -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], 1, gText_Yes, 8, 1, -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], 1, gText_No, 8, 17, -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], 1, gText_SelectorArrow2, 0, 1, -1, NULL); + CopyWindowToVram(sGfx->windowIds[WIN_PLAY_AGAIN], 2); + CopyWindowToVram(sGfx->windowIds[WIN_YES_NO], 2); + sGfx->state++; break; case 2: + // Draw windows if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); - PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); + PutWindowTilemap(sGfx->windowIds[WIN_PLAY_AGAIN]); + PutWindowTilemap(sGfx->windowIds[WIN_YES_NO]); } - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->state++; + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->state++; break; case 3: - y = gUnknown_02022CF8->unk3020; - if (y == 0) - y = 1; - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_Yes, 8, 1, -1, NULL); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_No, 8, 17, -1, NULL); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_SelectorArrow2, 0, ((y - 1) * 16) + 1, -1, NULL); - CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 3); + // Handle input + y = sGfx->cursorSelection; + if (y == PLAY_AGAIN_NONE) + y = PLAY_AGAIN_YES; + FillWindowPixelBuffer(sGfx->windowIds[WIN_YES_NO], PIXEL_FILL(1)); + AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], 1, gText_Yes, 8, 1, -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], 1, gText_No, 8, 17, -1, NULL); + AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], 1, gText_SelectorArrow2, 0, ((y - 1) * 16) + 1, -1, NULL); + CopyWindowToVram(sGfx->windowIds[WIN_YES_NO], 3); + // Increment state only if A or B button have been pressed. if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - if (gUnknown_02022CF8->unk3020 == 0) - gUnknown_02022CF8->unk3020 = 1; - gUnknown_02022CF8->state++; + if (sGfx->cursorSelection == PLAY_AGAIN_NONE) + sGfx->cursorSelection = PLAY_AGAIN_YES; + sGfx->state++; } else if (JOY_NEW(DPAD_UP | DPAD_DOWN)) { PlaySE(SE_SELECT); - switch (gUnknown_02022CF8->unk3020) + switch (sGfx->cursorSelection) { - case 0: - gUnknown_02022CF8->unk3020 = 2; + case PLAY_AGAIN_NONE: + sGfx->cursorSelection = PLAY_AGAIN_NO; break; - case 1: - gUnknown_02022CF8->unk3020 = 2; + case PLAY_AGAIN_YES: + sGfx->cursorSelection = PLAY_AGAIN_NO; break; - case 2: - gUnknown_02022CF8->unk3020 = 1; + case PLAY_AGAIN_NO: + sGfx->cursorSelection = PLAY_AGAIN_YES; break; } } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - gUnknown_02022CF8->unk3020 = 2; - gUnknown_02022CF8->state++; + sGfx->cursorSelection = PLAY_AGAIN_NO; + sGfx->state++; } break; default: - gUnknown_02022CF8->unk3024 = gUnknown_02022CF8->unk3020; - ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); - RemoveWindow(gUnknown_02022CF8->unk3008[0]); - RemoveWindow(gUnknown_02022CF8->unk3008[1]); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->finished = TRUE; + sGfx->playAgainState = sGfx->cursorSelection; + ClearWindowTilemap(sGfx->windowIds[WIN_PLAY_AGAIN]); + ClearWindowTilemap(sGfx->windowIds[WIN_YES_NO]); + RemoveWindow(sGfx->windowIds[WIN_PLAY_AGAIN]); + RemoveWindow(sGfx->windowIds[WIN_YES_NO]); + FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->finished = TRUE; break; } } -static void sub_802A380(void) +static void Msg_SavingDontTurnOff(void) { - switch (gUnknown_02022CF8->state) + switch (sGfx->state) { case 0: DrawDialogueFrame(0, FALSE); AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3); - gUnknown_02022CF8->state++; + sGfx->state++; break; case 1: CopyWindowToVram(0, 3); - gUnknown_02022CF8->state++; + sGfx->state++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { CreateTask(Task_LinkSave, 0); - gUnknown_02022CF8->state++; + sGfx->state++; } break; case 3: if (!FuncIsActiveTask(Task_LinkSave)) - gUnknown_02022CF8->state++; + sGfx->state++; break; default: - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->finished = TRUE; + FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->finished = TRUE; break; } } -static void sub_802A454(void) +static void Msg_CommunicationStandby(void) { - switch (gUnknown_02022CF8->state) + switch (sGfx->state) { case 0: - gUnknown_02022CF8->unk3008[0] = AddWindow(&gUnknown_082F7BEC); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); - sub_8029174(&gUnknown_082F7BEC); - gUnknown_02022CF8->state++; + sGfx->windowIds[0] = AddWindow(&sWindowTemplate_CommStandby); + ClearWindowTilemap(sGfx->windowIds[0]); + DrawMessageWindow(&sWindowTemplate_CommStandby); + sGfx->state++; break; case 1: - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_CommunicationStandby3, 0, 5, -1, NULL); - CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); - gUnknown_02022CF8->state++; + FillWindowPixelBuffer(sGfx->windowIds[0], PIXEL_FILL(1)); + AddTextPrinterParameterized(sGfx->windowIds[0], 1, gText_CommunicationStandby3, 0, 5, -1, NULL); + CopyWindowToVram(sGfx->windowIds[0], 2); + sGfx->state++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) - PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->state++; + PutWindowTilemap(sGfx->windowIds[0]); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->state++; break; default: - gUnknown_02022CF8->finished = TRUE; + sGfx->finished = TRUE; break; } } -static void sub_802A534(void) +static void EraseMessage(void) { - ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); - RemoveWindow(gUnknown_02022CF8->unk3008[0]); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->finished = TRUE; + ClearWindowTilemap(sGfx->windowIds[0]); + RemoveWindow(sGfx->windowIds[0]); + FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->finished = TRUE; } -static void sub_802A588(void) +static void Msg_SomeoneDroppedOut(void) { - switch (gUnknown_02022CF8->state) + switch (sGfx->state) { case 0: - gUnknown_02022CF8->unk3008[0] = AddWindow(&gUnknown_082F7BE4); - ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); - sub_8029174(&gUnknown_082F7BE4); - gUnknown_02022CF8->state++; - gUnknown_02022CF8->unk301C = 0; - gUnknown_02022CF8->unk3020 = 0; - gUnknown_02022CF8->unk3024 = 0; + sGfx->windowIds[0] = AddWindow(&sWindowTemplate_DroppedOut); + ClearWindowTilemap(sGfx->windowIds[0]); + DrawMessageWindow(&sWindowTemplate_DroppedOut); + sGfx->state++; + sGfx->timer = 0; + sGfx->cursorSelection = 0; + sGfx->playAgainState = PLAY_AGAIN_NONE; break; case 1: - FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_SomeoneDroppedOut, 0, 5, -1, NULL); - CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); - gUnknown_02022CF8->state++; + FillWindowPixelBuffer(sGfx->windowIds[0], PIXEL_FILL(1)); + AddTextPrinterParameterized(sGfx->windowIds[0], 1, gText_SomeoneDroppedOut, 0, 5, -1, NULL); + CopyWindowToVram(sGfx->windowIds[0], 2); + sGfx->state++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) - PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->state++; + PutWindowTilemap(sGfx->windowIds[0]); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->state++; break; case 3: - if (++gUnknown_02022CF8->unk301C >= 120) - gUnknown_02022CF8->state++; + if (++sGfx->timer >= 120) + sGfx->state++; break; default: - gUnknown_02022CF8->unk3024 = 5; - ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); - RemoveWindow(gUnknown_02022CF8->unk3008[0]); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_02022CF8->finished = TRUE; + sGfx->playAgainState = PLAY_AGAIN_DROPPED; + ClearWindowTilemap(sGfx->windowIds[0]); + RemoveWindow(sGfx->windowIds[0]); + FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sGfx->finished = TRUE; break; } } -static void sub_802A6FC(void) +static void StopGfxFuncs(void) { - DestroyTask(gUnknown_02022CF8->unk3004); - gUnknown_02022CF8->finished = TRUE; + DestroyTask(sGfx->taskId); + sGfx->finished = TRUE; } -static void nullsub_16(void) +static void GfxIdle(void) { } -static void sub_802A72C(void (*func)(void)) +static void SetGfxFunc(void (*func)(void)) { - gUnknown_02022CF8->state = 0; - gUnknown_02022CF8->finished = FALSE; - gUnknown_02022CF8->unk3028 = func; + sGfx->state = 0; + sGfx->finished = FALSE; + sGfx->func = func; } -static void (*sub_802A75C(void))(void) +static void (*GetGfxFunc(void))(void) { - return gUnknown_02022CF8->unk3028; + return sGfx->func; } -static bool32 sub_802A770(void) +static bool32 IsGfxFuncActive(void) { - if (gUnknown_02022CF8->finished == TRUE) + if (sGfx->finished == TRUE) return FALSE; else return TRUE; } -static u8 sub_802A794(void) +static u8 GetPlayAgainState(void) { - return gUnknown_02022CF8->unk3024; + return sGfx->playAgainState; } -static void sub_802A7A8(void) +static void InitBgs(void) { DmaClearLarge16(3, (void *)VRAM, VRAM_SIZE, 0x1000); DmaClear32(3,(void *)OAM, OAM_SIZE); DmaClear16(3, (void *)PLTT, PLTT_SIZE); SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_082F7BA4, ARRAY_COUNT(gUnknown_082F7BA4)); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -4630,26 +5183,26 @@ static void sub_802A7A8(void) InitStandardTextBoxWindows(); InitTextBoxGfxAndPrinters(); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - SetBgTilemapBuffer(3, gUnknown_02022CF8->tilemapBuffers[0]); - SetBgTilemapBuffer(1, gUnknown_02022CF8->tilemapBuffers[1]); - SetBgTilemapBuffer(2, gUnknown_02022CF8->tilemapBuffers[2]); + SetBgTilemapBuffer(BG_SCENERY, sGfx->tilemapBuffers[0]); + SetBgTilemapBuffer(BG_TREE_LEFT, sGfx->tilemapBuffers[1]); + SetBgTilemapBuffer(BG_TREE_RIGHT, sGfx->tilemapBuffers[2]); } -static bool32 sub_802A8E8(void) +static bool32 LoadBgGfx(void) { - switch (gUnknown_02022CF8->unk3018) + switch (sGfx->loadState) { case 0: - LoadPalette(gDodrioBerryBgPal1, 0, sizeof(gDodrioBerryBgPal1)); + LoadPalette(sBg_Pal, 0, sizeof(sBg_Pal)); break; case 1: ResetTempTileDataBuffers(); break; case 2: - DecompressAndCopyTileDataToVram(3, gDodrioBerryBgGfx1, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Gfx, 0, 0, 0); break; case 3: - DecompressAndCopyTileDataToVram(1, gDodrioBerryBgGfx2, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_TREE_LEFT, sTreeBorder_Gfx, 0, 0, 0); break; case 4: if (FreeTempTileDataBuffersIfPossible() == TRUE) @@ -4659,10 +5212,10 @@ static bool32 sub_802A8E8(void) LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); break; default: - gUnknown_02022CF8->unk3018 = 0; + sGfx->loadState = 0; return TRUE; } - gUnknown_02022CF8->unk3018++; + sGfx->loadState++; return FALSE; } diff --git a/src/easy_chat.c b/src/easy_chat.c index 2590eea1a3..ad583839d7 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -34,228 +34,382 @@ #include "constants/songs.h" #include "constants/rgb.h" -#define EZCHAT_TASK_STATE 0 -#define EZCHAT_TASK_TYPE 1 -#define EZCHAT_TASK_WORDS 2 -#define EZCHAT_TASK_MAINCALLBACK 4 -#define EZCHAT_TASK_UNK06 6 -#define EZCHAT_TASK_SIZE 7 - static EWRAM_DATA struct EasyChatScreen *sEasyChatScreen = NULL; -static EWRAM_DATA struct Unk203A11C *sUnknown_0203A11C = NULL; -static EWRAM_DATA struct Unk203A120 *sUnknown_0203A120 = NULL; +static EWRAM_DATA struct EasyChatScreenControl *sScreenControl = NULL; +static EWRAM_DATA struct EasyChatScreenWordData *sWordData = NULL; -static void sub_811A2C0(u8); -static void MainCallback_EasyChatScreen(void); -static bool8 sub_811A428(u8); -static void sub_811A2FC(u8); -static void sub_811A4D0(MainCallback); -static bool32 sub_811A88C(u16); -static void sub_811A8A4(u16); -static bool8 EasyChat_AllocateResources(u8, u16 *, u8); -static void EasyChat_FreeResources(void); -static u16 sub_811AAAC(void); -static u16 sub_811AB68(void); -static u16 sub_811ACDC(void); -static u16 sub_811AE44(void); -static u16 sub_811AF00(void); -static u16 sub_811AF8C(void); -static u16 sub_811AFEC(void); -static u16 sub_811B040(void); -static u16 sub_811B08C(void); -static u16 sub_811B0BC(void); -static u16 sub_811B0E8(void); -static u16 sub_811B0F8(void); -static u16 sub_811B150(void); -static u16 sub_811B1B4(void); +static void Task_InitEasyChatScreen(u8); +static void CB2_EasyChatScreen(void); +static bool8 InitEasyChatScreen(u8); +static void Task_EasyChatScreen(u8); +static void ExitEasyChatScreen(MainCallback); +static bool32 IsFuncIdForQuizLadyScreen(u16); +static void EnterQuizLadyScreen(u16); +static bool8 InitEasyChatScreenStruct(u8, u16 *, u8); +static void FreeEasyChatScreenStruct(void); +static u16 HandleEasyChatInput(void); +static u16 HandleEasyChatInput_Phrase(void); +static u16 HandleEasyChatInput_MainScreenButtons(void); +static u16 HandleEasyChatInput_Keyboard(void); +static u16 HandleEasyChatInput_WordSelect(void); +static u16 HandleEasyChatInput_ExitPrompt(void); +static u16 HandleEasyChatInput_ConfirmWordsYesNo(void); +static u16 HandleEasyChatInput_DeleteAllYesNo(void); +static u16 HandleEasyChatInput_QuizQuestion(void); +static u16 HandleEasyChatInput_WaitForMsg(void); +static u16 HandleEasyChatInput_StartConfirmLyrics(void); +static u16 HandleEasyChatInput_ConfirmLyricsYesNo(void); +static u16 StartConfirmExitPrompt(void); +static u16 TryConfirmWords(void); static u8 GetEasyChatScreenFrameId(void); static u8 GetEachChatScreenTemplateId(u8); -static void sub_811BDF0(u8 *); -static void sub_811BF78(void); -static bool8 sub_811BF8C(void); -static bool8 sub_811BFA4(void); -static void sub_811C13C(void); -static void sub_811C158(u16); -static bool8 sub_811C170(void); -static bool8 sub_811F28C(void); -static void sub_811F2B8(void); -static u8 sub_811F3AC(void); +static void GetQuizTitle(u8 *); +static void ClearUnusedField(void); +static bool8 InitEasyChatScreenControl(void); +static bool8 LoadEasyChatScreen(void); +static void FreeEasyChatScreenControl(void); +static void StartEasyChatFunction(u16); +static bool8 RunEasyChatFunction(void); +static bool8 InitEasyChatScreenWordData(void); +static void FreeEasyChatScreenWordData(void); +static u8 GetNumUnlockedEasyChatGroups(void); static int FooterHasFourOptions(void); -static int sub_811B184(void); -static int sub_811B264(void); -static int sub_811B32C(void); -static int sub_811B2B0(void); -static int sub_811B33C(void); -static int sub_811B368(void); -static u16 sub_811B528(int); -static u16 sub_811B794(u32); -static int sub_811B394(void); -static u8 sub_811B2A4(void); -static void sub_811B3E4(void); -static void sub_811BE9C(void); -static int sub_811B4EC(void); -static void sub_811B418(void); -static void sub_811B454(void); -static int sub_811BD64(void); -static int sub_811BDB0(void); -static int sub_811BD2C(void); -static int sub_811BCF4(void); -static u16 sub_811B8E8(void); -static u8 sub_811F3B8(u8); -static void sub_811F548(int, u16); -static int sub_811B908(void); -static u16 sub_811F5B0(void); -static void sub_811B488(u16); -static u16 sub_811B940(void); -static u16 sub_811F578(u16); -static int sub_811BF88(int); -static u16 sub_811B8C8(void); -static int sub_811B568(u32); -static int sub_811B634(u32); -static int sub_811B6C4(u32); -static void sub_811B978(void); -static void sub_811B744(void); -static u8 sub_811B9C8(void); -static void sub_811B768(void); -static u8 sub_811B960(u8); -static void sub_811B9A0(void); -static u8 sub_811BA1C(void); +static int DoDeleteAllButton(void); +static int DoQuizButton(void); +static int ExitKeyboardToMainScreen(void); +static int SelectKeyboardGroup(void); +static int StartSwitchKeyboardMode(void); +static int DeleteSelectedWord(void); +static u16 MoveKeyboardCursor(int); +static u16 MoveWordSelectCursor(u32); +static int SelectNewWord(void); +static u8 GetEasyChatBackupState(void); +static void SaveCurrentPhrase(void); +static void SetSpecialEasyChatResult(void); +static bool32 GetEasyChatCompleted(void); +static void ResetCurrentPhrase(void); +static void ResetCurrentPhraseToSaved(void); +static int IsQuizQuestionEmpty(void); +static int IsQuizAnswerEmpty(void); +static bool32 IsCurrentPhraseFull(void); +static bool32 IsCurrentPhraseEmpty(void); +static u16 GetSelectedGroupIndex(void); +static u8 GetUnlockedEasyChatGroupId(u8); +static void SetSelectedWordGroup(bool32, u16); +static int GetSelectedAlphabetGroupId(void); +static u16 GetNumWordsInSelectedGroup(void); +static void SetSelectedWord(u16); +static u16 GetSelectedWordIndex(void); +static u16 GetWordFromSelectedGroup(u16); +static bool32 DummyWordCheck(int); +static u16 GetWordIndexToReplace(void); +static int MoveKeyboardCursor_GroupNames(u32); +static int MoveKeyboardCursor_Alphabet(u32); +static int MoveKeyboardCursor_ButtonWindow(u32); +static void ReduceToValidKeyboardColumn(void); +static void SetKeyboardCursorInButtonWindow(void); +static bool8 IsSelectedKeyboardIndexInvalid(void); +static void SetKeyboardCursorToLastColumn(void); +static u8 GetLastAlphabetColumn(u8); +static void ReduceToValidWordSelectColumn(void); +static bool8 IsSelectedWordIndexInvalid(void); static int DidPlayerInputMysteryGiftPhrase(void); static u16 DidPlayerInputABerryMasterWifePhrase(void); -static bool8 sub_811CE94(void); -static void sub_811CF64(void); -static void sub_811CF04(void); -static void sub_811D60C(void); -static void sub_811D424(u16 *); -static void sub_811D230(void); -static void sub_811E948(void); -static void sub_811CFCC(void); -static void sub_811D0BC(void); -static void sub_811D2C8(void); -static void sub_811D684(void); -static void sub_811DE90(void); -static void sub_811DEC4(void); -static void sub_811DF28(struct Sprite *); -static void sub_811DE5C(u8, u8, u8, u8); -static void sub_811E5D4(void); -static void sub_811E720(void); -static void sub_811E828(void); -static bool8 sub_811C2D4(void); -static bool8 sub_811C30C(void); -static bool8 sub_811C3E4(void); -static bool8 sub_811C48C(void); -static bool8 sub_811C404(void); -static bool8 sub_811C448(void); -static bool8 sub_811C4D0(void); -static bool8 sub_811C518(void); -static bool8 sub_811C554(void); -static bool8 sub_811C620(void); -static bool8 sub_811C830(void); -static bool8 sub_811C8F0(void); -static bool8 sub_811C99C(void); -static bool8 sub_811CA5C(void); -static bool8 sub_811C780(void); -static bool8 sub_811C78C(void); -static bool8 sub_811C7D4(void); -static bool8 sub_811CB18(void); -static bool8 sub_811CB98(void); -static bool8 sub_811CB24(void); -static bool8 sub_811CC90(void); -static bool8 sub_811CC08(void); -static bool8 sub_811C6C0(void); -static bool8 sub_811CD14(void); -static bool8 sub_811CD54(void); -static bool8 sub_811CD94(void); -static bool8 sub_811CDD4(void); -static bool8 sub_811CE14(void); -static bool8 sub_811CE54(void); -static void sub_811DF60(u8, u8); +static bool8 InitEasyChatScreenControl_(void); +static void LoadEasyChatPalettes(void); +static void InitEasyChatBgs(void); +static void AdjustBgTilemapForFooter(void); +static void BufferFrameTilemap(u16 *); +static void AddPhraseWindow(void); +static void AddMainScreenButtonWindow(void); +static void PrintTitle(void); +static void PrintInitialInstructions(void); +static void PrintCurrentPhrase(void); +static void DrawLowerWindow(void); +static void LoadEasyChatGfx(void); +static void CreateMainCursorSprite(void); +static void SpriteCB_Cursor(struct Sprite *); +static void SetWindowDimensions(u8, u8, u8, u8); +static void CreateScrollIndicatorSprites(void); +static void CreateStartSelectButtonSprites(void); +static void TryAddInterviewObjectEvents(void); +static bool8 ReprintPhrase(void); +static bool8 UpdateMainCursor(void); +static bool8 UpdateMainCursorOnButtons(void); +static bool8 ShowConfirmDeleteAllPrompt(void); +static bool8 ShowConfirmExitPrompt(void); +static bool8 ShowConfirmPrompt(void); +static bool8 ClosePrompt(void); +static bool8 ClosePromptAfterDeleteAll(void); +static bool8 OpenKeyboard(void); +static bool8 CloseKeyboard(void); +static bool8 OpenWordSelect(void); +static bool8 CloseWordSelect(void); +static bool8 ShowConfirmLyricsPrompt(void); +static bool8 ReturnToKeyboard(void); +static bool8 UpdateKeyboardCursor(void); +static bool8 GroupNamesScrollDown(void); +static bool8 GroupNamesScrollUp(void); +static bool8 UpdateWordSelectCursor(void); +static bool8 WordSelectScrollUp(void); +static bool8 WordSelectScrollDown(void); +static bool8 WordSelectPageScrollUp(void); +static bool8 WordSelectPageScrollDown(void); +static bool8 SwitchKeyboardMode(void); +static bool8 ShowCreateQuizMsg(void); +static bool8 ShowSelectAnswerMsg(void); +static bool8 ShowSongTooShortMsg(void); +static bool8 ShowCantDeleteLyricsMsg(void); +static bool8 ShowCombineTwoWordsMsg(void); +static bool8 ShowCantExitMsg(void); +static void SetMainCursorPos(u8, u8); static int GetFooterOptionXOffset(int); -static void sub_811DF90(void); -static void sub_811D104(u8); -static void sub_811D214(u8); -static void sub_811DFB0(void); -static void sub_811D6D4(void); -static void sub_811D9CC(int); -static void sub_811E3AC(void); -static bool8 sub_811E418(void); -static void sub_811DFC8(void); -static void sub_811E6E0(int); -static bool8 sub_811DAA4(void); -static void sub_811E64C(void); -static void sub_811E050(void); -static void sub_811E4AC(void); -static void sub_811E6B0(void); -static void sub_811E55C(void); -static bool8 sub_811E4D0(void); -static bool8 sub_811E5B8(void); -static void sub_811E578(void); -static void sub_811E088(void); -static void sub_811DDAC(s16, u8); -static bool8 sub_811DE10(void); -static void sub_811D9B4(void); -static void sub_811D698(u32); -static void sub_811E288(void); -static void sub_811E794(void); -static void sub_811E380(void); -static void sub_811E7F8(void); -static void sub_811E30C(void); -static void sub_811D7A4(void); -static void sub_811D7C8(void); -static int sub_811DE48(void); -static void sub_811D7EC(void); -static void sub_811D830(void); -static void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); -static void sub_811DD84(void); -static void sub_811D6F4(void); -static void PrintEasyChatKeyboardText(void); -static void sub_811D794(void); +static void StopMainCursorAnim(void); +static void PrintEasyChatStdMessage(u8); +static void CreateEasyChatYesNoMenu(u8); +static void StartMainCursorAnim(void); +static void PrintKeyboardText(void); +static void InitLowerWindowAnim(int); +static void CreateSideWindowSprites(void); +static bool8 ShowSideWindow(void); +static void CreateRectangleCursorSprites(void); +static void SetScrollIndicatorXPos(bool32); +static bool8 UpdateLowerWindowAnim(void); +static void UpdateScrollIndicatorsVisibility(void); +static void DestroyRectangleCursorSprites(void); +static void HideModeWindow(void); +static void HideScrollIndicators(void); +static void SetModeWindowToTransition(void); +static bool8 DestroySideWindowSprites(void); +static bool8 IsModeWindowAnimActive(void); +static void UpdateModeWindowAnim(void); +static void UpdateRectangleCursorPos(void); +static void InitLowerWindowScroll(s16, u8); +static bool8 UpdateLowerWindowScroll(void); +static void ClearWordSelectWindow(void); +static void InitLowerWindowText(u32); +static void CreateWordSelectCursorSprite(void); +static void UpdateStartSelectButtonsVisibility(void); +static void DestroyWordSelectCursorSprite(void); +static void HideStartSelectButtons(void); +static void UpdateWordSelectCursorPos(void); +static void PrintWordSelectNextRowDown(void); +static void PrintWordSelectNextRowUp(void); +static int GetLowerWindowScrollOffset(void); +static void PrintWordSelectRowsPageDown(void); +static void PrintWordSelectRowsPageUp(void); +static void PrintEasyChatTextWithColors(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); +static void ResetLowerWindowScroll(void); +static void PrintKeyboardGroupNames(void); +static void PrintKeyboardAlphabet(void); +static void PrintInitialWordSelectText(void); static const u8 *GetEasyChatWordGroupName(u8); -static void sub_811D864(u8, u8); -static void sub_811D950(u8, u8); -static void sub_811DADC(u8); -static void sub_811DC28(int, int, int, int); -static void sub_811E0EC(s8, s8); -static void sub_811E1A4(s8, s8); -static void sub_811E2DC(struct Sprite *); -static void sub_811E34C(u8, u8); +static void PrintWordSelectText(u8, u8); +static void EraseWordSelectRows(u8, u8); +static void DrawLowerWindowFrame(u8); +static void BufferLowerWindowFrame(int, int, int, int); +static void SetRectangleCursorPos_GroupMode(s8, s8); +static void SetRectangleCursorPos_AlphabetMode(s8, s8); +static void SpriteCB_WordSelectCursor(struct Sprite *); +static void SetWordSelectCursorPos(u8, u8); static bool8 EasyChatIsNationalPokedexEnabled(void); static u16 GetRandomUnlockedEasyChatPokemon(void); -static void sub_811F2D4(void); -static void sub_811F46C(void); +static void SetUnlockedEasyChatGroups(void); +static void SetUnlockedWordsByAlphabet(void); static u8 *CopyEasyChatWordPadded(u8 *, u16, u16); -static u8 sub_811F860(u16); -static u16 sub_811F5C4(u16); -static u16 sub_811F6B8(u16); -static bool8 sub_811F764(u16, u8); -static int sub_811F838(u16); +static u8 IsEasyChatWordUnlocked(u16); +static u16 SetSelectedWordGroup_GroupMode(u16); +static u16 SetSelectedWordGroup_AlphabetMode(u16); +static bool8 IsEasyChatIndexAndGroupUnlocked(u16, u8); +static int IsRestrictedWordSpecies(u16); static void DoQuizAnswerEasyChatScreen(void); static void DoQuizQuestionEasyChatScreen(void); static void DoQuizSetAnswerEasyChatScreen(void); static void DoQuizSetQuestionEasyChatScreen(void); -struct Unk8597530 -{ - u16 word; - MainCallback callback; +#define PALTAG_TRIANGLE_CURSOR 0 +#define PALTAG_RECTANGLE_CURSOR 1 +#define PALTAG_MISC_UI 2 +#define PALTAG_RS_INTERVIEW_FRAME 3 + +#define GFXTAG_TRIANGLE_CURSOR 0 +#define GFXTAG_RECTANGLE_CURSOR 1 +#define GFXTAG_SCROLL_INDICATOR 2 +#define GFXTAG_START_SELECT_BUTTONS 3 +#define GFXTAG_MODE_WINDOW 4 +#define GFXTAG_RS_INTERVIEW_FRAME 5 +#define GFXTAG_BUTTON_WINDOW 6 + +// State values for sEasyChatScreen->inputState +// Control which input handler to use in HandleEasyChatInput +enum { + INPUTSTATE_PHRASE, + INPUTSTATE_MAIN_SCREEN_BUTTONS, + INPUTSTATE_KEYBOARD, + INPUTSTATE_WORD_SELECT, + INPUTSTATE_EXIT_PROMPT, + INPUTSTATE_DELETE_ALL_YES_NO, + INPUTSTATE_CONFIRM_WORDS_YES_NO, + INPUTSTATE_QUIZ_QUESTION, + INPUTSTATE_WAIT_FOR_MSG, + INPUTSTATE_START_CONFIRM_LYRICS, + INPUTSTATE_CONFIRM_LYRICS_YES_NO, }; -// Lilycove Quiz Lady -static const struct Unk8597530 sUnknown_08597530[] = { +// Task states for the 'main' task, Task_EasyChatScreen +enum { + MAINSTATE_FADE_IN, + MAINSTATE_HANDLE_INPUT, + MAINSTATE_RUN_FUNC, + MAINSTATE_TO_QUIZ_LADY, + MAINSTATE_EXIT, + MAINSTATE_WAIT_FADE_IN, +}; + +// IDs provided to PrintEasyChatStdMessage to print a standard message +enum { + MSG_INSTRUCTIONS, + MSG_CONFIRM_DELETE, + MSG_CONFIRM_EXIT, + MSG_CONFIRM, + MSG_CREATE_QUIZ, + MSG_SELECT_ANSWER, + MSG_SONG_TOO_SHORT, + MSG_CANT_DELETE_LYRICS, + MSG_COMBINE_TWO_WORDS, + MSG_CANT_QUIT, +}; + +// IDs for supplementary Easy Chat functions +// Returned by the input handler functions, and run +// in the main task (MAINSTATE_RUN_FUNC) +enum { + ECFUNC_NONE, + ECFUNC_REPRINT_PHRASE, + ECFUNC_UPDATE_MAIN_CURSOR, + ECFUNC_UPDATE_MAIN_CURSOR_ON_BUTTONS, + ECFUNC_PROMPT_DELETE_ALL, + ECFUNC_PROMPT_EXIT, + ECFUNC_PROMPT_CONFIRM, + ECFUNC_CLOSE_PROMPT, + ECFUNC_CLOSE_PROMPT_AFTER_DELETE, + ECFUNC_OPEN_KEYBOARD, + ECFUNC_CLOSE_KEYBOARD, + ECFUNC_OPEN_WORD_SELECT, + ECFUNC_CLOSE_WORD_SELECT, + ECFUNC_PROMPT_CONFIRM_LYRICS, + ECFUNC_RETURN_TO_KEYBOARD, + ECFUNC_UPDATE_KEYBOARD_CURSOR, + ECFUNC_GROUP_NAMES_SCROLL_DOWN, + ECFUNC_GROUP_NAMES_SCROLL_UP, + ECFUNC_UPDATE_WORD_SELECT_CURSOR, + ECFUNC_WORD_SELECT_SCROLL_UP, + ECFUNC_WORD_SELECT_SCROLL_DOWN, + ECFUNC_WORD_SELECT_PAGE_UP, + ECFUNC_WORD_SELECT_PAGE_DOWN, + ECFUNC_SWITCH_KEYBOARD_MODE, + ECFUNC_EXIT, + ECFUNC_QUIZ_QUESTION, + ECFUNC_QUIZ_ANSWER, + ECFUNC_SET_QUIZ_QUESTION, + ECFUNC_SET_QUIZ_ANSWER, + ECFUNC_MSG_CREATE_QUIZ, + ECFUNC_MSG_SELECT_ANSWER, + ECFUNC_MSG_SONG_TOO_SHORT, + ECFUNC_MSG_CANT_DELETE_LYRICS, + ECFUNC_MSG_COMBINE_TWO_WORDS, + ECFUNC_MSG_CANT_EXIT, +}; + +// IDs for InitLowerWindowText +enum { + TEXT_GROUPS, + TEXT_ALPHABET, + TEXT_WORD_SELECT, +}; + +#define NUM_ALPHABET_ROWS 4 +#define NUM_GROUP_NAME_ROWS 4 +#define NUM_WORD_SELECT_ROWS 4 +#define NUM_BUTTON_ROWS 3 + +#define NUM_ALPHABET_COLUMNS 7 +#define NUM_GROUP_NAME_COLUMNS 2 +#define NUM_WORD_SELECT_COLUMNS 2 + +enum { + FRAMEID_GENERAL_2x2, + FRAMEID_GENERAL_2x3, + FRAMEID_MAIL, + FRAMEID_COMBINE_TWO_WORDS, + FRAMEID_INTERVIEW_SHOW_PERSON, + FRAMEID_INTERVIEW, + FRAMEID_QUIZ_ANSWER, + FRAMEID_QUIZ_QUESTION, + FRAMEID_QUIZ_SET_QUESTION, +}; + +// IDs for the footer row of buttons on the main screen +enum { + FOOTER_NORMAL, + FOOTER_QUIZ, + FOOTER_ANSWER, + NUM_FOOTER_TYPES +}; + +enum { + INPUT_RIGHT, + INPUT_LEFT, + INPUT_UP, + INPUT_DOWN, + INPUT_START, + INPUT_SELECT, +}; + +// Types of animations for the lower window (keyboard/word select), given to InitLowerWindowAnim +enum { + WINANIM_OPEN_KEYBOARD, + WINANIM_CLOSE_KEYBOARD, + WINANIM_OPEN_WORD_SELECT, + WINANIM_CLOSE_WORD_SELECT, + WINANIM_RETURN_TO_KEYBOARD, + WINANIM_KEYBOARD_SWITCH_OUT, + WINANIM_KEYBOARD_SWITCH_IN, +}; + +// Values for text frame tilemap +#define FRAME_OFFSET_ORANGE 0x1000 // Orange frame, for phrase text +#define FRAME_OFFSET_GREEN 0x4000 // Green frame, for keyboard/word select + +#define FRAME_TILE_TRANSPARENT 0x0 +#define FRAME_TILE_TOP_L_CORNER 0x1 +#define FRAME_TILE_TOP_EDGE 0x2 +#define FRAME_TILE_TOP_R_CORNER 0x3 +#define FRAME_TILE_L_EDGE 0x5 +#define FRAME_TILE_R_EDGE 0x7 +#define FRAME_TILE_BOTTOM_L_CORNER 0x9 +#define FRAME_TILE_BOTTOM_EDGE 0xA +#define FRAME_TILE_BOTTOM_R_CORNER 0xB + +struct +{ + u16 funcId; + MainCallback callback; +} static const sQuizLadyEasyChatScreens[] = { { - .word = 26, + .funcId = ECFUNC_QUIZ_ANSWER, .callback = DoQuizAnswerEasyChatScreen, }, { - .word = 25, + .funcId = ECFUNC_QUIZ_QUESTION, .callback = DoQuizQuestionEasyChatScreen, }, { - .word = 28, + .funcId = ECFUNC_SET_QUIZ_ANSWER, .callback = DoQuizSetAnswerEasyChatScreen, }, { - .word = 27, + .funcId = ECFUNC_SET_QUIZ_QUESTION, .callback = DoQuizSetQuestionEasyChatScreen, }, }; @@ -265,7 +419,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_PROFILE, .numColumns = 2, .numRows = 2, - .frameId = 0, + .frameId = FRAMEID_GENERAL_2x2, .fourFooterOptions = FALSE, .titleText = gText_Profile, .instructionsText1 = gText_CombineFourWordsOrPhrases, @@ -277,7 +431,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_BATTLE_START, .numColumns = 2, .numRows = 3, - .frameId = 1, + .frameId = FRAMEID_GENERAL_2x3, .fourFooterOptions = FALSE, .titleText = gText_AtTheBattlesStart, .instructionsText1 = gText_CombineSixWordsOrPhrases, @@ -289,7 +443,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_BATTLE_WON, .numColumns = 2, .numRows = 3, - .frameId = 1, + .frameId = FRAMEID_GENERAL_2x3, .fourFooterOptions = FALSE, .titleText = gText_UponWinningABattle, .instructionsText1 = gText_CombineSixWordsOrPhrases, @@ -301,7 +455,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_BATTLE_LOST, .numColumns = 2, .numRows = 3, - .frameId = 1, + .frameId = FRAMEID_GENERAL_2x3, .fourFooterOptions = FALSE, .titleText = gText_UponLosingABattle, .instructionsText1 = gText_CombineSixWordsOrPhrases, @@ -313,7 +467,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_MAIL, .numColumns = 2, .numRows = 5, - .frameId = 2, + .frameId = FRAMEID_MAIL, .fourFooterOptions = FALSE, .titleText = NULL, .instructionsText1 = gText_CombineNineWordsOrPhrases, @@ -325,7 +479,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_INTERVIEW, .numColumns = 2, .numRows = 2, - .frameId = 5, + .frameId = FRAMEID_INTERVIEW, .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_CombineFourWordsOrPhrases, @@ -337,7 +491,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, - .frameId = 1, + .frameId = FRAMEID_GENERAL_2x3, .fourFooterOptions = FALSE, .titleText = gText_TheBardsSong, .instructionsText1 = gText_ChangeJustOneWordOrPhrase, @@ -349,7 +503,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_FAN_CLUB, .numColumns = 1, .numRows = 1, - .frameId = 4, + .frameId = FRAMEID_INTERVIEW_SHOW_PERSON, .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, @@ -361,7 +515,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_TRENDY_PHRASE, .numColumns = 2, .numRows = 1, - .frameId = 3, + .frameId = FRAMEID_COMBINE_TWO_WORDS, .fourFooterOptions = FALSE, .titleText = gText_WhatsHipAndHappening, .instructionsText1 = gText_CombineTwoWordsOrPhrases, @@ -373,7 +527,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_QUIZ_QUESTION, .numColumns = 2, .numRows = 5, - .frameId = 7, + .frameId = FRAMEID_QUIZ_QUESTION, .fourFooterOptions = TRUE, .titleText = NULL, .instructionsText1 = gText_AfterYouHaveReadTheQuiz, @@ -385,7 +539,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_QUIZ_ANSWER, .numColumns = 1, .numRows = 1, - .frameId = 6, + .frameId = FRAMEID_QUIZ_ANSWER, .fourFooterOptions = TRUE, .titleText = gText_TheQuizAnswerIs, .instructionsText1 = gText_OutOfTheListedChoices, @@ -397,7 +551,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_QUIZ_SET_QUESTION, .numColumns = 2, .numRows = 5, - .frameId = 8, + .frameId = FRAMEID_QUIZ_SET_QUESTION, .fourFooterOptions = TRUE, .titleText = NULL, .instructionsText1 = gText_CombineNineWordsOrPhrases, @@ -409,7 +563,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_QUIZ_SET_ANSWER, .numColumns = 1, .numRows = 1, - .frameId = 6, + .frameId = FRAMEID_QUIZ_ANSWER, .fourFooterOptions = TRUE, .titleText = gText_TheQuizAnswerIs, .instructionsText1 = gText_PickAWordOrPhraseAnd, @@ -421,7 +575,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, - .frameId = 1, + .frameId = FRAMEID_GENERAL_2x3, .fourFooterOptions = FALSE, .titleText = gText_TheBardsSong, .instructionsText1 = gText_ChangeJustOneWordOrPhrase, @@ -433,7 +587,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_APPRENTICE, .numColumns = 2, .numRows = 3, - .frameId = 1, + .frameId = FRAMEID_GENERAL_2x3, .fourFooterOptions = FALSE, .titleText = gText_ApprenticesPhrase, .instructionsText1 = gText_FindWordsWhichFit, @@ -445,7 +599,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_GOOD_SAYING, .numColumns = 2, .numRows = 1, - .frameId = 3, + .frameId = FRAMEID_COMBINE_TWO_WORDS, .fourFooterOptions = FALSE, .titleText = gText_GoodSaying, .instructionsText1 = gText_CombineTwoWordsOrPhrases2, @@ -457,7 +611,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_GABBY_AND_TY, .numColumns = 1, .numRows = 1, - .frameId = 4, + .frameId = FRAMEID_INTERVIEW_SHOW_PERSON, .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, @@ -469,7 +623,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW, .numColumns = 1, .numRows = 1, - .frameId = 4, + .frameId = FRAMEID_INTERVIEW_SHOW_PERSON, .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, @@ -481,7 +635,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_CONTEST_INTERVIEW, .numColumns = 1, .numRows = 1, - .frameId = 4, + .frameId = FRAMEID_INTERVIEW_SHOW_PERSON, .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, @@ -493,7 +647,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_FAN_QUESTION, .numColumns = 1, .numRows = 1, - .frameId = 4, + .frameId = FRAMEID_INTERVIEW_SHOW_PERSON, .fourFooterOptions = FALSE, .titleText = gText_FansQuestion, .instructionsText1 = gText_FindWordsWhichFit, @@ -505,7 +659,7 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .type = EASY_CHAT_TYPE_QUESTIONNAIRE, .numColumns = 2, .numRows = 2, - .frameId = 0, + .frameId = FRAMEID_GENERAL_2x2, .fourFooterOptions = FALSE, .titleText = gText_Questionnaire, .instructionsText1 = gText_CombineFourWordsOrPhrases, @@ -515,14 +669,17 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { }, }; -static const u8 sUnknown_08597748[][7] = { +// IDs are used indirectly as indexes into gEasyChatWordsByLetterPointers +// 0 is 'Others', 1-26 are the letters A-Z +// This array maps the group IDs to the alphabet keyboard +static const u8 sAlphabetGroupIdMap[NUM_ALPHABET_ROWS][NUM_ALPHABET_COLUMNS] = { { 1, 2, 3, 4, 5, 6, 0}, { 7, 8, 9, 10, 11, 12, 0}, {13, 14, 15, 16, 17, 18, 19}, {20, 21, 22, 23, 24, 25, 26}, }; -static const u16 sMysteryGiftPhrase[] = { +static const u16 sMysteryGiftPhrase[NUM_QUESTIONNAIRE_WORDS] = { EC_WORD_LINK, EC_WORD_TOGETHER, EC_WORD_WITH, @@ -537,81 +694,84 @@ static const u16 sBerryMasterWifePhrases[][2] = { [PHRASE_SUPER_HUSTLE - 1] = {EC_WORD_SUPER, EC_WORD_HUSTLE}, }; -static const u16 sEasyChatTriangleCursorPalette[] = INCBIN_U16("graphics/easy_chat/triangle_cursor.gbapal"); -static const u32 sEasyChatTriangleCursorGfx[] = INCBIN_U32("graphics/easy_chat/triangle_cursor.4bpp"); -static const u32 sEasyChatScrollIndicatorGfx[] = INCBIN_U32("graphics/easy_chat/scroll_indicator.4bpp"); -static const u32 sEasyChatStartSelectButtonsGfx[] = INCBIN_U32("graphics/easy_chat/start_select_buttons.4bpp"); -static const u16 sUnknown_085979C0[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); -static const u32 sUnknown_085979E0[] = INCBIN_U32("graphics/misc/interview_frame.4bpp.lz"); -static const u16 sUnknown_08597B14[] = INCBIN_U16("graphics/misc/interview_frame_orange.gbapal"); -static const u16 sUnknown_08597B34[] = INCBIN_U16("graphics/misc/interview_frame_green.gbapal"); -static const u32 sUnknown_08597B54[] = INCBIN_U32("graphics/misc/interview_frame_2.4bpp.lz"); -static const u16 sUnknown_08597C1C[] = INCBIN_U16("graphics/misc/8597C1C.gbapal"); -static const u16 sUnknown_08597C24[] = INCBIN_U16("graphics/misc/8597C24.gbapal"); +static const u16 sTriangleCursor_Pal[] = INCBIN_U16("graphics/easy_chat/triangle_cursor.gbapal"); +static const u32 sTriangleCursor_Gfx[] = INCBIN_U32("graphics/easy_chat/triangle_cursor.4bpp"); +static const u32 sScrollIndicator_Gfx[] = INCBIN_U32("graphics/easy_chat/scroll_indicator.4bpp"); +static const u32 sStartSelectButtons_Gfx[] = INCBIN_U32("graphics/easy_chat/start_select_buttons.4bpp"); +// In Ruby/Sapphire Easy Chat screens had a black background, and when the player & interviewer were present +// on screen the interview_frame gfx was shown behind them. +// In Emerald all Easy Chat screens have a filled background, so these gfx go unused +static const u16 sRSInterviewFrame_Pal[] = INCBIN_U16("graphics/easy_chat/interview_frame.gbapal"); +static const u32 sRSInterviewFrame_Gfx[] = INCBIN_U32("graphics/easy_chat/interview_frame.4bpp.lz"); +static const u16 sTextInputFrameOrange_Pal[] = INCBIN_U16("graphics/easy_chat/text_input_frame_orange.gbapal"); +static const u16 sTextInputFrameGreen_Pal[] = INCBIN_U16("graphics/easy_chat/text_input_frame_green.gbapal"); +static const u32 sTextInputFrame_Gfx[] = INCBIN_U32("graphics/easy_chat/text_input_frame.4bpp.lz"); +static const u16 sTitleText_Pal[] = INCBIN_U16("graphics/easy_chat/title_text.gbapal"); +static const u16 sText_Pal[] = INCBIN_U16("graphics/easy_chat/text.gbapal"); static const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = { - { + [FRAMEID_GENERAL_2x2] = { .left = 3, .top = 4, .width = 24, .height = 4, - .footerId = 0, + .footerId = FOOTER_NORMAL, }, - { + [FRAMEID_GENERAL_2x3] = { .left = 3, .top = 3, .width = 24, .height = 6, - .footerId = 0, + .footerId = FOOTER_NORMAL, }, - { + [FRAMEID_MAIL] = { .left = 3, .top = 0, .width = 24, .height = 10, - .footerId = 0, + .footerId = FOOTER_NORMAL, }, - { + [FRAMEID_COMBINE_TWO_WORDS] = { .left = 3, .top = 5, .width = 24, .height = 2, - .footerId = 0, + .footerId = FOOTER_NORMAL, }, - { + [FRAMEID_INTERVIEW_SHOW_PERSON] = { .left = 16, .top = 5, .width = 12, .height = 2, - .footerId = 0, + .footerId = FOOTER_NORMAL, }, - { + [FRAMEID_INTERVIEW] = { .left = 3, .top = 4, .width = 24, .height = 4, - .footerId = 0, + .footerId = FOOTER_NORMAL, }, - { + [FRAMEID_QUIZ_ANSWER] = { .left = 9, .top = 4, .width = 12, .height = 2, - .footerId = 1, + .footerId = FOOTER_QUIZ, }, - { + [FRAMEID_QUIZ_QUESTION] = { .left = 5, .top = 3, - .width = 0x14, + .width = 20, .height = 10, - .footerId = 3, + .footerId = NUM_FOOTER_TYPES, }, - { + [FRAMEID_QUIZ_SET_QUESTION] = { .left = 3, .top = 0, .width = 24, .height = 10, - .footerId = 2, + .footerId = FOOTER_ANSWER, }, }; @@ -685,7 +845,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { DUMMY_WIN_TEMPLATE, }; -static const struct WindowTemplate sEasyChatYesNoWindowTemplate = { +static const struct WindowTemplate sEasyChatYesNoWindowTemplate = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 9, @@ -697,7 +857,7 @@ static const struct WindowTemplate sEasyChatYesNoWindowTemplate = { static const u8 sText_Clear17[] = _("{CLEAR 17}"); -static const u8 *const sEasyChatKeyboardText[] = +static const u8 *const sEasyChatKeyboardAlphabet[NUM_ALPHABET_ROWS] = { gText_EasyChatKeyboard_ABCDEFothers, gText_EasyChatKeyboard_GHIJKL, @@ -705,71 +865,71 @@ static const u8 *const sEasyChatKeyboardText[] = gText_EasyChatKeyboard_TUVWXYZ, }; -static const struct SpriteSheet sEasyChatSpriteSheets[] = { +static const struct SpriteSheet sSpriteSheets[] = { { - .data = sEasyChatTriangleCursorGfx, - .size = 0x0020, - .tag = 0 + .data = sTriangleCursor_Gfx, + .size = 0x20, + .tag = GFXTAG_TRIANGLE_CURSOR }, { - .data = sEasyChatScrollIndicatorGfx, - .size = 0x0100, - .tag = 2 + .data = sScrollIndicator_Gfx, + .size = 0x100, + .tag = GFXTAG_SCROLL_INDICATOR }, { - .data = sEasyChatStartSelectButtonsGfx, - .size = 0x0100, - .tag = 3 + .data = sStartSelectButtons_Gfx, + .size = 0x100, + .tag = GFXTAG_START_SELECT_BUTTONS }, {0} }; -static const struct SpritePalette sEasyChatSpritePalettes[] = { +static const struct SpritePalette sSpritePalettes[] = { { - .data = sEasyChatTriangleCursorPalette, - .tag = 0, + .data = sTriangleCursor_Pal, + .tag = PALTAG_TRIANGLE_CURSOR, }, { - .data = gEasyChatCursor_Pal, - .tag = 1, + .data = gEasyChatRectangleCursor_Pal, + .tag = PALTAG_RECTANGLE_CURSOR, }, { - .data = gEasyChatRightWindow_Pal, - .tag = 2, + .data = gEasyChatButtonWindow_Pal, + .tag = PALTAG_MISC_UI, // The palette is generated from the button window but used for various parts of the UI }, { - .data = sUnknown_085979C0, - .tag = 3, + .data = sRSInterviewFrame_Pal, + .tag = PALTAG_RS_INTERVIEW_FRAME, }, {0} }; -static const struct CompressedSpriteSheet sUnknown_08597CE8[] = { +static const struct CompressedSpriteSheet sCompressedSpriteSheets[] = { { - .data = sUnknown_085979E0, - .size = 0x0800, - .tag = 5, + .data = sRSInterviewFrame_Gfx, + .size = 0x800, + .tag = GFXTAG_RS_INTERVIEW_FRAME, }, { - .data = gEasyChatCursor_Gfx, + .data = gEasyChatRectangleCursor_Gfx, .size = 0x1000, - .tag = 1, + .tag = GFXTAG_RECTANGLE_CURSOR, }, { - .data = gEasyChatRightWindow_Gfx, - .size = 0x0800, - .tag = 6, + .data = gEasyChatButtonWindow_Gfx, + .size = 0x800, + .tag = GFXTAG_BUTTON_WINDOW, }, { .data = gEasyChatMode_Gfx, .size = 0x1000, - .tag = 4, + .tag = GFXTAG_MODE_WINDOW, }, }; -static const u8 sUnknown_08597D08[] = {0, 12, 24, 56, 68, 80, 92}; +static const u8 sAlphabetKeyboardColumnOffsets[NUM_ALPHABET_COLUMNS] = {0, 12, 24, 56, 68, 80, 92}; -static const struct OamData sOamData_8597D10 = { +static const struct OamData sOamData_TriangleCursor = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -785,17 +945,17 @@ static const struct OamData sOamData_8597D10 = { .affineParam = 0, }; -static const struct SpriteTemplate sUnknown_08597D18 = { - .tileTag = 0, - .paletteTag = 0, - .oam = &sOamData_8597D10, +static const struct SpriteTemplate sSpriteTemplate_TriangleCursor = { + .tileTag = PALTAG_TRIANGLE_CURSOR, + .paletteTag = GFXTAG_TRIANGLE_CURSOR, + .oam = &sOamData_TriangleCursor, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_811DF28, + .callback = SpriteCB_Cursor, }; -static const struct OamData sUnknown_08597D30 = { +static const struct OamData sOamData_RectangleCursor = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -811,44 +971,52 @@ static const struct OamData sUnknown_08597D30 = { .affineParam = 0, }; -static const union AnimCmd sUnknown_08597D38[] = { +static const union AnimCmd sAnim_RectangleCursor_OnGroup[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END, }; -static const union AnimCmd sUnknown_08597D40[] = { +static const union AnimCmd sAnim_RectangleCursor_OnButton[] = { ANIMCMD_FRAME(32, 0), ANIMCMD_END, }; -static const union AnimCmd sUnknown_08597D48[] = { +static const union AnimCmd sAnim_RectangleCursor_OnOthers[] = { ANIMCMD_FRAME(64, 0), ANIMCMD_END, }; -static const union AnimCmd sUnknown_08597D50[] = { +static const union AnimCmd sAnim_RectangleCursor_OnLetter[] = { ANIMCMD_FRAME(96, 0), ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_08597D58[] = { - sUnknown_08597D38, - sUnknown_08597D40, - sUnknown_08597D48, - sUnknown_08597D50, +// Each anim changes the width of the rectangle cursor to fit what it should be selecting +enum { + RECTCURSOR_ANIM_ON_GROUP, + RECTCURSOR_ANIM_ON_BUTTON, + RECTCURSOR_ANIM_ON_OTHERS, + RECTCURSOR_ANIM_ON_LETTER, }; -static const struct SpriteTemplate sUnknown_08597D68 = { - .tileTag = 1, - .paletteTag = 1, - .oam = &sUnknown_08597D30, - .anims = sUnknown_08597D58, +static const union AnimCmd *const sAnims_RectangleCursor[] = { + [RECTCURSOR_ANIM_ON_GROUP] = sAnim_RectangleCursor_OnGroup, + [RECTCURSOR_ANIM_ON_BUTTON] = sAnim_RectangleCursor_OnButton, + [RECTCURSOR_ANIM_ON_OTHERS] = sAnim_RectangleCursor_OnOthers, + [RECTCURSOR_ANIM_ON_LETTER] = sAnim_RectangleCursor_OnLetter, +}; + +static const struct SpriteTemplate sSpriteTemplate_RectangleCursor = { + .tileTag = GFXTAG_RECTANGLE_CURSOR, + .paletteTag = PALTAG_RECTANGLE_CURSOR, + .oam = &sOamData_RectangleCursor, + .anims = sAnims_RectangleCursor, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_811DF28, + .callback = SpriteCB_Cursor, }; -static const struct OamData sUnknown_08597D80 = { +static const struct OamData sOamData_ModeWindow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -864,53 +1032,61 @@ static const struct OamData sUnknown_08597D80 = { .affineParam = 0, }; -static const union AnimCmd sUnknown_08597D88[] = { +static const union AnimCmd sAnim_ModeWindow_Hidden[] = { ANIMCMD_FRAME(96, 0), ANIMCMD_END, }; -static const union AnimCmd sUnknown_08597D90[] = { - ANIMCMD_FRAME(64, 4), - ANIMCMD_FRAME(32, 4), +static const union AnimCmd sAnim_ModeWindow_ToGroup[] = { + ANIMCMD_FRAME(64, 4), // Transition frame + ANIMCMD_FRAME(32, 4), // 'Group' frame ANIMCMD_END, }; -static const union AnimCmd sUnknown_08597D9C[] = { - ANIMCMD_FRAME(64, 4), - ANIMCMD_FRAME(0, 4), +static const union AnimCmd sAnim_ModeWindow_ToAlphabet[] = { + ANIMCMD_FRAME(64, 4), // Transition frame + ANIMCMD_FRAME(0, 4), // 'A-Z' frame ANIMCMD_END, }; -static const union AnimCmd sUnknown_08597DA8[] = { - ANIMCMD_FRAME(64, 4), - ANIMCMD_FRAME(96, 0), +static const union AnimCmd sAnim_ModeWindow_ToHidden[] = { + ANIMCMD_FRAME(64, 4), // Transition frame + ANIMCMD_FRAME(96, 0), // Hidden frame ANIMCMD_END, }; -static const union AnimCmd sUnknown_08597DB4[] = { +static const union AnimCmd sAnim_ModeWindow_Transition[] = { ANIMCMD_FRAME(64, 4), ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_08597DBC[] = { - sUnknown_08597D88, - sUnknown_08597D90, - sUnknown_08597D9C, - sUnknown_08597DA8, - sUnknown_08597DB4, +enum { + MODEWINDOW_ANIM_HIDDEN, + MODEWINDOW_ANIM_TO_GROUP, + MODEWINDOW_ANIM_TO_ALPHABET, + MODEWINDOW_ANIM_TO_HIDDEN, + MODEWINDOW_ANIM_TRANSITION, }; -static const struct SpriteTemplate sUnknown_08597DD0 = { - .tileTag = 4, - .paletteTag = 2, - .oam = &sUnknown_08597D80, - .anims = sUnknown_08597DBC, +static const union AnimCmd *const sAnims_ModeWindow[] = { + [MODEWINDOW_ANIM_HIDDEN] = sAnim_ModeWindow_Hidden, + [MODEWINDOW_ANIM_TO_GROUP] = sAnim_ModeWindow_ToGroup, + [MODEWINDOW_ANIM_TO_ALPHABET] = sAnim_ModeWindow_ToAlphabet, + [MODEWINDOW_ANIM_TO_HIDDEN] = sAnim_ModeWindow_ToHidden, + [MODEWINDOW_ANIM_TRANSITION] = sAnim_ModeWindow_Transition, +}; + +static const struct SpriteTemplate sSpriteTemplate_ModeWindow = { + .tileTag = GFXTAG_MODE_WINDOW, + .paletteTag = PALTAG_MISC_UI, + .oam = &sOamData_ModeWindow, + .anims = sAnims_ModeWindow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct OamData sUnknown_08597DE8 = { +static const struct OamData sOamData_ButtonWindow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -926,17 +1102,17 @@ static const struct OamData sUnknown_08597DE8 = { .affineParam = 0, }; -static const struct SpriteTemplate sUnknown_08597DF0 = { - .tileTag = 6, - .paletteTag = 2, - .oam = &sUnknown_08597DE8, +static const struct SpriteTemplate sSpriteTemplate_ButtonWindow = { + .tileTag = GFXTAG_BUTTON_WINDOW, + .paletteTag = PALTAG_MISC_UI, + .oam = &sOamData_ButtonWindow, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct OamData sUnknown_08597E08 = { +static const struct OamData sOamData_StartSelectButton = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -952,7 +1128,7 @@ static const struct OamData sUnknown_08597E08 = { .affineParam = 0, }; -static const struct OamData gUnknown_08597E10 = { +static const struct OamData sOamData_ScrollIndicator = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -968,89 +1144,90 @@ static const struct OamData gUnknown_08597E10 = { .affineParam = 0, }; -static const union AnimCmd sUnknown_08597E18[] = { +static const union AnimCmd sAnim_Frame0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END, }; -static const union AnimCmd sUnknown_08597E20[] = { +static const union AnimCmd sAnim_Frame1[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_08597E28[] = { - sUnknown_08597E18, - sUnknown_08597E20, +// Frame0 is Start button, Frame1 is Select button, both are identical for the scroll indicators +static const union AnimCmd *const sAnims_TwoFrame[] = { + sAnim_Frame0, + sAnim_Frame1, }; -static const struct SpriteTemplate sUnknown_08597E30 = { - .tileTag = 3, - .paletteTag = 2, - .oam = &sUnknown_08597E08, - .anims = sUnknown_08597E28, +static const struct SpriteTemplate sSpriteTemplate_StartSelectButton = { + .tileTag = GFXTAG_START_SELECT_BUTTONS, + .paletteTag = PALTAG_MISC_UI, + .oam = &sOamData_StartSelectButton, + .anims = sAnims_TwoFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate sUnknown_08597E48 = { - .tileTag = 2, - .paletteTag = 2, - .oam = &gUnknown_08597E10, - .anims = sUnknown_08597E28, +static const struct SpriteTemplate sSpriteTemplate_ScrollIndicator = { + .tileTag = GFXTAG_SCROLL_INDICATOR, + .paletteTag = PALTAG_MISC_UI, + .oam = &sOamData_ScrollIndicator, + .anims = sAnims_TwoFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const u8 sFooterOptionXOffsets[][4] = { - {16, 111, 196, 0}, - {16, 78, 130, 160}, - {16, 80, 134, 170}, +static const u8 sFooterOptionXOffsets[NUM_FOOTER_TYPES][4] = { + [FOOTER_NORMAL] = {16, 111, 196, 0}, + [FOOTER_QUIZ] = {16, 78, 130, 160}, + [FOOTER_ANSWER] = {16, 80, 134, 170}, }; -static const u8 *const sFooterTextOptions[][4] = { - {gText_DelAll, gText_Cancel5, gText_Ok2, NULL}, - {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Quiz}, - {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Answer}, +static const u8 *const sFooterTextOptions[NUM_FOOTER_TYPES][4] = { + [FOOTER_NORMAL] = {gText_DelAll, gText_Cancel5, gText_Ok2, NULL}, + [FOOTER_QUIZ] = {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Quiz}, + [FOOTER_ANSWER] = {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Answer}, }; #include "data/easy_chat/easy_chat_groups.h" #include "data/easy_chat/easy_chat_words_by_letter.h" -const u8 *const gEasyChatGroupNamePointers[] = { - [EC_GROUP_POKEMON] = gEasyChatGroupName_Pokemon, - [EC_GROUP_TRAINER] = gEasyChatGroupName_Trainer, - [EC_GROUP_STATUS] = gEasyChatGroupName_Status, - [EC_GROUP_BATTLE] = gEasyChatGroupName_Battle, - [EC_GROUP_GREETINGS] = gEasyChatGroupName_Greetings, - [EC_GROUP_PEOPLE] = gEasyChatGroupName_People, - [EC_GROUP_VOICES] = gEasyChatGroupName_Voices, - [EC_GROUP_SPEECH] = gEasyChatGroupName_Speech, - [EC_GROUP_ENDINGS] = gEasyChatGroupName_Endings, - [EC_GROUP_FEELINGS] = gEasyChatGroupName_Feelings, - [EC_GROUP_CONDITIONS] = gEasyChatGroupName_Conditions, - [EC_GROUP_ACTIONS] = gEasyChatGroupName_Actions, - [EC_GROUP_LIFESTYLE] = gEasyChatGroupName_Lifestyle, - [EC_GROUP_HOBBIES] = gEasyChatGroupName_Hobbies, - [EC_GROUP_TIME] = gEasyChatGroupName_Time, - [EC_GROUP_MISC] = gEasyChatGroupName_Misc, - [EC_GROUP_ADJECTIVES] = gEasyChatGroupName_Adjectives, - [EC_GROUP_EVENTS] = gEasyChatGroupName_Events, - [EC_GROUP_MOVE_1] = gEasyChatGroupName_Move1, - [EC_GROUP_MOVE_2] = gEasyChatGroupName_Move2, - [EC_GROUP_TRENDY_SAYING] = gEasyChatGroupName_TrendySaying, - [EC_GROUP_POKEMON_2] = gEasyChatGroupName_Pokemon2, +static const u8 *const sEasyChatGroupNamePointers[EC_NUM_GROUPS] = { + [EC_GROUP_POKEMON] = gEasyChatGroupName_Pokemon, + [EC_GROUP_TRAINER] = gEasyChatGroupName_Trainer, + [EC_GROUP_STATUS] = gEasyChatGroupName_Status, + [EC_GROUP_BATTLE] = gEasyChatGroupName_Battle, + [EC_GROUP_GREETINGS] = gEasyChatGroupName_Greetings, + [EC_GROUP_PEOPLE] = gEasyChatGroupName_People, + [EC_GROUP_VOICES] = gEasyChatGroupName_Voices, + [EC_GROUP_SPEECH] = gEasyChatGroupName_Speech, + [EC_GROUP_ENDINGS] = gEasyChatGroupName_Endings, + [EC_GROUP_FEELINGS] = gEasyChatGroupName_Feelings, + [EC_GROUP_CONDITIONS] = gEasyChatGroupName_Conditions, + [EC_GROUP_ACTIONS] = gEasyChatGroupName_Actions, + [EC_GROUP_LIFESTYLE] = gEasyChatGroupName_Lifestyle, + [EC_GROUP_HOBBIES] = gEasyChatGroupName_Hobbies, + [EC_GROUP_TIME] = gEasyChatGroupName_Time, + [EC_GROUP_MISC] = gEasyChatGroupName_Misc, + [EC_GROUP_ADJECTIVES] = gEasyChatGroupName_Adjectives, + [EC_GROUP_EVENTS] = gEasyChatGroupName_Events, + [EC_GROUP_MOVE_1] = gEasyChatGroupName_Move1, + [EC_GROUP_MOVE_2] = gEasyChatGroupName_Move2, + [EC_GROUP_TRENDY_SAYING] = gEasyChatGroupName_TrendySaying, + [EC_GROUP_POKEMON_NATIONAL] = gEasyChatGroupName_Pokemon2, }; -static const u16 sDefaultProfileWords[] = { +static const u16 sDefaultProfileWords[EASY_CHAT_BATTLE_WORDS_COUNT - 2] = { EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_FRIEND, }; -static const u16 sDefaultBattleStartWords[] = { +static const u16 sDefaultBattleStartWords[EASY_CHAT_BATTLE_WORDS_COUNT] = { EC_WORD_ARE, EC_WORD_YOU, EC_WORD_READY, @@ -1059,7 +1236,7 @@ static const u16 sDefaultBattleStartWords[] = { EC_WORD_EXCL, }; -static const u16 sUnknown_0859E640[] = { +static const u16 sDefaultBattleWonWords[EASY_CHAT_BATTLE_WORDS_COUNT] = { EC_WORD_YAY, EC_WORD_YAY, EC_WORD_EXCL_EXCL, @@ -1068,7 +1245,7 @@ static const u16 sUnknown_0859E640[] = { EC_WORD_EXCL_EXCL, }; -static const u16 sUnknown_0859E64C[] = { +static const u16 sDefaultBattleLostWords[EASY_CHAT_BATTLE_WORDS_COUNT] = { EC_WORD_TOO, EC_WORD_BAD, EC_WORD_ELLIPSIS, @@ -1077,24 +1254,40 @@ static const u16 sUnknown_0859E64C[] = { EC_WORD_ELLIPSIS, }; -static const u16 sUnknown_0859E658[] = { +static const u16 sRestrictedWordSpecies[] = { SPECIES_DEOXYS, }; -void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType) + +// In addition to the task defines below, these two elements +// have their indexes used explicitly because they are 4-byte +// pointers, and occupy the next data element as well. +// SetWordTaskArg/GetWordTaskArg use these defines to +// read the pointer from the two elements +#define TASKIDX_WORDS 2 +#define TASKIDX_EXIT_CALLBACK 4 + +#define tState data[0] +#define tType data[1] +#define tWords data[TASKIDX_WORDS] // Occupies 2 and 3 +#define tExitCallback data[TASKIDX_EXIT_CALLBACK] // Occupies 4 and 5 +#define tFuncId data[6] +#define tPersonType data[7] + +void DoEasyChatScreen(u8 type, u16 *words, MainCallback exitCallback, u8 displayedPersonType) { u8 taskId; ResetTasks(); - taskId = CreateTask(sub_811A2C0, 0); - gTasks[taskId].data[EZCHAT_TASK_TYPE] = type; - gTasks[taskId].data[EZCHAT_TASK_SIZE] = displayedPersonType; - SetWordTaskArg(taskId, EZCHAT_TASK_WORDS, (u32)words); - SetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK, (u32)callback); - SetMainCallback2(MainCallback_EasyChatScreen); + taskId = CreateTask(Task_InitEasyChatScreen, 0); + gTasks[taskId].tType = type; + gTasks[taskId].tPersonType = displayedPersonType; + SetWordTaskArg(taskId, TASKIDX_WORDS, (u32)words); + SetWordTaskArg(taskId, TASKIDX_EXIT_CALLBACK, (u32)exitCallback); + SetMainCallback2(CB2_EasyChatScreen); } -static void MainCallback_EasyChatScreen(void) +static void CB2_EasyChatScreen(void) { RunTasks(); AnimateSprites(); @@ -1102,94 +1295,97 @@ static void MainCallback_EasyChatScreen(void) UpdatePaletteFade(); } -static void VBlankCallback_EasyChatScreen(void) +static void VBlankCB_EasyChatScreen(void) { TransferPlttBuffer(); LoadOam(); ProcessSpriteCopyRequests(); } -static void sub_811A2A4(u8 taskId, TaskFunc taskFunc) +static void StartEasyChatScreen(u8 taskId, TaskFunc taskFunc) { gTasks[taskId].func = taskFunc; - gTasks[taskId].data[EZCHAT_TASK_STATE] = 0; + gTasks[taskId].tState = MAINSTATE_FADE_IN; } -static void sub_811A2C0(u8 taskId) +static void Task_InitEasyChatScreen(u8 taskId) { if (!IsUpdateLinkStateCBActive()) { - while (sub_811A428(taskId)); + while (InitEasyChatScreen(taskId)); } else { - if (sub_811A428(taskId) == TRUE) - { + if (InitEasyChatScreen(taskId) == TRUE) return; - } } - sub_811A2A4(taskId, sub_811A2FC); + StartEasyChatScreen(taskId, Task_EasyChatScreen); } -static void sub_811A2FC(u8 taskId) +// After loading, this is the 'main' Easy Chat task +static void Task_EasyChatScreen(u8 taskId) { - u16 v0; + u16 funcId; s16 *data; data = gTasks[taskId].data; - switch (data[EZCHAT_TASK_STATE]) + switch (tState) { - case 0: - SetVBlankCallback(VBlankCallback_EasyChatScreen); - BlendPalettes(0xFFFFFFFF, 16, 0); - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - data[EZCHAT_TASK_STATE] = 5; + case MAINSTATE_FADE_IN: + SetVBlankCallback(VBlankCB_EasyChatScreen); + BlendPalettes(PALETTES_ALL, 16, 0); + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); + tState = MAINSTATE_WAIT_FADE_IN; break; - case 1: - v0 = sub_811AAAC(); - if (sub_811A88C(v0)) + case MAINSTATE_HANDLE_INPUT: + funcId = HandleEasyChatInput(); + if (IsFuncIdForQuizLadyScreen(funcId)) { - BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); - data[EZCHAT_TASK_STATE] = 3; - data[EZCHAT_TASK_UNK06] = v0; + // Fade to Quiz Lady screen + BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 16, RGB_BLACK); + tState = MAINSTATE_TO_QUIZ_LADY; + tFuncId = funcId; } - else if (v0 == 0x18) + else if (funcId == ECFUNC_EXIT) { - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); - data[EZCHAT_TASK_STATE] = 4; + // Fade and exit Easy Chat + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); + tState = MAINSTATE_EXIT; } - else if (v0 != 0) + else if (funcId != ECFUNC_NONE) { PlaySE(SE_SELECT); - sub_811C158(v0); - data[EZCHAT_TASK_STATE] ++; + StartEasyChatFunction(funcId); + tState++; // MAINSTATE_RUN_FUNC } break; - case 2: - if (!sub_811C170()) - data[EZCHAT_TASK_STATE] = 1; + case MAINSTATE_RUN_FUNC: + if (!RunEasyChatFunction()) + tState = MAINSTATE_HANDLE_INPUT; break; - case 3: + case MAINSTATE_TO_QUIZ_LADY: if (!gPaletteFade.active) - sub_811A8A4(data[EZCHAT_TASK_UNK06]); + EnterQuizLadyScreen(tFuncId); break; - case 4: + case MAINSTATE_EXIT: if (!gPaletteFade.active) - sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); + ExitEasyChatScreen((MainCallback)GetWordTaskArg(taskId, TASKIDX_EXIT_CALLBACK)); break; - case 5: + case MAINSTATE_WAIT_FADE_IN: if (!gPaletteFade.active) - data[EZCHAT_TASK_STATE] = 1; + tState = MAINSTATE_HANDLE_INPUT; break; } } -static bool8 sub_811A428(u8 taskId) +// Returns TRUE if still initializing, FALSE when finished +// If an allocation fails it will switch to the exit callback +static bool8 InitEasyChatScreen(u8 taskId) { s16 *data; data = gTasks[taskId].data; - switch (data[EZCHAT_TASK_STATE]) + switch (tState) { case 0: SetVBlankCallback(NULL); @@ -1198,25 +1394,28 @@ static bool8 sub_811A428(u8 taskId) ResetPaletteFade(); break; case 1: - if (!sub_811F28C()) + if (!InitEasyChatScreenWordData()) { - sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); + // Alloc failed, exit + ExitEasyChatScreen((MainCallback)GetWordTaskArg(taskId, TASKIDX_EXIT_CALLBACK)); } break; case 2: - if (!EasyChat_AllocateResources(data[EZCHAT_TASK_TYPE], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) + if (!InitEasyChatScreenStruct(tType, (u16 *)GetWordTaskArg(taskId, TASKIDX_WORDS), tPersonType)) { - sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); + // Alloc failed, exit + ExitEasyChatScreen((MainCallback)GetWordTaskArg(taskId, TASKIDX_EXIT_CALLBACK)); } break; case 3: - if (!sub_811BF8C()) + if (!InitEasyChatScreenControl()) { - sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); + // Alloc failed, exit + ExitEasyChatScreen((MainCallback)GetWordTaskArg(taskId, TASKIDX_EXIT_CALLBACK)); } break; case 4: - if (sub_811BFA4()) + if (LoadEasyChatScreen()) { return TRUE; } @@ -1224,15 +1423,15 @@ static bool8 sub_811A428(u8 taskId) default: return FALSE; } - data[EZCHAT_TASK_STATE] ++; + tState++; return TRUE; } -static void sub_811A4D0(MainCallback callback) +static void ExitEasyChatScreen(MainCallback callback) { - sub_811C13C(); - EasyChat_FreeResources(); - sub_811F2B8(); + FreeEasyChatScreenControl(); + FreeEasyChatScreenStruct(); + FreeEasyChatScreenWordData(); FreeAllWindowBuffers(); SetMainCallback2(callback); } @@ -1275,18 +1474,18 @@ void ShowEasyChatScreen(void) words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006]; displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case EASY_CHAT_TYPE_UNK_8: - words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words; + case EASY_CHAT_TYPE_DUMMY_SHOW: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].dummy.words; displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE; break; case EASY_CHAT_TYPE_TRENDY_PHRASE: words = (u16 *)gStringVar3; - words[0] = gSaveBlock1Ptr->easyChatPairs[0].words[0]; - words[1] = gSaveBlock1Ptr->easyChatPairs[0].words[1]; + words[0] = gSaveBlock1Ptr->dewfordTrends[0].words[0]; + words[1] = gSaveBlock1Ptr->dewfordTrends[0].words[1]; break; case EASY_CHAT_TYPE_GABBY_AND_TY: words = gSaveBlock1Ptr->gabbyAndTyData.quote; - *words = -1; + *words = EC_EMPTY_WORD; displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; case EASY_CHAT_TYPE_CONTEST_INTERVIEW: @@ -1303,7 +1502,7 @@ void ShowEasyChatScreen(void) break; case EASY_CHAT_TYPE_FAN_QUESTION: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanClubSpecial.words; - words[0] = -1; + words[0] = EC_EMPTY_WORD; displayedPersonType = EASY_CHAT_PERSON_BOY; break; case EASY_CHAT_TYPE_QUIZ_ANSWER: @@ -1321,7 +1520,7 @@ void ShowEasyChatScreen(void) words = gSaveBlock2Ptr->apprentices[0].speechWon; break; case EASY_CHAT_TYPE_QUESTIONNAIRE: - words = sub_801B058(); + words = GetQuestionnaireWordsPtr(); break; default: return; @@ -1345,7 +1544,7 @@ static void CB2_QuizLadyQuestion(void) if (!gPaletteFade.active) { lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; - lilycoveLady->quiz.playerAnswer = -1; + lilycoveLady->quiz.playerAnswer = EC_EMPTY_WORD; CleanupOverworldWindowsAndTilemaps(); DoQuizQuestionEasyChatScreen(); } @@ -1359,30 +1558,30 @@ void QuizLadyShowQuizQuestion(void) SetMainCallback2(CB2_QuizLadyQuestion); } -static int sub_811A868(u16 word) +static int GetQuizLadyScreenByFuncId(u16 funcId) { int i; - for (i = 0; i < ARRAY_COUNT(sUnknown_08597530); i ++) + for (i = 0; i < ARRAY_COUNT(sQuizLadyEasyChatScreens); i ++) { - if (word == sUnknown_08597530[i].word) + if (funcId == sQuizLadyEasyChatScreens[i].funcId) return i; } return -1; } -static bool32 sub_811A88C(u16 word) +static bool32 IsFuncIdForQuizLadyScreen(u16 funcId) { - return sub_811A868(word) == -1 ? FALSE : TRUE; + return GetQuizLadyScreenByFuncId(funcId) == -1 ? FALSE : TRUE; } -static void sub_811A8A4(u16 word) +static void EnterQuizLadyScreen(u16 funcId) { int i; - i = sub_811A868(word); + i = GetQuizLadyScreenByFuncId(funcId); ResetTasks(); - sub_811A4D0(sUnknown_08597530[i].callback); + ExitEasyChatScreen(sQuizLadyEasyChatScreens[i].callback); } static void DoQuizAnswerEasyChatScreen(void) @@ -1418,7 +1617,7 @@ static void DoQuizSetQuestionEasyChatScreen(void) EASY_CHAT_PERSON_DISPLAY_NONE); } -static bool8 EasyChat_AllocateResources(u8 type, u16 *words, u8 displayedPersonType) +static bool8 InitEasyChatScreenStruct(u8 type, u16 *words, u8 displayedPersonType) { u8 templateId; int i; @@ -1428,116 +1627,121 @@ static bool8 EasyChat_AllocateResources(u8 type, u16 *words, u8 displayedPersonT return FALSE; sEasyChatScreen->type = type; - sEasyChatScreen->words = words; + sEasyChatScreen->savedPhrase = words; sEasyChatScreen->mainCursorColumn = 0; sEasyChatScreen->mainCursorRow = 0; - sEasyChatScreen->unk_09 = 0; + sEasyChatScreen->inAlphabetMode = FALSE; sEasyChatScreen->displayedPersonType = displayedPersonType; - sEasyChatScreen->unk_13 = 0; + sEasyChatScreen->unused = 0; templateId = GetEachChatScreenTemplateId(type); if (type == EASY_CHAT_TYPE_QUIZ_QUESTION) { - sub_811BDF0(sEasyChatScreen->unk_14); - sEasyChatScreen->titleText = sEasyChatScreen->unk_14; - sEasyChatScreen->state = 7; + GetQuizTitle(sEasyChatScreen->quizTitle); + sEasyChatScreen->titleText = sEasyChatScreen->quizTitle; + sEasyChatScreen->inputState = INPUTSTATE_QUIZ_QUESTION; } else { - sEasyChatScreen->state = 0; + sEasyChatScreen->inputState = INPUTSTATE_PHRASE; sEasyChatScreen->titleText = sEasyChatScreenTemplates[templateId].titleText; } sEasyChatScreen->numColumns = sEasyChatScreenTemplates[templateId].numColumns; sEasyChatScreen->numRows = sEasyChatScreenTemplates[templateId].numRows; - sEasyChatScreen->unk_07 = sEasyChatScreen->numColumns * sEasyChatScreen->numRows; + sEasyChatScreen->maxWords = sEasyChatScreen->numColumns * sEasyChatScreen->numRows; sEasyChatScreen->templateId = templateId; - if (sEasyChatScreen->unk_07 > 9) - sEasyChatScreen->unk_07 = 9; + if (sEasyChatScreen->maxWords > ARRAY_COUNT(sEasyChatScreen->currentPhrase)) + sEasyChatScreen->maxWords = ARRAY_COUNT(sEasyChatScreen->currentPhrase); if (words != NULL) { - CpuCopy16(words, sEasyChatScreen->ecWordBuffer, sEasyChatScreen->unk_07 * sizeof(u16)); + // Phrase starts with words filled in, copy to current phrase + CpuCopy16(words, sEasyChatScreen->currentPhrase, sEasyChatScreen->maxWords * sizeof(u16)); } else { - for (i = 0; i < sEasyChatScreen->unk_07; i ++) - sEasyChatScreen->ecWordBuffer[i] = -1; + // Phrase starts with no words, fill with empty words and save + for (i = 0; i < sEasyChatScreen->maxWords; i ++) + sEasyChatScreen->currentPhrase[i] = EC_EMPTY_WORD; - sEasyChatScreen->words = sEasyChatScreen->ecWordBuffer; + sEasyChatScreen->savedPhrase = sEasyChatScreen->currentPhrase; } - sEasyChatScreen->unk_0d = (sub_811F3AC() - 1) / 2 + 1; + sEasyChatScreen->keyboardLastRow = (GetNumUnlockedEasyChatGroups() - 1) / 2 + 1; return TRUE; } -static void EasyChat_FreeResources(void) +static void FreeEasyChatScreenStruct(void) { if (sEasyChatScreen != NULL) FREE_AND_SET_NULL(sEasyChatScreen); } -static u16 sub_811AAAC(void) +// Returns the function ID of the action to take as a result of player's input. +// If no action is needed, returns ECFUNC_NONE +static u16 HandleEasyChatInput(void) { - switch (sEasyChatScreen->state) + switch (sEasyChatScreen->inputState) { - case 0: - return sub_811AB68(); - case 1: - return sub_811ACDC(); - case 2: - return sub_811AE44(); - case 3: - return sub_811AF00(); - case 4: - return sub_811AF8C(); - case 5: - return sub_811B040(); - case 6: - return sub_811AFEC(); - case 7: - return sub_811B08C(); - case 8: - return sub_811B0BC(); - case 9: - return sub_811B0E8(); - case 10: - return sub_811B0F8(); + case INPUTSTATE_PHRASE: + return HandleEasyChatInput_Phrase(); + case INPUTSTATE_MAIN_SCREEN_BUTTONS: + return HandleEasyChatInput_MainScreenButtons(); + case INPUTSTATE_KEYBOARD: + return HandleEasyChatInput_Keyboard(); + case INPUTSTATE_WORD_SELECT: + return HandleEasyChatInput_WordSelect(); + case INPUTSTATE_EXIT_PROMPT: + return HandleEasyChatInput_ExitPrompt(); + case INPUTSTATE_DELETE_ALL_YES_NO: + return HandleEasyChatInput_DeleteAllYesNo(); + case INPUTSTATE_CONFIRM_WORDS_YES_NO: + return HandleEasyChatInput_ConfirmWordsYesNo(); + case INPUTSTATE_QUIZ_QUESTION: + return HandleEasyChatInput_QuizQuestion(); + case INPUTSTATE_WAIT_FOR_MSG: + return HandleEasyChatInput_WaitForMsg(); + case INPUTSTATE_START_CONFIRM_LYRICS: + return HandleEasyChatInput_StartConfirmLyrics(); + case INPUTSTATE_CONFIRM_LYRICS_YES_NO: + return HandleEasyChatInput_ConfirmLyricsYesNo(); } - return 0; + return ECFUNC_NONE; } -bool32 sub_811AB44(void) +static bool32 IsCurrentFrame2x5(void) { switch (GetEasyChatScreenFrameId()) { - case 2: - case 7: - case 8: + case FRAMEID_MAIL: + case FRAMEID_QUIZ_QUESTION: + case FRAMEID_QUIZ_SET_QUESTION: return TRUE; } return FALSE; } -static u16 sub_811AB68(void) +// Handles main screen input while cursor is on a word in the phrase +static u16 HandleEasyChatInput_Phrase(void) { do { if (JOY_NEW(A_BUTTON)) { - sub_811BF78(); - sEasyChatScreen->state = 2; - sEasyChatScreen->unk_0a = 0; - sEasyChatScreen->unk_0b = 0; - sEasyChatScreen->unk_0c = 0; - return 9; + ClearUnusedField(); + sEasyChatScreen->inputState = INPUTSTATE_KEYBOARD; + sEasyChatScreen->keyboardColumn = 0; + sEasyChatScreen->keyboardRow = 0; + sEasyChatScreen->keyboardScrollOffset = 0; + return ECFUNC_OPEN_KEYBOARD; } else if (JOY_NEW(B_BUTTON)) { - return sub_811B150(); + return StartConfirmExitPrompt(); } else if (JOY_NEW(START_BUTTON)) { - return sub_811B1B4(); + return TryConfirmWords(); } else if (JOY_NEW(DPAD_UP)) { @@ -1560,37 +1764,42 @@ static u16 sub_811AB68(void) break; } - return 0; + return ECFUNC_NONE; } while (0); + // Handle D-Pad input + + // Wrap row if (sEasyChatScreen->mainCursorRow < 0) sEasyChatScreen->mainCursorRow = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows; - if (sEasyChatScreen->mainCursorRow > sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) sEasyChatScreen->mainCursorRow = 0; if (sEasyChatScreen->mainCursorRow == sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) { + // Moved onto bottom row (buttons) if (sEasyChatScreen->mainCursorColumn > 2) sEasyChatScreen->mainCursorColumn = 2; - sEasyChatScreen->state = 1; - return 3; + sEasyChatScreen->inputState = INPUTSTATE_MAIN_SCREEN_BUTTONS; + return ECFUNC_UPDATE_MAIN_CURSOR_ON_BUTTONS; } + // Wrap column if (sEasyChatScreen->mainCursorColumn < 0) sEasyChatScreen->mainCursorColumn = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns - 1; - if (sEasyChatScreen->mainCursorColumn >= sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns) sEasyChatScreen->mainCursorColumn = 0; - if (sub_811AB44() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) + // All 2x5 phrases are only 9 words long, exclude the bottom right (10th) position + if (IsCurrentFrame2x5() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) sEasyChatScreen->mainCursorColumn = 0; - return 2; + return ECFUNC_UPDATE_MAIN_CURSOR; } -static u16 sub_811ACDC(void) +// Handles main screen input while cursor is below the phrase on one of the buttons, e.g. Del. All or Cancel +static u16 HandleEasyChatInput_MainScreenButtons(void) { do { @@ -1598,24 +1807,24 @@ static u16 sub_811ACDC(void) { switch (sEasyChatScreen->mainCursorColumn) { - case 0: - return sub_811B184(); - case 1: - return sub_811B150(); - case 2: - return sub_811B1B4(); - case 3: - return sub_811B264(); + case 0: // Del. All button + return DoDeleteAllButton(); + case 1: // Cancel button + return StartConfirmExitPrompt(); + case 2: // OK button + return TryConfirmWords(); + case 3: // Quiz/Answer button + return DoQuizButton(); } } if (JOY_NEW(B_BUTTON)) { - return sub_811B150(); + return StartConfirmExitPrompt(); } else if (JOY_NEW(START_BUTTON)) { - return sub_811B1B4(); + return TryConfirmWords(); } else if (JOY_NEW(DPAD_UP)) { @@ -1638,7 +1847,7 @@ static u16 sub_811ACDC(void) break; } - return 0; + return ECFUNC_NONE; } while (0); if (sEasyChatScreen->mainCursorRow == sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) @@ -1650,790 +1859,803 @@ static u16 sub_811ACDC(void) if (sEasyChatScreen->mainCursorColumn >= numFooterColumns) sEasyChatScreen->mainCursorColumn = 0; - return 3; + return ECFUNC_UPDATE_MAIN_CURSOR_ON_BUTTONS; } if (sEasyChatScreen->mainCursorColumn >= sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns) sEasyChatScreen->mainCursorColumn = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns - 1; - if (sub_811AB44() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) + // All 2x5 phrases are only 9 words long, exclude the bottom right (10th) position + if (IsCurrentFrame2x5() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) sEasyChatScreen->mainCursorColumn = 0; - sEasyChatScreen->state = 0; - return 2; + sEasyChatScreen->inputState = INPUTSTATE_PHRASE; + return ECFUNC_UPDATE_MAIN_CURSOR; } -static u16 sub_811AE44(void) +static u16 HandleEasyChatInput_Keyboard(void) { if (JOY_NEW(B_BUTTON)) - return sub_811B32C(); + return ExitKeyboardToMainScreen(); if (JOY_NEW(A_BUTTON)) { - if (sEasyChatScreen->unk_0a != -1) - return sub_811B2B0(); + if (sEasyChatScreen->keyboardColumn != -1) + return SelectKeyboardGroup(); - switch (sEasyChatScreen->unk_0b) + // Cursor is in button window + switch (sEasyChatScreen->keyboardRow) { - case 0: - return sub_811B33C(); - case 1: - return sub_811B368(); - case 2: - return sub_811B32C(); + case 0: // Mode button + return StartSwitchKeyboardMode(); + case 1: // Delete button + return DeleteSelectedWord(); + case 2: // Cancel button + return ExitKeyboardToMainScreen(); } } if (JOY_NEW(SELECT_BUTTON)) - return sub_811B33C(); + return StartSwitchKeyboardMode(); if (JOY_REPEAT(DPAD_UP)) - return sub_811B528(2); + return MoveKeyboardCursor(INPUT_UP); if (JOY_REPEAT(DPAD_DOWN)) - return sub_811B528(3); + return MoveKeyboardCursor(INPUT_DOWN); if (JOY_REPEAT(DPAD_LEFT)) - return sub_811B528(1); + return MoveKeyboardCursor(INPUT_LEFT); if (JOY_REPEAT(DPAD_RIGHT)) - return sub_811B528(0); + return MoveKeyboardCursor(INPUT_RIGHT); - return 0; + return ECFUNC_NONE; } -static u16 sub_811AF00(void) +// Input handling for the lower window after a word group has been selected +static u16 HandleEasyChatInput_WordSelect(void) { if (JOY_NEW(B_BUTTON)) { - sEasyChatScreen->state = 2; - return 14; + sEasyChatScreen->inputState = INPUTSTATE_KEYBOARD; + return ECFUNC_RETURN_TO_KEYBOARD; } if (JOY_NEW(A_BUTTON)) - return sub_811B394(); + return SelectNewWord(); if (JOY_NEW(START_BUTTON)) - return sub_811B794(4); + return MoveWordSelectCursor(INPUT_START); if (JOY_NEW(SELECT_BUTTON)) - return sub_811B794(5); + return MoveWordSelectCursor(INPUT_SELECT); if (JOY_REPEAT(DPAD_UP)) - return sub_811B794(2); + return MoveWordSelectCursor(INPUT_UP); if (JOY_REPEAT(DPAD_DOWN)) - return sub_811B794(3); + return MoveWordSelectCursor(INPUT_DOWN); if (JOY_REPEAT(DPAD_LEFT)) - return sub_811B794(1); + return MoveWordSelectCursor(INPUT_LEFT); if (JOY_REPEAT(DPAD_RIGHT)) - return sub_811B794(0); + return MoveWordSelectCursor(INPUT_RIGHT); - return 0; + return ECFUNC_NONE; } -static u16 sub_811AF8C(void) +static u16 HandleEasyChatInput_ExitPrompt(void) { - u8 var0; - switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case MENU_B_PRESSED: // B Button - case 1: // No - sEasyChatScreen->state = sub_811B2A4(); - return 7; - case 0: // Yes + case MENU_B_PRESSED: + case 1: // No (Continue) + sEasyChatScreen->inputState = GetEasyChatBackupState(); + return ECFUNC_CLOSE_PROMPT; + case 0: // Yes (Exit) gSpecialVar_Result = 0; - var0 = sEasyChatScreen->type - EASY_CHAT_TYPE_QUIZ_SET_QUESTION; - if (var0 < 2) - sub_811B3E4(); + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION + || sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) + SaveCurrentPhrase(); - return 24; + return ECFUNC_EXIT; default: - return 0; + return ECFUNC_NONE; } } -static u16 sub_811AFEC(void) +static u16 HandleEasyChatInput_ConfirmWordsYesNo(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case MENU_B_PRESSED: // B Button + case MENU_B_PRESSED: case 1: // No - sEasyChatScreen->state = sub_811B2A4(); - return 7; + sEasyChatScreen->inputState = GetEasyChatBackupState(); + return ECFUNC_CLOSE_PROMPT; case 0: // Yes - sub_811BE9C(); - gSpecialVar_Result = sub_811B4EC(); - sub_811B3E4(); - return 24; + SetSpecialEasyChatResult(); + gSpecialVar_Result = GetEasyChatCompleted(); + SaveCurrentPhrase(); + return ECFUNC_EXIT; default: - return 0; + return ECFUNC_NONE; } } -static u16 sub_811B040(void) +static u16 HandleEasyChatInput_DeleteAllYesNo(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case MENU_B_PRESSED: // B Button + case MENU_B_PRESSED: case 1: // No - sEasyChatScreen->state = 1; - return 7; + sEasyChatScreen->inputState = INPUTSTATE_MAIN_SCREEN_BUTTONS; + return ECFUNC_CLOSE_PROMPT; case 0: // Yes - sub_811B418(); - sEasyChatScreen->state = 1; - return 8; + ResetCurrentPhrase(); + sEasyChatScreen->inputState = INPUTSTATE_MAIN_SCREEN_BUTTONS; + return ECFUNC_CLOSE_PROMPT_AFTER_DELETE; default: - return 0; + return ECFUNC_NONE; } } -static u16 sub_811B08C(void) +static u16 HandleEasyChatInput_QuizQuestion(void) { if (JOY_NEW(A_BUTTON)) - return 26; + return ECFUNC_QUIZ_ANSWER; if (JOY_NEW(B_BUTTON)) - return sub_811B150(); + return StartConfirmExitPrompt(); - return 0; + return ECFUNC_NONE; } -static u16 sub_811B0BC(void) +// A message has been printed. Wait for player to +// press A or B, then return to previous state +static u16 HandleEasyChatInput_WaitForMsg(void) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { - sEasyChatScreen->state = sub_811B2A4(); - return 7; + sEasyChatScreen->inputState = GetEasyChatBackupState(); + return ECFUNC_CLOSE_PROMPT; } - return 0; + return ECFUNC_NONE; } -static u16 sub_811B0E8(void) +// Odd, could have been skipped. Just passes to HandleEasyChatInput_ConfirmLyricsYesNo +static u16 HandleEasyChatInput_StartConfirmLyrics(void) { - sEasyChatScreen->state = 10; - return 6; + sEasyChatScreen->inputState = INPUTSTATE_CONFIRM_LYRICS_YES_NO; + return ECFUNC_PROMPT_CONFIRM; } -static u16 sub_811B0F8(void) +static u16 HandleEasyChatInput_ConfirmLyricsYesNo(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case MENU_B_PRESSED: // B Button + case MENU_B_PRESSED: case 1: // No - sub_811B454(); - sEasyChatScreen->stateBackup = 0; - sEasyChatScreen->state = 8; - return 31; + ResetCurrentPhraseToSaved(); + sEasyChatScreen->inputStateBackup = INPUTSTATE_PHRASE; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_SONG_TOO_SHORT; case 0: // Yes - gSpecialVar_Result = sub_811B4EC(); - sub_811B3E4(); - return 24; + gSpecialVar_Result = GetEasyChatCompleted(); + SaveCurrentPhrase(); + return ECFUNC_EXIT; default: - return 0; + return ECFUNC_NONE; } } -static u16 sub_811B150(void) +static u16 StartConfirmExitPrompt(void) { if (sEasyChatScreen->type == EASY_CHAT_TYPE_APPRENTICE || sEasyChatScreen->type == EASY_CHAT_TYPE_CONTEST_INTERVIEW) { - sEasyChatScreen->stateBackup = sEasyChatScreen->state; - sEasyChatScreen->state = 8; - return 34; + sEasyChatScreen->inputStateBackup = sEasyChatScreen->inputState; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_CANT_EXIT; } else { - sEasyChatScreen->stateBackup = sEasyChatScreen->state; - sEasyChatScreen->state = 4; - return 5; + sEasyChatScreen->inputStateBackup = sEasyChatScreen->inputState; + sEasyChatScreen->inputState = INPUTSTATE_EXIT_PROMPT; + return ECFUNC_PROMPT_EXIT; } } -static int sub_811B184(void) +static int DoDeleteAllButton(void) { - sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->inputStateBackup = sEasyChatScreen->inputState; if (sEasyChatScreen->type != EASY_CHAT_TYPE_BARD_SONG) { - sEasyChatScreen->state = 5; - return 4; + // Show Delete yes/no + sEasyChatScreen->inputState = INPUTSTATE_DELETE_ALL_YES_NO; + return ECFUNC_PROMPT_DELETE_ALL; } else { - sEasyChatScreen->stateBackup = sEasyChatScreen->state; - sEasyChatScreen->state = 8; - return 32; + // Cannot delete lyrics when setting Bard's song + sEasyChatScreen->inputStateBackup = sEasyChatScreen->inputState; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_CANT_DELETE_LYRICS; } } -static u16 sub_811B1B4(void) +static u16 TryConfirmWords(void) { - sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->inputStateBackup = sEasyChatScreen->inputState; if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION) { - if (sub_811BD64()) + if (IsQuizQuestionEmpty()) { - sEasyChatScreen->state = 8; - return 29; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_CREATE_QUIZ; } - if (sub_811BDB0()) + if (IsQuizAnswerEmpty()) { - sEasyChatScreen->state = 8; - return 30; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_SELECT_ANSWER; } - sEasyChatScreen->state = 6; - return 6; + sEasyChatScreen->inputState = INPUTSTATE_CONFIRM_WORDS_YES_NO; + return ECFUNC_PROMPT_CONFIRM; } else if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) { - if (sub_811BDB0()) + if (IsQuizAnswerEmpty()) { - sEasyChatScreen->state = 8; - return 30; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_SELECT_ANSWER; } - if (sub_811BD64()) + if (IsQuizQuestionEmpty()) { - sEasyChatScreen->state = 8; - return 29; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_CREATE_QUIZ; } - sEasyChatScreen->state = 6; - return 6; + sEasyChatScreen->inputState = INPUTSTATE_CONFIRM_WORDS_YES_NO; + return ECFUNC_PROMPT_CONFIRM; } else if (sEasyChatScreen->type == EASY_CHAT_TYPE_TRENDY_PHRASE || sEasyChatScreen->type == EASY_CHAT_TYPE_GOOD_SAYING) { - if (!sub_811BD2C()) + if (!IsCurrentPhraseFull()) { - sEasyChatScreen->state = 8; - return 33; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_COMBINE_TWO_WORDS; } - sEasyChatScreen->state = 6; - return 6; + sEasyChatScreen->inputState = INPUTSTATE_CONFIRM_WORDS_YES_NO; + return ECFUNC_PROMPT_CONFIRM; } else if (sEasyChatScreen->type == EASY_CHAT_TYPE_APPRENTICE || sEasyChatScreen->type == EASY_CHAT_TYPE_CONTEST_INTERVIEW) { - if (sub_811BCF4()) + if (IsCurrentPhraseEmpty()) { - sEasyChatScreen->state = 8; - return 34; + sEasyChatScreen->inputState = INPUTSTATE_WAIT_FOR_MSG; + return ECFUNC_MSG_CANT_EXIT; } - sEasyChatScreen->state = 6; - return 6; + sEasyChatScreen->inputState = INPUTSTATE_CONFIRM_WORDS_YES_NO; + return ECFUNC_PROMPT_CONFIRM; } else if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUESTIONNAIRE) { - sEasyChatScreen->state = 6; - return 6; + sEasyChatScreen->inputState = INPUTSTATE_CONFIRM_WORDS_YES_NO; + return ECFUNC_PROMPT_CONFIRM; } else { - if (sub_811BCF4() == 1 || !sub_811B4EC()) + if (IsCurrentPhraseEmpty() == TRUE || !GetEasyChatCompleted()) { - sEasyChatScreen->state = 4; - return 5; + sEasyChatScreen->inputState = INPUTSTATE_EXIT_PROMPT; + return ECFUNC_PROMPT_EXIT; } - sEasyChatScreen->state = 6; - return 6; + sEasyChatScreen->inputState = INPUTSTATE_CONFIRM_WORDS_YES_NO; + return ECFUNC_PROMPT_CONFIRM; } } -static int sub_811B264(void) +static int DoQuizButton(void) { - sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->inputStateBackup = sEasyChatScreen->inputState; switch (sEasyChatScreen->type) { case EASY_CHAT_TYPE_QUIZ_ANSWER: - return 25; + return ECFUNC_QUIZ_QUESTION; case EASY_CHAT_TYPE_QUIZ_SET_QUESTION: - sub_811B3E4(); - return 28; + SaveCurrentPhrase(); + return ECFUNC_SET_QUIZ_ANSWER; case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: - sub_811B3E4(); - return 27; + SaveCurrentPhrase(); + return ECFUNC_SET_QUIZ_QUESTION; default: - return 0; + return ECFUNC_NONE; } } -static u8 sub_811B2A4(void) +static u8 GetEasyChatBackupState(void) { - return sEasyChatScreen->stateBackup; + return sEasyChatScreen->inputStateBackup; } -static int sub_811B2B0(void) +static int SelectKeyboardGroup(void) { - u16 var1; + u16 numWords; - if (sEasyChatScreen->unk_09 == 0) + if (!sEasyChatScreen->inAlphabetMode) { - u8 groupId = sub_811F3B8(sub_811B8E8()); - sub_811F548(0, groupId); + u8 groupId = GetUnlockedEasyChatGroupId(GetSelectedGroupIndex()); + SetSelectedWordGroup(FALSE, groupId); } else { - sub_811F548(1, sub_811B908()); + SetSelectedWordGroup(TRUE, GetSelectedAlphabetGroupId()); } - var1 = sub_811F5B0(); - if (var1 == 0) - return 0; + numWords = GetNumWordsInSelectedGroup(); + if (numWords == 0) + return ECFUNC_NONE; - sEasyChatScreen->unk_0f = (var1 - 1) / 2; - sEasyChatScreen->unk_0e = 0; - sEasyChatScreen->unk_10 = 0; - sEasyChatScreen->unk_11 = 0; - sEasyChatScreen->state = 3; - return 11; + sEasyChatScreen->wordSelectLastRow = (numWords - 1) / 2; + sEasyChatScreen->wordSelectScrollOffset = 0; + sEasyChatScreen->wordSelectColumn = 0; + sEasyChatScreen->wordSelectRow = 0; + sEasyChatScreen->inputState = INPUTSTATE_WORD_SELECT; + return ECFUNC_OPEN_WORD_SELECT; } -static int sub_811B32C(void) +static int ExitKeyboardToMainScreen(void) { - sEasyChatScreen->state = 0; - return 10; + sEasyChatScreen->inputState = INPUTSTATE_PHRASE; + return ECFUNC_CLOSE_KEYBOARD; } -static int sub_811B33C(void) +static int StartSwitchKeyboardMode(void) { - sEasyChatScreen->unk_0a = 0; - sEasyChatScreen->unk_0b = 0; - sEasyChatScreen->unk_0c = 0; - if (!sEasyChatScreen->unk_09) - sEasyChatScreen->unk_09 = 1; + sEasyChatScreen->keyboardColumn = 0; + sEasyChatScreen->keyboardRow = 0; + sEasyChatScreen->keyboardScrollOffset = 0; + if (!sEasyChatScreen->inAlphabetMode) + sEasyChatScreen->inAlphabetMode = TRUE; else - sEasyChatScreen->unk_09 = 0; + sEasyChatScreen->inAlphabetMode = FALSE; - return 23; + return ECFUNC_SWITCH_KEYBOARD_MODE; } -static int sub_811B368(void) +static int DeleteSelectedWord(void) { if (sEasyChatScreen->type == EASY_CHAT_TYPE_BARD_SONG) { PlaySE(SE_FAILURE); - return 0; + return ECFUNC_NONE; } else { - sub_811B488(0xFFFF); - return 1; + SetSelectedWord(EC_EMPTY_WORD); + return ECFUNC_REPRINT_PHRASE; } } -static int sub_811B394(void) +static int SelectNewWord(void) { - u16 easyChatWord = sub_811F578(sub_811B940()); - if (sub_811BF88(easyChatWord)) + u16 easyChatWord = GetWordFromSelectedGroup(GetSelectedWordIndex()); + if (DummyWordCheck(easyChatWord)) { + // Never reached. Would disallow selecting certain words PlaySE(SE_FAILURE); - return 0; + return ECFUNC_NONE; } else { - sub_811B488(easyChatWord); + SetSelectedWord(easyChatWord); if (sEasyChatScreen->type != EASY_CHAT_TYPE_BARD_SONG) { - sEasyChatScreen->state = 0; - return 12; + sEasyChatScreen->inputState = INPUTSTATE_PHRASE; + return ECFUNC_CLOSE_WORD_SELECT; } else { - sEasyChatScreen->state = 9; - return 13; + sEasyChatScreen->inputState = INPUTSTATE_START_CONFIRM_LYRICS; + return ECFUNC_PROMPT_CONFIRM_LYRICS; } } } -static void sub_811B3E4(void) +static void SaveCurrentPhrase(void) { int i; - for (i = 0; i < sEasyChatScreen->unk_07; i++) - sEasyChatScreen->words[i] = sEasyChatScreen->ecWordBuffer[i]; + for (i = 0; i < sEasyChatScreen->maxWords; i++) + sEasyChatScreen->savedPhrase[i] = sEasyChatScreen->currentPhrase[i]; } -static void sub_811B418(void) +static void ResetCurrentPhrase(void) { int i; - for (i = 0; i < sEasyChatScreen->unk_07; i++) - sEasyChatScreen->ecWordBuffer[i] = 0xFFFF; + for (i = 0; i < sEasyChatScreen->maxWords; i++) + sEasyChatScreen->currentPhrase[i] = EC_EMPTY_WORD; } -static void sub_811B454(void) +static void ResetCurrentPhraseToSaved(void) { int i; - for (i = 0; i < sEasyChatScreen->unk_07; i++) - sEasyChatScreen->ecWordBuffer[i] = sEasyChatScreen->words[i]; + for (i = 0; i < sEasyChatScreen->maxWords; i++) + sEasyChatScreen->currentPhrase[i] = sEasyChatScreen->savedPhrase[i]; } -static void sub_811B488(u16 easyChatWord) +static void SetSelectedWord(u16 easyChatWord) { - u16 index = sub_811B8C8(); - sEasyChatScreen->ecWordBuffer[index] = easyChatWord; + u16 index = GetWordIndexToReplace(); + sEasyChatScreen->currentPhrase[index] = easyChatWord; } -static u8 sub_811B4AC(void) +// Compare current phrase to the original saved phrase +static bool8 DidPhraseChange(void) { u16 i; - for (i = 0; i < sEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->maxWords; i++) { - if (sEasyChatScreen->ecWordBuffer[i] != sEasyChatScreen->words[i]) - return 1; + if (sEasyChatScreen->currentPhrase[i] != sEasyChatScreen->savedPhrase[i]) + return TRUE; } - return 0; + return FALSE; } -static int sub_811B4EC(void) +// 'Completed' if the phrase was changed, or in the case of making a quiz, the question and answer were filled out +static bool32 GetEasyChatCompleted(void) { - u8 var0 = sEasyChatScreen->type - EASY_CHAT_TYPE_QUIZ_SET_QUESTION; - if (var0 < 2) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION + || sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) { - if (sub_811BD64()) - return 0; + if (IsQuizQuestionEmpty()) + return FALSE; - if (sub_811BDB0()) - return 0; + if (IsQuizAnswerEmpty()) + return FALSE; - return 1; + return TRUE; } else { - return sub_811B4AC(); + return DidPhraseChange(); } } -static u16 sub_811B528(int arg0) +static u16 MoveKeyboardCursor(int input) { - if (sEasyChatScreen->unk_0a != -1) + if (sEasyChatScreen->keyboardColumn != -1) { - if (sEasyChatScreen->unk_09 == 0) - return sub_811B568(arg0); + if (!sEasyChatScreen->inAlphabetMode) + return MoveKeyboardCursor_GroupNames(input); else - return sub_811B634(arg0); + return MoveKeyboardCursor_Alphabet(input); } else { - return sub_811B6C4(arg0); + return MoveKeyboardCursor_ButtonWindow(input); } } -static int sub_811B568(u32 arg0) +static int MoveKeyboardCursor_GroupNames(u32 input) { - switch (arg0) + switch (input) { - case 2: - if (sEasyChatScreen->unk_0b != -sEasyChatScreen->unk_0c) + case INPUT_UP: + if (sEasyChatScreen->keyboardRow != -sEasyChatScreen->keyboardScrollOffset) { - if (sEasyChatScreen->unk_0b) + if (sEasyChatScreen->keyboardRow) { - sEasyChatScreen->unk_0b--; - return 15; + sEasyChatScreen->keyboardRow--; + return ECFUNC_UPDATE_KEYBOARD_CURSOR; } else { - sEasyChatScreen->unk_0c--; - return 17; + sEasyChatScreen->keyboardScrollOffset--; + return ECFUNC_GROUP_NAMES_SCROLL_UP; } } break; - case 3: - if (sEasyChatScreen->unk_0b + sEasyChatScreen->unk_0c < sEasyChatScreen->unk_0d - 1) + case INPUT_DOWN: + if (sEasyChatScreen->keyboardRow + sEasyChatScreen->keyboardScrollOffset < sEasyChatScreen->keyboardLastRow - 1) { - int var0; - if (sEasyChatScreen->unk_0b < 3) + int funcId; + if (sEasyChatScreen->keyboardRow < NUM_GROUP_NAME_ROWS - 1) { - sEasyChatScreen->unk_0b++; - var0 = 15; + sEasyChatScreen->keyboardRow++; + funcId = ECFUNC_UPDATE_KEYBOARD_CURSOR; } else { - sEasyChatScreen->unk_0c++; - var0 = 16; + sEasyChatScreen->keyboardScrollOffset++; + funcId = ECFUNC_GROUP_NAMES_SCROLL_DOWN; } - sub_811B978(); - return var0; + ReduceToValidKeyboardColumn(); + return funcId; } break; - case 1: - if (sEasyChatScreen->unk_0a) - sEasyChatScreen->unk_0a--; + case INPUT_LEFT: + if (sEasyChatScreen->keyboardColumn) + sEasyChatScreen->keyboardColumn--; else - sub_811B744(); + SetKeyboardCursorInButtonWindow(); - return 15; - case 0: - if (sEasyChatScreen->unk_0a < 1) + return ECFUNC_UPDATE_KEYBOARD_CURSOR; + case INPUT_RIGHT: + if (sEasyChatScreen->keyboardColumn < 1) { - sEasyChatScreen->unk_0a++; - if (sub_811B9C8()) - sub_811B744(); + sEasyChatScreen->keyboardColumn++; + if (IsSelectedKeyboardIndexInvalid()) + SetKeyboardCursorInButtonWindow(); } else { - sub_811B744(); + SetKeyboardCursorInButtonWindow(); } - return 15; + return ECFUNC_UPDATE_KEYBOARD_CURSOR; } - return 0; + return ECFUNC_NONE; } -static int sub_811B634(u32 arg0) +static int MoveKeyboardCursor_Alphabet(u32 input) { - switch (arg0) + switch (input) { - case 2: - if (sEasyChatScreen->unk_0b > 0) - sEasyChatScreen->unk_0b--; + case INPUT_UP: + if (sEasyChatScreen->keyboardRow > 0) + sEasyChatScreen->keyboardRow--; else - sEasyChatScreen->unk_0b = 3; + sEasyChatScreen->keyboardRow = NUM_ALPHABET_ROWS - 1; - sub_811B978(); - return 15; - case 3: - if (sEasyChatScreen->unk_0b < 3) - sEasyChatScreen->unk_0b++; + ReduceToValidKeyboardColumn(); + return ECFUNC_UPDATE_KEYBOARD_CURSOR; + case INPUT_DOWN: + if (sEasyChatScreen->keyboardRow < NUM_ALPHABET_ROWS - 1) + sEasyChatScreen->keyboardRow++; else - sEasyChatScreen->unk_0b = 0; + sEasyChatScreen->keyboardRow = 0; - sub_811B978(); - return 15; - case 0: - sEasyChatScreen->unk_0a++; - if (sub_811B9C8()) - sub_811B744(); + ReduceToValidKeyboardColumn(); + return ECFUNC_UPDATE_KEYBOARD_CURSOR; + case INPUT_RIGHT: + sEasyChatScreen->keyboardColumn++; + if (IsSelectedKeyboardIndexInvalid()) + SetKeyboardCursorInButtonWindow(); - return 15; - case 1: - sEasyChatScreen->unk_0a--; - if (sEasyChatScreen->unk_0a < 0) - sub_811B744(); + return ECFUNC_UPDATE_KEYBOARD_CURSOR; + case INPUT_LEFT: + sEasyChatScreen->keyboardColumn--; + if (sEasyChatScreen->keyboardColumn < 0) + SetKeyboardCursorInButtonWindow(); - return 15; + return ECFUNC_UPDATE_KEYBOARD_CURSOR; } - return 0; + return ECFUNC_NONE; } -static int sub_811B6C4(u32 arg0) +static int MoveKeyboardCursor_ButtonWindow(u32 input) { - switch (arg0) + switch (input) { - case 2: - if (sEasyChatScreen->unk_0b) - sEasyChatScreen->unk_0b--; + case INPUT_UP: + if (sEasyChatScreen->keyboardRow) + sEasyChatScreen->keyboardRow--; else - sEasyChatScreen->unk_0b = 2; + sEasyChatScreen->keyboardRow = NUM_BUTTON_ROWS - 1; - return 15; - case 3: - if (sEasyChatScreen->unk_0b < 2) - sEasyChatScreen->unk_0b++; + return ECFUNC_UPDATE_KEYBOARD_CURSOR; + case INPUT_DOWN: + if (sEasyChatScreen->keyboardRow < NUM_BUTTON_ROWS - 1) + sEasyChatScreen->keyboardRow++; else - sEasyChatScreen->unk_0b = 0; + sEasyChatScreen->keyboardRow = 0; - return 15; - case 1: - sEasyChatScreen->unk_0b++; - sub_811B768(); - return 15; - case 0: - sEasyChatScreen->unk_0a = 0; - sEasyChatScreen->unk_0b++; - return 15; + return ECFUNC_UPDATE_KEYBOARD_CURSOR; + case INPUT_LEFT: + sEasyChatScreen->keyboardRow++; + SetKeyboardCursorToLastColumn(); + return ECFUNC_UPDATE_KEYBOARD_CURSOR; + case INPUT_RIGHT: + sEasyChatScreen->keyboardColumn = 0; + sEasyChatScreen->keyboardRow++; + return ECFUNC_UPDATE_KEYBOARD_CURSOR; } - return 0; + return ECFUNC_NONE; } -static void sub_811B744(void) +static void SetKeyboardCursorInButtonWindow(void) { - sEasyChatScreen->unk_0a = 0xFF; - if (sEasyChatScreen->unk_0b) - sEasyChatScreen->unk_0b--; + sEasyChatScreen->keyboardColumn = -1; + if (sEasyChatScreen->keyboardRow) + sEasyChatScreen->keyboardRow--; } -static void sub_811B768(void) +static void SetKeyboardCursorToLastColumn(void) { - if (sEasyChatScreen->unk_09 == 0) + if (!sEasyChatScreen->inAlphabetMode) { - sEasyChatScreen->unk_0a = 1; - sub_811B978(); + sEasyChatScreen->keyboardColumn = 1; + ReduceToValidKeyboardColumn(); } else { - sEasyChatScreen->unk_0a = sub_811B960(sEasyChatScreen->unk_0b); + sEasyChatScreen->keyboardColumn = GetLastAlphabetColumn(sEasyChatScreen->keyboardRow); } } -static u16 sub_811B794(u32 arg0) +static u16 MoveWordSelectCursor(u32 input) { - u16 result; - switch (arg0) + u16 funcId; + switch (input) { - case 2: - if (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e > 0) + case INPUT_UP: + if (sEasyChatScreen->wordSelectRow + sEasyChatScreen->wordSelectScrollOffset > 0) { - if (sEasyChatScreen->unk_11 > 0) + if (sEasyChatScreen->wordSelectRow > 0) { - sEasyChatScreen->unk_11--; - result = 18; + sEasyChatScreen->wordSelectRow--; + funcId = ECFUNC_UPDATE_WORD_SELECT_CURSOR; } else { - sEasyChatScreen->unk_0e--; - result = 19; + sEasyChatScreen->wordSelectScrollOffset--; + funcId = ECFUNC_WORD_SELECT_SCROLL_UP; } - sub_811B9A0(); - return result; + ReduceToValidWordSelectColumn(); + return funcId; } break; - case 3: - if (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e < sEasyChatScreen->unk_0f) + case INPUT_DOWN: + if (sEasyChatScreen->wordSelectRow + sEasyChatScreen->wordSelectScrollOffset < sEasyChatScreen->wordSelectLastRow) { - if (sEasyChatScreen->unk_11 < 3) + if (sEasyChatScreen->wordSelectRow < NUM_WORD_SELECT_ROWS - 1) { - sEasyChatScreen->unk_11++; - result = 18; + sEasyChatScreen->wordSelectRow++; + funcId = ECFUNC_UPDATE_WORD_SELECT_CURSOR; } else { - sEasyChatScreen->unk_0e++; - result = 20; + sEasyChatScreen->wordSelectScrollOffset++; + funcId = ECFUNC_WORD_SELECT_SCROLL_DOWN; } - sub_811B9A0(); - return result; + ReduceToValidWordSelectColumn(); + return funcId; } break; - case 1: - if (sEasyChatScreen->unk_10 > 0) - sEasyChatScreen->unk_10--; + case INPUT_LEFT: + if (sEasyChatScreen->wordSelectColumn > 0) + sEasyChatScreen->wordSelectColumn--; else - sEasyChatScreen->unk_10 = 1; + sEasyChatScreen->wordSelectColumn = 1; - sub_811B9A0(); - return 18; - case 0: - if (sEasyChatScreen->unk_10 < 1) + ReduceToValidWordSelectColumn(); + return ECFUNC_UPDATE_WORD_SELECT_CURSOR; + case INPUT_RIGHT: + if (sEasyChatScreen->wordSelectColumn < 1) { - sEasyChatScreen->unk_10++; - if (sub_811BA1C()) - sEasyChatScreen->unk_10 = 0; + sEasyChatScreen->wordSelectColumn++; + if (IsSelectedWordIndexInvalid()) + sEasyChatScreen->wordSelectColumn = 0; } else { - sEasyChatScreen->unk_10 = 0; + sEasyChatScreen->wordSelectColumn = 0; } - return 18; - case 4: - if (sEasyChatScreen->unk_0e) + return ECFUNC_UPDATE_WORD_SELECT_CURSOR; + case INPUT_START: + // Page scroll up + if (sEasyChatScreen->wordSelectScrollOffset) { - if (sEasyChatScreen->unk_0e > 3) - sEasyChatScreen->unk_0e -= 4; + if (sEasyChatScreen->wordSelectScrollOffset >= NUM_WORD_SELECT_ROWS) + sEasyChatScreen->wordSelectScrollOffset -= NUM_WORD_SELECT_ROWS; else - sEasyChatScreen->unk_0e = 0; + sEasyChatScreen->wordSelectScrollOffset = 0; - return 21; + return ECFUNC_WORD_SELECT_PAGE_UP; } break; - case 5: - if (sEasyChatScreen->unk_0e <= sEasyChatScreen->unk_0f - 4) + case INPUT_SELECT: + // Page scroll down + if (sEasyChatScreen->wordSelectScrollOffset <= sEasyChatScreen->wordSelectLastRow - NUM_WORD_SELECT_ROWS) { - sEasyChatScreen->unk_0e += 4; - if (sEasyChatScreen->unk_0e > sEasyChatScreen->unk_0f - 3) - sEasyChatScreen->unk_0e = sEasyChatScreen->unk_0f + 0xFD; + sEasyChatScreen->wordSelectScrollOffset += NUM_WORD_SELECT_ROWS; + if (sEasyChatScreen->wordSelectScrollOffset > sEasyChatScreen->wordSelectLastRow - NUM_WORD_SELECT_ROWS + 1) + sEasyChatScreen->wordSelectScrollOffset = sEasyChatScreen->wordSelectLastRow - NUM_WORD_SELECT_ROWS + 1; - sub_811B9A0(); - return 22; + ReduceToValidWordSelectColumn(); + return ECFUNC_WORD_SELECT_PAGE_DOWN; } break; } - return 0; + return ECFUNC_NONE; } -static u16 sub_811B8C8(void) +static u16 GetWordIndexToReplace(void) { return (sEasyChatScreen->mainCursorRow * sEasyChatScreen->numColumns) + sEasyChatScreen->mainCursorColumn; } -static u16 sub_811B8E8(void) +static u16 GetSelectedGroupIndex(void) { - return 2 * (sEasyChatScreen->unk_0b + sEasyChatScreen->unk_0c) + sEasyChatScreen->unk_0a; + return NUM_GROUP_NAME_COLUMNS * (sEasyChatScreen->keyboardRow + sEasyChatScreen->keyboardScrollOffset) + sEasyChatScreen->keyboardColumn; } -static int sub_811B908(void) +static int GetSelectedAlphabetGroupId(void) { - int var0 = (u8)sEasyChatScreen->unk_0a < 7 ? sEasyChatScreen->unk_0a : 0; - int var1 = (u8)sEasyChatScreen->unk_0b < 4 ? sEasyChatScreen->unk_0b : 0; - return sUnknown_08597748[var1][var0]; + int column = (u8)sEasyChatScreen->keyboardColumn < NUM_ALPHABET_COLUMNS ? sEasyChatScreen->keyboardColumn : 0; + int row = (u8)sEasyChatScreen->keyboardRow < NUM_ALPHABET_ROWS ? sEasyChatScreen->keyboardRow : 0; + return sAlphabetGroupIdMap[row][column]; } -static u16 sub_811B940(void) +static u16 GetSelectedWordIndex(void) { - return 2 * (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e) + sEasyChatScreen->unk_10; + return NUM_WORD_SELECT_COLUMNS * (sEasyChatScreen->wordSelectRow + sEasyChatScreen->wordSelectScrollOffset) + sEasyChatScreen->wordSelectColumn; } -static u8 sub_811B960(u8 arg0) +// Get the index of the last column in the alphabet keyboard, depending on current row +static u8 GetLastAlphabetColumn(u8 row) { - switch (arg0) + switch (row) { case 0: default: - return 6; + return NUM_ALPHABET_COLUMNS - 1; case 1: - return 5; + return NUM_ALPHABET_COLUMNS - 2; // At 6 letters, only the 2nd row (index 1) has less than the max columns + // The 3rd and 4th row have 7 letters, the 1st row has 6 letters and 'Others' } } -static void sub_811B978(void) +static void ReduceToValidKeyboardColumn(void) { - while (sub_811B9C8()) + while (IsSelectedKeyboardIndexInvalid()) { - if (sEasyChatScreen->unk_0a) - sEasyChatScreen->unk_0a--; + if (sEasyChatScreen->keyboardColumn) + sEasyChatScreen->keyboardColumn--; else break; } } -static void sub_811B9A0(void) +static void ReduceToValidWordSelectColumn(void) { - while (sub_811BA1C()) + while (IsSelectedWordIndexInvalid()) { - if (sEasyChatScreen->unk_10) - sEasyChatScreen->unk_10--; + if (sEasyChatScreen->wordSelectColumn) + sEasyChatScreen->wordSelectColumn--; else break; } } -static u8 sub_811B9C8(void) +static bool8 IsSelectedKeyboardIndexInvalid(void) { - if (sEasyChatScreen->unk_09 == 0) - return sub_811B8E8() >= sub_811F3AC() ? 1 : 0; + if (!sEasyChatScreen->inAlphabetMode) + return GetSelectedGroupIndex() >= GetNumUnlockedEasyChatGroups() ? TRUE : FALSE; else - return sEasyChatScreen->unk_0a > sub_811B960(sEasyChatScreen->unk_0b) ? 1 : 0; + return sEasyChatScreen->keyboardColumn > GetLastAlphabetColumn(sEasyChatScreen->keyboardRow) ? TRUE : FALSE; } -static u8 sub_811BA1C(void) +static bool8 IsSelectedWordIndexInvalid(void) { - return sub_811B940() >= sub_811F5B0() ? 1 : 0; + return GetSelectedWordIndex() >= GetNumWordsInSelectedGroup() ? TRUE : FALSE; } static int FooterHasFourOptions(void) @@ -2456,9 +2678,9 @@ const u8 *GetTitleText(void) return sEasyChatScreen->titleText; } -static u16 *GetEasyChatWordBuffer(void) +static u16 *GetCurrentPhrase(void) { - return sEasyChatScreen->ecWordBuffer; + return sEasyChatScreen->currentPhrase; } static u8 GetNumRows(void) @@ -2493,7 +2715,7 @@ static void GetEasyChatConfirmText(const u8 **str1, const u8 **str2) *str2 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].confirmText2; } -static void sub_811BB40(const u8 **str1, const u8 **str2) +static void GetEasyChatConfirmExitText(const u8 **str1, const u8 **str2) { switch (sEasyChatScreen->type) { @@ -2520,75 +2742,75 @@ static void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2) *str2 = gText_BeDeletedThatOkay; } -void sub_811BB9C(u8 *arg0, u8 *arg1) +static void GetKeyboardCursorColAndRow(u8 *column, u8 *row) { - *arg0 = sEasyChatScreen->unk_0a; - *arg1 = sEasyChatScreen->unk_0b; + *column = sEasyChatScreen->keyboardColumn; + *row = sEasyChatScreen->keyboardRow; } -u8 sub_811BBB0(void) +static bool8 GetInAlphabetMode(void) { - return sEasyChatScreen->unk_09; + return sEasyChatScreen->inAlphabetMode; } -u8 sub_811BBBC(void) +static u8 GetKeyboardScrollOffset(void) { - return sEasyChatScreen->unk_0c; + return sEasyChatScreen->keyboardScrollOffset; } -void sub_811BBC8(u8 *arg0, u8 *arg1) +static void GetWordSelectColAndRow(u8 *column, u8 *row) { - *arg0 = sEasyChatScreen->unk_10; - *arg1 = sEasyChatScreen->unk_11; + *column = sEasyChatScreen->wordSelectColumn; + *row = sEasyChatScreen->wordSelectRow; } -u8 sub_811BBDC(void) +static u8 GetWordSelectScrollOffset(void) { - return sEasyChatScreen->unk_0e; + return sEasyChatScreen->wordSelectScrollOffset; } -u8 sub_811BBE8(void) +static u8 GetWordSelectLastRow(void) { - return sEasyChatScreen->unk_0f; + return sEasyChatScreen->wordSelectLastRow; } -static u8 unref_sub_811BBF4(void) +static u8 UnusedDummy(void) { - return 0; + return FALSE; } -int sub_811BBF8(void) +static bool32 CanScrollUp(void) { - switch (sEasyChatScreen->state) + switch (sEasyChatScreen->inputState) { - case 2: - if (sEasyChatScreen->unk_09 == 0 && sEasyChatScreen->unk_0c) - return 1; + case INPUTSTATE_KEYBOARD: + if (!sEasyChatScreen->inAlphabetMode && sEasyChatScreen->keyboardScrollOffset) + return TRUE; break; - case 3: - if (sEasyChatScreen->unk_0e) - return 1; + case INPUTSTATE_WORD_SELECT: + if (sEasyChatScreen->wordSelectScrollOffset) + return TRUE; break; } - return 0; + return FALSE; } -int sub_811BC2C(void) +static bool32 CanScrollDown(void) { - switch (sEasyChatScreen->state) + switch (sEasyChatScreen->inputState) { - case 2: - if (sEasyChatScreen->unk_09 == 0 && sEasyChatScreen->unk_0c + 4 <= sEasyChatScreen->unk_0d - 1) - return 1; + case INPUTSTATE_KEYBOARD: + if (!sEasyChatScreen->inAlphabetMode && sEasyChatScreen->keyboardScrollOffset + NUM_GROUP_NAME_ROWS <= sEasyChatScreen->keyboardLastRow - 1) + return TRUE; break; - case 3: - if (sEasyChatScreen->unk_0e + 4 <= sEasyChatScreen->unk_0f) - return 1; + case INPUTSTATE_WORD_SELECT: + if (sEasyChatScreen->wordSelectScrollOffset + NUM_WORD_SELECT_ROWS <= sEasyChatScreen->wordSelectLastRow) + return TRUE; break; } - return 0; + return FALSE; } static int FooterHasFourOptions_(void) @@ -2602,7 +2824,7 @@ static bool8 IsPhraseDifferentThanPlayerInput(const u16 *phrase, u8 phraseLength for (i = 0; i < phraseLength; i++) { - if (phrase[i] != sEasyChatScreen->ecWordBuffer[i]) + if (phrase[i] != sEasyChatScreen->currentPhrase[i]) return TRUE; } @@ -2627,65 +2849,67 @@ static u8 GetEachChatScreenTemplateId(u8 type) return 0; } -static int sub_811BCF4(void) +static bool32 IsCurrentPhraseEmpty(void) { int i; - for (i = 0; i < sEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->maxWords; i++) { - if (sEasyChatScreen->ecWordBuffer[i] != 0xFFFF) - return 0; + if (sEasyChatScreen->currentPhrase[i] != EC_EMPTY_WORD) + return FALSE; } - return 1; + return TRUE; } -static int sub_811BD2C(void) +static bool32 IsCurrentPhraseFull(void) { int i; - for (i = 0; i < sEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->maxWords; i++) { - if (sEasyChatScreen->ecWordBuffer[i] == 0xFFFF) - return 0; + if (sEasyChatScreen->currentPhrase[i] == EC_EMPTY_WORD) + return FALSE; } - return 1; + return TRUE; } -static int sub_811BD64(void) +static int IsQuizQuestionEmpty(void) { int i; struct SaveBlock1 *saveBlock1; if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION) - return sub_811BCF4(); + return IsCurrentPhraseEmpty(); saveBlock1 = gSaveBlock1Ptr; for (i = 0; i < QUIZ_QUESTION_LEN; i++) { - if (saveBlock1->lilycoveLady.quiz.question[i] != 0xFFFF) - return 0; + if (saveBlock1->lilycoveLady.quiz.question[i] != EC_EMPTY_WORD) + return FALSE; } - return 1; + return TRUE; } -static int sub_811BDB0(void) +static int IsQuizAnswerEmpty(void) { struct LilycoveLadyQuiz *quiz; if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) - return sub_811BCF4(); + return IsCurrentPhraseEmpty(); quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; - return quiz->correctAnswer == 0xFFFF ? 1 : 0; + return quiz->correctAnswer == EC_EMPTY_WORD ? TRUE : FALSE; } -static void sub_811BDF0(u8 *arg0) +static void GetQuizTitle(u8 *dst) { u8 name[32]; struct SaveBlock1 *saveBlock1 = gSaveBlock1Ptr; DynamicPlaceholderTextUtil_Reset(); + + // Buffer author's name if (StringLength(saveBlock1->lilycoveLady.quiz.playerName) != 0) { TVShowConvertInternationalString(name, saveBlock1->lilycoveLady.quiz.playerName, saveBlock1->lilycoveLady.quiz.language); @@ -2696,32 +2920,33 @@ static void sub_811BDF0(u8 *arg0) DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gText_Lady); } - DynamicPlaceholderTextUtil_ExpandPlaceholders(arg0, gText_F700sQuiz); + // "'s Quiz" + DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gText_F700sQuiz); } -static void sub_811BE54(void) +static void BufferCurrentPhraseToStringVar2(void) { int i; - u16 *ecWord; + u16 *phrase; u8 *str; - ecWord = sEasyChatScreen->ecWordBuffer; + phrase = sEasyChatScreen->currentPhrase; str = gStringVar2; i = 0; - while (i < sEasyChatScreen->unk_07) + while (i < sEasyChatScreen->maxWords) { - str = CopyEasyChatWordPadded(str, *ecWord, 0); + str = CopyEasyChatWordPadded(str, *phrase, 0); *str = 0; str++; - ecWord++; + phrase++; i++; } str--; - str[0] = 0xFF; + str[0] = EOS; } -static void sub_811BE9C(void) +static void SetSpecialEasyChatResult(void) { switch (sEasyChatScreen->type) { @@ -2735,8 +2960,8 @@ static void sub_811BE9C(void) gSpecialVar_0x8004 = 0; break; case EASY_CHAT_TYPE_TRENDY_PHRASE: - sub_811BE54(); - gSpecialVar_0x8004 = sub_81226D8(sEasyChatScreen->ecWordBuffer); + BufferCurrentPhraseToStringVar2(); + gSpecialVar_0x8004 = TrySetTrendyPhrase(sEasyChatScreen->currentPhrase); break; case EASY_CHAT_TYPE_GOOD_SAYING: gSpecialVar_0x8004 = DidPlayerInputABerryMasterWifePhrase(); @@ -2761,62 +2986,62 @@ static u16 DidPlayerInputABerryMasterWifePhrase(void) return 0; } -static void sub_811BF78(void) +static void ClearUnusedField(void) { - sEasyChatScreen->unk_13 = 0; + sEasyChatScreen->unused = 0; } -static int sub_811BF88(int easyChatWord) +static bool32 DummyWordCheck(int easyChatWord) { - return 0; + return FALSE; } -static bool8 sub_811BF8C(void) +static bool8 InitEasyChatScreenControl(void) { - if (!sub_811CE94()) - return 0; + if (!InitEasyChatScreenControl_()) + return FALSE; else - return 1; + return TRUE; } -static bool8 sub_811BFA4(void) +static bool8 LoadEasyChatScreen(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sEasyChatBgTemplates, ARRAY_COUNT(sEasyChatBgTemplates)); - SetBgTilemapBuffer(3, sUnknown_0203A11C->unkB00); - SetBgTilemapBuffer(1, sUnknown_0203A11C->unk300); + SetBgTilemapBuffer(3, sScreenControl->bg3TilemapBuffer); + SetBgTilemapBuffer(1, sScreenControl->bg1TilemapBuffer); InitWindows(sEasyChatWindowTemplates); DeactivateAllTextPrinters(); - sub_811CF64(); - sub_811CF04(); + LoadEasyChatPalettes(); + InitEasyChatBgs(); CpuFastFill(0, (void *)OAM, OAM_SIZE); break; case 1: DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0); CopyToBgTilemapBuffer(3, gEasyChatWindow_Tilemap, 0, 0); - sub_811D60C(); - sub_811D424(sUnknown_0203A11C->unk300); - sub_811D230(); - sub_811E948(); + AdjustBgTilemapForFooter(); + BufferFrameTilemap(sScreenControl->bg1TilemapBuffer); + AddPhraseWindow(); + AddMainScreenButtonWindow(); CopyBgTilemapBufferToVram(3); break; case 2: - DecompressAndLoadBgGfxUsingHeap(1, sUnknown_08597B54, 0, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, sTextInputFrame_Gfx, 0, 0, 0); CopyBgTilemapBufferToVram(1); break; case 3: - sub_811CFCC(); - sub_811D0BC(); - sub_811D2C8(); - sub_811D684(); + PrintTitle(); + PrintInitialInstructions(); + PrintCurrentPhrase(); + DrawLowerWindow(); break; case 4: - sub_811DE90(); + LoadEasyChatGfx(); if (GetEasyChatScreenType() != EASY_CHAT_TYPE_QUIZ_QUESTION) - sub_811DEC4(); + CreateMainCursorSprite(); break; case 5: if (IsDma3ManagerBusyWithBgCopy()) @@ -2825,7 +3050,7 @@ static bool8 sub_811BFA4(void) } else { - sub_811DE5C(0, 0, 0, 0); + SetWindowDimensions(0, 0, 0, 0); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 @@ -2836,82 +3061,84 @@ static bool8 sub_811BFA4(void) ShowBg(1); ShowBg(2); ShowBg(0); - sub_811E5D4(); - sub_811E720(); - sub_811E828(); + CreateScrollIndicatorSprites(); + CreateStartSelectButtonSprites(); + TryAddInterviewObjectEvents(); } break; default: return FALSE; } - sUnknown_0203A11C->unk0++; + sScreenControl->funcState++; return TRUE; } -static void sub_811C13C(void) +static void FreeEasyChatScreenControl(void) { - if (sUnknown_0203A11C) - FREE_AND_SET_NULL(sUnknown_0203A11C); + if (sScreenControl) + FREE_AND_SET_NULL(sScreenControl); } -static void sub_811C158(u16 arg0) +static void StartEasyChatFunction(u16 funcId) { - sUnknown_0203A11C->unk4 = arg0; - sUnknown_0203A11C->unk0 = 0; - sub_811C170(); + sScreenControl->currentFuncId = funcId; + sScreenControl->funcState = 0; + RunEasyChatFunction(); } -static bool8 sub_811C170(void) +// Returns FALSE when called function has finished +static bool8 RunEasyChatFunction(void) { - switch (sUnknown_0203A11C->unk4) + switch (sScreenControl->currentFuncId) { - case 0: return FALSE; - case 1: return sub_811C2D4(); - case 2: return sub_811C30C(); - case 3: return sub_811C3E4(); - case 4: return sub_811C48C(); - case 5: return sub_811C404(); - case 6: return sub_811C448(); - case 7: return sub_811C4D0(); - case 8: return sub_811C518(); - case 9: return sub_811C554(); - case 10: return sub_811C620(); - case 11: return sub_811C830(); - case 12: return sub_811C8F0(); - case 13: return sub_811C99C(); - case 14: return sub_811CA5C(); - case 15: return sub_811C780(); - case 16: return sub_811C78C(); - case 17: return sub_811C7D4(); - case 18: return sub_811CB18(); - case 19: return sub_811CB98(); - case 20: return sub_811CB24(); - case 21: return sub_811CC90(); - case 22: return sub_811CC08(); - case 23: return sub_811C6C0(); - case 24: return FALSE; - case 25: return FALSE; - case 26: return FALSE; - case 27: return FALSE; - case 28: return FALSE; - case 29: return sub_811CD14(); - case 30: return sub_811CD54(); - case 31: return sub_811CD94(); - case 32: return sub_811CDD4(); - case 33: return sub_811CE14(); - case 34: return sub_811CE54(); - default: return FALSE; + case ECFUNC_NONE: return FALSE; + case ECFUNC_REPRINT_PHRASE: return ReprintPhrase(); + case ECFUNC_UPDATE_MAIN_CURSOR: return UpdateMainCursor(); + case ECFUNC_UPDATE_MAIN_CURSOR_ON_BUTTONS: return UpdateMainCursorOnButtons(); + case ECFUNC_PROMPT_DELETE_ALL: return ShowConfirmDeleteAllPrompt(); + case ECFUNC_PROMPT_EXIT: return ShowConfirmExitPrompt(); + case ECFUNC_PROMPT_CONFIRM: return ShowConfirmPrompt(); + case ECFUNC_CLOSE_PROMPT: return ClosePrompt(); + case ECFUNC_CLOSE_PROMPT_AFTER_DELETE: return ClosePromptAfterDeleteAll(); + case ECFUNC_OPEN_KEYBOARD: return OpenKeyboard(); + case ECFUNC_CLOSE_KEYBOARD: return CloseKeyboard(); + case ECFUNC_OPEN_WORD_SELECT: return OpenWordSelect(); + case ECFUNC_CLOSE_WORD_SELECT: return CloseWordSelect(); + case ECFUNC_PROMPT_CONFIRM_LYRICS: return ShowConfirmLyricsPrompt(); + case ECFUNC_RETURN_TO_KEYBOARD: return ReturnToKeyboard(); + case ECFUNC_UPDATE_KEYBOARD_CURSOR: return UpdateKeyboardCursor(); + case ECFUNC_GROUP_NAMES_SCROLL_DOWN: return GroupNamesScrollDown(); + case ECFUNC_GROUP_NAMES_SCROLL_UP: return GroupNamesScrollUp(); + case ECFUNC_UPDATE_WORD_SELECT_CURSOR: return UpdateWordSelectCursor(); + case ECFUNC_WORD_SELECT_SCROLL_UP: return WordSelectScrollUp(); + case ECFUNC_WORD_SELECT_SCROLL_DOWN: return WordSelectScrollDown(); + case ECFUNC_WORD_SELECT_PAGE_UP: return WordSelectPageScrollUp(); + case ECFUNC_WORD_SELECT_PAGE_DOWN: return WordSelectPageScrollDown(); + case ECFUNC_SWITCH_KEYBOARD_MODE: return SwitchKeyboardMode(); + case ECFUNC_EXIT: return FALSE; + case ECFUNC_QUIZ_QUESTION: return FALSE; // The 4 quiz functions + case ECFUNC_QUIZ_ANSWER: return FALSE; // 'finish' automatically + case ECFUNC_SET_QUIZ_QUESTION: return FALSE; // because they switch to a + case ECFUNC_SET_QUIZ_ANSWER: return FALSE; // callback in sQuizLadyEasyChatScreens + case ECFUNC_MSG_CREATE_QUIZ: return ShowCreateQuizMsg(); + case ECFUNC_MSG_SELECT_ANSWER: return ShowSelectAnswerMsg(); + case ECFUNC_MSG_SONG_TOO_SHORT: return ShowSongTooShortMsg(); + case ECFUNC_MSG_CANT_DELETE_LYRICS: return ShowCantDeleteLyricsMsg(); + case ECFUNC_MSG_COMBINE_TWO_WORDS: return ShowCombineTwoWordsMsg(); + case ECFUNC_MSG_CANT_EXIT: return ShowCantExitMsg(); + default: return FALSE; } } -static bool8 sub_811C2D4(void) +// Only used to update the current phrase after a word deletion +static bool8 ReprintPhrase(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811D2C8(); - sUnknown_0203A11C->unk0++; + PrintCurrentPhrase(); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2920,29 +3147,29 @@ static bool8 sub_811C2D4(void) return TRUE; } -static bool8 sub_811C30C(void) +static bool8 UpdateMainCursor(void) { u8 i; - u16 *ecWordBuffer; + u16 *currentPhrase; u16 *ecWord; u8 frameId; u8 cursorColumn, cursorRow, numColumns; - s16 var1; + s16 x; int stringWidth; int trueStringWidth; - u8 var2; + u8 y; u8 str[64]; - ecWordBuffer = GetEasyChatWordBuffer(); + currentPhrase = GetCurrentPhrase(); frameId = GetEasyChatScreenFrameId(); cursorColumn = GetMainCursorColumn(); cursorRow = GetMainCursorRow(); numColumns = GetNumColumns(); - ecWord = &ecWordBuffer[cursorRow * numColumns]; - var1 = 8 * sPhraseFrameDimensions[frameId].left + 13; + ecWord = ¤tPhrase[cursorRow * numColumns]; + x = 8 * sPhraseFrameDimensions[frameId].left + 13; for (i = 0; i < cursorColumn; i++) { - if (*ecWord == 0xFFFF) + if (*ecWord == EC_EMPTY_WORD) { stringWidth = 72; } @@ -2953,31 +3180,31 @@ static bool8 sub_811C30C(void) } trueStringWidth = stringWidth + 17; - var1 += trueStringWidth; + x += trueStringWidth; ecWord++; } - var2 = 8 * (sPhraseFrameDimensions[frameId].top + cursorRow * 2); - sub_811DF60(var1, var2 + 8); + y = 8 * (sPhraseFrameDimensions[frameId].top + cursorRow * 2); + SetMainCursorPos(x, y + 8); return FALSE; } -static bool8 sub_811C3E4(void) +static bool8 UpdateMainCursorOnButtons(void) { u8 xOffset = GetFooterOptionXOffset(GetMainCursorColumn()); - sub_811DF60(xOffset, 96); + SetMainCursorPos(xOffset, 96); return FALSE; } -static bool8 sub_811C404(void) +static bool8 ShowConfirmExitPrompt(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(2); - sub_811D214(1); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_CONFIRM_EXIT); + CreateEasyChatYesNoMenu(1); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2986,15 +3213,15 @@ static bool8 sub_811C404(void) return TRUE; } -static bool8 sub_811C448(void) +static bool8 ShowConfirmPrompt(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(3); - sub_811D214(0); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_CONFIRM); + CreateEasyChatYesNoMenu(0); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3003,15 +3230,15 @@ static bool8 sub_811C448(void) return TRUE; } -static bool8 sub_811C48C(void) +static bool8 ShowConfirmDeleteAllPrompt(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(1); - sub_811D214(1); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_CONFIRM_DELETE); + CreateEasyChatYesNoMenu(1); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3020,16 +3247,16 @@ static bool8 sub_811C48C(void) return TRUE; } -static bool8 sub_811C4D0(void) +static bool8 ClosePrompt(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DFB0(); - sub_811D104(0); - sub_811D2C8(); + StartMainCursorAnim(); + PrintEasyChatStdMessage(MSG_INSTRUCTIONS); + PrintCurrentPhrase(); ShowBg(0); - sUnknown_0203A11C->unk0++; + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3038,15 +3265,15 @@ static bool8 sub_811C4D0(void) return TRUE; } -static bool8 sub_811C518(void) +static bool8 ClosePromptAfterDeleteAll(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DFB0(); - sub_811D104(0); - sub_811D2C8(); - sUnknown_0203A11C->unk0++; + StartMainCursorAnim(); + PrintEasyChatStdMessage(MSG_INSTRUCTIONS); + PrintCurrentPhrase(); + sScreenControl->funcState++; // Fall through case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3055,42 +3282,42 @@ static bool8 sub_811C518(void) return TRUE; } -static bool8 sub_811C554(void) +static bool8 OpenKeyboard(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); + StopMainCursorAnim(); HideBg(0); - sub_811DE5C(0, 0, 0, 0); - sub_811D6D4(); - sUnknown_0203A11C->unk0++; + SetWindowDimensions(0, 0, 0, 0); + PrintKeyboardText(); + sScreenControl->funcState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811D9CC(0); - sUnknown_0203A11C->unk0++; + InitLowerWindowAnim(WINANIM_OPEN_KEYBOARD); + sScreenControl->funcState++; } break; case 2: - if (!IsDma3ManagerBusyWithBgCopy() && !sub_811DAA4()) - sUnknown_0203A11C->unk0++; + if (!IsDma3ManagerBusyWithBgCopy() && !UpdateLowerWindowAnim()) + sScreenControl->funcState++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811E3AC(); - sUnknown_0203A11C->unk0++; + CreateSideWindowSprites(); + sScreenControl->funcState++; } break; case 4: - if (!sub_811E418()) + if (!ShowSideWindow()) { - sub_811DFC8(); - sub_811E6E0(0); - sub_811E64C(); - sUnknown_0203A11C->unk0++; + CreateRectangleCursorSprites(); + SetScrollIndicatorXPos(FALSE); + UpdateScrollIndicatorsVisibility(); + sScreenControl->funcState++; return FALSE; } break; @@ -3101,33 +3328,33 @@ static bool8 sub_811C554(void) return TRUE; } -static bool8 sub_811C620(void) +static bool8 CloseKeyboard(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811E050(); - sub_811E4AC(); - sub_811E6B0(); - sUnknown_0203A11C->unk0++; + DestroyRectangleCursorSprites(); + HideModeWindow(); + HideScrollIndicators(); + sScreenControl->funcState++; break; case 1: - if (sub_811E4D0() == TRUE) + if (DestroySideWindowSprites() == TRUE) break; - sub_811D9CC(1); - sUnknown_0203A11C->unk0++; + InitLowerWindowAnim(WINANIM_CLOSE_KEYBOARD); + sScreenControl->funcState++; // Fall through case 2: - if (!sub_811DAA4()) - sUnknown_0203A11C->unk0++; + if (!UpdateLowerWindowAnim()) + sScreenControl->funcState++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811DFB0(); + StartMainCursorAnim(); ShowBg(0); - sUnknown_0203A11C->unk0++; + sScreenControl->funcState++; } break; case 4: @@ -3137,38 +3364,38 @@ static bool8 sub_811C620(void) return TRUE; } -static bool8 sub_811C6C0(void) +static bool8 SwitchKeyboardMode(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811E050(); - sub_811E6B0(); - sub_811E55C(); - sub_811D9CC(5); - sUnknown_0203A11C->unk0++; + DestroyRectangleCursorSprites(); + HideScrollIndicators(); + SetModeWindowToTransition(); + InitLowerWindowAnim(WINANIM_KEYBOARD_SWITCH_OUT); + sScreenControl->funcState++; break; case 1: - if (!sub_811DAA4() && !sub_811E5B8()) + if (!UpdateLowerWindowAnim() && !IsModeWindowAnimActive()) { - sub_811D6D4(); - sUnknown_0203A11C->unk0++; + PrintKeyboardText(); + sScreenControl->funcState++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811D9CC(6); - sub_811E578(); - sUnknown_0203A11C->unk0++; + InitLowerWindowAnim(WINANIM_KEYBOARD_SWITCH_IN); + UpdateModeWindowAnim(); + sScreenControl->funcState++; } break; case 3: - if (!sub_811DAA4() && !sub_811E5B8()) + if (!UpdateLowerWindowAnim() && !IsModeWindowAnimActive()) { - sub_811E64C(); - sub_811DFC8(); - sUnknown_0203A11C->unk0++; + UpdateScrollIndicatorsVisibility(); + CreateRectangleCursorSprites(); + sScreenControl->funcState++; return FALSE; } break; @@ -3179,25 +3406,25 @@ static bool8 sub_811C6C0(void) return TRUE; } -static bool8 sub_811C780(void) +static bool8 UpdateKeyboardCursor(void) { - sub_811E088(); + UpdateRectangleCursorPos(); return FALSE; } -static bool8 sub_811C78C(void) +static bool8 GroupNamesScrollDown(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DDAC(1, 4); - sUnknown_0203A11C->unk0++; + InitLowerWindowScroll(1, 4); + sScreenControl->funcState++; // Fall through case 1: - if (!sub_811DE10()) + if (!UpdateLowerWindowScroll()) { - sub_811E088(); - sub_811E64C(); + UpdateRectangleCursorPos(); + UpdateScrollIndicatorsVisibility(); return FALSE; } break; @@ -3206,19 +3433,19 @@ static bool8 sub_811C78C(void) return TRUE; } -static bool8 sub_811C7D4(void) +static bool8 GroupNamesScrollUp(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DDAC(-1, 4); - sUnknown_0203A11C->unk0++; + InitLowerWindowScroll(-1, 4); + sScreenControl->funcState++; // Fall through case 1: - if (!sub_811DE10()) + if (!UpdateLowerWindowScroll()) { - sub_811E64C(); - sUnknown_0203A11C->unk0++; + UpdateScrollIndicatorsVisibility(); + sScreenControl->funcState++; return FALSE; } break; @@ -3229,45 +3456,45 @@ static bool8 sub_811C7D4(void) return TRUE; } -static bool8 sub_811C830(void) +static bool8 OpenWordSelect(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811E050(); - sub_811E4AC(); - sub_811E6B0(); - sUnknown_0203A11C->unk0++; + DestroyRectangleCursorSprites(); + HideModeWindow(); + HideScrollIndicators(); + sScreenControl->funcState++; break; case 1: - if (!sub_811E4D0()) + if (!DestroySideWindowSprites()) { - sub_811D9B4(); - sUnknown_0203A11C->unk0++; + ClearWordSelectWindow(); + sScreenControl->funcState++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811D9CC(2); - sUnknown_0203A11C->unk0++; + InitLowerWindowAnim(WINANIM_OPEN_WORD_SELECT); + sScreenControl->funcState++; } break; case 3: - if (!sub_811DAA4()) + if (!UpdateLowerWindowAnim()) { - sub_811D698(2); - sUnknown_0203A11C->unk0++; + InitLowerWindowText(TEXT_WORD_SELECT); + sScreenControl->funcState++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811E288(); - sub_811E6E0(1); - sub_811E64C(); - sub_811E794(); - sUnknown_0203A11C->unk0++; + CreateWordSelectCursorSprite(); + SetScrollIndicatorXPos(TRUE); + UpdateScrollIndicatorsVisibility(); + UpdateStartSelectButtonsVisibility(); + sScreenControl->funcState++; return FALSE; } break; @@ -3278,40 +3505,40 @@ static bool8 sub_811C830(void) return TRUE; } -static bool8 sub_811C8F0(void) +static bool8 CloseWordSelect(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811D2C8(); - sUnknown_0203A11C->unk0++; + PrintCurrentPhrase(); + sScreenControl->funcState++; break; case 1: - sub_811E380(); - sub_811E6B0(); - sub_811E7F8(); - sub_811D9B4(); - sUnknown_0203A11C->unk0++; + DestroyWordSelectCursorSprite(); + HideScrollIndicators(); + HideStartSelectButtons(); + ClearWordSelectWindow(); + sScreenControl->funcState++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811D9CC(3); - sUnknown_0203A11C->unk0++; + InitLowerWindowAnim(WINANIM_CLOSE_WORD_SELECT); + sScreenControl->funcState++; } break; case 3: - if (!sub_811DAA4()) + if (!UpdateLowerWindowAnim()) { ShowBg(0); - sUnknown_0203A11C->unk0++; + sScreenControl->funcState++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811DFB0(); - sUnknown_0203A11C->unk0++; + StartMainCursorAnim(); + sScreenControl->funcState++; return FALSE; } break; @@ -3322,47 +3549,47 @@ static bool8 sub_811C8F0(void) return TRUE; } -static bool8 sub_811C99C(void) +static bool8 ShowConfirmLyricsPrompt(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811D2C8(); - sUnknown_0203A11C->unk0++; + PrintCurrentPhrase(); + sScreenControl->funcState++; break; case 1: - sub_811E380(); - sub_811E6B0(); - sub_811E7F8(); - sub_811D9B4(); - sUnknown_0203A11C->unk0++; + DestroyWordSelectCursorSprite(); + HideScrollIndicators(); + HideStartSelectButtons(); + ClearWordSelectWindow(); + sScreenControl->funcState++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811D9CC(3); - sUnknown_0203A11C->unk0++; + InitLowerWindowAnim(WINANIM_CLOSE_WORD_SELECT); + sScreenControl->funcState++; } break; case 3: - if (!sub_811DAA4()) + if (!UpdateLowerWindowAnim()) { - sub_811D104(3); - sUnknown_0203A11C->unk0++; + PrintEasyChatStdMessage(MSG_CONFIRM); + sScreenControl->funcState++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { ShowBg(0); - sUnknown_0203A11C->unk0++; + sScreenControl->funcState++; } break; case 5: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811DFB0(); - sUnknown_0203A11C->unk0++; + StartMainCursorAnim(); + sScreenControl->funcState++; return FALSE; } break; @@ -3373,45 +3600,45 @@ static bool8 sub_811C99C(void) return TRUE; } -static bool8 sub_811CA5C(void) +static bool8 ReturnToKeyboard(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811E380(); - sub_811E6B0(); - sub_811E7F8(); - sub_811D9B4(); - sUnknown_0203A11C->unk0++; + DestroyWordSelectCursorSprite(); + HideScrollIndicators(); + HideStartSelectButtons(); + ClearWordSelectWindow(); + sScreenControl->funcState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811D9CC(4); - sUnknown_0203A11C->unk0++; + InitLowerWindowAnim(WINANIM_RETURN_TO_KEYBOARD); + sScreenControl->funcState++; } break; case 2: - if (!sub_811DAA4()) + if (!UpdateLowerWindowAnim()) { - sub_811D6D4(); - sUnknown_0203A11C->unk0++; + PrintKeyboardText(); + sScreenControl->funcState++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811E3AC(); - sUnknown_0203A11C->unk0++; + CreateSideWindowSprites(); + sScreenControl->funcState++; } break; case 4: - if (!sub_811E418()) + if (!ShowSideWindow()) { - sub_811DFC8(); - sub_811E6E0(0); - sub_811E64C(); - sUnknown_0203A11C->unk0++; + CreateRectangleCursorSprites(); + SetScrollIndicatorXPos(FALSE); + UpdateScrollIndicatorsVisibility(); + sScreenControl->funcState++; return FALSE; } break; @@ -3420,34 +3647,34 @@ static bool8 sub_811CA5C(void) return TRUE; } -static bool8 sub_811CB18(void) +static bool8 UpdateWordSelectCursor(void) { - sub_811E30C(); + UpdateWordSelectCursorPos(); return FALSE; } -static bool8 sub_811CB24(void) +static bool8 WordSelectScrollDown(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811D7A4(); - sUnknown_0203A11C->unk0++; + PrintWordSelectNextRowDown(); + sScreenControl->funcState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811DDAC(1, 4); - sUnknown_0203A11C->unk0++; + InitLowerWindowScroll(1, 4); + sScreenControl->funcState++; } break; case 2: - if (!sub_811DE10()) + if (!UpdateLowerWindowScroll()) { - sub_811E30C(); - sub_811E64C(); - sub_811E794(); - sUnknown_0203A11C->unk0++; + UpdateWordSelectCursorPos(); + UpdateScrollIndicatorsVisibility(); + UpdateStartSelectButtonsVisibility(); + sScreenControl->funcState++; return FALSE; } break; @@ -3458,27 +3685,27 @@ static bool8 sub_811CB24(void) return TRUE; } -static bool8 sub_811CB98(void) +static bool8 WordSelectScrollUp(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811D7C8(); - sUnknown_0203A11C->unk0++; + PrintWordSelectNextRowUp(); + sScreenControl->funcState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_811DDAC(-1, 4); - sUnknown_0203A11C->unk0++; + InitLowerWindowScroll(-1, 4); + sScreenControl->funcState++; } break; case 2: - if (!sub_811DE10()) + if (!UpdateLowerWindowScroll()) { - sub_811E64C(); - sub_811E794(); - sUnknown_0203A11C->unk0++; + UpdateScrollIndicatorsVisibility(); + UpdateStartSelectButtonsVisibility(); + sScreenControl->funcState++; return FALSE; } break; @@ -3489,29 +3716,29 @@ static bool8 sub_811CB98(void) return TRUE; } -static bool8 sub_811CC08(void) +static bool8 WordSelectPageScrollDown(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811D7EC(); - sUnknown_0203A11C->unk0++; + PrintWordSelectRowsPageDown(); + sScreenControl->funcState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - s16 var0 = sub_811BBDC() - sub_811DE48(); - sub_811DDAC(var0, 8); - sUnknown_0203A11C->unk0++; + s16 scrollChange = GetWordSelectScrollOffset() - GetLowerWindowScrollOffset(); + InitLowerWindowScroll(scrollChange, 8); + sScreenControl->funcState++; } break; case 2: - if (!sub_811DE10()) + if (!UpdateLowerWindowScroll()) { - sub_811E30C(); - sub_811E64C(); - sub_811E794(); - sUnknown_0203A11C->unk0++; + UpdateWordSelectCursorPos(); + UpdateScrollIndicatorsVisibility(); + UpdateStartSelectButtonsVisibility(); + sScreenControl->funcState++; return FALSE; } break; @@ -3522,28 +3749,28 @@ static bool8 sub_811CC08(void) return TRUE; } -static bool8 sub_811CC90(void) +static bool8 WordSelectPageScrollUp(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811D830(); - sUnknown_0203A11C->unk0++; + PrintWordSelectRowsPageUp(); + sScreenControl->funcState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - s16 var0 = sub_811BBDC() - sub_811DE48(); - sub_811DDAC(var0, 8); - sUnknown_0203A11C->unk0++; + s16 scrollChange = GetWordSelectScrollOffset() - GetLowerWindowScrollOffset(); + InitLowerWindowScroll(scrollChange, 8); + sScreenControl->funcState++; } break; case 2: - if (!sub_811DE10()) + if (!UpdateLowerWindowScroll()) { - sub_811E64C(); - sub_811E794(); - sUnknown_0203A11C->unk0++; + UpdateScrollIndicatorsVisibility(); + UpdateStartSelectButtonsVisibility(); + sScreenControl->funcState++; return FALSE; } break; @@ -3554,14 +3781,14 @@ static bool8 sub_811CC90(void) return TRUE; } -static bool8 sub_811CD14(void) +static bool8 ShowCreateQuizMsg(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(4); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_CREATE_QUIZ); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3570,14 +3797,14 @@ static bool8 sub_811CD14(void) return TRUE; } -static bool8 sub_811CD54(void) +static bool8 ShowSelectAnswerMsg(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(5); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_SELECT_ANSWER); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3586,14 +3813,14 @@ static bool8 sub_811CD54(void) return TRUE; } -static bool8 sub_811CD94(void) +static bool8 ShowSongTooShortMsg(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(6); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_SONG_TOO_SHORT); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3602,14 +3829,14 @@ static bool8 sub_811CD94(void) return TRUE; } -static bool8 sub_811CDD4(void) +static bool8 ShowCantDeleteLyricsMsg(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(7); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_CANT_DELETE_LYRICS); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3618,14 +3845,14 @@ static bool8 sub_811CDD4(void) return TRUE; } -static bool8 sub_811CE14(void) +static bool8 ShowCombineTwoWordsMsg(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(8); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_COMBINE_TWO_WORDS); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3634,14 +3861,14 @@ static bool8 sub_811CE14(void) return TRUE; } -static bool8 sub_811CE54(void) +static bool8 ShowCantExitMsg(void) { - switch (sUnknown_0203A11C->unk0) + switch (sScreenControl->funcState) { case 0: - sub_811DF90(); - sub_811D104(9); - sUnknown_0203A11C->unk0++; + StopMainCursorAnim(); + PrintEasyChatStdMessage(MSG_CANT_QUIT); + sScreenControl->funcState++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3650,28 +3877,28 @@ static bool8 sub_811CE54(void) return TRUE; } -static bool8 sub_811CE94(void) +static bool8 InitEasyChatScreenControl_(void) { - sUnknown_0203A11C = Alloc(sizeof(*sUnknown_0203A11C)); - if (!sUnknown_0203A11C) + sScreenControl = Alloc(sizeof(*sScreenControl)); + if (!sScreenControl) return FALSE; - sUnknown_0203A11C->unk0 = 0; - sUnknown_0203A11C->unk2D8 = NULL; - sUnknown_0203A11C->unk2DC = NULL; - sUnknown_0203A11C->unk2E0 = NULL; - sUnknown_0203A11C->unk2E4 = NULL; - sUnknown_0203A11C->unk2E8 = NULL; - sUnknown_0203A11C->unk2EC = NULL; - sUnknown_0203A11C->unk2F0 = NULL; - sUnknown_0203A11C->unk2F4 = NULL; - sUnknown_0203A11C->unk2F8 = NULL; - sUnknown_0203A11C->unk2FC = NULL; - sUnknown_0203A11C->unkA = FooterHasFourOptions_(); + sScreenControl->funcState = 0; + sScreenControl->mainCursorSprite = NULL; + sScreenControl->rectangleCursorSpriteRight = NULL; + sScreenControl->rectangleCursorSpriteLeft = NULL; + sScreenControl->wordSelectCursorSprite = NULL; + sScreenControl->buttonWindowSprite = NULL; + sScreenControl->modeWindowSprite = NULL; + sScreenControl->scrollIndicatorUpSprite = NULL; + sScreenControl->scrollIndicatorDownSprite = NULL; + sScreenControl->startButtonSprite = NULL; + sScreenControl->selectButtonSprite = NULL; + sScreenControl->fourFooterOptions = FooterHasFourOptions_(); return TRUE; } -static void sub_811CF04(void) +static void InitEasyChatBgs(void) { ChangeBgX(3, 0, 0); ChangeBgY(3, 0, 0); @@ -3684,19 +3911,19 @@ static void sub_811CF04(void) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); } -static void sub_811CF64(void) +static void LoadEasyChatPalettes(void) { ResetPaletteFade(); LoadPalette(gEasyChatMode_Pal, 0, 32); - LoadPalette(sUnknown_08597B14, 1 * 16, 32); - LoadPalette(sUnknown_08597B34, 4 * 16, 32); - LoadPalette(sUnknown_08597C1C, 10 * 16, 8); - LoadPalette(sUnknown_08597C24, 11 * 16, 12); - LoadPalette(sUnknown_08597C24, 15 * 16, 12); - LoadPalette(sUnknown_08597C24, 3 * 16, 12); + LoadPalette(sTextInputFrameOrange_Pal, 1 * 16, 32); + LoadPalette(sTextInputFrameGreen_Pal, 4 * 16, 32); + LoadPalette(sTitleText_Pal, 10 * 16, 8); + LoadPalette(sText_Pal, 11 * 16, 12); + LoadPalette(sText_Pal, 15 * 16, 12); + LoadPalette(sText_Pal, 3 * 16, 12); } -static void sub_811CFCC(void) +static void PrintTitle(void) { int xOffset; const u8 *titleText = GetTitleText(); @@ -3705,17 +3932,17 @@ static void sub_811CFCC(void) xOffset = GetStringCenterAlignXOffset(1, titleText, 144); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - sub_811D058(0, 1, titleText, xOffset, 1, 0xFF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); + PrintEasyChatTextWithColors(0, 1, titleText, xOffset, 1, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); PutWindowTilemap(0); CopyWindowToVram(0, 3); } -void sub_811D028(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) +static void PrintEasyChatText(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) { AddTextPrinterParameterized(windowId, fontId, str, x, y, speed, callback); } -static void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 bg, u8 fg, u8 shadow) +static void PrintEasyChatTextWithColors(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 bg, u8 fg, u8 shadow) { u8 color[3]; color[0] = bg; @@ -3724,51 +3951,51 @@ static void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, AddTextPrinterParameterized3(windowId, fontId, left, top, color, speed, str); } -static void sub_811D0BC(void) +static void PrintInitialInstructions(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); LoadUserWindowBorderGfx(1, 1, 0xE0); DrawTextBorderOuter(1, 1, 14); - sub_811D104(0); + PrintEasyChatStdMessage(MSG_INSTRUCTIONS); PutWindowTilemap(1); CopyBgTilemapBufferToVram(0); } -static void sub_811D104(u8 arg0) +static void PrintEasyChatStdMessage(u8 msgId) { const u8 *text2 = NULL; const u8 *text1 = NULL; - switch (arg0) + switch (msgId) { - case 0: + case MSG_INSTRUCTIONS: GetEasyChatInstructionsText(&text1, &text2); break; - case 2: - sub_811BB40(&text1, &text2); + case MSG_CONFIRM_EXIT: + GetEasyChatConfirmExitText(&text1, &text2); break; - case 3: + case MSG_CONFIRM: GetEasyChatConfirmText(&text1, &text2); break; - case 1: + case MSG_CONFIRM_DELETE: GetEasyChatConfirmDeletionText(&text1, &text2); break; - case 4: + case MSG_CREATE_QUIZ: text1 = gText_CreateAQuiz; break; - case 5: + case MSG_SELECT_ANSWER: text1 = gText_SelectTheAnswer; break; - case 6: + case MSG_SONG_TOO_SHORT: text1 = gText_OnlyOnePhrase; text2 = gText_OriginalSongWillBeUsed; break; - case 7: + case MSG_CANT_DELETE_LYRICS: text1 = gText_LyricsCantBeDeleted; break; - case 8: + case MSG_COMBINE_TWO_WORDS: text1 = gText_CombineTwoWordsOrPhrases3; break; - case 9: + case MSG_CANT_QUIT: text1 = gText_YouCannotQuitHere; text2 = gText_SectionMustBeCompleted; break; @@ -3776,20 +4003,20 @@ static void sub_811D104(u8 arg0) FillWindowPixelBuffer(1, PIXEL_FILL(1)); if (text1) - sub_811D028(1, 1, text1, 0, 1, 0xFF, 0); + PrintEasyChatText(1, 1, text1, 0, 1, TEXT_SPEED_FF, 0); if (text2) - sub_811D028(1, 1, text2, 0, 17, 0xFF, 0); + PrintEasyChatText(1, 1, text2, 0, 17, TEXT_SPEED_FF, 0); CopyWindowToVram(1, 3); } -static void sub_811D214(u8 initialCursorPos) +static void CreateEasyChatYesNoMenu(u8 initialCursorPos) { CreateYesNoMenu(&sEasyChatYesNoWindowTemplate, 1, 14, initialCursorPos); } -static void sub_811D230(void) +static void AddPhraseWindow(void) { u8 frameId; struct WindowTemplate template; @@ -3802,49 +4029,50 @@ static void sub_811D230(void) template.height = sPhraseFrameDimensions[frameId].height; template.paletteNum = 11; template.baseBlock = 0x6C; - sUnknown_0203A11C->windowId = AddWindow(&template); - PutWindowTilemap(sUnknown_0203A11C->windowId); + sScreenControl->windowId = AddWindow(&template); + PutWindowTilemap(sScreenControl->windowId); } -static void sub_811D2C8(void) +static void PrintCurrentPhrase(void) { - u8 spC[4]; - u16 *ecWord; + u8 strClear[4]; + u16 *currentPhrase; u8 numColumns, numRows; u8 *str; int frameId; - int var1; + bool32 isQuizQuestion; int i, j, k; - ecWord = GetEasyChatWordBuffer(); + currentPhrase = GetCurrentPhrase(); numColumns = GetNumColumns(); numRows = GetNumRows(); frameId = GetEasyChatScreenFrameId(); - var1 = 0; - if (frameId == 7) - var1 = 1; - FillWindowPixelBuffer(sUnknown_0203A11C->windowId, PIXEL_FILL(1)); + isQuizQuestion = FALSE; + if (frameId == FRAMEID_QUIZ_QUESTION) + isQuizQuestion = TRUE; + + FillWindowPixelBuffer(sScreenControl->windowId, PIXEL_FILL(1)); for (i = 0; i < numRows; i++) { - memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); - if (var1) - spC[2] = 6; + memcpy(strClear, sText_Clear17, sizeof(sText_Clear17)); + if (isQuizQuestion) + strClear[2] = 6; - str = sUnknown_0203A11C->unkB; - sUnknown_0203A11C->unkB[0] = EOS; - str = StringAppend(str, spC); + str = sScreenControl->phrasePrintBuffer; + sScreenControl->phrasePrintBuffer[0] = EOS; + str = StringAppend(str, strClear); for (j = 0; j < numColumns; j++) { - if (*ecWord != 0xFFFF) + if (*currentPhrase != EC_EMPTY_WORD) { - str = CopyEasyChatWord(str, *ecWord); - ecWord++; + str = CopyEasyChatWord(str, *currentPhrase); + currentPhrase++; } else { - ecWord++; - if (!var1) + currentPhrase++; + if (!isQuizQuestion) { str = WriteColorChangeControlCode(str, 0, 4); for (k = 0; k < 12; k++) @@ -3857,25 +4085,27 @@ static void sub_811D2C8(void) } } - if (var1) - spC[2] = 3; + if (isQuizQuestion) + strClear[2] = 3; - str = StringAppend(str, spC); - if (frameId == 2 || frameId == 7 || frameId == 8) + str = StringAppend(str, strClear); + + if (frameId == FRAMEID_MAIL || frameId == FRAMEID_QUIZ_QUESTION || frameId == FRAMEID_QUIZ_SET_QUESTION) { + // Is 2x5 frame, end on 9th word if (j == 0 && i == 4) break; } } *str = EOS; - sub_811D028(sUnknown_0203A11C->windowId, 1, sUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); + PrintEasyChatText(sScreenControl->windowId, 1, sScreenControl->phrasePrintBuffer, 0, i * 16 + 1, TEXT_SPEED_FF, 0); } - CopyWindowToVram(sUnknown_0203A11C->windowId, 3); + CopyWindowToVram(sScreenControl->windowId, 3); } -static void sub_811D424(u16 *tilemap) +static void BufferFrameTilemap(u16 *tilemap) { u8 frameId; int right, bottom; @@ -3883,19 +4113,22 @@ static void sub_811D424(u16 *tilemap) frameId = GetEasyChatScreenFrameId(); CpuFastFill(0, tilemap, BG_SCREEN_SIZE); - if (frameId == 2 || frameId == 8) + if (frameId == FRAMEID_MAIL || frameId == FRAMEID_QUIZ_SET_QUESTION) { + // These frames fill the screen, no need to draw top/bottom edges right = sPhraseFrameDimensions[frameId].left + sPhraseFrameDimensions[frameId].width; bottom = sPhraseFrameDimensions[frameId].top + sPhraseFrameDimensions[frameId].height; + + // Draw middle section for (y = sPhraseFrameDimensions[frameId].top; y < bottom; y++) { x = sPhraseFrameDimensions[frameId].left - 1; - tilemap[y * 32 + x] = 0x1005; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_L_EDGE; x++; for (; x < right; x++) - tilemap[y * 32 + x] = 0x1000; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_TRANSPARENT; - tilemap[y* 32 + x] = 0x1007; + tilemap[y* 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_R_EDGE; } } else @@ -3904,35 +4137,40 @@ static void sub_811D424(u16 *tilemap) x = sPhraseFrameDimensions[frameId].left - 1; right = sPhraseFrameDimensions[frameId].left + sPhraseFrameDimensions[frameId].width; bottom = sPhraseFrameDimensions[frameId].top + sPhraseFrameDimensions[frameId].height; - tilemap[y * 32 + x] = 0x1001; + + // Draw top edge + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_TOP_L_CORNER; x++; for (; x < right; x++) - tilemap[y * 32 + x] = 0x1002; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_TOP_EDGE; - tilemap[y * 32 + x] = 0x1003; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_TOP_R_CORNER; y++; + + // Draw middle section for (; y < bottom; y++) { x = sPhraseFrameDimensions[frameId].left - 1; - tilemap[y * 32 + x] = 0x1005; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_L_EDGE; x++; for (; x < right; x++) - tilemap[y * 32 + x] = 0x1000; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_TRANSPARENT; - tilemap[y* 32 + x] = 0x1007; + tilemap[y* 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_R_EDGE; } + // Draw bottom edge x = sPhraseFrameDimensions[frameId].left - 1; - tilemap[y * 32 + x] = 0x1009; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_BOTTOM_L_CORNER; x++; for (; x < right; x++) - tilemap[y * 32 + x] = 0x100A; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_BOTTOM_EDGE; - tilemap[y * 32 + x] = 0x100B; + tilemap[y * 32 + x] = FRAME_OFFSET_ORANGE + FRAME_TILE_BOTTOM_R_CORNER; } } -static void sub_811D60C(void) +static void AdjustBgTilemapForFooter(void) { u8 frameId; u16 *tilemap; @@ -3941,55 +4179,55 @@ static void sub_811D60C(void) frameId = GetEasyChatScreenFrameId(); switch (sPhraseFrameDimensions[frameId].footerId) { - case 2: + case FOOTER_ANSWER: tilemap += 0x2A0; CopyToBgTilemapBufferRect(3, tilemap, 0, 11, 32, 2); break; - case 1: + case FOOTER_QUIZ: tilemap += 0x300; CopyToBgTilemapBufferRect(3, tilemap, 0, 11, 32, 2); break; - case 3: + case NUM_FOOTER_TYPES: CopyToBgTilemapBufferRect(3, tilemap, 0, 10, 32, 4); break; } } -static void sub_811D684(void) +static void DrawLowerWindow(void) { PutWindowTilemap(2); CopyBgTilemapBufferToVram(2); } -static void sub_811D698(u32 arg0) +static void InitLowerWindowText(u32 whichText) { - sub_811DD84(); + ResetLowerWindowScroll(); FillWindowPixelBuffer(2, PIXEL_FILL(1)); - switch (arg0) + switch (whichText) { - case 0: - sub_811D6F4(); + case TEXT_GROUPS: + PrintKeyboardGroupNames(); break; - case 1: - PrintEasyChatKeyboardText(); + case TEXT_ALPHABET: + PrintKeyboardAlphabet(); break; - case 2: - sub_811D794(); + case TEXT_WORD_SELECT: + PrintInitialWordSelectText(); break; } CopyWindowToVram(2, 2); } -static void sub_811D6D4(void) +static void PrintKeyboardText(void) { - if (!sub_811BBB0()) - sub_811D698(0); + if (!GetInAlphabetMode()) + InitLowerWindowText(TEXT_GROUPS); else - sub_811D698(1); + InitLowerWindowText(TEXT_ALPHABET); } -static void sub_811D6F4(void) +static void PrintKeyboardGroupNames(void) { int i; int x, y; @@ -4000,98 +4238,99 @@ static void sub_811D6F4(void) { for (x = 0; x < 2; x++) { - u8 groupId = sub_811F3B8(i++); + u8 groupId = GetUnlockedEasyChatGroupId(i++); if (groupId == EC_NUM_GROUPS) { - sub_811DDAC(sub_811BBBC(), 0); + InitLowerWindowScroll(GetKeyboardScrollOffset(), 0); return; } - sub_811D028(2, 1, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, 0xFF, NULL); + PrintEasyChatText(2, 1, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, TEXT_SPEED_FF, NULL); } y += 16; } } -static void PrintEasyChatKeyboardText(void) +static void PrintKeyboardAlphabet(void) { u32 i; - for (i = 0; i < ARRAY_COUNT(sEasyChatKeyboardText); i++) - sub_811D028(2, 1, sEasyChatKeyboardText[i], 10, 97 + i * 16, 0xFF, NULL); + for (i = 0; i < ARRAY_COUNT(sEasyChatKeyboardAlphabet); i++) + PrintEasyChatText(2, 1, sEasyChatKeyboardAlphabet[i], 10, 97 + i * 16, TEXT_SPEED_FF, NULL); } -static void sub_811D794(void) +static void PrintInitialWordSelectText(void) { - sub_811D864(0, 4); + PrintWordSelectText(0, NUM_WORD_SELECT_ROWS); } -static void sub_811D7A4(void) +static void PrintWordSelectNextRowDown(void) { - u8 var0 = sub_811BBDC() + 3; - sub_811D950(var0, 1); - sub_811D864(var0, 1); + u8 wordScroll = GetWordSelectScrollOffset() + NUM_WORD_SELECT_ROWS - 1; + EraseWordSelectRows(wordScroll, 1); + PrintWordSelectText(wordScroll, 1); } -static void sub_811D7C8(void) +static void PrintWordSelectNextRowUp(void) { - u8 var0 = sub_811BBDC(); - sub_811D950(var0, 1); - sub_811D864(var0, 1); + u8 wordScroll = GetWordSelectScrollOffset(); + EraseWordSelectRows(wordScroll, 1); + PrintWordSelectText(wordScroll, 1); } -static void sub_811D7EC(void) +static void PrintWordSelectRowsPageDown(void) { - u8 var0 = sub_811BBDC(); - u8 var1 = var0 + 4; - u8 var2 = sub_811BBE8() + 1; - if (var1 > var2) - var1 = var2; + u8 wordScroll = GetWordSelectScrollOffset(); + u8 maxScroll = wordScroll + NUM_WORD_SELECT_ROWS; + u8 maxRows = GetWordSelectLastRow() + 1; + if (maxScroll > maxRows) + maxScroll = maxRows; - if (var0 < var1) + if (wordScroll < maxScroll) { - u8 var3 = var1 - var0; - sub_811D950(var0, var3); - sub_811D864(var0, var3); + u8 numRows = maxScroll - wordScroll; + EraseWordSelectRows(wordScroll, numRows); + PrintWordSelectText(wordScroll, numRows); } } -static void sub_811D830(void) +static void PrintWordSelectRowsPageUp(void) { - u8 var0 = sub_811BBDC(); - u8 var1 = sub_811DE48(); - if (var0 < var1) + u8 wordScroll = GetWordSelectScrollOffset(); + u8 windowScroll = GetLowerWindowScrollOffset(); + if (wordScroll < windowScroll) { - u8 var2 = var1 - var0; - sub_811D950(var0, var2); - sub_811D864(var0, var2); + u8 numRows = windowScroll - wordScroll; + EraseWordSelectRows(wordScroll, numRows); + PrintWordSelectText(wordScroll, numRows); } } -static void sub_811D864(u8 arg0, u8 arg1) +// Print the easy chat words available for selection in +// the currently selected group and at the given offset and row +static void PrintWordSelectText(u8 scrollOffset, u8 numRows) { int i, j; u16 easyChatWord; - u8 *str; int y; - int var0; + int wordIndex; - var0 = arg0 * 2; - y = (arg0 * 16 + 96) & 0xFF; + wordIndex = scrollOffset * NUM_WORD_SELECT_COLUMNS; + y = (scrollOffset * 16 + 96) & 0xFF; y++; - for (i = 0; i < arg1; i++) + for (i = 0; i < numRows; i++) { for (j = 0; j < 2; j++) { - easyChatWord = sub_811F578(var0++); - if (easyChatWord != 0xFFFF) + easyChatWord = GetWordFromSelectedGroup(wordIndex++); + if (easyChatWord != EC_EMPTY_WORD) { - CopyEasyChatWordPadded(sUnknown_0203A11C->unkCC, easyChatWord, 0); - if (!sub_811BF88(easyChatWord)) - sub_811D028(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); - else - sub_811D058(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GREY); + CopyEasyChatWordPadded(sScreenControl->wordSelectPrintBuffer, easyChatWord, 0); + if (!DummyWordCheck(easyChatWord)) + PrintEasyChatText(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, NULL); + else // Never reached + PrintEasyChatTextWithColors(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GRAY); } } @@ -4101,16 +4340,17 @@ static void sub_811D864(u8 arg0, u8 arg1) CopyWindowToVram(2, 2); } -static void sub_811D950(u8 arg0, u8 arg1) +static void EraseWordSelectRows(u8 scrollOffset, u8 numRows) { int y; int var0; int var1; int var2; - y = (arg0 * 16 + 96) & 0xFF; - var2 = arg1 * 16; + y = (scrollOffset * 16 + 96) & 0xFF; + var2 = numRows * 16; var0 = y + var2; + if (var0 > 255) { var1 = var0 - 256; @@ -4126,191 +4366,209 @@ static void sub_811D950(u8 arg0, u8 arg1) FillWindowPixelRect(2, PIXEL_FILL(1), 0, 0, 224, var1); } -static void sub_811D9B4(void) +static void ClearWordSelectWindow(void) { FillWindowPixelBuffer(2, PIXEL_FILL(1)); CopyWindowToVram(2, 2); } -static void sub_811D9CC(int arg0) +static void InitLowerWindowAnim(int winAnimType) { - switch (arg0) + switch (winAnimType) { - case 0: - sUnknown_0203A11C->unk6 = 0; - sUnknown_0203A11C->unk7 = 10; + case WINANIM_OPEN_KEYBOARD: + sScreenControl->curWindowAnimState = 0; + sScreenControl->destWindowAnimState = 10; break; - case 1: - sUnknown_0203A11C->unk6 = 9; - sUnknown_0203A11C->unk7 = 0; + case WINANIM_CLOSE_KEYBOARD: + sScreenControl->curWindowAnimState = 9; + sScreenControl->destWindowAnimState = 0; break; - case 2: - sUnknown_0203A11C->unk6 = 11; - sUnknown_0203A11C->unk7 = 17; + case WINANIM_OPEN_WORD_SELECT: + sScreenControl->curWindowAnimState = 11; + sScreenControl->destWindowAnimState = 17; break; - case 3: - sUnknown_0203A11C->unk6 = 17; - sUnknown_0203A11C->unk7 = 0; + case WINANIM_CLOSE_WORD_SELECT: + sScreenControl->curWindowAnimState = 17; + sScreenControl->destWindowAnimState = 0; break; - case 4: - sUnknown_0203A11C->unk6 = 17; - sUnknown_0203A11C->unk7 = 10; + case WINANIM_RETURN_TO_KEYBOARD: + sScreenControl->curWindowAnimState = 17; + sScreenControl->destWindowAnimState = 10; break; - case 5: - sUnknown_0203A11C->unk6 = 18; - sUnknown_0203A11C->unk7 = 22; + case WINANIM_KEYBOARD_SWITCH_OUT: + sScreenControl->curWindowAnimState = 18; + sScreenControl->destWindowAnimState = 22; break; - case 6: - sUnknown_0203A11C->unk6 = 22; - sUnknown_0203A11C->unk7 = 18; + case WINANIM_KEYBOARD_SWITCH_IN: + sScreenControl->curWindowAnimState = 22; + sScreenControl->destWindowAnimState = 18; break; } - sUnknown_0203A11C->unk8 = sUnknown_0203A11C->unk6 < sUnknown_0203A11C->unk7 ? 1 : -1; + sScreenControl->windowAnimStateDir = sScreenControl->curWindowAnimState < sScreenControl->destWindowAnimState ? 1 : -1; } -static bool8 sub_811DAA4(void) +// Returns FALSE if the anim is finished +static bool8 UpdateLowerWindowAnim(void) { - u8 var0, var1; - if (sUnknown_0203A11C->unk6 == sUnknown_0203A11C->unk7) + u8 curState, destState; + if (sScreenControl->curWindowAnimState == sScreenControl->destWindowAnimState) return FALSE; - sUnknown_0203A11C->unk6 += sUnknown_0203A11C->unk8; - sub_811DADC(sUnknown_0203A11C->unk6); - var0 = sUnknown_0203A11C->unk6; - var1 = sUnknown_0203A11C->unk7; - return (var0 ^ var1) > 0; + sScreenControl->curWindowAnimState += sScreenControl->windowAnimStateDir; + DrawLowerWindowFrame(sScreenControl->curWindowAnimState); + curState = sScreenControl->curWindowAnimState; + destState = sScreenControl->destWindowAnimState; + return (curState ^ destState) > 0; } -static void sub_811DADC(u8 arg0) +// States in this function are used incrementally with differing start/end cases +// to draw the lower window and create the appearance that it's opening/closing/animating. +// See InitLowerWindowAnim +static void DrawLowerWindowFrame(u8 type) { FillBgTilemapBufferRect_Palette0(1, 0, 0, 10, 30, 10); - switch (arg0) + switch (type) { - case 0: + case 0: // Closed break; case 1: - sub_811DC28(11, 14, 3, 2); + BufferLowerWindowFrame(11, 14, 3, 2); break; case 2: - sub_811DC28(9, 14, 7, 2); + BufferLowerWindowFrame(9, 14, 7, 2); break; case 3: - sub_811DC28(7, 14, 11, 2); + BufferLowerWindowFrame(7, 14, 11, 2); break; case 4: - sub_811DC28(5, 14, 15, 2); + BufferLowerWindowFrame(5, 14, 15, 2); break; case 5: - sub_811DC28(3, 14, 19, 2); + BufferLowerWindowFrame(3, 14, 19, 2); break; case 6: - sub_811DC28(1, 14, 23, 2); - break; - case 11: - sub_811DC28(1, 10, 24, 10); - break; - case 12: - sub_811DC28(1, 10, 25, 10); - break; - case 13: - sub_811DC28(1, 10, 26, 10); - break; - case 14: - sub_811DC28(1, 10, 27, 10); - break; - case 15: - sub_811DC28(1, 10, 28, 10); - break; - case 16: - sub_811DC28(1, 10, 29, 10); - break; - case 17: - sub_811DC28(0, 10, 30, 10); - break; - case 10: - case 18: - sub_811DC28(1, 10, 23, 10); - break; - case 9: - case 19: - sub_811DC28(1, 11, 23, 8); - break; - case 8: - case 20: - sub_811DC28(1, 12, 23, 6); + BufferLowerWindowFrame(1, 14, 23, 2); break; case 7: + BufferLowerWindowFrame(1, 13, 23, 4); + break; + case 8: + BufferLowerWindowFrame(1, 12, 23, 6); + break; + case 9: + BufferLowerWindowFrame(1, 11, 23, 8); + break; + case 10: + BufferLowerWindowFrame(1, 10, 23, 10); + break; + case 11: + BufferLowerWindowFrame(1, 10, 24, 10); + break; + case 12: + BufferLowerWindowFrame(1, 10, 25, 10); + break; + case 13: + BufferLowerWindowFrame(1, 10, 26, 10); + break; + case 14: + BufferLowerWindowFrame(1, 10, 27, 10); + break; + case 15: + BufferLowerWindowFrame(1, 10, 28, 10); + break; + case 16: + BufferLowerWindowFrame(1, 10, 29, 10); + break; + case 17: + BufferLowerWindowFrame(0, 10, 30, 10); + break; + case 18: + BufferLowerWindowFrame(1, 10, 23, 10); + break; + case 19: + BufferLowerWindowFrame(1, 11, 23, 8); + break; + case 20: + BufferLowerWindowFrame(1, 12, 23, 6); + break; case 21: - sub_811DC28(1, 13, 23, 4); + BufferLowerWindowFrame(1, 13, 23, 4); break; case 22: - sub_811DC28(1, 14, 23, 2); + BufferLowerWindowFrame(1, 14, 23, 2); break; } CopyBgTilemapBufferToVram(1); } -static void sub_811DC28(int left, int top, int width, int height) +static void BufferLowerWindowFrame(int left, int top, int width, int height) { u16 *tilemap; int right; int bottom; int x, y; - tilemap = sUnknown_0203A11C->unk300; + tilemap = sScreenControl->bg1TilemapBuffer; right = left + width - 1; bottom = top + height - 1; x = left; y = top; - tilemap[y * 32 + x] = 0x4001; + + // Draw top edge + tilemap[y * 32 + x] = FRAME_OFFSET_GREEN + FRAME_TILE_TOP_L_CORNER; x++; for (; x < right; x++) - tilemap[y * 32 + x] = 0x4002; + tilemap[y * 32 + x] = FRAME_OFFSET_GREEN + FRAME_TILE_TOP_EDGE; - tilemap[y * 32 + x] = 0x4003; + tilemap[y * 32 + x] = FRAME_OFFSET_GREEN + FRAME_TILE_TOP_R_CORNER; y++; + + // Draw middle section for (; y < bottom; y++) { - tilemap[y * 32 + left] = 0x4005; + tilemap[y * 32 + left] = FRAME_OFFSET_GREEN + FRAME_TILE_L_EDGE; x = left + 1; for (; x < right; x++) - tilemap[y * 32 + x] = 0x4000; + tilemap[y * 32 + x] = FRAME_OFFSET_GREEN + FRAME_TILE_TRANSPARENT; - tilemap[y * 32 + x] = 0x4007; + tilemap[y * 32 + x] = FRAME_OFFSET_GREEN + FRAME_TILE_R_EDGE; } - tilemap[y * 32 + left] = 0x4009; + // Draw bottom edge + tilemap[y * 32 + left] = FRAME_OFFSET_GREEN + FRAME_TILE_BOTTOM_L_CORNER; x = left + 1; for (; x < right; x++) - tilemap[y * 32 + x] = 0x400A; + tilemap[y * 32 + x] = FRAME_OFFSET_GREEN + FRAME_TILE_BOTTOM_EDGE; - tilemap[y * 32 + x] = 0x400B; - sub_811DE5C((left + 1) * 8, (top + 1) * 8, (width - 2) * 8, (height - 2) * 8); + tilemap[y * 32 + x] = FRAME_OFFSET_GREEN + FRAME_TILE_BOTTOM_R_CORNER; + + SetWindowDimensions((left + 1) * 8, (top + 1) * 8, (width - 2) * 8, (height - 2) * 8); } -static void sub_811DD84(void) +static void ResetLowerWindowScroll(void) { ChangeBgY(2, 0x800, 0); - sUnknown_0203A11C->unk2CE = 0; + sScreenControl->scrollOffset = 0; } -static void sub_811DDAC(s16 arg0, u8 arg1) +static void InitLowerWindowScroll(s16 scrollChange, u8 speed) { int bgY; - s16 var0; + s16 yChange; bgY = GetBgY(2); - sUnknown_0203A11C->unk2CE += arg0; - var0 = arg0 * 16; - bgY += var0 << 8; - if (arg1) + sScreenControl->scrollOffset += scrollChange; + yChange = scrollChange * 16; + bgY += yChange * 256; + if (speed) { - sUnknown_0203A11C->unk2D0 = bgY; - sUnknown_0203A11C->unk2D4 = arg1 * 256; - if (var0 < 0) - sUnknown_0203A11C->unk2D4 = -sUnknown_0203A11C->unk2D4; + sScreenControl->scrollDest = bgY; + sScreenControl->scrollSpeed = speed * 256; + if (yChange < 0) + sScreenControl->scrollSpeed = -sScreenControl->scrollSpeed; } else { @@ -4318,28 +4576,28 @@ static void sub_811DDAC(s16 arg0, u8 arg1) } } -static bool8 sub_811DE10(void) +static bool8 UpdateLowerWindowScroll(void) { int bgY; bgY = GetBgY(2); - if (bgY == sUnknown_0203A11C->unk2D0) + if (bgY == sScreenControl->scrollDest) { return FALSE; } else { - ChangeBgY(2, sUnknown_0203A11C->unk2D4, 1); + ChangeBgY(2, sScreenControl->scrollSpeed, 1); return TRUE; } } -static int sub_811DE48(void) +static int GetLowerWindowScrollOffset(void) { - return sUnknown_0203A11C->unk2CE; + return sScreenControl->scrollOffset; } -static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) +static void SetWindowDimensions(u8 left, u8 top, u8 width, u8 height) { u16 horizontalDimensions = WIN_RANGE(left, left + width); u16 verticalDimensions = WIN_RANGE(top, top + height); @@ -4347,244 +4605,258 @@ static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) SetGpuReg(REG_OFFSET_WIN0V, verticalDimensions); } -static void sub_811DE90(void) +static void LoadEasyChatGfx(void) { u32 i; - LoadSpriteSheets(sEasyChatSpriteSheets); - LoadSpritePalettes(sEasyChatSpritePalettes); - for (i = 0; i < ARRAY_COUNT(sUnknown_08597CE8); i++) - LoadCompressedSpriteSheet(&sUnknown_08597CE8[i]); + LoadSpriteSheets(sSpriteSheets); + LoadSpritePalettes(sSpritePalettes); + for (i = 0; i < ARRAY_COUNT(sCompressedSpriteSheets); i++) + LoadCompressedSpriteSheet(&sCompressedSpriteSheets[i]); } -static void sub_811DEC4(void) +#define sDelayTimer data[0] +#define sAnimateCursor data[1] + +static void CreateMainCursorSprite(void) { u8 frameId = GetEasyChatScreenFrameId(); int x = sPhraseFrameDimensions[frameId].left * 8 + 13; int y = sPhraseFrameDimensions[frameId].top * 8 + 8; - u8 spriteId = CreateSprite(&sUnknown_08597D18, x, y, 2); - sUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; - gSprites[spriteId].data[1] = 1; + u8 spriteId = CreateSprite(&sSpriteTemplate_TriangleCursor, x, y, 2); + sScreenControl->mainCursorSprite = &gSprites[spriteId]; + gSprites[spriteId].sAnimateCursor = TRUE; } -static void sub_811DF28(struct Sprite *sprite) +static void SpriteCB_Cursor(struct Sprite *sprite) { - if (sprite->data[1]) + if (sprite->sAnimateCursor) { - if (++sprite->data[0] > 2) + if (++sprite->sDelayTimer > 2) { - sprite->data[0] = 0; - if (++sprite->pos2.x > 0) - sprite->pos2.x = -6; + sprite->sDelayTimer = 0; + if (++sprite->x2 > 0) + sprite->x2 = -6; } } } -static void sub_811DF60(u8 x, u8 y) +static void SetMainCursorPos(u8 x, u8 y) { - sUnknown_0203A11C->unk2D8->pos1.x = x; - sUnknown_0203A11C->unk2D8->pos1.y = y; - sUnknown_0203A11C->unk2D8->pos2.x = 0; - sUnknown_0203A11C->unk2D8->data[0] = 0; + sScreenControl->mainCursorSprite->x = x; + sScreenControl->mainCursorSprite->y = y; + sScreenControl->mainCursorSprite->x2 = 0; + sScreenControl->mainCursorSprite->sDelayTimer = 0; } -static void sub_811DF90(void) +static void StopMainCursorAnim(void) { - sUnknown_0203A11C->unk2D8->data[0] = 0; - sUnknown_0203A11C->unk2D8->data[1] = 0; - sUnknown_0203A11C->unk2D8->pos2.x = 0; + sScreenControl->mainCursorSprite->sDelayTimer = 0; + sScreenControl->mainCursorSprite->sAnimateCursor = FALSE; + sScreenControl->mainCursorSprite->x2 = 0; } -static void sub_811DFB0(void) +static void StartMainCursorAnim(void) { - sUnknown_0203A11C->unk2D8->data[1] = 1; + sScreenControl->mainCursorSprite->sAnimateCursor = TRUE; } -static void sub_811DFC8(void) +static void CreateRectangleCursorSprites(void) { - u8 spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); - sUnknown_0203A11C->unk2DC = &gSprites[spriteId]; - sUnknown_0203A11C->unk2DC->pos2.x = 32; + u8 spriteId = CreateSprite(&sSpriteTemplate_RectangleCursor, 0, 0, 3); + sScreenControl->rectangleCursorSpriteRight = &gSprites[spriteId]; + sScreenControl->rectangleCursorSpriteRight->x2 = 32; - spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); - sUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; - sUnknown_0203A11C->unk2E0->pos2.x = -32; + spriteId = CreateSprite(&sSpriteTemplate_RectangleCursor, 0, 0, 3); + sScreenControl->rectangleCursorSpriteLeft = &gSprites[spriteId]; + sScreenControl->rectangleCursorSpriteLeft->x2 = -32; - sUnknown_0203A11C->unk2DC->hFlip = 1; - sub_811E088(); + sScreenControl->rectangleCursorSpriteRight->hFlip = TRUE; + UpdateRectangleCursorPos(); } -static void sub_811E050(void) +static void DestroyRectangleCursorSprites(void) { - DestroySprite(sUnknown_0203A11C->unk2DC); - sUnknown_0203A11C->unk2DC = NULL; - DestroySprite(sUnknown_0203A11C->unk2E0); - sUnknown_0203A11C->unk2E0 = NULL; + DestroySprite(sScreenControl->rectangleCursorSpriteRight); + sScreenControl->rectangleCursorSpriteRight = NULL; + DestroySprite(sScreenControl->rectangleCursorSpriteLeft); + sScreenControl->rectangleCursorSpriteLeft = NULL; } -static void sub_811E088(void) +static void UpdateRectangleCursorPos(void) { - u8 var0; - u8 var1; + s8 column; + s8 row; - if (sUnknown_0203A11C->unk2DC && sUnknown_0203A11C->unk2E0) + if (sScreenControl->rectangleCursorSpriteRight + && sScreenControl->rectangleCursorSpriteLeft) { - sub_811BB9C(&var0, &var1); - if (!sub_811BBB0()) - sub_811E0EC(var0, var1); + GetKeyboardCursorColAndRow(&column, &row); + if (!GetInAlphabetMode()) + SetRectangleCursorPos_GroupMode(column, row); else - sub_811E1A4(var0, var1); + SetRectangleCursorPos_AlphabetMode(column, row); } } -static void sub_811E0EC(s8 arg0, s8 arg1) +static void SetRectangleCursorPos_GroupMode(s8 column, s8 row) { - if (arg0 != -1) + if (column != -1) { - StartSpriteAnim(sUnknown_0203A11C->unk2DC, 0); - sUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; - sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; + // In group name window + StartSpriteAnim(sScreenControl->rectangleCursorSpriteRight, RECTCURSOR_ANIM_ON_GROUP); + sScreenControl->rectangleCursorSpriteRight->x = column * 84 + 58; + sScreenControl->rectangleCursorSpriteRight->y = row * 16 + 96; - StartSpriteAnim(sUnknown_0203A11C->unk2E0, 0); - sUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; - sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; + StartSpriteAnim(sScreenControl->rectangleCursorSpriteLeft, RECTCURSOR_ANIM_ON_GROUP); + sScreenControl->rectangleCursorSpriteLeft->x = column * 84 + 58; + sScreenControl->rectangleCursorSpriteLeft->y = row * 16 + 96; } else { - StartSpriteAnim(sUnknown_0203A11C->unk2DC, 1); - sUnknown_0203A11C->unk2DC->pos1.x = 216; - sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + // In button window + StartSpriteAnim(sScreenControl->rectangleCursorSpriteRight, RECTCURSOR_ANIM_ON_BUTTON); + sScreenControl->rectangleCursorSpriteRight->x = 216; + sScreenControl->rectangleCursorSpriteRight->y = row * 16 + 112; - StartSpriteAnim(sUnknown_0203A11C->unk2E0, 1); - sUnknown_0203A11C->unk2E0->pos1.x = 216; - sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sScreenControl->rectangleCursorSpriteLeft, RECTCURSOR_ANIM_ON_BUTTON); + sScreenControl->rectangleCursorSpriteLeft->x = 216; + sScreenControl->rectangleCursorSpriteLeft->y = row * 16 + 112; } } -static void sub_811E1A4(s8 arg0, s8 arg1) +static void SetRectangleCursorPos_AlphabetMode(s8 column, s8 row) { int anim; int x, y; - if (arg0 != -1) + if (column != -1) { - y = arg1 * 16 + 96; + y = row * 16 + 96; x = 32; - if (arg0 == 6 && arg1 == 0) + if (column == NUM_ALPHABET_COLUMNS - 1 && row == 0) { + // Cursor is on 'Others' x = 158; - anim = 2; + anim = RECTCURSOR_ANIM_ON_OTHERS; } else { - x += sUnknown_08597D08[arg0 < ARRAY_COUNT(sUnknown_08597D08) ? arg0 : 0]; - anim = 3; + // Cursor is on a letter + x += sAlphabetKeyboardColumnOffsets[(u8)column < NUM_ALPHABET_COLUMNS ? column : 0]; + anim = RECTCURSOR_ANIM_ON_LETTER; } - StartSpriteAnim(sUnknown_0203A11C->unk2DC, anim); - sUnknown_0203A11C->unk2DC->pos1.x = x; - sUnknown_0203A11C->unk2DC->pos1.y = y; + StartSpriteAnim(sScreenControl->rectangleCursorSpriteRight, anim); + sScreenControl->rectangleCursorSpriteRight->x = x; + sScreenControl->rectangleCursorSpriteRight->y = y; - StartSpriteAnim(sUnknown_0203A11C->unk2E0, anim); - sUnknown_0203A11C->unk2E0->pos1.x = x; - sUnknown_0203A11C->unk2E0->pos1.y = y; + StartSpriteAnim(sScreenControl->rectangleCursorSpriteLeft, anim); + sScreenControl->rectangleCursorSpriteLeft->x = x; + sScreenControl->rectangleCursorSpriteLeft->y = y; } else { - StartSpriteAnim(sUnknown_0203A11C->unk2DC, 1); - sUnknown_0203A11C->unk2DC->pos1.x = 216; - sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + // In button window + StartSpriteAnim(sScreenControl->rectangleCursorSpriteRight, RECTCURSOR_ANIM_ON_BUTTON); + sScreenControl->rectangleCursorSpriteRight->x = 216; + sScreenControl->rectangleCursorSpriteRight->y = row * 16 + 112; - StartSpriteAnim(sUnknown_0203A11C->unk2E0, 1); - sUnknown_0203A11C->unk2E0->pos1.x = 216; - sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sScreenControl->rectangleCursorSpriteLeft, RECTCURSOR_ANIM_ON_BUTTON); + sScreenControl->rectangleCursorSpriteLeft->x = 216; + sScreenControl->rectangleCursorSpriteLeft->y = row * 16 + 112; } } -static void sub_811E288(void) +// Cursor for selecting a new word +// Identical in appearance to the 'main' cursor +static void CreateWordSelectCursorSprite(void) { - u8 spriteId = CreateSprite(&sUnknown_08597D18, 0, 0, 4); - sUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; - sUnknown_0203A11C->unk2E4->callback = sub_811E2DC; - sUnknown_0203A11C->unk2E4->oam.priority = 2; - sub_811E30C(); + u8 spriteId = CreateSprite(&sSpriteTemplate_TriangleCursor, 0, 0, 4); + sScreenControl->wordSelectCursorSprite = &gSprites[spriteId]; + sScreenControl->wordSelectCursorSprite->callback = SpriteCB_WordSelectCursor; + sScreenControl->wordSelectCursorSprite->oam.priority = 2; + UpdateWordSelectCursorPos(); } -static void sub_811E2DC(struct Sprite *sprite) +static void SpriteCB_WordSelectCursor(struct Sprite *sprite) { - if (++sprite->data[0] > 2) + if (++sprite->sDelayTimer > 2) { - sprite->data[0] = 0; - if (++sprite->pos2.x > 0) - sprite->pos2.x = -6; + sprite->sDelayTimer = 0; + if (++sprite->x2 > 0) + sprite->x2 = -6; } } -static void sub_811E30C(void) +static void UpdateWordSelectCursorPos(void) { - s8 var0, var1, x, y; + s8 column, row, x, y; - sub_811BBC8(&var0, &var1); - x = var0 * 13; + GetWordSelectColAndRow(&column, &row); + x = column * 13; x = x * 8 + 28; - y = var1 * 16 + 96; - sub_811E34C(x, y); + y = row * 16 + 96; + SetWordSelectCursorPos(x, y); } -static void sub_811E34C(u8 x, u8 y) +static void SetWordSelectCursorPos(u8 x, u8 y) { - if (sUnknown_0203A11C->unk2E4) + if (sScreenControl->wordSelectCursorSprite) { - sUnknown_0203A11C->unk2E4->pos1.x = x; - sUnknown_0203A11C->unk2E4->pos1.y = y; - sUnknown_0203A11C->unk2E4->pos2.x = 0; - sUnknown_0203A11C->unk2E4->data[0] = 0; + sScreenControl->wordSelectCursorSprite->x = x; + sScreenControl->wordSelectCursorSprite->y = y; + sScreenControl->wordSelectCursorSprite->x2 = 0; + sScreenControl->wordSelectCursorSprite->sDelayTimer = 0; } } -static void sub_811E380(void) +static void DestroyWordSelectCursorSprite(void) { - if (sUnknown_0203A11C->unk2E4) + if (sScreenControl->wordSelectCursorSprite) { - DestroySprite(sUnknown_0203A11C->unk2E4); - sUnknown_0203A11C->unk2E4 = NULL; + DestroySprite(sScreenControl->wordSelectCursorSprite); + sScreenControl->wordSelectCursorSprite = NULL; } } -static void sub_811E3AC(void) +static void CreateSideWindowSprites(void) { - u8 spriteId = CreateSprite(&sUnknown_08597DF0, 208, 128, 6); - sUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; - sUnknown_0203A11C->unk2E8->pos2.x = -64; + u8 spriteId = CreateSprite(&sSpriteTemplate_ButtonWindow, 208, 128, 6); + sScreenControl->buttonWindowSprite = &gSprites[spriteId]; + sScreenControl->buttonWindowSprite->x2 = -64; - spriteId = CreateSprite(&sUnknown_08597DD0, 208, 80, 5); - sUnknown_0203A11C->unk2EC = &gSprites[spriteId]; - sUnknown_0203A11C->unk9 = 0; + spriteId = CreateSprite(&sSpriteTemplate_ModeWindow, 208, 80, 5); + sScreenControl->modeWindowSprite = &gSprites[spriteId]; + sScreenControl->modeWindowState = 0; } -static bool8 sub_811E418(void) +static bool8 ShowSideWindow(void) { - switch (sUnknown_0203A11C->unk9) + switch (sScreenControl->modeWindowState) { default: return FALSE; case 0: - sUnknown_0203A11C->unk2E8->pos2.x += 8; - if (sUnknown_0203A11C->unk2E8->pos2.x >= 0) + // Slide button window on + sScreenControl->buttonWindowSprite->x2 += 8; + if (sScreenControl->buttonWindowSprite->x2 >= 0) { - sUnknown_0203A11C->unk2E8->pos2.x = 0; - if (!sub_811BBB0()) - StartSpriteAnim(sUnknown_0203A11C->unk2EC, 1); + sScreenControl->buttonWindowSprite->x2 = 0; + + // Set mode window anim + if (!GetInAlphabetMode()) + StartSpriteAnim(sScreenControl->modeWindowSprite, MODEWINDOW_ANIM_TO_GROUP); else - StartSpriteAnim(sUnknown_0203A11C->unk2EC, 2); + StartSpriteAnim(sScreenControl->modeWindowSprite, MODEWINDOW_ANIM_TO_ALPHABET); - sUnknown_0203A11C->unk9++; + sScreenControl->modeWindowState++; } break; case 1: - if (sUnknown_0203A11C->unk2EC->animEnded) + if (sScreenControl->modeWindowSprite->animEnded) { - sUnknown_0203A11C->unk9 = 2; + sScreenControl->modeWindowState = 2; return FALSE; } } @@ -4592,31 +4864,31 @@ static bool8 sub_811E418(void) return TRUE; } -static void sub_811E4AC(void) +static void HideModeWindow(void) { - sUnknown_0203A11C->unk9 = 0; - StartSpriteAnim(sUnknown_0203A11C->unk2EC, 3); + sScreenControl->modeWindowState = 0; + StartSpriteAnim(sScreenControl->modeWindowSprite, MODEWINDOW_ANIM_TO_HIDDEN); } -static bool8 sub_811E4D0(void) +static bool8 DestroySideWindowSprites(void) { - switch (sUnknown_0203A11C->unk9) + switch (sScreenControl->modeWindowState) { default: return FALSE; case 0: - if (sUnknown_0203A11C->unk2EC->animEnded) - sUnknown_0203A11C->unk9 = 1; + if (sScreenControl->modeWindowSprite->animEnded) + sScreenControl->modeWindowState = 1; break; case 1: - sUnknown_0203A11C->unk2E8->pos2.x -= 8; - if (sUnknown_0203A11C->unk2E8->pos2.x <= -64) + sScreenControl->buttonWindowSprite->x2 -= 8; + if (sScreenControl->buttonWindowSprite->x2 <= -64) { - DestroySprite(sUnknown_0203A11C->unk2EC); - DestroySprite(sUnknown_0203A11C->unk2E8); - sUnknown_0203A11C->unk2EC = NULL; - sUnknown_0203A11C->unk2E8 = NULL; - sUnknown_0203A11C->unk9++; + DestroySprite(sScreenControl->modeWindowSprite); + DestroySprite(sScreenControl->buttonWindowSprite); + sScreenControl->modeWindowSprite = NULL; + sScreenControl->buttonWindowSprite = NULL; + sScreenControl->modeWindowState++; return FALSE; } } @@ -4624,95 +4896,98 @@ static bool8 sub_811E4D0(void) return TRUE; } -static void sub_811E55C(void) +static void SetModeWindowToTransition(void) { - StartSpriteAnim(sUnknown_0203A11C->unk2EC, 4); + StartSpriteAnim(sScreenControl->modeWindowSprite, MODEWINDOW_ANIM_TRANSITION); } -static void sub_811E578(void) +static void UpdateModeWindowAnim(void) { - if (!sub_811BBB0()) - StartSpriteAnim(sUnknown_0203A11C->unk2EC, 1); + if (!GetInAlphabetMode()) + StartSpriteAnim(sScreenControl->modeWindowSprite, MODEWINDOW_ANIM_TO_GROUP); else - StartSpriteAnim(sUnknown_0203A11C->unk2EC, 2); + StartSpriteAnim(sScreenControl->modeWindowSprite, MODEWINDOW_ANIM_TO_ALPHABET); } -static bool8 sub_811E5B8(void) +static bool8 IsModeWindowAnimActive(void) { - return !sUnknown_0203A11C->unk2EC->animEnded; + return !sScreenControl->modeWindowSprite->animEnded; } -static void sub_811E5D4(void) +static void CreateScrollIndicatorSprites(void) { - u8 spriteId = CreateSprite(&sUnknown_08597E48, 96, 80, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_ScrollIndicator, 96, 80, 0); if (spriteId != MAX_SPRITES) - sUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; + sScreenControl->scrollIndicatorUpSprite = &gSprites[spriteId]; - spriteId = CreateSprite(&sUnknown_08597E48, 96, 156, 0); + spriteId = CreateSprite(&sSpriteTemplate_ScrollIndicator, 96, 156, 0); if (spriteId != MAX_SPRITES) { - sUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; - sUnknown_0203A11C->unk2F4->vFlip = 1; + sScreenControl->scrollIndicatorDownSprite = &gSprites[spriteId]; + sScreenControl->scrollIndicatorDownSprite->vFlip = TRUE; } - sub_811E6B0(); + HideScrollIndicators(); } -static void sub_811E64C(void) +static void UpdateScrollIndicatorsVisibility(void) { - sUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); - sUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); + sScreenControl->scrollIndicatorUpSprite->invisible = !CanScrollUp(); + sScreenControl->scrollIndicatorDownSprite->invisible = !CanScrollDown(); } -static void sub_811E6B0(void) +static void HideScrollIndicators(void) { - sUnknown_0203A11C->unk2F0->invisible = 1; - sUnknown_0203A11C->unk2F4->invisible = 1; + sScreenControl->scrollIndicatorUpSprite->invisible = TRUE; + sScreenControl->scrollIndicatorDownSprite->invisible = TRUE; } -static void sub_811E6E0(int arg0) +static void SetScrollIndicatorXPos(bool32 inWordSelect) { - if (!arg0) + if (!inWordSelect) { - sUnknown_0203A11C->unk2F0->pos1.x = 96; - sUnknown_0203A11C->unk2F4->pos1.x = 96; + // Keyboard (only relevant for group mode, can't scroll in alphabet mode) + sScreenControl->scrollIndicatorUpSprite->x = 96; + sScreenControl->scrollIndicatorDownSprite->x = 96; } else { - sUnknown_0203A11C->unk2F0->pos1.x = 120; - sUnknown_0203A11C->unk2F4->pos1.x = 120; + // Word select + sScreenControl->scrollIndicatorUpSprite->x = 120; + sScreenControl->scrollIndicatorDownSprite->x = 120; } } -static void sub_811E720(void) +// The Start/Select buttons are used as page scroll indicators +static void CreateStartSelectButtonSprites(void) { - u8 spriteId = CreateSprite(&sUnknown_08597E30, 220, 84, 1); + u8 spriteId = CreateSprite(&sSpriteTemplate_StartSelectButton, 220, 84, 1); if (spriteId != MAX_SPRITES) - sUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; + sScreenControl->startButtonSprite = &gSprites[spriteId]; - spriteId = CreateSprite(&sUnknown_08597E30, 220, 156, 1); + spriteId = CreateSprite(&sSpriteTemplate_StartSelectButton, 220, 156, 1); if (spriteId != MAX_SPRITES) { - sUnknown_0203A11C->unk2FC = &gSprites[spriteId]; - StartSpriteAnim(sUnknown_0203A11C->unk2FC, 1); + sScreenControl->selectButtonSprite = &gSprites[spriteId]; + StartSpriteAnim(sScreenControl->selectButtonSprite, 1); } - sub_811E7F8(); + HideStartSelectButtons(); } -static void sub_811E794(void) +static void UpdateStartSelectButtonsVisibility(void) { - sUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); - sUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); + sScreenControl->startButtonSprite->invisible = !CanScrollUp(); + sScreenControl->selectButtonSprite->invisible = !CanScrollDown(); } -static void sub_811E7F8(void) +static void HideStartSelectButtons(void) { - sUnknown_0203A11C->unk2F8->invisible = 1; - sUnknown_0203A11C->unk2FC->invisible = 1; + sScreenControl->startButtonSprite->invisible = TRUE; + sScreenControl->selectButtonSprite->invisible = TRUE; } -static void sub_811E828(void) +static void TryAddInterviewObjectEvents(void) { int graphicsId; u8 spriteId; @@ -4732,9 +5007,10 @@ static void sub_811E828(void) return; } - if (GetEasyChatScreenFrameId() != 4) + if (GetEasyChatScreenFrameId() != FRAMEID_INTERVIEW_SHOW_PERSON) return; + // Add object for reporter/interviewing fan (facing left) spriteId = AddPseudoObjectEvent(graphicsId, SpriteCallbackDummy, 76, 40, 0); if (spriteId != MAX_SPRITES) { @@ -4742,6 +5018,7 @@ static void sub_811E828(void) StartSpriteAnim(&gSprites[spriteId], 2); } + // Add object for player (facing right) spriteId = AddPseudoObjectEvent( gSaveBlock2Ptr->playerGender == MALE ? OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL : OBJ_EVENT_GFX_RIVAL_MAY_NORMAL, SpriteCallbackDummy, @@ -4761,33 +5038,33 @@ int GetFooterIndex(void) u8 frameId = GetEasyChatScreenFrameId(); switch (sPhraseFrameDimensions[frameId].footerId) { - case 1: - return 1; - case 2: - return 2; - case 0: - return 0; + case FOOTER_QUIZ: + return FOOTER_QUIZ; + case FOOTER_ANSWER: + return FOOTER_ANSWER; + case FOOTER_NORMAL: + return FOOTER_NORMAL; default: - return 3; + return NUM_FOOTER_TYPES; } } static int GetFooterOptionXOffset(int option) { int footerIndex = GetFooterIndex(); - if (footerIndex < 3) + if (footerIndex < NUM_FOOTER_TYPES) return sFooterOptionXOffsets[footerIndex][option] + 4; else return 0; } -static void sub_811E948(void) +static void AddMainScreenButtonWindow(void) { int i; u16 windowId; struct WindowTemplate template; - int footerId = GetFooterIndex(); - if (footerId == 3) + int footerIndex = GetFooterIndex(); + if (footerIndex == NUM_FOOTER_TYPES) return; template.bg = 3; @@ -4799,13 +5076,13 @@ static void sub_811E948(void) template.baseBlock = 0x34; windowId = AddWindow(&template); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); - for (i = 0; i < 4; i++) + for (i = 0; i < (int)ARRAY_COUNT(sFooterTextOptions[0]); i++) { - const u8 *str = sFooterTextOptions[footerId][i]; + const u8 *str = sFooterTextOptions[footerIndex][i]; if (str) { - int x = sFooterOptionXOffsets[footerId][i]; - sub_811D028(windowId, 1, str, x, 1, 0, NULL); + int x = sFooterOptionXOffsets[footerIndex][i]; + PrintEasyChatText(windowId, 1, str, x, 1, 0, NULL); } } @@ -4822,7 +5099,7 @@ static bool8 IsEasyChatGroupUnlocked(u8 groupId) case EC_GROUP_MOVE_1: case EC_GROUP_MOVE_2: return FlagGet(FLAG_SYS_GAME_CLEAR); - case EC_GROUP_POKEMON_2: + case EC_GROUP_POKEMON_NATIONAL: return EasyChatIsNationalPokedexEnabled(); default: return TRUE; @@ -4840,14 +5117,14 @@ u16 EasyChat_GetNumWordsInGroup(u8 groupId) return 0; } -bool8 sub_811EAA4(u16 easyChatWord) +static bool8 IsEasyChatWordInvalid(u16 easyChatWord) { u16 i; u8 groupId; u32 index; u16 numWords; const u16 *list; - if (easyChatWord == 0xFFFF) + if (easyChatWord == EC_EMPTY_WORD) return FALSE; groupId = EC_GROUP(easyChatWord); @@ -4859,7 +5136,7 @@ bool8 sub_811EAA4(u16 easyChatWord) switch (groupId) { case EC_GROUP_POKEMON: - case EC_GROUP_POKEMON_2: + case EC_GROUP_POKEMON_NATIONAL: case EC_GROUP_MOVE_1: case EC_GROUP_MOVE_2: list = gEasyChatGroups[groupId].wordData.valueList; @@ -4869,15 +5146,15 @@ bool8 sub_811EAA4(u16 easyChatWord) return FALSE; } return TRUE; - default: - if (index >= numWords) - return TRUE; - else - return FALSE; } + + if (index >= numWords) + return TRUE; + else + return FALSE; } -bool8 ECWord_CheckIfOutsideOfValidRange(u16 easyChatWord) +bool8 IsBardWordInvalid(u16 easyChatWord) { int numWordsInGroup; u8 groupId = EC_GROUP(easyChatWord); @@ -4888,12 +5165,12 @@ bool8 ECWord_CheckIfOutsideOfValidRange(u16 easyChatWord) switch (groupId) { case EC_GROUP_POKEMON: - case EC_GROUP_POKEMON_2: - numWordsInGroup = gNumSpeciesNames; + case EC_GROUP_POKEMON_NATIONAL: + numWordsInGroup = gNumBardWords_Species; break; case EC_GROUP_MOVE_1: case EC_GROUP_MOVE_2: - numWordsInGroup = gUnknown_085FA1D4; + numWordsInGroup = gNumBardWords_Moves; break; default: numWordsInGroup = gEasyChatGroups[groupId].numWords; @@ -4906,12 +5183,12 @@ bool8 ECWord_CheckIfOutsideOfValidRange(u16 easyChatWord) return FALSE; } -const u8 *GetEasyChatWord(u8 groupId, u16 index) +static const u8 *GetEasyChatWord(u8 groupId, u16 index) { switch (groupId) { case EC_GROUP_POKEMON: - case EC_GROUP_POKEMON_2: + case EC_GROUP_POKEMON_NATIONAL: return gSpeciesNames[index]; case EC_GROUP_MOVE_1: case EC_GROUP_MOVE_2: @@ -4924,11 +5201,11 @@ const u8 *GetEasyChatWord(u8 groupId, u16 index) u8 *CopyEasyChatWord(u8 *dest, u16 easyChatWord) { u8 *resultStr; - if (sub_811EAA4(easyChatWord)) + if (IsEasyChatWordInvalid(easyChatWord)) { resultStr = StringCopy(dest, gText_ThreeQuestionMarks); } - else if (easyChatWord != 0xFFFF) + else if (easyChatWord != EC_EMPTY_WORD) { u16 index = EC_INDEX(easyChatWord); u8 groupId = EC_GROUP(easyChatWord); @@ -4953,7 +5230,7 @@ u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows for (j = 0; j < numColumns; j++) { dest = CopyEasyChatWord(dest, *src); - if (*src != 0xFFFF) + if (*src != EC_EMPTY_WORD) { *dest = CHAR_SPACE; dest++; @@ -4972,26 +5249,26 @@ u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows return dest; } -u8 *unref_sub_811EC98(u8 *dest, const u16 *src, u16 columns, u16 rows) +static u8 *UnusedConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows) { u16 i, j, k; u16 numColumns; - int var0, var1; + int notEmpty, lineNumber; numColumns = columns; - var1 = 0; + lineNumber = 0; columns--; for (i = 0; i < rows; i++) { - const u16 *var2 = src; - var0 = 0; + const u16 *str = src; + notEmpty = FALSE; for (j = 0; j < numColumns; j++) { - if (var2[j] != 0xFFFF) - var0 = 1; + if (str[j] != EC_EMPTY_WORD) + notEmpty = TRUE; } - if (!var0) + if (!notEmpty) { src += numColumns; continue; @@ -5000,7 +5277,7 @@ u8 *unref_sub_811EC98(u8 *dest, const u16 *src, u16 columns, u16 rows) for (k = 0; k < columns; k++) { dest = CopyEasyChatWord(dest, *src); - if (*src != 0xFFFF) + if (*src != EC_EMPTY_WORD) { *dest = CHAR_SPACE; dest++; @@ -5010,13 +5287,13 @@ u8 *unref_sub_811EC98(u8 *dest, const u16 *src, u16 columns, u16 rows) } dest = CopyEasyChatWord(dest, *(src++)); - if (var1 == 0) + if (lineNumber == 0) *dest = CHAR_NEWLINE; else *dest = CHAR_PROMPT_SCROLL; dest++; - var1++; + lineNumber++; } dest--; @@ -5026,10 +5303,10 @@ u8 *unref_sub_811EC98(u8 *dest, const u16 *src, u16 columns, u16 rows) static u16 GetEasyChatWordStringLength(u16 easyChatWord) { - if (easyChatWord == 0xFFFF) + if (easyChatWord == EC_EMPTY_WORD) return 0; - if (sub_811EAA4(easyChatWord)) + if (IsEasyChatWordInvalid(easyChatWord)) { return StringLength(gText_ThreeQuestionMarks); } @@ -5062,7 +5339,7 @@ u16 GetRandomEasyChatWordFromGroup(u16 groupId) { u16 index = Random() % gEasyChatGroups[groupId].numWords; if (groupId == EC_GROUP_POKEMON - || groupId == EC_GROUP_POKEMON_2 + || groupId == EC_GROUP_POKEMON_NATIONAL || groupId == EC_GROUP_MOVE_1 || groupId == EC_GROUP_MOVE_2) { @@ -5075,7 +5352,7 @@ u16 GetRandomEasyChatWordFromGroup(u16 groupId) u16 GetRandomEasyChatWordFromUnlockedGroup(u16 groupId) { if (!IsEasyChatGroupUnlocked(groupId)) - return 0xFFFF; + return EC_EMPTY_WORD; if (groupId == EC_GROUP_POKEMON) return GetRandomUnlockedEasyChatPokemon(); @@ -5170,7 +5447,7 @@ u16 GetNewHipsterPhraseToTeach(void) u16 additionalPhraseId; u8 numAdditionalPhrasesUnlocked = GetNumAdditionalPhrasesUnlocked(); if (numAdditionalPhrasesUnlocked == NUM_ADDITIONAL_PHRASES) - return 0xFFFF; + return EC_EMPTY_WORD; additionalPhraseId = Random() % (NUM_ADDITIONAL_PHRASES - numAdditionalPhrasesUnlocked); for (i = 0; i < NUM_ADDITIONAL_PHRASES; i++) @@ -5189,7 +5466,7 @@ u16 GetNewHipsterPhraseToTeach(void) } } - return 0xFFFF; + return EC_EMPTY_WORD; } // Unused @@ -5198,7 +5475,7 @@ u16 GetRandomTaughtHipsterPhrase(void) u16 i; u16 additionalPhraseId = GetNumAdditionalPhrasesUnlocked(); if (additionalPhraseId == 0) - return 0xFFFF; + return EC_EMPTY_WORD; additionalPhraseId = Random() % additionalPhraseId; for (i = 0; i < NUM_ADDITIONAL_PHRASES; i++) @@ -5212,7 +5489,7 @@ u16 GetRandomTaughtHipsterPhrase(void) } } - return 0xFFFF; + return EC_EMPTY_WORD; } static bool8 EasyChatIsNationalPokedexEnabled(void) @@ -5227,7 +5504,7 @@ static u16 GetRandomUnlockedEasyChatPokemon(void) const u16 *species; u16 index = EasyChat_GetNumWordsInGroup(EC_GROUP_POKEMON); if (index == 0) - return 0xFFFF; + return EC_EMPTY_WORD; index = Random() % index; species = gEasyChatGroups[EC_GROUP_POKEMON].wordData.valueList; @@ -5246,29 +5523,29 @@ static u16 GetRandomUnlockedEasyChatPokemon(void) species++; } - return 0xFFFF; + return EC_EMPTY_WORD; } void InitEasyChatPhrases(void) { u16 i, j; - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sDefaultProfileWords); i++) gSaveBlock1Ptr->easyChatProfile[i] = sDefaultProfileWords[i]; - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) gSaveBlock1Ptr->easyChatBattleStart[i] = sDefaultBattleStartWords[i]; - for (i = 0; i < 6; i++) - gSaveBlock1Ptr->easyChatBattleWon[i] = sUnknown_0859E640[i]; + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + gSaveBlock1Ptr->easyChatBattleWon[i] = sDefaultBattleWonWords[i]; - for (i = 0; i < 6; i++) - gSaveBlock1Ptr->easyChatBattleLost[i] = sUnknown_0859E64C[i]; + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) + gSaveBlock1Ptr->easyChatBattleLost[i] = sDefaultBattleLostWords[i]; for (i = 0; i < MAIL_COUNT; i++) { for (j = 0; j < MAIL_WORDS_COUNT; j++) - gSaveBlock1Ptr->mail[i].words[j] = 0xFFFF; + gSaveBlock1Ptr->mail[i].words[j] = EC_EMPTY_WORD; } #ifndef UBFIX @@ -5284,65 +5561,67 @@ void InitEasyChatPhrases(void) #endif } -static bool8 sub_811F28C(void) +static bool8 InitEasyChatScreenWordData(void) { - sUnknown_0203A120 = Alloc(sizeof(*sUnknown_0203A120)); - if (!sUnknown_0203A120) + sWordData = Alloc(sizeof(*sWordData)); + if (!sWordData) return FALSE; - sub_811F2D4(); - sub_811F46C(); + SetUnlockedEasyChatGroups(); + SetUnlockedWordsByAlphabet(); return TRUE; } -static void sub_811F2B8(void) +static void FreeEasyChatScreenWordData(void) { - if (sUnknown_0203A120) - FREE_AND_SET_NULL(sUnknown_0203A120); + if (sWordData) + FREE_AND_SET_NULL(sWordData); } -static void sub_811F2D4(void) +static void SetUnlockedEasyChatGroups(void) { int i; - sUnknown_0203A120->unk0 = 0; + sWordData->numUnlockedGroups = 0; if (GetNationalPokedexCount(FLAG_GET_SEEN)) - sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; + sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = EC_GROUP_POKEMON; + // These groups are unlocked automatically for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++) - sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = i; + sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = i; if (FlagGet(FLAG_SYS_GAME_CLEAR)) { - sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; - sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; - sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; + sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = EC_GROUP_EVENTS; + sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = EC_GROUP_MOVE_1; + sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = EC_GROUP_MOVE_2; } if (FlagGet(FLAG_SYS_HIPSTER_MEET)) - sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; + sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = EC_GROUP_TRENDY_SAYING; if (IsNationalPokedexEnabled()) - sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; + sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = EC_GROUP_POKEMON_NATIONAL; } -static u8 sub_811F3AC(void) +static u8 GetNumUnlockedEasyChatGroups(void) { - return sUnknown_0203A120->unk0; + return sWordData->numUnlockedGroups; } -static u8 sub_811F3B8(u8 index) +static u8 GetUnlockedEasyChatGroupId(u8 index) { - if (index >= sUnknown_0203A120->unk0) + if (index >= sWordData->numUnlockedGroups) return EC_NUM_GROUPS; else - return sUnknown_0203A120->unk2[index]; + return sWordData->unlockedGroupIds[index]; } -u8 *unref_sub_811F3E0(u8 *dest, u8 groupId, u16 totalChars) +// Unused +static u8 *BufferEasyChatWordGroupName(u8 *dest, u8 groupId, u16 totalChars) { u16 i; - u8 *str = StringCopy(dest, gEasyChatGroupNamePointers[groupId]); + u8 *str = StringCopy(dest, sEasyChatGroupNamePointers[groupId]); for (i = str - dest; i < totalChars; i++) { *str = CHAR_SPACE; @@ -5355,7 +5634,7 @@ u8 *unref_sub_811F3E0(u8 *dest, u8 groupId, u16 totalChars) static const u8 *GetEasyChatWordGroupName(u8 groupId) { - return gEasyChatGroupNamePointers[groupId]; + return sEasyChatGroupNamePointers[groupId]; } static u8 *CopyEasyChatWordPadded(u8 *dest, u16 easyChatWord, u16 totalChars) @@ -5372,7 +5651,7 @@ static u8 *CopyEasyChatWordPadded(u8 *dest, u16 easyChatWord, u16 totalChars) return str; } -static void sub_811F46C(void) +static void SetUnlockedWordsByAlphabet(void) { int i, j, k; int numWords; @@ -5380,15 +5659,15 @@ static void sub_811F46C(void) u16 numToProcess; int index; - for (i = 0; i < 27; i++) + for (i = 0; i < EC_NUM_ALPHABET_GROUPS; i++) { numWords = gEasyChatWordsByLetterPointers[i].numWords; words = gEasyChatWordsByLetterPointers[i].words; - sUnknown_0203A120->unk2E[i] = 0; + sWordData->numUnlockedAlphabetWords[i] = 0; index = 0; for (j = 0; j < numWords; j++) { - if (*words == 0xFFFF) + if (*words == EC_EMPTY_WORD) { words++; numToProcess = *words; @@ -5402,10 +5681,10 @@ static void sub_811F46C(void) for (k = 0; k < numToProcess; k++) { - if (sub_811F860(words[k])) + if (IsEasyChatWordUnlocked(words[k])) { - sUnknown_0203A120->unk64[i][index++] = words[k]; - sUnknown_0203A120->unk2E[i]++; + sWordData->unlockedAlphabetWords[i][index++] = words[k]; + sWordData->numUnlockedAlphabetWords[i]++; break; } } @@ -5415,28 +5694,28 @@ static void sub_811F46C(void) } } -static void sub_811F548(int arg0, u16 groupId) +static void SetSelectedWordGroup(bool32 inAlphabetMode, u16 groupId) { - if (!arg0) - sUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); + if (!inAlphabetMode) + sWordData->numSelectedGroupWords = SetSelectedWordGroup_GroupMode(groupId); else - sUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); + sWordData->numSelectedGroupWords = SetSelectedWordGroup_AlphabetMode(groupId); } -static u16 sub_811F578(u16 arg0) +static u16 GetWordFromSelectedGroup(u16 index) { - if (arg0 >= sUnknown_0203A120->unk3BA0) - return 0xFFFF; + if (index >= sWordData->numSelectedGroupWords) + return EC_EMPTY_WORD; else - return sUnknown_0203A120->unk3984[arg0]; + return sWordData->selectedGroupWords[index]; } -static u16 sub_811F5B0(void) +static u16 GetNumWordsInSelectedGroup(void) { - return sUnknown_0203A120->unk3BA0; + return sWordData->numSelectedGroupWords; } -static u16 sub_811F5C4(u16 groupId) +static u16 SetSelectedWordGroup_GroupMode(u16 groupId) { u32 i; int totalWords; @@ -5444,14 +5723,14 @@ static u16 sub_811F5C4(u16 groupId) const struct EasyChatWordInfo *wordInfo; u16 numWords = gEasyChatGroups[groupId].numWords; - if (groupId == EC_GROUP_POKEMON || groupId == EC_GROUP_POKEMON_2 + if (groupId == EC_GROUP_POKEMON || groupId == EC_GROUP_POKEMON_NATIONAL || groupId == EC_GROUP_MOVE_1 || groupId == EC_GROUP_MOVE_2) { list = gEasyChatGroups[groupId].wordData.valueList; for (i = 0, totalWords = 0; i < numWords; i++) { - if (sub_811F764(list[i], groupId)) - sUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); + if (IsEasyChatIndexAndGroupUnlocked(list[i], groupId)) + sWordData->selectedGroupWords[totalWords++] = EC_WORD(groupId, list[i]); } return totalWords; @@ -5462,45 +5741,45 @@ static u16 sub_811F5C4(u16 groupId) for (i = 0, totalWords = 0; i < numWords; i++) { u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder; - if (sub_811F764(alphabeticalOrder, groupId)) - sUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); + if (IsEasyChatIndexAndGroupUnlocked(alphabeticalOrder, groupId)) + sWordData->selectedGroupWords[totalWords++] = EC_WORD(groupId, alphabeticalOrder); } return totalWords; } } -static u16 sub_811F6B8(u16 alphabeticalGroup) +static u16 SetSelectedWordGroup_AlphabetMode(u16 groupId) { u16 i; u16 totalWords; - for (i = 0, totalWords = 0; i < sUnknown_0203A120->unk2E[alphabeticalGroup]; i++) - sUnknown_0203A120->unk3984[totalWords++] = sUnknown_0203A120->unk64[alphabeticalGroup][i]; + for (i = 0, totalWords = 0; i < sWordData->numUnlockedAlphabetWords[groupId]; i++) + sWordData->selectedGroupWords[totalWords++] = sWordData->unlockedAlphabetWords[groupId][i]; return totalWords; } -static bool8 sub_811F72C(u8 arg0) +static bool8 IsEasyChatGroupUnlocked2(u8 groupId) { int i; - for (i = 0; i < sUnknown_0203A120->unk0; i++) + for (i = 0; i < sWordData->numUnlockedGroups; i++) { - if (sUnknown_0203A120->unk2[i] == arg0) + if (sWordData->unlockedGroupIds[i] == groupId) return TRUE; } return FALSE; } -static bool8 sub_811F764(u16 wordIndex, u8 groupId) +static bool8 IsEasyChatIndexAndGroupUnlocked(u16 wordIndex, u8 groupId) { switch (groupId) { case EC_GROUP_POKEMON: return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); - case EC_GROUP_POKEMON_2: - if (sub_811F838(wordIndex)) + case EC_GROUP_POKEMON_NATIONAL: + if (IsRestrictedWordSpecies(wordIndex)) GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); return TRUE; case EC_GROUP_MOVE_1: @@ -5513,50 +5792,52 @@ static bool8 sub_811F764(u16 wordIndex, u8 groupId) } } -static int sub_811F838(u16 species) +// Pokémon words in EC_GROUP_POKEMON_NATIONAL are always allowed (assuming the group is unlocked) +// unless they are in this group. If they are in this group (just Deoxys), they must also have been seen. +static int IsRestrictedWordSpecies(u16 species) { u32 i; - for (i = 0; i < ARRAY_COUNT(sUnknown_0859E658); i++) + for (i = 0; i < ARRAY_COUNT(sRestrictedWordSpecies); i++) { - if (sUnknown_0859E658[i] == species) + if (sRestrictedWordSpecies[i] == species) return TRUE; } return FALSE; } -static u8 sub_811F860(u16 easyChatWord) +static u8 IsEasyChatWordUnlocked(u16 easyChatWord) { u8 groupId = EC_GROUP(easyChatWord); u32 index = EC_INDEX(easyChatWord); - if (!sub_811F72C(groupId)) + if (!IsEasyChatGroupUnlocked2(groupId)) return FALSE; else - return sub_811F764(index, groupId); + return IsEasyChatIndexAndGroupUnlocked(index, groupId); } void InitializeEasyChatWordArray(u16 *words, u16 length) { u16 i; - for (i = length - 1; i != 0xFFFF; i--) - *(words++) = 0xFFFF; + for (i = length - 1; i != EC_EMPTY_WORD; i--) + *(words++) = EC_EMPTY_WORD; } -void sub_811F8BC(void) +void InitQuestionnaireWords(void) { int i; - u16 *words = sub_801B058(); - for (i = 0; i < 4; i++) - words[i] = 0xFFFF; + u16 *words = GetQuestionnaireWordsPtr(); + for (i = 0; i < NUM_QUESTIONNAIRE_WORDS; i++) + words[i] = EC_EMPTY_WORD; } -bool32 sub_811F8D8(int easyChatWord) +bool32 IsEasyChatAnswerUnlocked(int easyChatWord) { int groupId = EC_GROUP(easyChatWord); - int mask = 0x7F; + int mask = EC_MASK_GROUP; int index = EC_INDEX(easyChatWord); if (!IsEasyChatGroupUnlocked(groupId & mask)) return FALSE; else - return sub_811F764(index, groupId & mask); + return IsEasyChatIndexAndGroupUnlocked(index, groupId & mask); } diff --git a/src/egg_hatch.c b/src/egg_hatch.c index b1b97d67f2..e708360d90 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -54,7 +54,7 @@ struct EggHatchData u8 textColor[3]; }; -extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle +extern const u32 gTradePlatform_Tilemap[]; extern const u8 gText_HatchedFromEgg[]; extern const u8 gText_NicknameHatchPrompt[]; @@ -297,7 +297,7 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) { u16 species; u32 personality, pokerus; - u8 i, friendship, language, gameMet, markings, obedience; + u8 i, friendship, language, gameMet, markings, isEventLegal; u16 moves[MAX_MON_MOVES]; u32 ivs[NUM_STATS]; @@ -320,9 +320,9 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) gameMet = GetMonData(egg, MON_DATA_MET_GAME); markings = GetMonData(egg, MON_DATA_MARKINGS); pokerus = GetMonData(egg, MON_DATA_POKERUS); - obedience = GetMonData(egg, MON_DATA_OBEDIENCE); + isEventLegal = GetMonData(egg, MON_DATA_EVENT_LEGAL); - CreateMon(temp, species, EGG_HATCH_LEVEL, 32, TRUE, personality, OT_ID_PLAYER_ID, 0); + CreateMon(temp, species, EGG_HATCH_LEVEL, USE_RANDOM_IVS, TRUE, personality, OT_ID_PLAYER_ID, 0); for (i = 0; i < MAX_MON_MOVES; i++) { @@ -342,7 +342,7 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) friendship = 120; SetMonData(temp, MON_DATA_FRIENDSHIP, &friendship); SetMonData(temp, MON_DATA_POKERUS, &pokerus); - SetMonData(temp, MON_DATA_OBEDIENCE, &obedience); + SetMonData(temp, MON_DATA_EVENT_LEGAL, &isEventLegal); *egg = *temp; } @@ -546,7 +546,7 @@ static void CB2_EggHatch_0(void) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); LoadPalette(gTradeGba2_Pal, 0x10, 0xA0); LoadBgTiles(1, gTradeGba_Gfx, 0x1420, 0); - CopyToBgTilemapBuffer(1, gUnknown_08331F60, 0x1000, 0); + CopyToBgTilemapBuffer(1, gTradePlatform_Tilemap, 0x1000, 0); CopyBgTilemapBufferToVram(1); gMain.state++; break; @@ -584,6 +584,9 @@ static void Task_EggHatchPlayBGM(u8 taskID) PlayBGM(MUS_EVOLUTION); DestroyTask(taskID); // UB: task is destroyed, yet the value is incremented + #ifdef UBFIX + return; + #endif } gTasks[taskID].data[0]++; } @@ -597,7 +600,7 @@ static void CB2_EggHatch_1(void) switch (sEggHatchData->CB2_state) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5); ShowBg(0); ShowBg(1); @@ -680,7 +683,7 @@ static void CB2_EggHatch_1(void) } break; case 11: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); sEggHatchData->CB2_state++; break; case 12: @@ -713,7 +716,7 @@ static void SpriteCB_Egg_0(struct Sprite* sprite) else { sprite->data[1] = (sprite->data[1] + 20) & 0xFF; - sprite->pos2.x = Sin(sprite->data[1], 1); + sprite->x2 = Sin(sprite->data[1], 1); if (sprite->data[0] == 15) { PlaySE(SE_BALL); @@ -736,7 +739,7 @@ static void SpriteCB_Egg_1(struct Sprite* sprite) else { sprite->data[1] = (sprite->data[1] + 20) & 0xFF; - sprite->pos2.x = Sin(sprite->data[1], 2); + sprite->x2 = Sin(sprite->data[1], 2); if (sprite->data[0] == 15) { PlaySE(SE_BALL); @@ -757,13 +760,13 @@ static void SpriteCB_Egg_2(struct Sprite* sprite) sprite->callback = SpriteCB_Egg_3; sprite->data[0] = 0; species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); - gSprites[sEggHatchData->pokeSpriteID].pos2.x = 0; - gSprites[sEggHatchData->pokeSpriteID].pos2.y = 0; + gSprites[sEggHatchData->pokeSpriteID].x2 = 0; + gSprites[sEggHatchData->pokeSpriteID].y2 = 0; } else { sprite->data[1] = (sprite->data[1] + 20) & 0xFF; - sprite->pos2.x = Sin(sprite->data[1], 2); + sprite->x2 = Sin(sprite->data[1], 2); if (sprite->data[0] == 15) { PlaySE(SE_BALL); @@ -790,7 +793,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite) { s16 i; if (sprite->data[0] == 0) - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 0x10, RGB_WHITEALPHA); if (sprite->data[0] < 4u) { for (i = 0; i <= 3; i++) @@ -811,12 +814,12 @@ static void SpriteCB_Egg_5(struct Sprite* sprite) if (sprite->data[0] == 0) { gSprites[sEggHatchData->pokeSpriteID].invisible = FALSE; - StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); + StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], BATTLER_AFFINE_EMERGE); } if (sprite->data[0] == 8) - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0x10, 0, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, -1, 0x10, 0, RGB_WHITEALPHA); if (sprite->data[0] <= 9) - gSprites[sEggHatchData->pokeSpriteID].pos1.y -= 1; + gSprites[sEggHatchData->pokeSpriteID].y -= 1; if (sprite->data[0] > 40) sprite->callback = SpriteCallbackDummy; sprite->data[0]++; @@ -827,12 +830,12 @@ static void SpriteCB_EggShard(struct Sprite* sprite) sprite->data[4] += sprite->data[1]; sprite->data[5] += sprite->data[2]; - sprite->pos2.x = sprite->data[4] / 256; - sprite->pos2.y = sprite->data[5] / 256; + sprite->x2 = sprite->data[4] / 256; + sprite->y2 = sprite->data[5] / 256; sprite->data[2] += sprite->data[3]; - if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data[2] > 0) + if (sprite->y + sprite->y2 > sprite->y + 20 && sprite->data[2] > 0) DestroySprite(sprite); } diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c index fe3da88570..90e9caf4e3 100755 --- a/src/ereader_helpers.c +++ b/src/ereader_helpers.c @@ -14,34 +14,64 @@ #include "constants/trainers.h" #include "constants/moves.h" #include "constants/items.h" +#include "constants/trainer_hill.h" -struct Unknown030012C8 -{ - u8 unk0[8]; - u32 *unk8; - int unkC; - int unk10; - int unk14; +enum { + EREADER_XFR_STATE_INIT = 0, + EREADER_XFR_STATE_HANDSHAKE, + EREADER_XFR_STATE_START, + EREADER_XFR_STATE_TRANSFER, + EREADER_XFR_STATE_TRANSFER_DONE, + EREADER_XFR_STATE_CHECKSUM, + EREADER_XFR_STATE_DONE }; -static void sub_81D4170(void); -static u16 sub_81D3EE8(u8); -static void sub_81D413C(void); -static void sub_81D414C(void); -static void sub_81D3F1C(u32, u32*, u32*); -static void sub_81D3F68(void); +#define EREADER_XFER_EXE 1 +#define EREADER_XFER_CHK 2 +#define EREADER_XFER_SHIFT 0 +#define EREADER_XFER_MASK 3 -static struct Unknown030012C8 gUnknown_030012C8; -static u16 gUnknown_030012E0; -static u16 gUnknown_030012E2; -static u16 gUnknown_030012E4; -static u16 gUnknown_030012E6; -static u32 gUnknown_030012E8; -static u16 gUnknown_030012EC; -static u16 gUnknown_030012EE; -static u16 gUnknown_030012F0; -static u16 gUnknown_030012F2; -static u16 gUnknown_030012F4; +#define EREADER_CANCEL_TIMEOUT 1 +#define EREADER_CANCEL_KEY 2 +#define EREADER_CANCEL_MASK 0xC +#define EREADER_CANCEL_SHIFT 2 + +#define EREADER_CHECKSUM_OK 1 +#define EREADER_CHECKSUM_ERR 2 +#define EREADER_CHECKSUM_MASK 0x30 +#define EREADER_CHECKSUM_SHIFT 4 + +struct SendRecvMgr +{ + bool8 isParent; + u8 state; // EREADER_XFR_STATE_* + u8 xferState; // EREADER_XFER_* + u8 checksumResult; // EREADER_CHECKSUM_* + u8 cancellationReason; // EREADER_CANCEL_* + u32 *data; // Payload source or destination + int cursor; // Index of the next word + int size; // Last word index + int checksum; +}; + +static void GetKeyInput(void); +static u16 DetermineSendRecvState(u8); +static void EnableSio(void); +static void DisableTm3(void); +static void SetUpTransferManager(size_t, const void *, void *); +static void StartTm3(void); + +static struct SendRecvMgr sSendRecvMgr; +static u16 sJoyNewOrRepeated; +static u16 sJoyNew; +static u16 sSendRecvStatus; +static u16 sCounter1; +static u32 sCounter2; +static u16 sSavedIme; +static u16 sSavedIe; +static u16 sSavedTm3Cnt; +static u16 sSavedSioCnt; +static u16 sSavedRCnt; static const struct TrainerHillTrainer sTrainerHillTrainerTemplates_JP[] = { [0] = { @@ -134,10 +164,10 @@ static const struct TrainerHillTrainer sTrainerHillTrainerTemplates_JP[] = { .name = __("ハルヒト$$$$ "), .facilityClass = FACILITY_CLASS_CAMPER, .unused = 0x1, - .speechBefore = { EC_MOVE2(BOUNCE), EC_WORD_AS_MUCH_AS, 0xFFFF, EC_WORD_THEY_RE, EC_WORD_STRONG, EC_WORD_EXCL }, - .speechWin = { EC_MOVE(FLY), EC_WORD_AS_MUCH_AS, 0xFFFF, EC_WORD_THEY_RE, EC_WORD_HAPPY, EC_WORD_EXCL }, - .speechLose = { EC_MOVE2(MINIMIZE), EC_WORD_AS_MUCH_AS, 0xFFFF, EC_WORD_THEY_RE, EC_WORD_SAD, EC_WORD_EXCL }, - .speechAfter = { EC_MOVE(BITE), EC_WORD_AS_MUCH_AS, 0xFFFF, EC_WORD_THEY_RE, EC_WORD_ANGRY, EC_WORD_EXCL }, + .speechBefore = { EC_MOVE2(BOUNCE), EC_WORD_AS_MUCH_AS, EC_EMPTY_WORD, EC_WORD_THEY_RE, EC_WORD_STRONG, EC_WORD_EXCL }, + .speechWin = { EC_MOVE(FLY), EC_WORD_AS_MUCH_AS, EC_EMPTY_WORD, EC_WORD_THEY_RE, EC_WORD_HAPPY, EC_WORD_EXCL }, + .speechLose = { EC_MOVE2(MINIMIZE), EC_WORD_AS_MUCH_AS, EC_EMPTY_WORD, EC_WORD_THEY_RE, EC_WORD_SAD, EC_WORD_EXCL }, + .speechAfter = { EC_MOVE(BITE), EC_WORD_AS_MUCH_AS, EC_EMPTY_WORD, EC_WORD_THEY_RE, EC_WORD_ANGRY, EC_WORD_EXCL }, .mons = { [0] = NULL_BATTLE_TOWER_POKEMON, [1] = NULL_BATTLE_TOWER_POKEMON, @@ -223,7 +253,7 @@ static const struct TrainerHillTrainer sTrainerHillTrainerTemplates_JP[] = { .speechBefore = { EC_WORD_SHINE, EC_WORD_POKEMON, EC_WORD_RELEASE, EC_WORD_WAS, EC_MOVE2(FRUSTRATION), EC_WORD_WITHOUT }, .speechWin = { EC_WORD_SHINE, EC_WORD_POKEMON, EC_WORD_TO_HER, EC_MOVE2(PRESENT), EC_WORD_KNOWS, EC_WORD_WITHOUT }, .speechLose = { EC_WORD_THAT, EC_WORD_ABOVE, EC_WORD_LOST, EC_WORD_STORES, EC_WORD_JOKING, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS }, - .speechAfter = { EC_WORD_ENTERTAINING, EC_WORD_NONE, EC_WORD_HEY_QUES, EC_WORD_ALMOST, EC_WORD_EXCL, 0xFFFF }, + .speechAfter = { EC_WORD_ENTERTAINING, EC_WORD_NONE, EC_WORD_HEY_QUES, EC_WORD_ALMOST, EC_WORD_EXCL, EC_EMPTY_WORD }, .mons = { [0] = NULL_BATTLE_TOWER_POKEMON, [1] = NULL_BATTLE_TOWER_POKEMON, @@ -307,7 +337,7 @@ static const struct TrainerHillTrainer sTrainerHillTrainerTemplates_JP[] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .unused = 0x1, .speechBefore = { EC_WORD_SHE_WAS, EC_WORD_NO_1, EC_WORD_STRONG, EC_WORD_UNCLE, EC_WORD_THERE, EC_WORD_EXCL }, - .speechWin = { EC_WORD_HAHAHA, EC_WORD_TEACHER, EC_WORD_BECOMES, EC_WORD_GIVE, EC_WORD_IS_IT_QUES, 0xFFFF }, + .speechWin = { EC_WORD_HAHAHA, EC_WORD_TEACHER, EC_WORD_BECOMES, EC_WORD_GIVE, EC_WORD_IS_IT_QUES, EC_EMPTY_WORD }, .speechLose = { EC_WORD_OUTSIDE, EC_WORD_UNCLE, EC_WORD_SURPRISE, EC_WORD_THESE, EC_WORD_HEY_QUES, EC_WORD_ELLIPSIS_EXCL }, .speechAfter = { EC_WORD_HE_S, EC_WORD_NO_1, EC_WORD_STRONG, EC_WORD_CHILDREN, EC_WORD_CAN_T, EC_WORD_EXCL_EXCL }, .mons = { @@ -390,217 +420,217 @@ static const struct TrainerHillTrainer sTrainerHillTrainerTemplates_JP[] = { }, }; -static u8 sub_81D38D4(void) +static u8 GetTrainerHillUnkVal(void) { return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; } -static bool32 Struct_EReaderTrainerHillTrainer_ValidateChecksum(struct EReaderTrainerHillTrainer *arg0) +static bool32 ValidateTrainerChecksum(struct EReaderTrainerHillTrainer * hillTrainer) { - int checksum = CalcByteArraySum((u8 *)arg0, 0x270); - if (checksum != arg0->checksum) + int checksum = CalcByteArraySum((u8 *)hillTrainer, offsetof(typeof(*hillTrainer), checksum)); + if (checksum != hillTrainer->checksum) return FALSE; return TRUE; } -bool8 EReader_IsReceivedDataValid(struct EReaderTrainerHillSet *buffer) +bool8 ValidateTrainerHillData(struct EReaderTrainerHillSet * hillSet) { u32 i; u32 checksum; - int var0 = buffer->count; - if (var0 < 1 || var0 > 8) + int numTrainers = hillSet->numTrainers; + + // Validate number of trainers + if (numTrainers < 1 || numTrainers > NUM_TRAINER_HILL_TRAINERS) return FALSE; - for (i = 0; i < var0; i++) + // Validate trainers + for (i = 0; i < numTrainers; i++) { - if (!Struct_EReaderTrainerHillTrainer_ValidateChecksum(&buffer->unk_8[i])) + if (!ValidateTrainerChecksum(&hillSet->trainers[i])) return FALSE; } - checksum = CalcByteArraySum((u8 *)buffer->unk_8, var0 * sizeof(struct EReaderTrainerHillTrainer)); - if (checksum != buffer->checksum) + // Validate checksum + checksum = CalcByteArraySum((u8 *)hillSet->trainers, numTrainers * sizeof(struct EReaderTrainerHillTrainer)); + if (checksum != hillSet->checksum) return FALSE; return TRUE; } -static bool32 TrainerHill_VerifyChecksum(struct EReaderTrainerHillSet *buffer) +static bool32 ValidateTrainerHillChecksum(struct EReaderTrainerHillSet *hillSet) { u32 checksum; - int var0 = buffer->count; - if (var0 < 1 || var0 > 8) + int numTrainers = hillSet->numTrainers; + if (numTrainers < 1 || numTrainers > NUM_TRAINER_HILL_TRAINERS) return FALSE; - checksum = CalcByteArraySum((u8 *)buffer->unk_8, sizeof(struct EReaderTrainerHillSet) - offsetof(struct EReaderTrainerHillSet, unk_8)); - if (checksum != buffer->checksum) + checksum = CalcByteArraySum((u8 *)hillSet->trainers, sizeof(struct EReaderTrainerHillSet) - offsetof(struct EReaderTrainerHillSet, trainers)); + if (checksum != hillSet->checksum) return FALSE; return TRUE; } -static bool32 TryWriteTrainerHill_r(struct EReaderTrainerHillSet *ttdata, struct TrHillTag *buffer2) +static bool32 TryWriteTrainerHill_Internal(struct EReaderTrainerHillSet * hillSet, struct TrHillTag * hillTag) { int i; - AGB_ASSERT_EX(ttdata->dummy == 0, "cereader_tool.c", 450); - AGB_ASSERT_EX(ttdata->id == 0, "cereader_tool.c", 452); + AGB_ASSERT_EX(hillSet->dummy == 0, "cereader_tool.c", 450); + AGB_ASSERT_EX(hillSet->id == 0, "cereader_tool.c", 452); - memset(buffer2, 0, 0x1000); - buffer2->numTrainers = ttdata->count; - buffer2->unused1 = sub_81D38D4(); - buffer2->numFloors = (ttdata->count + 1) / 2; + memset(hillTag, 0, SECTOR_SIZE); + hillTag->numTrainers = hillSet->numTrainers; + hillTag->unused1 = GetTrainerHillUnkVal(); + hillTag->numFloors = (hillSet->numTrainers + 1) / TRAINER_HILL_TRAINERS_PER_FLOOR; - for (i = 0; i < ttdata->count; i++) + for (i = 0; i < hillSet->numTrainers; i++) { if (!(i & 1)) { - buffer2->floors[i / 2].trainerNum1 = ttdata->unk_8[i].unk0; - buffer2->floors[i / 2].display = ttdata->unk_8[i].unk14C; - buffer2->floors[i / 2].trainers[0] = ttdata->unk_8[i].unk4; + hillTag->floors[i / TRAINER_HILL_TRAINERS_PER_FLOOR].trainerNum1 = hillSet->trainers[i].trainerNum; + hillTag->floors[i / TRAINER_HILL_TRAINERS_PER_FLOOR].display = hillSet->trainers[i].display; + hillTag->floors[i / TRAINER_HILL_TRAINERS_PER_FLOOR].trainers[0] = hillSet->trainers[i].trainer; } else { - buffer2->floors[i / 2].trainerNum2 = ttdata->unk_8[i].unk0; - buffer2->floors[i / 2].trainers[1] = ttdata->unk_8[i].unk4; + hillTag->floors[i / TRAINER_HILL_TRAINERS_PER_FLOOR].trainerNum2 = hillSet->trainers[i].trainerNum; + hillTag->floors[i / TRAINER_HILL_TRAINERS_PER_FLOOR].trainers[1] = hillSet->trainers[i].trainer; } } if (i & 1) { - buffer2->floors[i / 2].trainers[1] = sTrainerHillTrainerTemplates_JP[i / 2]; + hillTag->floors[i / TRAINER_HILL_TRAINERS_PER_FLOOR].trainers[1] = sTrainerHillTrainerTemplates_JP[i / TRAINER_HILL_TRAINERS_PER_FLOOR]; } - buffer2->checksum = CalcByteArraySum((u8 *)buffer2->floors, 4 * sizeof(struct TrHillFloor)); - if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)buffer2) != SAVE_STATUS_OK) + hillTag->checksum = CalcByteArraySum((u8 *)hillTag->floors, NUM_TRAINER_HILL_FLOORS * sizeof(struct TrHillFloor)); + if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)hillTag) != SAVE_STATUS_OK) return FALSE; return TRUE; } -bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0) +bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet * hillSet) { - void *var0 = AllocZeroed(0x1000); - bool32 result = TryWriteTrainerHill_r(arg0, var0); - Free(var0); + void *buffer = AllocZeroed(SECTOR_SIZE); + bool32 result = TryWriteTrainerHill_Internal(hillSet, buffer); + Free(buffer); return result; } -static bool32 TryReadTrainerHill_r(struct EReaderTrainerHillSet *dst, u8 *buffer) +static bool32 TryReadTrainerHill_Internal(struct EReaderTrainerHillSet * dest, u8 * buffer) { if (TryReadSpecialSaveSection(SECTOR_ID_TRAINER_HILL, buffer) != SAVE_STATUS_OK) return FALSE; - memcpy(dst, buffer, sizeof(struct EReaderTrainerHillSet)); - if (!TrainerHill_VerifyChecksum(dst)) + memcpy(dest, buffer, sizeof(struct EReaderTrainerHillSet)); + if (!ValidateTrainerHillChecksum(dest)) return FALSE; return TRUE; } -static bool32 TryReadTrainerHill(struct EReaderTrainerHillSet *arg0) +static bool32 TryReadTrainerHill(struct EReaderTrainerHillSet * hillSet) { - u8 *var0 = AllocZeroed(0x1000); - bool32 result = TryReadTrainerHill_r(arg0, var0); - Free(var0); + u8 *buffer = AllocZeroed(SECTOR_SIZE); + bool32 result = TryReadTrainerHill_Internal(hillSet, buffer); + Free(buffer); return result; } bool32 ReadTrainerHillAndValidate(void) { - struct EReaderTrainerHillSet *var0 = AllocZeroed(0x1000); - bool32 result = TryReadTrainerHill(var0); - Free(var0); + struct EReaderTrainerHillSet *hillSet = AllocZeroed(SECTOR_SIZE); + bool32 result = TryReadTrainerHill(hillSet); + Free(hillSet); return result; } -int EReader_Send(int arg0, u32 *arg1) +int EReader_Send(int size, const void * src) { int result; - u16 var0; - int var1; + int sendStatus; EReaderHelper_SaveRegsState(); while (1) { - sub_81D4170(); - if (gUnknown_030012E2 & 2) + GetKeyInput(); + if (sJoyNew & B_BUTTON) gShouldAdvanceLinkState = 2; - var1 = EReaderHandleTransfer(1, arg0, arg1, NULL); - gUnknown_030012E4 = var1; - if ((gUnknown_030012E4 & 0x13) == 0x10) + sendStatus = EReaderHandleTransfer(1, size, src, NULL); + sSendRecvStatus = sendStatus; + if ((sSendRecvStatus & 0x13) == 0x10) { result = 0; break; } - - if (gUnknown_030012E4 & 0x8) + else if (sSendRecvStatus & 0x8) { result = 1; break; } - - var0 = gUnknown_030012E4 & 0x4; - if (var0) + else if (sSendRecvStatus & 0x4) { result = 2; break; } - - gShouldAdvanceLinkState = var0; - VBlankIntrWait(); + else + { + gShouldAdvanceLinkState = 0; + VBlankIntrWait(); + } } - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + CpuFill32(0, &sSendRecvMgr, sizeof(sSendRecvMgr)); EReaderHelper_RestoreRegsState(); return result; } -int EReader_Recv(u32 *arg0) +int EReader_Recv(void * dest) { int result; - u16 var0; - int var1; + int recvStatus; EReaderHelper_SaveRegsState(); while (1) { - sub_81D4170(); - if (gUnknown_030012E2 & 2) + GetKeyInput(); + if (sJoyNew & B_BUTTON) gShouldAdvanceLinkState = 2; - var1 = EReaderHandleTransfer(0, 0, NULL, arg0); - gUnknown_030012E4 = var1; - if ((gUnknown_030012E4 & 0x13) == 0x10) + recvStatus = EReaderHandleTransfer(0, 0, NULL, dest); + sSendRecvStatus = recvStatus; + if ((sSendRecvStatus & 0x13) == 0x10) { result = 0; break; } - - if (gUnknown_030012E4 & 0x8) + else if (sSendRecvStatus & 0x8) { result = 1; break; } - - var0 = gUnknown_030012E4 & 0x4; - if (var0) + else if (sSendRecvStatus & 0x4) { result = 2; break; } - - gShouldAdvanceLinkState = var0; - VBlankIntrWait(); + else + { + gShouldAdvanceLinkState = 0; + VBlankIntrWait(); + } } - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + CpuFill32(0, &sSendRecvMgr, sizeof(sSendRecvMgr)); EReaderHelper_RestoreRegsState(); return result; } -static void sub_81D3C7C(void) +static void CloseSerial(void) { REG_IME = 0; REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); @@ -610,7 +640,7 @@ static void sub_81D3C7C(void) REG_IF = INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL; } -static void sub_81D3CBC(void) +static void OpenSerialMulti(void) { REG_IME = 0; REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); @@ -622,273 +652,271 @@ static void sub_81D3CBC(void) REG_IE |= INTR_FLAG_SERIAL; REG_IME = 1; - if (!gUnknown_030012C8.unk0[1]) - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + if (sSendRecvMgr.state == 0) + CpuFill32(0, &sSendRecvMgr, sizeof(sSendRecvMgr)); } -static void sub_81D3D34(void) +static void OpenSerial32(void) { REG_RCNT = 0; REG_SIOCNT = SIO_32BIT_MODE | SIO_INTR_ENABLE; REG_SIOCNT |= SIO_MULTI_SD; gShouldAdvanceLinkState = 0; - gUnknown_030012E6 = 0; - gUnknown_030012E8 = 0; + sCounter1 = 0; + sCounter2 = 0; } -int EReaderHandleTransfer(u8 arg0, u32 arg1, u32 *arg2, u32 *arg3) +int EReaderHandleTransfer(u8 mode, size_t size, const void * data, void * recvBuffer) { - switch (gUnknown_030012C8.unk0[1]) + switch (sSendRecvMgr.state) { - case 0: - sub_81D3CBC(); - gUnknown_030012C8.unk0[2] = 1; - gUnknown_030012C8.unk0[1] = 1; + case EREADER_XFR_STATE_INIT: + OpenSerialMulti(); + sSendRecvMgr.xferState = EREADER_XFER_EXE; + sSendRecvMgr.state = EREADER_XFR_STATE_HANDSHAKE; break; - case 1: - if (sub_81D3EE8(arg0)) - sub_81D413C(); + case EREADER_XFR_STATE_HANDSHAKE: + if (DetermineSendRecvState(mode)) + EnableSio(); if (gShouldAdvanceLinkState == 2) { - gUnknown_030012C8.unk0[4] = 2; - gUnknown_030012C8.unk0[1] = 6; + sSendRecvMgr.cancellationReason = EREADER_CANCEL_KEY; + sSendRecvMgr.state = EREADER_XFR_STATE_DONE; } break; - case 2: - sub_81D3D34(); - sub_81D3F1C(arg1, arg2, arg3); - gUnknown_030012C8.unk0[1] = 3; + case EREADER_XFR_STATE_START: + OpenSerial32(); + SetUpTransferManager(size, data, recvBuffer); + sSendRecvMgr.state = EREADER_XFR_STATE_TRANSFER; // fall through - case 3: + case EREADER_XFR_STATE_TRANSFER: if (gShouldAdvanceLinkState == 2) { - gUnknown_030012C8.unk0[4] = 2; - gUnknown_030012C8.unk0[1] = 6; + sSendRecvMgr.cancellationReason = EREADER_CANCEL_KEY; + sSendRecvMgr.state = EREADER_XFR_STATE_DONE; } else { - gUnknown_030012E6++; - gUnknown_030012E8++; - if (!gUnknown_030012C8.unk0[0] && gUnknown_030012E8 > 60) + sCounter1++; + sCounter2++; + if (!sSendRecvMgr.isParent && sCounter2 > 60) { - gUnknown_030012C8.unk0[4] = 1; - gUnknown_030012C8.unk0[1] = 6; + sSendRecvMgr.cancellationReason = EREADER_CANCEL_TIMEOUT; + sSendRecvMgr.state = EREADER_XFR_STATE_DONE; } - if (gUnknown_030012C8.unk0[2] != 2) + if (sSendRecvMgr.xferState != EREADER_XFER_CHK) { - if (gUnknown_030012C8.unk0[0] && gUnknown_030012E6 > 2) + if (sSendRecvMgr.isParent && sCounter1 > 2) { - sub_81D413C(); - gUnknown_030012C8.unk0[2] = 2; + EnableSio(); + sSendRecvMgr.xferState = EREADER_XFER_CHK; } else { - sub_81D413C(); - gUnknown_030012C8.unk0[2] = 2; + EnableSio(); + sSendRecvMgr.xferState = EREADER_XFER_CHK; } } } break; - case 4: - sub_81D3CBC(); - gUnknown_030012C8.unk0[1] = 5; + case EREADER_XFR_STATE_TRANSFER_DONE: + OpenSerialMulti(); + sSendRecvMgr.state = EREADER_XFR_STATE_CHECKSUM; break; - case 5: - if (gUnknown_030012C8.unk0[0] == 1 && gUnknown_030012E6 > 2) - sub_81D413C(); + case EREADER_XFR_STATE_CHECKSUM: + if (sSendRecvMgr.isParent == TRUE && sCounter1 > 2) + EnableSio(); - if (++gUnknown_030012E6 > 60) + if (++sCounter1 > 60) { - gUnknown_030012C8.unk0[4] = 1; - gUnknown_030012C8.unk0[1] = 6; + sSendRecvMgr.cancellationReason = EREADER_CANCEL_TIMEOUT; + sSendRecvMgr.state = EREADER_XFR_STATE_DONE; } break; - case 6: - if (gUnknown_030012C8.unk0[2]) + case EREADER_XFR_STATE_DONE: + if (sSendRecvMgr.xferState) { - sub_81D3C7C(); - gUnknown_030012C8.unk0[2] = 0; + CloseSerial(); + sSendRecvMgr.xferState = 0; } break; } - return gUnknown_030012C8.unk0[2] | (gUnknown_030012C8.unk0[4] << 2) | (gUnknown_030012C8.unk0[3] << 4); + return (sSendRecvMgr.xferState << EREADER_XFER_SHIFT) + | (sSendRecvMgr.cancellationReason << EREADER_CANCEL_SHIFT) + | (sSendRecvMgr.checksumResult << EREADER_CHECKSUM_SHIFT); } -static u16 sub_81D3EE8(u8 arg0) +static u16 DetermineSendRecvState(u8 mode) { - u16 terminal = (*(vu32 *)REG_ADDR_SIOCNT) & (SIO_MULTI_SI | SIO_MULTI_SD); - if (terminal == SIO_MULTI_SD && arg0) - { - gUnknown_030012C8.unk0[0] = 1; - return 1; - } + bool16 resp; + if ((*(vu32 *)REG_ADDR_SIOCNT & (SIO_MULTI_SI | SIO_MULTI_SD)) == SIO_MULTI_SD && mode) + resp = sSendRecvMgr.isParent = TRUE; else - { - gUnknown_030012C8.unk0[0] = 0; - return 0; - } + resp = sSendRecvMgr.isParent = FALSE; + return resp; } -static void sub_81D3F1C(u32 arg0, u32 *arg1, u32 *arg2) +static void SetUpTransferManager(size_t size, const void * data, void * recvBuffer) { - if (gUnknown_030012C8.unk0[0]) + if (sSendRecvMgr.isParent) { REG_SIOCNT |= SIO_38400_BPS; - gUnknown_030012C8.unk8 = arg1; - REG_SIODATA32 = arg0; - gUnknown_030012C8.unk10 = arg0 / 4 + 1; - sub_81D3F68(); + sSendRecvMgr.data = (void *)data; + REG_SIODATA32 = size; + sSendRecvMgr.size = size / 4 + 1; + StartTm3(); } else { REG_SIOCNT = REG_SIOCNT; - gUnknown_030012C8.unk8 = arg2; + sSendRecvMgr.data = recvBuffer; } } -static void sub_81D3F68(void) +static void StartTm3(void) { - REG_TM3CNT_L = 0xFDA7; + REG_TM3CNT_L = -601; REG_TM3CNT_H = TIMER_INTR_ENABLE; REG_IME = 0; REG_IE |= INTR_FLAG_TIMER3; REG_IME = 1; } -void sub_81D3F9C(void) +void EReaderHelper_Timer3Callback(void) { - sub_81D414C(); - sub_81D413C(); + DisableTm3(); + EnableSio(); } -void sub_81D3FAC(void) +void EReaderHelper_SerialCallback(void) { - u16 i, playerCount, k; - u32 value; - u16 var0; - u16 recvBuffer[4]; + u16 i, cnt1, cnt2; + u32 recv32; + u16 recv[4]; - switch (gUnknown_030012C8.unk0[1]) + switch (sSendRecvMgr.state) { - case 1: + case EREADER_XFR_STATE_HANDSHAKE: REG_SIOMLT_SEND = 0xCCD0; // Handshake id - *(u64 *)recvBuffer = REG_SIOMLT_RECV; - for (i = 0, playerCount = 0, k = 0; i < 4; i++) + *(u64 *)recv = REG_SIOMLT_RECV; + for (i = 0, cnt1 = 0, cnt2 = 0; i < 4; i++) { - if (recvBuffer[i] == 0xCCD0) - playerCount++; - else if (recvBuffer[i] != 0xFFFF) - k++; + if (recv[i] == 0xCCD0) + cnt1++; + else if (recv[i] != 0xFFFF) + cnt2++; } - if (playerCount == 2 && k == 0) - gUnknown_030012C8.unk0[1] = 2; + if (cnt1 == 2 && cnt2 == 0) + sSendRecvMgr.state = 2; break; - case 3: - value = REG_SIODATA32; - if (!gUnknown_030012C8.unkC && !gUnknown_030012C8.unk0[0]) - gUnknown_030012C8.unk10 = value / 4 + 1; + case EREADER_XFR_STATE_TRANSFER: + recv32 = REG_SIODATA32; + // The first value sent by the EReader is the payload size + if (!sSendRecvMgr.cursor && !sSendRecvMgr.isParent) + sSendRecvMgr.size = recv32 / 4 + 1; - if (gUnknown_030012C8.unk0[0] == 1) + if (sSendRecvMgr.isParent == TRUE) { - if (gUnknown_030012C8.unkC < gUnknown_030012C8.unk10) + // Send mode + if (sSendRecvMgr.cursor < sSendRecvMgr.size) { - REG_SIODATA32 = gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; - gUnknown_030012C8.unk14 += gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + REG_SIODATA32 = sSendRecvMgr.data[sSendRecvMgr.cursor]; + sSendRecvMgr.checksum += sSendRecvMgr.data[sSendRecvMgr.cursor]; } else { - REG_SIODATA32 = gUnknown_030012C8.unk14; + REG_SIODATA32 = sSendRecvMgr.checksum; } } else { - if (gUnknown_030012C8.unkC > 0 && gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 1) + // Receive mode + if (sSendRecvMgr.cursor > 0 && sSendRecvMgr.cursor < sSendRecvMgr.size + 1) { - gUnknown_030012C8.unk8[gUnknown_030012C8.unkC - 1] = value; - gUnknown_030012C8.unk14 += value; + sSendRecvMgr.data[sSendRecvMgr.cursor - 1] = recv32; + sSendRecvMgr.checksum += recv32; } - else if (gUnknown_030012C8.unkC) + else if (sSendRecvMgr.cursor) { - if (gUnknown_030012C8.unk14 == value) - gUnknown_030012C8.unk0[3] = 1; + if (sSendRecvMgr.checksum == recv32) + sSendRecvMgr.checksumResult = EREADER_CHECKSUM_OK; else - gUnknown_030012C8.unk0[3] = 2; + sSendRecvMgr.checksumResult = EREADER_CHECKSUM_ERR; } - gUnknown_030012E8 = 0; + sCounter2 = 0; } - if (++gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 2) + if (++sSendRecvMgr.cursor < sSendRecvMgr.size + 2) { - if (gUnknown_030012C8.unk0[0]) + if (sSendRecvMgr.isParent) REG_TM3CNT_H |= TIMER_ENABLE; else - sub_81D413C(); + EnableSio(); } else { - gUnknown_030012C8.unk0[1] = 4; - gUnknown_030012E6 = 0; + sSendRecvMgr.state = EREADER_XFR_STATE_TRANSFER_DONE; + sCounter1 = 0; } break; - case 5: - if (!gUnknown_030012C8.unk0[0]) - REG_SIOMLT_SEND = gUnknown_030012C8.unk0[3]; + case EREADER_XFR_STATE_CHECKSUM: + if (!sSendRecvMgr.isParent) + REG_SIOMLT_SEND = sSendRecvMgr.checksumResult; - *(u64 *)recvBuffer = REG_SIOMLT_RECV; - var0 = recvBuffer[1] - 1; - if (var0 < 2) + *(vu64 *)recv = REG_SIOMLT_RECV; + if (recv[1] == EREADER_CHECKSUM_OK || recv[1] == EREADER_CHECKSUM_ERR) { - if (gUnknown_030012C8.unk0[0] == 1) - gUnknown_030012C8.unk0[3] = recvBuffer[1]; + if (sSendRecvMgr.isParent == TRUE) + sSendRecvMgr.checksumResult = recv[1]; // EReader has (in)validated the payload - gUnknown_030012C8.unk0[1] = 6; + sSendRecvMgr.state = EREADER_XFR_STATE_DONE; } break; } } -static void sub_81D413C(void) +static void EnableSio(void) { REG_SIOCNT |= SIO_ENABLE; } -static void sub_81D414C(void) +static void DisableTm3(void) { REG_TM3CNT_H &= ~TIMER_ENABLE; REG_TM3CNT_L = 0xFDA7; } -static void sub_81D4170(void) +static void GetKeyInput(void) { - int keysMask = REG_KEYINPUT ^ KEYS_MASK; - gUnknown_030012E2 = keysMask & ~gUnknown_030012E0; - gUnknown_030012E0 = keysMask; + int rawKeys = REG_KEYINPUT ^ KEYS_MASK; + sJoyNew = rawKeys & ~sJoyNewOrRepeated; + sJoyNewOrRepeated = rawKeys; } void EReaderHelper_SaveRegsState(void) { - gUnknown_030012EC = REG_IME; - gUnknown_030012EE = REG_IE; - gUnknown_030012F0 = REG_TM3CNT_H; - gUnknown_030012F2 = REG_SIOCNT; - gUnknown_030012F4 = REG_RCNT; + sSavedIme = REG_IME; + sSavedIe = REG_IE; + sSavedTm3Cnt = REG_TM3CNT_H; + sSavedSioCnt = REG_SIOCNT; + sSavedRCnt = REG_RCNT; } void EReaderHelper_RestoreRegsState(void) { - REG_IME = gUnknown_030012EC; - REG_IE = gUnknown_030012EE; - REG_TM3CNT_H = gUnknown_030012F0; - REG_SIOCNT = gUnknown_030012F2; - REG_RCNT = gUnknown_030012F4; + REG_IME = sSavedIme; + REG_IE = sSavedIe; + REG_TM3CNT_H = sSavedTm3Cnt; + REG_SIOCNT = sSavedSioCnt; + REG_RCNT = sSavedRCnt; } -void sub_81D4238(void) +void EReaderHelper_ClearSendRecvMgr(void) { - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + CpuFill32(0, &sSendRecvMgr, sizeof(sSendRecvMgr)); } diff --git a/src/ereader_screen.c b/src/ereader_screen.c index 3f2cf3217f..438c4bec9d 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -47,10 +47,10 @@ static void sub_81D4D50(struct Unk03006370 *arg0, int arg1, u32 *arg2) { volatile u16 backupIME = REG_IME; REG_IME = 0; - gIntrTable[1] = sub_81D3FAC; - gIntrTable[2] = sub_81D3F9C; + gIntrTable[1] = EReaderHelper_SerialCallback; + gIntrTable[2] = EReaderHelper_Timer3Callback; EReaderHelper_SaveRegsState(); - sub_81D4238(); + EReaderHelper_ClearSendRecvMgr(); REG_IE |= INTR_FLAG_VCOUNT; REG_IME = backupIME; arg0->unk0 = 0; @@ -62,7 +62,7 @@ static void sub_81D4DB8(struct Unk03006370 *arg0) { volatile u16 backupIME = REG_IME; REG_IME = 0; - sub_81D4238(); + EReaderHelper_ClearSendRecvMgr(); EReaderHelper_RestoreRegsState(); RestoreSerialTimer3IntrHandlers(); REG_IME = backupIME; @@ -211,7 +211,6 @@ static u32 sub_81D4EE4(u8 *arg0, u16 *arg1) void task_add_00_ereader(void) { - int value; struct Unk81D5014 *data; u8 taskId = CreateTask(sub_81D5084, 0); data = (struct Unk81D5014 *)gTasks[taskId].data; @@ -402,7 +401,7 @@ static void sub_81D5084(u8 taskId) } break; case 15: - data->unkE = EReader_IsReceivedDataValid((struct EReaderTrainerHillSet *)gDecompressionBuffer); + data->unkE = ValidateTrainerHillData((struct EReaderTrainerHillSet *)gDecompressionBuffer); SetCloseLinkCallbackAndType(data->unkE); data->unk8 = 16; break; diff --git a/src/event_object_lock.c b/src/event_object_lock.c index 67652a99b3..179c728137 100644 --- a/src/event_object_lock.c +++ b/src/event_object_lock.c @@ -16,18 +16,19 @@ bool8 IsPlayerStandingStill(void) return TRUE; } -static void sub_80983A4(u8 taskId) +// Freeze player once their movement is finished +static void Task_FreezePlayer(u8 taskId) { if (IsPlayerStandingStill()) { - sub_808B864(); + PlayerFreeze(); DestroyTask(taskId); } } -bool8 sub_80983C4(void) +bool8 IsFreezePlayerFinished(void) { - if (FuncIsActiveTask(sub_80983A4)) + if (FuncIsActiveTask(Task_FreezePlayer)) { return FALSE; } @@ -39,33 +40,38 @@ bool8 sub_80983C4(void) } -void ScriptFreezeObjectEvents(void) +void FreezeObjects_WaitForPlayer(void) { FreezeObjectEvents(); - CreateTask(sub_80983A4, 80); + CreateTask(Task_FreezePlayer, 80); } -static void sub_8098400(u8 taskId) +#define tPlayerFrozen data[0] +#define tObjectFrozen data[1] +#define tObjectId data[2] + +// Freeze selected object and player once their movement is finished +static void Task_FreezeSelectedObjectAndPlayer(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (!task->data[0] && IsPlayerStandingStill() == TRUE) + if (!task->tPlayerFrozen && IsPlayerStandingStill() == TRUE) { - sub_808B864(); - task->data[0] = 1; + PlayerFreeze(); + task->tPlayerFrozen = TRUE; } - if (!task->data[1] && !gObjectEvents[gSelectedObjectEvent].singleMovementActive) + if (!task->tObjectFrozen && !gObjectEvents[gSelectedObjectEvent].singleMovementActive) { FreezeObjectEvent(&gObjectEvents[gSelectedObjectEvent]); - task->data[1] = 1; + task->tObjectFrozen = TRUE; } - if (task->data[0] && task->data[1]) + if (task->tPlayerFrozen && task->tObjectFrozen) DestroyTask(taskId); } -bool8 sub_809847C(void) +bool8 IsFreezeSelectedObjectAndPlayerFinished(void) { - if (FuncIsActiveTask(sub_8098400)) + if (FuncIsActiveTask(Task_FreezeSelectedObjectAndPlayer)) { return FALSE; } @@ -76,15 +82,17 @@ bool8 sub_809847C(void) } } -void LockSelectedObjectEvent(void) +// Freeze all objects immediately except the selected object and the player. +// The selected object and player are frozen once their movement is finished. +void FreezeObjects_WaitForPlayerAndSelected(void) { u8 taskId; FreezeObjectEventsExceptOne(gSelectedObjectEvent); - taskId = CreateTask(sub_8098400, 80); + taskId = CreateTask(Task_FreezeSelectedObjectAndPlayer, 80); if (!gObjectEvents[gSelectedObjectEvent].singleMovementActive) { FreezeObjectEvent(&gObjectEvents[gSelectedObjectEvent]); - gTasks[taskId].data[1] = 1; + gTasks[taskId].tObjectFrozen = TRUE; } } @@ -118,64 +126,73 @@ void Script_ClearHeldMovement(void) ObjectEventClearHeldMovementIfActive(&gObjectEvents[gSelectedObjectEvent]); } -static void sub_80985BC(u8 taskId) +// Freeze designated object and player once their movement is finished +static void Task_FreezeObjectAndPlayer(u8 taskId) { struct Task *task = &gTasks[taskId]; - u8 objectEventId = task->data[2]; + u8 objectEventId = task->tObjectId; - if (!task->data[0] && IsPlayerStandingStill() == TRUE) + if (!task->tPlayerFrozen && IsPlayerStandingStill() == TRUE) { - sub_808B864(); - task->data[0] = 1; + PlayerFreeze(); + task->tPlayerFrozen = TRUE; } - if (!task->data[1] && !gObjectEvents[objectEventId].singleMovementActive) + if (!task->tObjectFrozen && !gObjectEvents[objectEventId].singleMovementActive) { FreezeObjectEvent(&gObjectEvents[objectEventId]); - task->data[1] = 1; + task->tObjectFrozen = TRUE; } - if (task->data[0] && task->data[1]) + if (task->tPlayerFrozen && task->tObjectFrozen) DestroyTask(taskId); } -void sub_8098630(void) +// Freeze all objects immediately except the player and the approaching trainers. +// The approaching trainers and player are frozen once their movement is finished +void FreezeForApproachingTrainers(void) { u8 trainerObjectId1, trainerObjectId2, taskId; trainerObjectId1 = GetChosenApproachingTrainerObjectEventId(0); - if(gNoOfApproachingTrainers == 2) + + if (gNoOfApproachingTrainers == 2) { + // Get second trainer, freeze all other objects trainerObjectId2 = GetChosenApproachingTrainerObjectEventId(1); - sub_8098074(trainerObjectId1, trainerObjectId2); - taskId = CreateTask(sub_80985BC, 80); - gTasks[taskId].data[2] = trainerObjectId1; - if(!gObjectEvents[trainerObjectId1].singleMovementActive) + FreezeObjectEventsExceptTwo(trainerObjectId1, trainerObjectId2); + + // Start task to freeze trainer 1 (and player) after movement + taskId = CreateTask(Task_FreezeObjectAndPlayer, 80); + gTasks[taskId].tObjectId = trainerObjectId1; + if (!gObjectEvents[trainerObjectId1].singleMovementActive) { FreezeObjectEvent(&gObjectEvents[trainerObjectId1]); - gTasks[taskId].data[1] = 1; + gTasks[taskId].tObjectFrozen = TRUE; } - taskId = CreateTask(sub_80985BC, 81); - gTasks[taskId].data[2] = trainerObjectId2; - if(!gObjectEvents[trainerObjectId2].singleMovementActive) + + // Start task to freeze trainer 2 after movement + taskId = CreateTask(Task_FreezeObjectAndPlayer, 81); + gTasks[taskId].tObjectId = trainerObjectId2; + if (!gObjectEvents[trainerObjectId2].singleMovementActive) { FreezeObjectEvent(&gObjectEvents[trainerObjectId2]); - gTasks[taskId].data[1] = 1; + gTasks[taskId].tObjectFrozen = TRUE; } } else { FreezeObjectEventsExceptOne(trainerObjectId1); - taskId = CreateTask(sub_80985BC, 80); - gTasks[taskId].data[2] = trainerObjectId1; - if(!gObjectEvents[trainerObjectId1].singleMovementActive) + taskId = CreateTask(Task_FreezeObjectAndPlayer, 80); + gTasks[taskId].tObjectId = trainerObjectId1; + if (!gObjectEvents[trainerObjectId1].singleMovementActive) { FreezeObjectEvent(&gObjectEvents[trainerObjectId1]); - gTasks[taskId].data[1] = 1; + gTasks[taskId].tObjectFrozen = TRUE; } } } -bool8 sub_8098734(void) +bool8 IsFreezeObjectAndPlayerFinished(void) { - if (FuncIsActiveTask(sub_80985BC)) + if (FuncIsActiveTask(Task_FreezeObjectAndPlayer)) { return FALSE; } @@ -185,3 +202,7 @@ bool8 sub_8098734(void) return TRUE; } } + +#undef tPlayerFrozen +#undef tObjectFrozen +#undef tObjectId diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 12ef4acdc0..36f7f0a3ef 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -32,31 +32,39 @@ // this file was known as evobjmv.c in Game Freak's original source +// Sprite data used throughout +#define sObjEventId data[0] +#define sTypeFuncId data[1] // Index into corresponding gMovementTypeFuncs_* table +#define sActionFuncId data[2] // Index into corresponding gMovementActionFuncs_* table +#define sDirection data[3] +#define sSpeed data[4] + + #define movement_type_def(setup, table) \ static u8 setup##_callback(struct ObjectEvent *, struct Sprite *);\ void setup(struct Sprite *sprite)\ {\ - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, setup##_callback);\ + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, setup##_callback);\ }\ static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)\ {\ - return table[sprite->data[1]](objectEvent, sprite);\ + return table[sprite->sTypeFuncId](objectEvent, sprite);\ } #define movement_type_empty_callback(setup) \ static u8 setup##_callback(struct ObjectEvent *, struct Sprite *);\ void setup(struct Sprite *sprite)\ {\ - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, setup##_callback);\ + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, setup##_callback);\ }\ static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)\ {\ return 0;\ } -EWRAM_DATA u8 sCurrentReflectionType = 0; -EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; -EWRAM_DATA struct LockedAnimObjectEvents *gLockedAnimObjectEvents = {0}; +static EWRAM_DATA u8 sCurrentReflectionType = 0; +static EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; +static EWRAM_DATA struct LockedAnimObjectEvents *sLockedAnimObjectEvents = {0}; static void MoveCoordsInDirection(u32, s16 *, s16 *, s16, s16); static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *, struct Sprite *); @@ -70,8 +78,8 @@ static void UpdateObjectEventSpriteAnimPause(struct ObjectEvent *, struct Sprite static bool8 IsCoordOutsideObjectEventMovementRange(struct ObjectEvent *, s16, s16); static bool8 IsMetatileDirectionallyImpassable(struct ObjectEvent *, s16, s16, u8); static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *, s16, s16); -static void sub_8096530(struct ObjectEvent *, struct Sprite *); -static void UpdateObjEventSpriteVisibility(struct ObjectEvent *, struct Sprite *); +static void UpdateObjectEventOffscreen(struct ObjectEvent *, struct Sprite *); +static void UpdateObjectEventSpriteVisibility(struct ObjectEvent *, struct Sprite *); static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent*); static void GetGroundEffectFlags_Reflection(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_TallGrassOnSpawn(struct ObjectEvent*, u32*); @@ -87,7 +95,7 @@ static void GetGroundEffectFlags_Puddle(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_Ripple(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_Seaweed(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent*, u32*); -static u8 ObjectEventCheckForReflectiveSurface(struct ObjectEvent*); +static u8 ObjectEventGetNearbyReflectionType(struct ObjectEvent*); static u8 GetReflectionTypeByMetatileBehavior(u32); static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z); static void ObjectEventUpdateSubpriority(struct ObjectEvent*, struct Sprite*); @@ -101,7 +109,7 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent*, struct Sprite*); static void UpdateObjectEventSpritePosition(struct Sprite*); static void ApplyLevitateMovement(u8); static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *); -static bool8 MovementType_Hidden_Callback(struct ObjectEvent *, struct Sprite *); +static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *); static void CreateReflectionEffectSprites(void); static u8 GetObjectEventIdByLocalId(u8); static u8 GetObjectEventIdByLocalIdAndMapInternal(u8, u8, u8); @@ -115,31 +123,49 @@ static void GetObjectEventMovingCameraOffset(s16 *, s16 *); static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8, u8, u8); static void LoadObjectEventPalette(u16); static void RemoveObjectEventIfOutsideView(struct ObjectEvent *); -static void sub_808E1B8(u8, s16, s16); +static void SpawnObjectEventOnReturnToField(u8, s16, s16); static void SetPlayerAvatarObjectEventIdAndObjectId(u8, u8); -static void sub_808E38C(struct ObjectEvent *); -static u8 sub_808E8F4(const struct SpritePalette *); +static void ResetObjectEventFldEffData(struct ObjectEvent *); +static u8 LoadSpritePaletteIfTagExists(const struct SpritePalette *); static u8 FindObjectEventPaletteIndexByTag(u16); -static void sub_808EAB0(u16, u8); +static void _PatchObjectPalette(u16, u8); static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *, u8); -static void ObjectCB_CameraObject(struct Sprite *); +static void SpriteCB_CameraObject(struct Sprite *); static void CameraObject_0(struct Sprite *); static void CameraObject_1(struct Sprite *); static void CameraObject_2(struct Sprite *); static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, struct ObjectEventTemplate *templates, u8 count); static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *); static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); -static void oamt_npc_ministep_reset(struct Sprite *, u8, u8); -static void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *); +static void SetSpriteDataForNormalStep(struct Sprite *, u8, u8); static void InitSpriteForFigure8Anim(struct Sprite *sprite); static bool8 AnimateSpriteInFigure8(struct Sprite *sprite); static void UpdateObjectEventSprite(struct Sprite *); +static void DoShadowFieldEffect(struct ObjectEvent *); +static void SetJumpSpriteData(struct Sprite *, u8, u8, u8); +static void SetWalkSlowSpriteData(struct Sprite *sprite, u8 direction); +static bool8 UpdateWalkSlowAnim(struct Sprite *sprite); +static u8 DoJumpSpriteMovement(struct Sprite *sprite); +static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite); +static void CreateLevitateMovementTask(struct ObjectEvent *); +static void DestroyLevitateMovementTask(u8); +static bool8 NpcTakeStep(struct Sprite *sprite); + +static const struct SpriteFrameImage sPicTable_PechaBerryTree[]; const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; -const struct SpriteTemplate gCameraSpriteTemplate = {0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, ObjectCB_CameraObject}; +static const struct SpriteTemplate sCameraSpriteTemplate = { + .tileTag = 0, + .paletteTag = 0xFFFF, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_CameraObject +}; -void (*const gCameraObjectFuncs[])(struct Sprite *) = { +static void (*const sCameraObjectFuncs[])(struct Sprite *) = { CameraObject_0, CameraObject_1, CameraObject_2, @@ -213,7 +239,7 @@ static void (*const sMovementTypeCallbacks[])(struct Sprite *) = [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass, [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, - [MOVEMENT_TYPE_HIDDEN] = MovementType_Hidden, + [MOVEMENT_TYPE_BURIED] = MovementType_Buried, [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace, [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace, @@ -297,7 +323,7 @@ const u8 gRangedMovementTypes[] = { [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = 1, [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = 1, [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = 1, - [MOVEMENT_TYPE_HIDDEN] = 0, + [MOVEMENT_TYPE_BURIED] = 0, [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = 0, [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = 0, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = 0, @@ -381,7 +407,7 @@ const u8 gInitialMovementTypeFacingDirections[] = { [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = DIR_SOUTH, [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = DIR_WEST, [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = DIR_EAST, - [MOVEMENT_TYPE_HIDDEN] = DIR_SOUTH, + [MOVEMENT_TYPE_BURIED] = DIR_SOUTH, [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = DIR_SOUTH, [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST, @@ -670,13 +696,13 @@ static const u16 *const sObjectPaletteTagSets[] = { #include "data/object_events/berry_tree_graphics_tables.h" #include "data/field_effects/field_effect_objects.h" -const s16 gMovementDelaysMedium[] = {32, 64, 96, 128}; -const s16 gMovementDelaysLong[] = {32, 64, 128, 192}; -const s16 gMovementDelaysShort[] = {32, 48, 64, 80}; +static const s16 sMovementDelaysMedium[] = {32, 64, 96, 128}; +static const s16 sMovementDelaysLong[] = {32, 64, 128, 192}; // Unused +static const s16 sMovementDelaysShort[] = {32, 48, 64, 80}; #include "data/object_events/movement_type_func_tables.h" -const u8 gFaceDirectionAnimNums[] = { +static const u8 sFaceDirectionAnimNums[] = { [DIR_NONE] = 0, [DIR_SOUTH] = 0, [DIR_NORTH] = 1, @@ -687,7 +713,7 @@ const u8 gFaceDirectionAnimNums[] = { [DIR_NORTHWEST] = 1, [DIR_NORTHEAST] = 1, }; -const u8 gMoveDirectionAnimNums[] = { +static const u8 sMoveDirectionAnimNums[] = { [DIR_NONE] = 4, [DIR_SOUTH] = 4, [DIR_NORTH] = 5, @@ -698,7 +724,7 @@ const u8 gMoveDirectionAnimNums[] = { [DIR_NORTHWEST] = 5, [DIR_NORTHEAST] = 5, }; -const u8 gMoveDirectionFastAnimNums[] = { +static const u8 sMoveDirectionFastAnimNums[] = { [DIR_NONE] = 8, [DIR_SOUTH] = 8, [DIR_NORTH] = 9, @@ -709,7 +735,7 @@ const u8 gMoveDirectionFastAnimNums[] = { [DIR_NORTHWEST] = 9, [DIR_NORTHEAST] = 9, }; -const u8 gMoveDirectionFasterAnimNums[] = { +static const u8 sMoveDirectionFasterAnimNums[] = { [DIR_NONE] = 12, [DIR_SOUTH] = 12, [DIR_NORTH] = 13, @@ -720,7 +746,7 @@ const u8 gMoveDirectionFasterAnimNums[] = { [DIR_NORTHWEST] = 13, [DIR_NORTHEAST] = 13, }; -const u8 gMoveDirectionFastestAnimNums[] = { +static const u8 sMoveDirectionFastestAnimNums[] = { [DIR_NONE] = 16, [DIR_SOUTH] = 16, [DIR_NORTH] = 17, @@ -731,7 +757,7 @@ const u8 gMoveDirectionFastestAnimNums[] = { [DIR_NORTHWEST] = 17, [DIR_NORTHEAST] = 17, }; -const u8 gJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon +static const u8 sJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon [DIR_NONE] = 20, [DIR_SOUTH] = 20, [DIR_NORTH] = 21, @@ -742,7 +768,7 @@ const u8 gJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon [DIR_NORTHWEST] = 21, [DIR_NORTHEAST] = 21, }; -const u8 gAcroWheelieDirectionAnimNums[] = { +static const u8 sAcroWheelieDirectionAnimNums[] = { [DIR_NONE] = 20, [DIR_SOUTH] = 20, [DIR_NORTH] = 21, @@ -753,7 +779,7 @@ const u8 gAcroWheelieDirectionAnimNums[] = { [DIR_NORTHWEST] = 21, [DIR_NORTHEAST] = 21, }; -const u8 gUnrefAnimNums_08375633[] = { +static const u8 sAcroUnusedDirectionAnimNums[] = { [DIR_NONE] = 24, [DIR_SOUTH] = 24, [DIR_NORTH] = 25, @@ -764,7 +790,7 @@ const u8 gUnrefAnimNums_08375633[] = { [DIR_NORTHWEST] = 25, [DIR_NORTHEAST] = 25, }; -const u8 gAcroEndWheelieDirectionAnimNums[] = { +static const u8 sAcroEndWheelieDirectionAnimNums[] = { [DIR_NONE] = 28, [DIR_SOUTH] = 28, [DIR_NORTH] = 29, @@ -775,7 +801,7 @@ const u8 gAcroEndWheelieDirectionAnimNums[] = { [DIR_NORTHWEST] = 29, [DIR_NORTHEAST] = 29, }; -const u8 gAcroUnusedActionDirectionAnimNums[] = { +static const u8 sAcroUnusedActionDirectionAnimNums[] = { [DIR_NONE] = 32, [DIR_SOUTH] = 32, [DIR_NORTH] = 33, @@ -786,7 +812,7 @@ const u8 gAcroUnusedActionDirectionAnimNums[] = { [DIR_NORTHWEST] = 33, [DIR_NORTHEAST] = 33, }; -const u8 gAcroWheeliePedalDirectionAnimNums[] = { +static const u8 sAcroWheeliePedalDirectionAnimNums[] = { [DIR_NONE] = 36, [DIR_SOUTH] = 36, [DIR_NORTH] = 37, @@ -797,7 +823,7 @@ const u8 gAcroWheeliePedalDirectionAnimNums[] = { [DIR_NORTHWEST] = 37, [DIR_NORTHEAST] = 37, }; -const u8 gFishingDirectionAnimNums[] = { +static const u8 sFishingDirectionAnimNums[] = { [DIR_NONE] = 0, [DIR_SOUTH] = 0, [DIR_NORTH] = 1, @@ -808,7 +834,7 @@ const u8 gFishingDirectionAnimNums[] = { [DIR_NORTHWEST] = 1, [DIR_NORTHEAST] = 1, }; -const u8 gFishingNoCatchDirectionAnimNums[] = { +static const u8 sFishingNoCatchDirectionAnimNums[] = { [DIR_NONE] = 4, [DIR_SOUTH] = 4, [DIR_NORTH] = 5, @@ -819,7 +845,7 @@ const u8 gFishingNoCatchDirectionAnimNums[] = { [DIR_NORTHWEST] = 5, [DIR_NORTHEAST] = 5, }; -const u8 gFishingBiteDirectionAnimNums[] = { +static const u8 sFishingBiteDirectionAnimNums[] = { [DIR_NONE] = 8, [DIR_SOUTH] = 8, [DIR_NORTH] = 9, @@ -830,7 +856,7 @@ const u8 gFishingBiteDirectionAnimNums[] = { [DIR_NORTHWEST] = 9, [DIR_NORTHEAST] = 9, }; -const u8 gRunningDirectionAnimNums[] = { +static const u8 sRunningDirectionAnimNums[] = { [DIR_NONE] = 20, [DIR_SOUTH] = 20, [DIR_NORTH] = 21, @@ -1070,7 +1096,7 @@ const u8 gAcroEndWheelieMoveDirectionMovementActions[] = { MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT, }; -const u8 gOppositeDirections[] = { +static const u8 sOppositeDirections[] = { DIR_NORTH, DIR_SOUTH, DIR_EAST, @@ -1374,7 +1400,7 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl else if (paletteSlot >= 16) { paletteSlot -= 16; - sub_808EAB0(graphicsInfo->paletteTag, paletteSlot); + _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot); } if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE) @@ -1389,14 +1415,14 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl } sprite = &gSprites[spriteId]; - sub_8092FF0(objectEvent->currentCoords.x + cameraX, objectEvent->currentCoords.y + cameraY, &sprite->pos1.x, &sprite->pos1.y); + GetMapCoordsFromSpritePos(objectEvent->currentCoords.x + cameraX, objectEvent->currentCoords.y + cameraY, &sprite->x, &sprite->y); sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); - sprite->pos1.x += 8; - sprite->pos1.y += 16 + sprite->centerToCornerVecY; + sprite->x += 8; + sprite->y += 16 + sprite->centerToCornerVecY; sprite->oam.paletteNum = paletteSlot; sprite->coordOffsetEnabled = TRUE; - sprite->data[0] = objectEventId; + sprite->sObjEventId = objectEventId; objectEvent->spriteId = spriteId; objectEvent->inanimate = graphicsInfo->inanimate; if (!objectEvent->inanimate) @@ -1523,7 +1549,7 @@ u8 AddPseudoObjectEvent(u16 graphicsId, void (*callback)(struct Sprite *), s16 x // Used to create sprite object events instead of a full object event // Used when resources are limiting, e.g. for the audience in contests or group members in Union Room -u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) +u8 CreateObjectSprite(u8 graphicsId, u8 objectEventId, s16 x, s16 y, u8 z, u8 direction) { u8 spriteId; struct Sprite *sprite; @@ -1543,14 +1569,14 @@ u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) sprite = &gSprites[spriteId]; sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); - sprite->pos1.y += sprite->centerToCornerVecY; + sprite->y += sprite->centerToCornerVecY; sprite->oam.paletteNum = graphicsInfo->paletteSlot; if (sprite->oam.paletteNum >= 16) { sprite->oam.paletteNum -= 16; } sprite->coordOffsetEnabled = TRUE; - sprite->data[0] = a1; + sprite->sObjEventId = objectEventId; sprite->data[1] = z; if (graphicsInfo->paletteSlot == 10) { @@ -1558,7 +1584,7 @@ u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) } else if (graphicsInfo->paletteSlot >= 16) { - sub_808EAB0(graphicsInfo->paletteTag, graphicsInfo->paletteSlot | 0xf0); + _PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot | 0xf0); } if (subspriteTables != NULL) { @@ -1585,17 +1611,11 @@ void TrySpawnObjectEvents(s16 cameraX, s16 cameraY) s16 bottom = gSaveBlock1Ptr->pos.y + 16; if (InBattlePyramid()) - { objectCount = GetNumBattlePyramidObjectEvents(); - } else if (InTrainerHill()) - { objectCount = 2; - } else - { objectCount = gMapHeader.events->objectEventCount; - } for (i = 0; i < objectCount; i++) { @@ -1648,7 +1668,7 @@ static void RemoveObjectEventIfOutsideView(struct ObjectEvent *objectEvent) RemoveObjectEvent(objectEvent); } -void sub_808E16C(s16 x, s16 y) +void SpawnObjectEventsOnReturnToField(s16 x, s16 y) { u8 i; @@ -1656,16 +1676,14 @@ void sub_808E16C(s16 x, s16 y) for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { if (gObjectEvents[i].active) - { - sub_808E1B8(i, x, y); - } + SpawnObjectEventOnReturnToField(i, x, y); } CreateReflectionEffectSprites(); } -static void sub_808E1B8(u8 objectEventId, s16 x, s16 y) +static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y) { - u8 spriteId; + u8 i; u8 paletteSlot; struct Sprite *sprite; struct ObjectEvent *objectEvent; @@ -1674,15 +1692,11 @@ static void sub_808E1B8(u8 objectEventId, s16 x, s16 y) const struct SubspriteTable *subspriteTables; const struct ObjectEventGraphicsInfo *graphicsInfo; -#define i spriteId for (i = 0; i < ARRAY_COUNT(gLinkPlayerObjectEvents); i++) { if (gLinkPlayerObjectEvents[i].active && objectEventId == gLinkPlayerObjectEvents[i].objEventId) - { return; - } } -#undef i objectEvent = &gObjectEvents[objectEventId]; subspriteTables = NULL; @@ -1690,6 +1704,7 @@ static void sub_808E1B8(u8 objectEventId, s16 x, s16 y) spriteFrameImage.size = graphicsInfo->size; MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables); spriteTemplate.images = &spriteFrameImage; + *(u16 *)&spriteTemplate.paletteTag = 0xFFFF; paletteSlot = graphicsInfo->paletteSlot; if (paletteSlot == 0) @@ -1703,42 +1718,41 @@ static void sub_808E1B8(u8 objectEventId, s16 x, s16 y) else if (paletteSlot >= 16) { paletteSlot -= 16; - sub_808EAB0(graphicsInfo->paletteTag, paletteSlot); + _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot); } *(u16 *)&spriteTemplate.paletteTag = 0xFFFF; - spriteId = CreateSprite(&spriteTemplate, 0, 0, 0); - if (spriteId != MAX_SPRITES) + + i = CreateSprite(&spriteTemplate, 0, 0, 0); + if (i != MAX_SPRITES) { - sprite = &gSprites[spriteId]; - sub_8092FF0(x + objectEvent->currentCoords.x, y + objectEvent->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y); + sprite = &gSprites[i]; + GetMapCoordsFromSpritePos(x + objectEvent->currentCoords.x, y + objectEvent->currentCoords.y, &sprite->x, &sprite->y); sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); - sprite->pos1.x += 8; - sprite->pos1.y += 16 + sprite->centerToCornerVecY; + sprite->x += 8; + sprite->y += 16 + sprite->centerToCornerVecY; sprite->images = graphicsInfo->images; if (objectEvent->movementType == MOVEMENT_TYPE_PLAYER) { - SetPlayerAvatarObjectEventIdAndObjectId(objectEventId, spriteId); + SetPlayerAvatarObjectEventIdAndObjectId(objectEventId, i); objectEvent->warpArrowSpriteId = CreateWarpArrowSprite(); } if (subspriteTables != NULL) - { SetSubspriteTables(sprite, subspriteTables); - } + sprite->oam.paletteNum = paletteSlot; sprite->coordOffsetEnabled = TRUE; - sprite->data[0] = objectEventId; - objectEvent->spriteId = spriteId; + sprite->sObjEventId = objectEventId; + objectEvent->spriteId = i; if (!objectEvent->inanimate && objectEvent->movementType != MOVEMENT_TYPE_PLAYER) - { StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection)); - } - sub_808E38C(objectEvent); + + ResetObjectEventFldEffData(objectEvent); SetObjectSubpriorityByZCoord(objectEvent->previousElevation, sprite, 1); } } -static void sub_808E38C(struct ObjectEvent *objectEvent) +static void ResetObjectEventFldEffData(struct ObjectEvent *objectEvent) { objectEvent->singleMovementActive = FALSE; objectEvent->triggerGroundEffectsOnMove = TRUE; @@ -1779,7 +1793,7 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) else if (paletteSlot >= 16) { paletteSlot -= 16; - sub_808EAB0(graphicsInfo->paletteTag, paletteSlot); + _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot); } sprite->oam.shape = graphicsInfo->oam->shape; sprite->oam.size = graphicsInfo->oam->size; @@ -1789,11 +1803,11 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) sprite->oam.paletteNum = paletteSlot; objectEvent->inanimate = graphicsInfo->inanimate; objectEvent->graphicsId = graphicsId; - SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y); + SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->x, &sprite->y); sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); - sprite->pos1.x += 8; - sprite->pos1.y += 16 + sprite->centerToCornerVecY; + sprite->x += 8; + sprite->y += 16 + sprite->centerToCornerVecY; if (objectEvent->trackedByCamera) { CameraObjectReset1(); @@ -1835,7 +1849,7 @@ void PlayerObjectTurn(struct PlayerAvatar *playerAvatar, u8 direction) ObjectEventTurn(&gObjectEvents[playerAvatar->objectEventId], direction); } -static void get_berry_tree_graphics(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static void SetBerryTreeGraphics(struct ObjectEvent *objectEvent, struct Sprite *sprite) { u8 berryStage; u8 berryId; @@ -1843,7 +1857,7 @@ static void get_berry_tree_graphics(struct ObjectEvent *objectEvent, struct Spri objectEvent->invisible = TRUE; sprite->invisible = TRUE; berryStage = GetStageByBerryTreeId(objectEvent->trainerRange_berryTreeId); - if (berryStage != 0) + if (berryStage != BERRY_STAGE_NO_BERRY) { objectEvent->invisible = FALSE; sprite->invisible = FALSE; @@ -1889,13 +1903,13 @@ static void SetObjectEventDynamicGraphicsId(struct ObjectEvent *objectEvent) } } -void npc_by_local_id_and_map_set_field_1_bit_x20(u8 localId, u8 mapNum, u8 mapGroup, u8 state) +void SetObjectInvisibility(u8 localId, u8 mapNum, u8 mapGroup, bool8 invisible) { u8 objectEventId; if (!TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)) { - gObjectEvents[objectEventId].invisible = state; + gObjectEvents[objectEventId].invisible = invisible; } } @@ -1906,7 +1920,7 @@ void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, *(u8*)(mapGroup) = objectEvent->mapGroup; } -void sub_808E75C(s16 x, s16 y) +void AllowObjectAtPosTriggerGroundEffects(s16 x, s16 y) { u8 objectEventId; struct ObjectEvent *objectEvent; @@ -1919,7 +1933,7 @@ void sub_808E75C(s16 x, s16 y) } } -void sub_808E78C(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority) +void SetObjectPriority(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority) { u8 objectEventId; struct ObjectEvent *objectEvent; @@ -1934,7 +1948,7 @@ void sub_808E78C(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority) } } -void sub_808E7E4(u8 localId, u8 mapNum, u8 mapGroup) +void ResetObjectPriority(u8 localId, u8 mapNum, u8 mapGroup) { u8 objectEventId; struct ObjectEvent *objectEvent; @@ -1955,8 +1969,8 @@ void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, if (!TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)) { sprite = &gSprites[gObjectEvents[objectEventId].spriteId]; - sprite->pos2.x = x; - sprite->pos2.y = y; + sprite->x2 = x; + sprite->y2 = y; } } @@ -1971,27 +1985,23 @@ static void LoadObjectEventPalette(u16 paletteTag) u16 i = FindObjectEventPaletteIndexByTag(paletteTag); if (i != OBJ_EVENT_PAL_TAG_NONE) // always true - { - sub_808E8F4(&sObjectEventSpritePalettes[i]); - } + LoadSpritePaletteIfTagExists(&sObjectEventSpritePalettes[i]); } -void Unused_LoadObjectEventPaletteSet(u16 *paletteTags) +// Unused +static void LoadObjectEventPaletteSet(u16 *paletteTags) { u8 i; for (i = 0; paletteTags[i] != OBJ_EVENT_PAL_TAG_NONE; i++) - { LoadObjectEventPalette(paletteTags[i]); - } } -static u8 sub_808E8F4(const struct SpritePalette *spritePalette) +static u8 LoadSpritePaletteIfTagExists(const struct SpritePalette *spritePalette) { if (IndexOfSpritePaletteTag(spritePalette->tag) != 0xFF) - { return 0xFF; - } + return LoadSpritePalette(spritePalette); } @@ -2057,12 +2067,13 @@ void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot) } } -static void sub_808EAB0(u16 tag, u8 slot) +static void _PatchObjectPalette(u16 tag, u8 slot) { PatchObjectPalette(tag, slot); } -void unref_sub_808EAC4(struct ObjectEvent *objectEvent, s16 x, s16 y) +// Unused +static void IncrementObjectEventCoords(struct ObjectEvent *objectEvent, s16 x, s16 y) { objectEvent->previousCoords.x = objectEvent->currentCoords.x; objectEvent->previousCoords.y = objectEvent->currentCoords.y; @@ -2094,12 +2105,12 @@ void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y) sprite = &gSprites[objectEvent->spriteId]; graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); SetObjectEventCoords(objectEvent, x, y); - SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y); + SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->x, &sprite->y); sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); - sprite->pos1.x += 8; - sprite->pos1.y += 16 + sprite->centerToCornerVecY; - sub_808E38C(objectEvent); + sprite->x += 8; + sprite->y += 16 + sprite->centerToCornerVecY; + ResetObjectEventFldEffData(objectEvent); if (objectEvent->trackedByCamera) CameraObjectReset1(); } @@ -2178,114 +2189,116 @@ void UpdateObjectEventsForCameraUpdate(s16 x, s16 y) RemoveObjectEventsOutsideView(); } +#define sLinkedSpriteId data[0] +#define sState data[1] + u8 AddCameraObject(u8 linkedSpriteId) { - u8 spriteId = CreateSprite(&gCameraSpriteTemplate, 0, 0, 4); + u8 spriteId = CreateSprite(&sCameraSpriteTemplate, 0, 0, 4); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].data[0] = linkedSpriteId; + gSprites[spriteId].sLinkedSpriteId = linkedSpriteId; return spriteId; } -static void ObjectCB_CameraObject(struct Sprite *sprite) +static void SpriteCB_CameraObject(struct Sprite *sprite) { - void (*callbacks[ARRAY_COUNT(gCameraObjectFuncs)])(struct Sprite *); + void (*callbacks[ARRAY_COUNT(sCameraObjectFuncs)])(struct Sprite *); - memcpy(callbacks, gCameraObjectFuncs, sizeof gCameraObjectFuncs); - callbacks[sprite->data[1]](sprite); + memcpy(callbacks, sCameraObjectFuncs, sizeof sCameraObjectFuncs); + callbacks[sprite->sState](sprite); } static void CameraObject_0(struct Sprite *sprite) { - sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; - sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; + sprite->x = gSprites[sprite->sLinkedSpriteId].x; + sprite->y = gSprites[sprite->sLinkedSpriteId].y; sprite->invisible = TRUE; - sprite->data[1] = 1; + sprite->sState = 1; CameraObject_1(sprite); } static void CameraObject_1(struct Sprite *sprite) { - s16 x = gSprites[sprite->data[0]].pos1.x; - s16 y = gSprites[sprite->data[0]].pos1.y; + s16 x = gSprites[sprite->sLinkedSpriteId].x; + s16 y = gSprites[sprite->sLinkedSpriteId].y; - sprite->data[2] = x - sprite->pos1.x; - sprite->data[3] = y - sprite->pos1.y; - sprite->pos1.x = x; - sprite->pos1.y = y; + sprite->data[2] = x - sprite->x; + sprite->data[3] = y - sprite->y; + sprite->x = x; + sprite->y = y; } static void CameraObject_2(struct Sprite *sprite) { - sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; - sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; + sprite->x = gSprites[sprite->sLinkedSpriteId].x; + sprite->y = gSprites[sprite->sLinkedSpriteId].y; sprite->data[2] = 0; sprite->data[3] = 0; } -static struct Sprite *FindCameraObject(void) +static struct Sprite *FindCameraSprite(void) { u8 i; for (i = 0; i < MAX_SPRITES; i++) { - if (gSprites[i].inUse && gSprites[i].callback == ObjectCB_CameraObject) - { + if (gSprites[i].inUse && gSprites[i].callback == SpriteCB_CameraObject) return &gSprites[i]; - } } return NULL; } void CameraObjectReset1(void) { - struct Sprite *cameraObject; + struct Sprite *camera; - cameraObject = FindCameraObject(); - if (cameraObject != NULL) + camera = FindCameraSprite(); + if (camera != NULL) { - cameraObject->data[1] = 0; - cameraObject->callback(cameraObject); + camera->sState = 0; + camera->callback(camera); } } -void CameraObjectSetFollowedObjectId(u8 objectId) +void CameraObjectSetFollowedSpriteId(u8 spriteId) { - struct Sprite *cameraObject; + struct Sprite *camera; - cameraObject = FindCameraObject(); - if (cameraObject != NULL) + camera = FindCameraSprite(); + if (camera != NULL) { - cameraObject->data[0] = objectId; + camera->sLinkedSpriteId = spriteId; CameraObjectReset1(); } } -u8 CameraObjectGetFollowedObjectId(void) +// Unused +static u8 CameraObjectGetFollowedSpriteId(void) { - struct Sprite *cameraObject; + struct Sprite *camera; - cameraObject = FindCameraObject(); - if (cameraObject == NULL) + camera = FindCameraSprite(); + if (camera == NULL) { return MAX_SPRITES; } - return cameraObject->data[0]; + return camera->sLinkedSpriteId; } void CameraObjectReset2(void) { // UB: Possible null dereference #ifdef UBFIX - struct Sprite *cameraObject; + struct Sprite *camera; - cameraObject = FindCameraObject(); - if (cameraObject != NULL) + camera = FindCameraSprite(); + if (camera != NULL) { - cameraObject->data[1] = 2; + camera->sState = 2; } #else - FindCameraObject()->data[1] = 2; + FindCameraSprite()->sState = 2; #endif // UBFIX } @@ -2298,8 +2311,8 @@ u8 CopySprite(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) if (!gSprites[i].inUse) { gSprites[i] = *sprite; - gSprites[i].pos1.x = x; - gSprites[i].pos1.y = y; + gSprites[i].x = x; + gSprites[i].y = y; gSprites[i].subpriority = subpriority; break; } @@ -2316,8 +2329,8 @@ u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) if (!gSprites[i].inUse) { gSprites[i] = *sprite; - gSprites[i].pos1.x = x; - gSprites[i].pos1.y = y; + gSprites[i].x = x; + gSprites[i].y = y; gSprites[i].subpriority = subpriority; return i; } @@ -2546,14 +2559,14 @@ movement_type_def(MovementType_WanderAround, gMovementTypeFuncs_WanderAround) bool8 MovementType_WanderAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_WanderAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -2563,8 +2576,8 @@ bool8 MovementType_WanderAround_Step2(struct ObjectEvent *objectEvent, struct Sp { return FALSE; } - SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]); - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]); + sprite->sTypeFuncId = 3; return TRUE; } @@ -2572,7 +2585,7 @@ bool8 MovementType_WanderAround_Step3(struct ObjectEvent *objectEvent, struct Sp { if (WaitForMovementDelay(sprite)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -2586,9 +2599,9 @@ bool8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sp memcpy(directions, gStandardDirections, sizeof directions); chosenDirection = directions[Random() & 3]; SetObjectEventDirection(objectEvent, chosenDirection); - sprite->data[1] = 5; + sprite->sTypeFuncId = 5; if (GetCollisionInDirection(objectEvent, chosenDirection)) - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -2596,8 +2609,8 @@ bool8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sp bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkNormalMovementAction(objectEvent->movementDirection)); - objectEvent->singleMovementActive = 1; - sprite->data[1] = 6; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = 6; return TRUE; } @@ -2605,8 +2618,8 @@ bool8 MovementType_WanderAround_Step6(struct ObjectEvent *objectEvent, struct Sp { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - objectEvent->singleMovementActive = 0; - sprite->data[1] = 1; + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 1; } return FALSE; } @@ -2652,17 +2665,13 @@ u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy) { direction = DIR_EAST; if (dx < 0) - { direction = DIR_WEST; - } } else { direction = DIR_SOUTH; if (dy < 0) - { direction = DIR_NORTH; - } } return direction; } @@ -2673,9 +2682,7 @@ u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy) direction = DIR_SOUTH; if (dy < 0) - { direction = DIR_NORTH; - } return direction; } @@ -2685,9 +2692,7 @@ u8 GetLimitedVectorDirection_WestEast(s16 dx, s16 dy, s16 absdx, s16 absdy) direction = DIR_EAST; if (dx < 0) - { direction = DIR_WEST; - } return direction; } @@ -2700,17 +2705,13 @@ u8 GetLimitedVectorDirection_WestNorth(s16 dx, s16 dy, s16 absdx, s16 absdy) { direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy); if (direction == DIR_EAST) - { direction = DIR_NORTH; - } } else if (direction == DIR_EAST) { direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy); if (direction == DIR_SOUTH) - { direction = DIR_NORTH; - } } return direction; } @@ -2724,17 +2725,13 @@ u8 GetLimitedVectorDirection_EastNorth(s16 dx, s16 dy, s16 absdx, s16 absdy) { direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy); if (direction == DIR_WEST) - { direction = DIR_NORTH; - } } else if (direction == DIR_WEST) { direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy); if (direction == DIR_SOUTH) - { direction = DIR_NORTH; - } } return direction; } @@ -2748,17 +2745,13 @@ u8 GetLimitedVectorDirection_WestSouth(s16 dx, s16 dy, s16 absdx, s16 absdy) { direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy); if (direction == DIR_EAST) - { direction = DIR_SOUTH; - } } else if (direction == DIR_EAST) { direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy); if (direction == DIR_NORTH) - { direction = DIR_SOUTH; - } } return direction; } @@ -2772,17 +2765,13 @@ u8 GetLimitedVectorDirection_EastSouth(s16 dx, s16 dy, s16 absdx, s16 absdy) { direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy); if (direction == DIR_WEST) - { direction = DIR_SOUTH; - } } else if (direction == DIR_WEST) { direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy); if (direction == DIR_NORTH) - { direction = DIR_SOUTH; - } } return direction; } @@ -2793,9 +2782,7 @@ u8 GetLimitedVectorDirection_SouthNorthWest(s16 dx, s16 dy, s16 absdx, s16 absdy direction = GetVectorDirection(dx, dy, absdx, absdy); if (direction == DIR_EAST) - { direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy); - } return direction; } @@ -2805,9 +2792,7 @@ u8 GetLimitedVectorDirection_SouthNorthEast(s16 dx, s16 dy, s16 absdx, s16 absdy direction = GetVectorDirection(dx, dy, absdx, absdy); if (direction == DIR_WEST) - { direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy); - } return direction; } @@ -2817,9 +2802,7 @@ u8 GetLimitedVectorDirection_NorthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy) direction = GetVectorDirection(dx, dy, absdx, absdy); if (direction == DIR_SOUTH) - { direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy); - } return direction; } @@ -2829,9 +2812,7 @@ u8 GetLimitedVectorDirection_SouthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy) direction = GetVectorDirection(dx, dy, absdx, absdy); if (direction == DIR_NORTH) - { direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy); - } return direction; } @@ -2841,22 +2822,19 @@ u8 TryGetTrainerEncounterDirection(struct ObjectEvent *objectEvent, u8 movementT s16 absdx, absdy; if (!ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) - { - return 0; - } + return DIR_NONE; + PlayerGetDestCoords(&dx, &dy); dx -= objectEvent->currentCoords.x; dy -= objectEvent->currentCoords.y; absdx = dx; absdy = dy; + if (absdx < 0) - { absdx = -absdx; - } if (absdy < 0) - { absdy = -absdy; - } + return gGetVectorDirectionFuncs[movementType](dx, dy, absdx, absdy); } @@ -2865,14 +2843,14 @@ movement_type_def(MovementType_LookAround, gMovementTypeFuncs_LookAround) bool8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_LookAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -2880,9 +2858,9 @@ bool8 MovementType_LookAround_Step2(struct ObjectEvent *objectEvent, struct Spri { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -2891,7 +2869,7 @@ bool8 MovementType_LookAround_Step3(struct ObjectEvent *objectEvent, struct Spri { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -2907,7 +2885,7 @@ bool8 MovementType_LookAround_Step4(struct ObjectEvent *objectEvent, struct Spri direction = directions[Random() & 3]; SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -2916,25 +2894,24 @@ movement_type_def(MovementType_WanderUpAndDown, gMovementTypeFuncs_WanderUpAndDo bool8 MovementType_WanderUpAndDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_WanderUpAndDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } bool8 MovementType_WanderUpAndDown_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!ObjectEventExecSingleMovementAction(objectEvent, sprite)) - { return FALSE; - } - SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]); - sprite->data[1] = 3; + + SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]); + sprite->sTypeFuncId = 3; return TRUE; } @@ -2942,7 +2919,7 @@ bool8 MovementType_WanderUpAndDown_Step3(struct ObjectEvent *objectEvent, struct { if (WaitForMovementDelay(sprite)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -2955,9 +2932,9 @@ bool8 MovementType_WanderUpAndDown_Step4(struct ObjectEvent *objectEvent, struct memcpy(directions, gUpAndDownDirections, sizeof directions); direction = directions[Random() & 1]; SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 5; + sprite->sTypeFuncId = 5; if (GetCollisionInDirection(objectEvent, direction)) - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -2965,8 +2942,8 @@ bool8 MovementType_WanderUpAndDown_Step4(struct ObjectEvent *objectEvent, struct bool8 MovementType_WanderUpAndDown_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkNormalMovementAction(objectEvent->movementDirection)); - objectEvent->singleMovementActive = 1; - sprite->data[1] = 6; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = 6; return TRUE; } @@ -2974,8 +2951,8 @@ bool8 MovementType_WanderUpAndDown_Step6(struct ObjectEvent *objectEvent, struct { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - objectEvent->singleMovementActive = 0; - sprite->data[1] = 1; + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 1; } return FALSE; } @@ -2985,25 +2962,24 @@ movement_type_def(MovementType_WanderLeftAndRight, gMovementTypeFuncs_WanderLeft bool8 MovementType_WanderLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_WanderLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } bool8 MovementType_WanderLeftAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!ObjectEventExecSingleMovementAction(objectEvent, sprite)) - { return FALSE; - } - SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]); - sprite->data[1] = 3; + + SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]); + sprite->sTypeFuncId = 3; return TRUE; } @@ -3011,7 +2987,7 @@ bool8 MovementType_WanderLeftAndRight_Step3(struct ObjectEvent *objectEvent, str { if (WaitForMovementDelay(sprite)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3024,9 +3000,9 @@ bool8 MovementType_WanderLeftAndRight_Step4(struct ObjectEvent *objectEvent, str memcpy(directions, gLeftAndRightDirections, sizeof directions); direction = directions[Random() & 1]; SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 5; + sprite->sTypeFuncId = 5; if (GetCollisionInDirection(objectEvent, direction)) - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3034,8 +3010,8 @@ bool8 MovementType_WanderLeftAndRight_Step4(struct ObjectEvent *objectEvent, str bool8 MovementType_WanderLeftAndRight_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkNormalMovementAction(objectEvent->movementDirection)); - objectEvent->singleMovementActive = 1; - sprite->data[1] = 6; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = 6; return TRUE; } @@ -3043,8 +3019,8 @@ bool8 MovementType_WanderLeftAndRight_Step6(struct ObjectEvent *objectEvent, str { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - objectEvent->singleMovementActive = 0; - sprite->data[1] = 1; + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 1; } return FALSE; } @@ -3055,7 +3031,7 @@ bool8 MovementType_FaceDirection_Step0(struct ObjectEvent *objectEvent, struct S { ClearObjectEventMovement(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3063,7 +3039,7 @@ bool8 MovementType_FaceDirection_Step1(struct ObjectEvent *objectEvent, struct S { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } return FALSE; @@ -3071,39 +3047,56 @@ bool8 MovementType_FaceDirection_Step1(struct ObjectEvent *objectEvent, struct S bool8 MovementType_FaceDirection_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - objectEvent->singleMovementActive = 0; + objectEvent->singleMovementActive = FALSE; return FALSE; } static bool8 ObjectEventCB2_BerryTree(struct ObjectEvent *objectEvent, struct Sprite *sprite); extern bool8 (*const gMovementTypeFuncs_BerryTreeGrowth[])(struct ObjectEvent *objectEvent, struct Sprite *sprite); + +enum { + BERRYTREEFUNC_NORMAL, + BERRYTREEFUNC_MOVE, + BERRYTREEFUNC_SPARKLE_START, + BERRYTREEFUNC_SPARKLE, + BERRYTREEFUNC_SPARKLE_END, +}; + +#define sTimer data[2] +#define sBerryTreeFlags data[7] + +#define BERRY_FLAG_SET_GFX (1 << 0) +#define BERRY_FLAG_SPARKLING (1 << 1) +#define BERRY_FLAG_JUST_PICKED (1 << 2) + void MovementType_BerryTreeGrowth(struct Sprite *sprite) { struct ObjectEvent *objectEvent; - objectEvent = &gObjectEvents[sprite->data[0]]; - if (!(sprite->data[7] & 1)) + objectEvent = &gObjectEvents[sprite->sObjEventId]; + if (!(sprite->sBerryTreeFlags & BERRY_FLAG_SET_GFX)) { - get_berry_tree_graphics(objectEvent, sprite); - sprite->data[7] |= 1; + SetBerryTreeGraphics(objectEvent, sprite); + sprite->sBerryTreeFlags |= BERRY_FLAG_SET_GFX; } UpdateObjectEventCurrentMovement(objectEvent, sprite, ObjectEventCB2_BerryTree); } static bool8 ObjectEventCB2_BerryTree(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gMovementTypeFuncs_BerryTreeGrowth[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_BerryTreeGrowth[sprite->sTypeFuncId](objectEvent, sprite); } -bool8 MovementType_BerryTreeGrowth_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +// BERRYTREEFUNC_NORMAL +bool8 MovementType_BerryTreeGrowth_Normal(struct ObjectEvent *objectEvent, struct Sprite *sprite) { u8 berryStage; ClearObjectEventMovement(objectEvent, sprite); objectEvent->invisible = TRUE; sprite->invisible = TRUE; berryStage = GetStageByBerryTreeId(objectEvent->trainerRange_berryTreeId); - if (berryStage == 0) + if (berryStage == BERRY_STAGE_NO_BERRY) { - if (!(sprite->data[7] & 4) && sprite->animNum == 4) + if (!(sprite->sBerryTreeFlags & BERRY_FLAG_JUST_PICKED) && sprite->animNum == BERRY_STAGE_FLOWERING) { gFieldEffectArguments[0] = objectEvent->currentCoords.x; gFieldEffectArguments[1] = objectEvent->currentCoords.y; @@ -3116,34 +3109,36 @@ bool8 MovementType_BerryTreeGrowth_Step0(struct ObjectEvent *objectEvent, struct } objectEvent->invisible = FALSE; sprite->invisible = FALSE; - berryStage --; + berryStage--; if (sprite->animNum != berryStage) { - sprite->data[1] = 2; + sprite->sTypeFuncId = BERRYTREEFUNC_SPARKLE_START; return TRUE; } - get_berry_tree_graphics(objectEvent, sprite); + SetBerryTreeGraphics(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - sprite->data[1] = 1; + sprite->sTypeFuncId = BERRYTREEFUNC_MOVE; return TRUE; } -bool8 MovementType_BerryTreeGrowth_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +// BERRYTREEFUNC_MOVE +bool8 MovementType_BerryTreeGrowth_Move(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - sprite->data[1] = 0; + sprite->sTypeFuncId = BERRYTREEFUNC_NORMAL; return TRUE; } return FALSE; } -bool8 MovementType_BerryTreeGrowth_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) +// BERRYTREEFUNC_SPARKLE_START +bool8 MovementType_BerryTreeGrowth_SparkleStart(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - objectEvent->singleMovementActive = 1; - sprite->data[1] = 3; - sprite->data[2] = 0; - sprite->data[7] |= 2; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = BERRYTREEFUNC_SPARKLE; + sprite->sTimer = 0; + sprite->sBerryTreeFlags |= BERRY_FLAG_SPARKLING; gFieldEffectArguments[0] = objectEvent->currentCoords.x; gFieldEffectArguments[1] = objectEvent->currentCoords.y; gFieldEffectArguments[2] = sprite->subpriority - 1; @@ -3152,30 +3147,32 @@ bool8 MovementType_BerryTreeGrowth_Step2(struct ObjectEvent *objectEvent, struct return TRUE; } -bool8 MovementType_BerryTreeGrowth_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite) +// BERRYTREEFUNC_SPARKLE +bool8 MovementType_BerryTreeGrowth_Sparkle(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sprite->data[2]++; - objectEvent->invisible = (sprite->data[2] & 0x02) >> 1; + sprite->sTimer++; + objectEvent->invisible = (sprite->sTimer & 2) >> 1; sprite->animPaused = TRUE; - if (sprite->data[2] > 64) + if (sprite->sTimer > 64) { - get_berry_tree_graphics(objectEvent, sprite); - sprite->data[1] = 4; - sprite->data[2] = 0; + SetBerryTreeGraphics(objectEvent, sprite); + sprite->sTypeFuncId = BERRYTREEFUNC_SPARKLE_END; + sprite->sTimer = 0; return TRUE; } return FALSE; } -bool8 MovementType_BerryTreeGrowth_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite) +// BERRYTREEFUNC_SPARKLE_END +bool8 MovementType_BerryTreeGrowth_SparkleEnd(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sprite->data[2]++; - objectEvent->invisible = (sprite->data[2] & 0x02) >> 1; + sprite->sTimer++; + objectEvent->invisible = (sprite->sTimer & 2) >> 1; sprite->animPaused = TRUE; - if (sprite->data[2] > 64) + if (sprite->sTimer > 64) { - sprite->data[1] = 0; - sprite->data[7] &= ~0x0002; + sprite->sTypeFuncId = BERRYTREEFUNC_NORMAL; + sprite->sBerryTreeFlags &= ~BERRY_FLAG_SPARKLING; return TRUE; } return FALSE; @@ -3186,14 +3183,14 @@ movement_type_def(MovementType_FaceDownAndUp, gMovementTypeFuncs_FaceDownAndUp) bool8 MovementType_FaceDownAndUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceDownAndUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3201,9 +3198,9 @@ bool8 MovementType_FaceDownAndUp_Step2(struct ObjectEvent *objectEvent, struct S { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3212,7 +3209,7 @@ bool8 MovementType_FaceDownAndUp_Step3(struct ObjectEvent *objectEvent, struct S { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3229,7 +3226,7 @@ bool8 MovementType_FaceDownAndUp_Step4(struct ObjectEvent *objectEvent, struct S direction = directions[Random() & 1]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3238,14 +3235,14 @@ movement_type_def(MovementType_FaceLeftAndRight, gMovementTypeFuncs_FaceLeftAndR bool8 MovementType_FaceLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3253,9 +3250,9 @@ bool8 MovementType_FaceLeftAndRight_Step2(struct ObjectEvent *objectEvent, struc { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3264,7 +3261,7 @@ bool8 MovementType_FaceLeftAndRight_Step3(struct ObjectEvent *objectEvent, struc { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3281,7 +3278,7 @@ bool8 MovementType_FaceLeftAndRight_Step4(struct ObjectEvent *objectEvent, struc direction = directions[Random() & 1]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3290,14 +3287,14 @@ movement_type_def(MovementType_FaceUpAndLeft, gMovementTypeFuncs_FaceUpAndLeft) bool8 MovementType_FaceUpAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceUpAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3305,9 +3302,9 @@ bool8 MovementType_FaceUpAndLeft_Step2(struct ObjectEvent *objectEvent, struct S { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3316,7 +3313,7 @@ bool8 MovementType_FaceUpAndLeft_Step3(struct ObjectEvent *objectEvent, struct S { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3333,7 +3330,7 @@ bool8 MovementType_FaceUpAndLeft_Step4(struct ObjectEvent *objectEvent, struct S direction = directions[Random() & 1]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3342,14 +3339,14 @@ movement_type_def(MovementType_FaceUpAndRight, gMovementTypeFuncs_FaceUpAndRight bool8 MovementType_FaceUpAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceUpAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3357,9 +3354,9 @@ bool8 MovementType_FaceUpAndRight_Step2(struct ObjectEvent *objectEvent, struct { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3368,7 +3365,7 @@ bool8 MovementType_FaceUpAndRight_Step3(struct ObjectEvent *objectEvent, struct { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3385,7 +3382,7 @@ bool8 MovementType_FaceUpAndRight_Step4(struct ObjectEvent *objectEvent, struct direction = directions[Random() & 1]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3394,14 +3391,14 @@ movement_type_def(MovementType_FaceDownAndLeft, gMovementTypeFuncs_FaceDownAndLe bool8 MovementType_FaceDownAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceDownAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3409,9 +3406,9 @@ bool8 MovementType_FaceDownAndLeft_Step2(struct ObjectEvent *objectEvent, struct { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3420,7 +3417,7 @@ bool8 MovementType_FaceDownAndLeft_Step3(struct ObjectEvent *objectEvent, struct { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3437,7 +3434,7 @@ bool8 MovementType_FaceDownAndLeft_Step4(struct ObjectEvent *objectEvent, struct direction = directions[Random() & 1]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3446,14 +3443,14 @@ movement_type_def(MovementType_FaceDownAndRight, gMovementTypeFuncs_FaceDownAndR bool8 MovementType_FaceDownAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceDownAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3461,9 +3458,9 @@ bool8 MovementType_FaceDownAndRight_Step2(struct ObjectEvent *objectEvent, struc { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3472,7 +3469,7 @@ bool8 MovementType_FaceDownAndRight_Step3(struct ObjectEvent *objectEvent, struc { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3489,7 +3486,7 @@ bool8 MovementType_FaceDownAndRight_Step4(struct ObjectEvent *objectEvent, struc direction = directions[Random() & 1]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3498,14 +3495,14 @@ movement_type_def(MovementType_FaceDownUpAndLeft, gMovementTypeFuncs_FaceDownUpA bool8 MovementType_FaceDownUpAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceDownUpAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3513,9 +3510,9 @@ bool8 MovementType_FaceDownUpAndLeft_Step2(struct ObjectEvent *objectEvent, stru { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3524,7 +3521,7 @@ bool8 MovementType_FaceDownUpAndLeft_Step3(struct ObjectEvent *objectEvent, stru { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3541,7 +3538,7 @@ bool8 MovementType_FaceDownUpAndLeft_Step4(struct ObjectEvent *objectEvent, stru direction = directions[Random() & 3]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3550,14 +3547,14 @@ movement_type_def(MovementType_FaceDownUpAndRight, gMovementTypeFuncs_FaceDownUp bool8 MovementType_FaceDownUpAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceDownUpAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3565,9 +3562,9 @@ bool8 MovementType_FaceDownUpAndRight_Step2(struct ObjectEvent *objectEvent, str { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3576,7 +3573,7 @@ bool8 MovementType_FaceDownUpAndRight_Step3(struct ObjectEvent *objectEvent, str { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3593,7 +3590,7 @@ bool8 MovementType_FaceDownUpAndRight_Step4(struct ObjectEvent *objectEvent, str direction = directions[Random() & 3]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3602,14 +3599,14 @@ movement_type_def(MovementType_FaceUpRightAndLeft, gMovementTypeFuncs_FaceUpLeft bool8 MovementType_FaceUpLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceUpLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3617,9 +3614,9 @@ bool8 MovementType_FaceUpLeftAndRight_Step2(struct ObjectEvent *objectEvent, str { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3628,7 +3625,7 @@ bool8 MovementType_FaceUpLeftAndRight_Step3(struct ObjectEvent *objectEvent, str { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3645,7 +3642,7 @@ bool8 MovementType_FaceUpLeftAndRight_Step4(struct ObjectEvent *objectEvent, str direction = directions[Random() & 3]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3654,14 +3651,14 @@ movement_type_def(MovementType_FaceDownRightAndLeft, gMovementTypeFuncs_FaceDown bool8 MovementType_FaceDownLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_FaceDownLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3669,9 +3666,9 @@ bool8 MovementType_FaceDownLeftAndRight_Step2(struct ObjectEvent *objectEvent, s { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]); - objectEvent->singleMovementActive = 0; - sprite->data[1] = 3; + SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]); + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3680,7 +3677,7 @@ bool8 MovementType_FaceDownLeftAndRight_Step3(struct ObjectEvent *objectEvent, s { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 4; + sprite->sTypeFuncId = 4; return TRUE; } return FALSE; @@ -3697,7 +3694,7 @@ bool8 MovementType_FaceDownLeftAndRight_Step4(struct ObjectEvent *objectEvent, s direction = directions[Random() & 3]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3707,7 +3704,7 @@ bool8 MovementType_RotateCounterclockwise_Step0(struct ObjectEvent *objectEvent, { ClearObjectEventMovement(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3716,7 +3713,7 @@ bool8 MovementType_RotateCounterclockwise_Step1(struct ObjectEvent *objectEvent, if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { SetMovementDelay(sprite, 48); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; } return FALSE; } @@ -3725,7 +3722,7 @@ bool8 MovementType_RotateCounterclockwise_Step2(struct ObjectEvent *objectEvent, { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 3; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3741,7 +3738,7 @@ bool8 MovementType_RotateCounterclockwise_Step3(struct ObjectEvent *objectEvent, direction = directions[objectEvent->facingDirection]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 0; + sprite->sTypeFuncId = 0; return TRUE; } @@ -3751,7 +3748,7 @@ bool8 MovementType_RotateClockwise_Step0(struct ObjectEvent *objectEvent, struct { ClearObjectEventMovement(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3760,7 +3757,7 @@ bool8 MovementType_RotateClockwise_Step1(struct ObjectEvent *objectEvent, struct if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { SetMovementDelay(sprite, 48); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; } return FALSE; } @@ -3769,7 +3766,7 @@ bool8 MovementType_RotateClockwise_Step2(struct ObjectEvent *objectEvent, struct { if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent)) { - sprite->data[1] = 3; + sprite->sTypeFuncId = 3; } return FALSE; } @@ -3785,7 +3782,7 @@ bool8 MovementType_RotateClockwise_Step3(struct ObjectEvent *objectEvent, struct direction = directions[objectEvent->facingDirection]; } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 0; + sprite->sTypeFuncId = 0; return TRUE; } @@ -3794,7 +3791,7 @@ movement_type_def(MovementType_WalkBackAndForth, gMovementTypeFuncs_WalkBackAndF bool8 MovementType_WalkBackAndForth_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3808,7 +3805,7 @@ bool8 MovementType_WalkBackAndForth_Step1(struct ObjectEvent *objectEvent, struc direction = GetOppositeDirection(direction); } SetObjectEventDirection(objectEvent, direction); - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3836,8 +3833,8 @@ bool8 MovementType_WalkBackAndForth_Step2(struct ObjectEvent *objectEvent, struc movementActionId = GetWalkInPlaceNormalMovementAction(objectEvent->facingDirection); ObjectEventSetSingleMovement(objectEvent, sprite, movementActionId); - objectEvent->singleMovementActive = 1; - sprite->data[1] = 3; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = 3; return TRUE; } @@ -3845,8 +3842,8 @@ bool8 MovementType_WalkBackAndForth_Step3(struct ObjectEvent *objectEvent, struc { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - objectEvent->singleMovementActive = 0; - sprite->data[1] = 1; + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 1; } return FALSE; } @@ -3854,7 +3851,7 @@ bool8 MovementType_WalkBackAndForth_Step3(struct ObjectEvent *objectEvent, struc bool8 MovementType_WalkSequence_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -3881,8 +3878,8 @@ bool8 MoveNextDirectionInSequence(struct ObjectEvent *objectEvent, struct Sprite movementActionId = GetWalkInPlaceNormalMovementAction(objectEvent->facingDirection); ObjectEventSetSingleMovement(objectEvent, sprite, movementActionId); - objectEvent->singleMovementActive = 1; - sprite->data[1] = 2; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = 2; return TRUE; } @@ -3890,8 +3887,8 @@ bool8 MovementType_WalkSequence_Step2(struct ObjectEvent *objectEvent, struct Sp { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - objectEvent->singleMovementActive = 0; - sprite->data[1] = 1; + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 1; } return FALSE; } @@ -4217,7 +4214,7 @@ bool8 MovementType_CopyPlayer_Step0(struct ObjectEvent *objectEvent, struct Spri { objectEvent->directionSequenceIndex = GetPlayerFacingDirection(); } - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -4234,8 +4231,8 @@ bool8 MovementType_CopyPlayer_Step2(struct ObjectEvent *objectEvent, struct Spri { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - objectEvent->singleMovementActive = 0; - sprite->data[1] = 1; + objectEvent->singleMovementActive = FALSE; + sprite->sTypeFuncId = 1; } return FALSE; } @@ -4248,8 +4245,8 @@ bool8 CopyablePlayerMovement_None(struct ObjectEvent *objectEvent, struct Sprite bool8 CopyablePlayerMovement_FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, playerDirection))); - objectEvent->singleMovementActive = 1; - sprite->data[1] = 2; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = 2; return TRUE; } @@ -4269,8 +4266,8 @@ bool8 CopyablePlayerMovement_GoSpeed0(struct ObjectEvent *objectEvent, struct Sp direction = state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); ObjectEventMoveDestCoords(objectEvent, direction, &x, &y); ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); - objectEvent->singleMovementActive = 1; - sprite->data[1] = 2; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = 2; return TRUE; } } @@ -4284,8 +4281,8 @@ bool8 CopyablePlayerMovement_GoSpeed0(struct ObjectEvent *objectEvent, struct Sp { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); } - objectEvent->singleMovementActive = 1; - sprite->data[1] = 2; + objectEvent->singleMovementActive = TRUE; + sprite->sTypeFuncId = 2; return TRUE; } @@ -4304,7 +4301,7 @@ bool8 CopyablePlayerMovement_GoSpeed1(struct ObjectEvent *objectEvent, struct Sp ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); } objectEvent->singleMovementActive = TRUE; - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -4323,7 +4320,7 @@ bool8 CopyablePlayerMovement_GoSpeed2(struct ObjectEvent *objectEvent, struct Sp ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); } objectEvent->singleMovementActive = TRUE; - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -4342,7 +4339,7 @@ bool8 CopyablePlayerMovement_Slide(struct ObjectEvent *objectEvent, struct Sprit ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); } objectEvent->singleMovementActive = TRUE; - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -4354,7 +4351,7 @@ bool8 cph_IM_DIFFERENT(struct ObjectEvent *objectEvent, struct Sprite *sprite, u direction = state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); ObjectEventSetSingleMovement(objectEvent, sprite, GetJumpInPlaceMovementAction(direction)); objectEvent->singleMovementActive = TRUE; - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -4373,7 +4370,7 @@ bool8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *objectEvent, struct Sp ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); } objectEvent->singleMovementActive = TRUE; - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -4394,7 +4391,7 @@ bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); } objectEvent->singleMovementActive = TRUE; - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } @@ -4402,10 +4399,9 @@ movement_type_def(MovementType_CopyPlayerInGrass, gMovementTypeFuncs_CopyPlayerI bool8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) - { + if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == MOVEMENT_ACTION_NONE || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) return FALSE; - } + return gCopyPlayerMovementFuncs[PlayerGetCopyableMovement()](objectEvent, sprite, GetPlayerMovementDirection(), MetatileBehavior_IsPokeGrass); } @@ -4413,7 +4409,7 @@ void MovementType_TreeDisguise(struct Sprite *sprite) { struct ObjectEvent *objectEvent; - objectEvent = &gObjectEvents[sprite->data[0]]; + objectEvent = &gObjectEvents[sprite->sObjEventId]; if (objectEvent->directionSequenceIndex == 0 || (objectEvent->directionSequenceIndex == 1 && !sprite->data[7])) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); @@ -4421,7 +4417,7 @@ void MovementType_TreeDisguise(struct Sprite *sprite) objectEvent->directionSequenceIndex = 1; sprite->data[7]++; } - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Disguise_Callback); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, MovementType_Disguise_Callback); } static bool8 MovementType_Disguise_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) @@ -4434,7 +4430,7 @@ void MovementType_MountainDisguise(struct Sprite *sprite) { struct ObjectEvent *objectEvent; - objectEvent = &gObjectEvents[sprite->data[0]]; + objectEvent = &gObjectEvents[sprite->sObjEventId]; if (objectEvent->directionSequenceIndex == 0 || (objectEvent->directionSequenceIndex == 1 && !sprite->data[7])) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); @@ -4442,27 +4438,27 @@ void MovementType_MountainDisguise(struct Sprite *sprite) objectEvent->directionSequenceIndex = 1; sprite->data[7]++; } - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Disguise_Callback); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, MovementType_Disguise_Callback); } -void MovementType_Hidden(struct Sprite *sprite) +void MovementType_Buried(struct Sprite *sprite) { if (!sprite->data[7]) { - gObjectEvents[sprite->data[0]].fixedPriority = TRUE; + gObjectEvents[sprite->sObjEventId].fixedPriority = TRUE; sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY; sprite->oam.priority = 3; sprite->data[7]++; } - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Hidden_Callback); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, MovementType_Buried_Callback); } -static bool8 MovementType_Hidden_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_Buried_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gMovementTypeFuncs_Hidden[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_Buried[sprite->sTypeFuncId](objectEvent, sprite); } -bool8 MovementType_Hidden_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementType_Buried_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); return FALSE; @@ -4472,7 +4468,7 @@ bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Spr { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - sprite->data[1] = 0; + sprite->sTypeFuncId = 0; } return FALSE; } @@ -4483,7 +4479,7 @@ bool8 MovementType_WalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Spr { ClearObjectEventMovement(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceNormalMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -4493,7 +4489,7 @@ bool8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *objectEvent, stru { ClearObjectEventMovement(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceSlowMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -4503,7 +4499,7 @@ bool8 MovementType_JogInPlace_Step0(struct ObjectEvent *objectEvent, struct Spri { ClearObjectEventMovement(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -4513,7 +4509,7 @@ bool8 MovementType_RunInPlace_Step0(struct ObjectEvent *objectEvent, struct Spri { ClearObjectEventMovement(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastestMovementAction(objectEvent->facingDirection)); - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } @@ -4524,14 +4520,14 @@ bool8 MovementType_Invisible_Step0(struct ObjectEvent *objectEvent, struct Sprit ClearObjectEventMovement(objectEvent, sprite); ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection)); objectEvent->invisible = TRUE; - sprite->data[1] = 1; + sprite->sTypeFuncId = 1; return TRUE; } bool8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { - sprite->data[1] = 2; + sprite->sTypeFuncId = 2; return TRUE; } return FALSE; @@ -4539,169 +4535,157 @@ bool8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprit bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - objectEvent->singleMovementActive = 0; + objectEvent->singleMovementActive = FALSE; return FALSE; } static void ClearObjectEventMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - objectEvent->singleMovementActive = 0; + objectEvent->singleMovementActive = FALSE; objectEvent->heldMovementActive = FALSE; objectEvent->heldMovementFinished = FALSE; objectEvent->movementActionId = 0xFF; - sprite->data[1] = 0; + sprite->sTypeFuncId = 0; } u8 GetFaceDirectionAnimNum(u8 direction) { - return gFaceDirectionAnimNums[direction]; + return sFaceDirectionAnimNums[direction]; } u8 GetMoveDirectionAnimNum(u8 direction) { - return gMoveDirectionAnimNums[direction]; + return sMoveDirectionAnimNums[direction]; } u8 GetMoveDirectionFastAnimNum(u8 direction) { - return gMoveDirectionFastAnimNums[direction]; + return sMoveDirectionFastAnimNums[direction]; } u8 GetMoveDirectionFasterAnimNum(u8 direction) { - return gMoveDirectionFasterAnimNums[direction]; + return sMoveDirectionFasterAnimNums[direction]; } u8 GetMoveDirectionFastestAnimNum(u8 direction) { - return gMoveDirectionFastestAnimNums[direction]; + return sMoveDirectionFastestAnimNums[direction]; } u8 GetJumpSpecialDirectionAnimNum(u8 direction) { - return gJumpSpecialDirectionAnimNums[direction]; + return sJumpSpecialDirectionAnimNums[direction]; } u8 GetAcroWheelieDirectionAnimNum(u8 direction) { - return gAcroWheelieDirectionAnimNums[direction]; + return sAcroWheelieDirectionAnimNums[direction]; } -u8 Unref_GetAnimNums_08375633(u8 direction) +u8 GetAcroUnusedDirectionAnimNum(u8 direction) { - return gUnrefAnimNums_08375633[direction]; + return sAcroUnusedDirectionAnimNums[direction]; } u8 GetAcroEndWheelieDirectionAnimNum(u8 direction) { - return gAcroEndWheelieDirectionAnimNums[direction]; + return sAcroEndWheelieDirectionAnimNums[direction]; } u8 GetAcroUnusedActionDirectionAnimNum(u8 direction) { - return gAcroUnusedActionDirectionAnimNums[direction]; + return sAcroUnusedActionDirectionAnimNums[direction]; } u8 GetAcroWheeliePedalDirectionAnimNum(u8 direction) { - return gAcroWheeliePedalDirectionAnimNums[direction]; + return sAcroWheeliePedalDirectionAnimNums[direction]; } u8 GetFishingDirectionAnimNum(u8 direction) { - return gFishingDirectionAnimNums[direction]; + return sFishingDirectionAnimNums[direction]; } u8 GetFishingNoCatchDirectionAnimNum(u8 direction) { - return gFishingNoCatchDirectionAnimNums[direction]; + return sFishingNoCatchDirectionAnimNums[direction]; } u8 GetFishingBiteDirectionAnimNum(u8 direction) { - return gFishingBiteDirectionAnimNums[direction]; + return sFishingBiteDirectionAnimNums[direction]; } u8 GetRunningDirectionAnimNum(u8 direction) { - return gRunningDirectionAnimNums[direction]; + return sRunningDirectionAnimNums[direction]; } -static const struct UnkStruct_085094AC *sub_8092A4C(const union AnimCmd *const *anims) +static const struct StepAnimTable *GetStepAnimTable(const union AnimCmd *const *anims) { - const struct UnkStruct_085094AC *retval; + const struct StepAnimTable *stepTable; - for (retval = gUnknown_085094AC; retval->anims != NULL; retval++) + for (stepTable = sStepAnimTables; stepTable->anims != NULL; stepTable++) { - if (retval->anims == anims) - { - return retval; - } + if (stepTable->anims == anims) + return stepTable; } return NULL; } -void npc_apply_anim_looping(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animNum) +void SetStepAnimHandleAlternation(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animNum) { - const struct UnkStruct_085094AC *unk85094AC; + const struct StepAnimTable *stepTable; if (!objectEvent->inanimate) { sprite->animNum = animNum; - unk85094AC = sub_8092A4C(sprite->anims); - if (unk85094AC != NULL) + stepTable = GetStepAnimTable(sprite->anims); + if (stepTable != NULL) { - if (sprite->animCmdIndex == unk85094AC->animPos[0]) - { - sprite->animCmdIndex = unk85094AC->animPos[3]; - } - else if (sprite->animCmdIndex == unk85094AC->animPos[1]) - { - sprite->animCmdIndex = unk85094AC->animPos[2]; - } + if (sprite->animCmdIndex == stepTable->animPos[0]) + sprite->animCmdIndex = stepTable->animPos[3]; + else if (sprite->animCmdIndex == stepTable->animPos[1]) + sprite->animCmdIndex = stepTable->animPos[2]; } SeekSpriteAnim(sprite, sprite->animCmdIndex); } } -void obj_npc_animation_step(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animNum) +void SetStepAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animNum) { - const struct UnkStruct_085094AC *unk85094AC; + const struct StepAnimTable *stepTable; if (!objectEvent->inanimate) { u8 animPos; sprite->animNum = animNum; - unk85094AC = sub_8092A4C(sprite->anims); - if (unk85094AC != NULL) + stepTable = GetStepAnimTable(sprite->anims); + if (stepTable != NULL) { - animPos = unk85094AC->animPos[1]; - if (sprite->animCmdIndex <= unk85094AC->animPos[0]) - { - animPos = unk85094AC->animPos[0]; - } + animPos = stepTable->animPos[1]; + if (sprite->animCmdIndex <= stepTable->animPos[0]) + animPos = stepTable->animPos[0]; + SeekSpriteAnim(sprite, animPos); } } } -// file boundary? - -u8 GetDirectionToFace(s16 x1, s16 y1, s16 x2, s16 y2) +u8 GetDirectionToFace(s16 x, s16 y, s16 targetX, s16 targetY) { - if (x1 > x2) - { + if (x > targetX) return DIR_WEST; - } - if (x1 < x2) - { + + if (x < targetX) return DIR_EAST; - } - if (y1 > y2) - { + + if (y > targetY) return DIR_NORTH; - } + return DIR_SOUTH; } @@ -4711,7 +4695,7 @@ void SetTrainerMovementType(struct ObjectEvent *objectEvent, u8 movementType) objectEvent->directionSequenceIndex = 0; objectEvent->playerCopyableMovement = 0; gSprites[objectEvent->spriteId].callback = sMovementTypeCallbacks[movementType]; - gSprites[objectEvent->spriteId].data[1] = 0; + gSprites[objectEvent->spriteId].sTypeFuncId = 0; } u8 GetTrainerFacingDirectionMovementType(u8 direction) @@ -4721,10 +4705,8 @@ u8 GetTrainerFacingDirectionMovementType(u8 direction) static u8 GetCollisionInDirection(struct ObjectEvent *objectEvent, u8 direction) { - s16 x; - s16 y; - x = objectEvent->currentCoords.x; - y = objectEvent->currentCoords.y; + s16 x = objectEvent->currentCoords.x; + s16 y = objectEvent->currentCoords.y; MoveCoords(direction, &x, &y); return GetCollisionAtCoords(objectEvent, x, y, direction); } @@ -4771,19 +4753,17 @@ static bool8 IsCoordOutsideObjectEventMovementRange(struct ObjectEvent *objectEv { left = objectEvent->initialCoords.x - objectEvent->rangeX; right = objectEvent->initialCoords.x + objectEvent->rangeX; + if (left > x || right < x) - { return TRUE; - } } if (objectEvent->rangeY != 0) { top = objectEvent->initialCoords.y - objectEvent->rangeY; bottom = objectEvent->initialCoords.y + objectEvent->rangeY; + if (top > y || bottom < y) - { return TRUE; - } } return FALSE; } @@ -4825,7 +4805,7 @@ bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup) u8 objectEventId; if (!TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) - && gSprites[gObjectEvents[objectEventId].spriteId].data[7] & 2) + && gSprites[gObjectEvents[objectEventId].spriteId].sBerryTreeFlags & BERRY_FLAG_SPARKLING) { return TRUE; } @@ -4833,23 +4813,27 @@ bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup) return FALSE; } -void sub_8092EF0(u8 localId, u8 mapNum, u8 mapGroup) +void SetBerryTreeJustPicked(u8 localId, u8 mapNum, u8 mapGroup) { u8 objectEventId; if (!TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)) { - gSprites[gObjectEvents[objectEventId].spriteId].data[7] |= 0x04; + gSprites[gObjectEvents[objectEventId].spriteId].sBerryTreeFlags |= BERRY_FLAG_JUST_PICKED; } } +#undef sTimer +#undef sBerryTreeFlags + void MoveCoords(u8 direction, s16 *x, s16 *y) { *x += sDirectionToVectors[direction].x; *y += sDirectionToVectors[direction].y; } -void sub_8092F60(u8 direction, s16 *x, s16 *y) +// Unused +static void MoveCoordsInMapCoordIncrement(u8 direction, s16 *x, s16 *y) { *x += sDirectionToVectors[direction].x << 4; *y += sDirectionToVectors[direction].y << 4; @@ -4870,7 +4854,7 @@ static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 delta *y -= dy2; } -void sub_8092FF0(s16 x, s16 y, s16 *destX, s16 *destY) +void GetMapCoordsFromSpritePos(s16 x, s16 y, s16 *destX, s16 *destY) { *destX = (x - gSaveBlock1Ptr->pos.x) << 4; *destY = (y - gSaveBlock1Ptr->pos.y) << 4; @@ -4909,22 +4893,18 @@ static void GetObjectEventMovingCameraOffset(s16 *x, s16 *y) { *x = 0; *y = 0; + if (gFieldCamera.x > 0) - { (*x)++; - } + if (gFieldCamera.x < 0) - { - (*x) --; - } + (*x)--; + if (gFieldCamera.y > 0) - { (*y)++; - } + if (gFieldCamera.y < 0) - { - (*y) --; - } + (*y)--; } void ObjectEventMoveDestCoords(struct ObjectEvent *objectEvent, u32 direction, s16 *x, s16 *y) @@ -4960,7 +4940,7 @@ bool8 ObjectEventSetHeldMovement(struct ObjectEvent *objectEvent, u8 movementAct objectEvent->movementActionId = movementActionId; objectEvent->heldMovementActive = TRUE; objectEvent->heldMovementFinished = FALSE; - gSprites[objectEvent->spriteId].data[2] = 0; + gSprites[objectEvent->spriteId].sActionFuncId = 0; return FALSE; } @@ -4981,8 +4961,8 @@ void ObjectEventClearHeldMovement(struct ObjectEvent *objectEvent) objectEvent->movementActionId = 0xFF; objectEvent->heldMovementActive = FALSE; objectEvent->heldMovementFinished = FALSE; - gSprites[objectEvent->spriteId].data[1] = 0; - gSprites[objectEvent->spriteId].data[2] = 0; + gSprites[objectEvent->spriteId].sTypeFuncId = 0; + gSprites[objectEvent->spriteId].sActionFuncId = 0; } u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent) @@ -5007,7 +4987,7 @@ u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent) if (objectEvent->heldMovementActive) return objectEvent->movementActionId; - return 0xFF; + return MOVEMENT_ACTION_NONE; } void UpdateObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, bool8 (*callback)(struct ObjectEvent *, struct Sprite *)) @@ -5076,10 +5056,10 @@ dirn_to_anim(GetAcroEndWheelieMoveDirectionMovementAction, gAcroEndWheelieMoveDi u8 GetOppositeDirection(u8 direction) { - u8 directions[sizeof gOppositeDirections]; + u8 directions[sizeof sOppositeDirections]; - memcpy(directions, gOppositeDirections, sizeof gOppositeDirections); - if (direction < 1 || direction > (sizeof gOppositeDirections)) + memcpy(directions, sOppositeDirections, sizeof sOppositeDirections); + if (direction <= DIR_NONE || direction > (sizeof sOppositeDirections)) { return direction; } @@ -5109,7 +5089,7 @@ static u32 state_to_direction(u8 a0, u32 a1, u32 a2) static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) + if (gMovementActionFuncs[objectEvent->movementActionId][sprite->sActionFuncId](objectEvent, sprite)) { objectEvent->heldMovementFinished = TRUE; } @@ -5117,10 +5097,10 @@ static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, s static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) + if (gMovementActionFuncs[objectEvent->movementActionId][sprite->sActionFuncId](objectEvent, sprite)) { objectEvent->movementActionId = 0xFF; - sprite->data[2] = 0; + sprite->sActionFuncId = 0; return TRUE; } return FALSE; @@ -5129,16 +5109,16 @@ static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *objectEvent static void ObjectEventSetSingleMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animId) { objectEvent->movementActionId = animId; - sprite->data[2] = 0; + sprite->sActionFuncId = 0; } static void FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { SetObjectEventDirection(objectEvent, direction); ShiftStillObjectEventCoords(objectEvent); - obj_npc_animation_step(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); + SetStepAnim(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); sprite->animPaused = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; } bool8 MovementAction_FaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) @@ -5165,7 +5145,7 @@ bool8 MovementAction_FaceRight_Step0(struct ObjectEvent *objectEvent, struct Spr return TRUE; } -void npc_apply_direction(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) +void InitNpcForMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) { s16 x; s16 y; @@ -5175,34 +5155,34 @@ void npc_apply_direction(struct ObjectEvent *objectEvent, struct Sprite *sprite, SetObjectEventDirection(objectEvent, direction); MoveCoords(direction, &x, &y); ShiftObjectEventCoords(objectEvent, x, y); - oamt_npc_ministep_reset(sprite, direction, speed); + SetSpriteDataForNormalStep(sprite, direction, speed); sprite->animPaused = FALSE; - if (gLockedAnimObjectEvents != NULL && FindLockedObjectEventIndex(objectEvent) != OBJECT_EVENTS_COUNT) - { + + if (sLockedAnimObjectEvents != NULL && FindLockedObjectEventIndex(objectEvent) != OBJECT_EVENTS_COUNT) sprite->animPaused = TRUE; - } + objectEvent->triggerGroundEffectsOnMove = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; } -void do_go_anim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) +static void InitMovementNormal(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) { - u8 (*functions[ARRAY_COUNT(gUnknown_0850DEE8)])(u8); + u8 (*functions[ARRAY_COUNT(sDirectionAnimFuncsBySpeed)])(u8); - memcpy(functions, gUnknown_0850DEE8, sizeof gUnknown_0850DEE8); - npc_apply_direction(objectEvent, sprite, direction, speed); - npc_apply_anim_looping(objectEvent, sprite, functions[speed](objectEvent->facingDirection)); + memcpy(functions, sDirectionAnimFuncsBySpeed, sizeof sDirectionAnimFuncsBySpeed); + InitNpcForMovement(objectEvent, sprite, direction, speed); + SetStepAnimHandleAlternation(objectEvent, sprite, functions[speed](objectEvent->facingDirection)); } -void StartRunningAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) +static void StartRunningAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { - npc_apply_direction(objectEvent, sprite, direction, 1); - npc_apply_anim_looping(objectEvent, sprite, GetRunningDirectionAnimNum(objectEvent->facingDirection)); + InitNpcForMovement(objectEvent, sprite, direction, 1); + SetStepAnimHandleAlternation(objectEvent, sprite, GetRunningDirectionAnimNum(objectEvent->facingDirection)); } -bool8 npc_obj_ministep_stop_on_arrival(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 UpdateMovementNormal(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (obj_npc_ministep(sprite)) + if (NpcTakeStep(sprite)) { ShiftStillObjectEventCoords(objectEvent); objectEvent->triggerGroundEffectsOnStop = TRUE; @@ -5212,7 +5192,7 @@ bool8 npc_obj_ministep_stop_on_arrival(struct ObjectEvent *objectEvent, struct S return FALSE; } -void sub_8093AF0(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) +static void InitNpcForWalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { s16 x; s16 y; @@ -5222,21 +5202,21 @@ void sub_8093AF0(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 dire SetObjectEventDirection(objectEvent, direction); MoveCoords(direction, &x, &y); ShiftObjectEventCoords(objectEvent, x, y); - sub_80976DC(sprite, direction); + SetWalkSlowSpriteData(sprite, direction); sprite->animPaused = FALSE; objectEvent->triggerGroundEffectsOnMove = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; } -void sub_8093B60(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) +static void InitWalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { - sub_8093AF0(objectEvent, sprite, direction); - npc_apply_anim_looping(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); + InitNpcForWalkSlow(objectEvent, sprite, direction); + SetStepAnimHandleAlternation(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); } -bool8 an_walk_any_2(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 UpdateWalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80976EC(sprite)) + if (UpdateWalkSlowAnim(sprite)) { ShiftStillObjectEventCoords(objectEvent); objectEvent->triggerGroundEffectsOnStop = TRUE; @@ -5248,15 +5228,15 @@ bool8 an_walk_any_2(struct ObjectEvent *objectEvent, struct Sprite *sprite) bool8 MovementAction_WalkSlowDiagonalUpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_NORTHWEST); + InitWalkSlow(objectEvent, sprite, DIR_NORTHWEST); return MovementAction_WalkSlowDiagonalUpLeft_Step1(objectEvent, sprite); } bool8 MovementAction_WalkSlowDiagonalUpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5264,15 +5244,15 @@ bool8 MovementAction_WalkSlowDiagonalUpLeft_Step1(struct ObjectEvent *objectEven bool8 MovementAction_WalkSlowDiagonalUpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_NORTHEAST); + InitWalkSlow(objectEvent, sprite, DIR_NORTHEAST); return MovementAction_WalkSlowDiagonalUpRight_Step1(objectEvent, sprite); } bool8 MovementAction_WalkSlowDiagonalUpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5280,15 +5260,15 @@ bool8 MovementAction_WalkSlowDiagonalUpRight_Step1(struct ObjectEvent *objectEve bool8 MovementAction_WalkSlowDiagonalDownLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_SOUTHWEST); + InitWalkSlow(objectEvent, sprite, DIR_SOUTHWEST); return MovementAction_WalkSlowDiagonalDownLeft_Step1(objectEvent, sprite); } bool8 MovementAction_WalkSlowDiagonalDownLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5296,15 +5276,15 @@ bool8 MovementAction_WalkSlowDiagonalDownLeft_Step1(struct ObjectEvent *objectEv bool8 MovementAction_WalkSlowDiagonalDownRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_SOUTHEAST); + InitWalkSlow(objectEvent, sprite, DIR_SOUTHEAST); return MovementAction_WalkSlowDiagonalDownRight_Step1(objectEvent, sprite); } bool8 MovementAction_WalkSlowDiagonalDownRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5312,15 +5292,15 @@ bool8 MovementAction_WalkSlowDiagonalDownRight_Step1(struct ObjectEvent *objectE bool8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_SOUTH); + InitWalkSlow(objectEvent, sprite, DIR_SOUTH); return MovementAction_WalkSlowDown_Step1(objectEvent, sprite); } bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5328,15 +5308,15 @@ bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_NORTH); + InitWalkSlow(objectEvent, sprite, DIR_NORTH); return MovementAction_WalkSlowUp_Step1(objectEvent, sprite); } bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5344,15 +5324,15 @@ bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, struct Sp bool8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_WEST); + InitWalkSlow(objectEvent, sprite, DIR_WEST); return MovementAction_WalkSlowLeft_Step1(objectEvent, sprite); } bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5360,15 +5340,15 @@ bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_EAST); + InitWalkSlow(objectEvent, sprite, DIR_EAST); return MovementAction_WalkSlowRight_Step1(objectEvent, sprite); } bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5376,15 +5356,15 @@ bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkNormalDiagonalUpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_NORTHWEST, 0); + InitMovementNormal(objectEvent, sprite, DIR_NORTHWEST, 0); return MovementAction_WalkNormalDiagonalUpLeft_Step1(objectEvent, sprite); } bool8 MovementAction_WalkNormalDiagonalUpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5392,15 +5372,15 @@ bool8 MovementAction_WalkNormalDiagonalUpLeft_Step1(struct ObjectEvent *objectEv bool8 MovementAction_WalkNormalDiagonalUpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_NORTHEAST, 0); + InitMovementNormal(objectEvent, sprite, DIR_NORTHEAST, 0); return MovementAction_WalkNormalDiagonalUpRight_Step1(objectEvent, sprite); } bool8 MovementAction_WalkNormalDiagonalUpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5408,15 +5388,15 @@ bool8 MovementAction_WalkNormalDiagonalUpRight_Step1(struct ObjectEvent *objectE bool8 MovementAction_WalkNormalDiagonalDownLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_SOUTHWEST, 0); + InitMovementNormal(objectEvent, sprite, DIR_SOUTHWEST, 0); return MovementAction_WalkNormalDiagonalDownLeft_Step1(objectEvent, sprite); } bool8 MovementAction_WalkNormalDiagonalDownLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5424,15 +5404,15 @@ bool8 MovementAction_WalkNormalDiagonalDownLeft_Step1(struct ObjectEvent *object bool8 MovementAction_WalkNormalDiagonalDownRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_SOUTHEAST, 0); + InitMovementNormal(objectEvent, sprite, DIR_SOUTHEAST, 0); return MovementAction_WalkNormalDiagonalDownRight_Step1(objectEvent, sprite); } bool8 MovementAction_WalkNormalDiagonalDownRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5440,15 +5420,15 @@ bool8 MovementAction_WalkNormalDiagonalDownRight_Step1(struct ObjectEvent *objec bool8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_SOUTH, 0); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 0); return MovementAction_WalkNormalDown_Step1(objectEvent, sprite); } bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5456,15 +5436,15 @@ bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_NORTH, 0); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, 0); return MovementAction_WalkNormalUp_Step1(objectEvent, sprite); } bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5472,15 +5452,15 @@ bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_WEST, 0); + InitMovementNormal(objectEvent, sprite, DIR_WEST, 0); return MovementAction_WalkNormalLeft_Step1(objectEvent, sprite); } bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5488,65 +5468,74 @@ bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_EAST, 0); + InitMovementNormal(objectEvent, sprite, DIR_EAST, 0); return MovementAction_WalkNormalRight_Step1(objectEvent, sprite); } bool8 MovementAction_WalkNormalRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; } -void sub_8093FC4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a5) +#define JUMP_HALFWAY 1 +#define JUMP_FINISHED ((u8)-1) + +enum { + JUMP_TYPE_HIGH, + JUMP_TYPE_LOW, + JUMP_TYPE_NORMAL, +}; + +static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type) { - s16 displacements[ARRAY_COUNT(gUnknown_0850DFBC)]; + s16 displacements[ARRAY_COUNT(sJumpInitDisplacements)]; s16 x; s16 y; - memcpy(displacements, gUnknown_0850DFBC, sizeof gUnknown_0850DFBC); + memcpy(displacements, sJumpInitDisplacements, sizeof sJumpInitDisplacements); x = 0; y = 0; SetObjectEventDirection(objectEvent, direction); MoveCoordsInDirection(direction, &x, &y, displacements[speed], displacements[speed]); ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y); - sub_809783C(sprite, direction, speed, a5); - sprite->data[2] = 1; - sprite->animPaused = 0; - objectEvent->triggerGroundEffectsOnMove = 1; - objectEvent->disableCoveringGroundEffects = 1; + SetJumpSpriteData(sprite, direction, speed, type); + sprite->sActionFuncId = 1; + sprite->animPaused = FALSE; + objectEvent->triggerGroundEffectsOnMove = TRUE; + objectEvent->disableCoveringGroundEffects = TRUE; } -void maybe_shadow_1(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a4) +static void InitJumpRegular(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type) { - sub_8093FC4(objectEvent, sprite, direction, speed, a4); - npc_apply_anim_looping(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); + InitJump(objectEvent, sprite, direction, speed, type); + SetStepAnimHandleAlternation(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); DoShadowFieldEffect(objectEvent); } -u8 sub_80940C4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *)) +static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *)) { - s16 displacements[ARRAY_COUNT(gUnknown_0850DFC2)]; + s16 displacements[ARRAY_COUNT(sJumpDisplacements)]; s16 x; s16 y; u8 result; - memcpy(displacements, gUnknown_0850DFC2, sizeof gUnknown_0850DFC2); + memcpy(displacements, sJumpDisplacements, sizeof sJumpDisplacements); result = callback(sprite); - if (result == 1 && displacements[sprite->data[4]] != 0) + if (result == JUMP_HALFWAY && displacements[sprite->sSpeed] != 0) { x = 0; y = 0; - MoveCoordsInDirection(objectEvent->movementDirection, &x, &y, displacements[sprite->data[4]], displacements[sprite->data[4]]); + MoveCoordsInDirection(objectEvent->movementDirection, &x, &y, displacements[sprite->sSpeed], displacements[sprite->sSpeed]); ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y); objectEvent->triggerGroundEffectsOnMove = TRUE; objectEvent->disableCoveringGroundEffects = TRUE; } - else if (result == 0xFF) + else if (result == JUMP_FINISHED) { ShiftStillObjectEventCoords(objectEvent); objectEvent->triggerGroundEffectsOnStop = TRUE; @@ -5556,43 +5545,41 @@ u8 sub_80940C4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callba return result; } -u8 sub_8094188(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static u8 DoJumpAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return sub_80940C4(objectEvent, sprite, sub_809785C); + return UpdateJumpAnim(objectEvent, sprite, DoJumpSpriteMovement); } -u8 sub_809419C(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static u8 DoJumpSpecialAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return sub_80940C4(objectEvent, sprite, sub_80978E4); + return UpdateJumpAnim(objectEvent, sprite, DoJumpSpecialSpriteMovement); } -bool8 sub_80941B0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 DoJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_8094188(objectEvent, sprite) == 0xFF) - { + if (DoJumpAnimStep(objectEvent, sprite) == JUMP_FINISHED) return TRUE; - } + return FALSE; } -bool8 sub_80941C8(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 DoJumpSpecialAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_809419C(objectEvent, sprite) == 0xFF) - { + if (DoJumpSpecialAnimStep(objectEvent, sprite) == JUMP_FINISHED) return TRUE; - } + return FALSE; } -bool8 sub_80941E0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 DoJumpInPlaceAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - switch (sub_8094188(objectEvent, sprite)) + switch (DoJumpAnimStep(objectEvent, sprite)) { - case 255: + case JUMP_FINISHED: return TRUE; - case 1: + case JUMP_HALFWAY: SetObjectEventDirection(objectEvent, GetOppositeDirection(objectEvent->movementDirection)); - obj_npc_animation_step(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); + SetStepAnim(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); default: return FALSE; } @@ -5600,16 +5587,16 @@ bool8 sub_80941E0(struct ObjectEvent *objectEvent, struct Sprite *sprite) bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_SOUTH, 2, 0); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 2, JUMP_TYPE_HIGH); return MovementAction_Jump2Down_Step1(objectEvent, sprite); } bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5617,16 +5604,16 @@ bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_NORTH, 2, 0); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, 2, JUMP_TYPE_HIGH); return MovementAction_Jump2Up_Step1(objectEvent, sprite); } bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5634,16 +5621,16 @@ bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struct Sprit bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_WEST, 2, 0); + InitJumpRegular(objectEvent, sprite, DIR_WEST, 2, JUMP_TYPE_HIGH); return MovementAction_Jump2Left_Step1(objectEvent, sprite); } bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5651,33 +5638,32 @@ bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_EAST, 2, 0); + InitJumpRegular(objectEvent, sprite, DIR_EAST, 2, JUMP_TYPE_HIGH); return MovementAction_Jump2Right_Step1(objectEvent, sprite); } bool8 MovementAction_Jump2Right_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; } - -void sub_8094390(struct Sprite *sprite, u16 duration) +static void InitMovementDelay(struct Sprite *sprite, u16 duration) { - sprite->data[2] = 1; + sprite->sActionFuncId = 1; sprite->data[3] = duration; } bool8 MovementAction_Delay_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (-- sprite->data[3] == 0) + if (--sprite->data[3] == 0) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5685,45 +5671,45 @@ bool8 MovementAction_Delay_Step1(struct ObjectEvent *objectEvent, struct Sprite bool8 MovementAction_Delay1_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094390(sprite, 1); + InitMovementDelay(sprite, 1); return MovementAction_Delay_Step1(objectEvent, sprite); } bool8 MovementAction_Delay2_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094390(sprite, 2); + InitMovementDelay(sprite, 2); return MovementAction_Delay_Step1(objectEvent, sprite); } bool8 MovementAction_Delay4_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094390(sprite, 4); + InitMovementDelay(sprite, 4); return MovementAction_Delay_Step1(objectEvent, sprite); } bool8 MovementAction_Delay8_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094390(sprite, 8); + InitMovementDelay(sprite, 8); return MovementAction_Delay_Step1(objectEvent, sprite); } bool8 MovementAction_Delay16_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094390(sprite, 16); + InitMovementDelay(sprite, 16); return MovementAction_Delay_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_SOUTH, 1); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 1); return MovementAction_WalkFastDown_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5731,15 +5717,15 @@ bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_NORTH, 1); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, 1); return MovementAction_WalkFastUp_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5747,15 +5733,15 @@ bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, struct Sp bool8 MovementAction_WalkFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_WEST, 1); + InitMovementNormal(objectEvent, sprite, DIR_WEST, 1); return MovementAction_WalkFastLeft_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5763,27 +5749,27 @@ bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_EAST, 1); + InitMovementNormal(objectEvent, sprite, DIR_EAST, 1); return MovementAction_WalkFastRight_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; } -void sub_8094554(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 animNum, u16 duration) +static void InitMoveInPlace(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 animNum, u16 duration) { SetObjectEventDirection(objectEvent, direction); - npc_apply_anim_looping(objectEvent, sprite, animNum); + SetStepAnimHandleAlternation(objectEvent, sprite, animNum); sprite->animPaused = FALSE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; sprite->data[3] = duration; } @@ -5791,7 +5777,7 @@ bool8 MovementAction_WalkInPlace_Step1(struct ObjectEvent *objectEvent, struct S { if (-- sprite->data[3] == 0) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; sprite->animPaused = TRUE; return TRUE; } @@ -5809,111 +5795,111 @@ bool8 MovementAction_WalkInPlaceSlow_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 32); + InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 32); return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 32); + InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 32); return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 32); + InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 32); return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 32); + InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 32); return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 16); + InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 16); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 16); + InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 16); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 16); + InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 16); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 16); + InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 16); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFastAnimNum(DIR_SOUTH), 8); + InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFastAnimNum(DIR_SOUTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFastAnimNum(DIR_NORTH), 8); + InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFastAnimNum(DIR_NORTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_WEST, GetMoveDirectionFastAnimNum(DIR_WEST), 8); + InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionFastAnimNum(DIR_WEST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_EAST, GetMoveDirectionFastAnimNum(DIR_EAST), 8); + InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionFastAnimNum(DIR_EAST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceFastestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFasterAnimNum(DIR_SOUTH), 4); + InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFasterAnimNum(DIR_SOUTH), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceFastestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFasterAnimNum(DIR_NORTH), 4); + InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFasterAnimNum(DIR_NORTH), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceFastestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_WEST, GetMoveDirectionFasterAnimNum(DIR_WEST), 4); + InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionFasterAnimNum(DIR_WEST), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_WalkInPlaceFastestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_EAST, GetMoveDirectionFasterAnimNum(DIR_EAST), 4); + InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionFasterAnimNum(DIR_EAST), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_RideWaterCurrentDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_SOUTH, 2); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 2); return MovementAction_RideWaterCurrentDown_Step1(objectEvent, sprite); } bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5921,15 +5907,15 @@ bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_RideWaterCurrentUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_NORTH, 2); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, 2); return MovementAction_RideWaterCurrentUp_Step1(objectEvent, sprite); } bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5937,15 +5923,15 @@ bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *objectEvent, s bool8 MovementAction_RideWaterCurrentLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_WEST, 2); + InitMovementNormal(objectEvent, sprite, DIR_WEST, 2); return MovementAction_RideWaterCurrentLeft_Step1(objectEvent, sprite); } bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5953,15 +5939,15 @@ bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_RideWaterCurrentRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_EAST, 2); + InitMovementNormal(objectEvent, sprite, DIR_EAST, 2); return MovementAction_RideWaterCurrentRight_Step1(objectEvent, sprite); } bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5969,15 +5955,15 @@ bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *objectEvent bool8 MovementAction_WalkFastestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_SOUTH, 3); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 3); return MovementAction_WalkFastestDown_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastestDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -5985,15 +5971,15 @@ bool8 MovementAction_WalkFastestDown_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_WalkFastestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_NORTH, 3); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, 3); return MovementAction_WalkFastestUp_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastestUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6001,15 +5987,15 @@ bool8 MovementAction_WalkFastestUp_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkFastestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_WEST, 3); + InitMovementNormal(objectEvent, sprite, DIR_WEST, 3); return MovementAction_WalkFastestLeft_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastestLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6017,15 +6003,15 @@ bool8 MovementAction_WalkFastestLeft_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_WalkFastestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_EAST, 3); + InitMovementNormal(objectEvent, sprite, DIR_EAST, 3); return MovementAction_WalkFastestRight_Step1(objectEvent, sprite); } bool8 MovementAction_WalkFastestRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6033,15 +6019,15 @@ bool8 MovementAction_WalkFastestRight_Step1(struct ObjectEvent *objectEvent, str bool8 MovementAction_SlideDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_SOUTH, 4); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 4); return MovementAction_SlideDown_Step1(objectEvent, sprite); } bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6049,15 +6035,15 @@ bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_SlideUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_NORTH, 4); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, 4); return MovementAction_SlideUp_Step1(objectEvent, sprite); } bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6065,15 +6051,15 @@ bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprit bool8 MovementAction_SlideLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_WEST, 4); + InitMovementNormal(objectEvent, sprite, DIR_WEST, 4); return MovementAction_SlideLeft_Step1(objectEvent, sprite); } bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6081,15 +6067,15 @@ bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_SlideRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_EAST, 4); + InitMovementNormal(objectEvent, sprite, DIR_EAST, 4); return MovementAction_SlideRight_Step1(objectEvent, sprite); } bool8 MovementAction_SlideRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6103,9 +6089,9 @@ bool8 MovementAction_PlayerRunDown_Step0(struct ObjectEvent *objectEvent, struct bool8 MovementAction_PlayerRunDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6119,9 +6105,9 @@ bool8 MovementAction_PlayerRunUp_Step0(struct ObjectEvent *objectEvent, struct S bool8 MovementAction_PlayerRunUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6135,9 +6121,9 @@ bool8 MovementAction_PlayerRunLeft_Step0(struct ObjectEvent *objectEvent, struct bool8 MovementAction_PlayerRunLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6151,9 +6137,9 @@ bool8 MovementAction_PlayerRunRight_Step0(struct ObjectEvent *objectEvent, struc bool8 MovementAction_PlayerRunRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6163,7 +6149,7 @@ void StartSpriteAnimInDirection(struct ObjectEvent *objectEvent, struct Sprite * { SetAndStartSpriteAnim(sprite, animNum, 0); SetObjectEventDirection(objectEvent, direction); - sprite->data[2] = 1; + sprite->sActionFuncId = 1; } bool8 MovementAction_StartAnimInDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) @@ -6176,29 +6162,29 @@ bool8 MovementAction_WaitSpriteAnim(struct ObjectEvent *objectEvent, struct Spri { if (SpriteAnimEnded(sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; } -void sub_8094DE4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) +static void InitJumpSpecial(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { - sub_8093FC4(objectEvent, sprite, direction, 1, 0); + InitJump(objectEvent, sprite, direction, 1, JUMP_TYPE_HIGH); StartSpriteAnim(sprite, GetJumpSpecialDirectionAnimNum(direction)); } bool8 MovementAction_JumpSpecialDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094DE4(objectEvent, sprite, DIR_SOUTH); + InitJumpSpecial(objectEvent, sprite, DIR_SOUTH); return MovementAction_JumpSpecialDown_Step1(objectEvent, sprite); } bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941C8(objectEvent, sprite)) + if (DoJumpSpecialAnim(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; objectEvent->landingJump = FALSE; return TRUE; } @@ -6207,15 +6193,15 @@ bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_JumpSpecialUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094DE4(objectEvent, sprite, DIR_NORTH); + InitJumpSpecial(objectEvent, sprite, DIR_NORTH); return MovementAction_JumpSpecialUp_Step1(objectEvent, sprite); } bool8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941C8(objectEvent, sprite)) + if (DoJumpSpecialAnim(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; objectEvent->landingJump = FALSE; return TRUE; } @@ -6224,15 +6210,15 @@ bool8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_JumpSpecialLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094DE4(objectEvent, sprite, DIR_WEST); + InitJumpSpecial(objectEvent, sprite, DIR_WEST); return MovementAction_JumpSpecialLeft_Step1(objectEvent, sprite); } bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941C8(objectEvent, sprite)) + if (DoJumpSpecialAnim(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; objectEvent->landingJump = FALSE; return TRUE; } @@ -6241,15 +6227,15 @@ bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_JumpSpecialRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094DE4(objectEvent, sprite, DIR_EAST); + InitJumpSpecial(objectEvent, sprite, DIR_EAST); return MovementAction_JumpSpecialRight_Step1(objectEvent, sprite); } bool8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941C8(objectEvent, sprite)) + if (DoJumpSpecialAnim(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; objectEvent->landingJump = FALSE; return TRUE; } @@ -6264,7 +6250,7 @@ bool8 MovementAction_FacePlayer_Step0(struct ObjectEvent *objectEvent, struct Sp { FaceDirection(objectEvent, sprite, GetDirectionToFace(objectEvent->currentCoords.x, objectEvent->currentCoords.y, gObjectEvents[playerObjectId].currentCoords.x, gObjectEvents[playerObjectId].currentCoords.y)); } - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } @@ -6276,36 +6262,36 @@ bool8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *objectEvent, struc { FaceDirection(objectEvent, sprite, GetOppositeDirection(GetDirectionToFace(objectEvent->currentCoords.x, objectEvent->currentCoords.y, gObjectEvents[playerObjectId].currentCoords.x, gObjectEvents[playerObjectId].currentCoords.y))); } - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_LockFacingDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->facingDirectionLocked = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->facingDirectionLocked = FALSE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_JumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_SOUTH, 1, 2); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 1, JUMP_TYPE_NORMAL); return MovementAction_JumpDown_Step1(objectEvent, sprite); } bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6313,16 +6299,16 @@ bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, struct Spri bool8 MovementAction_JumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_NORTH, 1, 2); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, 1, JUMP_TYPE_NORMAL); return MovementAction_JumpUp_Step1(objectEvent, sprite); } bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6330,16 +6316,16 @@ bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite bool8 MovementAction_JumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_WEST, 1, 2); + InitJumpRegular(objectEvent, sprite, DIR_WEST, 1, JUMP_TYPE_NORMAL); return MovementAction_JumpLeft_Step1(objectEvent, sprite); } bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6347,16 +6333,16 @@ bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, struct Spri bool8 MovementAction_JumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_EAST, 1, 2); + InitJumpRegular(objectEvent, sprite, DIR_EAST, 1, JUMP_TYPE_NORMAL); return MovementAction_JumpRight_Step1(objectEvent, sprite); } bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6364,16 +6350,16 @@ bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_JumpInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_SOUTH, 0, 0); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceDown_Step1(objectEvent, sprite); } bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6381,16 +6367,16 @@ bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_JumpInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_NORTH, 0, 0); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceUp_Step1(objectEvent, sprite); } bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6398,16 +6384,16 @@ bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_JumpInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_WEST, 0, 0); + InitJumpRegular(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceLeft_Step1(objectEvent, sprite); } bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6415,16 +6401,16 @@ bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_JumpInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_EAST, 0, 0); + InitJumpRegular(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceRight_Step1(objectEvent, sprite); } bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6432,16 +6418,16 @@ bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEvent, str bool8 MovementAction_JumpInPlaceDownUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_SOUTH, 0, 2); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceDownUp_Step1(objectEvent, sprite); } bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941E0(objectEvent, sprite)) + if (DoJumpInPlaceAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6449,16 +6435,16 @@ bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEvent, st bool8 MovementAction_JumpInPlaceUpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_NORTH, 0, 2); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceUpDown_Step1(objectEvent, sprite); } bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941E0(objectEvent, sprite)) + if (DoJumpInPlaceAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6466,16 +6452,16 @@ bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEvent, st bool8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_WEST, 0, 2); + InitJumpRegular(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceLeftRight_Step1(objectEvent, sprite); } bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941E0(objectEvent, sprite)) + if (DoJumpInPlaceAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6483,16 +6469,16 @@ bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - maybe_shadow_1(objectEvent, sprite, DIR_EAST, 0, 2); + InitJumpRegular(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceRightLeft_Step1(objectEvent, sprite); } bool8 MovementAction_JumpInPlaceRightLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941E0(objectEvent, sprite)) + if (DoJumpInPlaceAnim(objectEvent, sprite)) { objectEvent->hasShadow = 0; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6513,42 +6499,42 @@ bool8 MovementAction_NurseJoyBowDown_Step0(struct ObjectEvent *objectEvent, stru bool8 MovementAction_EnableJumpLandingGroundEffect_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->disableJumpLandingGroundEffect = FALSE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_DisableJumpLandingGroundEffect_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->disableJumpLandingGroundEffect = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_DisableAnimation_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->inanimate = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_RestoreAnimation_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->inanimate = GetObjectEventGraphicsInfo(objectEvent->graphicsId)->inanimate; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_SetInvisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->invisible = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_SetVisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->invisible = FALSE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } @@ -6556,7 +6542,7 @@ bool8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *objectEvent, { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON); - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } @@ -6564,7 +6550,7 @@ bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *objectEvent, st { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_QUESTION_MARK_ICON); - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } @@ -6572,32 +6558,32 @@ bool8 MovementAction_EmoteHeart_Step0(struct ObjectEvent *objectEvent, struct Sp { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_HEART_ICON); - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (objectEvent->movementType == MOVEMENT_TYPE_HIDDEN) + if (objectEvent->movementType == MOVEMENT_TYPE_BURIED) { - sub_80B4578(objectEvent); + SetBuriedTrainerMovement(objectEvent); return FALSE; } if (objectEvent->movementType != MOVEMENT_TYPE_TREE_DISGUISE && objectEvent->movementType != MOVEMENT_TYPE_MOUNTAIN_DISGUISE) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } - sub_8155D78(objectEvent); - sprite->data[2] = 1; + StartRevealDisguise(objectEvent); + sprite->sActionFuncId = 1; return MovementAction_RevealTrainer_Step1(objectEvent, sprite); } bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_8155DA0(objectEvent)) + if (UpdateRevealDisguise(objectEvent)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6606,7 +6592,7 @@ bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_RockSmashBreak_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { SetAndStartSpriteAnim(sprite, 1, 0); - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return FALSE; } @@ -6615,7 +6601,7 @@ bool8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *objectEvent, struc if (SpriteAnimEnded(sprite)) { SetMovementDelay(sprite, 32); - sprite->data[2] = 2; + sprite->sActionFuncId = 2; } return FALSE; } @@ -6626,7 +6612,7 @@ bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *objectEvent, struc if (WaitForMovementDelay(sprite)) { objectEvent->invisible = TRUE; - sprite->data[2] = 3; + sprite->sActionFuncId = 3; } return FALSE; } @@ -6634,7 +6620,7 @@ bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *objectEvent, struc bool8 MovementAction_CutTree_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { SetAndStartSpriteAnim(sprite, 1, 0); - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return FALSE; } @@ -6643,7 +6629,7 @@ bool8 MovementAction_CutTree_Step1(struct ObjectEvent *objectEvent, struct Sprit if (SpriteAnimEnded(sprite)) { SetMovementDelay(sprite, 32); - sprite->data[2] = 2; + sprite->sActionFuncId = 2; } return FALSE; } @@ -6654,7 +6640,7 @@ bool8 MovementAction_CutTree_Step2(struct ObjectEvent *objectEvent, struct Sprit if (WaitForMovementDelay(sprite)) { objectEvent->invisible = TRUE; - sprite->data[2] = 3; + sprite->sActionFuncId = 3; } return FALSE; } @@ -6662,14 +6648,14 @@ bool8 MovementAction_CutTree_Step2(struct ObjectEvent *objectEvent, struct Sprit bool8 MovementAction_SetFixedPriority_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->fixedPriority = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_ClearFixedPriority_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->fixedPriority = FALSE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } @@ -6704,7 +6690,7 @@ bool8 MovementAction_ShowReflection_Step0(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_SOUTH); + InitWalkSlow(objectEvent, sprite, DIR_SOUTH); sprite->affineAnimPaused = FALSE; StartSpriteAffineAnimIfDifferent(sprite, 0); return MovementAction_WalkDownStartAffine_Step1(objectEvent, sprite); @@ -6712,10 +6698,10 @@ bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *objectEvent, bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { sprite->affineAnimPaused = TRUE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6723,7 +6709,7 @@ bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8093B60(objectEvent, sprite, DIR_SOUTH); + InitWalkSlow(objectEvent, sprite, DIR_SOUTH); sprite->affineAnimPaused = FALSE; ChangeSpriteAffineAnimIfDifferent(sprite, 1); return MovementAction_WalkDownAffine_Step1(objectEvent, sprite); @@ -6731,10 +6717,10 @@ bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (an_walk_any_2(objectEvent, sprite)) + if (UpdateWalkSlow(objectEvent, sprite)) { sprite->affineAnimPaused = TRUE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6742,7 +6728,7 @@ bool8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkLeftAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_WEST, 1); + InitMovementNormal(objectEvent, sprite, DIR_WEST, 1); sprite->affineAnimPaused = FALSE; ChangeSpriteAffineAnimIfDifferent(sprite, 2); return MovementAction_WalkLeftAffine_Step1(objectEvent, sprite); @@ -6750,10 +6736,10 @@ bool8 MovementAction_WalkLeftAffine_Step0(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkLeftAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { sprite->affineAnimPaused = TRUE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6761,7 +6747,7 @@ bool8 MovementAction_WalkLeftAffine_Step1(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkRightAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - do_go_anim(objectEvent, sprite, DIR_EAST, 1); + InitMovementNormal(objectEvent, sprite, DIR_EAST, 1); sprite->affineAnimPaused = FALSE; ChangeSpriteAffineAnimIfDifferent(sprite, 3); return MovementAction_WalkRightAffine_Step1(objectEvent, sprite); @@ -6769,45 +6755,45 @@ bool8 MovementAction_WalkRightAffine_Step0(struct ObjectEvent *objectEvent, stru bool8 MovementAction_WalkRightAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { sprite->affineAnimPaused = TRUE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; } -static void sub_80958C0(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) +static void AcroWheelieFaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { SetObjectEventDirection(objectEvent, direction); ShiftStillObjectEventCoords(objectEvent); - obj_npc_animation_step(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(direction)); + SetStepAnim(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(direction)); sprite->animPaused = TRUE; - sprite->data[2] = 1; + sprite->sActionFuncId = 1; } bool8 MovementAction_AcroWheelieFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_80958C0(objectEvent, sprite, DIR_SOUTH); + AcroWheelieFaceDirection(objectEvent, sprite, DIR_SOUTH); return TRUE; } bool8 MovementAction_AcroWheelieFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_80958C0(objectEvent, sprite, DIR_NORTH); + AcroWheelieFaceDirection(objectEvent, sprite, DIR_NORTH); return TRUE; } bool8 MovementAction_AcroWheelieFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_80958C0(objectEvent, sprite, DIR_WEST); + AcroWheelieFaceDirection(objectEvent, sprite, DIR_WEST); return TRUE; } bool8 MovementAction_AcroWheelieFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_80958C0(objectEvent, sprite, DIR_EAST); + AcroWheelieFaceDirection(objectEvent, sprite, DIR_EAST); return TRUE; } @@ -6904,7 +6890,7 @@ bool8 DoFigure8Anim(struct ObjectEvent *objectEvent, struct Sprite *sprite) bool8 MovementAction_Figure8_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitFigure8Anim(objectEvent, sprite); - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return MovementAction_Figure8_Step1(objectEvent, sprite); } @@ -6912,31 +6898,31 @@ bool8 MovementAction_Figure8_Step1(struct ObjectEvent *objectEvent, struct Sprit { if (DoFigure8Anim(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; } -void sub_8095B84(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a4) +static void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type) { - sub_8093FC4(objectEvent, sprite, direction, speed, a4); + InitJump(objectEvent, sprite, direction, speed, type); StartSpriteAnimIfDifferent(sprite, GetAcroWheelieDirectionAnimNum(direction)); DoShadowFieldEffect(objectEvent); } bool8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_SOUTH, 0, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceDown_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6944,16 +6930,16 @@ bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *objectEven bool8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_NORTH, 0, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceUp_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6961,16 +6947,16 @@ bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieHopFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_WEST, 0, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceLeft_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6978,16 +6964,16 @@ bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *objectEven bool8 MovementAction_AcroWheelieHopFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_EAST, 0, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceRight_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -6995,16 +6981,16 @@ bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *objectEve bool8 MovementAction_AcroWheelieHopDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_SOUTH, 1, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 1, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopDown_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7012,16 +6998,16 @@ bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectEvent, s bool8 MovementAction_AcroWheelieHopUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_NORTH, 1, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 1, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopUp_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7029,16 +7015,16 @@ bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEvent, str bool8 MovementAction_AcroWheelieHopLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_WEST, 1, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 1, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopLeft_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7046,16 +7032,16 @@ bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectEvent, s bool8 MovementAction_AcroWheelieHopRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_EAST, 1, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 1, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopRight_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7063,16 +7049,16 @@ bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieJumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_SOUTH, 2, 0); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 2, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpDown_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7080,16 +7066,16 @@ bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieJumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_NORTH, 2, 0); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 2, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpUp_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7097,16 +7083,16 @@ bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEvent, st bool8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_WEST, 2, 0); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 2, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpLeft_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7114,16 +7100,16 @@ bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095B84(objectEvent, sprite, DIR_EAST, 2, 0); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 2, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpRight_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_80941B0(objectEvent, sprite)) + if (DoJumpAnim(objectEvent, sprite)) { objectEvent->hasShadow = FALSE; - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7131,46 +7117,46 @@ bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_SOUTH, GetAcroWheeliePedalDirectionAnimNum(DIR_SOUTH), 8); + InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetAcroWheeliePedalDirectionAnimNum(DIR_SOUTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_NORTH, GetAcroWheeliePedalDirectionAnimNum(DIR_NORTH), 8); + InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetAcroWheeliePedalDirectionAnimNum(DIR_NORTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_WEST, GetAcroWheeliePedalDirectionAnimNum(DIR_WEST), 8); + InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetAcroWheeliePedalDirectionAnimNum(DIR_WEST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8094554(objectEvent, sprite, DIR_EAST, GetAcroWheeliePedalDirectionAnimNum(DIR_EAST), 8); + InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetAcroWheeliePedalDirectionAnimNum(DIR_EAST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -void sub_80960C8(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) +static void InitAcroPopWheelie(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) { - npc_apply_direction(objectEvent, sprite, direction, speed); + InitNpcForMovement(objectEvent, sprite, direction, speed); StartSpriteAnim(sprite, GetAcroWheelieDirectionAnimNum(objectEvent->facingDirection)); SeekSpriteAnim(sprite, 0); } bool8 MovementAction_AcroPopWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_80960C8(objectEvent, sprite, DIR_SOUTH, 1); + InitAcroPopWheelie(objectEvent, sprite, DIR_SOUTH, 1); return MovementAction_AcroPopWheelieMoveDown_Step1(objectEvent, sprite); } bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7178,15 +7164,15 @@ bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *objectEven bool8 MovementAction_AcroPopWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_80960C8(objectEvent, sprite, DIR_NORTH, 1); + InitAcroPopWheelie(objectEvent, sprite, DIR_NORTH, 1); return MovementAction_AcroPopWheelieMoveUp_Step1(objectEvent, sprite); } bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7194,15 +7180,15 @@ bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroPopWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_80960C8(objectEvent, sprite, DIR_WEST, 1); + InitAcroPopWheelie(objectEvent, sprite, DIR_WEST, 1); return MovementAction_AcroPopWheelieMoveLeft_Step1(objectEvent, sprite); } bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7210,37 +7196,37 @@ bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *objectEven bool8 MovementAction_AcroPopWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_80960C8(objectEvent, sprite, DIR_EAST, 1); + InitAcroPopWheelie(objectEvent, sprite, DIR_EAST, 1); return MovementAction_AcroPopWheelieMoveRight_Step1(objectEvent, sprite); } bool8 MovementAction_AcroPopWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; } -void sub_8096200(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) +static void InitAcroWheelieMove(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) { - npc_apply_direction(objectEvent, sprite, direction, speed); - npc_apply_anim_looping(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(objectEvent->facingDirection)); + InitNpcForMovement(objectEvent, sprite, direction, speed); + SetStepAnimHandleAlternation(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(objectEvent->facingDirection)); } bool8 MovementAction_AcroWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096200(objectEvent, sprite, DIR_SOUTH, 1); + InitAcroWheelieMove(objectEvent, sprite, DIR_SOUTH, 1); return MovementAction_AcroWheelieMoveDown_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7248,15 +7234,15 @@ bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096200(objectEvent, sprite, DIR_NORTH, 1); + InitAcroWheelieMove(objectEvent, sprite, DIR_NORTH, 1); return MovementAction_AcroWheelieMoveUp_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7264,15 +7250,15 @@ bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, st bool8 MovementAction_AcroWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096200(objectEvent, sprite, DIR_WEST, 1); + InitAcroWheelieMove(objectEvent, sprite, DIR_WEST, 1); return MovementAction_AcroWheelieMoveLeft_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7280,38 +7266,38 @@ bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096200(objectEvent, sprite, DIR_EAST, 1); + InitAcroWheelieMove(objectEvent, sprite, DIR_EAST, 1); return MovementAction_AcroWheelieMoveRight_Step1(objectEvent, sprite); } bool8 MovementAction_AcroWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; } -void sub_8096330(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) +static void InitAcroEndWheelie(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) { - npc_apply_direction(objectEvent, sprite, direction, speed); + InitNpcForMovement(objectEvent, sprite, direction, speed); StartSpriteAnim(sprite, GetAcroEndWheelieDirectionAnimNum(objectEvent->facingDirection)); SeekSpriteAnim(sprite, 0); } bool8 MovementAction_AcroEndWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096330(objectEvent, sprite, DIR_SOUTH, 1); + InitAcroEndWheelie(objectEvent, sprite, DIR_SOUTH, 1); return MovementAction_AcroEndWheelieMoveDown_Step1(objectEvent, sprite); } bool8 MovementAction_AcroEndWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7319,15 +7305,15 @@ bool8 MovementAction_AcroEndWheelieMoveDown_Step1(struct ObjectEvent *objectEven bool8 MovementAction_AcroEndWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096330(objectEvent, sprite, DIR_NORTH, 1); + InitAcroEndWheelie(objectEvent, sprite, DIR_NORTH, 1); return MovementAction_AcroEndWheelieMoveUp_Step1(objectEvent, sprite); } bool8 MovementAction_AcroEndWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7335,15 +7321,15 @@ bool8 MovementAction_AcroEndWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroEndWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096330(objectEvent, sprite, DIR_WEST, 1); + InitAcroEndWheelie(objectEvent, sprite, DIR_WEST, 1); return MovementAction_AcroEndWheelieMoveLeft_Step1(objectEvent, sprite); } bool8 MovementAction_AcroEndWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7351,15 +7337,15 @@ bool8 MovementAction_AcroEndWheelieMoveLeft_Step1(struct ObjectEvent *objectEven bool8 MovementAction_AcroEndWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096330(objectEvent, sprite, DIR_EAST, 1); + InitAcroEndWheelie(objectEvent, sprite, DIR_EAST, 1); return MovementAction_AcroEndWheelieMoveRight_Step1(objectEvent, sprite); } bool8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite)) + if (UpdateMovementNormal(objectEvent, sprite)) { - sprite->data[2] = 2; + sprite->sActionFuncId = 2; return TRUE; } return FALSE; @@ -7368,24 +7354,24 @@ bool8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *objectEve bool8 MovementAction_Levitate_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { CreateLevitateMovementTask(objectEvent); - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } bool8 MovementAction_StopLevitate_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - DestroyExtraMovementTask(objectEvent->warpArrowSpriteId); - sprite->pos2.y = 0; - sprite->data[2] = 1; + DestroyLevitateMovementTask(objectEvent->warpArrowSpriteId); + sprite->y2 = 0; + sprite->sActionFuncId = 1; return TRUE; } -bool8 MovementAction_DestroyExtraTaskIfAtTop_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_StopLevitateAtTop_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sprite->pos2.y == 0) + if (sprite->y2 == 0) { - DestroyExtraMovementTask(objectEvent->warpArrowSpriteId); - sprite->data[2] = 1; + DestroyLevitateMovementTask(objectEvent->warpArrowSpriteId); + sprite->sActionFuncId = 1; return TRUE; } return FALSE; @@ -7422,49 +7408,46 @@ static void TryEnableObjectEventAnim(struct ObjectEvent *objectEvent, struct Spr static void UpdateObjectEventVisibility(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8096530(objectEvent, sprite); - UpdateObjEventSpriteVisibility(objectEvent, sprite); + UpdateObjectEventOffscreen(objectEvent, sprite); + UpdateObjectEventSpriteVisibility(objectEvent, sprite); } -static void sub_8096530(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static void UpdateObjectEventOffscreen(struct ObjectEvent *objectEvent, struct Sprite *sprite) { u16 x, y; u16 x2, y2; const struct ObjectEventGraphicsInfo *graphicsInfo; objectEvent->offScreen = FALSE; + graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); if (sprite->coordOffsetEnabled) { - x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; - y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY; + x = sprite->x + sprite->x2 + sprite->centerToCornerVecX + gSpriteCoordOffsetX; + y = sprite->y + sprite->y2 + sprite->centerToCornerVecY + gSpriteCoordOffsetY; } else { - x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; - y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + x = sprite->x + sprite->x2 + sprite->centerToCornerVecX; + y = sprite->y + sprite->y2 + sprite->centerToCornerVecY; } x2 = graphicsInfo->width; x2 += x; y2 = y; y2 += graphicsInfo->height; - if ((s16)x >= 0x100 || (s16)x2 < -0x10) - { + + if ((s16)x >= DISPLAY_WIDTH + 16 || (s16)x2 < -16) objectEvent->offScreen = TRUE; - } - if ((s16)y >= 0xB0 || (s16)y2 < -0x10) - { + + if ((s16)y >= DISPLAY_HEIGHT + 16 || (s16)y2 < -16) objectEvent->offScreen = TRUE; - } } -static void UpdateObjEventSpriteVisibility(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static void UpdateObjectEventSpriteVisibility(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->invisible = FALSE; if (objectEvent->invisible || objectEvent->offScreen) - { sprite->invisible = TRUE; - } } static void GetAllGroundEffectFlags_OnSpawn(struct ObjectEvent *objEvent, u32 *flags) @@ -7514,21 +7497,23 @@ static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent *objEvent) static void GetGroundEffectFlags_Reflection(struct ObjectEvent *objEvent, u32 *flags) { - u32 reflectionFlags[2] = { GROUND_EFFECT_FLAG_REFLECTION, GROUND_EFFECT_FLAG_ICE_REFLECTION }; - u8 type = ObjectEventCheckForReflectiveSurface(objEvent); + u32 reflectionFlags[NUM_REFLECTION_TYPES - 1] = { + [REFL_TYPE_ICE - 1] = GROUND_EFFECT_FLAG_ICE_REFLECTION, + [REFL_TYPE_WATER - 1] = GROUND_EFFECT_FLAG_WATER_REFLECTION + }; + u8 reflType = ObjectEventGetNearbyReflectionType(objEvent); - if (type) + if (reflType) { - if (!objEvent->hasReflection) + if (objEvent->hasReflection == 0) { - objEvent->hasReflection = 0; - objEvent->hasReflection = 1; - *flags |= reflectionFlags[type - 1]; + objEvent->hasReflection++; + *flags |= reflectionFlags[reflType - 1]; } } else { - objEvent->hasReflection = 0; + objEvent->hasReflection = FALSE; } } @@ -7701,26 +7686,24 @@ static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent *objEvent, u32 * } } -static u8 ObjectEventCheckForReflectiveSurface(struct ObjectEvent *objEvent) +#define RETURN_REFLECTION_TYPE_AT(x, y) \ + b = MapGridGetMetatileBehaviorAt(x, y); \ + result = GetReflectionTypeByMetatileBehavior(b); \ + if (result != REFL_TYPE_NONE) \ + return result; + +static u8 ObjectEventGetNearbyReflectionType(struct ObjectEvent *objEvent) { const struct ObjectEventGraphicsInfo *info = GetObjectEventGraphicsInfo(objEvent->graphicsId); // ceil div by tile width? s16 width = (info->width + 8) >> 4; s16 height = (info->height + 8) >> 4; - s16 i; - s16 j; - u8 result; - u8 b; - s16 one; + s16 i, j; + u8 result, b; // used by RETURN_REFLECTION_TYPE_AT + s16 one = 1; -#define RETURN_REFLECTION_TYPE_AT(x, y) \ - b = MapGridGetMetatileBehaviorAt(x, y); \ - result = GetReflectionTypeByMetatileBehavior(b); \ - if (result != 0) \ - return result; - - for (i = 0, one = 1; i < height; i++) + for (i = 0; i < height; i++) { RETURN_REFLECTION_TYPE_AT(objEvent->currentCoords.x, objEvent->currentCoords.y + one + i) RETURN_REFLECTION_TYPE_AT(objEvent->previousCoords.x, objEvent->previousCoords.y + one + i) @@ -7732,45 +7715,46 @@ static u8 ObjectEventCheckForReflectiveSurface(struct ObjectEvent *objEvent) RETURN_REFLECTION_TYPE_AT(objEvent->previousCoords.x - j, objEvent->previousCoords.y + one + i) } } - return 0; + + return REFL_TYPE_NONE; +} #undef RETURN_REFLECTION_TYPE_AT -} static u8 GetReflectionTypeByMetatileBehavior(u32 behavior) { if (MetatileBehavior_IsIce(behavior)) - return 1; + return REFL_TYPE_ICE; else if (MetatileBehavior_IsReflective(behavior)) - return 2; + return REFL_TYPE_WATER; else - return 0; + return REFL_TYPE_NONE; } -u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z) +u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction) { - static bool8 (*const unknown_08376040[])(u8) = { - MetatileBehavior_IsJumpSouth, - MetatileBehavior_IsJumpNorth, - MetatileBehavior_IsJumpWest, - MetatileBehavior_IsJumpEast, + static bool8 (*const ledgeBehaviorFuncs[])(u8) = { + [DIR_SOUTH - 1] = MetatileBehavior_IsJumpSouth, + [DIR_NORTH - 1] = MetatileBehavior_IsJumpNorth, + [DIR_WEST - 1] = MetatileBehavior_IsJumpWest, + [DIR_EAST - 1] = MetatileBehavior_IsJumpEast, }; - u8 b; - u8 index = z; + u8 behavior; + u8 index = direction; - if (index == 0) - return 0; - else if (index > 4) - index -= 4; + if (index == DIR_NONE) + return DIR_NONE; + else if (index > DIR_EAST) + index -= DIR_EAST; index--; - b = MapGridGetMetatileBehaviorAt(x, y); + behavior = MapGridGetMetatileBehaviorAt(x, y); - if (unknown_08376040[index](b) == 1) + if (ledgeBehaviorFuncs[index](behavior) == TRUE) return index + 1; - return 0; + return DIR_NONE; } static void SetObjectEventSpriteOamTableForLongGrass(struct ObjectEvent *objEvent, struct Sprite *sprite) @@ -7799,7 +7783,7 @@ bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y) mapZ = MapGridGetZCoordAt(x, y); - if (mapZ == 0 || mapZ == 0xF) + if (mapZ == 0 || mapZ == 15) return FALSE; if (mapZ != z) @@ -7808,21 +7792,15 @@ bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y) return FALSE; } -static const u8 sUnknown_08376050[] = { - 0x73, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x00, 0x00, 0x73 +static const u8 sElevationToSubpriority[] = { + 115, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 0, 0, 115 }; -// Each byte corresponds to a sprite priority for an object event. -// This is directly the inverse of gObjectEventPriorities_08376070. -static const u8 sObjectEventPriorities_08376060[] = { +static const u8 sElevationToPriority[] = { 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 0, 2 }; -// Each byte corresponds to a sprite priority for an object event. -// This is the inverse of gObjectEventPriorities_08376060. -// 1 = Above player sprite -// 2 = Below player sprite -static const u8 sObjectEventPriorities_08376070[] = { +static const u8 sElevationToSubspriteTableNum[] = { 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 1, }; @@ -7833,19 +7811,19 @@ void UpdateObjectEventZCoordAndPriority(struct ObjectEvent *objEvent, struct Spr ObjectEventUpdateZCoord(objEvent); - sprite->subspriteTableNum = sObjectEventPriorities_08376070[objEvent->previousElevation]; - sprite->oam.priority = sObjectEventPriorities_08376060[objEvent->previousElevation]; + sprite->subspriteTableNum = sElevationToSubspriteTableNum[objEvent->previousElevation]; + sprite->oam.priority = sElevationToPriority[objEvent->previousElevation]; } static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z) { - sprite->subspriteTableNum = sObjectEventPriorities_08376070[z]; - sprite->oam.priority = sObjectEventPriorities_08376060[z]; + sprite->subspriteTableNum = sElevationToSubspriteTableNum[z]; + sprite->oam.priority = sElevationToPriority[z]; } u8 ZCoordToPriority(u8 z) { - return sObjectEventPriorities_08376060[z]; + return sElevationToPriority[z]; } void ObjectEventUpdateZCoord(struct ObjectEvent *objEvent) @@ -7862,14 +7840,14 @@ void ObjectEventUpdateZCoord(struct ObjectEvent *objEvent) objEvent->previousElevation = z; } -void SetObjectSubpriorityByZCoord(u8 a, struct Sprite *sprite, u8 b) +void SetObjectSubpriorityByZCoord(u8 elevation, struct Sprite *sprite, u8 subpriority) { s32 tmp = sprite->centerToCornerVecY; - u32 tmpa = *(u16 *)&sprite->pos1.y; + u32 tmpa = *(u16 *)&sprite->y; u32 tmpb = *(u16 *)&gSpriteCoordOffsetY; s32 tmp2 = (tmpa - tmp) + tmpb; - u16 tmp3 = (0x10 - ((((u32)tmp2 + 8) & 0xFF) >> 4)) * 2; - sprite->subpriority = tmp3 + sUnknown_08376050[a] + b; + u16 tmp3 = (16 - ((((u32)tmp2 + 8) & 0xFF) >> 4)) * 2; + sprite->subpriority = tmp3 + sElevationToSubpriority[elevation] + subpriority; } static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sprite *sprite) @@ -7896,11 +7874,11 @@ void GroundEffect_SpawnOnTallGrass(struct ObjectEvent *objEvent, struct Sprite * gFieldEffectArguments[0] = objEvent->currentCoords.x; gFieldEffectArguments[1] = objEvent->currentCoords.y; gFieldEffectArguments[2] = objEvent->previousElevation; - gFieldEffectArguments[3] = 2; + gFieldEffectArguments[3] = 2; // priority gFieldEffectArguments[4] = objEvent->localId << 8 | objEvent->mapNum; gFieldEffectArguments[5] = objEvent->mapGroup; gFieldEffectArguments[6] = (u8)gSaveBlock1Ptr->location.mapNum << 8 | (u8)gSaveBlock1Ptr->location.mapGroup; - gFieldEffectArguments[7] = 1; + gFieldEffectArguments[7] = TRUE; // skip to end of anim FieldEffectStart(FLDEFF_TALL_GRASS); } @@ -7909,11 +7887,11 @@ void GroundEffect_StepOnTallGrass(struct ObjectEvent *objEvent, struct Sprite *s gFieldEffectArguments[0] = objEvent->currentCoords.x; gFieldEffectArguments[1] = objEvent->currentCoords.y; gFieldEffectArguments[2] = objEvent->previousElevation; - gFieldEffectArguments[3] = 2; + gFieldEffectArguments[3] = 2; // priority gFieldEffectArguments[4] = objEvent->localId << 8 | objEvent->mapNum; gFieldEffectArguments[5] = objEvent->mapGroup; gFieldEffectArguments[6] = (u8)gSaveBlock1Ptr->location.mapNum << 8 | (u8)gSaveBlock1Ptr->location.mapGroup; - gFieldEffectArguments[7] = 0; + gFieldEffectArguments[7] = FALSE; // don't skip to end of anim FieldEffectStart(FLDEFF_TALL_GRASS); } @@ -7945,12 +7923,12 @@ void GroundEffect_StepOnLongGrass(struct ObjectEvent *objEvent, struct Sprite *s void GroundEffect_WaterReflection(struct ObjectEvent *objEvent, struct Sprite *sprite) { - SetUpReflection(objEvent, sprite, 0); + SetUpReflection(objEvent, sprite, FALSE); } void GroundEffect_IceReflection(struct ObjectEvent *objEvent, struct Sprite *sprite) { - SetUpReflection(objEvent, sprite, 1); + SetUpReflection(objEvent, sprite, TRUE); } void GroundEffect_FlowingWater(struct ObjectEvent *objEvent, struct Sprite *sprite) @@ -8117,8 +8095,8 @@ static void (*const sGroundEffectFuncs[])(struct ObjectEvent *objEvent, struct S GroundEffect_StepOnTallGrass, // GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE GroundEffect_SpawnOnLongGrass, // GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN GroundEffect_StepOnLongGrass, // GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE - GroundEffect_WaterReflection, // GROUND_EFFECT_FLAG_ICE_REFLECTION - GroundEffect_IceReflection, // GROUND_EFFECT_FLAG_REFLECTION + GroundEffect_WaterReflection, // GROUND_EFFECT_FLAG_WATER_REFLECTION + GroundEffect_IceReflection, // GROUND_EFFECT_FLAG_ICE_REFLECTION GroundEffect_FlowingWater, // GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER GroundEffect_SandTracks, // GROUND_EFFECT_FLAG_SAND GroundEffect_DeepSandTracks, // GROUND_EFFECT_FLAG_DEEP_SAND @@ -8272,44 +8250,46 @@ void UnfreezeObjectEvents(void) static void Step1(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += sDirectionToVectors[dir].x; - sprite->pos1.y += sDirectionToVectors[dir].y; + sprite->x += sDirectionToVectors[dir].x; + sprite->y += sDirectionToVectors[dir].y; } static void Step2(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * (u16) sDirectionToVectors[dir].x; - sprite->pos1.y += 2 * (u16) sDirectionToVectors[dir].y; + sprite->x += 2 * (u16) sDirectionToVectors[dir].x; + sprite->y += 2 * (u16) sDirectionToVectors[dir].y; } static void Step3(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * (u16) sDirectionToVectors[dir].x + (u16) sDirectionToVectors[dir].x; - sprite->pos1.y += 2 * (u16) sDirectionToVectors[dir].y + (u16) sDirectionToVectors[dir].y; + sprite->x += 2 * (u16) sDirectionToVectors[dir].x + (u16) sDirectionToVectors[dir].x; + sprite->y += 2 * (u16) sDirectionToVectors[dir].y + (u16) sDirectionToVectors[dir].y; } static void Step4(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 4 * (u16) sDirectionToVectors[dir].x; - sprite->pos1.y += 4 * (u16) sDirectionToVectors[dir].y; + sprite->x += 4 * (u16) sDirectionToVectors[dir].x; + sprite->y += 4 * (u16) sDirectionToVectors[dir].y; } static void Step8(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 8 * (u16) sDirectionToVectors[dir].x; - sprite->pos1.y += 8 * (u16) sDirectionToVectors[dir].y; + sprite->x += 8 * (u16) sDirectionToVectors[dir].x; + sprite->y += 8 * (u16) sDirectionToVectors[dir].y; } -static void oamt_npc_ministep_reset(struct Sprite *sprite, u8 direction, u8 a3) +#define sTimer data[5] + +static void SetSpriteDataForNormalStep(struct Sprite *sprite, u8 direction, u8 speed) { - sprite->data[3] = direction; - sprite->data[4] = a3; - sprite->data[5] = 0; + sprite->sDirection = direction; + sprite->sSpeed = speed; + sprite->sTimer = 0; } typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 direction); -static const SpriteStepFunc gUnknown_0850E6C4[] = { +static const SpriteStepFunc sStep1Funcs[] = { Step1, Step1, Step1, @@ -8328,7 +8308,7 @@ static const SpriteStepFunc gUnknown_0850E6C4[] = { Step1, }; -static const SpriteStepFunc gUnknown_0850E704[] = { +static const SpriteStepFunc sStep2Funcs[] = { Step2, Step2, Step2, @@ -8339,7 +8319,7 @@ static const SpriteStepFunc gUnknown_0850E704[] = { Step2, }; -static const SpriteStepFunc gUnknown_0850E724[] = { +static const SpriteStepFunc sStep3Funcs[] = { Step2, Step3, Step3, @@ -8348,68 +8328,76 @@ static const SpriteStepFunc gUnknown_0850E724[] = { Step3, }; -static const SpriteStepFunc gUnknown_0850E73C[] = { +static const SpriteStepFunc sStep4Funcs[] = { Step4, Step4, Step4, Step4, }; -static const SpriteStepFunc gUnknown_0850E74C[] = { +static const SpriteStepFunc sStep8Funcs[] = { Step8, Step8, }; -static const SpriteStepFunc *const gUnknown_0850E754[] = { - gUnknown_0850E6C4, - gUnknown_0850E704, - gUnknown_0850E724, - gUnknown_0850E73C, - gUnknown_0850E74C, +static const SpriteStepFunc *const sNpcStepFuncTables[] = { + sStep1Funcs, + sStep2Funcs, + sStep3Funcs, + sStep4Funcs, + sStep8Funcs, }; -static const s16 gUnknown_0850E768[] = { +static const s16 sStepTimes[] = { 16, 8, 6, 4, 2 }; -bool8 obj_npc_ministep(struct Sprite *sprite) +static bool8 NpcTakeStep(struct Sprite *sprite) { - if (sprite->data[5] >= gUnknown_0850E768[sprite->data[4]]) + if (sprite->sTimer >= sStepTimes[sprite->sSpeed]) return FALSE; - gUnknown_0850E754[sprite->data[4]][sprite->data[5]](sprite, sprite->data[3]); + sNpcStepFuncTables[sprite->sSpeed][sprite->sTimer](sprite, sprite->sDirection); - sprite->data[5]++; + sprite->sTimer++; - if (sprite->data[5] < gUnknown_0850E768[sprite->data[4]]) + if (sprite->sTimer < sStepTimes[sprite->sSpeed]) return FALSE; return TRUE; } -void sub_80976DC(struct Sprite *sprite, u8 direction) +#undef sTimer + +#define sTimer data[4] +#define sNumSteps data[5] + +static void SetWalkSlowSpriteData(struct Sprite *sprite, u8 direction) { - sprite->data[3] = direction; - sprite->data[4] = 0; - sprite->data[5] = 0; + sprite->sDirection = direction; + sprite->sTimer = 0; + sprite->sNumSteps = 0; } -bool8 sub_80976EC(struct Sprite *sprite) +static bool8 UpdateWalkSlowAnim(struct Sprite *sprite) { - if (!(sprite->data[4] & 1)) + if (!(sprite->sTimer & 1)) { - Step1(sprite, sprite->data[3]); - sprite->data[5]++; + Step1(sprite, sprite->sDirection); + sprite->sNumSteps++; } - sprite->data[4]++; + sprite->sTimer++; - if (sprite->data[5] > 15) + if (sprite->sNumSteps > 15) return TRUE; else return FALSE; } +#undef sTimer +#undef sNumSteps + static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = { 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, @@ -8457,20 +8445,20 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite) switch(sprite->data[7]) { case 0: - sprite->pos2.x += GetFigure8XOffset(sprite->data[6]); - sprite->pos2.y += GetFigure8YOffset(sprite->data[6]); + sprite->x2 += GetFigure8XOffset(sprite->data[6]); + sprite->y2 += GetFigure8YOffset(sprite->data[6]); break; case 1: - sprite->pos2.x -= GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); - sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + sprite->x2 -= GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + sprite->y2 += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); break; case 2: - sprite->pos2.x -= GetFigure8XOffset(sprite->data[6]); - sprite->pos2.y += GetFigure8YOffset(sprite->data[6]); + sprite->x2 -= GetFigure8XOffset(sprite->data[6]); + sprite->y2 += GetFigure8YOffset(sprite->data[6]); break; case 3: - sprite->pos2.x += GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); - sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + sprite->x2 += GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + sprite->y2 += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); break; } if (++sprite->data[6] == FIGURE_8_LENGTH) @@ -8480,94 +8468,104 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite) } if (sprite->data[7] == 4) { - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->y2 = 0; + sprite->x2 = 0; finished = TRUE; } return finished; } -static const s8 gUnknown_0850E802[] = { - -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0 +static const s8 sJumpY_High[] = { + -4, -6, -8, -10, -11, -12, -12, -12, + -11, -10, -9, -8, -6, -4, 0, 0 }; -static const s8 gUnknown_0850E812[] = { - 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0 +static const s8 sJumpY_Low[] = { + 0, -2, -3, -4, -5, -6, -6, -6, + -5, -5, -4, -3, -2, 0, 0, 0 }; -static const s8 gUnknown_0850E822[] = { - -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0 +static const s8 sJumpY_Normal[] = { + -2, -4, -6, -8, -9, -10, -10, -10, + -9, -8, -6, -5, -3, -2, 0, 0 }; -static const s8 *const gUnknown_0850E834[] = { - gUnknown_0850E802, - gUnknown_0850E812, - gUnknown_0850E822 +static const s8 *const sJumpYTable[] = { + [JUMP_TYPE_HIGH] = sJumpY_High, + [JUMP_TYPE_LOW] = sJumpY_Low, + [JUMP_TYPE_NORMAL] = sJumpY_Normal }; -s16 sub_8097820(s16 a1, u8 a2) +static s16 GetJumpY(s16 i, u8 type) { - return gUnknown_0850E834[a2][a1]; + return sJumpYTable[type][i]; } -void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4) +#define sJumpType data[5] +#define sTimer data[6] + +static void SetJumpSpriteData(struct Sprite *sprite, u8 direction, u8 speed, u8 type) { - sprite->data[3] = a2; - sprite->data[4] = a3; - sprite->data[5] = a4; - sprite->data[6] = 0; + sprite->sDirection = direction; + sprite->sSpeed = speed; + sprite->sJumpType = type; + sprite->sTimer = 0; } -u8 sub_809785C(struct Sprite *sprite) +static u8 DoJumpSpriteMovement(struct Sprite *sprite) { - s16 v5[] = {16, 16, 32}; - u8 v6[] = {0, 0, 1}; - u8 v2 = 0; + s16 speedToTime[] = {16, 16, 32}; + u8 speedToShift[] = {0, 0, 1}; + u8 result = 0; - if (sprite->data[4]) - Step1(sprite, sprite->data[3]); + if (sprite->sSpeed) + Step1(sprite, sprite->sDirection); - sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]); + sprite->y2 = GetJumpY(sprite->sTimer >> speedToShift[sprite->sSpeed], sprite->sJumpType); - sprite->data[6]++; + sprite->sTimer++; - if (sprite->data[6] == (v5[sprite->data[4]] >> 1)) - v2 = 1; + if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1) + result = JUMP_HALFWAY; - if (sprite->data[6] >= v5[sprite->data[4]]) + if (sprite->sTimer >= speedToTime[sprite->sSpeed]) { - sprite->pos2.y = 0; - v2 = -1; + sprite->y2 = 0; + result = JUMP_FINISHED; } - return v2; + return result; } -u8 sub_80978E4(struct Sprite *sprite) +static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite) { - s16 v5[] = {32, 32, 64}; - u8 v6[] = {1, 1, 2}; - u8 v2 = 0; + s16 speedToTime[] = {32, 32, 64}; + u8 speedToShift[] = {1, 1, 2}; + u8 result = 0; - if (sprite->data[4] && !(sprite->data[6] & 1)) - Step1(sprite, sprite->data[3]); + if (sprite->sSpeed && !(sprite->sTimer & 1)) + Step1(sprite, sprite->sDirection); - sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]); + sprite->y2 = GetJumpY(sprite->sTimer >> speedToShift[sprite->sSpeed], sprite->sJumpType); - sprite->data[6]++; + sprite->sTimer++; - if (sprite->data[6] == (v5[sprite->data[4]] >> 1)) - v2 = 1; + if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1) + result = JUMP_HALFWAY; - if (sprite->data[6] >= v5[sprite->data[4]]) + if (sprite->sTimer >= speedToTime[sprite->sSpeed]) { - sprite->pos2.y = 0; - v2 = -1; + sprite->y2 = 0; + result = JUMP_FINISHED; } - return v2; + return result; } +#undef sSpeed +#undef sJumpType +#undef sTimer + static void SetMovementDelay(struct Sprite *sprite, s16 timer) { sprite->data[3] = timer; @@ -8575,9 +8573,7 @@ static void SetMovementDelay(struct Sprite *sprite, s16 timer) static bool8 WaitForMovementDelay(struct Sprite *sprite) { - sprite->data[3]--; - - if (sprite->data[3] == 0) + if (--sprite->data[3] == 0) return TRUE; else return FALSE; @@ -8598,7 +8594,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite) return FALSE; } -void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) +void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible) { u16 x, y; s16 x2, y2; @@ -8607,33 +8603,33 @@ void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) if (sprite->coordOffsetEnabled) { - x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; - y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY; + x = sprite->x + sprite->x2 + sprite->centerToCornerVecX + gSpriteCoordOffsetX; + y = sprite->y + sprite->y2 + sprite->centerToCornerVecY + gSpriteCoordOffsetY; } else { - x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; - y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + x = sprite->x + sprite->x2 + sprite->centerToCornerVecX; + y = sprite->y + sprite->y2 + sprite->centerToCornerVecY; } x2 = x - (sprite->centerToCornerVecX >> 1); y2 = y - (sprite->centerToCornerVecY >> 1); - if ((s16)x > 255 || x2 < -16) + if ((s16)x >= DISPLAY_WIDTH + 16 || x2 < -16) sprite->invisible = TRUE; - if ((s16)y > 175 || y2 < -16) + if ((s16)y >= DISPLAY_HEIGHT + 16 || y2 < -16) sprite->invisible = TRUE; } -#define tInvisible data[2] -#define tAnimNum data[3] -#define tAnimState data[4] +#define sInvisible data[2] +#define sAnimNum data[3] +#define sAnimState data[4] static void UpdateObjectEventSprite(struct Sprite *sprite) { UpdateObjectEventSpritePosition(sprite); SetObjectSubpriorityByZCoord(sprite->data[1], sprite, 1); - UpdateObjectEventSpriteVisibility(sprite, sprite->tInvisible); + UpdateObjectEventSpriteInvisibility(sprite, sprite->sInvisible); } // Unused @@ -8649,14 +8645,14 @@ static void DestroyObjectEventSprites(void) } } -static int GetObjectEventSpriteId(u8 var) // this should return a u8, because all that call this shifts to u8, but it wont match because it doesnt shift u8 at the end. +static int GetObjectEventSpriteId(u8 objectEventId) // this should return a u8, because all that call this shifts to u8, but it wont match because it doesnt shift u8 at the end. { int i; for (i = 0; i < MAX_SPRITES; i++) { struct Sprite *sprite = &gSprites[i]; - if(sprite->inUse && sprite->callback == UpdateObjectEventSprite && (u8)sprite->data[0] == var) + if (sprite->inUse && sprite->callback == UpdateObjectEventSprite && (u8)sprite->sObjEventId == objectEventId) return i; } return MAX_SPRITES; @@ -8708,9 +8704,9 @@ void SetObjectEventSpriteInvisibility(u8 objectEventId, bool32 invisible) return; if (invisible) - gSprites[spriteId].tInvisible = TRUE; + gSprites[spriteId].sInvisible = TRUE; else - gSprites[spriteId].tInvisible = FALSE; + gSprites[spriteId].sInvisible = FALSE; } bool32 IsObjectEventSpriteInvisible(u8 objectEventId) @@ -8720,7 +8716,7 @@ bool32 IsObjectEventSpriteInvisible(u8 objectEventId) if (spriteId == MAX_SPRITES) return FALSE; - return (gSprites[spriteId].tInvisible == TRUE); + return (gSprites[spriteId].sInvisible == TRUE); } void SetObjectEventSpriteAnim(u8 objectEventId, u8 animNum) @@ -8729,50 +8725,50 @@ void SetObjectEventSpriteAnim(u8 objectEventId, u8 animNum) if (spriteId != MAX_SPRITES) { - gSprites[spriteId].tAnimNum = animNum; - gSprites[spriteId].tAnimState = 0; + gSprites[spriteId].sAnimNum = animNum; + gSprites[spriteId].sAnimState = 0; } } static void MoveUnionRoomObjectUp(struct Sprite *sprite) { - switch(sprite->tAnimState) + switch(sprite->sAnimState) { case 0: - sprite->pos2.y = 0; - sprite->tAnimState++; + sprite->y2 = 0; + sprite->sAnimState++; case 1: - sprite->pos2.y -= 8; - if (sprite->pos2.y == -160) + sprite->y2 -= 8; + if (sprite->y2 == -DISPLAY_HEIGHT) { - sprite->pos2.y = 0; - sprite->tInvisible = TRUE; - sprite->tAnimNum = 0; - sprite->tAnimState = 0; + sprite->y2 = 0; + sprite->sInvisible = TRUE; + sprite->sAnimNum = 0; + sprite->sAnimState = 0; } } } static void MoveUnionRoomObjectDown(struct Sprite *sprite) { - switch(sprite->tAnimState) + switch(sprite->sAnimState) { case 0: - sprite->pos2.y = -160; - sprite->tAnimState++; + sprite->y2 = -DISPLAY_HEIGHT; + sprite->sAnimState++; case 1: - sprite->pos2.y += 8; - if(sprite->pos2.y == 0) + sprite->y2 += 8; + if(sprite->y2 == 0) { - sprite->tAnimNum = 0; - sprite->tAnimState = 0; + sprite->sAnimNum = 0; + sprite->sAnimState = 0; } } } static void UpdateObjectEventSpritePosition(struct Sprite *sprite) { - switch(sprite->tAnimNum) + switch(sprite->sAnimNum) { case UNION_ROOM_SPAWN_IN: MoveUnionRoomObjectDown(sprite); @@ -8783,19 +8779,19 @@ static void UpdateObjectEventSpritePosition(struct Sprite *sprite) case 0: break; default: - sprite->tAnimNum = 0; + sprite->sAnimNum = 0; break; } } -bool32 IsObjectEventSpriteAnimating(u8 var) +bool32 IsObjectEventSpriteAnimating(u8 objectEventId) { - u8 spriteId = GetObjectEventSpriteId(var); + u8 spriteId = GetObjectEventSpriteId(objectEventId); if (spriteId == MAX_SPRITES) return FALSE; - if (gSprites[spriteId].tAnimNum != 0) + if (gSprites[spriteId].sAnimNum != 0) return TRUE; return FALSE; @@ -8807,11 +8803,11 @@ u32 StartFieldEffectForObjectEvent(u8 fieldEffectId, struct ObjectEvent *objectE return FieldEffectStart(fieldEffectId); } -void DoShadowFieldEffect(struct ObjectEvent *objectEvent) +static void DoShadowFieldEffect(struct ObjectEvent *objectEvent) { if (!objectEvent->hasShadow) { - objectEvent->hasShadow = 1; + objectEvent->hasShadow = TRUE; StartFieldEffectForObjectEvent(FLDEFF_SHADOW, objectEvent); } } @@ -8819,8 +8815,8 @@ void DoShadowFieldEffect(struct ObjectEvent *objectEvent) static void DoRippleFieldEffect(struct ObjectEvent *objectEvent, struct Sprite *sprite) { const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - gFieldEffectArguments[0] = sprite->pos1.x; - gFieldEffectArguments[1] = sprite->pos1.y + (graphicsInfo->height >> 1) - 2; + gFieldEffectArguments[0] = sprite->x; + gFieldEffectArguments[1] = sprite->y + (graphicsInfo->height >> 1) - 2; gFieldEffectArguments[2] = 151; gFieldEffectArguments[3] = 3; FieldEffectStart(FLDEFF_RIPPLE); @@ -8851,11 +8847,11 @@ u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite * u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { bool32 ableToStore = FALSE; - if (gLockedAnimObjectEvents == NULL) + if (sLockedAnimObjectEvents == NULL) { - gLockedAnimObjectEvents = AllocZeroed(sizeof(struct LockedAnimObjectEvents)); - gLockedAnimObjectEvents->objectEventIds[0] = objectEvent->localId; - gLockedAnimObjectEvents->count = 1; + sLockedAnimObjectEvents = AllocZeroed(sizeof(struct LockedAnimObjectEvents)); + sLockedAnimObjectEvents->objectEventIds[0] = objectEvent->localId; + sLockedAnimObjectEvents->count = 1; ableToStore = TRUE; } else @@ -8865,10 +8861,10 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct bool32 found; for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++) { - if (firstFreeSlot == 16 && gLockedAnimObjectEvents->objectEventIds[i] == 0) + if (firstFreeSlot == 16 && sLockedAnimObjectEvents->objectEventIds[i] == 0) firstFreeSlot = i; - if (gLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId) + if (sLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId) { found = TRUE; break; @@ -8877,8 +8873,8 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct if (!found && firstFreeSlot != 16) { - gLockedAnimObjectEvents->objectEventIds[firstFreeSlot] = objectEvent->localId; - gLockedAnimObjectEvents->count++; + sLockedAnimObjectEvents->objectEventIds[firstFreeSlot] = objectEvent->localId; + sLockedAnimObjectEvents->count++; ableToStore = TRUE; } } @@ -8889,7 +8885,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct objectEvent->facingDirectionLocked = TRUE; } - sprite->data[2] = 1; + sprite->sActionFuncId = 1; return TRUE; } @@ -8898,19 +8894,19 @@ u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *objectEvent, struc bool32 ableToStore; u8 index; - sprite->data[2] = 1; - if (gLockedAnimObjectEvents != NULL) + sprite->sActionFuncId = 1; + if (sLockedAnimObjectEvents != NULL) { ableToStore = FALSE; index = FindLockedObjectEventIndex(objectEvent); if (index != 16) { - gLockedAnimObjectEvents->objectEventIds[index] = 0; - gLockedAnimObjectEvents->count--; + sLockedAnimObjectEvents->objectEventIds[index] = 0; + sLockedAnimObjectEvents->count--; ableToStore = TRUE; } - if (gLockedAnimObjectEvents->count == 0) - FREE_AND_SET_NULL(gLockedAnimObjectEvents); + if (sLockedAnimObjectEvents->count == 0) + FREE_AND_SET_NULL(sLockedAnimObjectEvents); if (ableToStore == TRUE) { objectEvent->inanimate = GetObjectEventGraphicsInfo(objectEvent->graphicsId)->inanimate; @@ -8928,13 +8924,13 @@ u8 FindLockedObjectEventIndex(struct ObjectEvent *objectEvent) for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { - if (gLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId) + if (sLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId) return i; } return OBJECT_EVENTS_COUNT; } -void CreateLevitateMovementTask(struct ObjectEvent *objectEvent) +static void CreateLevitateMovementTask(struct ObjectEvent *objectEvent) { u8 taskId = CreateTask(ApplyLevitateMovement, 0xFF); struct Task *task = &gTasks[taskId]; @@ -8953,16 +8949,16 @@ static void ApplyLevitateMovement(u8 taskId) LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // load the map object pointer. sprite = &gSprites[objectEvent->spriteId]; - if(!(task->data[2] & 0x3)) - sprite->pos2.y += task->data[3]; + if(!(task->data[2] & 3)) + sprite->y2 += task->data[3]; - if(!(task->data[2] & 0xF)) + if(!(task->data[2] & 15)) task->data[3] = -task->data[3]; task->data[2]++; } -void DestroyExtraMovementTask(u8 taskId) +static void DestroyLevitateMovementTask(u8 taskId) { struct ObjectEvent *objectEvent; struct Task *task = &gTasks[taskId]; @@ -8971,13 +8967,14 @@ void DestroyExtraMovementTask(u8 taskId) DestroyTask(taskId); } -void sub_8098074(u8 var1, u8 var2) +// Used to freeze other objects except two trainers approaching for battle +void FreezeObjectEventsExceptTwo(u8 objectEventId1, u8 objectEventId2) { u8 i; for(i = 0; i < OBJECT_EVENTS_COUNT; i++) { - if(i != var1 && i != var2 && + if(i != objectEventId1 && i != objectEventId2 && gObjectEvents[i].active && i != gPlayerAvatar.objectEventId) FreezeObjectEvent(&gObjectEvents[i]); } @@ -8985,33 +8982,33 @@ void sub_8098074(u8 var1, u8 var2) u8 MovementAction_FlyUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sprite->pos2.y = 0; - sprite->data[2]++; + sprite->y2 = 0; + sprite->sActionFuncId++; return FALSE; } u8 MovementAction_FlyUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sprite->pos2.y -= 8; + sprite->y2 -= 8; - if(sprite->pos2.y == -160) - sprite->data[2]++; + if(sprite->y2 == -DISPLAY_HEIGHT) + sprite->sActionFuncId++; return FALSE; } u8 MovementAction_FlyDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sprite->pos2.y = -160; - sprite->data[2]++; + sprite->y2 = -DISPLAY_HEIGHT; + sprite->sActionFuncId++; return FALSE; } u8 MovementAction_FlyDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sprite->pos2.y += 8; + sprite->y2 += 8; - if(!sprite->pos2.y) - sprite->data[2]++; + if(!sprite->y2) + sprite->sActionFuncId++; return FALSE; } diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 28bbd4ef79..50098743db 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -10,46 +10,52 @@ #include "palette.h" #include "constants/rgb.h" -// this file's functions -static void EvoSparkle_DummySpriteCb(struct Sprite* sprite); -static void EvoTask_BeginPreSet1_FadeAndPlaySE(u8 taskID); -static void EvoTask_CreatePreEvoSparkleSet1(u8 taskID); -static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskID); -static void EvoTask_BeginPreSparklesSet2(u8 taskID); -static void EvoTask_CreatePreEvoSparklesSet2(u8 taskID); -static void EvoTask_DestroyPreSet2Task(u8 taskID); -static void EvoTask_BeginPostSparklesSet1(u8 taskID); -static void EvoTask_CreatePostEvoSparklesSet1(u8 taskID); -static void EvoTask_DestroyPostSet1Task(u8 taskID); -static void EvoTask_BeginPostSparklesSet2_AndFlash(u8 taskID); -static void EvoTask_CreatePostEvoSparklesSet2_AndFlash(u8 taskID); -static void EvoTask_BeginPostSparklesSet2_AndFlash_Trade(u8 taskID); -static void EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade(u8 taskID); -static void EvoTask_DestroyPostSet2AndFlashTask(u8 taskID); -static void sub_817C4EC(u8 taskID); -static void sub_817C510(u8 taskID); -static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskID); -static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskID); -static void sub_817C560(u8 taskID); +static void SpriteCB_Sparkle_Dummy(struct Sprite* sprite); -static const u16 sEvoSparklePalette[] = INCBIN_U16("graphics/misc/evo_sparkle.gbapal"); -static const u32 sEvoSparkleTiles[] = INCBIN_U32("graphics/misc/evo_sparkle.4bpp.lz"); +static void Task_Sparkles_SpiralUpward_Init(u8 taskId); +static void Task_Sparkles_SpiralUpward(u8 taskId); +static void Task_Sparkles_SpiralUpward_End(u8 taskId); + +static void Task_Sparkles_ArcDown_Init(u8 taskId); +static void Task_Sparkles_ArcDown(u8 taskId); +static void Task_Sparkles_ArcDown_End(u8 taskId); + +static void Task_Sparkles_CircleInward_Init(u8 taskId); +static void Task_Sparkles_CircleInward(u8 taskId); +static void Task_Sparkles_CircleInward_End(u8 taskId); + +static void Task_Sparkles_SprayAndFlash_Init(u8 taskId); +static void Task_Sparkles_SprayAndFlash(u8 taskId); +static void Task_Sparkles_SprayAndFlashTrade_Init(u8 taskId); +static void Task_Sparkles_SprayAndFlashTrade(u8 taskId); +static void Task_Sparkles_SprayAndFlash_End(u8 taskId); + +static void Task_CycleEvolutionMonSprite_Init(u8 taskId); +static void Task_CycleEvolutionMonSprite_TryEnd(u8 taskId); +static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId); +static void EndOnPreEvoMon(u8 taskId); +static void EndOnPostEvoMon(u8 taskId); + +#define TAG_SPARKLE 1001 + +static const u16 sEvoSparkle_Pal[] = INCBIN_U16("graphics/misc/evo_sparkle.gbapal"); +static const u32 sEvoSparkle_Gfx[] = INCBIN_U32("graphics/misc/evo_sparkle.4bpp.lz"); static const struct CompressedSpriteSheet sEvoSparkleSpriteSheets[] = { - {sEvoSparkleTiles, 0x20, 1001}, + {sEvoSparkle_Gfx, 0x20, TAG_SPARKLE}, {NULL, 0, 0} }; static const struct SpritePalette sEvoSparkleSpritePals[] = { - {sEvoSparklePalette, 1001}, + {sEvoSparkle_Pal, TAG_SPARKLE}, {NULL, 0} }; static const struct OamData sOamData_EvoSparkle = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -77,13 +83,13 @@ static const union AnimCmd *const sSpriteAnimTable_EvoSparkle[] = static const struct SpriteTemplate sEvoSparkleSpriteTemplate = { - .tileTag = 1001, - .paletteTag = 1001, + .tileTag = TAG_SPARKLE, + .paletteTag = TAG_SPARKLE, .oam = &sOamData_EvoSparkle, .anims = sSpriteAnimTable_EvoSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = EvoSparkle_DummySpriteCb + .callback = SpriteCB_Sparkle_Dummy }; static const s16 sEvoSparkleMatrices[] = @@ -93,7 +99,7 @@ static const s16 sEvoSparkleMatrices[] = -1, 0x70, 0x1, 0x70, 0x2, 0x50, 0x3, 0x30, 0x4, 0x10 }; -static void EvoSparkle_DummySpriteCb(struct Sprite *sprite) +static void SpriteCB_Sparkle_Dummy(struct Sprite *sprite) { } @@ -107,20 +113,20 @@ static void SetEvoSparklesMatrices(void) } } -static void SpriteCB_PreEvoSparkleSet1(struct Sprite* sprite) +static void SpriteCB_Sparkle_SpiralUpward(struct Sprite* sprite) { - if (sprite->pos1.y > 8) + if (sprite->y > 8) { u8 matrixNum; - sprite->pos1.y = 88 - (sprite->data[7] * sprite->data[7]) / 80; - sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4; - sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]); + sprite->y = 88 - (sprite->data[7] * sprite->data[7]) / 80; + sprite->y2 = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4; + sprite->x2 = Cos((u8)(sprite->data[6]), sprite->data[5]); sprite->data[6] += 4; if (sprite->data[7] & 1) sprite->data[5]--; sprite->data[7]++; - if (sprite->pos2.y > 0) + if (sprite->y2 > 0) sprite->subpriority = 1; else sprite->subpriority = 20; @@ -133,7 +139,7 @@ static void SpriteCB_PreEvoSparkleSet1(struct Sprite* sprite) DestroySprite(sprite); } -static void CreatePreEvoSparkleSet1(u8 arg0) +static void CreateSparkle_SpiralUpward(u8 arg0) { u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 88, 0); if (spriteID != MAX_SPRITES) @@ -143,17 +149,17 @@ static void CreatePreEvoSparkleSet1(u8 arg0) gSprites[spriteID].data[7] = 0; gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteID].oam.matrixNum = 31; - gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet1; + gSprites[spriteID].callback = SpriteCB_Sparkle_SpiralUpward; } } -static void SpriteCB_PreEvoSparkleSet2(struct Sprite* sprite) +static void SpriteCB_Sparkle_ArcDown(struct Sprite* sprite) { - if (sprite->pos1.y < 88) + if (sprite->y < 88) { - sprite->pos1.y = 8 + (sprite->data[7] * sprite->data[7]) / 5; - sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4; - sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]); + sprite->y = 8 + (sprite->data[7] * sprite->data[7]) / 5; + sprite->y2 = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4; + sprite->x2 = Cos((u8)(sprite->data[6]), sprite->data[5]); sprite->data[5] = 8 + Sin((u8)(sprite->data[7] * 4), 40); sprite->data[7]++; } @@ -161,7 +167,7 @@ static void SpriteCB_PreEvoSparkleSet2(struct Sprite* sprite) DestroySprite(sprite); } -static void CreatePreEvoSparkleSet2(u8 arg0) +static void CreateSparkle_ArcDown(u8 arg0) { u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 8, 0); if (spriteID != MAX_SPRITES) @@ -172,16 +178,16 @@ static void CreatePreEvoSparkleSet2(u8 arg0) gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteID].oam.matrixNum = 25; gSprites[spriteID].subpriority = 1; - gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet2; + gSprites[spriteID].callback = SpriteCB_Sparkle_ArcDown; } } -static void SpriteCB_PostEvoSparkleSet1(struct Sprite* sprite) +static void SpriteCB_Sparkle_CircleInward(struct Sprite* sprite) { if (sprite->data[5] > 8) { - sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]); - sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]); + sprite->y2 = Sin((u8)(sprite->data[6]), sprite->data[5]); + sprite->x2 = Cos((u8)(sprite->data[6]), sprite->data[5]); sprite->data[5] -= sprite->data[3]; sprite->data[6] += 4; } @@ -189,7 +195,7 @@ static void SpriteCB_PostEvoSparkleSet1(struct Sprite* sprite) DestroySprite(sprite); } -static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1) +static void CreateSparkle_CircleInward(u8 arg0, u8 arg1) { u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0); if (spriteID != MAX_SPRITES) @@ -201,20 +207,20 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1) gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteID].oam.matrixNum = 31; gSprites[spriteID].subpriority = 1; - gSprites[spriteID].callback = SpriteCB_PostEvoSparkleSet1; + gSprites[spriteID].callback = SpriteCB_Sparkle_CircleInward; } } -static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite) +static void SpriteCB_Sparkle_Spray(struct Sprite* sprite) { if (!(sprite->data[7] & 3)) - sprite->pos1.y++; + sprite->y++; if (sprite->data[6] < 128) { u8 matrixNum; - sprite->pos2.y = -Sin((u8)(sprite->data[6]), sprite->data[5]); - sprite->pos1.x = 120 + (sprite->data[3] * sprite->data[7]) / 3; + sprite->y2 = -Sin((u8)(sprite->data[6]), sprite->data[5]); + sprite->x = 120 + (sprite->data[3] * sprite->data[7]) / 3; sprite->data[6]++; matrixNum = 31 - (sprite->data[6] * 12 / 128); if (sprite->data[6] > 64) @@ -235,7 +241,7 @@ static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite) DestroySprite(sprite); } -static void CreatePostEvoSparkleSet2(u8 arg0) +static void CreateSparkle_Spray(u8 id) { u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0); if (spriteID != MAX_SPRITES) @@ -246,7 +252,7 @@ static void CreatePostEvoSparkleSet2(u8 arg0) gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteID].oam.matrixNum = 31; gSprites[spriteID].subpriority = 20; - gSprites[spriteID].callback = SpriteCB_PostEvoSparkleSet2; + gSprites[spriteID].callback = SpriteCB_Sparkle_Spray; } } @@ -256,357 +262,386 @@ void LoadEvoSparkleSpriteAndPal(void) LoadSpritePalettes(sEvoSparkleSpritePals); } -#define tFrameCounter data[15] +#define tPalNum data[1] +#define tTimer data[15] -u8 LaunchTask_PreEvoSparklesSet1(u16 arg0) +u8 EvolutionSparkles_SpiralUpward(u16 palNum) { - u8 taskID = CreateTask(EvoTask_BeginPreSet1_FadeAndPlaySE, 0); - gTasks[taskID].data[1] = arg0; - return taskID; + u8 taskId = CreateTask(Task_Sparkles_SpiralUpward_Init, 0); + gTasks[taskId].tPalNum = palNum; + return taskId; } -static void EvoTask_BeginPreSet1_FadeAndPlaySE(u8 taskID) +static void Task_Sparkles_SpiralUpward_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; - BeginNormalPaletteFade(3 << gTasks[taskID].data[1], 0xA, 0, 0x10, RGB_WHITE); - gTasks[taskID].func = EvoTask_CreatePreEvoSparkleSet1; - PlaySE(SE_M_MEGA_KICK); + gTasks[taskId].tTimer = 0; + BeginNormalPaletteFade(3 << gTasks[taskId].tPalNum, 0xA, 0, 0x10, RGB_WHITE); + gTasks[taskId].func = Task_Sparkles_SpiralUpward; + PlaySE(SE_M_MEGA_KICK); // 'Charging up' sound for the sparkles as they spiral upwards } -static void EvoTask_CreatePreEvoSparkleSet1(u8 taskID) +static void Task_Sparkles_SpiralUpward(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 64) + if (gTasks[taskId].tTimer < 64) { - if (!(gTasks[taskID].tFrameCounter & 7)) + if (!(gTasks[taskId].tTimer & 7)) { u8 i; for (i = 0; i < 4; i++) - CreatePreEvoSparkleSet1((0x78 & gTasks[taskID].tFrameCounter) * 2 + i * 64); + CreateSparkle_SpiralUpward((0x78 & gTasks[taskId].tTimer) * 2 + i * 64); } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else { - gTasks[taskID].tFrameCounter = 96; - gTasks[taskID].func = EvoTask_WaitForPre1SparklesToGoUp; + gTasks[taskId].tTimer = 96; + gTasks[taskId].func = Task_Sparkles_SpiralUpward_End; } } -static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskID) +static void Task_Sparkles_SpiralUpward_End(u8 taskId) { - if (gTasks[taskID].tFrameCounter != 0) - gTasks[taskID].tFrameCounter--; + if (gTasks[taskId].tTimer != 0) + gTasks[taskId].tTimer--; else - DestroyTask(taskID); + DestroyTask(taskId); } -u8 LaunchTask_PreEvoSparklesSet2(void) +u8 EvolutionSparkles_ArcDown(void) { - return CreateTask(EvoTask_BeginPreSparklesSet2, 0); + return CreateTask(Task_Sparkles_ArcDown_Init, 0); } -static void EvoTask_BeginPreSparklesSet2(u8 taskID) +static void Task_Sparkles_ArcDown_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; - gTasks[taskID].func = EvoTask_CreatePreEvoSparklesSet2; + gTasks[taskId].tTimer = 0; + gTasks[taskId].func = Task_Sparkles_ArcDown; PlaySE(SE_M_BUBBLE_BEAM2); } -static void EvoTask_CreatePreEvoSparklesSet2(u8 taskID) +static void Task_Sparkles_ArcDown(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 96) + if (gTasks[taskId].tTimer < 96) { - if (gTasks[taskID].tFrameCounter < 6) + if (gTasks[taskId].tTimer < 6) { u8 i; for (i = 0; i < 9; i++) - CreatePreEvoSparkleSet2(i * 16); + CreateSparkle_ArcDown(i * 16); } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else - gTasks[taskID].func = EvoTask_DestroyPreSet2Task; + gTasks[taskId].func = Task_Sparkles_ArcDown_End; } -static void EvoTask_DestroyPreSet2Task(u8 taskID) +static void Task_Sparkles_ArcDown_End(u8 taskId) { - DestroyTask(taskID); + DestroyTask(taskId); } -u8 LaunchTask_PostEvoSparklesSet1(void) +u8 EvolutionSparkles_CircleInward(void) { - return CreateTask(EvoTask_BeginPostSparklesSet1, 0); + return CreateTask(Task_Sparkles_CircleInward_Init, 0); } -static void EvoTask_BeginPostSparklesSet1(u8 taskID) +static void Task_Sparkles_CircleInward_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; - gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet1; + gTasks[taskId].tTimer = 0; + gTasks[taskId].func = Task_Sparkles_CircleInward; PlaySE(SE_SHINY); } -static void EvoTask_CreatePostEvoSparklesSet1(u8 taskID) +static void Task_Sparkles_CircleInward(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 48) + if (gTasks[taskId].tTimer < 48) { - if (gTasks[taskID].tFrameCounter == 0) + if (gTasks[taskId].tTimer == 0) { u8 i; for (i = 0; i < 16; i++) - CreatePostEvoSparkleSet1(i * 16, 4); + CreateSparkle_CircleInward(i * 16, 4); } - if (gTasks[taskID].tFrameCounter == 32) + if (gTasks[taskId].tTimer == 32) { u8 i; for (i = 0; i < 16; i++) - CreatePostEvoSparkleSet1(i * 16, 8); + CreateSparkle_CircleInward(i * 16, 8); } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else - gTasks[taskID].func = EvoTask_DestroyPostSet1Task; + gTasks[taskId].func = Task_Sparkles_CircleInward_End; } -static void EvoTask_DestroyPostSet1Task(u8 taskID) +static void Task_Sparkles_CircleInward_End(u8 taskId) { - DestroyTask(taskID); + DestroyTask(taskId); } -u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species) +#define tSpecies data[2] // Never read + +u8 EvolutionSparkles_SprayAndFlash(u16 species) { - u8 taskID = CreateTask(EvoTask_BeginPostSparklesSet2_AndFlash, 0); - gTasks[taskID].data[2] = species; - return taskID; + u8 taskId = CreateTask(Task_Sparkles_SprayAndFlash_Init, 0); + gTasks[taskId].tSpecies = species; + return taskId; } -static void EvoTask_BeginPostSparklesSet2_AndFlash(u8 taskID) +static void Task_Sparkles_SprayAndFlash_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; + gTasks[taskId].tTimer = 0; CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30); BeginNormalPaletteFade(0xFFF9041C, 0, 0, 0x10, RGB_WHITE); // was 0xFFF9001C in R/S - gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash; + gTasks[taskId].func = Task_Sparkles_SprayAndFlash; PlaySE(SE_M_PETAL_DANCE); } -static void EvoTask_CreatePostEvoSparklesSet2_AndFlash(u8 taskID) +static void Task_Sparkles_SprayAndFlash(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 128) + if (gTasks[taskId].tTimer < 128) { u8 i; - switch (gTasks[taskID].tFrameCounter) + switch (gTasks[taskId].tTimer) { default: - if (gTasks[taskID].tFrameCounter < 50) - CreatePostEvoSparkleSet2(Random() & 7); + if (gTasks[taskId].tTimer < 50) + CreateSparkle_Spray(Random() & 7); break; case 0: for (i = 0; i < 8; i++) - CreatePostEvoSparkleSet2(i); + CreateSparkle_Spray(i); break; case 32: BeginNormalPaletteFade(0xFFFF041C, 0x10, 0x10, 0, RGB_WHITE); // was 0xFFF9001C in R/S break; } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else - gTasks[taskID].func = EvoTask_DestroyPostSet2AndFlashTask; + gTasks[taskId].func = Task_Sparkles_SprayAndFlash_End; } -static void EvoTask_DestroyPostSet2AndFlashTask(u8 taskID) +static void Task_Sparkles_SprayAndFlash_End(u8 taskId) { if (!gPaletteFade.active) - DestroyTask(taskID); + DestroyTask(taskId); } -u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species) +// Separate from EvolutionSparkles_SprayAndFlash for difference in fade color +u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species) { - u8 taskID = CreateTask(EvoTask_BeginPostSparklesSet2_AndFlash_Trade, 0); - gTasks[taskID].data[2] = species; - return taskID; + u8 taskId = CreateTask(Task_Sparkles_SprayAndFlashTrade_Init, 0); + gTasks[taskId].tSpecies = species; + return taskId; } -static void EvoTask_BeginPostSparklesSet2_AndFlash_Trade(u8 taskID) +static void Task_Sparkles_SprayAndFlashTrade_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; + gTasks[taskId].tTimer = 0; CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30); BeginNormalPaletteFade(0xFFF90400, 0, 0, 0x10, RGB_WHITE); // was 0xFFFF0001 in R/S - gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade; + gTasks[taskId].func = Task_Sparkles_SprayAndFlashTrade; PlaySE(SE_M_PETAL_DANCE); } -static void EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade(u8 taskID) +static void Task_Sparkles_SprayAndFlashTrade(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 128) + if (gTasks[taskId].tTimer < 128) { u8 i; - switch (gTasks[taskID].tFrameCounter) + switch (gTasks[taskId].tTimer) { default: - if (gTasks[taskID].tFrameCounter < 50) - CreatePostEvoSparkleSet2(Random() & 7); + if (gTasks[taskId].tTimer < 50) + CreateSparkle_Spray(Random() & 7); break; case 0: for (i = 0; i < 8; i++) - CreatePostEvoSparkleSet2(i); + CreateSparkle_Spray(i); break; case 32: BeginNormalPaletteFade(0xFFFF0400, 0x10, 0x10, 0, RGB_WHITE); // was 0xFFFF0001 in R/S break; } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else - gTasks[taskID].func = EvoTask_DestroyPostSet2AndFlashTask; + gTasks[taskId].func = Task_Sparkles_SprayAndFlash_End; } -#undef tFrameCounter +#undef tTimer +#undef tSpecies -static void PokeEvoSprite_DummySpriteCB(struct Sprite* sprite) +static void SpriteCB_EvolutionMonSprite(struct Sprite* sprite) { } -#define tPreEvoSpriteID data[1] -#define tPostEvoSpriteID data[2] +#define tPreEvoSpriteId data[1] +#define tPostEvoSpriteId data[2] +#define tPreEvoScale data[3] +#define tPostEvoScale data[4] +#define tShowingPostEvo data[5] +#define tScaleSpeed data[6] #define tEvoStopped data[8] -u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID) +#define MATRIX_PRE_EVO 30 +#define MATRIX_POST_EVO 31 + +#define MON_MAX_SCALE 256 +#define MON_MIN_SCALE 16 + +// Alternately grow/shrink the pre-evolution and post-evolution mon sprites +u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId) { u16 i; u16 stack[16]; - u8 taskID; + u8 taskId; s32 toDiv; - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(stack); i++) stack[i] = 0x7FFF; - taskID = CreateTask(sub_817C4EC, 0); - gTasks[taskID].tPreEvoSpriteID = preEvoSpriteID; - gTasks[taskID].tPostEvoSpriteID = postEvoSpriteID; - gTasks[taskID].data[3] = 256; - gTasks[taskID].data[4] = 16; + taskId = CreateTask(Task_CycleEvolutionMonSprite_Init, 0); + gTasks[taskId].tPreEvoSpriteId = preEvoSpriteId; + gTasks[taskId].tPostEvoSpriteId = postEvoSpriteId; + gTasks[taskId].tPreEvoScale = MON_MAX_SCALE; + gTasks[taskId].tPostEvoScale = MON_MIN_SCALE; toDiv = 65536; - SetOamMatrix(30, 256, 0, 0, 256); - SetOamMatrix(31, toDiv / gTasks[taskID].data[4], 0, 0, toDiv / gTasks[taskID].data[4]); + SetOamMatrix(MATRIX_PRE_EVO, MON_MAX_SCALE, 0, 0, MON_MAX_SCALE); + SetOamMatrix(MATRIX_POST_EVO, toDiv / gTasks[taskId].tPostEvoScale, 0, 0, toDiv / gTasks[taskId].tPostEvoScale); - gSprites[preEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB; - gSprites[preEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; - gSprites[preEvoSpriteID].oam.matrixNum = 30; - gSprites[preEvoSpriteID].invisible = FALSE; - CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteID].oam.paletteNum * 16)], 16); + gSprites[preEvoSpriteId].callback = SpriteCB_EvolutionMonSprite; + gSprites[preEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[preEvoSpriteId].oam.matrixNum = MATRIX_PRE_EVO; + gSprites[preEvoSpriteId].invisible = FALSE; + CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteId].oam.paletteNum * 16)], 16); - gSprites[postEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB; - gSprites[postEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; - gSprites[postEvoSpriteID].oam.matrixNum = 31; - gSprites[postEvoSpriteID].invisible = FALSE; - CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteID].oam.paletteNum * 16)], 16); + gSprites[postEvoSpriteId].callback = SpriteCB_EvolutionMonSprite; + gSprites[postEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[postEvoSpriteId].oam.matrixNum = MATRIX_POST_EVO; + gSprites[postEvoSpriteId].invisible = FALSE; + CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteId].oam.paletteNum * 16)], 16); - gTasks[taskID].tEvoStopped = FALSE; - return taskID; + gTasks[taskId].tEvoStopped = FALSE; + return taskId; } -static void sub_817C4EC(u8 taskID) +static void Task_CycleEvolutionMonSprite_Init(u8 taskId) { - gTasks[taskID].data[5] = 0; - gTasks[taskID].data[6] = 8; - gTasks[taskID].func = sub_817C510; + gTasks[taskId].tShowingPostEvo = FALSE; + gTasks[taskId].tScaleSpeed = 8; + gTasks[taskId].func = Task_CycleEvolutionMonSprite_TryEnd; } -static void sub_817C510(u8 taskID) +// Try to end sprite cycling +// If evo hasn't stopped or growth/shrink speed hasn't been maxed out, start another cycle +static void Task_CycleEvolutionMonSprite_TryEnd(u8 taskId) { - if (gTasks[taskID].tEvoStopped) - PreEvoVisible_PostEvoInvisible_KillTask(taskID); - else if (gTasks[taskID].data[6] == 128) - PreEvoInvisible_PostEvoVisible_KillTask(taskID); + if (gTasks[taskId].tEvoStopped) + EndOnPreEvoMon(taskId); + else if (gTasks[taskId].tScaleSpeed == 128) + EndOnPostEvoMon(taskId); else { - gTasks[taskID].data[6] += 2; - gTasks[taskID].data[5] ^= 1; - gTasks[taskID].func = sub_817C560; + gTasks[taskId].tScaleSpeed += 2; + gTasks[taskId].tShowingPostEvo ^= 1; + gTasks[taskId].func = Task_CycleEvolutionMonSprite_UpdateSize; } } -static void sub_817C560(u8 taskID) +static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId) { - if (gTasks[taskID].tEvoStopped) - gTasks[taskID].func = PreEvoVisible_PostEvoInvisible_KillTask; + if (gTasks[taskId].tEvoStopped) + gTasks[taskId].func = EndOnPreEvoMon; else { u16 oamMatrixArg; - u8 r6 = 0; - if (gTasks[taskID].data[5] == 0) + u8 numSpritesFinished = 0; + if (!gTasks[taskId].tShowingPostEvo) { - if (gTasks[taskID].data[3] < 256 - gTasks[taskID].data[6]) - gTasks[taskID].data[3] += gTasks[taskID].data[6]; + // Set pre-evo sprite growth + if (gTasks[taskId].tPreEvoScale < MON_MAX_SCALE - gTasks[taskId].tScaleSpeed) + gTasks[taskId].tPreEvoScale += gTasks[taskId].tScaleSpeed; else { - gTasks[taskID].data[3] = 256; - r6++; + gTasks[taskId].tPreEvoScale = MON_MAX_SCALE; + numSpritesFinished++; } - if (gTasks[taskID].data[4] > 16 + gTasks[taskID].data[6]) - gTasks[taskID].data[4] -= gTasks[taskID].data[6]; + + // Set post-evo sprite shrink + if (gTasks[taskId].tPostEvoScale > MON_MIN_SCALE + gTasks[taskId].tScaleSpeed) + gTasks[taskId].tPostEvoScale -= gTasks[taskId].tScaleSpeed; else { - gTasks[taskID].data[4] = 16; - r6++; + gTasks[taskId].tPostEvoScale = MON_MIN_SCALE; + numSpritesFinished++; } } else { - if (gTasks[taskID].data[4] < 256 - gTasks[taskID].data[6]) - gTasks[taskID].data[4] += gTasks[taskID].data[6]; + // Set post-evo sprite growth + if (gTasks[taskId].tPostEvoScale < MON_MAX_SCALE - gTasks[taskId].tScaleSpeed) + gTasks[taskId].tPostEvoScale += gTasks[taskId].tScaleSpeed; else { - gTasks[taskID].data[4] = 256; - r6++; + gTasks[taskId].tPostEvoScale = MON_MAX_SCALE; + numSpritesFinished++; } - if (gTasks[taskID].data[3] > 16 + gTasks[taskID].data[6]) - gTasks[taskID].data[3] -= gTasks[taskID].data[6]; + + // Set pre-evo sprite shrink + if (gTasks[taskId].tPreEvoScale > MON_MIN_SCALE + gTasks[taskId].tScaleSpeed) + gTasks[taskId].tPreEvoScale -= gTasks[taskId].tScaleSpeed; else { - gTasks[taskID].data[3] = 16; - r6++; + gTasks[taskId].tPreEvoScale = MON_MIN_SCALE; + numSpritesFinished++; } } - oamMatrixArg = 65536 / gTasks[taskID].data[3]; - SetOamMatrix(30, oamMatrixArg, 0, 0, oamMatrixArg); - oamMatrixArg = 65536 / gTasks[taskID].data[4]; - SetOamMatrix(31, oamMatrixArg, 0, 0, oamMatrixArg); - if (r6 == 2) - gTasks[taskID].func = sub_817C510; + // Grow/shrink pre-evo sprite + oamMatrixArg = 65536 / gTasks[taskId].tPreEvoScale; + SetOamMatrix(MATRIX_PRE_EVO, oamMatrixArg, 0, 0, oamMatrixArg); + + // Grow/shrink post-evo sprite + oamMatrixArg = 65536 / gTasks[taskId].tPostEvoScale; + SetOamMatrix(MATRIX_POST_EVO, oamMatrixArg, 0, 0, oamMatrixArg); + + // Both sprites have reached their size extreme + if (numSpritesFinished == 2) + gTasks[taskId].func = Task_CycleEvolutionMonSprite_TryEnd; } } -static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskID) +static void EndOnPostEvoMon(u8 taskId) { - gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF; - gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = TRUE; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPreEvoSpriteId].invisible = TRUE; - gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF; - gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = FALSE; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPostEvoSpriteId].invisible = FALSE; - DestroyTask(taskID); + DestroyTask(taskId); } -static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskID) +static void EndOnPreEvoMon(u8 taskId) { - gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF; - gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = FALSE; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPreEvoSpriteId].invisible = FALSE; - gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF; - gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = TRUE; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPostEvoSpriteId].invisible = TRUE; - DestroyTask(taskID); + DestroyTask(taskId); } diff --git a/src/evolution_scene.c b/src/evolution_scene.c index d41bc5970a..08f816f4fe 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -32,114 +32,119 @@ #include "constants/battle_string_ids.h" #include "constants/songs.h" #include "constants/rgb.h" +#include "constants/items.h" + +extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; struct EvoInfo { - u8 preEvoSpriteID; - u8 postEvoSpriteID; - u8 evoTaskID; - u8 field_3; + u8 preEvoSpriteId; + u8 postEvoSpriteId; + u8 evoTaskId; + u8 delayTimer; u16 savedPalette[48]; }; -// EWRAM vars static EWRAM_DATA struct EvoInfo *sEvoStructPtr = NULL; -static EWRAM_DATA u16 *sEvoMovingBgPtr = NULL; +static EWRAM_DATA u16 *sBgAnimPal = NULL; -// IWRAM common void (*gCB2_AfterEvolution)(void); #define sEvoCursorPos gBattleCommunication[1] // when learning a new move -#define sEvoGraphicsTaskID gBattleCommunication[2] +#define sEvoGraphicsTaskId gBattleCommunication[2] -// this file's functions -static void Task_EvolutionScene(u8 taskID); -static void Task_TradeEvolutionScene(u8 taskID); +static void Task_EvolutionScene(u8 taskId); +static void Task_TradeEvolutionScene(u8 taskId); static void CB2_EvolutionSceneUpdate(void); static void CB2_TradeEvolutionSceneUpdate(void); static void EvoDummyFunc(void); static void VBlankCB_EvolutionScene(void); static void VBlankCB_TradeEvolutionScene(void); -static void sub_81150D8(void); -static void sub_8140134(void); -static void EvoScene_DoMonAnimation(u8 monSpriteId, u16 speciesId); +static void EvoScene_DoMonAnimAndCry(u8 monSpriteId, u16 speciesId); static bool32 EvoScene_IsMonAnimFinished(u8 monSpriteId); -static void InitMovingBackgroundTask(bool8 isLink); -static void sub_813FEE8(u8 taskId); -static void sub_8140174(void); +static void StartBgAnimation(bool8 isLink); +static void StopBgAnimation(void); +static void Task_AnimateBg(u8 taskId); +static void RestoreBgAfterAnim(void); -// const data -static const u16 sUnknown_085B4114[] = INCBIN_U16("graphics/evolution_scene/unknown_5B4114.gbapal"); -static const u32 sUnknown_085B4134[] = INCBIN_U32("graphics/evolution_scene/bg.4bpp.lz"); -static const u32 sUnknown_085B482C[] = INCBIN_U32("graphics/evolution_scene/bg.bin.lz"); -static const u32 sUnknown_085B4D10[] = INCBIN_U32("graphics/evolution_scene/bg2.bin.lz"); -static const u16 sUnknown_085B51E4[] = INCBIN_U16("graphics/evolution_scene/gray_transition_intro.gbapal"); -static const u16 sUnknown_085B53E4[] = INCBIN_U16("graphics/evolution_scene/gray_transition_lighten.gbapal"); -static const u16 sUnknown_085B5544[] = INCBIN_U16("graphics/evolution_scene/gray_transition_darken.gbapal"); -static const u16 sUnknown_085B56E4[] = INCBIN_U16("graphics/evolution_scene/gray_transition_outro.gbapal"); -static const u16 sUnknown_085B5884[] = INCBIN_U16("graphics/evolution_scene/transition.gbapal"); +static const u16 sUnusedPal1[] = INCBIN_U16("graphics/evolution_scene/unused_1.gbapal"); +static const u32 sBgAnim_Gfx[] = INCBIN_U32("graphics/evolution_scene/bg.4bpp.lz"); +static const u32 sBgAnim_Inner_Tilemap[] = INCBIN_U32("graphics/evolution_scene/bg_inner.bin.lz"); +static const u32 sBgAnim_Outer_Tilemap[] = INCBIN_U32("graphics/evolution_scene/bg_outer.bin.lz"); +static const u16 sBgAnim_Intro_Pal[] = INCBIN_U16("graphics/evolution_scene/bg_anim_intro.gbapal"); +static const u16 sUnusedPal2[] = INCBIN_U16("graphics/evolution_scene/unused_2.gbapal"); +static const u16 sUnusedPal3[] = INCBIN_U16("graphics/evolution_scene/unused_3.gbapal"); +static const u16 sUnusedPal4[] = INCBIN_U16("graphics/evolution_scene/unused_4.gbapal"); +static const u16 sBgAnim_Pal[] = INCBIN_U16("graphics/evolution_scene/bg_anim.gbapal"); -static const u8 Text_ShedinjaJapaneseName[] = _("ヌケニン"); +static const u8 sText_ShedinjaJapaneseName[] = _("ヌケニン"); -static const u8 sUnknown_085B58C9[][4] = +// The below table is used by Task_UpdateBgPalette to control the speed at which the bg color updates. +// The first two values are indexes into sBgAnim_PalIndexes (indirectly, via sBgAnimPal), and are +// the start and end of the range of colors in sBgAnim_PalIndexes it will move through incrementally +// before starting over. It will repeat this cycle x number of times, where x = the 3rd value, +// delaying each increment by y, where y = the 4th value. +// Once it has cycled x number of times, it will move to the next array in this table. +static const u8 sBgAnim_PaletteControl[][4] = { - { 0x00, 0x0C, 0x01, 0x06 }, - { 0x0D, 0x24, 0x05, 0x02 }, - { 0x0D, 0x18, 0x01, 0x02 }, - { 0x25, 0x31, 0x01, 0x06 }, + { 0, 12, 1, 6 }, + { 13, 36, 5, 2 }, + { 13, 24, 1, 2 }, + { 37, 49, 1, 6 }, }; -static const u8 sUnknown_085B58D9[][16] = { - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x0B, 0x00, 0x00 }, - { 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00, 0x00 }, - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x00 }, - { 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x00, 0x00 }, - { 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x00, 0x00 }, - { 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x00, 0x00 }, - { 0x00, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x00, 0x00 }, - { 0x00, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x00, 0x00 }, - { 0x00, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x00, 0x00 }, - { 0x00, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x00, 0x00 }, - { 0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x00, 0x00 }, - { 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x00, 0x00 }, - { 0x00, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x00, 0x00 }, - { 0x00, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x00, 0x00 }, - { 0x00, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00 }, - { 0x00, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00 }, - { 0x00, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x00, 0x00 }, - { 0x00, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00 }, - { 0x00, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00 }, - { 0x00, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00 }, - { 0x00, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00 }, - { 0x00, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00 }, - { 0x00, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00 }, - { 0x00, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x00, 0x00 }, - { 0x00, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00 }, - { 0x00, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00, 0x00 }, - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x00 }, - { 0x00, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00 }, - { 0x00, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } +// Indexes into sBgAnim_Pal, 0 is black, transitioning to a bright light blue (172, 213, 255) at 13 +static const u8 sBgAnim_PalIndexes[][16] = { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0 }, + { 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0 }, + { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0 }, + { 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11, 0, 0 }, + { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0 }, + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0 }, + { 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 12, 0, 0 }, + { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 12, 11, 0, 0 }, + { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 12, 11, 10, 0, 0 }, + { 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 12, 11, 10, 9, 0, 0 }, + { 0, 6, 7, 8, 9, 10, 11, 12, 13, 12, 11, 10, 9, 8, 0, 0 }, + { 0, 7, 8, 9, 10, 11, 12, 13, 12, 11, 10, 9, 8, 7, 0, 0 }, + { 0, 8, 9, 10, 11, 12, 13, 12, 11, 10, 9, 8, 7, 6, 0, 0 }, + { 0, 9, 10, 11, 12, 13, 12, 11, 10, 9, 8, 7, 6, 5, 0, 0 }, + { 0, 10, 11, 12, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 0, 0 }, + { 0, 11, 12, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 0, 0 }, + { 0, 12, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 0, 0 }, + { 0, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }, + { 0, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 0, 0 }, + { 0, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 0, 0 }, + { 0, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 0, 0 }, + { 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 0, 0 }, + { 0, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 0, 0 }, + { 0, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 0, 0 }, + { 0, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0 }, + { 0, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0 }, + { 0, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0 }, + { 0, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0 }, + { 0, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0 }, + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0 }, + { 0, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0 }, + { 0, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0 }, + { 0, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0 }, + { 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; static void CB2_BeginEvolutionScene(void) @@ -155,53 +160,53 @@ static void CB2_BeginEvolutionScene(void) #define tBits data[3] #define tLearnsFirstMove data[4] #define tLearnMoveState data[6] -#define tData7 data[7] -#define tData8 data[8] +#define tLearnMoveYesState data[7] +#define tLearnMoveNoState data[8] #define tEvoWasStopped data[9] -#define tPartyID data[10] +#define tPartyId data[10] -#define TASK_BIT_CAN_STOP 0x1 -#define TASK_BIT_LEARN_MOVE 0x80 +#define TASK_BIT_CAN_STOP (1 << 0) +#define TASK_BIT_LEARN_MOVE (1 << 7) -static void Task_BeginEvolutionScene(u8 taskID) +static void Task_BeginEvolutionScene(u8 taskId) { struct Pokemon* mon = NULL; - switch (gTasks[taskID].tState) + switch (gTasks[taskId].tState) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskID].tState++; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); + gTasks[taskId].tState++; break; case 1: if (!gPaletteFade.active) { - u16 speciesToEvolve; + u16 postEvoSpecies; bool8 canStopEvo; - u8 partyID; + u8 partyId; - mon = &gPlayerParty[gTasks[taskID].tPartyID]; - speciesToEvolve = gTasks[taskID].tPostEvoSpecies; - canStopEvo = gTasks[taskID].tCanStop; - partyID = gTasks[taskID].tPartyID; + mon = &gPlayerParty[gTasks[taskId].tPartyId]; + postEvoSpecies = gTasks[taskId].tPostEvoSpecies; + canStopEvo = gTasks[taskId].tCanStop; + partyId = gTasks[taskId].tPartyId; - DestroyTask(taskID); - EvolutionScene(mon, speciesToEvolve, canStopEvo, partyID); + DestroyTask(taskId); + EvolutionScene(mon, postEvoSpecies, canStopEvo, partyId); } break; } } -void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID) +void BeginEvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u8 partyId) { - u8 taskID = CreateTask(Task_BeginEvolutionScene, 0); - gTasks[taskID].tState = 0; - gTasks[taskID].tPostEvoSpecies = speciesToEvolve; - gTasks[taskID].tCanStop = canStopEvo; - gTasks[taskID].tPartyID = partyID; + u8 taskId = CreateTask(Task_BeginEvolutionScene, 0); + gTasks[taskId].tState = 0; + gTasks[taskId].tPostEvoSpecies = postEvoSpecies; + gTasks[taskId].tCanStop = canStopEvo; + gTasks[taskId].tPartyId = partyId; SetMainCallback2(CB2_BeginEvolutionScene); } -void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID) +void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u8 partyId) { u8 name[20]; u16 currSpecies; @@ -248,7 +253,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, GetMonData(mon, MON_DATA_NICKNAME, name); StringCopy10(gStringVar1, name); - StringCopy(gStringVar2, gSpeciesNames[speciesToEvolve]); + StringCopy(gStringVar2, gSpeciesNames[postEvoSpecies]); // preEvo sprite currSpecies = GetMonData(mon, MON_DATA_SPECIES); @@ -262,38 +267,38 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, SetMultiuseSpriteTemplateToPokemon(currSpecies, 1); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->preEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->preEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 1; gSprites[ID].invisible = TRUE; // postEvo sprite - DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve], + DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies], gMonSpritesGfxPtr->sprites.ptr[3], - speciesToEvolve); - pokePal = GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, trainerId, personality); + postEvoSpecies); + pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); LoadCompressedPalette(pokePal->data, 0x120, 0x20); - SetMultiuseSpriteTemplateToPokemon(speciesToEvolve, 3); + SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 3); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; gSprites[ID].invisible = TRUE; LoadEvoSparkleSpriteAndPal(); - sEvoStructPtr->evoTaskID = ID = CreateTask(Task_EvolutionScene, 0); + sEvoStructPtr->evoTaskId = ID = CreateTask(Task_EvolutionScene, 0); gTasks[ID].tState = 0; gTasks[ID].tPreEvoSpecies = currSpecies; - gTasks[ID].tPostEvoSpecies = speciesToEvolve; + gTasks[ID].tPostEvoSpecies = postEvoSpecies; gTasks[ID].tCanStop = canStopEvo; gTasks[ID].tLearnsFirstMove = TRUE; gTasks[ID].tEvoWasStopped = FALSE; - gTasks[ID].tPartyID = partyID; + gTasks[ID].tPartyId = partyId; - memcpy(&sEvoStructPtr->savedPalette, &gPlttBufferUnfaded[0x20], 0x60); + memcpy(&sEvoStructPtr->savedPalette, &gPlttBufferUnfaded[0x20], sizeof(sEvoStructPtr->savedPalette)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); @@ -309,11 +314,11 @@ static void CB2_EvolutionSceneLoadGraphics(void) const struct CompressedSpritePalette* pokePal; u16 postEvoSpecies; u32 trainerId, personality; - struct Pokemon* Mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskID].tPartyID]; + struct Pokemon* mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskId].tPartyId]; - postEvoSpecies = gTasks[sEvoStructPtr->evoTaskID].tPostEvoSpecies; - trainerId = GetMonData(Mon, MON_DATA_OT_ID); - personality = GetMonData(Mon, MON_DATA_PERSONALITY); + postEvoSpecies = gTasks[sEvoStructPtr->evoTaskId].tPostEvoSpecies; + trainerId = GetMonData(mon, MON_DATA_OT_ID); + personality = GetMonData(mon, MON_DATA_PERSONALITY); SetHBlankCallback(NULL); SetVBlankCallback(NULL); @@ -355,7 +360,7 @@ static void CB2_EvolutionSceneLoadGraphics(void) SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 3); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; @@ -366,7 +371,7 @@ static void CB2_EvolutionSceneLoadGraphics(void) SetVBlankCallback(VBlankCB_EvolutionScene); SetMainCallback2(CB2_EvolutionSceneUpdate); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); ShowBg(0); ShowBg(1); @@ -376,8 +381,8 @@ static void CB2_EvolutionSceneLoadGraphics(void) static void CB2_TradeEvolutionSceneLoadGraphics(void) { - struct Pokemon* Mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskID].tPartyID]; - u16 postEvoSpecies = gTasks[sEvoStructPtr->evoTaskID].tPostEvoSpecies; + struct Pokemon* mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskId].tPartyId]; + u16 postEvoSpecies = gTasks[sEvoStructPtr->evoTaskId].tPostEvoSpecies; switch (gMain.state) { @@ -416,8 +421,8 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) case 4: { const struct CompressedSpritePalette* pokePal; - u32 trainerId = GetMonData(Mon, MON_DATA_OT_ID); - u32 personality = GetMonData(Mon, MON_DATA_PERSONALITY); + u32 trainerId = GetMonData(mon, MON_DATA_OT_ID); + u32 personality = GetMonData(mon, MON_DATA_PERSONALITY); DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies], gMonSpritesGfxPtr->sprites.ptr[3], postEvoSpecies); @@ -432,7 +437,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 1); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; @@ -446,11 +451,11 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); } - BlendPalettes(-1,0x10, 0); + BlendPalettes(PALETTES_ALL, 0x10, 0); gMain.state++; break; case 7: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); InitTradeSequenceBgGpuRegs(); ShowBg(0); ShowBg(1); @@ -460,7 +465,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) } } -void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID) +void TradeEvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, u8 preEvoSpriteId, u8 partyId) { u8 name[20]; u16 currSpecies; @@ -470,7 +475,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri GetMonData(mon, MON_DATA_NICKNAME, name); StringCopy10(gStringVar1, name); - StringCopy(gStringVar2, gSpeciesNames[speciesToEvolve]); + StringCopy(gStringVar2, gSpeciesNames[postEvoSpecies]); gAffineAnimsDisabled = TRUE; @@ -480,18 +485,18 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri trainerId = GetMonData(mon, MON_DATA_OT_ID); sEvoStructPtr = AllocZeroed(sizeof(struct EvoInfo)); - sEvoStructPtr->preEvoSpriteID = preEvoSpriteID; + sEvoStructPtr->preEvoSpriteId = preEvoSpriteId; - DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve], + DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies], gMonSpritesGfxPtr->sprites.ptr[1], - speciesToEvolve); + postEvoSpecies); - pokePal = GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, trainerId, personality); + pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); LoadCompressedPalette(pokePal->data, 0x120, 0x20); - SetMultiuseSpriteTemplateToPokemon(speciesToEvolve, 1); + SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 1); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; @@ -499,13 +504,13 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri LoadEvoSparkleSpriteAndPal(); - sEvoStructPtr->evoTaskID = ID = CreateTask(Task_TradeEvolutionScene, 0); + sEvoStructPtr->evoTaskId = ID = CreateTask(Task_TradeEvolutionScene, 0); gTasks[ID].tState = 0; gTasks[ID].tPreEvoSpecies = currSpecies; - gTasks[ID].tPostEvoSpecies = speciesToEvolve; + gTasks[ID].tPostEvoSpecies = postEvoSpecies; gTasks[ID].tLearnsFirstMove = TRUE; gTasks[ID].tEvoWasStopped = FALSE; - gTasks[ID].tPartyID = partyID; + gTasks[ID].tPartyId = partyId; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -543,231 +548,273 @@ static void CB2_TradeEvolutionSceneUpdate(void) static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon) { u32 data = 0; - if (gEvolutionTable[preEvoSpecies][0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < 6) + if (gEvolutionTable[preEvoSpecies][0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < PARTY_SIZE) { s32 i; struct Pokemon* shedinja = &gPlayerParty[gPlayerPartyCount]; - const struct Evolution *evos; - const struct Evolution *evos2; CopyMon(&gPlayerParty[gPlayerPartyCount], mon, sizeof(struct Pokemon)); - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_SPECIES, (&gEvolutionTable[preEvoSpecies][1].targetSpecies)); - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_NICKNAME, (gSpeciesNames[gEvolutionTable[preEvoSpecies][1].targetSpecies])); - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_HELD_ITEM, (&data)); - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MARKINGS, (&data)); - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_ENCRYPT_SEPARATOR, (&data)); + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_SPECIES, &gEvolutionTable[preEvoSpecies][1].targetSpecies); + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_NICKNAME, gSpeciesNames[gEvolutionTable[preEvoSpecies][1].targetSpecies]); + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_HELD_ITEM, &data); + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MARKINGS, &data); + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_ENCRYPT_SEPARATOR, &data); - for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + 5; i++) - SetMonData(&gPlayerParty[gPlayerPartyCount], i, (&data)); - for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_FATEFUL_ENCOUNTER; i++) - SetMonData(&gPlayerParty[gPlayerPartyCount], i, (&data)); + for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + CONTEST_CATEGORIES_COUNT; i++) + SetMonData(&gPlayerParty[gPlayerPartyCount], i, &data); + for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_UNUSED_RIBBONS; i++) + SetMonData(&gPlayerParty[gPlayerPartyCount], i, &data); - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_STATUS, (&data)); - data = 0xFF; - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MAIL, (&data)); + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_STATUS, &data); + data = MAIL_NONE; + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MAIL, &data); CalculateMonStats(&gPlayerParty[gPlayerPartyCount]); CalculatePlayerPartyCount(); - // can't match it otherwise, ehh - evos2 = gEvolutionTable[0]; - evos = evos2 + EVOS_PER_MON * preEvoSpecies; - - GetSetPokedexFlag(SpeciesToNationalPokedexNum(evos[1].targetSpecies), FLAG_SET_SEEN); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(evos[1].targetSpecies), FLAG_SET_CAUGHT); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gEvolutionTable[preEvoSpecies][1].targetSpecies), FLAG_SET_SEEN); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gEvolutionTable[preEvoSpecies][1].targetSpecies), FLAG_SET_CAUGHT); if (GetMonData(shedinja, MON_DATA_SPECIES) == SPECIES_SHEDINJA && GetMonData(shedinja, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_NINJASK) - SetMonData(shedinja, MON_DATA_NICKNAME, Text_ShedinjaJapaneseName); + SetMonData(shedinja, MON_DATA_NICKNAME, sText_ShedinjaJapaneseName); } } -static void Task_EvolutionScene(u8 taskID) +// States for the main switch in Task_EvolutionScene +enum { + EVOSTATE_FADE_IN, + EVOSTATE_INTRO_MSG, + EVOSTATE_INTRO_MON_ANIM, + EVOSTATE_INTRO_SOUND, + EVOSTATE_START_MUSIC, + EVOSTATE_START_BG_AND_SPARKLE_SPIRAL, + EVOSTATE_SPARKLE_ARC, + EVOSTATE_CYCLE_MON_SPRITE, + EVOSTATE_WAIT_CYCLE_MON_SPRITE, + EVOSTATE_SPARKLE_CIRCLE, + EVOSTATE_SPARKLE_SPRAY, + EVOSTATE_EVO_SOUND, + EVOSTATE_RESTORE_SCREEN, + EVOSTATE_EVO_MON_ANIM, + EVOSTATE_SET_MON_EVOLVED, + EVOSTATE_TRY_LEARN_MOVE, + EVOSTATE_END, + EVOSTATE_CANCEL, + EVOSTATE_CANCEL_MON_ANIM, + EVOSTATE_CANCEL_MSG, + EVOSTATE_LEARNED_MOVE, + EVOSTATE_TRY_LEARN_ANOTHER_MOVE, + EVOSTATE_REPLACE_MOVE, +}; + +// States for the switch in EVOSTATE_REPLACE_MOVE +enum { + MVSTATE_INTRO_MSG_1, + MVSTATE_INTRO_MSG_2, + MVSTATE_INTRO_MSG_3, + MVSTATE_PRINT_YES_NO, + MVSTATE_HANDLE_YES_NO, + MVSTATE_SHOW_MOVE_SELECT, + MVSTATE_HANDLE_MOVE_SELECT, + MVSTATE_FORGET_MSG_1, + MVSTATE_FORGET_MSG_2, + MVSTATE_LEARNED_MOVE, + MVSTATE_ASK_CANCEL, + MVSTATE_CANCEL, + MVSTATE_RETRY_AFTER_HM, +}; + +// Task data from CycleEvolutionMonSprite +#define tEvoStopped data[8] + +static void Task_EvolutionScene(u8 taskId) { u32 var; - struct Pokemon* mon = &gPlayerParty[gTasks[taskID].tPartyID]; + struct Pokemon* mon = &gPlayerParty[gTasks[taskId].tPartyId]; // check if B Button was held, so the evolution gets stopped if (gMain.heldKeys == B_BUTTON - && gTasks[taskID].tState == 8 - && gTasks[sEvoGraphicsTaskID].isActive - && gTasks[taskID].tBits & TASK_BIT_CAN_STOP) + && gTasks[taskId].tState == EVOSTATE_WAIT_CYCLE_MON_SPRITE + && gTasks[sEvoGraphicsTaskId].isActive + && gTasks[taskId].tBits & TASK_BIT_CAN_STOP) { - gTasks[taskID].tState = 17; - gTasks[sEvoGraphicsTaskID].EvoGraphicsTaskEvoStop = TRUE; - sub_8140134(); + gTasks[taskId].tState = EVOSTATE_CANCEL; + gTasks[sEvoGraphicsTaskId].tEvoStopped = TRUE; + StopBgAnimation(); return; } - switch (gTasks[taskID].tState) + switch (gTasks[taskId].tState) { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); - gSprites[sEvoStructPtr->preEvoSpriteID].invisible = FALSE; - gTasks[taskID].tState++; + case EVOSTATE_FADE_IN: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); + gSprites[sEvoStructPtr->preEvoSpriteId].invisible = FALSE; + gTasks[taskId].tState++; ShowBg(0); ShowBg(1); ShowBg(2); ShowBg(3); break; - case 1: // print 'whoa, poke is evolving!!!' msg + case EVOSTATE_INTRO_MSG: if (!gPaletteFade.active) { StringExpandPlaceholders(gStringVar4, gText_PkmnIsEvolving); BattlePutTextOnWindow(gStringVar4, 0); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 2: // wait for string, animate mon(and play its cry) + case EVOSTATE_INTRO_MON_ANIM: if (!IsTextPrinterActive(0)) { - EvoScene_DoMonAnimation(sEvoStructPtr->preEvoSpriteID, gTasks[taskID].tPreEvoSpecies); - gTasks[taskID].tState++; + EvoScene_DoMonAnimAndCry(sEvoStructPtr->preEvoSpriteId, gTasks[taskId].tPreEvoSpecies); + gTasks[taskId].tState++; } break; - case 3: - if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) // wait for animation, play tu du SE + case EVOSTATE_INTRO_SOUND: + if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteId)) { PlaySE(MUS_EVOLUTION_INTRO); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 4: // play evolution music and fade screen black + case EVOSTATE_START_MUSIC: if (!IsSEPlaying()) { + // Start music, fade background to black PlayNewMapMusic(MUS_EVOLUTION); - gTasks[taskID].tState++; + gTasks[taskId].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK); } break; - case 5: // launch moving bg task, preapre evo sparkles + case EVOSTATE_START_BG_AND_SPARKLE_SPIRAL: if (!gPaletteFade.active) { - InitMovingBackgroundTask(FALSE); - sEvoGraphicsTaskID = LaunchTask_PreEvoSparklesSet1(17); - gTasks[taskID].tState++; + StartBgAnimation(FALSE); + sEvoGraphicsTaskId = EvolutionSparkles_SpiralUpward(17); + gTasks[taskId].tState++; } break; - case 6: // another set of evo sparkles - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_SPARKLE_ARC: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - gTasks[taskID].tState++; - sEvoStructPtr->field_3 = 1; - sEvoGraphicsTaskID = LaunchTask_PreEvoSparklesSet2(); + gTasks[taskId].tState++; + sEvoStructPtr->delayTimer = 1; + sEvoGraphicsTaskId = EvolutionSparkles_ArcDown(); } break; - case 7: // launch task that flashes pre evo with post evo sprites - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_CYCLE_MON_SPRITE: // launch task that flashes pre evo with post evo sprites + if (!gTasks[sEvoGraphicsTaskId].isActive) { - sEvoGraphicsTaskID = sub_817C3A0(sEvoStructPtr->preEvoSpriteID, sEvoStructPtr->postEvoSpriteID); - gTasks[taskID].tState++; + sEvoGraphicsTaskId = CycleEvolutionMonSprite(sEvoStructPtr->preEvoSpriteId, sEvoStructPtr->postEvoSpriteId); + gTasks[taskId].tState++; } break; - case 8: // wait for the above task to finish - if (--sEvoStructPtr->field_3 == 0) + case EVOSTATE_WAIT_CYCLE_MON_SPRITE: + if (--sEvoStructPtr->delayTimer == 0) { - sEvoStructPtr->field_3 = 3; - if (!gTasks[sEvoGraphicsTaskID].isActive) - gTasks[taskID].tState++; + sEvoStructPtr->delayTimer = 3; + if (!gTasks[sEvoGraphicsTaskId].isActive) + gTasks[taskId].tState++; } break; - case 9: // post evo sparkles - sEvoGraphicsTaskID = LaunchTask_PostEvoSparklesSet1(); - gTasks[taskID].tState++; + case EVOSTATE_SPARKLE_CIRCLE: + sEvoGraphicsTaskId = EvolutionSparkles_CircleInward(); + gTasks[taskId].tState++; break; - case 10: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_SPARKLE_SPRAY: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - sEvoGraphicsTaskID = LaunchTask_PostEvoSparklesSet2AndFlash(gTasks[taskID].tPostEvoSpecies); - gTasks[taskID].tState++; + sEvoGraphicsTaskId = EvolutionSparkles_SprayAndFlash(gTasks[taskId].tPostEvoSpecies); + gTasks[taskId].tState++; } break; - case 11: // play tu du sound after evolution - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_EVO_SOUND: + if (!gTasks[sEvoGraphicsTaskId].isActive) { PlaySE(SE_EXP); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 12: // stop music, return screen to pre-fade state + case EVOSTATE_RESTORE_SCREEN: // stop music, return screen to pre-fade state if (IsSEPlaying()) { m4aMPlayAllStop(); - memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, 0x60); - sub_8140174(); + memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, sizeof(sEvoStructPtr->savedPalette)); + RestoreBgAfterAnim(); BeginNormalPaletteFade(0x1C, 0, 0x10, 0, RGB_BLACK); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 13: // animate mon + case EVOSTATE_EVO_MON_ANIM: if (!gPaletteFade.active) { - EvoScene_DoMonAnimation(sEvoStructPtr->postEvoSpriteID, gTasks[taskID].tPostEvoSpecies); - gTasks[taskID].tState++; + EvoScene_DoMonAnimAndCry(sEvoStructPtr->postEvoSpriteId, gTasks[taskId].tPostEvoSpecies); + gTasks[taskId].tState++; } break; - case 14: // congratulations string and rename prompt + case EVOSTATE_SET_MON_EVOLVED: if (IsCryFinished()) { StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved); BattlePutTextOnWindow(gStringVar4, 0); PlayBGM(MUS_EVOLVED); - gTasks[taskID].tState++; - SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies)); + gTasks[taskId].tState++; + SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskId].tPostEvoSpecies)); CalculateMonStats(mon); - EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), FLAG_SET_SEEN); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), FLAG_SET_CAUGHT); + EvolutionRenameMon(mon, gTasks[taskId].tPreEvoSpecies, gTasks[taskId].tPostEvoSpecies); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_SEEN); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_CAUGHT); IncrementGameStat(GAME_STAT_EVOLVED_POKEMON); } break; - case 15: // check if it wants to learn a new move + case EVOSTATE_TRY_LEARN_MOVE: if (!IsTextPrinterActive(0)) { - var = MonTryLearningNewMove(mon, gTasks[taskID].tLearnsFirstMove); - if (var != 0 && !gTasks[taskID].tEvoWasStopped) + var = MonTryLearningNewMove(mon, gTasks[taskId].tLearnsFirstMove); + if (var != MOVE_NONE && !gTasks[taskId].tEvoWasStopped) { u8 text[20]; - if (!(gTasks[taskID].tBits & TASK_BIT_LEARN_MOVE)) + if (!(gTasks[taskId].tBits & TASK_BIT_LEARN_MOVE)) { StopMapMusic(); Overworld_PlaySpecialMapMusic(); } - gTasks[taskID].tBits |= TASK_BIT_LEARN_MOVE; - gTasks[taskID].tLearnsFirstMove = FALSE; - gTasks[taskID].tLearnMoveState = 0; + gTasks[taskId].tBits |= TASK_BIT_LEARN_MOVE; + gTasks[taskId].tLearnsFirstMove = FALSE; + gTasks[taskId].tLearnMoveState = MVSTATE_INTRO_MSG_1; GetMonData(mon, MON_DATA_NICKNAME, text); StringCopy10(gBattleTextBuff1, text); if (var == MON_HAS_MAX_MOVES) - gTasks[taskID].tState = 22; + gTasks[taskId].tState = EVOSTATE_REPLACE_MOVE; else if (var == MON_ALREADY_KNOWS_MOVE) break; else - gTasks[taskID].tState = 20; // move has been learned + gTasks[taskId].tState = EVOSTATE_LEARNED_MOVE; } - else // no move to learn + else // no move to learn, or evolution was canceled { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskID].tState++; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); + gTasks[taskId].tState++; } } break; - case 16: // task has finished, return + case EVOSTATE_END: if (!gPaletteFade.active) { - if (!(gTasks[taskID].tBits & TASK_BIT_LEARN_MOVE)) + if (!(gTasks[taskId].tBits & TASK_BIT_LEARN_MOVE)) { StopMapMusic(); Overworld_PlaySpecialMapMusic(); } - if (!gTasks[taskID].tEvoWasStopped) - CreateShedinja(gTasks[taskID].tPreEvoSpecies, mon); + if (!gTasks[taskId].tEvoWasStopped) + CreateShedinja(gTasks[taskId].tPreEvoSpecies, mon); - DestroyTask(taskID); + DestroyTask(taskId); FreeMonSpritesGfx(); Free(sEvoStructPtr); sEvoStructPtr = NULL; @@ -775,91 +822,98 @@ static void Task_EvolutionScene(u8 taskID) SetMainCallback2(gCB2_AfterEvolution); } break; - case 17: // evolution has been canceled, stop music and re-fade palette - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_CANCEL: + if (!gTasks[sEvoGraphicsTaskId].isActive) { m4aMPlayAllStop(); BeginNormalPaletteFade(0x6001C, 0, 0x10, 0, RGB_WHITE); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 18: // animate pokemon trying to evolve again, evolution has been stopped + case EVOSTATE_CANCEL_MON_ANIM: if (!gPaletteFade.active) { - EvoScene_DoMonAnimation(sEvoStructPtr->preEvoSpriteID, gTasks[taskID].tPreEvoSpecies); - gTasks[taskID].tState++; + EvoScene_DoMonAnimAndCry(sEvoStructPtr->preEvoSpriteId, gTasks[taskId].tPreEvoSpecies); + gTasks[taskId].tState++; } break; - case 19: // after the animation, print the string 'WHOA IT DID NOT EVOLVE!!!' - if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) + case EVOSTATE_CANCEL_MSG: + if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteId)) { - if (gTasks[taskID].tEvoWasStopped) + if (gTasks[taskId].tEvoWasStopped) StringExpandPlaceholders(gStringVar4, gText_EllipsisQuestionMark); else // Fire Red leftover probably StringExpandPlaceholders(gStringVar4, gText_PkmnStoppedEvolving); BattlePutTextOnWindow(gStringVar4, 0); - gTasks[taskID].tEvoWasStopped = TRUE; - gTasks[taskID].tState = 15; + gTasks[taskId].tEvoWasStopped = TRUE; + gTasks[taskId].tState = EVOSTATE_TRY_LEARN_MOVE; } break; - case 20: // pokemon learned a new move, print string and play a fanfare + case EVOSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(MUS_LEVEL_UP); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter - gTasks[taskID].tState++; + gTasks[taskId].tLearnsFirstMove = 0x40; // re-used as a counter + gTasks[taskId].tState++; } break; - case 21: // wait a bit and check if can learn another move - if (!IsTextPrinterActive(0) && !IsSEPlaying() && --gTasks[taskID].tLearnsFirstMove == 0) - gTasks[taskID].tState = 15; + case EVOSTATE_TRY_LEARN_ANOTHER_MOVE: + if (!IsTextPrinterActive(0) && !IsSEPlaying() && --gTasks[taskId].tLearnsFirstMove == 0) + gTasks[taskId].tState = EVOSTATE_TRY_LEARN_MOVE; break; - case 22: // try to learn a new move - switch (gTasks[taskID].tLearnMoveState) + case EVOSTATE_REPLACE_MOVE: + switch (gTasks[taskId].tLearnMoveState) { - case 0: + case MVSTATE_INTRO_MSG_1: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "{mon} is trying to learn {move}" BufferMoveToLearnIntoBattleTextBuff2(); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 1: + case MVSTATE_INTRO_MSG_2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "But, {mon} can't learn more than four moves" BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 2: + case MVSTATE_INTRO_MSG_3: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "Delete a move to make room for {move}?" BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tData7 = 5; - gTasks[taskID].tData8 = 10; - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveYesState = MVSTATE_SHOW_MOVE_SELECT; + gTasks[taskId].tLearnMoveNoState = MVSTATE_ASK_CANCEL; + gTasks[taskId].tLearnMoveState++; } - case 3: + case MVSTATE_PRINT_YES_NO: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { HandleBattleWindow(0x18, 8, 0x1D, 0xD, 0); BattlePutTextOnWindow(gText_BattleYesNoChoice, 0xC); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; sEvoCursorPos = 0; BattleCreateYesNoCursorAt(0); } break; - case 4: + case MVSTATE_HANDLE_YES_NO: + // This Yes/No is used for both the initial "delete move?" prompt + // and for the "stop learning move?" prompt + // What Yes/No do next is determined by tLearnMoveYesState / tLearnMoveNoState if (JOY_NEW(DPAD_UP) && sEvoCursorPos != 0) { + // Moved onto YES PlaySE(SE_SELECT); BattleDestroyYesNoCursorAt(sEvoCursorPos); sEvoCursorPos = 0; @@ -867,6 +921,7 @@ static void Task_EvolutionScene(u8 taskID) } if (JOY_NEW(DPAD_DOWN) && sEvoCursorPos == 0) { + // Moved onto NO PlaySE(SE_SELECT); BattleDestroyYesNoCursorAt(sEvoCursorPos); sEvoCursorPos = 1; @@ -879,350 +934,403 @@ static void Task_EvolutionScene(u8 taskID) if (sEvoCursorPos != 0) { - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData8; + // NO + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveNoState; } else { - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7; - if (gTasks[taskID].tLearnMoveState == 5) - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + // YES + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveYesState; + if (gTasks[taskId].tLearnMoveState == MVSTATE_SHOW_MOVE_SELECT) + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); } } if (JOY_NEW(B_BUTTON)) { + // Equivalent to selecting NO HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); PlaySE(SE_SELECT); - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData8; + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveNoState; } break; - case 5: + case MVSTATE_SHOW_MOVE_SELECT: if (!gPaletteFade.active) { FreeAllWindowBuffers(); - ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID, + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskId].tPartyId, gPlayerPartyCount - 1, CB2_EvolutionSceneLoadGraphics, gMoveToLearn); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 6: + case MVSTATE_HANDLE_MOVE_SELECT: if (!gPaletteFade.active && gMain.callback2 == CB2_EvolutionSceneUpdate) { var = GetMoveSlotToReplace(); if (var == MAX_MON_MOVES) { - gTasks[taskID].tLearnMoveState = 10; + // Didn't select move slot + gTasks[taskId].tLearnMoveState = MVSTATE_ASK_CANCEL; } else { + // Selected move to forget u16 move = GetMonData(mon, var + MON_DATA_MOVE1); if (IsHMMove2(move)) { + // Can't forget HMs BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState = 12; + gTasks[taskId].tLearnMoveState = MVSTATE_RETRY_AFTER_HM; } else { + // Forget move PREPARE_MOVE_BUFFER(gBattleTextBuff2, move) RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } } } break; - case 7: + case MVSTATE_FORGET_MSG_1: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; break; - case 8: + case MVSTATE_FORGET_MSG_2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 9: + case MVSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tState = 20; + gTasks[taskId].tState = EVOSTATE_LEARNED_MOVE; } break; - case 10: + case MVSTATE_ASK_CANCEL: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tData7 = 11; - gTasks[taskID].tData8 = 0; - gTasks[taskID].tLearnMoveState = 3; + gTasks[taskId].tLearnMoveYesState = MVSTATE_CANCEL; + gTasks[taskId].tLearnMoveNoState = MVSTATE_INTRO_MSG_1; + gTasks[taskId].tLearnMoveState = MVSTATE_PRINT_YES_NO; break; - case 11: + case MVSTATE_CANCEL: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tState = 15; + gTasks[taskId].tState = EVOSTATE_TRY_LEARN_MOVE; break; - case 12: + case MVSTATE_RETRY_AFTER_HM: if (!IsTextPrinterActive(0) && !IsSEPlaying()) - gTasks[taskID].tLearnMoveState = 5; + gTasks[taskId].tLearnMoveState = MVSTATE_SHOW_MOVE_SELECT; break; } break; } } -static void Task_TradeEvolutionScene(u8 taskID) +// States for the main switch in Task_TradeEvolutionScene +enum { + T_EVOSTATE_INTRO_MSG, + T_EVOSTATE_INTRO_CRY, + T_EVOSTATE_INTRO_SOUND, + T_EVOSTATE_START_MUSIC, + T_EVOSTATE_START_BG_AND_SPARKLE_SPIRAL, + T_EVOSTATE_SPARKLE_ARC, + T_EVOSTATE_CYCLE_MON_SPRITE, + T_EVOSTATE_WAIT_CYCLE_MON_SPRITE, + T_EVOSTATE_SPARKLE_CIRCLE, + T_EVOSTATE_SPARKLE_SPRAY, + T_EVOSTATE_EVO_SOUND, + T_EVOSTATE_EVO_MON_ANIM, + T_EVOSTATE_SET_MON_EVOLVED, + T_EVOSTATE_TRY_LEARN_MOVE, + T_EVOSTATE_END, + T_EVOSTATE_CANCEL, + T_EVOSTATE_CANCEL_MON_ANIM, + T_EVOSTATE_CANCEL_MSG, + T_EVOSTATE_LEARNED_MOVE, + T_EVOSTATE_TRY_LEARN_ANOTHER_MOVE, + T_EVOSTATE_REPLACE_MOVE, +}; + +// States for the switch in T_EVOSTATE_REPLACE_MOVE +enum { + T_MVSTATE_INTRO_MSG_1, + T_MVSTATE_INTRO_MSG_2, + T_MVSTATE_INTRO_MSG_3, + T_MVSTATE_PRINT_YES_NO, + T_MVSTATE_HANDLE_YES_NO, + T_MVSTATE_SHOW_MOVE_SELECT, + T_MVSTATE_HANDLE_MOVE_SELECT, + T_MVSTATE_FORGET_MSG, + T_MVSTATE_LEARNED_MOVE, + T_MVSTATE_ASK_CANCEL, + T_MVSTATE_CANCEL, + T_MVSTATE_RETRY_AFTER_HM, +}; + +// Compare to Task_EvolutionScene, very similar +static void Task_TradeEvolutionScene(u8 taskId) { u32 var = 0; - struct Pokemon* mon = &gPlayerParty[gTasks[taskID].tPartyID]; + struct Pokemon* mon = &gPlayerParty[gTasks[taskId].tPartyId]; - switch (gTasks[taskID].tState) + switch (gTasks[taskId].tState) { - case 0: + case T_EVOSTATE_INTRO_MSG: StringExpandPlaceholders(gStringVar4, gText_PkmnIsEvolving); DrawTextOnTradeWindow(0, gStringVar4, 1); - gTasks[taskID].tState++; + gTasks[taskId].tState++; break; - case 1: + case T_EVOSTATE_INTRO_CRY: if (!IsTextPrinterActive(0)) { - PlayCry1(gTasks[taskID].tPreEvoSpecies, 0); - gTasks[taskID].tState++; + PlayCry1(gTasks[taskId].tPreEvoSpecies, 0); + gTasks[taskId].tState++; } break; - case 2: + case T_EVOSTATE_INTRO_SOUND: if (IsCryFinished()) { m4aSongNumStop(MUS_EVOLUTION); PlaySE(MUS_EVOLUTION_INTRO); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 3: + case T_EVOSTATE_START_MUSIC: if (!IsSEPlaying()) { PlayBGM(MUS_EVOLUTION); - gTasks[taskID].tState++; + gTasks[taskId].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK); } break; - case 4: + case T_EVOSTATE_START_BG_AND_SPARKLE_SPIRAL: if (!gPaletteFade.active) { - InitMovingBackgroundTask(TRUE); - var = gSprites[sEvoStructPtr->preEvoSpriteID].oam.paletteNum + 16; - sEvoGraphicsTaskID = LaunchTask_PreEvoSparklesSet1(var); - gTasks[taskID].tState++; - SetGpuReg(REG_OFFSET_BG3CNT, 0x603); + StartBgAnimation(TRUE); + var = gSprites[sEvoStructPtr->preEvoSpriteId].oam.paletteNum + 16; + sEvoGraphicsTaskId = EvolutionSparkles_SpiralUpward(var); + gTasks[taskId].tState++; + SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_SCREENBASE(6)); } break; - case 5: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_SPARKLE_ARC: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - gTasks[taskID].tState++; - sEvoStructPtr->field_3 = 1; - sEvoGraphicsTaskID = LaunchTask_PreEvoSparklesSet2(); + gTasks[taskId].tState++; + sEvoStructPtr->delayTimer = 1; + sEvoGraphicsTaskId = EvolutionSparkles_ArcDown(); } break; - case 6: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_CYCLE_MON_SPRITE: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - sEvoGraphicsTaskID = sub_817C3A0(sEvoStructPtr->preEvoSpriteID, sEvoStructPtr->postEvoSpriteID); - gTasks[taskID].tState++; + sEvoGraphicsTaskId = CycleEvolutionMonSprite(sEvoStructPtr->preEvoSpriteId, sEvoStructPtr->postEvoSpriteId); + gTasks[taskId].tState++; } break; - case 7: - if (--sEvoStructPtr->field_3 == 0) + case T_EVOSTATE_WAIT_CYCLE_MON_SPRITE: + if (--sEvoStructPtr->delayTimer == 0) { - sEvoStructPtr->field_3 = 3; - if (!gTasks[sEvoGraphicsTaskID].isActive) - gTasks[taskID].tState++; + sEvoStructPtr->delayTimer = 3; + if (!gTasks[sEvoGraphicsTaskId].isActive) + gTasks[taskId].tState++; } break; - case 8: - sEvoGraphicsTaskID = LaunchTask_PostEvoSparklesSet1(); - gTasks[taskID].tState++; + case T_EVOSTATE_SPARKLE_CIRCLE: + sEvoGraphicsTaskId = EvolutionSparkles_CircleInward(); + gTasks[taskId].tState++; break; - case 9: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_SPARKLE_SPRAY: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - sEvoGraphicsTaskID = LaunchTask_PostEvoSparklesSet2AndFlash_Trade(gTasks[taskID].tPostEvoSpecies); - gTasks[taskID].tState++; + sEvoGraphicsTaskId = EvolutionSparkles_SprayAndFlash_Trade(gTasks[taskId].tPostEvoSpecies); + gTasks[taskId].tState++; } break; - case 10: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_EVO_SOUND: + if (!gTasks[sEvoGraphicsTaskId].isActive) { PlaySE(SE_EXP); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 11: + case T_EVOSTATE_EVO_MON_ANIM: if (IsSEPlaying()) { - Free(sEvoMovingBgPtr); - EvoScene_DoMonAnimation(sEvoStructPtr->postEvoSpriteID, gTasks[taskID].tPostEvoSpecies); - memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, 0x60); - gTasks[taskID].tState++; + // Restore bg, do mon anim/cry + Free(sBgAnimPal); + EvoScene_DoMonAnimAndCry(sEvoStructPtr->postEvoSpriteId, gTasks[taskId].tPostEvoSpecies); + memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, sizeof(sEvoStructPtr->savedPalette)); + gTasks[taskId].tState++; } break; - case 12: + case T_EVOSTATE_SET_MON_EVOLVED: if (IsCryFinished()) { StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved); DrawTextOnTradeWindow(0, gStringVar4, 1); PlayFanfare(MUS_EVOLVED); - gTasks[taskID].tState++; - SetMonData(mon, MON_DATA_SPECIES, (&gTasks[taskID].tPostEvoSpecies)); + gTasks[taskId].tState++; + SetMonData(mon, MON_DATA_SPECIES, (&gTasks[taskId].tPostEvoSpecies)); CalculateMonStats(mon); - EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), FLAG_SET_SEEN); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), FLAG_SET_CAUGHT); + EvolutionRenameMon(mon, gTasks[taskId].tPreEvoSpecies, gTasks[taskId].tPostEvoSpecies); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_SEEN); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_CAUGHT); IncrementGameStat(GAME_STAT_EVOLVED_POKEMON); } break; - case 13: + case T_EVOSTATE_TRY_LEARN_MOVE: if (!IsTextPrinterActive(0) && IsFanfareTaskInactive() == TRUE) { - var = MonTryLearningNewMove(mon, gTasks[taskID].tLearnsFirstMove); - if (var != 0 && !gTasks[taskID].tEvoWasStopped) + var = MonTryLearningNewMove(mon, gTasks[taskId].tLearnsFirstMove); + if (var != MOVE_NONE && !gTasks[taskId].tEvoWasStopped) { u8 text[20]; - gTasks[taskID].tBits |= TASK_BIT_LEARN_MOVE; - gTasks[taskID].tLearnsFirstMove = FALSE; - gTasks[taskID].tLearnMoveState = 0; + gTasks[taskId].tBits |= TASK_BIT_LEARN_MOVE; + gTasks[taskId].tLearnsFirstMove = FALSE; + gTasks[taskId].tLearnMoveState = 0; GetMonData(mon, MON_DATA_NICKNAME, text); StringCopy10(gBattleTextBuff1, text); if (var == MON_HAS_MAX_MOVES) - gTasks[taskID].tState = 20; + gTasks[taskId].tState = T_EVOSTATE_REPLACE_MOVE; else if (var == MON_ALREADY_KNOWS_MOVE) break; else - gTasks[taskID].tState = 18; + gTasks[taskId].tState = T_EVOSTATE_LEARNED_MOVE; } else { PlayBGM(MUS_EVOLUTION); DrawTextOnTradeWindow(0, gText_CommunicationStandby5, 1); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } } break; - case 14: + case T_EVOSTATE_END: if (!IsTextPrinterActive(0)) { - DestroyTask(taskID); + DestroyTask(taskId); Free(sEvoStructPtr); sEvoStructPtr = NULL; gTextFlags.useAlternateDownArrow = 0; SetMainCallback2(gCB2_AfterEvolution); } break; - case 15: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_CANCEL: + if (!gTasks[sEvoGraphicsTaskId].isActive) { m4aMPlayAllStop(); - BeginNormalPaletteFade((1 << (gSprites[sEvoStructPtr->preEvoSpriteID].oam.paletteNum + 16)) | (0x4001C), 0, 0x10, 0, RGB_WHITE); - gTasks[taskID].tState++; + BeginNormalPaletteFade((1 << (gSprites[sEvoStructPtr->preEvoSpriteId].oam.paletteNum + 16)) | (0x4001C), 0, 0x10, 0, RGB_WHITE); + gTasks[taskId].tState++; } break; - case 16: + case T_EVOSTATE_CANCEL_MON_ANIM: if (!gPaletteFade.active) { - EvoScene_DoMonAnimation(sEvoStructPtr->preEvoSpriteID, gTasks[taskID].tPreEvoSpecies); - gTasks[taskID].tState++; + EvoScene_DoMonAnimAndCry(sEvoStructPtr->preEvoSpriteId, gTasks[taskId].tPreEvoSpecies); + gTasks[taskId].tState++; } break; - case 17: - if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) + case T_EVOSTATE_CANCEL_MSG: + if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteId)) { StringExpandPlaceholders(gStringVar4, gText_EllipsisQuestionMark); DrawTextOnTradeWindow(0, gStringVar4, 1); - gTasks[taskID].tEvoWasStopped = 1; - gTasks[taskID].tState = 13; + gTasks[taskId].tEvoWasStopped = TRUE; + gTasks[taskId].tState = T_EVOSTATE_TRY_LEARN_MOVE; } break; - case 18: + case T_EVOSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(MUS_LEVEL_UP); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter - gTasks[taskID].tState++; + gTasks[taskId].tLearnsFirstMove = 0x40; // re-used as a counter + gTasks[taskId].tState++; } break; - case 19: - if (!IsTextPrinterActive(0) && IsFanfareTaskInactive() == TRUE && --gTasks[taskID].tLearnsFirstMove == 0) - gTasks[taskID].tState = 13; + case T_EVOSTATE_TRY_LEARN_ANOTHER_MOVE: + if (!IsTextPrinterActive(0) && IsFanfareTaskInactive() == TRUE && --gTasks[taskId].tLearnsFirstMove == 0) + gTasks[taskId].tState = T_EVOSTATE_TRY_LEARN_MOVE; break; - case 20: - switch (gTasks[taskID].tLearnMoveState) + case T_EVOSTATE_REPLACE_MOVE: + switch (gTasks[taskId].tLearnMoveState) { - case 0: + case T_MVSTATE_INTRO_MSG_1: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "{mon} is trying to learn {move}" BufferMoveToLearnIntoBattleTextBuff2(); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 1: + case T_MVSTATE_INTRO_MSG_2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "But, {mon} can't learn more than four moves" BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 2: + case T_MVSTATE_INTRO_MSG_3: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "Delete a move to make room for {move}?" BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tData7 = 5; - gTasks[taskID].tData8 = 9; - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveYesState = T_MVSTATE_SHOW_MOVE_SELECT; + gTasks[taskId].tLearnMoveNoState = T_MVSTATE_ASK_CANCEL; + gTasks[taskId].tLearnMoveState++; } - case 3: + case T_MVSTATE_PRINT_YES_NO: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { LoadUserWindowBorderGfx(0, 0xA8, 0xE0); CreateYesNoMenu(&gTradeEvolutionSceneYesNoWindowTemplate, 0xA8, 0xE, 0); sEvoCursorPos = 0; - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; sEvoCursorPos = 0; } break; - case 4: + case T_MVSTATE_HANDLE_YES_NO: switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: + case 0: // YES sEvoCursorPos = 0; BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7; - if (gTasks[taskID].tLearnMoveState == 5) - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveYesState; + if (gTasks[taskId].tLearnMoveState == T_MVSTATE_SHOW_MOVE_SELECT) + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); break; - case 1: - case -1: + case 1: // NO + case MENU_B_PRESSED: sEvoCursorPos = 1; BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData8; + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveNoState; break; } break; - case 5: + case T_MVSTATE_SHOW_MOVE_SELECT: if (!gPaletteFade.active) { if (gWirelessCommType) @@ -1233,73 +1341,77 @@ static void Task_TradeEvolutionScene(u8 taskID) Free(GetBgTilemapBuffer(0)); FreeAllWindowBuffers(); - ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID, + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskId].tPartyId, gPlayerPartyCount - 1, CB2_TradeEvolutionSceneLoadGraphics, gMoveToLearn); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 6: + case T_MVSTATE_HANDLE_MOVE_SELECT: if (!gPaletteFade.active && gMain.callback2 == CB2_TradeEvolutionSceneUpdate) { var = GetMoveSlotToReplace(); if (var == MAX_MON_MOVES) { - gTasks[taskID].tLearnMoveState = 9; + // Didn't select move slot + gTasks[taskId].tLearnMoveState = T_MVSTATE_ASK_CANCEL; } else { + // Selected move to forget u16 move = GetMonData(mon, var + MON_DATA_MOVE1); if (IsHMMove2(move)) { + // Can't forget HMs BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState = 11; + gTasks[taskId].tLearnMoveState = T_MVSTATE_RETRY_AFTER_HM; } else { + // Forget move PREPARE_MOVE_BUFFER(gBattleTextBuff2, move) RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } } } break; - case 7: + case T_MVSTATE_FORGET_MSG: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 8: + case T_MVSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tState = 18; + gTasks[taskId].tState = T_EVOSTATE_LEARNED_MOVE; } break; - case 9: + case T_MVSTATE_ASK_CANCEL: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tData7 = 10; - gTasks[taskID].tData8 = 0; - gTasks[taskID].tLearnMoveState = 3; + gTasks[taskId].tLearnMoveYesState = T_MVSTATE_CANCEL; + gTasks[taskId].tLearnMoveNoState = T_MVSTATE_INTRO_MSG_1; + gTasks[taskId].tLearnMoveState = T_MVSTATE_PRINT_YES_NO; break; - case 10: + case T_MVSTATE_CANCEL: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tState = 13; + gTasks[taskId].tState = T_EVOSTATE_TRY_LEARN_MOVE; break; - case 11: + case T_MVSTATE_RETRY_AFTER_HM: if (!IsTextPrinterActive(0) && !IsSEPlaying()) - gTasks[taskID].tLearnMoveState = 5; + gTasks[taskId].tLearnMoveState = T_MVSTATE_SHOW_MOVE_SELECT; break; } break; @@ -1313,10 +1425,10 @@ static void Task_TradeEvolutionScene(u8 taskID) #undef tBits #undef tLearnsFirstMove #undef tLearnMoveState -#undef tData7 -#undef tData8 +#undef tLearnMoveYesState +#undef tLearnMoveNoState #undef tEvoWasStopped -#undef tPartyID +#undef tPartyId static void EvoDummyFunc(void) { @@ -1356,57 +1468,87 @@ static void VBlankCB_TradeEvolutionScene(void) ScanlineEffect_InitHBlankDmaTransfer(); } -static void sub_813FDEC(u8 taskId) +#define tCycleTimer data[0] +#define tPalStage data[1] +#define tControlStage data[2] +#define tNumCycles data[3] +#define tStartTimer data[5] +#define tPaused data[6] + +// See comments above sBgAnim_PaletteControl +#define START_PAL sBgAnim_PaletteControl[tControlStage][0] +#define END_PAL sBgAnim_PaletteControl[tControlStage][1] +#define CYCLES sBgAnim_PaletteControl[tControlStage][2] +#define DELAY sBgAnim_PaletteControl[tControlStage][3] + +// Cycles the background through a set range of palettes in a series +// of stages, each stage having a different palette range and timing +static void Task_UpdateBgPalette(u8 taskId) { s16 *data = gTasks[taskId].data; - if (data[6] != 0) + if (tPaused) return; - if (data[5]++ < 20) + if (tStartTimer++ < 20) return; - if (data[0]++ > sUnknown_085B58C9[data[2]][3]) + if (tCycleTimer++ > DELAY) { - if (sUnknown_085B58C9[data[2]][1] == data[1]) + if (END_PAL == tPalStage) { - data[3]++; - if (data[3] == sUnknown_085B58C9[data[2]][2]) + // Reached final palette in current stage, completed a 'cycle' + // If this is the final cycle for this stage, move to the next stage + tNumCycles++; + if (tNumCycles == CYCLES) { - data[3] = 0; - data[2]++; + tNumCycles = 0; + tControlStage++; } - data[1] = sUnknown_085B58C9[data[2]][0]; + tPalStage = START_PAL; } else { - LoadPalette(&sEvoMovingBgPtr[data[1] * 16], 0xA0, 0x20); - data[0] = 0; - data[1]++; + // Haven't reached final palette in current stage, load the current palette + LoadPalette(&sBgAnimPal[tPalStage * 16], 0xA0, 0x20); + tCycleTimer = 0; + tPalStage++; } } - if (data[2] == 4) + if (tControlStage == (int)ARRAY_COUNT(sBgAnim_PaletteControl[0])) DestroyTask(taskId); } -static void sub_813FEA4(bool8 isLink) +#undef tCycleTimer +#undef tPalStage +#undef tControlStage +#undef tNumCycles +#undef tStartTimer +#undef START_PAL +#undef END_PAL +#undef CYCLES +#undef DELAY + +#define tIsLink data[2] + +static void CreateBgAnimTask(bool8 isLink) { - u8 taskId = CreateTask(sub_813FEE8, 7); + u8 taskId = CreateTask(Task_AnimateBg, 7); if (!isLink) - gTasks[taskId].data[2] = 0; + gTasks[taskId].tIsLink = FALSE; else - gTasks[taskId].data[2] = 1; + gTasks[taskId].tIsLink = TRUE; } -static void sub_813FEE8(u8 taskId) +static void Task_AnimateBg(u8 taskId) { u16 *outer_X, *outer_Y; u16 *inner_X = &gBattle_BG1_X; u16 *inner_Y = &gBattle_BG1_Y; - if (!gTasks[taskId].data[2]) + if (!gTasks[taskId].tIsLink) { outer_X = &gBattle_BG2_X; outer_Y = &gBattle_BG2_Y; @@ -1426,7 +1568,7 @@ static void sub_813FEE8(u8 taskId) *outer_X = Cos(gTasks[taskId].data[1], 4) + 8; *outer_Y = Sin(gTasks[taskId].data[1], 4) + 16; - if (!FuncIsActiveTask(sub_813FDEC)) + if (!FuncIsActiveTask(Task_UpdateBgPalette)) { DestroyTask(taskId); @@ -1438,37 +1580,39 @@ static void sub_813FEE8(u8 taskId) } } -static void InitMovingBgValues(u16 *movingBgs) +#undef tIsLink + +static void InitMovingBgPalette(u16 *palette) { s32 i, j; - for (i = 0; i < 50; i++) + for (i = 0; i < (int)ARRAY_COUNT(sBgAnim_PalIndexes); i++) { for (j = 0; j < 16; j++) { - movingBgs[i * 16 + j] = sUnknown_085B5884[sUnknown_085B58D9[i][j]]; + palette[i * 16 + j] = sBgAnim_Pal[sBgAnim_PalIndexes[i][j]]; } } } -static void InitMovingBackgroundTask(bool8 isLink) +static void StartBgAnimation(bool8 isLink) { u8 innerBgId, outerBgId; - sEvoMovingBgPtr = AllocZeroed(0x640); - InitMovingBgValues(sEvoMovingBgPtr); + sBgAnimPal = AllocZeroed(0x640); + InitMovingBgPalette(sBgAnimPal); if (!isLink) innerBgId = 1, outerBgId = 2; else innerBgId = 1, outerBgId = 3; - LoadPalette(sUnknown_085B51E4, 0xA0, 0x20); + LoadPalette(sBgAnim_Intro_Pal, 0xA0, 0x20); - DecompressAndLoadBgGfxUsingHeap(1, sUnknown_085B4134, FALSE, 0, 0); - CopyToBgTilemapBuffer(1, sUnknown_085B482C, 0, 0); - CopyToBgTilemapBuffer(outerBgId, sUnknown_085B4D10, 0, 0); - CopyBgTilemapBufferToVram(1); + DecompressAndLoadBgGfxUsingHeap(1, sBgAnim_Gfx, FALSE, 0, 0); + CopyToBgTilemapBuffer(innerBgId, sBgAnim_Inner_Tilemap, 0, 0); + CopyToBgTilemapBuffer(outerBgId, sBgAnim_Outer_Tilemap, 0, 0); + CopyBgTilemapBufferToVram(innerBgId); CopyBgTilemapBufferToVram(outerBgId); if (!isLink) @@ -1490,46 +1634,49 @@ static void InitMovingBackgroundTask(bool8 isLink) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG3_ON | DISPCNT_BG1_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP); } - CreateTask(sub_813FDEC, 5); - sub_813FEA4(isLink); + CreateTask(Task_UpdateBgPalette, 5); + CreateBgAnimTask(isLink); } -static void sub_8140100(void) // unused +// Unused +static void PauseBgPaletteAnim(void) { - u8 taskId = FindTaskIdByFunc(sub_813FDEC); + u8 taskId = FindTaskIdByFunc(Task_UpdateBgPalette); - if (taskId != 0xFF) - gTasks[taskId].data[6] = 1; + if (taskId != TASK_NONE) + gTasks[taskId].tPaused = TRUE; FillPalette(0, 0xA0, 0x20); } -static void sub_8140134(void) +#undef tPaused + +static void StopBgAnimation(void) { u8 taskId; - if ((taskId = FindTaskIdByFunc(sub_813FDEC)) != 0xFF) + if ((taskId = FindTaskIdByFunc(Task_UpdateBgPalette)) != TASK_NONE) DestroyTask(taskId); - if ((taskId = FindTaskIdByFunc(sub_813FEE8)) != 0xFF) + if ((taskId = FindTaskIdByFunc(Task_AnimateBg)) != TASK_NONE) DestroyTask(taskId); FillPalette(0, 0xA0, 0x20); - sub_8140174(); + RestoreBgAfterAnim(); } -static void sub_8140174(void) +static void RestoreBgAfterAnim(void) { SetGpuReg(REG_OFFSET_BLDCNT, 0); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; - SetBgAttribute(1, BG_ATTR_PRIORITY, sub_80391E0(1, 5)); - SetBgAttribute(2, BG_ATTR_PRIORITY, sub_80391E0(2, 5)); + SetBgAttribute(1, BG_ATTR_PRIORITY, GetBattleBgTemplateData(1, 5)); + SetBgAttribute(2, BG_ATTR_PRIORITY, GetBattleBgTemplateData(2, 5)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG3_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP); - Free(sEvoMovingBgPtr); + Free(sBgAnimPal); } -static void EvoScene_DoMonAnimation(u8 monSpriteId, u16 speciesId) +static void EvoScene_DoMonAnimAndCry(u8 monSpriteId, u16 speciesId) { DoMonFrontSpriteAnimation(&gSprites[monSpriteId], speciesId, FALSE, 0); } diff --git a/src/faraway_island.c b/src/faraway_island.c index e3d8444c98..51ab8def44 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -38,7 +38,7 @@ static const s16 sFarawayIslandRockCoords[4][2] = static u8 GetMewObjectEventId(void) { u8 objectEventId; - TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); + TryGetObjectEventIdByLocalIdAndMap(LOCALID_FARAWAY_ISLAND_MEW, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); return objectEventId; } @@ -372,7 +372,6 @@ void SetMewAboveGrass(void) { s16 x; s16 y; - u8 spriteId; struct ObjectEvent *mew = &gObjectEvents[GetMewObjectEventId()]; mew->invisible = FALSE; diff --git a/src/field_camera.c b/src/field_camera.c index 57be522211..a36b6883c1 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -39,7 +39,7 @@ static void CameraPanningCB_PanAhead(void); static struct FieldCameraOffset sFieldCameraOffset; static s16 sHorizontalCameraPan; static s16 sVerticalCameraPan; -static bool8 gUnknown_03000E2C; +static bool8 sBikeCameraPanFlag; static void (*sFieldCameraPanningCallback)(void); struct CameraObject gFieldCamera; @@ -89,7 +89,7 @@ void FieldUpdateBgTilemapScroll(void) SetGpuReg(REG_OFFSET_BG3VOFS, r4); } -void sub_8089C08(s16 *x, s16 *y) +void GetCameraOffsetWithPan(s16 *x, s16 *y) { *x = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan; *y = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8; @@ -417,7 +417,7 @@ void CameraUpdate(void) CameraMove(deltaX, deltaY); UpdateObjectEventsForCameraUpdate(deltaX, deltaY); RotatingGatePuzzleCameraUpdate(deltaX, deltaY); - ResetBerryTreeSparkleFlags(); + SetBerryTreesSeen(); AddCameraTileOffset(&sFieldCameraOffset, deltaX * 2, deltaY * 2); RedrawMapSlicesForCameraUpdate(&sFieldCameraOffset, deltaX * 2, deltaY * 2); } @@ -450,7 +450,7 @@ void SetCameraPanning(s16 a, s16 b) void InstallCameraPanAheadCallback(void) { sFieldCameraPanningCallback = CameraPanningCB_PanAhead; - gUnknown_03000E2C = FALSE; + sBikeCameraPanFlag = FALSE; sHorizontalCameraPan = 0; sVerticalCameraPan = 32; } @@ -474,16 +474,16 @@ static void CameraPanningCB_PanAhead(void) } else { - // this code is never reached. + // this code is never reached if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION) { - gUnknown_03000E2C ^= 1; - if (gUnknown_03000E2C == FALSE) + sBikeCameraPanFlag ^= 1; + if (sBikeCameraPanFlag == FALSE) return; } else { - gUnknown_03000E2C = FALSE; + sBikeCameraPanFlag = FALSE; } var = GetPlayerMovementDirection(); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index fab14c5776..6ec280fd0d 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -67,7 +67,7 @@ static bool8 TryStartCoordEventScript(struct MapPosition *); static bool8 TryStartWarpEventScript(struct MapPosition *, u16); static bool8 TryStartMiscWalkingScripts(u16); static bool8 TryStartStepCountScript(u16); -static void UpdateHappinessStepCounter(void); +static void UpdateFriendshipStepCounter(void); static bool8 UpdatePoisonStepCounter(void); void FieldClearPlayerInput(struct FieldInput *input) @@ -542,7 +542,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) } IncrementRematchStepCounter(); - UpdateHappinessStepCounter(); + UpdateFriendshipStepCounter(); UpdateFarawayIslandStepCounter(); if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) @@ -607,14 +607,15 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) return FALSE; } -void Unref_ClearHappinessStepCounter(void) +// Unused +static void ClearFriendshipStepCounter(void) { - VarSet(VAR_HAPPINESS_STEP_COUNTER, 0); + VarSet(VAR_FRIENDSHIP_STEP_COUNTER, 0); } -static void UpdateHappinessStepCounter(void) +static void UpdateFriendshipStepCounter(void) { - u16 *ptr = GetVarPointer(VAR_HAPPINESS_STEP_COUNTER); + u16 *ptr = GetVarPointer(VAR_FRIENDSHIP_STEP_COUNTER); int i; (*ptr)++; @@ -730,7 +731,8 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB } if (MetatileBehavior_IsWarpOrBridge(metatileBehavior) == TRUE) { - sub_80B0268(); + // Maybe unused? This MB is used by log bridges, but there's never a warp event on them + DoSpinExitWarp(); return TRUE; } if (MetatileBehavior_IsMtPyreHole(metatileBehavior) == TRUE) diff --git a/src/field_door.c b/src/field_door.c index 4dcb07ccae..8aeb1d4914 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -357,40 +357,42 @@ static void DrawDoor(const struct DoorGraphics *gfx, const struct DoorAnimFrame } } -enum -{ - TD_FRAMELIST = 0, - TD_GFX = 2, - TD_FRAME = 4, - TD_COUNTER, - TD_X, - TD_Y -}; +#define tFramesHi data[0] +#define tFramesLo data[1] +#define tGfxHi data[2] +#define tGfxLo data[3] +#define tFrameId data[4] +#define tCounter data[5] +#define tX data[6] +#define tY data[7] -static bool32 sub_808A5F0(struct DoorGraphics *gfx, struct DoorAnimFrame *frames, s16 *taskData) +// Draws a single frame of the door animation, or skips drawing to wait between frames. +// Returns FALSE when the final frame has been reached +static bool32 AnimateDoorFrame(struct DoorGraphics *gfx, struct DoorAnimFrame *frames, s16 *data) { - if (taskData[TD_COUNTER] == 0) - DrawDoor(gfx, &frames[taskData[TD_FRAME]], taskData[TD_X], taskData[TD_Y]); - if (taskData[TD_COUNTER] == frames[taskData[TD_FRAME]].time) + if (tCounter == 0) + DrawDoor(gfx, &frames[tFrameId], tX, tY); + + if (tCounter == frames[tFrameId].time) { - taskData[TD_COUNTER] = 0; - taskData[TD_FRAME]++; - if (frames[taskData[TD_FRAME]].time == 0) + tCounter = 0; + tFrameId++; + if (frames[tFrameId].time == 0) return FALSE; else return TRUE; } - taskData[TD_COUNTER]++; + tCounter++; return TRUE; } static void Task_AnimateDoor(u8 taskId) { - u16 *taskData = gTasks[taskId].data; - struct DoorAnimFrame *frames = (struct DoorAnimFrame *)(taskData[TD_FRAMELIST] << 16 | taskData[TD_FRAMELIST + 1]); - struct DoorGraphics *gfx = (struct DoorGraphics *)(taskData[TD_GFX] << 16 | taskData[TD_GFX + 1]); + u16 *data = gTasks[taskId].data; + struct DoorAnimFrame *frames = (struct DoorAnimFrame *)(tFramesHi << 16 | tFramesLo); + struct DoorGraphics *gfx = (struct DoorGraphics *)(tGfxHi << 16 | tGfxLo); - if (sub_808A5F0(gfx, frames, taskData) == FALSE) + if (AnimateDoorFrame(gfx, frames, data) == FALSE) DestroyTask(taskId); } @@ -419,16 +421,16 @@ static s8 StartDoorAnimationTask(const struct DoorGraphics *gfx, const struct Do else { u8 taskId = CreateTask(Task_AnimateDoor, 0x50); - s16 *taskData = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; - taskData[TD_X] = x; - taskData[TD_Y] = y; + tX = x; + tY = y; - taskData[TD_FRAMELIST + 1] = (u32)frames; - taskData[TD_FRAMELIST] = (u32)frames >> 16; + tFramesLo = (u32)frames; + tFramesHi = (u32)frames >> 16; - taskData[TD_GFX + 1] = (u32)gfx; - taskData[TD_GFX] = (u32)gfx >> 16; + tGfxLo = (u32)gfx; + tGfxHi = (u32)gfx >> 16; return taskId; } diff --git a/src/field_effect.c b/src/field_effect.c index 5a18557eb9..0d61b35f1d 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -480,13 +480,13 @@ static const struct Subsprite sSubsprites_HofMonitorBig[] = static const struct SubspriteTable sSubspriteTable_HofMonitorBig = subsprite_table(sSubsprites_HofMonitorBig); -const union AnimCmd gSpriteAnim_855C2CC[] = +const union AnimCmd sAnim_Static[] = { ANIMCMD_FRAME(.imageValue = 0, .duration = 1), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_855C2D4[] = +const union AnimCmd sAnim_Flicker[] = { ANIMCMD_FRAME(.imageValue = 0, .duration = 16), ANIMCMD_FRAME(.imageValue = 1, .duration = 16), @@ -499,15 +499,16 @@ const union AnimCmd gSpriteAnim_855C2D4[] = ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_855C2F8[] = +// Flicker on and off, for the Pokéballs / monitors during the PokéCenter heal effect +const union AnimCmd *const sAnims_Flicker[] = { - gSpriteAnim_855C2CC, - gSpriteAnim_855C2D4 + sAnim_Static, + sAnim_Flicker }; -static const union AnimCmd *const sAnimTable_HofMonitor[] = +static const union AnimCmd *const sAnims_HofMonitor[] = { - gSpriteAnim_855C2CC + sAnim_Static }; static const struct SpriteTemplate sSpriteTemplate_PokeballGlow = @@ -515,7 +516,7 @@ static const struct SpriteTemplate sSpriteTemplate_PokeballGlow = .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_POKEBALL_GLOW, .oam = &sOam_8x8, - .anims = gSpriteAnimTable_855C2F8, + .anims = sAnims_Flicker, .images = sPicTable_PokeballGlow, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_PokeballGlow @@ -526,7 +527,7 @@ static const struct SpriteTemplate sSpriteTemplate_PokecenterMonitor = .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &sOam_16x16, - .anims = gSpriteAnimTable_855C2F8, + .anims = sAnims_Flicker, .images = sPicTable_PokecenterMonitor, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_PokecenterMonitor @@ -537,7 +538,7 @@ static const struct SpriteTemplate sSpriteTemplate_HofMonitorBig = .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_HOF_MONITOR, .oam = &sOam_16x16, - .anims = sAnimTable_HofMonitor, + .anims = sAnims_HofMonitor, .images = sPicTable_HofMonitorBig, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_HallOfFameMonitor @@ -548,7 +549,7 @@ static const struct SpriteTemplate sSpriteTemplate_HofMonitorSmall = .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_HOF_MONITOR, .oam = &sOam_32x16, - .anims = sAnimTable_HofMonitor, + .anims = sAnims_HofMonitor, .images = sPicTable_HofMonitorSmall, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_HallOfFameMonitor @@ -934,43 +935,43 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId) // r, g, b are between 0 and 16 void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) { - int curRed; - int curGreen; - int curBlue; - u16 outPal; - - outPal = gPlttBufferUnfaded[i]; - curRed = outPal & 0x1f; - curGreen = (outPal & (0x1f << 5)) >> 5; - curBlue = (outPal & (0x1f << 10)) >> 10; - curRed += (((0x1f - curRed) * r) >> 4); - curGreen += (((0x1f - curGreen) * g) >> 4); - curBlue += (((0x1f - curBlue) * b) >> 4); - outPal = curRed; - outPal |= curGreen << 5; - outPal |= curBlue << 10; - gPlttBufferFaded[i] = outPal; + int curRed, curGreen, curBlue; + u16 color = gPlttBufferUnfaded[i]; + + curRed = (color & RGB_RED); + curGreen = (color & RGB_GREEN) >> 5; + curBlue = (color & RGB_BLUE) >> 10; + + curRed += (((0x1F - curRed) * r) >> 4); + curGreen += (((0x1F - curGreen) * g) >> 4); + curBlue += (((0x1F - curBlue) * b) >> 4); + + color = curRed; + color |= (curGreen << 5); + color |= (curBlue << 10); + + gPlttBufferFaded[i] = color; } // r, g, b are between 0 and 16 void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) { - int curRed; - int curGreen; - int curBlue; - u16 outPal; - - outPal = gPlttBufferUnfaded[i]; - curRed = outPal & 0x1f; - curGreen = (outPal & (0x1f << 5)) >> 5; - curBlue = (outPal & (0x1f << 10)) >> 10; - curRed -= ((curRed * r) >> 4); + int curRed, curGreen, curBlue; + u16 color = gPlttBufferUnfaded[i]; + + curRed = (color & RGB_RED); + curGreen = (color & RGB_GREEN) >> 5; + curBlue = (color & RGB_BLUE) >> 10; + + curRed -= ((curRed * r) >> 4); curGreen -= ((curGreen * g) >> 4); - curBlue -= ((curBlue * b) >> 4); - outPal = curRed; - outPal |= curGreen << 5; - outPal |= curBlue << 10; - gPlttBufferFaded[i] = outPal; + curBlue -= ((curBlue * b) >> 4); + + color = curRed; + color |= (curGreen << 5); + color |= (curBlue << 10); + + gPlttBufferFaded[i] = color; } // Task data for Task_PokecenterHeal and Task_HallOfFameRecord @@ -1117,8 +1118,8 @@ static u8 CreateGlowingPokeballsEffect(s16 numMons, s16 x, s16 y, bool16 playHea struct Sprite *sprite; spriteId = CreateInvisibleSprite(SpriteCB_PokeballGlowEffect); sprite = &gSprites[spriteId]; - sprite->pos2.x = x; - sprite->pos2.y = y; + sprite->x2 = x; + sprite->y2 = y; sprite->sPlayHealSe = playHealSe; sprite->sNumMons = numMons; sprite->sSpriteId = spriteId; @@ -1136,7 +1137,7 @@ static void PokeballGlowEffect_PlaceBalls(struct Sprite *sprite) if (sprite->sTimer == 0 || (--sprite->sTimer) == 0) { sprite->sTimer = 25; - spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokeballGlow, sPokeballCoordOffsets[sprite->sCounter].x + sprite->pos2.x, sPokeballCoordOffsets[sprite->sCounter].y + sprite->pos2.y, 0); + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokeballGlow, sPokeballCoordOffsets[sprite->sCounter].x + sprite->x2, sPokeballCoordOffsets[sprite->sCounter].y + sprite->y2, 0); gSprites[spriteId].oam.priority = 2; gSprites[spriteId].sEffectSpriteId = sprite->sSpriteId; sprite->sCounter++; @@ -1460,7 +1461,7 @@ static bool8 FallWarpEffect_StartFall(struct Task *task) s16 centerToCornerVecY; sprite = &gSprites[gPlayerAvatar.spriteId]; centerToCornerVecY = -(sprite->centerToCornerVecY << 1); - sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); + sprite->y2 = -(sprite->y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); task->tFallOffset = 1; task->tTotalFall = 0; gObjectEvents[gPlayerAvatar.objectEventId].invisible = FALSE; @@ -1476,7 +1477,7 @@ static bool8 FallWarpEffect_Fall(struct Task *task) objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.y += task->tFallOffset; + sprite->y2 += task->tFallOffset; if (task->tFallOffset < 8) { task->tTotalFall += task->tFallOffset; @@ -1484,19 +1485,19 @@ static bool8 FallWarpEffect_Fall(struct Task *task) if (task->tTotalFall & 0xf) task->tFallOffset <<= 1; } - if (task->tSetTrigger == FALSE && sprite->pos2.y >= -16) + if (task->tSetTrigger == FALSE && sprite->y2 >= -16) { task->tSetTrigger++; objectEvent->fixedPriority = 0; sprite->subspriteMode = task->tSubsprMode; objectEvent->triggerGroundEffectsOnMove = 1; } - if (sprite->pos2.y >= 0) + if (sprite->y2 >= 0) { PlaySE(SE_M_STRENGTH); objectEvent->triggerGroundEffectsOnStop = 1; objectEvent->landingJump = 1; - sprite->pos2.y = 0; + sprite->y2 = 0; task->tState++; } return FALSE; @@ -1634,8 +1635,8 @@ static void RideUpEscalatorOut(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.x = Cos(0x84, task->data[2]); - sprite->pos2.y = Sin(0x94, task->data[2]); + sprite->x2 = Cos(0x84, task->data[2]); + sprite->y2 = Sin(0x94, task->data[2]); task->data[3]++; if (task->data[3] & 1) { @@ -1647,8 +1648,8 @@ static void RideDownEscalatorOut(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.x = Cos(0x7c, task->data[2]); - sprite->pos2.y = Sin(0x76, task->data[2]); + sprite->x2 = Cos(0x7c, task->data[2]); + sprite->y2 = Sin(0x76, task->data[2]); task->data[3]++; if (task->data[3] & 1) { @@ -1728,8 +1729,8 @@ static bool8 EscalatorWarpIn_Down_Init(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.x = Cos(0x84, task->data[1]); - sprite->pos2.y = Sin(0x94, task->data[1]); + sprite->x2 = Cos(0x84, task->data[1]); + sprite->y2 = Sin(0x94, task->data[1]); task->tState++; return FALSE; } @@ -1738,8 +1739,8 @@ static bool8 EscalatorWarpIn_Down_Ride(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.x = Cos(0x84, task->data[1]); - sprite->pos2.y = Sin(0x94, task->data[1]); + sprite->x2 = Cos(0x84, task->data[1]); + sprite->y2 = Sin(0x94, task->data[1]); task->data[2]++; if (task->data[2] & 1) { @@ -1747,8 +1748,8 @@ static bool8 EscalatorWarpIn_Down_Ride(struct Task *task) } if (task->data[1] == 0) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; task->tState = 5; } return FALSE; @@ -1758,8 +1759,8 @@ static bool8 EscalatorWarpIn_Up_Init(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.x = Cos(0x7c, task->data[1]); - sprite->pos2.y = Sin(0x76, task->data[1]); + sprite->x2 = Cos(0x7c, task->data[1]); + sprite->y2 = Sin(0x76, task->data[1]); task->tState++; return FALSE; } @@ -1768,8 +1769,8 @@ static bool8 EscalatorWarpIn_Up_Ride(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.x = Cos(0x7c, task->data[1]); - sprite->pos2.y = Sin(0x76, task->data[1]); + sprite->x2 = Cos(0x7c, task->data[1]); + sprite->y2 = Sin(0x76, task->data[1]); task->data[2]++; if (task->data[2] & 1) { @@ -1777,8 +1778,8 @@ static bool8 EscalatorWarpIn_Up_Ride(struct Task *task) } if (task->data[1] == 0) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; task->tState++; } return FALSE; @@ -1971,7 +1972,7 @@ static bool8 LavaridgeGymB1FWarpEffect_CameraShake(struct Task *task, struct Obj static bool8 LavaridgeGymB1FWarpEffect_Launch(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sprite->pos2.y = 0; + sprite->y2 = 0; task->data[3] = 1; gFieldEffectArguments[0] = objectEvent->currentCoords.x; gFieldEffectArguments[1] = objectEvent->currentCoords.y; @@ -2000,9 +2001,9 @@ static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *task, struct ObjectEven if (task->data[2] > 6) { centerToCornerVecY = -(sprite->centerToCornerVecY << 1); - if (sprite->pos2.y > -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY)) + if (sprite->y2 > -(sprite->y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY)) { - sprite->pos2.y -= task->data[3]; + sprite->y2 -= task->data[3]; if (task->data[3] <= 7) { task->data[3]++; @@ -2012,7 +2013,7 @@ static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *task, struct ObjectEven task->data[4] = 1; } } - if (task->data[5] == 0 && sprite->pos2.y < -0x10) + if (task->data[5] == 0 && sprite->y2 < -0x10) { task->data[5]++; objectEvent->fixedPriority = 1; @@ -2395,7 +2396,7 @@ static void TeleportWarpOutFieldEffect_SpinExit(struct Task *task) task->data[1] = 4; ObjectEventTurn(objectEvent, spinDirections[objectEvent->facingDirection]); } - sprite->pos1.y -= task->data[3]; + sprite->y -= task->data[3]; task->data[4] += task->data[3]; if ((--task->data[2]) <= 0 && (task->data[2] = 4, task->data[3] < 8)) { @@ -2465,7 +2466,7 @@ static void TeleportWarpInFieldEffect_Init(struct Task *task) { sprite = &gSprites[gPlayerAvatar.spriteId]; centerToCornerVecY = -(sprite->centerToCornerVecY << 1); - sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); + sprite->y2 = -(sprite->y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); gObjectEvents[gPlayerAvatar.objectEventId].invisible = FALSE; task->data[0]++; task->data[1] = 8; @@ -2481,7 +2482,7 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task) u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; - if ((sprite->pos2.y += task->data[1]) >= -8) + if ((sprite->y2 += task->data[1]) >= -8) { if (task->data[13] == 0) { @@ -2497,7 +2498,7 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task) sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY; } } - if (sprite->pos2.y >= -0x30 && task->data[1] > 1 && !(sprite->pos2.y & 1)) + if (sprite->y2 >= -0x30 && task->data[1] > 1 && !(sprite->y2 & 1)) { task->data[1]--; } @@ -2506,9 +2507,9 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task) task->data[2] = 4; ObjectEventTurn(objectEvent, spinDirections[objectEvent->facingDirection]); } - if (sprite->pos2.y >= 0) + if (sprite->y2 >= 0) { - sprite->pos2.y = 0; + sprite->y2 = 0; task->data[0]++; task->data[1] = 1; task->data[2] = 0; @@ -2928,9 +2929,9 @@ static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality) static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite) { - if ((sprite->pos1.x -= 20) <= DISPLAY_WIDTH / 2) + if ((sprite->x -= 20) <= DISPLAY_WIDTH / 2) { - sprite->pos1.x = DISPLAY_WIDTH / 2; + sprite->x = DISPLAY_WIDTH / 2; sprite->sOnscreenTimer = 30; sprite->callback = SpriteCB_FieldMoveMonWaitAfterCry; if (sprite->data[6]) @@ -2952,10 +2953,10 @@ static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *sprite) static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *sprite) { - if (sprite->pos1.x < -64) + if (sprite->x < -64) sprite->sSlidOffscreen = TRUE; else - sprite->pos1.x -= 20; + sprite->x -= 20; } #undef tState @@ -3052,7 +3053,7 @@ static void SurfFieldEffect_End(struct Task *task) gPlayerAvatar.preventStep = FALSE; gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection)); - SetSurfBobState(objectEvent->fieldEffectSpriteId, 1); + SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_PLAYER_AND_MON); UnfreezeObjectEvents(); ScriptContext2_Disable(); FieldEffectActiveListRemove(FLDEFF_USE_SURF); @@ -3077,7 +3078,7 @@ u8 FldEff_RayquazaSpotlight(void) sprite->data[1] = 0; sprite->data[2] = 0; sprite->data[3] = -1; - sprite->data[4] = sprite->pos1.y; + sprite->data[4] = sprite->y; sprite->data[5] = 0; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14)); @@ -3119,17 +3120,17 @@ static void SpriteCB_NPCFlyOut(struct Sprite *sprite) { struct Sprite *npcSprite; - sprite->pos2.x = Cos(sprite->data[2], 0x8c); - sprite->pos2.y = Sin(sprite->data[2], 0x48); + sprite->x2 = Cos(sprite->data[2], 0x8c); + sprite->y2 = Sin(sprite->data[2], 0x48); sprite->data[2] = (sprite->data[2] + 4) & 0xff; if (sprite->data[0]) { npcSprite = &gSprites[sprite->data[1]]; npcSprite->coordOffsetEnabled = FALSE; - npcSprite->pos1.x = sprite->pos1.x + sprite->pos2.x; - npcSprite->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; - npcSprite->pos2.x = 0; - npcSprite->pos2.y = 0; + npcSprite->x = sprite->x + sprite->x2; + npcSprite->y = sprite->y + sprite->y2 - 8; + npcSprite->x2 = 0; + npcSprite->y2 = 0; } if (sprite->data[2] >= 0x80) @@ -3203,8 +3204,8 @@ static void FlyOutFieldEffect_BirdLeaveBall(struct Task *task) struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { - SetSurfBobState(objectEvent->fieldEffectSpriteId, 2); - SetSurfBobWhileFlyingOutState(objectEvent->fieldEffectSpriteId, 0); + SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_JUST_MON); + SetSurfBlob_DontSyncAnim(objectEvent->fieldEffectSpriteId, FALSE); } task->tBirdSpriteId = CreateFlyBirdSprite(); // Does "leave ball" animation by default task->tState++; @@ -3305,10 +3306,10 @@ static void StartFlyBirdSwoopDown(u8 spriteId) struct Sprite *sprite; sprite = &gSprites[spriteId]; sprite->callback = SpriteCB_FlyBirdSwoopDown; - sprite->pos1.x = DISPLAY_WIDTH / 2; - sprite->pos1.y = 0; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x = DISPLAY_WIDTH / 2; + sprite->y = 0; + sprite->x2 = 0; + sprite->y2 = 0; memset(&sprite->data[0], 0, 8 * sizeof(u16) /* zero all data cells */); sprite->sPlayerSpriteId = MAX_SPRITES; } @@ -3345,15 +3346,15 @@ static void SpriteCB_FlyBirdLeaveBall(struct Sprite *sprite) sprite->affineAnims = sAffineAnims_FlyBird; InitSpriteAffineAnim(sprite); StartSpriteAffineAnim(sprite, 0); - sprite->pos1.x = 0x76; - sprite->pos1.y = -0x30; + sprite->x = 0x76; + sprite->y = -0x30; sprite->data[0]++; sprite->data[1] = 0x40; sprite->data[2] = 0x100; } sprite->data[1] += (sprite->data[2] >> 8); - sprite->pos2.x = Cos(sprite->data[1], 0x78); - sprite->pos2.y = Sin(sprite->data[1], 0x78); + sprite->x2 = Cos(sprite->data[1], 0x78); + sprite->y2 = Sin(sprite->data[1], 0x78); if (sprite->data[2] < 0x800) { sprite->data[2] += 0x60; @@ -3370,17 +3371,17 @@ static void SpriteCB_FlyBirdLeaveBall(struct Sprite *sprite) static void SpriteCB_FlyBirdSwoopDown(struct Sprite *sprite) { - sprite->pos2.x = Cos(sprite->data[2], 0x8c); - sprite->pos2.y = Sin(sprite->data[2], 0x48); + sprite->x2 = Cos(sprite->data[2], 0x8c); + sprite->y2 = Sin(sprite->data[2], 0x48); sprite->data[2] = (sprite->data[2] + 4) & 0xff; if (sprite->sPlayerSpriteId != MAX_SPRITES) { struct Sprite *sprite1 = &gSprites[sprite->sPlayerSpriteId]; sprite1->coordOffsetEnabled = FALSE; - sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x; - sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; - sprite1->pos2.x = 0; - sprite1->pos2.y = 0; + sprite1->x = sprite->x + sprite->x2; + sprite1->y = sprite->y + sprite->y2 - 8; + sprite1->x2 = 0; + sprite1->y2 = 0; } if (sprite->data[2] >= 0x80) { @@ -3398,8 +3399,8 @@ static void SpriteCB_FlyBirdReturnToBall(struct Sprite *sprite) sprite->affineAnims = sAffineAnims_FlyBird; InitSpriteAffineAnim(sprite); StartSpriteAffineAnim(sprite, 1); - sprite->pos1.x = 0x5e; - sprite->pos1.y = -0x20; + sprite->x = 0x5e; + sprite->y = -0x20; sprite->data[0]++; sprite->data[1] = 0xf0; sprite->data[2] = 0x800; @@ -3408,8 +3409,8 @@ static void SpriteCB_FlyBirdReturnToBall(struct Sprite *sprite) sprite->data[1] += sprite->data[2] >> 8; sprite->data[3] += sprite->data[2] >> 8; sprite->data[1] &= 0xff; - sprite->pos2.x = Cos(sprite->data[1], 0x20); - sprite->pos2.y = Sin(sprite->data[1], 0x78); + sprite->x2 = Cos(sprite->data[1], 0x20); + sprite->y2 = Sin(sprite->data[1], 0x78); if (sprite->data[2] > 0x100) { sprite->data[2] -= sprite->data[4]; @@ -3472,7 +3473,7 @@ static void FlyInFieldEffect_BirdSwoopDown(struct Task *task) SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { - SetSurfBobState(objectEvent->fieldEffectSpriteId, 0); + SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_NONE); } ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); CameraObjectReset2(); @@ -3494,10 +3495,10 @@ static void FlyInFieldEffect_FlyInWithBird(struct Task *task) objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[objectEvent->spriteId]; SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, MAX_SPRITES); - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; task->tState++; task->tTimer = 0; } @@ -3526,7 +3527,7 @@ static void FlyInFieldEffect_JumpOffBird(struct Task *task) 8 }; struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.y = sYPositions[task->tTimer]; + sprite->y2 = sYPositions[task->tTimer]; if ((++task->tTimer) >= (int)ARRAY_COUNT(sYPositions)) task->tState++; @@ -3542,8 +3543,8 @@ static void FlyInFieldEffect_FieldMovePose(struct Task *task) sprite = &gSprites[objectEvent->spriteId]; objectEvent->inanimate = FALSE; MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y); - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; sprite->coordOffsetEnabled = TRUE; SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); @@ -3581,7 +3582,7 @@ static void FlyInFieldEffect_End(struct Task *task) if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { state = PLAYER_AVATAR_STATE_SURFING; - SetSurfBobState(objectEvent->fieldEffectSpriteId, 1); + SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_PLAYER_AND_MON); } ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state)); ObjectEventTurn(objectEvent, DIR_SOUTH); @@ -3703,8 +3704,8 @@ static void DestroyDeoxysRockEffect_RockFragments(s16* data, u8 taskId) { struct Sprite *sprite = &gSprites[gObjectEvents[tObjectEventId].spriteId]; gObjectEvents[tObjectEventId].invisible = TRUE; - BlendPalettes(0x0000FFFF, 0x10, RGB_WHITE); - BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, RGB_WHITE); + BlendPalettes(PALETTES_BG, 0x10, RGB_WHITE); + BeginNormalPaletteFade(PALETTES_BG, 0, 0x10, 0, RGB_WHITE); CreateDeoxysRockFragments(sprite); PlaySE(SE_THUNDER); StartEndingDeoxysRockCameraShake(tCameraTaskId); @@ -3779,8 +3780,8 @@ static const struct SpriteTemplate sSpriteTemplate_DeoxysRockFragment = { static void CreateDeoxysRockFragments(struct Sprite* sprite) { int i; - int xPos = (s16)gTotalCameraPixelOffsetX + sprite->pos1.x + sprite->pos2.x; - int yPos = (s16)gTotalCameraPixelOffsetY + sprite->pos1.y + sprite->pos2.y - 4; + int xPos = (s16)gTotalCameraPixelOffsetX + sprite->x + sprite->x2; + int yPos = (s16)gTotalCameraPixelOffsetY + sprite->y + sprite->y2 - 4; for (i = 0; i < 4; i++) { @@ -3800,23 +3801,23 @@ static void SpriteCB_DeoxysRockFragment(struct Sprite* sprite) switch (sprite->data[0]) { case 0: - sprite->pos1.x -= 16; - sprite->pos1.y -= 12; + sprite->x -= 16; + sprite->y -= 12; break; case 1: - sprite->pos1.x += 16; - sprite->pos1.y -= 12; + sprite->x += 16; + sprite->y -= 12; break; case 2: - sprite->pos1.x -= 16; - sprite->pos1.y += 12; + sprite->x -= 16; + sprite->y += 12; break; case 3: - sprite->pos1.x += 16; - sprite->pos1.y += 12; + sprite->x += 16; + sprite->y += 12; break; } - if ((u16)(sprite->pos1.x + 4) > DISPLAY_WIDTH + 8 || sprite->pos1.y < -4 || sprite->pos1.y > DISPLAY_HEIGHT + 4) + if ((u16)(sprite->x + 4) > DISPLAY_WIDTH + 8 || sprite->y < -4 || sprite->y > DISPLAY_HEIGHT + 4) DestroySprite(sprite); } @@ -3836,8 +3837,8 @@ bool8 FldEff_MoveDeoxysRock(struct Sprite* sprite) ShiftObjectEventCoords(object, gFieldEffectArguments[3] + 7, gFieldEffectArguments[4] + 7); taskId = CreateTask(Task_MoveDeoxysRock, 80); gTasks[taskId].data[1] = object->spriteId; - gTasks[taskId].data[2] = gSprites[object->spriteId].pos1.x + xPos; - gTasks[taskId].data[3] = gSprites[object->spriteId].pos1.y + yPos; + gTasks[taskId].data[2] = gSprites[object->spriteId].x + xPos; + gTasks[taskId].data[3] = gSprites[object->spriteId].y + yPos; gTasks[taskId].data[8] = gFieldEffectArguments[5]; gTasks[taskId].data[9] = objectEventIdBuffer; } @@ -3851,18 +3852,10 @@ static void Task_MoveDeoxysRock(u8 taskId) switch (data[0]) { case 0: - data[4] = sprite->pos1.x << 4; - data[5] = sprite->pos1.y << 4; - - // UB: Possible divide by zero - #ifdef UBFIX - #define DIVISOR (data[8] ? data[8] : 1); - #else - #define DIVISOR (data[8]) - #endif - - data[6] = (data[2] * 16 - data[4]) / DIVISOR; - data[7] = (data[3] * 16 - data[5]) / DIVISOR; + data[4] = sprite->x << 4; + data[5] = sprite->y << 4; + data[6] = SAFE_DIV(data[2] * 16 - data[4], data[8]); + data[7] = SAFE_DIV(data[3] * 16 - data[5], data[8]); data[0]++; case 1: if (data[8] != 0) @@ -3870,14 +3863,14 @@ static void Task_MoveDeoxysRock(u8 taskId) data[8]--; data[4] += data[6]; data[5] += data[7]; - sprite->pos1.x = data[4] >> 4; - sprite->pos1.y = data[5] >> 4; + sprite->x = data[4] >> 4; + sprite->y = data[5] >> 4; } else { struct ObjectEvent *object = &gObjectEvents[data[9]]; - sprite->pos1.x = data[2]; - sprite->pos1.y = data[3]; + sprite->x = data[2]; + sprite->y = data[3]; ShiftStillObjectEventCoords(object); object->triggerGroundEffectsOnStop = TRUE; FieldEffectActiveListRemove(FLDEFF_MOVE_DEOXYS_ROCK); diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 2322232b88..eab7d85ef0 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -19,24 +19,32 @@ static void UpdateObjectReflectionSprite(struct Sprite *); static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite); static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *, u8); static void LoadObjectRegularReflectionPalette(struct ObjectEvent *, u8); -static void sub_81561FC(struct Sprite *, u8, u8); +static void UpdateGrassFieldEffectSubpriority(struct Sprite *, u8, u8); static void FadeFootprintsTireTracks_Step0(struct Sprite *); static void FadeFootprintsTireTracks_Step1(struct Sprite *); static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *); -static void UpdateAshFieldEffect_Step0(struct Sprite *); -static void UpdateAshFieldEffect_Step1(struct Sprite *); -static void UpdateAshFieldEffect_Step2(struct Sprite *); +static void UpdateAshFieldEffect_Wait(struct Sprite *); +static void UpdateAshFieldEffect_Show(struct Sprite *); +static void UpdateAshFieldEffect_End(struct Sprite *); static void SynchroniseSurfAnim(struct ObjectEvent *, struct Sprite *); -static void sub_81556E8(struct ObjectEvent *, struct Sprite *); -static void CreateBobbingEffect(struct ObjectEvent *, struct Sprite *, struct Sprite *); -static void sub_8155850(struct Sprite *); +static void SynchroniseSurfPosition(struct ObjectEvent *, struct Sprite *); +static void UpdateBobbingEffect(struct ObjectEvent *, struct Sprite *, struct Sprite *); +static void SpriteCB_UnderwaterSurfBlob(struct Sprite *); static u32 ShowDisguiseFieldEffect(u8, u8, u8); +// Used by several field effects to determine which of a group it is +#define sFldEff data[1] + +#define sReflectionObjEventId data[0] +#define sReflectionObjEventLocalId data[1] +#define sReflectionVerticalOffset data[2] +#define sIsStillReflection data[7] + void SetUpReflection(struct ObjectEvent *objectEvent, struct Sprite *sprite, bool8 stillReflection) { struct Sprite *reflectionSprite; - reflectionSprite = &gSprites[CreateCopySpriteAt(sprite, sprite->pos1.x, sprite->pos1.y, 0x98)]; + reflectionSprite = &gSprites[CreateCopySpriteAt(sprite, sprite->x, sprite->y, 0x98)]; reflectionSprite->callback = UpdateObjectReflectionSprite; reflectionSprite->oam.priority = 3; reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[reflectionSprite->oam.paletteNum]; @@ -46,9 +54,9 @@ void SetUpReflection(struct ObjectEvent *objectEvent, struct Sprite *sprite, boo reflectionSprite->affineAnims = gDummySpriteAffineAnimTable; reflectionSprite->affineAnimBeginning = TRUE; reflectionSprite->subspriteMode = SUBSPRITES_OFF; - reflectionSprite->data[0] = sprite->data[0]; - reflectionSprite->data[1] = objectEvent->localId; - reflectionSprite->data[7] = stillReflection; + reflectionSprite->sReflectionObjEventId = sprite->data[0]; + reflectionSprite->sReflectionObjEventLocalId = objectEvent->localId; + reflectionSprite->sIsStillReflection = stillReflection; LoadObjectReflectionPalette(objectEvent, reflectionSprite); if (!stillReflection) @@ -60,19 +68,19 @@ static s16 GetReflectionVerticalOffset(struct ObjectEvent *objectEvent) return GetObjectEventGraphicsInfo(objectEvent->graphicsId)->height - 2; } -static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *reflectionSprite) { u8 bridgeType; u16 bridgeReflectionVerticalOffsets[] = { 12, 28, 44 }; - sprite->data[2] = 0; + reflectionSprite->sReflectionVerticalOffset = 0; if (!GetObjectEventGraphicsInfo(objectEvent->graphicsId)->disableReflectionPaletteLoad && ((bridgeType = MetatileBehavior_GetBridgeType(objectEvent->previousMetatileBehavior)) || (bridgeType = MetatileBehavior_GetBridgeType(objectEvent->currentMetatileBehavior)))) { - sprite->data[2] = bridgeReflectionVerticalOffsets[bridgeType - 1]; - LoadObjectHighBridgeReflectionPalette(objectEvent, sprite->oam.paletteNum); + reflectionSprite->sReflectionVerticalOffset = bridgeReflectionVerticalOffsets[bridgeType - 1]; + LoadObjectHighBridgeReflectionPalette(objectEvent, reflectionSprite->oam.paletteNum); } else { - LoadObjectRegularReflectionPalette(objectEvent, sprite->oam.paletteNum); + LoadObjectRegularReflectionPalette(objectEvent, reflectionSprite->oam.paletteNum); } } @@ -118,9 +126,9 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite) struct ObjectEvent *objectEvent; struct Sprite *mainSprite; - objectEvent = &gObjectEvents[reflectionSprite->data[0]]; + objectEvent = &gObjectEvents[reflectionSprite->sReflectionObjEventId]; mainSprite = &gSprites[objectEvent->spriteId]; - if (!objectEvent->active || !objectEvent->hasReflection || objectEvent->localId != reflectionSprite->data[1]) + if (!objectEvent->active || !objectEvent->hasReflection || objectEvent->localId != reflectionSprite->sReflectionObjEventLocalId) { reflectionSprite->inUse = FALSE; } @@ -134,20 +142,18 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite) reflectionSprite->subspriteTables = mainSprite->subspriteTables; reflectionSprite->subspriteTableNum = mainSprite->subspriteTableNum; reflectionSprite->invisible = mainSprite->invisible; - reflectionSprite->pos1.x = mainSprite->pos1.x; - // reflectionSprite->data[2] holds an additional vertical offset, used by the high bridges on Route 120 - reflectionSprite->pos1.y = mainSprite->pos1.y + GetReflectionVerticalOffset(objectEvent) + reflectionSprite->data[2]; + reflectionSprite->x = mainSprite->x; + reflectionSprite->y = mainSprite->y + GetReflectionVerticalOffset(objectEvent) + reflectionSprite->sReflectionVerticalOffset; reflectionSprite->centerToCornerVecX = mainSprite->centerToCornerVecX; reflectionSprite->centerToCornerVecY = mainSprite->centerToCornerVecY; - reflectionSprite->pos2.x = mainSprite->pos2.x; - reflectionSprite->pos2.y = -mainSprite->pos2.y; + reflectionSprite->x2 = mainSprite->x2; + reflectionSprite->y2 = -mainSprite->y2; reflectionSprite->coordOffsetEnabled = mainSprite->coordOffsetEnabled; if (objectEvent->hideReflection == TRUE) reflectionSprite->invisible = TRUE; - // Check if the reflection is not still. - if (reflectionSprite->data[7] == FALSE) + if (reflectionSprite->sIsStillReflection == FALSE) { // Sets the reflection sprite's rot/scale matrix to the appropriate // matrix based on whether or not the main sprite is horizontally flipped. @@ -159,6 +165,11 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite) } } +#undef sReflectionObjEventId +#undef sReflectionObjEventLocalId +#undef sReflectionVerticalOffset +#undef sIsStillReflection + extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; u8 CreateWarpArrowSprite(void) @@ -193,8 +204,8 @@ void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y) { SetSpritePosToMapCoords(x, y, &x2, &y2); sprite = &gSprites[spriteId]; - sprite->pos1.x = x2 + 8; - sprite->pos1.y = y2 + 8; + sprite->x = x2 + 8; + sprite->y = y2 + 8; sprite->invisible = FALSE; sprite->data[0] = x; sprite->data[1] = y; @@ -251,8 +262,8 @@ void UpdateShadowFieldEffect(struct Sprite *sprite) objectEvent = &gObjectEvents[objectEventId]; linkedSprite = &gSprites[objectEvent->spriteId]; sprite->oam.priority = linkedSprite->oam.priority; - sprite->pos1.x = linkedSprite->pos1.x; - sprite->pos1.y = linkedSprite->pos1.y + sprite->data[3]; + sprite->x = linkedSprite->x; + sprite->y = linkedSprite->y + sprite->data[3]; if (!objectEvent->active || !objectEvent->hasShadow || MetatileBehavior_IsPokeGrass(objectEvent->currentMetatileBehavior) || MetatileBehavior_IsSurfableWaterOrUnderwater(objectEvent->currentMetatileBehavior) @@ -265,6 +276,16 @@ void UpdateShadowFieldEffect(struct Sprite *sprite) } } +// Sprite data for FLDEFF_TALL_GRASS and FLDEFF_LONG_GRASS +#define sElevation data[0] +#define sX data[1] +#define sY data[2] +#define sMapNum data[3] // Lower 8 bits +#define sLocalId data[3] >> 8 // Upper 8 bits +#define sMapGroup data[4] +#define sCurrentMap data[5] +#define sObjectMoved data[7] + u32 FldEff_TallGrass(void) { s16 x; @@ -281,16 +302,15 @@ u32 FldEff_TallGrass(void) sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = gFieldEffectArguments[0]; - sprite->data[2] = gFieldEffectArguments[1]; - sprite->data[3] = gFieldEffectArguments[4]; - sprite->data[4] = gFieldEffectArguments[5]; - sprite->data[5] = gFieldEffectArguments[6]; + sprite->sElevation = gFieldEffectArguments[2]; + sprite->sX = gFieldEffectArguments[0]; + sprite->sY = gFieldEffectArguments[1]; + sprite->sMapNum = gFieldEffectArguments[4]; // Also sLocalId + sprite->sMapGroup = gFieldEffectArguments[5]; + sprite->sCurrentMap = gFieldEffectArguments[6]; + if (gFieldEffectArguments[7]) - { - SeekSpriteAnim(sprite, 4); - } + SeekSpriteAnim(sprite, 4); // Skip to end of anim } return 0; } @@ -304,34 +324,42 @@ void UpdateTallGrassFieldEffect(struct Sprite *sprite) u8 objectEventId; struct ObjectEvent *objectEvent; - mapNum = sprite->data[5] >> 8; - mapGroup = sprite->data[5]; + mapNum = sprite->sCurrentMap >> 8; + mapGroup = sprite->sCurrentMap; if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup)) { - sprite->data[1] -= gCamera.x; - sprite->data[2] -= gCamera.y; - sprite->data[5] = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup; + sprite->sX -= gCamera.x; + sprite->sY -= gCamera.y; + sprite->sCurrentMap = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup; } - localId = sprite->data[3] >> 8; - mapNum = sprite->data[3]; - mapGroup = sprite->data[4]; - metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]); - if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) || !MetatileBehavior_IsTallGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded)) + localId = sprite->sLocalId; + mapNum = sprite->sMapNum; + mapGroup = sprite->sMapGroup; + metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->sX, sprite->sY); + + if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) + || !MetatileBehavior_IsTallGrass(metatileBehavior) + || (sprite->sObjectMoved && sprite->animEnded)) { FieldEffectStop(sprite, FLDEFF_TALL_GRASS); } else { + // Check if the object that triggered the effect has moved away objectEvent = &gObjectEvents[objectEventId]; - if ((objectEvent->currentCoords.x != sprite->data[1] || objectEvent->currentCoords.y != sprite->data[2]) && (objectEvent->previousCoords.x != sprite->data[1] || objectEvent->previousCoords.y != sprite->data[2])) - sprite->data[7] = TRUE; + if ((objectEvent->currentCoords.x != sprite->sX + || objectEvent->currentCoords.y != sprite->sY) + && (objectEvent->previousCoords.x != sprite->sX + || objectEvent->previousCoords.y != sprite->sY)) + sprite->sObjectMoved = TRUE; + // Metatile behavior var re-used metatileBehavior = 0; if (sprite->animCmdIndex == 0) metatileBehavior = 4; - UpdateObjectEventSpriteVisibility(sprite, 0); - sub_81561FC(sprite, sprite->data[0], metatileBehavior); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); + UpdateGrassFieldEffectSubpriority(sprite, sprite->sElevation, metatileBehavior); } } @@ -347,8 +375,8 @@ u32 FldEff_JumpTallGrass(void) sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = FLDEFF_JUMP_TALL_GRASS; + sprite->sElevation = gFieldEffectArguments[2]; + sprite->sFldEff = FLDEFF_JUMP_TALL_GRASS; } return 0; } @@ -363,11 +391,14 @@ u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s if (gSprites[i].inUse) { sprite = &gSprites[i]; - if (sprite->callback == UpdateTallGrassFieldEffect && (x == sprite->data[1] && y == sprite->data[2]) && (localId == (u8)(sprite->data[3] >> 8) && mapNum == (sprite->data[3] & 0xFF) && mapGroup == sprite->data[4])) + if (sprite->callback == UpdateTallGrassFieldEffect + && (x == sprite->sX && y == sprite->sY) + && localId == (u8)(sprite->sLocalId) + && mapNum == (sprite->sMapNum & 0xFF) + && mapGroup == sprite->sMapGroup) return i; } } - return MAX_SPRITES; } @@ -387,16 +418,15 @@ u32 FldEff_LongGrass(void) sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = ZCoordToPriority(gFieldEffectArguments[2]); - sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = gFieldEffectArguments[0]; - sprite->data[2] = gFieldEffectArguments[1]; - sprite->data[3] = gFieldEffectArguments[4]; - sprite->data[4] = gFieldEffectArguments[5]; - sprite->data[5] = gFieldEffectArguments[6]; + sprite->sElevation = gFieldEffectArguments[2]; + sprite->sX = gFieldEffectArguments[0]; + sprite->sY = gFieldEffectArguments[1]; + sprite->sMapNum = gFieldEffectArguments[4]; // Also sLocalId + sprite->sMapGroup = gFieldEffectArguments[5]; + sprite->sCurrentMap = gFieldEffectArguments[6]; + if (gFieldEffectArguments[7]) - { - SeekSpriteAnim(sprite, 6); - } + SeekSpriteAnim(sprite, 6); // Skip to end of anim } return 0; } @@ -410,34 +440,47 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite) u8 objectEventId; struct ObjectEvent *objectEvent; - mapNum = sprite->data[5] >> 8; - mapGroup = sprite->data[5]; + mapNum = sprite->sCurrentMap >> 8; + mapGroup = sprite->sCurrentMap; if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup)) { - sprite->data[1] -= gCamera.x; - sprite->data[2] -= gCamera.y; - sprite->data[5] = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup; + sprite->sX -= gCamera.x; + sprite->sY -= gCamera.y; + sprite->sCurrentMap = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup; } - localId = sprite->data[3] >> 8; - mapNum = sprite->data[3]; - mapGroup = sprite->data[4]; + localId = sprite->sLocalId; + mapNum = sprite->sMapNum; + mapGroup = sprite->sMapGroup; metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]); - if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) || !MetatileBehavior_IsLongGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded)) + if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) + || !MetatileBehavior_IsLongGrass(metatileBehavior) + || (sprite->sObjectMoved && sprite->animEnded)) { FieldEffectStop(sprite, FLDEFF_LONG_GRASS); } else { + // Check if the object that triggered the effect has moved away objectEvent = &gObjectEvents[objectEventId]; - if ((objectEvent->currentCoords.x != sprite->data[1] || objectEvent->currentCoords.y != sprite->data[2]) && (objectEvent->previousCoords.x != sprite->data[1] || objectEvent->previousCoords.y != sprite->data[2])) - { - sprite->data[7] = TRUE; - } - UpdateObjectEventSpriteVisibility(sprite, 0); - sub_81561FC(sprite, sprite->data[0], 0); + if ((objectEvent->currentCoords.x != sprite->data[1] + || objectEvent->currentCoords.y != sprite->data[2]) + && (objectEvent->previousCoords.x != sprite->data[1] + || objectEvent->previousCoords.y != sprite->data[2])) + sprite->sObjectMoved = TRUE; + + UpdateObjectEventSpriteInvisibility(sprite, FALSE); + UpdateGrassFieldEffectSubpriority(sprite, sprite->sElevation, 0); } } +#undef sX +#undef sY +#undef sMapNum +#undef sLocalId +#undef sMapGroup +#undef sCurrentMap +#undef sObjectMoved + u32 FldEff_JumpLongGrass(void) { u8 spriteId; @@ -450,8 +493,8 @@ u32 FldEff_JumpLongGrass(void) sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = FLDEFF_JUMP_LONG_GRASS; + sprite->sElevation = gFieldEffectArguments[2]; + sprite->sFldEff = FLDEFF_JUMP_LONG_GRASS; } return 0; } @@ -474,8 +517,8 @@ u32 FldEff_ShortGrass(void) sprite->data[0] = gFieldEffectArguments[0]; sprite->data[1] = gFieldEffectArguments[1]; sprite->data[2] = gFieldEffectArguments[2]; - sprite->data[3] = gSprites[objectEvent->spriteId].pos1.x; - sprite->data[4] = gSprites[objectEvent->spriteId].pos1.y; + sprite->data[3] = gSprites[objectEvent->spriteId].x; + sprite->data[4] = gSprites[objectEvent->spriteId].y; } return 0; } @@ -496,8 +539,8 @@ void UpdateShortGrassFieldEffect(struct Sprite *sprite) { graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId]; - y = linkedSprite->pos1.y; - x = linkedSprite->pos1.x; + y = linkedSprite->y; + x = linkedSprite->x; if (x != sprite->data[3] || y != sprite->data[4]) { sprite->data[3] = x; @@ -507,12 +550,12 @@ void UpdateShortGrassFieldEffect(struct Sprite *sprite) StartSpriteAnim(sprite, 0); } } - sprite->pos1.x = x; - sprite->pos1.y = y; - sprite->pos2.y = (graphicsInfo->height >> 1) - 8; + sprite->x = x; + sprite->y = y; + sprite->y2 = (graphicsInfo->height >> 1) - 8; sprite->subpriority = linkedSprite->subpriority - 1; sprite->oam.priority = linkedSprite->oam.priority; - UpdateObjectEventSpriteVisibility(sprite, linkedSprite->invisible); + UpdateObjectEventSpriteInvisibility(sprite, linkedSprite->invisible); } } @@ -586,14 +629,14 @@ static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite) if (++sprite->data[1] > 40) sprite->data[0] = 1; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite) { sprite->invisible ^= 1; sprite->data[1]++; - UpdateObjectEventSpriteVisibility(sprite, sprite->invisible); + UpdateObjectEventSpriteInvisibility(sprite, sprite->invisible); if (sprite->data[1] > 56) { FieldEffectStop(sprite, sprite->data[7]); @@ -622,7 +665,7 @@ u32 FldEff_Splash(void) sprite->data[0] = gFieldEffectArguments[0]; sprite->data[1] = gFieldEffectArguments[1]; sprite->data[2] = gFieldEffectArguments[2]; - sprite->pos2.y = (graphicsInfo->height >> 1) - 4; + sprite->y2 = (graphicsInfo->height >> 1) - 4; PlaySE(SE_PUDDLE); } return 0; @@ -638,9 +681,9 @@ void UpdateSplashFieldEffect(struct Sprite *sprite) } else { - sprite->pos1.x = gSprites[gObjectEvents[objectEventId].spriteId].pos1.x; - sprite->pos1.y = gSprites[gObjectEvents[objectEventId].spriteId].pos1.y; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + sprite->x = gSprites[gObjectEvents[objectEventId].spriteId].x; + sprite->y = gSprites[gObjectEvents[objectEventId].spriteId].y; + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -703,7 +746,7 @@ u32 FldEff_FeetInFlowingWater(void) sprite->data[2] = gFieldEffectArguments[2]; sprite->data[3] = -1; sprite->data[4] = -1; - sprite->pos2.y = (graphicsInfo->height >> 1) - 4; + sprite->y2 = (graphicsInfo->height >> 1) - 4; StartSpriteAnim(sprite, 1); } return 0; @@ -723,10 +766,10 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) { objectEvent = &gObjectEvents[objectEventId]; linkedSprite = &gSprites[objectEvent->spriteId]; - sprite->pos1.x = linkedSprite->pos1.x; - sprite->pos1.y = linkedSprite->pos1.y; + sprite->x = linkedSprite->x; + sprite->y = linkedSprite->y; sprite->subpriority = linkedSprite->subpriority; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (objectEvent->currentCoords.x != sprite->data[3] || objectEvent->currentCoords.y != sprite->data[4]) { sprite->data[3] = objectEvent->currentCoords.x; @@ -773,8 +816,8 @@ u32 FldEff_HotSpringsWater(void) sprite->data[0] = gFieldEffectArguments[0]; sprite->data[1] = gFieldEffectArguments[1]; sprite->data[2] = gFieldEffectArguments[2]; - sprite->data[3] = gSprites[objectEvent->spriteId].pos1.x; - sprite->data[4] = gSprites[objectEvent->spriteId].pos1.y; + sprite->data[3] = gSprites[objectEvent->spriteId].x; + sprite->data[4] = gSprites[objectEvent->spriteId].y; } return 0; } @@ -793,10 +836,10 @@ void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite) { graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId]; - sprite->pos1.x = linkedSprite->pos1.x; - sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 8; + sprite->x = linkedSprite->x; + sprite->y = (graphicsInfo->height >> 1) + linkedSprite->y - 8; sprite->subpriority = linkedSprite->subpriority - 1; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -868,14 +911,21 @@ u32 FldEff_WaterSurfacing(void) return 0; } -void StartAshFieldEffect(s16 x, s16 y, u16 metatileId, s16 d) +// Sprite data for FLDEFF_ASH +#define sState data[0] +#define sX data[1] +#define sY data[2] +#define sMetatileId data[3] +#define sDelay data[4] + +void StartAshFieldEffect(s16 x, s16 y, u16 metatileId, s16 delay) { gFieldEffectArguments[0] = x; gFieldEffectArguments[1] = y; - gFieldEffectArguments[2] = 0x52; - gFieldEffectArguments[3] = 1; + gFieldEffectArguments[2] = 82; // subpriority + gFieldEffectArguments[3] = 1; // priority gFieldEffectArguments[4] = metatileId; - gFieldEffectArguments[5] = d; + gFieldEffectArguments[5] = delay; FieldEffectStart(FLDEFF_ASH); } @@ -895,50 +945,62 @@ u32 FldEff_Ash(void) sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[1] = gFieldEffectArguments[0]; - sprite->data[2] = gFieldEffectArguments[1]; - sprite->data[3] = gFieldEffectArguments[4]; - sprite->data[4] = gFieldEffectArguments[5]; + sprite->sX = gFieldEffectArguments[0]; + sprite->sY = gFieldEffectArguments[1]; + sprite->sMetatileId = gFieldEffectArguments[4]; + sprite->sDelay = gFieldEffectArguments[5]; } return 0; } void (*const gAshFieldEffectFuncs[])(struct Sprite *) = { - UpdateAshFieldEffect_Step0, - UpdateAshFieldEffect_Step1, - UpdateAshFieldEffect_Step2 + UpdateAshFieldEffect_Wait, + UpdateAshFieldEffect_Show, + UpdateAshFieldEffect_End }; void UpdateAshFieldEffect(struct Sprite *sprite) { - gAshFieldEffectFuncs[sprite->data[0]](sprite); + gAshFieldEffectFuncs[sprite->sState](sprite); } -static void UpdateAshFieldEffect_Step0(struct Sprite *sprite) +static void UpdateAshFieldEffect_Wait(struct Sprite *sprite) { sprite->invisible = TRUE; sprite->animPaused = TRUE; - if (--sprite->data[4] == 0) - sprite->data[0] = 1; + if (--sprite->sDelay == 0) + sprite->sState = 1; } -static void UpdateAshFieldEffect_Step1(struct Sprite *sprite) +static void UpdateAshFieldEffect_Show(struct Sprite *sprite) { sprite->invisible = FALSE; sprite->animPaused = FALSE; - MapGridSetMetatileIdAt(sprite->data[1], sprite->data[2], sprite->data[3]); - CurrentMapDrawMetatileAt(sprite->data[1], sprite->data[2]); + MapGridSetMetatileIdAt(sprite->sX, sprite->sY, sprite->sMetatileId); + CurrentMapDrawMetatileAt(sprite->sX, sprite->sY); gObjectEvents[gPlayerAvatar.objectEventId].triggerGroundEffectsOnMove = TRUE; - sprite->data[0] = 2; + sprite->sState = 2; } -static void UpdateAshFieldEffect_Step2(struct Sprite *sprite) +static void UpdateAshFieldEffect_End(struct Sprite *sprite) { - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (sprite->animEnded) FieldEffectStop(sprite, FLDEFF_ASH); } +#undef sState +#undef sX +#undef sY +#undef sMetatileId +#undef sDelay + +// Sprite data for FLDEFF_SURF_BLOB +#define tBitfield data[0] +#define tPlayerOffset data[1] +#define tPlayerObjId data[2] + + u32 FldEff_SurfBlob(void) { u8 spriteId; @@ -946,12 +1008,12 @@ u32 FldEff_SurfBlob(void) SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96); - if (spriteId !=MAX_SPRITES) + if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.paletteNum = 0; - sprite->data[2] = gFieldEffectArguments[2]; + sprite->tPlayerObjId = gFieldEffectArguments[2]; sprite->data[3] = -1; sprite->data[6] = -1; sprite->data[7] = -1; @@ -960,53 +1022,55 @@ u32 FldEff_SurfBlob(void) return spriteId; } -// States for bobbing up and down while surfing -void SetSurfBobState(u8 spriteId, u8 value) + +void SetSurfBlob_BobState(u8 spriteId, u8 state) { - gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (value & 0xF); + gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (state & 0xF); } -void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value) +void SetSurfBlob_DontSyncAnim(u8 spriteId, bool8 dontSync) { - gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((value & 0xF) << 4); + gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((dontSync & 0xF) << 4); } -void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1) +void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset) { - gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((value & 0xF) << 8); - gSprites[spriteId].data[1] = data1; + gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((hasOffset & 0xF) << 8); + gSprites[spriteId].tPlayerOffset = offset; } -static u8 GetSurfBobState(struct Sprite *sprite) +static u8 GetSurfBlob_BobState(struct Sprite *sprite) { return sprite->data[0] & 0xF; } -static u8 GetSurfBobWhileFlyingOutState(struct Sprite *sprite) +// Never TRUE +static u8 GetSurfBlob_DontSyncAnim(struct Sprite *sprite) { return (sprite->data[0] & 0xF0) >> 4; } -static u8 GetSurfBobWhileFishingState(struct Sprite *sprite) +static u8 GetSurfBlob_HasPlayerOffset(struct Sprite *sprite) { return (sprite->data[0] & 0xF00) >> 8; } void UpdateSurfBlobFieldEffect(struct Sprite *sprite) { - struct ObjectEvent *objectEvent; - struct Sprite *linkedSprite; + struct ObjectEvent *playerObj; + struct Sprite *playerSprite; - objectEvent = &gObjectEvents[sprite->data[2]]; - linkedSprite = &gSprites[objectEvent->spriteId]; - SynchroniseSurfAnim(objectEvent, sprite); - sub_81556E8(objectEvent, sprite); - CreateBobbingEffect(objectEvent, linkedSprite, sprite); - sprite->oam.priority = linkedSprite->oam.priority; + playerObj = &gObjectEvents[sprite->tPlayerObjId]; + playerSprite = &gSprites[playerObj->spriteId]; + SynchroniseSurfAnim(playerObj, sprite); + SynchroniseSurfPosition(playerObj, sprite); + UpdateBobbingEffect(playerObj, playerSprite, sprite); + sprite->oam.priority = playerSprite->oam.priority; } -static void SynchroniseSurfAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static void SynchroniseSurfAnim(struct ObjectEvent *playerObj, struct Sprite *sprite) { + // Indexes into sAnimTable_SurfBlob u8 surfBlobDirectionAnims[] = { [DIR_NONE] = 0, [DIR_SOUTH] = 0, @@ -1019,16 +1083,16 @@ static void SynchroniseSurfAnim(struct ObjectEvent *objectEvent, struct Sprite * [DIR_NORTHEAST] = 1, }; - if (GetSurfBobWhileFlyingOutState(sprite) == 0) - StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[objectEvent->movementDirection]); + if (!GetSurfBlob_DontSyncAnim(sprite)) + StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[playerObj->movementDirection]); } -void sub_81556E8(struct ObjectEvent *objectEvent, struct Sprite *sprite) +void SynchroniseSurfPosition(struct ObjectEvent *playerObj, struct Sprite *sprite) { u8 i; - s16 x = objectEvent->currentCoords.x; - s16 y = objectEvent->currentCoords.y; - s32 spriteY = sprite->pos2.y; + s16 x = playerObj->currentCoords.x; + s16 y = playerObj->currentCoords.y; + s32 spriteY = sprite->y2; if (spriteY == 0 && (x != sprite->data[6] || y != sprite->data[7])) { @@ -1040,68 +1104,81 @@ void sub_81556E8(struct ObjectEvent *objectEvent, struct Sprite *sprite) MoveCoords(i, &x, &y); if (MapGridGetZCoordAt(x, y) == 3) { - sprite->data[5] ++; + sprite->data[5]++; break; } } } } -static void CreateBobbingEffect(struct ObjectEvent *objectEvent, struct Sprite *linkedSprite, struct Sprite *sprite) +static void UpdateBobbingEffect(struct ObjectEvent *playerObj, struct Sprite *playerSprite, struct Sprite *sprite) { - u16 unk_085CDC6A[] = {3, 7}; - u8 bobState = GetSurfBobState(sprite); - if (bobState != 0) + u16 intervals[] = {3, 7}; + u8 bobState = GetSurfBlob_BobState(sprite); + if (bobState != BOB_NONE) { - if (((u16)(++ sprite->data[4]) & unk_085CDC6A[sprite->data[5]]) == 0) + // Update bobbing position of surf blob + if (((u16)(++sprite->data[4]) & intervals[sprite->data[5]]) == 0) { - sprite->pos2.y += sprite->data[3]; + sprite->y2 += sprite->data[3]; } - if ((sprite->data[4] & 0x0F) == 0) + if ((sprite->data[4] & 15) == 0) { sprite->data[3] = -sprite->data[3]; } - if (bobState != 2) + if (bobState != BOB_JUST_MON) { - if (GetSurfBobWhileFishingState(sprite) == 0) - linkedSprite->pos2.y = sprite->pos2.y; + // Update bobbing position of player + if (!GetSurfBlob_HasPlayerOffset(sprite)) + playerSprite->y2 = sprite->y2; else - linkedSprite->pos2.y = sprite->data[1] + sprite->pos2.y; - sprite->pos1.x = linkedSprite->pos1.x; - sprite->pos1.y = linkedSprite->pos1.y + 8; + playerSprite->y2 = sprite->tPlayerOffset + sprite->y2; + sprite->x = playerSprite->x; + sprite->y = playerSprite->y + 8; } } } -u8 sub_8155800(u8 oldSpriteId) +#define sSpriteId data[0] +#define sBobY data[1] +#define sTimer data[2] + +u8 StartUnderwaterSurfBlobBobbing(u8 blobSpriteId) { u8 spriteId; struct Sprite *sprite; + // Create a dummy sprite with its own callback + // that tracks the actual surf blob sprite and + // makes it bob up and down underwater spriteId = CreateSpriteAtEnd(&gDummySpriteTemplate, 0, 0, -1); sprite = &gSprites[spriteId]; - sprite->callback = sub_8155850; + sprite->callback = SpriteCB_UnderwaterSurfBlob; sprite->invisible = TRUE; - sprite->data[0] = oldSpriteId; - sprite->data[1] = 1; + sprite->sSpriteId = blobSpriteId; + sprite->sBobY = 1; return spriteId; } -static void sub_8155850(struct Sprite *sprite) +static void SpriteCB_UnderwaterSurfBlob(struct Sprite *sprite) { - struct Sprite *oldSprite; + struct Sprite *blobSprite; - oldSprite = &gSprites[sprite->data[0]]; - if (((sprite->data[2]++) & 0x03) == 0) + blobSprite = &gSprites[sprite->sSpriteId]; + if (((sprite->sTimer++) & 3) == 0) { - oldSprite->pos2.y += sprite->data[1]; + blobSprite->y2 += sprite->sBobY; } - if ((sprite->data[2] & 0x0F) == 0) + if ((sprite->sTimer & 15) == 0) { - sprite->data[1] = -sprite->data[1]; + sprite->sBobY = -sprite->sBobY; } } +#undef sSpriteId +#undef sBobY +#undef sTimer + u32 FldEff_Dust(void) { u8 spriteId; @@ -1140,9 +1217,9 @@ u32 FldEff_SandPile(void) sprite->data[0] = gFieldEffectArguments[0]; sprite->data[1] = gFieldEffectArguments[1]; sprite->data[2] = gFieldEffectArguments[2]; - sprite->data[3] = gSprites[objectEvent->spriteId].pos1.x; - sprite->data[4] = gSprites[objectEvent->spriteId].pos1.y; - sprite->pos2.y = (graphicsInfo->height >> 1) - 2; + sprite->data[3] = gSprites[objectEvent->spriteId].x; + sprite->data[4] = gSprites[objectEvent->spriteId].y; + sprite->y2 = (graphicsInfo->height >> 1) - 2; SeekSpriteAnim(sprite, 2); } return 0; @@ -1160,8 +1237,8 @@ void UpdateSandPileFieldEffect(struct Sprite *sprite) } else { - y = gSprites[gObjectEvents[objectEventId].spriteId].pos1.y; - x = gSprites[gObjectEvents[objectEventId].spriteId].pos1.x; + y = gSprites[gObjectEvents[objectEventId].spriteId].y; + x = gSprites[gObjectEvents[objectEventId].spriteId].x; if (x != sprite->data[3] || y != sprite->data[4]) { sprite->data[3] = x; @@ -1171,10 +1248,10 @@ void UpdateSandPileFieldEffect(struct Sprite *sprite) StartSpriteAnim(sprite, 0); } } - sprite->pos1.x = x; - sprite->pos1.y = y; + sprite->x = x; + sprite->y = y; sprite->subpriority = gSprites[gObjectEvents[objectEventId].spriteId].subpriority; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -1198,8 +1275,8 @@ void UpdateBubblesFieldEffect(struct Sprite *sprite) { sprite->data[0] += 0x80; sprite->data[0] &= 0x100; - sprite->pos1.y -= sprite->data[0] >> 8; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + sprite->y -= sprite->data[0] >> 8; + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (sprite->invisible || sprite->animEnded) { FieldEffectStop(sprite, FLDEFF_BUBBLES); @@ -1224,6 +1301,13 @@ u32 FldEff_BerryTreeGrowthSparkle(void) return 0; } +// Sprite data for FLDEFF_TREE_DISGUISE / FLDEFF_MOUNTAIN_DISGUISE / FLDEFF_SAND_DISGUISE +#define sState data[0] +#define sLocalId data[2] +#define sMapNum data[3] +#define sMapGroup data[4] +#define sReadyToEnd data[7] + u32 ShowTreeDisguiseFieldEffect(void) { return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4); @@ -1255,10 +1339,10 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum) sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled ++; sprite->oam.paletteNum = paletteNum; - sprite->data[1] = fldEff; - sprite->data[2] = gFieldEffectArguments[0]; - sprite->data[3] = gFieldEffectArguments[1]; - sprite->data[4] = gFieldEffectArguments[2]; + sprite->sFldEff = fldEff; + sprite->sLocalId = gFieldEffectArguments[0]; + sprite->sMapNum = gFieldEffectArguments[1]; + sprite->sMapGroup = gFieldEffectArguments[2]; } return spriteId; } @@ -1269,62 +1353,65 @@ void UpdateDisguiseFieldEffect(struct Sprite *sprite) const struct ObjectEventGraphicsInfo *graphicsInfo; struct Sprite *linkedSprite; - if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[2], sprite->data[3], sprite->data[4], &objectEventId)) - { - FieldEffectStop(sprite, sprite->data[1]); - } + if (TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objectEventId)) + FieldEffectStop(sprite, sprite->sFldEff); graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId]; sprite->invisible = linkedSprite->invisible; - sprite->pos1.x = linkedSprite->pos1.x; - sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 16; + sprite->x = linkedSprite->x; + sprite->y = (graphicsInfo->height >> 1) + linkedSprite->y - 16; sprite->subpriority = linkedSprite->subpriority - 1; - if (sprite->data[0] == 1) + + if (sprite->sState == 1) { - sprite->data[0] ++; + sprite->sState++; StartSpriteAnim(sprite, 1); } - if (sprite->data[0] == 2 && sprite->animEnded) - { - sprite->data[7] = 1; - } - if (sprite->data[0] == 3) - { - FieldEffectStop(sprite, sprite->data[1]); - } + + if (sprite->sState == 2 && sprite->animEnded) + sprite->sReadyToEnd = TRUE; + + if (sprite->sState == 3) + FieldEffectStop(sprite, sprite->sFldEff); } -void sub_8155D78(struct ObjectEvent *objectEvent) +void StartRevealDisguise(struct ObjectEvent *objectEvent) { if (objectEvent->directionSequenceIndex == 1) - { - gSprites[objectEvent->fieldEffectSpriteId].data[0]++; - } + gSprites[objectEvent->fieldEffectSpriteId].sState++; } -bool8 sub_8155DA0(struct ObjectEvent *objectEvent) +bool8 UpdateRevealDisguise(struct ObjectEvent *objectEvent) { struct Sprite *sprite; if (objectEvent->directionSequenceIndex == 2) - { return TRUE; - } + if (objectEvent->directionSequenceIndex == 0) - { return TRUE; - } + sprite = &gSprites[objectEvent->fieldEffectSpriteId]; - if (sprite->data[7]) + if (sprite->sReadyToEnd) { objectEvent->directionSequenceIndex = 2; - sprite->data[0]++; + sprite->sState++; return TRUE; } return FALSE; } +#undef sState +#undef sLocalId +#undef sMapNum +#undef sMapGroup +#undef sReadyToEnd + +// Sprite data for FLDEFF_SPARKLE +#define sFinished data[0] +#define sEndTimer data[1] + u32 FldEff_Sparkle(void) { u8 spriteId; @@ -1343,22 +1430,22 @@ u32 FldEff_Sparkle(void) void UpdateSparkleFieldEffect(struct Sprite *sprite) { - if (sprite->data[0] == 0) + if (!sprite->sFinished) { if (sprite->animEnded) { sprite->invisible = TRUE; - sprite->data[0]++; + sprite->sFinished++; } - - if (sprite->data[0] == 0) - return; } - if (++sprite->data[1] > 34) + if (sprite->sFinished && ++sprite->sEndTimer > 34) FieldEffectStop(sprite, FLDEFF_SPARKLE); } +#undef sFinished +#undef sEndTimer + #define sTimer data[0] #define sState data[2] #define sStartY data[4] @@ -1381,25 +1468,25 @@ static bool8 AnimateRayquazaInFigure8(struct Sprite *sprite) switch (sprite->sAnimState) { case 0: - sprite->pos2.x += GetFigure8XOffset(sprite->sAnimCounter); - sprite->pos2.y += GetFigure8YOffset(sprite->sAnimCounter); + sprite->x2 += GetFigure8XOffset(sprite->sAnimCounter); + sprite->y2 += GetFigure8YOffset(sprite->sAnimCounter); break; case 1: - sprite->pos2.x -= GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); - sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + sprite->x2 -= GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + sprite->y2 += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); break; case 2: - sprite->pos2.x -= GetFigure8XOffset(sprite->sAnimCounter); - sprite->pos2.y += GetFigure8YOffset(sprite->sAnimCounter); + sprite->x2 -= GetFigure8XOffset(sprite->sAnimCounter); + sprite->y2 += GetFigure8YOffset(sprite->sAnimCounter); break; case 3: - sprite->pos2.x += GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); - sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + sprite->x2 += GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + sprite->y2 += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); break; } // Update spotlight to sweep left and right with Rayquaza - SetGpuReg(REG_OFFSET_BG0HOFS, -sprite->pos2.x); + SetGpuReg(REG_OFFSET_BG0HOFS, -sprite->x2); if (++sprite->sAnimCounter == FIGURE_8_LENGTH) { @@ -1408,8 +1495,8 @@ static bool8 AnimateRayquazaInFigure8(struct Sprite *sprite) } if (sprite->sAnimState == 4) { - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->y2 = 0; + sprite->x2 = 0; finished = TRUE; } @@ -1441,7 +1528,7 @@ void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) } break; case 1: - sprite->pos1.y = (gSineTable[sprite->sTimer / 3] >> 2) + sprite->sStartY; + sprite->y = (gSineTable[sprite->sTimer / 3] >> 2) + sprite->sStartY; if (sprite->sTimer == 189) { sprite->sState = 2; @@ -1462,7 +1549,7 @@ void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) } break; case 3: - if (sprite->pos2.y == 0) + if (sprite->y2 == 0) { sprite->sTimer = 0; sprite->sState++; @@ -1470,10 +1557,10 @@ void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) if (sprite->sTimer == 5) { sprite->sTimer = 0; - if (sprite->pos2.y > 0) - sprite->pos2.y--; + if (sprite->y2 > 0) + sprite->y2--; else - sprite->pos2.y++; + sprite->y2++; } break; case 4: @@ -1527,7 +1614,7 @@ void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) if (sprite->sState == 1) { if ((sprite->data[1] & 7) == 0) - sprite->pos2.y += sprite->data[3]; + sprite->y2 += sprite->data[3]; if ((sprite->data[1] & 15) == 0) sprite->data[3] = -sprite->data[3]; sprite->data[1]++; @@ -1543,16 +1630,17 @@ void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) #undef sAnimCounter #undef sAnimState +// Used by FLDEFF_JUMP_TALL_GRASS and FLDEFF_JUMP_LONG_GRASS void UpdateJumpImpactEffect(struct Sprite *sprite) { if (sprite->animEnded) { - FieldEffectStop(sprite, sprite->data[1]); + FieldEffectStop(sprite, sprite->sFldEff); } else { - UpdateObjectEventSpriteVisibility(sprite, FALSE); - SetObjectSubpriorityByZCoord(sprite->data[0], sprite, 0); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); + SetObjectSubpriorityByZCoord(sprite->sElevation, sprite, 0); } } @@ -1561,10 +1649,10 @@ void WaitFieldEffectSpriteAnim(struct Sprite *sprite) if (sprite->animEnded) FieldEffectStop(sprite, sprite->data[0]); else - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } -static void sub_81561FC(struct Sprite *sprite, u8 z, u8 offset) +static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 offset) { u8 i; s16 var, xhi, lyhi, yhi, ylo; @@ -1579,13 +1667,13 @@ static void sub_81561FC(struct Sprite *sprite, u8 z, u8 offset) { graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); linkedSprite = &gSprites[objectEvent->spriteId]; - xhi = sprite->pos1.x + sprite->centerToCornerVecX; - var = sprite->pos1.x - sprite->centerToCornerVecX; - if (xhi < linkedSprite->pos1.x && var > linkedSprite->pos1.x) + xhi = sprite->x + sprite->centerToCornerVecX; + var = sprite->x - sprite->centerToCornerVecX; + if (xhi < linkedSprite->x && var > linkedSprite->x) { - lyhi = linkedSprite->pos1.y + linkedSprite->centerToCornerVecY; - var = linkedSprite->pos1.y; - ylo = sprite->pos1.y - sprite->centerToCornerVecY; + lyhi = linkedSprite->y + linkedSprite->centerToCornerVecY; + var = linkedSprite->y; + ylo = sprite->y - sprite->centerToCornerVecY; yhi = ylo + linkedSprite->centerToCornerVecY; if ((lyhi < yhi || lyhi < ylo) && var > yhi && sprite->subpriority <= linkedSprite->subpriority) { @@ -1597,18 +1685,27 @@ static void sub_81561FC(struct Sprite *sprite, u8 z, u8 offset) } } -// Unused data. Feel free to remove. -static const u8 gUnknown_085CDC6E[] = -{ - 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x02, - 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, - 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, - 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, - 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00 +// Unused, duplicates of data in event_object_movement.c +static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = { + 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 2, 1, 2, + 2, 1, 2, 2, 1, 2, 1, 1, + 2, 1, 1, 2, 1, 1, 2, 1, + 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 0, + 1, 0, 1, 0, 1, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, +}; + +static const s8 sFigure8YOffsets[FIGURE_8_LENGTH] = { + 0, 0, 1, 0, 0, 1, 0, 0, + 1, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 0, 1, 1, 0, 1, 1, + 0, 0, 1, 0, 0, 1, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -1, 0, 0, -1, 0, 0, + -1, 0, -1, -1, 0, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -2, }; diff --git a/src/field_message_box.c b/src/field_message_box.c index 1b760c7df2..69d470b84e 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -1,6 +1,5 @@ #include "global.h" #include "menu.h" -#include "string.h" #include "string_util.h" #include "task.h" #include "text.h" @@ -56,7 +55,7 @@ static void CreateTask_DrawFieldMessage(void) static void DestroyTask_DrawFieldMessage(void) { u8 taskId = FindTaskIdByFunc(Task_DrawFieldMessage); - if (taskId != 0xFF) + if (taskId != TASK_NONE) DestroyTask(taskId); } diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 81f6e3f036..fe184fe643 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -31,7 +31,7 @@ #include "constants/songs.h" #include "constants/trainer_types.h" -static EWRAM_DATA u8 gUnknown_0203734C = 0; +static EWRAM_DATA u8 sSpinStartFacingDir = 0; EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {}; EWRAM_DATA struct PlayerAvatar gPlayerAvatar = {}; @@ -96,7 +96,7 @@ static void PlayerNotOnBikeCollideWithFarawayIslandMew(u8); static void PlayCollisionSoundIfNotFacingWarp(u8 a); -static void sub_808C280(struct ObjectEvent *); +static void HideShowWarpArrow(struct ObjectEvent *); static void StartStrengthAnim(u8, u8); static void Task_PushBoulder(u8 taskId); @@ -138,7 +138,7 @@ static u8 Fishing_PutRodAway(struct Task *task); static u8 Fishing_EndNoMon(struct Task *task); static void AlignFishingAnimationFrames(void); -static u8 sub_808D38C(struct ObjectEvent *object, s16 *a1); +static u8 TrySpinPlayerForWarp(struct ObjectEvent *object, s16 *a1); // .rodata @@ -323,7 +323,7 @@ void PlayerStep(u8 direction, u16 newKeys, u16 heldKeys) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - sub_808C280(playerObjEvent); + HideShowWarpArrow(playerObjEvent); if (gPlayerAvatar.preventStep == FALSE) { Bike_TryAcroBikeHistoryUpdate(newKeys, heldKeys); @@ -382,8 +382,7 @@ static void npc_clear_strange_bits(struct ObjectEvent *objEvent) static void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 heldKeys) { - if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) - || (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE)) + if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE)) MovePlayerOnBike(direction, newKeys, heldKeys); else MovePlayerNotOnBike(direction, heldKeys); @@ -723,9 +722,9 @@ static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) } } -static bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) +static bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction) { - if (GetLedgeJumpDirection(x, y, z) != 0) + if (GetLedgeJumpDirection(x, y, direction) != DIR_NONE) return TRUE; else return FALSE; @@ -864,7 +863,7 @@ static void PlayerAvatarTransition_Surfing(struct ObjectEvent *objEvent) gFieldEffectArguments[2] = gPlayerAvatar.objectEventId; spriteId = FieldEffectStart(FLDEFF_SURF_BLOB); objEvent->fieldEffectSpriteId = spriteId; - SetSurfBobState(spriteId, 1); + SetSurfBlob_BobState(spriteId, BOB_PLAYER_AND_MON); } static void PlayerAvatarTransition_Underwater(struct ObjectEvent *objEvent) @@ -872,7 +871,7 @@ static void PlayerAvatarTransition_Underwater(struct ObjectEvent *objEvent) ObjectEventSetGraphicsId(objEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_UNDERWATER)); ObjectEventTurn(objEvent, objEvent->movementDirection); SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_UNDERWATER); - objEvent->fieldEffectSpriteId = sub_8155800(objEvent->spriteId); + objEvent->fieldEffectSpriteId = StartUnderwaterSurfBlobBobbing(objEvent->spriteId); } static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent *objEvent) @@ -940,9 +939,9 @@ u8 PlayerGetCopyableMovement(void) return gObjectEvents[gPlayerAvatar.objectEventId].playerCopyableMovement; } -static void sub_808B6BC(u8 a) +static void PlayerForceSetHeldMovement(u8 movementActionId) { - ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], a); + ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], movementActionId); } void PlayerSetAnimId(u8 movementActionId, u8 copyableMovement) @@ -1020,12 +1019,13 @@ void PlayerJumpLedge(u8 direction) PlayerSetAnimId(GetJump2MovementAction(direction), 8); } -void sub_808B864(void) +// Stop player on current facing direction once they're done moving and if they're not currently Acro Biking on bumpy slope +void PlayerFreeze(void) { if (gPlayerAvatar.tileTransitionState == T_TILE_CENTER || gPlayerAvatar.tileTransitionState == T_NOT_MOVING) { - if (player_should_look_direction_be_enforced_upon_movement()) - sub_808B6BC(GetFaceDirectionMovementAction(gObjectEvents[gPlayerAvatar.objectEventId].facingDirection)); + if (IsPlayerNotUsingAcroBikeOnBumpySlope()) + PlayerForceSetHeldMovement(GetFaceDirectionMovementAction(gObjectEvents[gPlayerAvatar.objectEventId].facingDirection)); } } @@ -1192,7 +1192,7 @@ u8 GetPlayerAvatarFlags(void) return gPlayerAvatar.flags; } -u8 GetPlayerAvatarObjectId(void) +u8 GetPlayerAvatarSpriteId(void) { return gPlayerAvatar.spriteId; } @@ -1424,7 +1424,7 @@ void SetPlayerAvatarWatering(u8 direction) StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFaceDirectionAnimNum(direction)); } -static void sub_808C280(struct ObjectEvent *objectEvent) +static void HideShowWarpArrow(struct ObjectEvent *objectEvent) { s16 x; s16 y; @@ -1435,6 +1435,7 @@ static void sub_808C280(struct ObjectEvent *objectEvent) { if (sArrowWarpMetatileBehaviorChecks2[x](metatileBehavior) && direction == objectEvent->movementDirection) { + // Show warp arrow if applicable x = objectEvent->currentCoords.x; y = objectEvent->currentCoords.y; MoveCoords(direction, &x, &y); @@ -1645,7 +1646,7 @@ static void Task_StopSurfingInit(u8 taskId) if (!ObjectEventClearHeldMovementIfFinished(playerObjEvent)) return; } - SetSurfBobState(playerObjEvent->fieldEffectSpriteId, 2); + SetSurfBlob_BobState(playerObjEvent->fieldEffectSpriteId, BOB_JUST_MON); ObjectEventSetHeldMovement(playerObjEvent, GetJumpSpecialMovementAction((u8)gTasks[taskId].data[0])); gTasks[taskId].func = Task_WaitStopSurfing; } @@ -1931,9 +1932,9 @@ static bool8 Fishing_StartEncounter(struct Task *task) ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId); ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection); if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); - gSprites[gPlayerAvatar.spriteId].pos2.x = 0; - gSprites[gPlayerAvatar.spriteId].pos2.y = 0; + SetSurfBlob_PlayerOffset(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, FALSE, 0); + gSprites[gPlayerAvatar.spriteId].x2 = 0; + gSprites[gPlayerAvatar.spriteId].y2 = 0; ClearDialogWindowAndFrame(0, TRUE); task->tFrameCounter++; return FALSE; @@ -1988,9 +1989,9 @@ static bool8 Fishing_PutRodAway(struct Task *task) ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId); ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection); if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); - gSprites[gPlayerAvatar.spriteId].pos2.x = 0; - gSprites[gPlayerAvatar.spriteId].pos2.y = 0; + SetSurfBlob_PlayerOffset(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, FALSE, 0); + gSprites[gPlayerAvatar.spriteId].x2 = 0; + gSprites[gPlayerAvatar.spriteId].y2 = 0; task->tStep++; } return FALSE; @@ -2022,8 +2023,8 @@ static void AlignFishingAnimationFrames(void) u8 animType; AnimateSprite(playerSprite); - playerSprite->pos2.x = 0; - playerSprite->pos2.y = 0; + playerSprite->x2 = 0; + playerSprite->y2 = 0; animCmdIndex = playerSprite->animCmdIndex; if (playerSprite->anims[playerSprite->animNum][animCmdIndex].type == -1) { @@ -2038,66 +2039,76 @@ static void AlignFishingAnimationFrames(void) animType = playerSprite->anims[playerSprite->animNum][animCmdIndex].type; if (animType == 1 || animType == 2 || animType == 3) { - playerSprite->pos2.x = 8; + playerSprite->x2 = 8; if (GetPlayerFacingDirection() == 3) - playerSprite->pos2.x = -8; + playerSprite->x2 = -8; } if (animType == 5) - playerSprite->pos2.y = -8; + playerSprite->y2 = -8; if (animType == 10 || animType == 11) - playerSprite->pos2.y = 8; + playerSprite->y2 = 8; if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 1, playerSprite->pos2.y); + SetSurfBlob_PlayerOffset(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, TRUE, playerSprite->y2); } -void sub_808D074(u8 a0) +void SetSpinStartFacingDir(u8 direction) { - gUnknown_0203734C = a0; + sSpinStartFacingDir = direction; } -static u8 sub_808D080(void) +static u8 GetSpinStartFacingDir(void) { - if (gUnknown_0203734C == 0) - { - return 1; - } - return gUnknown_0203734C; + if (sSpinStartFacingDir == DIR_NONE) + return DIR_SOUTH; + + return sSpinStartFacingDir; } -static void sub_808D094(u8 taskId) +// Task data for Task_DoPlayerSpinEntrance and Task_DoPlayerSpinExit +#define tState data[0] +#define tSpinDelayTimer data[1] +#define tSpeed data[2] +#define tCurY data[3] +#define tDestY data[4] +#define tStartDir data[5] +#define tPriority data[6] +#define tSubpriority data[7] +#define tGroundTimer data[8] + +static void Task_DoPlayerSpinExit(u8 taskId) { struct ObjectEvent *object = &gObjectEvents[gPlayerAvatar.objectEventId]; struct Sprite *sprite = &gSprites[object->spriteId]; s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { - case 0: + case 0: // Init if (!ObjectEventClearHeldMovementIfFinished(object)) - { return; - } - sub_808D074(object->facingDirection); - data[1] = 0; - data[2] = 1; - data[3] = (u16)(sprite->pos1.y + sprite->pos2.y) << 4; - sprite->pos2.y = 0; + SetSpinStartFacingDir(object->facingDirection); + tSpinDelayTimer = 0; + tSpeed = 1; + tCurY = (u16)(sprite->y + sprite->y2) << 4; + sprite->y2 = 0; CameraObjectReset2(); object->fixedPriority = TRUE; sprite->oam.priority = 0; sprite->subpriority = 0; sprite->subspriteMode = SUBSPRITES_OFF; - data[0]++; - case 1: - sub_808D38C(object, &data[1]); - data[3] -= data[2]; - data[2] += 3; - sprite->pos1.y = data[3] >> 4; - if (sprite->pos1.y + (s16)gTotalCameraPixelOffsetY < -32) - { - data[0]++; - } + tState++; + case 1: // Spin while rising + TrySpinPlayerForWarp(object, &tSpinDelayTimer); + + // Rise and accelerate + tCurY -= tSpeed; + tSpeed += 3; + sprite->y = tCurY >> 4; + + // Check if offscreen + if (sprite->y + (s16)gTotalCameraPixelOffsetY < -32) + tState++; break; case 2: DestroyTask(taskId); @@ -2105,84 +2116,86 @@ static void sub_808D094(u8 taskId) } } -static void sub_808D1FC(u8 taskId); +static void Task_DoPlayerSpinEntrance(u8 taskId); -void sub_808D194(void) +void DoPlayerSpinEntrance(void) { - sub_808D1FC(CreateTask(sub_808D1FC, 0)); + Task_DoPlayerSpinEntrance(CreateTask(Task_DoPlayerSpinEntrance, 0)); } -bool32 sub_808D1B4(void) +bool32 IsPlayerSpinEntranceActive(void) { - return FuncIsActiveTask(sub_808D1FC); + return FuncIsActiveTask(Task_DoPlayerSpinEntrance); } -void sub_808D1C8(void) +void DoPlayerSpinExit(void) { - sub_808D094(CreateTask(sub_808D094, 0)); + Task_DoPlayerSpinExit(CreateTask(Task_DoPlayerSpinExit, 0)); } -bool32 sub_808D1E8(void) +bool32 IsPlayerSpinExitActive(void) { - return FuncIsActiveTask(sub_808D094); + return FuncIsActiveTask(Task_DoPlayerSpinExit); } -static const u8 gUnknown_084975BC[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; +static const u8 sSpinDirections[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; -static void sub_808D1FC(u8 taskId) +static void Task_DoPlayerSpinEntrance(u8 taskId) { struct ObjectEvent *object = &gObjectEvents[gPlayerAvatar.objectEventId]; struct Sprite *sprite = &gSprites[object->spriteId]; s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: - data[5] = sub_808D080(); - ObjectEventForceSetHeldMovement(object, GetFaceDirectionMovementAction(gUnknown_084975BC[data[5]])); - data[1] = 0; - data[2] = 116; - data[4] = sprite->pos1.y; - data[6] = sprite->oam.priority; - data[7] = sprite->subpriority; - data[3] = -((u16)sprite->pos2.y + 32) * 16; - sprite->pos2.y = 0; + // Because the spin start facing direction is never set for this + // warp type, the player will always exit the warp facing South. + // This may have been intentional, unclear + tStartDir = GetSpinStartFacingDir(); + ObjectEventForceSetHeldMovement(object, GetFaceDirectionMovementAction(sSpinDirections[tStartDir])); + tSpinDelayTimer = 0; + tSpeed = 116; + tDestY = sprite->y; + tPriority = sprite->oam.priority; + tSubpriority = sprite->subpriority; + tCurY = -((u16)sprite->y2 + 32) * 16; + sprite->y2 = 0; CameraObjectReset2(); object->fixedPriority = TRUE; sprite->oam.priority = 1; sprite->subpriority = 0; sprite->subspriteMode = SUBSPRITES_OFF; - data[0]++; - case 1: - sub_808D38C(object, &data[1]); - data[3] += data[2]; - data[2] -= 3; - if (data[2] < 4) + tState++; + case 1: // Spin while descending + TrySpinPlayerForWarp(object, &tSpinDelayTimer); + + // Fall and decelerate + tCurY += tSpeed; + tSpeed -= 3; + if (tSpeed < 4) + tSpeed = 4; + sprite->y = tCurY >> 4; + + // Check if reached dest + if (sprite->y >= tDestY) { - data[2] = 4; - } - sprite->pos1.y = data[3] >> 4; - if (sprite->pos1.y >= data[4]) - { - sprite->pos1.y = data[4]; - data[8] = 0; - data[0]++; + sprite->y = tDestY; + tGroundTimer = 0; + tState++; } break; - case 2: - sub_808D38C(object, &data[1]); - data[8]++; - if (data[8] > 8) - { - data[0]++; - } + case 2: // Spin on ground + TrySpinPlayerForWarp(object, &tSpinDelayTimer); + if (++tGroundTimer > 8) + tState++; break; - case 3: - if (data[5] == sub_808D38C(object, &data[1])) + case 3: // Spin until facing original direction + if (tStartDir == TrySpinPlayerForWarp(object, &tSpinDelayTimer)) { object->fixedPriority = 0; - sprite->oam.priority = data[6]; - sprite->subpriority = data[7]; + sprite->oam.priority = tPriority; + sprite->subpriority = tSubpriority; CameraObjectReset1(); DestroyTask(taskId); } @@ -2190,19 +2203,15 @@ static void sub_808D1FC(u8 taskId) } } -static u8 sub_808D38C(struct ObjectEvent *object, s16 *a1) +static u8 TrySpinPlayerForWarp(struct ObjectEvent *object, s16 *delayTimer) { - if (*a1 < 8 && ++(*a1) < 8) - { + if (*delayTimer < 8 && ++(*delayTimer) < 8) return object->facingDirection; - } if (!ObjectEventCheckHeldMovementStatus(object)) - { return object->facingDirection; - } - ObjectEventForceSetHeldMovement(object, GetFaceDirectionMovementAction(gUnknown_084975BC[object->facingDirection])); - *a1 = 0; - return gUnknown_084975BC[object->facingDirection]; + ObjectEventForceSetHeldMovement(object, GetFaceDirectionMovementAction(sSpinDirections[object->facingDirection])); + *delayTimer = 0; + return sSpinDirections[object->facingDirection]; } diff --git a/src/field_region_map.c b/src/field_region_map.c index fc6f0fa767..99def49016 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -156,7 +156,7 @@ static void FieldUpdateRegionMap(void) ScheduleBgCopyTilemapToVram(0); DrawStdFrameWithCustomTileAndPalette(0, 0, 0x27, 0xd); PrintRegionMapSecName(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sFieldRegionMapHandler->state++; break; case 2: @@ -184,7 +184,7 @@ static void FieldUpdateRegionMap(void) } break; case 5: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sFieldRegionMapHandler->state++; break; case 6: diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 9becd21666..fbe725c0b1 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -42,11 +42,14 @@ static void Task_DoContestHallWarp(u8); static void FillPalBufferWhite(void); static void Task_ExitDoor(u8); static bool32 WaitForWeatherFadeIn(void); -static void Task_TeleportTileWarpExit(u8 taskId); +static void Task_SpinEnterWarp(u8 taskId); static void Task_WarpAndLoadMap(u8 taskId); static void Task_DoDoorWarp(u8 taskId); static void Task_EnableScriptAfterMusicFade(u8 taskId); +// data[0] is used universally by tasks in this file as a state for switches +#define tState data[0] + // const static const u16 sFlashLevelPixelRadii[] = { 200, 72, 64, 56, 48, 40, 32, 24, 0 }; const s32 gMaxFlashLevel = ARRAY_COUNT(sFlashLevelPixelRadii) - 1; @@ -156,17 +159,17 @@ static void Task_ReturnToFieldCableLink(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: task->data[1] = CreateTask_ReestablishCableClubLink(); - task->data[0]++; + task->tState++; break; case 1: if (gTasks[task->data[1]].isActive != TRUE) { WarpFadeInScreen(); - task->data[0]++; + task->tState++; } break; case 2: @@ -191,11 +194,11 @@ static void Task_ReturnToFieldWirelessLink(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: SetLinkStandbyCallback(); - task->data[0]++; + task->tState++; break; case 1: if (!IsLinkTaskFinished()) @@ -206,7 +209,7 @@ static void Task_ReturnToFieldWirelessLink(u8 taskId) else { WarpFadeInScreen(); - task->data[0]++; + task->tState++; } break; case 2: @@ -224,16 +227,16 @@ void Task_ReturnToFieldRecordMixing(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: SetLinkStandbyCallback(); - task->data[0]++; + task->tState++; break; case 1: if (IsLinkTaskFinished()) { - task->data[0]++; + task->tState++; } break; case 2: @@ -295,12 +298,12 @@ void FieldCB_WarpExitFadeFromBlack(void) ScriptContext2_Enable(); } -static void FieldCB_TeleportTileWarpExit(void) +static void FieldCB_SpinEnterWarp(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); PlaySE(SE_WARP_OUT); - CreateTask(Task_TeleportTileWarpExit, 10); + CreateTask(Task_SpinEnterWarp, 10); ScriptContext2_Enable(); } @@ -320,14 +323,14 @@ static void Task_ExitDoor(u8 taskId) s16 *x = &task->data[2]; s16 *y = &task->data[3]; - switch (task->data[0]) + switch (task->tState) { case 0: SetPlayerVisibility(FALSE); FreezeObjectEvents(); PlayerGetDestCoords(x, y); FieldSetDoorOpened(*x, *y); - task->data[0] = 1; + task->tState = 1; break; case 1: if (WaitForWeatherFadeIn()) @@ -336,7 +339,7 @@ static void Task_ExitDoor(u8 taskId) SetPlayerVisibility(TRUE); objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); ObjectEventSetHeldMovement(&gObjectEvents[objEventId], MOVEMENT_ACTION_WALK_NORMAL_DOWN); - task->data[0] = 2; + task->tState = 2; } break; case 2: @@ -346,14 +349,14 @@ static void Task_ExitDoor(u8 taskId) task->data[1] = FieldAnimateDoorClose(*x, *y); objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); ObjectEventClearHeldMovementIfFinished(&gObjectEvents[objEventId]); - task->data[0] = 3; + task->tState = 3; } break; case 3: if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) { UnfreezeObjectEvents(); - task->data[0] = 4; + task->tState = 4; } break; case 4: @@ -369,13 +372,13 @@ static void Task_ExitNonAnimDoor(u8 taskId) s16 *x = &task->data[2]; s16 *y = &task->data[3]; - switch (task->data[0]) + switch (task->tState) { case 0: SetPlayerVisibility(FALSE); FreezeObjectEvents(); PlayerGetDestCoords(x, y); - task->data[0] = 1; + task->tState = 1; break; case 1: if (WaitForWeatherFadeIn()) @@ -384,14 +387,14 @@ static void Task_ExitNonAnimDoor(u8 taskId) SetPlayerVisibility(TRUE); objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); ObjectEventSetHeldMovement(&gObjectEvents[objEventId], GetWalkNormalMovementAction(GetPlayerFacingDirection())); - task->data[0] = 2; + task->tState = 2; } break; case 2: if (IsPlayerStandingStill()) { UnfreezeObjectEvents(); - task->data[0] = 3; + task->tState = 3; } break; case 3: @@ -403,12 +406,12 @@ static void Task_ExitNonAnimDoor(u8 taskId) static void Task_ExitNonDoor(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: FreezeObjectEvents(); ScriptContext2_Enable(); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 1: if (WaitForWeatherFadeIn()) @@ -443,7 +446,7 @@ bool8 FieldCB_ReturnToFieldOpenStartMenu(void) return FALSE; } -static void task_mpl_807E3C8(u8 taskId) +static void Task_ReturnToFieldNoScript(u8 taskId) { if (WaitForWeatherFadeIn() == 1) { @@ -453,19 +456,19 @@ static void task_mpl_807E3C8(u8 taskId) } } -void sub_80AF6D4(void) +void FieldCB_ReturnToFieldNoScript(void) { ScriptContext2_Enable(); FadeInFromBlack(); - CreateTask(task_mpl_807E3C8, 10); + CreateTask(Task_ReturnToFieldNoScript, 10); } -void sub_80AF6F0(void) +void FieldCB_ReturnToFieldNoScriptCheckMusic(void) { ScriptContext2_Enable(); Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); - CreateTask(task_mpl_807E3C8, 10); + CreateTask(Task_ReturnToFieldNoScript, 10); } static bool32 PaletteFadeActive(void) @@ -543,7 +546,9 @@ void DoLavaridgeGym1FWarp(void) StartLavaridgeGym1FWarp(10); } -// Warp from a teleporting tile, e.g. in Aqua Hideout (For the move Teleport see FldEff_TeleportWarpOut) +// DoSpinEnterWarp but with a fade out +// Screen fades out to exit current map, player spins down from top to enter new map +// Used by teleporting tiles, e.g. in Aqua Hideout (For the move Teleport see FldEff_TeleportWarpOut) void DoTeleportTileWarp(void) { ScriptContext2_Enable(); @@ -551,7 +556,7 @@ void DoTeleportTileWarp(void) WarpFadeOutScreen(); PlaySE(SE_WARP_IN); CreateTask(Task_WarpAndLoadMap, 10); - gFieldCallback = FieldCB_TeleportTileWarpExit; + gFieldCallback = FieldCB_SpinEnterWarp; } void DoMossdeepGymWarp(void) @@ -574,8 +579,6 @@ void DoPortholeWarp(void) gFieldCallback = FieldCB_ShowPortholeView; } -#define tState data[0] - static void Task_DoCableClubWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -598,8 +601,6 @@ static void Task_DoCableClubWarp(u8 taskId) } } -#undef tState - void DoCableClubWarp(void) { ScriptContext2_Enable(); @@ -613,20 +614,20 @@ static void Task_ReturnToWorldFromLinkRoom(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: ClearLinkCallback_2(); FadeScreen(FADE_TO_BLACK, 0); TryFadeOutOldMapMusic(); PlaySE(SE_EXIT); - data[0]++; + tState++; break; case 1: if (!PaletteFadeActive() && BGMusicStopped()) { SetCloseLinkCallback(); - data[0]++; + tState++; } break; case 2: @@ -649,12 +650,12 @@ static void Task_WarpAndLoadMap(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: FreezeObjectEvents(); ScriptContext2_Enable(); - task->data[0]++; + task->tState++; break; case 1: if (!PaletteFadeActive()) @@ -665,7 +666,7 @@ static void Task_WarpAndLoadMap(u8 taskId) task->data[1] = 1; } if (BGMusicStopped()) - task->data[0]++; + task->tState++; } break; case 2: @@ -682,14 +683,14 @@ static void Task_DoDoorWarp(u8 taskId) s16 *x = &task->data[2]; s16 *y = &task->data[3]; - switch (task->data[0]) + switch (task->tState) { case 0: FreezeObjectEvents(); PlayerGetDestCoords(x, y); PlaySE(GetDoorSoundEffect(*x, *y - 1)); task->data[1] = FieldAnimateDoorOpen(*x, *y - 1); - task->data[0] = 1; + task->tState = 1; break; case 1: if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) @@ -699,7 +700,7 @@ static void Task_DoDoorWarp(u8 taskId) ObjectEventClearHeldMovementIfActive(&gObjectEvents[objEventId]); objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); ObjectEventSetHeldMovement(&gObjectEvents[objEventId], MOVEMENT_ACTION_WALK_NORMAL_UP); - task->data[0] = 2; + task->tState = 2; } break; case 2: @@ -710,20 +711,20 @@ static void Task_DoDoorWarp(u8 taskId) objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); ObjectEventClearHeldMovementIfFinished(&gObjectEvents[objEventId]); SetPlayerVisibility(FALSE); - task->data[0] = 3; + task->tState = 3; } break; case 3: if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) { - task->data[0] = 4; + task->tState = 4; } break; case 4: TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); - task->data[0] = 0; + task->tState = 0; task->func = Task_WarpAndLoadMap; break; } @@ -733,17 +734,17 @@ static void Task_DoContestHallWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: FreezeObjectEvents(); ScriptContext2_Enable(); - task->data[0]++; + task->tState++; break; case 1: if (!PaletteFadeActive() && BGMusicStopped()) { - task->data[0]++; + task->tState++; } break; case 2: @@ -850,22 +851,22 @@ static void UpdateFlashLevelEffect(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); - data[0] = 1; + tState = 1; break; case 1: SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); - data[0] = 0; + tState = 0; tCurFlashRadius += tFlashRadiusDelta; if (tCurFlashRadius > tDestFlashRadius) { if (tClearScanlineEffect == 1) { ScanlineEffect_Stop(); - data[0] = 2; + tState = 2; } else { @@ -884,22 +885,22 @@ static void UpdateOrbFlashEffect(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: SetOrbFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); - data[0] = 1; + tState = 1; break; case 1: SetOrbFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); - data[0] = 0; + tState = 0; tCurFlashRadius += tFlashRadiusDelta; if (tCurFlashRadius > tDestFlashRadius) { if (tClearScanlineEffect == 1) { ScanlineEffect_Stop(); - data[0] = 2; + tState = 2; } else { @@ -914,7 +915,7 @@ static void UpdateOrbFlashEffect(u8 taskId) } } -static void sub_80AFF90(u8 taskId) +static void Task_WaitForFlashUpdate(u8 taskId) { if (!FuncIsActiveTask(UpdateFlashLevelEffect)) { @@ -923,13 +924,13 @@ static void sub_80AFF90(u8 taskId) } } -static void sub_80AFFB8(void) +static void StartWaitForFlashUpdate(void) { - if (!FuncIsActiveTask(sub_80AFF90)) - CreateTask(sub_80AFF90, 80); + if (!FuncIsActiveTask(Task_WaitForFlashUpdate)) + CreateTask(Task_WaitForFlashUpdate, 80); } -static u8 sub_80AFFDC(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) +static u8 StartUpdateFlashLevelEffect(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) { u8 taskId = CreateTask(UpdateFlashLevelEffect, 80); s16 *data = gTasks[taskId].data; @@ -948,7 +949,7 @@ static u8 sub_80AFFDC(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 dest return taskId; } -static u8 sub_80B003C(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) +static u8 StartUpdateOrbFlashEffect(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) { u8 taskId = CreateTask(UpdateOrbFlashEffect, 80); s16 *data = gTasks[taskId].data; @@ -972,14 +973,15 @@ static u8 sub_80B003C(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 dest #undef tFlashRadiusDelta #undef tClearScanlineEffect +// A higher flashLevel value is a smaller flash radius (more darkness). 0 is full brightness void AnimateFlash(u8 flashLevel) { u8 curFlashLevel = Overworld_GetFlashLevel(); - u8 value = 0; + bool8 fullBrightness = FALSE; if (!flashLevel) - value = 1; - sub_80AFFDC(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); - sub_80AFFB8(); + fullBrightness = TRUE; + StartUpdateFlashLevelEffect(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], fullBrightness, 1); + StartWaitForFlashUpdate(); ScriptContext2_Enable(); } @@ -998,18 +1000,18 @@ void WriteBattlePyramidViewScanlineEffectBuffer(void) CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } -static void Task_TeleportTileWarpExit(u8 taskId) +static void Task_SpinEnterWarp(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: FreezeObjectEvents(); ScriptContext2_Enable(); - sub_808D194(); - gTasks[taskId].data[0]++; + DoPlayerSpinEntrance(); + gTasks[taskId].tState++; break; case 1: - if (WaitForWeatherFadeIn() && sub_808D1B4() != TRUE) + if (WaitForWeatherFadeIn() && IsPlayerSpinEntranceActive() != TRUE) { UnfreezeObjectEvents(); ScriptContext2_Disable(); @@ -1019,29 +1021,29 @@ static void Task_TeleportTileWarpExit(u8 taskId) } } -static void sub_80B01BC(u8 taskId) +static void Task_SpinExitWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: FreezeObjectEvents(); ScriptContext2_Enable(); PlaySE(SE_WARP_IN); - sub_808D1C8(); - task->data[0]++; + DoPlayerSpinExit(); + task->tState++; break; case 1: - if (!sub_808D1E8()) + if (!IsPlayerSpinExitActive()) { WarpFadeOutScreen(); - task->data[0]++; + task->tState++; } break; case 2: if (!PaletteFadeActive() && BGMusicStopped()) - task->data[0]++; + task->tState++; break; case 3: WarpIntoMap(); @@ -1051,18 +1053,22 @@ static void sub_80B01BC(u8 taskId) } } -void sub_80B0244(void) +// Only called by an unused function +// DoTeleportTileWarp is used instead +void DoSpinEnterWarp(void) { ScriptContext2_Enable(); CreateTask(Task_WarpAndLoadMap, 10); - gFieldCallback = FieldCB_TeleportTileWarpExit; + gFieldCallback = FieldCB_SpinEnterWarp; } -void sub_80B0268(void) +// Opposite of DoSpinEnterWarp / DoTeleportTileWarp +// Player exits current map by spinning up offscreen, enters new map with a fade in +void DoSpinExitWarp(void) { ScriptContext2_Enable(); gFieldCallback = FieldCB_DefaultWarpExit; - CreateTask(sub_80B01BC, 10); + CreateTask(Task_SpinExitWarp, 10); } static void LoadOrbEffectPalette(bool8 blueOrb) @@ -1081,7 +1087,7 @@ static void LoadOrbEffectPalette(bool8 blueOrb) } } -static bool8 sub_80B02C8(u16 shakeDir) +static bool8 UpdateOrbEffectBlend(u16 shakeDir) { u8 lo = REG_BLDALPHA & 0xFF; u8 hi = REG_BLDALPHA >> 8; @@ -1089,27 +1095,22 @@ static bool8 sub_80B02C8(u16 shakeDir) if (shakeDir != 0) { if (lo) - { lo--; - } } else { - if (hi < 0x10) - { + if (hi < 16) hi++; - } } SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(lo, hi)); - if (lo == 0 && hi == 0x10) + if (lo == 0 && hi == 16) return TRUE; else return FALSE; } -#define tState data[0] #define tBlueOrb data[1] #define tCenterX data[2] #define tCenterY data[3] @@ -1148,7 +1149,7 @@ static void Task_OrbEffect(u8 taskId) case 1: sub_8199DF0(0, PIXEL_FILL(1), 0, 1); LoadOrbEffectPalette(tBlueOrb); - sub_80B003C(tCenterX, tCenterY, 1, 160, 1, 2); + StartUpdateOrbFlashEffect(tCenterX, tCenterY, 1, 160, 1, 2); tState = 2; break; case 2: @@ -1188,7 +1189,7 @@ static void Task_OrbEffect(u8 taskId) { tShakeDelay = 8; tShakeDir ^= 1; - if (sub_80B02C8(tShakeDir) == TRUE) + if (UpdateOrbEffectBlend(tShakeDir) == TRUE) { tState = 5; sub_8199DF0(0, PIXEL_FILL(0), 0, 1); @@ -1243,7 +1244,6 @@ void FadeOutOrbEffect(void) gTasks[taskId].tState = 6; } -#undef tState #undef tBlueOrb #undef tCenterX #undef tCenterY diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 6b41c54237..3c7016bd1b 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -72,12 +72,12 @@ void Task_Truck1(u8 taskId) s16 cameraXpan = 0, cameraYpan = 0; s16 box1, box2, box3; - box1 = GetTruckBoxMovement(data[0] + 30) * 4; // top box. - SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); - box2 = GetTruckBoxMovement(data[0]) * 2; // bottom left box. - SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); - box3 = GetTruckBoxMovement(data[0]) * 4; // bottom right box. - SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); + box1 = GetTruckBoxMovement(data[0] + 30) * 4; + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_TOP, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); + box2 = GetTruckBoxMovement(data[0]) * 2; + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_BOTTOM_L, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); + box3 = GetTruckBoxMovement(data[0]) * 4; + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_BOTTOM_R, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); if (++data[0] == SECONDS(500)) // this will never run data[0] = 0; // reset the timer if it gets stuck. @@ -116,11 +116,11 @@ void Task_Truck2(u8 taskId) cameraYpan = GetTruckCameraBobbingY(data[2]); SetCameraPanning(cameraXpan, cameraYpan); box1 = GetTruckBoxMovement(data[2] + 30) * 4; - SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_TOP, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); box2 = GetTruckBoxMovement(data[2]) * 2; - SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_BOTTOM_L, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); box3 = GetTruckBoxMovement(data[2]) * 4; - SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_BOTTOM_R, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); } } @@ -147,9 +147,9 @@ static void Task_Truck3(u8 taskId) cameraXpan = gTruckCamera_HorizontalTable[data[1]]; cameraYpan = 0; SetCameraPanning(cameraXpan, 0); - SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, cameraYpan + 3); - SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, cameraYpan - 3); - SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, cameraYpan); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_TOP, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, cameraYpan + 3); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_BOTTOM_L, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, cameraYpan - 3); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_BOTTOM_R, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, cameraYpan); } } @@ -242,9 +242,9 @@ void EndTruckSequence(u8 taskId) { if (!FuncIsActiveTask(Task_HandleTruckSequence)) { - SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, 3); - SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, -3); - SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3, 0); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_TOP, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, 3); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_BOTTOM_L, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, -3); + SetObjectEventSpritePosByLocalIdAndMap(LOCALID_TRUCK_BOX_BOTTOM_R, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3, 0); } } diff --git a/src/field_specials.c b/src/field_specials.c index 51030a3878..46f8e7fe89 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -57,7 +57,6 @@ #include "constants/map_types.h" #include "constants/maps.h" #include "constants/mevent.h" -#include "constants/tv.h" #include "constants/script_menu.h" #include "constants/slot_machine.h" #include "constants/songs.h" @@ -1301,12 +1300,12 @@ void SpawnCameraObject(void) { u8 obj = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_BOY_1, MOVEMENT_TYPE_FACE_DOWN, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3); gObjectEvents[obj].invisible = TRUE; - CameraObjectSetFollowedObjectId(gObjectEvents[obj].spriteId); + CameraObjectSetFollowedSpriteId(gObjectEvents[obj].spriteId); } void RemoveCameraObject(void) { - CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId()); + CameraObjectSetFollowedSpriteId(GetPlayerAvatarSpriteId()); RemoveObjectEventByLocalIdAndMap(OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } @@ -1336,7 +1335,7 @@ u16 GetSlotMachineId(void) static const u8 sSlotMachineIds[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5}; static const u8 sSlotMachineServiceDayIds[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5}; - u32 rnd = gSaveBlock1Ptr->easyChatPairs[0].unk0_0 + gSaveBlock1Ptr->easyChatPairs[0].unk2 + sSlotMachineRandomSeeds[gSpecialVar_0x8004]; + u32 rnd = gSaveBlock1Ptr->dewfordTrends[0].trendiness + gSaveBlock1Ptr->dewfordTrends[0].rand + sSlotMachineRandomSeeds[gSpecialVar_0x8004]; if (GetPriceReduction(POKENEWS_GAME_CORNER)) { return sSlotMachineServiceDayIds[rnd % SLOT_MACHINE_COUNT]; @@ -1408,13 +1407,13 @@ void GiveLeadMonEffortRibbon(void) SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet); if (GetRibbonCount(leadMon) > NUM_CUTIES_RIBBONS) { - TryPutSpotTheCutiesOnAir(leadMon, 0x47); + TryPutSpotTheCutiesOnAir(leadMon, MON_DATA_EFFORT_RIBBON); } } bool8 Special_AreLeadMonEVsMaxedOut(void) { - if (GetMonEVCount(&gPlayerParty[GetLeadMonIndex()]) >= 510) + if (GetMonEVCount(&gPlayerParty[GetLeadMonIndex()]) >= MAX_TOTAL_EVS) { return TRUE; } @@ -1449,7 +1448,7 @@ void SetShoalItemFlag(u16 unused) void PutZigzagoonInPlayerParty(void) { u16 monData; - CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 32, FALSE, 0, OT_ID_PLAYER_ID, 0); + CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); monData = TRUE; SetMonData(&gPlayerParty[0], MON_DATA_ABILITY_NUM, &monData); monData = MOVE_TACKLE; @@ -1622,7 +1621,7 @@ void BufferLottoTicketNumber(void) { if (gSpecialVar_Result >= 10000) { - TV_PrintIntToStringVar(0, gSpecialVar_Result); + ConvertIntToDecimalString(0, gSpecialVar_Result); } else if (gSpecialVar_Result >= 1000) { @@ -2667,7 +2666,7 @@ static void ScrollableMultichoice_MoveCursor(s32 itemIndex, bool8 onInit, struct u8 taskId; PlaySE(SE_SELECT); taskId = FindTaskIdByFunc(ScrollableMultichoice_ProcessInput); - if (taskId != 0xFF) + if (taskId != TASK_NONE) { u16 selection; struct Task *task = &gTasks[taskId]; @@ -2753,7 +2752,7 @@ static void sub_813A600(u8 taskId) void sub_813A630(void) { u8 taskId = FindTaskIdByFunc(sub_813A600); - if (taskId == 0xFF) + if (taskId == TASK_NONE) { EnableBothScriptContexts(); } @@ -3118,8 +3117,8 @@ static void ShowFrontierExchangeCornerItemIcon(u16 item) if (sScrollableMultichoice_ItemSpriteId != MAX_SPRITES) { gSprites[sScrollableMultichoice_ItemSpriteId].oam.priority = 0; - gSprites[sScrollableMultichoice_ItemSpriteId].pos1.x = 36; - gSprites[sScrollableMultichoice_ItemSpriteId].pos1.y = 92; + gSprites[sScrollableMultichoice_ItemSpriteId].x = 36; + gSprites[sScrollableMultichoice_ItemSpriteId].y = 92; } } @@ -3262,7 +3261,7 @@ void sub_813ADD4(void) u16 scrollOffset, selectedRow; u8 i; u8 taskId = FindTaskIdByFunc(sub_813A600); - if (taskId != 0xFF) + if (taskId != TASK_NONE) { struct Task *task = &gTasks[taskId]; ListMenuGetScrollAndRow(task->tListTaskId, &scrollOffset, &selectedRow); @@ -3321,7 +3320,7 @@ void GetBattleFrontierTutorMoveIndex(void) void sub_813AF48(void) { u8 taskId = FindTaskIdByFunc(sub_813A600); - if (taskId != 0xFF) + if (taskId != TASK_NONE) { struct Task *task = &gTasks[taskId]; DestroyListMenuTask(task->tListTaskId, NULL, NULL); @@ -3430,7 +3429,7 @@ static void ChangeDeoxysRockLevel(u8 rockLevel) { u8 objectEventId; LoadPalette(&sDeoxysRockPalettes[rockLevel], 0x1A0, 8); - TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); + TryGetObjectEventIdByLocalIdAndMap(LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); if (rockLevel == 0) PlaySE(SE_M_CONFUSE_RAY); @@ -3438,9 +3437,9 @@ static void ChangeDeoxysRockLevel(u8 rockLevel) PlaySE(SE_RG_DEOXYS_MOVE); CreateTask(WaitForDeoxysRockMovement, 8); - gFieldEffectArguments[0] = 1; - gFieldEffectArguments[1] = 58; - gFieldEffectArguments[2] = 26; + gFieldEffectArguments[0] = LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK; + gFieldEffectArguments[1] = MAP_NUM(BIRTH_ISLAND_EXTERIOR); + gFieldEffectArguments[2] = MAP_GROUP(BIRTH_ISLAND_EXTERIOR); gFieldEffectArguments[3] = sDeoxysRockCoords[rockLevel][0]; gFieldEffectArguments[4] = sDeoxysRockCoords[rockLevel][1]; @@ -3687,18 +3686,18 @@ u32 GetMartEmployeeObjectEventId(void) { static const u8 sPokeMarts[][3] = { - { MAP_GROUP(OLDALE_TOWN_MART), MAP_NUM(OLDALE_TOWN_MART), 1 }, - { MAP_GROUP(LAVARIDGE_TOWN_MART), MAP_NUM(LAVARIDGE_TOWN_MART), 1 }, - { MAP_GROUP(FALLARBOR_TOWN_MART), MAP_NUM(FALLARBOR_TOWN_MART), 1 }, - { MAP_GROUP(VERDANTURF_TOWN_MART), MAP_NUM(VERDANTURF_TOWN_MART), 1 }, - { MAP_GROUP(PETALBURG_CITY_MART), MAP_NUM(PETALBURG_CITY_MART), 1 }, - { MAP_GROUP(SLATEPORT_CITY_MART), MAP_NUM(SLATEPORT_CITY_MART), 1 }, - { MAP_GROUP(MAUVILLE_CITY_MART), MAP_NUM(MAUVILLE_CITY_MART), 1 }, - { MAP_GROUP(RUSTBORO_CITY_MART), MAP_NUM(RUSTBORO_CITY_MART), 1 }, - { MAP_GROUP(FORTREE_CITY_MART), MAP_NUM(FORTREE_CITY_MART), 1 }, - { MAP_GROUP(MOSSDEEP_CITY_MART), MAP_NUM(MOSSDEEP_CITY_MART), 1 }, - { MAP_GROUP(SOOTOPOLIS_CITY_MART), MAP_NUM(SOOTOPOLIS_CITY_MART), 1 }, - { MAP_GROUP(BATTLE_FRONTIER_MART), MAP_NUM(BATTLE_FRONTIER_MART), 1 } + { MAP_GROUP(OLDALE_TOWN_MART), MAP_NUM(OLDALE_TOWN_MART), LOCALID_OLDALE_MART_CLERK }, + { MAP_GROUP(LAVARIDGE_TOWN_MART), MAP_NUM(LAVARIDGE_TOWN_MART), LOCALID_LAVARIDGE_MART_CLERK }, + { MAP_GROUP(FALLARBOR_TOWN_MART), MAP_NUM(FALLARBOR_TOWN_MART), LOCALID_FALLARBOR_MART_CLERK }, + { MAP_GROUP(VERDANTURF_TOWN_MART), MAP_NUM(VERDANTURF_TOWN_MART), LOCALID_VERDANTURF_MART_CLERK }, + { MAP_GROUP(PETALBURG_CITY_MART), MAP_NUM(PETALBURG_CITY_MART), LOCALID_PETALBURG_MART_CLERK }, + { MAP_GROUP(SLATEPORT_CITY_MART), MAP_NUM(SLATEPORT_CITY_MART), LOCALID_SLATEPORT_MART_CLERK }, + { MAP_GROUP(MAUVILLE_CITY_MART), MAP_NUM(MAUVILLE_CITY_MART), LOCALID_MAUVILLE_MART_CLERK }, + { MAP_GROUP(RUSTBORO_CITY_MART), MAP_NUM(RUSTBORO_CITY_MART), LOCALID_RUSTBORO_MART_CLERK }, + { MAP_GROUP(FORTREE_CITY_MART), MAP_NUM(FORTREE_CITY_MART), LOCALID_FORTREE_MART_CLERK }, + { MAP_GROUP(MOSSDEEP_CITY_MART), MAP_NUM(MOSSDEEP_CITY_MART), LOCALID_MOSSDEEP_MART_CLERK }, + { MAP_GROUP(SOOTOPOLIS_CITY_MART), MAP_NUM(SOOTOPOLIS_CITY_MART), LOCALID_SOOTOPOLIS_MART_CLERK }, + { MAP_GROUP(BATTLE_FRONTIER_MART), MAP_NUM(BATTLE_FRONTIER_MART), LOCALID_BATTLE_FRONTIER_MART_CLERK } }; u8 i; @@ -3735,14 +3734,17 @@ bool32 ShouldDistributeEonTicket(void) return TRUE; } -void sub_813B534(void) +#define tState data[0] + +void BattleTowerReconnectLink(void) { + // Save battle type, restored at end + // of Task_LinkRetireStatusWithBattleTowerPartner sBattleTowerMultiBattleTypeFlags = gBattleTypeFlags; gBattleTypeFlags = 0; + if (!gReceivedRemoteLinkPlayers) - { - CreateTask(sub_80B3AF8, 5); - } + CreateTask(Task_ReconnectWithLinkPlayers, 5); } void LinkRetireStatusWithBattleTowerPartner(void) @@ -3750,137 +3752,145 @@ void LinkRetireStatusWithBattleTowerPartner(void) CreateTask(Task_LinkRetireStatusWithBattleTowerPartner, 5); } +// Communicate with a Battle Tower link partner to tell them +// whether or not the player chose to continue or retire, +// and determine what the partner chose to do +// gSpecialVar_0x8004: Player's choice +// gSpecialVar_0x8005: Partner's choice (read from gBlockRecvBuffer[1][0]) static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: - if (!FuncIsActiveTask(sub_80B3AF8)) - { - gTasks[taskId].data[0]++; - } - break; - case 1: - if (IsLinkTaskFinished() == TRUE) - { - if (GetMultiplayerId() == 0) - { - gTasks[taskId].data[0]++; - } - else - { - SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_0x8004, 2); - gTasks[taskId].data[0]++; - } - } - break; - case 2: - if ((GetBlockReceivedStatus() & 2) != 0) - { - if (GetMultiplayerId() == 0) - { - gSpecialVar_0x8005 = gBlockRecvBuffer[1][0]; - ResetBlockReceivedFlag(1); - if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_RETIRE - && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_RETIRE) - { - gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_BOTH_RETIRE; - } - else if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_CONTINUE - && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_RETIRE) - { - gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_PARTNER_RETIRE; - } - else if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_RETIRE - && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_CONTINUE) - { - gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_PLAYER_RETIRE; - } - else - { - gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_CONTINUE; - } - } - gTasks[taskId].data[0]++; - } - break; - case 3: - if (IsLinkTaskFinished() == TRUE) - { - if (GetMultiplayerId() != 0) - { - gTasks[taskId].data[0]++; - } - else - { - SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_Result, 2); - gTasks[taskId].data[0]++; - } - } - break; - case 4: - if ((GetBlockReceivedStatus() & 1) != 0) - { - if (GetMultiplayerId() != 0) - { - gSpecialVar_Result = gBlockRecvBuffer[0][0]; - ResetBlockReceivedFlag(0); - gTasks[taskId].data[0]++; - } - else - { - gTasks[taskId].data[0]++; - } - } - break; - case 5: + case 0: + if (!FuncIsActiveTask(Task_ReconnectWithLinkPlayers)) + { + gTasks[taskId].tState++; + } + break; + case 1: + if (IsLinkTaskFinished() == TRUE) + { if (GetMultiplayerId() == 0) { - if (gSpecialVar_Result == BATTLE_TOWER_LINKSTAT_PARTNER_RETIRE) - { - ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired); - } + // Player is link leader, skip sending data + gTasks[taskId].tState++; } else { - if (gSpecialVar_Result == BATTLE_TOWER_LINKSTAT_PLAYER_RETIRE) + // Send value of gSpecialVar_0x8004 to leader + // Will either be BATTLE_TOWER_LINK_CONTINUE or BATTLE_TOWER_LINK_RETIRE + SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_0x8004, sizeof(gSpecialVar_0x8004)); + gTasks[taskId].tState++; + } + } + break; + case 2: + if (GetBlockReceivedStatus() & 2) + { + if (GetMultiplayerId() == 0) + { + // Player is leader, read partner's choice + // and determine if play should continue + gSpecialVar_0x8005 = gBlockRecvBuffer[1][0]; + ResetBlockReceivedFlag(1); + + if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_RETIRE + && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_RETIRE) { - ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired); + gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_BOTH_RETIRE; + } + else if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_CONTINUE + && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_RETIRE) + { + gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_MEMBER_RETIRE; + } + else if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_RETIRE + && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_CONTINUE) + { + gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_LEADER_RETIRE; + } + else + { + gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_CONTINUE; } } - gTasks[taskId].data[0]++; - break; - case 6: - if (!IsTextPrinterActive(0)) + gTasks[taskId].tState++; + } + break; + case 3: + if (IsLinkTaskFinished() == TRUE) + { + if (GetMultiplayerId() != 0) { - gTasks[taskId].data[0]++; + // Player is not link leader, wait for leader's response + gTasks[taskId].tState++; } - break; - case 7: - if (IsLinkTaskFinished() == 1) + else { - SetLinkStandbyCallback(); - gTasks[taskId].data[0]++; + // Send whether or not play should continue + SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_Result, sizeof(gSpecialVar_Result)); + gTasks[taskId].tState++; } - break; - case 8: - if (IsLinkTaskFinished() == 1) + } + break; + case 4: + if (GetBlockReceivedStatus() & 1) + { + if (GetMultiplayerId() != 0) { - gTasks[taskId].data[0]++; + // Player is not link leader, read leader's response + gSpecialVar_Result = gBlockRecvBuffer[0][0]; + ResetBlockReceivedFlag(0); + gTasks[taskId].tState++; } - break; - case 9: - if (gWirelessCommType == 0) + else { - SetCloseLinkCallback(); + gTasks[taskId].tState++; } - gBattleTypeFlags = sBattleTowerMultiBattleTypeFlags; - EnableBothScriptContexts(); - DestroyTask(taskId); - break; + } + break; + case 5: + // Print message if partner chose to retire (and player didn't) + if (GetMultiplayerId() == 0) + { + if (gSpecialVar_Result == BATTLE_TOWER_LINKSTAT_MEMBER_RETIRE) + ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired); + } + else + { + if (gSpecialVar_Result == BATTLE_TOWER_LINKSTAT_LEADER_RETIRE) + ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired); + } + gTasks[taskId].tState++; + break; + case 6: + if (!IsTextPrinterActive(0)) + gTasks[taskId].tState++; + break; + case 7: + if (IsLinkTaskFinished() == TRUE) + { + SetLinkStandbyCallback(); + gTasks[taskId].tState++; + } + break; + case 8: + if (IsLinkTaskFinished() == TRUE) + gTasks[taskId].tState++; + break; + case 9: + if (gWirelessCommType == 0) + SetCloseLinkCallback(); + + gBattleTypeFlags = sBattleTowerMultiBattleTypeFlags; + EnableBothScriptContexts(); + DestroyTask(taskId); + break; } } +#undef tState + void Script_DoRayquazaScene(void) { if (!gSpecialVar_0x8004) diff --git a/src/field_tasks.c b/src/field_tasks.c index 002977a105..676a9cfc7b 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -174,7 +174,7 @@ void SetUpFieldTasks(void) void ActivatePerStepCallback(u8 callbackId) { u8 taskId = FindTaskIdByFunc(Task_RunPerStepCallback); - if (taskId != 0xff) + if (taskId != TASK_NONE) { s32 i; s16 *data = gTasks[taskId].data; @@ -199,12 +199,12 @@ void ResetFieldTasksArgs(void) s16 *data; taskId = FindTaskIdByFunc(Task_RunPerStepCallback); - if (taskId != 0xff) + if (taskId != TASK_NONE) { data = gTasks[taskId].data; } taskId = FindTaskIdByFunc(Task_RunTimeBasedEvents); - if (taskId != 0xff) + if (taskId != TASK_NONE) { data = gTasks[taskId].data; data[1] = 0; @@ -635,9 +635,12 @@ static void AshGrassPerStepCallback(u8 taskId) } } +// This function uses the constants for gTileset_Cave's metatile labels, but other tilesets with +// the CrackedFloorPerStepCallback callback use the same metatile numbers for the cracked floor +// and hole metatiles, such as gTileset_MirageTower. static void SetCrackedFloorHoleMetatile(s16 x, s16 y) { - MapGridSetMetatileIdAt(x, y, MapGridGetMetatileIdAt(x, y) == 0x22f ? 0x206 : 0x237);// unsure what these are referring to + MapGridSetMetatileIdAt(x, y, MapGridGetMetatileIdAt(x, y) == METATILE_Cave_CrackedFloor ? METATILE_Cave_CrackedFloor_Hole : METATILE_Pacifidlog_SkyPillar_CrackedFloor_Hole); CurrentMapDrawMetatileAt(x, y); } diff --git a/src/field_weather.c b/src/field_weather.c index 25ee0582a2..4b9c6a8630 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -154,18 +154,17 @@ static const u8 sBasePaletteGammaTypes[32] = GAMMA_NORMAL, }; -const u16 gUnknown_083970E8[] = INCBIN_U16("graphics/weather/0.gbapal"); +const u16 gFogPalette[] = INCBIN_U16("graphics/weather/fog.gbapal"); -// code void StartWeather(void) { if (!FuncIsActiveTask(Task_WeatherMain)) { - u8 index = AllocSpritePalette(0x1200); - CpuCopy32(gUnknown_083970E8, &gPlttBufferUnfaded[0x100 + index * 16], 32); + u8 index = AllocSpritePalette(TAG_WEATHER_START); + CpuCopy32(gFogPalette, &gPlttBufferUnfaded[0x100 + index * 16], 32); BuildGammaShiftTables(); gWeatherPtr->altGammaSpritePalIndex = index; - gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(0x1201); + gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(PALTAG_WEATHER_2); gWeatherPtr->rainSpriteCount = 0; gWeatherPtr->curRainSpriteIndex = 0; gWeatherPtr->cloudSpritesCreated = 0; @@ -366,8 +365,8 @@ static void UpdateWeatherGammaShift(void) static void FadeInScreenWithWeather(void) { - if (++gWeatherPtr->unknown_6CB > 1) - gWeatherPtr->unknown_6CA = 0; + if (++gWeatherPtr->fadeInTimer > 1) + gWeatherPtr->fadeInFirstFrame = FALSE; switch (gWeatherPtr->currWeather) { @@ -494,7 +493,7 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex) r = gammaTable[baseColor.r]; g = gammaTable[baseColor.g]; b = gammaTable[baseColor.b]; - gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r; + gPlttBufferFaded[palOffset++] = RGB2(r, g, b); } } @@ -579,7 +578,7 @@ static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaI r += ((rBlend - r) * blendCoeff) >> 4; g += ((gBlend - g) * blendCoeff) >> 4; b += ((bBlend - b) * blendCoeff) >> 4; - gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r; + gPlttBufferFaded[palOffset++] = RGB2(r, g, b); } } @@ -636,7 +635,7 @@ static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 bl g2 += ((gBlend - g2) * blendCoeff) >> 4; b2 += ((bBlend - b2) * blendCoeff) >> 4; - gPlttBufferFaded[palOffset++] = (b2 << 10) | (g2 << 5) | r2; + gPlttBufferFaded[palOffset++] = RGB2(r2, g2, b2); } } } @@ -678,7 +677,7 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor) g += ((gBlend - g) * blendCoeff) >> 4; b += ((bBlend - b) * blendCoeff) >> 4; - gPlttBufferFaded[palOffset] = (b << 10) | (g << 5) | r; + gPlttBufferFaded[palOffset] = RGB2(r, g, b); palOffset++; } } @@ -711,7 +710,7 @@ static bool8 LightenSpritePaletteInFog(u8 paletteIndex) return FALSE; } -void sub_80ABC48(s8 gammaIndex) +void ApplyWeatherGammaShiftIfIdle(s8 gammaIndex) { if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) { @@ -729,7 +728,7 @@ void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay) gWeatherPtr->gammaTargetIndex = gammaTargetIndex; gWeatherPtr->gammaStepFrameCounter = 0; gWeatherPtr->gammaStepDelay = gammaStepDelay; - sub_80ABC48(gammaIndex); + ApplyWeatherGammaShiftIfIdle(gammaIndex); } } @@ -782,7 +781,7 @@ void FadeScreen(u8 mode, s8 delay) if (useWeatherPal) CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); - BeginNormalPaletteFade(0xFFFFFFFF, delay, 0, 16, fadeColor); + BeginNormalPaletteFade(PALETTES_ALL, delay, 0, 16, fadeColor); gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT; } else @@ -791,11 +790,11 @@ void FadeScreen(u8 mode, s8 delay) if (useWeatherPal) gWeatherPtr->fadeScreenCounter = 0; else - BeginNormalPaletteFade(0xFFFFFFFF, delay, 16, 0, fadeColor); + BeginNormalPaletteFade(PALETTES_ALL, delay, 16, 0, fadeColor); gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN; - gWeatherPtr->unknown_6CA = 1; - gWeatherPtr->unknown_6CB = 0; + gWeatherPtr->fadeInFirstFrame = TRUE; + gWeatherPtr->fadeInTimer = 0; Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB); gWeatherPtr->readyForInit = TRUE; } @@ -814,7 +813,7 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex) switch (gWeatherPtr->palProcessingState) { case WEATHER_PAL_STATE_SCREEN_FADING_IN: - if (gWeatherPtr->unknown_6CA != 0) + if (gWeatherPtr->fadeInFirstFrame) { if (gWeatherPtr->currWeather == WEATHER_FOG_HORIZONTAL) MarkFogSpritePalToLighten(paletteIndex); @@ -849,12 +848,13 @@ void ApplyWeatherGammaShiftToPal(u8 paletteIndex) ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex); } -u8 sub_80ABF20(void) +// Unused +static bool8 IsFirstFrameOfWeatherFadeIn(void) { if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_SCREEN_FADING_IN) - return gWeatherPtr->unknown_6CA; + return gWeatherPtr->fadeInFirstFrame; else - return 0; + return FALSE; } void LoadCustomWeatherSpritePalette(const u16 *palette) @@ -886,50 +886,50 @@ bool8 LoadDroughtWeatherPalettes(void) return FALSE; } -void sub_80ABFE0(s8 gammaIndex) +static void SetDroughtGamma(s8 gammaIndex) { - sub_80ABC48(-gammaIndex - 1); + ApplyWeatherGammaShiftIfIdle(-gammaIndex - 1); } -void sub_80ABFF0(void) +void DroughtStateInit(void) { - gWeatherPtr->unknown_73C = 0; - gWeatherPtr->unknown_740 = 0; - gWeatherPtr->unknown_742 = 0; - gWeatherPtr->unknown_73E = 0; + gWeatherPtr->droughtBrightnessStage = 0; + gWeatherPtr->droughtTimer = 0; + gWeatherPtr->droughtState = 0; + gWeatherPtr->droughtLastBrightnessStage = 0; } -void sub_80AC01C(void) +void DroughtStateRun(void) { - switch (gWeatherPtr->unknown_742) + switch (gWeatherPtr->droughtState) { case 0: - if (++gWeatherPtr->unknown_740 > 5) + if (++gWeatherPtr->droughtTimer > 5) { - gWeatherPtr->unknown_740 = 0; - sub_80ABFE0(gWeatherPtr->unknown_73C++); - if (gWeatherPtr->unknown_73C > 5) + gWeatherPtr->droughtTimer = 0; + SetDroughtGamma(gWeatherPtr->droughtBrightnessStage++); + if (gWeatherPtr->droughtBrightnessStage > 5) { - gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C; - gWeatherPtr->unknown_742 = 1; - gWeatherPtr->unknown_740 = 0x3C; + gWeatherPtr->droughtLastBrightnessStage = gWeatherPtr->droughtBrightnessStage; + gWeatherPtr->droughtState = 1; + gWeatherPtr->droughtTimer = 60; } } break; case 1: - gWeatherPtr->unknown_740 = (gWeatherPtr->unknown_740 + 3) & 0x7F; - gWeatherPtr->unknown_73C = ((gSineTable[gWeatherPtr->unknown_740] - 1) >> 6) + 2; - if (gWeatherPtr->unknown_73C != gWeatherPtr->unknown_73E) - sub_80ABFE0(gWeatherPtr->unknown_73C); - gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C; + gWeatherPtr->droughtTimer = (gWeatherPtr->droughtTimer + 3) & 0x7F; + gWeatherPtr->droughtBrightnessStage = ((gSineTable[gWeatherPtr->droughtTimer] - 1) >> 6) + 2; + if (gWeatherPtr->droughtBrightnessStage != gWeatherPtr->droughtLastBrightnessStage) + SetDroughtGamma(gWeatherPtr->droughtBrightnessStage); + gWeatherPtr->droughtLastBrightnessStage = gWeatherPtr->droughtBrightnessStage; break; case 2: - if (++gWeatherPtr->unknown_740 > 5) + if (++gWeatherPtr->droughtTimer > 5) { - gWeatherPtr->unknown_740 = 0; - sub_80ABFE0(--gWeatherPtr->unknown_73C); - if (gWeatherPtr->unknown_73C == 3) - gWeatherPtr->unknown_742 = 0; + gWeatherPtr->droughtTimer = 0; + SetDroughtGamma(--gWeatherPtr->droughtBrightnessStage); + if (gWeatherPtr->droughtBrightnessStage == 3) + gWeatherPtr->droughtState = 0; } break; } @@ -990,38 +990,39 @@ bool8 Weather_UpdateBlend(void) return FALSE; } -void sub_80AC274(u8 a) +// Unused. Uses the same numbering scheme as the coord events +static void SetFieldWeather(u8 weather) { - switch (a) + switch (weather) { - case 1: + case COORD_EVENT_WEATHER_SUNNY_CLOUDS: SetWeather(WEATHER_SUNNY_CLOUDS); break; - case 2: + case COORD_EVENT_WEATHER_SUNNY: SetWeather(WEATHER_SUNNY); break; - case 3: + case COORD_EVENT_WEATHER_RAIN: SetWeather(WEATHER_RAIN); break; - case 4: + case COORD_EVENT_WEATHER_SNOW: SetWeather(WEATHER_SNOW); break; - case 5: + case COORD_EVENT_WEATHER_RAIN_THUNDERSTORM: SetWeather(WEATHER_RAIN_THUNDERSTORM); break; - case 6: + case COORD_EVENT_WEATHER_FOG_HORIZONTAL: SetWeather(WEATHER_FOG_HORIZONTAL); break; - case 7: + case COORD_EVENT_WEATHER_FOG_DIAGONAL: SetWeather(WEATHER_FOG_DIAGONAL); break; - case 8: + case COORD_EVENT_WEATHER_VOLCANIC_ASH: SetWeather(WEATHER_VOLCANIC_ASH); break; - case 9: + case COORD_EVENT_WEATHER_SANDSTORM: SetWeather(WEATHER_SANDSTORM); break; - case 10: + case COORD_EVENT_WEATHER_SHADE: SetWeather(WEATHER_SHADE); break; } @@ -1085,7 +1086,7 @@ void SetWeatherScreenFadeOut(void) gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT; } -void sub_80AC3E4(void) +void SetWeatherPalStateIdle(void) { gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; } diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 320a106701..0c3256ab75 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -51,7 +51,7 @@ static const struct SpriteSheet sCloudSpriteSheet = { .data = gWeatherCloudTiles, .size = sizeof(gWeatherCloudTiles), - .tag = 0x1200 + .tag = GFXTAG_CLOUD }; static const struct OamData sCloudSpriteOamData = @@ -84,8 +84,8 @@ static const union AnimCmd *const sCloudSpriteAnimCmds[] = static const struct SpriteTemplate sCloudSpriteTemplate = { - .tileTag = 0x1200, - .paletteTag = 0x1201, + .tileTag = GFXTAG_CLOUD, + .paletteTag = PALTAG_WEATHER_2, .oam = &sCloudSpriteOamData, .anims = sCloudSpriteAnimCmds, .images = NULL, @@ -189,7 +189,7 @@ static void CreateCloudSprites(void) { gWeatherPtr->sprites.s1.cloudSprites[i] = &gSprites[spriteId]; sprite = gWeatherPtr->sprites.s1.cloudSprites[i]; - SetSpritePosToMapCoords(sCloudSpriteMapCoords[i].x + 7, sCloudSpriteMapCoords[i].y + 7, &sprite->pos1.x, &sprite->pos1.y); + SetSpritePosToMapCoords(sCloudSpriteMapCoords[i].x + 7, sCloudSpriteMapCoords[i].y + 7, &sprite->x, &sprite->y); sprite->coordOffsetEnabled = TRUE; } else @@ -214,7 +214,7 @@ static void DestroyCloudSprites(void) DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]); } - FreeSpriteTilesByTag(0x1200); + FreeSpriteTilesByTag(GFXTAG_CLOUD); gWeatherPtr->cloudSpritesCreated = FALSE; } @@ -223,7 +223,7 @@ static void UpdateCloudSprite(struct Sprite *sprite) // Move 1 pixel left every 2 frames. sprite->data[0] = (sprite->data[0] + 1) & 1; if (sprite->data[0]) - sprite->pos1.x--; + sprite->x--; } //------------------------------------------------------------------------------ @@ -264,19 +264,19 @@ void Drought_Main(void) gWeatherPtr->initStep++; break; case 3: - sub_80ABFF0(); + DroughtStateInit(); gWeatherPtr->initStep++; break; case 4: - sub_80AC01C(); - if (gWeatherPtr->unknown_73C == 6) + DroughtStateRun(); + if (gWeatherPtr->droughtBrightnessStage == 6) { gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->initStep++; } break; default: - sub_80AC01C(); + DroughtStateRun(); break; } } @@ -288,7 +288,7 @@ bool8 Drought_Finish(void) void StartDroughtWeatherBlend(void) { - CreateTask(UpdateDroughtBlend, 0x50); + CreateTask(UpdateDroughtBlend, 80); } #define tState data[0] @@ -306,7 +306,7 @@ static void UpdateDroughtBlend(u8 taskId) task->tBlendY = 0; task->tBlendDelay = 0; task->tWinRange = REG_WININ; - SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(63, 63)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); SetGpuReg(REG_OFFSET_BLDY, 0); task->tState++; @@ -437,8 +437,8 @@ static const union AnimCmd *const sRainSpriteAnimCmds[] = static const struct SpriteTemplate sRainSpriteTemplate = { - .tileTag = 4614, - .paletteTag = 0x1200, + .tileTag = GFXTAG_RAIN, + .paletteTag = PALTAG_WEATHER, .oam = &sRainSpriteOamData, .anims = sRainSpriteAnimCmds, .images = NULL, @@ -466,7 +466,7 @@ static const struct SpriteSheet sRainSpriteSheet = { .data = gWeatherRainTiles, .size = sizeof(gWeatherRainTiles), - .tag = 0x1206, + .tag = GFXTAG_RAIN, }; void Rain_InitVars(void) @@ -593,12 +593,12 @@ static void UpdateRainSprite(struct Sprite *sprite) // Raindrop is in its "falling" motion. sprite->tPosX += sRainSpriteMovement[gWeatherPtr->isDownpour][0]; sprite->tPosY += sRainSpriteMovement[gWeatherPtr->isDownpour][1]; - sprite->pos1.x = sprite->tPosX >> 4; - sprite->pos1.y = sprite->tPosY >> 4; + sprite->x = sprite->tPosX >> 4; + sprite->y = sprite->tPosY >> 4; if (sprite->tActive - && (sprite->pos1.x >= -8 && sprite->pos1.x <= 248) - && sprite->pos1.y >= -16 && sprite->pos1.y <= 176) + && (sprite->x >= -8 && sprite->x <= 248) + && sprite->y >= -16 && sprite->y <= 176) sprite->invisible = FALSE; else sprite->invisible = TRUE; @@ -608,8 +608,8 @@ static void UpdateRainSprite(struct Sprite *sprite) // Make raindrop splash on the ground StartSpriteAnim(sprite, gWeatherPtr->isDownpour + 1); sprite->tState = 1; - sprite->pos1.x -= gSpriteCoordOffsetX; - sprite->pos1.y -= gSpriteCoordOffsetY; + sprite->x -= gSpriteCoordOffsetX; + sprite->y -= gSpriteCoordOffsetY; sprite->coordOffsetEnabled = TRUE; } } @@ -677,7 +677,7 @@ static bool8 CreateRainSprite(void) if (spriteId != MAX_SPRITES) { - gSprites[spriteId].tActive = 0; + gSprites[spriteId].tActive = FALSE; gSprites[spriteId].tRandom = spriteIndex * 145; while (gSprites[spriteId].tRandom >= 600) gSprites[spriteId].tRandom -= 600; @@ -722,12 +722,12 @@ static bool8 UpdateVisibleRainSprites(void) gWeatherPtr->rainSpriteVisibleCounter = 0; if (gWeatherPtr->curRainSpriteIndex < gWeatherPtr->targetRainSpriteCount) { - gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex++]->tActive = 1; + gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex++]->tActive = TRUE; } else { gWeatherPtr->curRainSpriteIndex--; - gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->tActive = 0; + gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->tActive = FALSE; gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->invisible = TRUE; } } @@ -744,7 +744,7 @@ static void DestroyRainSprites(void) DestroySprite(gWeatherPtr->sprites.s1.rainSprites[i]); } gWeatherPtr->rainSpriteCount = 0; - FreeSpriteTilesByTag(0x1206); + FreeSpriteTilesByTag(GFXTAG_RAIN); } #undef tCounter @@ -879,7 +879,7 @@ static const union AnimCmd *const sSnowflakeAnimCmds[] = static const struct SpriteTemplate sSnowflakeSpriteTemplate = { .tileTag = 0xFFFF, - .paletteTag = 0x1200, + .paletteTag = PALTAG_WEATHER, .oam = &sSnowflakeSpriteOamData, .anims = sSnowflakeAnimCmds, .images = sSnowflakeSpriteImages, @@ -925,10 +925,10 @@ static void InitSnowflakeSpriteMovement(struct Sprite *sprite) u16 rand; u16 x = ((sprite->tSnowflakeId * 5) & 7) * 30 + (Random() % 30); - sprite->pos1.y = -3 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); - sprite->pos1.x = x - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); - sprite->tPosY = sprite->pos1.y * 128; - sprite->pos2.x = 0; + sprite->y = -3 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); + sprite->x = x - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); + sprite->tPosY = sprite->y * 128; + sprite->x2 = 0; rand = Random(); sprite->tDeltaY = (rand & 3) * 5 + 64; sprite->tDeltaY2 = sprite->tDeltaY; @@ -941,13 +941,14 @@ static void InitSnowflakeSpriteMovement(struct Sprite *sprite) static void WaitSnowflakeSprite(struct Sprite *sprite) { - if (gWeatherPtr->unknown_6E2 > 18) + // Timer is never incremented + if (gWeatherPtr->snowflakeTimer > 18) { sprite->invisible = FALSE; sprite->callback = UpdateSnowflakeSprite; - sprite->pos1.y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); - sprite->tPosY = sprite->pos1.y * 128; - gWeatherPtr->unknown_6E2 = 0; + sprite->y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); + sprite->tPosY = sprite->y * 128; + gWeatherPtr->snowflakeTimer = 0; } } @@ -957,32 +958,32 @@ static void UpdateSnowflakeSprite(struct Sprite *sprite) s16 y; sprite->tPosY += sprite->tDeltaY; - sprite->pos1.y = sprite->tPosY >> 7; + sprite->y = sprite->tPosY >> 7; sprite->tWaveIndex += sprite->tWaveDelta; sprite->tWaveIndex &= 0xFF; - sprite->pos2.x = gSineTable[sprite->tWaveIndex] / 64; + sprite->x2 = gSineTable[sprite->tWaveIndex] / 64; - x = (sprite->pos1.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX) & 0x1FF; + x = (sprite->x + sprite->centerToCornerVecX + gSpriteCoordOffsetX) & 0x1FF; if (x & 0x100) x |= -0x100; if (x < -3) - sprite->pos1.x = 242 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); + sprite->x = 242 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); else if (x > 242) - sprite->pos1.x = -3 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); + sprite->x = -3 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); - y = (sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY) & 0xFF; + y = (sprite->y + sprite->centerToCornerVecY + gSpriteCoordOffsetY) & 0xFF; if (y > 163 && y < 171) { - sprite->pos1.y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); - sprite->tPosY = sprite->pos1.y * 128; + sprite->y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); + sprite->tPosY = sprite->y * 128; sprite->tFallCounter = 0; sprite->tFallDuration = 220; } else if (y > 242 && y < 250) { - sprite->pos1.y = 163; - sprite->tPosY = sprite->pos1.y * 128; + sprite->y = 163; + sprite->tPosY = sprite->y * 128; sprite->tFallCounter = 0; sprite->tFallDuration = 220; sprite->invisible = TRUE; @@ -992,7 +993,7 @@ static void UpdateSnowflakeSprite(struct Sprite *sprite) if (++sprite->tFallCounter == sprite->tFallDuration) { InitSnowflakeSpriteMovement(sprite); - sprite->pos1.y = 250; + sprite->y = 250; sprite->invisible = TRUE; sprite->callback = WaitSnowflakeSprite; } @@ -1011,9 +1012,32 @@ static void UpdateSnowflakeSprite(struct Sprite *sprite) // WEATHER_RAIN_THUNDERSTORM //------------------------------------------------------------------------------ +enum { + // This block of states is run only once + // when first setting up the thunderstorm + TSTORM_STATE_LOAD_RAIN, + TSTORM_STATE_CREATE_RAIN, + TSTORM_STATE_INIT_RAIN, + TSTORM_STATE_WAIT_CHANGE, + + // The thunderstorm loops through these states, + // not necessarily in order. + TSTORM_STATE_LOOP_START, + TSTORM_STATE_LOOP_WAIT, + TSTORM_STATE_INIT_THUNDER_SHORT_1, + TSTORM_STATE_INIT_THUNDER_SHORT_2, + TSTORM_STATE_TRY_THUNDER_SHORT, + TSTORM_STATE_TRY_NEW_THUNDER, + TSTORM_STATE_WAIT_THUNDER_SHORT, + TSTORM_STATE_INIT_THUNDER_LONG, + TSTORM_STATE_WAIT_THUNDER_LONG, + TSTORM_STATE_FADE_THUNDER_LONG, + TSTORM_STATE_END_THUNDER_LONG, +}; + void Thunderstorm_InitVars(void) { - gWeatherPtr->initStep = 0; + gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; @@ -1022,7 +1046,7 @@ void Thunderstorm_InitVars(void) gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment - gWeatherPtr->thunderTriggered = 0; + gWeatherPtr->thunderTriggered = FALSE; SetRainStrengthFromSoundEffect(SE_THUNDERSTORM); } @@ -1042,7 +1066,7 @@ static void SetThunderCounter(u16); void Downpour_InitVars(void) { - gWeatherPtr->initStep = 0; + gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; @@ -1066,100 +1090,105 @@ void Thunderstorm_Main(void) UpdateThunderSound(); switch (gWeatherPtr->initStep) { - case 0: + case TSTORM_STATE_LOAD_RAIN: LoadRainSpriteSheet(); gWeatherPtr->initStep++; break; - case 1: + case TSTORM_STATE_CREATE_RAIN: if (!CreateRainSprite()) gWeatherPtr->initStep++; break; - case 2: + case TSTORM_STATE_INIT_RAIN: if (!UpdateVisibleRainSprites()) { gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->initStep++; } break; - case 3: + case TSTORM_STATE_WAIT_CHANGE: if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER) - gWeatherPtr->initStep = 6; + gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_SHORT_1; break; - case 4: - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->unknown_6E6 = (Random() % 360) + 360; + case TSTORM_STATE_LOOP_START: + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->thunderDelay = (Random() % 360) + 360; gWeatherPtr->initStep++; // fall through - case 5: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_LOOP_WAIT: + // Wait between 360-720 frames before trying thunder again + if (--gWeatherPtr->thunderDelay == 0) gWeatherPtr->initStep++; break; - case 6: - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->unknown_6EB = Random() % 2; + case TSTORM_STATE_INIT_THUNDER_SHORT_1: + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->thunderSkipShort = Random() % 2; gWeatherPtr->initStep++; break; - case 7: - gWeatherPtr->unknown_6EC = (Random() & 1) + 1; + case TSTORM_STATE_INIT_THUNDER_SHORT_2: + gWeatherPtr->thunderShortRetries = (Random() & 1) + 1; gWeatherPtr->initStep++; // fall through - case 8: - sub_80ABC48(19); - if (gWeatherPtr->unknown_6EB == 0 && gWeatherPtr->unknown_6EC == 1) - SetThunderCounter(20); + case TSTORM_STATE_TRY_THUNDER_SHORT: + ApplyWeatherGammaShiftIfIdle(19); + if (!gWeatherPtr->thunderSkipShort && gWeatherPtr->thunderShortRetries == 1) + SetThunderCounter(20); // Do short thunder - gWeatherPtr->unknown_6E6 = (Random() % 3) + 6; + gWeatherPtr->thunderDelay = (Random() % 3) + 6; gWeatherPtr->initStep++; break; - case 9: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_TRY_NEW_THUNDER: + if (--gWeatherPtr->thunderDelay == 0) { - sub_80ABC48(3); - gWeatherPtr->unknown_6EA = 1; - if (--gWeatherPtr->unknown_6EC != 0) + ApplyWeatherGammaShiftIfIdle(3); + gWeatherPtr->thunderAllowEnd = TRUE; + if (--gWeatherPtr->thunderShortRetries != 0) { - gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; - gWeatherPtr->initStep = 10; + // Try a short thunder again + gWeatherPtr->thunderDelay = (Random() % 16) + 60; + gWeatherPtr->initStep = TSTORM_STATE_WAIT_THUNDER_SHORT; } - else if (gWeatherPtr->unknown_6EB == 0) + else if (!gWeatherPtr->thunderSkipShort) { - gWeatherPtr->initStep = 4; + // No more thunder, restart loop + gWeatherPtr->initStep = TSTORM_STATE_LOOP_START; } else { - gWeatherPtr->initStep = 11; + // Set up long thunder + gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_LONG; } } break; - case 10: - if (--gWeatherPtr->unknown_6E6 == 0) - gWeatherPtr->initStep = 8; + case TSTORM_STATE_WAIT_THUNDER_SHORT: + if (--gWeatherPtr->thunderDelay == 0) + gWeatherPtr->initStep = TSTORM_STATE_TRY_THUNDER_SHORT; break; - case 11: - gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; + case TSTORM_STATE_INIT_THUNDER_LONG: + gWeatherPtr->thunderDelay = (Random() % 16) + 60; gWeatherPtr->initStep++; break; - case 12: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_WAIT_THUNDER_LONG: + if (--gWeatherPtr->thunderDelay == 0) { + // Do long thunder SetThunderCounter(100); - sub_80ABC48(19); - gWeatherPtr->unknown_6E6 = (Random() & 0xF) + 30; + ApplyWeatherGammaShiftIfIdle(19); + gWeatherPtr->thunderDelay = (Random() & 0xF) + 30; gWeatherPtr->initStep++; } break; - case 13: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_FADE_THUNDER_LONG: + if (--gWeatherPtr->thunderDelay == 0) { sub_80ABC7C(19, 3, 5); gWeatherPtr->initStep++; } break; - case 14: + case TSTORM_STATE_END_THUNDER_LONG: if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) { - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->initStep = 4; + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->initStep = TSTORM_STATE_LOOP_START; } break; } @@ -1170,12 +1199,12 @@ bool8 Thunderstorm_Finish(void) switch (gWeatherPtr->finishStep) { case 0: - gWeatherPtr->unknown_6EA = 0; + gWeatherPtr->thunderAllowEnd = FALSE; gWeatherPtr->finishStep++; // fall through case 1: Thunderstorm_Main(); - if (gWeatherPtr->unknown_6EA) + if (gWeatherPtr->thunderAllowEnd) { if (gWeatherPtr->nextWeather == WEATHER_RAIN || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM @@ -1203,16 +1232,16 @@ bool8 Thunderstorm_Finish(void) static void SetThunderCounter(u16 max) { - if (gWeatherPtr->thunderTriggered == 0) + if (!gWeatherPtr->thunderTriggered) { gWeatherPtr->thunderCounter = Random() % max; - gWeatherPtr->thunderTriggered = 1; + gWeatherPtr->thunderTriggered = TRUE; } } static void UpdateThunderSound(void) { - if (gWeatherPtr->thunderTriggered == 1) + if (gWeatherPtr->thunderTriggered == TRUE) { if (gWeatherPtr->thunderCounter == 0) { @@ -1224,7 +1253,7 @@ static void UpdateThunderSound(void) else PlaySE(SE_THUNDER2); - gWeatherPtr->thunderTriggered = 0; + gWeatherPtr->thunderTriggered = FALSE; } else { @@ -1237,10 +1266,9 @@ static void UpdateThunderSound(void) // WEATHER_FOG_HORIZONTAL and WEATHER_UNDERWATER //------------------------------------------------------------------------------ -// unused data -static const u16 unusedData_839AB1C[] = {0, 6, 6, 12, 18, 42, 300, 300}; +static const u16 sUnusedData[] = {0, 6, 6, 12, 18, 42, 300, 300}; -static const struct OamData gOamData_839AB2C = +static const struct OamData sOamData_FogH = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1257,72 +1285,72 @@ static const struct OamData gOamData_839AB2C = .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_839AB34[] = +static const union AnimCmd sAnim_FogH_0[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB3C[] = +static const union AnimCmd sAnim_FogH_1[] = { ANIMCMD_FRAME(32, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB44[] = +static const union AnimCmd sAnim_FogH_2[] = { ANIMCMD_FRAME(64, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB4C[] = +static const union AnimCmd sAnim_FogH_3[] = { ANIMCMD_FRAME(96, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB54[] = +static const union AnimCmd sAnim_FogH_4[] = { ANIMCMD_FRAME(128, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB5C[] = +static const union AnimCmd sAnim_FogH_5[] = { ANIMCMD_FRAME(160, 16), ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_839AB64[] = +static const union AnimCmd *const sAnims_FogH[] = { - gSpriteAnim_839AB34, - gSpriteAnim_839AB3C, - gSpriteAnim_839AB44, - gSpriteAnim_839AB4C, - gSpriteAnim_839AB54, - gSpriteAnim_839AB5C, + sAnim_FogH_0, + sAnim_FogH_1, + sAnim_FogH_2, + sAnim_FogH_3, + sAnim_FogH_4, + sAnim_FogH_5, }; -static const union AffineAnimCmd gSpriteAffineAnim_839AB7C[] = +static const union AffineAnimCmd sAffineAnim_FogH[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_839AB8C[] = +static const union AffineAnimCmd *const sAffineAnims_FogH[] = { - gSpriteAffineAnim_839AB7C, + sAffineAnim_FogH, }; static void FogHorizontalSpriteCallback(struct Sprite *); static const struct SpriteTemplate sFogHorizontalSpriteTemplate = { - .tileTag = 0x1201, - .paletteTag = 0x1200, - .oam = &gOamData_839AB2C, - .anims = gSpriteAnimTable_839AB64, + .tileTag = GFXTAG_FOG_H, + .paletteTag = PALTAG_WEATHER, + .oam = &sOamData_FogH, + .anims = sAnims_FogH, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_839AB8C, + .affineAnims = sAffineAnims_FogH, .callback = FogHorizontalSpriteCallback, }; @@ -1413,12 +1441,12 @@ bool8 FogHorizontal_Finish(void) static void FogHorizontalSpriteCallback(struct Sprite *sprite) { - sprite->pos2.y = (u8)gSpriteCoordOffsetY; - sprite->pos1.x = gWeatherPtr->fogHScrollPosX + 32 + sprite->tSpriteColumn * 64; - if (sprite->pos1.x > 271) + sprite->y2 = (u8)gSpriteCoordOffsetY; + sprite->x = gWeatherPtr->fogHScrollPosX + 32 + sprite->tSpriteColumn * 64; + if (sprite->x > 271) { - sprite->pos1.x = 480 + gWeatherPtr->fogHScrollPosX - (4 - sprite->tSpriteColumn) * 64; - sprite->pos1.x &= 0x1FF; + sprite->x = 480 + gWeatherPtr->fogHScrollPosX - (4 - sprite->tSpriteColumn) * 64; + sprite->x &= 0x1FF; } } @@ -1433,7 +1461,7 @@ static void CreateFogHorizontalSprites(void) struct SpriteSheet fogHorizontalSpriteSheet = { .data = gWeatherFogHorizontalTiles, .size = sizeof(gWeatherFogHorizontalTiles), - .tag = 0x1201, + .tag = GFXTAG_FOG_H, }; LoadSpriteSheet(&fogHorizontalSpriteSheet); for (i = 0; i < NUM_FOG_HORIZONTAL_SPRITES; i++) @@ -1443,8 +1471,8 @@ static void CreateFogHorizontalSprites(void) { sprite = &gSprites[spriteId]; sprite->tSpriteColumn = i % 5; - sprite->pos1.x = (i % 5) * 64 + 32; - sprite->pos1.y = (i / 5) * 64 + 32; + sprite->x = (i % 5) * 64 + 32; + sprite->y = (i / 5) * 64 + 32; gWeatherPtr->sprites.s2.fogHSprites[i] = sprite; } else @@ -1469,7 +1497,7 @@ static void DestroyFogHorizontalSprites(void) DestroySprite(gWeatherPtr->sprites.s2.fogHSprites[i]); } - FreeSpriteTilesByTag(0x1201); + FreeSpriteTilesByTag(GFXTAG_FOG_H); gWeatherPtr->fogHSpritesCreated = 0; } } @@ -1491,7 +1519,7 @@ void Ash_InitVars(void) gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->gammaTargetIndex = 0; gWeatherPtr->gammaStepDelay = 20; - gWeatherPtr->unknown_6FE = 20; + gWeatherPtr->ashUnused = 20; // Never read if (!gWeatherPtr->ashSpritesCreated) { Weather_SetBlendCoeffs(0, 16); @@ -1509,8 +1537,8 @@ void Ash_InitAll(void) void Ash_Main(void) { gWeatherPtr->ashBaseSpritesX = gSpriteCoordOffsetX & 0x1FF; - while (gWeatherPtr->ashBaseSpritesX >= 240) - gWeatherPtr->ashBaseSpritesX -= 240; + while (gWeatherPtr->ashBaseSpritesX >= DISPLAY_WIDTH) + gWeatherPtr->ashBaseSpritesX -= DISPLAY_WIDTH; switch (gWeatherPtr->initStep) { @@ -1567,7 +1595,7 @@ static const struct SpriteSheet sAshSpriteSheet = { .data = gWeatherAshTiles, .size = sizeof(gWeatherAshTiles), - .tag = 0x1202, + .tag = GFXTAG_ASH, }; static void LoadAshSpriteSheet(void) @@ -1603,8 +1631,8 @@ static const union AnimCmd *const sAshSpriteAnimCmds[] = static const struct SpriteTemplate sAshSpriteTemplate = { - .tileTag = 4610, - .paletteTag = 0x1200, + .tileTag = GFXTAG_ASH, + .paletteTag = PALTAG_WEATHER, .oam = &sAshSpriteOamData, .anims = sAshSpriteAnimCmds, .images = NULL, @@ -1659,7 +1687,7 @@ static void DestroyAshSprites(void) DestroySprite(gWeatherPtr->sprites.s2.ashSprites[i]); } - FreeSpriteTilesByTag(0x1202); + FreeSpriteTilesByTag(GFXTAG_ASH); gWeatherPtr->ashSpritesCreated = FALSE; } } @@ -1672,12 +1700,12 @@ static void UpdateAshSprite(struct Sprite *sprite) sprite->tOffsetY++; } - sprite->pos1.y = gSpriteCoordOffsetY + sprite->tOffsetY; - sprite->pos1.x = gWeatherPtr->ashBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->pos1.x > 271) + sprite->y = gSpriteCoordOffsetY + sprite->tOffsetY; + sprite->x = gWeatherPtr->ashBaseSpritesX + 32 + sprite->tSpriteColumn * 64; + if (sprite->x > 271) { - sprite->pos1.x = gWeatherPtr->ashBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; - sprite->pos1.x &= 0x1FF; + sprite->x = gWeatherPtr->ashBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x &= 0x1FF; } } @@ -1790,7 +1818,7 @@ static const struct SpriteSheet gFogDiagonalSpriteSheet = { .data = gWeatherFogDiagonalTiles, .size = sizeof(gWeatherFogDiagonalTiles), - .tag = 0x1203, + .tag = GFXTAG_FOG_D, }; static const struct OamData sFogDiagonalSpriteOamData = @@ -1820,8 +1848,8 @@ static const union AnimCmd *const sFogDiagonalSpriteAnimCmds[] = static const struct SpriteTemplate sFogDiagonalSpriteTemplate = { - .tileTag = 0x1203, - .paletteTag = 0x1200, + .tileTag = GFXTAG_FOG_D, + .paletteTag = PALTAG_WEATHER, .oam = &sFogDiagonalSpriteOamData, .anims = sFogDiagonalSpriteAnimCmds, .images = NULL, @@ -1875,19 +1903,19 @@ static void DestroyFogDiagonalSprites(void) DestroySprite(gWeatherPtr->sprites.s2.fogDSprites[i]); } - FreeSpriteTilesByTag(0x1203); + FreeSpriteTilesByTag(GFXTAG_FOG_D); gWeatherPtr->fogDSpritesCreated = FALSE; } } static void UpdateFogDiagonalSprite(struct Sprite *sprite) { - sprite->pos2.y = gWeatherPtr->fogDPosY; - sprite->pos1.x = gWeatherPtr->fogDBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->pos1.x > 271) + sprite->y2 = gWeatherPtr->fogDPosY; + sprite->x = gWeatherPtr->fogDBaseSpritesX + 32 + sprite->tSpriteColumn * 64; + if (sprite->x > 271) { - sprite->pos1.x = gWeatherPtr->fogDBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; - sprite->pos1.x &= 0x1FF; + sprite->x = gWeatherPtr->fogDBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x &= 0x1FF; } } @@ -2018,7 +2046,7 @@ static void DestroySandstormSprites(void) } gWeatherPtr->sandstormSpritesCreated = FALSE; - FreeSpriteTilesByTag(0x1204); + FreeSpriteTilesByTag(GFXTAG_SANDSTORM); } if (gWeatherPtr->sandstormSwirlSpritesCreated) @@ -2067,8 +2095,8 @@ static const union AnimCmd *const sSandstormSpriteAnimCmds[] = static const struct SpriteTemplate sSandstormSpriteTemplate = { - .tileTag = 0x1204, - .paletteTag = 0x1201, + .tileTag = GFXTAG_SANDSTORM, + .paletteTag = PALTAG_WEATHER_2, .oam = &sSandstormSpriteOamData, .anims = sSandstormSpriteAnimCmds, .images = NULL, @@ -2080,7 +2108,7 @@ static const struct SpriteSheet sSandstormSpriteSheet = { .data = gWeatherSandstormTiles, .size = sizeof(gWeatherSandstormTiles), - .tag = 0x1204, + .tag = GFXTAG_SANDSTORM, }; // Regular sandstorm sprites @@ -2158,12 +2186,12 @@ static void CreateSwirlSandstormSprites(void) static void UpdateSandstormSprite(struct Sprite *sprite) { - sprite->pos2.y = gWeatherPtr->sandstormPosY; - sprite->pos1.x = gWeatherPtr->sandstormBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->pos1.x > 271) + sprite->y2 = gWeatherPtr->sandstormPosY; + sprite->x = gWeatherPtr->sandstormBaseSpritesX + 32 + sprite->tSpriteColumn * 64; + if (sprite->x > 271) { - sprite->pos1.x = gWeatherPtr->sandstormBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; - sprite->pos1.x &= 0x1FF; + sprite->x = gWeatherPtr->sandstormBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x &= 0x1FF; } } @@ -2177,16 +2205,16 @@ static void UpdateSandstormSwirlSprite(struct Sprite *sprite) { u32 x, y; - if (--sprite->pos1.y < -48) + if (--sprite->y < -48) { - sprite->pos1.y = 208; + sprite->y = 208; sprite->tRadius = 4; } x = sprite->tRadius * gSineTable[sprite->tWaveIndex]; y = sprite->tRadius * gSineTable[sprite->tWaveIndex + 0x40]; - sprite->pos2.x = x >> 8; - sprite->pos2.y = y >> 8; + sprite->x2 = x >> 8; + sprite->y2 = y >> 8; sprite->tWaveIndex = (sprite->tWaveIndex + 10) & 0xFF; if (++sprite->tRadiusCounter > 8) { @@ -2242,7 +2270,7 @@ static const struct SpriteSheet sWeatherBubbleSpriteSheet = { .data = gWeatherBubbleTiles, .size = sizeof(gWeatherBubbleTiles), - .tag = 0x1205, + .tag = GFXTAG_BUBBLE, }; static const s16 sBubbleStartCoords[][2] = @@ -2322,8 +2350,8 @@ static const union AnimCmd *const sBubbleSpriteAnimCmds[] = static const struct SpriteTemplate sBubbleSpriteTemplate = { - .tileTag = 0x1205, - .paletteTag = 0x1200, + .tileTag = GFXTAG_BUBBLE, + .paletteTag = PALTAG_WEATHER, .oam = &gOamData_AffineOff_ObjNormal_8x8, .anims = sBubbleSpriteAnimCmds, .images = NULL, @@ -2363,7 +2391,7 @@ static void DestroyBubbleSprites(void) DestroySprite(&gSprites[i]); } - FreeSpriteTilesByTag(0x1205); + FreeSpriteTilesByTag(GFXTAG_BUBBLE); gWeatherPtr->bubblesSpriteCount = 0; } } @@ -2376,17 +2404,17 @@ static void UpdateBubbleSprite(struct Sprite *sprite) sprite->tScrollXCounter = 0; if (sprite->tScrollXDir == 0) { - if (++sprite->pos2.x > 4) + if (++sprite->x2 > 4) sprite->tScrollXDir = 1; } else { - if (--sprite->pos2.x <= 0) + if (--sprite->x2 <= 0) sprite->tScrollXDir = 0; } } - sprite->pos1.y -= 3; + sprite->y -= 3; if (++sprite->tCounter >= 120) DestroySprite(sprite); } diff --git a/src/fieldmap.c b/src/fieldmap.c index 296c4edf25..e437ea7fc2 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -15,6 +15,7 @@ #include "trainer_hill.h" #include "tv.h" #include "constants/rgb.h" +#include "constants/metatile_behaviors.h" struct ConnectionFlags { @@ -28,7 +29,7 @@ EWRAM_DATA static u16 gBackupMapData[MAX_MAP_DATA_SIZE] = {0}; EWRAM_DATA struct MapHeader gMapHeader = {0}; EWRAM_DATA struct Camera gCamera = {0}; EWRAM_DATA static struct ConnectionFlags gMapConnectionFlags = {0}; -EWRAM_DATA static u32 sFiller_02037344 = 0; // without this, the next file won't align properly +EWRAM_DATA static u32 sFiller = 0; // without this, the next file won't align properly struct BackupMapLayout gBackupMapLayout; @@ -43,6 +44,24 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader); static void LoadSavedMapView(void); static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, u8 yMode); +static struct MapConnection *GetIncomingConnection(u8 direction, int x, int y); +static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, struct MapConnection *connection); +static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, int offset); + +#define MapGridGetBorderTileAt(x, y) ({ \ + u16 block; \ + int i; \ + u16 *border = gMapHeader.mapLayout->border; \ + \ + i = (x + 1) & 1; \ + i += ((y + 1) & 1) * 2; \ + \ + block = gMapHeader.mapLayout->border[i] | METATILE_COLLISION_MASK; \ +}) + +#define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) + +#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? gBackupMapLayout.map[x + gBackupMapLayout.width * y] : MapGridGetBorderTileAt(x, y)) struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection) { @@ -68,13 +87,13 @@ void InitMapFromSavedGame(void) void InitBattlePyramidMap(bool8 setPlayerPosition) { - CpuFastFill(0x03ff03ff, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill(METATILE_ID_UNDEFINED << 16 | METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); GenerateBattlePyramidFloorLayout(gBackupMapData, setPlayerPosition); } void InitTrainerHillMap(void) { - CpuFastFill(0x03ff03ff, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill(METATILE_ID_UNDEFINED << 16 | METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); GenerateTrainerHillFloorLayout(gBackupMapData); } @@ -84,7 +103,7 @@ static void InitMapLayoutData(struct MapHeader *mapHeader) int width; int height; mapLayout = mapHeader->mapLayout; - CpuFastFill16(0x03ff, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill16(METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); gBackupMapLayout.map = gBackupMapData; width = mapLayout->width + 15; gBackupMapLayout.width = width; @@ -130,26 +149,26 @@ static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader) { case CONNECTION_SOUTH: FillSouthConnection(mapHeader, cMap, offset); - gMapConnectionFlags.south = 1; + gMapConnectionFlags.south = TRUE; break; case CONNECTION_NORTH: FillNorthConnection(mapHeader, cMap, offset); - gMapConnectionFlags.north = 1; + gMapConnectionFlags.north = TRUE; break; case CONNECTION_WEST: FillWestConnection(mapHeader, cMap, offset); - gMapConnectionFlags.west = 1; + gMapConnectionFlags.west = TRUE; break; case CONNECTION_EAST: FillEastConnection(mapHeader, cMap, offset); - gMapConnectionFlags.east = 1; + gMapConnectionFlags.east = TRUE; break; } } } } -static void sub_8087F54(int x, int y, struct MapHeader const *connectedMapHeader, int x2, int y2, int width, int height) +static void FillConnection(int x, int y, struct MapHeader const *connectedMapHeader, int x2, int y2, int width, int height) { int i; u16 *src; @@ -185,29 +204,21 @@ static void FillSouthConnection(struct MapHeader const *mapHeader, struct MapHea x2 = -x; x += cWidth; if (x < gBackupMapLayout.width) - { width = x; - } else - { width = gBackupMapLayout.width; - } x = 0; } else { x2 = 0; if (x + cWidth < gBackupMapLayout.width) - { width = cWidth; - } else - { width = gBackupMapLayout.width - x; - } } - sub_8087F54( + FillConnection( x, y, connectedMapHeader, x2, /*y2*/ 0, @@ -233,29 +244,21 @@ static void FillNorthConnection(struct MapHeader const *mapHeader, struct MapHea x2 = -x; x += cWidth; if (x < gBackupMapLayout.width) - { width = x; - } else - { width = gBackupMapLayout.width; - } x = 0; } else { x2 = 0; if (x + cWidth < gBackupMapLayout.width) - { width = cWidth; - } else - { width = gBackupMapLayout.width - x; - } } - sub_8087F54( + FillConnection( x, /*y*/ 0, connectedMapHeader, x2, y2, @@ -280,29 +283,21 @@ static void FillWestConnection(struct MapHeader const *mapHeader, struct MapHead { y2 = -y; if (y + cHeight < gBackupMapLayout.height) - { height = y + cHeight; - } else - { height = gBackupMapLayout.height; - } y = 0; } else { y2 = 0; if (y + cHeight < gBackupMapLayout.height) - { height = cHeight; - } else - { height = gBackupMapLayout.height - y; - } } - sub_8087F54( + FillConnection( /*x*/ 0, y, connectedMapHeader, x2, y2, @@ -325,29 +320,21 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead { y2 = -y; if (y + cHeight < gBackupMapLayout.height) - { height = y + cHeight; - } else - { height = gBackupMapLayout.height; - } y = 0; } else { y2 = 0; if (y + cHeight < gBackupMapLayout.height) - { height = cHeight; - } else - { height = gBackupMapLayout.height - y; - } } - sub_8087F54( + FillConnection( x, y, connectedMapHeader, /*x2*/ 0, y2, @@ -355,124 +342,52 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead } } -union Block -{ - struct - { - u16 block:10; - u16 collision:2; - u16 elevation:4; - } block; - u16 value; -}; - u8 MapGridGetZCoordAt(int x, int y) { - u16 block; - int i; - u16 *border; - - if (x >= 0 && x < gBackupMapLayout.width - && y >= 0 && y < gBackupMapLayout.height) - { - block = gBackupMapLayout.map[x + gBackupMapLayout.width * y]; - } - else - { - border = gMapHeader.mapLayout->border; - i = (x + 1) & 1; - i += ((y + 1) & 1) * 2; - block = gMapHeader.mapLayout->border[i]; - block |= METATILE_COLLISION_MASK; - } + u16 block = MapGridGetTileAt(x, y); if (block == METATILE_ID_UNDEFINED) - { return 0; - } return block >> METATILE_ELEVATION_SHIFT; } -u8 MapGridIsImpassableAt(int x, int y) +bool8 MapGridIsImpassableAt(int x, int y) { - u16 block; - int i; - u16 *border; + u16 block = MapGridGetTileAt(x, y); - if (x >= 0 && x < gBackupMapLayout.width - && y >= 0 && y < gBackupMapLayout.height) - { - block = gBackupMapLayout.map[x + gBackupMapLayout.width * y]; - } - else - { - border = gMapHeader.mapLayout->border; - i = (x + 1) & 1; - i += ((y + 1) & 1) * 2; - block = gMapHeader.mapLayout->border[i]; - block |= METATILE_COLLISION_MASK; - } if (block == METATILE_ID_UNDEFINED) - { - return 1; - } + return TRUE; + return (block & METATILE_COLLISION_MASK) >> METATILE_COLLISION_SHIFT; } u32 MapGridGetMetatileIdAt(int x, int y) { - u16 block; - int i; - int j; - struct MapLayout const *mapLayout; - u16 *border; - u16 block2; + u16 block = MapGridGetTileAt(x, y); - if (x >= 0 && x < gBackupMapLayout.width - && y >= 0 && y < gBackupMapLayout.height) - { - block = gBackupMapLayout.map[x + gBackupMapLayout.width * y]; - } - else - { - mapLayout = gMapHeader.mapLayout; - i = (x + 1) & 1; - i += ((y + 1) & 1) * 2; - block = mapLayout->border[i] | METATILE_COLLISION_MASK; - } if (block == METATILE_ID_UNDEFINED) - { - border = gMapHeader.mapLayout->border; - j = (x + 1) & 1; - j += ((y + 1) & 1) * 2; - block2 = gMapHeader.mapLayout->border[j]; - // This OR is completely pointless. - block2 |= METATILE_COLLISION_MASK; - return block2 & METATILE_ID_MASK; - } + return MapGridGetBorderTileAt(x, y) & METATILE_ID_MASK; + return block & METATILE_ID_MASK; } u32 MapGridGetMetatileBehaviorAt(int x, int y) { - u16 metatile; - metatile = MapGridGetMetatileIdAt(x, y); - return GetBehaviorByMetatileId(metatile) & 0xff; + u16 metatile = MapGridGetMetatileIdAt(x, y); + return GetBehaviorByMetatileId(metatile) & METATILE_BEHAVIOR_MASK; } u8 MapGridGetMetatileLayerTypeAt(int x, int y) { - u16 metatile; - metatile = MapGridGetMetatileIdAt(x, y); + u16 metatile = MapGridGetMetatileIdAt(x, y); return (GetBehaviorByMetatileId(metatile) & METATILE_ELEVATION_MASK) >> METATILE_ELEVATION_SHIFT; } void MapGridSetMetatileIdAt(int x, int y, u16 metatile) { int i; - if (x >= 0 && x < gBackupMapLayout.width - && y >= 0 && y < gBackupMapLayout.height) + if (AreCoordsWithinMapGridBounds(x, y)) { i = x + y * gBackupMapLayout.width; gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & METATILE_ELEVATION_MASK) | (metatile & ~METATILE_ELEVATION_MASK); @@ -482,8 +397,7 @@ void MapGridSetMetatileIdAt(int x, int y, u16 metatile) void MapGridSetMetatileEntryAt(int x, int y, u16 metatile) { int i; - if (x >= 0 && x < gBackupMapLayout.width - && y >= 0 && y < gBackupMapLayout.height) + if (AreCoordsWithinMapGridBounds(x, y)) { i = x + gBackupMapLayout.width * y; gBackupMapLayout.map[i] = metatile; @@ -505,11 +419,11 @@ u16 GetBehaviorByMetatileId(u16 metatile) } else { - return 0xFF; + return MB_INVALID; } } -void save_serialize_map(void) +void SaveMapView(void) { int i, j; int x, y; @@ -522,9 +436,7 @@ void save_serialize_map(void) for (i = y; i < y + 14; i++) { for (j = x; j < x + 15; j++) - { *mapView++ = gBackupMapData[width * i + j]; - } } } @@ -595,7 +507,7 @@ static void LoadSavedMapView(void) } } -void sub_80885C4(u8 a1) +static void MoveMapViewToBackup(u8 direction) { int width; u16 *mapView; @@ -614,7 +526,7 @@ void sub_80885C4(u8 a1) y0 = gSaveBlock1Ptr->pos.y; x2 = 15; y2 = 14; - switch (a1) + switch (direction) { case CONNECTION_NORTH: y0 += 1; @@ -653,71 +565,40 @@ void sub_80885C4(u8 a1) int GetMapBorderIdAt(int x, int y) { - struct MapLayout const *mapLayout; - u16 block, block2; - int i, j; - if (x >= 0 && x < gBackupMapLayout.width - && y >= 0 && y < gBackupMapLayout.height) - { - i = gBackupMapLayout.width; - i *= y; - block = gBackupMapLayout.map[x + i]; - if (block == METATILE_ID_UNDEFINED) - { - goto fail; - } - } - else - { - mapLayout = gMapHeader.mapLayout; - j = (x + 1) & 1; - j += ((y + 1) & 1) * 2; - block2 = METATILE_COLLISION_MASK | mapLayout->border[j]; - if (block2 == METATILE_ID_UNDEFINED) - { - goto fail; - } - } - goto success; -fail: - return -1; -success: + if (MapGridGetTileAt(x, y) == METATILE_ID_UNDEFINED) + return CONNECTION_INVALID; if (x >= (gBackupMapLayout.width - 8)) { if (!gMapConnectionFlags.east) - { - return -1; - } + return CONNECTION_INVALID; + return CONNECTION_EAST; } else if (x < 7) { if (!gMapConnectionFlags.west) - { - return -1; - } + return CONNECTION_INVALID; + return CONNECTION_WEST; } else if (y >= (gBackupMapLayout.height - 7)) { if (!gMapConnectionFlags.south) - { - return -1; - } + return CONNECTION_INVALID; + return CONNECTION_SOUTH; } else if (y < 7) { if (!gMapConnectionFlags.north) - { - return -1; - } + return CONNECTION_INVALID; + return CONNECTION_NORTH; } else { - return 0; + return CONNECTION_NONE; } } @@ -726,19 +607,19 @@ int GetPostCameraMoveMapBorderId(int x, int y) return GetMapBorderIdAt(gSaveBlock1Ptr->pos.x + 7 + x, gSaveBlock1Ptr->pos.y + 7 + y); } -int CanCameraMoveInDirection(int direction) +bool32 CanCameraMoveInDirection(int direction) { int x, y; x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x; y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y; - if (GetMapBorderIdAt(x, y) == -1) - { - return 0; - } - return 1; + + if (GetMapBorderIdAt(x, y) == CONNECTION_INVALID) + return FALSE; + + return TRUE; } -void sub_80887F8(struct MapConnection *connection, int direction, int x, int y) +static void SetPositionFromConnection(struct MapConnection *connection, int direction, int x, int y) { struct MapHeader const *mapHeader; mapHeader = GetMapHeaderFromConnection(connection); @@ -765,69 +646,57 @@ void sub_80887F8(struct MapConnection *connection, int direction, int x, int y) bool8 CameraMove(int x, int y) { - unsigned int direction; + int direction; struct MapConnection *connection; int old_x, old_y; gCamera.active = FALSE; direction = GetPostCameraMoveMapBorderId(x, y); - if (direction + 1 <= 1) + if (direction == CONNECTION_NONE || direction == CONNECTION_INVALID) { gSaveBlock1Ptr->pos.x += x; gSaveBlock1Ptr->pos.y += y; } else { - save_serialize_map(); + SaveMapView(); ClearMirageTowerPulseBlendEffect(); old_x = gSaveBlock1Ptr->pos.x; old_y = gSaveBlock1Ptr->pos.y; - connection = sub_8088950(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y); - sub_80887F8(connection, direction, x, y); + connection = GetIncomingConnection(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y); + SetPositionFromConnection(connection, direction, x, y); LoadMapFromCameraTransition(connection->mapGroup, connection->mapNum); gCamera.active = TRUE; gCamera.x = old_x - gSaveBlock1Ptr->pos.x; gCamera.y = old_y - gSaveBlock1Ptr->pos.y; gSaveBlock1Ptr->pos.x += x; gSaveBlock1Ptr->pos.y += y; - sub_80885C4(direction); + MoveMapViewToBackup(direction); } return gCamera.active; } -struct MapConnection *sub_8088950(u8 direction, int x, int y) +static struct MapConnection *GetIncomingConnection(u8 direction, int x, int y) { int count; int i; struct MapConnection *connection; const struct MapConnections *connections = gMapHeader.connections; - // UB: Multiple possible null dereferences -#ifdef UBFIX - if (connections != NULL) - { - count = connections->count; - connection = connections->connections; - if (connection != NULL) - { - for (i = 0; i < count; i++, connection++) - { - if (connection->direction == direction && sub_80889A8(direction, x, y, connection) == TRUE) - return connection; - } - } - } -#else + +#ifdef UBFIX // UB: Multiple possible null dereferences + if (connections == NULL || connections->connections == NULL) + return NULL; +#endif count = connections->count; connection = connections->connections; for (i = 0; i < count; i++, connection++) { - if (connection->direction == direction && sub_80889A8(direction, x, y, connection) == TRUE) + if (connection->direction == direction && IsPosInIncomingConnectingMap(direction, x, y, connection) == TRUE) return connection; } -#endif return NULL; } -bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection) +static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, struct MapConnection *connection) { struct MapHeader const *mapHeader; mapHeader = GetMapHeaderFromConnection(connection); @@ -835,15 +704,15 @@ bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection) { case CONNECTION_SOUTH: case CONNECTION_NORTH: - return sub_8088A0C(x, gMapHeader.mapLayout->width, mapHeader->mapLayout->width, connection->offset); + return IsCoordInIncomingConnectingMap(x, gMapHeader.mapLayout->width, mapHeader->mapLayout->width, connection->offset); case CONNECTION_WEST: case CONNECTION_EAST: - return sub_8088A0C(y, gMapHeader.mapLayout->height, mapHeader->mapLayout->height, connection->offset); + return IsCoordInIncomingConnectingMap(y, gMapHeader.mapLayout->height, mapHeader->mapLayout->height, connection->offset); } return FALSE; } -bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset) +static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, int offset) { int offset2; offset2 = offset; @@ -851,24 +720,24 @@ bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset) if (offset2 < 0) offset2 = 0; - if (dest_width + offset < src_width) - src_width = dest_width + offset; + if (destMax + offset < srcMax) + srcMax = destMax + offset; - if (offset2 <= x && x <= src_width) + if (offset2 <= coord && coord <= srcMax) return TRUE; return FALSE; } -int sub_8088A38(int x, int width) +static int IsCoordInConnectingMap(int coord, int max) { - if (x >= 0 && x < width) + if (coord >= 0 && coord < max) return TRUE; return FALSE; } -int sub_8088A4C(struct MapConnection *connection, int x, int y) +static int IsPosInConnectingMap(struct MapConnection *connection, int x, int y) { struct MapHeader const *mapHeader; mapHeader = GetMapHeaderFromConnection(connection); @@ -876,10 +745,10 @@ int sub_8088A4C(struct MapConnection *connection, int x, int y) { case CONNECTION_SOUTH: case CONNECTION_NORTH: - return sub_8088A38(x - connection->offset, mapHeader->mapLayout->width); + return IsCoordInConnectingMap(x - connection->offset, mapHeader->mapLayout->width); case CONNECTION_WEST: case CONNECTION_EAST: - return sub_8088A38(y - connection->offset, mapHeader->mapLayout->height); + return IsCoordInConnectingMap(y - connection->offset, mapHeader->mapLayout->height); } return FALSE; } @@ -909,7 +778,7 @@ struct MapConnection *GetConnectionAtCoords(s16 x, s16 y) { continue; } - if (sub_8088A4C(connection, x - 7, y - 7) == TRUE) + if (IsPosInConnectingMap(connection, x - 7, y - 7) == TRUE) { return connection; } @@ -945,7 +814,7 @@ void GetCameraCoords(u16 *x, u16 *y) void MapGridSetMetatileImpassabilityAt(int x, int y, bool32 impassable) { - if (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) + if (AreCoordsWithinMapGridBounds(x, y)) { if (impassable) gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= METATILE_COLLISION_MASK; @@ -991,12 +860,12 @@ static void CopyTilesetToVramUsingHeap(struct Tileset const *tileset, u16 numTil } } -void nullsub_3(u16 a0, u16 a1) +static void FieldmapPaletteDummy(u16 offset, u16 size) { } -void nullsub_90(void) +static void FieldmapUnkDummy(void) { } @@ -1011,17 +880,17 @@ void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u16 size) { LoadPalette(&black, destOffset, 2); LoadPalette(((u16*)tileset->palettes) + 1, destOffset + 1, size - 2); - nullsub_3(destOffset + 1, (size - 2) >> 1); + FieldmapPaletteDummy(destOffset + 1, (size - 2) >> 1); } else if (tileset->isSecondary == TRUE) { LoadPalette(((u16*)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); - nullsub_3(destOffset, size >> 1); + FieldmapPaletteDummy(destOffset, size >> 1); } else { LoadCompressedPalette((u32*)tileset->palettes, destOffset, size); - nullsub_3(destOffset, size >> 1); + FieldmapPaletteDummy(destOffset, size >> 1); } } } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index ecc1928379..37ee1d8e15 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -62,7 +62,6 @@ static void HandleLongGrassOnHyper(u8, s16, s16); static u8 sCutSquareSide; static u8 sTileCountFromPlayer_X; static u8 sTileCountFromPlayer_Y; -static u32 sUnused; static bool8 sHyperCutTiles[CUT_HYPER_AREA]; // EWRAM variables @@ -327,7 +326,7 @@ bool8 FldEff_CutGrass(void) y = yAdd + gPlayerFacingPosition.y; SetCutGrassMetatile(x, y); - sub_808E75C(x, y); + AllowObjectAtPosTriggerGroundEffects(x, y); } } @@ -556,8 +555,8 @@ static void CutGrassSpriteCallback1(struct Sprite *sprite) static void CutGrassSpriteCallback2(struct Sprite *sprite) { - sprite->pos2.x = Sin(sprite->data[2], sprite->data[0]); - sprite->pos2.y = Cos(sprite->data[2], sprite->data[0]); + sprite->x2 = Sin(sprite->data[2], sprite->data[0]); + sprite->y2 = Cos(sprite->data[2], sprite->data[0]); sprite->data[2] = (sprite->data[2] + 8) & 0xFF; sprite->data[0] += 1 + (sprite->data[3] >> 2); // right shift by 2 is dividing by 4 diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 7a96eaa828..733dca722e 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -10,8 +10,6 @@ static EWRAM_DATA u8 sEscalatorAnim_TaskId = 0; static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks); static void Task_DrawEscalator(u8 taskId); -static void Task_DrawTeleporterHousing(u8 taskId); -static void Task_DrawTeleporterCable(u8 taskId); #define ESCALATOR_STAGES 3 #define LAST_ESCALATOR_STAGE (ESCALATOR_STAGES - 1) diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index b2ddf31801..9c166d0085 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -16,7 +16,6 @@ #include "constants/songs.h" #include "constants/map_types.h" -// structures struct FlashStruct { u8 fromType; @@ -26,7 +25,6 @@ struct FlashStruct void (*func)(void); }; -// static functions static void FieldCallback_Flash(void); static void FldEff_UseFlash(void); static bool8 TryDoMapTransition(void); @@ -42,7 +40,6 @@ static void Task_EnterCaveTransition2(u8 taskId); static void Task_EnterCaveTransition3(u8 taskId); static void Task_EnterCaveTransition4(u8 taskId); -// rodata static const struct FlashStruct sTransitionTypes[] = { {MAP_TYPE_TOWN, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, @@ -64,15 +61,14 @@ static const struct FlashStruct sTransitionTypes[] = {}, }; -static const u16 gCaveTransitionPalette_White[] = INCBIN_U16("graphics/misc/cave_transition_white.gbapal"); -static const u16 gCaveTransitionPalette_Black[] = INCBIN_U16("graphics/misc/cave_transition_black.gbapal"); +static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/misc/cave_transition_white.gbapal"); +static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/misc/cave_transition_black.gbapal"); -static const u16 gUnknown_085B2890[] = INCBIN_U16("graphics/misc/85B2890.gbapal"); -static const u16 gUnknown_085B28A0[] = INCBIN_U16("graphics/misc/85B28A0.gbapal"); -static const u32 gCaveTransitionTilemap[] = INCBIN_U32("graphics/misc/cave_transition_map.bin.lz"); -static const u32 gCaveTransitionTiles[] = INCBIN_U32("graphics/misc/cave_transition.4bpp.lz"); +static const u16 sCaveTransitionPalette_Enter[] = INCBIN_U16("graphics/misc/cave_transition_enter.gbapal"); +static const u16 sCaveTransitionPalette_Exit[] = INCBIN_U16("graphics/misc/cave_transition_exit.gbapal"); +static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/misc/cave_transition_map.bin.lz"); +static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/misc/cave_transition.4bpp.lz"); -// text bool8 SetUpFieldMove_Flash(void) { // In Ruby and Sapphire, Registeel's tomb is opened by using Fly. In Emerald, @@ -220,10 +216,10 @@ static void Task_ExitCaveTransition1(u8 taskId) static void Task_ExitCaveTransition2(u8 taskId) { SetGpuReg(REG_OFFSET_DISPCNT, 0); - LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000)); - LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800)); - LoadPalette(gCaveTransitionPalette_White, 0xE0, 0x20); - LoadPalette(gUnknown_085B28A0, 0xE0, 0x10); + LZ77UnCompVram(sCaveTransitionTiles, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(sCaveTransitionTilemap, (void *)(VRAM + 0xF800)); + LoadPalette(sCaveTransitionPalette_White, 0xE0, 0x20); + LoadPalette(sCaveTransitionPalette_Exit, 0xE0, 0x10); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 @@ -274,11 +270,11 @@ static void Task_ExitCaveTransition4(u8 taskId) if (count < 8) { gTasks[taskId].data[2]++; - LoadPalette(&gUnknown_085B28A0[count], 0xE0, 16 - 2 * count); + LoadPalette(&sCaveTransitionPalette_Exit[count], 0xE0, 16 - 2 * count); } else { - LoadPalette(gCaveTransitionPalette_White, 0, 0x20); + LoadPalette(sCaveTransitionPalette_White, 0, 0x20); gTasks[taskId].func = Task_ExitCaveTransition5; gTasks[taskId].data[2] = 8; } @@ -305,8 +301,8 @@ static void Task_EnterCaveTransition1(u8 taskId) static void Task_EnterCaveTransition2(u8 taskId) { SetGpuReg(REG_OFFSET_DISPCNT, 0); - LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000)); - LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800)); + LZ77UnCompVram(sCaveTransitionTiles, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(sCaveTransitionTilemap, (void *)(VRAM + 0xF800)); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); @@ -319,8 +315,8 @@ static void Task_EnterCaveTransition2(u8 taskId) | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON); - LoadPalette(gCaveTransitionPalette_White, 0xE0, 0x20); - LoadPalette(gCaveTransitionPalette_Black, 0, 0x20); + LoadPalette(sCaveTransitionPalette_White, 0xE0, 0x20); + LoadPalette(sCaveTransitionPalette_Black, 0, 0x20); gTasks[taskId].func = Task_EnterCaveTransition3; gTasks[taskId].data[0] = 16; gTasks[taskId].data[1] = 0; @@ -335,7 +331,7 @@ static void Task_EnterCaveTransition3(u8 taskId) { gTasks[taskId].data[2]++; gTasks[taskId].data[2]++; - LoadPalette(&gUnknown_085B2890[15 - count], 0xE0, 2 * (count + 1)); + LoadPalette(&sCaveTransitionPalette_Enter[15 - count], 0xE0, 2 * (count + 1)); } else { @@ -363,7 +359,7 @@ static void Task_EnterCaveTransition4(u8 taskId) } else { - LoadPalette(gCaveTransitionPalette_Black, 0, 0x20); + LoadPalette(sCaveTransitionPalette_Black, 0, 0x20); SetMainCallback2(gMain.savedCallback); } } diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 7eae8cfd12..9a76ed7440 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -22,7 +22,6 @@ #include "constants/metatile_behaviors.h" #include "constants/metatile_labels.h" #include "constants/songs.h" -#include "constants/tv.h" EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0}; @@ -387,7 +386,7 @@ static void Task_ComputerScreenOpenEffect(u8 taskId) task->tWinRight = DISPLAY_WIDTH; SetGpuReg(REG_OFFSET_BLDY, 0); SetGpuReg(REG_OFFSET_BLDCNT, task->tBlendCnt); - BlendPalettes(0xFFFFFFFF, 0, 0); + BlendPalettes(PALETTES_ALL, 0, 0); gPlttBufferFaded[0] = 0; } SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); @@ -463,7 +462,7 @@ static void Task_ComputerScreenCloseEffect(u8 taskId) { task->tWinLeft = DISPLAY_WIDTH / 2; task->tWinRight = DISPLAY_WIDTH / 2; - BlendPalettes(-1, 16, 0); + BlendPalettes(PALETTES_ALL, 16, 0); gPlttBufferFaded[0] = 0; } SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); @@ -1298,10 +1297,10 @@ u8 CreateRecordMixingLights(void) else { struct Sprite *sprite = &gSprites[spriteId]; - sub_8092FF0(16, 13, &sprite->pos1.x, &sprite->pos1.y); + GetMapCoordsFromSpritePos(16, 13, &sprite->x, &sprite->y); sprite->coordOffsetEnabled = TRUE; - sprite->pos1.x += 16; - sprite->pos1.y += 2; + sprite->x += 16; + sprite->y += 2; } return spriteId; } diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index a9d81501f3..e34d195045 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -54,7 +54,7 @@ static void StartSweetScentFieldEffect(void) PlaySE(SE_M_SWEET_SCENT); CpuFastSet(gPlttBufferUnfaded, gPaletteDecompressionBuffer, 0x100); CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100); - BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, RGB_RED); + BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarSpriteId()].oam.paletteNum + 16)), 4, 0, 8, RGB_RED); taskId = CreateTask(TrySweetScentEncounter, 0); gTasks[taskId].data[0] = 0; FieldEffectActiveListRemove(FLDEFF_SWEET_SCENT); @@ -76,7 +76,7 @@ static void TrySweetScentEncounter(u8 taskId) else { gTasks[taskId].func = FailSweetScentEncounter; - BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 8, 0, RGB_RED); + BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarSpriteId()].oam.paletteNum + 16)), 4, 8, 0, RGB_RED); TryStartMirageTowerPulseBlendEffect(); } } @@ -92,7 +92,7 @@ static void FailSweetScentEncounter(u8 taskId) if (!gPaletteFade.active) { CpuFastSet(gPaletteDecompressionBuffer, gPlttBufferUnfaded, 0x100); - sub_80AC3E4(); + SetWeatherPalStateIdle(); ScriptContext1_SetupScript(EventScript_FailSweetScent); DestroyTask(taskId); } diff --git a/src/frontier_pass.c b/src/frontier_pass.c index cf170b3500..e3e5ee1f24 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -38,14 +38,14 @@ enum WINDOW_BATTLE_RECORD, WINDOW_BATTLE_POINTS, WINDOW_DESCRIPTION, - WINDOW_4, + WINDOW_DUMMY, WINDOW_COUNT }; // Windows displayed in the facilities map view. enum { - MAP_WINDOW_0, + MAP_WINDOW_UNUSED, // Overlaps the "Battle Frontier" title area of the map MAP_WINDOW_NAME, MAP_WINDOW_DESCRIPTION, MAP_WINDOW_COUNT @@ -59,9 +59,39 @@ enum CURSOR_AREA_RECORD, CURSOR_AREA_CANCEL, CURSOR_AREA_POINTS, - CURSOR_AREA_EARNED_SYMBOLS, // The window. - CURSOR_AREA_SYMBOL, // All 7 symbols. - CURSOR_AREA_COUNT = CURSOR_AREA_SYMBOL + NUM_FRONTIER_FACILITIES, + CURSOR_AREA_EARNED_SYMBOLS, // The window containing the symbols + CURSOR_AREA_SYMBOL_TOWER, + CURSOR_AREA_SYMBOL_DOME, + CURSOR_AREA_SYMBOL_PALACE, + CURSOR_AREA_SYMBOL_ARENA, + CURSOR_AREA_SYMBOL_FACTORY, + CURSOR_AREA_SYMBOL_PIKE, + CURSOR_AREA_SYMBOL_PYRAMID, + CURSOR_AREA_COUNT +}; + +// Start of symbol cursor areas +#define CURSOR_AREA_SYMBOL CURSOR_AREA_SYMBOL_TOWER + +enum { + MAP_INDICATOR_RECTANGLE, + MAP_INDICATOR_SQUARE, +}; + +enum { + TAG_CURSOR, + TAG_MAP_INDICATOR, + TAG_MEDAL_SILVER, + TAG_MEDAL_GOLD, + TAG_HEAD_MALE, + TAG_HEAD_FEMALE, +}; + +// Error return codes. Never read +enum { + SUCCESS, + ERR_ALREADY_DONE, + ERR_ALLOC_FAILED, }; struct FrontierPassData @@ -73,25 +103,26 @@ struct FrontierPassData s16 cursorY; u8 cursorArea; u8 previousCursorArea; - u8 hasBattleRecord:1; - u8 unkE:3; + bool8 hasBattleRecord:1; + u8 areaToShow:3; u8 trainerStars:4; - u8 facilitySymbols[NUM_FRONTIER_FACILITIES]; + u8 facilitySymbols[NUM_FRONTIER_FACILITIES]; // 0: no symbol, 1: silver, 2: gold }; struct FrontierPassGfx { struct Sprite *cursorSprite; struct Sprite *symbolSprites[NUM_FRONTIER_FACILITIES]; - u8 *unk20; - u8 *unk24; - u8 *unk28; - bool8 setAffine; - s16 unk2E; - s16 unk30; - u8 tilemapBuff1[0x1000]; - u8 tilemapBuff2[0x1000]; - u8 tilemapBuff3[0x400]; + // These 3 tilemaps are used to overwrite the respective area when highlighted + u8 *mapAndCardZoomTilemap; + u8 *mapAndCardTilemap; + u8 *battleRecordTilemap; + bool8 zooming; + s16 scaleX; + s16 scaleY; + u8 tilemapBuff1[BG_SCREEN_SIZE * 2]; + u8 tilemapBuff2[BG_SCREEN_SIZE * 2]; + u8 tilemapBuff3[BG_SCREEN_SIZE / 2]; }; struct FrontierPassSaved @@ -109,9 +140,9 @@ struct FrontierMapData struct Sprite *mapIndicatorSprite; u8 cursorPos; u8 unused; - u8 tilemapBuff0[0x1000]; - u8 tilemapBuff1[0x1000]; - u8 tilemapBuff2[0x1000]; + u8 tilemapBuff0[BG_SCREEN_SIZE * 2]; + u8 tilemapBuff1[BG_SCREEN_SIZE * 2]; + u8 tilemapBuff2[BG_SCREEN_SIZE * 2]; }; static EWRAM_DATA struct FrontierPassData *sPassData = NULL; @@ -119,37 +150,39 @@ static EWRAM_DATA struct FrontierPassGfx *sPassGfx = NULL; static EWRAM_DATA struct FrontierMapData *sMapData = NULL; static EWRAM_DATA struct FrontierPassSaved sSavedPassData = {0}; -// This file's functions. static u32 AllocateFrontierPassData(void (*callback)(void)); static void ShowFrontierMap(void (*callback)(void)); static void CB2_InitFrontierPass(void); -static void sub_80C629C(void); +static void DrawFrontierPassBg(void); static void FreeCursorAndSymbolSprites(void); static void LoadCursorAndSymbolSprites(void); static u32 FreeFrontierPassData(void); static bool32 InitFrontierPass(void); static bool32 HideFrontierPass(void); -static void Task_HandleFrontierPassInput(u8 taskId); -static void Task_DoFadeEffect(u8 taskId); -static void sub_80C6104(u8 cursorArea, u8 previousCursorArea); -static void PrintAreaDescription(u8 cursorArea); -static void sub_80C5F58(bool8 arg0, bool8 arg1); -static void SpriteCb_Dummy(struct Sprite *sprite); +static void Task_HandleFrontierPassInput(u8); +static void Task_PassAreaZoom(u8); +static void UpdateAreaHighlight(u8, u8); +static void PrintAreaDescription(u8); +static void ShowHideZoomingArea(bool8, bool8); +static void SpriteCB_PlayerHead(struct Sprite *); -// Const rom data. -static const u16 sMaleHeadPalette[] = INCBIN_U16("graphics/frontier_pass/map_heads.gbapal"); -static const u16 sFemaleHeadPalette[] = INCBIN_U16("graphics/frontier_pass/map_heads_female.gbapal"); -static const u32 gUnknown_0856FBBC[] = INCBIN_U32("graphics/frontier_pass/map_screen.4bpp.lz"); -static const u32 sCursorGfx[] = INCBIN_U32("graphics/frontier_pass/cursor.4bpp.lz"); -static const u32 sHeadsGfx[] = INCBIN_U32("graphics/frontier_pass/map_heads.4bpp.lz"); -static const u32 sMapCursorGfx[] = INCBIN_U32("graphics/frontier_pass/map_cursor.4bpp.lz"); -static const u32 gUnknown_08570E00[] = INCBIN_U32("graphics/frontier_pass/map_screen.bin.lz"); -static const u32 gUnknown_08571060[] = INCBIN_U32("graphics/frontier_pass/small_map_and_card.bin.lz"); -static const u32 gUnknown_08571298[] = INCBIN_U32("graphics/frontier_pass/unknown_571298.bin"); -static const u32 gUnknown_085712C0[] = INCBIN_U32("graphics/frontier_pass/record_frame.bin.lz"); -static const u32 gUnknown_085712F8[] = INCBIN_U32("graphics/frontier_pass/small_map_and_card_affine.bin.lz"); +static const u16 sMaleHead_Pal[] = INCBIN_U16("graphics/frontier_pass/map_heads.gbapal"); +static const u16 sFemaleHead_Pal[] = INCBIN_U16("graphics/frontier_pass/map_heads_female.gbapal"); +static const u32 sMapScreen_Gfx[] = INCBIN_U32("graphics/frontier_pass/map_screen.4bpp.lz"); +static const u32 sCursor_Gfx[] = INCBIN_U32("graphics/frontier_pass/cursor.4bpp.lz"); +static const u32 sHeads_Gfx[] = INCBIN_U32("graphics/frontier_pass/map_heads.4bpp.lz"); +static const u32 sMapCursor_Gfx[] = INCBIN_U32("graphics/frontier_pass/map_cursor.4bpp.lz"); +static const u32 sMapScreen_Tilemap[] = INCBIN_U32("graphics/frontier_pass/map_screen.bin.lz"); +static const u32 sMapAndCard_ZoomedOut_Tilemap[] = INCBIN_U32("graphics/frontier_pass/small_map_and_card.bin.lz"); +static const u32 sUnusedData[] = INCBIN_U32("graphics/frontier_pass/unused.bin"); +static const u32 sBattleRecord_Tilemap[] = INCBIN_U32("graphics/frontier_pass/record_frame.bin.lz"); +static const u32 sMapAndCard_Zooming_Tilemap[] = INCBIN_U32("graphics/frontier_pass/small_map_and_card_affine.bin.lz"); -static const s16 gUnknown_085713E0[][2] = {{216, 32}, {216, 128}}; +static const s16 sBgAffineCoords[][2] = +{ + [CURSOR_AREA_MAP - 1] = {216, 32}, + [CURSOR_AREA_CARD - 1] = {216, 128} +}; static const struct BgTemplate sPassBgTemplates[] = { @@ -213,9 +246,9 @@ static const struct BgTemplate sMapBgTemplates[] = }, }; -static const struct WindowTemplate sPassWindowTemplates[] = +static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = { - { + [WINDOW_EARNED_SYMBOLS] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 3, @@ -224,7 +257,7 @@ static const struct WindowTemplate sPassWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x1, }, - { + [WINDOW_BATTLE_RECORD] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 10, @@ -233,7 +266,7 @@ static const struct WindowTemplate sPassWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x26, }, - { + [WINDOW_BATTLE_POINTS] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 13, @@ -242,7 +275,7 @@ static const struct WindowTemplate sPassWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x4B, }, - { + [WINDOW_DESCRIPTION] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 18, @@ -256,7 +289,7 @@ static const struct WindowTemplate sPassWindowTemplates[] = static const struct WindowTemplate sMapWindowTemplates[] = { - { + [MAP_WINDOW_UNUSED] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 1, @@ -265,7 +298,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x1, }, - { + [MAP_WINDOW_NAME] = { .bg = 0, .tilemapLeft = 20, .tilemapTop = 1, @@ -274,7 +307,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x4D, }, - { + [MAP_WINDOW_DESCRIPTION] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 16, @@ -288,7 +321,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = static const u8 sTextColors[][3] = { - {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, + {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_BLUE}, {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED}, }; @@ -300,159 +333,162 @@ struct s16 xStart; s16 xEnd; } -static const sPassAreasLayout[] = +static const sPassAreasLayout[CURSOR_AREA_COUNT - 1] = { - {28, 76, 132, 220}, - {84, 132, 132, 220}, - {80, 102, 20, 108}, - {0, 16, 152, 240}, - {108, 134, 20, 108}, - {24, 48, 20, 108}, - {50, 66, 20, 36}, - {66, 82, 32, 48}, - {50, 66, 44, 60}, - {66, 82, 56, 72}, - {50, 66, 68, 84}, - {66, 82, 80, 96}, - {50, 66, 92, 108}, + [CURSOR_AREA_MAP - 1] = { 28, 76, 132, 220}, + [CURSOR_AREA_CARD - 1] = { 84, 132, 132, 220}, + [CURSOR_AREA_RECORD - 1] = { 80, 102, 20, 108}, + [CURSOR_AREA_CANCEL - 1] = { 0, 16, 152, 240}, + [CURSOR_AREA_POINTS - 1] = {108, 134, 20, 108}, + [CURSOR_AREA_EARNED_SYMBOLS - 1] = { 24, 48, 20, 108}, + [CURSOR_AREA_SYMBOL_TOWER - 1] = { 50, 66, 20, 36}, + [CURSOR_AREA_SYMBOL_DOME - 1] = { 66, 82, 32, 48}, + [CURSOR_AREA_SYMBOL_PALACE - 1] = { 50, 66, 44, 60}, + [CURSOR_AREA_SYMBOL_ARENA - 1] = { 66, 82, 56, 72}, + [CURSOR_AREA_SYMBOL_FACTORY - 1] = { 50, 66, 68, 84}, + [CURSOR_AREA_SYMBOL_PIKE - 1] = { 66, 82, 80, 96}, + [CURSOR_AREA_SYMBOL_PYRAMID - 1] = { 50, 66, 92, 108}, }; static const struct CompressedSpriteSheet sCursorSpriteSheets[] = { - {sCursorGfx, 0x100, 0}, - {sMapCursorGfx, 0x400, 1}, - {gFrontierPassMedals_Gfx, 0x380, 2}, + {sCursor_Gfx, 0x100, TAG_CURSOR}, + {sMapCursor_Gfx, 0x400, TAG_MAP_INDICATOR}, + {gFrontierPassMedals_Gfx, 0x380, TAG_MEDAL_SILVER}, }; static const struct CompressedSpriteSheet sHeadsSpriteSheet[] = { - {sHeadsGfx, 0x100, 4}, + {sHeads_Gfx, 0x100, TAG_HEAD_MALE}, {} }; static const struct SpritePalette sSpritePalettes[] = { - {gFrontierPassCursor_Pal, 0}, - {gFrontierPassMapCursor_Pal, 1}, - {gFrontierPassMedalsSilver_Pal, 2}, - {gFrontierPassMedalsGold_Pal, 3}, - {sMaleHeadPalette, 4}, - {sFemaleHeadPalette, 5}, + {gFrontierPassCursor_Pal, TAG_CURSOR}, + {gFrontierPassMapCursor_Pal, TAG_MAP_INDICATOR}, + {gFrontierPassMedalsSilver_Pal, TAG_MEDAL_SILVER}, + {gFrontierPassMedalsGold_Pal, TAG_MEDAL_GOLD}, + {sMaleHead_Pal, TAG_HEAD_MALE}, + {sFemaleHead_Pal, TAG_HEAD_FEMALE}, {} }; -static const union AnimCmd sSpriteAnim_857151C[] = +static const union AnimCmd sAnim_Frame1_Unused[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8571524[] = +static const union AnimCmd sAnim_Frame1[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_857152C[] = +static const union AnimCmd sAnim_Frame2[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8571534[] = +static const union AnimCmd sAnim_Frame3[] = { ANIMCMD_FRAME(8, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_857153C[] = +static const union AnimCmd sAnim_Frame4[] = { ANIMCMD_FRAME(12, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8571544[] = +static const union AnimCmd sAnim_Frame5[] = { ANIMCMD_FRAME(16, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_857154C[] = +static const union AnimCmd sAnim_Frame6[] = { ANIMCMD_FRAME(20, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8571554[] = +static const union AnimCmd sAnim_Frame7[] = { ANIMCMD_FRAME(24, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_857155C[] = +static const union AnimCmd sAnim_MapIndicatorCursor_Rectangle[] = { ANIMCMD_FRAME(0, 45), ANIMCMD_FRAME(8, 45), ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_8571568[] = +static const union AnimCmd sAnim_MapIndicatorCursor_Square[] = { ANIMCMD_FRAME(16, 45), ANIMCMD_FRAME(24, 45), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_8571574[] = +// Used both by the cursor and the map head icons +static const union AnimCmd *const sAnims_TwoFrame[] = { - sSpriteAnim_8571524, - sSpriteAnim_857152C + sAnim_Frame1, + sAnim_Frame2 }; -static const union AnimCmd *const sSpriteAnimTable_857157C[] = +static const union AnimCmd *const sAnims_Medal[] = { - sSpriteAnim_8571524, - sSpriteAnim_857152C, - sSpriteAnim_8571534, - sSpriteAnim_857153C, - sSpriteAnim_8571544, - sSpriteAnim_857154C, - sSpriteAnim_8571554 + [CURSOR_AREA_SYMBOL_TOWER - CURSOR_AREA_SYMBOL] = sAnim_Frame1, + [CURSOR_AREA_SYMBOL_DOME - CURSOR_AREA_SYMBOL] = sAnim_Frame2, + [CURSOR_AREA_SYMBOL_PALACE - CURSOR_AREA_SYMBOL] = sAnim_Frame3, + [CURSOR_AREA_SYMBOL_ARENA - CURSOR_AREA_SYMBOL] = sAnim_Frame4, + [CURSOR_AREA_SYMBOL_FACTORY - CURSOR_AREA_SYMBOL] = sAnim_Frame5, + [CURSOR_AREA_SYMBOL_PIKE - CURSOR_AREA_SYMBOL] = sAnim_Frame6, + [CURSOR_AREA_SYMBOL_PYRAMID - CURSOR_AREA_SYMBOL] = sAnim_Frame7 }; -static const union AnimCmd *const sSpriteAnimTable_8571598[] = +static const union AnimCmd *const sAnims_MapIndicatorCursor[] = { - sSpriteAnim_857155C, - sSpriteAnim_8571568 + [MAP_INDICATOR_RECTANGLE] = sAnim_MapIndicatorCursor_Rectangle, + [MAP_INDICATOR_SQUARE] = sAnim_MapIndicatorCursor_Square }; -static const union AffineAnimCmd sSpriteAffineAnim_85715A0[] = +static const union AffineAnimCmd sAffineAnim_Unused[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_85715B0[] = +static const union AffineAnimCmd *const sAffineAnims_Unused[] = { - sSpriteAffineAnim_85715A0 + sAffineAnim_Unused }; static const struct SpriteTemplate sSpriteTemplates_Cursors[] = { + // Triangular cursor { - .tileTag = 0, - .paletteTag = 0, + .tileTag = TAG_CURSOR, + .paletteTag = TAG_CURSOR, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_8571574, + .anims = sAnims_TwoFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, + // Map indicator cursor { - .tileTag = 1, - .paletteTag = 1, + .tileTag = TAG_MAP_INDICATOR, + .paletteTag = TAG_MAP_INDICATOR, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = sSpriteAnimTable_8571598, + .anims = sAnims_MapIndicatorCursor, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, @@ -461,43 +497,43 @@ static const struct SpriteTemplate sSpriteTemplates_Cursors[] = static const struct SpriteTemplate sSpriteTemplate_Medal = { - .tileTag = 2, - .paletteTag = 2, + .tileTag = TAG_MEDAL_SILVER, + .paletteTag = TAG_MEDAL_SILVER, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_857157C, + .anims = sAnims_Medal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate sSpriteTemplate_Head = +static const struct SpriteTemplate sSpriteTemplate_PlayerHead = { - .tileTag = 4, - .paletteTag = 4, + .tileTag = TAG_HEAD_MALE, + .paletteTag = TAG_HEAD_MALE, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_8571574, + .anims = sAnims_TwoFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCb_Dummy, + .callback = SpriteCB_PlayerHead, }; -static const u8 *const sPassAreaDescriptions[] = +static const u8 *const sPassAreaDescriptions[CURSOR_AREA_COUNT + 1] = { - gText_ThereIsNoBattleRecord, - gText_CheckFrontierMap, - gText_CheckTrainerCard, - gText_ViewRecordedBattle, - gText_PutAwayFrontierPass, - gText_CurrentBattlePoints, - gText_CollectedSymbols, - gText_BattleTowerAbilitySymbol, - gText_BattleDomeTacticsSymbol, - gText_BattlePalaceSpiritsSymbol, - gText_BattleArenaGutsSymbol, - gText_BattleFactoryKnowledgeSymbol, - gText_BattlePikeLuckSymbol, - gText_BattlePyramidBraveSymbol, - gText_EmptyString7, + [CURSOR_AREA_NOTHING] = gText_ThereIsNoBattleRecord, // NOTHING is re-used for CURSOR_AREA_RECORD when no Record is present + [CURSOR_AREA_MAP] = gText_CheckFrontierMap, + [CURSOR_AREA_CARD] = gText_CheckTrainerCard, + [CURSOR_AREA_RECORD] = gText_ViewRecordedBattle, + [CURSOR_AREA_CANCEL] = gText_PutAwayFrontierPass, + [CURSOR_AREA_POINTS] = gText_CurrentBattlePoints, + [CURSOR_AREA_EARNED_SYMBOLS] = gText_CollectedSymbols, + [CURSOR_AREA_SYMBOL_TOWER] = gText_BattleTowerAbilitySymbol, + [CURSOR_AREA_SYMBOL_DOME] = gText_BattleDomeTacticsSymbol, + [CURSOR_AREA_SYMBOL_PALACE] = gText_BattlePalaceSpiritsSymbol, + [CURSOR_AREA_SYMBOL_ARENA] = gText_BattleArenaGutsSymbol, + [CURSOR_AREA_SYMBOL_FACTORY] = gText_BattleFactoryKnowledgeSymbol, + [CURSOR_AREA_SYMBOL_PIKE] = gText_BattlePikeLuckSymbol, + [CURSOR_AREA_SYMBOL_PYRAMID] = gText_BattlePyramidBraveSymbol, + [CURSOR_AREA_COUNT] = gText_EmptyString7, }; struct @@ -507,18 +543,17 @@ struct s16 x; s16 y; u8 animNum; -} static const sMapLandmarks[] = +} static const sMapLandmarks[NUM_FRONTIER_FACILITIES] = { - {gText_BattleTower3, gText_BattleTowerDesc, 0x59, 0x28, 1}, - {gText_BattleDome2, gText_BattleDomeDesc, 0x21, 0x2A, 1}, - {gText_BattlePalace2, gText_BattlePalaceDesc, 0x78, 0x56, 0}, - {gText_BattleArena2, gText_BattleArenaDesc, 0x72, 0x3B, 0}, - {gText_BattleFactory2, gText_BattleFactoryDesc, 0x19, 0x43, 0}, - {gText_BattlePike2, gText_BattlePikeDesc, 0x39, 0x39, 1}, - {gText_BattlePyramid2, gText_BattlePyramidDesc, 0x86, 0x29, 1}, + [FRONTIER_FACILITY_TOWER] = {gText_BattleTower3, gText_BattleTowerDesc, 89, 40, MAP_INDICATOR_SQUARE}, + [FRONTIER_FACILITY_DOME] = {gText_BattleDome2, gText_BattleDomeDesc, 33, 42, MAP_INDICATOR_SQUARE}, + [FRONTIER_FACILITY_PALACE] = {gText_BattlePalace2, gText_BattlePalaceDesc, 120, 86, MAP_INDICATOR_RECTANGLE}, + [FRONTIER_FACILITY_ARENA] = {gText_BattleArena2, gText_BattleArenaDesc, 114, 59, MAP_INDICATOR_RECTANGLE}, + [FRONTIER_FACILITY_FACTORY] = {gText_BattleFactory2, gText_BattleFactoryDesc, 25, 67, MAP_INDICATOR_RECTANGLE}, + [FRONTIER_FACILITY_PIKE] = {gText_BattlePike2, gText_BattlePikeDesc, 57, 57, MAP_INDICATOR_SQUARE}, + [FRONTIER_FACILITY_PYRAMID] = {gText_BattlePyramid2, gText_BattlePyramidDesc, 134, 41, MAP_INDICATOR_SQUARE}, }; -// code static void ResetGpuRegsAndBgs(void) { SetGpuReg(REG_OFFSET_DISPCNT, 0); @@ -564,30 +599,34 @@ static u32 AllocateFrontierPassData(void (*callback)(void)) u8 i; if (sPassData != NULL) - return 1; + return ERR_ALREADY_DONE; sPassData = AllocZeroed(sizeof(*sPassData)); if (sPassData == NULL) - return 2; + return ERR_ALLOC_FAILED; sPassData->callback = callback; i = GetCurrentRegionMapSectionId(); if (i != MAPSEC_BATTLE_FRONTIER && i != MAPSEC_ARTISAN_CAVE) { + // Player is not in the frontier, set + // cursor position to the Trainer Card sPassData->cursorX = 176; sPassData->cursorY = 104; } else { + // Player is in the frontier, set + // cursor position to the frontier map sPassData->cursorX = 176; sPassData->cursorY = 48; } sPassData->battlePoints = gSaveBlock2Ptr->frontier.battlePoints; sPassData->hasBattleRecord = CanCopyRecordedBattleSaveData(); - sPassData->unkE = 0; + sPassData->areaToShow = CURSOR_AREA_NOTHING; sPassData->trainerStars = CountPlayerTrainerStars(); - for (i = 0; i < 7; i++) + for (i = 0; i < NUM_FRONTIER_FACILITIES; i++) { if (FlagGet(FLAG_SYS_TOWER_SILVER + i * 2)) sPassData->facilitySymbols[i]++; @@ -595,60 +634,57 @@ static u32 AllocateFrontierPassData(void (*callback)(void)) sPassData->facilitySymbols[i]++; } - return 0; + return SUCCESS; } static u32 FreeFrontierPassData(void) { if (sPassData == NULL) - return 1; + return ERR_ALREADY_DONE; memset(sPassData, 0, sizeof(*sPassData)); // Why clear data, if it's going to be freed anyway? FREE_AND_SET_NULL(sPassData); - return 0; + return SUCCESS; } static u32 AllocateFrontierPassGfx(void) { if (sPassGfx != NULL) - return 1; + return ERR_ALREADY_DONE; sPassGfx = AllocZeroed(sizeof(*sPassGfx)); if (sPassGfx == NULL) - return 2; + return ERR_ALLOC_FAILED; - return 0; + return SUCCESS; } static u32 FreeFrontierPassGfx(void) { FreeAllWindowBuffers(); if (sPassGfx == NULL) - return 1; + return ERR_ALREADY_DONE; - if (sPassGfx->unk28 != NULL) - FREE_AND_SET_NULL(sPassGfx->unk28); - if (sPassGfx->unk24 != NULL) - FREE_AND_SET_NULL(sPassGfx->unk24); - if (sPassGfx->unk20 != NULL) - FREE_AND_SET_NULL(sPassGfx->unk20); + TRY_FREE_AND_SET_NULL(sPassGfx->battleRecordTilemap); + TRY_FREE_AND_SET_NULL(sPassGfx->mapAndCardTilemap); + TRY_FREE_AND_SET_NULL(sPassGfx->mapAndCardZoomTilemap); memset(sPassGfx, 0, sizeof(*sPassGfx)); // Why clear data, if it's going to be freed anyway? FREE_AND_SET_NULL(sPassGfx); - return 0; + return SUCCESS; } -static void VblankCb_FrontierPass(void) +static void VBlankCB_FrontierPass(void) { - if (sPassGfx->setAffine) + if (sPassGfx->zooming) { SetBgAffine(2, - gUnknown_085713E0[sPassData->unkE - 1][0] << 8, - gUnknown_085713E0[sPassData->unkE - 1][1] << 8, - gUnknown_085713E0[sPassData->unkE - 1][0], - gUnknown_085713E0[sPassData->unkE - 1][1], - sPassGfx->unk2E, - sPassGfx->unk30, + sBgAffineCoords[sPassData->areaToShow - 1][0] << 8, + sBgAffineCoords[sPassData->areaToShow - 1][1] << 8, + sBgAffineCoords[sPassData->areaToShow - 1][0], + sBgAffineCoords[sPassData->areaToShow - 1][1], + sPassGfx->scaleX, + sPassGfx->scaleY, 0); } LoadOam(); @@ -716,11 +752,11 @@ static bool32 InitFrontierPass(void) DeactivateAllTextPrinters(); break; case 6: - sPassGfx->unk20 = malloc_and_decompress(gUnknown_085712F8, &sizeOut); - sPassGfx->unk24 = malloc_and_decompress(gUnknown_08571060, &sizeOut); - sPassGfx->unk28 = malloc_and_decompress(gUnknown_085712C0, &sizeOut); - DecompressAndCopyTileDataToVram(1, gUnknown_08DE08C8, 0, 0, 0); - DecompressAndCopyTileDataToVram(2, gUnknown_08DE2084, 0, 0, 0); + sPassGfx->mapAndCardZoomTilemap = malloc_and_decompress(sMapAndCard_Zooming_Tilemap, &sizeOut); + sPassGfx->mapAndCardTilemap = malloc_and_decompress(sMapAndCard_ZoomedOut_Tilemap, &sizeOut); + sPassGfx->battleRecordTilemap = malloc_and_decompress(sBattleRecord_Tilemap, &sizeOut); + DecompressAndCopyTileDataToVram(1, gFrontierPassBg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(2, gFrontierPassMapAndCard_Gfx, 0, 0, 0); break; case 7: if (FreeTempTileDataBuffersIfPossible()) @@ -733,12 +769,12 @@ static bool32 InitFrontierPass(void) CopyBgTilemapBufferToVram(2); break; case 8: - LoadPalette(gUnknown_08DE07C8[0], 0, 0x1A0); - LoadPalette(gUnknown_08DE07C8[1 + sPassData->trainerStars], 0x10, 0x20); + LoadPalette(gFrontierPassBg_Pal[0], 0, 0x1A0); + LoadPalette(gFrontierPassBg_Pal[1 + sPassData->trainerStars], 0x10, 0x20); LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); - sub_80C629C(); - sub_80C6104(sPassData->cursorArea, sPassData->previousCursorArea); - if (sPassData->unkE == 1 || sPassData->unkE == 2) + DrawFrontierPassBg(); + UpdateAreaHighlight(sPassData->cursorArea, sPassData->previousCursorArea); + if (sPassData->areaToShow == CURSOR_AREA_MAP || sPassData->areaToShow == CURSOR_AREA_CARD) { sPassData->state = 0; return TRUE; @@ -750,9 +786,9 @@ static bool32 InitFrontierPass(void) ShowBg(1); ShowBg(2); LoadCursorAndSymbolSprites(); - SetVBlankCallback(VblankCb_FrontierPass); - BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + SetVBlankCallback(VBlankCB_FrontierPass); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; case 10: AnimateSprites(); @@ -773,9 +809,9 @@ static bool32 HideFrontierPass(void) switch (sPassData->state) { case 0: - if (sPassData->unkE != 1 && sPassData->unkE != 2) + if (sPassData->areaToShow != CURSOR_AREA_MAP && sPassData->areaToShow != CURSOR_AREA_CARD) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); } else { @@ -822,11 +858,11 @@ static u8 GetCursorAreaFromCoords(s16 x, s16 y) { u8 i; - // Minus/Plus 1, because the table doesn't take into account the nothing field. + // Minus/Plus 1, because the table doesn't take CURSOR_AREA_NOTHING into account. for (i = 0; i < CURSOR_AREA_COUNT - 1; i++) { if (sPassAreasLayout[i].yStart <= y && sPassAreasLayout[i].yEnd >= y - && sPassAreasLayout[i].xStart <= x && sPassAreasLayout[i].xEnd >= x) + && sPassAreasLayout[i].xStart <= x && sPassAreasLayout[i].xEnd >= x) { if (i >= CURSOR_AREA_SYMBOL - 1 && sPassData->facilitySymbols[i - CURSOR_AREA_SYMBOL + 1] == 0) break; @@ -835,9 +871,12 @@ static u8 GetCursorAreaFromCoords(s16 x, s16 y) } } - return 0; + return CURSOR_AREA_NOTHING; } +// For Task_PassAreaZoom +#define tZoomOut data[0] + void CB2_ReshowFrontierPass(void) { u8 taskId; @@ -845,16 +884,16 @@ void CB2_ReshowFrontierPass(void) if (!InitFrontierPass()) return; - switch (sPassData->unkE) + switch (sPassData->areaToShow) { - case 1: - case 2: - taskId = CreateTask(Task_DoFadeEffect, 0); - gTasks[taskId].data[0] = TRUE; + case CURSOR_AREA_MAP: + case CURSOR_AREA_CARD: + taskId = CreateTask(Task_PassAreaZoom, 0); + gTasks[taskId].tZoomOut = TRUE; break; - case 3: + case CURSOR_AREA_RECORD: default: - sPassData->unkE = 0; + sPassData->areaToShow = CURSOR_AREA_NOTHING; taskId = CreateTask(Task_HandleFrontierPassInput, 0); break; } @@ -889,19 +928,19 @@ static void CB2_ShowFrontierPassFeature(void) if (!HideFrontierPass()) return; - switch (sPassData->unkE) + switch (sPassData->areaToShow) { - case 1: + case CURSOR_AREA_MAP: ShowFrontierMap(CB2_ReshowFrontierPass); break; - case 3: + case CURSOR_AREA_RECORD: sSavedPassData.callback = sPassData->callback; sSavedPassData.cursorX = sPassData->cursorX; sSavedPassData.cursorY = sPassData->cursorY; FreeFrontierPassData(); PlayRecordedBattle(CB2_ReturnFromRecord); break; - case 2: + case CURSOR_AREA_CARD: ShowPlayerTrainerCard(CB2_ReshowFrontierPass); break; } @@ -914,22 +953,22 @@ static bool32 TryCallPassAreaFunction(u8 taskId, u8 cursorArea) case CURSOR_AREA_RECORD: if (!sPassData->hasBattleRecord) return FALSE; - sPassData->unkE = 3; + sPassData->areaToShow = CURSOR_AREA_RECORD; DestroyTask(taskId); SetMainCallback2(CB2_ShowFrontierPassFeature); break; case CURSOR_AREA_MAP: case CURSOR_AREA_CARD: - sPassData->unkE = cursorArea; - gTasks[taskId].func = Task_DoFadeEffect; - gTasks[taskId].data[0] = FALSE; + sPassData->areaToShow = cursorArea; + gTasks[taskId].func = Task_PassAreaZoom; + gTasks[taskId].tZoomOut = FALSE; break; default: return FALSE; } - sPassData->cursorX = sPassGfx->cursorSprite->pos1.x; - sPassData->cursorY = sPassGfx->cursorSprite->pos1.y; + sPassData->cursorX = sPassGfx->cursorSprite->x; + sPassData->cursorY = sPassGfx->cursorSprite->y; return TRUE; } @@ -937,33 +976,33 @@ static void Task_HandleFrontierPassInput(u8 taskId) { u8 var = FALSE; // Reused, first informs whether the cursor moves, then used as the new cursor area. - if (JOY_HELD(DPAD_UP) && sPassGfx->cursorSprite->pos1.y >= 9) + if (JOY_HELD(DPAD_UP) && sPassGfx->cursorSprite->y >= 9) { - sPassGfx->cursorSprite->pos1.y -= 2; - if (sPassGfx->cursorSprite->pos1.y <= 7) - sPassGfx->cursorSprite->pos1.y = 2; + sPassGfx->cursorSprite->y -= 2; + if (sPassGfx->cursorSprite->y <= 7) + sPassGfx->cursorSprite->y = 2; var = TRUE; } - if (JOY_HELD(DPAD_DOWN) && sPassGfx->cursorSprite->pos1.y <= 135) + if (JOY_HELD(DPAD_DOWN) && sPassGfx->cursorSprite->y <= 135) { - sPassGfx->cursorSprite->pos1.y += 2; - if (sPassGfx->cursorSprite->pos1.y >= 137) - sPassGfx->cursorSprite->pos1.y = 136; + sPassGfx->cursorSprite->y += 2; + if (sPassGfx->cursorSprite->y >= 137) + sPassGfx->cursorSprite->y = 136; var = TRUE; } - if (JOY_HELD(DPAD_LEFT) && sPassGfx->cursorSprite->pos1.x >= 6) + if (JOY_HELD(DPAD_LEFT) && sPassGfx->cursorSprite->x >= 6) { - sPassGfx->cursorSprite->pos1.x -= 2; - if (sPassGfx->cursorSprite->pos1.x <= 4) - sPassGfx->cursorSprite->pos1.x = 5; + sPassGfx->cursorSprite->x -= 2; + if (sPassGfx->cursorSprite->x <= 4) + sPassGfx->cursorSprite->x = 5; var = TRUE; } - if (JOY_HELD(DPAD_RIGHT) && sPassGfx->cursorSprite->pos1.x <= 231) + if (JOY_HELD(DPAD_RIGHT) && sPassGfx->cursorSprite->x <= 231) { - sPassGfx->cursorSprite->pos1.x += 2; - if (sPassGfx->cursorSprite->pos1.x >= 233) - sPassGfx->cursorSprite->pos1.x = 232; + sPassGfx->cursorSprite->x += 2; + if (sPassGfx->cursorSprite->x >= 233) + sPassGfx->cursorSprite->x = 232; var = TRUE; } @@ -998,83 +1037,98 @@ static void Task_HandleFrontierPassInput(u8 taskId) } else { - var = GetCursorAreaFromCoords(sPassGfx->cursorSprite->pos1.x - 5, sPassGfx->cursorSprite->pos1.y + 5); + var = GetCursorAreaFromCoords(sPassGfx->cursorSprite->x - 5, sPassGfx->cursorSprite->y + 5); if (sPassData->cursorArea != var) { PrintAreaDescription(var); sPassData->previousCursorArea = sPassData->cursorArea; sPassData->cursorArea = var; - sub_80C6104(sPassData->cursorArea, sPassData->previousCursorArea); + UpdateAreaHighlight(sPassData->cursorArea, sPassData->previousCursorArea); } } } -static void Task_DoFadeEffect(u8 taskId) +#define tScaleX data[1] +#define tScaleY data[2] +#define tScaleSpeedX data[3] +#define tScaleSpeedY data[4] + +// Zoom in/out for the Frontier map or the trainer card +static void Task_PassAreaZoom(u8 taskId) { s16 *data = gTasks[taskId].data; switch (sPassData->state) { case 0: - if (!data[0]) + // Initialize the zoom, start fading in/out + if (!tZoomOut) { - sub_80C5F58(TRUE, FALSE); - data[1] = Q_8_8(1); - data[2] = Q_8_8(1); - data[3] = 0x15; - data[4] = 0x15; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITE); + // Zooming in to map/card screen + ShowHideZoomingArea(TRUE, FALSE); + tScaleX = Q_8_8(1); + tScaleY = Q_8_8(1); + tScaleSpeedX = 0x15; + tScaleSpeedY = 0x15; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITE); } else { - data[1] = Q_8_8(1.984375); // 1 and 63/64 - data[2] = Q_8_8(1.984375); - data[3] = -0x15; - data[4] = -0x15; + // Zooming out of map/card screen back to frontier pass + tScaleX = Q_8_8(1.984375); // 1 and 63/64 + tScaleY = Q_8_8(1.984375); + tScaleSpeedX = -0x15; + tScaleSpeedY = -0x15; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); ShowBg(1); ShowBg(2); LoadCursorAndSymbolSprites(); - SetVBlankCallback(VblankCb_FrontierPass); - BlendPalettes(0xFFFFFFFF, 0x10, RGB_WHITE); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_WHITE); + SetVBlankCallback(VBlankCB_FrontierPass); + BlendPalettes(PALETTES_ALL, 16, RGB_WHITE); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITE); } - sPassGfx->setAffine = TRUE; - sPassGfx->unk2E = MathUtil_Inv16(data[1]); - sPassGfx->unk30 = MathUtil_Inv16(data[2]); + sPassGfx->zooming = TRUE; + sPassGfx->scaleX = MathUtil_Inv16(tScaleX); + sPassGfx->scaleY = MathUtil_Inv16(tScaleY); break; case 1: + // Update the fade and zoom UpdatePaletteFade(); - data[1] += data[3]; - data[2] += data[4]; - sPassGfx->unk2E = MathUtil_Inv16(data[1]); - sPassGfx->unk30 = MathUtil_Inv16(data[2]); - if (!data[0]) + tScaleX += tScaleSpeedX; + tScaleY += tScaleSpeedY; + sPassGfx->scaleX = MathUtil_Inv16(tScaleX); + sPassGfx->scaleY = MathUtil_Inv16(tScaleY); + + // Check if zoom hasn't reached target + if (!tZoomOut) { - if (data[1] <= Q_8_8(1.984375)) + if (tScaleX <= Q_8_8(1.984375)) return; } else { - if (data[1] != Q_8_8(1)) + if (tScaleX != Q_8_8(1)) return; } break; case 2: - if (sPassGfx->setAffine) // Nonsensical check. - sPassGfx->setAffine = FALSE; + if (sPassGfx->zooming) + sPassGfx->zooming = FALSE; if (UpdatePaletteFade()) return; - if (!data[0]) + + if (!tZoomOut) { + // Zoomed in and faded out, switch to map or trainer card DestroyTask(taskId); SetMainCallback2(CB2_ShowFrontierPassFeature); } else { - sub_80C5F58(FALSE, FALSE); - sPassData->unkE = 0; + // Zoomed out and faded in, return to frontier pass + ShowHideZoomingArea(FALSE, FALSE); + sPassData->areaToShow = CURSOR_AREA_NOTHING; gTasks[taskId].func = Task_HandleFrontierPassInput; } SetBgAttribute(2, BG_ATTR_WRAPAROUND, 0); @@ -1120,8 +1174,9 @@ static void ShowAndPrintWindows(void) static void PrintAreaDescription(u8 cursorArea) { FillWindowPixelBuffer(WINDOW_DESCRIPTION, PIXEL_FILL(0)); + if (cursorArea == CURSOR_AREA_RECORD && !sPassData->hasBattleRecord) - AddTextPrinterParameterized3(WINDOW_DESCRIPTION, 1, 2, 0, sTextColors[1], 0, sPassAreaDescriptions[0]); + AddTextPrinterParameterized3(WINDOW_DESCRIPTION, 1, 2, 0, sTextColors[1], 0, sPassAreaDescriptions[CURSOR_AREA_NOTHING]); else if (cursorArea != CURSOR_AREA_NOTHING) AddTextPrinterParameterized3(WINDOW_DESCRIPTION, 1, 2, 0, sTextColors[1], 0, sPassAreaDescriptions[cursorArea]); @@ -1129,19 +1184,19 @@ static void PrintAreaDescription(u8 cursorArea) CopyBgTilemapBufferToVram(0); } -static void sub_80C5F58(bool8 arg0, bool8 arg1) +static void ShowHideZoomingArea(bool8 show, bool8 zoomedIn) { - switch (sPassData->unkE) + switch (sPassData->areaToShow) { - case 1: - if (arg0) - CopyToBgTilemapBufferRect_ChangePalette(2, sPassGfx->unk20, 16, 3, 12, 7, 16); + case CURSOR_AREA_MAP: + if (show) + CopyToBgTilemapBufferRect_ChangePalette(2, sPassGfx->mapAndCardZoomTilemap, 16, 3, 12, 7, 16); else FillBgTilemapBufferRect(2, 0, 16, 3, 12, 7, 16); break; - case 2: - if (arg0) - CopyToBgTilemapBufferRect_ChangePalette(2, sPassGfx->unk20 + 84, 16, 10, 12, 7, 16); + case CURSOR_AREA_CARD: + if (show) + CopyToBgTilemapBufferRect_ChangePalette(2, sPassGfx->mapAndCardZoomTilemap + 84, 16, 10, 12, 7, 16); else FillBgTilemapBufferRect(2, 0, 16, 10, 12, 7, 16); break; @@ -1150,13 +1205,13 @@ static void sub_80C5F58(bool8 arg0, bool8 arg1) } CopyBgTilemapBufferToVram(2); - if (arg1) + if (zoomedIn) { SetBgAffine(2, - gUnknown_085713E0[sPassData->unkE - 1][0] << 8, - gUnknown_085713E0[sPassData->unkE - 1][1] << 8, - gUnknown_085713E0[sPassData->unkE - 1][0], - gUnknown_085713E0[sPassData->unkE - 1][1], + sBgAffineCoords[sPassData->areaToShow - 1][0] << 8, + sBgAffineCoords[sPassData->areaToShow - 1][1] << 8, + sBgAffineCoords[sPassData->areaToShow - 1][0], + sBgAffineCoords[sPassData->areaToShow - 1][1], MathUtil_Inv16(Q_8_8(1.984375)), // 1 and 63/64 MathUtil_Inv16(Q_8_8(1.984375)), 0); @@ -1164,71 +1219,75 @@ static void sub_80C5F58(bool8 arg0, bool8 arg1) else { SetBgAffine(2, - gUnknown_085713E0[sPassData->unkE - 1][0] << 8, - gUnknown_085713E0[sPassData->unkE - 1][1] << 8, - gUnknown_085713E0[sPassData->unkE - 1][0], - gUnknown_085713E0[sPassData->unkE - 1][1], + sBgAffineCoords[sPassData->areaToShow - 1][0] << 8, + sBgAffineCoords[sPassData->areaToShow - 1][1] << 8, + sBgAffineCoords[sPassData->areaToShow - 1][0], + sBgAffineCoords[sPassData->areaToShow - 1][1], MathUtil_Inv16(Q_8_8(1)), MathUtil_Inv16(Q_8_8(1)), 0); } } -static void sub_80C6104(u8 cursorArea, u8 previousCursorArea) +static void UpdateAreaHighlight(u8 cursorArea, u8 previousCursorArea) { + #define NON_HIGHLIGHT_AREA(area)((area) == CURSOR_AREA_NOTHING || (area) > CURSOR_AREA_CANCEL) + + // If moving off highlightable area, unhighlight it switch (previousCursorArea) { case CURSOR_AREA_MAP: - CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->unk24, 16, 3, 12, 7, 17); + CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->mapAndCardTilemap, 16, 3, 12, 7, 17); break; case CURSOR_AREA_CARD: - CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->unk24 + 336, 16, 10, 12, 7, 17); + CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->mapAndCardTilemap + 336, 16, 10, 12, 7, 17); break; case CURSOR_AREA_RECORD: if (sPassData->hasBattleRecord) - CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->unk28, 2, 10, 12, 3, 17); - else if (cursorArea == CURSOR_AREA_NOTHING || cursorArea > CURSOR_AREA_CANCEL) + CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->battleRecordTilemap, 2, 10, 12, 3, 17); + else if (NON_HIGHLIGHT_AREA(cursorArea)) return; break; case CURSOR_AREA_CANCEL: - CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_08DE3350, 21, 0, 9, 2, 17); + CopyToBgTilemapBufferRect_ChangePalette(1, gFrontierPassCancelButton_Tilemap, 21, 0, 9, 2, 17); break; default: - if (cursorArea == CURSOR_AREA_NOTHING || cursorArea > CURSOR_AREA_CANCEL) + if (NON_HIGHLIGHT_AREA(cursorArea)) return; break; } + // If moving on to highlightable area, highlight it switch (cursorArea) { case CURSOR_AREA_MAP: - CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->unk24 + 168, 16, 3, 12, 7, 17); + CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->mapAndCardTilemap + 168, 16, 3, 12, 7, 17); break; case CURSOR_AREA_CARD: - CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->unk24 + 504, 16, 10, 12, 7, 17); + CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->mapAndCardTilemap + 504, 16, 10, 12, 7, 17); break; case CURSOR_AREA_RECORD: if (sPassData->hasBattleRecord) - CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->unk28 + 72, 2, 10, 12, 3, 17); + CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->battleRecordTilemap + 72, 2, 10, 12, 3, 17); else return; - break; //needed to match + break; case CURSOR_AREA_CANCEL: - CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_08DE3374, 21, 0, 9, 2, 17); + CopyToBgTilemapBufferRect_ChangePalette(1, gFrontierPassCancelButtonHighlighted_Tilemap, 21, 0, 9, 2, 17); break; default: - if (previousCursorArea == CURSOR_AREA_NOTHING || previousCursorArea > CURSOR_AREA_CANCEL) + if (NON_HIGHLIGHT_AREA(previousCursorArea)) return; } CopyBgTilemapBufferToVram(1); } -static void sub_80C629C(void) +static void DrawFrontierPassBg(void) { - CopyToBgTilemapBuffer(1, gUnknown_08DE3060, 0, 0); - sub_80C6104(sPassData->cursorArea, sPassData->previousCursorArea); - sub_80C5F58(TRUE, sPassData->unkE); + CopyToBgTilemapBuffer(1, gFrontierPassBg_Tilemap, 0, 0); + UpdateAreaHighlight(sPassData->cursorArea, sPassData->previousCursorArea); + ShowHideZoomingArea(TRUE, sPassData->areaToShow); // If returning to frontier pass from map/card (areaToShow will be != 0) ShowAndPrintWindows(); CopyBgTilemapBufferToVram(1); } @@ -1253,7 +1312,7 @@ static void LoadCursorAndSymbolSprites(void) { struct SpriteTemplate sprite = sSpriteTemplate_Medal; - sprite.paletteTag += sPassData->facilitySymbols[i] - 1; + sprite.paletteTag += sPassData->facilitySymbols[i] - 1; // Adds 1 if gold for TAG_MEDAL_GOLD spriteId = CreateSprite(&sprite, sPassAreasLayout[i + CURSOR_AREA_SYMBOL - 1].xStart + 8, sPassAreasLayout[i + CURSOR_AREA_SYMBOL - 1].yStart + 6, i + 1); sPassGfx->symbolSprites[i] = &gSprites[spriteId]; sPassGfx->symbolSprites[i]->oam.priority = 2; @@ -1277,11 +1336,11 @@ static void FreeCursorAndSymbolSprites(void) } } FreeAllSpritePalettes(); - FreeSpriteTilesByTag(2); - FreeSpriteTilesByTag(0); + FreeSpriteTilesByTag(TAG_MEDAL_SILVER); + FreeSpriteTilesByTag(TAG_CURSOR); } -static void SpriteCb_Dummy(struct Sprite *sprite) +static void SpriteCB_PlayerHead(struct Sprite *sprite) { } @@ -1349,14 +1408,14 @@ static bool32 InitFrontierMap(void) InitWindows(sMapWindowTemplates); DeactivateAllTextPrinters(); PrintOnFrontierMap(); - DecompressAndCopyTileDataToVram(1, gUnknown_0856FBBC, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, sMapScreen_Gfx, 0, 0, 0); break; case 5: if (FreeTempTileDataBuffersIfPossible()) return FALSE; - LoadPalette(gUnknown_08DE07C8[0], 0, 0x1A0); + LoadPalette(gFrontierPassBg_Pal[0], 0, 0x1A0); LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); - CopyToBgTilemapBuffer(2, gUnknown_08570E00, 0, 0); + CopyToBgTilemapBuffer(2, sMapScreen_Tilemap, 0, 0); CopyBgTilemapBufferToVram(2); break; case 6: @@ -1365,9 +1424,9 @@ static bool32 InitFrontierMap(void) ShowBg(1); ShowBg(2); InitFrontierMapSprites(); - SetVBlankCallback(VblankCb_FrontierPass); - BlendPalettes(0xFFFFFFFF, 0x10, RGB_WHITE); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_WHITE); + SetVBlankCallback(VBlankCB_FrontierPass); + BlendPalettes(PALETTES_ALL, 16, RGB_WHITE); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITE); break; case 7: if (UpdatePaletteFade()) @@ -1385,7 +1444,7 @@ static bool32 ExitFrontierMap(void) switch (sPassData->state) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITE); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITE); break; case 1: if (UpdatePaletteFade()) @@ -1404,17 +1463,17 @@ static bool32 ExitFrontierMap(void) if (sMapData->cursorSprite != NULL) { DestroySprite(sMapData->cursorSprite); - FreeSpriteTilesByTag(0); + FreeSpriteTilesByTag(TAG_CURSOR); } if (sMapData->mapIndicatorSprite != NULL) { DestroySprite(sMapData->mapIndicatorSprite); - FreeSpriteTilesByTag(1); + FreeSpriteTilesByTag(TAG_MAP_INDICATOR); } if (sMapData->playerHeadSprite != NULL) { DestroySprite(sMapData->playerHeadSprite); - FreeSpriteTilesByTag(4); + FreeSpriteTilesByTag(TAG_HEAD_MALE); } FreeAllWindowBuffers(); break; @@ -1435,11 +1494,14 @@ static bool32 ExitFrontierMap(void) return FALSE; } +#define tState data[0] +#define tMoveSteps data[1] + static void Task_HandleFrontierMap(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: if (InitFrontierMap()) @@ -1449,47 +1511,47 @@ static void Task_HandleFrontierMap(u8 taskId) if (JOY_NEW(B_BUTTON)) { PlaySE(SE_PC_OFF); - data[0] = 4; + tState = 4; } else if (JOY_NEW(DPAD_DOWN)) { if (sMapData->cursorPos >= NUM_FRONTIER_FACILITIES - 1) HandleFrontierMapCursorMove(0); else - data[0] = 2; + tState = 2; } else if (JOY_NEW(DPAD_UP)) { if (sMapData->cursorPos == 0) HandleFrontierMapCursorMove(1); else - data[0] = 3; + tState = 3; } return; case 2: - if (data[1] > 3) + if (tMoveSteps > 3) { HandleFrontierMapCursorMove(0); - data[1] = 0; - data[0] = 1; + tMoveSteps = 0; + tState = 1; } else { - sMapData->cursorSprite->pos1.y += 4; - data[1]++; + sMapData->cursorSprite->y += 4; + tMoveSteps++; } return; case 3: - if (data[1] > 3) + if (tMoveSteps > 3) { HandleFrontierMapCursorMove(1); - data[1] = 0; - data[0] = 1; + tMoveSteps = 0; + tState = 1; } else { - sMapData->cursorSprite->pos1.y -= 4; - data[1]++; + sMapData->cursorSprite->y -= 4; + tMoveSteps++; } return; case 4: @@ -1502,31 +1564,42 @@ static void Task_HandleFrontierMap(u8 taskId) return; } - data[0]++; + tState++; } static u8 MapNumToFrontierFacilityId(u16 mapNum) // id + 1, zero means not a frontier map number { + // In Battle Tower if ((mapNum >= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_LOBBY) && mapNum <= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM)) - || (mapNum >= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM) && mapNum <= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM))) + || (mapNum >= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM) && mapNum <= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM))) return FRONTIER_FACILITY_TOWER + 1; + + // In Battle Dome else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_DOME_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM)) return FRONTIER_FACILITY_DOME + 1; + + // In Battle Palace else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PALACE_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM)) return FRONTIER_FACILITY_PALACE + 1; + + // In Battle Arena else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_ARENA_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM)) return FRONTIER_FACILITY_ARENA + 1; + + // In Battle Factory else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM)) return FRONTIER_FACILITY_FACTORY + 1; + + // In Battle Pike else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM) @@ -1534,10 +1607,13 @@ static u8 MapNumToFrontierFacilityId(u16 mapNum) // id + 1, zero means not a fro || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS)) return FRONTIER_FACILITY_PIKE + 1; + + // In Battle Pyramid else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR) || mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_PYRAMID_TOP)) return FRONTIER_FACILITY_PYRAMID + 1; + else return 0; } @@ -1606,8 +1682,8 @@ static void InitFrontierMapSprites(void) } LoadCompressedSpriteSheet(sHeadsSpriteSheet); - sprite = sSpriteTemplate_Head; - sprite.paletteTag = gSaveBlock2Ptr->playerGender + 4; + sprite = sSpriteTemplate_PlayerHead; + sprite.paletteTag = gSaveBlock2Ptr->playerGender + TAG_HEAD_MALE; // TAG_HEAD_FEMALE if gender is FEMALE if (id != 0) { spriteId = CreateSprite(&sprite, x, y, 0); @@ -1670,15 +1746,15 @@ static void HandleFrontierMapCursorMove(u8 direction) AddTextPrinterParameterized3(MAP_WINDOW_NAME, 7, 4, (oldCursorPos * 16) + 1, sTextColors[1], 0, sMapLandmarks[oldCursorPos].name); AddTextPrinterParameterized3(MAP_WINDOW_NAME, 7, 4, (sMapData->cursorPos * 16) + 1, sTextColors[2], 0, sMapLandmarks[sMapData->cursorPos].name); - sMapData->cursorSprite->pos1.y = (sMapData->cursorPos * 16) + 8; + sMapData->cursorSprite->y = (sMapData->cursorPos * 16) + 8; StartSpriteAnim(sMapData->mapIndicatorSprite, sMapLandmarks[sMapData->cursorPos].animNum); - sMapData->mapIndicatorSprite->pos1.x = sMapLandmarks[sMapData->cursorPos].x; - sMapData->mapIndicatorSprite->pos1.y = sMapLandmarks[sMapData->cursorPos].y; + sMapData->mapIndicatorSprite->x = sMapLandmarks[sMapData->cursorPos].x; + sMapData->mapIndicatorSprite->y = sMapLandmarks[sMapData->cursorPos].y; FillWindowPixelBuffer(MAP_WINDOW_DESCRIPTION, PIXEL_FILL(0)); AddTextPrinterParameterized3(MAP_WINDOW_DESCRIPTION, 1, 4, 0, sTextColors[0], 0, sMapLandmarks[sMapData->cursorPos].description); - for (i = 0; i < 3; i++) + for (i = 0; i < MAP_WINDOW_COUNT; i++) CopyWindowToVram(i, 3); CopyBgTilemapBufferToVram(0); diff --git a/src/frontier_util.c b/src/frontier_util.c index 021e7f6ed7..42271ec958 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -129,7 +129,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_RAIKOU, .heldItem = ITEM_LUM_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_MODEST, .evs = {158, 0, 252, 100, 0, 0}, .moves = {MOVE_THUNDERBOLT, MOVE_CALM_MIND, MOVE_REFLECT, MOVE_REST}, @@ -137,7 +137,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_LATIOS, .heldItem = ITEM_BRIGHT_POWDER, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_MODEST, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_RECOVER, MOVE_DRAGON_CLAW}, @@ -145,7 +145,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_SNORLAX, .heldItem = ITEM_CHESTO_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_ADAMANT, .evs = {252, 252, 0, 0, 6, 0}, .moves = {MOVE_CURSE, MOVE_RETURN, MOVE_REST, MOVE_SHADOW_BALL}, @@ -186,7 +186,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_SWAMPERT, .heldItem = ITEM_LEFTOVERS, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_BRAVE, .evs = {252, 252, 6, 0, 0, 0}, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, @@ -194,7 +194,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_METAGROSS, .heldItem = ITEM_QUICK_CLAW, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_BRAVE, .evs = {252, 252, 6, 0, 0, 0}, .moves = {MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_EARTHQUAKE, MOVE_PROTECT}, @@ -202,7 +202,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_LATIAS, .heldItem = ITEM_CHESTO_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_MODEST, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_REST}, @@ -243,7 +243,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_ARCANINE, .heldItem = ITEM_WHITE_HERB, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_HASTY, .evs = {6, 252, 252, 0, 0, 0}, .moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_ROAR, MOVE_PROTECT}, @@ -251,7 +251,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_SLAKING, .heldItem = ITEM_SCOPE_LENS, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_HARDY, .evs = {6, 252, 0, 252, 0, 0}, .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_YAWN}, @@ -259,7 +259,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_SUICUNE, .heldItem = ITEM_KINGS_ROCK, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_HASTY, .evs = {252, 0, 252, 6, 0, 0}, .moves = {MOVE_BLIZZARD, MOVE_SURF, MOVE_BITE, MOVE_CALM_MIND}, @@ -300,7 +300,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_UMBREON, .heldItem = ITEM_CHESTO_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_CALM, .evs = {252, 0, 0, 0, 252, 6}, .moves = {MOVE_DOUBLE_EDGE, MOVE_CONFUSE_RAY, MOVE_REST, MOVE_PSYCHIC}, @@ -308,7 +308,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_GENGAR, .heldItem = ITEM_LEFTOVERS, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_MODEST, .evs = {252, 0, 252, 0, 6, 0}, .moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_DESTINY_BOND}, @@ -316,7 +316,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_BRELOOM, .heldItem = ITEM_LUM_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_JOLLY, .evs = {6, 252, 0, 252, 0, 0}, .moves = {MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_HEADBUTT}, @@ -331,7 +331,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_METANG, .heldItem = ITEM_SITRUS_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_BRAVE, .evs = {0, 252, 252, 0, 6, 0}, .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW}, @@ -339,7 +339,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_SKARMORY, .heldItem = ITEM_SITRUS_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_IMPISH, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING}, @@ -347,7 +347,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_AGGRON, .heldItem = ITEM_SITRUS_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_ADAMANT, .evs = {0, 252, 0, 0, 252, 6}, .moves = {MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW}, @@ -357,7 +357,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_METANG, .heldItem = ITEM_SITRUS_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_BRAVE, .evs = {0, 252, 252, 0, 6, 0}, .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW}, @@ -365,7 +365,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_SKARMORY, .heldItem = ITEM_SITRUS_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_IMPISH, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING}, @@ -373,7 +373,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_AGGRON, .heldItem = ITEM_SITRUS_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_ADAMANT, .evs = {0, 252, 0, 0, 252, 6}, .moves = {MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW}, @@ -414,7 +414,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_SEVIPER, .heldItem = ITEM_FOCUS_BAND, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_BOLD, .evs = {252, 0, 0, 0, 252, 6}, .moves = {MOVE_SWAGGER, MOVE_CRUNCH, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN}, @@ -422,7 +422,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_STEELIX, .heldItem = ITEM_BRIGHT_POWDER, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_BRAVE, .evs = {252, 0, 0, 0, 6, 252}, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_EXPLOSION, MOVE_SCREECH}, @@ -430,7 +430,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_GYARADOS, .heldItem = ITEM_CHESTO_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_ADAMANT, .evs = {252, 6, 0, 0, 0, 252}, .moves = {MOVE_DRAGON_DANCE, MOVE_RETURN, MOVE_ROAR, MOVE_REST}, @@ -471,7 +471,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_ARTICUNO, .heldItem = ITEM_SCOPE_LENS, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_BLIZZARD, MOVE_WATER_PULSE, MOVE_AERIAL_ACE, MOVE_REFLECT}, @@ -479,7 +479,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_ZAPDOS, .heldItem = ITEM_LUM_BERRY, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_THUNDER, MOVE_DETECT, MOVE_DRILL_PECK, MOVE_LIGHT_SCREEN}, @@ -487,7 +487,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ { .species = SPECIES_MOLTRES, .heldItem = ITEM_BRIGHT_POWDER, - .fixedIV = 31, + .fixedIV = MAX_PER_STAT_IVS, .nature = NATURE_MILD, .evs = {6, 0, 252, 252, 0, 0}, .moves = {MOVE_FIRE_BLAST, MOVE_HYPER_BEAM, MOVE_AERIAL_ACE, MOVE_SAFEGUARD}, @@ -1513,9 +1513,9 @@ static void ShowLinkContestResultsWindow(void) AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Smart, x, 89, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Tough, x, 105, TEXT_SPEED_FF, NULL); - for (i = 0; i < 5; i++) + for (i = 0; i < CONTEST_CATEGORIES_COUNT; i++) { - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { ConvertIntToDecimalStringN(gStringVar4, gSaveBlock2Ptr->contestLinkResults[i][j], STR_CONV_MODE_RIGHT_ALIGN, 4); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, (j * 38) + 64, (i * 16) + 41, TEXT_SPEED_FF, NULL); @@ -1552,16 +1552,16 @@ static void CheckPutFrontierTVShowOnAir(void) switch (battleMode) { case FRONTIER_MODE_SINGLES: - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 1); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_TOWER_SINGLES); break; case FRONTIER_MODE_DOUBLES: - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 2); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_TOWER_DOUBLES); break; case FRONTIER_MODE_MULTIS: - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 3); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_TOWER_MULTIS); break; case FRONTIER_MODE_LINK_MULTIS: - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], 4); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_TOWER_LINK_MULTIS); break; } } @@ -1575,9 +1575,9 @@ static void CheckPutFrontierTVShowOnAir(void) && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 5); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_DOME_SINGLES); else - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], 6); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_DOME_DOUBLES); } } break; @@ -1589,9 +1589,9 @@ static void CheckPutFrontierTVShowOnAir(void) && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 11); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_PALACE_SINGLES); else - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], 12); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_PALACE_DOUBLES); } } break; @@ -1602,7 +1602,7 @@ static void CheckPutFrontierTVShowOnAir(void) if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 1 && ShouldAirFrontierTVShow()) { - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], 10); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode], FRONTIER_SHOW_ARENA); } } break; @@ -1615,9 +1615,9 @@ static void CheckPutFrontierTVShowOnAir(void) && ShouldAirFrontierTVShow()) { if (battleMode == FRONTIER_MODE_SINGLES) - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 7); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_FACTORY_SINGLES); else - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], 8); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode], FRONTIER_SHOW_FACTORY_DOUBLES); } } break; @@ -1628,7 +1628,7 @@ static void CheckPutFrontierTVShowOnAir(void) if (gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] > 1 && ShouldAirFrontierTVShow()) { - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], 9); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode], FRONTIER_SHOW_PIKE); } } break; @@ -1639,7 +1639,7 @@ static void CheckPutFrontierTVShowOnAir(void) if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > 1 && ShouldAirFrontierTVShow()) { - TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], 13); + TryPutFrontierTVShowOnAir(gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode], FRONTIER_SHOW_PYRAMID); } } break; @@ -2383,13 +2383,13 @@ void ClearRankingHallRecords(void) { s32 i, j, k; - // BUG: Passing 0 as a pointer instead of a pointer holding a value of 0. - #ifdef BUGFIX - u8 zero = 0; - #define ZERO (&zero) - #else + // UB: Passing 0 as a pointer instead of a pointer holding a value of 0. +#ifdef UBFIX + u8 emptyId[TRAINER_ID_LENGTH] = {0}; + #define ZERO emptyId +#else #define ZERO 0 - #endif +#endif for (i = 0; i < HALL_FACILITIES_COUNT; i++) { diff --git a/src/graphics.c b/src/graphics.c index c7eff52374..4c648a4795 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -786,11 +786,11 @@ const u8 gContestSliderHeart_Gfx[] = INCBIN_U8("graphics/contest/slider_heart.4b const u32 gUnknownGfx_C19470[] = INCBIN_U32("graphics/unknown/unknown_C19470.4bpp.lz"); const u32 gUnknownPal_C19470[] = INCBIN_U32("graphics/unknown/unknown_C19470.gbapal.lz"); -const u32 gContestResults_Gfx[] = INCBIN_U32("graphics/contest/results_screen.4bpp.lz"); -const u32 gUnknown_08C19EEC[] = INCBIN_U32("graphics/contest/misc_2_tilemap_1.bin.lz"); -const u32 gUnknown_08C1A000[] = INCBIN_U32("graphics/contest/misc_2_tilemap_2.bin.lz"); -const u32 gUnknown_08C1A12C[] = INCBIN_U32("graphics/contest/misc_2_tilemap_3.bin.lz"); -const u32 gContestResults_Pal[] = INCBIN_U32("graphics/contest/results_screen.gbapal.lz"); +const u32 gContestResults_Gfx[] = INCBIN_U32("graphics/contest/results_screen/tiles.4bpp.lz"); +const u32 gContestResults_WinnerBanner_Tilemap[] = INCBIN_U32("graphics/contest/results_screen/winner_banner.bin.lz"); +const u32 gContestResults_Interface_Tilemap[] = INCBIN_U32("graphics/contest/results_screen/interface.bin.lz"); +const u32 gContestResults_Bg_Tilemap[] = INCBIN_U32("graphics/contest/results_screen/bg.bin.lz"); +const u32 gContestResults_Pal[] = INCBIN_U32("graphics/contest/results_screen/tiles.gbapal.lz"); const u32 gBattleAnimSpriteGfx_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.4bpp.lz"); const u32 gBattleAnimSpritePal_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.gbapal.lz"); @@ -983,8 +983,8 @@ const u32 gBattleAnimSpritePal_FangAttack[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleAnimSpriteGfx_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.4bpp.lz"); const u32 gBattleAnimSpritePal_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.gbapal.lz"); -const u32 gUnknown_08C20668[] = INCBIN_U32("graphics/battle_anims/masks/curse.4bpp.lz"); -const u32 gUnknown_08C20684[] = INCBIN_U32("graphics/battle_anims/masks/curse.bin.lz"); +const u32 gBattleAnimMaskImage_Curse[] = INCBIN_U32("graphics/battle_anims/masks/curse.4bpp.lz"); +const u32 gBattleAnimMaskTilemap_Curse[] = INCBIN_U32("graphics/battle_anims/masks/curse.bin.lz"); const u32 gBattleAnimSpriteGfx_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.4bpp.lz"); const u32 gBattleAnimSpritePal_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.gbapal.lz"); @@ -1182,8 +1182,8 @@ const u32 gBattleAnimSpriteGfx_Confetti[] = INCBIN_U32("graphics/battle_anims/sp const u32 gBattleAnimSpritePal_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.gbapal.lz"); const u32 gSubstituteDollPal[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.gbapal.lz"); -const u32 gSubstituteDollGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.4bpp.lz"); -const u32 gSubstituteDollTilemap[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.bin.lz"); +const u32 gSubstituteDollFrontGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.4bpp.lz"); +const u32 gSubstituteDollBackGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute_back.4bpp.lz"); const u32 gBattleAnimSpriteGfx_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.4bpp.lz"); const u32 gBattleAnimSpritePal_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.gbapal.lz"); @@ -1226,8 +1226,8 @@ const u32 gBattleAnimSpriteGfx_TagHand[] = INCBIN_U32("graphics/battle_anims/spr const u32 gBattleAnimSpriteGfx_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz"); -const u32 gUnknown_08C2EA50[] = INCBIN_U32("graphics/battle_anims/masks/unknown_C2EA50.4bpp.lz"); -const u32 gUnknown_08C2EA9C[] = INCBIN_U32("graphics/battle_anims/masks/unknown_C2EA50.bin.lz"); +const u32 UnusedLevelupAnimationGfx[] = INCBIN_U32("graphics/battle_anims/masks/unused_level_up.4bpp.lz"); +const u32 UnusedLevelupAnimationTilemap[] = INCBIN_U32("graphics/battle_anims/masks/unused_level_up.bin.lz"); const u32 gBattleAnimSpriteGfx_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz"); const u32 gBattleAnimSpritePal_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz"); @@ -1717,7 +1717,7 @@ const u32 gPokeblockBlack_Pal[] = INCBIN_U32("graphics/pokeblock/black.gbapal.lz const u32 gPokeblockWhite_Pal[] = INCBIN_U32("graphics/pokeblock/white.gbapal.lz"); const u32 gPokeblockGold_Pal[] = INCBIN_U32("graphics/pokeblock/gold.gbapal.lz"); -const u32 gUnknown_08D9BA44[] = INCBIN_U32("graphics/interface/pokeblock_feeding_bg_map.bin.lz"); +const u32 gPokeblockFeedBg_Tilemap[] = INCBIN_U32("graphics/interface/pokeblock_feeding_bg_map.bin.lz"); #include "data/graphics/berries.h" #include "data/graphics/rayquaza_scene.h" @@ -1812,17 +1812,17 @@ const u8 gBagMenuHMIcon_Gfx[] = INCBIN_U8("graphics/interface/hm.4bpp"); // contest results screen -const u16 gNormalContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_normal.bin"); -const u16 gSuperContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_super.bin"); -const u16 gHyperContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_hyper.bin"); -const u16 gMasterContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_master.bin"); -const u16 gLinkContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_link.bin"); -const u16 gCoolContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_cool.bin"); -const u16 gBeautyContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_beauty.bin"); -const u16 gCuteContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_cute.bin"); -const u16 gSmartContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_smart.bin"); -const u16 gToughContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen_tough.bin"); -const u16 gContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_screen.bin"); +const u16 gContestResultsTitle_Normal_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_normal.bin"); +const u16 gContestResultsTitle_Super_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_super.bin"); +const u16 gContestResultsTitle_Hyper_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_hyper.bin"); +const u16 gContestResultsTitle_Master_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_master.bin"); +const u16 gContestResultsTitle_Link_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_link.bin"); +const u16 gContestResultsTitle_Cool_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_cool.bin"); +const u16 gContestResultsTitle_Beauty_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_beauty.bin"); +const u16 gContestResultsTitle_Cute_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_cute.bin"); +const u16 gContestResultsTitle_Smart_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_smart.bin"); +const u16 gContestResultsTitle_Tough_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title_tough.bin"); +const u16 gContestResultsTitle_Tilemap[] = INCBIN_U16("graphics/contest/results_screen/title.bin"); // pokenav @@ -1862,8 +1862,8 @@ const u32 gRegionMapCityZoomText_Gfx[] = INCBIN_U32("graphics/pokenav/city_zoom_ const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/condition/cancel.gbapal"); const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/condition/cancel.4bpp"); -const u16 gPokenavConditionMarker_Pal[] = INCBIN_U16("graphics/pokenav/condition/marker.gbapal"); -const u8 gPokenavConditionMarker_Gfx[] = INCBIN_U8("graphics/pokenav/condition/marker.4bpp"); +const u16 gMonMarkingsMenu_Pal[] = INCBIN_U16("graphics/misc/mon_markings_menu.gbapal"); +const u8 gMonMarkingsMenu_Gfx[] = INCBIN_U8("graphics/misc/mon_markings_menu.4bpp"); const u16 gBerryBlenderMiscPalette[] = INCBIN_U16("graphics/berry_blender/misc.gbapal"); const u16 gBerryBlenderArrowPalette[] = INCBIN_U16("graphics/berry_blender/arrow.gbapal"); @@ -1877,11 +1877,11 @@ static const u8 sEmpty1[0x200] = {0}; const u8 gBerryBlenderPlayerArrow_Gfx[] = INCBIN_U8("graphics/berry_blender/arrow.4bpp"); static const u8 sEmpty2[0x2C0] = {0}; -const u16 gEasyChatCursor_Pal[] = INCBIN_U16("graphics/easy_chat/cursor.gbapal"); -const u32 gEasyChatCursor_Gfx[] = INCBIN_U32("graphics/easy_chat/cursor.4bpp.lz"); +const u16 gEasyChatRectangleCursor_Pal[] = INCBIN_U16("graphics/easy_chat/rectangle_cursor.gbapal"); +const u32 gEasyChatRectangleCursor_Gfx[] = INCBIN_U32("graphics/easy_chat/rectangle_cursor.4bpp.lz"); -const u16 gEasyChatRightWindow_Pal[] = INCBIN_U16("graphics/easy_chat/rwindow.gbapal"); -const u32 gEasyChatRightWindow_Gfx[] = INCBIN_U32("graphics/easy_chat/rwindow.4bpp.lz"); +const u16 gEasyChatButtonWindow_Pal[] = INCBIN_U16("graphics/easy_chat/button_window.gbapal"); +const u32 gEasyChatButtonWindow_Gfx[] = INCBIN_U32("graphics/easy_chat/button_window.4bpp.lz"); const u32 gEasyChatMode_Gfx[] = INCBIN_U32("graphics/easy_chat/mode.4bpp.lz"); const u16 gEasyChatMode_Pal[] = INCBIN_U16("graphics/easy_chat/mode.gbapal"); @@ -1927,9 +1927,9 @@ const u32 gKantoTrainerCardFrontLink_Tilemap[] = INCBIN_U32("graphics/trainer_ca // pokemon storage system -const u32 gPSSMenu_Gfx[] = INCBIN_U32("graphics/pokemon_storage/menu.4bpp.lz"); -const u16 gPSSMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/menu.gbapal"); -const u32 gUnknown_08DD36C8[] = INCBIN_U32("graphics/unknown/unknown_DD36C8.bin.lz"); +const u32 gStorageSystemMenu_Gfx[] = INCBIN_U32("graphics/pokemon_storage/menu.4bpp.lz"); +const u16 gStorageSystemPartyMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/menu.gbapal"); // Only used by party menu, but generated from all menu gfx +const u32 gStorageSystemPartyMenu_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/party_menu.bin.lz"); // naming screen @@ -1990,9 +1990,9 @@ static const u16 sEmptyPal[16] = {0}; // Trade const u16 gTradeMenu_Pal[] = INCBIN_U16("graphics/trade/menu.gbapal"); -const u16 gUnknown_08DDB444[] = INCBIN_U16("graphics/trade/unknown_DDB444.gbapal"); +const u16 gTradeCursor_Pal[] = INCBIN_U16("graphics/trade/cursor.gbapal"); const u8 gTradeMenu_Gfx[] = INCBIN_U8("graphics/trade/menu.4bpp"); -const u8 gTradeButtons_Gfx[] = INCBIN_U8("graphics/trade/buttons.4bpp"); +const u8 gTradeCursor_Gfx[] = INCBIN_U8("graphics/trade/cursor.4bpp"); const u16 gUnused_DDCEE4[] = INCBIN_U16("graphics/unused/unused_DDCEE4.bin"); const u16 gUnknown_08DDCF04[] = INCBIN_U16("graphics/trade/unknown_DDCF04.bin"); const u16 gTradeMenuMonBox_Tilemap[] = INCBIN_U16("graphics/trade/menu_mon_box.bin"); @@ -2000,33 +2000,31 @@ const u16 gTradeMenuMonBox_Tilemap[] = INCBIN_U16("graphics/trade/menu_mon_box.b const u16 gMessageBox_Pal[] = INCBIN_U16("graphics/text_window/message_box.gbapal"); const u8 gMessageBox_Gfx[] = INCBIN_U8("graphics/text_window/message_box.4bpp"); -const u32 gWallpaperIcon_Cross[] = INCBIN_U32("graphics/pokemon_storage/cross_icon.4bpp.lz"); -const u32 gWallpaperIcon_Bolt[] = INCBIN_U32("graphics/pokemon_storage/bolt_icon.4bpp.lz"); -const u32 gWallpaperIcon_Plusle[] = INCBIN_U32("graphics/pokemon_storage/plusle_icon.4bpp.lz"); +const u32 gWallpaperIcon_Cross[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/cross.4bpp.lz"); +const u32 gWallpaperIcon_Bolt[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/bolt.4bpp.lz"); +const u32 gWallpaperIcon_Plusle[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/plusle.4bpp.lz"); const u16 gWallpaperPalettes_Horizontal[][16] = { - INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), - INCBIN_U16("graphics/pokemon_storage/horizontal_bg.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/friends_frame2.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/horizontal/bg.gbapal"), }; -const u32 gWallpaperTiles_Horizontal[] = INCBIN_U32("graphics/pokemon_storage/horizontal.4bpp.lz"); -const u32 gWallpaperTilemap_Horizontal[] = INCBIN_U32("graphics/pokemon_storage/horizontal.bin.lz"); +const u32 gWallpaperTiles_Horizontal[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/horizontal/tiles.4bpp.lz"); +const u32 gWallpaperTilemap_Horizontal[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/horizontal/tilemap.bin.lz"); const u16 gWallpaperPalettes_Ribbon[][16] = { - INCBIN_U16("graphics/pokemon_storage/ribbon_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/ribbon_bg.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/ribbon/frame.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/ribbon/bg.gbapal"), }; -const u32 gWallpaperTiles_Ribbon[] = INCBIN_U32("graphics/pokemon_storage/ribbon.4bpp.lz"); -const u32 gWallpaperTilemap_Ribbon[] = INCBIN_U32("graphics/pokemon_storage/ribbon.bin.lz"); +const u32 gWallpaperTiles_Ribbon[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/ribbon/tiles.4bpp.lz"); +const u32 gWallpaperTilemap_Ribbon[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/ribbon/tilemap.bin.lz"); -// pokenav - -const u16 gUnknown_08DDE010[] = INCBIN_U16("graphics/pokenav/ribbons.gbapal"); -const u32 gUnknown_08DDE030[] = INCBIN_U32("graphics/pokenav/ribbons.4bpp.lz"); -const u32 gUnknown_08DDE12C[] = INCBIN_U32("graphics/pokenav/ribbons.bin.lz"); +const u16 gPokenavRibbonsSummaryBg_Pal[] = INCBIN_U16("graphics/pokenav/ribbons/summary_bg.gbapal"); +const u32 gPokenavRibbonsSummaryBg_Gfx[] = INCBIN_U32("graphics/pokenav/ribbons/summary_bg.4bpp.lz"); +const u32 gPokenavRibbonsSummaryBg_Tilemap[] = INCBIN_U32("graphics/pokenav/ribbons/summary_bg.bin.lz"); const u16 gMonIconPalettes[][16] = { @@ -2051,19 +2049,17 @@ const u32 gTitleScreenPressStartGfx[] = INCBIN_U32("graphics/title_screen/press_ const u32 gUnknown_08DE0644[] = INCBIN_U32("graphics/title_screen/title_screen2.bin.lz"); -// more trainer card stuff - -const u16 gUnknown_08DE07C8[][16] = INCBIN_U16("graphics/frontier_pass/tiles.gbapal");// size in LoadPalette calls is reported as 0xD0 << 1, which is 0x1A0, but palette is only 0x100 bytes long so it loads garbage as well -const u32 gUnknown_08DE08C8[] = INCBIN_U32("graphics/frontier_pass/tiles.4bpp.lz"); -const u32 gUnknown_08DE2084[] = INCBIN_U32("graphics/frontier_pass/tiles2.8bpp.lz"); -const u32 gUnknown_08DE3060[] = INCBIN_U32("graphics/frontier_pass/tiles.bin.lz"); -const u16 gUnknown_08DE3350[] = INCBIN_U16("graphics/frontier_pass/tilemap1.bin"); -const u16 gUnknown_08DE3374[] = INCBIN_U16("graphics/frontier_pass/tilemap2.bin"); +const u16 gFrontierPassBg_Pal[][16] = INCBIN_U16("graphics/frontier_pass/bg.gbapal");// size in LoadPalette calls is reported as 0xD0 << 1, which is 0x1A0, but palette is only 0x100 bytes long so it loads garbage as well +const u32 gFrontierPassBg_Gfx[] = INCBIN_U32("graphics/frontier_pass/bg.4bpp.lz"); +const u32 gFrontierPassMapAndCard_Gfx[] = INCBIN_U32("graphics/frontier_pass/map_and_card.8bpp.lz"); +const u32 gFrontierPassBg_Tilemap[] = INCBIN_U32("graphics/frontier_pass/bg.bin.lz"); +const u16 gFrontierPassCancelButton_Tilemap[] = INCBIN_U16("graphics/frontier_pass/cancel.bin"); +const u16 gFrontierPassCancelButtonHighlighted_Tilemap[] = INCBIN_U16("graphics/frontier_pass/cancel_highlighted.bin"); // Berry Crush -const u16 gUnknown_08DE3398[] = INCBIN_U16("graphics/berry_crusher/tiles.gbapal"); -const u32 gUnknown_08DE34B8[] = INCBIN_U32("graphics/berry_crusher/tiles.4bpp.lz"); -const u32 gUnknown_08DE3FD4[] = INCBIN_U32("graphics/berry_crusher/tiles.bin.lz"); +const u16 gBerryCrush_Crusher_Pal[] = INCBIN_U16("graphics/berry_crush/crusher.gbapal"); +const u32 gBerryCrush_Crusher_Gfx[] = INCBIN_U32("graphics/berry_crush/crusher.4bpp.lz"); +const u32 gBerryCrush_Crusher_Tilemap[] = INCBIN_U32("graphics/berry_crush/crusher.bin.lz"); // random garbage at the end. static const u8 sEmpty3[0x54BAC] = {0}; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 7b63950d1d..590c0d01da 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -66,13 +66,12 @@ static EWRAM_DATA struct HofGfx *sHofGfxPtr = NULL; extern struct MusicPlayerInfo gMPlayInfo_BGM; -// this file's functions static void ClearVramOamPltt_LoadHofPal(void); static void LoadHofGfx(void); static void InitHofBgs(void); static bool8 CreateHofConfettiSprite(void); -static void SetCallback2AfterHallOfFameDisplay(void); -static bool8 sub_8175024(void); +static void StartCredits(void); +static bool8 LoadHofBgs(void); static void Task_Hof_InitMonData(u8 taskId); static void Task_Hof_InitTeamSaveData(u8 taskId); static void Task_Hof_SetMonDisplayTask(u8 taskId); @@ -104,7 +103,6 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2); static void Task_DoDomeConfetti(u8 taskId); static void SpriteCB_HofConfetti(struct Sprite* sprite); -// const rom data static const struct BgTemplate sHof_BgTemplates[] = { { @@ -136,12 +134,19 @@ static const struct BgTemplate sHof_BgTemplates[] = }, }; -static const struct WindowTemplate sHof_WindowTemplate = {0, 2, 2, 0xE, 6, 0xE, 1}; +static const struct WindowTemplate sHof_WindowTemplate = { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 14, + .height = 6, + .paletteNum = 14, + .baseBlock = 1 +}; -static const u8 sMonInfoTextColors[4] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; -static const u8 sPlayerInfoTextColors[4] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}; - -static const u8 sUnused_085E538C[] = {4, 5, 0, 0}; +static const u8 sMonInfoTextColors[4] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}; +static const u8 sPlayerInfoTextColors[4] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; +static const u8 sUnusedTextColors[4] = {TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_TRANSPARENT}; static const struct CompressedSpriteSheet sSpriteSheet_Confetti[] = { @@ -383,10 +388,10 @@ static bool8 InitHallOfFameScreen(void) gMain.state++; break; case 3: - if (!sub_8175024()) + if (!LoadHofBgs()) { SetVBlankCallback(VBlankCB_HallOfFame); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gMain.state++; } break; @@ -464,11 +469,11 @@ static void Task_Hof_InitMonData(u8 taskId) sHofFadePalettes = 0; gTasks[taskId].tDisplayedMonId = 0; - gTasks[taskId].tPlayerSpriteID = 0xFF; + gTasks[taskId].tPlayerSpriteID = SPRITE_NONE; for (i = 0; i < PARTY_SIZE; i++) { - gTasks[taskId].tMonSpriteId(i) = 0xFF; + gTasks[taskId].tMonSpriteId(i) = SPRITE_NONE; } if (gTasks[taskId].tDontSaveData) @@ -639,10 +644,10 @@ static void Task_Hof_PaletteFadeAndPrintWelcomeText(u8 taskId) { u16 i; - BeginNormalPaletteFade(0xFFFF0000, 0, 0, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_OBJECTS, 0, 0, 0, RGB_BLACK); for (i = 0; i < PARTY_SIZE; i++) { - if (gTasks[taskId].tMonSpriteId(i) != 0xFF) + if (gTasks[taskId].tMonSpriteId(i) != SPRITE_NONE) gSprites[gTasks[taskId].tMonSpriteId(i)].oam.priority = 0; } @@ -668,7 +673,7 @@ static void Task_Hof_DoConfetti(u8 taskId) u16 i; for (i = 0; i < PARTY_SIZE; i++) { - if (gTasks[taskId].tMonSpriteId(i) != 0xFF) + if (gTasks[taskId].tMonSpriteId(i) != SPRITE_NONE) gSprites[gTasks[taskId].tMonSpriteId(i)].oam.priority = 1; } BeginNormalPaletteFade(sHofFadePalettes, 0, 12, 12, RGB(16, 29, 24)); @@ -712,9 +717,9 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId) { gTasks[taskId].tFrameCount--; } - else if (gSprites[gTasks[taskId].tPlayerSpriteID].pos1.x != 192) + else if (gSprites[gTasks[taskId].tPlayerSpriteID].x != 192) { - gSprites[gTasks[taskId].tPlayerSpriteID].pos1.x++; + gSprites[gTasks[taskId].tPlayerSpriteID].x++; } else { @@ -739,7 +744,7 @@ static void Task_Hof_ExitOnKeyPressed(u8 taskId) static void Task_Hof_HandlePaletteOnExit(u8 taskId) { CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); - BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 8, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_Hof_HandleExit; } @@ -752,7 +757,7 @@ static void Task_Hof_HandleExit(u8 taskId) for (i = 0; i < PARTY_SIZE; i++) { u8 spriteId = gTasks[taskId].tMonSpriteId(i); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { FreeOamMatrix(gSprites[spriteId].oam.matrixNum); FreeAndDestroyMonPicSprite(spriteId); @@ -774,11 +779,11 @@ static void Task_Hof_HandleExit(u8 taskId) if (sHofMonPtr != NULL) FREE_AND_SET_NULL(sHofMonPtr); - SetCallback2AfterHallOfFameDisplay(); + StartCredits(); } } -static void SetCallback2AfterHallOfFameDisplay(void) +static void StartCredits(void) { SetMainCallback2(CB2_StartCreditsSequence); } @@ -819,7 +824,7 @@ void CB2_DoHallOfFamePC(void) gMain.state++; break; case 3: - if (!sub_8175024()) + if (!LoadHofBgs()) { struct HallofFameTeam *fameTeam = (struct HallofFameTeam*)(gDecompressionBuffer); fameTeam->mon[0] = sDummyFameMon; @@ -847,7 +852,7 @@ void CB2_DoHallOfFamePC(void) for (i = 0; i < PARTY_SIZE; i++) { - gTasks[taskId].tMonSpriteId(i) = 0xFF; + gTasks[taskId].tMonSpriteId(i) = SPRITE_NONE; } sHofMonPtr = AllocZeroed(0x2000); @@ -937,11 +942,11 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId) } else { - gTasks[taskId].tMonSpriteId(i) = 0xFF; + gTasks[taskId].tMonSpriteId(i) = SPRITE_NONE; } } - BlendPalettes(0xFFFF0000, 0xC, RGB(16, 29, 24)); + BlendPalettes(PALETTES_OBJECTS, 0xC, RGB(16, 29, 24)); ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tCurrPageNo, STR_CONV_MODE_RIGHT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_HOFNumber); @@ -967,7 +972,7 @@ static void Task_HofPC_PrintMonInfo(u8 taskId) for (i = 0; i < PARTY_SIZE; i++) { u16 spriteId = gTasks[taskId].tMonSpriteId(i); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].oam.priority = 1; } @@ -999,10 +1004,10 @@ static void Task_HofPC_HandleInput(u8 taskId) for (i = 0; i < PARTY_SIZE; i++) { u8 spriteId = gTasks[taskId].tMonSpriteId(i); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { FreeAndDestroyMonPicSprite(spriteId); - gTasks[taskId].tMonSpriteId(i) = 0xFF; + gTasks[taskId].tMonSpriteId(i) = SPRITE_NONE; } } if (gTasks[taskId].tCurrPageNo != 0) @@ -1060,10 +1065,10 @@ static void Task_HofPC_HandleExit(u8 taskId) for (i = 0; i < PARTY_SIZE; i++) { u16 spriteId = gTasks[taskId].tMonSpriteId(i); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { FreeAndDestroyMonPicSprite(spriteId); - gTasks[taskId].tMonSpriteId(i) = 0xFF; + gTasks[taskId].tMonSpriteId(i) = SPRITE_NONE; } } @@ -1301,7 +1306,7 @@ static void InitHofBgs(void) ChangeBgY(3, 0, 0); } -static bool8 sub_8175024(void) +static bool8 LoadHofBgs(void) { switch (sHofGfxPtr->state) { @@ -1340,18 +1345,18 @@ static bool8 sub_8175024(void) static void SpriteCB_GetOnScreenAndAnimate(struct Sprite *sprite) { - if (sprite->pos1.x != sprite->tDestinationX - || sprite->pos1.y != sprite->tDestinationY) + if (sprite->x != sprite->tDestinationX + || sprite->y != sprite->tDestinationY) { - if (sprite->pos1.x < sprite->tDestinationX) - sprite->pos1.x += 15; - if (sprite->pos1.x > sprite->tDestinationX) - sprite->pos1.x -= 15; + if (sprite->x < sprite->tDestinationX) + sprite->x += 15; + if (sprite->x > sprite->tDestinationX) + sprite->x -= 15; - if (sprite->pos1.y < sprite->tDestinationY) - sprite->pos1.y += 10; - if (sprite->pos1.y > sprite->tDestinationY) - sprite->pos1.y -= 10; + if (sprite->y < sprite->tDestinationY) + sprite->y += 10; + if (sprite->y > sprite->tDestinationY) + sprite->y -= 10; } else { @@ -1373,7 +1378,7 @@ static void SpriteCB_GetOnScreenAndAnimate(struct Sprite *sprite) static void SpriteCB_HofConfetti(struct Sprite* sprite) { - if (sprite->pos2.y > 120) + if (sprite->y2 > 120) { DestroySprite(sprite); } @@ -1382,12 +1387,12 @@ static void SpriteCB_HofConfetti(struct Sprite* sprite) u16 rand; u8 sineIdx; - sprite->pos2.y++; - sprite->pos2.y += sprite->sExtraY; + sprite->y2++; + sprite->y2 += sprite->sExtraY; sineIdx = sprite->sSineIdx; rand = (Random() % 4) + 8; - sprite->pos2.x = rand * gSineTable[sineIdx] / 256; + sprite->x2 = rand * gSineTable[sineIdx] / 256; sprite->sSineIdx += 4; } @@ -1398,7 +1403,7 @@ static bool8 CreateHofConfettiSprite(void) u8 spriteID; struct Sprite* sprite; - s16 posX = Random() % 240; + s16 posX = Random() % DISPLAY_WIDTH; s16 posY = -(Random() % 8); spriteID = CreateSprite(&sSpriteTemplate_HofConfetti, posX, posY, 0); @@ -1433,7 +1438,7 @@ void DoDomeConfetti(void) gSpecialVar_0x8004 = 180; taskId = CreateTask(Task_DoDomeConfetti, 0); - if (taskId != 0xFF) + if (taskId != TASK_NONE) { gTasks[taskId].tTimer = gSpecialVar_0x8004; gSpecialVar_0x8005 = taskId; @@ -1444,7 +1449,7 @@ static void StopDomeConfetti(void) { u8 taskId; - if ((taskId = FindTaskIdByFunc(Task_DoDomeConfetti)) != 0xFF) + if ((taskId = FindTaskIdByFunc(Task_DoDomeConfetti)) != TASK_NONE) DestroyTask(taskId); ConfettiUtil_Free(); @@ -1505,7 +1510,7 @@ static void Task_DoDomeConfetti(u8 taskId) id = ConfettiUtil_AddNew(&sOamData_Confetti, TAG_CONFETTI, TAG_CONFETTI, - Random() % 240, + Random() % DISPLAY_WIDTH, -(Random() % 8), Random() % ARRAY_COUNT(sAnims_Confetti), id); diff --git a/src/hof_pc.c b/src/hof_pc.c index 327749179d..f74448cca6 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -29,7 +29,7 @@ static void ReshowPCMenuAfterHallOfFamePC(void) Overworld_PlaySpecialMapMusic(); ScriptMenu_CreatePCMultichoice(); ScriptMenu_DisplayPCStartupPrompt(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); CreateTask(Task_WaitForPaletteFade, 10); } diff --git a/src/image_processing_effects.c b/src/image_processing_effects.c index cbd8b9b374..fa6867f2c5 100644 --- a/src/image_processing_effects.c +++ b/src/image_processing_effects.c @@ -51,7 +51,9 @@ static u16 QuantizePixel_GrayscaleSmall(u16*); static u16 QuantizePixel_Grayscale(u16*); static u16 QuantizePixel_PrimaryColors(u16*); -extern const u8 gPointillismPoints[][3]; +#define MAX_DIMENSION 64 + +#include "data/pointillism_points.h" void ApplyImageProcessingEffects(struct ImageProcessingContext *context) { @@ -129,11 +131,11 @@ static void ApplyImageEffect_RedChannelGrayscale(u8 delta) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { // Gets the grayscale value, based on the pixel's red channel. // Also adds a delta to skew lighter or darker. - u8 grayValue = (31 & *pixel); + u8 grayValue = (*pixel & RGB_RED); grayValue += delta; if (grayValue > 31) grayValue = 31; @@ -154,9 +156,9 @@ static void ApplyImageEffect_RedChannelGrayscaleHighlight(u8 highlight) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { - u8 grayValue = (31 & *pixel); + u8 grayValue = (*pixel & RGB_RED); if (grayValue > 31 - highlight) grayValue = 31 - (highlight >> 1); @@ -169,7 +171,7 @@ static void ApplyImageEffect_RedChannelGrayscaleHighlight(u8 highlight) static void ApplyImageEffect_Pointillism(void) { u32 i; - for (i = 0; i < 3200; i++) + for (i = 0; i < ARRAY_COUNT(sPointillismPoints); i++) AddPointillismPoints(i); } @@ -183,7 +185,7 @@ static void ApplyImageEffect_Grayscale(void) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = ConvertColorToGrayscale(pixel); } } @@ -203,7 +205,7 @@ static void ApplyImageEffect_Blur(void) pixel += gCanvasWidth; while (j < gCanvasRowEnd - 1) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { *pixel = QuantizePixel_Blur(&prevPixel, pixel, pixel + gCanvasWidth); prevPixel = *pixel; @@ -225,7 +227,7 @@ static void ApplyImageEffect_PersonalityColor(u8 personality) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_PersonalityColor(pixel, personality); } } @@ -241,7 +243,7 @@ static void ApplyImageEffect_BlackAndWhite(void) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_BlackAndWhite(pixel); } } @@ -293,7 +295,7 @@ static void ApplyImageEffect_Invert(void) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_Invert(pixel); } } @@ -307,55 +309,55 @@ static void ApplyImageEffect_Shimmer(void) // First, invert all of the colors. pixel = gCanvasPixels; - for (i = 0; i < 64; i++) + for (i = 0; i < MAX_DIMENSION; i++) { - for (j = 0; j < 64; j++, pixel++) + for (j = 0; j < MAX_DIMENSION; j++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_Invert(pixel); } } // Blur the pixels twice. - for (j = 0; j < 64; j++) + for (j = 0; j < MAX_DIMENSION; j++) { pixel = &gCanvasPixels[j]; prevPixel = *pixel; - *pixel = 0x8000; - for (i = 1, pixel += 64; i < 63; i++, pixel += 64) + *pixel = RGB_ALPHA; + for (i = 1, pixel += MAX_DIMENSION; i < MAX_DIMENSION - 1; i++, pixel += MAX_DIMENSION) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { - *pixel = QuantizePixel_BlurHard(&prevPixel, pixel, pixel + 64); + *pixel = QuantizePixel_BlurHard(&prevPixel, pixel, pixel + MAX_DIMENSION); prevPixel = *pixel; } } - *pixel = 0x8000; + *pixel = RGB_ALPHA; pixel = &gCanvasPixels[j]; prevPixel = *pixel; - *pixel = 0x8000; - for (i = 1, pixel += 64; i < 63; i++, pixel += 64) + *pixel = RGB_ALPHA; + for (i = 1, pixel += MAX_DIMENSION; i < MAX_DIMENSION - 1; i++, pixel += MAX_DIMENSION) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { - *pixel = QuantizePixel_BlurHard(&prevPixel, pixel, pixel + 64); + *pixel = QuantizePixel_BlurHard(&prevPixel, pixel, pixel + MAX_DIMENSION); prevPixel = *pixel; } } - *pixel = 0x8000; + *pixel = RGB_ALPHA; } // Finally, invert colors back to the original color space. // The above blur causes the outline areas to darken, which makes // this inversion give the effect of light outlines. pixel = gCanvasPixels; - for (i = 0; i < 64; i++) + for (i = 0; i < MAX_DIMENSION; i++) { - for (j = 0; j < 64; j++, pixel++) + for (j = 0; j < MAX_DIMENSION; j++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) *pixel = QuantizePixel_Invert(pixel); } } @@ -372,7 +374,7 @@ static void ApplyImageEffect_BlurRight(void) u16 prevPixel = *pixel; for (i = 1, pixel++; i < gCanvasColumnEnd - 1; i++, pixel++) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { *pixel = QuantizePixel_MotionBlur(&prevPixel, pixel); prevPixel = *pixel; @@ -392,7 +394,7 @@ static void ApplyImageEffect_BlurDown(void) u16 prevPixel = *pixel; for (j = 1, pixel += gCanvasWidth; j < gCanvasRowEnd - 1; j++, pixel += gCanvasWidth) { - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { *pixel = QuantizePixel_MotionBlur(&prevPixel, pixel); prevPixel = *pixel; @@ -408,19 +410,19 @@ struct PointillismPoint u16 delta; }; -static void AddPointillismPoints(u16 arg0) +static void AddPointillismPoints(u16 point) { u8 i; bool8 offsetDownLeft; u8 colorType; struct PointillismPoint points[6]; - points[0].column = gPointillismPoints[arg0][0]; - points[0].row = gPointillismPoints[arg0][1]; - points[0].delta = (gPointillismPoints[arg0][2] >> 3) & 7; + points[0].column = sPointillismPoints[point][0]; + points[0].row = sPointillismPoints[point][1]; + points[0].delta = GET_POINT_DELTA(sPointillismPoints[point][2]); - colorType = (gPointillismPoints[arg0][2] >> 1) & 3; - offsetDownLeft = gPointillismPoints[arg0][2] & 1; + colorType = GET_POINT_COLOR_TYPE(sPointillismPoints[point][2]); + offsetDownLeft = GET_POINT_OFFSET_DL(sPointillismPoints[point][2]); for (i = 1; i < points[0].delta; i++) { if (!offsetDownLeft) @@ -434,7 +436,7 @@ static void AddPointillismPoints(u16 arg0) points[i].row = points[0].row - 1; } - if (points[i].column > 63 || points[i].row > 63) + if (points[i].column >= MAX_DIMENSION || points[i].row >= MAX_DIMENSION) { points[0].delta = i - 1; break; @@ -445,19 +447,19 @@ static void AddPointillismPoints(u16 arg0) for (i = 0; i < points[0].delta; i++) { - u16 *pixel = &gCanvasPixels[points[i].row * 64] + points[i].column; + u16 *pixel = &gCanvasPixels[points[i].row * MAX_DIMENSION] + points[i].column; - if (!(0x8000 & *pixel)) + if (!IS_ALPHA(*pixel)) { - u16 red = (*pixel) & 0x1F; - u16 green = (*pixel >> 5) & 0x1F; - u16 blue = (*pixel >> 10) & 0x1F; + u16 red = GET_R(*pixel); + u16 green = GET_G(*pixel); + u16 blue = GET_B(*pixel); switch (colorType) { case 0: case 1: - switch (((gPointillismPoints[arg0][2] >> 3) & 7) % 3) + switch (GET_POINT_DELTA(sPointillismPoints[point][2]) % 3) { case 0: if (red >= points[i].delta) @@ -501,9 +503,9 @@ static void AddPointillismPoints(u16 arg0) static u16 ConvertColorToGrayscale(u16 *color) { s32 clr = *color; - s32 r = clr & 0x1F; - s32 g = (clr >> 5) & 0x1F; - s32 b = (clr >> 10) & 0x1F; + s32 r = GET_R(clr); + s32 g = GET_G(clr); + s32 b = GET_B(clr); s32 gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; return RGB2(gray, gray, gray); } @@ -512,9 +514,9 @@ static u16 ConvertColorToGrayscale(u16 *color) // Everything else is white. static u16 QuantizePixel_PersonalityColor(u16 *color, u8 personality) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); if (red < 17 && green < 17 && blue < 17) return GetColorFromPersonality(personality); @@ -526,9 +528,9 @@ static u16 QuantizePixel_PersonalityColor(u16 *color, u8 personality) // the mon's personality value, return a color. static u16 GetColorFromPersonality(u8 personality) { - u16 red = 0; + u16 red = 0; u16 green = 0; - u16 blue = 0; + u16 blue = 0; u8 strength = (personality / 6) % 3; u8 colorType = personality % 6; @@ -577,9 +579,9 @@ static u16 GetColorFromPersonality(u8 personality) static u16 QuantizePixel_BlackAndWhite(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); if (red < 17 && green < 17 && blue < 17) return RGB_BLACK; @@ -591,9 +593,9 @@ static u16 QuantizePixel_BlackOutline(u16 *pixelA, u16 *pixelB) { if (*pixelA != RGB_BLACK) { - if (*pixelA & 0x8000) - return 0x8000; - if (*pixelB & 0x8000) + if (IS_ALPHA(*pixelA)) + return RGB_ALPHA; + if (IS_ALPHA(*pixelB)) return RGB_BLACK; return *pixelA; @@ -604,13 +606,13 @@ static u16 QuantizePixel_BlackOutline(u16 *pixelA, u16 *pixelB) static u16 QuantizePixel_Invert(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); - red = 31 - red; + red = 31 - red; green = 31 - green; - blue = 31 - blue; + blue = 31 - blue; return RGB2(red, green, blue); } @@ -626,12 +628,12 @@ static u16 QuantizePixel_MotionBlur(u16 *prevPixel, u16 *curPixel) if (*prevPixel == *curPixel) return *curPixel; - pixelChannels[0][0] = (*prevPixel >> 0) & 0x1F; - pixelChannels[0][1] = (*prevPixel >> 5) & 0x1F; - pixelChannels[0][2] = (*prevPixel >> 10) & 0x1F; - pixelChannels[1][0] = (*curPixel >> 0) & 0x1F; - pixelChannels[1][1] = (*curPixel >> 5) & 0x1F; - pixelChannels[1][2] = (*curPixel >> 10) & 0x1F; + pixelChannels[0][0] = GET_R(*prevPixel); + pixelChannels[0][1] = GET_G(*prevPixel); + pixelChannels[0][2] = GET_B(*prevPixel); + pixelChannels[1][0] = GET_R(*curPixel); + pixelChannels[1][1] = GET_G(*curPixel); + pixelChannels[1][2] = GET_B(*curPixel); // Don't blur light colors. if (pixelChannels[0][0] > 25 && pixelChannels[0][1] > 25 && pixelChannels[0][2] > 25) @@ -667,9 +669,9 @@ static u16 QuantizePixel_MotionBlur(u16 *prevPixel, u16 *curPixel) largestDiff = diffs[0]; } - red = (pixelChannels[1][0] * (31 - largestDiff / 2)) / 31; + red = (pixelChannels[1][0] * (31 - largestDiff / 2)) / 31; green = (pixelChannels[1][1] * (31 - largestDiff / 2)) / 31; - blue = (pixelChannels[1][2] * (31 - largestDiff / 2)) / 31; + blue = (pixelChannels[1][2] * (31 - largestDiff / 2)) / 31; return RGB2(red, green, blue); } @@ -684,13 +686,13 @@ static u16 QuantizePixel_Blur(u16 *prevPixel, u16 *curPixel, u16 *nextPixel) if (*prevPixel == *curPixel && *nextPixel == *curPixel) return *curPixel; - red = (*curPixel >> 0) & 0x1F; - green = (*curPixel >> 5) & 0x1F; - blue = (*curPixel >> 10) & 0x1F; + red = GET_R(*curPixel); + green = GET_G(*curPixel); + blue = GET_B(*curPixel); - prevAvg = (((*prevPixel >> 0) & 0x1F) + ((*prevPixel >> 5) & 0x1F) + ((*prevPixel >> 10) & 0x1F)) / 3; - curAvg = (((*curPixel >> 0) & 0x1F) + ((*curPixel >> 5) & 0x1F) + ((*curPixel >> 10) & 0x1F)) / 3; - nextAvg = (((*nextPixel >> 0) & 0x1F) + ((*nextPixel >> 5) & 0x1F) + ((*nextPixel >> 10) & 0x1F)) / 3; + prevAvg = (GET_R(*prevPixel) + GET_G(*prevPixel) + GET_B(*prevPixel)) / 3; + curAvg = (GET_R(*curPixel) + GET_G(*curPixel) + GET_B(*curPixel)) / 3; + nextAvg = (GET_R(*nextPixel) + GET_G(*nextPixel) + GET_B(*nextPixel)) / 3; if (prevAvg == curAvg && nextAvg == curAvg) return *curPixel; @@ -728,14 +730,14 @@ static u16 QuantizePixel_BlurHard(u16 *prevPixel, u16 *curPixel, u16 *nextPixel) if (*prevPixel == *curPixel && *nextPixel == *curPixel) return *curPixel; - red = (*curPixel >> 0) & 0x1F; - green = (*curPixel >> 5) & 0x1F; - blue = (*curPixel >> 10) & 0x1F; - - prevAvg = (((*prevPixel >> 0) & 0x1F) + ((*prevPixel >> 5) & 0x1F) + ((*prevPixel >> 10) & 0x1F)) / 3; - curAvg = (((*curPixel >> 0) & 0x1F) + ((*curPixel >> 5) & 0x1F) + ((*curPixel >> 10) & 0x1F)) / 3; - nextAvg = (((*nextPixel >> 0) & 0x1F) + ((*nextPixel >> 5) & 0x1F) + ((*nextPixel >> 10) & 0x1F)) / 3; - + red = GET_R(*curPixel); + green = GET_G(*curPixel); + blue = GET_B(*curPixel); + + prevAvg = (GET_R(*prevPixel) + GET_G(*prevPixel) + GET_B(*prevPixel)) / 3; + curAvg = (GET_R(*curPixel) + GET_G(*curPixel) + GET_B(*curPixel)) / 3; + nextAvg = (GET_R(*nextPixel) + GET_G(*nextPixel) + GET_B(*nextPixel)) / 3; + if (prevAvg == curAvg && nextAvg == curAvg) return *curPixel; @@ -802,8 +804,8 @@ void ConvertImageProcessingToGBA(struct ImageProcessingContext *context) dest = dest_ + ((i * width + j) << 4) + (k << 1); src = src_ + ((((i << 3) + k) << 3) * width) + (j << 3); - dest[0] = src[0] | (src[1] << 4) | (src[2] << 8) | (src[3] << 0xC); - dest[1] = src[4] | (src[5] << 4) | (src[6] << 8) | (src[7] << 0xC); + dest[0] = src[0] | (src[1] << 4) | (src[2] << 8) | (src[3] << 12); + dest[1] = src[4] | (src[5] << 4) | (src[6] << 8) | (src[7] << 12); } } } @@ -851,37 +853,37 @@ void ApplyImageProcessingQuantization(struct ImageProcessingContext *context) static void SetPresetPalette_PrimaryColors(void) { - gCanvasPalette[0] = RGB2(0, 0, 0); - gCanvasPalette[1] = RGB2(6, 6, 6); - gCanvasPalette[2] = RGB2(29, 29, 29); - gCanvasPalette[3] = RGB2(11, 11, 11); - gCanvasPalette[4] = RGB2(29, 6, 6); - gCanvasPalette[5] = RGB2(6, 29, 6); - gCanvasPalette[6] = RGB2(6, 6, 29); - gCanvasPalette[7] = RGB2(29, 29, 6); - gCanvasPalette[8] = RGB2(29, 6, 29); - gCanvasPalette[9] = RGB2(6, 29, 29); - gCanvasPalette[10] = RGB2(29, 11, 6); - gCanvasPalette[11] = RGB2(11, 29, 6); - gCanvasPalette[12] = RGB2(6, 11, 29); - gCanvasPalette[13] = RGB2(29, 6, 11); - gCanvasPalette[14] = RGB2(6, 29, 11); - gCanvasPalette[15] = RGB2(11, 6, 29); + gCanvasPalette[0] = RGB_BLACK; + gCanvasPalette[1] = RGB(6, 6, 6); + gCanvasPalette[2] = RGB(29, 29, 29); + gCanvasPalette[3] = RGB(11, 11, 11); + gCanvasPalette[4] = RGB(29, 6, 6); + gCanvasPalette[5] = RGB(6, 29, 6); + gCanvasPalette[6] = RGB(6, 6, 29); + gCanvasPalette[7] = RGB(29, 29, 6); + gCanvasPalette[8] = RGB(29, 6, 29); + gCanvasPalette[9] = RGB(6, 29, 29); + gCanvasPalette[10] = RGB(29, 11, 6); + gCanvasPalette[11] = RGB(11, 29, 6); + gCanvasPalette[12] = RGB(6, 11, 29); + gCanvasPalette[13] = RGB(29, 6, 11); + gCanvasPalette[14] = RGB(6, 29, 11); + gCanvasPalette[15] = RGB(11, 6, 29); } static void SetPresetPalette_BlackAndWhite(void) { - gCanvasPalette[0] = RGB2(0, 0, 0); - gCanvasPalette[1] = RGB2(0, 0, 0); - gCanvasPalette[2] = RGB2(31, 31, 31); + gCanvasPalette[0] = RGB_BLACK; + gCanvasPalette[1] = RGB_BLACK; + gCanvasPalette[2] = RGB_WHITE; } static void SetPresetPalette_GrayscaleSmall(void) { u8 i; - gCanvasPalette[0] = RGB2(0, 0, 0); - gCanvasPalette[1] = RGB2(0, 0, 0); + gCanvasPalette[0] = RGB_BLACK; + gCanvasPalette[1] = RGB_BLACK; for (i = 0; i < 14; i++) gCanvasPalette[i + 2] = RGB2(2 * (i + 2), 2 * (i + 2), 2 * (i + 2)); } @@ -890,7 +892,7 @@ static void SetPresetPalette_Grayscale(void) { u8 i; - gCanvasPalette[0] = RGB2(0, 0, 0); + gCanvasPalette[0] = RGB_BLACK; for (i = 0; i < 32; i++) gCanvasPalette[i + 1] = RGB2(i, i, i); } @@ -914,7 +916,7 @@ static void QuantizePalette_Standard(bool8 useLimitedPalette) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) { *pixel = gCanvasPaletteStart; } @@ -982,7 +984,7 @@ static void QuantizePalette_BlackAndWhite(void) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) { *pixel = gCanvasPaletteStart; } @@ -1013,7 +1015,7 @@ static void QuantizePalette_GrayscaleSmall(void) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) *pixel = gCanvasPaletteStart; else *pixel = QuantizePixel_GrayscaleSmall(pixel) + gCanvasPaletteStart; @@ -1031,7 +1033,7 @@ static void QuantizePalette_Grayscale(void) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) *pixel = gCanvasPaletteStart; else *pixel = QuantizePixel_Grayscale(pixel) + gCanvasPaletteStart; @@ -1049,7 +1051,7 @@ static void QuantizePalette_PrimaryColors(void) u16 *pixel = &pixelRow[gCanvasColumnStart]; for (i = 0; i < gCanvasColumnEnd; i++, pixel++) { - if (*pixel & 0x8000) + if (IS_ALPHA(*pixel)) *pixel = gCanvasPaletteStart; else *pixel = QuantizePixel_PrimaryColors(pixel) + gCanvasPaletteStart; @@ -1060,9 +1062,9 @@ static void QuantizePalette_PrimaryColors(void) // Quantizes the pixel's color channels to nearest multiple of 4, and clamps to [6, 30]. static u16 QuantizePixel_Standard(u16 *pixel) { - u16 red = *pixel & 0x1F; - u16 green = (*pixel >> 5) & 0x1F; - u16 blue = (*pixel >> 10) & 0x1F; + u16 red = GET_R(*pixel); + u16 green = GET_G(*pixel); + u16 blue = GET_B(*pixel); // Quantize color channels to muliples of 4, rounding up. if (red & 3) @@ -1091,10 +1093,10 @@ static u16 QuantizePixel_Standard(u16 *pixel) static u16 QuantizePixel_PrimaryColors(u16* color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; - + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); + if (red < 12 && green < 11 && blue < 11) return 1; @@ -1206,9 +1208,9 @@ static u16 QuantizePixel_PrimaryColors(u16* color) static u16 QuantizePixel_GrayscaleSmall(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); u16 average = ((red + green + blue) / 3) & 0x1E; if (average == 0) return 1; @@ -1218,9 +1220,9 @@ static u16 QuantizePixel_GrayscaleSmall(u16 *color) static u16 QuantizePixel_Grayscale(u16 *color) { - u16 red = *color & 0x1F; - u16 green = (*color >> 5) & 0x1F; - u16 blue = (*color >> 10) & 0x1F; + u16 red = GET_R(*color); + u16 green = GET_G(*color); + u16 blue = GET_B(*color); u16 average = (red + green + blue) / 3; return average + 1; } diff --git a/src/international_string_util.c b/src/international_string_util.c index 23ca6c0816..eb2ec16e70 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -34,11 +34,11 @@ int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int lett return 0; } -int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1) +int GetMaxWidthInMenuTable(const struct MenuAction *str, int numActions) { int i, var; - for (var = 0, i = 0; i < arg1; i++) + for (var = 0, i = 0; i < numActions; i++) { int stringWidth = GetStringWidth(1, str[i].text, 0); if (stringWidth > var) @@ -152,7 +152,7 @@ void PadNameString(u8 *dest, u8 padChar) dest[length] = EOS; } -void sub_81DB52C(u8 *str) +void ConvertInternationalPlayerName(u8 *str) { if (StringLength(str) < PLAYER_NAME_LENGTH - 1) ConvertInternationalString(str, LANGUAGE_JAPANESE); @@ -160,14 +160,14 @@ void sub_81DB52C(u8 *str) StripExtCtrlCodes(str); } -void sub_81DB554(u8 *str, u8 arg1) +void ConvertInternationalPlayerNameStripChar(u8 *str, u8 removeChar) { u8 *buffer; if (StringLength(str) < PLAYER_NAME_LENGTH - 1) { ConvertInternationalString(str, LANGUAGE_JAPANESE); } - else if (arg1 == EXT_CTRL_CODE_BEGIN) + else if (removeChar == EXT_CTRL_CODE_BEGIN) { StripExtCtrlCodes(str); } @@ -177,7 +177,7 @@ void sub_81DB554(u8 *str, u8 arg1) while (buffer[1] != EOS) buffer++; - while (buffer >= str && buffer[0] == arg1) + while (buffer >= str && buffer[0] == removeChar) { buffer[0] = EOS; buffer--; @@ -185,7 +185,7 @@ void sub_81DB554(u8 *str, u8 arg1) } } -void sub_81DB5AC(u8 *str) +void ConvertInternationalContestantName(u8 *str) { if (*str++ == EXT_CTRL_CODE_BEGIN && *str++ == EXT_CTRL_CODE_JPN) { @@ -214,7 +214,7 @@ int sub_81DB604(u8 *str) if (str[0] == EXT_CTRL_CODE_BEGIN && str[1] == EXT_CTRL_CODE_JPN) return LANGUAGE_JAPANESE; else - return LANGUAGE_ENGLISH; + return GAME_LANGUAGE; } void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows) diff --git a/src/intro.c b/src/intro.c index 7dab2ad46b..9fe9169da8 100644 --- a/src/intro.c +++ b/src/intro.c @@ -27,119 +27,193 @@ #include "constants/battle_anim.h" /* - * Intro animation sequence state machine - * -------------------------------------- - * - * Entry Point: CB2_InitCopyrightScreenAfterBootup - * - * Note: States advance sequentially unless otherwise stated. - * - * CB2_InitCopyrightScreenAfterBootup - * - Registers a serial interrupt handler that listens for a GameCube. - * - Waits for 140 frames, and then until palette fading completes. - * - Stops looking for a GameCube for dualboot. - * - Check the save file for corruption - * - Setup global pointers to save file - * - Initialize gHeap - * - * MainCB2_Intro - * - Spawn Task_IntroLoadPart1Graphics - * - If any keys are pressed during the intro, advance to - * MainCB2_EndIntro (which will then kill all tasks). - * - * Task_IntroLoadPart1Graphics - * Task_IntroFadeIn (frame counter starts at 0 here) - * Task_IntroWaterDrops - * - At frame 128 of this state, spawn Task_IntroWaterDrops_1 - * - At frame 256 of this state, spawn Task_IntroWaterDrops_2 - * - At frame 560 of this state, spawn Task_IntroWaterDrops_3 - * Task_IntroScrollDownAndShowFlygon - * Task_IntroWaitToSetupPart2 - * Task_IntroLoadPart2Graphics - * Task_IntroStartBikeRide - * - Spawn Task_AdvanceBicycleAnimation - * Task_IntroHandleBikeAndFlygonMovement - * - At frame 1856, kills the bicycle animation task - * Task_IntroWaitToSetupPart3 - * Task_IntroLoadPart3Graphics (frame counter resets to 0 here) - * Task_IntroSpinAndZoomPokeball - * - Continues until the zoom reaches a certain point - * Task_IntroWaitToSetupPart3LegendsFight - * Task_IntroLoadGroudonScene - * Task_IntroLoadPart3Graphics1 - * Task_IntroLoadPart3Graphics2 - * Task_IntroLoadPart3Graphics3 - * Task_IntroLoadPart3Graphics4 - * Task_IntroGroudonScene - * Task_IntroLoadKyogreScene - * Task_IntroKyogreScene - * Task_IntroLoadClouds1 - * Task_IntroLoadClouds2 - * Task_IntroLoadClouds3 - * Task_IntroCloudsScene - * Task_IntroLoadRayquazaLightningScene - * Task_IntroRayquazaLightningScene - * Task_IntroLoadRayquazaGlowScene - * Task_IntroRayquazaGlowScene_0 - * - Runs concurrently with Task_IntroRayquazaGlowScene_1 - * Task_EndIntroMovie - * MainCB2_EndIntro - * - Advances to CB2_InitTitleScreen - */ + The intro is grouped into the following scenes + Scene 0. Copyright screen + Scene 1. GF Logo, pan up over plants, Flygon silhouette goes by + Scene 2. Player biking on path, joined by Pokémon + Scene 3. A fight between Groudon/Kyogre ends with Rayquaza + + After this it progresses to the title screen +*/ + +// Scene 1 main tasks +static void Task_Scene1_Load(u8); +static void Task_Scene1_FadeIn(u8); +static void Task_Scene1_WaterDrops(u8); +static void Task_Scene1_PanUp(u8); +static void Task_Scene1_End(u8); + +// Scene 1 supplemental functions +static void IntroResetGpuRegs(void); +static u8 CreateGameFreakLogoSprites(s16, s16, s16); +static void Task_BlendLogoIn(u8); +static void Task_BlendLogoOut(u8); +static void Task_CreateSparkles(u8); +static u8 CreateWaterDrop(s16, s16, u16, u16, u16, u8); +static void SpriteCB_WaterDrop(struct Sprite *sprite); +static void SpriteCB_WaterDrop_Slide(struct Sprite *); +static void SpriteCB_WaterDrop_ReachLeafEnd(struct Sprite *); +static void SpriteCB_WaterDrop_DangleFromLeaf(struct Sprite *); +static void SpriteCB_WaterDrop_Fall(struct Sprite *); +static void SpriteCB_WaterDrop_Ripple(struct Sprite *); +static void SpriteCB_Sparkle(struct Sprite *sprite); +static void SpriteCB_LogoLetter(struct Sprite *sprite); +static void SpriteCB_GameFreakLogo(struct Sprite *sprite); +static void SpriteCB_FlygonSilhouette(struct Sprite *sprite); + +// Scene 2 main tasks +static void Task_Scene2_Load(u8); +static void Task_Scene2_CreateSprites(u8); +static void Task_Scene2_BikeRide(u8); +static void Task_Scene2_End(u8); + +// Scene 2 supplemental functions +static void SpriteCB_Torchic(struct Sprite *sprite); +static void SpriteCB_Manectric(struct Sprite *sprite); +static void SpriteCB_Volbeat(struct Sprite *sprite); +static void SpriteCB_Flygon(struct Sprite *); +static void SpriteCB_PlayerOnBicycle(struct Sprite *); + +// Scene 3 main tasks +static void Task_Scene3_Load(u8); +static void Task_Scene3_SpinPokeball(u8); +static void Task_Scene3_WaitGroudon(u8); +static void Task_Scene3_LoadGroudon(u8); +static void Task_Scene3_InitGroudonBg(u8); +static void Task_Scene3_NarrowWindow(u8); +static void Task_Scene3_EndNarrowWindow(u8); +static void Task_Scene3_StartGroudon(u8); +static void Task_Scene3_Groudon(u8); +static void Task_Scene3_LoadKyogre(u8); +static void Task_Scene3_Kyogre(u8); +static void Task_Scene3_LoadClouds1(u8); +static void Task_Scene3_LoadClouds2(u8); +static void Task_Scene3_InitClouds(u8); +static void Task_Scene3_Clouds(u8); +static void Task_Scene3_LoadLightning(u8); +static void Task_Scene3_Lightning(u8); +static void Task_Scene3_LoadRayquazaAttack(u8); +static void Task_Scene3_Rayquaza(u8); +static void Task_EndIntroMovie(u8); + +// Scene 3 supplemental functions +static void CreateGroudonRockSprites(u8); +static void CreateKyogreBubbleSprites_Body(u8); +static void CreateKyogreBubbleSprites_Fins(void); +static void Task_RayquazaAttack(u8); +static void SpriteCB_GroudonRocks(struct Sprite *); +static void SpriteCB_KyogreBubbles(struct Sprite *sprite); +static void SpriteCB_Lightning(struct Sprite *sprite); +static void SpriteCB_RayquazaOrb(struct Sprite *sprite); + +static void MainCB2_EndIntro(void); extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const struct SpriteTemplate gAncientPowerRockSpriteTemplate[]; -//ewram -EWRAM_DATA u16 gIntroCharacterGender = 0; -EWRAM_DATA u16 gUnknown_0203BCCA = 0; -EWRAM_DATA u16 gIntroGraphicsFlygonYOffset = 0; +#define TAG_VOLBEAT 1500 +#define TAG_TORCHIC 1501 +#define TAG_MANECTRIC 1502 +#define TAG_LIGHTNING 1503 +#define TAG_BUBBLES 1504 +#define TAG_SPARKLE 1505 + +#define GFXTAG_DROPS_LOGO 2000 +#define PALTAG_DROPS 2000 +#define PALTAG_LOGO 2001 + +#define TAG_FLYGON_SILHOUETTE 2002 +#define TAG_RAYQUAZA_ORB 2003 + +#define COLOSSEUM_GAME_CODE 0x65366347 // "Gc6e" in ASCII + +// Used by various tasks and sprites +#define tState data[0] +#define sState data[0] + +/* + gIntroFrameCounter is used as a persistent timer throughout the + intro cinematic. At various points it's used to determine when + to trigger actions or progress through the cutscene. + The values for these are defined contiguously below. +*/ +#define TIMER_BIG_DROP_START 76 +#define TIMER_LOGO_APPEAR 128 +#define TIMER_LOGO_LETTERS_COLOR 144 +#define TIMER_BIG_DROP_FALLS 251 +#define TIMER_LOGO_BLEND_OUT 256 +#define TIMER_LOGO_DISAPPEAR 272 +#define TIMER_SMALL_DROP_1 368 +#define TIMER_SMALL_DROP_2 384 +#define TIMER_SPARKLES 560 +#define TIMER_FLYGON_SILHOUETTE_APPEAR 832 +#define TIMER_END_PAN_UP 904 +#define TIMER_END_SCENE_1 1007 +#define TIMER_START_SCENE_2 1026 +#define TIMER_MANECTRIC_ENTER 1088 +#define TIMER_PLAYER_DRIFT_BACK 1109 +#define TIMER_MANECTRIC_RUN_CIRCULAR 1168 +#define TIMER_PLAYER_MOVE_FORWARD 1214 +#define TIMER_TORCHIC_ENTER 1224 +#define TIMER_FLYGON_ENTER 1394 +#define TIMER_PLAYER_MOVE_BACKWARD 1398 +#define TIMER_PLAYER_HOLD_POSITION 1576 +#define TIMER_PLAYER_EXIT 1727 +#define TIMER_TORCHIC_SPEED_UP 1735 +#define TIMER_TORCHIC_EXIT 1856 +#define TIMER_END_SCENE_2 1946 +#define TIMER_START_SCENE_3 2068 +// timer is reset for scene 3 +#define TIMER_POKEBALL_FADE 28 +#define TIMER_START_LEGENDARIES 43 + +static EWRAM_DATA u16 sIntroCharacterGender = 0; +static EWRAM_DATA u16 sUnusedVar = 0; +static EWRAM_DATA u16 sFlygonYOffset = 0; -//iwram u32 gIntroFrameCounter; struct GcmbStruct gMultibootProgramStruct; -//.rodata -static const u16 gIntro1DropsPal[] = INCBIN_U16("graphics/intro/intro1_drops.gbapal"); -static const u16 gIntro1GFLogoPal[] = INCBIN_U16("graphics/intro/intro1_gflogo.gbapal"); -static const u32 gIntroTiles[] = INCBIN_U32("graphics/intro/intro.4bpp.lz"); -static const u16 gIntro1BGPals[16][16] = INCBIN_U16("graphics/intro/intro1_bgpal.gbapal"); -static const u32 gIntro1BG0_Tilemap[] = INCBIN_U32("graphics/intro/intro1_bg0_map.bin.lz"); -static const u32 gIntro1BG1_Tilemap[] = INCBIN_U32("graphics/intro/intro1_bg1_map.bin.lz"); -static const u32 gIntro1BG2_Tilemap[] = INCBIN_U32("graphics/intro/intro1_bg2_map.bin.lz"); -static const u32 gIntro1BG3_Tilemap[] = INCBIN_U32("graphics/intro/intro1_bg3_map.bin.lz"); -static const u32 gIntro1BGLeavesGfx[] = INCBIN_U32("graphics/intro/introgfx.4bpp.lz"); -static const u16 gIntro3PokeballPal[] = INCBIN_U16("graphics/intro/intro3_pokeball.gbapal"); -static const u32 gIntro3Pokeball_Tilemap[] = INCBIN_U32("graphics/intro/intro3_pokeball_map.bin.lz"); -static const u32 gIntro3Pokeball_Gfx[] = INCBIN_U32("graphics/intro/intro3_pokeball.8bpp.lz"); -static const u16 gIntro3Streaks_Pal_Unused[] = INCBIN_U16("graphics/intro/intro3_streaks.gbapal"); -static const u32 gIntro3Streaks_Gfx_Unused[] = INCBIN_U32("graphics/intro/intro3_streaks.4bpp.lz"); -static const u32 gIntro3Streaks_Tilemap_Unused[] = INCBIN_U32("graphics/intro/intro3_streaks_map.bin.lz"); -static const u16 gIntro3Misc1Palette[] = INCBIN_U16("graphics/intro/intro3_misc1.gbapal"); -static const u16 gIntro3Misc2Palette_Unused[] = INCBIN_U16("graphics/intro/intro3_misc2.gbapal"); -static const u32 gIntro3MiscTiles[] = INCBIN_U32("graphics/intro/intro3_misc.4bpp.lz"); -static const u16 gIntro1FlygonPalette[] = INCBIN_U16("graphics/intro/intro1_flygon.gbapal"); -static const u32 gIntro1EonTiles_Unused[] = INCBIN_U32("graphics/intro/intro1_eon.4bpp.lz"); -static const u8 sUnknownBytes[] = { +static const u16 sIntroDrops_Pal[] = INCBIN_U16("graphics/intro/scene_1/drops.gbapal"); +static const u16 sIntroLogo_Pal[] = INCBIN_U16("graphics/intro/scene_1/logo.gbapal"); +static const u32 sIntroDropsLogo_Gfx[] = INCBIN_U32("graphics/intro/scene_1/drops_logo.4bpp.lz"); +static const u16 sIntro1Bg_Pal[16][16] = INCBIN_U16("graphics/intro/scene_1/bg.gbapal"); +static const u32 sIntro1Bg0_Tilemap[] = INCBIN_U32("graphics/intro/scene_1/bg0_map.bin.lz"); +static const u32 sIntro1Bg1_Tilemap[] = INCBIN_U32("graphics/intro/scene_1/bg1_map.bin.lz"); +static const u32 sIntro1Bg2_Tilemap[] = INCBIN_U32("graphics/intro/scene_1/bg2_map.bin.lz"); +static const u32 sIntro1Bg3_Tilemap[] = INCBIN_U32("graphics/intro/scene_1/bg3_map.bin.lz"); +static const u32 sIntro1Bg_Gfx[] = INCBIN_U32("graphics/intro/scene_1/bg.4bpp.lz"); +static const u16 sIntroPokeball_Pal[] = INCBIN_U16("graphics/intro/scene_3/pokeball.gbapal"); +static const u32 sIntroPokeball_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/pokeball_map.bin.lz"); +static const u32 sIntroPokeball_Gfx[] = INCBIN_U32("graphics/intro/scene_3/pokeball.8bpp.lz"); +static const u16 sIntroStreaks_Pal[] = INCBIN_U16("graphics/intro/scene_3/streaks.gbapal"); // Unused +static const u32 sIntroStreaks_Gfx[] = INCBIN_U32("graphics/intro/scene_3/streaks.4bpp.lz"); // Unused +static const u32 sIntroStreaks_Tilemap[] = INCBIN_U32("graphics/intro/scene_3/streaks_map.bin.lz"); // Unused +static const u16 sIntroRayquzaOrb_Pal[] = INCBIN_U16("graphics/intro/scene_3/rayquaza_orb.gbapal"); +static const u16 sIntroMisc_Pal[] = INCBIN_U16("graphics/intro/scene_3/misc.gbapal"); // Unused +static const u32 sIntroMisc_Gfx[] = INCBIN_U32("graphics/intro/scene_3/misc.4bpp.lz"); // Rayquza orb, and misc unused gfx +static const u16 sIntroFlygonSilhouette_Pal[] = INCBIN_U16("graphics/intro/scene_1/flygon.gbapal"); +static const u32 sIntroLati_Gfx[] = INCBIN_U32("graphics/intro/scene_1/lati.4bpp.lz"); // Unused +static const u8 sUnusedData[] = { 0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x02, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x02, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x02, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x00 }; -static const struct CompressedSpriteSheet gIntroSpriteSheet_Sparkle[] = +static const struct CompressedSpriteSheet sSpriteSheet_Sparkle[] = { - {gIntro1SparkleGfx, 0x400, 1505}, - {NULL}, + {gIntroSparkle_Gfx, 0x400, TAG_SPARKLE}, + {}, }; -static const struct SpritePalette gIntroPalette_Lightning[] = +static const struct SpritePalette sSpritePalette_Sparkle[] = { - {gIntro3LightningPal, 1505}, - {NULL}, + {gIntroLightning_Pal, TAG_SPARKLE}, // Lightning palette re-used + {}, }; -static const struct OamData gUnknown_085E4A94 = +static const struct OamData sOamData_Sparkle = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -153,7 +227,7 @@ static const struct OamData gUnknown_085E4A94 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4A9C[] = +static const union AnimCmd sAnim_Sparkle[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(4, 2), @@ -162,53 +236,52 @@ static const union AnimCmd gUnknown_085E4A9C[] = ANIMCMD_FRAME(16, 2), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_085E4AB4[] = +static const union AnimCmd *const sAnims_Sparkle[] = { - gUnknown_085E4A9C, + sAnim_Sparkle, }; -static void sub_816D338(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4AB8 = +static const struct SpriteTemplate sSpriteTemplate_Sparkle = { - .tileTag = 1505, - .paletteTag = 1505, - .oam = &gUnknown_085E4A94, - .anims = gUnknown_085E4AB4, + .tileTag = TAG_SPARKLE, + .paletteTag = TAG_SPARKLE, + .oam = &sOamData_Sparkle, + .anims = sAnims_Sparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816D338, + .callback = SpriteCB_Sparkle, }; -static const u8 gUnknown_085E4AD0[][2] = +static const u8 sSparkleCoords[][2] = { - {0x7C, 0x28}, - {0x66, 0x1E}, - {0x4D, 0x1E}, - {0x36, 0x0F}, - {0x94, 0x09}, - {0x3F, 0x1C}, - {0x5D, 0x28}, - {0x94, 0x20}, - {0xAD, 0x29}, - {0x5E, 0x14}, - {0xD0, 0x26}, - {0x00, 0x00}, + {124, 40}, + {102, 30}, + { 77, 30}, + { 54, 15}, + {148, 9}, + { 63, 28}, + { 93, 40}, + {148, 32}, + {173, 41}, + { 94, 20}, + {208, 38}, + {}, }; -static const struct CompressedSpriteSheet gIntroPokemonRunningSpriteSheet[] = +static const struct CompressedSpriteSheet sSpriteSheet_RunningPokemon[] = { - {gIntro2VolbeatGfx, 0x400, 1500}, - {gIntro2TorchicGfx, 0xC00, 1501}, - {gIntro2ManectricGfx, 0x2000, 1502}, - {NULL}, + {gIntroVolbeat_Gfx, 0x400, TAG_VOLBEAT}, + {gIntroTorchic_Gfx, 0xC00, TAG_TORCHIC}, + {gIntroManectric_Gfx, 0x2000, TAG_MANECTRIC}, + {}, }; -static const struct SpritePalette gIntroPokemonRunningPalette[] = +static const struct SpritePalette sSpritePalettes_RunningPokemon[] = { - {gIntro2VolbeatPal, 1500}, - {gIntro2TorchicPal, 1501}, - {gIntro2ManectricPal, 1502}, - {NULL}, + {gIntroVolbeat_Pal, TAG_VOLBEAT}, + {gIntroTorchic_Pal, TAG_TORCHIC}, + {gIntroManectric_Pal, TAG_MANECTRIC}, + {}, }; -static const struct OamData gUnknown_085E4B28 = +static const struct OamData sOamData_Volbeat = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -222,30 +295,29 @@ static const struct OamData gUnknown_085E4B28 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4B30[] = +static const union AnimCmd sAnim_Volbeat[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(16, 2), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_085E4B3C[] = +static const union AnimCmd *const sAnims_Volbeat[] = { - gUnknown_085E4B30, + sAnim_Volbeat, }; -static void sub_816D81C(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4B40 = +static const struct SpriteTemplate sSpriteTemplate_Volbeat = { - .tileTag = 1500, - .paletteTag = 1500, - .oam = &gUnknown_085E4B28, - .anims = gUnknown_085E4B3C, + .tileTag = TAG_VOLBEAT, + .paletteTag = TAG_VOLBEAT, + .oam = &sOamData_Volbeat, + .anims = sAnims_Volbeat, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816D81C, + .callback = SpriteCB_Volbeat, }; -static const struct OamData gUnknown_085E4B58 = +static const struct OamData sOamData_Torchic = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -259,7 +331,7 @@ static const struct OamData gUnknown_085E4B58 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4B60[] = +static const union AnimCmd sAnim_Torchic_Walk[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -267,7 +339,7 @@ static const union AnimCmd gUnknown_085E4B60[] = ANIMCMD_FRAME(16, 5), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_085E4B74[] = +static const union AnimCmd sAnim_Torchic_Run[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -275,33 +347,37 @@ static const union AnimCmd gUnknown_085E4B74[] = ANIMCMD_FRAME(16, 3), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_085E4B88[] = +static const union AnimCmd sAnim_Torchic_Trip[] = { ANIMCMD_FRAME(48, 4), ANIMCMD_FRAME(64, 6), ANIMCMD_FRAME(80, 0), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E4B98[] = -{ - gUnknown_085E4B60, - gUnknown_085E4B74, - gUnknown_085E4B88, +enum { + TORCHIC_ANIM_WALK, + TORCHIC_ANIM_RUN, + TORCHIC_ANIM_TRIP, }; -static void sub_816D9C0(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4BA4 = +static const union AnimCmd *const sAnims_Torchic[] = { - .tileTag = 1501, - .paletteTag = 1501, - .oam = &gUnknown_085E4B58, - .anims = gUnknown_085E4B98, + [TORCHIC_ANIM_WALK] = sAnim_Torchic_Walk, + [TORCHIC_ANIM_RUN] = sAnim_Torchic_Run, + [TORCHIC_ANIM_TRIP] = sAnim_Torchic_Trip, +}; +static const struct SpriteTemplate sSpriteTemplate_Torchic = +{ + .tileTag = TAG_TORCHIC, + .paletteTag = TAG_TORCHIC, + .oam = &sOamData_Torchic, + .anims = sAnims_Torchic, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816D9C0, + .callback = SpriteCB_Torchic, }; -static const struct OamData gUnknown_085E4BBC = +static const struct OamData sOamData_Manectric = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -315,7 +391,7 @@ static const struct OamData gUnknown_085E4BBC = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4BC4[] = +static const union AnimCmd sAnim_Manectric[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(64, 4), @@ -323,34 +399,33 @@ static const union AnimCmd gUnknown_085E4BC4[] = ANIMCMD_FRAME(192, 4), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_085E4BD8[] = +static const union AnimCmd *const sAnims_Manectric[] = { - gUnknown_085E4BC4, + sAnim_Manectric, }; -static void sub_816DAE8(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4BDC = +static const struct SpriteTemplate sSpriteTemplate_Manectric = { - .tileTag = 1502, - .paletteTag = 1502, - .oam = &gUnknown_085E4BBC, - .anims = gUnknown_085E4BD8, + .tileTag = TAG_MANECTRIC, + .paletteTag = TAG_MANECTRIC, + .oam = &sOamData_Manectric, + .anims = sAnims_Manectric, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816DAE8, + .callback = SpriteCB_Manectric, }; -static const struct CompressedSpriteSheet gIntroRayquazaLightningSpriteSheet[] = +static const struct CompressedSpriteSheet sSpriteSheet_Lightning[] = { - {gIntro3LightningGfx, 0xC00, 1503}, - {NULL}, + {gIntroLightning_Gfx, 0xC00, TAG_LIGHTNING}, + {}, }; -static const struct SpritePalette gIntroRayquazaLightningPalette[] = +static const struct SpritePalette sSpritePalette_Lightning[] = { - {gIntro3LightningPal, 1503}, - {NULL}, + {gIntroLightning_Pal, TAG_LIGHTNING}, + {}, }; -static const struct OamData gUnknown_085E4C14 = +static const struct OamData sOamData_Lightning = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -364,78 +439,84 @@ static const struct OamData gUnknown_085E4C14 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4C1C[] = +static const union AnimCmd sAnim_Lightning_Top[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(48, 2), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4C28[] = +static const union AnimCmd sAnim_Lightning_Middle[] = { ANIMCMD_FRAME(16, 2), ANIMCMD_FRAME(64, 2), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4C34[] = +static const union AnimCmd sAnim_Lightning_Bottom[] = { ANIMCMD_FRAME(32, 2), ANIMCMD_FRAME(80, 2), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E4C40[] = +static const union AnimCmd *const sAnims_Lightning[] = { - gUnknown_085E4C1C, - gUnknown_085E4C28, - gUnknown_085E4C34, + sAnim_Lightning_Top, + sAnim_Lightning_Middle, + sAnim_Lightning_Bottom, }; -static void SpriteCB_IntroRayquazaLightning(struct Sprite *sprite); -static const struct SpriteTemplate gIntroLightningSprite = +static const struct SpriteTemplate sSpriteTemplate_Lightning = { - .tileTag = 1503, - .paletteTag = 1503, - .oam = &gUnknown_085E4C14, - .anims = gUnknown_085E4C40, + .tileTag = TAG_LIGHTNING, + .paletteTag = TAG_LIGHTNING, + .oam = &sOamData_Lightning, + .anims = sAnims_Lightning, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_IntroRayquazaLightning, + .callback = SpriteCB_Lightning, }; -static const s16 gIntroGroudonRockData[][3] = +// x coord, anim number, speed +// Smaller anim numbers are larger rocks, and are given slower speeds +static const s16 sGroudonRockData[][3] = { - {0x68, 0x00, 0x0C0}, - {0x8E, 0x03, 0x280}, - {0x53, 0x01, 0x180}, - {0x9B, 0x00, 0x080}, - {0x38, 0x02, 0x200}, - {0xAE, 0x01, 0x100}, + {104, 0, 0x0C0}, + {142, 3, 0x280}, + { 83, 1, 0x180}, + {155, 0, 0x080}, + { 56, 2, 0x200}, + {174, 1, 0x100}, }; -static const struct CompressedSpriteSheet gUnknown_085E4C88[] = +static const struct CompressedSpriteSheet sSpriteSheet_Bubbles[] = { - {gIntro2BubblesGfx, 0x600, 1504}, - {NULL}, + {gIntroBubbles_Gfx, 0x600, TAG_BUBBLES}, + {}, }; -static const struct SpritePalette gUnknown_085E4C98[] = +static const struct SpritePalette sSpritePalette_Bubbles[] = { - {gIntro2BubblesPal, 1504}, - {NULL}, + {gIntroBubbles_Pal, TAG_BUBBLES}, + {}, }; -static const s16 gIntroKyogreBubbleData[][3] = +#define NUM_BUBBLES_IN_SET 6 +// x coord, y coord, delay before animation +// Can be produced in two different sets depending on the function called to create the sprites +static const s16 sKyogreBubbleData[NUM_BUBBLES_IN_SET * 2][3] = { - {0x42, 0x40, 0x1}, - {0x60, 0x60, 0x8}, - {0x80, 0x40, 0x1}, - {0x90, 0x30, 0x8}, - {0xA0, 0x48, 0x1}, - {0xB0, 0x60, 0x8}, - {0x60, 0x60, 0x4}, - {0x70, 0x68, 0x8}, - {0x80, 0x60, 0x4}, - {0x58, 0x20, 0x4}, - {0x68, 0x18, 0x8}, - {0x78, 0x20, 0x4}, + // Set 1, for Kyogre's body + { 66, 64, 1}, + { 96, 96, 8}, + {128, 64, 1}, + {144, 48, 8}, + {160, 72, 1}, + {176, 96, 8}, + // Set 2, for Kyogre's fins + { 96, 96, 4}, + {112, 104, 8}, + {128, 96, 4}, + { 88, 32, 4}, + {104, 24, 8}, + {120, 32, 4}, }; -static const struct OamData gUnknown_085E4CF0 = +static const struct OamData sOamData_Bubbles = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -449,7 +530,7 @@ static const struct OamData gUnknown_085E4CF0 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4CF8[] = +static const union AnimCmd sAnim_Bubbles[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(8, 4), @@ -458,24 +539,23 @@ static const union AnimCmd gUnknown_085E4CF8[] = ANIMCMD_FRAME(32, 4), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E4D10[] = +static const union AnimCmd *const sAnims_Bubbles[] = { - gUnknown_085E4CF8, + sAnim_Bubbles, }; -static void SpriteCB_IntroKyogreBubbles(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4D14 = +static const struct SpriteTemplate sSpriteTemplate_Bubbles = { - .tileTag = 1504, - .paletteTag = 1504, - .oam = &gUnknown_085E4CF0, - .anims = gUnknown_085E4D10, + .tileTag = TAG_BUBBLES, + .paletteTag = TAG_BUBBLES, + .oam = &sOamData_Bubbles, + .anims = sAnims_Bubbles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_IntroKyogreBubbles, + .callback = SpriteCB_KyogreBubbles, }; -static const struct OamData gUnknown_085E4D2C = +static const struct OamData sOamData_WaterDrop = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -489,45 +569,50 @@ static const struct OamData gUnknown_085E4D2C = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4D34[] = +enum { + DROP_ANIM_UPPER_HALF, + DROP_ANIM_LOWER_HALF, + DROP_ANIM_REFLECTION, + DROP_ANIM_RIPPLE, +}; +static const union AnimCmd sAnim_WaterDrop_UpperHalf[] = { ANIMCMD_FRAME(16, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4D3C[] = +static const union AnimCmd sAnim_WaterDrop_LowerHalf[] = { ANIMCMD_FRAME(24, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4D44[] = +static const union AnimCmd sAnim_WaterDrop_Reflection[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4D4C[] = +static const union AnimCmd sAnim_WaterDrop_Ripple[] = { ANIMCMD_FRAME(48, 8), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E4D54[] = +static const union AnimCmd *const sAnims_WaterDrop[] = { - gUnknown_085E4D34, - gUnknown_085E4D3C, - gUnknown_085E4D44, - gUnknown_085E4D4C, + [DROP_ANIM_UPPER_HALF] = sAnim_WaterDrop_UpperHalf, + [DROP_ANIM_LOWER_HALF] = sAnim_WaterDrop_LowerHalf, + [DROP_ANIM_REFLECTION] = sAnim_WaterDrop_Reflection, + [DROP_ANIM_RIPPLE] = sAnim_WaterDrop_Ripple, }; -static void sub_816F454(struct Sprite *sprite); -static const struct SpriteTemplate gIntroWaterDropSprite = +static const struct SpriteTemplate sSpriteTemplate_WaterDrop = { - .tileTag = 2000, - .paletteTag = 2000, - .oam = &gUnknown_085E4D2C, - .anims = gUnknown_085E4D54, + .tileTag = GFXTAG_DROPS_LOGO, + .paletteTag = PALTAG_DROPS, + .oam = &sOamData_WaterDrop, + .anims = sAnims_WaterDrop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816F454, + .callback = SpriteCB_WaterDrop, }; -static const union AnimCmd gUnknown_085E4D7C[] = +static const union AnimCmd sAnim_PlayerBicycle_Fast[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(64, 4), @@ -535,7 +620,7 @@ static const union AnimCmd gUnknown_085E4D7C[] = ANIMCMD_FRAME(192, 4), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_085E4D90[] = +static const union AnimCmd sAnim_PlayerBicycle_Slow[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(64, 8), @@ -543,30 +628,36 @@ static const union AnimCmd gUnknown_085E4D90[] = ANIMCMD_FRAME(192, 8), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_085E4DA4[] = +// The below two animations appear to be copied from the Credits version +// of the player graphic, where additional frames are present to show +// the player turning around to look at their rival. +// They go unused here, and if they were used they'd overflow beyond +// the player graphics data. +// The above sAnim_PlayerBicycle_Slow, while valid, is likewise unused +static const union AnimCmd sAnim_PlayerBicycle_LookBack[] = { ANIMCMD_FRAME(256, 4), - ANIMCMD_FRAME(0x140, 4), - ANIMCMD_FRAME(0x180, 4), + ANIMCMD_FRAME(320, 4), + ANIMCMD_FRAME(384, 4), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4DB4[] = +static const union AnimCmd sAnim_PlayerBicycle_LookForward[] = { - ANIMCMD_FRAME(0x180, 16), - ANIMCMD_FRAME(0x140, 16), + ANIMCMD_FRAME(384, 16), + ANIMCMD_FRAME(320, 16), ANIMCMD_FRAME(256, 16), ANIMCMD_END, }; -static const union AnimCmd *const gIntroBicycleAnimationCommands[] = +static const union AnimCmd *const sAnims_PlayerBicycle[] = { - gUnknown_085E4D7C, - gUnknown_085E4D90, - gUnknown_085E4DA4, - gUnknown_085E4DB4, + sAnim_PlayerBicycle_Fast, + sAnim_PlayerBicycle_Slow, + sAnim_PlayerBicycle_LookBack, + sAnim_PlayerBicycle_LookForward, }; -static const struct OamData gUnknown_085E4DD4 = +static const struct OamData sOamData_GameFreakLetter = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -580,9 +671,9 @@ static const struct OamData gUnknown_085E4DD4 = .paletteNum = 0, .affineParam = 0, }; -static const struct OamData gUnknown_085E4DDC = +static const struct OamData sOamData_PresentsLetter = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -596,9 +687,9 @@ static const struct OamData gUnknown_085E4DDC = .paletteNum = 0, .affineParam = 0, }; -static const struct OamData gUnknown_085E4DE4 = +static const struct OamData sOamData_GameFreakLogo = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, .mosaic = 0, @@ -612,193 +703,232 @@ static const struct OamData gUnknown_085E4DE4 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4DEC[] = +static const union AnimCmd sAnim_GameFreakLetter_G[] = { ANIMCMD_FRAME(80, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4DF4[] = +static const union AnimCmd sAnim_GameFreakLetter_A[] = { ANIMCMD_FRAME(84, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4DFC[] = +static const union AnimCmd sAnim_GameFreakLetter_M[] = { ANIMCMD_FRAME(88, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E04[] = +static const union AnimCmd sAnim_GameFreakLetter_E[] = { ANIMCMD_FRAME(92, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E0C[] = +static const union AnimCmd sAnim_GameFreakLetter_F[] = { ANIMCMD_FRAME(96, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E14[] = +static const union AnimCmd sAnim_GameFreakLetter_R[] = { ANIMCMD_FRAME(100, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E1C[] = +static const union AnimCmd sAnim_GameFreakLetter_K[] = { ANIMCMD_FRAME(104, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E24[] = +static const union AnimCmd sAnim_PresentsLetter_P[] = { ANIMCMD_FRAME(112, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E2C[] = +static const union AnimCmd sAnim_PresentsLetter_R[] = { ANIMCMD_FRAME(113, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E34[] = +static const union AnimCmd sAnim_PresentsLetter_E[] = { ANIMCMD_FRAME(114, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E3C[] = +static const union AnimCmd sAnim_PresentsLetter_S[] = { ANIMCMD_FRAME(115, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E44[] = +static const union AnimCmd sAnim_PresentsLetter_N[] = { ANIMCMD_FRAME(116, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E4C[] = +static const union AnimCmd sAnim_PresentsLetter_T[] = { ANIMCMD_FRAME(117, 8), ANIMCMD_END, }; -static const union AnimCmd gUnknown_085E4E54[] = +static const union AnimCmd sAnim_GameFreakLogo[] = { ANIMCMD_FRAME(128, 8), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E4E5C[] = -{ - gUnknown_085E4DEC, - gUnknown_085E4DF4, - gUnknown_085E4DFC, - gUnknown_085E4E04, - gUnknown_085E4E0C, - gUnknown_085E4E14, - gUnknown_085E4E1C, + +enum { + GAMEFREAK_G, + GAMEFREAK_A, + GAMEFREAK_M, + GAMEFREAK_E, + GAMEFREAK_F, + GAMEFREAK_R, + GAMEFREAK_K, }; -static const union AnimCmd *const gUnknown_085E4E78[] = -{ - gUnknown_085E4E24, - gUnknown_085E4E2C, - gUnknown_085E4E34, - gUnknown_085E4E3C, - gUnknown_085E4E44, - gUnknown_085E4E4C, +enum { + PRESENTS_P, + PRESENTS_R, + PRESENTS_E, + PRESENTS_S, + PRESENTS_N, + PRESENTS_T, }; -static const union AnimCmd *const gUnknown_085E4E90[] = +static const union AnimCmd *const sAnims_GameFreakLetter[] = { - gUnknown_085E4E54, + [GAMEFREAK_G] = sAnim_GameFreakLetter_G, + [GAMEFREAK_A] = sAnim_GameFreakLetter_A, + [GAMEFREAK_M] = sAnim_GameFreakLetter_M, + [GAMEFREAK_E] = sAnim_GameFreakLetter_E, + [GAMEFREAK_F] = sAnim_GameFreakLetter_F, + [GAMEFREAK_R] = sAnim_GameFreakLetter_R, + [GAMEFREAK_K] = sAnim_GameFreakLetter_K, }; -static const s16 gUnknown_085E4E94[][2] = +static const union AnimCmd *const sAnims_PresentsLetter[] = { - {0, -72}, - {1, -56}, - {2, -40}, - {3, -24}, - {4, 8}, - {5, 24}, - {3, 40}, - {1, 56}, - {6, 72}, - {0, -28}, - {1, -20}, - {2, -12}, - {3, -4}, - {2, 4}, - {4, 12}, - {5, 20}, - {3, 28}, + [PRESENTS_P] = sAnim_PresentsLetter_P, + [PRESENTS_R] = sAnim_PresentsLetter_R, + [PRESENTS_E] = sAnim_PresentsLetter_E, + [PRESENTS_S] = sAnim_PresentsLetter_S, + [PRESENTS_N] = sAnim_PresentsLetter_N, + [PRESENTS_T] = sAnim_PresentsLetter_T, }; -static const union AffineAnimCmd gUnknown_085E4ED8[] = +static const union AnimCmd *const sAnims_GameFreakLogo[] = +{ + sAnim_GameFreakLogo, +}; +#define NUM_GF_LETTERS 9 // Letters in "Game Freak" +static const s16 sGameFreakLetterData[NUM_GF_LETTERS][2] = +{ + // Letter, x offset + {GAMEFREAK_G, -72}, + {GAMEFREAK_A, -56}, + {GAMEFREAK_M, -40}, + {GAMEFREAK_E, -24}, + {GAMEFREAK_F, 8}, + {GAMEFREAK_R, 24}, + {GAMEFREAK_E, 40}, + {GAMEFREAK_A, 56}, + {GAMEFREAK_K, 72}, +}; +static const s16 sPresentsLetterData[][2] = +{ + // Letter, x offset + {PRESENTS_P, -28}, + {PRESENTS_R, -20}, + {PRESENTS_E, -12}, + {PRESENTS_S, -4}, + {PRESENTS_E, 4}, + {PRESENTS_N, 12}, + {PRESENTS_T, 20}, + {PRESENTS_S, 28}, +}; +static const union AffineAnimCmd sAffineAnim_GameFreak_Small[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_085E4EE8[] = +static const union AffineAnimCmd sAffineAnim_GameFreak_GrowAndShrink[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_FRAME(16, 16, 0, 16), AFFINEANIMCMD_FRAME(-16, -16, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_085E4F08[] = +static const union AffineAnimCmd sAffineAnim_GameFreak_GrowBig[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(8, 8, 0, 48), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_085E4F20[] = +static const union AffineAnimCmd sAffineAnim_GameFreak_GrowMedium[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(2, 2, 0, 48), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_085E4F38[] = +static const union AffineAnimCmd *const sAffineAnims_GameFreak[] = { - gUnknown_085E4ED8, - gUnknown_085E4EE8, - gUnknown_085E4F08, - gUnknown_085E4F20, + sAffineAnim_GameFreak_Small, // Initialize letters while still invisible + sAffineAnim_GameFreak_GrowAndShrink, // For letters appearing. Logo does this too, but while it's invisible + sAffineAnim_GameFreak_GrowBig, // For letters disappearing + sAffineAnim_GameFreak_GrowMedium, // For logo disappearing }; -static const u16 gUnknown_085E4F48[] = +static const u16 sGameFreakLettersMoveSpeed[NUM_GF_LETTERS] = { - 0x100, 0xC0, 0x80, 0x40, 0x00, 0x40, 0x80, 0xC0, 0x100 + 256, // G + 192, // A + 128, // M + 64, // E + 0, // F + 64, // R + 128, // E + 192, // A + 256 // K }; -static void sub_816FB38(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4F5C = +static const struct SpriteTemplate sSpriteTemplate_GameFreakLetter = { - .tileTag = 2000, - .paletteTag = 2001, - .oam = &gUnknown_085E4DD4, - .anims = gUnknown_085E4E5C, + .tileTag = GFXTAG_DROPS_LOGO, + .paletteTag = PALTAG_LOGO, + .oam = &sOamData_GameFreakLetter, + .anims = sAnims_GameFreakLetter, .images = NULL, - .affineAnims = gUnknown_085E4F38, - .callback = sub_816FB38, + .affineAnims = sAffineAnims_GameFreak, + .callback = SpriteCB_LogoLetter, }; -static const struct SpriteTemplate gUnknown_085E4F74 = +// Unused +static const struct SpriteTemplate sSpriteTemplate_PresentsLetter = { - .tileTag = 2000, - .paletteTag = 2001, - .oam = &gUnknown_085E4DDC, - .anims = gUnknown_085E4E78, + .tileTag = GFXTAG_DROPS_LOGO, + .paletteTag = PALTAG_LOGO, + .oam = &sOamData_PresentsLetter, + .anims = sAnims_PresentsLetter, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816FB38, + .callback = SpriteCB_LogoLetter, }; -static void sub_816FD44(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4F8C = +static const struct SpriteTemplate sSpriteTemplate_GameFreakLogo = { - .tileTag = 2000, - .paletteTag = 2001, - .oam = &gUnknown_085E4DE4, - .anims = gUnknown_085E4E90, + .tileTag = GFXTAG_DROPS_LOGO, + .paletteTag = PALTAG_LOGO, + .oam = &sOamData_GameFreakLogo, + .anims = sAnims_GameFreakLogo, .images = NULL, - .affineAnims = gUnknown_085E4F38, - .callback = sub_816FD44, + .affineAnims = sAffineAnims_GameFreak, + .callback = SpriteCB_GameFreakLogo, }; -static const u8 gUnknown_085E4FA4[] = +static const u8 sGameFreakLetterStartDelays[NUM_GF_LETTERS] = { - 0x00, 0x17, 0x17, 0x31, 0x3E, 0x24, 0x24, 0x0A, 0x0A + 0, // G + 23, // A + 23, // M + 49, // E + 62, // F + 36, // R + 36, // E + 10, // A + 10 // K }; -static const struct OamData gUnknown_085E4FB0 = +static const struct OamData sOamData_FlygonSilhouette = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -812,46 +942,45 @@ static const struct OamData gUnknown_085E4FB0 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E4FB8[] = +static const union AnimCmd sAnim_FlygonSilhouette[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_085E4FC0[] = +static const union AnimCmd *const sAnims_FlygonSilhouette[] = { - gUnknown_085E4FB8, + sAnim_FlygonSilhouette, }; -static void sub_816FEDC(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4FC4 = +static const struct SpriteTemplate sSpriteTemplate_FlygonSilhouette = { - .tileTag = 2002, - .paletteTag = 2002, - .oam = &gUnknown_085E4FB0, - .anims = gUnknown_085E4FC0, + .tileTag = TAG_FLYGON_SILHOUETTE, + .paletteTag = TAG_FLYGON_SILHOUETTE, + .oam = &sOamData_FlygonSilhouette, + .anims = sAnims_FlygonSilhouette, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816FEDC, + .callback = SpriteCB_FlygonSilhouette, }; -static const struct CompressedSpriteSheet gIntroSpriteSheet_WaterDropAndLogo[] = +static const struct CompressedSpriteSheet sSpriteSheet_WaterDropsAndLogo[] = { - {gIntroTiles, 0x1400, 2000}, - {NULL}, + {sIntroDropsLogo_Gfx, 0x1400, GFXTAG_DROPS_LOGO}, + {}, }; -static const struct CompressedSpriteSheet gIntroSpriteSheet_Flygon[] = +static const struct CompressedSpriteSheet sSpriteSheet_FlygonSilhouette[] = { - {gIntro1FlygonGfx, 0x400, 2002}, - {NULL}, + {gIntroFlygonSilhouette_Gfx, 0x400, TAG_FLYGON_SILHOUETTE}, + {}, }; -static const struct SpritePalette gIntroPalette_DropLogoFlygon[] = +static const struct SpritePalette sSpritePalettes_Intro1[] = { - {gIntro1DropsPal, 2000}, - {gIntro1GFLogoPal, 2001}, - {gIntro1FlygonPalette, 2002}, - {NULL}, + {sIntroDrops_Pal, PALTAG_DROPS}, + {sIntroLogo_Pal, PALTAG_LOGO}, + {sIntroFlygonSilhouette_Pal, TAG_FLYGON_SILHOUETTE}, + {}, }; -static const struct OamData gUnknown_085E501C = +static const struct OamData sOamData_RayquazaOrb = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -865,86 +994,36 @@ static const struct OamData gUnknown_085E501C = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gUnknown_085E5024[] = +static const union AnimCmd sAnim_RayquazaOrb[] = { ANIMCMD_FRAME(16, 8), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E502C[] = +static const union AnimCmd *const sAnims_RayquazaOrb[] = { - gUnknown_085E5024, + sAnim_RayquazaOrb, }; -static void SpriteCB_IntroRayquazaHyperbeam(struct Sprite *sprite); -static const struct SpriteTemplate gIntroRayquazaHyperbeamSprite = +static const struct SpriteTemplate sSpriteTemplate_RayquazaOrb = { - .tileTag = 2003, - .paletteTag = 2003, - .oam = &gUnknown_085E501C, - .anims = gUnknown_085E502C, + .tileTag = TAG_RAYQUAZA_ORB, + .paletteTag = TAG_RAYQUAZA_ORB, + .oam = &sOamData_RayquazaOrb, + .anims = sAnims_RayquazaOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_IntroRayquazaHyperbeam, + .callback = SpriteCB_RayquazaOrb, }; -static const struct CompressedSpriteSheet gIntroRayquazaGlowSpriteSheet[] = +static const struct CompressedSpriteSheet sSpriteSheet_RayquazaOrb[] = { - {gIntro3MiscTiles, 0xA00, 2003}, - {NULL}, + {sIntroMisc_Gfx, 0xA00, TAG_RAYQUAZA_ORB}, + {}, }; -static const struct SpritePalette gIntroRayquazaGlowPalette[] = +static const struct SpritePalette sSpritePalette_RayquazaOrb[] = { - {gIntro3Misc1Palette, 2003}, - {NULL}, + {sIntroRayquzaOrb_Pal, TAG_RAYQUAZA_ORB}, + {}, }; -// this file's functions -static void MainCB2_EndIntro(void); -static void Task_IntroLoadPart1Graphics(u8); -static u8 CreateWaterDrop(s16, s16, u16, u16, u16, u8); -static void Task_IntroFadeIn(u8); -static void intro_reset_and_hide_bgs(void); -static void Task_IntroWaterDrops(u8); -static void Task_IntroWaterDrops_1(u8); -static void Task_IntroWaterDrops_2(u8); -static void Task_IntroWaterDrops_3(u8); -static void Task_IntroScrollDownAndShowFlygon(u8); -static void Task_IntroWaitToSetupPart2(u8); -static void Task_IntroLoadPart2Graphics(u8); -static void Task_IntroStartBikeRide(u8); -static void Task_IntroHandleBikeAndFlygonMovement(u8); -static void Task_IntroWaitToSetupPart3(u8); -static void Task_IntroLoadPart3Graphics(u8); -static void Task_IntroSpinAndZoomPokeball(u8); -static void Task_IntroWaitToSetupPart3LegendsFight(u8); -static void Task_IntroLoadGroudonScene(u8); -static void Task_IntroLoadPart3Graphics1(u8); -static void Task_IntroLoadPart3Graphics2(u8); -static void Task_IntroLoadPart3Graphics3(u8); -static void Task_IntroLoadPart3Graphics4(u8); -static void Task_IntroGroudonScene(u8); -static void Task_IntroLoadKyogreScene(u8); -static void Task_IntroKyogreScene(u8); -static void Task_IntroLoadClouds1(u8); -static void Task_IntroLoadClouds2(u8); -static void Task_IntroLoadClouds3(u8); -static void Task_IntroCloudScene(u8); -static void Task_IntroLoadRayquazaLightningScene(u8); -static void Task_IntroRayquazaLightningScene(u8); -static void Task_IntroLoadRayquazaGlowScene(u8); -static void Task_IntroRayquazaGlowScene_0(u8); -static void Task_EndIntroMovie(u8); -static void CreateGroudonRockSprites(u8); -static void SpriteCB_IntroGroudonRocks(struct Sprite *); -static void CreateKyogreBubbleSprites_0(u8); -static void CreateKyogreBubbleSprites_1(void); -static void Task_IntroRayquazaGlowScene_1(u8); -static void sub_816F46C(struct Sprite *); -static void sub_816F5B4(struct Sprite *); -static void sub_816F660(struct Sprite *); -static void SpriteCB_WaterDropFall(struct Sprite *); -static void sub_816F318(struct Sprite *); -static void SpriteCB_IntroGraphicsBicycle(struct Sprite *); -static void SpriteCB_IntroGraphicsFlygon(struct Sprite *); -static u8 CreatePart1Animations(s16, s16, s16); static void VBlankCB_Intro(void) { @@ -976,7 +1055,7 @@ static void LoadCopyrightGraphics(u16 tilesetAddress, u16 tilemapAddress, u16 pa { LZ77UnCompVram(gIntroCopyright_Gfx, (void *)(VRAM + tilesetAddress)); LZ77UnCompVram(gIntroCopyright_Tilemap, (void *)(VRAM + tilemapAddress)); - LoadPalette(gIntroCopyright_Pal, paletteAddress, 0x20); + LoadPalette(gIntroCopyright_Pal, paletteAddress, 32); } static void SerialCB_CopyrightScreen(void) @@ -986,8 +1065,6 @@ static void SerialCB_CopyrightScreen(void) static u8 SetUpCopyrightScreen(void) { - u16 ime; - switch (gMain.state) { case 0: @@ -995,7 +1072,7 @@ static u8 SetUpCopyrightScreen(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); - *(u16 *)PLTT = 0x7FFF; + *(u16 *)PLTT = RGB_WHITE; SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_BG0HOFS, 0); SetGpuReg(REG_OFFSET_BG0VOFS, 0); @@ -1008,7 +1085,7 @@ static u8 SetUpCopyrightScreen(void) ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) @@ -1028,24 +1105,24 @@ static u8 SetUpCopyrightScreen(void) GameCubeMultiBoot_Main(&gMultibootProgramStruct); if (gMultibootProgramStruct.gcmb_field_2 != 1) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gMain.state++; } break; case 141: if (UpdatePaletteFade()) break; - CreateTask(Task_IntroLoadPart1Graphics, 0); + CreateTask(Task_Scene1_Load, 0); SetMainCallback2(MainCB2_Intro); if (gMultibootProgramStruct.gcmb_field_2 != 0) { if (gMultibootProgramStruct.gcmb_field_2 == 2) { // check the multiboot ROM header game code to see if we already did this - if (*(u32 *)(EWRAM_START + 0xAC) == 0x65366347) // "Gc6e" in ASCII + if (*(u32 *)(EWRAM_START + 0xAC) == COLOSSEUM_GAME_CODE) { CpuCopy16(&gMultiBootProgram_PokemonColosseum_Start, (void *)EWRAM_START, sizeof(gMultiBootProgram_PokemonColosseum_Start)); - *(u32 *)(EWRAM_START + 0xAC) = 0x65366347; + *(u32 *)(EWRAM_START + 0xAC) = COLOSSEUM_GAME_CODE; } GameCubeMultiBoot_ExecuteProgram(&gMultibootProgramStruct); } @@ -1081,540 +1158,639 @@ void CB2_InitCopyrightScreenAfterTitleScreen(void) SetUpCopyrightScreen(); } -static void Task_IntroLoadPart1Graphics(u8 taskId) +#define sBigDropSpriteId data[0] + +static void Task_Scene1_Load(u8 taskId) { SetVBlankCallback(NULL); - gIntroCharacterGender = Random() & 1; - intro_reset_and_hide_bgs(); + sIntroCharacterGender = Random() & 1; + IntroResetGpuRegs(); SetGpuReg(REG_OFFSET_BG3VOFS, 0); - SetGpuReg(REG_OFFSET_BG2VOFS, 0x50); - SetGpuReg(REG_OFFSET_BG1VOFS, 0x18); - SetGpuReg(REG_OFFSET_BG0VOFS, 0x28); - LZ77UnCompVram(gIntro1BGLeavesGfx, (void *)VRAM); - LZ77UnCompVram(gIntro1BG0_Tilemap, (void *)(BG_CHAR_ADDR(2))); - DmaClear16(3, BG_SCREEN_ADDR(17), 0x800); - LZ77UnCompVram(gIntro1BG1_Tilemap, (void *)(BG_SCREEN_ADDR(18))); - DmaClear16(3, BG_SCREEN_ADDR(19), 0x800); - LZ77UnCompVram(gIntro1BG2_Tilemap, (void *)(BG_SCREEN_ADDR(20))); - DmaClear16(3, BG_SCREEN_ADDR(21), 0x800); - LZ77UnCompVram(gIntro1BG3_Tilemap, (void *)(BG_SCREEN_ADDR(22))); - DmaClear16(3, BG_SCREEN_ADDR(23), 0x800); - LoadPalette(gIntro1BGPals, 0, sizeof(gIntro1BGPals)); + SetGpuReg(REG_OFFSET_BG2VOFS, 80); + SetGpuReg(REG_OFFSET_BG1VOFS, 24); + SetGpuReg(REG_OFFSET_BG0VOFS, 40); + LZ77UnCompVram(sIntro1Bg_Gfx, (void *)VRAM); + LZ77UnCompVram(sIntro1Bg0_Tilemap, (void *)(BG_CHAR_ADDR(2))); + DmaClear16(3, BG_SCREEN_ADDR(17), BG_SCREEN_SIZE); + LZ77UnCompVram(sIntro1Bg1_Tilemap, (void *)(BG_SCREEN_ADDR(18))); + DmaClear16(3, BG_SCREEN_ADDR(19), BG_SCREEN_SIZE); + LZ77UnCompVram(sIntro1Bg2_Tilemap, (void *)(BG_SCREEN_ADDR(20))); + DmaClear16(3, BG_SCREEN_ADDR(21), BG_SCREEN_SIZE); + LZ77UnCompVram(sIntro1Bg3_Tilemap, (void *)(BG_SCREEN_ADDR(22))); + DmaClear16(3, BG_SCREEN_ADDR(23), BG_SCREEN_SIZE); + LoadPalette(sIntro1Bg_Pal, 0, sizeof(sIntro1Bg_Pal)); SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(22) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(20) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(18) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(16) | BGCNT_16COLOR | BGCNT_TXT256x512); - LoadCompressedSpriteSheet(gIntroSpriteSheet_WaterDropAndLogo); - LoadCompressedSpriteSheet(gIntroSpriteSheet_Flygon); - LoadSpritePalettes(gIntroPalette_DropLogoFlygon); - LoadCompressedSpriteSheet(gIntroSpriteSheet_Sparkle); - LoadSpritePalettes(gIntroPalette_Lightning); - CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1F0, 0x20); - CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1E1, 0x1E); - CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1D2, 0x1C); - CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1C3, 0x1A); - CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1B4, 0x18); - CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1A5, 0x16); - CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x196, 0x14); - CreatePart1Animations(0x78, 0x50, 0); - gTasks[taskId].data[0] = CreateWaterDrop(236, -14, 0x200, 1, 0x78, FALSE); - gTasks[taskId].func = Task_IntroFadeIn; + LoadCompressedSpriteSheet(sSpriteSheet_WaterDropsAndLogo); + LoadCompressedSpriteSheet(sSpriteSheet_FlygonSilhouette); + LoadSpritePalettes(sSpritePalettes_Intro1); + LoadCompressedSpriteSheet(sSpriteSheet_Sparkle); + LoadSpritePalettes(sSpritePalette_Sparkle); + CpuCopy16(&gPlttBufferUnfaded[0x100], &gPlttBufferUnfaded[0x1F0], 0x20); + CpuCopy16(&gPlttBufferUnfaded[0x100], &gPlttBufferUnfaded[0x1E1], 0x1E); + CpuCopy16(&gPlttBufferUnfaded[0x100], &gPlttBufferUnfaded[0x1D2], 0x1C); + CpuCopy16(&gPlttBufferUnfaded[0x100], &gPlttBufferUnfaded[0x1C3], 0x1A); + CpuCopy16(&gPlttBufferUnfaded[0x100], &gPlttBufferUnfaded[0x1B4], 0x18); + CpuCopy16(&gPlttBufferUnfaded[0x100], &gPlttBufferUnfaded[0x1A5], 0x16); + CpuCopy16(&gPlttBufferUnfaded[0x100], &gPlttBufferUnfaded[0x196], 0x14); + CreateGameFreakLogoSprites(120, 80, 0); + gTasks[taskId].sBigDropSpriteId = CreateWaterDrop(236, -14, 0x200, 1, 0x78, FALSE); + gTasks[taskId].func = Task_Scene1_FadeIn; } -static void Task_IntroFadeIn(u8 taskId) +static void Task_Scene1_FadeIn(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); SetVBlankCallback(VBlankCB_Intro); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); - gTasks[taskId].func = Task_IntroWaterDrops; + gTasks[taskId].func = Task_Scene1_WaterDrops; gIntroFrameCounter = 0; m4aSongNumStart(MUS_INTRO); ResetSerial(); } -static void Task_IntroWaterDrops(u8 taskId) +// Task data for Task_Scene1_PanUp +#define tBg2PosHi data[1] +#define tBg2PosLo data[2] +#define tBg1PosHi data[3] +#define tBg1PosLo data[4] +#define tBg3PosHi data[5] +#define tBg3PosLo data[6] + +static void Task_Scene1_WaterDrops(u8 taskId) { - //start moving rock - if (gIntroFrameCounter == 76) - gSprites[gTasks[taskId].data[0]].data[0] = 1; + if (gIntroFrameCounter == TIMER_BIG_DROP_START) + gSprites[gTasks[taskId].sBigDropSpriteId].sState = 1; - if (gIntroFrameCounter == 128) - CreateTask(Task_IntroWaterDrops_1, 0); + if (gIntroFrameCounter == TIMER_LOGO_APPEAR) + CreateTask(Task_BlendLogoIn, 0); - //drop rock - if (gIntroFrameCounter == 251) - gSprites[gTasks[taskId].data[0]].data[0] = 2; + if (gIntroFrameCounter == TIMER_BIG_DROP_FALLS) + gSprites[gTasks[taskId].sBigDropSpriteId].sState = 2; - if (gIntroFrameCounter == 256) - CreateTask(Task_IntroWaterDrops_2, 0); + if (gIntroFrameCounter == TIMER_LOGO_BLEND_OUT) + CreateTask(Task_BlendLogoOut, 0); - if (gIntroFrameCounter == 368) + if (gIntroFrameCounter == TIMER_SMALL_DROP_1) CreateWaterDrop(48, 0, 0x400, 5, 0x70, TRUE); - if (gIntroFrameCounter == 384) + if (gIntroFrameCounter == TIMER_SMALL_DROP_2) CreateWaterDrop(200, 60, 0x400, 9, 0x80, TRUE); - if (gIntroFrameCounter == 560) - CreateTask(Task_IntroWaterDrops_3, 0); + if (gIntroFrameCounter == TIMER_SPARKLES) + CreateTask(Task_CreateSparkles, 0); - if (gIntroFrameCounter > 560) + if (gIntroFrameCounter > TIMER_SPARKLES) { - gTasks[taskId].data[1] = 0x50; - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3] = 0x18; - gTasks[taskId].data[4] = 0; - gTasks[taskId].data[5] = 0x28; - gTasks[taskId].data[6] = 0; - gTasks[taskId].func = Task_IntroScrollDownAndShowFlygon; + gTasks[taskId].tBg2PosHi = 80; + gTasks[taskId].tBg2PosLo = 0; + gTasks[taskId].tBg1PosHi = 24; + gTasks[taskId].tBg1PosLo = 0; + gTasks[taskId].tBg3PosHi = 40; + gTasks[taskId].tBg3PosLo = 0; + gTasks[taskId].func = Task_Scene1_PanUp; } } -static void Task_IntroWaterDrops_3(u8 taskId) +#define tDelay data[1] +#define tTimer data[2] +#define tTimerSteps data[3] +#define tNumSparkles data[4] + +static void Task_CreateSparkles(u8 taskId) { s16 *data = gTasks[taskId].data; - if (++data[2] & 1) - data[3]++; - switch (data[0]) + if (++tTimer & 1) + tTimerSteps++; + + switch (tState) { case 0: - CreateSprite(&gUnknown_085E4AB8, gUnknown_085E4AD0[data[4]][0], gUnknown_085E4AD0[data[4]][1] + data[3], 0); - data[0]++; - data[1] = 0xC; - data[4]++; + CreateSprite(&sSpriteTemplate_Sparkle, sSparkleCoords[tNumSparkles][0], sSparkleCoords[tNumSparkles][1] + tTimerSteps, 0); + tState++; + tDelay = 12; + tNumSparkles++; break; case 1: - if (!--data[1]) - data[0] = 0; + if (--tDelay == 0) + tState = 0; break; } - if (data[3] > 0x3C) + if (tTimerSteps > 60) DestroyTask(taskId); } -static void sub_816D338(struct Sprite *sprite) +#undef tDelay +#undef tTimer +#undef tTimerSteps +#undef tNumSparkles + +#define sTimer data[0] +static void SpriteCB_Sparkle(struct Sprite *sprite) { - if (++sprite->data[0] == 0xC) + if (++sprite->sTimer == 12) DestroySprite(sprite); } +#undef sTimer -static void Task_IntroScrollDownAndShowFlygon(u8 taskId) +static void Task_Scene1_PanUp(u8 taskId) { - if (gIntroFrameCounter < 904) + if (gIntroFrameCounter < TIMER_END_PAN_UP) { - s32 r2; + s32 offset; - //slide backgrounds downward - r2 = (gTasks[taskId].data[1] << 16) + (u16)gTasks[taskId].data[2]; - r2 -= 0x6000; - gTasks[taskId].data[1] = r2 >> 16; - gTasks[taskId].data[2] = r2; - SetGpuReg(REG_OFFSET_BG2VOFS, gTasks[taskId].data[1]); - r2 = (gTasks[taskId].data[3] << 16) + (u16)gTasks[taskId].data[4]; - r2 -= 0x8000; - gTasks[taskId].data[3] = r2 >> 16; - gTasks[taskId].data[4] = r2; - SetGpuReg(REG_OFFSET_BG1VOFS, gTasks[taskId].data[3]); - r2 = (gTasks[taskId].data[5] << 16) + (u16)gTasks[taskId].data[6]; - r2 -= 0xC000; - gTasks[taskId].data[5] = r2 >> 16; - gTasks[taskId].data[6] = r2; - SetGpuReg(REG_OFFSET_BG0VOFS, gTasks[taskId].data[5]); + // Slide bg 2 downward + offset = (gTasks[taskId].tBg2PosHi << 16) + (u16)gTasks[taskId].tBg2PosLo; + offset -= 0x6000; + gTasks[taskId].tBg2PosHi = offset >> 16; + gTasks[taskId].tBg2PosLo = offset; + SetGpuReg(REG_OFFSET_BG2VOFS, gTasks[taskId].tBg2PosHi); - //show Flygon sprite - if (gIntroFrameCounter == 832) + // Slide bg 1 downward + offset = (gTasks[taskId].tBg1PosHi << 16) + (u16)gTasks[taskId].tBg1PosLo; + offset -= 0x8000; + gTasks[taskId].tBg1PosHi = offset >> 16; + gTasks[taskId].tBg1PosLo = offset; + SetGpuReg(REG_OFFSET_BG1VOFS, gTasks[taskId].tBg1PosHi); + + // Slide bg 3 downward + offset = (gTasks[taskId].tBg3PosHi << 16) + (u16)gTasks[taskId].tBg3PosLo; + offset -= 0xC000; + gTasks[taskId].tBg3PosHi = offset >> 16; + gTasks[taskId].tBg3PosLo = offset; + SetGpuReg(REG_OFFSET_BG0VOFS, gTasks[taskId].tBg3PosHi); + + if (gIntroFrameCounter == TIMER_FLYGON_SILHOUETTE_APPEAR) { - u8 spriteId = CreateSprite(&gUnknown_085E4FC4, 120, 160, 10); + // Show Flygon silhouette + u8 spriteId = CreateSprite(&sSpriteTemplate_FlygonSilhouette, 120, DISPLAY_HEIGHT, 10); gSprites[spriteId].invisible = TRUE; } } else { - //fade to white - if (gIntroFrameCounter > 1007) + if (gIntroFrameCounter > TIMER_END_SCENE_1) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITEALPHA); - gTasks[taskId].func = Task_IntroWaitToSetupPart2; + // Fade to white + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITEALPHA); + gTasks[taskId].func = Task_Scene1_End; } } } -static void Task_IntroWaitToSetupPart2(u8 taskId) +static void Task_Scene1_End(u8 taskId) { - if (gIntroFrameCounter > 1026) - gTasks[taskId].func = Task_IntroLoadPart2Graphics; + if (gIntroFrameCounter > TIMER_START_SCENE_2) + gTasks[taskId].func = Task_Scene2_Load; } -static void Task_IntroLoadPart2Graphics(u8 taskId) +static void Task_Scene2_Load(u8 taskId) { - intro_reset_and_hide_bgs(); + IntroResetGpuRegs(); SetVBlankCallback(NULL); ResetSpriteData(); FreeAllSpritePalettes(); - gUnknown_0203BD24 = 0; - gUnknown_0203BD26 = 0; - gIntroGraphicsFlygonYOffset = 0; - load_intro_part2_graphics(1); - gTasks[taskId].func = Task_IntroStartBikeRide; + gIntroCredits_MovingSceneryVBase = 0; + gIntroCredits_MovingSceneryVOffset = 0; + sFlygonYOffset = 0; + LoadIntroPart2Graphics(1); + gTasks[taskId].func = Task_Scene2_CreateSprites; } -static void Task_IntroStartBikeRide(u8 taskId) +#define tBgAnimTaskId data[0] +#define tPlayerSpriteId data[1] +#define tFlygonSpriteId data[2] +#define tFlygonTimer data[3] + +static void Task_Scene2_CreateSprites(u8 taskId) { u8 spriteId; - if (gIntroCharacterGender == 0) - LoadCompressedSpriteSheet(gIntro2BrendanSpriteSheet); + // Load sprite sheets + if (sIntroCharacterGender == MALE) + LoadCompressedSpriteSheet(gSpriteSheet_IntroBrendan); else - LoadCompressedSpriteSheet(gIntro2MaySpriteSheet); + LoadCompressedSpriteSheet(gSpriteSheet_IntroMay); - LoadCompressedSpriteSheet(gIntro2BicycleSpriteSheet); - LoadCompressedSpriteSheet(gIntro2FlygonSpriteSheet); + LoadCompressedSpriteSheet(gSpriteSheet_IntroBicycle); + LoadCompressedSpriteSheet(gSpriteSheet_IntroFlygon); - for (spriteId = 0; spriteId < 3; spriteId++) - { - LoadCompressedSpriteSheet(&gIntroPokemonRunningSpriteSheet[spriteId]); - } + // Load sprite palettes + for (spriteId = 0; spriteId < ARRAY_COUNT(sSpriteSheet_RunningPokemon) - 1; spriteId++) + LoadCompressedSpriteSheet(&sSpriteSheet_RunningPokemon[spriteId]); - LoadSpritePalettes(gIntroBikeAndFlygonPalette); - LoadSpritePalettes(gIntroPokemonRunningPalette); - CreateSprite(&gUnknown_085E4BDC, 0x110, 0x80, 0); - CreateSprite(&gUnknown_085E4BA4, 0x120, 0x6E, 1); + LoadSpritePalettes(gSpritePalettes_IntroPlayerFlygon); + LoadSpritePalettes(sSpritePalettes_RunningPokemon); - if (gIntroCharacterGender == 0) - spriteId = intro_create_brendan_sprite(0x110, 100); + // Create Pokémon and player sprites + CreateSprite(&sSpriteTemplate_Manectric, DISPLAY_WIDTH + 32, 128, 0); + CreateSprite(&sSpriteTemplate_Torchic, DISPLAY_WIDTH + 48, 110, 1); + + if (sIntroCharacterGender == MALE) + spriteId = CreateIntroBrendanSprite(DISPLAY_WIDTH + 32, 100); else - spriteId = intro_create_may_sprite(0x110, 100); + spriteId = CreateIntroMaySprite(DISPLAY_WIDTH + 32, 100); - gSprites[spriteId].callback = SpriteCB_IntroGraphicsBicycle; - gSprites[spriteId].anims = gIntroBicycleAnimationCommands; - gTasks[taskId].data[1] = spriteId; - CreateSprite(&gUnknown_085E4B40, 0x110, 0x50, 0x4); - spriteId = intro_create_flygon_sprite(-0x40, 0x3C); - gSprites[spriteId].callback = SpriteCB_IntroGraphicsFlygon; - gTasks[taskId].data[2] = spriteId; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_WHITEALPHA); + gSprites[spriteId].callback = SpriteCB_PlayerOnBicycle; + gSprites[spriteId].anims = sAnims_PlayerBicycle; + gTasks[taskId].tPlayerSpriteId = spriteId; + CreateSprite(&sSpriteTemplate_Volbeat, DISPLAY_WIDTH + 32, 80, 4); + spriteId = CreateIntroFlygonSprite(-64, 60); + gSprites[spriteId].callback = SpriteCB_Flygon; + gTasks[taskId].tFlygonSpriteId = spriteId; + + // Fade in and start bike ride + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); SetVBlankCallback(VBlankCB_Intro); - gTasks[taskId].data[0] = CreateBicycleAnimationTask(1, 0x4000, 0x400, 0x10); - sub_817B150(1); - gTasks[taskId].func = Task_IntroHandleBikeAndFlygonMovement; + gTasks[taskId].tBgAnimTaskId = CreateBicycleBgAnimationTask(1, 0x4000, 0x400, 0x10); + SetIntroPart2BgCnt(1); + gTasks[taskId].func = Task_Scene2_BikeRide; } -static void Task_IntroHandleBikeAndFlygonMovement(u8 taskId) +static void Task_Scene2_BikeRide(u8 taskId) { - s16 a; u16 offset; - if (gIntroFrameCounter == 1856) + if (gIntroFrameCounter == TIMER_TORCHIC_EXIT) { - gUnknown_0203BD28 = 2; - // Destroys the CreateBicycleAnimationTask created earlier. - DestroyTask(gTasks[taskId].data[0]); + // Stop the moving scenery/backgrounds, for when the camera fixes on Torchic + gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_FROZEN; + DestroyTask(gTasks[taskId].tBgAnimTaskId); } - if (gIntroFrameCounter > 1946) + + if (gIntroFrameCounter > TIMER_END_SCENE_2) { - BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 16, RGB_WHITEALPHA); - gTasks[taskId].func = Task_IntroWaitToSetupPart3; + // Fade out to next scene + BeginNormalPaletteFade(PALETTES_ALL, 8, 0, 16, RGB_WHITEALPHA); + gTasks[taskId].func = Task_Scene2_End; } - if (gIntroFrameCounter == 1109) - gSprites[gTasks[taskId].data[1]].data[0] = 1; - if (gIntroFrameCounter == 1214) - gSprites[gTasks[taskId].data[1]].data[0] = 0; - if (gIntroFrameCounter == 1394) - gSprites[gTasks[taskId].data[2]].data[0] = 1; - if (gIntroFrameCounter == 1398) - gSprites[gTasks[taskId].data[1]].data[0] = 2; - if (gIntroFrameCounter == 1576) - gSprites[gTasks[taskId].data[1]].data[0] = 3; - if (gIntroFrameCounter == 1727) - gSprites[gTasks[taskId].data[1]].data[0] = 4; - offset = Sin(gTasks[taskId].data[3] >> 2 & 0x7F, 48); - gIntroGraphicsFlygonYOffset = offset; - if (gTasks[taskId].data[3] < 512) - gTasks[taskId].data[3]++; - sub_817B540(0); + // Check for updates to player/flygon sprites + // These states are for SpriteCB_PlayerOnBicycle and SpriteCB_Flygon respectively + if (gIntroFrameCounter == TIMER_PLAYER_DRIFT_BACK) + gSprites[gTasks[taskId].tPlayerSpriteId].sState = 1; + if (gIntroFrameCounter == TIMER_PLAYER_MOVE_FORWARD) + gSprites[gTasks[taskId].tPlayerSpriteId].sState = 0; + if (gIntroFrameCounter == TIMER_FLYGON_ENTER) + gSprites[gTasks[taskId].tFlygonSpriteId].sState = 1; + if (gIntroFrameCounter == TIMER_PLAYER_MOVE_BACKWARD) + gSprites[gTasks[taskId].tPlayerSpriteId].sState = 2; + if (gIntroFrameCounter == TIMER_PLAYER_HOLD_POSITION) + gSprites[gTasks[taskId].tPlayerSpriteId].sState = 3; + if (gIntroFrameCounter == TIMER_PLAYER_EXIT) + gSprites[gTasks[taskId].tPlayerSpriteId].sState = 4; + + // Handle flygon's y movement + offset = Sin(gTasks[taskId].tFlygonTimer >> 2 & 0x7F, 48); + sFlygonYOffset = offset; + if (gTasks[taskId].tFlygonTimer < 512) + gTasks[taskId].tFlygonTimer++; + + // Alternate colors of the trees + CycleSceneryPalette(0); } -static void Task_IntroWaitToSetupPart3(u8 taskId) +static void Task_Scene2_End(u8 taskId) { - if (gIntroFrameCounter > 2068) - gTasks[taskId].func = Task_IntroLoadPart3Graphics; + if (gIntroFrameCounter > TIMER_START_SCENE_3) + gTasks[taskId].func = Task_Scene3_Load; } -static void sub_816D81C(struct Sprite *sprite) +#define sStateDelay data[1] +#define sNextState data[2] +#define sCosYIdx data[3] +#define sSinXIdx data[4] +#define sSinYIdx data[5] +#define sFig8Loops data[6] + +enum { + VOLBEAT_WAIT_ENTER, + VOLBEAT_ENTER, + VOLBEAT_ZIP_BACKWARD, + VOLBEAT_ZIP_DOWN, + VOLBEAT_ZIP_FORWARD, + VOLBEAT_INIT_FIGURE_8, + VOLBEAT_FIGURE_8, + VOLBEAT_EXIT, + VOLBEAT_WAIT_STATE +}; + +static void SpriteCB_Volbeat(struct Sprite *sprite) { - sprite->data[3] += 4; - switch (sprite->data[0]) + sprite->sCosYIdx += 4; + switch (sprite->sState) { - case 0: - if (++sprite->data[1] < 180) + case VOLBEAT_WAIT_ENTER: + if (++sprite->sStateDelay < 180) break; - ++sprite->data[0]; - case 1: - sprite->pos1.x -= 4; - if (sprite->pos1.x == 0x3C) + sprite->sState++; + // fallthrough + case VOLBEAT_ENTER: + sprite->x -= 4; + if (sprite->x == 60) { - sprite->data[0] = 8; - sprite->data[1] = 20; - sprite->data[2] = 2; + sprite->sState = VOLBEAT_WAIT_STATE; + sprite->sStateDelay = 20; + sprite->sNextState = VOLBEAT_ZIP_BACKWARD; } break; - case 2: - sprite->pos1.x += 8; - sprite->pos1.y -= 2; - if (sprite->pos1.x == 0x7C) + case VOLBEAT_ZIP_BACKWARD: + sprite->x += 8; + sprite->y -= 2; + if (sprite->x == 124) { - sprite->data[0] = 8; - sprite->data[1] = 20; - sprite->data[2] = 3; + sprite->sState = VOLBEAT_WAIT_STATE; + sprite->sStateDelay = 20; + sprite->sNextState = VOLBEAT_ZIP_DOWN; } break; - case 3: - sprite->pos1.y += 4; - if (sprite->pos1.y == 0x50) + case VOLBEAT_ZIP_DOWN: + sprite->y += 4; + if (sprite->y == 80) { - sprite->data[0] = 8; - sprite->data[1] = 10; - sprite->data[2] = 4; + sprite->sState = VOLBEAT_WAIT_STATE; + sprite->sStateDelay = 10; + sprite->sNextState = VOLBEAT_ZIP_FORWARD; } break; - case 4: - sprite->pos1.x -= 8; - sprite->pos1.y -= 2; - if (sprite->pos1.x == 0x3C) + case VOLBEAT_ZIP_FORWARD: + sprite->x -= 8; + sprite->y -= 2; + if (sprite->x == 60) { - sprite->data[0] = 8; - sprite->data[1] = 10; - sprite->data[2] = 5; + sprite->sState = VOLBEAT_WAIT_STATE; + sprite->sStateDelay = 10; + sprite->sNextState = VOLBEAT_INIT_FIGURE_8; } break; - case 5: - sprite->pos1.x += 0x3C; - sprite->data[4] = 0xC0; - sprite->data[5] = 0x80; - sprite->data[6] = 0x3; - sprite->data[0]++; - case 6: - sprite->pos2.x = Sin((u8)sprite->data[4], 0x3C); - sprite->pos2.y = Sin((u8)sprite->data[5], 0x14); - sprite->data[4] += 2; - sprite->data[5] += 4; - if ((sprite->data[4] & 0xFF) == 0x40) + case VOLBEAT_INIT_FIGURE_8: + sprite->x += 60; + sprite->sSinXIdx = 0xC0; + sprite->sSinYIdx = 0x80; + sprite->sFig8Loops = 3; + sprite->sState++; + // fallthrough + case VOLBEAT_FIGURE_8: + sprite->x2 = Sin((u8)sprite->sSinXIdx, 0x3C); + sprite->y2 = Sin((u8)sprite->sSinYIdx, 0x14); + sprite->sSinXIdx += 2; + sprite->sSinYIdx += 4; + if ((sprite->sSinXIdx & 0xFF) == 64) { sprite->hFlip = FALSE; - if (!--sprite->data[6]) + if (--sprite->sFig8Loops == 0) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos2.x = 0; - sprite->data[0]++; + sprite->x += sprite->x2; + sprite->x2 = 0; + sprite->sState++; } } break; - case 7: - sprite->pos1.x -= 2; - sprite->pos2.y = Sin((u8)sprite->data[5], 0x14); - sprite->data[5] += 4; - if (sprite->pos1.x < -16) + case VOLBEAT_EXIT: + sprite->x -= 2; + sprite->y2 = Sin((u8)sprite->sSinYIdx, 0x14); + sprite->sSinYIdx += 4; + if (sprite->x < -16) DestroySprite(sprite); break; - case 8: - sprite->pos2.y = Cos((u8)sprite->data[3], 2); - if (!--sprite->data[1]) - sprite->data[0] = sprite->data[2]; + case VOLBEAT_WAIT_STATE: + // Wait for state progression, fly idly until then + sprite->y2 = Cos((u8)sprite->sCosYIdx, 2); + if (!--sprite->sStateDelay) + sprite->sState = sprite->sNextState; break; } } -static void sub_816D9C0(struct Sprite *sprite) +#undef sStateDelay +#undef sNextState +#undef sCosYIdx +#undef sSinXIdx +#undef sSinYIdx +#undef sFig8Loops + +#define sMoveTimer data[1] +#define sDelay data[2] + +static void SpriteCB_Torchic(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (gIntroFrameCounter == 1224) + if (gIntroFrameCounter == TIMER_TORCHIC_ENTER) { - StartSpriteAnim(sprite, 1); - sprite->data[0]++; + StartSpriteAnim(sprite, TORCHIC_ANIM_RUN); + sprite->sState++; } break; case 1: - if (gIntroFrameCounter == 1576) + if (gIntroFrameCounter == TIMER_PLAYER_HOLD_POSITION) { - StartSpriteAnim(sprite, 0); - sprite->data[0]++; + StartSpriteAnim(sprite, TORCHIC_ANIM_WALK); + sprite->sState++; } else { - sprite->data[1] += 0x40; - if (sprite->data[1] & 0xFF00) + sprite->sMoveTimer += 64; + if (sprite->sMoveTimer & 0xFF00) { - sprite->pos1.x--; - sprite->data[1] &= 0xFF; + sprite->x--; + sprite->sMoveTimer &= 0xFF; } } break; case 2: - if (gIntroFrameCounter != 1735) + if (gIntroFrameCounter != TIMER_TORCHIC_SPEED_UP) { - sprite->data[1] += 0x20; - if (sprite->data[1] & 0xFF00) + sprite->sMoveTimer += 32; + if (sprite->sMoveTimer & 0xFF00) { - sprite->pos1.x++; - sprite->data[1] &= 0xFF; + sprite->x++; + sprite->sMoveTimer &= 0xFF; } } else { - StartSpriteAnim(sprite, 1); - sprite->data[0]++; - sprite->data[2] = 0x50; + StartSpriteAnim(sprite, TORCHIC_ANIM_RUN); + sprite->sState++; + sprite->sDelay = 80; } break; case 3: - if (--sprite->data[2]) + if (--sprite->sDelay) { - sprite->data[1] += 0x40; - if (sprite->data[1] & 0xFF00) + sprite->sMoveTimer += 64; + if (sprite->sMoveTimer & 0xFF00) { - sprite->pos1.x--; - sprite->data[1] &= 0xFF; + sprite->x--; + sprite->sMoveTimer &= 0xFF; } } else { - StartSpriteAnim(sprite, 2); - sprite->data[0]++; + StartSpriteAnim(sprite, TORCHIC_ANIM_TRIP); + sprite->sState++; } break; case 4: if (sprite->animEnded) - sprite->pos1.x += 4; + sprite->x += 4; - if (sprite->pos1.x > 336) + if (sprite->x > 336) { - StartSpriteAnim(sprite, 1); - sprite->data[0]++; + StartSpriteAnim(sprite, TORCHIC_ANIM_RUN); + sprite->sState++; } break; case 5: - if (gIntroFrameCounter > 1855) - sprite->pos1.x -= 2; + if (gIntroFrameCounter >= TIMER_TORCHIC_EXIT) + sprite->x -= 2; break; } } -static void sub_816DAE8(struct Sprite *sprite) +#undef sMoveTimer +#undef sDelay + +#define sSinIdx data[1] +#define sCosIdx data[2] + +static void SpriteCB_Manectric(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (gIntroFrameCounter == 1088) - sprite->data[0]++; + if (gIntroFrameCounter == TIMER_MANECTRIC_ENTER) + sprite->sState++; break; case 1: - sprite->pos1.x -= 2; - if (gIntroFrameCounter != 1168) + sprite->x -= 2; + if (gIntroFrameCounter != TIMER_MANECTRIC_RUN_CIRCULAR) break; - sprite->pos1.y -= 12; - sprite->data[1] = 0x80; - sprite->data[2] = 0; - sprite->data[0]++; + + // Initialize circular pattern running + sprite->y -= 12; + sprite->sSinIdx = 0x80; + sprite->sCosIdx = 0; + sprite->sState++; + // fallthrough case 2: - if (sprite->pos1.x + sprite->pos2.x <= -0x20) + if (sprite->x + sprite->x2 <= -32) { + // Manectric is offscreen now, destroy it DestroySprite(sprite); } else { - if ((sprite->data[1] & 0xFF) < 0x40) + // Run in circular pattern + if ((sprite->sSinIdx & 0xFF) < 64) { - sprite->pos2.x = Sin((u8)sprite->data[1], 0x10); + sprite->x2 = Sin((u8)sprite->sSinIdx, 16); } else { - if ((sprite->data[1] & 0xFF) == 0x40) - sprite->pos1.x -= 0x30; - sprite->pos2.x = Sin((u8)sprite->data[1], 0x40); + if ((sprite->sSinIdx & 0xFF) == 64) + sprite->x -= 48; + sprite->x2 = Sin((u8)sprite->sSinIdx, 64); } - sprite->data[1]++; - sprite->pos2.y = Cos((u8)sprite->data[2], 0xC); - sprite->data[2]++; + sprite->sSinIdx++; + sprite->y2 = Cos((u8)sprite->sCosIdx, 12); + sprite->sCosIdx++; } break; } } -static void Task_IntroLoadPart3Graphics(u8 taskId) +#undef sSinIdx +#undef sCosIdx + +#define tAlpha data[0] +#define tZoomDiv data[1] +#define tZoomDivSpeed data[2] + +static void Task_Scene3_Load(u8 taskId) { - intro_reset_and_hide_bgs(); - LZ77UnCompVram(gIntro3Pokeball_Gfx, (void *)VRAM); - LZ77UnCompVram(gIntro3Pokeball_Tilemap, (void *)(BG_CHAR_ADDR(1))); - LoadPalette(gIntro3PokeballPal, 0, 0x200); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = 0; + IntroResetGpuRegs(); + LZ77UnCompVram(sIntroPokeball_Gfx, (void *)VRAM); + LZ77UnCompVram(sIntroPokeball_Tilemap, (void *)(BG_CHAR_ADDR(1))); + LoadPalette(sIntroPokeball_Pal, 0, sizeof(sIntroPokeball_Pal)); + gTasks[taskId].tAlpha = 0; + gTasks[taskId].tZoomDiv = 0; + gTasks[taskId].tZoomDivSpeed = 0; gTasks[taskId].data[3] = 0; PanFadeAndZoomScreen(0x78, 0x50, 0, 0); ResetSpriteData(); FreeAllSpritePalettes(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(8) | BGCNT_256COLOR | BGCNT_AFF256x256); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); - gTasks[taskId].func = Task_IntroSpinAndZoomPokeball; + gTasks[taskId].func = Task_Scene3_SpinPokeball; gIntroFrameCounter = 0; m4aSongNumStart(MUS_INTRO_BATTLE); } - -static void Task_IntroSpinAndZoomPokeball(u8 taskId) +static void Task_Scene3_SpinPokeball(u8 taskId) { - gTasks[taskId].data[0] += 0x400; + gTasks[taskId].tAlpha += 0x400; - if (gTasks[taskId].data[1] <= 0x6BF) + if (gTasks[taskId].tZoomDiv <= 0x6BF) { - gTasks[taskId].data[1] += gTasks[taskId].data[2]; - gTasks[taskId].data[2] += 2; + gTasks[taskId].tZoomDiv += gTasks[taskId].tZoomDivSpeed; + gTasks[taskId].tZoomDivSpeed += 2; } else { - gTasks[taskId].func = Task_IntroWaitToSetupPart3LegendsFight; + gTasks[taskId].func = Task_Scene3_WaitGroudon; } - PanFadeAndZoomScreen(0x78, 0x50, 0x10000 / gTasks[taskId].data[1], gTasks[taskId].data[0]); + PanFadeAndZoomScreen(0x78, 0x50, SAFE_DIV(0x10000, gTasks[taskId].tZoomDiv), gTasks[taskId].tAlpha); - if (gIntroFrameCounter == 28) - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITEALPHA); + if (gIntroFrameCounter == TIMER_POKEBALL_FADE) + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITEALPHA); } -static void Task_IntroWaitToSetupPart3LegendsFight(u8 taskId) +#undef tAlpha +#undef tZoomDiv +#undef tZoomDivSpeed + +static void Task_Scene3_WaitGroudon(u8 taskId) { - if (gIntroFrameCounter > 43) - gTasks[taskId].func = Task_IntroLoadGroudonScene; + if (gIntroFrameCounter > TIMER_START_LEGENDARIES) + gTasks[taskId].func = Task_Scene3_LoadGroudon; } -static void Task_IntroLoadGroudonScene(u8 taskId) +static void Task_Scene3_LoadGroudon(u8 taskId) { if (!gPaletteFade.active) { - intro_reset_and_hide_bgs(); + IntroResetGpuRegs(); ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LZDecompressVram(gIntro3GroudonGfx, (void *)VRAM); - LZDecompressVram(gIntro3GroudonTilemap, (void *)(BG_CHAR_ADDR(3))); - LZDecompressVram(gIntro3LegendBgGfx, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gIntro3GroudonBgTilemap, (void *)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gIntroGroudon_Gfx, (void *)VRAM); + LZDecompressVram(gIntroGroudon_Tilemap, (void *)(BG_CHAR_ADDR(3))); + LZDecompressVram(gIntroLegendBg_Gfx, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(gIntroGroudonBg_Tilemap, (void *)(BG_SCREEN_ADDR(28))); LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]); LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]); - CpuCopy16(gIntro3BgPal, gPlttBufferUnfaded, sizeof(gIntro3BgPal)); - gTasks[taskId].func = Task_IntroLoadPart3Graphics1; + CpuCopy16(gIntro3Bg_Pal, gPlttBufferUnfaded, sizeof(gIntro3Bg_Pal)); + gTasks[taskId].func = Task_Scene3_InitGroudonBg; } } -static void Task_IntroLoadPart3Graphics1(u8 taskId) +#define tWinPos data[0] +#define tScreenX data[1] +#define tScreenY data[2] +#define tZoom data[3] + +static void Task_Scene3_InitGroudonBg(u8 taskId) { - SetGpuReg(REG_OFFSET_WIN0H, 0xF0); - SetGpuReg(REG_OFFSET_WIN0V, 0xA0); - SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WIN0H, DISPLAY_WIDTH); + SetGpuReg(REG_OFFSET_WIN0V, DISPLAY_HEIGHT); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL); SetGpuReg(REG_OFFSET_WINOUT, 0); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) @@ -1633,423 +1809,515 @@ static void Task_IntroLoadPart3Graphics1(u8 taskId) | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_WHITEALPHA); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = 0xFFA0; - gTasks[taskId].data[2] = 0xFF51; - gTasks[taskId].data[3] = 0x100; - PanFadeAndZoomScreen(0xFFA0, 0xFF51, 0x100, 0); - gTasks[taskId].func = Task_IntroLoadPart3Graphics2; + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); + gTasks[taskId].tWinPos = 0; + gTasks[taskId].tScreenX = 0xFFA0; + gTasks[taskId].tScreenY = 0xFF51; + gTasks[taskId].tZoom = 0x100; + PanFadeAndZoomScreen(gTasks[taskId].tScreenX, gTasks[taskId].tScreenY, gTasks[taskId].tZoom, 0); + gTasks[taskId].func = Task_Scene3_NarrowWindow; } -static void Task_IntroLoadPart3Graphics2(u8 taskId) +// Before the Groudon scene starts, the black top/bottom edges of the screen +// come inward for a more 'cinematic' look +#define NARROW_HEIGHT 32 +static void Task_Scene3_NarrowWindow(u8 taskId) { - if (gTasks[taskId].data[0] != 32) + if (gTasks[taskId].tWinPos != NARROW_HEIGHT) { - gTasks[taskId].data[0] += 4; - SetGpuReg(REG_OFFSET_WIN0V, (gTasks[taskId].data[0] * 256) - (gTasks[taskId].data[0] - 160)); + gTasks[taskId].tWinPos += 4; + SetGpuReg(REG_OFFSET_WIN0V, (gTasks[taskId].tWinPos * 256) - (gTasks[taskId].tWinPos - DISPLAY_HEIGHT)); } else { - SetGpuReg(REG_OFFSET_WIN0V, 0x2080); - gTasks[taskId].func = Task_IntroLoadPart3Graphics3; + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(NARROW_HEIGHT, DISPLAY_HEIGHT - NARROW_HEIGHT)); + gTasks[taskId].func = Task_Scene3_EndNarrowWindow; } } +#undef tWinPos +#undef tScreenX +#undef tScreenY +#undef tZoom -static void Task_IntroLoadPart3Graphics3(u8 taskId) +static void Task_Scene3_EndNarrowWindow(u8 taskId) { - gTasks[taskId].func = Task_IntroLoadPart3Graphics4; + gTasks[taskId].func = Task_Scene3_StartGroudon; } -static void Task_IntroLoadPart3Graphics4(u8 taskId) +static void Task_Scene3_StartGroudon(u8 taskId) { - gTasks[taskId].data[0] = 0; - gTasks[taskId].func = Task_IntroGroudonScene; - ScanlineEffect_InitWave(0, 0xA0, 0x4, 4, 1, 4, 0); + gTasks[taskId].tState = 0; + gTasks[taskId].func = Task_Scene3_Groudon; + ScanlineEffect_InitWave(0, 160, 4, 4, 1, 4, 0); } -static void Task_IntroGroudonScene(u8 taskId) +#define tScreenX data[1] +#define tScreenY data[2] +#define tZoom data[3] +#define tYShake data[4] +#define tTimer data[5] +#define tDelay data[6] +#define tTrigIdx data[6] // Re-used +#define tPalIdx data[7] + +static void Task_Scene3_Groudon(u8 taskId) { s16 *data = gTasks[taskId].data; - data[5]++; - if ((u16)(data[0] - 1) < 7 && data[5] % 2 == 0) - data[4] ^= 3; - PanFadeAndZoomScreen(data[1], data[2] + data[4], data[3], 0); - switch (data[0]) + tTimer++; + if ((u16)(tState - 1) < 7 && tTimer % 2 == 0) + tYShake ^= 3; + PanFadeAndZoomScreen(tScreenX, tScreenY + tYShake, tZoom, 0); + switch (tState) { case 0: - data[1] += 0x10; - if (data[1] == 0xA0) + tScreenX += 16; + if (tScreenX == 160) { - data[0]++; - data[6] = 2; - data[7] = 0x1E2; + tState++; + tDelay = 2; + tPalIdx = 0x1E2; CreateGroudonRockSprites(taskId); } break; case 1: - if (--data[6] == 0) + if (--tDelay == 0) { - data[6] = 2; - CpuCopy16(&gIntro3BgPal[data[7]], &gPlttBufferFaded[31], sizeof(u16)); - data[7] += 2; - if (data[7] == 0x1EC) - data[0]++; + tDelay = 2; + CpuCopy16(&gIntro3Bg_Pal[tPalIdx], &gPlttBufferFaded[31], sizeof(u16)); + tPalIdx += 2; + if (tPalIdx == 0x1EC) + tState++; } break; case 2: - if (--data[6] == 0) + if (--tDelay == 0) { - data[6] = 2; - data[0]++; + tDelay = 2; + tState++; } break; case 3: - if (--data[6] == 0) + if (--tDelay == 0) { - data[6] = 2; - CpuCopy16(&gIntro3BgPal[data[7]], &gPlttBufferFaded[31], sizeof(u16)); - data[7] -= 2; - if (data[7] == 0x1E0) + tDelay = 2; + CpuCopy16(&gIntro3Bg_Pal[tPalIdx], &gPlttBufferFaded[31], sizeof(u16)); + tPalIdx -= 2; + if (tPalIdx == 0x1E0) { - data[6] = 8; - data[0]++; + tDelay = 8; + tState++; } } break; case 4: - if (--data[6] == 0) + if (--tDelay == 0) { - data[1] = -0x60; - data[2] = 0xA9; - data[6] = 3; - data[0]++; + tScreenX = -96; + tScreenY = 169; + tDelay = 3; + tState++; } break; case 5: - if (--data[6] == 0) + if (--tDelay == 0) { - data[1] = 0x50; - data[2] = 0x29; - data[6] = 0x10; + tScreenX = 80; + tScreenY = 41; + tDelay = 16; PlayCryInternal(SPECIES_GROUDON, 0, 100, 10, 0); - data[0]++; + tState++; } break; case 6: - if (--data[6] == 0) + if (--tDelay == 0) { - data[1] = 0x50; - data[2] = 0x28; - data[0]++; + tScreenX = 80; + tScreenY = 40; + tState++; } break; case 7: - data[1] += 4; - data[2] += 4; - data[6] += 0x666; - data[3] = Sin((data[6] & 0xFF00) >> 8, 0x40) + 0x100; - if (data[1] == 0x78) + tScreenX += 4; + tScreenY += 4; + tTrigIdx += 0x666; + tZoom = Sin((tTrigIdx & 0xFF00) >> 8, 64) + 256; + if (tScreenX == 120) { - BeginNormalPaletteFade(0xFFFFFFFE, 3, 0, 16, RGB_WHITE); - data[3] = 0x100; - data[4] = 0; - data[0]++; + BeginNormalPaletteFade(PALETTES_ALL & ~1, 3, 0, 16, RGB_WHITE); + tZoom = 256; + tYShake = 0; + tState++; } break; case 8: - if (data[3]) - data[3] -= 8; + if (tZoom) + tZoom -= 8; else - data[0]++; + tState++; break; case 9: if (!gPaletteFade.active) { - gTasks[taskId].func = Task_IntroLoadKyogreScene; + gTasks[taskId].func = Task_Scene3_LoadKyogre; gScanlineEffect.state = 3; } break; } } -static void CreateGroudonRockSprites(u8 a0) +#undef tScreenX +#undef tScreenY +#undef tZoom +#undef tYShake +#undef tTimer +#undef tDelay +#undef tTrigIdx +#undef tPalIdx + +#define sRockId data[1] +#define sSpeed data[2] +#define sTimer data[3] +#define sTaskId data[4] + +static void CreateGroudonRockSprites(u8 taskId) { int i; u8 spriteId; - for (i = 0; i < 6; i++) + for (i = 0; i < (int)ARRAY_COUNT(sGroudonRockData); i++) { - spriteId = CreateSprite(gAncientPowerRockSpriteTemplate, gIntroGroudonRockData[i][0], 0xA0, i); - gSprites[spriteId].callback = SpriteCB_IntroGroudonRocks; + spriteId = CreateSprite(gAncientPowerRockSpriteTemplate, sGroudonRockData[i][0], DISPLAY_HEIGHT, i); + gSprites[spriteId].callback = SpriteCB_GroudonRocks; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].data[1] = i; - gSprites[spriteId].data[4] = a0; - StartSpriteAnim(&gSprites[spriteId], gIntroGroudonRockData[i][1]); + gSprites[spriteId].sRockId = i; + gSprites[spriteId].sTaskId = taskId; + StartSpriteAnim(&gSprites[spriteId], sGroudonRockData[i][1]); } } -static void SpriteCB_IntroGroudonRocks(struct Sprite *sprite) +static void SpriteCB_GroudonRocks(struct Sprite *sprite) { - sprite->data[3]++; - if (sprite->data[3] % 2 == 0) - sprite->pos2.y ^= 3; + // Introduce some wobble to the floating + sprite->sTimer++; + if (sprite->sTimer % 2 == 0) + sprite->y2 ^= 3; - switch(sprite->data[0]) + switch(sprite->sState) { case 0: - sprite->data[2] += gIntroGroudonRockData[sprite->data[1]][2]; - sprite->pos1.y -= (sprite->data[2] & 0xFF00) >> 8; - sprite->data[2] &= 0xFF; - if (gTasks[sprite->data[4]].data[0] > 7) - sprite->data[0]++; + // Rock floats up + sprite->sSpeed += sGroudonRockData[sprite->sRockId][2]; + sprite->y -= (sprite->sSpeed & 0xFF00) >> 8; + sprite->sSpeed &= 0xFF; + + // Check if Groudon scene is ending + if (gTasks[sprite->sTaskId].tState > 7) + sprite->sState++; break; case 1: - if (sprite->pos1.x < 0x78) - sprite->pos1.x -= 2; + // Scene zooms in, move rock offscreen + if (sprite->x < DISPLAY_WIDTH / 2) + sprite->x -= 2; else - sprite->pos1.x += 2; + sprite->x += 2; - if (sprite->pos1.y < 0x50) - sprite->pos1.y -= 2; + if (sprite->y < DISPLAY_HEIGHT / 2) + sprite->y -= 2; else - sprite->pos1.y += 2; + sprite->y += 2; break; } } -static void Task_IntroLoadKyogreScene(u8 taskId) +#undef sRockId +#undef sSpeed +#undef sTimer +#undef sTaskId + +#define tScreenX data[1] +#define tScreenY data[2] +#define tZoom data[3] +#define tDelay data[6] +#define tTrigIdx data[6] // Re-used +#define tPalIdx data[7] + +static void Task_Scene3_LoadKyogre(u8 taskId) { ResetSpriteData(); - LZDecompressVram(gIntro3KyogreGfx, (void *)VRAM); - LZDecompressVram(gIntro3KyogreTilemap, (void *)(BG_CHAR_ADDR(3))); - LZDecompressVram(gIntro3KyogreBgTilemap, (void *)(BG_SCREEN_ADDR(28))); - LoadCompressedSpriteSheet(gUnknown_085E4C88); - LoadSpritePalette(gUnknown_085E4C98); - BeginNormalPaletteFade(0xFFFFFFFE, 0, 0x10, 0, RGB_WHITEALPHA); - gTasks[taskId].func = Task_IntroKyogreScene; - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = 0x150; - gTasks[taskId].data[2] = 0x50; - gTasks[taskId].data[6] = 0x10; - gTasks[taskId].data[3] = 0x100; - PanFadeAndZoomScreen(0x150, 0x50, 0x100, 0); + LZDecompressVram(gIntroKyogre_Gfx, (void *)VRAM); + LZDecompressVram(gIntroKyogre_Tilemap, (void *)(BG_CHAR_ADDR(3))); + LZDecompressVram(gIntroKyogreBg_Tilemap, (void *)(BG_SCREEN_ADDR(28))); + LoadCompressedSpriteSheet(sSpriteSheet_Bubbles); + LoadSpritePalette(sSpritePalette_Bubbles); + BeginNormalPaletteFade(PALETTES_ALL & ~1, 0, 16, 0, RGB_WHITEALPHA); + gTasks[taskId].func = Task_Scene3_Kyogre; + gTasks[taskId].tState = 0; + gTasks[taskId].tScreenX = 336; + gTasks[taskId].tScreenY = 80; + gTasks[taskId].tDelay = 16; + gTasks[taskId].tZoom = 256; + PanFadeAndZoomScreen(gTasks[taskId].tScreenX, gTasks[taskId].tScreenY, gTasks[taskId].tZoom, 0); ScanlineEffect_InitWave(0, 0xA0, 4, 4, 1, 6, 0); } -static void Task_IntroKyogreScene(u8 taskId) +static void Task_Scene3_Kyogre(u8 taskId) { s16 *data = gTasks[taskId].data; - PanFadeAndZoomScreen(data[1], data[2], data[3], 0); + PanFadeAndZoomScreen(tScreenX, tScreenY, tZoom, 0); - switch (data[0]) + switch (tState) { case 0: - if (--data[6] != 0) + if (--tDelay != 0) break; - data[0]++; + tState++; case 1: - data[6] += 4; - gTasks[taskId].data[1] = 0x158 - Sin(data[6], 0x100); - gTasks[taskId].data[2] = 0x54 - Cos(data[6], 0x40); - if (data[6] == 0x40) + tTrigIdx += 4; + gTasks[taskId].tScreenX = 344 - Sin(tTrigIdx, 0x100); + gTasks[taskId].tScreenY = 84 - Cos(tTrigIdx, 0x40); + if (tTrigIdx == 64) { - data[6] = 0x19; - data[7] = 1; - data[0]++; - CreateKyogreBubbleSprites_0(0); + tDelay = 0x19; + tPalIdx = 1; + tState++; + CreateKyogreBubbleSprites_Body(0); } break; case 2: - if (--data[6] == 0) + if (--tDelay == 0) { - gTasks[taskId].data[1] += 0x100; - gTasks[taskId].data[2] -= 0x102; - data[6] = 8; - data[0]++; - CreateKyogreBubbleSprites_0(0); - CreateKyogreBubbleSprites_1(); + gTasks[taskId].tScreenX += 256; + gTasks[taskId].tScreenY -= 258; + tDelay = 8; + tState++; + CreateKyogreBubbleSprites_Body(0); + CreateKyogreBubbleSprites_Fins(); } break; case 3: - if (--data[6] == 0) + if (--tDelay == 0) { - gTasks[taskId].data[1] -= 0x100; - gTasks[taskId].data[2] += 0x102; - data[6] = 8; - data[0]++; + gTasks[taskId].tScreenX -= 256; + gTasks[taskId].tScreenY += 258; + tDelay = 8; + tState++; } break; case 4: - if (--data[6] == 0) + if (--tDelay == 0) { - gTasks[taskId].data[2] -= 0xFC; - data[6] = 8; - data[0]++; + gTasks[taskId].tScreenY -= 252; + tDelay = 8; + tState++; } break; case 5: - if (--data[6] == 0) + if (--tDelay == 0) { - gTasks[taskId].data[2] += 0xFC; - if (data[7] != 0) + gTasks[taskId].tScreenY += 252; + if (tPalIdx != 0) { - data[6] = 12; - data[7]--; - data[0] = 2; + tDelay = 12; + tPalIdx--; + tState = 2; } else { - data[6] = 1; - data[0]++; + tDelay = 1; + tState++; PlayCryInternal(SPECIES_KYOGRE, 0, 120, 10, 0); } } break; case 6: - if (--data[6] == 0) + if (--tDelay == 0) { - data[6] = 4; - data[7] = 0x1EA; - data[0]++; + tDelay = 4; + tPalIdx = 0x1EA; + tState++; } break; case 7: - if (--data[6] == 0) + if (--tDelay == 0) { - data[6] = 4; - CpuCopy16(&gIntro3BgPal[data[7]], &gPlttBufferFaded[47], sizeof(u16)); - data[7] -= 2; - if (data[7] == 0x1E0) - data[0]++; + tDelay = 4; + CpuCopy16(&gIntro3Bg_Pal[tPalIdx], &gPlttBufferFaded[47], sizeof(u16)); + tPalIdx -= 2; + if (tPalIdx == 0x1E0) + tState++; } break; case 8: - if (--data[6] == 0) + if (--tDelay == 0) { - data[6] = 4; - data[7] = 0x1E2; - data[0]++; + tDelay = 4; + tPalIdx = 0x1E2; + tState++; } break; case 9: - if (--data[6] == 0) + if (--tDelay == 0) { - data[6] = 4; - CpuCopy16(&gIntro3BgPal[data[7]], &gPlttBufferFaded[47], sizeof(u16)); - data[7] += 2; - if (data[7] == 0x1EE) + tDelay = 4; + CpuCopy16(&gIntro3Bg_Pal[tPalIdx], &gPlttBufferFaded[47], sizeof(u16)); + tPalIdx += 2; + if (tPalIdx == 0x1EE) { - data[6] = 0x10; - data[0]++; + tDelay = 16; + tState++; } } break; case 10: - if (--data[6] == 0) + if (--tDelay == 0) { - data[6] = 0; - data[0]++; - CreateKyogreBubbleSprites_0(taskId); + tTrigIdx = 0; + tState++; + CreateKyogreBubbleSprites_Body(taskId); } break; case 11: - data[6] += 4; - data[3] -= 8; - gTasks[taskId].data[1] = Sin(data[6], 0x3C) + 0x58; - if (data[6] == 0x40) + tTrigIdx += 4; + tZoom -= 8; + gTasks[taskId].tScreenX = Sin(tTrigIdx, 0x3C) + 88; + if (tTrigIdx == 64) { - BeginNormalPaletteFade(0xFFFFFFFE, 3, 0, 16, RGB_WHITE); - data[0]++; + BeginNormalPaletteFade(PALETTES_ALL & ~1, 3, 0, 16, RGB_WHITE); + tState++; } break; case 12: - data[6] += 4; - data[3] -= 8; - gTasks[taskId].data[1] = Sin(data[6], 0x14) + 0x80; - if (data[6] == 0x80) - data[0]++; + tTrigIdx += 4; + tZoom -= 8; + gTasks[taskId].tScreenX = Sin(tTrigIdx, 0x14) + 128; + if (tTrigIdx == 128) + tState++; break; case 13: if (!gPaletteFade.active) { - gTasks[taskId].func = Task_IntroLoadClouds1; + gTasks[taskId].func = Task_Scene3_LoadClouds1; gScanlineEffect.state = 3; } break; } } -static void CreateKyogreBubbleSprites_0(u8 taskId) +#undef tScreenX +#undef tScreenY +#undef tZoom +#undef tDelay +#undef tTrigIdx +#undef tPalIdx + +#define sSinIdx data[1] +#define sBaseY data[2] +#define sTaskId data[5] +#define sDelay data[6] +#define sUnk data[7] // Never read + +// taskId is used inconsistently for these two functions. +// The sprite callback for the bubbles will always read it, unless delay is 0 to +// start (it never is), but the first function is often passed 0 instead of a +// taskId, and the second function doesn't take/assign a taskId at all. +// The only time an actual taskId is given is when it actually needs the +// result of reading it, to zoom in at the end of the scene. + +// Creates bubbles at positions spread across Kyogre's body +static void CreateKyogreBubbleSprites_Body(u8 taskId) { int i; u8 spriteId; - for (i = 0; i < 6; i++) + for (i = 0; i < NUM_BUBBLES_IN_SET; i++) { - spriteId = CreateSprite(&gUnknown_085E4D14, gIntroKyogreBubbleData[i][0], gIntroKyogreBubbleData[i][1], i); + spriteId = CreateSprite(&sSpriteTemplate_Bubbles, + sKyogreBubbleData[i][0], + sKyogreBubbleData[i][1], + i); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].data[5] = taskId; - gSprites[spriteId].data[6] = gIntroKyogreBubbleData[i][2]; - gSprites[spriteId].data[7] = 0x40; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sDelay = sKyogreBubbleData[i][2]; + gSprites[spriteId].sUnk = 64; } } -static void CreateKyogreBubbleSprites_1(void) +// Creates bubbles at positions around Kyogre's fins, for when it's moving them +static void CreateKyogreBubbleSprites_Fins(void) { int i; u8 spriteId; - for (i = 0; i < 6; i++) + for (i = 0; i < NUM_BUBBLES_IN_SET; i++) { - spriteId = CreateSprite(&gUnknown_085E4D14, gIntroKyogreBubbleData[i + 6][0], gIntroKyogreBubbleData[i + 6][1], i); + spriteId = CreateSprite(&sSpriteTemplate_Bubbles, + sKyogreBubbleData[i + NUM_BUBBLES_IN_SET][0], + sKyogreBubbleData[i + NUM_BUBBLES_IN_SET][1], + i); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].data[6] = gIntroKyogreBubbleData[i][2]; - gSprites[spriteId].data[7] = 0x40; +#ifdef BUGFIX + gSprites[spriteId].sDelay = sKyogreBubbleData[i + NUM_BUBBLES_IN_SET][2]; +#else + gSprites[spriteId].sDelay = sKyogreBubbleData[i][2]; // Using the wrong set of delays here +#endif + gSprites[spriteId].sUnk = 64; } } -static void SpriteCB_IntroKyogreBubbles(struct Sprite *sprite) +static void SpriteCB_KyogreBubbles(struct Sprite *sprite) { - switch(sprite->data[0]) + switch(sprite->sState) { case 0: - if (sprite->data[6] == 0) + if (sprite->sDelay == 0) { - sprite->data[1] = (sprite->data[1] + 11) & 0xFF; - sprite->pos2.x = Sin(sprite->data[1], 4); - sprite->data[2] += 0x30; - sprite->pos2.y = -(sprite->data[2] >> 8); + // Animation has started, float bubbles up + sprite->sSinIdx = (sprite->sSinIdx + 11) & 0xFF; + sprite->x2 = Sin(sprite->sSinIdx, 4); + sprite->sBaseY += 48; + sprite->y2 = -(sprite->sBaseY >> 8); if (sprite->animEnded) DestroySprite(sprite); } - else if (--sprite->data[6] == 0) + else if (--sprite->sDelay == 0) { + // Start bubble animation after delay has finished StartSpriteAnim(sprite, 0); sprite->invisible = FALSE; } - if (gTasks[sprite->data[5]].data[0] > 11) - sprite->data[0]++; + + // Check if Kyogre scene is ending + // For all but the last bubbles, sTaskId isn't actually set + if (gTasks[sprite->sTaskId].tState > 11) + sprite->sState++; break; case 1: - if (sprite->pos1.x < 120) - sprite->pos1.x -= 3; + // Scene zooms in, move bubbles offscreen + if (sprite->x < DISPLAY_WIDTH / 2) + sprite->x -= 3; else - sprite->pos1.x += 3; + sprite->x += 3; - if (sprite->pos1.y < 80) - sprite->pos1.y -= 3; + if (sprite->y < DISPLAY_HEIGHT / 2) + sprite->y -= 3; else - sprite->pos1.y += 3; - if ((u16)(sprite->pos1.y - 20) > 140) + sprite->y += 3; + + if ((u16)(sprite->y - 20) > DISPLAY_HEIGHT - 20) DestroySprite(sprite); break; } } -static void Task_IntroLoadClouds1(u8 taskId) +#undef sSinIdx +#undef sBaseY +#undef sTaskId +#undef sDelay +#undef sUnk + +static void Task_Scene3_LoadClouds1(u8 taskId) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 @@ -2085,183 +2353,206 @@ static void Task_IntroLoadClouds1(u8 taskId) SetGpuReg(REG_OFFSET_BG1VOFS, 0); SetGpuReg(REG_OFFSET_BG2HOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); - LZDecompressVram(gIntro3CloudsGfx, (void *)VRAM); - LZDecompressVram(gIntro3CloudsGfx, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gIntro3Clouds3Tilemap, (void *)(BG_SCREEN_ADDR(28))); - gTasks[taskId].func = Task_IntroLoadClouds2; + LZDecompressVram(gIntroClouds_Gfx, (void *)VRAM); + LZDecompressVram(gIntroClouds_Gfx, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(gIntroCloudsSun_Tilemap, (void *)(BG_SCREEN_ADDR(28))); + gTasks[taskId].func = Task_Scene3_LoadClouds2; } -static void Task_IntroLoadClouds2(u8 taskId) +static void Task_Scene3_LoadClouds2(u8 taskId) { - LZDecompressVram(gIntro3Clouds1Tilemap, (void *)(BG_CHAR_ADDR(3))); - LZDecompressVram(gIntro3Clouds2Tilemap, (void *)(BG_SCREEN_ADDR(26))); - gTasks[taskId].func = Task_IntroLoadClouds3; + LZDecompressVram(gIntroCloudsLeft_Tilemap, (void *)(BG_CHAR_ADDR(3))); + LZDecompressVram(gIntroCloudsRight_Tilemap, (void *)(BG_SCREEN_ADDR(26))); + gTasks[taskId].func = Task_Scene3_InitClouds; } -static void Task_IntroLoadClouds3(u8 taskId) +#define tCloudPos data[6] + +static void Task_Scene3_InitClouds(u8 taskId) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); - gTasks[taskId].func = Task_IntroCloudScene; - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[6] = 16; + gTasks[taskId].func = Task_Scene3_Clouds; + gTasks[taskId].tState = 0; + gTasks[taskId].tCloudPos = 16; } -static void Task_IntroCloudScene(u8 taskId) +// Clouds coming in from the sides before Rayquaza appears +static void Task_Scene3_Clouds(u8 taskId) { s16 *data = gTasks[taskId].data; - SetGpuReg(REG_OFFSET_BG0HOFS, (data[6] >> 8)); - SetGpuReg(REG_OFFSET_BG1HOFS, -(data[6] >> 8)); + // Left clouds are on BG0, right clouds are on BG1 + SetGpuReg(REG_OFFSET_BG0HOFS, (tCloudPos >> 8)); + SetGpuReg(REG_OFFSET_BG1HOFS, -(tCloudPos >> 8)); - switch (data[0]) + switch (tState) { case 0: - if (--data[6] == 0) + // Cloud position is used briefly as a delay, before + // the scene has faded in from white + if (--tCloudPos == 0) { - BeginNormalPaletteFade(0xFFFFFFFE, 0, 16, 0, RGB_WHITEALPHA); - data[6] = 0x5000; - data[0]++; + // Start fade in from white, set cloud starting positions + BeginNormalPaletteFade(PALETTES_ALL & ~1, 0, 16, 0, RGB_WHITEALPHA); + tCloudPos = 80 << 8; + tState++; } break; case 1: - if (data[6] == 0x2800) - BeginNormalPaletteFade(0x0000FFFE, 3, 0, 16, RGB(9, 10, 10)); + // Start fading out + if (tCloudPos == 40 << 8) + BeginNormalPaletteFade(PALETTES_BG & ~1, 3, 0, 16, RGB(9, 10, 10)); - if (data[6] != 0) - data[6] -= 0x80; + // Move clouds inward toward each other + if (tCloudPos != 0) + tCloudPos -= 128; else if (!gPaletteFade.active) - gTasks[taskId].func = Task_IntroLoadRayquazaLightningScene; + gTasks[taskId].func = Task_Scene3_LoadLightning; break; } } +#undef tCloudPos -static void Task_IntroLoadRayquazaLightningScene(u8 taskId) +#define tDelay data[6] +#define tTimer data[7] + +static void Task_Scene3_LoadLightning(u8 taskId) { - LZDecompressVram(gIntro3RayquazaTilemap, (void *)(BG_SCREEN_ADDR(28))); - LZDecompressVram(gIntro3Clouds4Tilemap, (void *)(BG_CHAR_ADDR(3))); - LZDecompressVram(gIntro3RayquazaGfx, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gIntro3Clouds2Gfx, (void *)VRAM); + LZDecompressVram(gIntroRayquaza_Tilemap, (void *)(BG_SCREEN_ADDR(28))); + LZDecompressVram(gIntroRayquazaClouds_Tilemap, (void *)(BG_CHAR_ADDR(3))); + LZDecompressVram(gIntroRayquaza_Gfx, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(gIntroRayquazaClouds_Gfx, (void *)VRAM); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); - gTasks[taskId].func = Task_IntroRayquazaLightningScene; - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[6] = 1; - gTasks[taskId].data[7] = 0; - LoadCompressedSpriteSheetUsingHeap(gIntroRayquazaLightningSpriteSheet); - LoadSpritePalettes(gIntroRayquazaLightningPalette); + gTasks[taskId].func = Task_Scene3_Lightning; + gTasks[taskId].tState = 0; + gTasks[taskId].tDelay = 1; + gTasks[taskId].tTimer = 0; + LoadCompressedSpriteSheetUsingHeap(sSpriteSheet_Lightning); + LoadSpritePalettes(sSpritePalette_Lightning); } -static void Task_IntroRayquazaLightningScene(u8 taskId) +static void Task_Scene3_Lightning(u8 taskId) { s16 *data = gTasks[taskId].data; u8 spriteId; - switch (data[0]) + switch (tState) { case 0: - if (--data[6] == 0) + if (--tDelay == 0) { - CreateSprite(&gIntroLightningSprite, 200, 48, 0); - spriteId = CreateSprite(&gIntroLightningSprite, 200, 80, 1); + // Do first lightning bolt + CreateSprite(&sSpriteTemplate_Lightning, 200, 48, 0); + spriteId = CreateSprite(&sSpriteTemplate_Lightning, 200, 80, 1); StartSpriteAnim(&gSprites[spriteId], 1); - spriteId = CreateSprite(&gIntroLightningSprite, 200, 112, 2); + spriteId = CreateSprite(&sSpriteTemplate_Lightning, 200, 112, 2); StartSpriteAnim(&gSprites[spriteId], 2); - data[0]++; - data[6] = 72; + tState++; + tDelay = 72; } break; case 1: - if (--data[6] == 0) + if (--tDelay == 0) { - CreateSprite(&gIntroLightningSprite, 40, 48, 0); - spriteId = CreateSprite(&gIntroLightningSprite, 40, 80, 1); + // Do second lightning bolt + CreateSprite(&sSpriteTemplate_Lightning, 40, 48, 0); + spriteId = CreateSprite(&sSpriteTemplate_Lightning, 40, 80, 1); StartSpriteAnim(&gSprites[spriteId], 1); - spriteId = CreateSprite(&gIntroLightningSprite, 40, 112, 2); + spriteId = CreateSprite(&sSpriteTemplate_Lightning, 40, 112, 2); StartSpriteAnim(&gSprites[spriteId], 2); - data[0]++; - data[6] = 48; + tState++; + tDelay = 48; } break; case 2: - if (--data[6] == 0) - gTasks[taskId].func = Task_IntroLoadRayquazaGlowScene; + if (--tDelay == 0) + gTasks[taskId].func = Task_Scene3_LoadRayquazaAttack; break; } } -static void SpriteCB_IntroRayquazaLightning(struct Sprite *sprite) +#define sPalIdx data[1] +#define sDelay data[2] + +static void SpriteCB_Lightning(struct Sprite *sprite) { if (sprite->animEnded) sprite->invisible = TRUE; - switch(sprite->data[0]) + switch(sprite->sState) { case 0: - sprite->data[1] = 0x1C2; - sprite->data[0]++; + sprite->sPalIdx = 0x1C2; + sprite->sState++; case 1: - CpuCopy16(&gIntro3BgPal[sprite->data[1]], &gPlttBufferFaded[93], 2); - sprite->data[1] += 2; - if (sprite->data[1] != 0x1CE) + CpuCopy16(&gIntro3Bg_Pal[sprite->sPalIdx], &gPlttBufferFaded[93], 2); + sprite->sPalIdx += 2; + if (sprite->sPalIdx != 0x1CE) break; - sprite->data[1] = 0x1CC; - sprite->data[2] = 4; - sprite->data[0]++; + sprite->sPalIdx = 0x1CC; + sprite->sDelay = 4; + sprite->sState++; case 2: - if (--sprite->data[2] == 0) + if (--sprite->sDelay == 0) { - sprite->data[2] = 4; - CpuCopy16(&gIntro3BgPal[sprite->data[1]], &gPlttBufferFaded[93], 2); - sprite->data[1] -= 2; - if (sprite->data[1] == 0x1C0) + sprite->sDelay = 4; + CpuCopy16(&gIntro3Bg_Pal[sprite->sPalIdx], &gPlttBufferFaded[93], 2); + sprite->sPalIdx -= 2; + if (sprite->sPalIdx == 0x1C0) DestroySprite(sprite); } break; } } -static void Task_IntroLoadRayquazaGlowScene(u8 taskId) -{ - u8 newTaskId; +#undef sPalIdx +#undef sDelay - LoadCompressedSpriteSheet(gIntroRayquazaGlowSpriteSheet); - LoadSpritePalettes(gIntroRayquazaGlowPalette); +#define tRayquazaTaskId data[4] + +static void Task_Scene3_LoadRayquazaAttack(u8 taskId) +{ + u8 attackTaskId; + + LoadCompressedSpriteSheet(sSpriteSheet_RayquazaOrb); + LoadSpritePalettes(sSpritePalette_RayquazaOrb); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); - gTasks[taskId].func = Task_IntroRayquazaGlowScene_0; - BeginNormalPaletteFade(0x0000FFDE, 0, 16, 0, RGB(9, 10, 10)); - gTasks[taskId].data[0] = 0; + gTasks[taskId].func = Task_Scene3_Rayquaza; + BeginNormalPaletteFade(PALETTES_BG & ~(0x21), 0, 16, 0, RGB(9, 10, 10)); + gTasks[taskId].tState = 0; gTasks[taskId].data[1] = 0xA8; gTasks[taskId].data[2] = -0x10; gTasks[taskId].data[3] = -0x88; gTasks[taskId].data[4] = -0x10; - newTaskId = CreateTask(Task_IntroRayquazaGlowScene_1, 0); - gTasks[newTaskId].data[4] = taskId; + attackTaskId = CreateTask(Task_RayquazaAttack, 0); + gTasks[attackTaskId].tRayquazaTaskId = taskId; } -static void Task_IntroRayquazaGlowScene_0(u8 taskId) +static void Task_Scene3_Rayquaza(u8 taskId) { s16 *data = gTasks[taskId].data; - if (data[7] % 2 == 0) + if (tTimer % 2 == 0) data[6] ^= 2; - data[7]++; + tTimer++; - switch(data[0]) + switch(tState) { case 0: - if ((data[7] & 1) != 0) + if ((tTimer & 1) != 0) { data[1] -= 2; data[2]++; @@ -2270,12 +2561,12 @@ static void Task_IntroRayquazaGlowScene_0(u8 taskId) } if (data[1] == 0x68) { - data[0]++; + tState++; data[5] = 1; } break; case 1: - data[0]++; + tState++; data[5] = 4; break; case 2: @@ -2286,7 +2577,7 @@ static void Task_IntroRayquazaGlowScene_0(u8 taskId) if (!gPaletteFade.active) { data[5] = 0x8C; - data[0]++; + tState++; } break; case 3: @@ -2295,6 +2586,8 @@ static void Task_IntroRayquazaGlowScene_0(u8 taskId) break; } } +#undef tDelay +#undef tTimer static void Task_EndIntroMovie(u8 taskId) { @@ -2302,24 +2595,23 @@ static void Task_EndIntroMovie(u8 taskId) SetMainCallback2(MainCB2_EndIntro); } -static void Task_IntroRayquazaGlowScene_1(u8 taskId) +static void Task_RayquazaAttack(u8 taskId) { - // Note: data[4] contains the taskId of Task_IntroRayquazaGlowScene_0 u8 spriteId; s16 *data = gTasks[taskId].data; data[2]++; - switch(data[0]) + switch(tState) { case 0: if ((data[2] & 1) != 0) { - CpuCopy16(&gIntro3BgPal[0x1A2 + data[1] * 2], &gPlttBufferFaded[94], 2); + CpuCopy16(&gIntro3Bg_Pal[0x1A2 + data[1] * 2], &gPlttBufferFaded[94], 2); data[1]++; } if (data[1] == 6) { - data[0]++; + tState++; data[1] = 0; data[3] = 10; } @@ -2329,12 +2621,12 @@ static void Task_IntroRayquazaGlowScene_1(u8 taskId) { if ((data[2] & 1) != 0) { - CpuCopy16(&gIntro3BgPal[0x1A2 + data[1] * 2], &gPlttBufferFaded[88], 2); + CpuCopy16(&gIntro3Bg_Pal[0x1A2 + data[1] * 2], &gPlttBufferFaded[88], 2); data[1]++; } if (data[1] == 6) { - data[0]++; + tState++; data[3] = 10; } } @@ -2348,16 +2640,16 @@ static void Task_IntroRayquazaGlowScene_1(u8 taskId) { if ((data[2] & 1) != 0) { - CpuCopy16(&gIntro3BgPal[0x182 + data[1] * 2], &gPlttBufferFaded[92], 2); + CpuCopy16(&gIntro3Bg_Pal[0x182 + data[1] * 2], &gPlttBufferFaded[92], 2); data[1]++; } if (data[1] == 6) { - spriteId = CreateSprite(&gIntroRayquazaHyperbeamSprite, 120, 88, 15); + spriteId = CreateSprite(&sSpriteTemplate_RayquazaOrb, 120, 88, 15); PlaySE(SE_INTRO_BLAST); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].data[3] = data[4]; - data[0]++; + gSprites[spriteId].data[3] = tRayquazaTaskId; + tState++; data[3] = 16; } } @@ -2372,13 +2664,13 @@ static void Task_IntroRayquazaGlowScene_1(u8 taskId) if (--data[3] != 0) { BlendPalette(0x50, 16, data[3], RGB(9, 10, 10)); - CpuCopy16(&gIntro3BgPal[0x1AC], &gPlttBufferFaded[94], 2); - CpuCopy16(&gIntro3BgPal[0x1AC], &gPlttBufferFaded[88], 2); - CpuCopy16(&gIntro3BgPal[0x18C], &gPlttBufferFaded[92], 2); + CpuCopy16(&gIntro3Bg_Pal[0x1AC], &gPlttBufferFaded[94], 2); + CpuCopy16(&gIntro3Bg_Pal[0x1AC], &gPlttBufferFaded[88], 2); + CpuCopy16(&gIntro3Bg_Pal[0x18C], &gPlttBufferFaded[92], 2); } else { - data[0]++; + tState++; data[3] = 53; } } @@ -2386,8 +2678,8 @@ static void Task_IntroRayquazaGlowScene_1(u8 taskId) case 4: if (--data[3] == 0) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); - data[0]++; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITE); + tState++; } break; case 5: @@ -2397,7 +2689,7 @@ static void Task_IntroRayquazaGlowScene_1(u8 taskId) } } -static void intro_reset_and_hide_bgs(void) +static void IntroResetGpuRegs(void) { SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_BG3HOFS, 0); @@ -2413,9 +2705,9 @@ static void intro_reset_and_hide_bgs(void) SetGpuReg(REG_OFFSET_BLDY, 0); } -static void Task_IntroWaterDrops_1(u8 taskId) +static void Task_BlendLogoIn(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: default: @@ -2426,10 +2718,10 @@ static void Task_IntroWaterDrops_1(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[31]); + SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[31]); SetGpuReg(REG_OFFSET_BLDY, 0); - gTasks[taskId].data[1] = 0x40; - gTasks[taskId].data[0]++; + gTasks[taskId].data[1] = ARRAY_COUNT(gTitleScreenAlphaBlend); + gTasks[taskId].tState++; break; case 1: if (gTasks[taskId].data[1] != 0) @@ -2438,13 +2730,13 @@ static void Task_IntroWaterDrops_1(u8 taskId) gTasks[taskId].data[1]--; tmp = gTasks[taskId].data[1] / 2; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[tmp]); + SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[tmp]); } else { - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[0]); - gTasks[taskId].data[1] = 0x10; - gTasks[taskId].data[0]++; + SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[0]); + gTasks[taskId].data[1] = ARRAY_COUNT(gTitleScreenAlphaBlend) / 4; + gTasks[taskId].tState++; } break; case 2: @@ -2456,9 +2748,9 @@ static void Task_IntroWaterDrops_1(u8 taskId) } } -static void Task_IntroWaterDrops_2(u8 taskId) +static void Task_BlendLogoOut(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: default: @@ -2469,25 +2761,25 @@ static void Task_IntroWaterDrops_2(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[0]); SetGpuReg(REG_OFFSET_BLDY, 0); gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 1: - if (gTasks[taskId].data[1] < 62) + if (gTasks[taskId].data[1] < (int)ARRAY_COUNT(gTitleScreenAlphaBlend) - 2) { u8 tmp; gTasks[taskId].data[1]++; tmp = gTasks[taskId].data[1] / 2; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[tmp]); + SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[tmp]); } else { - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[31]); - gTasks[taskId].data[1] = 0x10; - gTasks[taskId].data[0]++; + SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[31]); + gTasks[taskId].data[1] = ARRAY_COUNT(gTitleScreenAlphaBlend) / 4; + gTasks[taskId].tState++; } break; case 2: @@ -2529,9 +2821,9 @@ void PanFadeAndZoomScreen(u16 screenX, u16 screenY, u16 zoom, u16 alpha) SetGpuReg(REG_OFFSET_BG2Y_H, dest.dy >> 16); } -static void sub_816F318(struct Sprite *sprite) +static void SpriteCB_WaterDrop_Ripple(struct Sprite *sprite) { - u8 r0; + u8 palNum; if (sprite->data[2] >= 192) { @@ -2544,10 +2836,10 @@ static void sub_816F318(struct Sprite *sprite) sprite->invisible = FALSE; SetOamMatrix(sprite->data[1], sprite->data[2], 0, 0, sprite->data[2]); sprite->data[2] = (sprite->data[2] * 95) / 100; - r0 = (sprite->data[2] - 192) / 128 + 9; - if (r0 > 15) - r0 = 15; - sprite->oam.paletteNum = r0; + palNum = (sprite->data[2] - 192) / 128 + 9; + if (palNum > 15) + palNum = 15; + sprite->oam.paletteNum = palNum; } } else @@ -2556,46 +2848,47 @@ static void sub_816F318(struct Sprite *sprite) } } -static void sub_816F3A4(struct Sprite *sprite) +static void SpriteCB_WaterDropHalf(struct Sprite *sprite) { if (gSprites[sprite->data[7]].data[7] != 0) { sprite->invisible = TRUE; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - StartSpriteAnim(sprite, 3); + sprite->x += sprite->x2; + sprite->y += sprite->y2; + StartSpriteAnim(sprite, DROP_ANIM_RIPPLE); sprite->data[2] = 1024; sprite->data[3] = 8 * (sprite->data[1] & 3); - sprite->callback = sub_816F318; + sprite->callback = SpriteCB_WaterDrop_Ripple; sprite->oam.shape = SPRITE_SHAPE(64x32); sprite->oam.size = SPRITE_SIZE(64x32); CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_ERASE); } else { - sprite->pos2.x = gSprites[sprite->data[7]].pos2.x; - sprite->pos2.y = gSprites[sprite->data[7]].pos2.y; - sprite->pos1.x = gSprites[sprite->data[7]].pos1.x; - sprite->pos1.y = gSprites[sprite->data[7]].pos1.y; + sprite->x2 = gSprites[sprite->data[7]].x2; + sprite->y2 = gSprites[sprite->data[7]].y2; + sprite->x = gSprites[sprite->data[7]].x; + sprite->y = gSprites[sprite->data[7]].y; } } -static void sub_816F454(struct Sprite *sprite) +static void SpriteCB_WaterDrop(struct Sprite *sprite) { - if (sprite->data[0] != 0) - sprite->callback = sub_816F46C; + // Wait for sState to be modified by Task_Scene1_WaterDrops + if (sprite->sState != 0) + sprite->callback = SpriteCB_WaterDrop_Slide; } -static void sub_816F46C(struct Sprite *sprite) +static void SpriteCB_WaterDrop_Slide(struct Sprite *sprite) { - if (sprite->pos1.x <= 116) + if (sprite->x <= 116) { - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos1.x += 4; - sprite->pos2.x = -4; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x += 4; + sprite->x2 = -4; sprite->data[4] = 128; - sprite->callback = sub_816F5B4; + sprite->callback = SpriteCB_WaterDrop_ReachLeafEnd; } else { @@ -2616,10 +2909,10 @@ static void sub_816F46C(struct Sprite *sprite) sin1 = gSineTable[(u8)data4]; sin2 = gSineTable[(u8)(data4 + 64)]; sprite->data[4] += 2; - sprite->pos2.y = sin1 / 32; - sprite->pos1.x--; - if (sprite->pos1.x & 1) - sprite->pos1.y++; + sprite->y2 = sin1 / 32; + sprite->x--; + if (sprite->x & 1) + sprite->y++; temp = -sin2 / 16; data2 = sprite->data[2]; data3 = sprite->data[3]; @@ -2635,28 +2928,27 @@ static void sub_816F46C(struct Sprite *sprite) } } -static void sub_816F5B4(struct Sprite *sprite) +static void SpriteCB_WaterDrop_ReachLeafEnd(struct Sprite *sprite) { SetOamMatrix(sprite->data[1], sprite->data[6] + 64, 0, 0, sprite->data[6] + 64); SetOamMatrix(sprite->data[1] + 1, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64); SetOamMatrix(sprite->data[1] + 2, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64); if (sprite->data[4] != 64) { - u16 data4; - + u16 sinIdx; sprite->data[4] -= 8; - data4 = sprite->data[4]; - sprite->pos2.x = gSineTable[(u8)(data4 + 64)] / 64; - sprite->pos2.y = gSineTable[(u8)data4] / 64; + sinIdx = sprite->data[4]; + sprite->x2 = gSineTable[(u8)(sinIdx + 64)] / 64; + sprite->y2 = gSineTable[(u8)sinIdx] / 64; } else { sprite->data[4] = 0; - sprite->callback = sub_816F660; + sprite->callback = SpriteCB_WaterDrop_DangleFromLeaf; } } -static void sub_816F660(struct Sprite *sprite) +static void SpriteCB_WaterDrop_DangleFromLeaf(struct Sprite *sprite) { if (sprite->data[0] != 2) { @@ -2664,54 +2956,55 @@ static void sub_816F660(struct Sprite *sprite) sprite->data[4] += 8; r2 = gSineTable[(u8)sprite->data[4]] / 16 + 64; - sprite->pos2.x = gSineTable[(u8)(r2 + 64)] / 64; - sprite->pos2.y = gSineTable[(u8)r2] / 64; + sprite->x2 = gSineTable[(u8)(r2 + 64)] / 64; + sprite->y2 = gSineTable[(u8)r2] / 64; } else { - sprite->callback = SpriteCB_WaterDropFall; + sprite->callback = SpriteCB_WaterDrop_Fall; } } -static void SpriteCB_WaterDropFall(struct Sprite *sprite) +static void SpriteCB_WaterDrop_Fall(struct Sprite *sprite) { - if (sprite->pos1.y < sprite->data[5]) + if (sprite->y < sprite->data[5]) { - sprite->pos1.y += 4; + sprite->y += 4; } else { sprite->data[7] = 1; sprite->invisible = TRUE; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - StartSpriteAnim(sprite, 3); + sprite->x += sprite->x2; + sprite->y += sprite->y2; + StartSpriteAnim(sprite, DROP_ANIM_RIPPLE); sprite->data[2] = 1024; sprite->data[3] = 8 * (sprite->data[1] & 3); - sprite->callback = sub_816F318; + sprite->callback = SpriteCB_WaterDrop_Ripple; sprite->oam.shape = SPRITE_SHAPE(64x32); sprite->oam.size = SPRITE_SIZE(64x32); CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_ERASE); } } -//Duplicate function -static void SpriteCB_WaterDropFall_2(struct Sprite *sprite) +// Identical to SpriteCB_WaterDrop_Fall +// Used by the 2nd and 3rd water drops to skip the leaf slide +static void SpriteCB_WaterDropShort(struct Sprite *sprite) { - if (sprite->pos1.y < sprite->data[5]) + if (sprite->y < sprite->data[5]) { - sprite->pos1.y += 4; + sprite->y += 4; } else { sprite->data[7] = 1; sprite->invisible = TRUE; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - StartSpriteAnim(sprite, 3); + sprite->x += sprite->x2; + sprite->y += sprite->y2; + StartSpriteAnim(sprite, DROP_ANIM_RIPPLE); sprite->data[2] = 1024; sprite->data[3] = 8 * (sprite->data[1] & 3); - sprite->callback = sub_816F318; + sprite->callback = SpriteCB_WaterDrop_Ripple; sprite->oam.shape = SPRITE_SHAPE(64x32); sprite->oam.size = SPRITE_SIZE(64x32); CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_ERASE); @@ -2723,7 +3016,8 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) u8 spriteId; u8 oldSpriteId; - spriteId = CreateSprite(&gIntroWaterDropSprite, x, y, 1); + // Create water drop reflection + spriteId = CreateSprite(&sSpriteTemplate_WaterDrop, x, y, 1); gSprites[spriteId].data[0] = 0; gSprites[spriteId].data[7] = 0; gSprites[spriteId].data[1] = d; @@ -2734,29 +3028,32 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE; gSprites[spriteId].oam.matrixNum = d; CalcCenterToCornerVec(&gSprites[spriteId], SPRITE_SHAPE(32x32), SPRITE_SIZE(32x32), ST_OAM_AFFINE_ERASE); - StartSpriteAnim(&gSprites[spriteId], 2); + StartSpriteAnim(&gSprites[spriteId], DROP_ANIM_REFLECTION); if (!fallImmediately) - gSprites[spriteId].callback = sub_816F454; + gSprites[spriteId].callback = SpriteCB_WaterDrop; // Do full anim, for 1st drop that slides along the leaf else - gSprites[spriteId].callback = SpriteCB_WaterDropFall_2; + gSprites[spriteId].callback = SpriteCB_WaterDropShort; // Skip to drop falling into the water, for 2nd and 3rd drops oldSpriteId = spriteId; - spriteId = CreateSprite(&gIntroWaterDropSprite, x, y, 1); + // Create water drop upper half + // Implicitly anim number 0, DROP_ANIM_UPPER_HALF + spriteId = CreateSprite(&sSpriteTemplate_WaterDrop, x, y, 1); gSprites[spriteId].data[7] = oldSpriteId; gSprites[spriteId].data[1] = d + 1; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE; gSprites[spriteId].oam.matrixNum = d + 1; CalcCenterToCornerVec(&gSprites[spriteId], SPRITE_SHAPE(32x32), SPRITE_SIZE(32x32), ST_OAM_AFFINE_ERASE); - gSprites[spriteId].callback = sub_816F3A4; + gSprites[spriteId].callback = SpriteCB_WaterDropHalf; - spriteId = CreateSprite(&gIntroWaterDropSprite, x, y, 1); + // Create water drop lower half + spriteId = CreateSprite(&sSpriteTemplate_WaterDrop, x, y, 1); gSprites[spriteId].data[7] = oldSpriteId; gSprites[spriteId].data[1] = d + 2; - StartSpriteAnim(&gSprites[spriteId], 1); + StartSpriteAnim(&gSprites[spriteId], DROP_ANIM_LOWER_HALF); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE; gSprites[spriteId].oam.matrixNum = d + 2; CalcCenterToCornerVec(&gSprites[spriteId], SPRITE_SHAPE(32x32), SPRITE_SIZE(32x32), ST_OAM_AFFINE_ERASE); - gSprites[spriteId].callback = sub_816F3A4; + gSprites[spriteId].callback = SpriteCB_WaterDropHalf; SetOamMatrix(d, c + 32, 0, 0, c + 32); SetOamMatrix(d + 1, c + 32, 0, 0, c + 32); @@ -2765,166 +3062,199 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) return oldSpriteId; } -static void SpriteCB_IntroGraphicsBicycle(struct Sprite *sprite) +// State is handled by Task_Scene2_BikeRide +static void SpriteCB_PlayerOnBicycle(struct Sprite *sprite) { - switch (sprite->data[0]) + // Adjust x position + switch (sprite->sState) { case 0: + // Move forwards StartSpriteAnimIfDifferent(sprite, 0); - sprite->pos1.x--; + sprite->x--; break; case 1: + // Drift backwards slowly StartSpriteAnimIfDifferent(sprite, 0); if (gIntroFrameCounter & 7) return; - sprite->pos1.x++; + sprite->x++; break; case 2: - if (sprite->pos1.x <= 120 || gIntroFrameCounter & 7) - sprite->pos1.x++; + // Move backwards + if (sprite->x <= 120 || gIntroFrameCounter & 7) + sprite->x++; break; case 3: + // Bike in place break; case 4: - if (sprite->pos1.x > -32) - sprite->pos1.x -= 2; + // Exit to the left + if (sprite->x > -32) + sprite->x -= 2; break; } + if (gIntroFrameCounter & 7) return; - if (sprite->pos2.y != 0) + + // Adjust y position + if (sprite->y2 != 0) { - sprite->pos2.y = 0; + // Return to neutral after wobble + sprite->y2 = 0; } else { + // Random wobble on y axis switch (Random() & 3) { case 0: - sprite->pos2.y = -1; + sprite->y2 = -1; break; case 1: - sprite->pos2.y = 1; + sprite->y2 = 1; break; case 2: case 3: - sprite->pos2.y = 0; + sprite->y2 = 0; break; } } } -static void SpriteCB_IntroGraphicsFlygon(struct Sprite *sprite) +#define sSinIdx data[1] + +// Movement is started by setting state to 1 in Task_Scene2_BikeRide +static void SpriteCB_Flygon(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: break; case 1: - if (sprite->pos2.x + sprite->pos1.x < 304) - sprite->pos2.x += 8; + if (sprite->x2 + sprite->x < DISPLAY_WIDTH + 64) + sprite->x2 += 8; else - sprite->data[0] = 2; + sprite->sState = 2; break; case 2: - if (sprite->pos2.x + sprite->pos1.x > 120) - sprite->pos2.x -= 1; + if (sprite->x2 + sprite->x > 120) + sprite->x2 -= 1; else - sprite->data[0] = 3; + sprite->sState = 3; break; case 3: - if (sprite->pos2.x > 0) - sprite->pos2.x -= 2; + if (sprite->x2 > 0) + sprite->x2 -= 2; break; } - sprite->pos2.y = Sin((u8)sprite->data[1], 8) - gIntroGraphicsFlygonYOffset; - sprite->data[1] += 4; + sprite->y2 = Sin((u8)sprite->sSinIdx, 8) - sFlygonYOffset; + sprite->sSinIdx += 4; } -static void sub_816FB38(struct Sprite *sprite) +#undef sSinIdx + +#define sTimer data[1] +#define sLetterId data[2] +#define sColorDelay data[3] +#define sLetterX data[3] // Re-used + +#define COLOR_CHANGES 9 // Number of stages for changing the letter color + +// For the letters in "Game Freak" +// Also intended for the letters in "Presents", which is never shown +static void SpriteCB_LogoLetter(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (sprite->data[1] != 0) + if (sprite->sTimer != 0) { - sprite->data[1]--; + sprite->sTimer--; } else { + // Start the grow and shrink appearance animation sprite->invisible = FALSE; StartSpriteAffineAnim(sprite, 1); - sprite->data[0]++; + sprite->sState++; } break; case 1: - if (gIntroFrameCounter == 0x90) + if (gIntroFrameCounter == TIMER_LOGO_LETTERS_COLOR) { - sprite->data[0]++; - sprite->data[1] = 9; - sprite->data[3] = 2; + // Initialize color fade + sprite->sState++; + sprite->sTimer = COLOR_CHANGES; + sprite->sColorDelay = 2; } break; case 2: - if (sprite->data[3] == 0) + // Fade letters to blue + if (sprite->sColorDelay == 0) { - sprite->data[3] = 2; - if (sprite->data[1] != 0) + sprite->sColorDelay = 2; + if (sprite->sTimer != 0) { - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1]], &gPlttBufferFaded[0x11F], 2); - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1] + 0x10], &gPlttBufferFaded[0x114], 2); - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1] + 0x20], &gPlttBufferFaded[0x11A], 2); - sprite->data[1]--; + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer], &gPlttBufferFaded[0x11F], 2); + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer + 16], &gPlttBufferFaded[0x114], 2); + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer + 32], &gPlttBufferFaded[0x11A], 2); + sprite->sTimer--; } else { - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1]], &gPlttBufferFaded[0x11F], 2); - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1] + 0x10], &gPlttBufferFaded[0x114], 2); - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1] + 0x20], &gPlttBufferFaded[0x11A], 2); - sprite->data[0]++; + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer], &gPlttBufferFaded[0x11F], 2); + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer + 16], &gPlttBufferFaded[0x114], 2); + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer + 32], &gPlttBufferFaded[0x11A], 2); + sprite->sState++; } } else { - sprite->data[3]--; + sprite->sColorDelay--; } break; case 3: - if (sprite->data[3] != 0) + // Fade letters back to white + if (sprite->sColorDelay != 0) { - sprite->data[3]--; + sprite->sColorDelay--; } else { - sprite->data[3] = 2; - if (sprite->data[1] < 10) + sprite->sColorDelay = 2; + if (sprite->sTimer <= COLOR_CHANGES) { - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1]], &gPlttBufferFaded[0x11F], 2); - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1] + 0x10], &gPlttBufferFaded[0x114], 2); - CpuCopy16(&gIntro1GameFreakTextFadePal[sprite->data[1] + 0x20], &gPlttBufferFaded[0x11A], 2); - sprite->data[1]++; + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer], &gPlttBufferFaded[0x11F], 2); + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer + 16], &gPlttBufferFaded[0x114], 2); + CpuCopy16(&gIntroGameFreakTextFade_Pal[sprite->sTimer + 32], &gPlttBufferFaded[0x11A], 2); + sprite->sTimer++; } else { - sprite->data[0]++; + sprite->sState++; } } break; case 4: - if (gIntroFrameCounter == 0x110) + if (gIntroFrameCounter == TIMER_LOGO_DISAPPEAR) { + // Start the grow disappearance animation StartSpriteAffineAnim(sprite, 2); sprite->oam.objMode = ST_OAM_OBJ_BLEND; - sprite->data[0]++; + sprite->sState++; } break; case 5: - sprite->data[3] += gUnknown_085E4F48[sprite->data[2]]; - sprite->pos2.x = (sprite->data[3] & 0xFF00) >> 8; - if (sprite->data[2] < 4) + // Spread the letters out as they grow + sprite->sLetterX += sGameFreakLettersMoveSpeed[sprite->sLetterId]; + sprite->x2 = (sprite->sLetterX & 0xFF00) >> 8; + if (sprite->sLetterId < 4) { - s16 temp = sprite->pos2.x; - sprite->pos2.x = -temp; + // Is in first 4 letters, i.e. "Game" + s16 temp = sprite->x2; + sprite->x2 = -temp; } if (sprite->affineAnimEnded) DestroySprite(sprite); @@ -2932,22 +3262,23 @@ static void sub_816FB38(struct Sprite *sprite) } } -static void sub_816FD44(struct Sprite *sprite) +static void SpriteCB_GameFreakLogo(struct Sprite *sprite) { - switch(sprite->data[0]) + switch(sprite->sState) { case 0: - if (gIntroFrameCounter == 0x80) + if (gIntroFrameCounter == TIMER_LOGO_APPEAR) { sprite->invisible = FALSE; - sprite->data[0]++; + sprite->sState++; } break; case 1: - if (gIntroFrameCounter == 0x110) + if (gIntroFrameCounter == TIMER_LOGO_DISAPPEAR) { + // Start the grow disappearance animation StartSpriteAffineAnim(sprite, 3); - sprite->data[0]++; + sprite->sState++; } break; case 2: @@ -2957,35 +3288,45 @@ static void sub_816FD44(struct Sprite *sprite) } } -static u8 CreatePart1Animations(s16 a0, s16 a1, s16 a2) +static u8 CreateGameFreakLogoSprites(s16 x, s16 y, s16 unused) { u16 i; u8 spriteId; - for (i = 0; i < 9; i++) + // Create "Game Freak" letters + for (i = 0; i < NUM_GF_LETTERS; i++) { - spriteId = CreateSprite(&gUnknown_085E4F5C, gUnknown_085E4E94[i][1] + a0, a1 - 4, 0); - gSprites[spriteId].data[0] = 0; - gSprites[spriteId].data[1] = gUnknown_085E4FA4[i]; - gSprites[spriteId].data[2] = i; + spriteId = CreateSprite(&sSpriteTemplate_GameFreakLetter, sGameFreakLetterData[i][1] + x, y - 4, 0); + gSprites[spriteId].sState = 0; + gSprites[spriteId].sTimer = sGameFreakLetterStartDelays[i]; + gSprites[spriteId].sLetterId = i; gSprites[spriteId].invisible = TRUE; gSprites[spriteId].oam.matrixNum = i + 12; - StartSpriteAnim(&gSprites[spriteId], gUnknown_085E4E94[i][0]); + StartSpriteAnim(&gSprites[spriteId], sGameFreakLetterData[i][0]); StartSpriteAffineAnim(&gSprites[spriteId], 0); } - spriteId = CreateSprite(&gUnknown_085E4F8C, 120, a1 - 6, 0); - gSprites[spriteId].data[0] = 0; + + // Create Game Freak logo + spriteId = CreateSprite(&sSpriteTemplate_GameFreakLogo, 120, y - 6, 0); + gSprites[spriteId].sState = 0; gSprites[spriteId].invisible = TRUE; gSprites[spriteId].oam.matrixNum = i + 12; StartSpriteAffineAnim(&gSprites[spriteId], 1); + return spriteId; } -static void sub_816FEDC(struct Sprite *sprite) +#undef sTimer +#undef sLetterId +#undef sColorDelay +#undef sLetterX +#undef COLOR_CHANGES + +static void SpriteCB_FlygonSilhouette(struct Sprite *sprite) { sprite->data[7]++; - if (sprite->data[0] != 0) + if (sprite->sState != 0) { s16 sin1; s16 sin2; @@ -3003,7 +3344,7 @@ static void sub_816FEDC(struct Sprite *sprite) SetOamMatrix(1, a, b, c, d); } - switch (sprite->data[0]) + switch (sprite->sState) { case 0: default: @@ -3011,30 +3352,30 @@ static void sub_816FEDC(struct Sprite *sprite) sprite->oam.matrixNum = 1; CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_DOUBLE); sprite->invisible = FALSE; - sprite->data[0] = 1; + sprite->sState = 1; sprite->data[1] = 0x80; sprite->data[2] = 0; sprite->data[3] = 0; break; case 1: - sprite->pos2.x = -Sin((u8)sprite->data[3], 140); - sprite->pos2.y = -Sin((u8)sprite->data[3], 120); + sprite->x2 = -Sin((u8)sprite->data[3], 140); + sprite->y2 = -Sin((u8)sprite->data[3], 120); sprite->data[1] += 7; sprite->data[3] += 3; - if (sprite->pos1.x + sprite->pos2.x <= -16) + if (sprite->x + sprite->x2 <= -16) { sprite->oam.priority = 3; - sprite->data[0]++; - sprite->pos1.x = 20; - sprite->pos1.y = 40; + sprite->sState++; + sprite->x = 20; + sprite->y = 40; sprite->data[1] = 0x200; sprite->data[2] = 0; sprite->data[3] = 0x10; } break; case 2: - sprite->pos2.x = Sin((u8)sprite->data[3], 34); - sprite->pos2.y = -Cos((u8)sprite->data[3], 60); + sprite->x2 = Sin((u8)sprite->data[3], 34); + sprite->y2 = -Cos((u8)sprite->data[3], 60); sprite->data[1] += 2; if (sprite->data[7] % 5 == 0) sprite->data[3]++; @@ -3042,13 +3383,10 @@ static void sub_816FEDC(struct Sprite *sprite) } } -static void SpriteCB_IntroRayquazaHyperbeam(struct Sprite *sprite) +static void SpriteCB_RayquazaOrb(struct Sprite *sprite) { u16 foo; - - //I'm not sure why a switch statement was used here. - //if (sprite->data[0] != 1) would have been more appropriate. - switch (sprite->data[0]) + switch (sprite->sState) { case 0: default: @@ -3057,7 +3395,7 @@ static void SpriteCB_IntroRayquazaHyperbeam(struct Sprite *sprite) sprite->oam.matrixNum = 18; CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); sprite->data[1] = 0; - sprite->data[0] = 1; + sprite->sState = 1; //fall through case 1: sprite->data[7]++; diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index 45cc24e5c8..bceddd9b70 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -6,6 +6,25 @@ #include "task.h" #include "main.h" #include "graphics.h" +#include "constants/rgb.h" + +/* + The graphics here are used by both the second scene of the intro + and the credit sequence, where the player bikes along a grassy path. + + These graphics are placed in graphics/intro/scene_2 to keep + all of the intro graphics files together, though it includes + the related graphics that are used only by the credits. +*/ + +#define TAG_BICYCLE 1001 +#define TAG_BRENDAN 1002 +#define TAG_MAY 1003 +#define TAG_FLYGON_LATIOS 1004 +#define TAG_FLYGON_LATIAS 1005 + +// Used for the Clouds/Trees/Houses sprites that pass by in the background +#define TAG_MOVING_SCENERY 2000 struct IntroCreditsSpriteMetadata { @@ -18,99 +37,99 @@ struct IntroCreditsSpriteMetadata u16 xOff; }; -static const u16 gUnknown_085F06E0[] = INCBIN_U16("graphics/intro/intro2_grass.gbapal"); -static const u16 gUnknown_085F0700[] = INCBIN_U16("graphics/intro/intro2_grass_afternoon.gbapal"); -static const u16 gUnknown_085F0720[] = INCBIN_U16("graphics/intro/intro2_grass_night.gbapal"); -static const u32 gUnknown_085F0740[] = INCBIN_U32("graphics/intro/intro2_grass.4bpp.lz"); -static const u32 gUnknown_085F0BC0[] = INCBIN_U32("graphics/intro/intro2_grass_map.bin.lz"); -static const u16 gUnknown_085F0CFC[] = INCBIN_U16("graphics/intro/85F0CFC.gbapal"); -static const u16 gUnknown_085F0D5C[] = INCBIN_U16("graphics/intro/85F0D5C.gbapal"); -static const u32 gUnknown_085F0DBC[] = INCBIN_U32("graphics/intro/intro2_bgclouds.4bpp.lz"); -static const u32 gUnknown_085F1398[] = INCBIN_U32("graphics/intro/intro2_bgclouds_map.bin.lz"); -static const u16 gUnknown_085F1668[] = INCBIN_U16("graphics/intro/intro2_bgclouds.gbapal"); -static const u16 gUnknown_085F1688[] = INCBIN_U16("graphics/intro/intro2_bgclouds_afternoon.gbapal"); -static const u32 gUnknown_085F16A8[] = INCBIN_U32("graphics/intro/intro2_bgclouds2.4bpp.lz"); -static const u16 gUnknown_085F17E4[] = INCBIN_U16("graphics/intro/intro2_bgtrees2.gbapal"); -static const u16 gUnknown_085F1804[] = INCBIN_U16("graphics/intro/intro2_bgtrees2_afternoon.gbapal"); -static const u32 gUnknown_085F1824[] = INCBIN_U32("graphics/intro/intro2_bgtrees.4bpp.lz"); -static const u32 gUnknown_085F1EAC[] = INCBIN_U32("graphics/intro/intro2_bgtrees_map.bin.lz"); -static const u16 gUnknown_085F21B0[] = INCBIN_U16("graphics/intro/intro2_bgtrees.gbapal"); -static const u32 gIntro2TreeTiles[] = INCBIN_U32("graphics/intro/intro2_bgtreessmall.4bpp.lz"); -static const u16 gUnknown_085F231C[] = INCBIN_U16("graphics/intro/85F231C.gbapal"); -static const u32 gUnknown_085F235C[] = INCBIN_U32("graphics/intro/intro2_bgnight.4bpp.lz"); -static const u16 gUnknown_085F2548[] = INCBIN_U16("graphics/intro/intro2_bgnight.gbapal"); -static const u32 gUnknown_085F2568[] = INCBIN_U32("graphics/intro/intro2_bgnight_map.bin.lz"); -static const u32 gIntro2NightTiles[] = INCBIN_U32("graphics/intro/intro2_night.4bpp.lz"); -static const u16 gIntro2BrendanPalette[] = INCBIN_U16("graphics/intro/intro2_brendan.gbapal"); -static const u32 gIntro2BrendanTiles[] = INCBIN_U32("graphics/intro/intro2_brendan.4bpp.lz"); -static const u16 gIntro2MayPalette[] = INCBIN_U16("graphics/intro/intro2_may.gbapal"); -static const u16 gUnknown_085F3490[0xF0] = {0}; -static const u32 gIntro2MayTiles[] = INCBIN_U32("graphics/intro/intro2_may.4bpp.lz"); -static const u32 gIntro2BicycleTiles[] = INCBIN_U32("graphics/intro/intro2_bicycle.4bpp.lz"); -static const u16 gIntro2LatiosPalette[] = INCBIN_U16("graphics/intro/intro2_latios.gbapal"); -static const u32 gIntro2LatiosTiles[] = INCBIN_U32("graphics/intro/intro2_latios.4bpp.lz"); -static const u16 gIntro2LatiasPalette[] = INCBIN_U16("graphics/intro/intro2_latias.gbapal"); -static const u32 gIntro2LatiasTiles[] = INCBIN_U32("graphics/intro/intro2_latias.4bpp.lz"); +static const u16 sGrass_Pal[] = INCBIN_U16("graphics/intro/scene_2/grass.gbapal"); +static const u16 sGrassSunset_Pal[] = INCBIN_U16("graphics/intro/scene_2/grass_sunset.gbapal"); +static const u16 sGrassNight_Pal[] = INCBIN_U16("graphics/intro/scene_2/grass_night.gbapal"); +static const u32 sGrass_Gfx[] = INCBIN_U32("graphics/intro/scene_2/grass.4bpp.lz"); +static const u32 sGrass_Tilemap[] = INCBIN_U32("graphics/intro/scene_2/grass_map.bin.lz"); +static const u16 sCloudsBg_Pal[] = INCBIN_U16("graphics/intro/scene_2/clouds_bg.gbapal"); +static const u16 sCloudsBgSunset_Pal[] = INCBIN_U16("graphics/intro/scene_2/clouds_bg_sunset.gbapal"); +static const u32 sCloudsBg_Gfx[] = INCBIN_U32("graphics/intro/scene_2/clouds_bg.4bpp.lz"); +static const u32 sCloudsBg_Tilemap[] = INCBIN_U32("graphics/intro/scene_2/clouds_bg_map.bin.lz"); +static const u16 sClouds_Pal[] = INCBIN_U16("graphics/intro/scene_2/clouds.gbapal"); +static const u16 sCloudsSunset_Pal[] = INCBIN_U16("graphics/intro/scene_2/clouds_sunset.gbapal"); +static const u32 sClouds_Gfx[] = INCBIN_U32("graphics/intro/scene_2/clouds.4bpp.lz"); +static const u16 sTrees_Pal[] = INCBIN_U16("graphics/intro/scene_2/trees.gbapal"); +static const u16 sTreesSunset_Pal[] = INCBIN_U16("graphics/intro/scene_2/trees_sunset.gbapal"); +static const u32 sTrees_Gfx[] = INCBIN_U32("graphics/intro/scene_2/trees.4bpp.lz"); +static const u32 sTrees_Tilemap[] = INCBIN_U32("graphics/intro/scene_2/trees_map.bin.lz"); +static const u16 sTreesSmall_Pal[] = INCBIN_U16("graphics/intro/scene_2/trees_small.gbapal"); +static const u32 sTreesSmall_Gfx[] = INCBIN_U32("graphics/intro/scene_2/trees_small.4bpp.lz"); +static const u16 sHouses_Pal[] = INCBIN_U16("graphics/intro/scene_2/houses.gbapal"); +static const u32 sHouses_Gfx[] = INCBIN_U32("graphics/intro/scene_2/houses.4bpp.lz"); +static const u16 sHouseSilhouette_Pal[] = INCBIN_U16("graphics/intro/scene_2/house_silhouette.gbapal"); +static const u32 sHouses_Tilemap[] = INCBIN_U32("graphics/intro/scene_2/houses_map.bin.lz"); +static const u32 sHouseSilhouette_Gfx[] = INCBIN_U32("graphics/intro/scene_2/house_silhouette.4bpp.lz"); +static const u16 sBrendanCredits_Pal[] = INCBIN_U16("graphics/intro/scene_2/brendan_credits.gbapal"); +static const u32 sBrendanCredits_Gfx[] = INCBIN_U32("graphics/intro/scene_2/brendan_credits.4bpp.lz"); +static const u16 sMayCredits_Pal[] = INCBIN_U16("graphics/intro/scene_2/may_credits.gbapal"); +static const u16 sUnused[0xF0] = {0}; +static const u32 sMayCredits_Gfx[] = INCBIN_U32("graphics/intro/scene_2/may_credits.4bpp.lz"); +static const u32 sBicycle_Gfx[] = INCBIN_U32("graphics/intro/scene_2/bicycle.4bpp.lz"); +static const u16 sLatios_Pal[] = INCBIN_U16("graphics/intro/scene_2/latios.gbapal"); +static const u32 sLatios_Gfx[] = INCBIN_U32("graphics/intro/scene_2/latios.4bpp.lz"); +static const u16 sLatias_Pal[] = INCBIN_U16("graphics/intro/scene_2/latias.gbapal"); +static const u32 sLatias_Gfx[] = INCBIN_U32("graphics/intro/scene_2/latias.4bpp.lz"); -static void sub_817B62C(struct Sprite *sprite); -static void nullsub_65(struct Sprite *sprite); -static void sub_817B7C4(struct Sprite *sprite); -static void nullsub_66(struct Sprite *sprite); +static void SpriteCB_MovingScenery(struct Sprite *sprite); +static void SpriteCB_Player(struct Sprite *sprite); +static void SpriteCB_Bicycle(struct Sprite *sprite); +static void SpriteCB_FlygonLeftHalf(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085F504C = +static const struct SpriteTemplate sSpriteTemplate_MovingScenery = { - .tileTag = 2000, + .tileTag = TAG_MOVING_SCENERY, .paletteTag = 0xFFFF, .oam = &gDummyOamData, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_817B62C + .callback = SpriteCB_MovingScenery }; -static const struct CompressedSpriteSheet gUnknown_085F5064[] = +static const struct CompressedSpriteSheet sSpriteSheet_Clouds[] = { { - .data = gUnknown_085F16A8, + .data = sClouds_Gfx, .size = 0x400, - .tag = 2000 + .tag = TAG_MOVING_SCENERY }, {} }; -static const union AnimCmd gUnknown_085F5074[] = +static const union AnimCmd sAnim_Cloud_Largest[] = { ANIMCMD_FRAME( 0, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F507C[] = +static const union AnimCmd sAnim_Cloud_Large[] = { ANIMCMD_FRAME(16, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F5084[] = +static const union AnimCmd sAnim_Cloud_Small[] = { ANIMCMD_FRAME(20, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F508C[] = +static const union AnimCmd sAnim_Cloud_Smallest[] = { ANIMCMD_FRAME(22, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5094[] = +static const union AnimCmd *const sAnims_Clouds[] = { - gUnknown_085F5074, - gUnknown_085F507C, - gUnknown_085F5084, - gUnknown_085F508C + sAnim_Cloud_Largest, + sAnim_Cloud_Large, + sAnim_Cloud_Small, + sAnim_Cloud_Smallest }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = +static const struct IntroCreditsSpriteMetadata sSpriteMetadata_Clouds[] = { { .animNum = 0, @@ -195,42 +214,42 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = }, }; -static const struct CompressedSpriteSheet gUnknown_085F50EC[] = +static const struct CompressedSpriteSheet sSpriteSheet_TreesSmall[] = { { - .data = gIntro2TreeTiles, + .data = sTreesSmall_Gfx, .size = 0x400, - .tag = 2000 + .tag = TAG_MOVING_SCENERY }, {} }; -static const union AnimCmd gUnknown_085F50FC[] = +static const union AnimCmd sAnim_Trees_0[] = { ANIMCMD_FRAME( 0, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F5104[] = +static const union AnimCmd sAnim_Trees_1[] = { ANIMCMD_FRAME(16, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F510C[] = +static const union AnimCmd sAnim_Trees_2[] = { ANIMCMD_FRAME(24, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5114[] = +static const union AnimCmd *const sAnims_Trees[] = { - gUnknown_085F50FC, - gUnknown_085F5104, - gUnknown_085F510C + sAnim_Trees_0, + sAnim_Trees_1, + sAnim_Trees_2 }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = +static const struct IntroCreditsSpriteMetadata sSpriteMetadata_Trees[] = { { .animNum = 0, @@ -342,28 +361,28 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = } }; -static const struct CompressedSpriteSheet gUnknown_085F5180[] = +static const struct CompressedSpriteSheet sSpriteSheet_HouseSilhouette[] = { { - .data = gIntro2NightTiles, + .data = sHouseSilhouette_Gfx, .size = 0x400, - .tag = 2000 + .tag = TAG_MOVING_SCENERY }, {} }; -static const union AnimCmd gUnknown_085F5190[] = +static const union AnimCmd sAnim_HouseSilhouette[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5198[] = +static const union AnimCmd *const sAnims_HouseSilhouette[] = { - gUnknown_085F5190 + sAnim_HouseSilhouette }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = +static const struct IntroCreditsSpriteMetadata sSpriteMetadata_HouseSilhouette[] = { { .animNum = 0, @@ -421,15 +440,15 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = } }; -static const struct OamData gOamData_85F51CC = +static const struct OamData sOamData_Player = { - .y = 160, + .y = DISPLAY_HEIGHT, .shape = SPRITE_SHAPE(64x64), .size = SPRITE_SIZE(64x64), .priority = 1 }; -static const union AnimCmd gUnknown_085F51D4[] = +static const union AnimCmd sAnim_Player[] = { ANIMCMD_FRAME( 0, 8), ANIMCMD_FRAME( 64, 8), @@ -438,42 +457,42 @@ static const union AnimCmd gUnknown_085F51D4[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_085F51E8[] = +static const union AnimCmd *const sAnims_Player[] = { - gUnknown_085F51D4 + sAnim_Player }; -static const struct SpriteTemplate gUnknown_085F51EC = +static const struct SpriteTemplate sSpriteTemplate_Brendan = { - .tileTag = 1002, - .paletteTag = 1002, - .oam = &gOamData_85F51CC, - .anims = gUnknown_085F51E8, + .tileTag = TAG_BRENDAN, + .paletteTag = TAG_BRENDAN, + .oam = &sOamData_Player, + .anims = sAnims_Player, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = nullsub_65 + .callback = SpriteCB_Player }; -static const struct SpriteTemplate gUnknown_085F5204 = +static const struct SpriteTemplate sSpriteTemplate_May = { - .tileTag = 1003, - .paletteTag = 1003, - .oam = &gOamData_85F51CC, - .anims = gUnknown_085F51E8, + .tileTag = TAG_MAY, + .paletteTag = TAG_MAY, + .oam = &sOamData_Player, + .anims = sAnims_Player, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = nullsub_65 + .callback = SpriteCB_Player }; -static const struct OamData gUnknown_085F521C = +static const struct OamData sOamData_Bicycle = { - .y = 160, + .y = DISPLAY_HEIGHT, .shape = SPRITE_SHAPE(64x32), .size = SPRITE_SIZE(64x32), .priority = 1 }; -static const union AnimCmd gUnknown_085F5224[] = +static const union AnimCmd sAnim_Bicycle[] = { ANIMCMD_FRAME( 0, 8), ANIMCMD_FRAME( 32, 8), @@ -482,261 +501,267 @@ static const union AnimCmd gUnknown_085F5224[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_085F5238[] = +static const union AnimCmd *const sAnims_Bicycle[] = { - gUnknown_085F5224 + sAnim_Bicycle }; -static const struct SpriteTemplate gUnknown_085F523C = +static const struct SpriteTemplate sSpriteTemplate_BrendanBicycle = { - .tileTag = 1001, - .paletteTag = 1002, - .oam = &gUnknown_085F521C, - .anims = gUnknown_085F5238, + .tileTag = TAG_BICYCLE, + .paletteTag = TAG_BRENDAN, + .oam = &sOamData_Bicycle, + .anims = sAnims_Bicycle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_817B7C4 + .callback = SpriteCB_Bicycle }; -static const struct SpriteTemplate gUnknown_085F5254 = +static const struct SpriteTemplate sSpriteTemplate_MayBicycle = { - .tileTag = 1001, - .paletteTag = 1003, - .oam = &gUnknown_085F521C, - .anims = gUnknown_085F5238, + .tileTag = TAG_BICYCLE, + .paletteTag = TAG_MAY, + .oam = &sOamData_Bicycle, + .anims = sAnims_Bicycle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_817B7C4 + .callback = SpriteCB_Bicycle }; -static const struct OamData gUnknown_085F526C = +static const struct OamData sOamData_Flygon = { - .y = 160, + .y = DISPLAY_HEIGHT, .shape = SPRITE_SHAPE(64x64), .size = SPRITE_SIZE(64x64), .priority = 1 }; -static const union AnimCmd gUnknown_085F5274[] = +static const union AnimCmd sAnim_FlygonLeft[] = { - ANIMCMD_FRAME( 0, 16), + ANIMCMD_FRAME(0, 16), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F527C[] = +static const union AnimCmd sAnim_FlygonRight[] = { - ANIMCMD_FRAME( 64, 16), + ANIMCMD_FRAME(64, 16), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5284[] = +static const union AnimCmd *const sAnims_Flygon[] = { - gUnknown_085F5274, - gUnknown_085F527C + sAnim_FlygonLeft, + sAnim_FlygonRight }; -static const struct SpriteTemplate gUnknown_085F528C = +static const struct SpriteTemplate sSpriteTemplate_FlygonLatios = { - .tileTag = 1004, - .paletteTag = 1004, - .oam = &gUnknown_085F526C, - .anims = gUnknown_085F5284, + .tileTag = TAG_FLYGON_LATIOS, + .paletteTag = TAG_FLYGON_LATIOS, + .oam = &sOamData_Flygon, + .anims = sAnims_Flygon, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = nullsub_66 + .callback = SpriteCB_FlygonLeftHalf }; -static const struct SpriteTemplate gUnknown_085F52A4 = +static const struct SpriteTemplate sSpriteTemplate_FlygonLatias = { - .tileTag = 1005, - .paletteTag = 1005, - .oam = &gUnknown_085F526C, - .anims = gUnknown_085F5284, + .tileTag = TAG_FLYGON_LATIAS, + .paletteTag = TAG_FLYGON_LATIAS, + .oam = &sOamData_Flygon, + .anims = sAnims_Flygon, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = nullsub_66 + .callback = SpriteCB_FlygonLeftHalf }; -const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = +const struct CompressedSpriteSheet gSpriteSheet_IntroBrendan[] = { { - .data = gIntro2BrendanNoTurnGfx, + .data = gIntroBrendan_Gfx, .size = 0x2000, - .tag = 1002 + .tag = TAG_BRENDAN }, {} }; -const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = +const struct CompressedSpriteSheet gSpriteSheet_IntroMay[] = { { - .data = gIntro2MayNoTurnGfx, + .data = gIntroMay_Gfx, .size = 0x2000, - .tag = 1003 + .tag = TAG_MAY }, {} }; -const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = +const struct CompressedSpriteSheet gSpriteSheet_IntroBicycle[] = { { - .data = gIntro2BicycleTiles, + .data = sBicycle_Gfx, .size = 0x1000, - .tag = 1001 + .tag = TAG_BICYCLE }, {} }; -static const struct CompressedSpriteSheet gUnknown_085F52EC[] = +// In RS these were Latios/Latias. In Emerald both are replaced with Flygon and now only 1 is used +static const struct CompressedSpriteSheet sSpriteSheet_IntroFlygon_Unused[] = { { - .data = gIntro2FlygonGfx, + .data = gIntroFlygon_Gfx, .size = 0x1000, - .tag = 1004 + .tag = TAG_FLYGON_LATIOS }, {} }; -const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = +const struct CompressedSpriteSheet gSpriteSheet_IntroFlygon[] = { { - .data = gIntro2FlygonGfx, + .data = gIntroFlygon_Gfx, .size = 0x1000, - .tag = 1005 + .tag = TAG_FLYGON_LATIAS }, {} }; -const struct SpritePalette gIntroBikeAndFlygonPalette[] = +const struct SpritePalette gSpritePalettes_IntroPlayerFlygon[] = { - { .data = gIntro2BrendanNoTurnPal, .tag = 1002 }, - { .data = gIntro2BrendanNoTurnPal, .tag = 1003 }, - { .data = gIntro2FlygonPal, .tag = 1004 }, - { .data = gIntro2FlygonPal, .tag = 1005 }, + { .data = gIntroPlayer_Pal, .tag = TAG_BRENDAN }, + { .data = gIntroPlayer_Pal, .tag = TAG_MAY }, + { .data = gIntroFlygon_Pal, .tag = TAG_FLYGON_LATIOS }, + { .data = gIntroFlygon_Pal, .tag = TAG_FLYGON_LATIAS }, {} }; -const struct CompressedSpriteSheet gUnknown_085F5334[] = +const struct CompressedSpriteSheet gSpriteSheet_CreditsBrendan[] = { { - .data = gIntro2BrendanTiles, + .data = sBrendanCredits_Gfx, .size = 0x3800, - .tag = 1002 + .tag = TAG_BRENDAN }, {} }; -const struct CompressedSpriteSheet gUnknown_085F5344[] = +const struct CompressedSpriteSheet gSpriteSheet_CreditsMay[] = { { - .data = gIntro2MayTiles, + .data = sMayCredits_Gfx, .size = 0x3800, - .tag = 1003 + .tag = TAG_MAY }, {} }; -const struct CompressedSpriteSheet gUnknown_085F5354[] = +const struct CompressedSpriteSheet gSpriteSheet_CreditsBicycle[] = { { - .data = gIntro2BicycleTiles, + .data = sBicycle_Gfx, .size = 0x1000, - .tag = 1001 + .tag = TAG_BICYCLE }, {} }; -static const struct CompressedSpriteSheet gUnknown_085F5364[] = +// Unused +static const struct CompressedSpriteSheet sSpriteSheet_Latios[] = { { - .data = gIntro2LatiosTiles, + .data = sLatios_Gfx, .size = 0x1000, - .tag = 1004 + .tag = TAG_FLYGON_LATIOS }, {} }; -static const struct CompressedSpriteSheet gUnknown_085F5374[] = +// Unused +static const struct CompressedSpriteSheet sSpriteSheet_Latias[] = { { - .data = gIntro2LatiasTiles, + .data = sLatias_Gfx, .size = 0x1000, - .tag = 1005 + .tag = TAG_FLYGON_LATIAS }, {} }; -const struct SpritePalette gUnknown_085F5384[] = +const struct SpritePalette gSpritePalettes_Credits[] = { - { .data = gIntro2BrendanPalette, .tag = 1002 }, - { .data = gIntro2MayPalette, .tag = 1003 }, - { .data = gIntro2LatiosPalette, .tag = 1004 }, - { .data = gIntro2LatiasPalette, .tag = 1005 }, + { .data = sBrendanCredits_Pal, .tag = TAG_BRENDAN }, + { .data = sMayCredits_Pal, .tag = TAG_MAY }, + { .data = sLatios_Pal, .tag = TAG_FLYGON_LATIOS }, + { .data = sLatias_Pal, .tag = TAG_FLYGON_LATIAS }, {} }; -const struct CompressedSpriteSheet gUnknown_085F53AC[] = +const struct CompressedSpriteSheet gSpriteSheet_CreditsRivalBrendan[] = { { - .data = gIntro2BrendanTiles, + .data = sBrendanCredits_Gfx, .size = 0x2000, - .tag = 1002 + .tag = TAG_BRENDAN }, {} }; -const struct CompressedSpriteSheet gUnknown_085F53BC[] = +const struct CompressedSpriteSheet gSpriteSheet_CreditsRivalMay[] = { { - .data = gIntro2MayTiles, + .data = sMayCredits_Gfx, .size = 0x2000, - .tag = 1003 + .tag = TAG_MAY }, {} }; -EWRAM_DATA u16 gUnknown_0203BD24 = 0; -EWRAM_DATA s16 gUnknown_0203BD26 = 0; -EWRAM_DATA s16 gUnknown_0203BD28 = 0; +EWRAM_DATA u16 gIntroCredits_MovingSceneryVBase = 0; +EWRAM_DATA s16 gIntroCredits_MovingSceneryVOffset = 0; +EWRAM_DATA s16 gIntroCredits_MovingSceneryState = 0; -static void sub_817B76C(void); -static void sub_817B788(void); -static void sub_817B7A4(void); -static void sub_817B458(u8); +static void CreateCloudSprites(void); +static void CreateTreeSprites(void); +static void CreateHouseSprites(void); +static void Task_BicycleBgAnimation(u8); -void load_intro_part2_graphics(u8 a) +void LoadIntroPart2Graphics(u8 scenery) { - LZ77UnCompVram(gUnknown_085F0740, (void *)(BG_CHAR_ADDR(1))); - LZ77UnCompVram(gUnknown_085F0BC0, (void *)(BG_SCREEN_ADDR(15))); - LoadPalette(&gUnknown_085F06E0, 240, 32); - switch (a) + LZ77UnCompVram(sGrass_Gfx, (void *)(BG_CHAR_ADDR(1))); + LZ77UnCompVram(sGrass_Tilemap, (void *)(BG_SCREEN_ADDR(15))); + LoadPalette(&sGrass_Pal, 240, sizeof(sGrass_Pal)); + switch (scenery) { case 0: default: - LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1398, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&gUnknown_085F0CFC, 0, 96); - LoadCompressedSpriteSheet(gUnknown_085F5064); - LoadPalette(&gUnknown_085F1668, 256, 32); - sub_817B76C(); + // Never reached, only called with an argument of 1 + // Clouds are never used in this part of the intro + LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); + LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); + LoadPalette(&sCloudsBg_Pal, 0, sizeof(sCloudsBg_Pal)); + LoadCompressedSpriteSheet(sSpriteSheet_Clouds); + LoadPalette(&sClouds_Pal, 256, sizeof(sClouds_Pal)); + CreateCloudSprites(); break; case 1: - LZ77UnCompVram(gUnknown_085F1824, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1EAC, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&gUnknown_085F17E4, 0, 32); - LoadCompressedSpriteSheet(gUnknown_085F50EC); - LoadPalette(&gUnknown_085F21B0, 256, 32); - sub_817B788(); + LZ77UnCompVram(sTrees_Gfx, (void *)(VRAM)); + LZ77UnCompVram(sTrees_Tilemap, (void *)(BG_SCREEN_ADDR(6))); + LoadPalette(&sTrees_Pal, 0, sizeof(sTrees_Pal)); + LoadCompressedSpriteSheet(sSpriteSheet_TreesSmall); + LoadPalette(&sTreesSmall_Pal, 256, sizeof(sTreesSmall_Pal)); + CreateTreeSprites(); break; } - gUnknown_0203BD28 = 0; + gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_NORMAL; gReservedSpritePaletteCount = 8; } // Note: This is only called with a=1. -void sub_817B150(u8 a) +void SetIntroPart2BgCnt(u8 scenery) { - switch (a) + // Only called with scenery = 1 + switch (scenery) { default: case 0: @@ -811,58 +836,58 @@ void sub_817B150(u8 a) } } -void sub_817B1C8(u8 a) +void LoadCreditsSceneGraphics(u8 scene) { - LZ77UnCompVram(gUnknown_085F0740, (void *)(BG_CHAR_ADDR(1))); - LZ77UnCompVram(gUnknown_085F0BC0, (void *)(BG_SCREEN_ADDR(15))); - switch (a) + LZ77UnCompVram(sGrass_Gfx, (void *)(BG_CHAR_ADDR(1))); + LZ77UnCompVram(sGrass_Tilemap, (void *)(BG_SCREEN_ADDR(15))); + switch (scene) { - case 0: + case SCENE_OCEAN_MORNING: default: - LoadPalette(&gUnknown_085F06E0, 240, 32); - LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1398, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&gUnknown_085F0CFC, 0, 96); - LoadCompressedSpriteSheet(gUnknown_085F5064); - LZ77UnCompVram(gUnknown_085F16A8, (void *)(OBJ_VRAM0)); - LoadPalette(&gUnknown_085F1668, 256, 32); - sub_817B76C(); + LoadPalette(&sGrass_Pal, 240, sizeof(sGrass_Pal)); + LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); + LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); + LoadPalette(&sCloudsBg_Pal, 0, sizeof(sCloudsBg_Pal)); + LoadCompressedSpriteSheet(sSpriteSheet_Clouds); + LZ77UnCompVram(sClouds_Gfx, (void *)(OBJ_VRAM0)); + LoadPalette(&sClouds_Pal, 256, sizeof(sClouds_Pal)); + CreateCloudSprites(); break; - case 1: - LoadPalette(&gUnknown_085F0700, 240, 32); - LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1398, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&gUnknown_085F0D5C, 0, 96); - LoadCompressedSpriteSheet(gUnknown_085F5064); - LZ77UnCompVram(gUnknown_085F16A8, (void *)(OBJ_VRAM0)); - LoadPalette(&gUnknown_085F1688, 256, 32); - sub_817B76C(); + case SCENE_OCEAN_SUNSET: + LoadPalette(&sGrassSunset_Pal, 240, sizeof(sGrassSunset_Pal)); + LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); + LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); + LoadPalette(&sCloudsBgSunset_Pal, 0, sizeof(sCloudsBgSunset_Pal)); + LoadCompressedSpriteSheet(sSpriteSheet_Clouds); + LZ77UnCompVram(sClouds_Gfx, (void *)(OBJ_VRAM0)); + LoadPalette(&sCloudsSunset_Pal, 256, sizeof(sCloudsSunset_Pal)); + CreateCloudSprites(); break; - case 2: - case 3: - LoadPalette(&gUnknown_085F0700, 240, 32); - LZ77UnCompVram(gUnknown_085F1824, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1EAC, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&gUnknown_085F1804, 0, 32); - LoadCompressedSpriteSheet(gUnknown_085F50EC); - LoadPalette(&gUnknown_085F1804, 256, 32); - sub_817B788(); + case SCENE_FOREST_RIVAL_ARRIVE: + case SCENE_FOREST_CATCH_RIVAL: + LoadPalette(&sGrassSunset_Pal, 240, sizeof(sGrassSunset_Pal)); + LZ77UnCompVram(sTrees_Gfx, (void *)(VRAM)); + LZ77UnCompVram(sTrees_Tilemap, (void *)(BG_SCREEN_ADDR(6))); + LoadPalette(&sTreesSunset_Pal, 0, sizeof(sTreesSunset_Pal)); + LoadCompressedSpriteSheet(sSpriteSheet_TreesSmall); + LoadPalette(&sTreesSunset_Pal, 256, sizeof(sTreesSunset_Pal)); + CreateTreeSprites(); break; - case 4: - LoadPalette(&gUnknown_085F0720, 240, 32); - LZ77UnCompVram(gUnknown_085F235C, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F2568, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&gUnknown_085F231C, 0, 64); - LoadCompressedSpriteSheet(gUnknown_085F5180); - LoadPalette(&gUnknown_085F2548, 256, 32); - sub_817B7A4(); + case SCENE_CITY_NIGHT: + LoadPalette(&sGrassNight_Pal, 240, sizeof(sGrassNight_Pal)); + LZ77UnCompVram(sHouses_Gfx, (void *)(VRAM)); + LZ77UnCompVram(sHouses_Tilemap, (void *)(BG_SCREEN_ADDR(6))); + LoadPalette(&sHouses_Pal, 0, sizeof(sHouses_Pal)); + LoadCompressedSpriteSheet(sSpriteSheet_HouseSilhouette); + LoadPalette(&sHouseSilhouette_Pal, 256, sizeof(sHouseSilhouette_Pal)); + CreateHouseSprites(); break; } gReservedSpritePaletteCount = 8; - gUnknown_0203BD28 = 0; + gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_NORMAL; } -void sub_817B3A8(u8 a) +void SetCreditsSceneBgCnt(u8 scene) { SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) @@ -885,69 +910,84 @@ void sub_817B3A8(u8 a) | DISPCNT_OBJ_ON); } -u8 CreateBicycleAnimationTask(u8 a, u16 b, u16 c, u16 d) -{ - u8 taskId = CreateTask(&sub_817B458, 0); +#define tMode data[0] // Can be 0-2, but only != 0 matters. Determines vertical movement for bg2 +#define tBg1Speed data[1] +#define tBg1PosHi data[2] +#define tBg1PosLo data[3] +#define tBg2Speed data[4] +#define tBg2PosHi data[5] +#define tBg2PosLo data[6] +#define tBg3Speed data[7] +#define tBg3PosHi data[8] +#define tBg3PosLo data[9] - gTasks[taskId].data[0] = a; - gTasks[taskId].data[1] = b; - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = c; - gTasks[taskId].data[5] = 0; - gTasks[taskId].data[6] = 0; - gTasks[taskId].data[7] = d; - gTasks[taskId].data[8] = 8; - gTasks[taskId].data[9] = 0; - sub_817B458(taskId); +// Create task that manages the moving backgrounds during the bicycle ride +u8 CreateBicycleBgAnimationTask(u8 mode, u16 bg1Speed, u16 bg2Speed, u16 bg3Speed) +{ + u8 taskId = CreateTask(Task_BicycleBgAnimation, 0); + + gTasks[taskId].tMode = mode; + gTasks[taskId].tBg1Speed = bg1Speed; + gTasks[taskId].tBg1PosHi = 0; + gTasks[taskId].tBg1PosLo = 0; + gTasks[taskId].tBg2Speed = bg2Speed; + gTasks[taskId].tBg2PosHi = 0; + gTasks[taskId].tBg2PosLo = 0; + gTasks[taskId].tBg3Speed = bg3Speed; + gTasks[taskId].tBg3PosHi = 8; + gTasks[taskId].tBg3PosLo = 0; + Task_BicycleBgAnimation(taskId); return taskId; } -static void sub_817B458(u8 taskId) +static void Task_BicycleBgAnimation(u8 taskId) { - s16 data1; - s16 data4; - s16 data7; - s32 r2; + s16 bg1Speed; + s16 bg2Speed; + s16 bg3Speed; + s32 offset; - data1 = gTasks[taskId].data[1]; - if (data1 != 0) + // Move BG1 + bg1Speed = gTasks[taskId].tBg1Speed; + if (bg1Speed != 0) { - r2 = (gTasks[taskId].data[2] << 16) + (u16)gTasks[taskId].data[3]; - r2 -= (u16)data1 << 4; - gTasks[taskId].data[2] = r2 >> 16; - gTasks[taskId].data[3] = r2; - SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].data[2]); - SetGpuReg(REG_OFFSET_BG1VOFS, gUnknown_0203BD24 + gUnknown_0203BD26); + offset = (gTasks[taskId].tBg1PosHi << 16) + (u16)gTasks[taskId].tBg1PosLo; + offset -= (u16)bg1Speed << 4; + gTasks[taskId].tBg1PosHi = offset >> 16; + gTasks[taskId].tBg1PosLo = offset; + SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].tBg1PosHi); + SetGpuReg(REG_OFFSET_BG1VOFS, gIntroCredits_MovingSceneryVBase + gIntroCredits_MovingSceneryVOffset); } - data4 = gTasks[taskId].data[4]; - if (data4 != 0) + // Move BG2 + bg2Speed = gTasks[taskId].tBg2Speed; + if (bg2Speed != 0) { - r2 = (gTasks[taskId].data[5] << 16) + (u16)gTasks[taskId].data[6]; - r2 -= (u16)data4 << 4; - gTasks[taskId].data[5] = r2 >> 16; - gTasks[taskId].data[6] = r2; - SetGpuReg(REG_OFFSET_BG2HOFS, gTasks[taskId].data[5]); - if (gTasks[taskId].data[0] != 0) - SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_0203BD24 + gUnknown_0203BD26); + offset = (gTasks[taskId].tBg2PosHi << 16) + (u16)gTasks[taskId].tBg2PosLo; + offset -= (u16)bg2Speed << 4; + gTasks[taskId].tBg2PosHi = offset >> 16; + gTasks[taskId].tBg2PosLo = offset; + SetGpuReg(REG_OFFSET_BG2HOFS, gTasks[taskId].tBg2PosHi); + if (gTasks[taskId].tMode != 0) + SetGpuReg(REG_OFFSET_BG2VOFS, gIntroCredits_MovingSceneryVBase + gIntroCredits_MovingSceneryVOffset); else - SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_0203BD24); + SetGpuReg(REG_OFFSET_BG2VOFS, gIntroCredits_MovingSceneryVBase); } - data7 = gTasks[taskId].data[7]; - if (data7 != 0) + // Move BG3 + bg3Speed = gTasks[taskId].tBg3Speed; + if (bg3Speed != 0) { - r2 = (gTasks[taskId].data[8] << 16) + (u16)gTasks[taskId].data[9]; - r2 -= (u16)data7 << 4; - gTasks[taskId].data[8] = r2 >> 16; - gTasks[taskId].data[9] = r2; - SetGpuReg(REG_OFFSET_BG3HOFS, gTasks[taskId].data[8]); - SetGpuReg(REG_OFFSET_BG3VOFS, gUnknown_0203BD24); + offset = (gTasks[taskId].tBg3PosHi << 16) + (u16)gTasks[taskId].tBg3PosLo; + offset -= (u16)bg3Speed << 4; + gTasks[taskId].tBg3PosHi = offset >> 16; + gTasks[taskId].tBg3PosLo = offset; + SetGpuReg(REG_OFFSET_BG3HOFS, gTasks[taskId].tBg3PosHi); + SetGpuReg(REG_OFFSET_BG3VOFS, gIntroCredits_MovingSceneryVBase); } } -void sub_817B540(u8 mode) +void CycleSceneryPalette(u8 mode) { u16 x; u16 y; @@ -955,7 +995,6 @@ void sub_817B540(u8 mode) { case 0: default: - /* stuff */ if (gMain.vblankCounter1 & 3 || gPaletteFade.active) break; if (gMain.vblankCounter1 & 4) @@ -968,149 +1007,167 @@ void sub_817B540(u8 mode) x = gPlttBufferUnfaded[10]; y = gPlttBufferUnfaded[9]; } - LoadPalette(&x, 9, 2); - LoadPalette(&y, 10, 2); + LoadPalette(&x, 9, sizeof(x)); + LoadPalette(&y, 10, sizeof(y)); break; case 2: if (gMain.vblankCounter1 & 3 || gPaletteFade.active) break; if (gMain.vblankCounter1 & 4) { - x = 0x3D27; - y = 0x295; + x = RGB(7, 9, 15); + y = RGB(21, 20, 0); } else { - x = 0x31C; - y = 0x3D27; + x = RGB(28, 24, 0); + y = RGB(7, 9, 15); } - LoadPalette(&x, 12, 2); - LoadPalette(&y, 13, 2); + LoadPalette(&x, 12, sizeof(x)); + LoadPalette(&y, 13, sizeof(y)); break; case 1: break; } } -static void sub_817B62C(struct Sprite *sprite) +#define tHasVerticalMove data[0] +#define tXOffset data[1] +#define tXPos data[2] + +static void SpriteCB_MovingScenery(struct Sprite *sprite) { - s32 var; - s16 var2 = gUnknown_0203BD28; + s32 x; + s16 state = gIntroCredits_MovingSceneryState; - if (var2 != 2) + if (state != INTROCRED_SCENERY_FROZEN) { - switch (var2) + switch (state) { - default: + default: // INTROCRED_SCENERY_DESTROY DestroySprite(sprite); break; - case 0: - var = ((sprite->pos1.x << 16) | (u16)sprite->data[2]) + (u16)sprite->data[1]; - sprite->pos1.x = var >> 16; - sprite->data[2] = var; - if (sprite->pos1.x > 0xFF) - sprite->pos1.x = -0x20; - if (sprite->data[0]) - sprite->pos2.y = -(gUnknown_0203BD24 + gUnknown_0203BD26); + case INTROCRED_SCENERY_NORMAL: + x = ((sprite->x << 16) | (u16)sprite->tXPos) + (u16)sprite->tXOffset; + sprite->x = x >> 16; + sprite->tXPos = x; + if (sprite->x > 255) + sprite->x = -32; + if (sprite->tHasVerticalMove) + sprite->y2 = -(gIntroCredits_MovingSceneryVBase + gIntroCredits_MovingSceneryVOffset); else - sprite->pos2.y = -gUnknown_0203BD24; + sprite->y2 = -gIntroCredits_MovingSceneryVBase; break; } } } -static void sub_817B698(u8 a, const struct IntroCreditsSpriteMetadata *b, const union AnimCmd *const *c, u8 d) +static void CreateMovingScenerySprites(bool8 hasVerticalMove, const struct IntroCreditsSpriteMetadata *metadata, const union AnimCmd *const *anims, u8 numSprites) { u8 i; - for(i = 0; i < d; i++) + for(i = 0; i < numSprites; i++) { - u8 sprite = CreateSprite(&gUnknown_085F504C, b[i].x, b[i].y, b[i].subpriority); - CalcCenterToCornerVec(&gSprites[sprite], b[i].shape, b[i].size, ST_OAM_AFFINE_OFF); + u8 sprite = CreateSprite(&sSpriteTemplate_MovingScenery, metadata[i].x, metadata[i].y, metadata[i].subpriority); + CalcCenterToCornerVec(&gSprites[sprite], metadata[i].shape, metadata[i].size, ST_OAM_AFFINE_OFF); gSprites[sprite].oam.priority = 3; - gSprites[sprite].oam.shape = b[i].shape; - gSprites[sprite].oam.size = b[i].size; + gSprites[sprite].oam.shape = metadata[i].shape; + gSprites[sprite].oam.size = metadata[i].size; gSprites[sprite].oam.paletteNum = 0; - gSprites[sprite].anims = c; - StartSpriteAnim(&gSprites[sprite], b[i].animNum); - gSprites[sprite].data[0] = a; - gSprites[sprite].data[1] = b[i].xOff; - gSprites[sprite].data[2] = 0; + gSprites[sprite].anims = anims; + StartSpriteAnim(&gSprites[sprite], metadata[i].animNum); + gSprites[sprite].tHasVerticalMove = hasVerticalMove; + gSprites[sprite].tXOffset = metadata[i].xOff; + gSprites[sprite].tXPos = 0; } } -static void sub_817B76C(void) +#undef tHasVerticalMove +#undef tXOffset +#undef tXPos + +static void CreateCloudSprites(void) { - sub_817B698(0, gUnknown_085F50A4, gUnknown_085F5094, 9); + CreateMovingScenerySprites(FALSE, sSpriteMetadata_Clouds, sAnims_Clouds, 9); } -static void sub_817B788(void) +static void CreateTreeSprites(void) { - sub_817B698(1, gUnknown_085F5120, gUnknown_085F5114, 12); + CreateMovingScenerySprites(TRUE, sSpriteMetadata_Trees, sAnims_Trees, 12); } -static void sub_817B7A4(void) +static void CreateHouseSprites(void) { - sub_817B698(1, gUnknown_085F519C, gUnknown_085F5198, 6); + CreateMovingScenerySprites(TRUE, sSpriteMetadata_HouseSilhouette, sAnims_HouseSilhouette, 6); } -static void nullsub_65(struct Sprite *sprite) +static void SpriteCB_Player(struct Sprite *sprite) { } -static void sub_817B7C4(struct Sprite* sprite) +#define sPlayerSpriteId data[0] + +static void SpriteCB_Bicycle(struct Sprite* sprite) { - sprite->invisible = gSprites[sprite->data[0]].invisible; - sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; - sprite->pos1.y = gSprites[sprite->data[0]].pos1.y + 8; - sprite->pos2.x = gSprites[sprite->data[0]].pos2.x; - sprite->pos2.y = gSprites[sprite->data[0]].pos2.y; + sprite->invisible = gSprites[sprite->sPlayerSpriteId].invisible; + sprite->x = gSprites[sprite->sPlayerSpriteId].x; + sprite->y = gSprites[sprite->sPlayerSpriteId].y + 8; + sprite->x2 = gSprites[sprite->sPlayerSpriteId].x2; + sprite->y2 = gSprites[sprite->sPlayerSpriteId].y2; } -u8 intro_create_brendan_sprite(s16 a, s16 b) +u8 CreateIntroBrendanSprite(s16 x, s16 y) { - u8 sprite = CreateSprite(&gUnknown_085F51EC, a, b, 2); - u8 brendan = CreateSprite(&gUnknown_085F523C, a, b + 8, 3); - gSprites[brendan].data[0] = sprite; - return sprite; + u8 playerSpriteId = CreateSprite(&sSpriteTemplate_Brendan, x, y, 2); + u8 bicycleSpriteId = CreateSprite(&sSpriteTemplate_BrendanBicycle, x, y + 8, 3); + gSprites[bicycleSpriteId].sPlayerSpriteId = playerSpriteId; + return playerSpriteId; } -u8 intro_create_may_sprite(s16 a, s16 b) +u8 CreateIntroMaySprite(s16 x, s16 y) { - u8 sprite = CreateSprite(&gUnknown_085F5204, a, b, 2); - u8 may = CreateSprite(&gUnknown_085F5254, a, b + 8, 3); - gSprites[may].data[0] = sprite; - return sprite; + u8 playerSpriteId = CreateSprite(&sSpriteTemplate_May, x, y, 2); + u8 bicycleSpriteId = CreateSprite(&sSpriteTemplate_MayBicycle, x, y + 8, 3); + gSprites[bicycleSpriteId].sPlayerSpriteId = playerSpriteId; + return playerSpriteId; } -static void nullsub_66(struct Sprite *sprite) +#undef sPlayerSpriteId + +static void SpriteCB_FlygonLeftHalf(struct Sprite *sprite) { } -static void sub_817B8E8(struct Sprite* sprite) +#define sLeftSpriteId data[0] + +static void SpriteCB_FlygonRightHalf(struct Sprite* sprite) { - sprite->invisible = gSprites[sprite->data[0]].invisible; - sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; - sprite->pos2.x = gSprites[sprite->data[0]].pos2.x; - sprite->pos2.y = gSprites[sprite->data[0]].pos2.y; + sprite->invisible = gSprites[sprite->sLeftSpriteId].invisible; + sprite->y = gSprites[sprite->sLeftSpriteId].y; + sprite->x2 = gSprites[sprite->sLeftSpriteId].x2; + sprite->y2 = gSprites[sprite->sLeftSpriteId].y2; } -static u8 sub_817B948(s16 a, s16 b) +// In RS these were for Latios/Latias. In Emerald both are replaced with Flygon and now only 1 is used +static u8 CreateIntroFlygonSprite_Unused(s16 x, s16 y) { - u8 sprite = CreateSprite(&gUnknown_085F528C, a - 32, b, 5); - u8 latios = CreateSprite(&gUnknown_085F528C, a + 32, b, 6); - gSprites[latios].data[0] = sprite; - StartSpriteAnim(&gSprites[latios], 1); - gSprites[latios].callback = &sub_817B8E8; - return sprite; + u8 leftSpriteId = CreateSprite(&sSpriteTemplate_FlygonLatios, x - 32, y, 5); + u8 rightSpriteId = CreateSprite(&sSpriteTemplate_FlygonLatios, x + 32, y, 6); + gSprites[rightSpriteId].sLeftSpriteId = leftSpriteId; + StartSpriteAnim(&gSprites[rightSpriteId], 1); + gSprites[rightSpriteId].callback = &SpriteCB_FlygonRightHalf; + return leftSpriteId; } -u8 intro_create_flygon_sprite(s16 a, s16 b) + +u8 CreateIntroFlygonSprite(s16 x, s16 y) { - u8 sprite = CreateSprite(&gUnknown_085F52A4, a - 32, b, 5); - u8 flygon = CreateSprite(&gUnknown_085F52A4, a + 32, b, 6); - gSprites[flygon].data[0] = sprite; - StartSpriteAnim(&gSprites[flygon], 1); - gSprites[flygon].callback = &sub_817B8E8; - return sprite; + u8 leftSpriteId = CreateSprite(&sSpriteTemplate_FlygonLatias, x - 32, y, 5); + u8 rightSpriteId = CreateSprite(&sSpriteTemplate_FlygonLatias, x + 32, y, 6); + gSprites[rightSpriteId].sLeftSpriteId = leftSpriteId; + StartSpriteAnim(&gSprites[rightSpriteId], 1); + gSprites[rightSpriteId].callback = &SpriteCB_FlygonRightHalf; + return leftSpriteId; } + +#undef sLeftSpriteId diff --git a/src/item.c b/src/item.c index 0b63660480..e9b94ae6f1 100644 --- a/src/item.c +++ b/src/item.c @@ -14,14 +14,10 @@ #include "battle_pyramid_bag.h" #include "constants/items.h" #include "constants/hold_effects.h" -#include "constants/tv.h" extern u16 gUnknown_0203CF30[]; // this file's functions -#if !defined(NONMATCHING) && MODERN -#define static -#endif static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count); static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count); @@ -102,8 +98,8 @@ void CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity) } else { - if (itemId >= ITEM_CHERI_BERRY && itemId <= ITEM_ENIGMA_BERRY) - GetBerryCountString(dst, gBerries[itemId - ITEM_CHERI_BERRY].name, quantity); + if (itemId >= FIRST_BERRY_INDEX && itemId <= LAST_BERRY_INDEX) + GetBerryCountString(dst, gBerries[itemId - FIRST_BERRY_INDEX].name, quantity); else StringCopy(dst, ItemId_GetName(itemId)); } @@ -284,10 +280,6 @@ bool8 AddBagItem(u16 itemId, u16 count) { // successfully added to already existing item's count SetBagItemQuantity(&newItems[i].quantity, ownedCount + count); - - // goto SUCCESS_ADD_ITEM; - // is equivalent but won't match - memcpy(itemPocket->itemSlots, newItems, itemPocket->capacity * sizeof(struct ItemSlot)); Free(newItems); return TRUE; @@ -307,7 +299,7 @@ bool8 AddBagItem(u16 itemId, u16 count) // don't create another instance of the item if it's at max slot capacity and count is equal to 0 if (count == 0) { - goto SUCCESS_ADD_ITEM; + break; } } } @@ -338,7 +330,8 @@ bool8 AddBagItem(u16 itemId, u16 count) { // created a new slot and added quantity SetBagItemQuantity(&newItems[i].quantity, count); - goto SUCCESS_ADD_ITEM; + count = 0; + break; } } } @@ -349,11 +342,9 @@ bool8 AddBagItem(u16 itemId, u16 count) return FALSE; } } - - SUCCESS_ADD_ITEM: - memcpy(itemPocket->itemSlots, newItems, itemPocket->capacity * sizeof(struct ItemSlot)); - Free(newItems); - return TRUE; + memcpy(itemPocket->itemSlots, newItems, itemPocket->capacity * sizeof(struct ItemSlot)); + Free(newItems); + return TRUE; } } @@ -557,7 +548,6 @@ bool8 AddPCItem(u16 itemId, u16 count) void RemovePCItem(u8 index, u16 count) { - // UB: should use GetPCItemQuantity and SetPCItemQuantity functions gSaveBlock1Ptr->pcItems[index].quantity -= count; if (gSaveBlock1Ptr->pcItems[index].quantity == 0) { @@ -823,7 +813,7 @@ bool8 RemovePyramidBagItem(u16 itemId, u16 count) u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; - i = gPyramidBagCursorData.cursorPosition + gPyramidBagCursorData.scrollPosition; + i = gPyramidBagMenuState.cursorPosition + gPyramidBagMenuState.scrollPosition; if (items[i] == itemId && quantities[i] >= count) { quantities[i] -= count; @@ -957,3 +947,26 @@ u8 ItemId_GetSecondaryId(u16 itemId) { return gItems[SanitizeItemId(itemId)].secondaryId; } + +bool32 IsPinchBerryItemEffect(u16 holdEffect) +{ + switch (holdEffect) + { + case HOLD_EFFECT_ATTACK_UP: + case HOLD_EFFECT_DEFENSE_UP: + case HOLD_EFFECT_SPEED_UP: + case HOLD_EFFECT_SP_ATTACK_UP: + case HOLD_EFFECT_SP_DEFENSE_UP: + case HOLD_EFFECT_CRITICAL_UP: + case HOLD_EFFECT_RANDOM_STAT_UP: + #ifdef HOLD_EFFECT_CUSTAP_BERRY + case HOLD_EFFECT_CUSTAP_BERRY: + #endif + #ifdef HOLD_EFFECT_MICLE_BERRY + case HOLD_EFFECT_MICLE_BERRY: + #endif + return TRUE; + } + + return FALSE; +} diff --git a/src/item_icon.c b/src/item_icon.c index 487b89b713..dc69d03318 100644 --- a/src/item_icon.c +++ b/src/item_icon.c @@ -7,8 +7,8 @@ #include "constants/items.h" // EWRAM vars -EWRAM_DATA void *gItemIconDecompressionBuffer = NULL; -EWRAM_DATA void *gItemIcon4x4Buffer = NULL; +EWRAM_DATA u8 *gItemIconDecompressionBuffer = NULL; +EWRAM_DATA u8 *gItemIcon4x4Buffer = NULL; // const rom data #include "data/item_icon_table.h" @@ -55,12 +55,10 @@ const struct SpriteTemplate gItemIconSpriteTemplate = // code bool8 AllocItemIconTemporaryBuffers(void) { - gItemIconDecompressionBuffer = gItemIconDecompressionBuffer; // needed to match gItemIconDecompressionBuffer = Alloc(0x120); if (gItemIconDecompressionBuffer == NULL) return FALSE; - gItemIcon4x4Buffer = gItemIcon4x4Buffer; // needed to match gItemIcon4x4Buffer = AllocZeroed(0x200); if (gItemIcon4x4Buffer == NULL) { diff --git a/src/item_menu.c b/src/item_menu.c index 80035b9458..9cc02e8cc4 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -7,12 +7,11 @@ #include "battle_pyramid_bag.h" #include "berry_tag_screen.h" #include "bg.h" -#include "constants/items.h" -#include "constants/songs.h" #include "data.h" #include "decompress.h" #include "event_data.h" #include "event_object_movement.h" +#include "event_scripts.h" #include "field_player_avatar.h" #include "field_specials.h" #include "graphics.h" @@ -41,7 +40,6 @@ #include "shop.h" #include "sound.h" #include "sprite.h" -#include "string.h" #include "strings.h" #include "string_util.h" #include "task.h" @@ -50,113 +48,168 @@ #include "window.h" #include "apprentice.h" #include "battle_pike.h" +#include "constants/items.h" #include "constants/rgb.h" +#include "constants/songs.h" -enum -{ +#define TAG_POCKET_SCROLL_ARROW 110 +#define TAG_BAG_SCROLL_ARROW 111 + +// The buffer for the bag item list needs to be large enough to hold the maximum +// number of item slots that could fit in a single pocket, + 1 for Cancel. +// This constant picks the max of the existing pocket sizes. +// By default, the largest pocket is BAG_TMHM_COUNT at 64. +#define MAX_POCKET_ITEMS ((max(BAG_TMHM_COUNT, \ + max(BAG_BERRIES_COUNT, \ + max(BAG_ITEMS_COUNT, \ + max(BAG_KEYITEMS_COUNT, \ + BAG_POKEBALLS_COUNT))))) + 1) + +// Up to 8 item slots can be visible at a time +#define MAX_ITEMS_SHOWN 8 + +enum { SWITCH_POCKET_NONE, SWITCH_POCKET_LEFT, SWITCH_POCKET_RIGHT }; -void GoToBagMenu(u8 bagMenuType, u8 pocketId, void (*postExitMenuMainCallback2)()); -void CB2_Bag(void); -bool8 SetupBagMenu(void); -void BagMenu_InitBGs(void); -bool8 LoadBagMenu_Graphics(void); -void SetupBagMenu_Textboxes(void); -void AllocateBagItemListBuffers(void); -void LoadBagItemListBuffers(u8); -void BagMenu_PrintPocketNames(const u8*, const u8*); -void BagMenu_CopyPocketNameToWindow(u32); -static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket); -void CreatePocketScrollArrowPair(void); -void CreatePocketSwitchArrowPair(void); -void BagMenu_PrepareTMHMMoveWindow(void); -bool8 IsWallysBag(void); -void Task_WallyTutorialBagMenu(u8); -void Task_BagMenu_HandleInput(u8); -void GetItemName(s8*, u16); -u16 ItemIdToBattleMoveId(u16); -u16 BagGetItemIdByPocketPosition(u8, u16); -void BagMenu_PrintDescription(int); -void BagMenu_PrintCursor(u8, u8); -void BagMenu_Print(u8, u8, const u8*, u8, u8, u8, u8, u8, u8); -bool8 ItemId_GetImportance(u16); -u16 BagGetQuantityByPocketPosition(u8, u16); -void BagDestroyPocketSwitchArrowPair(void); -void TaskCloseBagMenu_2(u8); -u8 AddItemMessageWindow(u8); -void BagMenu_RemoveBagItemMessageindow(u8); -void set_callback3_to_bag(u8); -void PrintItemDepositAmount(u8, s16); +enum { + ACTION_USE, + ACTION_TOSS, + ACTION_REGISTER, + ACTION_GIVE, + ACTION_CANCEL, + ACTION_BATTLE_USE, + ACTION_CHECK, + ACTION_WALK, + ACTION_DESELECT, + ACTION_CHECK_TAG, + ACTION_CONFIRM, + ACTION_SHOW, + ACTION_GIVE_FAVOR_LADY, + ACTION_CONFIRM_QUIZ_LADY, + ACTION_DUMMY, +}; + +enum { + WIN_ITEM_LIST, + WIN_DESCRIPTION, + WIN_POCKET_NAME, + WIN_TMHM_INFO_ICONS, + WIN_TMHM_INFO, + WIN_MESSAGE, // Identical to ITEMWIN_MESSAGE. Unused? +}; + +// Item list ID for toSwapPos to indicate an item is not currently being swapped +#define NOT_SWAPPING 0xFF + +struct ListBuffer1 { + struct ListMenuItem subBuffers[MAX_POCKET_ITEMS]; +}; + +struct ListBuffer2 { + s8 name[MAX_POCKET_ITEMS][ITEM_NAME_LENGTH + 10]; +}; + +struct TempWallyBag { + struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT]; + struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT]; + u16 cursorPosition[POCKETS_COUNT]; + u16 scrollPosition[POCKETS_COUNT]; + u16 unused; + u16 pocket; +}; + +static void CB2_Bag(void); +static bool8 SetupBagMenu(void); +static void BagMenu_InitBGs(void); +static bool8 LoadBagMenu_Graphics(void); +static void LoadBagMenuTextWindows(void); +static void AllocateBagItemListBuffers(void); +static void LoadBagItemListBuffers(u8); +static void PrintPocketNames(const u8*, const u8*); +static void CopyPocketNameToWindow(u32); +static void DrawPocketIndicatorSquare(u8, bool8); +static void CreatePocketScrollArrowPair(void); +static void CreatePocketSwitchArrowPair(void); +static void DestroyPocketSwitchArrowPair(void); +static void PrepareTMHMMoveWindow(void); +static bool8 IsWallysBag(void); +static void Task_WallyTutorialBagMenu(u8); +static void Task_BagMenu_HandleInput(u8); +static void GetItemName(s8*, u16); +static void PrintItemDescription(int); +static void BagMenu_PrintCursorAtPos(u8, u8); +static void BagMenu_Print(u8, u8, const u8*, u8, u8, u8, u8, u8, u8); +static void Task_CloseBagMenu(u8); +static u8 AddItemMessageWindow(u8); +static void RemoveItemMessageWindow(u8); +static void ReturnToItemList(u8); +static void PrintItemQuantity(u8, s16); static u8 BagMenu_AddWindow(u8); static u8 GetSwitchBagPocketDirection(void); -static void SwitchBagPocket(u8, s16, u16); +static void SwitchBagPocket(u8, s16, bool16); static bool8 CanSwapItems(void); -static void BagMenu_SwapItems(u8 taskId); -static void sub_81AC10C(u8); +static void StartItemSwap(u8 taskId); +static void Task_SwitchBagPocket(u8); static void Task_HandleSwappingItemsInput(u8); -void sub_81AC498(u8); -void sub_81AC590(u8); -void PrintTMHMMoveData(u16); -void sub_81ACAF8(u8); -void sub_81ACB54(u8, u8, u8); -void Task_HandleInBattleItemMenuInput(u8); -void Task_HandleOutOfBattleItemMenuInput(u8); -bool8 sub_81ACDFC(s8); -void BagMenu_RemoveWindow(u8); -void BagMenu_PrintThereIsNoPokemon(u8); -void Task_ChooseHowManyToToss(u8); -void BagMenu_TossItems(u8); -void BagMenu_YesNo(u8, u8, const struct YesNoFuncTable*); -void Task_ActuallyToss(u8); -void ItemMenu_Cancel(u8); -void sub_81AD350(u8); -static void BagMenu_PrintItemCantBeHeld(u8); +static void DoItemSwap(u8); +static void CancelItemSwap(u8); +static void PrintTMHMMoveData(u16); +static void PrintContextMenuItems(u8); +static void PrintContextMenuItemGrid(u8, u8, u8); +static void Task_ItemContext_SingleRow(u8); +static void Task_ItemContext_MultipleRows(u8); +static bool8 IsValidContextMenuPos(s8); +static void BagMenu_RemoveWindow(u8); +static void PrintThereIsNoPokemon(u8); +static void Task_ChooseHowManyToToss(u8); +static void AskTossItems(u8); +static void Task_RemoveItemFromBag(u8); +static void ItemMenu_Cancel(u8); +static void HandleErrorMessage(u8); +static void PrintItemCantBeHeld(u8); static void DisplayCurrentMoneyWindow(void); static void DisplaySellItemPriceAndConfirm(u8); -void sub_81AD730(u8); -void sub_81AD6E4(u8); +static void InitSellHowManyInput(u8); +static void AskSellItems(u8); static void RemoveMoneyWindow(void); -static void Task_SellHowManyDialogueHandleInput(u8); -static void BagMenu_Sell_UpdateItemListAndMoney(u8); -static void BagMenu_Sell_WaitForABPress(u8); -static void BagMenu_TryDepositItem(u8); +static void Task_ChooseHowManyToSell(u8); +static void SellItem(u8); +static void WaitAfterItemSell(u8); +static void TryDepositItem(u8); static void Task_ChooseHowManyToDeposit(u8 taskId); -static void BagMenu_Deposit_WaitForABPress(u8); -void CB2_ApprenticeExitBagMenu(void); -void CB2_FavorLadyExitBagMenu(void); -void CB2_QuizLadyExitBagMenu(void); -void All_CalculateNItemsAndMaxShowed(void); -static void SetPocketListPositions(void); -void UpdatePocketScrollPositions(void); -u8 CreateBagInputHandlerTask(u8); -void sub_81AC23C(u8); -void BagMenu_MoveCursorCallback(s32 a, bool8 b, struct ListMenu*); -void BagMenu_ItemPrintCallback(u8 windowId, s32 itemIndex, u8 a); -void ItemMenu_UseOutOfBattle(u8 taskId); -void ItemMenu_Toss(u8 taskId); -void ItemMenu_Register(u8 taskId); -void ItemMenu_Give(u8 taskId); -void ItemMenu_Cancel(u8 taskId); -void ItemMenu_UseInBattle(u8 taskId); -void ItemMenu_CheckTag(u8 taskId); -void Task_FadeAndCloseBagMenu(u8 taskId); -void unknown_ItemMenu_Show(u8 taskId); -void unknown_ItemMenu_Give2(u8 taskId); -void unknown_ItemMenu_Confirm2(u8 taskId); -void Task_ItemContext_FieldOrBattle(u8 taskId); -void Task_ItemContext_FieldGive(u8 taskId); -void Task_ItemContext_Sell(u8 taskId); -void Task_ItemContext_Deposit(u8 taskId); -void Task_ItemContext_ItemPC_2(u8 taskId); -void BagMenu_ConfirmToss(u8 taskId); -void BagMenu_CancelToss(u8 taskId); -void BagMenu_ConfirmSell(u8 taskId); -void BagMenu_CancelSell(u8 taskId); - -// .rodata +static void WaitDepositErrorMessage(u8); +static void CB2_ApprenticeExitBagMenu(void); +static void CB2_FavorLadyExitBagMenu(void); +static void CB2_QuizLadyExitBagMenu(void); +static void UpdatePocketItemLists(void); +static void InitPocketListPositions(void); +static void InitPocketScrollPositions(void); +static u8 CreateBagInputHandlerTask(u8); +static void DrawItemListBgRow(u8); +static void BagMenu_MoveCursorCallback(s32, bool8, struct ListMenu*); +static void BagMenu_ItemPrintCallback(u8, u32, u8); +static void ItemMenu_UseOutOfBattle(u8); +static void ItemMenu_Toss(u8); +static void ItemMenu_Register(u8); +static void ItemMenu_Give(u8); +static void ItemMenu_Cancel(u8); +static void ItemMenu_UseInBattle(u8); +static void ItemMenu_CheckTag(u8); +static void ItemMenu_Show(u8); +static void ItemMenu_GiveFavorLady(u8); +static void ItemMenu_ConfirmQuizLady(u8); +static void Task_ItemContext_Normal(u8); +static void Task_ItemContext_GiveToParty(u8); +static void Task_ItemContext_Sell(u8); +static void Task_ItemContext_Deposit(u8); +static void Task_ItemContext_GiveToPC(u8); +static void ConfirmToss(u8); +static void CancelToss(u8); +static void ConfirmSell(u8); +static void CancelSell(u8); static const struct BgTemplate sBgTemplates_ItemMenu[] = { @@ -212,98 +265,98 @@ static const struct ListMenuTemplate sItemListMenu = }; static const struct MenuAction sItemMenuActions[] = { - [ITEMMENUACTION_USE] = {gMenuText_Use, ItemMenu_UseOutOfBattle}, - [ITEMMENUACTION_TOSS] = {gMenuText_Toss, ItemMenu_Toss}, - [ITEMMENUACTION_REGISTER] = {gMenuText_Register, ItemMenu_Register}, - [ITEMMENUACTION_GIVE] = {gMenuText_Give, ItemMenu_Give}, - [ITEMMENUACTION_CANCEL] = {gText_Cancel2, ItemMenu_Cancel}, - [ITEMMENUACTION_BATTLE_USE] = {gMenuText_Use, ItemMenu_UseInBattle}, - [ITEMMENUACTION_CHECK] = {gMenuText_Check, ItemMenu_UseOutOfBattle}, - [ITEMMENUACTION_WALK] = {gMenuText_Walk, ItemMenu_UseOutOfBattle}, - [ITEMMENUACTION_DESELECT] = {gMenuText_Deselect, ItemMenu_Register}, - [ITEMMENUACTION_CHECK_TAG] = {gMenuText_CheckTag, ItemMenu_CheckTag}, - [ITEMMENUACTION_CONFIRM] = {gMenuText_Confirm, Task_FadeAndCloseBagMenu}, - [ITEMMENUACTION_SHOW] = {gMenuText_Show, unknown_ItemMenu_Show}, - [ITEMMENUACTION_GIVE_2] = {gMenuText_Give2, unknown_ItemMenu_Give2}, - [ITEMMENUACTION_CONFIRM_2] = {gMenuText_Confirm, unknown_ItemMenu_Confirm2}, - [ITEMMENUACTION_DUMMY] = {gText_EmptyString2, NULL} + [ACTION_USE] = {gMenuText_Use, ItemMenu_UseOutOfBattle}, + [ACTION_TOSS] = {gMenuText_Toss, ItemMenu_Toss}, + [ACTION_REGISTER] = {gMenuText_Register, ItemMenu_Register}, + [ACTION_GIVE] = {gMenuText_Give, ItemMenu_Give}, + [ACTION_CANCEL] = {gText_Cancel2, ItemMenu_Cancel}, + [ACTION_BATTLE_USE] = {gMenuText_Use, ItemMenu_UseInBattle}, + [ACTION_CHECK] = {gMenuText_Check, ItemMenu_UseOutOfBattle}, + [ACTION_WALK] = {gMenuText_Walk, ItemMenu_UseOutOfBattle}, + [ACTION_DESELECT] = {gMenuText_Deselect, ItemMenu_Register}, + [ACTION_CHECK_TAG] = {gMenuText_CheckTag, ItemMenu_CheckTag}, + [ACTION_CONFIRM] = {gMenuText_Confirm, Task_FadeAndCloseBagMenu}, + [ACTION_SHOW] = {gMenuText_Show, ItemMenu_Show}, + [ACTION_GIVE_FAVOR_LADY] = {gMenuText_Give2, ItemMenu_GiveFavorLady}, + [ACTION_CONFIRM_QUIZ_LADY] = {gMenuText_Confirm, ItemMenu_ConfirmQuizLady}, + [ACTION_DUMMY] = {gText_EmptyString2, NULL} }; // these are all 2D arrays with a width of 2 but are represented as 1D arrays -// ITEMMENUACTION_DUMMY is used to represent blank spaces +// ACTION_DUMMY is used to represent blank spaces static const u8 sContextMenuItems_ItemsPocket[] = { - ITEMMENUACTION_USE, ITEMMENUACTION_GIVE, - ITEMMENUACTION_TOSS, ITEMMENUACTION_CANCEL + ACTION_USE, ACTION_GIVE, + ACTION_TOSS, ACTION_CANCEL }; static const u8 sContextMenuItems_KeyItemsPocket[] = { - ITEMMENUACTION_USE, ITEMMENUACTION_REGISTER, - ITEMMENUACTION_DUMMY, ITEMMENUACTION_CANCEL + ACTION_USE, ACTION_REGISTER, + ACTION_DUMMY, ACTION_CANCEL }; static const u8 sContextMenuItems_BallsPocket[] = { - ITEMMENUACTION_GIVE, ITEMMENUACTION_DUMMY, - ITEMMENUACTION_TOSS, ITEMMENUACTION_CANCEL + ACTION_GIVE, ACTION_DUMMY, + ACTION_TOSS, ACTION_CANCEL }; static const u8 sContextMenuItems_TmHmPocket[] = { - ITEMMENUACTION_USE, ITEMMENUACTION_GIVE, - ITEMMENUACTION_DUMMY, ITEMMENUACTION_CANCEL + ACTION_USE, ACTION_GIVE, + ACTION_DUMMY, ACTION_CANCEL }; static const u8 sContextMenuItems_BerriesPocket[] = { - ITEMMENUACTION_CHECK_TAG, ITEMMENUACTION_DUMMY, - ITEMMENUACTION_USE, ITEMMENUACTION_GIVE, - ITEMMENUACTION_TOSS, ITEMMENUACTION_CANCEL + ACTION_CHECK_TAG, ACTION_DUMMY, + ACTION_USE, ACTION_GIVE, + ACTION_TOSS, ACTION_CANCEL }; static const u8 sContextMenuItems_BattleUse[] = { - ITEMMENUACTION_BATTLE_USE, ITEMMENUACTION_CANCEL + ACTION_BATTLE_USE, ACTION_CANCEL }; static const u8 sContextMenuItems_Give[] = { - ITEMMENUACTION_GIVE, ITEMMENUACTION_CANCEL + ACTION_GIVE, ACTION_CANCEL }; static const u8 sContextMenuItems_Cancel[] = { - ITEMMENUACTION_CANCEL + ACTION_CANCEL }; static const u8 sContextMenuItems_BerryBlenderCrush[] = { - ITEMMENUACTION_CONFIRM, ITEMMENUACTION_CHECK_TAG, - ITEMMENUACTION_DUMMY, ITEMMENUACTION_CANCEL + ACTION_CONFIRM, ACTION_CHECK_TAG, + ACTION_DUMMY, ACTION_CANCEL }; static const u8 sContextMenuItems_Apprentice[] = { - ITEMMENUACTION_SHOW, ITEMMENUACTION_CANCEL + ACTION_SHOW, ACTION_CANCEL }; static const u8 sContextMenuItems_FavorLady[] = { - ITEMMENUACTION_GIVE_2, ITEMMENUACTION_CANCEL + ACTION_GIVE_FAVOR_LADY, ACTION_CANCEL }; static const u8 sContextMenuItems_QuizLady[] = { - ITEMMENUACTION_CONFIRM_2, ITEMMENUACTION_CANCEL + ACTION_CONFIRM_QUIZ_LADY, ACTION_CANCEL }; -static const TaskFunc gUnknown_08614054[] = { - [ITEMMENULOCATION_FIELD] = Task_ItemContext_FieldOrBattle, - [ITEMMENULOCATION_BATTLE] = Task_ItemContext_FieldOrBattle, - [ITEMMENULOCATION_PARTY] = Task_ItemContext_FieldGive, +static const TaskFunc sContextMenuFuncs[] = { + [ITEMMENULOCATION_FIELD] = Task_ItemContext_Normal, + [ITEMMENULOCATION_BATTLE] = Task_ItemContext_Normal, + [ITEMMENULOCATION_PARTY] = Task_ItemContext_GiveToParty, [ITEMMENULOCATION_SHOP] = Task_ItemContext_Sell, [ITEMMENULOCATION_BERRY_TREE] = Task_FadeAndCloseBagMenu, - [ITEMMENULOCATION_BERRY_BLENDER_CRUSH] = Task_ItemContext_FieldOrBattle, + [ITEMMENULOCATION_BERRY_BLENDER_CRUSH] = Task_ItemContext_Normal, [ITEMMENULOCATION_ITEMPC] = Task_ItemContext_Deposit, - [ITEMMENULOCATION_FAVOR_LADY] = Task_ItemContext_FieldOrBattle, - [ITEMMENULOCATION_QUIZ_LADY] = Task_ItemContext_FieldOrBattle, - [ITEMMENULOCATION_APPRENTICE] = Task_ItemContext_FieldOrBattle, + [ITEMMENULOCATION_FAVOR_LADY] = Task_ItemContext_Normal, + [ITEMMENULOCATION_QUIZ_LADY] = Task_ItemContext_Normal, + [ITEMMENULOCATION_APPRENTICE] = Task_ItemContext_Normal, [ITEMMENULOCATION_WALLY] = NULL, - [ITEMMENULOCATION_PCBOX] = Task_ItemContext_ItemPC_2 + [ITEMMENULOCATION_PCBOX] = Task_ItemContext_GiveToPC }; -static const struct YesNoFuncTable sYesNoTossFunctions = {BagMenu_ConfirmToss, BagMenu_CancelToss}; +static const struct YesNoFuncTable sYesNoTossFunctions = {ConfirmToss, CancelToss}; -static const struct YesNoFuncTable sYesNoSellItemFunctions = {BagMenu_ConfirmSell, BagMenu_CancelSell}; +static const struct YesNoFuncTable sYesNoSellItemFunctions = {ConfirmSell, CancelSell}; static const struct ScrollArrowsTemplate sBagScrollArrowsTemplate = { .firstArrowType = SCROLL_ARROW_LEFT, @@ -314,25 +367,33 @@ static const struct ScrollArrowsTemplate sBagScrollArrowsTemplate = { .secondY = 16, .fullyUpThreshold = -1, .fullyDownThreshold = -1, - .tileTag = 111, - .palTag = 111, + .tileTag = TAG_BAG_SCROLL_ARROW, + .palTag = TAG_BAG_SCROLL_ARROW, .palNum = 0, }; static const u8 sRegisteredSelect_Gfx[] = INCBIN_U8("graphics/interface/select_button.4bpp"); +enum { + COLORID_NORMAL, + COLORID_POCKET_NAME, + COLORID_GRAY_CURSOR, + COLORID_UNUSED, + COLORID_TMHM_INFO, + COLORID_NONE = 0xFF +}; static const u8 sFontColorTable[][3] = { -// bgColor, textColor, shadowColor - {0, 1, 3}, - {0, 1, 4}, - {0, 3, 6}, - {2, 1, 3}, - {0, 14, 10} + // bgColor, textColor, shadowColor + [COLORID_NORMAL] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY}, + [COLORID_POCKET_NAME] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_RED}, + [COLORID_GRAY_CURSOR] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_GREEN}, + [COLORID_UNUSED] = {TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY}, + [COLORID_TMHM_INFO] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_5, TEXT_DYNAMIC_COLOR_1} }; -const struct WindowTemplate sDefaultBagWindows[] = +static const struct WindowTemplate sDefaultBagWindows[] = { - { // Item names + [WIN_ITEM_LIST] = { .bg = 0, .tilemapLeft = 14, .tilemapTop = 2, @@ -341,7 +402,7 @@ const struct WindowTemplate sDefaultBagWindows[] = .paletteNum = 1, .baseBlock = 0x27, }, - { // Description + [WIN_DESCRIPTION] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 13, @@ -350,7 +411,7 @@ const struct WindowTemplate sDefaultBagWindows[] = .paletteNum = 1, .baseBlock = 0x117, }, - { // Pocket name + [WIN_POCKET_NAME] = { .bg = 0, .tilemapLeft = 4, .tilemapTop = 1, @@ -359,7 +420,7 @@ const struct WindowTemplate sDefaultBagWindows[] = .paletteNum = 1, .baseBlock = 0x1A1, }, - { // TM/HM info icons + [WIN_TMHM_INFO_ICONS] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 13, @@ -368,7 +429,7 @@ const struct WindowTemplate sDefaultBagWindows[] = .paletteNum = 12, .baseBlock = 0x16B, }, - {// TM/HM info + [WIN_TMHM_INFO] = { .bg = 0, .tilemapLeft = 7, .tilemapTop = 13, @@ -377,7 +438,7 @@ const struct WindowTemplate sDefaultBagWindows[] = .paletteNum = 12, .baseBlock = 0x189, }, - { // Field message box + [WIN_MESSAGE] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 15, @@ -389,9 +450,9 @@ const struct WindowTemplate sDefaultBagWindows[] = DUMMY_WIN_TEMPLATE, }; -const struct WindowTemplate sContextMenuWindowTemplates[] = +static const struct WindowTemplate sContextMenuWindowTemplates[] = { - { + [ITEMWIN_1x1] = { .bg = 1, .tilemapLeft = 22, .tilemapTop = 17, @@ -400,7 +461,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x21D, }, - { + [ITEMWIN_1x2] = { .bg = 1, .tilemapLeft = 22, .tilemapTop = 15, @@ -409,7 +470,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x21D, }, - { + [ITEMWIN_2x2] = { .bg = 1, .tilemapLeft = 15, .tilemapTop = 15, @@ -418,7 +479,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x21D, }, - { + [ITEMWIN_2x3] = { .bg = 1, .tilemapLeft = 15, .tilemapTop = 13, @@ -427,7 +488,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x21D, }, - { + [ITEMWIN_MESSAGE] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 15, @@ -436,7 +497,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x1B1, }, - { + [ITEMWIN_YESNO_LOW] = { // Yes/No tucked in corner, for toss confirm .bg = 1, .tilemapLeft = 24, .tilemapTop = 15, @@ -445,7 +506,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x21D, }, - { + [ITEMWIN_YESNO_HIGH] = { // Yes/No higher up, positioned above a lower message box .bg = 1, .tilemapLeft = 21, .tilemapTop = 9, @@ -454,7 +515,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x21D, }, - { + [ITEMWIN_QUANTITY] = { // Used for quantity of items to Toss/Deposit .bg = 1, .tilemapLeft = 24, .tilemapTop = 17, @@ -463,7 +524,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x21D, }, - { + [ITEMWIN_QUANTITY_WIDE] = { // Used for quantity and price of items to Sell .bg = 1, .tilemapLeft = 18, .tilemapTop = 11, @@ -472,7 +533,7 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x245, }, - { + [ITEMWIN_MONEY] = { .bg = 1, .tilemapLeft = 1, .tilemapTop = 1, @@ -483,42 +544,18 @@ const struct WindowTemplate sContextMenuWindowTemplates[] = }, }; -// .text - -struct ListBuffer1 { - struct ListMenuItem subBuffers[MAX_POCKET_ITEMS]; -}; - -struct ListBuffer2 { - s8 name[MAX_POCKET_ITEMS][24]; -}; - -struct TempWallyStruct { - struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT]; - struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT]; - u16 cursorPosition[POCKETS_COUNT]; - u16 scrollPosition[POCKETS_COUNT]; - u8 filler[2]; - u16 pocket; -}; - -EWRAM_DATA struct BagMenuStruct *gBagMenu = 0; -EWRAM_DATA struct BagStruct gBagPositionStruct = {0}; +EWRAM_DATA struct BagMenu *gBagMenu = 0; +EWRAM_DATA struct BagPosition gBagPosition = {0}; static EWRAM_DATA struct ListBuffer1 *sListBuffer1 = 0; static EWRAM_DATA struct ListBuffer2 *sListBuffer2 = 0; EWRAM_DATA u16 gSpecialVar_ItemId = 0; -static EWRAM_DATA struct TempWallyStruct *sTempWallyBag = 0; - -extern u8 *const gPocketNamesStringsTable[]; -extern u8* gReturnToXStringsTable[]; -extern const u8 EventScript_SelectWithoutRegisteredItem[]; -extern const u16 gUnknown_0860F074[]; +static EWRAM_DATA struct TempWallyBag *sTempWallyBag = 0; void ResetBagScrollPositions(void) { - gBagPositionStruct.pocket = ITEMS_POCKET; - memset(gBagPositionStruct.cursorPosition, 0, 10); - memset(gBagPositionStruct.scrollPosition, 0, 10); + gBagPosition.pocket = ITEMS_POCKET; + memset(gBagPosition.cursorPosition, 0, sizeof(gBagPosition.cursorPosition)); + memset(gBagPosition.scrollPosition, 0, sizeof(gBagPosition.scrollPosition)); } void CB2_BagMenuFromStartMenu(void) @@ -531,7 +568,7 @@ void CB2_BagMenuFromBattle(void) if (!InBattlePyramid()) GoToBagMenu(ITEMMENULOCATION_BATTLE, POCKETS_COUNT, CB2_SetUpReshowBattleScreenAfterMenu2); else - GoToBattlePyramidBagMenu(1, CB2_SetUpReshowBattleScreenAfterMenu2); + GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_BATTLE, CB2_SetUpReshowBattleScreenAfterMenu2); } // Choosing berry to plant @@ -553,7 +590,7 @@ void CB2_GoToSellMenu(void) void CB2_GoToItemDepositMenu(void) { - GoToBagMenu(ITEMMENULOCATION_ITEMPC, POCKETS_COUNT, sub_816B31C); + GoToBagMenu(ITEMMENULOCATION_ITEMPC, POCKETS_COUNT, CB2_PlayerPCExitBagMenu); } void ApprenticeOpenBagMenu(void) @@ -575,30 +612,31 @@ void QuizLadyOpenBagMenu(void) gSpecialVar_Result = FALSE; } -void GoToBagMenu(u8 location, u8 pocket, void ( *postExitMenuMainCallback2)()) +void GoToBagMenu(u8 location, u8 pocket, void ( *exitCallback)()) { - gBagMenu = AllocZeroed(sizeof(struct BagMenuStruct)); + gBagMenu = AllocZeroed(sizeof(*gBagMenu)); if (gBagMenu == NULL) { - SetMainCallback2(postExitMenuMainCallback2); + // Alloc failed, exit + SetMainCallback2(exitCallback); } else { if (location != ITEMMENULOCATION_LAST) - gBagPositionStruct.location = location; - if (postExitMenuMainCallback2) - gBagPositionStruct.bagCallback = postExitMenuMainCallback2; + gBagPosition.location = location; + if (exitCallback) + gBagPosition.exitCallback = exitCallback; if (pocket < POCKETS_COUNT) - gBagPositionStruct.pocket = pocket; - if (gBagPositionStruct.location == ITEMMENULOCATION_BERRY_TREE || - gBagPositionStruct.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH) + gBagPosition.pocket = pocket; + if (gBagPosition.location == ITEMMENULOCATION_BERRY_TREE || + gBagPosition.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH) gBagMenu->pocketSwitchDisabled = TRUE; - gBagMenu->exitCallback = NULL; - gBagMenu->itemOriginalLocation = 0xFF; - gBagMenu->pocketScrollArrowsTask = 0xFF; - gBagMenu->pocketSwitchArrowsTask = 0xFF; - memset(gBagMenu->spriteId, 0xFF, sizeof(gBagMenu->spriteId)); - memset(gBagMenu->windowPointers, 0xFF, 10); + gBagMenu->newScreenCallback = NULL; + gBagMenu->toSwapPos = NOT_SWAPPING; + gBagMenu->pocketScrollArrowsTask = TASK_NONE; + gBagMenu->pocketSwitchArrowsTask = TASK_NONE; + memset(gBagMenu->spriteIds, SPRITE_NONE, sizeof(gBagMenu->spriteIds)); + memset(gBagMenu->windowIds, WINDOW_NONE, sizeof(gBagMenu->windowIds)); SetMainCallback2(CB2_Bag); } } @@ -619,16 +657,24 @@ void VBlankCB_BagMenuRun(void) TransferPlttBuffer(); } -#define tItemCount data[8] +#define tListTaskId data[0] +#define tListPosition data[1] +#define tQuantity data[2] +#define tNeverRead data[3] +#define tItemCount data[8] +#define tMsgWindowId data[10] +#define tPocketSwitchDir data[11] +#define tPocketSwitchTimer data[12] +#define tPocketSwitchState data[13] -void CB2_Bag(void) +static void CB2_Bag(void) { - while(MenuHelpers_CallLinkSomething() != TRUE && SetupBagMenu() != TRUE && MenuHelpers_LinkSomething() != TRUE) {}; + while(MenuHelpers_CallLinkSomething() != TRUE && SetupBagMenu() != TRUE && MenuHelpers_LinkSomething() != TRUE) + {}; } -bool8 SetupBagMenu(void) +static bool8 SetupBagMenu(void) { - u32 index; u8 taskId; switch (gMain.state) @@ -674,13 +720,13 @@ bool8 SetupBagMenu(void) gMain.state++; break; case 9: - SetupBagMenu_Textboxes(); + LoadBagMenuTextWindows(); gMain.state++; break; case 10: - All_CalculateNItemsAndMaxShowed(); - SetPocketListPositions(); - UpdatePocketScrollPositions(); + UpdatePocketItemLists(); + InitPocketListPositions(); + InitPocketScrollPositions(); gMain.state++; break; case 11: @@ -688,28 +734,28 @@ bool8 SetupBagMenu(void) gMain.state++; break; case 12: - LoadBagItemListBuffers(gBagPositionStruct.pocket); + LoadBagItemListBuffers(gBagPosition.pocket); gMain.state++; break; case 13: - BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], 0); - BagMenu_CopyPocketNameToWindow(0); - DrawPocketIndicatorSquare(gBagPositionStruct.pocket, TRUE); + PrintPocketNames(gPocketNamesStringsTable[gBagPosition.pocket], 0); + CopyPocketNameToWindow(0); + DrawPocketIndicatorSquare(gBagPosition.pocket, TRUE); gMain.state++; break; case 14: - taskId = CreateBagInputHandlerTask(gBagPositionStruct.location); - gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket], gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]); - gTasks[taskId].data[3] = 0; + taskId = CreateBagInputHandlerTask(gBagPosition.location); + gTasks[taskId].tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, gBagPosition.scrollPosition[gBagPosition.pocket], gBagPosition.cursorPosition[gBagPosition.pocket]); + gTasks[taskId].tNeverRead = 0; gTasks[taskId].tItemCount = 0; gMain.state++; break; case 15: - AddBagVisualSprite(gBagPositionStruct.pocket); + AddBagVisualSprite(gBagPosition.pocket); gMain.state++; break; case 16: - sub_80D4FAC(); + CreateItemMenuSwapLine(); gMain.state++; break; case 17: @@ -718,15 +764,15 @@ bool8 SetupBagMenu(void) gMain.state++; break; case 18: - BagMenu_PrepareTMHMMoveWindow(); + PrepareTMHMMoveWindow(); gMain.state++; break; case 19: - BlendPalettes(0xFFFFFFFF, 16, 0); + BlendPalettes(PALETTES_ALL, 16, 0); gMain.state++; break; case 20: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gPaletteFade.bufferTransferDisabled = FALSE; gMain.state++; break; @@ -738,12 +784,12 @@ bool8 SetupBagMenu(void) return FALSE; } -void BagMenu_InitBGs(void) +static void BagMenu_InitBGs(void) { ResetVramOamAndBgCntRegs(); - memset(gBagMenu->tilemapBuffer, 0, 0x800); + memset(gBagMenu->tilemapBuffer, 0, sizeof(gBagMenu->tilemapBuffer)); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sBgTemplates_ItemMenu, 3); + InitBgsFromTemplates(0, sBgTemplates_ItemMenu, ARRAY_COUNT(sBgTemplates_ItemMenu)); SetBgTilemapBuffer(2, gBagMenu->tilemapBuffer); ResetAllBgsCoordinates(); ScheduleBgCopyTilemapToVram(2); @@ -754,49 +800,49 @@ void BagMenu_InitBGs(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -bool8 LoadBagMenu_Graphics(void) +static bool8 LoadBagMenu_Graphics(void) { switch (gBagMenu->graphicsLoadState) { - case 0: - ResetTempTileDataBuffers(); - DecompressAndCopyTileDataToVram(2, gBagScreen_Gfx, 0, 0, 0); + case 0: + ResetTempTileDataBuffers(); + DecompressAndCopyTileDataToVram(2, gBagScreen_Gfx, 0, 0, 0); + gBagMenu->graphicsLoadState++; + break; + case 1: + if (FreeTempTileDataBuffersIfPossible() != TRUE) + { + LZDecompressWram(gBagScreen_GfxTileMap, gBagMenu->tilemapBuffer); gBagMenu->graphicsLoadState++; - break; - case 1: - if (FreeTempTileDataBuffersIfPossible() != TRUE) - { - LZDecompressWram(gBagScreen_GfxTileMap, gBagMenu->tilemapBuffer); - gBagMenu->graphicsLoadState++; - } - break; - case 2: - if (!IsWallysBag() && gSaveBlock2Ptr->playerGender != MALE) - LoadCompressedPalette(gBagScreenFemale_Pal, 0, 0x40); - else - LoadCompressedPalette(gBagScreenMale_Pal, 0, 0x40); - gBagMenu->graphicsLoadState++; - break; - case 3: - if (IsWallysBag() == TRUE || gSaveBlock2Ptr->playerGender == MALE) - LoadCompressedSpriteSheet(&gBagMaleSpriteSheet); - else - LoadCompressedSpriteSheet(&gBagFemaleSpriteSheet); - gBagMenu->graphicsLoadState++; - break; - case 4: - LoadCompressedSpritePalette(&gBagPaletteTable); - gBagMenu->graphicsLoadState++; - break; - default: - LoadListMenuArrowsGfx(); - gBagMenu->graphicsLoadState = 0; - return TRUE; + } + break; + case 2: + if (!IsWallysBag() && gSaveBlock2Ptr->playerGender != MALE) + LoadCompressedPalette(gBagScreenFemale_Pal, 0, 0x40); + else + LoadCompressedPalette(gBagScreenMale_Pal, 0, 0x40); + gBagMenu->graphicsLoadState++; + break; + case 3: + if (IsWallysBag() == TRUE || gSaveBlock2Ptr->playerGender == MALE) + LoadCompressedSpriteSheet(&gBagMaleSpriteSheet); + else + LoadCompressedSpriteSheet(&gBagFemaleSpriteSheet); + gBagMenu->graphicsLoadState++; + break; + case 4: + LoadCompressedSpritePalette(&gBagPaletteTable); + gBagMenu->graphicsLoadState++; + break; + default: + LoadListMenuSwapLineGfx(); + gBagMenu->graphicsLoadState = 0; + return TRUE; } return FALSE; } -u8 CreateBagInputHandlerTask(u8 location) +static u8 CreateBagInputHandlerTask(u8 location) { u8 taskId; if (location == ITEMMENULOCATION_WALLY) @@ -806,13 +852,13 @@ u8 CreateBagInputHandlerTask(u8 location) return taskId; } -void AllocateBagItemListBuffers(void) +static void AllocateBagItemListBuffers(void) { - sListBuffer1 = Alloc(sizeof(struct ListBuffer1)); - sListBuffer2 = Alloc(sizeof(struct ListBuffer2)); + sListBuffer1 = Alloc(sizeof(*sListBuffer1)); + sListBuffer2 = Alloc(sizeof(*sListBuffer2)); } -void LoadBagItemListBuffers(u8 pocketId) +static void LoadBagItemListBuffers(u8 pocketId) { u16 i; struct BagPocket *pocket = &gBagPockets[pocketId]; @@ -848,55 +894,57 @@ void LoadBagItemListBuffers(u8 pocketId) gMultiuseListMenuTemplate.maxShowed = gBagMenu->numShownItems[pocketId]; } -void GetItemName(s8 *dest, u16 itemId) +static void GetItemName(s8 *dest, u16 itemId) { - switch (gBagPositionStruct.pocket) + switch (gBagPosition.pocket) { - case TMHM_POCKET: - StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(itemId)]); - if (itemId >= ITEM_HM01) - { - ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_HM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 1); - StringExpandPlaceholders(dest, gText_ClearTo11Var1Clear5Var2); - } - else - { - ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2); - StringExpandPlaceholders(dest, gText_NumberVar1Clear7Var2); - } - break; - case BERRIES_POCKET: - ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_CHERI_BERRY + 1, STR_CONV_MODE_LEADING_ZEROS, 2); - CopyItemName(itemId, gStringVar2); - StringExpandPlaceholders(dest, gText_NumberVar1Clear7Var2); - break; - default: - CopyItemName(itemId, dest); - break; + case TMHM_POCKET: + StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(itemId)]); + if (itemId >= ITEM_HM01) + { + // Get HM number + ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_HM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 1); + StringExpandPlaceholders(dest, gText_NumberItem_HM); + } + else + { + // Get TM number + ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(dest, gText_NumberItem_TMBerry); + } + break; + case BERRIES_POCKET: + ConvertIntToDecimalStringN(gStringVar1, itemId - FIRST_BERRY_INDEX + 1, STR_CONV_MODE_LEADING_ZEROS, 2); + CopyItemName(itemId, gStringVar2); + StringExpandPlaceholders(dest, gText_NumberItem_TMBerry); + break; + default: + CopyItemName(itemId, dest); + break; } } -void BagMenu_MoveCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void BagMenu_MoveCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) { PlaySE(SE_SELECT); ShakeBagSprite(); } - if (gBagMenu->itemOriginalLocation == 0xFF) + if (gBagMenu->toSwapPos == NOT_SWAPPING) { RemoveBagItemIconSprite(gBagMenu->itemIconSlot ^ 1); if (itemIndex != LIST_CANCEL) - AddBagItemIconSprite(BagGetItemIdByPocketPosition(gBagPositionStruct.pocket + 1, itemIndex), gBagMenu->itemIconSlot); + AddBagItemIconSprite(BagGetItemIdByPocketPosition(gBagPosition.pocket + 1, itemIndex), gBagMenu->itemIconSlot); else AddBagItemIconSprite(-1, gBagMenu->itemIconSlot); gBagMenu->itemIconSlot ^= 1; if (!gBagMenu->inhibitItemDescriptionPrint) - BagMenu_PrintDescription(itemIndex); + PrintItemDescription(itemIndex); } } -void BagMenu_ItemPrintCallback(u8 windowId, s32 itemIndex, u8 y) +static void BagMenu_ItemPrintCallback(u8 windowId, u32 itemIndex, u8 y) { u16 itemId; u16 itemQuantity; @@ -904,113 +952,119 @@ void BagMenu_ItemPrintCallback(u8 windowId, s32 itemIndex, u8 y) if (itemIndex != LIST_CANCEL) { - if (gBagMenu->itemOriginalLocation != 0xFF) + if (gBagMenu->toSwapPos != NOT_SWAPPING) { - if (gBagMenu->itemOriginalLocation == (u8)itemIndex) - BagMenu_PrintCursor(y, 2); + // Swapping items, draw cursor at original item's location + if (gBagMenu->toSwapPos == (u8)itemIndex) + BagMenu_PrintCursorAtPos(y, COLORID_GRAY_CURSOR); else - BagMenu_PrintCursor(y, 0xFF); + BagMenu_PrintCursorAtPos(y, COLORID_NONE); } - itemId = BagGetItemIdByPocketPosition(gBagPositionStruct.pocket + 1, itemIndex); - itemQuantity = BagGetQuantityByPocketPosition(gBagPositionStruct.pocket + 1, itemIndex); + itemId = BagGetItemIdByPocketPosition(gBagPosition.pocket + 1, itemIndex); + itemQuantity = BagGetQuantityByPocketPosition(gBagPosition.pocket + 1, itemIndex); + // Draw HM icon if (itemId >= ITEM_HM01 && itemId <= ITEM_HM08) BlitBitmapToWindow(windowId, gBagMenuHMIcon_Gfx, 8, y - 1, 16, 16); - if (gBagPositionStruct.pocket == BERRIES_POCKET) + if (gBagPosition.pocket == BERRIES_POCKET) { + // Print berry quantity ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, BERRY_CAPACITY_DIGITS); StringExpandPlaceholders(gStringVar4, gText_xVar1); offset = GetStringRightAlignXOffset(7, gStringVar4, 119); - BagMenu_Print(windowId, 7, gStringVar4, offset, y, 0, 0, -1, 0); + BagMenu_Print(windowId, 7, gStringVar4, offset, y, 0, 0, TEXT_SPEED_FF, COLORID_NORMAL); } - else if (gBagPositionStruct.pocket != KEYITEMS_POCKET && ItemId_GetImportance(itemId) == FALSE) + else if (gBagPosition.pocket != KEYITEMS_POCKET && ItemId_GetImportance(itemId) == FALSE) { + // Print item quantity ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, BAG_ITEM_CAPACITY_DIGITS); StringExpandPlaceholders(gStringVar4, gText_xVar1); offset = GetStringRightAlignXOffset(7, gStringVar4, 119); - BagMenu_Print(windowId, 7, gStringVar4, offset, y, 0, 0, -1, 0); + BagMenu_Print(windowId, 7, gStringVar4, offset, y, 0, 0, TEXT_SPEED_FF, COLORID_NORMAL); } else { + // Print registered icon if (gSaveBlock1Ptr->registeredItem && gSaveBlock1Ptr->registeredItem == itemId) BlitBitmapToWindow(windowId, sRegisteredSelect_Gfx, 96, y - 1, 24, 16); } } } -void BagMenu_PrintDescription(int itemIndex) +static void PrintItemDescription(int itemIndex) { const u8 *str; if (itemIndex != LIST_CANCEL) { - str = ItemId_GetDescription(BagGetItemIdByPocketPosition(gBagPositionStruct.pocket + 1, itemIndex)); + str = ItemId_GetDescription(BagGetItemIdByPocketPosition(gBagPosition.pocket + 1, itemIndex)); } else { - StringCopy(gStringVar1, gReturnToXStringsTable[gBagPositionStruct.location]); + // Print 'Cancel' description + StringCopy(gStringVar1, gBagMenu_ReturnToStrings[gBagPosition.location]); StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); str = gStringVar4; } - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - BagMenu_Print(1, 1, str, 3, 1, 0, 0, 0, 0); + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); + BagMenu_Print(WIN_DESCRIPTION, 1, str, 3, 1, 0, 0, 0, COLORID_NORMAL); } -void BagMenu_PrintCursor_(u8 listTaskId, u8 colorIndex) +static void BagMenu_PrintCursor(u8 listTaskId, u8 colorIndex) { - BagMenu_PrintCursor(ListMenuGetYCoordForPrintingArrowCursor(listTaskId), colorIndex); + BagMenu_PrintCursorAtPos(ListMenuGetYCoordForPrintingArrowCursor(listTaskId), colorIndex); } -void BagMenu_PrintCursor(u8 y, u8 colorIndex) +static void BagMenu_PrintCursorAtPos(u8 y, u8 colorIndex) { - if (colorIndex == 0xFF) - FillWindowPixelRect(0, PIXEL_FILL(0), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + if (colorIndex == COLORID_NONE) + FillWindowPixelRect(WIN_ITEM_LIST, PIXEL_FILL(0), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else - BagMenu_Print(0, 1, gText_SelectorArrow2, 0, y, 0, 0, 0, colorIndex); + BagMenu_Print(WIN_ITEM_LIST, 1, gText_SelectorArrow2, 0, y, 0, 0, 0, colorIndex); } -void CreatePocketScrollArrowPair(void) +static void CreatePocketScrollArrowPair(void) { - if (gBagMenu->pocketScrollArrowsTask == 0xFF) + if (gBagMenu->pocketScrollArrowsTask == TASK_NONE) gBagMenu->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( SCROLL_ARROW_UP, 172, 12, 148, - gBagMenu->numItemStacks[gBagPositionStruct.pocket] - gBagMenu->numShownItems[gBagPositionStruct.pocket], - 110, - 110, - &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]); + gBagMenu->numItemStacks[gBagPosition.pocket] - gBagMenu->numShownItems[gBagPosition.pocket], + TAG_POCKET_SCROLL_ARROW, + TAG_POCKET_SCROLL_ARROW, + &gBagPosition.scrollPosition[gBagPosition.pocket]); } void BagDestroyPocketScrollArrowPair(void) { - if (gBagMenu->pocketScrollArrowsTask != 0xFF) + if (gBagMenu->pocketScrollArrowsTask != TASK_NONE) { RemoveScrollIndicatorArrowPair(gBagMenu->pocketScrollArrowsTask); - gBagMenu->pocketScrollArrowsTask = 0xFF; + gBagMenu->pocketScrollArrowsTask = TASK_NONE; } - BagDestroyPocketSwitchArrowPair(); + DestroyPocketSwitchArrowPair(); } -void CreatePocketSwitchArrowPair(void) +static void CreatePocketSwitchArrowPair(void) { - if (gBagMenu->pocketSwitchDisabled != TRUE && gBagMenu->pocketSwitchArrowsTask == 0xFF) - gBagMenu->pocketSwitchArrowsTask = AddScrollIndicatorArrowPair(&sBagScrollArrowsTemplate, &gBagPositionStruct.unk6); + if (gBagMenu->pocketSwitchDisabled != TRUE && gBagMenu->pocketSwitchArrowsTask == TASK_NONE) + gBagMenu->pocketSwitchArrowsTask = AddScrollIndicatorArrowPair(&sBagScrollArrowsTemplate, &gBagPosition.pocketSwitchArrowPos); } -void BagDestroyPocketSwitchArrowPair(void) +static void DestroyPocketSwitchArrowPair(void) { - if (gBagMenu->pocketSwitchArrowsTask != 0xFF) + if (gBagMenu->pocketSwitchArrowsTask != TASK_NONE) { RemoveScrollIndicatorArrowPair(gBagMenu->pocketSwitchArrowsTask); - gBagMenu->pocketSwitchArrowsTask = 0xFF; + gBagMenu->pocketSwitchArrowsTask = TASK_NONE; } } -void FreeBagItemListBuffers(void) +static void FreeBagMenu(void) { Free(sListBuffer2); Free(sListBuffer1); @@ -1020,24 +1074,28 @@ void FreeBagItemListBuffers(void) void Task_FadeAndCloseBagMenu(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[taskId].func = TaskCloseBagMenu_2; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_CloseBagMenu; } -void TaskCloseBagMenu_2(u8 taskId) +static void Task_CloseBagMenu(u8 taskId) { s16* data = gTasks[taskId].data; if (!gPaletteFade.active) { - DestroyListMenuTask(data[0], &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket], &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]); - if (gBagMenu->exitCallback != NULL) - SetMainCallback2(gBagMenu->exitCallback); + DestroyListMenuTask(tListTaskId, &gBagPosition.scrollPosition[gBagPosition.pocket], &gBagPosition.cursorPosition[gBagPosition.pocket]); + + // If ready for a new screen (e.g. party menu for giving an item) go to that screen + // Otherwise exit the bag and use callback set up when the bag was first opened + if (gBagMenu->newScreenCallback != NULL) + SetMainCallback2(gBagMenu->newScreenCallback); else - SetMainCallback2(gBagPositionStruct.bagCallback); + SetMainCallback2(gBagPosition.exitCallback); + BagDestroyPocketScrollArrowPair(); ResetSpriteData(); FreeAllSpritePalettes(); - FreeBagItemListBuffers(); + FreeBagMenu(); DestroyTask(taskId); } } @@ -1048,13 +1106,13 @@ void UpdatePocketItemList(u8 pocketId) struct BagPocket *pocket = &gBagPockets[pocketId]; switch (pocketId) { - case TMHM_POCKET: - case BERRIES_POCKET: - SortBerriesOrTMHMs(pocket); - break; - default: - CompactItemsInBagPocket(pocket); - break; + case TMHM_POCKET: + case BERRIES_POCKET: + SortBerriesOrTMHMs(pocket); + break; + default: + CompactItemsInBagPocket(pocket); + break; } gBagMenu->numItemStacks[pocketId] = 0; @@ -1065,160 +1123,161 @@ void UpdatePocketItemList(u8 pocketId) if (!gBagMenu->hideCloseBagText) gBagMenu->numItemStacks[pocketId]++; - if (gBagMenu->numItemStacks[pocketId] > 8) - gBagMenu->numShownItems[pocketId] = 8; + if (gBagMenu->numItemStacks[pocketId] > MAX_ITEMS_SHOWN) + gBagMenu->numShownItems[pocketId] = MAX_ITEMS_SHOWN; else gBagMenu->numShownItems[pocketId] = gBagMenu->numItemStacks[pocketId]; } -void All_CalculateNItemsAndMaxShowed(void) +static void UpdatePocketItemLists(void) { u8 i; for (i = 0; i < POCKETS_COUNT; i++) UpdatePocketItemList(i); } -void SetInitialScrollAndCursorPositions(u8 pocketId) +void UpdatePocketListPosition(u8 pocketId) { - sub_812225C(&gBagPositionStruct.scrollPosition[pocketId], &gBagPositionStruct.cursorPosition[pocketId], gBagMenu->numShownItems[pocketId], gBagMenu->numItemStacks[pocketId]); + SetCursorWithinListBounds(&gBagPosition.scrollPosition[pocketId], &gBagPosition.cursorPosition[pocketId], gBagMenu->numShownItems[pocketId], gBagMenu->numItemStacks[pocketId]); } -static void SetPocketListPositions(void) +static void InitPocketListPositions(void) { u8 i; for (i = 0; i < POCKETS_COUNT; i++) - SetInitialScrollAndCursorPositions(i); + UpdatePocketListPosition(i); } -void UpdatePocketScrollPositions(void) +static void InitPocketScrollPositions(void) { u8 i; for (i = 0; i < POCKETS_COUNT; i++) - sub_8122298(&gBagPositionStruct.scrollPosition[i], &gBagPositionStruct.cursorPosition[i], gBagMenu->numShownItems[i], gBagMenu->numItemStacks[i], 8); + SetCursorScrollWithinListBounds(&gBagPosition.scrollPosition[i], &gBagPosition.cursorPosition[i], gBagMenu->numShownItems[i], gBagMenu->numItemStacks[i], MAX_ITEMS_SHOWN); } u8 GetItemListPosition(u8 pocketId) { - return gBagPositionStruct.scrollPosition[pocketId] + gBagPositionStruct.cursorPosition[pocketId]; + return gBagPosition.scrollPosition[pocketId] + gBagPosition.cursorPosition[pocketId]; } void DisplayItemMessage(u8 taskId, u8 fontId, const u8 *str, void (*callback)(u8 taskId)) { s16* data = gTasks[taskId].data; - data[10] = AddItemMessageWindow(4); - FillWindowPixelBuffer(data[10], PIXEL_FILL(1)); - DisplayMessageAndContinueTask(taskId, data[10], 10, 13, fontId, GetPlayerTextSpeedDelay(), str, callback); + tMsgWindowId = AddItemMessageWindow(ITEMWIN_MESSAGE); + FillWindowPixelBuffer(tMsgWindowId, PIXEL_FILL(1)); + DisplayMessageAndContinueTask(taskId, tMsgWindowId, 10, 13, fontId, GetPlayerTextSpeedDelay(), str, callback); ScheduleBgCopyTilemapToVram(1); } -void BagMenu_InitListsMenu(u8 taskId) +void CloseItemMessage(u8 taskId) { s16* data = gTasks[taskId].data; - u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; - u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; - BagMenu_RemoveBagItemMessageindow(4); - DestroyListMenuTask(data[0], scrollPos, cursorPos); - UpdatePocketItemList(gBagPositionStruct.pocket); - SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); - LoadBagItemListBuffers(gBagPositionStruct.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); + u16* scrollPos = &gBagPosition.scrollPosition[gBagPosition.pocket]; + u16* cursorPos = &gBagPosition.cursorPosition[gBagPosition.pocket]; + RemoveItemMessageWindow(ITEMWIN_MESSAGE); + DestroyListMenuTask(tListTaskId, scrollPos, cursorPos); + UpdatePocketItemList(gBagPosition.pocket); + UpdatePocketListPosition(gBagPosition.pocket); + LoadBagItemListBuffers(gBagPosition.pocket); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); ScheduleBgCopyTilemapToVram(0); - set_callback3_to_bag(taskId); + ReturnToItemList(taskId); } -void sub_81ABC3C(u8 a) +static void AddItemQuantityWindow(u8 windowType) { - PrintItemDepositAmount(BagMenu_AddWindow(a), 1); + PrintItemQuantity(BagMenu_AddWindow(windowType), 1); } -void PrintItemDepositAmount(u8 windowId, s16 numDeposited) +static void PrintItemQuantity(u8 windowId, s16 quantity) { - u8 numDigits = (gBagPositionStruct.pocket == BERRIES_POCKET) ? BERRY_CAPACITY_DIGITS : BAG_ITEM_CAPACITY_DIGITS; - ConvertIntToDecimalStringN(gStringVar1, numDeposited, STR_CONV_MODE_LEADING_ZEROS, numDigits); + u8 numDigits = (gBagPosition.pocket == BERRIES_POCKET) ? BERRY_CAPACITY_DIGITS : BAG_ITEM_CAPACITY_DIGITS; + ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, numDigits); StringExpandPlaceholders(gStringVar4, gText_xVar1); AddTextPrinterParameterized(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0); } -void PrintItemSoldAmount(int windowId, int numSold, int moneyEarned) +// Prints the quantity of items to be sold and the amount that would be earned +static void PrintItemSoldAmount(int windowId, int numSold, int moneyEarned) { - u8 numDigits = (gBagPositionStruct.pocket == BERRIES_POCKET) ? BERRY_CAPACITY_DIGITS : BAG_ITEM_CAPACITY_DIGITS; + u8 numDigits = (gBagPosition.pocket == BERRIES_POCKET) ? BERRY_CAPACITY_DIGITS : BAG_ITEM_CAPACITY_DIGITS; ConvertIntToDecimalStringN(gStringVar1, numSold, STR_CONV_MODE_LEADING_ZEROS, numDigits); StringExpandPlaceholders(gStringVar4, gText_xVar1); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, -1, 0); + AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, 0); PrintMoneyAmount(windowId, 38, 1, moneyEarned, 0); } -void Task_BagMenu_HandleInput(u8 taskId) +static void Task_BagMenu_HandleInput(u8 taskId) { s16* data = gTasks[taskId].data; - u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; - u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; + u16* scrollPos = &gBagPosition.scrollPosition[gBagPosition.pocket]; + u16* cursorPos = &gBagPosition.cursorPosition[gBagPosition.pocket]; s32 listPosition; if (MenuHelpers_CallLinkSomething() != TRUE && !gPaletteFade.active) { switch (GetSwitchBagPocketDirection()) { - case SWITCH_POCKET_LEFT: - SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 0); - return; - case SWITCH_POCKET_RIGHT: - SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0); - return; - default: - if (JOY_NEW(SELECT_BUTTON)) + case SWITCH_POCKET_LEFT: + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, FALSE); + return; + case SWITCH_POCKET_RIGHT: + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, FALSE); + return; + default: + if (JOY_NEW(SELECT_BUTTON)) + { + if (CanSwapItems() == TRUE) { - if (CanSwapItems() == TRUE) + ListMenuGetScrollAndRow(tListTaskId, scrollPos, cursorPos); + if ((*scrollPos + *cursorPos) != gBagMenu->numItemStacks[gBagPosition.pocket] - 1) { - ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); - if ((*scrollPos + *cursorPos) != gBagMenu->numItemStacks[gBagPositionStruct.pocket] - 1) - { - PlaySE(SE_SELECT); - BagMenu_SwapItems(taskId); - } + PlaySE(SE_SELECT); + StartItemSwap(taskId); } - return; } - break; + return; + } + break; } - listPosition = ListMenu_ProcessInput(data[0]); - ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); + listPosition = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, scrollPos, cursorPos); switch (listPosition) { - case LIST_NOTHING_CHOSEN: - break; - case LIST_CANCEL: - if (gBagPositionStruct.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH) - { - PlaySE(SE_FAILURE); - break; - } - PlaySE(SE_SELECT); - gSpecialVar_ItemId = ITEM_NONE; - gTasks[taskId].func = Task_FadeAndCloseBagMenu; - break; - default: // A_BUTTON - PlaySE(SE_SELECT); - BagDestroyPocketScrollArrowPair(); - BagMenu_PrintCursor_(data[0], 2); - data[1] = listPosition; - data[2] = BagGetQuantityByPocketPosition(gBagPositionStruct.pocket + 1, listPosition); - gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gBagPositionStruct.pocket + 1, listPosition); - gUnknown_08614054[gBagPositionStruct.location](taskId); + case LIST_NOTHING_CHOSEN: + break; + case LIST_CANCEL: + if (gBagPosition.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH) + { + PlaySE(SE_FAILURE); break; + } + PlaySE(SE_SELECT); + gSpecialVar_ItemId = ITEM_NONE; + gTasks[taskId].func = Task_FadeAndCloseBagMenu; + break; + default: // A_BUTTON + PlaySE(SE_SELECT); + BagDestroyPocketScrollArrowPair(); + BagMenu_PrintCursor(tListTaskId, COLORID_GRAY_CURSOR); + tListPosition = listPosition; + tQuantity = BagGetQuantityByPocketPosition(gBagPosition.pocket + 1, listPosition); + gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gBagPosition.pocket + 1, listPosition); + sContextMenuFuncs[gBagPosition.location](taskId); + break; } } } -void set_callback3_to_bag(u8 taskId) +static void ReturnToItemList(u8 taskId) { CreatePocketScrollArrowPair(); CreatePocketSwitchArrowPair(); - ClearWindowTilemap(3); - ClearWindowTilemap(4); - PutWindowTilemap(1); + ClearWindowTilemap(WIN_TMHM_INFO_ICONS); + ClearWindowTilemap(WIN_TMHM_INFO); + PutWindowTilemap(WIN_DESCRIPTION); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = Task_BagMenu_HandleInput; } @@ -1229,12 +1288,12 @@ static u8 GetSwitchBagPocketDirection(void) if (gBagMenu->pocketSwitchDisabled) return SWITCH_POCKET_NONE; LRKeys = GetLRKeysPressed(); - if ((JOY_NEW(DPAD_LEFT)) || LRKeys == MENU_L_PRESSED) + if (JOY_NEW(DPAD_LEFT) || LRKeys == MENU_L_PRESSED) { PlaySE(SE_SELECT); return SWITCH_POCKET_LEFT; } - if ((JOY_NEW(DPAD_RIGHT)) || LRKeys == MENU_R_PRESSED) + if (JOY_NEW(DPAD_RIGHT) || LRKeys == MENU_R_PRESSED) { PlaySE(SE_SELECT); return SWITCH_POCKET_RIGHT; @@ -1244,54 +1303,54 @@ static u8 GetSwitchBagPocketDirection(void) static void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) { - if (deltaBagPocketId == 1 && *bagPocketId == POCKETS_COUNT - 1) + if (deltaBagPocketId == MENU_CURSOR_DELTA_RIGHT && *bagPocketId == POCKETS_COUNT - 1) *bagPocketId = 0; - else if (deltaBagPocketId == -1 && *bagPocketId == 0) + else if (deltaBagPocketId == MENU_CURSOR_DELTA_LEFT && *bagPocketId == 0) *bagPocketId = POCKETS_COUNT - 1; else *bagPocketId += deltaBagPocketId; } -static void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) +static void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, bool16 skipEraseList) { s16* data = gTasks[taskId].data; - u8 pocketId; + u8 newPocket; - data[13] = 0; - data[12] = 0; - data[11] = deltaBagPocketId; - if (a3 == 0) + tPocketSwitchState = 0; + tPocketSwitchTimer = 0; + tPocketSwitchDir = deltaBagPocketId; + if (!skipEraseList) { - ClearWindowTilemap(0); - ClearWindowTilemap(1); - DestroyListMenuTask(data[0], &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket], &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]); + ClearWindowTilemap(WIN_ITEM_LIST); + ClearWindowTilemap(WIN_DESCRIPTION); + DestroyListMenuTask(tListTaskId, &gBagPosition.scrollPosition[gBagPosition.pocket], &gBagPosition.cursorPosition[gBagPosition.pocket]); ScheduleBgCopyTilemapToVram(0); - gSprites[gBagMenu->spriteId[2 + (gBagMenu->itemIconSlot ^ 1)]].invisible = TRUE; + gSprites[gBagMenu->spriteIds[ITEMMENUSPRITE_ITEM + (gBagMenu->itemIconSlot ^ 1)]].invisible = TRUE; BagDestroyPocketScrollArrowPair(); } - pocketId = gBagPositionStruct.pocket; - ChangeBagPocketId(&pocketId, deltaBagPocketId); + newPocket = gBagPosition.pocket; + ChangeBagPocketId(&newPocket, deltaBagPocketId); if (deltaBagPocketId == MENU_CURSOR_DELTA_RIGHT) { - BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], gPocketNamesStringsTable[pocketId]); - BagMenu_CopyPocketNameToWindow(0); + PrintPocketNames(gPocketNamesStringsTable[gBagPosition.pocket], gPocketNamesStringsTable[newPocket]); + CopyPocketNameToWindow(0); } else { - BagMenu_PrintPocketNames(gPocketNamesStringsTable[pocketId], gPocketNamesStringsTable[gBagPositionStruct.pocket]); - BagMenu_CopyPocketNameToWindow(8); + PrintPocketNames(gPocketNamesStringsTable[newPocket], gPocketNamesStringsTable[gBagPosition.pocket]); + CopyPocketNameToWindow(8); } - DrawPocketIndicatorSquare(gBagPositionStruct.pocket, FALSE); - DrawPocketIndicatorSquare(pocketId, TRUE); + DrawPocketIndicatorSquare(gBagPosition.pocket, FALSE); + DrawPocketIndicatorSquare(newPocket, TRUE); FillBgTilemapBufferRect_Palette0(2, 11, 14, 2, 15, 16); ScheduleBgCopyTilemapToVram(2); - SetBagVisualPocketId(pocketId, 1); - RemoveBagSprite(1); + SetBagVisualPocketId(newPocket, 1); + RemoveBagSprite(ITEMMENUSPRITE_BALL); AddSwitchPocketRotatingBallSprite(deltaBagPocketId); - SetTaskFuncWithFollowupFunc(taskId, sub_81AC10C, gTasks[taskId].func); + SetTaskFuncWithFollowupFunc(taskId, Task_SwitchBagPocket, gTasks[taskId].func); } -void sub_81AC10C(u8 taskId) +static void Task_SwitchBagPocket(u8 taskId) { s16* data = gTasks[taskId].data; @@ -1299,48 +1358,50 @@ void sub_81AC10C(u8 taskId) { switch (GetSwitchBagPocketDirection()) { - case SWITCH_POCKET_LEFT: - ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); - SwitchTaskToFollowupFunc(taskId); - SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 1); - return; - case SWITCH_POCKET_RIGHT: - ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); - SwitchTaskToFollowupFunc(taskId); - SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 1); - return; + case SWITCH_POCKET_LEFT: + ChangeBagPocketId(&gBagPosition.pocket, tPocketSwitchDir); + SwitchTaskToFollowupFunc(taskId); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, TRUE); + return; + case SWITCH_POCKET_RIGHT: + ChangeBagPocketId(&gBagPosition.pocket, tPocketSwitchDir); + SwitchTaskToFollowupFunc(taskId); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, TRUE); + return; } } - switch (data[13]) + switch (tPocketSwitchState) { - case 0: - sub_81AC23C(data[12]); - if (!(++data[12] & 1)) - { - if (data[11] == 1) - BagMenu_CopyPocketNameToWindow((u8)(data[12] >> 1)); - else - BagMenu_CopyPocketNameToWindow((u8)(8 - (data[12] >> 1))); - } - if (data[12] == 16) - data[13]++; - break; - case 1: - ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); - LoadBagItemListBuffers(gBagPositionStruct.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket], gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]); - PutWindowTilemap(1); - PutWindowTilemap(2); - ScheduleBgCopyTilemapToVram(0); - CreatePocketScrollArrowPair(); - CreatePocketSwitchArrowPair(); - SwitchTaskToFollowupFunc(taskId); + case 0: + DrawItemListBgRow(tPocketSwitchTimer); + if (!(++tPocketSwitchTimer & 1)) + { + if (tPocketSwitchDir == MENU_CURSOR_DELTA_RIGHT) + CopyPocketNameToWindow((u8)(tPocketSwitchTimer >> 1)); + else + CopyPocketNameToWindow((u8)(8 - (tPocketSwitchTimer >> 1))); + } + if (tPocketSwitchTimer == 16) + tPocketSwitchState++; + break; + case 1: + ChangeBagPocketId(&gBagPosition.pocket, tPocketSwitchDir); + LoadBagItemListBuffers(gBagPosition.pocket); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, gBagPosition.scrollPosition[gBagPosition.pocket], gBagPosition.cursorPosition[gBagPosition.pocket]); + PutWindowTilemap(WIN_DESCRIPTION); + PutWindowTilemap(WIN_POCKET_NAME); + ScheduleBgCopyTilemapToVram(0); + CreatePocketScrollArrowPair(); + CreatePocketSwitchArrowPair(); + SwitchTaskToFollowupFunc(taskId); } } -void sub_81AC23C(u8 a) +// The background of the item list is a lighter color than the surrounding menu +// When the pocket is switched this lighter background is redrawn row by row +static void DrawItemListBgRow(u8 y) { - FillBgTilemapBufferRect_Palette0(2, 17, 14, a + 2, 15, 1); + FillBgTilemapBufferRect_Palette0(2, 17, 14, y + 2, 15, 1); ScheduleBgCopyTilemapToVram(2); } @@ -1355,299 +1416,308 @@ static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket) static bool8 CanSwapItems(void) { - if (gBagPositionStruct.location <= ITEMMENULOCATION_BATTLE) + // Swaps can only be done from the field or in battle (as opposed to while selling items, for example) + if (gBagPosition.location == ITEMMENULOCATION_FIELD + || gBagPosition.location == ITEMMENULOCATION_BATTLE) { - u8 temp = gBagPositionStruct.pocket - 2; - if (temp > 1) + // TMHMs and berries are numbered, and so may not be swapped + if (gBagPosition.pocket != TMHM_POCKET + && gBagPosition.pocket != BERRIES_POCKET) return TRUE; } return FALSE; } -void BagMenu_SwapItems(u8 taskId) +static void StartItemSwap(u8 taskId) { s16* data = gTasks[taskId].data; - ListMenuSetUnkIndicatorsStructField(data[0], 16, 1); - data[1] = gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket] + gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; - gBagMenu->itemOriginalLocation = data[1]; - CopyItemName(BagGetItemIdByPocketPosition(gBagPositionStruct.pocket + 1, data[1]), gStringVar1); + ListMenuSetUnkIndicatorsStructField(tListTaskId, 16, 1); + tListPosition = gBagPosition.scrollPosition[gBagPosition.pocket] + gBagPosition.cursorPosition[gBagPosition.pocket]; + gBagMenu->toSwapPos = tListPosition; + CopyItemName(BagGetItemIdByPocketPosition(gBagPosition.pocket + 1, tListPosition), gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); - sub_80D4FEC(data[1]); - BagDestroyPocketSwitchArrowPair(); - BagMenu_PrintCursor_(data[0], 2); + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); + BagMenu_Print(WIN_DESCRIPTION, 1, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); + UpdateItemMenuSwapLinePos(tListPosition); + DestroyPocketSwitchArrowPair(); + BagMenu_PrintCursor(tListTaskId, COLORID_GRAY_CURSOR); gTasks[taskId].func = Task_HandleSwappingItemsInput; } static void Task_HandleSwappingItemsInput(u8 taskId) { s16* data = gTasks[taskId].data; - int input; if (MenuHelpers_CallLinkSomething() != TRUE) { if (JOY_NEW(SELECT_BUTTON)) { PlaySE(SE_SELECT); - ListMenuGetScrollAndRow(data[0], &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket], &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]); - sub_81AC498(taskId); + ListMenuGetScrollAndRow(tListTaskId, &gBagPosition.scrollPosition[gBagPosition.pocket], &gBagPosition.cursorPosition[gBagPosition.pocket]); + DoItemSwap(taskId); } else { - input = ListMenu_ProcessInput(data[0]); - ListMenuGetScrollAndRow(data[0], &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket], &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]); - sub_80D4FC8(0); - sub_80D4FEC(gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]); + s32 input = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &gBagPosition.scrollPosition[gBagPosition.pocket], &gBagPosition.cursorPosition[gBagPosition.pocket]); + SetItemMenuSwapLineInvisibility(FALSE); + UpdateItemMenuSwapLinePos(gBagPosition.cursorPosition[gBagPosition.pocket]); switch (input) { - case LIST_NOTHING_CHOSEN: - break; - case LIST_CANCEL: - PlaySE(SE_SELECT); - if (JOY_NEW(A_BUTTON)) - sub_81AC498(taskId); - else - sub_81AC590(taskId); - break; - default: - PlaySE(SE_SELECT); - sub_81AC498(taskId); + case LIST_NOTHING_CHOSEN: + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + if (JOY_NEW(A_BUTTON)) + DoItemSwap(taskId); + else + CancelItemSwap(taskId); + break; + default: + PlaySE(SE_SELECT); + DoItemSwap(taskId); + break; } } } } -void sub_81AC498(u8 taskId) +static void DoItemSwap(u8 taskId) { s16* data = gTasks[taskId].data; - u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; - u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; + u16* scrollPos = &gBagPosition.scrollPosition[gBagPosition.pocket]; + u16* cursorPos = &gBagPosition.cursorPosition[gBagPosition.pocket]; u16 realPos = (*scrollPos + *cursorPos); - if (data[1] == realPos || data[1] == (realPos - 1)) - sub_81AC590(taskId); + if (tListPosition == realPos || tListPosition == realPos - 1) + { + // Position is the same as the original, cancel + CancelItemSwap(taskId); + } else { - MoveItemSlotInList(gBagPockets[gBagPositionStruct.pocket].itemSlots, data[1], realPos); - gBagMenu->itemOriginalLocation = -1; - DestroyListMenuTask(data[0], scrollPos, cursorPos); - if (data[1] < realPos) - gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]--; - LoadBagItemListBuffers(gBagPositionStruct.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); - sub_80D4FC8(1); + MoveItemSlotInList(gBagPockets[gBagPosition.pocket].itemSlots, tListPosition, realPos); + gBagMenu->toSwapPos = NOT_SWAPPING; + DestroyListMenuTask(tListTaskId, scrollPos, cursorPos); + if (tListPosition < realPos) + gBagPosition.cursorPosition[gBagPosition.pocket]--; + LoadBagItemListBuffers(gBagPosition.pocket); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); + SetItemMenuSwapLineInvisibility(TRUE); CreatePocketSwitchArrowPair(); gTasks[taskId].func = Task_BagMenu_HandleInput; } } -void sub_81AC590(u8 taskId) +static void CancelItemSwap(u8 taskId) { s16* data = gTasks[taskId].data; - u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; - u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; + u16* scrollPos = &gBagPosition.scrollPosition[gBagPosition.pocket]; + u16* cursorPos = &gBagPosition.cursorPosition[gBagPosition.pocket]; - gBagMenu->itemOriginalLocation = -1; - DestroyListMenuTask(data[0], scrollPos, cursorPos); - if (data[1] < (*scrollPos + *cursorPos)) - gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]--; - LoadBagItemListBuffers(gBagPositionStruct.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); - sub_80D4FC8(1); + gBagMenu->toSwapPos = NOT_SWAPPING; + DestroyListMenuTask(tListTaskId, scrollPos, cursorPos); + if (tListPosition < *scrollPos + *cursorPos) + gBagPosition.cursorPosition[gBagPosition.pocket]--; + LoadBagItemListBuffers(gBagPosition.pocket); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); + SetItemMenuSwapLineInvisibility(TRUE); CreatePocketSwitchArrowPair(); gTasks[taskId].func = Task_BagMenu_HandleInput; } -void OpenContextMenu(u8 unused) +static void OpenContextMenu(u8 taskId) { - switch (gBagPositionStruct.location) + switch (gBagPosition.location) { - case ITEMMENULOCATION_BATTLE: - case ITEMMENULOCATION_WALLY: - if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) - { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_BattleUse; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BattleUse); - } - else + case ITEMMENULOCATION_BATTLE: + case ITEMMENULOCATION_WALLY: + if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) + { + gBagMenu->contextMenuItemsPtr = sContextMenuItems_BattleUse; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BattleUse); + } + else + { + gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); + } + break; + case ITEMMENULOCATION_BERRY_BLENDER_CRUSH: + gBagMenu->contextMenuItemsPtr = sContextMenuItems_BerryBlenderCrush; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BerryBlenderCrush); + break; + case ITEMMENULOCATION_APPRENTICE: + if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY) + { + gBagMenu->contextMenuItemsPtr = sContextMenuItems_Apprentice; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Apprentice); + } + else + { + gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); + } + break; + case ITEMMENULOCATION_FAVOR_LADY: + if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY) + { + gBagMenu->contextMenuItemsPtr = sContextMenuItems_FavorLady; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_FavorLady); + } + else + { + gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); + } + break; + case ITEMMENULOCATION_QUIZ_LADY: + if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY) + { + gBagMenu->contextMenuItemsPtr = sContextMenuItems_QuizLady; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_QuizLady); + } + else + { + gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); + } + break; + case ITEMMENULOCATION_PARTY: + case ITEMMENULOCATION_SHOP: + case ITEMMENULOCATION_BERRY_TREE: + case ITEMMENULOCATION_ITEMPC: + default: + if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE) + { + if (gBagPosition.pocket == KEYITEMS_POCKET || !IsHoldingItemAllowed(gSpecialVar_ItemId)) { gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); } - break; - case ITEMMENULOCATION_BERRY_BLENDER_CRUSH: - gBagMenu->contextMenuItemsPtr = sContextMenuItems_BerryBlenderCrush; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BerryBlenderCrush); - break; - case ITEMMENULOCATION_APPRENTICE: - if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY) - { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_Apprentice; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Apprentice); - } else { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); + gBagMenu->contextMenuItemsPtr = sContextMenuItems_Give; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Give); } - break; - case ITEMMENULOCATION_FAVOR_LADY: - if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY) + } + else + { + switch (gBagPosition.pocket) { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_FavorLady; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_FavorLady); - } - else - { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); - } - break; - case ITEMMENULOCATION_QUIZ_LADY: - if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY) - { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_QuizLady; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_QuizLady); - } - else - { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); - } - break; - case ITEMMENULOCATION_PARTY: - case ITEMMENULOCATION_SHOP: - case ITEMMENULOCATION_BERRY_TREE: - case ITEMMENULOCATION_ITEMPC: - default: - if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE) - { - if (gBagPositionStruct.pocket == KEYITEMS_POCKET || !sub_8122148(gSpecialVar_ItemId)) + case ITEMS_POCKET: + gBagMenu->contextMenuItemsPtr = gBagMenu->contextMenuItemsBuffer; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_ItemsPocket); + memcpy(&gBagMenu->contextMenuItemsBuffer, &sContextMenuItems_ItemsPocket, sizeof(sContextMenuItems_ItemsPocket)); + if (ItemIsMail(gSpecialVar_ItemId) == TRUE) + gBagMenu->contextMenuItemsBuffer[0] = ACTION_CHECK; + break; + case KEYITEMS_POCKET: + gBagMenu->contextMenuItemsPtr = gBagMenu->contextMenuItemsBuffer; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_KeyItemsPocket); + memcpy(&gBagMenu->contextMenuItemsBuffer, &sContextMenuItems_KeyItemsPocket, sizeof(sContextMenuItems_KeyItemsPocket)); + if (gSaveBlock1Ptr->registeredItem == gSpecialVar_ItemId) + gBagMenu->contextMenuItemsBuffer[1] = ACTION_DESELECT; + if (gSpecialVar_ItemId == ITEM_MACH_BIKE || gSpecialVar_ItemId == ITEM_ACRO_BIKE) { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_Cancel; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Cancel); - } - else - { - gBagMenu->contextMenuItemsPtr = sContextMenuItems_Give; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Give); - } - } - else - { - switch (gBagPositionStruct.pocket) - { - case ITEMS_POCKET: - gBagMenu->contextMenuItemsPtr = gBagMenu->contextMenuItemsBuffer; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_ItemsPocket); - memcpy(&gBagMenu->contextMenuItemsBuffer, &sContextMenuItems_ItemsPocket, sizeof(sContextMenuItems_ItemsPocket)); - if (ItemIsMail(gSpecialVar_ItemId) == TRUE) - gBagMenu->contextMenuItemsBuffer[0] = ITEMMENUACTION_CHECK; - break; - case KEYITEMS_POCKET: - gBagMenu->contextMenuItemsPtr = gBagMenu->contextMenuItemsBuffer; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_KeyItemsPocket); - memcpy(&gBagMenu->contextMenuItemsBuffer, &sContextMenuItems_KeyItemsPocket, sizeof(sContextMenuItems_KeyItemsPocket)); - if (gSaveBlock1Ptr->registeredItem == gSpecialVar_ItemId) - gBagMenu->contextMenuItemsBuffer[1] = ITEMMENUACTION_DESELECT; - if (gSpecialVar_ItemId == ITEM_MACH_BIKE || gSpecialVar_ItemId == ITEM_ACRO_BIKE) - { - if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE)) - gBagMenu->contextMenuItemsBuffer[0] = ITEMMENUACTION_WALK; - } - break; - case BALLS_POCKET: - gBagMenu->contextMenuItemsPtr = sContextMenuItems_BallsPocket; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BallsPocket); - break; - case TMHM_POCKET: - gBagMenu->contextMenuItemsPtr = sContextMenuItems_TmHmPocket; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_TmHmPocket); - break; - case BERRIES_POCKET: - gBagMenu->contextMenuItemsPtr = sContextMenuItems_BerriesPocket; - gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BerriesPocket); - break; + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE)) + gBagMenu->contextMenuItemsBuffer[0] = ACTION_WALK; } + break; + case BALLS_POCKET: + gBagMenu->contextMenuItemsPtr = sContextMenuItems_BallsPocket; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BallsPocket); + break; + case TMHM_POCKET: + gBagMenu->contextMenuItemsPtr = sContextMenuItems_TmHmPocket; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_TmHmPocket); + break; + case BERRIES_POCKET: + gBagMenu->contextMenuItemsPtr = sContextMenuItems_BerriesPocket; + gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BerriesPocket); + break; } + } } - if (gBagPositionStruct.pocket == TMHM_POCKET) + if (gBagPosition.pocket == TMHM_POCKET) { - ClearWindowTilemap(1); + ClearWindowTilemap(WIN_DESCRIPTION); PrintTMHMMoveData(gSpecialVar_ItemId); - PutWindowTilemap(3); - PutWindowTilemap(4); + PutWindowTilemap(WIN_TMHM_INFO_ICONS); + PutWindowTilemap(WIN_TMHM_INFO); ScheduleBgCopyTilemapToVram(0); } else { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); + BagMenu_Print(WIN_DESCRIPTION, 1, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); } if (gBagMenu->contextMenuNumItems == 1) - sub_81ACAF8(BagMenu_AddWindow(0)); + PrintContextMenuItems(BagMenu_AddWindow(ITEMWIN_1x1)); else if (gBagMenu->contextMenuNumItems == 2) - sub_81ACAF8(BagMenu_AddWindow(1)); + PrintContextMenuItems(BagMenu_AddWindow(ITEMWIN_1x2)); else if (gBagMenu->contextMenuNumItems == 4) - sub_81ACB54(BagMenu_AddWindow(2), 2, 2); + PrintContextMenuItemGrid(BagMenu_AddWindow(ITEMWIN_2x2), 2, 2); else - sub_81ACB54(BagMenu_AddWindow(3), 2, 3); + PrintContextMenuItemGrid(BagMenu_AddWindow(ITEMWIN_2x3), 2, 3); } -void sub_81ACAF8(u8 a) +static void PrintContextMenuItems(u8 windowId) { - AddItemMenuActionTextPrinters(a, 7, 8, 1, 0, 16, gBagMenu->contextMenuNumItems, sItemMenuActions, gBagMenu->contextMenuItemsPtr); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(a, gBagMenu->contextMenuNumItems, 0); + AddItemMenuActionTextPrinters(windowId, 7, 8, 1, 0, 16, gBagMenu->contextMenuNumItems, sItemMenuActions, gBagMenu->contextMenuItemsPtr); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gBagMenu->contextMenuNumItems, 0); } -void sub_81ACB54(u8 a, u8 b, u8 c) +static void PrintContextMenuItemGrid(u8 windowId, u8 columns, u8 rows) { - sub_8198DBC(a, 7, 8, 1, 0x38, b, c, sItemMenuActions, gBagMenu->contextMenuItemsPtr); - sub_8199944(a, 0x38, b, c, 0); + PrintMenuActionGrid(windowId, 7, 8, 1, 56, columns, rows, sItemMenuActions, gBagMenu->contextMenuItemsPtr); + InitMenuActionGrid(windowId, 56, columns, rows, 0); } -void Task_ItemContext_FieldOrBattle(u8 taskId) +static void Task_ItemContext_Normal(u8 taskId) { OpenContextMenu(taskId); + + // Context menu width is never greater than 2 columns, so if + // there are more than 2 items then there are multiple rows if (gBagMenu->contextMenuNumItems <= 2) - gTasks[taskId].func = Task_HandleInBattleItemMenuInput; + gTasks[taskId].func = Task_ItemContext_SingleRow; else - gTasks[taskId].func = Task_HandleOutOfBattleItemMenuInput; + gTasks[taskId].func = Task_ItemContext_MultipleRows; } -void Task_HandleInBattleItemMenuInput(u8 taskId) +static void Task_ItemContext_SingleRow(u8 taskId) { if (MenuHelpers_CallLinkSomething() != TRUE) { s8 selection = Menu_ProcessInputNoWrap(); switch (selection) { - case MENU_NOTHING_CHOSEN: - break; - case MENU_B_PRESSED: - PlaySE(SE_SELECT); - sItemMenuActions[ITEMMENUACTION_CANCEL].func.void_u8(taskId); - break; - default: - PlaySE(SE_SELECT); - sItemMenuActions[gBagMenu->contextMenuItemsPtr[selection]].func.void_u8(taskId); - break; + case MENU_NOTHING_CHOSEN: + break; + case MENU_B_PRESSED: + PlaySE(SE_SELECT); + sItemMenuActions[ACTION_CANCEL].func.void_u8(taskId); + break; + default: + PlaySE(SE_SELECT); + sItemMenuActions[gBagMenu->contextMenuItemsPtr[selection]].func.void_u8(taskId); + break; } } } -void Task_HandleOutOfBattleItemMenuInput(u8 taskId) +static void Task_ItemContext_MultipleRows(u8 taskId) { if (MenuHelpers_CallLinkSomething() != TRUE) { s8 cursorPos = Menu_GetCursorPos(); if (JOY_NEW(DPAD_UP)) { - if (cursorPos > 0 && sub_81ACDFC(cursorPos - 2)) + if (cursorPos > 0 && IsValidContextMenuPos(cursorPos - 2)) { PlaySE(SE_SELECT); ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); @@ -1655,23 +1725,23 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) } else if (JOY_NEW(DPAD_DOWN)) { - if (cursorPos < (gBagMenu->contextMenuNumItems - 2) && sub_81ACDFC(cursorPos + 2)) + if (cursorPos < (gBagMenu->contextMenuNumItems - 2) && IsValidContextMenuPos(cursorPos + 2)) { PlaySE(SE_SELECT); ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); } } - else if ((JOY_NEW(DPAD_LEFT)) || GetLRKeysPressed() == MENU_L_PRESSED) + else if (JOY_NEW(DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED) { - if ((cursorPos & 1) && sub_81ACDFC(cursorPos - 1)) + if ((cursorPos & 1) && IsValidContextMenuPos(cursorPos - 1)) { PlaySE(SE_SELECT); ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); } } - else if ((JOY_NEW(DPAD_RIGHT)) || GetLRKeysPressed() == MENU_R_PRESSED) + else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED) { - if (!(cursorPos & 1) && sub_81ACDFC(cursorPos + 1)) + if (!(cursorPos & 1) && IsValidContextMenuPos(cursorPos + 1)) { PlaySE(SE_SELECT); ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); @@ -1685,50 +1755,48 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - sItemMenuActions[ITEMMENUACTION_CANCEL].func.void_u8(taskId); + sItemMenuActions[ACTION_CANCEL].func.void_u8(taskId); } } } -bool8 sub_81ACDFC(s8 a) +static bool8 IsValidContextMenuPos(s8 cursorPos) { - if (a < 0) + if (cursorPos < 0) return FALSE; - if (a > gBagMenu->contextMenuNumItems) + if (cursorPos > gBagMenu->contextMenuNumItems) return FALSE; - if (gBagMenu->contextMenuItemsPtr[a] == 14) + if (gBagMenu->contextMenuItemsPtr[cursorPos] == ACTION_DUMMY) return FALSE; return TRUE; } -void BagMenu_RemoveSomeWindow(void) +static void RemoveContextWindow(void) { if (gBagMenu->contextMenuNumItems == 1) - BagMenu_RemoveWindow(0); + BagMenu_RemoveWindow(ITEMWIN_1x1); else if (gBagMenu->contextMenuNumItems == 2) - { - BagMenu_RemoveWindow(1); - } + BagMenu_RemoveWindow(ITEMWIN_1x2); else if (gBagMenu->contextMenuNumItems == 4) - { - BagMenu_RemoveWindow(2); - } + BagMenu_RemoveWindow(ITEMWIN_2x2); else - BagMenu_RemoveWindow(3); + BagMenu_RemoveWindow(ITEMWIN_2x3); } -void ItemMenu_UseOutOfBattle(u8 taskId) +static void ItemMenu_UseOutOfBattle(u8 taskId) { if (ItemId_GetFieldFunc(gSpecialVar_ItemId)) { - BagMenu_RemoveSomeWindow(); - if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1) - BagMenu_PrintThereIsNoPokemon(taskId); + RemoveContextWindow(); + if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == ITEM_USE_PARTY_MENU) + { + PrintThereIsNoPokemon(taskId); + } else { - FillWindowPixelBuffer(1, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); ScheduleBgCopyTilemapToVram(0); - if (gBagPositionStruct.pocket != BERRIES_POCKET) + if (gBagPosition.pocket != BERRIES_POCKET) ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); else ItemUseOutOfBattle_Berry(taskId); @@ -1736,186 +1804,190 @@ void ItemMenu_UseOutOfBattle(u8 taskId) } } -void ItemMenu_Toss(u8 taskId) +static void ItemMenu_Toss(u8 taskId) { s16* data = gTasks[taskId].data; - BagMenu_RemoveSomeWindow(); + RemoveContextWindow(); tItemCount = 1; - if (data[2] == 1) + if (tQuantity == 1) { - BagMenu_TossItems(taskId); + AskTossItems(taskId); } else { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); - sub_81ABC3C(7); + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); + BagMenu_Print(WIN_DESCRIPTION, 1, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); + AddItemQuantityWindow(ITEMWIN_QUANTITY); gTasks[taskId].func = Task_ChooseHowManyToToss; } } -void BagMenu_TossItems(u8 taskId) +static void AskTossItems(u8 taskId) { s16* data = gTasks[taskId].data; CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, MAX_ITEM_DIGITS); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); - BagMenu_YesNo(taskId, 5, &sYesNoTossFunctions); + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); + BagMenu_Print(WIN_DESCRIPTION, 1, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); + BagMenu_YesNo(taskId, ITEMWIN_YESNO_LOW, &sYesNoTossFunctions); } -void BagMenu_CancelToss(u8 taskId) +static void CancelToss(u8 taskId) { s16* data = gTasks[taskId].data; - BagMenu_PrintDescription(data[1]); - BagMenu_PrintCursor_(data[0], 0); - set_callback3_to_bag(taskId); + PrintItemDescription(tListPosition); + BagMenu_PrintCursor(tListTaskId, COLORID_NORMAL); + ReturnToItemList(taskId); } -void Task_ChooseHowManyToToss(u8 taskId) +static void Task_ChooseHowManyToToss(u8 taskId) { s16* data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&tItemCount, tQuantity) == TRUE) { - PrintItemDepositAmount(gBagMenu->windowPointers[7], tItemCount); + PrintItemQuantity(gBagMenu->windowIds[ITEMWIN_QUANTITY], tItemCount); } else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - BagMenu_RemoveWindow(7); - BagMenu_TossItems(taskId); + BagMenu_RemoveWindow(ITEMWIN_QUANTITY); + AskTossItems(taskId); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - BagMenu_RemoveWindow(7); - BagMenu_CancelToss(taskId); + BagMenu_RemoveWindow(ITEMWIN_QUANTITY); + CancelToss(taskId); } } -void BagMenu_ConfirmToss(u8 taskId) +static void ConfirmToss(u8 taskId) { s16* data = gTasks[taskId].data; CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, MAX_ITEM_DIGITS); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = Task_ActuallyToss; + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); + BagMenu_Print(WIN_DESCRIPTION, 1, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); + gTasks[taskId].func = Task_RemoveItemFromBag; } -void Task_ActuallyToss(u8 taskId) +// Remove selected item(s) from the bag and update list +// For when items are tossed or deposited +static void Task_RemoveItemFromBag(u8 taskId) { s16* data = gTasks[taskId].data; - u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; - u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; + u16* scrollPos = &gBagPosition.scrollPosition[gBagPosition.pocket]; + u16* cursorPos = &gBagPosition.cursorPosition[gBagPosition.pocket]; if (JOY_NEW(A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); RemoveBagItem(gSpecialVar_ItemId, tItemCount); - DestroyListMenuTask(data[0], scrollPos, cursorPos); - UpdatePocketItemList(gBagPositionStruct.pocket); - SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); - LoadBagItemListBuffers(gBagPositionStruct.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); + DestroyListMenuTask(tListTaskId, scrollPos, cursorPos); + UpdatePocketItemList(gBagPosition.pocket); + UpdatePocketListPosition(gBagPosition.pocket); + LoadBagItemListBuffers(gBagPosition.pocket); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); ScheduleBgCopyTilemapToVram(0); - set_callback3_to_bag(taskId); + ReturnToItemList(taskId); } } -void ItemMenu_Register(u8 taskId) +static void ItemMenu_Register(u8 taskId) { s16* data = gTasks[taskId].data; - u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; - u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; + u16* scrollPos = &gBagPosition.scrollPosition[gBagPosition.pocket]; + u16* cursorPos = &gBagPosition.cursorPosition[gBagPosition.pocket]; if (gSaveBlock1Ptr->registeredItem == gSpecialVar_ItemId) gSaveBlock1Ptr->registeredItem = 0; else gSaveBlock1Ptr->registeredItem = gSpecialVar_ItemId; - DestroyListMenuTask(data[0], scrollPos, cursorPos); - LoadBagItemListBuffers(gBagPositionStruct.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); + DestroyListMenuTask(tListTaskId, scrollPos, cursorPos); + LoadBagItemListBuffers(gBagPosition.pocket); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); ScheduleBgCopyTilemapToVram(0); ItemMenu_Cancel(taskId); } -void ItemMenu_Give(u8 taskId) +static void ItemMenu_Give(u8 taskId) { - BagMenu_RemoveSomeWindow(); - if (!itemid_80BF6D8_mail_related(gSpecialVar_ItemId)) + RemoveContextWindow(); + if (!IsWritingMailAllowed(gSpecialVar_ItemId)) { - DisplayItemMessage(taskId, 1, gText_CantWriteMail, sub_81AD350); + DisplayItemMessage(taskId, 1, gText_CantWriteMail, HandleErrorMessage); } else if (!ItemId_GetImportance(gSpecialVar_ItemId)) { if (CalculatePlayerPartyCount() == 0) - BagMenu_PrintThereIsNoPokemon(taskId); + { + PrintThereIsNoPokemon(taskId); + } else { - gBagMenu->exitCallback = CB2_ChooseMonToGiveItem; + gBagMenu->newScreenCallback = CB2_ChooseMonToGiveItem; Task_FadeAndCloseBagMenu(taskId); } } else { - BagMenu_PrintItemCantBeHeld(taskId); + PrintItemCantBeHeld(taskId); } } -void BagMenu_PrintThereIsNoPokemon(u8 taskId) +static void PrintThereIsNoPokemon(u8 taskId) { - DisplayItemMessage(taskId, 1, gText_NoPokemon, sub_81AD350); + DisplayItemMessage(taskId, 1, gText_NoPokemon, HandleErrorMessage); } -static void BagMenu_PrintItemCantBeHeld(u8 taskId) +static void PrintItemCantBeHeld(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld); - DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD350); + DisplayItemMessage(taskId, 1, gStringVar4, HandleErrorMessage); } -void sub_81AD350(u8 taskId) +static void HandleErrorMessage(u8 taskId) { if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - BagMenu_InitListsMenu(taskId); + CloseItemMessage(taskId); } } -void ItemMenu_CheckTag(u8 taskId) +static void ItemMenu_CheckTag(u8 taskId) { - gBagMenu->exitCallback = DoBerryTagScreen; + gBagMenu->newScreenCallback = DoBerryTagScreen; Task_FadeAndCloseBagMenu(taskId); } -void ItemMenu_Cancel(u8 taskId) +static void ItemMenu_Cancel(u8 taskId) { s16* data = gTasks[taskId].data; - BagMenu_RemoveSomeWindow(); - BagMenu_PrintDescription(data[1]); + RemoveContextWindow(); + PrintItemDescription(tListPosition); ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(1); - BagMenu_PrintCursor_(data[0], 0); - set_callback3_to_bag(taskId); + BagMenu_PrintCursor(tListTaskId, COLORID_NORMAL); + ReturnToItemList(taskId); } -void ItemMenu_UseInBattle(u8 taskId) +static void ItemMenu_UseInBattle(u8 taskId) { if (ItemId_GetBattleFunc(gSpecialVar_ItemId)) { - BagMenu_RemoveSomeWindow(); + RemoveContextWindow(); ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId); } } @@ -1925,39 +1997,40 @@ void CB2_ReturnToBagMenuPocket(void) GoToBagMenu(ITEMMENULOCATION_LAST, POCKETS_COUNT, NULL); } -void Task_ItemContext_FieldGive(u8 taskId) +static void Task_ItemContext_GiveToParty(u8 taskId) { - if (!itemid_80BF6D8_mail_related(gSpecialVar_ItemId)) + if (!IsWritingMailAllowed(gSpecialVar_ItemId)) { - DisplayItemMessage(taskId, 1, gText_CantWriteMail, sub_81AD350); + DisplayItemMessage(taskId, 1, gText_CantWriteMail, HandleErrorMessage); } - else if (!sub_8122148(gSpecialVar_ItemId)) + else if (!IsHoldingItemAllowed(gSpecialVar_ItemId)) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeldHere); - DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD350); + DisplayItemMessage(taskId, 1, gStringVar4, HandleErrorMessage); } - else if (gBagPositionStruct.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId)) + else if (gBagPosition.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId)) { Task_FadeAndCloseBagMenu(taskId); } else { - BagMenu_PrintItemCantBeHeld(taskId); + PrintItemCantBeHeld(taskId); } } -void Task_ItemContext_ItemPC_2(u8 taskId) +// Selected item to give to a Pokémon in PC storage +static void Task_ItemContext_GiveToPC(u8 taskId) { if (ItemIsMail(gSpecialVar_ItemId) == TRUE) - DisplayItemMessage(taskId, 1, gText_CantWriteMail, sub_81AD350); - else if (gBagPositionStruct.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId)) + DisplayItemMessage(taskId, 1, gText_CantWriteMail, HandleErrorMessage); + else if (gBagPosition.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId)) gTasks[taskId].func = Task_FadeAndCloseBagMenu; else - BagMenu_PrintItemCantBeHeld(taskId); + PrintItemCantBeHeld(taskId); } -#define tUsingRegisteredKeyItem data[3] +#define tUsingRegisteredKeyItem data[3] // See usage in item_use.c bool8 UseRegisteredKeyItemOnField(void) { @@ -1973,7 +2046,7 @@ bool8 UseRegisteredKeyItemOnField(void) { ScriptContext2_Enable(); FreezeObjectEvents(); - sub_808B864(); + PlayerFreeze(); sub_808BCF4(); gSpecialVar_ItemId = gSaveBlock1Ptr->registeredItem; taskId = CreateTask(ItemId_GetFieldFunc(gSaveBlock1Ptr->registeredItem), 8); @@ -1991,7 +2064,7 @@ bool8 UseRegisteredKeyItemOnField(void) #undef tUsingRegisteredKeyItem -void Task_ItemContext_Sell(u8 taskId) +static void Task_ItemContext_Sell(u8 taskId) { s16* data = gTasks[taskId].data; @@ -1999,12 +2072,12 @@ void Task_ItemContext_Sell(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar2); StringExpandPlaceholders(gStringVar4, gText_CantBuyKeyItem); - DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gStringVar4, CloseItemMessage); } else { tItemCount = 1; - if (data[2] == 1) + if (tQuantity == 1) { DisplayCurrentMoneyWindow(); DisplaySellItemPriceAndConfirm(taskId); @@ -2013,7 +2086,7 @@ void Task_ItemContext_Sell(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar2); StringExpandPlaceholders(gStringVar4, gText_HowManyToSell); - DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD730); + DisplayItemMessage(taskId, 1, gStringVar4, InitSellHowManyInput); } } } @@ -2024,114 +2097,114 @@ static void DisplaySellItemPriceAndConfirm(u8 taskId) ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount, STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_ICanPayVar1); - DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD6E4); + DisplayItemMessage(taskId, 1, gStringVar4, AskSellItems); } -void sub_81AD6E4(u8 taskId) +static void AskSellItems(u8 taskId) { - BagMenu_YesNo(taskId, 6, &sYesNoSellItemFunctions); + BagMenu_YesNo(taskId, ITEMWIN_YESNO_HIGH, &sYesNoSellItemFunctions); } -void BagMenu_CancelSell(u8 taskId) +static void CancelSell(u8 taskId) { s16* data = gTasks[taskId].data; RemoveMoneyWindow(); - BagMenu_RemoveBagItemMessageindow(4); - BagMenu_PrintCursor_(data[0], 0); - set_callback3_to_bag(taskId); + RemoveItemMessageWindow(ITEMWIN_MESSAGE); + BagMenu_PrintCursor(tListTaskId, COLORID_NORMAL); + ReturnToItemList(taskId); } -void sub_81AD730(u8 taskId) +static void InitSellHowManyInput(u8 taskId) { s16* data = gTasks[taskId].data; - u8 windowId = BagMenu_AddWindow(8); + u8 windowId = BagMenu_AddWindow(ITEMWIN_QUANTITY_WIDE); PrintItemSoldAmount(windowId, 1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); DisplayCurrentMoneyWindow(); - gTasks[taskId].func = Task_SellHowManyDialogueHandleInput; + gTasks[taskId].func = Task_ChooseHowManyToSell; } -static void Task_SellHowManyDialogueHandleInput(u8 taskId) +static void Task_ChooseHowManyToSell(u8 taskId) { s16* data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&tItemCount, tQuantity) == TRUE) { - PrintItemSoldAmount(gBagMenu->windowPointers[8], tItemCount, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); + PrintItemSoldAmount(gBagMenu->windowIds[ITEMWIN_QUANTITY_WIDE], tItemCount, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); } else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - BagMenu_RemoveWindow(8); + BagMenu_RemoveWindow(ITEMWIN_QUANTITY_WIDE); DisplaySellItemPriceAndConfirm(taskId); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - BagMenu_PrintCursor_(data[0], 0); + BagMenu_PrintCursor(tListTaskId, COLORID_NORMAL); RemoveMoneyWindow(); - BagMenu_RemoveWindow(8); - BagMenu_RemoveBagItemMessageindow(4); - set_callback3_to_bag(taskId); + BagMenu_RemoveWindow(ITEMWIN_QUANTITY_WIDE); + RemoveItemMessageWindow(ITEMWIN_MESSAGE); + ReturnToItemList(taskId); } } -void BagMenu_ConfirmSell(u8 taskId) +static void ConfirmSell(u8 taskId) { s16* data = gTasks[taskId].data; CopyItemName(gSpecialVar_ItemId, gStringVar2); ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount, STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_TurnedOverVar1ForVar2); - DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_Sell_UpdateItemListAndMoney); + DisplayItemMessage(taskId, 1, gStringVar4, SellItem); } -static void BagMenu_Sell_UpdateItemListAndMoney(u8 taskId) +static void SellItem(u8 taskId) { s16* data = gTasks[taskId].data; - u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; - u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; + u16* scrollPos = &gBagPosition.scrollPosition[gBagPosition.pocket]; + u16* cursorPos = &gBagPosition.cursorPosition[gBagPosition.pocket]; PlaySE(SE_SHOP); RemoveBagItem(gSpecialVar_ItemId, tItemCount); AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); - DestroyListMenuTask(data[0], scrollPos, cursorPos); - UpdatePocketItemList(gBagPositionStruct.pocket); - SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); - LoadBagItemListBuffers(gBagPositionStruct.pocket); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); - BagMenu_PrintCursor_(data[0], 2); - PrintMoneyAmountInMoneyBox(gBagMenu->windowPointers[9], GetMoney(&gSaveBlock1Ptr->money), 0); - gTasks[taskId].func = BagMenu_Sell_WaitForABPress; + DestroyListMenuTask(tListTaskId, scrollPos, cursorPos); + UpdatePocketItemList(gBagPosition.pocket); + UpdatePocketListPosition(gBagPosition.pocket); + LoadBagItemListBuffers(gBagPosition.pocket); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); + BagMenu_PrintCursor(tListTaskId, COLORID_GRAY_CURSOR); + PrintMoneyAmountInMoneyBox(gBagMenu->windowIds[ITEMWIN_MONEY], GetMoney(&gSaveBlock1Ptr->money), 0); + gTasks[taskId].func = WaitAfterItemSell; } -static void BagMenu_Sell_WaitForABPress(u8 taskId) +static void WaitAfterItemSell(u8 taskId) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); RemoveMoneyWindow(); - BagMenu_InitListsMenu(taskId); + CloseItemMessage(taskId); } } -void Task_ItemContext_Deposit(u8 taskId) +static void Task_ItemContext_Deposit(u8 taskId) { s16* data = gTasks[taskId].data; tItemCount = 1; - if (data[2] == 1) + if (tQuantity == 1) { - BagMenu_TryDepositItem(taskId); + TryDepositItem(taskId); } else { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_DepositHowManyVar1); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); - sub_81ABC3C(7); + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); + BagMenu_Print(WIN_DESCRIPTION, 1, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); + AddItemQuantityWindow(ITEMWIN_QUANTITY); gTasks[taskId].func = Task_ChooseHowManyToDeposit; } } @@ -2140,100 +2213,103 @@ static void Task_ChooseHowManyToDeposit(u8 taskId) { s16* data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&tItemCount, tQuantity) == TRUE) { - PrintItemDepositAmount(gBagMenu->windowPointers[7], tItemCount); + PrintItemQuantity(gBagMenu->windowIds[ITEMWIN_QUANTITY], tItemCount); } else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - BagMenu_RemoveWindow(7); - BagMenu_TryDepositItem(taskId); + BagMenu_RemoveWindow(ITEMWIN_QUANTITY); + TryDepositItem(taskId); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - BagMenu_PrintDescription(data[1]); - BagMenu_PrintCursor_(data[0], 0); - BagMenu_RemoveWindow(7); - set_callback3_to_bag(taskId); + PrintItemDescription(tListPosition); + BagMenu_PrintCursor(tListTaskId, COLORID_NORMAL); + BagMenu_RemoveWindow(ITEMWIN_QUANTITY); + ReturnToItemList(taskId); } } -static void BagMenu_TryDepositItem(u8 taskId) +static void TryDepositItem(u8 taskId) { s16* data = gTasks[taskId].data; - FillWindowPixelBuffer(1, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); if (ItemId_GetImportance(gSpecialVar_ItemId)) { - BagMenu_Print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = BagMenu_Deposit_WaitForABPress; + // Can't deposit important items + BagMenu_Print(WIN_DESCRIPTION, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, COLORID_NORMAL); + gTasks[taskId].func = WaitDepositErrorMessage; } else if (AddPCItem(gSpecialVar_ItemId, tItemCount) == TRUE) { + // Successfully deposited CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, MAX_ITEM_DIGITS); StringExpandPlaceholders(gStringVar4, gText_DepositedVar2Var1s); - BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = Task_ActuallyToss; + BagMenu_Print(WIN_DESCRIPTION, 1, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); + gTasks[taskId].func = Task_RemoveItemFromBag; } else { - BagMenu_Print(1, 1, gText_NoRoomForItems, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = BagMenu_Deposit_WaitForABPress; + // No room to deposit + BagMenu_Print(WIN_DESCRIPTION, 1, gText_NoRoomForItems, 3, 1, 0, 0, 0, COLORID_NORMAL); + gTasks[taskId].func = WaitDepositErrorMessage; } } -static void BagMenu_Deposit_WaitForABPress(u8 taskId) +static void WaitDepositErrorMessage(u8 taskId) { s16* data = gTasks[taskId].data; if (JOY_NEW(A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); - BagMenu_PrintDescription(data[1]); - BagMenu_PrintCursor_(data[0], 0); - set_callback3_to_bag(taskId); + PrintItemDescription(tListPosition); + BagMenu_PrintCursor(tListTaskId, COLORID_NORMAL); + ReturnToItemList(taskId); } } -bool8 IsWallysBag(void) +static bool8 IsWallysBag(void) { - if (gBagPositionStruct.location == 10) + if (gBagPosition.location == ITEMMENULOCATION_WALLY) return TRUE; return FALSE; } -void PrepareBagForWallyTutorial(void) +static void PrepareBagForWallyTutorial(void) { u32 i; - sTempWallyBag = AllocZeroed(sizeof(struct TempWallyStruct)); + sTempWallyBag = AllocZeroed(sizeof(*sTempWallyBag)); memcpy(sTempWallyBag->bagPocket_Items, gSaveBlock1Ptr->bagPocket_Items, sizeof(gSaveBlock1Ptr->bagPocket_Items)); memcpy(sTempWallyBag->bagPocket_PokeBalls, gSaveBlock1Ptr->bagPocket_PokeBalls, sizeof(gSaveBlock1Ptr->bagPocket_PokeBalls)); - sTempWallyBag->pocket = gBagPositionStruct.pocket; - for (i = 0; i <= 4; i++) + sTempWallyBag->pocket = gBagPosition.pocket; + for (i = 0; i < POCKETS_COUNT; i++) { - sTempWallyBag->cursorPosition[i] = gBagPositionStruct.cursorPosition[i]; - sTempWallyBag->scrollPosition[i] = gBagPositionStruct.scrollPosition[i]; + sTempWallyBag->cursorPosition[i] = gBagPosition.cursorPosition[i]; + sTempWallyBag->scrollPosition[i] = gBagPosition.scrollPosition[i]; } ClearItemSlots(gSaveBlock1Ptr->bagPocket_Items, BAG_ITEMS_COUNT); ClearItemSlots(gSaveBlock1Ptr->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT); ResetBagScrollPositions(); } -void RestoreBagAfterWallyTutorial(void) +static void RestoreBagAfterWallyTutorial(void) { u32 i; memcpy(gSaveBlock1Ptr->bagPocket_Items, sTempWallyBag->bagPocket_Items, sizeof(sTempWallyBag->bagPocket_Items)); memcpy(gSaveBlock1Ptr->bagPocket_PokeBalls, sTempWallyBag->bagPocket_PokeBalls, sizeof(sTempWallyBag->bagPocket_PokeBalls)); - gBagPositionStruct.pocket = sTempWallyBag->pocket; - for (i = 0; i <= 4; i++) + gBagPosition.pocket = sTempWallyBag->pocket; + for (i = 0; i < POCKETS_COUNT; i++) { - gBagPositionStruct.cursorPosition[i] = sTempWallyBag->cursorPosition[i]; - gBagPositionStruct.scrollPosition[i] = sTempWallyBag->scrollPosition[i]; + gBagPosition.cursorPosition[i] = sTempWallyBag->cursorPosition[i]; + gBagPosition.scrollPosition[i] = sTempWallyBag->scrollPosition[i]; } Free(sTempWallyBag); } @@ -2246,86 +2322,93 @@ void DoWallyTutorialBagMenu(void) GoToBagMenu(ITEMMENULOCATION_WALLY, ITEMS_POCKET, CB2_SetUpReshowBattleScreenAfterMenu2); } -void Task_WallyTutorialBagMenu(u8 taskId) +#define tTimer data[8] +#define WALLY_BAG_DELAY 102 // The number of frames between each action Wally takes in the bag + +static void Task_WallyTutorialBagMenu(u8 taskId) { s16* data = gTasks[taskId].data; if (!gPaletteFade.active) { - switch (data[8]) + switch (tTimer) { - case 0x66: - PlaySE(SE_SELECT); - SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0); - data[8]++; - break; - case 0xCC: - PlaySE(SE_SELECT); - BagMenu_PrintCursor_(data[0], 2); - gSpecialVar_ItemId = ITEM_POKE_BALL; - OpenContextMenu(taskId); - data[8]++; - break; - case 0x132: - PlaySE(SE_SELECT); - BagMenu_RemoveSomeWindow(); - DestroyListMenuTask(data[0], 0, 0); - RestoreBagAfterWallyTutorial(); - Task_FadeAndCloseBagMenu(taskId); - break; - default: - data[8]++; - break; + case WALLY_BAG_DELAY * 1: + PlaySE(SE_SELECT); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, FALSE); + tTimer++; + break; + case WALLY_BAG_DELAY * 2: + PlaySE(SE_SELECT); + BagMenu_PrintCursor(tListTaskId, COLORID_GRAY_CURSOR); + gSpecialVar_ItemId = ITEM_POKE_BALL; + OpenContextMenu(taskId); + tTimer++; + break; + case WALLY_BAG_DELAY * 3: + PlaySE(SE_SELECT); + RemoveContextWindow(); + DestroyListMenuTask(tListTaskId, 0, 0); + RestoreBagAfterWallyTutorial(); + Task_FadeAndCloseBagMenu(taskId); + break; + default: + tTimer++; + break; } } } -#undef tItemCount +#undef tTimer -void unknown_ItemMenu_Show(u8 taskId) +// This action is used to show the Apprentice an item when +// they ask what item they should make their Pokémon hold +static void ItemMenu_Show(u8 taskId) { gSpecialVar_0x8005 = gSpecialVar_ItemId; - gSpecialVar_Result = 1; - BagMenu_RemoveSomeWindow(); + gSpecialVar_Result = TRUE; + RemoveContextWindow(); Task_FadeAndCloseBagMenu(taskId); } -void CB2_ApprenticeExitBagMenu(void) +static void CB2_ApprenticeExitBagMenu(void) { gFieldCallback = Apprentice_EnableBothScriptContexts; SetMainCallback2(CB2_ReturnToField); } -void unknown_ItemMenu_Give2(u8 taskId) +static void ItemMenu_GiveFavorLady(u8 taskId) { RemoveBagItem(gSpecialVar_ItemId, 1); - gSpecialVar_Result = 1; - BagMenu_RemoveSomeWindow(); + gSpecialVar_Result = TRUE; + RemoveContextWindow(); Task_FadeAndCloseBagMenu(taskId); } -void CB2_FavorLadyExitBagMenu(void) +static void CB2_FavorLadyExitBagMenu(void) { gFieldCallback = FieldCallback_FavorLadyEnableScriptContexts; SetMainCallback2(CB2_ReturnToField); } -void unknown_ItemMenu_Confirm2(u8 taskId) +// This action is used to confirm which item to use as +// a prize for a custom quiz with the Lilycove Quiz Lady +static void ItemMenu_ConfirmQuizLady(u8 taskId) { - gSpecialVar_Result = 1; - BagMenu_RemoveSomeWindow(); + gSpecialVar_Result = TRUE; + RemoveContextWindow(); Task_FadeAndCloseBagMenu(taskId); } -void CB2_QuizLadyExitBagMenu(void) +static void CB2_QuizLadyExitBagMenu(void) { gFieldCallback = FieldCallback_QuizLadyEnableScriptContexts; SetMainCallback2(CB2_ReturnToField); } -void BagMenu_PrintPocketNames(const u8 *pocketName1, const u8 *pocketName2) +static void PrintPocketNames(const u8 *pocketName1, const u8 *pocketName2) { - struct WindowTemplate window = {0, 0, 0, 0, 0, 0, 0}; + struct WindowTemplate window = {0}; u16 windowId; int offset; @@ -2334,32 +2417,32 @@ void BagMenu_PrintPocketNames(const u8 *pocketName1, const u8 *pocketName2) windowId = AddWindow(&window); FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); offset = GetStringCenterAlignXOffset(1, pocketName1, 0x40); - BagMenu_Print(windowId, 1, pocketName1, offset, 1, 0, 0, -1, 1); + BagMenu_Print(windowId, 1, pocketName1, offset, 1, 0, 0, TEXT_SPEED_FF, COLORID_POCKET_NAME); if (pocketName2) { offset = GetStringCenterAlignXOffset(1, pocketName2, 0x40); - BagMenu_Print(windowId, 1, pocketName2, offset + 0x40, 1, 0, 0, -1, 1); + BagMenu_Print(windowId, 1, pocketName2, offset + 0x40, 1, 0, 0, TEXT_SPEED_FF, COLORID_POCKET_NAME); } - CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gBagMenu->pocketNameBuffer, 0x400); + CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gBagMenu->pocketNameBuffer, sizeof(gBagMenu->pocketNameBuffer)); RemoveWindow(windowId); } -void BagMenu_CopyPocketNameToWindow(u32 a) +static void CopyPocketNameToWindow(u32 a) { - u8 (* r4)[32][32]; - u8* windowAttribute; + u8 (* tileDataBuffer)[32][32]; + u8* windowTileData; int b; if (a > 8) a = 8; - r4 = &gBagMenu->pocketNameBuffer; - windowAttribute = (u8*)GetWindowAttribute(2, WINDOW_TILE_DATA); - CpuCopy32(r4[0][a], windowAttribute, 0x100); + tileDataBuffer = &gBagMenu->pocketNameBuffer; + windowTileData = (u8*)GetWindowAttribute(2, WINDOW_TILE_DATA); + CpuCopy32(tileDataBuffer[0][a], windowTileData, 0x100); // Top half of pocket name b = a + 16; - CpuCopy32(r4[0][b], windowAttribute + 0x100, 0x100); - CopyWindowToVram(2, 2); + CpuCopy32(tileDataBuffer[0][b], windowTileData + 0x100, 0x100); // Bottom half of pocket name + CopyWindowToVram(WIN_POCKET_NAME, 2); } -void SetupBagMenu_Textboxes(void) +static void LoadBagMenuTextWindows(void) { u8 i; @@ -2369,7 +2452,7 @@ void SetupBagMenu_Textboxes(void) LoadMessageBoxGfx(0, 10, 0xD0); ListMenuLoadStdPalAt(0xC0, 1); LoadPalette(&gUnknown_0860F074, 0xF0, 0x20); - for (i = 0; i < 3; i++) + for (i = 0; i <= WIN_POCKET_NAME; i++) { FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(i); @@ -2378,109 +2461,111 @@ void SetupBagMenu_Textboxes(void) ScheduleBgCopyTilemapToVram(1); } -void BagMenu_Print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIndex) +static void BagMenu_Print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIndex) { AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, sFontColorTable[colorIndex], speed, str); } -//Unused -u8 sub_81AE124(u8 which) +// Unused +static u8 BagMenu_GetWindowId(u8 windowType) { - return gBagMenu->windowPointers[which]; + return gBagMenu->windowIds[windowType]; } -u8 BagMenu_AddWindow(u8 which) +static u8 BagMenu_AddWindow(u8 windowType) { - u8 *ptr = &gBagMenu->windowPointers[which]; - if (*ptr == 0xFF) + u8 *windowId = &gBagMenu->windowIds[windowType]; + if (*windowId == WINDOW_NONE) { - *ptr = AddWindow(&sContextMenuWindowTemplates[which]); - DrawStdFrameWithCustomTileAndPalette(*ptr, 0, 1, 14); + *windowId = AddWindow(&sContextMenuWindowTemplates[windowType]); + DrawStdFrameWithCustomTileAndPalette(*windowId, 0, 1, 14); ScheduleBgCopyTilemapToVram(1); } - return *ptr; + return *windowId; } -void BagMenu_RemoveWindow(u8 which) +static void BagMenu_RemoveWindow(u8 windowType) { - u8 *ptr = &gBagMenu->windowPointers[which]; - if (*ptr != 0xFF) + u8 *windowId = &gBagMenu->windowIds[windowType]; + if (*windowId != WINDOW_NONE) { - ClearStdWindowAndFrameToTransparent(*ptr, FALSE); - ClearWindowTilemap(*ptr); - RemoveWindow(*ptr); + ClearStdWindowAndFrameToTransparent(*windowId, FALSE); + ClearWindowTilemap(*windowId); + RemoveWindow(*windowId); ScheduleBgCopyTilemapToVram(1); - *ptr = 0xFF; + *windowId = WINDOW_NONE; } } -u8 AddItemMessageWindow(u8 which) +static u8 AddItemMessageWindow(u8 windowType) { - u8 *ptr = &gBagMenu->windowPointers[which]; - if (*ptr == 0xFF) - *ptr = AddWindow(&sContextMenuWindowTemplates[which]); - return *ptr; + u8 *windowId = &gBagMenu->windowIds[windowType]; + if (*windowId == WINDOW_NONE) + *windowId = AddWindow(&sContextMenuWindowTemplates[windowType]); + return *windowId; } -void BagMenu_RemoveBagItemMessageindow(u8 which) +static void RemoveItemMessageWindow(u8 windowType) { - u8 *ptr = &gBagMenu->windowPointers[which]; - if (*ptr != 0xFF) + u8 *windowId = &gBagMenu->windowIds[windowType]; + if (*windowId != WINDOW_NONE) { - ClearDialogWindowAndFrameToTransparent(*ptr, FALSE); + ClearDialogWindowAndFrameToTransparent(*windowId, FALSE); // This ClearWindowTilemap call is redundant, since ClearDialogWindowAndFrameToTransparent already calls it. - ClearWindowTilemap(*ptr); - RemoveWindow(*ptr); + ClearWindowTilemap(*windowId); + RemoveWindow(*windowId); ScheduleBgCopyTilemapToVram(1); - *ptr = 0xFF; + *windowId = WINDOW_NONE; } } -void BagMenu_YesNo(u8 a, u8 b, const struct YesNoFuncTable *funcTable) +void BagMenu_YesNo(u8 taskId, u8 windowType, const struct YesNoFuncTable *funcTable) { - CreateYesNoMenuWithCallbacks(a, &sContextMenuWindowTemplates[b], 1, 0, 2, 1, 14, funcTable); + CreateYesNoMenuWithCallbacks(taskId, &sContextMenuWindowTemplates[windowType], 1, 0, 2, 1, 14, funcTable); } static void DisplayCurrentMoneyWindow(void) { - u8 windowId = BagMenu_AddWindow(9); + u8 windowId = BagMenu_AddWindow(ITEMWIN_MONEY); PrintMoneyAmountInMoneyBoxWithBorder(windowId, 1, 14, GetMoney(&gSaveBlock1Ptr->money)); AddMoneyLabelObject(19, 11); } static void RemoveMoneyWindow(void) { - BagMenu_RemoveWindow(9); + BagMenu_RemoveWindow(ITEMWIN_MONEY); RemoveMoneyLabelObject(); } -void BagMenu_PrepareTMHMMoveWindow(void) +static void PrepareTMHMMoveWindow(void) { - FillWindowPixelBuffer(3, PIXEL_FILL(0)); - BlitMenuInfoIcon(3, MENU_INFO_ICON_TYPE, 0, 0); - BlitMenuInfoIcon(3, MENU_INFO_ICON_POWER, 0, 12); - BlitMenuInfoIcon(3, MENU_INFO_ICON_ACCURACY, 0, 24); - BlitMenuInfoIcon(3, MENU_INFO_ICON_PP, 0, 36); - CopyWindowToVram(3, 2); + FillWindowPixelBuffer(WIN_TMHM_INFO_ICONS, PIXEL_FILL(0)); + BlitMenuInfoIcon(WIN_TMHM_INFO_ICONS, MENU_INFO_ICON_TYPE, 0, 0); + BlitMenuInfoIcon(WIN_TMHM_INFO_ICONS, MENU_INFO_ICON_POWER, 0, 12); + BlitMenuInfoIcon(WIN_TMHM_INFO_ICONS, MENU_INFO_ICON_ACCURACY, 0, 24); + BlitMenuInfoIcon(WIN_TMHM_INFO_ICONS, MENU_INFO_ICON_PP, 0, 36); + CopyWindowToVram(WIN_TMHM_INFO_ICONS, 2); } -void PrintTMHMMoveData(u16 itemId) +static void PrintTMHMMoveData(u16 itemId) { u8 i; u16 moveId; const u8* text; - FillWindowPixelBuffer(4, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_TMHM_INFO, PIXEL_FILL(0)); if (itemId == ITEM_NONE) { for (i = 0; i < 4; i++) - BagMenu_Print(4, 1, gText_ThreeDashes, 7, i * 12, 0, 0, -1, 4); - CopyWindowToVram(4, 2); + BagMenu_Print(WIN_TMHM_INFO, 1, gText_ThreeDashes, 7, i * 12, 0, 0, TEXT_SPEED_FF, COLORID_TMHM_INFO); + CopyWindowToVram(WIN_TMHM_INFO, 2); } else { moveId = ItemIdToBattleMoveId(itemId); - BlitMenuInfoIcon(4, gBattleMoves[moveId].type + 1, 0, 0); + BlitMenuInfoIcon(WIN_TMHM_INFO, gBattleMoves[moveId].type + 1, 0, 0); + + // Print TMHM power if (gBattleMoves[moveId].power <= 1) { text = gText_ThreeDashes; @@ -2490,7 +2575,9 @@ void PrintTMHMMoveData(u16 itemId) ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[moveId].power, STR_CONV_MODE_RIGHT_ALIGN, 3); text = gStringVar1; } - BagMenu_Print(4, 1, text, 7, 12, 0, 0, -1, 4); + BagMenu_Print(WIN_TMHM_INFO, 1, text, 7, 12, 0, 0, TEXT_SPEED_FF, COLORID_TMHM_INFO); + + // Print TMHM accuracy if (gBattleMoves[moveId].accuracy == 0) { text = gText_ThreeDashes; @@ -2500,9 +2587,12 @@ void PrintTMHMMoveData(u16 itemId) ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[moveId].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3); text = gStringVar1; } - BagMenu_Print(4, 1, text, 7, 24, 0, 0, -1, 4); + BagMenu_Print(WIN_TMHM_INFO, 1, text, 7, 24, 0, 0, TEXT_SPEED_FF, COLORID_TMHM_INFO); + + // Print TMHM pp ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[moveId].pp, STR_CONV_MODE_RIGHT_ALIGN, 3); - BagMenu_Print(4, 1, gStringVar1, 7, 36, 0, 0, -1, 4); - CopyWindowToVram(4, 2); + BagMenu_Print(WIN_TMHM_INFO, 1, gStringVar1, 7, 36, 0, 0, TEXT_SPEED_FF, COLORID_TMHM_INFO); + + CopyWindowToVram(WIN_TMHM_INFO, 2); } } diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index cc51236c83..c8d1cd8d08 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -11,6 +11,15 @@ #include "window.h" #include "constants/items.h" +enum { + TAG_BAG_GFX = 100, + TAG_ROTATING_BALL_GFX, + TAG_ITEM_ICON, + TAG_ITEM_ICON_ALT, +}; +#define TAG_BERRY_CHECK_CIRCLE_GFX 10000 +#define TAG_BERRY_PIC_PAL 30020 + struct CompressedTilesPal { const u32 *tiles; @@ -128,7 +137,7 @@ const struct CompressedSpritePalette gBagPaletteTable = gBagPalette, TAG_BAG_GFX }; -static const struct SpriteTemplate gBagSpriteTemplate = +static const struct SpriteTemplate sBagSpriteTemplate = { .tileTag = TAG_BAG_GFX, .paletteTag = TAG_BAG_GFX, @@ -189,17 +198,17 @@ static const union AffineAnimCmd *const sRotatingBallAnimCmds_FullRotation[] = sSpriteAffineAnim_RotatingBallRotation2, }; -static const struct SpriteSheet gRotatingBallTable = +static const struct SpriteSheet sRotatingBallTable = { gRotatingBall, 0x80, TAG_ROTATING_BALL_GFX }; -static const struct SpritePalette gRotatingBallPaletteTable = +static const struct SpritePalette sRotatingBallPaletteTable = { gRotatingBall_Pal, TAG_ROTATING_BALL_GFX }; -static const struct SpriteTemplate gRotatingBallSpriteTemplate = +static const struct SpriteTemplate sRotatingBallSpriteTemplate = { .tileTag = TAG_ROTATING_BALL_GFX, .paletteTag = TAG_ROTATING_BALL_GFX, @@ -244,7 +253,7 @@ static const struct OamData sBerryPicRotatingOamData = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_857FBD8[] = +static const union AnimCmd sAnim_BerryPic[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END @@ -252,7 +261,7 @@ static const union AnimCmd sSpriteAnim_857FBD8[] = static const union AnimCmd *const sBerryPicSpriteAnimTable[] = { - sSpriteAnim_857FBD8 + sAnim_BerryPic }; static const struct SpriteFrameImage sBerryPicSpriteImageTable[] = @@ -262,7 +271,7 @@ static const struct SpriteFrameImage sBerryPicSpriteImageTable[] = static const struct SpriteTemplate gBerryPicSpriteTemplate = { - .tileTag = TAG_BERRY_PIC_TILE, + .tileTag = 0xFFFF, .paletteTag = TAG_BERRY_PIC_PAL, .oam = &sBerryPicOamData, .anims = sBerryPicSpriteAnimTable, @@ -301,7 +310,7 @@ static const union AffineAnimCmd *const sBerryPicRotatingAnimCmds[] = static const struct SpriteTemplate gBerryPicRotatingSpriteTemplate = { - .tileTag = TAG_BERRY_PIC_TILE, + .tileTag = 0xFFFF, .paletteTag = TAG_BERRY_PIC_PAL, .oam = &sBerryPicRotatingOamData, .anims = sBerryPicSpriteAnimTable, @@ -409,30 +418,30 @@ static const struct SpriteTemplate gBerryCheckCircleSpriteTemplate = // code void RemoveBagSprite(u8 id) { - u8 *spriteId = &gBagMenu->spriteId[id]; - if (*spriteId != 0xFF) + u8 *spriteId = &gBagMenu->spriteIds[id]; + if (*spriteId != SPRITE_NONE) { - FreeSpriteTilesByTag(id + 100); - FreeSpritePaletteByTag(id + 100); + FreeSpriteTilesByTag(id + TAG_BAG_GFX); + FreeSpritePaletteByTag(id + TAG_BAG_GFX); FreeSpriteOamMatrix(&gSprites[*spriteId]); DestroySprite(&gSprites[*spriteId]); - *spriteId = 0xFF; + *spriteId = SPRITE_NONE; } } void AddBagVisualSprite(u8 bagPocketId) { - u8 *spriteId = &gBagMenu->spriteId[0]; - *spriteId = CreateSprite(&gBagSpriteTemplate, 68, 66, 0); + u8 *spriteId = &gBagMenu->spriteIds[ITEMMENUSPRITE_BAG]; + *spriteId = CreateSprite(&sBagSpriteTemplate, 68, 66, 0); SetBagVisualPocketId(bagPocketId, FALSE); } void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets) { - struct Sprite *sprite = &gSprites[gBagMenu->spriteId[0]]; + struct Sprite *sprite = &gSprites[gBagMenu->spriteIds[ITEMMENUSPRITE_BAG]]; if (isSwitchingPockets) { - sprite->pos2.y = -5; + sprite->y2 = -5; sprite->callback = SpriteCB_BagVisualSwitchingPockets; sprite->data[0] = bagPocketId + 1; StartSpriteAnim(sprite, 0); @@ -445,9 +454,9 @@ void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets) static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite) { - if (sprite->pos2.y != 0) + if (sprite->y2 != 0) { - sprite->pos2.y++; + sprite->y2++; } else { @@ -458,7 +467,7 @@ static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite) void ShakeBagSprite(void) { - struct Sprite *sprite = &gSprites[gBagMenu->spriteId[0]]; + struct Sprite *sprite = &gSprites[gBagMenu->spriteIds[ITEMMENUSPRITE_BAG]]; if (sprite->affineAnimEnded) { StartSpriteAffineAnim(sprite, 1); @@ -477,10 +486,10 @@ static void SpriteCB_ShakeBagSprite(struct Sprite *sprite) void AddSwitchPocketRotatingBallSprite(s16 rotationDirection) { - u8 *spriteId = &gBagMenu->spriteId[1]; - LoadSpriteSheet(&gRotatingBallTable); - LoadSpritePalette(&gRotatingBallPaletteTable); - *spriteId = CreateSprite(&gRotatingBallSpriteTemplate, 16, 16, 0); + u8 *spriteId = &gBagMenu->spriteIds[ITEMMENUSPRITE_BALL]; + LoadSpriteSheet(&sRotatingBallTable); + LoadSpritePalette(&sRotatingBallPaletteTable); + *spriteId = CreateSprite(&sRotatingBallSpriteTemplate, 16, 16, 0); gSprites[*spriteId].data[0] = rotationDirection; } @@ -510,46 +519,47 @@ static void SpriteCB_SwitchPocketRotatingBallContinue(struct Sprite *sprite) sprite->data[3]++; UpdateSwitchPocketRotatingBallCoords(sprite); if (sprite->data[3] == 16) - RemoveBagSprite(1); + RemoveBagSprite(ITEMMENUSPRITE_BALL); } void AddBagItemIconSprite(u16 itemId, u8 id) { - u8 *spriteId = &gBagMenu->spriteId[id + 2]; - if (*spriteId == 0xFF) + u8 *spriteId = &gBagMenu->spriteIds[id + ITEMMENUSPRITE_ITEM]; + if (*spriteId == SPRITE_NONE) { u8 iconSpriteId; - FreeSpriteTilesByTag(id + 102); - FreeSpritePaletteByTag(id + 102); - iconSpriteId = AddItemIconSprite(id + 102, id + 102, itemId); + // Either TAG_ITEM_ICON or TAG_ITEM_ICON_ALT + FreeSpriteTilesByTag(id + TAG_ITEM_ICON); + FreeSpritePaletteByTag(id + TAG_ITEM_ICON); + iconSpriteId = AddItemIconSprite(id + TAG_ITEM_ICON, id + TAG_ITEM_ICON, itemId); if (iconSpriteId != MAX_SPRITES) { *spriteId = iconSpriteId; - gSprites[iconSpriteId].pos2.x = 24; - gSprites[iconSpriteId].pos2.y = 88; + gSprites[iconSpriteId].x2 = 24; + gSprites[iconSpriteId].y2 = 88; } } } void RemoveBagItemIconSprite(u8 id) { - RemoveBagSprite(id + 2); + RemoveBagSprite(id + ITEMMENUSPRITE_ITEM); } -void sub_80D4FAC(void) +void CreateItemMenuSwapLine(void) { - sub_8122344(&gBagMenu->spriteId[4], 8); + CreateSwapLineSprites(&gBagMenu->spriteIds[ITEMMENUSPRITE_SWAP_LINE], ITEMMENU_SWAP_LINE_LENGTH); } -void sub_80D4FC8(u8 arg0) +void SetItemMenuSwapLineInvisibility(bool8 invisible) { - sub_81223FC(&gBagMenu->spriteId[4], 8, arg0); + SetSwapLineSpritesInvisibility(&gBagMenu->spriteIds[ITEMMENUSPRITE_SWAP_LINE], ITEMMENU_SWAP_LINE_LENGTH, invisible); } -void sub_80D4FEC(u8 arg0) +void UpdateItemMenuSwapLinePos(u8 y) { - sub_8122448(&gBagMenu->spriteId[4], 136, 120, (arg0 + 1) * 16); + UpdateSwapLineSpritesPos(&gBagMenu->spriteIds[ITEMMENUSPRITE_SWAP_LINE], ITEMMENU_SWAP_LINE_LENGTH | 0x80, 120, (y + 1) * 16); } static void sub_80D5018(void *mem0, void *mem1) diff --git a/src/item_use.c b/src/item_use.c index f3634f1df1..d5d52b07ac 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -54,7 +54,7 @@ static bool8 ItemfinderCheckForHiddenItems(const struct MapEvents *, u8); static u8 GetDirectionToHiddenItem(s16 distanceX, s16 distanceY); static void PlayerFaceHiddenItem(u8 a); static void CheckForHiddenItemsInMapConnection(u8 taskId); -static void sub_80FDC00(u8 taskId); +static void Task_OpenRegisteredPokeblockCase(u8 taskId); static void ItemUseOnFieldCB_Bike(u8 taskId); static void ItemUseOnFieldCB_Rod(u8); static void ItemUseOnFieldCB_Itemfinder(u8); @@ -70,7 +70,7 @@ static void Task_StartUseRepel(u8 taskId); static void Task_UseRepel(u8 taskId); static void Task_CloseCantUseKeyItemMessage(u8 taskId); static void SetDistanceOfClosestHiddenItem(u8 taskId, s16 x, s16 y); -static void CB2_OpenPokeblockCaseOnField(void); +static void CB2_OpenPokeblockFromBag(void); // EWRAM variables EWRAM_DATA static void(*sItemUseOnFieldCB)(u8 taskId) = NULL; @@ -78,13 +78,13 @@ EWRAM_DATA static void(*sItemUseOnFieldCB)(u8 taskId) = NULL; // Below is set TRUE by UseRegisteredKeyItemOnField #define tUsingRegisteredKeyItem data[3] -// .rodata - +// UB here if an item with type ITEM_USE_MAIL or ITEM_USE_BAG_MENU uses SetUpItemUseCallback +// Never occurs in vanilla, but can occur with improperly created items static const MainCallback sItemUseCallbacks[] = { - CB2_ShowPartyMenuForItemUse, - CB2_ReturnToField, - NULL, + [ITEM_USE_PARTY_MENU - 1] = CB2_ShowPartyMenuForItemUse, + [ITEM_USE_FIELD - 1] = CB2_ReturnToField, + [ITEM_USE_PBLOCK_CASE - 1] = NULL, }; static const u8 sClockwiseDirections[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST}; @@ -92,27 +92,26 @@ static const u8 sClockwiseDirections[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WE static const struct YesNoFuncTable sUseTMHMYesNoFuncTable = { .yesFunc = UseTMHM, - .noFunc = BagMenu_InitListsMenu, + .noFunc = CloseItemMessage, }; -// .text - +#define tEnigmaBerryType data[4] static void SetUpItemUseCallback(u8 taskId) { u8 type; if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY) - type = gTasks[taskId].data[4] - 1; + type = gTasks[taskId].tEnigmaBerryType - 1; else type = ItemId_GetType(gSpecialVar_ItemId) - 1; if (!InBattlePyramid()) { - gBagMenu->exitCallback = sItemUseCallbacks[type]; + gBagMenu->newScreenCallback = sItemUseCallbacks[type]; Task_FadeAndCloseBagMenu(taskId); } else { - gPyramidBagResources->callback2 = sItemUseCallbacks[type]; - CloseBattlePyramidBagAndSetCallback(taskId); + gPyramidBagMenu->newScreenCallback = sItemUseCallbacks[type]; + CloseBattlePyramidBag(taskId); } } @@ -145,7 +144,7 @@ static void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyIte if (!isUsingRegisteredKeyItemOnField) { if (!InBattlePyramid()) - DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gStringVar4, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, Task_CloseBattlePyramidBagMessage); } @@ -191,7 +190,7 @@ static void CB2_CheckMail(void) void ItemUseOutOfBattle_Mail(u8 taskId) { - gBagMenu->exitCallback = CB2_CheckMail; + gBagMenu->newScreenCallback = CB2_CheckMail; Task_FadeAndCloseBagMenu(taskId); } @@ -219,9 +218,9 @@ void ItemUseOutOfBattle_Bike(u8 taskId) static void ItemUseOnFieldCB_Bike(u8 taskId) { - if (!ItemId_GetSecondaryId(gSpecialVar_ItemId)) + if (ItemId_GetSecondaryId(gSpecialVar_ItemId) == MACH_BIKE) GetOnOffBike(PLAYER_AVATAR_FLAG_MACH_BIKE); - else + else // ACRO_BIKE GetOnOffBike(PLAYER_AVATAR_FLAG_ACRO_BIKE); ScriptUnfreezeObjectEvents(); ScriptContext2_Disable(); @@ -616,23 +615,23 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId) } else if (gTasks[taskId].tUsingRegisteredKeyItem != TRUE) { - gBagMenu->exitCallback = CB2_OpenPokeblockCaseOnField; + gBagMenu->newScreenCallback = CB2_OpenPokeblockFromBag; Task_FadeAndCloseBagMenu(taskId); } else { - gFieldCallback = sub_80AF6D4; + gFieldCallback = FieldCB_ReturnToFieldNoScript; FadeScreen(FADE_TO_BLACK, 0); - gTasks[taskId].func = sub_80FDC00; + gTasks[taskId].func = Task_OpenRegisteredPokeblockCase; } } -static void CB2_OpenPokeblockCaseOnField(void) +static void CB2_OpenPokeblockFromBag(void) { OpenPokeblockCase(PBLOCK_CASE_FIELD, CB2_ReturnToBagMenuPocket); } -static void sub_80FDC00(u8 taskId) +static void Task_OpenRegisteredPokeblockCase(u8 taskId) { if (!gPaletteFade.active) { @@ -649,7 +648,7 @@ void ItemUseOutOfBattle_CoinCase(u8 taskId) if (!gTasks[taskId].tUsingRegisteredKeyItem) { - DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gStringVar4, CloseItemMessage); } else { @@ -664,7 +663,7 @@ void ItemUseOutOfBattle_PowderJar(u8 taskId) if (!gTasks[taskId].tUsingRegisteredKeyItem) { - DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gStringVar4, CloseItemMessage); } else { @@ -678,7 +677,7 @@ void ItemUseOutOfBattle_Berry(u8 taskId) { sItemUseOnFieldCB = ItemUseOnFieldCB_Berry; gFieldCallback = FieldCB_UseItemOnField; - gBagMenu->exitCallback = CB2_ReturnToField; + gBagMenu->newScreenCallback = CB2_ReturnToField; Task_FadeAndCloseBagMenu(taskId); } else @@ -803,7 +802,7 @@ static void Task_ShowTMHMContainedMessage(u8 taskId) static void UseTMHMYesNo(u8 taskId) { - BagMenu_YesNo(taskId, 6, &sUseTMHMYesNoFuncTable); + BagMenu_YesNo(taskId, ITEMWIN_YESNO_HIGH, &sUseTMHMYesNoFuncTable); } static void UseTMHM(u8 taskId) @@ -820,12 +819,12 @@ static void RemoveUsedItem(void) if (!InBattlePyramid()) { UpdatePocketItemList(ItemId_GetPocket(gSpecialVar_ItemId)); - SetInitialScrollAndCursorPositions(ItemId_GetPocket(gSpecialVar_ItemId)); + UpdatePocketListPosition(ItemId_GetPocket(gSpecialVar_ItemId)); } else { - sub_81C5924(); - sub_81C59BC(); + UpdatePyramidBagList(); + UpdatePyramidBagCursorPos(); } } @@ -834,7 +833,7 @@ void ItemUseOutOfBattle_Repel(u8 taskId) if (VarGet(VAR_REPEL_STEP_COUNT) == 0) gTasks[taskId].func = Task_StartUseRepel; else if (!InBattlePyramid()) - DisplayItemMessage(taskId, 1, gText_RepelEffectsLingered, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gText_RepelEffectsLingered, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, gText_RepelEffectsLingered, Task_CloseBattlePyramidBagMessage); } @@ -858,7 +857,7 @@ static void Task_UseRepel(u8 taskId) VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); RemoveUsedItem(); if (!InBattlePyramid()) - DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gStringVar4, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_CloseBattlePyramidBagMessage); } @@ -870,7 +869,7 @@ static void Task_UsedBlackWhiteFlute(u8 taskId) { PlaySE(SE_GLASS_FLUTE); if (!InBattlePyramid()) - DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gStringVar4, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_CloseBattlePyramidBagMessage); } @@ -912,7 +911,7 @@ static void ItemUseOnFieldCB_EscapeRope(u8 taskId) bool8 CanUseDigOrEscapeRopeOnCurMap(void) { - if (gMapHeader.flags & MAP_ALLOW_ESCAPING) + if (gMapHeader.allowEscaping) return TRUE; else return FALSE; @@ -945,7 +944,7 @@ void ItemUseInBattle_PokeBall(u8 taskId) static const u8 textCantThrowPokeBall[] = _("Cannot throw a ball!\nThere are two pokemon out there!\p"); if (!InBattlePyramid()) - DisplayItemMessage(taskId, 1, textCantThrowPokeBall, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, textCantThrowPokeBall, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, textCantThrowPokeBall, Task_CloseBattlePyramidBagMessage); } @@ -955,7 +954,7 @@ void ItemUseInBattle_PokeBall(u8 taskId) static const u8 textCantThrowPokeBall[] = _("Cannot throw a ball!\p"); if (!InBattlePyramid()) - DisplayItemMessage(taskId, 1, textCantThrowPokeBall, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, textCantThrowPokeBall, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, textCantThrowPokeBall, Task_CloseBattlePyramidBagMessage); } @@ -965,12 +964,12 @@ void ItemUseInBattle_PokeBall(u8 taskId) if (!InBattlePyramid()) Task_FadeAndCloseBagMenu(taskId); else - CloseBattlePyramidBagAndSetCallback(taskId); + CloseBattlePyramidBag(taskId); } else { if (!InBattlePyramid()) - DisplayItemMessage(taskId, 1, gText_BoxFull, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gText_BoxFull, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, gText_BoxFull, Task_CloseBattlePyramidBagMessage); } @@ -983,7 +982,7 @@ static void Task_CloseStatIncreaseMessage(u8 taskId) if (!InBattlePyramid()) Task_FadeAndCloseBagMenu(taskId); else - CloseBattlePyramidBagAndSetCallback(taskId); + CloseBattlePyramidBag(taskId); } } @@ -1008,7 +1007,7 @@ void ItemUseInBattle_StatIncrease(u8 taskId) if (ExecuteTableBasedItemEffect(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE) { if (!InBattlePyramid()) - DisplayItemMessage(taskId, 1, gText_WontHaveEffect, BagMenu_InitListsMenu); + DisplayItemMessage(taskId, 1, gText_WontHaveEffect, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, gText_WontHaveEffect, Task_CloseBattlePyramidBagMessage); } @@ -1023,13 +1022,13 @@ static void ItemUseInBattle_ShowPartyMenu(u8 taskId) { if (!InBattlePyramid()) { - gBagMenu->exitCallback = ChooseMonForInBattleItem; + gBagMenu->newScreenCallback = ChooseMonForInBattleItem; Task_FadeAndCloseBagMenu(taskId); } else { - gPyramidBagResources->callback2 = ChooseMonForInBattleItem; - CloseBattlePyramidBagAndSetCallback(taskId); + gPyramidBagMenu->newScreenCallback = ChooseMonForInBattleItem; + CloseBattlePyramidBag(taskId); } } @@ -1062,7 +1061,7 @@ void ItemUseInBattle_Escape(u8 taskId) if (!InBattlePyramid()) DisplayItemMessage(taskId, 1, gStringVar4, Task_FadeAndCloseBagMenu); else - DisplayItemMessageInBattlePyramid(taskId, gStringVar4, CloseBattlePyramidBagAndSetCallback); + DisplayItemMessageInBattlePyramid(taskId, gStringVar4, CloseBattlePyramidBag); } else { @@ -1087,28 +1086,28 @@ void ItemUseOutOfBattle_EnigmaBerry(u8 taskId) case ITEM_EFFECT_SPDEF_EV: case ITEM_EFFECT_SPEED_EV: case ITEM_EFFECT_DEF_EV: - gTasks[taskId].data[4] = 1; + gTasks[taskId].tEnigmaBerryType = ITEM_USE_PARTY_MENU; ItemUseOutOfBattle_Medicine(taskId); break; case ITEM_EFFECT_SACRED_ASH: - gTasks[taskId].data[4] = 1; + gTasks[taskId].tEnigmaBerryType = ITEM_USE_PARTY_MENU; ItemUseOutOfBattle_SacredAsh(taskId); break; case ITEM_EFFECT_RAISE_LEVEL: - gTasks[taskId].data[4] = 1; + gTasks[taskId].tEnigmaBerryType = ITEM_USE_PARTY_MENU; ItemUseOutOfBattle_RareCandy(taskId); break; case ITEM_EFFECT_PP_UP: case ITEM_EFFECT_PP_MAX: - gTasks[taskId].data[4] = 1; + gTasks[taskId].tEnigmaBerryType = ITEM_USE_PARTY_MENU; ItemUseOutOfBattle_PPUp(taskId); break; case ITEM_EFFECT_HEAL_PP: - gTasks[taskId].data[4] = 1; + gTasks[taskId].tEnigmaBerryType = ITEM_USE_PARTY_MENU; ItemUseOutOfBattle_PPRecovery(taskId); break; default: - gTasks[taskId].data[4] = 4; + gTasks[taskId].tEnigmaBerryType = ITEM_USE_BAG_MENU; ItemUseOutOfBattle_CannotUse(taskId); break; } diff --git a/src/librfu_intr.c b/src/librfu_intr.c index 1361be40ec..19ea60b067 100644 --- a/src/librfu_intr.c +++ b/src/librfu_intr.c @@ -148,11 +148,7 @@ static void sio32intr_clock_slave(void) { u32 regSIODATA32; u32 r0; - #ifndef NONMATCHING - register u32 reqLen asm("r2"); - #else - u32 reqLen; - #endif + u32 reqLen; gSTWIStatus->timerActive = 0; STWI_set_timer_in_RAM(100); @@ -165,10 +161,14 @@ static void sio32intr_clock_slave(void) ((u32*)gSTWIStatus->rxPacket)[0] = regSIODATA32; gSTWIStatus->reqNext = 1; r0 = 0x99660000; - if ((regSIODATA32 >> 16) == (r0 >> 16)) + // variable reuse required + reqLen = (regSIODATA32 >> 16); + if (reqLen == (r0 >> 16)) { - gSTWIStatus->reqLength = reqLen = regSIODATA32 >> 8; - gSTWIStatus->reqActiveCommand = regSIODATA32; + // only reqLen = regSIODATA32 >> 8 is needed to match, but it looks a bit + // more consistent when both lines update the variables. Might have been a macro? + gSTWIStatus->reqLength = reqLen = (regSIODATA32 >> 8); + gSTWIStatus->reqActiveCommand = reqLen = (regSIODATA32 >> 0); if (gSTWIStatus->reqLength == 0) { if ( diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index fe1d108347..309fc4eadb 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -1425,35 +1425,36 @@ static u16 rfu_STC_setSendData_org(u8 ni_or_uni, u8 bmSendSlot, u8 subFrameSize, sending = ni_or_uni & 0x20; if (sending || ni_or_uni == 0x40) { - u8 *dataType_p; // a hack to swap instructions - slotStatus_NI = gRfuSlotStatusNI[bm_slot_id]; slotStatus_UNI = NULL; slotStatus_NI->send.errorCode = 0; - *slotStatus_NI->send.now_p = dataType_p = &slotStatus_NI->send.dataType; + slotStatus_NI->send.now_p[0] = &slotStatus_NI->send.dataType; slotStatus_NI->send.remainSize = 7; slotStatus_NI->send.bmSlotOrg = bmSendSlot; slotStatus_NI->send.bmSlot = bmSendSlot; slotStatus_NI->send.payloadSize = subFrameSize - frameSize; if (sending != 0) - *dataType_p = 0; + slotStatus_NI->send.dataType = 0; else - *dataType_p = 1; + slotStatus_NI->send.dataType = 1; + slotStatus_NI->send.dataSize = dataSize; slotStatus_NI->send.src = src; slotStatus_NI->send.ack = 0; slotStatus_NI->send.phase = 0; - #ifndef NONMATCHING // to fix r2, r3, r4, r5 register roulette - asm("":::"r2"); - #endif for (i = 0; i < WINDOW_COUNT; ++i) { slotStatus_NI->send.recvAckFlag[i] = 0; slotStatus_NI->send.n[i] = 1; } for (bm_slot_id = 0; bm_slot_id < RFU_CHILD_MAX; ++bm_slot_id) - if ((bmSendSlot >> bm_slot_id) & 1) - gRfuSlotStatusNI[bm_slot_id]->send.failCounter = 0; + { + do + { + if ((bmSendSlot >> bm_slot_id) & 1) + gRfuSlotStatusNI[bm_slot_id]->send.failCounter = 0; + } while (0); + } gRfuLinkStatus->sendSlotNIFlag |= bmSendSlot; *llFrameSize_p -= subFrameSize; slotStatus_NI->send.state = SLOT_STATE_SEND_START; @@ -1549,21 +1550,20 @@ u16 rfu_changeSendTarget(u8 connType, u8 slotStatusIndex, u8 bmNewTgtSlot) u16 rfu_NI_stopReceivingData(u8 slotStatusIndex) { - struct NIComm *NI_comm; u16 imeBak; + struct NIComm *NI_comm; if (slotStatusIndex >= RFU_CHILD_MAX) return ERR_SLOT_NO; NI_comm = &gRfuSlotStatusNI[slotStatusIndex]->recv; imeBak = REG_IME; - ++imeBak; --imeBak; // fix imeBak, NI_comm register swap REG_IME = 0; - if (gRfuSlotStatusNI[slotStatusIndex]->recv.state & SLOT_BUSY_FLAG) + if (NI_comm->state & SLOT_BUSY_FLAG) { - if (gRfuSlotStatusNI[slotStatusIndex]->recv.state == SLOT_STATE_RECV_LAST) - gRfuSlotStatusNI[slotStatusIndex]->recv.state = SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN; + if (NI_comm->state == SLOT_STATE_RECV_LAST) + NI_comm->state = SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN; else - gRfuSlotStatusNI[slotStatusIndex]->recv.state = SLOT_STATE_RECV_FAILED; + NI_comm->state = SLOT_STATE_RECV_FAILED; gRfuLinkStatus->recvSlotNIFlag &= ~(1 << slotStatusIndex); rfu_STC_releaseFrame(slotStatusIndex, 1, NI_comm); } @@ -1724,7 +1724,6 @@ static void rfu_constructSendLLFrame(void) u32 pakcketSize, currSize; u8 i; u8 *llf_p; - struct RfuSlotStatusNI *slotStatusNI; if (gRfuLinkStatus->parentChild != MODE_NEUTRAL && gRfuLinkStatus->sendSlotNIFlag | gRfuLinkStatus->recvSlotNIFlag | gRfuLinkStatus->sendSlotUNIFlag) @@ -1758,9 +1757,6 @@ static void rfu_constructSendLLFrame(void) { u8 *maxSize = llf_p - offsetof(struct RfuFixed, LLFBuffer[1]); - // Does the volatile qualifier make sense? - // It's the same as: - // asm("":::"memory"); pakcketSize = maxSize - *(u8 *volatile *)&gRfuFixed; } } diff --git a/src/librfu_sio32id.c b/src/librfu_sio32id.c index b6623540f2..1c02840e85 100644 --- a/src/librfu_sio32id.c +++ b/src/librfu_sio32id.c @@ -123,34 +123,29 @@ static void Sio32IDIntr(void) { u32 regSIODATA32; u16 delay; -#ifndef NONMATCHING - register u32 rfuSIO32IdUnk0_times_16 asm("r1"); - register u16 negRfuSIO32IdUnk6 asm("r0"); -#else u32 rfuSIO32IdUnk0_times_16; - u16 negRfuSIO32IdUnk6; -#endif regSIODATA32 = REG_SIODATA32; if (gRfuSIO32Id.MS_mode != AGB_CLK_MASTER) REG_SIOCNT |= SIO_ENABLE; - rfuSIO32IdUnk0_times_16 = 16 * gRfuSIO32Id.MS_mode; // to handle side effect of inline asm - rfuSIO32IdUnk0_times_16 = (regSIODATA32 << rfuSIO32IdUnk0_times_16) >> 16; + rfuSIO32IdUnk0_times_16 = (regSIODATA32 << (16 * gRfuSIO32Id.MS_mode)) >> 16; regSIODATA32 = (regSIODATA32 << 16 * (1 - gRfuSIO32Id.MS_mode)) >> 16; if (gRfuSIO32Id.lastId == 0) { - if (rfuSIO32IdUnk0_times_16 == gRfuSIO32Id.recv_id) + u16 backup = rfuSIO32IdUnk0_times_16; + if (backup == gRfuSIO32Id.recv_id) { - if (gRfuSIO32Id.count > 3) + if (gRfuSIO32Id.count < 4) { + backup = (u16)~gRfuSIO32Id.send_id; + if (gRfuSIO32Id.recv_id == backup) + { + if (regSIODATA32 == (u16)~gRfuSIO32Id.recv_id) + ++gRfuSIO32Id.count; + } + } + else gRfuSIO32Id.lastId = regSIODATA32; - } - else if (rfuSIO32IdUnk0_times_16 == (u16)~gRfuSIO32Id.send_id) - { - negRfuSIO32IdUnk6 = ~gRfuSIO32Id.recv_id; - if (regSIODATA32 == negRfuSIO32IdUnk6) - ++gRfuSIO32Id.count; - } } else { diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 011d9fdfdc..6fa8ba4eb4 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -379,7 +379,7 @@ u8 GetQuizAuthor(void) struct LilycoveLadyQuiz *quiz; quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (sub_811F8D8(quiz->correctAnswer) == 0) + if (IsEasyChatAnswerUnlocked(quiz->correctAnswer) == FALSE) { i = quiz->questionId; do @@ -388,7 +388,7 @@ u8 GetQuizAuthor(void) { i = 0; } - } while (sub_811F8D8(sQuizLadyQuizAnswers[i]) == 0); + } while (IsEasyChatAnswerUnlocked(sQuizLadyQuizAnswers[i]) == FALSE); for (j = 0; j < QUIZ_QUESTION_LEN; j ++) { quiz->question[j] = sQuizLadyQuizQuestions[i][j]; @@ -762,25 +762,16 @@ void BufferContestName(u8 *dest, u8 category) StringCopy(dest, sContestNames[category]); } -// used in tv.c to determine sTVShowState for Contest Lady show -// if return val is 1, sTVShowState is 1 -// if return val is 2, sTVShowState is 3 -// if return val is 0, sTVShowState is 2 -u8 sub_818E880(void) +// Used by the Contest Lady's TV show to determine how well she performed +u8 GetContestLadyPokeblockState(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; if (sContestLadyPtr->numGoodPokeblocksGiven >= LILYCOVE_LADY_GIFT_THRESHOLD) - { - return 1; - } + return CONTEST_LADY_GOOD; else if (sContestLadyPtr->numGoodPokeblocksGiven == 0) - { - return 2; - } + return CONTEST_LADY_BAD; else - { - return 0; - } + return CONTEST_LADY_NORMAL; } @@ -814,7 +805,7 @@ void Script_BufferContestLadyCategoryAndMonName(void) void OpenPokeblockCaseForContestLady(void) { - OpenPokeblockCase(3, CB2_ReturnToField); + OpenPokeblockCase(PBLOCK_CASE_GIVE, CB2_ReturnToField); } void SetContestLadyGivenPokeblock(void) diff --git a/src/link.c b/src/link.c index 9fd35a10b6..8a04b53e58 100644 --- a/src/link.c +++ b/src/link.c @@ -41,8 +41,8 @@ struct LinkTestBGInfo { u32 screenBaseBlock; u32 paletteNum; - u32 dummy_8; - u32 dummy_C; + u32 baseChar; + u32 unused; }; static struct BlockTransfer sBlockSend; @@ -97,28 +97,26 @@ struct Link gLink; u8 gLastRecvQueueCount; u16 gLinkSavedIme; -EWRAM_DATA u8 gLinkTestDebugValuesEnabled = 0; -EWRAM_DATA u8 gUnknown_020223BD = 0; +static EWRAM_DATA u8 sLinkTestDebugValuesEnabled = 0; +static EWRAM_DATA u8 sDummyFlag = FALSE; EWRAM_DATA u32 gBerryBlenderKeySendAttempts = 0; EWRAM_DATA u16 gBlockRecvBuffer[MAX_RFU_PLAYERS][BLOCK_BUFFER_SIZE / 2] = {}; EWRAM_DATA u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE] = {}; -EWRAM_DATA bool8 gLinkOpen = FALSE; +static EWRAM_DATA bool8 sLinkOpen = FALSE; EWRAM_DATA u16 gLinkType = 0; -EWRAM_DATA u16 gLinkTimeOutCounter = 0; +static EWRAM_DATA u16 sTimeOutCounter = 0; EWRAM_DATA struct LinkPlayer gLocalLinkPlayer = {}; EWRAM_DATA struct LinkPlayer gLinkPlayers[MAX_RFU_PLAYERS] = {}; -EWRAM_DATA struct LinkPlayer gSavedLinkPlayers[MAX_RFU_PLAYERS] = {}; +static EWRAM_DATA struct LinkPlayer sSavedLinkPlayers[MAX_RFU_PLAYERS] = {}; EWRAM_DATA struct { u32 status; u8 lastRecvQueueCount; u8 lastSendQueueCount; - u8 unk_06; + bool8 disconnected; } sLinkErrorBuffer = {}; static EWRAM_DATA u16 sReadyCloseLinkAttempts = 0; // never read static EWRAM_DATA void *sLinkErrorBgTilemapBuffer = NULL; -// Static ROM declarations - static void InitLocalLinkPlayer(void); static void VBlankCB_LinkError(void); static void CB2_LinkTest(void); @@ -131,7 +129,7 @@ static void LinkCB_BlockSend(void); static void LinkCB_BlockSendEnd(void); static void SetBlockReceivedFlag(u8 who); static u16 LinkTestCalcBlockChecksum(const u16 *src, u16 size); -static void LinkTest_prnthex(u32 pos, u8 a0, u8 a1, u8 a2); +static void LinkTest_PrintHex(u32 pos, u8 a0, u8 a1, u8 a2); static void LinkCB_RequestPlayerDataExchange(void); static void Task_PrintTestData(u8 taskId); @@ -160,15 +158,13 @@ static void DoSend(void); static void StopTimer(void); static void SendRecvDone(void); -// .rodata - static const u16 sWirelessLinkDisplayPal[] = INCBIN_U16("graphics/interface/wireless_link_display.gbapal"); static const u32 sWirelessLinkDisplayGfx[] = INCBIN_U32("graphics/interface/wireless_link_display.4bpp.lz"); static const u32 sWirelessLinkDisplayTilemap[] = INCBIN_U32("graphics/interface/wireless_link_display.bin.lz"); static const u16 sLinkTestDigitsPal[] = INCBIN_U16("graphics/interface/link_test_digits.gbapal"); static const u16 sLinkTestDigitsGfx[] = INCBIN_U16("graphics/interface/link_test_digits.4bpp"); static const u8 sUnusedTransparentWhite[] = _("{HIGHLIGHT TRANSPARENT}{COLOR WHITE}"); -static const u16 s2BlankTilesGfx[] = INCBIN_U16("graphics/interface/blank_1x2.4bpp"); +static const u16 sCommErrorBg_Gfx[] = INCBIN_U16("graphics/interface/comm_error_bg.4bpp"); static const struct BlockRequest sBlockRequests[] = { {gBlockSendBuffer, 200}, {gBlockSendBuffer, 200}, @@ -225,16 +221,14 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { }, DUMMY_WIN_TEMPLATE }; -static const u8 sTextColors[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY }; -static const u8 sUnused_082ED224[] = {0x00, 0xFF, 0xFE, 0xFF, 0x00}; - -// .text +static const u8 sTextColors[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; +static const u8 sUnusedData[] = {0x00, 0xFF, 0xFE, 0xFF, 0x00}; bool8 IsWirelessAdapterConnected(void) { SetWirelessCommType1(); InitRFUAPI(); - if (rfu_LMAN_REQBN_softReset_and_checkID() == 0x8001) + if (rfu_LMAN_REQBN_softReset_and_checkID() == RFU_ID) { rfu_REQ_stopMode(); rfu_waitREQComplete(); @@ -251,13 +245,13 @@ void Task_DestroySelf(u8 taskId) DestroyTask(taskId); } -static void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock, u16 a4) +static void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock, u16 baseChar) { LoadPalette(sLinkTestDigitsPal, paletteNum * 16, 0x20); - DmaCopy16(3, sLinkTestDigitsGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock) + (16 * a4), sizeof sLinkTestDigitsGfx); + DmaCopy16(3, sLinkTestDigitsGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock) + (16 * baseChar), sizeof sLinkTestDigitsGfx); gLinkTestBGInfo.screenBaseBlock = screenBaseBlock; gLinkTestBGInfo.paletteNum = paletteNum; - gLinkTestBGInfo.dummy_8 = a4; + gLinkTestBGInfo.baseChar = baseChar; switch (bgNum) { case 1: @@ -274,17 +268,19 @@ static void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charB SetGpuReg(REG_OFFSET_BG0VOFS + bgNum * 4, 0); } -void sub_80094EC(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock) +// Unused +static void LoadLinkTestBgGfx(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock) { LoadPalette(sLinkTestDigitsPal, paletteNum * 16, 0x20); DmaCopy16(3, sLinkTestDigitsGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock), sizeof sLinkTestDigitsGfx); gLinkTestBGInfo.screenBaseBlock = screenBaseBlock; gLinkTestBGInfo.paletteNum = paletteNum; - gLinkTestBGInfo.dummy_8 = 0; + gLinkTestBGInfo.baseChar = 0; SetGpuReg(sBGControlRegs[bgNum], BGCNT_SCREENBASE(screenBaseBlock) | BGCNT_CHARBASE(charBaseBlock)); } -void LinkTestScreen(void) +// Unused +static void LinkTestScreen(void) { int i; @@ -346,10 +342,9 @@ static void InitLink(void) int i; for (i = 0; i < CMD_LENGTH; i++) - { - gSendCmd[i] = 0xEfff; - } - gLinkOpen = TRUE; + gSendCmd[i] = LINKCMD_NONE; + + sLinkOpen = TRUE; EnableSerial(); } @@ -402,7 +397,7 @@ void CloseLink(void) { LinkRfu_Shutdown(); } - gLinkOpen = FALSE; + sLinkOpen = FALSE; DisableSerial(); } @@ -413,14 +408,14 @@ static void TestBlockTransfer(u8 nothing, u8 is, u8 used) if (sLinkTestLastBlockSendPos != sBlockSend.pos) { - LinkTest_prnthex(sBlockSend.pos, 2, 3, 2); + LinkTest_PrintHex(sBlockSend.pos, 2, 3, 2); sLinkTestLastBlockSendPos = sBlockSend.pos; } for (i = 0; i < MAX_LINK_PLAYERS; i++) { if (sLinkTestLastBlockRecvPos[i] != sBlockRecv[i].pos) { - LinkTest_prnthex(sBlockRecv[i].pos, 2, i + 4, 2); + LinkTest_PrintHex(sBlockRecv[i].pos, 2, i + 4, 2); sLinkTestLastBlockRecvPos[i] = sBlockRecv[i].pos; } } @@ -435,8 +430,8 @@ static void TestBlockTransfer(u8 nothing, u8 is, u8 used) ResetBlockReceivedFlag(i); if (gLinkTestBlockChecksums[i] != 0x0342) { - gLinkTestDebugValuesEnabled = FALSE; - gUnknown_020223BD = FALSE; + sLinkTestDebugValuesEnabled = FALSE; + sDummyFlag = FALSE; } } } @@ -455,7 +450,7 @@ static void LinkTestProcessKeyInput(void) } if (JOY_NEW(L_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(2, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB(2, 0, 0)); } if (JOY_NEW(START_BUTTON)) { @@ -469,7 +464,7 @@ static void LinkTestProcessKeyInput(void) { SetCloseLinkCallback(); } - if (gLinkTestDebugValuesEnabled) + if (sLinkTestDebugValuesEnabled) { SetLinkDebugValues(gMain.vblankCounter2, gLinkCallback ? gLinkVSyncDisabled : gLinkVSyncDisabled | 0x10); } @@ -489,7 +484,7 @@ u16 LinkMain2(const u16 *heldKeys) { u8 i; - if (!gLinkOpen) + if (!sLinkOpen) { return 0; } @@ -555,10 +550,10 @@ static void ProcessRecvCmds(u8 unused) case LINKCMD_BLENDER_SEND_KEYS: gLinkPartnersHeldKeys[i] = gRecvCmds[i][1]; break; - case LINKCMD_0x5555: + case LINKCMD_DUMMY_1: gLinkDummy2 = TRUE; break; - case LINKCMD_0x5566: + case LINKCMD_DUMMY_2: gLinkDummy2 = TRUE; break; case LINKCMD_INIT_BLOCK: @@ -612,7 +607,7 @@ static void ProcessRecvCmds(u8 unused) linkPlayer->neverRead = 0; linkPlayer->progressFlags = 0; } - sub_800B524(linkPlayer); + ConvertLinkPlayerName(linkPlayer); if (strcmp(block->magic1, sASCIIGameFreakInc) != 0 || strcmp(block->magic2, sASCIIGameFreakInc) != 0) { @@ -664,22 +659,19 @@ static void BuildSendCmd(u16 command) gSendCmd[0] = LINKCMD_BLENDER_SEND_KEYS; gSendCmd[1] = gMain.heldKeys; break; - case LINKCMD_0x5555: - gSendCmd[0] = LINKCMD_0x5555; + case LINKCMD_DUMMY_1: + gSendCmd[0] = LINKCMD_DUMMY_1; break; - case LINKCMD_0x6666: - gSendCmd[0] = LINKCMD_0x6666; + case LINKCMD_SEND_EMPTY: + gSendCmd[0] = LINKCMD_SEND_EMPTY; gSendCmd[1] = 0; break; - case LINKCMD_0x7777: + case LINKCMD_SEND_0xEE: { u8 i; - - gSendCmd[0] = LINKCMD_0x7777; + gSendCmd[0] = LINKCMD_SEND_0xEE; for (i = 0; i < 5; i++) - { gSendCmd[i + 1] = 0xEE; - } break; } case LINKCMD_INIT_BLOCK: @@ -690,8 +682,8 @@ static void BuildSendCmd(u16 command) case LINKCMD_BLENDER_NO_PBLOCK_SPACE: gSendCmd[0] = LINKCMD_BLENDER_NO_PBLOCK_SPACE; break; - case LINKCMD_0xAAAB: - gSendCmd[0] = LINKCMD_0xAAAB; + case LINKCMD_SEND_ITEM: + gSendCmd[0] = LINKCMD_SEND_ITEM; gSendCmd[1] = gSpecialVar_ItemId; break; case LINKCMD_SEND_BLOCK_REQ: @@ -702,14 +694,13 @@ static void BuildSendCmd(u16 command) gSendCmd[0] = LINKCMD_READY_CLOSE_LINK; gSendCmd[1] = gReadyCloseLinkType; break; - case LINKCMD_0x5566: - gSendCmd[0] = LINKCMD_0x5566; + case LINKCMD_DUMMY_2: + gSendCmd[0] = LINKCMD_DUMMY_2; break; case LINKCMD_SEND_HELD_KEYS: if (gHeldKeyCodeToSend == 0 || gLinkTransferringData) - { break; - } + gSendCmd[0] = LINKCMD_SEND_HELD_KEYS; gSendCmd[1] = gHeldKeyCodeToSend; break; @@ -819,7 +810,7 @@ bool32 Link_AnyPartnersPlayingFRLG_JP(void) void OpenLinkTimed(void) { sPlayerDataExchangeStatus = EXCHANGE_NOT_STARTED; - gLinkTimeOutCounter = 0; + sTimeOutCounter = 0; OpenLink(); } @@ -892,7 +883,7 @@ u8 GetLinkPlayerDataExchangeStatusTimed(int minPlayers, int maxPlayers) } } } - else if (++gLinkTimeOutCounter > 600) + else if (++sTimeOutCounter > 600) { sPlayerDataExchangeStatus = EXCHANGE_TIMED_OUT; } @@ -909,9 +900,7 @@ bool8 IsLinkPlayerDataExchangeComplete(void) for (i = 0; i < GetLinkPlayerCount(); i++) { if (gLinkPlayers[i].linkType == gLinkPlayers[0].linkType) - { count++; - } } if (count == GetLinkPlayerCount()) { @@ -936,9 +925,7 @@ void ResetLinkPlayers(void) int i; for (i = 0; i <= MAX_LINK_PLAYERS; i++) - { gLinkPlayers[i] = (struct LinkPlayer){}; - } } static void ResetBlockSend(void) @@ -966,9 +953,8 @@ static bool32 InitBlockSend(const void *src, size_t size) else { if (src != gBlockSendBuffer) - { memcpy(gBlockSendBuffer, src, size); - } + sBlockSend.src = gBlockSendBuffer; } BuildSendCmd(LINKCMD_INIT_BLOCK); @@ -980,9 +966,7 @@ static bool32 InitBlockSend(const void *src, size_t size) static void LinkCB_BlockSendBegin(void) { if (++sBlockSendDelayCounter > 2) - { gLinkCallback = LinkCB_BlockSend; - } } static void LinkCB_BlockSend(void) @@ -1020,13 +1004,9 @@ void SetBerryBlenderLinkCallback(void) { gBerryBlenderKeySendAttempts = 0; if (gWirelessCommType) - { Rfu_SetBerryBlenderLinkCallback(); - } else - { gLinkCallback = LinkCB_BerryBlenderSendHeldKeys; - } } // Unused @@ -1044,9 +1024,8 @@ static void SendBerryBlenderNoSpaceForPokeblocks(void) u8 GetMultiplayerId(void) { if (gWirelessCommType == TRUE) - { return Rfu_GetMultiplayerId(); - } + return SIO_MULTI_CNT->id; } @@ -1061,18 +1040,16 @@ u8 bitmask_all_link_players_but_self(void) bool8 SendBlock(u8 unused, const void *src, u16 size) { if (gWirelessCommType == TRUE) - { return Rfu_InitBlockSend(src, size); - } + return InitBlockSend(src, size); } bool8 SendBlockRequest(u8 blockReqType) { if (gWirelessCommType == TRUE) - { return Rfu_SendBlockRequest(blockReqType); - } + if (gLinkCallback == NULL) { gBlockRequestType = blockReqType; @@ -1085,31 +1062,25 @@ bool8 SendBlockRequest(u8 blockReqType) bool8 IsLinkTaskFinished(void) { if (gWirelessCommType == TRUE) - { return IsLinkRfuTaskFinished(); - } + return gLinkCallback == NULL; } u8 GetBlockReceivedStatus(void) { if (gWirelessCommType == TRUE) - { return Rfu_GetBlockReceivedStatus(); - } + return (gBlockReceivedStatus[3] << 3) | (gBlockReceivedStatus[2] << 2) | (gBlockReceivedStatus[1] << 1) | (gBlockReceivedStatus[0] << 0); } static void SetBlockReceivedFlag(u8 who) { if (gWirelessCommType == TRUE) - { Rfu_SetBlockReceivedFlag(who); - } else - { gBlockReceivedStatus[who] = TRUE; - } } void ResetBlockReceivedFlags(void) @@ -1119,16 +1090,12 @@ void ResetBlockReceivedFlags(void) if (gWirelessCommType == TRUE) { for (i = 0; i < MAX_RFU_PLAYERS; i++) - { Rfu_ResetBlockReceivedFlag(i); - } } else { for (i = 0; i < MAX_LINK_PLAYERS; i++) - { gBlockReceivedStatus[i] = FALSE; - } } } @@ -1147,9 +1114,7 @@ void ResetBlockReceivedFlag(u8 who) void CheckShouldAdvanceLinkState(void) { if ((gLinkStatus & LINK_STAT_MASTER) && EXTRACT_PLAYER_COUNT(gLinkStatus) > 1) - { gShouldAdvanceLinkState = 1; - } } static u16 LinkTestCalcBlockChecksum(const u16 *src, u16 size) @@ -1159,92 +1124,90 @@ static u16 LinkTestCalcBlockChecksum(const u16 *src, u16 size) chksum = 0; for (i = 0; i < size / 2; i++) - { chksum += src[i]; - } + return chksum; } -static void LinkTest_prnthexchar(char a0, u8 a1, u8 a2) +static void LinkTest_PrintNumChar(char val, u8 x, u8 y) { u16 *vAddr; vAddr = (u16 *)BG_SCREEN_ADDR(gLinkTestBGInfo.screenBaseBlock); - vAddr[a2 * 32 + a1] = (gLinkTestBGInfo.paletteNum << 12) | (a0 + 1 + gLinkTestBGInfo.dummy_8); + vAddr[y * 32 + x] = (gLinkTestBGInfo.paletteNum << 12) | (val + 1 + gLinkTestBGInfo.baseChar); } -static void LinkTest_prntchar(char a0, u8 a1, u8 a2) +static void LinkTest_PrintChar(char val, u8 x, u8 y) { u16 *vAddr; vAddr = (u16 *)BG_SCREEN_ADDR(gLinkTestBGInfo.screenBaseBlock); - vAddr[a2 * 32 + a1] = (gLinkTestBGInfo.paletteNum << 12) | (a0 + gLinkTestBGInfo.dummy_8); + vAddr[y * 32 + x] = (gLinkTestBGInfo.paletteNum << 12) | (val + gLinkTestBGInfo.baseChar); } -static void LinkTest_prnthex(u32 pos, u8 a0, u8 a1, u8 a2) +static void LinkTest_PrintHex(u32 num, u8 x, u8 y, u8 length) { - char sp[32 / 2]; + char buff[16]; int i; - for (i = 0; i < a2; i++) + for (i = 0; i < length; i++) { - sp[i] = pos & 0xf; - pos >>= 4; + buff[i] = num & 0xF; + num >>= 4; } - for (i = a2 - 1; i >= 0; i--) + for (i = length - 1; i >= 0; i--) { - LinkTest_prnthexchar(sp[i], a0, a1); - a0++; + LinkTest_PrintNumChar(buff[i], x, y); + x++; } } -static void LinkTest_prntint(int a0, u8 a1, u8 a2, u8 a3) +static void LinkTest_PrintInt(int num, u8 x, u8 y, u8 length) { - char sp[32 / 2]; - int sp10; + char buff[16]; + int negX; int i; - sp10 = -1; - if (a0 < 0) + negX = -1; + if (num < 0) { - sp10 = a1; - a0 = -a0; + negX = x; + num = -num; } - for (i = 0; i < a3; i++) + for (i = 0; i < length; i++) { - sp[i] = a0 % 10; - a0 /= 10; + buff[i] = num % 10; + num /= 10; } - for (i = a3 - 1; i >= 0; i--) + for (i = length - 1; i >= 0; i--) { - LinkTest_prnthexchar(sp[i], a1, a2); - a1++; - } - if (sp10 != -1) - { - LinkTest_prnthexchar(*"\n", sp10, a2); + LinkTest_PrintNumChar(buff[i], x, y); + x++; } + + if (negX != -1) + LinkTest_PrintNumChar(*"\n", negX, y); } -static void LinkTest_prntstr(const char *a0, u8 a1, u8 a2) +static void LinkTest_PrintString(const char *str, u8 x, u8 y) { - int r6; + int xOffset; int i; - int r5; + int yOffset; - r5 = 0; - r6 = 0; - for (i = 0; a0[i] != 0; a0++) + yOffset = 0; + xOffset = 0; + for (i = 0; str[i] != 0; str++) { - if (a0[i] == *"\n") + if (str[i] == *"\n") { - r5++; - r6 = 0; + yOffset++; + xOffset = 0; } else { - LinkTest_prntchar(a0[i], a1 + r6, a2 + r5); - r6++; + LinkTest_PrintChar(str[i], x + xOffset, y + yOffset); + xOffset++; } } } @@ -1260,29 +1223,28 @@ static void LinkCB_RequestPlayerDataExchange(void) static void Task_PrintTestData(u8 taskId) { - char sp[32]; + char testTitle[32]; int i; - strcpy(sp, sASCIITestPrint); - LinkTest_prntstr(sp, 5, 2); - LinkTest_prnthex(gShouldAdvanceLinkState, 2, 1, 2); - LinkTest_prnthex(gLinkStatus, 15, 1, 8); - LinkTest_prnthex(gLink.state, 2, 10, 2); - LinkTest_prnthex(EXTRACT_PLAYER_COUNT(gLinkStatus), 15, 10, 2); - LinkTest_prnthex(GetMultiplayerId(), 15, 12, 2); - LinkTest_prnthex(gLastSendQueueCount, 25, 1, 2); - LinkTest_prnthex(gLastRecvQueueCount, 25, 2, 2); - LinkTest_prnthex(GetBlockReceivedStatus(), 15, 5, 2); - LinkTest_prnthex(gLinkDebugSeed, 2, 12, 8); - LinkTest_prnthex(gLinkDebugFlags, 2, 13, 8); - LinkTest_prnthex(GetSioMultiSI(), 25, 5, 1); - LinkTest_prnthex(IsSioMultiMaster(), 25, 6, 1); - LinkTest_prnthex(IsLinkConnectionEstablished(), 25, 7, 1); - LinkTest_prnthex(HasLinkErrorOccurred(), 25, 8, 1); + strcpy(testTitle, sASCIITestPrint); + LinkTest_PrintString(testTitle, 5, 2); + LinkTest_PrintHex(gShouldAdvanceLinkState, 2, 1, 2); + LinkTest_PrintHex(gLinkStatus, 15, 1, 8); + LinkTest_PrintHex(gLink.state, 2, 10, 2); + LinkTest_PrintHex(EXTRACT_PLAYER_COUNT(gLinkStatus), 15, 10, 2); + LinkTest_PrintHex(GetMultiplayerId(), 15, 12, 2); + LinkTest_PrintHex(gLastSendQueueCount, 25, 1, 2); + LinkTest_PrintHex(gLastRecvQueueCount, 25, 2, 2); + LinkTest_PrintHex(GetBlockReceivedStatus(), 15, 5, 2); + LinkTest_PrintHex(gLinkDebugSeed, 2, 12, 8); + LinkTest_PrintHex(gLinkDebugFlags, 2, 13, 8); + LinkTest_PrintHex(GetSioMultiSI(), 25, 5, 1); + LinkTest_PrintHex(IsSioMultiMaster(), 25, 6, 1); + LinkTest_PrintHex(IsLinkConnectionEstablished(), 25, 7, 1); + LinkTest_PrintHex(HasLinkErrorOccurred(), 25, 8, 1); + for (i = 0; i < MAX_LINK_PLAYERS; i++) - { - LinkTest_prnthex(gLinkTestBlockChecksums[i], 10, 4 + i, 4); - } + LinkTest_PrintHex(gLinkTestBlockChecksums[i], 10, 4 + i, 4); } void SetLinkDebugValues(u32 seed, u32 flags) @@ -1298,9 +1260,8 @@ u8 GetSavedLinkPlayerCountAsBitFlags(void) flags = 0; for (i = 0; i < gSavedLinkPlayerCount; i++) - { flags |= (1 << i); - } + return flags; } @@ -1311,9 +1272,8 @@ u8 GetLinkPlayerCountAsBitFlags(void) flags = 0; for (i = 0; i < GetLinkPlayerCount(); i++) - { flags |= (1 << i); - } + return flags; } @@ -1324,9 +1284,7 @@ void SaveLinkPlayers(u8 playerCount) gSavedLinkPlayerCount = playerCount; gSavedMultiplayerId = GetMultiplayerId(); for (i = 0; i < MAX_RFU_PLAYERS; i++) - { - gSavedLinkPlayers[i] = gLinkPlayers[i]; - } + sSavedLinkPlayers[i] = gLinkPlayers[i]; } // The number of players when trading began. This is frequently compared against the @@ -1349,7 +1307,7 @@ bool8 DoesLinkPlayerCountMatchSaved(void) for (i = 0; i < gSavedLinkPlayerCount; i++) { - if (gLinkPlayers[i].trainerId == gSavedLinkPlayers[i].trainerId) + if (gLinkPlayers[i].trainerId == sSavedLinkPlayers[i].trainerId) { if (gLinkType == LINKTYPE_BATTLE_TOWER) { @@ -1375,12 +1333,15 @@ bool8 DoesLinkPlayerCountMatchSaved(void) void ClearSavedLinkPlayers(void) { int i; - - // Clearly not what was meant to be written, but here it is anyway. - for (i = 0; i < 4; i++) - { - CpuSet(&gSavedLinkPlayers[i], NULL, sizeof(struct LinkPlayer)); - } + // The CpuSet loop below is incorrectly writing to NULL + // instead of sSavedLinkPlayers. + // Additionally it's using the wrong array size. +#ifdef UBFIX + memset(sSavedLinkPlayers, 0, sizeof(sSavedLinkPlayers)); +#else + for (i = 0; i < MAX_LINK_PLAYERS; i++) + CpuSet(&sSavedLinkPlayers[i], NULL, sizeof(struct LinkPlayer)); +#endif } void CheckLinkPlayersMatchSaved(void) @@ -1389,8 +1350,8 @@ void CheckLinkPlayersMatchSaved(void) for (i = 0; i < gSavedLinkPlayerCount; i++) { - if (gSavedLinkPlayers[i].trainerId != gLinkPlayers[i].trainerId - || StringCompare(gSavedLinkPlayers[i].name, gLinkPlayers[i].name) != 0) + if (sSavedLinkPlayers[i].trainerId != gLinkPlayers[i].trainerId + || StringCompare(sSavedLinkPlayers[i].name, gLinkPlayers[i].name) != 0) { gLinkErrorOccurred = TRUE; CloseLink(); @@ -1413,9 +1374,8 @@ u8 GetLinkPlayerCount_2(void) bool8 IsLinkMaster(void) { if (gWirelessCommType) - { return Rfu_IsMaster(); - } + return EXTRACT_MASTER(gLinkStatus); } @@ -1489,7 +1449,7 @@ static void LinkCB_WaitCloseLink(void) if (count == linkPlayerCount) { // All ready, close link - gBattleTypeFlags &= ~BATTLE_TYPE_20; + gBattleTypeFlags &= ~BATTLE_TYPE_LINK_IN_BATTLE; gLinkVSyncDisabled = TRUE; CloseLink(); gLinkCallback = NULL; @@ -1551,7 +1511,7 @@ static void LinkCB_WaitCloseLinkWithJP(void) if (count == linkPlayerCount) { // All ready, close link - gBattleTypeFlags &= ~BATTLE_TYPE_20; + gBattleTypeFlags &= ~BATTLE_TYPE_LINK_IN_BATTLE; gLinkVSyncDisabled = TRUE; CloseLink(); gLinkCallback = NULL; @@ -1568,9 +1528,8 @@ void SetLinkStandbyCallback(void) else { if (gLinkCallback == NULL) - { gLinkCallback = LinkCB_Standby; - } + gLinkDummy1 = FALSE; } } @@ -1606,7 +1565,7 @@ static void LinkCB_StandbyForAll(void) static void CheckErrorStatus(void) { - if (gLinkOpen && EXTRACT_LINK_ERRORS(gLinkStatus)) + if (sLinkOpen && EXTRACT_LINK_ERRORS(gLinkStatus)) { if (!gSuppressLinkErrorMessage) { @@ -1620,12 +1579,12 @@ static void CheckErrorStatus(void) } } -void BufferLinkErrorInfo(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, bool8 unk_06) +void BufferLinkErrorInfo(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, bool8 disconnected) { sLinkErrorBuffer.status = status; sLinkErrorBuffer.lastSendQueueCount = lastSendQueueCount; sLinkErrorBuffer.lastRecvQueueCount = lastRecvQueueCount; - sLinkErrorBuffer.unk_06 = unk_06; + sLinkErrorBuffer.disconnected = disconnected; } void CB2_LinkError(void) @@ -1645,16 +1604,15 @@ void CB2_LinkError(void) ScanlineEffect_Stop(); if (gWirelessCommType) { - if (!sLinkErrorBuffer.unk_06) - { + if (!sLinkErrorBuffer.disconnected) gWirelessCommType = 3; - } + ResetLinkRfuGFLayer(); } SetVBlankCallback(VBlankCB_LinkError); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sLinkErrorBgTemplates, ARRAY_COUNT(sLinkErrorBgTemplates)); - sLinkErrorBgTilemapBuffer = tilemapBuffer = malloc(0x800); + sLinkErrorBgTilemapBuffer = tilemapBuffer = malloc(BG_SCREEN_SIZE); SetBgTilemapBuffer(1, tilemapBuffer); if (InitWindows(sLinkErrorWindowTemplates)) { @@ -1680,9 +1638,9 @@ void CB2_LinkError(void) } } -static void sub_800B080(void) +static void ErrorMsg_MoveCloserToPartner(void) { - LoadBgTiles(0, s2BlankTilesGfx, 0x20, 0); + LoadBgTiles(0, sCommErrorBg_Gfx, 0x20, 0); DecompressAndLoadBgGfxUsingHeap(1, sWirelessLinkDisplayGfx, FALSE, 0, 0); CopyToBgTilemapBuffer(1, sWirelessLinkDisplayTilemap, 0, 0); CopyBgTilemapBufferToVram(1); @@ -1697,9 +1655,9 @@ static void sub_800B080(void) CopyWindowToVram(2, 3); } -static void sub_800B138(void) +static void ErrorMsg_CheckConnections(void) { - LoadBgTiles(0, s2BlankTilesGfx, 0x20, 0); + LoadBgTiles(0, sCommErrorBg_Gfx, 0x20, 0); FillWindowPixelBuffer(1, PIXEL_FILL(0)); FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized3(1, 3, 2, 0, sTextColors, 0, gText_CommErrorCheckConnections); @@ -1714,21 +1672,17 @@ static void CB2_PrintErrorMessage(void) switch (gMain.state) { case 00: - if (sLinkErrorBuffer.unk_06) - { - sub_800B080(); - } + // Below is only true for the RFU, so the other error + // type is inferred to be from a wired connection + if (sLinkErrorBuffer.disconnected) + ErrorMsg_MoveCloserToPartner(); else - { - sub_800B138(); - } + ErrorMsg_CheckConnections(); break; case 02: ShowBg(0); - if (sLinkErrorBuffer.unk_06) - { + if (sLinkErrorBuffer.disconnected) ShowBg(1); - } break; case 30: PlaySE(SE_BOO); @@ -1741,13 +1695,9 @@ static void CB2_PrintErrorMessage(void) break; case 130: if (gWirelessCommType == 2) - { AddTextPrinterParameterized3(0, 3, 2, 20, sTextColors, 0, gText_ABtnTitleScreen); - } else if (gWirelessCommType == 1) - { AddTextPrinterParameterized3(0, 3, 2, 20, sTextColors, 0, gText_ABtnRegistrationCounter); - } break; } if (gMain.state == 160) @@ -1758,7 +1708,7 @@ static void CB2_PrintErrorMessage(void) { PlaySE(SE_PIN); gWirelessCommType = 0; - sLinkErrorBuffer.unk_06 = 0; + sLinkErrorBuffer.disconnected = FALSE; sub_81700F8(); } } @@ -1772,10 +1722,9 @@ static void CB2_PrintErrorMessage(void) } } } + if (gMain.state != 160) - { gMain.state++; - } } // TODO: there might be a file boundary here, let's name it @@ -1805,7 +1754,7 @@ bool8 HasLinkErrorOccurred(void) return gLinkErrorOccurred; } -void sub_800B348(void) +void LocalLinkPlayerToBlock(void) { struct LinkPlayerBlock *block; @@ -1826,11 +1775,11 @@ void LinkPlayerFromBlock(u32 who) block = (struct LinkPlayerBlock *)gBlockRecvBuffer[who_]; player = &gLinkPlayers[who_]; *player = block->linkPlayer; - sub_800B524(player); - if (strcmp(block->magic1, sASCIIGameFreakInc) != 0 || strcmp(block->magic2, sASCIIGameFreakInc) != 0) - { + ConvertLinkPlayerName(player); + + if (strcmp(block->magic1, sASCIIGameFreakInc) != 0 + || strcmp(block->magic2, sASCIIGameFreakInc) != 0) SetMainCallback2(CB2_LinkError); - } } bool8 HandleLinkConnection(void) @@ -1842,21 +1791,17 @@ bool8 HandleLinkConnection(void) { gLinkStatus = LinkMain1(&gShouldAdvanceLinkState, gSendCmd, gRecvCmds); LinkMain2(&gMain.heldKeys); - if ((gLinkStatus & LINK_STAT_RECEIVED_NOTHING) && sub_808766C() == TRUE) - { + if ((gLinkStatus & LINK_STAT_RECEIVED_NOTHING) && IsSendingKeysOverCable() == TRUE) return TRUE; - } } else { r4 = sub_8010EC0(); r5 = sub_8010F1C(); - if (sub_808766C() == TRUE) + if (IsSendingKeysOverCable() == TRUE) { if (r4 == TRUE || IsRfuRecvQueueEmpty() || r5) - { return TRUE; - } } } return FALSE; @@ -1865,42 +1810,34 @@ bool8 HandleLinkConnection(void) void SetWirelessCommType1(void) { if (gReceivedRemoteLinkPlayers == 0) - { gWirelessCommType = 1; - } } static void SetWirelessCommType0_Internal(void) { if (gReceivedRemoteLinkPlayers == 0) - { gWirelessCommType = 0; - } } void SetWirelessCommType0(void) { if (gReceivedRemoteLinkPlayers == 0) - { gWirelessCommType = 0; - } } u32 GetLinkRecvQueueLength(void) { if (gWirelessCommType != 0) - { return GetRfuRecvQueueLength(); - } + return gLink.recvQueue.count; } -bool32 sub_800B504(void) +bool32 IsLinkRecvQueueLengthAtLeast3(void) { if (GetLinkRecvQueueLength() > 2) - { return TRUE; - } + return FALSE; } @@ -1910,9 +1847,9 @@ u8 GetWirelessCommType(void) return gWirelessCommType; } -void sub_800B524(struct LinkPlayer *player) +void ConvertLinkPlayerName(struct LinkPlayer *player) { - player->progressFlagsCopy = player->progressFlags; + player->progressFlagsCopy = player->progressFlags; // ? Perhaps relocating for a longer name field ConvertInternationalString(player->name, player->language); } @@ -2420,9 +2357,7 @@ void ResetSendBuffer(void) for (i = 0; i < CMD_LENGTH; i++) { for (j = 0; j < QUEUE_CAPACITY; j++) - { - gLink.sendQueue.data[i][j] = 0xEFFF; - } + gLink.sendQueue.data[i][j] = LINKCMD_NONE; } } @@ -2439,9 +2374,7 @@ void ResetRecvBuffer(void) for (j = 0; j < CMD_LENGTH; j++) { for (k = 0; k < QUEUE_CAPACITY; k++) - { - gLink.recvQueue.data[i][j][k] = 0xEFFF; - } + gLink.recvQueue.data[i][j][k] = LINKCMD_NONE; } } } diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 5e0ef0aa42..6366b97047 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -1380,7 +1380,7 @@ static void WaitAllReadyToCloseLink(void) if (count == playerCount) { // All ready, close link - gBattleTypeFlags &= ~BATTLE_TYPE_20; + gBattleTypeFlags &= ~BATTLE_TYPE_LINK_IN_BATTLE; if (Rfu.parentChild == MODE_CHILD) { Rfu.errorState = 3; @@ -1697,7 +1697,7 @@ static void sub_801084C(u8 taskId) if (AreNoPlayersReceiving()) { ResetBlockReceivedFlags(); - sub_800B348(); + LocalLinkPlayerToBlock(); gTasks[taskId].data[0]++; } break; @@ -1786,7 +1786,7 @@ static void ReceiveRfuLinkPlayers(const struct SioInfo *sioInfo) for (i = 0; i < MAX_RFU_PLAYERS; i++) { gLinkPlayers[i] = sioInfo->linkPlayers[i]; - sub_800B524(gLinkPlayers + i); + ConvertLinkPlayerName(gLinkPlayers + i); } } @@ -1831,7 +1831,7 @@ static void Task_ExchangeLinkPlayers(u8 taskId) ResetBlockReceivedFlag(r4); r2 = (struct LinkPlayerBlock *)gBlockRecvBuffer[r4]; gLinkPlayers[r4] = r2->linkPlayer; - sub_800B524(gLinkPlayers + r4); + ConvertLinkPlayerName(gLinkPlayers + r4); gTasks[taskId].data[0]++; } break; @@ -1887,7 +1887,7 @@ static void sub_8010D0C(u8 taskId) case 0: if (Rfu.playerCount) { - sub_800B348(); + LocalLinkPlayerToBlock(); SendBlock(0, gBlockSendBuffer, sizeof(struct LinkPlayerBlock)); gTasks[taskId].data[0]++; } @@ -2472,7 +2472,7 @@ void RfuVSync(void) rfu_LMAN_syncVBlank(); } -void sub_8011AC8(void) +void ClearRecvCommands(void) { CpuFill32(0, gRecvCmds, sizeof(gRecvCmds)); } @@ -2643,7 +2643,7 @@ static void sub_8011E2C(u8 taskId) static void sub_8011E94(u32 a0, u32 a1) { u8 taskId = FindTaskIdByFunc(sub_8011E2C); - if (taskId == 0xFF) + if (taskId == TASK_NONE) { taskId = CreateTask(sub_8011E2C, 5); gTasks[taskId].data[0] = a0; @@ -2792,12 +2792,12 @@ void sub_8012188(const u8 *name, struct GFtgtGname *structPtr, u8 activity) taskId2 = FindTaskIdByFunc(Task_LinkRfu_UnionRoomListen); if (activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) { - if (taskId2 != 0xFF) + if (taskId2 != TASK_NONE) gTasks[taskId2].data[7] = 1; } else { - if (taskId2 != 0xFF) + if (taskId2 != TASK_NONE) gTasks[taskId2].data[7] = 0; } } diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index c6344f5036..251b4792dd 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -792,7 +792,7 @@ void LoadWirelessStatusIndicatorSpriteGfx(void) LoadCompressedSpriteSheet(&sWirelessStatusIndicatorSpriteSheet); } LoadSpritePalette(&sWirelessStatusIndicatorSpritePalette); - gWirelessStatusIndicatorSpriteId = 0xFF; + gWirelessStatusIndicatorSpriteId = SPRITE_NONE; } static u8 GetParentSignalStrength(void) @@ -822,7 +822,7 @@ static void SetWirelessStatusIndicatorAnim(struct Sprite *sprite, s32 animNum) void UpdateWirelessStatusIndicatorSprite(void) { - if (gWirelessStatusIndicatorSpriteId != 0xFF && gSprites[gWirelessStatusIndicatorSpriteId].sValidator == STATUS_INDICATOR_ACTIVE) + if (gWirelessStatusIndicatorSpriteId != SPRITE_NONE && gSprites[gWirelessStatusIndicatorSpriteId].sValidator == STATUS_INDICATOR_ACTIVE) { struct Sprite *sprite = &gSprites[gWirelessStatusIndicatorSpriteId]; u8 signalStrength = RFU_LINK_ICON_LEVEL4_MAX; @@ -880,8 +880,8 @@ void UpdateWirelessStatusIndicatorSprite(void) sprite->sFrameDelay++; } gMain.oamBuffer[125] = sWirelessStatusIndicatorOamData; - gMain.oamBuffer[125].x = sprite->pos1.x + sprite->centerToCornerVecX; - gMain.oamBuffer[125].y = sprite->pos1.y + sprite->centerToCornerVecY; + gMain.oamBuffer[125].x = sprite->x + sprite->centerToCornerVecX; + gMain.oamBuffer[125].y = sprite->y + sprite->centerToCornerVecY; gMain.oamBuffer[125].paletteNum = sprite->oam.paletteNum; gMain.oamBuffer[125].tileNum = sprite->sTileStart + sprite->anims[sprite->sCurrAnimNum][sprite->sFrameIdx].frame.imageValue; CpuCopy16(gMain.oamBuffer + 125, (struct OamData *)OAM + 125, sizeof(struct OamData)); diff --git a/src/list_menu.c b/src/list_menu.c index 3e5642e4cf..83c9acd669 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -467,8 +467,6 @@ s32 ListMenu_ProcessInput(u8 listTaskId) } } -#define TASK_NONE 0xFF - void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow) { struct ListMenu *list = (void*) gTasks[listTaskId].data; @@ -681,7 +679,7 @@ static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind) struct CursorStruct cursor; cursor.left = 0; - cursor.top = 160; + cursor.top = DISPLAY_HEIGHT; cursor.rowWidth = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8 + 2; cursor.rowHeight = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + 2; cursor.tileTag = 0x4000; @@ -1026,11 +1024,11 @@ static void SpriteCallback_ScrollIndicatorArrow(struct Sprite *sprite) { case 0: multiplier = sprite->tMultiplier; - sprite->pos2.x = (gSineTable[(u8)(sprite->tSinePos)] * multiplier) / 256; + sprite->x2 = (gSineTable[(u8)(sprite->tSinePos)] * multiplier) / 256; break; case 1: multiplier = sprite->tMultiplier; - sprite->pos2.y = (gSineTable[(u8)(sprite->tSinePos)] * multiplier) / 256; + sprite->y2 = (gSineTable[(u8)(sprite->tSinePos)] * multiplier) / 256; break; } sprite->tSinePos += sprite->tFrequency; @@ -1366,8 +1364,8 @@ static void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y) { struct RedOutlineCursor *data = (void*) gTasks[taskId].data; - gSprites[data->spriteId].pos1.x = x + 120; - gSprites[data->spriteId].pos1.y = y + 120; + gSprites[data->spriteId].x = x + 120; + gSprites[data->spriteId].y = y + 120; } static void ListMenuRemoveRedOutlineCursorObject(u8 taskId) @@ -1387,7 +1385,7 @@ static void ListMenuRemoveRedOutlineCursorObject(u8 taskId) static void SpriteCallback_RedArrowCursor(struct Sprite *sprite) { - sprite->pos2.x = gSineTable[(u8)(sprite->data[0])] / 64; + sprite->x2 = gSineTable[(u8)(sprite->data[0])] / 64; sprite->data[0] += 8; } @@ -1431,8 +1429,8 @@ static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor) spriteTemplate.paletteTag = cursor->palTag; data->spriteId = CreateSprite(&spriteTemplate, cursor->left, cursor->top, 0); - gSprites[data->spriteId].pos2.x = 8; - gSprites[data->spriteId].pos2.y = 8; + gSprites[data->spriteId].x2 = 8; + gSprites[data->spriteId].y2 = 8; if (cursor->palTag == SPRITE_INVALID_TAG) { @@ -1446,8 +1444,8 @@ static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y) { struct RedArrowCursor *data = (void*) gTasks[taskId].data; - gSprites[data->spriteId].pos1.x = x; - gSprites[data->spriteId].pos1.y = y; + gSprites[data->spriteId].x = x; + gSprites[data->spriteId].y = y; } static void ListMenuRemoveRedArrowCursorObject(u8 taskId) diff --git a/src/load_save.c b/src/load_save.c index 8459cd96b3..eec8f91aea 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -130,7 +130,7 @@ void MoveSaveBlocks_ResetHeap(void) gMain.vblankCallback = vblankCB; // create a new encryption key - encryptionKey = (Random() << 0x10) + (Random()); + encryptionKey = (Random() << 16) + (Random()); ApplyNewEncryptionKeyToAllEncryptedData(encryptionKey); gSaveBlock2Ptr->encryptionKey = encryptionKey; } diff --git a/src/m4a.c b/src/m4a.c index e079ba4f63..b159e3873d 100644 --- a/src/m4a.c +++ b/src/m4a.c @@ -887,18 +887,13 @@ void CgbModVol(struct CgbChannel *chan) if ((soundInfo->mode & 1) || !CgbPan(chan)) { chan->pan = 0xFF; - chan->envelopeGoal = (u32)(chan->rightVolume + chan->leftVolume) >> 4; + chan->envelopeGoal = (u32)(chan->leftVolume + chan->rightVolume); + chan->envelopeGoal /= 16; } else { - // Force chan->rightVolume and chan->leftVolume to be read from memory again, - // even though there is no reason to do so. - // The command line option "-fno-gcse" achieves the same result as this. - #ifndef NONMATCHING - asm("" : : : "memory"); - #endif - - chan->envelopeGoal = (u32)(chan->rightVolume + chan->leftVolume) >> 4; + chan->envelopeGoal = (u32)(chan->leftVolume + chan->rightVolume); + chan->envelopeGoal /= 16; if (chan->envelopeGoal > 15) chan->envelopeGoal = 15; } @@ -911,7 +906,6 @@ void CgbSound(void) { s32 ch; struct CgbChannel *channels; - s32 envelopeStepTimeAndDir; s32 prevC15; struct SoundInfo *soundInfo = SOUND_INFO_PTR; vu8 *nrx0ptr; @@ -919,6 +913,7 @@ void CgbSound(void) vu8 *nrx2ptr; vu8 *nrx3ptr; vu8 *nrx4ptr; + s32 envelopeStepTimeAndDir; // Most comparision operations that cast to s8 perform 'and' by 0xFF. int mask = 0xff; @@ -1203,8 +1198,8 @@ void CgbSound(void) } else { - envelopeStepTimeAndDir &= 0xf; - *nrx2ptr = (channels->envelopeVolume << 4) + envelopeStepTimeAndDir; + u32 envMask = 0xF; + *nrx2ptr = (envelopeStepTimeAndDir & envMask) + (channels->envelopeVolume << 4); *nrx4ptr = channels->n4 | 0x80; if (ch == 1 && !(*nrx0ptr & 0x08)) *nrx4ptr = channels->n4 | 0x80; @@ -1530,6 +1525,10 @@ void ply_xwave(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track { u32 wav; +#ifdef UBFIX + wav = 0; +#endif + READ_XCMD_BYTE(wav, 0) // UB: uninitialized variable READ_XCMD_BYTE(wav, 1) READ_XCMD_BYTE(wav, 2) @@ -1597,6 +1596,10 @@ void ply_xcmd_0C(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *tra { u32 unk; +#ifdef UBFIX + unk = 0; +#endif + READ_XCMD_BYTE(unk, 0) // UB: uninitialized variable READ_XCMD_BYTE(unk, 1) @@ -1617,6 +1620,10 @@ void ply_xcmd_0D(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *tra { u32 unk; +#ifdef UBFIX + unk = 0; +#endif + READ_XCMD_BYTE(unk, 0) // UB: uninitialized variable READ_XCMD_BYTE(unk, 1) READ_XCMD_BYTE(unk, 2) @@ -1657,18 +1664,12 @@ start_song: mplayInfo = &gPokemonCryMusicPlayers[i]; mplayInfo->ident++; -#define CRY ((s32)&gPokemonCrySongs + i * sizeof(struct PokemonCrySong)) -#define CRY_OFS(field) offsetof(struct PokemonCrySong, field) + gPokemonCrySongs[i] = gPokemonCrySong; - memcpy((void *)CRY, &gPokemonCrySong, sizeof(struct PokemonCrySong)); - - *(u32 *)(CRY + CRY_OFS(tone)) = (u32)tone; - *(u32 *)(CRY + CRY_OFS(part)) = CRY + CRY_OFS(part0); - *(u32 *)(CRY + CRY_OFS(part) + 4) = CRY + CRY_OFS(part1); - *(u32 *)(CRY + CRY_OFS(gotoTarget)) = CRY + CRY_OFS(cont); - -#undef CRY_OFS -#undef CRY + gPokemonCrySongs[i].tone = tone; + gPokemonCrySongs[i].part[0] = &gPokemonCrySongs[i].part0; + gPokemonCrySongs[i].part[1] = &gPokemonCrySongs[i].part1; + gPokemonCrySongs[i].gotoTarget = (u32)&gPokemonCrySongs[i].cont; mplayInfo->ident = ID_NUMBER; @@ -1711,14 +1712,14 @@ void SetPokemonCryProgress(u32 val) gPokemonCrySong.unkCmd0DParam = val; } -int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo) +bool32 IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo) { struct MusicPlayerTrack *track = mplayInfo->tracks; if (track->chan && track->chan->track == track) - return 1; + return TRUE; else - return 0; + return FALSE; } void SetPokemonCryChorus(s8 val) diff --git a/src/m4a_1.s b/src/m4a_1.s index d72336c182..62b913c863 100644 --- a/src/m4a_1.s +++ b/src/m4a_1.s @@ -678,7 +678,7 @@ sub_82DF758: ldr r1, [r4, o_SoundChannel_wav] add r2, r2, r1 add r2, r2, 0x10 - ldr r5, =gUnknown_03001300 + ldr r5, =gDecodingBuffer ldr r6, =gDeltaEncodingTable mov r7, 0x40 ldrb lr, [r2], 1 @@ -699,7 +699,7 @@ _081DD57C: subs r7, r7, 2 bgt _081DD568 _081DD594: - ldr r5, =gUnknown_03001300 + ldr r5, =gDecodingBuffer and r0, r3, 0x3F ldrsb r1, [r5, r0] pop {r0,r2,r5-r7,pc} @@ -1909,9 +1909,9 @@ _081DDD90: .align 2, 0 @ Don't pad with nop. .bss -gUnknown_03001300: +gDecodingBuffer: @ Used as a buffer for audio decoded from compressed DPCM .space 0x40 - .size gUnknown_03001300, .-gUnknown_03001300 + .size gDecodingBuffer, .-gDecodingBuffer .global gMPlayTrack_BGM gMPlayTrack_BGM: diff --git a/src/mail.c b/src/mail.c index 04464f06b1..0ee294787c 100644 --- a/src/mail.c +++ b/src/mail.c @@ -18,62 +18,31 @@ #include "pokemon_icon.h" #include "malloc.h" #include "easy_chat.h" +#include "graphics.h" #include "constants/rgb.h" -extern const u16 gMailPalette_Orange[]; -extern const u16 gMailPalette_Harbor[]; -extern const u16 gMailPalette_Glitter[]; -extern const u16 gMailPalette_Mech[]; -extern const u16 gMailPalette_Wood[]; -extern const u16 gMailPalette_Wave[]; -extern const u16 gMailPalette_Bead[]; -extern const u16 gMailPalette_Shadow[]; -extern const u16 gMailPalette_Tropic[]; -extern const u16 gMailPalette_Dream[]; -extern const u16 gMailPalette_Fab[]; -extern const u16 gMailPalette_Retro[]; -extern const u8 gMailTiles_Orange[]; -extern const u8 gMailTilemap_Orange[]; -extern const u8 gMailTiles_Harbor[]; -extern const u8 gMailTilemap_Harbor[]; -extern const u8 gMailTiles_Glitter[]; -extern const u8 gMailTilemap_Glitter[]; -extern const u8 gMailTiles_Mech[]; -extern const u8 gMailTilemap_Mech[]; -extern const u8 gMailTiles_Wood[]; -extern const u8 gMailTilemap_Wood[]; -extern const u8 gMailTiles_Wave[]; -extern const u8 gMailTilemap_Wave[]; -extern const u8 gMailTiles_Bead[]; -extern const u8 gMailTilemap_Bead[]; -extern const u8 gMailTiles_Shadow[]; -extern const u8 gMailTilemap_Shadow[]; -extern const u8 gMailTiles_Tropic[]; -extern const u8 gMailTilemap_Tropic[]; -extern const u8 gMailTiles_Dream[]; -extern const u8 gMailTilemap_Dream[]; -extern const u8 gMailTiles_Fab[]; -extern const u8 gMailTilemap_Fab[]; -extern const u8 gMailTiles_Retro[]; -extern const u8 gMailTilemap_Retro[]; +// Bead and Dream mail feature an icon of the Pokémon holding it. +enum { + ICON_TYPE_NONE, + ICON_TYPE_BEAD, + ICON_TYPE_DREAM, +}; -// Static type declarations - -struct UnkMailStruct +struct MailLineLayout { - u32 numEasyChatWords:2; - u32 xOffset:6; - u32 lineHeight:8; + u8 numEasyChatWords:2; + u8 xOffset:6; + u8 height; }; struct MailLayout { - u8 numSubStructs; + u8 numLines; u8 signatureYPos; u8 signatureWidth; - u8 wordsXPos; u8 wordsYPos; - const struct UnkMailStruct *var8; + u8 wordsXPos; + const struct MailLineLayout *lines; }; struct MailGraphics @@ -81,26 +50,25 @@ struct MailGraphics const u16 *palette; const u8 *tiles; const u8 *tileMap; - u16 var0C; - u16 var0E; - u16 color10; - u16 color12; + u32 unused; + u16 textColor; + u16 textShadow; }; struct MailRead { - /*0x0000*/ u8 strbuf[8][64]; + /*0x0000*/ u8 message[8][64]; /*0x0200*/ u8 playerName[12]; - /*0x020C*/ MainCallback callback; - /*0x0210*/ MainCallback callback2; + /*0x020C*/ MainCallback exitCallback; + /*0x0210*/ MainCallback callback; /*0x0214*/ struct MailStruct *mail; - /*0x0218*/ bool8 flag; + /*0x0218*/ bool8 hasText; /*0x0219*/ u8 signatureWidth; /*0x021a*/ u8 mailType; - /*0x021b*/ u8 animsActive; - /*0x021c*/ u8 monIconSprite; + /*0x021b*/ u8 iconType; + /*0x021c*/ u8 monIconSpriteId; /*0x021d*/ u8 language; - /*0x021e*/ bool8 playerIsSender; + /*0x021e*/ bool8 international; /*0x0220*/ u8 * (*parserSingle)(u8 *dest, u16 word); /*0x0224*/ u8 * (*parserMultiple)(u8 *dest, const u16 *src, u16 length1, u16 length2); /*0x0228*/ const struct MailLayout *layout; @@ -108,24 +76,18 @@ struct MailRead /*0x122c*/ u8 bg2TilemapBuffer[0x1000]; }; -// Static RAM declarations - static EWRAM_DATA struct MailRead *sMailRead = NULL; -// Static ROM declarations - static void CB2_InitMailRead(void); -static void sub_8121A1C(void); -static void sub_8121B1C(void); +static void BufferMailText(void); +static void PrintMailText(void); static void VBlankCB_MailRead(void); static void CB2_MailRead(void); static void CB2_WaitForPaletteExitOnKeyPress(void); static void CB2_ExitOnKeyPress(void); static void CB2_ExitMailReadFreeVars(void); -// .rodata - -static const struct BgTemplate sUnknown_0859F290[] = { +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, .charBaseIndex = 2, @@ -144,7 +106,7 @@ static const struct BgTemplate sUnknown_0859F290[] = { } }; -static const struct WindowTemplate sUnknown_0859F29C[] = { +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 0, .tilemapLeft = 2, @@ -163,137 +125,377 @@ static const u8 sTextColors[] = { TEXT_DYNAMIC_COLOR_2 }; -static const u16 sUnknown_0859F2B0[][2] = { - { 0x6ACD, 0x51A5 }, - { 0x45FC, 0x38D4 } +// Background is alternating bars of a dark/light color. +// Either blue or red depending on player's gender +static const u16 sBgColors[GENDER_COUNT][2] = { + [MALE] = { RGB(13, 22, 26), RGB(5, 13, 20) }, + [FEMALE] = { RGB(28, 15, 17), RGB(20, 6, 14) } }; -static const struct MailGraphics sUnknown_0859F2B8[] = { - { - gMailPalette_Orange, gMailTiles_Orange, gMailTilemap_Orange, 0x02c0, 0, 0x294a, 0x6739 - }, { - gMailPalette_Harbor, gMailTiles_Harbor, gMailTilemap_Harbor, 0x02e0, 0, 0x7fff, 0x4631 - }, { - gMailPalette_Glitter, gMailTiles_Glitter, gMailTilemap_Glitter, 0x0400, 0, 0x294a, 0x6739 - }, { - gMailPalette_Mech, gMailTiles_Mech, gMailTilemap_Mech, 0x01e0, 0, 0x7fff, 0x4631 - }, { - gMailPalette_Wood, gMailTiles_Wood, gMailTilemap_Wood, 0x02e0, 0, 0x7fff, 0x4631 - }, { - gMailPalette_Wave, gMailTiles_Wave, gMailTilemap_Wave, 0x0300, 0, 0x294a, 0x6739 - }, { - gMailPalette_Bead, gMailTiles_Bead, gMailTilemap_Bead, 0x0140, 0, 0x7fff, 0x4631 - }, { - gMailPalette_Shadow, gMailTiles_Shadow, gMailTilemap_Shadow, 0x0300, 0, 0x7fff, 0x4631 - }, { - gMailPalette_Tropic, gMailTiles_Tropic, gMailTilemap_Tropic, 0x0220, 0, 0x294a, 0x6739 - }, { - gMailPalette_Dream, gMailTiles_Dream, gMailTilemap_Dream, 0x0340, 0, 0x294a, 0x6739 - }, { - gMailPalette_Fab, gMailTiles_Fab, gMailTilemap_Fab, 0x02a0, 0, 0x294a, 0x6739 - }, { - gMailPalette_Retro, gMailTiles_Retro, gMailTilemap_Retro, 0x0520, 0, 0x294a, 0x6739 +static const struct MailGraphics sMailGraphics[] = { + [ITEM_TO_MAIL(ITEM_ORANGE_MAIL)] = { + .palette = gMailPalette_Orange, + .tiles = gMailTiles_Orange, + .tileMap = gMailTilemap_Orange, + .unused = 0x2C0, + .textColor = RGB(10, 10, 10), + .textShadow = RGB(25, 25, 25), + }, + [ITEM_TO_MAIL(ITEM_HARBOR_MAIL)] = { + .palette = gMailPalette_Harbor, + .tiles = gMailTiles_Harbor, + .tileMap = gMailTilemap_Harbor, + .unused = 0x2E0, + .textColor = RGB_WHITE, + .textShadow = RGB(17, 17, 17), + }, + [ITEM_TO_MAIL(ITEM_GLITTER_MAIL)] = { + .palette = gMailPalette_Glitter, + .tiles = gMailTiles_Glitter, + .tileMap = gMailTilemap_Glitter, + .unused = 0x400, + .textColor = RGB(10, 10, 10), + .textShadow = RGB(25, 25, 25), + }, + [ITEM_TO_MAIL(ITEM_MECH_MAIL)] = { + .palette = gMailPalette_Mech, + .tiles = gMailTiles_Mech, + .tileMap = gMailTilemap_Mech, + .unused = 0x1E0, + .textColor = RGB_WHITE, + .textShadow = RGB(17, 17, 17), + }, + [ITEM_TO_MAIL(ITEM_WOOD_MAIL)] = { + .palette = gMailPalette_Wood, + .tiles = gMailTiles_Wood, + .tileMap = gMailTilemap_Wood, + .unused = 0x2E0, + .textColor = RGB_WHITE, + .textShadow = RGB(17, 17, 17), + }, + [ITEM_TO_MAIL(ITEM_WAVE_MAIL)] = { + .palette = gMailPalette_Wave, + .tiles = gMailTiles_Wave, + .tileMap = gMailTilemap_Wave, + .unused = 0x300, + .textColor = RGB(10, 10, 10), + .textShadow = RGB(25, 25, 25), + }, + [ITEM_TO_MAIL(ITEM_BEAD_MAIL)] = { + .palette = gMailPalette_Bead, + .tiles = gMailTiles_Bead, + .tileMap = gMailTilemap_Bead, + .unused = 0x140, + .textColor = RGB_WHITE, + .textShadow = RGB(17, 17, 17), + }, + [ITEM_TO_MAIL(ITEM_SHADOW_MAIL)] = { + .palette = gMailPalette_Shadow, + .tiles = gMailTiles_Shadow, + .tileMap = gMailTilemap_Shadow, + .unused = 0x300, + .textColor = RGB_WHITE, + .textShadow = RGB(17, 17, 17), + }, + [ITEM_TO_MAIL(ITEM_TROPIC_MAIL)] = { + .palette = gMailPalette_Tropic, + .tiles = gMailTiles_Tropic, + .tileMap = gMailTilemap_Tropic, + .unused = 0x220, + .textColor = RGB(10, 10, 10), + .textShadow = RGB(25, 25, 25), + }, + [ITEM_TO_MAIL(ITEM_DREAM_MAIL)] = { + .palette = gMailPalette_Dream, + .tiles = gMailTiles_Dream, + .tileMap = gMailTilemap_Dream, + .unused = 0x340, + .textColor = RGB(10, 10, 10), + .textShadow = RGB(25, 25, 25), + }, + [ITEM_TO_MAIL(ITEM_FAB_MAIL)] = { + .palette = gMailPalette_Fab, + .tiles = gMailTiles_Fab, + .tileMap = gMailTilemap_Fab, + .unused = 0x2a0, + .textColor = RGB(10, 10, 10), + .textShadow = RGB(25, 25, 25), + }, + [ITEM_TO_MAIL(ITEM_RETRO_MAIL)] = { + .palette = gMailPalette_Retro, + .tiles = gMailTiles_Retro, + .tileMap = gMailTilemap_Retro, + .unused = 0x520, + .textColor = RGB(10, 10, 10), + .textShadow = RGB(25, 25, 25), } }; -static const struct UnkMailStruct Unknown_0859F3A8[] = { - { .numEasyChatWords = 3, .lineHeight = 16 }, - { .numEasyChatWords = 3, .lineHeight = 16 }, - { .numEasyChatWords = 3, .lineHeight = 16 } +static const struct MailLineLayout sLineLayouts_Wide[] = { + { .numEasyChatWords = 3, .xOffset = 0, .height = 16 }, + { .numEasyChatWords = 3, .xOffset = 0, .height = 16 }, + { .numEasyChatWords = 3, .xOffset = 0, .height = 16 } }; -static const struct MailLayout sUnknown_0859F3B4[] = { - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x08, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, - { 0x03, 0x00, 0x00, 0x02, 0x00, Unknown_0859F3A8 } +static const struct MailLayout sMailLayouts_Wide[] = { + [ITEM_TO_MAIL(ITEM_ORANGE_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_HARBOR_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_GLITTER_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_MECH_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_WOOD_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_WAVE_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_BEAD_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_SHADOW_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_TROPIC_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_DREAM_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_FAB_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 8, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 4, + .lines = sLineLayouts_Wide, + }, + [ITEM_TO_MAIL(ITEM_RETRO_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Wide), + .signatureYPos = 0, + .signatureWidth = 0, + .wordsYPos = 2, + .wordsXPos = 0, + .lines = sLineLayouts_Wide, + }, }; -static const struct UnkMailStruct Unknown_0859F444[] = { - { .numEasyChatWords = 2, .lineHeight = 16 }, - { .numEasyChatWords = 2, .lineHeight = 16 }, - { .numEasyChatWords = 2, .lineHeight = 16 }, - { .numEasyChatWords = 2, .lineHeight = 16 }, - { .numEasyChatWords = 1, .lineHeight = 16 } +static const struct MailLineLayout sLineLayouts_Tall[] = { + { .numEasyChatWords = 2, .xOffset = 0, .height = 16 }, + { .numEasyChatWords = 2, .xOffset = 0, .height = 16 }, + { .numEasyChatWords = 2, .xOffset = 0, .height = 16 }, + { .numEasyChatWords = 2, .xOffset = 0, .height = 16 }, + { .numEasyChatWords = 1, .xOffset = 0, .height = 16 } }; -static const struct MailLayout sUnknown_0859F458[] = { - { 0x05, 0x07, 0x58, 0x0b, 0x1e, Unknown_0859F444 }, - { 0x05, 0x0a, 0x60, 0x09, 0x1e, Unknown_0859F444 }, - { 0x05, 0x0c, 0x68, 0x05, 0x1e, Unknown_0859F444 }, - { 0x05, 0x05, 0x60, 0x08, 0x1e, Unknown_0859F444 }, - { 0x05, 0x0a, 0x60, 0x09, 0x1e, Unknown_0859F444 }, - { 0x05, 0x09, 0x70, 0x05, 0x1e, Unknown_0859F444 }, - { 0x05, 0x0c, 0x68, 0x09, 0x1e, Unknown_0859F444 }, - { 0x05, 0x0d, 0x68, 0x0d, 0x1e, Unknown_0859F444 }, - { 0x05, 0x09, 0x60, 0x09, 0x1e, Unknown_0859F444 }, - { 0x05, 0x09, 0x60, 0x09, 0x1e, Unknown_0859F444 }, - { 0x05, 0x11, 0x68, 0x0f, 0x1e, Unknown_0859F444 }, - { 0x05, 0x09, 0x60, 0x05, 0x1e, Unknown_0859F444 } +static const struct MailLayout sMailLayouts_Tall[] = { + [ITEM_TO_MAIL(ITEM_ORANGE_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 7, + .signatureWidth = 88, + .wordsYPos = 11, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_HARBOR_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 10, + .signatureWidth = 96, + .wordsYPos = 9, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_GLITTER_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 12, + .signatureWidth = 104, + .wordsYPos = 5, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_MECH_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 5, + .signatureWidth = 96, + .wordsYPos = 8, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_WOOD_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 10, + .signatureWidth = 96, + .wordsYPos = 9, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_WAVE_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 9, + .signatureWidth = 112, + .wordsYPos = 5, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_BEAD_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 12, + .signatureWidth = 104, + .wordsYPos = 9, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_SHADOW_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 13, + .signatureWidth = 104, + .wordsYPos = 13, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_TROPIC_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 9, + .signatureWidth = 96, + .wordsYPos = 9, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_DREAM_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 9, + .signatureWidth = 96, + .wordsYPos = 9, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_FAB_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 17, + .signatureWidth = 104, + .wordsYPos = 15, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, + [ITEM_TO_MAIL(ITEM_RETRO_MAIL)] = { + .numLines = ARRAY_COUNT(sLineLayouts_Tall), + .signatureYPos = 9, + .signatureWidth = 96, + .wordsYPos = 5, + .wordsXPos = 30, + .lines = sLineLayouts_Tall, + }, }; -// .text - -void ReadMail(struct MailStruct *mail, void (*callback)(void), bool8 flag) +void ReadMail(struct MailStruct *mail, void (*exitCallback)(void), bool8 hasText) { u16 buffer[2]; u16 species; sMailRead = calloc(1, sizeof(*sMailRead)); - sMailRead->language = LANGUAGE_ENGLISH; - sMailRead->playerIsSender = TRUE; + sMailRead->language = GAME_LANGUAGE; + sMailRead->international = TRUE; sMailRead->parserSingle = CopyEasyChatWord; sMailRead->parserMultiple = ConvertEasyChatWordsToString; if (IS_ITEM_MAIL(mail->itemId)) { - sMailRead->mailType = mail->itemId - ITEM_ORANGE_MAIL; + sMailRead->mailType = ITEM_TO_MAIL(mail->itemId); } else { - sMailRead->mailType = 0; - flag = FALSE; + sMailRead->mailType = ITEM_TO_MAIL(FIRST_MAIL_INDEX); + hasText = FALSE; } - switch (sMailRead->playerIsSender) + switch (sMailRead->international) { - case FALSE: - default: - sMailRead->layout = &sUnknown_0859F3B4[sMailRead->mailType]; - break; - case TRUE: - sMailRead->layout = &sUnknown_0859F458[sMailRead->mailType]; - break; + case FALSE: + default: + // Never reached. JP only? + sMailRead->layout = &sMailLayouts_Wide[sMailRead->mailType]; + break; + case TRUE: + sMailRead->layout = &sMailLayouts_Tall[sMailRead->mailType]; + break; } species = MailSpeciesToSpecies(mail->species, buffer); - if (species >= SPECIES_BULBASAUR && species < NUM_SPECIES) + if (species > SPECIES_NONE && species < NUM_SPECIES) { switch (sMailRead->mailType) { - default: - sMailRead->animsActive = 0; - break; - case ITEM_BEAD_MAIL - ITEM_ORANGE_MAIL: - sMailRead->animsActive = 1; - break; - case ITEM_DREAM_MAIL - ITEM_ORANGE_MAIL: - sMailRead->animsActive = 2; - break; + default: + sMailRead->iconType = ICON_TYPE_NONE; + break; + case ITEM_TO_MAIL(ITEM_BEAD_MAIL): + sMailRead->iconType = ICON_TYPE_BEAD; + break; + case ITEM_TO_MAIL(ITEM_DREAM_MAIL): + sMailRead->iconType = ICON_TYPE_DREAM; + break; } } else { - sMailRead->animsActive = 0; + sMailRead->iconType = ICON_TYPE_NONE; } sMailRead->mail = mail; - sMailRead->callback = callback; - sMailRead->flag = flag; + sMailRead->exitCallback = exitCallback; + sMailRead->hasText = hasText; SetMainCallback2(CB2_InitMailRead); } @@ -336,16 +538,16 @@ static bool8 MailReadBuildGraphics(void) break; case 6: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sUnknown_0859F290, 3); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); SetBgTilemapBuffer(1, sMailRead->bg1TilemapBuffer); SetBgTilemapBuffer(2, sMailRead->bg2TilemapBuffer); break; case 7: - InitWindows(sUnknown_0859F29C); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); break; case 8: - DecompressAndCopyTileDataToVram(1, sUnknown_0859F2B8[sMailRead->mailType].tiles, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, sMailGraphics[sMailRead->mailType].tiles, 0, 0, 0); break; case 9: if (FreeTempTileDataBuffersIfPossible()) @@ -356,7 +558,7 @@ static bool8 MailReadBuildGraphics(void) case 10: FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); FillBgTilemapBufferRect_Palette0(2, 1, 0, 0, 30, 20); - CopyToBgTilemapBuffer(1, sUnknown_0859F2B8[sMailRead->mailType].tileMap, 0, 0); + CopyToBgTilemapBuffer(1, sMailGraphics[sMailRead->mailType].tileMap, 0, 0); break; case 11: CopyBgTilemapBufferToVram(0); @@ -365,31 +567,33 @@ static bool8 MailReadBuildGraphics(void) break; case 12: LoadPalette(GetOverworldTextboxPalettePtr(), 240, 32); - gPlttBufferUnfaded[250] = sUnknown_0859F2B8[sMailRead->mailType].color10; - gPlttBufferFaded[250] = sUnknown_0859F2B8[sMailRead->mailType].color10; - gPlttBufferUnfaded[251] = sUnknown_0859F2B8[sMailRead->mailType].color12; - gPlttBufferFaded[251] = sUnknown_0859F2B8[sMailRead->mailType].color12; - LoadPalette(sUnknown_0859F2B8[sMailRead->mailType].palette, 0, 32); - gPlttBufferUnfaded[10] = sUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0]; - gPlttBufferFaded[10] = sUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0]; - gPlttBufferUnfaded[11] = sUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1]; - gPlttBufferFaded[11] = sUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1]; + + gPlttBufferUnfaded[250] = sMailGraphics[sMailRead->mailType].textColor; + gPlttBufferFaded[250] = sMailGraphics[sMailRead->mailType].textColor; + gPlttBufferUnfaded[251] = sMailGraphics[sMailRead->mailType].textShadow; + gPlttBufferFaded[251] = sMailGraphics[sMailRead->mailType].textShadow; + LoadPalette(sMailGraphics[sMailRead->mailType].palette, 0, 32); + + gPlttBufferUnfaded[10] = sBgColors[gSaveBlock2Ptr->playerGender][0]; + gPlttBufferFaded[10] = sBgColors[gSaveBlock2Ptr->playerGender][0]; + gPlttBufferUnfaded[11] = sBgColors[gSaveBlock2Ptr->playerGender][1]; + gPlttBufferFaded[11] = sBgColors[gSaveBlock2Ptr->playerGender][1]; break; case 13: - if (sMailRead->flag) + if (sMailRead->hasText) { - sub_8121A1C(); + BufferMailText(); } break; case 14: - if (sMailRead->flag) + if (sMailRead->hasText) { - sub_8121B1C(); + PrintMailText(); RunTextPrinters(); } break; case 15: - if (sub_8087598() == TRUE) + if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE) { return FALSE; } @@ -399,17 +603,17 @@ static bool8 MailReadBuildGraphics(void) gPaletteFade.bufferTransferDisabled = TRUE; break; case 17: - icon = sub_80D2E84(sMailRead->mail->species); - switch (sMailRead->animsActive) + icon = GetIconSpeciesNoPersonality(sMailRead->mail->species); + switch (sMailRead->iconType) { - case 1: - LoadMonIconPalette(icon); - sMailRead->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x60, 0x80, 0, 0); - break; - case 2: - LoadMonIconPalette(icon); - sMailRead->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x28, 0x80, 0, 0); - break; + case ICON_TYPE_BEAD: + LoadMonIconPalette(icon); + sMailRead->monIconSpriteId = CreateMonIconNoPersonality(icon, SpriteCallbackDummy, 96, 128, 0, FALSE); + break; + case ICON_TYPE_DREAM: + LoadMonIconPalette(icon); + sMailRead->monIconSpriteId = CreateMonIconNoPersonality(icon, SpriteCallbackDummy, 40, 128, 0, FALSE); + break; } break; case 18: @@ -417,9 +621,9 @@ static bool8 MailReadBuildGraphics(void) ShowBg(0); ShowBg(1); ShowBg(2); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gPaletteFade.bufferTransferDisabled = FALSE; - sMailRead->callback2 = CB2_WaitForPaletteExitOnKeyPress; + sMailRead->callback = CB2_WaitForPaletteExitOnKeyPress; return TRUE; default: return FALSE; @@ -440,35 +644,39 @@ static void CB2_InitMailRead(void) } while (MenuHelpers_LinkSomething() != TRUE); } -static void sub_8121A1C(void) +static void BufferMailText(void) { u16 i; - u8 total; + u8 numWords; u8 *ptr; - total = 0; - for (i = 0; i < sMailRead->layout->numSubStructs; i ++) + // Convert the easy chat words to strings line by line and buffer them to message + numWords = 0; + for (i = 0; i < sMailRead->layout->numLines; i ++) { - ConvertEasyChatWordsToString(sMailRead->strbuf[i], &sMailRead->mail->words[total], sMailRead->layout->var8[i].numEasyChatWords, 1); - total += sMailRead->layout->var8[i].numEasyChatWords; + ConvertEasyChatWordsToString(sMailRead->message[i], &sMailRead->mail->words[numWords], sMailRead->layout->lines[i].numEasyChatWords, 1); + numWords += sMailRead->layout->lines[i].numEasyChatWords; } + + // Buffer the signature ptr = StringCopy(sMailRead->playerName, sMailRead->mail->playerName); - if (!sMailRead->playerIsSender) + if (!sMailRead->international) { - StringCopy(ptr, gText_FromSpace); - sMailRead->signatureWidth = sMailRead->layout->signatureWidth - (StringLength(sMailRead->playerName) * 8 - 0x60); + // Never reached + StringCopy(ptr, gText_FromSpace); // Odd, "From" text is already printed in PrintMailText + sMailRead->signatureWidth = sMailRead->layout->signatureWidth - (StringLength(sMailRead->playerName) * 8 - 96); } else { - sub_81DB52C(sMailRead->playerName); + ConvertInternationalPlayerName(sMailRead->playerName); sMailRead->signatureWidth = sMailRead->layout->signatureWidth; } } -static void sub_8121B1C(void) +static void PrintMailText(void) { u16 i; - u8 strbuf[0x20]; + u8 signature[32]; u8 y; u8 *bufptr; s32 box_x; @@ -479,20 +687,19 @@ static void sub_8121B1C(void) PutWindowTilemap(1); FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(1, PIXEL_FILL(0)); - for (i = 0; i < sMailRead->layout->numSubStructs; i ++) + for (i = 0; i < sMailRead->layout->numLines; i ++) { - if (sMailRead->strbuf[i][0] == EOS || sMailRead->strbuf[i][0] == CHAR_SPACE) - { + if (sMailRead->message[i][0] == EOS || sMailRead->message[i][0] == CHAR_SPACE) continue; - } - AddTextPrinterParameterized3(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sTextColors, 0, sMailRead->strbuf[i]); - y += sMailRead->layout->var8[i].lineHeight; + + AddTextPrinterParameterized3(0, 1, sMailRead->layout->lines[i].xOffset + sMailRead->layout->wordsXPos, y + sMailRead->layout->wordsYPos, sTextColors, 0, sMailRead->message[i]); + y += sMailRead->layout->lines[i].height; } - bufptr = StringCopy(strbuf, gText_FromSpace); + bufptr = StringCopy(signature, gText_FromSpace); StringCopy(bufptr, sMailRead->playerName); - box_x = GetStringCenterAlignXOffset(1, strbuf, sMailRead->signatureWidth) + 0x68; - box_y = sMailRead->layout->signatureYPos + 0x58; - AddTextPrinterParameterized3(0, 1, box_x, box_y, sTextColors, 0, strbuf); + box_x = GetStringCenterAlignXOffset(1, signature, sMailRead->signatureWidth) + 104; + box_y = sMailRead->layout->signatureYPos + 88; + AddTextPrinterParameterized3(0, 1, box_x, box_y, sTextColors, 0, signature); CopyWindowToVram(0, 3); CopyWindowToVram(1, 3); } @@ -506,19 +713,19 @@ static void VBlankCB_MailRead(void) static void CB2_MailRead(void) { - if (sMailRead->animsActive != 0) + if (sMailRead->iconType != ICON_TYPE_NONE) { AnimateSprites(); BuildOamBuffer(); } - sMailRead->callback2(); + sMailRead->callback(); } static void CB2_WaitForPaletteExitOnKeyPress(void) { if (!UpdatePaletteFade()) { - sMailRead->callback2 = CB2_ExitOnKeyPress; + sMailRead->callback = CB2_ExitOnKeyPress; } } @@ -526,8 +733,8 @@ static void CB2_ExitOnKeyPress(void) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sMailRead->callback2 = CB2_ExitMailReadFreeVars; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sMailRead->callback = CB2_ExitMailReadFreeVars; } } @@ -535,13 +742,13 @@ static void CB2_ExitMailReadFreeVars(void) { if (!UpdatePaletteFade()) { - SetMainCallback2(sMailRead->callback); - switch (sMailRead->animsActive) + SetMainCallback2(sMailRead->exitCallback); + switch (sMailRead->iconType) { - case 1: - case 2: - FreeMonIconPalette(sub_80D2E84(sMailRead->mail->species)); - FreeAndDestroyMonIconSprite(&gSprites[sMailRead->monIconSprite]); + case ICON_TYPE_BEAD: + case ICON_TYPE_DREAM: + FreeMonIconPalette(GetIconSpeciesNoPersonality(sMailRead->mail->species)); + FreeAndDestroyMonIconSprite(&gSprites[sMailRead->monIconSpriteId]); } memset(sMailRead, 0, sizeof(*sMailRead)); ResetPaletteFade(); diff --git a/src/mail_data.c b/src/mail_data.c index e0553af993..2ae9bedab7 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -5,6 +5,7 @@ #include "pokemon_icon.h" #include "text.h" #include "international_string_util.h" +#include "constants/easy_chat.h" void ClearMailData(void) { @@ -19,12 +20,12 @@ void ClearMailStruct(struct MailStruct *mail) s32 i; for (i = 0; i < MAIL_WORDS_COUNT; i++) - mail->words[i] = 0xFFFF; + mail->words[i] = EC_EMPTY_WORD; for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) mail->playerName[i] = EOS; - for (i = 0; i < 4; i++) + for (i = 0; i < TRAINER_ID_LENGTH; i++) mail->trainerId[i] = 0; mail->species = SPECIES_BULBASAUR; @@ -34,7 +35,7 @@ void ClearMailStruct(struct MailStruct *mail) bool8 MonHasMail(struct Pokemon *mon) { u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM); - if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != 0xFF) + if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != MAIL_NONE) return TRUE; else return FALSE; @@ -52,12 +53,12 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) for (id = 0; id < PARTY_SIZE; id++) { - if (gSaveBlock1Ptr->mail[id].itemId == 0) + if (gSaveBlock1Ptr->mail[id].itemId == ITEM_NONE) { for (i = 0; i < MAIL_WORDS_COUNT; i++) - gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF; + gSaveBlock1Ptr->mail[id].words[i] = EC_EMPTY_WORD; - for (i = 0; i < PLAYER_NAME_LENGTH + 1 - 1; i++) + for (i = 0; i < PLAYER_NAME_LENGTH; i++) gSaveBlock1Ptr->mail[id].playerName[i] = gSaveBlock2Ptr->playerName[i]; gSaveBlock1Ptr->mail[id].playerName[i] = EOS; PadNameString(gSaveBlock1Ptr->mail[id].playerName, CHAR_SPACE); @@ -75,7 +76,7 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) } } - return 0xFF; + return MAIL_NONE; } u16 SpeciesToMailSpecies(u16 species, u32 personality) @@ -93,7 +94,7 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer) { u16 result; - if (mailSpecies >= 30000 && mailSpecies < (30000 + UNOWN_FORM_COUNT)) + if (mailSpecies >= 30000 && mailSpecies < (30000 + NUM_UNOWN_FORMS)) { result = SPECIES_UNOWN; *buffer = mailSpecies - 30000; @@ -112,8 +113,8 @@ u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail) u16 itemId = mail->itemId; u8 mailId = GiveMailToMon(mon, itemId); - if (mailId == 0xFF) - return 0xFF; + if (mailId == MAIL_NONE) + return MAIL_NONE; gSaveBlock1Ptr->mail[mailId] = *mail; @@ -141,7 +142,7 @@ void TakeMailFromMon(struct Pokemon *mon) { mailId = GetMonData(mon, MON_DATA_MAIL); gSaveBlock1Ptr->mail[mailId].itemId = ITEM_NONE; - mailId = 0xFF; + mailId = MAIL_NONE; heldItem[0] = ITEM_NONE; heldItem[1] = ITEM_NONE << 8; SetMonData(mon, MON_DATA_MAIL, &mailId); @@ -162,7 +163,7 @@ u8 TakeMailFromMon2(struct Pokemon *mon) newHeldItem[0] = ITEM_NONE; newHeldItem[1] = ITEM_NONE << 8; - newMailId = 0xFF; + newMailId = MAIL_NONE; for (i = PARTY_SIZE; i < MAIL_COUNT; i++) { @@ -176,7 +177,7 @@ u8 TakeMailFromMon2(struct Pokemon *mon) } } - return 0xFF; + return MAIL_NONE; } bool8 ItemIsMail(u16 itemId) diff --git a/src/main.c b/src/main.c index 9fd1d0a35f..3125716e25 100644 --- a/src/main.c +++ b/src/main.c @@ -23,6 +23,7 @@ #include "intro.h" #include "main.h" #include "trainer_hill.h" +#include "constants/rgb.h" static void VBlankIntr(void); static void HBlankIntr(void); @@ -75,7 +76,7 @@ static EWRAM_DATA u16 gTrainerId = 0; static void UpdateLinkAndCallCallbacks(void); static void InitMainCallbacks(void); static void CallCallbacks(void); -//static void SeedRngWithRtc(void); +static void SeedRngWithRtc(void); static void ReadKeys(void); void InitIntrHandlers(void); static void WaitForVBlank(void); @@ -90,7 +91,7 @@ void AgbMain() #if !MODERN RegisterRamReset(RESET_ALL); #endif //MODERN - *(vu16 *)BG_PLTT = 0x7FFF; + *(vu16 *)BG_PLTT = RGB_WHITE; // Set the backdrop to white on startup InitGpuRegManager(); REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3; InitKeys(); @@ -102,7 +103,9 @@ void AgbMain() CheckForFlashMemory(); InitMainCallbacks(); InitMapMusic(); - //SeedRngWithRtc(); see comment at SeedRngWithRtc declaration below +#ifdef BUGFIX + SeedRngWithRtc(); // see comment at SeedRngWithRtc definition below +#endif ClearDma3Requests(); ResetBgs(); SetDefaultFontsPointer(); @@ -129,7 +132,7 @@ void AgbMain() DoSoftReset(); } - if (sub_8087634() == 1) + if (Overworld_SendKeysToLinkIsRunning() == TRUE) { gLinkTransferringData = TRUE; UpdateLinkAndCallCallbacks(); @@ -140,7 +143,7 @@ void AgbMain() gLinkTransferringData = FALSE; UpdateLinkAndCallCallbacks(); - if (sub_80875C8() == 1) + if (Overworld_RecvKeysFromLinkIsRunning() == TRUE) { gMain.newKeys = 0; ClearSpriteCopyRequests(); @@ -213,13 +216,15 @@ void EnableVCountIntrAtLine150(void) EnableInterrupts(INTR_FLAG_VCOUNT); } -// oops! FRLG commented this out to remove RTC, however Emerald didnt undo this! -//static void SeedRngWithRtc(void) -//{ -// u32 seed = RtcGetMinuteCount(); -// seed = (seed >> 16) ^ (seed & 0xFFFF); -// SeedRng(seed); -//} +// FRLG commented this out to remove RTC, however Emerald didn't undo this! +#ifdef BUGFIX +static void SeedRngWithRtc(void) +{ + u32 seed = RtcGetMinuteCount(); + seed = (seed >> 16) ^ (seed & 0xFFFF); + SeedRng(seed); +} +#endif void InitKeys(void) { @@ -294,7 +299,7 @@ void InitIntrHandlers(void) REG_IME = 1; - EnableInterrupts(0x1); + EnableInterrupts(INTR_FLAG_VBLANK); } void SetVBlankCallback(IntrCallback callback) @@ -346,7 +351,7 @@ static void VBlankIntr(void) gPcmDmaCounter = gSoundInfo.pcmDmaCounter; m4aSoundMain(); - sub_8033648(); + TryReceiveLinkBattleData(); if (!gMain.inBattle || !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_RECORDED))) Random(); diff --git a/src/main_menu.c b/src/main_menu.c index 5b39b6d456..ec5a3785fd 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -28,7 +28,6 @@ #include "scanline_effect.h" #include "sound.h" #include "sprite.h" -#include "string.h" #include "strings.h" #include "string_util.h" #include "task.h" @@ -582,9 +581,9 @@ static u32 InitMainMenu(bool8 returningFromOptionsMenu) ResetSpriteData(); FreeAllSpritePalettes(); if (returningFromOptionsMenu) - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); // fade to black + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); // fade to black else - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_WHITEALPHA); // fade to white + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_WHITEALPHA); // fade to white ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sMainMenuBgTemplates, ARRAY_COUNT(sMainMenuBgTemplates)); ChangeBgX(0, 0, 0); @@ -890,15 +889,15 @@ static bool8 HandleMainMenuInput(u8 taskId) { PlaySE(SE_SELECT); IsWirelessAdapterConnected(); // why bother calling this here? debug? Task_HandleMainMenuAPressed will check too - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_HandleMainMenuAPressed; } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITEALPHA); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160)); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_WHITEALPHA); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, DISPLAY_HEIGHT)); gTasks[taskId].func = Task_HandleMainMenuBPressed; } else if ((JOY_NEW(DPAD_UP)) && tCurrItem > 0) @@ -1096,7 +1095,7 @@ static void Task_HandleMainMenuAPressed(u8 taskId) SetGpuReg(REG_OFFSET_BG1VOFS, 0); SetGpuReg(REG_OFFSET_BG0HOFS, 0); SetGpuReg(REG_OFFSET_BG0VOFS, 0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); return; } FreeAllWindowBuffers(); @@ -1153,7 +1152,7 @@ static void Task_DisplayMainMenuInvalidActionError(u8 taskId) if (JOY_NEW(A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_HandleMainMenuBPressed; } } @@ -1285,10 +1284,10 @@ static void Task_NewGameBirchSpeech_Init(u8 taskId) FreeAllSpritePalettes(); ResetAllPicSprites(); AddBirchSpeechObjects(taskId); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gTasks[taskId].tBG1HOFS = 0; gTasks[taskId].func = Task_NewGameBirchSpeech_WaitToShowBirch; - gTasks[taskId].tPlayerSpriteId = 0xFF; + gTasks[taskId].tPlayerSpriteId = SPRITE_NONE; gTasks[taskId].data[3] = 0xFF; gTasks[taskId].tTimer = 0xD8; PlayBGM(MUS_ROUTE122); @@ -1307,8 +1306,8 @@ static void Task_NewGameBirchSpeech_WaitToShowBirch(u8 taskId) else { spriteId = gTasks[taskId].tBirchSpriteId; - gSprites[spriteId].pos1.x = 136; - gSprites[spriteId].pos1.y = 60; + gSprites[spriteId].x = 136; + gSprites[spriteId].y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 10); @@ -1370,8 +1369,8 @@ static void Task_NewGameBirchSpeechSub_InitPokeBall(u8 taskId) { u8 spriteId = gTasks[sBirchSpeechMainTaskId].tLotadSpriteId; - gSprites[spriteId].pos1.x = 100; - gSprites[spriteId].pos1.y = 75; + gSprites[spriteId].x = 100; + gSprites[spriteId].y = 75; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].data[0] = 0; @@ -1388,11 +1387,9 @@ static void Task_NewGameBirchSpeechSub_WaitForLotad(u8 taskId) switch (tState) { case 0: - if (sprite->callback == SpriteCallbackDummy) - { - sprite->oam.affineMode = ST_OAM_AFFINE_OFF; - goto incrementStateAndTimer; - } + if (sprite->callback != SpriteCallbackDummy) + return; + sprite->oam.affineMode = ST_OAM_AFFINE_OFF; break; case 1: if (gTasks[sBirchSpeechMainTaskId].tTimer >= 96) @@ -1401,14 +1398,11 @@ static void Task_NewGameBirchSpeechSub_WaitForLotad(u8 taskId) if (gTasks[sBirchSpeechMainTaskId].tTimer < 0x4000) gTasks[sBirchSpeechMainTaskId].tTimer++; } - break; - incrementStateAndTimer: - default: - tState++; - if (gTasks[sBirchSpeechMainTaskId].tTimer < 0x4000) - gTasks[sBirchSpeechMainTaskId].tTimer++; - break; + return; } + tState++; + if (gTasks[sBirchSpeechMainTaskId].tTimer < 0x4000) + gTasks[sBirchSpeechMainTaskId].tTimer++; } #undef tState @@ -1465,8 +1459,8 @@ static void Task_NewGameBirchSpeech_StartPlayerFadeIn(u8 taskId) { u8 spriteId = gTasks[taskId].tBrendanSpriteId; - gSprites[spriteId].pos1.x = 180; - gSprites[spriteId].pos1.y = 60; + gSprites[spriteId].x = 180; + gSprites[spriteId].y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; gTasks[taskId].tPlayerSpriteId = spriteId; @@ -1539,7 +1533,7 @@ static void Task_NewGameBirchSpeech_SlideOutOldGenderSprite(u8 taskId) u8 spriteId = gTasks[taskId].tPlayerSpriteId; if (gTasks[taskId].tIsDoneFadingSprites == 0) { - gSprites[spriteId].pos1.x += 4; + gSprites[spriteId].x += 4; } else { @@ -1548,8 +1542,8 @@ static void Task_NewGameBirchSpeech_SlideOutOldGenderSprite(u8 taskId) spriteId = gTasks[taskId].tMaySpriteId; else spriteId = gTasks[taskId].tBrendanSpriteId; - gSprites[spriteId].pos1.x = 240; - gSprites[spriteId].pos1.y = 60; + gSprites[spriteId].x = DISPLAY_WIDTH; + gSprites[spriteId].y = 60; gSprites[spriteId].invisible = FALSE; gTasks[taskId].tPlayerSpriteId = spriteId; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; @@ -1562,13 +1556,13 @@ static void Task_NewGameBirchSpeech_SlideInNewGenderSprite(u8 taskId) { u8 spriteId = gTasks[taskId].tPlayerSpriteId; - if (gSprites[spriteId].pos1.x > 180) + if (gSprites[spriteId].x > 180) { - gSprites[spriteId].pos1.x -= 4; + gSprites[spriteId].x -= 4; } else { - gSprites[spriteId].pos1.x = 180; + gSprites[spriteId].x = 180; if (gTasks[taskId].tIsDoneFadingSprites) { gSprites[spriteId].oam.objMode = ST_OAM_OBJ_NORMAL; @@ -1595,7 +1589,7 @@ static void Task_NewGameBirchSpeech_WaitPressBeforeNameChoice(u8 taskId) { if ((JOY_NEW(A_BUTTON)) || (JOY_NEW(B_BUTTON))) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_NewGameBirchSpeech_StartNamingScreen; } } @@ -1669,13 +1663,13 @@ static void Task_NewGameBirchSpeech_ReshowBirchLotad(u8 taskId) gSprites[gTasks[taskId].tBrendanSpriteId].invisible = TRUE; gSprites[gTasks[taskId].tMaySpriteId].invisible = TRUE; spriteId = gTasks[taskId].tBirchSpriteId; - gSprites[spriteId].pos1.x = 136; - gSprites[spriteId].pos1.y = 60; + gSprites[spriteId].x = 136; + gSprites[spriteId].y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; spriteId = gTasks[taskId].tLotadSpriteId; - gSprites[spriteId].pos1.x = 100; - gSprites[spriteId].pos1.y = 75; + gSprites[spriteId].x = 100; + gSprites[spriteId].y = 75; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2); @@ -1722,8 +1716,8 @@ static void Task_NewGameBirchSpeech_AreYouReady(u8 taskId) spriteId = gTasks[taskId].tMaySpriteId; else spriteId = gTasks[taskId].tBrendanSpriteId; - gSprites[spriteId].pos1.x = 120; - gSprites[spriteId].pos1.y = 60; + gSprites[spriteId].x = 120; + gSprites[spriteId].y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; gTasks[taskId].tPlayerSpriteId = spriteId; @@ -1750,7 +1744,7 @@ static void Task_NewGameBirchSpeech_ShrinkPlayer(u8 taskId) InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); gSprites[spriteId].callback = SpriteCB_MovePlayerDownWhileShrinking; - BeginNormalPaletteFade(0x0000FFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_BG, 0, 0, 16, RGB_BLACK); FadeOutBGM(4); gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForPlayerShrink; } @@ -1774,7 +1768,7 @@ static void Task_NewGameBirchSpeech_FadePlayerToWhite(u8 taskId) spriteId = gTasks[taskId].tPlayerSpriteId; gSprites[spriteId].callback = SpriteCB_Null; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - BeginNormalPaletteFade(0xFFFF0000, 0, 0, 16, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_OBJECTS, 0, 0, 16, RGB_WHITEALPHA); gTasks[taskId].func = Task_NewGameBirchSpeech_Cleanup; } } @@ -1800,7 +1794,7 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) ResetBgsAndClearDma3BusyFlags(0); SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - InitBgsFromTemplates(0, sMainMenuBgTemplates, 2); + InitBgsFromTemplates(0, sMainMenuBgTemplates, ARRAY_COUNT(sMainMenuBgTemplates)); InitBgFromTemplate(&sBirchBgTemplate); SetVBlankCallback(NULL); SetGpuReg(REG_OFFSET_BG2CNT, 0); @@ -1839,12 +1833,12 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) gTasks[taskId].tPlayerGender = MALE; spriteId = gTasks[taskId].tBrendanSpriteId; } - gSprites[spriteId].pos1.x = 180; - gSprites[spriteId].pos1.y = 60; + gSprites[spriteId].x = 180; + gSprites[spriteId].y = 60; gSprites[spriteId].invisible = FALSE; gTasks[taskId].tPlayerSpriteId = spriteId; SetGpuReg(REG_OFFSET_BG1HOFS, -60); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WININ, 0); @@ -1875,8 +1869,8 @@ static void SpriteCB_MovePlayerDownWhileShrinking(struct Sprite *sprite) { u32 y; - y = (sprite->pos1.y << 16) + sprite->data[0] + 0xC000; - sprite->pos1.y = y >> 16; + y = (sprite->y << 16) + sprite->data[0] + 0xC000; + sprite->y = y >> 16; sprite->data[0] = y; } @@ -2098,7 +2092,7 @@ static void NewGameBirchSpeech_ShowGenderMenu(void) { DrawMainMenuWindowBorder(&gNewGameBirchSpeechTextWindows[1], 0xF3); FillWindowPixelBuffer(1, PIXEL_FILL(1)); - PrintMenuTable(1, 2, sMenuActions_Gender); + PrintMenuTable(1, ARRAY_COUNT(sMenuActions_Gender), sMenuActions_Gender); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); CopyWindowToVram(1, 3); @@ -2118,9 +2112,9 @@ static void NewGameBirchSpeech_SetDefaultPlayerName(u8 nameId) name = gMalePresetNames[nameId]; else name = gFemalePresetNames[nameId]; - for (i = 0; i < 7; i++) + for (i = 0; i < PLAYER_NAME_LENGTH; i++) gSaveBlock2Ptr->playerName[i] = name[i]; - gSaveBlock2Ptr->playerName[7] = 0xFF; + gSaveBlock2Ptr->playerName[PLAYER_NAME_LENGTH] = EOS; } static void CreateMainMenuErrorWindow(const u8* str) @@ -2130,8 +2124,8 @@ static void CreateMainMenuErrorWindow(const u8* str) PutWindowTilemap(7); CopyWindowToVram(7, 2); DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[7], MAIN_MENU_BORDER_TILE); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(9, 231)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(113, 159)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(9, DISPLAY_WIDTH - 9)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(113, DISPLAY_HEIGHT - 1)); } static void MainMenu_FormatSavegameText(void) diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 8939edd908..cd92bbac18 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -36,37 +36,37 @@ static void LoadMapNamePopUpWindowBg(void); static EWRAM_DATA u8 sPopupTaskId = 0; // .rodata -static const u8 gMapPopUp_Table[][960] = +static const u8 sMapPopUp_Table[][960] = { - INCBIN_U8("graphics/interface/map_popup/wood.4bpp"), - INCBIN_U8("graphics/interface/map_popup/marble.4bpp"), - INCBIN_U8("graphics/interface/map_popup/stone.4bpp"), - INCBIN_U8("graphics/interface/map_popup/brick.4bpp"), - INCBIN_U8("graphics/interface/map_popup/underwater.4bpp"), - INCBIN_U8("graphics/interface/map_popup/stone2.4bpp"), + [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/interface/map_popup/wood.4bpp"), + [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/interface/map_popup/marble.4bpp"), + [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/interface/map_popup/stone.4bpp"), + [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/interface/map_popup/brick.4bpp"), + [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/interface/map_popup/underwater.4bpp"), + [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/interface/map_popup/stone2.4bpp"), }; -static const u8 gMapPopUp_Outline_Table[][960] = +static const u8 sMapPopUp_OutlineTable[][960] = { - INCBIN_U8("graphics/interface/map_popup/wood_outline.4bpp"), - INCBIN_U8("graphics/interface/map_popup/marble_outline.4bpp"), - INCBIN_U8("graphics/interface/map_popup/stone_outline.4bpp"), - INCBIN_U8("graphics/interface/map_popup/brick_outline.4bpp"), - INCBIN_U8("graphics/interface/map_popup/underwater_outline.4bpp"), - INCBIN_U8("graphics/interface/map_popup/stone2_outline.4bpp"), + [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/interface/map_popup/wood_outline.4bpp"), + [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/interface/map_popup/marble_outline.4bpp"), + [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/interface/map_popup/stone_outline.4bpp"), + [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/interface/map_popup/brick_outline.4bpp"), + [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/interface/map_popup/underwater_outline.4bpp"), + [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/interface/map_popup/stone2_outline.4bpp"), }; -static const u16 gMapPopUp_Palette_Table[][16] = +static const u16 sMapPopUp_PaletteTable[][16] = { - INCBIN_U16("graphics/interface/map_popup/wood.gbapal"), - INCBIN_U16("graphics/interface/map_popup/marble_outline.gbapal"), - INCBIN_U16("graphics/interface/map_popup/stone_outline.gbapal"), - INCBIN_U16("graphics/interface/map_popup/brick_outline.gbapal"), - INCBIN_U16("graphics/interface/map_popup/underwater_outline.gbapal"), - INCBIN_U16("graphics/interface/map_popup/stone2_outline.gbapal"), + [MAPPOPUP_THEME_WOOD] = INCBIN_U16("graphics/interface/map_popup/wood.gbapal"), + [MAPPOPUP_THEME_MARBLE] = INCBIN_U16("graphics/interface/map_popup/marble_outline.gbapal"), + [MAPPOPUP_THEME_STONE] = INCBIN_U16("graphics/interface/map_popup/stone_outline.gbapal"), + [MAPPOPUP_THEME_BRICK] = INCBIN_U16("graphics/interface/map_popup/brick_outline.gbapal"), + [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U16("graphics/interface/map_popup/underwater_outline.gbapal"), + [MAPPOPUP_THEME_STONE2] = INCBIN_U16("graphics/interface/map_popup/stone2_outline.gbapal"), }; -static const u16 gUnknown_0857F444[16] = INCBIN_U16("graphics/interface/map_popup/857F444.gbapal"); +static const u16 sMapPopUp_Palette_Underwater[16] = INCBIN_U16("graphics/interface/map_popup/underwater.gbapal"); static const u8 gRegionMapSectionId_To_PopUpThemeIdMapping[] = { @@ -197,8 +197,8 @@ static const u8 * const gBattlePyramid_MapHeaderStrings[] = gText_Pyramid, }; -// text -bool8 sub_80D47D4(void) +// Unused +static bool8 StartMenu_ShowMapNamePopup(void) { HideStartMenu(); ShowMapNamePopup(); @@ -333,24 +333,36 @@ static void ShowMapNamePopUpWindow(void) CopyWindowToVram(GetMapNamePopUpWindowId(), 3); } -static void sub_80D4A78(u8 bg, u8 x, u8 y, u8 deltaX, u8 deltaY, u8 unused) +#define TILE_TOP_EDGE_START 0x21D +#define TILE_TOP_EDGE_END 0x228 +#define TILE_LEFT_EDGE_TOP 0x229 +#define TILE_RIGHT_EDGE_TOP 0x22A +#define TILE_LEFT_EDGE_MID 0x22B +#define TILE_RIGHT_EDGE_MID 0x22C +#define TILE_LEFT_EDGE_BOT 0x22D +#define TILE_RIGHT_EDGE_BOT 0x22E +#define TILE_BOT_EDGE_START 0x22F +#define TILE_BOT_EDGE_END 0x23A + +static void DrawMapNamePopUpFrame(u8 bg, u8 x, u8 y, u8 deltaX, u8 deltaY, u8 unused) { s32 i; - for (i = 0; i < 12; i++) - { - FillBgTilemapBufferRect(bg, 0x21D + i, i - 1 + x, y - 1, 1, 1, 0xE); - } - FillBgTilemapBufferRect(bg, 0x229, x - 1, y, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, 0x22A, deltaX + x, y, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, 0x22B, x - 1, y + 1 , 1, 1, 0xE); - FillBgTilemapBufferRect(bg, 0x22C, deltaX + x, y + 1, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, 0x22D, x - 1, y + 2, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, 0x22E, deltaX + x, y + 2, 1, 1, 0xE); - for (i = 0; i < 12; i++) - { - FillBgTilemapBufferRect(bg, 0x22F + i, i - 1 + x, y + deltaY, 1, 1, 0xE); - } + // Draw top edge + for (i = 0; i < 1 + TILE_TOP_EDGE_END - TILE_TOP_EDGE_START; i++) + FillBgTilemapBufferRect(bg, TILE_TOP_EDGE_START + i, i - 1 + x, y - 1, 1, 1, 14); + + // Draw sides + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_TOP, x - 1, y, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_TOP, deltaX + x, y, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_MID, x - 1, y + 1, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_MID, deltaX + x, y + 1, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_BOT, x - 1, y + 2, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_BOT, deltaX + x, y + 2, 1, 1, 14); + + // Draw bottom edge + for (i = 0; i < 1 + TILE_BOT_EDGE_END - TILE_BOT_EDGE_START; i++) + FillBgTilemapBufferRect(bg, TILE_BOT_EDGE_START + i, i - 1 + x, y + deltaY, 1, 1, 14); } static void LoadMapNamePopUpWindowBg(void) @@ -368,12 +380,12 @@ static void LoadMapNamePopUpWindowBg(void) } popUpThemeId = gRegionMapSectionId_To_PopUpThemeIdMapping[regionMapSectionId]; - LoadBgTiles(GetWindowAttribute(popupWindowId, WINDOW_BG), gMapPopUp_Outline_Table[popUpThemeId], 0x400, 0x21D); - CallWindowFunction(popupWindowId, sub_80D4A78); + LoadBgTiles(GetWindowAttribute(popupWindowId, WINDOW_BG), sMapPopUp_OutlineTable[popUpThemeId], 0x400, 0x21D); + CallWindowFunction(popupWindowId, DrawMapNamePopUpFrame); PutWindowTilemap(popupWindowId); if (gMapHeader.weather == WEATHER_UNDERWATER_BUBBLES) - LoadPalette(&gUnknown_0857F444, 0xE0, 0x20); + LoadPalette(&sMapPopUp_Palette_Underwater, 0xE0, sizeof(sMapPopUp_Palette_Underwater)); else - LoadPalette(gMapPopUp_Palette_Table[popUpThemeId], 0xE0, 0x20); - BlitBitmapToWindow(popupWindowId, gMapPopUp_Table[popUpThemeId], 0, 0, 80, 24); + LoadPalette(sMapPopUp_PaletteTable[popUpThemeId], 0xE0, sizeof(sMapPopUp_PaletteTable[0])); + BlitBitmapToWindow(popupWindowId, sMapPopUp_Table[popUpThemeId], 0, 0, 80, 24); } diff --git a/src/match_call.c b/src/match_call.c index 723562ade1..fd0db630c4 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -34,12 +34,62 @@ #include "constants/songs.h" #include "constants/trainers.h" +// Each match call message has variables that can be populated randomly or +// dependent on the trainer. The below are IDs for how to populate the vars +// in a given message. +// Each message may have up to 3 vars in it +enum { + STR_TRAINER_NAME, + STR_MAP_NAME, + STR_SPECIES_IN_ROUTE, + STR_SPECIES_IN_PARTY, + STR_FACILITY_NAME, + STR_FRONTIER_STREAK, + STR_NONE = -1, +}; +#define STRS_NORMAL_MSG {STR_TRAINER_NAME, STR_NONE, STR_NONE} +#define STRS_WILD_BATTLE {STR_TRAINER_NAME, STR_SPECIES_IN_ROUTE, STR_NONE} +#define STRS_BATTLE_NEGATIVE {STR_TRAINER_NAME, STR_NONE, STR_NONE} +#define STRS_BATTLE_POSITIVE {STR_TRAINER_NAME, STR_SPECIES_IN_PARTY, STR_NONE} +#define STRS_BATTLE_REQUEST {STR_TRAINER_NAME, STR_MAP_NAME, STR_NONE} +#define STRS_FRONTIER {STR_TRAINER_NAME, STR_FACILITY_NAME, STR_FRONTIER_STREAK} + +#define NUM_STRVARS_IN_MSG 3 + +// Topic IDs for sMatchCallGeneralTopics +enum { + GEN_TOPIC_PERSONAL = 1, + GEN_TOPIC_STREAK, + GEN_TOPIC_STREAK_RECORD, + GEN_TOPIC_B_DOME, + GEN_TOPIC_B_PIKE, + GEN_TOPIC_B_PYRAMID, +}; + +// Topic IDs for sMatchCallBattleTopics +enum { + B_TOPIC_WILD = 1, + B_TOPIC_NEGATIVE, + B_TOPIC_POSITIVE, +}; + +// Each trainer has a text id for 1 of each of the 3 battle topics +// The msgId is the index into the respective topic's message table +// For all but 2 trainers this index is the same for each topic +#define BATTLE_TEXT_IDS(msgId) {TEXT_ID(B_TOPIC_WILD, (msgId)), TEXT_ID(B_TOPIC_NEGATIVE, (msgId)), TEXT_ID(B_TOPIC_POSITIVE, (msgId))} + +// Topic IDs for sMatchCallBattleRequestTopics +enum { + REQ_TOPIC_SAME_ROUTE = 1, + REQ_TOPIC_DIFF_ROUTE, +}; + struct MatchCallState { u32 minutes; u16 trainerId; u8 stepCounter; - u8 triggeredFromScript; + bool8 triggeredFromScript; }; struct MatchCallTrainerTextInfo @@ -56,7 +106,7 @@ struct MatchCallTrainerTextInfo struct MatchCallText { const u8 *text; - s8 stringVarFuncIds[3]; + s8 stringVarFuncIds[NUM_STRVARS_IN_MSG]; }; struct MultiTrainerMatchCallText @@ -71,8 +121,8 @@ struct BattleFrontierStreakInfo u16 streak; }; -EWRAM_DATA struct MatchCallState gMatchCallState = {0}; -EWRAM_DATA struct BattleFrontierStreakInfo gBattleFrontierStreakInfo = {0}; +static EWRAM_DATA struct MatchCallState sMatchCallState = {0}; +static EWRAM_DATA struct BattleFrontierStreakInfo sBattleFrontierStreakInfo = {0}; static u32 GetCurrentTotalMinutes(struct Time *); static u32 GetNumRegisteredNPCs(void); @@ -82,27 +132,27 @@ static u16 GetRematchTrainerLocation(int); static bool32 TrainerIsEligibleForRematch(int); static void StartMatchCall(void); static void ExecuteMatchCall(u8); -static void DrawMatchCallTextBoxBorder(u32, u32, u32); -static void sub_8196694(u8); +static void DrawMatchCallTextBoxBorder_Internal(u32, u32, u32); +static void Task_SpinPokenavIcon(u8); static void InitMatchCallTextPrinter(int, const u8 *); -static bool32 ExecuteMatchCallTextPrinter(int); +static bool32 RunMatchCallTextPrinter(int); static const struct MatchCallText *GetSameRouteMatchCallText(int, u8 *); static const struct MatchCallText *GetDifferentRouteMatchCallText(int, u8 *); static const struct MatchCallText *GetBattleMatchCallText(int, u8 *); static const struct MatchCallText *GetGeneralMatchCallText(int, u8 *); -static bool32 sub_8196D74(int); +static bool32 ShouldTrainerRequestBattle(int); static void BuildMatchCallString(int, const struct MatchCallText *, u8 *); static u16 GetFrontierStreakInfo(u16, u32 *); static void PopulateMatchCallStringVars(int, const s8 *); static void PopulateMatchCallStringVar(int, int, u8 *); -static bool32 LoadMatchCallWindowGfx(u8); -static bool32 MoveMatchCallWindowToVram(u8); -static bool32 PrintMatchCallIntroEllipsis(u8); -static bool32 sub_81962B0(u8); -static bool32 sub_81962D8(u8); -static bool32 sub_8196330(u8); -static bool32 sub_8196390(u8); -static bool32 sub_81963F0(u8); +static bool32 MatchCall_LoadGfx(u8); +static bool32 MatchCall_DrawWindow(u8); +static bool32 MatchCall_ReadyIntro(u8); +static bool32 MatchCall_SlideWindowIn(u8); +static bool32 MatchCall_PrintIntro(u8); +static bool32 MatchCall_PrintMessage(u8); +static bool32 MatchCall_SlideWindowOut(u8); +static bool32 MatchCall_EndCall(u8); static void PopulateTrainerName(int, u8 *); static void PopulateMapName(int, u8 *); static void PopulateSpeciesFromTrainerLocation(int, u8 *); @@ -117,851 +167,853 @@ static const struct MatchCallTrainerTextInfo sMatchCallTrainers[] = { .trainerId = TRAINER_ROSE_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) }, - .generalTextId = TEXT_ID(1, 3), + .battleTopicTextIds = BATTLE_TEXT_IDS(8), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 3), .battleFrontierRecordStreakTextIndex = 8, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 8), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 8), }, { .trainerId = TRAINER_ANDRES_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) }, - .generalTextId = TEXT_ID(1, 62), + .battleTopicTextIds = BATTLE_TEXT_IDS(12), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 62), .battleFrontierRecordStreakTextIndex = 12, - .sameRouteMatchCallTextId = TEXT_ID(1, 12), - .differentRouteMatchCallTextId = TEXT_ID(2, 12), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 12), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 12), }, { .trainerId = TRAINER_DUSTY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) }, - .generalTextId = TEXT_ID(1, 4), + .battleTopicTextIds = BATTLE_TEXT_IDS(12), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 4), .battleFrontierRecordStreakTextIndex = 12, - .sameRouteMatchCallTextId = TEXT_ID(1, 12), - .differentRouteMatchCallTextId = TEXT_ID(2, 12), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 12), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 12), }, { .trainerId = TRAINER_LOLA_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) }, - .generalTextId = TEXT_ID(1, 5), + .battleTopicTextIds = BATTLE_TEXT_IDS(2), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 5), .battleFrontierRecordStreakTextIndex = 2, - .sameRouteMatchCallTextId = TEXT_ID(1, 2), - .differentRouteMatchCallTextId = TEXT_ID(2, 2), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 2), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 2), }, { .trainerId = TRAINER_RICKY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) }, - .generalTextId = TEXT_ID(1, 6), + .battleTopicTextIds = BATTLE_TEXT_IDS(1), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 6), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 1), - .differentRouteMatchCallTextId = TEXT_ID(2, 1), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 1), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 1), }, { .trainerId = TRAINER_LILA_AND_ROY_1, .unused = 4, - .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) }, - .generalTextId = TEXT_ID(1, 61), + .battleTopicTextIds = BATTLE_TEXT_IDS(1), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 61), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 1), - .differentRouteMatchCallTextId = TEXT_ID(2, 1), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 1), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 1), }, { .trainerId = TRAINER_CRISTIN_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 10), TEXT_ID(2, 10), TEXT_ID(3, 10) }, - .generalTextId = TEXT_ID(1, 64), + .battleTopicTextIds = BATTLE_TEXT_IDS(10), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 64), .battleFrontierRecordStreakTextIndex = 10, - .sameRouteMatchCallTextId = TEXT_ID(1, 10), - .differentRouteMatchCallTextId = TEXT_ID(2, 10), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 10), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 10), }, { .trainerId = TRAINER_BROOKE_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 8), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 8), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, { .trainerId = TRAINER_WILTON_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 6), TEXT_ID(2, 6), TEXT_ID(3, 6) }, - .generalTextId = TEXT_ID(1, 7), + .battleTopicTextIds = BATTLE_TEXT_IDS(6), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 7), .battleFrontierRecordStreakTextIndex = 6, - .sameRouteMatchCallTextId = TEXT_ID(1, 6), - .differentRouteMatchCallTextId = TEXT_ID(2, 6), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 6), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 6), }, { .trainerId = TRAINER_VALERIE_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) }, - .generalTextId = TEXT_ID(1, 9), + .battleTopicTextIds = BATTLE_TEXT_IDS(8), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 9), .battleFrontierRecordStreakTextIndex = 8, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 8), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 8), }, { .trainerId = TRAINER_CINDY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) }, - .generalTextId = TEXT_ID(1, 10), + .battleTopicTextIds = BATTLE_TEXT_IDS(8), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 10), .battleFrontierRecordStreakTextIndex = 8, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 8), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 8), }, { .trainerId = TRAINER_THALIA_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 10), TEXT_ID(3, 10) }, - .generalTextId = TEXT_ID(1, 14), + // Thalia and Sawyer are the only ones who use different msg ids for their battle topics + .battleTopicTextIds = { TEXT_ID(B_TOPIC_WILD, 8), TEXT_ID(B_TOPIC_NEGATIVE, 10), TEXT_ID(B_TOPIC_POSITIVE, 10) }, + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 14), .battleFrontierRecordStreakTextIndex = 10, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 10), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 10), }, { .trainerId = TRAINER_JESSICA_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 10), TEXT_ID(2, 10), TEXT_ID(3, 10) }, - .generalTextId = TEXT_ID(1, 11), + .battleTopicTextIds = BATTLE_TEXT_IDS(10), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 11), .battleFrontierRecordStreakTextIndex = 10, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 10), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 10), }, { .trainerId = TRAINER_WINSTON_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 4), TEXT_ID(2, 4), TEXT_ID(3, 4) }, - .generalTextId = TEXT_ID(1, 12), + .battleTopicTextIds = BATTLE_TEXT_IDS(4), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 12), .battleFrontierRecordStreakTextIndex = 4, - .sameRouteMatchCallTextId = TEXT_ID(1, 4), - .differentRouteMatchCallTextId = TEXT_ID(2, 4), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 4), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 4), }, { .trainerId = TRAINER_STEVE_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 7), TEXT_ID(2, 7), TEXT_ID(3, 7) }, - .generalTextId = TEXT_ID(1, 13), + .battleTopicTextIds = BATTLE_TEXT_IDS(7), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 13), .battleFrontierRecordStreakTextIndex = 7, - .sameRouteMatchCallTextId = TEXT_ID(1, 7), - .differentRouteMatchCallTextId = TEXT_ID(2, 7), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 7), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 7), }, { .trainerId = TRAINER_TONY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) }, - .generalTextId = TEXT_ID(1, 15), + .battleTopicTextIds = BATTLE_TEXT_IDS(5), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 15), .battleFrontierRecordStreakTextIndex = 5, - .sameRouteMatchCallTextId = TEXT_ID(1, 5), - .differentRouteMatchCallTextId = TEXT_ID(2, 5), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 5), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 5), }, { .trainerId = TRAINER_NOB_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) }, - .generalTextId = TEXT_ID(1, 16), + .battleTopicTextIds = BATTLE_TEXT_IDS(3), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 16), .battleFrontierRecordStreakTextIndex = 3, - .sameRouteMatchCallTextId = TEXT_ID(1, 3), - .differentRouteMatchCallTextId = TEXT_ID(2, 3), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 3), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 3), }, { .trainerId = TRAINER_KOJI_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) }, - .generalTextId = TEXT_ID(1, 59), + .battleTopicTextIds = BATTLE_TEXT_IDS(3), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 59), .battleFrontierRecordStreakTextIndex = 3, - .sameRouteMatchCallTextId = TEXT_ID(1, 3), - .differentRouteMatchCallTextId = TEXT_ID(2, 3), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 3), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 3), }, { .trainerId = TRAINER_FERNANDO_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 6), TEXT_ID(2, 6), TEXT_ID(3, 6) }, - .generalTextId = TEXT_ID(1, 17), + .battleTopicTextIds = BATTLE_TEXT_IDS(6), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 17), .battleFrontierRecordStreakTextIndex = 6, - .sameRouteMatchCallTextId = TEXT_ID(1, 6), - .differentRouteMatchCallTextId = TEXT_ID(2, 6), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 6), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 6), }, { .trainerId = TRAINER_DALTON_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 4), TEXT_ID(2, 4), TEXT_ID(3, 4) }, - .generalTextId = TEXT_ID(1, 18), + .battleTopicTextIds = BATTLE_TEXT_IDS(4), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 18), .battleFrontierRecordStreakTextIndex = 4, - .sameRouteMatchCallTextId = TEXT_ID(1, 4), - .differentRouteMatchCallTextId = TEXT_ID(2, 4), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 4), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 4), }, { .trainerId = TRAINER_BERNIE_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 11), TEXT_ID(2, 11), TEXT_ID(3, 11) }, - .generalTextId = TEXT_ID(1, 19), + .battleTopicTextIds = BATTLE_TEXT_IDS(11), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 19), .battleFrontierRecordStreakTextIndex = 11, - .sameRouteMatchCallTextId = TEXT_ID(1, 11), - .differentRouteMatchCallTextId = TEXT_ID(2, 11), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 11), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 11), }, { .trainerId = TRAINER_ETHAN_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) }, - .generalTextId = TEXT_ID(1, 20), + .battleTopicTextIds = BATTLE_TEXT_IDS(1), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 20), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 1), - .differentRouteMatchCallTextId = TEXT_ID(2, 1), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 1), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 1), }, { .trainerId = TRAINER_JOHN_AND_JAY_1, .unused = 3, - .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) }, - .generalTextId = TEXT_ID(1, 60), + .battleTopicTextIds = BATTLE_TEXT_IDS(12), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 60), .battleFrontierRecordStreakTextIndex = 12, - .sameRouteMatchCallTextId = TEXT_ID(1, 12), - .differentRouteMatchCallTextId = TEXT_ID(2, 12), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 12), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 12), }, { .trainerId = TRAINER_JEFFREY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 7), TEXT_ID(2, 7), TEXT_ID(3, 7) }, - .generalTextId = TEXT_ID(1, 21), + .battleTopicTextIds = BATTLE_TEXT_IDS(7), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 21), .battleFrontierRecordStreakTextIndex = 7, - .sameRouteMatchCallTextId = TEXT_ID(1, 7), - .differentRouteMatchCallTextId = TEXT_ID(2, 7), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 7), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 7), }, { .trainerId = TRAINER_CAMERON_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 4), TEXT_ID(2, 4), TEXT_ID(3, 4) }, - .generalTextId = TEXT_ID(1, 22), + .battleTopicTextIds = BATTLE_TEXT_IDS(4), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 22), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 4), - .differentRouteMatchCallTextId = TEXT_ID(2, 4), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 4), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 4), }, { .trainerId = TRAINER_JACKI_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) }, - .generalTextId = TEXT_ID(1, 23), + .battleTopicTextIds = BATTLE_TEXT_IDS(8), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 23), .battleFrontierRecordStreakTextIndex = 8, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 8), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 8), }, { .trainerId = TRAINER_WALTER_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) }, - .generalTextId = TEXT_ID(1, 24), + .battleTopicTextIds = BATTLE_TEXT_IDS(12), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 24), .battleFrontierRecordStreakTextIndex = 12, - .sameRouteMatchCallTextId = TEXT_ID(1, 12), - .differentRouteMatchCallTextId = TEXT_ID(2, 12), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 12), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 12), }, { .trainerId = TRAINER_KAREN_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) }, - .generalTextId = TEXT_ID(1, 26), + .battleTopicTextIds = BATTLE_TEXT_IDS(2), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 26), .battleFrontierRecordStreakTextIndex = 2, - .sameRouteMatchCallTextId = TEXT_ID(1, 2), - .differentRouteMatchCallTextId = TEXT_ID(2, 2), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 2), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 2), }, { .trainerId = TRAINER_JERRY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) }, - .generalTextId = TEXT_ID(1, 25), + .battleTopicTextIds = BATTLE_TEXT_IDS(1), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 25), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 1), - .differentRouteMatchCallTextId = TEXT_ID(2, 1), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 1), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 1), }, { .trainerId = TRAINER_ANNA_AND_MEG_1, .unused = 6, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 27), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 27), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, { .trainerId = TRAINER_ISABEL_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 14), TEXT_ID(2, 14), TEXT_ID(3, 14) }, - .generalTextId = TEXT_ID(1, 29), + .battleTopicTextIds = BATTLE_TEXT_IDS(14), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 29), .battleFrontierRecordStreakTextIndex = 14, - .sameRouteMatchCallTextId = TEXT_ID(1, 14), - .differentRouteMatchCallTextId = TEXT_ID(2, 14), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 14), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 14), }, { .trainerId = TRAINER_MIGUEL_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 11), TEXT_ID(2, 11), TEXT_ID(3, 11) }, - .generalTextId = TEXT_ID(1, 28), + .battleTopicTextIds = BATTLE_TEXT_IDS(11), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 28), .battleFrontierRecordStreakTextIndex = 11, - .sameRouteMatchCallTextId = TEXT_ID(1, 11), - .differentRouteMatchCallTextId = TEXT_ID(2, 11), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 11), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 11), }, { .trainerId = TRAINER_TIMOTHY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) }, - .generalTextId = TEXT_ID(1, 30), + .battleTopicTextIds = BATTLE_TEXT_IDS(12), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 30), .battleFrontierRecordStreakTextIndex = 12, - .sameRouteMatchCallTextId = TEXT_ID(1, 12), - .differentRouteMatchCallTextId = TEXT_ID(2, 12), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 12), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 12), }, { .trainerId = TRAINER_SHELBY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 13), TEXT_ID(2, 13), TEXT_ID(3, 13) }, - .generalTextId = TEXT_ID(1, 31), + .battleTopicTextIds = BATTLE_TEXT_IDS(13), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 31), .battleFrontierRecordStreakTextIndex = 13, - .sameRouteMatchCallTextId = TEXT_ID(1, 13), - .differentRouteMatchCallTextId = TEXT_ID(2, 13), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 13), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 13), }, { .trainerId = TRAINER_CALVIN_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) }, - .generalTextId = TEXT_ID(1, 32), + .battleTopicTextIds = BATTLE_TEXT_IDS(1), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 32), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 1), - .differentRouteMatchCallTextId = TEXT_ID(2, 1), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 1), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 1), }, { .trainerId = TRAINER_ELLIOT_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) }, - .generalTextId = TEXT_ID(1, 33), + .battleTopicTextIds = BATTLE_TEXT_IDS(3), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 33), .battleFrontierRecordStreakTextIndex = 3, - .sameRouteMatchCallTextId = TEXT_ID(1, 3), - .differentRouteMatchCallTextId = TEXT_ID(2, 3), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 3), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 3), }, { .trainerId = TRAINER_ISAIAH_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) }, - .generalTextId = TEXT_ID(1, 38), + .battleTopicTextIds = BATTLE_TEXT_IDS(5), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 38), .battleFrontierRecordStreakTextIndex = 5, - .sameRouteMatchCallTextId = TEXT_ID(1, 5), - .differentRouteMatchCallTextId = TEXT_ID(2, 5), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 5), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 5), }, { .trainerId = TRAINER_MARIA_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 37), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 37), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, { .trainerId = TRAINER_ABIGAIL_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 35), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 35), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, { .trainerId = TRAINER_DYLAN_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) }, - .generalTextId = TEXT_ID(1, 36), + .battleTopicTextIds = BATTLE_TEXT_IDS(5), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 36), .battleFrontierRecordStreakTextIndex = 5, - .sameRouteMatchCallTextId = TEXT_ID(1, 5), - .differentRouteMatchCallTextId = TEXT_ID(2, 5), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 5), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 5), }, { .trainerId = TRAINER_KATELYN_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 40), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 40), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, { .trainerId = TRAINER_BENJAMIN_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) }, - .generalTextId = TEXT_ID(1, 34), + .battleTopicTextIds = BATTLE_TEXT_IDS(5), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 34), .battleFrontierRecordStreakTextIndex = 5, - .sameRouteMatchCallTextId = TEXT_ID(1, 5), - .differentRouteMatchCallTextId = TEXT_ID(2, 5), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 5), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 5), }, { .trainerId = TRAINER_PABLO_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) }, - .generalTextId = TEXT_ID(1, 39), + .battleTopicTextIds = BATTLE_TEXT_IDS(5), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 39), .battleFrontierRecordStreakTextIndex = 5, - .sameRouteMatchCallTextId = TEXT_ID(1, 5), - .differentRouteMatchCallTextId = TEXT_ID(2, 5), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 5), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 5), }, { .trainerId = TRAINER_NICOLAS_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 4), TEXT_ID(2, 4), TEXT_ID(3, 4) }, - .generalTextId = TEXT_ID(1, 41), + .battleTopicTextIds = BATTLE_TEXT_IDS(4), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 41), .battleFrontierRecordStreakTextIndex = 4, - .sameRouteMatchCallTextId = TEXT_ID(1, 4), - .differentRouteMatchCallTextId = TEXT_ID(2, 4), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 4), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 4), }, { .trainerId = TRAINER_ROBERT_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 6), TEXT_ID(2, 6), TEXT_ID(3, 6) }, - .generalTextId = TEXT_ID(1, 42), + .battleTopicTextIds = BATTLE_TEXT_IDS(6), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 42), .battleFrontierRecordStreakTextIndex = 6, - .sameRouteMatchCallTextId = TEXT_ID(1, 6), - .differentRouteMatchCallTextId = TEXT_ID(2, 6), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 6), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 6), }, { .trainerId = TRAINER_LAO_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) }, - .generalTextId = TEXT_ID(1, 43), + .battleTopicTextIds = BATTLE_TEXT_IDS(1), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 43), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 1), - .differentRouteMatchCallTextId = TEXT_ID(2, 1), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 1), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 1), }, { .trainerId = TRAINER_CYNDY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 44), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 44), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, { .trainerId = TRAINER_MADELINE_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) }, - .generalTextId = TEXT_ID(1, 45), + .battleTopicTextIds = BATTLE_TEXT_IDS(8), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 45), .battleFrontierRecordStreakTextIndex = 8, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 8), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 8), }, { .trainerId = TRAINER_JENNY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 46), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 46), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, { .trainerId = TRAINER_DIANA_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) }, - .generalTextId = TEXT_ID(1, 47), + .battleTopicTextIds = BATTLE_TEXT_IDS(2), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 47), .battleFrontierRecordStreakTextIndex = 2, - .sameRouteMatchCallTextId = TEXT_ID(1, 2), - .differentRouteMatchCallTextId = TEXT_ID(2, 2), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 2), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 2), }, { .trainerId = TRAINER_AMY_AND_LIV_1, .unused = 2, - .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) }, - .generalTextId = TEXT_ID(1, 48), + .battleTopicTextIds = BATTLE_TEXT_IDS(2), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 48), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 2), - .differentRouteMatchCallTextId = TEXT_ID(2, 2), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 2), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 2), }, { .trainerId = TRAINER_ERNEST_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) }, - .generalTextId = TEXT_ID(1, 49), + .battleTopicTextIds = BATTLE_TEXT_IDS(3), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 49), .battleFrontierRecordStreakTextIndex = 3, - .sameRouteMatchCallTextId = TEXT_ID(1, 3), - .differentRouteMatchCallTextId = TEXT_ID(2, 3), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 3), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 3), }, { .trainerId = TRAINER_CORY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) }, - .generalTextId = TEXT_ID(1, 63), + .battleTopicTextIds = BATTLE_TEXT_IDS(3), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 63), .battleFrontierRecordStreakTextIndex = 3, - .sameRouteMatchCallTextId = TEXT_ID(1, 3), - .differentRouteMatchCallTextId = TEXT_ID(2, 3), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 3), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 3), }, { .trainerId = TRAINER_EDWIN_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 7), TEXT_ID(2, 7), TEXT_ID(3, 7) }, - .generalTextId = TEXT_ID(1, 50), + .battleTopicTextIds = BATTLE_TEXT_IDS(7), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 50), .battleFrontierRecordStreakTextIndex = 7, - .sameRouteMatchCallTextId = TEXT_ID(1, 7), - .differentRouteMatchCallTextId = TEXT_ID(2, 7), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 7), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 7), }, { .trainerId = TRAINER_LYDIA_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) }, - .generalTextId = TEXT_ID(1, 52), + .battleTopicTextIds = BATTLE_TEXT_IDS(8), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 52), .battleFrontierRecordStreakTextIndex = 8, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 8), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 8), }, { .trainerId = TRAINER_ISAAC_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) }, - .generalTextId = TEXT_ID(1, 51), + .battleTopicTextIds = BATTLE_TEXT_IDS(5), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 51), .battleFrontierRecordStreakTextIndex = 5, - .sameRouteMatchCallTextId = TEXT_ID(1, 5), - .differentRouteMatchCallTextId = TEXT_ID(2, 5), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 5), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 5), }, { .trainerId = TRAINER_GABRIELLE_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) }, - .generalTextId = TEXT_ID(1, 2), + .battleTopicTextIds = BATTLE_TEXT_IDS(8), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 2), .battleFrontierRecordStreakTextIndex = 8, - .sameRouteMatchCallTextId = TEXT_ID(1, 8), - .differentRouteMatchCallTextId = TEXT_ID(2, 8), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 8), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 8), }, { .trainerId = TRAINER_CATHERINE_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 54), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 54), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, { .trainerId = TRAINER_JACKSON_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) }, - .generalTextId = TEXT_ID(1, 53), + .battleTopicTextIds = BATTLE_TEXT_IDS(5), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 53), .battleFrontierRecordStreakTextIndex = 5, - .sameRouteMatchCallTextId = TEXT_ID(1, 5), - .differentRouteMatchCallTextId = TEXT_ID(2, 5), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 5), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 5), }, { .trainerId = TRAINER_HALEY_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) }, - .generalTextId = TEXT_ID(1, 55), + .battleTopicTextIds = BATTLE_TEXT_IDS(2), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 55), .battleFrontierRecordStreakTextIndex = 2, - .sameRouteMatchCallTextId = TEXT_ID(1, 2), - .differentRouteMatchCallTextId = TEXT_ID(2, 2), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 2), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 2), }, { .trainerId = TRAINER_JAMES_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) }, - .generalTextId = TEXT_ID(1, 56), + .battleTopicTextIds = BATTLE_TEXT_IDS(1), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 56), .battleFrontierRecordStreakTextIndex = 1, - .sameRouteMatchCallTextId = TEXT_ID(1, 1), - .differentRouteMatchCallTextId = TEXT_ID(2, 1), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 1), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 1), }, { .trainerId = TRAINER_TRENT_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) }, - .generalTextId = TEXT_ID(1, 57), + .battleTopicTextIds = BATTLE_TEXT_IDS(3), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 57), .battleFrontierRecordStreakTextIndex = 3, - .sameRouteMatchCallTextId = TEXT_ID(1, 3), - .differentRouteMatchCallTextId = TEXT_ID(2, 3), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 3), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 3), }, { .trainerId = TRAINER_SAWYER_1, .unused = 0, - .battleTopicTextIds = { TEXT_ID(1, 15), TEXT_ID(2, 3), TEXT_ID(3, 3) }, - .generalTextId = TEXT_ID(1, 1), + // Thalia and Sawyer are the only ones who use different msg ids for their battle topics + .battleTopicTextIds = { TEXT_ID(B_TOPIC_WILD, 15), TEXT_ID(B_TOPIC_NEGATIVE, 3), TEXT_ID(B_TOPIC_POSITIVE, 3) }, + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 1), .battleFrontierRecordStreakTextIndex = 3, - .sameRouteMatchCallTextId = TEXT_ID(1, 3), - .differentRouteMatchCallTextId = TEXT_ID(2, 3), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 3), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 3), }, { .trainerId = TRAINER_KIRA_AND_DAN_1, .unused = 1, - .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) }, - .generalTextId = TEXT_ID(1, 58), + .battleTopicTextIds = BATTLE_TEXT_IDS(9), + .generalTextId = TEXT_ID(GEN_TOPIC_PERSONAL, 58), .battleFrontierRecordStreakTextIndex = 9, - .sameRouteMatchCallTextId = TEXT_ID(1, 9), - .differentRouteMatchCallTextId = TEXT_ID(2, 9), + .sameRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_SAME_ROUTE, 9), + .differentRouteMatchCallTextId = TEXT_ID(REQ_TOPIC_DIFF_ROUTE, 9), }, }; static const struct MatchCallText sMatchCallWildBattleTexts[] = { - { .text = MatchCall_WildBattleText1, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText2, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText3, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText4, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText5, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText6, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText7, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText8, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText9, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText10, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText11, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText12, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText13, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText14, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_WildBattleText15, .stringVarFuncIds = { 0, 2, -1 } }, + { .text = MatchCall_WildBattleText1, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText2, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText3, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText4, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText5, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText6, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText7, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText8, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText9, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText10, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText11, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText12, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText13, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText14, .stringVarFuncIds = STRS_WILD_BATTLE }, + { .text = MatchCall_WildBattleText15, .stringVarFuncIds = STRS_WILD_BATTLE }, }; - static const struct MatchCallText sMatchCallNegativeBattleTexts[] = - { - { .text = MatchCall_NegativeBattleText1, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText2, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText3, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText4, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText5, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText6, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText7, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText8, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText9, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText10, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText11, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText12, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText13, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_NegativeBattleText14, .stringVarFuncIds = { 0, -1, -1 } }, +static const struct MatchCallText sMatchCallNegativeBattleTexts[] = +{ + { .text = MatchCall_NegativeBattleText1, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText2, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText3, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText4, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText5, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText6, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText7, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText8, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText9, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText10, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText11, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText12, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText13, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, + { .text = MatchCall_NegativeBattleText14, .stringVarFuncIds = STRS_BATTLE_NEGATIVE }, }; static const struct MatchCallText sMatchCallPositiveBattleTexts[] = { - { .text = MatchCall_PositiveBattleText1, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText2, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText3, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText4, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText5, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText6, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText7, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText8, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText9, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText10, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText11, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText12, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText13, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PositiveBattleText14, .stringVarFuncIds = { 0, 3, -1 } }, + { .text = MatchCall_PositiveBattleText1, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText2, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText3, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText4, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText5, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText6, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText7, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText8, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText9, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText10, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText11, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText12, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText13, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, + { .text = MatchCall_PositiveBattleText14, .stringVarFuncIds = STRS_BATTLE_POSITIVE }, }; static const struct MatchCallText sMatchCallSameRouteBattleRequestTexts[] = { - { .text = MatchCall_SameRouteBattleRequestText1, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText2, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText3, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText4, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText5, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText6, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText7, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText8, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText9, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText10, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText11, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText12, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText13, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_SameRouteBattleRequestText14, .stringVarFuncIds = { 0, 1, -1 } }, + { .text = MatchCall_SameRouteBattleRequestText1, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText2, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText3, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText4, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText5, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText6, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText7, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText8, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText9, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText10, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText11, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText12, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText13, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_SameRouteBattleRequestText14, .stringVarFuncIds = STRS_BATTLE_REQUEST }, }; static const struct MatchCallText sMatchCallDifferentRouteBattleRequestTexts[] = { - { .text = MatchCall_DifferentRouteBattleRequestText1, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText2, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText3, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText4, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText5, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText6, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText7, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText8, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText9, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText10, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText11, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText12, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText13, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_DifferentRouteBattleRequestText14, .stringVarFuncIds = { 0, 1, -1 } }, + { .text = MatchCall_DifferentRouteBattleRequestText1, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText2, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText3, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText4, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText5, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText6, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText7, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText8, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText9, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText10, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText11, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText12, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText13, .stringVarFuncIds = STRS_BATTLE_REQUEST }, + { .text = MatchCall_DifferentRouteBattleRequestText14, .stringVarFuncIds = STRS_BATTLE_REQUEST }, }; static const struct MatchCallText sMatchCallPersonalizedTexts[] = { - { .text = MatchCall_PersonalizedText1, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_PersonalizedText2, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText3, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText4, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText5, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText6, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText7, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText8, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText9, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText10, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText11, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText12, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText13, .stringVarFuncIds = { 0, 2, -1 } }, - { .text = MatchCall_PersonalizedText14, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText15, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText16, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText17, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText18, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PersonalizedText19, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText20, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText21, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText22, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText23, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText24, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText25, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText26, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText27, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText28, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PersonalizedText29, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PersonalizedText30, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText31, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText32, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText33, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText34, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText35, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText36, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText37, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText38, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText39, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText40, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText41, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText42, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PersonalizedText43, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText44, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PersonalizedText45, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText46, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText47, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText48, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText49, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText50, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText51, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_PersonalizedText52, .stringVarFuncIds = { 0, 3, -1 } }, - { .text = MatchCall_PersonalizedText53, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText54, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText55, .stringVarFuncIds = { 0, 1, -1 } }, - { .text = MatchCall_PersonalizedText56, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText57, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText58, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText59, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText60, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText61, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText62, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText63, .stringVarFuncIds = { 0, -1, -1 } }, - { .text = MatchCall_PersonalizedText64, .stringVarFuncIds = { 0, -1, -1 } }, + { .text = MatchCall_PersonalizedText1, .stringVarFuncIds = { STR_TRAINER_NAME, STR_MAP_NAME, STR_NONE } }, + { .text = MatchCall_PersonalizedText2, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText3, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText4, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText5, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText6, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText7, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText8, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText9, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText10, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText11, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText12, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText13, .stringVarFuncIds = { STR_TRAINER_NAME, STR_SPECIES_IN_ROUTE, STR_NONE } }, + { .text = MatchCall_PersonalizedText14, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText15, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText16, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText17, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText18, .stringVarFuncIds = { STR_TRAINER_NAME, STR_SPECIES_IN_PARTY, STR_NONE } }, + { .text = MatchCall_PersonalizedText19, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText20, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText21, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText22, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText23, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText24, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText25, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText26, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText27, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText28, .stringVarFuncIds = { STR_TRAINER_NAME, STR_SPECIES_IN_PARTY, STR_NONE } }, + { .text = MatchCall_PersonalizedText29, .stringVarFuncIds = { STR_TRAINER_NAME, STR_SPECIES_IN_PARTY, STR_NONE } }, + { .text = MatchCall_PersonalizedText30, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText31, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText32, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText33, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText34, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText35, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText36, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText37, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText38, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText39, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText40, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText41, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText42, .stringVarFuncIds = { STR_TRAINER_NAME, STR_SPECIES_IN_PARTY, STR_NONE } }, + { .text = MatchCall_PersonalizedText43, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText44, .stringVarFuncIds = { STR_TRAINER_NAME, STR_SPECIES_IN_PARTY, STR_NONE } }, + { .text = MatchCall_PersonalizedText45, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText46, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText47, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText48, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText49, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText50, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText51, .stringVarFuncIds = { STR_TRAINER_NAME, STR_MAP_NAME, STR_NONE } }, + { .text = MatchCall_PersonalizedText52, .stringVarFuncIds = { STR_TRAINER_NAME, STR_SPECIES_IN_PARTY, STR_NONE } }, + { .text = MatchCall_PersonalizedText53, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText54, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText55, .stringVarFuncIds = { STR_TRAINER_NAME, STR_MAP_NAME, STR_NONE } }, + { .text = MatchCall_PersonalizedText56, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText57, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText58, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText59, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText60, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText61, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText62, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText63, .stringVarFuncIds = STRS_NORMAL_MSG }, + { .text = MatchCall_PersonalizedText64, .stringVarFuncIds = STRS_NORMAL_MSG }, }; static const struct MatchCallText sMatchCallBattleFrontierStreakTexts[] = { - { .text = MatchCall_BattleFrontierStreakText1, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText2, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText3, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText4, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText5, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText6, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText7, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText8, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText9, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText10, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText11, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText12, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText13, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierStreakText14, .stringVarFuncIds = { 0, 4, 5 } }, + { .text = MatchCall_BattleFrontierStreakText1, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText2, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText3, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText4, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText5, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText6, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText7, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText8, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText9, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText10, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText11, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText12, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText13, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierStreakText14, .stringVarFuncIds = STRS_FRONTIER }, }; static const struct MatchCallText sMatchCallBattleFrontierRecordStreakTexts[] = { - { .text = MatchCall_BattleFrontierRecordStreakText1, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText2, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText3, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText4, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText5, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText6, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText7, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText8, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText9, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText10, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText11, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText12, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText13, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleFrontierRecordStreakText14, .stringVarFuncIds = { 0, 4, 5 } }, + { .text = MatchCall_BattleFrontierRecordStreakText1, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText2, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText3, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText4, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText5, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText6, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText7, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText8, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText9, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText10, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText11, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText12, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText13, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleFrontierRecordStreakText14, .stringVarFuncIds = STRS_FRONTIER }, }; static const struct MatchCallText sMatchCallBattleDomeTexts[] = { - { .text = MatchCall_BattleDomeText1, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText2, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText3, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText4, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText5, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText6, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText7, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText8, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText9, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText10, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText11, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText12, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText13, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattleDomeText14, .stringVarFuncIds = { 0, 4, 5 } }, + { .text = MatchCall_BattleDomeText1, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText2, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText3, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText4, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText5, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText6, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText7, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText8, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText9, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText10, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText11, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText12, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText13, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattleDomeText14, .stringVarFuncIds = STRS_FRONTIER }, }; static const struct MatchCallText sMatchCallBattlePikeTexts[] = { - { .text = MatchCall_BattlePikeText1, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText2, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText3, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText4, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText5, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText6, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText7, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText8, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText9, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText10, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText11, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText12, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText13, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePikeText14, .stringVarFuncIds = { 0, 4, 5 } }, + { .text = MatchCall_BattlePikeText1, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText2, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText3, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText4, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText5, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText6, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText7, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText8, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText9, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText10, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText11, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText12, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText13, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePikeText14, .stringVarFuncIds = STRS_FRONTIER }, }; static const struct MatchCallText sMatchCallBattlePyramidTexts[] = { - { .text = MatchCall_BattlePyramidText1, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText2, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText3, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText4, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText5, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText6, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText7, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText8, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText9, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText10, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText11, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText12, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText13, .stringVarFuncIds = { 0, 4, 5 } }, - { .text = MatchCall_BattlePyramidText14, .stringVarFuncIds = { 0, 4, 5 } }, + { .text = MatchCall_BattlePyramidText1, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText2, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText3, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText4, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText5, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText6, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText7, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText8, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText9, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText10, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText11, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText12, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText13, .stringVarFuncIds = STRS_FRONTIER }, + { .text = MatchCall_BattlePyramidText14, .stringVarFuncIds = STRS_FRONTIER }, }; static const struct MatchCallText *const sMatchCallBattleTopics[] = { - sMatchCallWildBattleTexts, - sMatchCallNegativeBattleTexts, - sMatchCallPositiveBattleTexts, + [B_TOPIC_WILD - 1] = sMatchCallWildBattleTexts, + [B_TOPIC_NEGATIVE - 1] = sMatchCallNegativeBattleTexts, + [B_TOPIC_POSITIVE - 1] = sMatchCallPositiveBattleTexts, }; static const struct MatchCallText *const sMatchCallBattleRequestTopics[] = { - sMatchCallSameRouteBattleRequestTexts, - sMatchCallDifferentRouteBattleRequestTexts, + [REQ_TOPIC_SAME_ROUTE - 1] = sMatchCallSameRouteBattleRequestTexts, + [REQ_TOPIC_DIFF_ROUTE - 1] = sMatchCallDifferentRouteBattleRequestTexts, }; static const struct MatchCallText *const sMatchCallGeneralTopics[] = { - sMatchCallPersonalizedTexts, - sMatchCallBattleFrontierStreakTexts, - sMatchCallBattleFrontierRecordStreakTexts, - sMatchCallBattleDomeTexts, - sMatchCallBattlePikeTexts, - sMatchCallBattlePyramidTexts, + [GEN_TOPIC_PERSONAL - 1] = sMatchCallPersonalizedTexts, + [GEN_TOPIC_STREAK - 1] = sMatchCallBattleFrontierStreakTexts, + [GEN_TOPIC_STREAK_RECORD - 1] = sMatchCallBattleFrontierRecordStreakTexts, + [GEN_TOPIC_B_DOME - 1] = sMatchCallBattleDomeTexts, + [GEN_TOPIC_B_PIKE - 1] = sMatchCallBattlePikeTexts, + [GEN_TOPIC_B_PYRAMID - 1] = sMatchCallBattlePyramidTexts, }; extern const u8 gBirchDexRatingText_AreYouCurious[]; @@ -971,13 +1023,13 @@ extern const u8 gBirchDexRatingText_OnANationwideBasis[]; void InitMatchCallCounters(void) { RtcCalcLocalTime(); - gMatchCallState.minutes = GetCurrentTotalMinutes(&gLocalTime) + 10; - gMatchCallState.stepCounter = 0; + sMatchCallState.minutes = GetCurrentTotalMinutes(&gLocalTime) + 10; + sMatchCallState.stepCounter = 0; } static u32 GetCurrentTotalMinutes(struct Time *time) { - return time->days * 1440 + time->hours * 60 + time->minutes; + return time->days * 24 * 60 + time->hours * 60 + time->minutes; } static bool32 UpdateMatchCallMinutesCounter(void) @@ -985,9 +1037,9 @@ static bool32 UpdateMatchCallMinutesCounter(void) int curMinutes; RtcCalcLocalTime(); curMinutes = GetCurrentTotalMinutes(&gLocalTime); - if (gMatchCallState.minutes > curMinutes || curMinutes - gMatchCallState.minutes > 9) + if (sMatchCallState.minutes > curMinutes || curMinutes - sMatchCallState.minutes > 9) { - gMatchCallState.minutes = curMinutes; + sMatchCallState.minutes = curMinutes; return TRUE; } @@ -1026,9 +1078,9 @@ static bool32 MapAllowsMatchCall(void) static bool32 UpdateMatchCallStepCounter(void) { - if (++gMatchCallState.stepCounter >= 10) + if (++sMatchCallState.stepCounter >= 10) { - gMatchCallState.stepCounter = 0; + sMatchCallState.stepCounter = 0; return TRUE; } else @@ -1041,15 +1093,15 @@ static bool32 SelectMatchCallTrainer(void) { u32 matchCallId; u32 numRegistered = GetNumRegisteredNPCs(); - if (!numRegistered) + if (numRegistered == 0) return FALSE; - gMatchCallState.trainerId = GetActiveMatchCallTrainerId(Random() % numRegistered); - gMatchCallState.triggeredFromScript = 0; - if (gMatchCallState.trainerId == REMATCH_TABLE_ENTRIES) + sMatchCallState.trainerId = GetActiveMatchCallTrainerId(Random() % numRegistered); + sMatchCallState.triggeredFromScript = FALSE; + if (sMatchCallState.trainerId == REMATCH_TABLE_ENTRIES) return FALSE; - matchCallId = GetTrainerMatchCallId(gMatchCallState.trainerId); + matchCallId = GetTrainerMatchCallId(sMatchCallState.trainerId); if (GetRematchTrainerLocation(matchCallId) == gMapHeader.regionMapSectionId && !TrainerIsEligibleForRematch(matchCallId)) return FALSE; @@ -1085,10 +1137,23 @@ static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId) return REMATCH_TABLE_ENTRIES; } +/* + From the function calls below, a call can only be triggered... + - If the player has match call + - Every 10th step + - Every 10 minutes + - 1/3 of the time (or 2/3 of the time, if the lead party Pokémon has Lightning Rod) + - If in a valid outdoor map (not Safari Zone, not underwater, not Mt Chimney with Team Magma, not Sootopolis with legendaries) + - If an eligible trainer to call the player is selected +*/ bool32 TryStartMatchCall(void) { - if (FlagGet(FLAG_HAS_MATCH_CALL) && UpdateMatchCallStepCounter() && UpdateMatchCallMinutesCounter() - && CheckMatchCallChance() && MapAllowsMatchCall() && SelectMatchCallTrainer()) + if (FlagGet(FLAG_HAS_MATCH_CALL) + && UpdateMatchCallStepCounter() + && UpdateMatchCallMinutesCounter() + && CheckMatchCallChance() + && MapAllowsMatchCall() + && SelectMatchCallTrainer()) { StartMatchCall(); return TRUE; @@ -1099,7 +1164,7 @@ bool32 TryStartMatchCall(void) void StartMatchCallFromScript(const u8 *message) { - gMatchCallState.triggeredFromScript = 1; + sMatchCallState.triggeredFromScript = TRUE; StartMatchCall(); } @@ -1110,11 +1175,11 @@ bool32 IsMatchCallTaskActive(void) static void StartMatchCall(void) { - if (!gMatchCallState.triggeredFromScript) + if (!sMatchCallState.triggeredFromScript) { ScriptContext2_Enable(); FreezeObjectEvents(); - sub_808B864(); + PlayerFreeze(); sub_808BCF4(); } @@ -1122,33 +1187,37 @@ static void StartMatchCall(void) CreateTask(ExecuteMatchCall, 1); } -static const u16 sUnknown_0860EA4C[] = INCBIN_U16("graphics/unknown/unknown_60EA4C.gbapal"); -static const u8 sUnknown_0860EA6C[] = INCBIN_U8("graphics/interface/menu_border.4bpp"); -static const u16 sPokeNavIconPalette[] = INCBIN_U16("graphics/pokenav/icon.gbapal"); -static const u32 sPokeNavIconGfx[] = INCBIN_U32("graphics/pokenav/icon.4bpp.lz"); +static const u16 sMatchCallWindow_Pal[] = INCBIN_U16("graphics/pokenav/match_call_window.gbapal"); +static const u8 sMatchCallWindow_Gfx[] = INCBIN_U8("graphics/pokenav/match_call_window.4bpp"); +static const u16 sPokenavIcon_Pal[] = INCBIN_U16("graphics/pokenav/icon.gbapal"); +static const u32 sPokenavIcon_Gfx[] = INCBIN_U32("graphics/pokenav/icon.4bpp.lz"); static const u8 sText_PokenavCallEllipsis[] = _("………………\p"); +#define tState data[0] +#define tWindowId data[2] +#define tIconTaskId data[5] + static bool32 (*const sMatchCallTaskFuncs[])(u8) = { - LoadMatchCallWindowGfx, - MoveMatchCallWindowToVram, - PrintMatchCallIntroEllipsis, - sub_81962B0, - sub_81962D8, - sub_8196330, - sub_8196390, - sub_81963F0, + MatchCall_LoadGfx, + MatchCall_DrawWindow, + MatchCall_ReadyIntro, + MatchCall_SlideWindowIn, + MatchCall_PrintIntro, + MatchCall_PrintMessage, + MatchCall_SlideWindowOut, + MatchCall_EndCall, }; static void ExecuteMatchCall(u8 taskId) { - s16 *taskData = gTasks[taskId].data; - if (sMatchCallTaskFuncs[taskData[0]](taskId)) + s16 *data = gTasks[taskId].data; + if (sMatchCallTaskFuncs[tState](taskId)) { - taskData[0]++; - taskData[1] = 0; - if ((u16)taskData[0] > 7) + tState++; + data[1] = 0; // Never read + if ((u16)tState > 7) DestroyTask(taskId); } } @@ -1164,65 +1233,69 @@ static const struct WindowTemplate sMatchCallTextWindow = .baseBlock = 0x200 }; -static bool32 LoadMatchCallWindowGfx(u8 taskId) +#define TILE_MC_WINDOW 0x270 +#define TILE_POKENAV_ICON 0x279 + +static bool32 MatchCall_LoadGfx(u8 taskId) { - s16 *taskData = gTasks[taskId].data; - taskData[2] = AddWindow(&sMatchCallTextWindow); - if (taskData[2] == 0xFF) + s16 *data = gTasks[taskId].data; + tWindowId = AddWindow(&sMatchCallTextWindow); + if (tWindowId == WINDOW_NONE) { DestroyTask(taskId); return FALSE; } - if (LoadBgTiles(0, sUnknown_0860EA6C, sizeof(sUnknown_0860EA6C), 0x270) == 0xFFFF) + if (LoadBgTiles(0, sMatchCallWindow_Gfx, sizeof(sMatchCallWindow_Gfx), TILE_MC_WINDOW) == 0xFFFF) { - RemoveWindow(taskData[2]); + RemoveWindow(tWindowId); DestroyTask(taskId); return FALSE; } - if (!DecompressAndCopyTileDataToVram(0, sPokeNavIconGfx, 0, 0x279, 0)) + if (!DecompressAndCopyTileDataToVram(0, sPokenavIcon_Gfx, 0, TILE_POKENAV_ICON, 0)) { - RemoveWindow(taskData[2]); + RemoveWindow(tWindowId); DestroyTask(taskId); return FALSE; } - FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8)); - LoadPalette(sUnknown_0860EA4C, 0xE0, 0x20); - LoadPalette(sPokeNavIconPalette, 0xF0, 0x20); + FillWindowPixelBuffer(tWindowId, PIXEL_FILL(8)); + LoadPalette(sMatchCallWindow_Pal, 0xE0, sizeof(sMatchCallWindow_Pal)); + LoadPalette(sPokenavIcon_Pal, 0xF0, sizeof(sPokenavIcon_Pal)); ChangeBgY(0, -0x2000, 0); return TRUE; } -static bool32 MoveMatchCallWindowToVram(u8 taskId) +static bool32 MatchCall_DrawWindow(u8 taskId) { - s16 *taskData = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (FreeTempTileDataBuffersIfPossible()) return FALSE; - PutWindowTilemap(taskData[2]); - DrawMatchCallTextBoxBorder(taskData[2], 0x270, 14); - WriteSequenceToBgTilemapBuffer(0, 0xF279, 1, 15, 4, 4, 17, 1); - taskData[5] = CreateTask(sub_8196694, 10); - CopyWindowToVram(taskData[2], 2); + PutWindowTilemap(tWindowId); + DrawMatchCallTextBoxBorder_Internal(tWindowId, TILE_MC_WINDOW, 14); + WriteSequenceToBgTilemapBuffer(0, (0xF << 12) | TILE_POKENAV_ICON, 1, 15, 4, 4, 17, 1); + tIconTaskId = CreateTask(Task_SpinPokenavIcon, 10); + CopyWindowToVram(tWindowId, 2); CopyBgTilemapBufferToVram(0); return TRUE; } -static bool32 PrintMatchCallIntroEllipsis(u8 taskId) +static bool32 MatchCall_ReadyIntro(u8 taskId) { - s16 *taskData = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (!IsDma3ManagerBusyWithBgCopy()) { - InitMatchCallTextPrinter(taskData[2], sText_PokenavCallEllipsis); + // Note that "..." is not printed yet, just readied + InitMatchCallTextPrinter(tWindowId, sText_PokenavCallEllipsis); return TRUE; } return FALSE; } -static bool32 sub_81962B0(u8 taskId) +static bool32 MatchCall_SlideWindowIn(u8 taskId) { if (ChangeBgY(0, 0x600, 1) >= 0) { @@ -1233,29 +1306,30 @@ static bool32 sub_81962B0(u8 taskId) return FALSE; } -static bool32 sub_81962D8(u8 taskId) +static bool32 MatchCall_PrintIntro(u8 taskId) { - s16 *taskData = gTasks[taskId].data; - if (!ExecuteMatchCallTextPrinter(taskData[2])) + s16 *data = gTasks[taskId].data; + if (!RunMatchCallTextPrinter(tWindowId)) { - FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8)); - if (!gMatchCallState.triggeredFromScript) - SelectMatchCallMessage(gMatchCallState.trainerId, gStringVar4); - - InitMatchCallTextPrinter(taskData[2], gStringVar4); + FillWindowPixelBuffer(tWindowId, PIXEL_FILL(8)); + + // Ready the message + if (!sMatchCallState.triggeredFromScript) + SelectMatchCallMessage(sMatchCallState.trainerId, gStringVar4); + InitMatchCallTextPrinter(tWindowId, gStringVar4); return TRUE; } return FALSE; } -static bool32 sub_8196330(u8 taskId) +static bool32 MatchCall_PrintMessage(u8 taskId) { - s16 *taskData = gTasks[taskId].data; - if (!ExecuteMatchCallTextPrinter(taskData[2]) && !IsSEPlaying() && JOY_NEW(A_BUTTON | B_BUTTON)) + s16 *data = gTasks[taskId].data; + if (!RunMatchCallTextPrinter(tWindowId) && !IsSEPlaying() && JOY_NEW(A_BUTTON | B_BUTTON)) { - FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8)); - CopyWindowToVram(taskData[2], 2); + FillWindowPixelBuffer(tWindowId, PIXEL_FILL(8)); + CopyWindowToVram(tWindowId, 2); PlaySE(SE_POKENAV_HANG_UP); return TRUE; } @@ -1263,14 +1337,14 @@ static bool32 sub_8196330(u8 taskId) return FALSE; } -static bool32 sub_8196390(u8 taskId) +static bool32 MatchCall_SlideWindowOut(u8 taskId) { - s16 *taskData = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (ChangeBgY(0, 0x600, 2) <= -0x2000) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 14, 30, 6); - DestroyTask(taskData[5]); - RemoveWindow(taskData[2]); + DestroyTask(tIconTaskId); + RemoveWindow(tWindowId); CopyBgTilemapBufferToVram(0); return TRUE; } @@ -1278,13 +1352,13 @@ static bool32 sub_8196390(u8 taskId) return FALSE; } -static bool32 sub_81963F0(u8 taskId) +static bool32 MatchCall_EndCall(u8 taskId) { u8 playerObjectId; if (!IsDma3ManagerBusyWithBgCopy() && !IsSEPlaying()) { ChangeBgY(0, 0, 0); - if (!gMatchCallState.triggeredFromScript) + if (!sMatchCallState.triggeredFromScript) { LoadMessageBoxAndBorderGfx(); playerObjectId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); @@ -1300,7 +1374,7 @@ static bool32 sub_81963F0(u8 taskId) return FALSE; } -static void DrawMatchCallTextBoxBorder(u32 windowId, u32 tileOffset, u32 paletteId) +static void DrawMatchCallTextBoxBorder_Internal(u32 windowId, u32 tileOffset, u32 paletteId) { int bg, x, y, width, height; int tileNum; @@ -1335,40 +1409,48 @@ static void InitMatchCallTextPrinter(int windowId, const u8 *str) printerTemplate.letterSpacing = 0; printerTemplate.lineSpacing = 0; printerTemplate.unk = 0; - printerTemplate.fgColor = 10; - printerTemplate.bgColor = 8; - printerTemplate.shadowColor = 14; - gTextFlags.useAlternateDownArrow = 0; + printerTemplate.fgColor = TEXT_DYNAMIC_COLOR_1; + printerTemplate.bgColor = TEXT_COLOR_BLUE; + printerTemplate.shadowColor = TEXT_DYNAMIC_COLOR_5; + gTextFlags.useAlternateDownArrow = FALSE; AddTextPrinter(&printerTemplate, GetPlayerTextSpeedDelay(), NULL); } -static bool32 ExecuteMatchCallTextPrinter(int windowId) +static bool32 RunMatchCallTextPrinter(int windowId) { if (JOY_HELD(A_BUTTON)) - gTextFlags.canABSpeedUpPrint = 1; + gTextFlags.canABSpeedUpPrint = TRUE; else - gTextFlags.canABSpeedUpPrint = 0; + gTextFlags.canABSpeedUpPrint = FALSE; RunTextPrinters(); return IsTextPrinterActive(windowId); } -static void sub_8196694(u8 taskId) -{ - s16 *taskData = gTasks[taskId].data; - if (++taskData[0] > 8) - { - taskData[0] = 0; - if (++taskData[1] > 7) - taskData[1] = 0; +#define tTimer data[0] +#define tSpinStage data[1] +#define tTileNum data[2] - taskData[2] = (taskData[1] * 16) + 0x279; - WriteSequenceToBgTilemapBuffer(0, taskData[2] | ~0xFFF, 1, 15, 4, 4, 17, 1); +static void Task_SpinPokenavIcon(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (++tTimer > 8) + { + tTimer = 0; + if (++tSpinStage > 7) + tSpinStage = 0; + + tTileNum = (tSpinStage * 16) + TILE_POKENAV_ICON; + WriteSequenceToBgTilemapBuffer(0, tTileNum | ~0xFFF, 1, 15, 4, 4, 17, 1); CopyBgTilemapBufferToVram(0); } } +#undef tTimer +#undef tSpinStage +#undef tTileNum + static bool32 TrainerIsEligibleForRematch(int matchCallId) { return gSaveBlock1Ptr->trainerRematches[matchCallId] > 0; @@ -1392,7 +1474,10 @@ static u32 GetNumRematchTrainersFought(void) return count; } -static u32 sub_8196774(int arg0) +// Look through the rematch table for trainers that have been defeated once before. +// Return the index into the rematch table of the nth defeated trainer, +// or REMATCH_TABLE_ENTRIES if fewer than n rematch trainers have been defeated. +static u32 GetNthRematchTrainerFought(int n) { u32 i, count; @@ -1400,7 +1485,7 @@ static u32 sub_8196774(int arg0) { if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0])) { - if (count == arg0) + if (count == n) return i; count++; @@ -1417,13 +1502,19 @@ bool32 SelectMatchCallMessage(int trainerId, u8 *str) bool32 retVal = FALSE; matchCallId = GetTrainerMatchCallId(trainerId); - gBattleFrontierStreakInfo.facilityId = 0; + sBattleFrontierStreakInfo.facilityId = 0; + + // If the player is on the same route as the trainer + // and they can be rematched, they will always request a battle if (TrainerIsEligibleForRematch(matchCallId) && GetRematchTrainerLocation(matchCallId) == gMapHeader.regionMapSectionId) { matchCallText = GetSameRouteMatchCallText(matchCallId, str); } - else if (sub_8196D74(matchCallId)) + // If the player is not on the same route as the trainer + // and they can be rematched, there is a random chance for + // the trainer to request a battle + else if (ShouldTrainerRequestBattle(matchCallId)) { matchCallText = GetDifferentRouteMatchCallText(matchCallId, str); retVal = TRUE; @@ -1431,10 +1522,12 @@ bool32 SelectMatchCallMessage(int trainerId, u8 *str) } else if (Random() % 3) { + // Message talking about a battle the NPC had matchCallText = GetBattleMatchCallText(matchCallId, str); } else { + // Message talking about something else matchCallText = GetGeneralMatchCallText(matchCallId, str); } @@ -1494,7 +1587,6 @@ static const struct MatchCallText *GetGeneralMatchCallText(int matchCallId, u8 * int count; u32 topic, id; u16 rand; - u16 var3; rand = Random(); if (!(rand & 1)) @@ -1510,8 +1602,8 @@ static const struct MatchCallText *GetGeneralMatchCallText(int matchCallId, u8 * count = Random() % count; for (i = 0; i < NUM_FRONTIER_FACILITIES; i++) { - gBattleFrontierStreakInfo.streak = GetFrontierStreakInfo(i, &topic); - if (gBattleFrontierStreakInfo.streak < 2) + sBattleFrontierStreakInfo.streak = GetFrontierStreakInfo(i, &topic); + if (sBattleFrontierStreakInfo.streak < 2) continue; if (!count) @@ -1520,7 +1612,7 @@ static const struct MatchCallText *GetGeneralMatchCallText(int matchCallId, u8 * count--; } - gBattleFrontierStreakInfo.facilityId = i; + sBattleFrontierStreakInfo.facilityId = i; id = sMatchCallTrainers[matchCallId].battleFrontierRecordStreakTextIndex - 1; return &sMatchCallGeneralTopics[topic][id]; } @@ -1542,7 +1634,7 @@ static u8 *const sMatchCallTextStringVars[] = { gStringVar1, gStringVar2, gStrin static void PopulateMatchCallStringVars(int matchCallId, const s8 *stringVarFuncIds) { int i; - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_STRVARS_IN_MSG; i++) { if (stringVarFuncIds[i] >= 0) PopulateMatchCallStringVar(matchCallId, stringVarFuncIds[i], sMatchCallTextStringVars[i]); @@ -1551,12 +1643,12 @@ static void PopulateMatchCallStringVars(int matchCallId, const s8 *stringVarFunc static void (*const sPopulateMatchCallStringVarFuncs[])(int, u8 *) = { - PopulateTrainerName, - PopulateMapName, - PopulateSpeciesFromTrainerLocation, - PopulateSpeciesFromTrainerParty, - PopulateBattleFrontierFacilityName, - PopulateBattleFrontierStreak, + [STR_TRAINER_NAME] = PopulateTrainerName, + [STR_MAP_NAME] = PopulateMapName, + [STR_SPECIES_IN_ROUTE] = PopulateSpeciesFromTrainerLocation, + [STR_SPECIES_IN_PARTY] = PopulateSpeciesFromTrainerParty, + [STR_FACILITY_NAME] = PopulateBattleFrontierFacilityName, + [STR_FRONTIER_STREAK] = PopulateBattleFrontierStreak, }; static void PopulateMatchCallStringVar(int matchCallId, int funcId, u8 *destStr) @@ -1578,7 +1670,7 @@ static void PopulateTrainerName(int matchCallId, u8 *destStr) { u32 i; u16 trainerId = sMatchCallTrainers[matchCallId].trainerId; - for (i = 0; i < 6; i++) + for (i = 0; i < ARRAY_COUNT(sMultiTrainerMatchCallTexts); i++) { if (sMultiTrainerMatchCallTexts[i].trainerId == trainerId) { @@ -1729,20 +1821,20 @@ static const u8 *const sBattleFrontierFacilityNames[] = static void PopulateBattleFrontierFacilityName(int matchCallId, u8 *destStr) { - StringCopy(destStr, sBattleFrontierFacilityNames[gBattleFrontierStreakInfo.facilityId]); + StringCopy(destStr, sBattleFrontierFacilityNames[sBattleFrontierStreakInfo.facilityId]); } static void PopulateBattleFrontierStreak(int matchCallId, u8 *destStr) { int i = 0; - int streak = gBattleFrontierStreakInfo.streak; + int streak = sBattleFrontierStreakInfo.streak; while (streak != 0) { streak /= 10; i++; } - ConvertIntToDecimalStringN(destStr, gBattleFrontierStreakInfo.streak, STR_CONV_MODE_LEFT_ALIGN, i); + ConvertIntToDecimalStringN(destStr, sBattleFrontierStreakInfo.streak, STR_CONV_MODE_LEFT_ALIGN, i); } static const u16 sBadgeFlags[NUM_BADGES] = @@ -1770,13 +1862,14 @@ static int GetNumOwnedBadges(void) return i; } -static bool32 sub_8196D74(int matchCallId) +// Whether or not a trainer calling the player from a different route should request a battle +static bool32 ShouldTrainerRequestBattle(int matchCallId) { int dayCount; int otId; - u16 easyChatWord; + u16 dewfordRand; int numRematchTrainersFought; - int var0, var1, var2; + int max, rand, n; if (GetNumOwnedBadges() < 5) return FALSE; @@ -1784,14 +1877,14 @@ static bool32 sub_8196D74(int matchCallId) dayCount = RtcGetLocalDayCount(); otId = GetTrainerId(gSaveBlock2Ptr->playerTrainerId) & 0xFFFF; - easyChatWord = gSaveBlock1Ptr->easyChatPairs[0].unk2; + dewfordRand = gSaveBlock1Ptr->dewfordTrends[0].rand; numRematchTrainersFought = GetNumRematchTrainersFought(); - var0 = (numRematchTrainersFought * 13) / 10; - var1 = ((dayCount ^ easyChatWord) + (easyChatWord ^ GetGameStat(GAME_STAT_TRAINER_BATTLES))) ^ otId; - var2 = var1 % var0; - if (var2 < numRematchTrainersFought) + max = (numRematchTrainersFought * 13) / 10; + rand = ((dayCount ^ dewfordRand) + (dewfordRand ^ GetGameStat(GAME_STAT_TRAINER_BATTLES))) ^ otId; + n = rand % max; + if (n < numRematchTrainersFought) { - if (sub_8196774(var2) == matchCallId) + if (GetNthRematchTrainerFought(n) == matchCallId) return TRUE; } @@ -1815,7 +1908,7 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId) streak = gSaveBlock2Ptr->frontier.domeRecordWinStreaks[i][j]; } } - *topicTextId = 3; + *topicTextId = GEN_TOPIC_B_DOME - 1; break; #ifdef BUGFIX case FRONTIER_FACILITY_PIKE: @@ -1827,7 +1920,7 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId) if (streak < gSaveBlock2Ptr->frontier.pikeRecordStreaks[i]) streak = gSaveBlock2Ptr->frontier.pikeRecordStreaks[i]; } - *topicTextId = 4; + *topicTextId = GEN_TOPIC_B_PIKE - 1; break; case FRONTIER_FACILITY_TOWER: for (i = 0; i < 4; i++) @@ -1838,7 +1931,7 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId) streak = gSaveBlock2Ptr->frontier.towerRecordWinStreaks[i][j]; } } - *topicTextId = 2; + *topicTextId = GEN_TOPIC_STREAK_RECORD - 1; break; case FRONTIER_FACILITY_PALACE: for (i = 0; i < 2; i++) @@ -1849,7 +1942,7 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId) streak = gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[i][j]; } } - *topicTextId = 2; + *topicTextId = GEN_TOPIC_STREAK_RECORD - 1; break; #ifdef BUGFIX case FRONTIER_FACILITY_FACTORY: @@ -1864,7 +1957,7 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId) streak = gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[i][j]; } } - *topicTextId = 2; + *topicTextId = GEN_TOPIC_STREAK_RECORD - 1; break; case FRONTIER_FACILITY_ARENA: for (i = 0; i < 2; i++) @@ -1872,7 +1965,7 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId) if (streak < gSaveBlock2Ptr->frontier.arenaRecordStreaks[i]) streak = gSaveBlock2Ptr->frontier.arenaRecordStreaks[i]; } - *topicTextId = 2; + *topicTextId = GEN_TOPIC_STREAK_RECORD - 1; break; case FRONTIER_FACILITY_PYRAMID: for (i = 0; i < 2; i++) @@ -1880,7 +1973,7 @@ static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId) if (streak < gSaveBlock2Ptr->frontier.pyramidRecordStreaks[i]) streak = gSaveBlock2Ptr->frontier.pyramidRecordStreaks[i]; } - *topicTextId = 5; + *topicTextId = GEN_TOPIC_B_PYRAMID - 1; break; } @@ -1972,7 +2065,7 @@ void BufferPokedexRatingForMatchCall(u8 *destStr) u8 *str; u8 dexRatingLevel; - u8 *buffer = Alloc(0x3E8); + u8 *buffer = Alloc(sizeof(gStringVar4)); if (!buffer) { destStr[0] = EOS; @@ -1985,18 +2078,15 @@ void BufferPokedexRatingForMatchCall(u8 *destStr) ConvertIntToDecimalStringN(gStringVar2, numCaught, STR_CONV_MODE_LEFT_ALIGN, 3); dexRatingLevel = GetPokedexRatingLevel(numCaught); str = StringCopy(buffer, gBirchDexRatingText_AreYouCurious); - str[0] = CHAR_PROMPT_CLEAR; - str++; + *(str++) = CHAR_PROMPT_CLEAR; str = StringCopy(str, gBirchDexRatingText_SoYouveSeenAndCaught); - str[0] = CHAR_PROMPT_CLEAR; - str++; + *(str++) = CHAR_PROMPT_CLEAR; StringCopy(str, sBirchDexRatingTexts[dexRatingLevel]); str = StringExpandPlaceholders(destStr, buffer); if (IsNationalPokedexEnabled()) { - str[0] = CHAR_PROMPT_CLEAR; - str++; + *(str++) = CHAR_PROMPT_CLEAR; numSeen = GetNationalPokedexCount(FLAG_GET_SEEN); numCaught = GetNationalPokedexCount(FLAG_GET_CAUGHT); ConvertIntToDecimalStringN(gStringVar1, numSeen, STR_CONV_MODE_LEFT_ALIGN, 3); @@ -2007,14 +2097,14 @@ void BufferPokedexRatingForMatchCall(u8 *destStr) Free(buffer); } -void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId) +void LoadMatchCallWindowGfx(u32 windowId, u32 destOffset, u32 paletteId) { u8 bg = GetWindowAttribute(windowId, WINDOW_BG); - LoadBgTiles(bg, sUnknown_0860EA6C, 0x100, destOffset); - LoadPalette(sUnknown_0860EA4C, paletteId << 4, 0x20); + LoadBgTiles(bg, sMatchCallWindow_Gfx, 0x100, destOffset); + LoadPalette(sMatchCallWindow_Pal, paletteId << 4, sizeof(sMatchCallWindow_Pal)); } -void sub_81971C4(u32 windowId, u32 tileOffset, u32 paletteId) +void DrawMatchCallTextBoxBorder(u32 windowId, u32 tileOffset, u32 paletteId) { - DrawMatchCallTextBoxBorder(windowId, tileOffset, paletteId); + DrawMatchCallTextBoxBorder_Internal(windowId, tileOffset, paletteId); } diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index af68c61169..239639e0b6 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -250,7 +250,7 @@ void ScrSpecial_HipsterTeachWord(void) { u16 phrase = GetNewHipsterPhraseToTeach(); - if (phrase == 0xFFFF) + if (phrase == EC_EMPTY_WORD) { gSpecialVar_Result = FALSE; } @@ -283,7 +283,7 @@ void ScrSpecial_GenerateGiddyLine(void) if (giddy->taleCounter == 0) InitGiddyTaleList(); - if (giddy->randomWords[giddy->taleCounter] != 0xFFFF) // is not the last element of the array? + if (giddy->randomWords[giddy->taleCounter] != EC_EMPTY_WORD) { u8 *stringPtr; u32 adjective = Random(); @@ -316,7 +316,7 @@ static void InitGiddyTaleList(void) {EC_GROUP_HOBBIES, 0}, {EC_GROUP_MOVE_1, 0}, {EC_GROUP_MOVE_2, 0}, - {EC_GROUP_POKEMON_2, 0} + {EC_GROUP_POKEMON_NATIONAL, 0} }; u16 i; u16 r10; @@ -348,7 +348,7 @@ static void InitGiddyTaleList(void) r1 = Random() % 10; if (r1 < 3 && r7 < 8) { - giddy->randomWords[i] = 0xFFFF; + giddy->randomWords[i] = EC_EMPTY_WORD; r7++; } else @@ -425,21 +425,21 @@ static void StartBardSong(bool8 useTemporaryLyrics) gTasks[taskId].tUseTemporaryLyrics = useTemporaryLyrics; } -static void sub_81206F0(void) +static void EnableTextPrinters(void) { - gUnknown_03002F84 = FALSE; + gDisableTextPrinters = FALSE; } -static void BardSong_TextSubPrinter(struct TextPrinterTemplate * printer, u16 a1) +static void BardSong_DisableTextPrinters(struct TextPrinterTemplate * printer, u16 a1) { - gUnknown_03002F84 = TRUE; + gDisableTextPrinters = TRUE; } static void sub_8120708(const u8 * src) { DrawDialogueFrame(0, 0); - AddTextPrinterParameterized(0, 1, src, 0, 1, 1, BardSong_TextSubPrinter); - gUnknown_03002F84 = TRUE; + AddTextPrinterParameterized(0, 1, src, 0, 1, 1, BardSong_DisableTextPrinters); + gDisableTextPrinters = TRUE; CopyWindowToVram(0, 3); } @@ -620,7 +620,7 @@ static void Task_BardSong(u8 taskId) else if (gStringVar4[task->tCharIndex] == CHAR_SPACE) { - sub_81206F0(); + EnableTextPrinters(); task->tCharIndex++; task->tState = 2; task->data[2] = 0; @@ -640,7 +640,7 @@ static void Task_BardSong(u8 taskId) else if (gStringVar4[task->tCharIndex] == CHAR_SONG_WORD_SEPARATOR) { gStringVar4[task->tCharIndex] = CHAR_SPACE; // restore it back to a space - sub_81206F0(); + EnableTextPrinters(); task->tCharIndex++; task->data[2] = 0; } @@ -649,7 +649,7 @@ static void Task_BardSong(u8 taskId) switch (task->data[1]) { case 0: - sub_81206F0(); + EnableTextPrinters(); task->data[1]++; break; case 1: @@ -680,45 +680,43 @@ void ScrSpecial_SetMauvilleOldManObjEventGfx(void) // Language fixers? -void sub_8120B70(union OldMan * oldMan) +void SanitizeMauvilleOldManForRuby(union OldMan * oldMan) { s32 i; u8 playerName[PLAYER_NAME_LENGTH + 1]; switch (oldMan->common.id) { - case MAUVILLE_MAN_TRADER: + case MAUVILLE_MAN_TRADER: + { + struct MauvilleOldManTrader * trader = &oldMan->trader; + for (i = 0; i < NUM_TRADER_ITEMS; i++) { - struct MauvilleOldManTrader * trader = &oldMan->trader; - for (i = 0; i < NUM_TRADER_ITEMS; i++) + if (trader->language[i] == LANGUAGE_JAPANESE) + ConvertInternationalString(trader->playerNames[i], LANGUAGE_JAPANESE); + } + break; + } + case MAUVILLE_MAN_STORYTELLER: + { + struct MauvilleManStoryteller * storyteller = &oldMan->storyteller; + for (i = 0; i < NUM_STORYTELLER_TALES; i++) + { + if (storyteller->gameStatIDs[i] != 0) { - if (trader->language[i] == LANGUAGE_JAPANESE) + memcpy(playerName, storyteller->trainerNames[i], PLAYER_NAME_LENGTH); + playerName[PLAYER_NAME_LENGTH] = EOS; + if (IsStringJapanese(playerName)) { - ConvertInternationalString(trader->playerNames[i], LANGUAGE_JAPANESE); + memset(playerName, CHAR_SPACE, PLAYER_NAME_LENGTH + 1); + StringCopy(playerName, gText_Friend); + memcpy(storyteller->trainerNames[i], playerName, PLAYER_NAME_LENGTH); + storyteller->language[i] = GAME_LANGUAGE; } } } - break; - case MAUVILLE_MAN_STORYTELLER: - { - struct MauvilleManStoryteller * storyteller = &oldMan->storyteller; - for (i = 0; i < NUM_STORYTELLER_TALES; i++) - { - if (storyteller->gameStatIDs[i] != 0) - { - memcpy(playerName, storyteller->trainerNames[i], PLAYER_NAME_LENGTH); - playerName[PLAYER_NAME_LENGTH] = EOS; - if (IsStringJapanese(playerName)) - { - memset(playerName, CHAR_SPACE, PLAYER_NAME_LENGTH + 1); - StringCopy(playerName, gText_Friend); - memcpy(storyteller->trainerNames[i], playerName, PLAYER_NAME_LENGTH); - storyteller->language[i] = GAME_LANGUAGE; - } - } - } - } - break; + break; + } } } @@ -1324,7 +1322,6 @@ static void PrintStoryList(void) { s32 i; s32 width = GetStringWidth(1, gText_Exit, 0); - u8 tileWidth; for (i = 0; i < NUM_STORYTELLER_TALES; i++) { s32 curWidth; diff --git a/src/menu.c b/src/menu.c index 4813f7b028..156a4c332e 100644 --- a/src/menu.c +++ b/src/menu.c @@ -95,7 +95,7 @@ static const struct WindowTemplate sYesNo_WindowTemplates = }; const u16 gUnknown_0860F0B0[] = INCBIN_U16("graphics/interface/860F0B0.gbapal"); -const u8 sTextColors[] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY }; +const u8 sTextColors[] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; // Table of move info icon offsets in graphics/interface_fr/menu.png static const struct MenuInfoIcon sMenuInfoIcons[] = @@ -119,6 +119,7 @@ static const struct MenuInfoIcon sMenuInfoIcons[] = [TYPE_ICE + 1] = { 32, 12, 0x4C }, [TYPE_DRAGON + 1] = { 32, 12, 0xA0 }, [TYPE_DARK + 1] = { 32, 12, 0x8C }, + [TYPE_FAIRY + 1] = { 32, 12, 0x4 }, [MENU_INFO_ICON_TYPE] = { 42, 12, 0xA8 }, [MENU_INFO_ICON_POWER] = { 42, 12, 0xC0 }, [MENU_INFO_ICON_ACCURACY] = { 42, 12, 0xC8 }, @@ -144,8 +145,8 @@ void task_free_buf_after_copying_tile_data_to_vram(u8 taskId); void InitStandardTextBoxWindows(void) { InitWindows(sStandardTextBox_WindowTemplates); - sStartMenuWindowId = 0xFF; - sMapNamePopupWindowId = 0xFF; + sStartMenuWindowId = WINDOW_NONE; + sMapNamePopupWindowId = WINDOW_NONE; } void FreeAllOverworldWindowBuffers(void) @@ -490,7 +491,7 @@ u8 GetPlayerTextSpeedDelay(void) u8 sub_81979C4(u8 a1) { - if (sStartMenuWindowId == 0xFF) + if (sStartMenuWindowId == WINDOW_NONE) sStartMenuWindowId = sub_8198AA4(0, 0x16, 1, 7, (a1 * 2) + 2, 0xF, 0x139); return sStartMenuWindowId; } @@ -502,26 +503,28 @@ u8 GetStartMenuWindowId(void) void RemoveStartMenuWindow(void) { - if (sStartMenuWindowId != 0xFF) + if (sStartMenuWindowId != WINDOW_NONE) { RemoveWindow(sStartMenuWindowId); - sStartMenuWindowId = 0xFF; + sStartMenuWindowId = WINDOW_NONE; } } -u16 sub_8197A30(void) +// Unused +static u16 GetDialogFrameBaseTileNum(void) { return DLG_WINDOW_BASE_TILE_NUM; } -u16 sub_8197A38(void) +// Unused +static u16 GetStandardFrameBaseTileNum(void) { return STD_WINDOW_BASE_TILE_NUM; } u8 AddMapNamePopUpWindow(void) { - if (sMapNamePopupWindowId == 0xFF) + if (sMapNamePopupWindowId == WINDOW_NONE) sMapNamePopupWindowId = sub_8198AA4(0, 1, 1, 10, 3, 14, 0x107); return sMapNamePopupWindowId; } @@ -533,10 +536,10 @@ u8 GetMapNamePopUpWindowId(void) void RemoveMapNamePopUpWindow(void) { - if (sMapNamePopupWindowId != 0xFF) + if (sMapNamePopupWindowId != WINDOW_NONE) { RemoveWindow(sMapNamePopupWindowId); - sMapNamePopupWindowId = 0xFF; + sMapNamePopupWindowId = WINDOW_NONE; } } @@ -815,7 +818,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram) { u16 width = 0; - if (sWindowId != 0xFF) + if (sWindowId != WINDOW_NONE) { PutWindowTilemap(sWindowId); FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15)); @@ -837,19 +840,19 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo u8 color[3]; u16 width = 0; - if (sWindowId != 0xFF) + if (sWindowId != WINDOW_NONE) { if (a3 != 0) { color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_COLOR_WHITE; - color[2] = TEXT_COLOR_DARK_GREY; + color[2] = TEXT_COLOR_DARK_GRAY; } else { color[0] = TEXT_DYNAMIC_COLOR_6; color[1] = TEXT_COLOR_WHITE; - color[2] = TEXT_COLOR_DARK_GREY; + color[2] = TEXT_COLOR_DARK_GRAY; } PutWindowTilemap(sWindowId); FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15)); @@ -872,13 +875,13 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo void sub_81982D8(void) { - if (sWindowId != 0xFF) + if (sWindowId != WINDOW_NONE) CopyWindowToVram(sWindowId, 3); } void sub_81982F0(void) { - if (sWindowId != 0xFF) + if (sWindowId != WINDOW_NONE) { FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15)); CopyWindowToVram(sWindowId, 3); @@ -887,13 +890,13 @@ void sub_81982F0(void) void sub_8198314(void) { - if (sWindowId != 0xFF) + if (sWindowId != WINDOW_NONE) { FillWindowPixelBuffer(sWindowId, PIXEL_FILL(0)); ClearWindowTilemap(sWindowId); CopyWindowToVram(sWindowId, 3); RemoveWindow(sWindowId); - sWindowId = 0xFF; + sWindowId = WINDOW_NONE; } } @@ -1095,32 +1098,32 @@ s8 Menu_ProcessInputNoWrapAround_other(void) return MENU_NOTHING_CHOSEN; } -void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs) +void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions) { u8 i; for (i = 0; i < itemCount; i++) { - AddTextPrinterParameterized(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL); + AddTextPrinterParameterized(windowId, fontId, menuActions[i].text, left, (lineHeight * i) + top, 0xFF, NULL); } CopyWindowToVram(windowId, 2); } -void sub_81987BC(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 a6, u8 a7) +void sub_81987BC(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, u8 a6, u8 a7) { u8 i; for (i = 0; i < itemCount; i++) { - AddTextPrinterParameterized5(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7); + AddTextPrinterParameterized5(windowId, fontId, menuActions[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7); } CopyWindowToVram(windowId, 2); } -void sub_8198854(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs) +void sub_8198854(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions) { - PrintTextArray(windowId, fontId, GetFontAttribute(fontId, 0), 1, lineHeight, itemCount, strs); + PrintTextArray(windowId, fontId, GetFontAttribute(fontId, 0), 1, lineHeight, itemCount, menuActions); } -void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8) +void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds) { u8 i; struct TextPrinterTemplate printer; @@ -1138,7 +1141,7 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l for (i = 0; i < itemCount; i++) { - printer.currentChar = strs[a8[i]].text; + printer.currentChar = menuActions[actionIds[i]].text; printer.y = (lineHeight * i) + top; printer.currentY = printer.y; AddTextPrinter(&printer, 0xFF, NULL); @@ -1147,9 +1150,9 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l CopyWindowToVram(windowId, 2); } -void sub_81989B8(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a5) +void sub_81989B8(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds) { - AddItemMenuActionTextPrinters(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 1, GetFontAttribute(fontId, FONTATTR_LETTER_SPACING), lineHeight, itemCount, strs, a5); + AddItemMenuActionTextPrinters(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 1, GetFontAttribute(fontId, FONTATTR_LETTER_SPACING), lineHeight, itemCount, menuActions, actionIds); } void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock) @@ -1222,7 +1225,7 @@ void sub_8198C78(void) RemoveWindow(sYesNoWindowId); } -void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7, const struct MenuAction *strs) +void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7, const struct MenuAction *menuActions) { u8 i; u8 j; @@ -1230,18 +1233,18 @@ void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u { for (j = 0; j < a6; j++) { - AddTextPrinterParameterized(windowId, fontId, strs[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL); + AddTextPrinterParameterized(windowId, fontId, menuActions[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL); } } CopyWindowToVram(windowId, 2); } -void sub_8198D54(u8 windowId, u8 fontId, u8 a2, u8 a3, u8 a4, u8 a5, const struct MenuAction *strs) +void sub_8198D54(u8 windowId, u8 fontId, u8 a2, u8 a3, u8 a4, u8 a5, const struct MenuAction *menuActions) { - sub_8198C94(windowId, fontId, GetFontAttribute(fontId, 0), 0, a2, a3, a4, a5, strs); + sub_8198C94(windowId, fontId, GetFontAttribute(fontId, 0), 0, a2, a3, a4, a5, menuActions); } -void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8) +void PrintMenuActionGrid(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 horizontalCount, u8 verticalCount, const struct MenuAction *menuActions, const u8 *actionIds) { u8 i; u8 j; @@ -1256,13 +1259,13 @@ void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u printer.letterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING); printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING); - for (i = 0; i < itemCount2; i++) + for (i = 0; i < verticalCount; i++) { - for (j = 0; j < itemCount; j++) + for (j = 0; j < horizontalCount; j++) { - printer.currentChar = strs[a8[(itemCount * i) + j]].text; - printer.x = (a4 * j) + left; - printer.y = (GetFontAttribute(fontId, 1) * i) + top; + printer.currentChar = menuActions[actionIds[(horizontalCount * i) + j]].text; + printer.x = (optionWidth * j) + left; + printer.y = (GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT) * i) + top; printer.currentX = printer.x; printer.currentY = printer.y; AddTextPrinter(&printer, 0xFF, NULL); @@ -1272,9 +1275,10 @@ void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u CopyWindowToVram(windowId, 2); } -void sub_8198EF8(u8 windowId, u8 fontId, u8 a2, u8 a3, u8 a4, u8 a5, const struct MenuAction *strs, const u8 *a8) +// Unused +static void PrintMenuActionGrid_TopLeft(u8 windowId, u8 fontId, u8 optionWidth, u8 unused, u8 horizontalCount, u8 verticalCount, const struct MenuAction *menuActions, const u8 *actionIds) { - sub_8198DBC(windowId, fontId, GetFontAttribute(fontId, 0), 0, a2, a4, a5, strs, a8); + PrintMenuActionGrid(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 0, optionWidth, horizontalCount, verticalCount, menuActions, actionIds); } u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight, u8 a6, u8 a7, u8 numChoices, u8 a9) @@ -1594,19 +1598,19 @@ u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 itemCount, u8 return InitMenuInUpperLeftCorner(windowId, itemCount, initialCursorPos, FALSE); } -void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs) +void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *menuActions) { u32 i; for (i = 0; i < itemCount; i++) { - AddTextPrinterParameterized(windowId, 1, strs[i].text, 8, (i * 16) + 1, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 1, menuActions[i].text, 8, (i * 16) + 1, 0xFF, NULL); } CopyWindowToVram(windowId, 2); } -void sub_81995E4(u8 windowId, u8 itemCount, const struct MenuAction *strs, const u8 *a8) +void sub_81995E4(u8 windowId, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds) { u8 i; struct TextPrinterTemplate printer; @@ -1624,7 +1628,7 @@ void sub_81995E4(u8 windowId, u8 itemCount, const struct MenuAction *strs, const for (i = 0; i < itemCount; i++) { - printer.currentChar = strs[a8[i]].text; + printer.currentChar = menuActions[actionIds[i]].text; printer.y = (i * 16) + 1; printer.currentY = (i * 16) + 1; AddTextPrinter(&printer, 0xFF, NULL); @@ -1658,19 +1662,19 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sYesNoWindowId, 2, initialCursorPos); } -void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const struct MenuAction *strs) +void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const struct MenuAction *menuActions) { u32 i, j; for (i = 0; i < rows; i++) { for (j = 0; j < columns; j++) - AddTextPrinterParameterized(windowId, 1, strs[(i * columns) + j].text, (optionWidth * j) + 8, (i * 16) + 1, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 1, menuActions[(i * columns) + j].text, (optionWidth * j) + 8, (i * 16) + 1, 0xFF, NULL); } CopyWindowToVram(windowId, 2); } -void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8) +void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *menuActions, const u8 *actionIds) { u8 i; u8 j; @@ -1689,7 +1693,7 @@ void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct M { for (j = 0; j < itemCount; j++) { - printer.currentChar = strs[a8[(itemCount * i) + j]].text; + printer.currentChar = menuActions[actionIds[(itemCount * i) + j]].text; printer.x = (a4 * j) + 8; printer.y = (16 * i) + 1; printer.currentX = printer.x; @@ -1701,7 +1705,7 @@ void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct M CopyWindowToVram(windowId, 2); } -u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos) +u8 InitMenuActionGrid(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos) { s32 pos; @@ -2036,8 +2040,8 @@ void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 src { for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) { - pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 0x1d) >> 0x1B); - pixelsDst = (void*) dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX >> 3) << 5) + ((( loopDstY >> 3) * multiplierDstY) << 5) + ((u32)(loopDstY << 0x1d) >> 0x1B); + pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 29) >> 27); + pixelsDst = (void*) dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX >> 3) << 5) + ((( loopDstY >> 3) * multiplierDstY) << 5) + ((u32)(loopDstY << 29) >> 27); if ((uintptr_t)pixelsDst & 0x1) { diff --git a/src/menu_helpers.c b/src/menu_helpers.c index b31d84a1e3..3e8148a42b 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -18,19 +18,17 @@ #include "constants/items.h" #include "constants/maps.h" -// this file's functions +#define TAG_SWAP_LINE 109 + static void Task_ContinueTaskAfterMessagePrints(u8 taskId); static void Task_CallYesOrNoCallback(u8 taskId); -// EWRAM vars -EWRAM_DATA static struct YesNoFuncTable gUnknown_0203A138 = {0}; -EWRAM_DATA static u8 gUnknown_0203A140 = 0; +EWRAM_DATA static struct YesNoFuncTable sYesNo = {0}; +EWRAM_DATA static u8 sMessageWindowId = 0; -// IWRAM bss vars -static TaskFunc gUnknown_0300117C; +static TaskFunc sMessageNextTask; -// const rom data -static const struct OamData sOamData_859F4E8 = +static const struct OamData sOamData_SwapLine = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -47,47 +45,47 @@ static const struct OamData sOamData_859F4E8 = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_859F4F0[] = +static const union AnimCmd sAnim_SwapLine_RightArrow[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_859F4F8[] = +static const union AnimCmd sAnim_SwapLine_Line[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_859F500[] = +static const union AnimCmd sAnim_SwapLine_LeftArrow[] = { - ANIMCMD_FRAME(0, 0, 1, 0), + ANIMCMD_FRAME(0, 0, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_859F508[] = +static const union AnimCmd *const sAnims_SwapLine[] = { - sSpriteAnim_859F4F0, - sSpriteAnim_859F4F8, - sSpriteAnim_859F500 + sAnim_SwapLine_RightArrow, + sAnim_SwapLine_Line, + sAnim_SwapLine_LeftArrow }; -static const struct CompressedSpriteSheet gUnknown_0859F514 = +static const struct CompressedSpriteSheet sSpriteSheet_SwapLine = { - gBagSwapLineGfx, 0x100, 109 + gBagSwapLineGfx, 0x100, TAG_SWAP_LINE }; -static const struct CompressedSpritePalette gUnknown_0859F51C = +static const struct CompressedSpritePalette sSpritePalette_SwapLine = { - gBagSwapLinePal, 109 + gBagSwapLinePal, TAG_SWAP_LINE }; -static const struct SpriteTemplate gUnknown_0859F524 = +static const struct SpriteTemplate sSpriteTemplate_SwapLine = { - .tileTag = 109, - .paletteTag = 109, - .oam = &sOamData_859F4E8, - .anims = sSpriteAnimTable_859F508, + .tileTag = TAG_SWAP_LINE, + .paletteTag = TAG_SWAP_LINE, + .oam = &sOamData_SwapLine, + .anims = sAnims_SwapLine, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, @@ -124,17 +122,17 @@ void SetVBlankHBlankCallbacksToNull(void) SetHBlankCallback(NULL); } -void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc) +void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc) { - gUnknown_0203A140 = windowId; - DrawDialogFrameWithCustomTileAndPalette(windowId, TRUE, arg2, arg3); + sMessageWindowId = windowId; + DrawDialogFrameWithCustomTileAndPalette(windowId, TRUE, tileNum, paletteNum); if (string != gStringVar4) StringExpandPlaceholders(gStringVar4, string); gTextFlags.canABSpeedUpPrint = 1; AddTextPrinterParameterized2(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3); - gUnknown_0300117C = taskFunc; + sMessageNextTask = taskFunc; gTasks[taskId].func = Task_ContinueTaskAfterMessagePrints; } @@ -146,20 +144,20 @@ bool16 RunTextPrintersRetIsActive(u8 textPrinterId) static void Task_ContinueTaskAfterMessagePrints(u8 taskId) { - if (!RunTextPrintersRetIsActive(gUnknown_0203A140)) - gUnknown_0300117C(taskId); + if (!RunTextPrintersRetIsActive(sMessageWindowId)) + sMessageNextTask(taskId); } void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data) { - gUnknown_0203A138 = *data; + sYesNo = *data; gTasks[taskId].func = Task_CallYesOrNoCallback; } void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo) { CreateYesNoMenu(template, tileStart, palette, 0); - gUnknown_0203A138 = *yesNo; + sYesNo = *yesNo; gTasks[taskId].func = Task_CallYesOrNoCallback; } @@ -169,12 +167,12 @@ static void Task_CallYesOrNoCallback(u8 taskId) { case 0: PlaySE(SE_SELECT); - gUnknown_0203A138.yesFunc(taskId); + sYesNo.yesFunc(taskId); break; case 1: case MENU_B_PRESSED: PlaySE(SE_SELECT); - gUnknown_0203A138.noFunc(taskId); + sYesNo.noFunc(taskId); break; } } @@ -277,11 +275,13 @@ u8 GetLRKeysPressedAndHeld(void) return 0; } -bool8 sub_8122148(u16 itemId) +bool8 IsHoldingItemAllowed(u16 itemId) { + // Enigma Berry can't be held in link areas if (itemId != ITEM_ENIGMA_BERRY) return TRUE; - else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRADE_CENTER) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRADE_CENTER)) + else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRADE_CENTER) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRADE_CENTER)) return FALSE; else if (InUnionRoom() != TRUE) return TRUE; @@ -289,7 +289,7 @@ bool8 sub_8122148(u16 itemId) return FALSE; } -bool8 itemid_80BF6D8_mail_related(u16 itemId) +bool8 IsWritingMailAllowed(u16 itemId) { if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE) return TRUE; @@ -312,97 +312,103 @@ static bool8 sub_81221D0(void) if (!MenuHelpers_LinkSomething()) return FALSE; else - return sub_8087598(); + return Overworld_LinkRecvQueueLengthMoreThan2(); } bool8 MenuHelpers_CallLinkSomething(void) { if (sub_81221D0() == TRUE) return TRUE; - else if (sub_800B504() != TRUE) + else if (IsLinkRecvQueueLengthAtLeast3() != TRUE) return FALSE; else return TRUE; } -void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, u8 maxUsedSlotsCount) +void SetItemListPerPageCount(struct ItemSlot *slots, u8 slotsCount, u8 *pageItems, u8 *totalItems, u8 maxPerPage) { u16 i; struct ItemSlot *slots_ = slots; - (*usedSlotsCount) = 0; - for (i = 0; i < count; i++) + // Count the number of non-empty item slots + *totalItems = 0; + for (i = 0; i < slotsCount; i++) { if (slots_[i].itemId != ITEM_NONE) - (*usedSlotsCount)++; + (*totalItems)++; } + (*totalItems)++; // + 1 for 'Cancel' - (*usedSlotsCount)++; - if ((*usedSlotsCount) > maxUsedSlotsCount) - *arg2 = maxUsedSlotsCount; + // Set number of items per page + if (*totalItems > maxPerPage) + *pageItems = maxPerPage; else - *arg2 = (*usedSlotsCount); + *pageItems = *totalItems; } -void sub_812225C(u16 *scrollOffset, u16 *cursorPos, u8 maxShownItems, u8 numItems) +void SetCursorWithinListBounds(u16 *scrollOffset, u16 *cursorPos, u8 maxShownItems, u8 totalItems) { - if (*scrollOffset != 0 && *scrollOffset + maxShownItems > numItems) - *scrollOffset = numItems - maxShownItems; + if (*scrollOffset != 0 && *scrollOffset + maxShownItems > totalItems) + *scrollOffset = totalItems - maxShownItems; - if (*scrollOffset + *cursorPos >= numItems) + if (*scrollOffset + *cursorPos >= totalItems) { - if (numItems == 0) + if (totalItems == 0) *cursorPos = 0; else - *cursorPos = numItems - 1; + *cursorPos = totalItems - 1; } } -void sub_8122298(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3, u8 arg4) +void SetCursorScrollWithinListBounds(u16 *scrollOffset, u16 *cursorPos, u8 shownItems, u8 totalItems, u8 maxShownItems) { u8 i; - if (arg4 % 2 != 0) + if (maxShownItems % 2 != 0) { - if ((*arg1) >= arg4 / 2) + // Is cursor at least halfway down visible list + if (*cursorPos >= maxShownItems / 2) { - for (i = 0; i < (*arg1) - (arg4 / 2); i++) + for (i = 0; i < *cursorPos - (maxShownItems / 2); i++) { - if ((*arg0) + arg2 == arg3) + // Stop if reached end of list + if (*scrollOffset + shownItems == totalItems) break; - (*arg1)--; - (*arg0)++; + (*cursorPos)--; + (*scrollOffset)++; } } } else { - if ((*arg1) >= (arg4 / 2) + 1) + // Is cursor at least halfway down visible list + if (*cursorPos >= (maxShownItems / 2) + 1) { - for (i = 0; i <= (*arg1) - (arg4 / 2); i++) + for (i = 0; i <= *cursorPos - (maxShownItems / 2); i++) { - if ((*arg0) + arg2 == arg3) + // Stop if reached end of list + if (*scrollOffset + shownItems == totalItems) break; - (*arg1)--; - (*arg0)++; + (*cursorPos)--; + (*scrollOffset)++; } } } } -void LoadListMenuArrowsGfx(void) +void LoadListMenuSwapLineGfx(void) { - LoadCompressedSpriteSheet(&gUnknown_0859F514); - LoadCompressedSpritePalette(&gUnknown_0859F51C); + LoadCompressedSpriteSheet(&sSpriteSheet_SwapLine); + LoadCompressedSpritePalette(&sSpritePalette_SwapLine); } -void sub_8122344(u8 *spriteIds, u8 count) +void CreateSwapLineSprites(u8 *spriteIds, u8 count) { u8 i; for (i = 0; i < count; i++) { - spriteIds[i] = CreateSprite(&gUnknown_0859F524, i * 16, 0, 0); + spriteIds[i] = CreateSprite(&sSpriteTemplate_SwapLine, i * 16, 0, 0); if (i != 0) StartSpriteAnim(&gSprites[spriteIds[i]], 1); @@ -410,7 +416,7 @@ void sub_8122344(u8 *spriteIds, u8 count) } } -void sub_81223B0(u8 *spriteIds, u8 count) +void DestroySwapLineSprites(u8 *spriteIds, u8 count) { u8 i; @@ -423,17 +429,15 @@ void sub_81223B0(u8 *spriteIds, u8 count) } } -void sub_81223FC(u8 *spriteIds, u8 count, bool8 invisible) +void SetSwapLineSpritesInvisibility(u8 *spriteIds, u8 count, bool8 invisible) { u8 i; for (i = 0; i < count; i++) - { gSprites[spriteIds[i]].invisible = invisible; - } } -void sub_8122448(u8 *spriteIds, u8 count, s16 x, u16 y) +void UpdateSwapLineSpritesPos(u8 *spriteIds, u8 count, s16 x, u16 y) { u8 i; bool8 unknownBit = count & 0x80; @@ -442,10 +446,10 @@ void sub_8122448(u8 *spriteIds, u8 count, s16 x, u16 y) for (i = 0; i < count; i++) { if (i == count - 1 && unknownBit) - gSprites[spriteIds[i]].pos2.x = x - 8; + gSprites[spriteIds[i]].x2 = x - 8; else - gSprites[spriteIds[i]].pos2.x = x; + gSprites[spriteIds[i]].x2 = x; - gSprites[spriteIds[i]].pos1.y = 1 + y; + gSprites[spriteIds[i]].y = 1 + y; } } diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 7de9638931..2fd12f2fd3 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -23,16 +23,15 @@ #include "text_window.h" #include "trig.h" #include "window.h" -#include "constants/berry.h" #include "constants/songs.h" #include "gba/io_reg.h" extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; -EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; +EWRAM_DATA static u8 sMailboxWindowIds[MAILBOXWIN_COUNT] = {0}; +EWRAM_DATA static struct ListMenuItem *sMailboxList = NULL; -static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void MailboxMenu_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); static void sub_81D24A4(struct ConditionGraph *a0); static void sub_81D2634(struct ConditionGraph *a0); static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); @@ -41,40 +40,40 @@ static void SetNextConditionSparkle(struct Sprite *sprite); static void SpriteCB_ConditionSparkle(struct Sprite *sprite); static void ShowAllConditionSparkles(struct Sprite *sprite); -static const struct WindowTemplate sUnknown_086253E8[] = +static const struct WindowTemplate sWindowTemplates_MailboxMenu[MAILBOXWIN_COUNT] = { - { + [MAILBOXWIN_TITLE] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x8 }, - { + [MAILBOXWIN_LIST] = { .bg = 0, .tilemapLeft = 21, .tilemapTop = 1, .width = 8, .height = 18, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x18 }, - { + [MAILBOXWIN_OPTIONS] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, .width = 11, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x18 } }; static const u8 sPlayerNameTextColors[] = { - TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY + TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY }; static const u8 sEmptyItemName[] = _(""); @@ -208,53 +207,55 @@ static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = .cursorKind = 0 }; -bool8 sub_81D1C44(u8 count) +bool8 MailboxMenu_Alloc(u8 count) { u8 i; - sUnknown_0203CF4C = Alloc(count * sizeof(*sUnknown_0203CF4C) + sizeof(*sUnknown_0203CF4C)); - if (sUnknown_0203CF4C == NULL) + // + 1 to count for 'Cancel' + sMailboxList = Alloc((count + 1) * sizeof(*sMailboxList)); + if (sMailboxList == NULL) return FALSE; - for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i++) - sUnknown_0203CF48[i] = 0xFF; + for (i = 0; i < ARRAY_COUNT(sMailboxWindowIds); i++) + sMailboxWindowIds[i] = WINDOW_NONE; return TRUE; } -u8 sub_81D1C84(u8 a0) +u8 MailboxMenu_AddWindow(u8 windowIdx) { - if (sUnknown_0203CF48[a0] == 0xFF) + if (sMailboxWindowIds[windowIdx] == WINDOW_NONE) { - if (a0 == 2) + if (windowIdx == MAILBOXWIN_OPTIONS) { - struct WindowTemplate template = sUnknown_086253E8[2]; + struct WindowTemplate template = sWindowTemplates_MailboxMenu[windowIdx]; template.width = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); - sUnknown_0203CF48[2] = AddWindow(&template); + sMailboxWindowIds[windowIdx] = AddWindow(&template); } - else + else // MAILBOXWIN_TITLE or MAILBOXWIN_LIST { - sUnknown_0203CF48[a0] = AddWindow(&sUnknown_086253E8[a0]); + sMailboxWindowIds[windowIdx] = AddWindow(&sWindowTemplates_MailboxMenu[windowIdx]); } - SetStandardWindowBorderStyle(sUnknown_0203CF48[a0], 0); + SetStandardWindowBorderStyle(sMailboxWindowIds[windowIdx], 0); } - return sUnknown_0203CF48[a0]; + return sMailboxWindowIds[windowIdx]; } -void sub_81D1D04(u8 a0) +void MailboxMenu_RemoveWindow(u8 windowIdx) { - ClearStdWindowAndFrameToTransparent(sUnknown_0203CF48[a0], 0); - ClearWindowTilemap(sUnknown_0203CF48[a0]); - RemoveWindow(sUnknown_0203CF48[a0]); - sUnknown_0203CF48[a0] = 0xFF; + ClearStdWindowAndFrameToTransparent(sMailboxWindowIds[windowIdx], 0); + ClearWindowTilemap(sMailboxWindowIds[windowIdx]); + RemoveWindow(sMailboxWindowIds[windowIdx]); + sMailboxWindowIds[windowIdx] = WINDOW_NONE; } -static u8 sub_81D1D34(u8 a0) +// Unused +static u8 MailboxMenu_GetWindowId(u8 windowIdx) { - return sUnknown_0203CF48[a0]; + return sMailboxWindowIds[windowIdx]; } -static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) +static void MailboxMenu_ItemPrintFunc(u8 windowId, u32 itemId, u8 y) { u8 buffer[30]; u16 length; @@ -262,29 +263,29 @@ static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) if (itemId == LIST_CANCEL) return; - StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); - sub_81DB52C(buffer); + StringCopy(buffer, gSaveBlock1Ptr->mail[PARTY_SIZE + itemId].playerName); + ConvertInternationalPlayerName(buffer); length = StringLength(buffer); - if (length <= 5) + if (length < PLAYER_NAME_LENGTH - 1) ConvertInternationalString(buffer, LANGUAGE_JAPANESE); AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sPlayerNameTextColors, -1, buffer); } -u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) +u8 MailboxMenu_CreateList(struct PlayerPCItemPageStruct *page) { u16 i; for (i = 0; i < page->count; i++) { - sUnknown_0203CF4C[i].name = sEmptyItemName; - sUnknown_0203CF4C[i].id = i; + sMailboxList[i].name = sEmptyItemName; + sMailboxList[i].id = i; } - sUnknown_0203CF4C[i].name = gText_Cancel2; - sUnknown_0203CF4C[i].id = LIST_CANCEL; + sMailboxList[i].name = gText_Cancel2; + sMailboxList[i].id = LIST_CANCEL; - gMultiuseListMenuTemplate.items = sUnknown_0203CF4C; + gMultiuseListMenuTemplate.items = sMailboxList; gMultiuseListMenuTemplate.totalItems = page->count + 1; - gMultiuseListMenuTemplate.windowId = sUnknown_0203CF48[1]; + gMultiuseListMenuTemplate.windowId = sMailboxWindowIds[MAILBOXWIN_LIST]; gMultiuseListMenuTemplate.header_X = 0; gMultiuseListMenuTemplate.item_X = 8; gMultiuseListMenuTemplate.cursor_X = 0; @@ -293,8 +294,8 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) gMultiuseListMenuTemplate.cursorPal = 2; gMultiuseListMenuTemplate.fillValue = 1; gMultiuseListMenuTemplate.cursorShadowPal = 3; - gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C; - gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44; + gMultiuseListMenuTemplate.moveCursorFunc = MailboxMenu_MoveCursorFunc; + gMultiuseListMenuTemplate.itemPrintFunc = MailboxMenu_ItemPrintFunc; gMultiuseListMenuTemplate.fontId = 1; gMultiuseListMenuTemplate.cursorKind = 0; gMultiuseListMenuTemplate.lettersSpacing = 0; @@ -303,20 +304,20 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); } -static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void MailboxMenu_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) PlaySE(SE_SELECT); } -void sub_81D1E90(struct PlayerPCItemPageStruct *page) +void MailboxMenu_AddScrollArrows(struct PlayerPCItemPageStruct *page) { - page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove); + page->scrollIndicatorTaskId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove); } -void sub_81D1EC0(void) +void MailboxMenu_Free(void) { - Free(sUnknown_0203CF4C); + Free(sMailboxList); } void InitConditionGraphData(struct ConditionGraph *graph) @@ -841,7 +842,7 @@ void MoveRelearnerPrintText(u8 *str) FillWindowPixelBuffer(3, PIXEL_FILL(1)); gTextFlags.canABSpeedUpPrint = TRUE; speed = GetPlayerTextSpeedDelay(); - AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); + AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, 3); } bool16 MoveRelearnerRunTextPrinters(void) @@ -1151,7 +1152,7 @@ static const union AnimCmd *const sAnims_ConditionSelectionIcon[] = // Just loads the generic data, up to the caller to load the actual sheet/pal for the specific mon void LoadConditionMonPicTemplate(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal) { - struct SpriteSheet dataSheet = {NULL, 0x800, TAG_CONDITION_MON}; + struct SpriteSheet dataSheet = {NULL, MON_PIC_SIZE, TAG_CONDITION_MON}; struct SpriteTemplate dataTemplate = { @@ -1311,13 +1312,13 @@ static void SetConditionSparklePosition(struct Sprite *sprite) if (mon != NULL) { - sprite->pos1.x = mon->pos1.x + mon->pos2.x + sConditionSparkleCoords[sprite->sSparkleId][0]; - sprite->pos1.y = mon->pos1.y + mon->pos2.y + sConditionSparkleCoords[sprite->sSparkleId][1]; + sprite->x = mon->x + mon->x2 + sConditionSparkleCoords[sprite->sSparkleId][0]; + sprite->y = mon->y + mon->y2 + sConditionSparkleCoords[sprite->sSparkleId][1]; } else { - sprite->pos1.x = sConditionSparkleCoords[sprite->sSparkleId][0] + 40; - sprite->pos1.y = sConditionSparkleCoords[sprite->sSparkleId][1] + 104; + sprite->x = sConditionSparkleCoords[sprite->sSparkleId][0] + 40; + sprite->y = sConditionSparkleCoords[sprite->sSparkleId][1] + 104; } } diff --git a/src/mevent2.c b/src/mevent2.c index 3209c585a3..d2c0208583 100755 --- a/src/mevent2.c +++ b/src/mevent2.c @@ -26,7 +26,7 @@ void sub_801AFD8(void) { CpuFill32(0, &gSaveBlock1Ptr->unk_322C, sizeof(gSaveBlock1Ptr->unk_322C)); sub_801B180(); - sub_811F8BC(); + InitQuestionnaireWords(); } struct WonderNews *GetSavedWonderNews(void) @@ -49,9 +49,9 @@ struct MysteryEventStruct *sub_801B044(void) return &gSaveBlock1Ptr->unk_322C.unk_340; } -u16 *sub_801B058(void) +u16 *GetQuestionnaireWordsPtr(void) { - return gSaveBlock1Ptr->unk_322C.unk_338; + return gSaveBlock1Ptr->unk_322C.questionnaireWords; } void DestroyWonderNews(void) @@ -364,8 +364,8 @@ void sub_801B580(struct MEventStruct_Unk1442CC *data, bool32 a1) data->unk_14 = 0; } - for (i = 0; i < 4; i++) - data->unk_16[i] = gSaveBlock1Ptr->unk_322C.unk_338[i]; + for (i = 0; i < NUM_QUESTIONNAIRE_WORDS; i++) + data->unk_16[i] = gSaveBlock1Ptr->unk_322C.questionnaireWords[i]; CopyTrainerId(data->unk_4C, gSaveBlock2Ptr->playerTrainerId); StringCopy(data->unk_45, gSaveBlock2Ptr->playerName); @@ -425,7 +425,7 @@ u32 sub_801B708(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const vo bool32 MEventStruct_Unk1442CC_CompareField_unk_16(const struct MEventStruct_Unk1442CC *a0, const u16 *a1) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_QUESTIONNAIRE_WORDS; i++) { if (a0->unk_16[i] != a1[i]) return FALSE; diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index d732e3045d..a3e6ee0b64 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -63,8 +63,8 @@ void sub_801C61C(void); extern const struct OamData gOamData_AffineOff_ObjNormal_32x16; const u8 sTextColorTable[][3] = { - {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, - {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY} + {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, + {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY} }; const u8 ALIGNED(4) gUnknown_082F0E18[3] = {7, 4, 7}; const struct WindowTemplate gUnknown_082F0E1C[] = { @@ -186,7 +186,7 @@ s32 FadeToWonderCardMenu(void) switch(sWonderCardData->unk_0174) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); break; case 1: if (UpdatePaletteFade()) @@ -231,7 +231,7 @@ s32 FadeToWonderCardMenu(void) ShowBg(2); gPaletteFade.bufferTransferDisabled = FALSE; sub_801C4C0(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); UpdatePaletteFade(); break; default: @@ -251,7 +251,7 @@ s32 FadeOutFromWonderCard(bool32 flag) switch (sWonderCardData->unk_0174) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); break; case 1: if (UpdatePaletteFade()) @@ -279,7 +279,7 @@ s32 FadeOutFromWonderCard(bool32 flag) case 5: PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); CopyBgTilemapBufferToVram(0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; default: if (UpdatePaletteFade()) @@ -420,7 +420,7 @@ void sub_801C4C0(void) sWonderCardData->unk_017C = 0xFF; if (sWonderCardData->unk_014C.unk_06 != SPECIES_NONE) { - sWonderCardData->unk_017C = sub_80D2D78(sub_80D2E84(sWonderCardData->unk_014C.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE); + sWonderCardData->unk_017C = CreateMonIconNoPersonality(GetIconSpeciesNoPersonality(sWonderCardData->unk_014C.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE); gSprites[sWonderCardData->unk_017C].oam.priority = 2; } if (sWonderCardData->unk_0000.unk_09 != 0 && sWonderCardData->unk_0000.unk_08_0 == 1) @@ -434,7 +434,7 @@ void sub_801C4C0(void) sWonderCardData->unk_017D[r7][0] = CreateSprite(&gUnknown_082F1D48, 0xd8 - 32 * r7, 0x90, 8); if (sWonderCardData->unk_014C.unk_08[0][r7] != 0) { - sWonderCardData->unk_017D[r7][1] = sub_80D2D78(sub_80D2E84(sWonderCardData->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0); + sWonderCardData->unk_017D[r7][1] = CreateMonIconNoPersonality(GetIconSpeciesNoPersonality(sWonderCardData->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0); } } } @@ -575,7 +575,7 @@ s32 FadeToWonderNewsMenu(void) switch (sWonderNewsData->unk_01C0_1) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); break; case 1: if (UpdatePaletteFade()) @@ -584,10 +584,10 @@ s32 FadeToWonderNewsMenu(void) ChangeBgY(1, 0, 0); ChangeBgY(2, 0, 0); ChangeBgY(3, 0, 0); - SetGpuReg(REG_OFFSET_WIN0H, 0xF0); - SetGpuReg(REG_OFFSET_WIN0V, 0x1A98); - SetGpuReg(REG_OFFSET_WININ, 0x1F); - SetGpuReg(REG_OFFSET_WINOUT, 0x1B); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(26, 152)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); break; case 2: @@ -629,7 +629,7 @@ s32 FadeToWonderNewsMenu(void) ShowBg(3); gPaletteFade.bufferTransferDisabled = FALSE; sWonderNewsData->unk_01C1 = AddScrollIndicatorArrowPair(&sWonderNewsData->unk_0394, &sWonderNewsData->unk_01C6); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); UpdatePaletteFade(); break; default: @@ -650,7 +650,7 @@ s32 FadeOutFromWonderNews(bool32 flag) switch (sWonderNewsData->unk_01C0_1) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); break; case 1: if (UpdatePaletteFade()) @@ -692,7 +692,7 @@ s32 FadeOutFromWonderNews(bool32 flag) MG_DrawCheckerboardPattern(3); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(3); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; default: if (UpdatePaletteFade()) diff --git a/src/mevent_server.c b/src/mevent_server.c index 0d3afea304..2e7b3d89ad 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -288,8 +288,8 @@ static u32 (*const func_tbl[])(struct mevent_srv_common *) = { static u32 mevent_srv_exec_common(struct mevent_srv_common * svr) { u32 response; - AGB_ASSERT(svr->mainseqno < NELEMS(func_tbl)); + AGB_ASSERT(svr->mainseqno < ARRAY_COUNT(func_tbl)); response = func_tbl[svr->mainseqno](svr); - AGB_ASSERT(svr->mainseqno < NELEMS(func_tbl)); + AGB_ASSERT(svr->mainseqno < ARRAY_COUNT(func_tbl)); return response; } diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c index cd5710d446..8e546afc9a 100644 --- a/src/minigame_countdown.c +++ b/src/minigame_countdown.c @@ -5,16 +5,366 @@ #include "sound.h" #include "task.h" #include "trig.h" +#include "minigame_countdown.h" #include "constants/songs.h" +/* + This file contains two types of '3-2-1 Start' countdowns intended for use by the wireless minigames. + + One is static, where the numbers simply appear and disappear without moving. This version is unused. + The other (used) version has the numbers squish and bounce up as they appear. +*/ + +#define TAG_STATIC_COUNTDOWN 0x2000 + +enum { + STATE_IDLE = 1, + STATE_START, + STATE_RUN, + STATE_END, +}; + +enum { + FUNC_INIT, + FUNC_FREE, + FUNC_START, + FUNC_RUN, +}; + +enum { + ANIM_THREE, + ANIM_TWO, + ANIM_ONE, + ANIM_START_LEFT, + ANIM_START_MID, + ANIM_START_RIGHT, +}; + extern const struct OamData gOamData_AffineOff_ObjNormal_32x32; -static void sub_802E6D0(u8 taskId); -static void sub_802E83C(u8 taskId); -static void sub_802E8C8(u8 taskId); -static void sub_802EA50(u8 taskId); -static void sub_802EAB0(u8 taskId); -static void sub_802EB98(u8 taskId); +static void Task_StaticCountdown(u8 taskId); +static void Task_StaticCountdown_Init(u8 taskId); +static void Task_StaticCountdown_Free(u8 taskId); +static void Task_StaticCountdown_Start(u8 taskId); +static void Task_StaticCountdown_Run(u8 taskId); + +static const u16 s321Start_Static_Pal[] = INCBIN_U16("graphics/minigame_countdown/321start_static.gbapal"); +static const u32 s321Start_Static_Gfx[] = INCBIN_U32("graphics/minigame_countdown/321start_static.4bpp.lz"); + +static const struct CompressedSpriteSheet sSpriteSheet_321Start_Static[] = +{ + {s321Start_Static_Gfx, 0xC00, TAG_STATIC_COUNTDOWN}, + {}, +}; + +static const struct SpritePalette sSpritePalette_321Start_Static[] = +{ + {s321Start_Static_Pal, TAG_STATIC_COUNTDOWN}, + {}, +}; + +static const union AnimCmd sAnim_StaticCountdown_Three[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_StaticCountdown_Two[] = +{ + ANIMCMD_FRAME(16, 0), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_StaticCountdown_One[] = +{ + ANIMCMD_FRAME(32, 0), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_StaticCountdown_StartLeft[] = +{ + ANIMCMD_FRAME(64, 0), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_StaticCountdown_StartMid[] = +{ + ANIMCMD_FRAME(48, 0), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_StaticCountdown_StartRight[] = +{ + ANIMCMD_FRAME(80, 0), + ANIMCMD_END +}; + +static const union AnimCmd *const sAnims_StaticCountdown[] = +{ + [ANIM_THREE] = sAnim_StaticCountdown_Three, + [ANIM_TWO] = sAnim_StaticCountdown_Two, + [ANIM_ONE] = sAnim_StaticCountdown_One, + [ANIM_START_LEFT] = sAnim_StaticCountdown_StartLeft, + [ANIM_START_MID] = sAnim_StaticCountdown_StartMid, + [ANIM_START_RIGHT] = sAnim_StaticCountdown_StartRight +}; + +static const struct SpriteTemplate sSpriteTemplate_StaticCountdown[] = +{ + { + .tileTag = TAG_STATIC_COUNTDOWN, + .paletteTag = TAG_STATIC_COUNTDOWN, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = sAnims_StaticCountdown, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, +}; + +static const TaskFunc sStaticCountdownFuncs[][4] = +{ + { + [FUNC_INIT] = Task_StaticCountdown_Init, + [FUNC_FREE] = Task_StaticCountdown_Free, + [FUNC_START] = Task_StaticCountdown_Start, + [FUNC_RUN] = Task_StaticCountdown_Run + }, +}; + +#define tState data[0] +#define tFuncSetId data[1] // These 4 data elements are indexes into +#define tSpriteTemplateId data[2] // arrays that only have 1 element with +#define tSpriteSheetId data[3] // data. As such their only legal value +#define tSpritePalId data[4] // is 0. Unclear why they were used. +#define tInterval data[5] +#define tPriority data[6] +#define tSubpriority data[7] +#define tNumSprites data[8] +#define tX data[9] +#define tY data[10] +#define tPrevTime data[10] // Re-used +#define tTimer data[11] +#define tLinkTimer data[12] +// 13-15 hold sprite ids +// tSpriteIds(0) is used for the number sprites, and the leftmost part of 'Start' +// tSpriteIds(1) is used for the middle part of 'Start' +// tSpriteIds(2) is used for for the rightmost part of 'Start' +#define tSpriteIds(i) data[13 + i] + +#define sInterval data[1] // Never read +#define sAnimNum data[2] +#define sTaskId data[3] +#define sId data[4] // Never read +#define sNumberSpriteId data[5] // Never read + +// Unused +static u32 CreateStaticCountdownTask(u8 funcSetId, u8 taskPriority) +{ + u8 taskId = CreateTask(Task_StaticCountdown, taskPriority); + struct Task *task = &gTasks[taskId]; + + task->tState = STATE_IDLE; + task->tFuncSetId = funcSetId; + sStaticCountdownFuncs[funcSetId][FUNC_INIT](taskId); + return taskId; +} + +static bool32 StartStaticCountdown(void) +{ + u8 taskId = FindTaskIdByFunc(Task_StaticCountdown); + if (taskId == TASK_NONE) + return FALSE; + + gTasks[taskId].tState = STATE_START; + return TRUE; +} + +static bool32 IsStaticCountdownRunning(void) +{ + return FuncIsActiveTask(Task_StaticCountdown); +} + +static void Task_StaticCountdown(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (tState) + { + // STATE_IDLE does nothing; wait until started + case STATE_START: + sStaticCountdownFuncs[tFuncSetId][FUNC_START](taskId); + tState = STATE_RUN; + break; + case STATE_RUN: + sStaticCountdownFuncs[tFuncSetId][FUNC_RUN](taskId); + break; + case STATE_END: + sStaticCountdownFuncs[tFuncSetId][FUNC_FREE](taskId); + DestroyTask(taskId); + break; + } +} + +static void StaticCountdown_CreateSprites(u8 taskId, s16 *data) +{ + u8 i; + struct Sprite *sprite; + + LoadCompressedSpriteSheet(&sSpriteSheet_321Start_Static[tSpriteSheetId]); + LoadSpritePalette(&sSpritePalette_321Start_Static[tSpritePalId]); + for (i = 0; i < tNumSprites; i++) + tSpriteIds(i) = CreateSprite(&sSpriteTemplate_StaticCountdown[tSpriteTemplateId], tX, tY, tSubpriority); + for (i = 0; i < tNumSprites; i++) + { + sprite = &gSprites[tSpriteIds(i)]; + sprite->oam.priority = tPriority; + sprite->invisible = TRUE; + sprite->sInterval = tInterval; + sprite->sTaskId = taskId; + sprite->sId = i; + sprite->sNumberSpriteId = tSpriteIds(0); + } +} + +static void Task_StaticCountdown_Init(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + tSpriteTemplateId = 0; + tSpriteSheetId = 0; + tSpritePalId = 0; + tInterval = 60; + tPriority = 0; + tSubpriority = 0; + tNumSprites = 3; + tX = 120; + tY = 88; + StaticCountdown_CreateSprites(taskId, data); + + StartSpriteAnim(&gSprites[tSpriteIds(1)], ANIM_START_MID); + gSprites[tSpriteIds(1)].x2 = -32; + + StartSpriteAnim(&gSprites[tSpriteIds(2)], ANIM_START_RIGHT); + gSprites[tSpriteIds(2)].x2 = 32; +} + +static void Task_StaticCountdown_Free(u8 taskId) +{ + u8 i = 0; + s16 *data = gTasks[taskId].data; + + for (i = 0; i < tNumSprites; i++) + DestroySprite(&gSprites[tSpriteIds(i)]); + FreeSpriteTilesByTag(sSpriteSheet_321Start_Static[tSpriteSheetId].tag); + FreeSpritePaletteByTag(sSpritePalette_321Start_Static[tSpritePalId].tag); +} + +static void SpriteCB_StaticCountdown(struct Sprite *sprite) +{ + s16 *data = gTasks[sprite->sTaskId].data; + + if (tTimer % tInterval != 0) + return; + if (tTimer == tPrevTime) + return; + + tPrevTime = tTimer; + switch (sprite->sAnimNum) + { + case ANIM_THREE: + sprite->invisible = FALSE; + case ANIM_TWO: + case ANIM_ONE: + // Set sprite to a number + PlaySE(SE_BALL_BOUNCE_1); + StartSpriteAnim(sprite, sprite->sAnimNum); + break; + case ANIM_START_LEFT: + // Set sprite to 'Start' + PlaySE(SE_PIN); + StartSpriteAnim(sprite, sprite->sAnimNum); + gSprites[tSpriteIds(1)].invisible = FALSE; + gSprites[tSpriteIds(2)].invisible = FALSE; + break; + case ANIM_START_LEFT + 1: // End + // Hide countdown + sprite->invisible = TRUE; + gSprites[tSpriteIds(1)].invisible = TRUE; + gSprites[tSpriteIds(2)].invisible = TRUE; + tState = STATE_END; + return; + } + sprite->sAnimNum++; +} + +static void Task_StaticCountdown_Start(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + PlaySE(SE_BALL_BOUNCE_1); + gSprites[tSpriteIds(0)].callback = SpriteCB_StaticCountdown; + gSprites[tSpriteIds(0)].invisible = FALSE; + gTasks[taskId].tState = STATE_RUN; +} + +// Increment timer for progressing the countdown. +// If the player is the link leader, increment a +// separate timer and send it to group members for +// them to read and use. +static void Task_StaticCountdown_Run(u8 taskId) +{ + u16 packet[RFU_PACKET_SIZE]; + s16 *data = gTasks[taskId].data; + + if (gReceivedRemoteLinkPlayers != 0) + { + // Read link timer + if (gRecvCmds[0][1] == LINKCMD_COUNTDOWN) + tTimer = gRecvCmds[0][2]; + + if (GetMultiplayerId() == 0) + { + // Player is link leader. + // Send timer to group members + tLinkTimer++; + memset(packet, 0, sizeof(packet)); + packet[0] = LINKCMD_COUNTDOWN; + packet[1] = tLinkTimer; + Rfu_SendPacket(packet); + } + } + else + { + // Local, just increment own timer + tTimer++; + } +} + +#undef tState +#undef tFuncSetId +#undef tSpriteTemplateId +#undef tSpriteSheetId +#undef tSpritePalId +#undef tInterval +#undef tPriority +#undef tSubpriority +#undef tNumSprites +#undef tX +#undef tY +#undef tPrevTime +#undef tTimer +#undef tLinkTimer +#undef tSpriteIds +#undef sInterval +#undef sAnimNum +#undef sTaskId +#undef sId +#undef sNumberSpriteId + +/* + The countdown that actually gets used by + the wireless minigames starts here +*/ + static void Task_MinigameCountdown(u8 taskId); static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId); static bool32 IsStartGraphicAnimRunning(u8 spriteId); @@ -24,260 +374,8 @@ static void CreateStartSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subprior static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3); static void SpriteCB_Start(struct Sprite *sprite); -static const u16 sSpritePal_321Start_2[] = INCBIN_U16("graphics/link_games/321start_2.gbapal"); -static const u32 sSpriteSheet_321Start_2[] = INCBIN_U32("graphics/link_games/321start_2.4bpp.lz"); - -static const struct CompressedSpriteSheet gUnknown_082FE6C8[] = -{ - {sSpriteSheet_321Start_2, 0xC00, 0x2000}, - {}, -}; - -static const struct SpritePalette gUnknown_082FE6D8[] = -{ - {sSpritePal_321Start_2, 0x2000}, - {}, -}; - -static const union AnimCmd sSpriteAnim_82FE6E8[] = -{ - ANIMCMD_FRAME(0, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE6F0[] = -{ - ANIMCMD_FRAME(16, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE6F8[] = -{ - ANIMCMD_FRAME(32, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE700[] = -{ - ANIMCMD_FRAME(64, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE708[] = -{ - ANIMCMD_FRAME(48, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE710[] = -{ - ANIMCMD_FRAME(80, 0), - ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_82FE718[] = -{ - sSpriteAnim_82FE6E8, - sSpriteAnim_82FE6F0, - sSpriteAnim_82FE6F8, - sSpriteAnim_82FE700, - sSpriteAnim_82FE708, - sSpriteAnim_82FE710 -}; - -static const struct SpriteTemplate gUnknown_082FE730[] = -{ - { - .tileTag = 0x2000, - .paletteTag = 0x2000, - .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_82FE718, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, -}; - -static const TaskFunc gUnknown_082FE748[][4] = -{ - { - sub_802E83C, - sub_802E8C8, - sub_802EA50, - sub_802EAB0 - }, -}; - -static const u16 sSpritePal_321Start[] = INCBIN_U16("graphics/link_games/321start.gbapal"); -static const u32 sSpriteSheet_321Start[] = INCBIN_U32("graphics/link_games/321start.4bpp.lz"); - -// Unused -static u32 sub_802E63C(u8 funcSetId, u8 taskPriority) -{ - u8 taskId = CreateTask(sub_802E6D0, taskPriority); - struct Task *task = &gTasks[taskId]; - - task->data[0] = 1; - task->data[1] = funcSetId; - gUnknown_082FE748[funcSetId][0](taskId); - return taskId; -} - -static bool32 sub_802E688(void) -{ - u8 taskId = FindTaskIdByFunc(sub_802E6D0); - if (taskId == 0xFF) - return FALSE; - - gTasks[taskId].data[0] = 2; - return TRUE; -} - -static bool32 sub_802E6BC(void) -{ - return FuncIsActiveTask(sub_802E6D0); -} - -static void sub_802E6D0(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 2: - gUnknown_082FE748[data[1]][2](taskId); - data[0] = 3; - break; - case 3: - gUnknown_082FE748[data[1]][3](taskId); - break; - case 4: - gUnknown_082FE748[data[1]][1](taskId); - DestroyTask(taskId); - break; - } -} - -static void sub_802E75C(u8 taskId, s16 *data) -{ - u8 i; - struct Sprite *sprite; - - LoadCompressedSpriteSheet(&gUnknown_082FE6C8[data[3]]); - LoadSpritePalette(&gUnknown_082FE6D8[data[4]]); - for (i = 0; i < data[8]; i++) - data[13 + i] = CreateSprite(&gUnknown_082FE730[data[2]], data[9], data[10], data[7]); - for (i = 0; i < data[8]; i++) - { - sprite = &gSprites[data[13 + i]]; - sprite->oam.priority = data[6]; - sprite->invisible = TRUE; - sprite->data[1] = data[5]; - sprite->data[3] = taskId; - sprite->data[4] = i; - sprite->data[5] = data[13]; - } -} - -static void sub_802E83C(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - data[2] = 0; - data[3] = 0; - data[4] = 0; - data[5] = 60; - data[6] = 0; - data[7] = 0; - data[8] = 3; - data[9] = 120; - data[10] = 88; - sub_802E75C(taskId, data); - - StartSpriteAnim(&gSprites[data[14]], 4); - gSprites[data[14]].pos2.x = -32; - - StartSpriteAnim(&gSprites[data[15]], 5); - gSprites[data[15]].pos2.x = 32; -} - -static void sub_802E8C8(u8 taskId) -{ - u8 i = 0; - s16 *data = gTasks[taskId].data; - - for (i = 0; i < data[8]; i++) - DestroySprite(&gSprites[data[13 + i]]); - FreeSpriteTilesByTag(gUnknown_082FE6C8[data[3]].tag); - FreeSpritePaletteByTag(gUnknown_082FE6D8[data[4]].tag); -} - -static void sub_802E938(struct Sprite *sprite) -{ - s16 *data = gTasks[sprite->data[3]].data; - - if (data[11] % data[5] != 0) - return; - if (data[11] == data[10]) - return; - - data[10] = data[11]; - switch (sprite->data[2]) - { - case 0: - sprite->invisible = FALSE; - case 1: - case 2: - PlaySE(SE_BALL_BOUNCE_1); - StartSpriteAnim(sprite, sprite->data[2]); - break; - case 3: - PlaySE(SE_PIN); - StartSpriteAnim(sprite, sprite->data[2]); - gSprites[data[14]].invisible = FALSE; - gSprites[data[15]].invisible = FALSE; - break; - case 4: - sprite->invisible = TRUE; - gSprites[data[14]].invisible = TRUE; - gSprites[data[15]].invisible = TRUE; - data[0] = 4; - return; - } - sprite->data[2]++; -} - -static void sub_802EA50(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - PlaySE(SE_BALL_BOUNCE_1); - gSprites[data[13]].callback = sub_802E938; - gSprites[data[13]].invisible = FALSE; - gTasks[taskId].data[0] = 3; -} - -static void sub_802EAB0(u8 taskId) -{ - u16 packet[6]; - s16 *data = gTasks[taskId].data; - - if (gReceivedRemoteLinkPlayers != 0) - { - if (gRecvCmds[0][1] == LINKCMD_0x7FFF) - data[11] = gRecvCmds[0][2]; - if (GetMultiplayerId() == 0) - { - data[12]++; - memset(packet, 0, sizeof(packet)); - packet[0] = LINKCMD_0x7FFF; - packet[1] = data[12]; - Rfu_SendPacket(packet); - } - } - else - { - data[11]++; - } -} +static const u16 s321Start_Pal[] = INCBIN_U16("graphics/minigame_countdown/321start.gbapal"); +static const u32 s321Start_Gfx[] = INCBIN_U32("graphics/minigame_countdown/321start.4bpp.lz"); #define tState data[0] #define tTilesTag data[2] @@ -289,7 +387,7 @@ static void sub_802EAB0(u8 taskId) #define tSpriteId2 data[8] #define tSpriteId3 data[9] -void StartMinigameCountdown(s16 tilesTag, s16 palTag, s16 x, s16 y, u8 subpriority) +void StartMinigameCountdown(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority) { u8 taskId = CreateTask(Task_MinigameCountdown, 80); gTasks[taskId].tTilesTag = tilesTag; @@ -338,69 +436,82 @@ static void Task_MinigameCountdown(u8 taskId) } } +#define sState data[0] +#define sTimer data[2] +#define sAnimNum data[4] + static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId) { struct Sprite *sprite = &gSprites[spriteId]; - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sub_8007E18(sprite, 0x800, 0x1A); - sprite->data[0]++; + sprite->sState++; // fallthrough case 1: - if (sprite->data[2] == 0) + if (sprite->sTimer == 0) PlaySE(SE_BALL_BOUNCE_2); - if (++sprite->data[2] >= 20) + + if (++sprite->sTimer >= 20) { - sprite->data[2] = 0; + // Ready for jump + sprite->sTimer = 0; StartSpriteAffineAnim(sprite, 1); - sprite->data[0]++; + sprite->sState++; } break; case 2: if (sprite->affineAnimEnded) - sprite->data[0]++; + sprite->sState++; break; case 3: - if (++sprite->data[2] >= 4) + if (++sprite->sTimer >= 4) { - sprite->data[2] = 0; - sprite->data[0]++; + // Start jump + sprite->sTimer = 0; + sprite->sState++; StartSpriteAffineAnim(sprite, 2); } break; case 4: - sprite->pos1.y -= 4; - if (++sprite->data[2] >= 8) + // Moving up from jump + sprite->y -= 4; + if (++sprite->sTimer >= 8) { - if (sprite->data[4] <= 1) + if (sprite->sAnimNum < 2) { - StartSpriteAnim(sprite, sprite->data[4] + 1); - sprite->data[2] = 0; - sprite->data[0]++; + // Swap to the next number + StartSpriteAnim(sprite, sprite->sAnimNum + 1); + sprite->sTimer = 0; + sprite->sState++; } else { - sprite->data[0] = 7; + // End + sprite->sState = 7; return FALSE; } } break; case 5: - sprite->pos1.y += 4; - if (++sprite->data[2] >= 8) + // Falling after jump + sprite->y += 4; + if (++sprite->sTimer >= 8) { - sprite->data[2] = 0; + // Land from jump + sprite->sTimer = 0; StartSpriteAffineAnim(sprite, 3); - sprite->data[0]++; + sprite->sState++; } break; case 6: if (sprite->affineAnimEnded) { - sprite->data[4]++; - sprite->data[0] = 1; + // Restart for next number + sprite->sAnimNum++; + sprite->sState = 1; } break; case 7: @@ -410,11 +521,15 @@ static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId) return TRUE; } +#undef sState +#undef sTimer +#undef sAnimNum + // First argument is unused. static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3) { - gSprites[spriteId2].pos2.y = -40; - gSprites[spriteId3].pos2.y = -40; + gSprites[spriteId2].y2 = -40; + gSprites[spriteId3].y2 = -40; gSprites[spriteId2].invisible = FALSE; gSprites[spriteId3].invisible = FALSE; gSprites[spriteId2].callback = SpriteCB_Start; @@ -426,60 +541,70 @@ static bool32 IsStartGraphicAnimRunning(u8 spriteId) return gSprites[spriteId].callback == SpriteCB_Start; } +#define sState data[0] +#define sTimer data[1] +#define sYSpeed data[4] +#define sY data[5] + static void SpriteCB_Start(struct Sprite *sprite) { int y; s16 *data = sprite->data; - switch (data[0]) + switch (sState) { case 0: - data[4] = 64; - data[5] = sprite->pos2.y << 4; - data[0]++; + sYSpeed = 64; + sY = sprite->y2 << 4; + sState++; case 1: - data[5] += data[4]; - data[4]++; - sprite->pos2.y = data[5] >> 4; - if (sprite->pos2.y >= 0) + sY += sYSpeed; + sYSpeed++; + sprite->y2 = sY >> 4; + if (sprite->y2 >= 0) { PlaySE(SE_BALL_BOUNCE_2); - sprite->pos2.y = 0; - data[0]++; + sprite->y2 = 0; + sState++; } break; case 2: - data[1] += 12; - if (data[1] >= 128) + sTimer += 12; + if (sTimer >= 128) { PlaySE(SE_BALL_BOUNCE_2); - data[1] = 0; - data[0]++; + sTimer = 0; + sState++; } - y = gSineTable[data[1]]; - sprite->pos2.y = -(y >> 4); + y = gSineTable[sTimer]; + sprite->y2 = -(y >> 4); break; case 3: - data[1] += 16; - if (data[1] >= 128) + sTimer += 16; + if (sTimer >= 128) { PlaySE(SE_BALL_BOUNCE_2); - data[1] = 0; - data[0]++; + sTimer = 0; + sState++; } - sprite->pos2.y = -(gSineTable[data[1]] >> 5); + sprite->y2 = -(gSineTable[sTimer] >> 5); break; case 4: - if (++data[1] > 40) + if (++sTimer > 40) sprite->callback = SpriteCallbackDummy; break; } } +#undef sState +#undef sTimer +#undef sYSpeed +#undef sY + static void Load321StartGfx(u16 tileTag, u16 palTag) { - struct CompressedSpriteSheet spriteSheet = {sSpriteSheet_321Start, 0xE00, 0}; - struct SpritePalette spritePalette = {sSpritePal_321Start, 0}; + struct CompressedSpriteSheet spriteSheet = {s321Start_Gfx, 0xE00, 0}; + struct SpritePalette spritePalette = {s321Start_Pal, 0}; spriteSheet.tag = tileTag; spritePalette.tag = palTag; @@ -565,26 +690,26 @@ static const union AnimCmd *const sAnimTable_Start[] = sAnim_StartRight }; -static const union AffineAnimCmd sAffineAnim_Numbers_0[] = +static const union AffineAnimCmd sAffineAnim_Numbers_Normal[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sAffineAnim_Numbers_1[] = +static const union AffineAnimCmd sAffineAnim_Numbers_Squash[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(16, -16, 0, 8), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sAffineAnim_Numbers_2[] = +static const union AffineAnimCmd sAffineAnim_Numbers_Stretch[] = { AFFINEANIMCMD_FRAME(-18, 18, 0, 8), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sAffineAnim_Numbers_3[] = +static const union AffineAnimCmd sAffineAnim_Numbers_Land[] = { AFFINEANIMCMD_FRAME( 6, -6, 0, 8), AFFINEANIMCMD_FRAME( -4, 4, 0, 8), @@ -594,10 +719,10 @@ static const union AffineAnimCmd sAffineAnim_Numbers_3[] = static const union AffineAnimCmd *const sAffineAnimTable_Numbers[] = { - sAffineAnim_Numbers_0, - sAffineAnim_Numbers_1, - sAffineAnim_Numbers_2, - sAffineAnim_Numbers_3 + sAffineAnim_Numbers_Normal, + sAffineAnim_Numbers_Squash, // Push down before the jump + sAffineAnim_Numbers_Stretch, // Stretch up for the jump + sAffineAnim_Numbers_Land // Land after the jump }; static u8 CreateNumberSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority) diff --git a/src/mirage_tower.c b/src/mirage_tower.c index ef7bf7228c..9b6d0d887b 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -14,12 +14,14 @@ #include "sprite.h" #include "task.h" #include "window.h" +#include "constants/event_objects.h" #include "constants/maps.h" #include "constants/rgb.h" #include "constants/songs.h" #include "constants/metatile_labels.h" -struct MirageTowerPulseBlend { +struct MirageTowerPulseBlend +{ u8 taskId; struct PulseBlend pulseBlend; }; @@ -37,59 +39,51 @@ struct BgRegOffsets u16 bgVOFS; }; -struct Struct203CF10 +struct FallAnim_Tower { - u8 *buffer; - u8 currIndex; + u8 *disintegrateRand; + u8 disintegrateIdx; }; -struct DynamicSpriteFrameImage -{ - u8 *data; - u16 size; -}; - -struct Struct203CF0C +struct FallAnim_Fossil { u8 *frameImageTiles; - struct DynamicSpriteFrameImage *frameImage; + struct SpriteFrameImage *frameImage; u8 spriteId; - u16 *unkC; - u16 unk10; + u16 *disintegrateRand; + u16 disintegrateIdx; }; +#define TAG_CEILING_CRUMBLE 4000 + #define MIRAGE_TOWER_GFX_LENGTH (sizeof(sBlankTile_Gfx) + sizeof(sMirageTower_Gfx)) -#define ROOT_FOSSIL_GFX_LENGTH sizeof(sRootFossil_Gfx) -#define ROOT_FOSSIL_GFX_RANDOMIZER_LENGTH 0x100 +#define FOSSIL_DISINTEGRATE_LENGTH 0x100 -// extern data -extern const struct SpriteSheet gMirageTowerCeilingCrumbleSpriteSheets[]; -extern const s16 sCeilingCrumblePositions[][3]; +static const struct SpriteSheet sCeilingCrumbleSpriteSheets[]; +static const s16 sCeilingCrumblePositions[][3]; -// static functions -static void PlayerDescendMirageTower(u8 taskId); -static void DoScreenShake(u8 taskId); +static void PlayerDescendMirageTower(u8); +static void DoScreenShake(u8); static void IncrementCeilingCrumbleFinishedCount(void); -static void WaitCeilingCrumble(u8 taskId); -static void FinishCeilingCrumbleTask(u8 taskId); +static void WaitCeilingCrumble(u8); +static void FinishCeilingCrumbleTask(u8); static void CreateCeilingCrumbleSprites(void); -static void MoveCeilingCrumbleSprite(struct Sprite* sprite); -static void DoMirageTowerDisintegration(u8 taskId); -static void InitMirageTowerShake(u8 taskId); -static void DoFossilFallAndSink(u8 taskId); -static void sub_81BF248(struct Sprite *); -static void sub_81BF2B8(u8* a, u16 b, u8 c, u8 d, u8 e); +static void SpriteCB_CeilingCrumble(struct Sprite*); +static void DoMirageTowerDisintegration(u8); +static void InitMirageTowerShake(u8); +static void Task_FossilFallAndSink(u8); +static void SpriteCB_FallingFossil(struct Sprite *); +static void UpdateDisintegrationEffect(u8*, u16, u8, u8, u8); -// rodata static const u8 sBlankTile_Gfx[32] = {0}; static const u8 sMirageTower_Gfx[] = INCBIN_U8("graphics/misc/mirage_tower.4bpp"); static const u16 sMirageTowerTilemap[] = INCBIN_U16("graphics/misc/mirage_tower.bin"); -static const u16 sRootFossil_Pal[] = INCBIN_U16("graphics/misc/fossil.gbapal"); -static const u8 sRootFossil_Gfx[] = INCBIN_U8("graphics/misc/fossil.4bpp"); +static const u16 sFossil_Pal[] = INCBIN_U16("graphics/object_events/pics/misc/fossil.gbapal"); // Unused +static const u8 sFossil_Gfx[] = INCBIN_U8("graphics/object_events/pics/misc/fossil.4bpp"); // Duplicate of gObjectEventPic_Fossil static const u8 sMirageTowerCrumbles_Gfx[] = INCBIN_U8("graphics/misc/mirage_tower_crumbles.4bpp"); static const u16 sMirageTowerCrumbles_Palette[] = INCBIN_U16("graphics/misc/mirage_tower_crumbles.gbapal"); -const s16 sCeilingCrumblePositions[][3] = +static const s16 sCeilingCrumblePositions[][3] = { { 0, 10, 65}, { 17, 3, 50}, @@ -101,10 +95,10 @@ const s16 sCeilingCrumblePositions[][3] = {-24, -4, 65}, }; -const struct SpriteSheet gMirageTowerCeilingCrumbleSpriteSheets[] = +static const struct SpriteSheet sCeilingCrumbleSpriteSheets[] = { - {sMirageTowerCrumbles_Gfx, 0x0080, 4000}, - {NULL} + {sMirageTowerCrumbles_Gfx, 0x80, TAG_CEILING_CRUMBLE}, + {} }; static const struct MetatileCoords sInvisibleMirageTowerMetatiles[] = @@ -129,13 +123,13 @@ static const struct MetatileCoords sInvisibleMirageTowerMetatiles[] = {20, 58, METATILE_General_SandPit_Center}, }; -static const union AnimCmd gSpriteAnim_8617DEC[] = +static const union AnimCmd sAnim_FallingFossil[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const struct OamData gOamData_8617DF4 = +static const struct OamData sOamData_FallingFossil = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -152,14 +146,20 @@ static const struct OamData gOamData_8617DF4 = .affineParam = 0, }; -static const union AnimCmd *const gSpriteAnimTable_8617DFC[] = +static const union AnimCmd *const sAnims_FallingFossil[] = { - gSpriteAnim_8617DEC, + sAnim_FallingFossil, }; -static const struct SpriteTemplate gUnknown_08617E00 = +static const struct SpriteTemplate sSpriteTemplate_FallingFossil = { - 0xFFFF, 0xFFFF, &gOamData_8617DF4, gSpriteAnimTable_8617DFC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + .tileTag = 0xFFFF, + .paletteTag = 0xFFFF, + .oam = &sOamData_FallingFossil, + .anims = sAnims_FallingFossil, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; const struct PulseBlendSettings gMirageTowerPulseBlendSettings = { @@ -174,18 +174,18 @@ const struct PulseBlendSettings gMirageTowerPulseBlendSettings = { .unk7_7 = 1, }; -static const union AnimCmd sCeilingCrumble2AnimCmd[] = +static const union AnimCmd sAnim_CeilingCrumbleSmall[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sCeilingCrumble2AnimCmds[] = +static const union AnimCmd *const sAnims_CeilingCrumbleSmall[] = { - sCeilingCrumble2AnimCmd, + sAnim_CeilingCrumbleSmall, }; -static const struct OamData sCeilingCrumble2OamData = +static const struct OamData sOamData_CeilingCrumbleSmall = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -202,28 +202,28 @@ static const struct OamData sCeilingCrumble2OamData = .affineParam = 0, }; -static const struct SpriteTemplate sCeilingCrumbleSpriteTemplate2 = { - .tileTag = 4000, +static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleSmall = { + .tileTag = TAG_CEILING_CRUMBLE, .paletteTag = 0xFFFF, - .oam = &sCeilingCrumble2OamData, - .anims = sCeilingCrumble2AnimCmds, + .oam = &sOamData_CeilingCrumbleSmall, + .anims = sAnims_CeilingCrumbleSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = MoveCeilingCrumbleSprite + .callback = SpriteCB_CeilingCrumble }; -static const union AnimCmd sCeilingCrumble1AnimCmd[] = +static const union AnimCmd sAnim_CeilingCrumbleLarge[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sCeilingCrumble1AnimCmds[] = +static const union AnimCmd *const sAnims_CeilingCrumbleLarge[] = { - sCeilingCrumble1AnimCmd, + sAnim_CeilingCrumbleLarge, }; -static const struct OamData sCeilingCrumble1OamData = +static const struct OamData sOamData_CeilingCrumbleLarge = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -240,24 +240,26 @@ static const struct OamData sCeilingCrumble1OamData = .affineParam = 0, }; -static const struct SpriteTemplate sCeilingCrumbleSpriteTemplate1 = { - .tileTag = 4000, +static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleLarge = { + .tileTag = TAG_CEILING_CRUMBLE, .paletteTag = 0xFFFF, - .oam = &sCeilingCrumble1OamData, - .anims = sCeilingCrumble1AnimCmds, + .oam = &sOamData_CeilingCrumbleLarge, + .anims = sAnims_CeilingCrumbleLarge, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = MoveCeilingCrumbleSprite + .callback = SpriteCB_CeilingCrumble }; EWRAM_DATA static u8* sMirageTowerGfxBuffer = NULL; EWRAM_DATA static u8* sMirageTowerTilemapBuffer = NULL; -EWRAM_DATA static struct Struct203CF0C *sUnknown_0203CF0C = NULL; -EWRAM_DATA static struct Struct203CF10 *sUnknown_0203CF10 = NULL; +EWRAM_DATA static struct FallAnim_Fossil *sFallingFossil = NULL; +EWRAM_DATA static struct FallAnim_Tower *sFallingTower = NULL; EWRAM_DATA static struct BgRegOffsets *sBgShakeOffsets = NULL; -EWRAM_DATA struct MirageTowerPulseBlend *sMirageTowerPulseBlend = NULL; +EWRAM_DATA static struct MirageTowerPulseBlend *sMirageTowerPulseBlend = NULL; -static u16 gUnknown_030012A8[8]; +// Holds data about the disintegration effect for Mirage Tower / the unchosen fossil. +// Never read, presumably for debugging +static u16 sDebug_DisintegrationData[8]; bool8 IsMirageTowerVisible(void) { @@ -319,6 +321,7 @@ void SetMirageTowerVisibility(void) if (VarGet(VAR_MIRAGE_TOWER_STATE)) { + // Mirage Tower event has already been completed, hide it FlagClear(FLAG_MIRAGE_TOWER_VISIBLE); return; } @@ -343,32 +346,40 @@ void StartPlayerDescendMirageTower(void) CreateTask(PlayerDescendMirageTower, 8); } +// As the tower disintegrates, a duplicate object event of the player +// is created at the top of the tower and moved down to show the player falling static void PlayerDescendMirageTower(u8 taskId) { u8 objectEventId; - struct ObjectEvent *fakePlayerObjectEvent; - struct ObjectEvent *playerObjectEvent; + struct ObjectEvent *fallingPlayer; + struct ObjectEvent *player; - TryGetObjectEventIdByLocalIdAndMap(45, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); - fakePlayerObjectEvent = &gObjectEvents[objectEventId]; - gSprites[fakePlayerObjectEvent->spriteId].pos2.y += 4; - playerObjectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if ((gSprites[fakePlayerObjectEvent->spriteId].pos1.y + gSprites[fakePlayerObjectEvent->spriteId].pos2.y) >= - (gSprites[playerObjectEvent->spriteId].pos1.y + gSprites[playerObjectEvent->spriteId].pos2.y)) + TryGetObjectEventIdByLocalIdAndMap(LOCALID_ROUTE111_PLAYER_FALLING, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); + fallingPlayer = &gObjectEvents[objectEventId]; + gSprites[fallingPlayer->spriteId].y2 += 4; + player = &gObjectEvents[gPlayerAvatar.objectEventId]; + if ((gSprites[fallingPlayer->spriteId].y + gSprites[fallingPlayer->spriteId].y2) >= + (gSprites[player->spriteId].y + gSprites[player->spriteId].y2)) { DestroyTask(taskId); EnableBothScriptContexts(); } } +#define tXShakeOffset data[0] +#define tTimer data[1] +#define tNumShakes data[2] +#define tShakeDelay data[3] +#define tYShakeOffset data[4] + static void StartScreenShake(u8 yShakeOffset, u8 xShakeOffset, u8 numShakes, u8 shakeDelay) { u8 taskId = CreateTask(DoScreenShake, 9); - gTasks[taskId].data[0] = xShakeOffset; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = numShakes; - gTasks[taskId].data[3] = shakeDelay; - gTasks[taskId].data[4] = yShakeOffset; + gTasks[taskId].tXShakeOffset = xShakeOffset; + gTasks[taskId].tTimer = 0; + gTasks[taskId].tNumShakes = numShakes; + gTasks[taskId].tShakeDelay = shakeDelay; + gTasks[taskId].tYShakeOffset = yShakeOffset; SetCameraPanningCallback(NULL); PlaySE(SE_M_STRENGTH); } @@ -378,15 +389,15 @@ static void DoScreenShake(u8 taskId) s16 *data; data = gTasks[taskId].data; - data[1]++; - if (data[1] % data[3] == 0) + tTimer++; + if (tTimer % tShakeDelay == 0) { - data[1] = 0; - data[2]--; - data[0] = -data[0]; - data[4] = -data[4]; - SetCameraPanning(data[0], data[4]); - if (data[2] == 0) + tTimer = 0; + tNumShakes--; + tXShakeOffset = -tXShakeOffset; + tYShakeOffset = -tYShakeOffset; + SetCameraPanning(tXShakeOffset, tYShakeOffset); + if (tNumShakes == 0) { IncrementCeilingCrumbleFinishedCount(); DestroyTask(taskId); @@ -395,16 +406,22 @@ static void DoScreenShake(u8 taskId) } } +#undef tXShakeOffset +#undef tTimer +#undef tNumShakes +#undef tShakeDelay +#undef tYShakeOffset + static void IncrementCeilingCrumbleFinishedCount(void) { u8 taskId = FindTaskIdByFunc(WaitCeilingCrumble); - if (taskId != 0xFF) + if (taskId != TASK_NONE) gTasks[taskId].data[0]++; } void DoMirageTowerCeilingCrumble(void) { - LoadSpriteSheets(gMirageTowerCeilingCrumbleSpriteSheets); + LoadSpriteSheets(sCeilingCrumbleSpriteSheets); CreateCeilingCrumbleSprites(); CreateTask(WaitCeilingCrumble, 8); StartScreenShake(2, 1, 16, 3); @@ -421,7 +438,7 @@ static void WaitCeilingCrumble(u8 taskId) static void FinishCeilingCrumbleTask(u8 taskId) { - FreeSpriteTilesByTag(4000); + FreeSpriteTilesByTag(TAG_CEILING_CRUMBLE); DestroyTask(taskId); EnableBothScriptContexts(); } @@ -433,25 +450,25 @@ static void CreateCeilingCrumbleSprites(void) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&sCeilingCrumbleSpriteTemplate1, sCeilingCrumblePositions[i][0] + 120, sCeilingCrumblePositions[i][1], 8); + spriteId = CreateSprite(&sSpriteTemplate_CeilingCrumbleLarge, sCeilingCrumblePositions[i][0] + 120, sCeilingCrumblePositions[i][1], 8); gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.paletteNum = 0; gSprites[spriteId].data[0] = i; } for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&sCeilingCrumbleSpriteTemplate2, sCeilingCrumblePositions[i][0] + 115, sCeilingCrumblePositions[i][1] - 3, 8); + spriteId = CreateSprite(&sSpriteTemplate_CeilingCrumbleSmall, sCeilingCrumblePositions[i][0] + 115, sCeilingCrumblePositions[i][1] - 3, 8); gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.paletteNum = 0; gSprites[spriteId].data[0] = i; } } -static void MoveCeilingCrumbleSprite(struct Sprite* sprite) +static void SpriteCB_CeilingCrumble(struct Sprite* sprite) { sprite->data[1] += 2; - sprite->pos2.y = sprite->data[1] / 2; - if(((sprite->pos1.y) + (sprite->pos2.y)) > sCeilingCrumblePositions[sprite->data[0]][2]) + sprite->y2 = sprite->data[1] / 2; + if(((sprite->y) + (sprite->y2)) > sCeilingCrumblePositions[sprite->data[0]][2]) { DestroySprite(sprite); IncrementCeilingCrumbleFinishedCount(); @@ -478,7 +495,7 @@ void StartMirageTowerShake(void) void StartMirageTowerFossilFallAndSink(void) { - CreateTask(DoFossilFallAndSink, 9); + CreateTask(Task_FossilFallAndSink, 9); } static void SetBgShakeOffsets(void) @@ -501,42 +518,44 @@ static void UpdateBgShake(u8 taskId) } } +#define tState data[0] + static void InitMirageTowerShake(u8 taskId) { u8 zero; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: FreeAllWindowBuffers(); SetBgAttribute(0, BG_ATTR_PRIORITY, 2); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 1: sMirageTowerGfxBuffer = (u8 *)AllocZeroed(MIRAGE_TOWER_GFX_LENGTH); sMirageTowerTilemapBuffer = (u8 *)AllocZeroed(BG_SCREEN_SIZE); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 2: CpuSet(sBlankTile_Gfx, sMirageTowerGfxBuffer, MIRAGE_TOWER_GFX_LENGTH / 2); LoadBgTiles(0, sMirageTowerGfxBuffer, MIRAGE_TOWER_GFX_LENGTH, 0); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 3: SetBgTilemapBuffer(0, sMirageTowerTilemapBuffer); CopyToBgTilemapBufferRect_ChangePalette(0, &sMirageTowerTilemap, 12, 29, 6, 12, 17); CopyBgTilemapBufferToVram(0); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 4: ShowBg(0); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 5: SetInvisibleMirageTowerMetatiles(); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 6: sBgShakeOffsets = Alloc(sizeof(*sBgShakeOffsets)); @@ -558,27 +577,29 @@ static void DoMirageTowerDisintegration(u8 taskId) u16 i; u8 index; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 1: - sUnknown_0203CF10 = AllocZeroed(OUTER_BUFFER_LENGTH * sizeof(struct Struct203CF10)); + sFallingTower = AllocZeroed(OUTER_BUFFER_LENGTH * sizeof(struct FallAnim_Tower)); break; case 3: if (gTasks[taskId].data[3] <= (OUTER_BUFFER_LENGTH - 1)) { if (gTasks[taskId].data[1] > 1) { + // Initialize disintegration pattern index = gTasks[taskId].data[3]; - sUnknown_0203CF10[index].buffer = Alloc(INNER_BUFFER_LENGTH); + sFallingTower[index].disintegrateRand = Alloc(INNER_BUFFER_LENGTH); for (i = 0; i <= (INNER_BUFFER_LENGTH - 1); i++) - sUnknown_0203CF10[index].buffer[i] = i; + sFallingTower[index].disintegrateRand[i] = i; + + // Randomize disintegration pattern for (i = 0; i <= (INNER_BUFFER_LENGTH - 1); i++) { u16 rand1, rand2, temp; - - rand1 = Random() % 0x30; - rand2 = Random() % 0x30; - SWAP(sUnknown_0203CF10[index].buffer[rand2], sUnknown_0203CF10[index].buffer[rand1], temp); + rand1 = Random() % INNER_BUFFER_LENGTH; + rand2 = Random() % INNER_BUFFER_LENGTH; + SWAP(sFallingTower[index].disintegrateRand[rand2], sFallingTower[index].disintegrateRand[rand1], temp); } if (gTasks[taskId].data[3] <= (OUTER_BUFFER_LENGTH - 1)) gTasks[taskId].data[3]++; @@ -591,33 +612,33 @@ static void DoMirageTowerDisintegration(u8 taskId) { for (j = 0; j < 1; j++) { - sub_81BF2B8(sMirageTowerGfxBuffer, - ((((OUTER_BUFFER_LENGTH - 1) - i) * INNER_BUFFER_LENGTH) + sUnknown_0203CF10[i].buffer[(sUnknown_0203CF10[i].currIndex)++]), + UpdateDisintegrationEffect(sMirageTowerGfxBuffer, + (OUTER_BUFFER_LENGTH - 1 - i) * INNER_BUFFER_LENGTH + sFallingTower[i].disintegrateRand[sFallingTower[i].disintegrateIdx++], 0, INNER_BUFFER_LENGTH, 1); } - if (sUnknown_0203CF10[i].currIndex > (INNER_BUFFER_LENGTH - 1)) + if (sFallingTower[i].disintegrateIdx > (INNER_BUFFER_LENGTH - 1)) { - FREE_AND_SET_NULL(sUnknown_0203CF10[i].buffer); + FREE_AND_SET_NULL(sFallingTower[i].disintegrateRand); gTasks[taskId].data[2]++; if ((i % 2) == 1) sBgShakeOffsets->bgVOFS--; } } LoadBgTiles(0, sMirageTowerGfxBuffer, MIRAGE_TOWER_GFX_LENGTH, 0); - if (sUnknown_0203CF10[OUTER_BUFFER_LENGTH - 1].currIndex > (INNER_BUFFER_LENGTH - 1)) + if (sFallingTower[OUTER_BUFFER_LENGTH - 1].disintegrateIdx > INNER_BUFFER_LENGTH - 1) break; return; case 4: UnsetBgTilemapBuffer(0); bgShakeTaskId = FindTaskIdByFunc(UpdateBgShake); - if (bgShakeTaskId != 0xFF) + if (bgShakeTaskId != TASK_NONE) DestroyTask(bgShakeTaskId); sBgShakeOffsets->bgVOFS = sBgShakeOffsets->bgHOFS = 0; SetBgShakeOffsets(); break; case 5: FREE_AND_SET_NULL(sBgShakeOffsets); - FREE_AND_SET_NULL(sUnknown_0203CF10); + FREE_AND_SET_NULL(sFallingTower); FREE_AND_SET_NULL(sMirageTowerGfxBuffer); FREE_AND_SET_NULL(sMirageTowerTilemapBuffer); break; @@ -635,127 +656,128 @@ static void DoMirageTowerDisintegration(u8 taskId) EnableBothScriptContexts(); break; } - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } -static void DoFossilFallAndSink(u8 taskId) +static void Task_FossilFallAndSink(u8 taskId) { u16 i; u8 *buffer; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 1: - sUnknown_0203CF0C = AllocZeroed(sizeof(*sUnknown_0203CF0C)); - sUnknown_0203CF0C->frameImageTiles = AllocZeroed(ROOT_FOSSIL_GFX_LENGTH); - sUnknown_0203CF0C->frameImage = AllocZeroed(sizeof(*sUnknown_0203CF0C->frameImage)); - sUnknown_0203CF0C->unkC = AllocZeroed(ROOT_FOSSIL_GFX_RANDOMIZER_LENGTH * sizeof(u16)); - sUnknown_0203CF0C->unk10 = 0; + sFallingFossil = AllocZeroed(sizeof(*sFallingFossil)); + sFallingFossil->frameImageTiles = AllocZeroed(sizeof(sFossil_Gfx)); + sFallingFossil->frameImage = AllocZeroed(sizeof(*sFallingFossil->frameImage)); + sFallingFossil->disintegrateRand = AllocZeroed(FOSSIL_DISINTEGRATE_LENGTH * sizeof(u16)); + sFallingFossil->disintegrateIdx = 0; break; case 2: - buffer = sUnknown_0203CF0C->frameImageTiles; - for (i = 0; i < ROOT_FOSSIL_GFX_LENGTH; i++, buffer++) - *buffer = sRootFossil_Gfx[i]; + buffer = sFallingFossil->frameImageTiles; + for (i = 0; i < sizeof(sFossil_Gfx); i++, buffer++) + *buffer = sFossil_Gfx[i]; break; case 3: - sUnknown_0203CF0C->frameImage->data = sUnknown_0203CF0C->frameImageTiles; - sUnknown_0203CF0C->frameImage->size = ROOT_FOSSIL_GFX_LENGTH; + sFallingFossil->frameImage->data = sFallingFossil->frameImageTiles; + sFallingFossil->frameImage->size = sizeof(sFossil_Gfx); break; case 4: { - struct SpriteTemplate fossilTemplate; - - fossilTemplate = gUnknown_08617E00; - fossilTemplate.images = (struct SpriteFrameImage *)(sUnknown_0203CF0C->frameImage); - sUnknown_0203CF0C->spriteId = CreateSprite(&fossilTemplate, 128, -16, 1); - gSprites[sUnknown_0203CF0C->spriteId].centerToCornerVecX = 0; - gSprites[sUnknown_0203CF0C->spriteId].data[0] = gSprites[sUnknown_0203CF0C->spriteId].pos1.x; - gSprites[sUnknown_0203CF0C->spriteId].data[1] = 1; + struct SpriteTemplate fossilTemplate = sSpriteTemplate_FallingFossil; + fossilTemplate.images = sFallingFossil->frameImage; + sFallingFossil->spriteId = CreateSprite(&fossilTemplate, 128, -16, 1); + gSprites[sFallingFossil->spriteId].centerToCornerVecX = 0; + gSprites[sFallingFossil->spriteId].data[0] = gSprites[sFallingFossil->spriteId].x; + gSprites[sFallingFossil->spriteId].data[1] = 1; } case 5: - for (i = 0; i < ROOT_FOSSIL_GFX_RANDOMIZER_LENGTH; i++) - sUnknown_0203CF0C->unkC[i] = i; + // Initialize disintegration pattern + for (i = 0; i < FOSSIL_DISINTEGRATE_LENGTH; i++) + sFallingFossil->disintegrateRand[i] = i; break; case 6: - for (i = 0; i < (ROOT_FOSSIL_GFX_RANDOMIZER_LENGTH * sizeof(u16)); i++) + // Randomize disintegration pattern + for (i = 0; i < FOSSIL_DISINTEGRATE_LENGTH * sizeof(u16); i++) { u16 rand1, rand2, temp; - - rand1 = Random() % 0x100; - rand2 = Random() % 0x100; - SWAP(sUnknown_0203CF0C->unkC[rand2], sUnknown_0203CF0C->unkC[rand1], temp); + rand1 = Random() % FOSSIL_DISINTEGRATE_LENGTH; + rand2 = Random() % FOSSIL_DISINTEGRATE_LENGTH; + SWAP(sFallingFossil->disintegrateRand[rand2], sFallingFossil->disintegrateRand[rand1], temp); } - gSprites[sUnknown_0203CF0C->spriteId].callback = sub_81BF248; + gSprites[sFallingFossil->spriteId].callback = SpriteCB_FallingFossil; break; case 7: - if (gSprites[sUnknown_0203CF0C->spriteId].callback != SpriteCallbackDummy) + // Wait for fossil to finish falling / disintegrating + if (gSprites[sFallingFossil->spriteId].callback != SpriteCallbackDummy) return; - DestroySprite(&gSprites[sUnknown_0203CF0C->spriteId]); - FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC);; - FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImage); - FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImageTiles); - FREE_AND_SET_NULL(sUnknown_0203CF0C); + DestroySprite(&gSprites[sFallingFossil->spriteId]); + FREE_AND_SET_NULL(sFallingFossil->disintegrateRand);; + FREE_AND_SET_NULL(sFallingFossil->frameImage); + FREE_AND_SET_NULL(sFallingFossil->frameImageTiles); + FREE_AND_SET_NULL(sFallingFossil); break; case 8: EnableBothScriptContexts(); break; } - - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } -static void sub_81BF248(struct Sprite *sprite) +static void SpriteCB_FallingFossil(struct Sprite *sprite) { - if (sUnknown_0203CF0C->unk10 >= (ROOT_FOSSIL_GFX_RANDOMIZER_LENGTH)) + if (sFallingFossil->disintegrateIdx >= FOSSIL_DISINTEGRATE_LENGTH) { + // End animation sprite->callback = SpriteCallbackDummy; } - else if (sprite->pos1.y >= 96) + else if (sprite->y >= 96) { + // Fossil has reached the ground, update disintegration animation u8 i; for (i = 0; i < 2; i++) - sub_81BF2B8(sUnknown_0203CF0C->frameImageTiles, sUnknown_0203CF0C->unkC[sUnknown_0203CF0C->unk10++], 0, 16, 0); + UpdateDisintegrationEffect(sFallingFossil->frameImageTiles, sFallingFossil->disintegrateRand[sFallingFossil->disintegrateIdx++], 0, 16, 0); StartSpriteAnim(sprite, 0); } else { - sprite->pos1.y++; + // Fossil is still falling + sprite->y++; } } -static void sub_81BF2B8(u8* a, u16 b, u8 c, u8 d, u8 e) +static void UpdateDisintegrationEffect(u8* tiles, u16 randId, u8 c, u8 size, u8 offset) { - u8 r5, r4, r0, r2; - u16 var, var2; - u8 r2_1, r4_1; - u8 b2, c2; + u8 heightTiles, height, widthTiles, width; + u16 var, baseOffset; + u8 col, row; + u8 flag, tileMask; - r4 = b / d; - gUnknown_030012A8[0] = r4; + height = randId / size; + sDebug_DisintegrationData[0] = height; - r2 = b % d; - gUnknown_030012A8[1] = r2; + width = randId % size; + sDebug_DisintegrationData[1] = width; - r4_1 = r4 & 7; - r2_1 = r2 & 7; - gUnknown_030012A8[2] = r4 & 7; //should be using r4_1, but that doesn't match - gUnknown_030012A8[3] = r2 & 7; //" + row = height & 7; + col = width & 7; + sDebug_DisintegrationData[2] = height & 7; + sDebug_DisintegrationData[3] = width & 7; - r0 = r2 / 8; - r5 = r4 / 8; - - gUnknown_030012A8[4] = r2 / 8; //should be using r0, but that doesn't match - gUnknown_030012A8[5] = r4 / 8; //should be using r5, but that doesn't match + widthTiles = width / 8; + heightTiles = height / 8; + sDebug_DisintegrationData[4] = width / 8; + sDebug_DisintegrationData[5] = height / 8; - var = (d / 8) * (r5 * 64) + (r0 * 64); - gUnknown_030012A8[6] = var; + var = (size / 8) * (heightTiles * 64) + (widthTiles * 64); + sDebug_DisintegrationData[6] = var; - var2 = var + ((r4_1 * 8) + r2_1); - var2 /= 2; - gUnknown_030012A8[7] = var + ((r4_1 * 8) + r2_1); //should be using var2 with var2 being divided afterwards, but that doesn't match + baseOffset = var + ((row * 8) + col); + baseOffset /= 2; + sDebug_DisintegrationData[7] = var + ((row * 8) + col); - b2 = ((b % 2) ^ 1); - c2 = (c << (b2 << 2)) | 15 << (((b2 ^ 1) << 2)); - a[var2 + (e * 32)] &= c2; + flag = ((randId % 2) ^ 1); + tileMask = (c << (flag << 2)) | 15 << (((flag ^ 1) << 2)); + tiles[baseOffset + (offset * 32)] &= tileMask; } diff --git a/src/mon_markings.c b/src/mon_markings.c index a819d4f9ab..dbd5a2fa81 100644 --- a/src/mon_markings.c +++ b/src/mon_markings.c @@ -10,20 +10,22 @@ #include "sprite.h" #include "text_window.h" -#define MENU_TEXT_SPRITE_X_OFFSET 32 +#define ANIM_CURSOR (NUM_MON_MARKINGS * 2) +#define ANIM_TEXT (ANIM_CURSOR + 1) -// static functions -static void sub_811FC80(s16, s16, u16, u16); -static void TaskDummy7(struct Sprite *); -static void sub_811FF40(struct Sprite *); -static void sub_811FF7C(struct Sprite *); -static struct Sprite *sub_811FFD4(u16, u16, const u16 *, u16); +#define SELECTION_OK NUM_MON_MARKINGS +#define SELECTION_CANCEL (SELECTION_OK + 1) -// .rodata -static const u16 gUnknown_0859E65C[] = INCBIN_U16("graphics/misc/mon_markings.gbapal"); -static const u8 gUnknown_0859E67C[] = INCBIN_U8("graphics/misc/mon_markings.4bpp"); +static void CreateMonMarkingsMenuSprites(s16, s16, u16, u16); +static void SpriteCB_Dummy(struct Sprite *); +static void SpriteCB_Marking(struct Sprite *); +static void SpriteCB_Cursor(struct Sprite *); +static struct Sprite *CreateMarkingComboSprite(u16, u16, const u16 *, u16); -static const struct OamData gUnknown_0859EE7C = +static const u16 sMonMarkings_Pal[] = INCBIN_U16("graphics/misc/mon_markings.gbapal"); +static const u8 sMonMarkings_Gfx[] = INCBIN_U8("graphics/misc/mon_markings.4bpp"); + +static const struct OamData sOamData_MenuWindow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -40,7 +42,8 @@ static const struct OamData gUnknown_0859EE7C = .affineParam = 0, }; -static const struct OamData gUnknown_0859EE84 = +// Used for the markings, OK/Cancel text, and cursor sprites +static const struct OamData sOamData_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -57,99 +60,99 @@ static const struct OamData gUnknown_0859EE84 = .affineParam = 0, }; -static const union AnimCmd gUnknown_0859EE8C[] = +static const union AnimCmd sAnim_Marking_CircleOff[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EE94[] = +static const union AnimCmd sAnim_Marking_CircleOn[] = { ANIMCMD_FRAME(1, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EE9C[] = +static const union AnimCmd sAnim_Marking_SquareOff[] = { ANIMCMD_FRAME(2, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EEA4[] = +static const union AnimCmd sAnim_Marking_SquareOn[] = { ANIMCMD_FRAME(3, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EEAC[] = +static const union AnimCmd sAnim_Marking_TriangleOff[] = { ANIMCMD_FRAME(4, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EEB4[] = +static const union AnimCmd sAnim_Marking_TriangleOn[] = { ANIMCMD_FRAME(5, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EEBC[] = +static const union AnimCmd sAnim_Marking_HeartOff[] = { ANIMCMD_FRAME(6, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EEC4[] = +static const union AnimCmd sAnim_Marking_HeartOn[] = { ANIMCMD_FRAME(7, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EECC[] = +static const union AnimCmd sAnim_Cursor[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EED4[] = +static const union AnimCmd sAnim_OKCancelText[] = { ANIMCMD_FRAME(9, 5), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_0859EEDC[] = +static const union AnimCmd *const sAnims_MenuSprite[] = { - gUnknown_0859EE8C, - gUnknown_0859EE94, - gUnknown_0859EE9C, - gUnknown_0859EEA4, - gUnknown_0859EEAC, - gUnknown_0859EEB4, - gUnknown_0859EEBC, - gUnknown_0859EEC4, - gUnknown_0859EECC, - gUnknown_0859EED4, + sAnim_Marking_CircleOff, + sAnim_Marking_CircleOn, + sAnim_Marking_SquareOff, + sAnim_Marking_SquareOn, + sAnim_Marking_TriangleOff, + sAnim_Marking_TriangleOn, + sAnim_Marking_HeartOff, + sAnim_Marking_HeartOn, + [ANIM_CURSOR] = sAnim_Cursor, + [ANIM_TEXT] = sAnim_OKCancelText, }; -static const union AnimCmd gUnknown_0859EF04[] = +static const union AnimCmd sAnim_MenuWindow_UpperHalf[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF0C[] = +static const union AnimCmd sAnim_MenuWindow_LowerHalf[] = { ANIMCMD_FRAME(64, 5), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_0859EF14[] = +static const union AnimCmd *const sAnims_MenuWindow[] = { - gUnknown_0859EF04, - gUnknown_0859EF0C, + sAnim_MenuWindow_UpperHalf, + sAnim_MenuWindow_LowerHalf, }; -static const struct OamData gUnknown_0859EF1C = +static const struct OamData sOamData_MarkingCombo = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -166,169 +169,166 @@ static const struct OamData gUnknown_0859EF1C = .affineParam = 0, }; -static const union AnimCmd gUnknown_0859EF24[] = +static const union AnimCmd sAnim_MarkingCombo_AllOff[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF2C[] = +static const union AnimCmd sAnim_MarkingCombo_Circle[] = { ANIMCMD_FRAME(4, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF34[] = +static const union AnimCmd sAnim_MarkingCombo_Square[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF3C[] = +static const union AnimCmd sAnim_MarkingCombo_CircleSquare[] = { ANIMCMD_FRAME(12, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF44[] = +static const union AnimCmd sAnim_MarkingCombo_Triangle[] = { ANIMCMD_FRAME(16, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF4C[] = +static const union AnimCmd sAnim_MarkingCombo_CircleTriangle[] = { ANIMCMD_FRAME(20, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF54[] = +static const union AnimCmd sAnim_MarkingCombo_SquareTriangle[] = { ANIMCMD_FRAME(24, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF5C[] = +static const union AnimCmd sAnim_MarkingCombo_CircleSquareTriangle[] = { ANIMCMD_FRAME(28, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF64[] = +static const union AnimCmd sAnim_MarkingCombo_Heart[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF6C[] = +static const union AnimCmd sAnim_MarkingCombo_CircleHeart[] = { ANIMCMD_FRAME(36, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF74[] = +static const union AnimCmd sAnim_MarkingCombo_SquareHeart[] = { ANIMCMD_FRAME(40, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF7C[] = +static const union AnimCmd sAnim_MarkingCombo_CircleSquareHeart[] = { ANIMCMD_FRAME(44, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF84[] = +static const union AnimCmd sAnim_MarkingCombo_TriangleHeart[] = { ANIMCMD_FRAME(48, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF8C[] = +static const union AnimCmd sAnim_MarkingCombo_CircleTriangleHeart[] = { ANIMCMD_FRAME(52, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF94[] = +static const union AnimCmd sAnim_MarkingCombo_SquareTriangleHeart[] = { ANIMCMD_FRAME(56, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0859EF9C[] = +static const union AnimCmd sAnim_MarkingCombo_AllOn[] = { ANIMCMD_FRAME(60, 5), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_0859EFA4[] = +static const union AnimCmd *const sAnims_MarkingCombo[] = { - gUnknown_0859EF24, - gUnknown_0859EF2C, - gUnknown_0859EF34, - gUnknown_0859EF3C, - gUnknown_0859EF44, - gUnknown_0859EF4C, - gUnknown_0859EF54, - gUnknown_0859EF5C, - gUnknown_0859EF64, - gUnknown_0859EF6C, - gUnknown_0859EF74, - gUnknown_0859EF7C, - gUnknown_0859EF84, - gUnknown_0859EF8C, - gUnknown_0859EF94, - gUnknown_0859EF9C, + sAnim_MarkingCombo_AllOff, + sAnim_MarkingCombo_Circle, + sAnim_MarkingCombo_Square, + sAnim_MarkingCombo_CircleSquare, + sAnim_MarkingCombo_Triangle, + sAnim_MarkingCombo_CircleTriangle, + sAnim_MarkingCombo_SquareTriangle, + sAnim_MarkingCombo_CircleSquareTriangle, + sAnim_MarkingCombo_Heart, + sAnim_MarkingCombo_CircleHeart, + sAnim_MarkingCombo_SquareHeart, + sAnim_MarkingCombo_CircleSquareHeart, + sAnim_MarkingCombo_TriangleHeart, + sAnim_MarkingCombo_CircleTriangleHeart, + sAnim_MarkingCombo_SquareTriangleHeart, + sAnim_MarkingCombo_AllOn, }; -static EWRAM_DATA struct PokemonMarkMenu *sMenu = NULL; +static EWRAM_DATA struct MonMarkingsMenu *sMenu = NULL; -void sub_811F90C(struct PokemonMarkMenu *ptr) +void InitMonMarkingsMenu(struct MonMarkingsMenu *ptr) { sMenu = ptr; } -void sub_811F918(void) +static void BufferMenuWindowTiles(void) { const struct TilesPal *frame = GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType); sMenu->frameTiles = frame->tiles; sMenu->framePalette = frame->pal; sMenu->tileLoadState = 0; - CpuFill16(0, sMenu->menuWindowSpriteTiles, sizeof(sMenu->menuWindowSpriteTiles)); + CpuFill16(0, sMenu->windowSpriteTiles, sizeof(sMenu->windowSpriteTiles)); } -bool8 sub_811F960(void) +static bool8 BufferMenuFrameTiles(void) { u16 i; - u8 *dest = sMenu->menuWindowSpriteTiles + sMenu->tileLoadState * 0x100; + u8 *dest = sMenu->windowSpriteTiles + sMenu->tileLoadState * 0x100; switch (sMenu->tileLoadState) { case 0: CpuFastCopy(sMenu->frameTiles, dest, TILE_SIZE_4BPP); for (i = 0; i < 6; i++) - { CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP); - } + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 2, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP); sMenu->tileLoadState++; break; default: CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 3, dest, TILE_SIZE_4BPP); for (i = 0; i < 6; i++) - { CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 4, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP); - } + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 5, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP); sMenu->tileLoadState++; break; case 13: CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 6, dest, TILE_SIZE_4BPP); for (i = 0; i < 6; i++) - { CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 7, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP); - } + CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 8, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP); sMenu->tileLoadState++; return FALSE; @@ -339,23 +339,23 @@ bool8 sub_811F960(void) return TRUE; } -void sub_811FA90(void) +void BufferMonMarkingsMenuTiles(void) { - sub_811F918(); - while (sub_811F960()); + BufferMenuWindowTiles(); + while (BufferMenuFrameTiles()); } -void sub_811FAA4(u8 markings, s16 x, s16 y) +void OpenMonMarkingsMenu(u8 markings, s16 x, s16 y) { u16 i; sMenu->cursorPos = 0; sMenu->markings = markings; for (i = 0; i < NUM_MON_MARKINGS; i++) sMenu->markingsArray[i] = (sMenu->markings >> i) & 1; - sub_811FC80(x, y, sMenu->baseTileTag, sMenu->basePaletteTag); + CreateMonMarkingsMenuSprites(x, y, sMenu->baseTileTag, sMenu->basePaletteTag); } -void sub_811FAF8(void) +void FreeMonMarkingsMenu(void) { u16 i; @@ -364,33 +364,33 @@ void sub_811FAF8(void) FreeSpriteTilesByTag(sMenu->baseTileTag + i); FreeSpritePaletteByTag(sMenu->basePaletteTag + i); } - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sMenu->windowSprites); i++) { - if (!sMenu->menuWindowSprites[i]) + if (!sMenu->windowSprites[i]) return; - DestroySprite(sMenu->menuWindowSprites[i]); - sMenu->menuWindowSprites[i] = NULL; + DestroySprite(sMenu->windowSprites[i]); + sMenu->windowSprites[i] = NULL; } for (i = 0; i < NUM_MON_MARKINGS; i++) { - if (!sMenu->menuMarkingSprites[i]) + if (!sMenu->markingSprites[i]) return; - DestroySprite(sMenu->menuMarkingSprites[i]); - sMenu->menuMarkingSprites[i] = NULL; + DestroySprite(sMenu->markingSprites[i]); + sMenu->markingSprites[i] = NULL; } - if (sMenu->unkSprite) + if (sMenu->cursorSprite) { - DestroySprite(sMenu->unkSprite); - sMenu->unkSprite = NULL; + DestroySprite(sMenu->cursorSprite); + sMenu->cursorSprite = NULL; } - if (sMenu->menuTextSprite) + if (sMenu->textSprite) { - DestroySprite(sMenu->menuTextSprite); - sMenu->menuTextSprite = NULL; + DestroySprite(sMenu->textSprite); + sMenu->textSprite = NULL; } } -bool8 MonMarkingsMenuHandleInput(void) +bool8 HandleMonMarkingsMenuInput(void) { u16 i; @@ -400,7 +400,7 @@ bool8 MonMarkingsMenuHandleInput(void) PlaySE(SE_SELECT); pos = --sMenu->cursorPos; if (pos < 0) - sMenu->cursorPos = 5; + sMenu->cursorPos = SELECTION_CANCEL; return TRUE; } @@ -409,7 +409,7 @@ bool8 MonMarkingsMenuHandleInput(void) s8 pos; PlaySE(SE_SELECT); pos = ++sMenu->cursorPos; - if (pos > 5) + if (pos > SELECTION_CANCEL) sMenu->cursorPos = 0; return TRUE; } @@ -420,12 +420,12 @@ bool8 MonMarkingsMenuHandleInput(void) switch (sMenu->cursorPos) { - case 4: + case SELECTION_OK: sMenu->markings = 0; for (i = 0; i < NUM_MON_MARKINGS; i++) sMenu->markings |= sMenu->markingsArray[i] << i; return FALSE; - case 5: + case SELECTION_CANCEL: return FALSE; } @@ -442,170 +442,181 @@ bool8 MonMarkingsMenuHandleInput(void) return TRUE; } -static void sub_811FC80(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag) +#define sMarkingId data[0] +#define sCursorYOffset data[0] + +static void CreateMonMarkingsMenuSprites(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag) { u16 i; u8 spriteId; struct SpriteSheet sheets[] = { - { sMenu->menuWindowSpriteTiles, 0x1000, baseTileTag }, - { gPokenavConditionMarker_Gfx, 0x320, baseTileTag + 1 }, - { NULL, 0 } + { sMenu->windowSpriteTiles, 0x1000, baseTileTag }, + { gMonMarkingsMenu_Gfx, 0x320, baseTileTag + 1 }, + {} }; struct SpritePalette palettes[] = { { sMenu->framePalette, basePaletteTag }, - { gPokenavConditionMarker_Pal, basePaletteTag + 1}, - { NULL, 0 } + { gMonMarkingsMenu_Pal, basePaletteTag + 1}, + {} }; - struct SpriteTemplate sprTemplate = + struct SpriteTemplate template = { - baseTileTag, - basePaletteTag, - &gUnknown_0859EE7C, - gUnknown_0859EF14, - NULL, - gDummySpriteAffineAnimTable, - TaskDummy7, + .tileTag = baseTileTag, + .paletteTag = basePaletteTag, + .oam = &sOamData_MenuWindow, + .anims = sAnims_MenuWindow, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_Dummy, }; LoadSpriteSheets(sheets); LoadSpritePalettes(palettes); - for (i = 0; i < 2; i++) + // Create window sprites + for (i = 0; i < ARRAY_COUNT(sMenu->windowSprites); i++) { - spriteId = CreateSprite(&sprTemplate, x + 32, y + 32, 1); + spriteId = CreateSprite(&template, x + 32, y + 32, 1); if (spriteId != MAX_SPRITES) { - sMenu->menuWindowSprites[i] = &gSprites[spriteId]; + sMenu->windowSprites[i] = &gSprites[spriteId]; StartSpriteAnim(&gSprites[spriteId], i); } else { - sMenu->menuWindowSprites[i] = NULL; + sMenu->windowSprites[i] = NULL; return; } } + sMenu->windowSprites[1]->y = y + 96; - sMenu->menuWindowSprites[1]->pos1.y = y + 96; - - sprTemplate.tileTag++; - sprTemplate.paletteTag++; - sprTemplate.anims = gUnknown_0859EEDC; - sprTemplate.callback = sub_811FF40; - sprTemplate.oam = &gUnknown_0859EE84; + // Create marking sprites + template.tileTag++; + template.paletteTag++; + template.anims = sAnims_MenuSprite; + template.callback = SpriteCB_Marking; + template.oam = &sOamData_8x8; for (i = 0; i < NUM_MON_MARKINGS; i++) { - spriteId = CreateSprite(&sprTemplate, x + 32, y + 16 + 16 * i, 0); + spriteId = CreateSprite(&template, x + 32, y + 16 + 16 * i, 0); if (spriteId != MAX_SPRITES) { - sMenu->menuMarkingSprites[i] = &gSprites[spriteId]; - gSprites[spriteId].data[0] = i; + sMenu->markingSprites[i] = &gSprites[spriteId]; + gSprites[spriteId].sMarkingId = i; } else { - sMenu->menuMarkingSprites[i] = NULL; + sMenu->markingSprites[i] = NULL; return; } } - sprTemplate.callback = SpriteCallbackDummy; - - spriteId = CreateSprite(&sprTemplate, 0, 0, 0); - + // Create OK/Cancel text sprite + template.callback = SpriteCallbackDummy; + spriteId = CreateSprite(&template, 0, 0, 0); if (spriteId != MAX_SPRITES) { - sMenu->menuTextSprite = &gSprites[spriteId]; - sMenu->menuTextSprite->oam.shape = SPRITE_SHAPE(32x32); - sMenu->menuTextSprite->oam.size = SPRITE_SIZE(32x32); - StartSpriteAnim(sMenu->menuTextSprite, 9); - sMenu->menuTextSprite->pos1.x = x + MENU_TEXT_SPRITE_X_OFFSET; - sMenu->menuTextSprite->pos1.y = y + 80; - CalcCenterToCornerVec(sMenu->menuTextSprite, SPRITE_SHAPE(32x16), SPRITE_SIZE(32x16), ST_OAM_AFFINE_OFF); + sMenu->textSprite = &gSprites[spriteId]; + sMenu->textSprite->oam.shape = SPRITE_SHAPE(32x32); + sMenu->textSprite->oam.size = SPRITE_SIZE(32x32); + StartSpriteAnim(sMenu->textSprite, ANIM_TEXT); + sMenu->textSprite->x = x + 32; + sMenu->textSprite->y = y + 80; + CalcCenterToCornerVec(sMenu->textSprite, SPRITE_SHAPE(32x16), SPRITE_SIZE(32x16), ST_OAM_AFFINE_OFF); } else { - sMenu->menuTextSprite = NULL; + sMenu->textSprite = NULL; } - sprTemplate.callback = sub_811FF7C; - spriteId = CreateSprite(&sprTemplate, x + 12, 0, 0); + // Create cursor sprite + template.callback = SpriteCB_Cursor; + spriteId = CreateSprite(&template, x + 12, 0, 0); if (spriteId != MAX_SPRITES) { - sMenu->unkSprite = &gSprites[spriteId]; - sMenu->unkSprite->data[0] = y + 16; - StartSpriteAnim(sMenu->unkSprite, 8); + sMenu->cursorSprite = &gSprites[spriteId]; + sMenu->cursorSprite->sCursorYOffset = y + 16; + StartSpriteAnim(sMenu->cursorSprite, ANIM_CURSOR); } else { - sMenu->unkSprite = NULL; + sMenu->cursorSprite = NULL; } } -static void TaskDummy7(struct Sprite *sprite) +static void SpriteCB_Dummy(struct Sprite *sprite) { } -static void sub_811FF40(struct Sprite *sprite) +static void SpriteCB_Marking(struct Sprite *sprite) { - if (sMenu->markingsArray[sprite->data[0]]) - StartSpriteAnim(sprite, 2 * sprite->data[0] + 1); + if (sMenu->markingsArray[sprite->sMarkingId]) + StartSpriteAnim(sprite, 2 * sprite->sMarkingId + 1); // Set marking 'on' else - StartSpriteAnim(sprite, 2 * sprite->data[0]); + StartSpriteAnim(sprite, 2 * sprite->sMarkingId); // Set marking 'off' } -static void sub_811FF7C(struct Sprite *sprite) +#undef sMarkingId + +static void SpriteCB_Cursor(struct Sprite *sprite) { - sprite->pos1.y = (16 * sMenu->cursorPos) + sprite->data[0]; + sprite->y = (16 * sMenu->cursorPos) + sprite->sCursorYOffset; } -struct Sprite *CreateMonMarkingsSpriteWithPal(u16 tileTag, u16 paletteTag, const u16 *palette) +#undef sCursorYOffset + +// Creates a mon marking combination sprite with a spritesheet that holds every possible combination, used by the summary screen / Pokénav +struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, const u16 *palette) { if (!palette) - palette = gUnknown_0859E65C; - return sub_811FFD4(tileTag, paletteTag, palette, 16); + palette = sMonMarkings_Pal; + return CreateMarkingComboSprite(tileTag, paletteTag, palette, 1 << NUM_MON_MARKINGS); } -struct Sprite *sub_811FFB4(u16 tileTag, u16 paletteTag, const u16 *palette) +// Creates a mon marking combination sprite with a spritesheet that holds only one combination, used for the currently selected PC mon +struct Sprite *CreateMonMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette) { if (!palette) - palette = gUnknown_0859E65C; - return sub_811FFD4(tileTag, paletteTag, palette, 1); + palette = sMonMarkings_Pal; + return CreateMarkingComboSprite(tileTag, paletteTag, palette, 1); } -static struct Sprite *sub_811FFD4(u16 tileTag, u16 paletteTag, const u16 *palette, u16 size) +static struct Sprite *CreateMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette, u16 size) { u8 spriteId; - struct SpriteTemplate sprTemplate; - struct SpriteSheet sheet = { gUnknown_0859E67C, 0x80, tileTag }; + struct SpriteTemplate template; + struct SpriteSheet sheet = { sMonMarkings_Gfx, 0x80, tileTag }; struct SpritePalette sprPalette = { palette, paletteTag }; - sprTemplate.tileTag = tileTag; - sprTemplate.paletteTag = paletteTag; - sprTemplate.oam = &gUnknown_0859EF1C; - sprTemplate.anims = gUnknown_0859EFA4; - sprTemplate.images = NULL; - sprTemplate.affineAnims = gDummySpriteAffineAnimTable; - sprTemplate.callback = TaskDummy7; + template.tileTag = tileTag; + template.paletteTag = paletteTag; + template.oam = &sOamData_MarkingCombo; + template.anims = sAnims_MarkingCombo; + template.images = NULL; + template.affineAnims = gDummySpriteAffineAnimTable; + template.callback = SpriteCB_Dummy; sheet.size = size * 0x80; LoadSpriteSheet(&sheet); LoadSpritePalette(&sprPalette); - spriteId = CreateSprite(&sprTemplate, 0, 0, 0); + spriteId = CreateSprite(&template, 0, 0, 0); if (spriteId != MAX_SPRITES) return &gSprites[spriteId]; else return NULL; } -void sub_8120084(u8 markings, void *dest) +// Update what combination is shown, used for sprites created with CreateMonMarkingComboSprite +void UpdateMonMarkingTiles(u8 markings, void *dest) { - RequestDma3Copy(gUnknown_0859E67C + markings * 0x80, dest, 0x80, 0x10); + RequestDma3Copy(&sMonMarkings_Gfx[markings * 0x80], dest, 0x80, 0x10); } diff --git a/src/move_relearner.c b/src/move_relearner.c index cd4da58354..9fa7bf11c0 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -368,7 +368,7 @@ void TeachMoveRelearnerMove(void) ScriptContext2_Enable(); CreateTask(Task_WaitForFadeOut, 10); // Fade to black - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); } static void Task_WaitForFadeOut(u8 taskId) @@ -472,7 +472,7 @@ static void DoMoveRelearnerMain(void) case MENU_STATE_FADE_TO_BLACK: sMoveRelearnerStruct->state++; HideHeartSpritesAndShowTeachMoveText(FALSE); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; case MENU_STATE_WAIT_FOR_FADE: if (!gPaletteFade.active) @@ -645,7 +645,7 @@ static void DoMoveRelearnerMain(void) if (!MoveRelearnerRunTextPrinters()) { sMoveRelearnerStruct->state = MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); } break; case MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN: @@ -662,10 +662,10 @@ static void DoMoveRelearnerMain(void) } break; case 22: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; case MENU_STATE_FADE_AND_RETURN: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sMoveRelearnerStruct->state++; break; case MENU_STATE_RETURN_TO_FIELD: @@ -676,7 +676,7 @@ static void DoMoveRelearnerMain(void) } break; case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sMoveRelearnerStruct->state++; if (sMoveRelearnerMenuSate.showContestInfo == FALSE) { @@ -844,8 +844,8 @@ static void CreateUISprites(void) { int i; - sMoveRelearnerStruct->moveDisplayArrowTask = 0xFF; - sMoveRelearnerStruct->moveListScrollArrowTask = 0xFF; + sMoveRelearnerStruct->moveDisplayArrowTask = TASK_NONE; + sMoveRelearnerStruct->moveListScrollArrowTask = TASK_NONE; AddScrollArrows(); // These are the appeal hearts. @@ -870,12 +870,12 @@ static void CreateUISprites(void) static void AddScrollArrows(void) { - if (sMoveRelearnerStruct->moveDisplayArrowTask == 0xFF) + if (sMoveRelearnerStruct->moveDisplayArrowTask == TASK_NONE) { sMoveRelearnerStruct->moveDisplayArrowTask = AddScrollIndicatorArrowPair(&sDisplayModeArrowsTemplate, &sMoveRelearnerStruct->scrollOffset); } - if (sMoveRelearnerStruct->moveListScrollArrowTask == 0xFF) + if (sMoveRelearnerStruct->moveListScrollArrowTask == TASK_NONE) { gTempScrollArrowTemplate = sMoveListScrollArrowsTemplate; gTempScrollArrowTemplate.fullyDownThreshold = sMoveRelearnerStruct->numMenuChoices - sMoveRelearnerStruct->numToShowAtOnce; @@ -885,16 +885,16 @@ static void AddScrollArrows(void) static void RemoveScrollArrows(void) { - if (sMoveRelearnerStruct->moveDisplayArrowTask != 0xFF) + if (sMoveRelearnerStruct->moveDisplayArrowTask != TASK_NONE) { RemoveScrollIndicatorArrowPair(sMoveRelearnerStruct->moveDisplayArrowTask); - sMoveRelearnerStruct->moveDisplayArrowTask = 0xFF; + sMoveRelearnerStruct->moveDisplayArrowTask = TASK_NONE; } - if (sMoveRelearnerStruct->moveListScrollArrowTask != 0xFF) + if (sMoveRelearnerStruct->moveListScrollArrowTask != TASK_NONE) { RemoveScrollIndicatorArrowPair(sMoveRelearnerStruct->moveListScrollArrowTask); - sMoveRelearnerStruct->moveListScrollArrowTask = 0xFF; + sMoveRelearnerStruct->moveListScrollArrowTask = TASK_NONE; } } diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 00dcbf0e3c..297883e9cd 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -138,7 +138,7 @@ static void CB2_MysteryEventMenu(void) PutWindowTilemap(0); CopyWindowToVram(0, 3); ShowBg(0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gMain.state++; break; case 1: @@ -281,7 +281,7 @@ static void CB2_MysteryEventMenu(void) } break; case 15: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gMain.state++; break; case 16: diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index beb1bf45d5..176eab7fc6 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -325,7 +325,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) } else { - memcpy(&gPlayerParty[5], pokemonPtr, sizeof(struct Pokemon)); + memcpy(&gPlayerParty[PARTY_SIZE - 1], pokemonPtr, sizeof(struct Pokemon)); memcpy(&mail, mailPtr, sizeof(struct MailStruct)); if (species != SPECIES_EGG) @@ -335,9 +335,9 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) GetSetPokedexFlag(pokedexNum, FLAG_SET_CAUGHT); } - heldItem = GetMonData(&gPlayerParty[5], MON_DATA_HELD_ITEM); + heldItem = GetMonData(&gPlayerParty[PARTY_SIZE - 1], MON_DATA_HELD_ITEM); if (ItemIsMail(heldItem)) - GiveMailToMon2(&gPlayerParty[5], &mail); + GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &mail); CompactPartySlots(); CalculatePlayerPartyCount(); StringExpandPlaceholders(gStringVar4, gText_MysteryGiftSentOver); @@ -350,7 +350,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) bool8 MEScrCmd_addtrainer(struct ScriptContext *ctx) { u32 data = ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]; - memcpy((void*)(gSaveBlock2Ptr) + 0xBEC, (void *)data, 0xBC); + memcpy(&gSaveBlock2Ptr->frontier.ereaderTrainer, (void *)data, sizeof(gSaveBlock2Ptr->frontier.ereaderTrainer)); ValidateEReaderTrainer(); StringExpandPlaceholders(gStringVar4, gText_MysteryGiftNewTrainer); ctx->data[2] = 2; diff --git a/src/mystery_gift.c b/src/mystery_gift.c index a23f159b2d..afbe50e4d2 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -394,10 +394,10 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) ChangeBgX(3, 0, 0); ChangeBgY(3, 0, 0); - SetBgTilemapBuffer(3, Alloc(0x800)); - SetBgTilemapBuffer(2, Alloc(0x800)); - SetBgTilemapBuffer(1, Alloc(0x800)); - SetBgTilemapBuffer(0, Alloc(0x800)); + SetBgTilemapBuffer(3, Alloc(BG_SCREEN_SIZE)); + SetBgTilemapBuffer(2, Alloc(BG_SCREEN_SIZE)); + SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE)); + SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE)); bgid_upload_textbox_1(3); InitWindows(sMainWindows); @@ -558,14 +558,12 @@ bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str) { case 0: AddTextPrinterToWindow1(str); - goto inc; + (*textState)++; + break; case 1: DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); if (({JOY_NEW(A_BUTTON | B_BUTTON);})) - { - inc: (*textState)++; - } break; case 2: DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); @@ -574,7 +572,7 @@ bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str) return TRUE; case 0xFF: *textState = 2; - break; + return FALSE; } return FALSE; } @@ -809,8 +807,6 @@ static bool32 ValidateCardOrNews(bool32 cardOrNews) static bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) { - s32 v0; - switch (*state) { case 0: @@ -827,20 +823,18 @@ static bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) case 1: if (cardOrNews == 0) { - v0 = FadeToWonderCardMenu(); - check: - if (v0 != 0) + if (!FadeToWonderCardMenu()) { - goto done; + return FALSE; } - break; } else { - v0 = FadeToWonderNewsMenu(); - goto check; + if (!FadeToWonderNewsMenu()) + { + return FALSE; + } } - done: *state = 0; return TRUE; } diff --git a/src/naming_screen.c b/src/naming_screen.c index be921078eb..fc7fb82fe7 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -475,7 +475,7 @@ static void NamingScreen_Init(void) sNamingScreen->bgToHide = 1; sNamingScreen->template = sNamingScreenTemplates[sNamingScreen->templateNum]; sNamingScreen->currentPage = sNamingScreen->template->initialPage; - sNamingScreen->inputCharBaseXPos = (240 - sNamingScreen->template->maxChars * 8) / 2 + 6; + sNamingScreen->inputCharBaseXPos = (DISPLAY_WIDTH - sNamingScreen->template->maxChars * 8) / 2 + 6; if (sNamingScreen->templateNum == NAMING_SCREEN_WALDA) sNamingScreen->inputCharBaseXPos += 11; sNamingScreen->keyRepeatStartDelayCopy = gKeyRepeatStartDelay; @@ -635,8 +635,8 @@ static bool8 MainState_FadeIn(void) CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); - BlendPalettes(-1, 16, 0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 16, 0); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sNamingScreen->state++; return FALSE; } @@ -690,7 +690,7 @@ static bool8 MainState_PressedOKButton(void) static bool8 MainState_FadeOut(void) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sNamingScreen->state++; return FALSE; } @@ -826,7 +826,7 @@ static void Task_HandlePageSwapAnim(u8 taskId) static bool8 IsPageSwapAnimNotInProgress(void) { - if (FindTaskIdByFunc(Task_HandlePageSwapAnim) == 0xFF) + if (FindTaskIdByFunc(Task_HandlePageSwapAnim) == TASK_NONE) return TRUE; else return FALSE; @@ -1071,7 +1071,7 @@ static void SpriteCB_InputArrow(struct Sprite *sprite) sprite->sDelay = 8; sprite->sXPosId = (sprite->sXPosId + 1) & (ARRAY_COUNT(x) - 1); } - sprite->pos2.x = x[sprite->sXPosId]; + sprite->x2 = x[sprite->sXPosId]; } #undef sDelay @@ -1089,13 +1089,13 @@ static void SpriteCB_Underscore(struct Sprite *sprite) pos = GetTextEntryPosition(); if (pos != (u8)sprite->sId) { - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->sYPosId = 0; sprite->sDelay = 0; } else { - sprite->pos2.y = y[sprite->sYPosId]; + sprite->y2 = y[sprite->sYPosId]; sprite->sDelay++; if (sprite->sDelay > 8) { @@ -1134,11 +1134,11 @@ static void SetCursorPos(s16 x, s16 y) struct Sprite *cursorSprite = &gSprites[sNamingScreen->cursorSpriteId]; if (x < sPageColumnCounts[CurrentPageToKeyboardId()]) - cursorSprite->pos1.x = sPageColumnXPos[x + CurrentPageToKeyboardId() * KBCOL_COUNT] + 38; + cursorSprite->x = sPageColumnXPos[x + CurrentPageToKeyboardId() * KBCOL_COUNT] + 38; else - cursorSprite->pos1.x = 0; + cursorSprite->x = 0; - cursorSprite->pos1.y = y * 16 + 88; + cursorSprite->y = y * 16 + 88; cursorSprite->sPrevX = cursorSprite->sX; cursorSprite->sPrevY = cursorSprite->sY; cursorSprite->sX = x; @@ -1284,11 +1284,11 @@ static bool8 PageSwapSprite_SlideOff(struct Sprite *sprite) struct Sprite *text = &gSprites[sprite->sTextSpriteId]; struct Sprite *button = &gSprites[sprite->sButtonSpriteId]; - text->pos2.y++; - if (text->pos2.y > 7) + text->y2++; + if (text->y2 > 7) { sprite->sState++; - text->pos2.y = -4; + text->y2 = -4; text->invisible = TRUE; SetPageSwapButtonGfx(PageToNextGfxId(((u8)sprite->sPage + 1) % KBPAGE_COUNT), text, button); } @@ -1300,10 +1300,10 @@ static bool8 PageSwapSprite_SlideOn(struct Sprite *sprite) struct Sprite *text = &gSprites[sprite->sTextSpriteId]; text->invisible = FALSE; - text->pos2.y++; - if (text->pos2.y >= 0) + text->y2++; + if (text->y2 >= 0) { - text->pos2.y = 0; + text->y2 = 0; sprite->sState = 1; // go to PageSwapSprite_Idle } return FALSE; @@ -1929,9 +1929,9 @@ struct TextColor // Needed because of alignment static const struct TextColor sTextColorStruct = { { - {TEXT_DYNAMIC_COLOR_4, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}, - {TEXT_DYNAMIC_COLOR_5, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}, - {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY} + {TEXT_DYNAMIC_COLOR_4, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}, + {TEXT_DYNAMIC_COLOR_5, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}, + {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY} } }; @@ -1999,7 +1999,7 @@ static void DrawKeyboardPageOnDeck(void) static void PrintControls(void) { - const u8 color[3] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY }; + const u8 color[3] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; FillWindowPixelBuffer(sNamingScreen->windows[WIN_BANNER], PIXEL_FILL(15)); AddTextPrinterParameterized3(sNamingScreen->windows[WIN_BANNER], 0, 2, 1, color, 0, gText_MoveOkBack); diff --git a/src/new_game.c b/src/new_game.c index 55a568132e..2a950efbc9 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -48,23 +48,19 @@ extern const u8 EventScript_ResetAllMapFlags[]; -// this file's functions static void ClearFrontierRecord(void); static void WarpToTruck(void); -static void ResetMiniGamesResults(void); +static void ResetMiniGamesRecords(void); -// EWRAM vars EWRAM_DATA bool8 gDifferentSaveFile = FALSE; EWRAM_DATA bool8 gEnableContestDebugging = FALSE; -// const rom data static const struct ContestWinner sContestWinnerPicDummy = { .monName = _(""), .trainerName = _("") }; -// code void SetTrainerId(u32 trainerId, u8 *dst) { dst[0] = trainerId; @@ -87,7 +83,7 @@ void CopyTrainerId(u8 *dst, u8 *src) static void InitPlayerTrainerId(void) { - u32 trainerId = (Random() << 0x10) | GetGeneratedTrainerIdLower(); + u32 trainerId = (Random() << 16) | GetGeneratedTrainerIdLower(); SetTrainerId(trainerId, gSaveBlock2Ptr->playerTrainerId); } @@ -114,7 +110,9 @@ void ClearAllContestWinnerPics(void) s32 i; ClearContestWinnerPicsInContestHall(); - for (i = 8; i < 13; i++) + + // Clear Museum paintings + for (i = MUSEUM_CONTEST_WINNERS_START; i < NUM_CONTEST_WINNERS; i++) gSaveBlock1Ptr->contestWinners[i] = sContestWinnerPicDummy; } @@ -140,7 +138,7 @@ void Sav2_ClearSetDefault(void) void ResetMenuAndMonGlobals(void) { - gDifferentSaveFile = 0; + gDifferentSaveFile = FALSE; ResetPokedexScrollPositions(); ZeroPlayerPartyMons(); ZeroEnemyPartyMons(); @@ -153,7 +151,7 @@ void NewGameInitData(void) if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT) RtcReset(); - gDifferentSaveFile = 1; + gDifferentSaveFile = TRUE; gSaveBlock2Ptr->encryptionKey = 0; ZeroPlayerPartyMons(); ZeroEnemyPartyMons(); @@ -196,7 +194,7 @@ void NewGameInitData(void) ResetLotteryCorner(); WarpToTruck(); ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags); - ResetMiniGamesResults(); + ResetMiniGamesRecords(); InitUnionRoomChatRegisteredTexts(); InitLilycoveLady(); ResetAllApprenticeData(); @@ -208,10 +206,10 @@ void NewGameInitData(void) ResetContestLinkResults(); } -static void ResetMiniGamesResults(void) +static void ResetMiniGamesRecords(void) { CpuFill16(0, &gSaveBlock2Ptr->berryCrush, sizeof(struct BerryCrush)); SetBerryPowder(&gSaveBlock2Ptr->berryCrush.berryPowderAmount, 0); - ResetPokeJumpResults(); + ResetPokemonJumpRecords(); CpuFill16(0, &gSaveBlock2Ptr->berryPick, sizeof(struct BerryPickingResults)); } diff --git a/src/option_menu.c b/src/option_menu.c index b6440a89c0..0174b69db7 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -75,7 +75,7 @@ static u8 ButtonMode_ProcessInput(u8 selection); static void ButtonMode_DrawChoices(u8 selection); static void DrawTextOption(void); static void DrawOptionMenuTexts(void); -static void sub_80BB154(void); +static void DrawBgWindowFrames(void); EWRAM_DATA static bool8 sArrowPressed = FALSE; @@ -185,9 +185,9 @@ void CB2_InitOptionMenu(void) DeactivateAllTextPrinters(); SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0V, 0); - SetGpuReg(REG_OFFSET_WININ, 1); - SetGpuReg(REG_OFFSET_WINOUT, 35); - SetGpuReg(REG_OFFSET_BLDCNT, 193); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_CLR); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_DARKEN); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 4); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); @@ -228,7 +228,7 @@ void CB2_InitOptionMenu(void) DrawOptionMenuTexts(); gMain.state++; case 9: - sub_80BB154(); + DrawBgWindowFrames(); gMain.state++; break; case 10: @@ -256,7 +256,7 @@ void CB2_InitOptionMenu(void) break; } case 11: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(VBlankCB); SetMainCallback2(MainCB2); return; @@ -365,7 +365,7 @@ static void Task_OptionMenuSave(u8 taskId) gSaveBlock2Ptr->optionsButtonMode = gTasks[taskId].data[TD_BUTTONMODE]; gSaveBlock2Ptr->optionsWindowFrameType = gTasks[taskId].data[TD_FRAMETYPE]; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_OptionMenuFadeOut; } @@ -381,7 +381,7 @@ static void Task_OptionMenuFadeOut(u8 taskId) static void HighlightOptionMenuItem(u8 index) { - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(16, 224)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(16, DISPLAY_WIDTH - 16)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(index * 16 + 40, index * 16 + 56)); } @@ -642,25 +642,37 @@ static void DrawOptionMenuTexts(void) CopyWindowToVram(WIN_OPTIONS, 3); } -static void sub_80BB154(void) +#define TILE_TOP_CORNER_L 0x1A2 +#define TILE_TOP_EDGE 0x1A3 +#define TILE_TOP_CORNER_R 0x1A4 +#define TILE_LEFT_EDGE 0x1A5 +#define TILE_RIGHT_EDGE 0x1A7 +#define TILE_BOT_CORNER_L 0x1A8 +#define TILE_BOT_EDGE 0x1A9 +#define TILE_BOT_CORNER_R 0x1AA + +static void DrawBgWindowFrames(void) { - // bg, tileNum, x, y, width, height, pal - FillBgTilemapBufferRect(1, 0x1A2, 1, 0, 1, 1, 7); - FillBgTilemapBufferRect(1, 0x1A3, 2, 0, 0x1B, 1, 7); - FillBgTilemapBufferRect(1, 0x1A4, 28, 0, 1, 1, 7); - FillBgTilemapBufferRect(1, 0x1A5, 1, 1, 1, 2, 7); - FillBgTilemapBufferRect(1, 0x1A7, 28, 1, 1, 2, 7); - FillBgTilemapBufferRect(1, 0x1A8, 1, 3, 1, 1, 7); - FillBgTilemapBufferRect(1, 0x1A9, 2, 3, 0x1B, 1, 7); - FillBgTilemapBufferRect(1, 0x1AA, 28, 3, 1, 1, 7); - FillBgTilemapBufferRect(1, 0x1A2, 1, 4, 1, 1, 7); - FillBgTilemapBufferRect(1, 0x1A3, 2, 4, 0x1A, 1, 7); - FillBgTilemapBufferRect(1, 0x1A4, 28, 4, 1, 1, 7); - FillBgTilemapBufferRect(1, 0x1A5, 1, 5, 1, 0x12, 7); - FillBgTilemapBufferRect(1, 0x1A7, 28, 5, 1, 0x12, 7); - FillBgTilemapBufferRect(1, 0x1A8, 1, 19, 1, 1, 7); - FillBgTilemapBufferRect(1, 0x1A9, 2, 19, 0x1A, 1, 7); - FillBgTilemapBufferRect(1, 0x1AA, 28, 19, 1, 1, 7); + // bg, tile, x, y, width, height, palNum + // Draw title window frame + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 0, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 0, 27, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 0, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 1, 1, 2, 7); + FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 1, 1, 2, 7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 3, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 3, 27, 1, 7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 3, 1, 1, 7); + + // Draw options list window frame + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 4, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 4, 26, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 4, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 5, 1, 18, 7); + FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 5, 1, 18, 7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 19, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 19, 26, 1, 7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 19, 1, 1, 7); CopyBgTilemapBufferToVram(1); } diff --git a/src/overworld.c b/src/overworld.c index 72aa17929b..df705e2bdc 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -68,10 +68,20 @@ #include "constants/trainer_hill.h" #include "constants/weather.h" -#define PLAYER_TRADING_STATE_IDLE 0x80 -#define PLAYER_TRADING_STATE_BUSY 0x81 -#define PLAYER_TRADING_STATE_UNK_2 0x82 -#define PLAYER_TRADING_STATE_EXITING_ROOM 0x83 +struct CableClubPlayer +{ + u8 playerId; + u8 isLocalPlayer; + u8 movementMode; + u8 facing; + struct MapPosition pos; + u16 metatileBehavior; +}; + +#define PLAYER_LINK_STATE_IDLE 0x80 +#define PLAYER_LINK_STATE_BUSY 0x81 +#define PLAYER_LINK_STATE_READY 0x82 +#define PLAYER_LINK_STATE_EXITING_ROOM 0x83 #define FACING_NONE 0 #define FACING_UP 1 @@ -92,89 +102,88 @@ static void CB2_ReturnToFieldLink(void); static void CB2_LoadMapOnReturnToFieldCableClub(void); static void CB2_LoadMap2(void); static void VBlankCB_Field(void); -static void SpriteCB_LinkPlayer(struct Sprite *sprite); +static void SpriteCB_LinkPlayer(struct Sprite *); static void ChooseAmbientCrySpecies(void); -static void DoMapLoadLoop(u8 *state); -static bool32 LoadMapInStepsLocal(u8 *state, bool32); -static bool32 LoadMapInStepsLink(u8 *state); -static bool32 ReturnToFieldLocal(u8 *state); -static bool32 ReturnToFieldLink(u8 *state); +static void DoMapLoadLoop(u8 *); +static bool32 LoadMapInStepsLocal(u8 *, bool32); +static bool32 LoadMapInStepsLink(u8 *); +static bool32 ReturnToFieldLocal(u8 *); +static bool32 ReturnToFieldLink(u8 *); static void InitObjectEventsLink(void); static void InitObjectEventsLocal(void); static void InitOverworldGraphicsRegisters(void); static u8 GetSpriteForLinkedPlayer(u8); -static u16 KeyInterCB_SendNothing(u32 a1); +static u16 KeyInterCB_SendNothing(u32); static void ResetMirageTowerAndSaveBlockPtrs(void); -static void sub_80867D8(void); +static void ResetScreenForMapLoad(void); static void OffsetCameraFocusByLinkPlayerId(void); static void SpawnLinkPlayers(void); static void SetCameraToTrackGuestPlayer(void); -static void ResumeMap(bool32 arg0); +static void ResumeMap(bool32); static void SetCameraToTrackPlayer(void); -static void sub_8086A68(void); +static void InitObjectEventsReturnToField(void); static void InitViewGraphics(void); static void SetCameraToTrackGuestPlayer_2(void); static void CreateLinkPlayerSprites(void); static void ClearAllPlayerKeys(void); -static void ResetAllTradingStates(void); +static void ResetAllPlayerLinkStates(void); static void UpdateHeldKeyCode(u16); static void UpdateAllLinkPlayers(u16*, s32); -static u8 FlipVerticalAndClearForced(u8 a1, u8 a2); -static u8 LinkPlayerDetectCollision(u8 selfObjEventId, u8 a2, s16 x, s16 y); -static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion); -static void GetLinkPlayerCoords(u8 linkPlayerId, u16 *x, u16 *y); -static u8 GetLinkPlayerFacingDirection(u8 linkPlayerId); -static u8 GetLinkPlayerElevation(u8 linkPlayerId); -static s32 sub_80878E4(u8 linkPlayerId); -static u8 GetLinkPlayerIdAt(s16 x, s16 y); -static void SetPlayerFacingDirection(u8 linkPlayerId, u8 a2); -static void ZeroObjectEvent(struct ObjectEvent *objEvent); -static void SpawnLinkPlayerObjectEvent(u8 linkPlayerId, s16 x, s16 y, u8 a4); -static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s16 y); -static void sub_80877DC(u8 linkPlayerId, u8 a2); -static void sub_808780C(u8 linkPlayerId); -static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId); +static u8 FlipVerticalAndClearForced(u8, u8); +static u8 LinkPlayerDetectCollision(u8, u8, s16, s16); +static void CreateLinkPlayerSprite(u8, u8); +static void GetLinkPlayerCoords(u8, u16 *, u16 *); +static u8 GetLinkPlayerFacingDirection(u8); +static u8 GetLinkPlayerElevation(u8); +static s32 GetLinkPlayerObjectStepTimer(u8); +static u8 GetLinkPlayerIdAt(s16, s16); +static void SetPlayerFacingDirection(u8, u8); +static void ZeroObjectEvent(struct ObjectEvent *); +static void SpawnLinkPlayerObjectEvent(u8, s16, s16, u8); +static void InitLinkPlayerObjectEventPos(struct ObjectEvent *, s16, s16); +static void SetLinkPlayerObjectRange(u8, u8); +static void DestroyLinkPlayerObject(u8); +static u8 GetSpriteForLinkedPlayer(u8); static void RunTerminateLinkScript(void); static u32 GetLinkSendQueueLength(void); -static void ZeroLinkPlayerObjectEvent(struct LinkPlayerObjectEvent *linkPlayerObjEvent); -static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); -static u16 GetDirectionForEventScript(const u8 *script); -static void sub_8087510(void); +static void ZeroLinkPlayerObjectEvent(struct LinkPlayerObjectEvent *); +static const u8 *TryInteractWithPlayer(struct CableClubPlayer *); +static u16 GetDirectionForEventScript(const u8 *); +static void InitLinkPlayerQueueScript(void); static void InitLinkRoomStartMenuScript(void); -static void sub_8087530(const u8 *script); -static void CreateConfirmLeaveTradeRoomPrompt(void); -static void InitMenuBasedScript(const u8 *script); -static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 a2, struct TradeRoomPlayer *a3); -static bool32 sub_8087340(struct TradeRoomPlayer *a1); -static bool32 sub_8087340_2(struct TradeRoomPlayer *a1); -static u8 *TryGetTileEventScript(struct TradeRoomPlayer *a1); -static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *a1); -static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); +static void RunInteractLocalPlayerScript(const u8 *); +static void RunConfirmLeaveCableClubScript(void); +static void InitMenuBasedScript(const u8 *); +static void LoadCableClubPlayer(s32, s32, struct CableClubPlayer *); +static bool32 IsCableClubPlayerUnfrozen(struct CableClubPlayer *); +static bool32 CanCableClubPlayerPressStart(struct CableClubPlayer *); +static u8 *TryGetTileEventScript(struct CableClubPlayer *); +static bool32 PlayerIsAtSouthExit(struct CableClubPlayer *); +static const u8 *TryInteractWithPlayer(struct CableClubPlayer *); static u16 KeyInterCB_DeferToRecvQueue(u32); static u16 KeyInterCB_DeferToSendQueue(u32); -static void ResetPlayerHeldKeys(u16 *a1); -static u16 KeyInterCB_SelfIdle(u32 a1); -static u16 KeyInterCB_DeferToEventScript(u32 a1); -static u16 GetDirectionForDpadKey(u16 a1); +static void ResetPlayerHeldKeys(u16 *); +static u16 KeyInterCB_SelfIdle(u32); +static u16 KeyInterCB_DeferToEventScript(u32); +static u16 GetDirectionForDpadKey(u16); static void CB1_UpdateLinkState(void); static void SetKeyInterceptCallback(u16 (*func)(u32)); static void SetFieldVBlankCallback(void); static void FieldClearVBlankHBlankCallbacks(void); static void TransitionMapMusic(void); -static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 a2, u8 a3); -static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 a2, u16 a3, u8 a4); +static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *, u16, u8); +static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *, u8, u16, u8); static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars static void *sUnusedOverworldCallback; -static u8 sPlayerTradingStates[MAX_LINK_PLAYERS]; +static u8 sPlayerLinkStates[MAX_LINK_PLAYERS]; // This callback is called with a player's key code. It then returns an // adjusted key code, effectively intercepting the input before anything // can process it. static u16 (*sPlayerKeyInterceptCallback)(u32); -static bool8 sUnknown_03000E18; +static bool8 sReceivingFromLink; static u8 sRfuKeepAliveTimer; -static u32 sUnusedVar; // IWRAM common u16 *gBGTilemapBuffers1; @@ -312,13 +321,13 @@ static const struct ScanlineEffectParams sFlashEffectParams = static u8 MovementEventModeCB_Normal(struct LinkPlayerObjectEvent *, struct ObjectEvent *, u8); static u8 MovementEventModeCB_Ignored(struct LinkPlayerObjectEvent *, struct ObjectEvent *, u8); -static u8 MovementEventModeCB_Normal_2(struct LinkPlayerObjectEvent *, struct ObjectEvent *, u8); +static u8 MovementEventModeCB_Scripted(struct LinkPlayerObjectEvent *, struct ObjectEvent *, u8); static u8 (*const gLinkPlayerMovementModes[])(struct LinkPlayerObjectEvent *, struct ObjectEvent *, u8) = { - MovementEventModeCB_Normal, // MOVEMENT_MODE_FREE - MovementEventModeCB_Ignored, // MOVEMENT_MODE_FROZEN - MovementEventModeCB_Normal_2, // MOVEMENT_MODE_SCRIPTED + [MOVEMENT_MODE_FREE] = MovementEventModeCB_Normal, + [MOVEMENT_MODE_FROZEN] = MovementEventModeCB_Ignored, + [MOVEMENT_MODE_SCRIPTED] = MovementEventModeCB_Scripted, }; static u8 FacingHandler_DoNothing(struct LinkPlayerObjectEvent *, struct ObjectEvent *, u8); @@ -403,6 +412,9 @@ static void Overworld_ResetStateAfterWhiteOut(void) FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_USE_FLASH); + #if VAR_TERRAIN != 0 + VarSet(VAR_TERRAIN, 0); + #endif // If you were defeated by Kyogre/Groudon and the step counter has // maxed out, end the abnormal weather. if (VarGet(VAR_SHOULD_END_ABNORMAL_WEATHER) == 1) @@ -412,7 +424,7 @@ static void Overworld_ResetStateAfterWhiteOut(void) } } -static void sub_8084788(void) +static void UpdateMiscOverworldStates(void) { FlagClear(FLAG_SYS_SAFARI_MODE); ChooseAmbientCrySpecies(); @@ -953,7 +965,7 @@ static u16 GetCenterScreenMetatileBehavior(void) bool32 Overworld_IsBikingAllowed(void) { - if (!(gMapHeader.flags & MAP_ALLOW_CYCLING)) + if (!gMapHeader.allowCycling) return FALSE; else return TRUE; @@ -1134,7 +1146,7 @@ void Overworld_PlaySpecialMapMusic(void) { u16 music = GetCurrLocationDefaultMusic(); - if (music != MUS_ABNORMAL_WEATHER && music != 0xFFFF) + if (music != MUS_ABNORMAL_WEATHER && music != MUS_NONE) { if (gSaveBlock1Ptr->savedMusic) music = gSaveBlock1Ptr->savedMusic; @@ -1164,7 +1176,7 @@ static void TransitionMapMusic(void) { u16 newMusic = GetWarpDestinationMusic(); u16 currentMusic = GetCurrentMapMusic(); - if (newMusic != MUS_ABNORMAL_WEATHER && newMusic != 0xFFFF) + if (newMusic != MUS_ABNORMAL_WEATHER && newMusic != MUS_NONE) { if (currentMusic == MUS_UNDERWATER || currentMusic == MUS_SURF) return; @@ -1627,7 +1639,7 @@ static void CB2_ReturnToFieldLocal(void) static void CB2_ReturnToFieldLink(void) { - if (!sub_8087598() && ReturnToFieldLink(&gMain.state)) + if (!Overworld_LinkRecvQueueLengthMoreThan2() && ReturnToFieldLink(&gMain.state)) SetMainCallback2(CB2_Overworld); } @@ -1669,16 +1681,16 @@ void CB2_ReturnToFieldContinueScriptPlayMapMusic(void) CB2_ReturnToField(); } -void sub_80861E8(void) +void CB2_ReturnToFieldFadeFromBlack(void) { FieldClearVBlankHBlankCallbacks(); gFieldCallback = FieldCB_WarpExitFadeFromBlack; CB2_ReturnToField(); } -static void sub_8086204(void) +static void FieldCB_FadeTryShowMapPopup(void) { - if (SHOW_MAP_NAME_ENABLED && SecretBaseMapPopupEnabled() == TRUE) + if (gMapHeader.showMapName == TRUE && SecretBaseMapPopupEnabled() == TRUE) ShowMapNamePopup(); FieldCB_WarpExitFadeFromBlack(); } @@ -1705,7 +1717,7 @@ void CB2_ContinueSavedGame(void) UnfreezeObjectEvents(); DoTimeBasedEvents(); - sub_8084788(); + UpdateMiscOverworldStates(); if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR) InitBattlePyramidMap(TRUE); else if (trainerHillMapId != 0) @@ -1728,7 +1740,7 @@ void CB2_ContinueSavedGame(void) else { TryPutTodaysRivalTrainerOnAir(); - gFieldCallback = sub_8086204; + gFieldCallback = FieldCB_FadeTryShowMapPopup; SetMainCallback1(CB1_Overworld); CB2_ReturnToField(); } @@ -1797,7 +1809,7 @@ static bool32 LoadMapInStepsLink(u8 *state) ScriptContext1_Init(); ScriptContext2_Disable(); ResetMirageTowerAndSaveBlockPtrs(); - sub_80867D8(); + ResetScreenForMapLoad(); (*state)++; break; case 1: @@ -1878,7 +1890,7 @@ static bool32 LoadMapInStepsLocal(u8 *state, bool32 a2) break; case 1: ResetMirageTowerAndSaveBlockPtrs(); - sub_80867D8(); + ResetScreenForMapLoad(); (*state)++; break; case 2: @@ -1924,7 +1936,7 @@ static bool32 LoadMapInStepsLocal(u8 *state, bool32 a2) (*state)++; break; case 11: - if (SHOW_MAP_NAME_ENABLED && SecretBaseMapPopupEnabled() == TRUE) + if (gMapHeader.showMapName == TRUE && SecretBaseMapPopupEnabled() == TRUE) ShowMapNamePopup(); (*state)++; break; @@ -1945,9 +1957,9 @@ static bool32 ReturnToFieldLocal(u8 *state) { case 0: ResetMirageTowerAndSaveBlockPtrs(); - sub_80867D8(); + ResetScreenForMapLoad(); ResumeMap(FALSE); - sub_8086A68(); + InitObjectEventsReturnToField(); SetCameraToTrackPlayer(); (*state)++; break; @@ -1974,7 +1986,7 @@ static bool32 ReturnToFieldLink(u8 *state) case 0: FieldClearVBlankHBlankCallbacks(); ResetMirageTowerAndSaveBlockPtrs(); - sub_80867D8(); + ResetScreenForMapLoad(); (*state)++; break; case 1: @@ -1983,7 +1995,7 @@ static bool32 ReturnToFieldLink(u8 *state) break; case 2: CreateLinkPlayerSprites(); - sub_8086A68(); + InitObjectEventsReturnToField(); SetCameraToTrackGuestPlayer_2(); (*state)++; break; @@ -2055,13 +2067,13 @@ static void ResetMirageTowerAndSaveBlockPtrs(void) MoveSaveBlocks_ResetHeap(); } -static void sub_80867D8(void) +static void ResetScreenForMapLoad(void) { SetGpuReg(REG_OFFSET_DISPCNT, 0); ScanlineEffect_Stop(); DmaClear16(3, PLTT + 2, PLTT_SIZE - 2); - DmaFillLarge16(3, 0, (void *)(VRAM + 0x0), 0x18000, 0x1000); + DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); ResetOamRange(0, 128); LoadOam(); } @@ -2158,9 +2170,9 @@ static void InitObjectEventsLocal(void) TryRunOnWarpIntoMapScript(); } -static void sub_8086A68(void) +static void InitObjectEventsReturnToField(void) { - sub_808E16C(0, 0); + SpawnObjectEventsOnReturnToField(0, 0); RotatingGate_InitPuzzleAndGraphics(); RunOnReturnToFieldMapScript(); } @@ -2242,7 +2254,7 @@ static void CB1_UpdateLinkState(void) void ResetAllMultiplayerState(void) { - ResetAllTradingStates(); + ResetAllPlayerLinkStates(); SetKeyInterceptCallback(KeyInterCB_SelfIdle); } @@ -2267,57 +2279,57 @@ static void CheckRfuKeepAliveTimer(void) LinkRfu_FatalError(); } -static void ResetAllTradingStates(void) +static void ResetAllPlayerLinkStates(void) { s32 i; for (i = 0; i < MAX_LINK_PLAYERS; i++) - sPlayerTradingStates[i] = PLAYER_TRADING_STATE_IDLE; + sPlayerLinkStates[i] = PLAYER_LINK_STATE_IDLE; } -// Returns true if all connected players are in tradingState. -static bool32 AreAllPlayersInTradingState(u16 tradingState) +// Returns true if all connected players are in state. +static bool32 AreAllPlayersInLinkState(u16 state) { s32 i; s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sPlayerTradingStates[i] != tradingState) + if (sPlayerLinkStates[i] != state) return FALSE; return TRUE; } -static bool32 IsAnyPlayerInTradingState(u16 tradingState) +static bool32 IsAnyPlayerInLinkState(u16 state) { s32 i; s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sPlayerTradingStates[i] == tradingState) + if (sPlayerLinkStates[i] == state) return TRUE; return FALSE; } -static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlayer *trainer, u16 *forceFacing) +static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct CableClubPlayer *trainer, u16 *forceFacing) { const u8 *script; - if (sPlayerTradingStates[playerId] == PLAYER_TRADING_STATE_IDLE) + if (sPlayerLinkStates[playerId] == PLAYER_LINK_STATE_IDLE) { script = TryGetTileEventScript(trainer); if (script) { *forceFacing = GetDirectionForEventScript(script); - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_BUSY; if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); - sub_8087530(script); + RunInteractLocalPlayerScript(script); } return; } - if (IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (IsAnyPlayerInLinkState(PLAYER_LINK_STATE_EXITING_ROOM) == TRUE) { - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_BUSY; if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); @@ -2329,9 +2341,9 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay switch (key) { case LINK_KEY_CODE_START_BUTTON: - if (sub_8087340_2(trainer)) + if (CanCableClubPlayerPressStart(trainer)) { - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_BUSY; if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); @@ -2342,11 +2354,11 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay case LINK_KEY_CODE_DPAD_DOWN: if (PlayerIsAtSouthExit(trainer) == TRUE) { - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_BUSY; if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); - CreateConfirmLeaveTradeRoomPrompt(); + RunConfirmLeaveCableClubScript(); } } break; @@ -2354,7 +2366,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay script = TryInteractWithPlayer(trainer); if (script) { - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_BUSY; if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); @@ -2363,24 +2375,24 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay } break; case LINK_KEY_CODE_HANDLE_RECV_QUEUE: - if (sub_8087340(trainer)) + if (IsCableClubPlayerUnfrozen(trainer)) { - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_BUSY; if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToRecvQueue); - sub_8087510(); + InitLinkPlayerQueueScript(); } } break; case LINK_KEY_CODE_HANDLE_SEND_QUEUE: - if (sub_8087340(trainer)) + if (IsCableClubPlayerUnfrozen(trainer)) { - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_BUSY; if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToSendQueue); - sub_8087510(); + InitLinkPlayerQueueScript(); } } break; @@ -2390,35 +2402,35 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay switch (key) { case LINK_KEY_CODE_EXIT_ROOM: - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_EXITING_ROOM; + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_EXITING_ROOM; break; - case LINK_KEY_CODE_UNK_2: - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_2; + case LINK_KEY_CODE_READY: + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_READY; break; - case LINK_KEY_CODE_UNK_4: - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_IDLE; + case LINK_KEY_CODE_IDLE: + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_IDLE; if (trainer->isLocalPlayer) SetKeyInterceptCallback(KeyInterCB_SelfIdle); break; - case LINK_KEY_CODE_UNK_7: - if (sPlayerTradingStates[playerId] == PLAYER_TRADING_STATE_UNK_2) - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + case LINK_KEY_CODE_EXIT_SEAT: + if (sPlayerLinkStates[playerId] == PLAYER_LINK_STATE_READY) + sPlayerLinkStates[playerId] = PLAYER_LINK_STATE_BUSY; break; } } static void UpdateAllLinkPlayers(u16 *keys, s32 selfId) { - struct TradeRoomPlayer trainer; + struct CableClubPlayer trainer; s32 i; for (i = 0; i < MAX_LINK_PLAYERS; i++) { u8 key = keys[i]; u16 setFacing = FACING_NONE; - LoadTradeRoomPlayer(i, selfId, &trainer); + LoadCableClubPlayer(i, selfId, &trainer); HandleLinkPlayerKeyInput(i, key, &trainer, &setFacing); - if (sPlayerTradingStates[i] == PLAYER_TRADING_STATE_IDLE) + if (sPlayerLinkStates[i] == PLAYER_LINK_STATE_IDLE) setFacing = GetDirectionForDpadKey(key); SetPlayerFacingDirection(i, setFacing); } @@ -2505,7 +2517,7 @@ static u16 KeyInterCB_SelfIdle(u32 key) return LINK_KEY_CODE_HANDLE_SEND_QUEUE; } -static u16 sub_80870EC(u32 key) +static u16 KeyInterCB_Idle(u32 key) { CheckRfuKeepAliveTimer(); return LINK_KEY_CODE_EMPTY; @@ -2522,8 +2534,8 @@ static u16 KeyInterCB_DeferToEventScript(u32 key) } else { - retVal = LINK_KEY_CODE_UNK_4; - SetKeyInterceptCallback(sub_80870EC); + retVal = LINK_KEY_CODE_IDLE; + SetKeyInterceptCallback(KeyInterCB_Idle); } return retVal; } @@ -2538,9 +2550,9 @@ static u16 KeyInterCB_DeferToRecvQueue(u32 key) } else { - retVal = LINK_KEY_CODE_UNK_4; + retVal = LINK_KEY_CODE_IDLE; ScriptContext2_Disable(); - SetKeyInterceptCallback(sub_80870EC); + SetKeyInterceptCallback(KeyInterCB_Idle); } return retVal; } @@ -2555,27 +2567,27 @@ static u16 KeyInterCB_DeferToSendQueue(u32 key) } else { - retVal = LINK_KEY_CODE_UNK_4; + retVal = LINK_KEY_CODE_IDLE; ScriptContext2_Disable(); - SetKeyInterceptCallback(sub_80870EC); + SetKeyInterceptCallback(KeyInterCB_Idle); } return retVal; } -static u16 KeyInterCB_DoNothingAndKeepAlive(u32 key) +static u16 KeyInterCB_ExitingSeat(u32 key) { CheckRfuKeepAliveTimer(); return LINK_KEY_CODE_EMPTY; } -static u16 sub_8087170(u32 keyOrPlayerId) +static u16 KeyInterCB_Ready(u32 keyOrPlayerId) { - if (sPlayerTradingStates[keyOrPlayerId] == PLAYER_TRADING_STATE_UNK_2) + if (sPlayerLinkStates[keyOrPlayerId] == PLAYER_LINK_STATE_READY) { if (JOY_NEW(B_BUTTON)) { - SetKeyInterceptCallback(KeyInterCB_DoNothingAndKeepAlive); - return LINK_KEY_CODE_UNK_7; + SetKeyInterceptCallback(KeyInterCB_ExitingSeat); + return LINK_KEY_CODE_EXIT_SEAT; } else { @@ -2589,10 +2601,10 @@ static u16 sub_8087170(u32 keyOrPlayerId) } } -static u16 sub_80871AC(u32 a1) +static u16 KeyInterCB_SetReady(u32 a1) { - SetKeyInterceptCallback(sub_8087170); - return LINK_KEY_CODE_UNK_2; + SetKeyInterceptCallback(KeyInterCB_Ready); + return LINK_KEY_CODE_READY; } static u16 KeyInterCB_SendNothing(u32 key) @@ -2605,9 +2617,9 @@ static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) // keyOrPlayerId could be any keycode. This callback does no sanity checking // on the size of the key. It's assuming that it is being called from // CB1_UpdateLinkState. - if (sPlayerTradingStates[keyOrPlayerId] != PLAYER_TRADING_STATE_EXITING_ROOM) + if (sPlayerLinkStates[keyOrPlayerId] != PLAYER_LINK_STATE_EXITING_ROOM) CheckRfuKeepAliveTimer(); - if (AreAllPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (AreAllPlayersInLinkState(PLAYER_LINK_STATE_EXITING_ROOM) == TRUE) { ScriptContext1_SetupScript(EventScript_DoLinkRoomExit); SetKeyInterceptCallback(KeyInterCB_SendNothing); @@ -2621,37 +2633,38 @@ static u16 KeyInterCB_SendExitRoomKey(u32 key) return LINK_KEY_CODE_EXIT_ROOM; } -// Duplicate function. -static u16 KeyInterCB_SendNothing_2(u32 key) +// Identical to KeyInterCB_SendNothing +static u16 KeyInterCB_InLinkActivity(u32 key) { return LINK_KEY_CODE_EMPTY; } -u32 sub_8087214(void) +u32 GetCableClubPartnersReady(void) { - if (IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) - return 2; - if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLocalLinkPlayerId] != PLAYER_TRADING_STATE_UNK_2) - return 0; - if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[gLocalLinkPlayerId] == PLAYER_TRADING_STATE_BUSY) - return 2; - if (AreAllPlayersInTradingState(PLAYER_TRADING_STATE_UNK_2) != FALSE) - return 1; + if (IsAnyPlayerInLinkState(PLAYER_LINK_STATE_EXITING_ROOM) == TRUE) + return CABLE_SEAT_FAILED; + if (sPlayerKeyInterceptCallback == KeyInterCB_Ready && sPlayerLinkStates[gLocalLinkPlayerId] != PLAYER_LINK_STATE_READY) + return CABLE_SEAT_WAITING; + if (sPlayerKeyInterceptCallback == KeyInterCB_ExitingSeat && sPlayerLinkStates[gLocalLinkPlayerId] == PLAYER_LINK_STATE_BUSY) + return CABLE_SEAT_FAILED; + if (AreAllPlayersInLinkState(PLAYER_LINK_STATE_READY)) + return CABLE_SEAT_SUCCESS; + return CABLE_SEAT_WAITING; +} + +// Unused +static bool32 IsAnyPlayerExitingCableClub(void) +{ + return IsAnyPlayerInLinkState(PLAYER_LINK_STATE_EXITING_ROOM); +} + +u16 SetInCableClubSeat(void) +{ + SetKeyInterceptCallback(KeyInterCB_SetReady); return 0; } -bool32 sub_808727C(void) -{ - return IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM); -} - -u16 sub_8087288(void) -{ - SetKeyInterceptCallback(sub_80871AC); - return 0; -} - -u16 sub_808729C(void) +u16 SetLinkWaitingForScript(void) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); return 0; @@ -2665,58 +2678,58 @@ u16 QueueExitLinkRoomKey(void) return 0; } -u16 sub_80872C4(void) +u16 SetStartedCableClubActivity(void) { - SetKeyInterceptCallback(KeyInterCB_SendNothing_2); + SetKeyInterceptCallback(KeyInterCB_InLinkActivity); return 0; } -static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRoomPlayer *trainer) +static void LoadCableClubPlayer(s32 linkPlayerId, s32 myPlayerId, struct CableClubPlayer *trainer) { s16 x, y; trainer->playerId = linkPlayerId; trainer->isLocalPlayer = (linkPlayerId == myPlayerId) ? 1 : 0; - trainer->c = gLinkPlayerObjectEvents[linkPlayerId].movementMode; + trainer->movementMode = gLinkPlayerObjectEvents[linkPlayerId].movementMode; trainer->facing = GetLinkPlayerFacingDirection(linkPlayerId); GetLinkPlayerCoords(linkPlayerId, &x, &y); trainer->pos.x = x; trainer->pos.y = y; trainer->pos.height = GetLinkPlayerElevation(linkPlayerId); - trainer->field_C = MapGridGetMetatileBehaviorAt(x, y); + trainer->metatileBehavior = MapGridGetMetatileBehaviorAt(x, y); } -static bool32 sub_8087340(struct TradeRoomPlayer *player) +static bool32 IsCableClubPlayerUnfrozen(struct CableClubPlayer *player) { - u8 v1 = player->c; - if (v1 == MOVEMENT_MODE_SCRIPTED || v1 == MOVEMENT_MODE_FREE) + u8 mode = player->movementMode; + if (mode == MOVEMENT_MODE_SCRIPTED || mode == MOVEMENT_MODE_FREE) return TRUE; else return FALSE; } -// Duplicate function. -static bool32 sub_8087340_2(struct TradeRoomPlayer *player) +// Identical to IsCableClubPlayerUnfrozen +static bool32 CanCableClubPlayerPressStart(struct CableClubPlayer *player) { - u8 v1 = player->c; - if (v1 == MOVEMENT_MODE_SCRIPTED || v1 == MOVEMENT_MODE_FREE) + u8 mode = player->movementMode; + if (mode == MOVEMENT_MODE_SCRIPTED || mode == MOVEMENT_MODE_FREE) return TRUE; else return FALSE; } -static u8 *TryGetTileEventScript(struct TradeRoomPlayer *player) +static u8 *TryGetTileEventScript(struct CableClubPlayer *player) { - if (player->c != MOVEMENT_MODE_SCRIPTED) + if (player->movementMode != MOVEMENT_MODE_SCRIPTED) return FACING_NONE; return GetCoordEventScriptAtMapPosition(&player->pos); } -static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *player) +static bool32 PlayerIsAtSouthExit(struct CableClubPlayer *player) { - if (player->c != MOVEMENT_MODE_SCRIPTED && player->c != MOVEMENT_MODE_FREE) + if (player->movementMode != MOVEMENT_MODE_SCRIPTED && player->movementMode != MOVEMENT_MODE_FREE) return FALSE; - else if (!MetatileBehavior_IsSouthArrowWarp(player->field_C)) + else if (!MetatileBehavior_IsSouthArrowWarp(player->metatileBehavior)) return FALSE; else if (player->facing != DIR_SOUTH) return FALSE; @@ -2724,12 +2737,12 @@ static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *player) return TRUE; } -static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) +static const u8 *TryInteractWithPlayer(struct CableClubPlayer *player) { struct MapPosition otherPlayerPos; u8 linkPlayerId; - if (player->c != MOVEMENT_MODE_FREE && player->c != MOVEMENT_MODE_SCRIPTED) + if (player->movementMode != MOVEMENT_MODE_FREE && player->movementMode != MOVEMENT_MODE_SCRIPTED) return FACING_NONE; otherPlayerPos = player->pos; @@ -2742,7 +2755,7 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) { if (!player->isLocalPlayer) return CableClub_EventScript_TooBusyToNotice; - else if (sPlayerTradingStates[linkPlayerId] != PLAYER_TRADING_STATE_IDLE) + else if (sPlayerLinkStates[linkPlayerId] != PLAYER_LINK_STATE_IDLE) return CableClub_EventScript_TooBusyToNotice; else if (!GetLinkTrainerCardColor(linkPlayerId)) return CableClub_EventScript_ReadTrainerCard; @@ -2750,7 +2763,7 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) return CableClub_EventScript_ReadTrainerCardColored; } - return GetInteractedLinkPlayerScript(&otherPlayerPos, player->field_C, player->facing); + return GetInteractedLinkPlayerScript(&otherPlayerPos, player->metatileBehavior, player->facing); } // This returns which direction to force the player to look when one of @@ -2785,7 +2798,7 @@ static u16 GetDirectionForEventScript(const u8 *script) return FACING_NONE; } -static void sub_8087510(void) +static void InitLinkPlayerQueueScript(void) { ScriptContext2_Enable(); } @@ -2797,17 +2810,17 @@ static void InitLinkRoomStartMenuScript(void) ScriptContext2_Enable(); } -static void sub_8087530(const u8 *script) +static void RunInteractLocalPlayerScript(const u8 *script) { PlaySE(SE_SELECT); ScriptContext1_SetupScript(script); ScriptContext2_Enable(); } -static void CreateConfirmLeaveTradeRoomPrompt(void) +static void RunConfirmLeaveCableClubScript(void) { PlaySE(SE_WIN_OPEN); - ScriptContext1_SetupScript(EventScript_ConfirmLeaveTradeRoom); + ScriptContext1_SetupScript(EventScript_ConfirmLeaveCableClubRoom); ScriptContext2_Enable(); } @@ -2824,18 +2837,18 @@ static void RunTerminateLinkScript(void) ScriptContext2_Enable(); } -bool32 sub_8087598(void) +bool32 Overworld_LinkRecvQueueLengthMoreThan2(void) { if (!IsUpdateLinkStateCBActive()) return FALSE; if (GetLinkRecvQueueLength() >= 3) - sUnknown_03000E18 = TRUE; + sReceivingFromLink = TRUE; else - sUnknown_03000E18 = FALSE; - return sUnknown_03000E18; + sReceivingFromLink = FALSE; + return sReceivingFromLink; } -bool32 sub_80875C8(void) +bool32 Overworld_RecvKeysFromLinkIsRunning(void) { u8 temp; @@ -2850,8 +2863,8 @@ bool32 sub_80875C8(void) else if (sPlayerKeyInterceptCallback != KeyInterCB_DeferToEventScript) return FALSE; - temp = sUnknown_03000E18; - sUnknown_03000E18 = FALSE; + temp = sReceivingFromLink; + sReceivingFromLink = FALSE; if (temp == TRUE) return TRUE; @@ -2861,7 +2874,7 @@ bool32 sub_80875C8(void) return FALSE; } -bool32 sub_8087634(void) +bool32 Overworld_SendKeysToLinkIsRunning(void) { if (GetLinkSendQueueLength() < 2) return FALSE; @@ -2875,7 +2888,7 @@ bool32 sub_8087634(void) return FALSE; } -bool32 sub_808766C(void) +bool32 IsSendingKeysOverCable(void) { if (gWirelessCommType != 0) return FALSE; @@ -2924,15 +2937,15 @@ static void SpawnLinkPlayerObjectEvent(u8 linkPlayerId, s16 x, s16 y, u8 gender) ZeroLinkPlayerObjectEvent(linkPlayerObjEvent); ZeroObjectEvent(objEvent); - linkPlayerObjEvent->active = 1; + linkPlayerObjEvent->active = TRUE; linkPlayerObjEvent->linkPlayerId = linkPlayerId; linkPlayerObjEvent->objEventId = objEventId; linkPlayerObjEvent->movementMode = MOVEMENT_MODE_FREE; - objEvent->active = 1; + objEvent->active = TRUE; linkGender(objEvent) = gender; linkDirection(objEvent) = DIR_NORTH; - objEvent->spriteId = 64; + objEvent->spriteId = MAX_SPRITES; InitLinkPlayerObjectEventPos(objEvent, x, y); } @@ -2948,7 +2961,7 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1 ObjectEventUpdateZCoord(objEvent); } -static void sub_80877DC(u8 linkPlayerId, u8 dir) +static void SetLinkPlayerObjectRange(u8 linkPlayerId, u8 dir) { if (gLinkPlayerObjectEvents[linkPlayerId].active) { @@ -2958,7 +2971,7 @@ static void sub_80877DC(u8 linkPlayerId, u8 dir) } } -static void sub_808780C(u8 linkPlayerId) +static void DestroyLinkPlayerObject(u8 linkPlayerId) { struct LinkPlayerObjectEvent *linkPlayerObjEvent = &gLinkPlayerObjectEvents[linkPlayerId]; u8 objEventId = linkPlayerObjEvent->objEventId; @@ -2999,7 +3012,7 @@ static u8 GetLinkPlayerElevation(u8 linkPlayerId) return objEvent->currentElevation; } -static s32 sub_80878E4(u8 linkPlayerId) +static s32 GetLinkPlayerObjectStepTimer(u8 linkPlayerId) { u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId; struct ObjectEvent *objEvent = &gObjectEvents[objEventId]; @@ -3049,32 +3062,32 @@ static void SetPlayerFacingDirection(u8 linkPlayerId, u8 facing) } -static u8 MovementEventModeCB_Normal(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 a3) +static u8 MovementEventModeCB_Normal(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 dir) { - return gLinkPlayerFacingHandlers[a3](linkPlayerObjEvent, objEvent, a3); + return gLinkPlayerFacingHandlers[dir](linkPlayerObjEvent, objEvent, dir); } -static u8 MovementEventModeCB_Ignored(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 a3) +static u8 MovementEventModeCB_Ignored(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 dir) { return FACING_UP; } -// Duplicate Function -static u8 MovementEventModeCB_Normal_2(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 a3) +// Identical to MovementEventModeCB_Normal +static u8 MovementEventModeCB_Scripted(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 dir) { - return gLinkPlayerFacingHandlers[a3](linkPlayerObjEvent, objEvent, a3); + return gLinkPlayerFacingHandlers[dir](linkPlayerObjEvent, objEvent, dir); } -static bool8 FacingHandler_DoNothing(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 a3) +static bool8 FacingHandler_DoNothing(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 dir) { return FALSE; } -static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 a3) +static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 dir) { s16 x, y; - linkDirection(objEvent) = FlipVerticalAndClearForced(a3, linkDirection(objEvent)); + linkDirection(objEvent) = FlipVerticalAndClearForced(dir, linkDirection(objEvent)); ObjectEventMoveDestCoords(objEvent, linkDirection(objEvent), &x, &y); if (LinkPlayerDetectCollision(linkPlayerObjEvent->objEventId, linkDirection(objEvent), x, y)) @@ -3090,9 +3103,9 @@ static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayer } } -static bool8 FacingHandler_ForcedFacingChange(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 a3) +static bool8 FacingHandler_ForcedFacingChange(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 dir) { - linkDirection(objEvent) = FlipVerticalAndClearForced(a3, linkDirection(objEvent)); + linkDirection(objEvent) = FlipVerticalAndClearForced(dir, linkDirection(objEvent)); return FALSE; } @@ -3189,8 +3202,8 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) { struct LinkPlayerObjectEvent *linkPlayerObjEvent = &gLinkPlayerObjectEvents[sprite->data[0]]; struct ObjectEvent *objEvent = &gObjectEvents[linkPlayerObjEvent->objEventId]; - sprite->pos1.x = objEvent->initialCoords.x; - sprite->pos1.y = objEvent->initialCoords.y; + sprite->x = objEvent->initialCoords.x; + sprite->y = objEvent->initialCoords.y; SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); sprite->oam.priority = ZCoordToPriority(objEvent->previousElevation); @@ -3199,7 +3212,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(linkDirection(objEvent))); - UpdateObjectEventSpriteVisibility(sprite, 0); + UpdateObjectEventSpriteInvisibility(sprite, 0); if (objEvent->triggerGroundEffectsOnMove) { sprite->invisible = ((sprite->data[7] & 4) >> 2); diff --git a/src/palette.c b/src/palette.c index 320e11ecc3..cbaae8da28 100644 --- a/src/palette.c +++ b/src/palette.c @@ -60,7 +60,7 @@ ALIGNED(4) EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0}; ALIGNED(4) EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0}; EWRAM_DATA struct PaletteStruct sPaletteStructs[0x10] = {0}; EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0}; -static EWRAM_DATA u32 gFiller_2037FE0 = 0; +static EWRAM_DATA u32 sFiller = 0; static EWRAM_DATA u32 sPlttBufferTransferPending = 0; EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0}; @@ -624,7 +624,7 @@ static u8 UpdateFastPaletteFade(void) if (b < b0) b = b0; - gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + gPlttBufferFaded[i] = RGB(r, g, b); } break; case FAST_FADE_OUT_TO_WHITE: @@ -642,7 +642,7 @@ static u8 UpdateFastPaletteFade(void) if (b > 31) b = 31; - gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + gPlttBufferFaded[i] = RGB(r, g, b); } break; case FAST_FADE_IN_FROM_BLACK: @@ -668,7 +668,7 @@ static u8 UpdateFastPaletteFade(void) if (b > b0) b = b0; - gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + gPlttBufferFaded[i] = RGB(r, g, b); } break; case FAST_FADE_OUT_TO_BLACK: @@ -686,7 +686,7 @@ static u8 UpdateFastPaletteFade(void) if (b < 0) b = 0; - gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + gPlttBufferFaded[i] = RGB(r, g, b); } } @@ -856,13 +856,13 @@ void TintPalette_GrayScale(u16 *palette, u16 count) for (i = 0; i < count; i++) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - *palette++ = (gray << 10) | (gray << 5) | (gray << 0); + *palette++ = RGB2(gray, gray, gray); } } @@ -873,18 +873,18 @@ void TintPalette_GrayScale2(u16 *palette, u16 count) for (i = 0; i < count; i++) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - if (gray > 0x1F) - gray = 0x1F; + if (gray > 31) + gray = 31; gray = sRoundedDownGrayscaleMap[gray]; - *palette++ = (gray << 10) | (gray << 5) | (gray << 0); + *palette++ = RGB2(gray, gray, gray); } } @@ -895,9 +895,9 @@ void TintPalette_SepiaTone(u16 *palette, u16 count) for (i = 0; i < count; i++) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; @@ -908,7 +908,7 @@ void TintPalette_SepiaTone(u16 *palette, u16 count) if (r > 31) r = 31; - *palette++ = (b << 10) | (g << 5) | (r << 0); + *palette++ = RGB2(r, g, b); } } @@ -919,9 +919,9 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b for (i = 0; i < count; i++) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; @@ -936,7 +936,7 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b if (b > 31) b = 31; - *palette++ = (b << 10) | (g << 5) | (r << 0); + *palette++ = RGB2(r, g, b); } } @@ -1002,7 +1002,7 @@ static void DestroyBlendPalettesGraduallyTask(void) while (1) { taskId = FindTaskIdByFunc(Task_BlendPalettesGradually); - if (taskId == 0xFF) + if (taskId == TASK_NONE) break; DestroyTask(taskId); } diff --git a/src/party_menu.c b/src/party_menu.c index 8e30f7733c..34b038861c 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -151,7 +151,7 @@ static EWRAM_DATA u16 *sSlot1TilemapBuffer = 0; // for switching party slots static EWRAM_DATA u16 *sSlot2TilemapBuffer = 0; // EWRAM_DATA u8 gSelectedOrderFromParty[MAX_FRONTIER_PARTY_SIZE] = {0}; static EWRAM_DATA u16 sPartyMenuItemId = 0; -static EWRAM_DATA u16 sUnused_0203CEFE = 0; +static EWRAM_DATA u16 sUnused = 0; EWRAM_DATA u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2] = {0}; // bits 0-3 are the current pos of Slot 1, 4-7 are Slot 2, and so on // IWRAM common @@ -443,7 +443,7 @@ static void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCurs for (i = 0; i < ARRAY_COUNT(sPartyMenuInternal->data); i++) sPartyMenuInternal->data[i] = 0; for (i = 0; i < ARRAY_COUNT(sPartyMenuInternal->windowId); i++) - sPartyMenuInternal->windowId[i] = 0xFF; + sPartyMenuInternal->windowId[i] = WINDOW_NONE; if (!keepCursorPos) gPartyMenu.slotId = 0; @@ -589,12 +589,12 @@ static bool8 ShowPartyMenu(void) gMain.state++; break; case 21: - BlendPalettes(0xFFFFFFFF, 16, 0); + BlendPalettes(PALETTES_ALL, 16, 0); gPaletteFade.bufferTransferDisabled = FALSE; gMain.state++; break; case 22: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gMain.state++; break; default: @@ -607,7 +607,7 @@ static bool8 ShowPartyMenu(void) static void ExitPartyMenu(void) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); CreateTask(Task_ExitPartyMenu, 0); SetVBlankCallback(VBlankCB_PartyMenu); SetMainCallback2(CB2_UpdatePartyMenu); @@ -731,10 +731,10 @@ static void InitPartyMenuBoxes(u8 layout) sPartyMenuBoxes[i].infoRects = &sPartyBoxInfoRects[PARTY_BOX_RIGHT_COLUMN]; sPartyMenuBoxes[i].spriteCoords = sPartyMenuSpriteCoords[layout][i]; sPartyMenuBoxes[i].windowId = i; - sPartyMenuBoxes[i].monSpriteId = 0xFF; - sPartyMenuBoxes[i].itemSpriteId = 0xFF; - sPartyMenuBoxes[i].pokeballSpriteId = 0xFF; - sPartyMenuBoxes[i].statusSpriteId = 0xFF; + sPartyMenuBoxes[i].monSpriteId = SPRITE_NONE; + sPartyMenuBoxes[i].itemSpriteId = SPRITE_NONE; + sPartyMenuBoxes[i].pokeballSpriteId = SPRITE_NONE; + sPartyMenuBoxes[i].statusSpriteId = SPRITE_NONE; } // The first party mon goes in the left column sPartyMenuBoxes[0].infoRects = &sPartyBoxInfoRects[PARTY_BOX_LEFT_COLUMN]; @@ -915,7 +915,7 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot) DisplayPartyPokemonDataToTeachMove(slot, item, 0); break; case 2: // Evolution stone - if (!GetMonData(currentPokemon, MON_DATA_IS_EGG) && GetEvolutionTargetSpecies(currentPokemon, 3, item) != SPECIES_NONE) + if (!GetMonData(currentPokemon, MON_DATA_IS_EGG) && GetEvolutionTargetSpecies(currentPokemon, EVO_MODE_ITEM_CHECK, item) != SPECIES_NONE) return FALSE; DisplayPartyPokemonDescriptionData(slot, PARTYBOX_DESC_NO_USE); break; @@ -955,7 +955,7 @@ static void DisplayPartyPokemonDataForMultiBattle(u8 slot) menuBox->infoRects->blitFunc(menuBox->windowId, 0, 0, 0, 0, FALSE); StringCopy(gStringVar1, gMultiPartnerParty[actualSlot].nickname); StringGetEnd10(gStringVar1); - sub_81DB52C(gStringVar1); + ConvertInternationalPlayerName(gStringVar1); DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, menuBox->infoRects->dimensions); DisplayPartyPokemonLevel(gMultiPartnerParty[actualSlot].level, menuBox); DisplayPartyPokemonGender(gMultiPartnerParty[actualSlot].gender, gMultiPartnerParty[actualSlot].species, gMultiPartnerParty[actualSlot].nickname, menuBox); @@ -1148,7 +1148,7 @@ static void SwapPartyPokemon(struct Pokemon *mon1, struct Pokemon *mon2) static void Task_ClosePartyMenu(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_ClosePartyMenuAndSetCB2; } @@ -1221,16 +1221,16 @@ static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) } else { - switch (gPartyMenu.action - 3) + switch (gPartyMenu.action) { - case PARTY_ACTION_SOFTBOILED - 3: + case PARTY_ACTION_SOFTBOILED: if (IsSelectedMonNotEgg((u8*)slotPtr)) { PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); Task_TryUseSoftboiledOnPartyMon(taskId); } break; - case PARTY_ACTION_USE_ITEM - 3: + case PARTY_ACTION_USE_ITEM: if (IsSelectedMonNotEgg((u8*)slotPtr)) { if (gPartyMenu.menuType == PARTY_MENU_TYPE_IN_BATTLE) @@ -1240,7 +1240,7 @@ static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) gItemUseCB(taskId, Task_ClosePartyMenuAfterText); } break; - case PARTY_ACTION_MOVE_TUTOR - 3: + case PARTY_ACTION_MOVE_TUTOR: if (IsSelectedMonNotEgg((u8*)slotPtr)) { PlaySE(SE_SELECT); @@ -1248,7 +1248,7 @@ static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) TryTutorSelectedMon(taskId); } break; - case PARTY_ACTION_GIVE_MAILBOX_MAIL - 3: + case PARTY_ACTION_GIVE_MAILBOX_MAIL: if (IsSelectedMonNotEgg((u8*)slotPtr)) { PlaySE(SE_SELECT); @@ -1256,8 +1256,8 @@ static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) TryGiveMailToSelectedMon(taskId); } break; - case PARTY_ACTION_GIVE_ITEM - 3: - case PARTY_ACTION_GIVE_PC_ITEM - 3: + case PARTY_ACTION_GIVE_ITEM: + case PARTY_ACTION_GIVE_PC_ITEM: if (IsSelectedMonNotEgg((u8*)slotPtr)) { PlaySE(SE_SELECT); @@ -1265,23 +1265,23 @@ static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) TryGiveItemOrMailToSelectedMon(taskId); } break; - case PARTY_ACTION_SWITCH - 3: + case PARTY_ACTION_SWITCH: PlaySE(SE_SELECT); SwitchSelectedMons(taskId); break; - case PARTY_ACTION_CHOOSE_AND_CLOSE - 3: + case PARTY_ACTION_CHOOSE_AND_CLOSE: PlaySE(SE_SELECT); Task_ClosePartyMenu(taskId); break; - case PARTY_ACTION_MINIGAME - 3: + case PARTY_ACTION_MINIGAME: if (IsSelectedMonNotEgg((u8*)slotPtr)) { TryEnterMonForMinigame(taskId, (u8)*slotPtr); } break; default: - case PARTY_ACTION_ABILITY_PREVENTS - 3: - case PARTY_ACTION_SWITCHING - 3: + case PARTY_ACTION_ABILITY_PREVENTS: + case PARTY_ACTION_SWITCHING: PlaySE(SE_SELECT); Task_TryCreateSelectionWindow(taskId); break; @@ -1961,9 +1961,9 @@ static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor) if (GetMonData(mon, MON_DATA_IS_EGG)) return CANNOT_LEARN_MOVE_IS_EGG; - if (item >= ITEM_TM01_FOCUS_PUNCH) + if (item >= ITEM_TM01) { - if (!CanMonLearnTMHM(mon, item - ITEM_TM01_FOCUS_PUNCH)) + if (!CanMonLearnTMHM(mon, item - ITEM_TM01)) return CANNOT_LEARN_MOVE; else move = ItemIdToBattleMoveId(item); @@ -2371,11 +2371,11 @@ static void DisplayPartyPokemonDescriptionText(u8 stringID, struct PartyMenuBox static void PartyMenuRemoveWindow(u8 *ptr) { - if (*ptr != 0xFF) + if (*ptr != WINDOW_NONE) { ClearStdWindowAndFrameToTransparent(*ptr, 0); RemoveWindow(*ptr); - *ptr = 0xFF; + *ptr = WINDOW_NONE; ScheduleBgCopyTilemapToVram(2); } } @@ -2384,7 +2384,7 @@ void DisplayPartyMenuStdMessage(u32 stringId) { u8 *windowPtr = &sPartyMenuInternal->windowId[1]; - if (*windowPtr != 0xFF) + if (*windowPtr != WINDOW_NONE) PartyMenuRemoveWindow(windowPtr); if (stringId != PARTY_MSG_NONE) @@ -2703,11 +2703,11 @@ static void CB2_ShowPokemonSummaryScreen(void) if (gPartyMenu.menuType == PARTY_MENU_TYPE_IN_BATTLE) { UpdatePartyToBattleOrder(); - ShowPokemonSummaryScreen(PSS_MODE_LOCK_MOVES, gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuFromSummaryScreen); + ShowPokemonSummaryScreen(SUMMARY_MODE_LOCK_MOVES, gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuFromSummaryScreen); } else { - ShowPokemonSummaryScreen(PSS_MODE_NORMAL, gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuFromSummaryScreen); + ShowPokemonSummaryScreen(SUMMARY_MODE_NORMAL, gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuFromSummaryScreen); } } @@ -2831,10 +2831,10 @@ static void MoveAndBufferPartySlot(const void *rectSrc, s16 x, s16 y, s16 width, static void MovePartyMenuBoxSprites(struct PartyMenuBox *menuBox, s16 offset) { - gSprites[menuBox->pokeballSpriteId].pos2.x += offset * 8; - gSprites[menuBox->itemSpriteId].pos2.x += offset * 8; - gSprites[menuBox->monSpriteId].pos2.x += offset * 8; - gSprites[menuBox->statusSpriteId].pos2.x += offset * 8; + gSprites[menuBox->pokeballSpriteId].x2 += offset * 8; + gSprites[menuBox->itemSpriteId].x2 += offset * 8; + gSprites[menuBox->monSpriteId].x2 += offset * 8; + gSprites[menuBox->statusSpriteId].x2 += offset * 8; } static void SlidePartyMenuBoxSpritesOneStep(u8 taskId) @@ -2924,18 +2924,18 @@ static void SwitchMenuBoxSprites(u8 *spriteIdPtr1, u8 *spriteIdPtr2) *spriteIdPtr1 = *spriteIdPtr2; *spriteIdPtr2 = spriteIdBuffer; - xBuffer1 = gSprites[*spriteIdPtr1].pos1.x; - yBuffer1 = gSprites[*spriteIdPtr1].pos1.y; - xBuffer2 = gSprites[*spriteIdPtr1].pos2.x; - yBuffer2 = gSprites[*spriteIdPtr1].pos2.y; - gSprites[*spriteIdPtr1].pos1.x = gSprites[*spriteIdPtr2].pos1.x; - gSprites[*spriteIdPtr1].pos1.y = gSprites[*spriteIdPtr2].pos1.y; - gSprites[*spriteIdPtr1].pos2.x = gSprites[*spriteIdPtr2].pos2.x; - gSprites[*spriteIdPtr1].pos2.y = gSprites[*spriteIdPtr2].pos2.y; - gSprites[*spriteIdPtr2].pos1.x = xBuffer1; - gSprites[*spriteIdPtr2].pos1.y = yBuffer1; - gSprites[*spriteIdPtr2].pos2.x = xBuffer2; - gSprites[*spriteIdPtr2].pos2.y = yBuffer2; + xBuffer1 = gSprites[*spriteIdPtr1].x; + yBuffer1 = gSprites[*spriteIdPtr1].y; + xBuffer2 = gSprites[*spriteIdPtr1].x2; + yBuffer2 = gSprites[*spriteIdPtr1].y2; + gSprites[*spriteIdPtr1].x = gSprites[*spriteIdPtr2].x; + gSprites[*spriteIdPtr1].y = gSprites[*spriteIdPtr2].y; + gSprites[*spriteIdPtr1].x2 = gSprites[*spriteIdPtr2].x2; + gSprites[*spriteIdPtr1].y2 = gSprites[*spriteIdPtr2].y2; + gSprites[*spriteIdPtr2].x = xBuffer1; + gSprites[*spriteIdPtr2].y = yBuffer1; + gSprites[*spriteIdPtr2].x2 = xBuffer2; + gSprites[*spriteIdPtr2].y2 = yBuffer2; } static void SwitchPartyMon(void) @@ -3020,7 +3020,7 @@ static void CB2_SelectBagItemToGive(void) if (InBattlePyramid() == FALSE) GoToBagMenu(ITEMMENULOCATION_PARTY, POCKETS_COUNT, CB2_GiveHoldItem); else - GoToBattlePyramidBagMenu(2, CB2_GiveHoldItem); + GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PARTY, CB2_GiveHoldItem); } static void CB2_GiveHoldItem(void) @@ -3520,9 +3520,9 @@ static void CursorCb_Register(u8 taskId) { u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2); u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); - u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE); + u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL); - switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, obedience)) + switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, isEventLegal)) { case CANT_REGISTER_MON: StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow); @@ -3547,8 +3547,8 @@ static void CursorCb_Trade1(u8 taskId) { u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2); u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); - u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE); - u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience); + u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL); + u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, isEventLegal); if (stringId != UR_TRADE_MSG_NONE) { @@ -3905,22 +3905,22 @@ static void AnimateSelectedPartyIcon(u8 spriteId, u8 animNum) gSprites[spriteId].data[0] = 0; if (animNum == 0) { - if (gSprites[spriteId].pos1.x == 16) + if (gSprites[spriteId].x == 16) { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = -4; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = -4; } else { - gSprites[spriteId].pos2.x = -4; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = -4; + gSprites[spriteId].y2 = 0; } gSprites[spriteId].callback = SpriteCB_UpdatePartyMonIcon; } else { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].x2 = 0; + gSprites[spriteId].y2 = 0; gSprites[spriteId].callback = SpriteCB_BouncePartyMonIcon; } } @@ -3932,9 +3932,9 @@ static void SpriteCB_BouncePartyMonIcon(struct Sprite *sprite) if (animCmd != 0) { if (animCmd & 1) // % 2 also matches - sprite->pos2.y = -3; + sprite->y2 = -3; else - sprite->pos2.y = 1; + sprite->y2 = 1; } } @@ -4020,8 +4020,8 @@ static void CreateHeldItemSpriteForTrade(u8 spriteId, bool8 isMail) u8 subpriority = gSprites[spriteId].subpriority; u8 newSpriteId = CreateSprite(&sSpriteTemplate_HeldItem, 250, 170, subpriority - 1); - gSprites[newSpriteId].pos2.x = 4; - gSprites[newSpriteId].pos2.y = 10; + gSprites[newSpriteId].x2 = 4; + gSprites[newSpriteId].y2 = 10; gSprites[newSpriteId].callback = SpriteCB_HeldItem; gSprites[newSpriteId].data[7] = spriteId; StartSpriteAnim(&gSprites[newSpriteId], isMail); @@ -4039,8 +4039,8 @@ static void SpriteCB_HeldItem(struct Sprite *sprite) else { sprite->invisible = FALSE; - sprite->pos1.x = gSprites[otherSpriteId].pos1.x + gSprites[otherSpriteId].pos2.x; - sprite->pos1.y = gSprites[otherSpriteId].pos1.y + gSprites[otherSpriteId].pos2.y; + sprite->x = gSprites[otherSpriteId].x + gSprites[otherSpriteId].x2; + sprite->y = gSprites[otherSpriteId].y + gSprites[otherSpriteId].y2; } } @@ -4087,15 +4087,15 @@ static void SpriteCB_BounceConfirmCancelButton(u8 spriteId, u8 spriteId2, u8 ani { StartSpriteAnim(&gSprites[spriteId], 2); StartSpriteAnim(&gSprites[spriteId2], 4); - gSprites[spriteId].pos2.y = 0; - gSprites[spriteId2].pos2.y = 0; + gSprites[spriteId].y2 = 0; + gSprites[spriteId2].y2 = 0; } else { StartSpriteAnim(&gSprites[spriteId], 3); StartSpriteAnim(&gSprites[spriteId2], 5); - gSprites[spriteId].pos2.y = -4; - gSprites[spriteId2].pos2.y = 4; + gSprites[spriteId].y2 = -4; + gSprites[spriteId2].y2 = 4; } } @@ -4203,7 +4203,7 @@ static void CB2_ReturnToBagMenu(void) if (InBattlePyramid() == FALSE) GoToBagMenu(ITEMMENULOCATION_LAST, POCKETS_COUNT, NULL); else - GoToBattlePyramidBagMenu(4, gPyramidBagCursorData.callback); + GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PREV, gPyramidBagMenuState.exitCallback); } static void Task_SetSacredAshCB(u8 taskId) @@ -4612,7 +4612,7 @@ void ItemUseCB_PPUp(u8 taskId, TaskFunc task) u16 ItemIdToBattleMoveId(u16 item) { - u16 tmNumber = item - ITEM_TM01_FOCUS_PUNCH; + u16 tmNumber = item - ITEM_TM01; return sTMHMMoves[tmNumber]; } @@ -4904,7 +4904,7 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) else { gPartyMenuUseExitCallback = TRUE; - PlayFanfareByFanfareNum(0); + PlayFanfareByFanfareNum(FANFARE_LEVEL_UP); UpdateMonDisplayInfoAfterRareCandy(gPartyMenu.slotId, mon); RemoveBagItem(gSpecialVar_ItemId, 1); GetMonNickname(mon, gStringVar1); @@ -4954,7 +4954,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId) s16 *arrayPtr = sPartyMenuInternal->data; arrayPtr[12] = CreateLevelUpStatsWindow(); - DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); + DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); CopyWindowToVram(arrayPtr[12], 2); ScheduleBgCopyTilemapToVram(2); } @@ -4963,7 +4963,7 @@ static void DisplayLevelUpStatsPg2(u8 taskId) { s16 *arrayPtr = sPartyMenuInternal->data; - DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); + DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); CopyWindowToVram(arrayPtr[12], 2); ScheduleBgCopyTilemapToVram(2); } @@ -5018,13 +5018,13 @@ static void Task_TryLearningNextMove(u8 taskId) static void PartyMenuTryEvolution(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 targetSpecies = GetEvolutionTargetSpecies(mon, 0, 0); + u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, ITEM_NONE); if (targetSpecies != SPECIES_NONE) { FreePartyPointers(); gCB2_AfterEvolution = gPartyMenu.exitCallback; - BeginEvolutionScene(mon, targetSpecies, 1, gPartyMenu.slotId); + BeginEvolutionScene(mon, targetSpecies, TRUE, gPartyMenu.slotId); DestroyTask(taskId); } else @@ -5236,7 +5236,7 @@ u8 GetItemEffectType(u16 item) return ITEM_EFFECT_PP_UP; else if (itemEffect[5] & ITEM5_PP_MAX) return ITEM_EFFECT_PP_MAX; - else if (itemEffect[4] & (ITEM4_HEAL_PP_ALL | ITEM4_HEAL_PP_ONE)) + else if (itemEffect[4] & (ITEM4_HEAL_PP | ITEM4_HEAL_PP_ONE)) return ITEM_EFFECT_HEAL_PP; else return ITEM_EFFECT_NONE; @@ -5475,7 +5475,7 @@ static void TryGiveMailToSelectedMon(u8 taskId) struct MailStruct *mail; gPartyMenuUseExitCallback = FALSE; - mail = &gSaveBlock1Ptr->mail[playerPCItemPageInfo.itemsAbove + 6 + playerPCItemPageInfo.cursorPos]; + mail = &gSaveBlock1Ptr->mail[gPlayerPCItemPageInfo.itemsAbove + PARTY_SIZE + gPlayerPCItemPageInfo.cursorPos]; if (GetMonData(mon, MON_DATA_HELD_ITEM) != ITEM_NONE) { DisplayPartyMenuMessage(gText_PkmnHoldingItemCantHoldMail, TRUE); @@ -5701,14 +5701,14 @@ static u8 GetPartyLayoutFromBattleType(void) void OpenPartyMenuInBattle(u8 partyAction) { InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), partyAction, FALSE, PARTY_MSG_CHOOSE_MON, Task_HandleChooseMonInput, CB2_SetUpReshowBattleScreenAfterMenu); - nullsub_35(); + ReshowBattleScreenDummy(); UpdatePartyToBattleOrder(); } void ChooseMonForInBattleItem(void) { InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_USE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, Task_HandleChooseMonInput, CB2_ReturnToBagMenu); - nullsub_35(); + ReshowBattleScreenDummy(); UpdatePartyToBattleOrder(); } @@ -5757,7 +5757,7 @@ static bool8 TrySwitchInPokemon(void) StringExpandPlaceholders(gStringVar4, gText_EggCantBattle); return FALSE; } - if (GetPartyIdFromBattleSlot(slot) == gBattleStruct->field_8B) + if (GetPartyIdFromBattleSlot(slot) == gBattleStruct->prevSelectedPartySlot) { GetMonNickname(&gPlayerParty[slot], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_PkmnAlreadySelected); @@ -6099,7 +6099,7 @@ static void Task_WaitAfterMultiPartnerPartySlideIn(u8 taskId) static void MoveMultiPartyMenuBoxSprite(u8 spriteId, s16 x) { if (x >= 0) - gSprites[spriteId].pos2.x = x; + gSprites[spriteId].x2 = x; } static void SlideMultiPartyMenuBoxSpritesOneStep(u8 taskId) @@ -6269,7 +6269,7 @@ static void Task_BattlePyramidChooseMonHeldItems(u8 taskId) void MoveDeleterChooseMoveToForget(void) { - ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, gPlayerParty, gSpecialVar_0x8004, gPlayerPartyCount - 1, CB2_ReturnToField); + ShowPokemonSummaryScreen(SUMMARY_MODE_SELECT_MOVE, gPlayerParty, gSpecialVar_0x8004, gPlayerPartyCount - 1, CB2_ReturnToField); gFieldCallback = FieldCB_ContinueScriptHandleMusic; } diff --git a/src/player_pc.c b/src/player_pc.c index 928aac706c..301b8c3620 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -30,24 +30,79 @@ #include "window.h" #include "menu_specialized.h" -// structures -struct Struct203BCC4 -{ - struct ListMenuItem unk0[51]; - u8 unk198[51][0x18]; - u8 windowIds[6]; - u8 unk666; - u8 spriteId; - u8 spriteIds[7]; +// Top level PC menu options +enum { + MENU_ITEMSTORAGE, + MENU_MAILBOX, + MENU_DECORATION, + MENU_TURNOFF +}; + +// Item storage menu options +enum { + MENU_WITHDRAW, + MENU_DEPOSIT, + MENU_TOSS, + MENU_EXIT +}; + +// Windows for the main menus (top level menu, and item storage menu) +enum { + WIN_MAIN_MENU, + WIN_MAIN_MENU_BEDROOM, + WIN_ITEM_STORAGE_MENU, +}; + +// Windows for item storage (while viewing the PC's item inventory) +enum { + ITEMPC_WIN_LIST, + ITEMPC_WIN_MESSAGE, + ITEMPC_WIN_ICON, + ITEMPC_WIN_TITLE, + ITEMPC_WIN_QUANTITY, + ITEMPC_WIN_YESNO, + ITEMPC_WIN_COUNT +}; + // When showing the main list, the first window to this window are drawn +#define ITEMPC_WIN_LIST_END ITEMPC_WIN_TITLE + +// Message IDs for Item Storage +enum { + MSG_SWITCH_WHICH_ITEM = 0xFFF7, + MSG_OKAY_TO_THROW_AWAY, + MSG_TOO_IMPORTANT, + MSG_NO_MORE_ROOM, + MSG_THREW_AWAY_ITEM, + MSG_HOW_MANY_TO_TOSS, + MSG_WITHDREW_ITEM, + MSG_HOW_MANY_TO_WITHDRAW, + MSG_GO_BACK_TO_PREV +}; + +#define TAG_ITEM_ICON 5110 +#define TAG_SCROLL_ARROW 5112 + +// Item list ID for toSwapPos to indicate an item is not currently being swapped +#define NOT_SWAPPING 0xFF + +#define SWAP_LINE_LENGTH 7 + +struct ItemStorageMenu +{ + struct ListMenuItem listItems[PC_ITEMS_COUNT + 1]; + u8 itemNames[PC_ITEMS_COUNT + 1][ITEM_NAME_LENGTH + 10]; + u8 windowIds[ITEMPC_WIN_COUNT]; + u8 toSwapPos; + u8 spriteId; + u8 swapLineSpriteIds[SWAP_LINE_LENGTH]; }; -// static functions static void InitPlayerPCMenu(u8 taskId); static void PlayerPCProcessMenuInput(u8 taskId); static void InitItemStorageMenu(u8 taskId, u8 var); static u8 GetMailboxMailCount(void); -static void Mailbox_UpdateMailList(void); +static void Mailbox_CompactMailList(void); static void Mailbox_DrawMailboxMenu(u8 taskId); static void Mailbox_ProcessInput(u8 taskId); static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId); @@ -67,15 +122,14 @@ static void Mailbox_Give(u8 taskId); static void Mailbox_Cancel(u8 taskId); static void Mailbox_CancelMoveToBag(u8 taskId); -static void Mailbox_MoveToBagYesNoPrompt(u8 taskId); -static void Mailbox_DrawYesNoBeforeMove(u8 taskId); +static void Mailbox_HandleConfirmMoveToBag(u8 taskId); +static void Mailbox_AskConfirmMoveToBag(u8 taskId); static void Mailbox_DoGiveMailPokeMenu(u8 taskId); static void Mailbox_NoPokemonForMail(u8 taskId); static void Mailbox_FadeAndReadMail(u8 taskId); static void Mailbox_ReturnToFieldFromReadMail(void); -static void Mailbox_DoRedrawMailboxMenuAfterReturn(void); -static void pal_fill_for_maplights_or_black(void); +static void Mailbox_ReshowAfterMail(void); static void Mailbox_HandleReturnToProcessInput(u8 taskId); static void Mailbox_UpdateMailListAfterDeposit(void); @@ -83,91 +137,92 @@ static void ItemStorage_Withdraw(u8 taskId); static void ItemStorage_Deposit(u8 taskId); static void ItemStorage_Toss(u8 taskId); static void ItemStorage_Exit(u8 taskId); -static void ItemStorage_ResumeInputFromYesToss(u8 taskId); -static void ItemStorage_ResumeInputFromNoToss(u8 taskId); +static void ItemStorage_TossItemYes(u8 taskId); +static void ItemStorage_TossItemNo(u8 taskId); static void ItemStorageMenuPrint(const u8 *); static void ItemStorageMenuProcessInput(u8 taskId); -static void ItemStorage_ProcessWithdrawTossInput(u8 taskId); -static void ItemStorage_SetItemAndMailCount(u8); +static void SetPlayerPCListCount(u8); static void ItemStorage_HandleReturnToProcessInput(u8 taskId); -static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss); +static void ItemStorage_Enter(u8 taskId, bool8 toss); +static void ItemStorage_CreateListMenu(u8 taskId); +static void ItemStorage_ProcessInput(u8 taskId); static void Task_ItemStorage_Deposit(u8 taskId); +static void ItemStorage_ReshowAfterBagMenu(void); static void ItemStorage_DoItemWithdraw(u8 taskId); static void ItemStorage_DoItemToss(u8 taskid); static void ItemStorage_HandleQuantityRolling(u8 taskid); -static void ItemStorage_GoBackToPlayerPCMenu(u8 taskId); -static void ItemStorage_ItemSwapChoosePrompt(u8 taskId); +static void ItemStorage_ExitItemList(u8 taskId); +static void ItemStorage_StartItemSwap(u8 taskId); static void ItemStorage_DoItemAction(u8 taskId); -static void ItemStorage_ProcessInput(u8 taskId); -static void ItemStorage_DoItemSwap(u8 taskId, bool8 a); +static void ItemStorage_FinishItemSwap(u8 taskId, bool8 a); static void ItemStorage_HandleRemoveItem(u8 taskId); -static void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId); -static void ItemStorage_StartScrollIndicatorAndProcessInput(u8 taskId); +static void ItemStorage_HandleErrorMessageInput(u8 taskId); +static void ItemStorage_ReturnToListInput(u8 taskId); -static const u8* ItemStorage_GetItemPcResponse(u16); +static const u8* ItemStorage_GetMessage(u16); static void CopyItemName_PlayerPC(u8 *string, u16 itemId); -static void sub_816BC14(void); -static void sub_816BFE0(u8 y, u8, u8 speed); -static void sub_816BCC4(u8); -static void sub_816C690(u8); -static void sub_816C4FC(u8 taskId); -static void sub_816C0C8(void); -static void sub_816C060(u16 itemId); -static void sub_816BEF0(s32 id); -static void sub_816B4DC(u8 taskId); +static void ItemStorage_Init(void); +static void ItemStorage_DrawSwapArrow(u8 y, u8, u8 speed); +static void ItemStorage_RemoveWindow(u8); +static void ItemStorage_UpdateSwapLinePos(u8); +static void ItemStorage_ProcessItemSwapInput(u8 taskId); +static void ItemStorage_EraseItemIcon(void); +static void ItemStorage_DrawItemIcon(u16 itemId); +static void ItemStorage_PrintDescription(s32 id); +static void ItemStorage_EraseMainMenu(u8 taskId); static void ItemStorage_MoveCursor(s32 id, bool8 b, struct ListMenu * thisMenu); -static void fish4_goto_x5_or_x6(u8 windowId, s32 id, u8 yOffset); +static void ItemStorage_PrintMenuItem(u8 windowId, u32 id, u8 yOffset); -// EWRAM -static EWRAM_DATA const u8 *gPcItemMenuOptionOrder = NULL; -static EWRAM_DATA u8 gPcItemMenuOptionsNum = 0; -EWRAM_DATA struct PlayerPCItemPageStruct playerPCItemPageInfo = {0, 0, 0, 0, {0, 0, 0}, 0}; -static EWRAM_DATA struct Struct203BCC4 *gUnknown_0203BCC4 = NULL; +static EWRAM_DATA const u8 *sTopMenuOptionOrder = NULL; +static EWRAM_DATA u8 sTopMenuNumOptions = 0; +EWRAM_DATA struct PlayerPCItemPageStruct gPlayerPCItemPageInfo = {}; +static EWRAM_DATA struct ItemStorageMenu *sItemStorageMenu = NULL; -// .rodata -static const u8 *const gPCText_OptionDescList[] = +static const u8 *const sItemStorage_OptionDescriptions[] = { - gText_TakeOutItemsFromPC, - gText_StoreItemsInPC, - gText_ThrowAwayItemsInPC, - gText_GoBackPrevMenu, + [MENU_WITHDRAW] = gText_TakeOutItemsFromPC, + [MENU_DEPOSIT] = gText_StoreItemsInPC, + [MENU_TOSS] = gText_ThrowAwayItemsInPC, + [MENU_EXIT] = gText_GoBackPrevMenu, }; static const struct MenuAction sPlayerPCMenuActions[] = { - { gText_ItemStorage, PlayerPC_ItemStorage }, - { gText_Mailbox, PlayerPC_Mailbox }, - { gText_Decoration, PlayerPC_Decoration }, - { gText_TurnOff, PlayerPC_TurnOff } + [MENU_ITEMSTORAGE] = { gText_ItemStorage, PlayerPC_ItemStorage }, + [MENU_MAILBOX] = { gText_Mailbox, PlayerPC_Mailbox }, + [MENU_DECORATION] = { gText_Decoration, PlayerPC_Decoration }, + [MENU_TURNOFF] = { gText_TurnOff, PlayerPC_TurnOff } }; -static const u8 gBedroomPC_OptionOrder[] = +static const u8 sBedroomPC_OptionOrder[] = { - PLAYERPC_MENU_ITEMSTORAGE, - PLAYERPC_MENU_MAILBOX, - PLAYERPC_MENU_DECORATION, - PLAYERPC_MENU_TURNOFF + MENU_ITEMSTORAGE, + MENU_MAILBOX, + MENU_DECORATION, + MENU_TURNOFF }; +#define NUM_BEDROOM_PC_OPTIONS ARRAY_COUNT(sBedroomPC_OptionOrder) -static const u8 gPlayerPC_OptionOrder[] = +static const u8 sPlayerPC_OptionOrder[] = { - PLAYERPC_MENU_ITEMSTORAGE, - PLAYERPC_MENU_MAILBOX, - PLAYERPC_MENU_TURNOFF + MENU_ITEMSTORAGE, + MENU_MAILBOX, + MENU_TURNOFF }; +#define NUM_PLAYER_PC_OPTIONS ARRAY_COUNT(sPlayerPC_OptionOrder) -static const struct MenuAction gPCText_ItemPCOptionsText[] = +static const struct MenuAction sItemStorage_MenuActions[] = { - { gText_WithdrawItem, ItemStorage_Withdraw }, - { gText_DepositItem, ItemStorage_Deposit }, - { gText_TossItem, ItemStorage_Toss }, - { gText_Cancel, ItemStorage_Exit } + [MENU_WITHDRAW] = { gText_WithdrawItem, ItemStorage_Withdraw }, + [MENU_DEPOSIT] = { gText_DepositItem, ItemStorage_Deposit }, + [MENU_TOSS] = { gText_TossItem, ItemStorage_Toss }, + [MENU_EXIT] = { gText_Cancel, ItemStorage_Exit } }; -static const struct ItemSlot gNewGamePCItems[] = +static const struct ItemSlot sNewGamePCItems[] = { { ITEM_POTION, 1 }, { ITEM_NONE, 0 } @@ -175,15 +230,15 @@ static const struct ItemSlot gNewGamePCItems[] = const struct MenuAction gMailboxMailOptions[] = { - { gText_Read, Mailbox_DoMailRead }, + { gText_Read, Mailbox_DoMailRead }, { gText_MoveToBag, Mailbox_MoveToBag }, - { gText_Give2, Mailbox_Give }, - { gText_Cancel2, Mailbox_Cancel } + { gText_Give2, Mailbox_Give }, + { gText_Cancel2, Mailbox_Cancel } }; -static const struct WindowTemplate gUnknown_085DFF24[3] = +static const struct WindowTemplate sWindowTemplates_MainMenus[] = { - { + [WIN_MAIN_MENU] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -192,7 +247,7 @@ static const struct WindowTemplate gUnknown_085DFF24[3] = .paletteNum = 15, .baseBlock = 1 }, - { + [WIN_MAIN_MENU_BEDROOM] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -201,7 +256,7 @@ static const struct WindowTemplate gUnknown_085DFF24[3] = .paletteNum = 15, .baseBlock = 1 }, - { + [WIN_ITEM_STORAGE_MENU] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -212,17 +267,17 @@ static const struct WindowTemplate gUnknown_085DFF24[3] = } }; -static const struct YesNoFuncTable ResumeFromWithdrawYesNoFuncList = // ResumeFromWithdrawYesNoFuncList +static const struct YesNoFuncTable ItemTossYesNoFuncs = { - ItemStorage_ResumeInputFromYesToss, - ItemStorage_ResumeInputFromNoToss + ItemStorage_TossItemYes, + ItemStorage_TossItemNo }; -static const struct ListMenuTemplate gUnknown_085DFF44 = +static const struct ListMenuTemplate sListMenuTemplate_ItemStorage = { .items = NULL, .moveCursorFunc = ItemStorage_MoveCursor, - .itemPrintFunc = fish4_goto_x5_or_x6, + .itemPrintFunc = ItemStorage_PrintMenuItem, .totalItems = 0, .maxShowed = 0, .windowId = 0, @@ -239,9 +294,9 @@ static const struct ListMenuTemplate gUnknown_085DFF44 = .fontId = 7 }; -static const struct WindowTemplate gUnknown_085DFF5C[5] = +static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT] = { - { + [ITEMPC_WIN_LIST] = { .bg = 0, .tilemapLeft = 16, .tilemapTop = 1, @@ -250,7 +305,7 @@ static const struct WindowTemplate gUnknown_085DFF5C[5] = .paletteNum = 15, .baseBlock = 0x0001 }, - { + [ITEMPC_WIN_MESSAGE] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 13, @@ -259,7 +314,7 @@ static const struct WindowTemplate gUnknown_085DFF5C[5] = .paletteNum = 15, .baseBlock = 0x00EB }, - { + [ITEMPC_WIN_ICON] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 8, @@ -268,7 +323,7 @@ static const struct WindowTemplate gUnknown_085DFF5C[5] = .paletteNum = 15, .baseBlock = 0x0153 }, - { + [ITEMPC_WIN_TITLE] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -277,7 +332,7 @@ static const struct WindowTemplate gUnknown_085DFF5C[5] = .paletteNum = 15, .baseBlock = 0x0139 }, - { + [ITEMPC_WIN_QUANTITY] = { .bg = 0, .tilemapLeft = 8, .tilemapTop = 9, @@ -285,61 +340,67 @@ static const struct WindowTemplate gUnknown_085DFF5C[5] = .height = 2, .paletteNum = 15, .baseBlock = 0x015C + }, + [ITEMPC_WIN_YESNO] = { + .bg = 0, + .tilemapLeft = 9, + .tilemapTop = 7, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x0168 } }; -static const struct WindowTemplate gUnknown_085DFF84 = -{ - .bg = 0, - .tilemapLeft = 9, - .tilemapTop = 7, - .width = 5, - .height = 4, - .paletteNum = 15, - .baseBlock = 0x0168 -}; +static const u8 sSwapArrowTextColors[] = {TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_DARK_GRAY}; -static const u8 gUnknown_085DFF8C[] = {0x01, 0x03, 0x02, 0x00}; - -// text +// Macro below is likely a fakematch, equivalent to sNewGamePCItems[i].quantity +#define GET_QUANTITY(i) ((u16)((u16 *)sNewGamePCItems + 1)[i * 2]) void NewGameInitPCItems(void) { - u8 i; - - // because Game Freak don't know how to use a struct or a 2d array - for(i = 0, ClearItemSlots(gSaveBlock1Ptr->pcItems, ARRAY_COUNT(gSaveBlock1Ptr->pcItems)); NEW_GAME_PC_ITEMS(i, PC_ITEM_ID) && NEW_GAME_PC_ITEMS(i, PC_QUANTITY) && - AddPCItem(NEW_GAME_PC_ITEMS(i, PC_ITEM_ID), NEW_GAME_PC_ITEMS(i, PC_QUANTITY)) == TRUE; i++); + u8 i = 0; + ClearItemSlots(gSaveBlock1Ptr->pcItems, PC_ITEMS_COUNT); + for(; sNewGamePCItems[i].itemId != ITEM_NONE && GET_QUANTITY(i) && + AddPCItem(sNewGamePCItems[i].itemId, GET_QUANTITY(i)) == TRUE; i++); } +#undef GET_QUANTITY void BedroomPC(void) { - gPcItemMenuOptionOrder = gBedroomPC_OptionOrder; - gPcItemMenuOptionsNum = 4; + sTopMenuOptionOrder = sBedroomPC_OptionOrder; + sTopMenuNumOptions = NUM_BEDROOM_PC_OPTIONS; DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gText_WhatWouldYouLike, InitPlayerPCMenu); } void PlayerPC(void) { - gPcItemMenuOptionOrder = gPlayerPC_OptionOrder; - gPcItemMenuOptionsNum = 3; + sTopMenuOptionOrder = sPlayerPC_OptionOrder; + sTopMenuNumOptions = NUM_PLAYER_PC_OPTIONS; DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gText_WhatWouldYouLike, InitPlayerPCMenu); } +#define tUsedSlots data[1] +#define tQuantity data[2] +#define tInTossMenu data[3] +#define tWindowId data[4] +#define tListTaskId data[5] + static void InitPlayerPCMenu(u8 taskId) { u16 *data; struct WindowTemplate windowTemplate; - data = gTasks[taskId].data; - if (gPcItemMenuOptionsNum == 3) - windowTemplate = gUnknown_085DFF24[0]; - else - windowTemplate = gUnknown_085DFF24[1]; - windowTemplate.width = sub_81DB3D8(sPlayerPCMenuActions, gPcItemMenuOptionOrder, gPcItemMenuOptionsNum); - data[4] = AddWindow(&windowTemplate); - SetStandardWindowBorderStyle(data[4], 0); - sub_81995E4(data[4], gPcItemMenuOptionsNum, sPlayerPCMenuActions, gPcItemMenuOptionOrder); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[4], gPcItemMenuOptionsNum, 0); + + if (sTopMenuNumOptions == NUM_PLAYER_PC_OPTIONS) + windowTemplate = sWindowTemplates_MainMenus[WIN_MAIN_MENU]; + else // Bedroom PC + windowTemplate = sWindowTemplates_MainMenus[WIN_MAIN_MENU_BEDROOM]; + + windowTemplate.width = sub_81DB3D8(sPlayerPCMenuActions, sTopMenuOptionOrder, sTopMenuNumOptions); + tWindowId = AddWindow(&windowTemplate); + SetStandardWindowBorderStyle(tWindowId, 0); + sub_81995E4(tWindowId, sTopMenuNumOptions, sPlayerPCMenuActions, sTopMenuOptionOrder); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tWindowId, sTopMenuNumOptions, 0); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = PlayerPCProcessMenuInput; } @@ -350,30 +411,30 @@ static void PlayerPCProcessMenuInput(u8 taskId) s8 inputOptionId; data = gTasks[taskId].data; - if (gPcItemMenuOptionsNum > 3) + if (sTopMenuNumOptions > 3) inputOptionId = Menu_ProcessInput(); else inputOptionId = Menu_ProcessInputNoWrap(); switch (inputOptionId) { - case MENU_NOTHING_CHOSEN: - break; - case MENU_B_PRESSED: - PlaySE(SE_SELECT); - ClearStdWindowAndFrameToTransparent(data[4], FALSE); - ClearWindowTilemap(data[4]); - RemoveWindow(data[4]); - ScheduleBgCopyTilemapToVram(0); - gTasks[taskId].func = PlayerPC_TurnOff; - break; - default: - ClearStdWindowAndFrameToTransparent(data[4], FALSE); - ClearWindowTilemap(data[4]); - RemoveWindow(data[4]); - ScheduleBgCopyTilemapToVram(0); - gTasks[taskId].func = sPlayerPCMenuActions[gPcItemMenuOptionOrder[inputOptionId]].func.void_u8; - break; + case MENU_NOTHING_CHOSEN: + break; + case MENU_B_PRESSED: + PlaySE(SE_SELECT); + ClearStdWindowAndFrameToTransparent(tWindowId, FALSE); + ClearWindowTilemap(tWindowId); + RemoveWindow(tWindowId); + ScheduleBgCopyTilemapToVram(0); + gTasks[taskId].func = PlayerPC_TurnOff; + break; + default: + ClearStdWindowAndFrameToTransparent(tWindowId, FALSE); + ClearWindowTilemap(tWindowId); + RemoveWindow(tWindowId); + ScheduleBgCopyTilemapToVram(0); + gTasks[taskId].func = sPlayerPCMenuActions[sTopMenuOptionOrder[inputOptionId]].func.void_u8; + break; } } @@ -384,31 +445,37 @@ void ReshowPlayerPC(u8 var) static void PlayerPC_ItemStorage(u8 taskId) { - InitItemStorageMenu(taskId, ITEMPC_MENU_WITHDRAW); + InitItemStorageMenu(taskId, MENU_WITHDRAW); gTasks[taskId].func = ItemStorageMenuProcessInput; } static void PlayerPC_Mailbox(u8 taskId) { - playerPCItemPageInfo.count = GetMailboxMailCount(); + gPlayerPCItemPageInfo.count = GetMailboxMailCount(); - if (playerPCItemPageInfo.count == 0) + if (gPlayerPCItemPageInfo.count == 0) + { + // Mailbox cannot be opened if no mail is in PC DisplayItemMessageOnField(taskId, gText_NoMailHere, ReshowPlayerPC); + } else { - playerPCItemPageInfo.cursorPos = 0; - playerPCItemPageInfo.itemsAbove = 0; - playerPCItemPageInfo.scrollIndicatorId = 0xFF; - Mailbox_UpdateMailList(); - ItemStorage_SetItemAndMailCount(taskId); - if (sub_81D1C44(playerPCItemPageInfo.count) == TRUE) + gPlayerPCItemPageInfo.cursorPos = 0; + gPlayerPCItemPageInfo.itemsAbove = 0; + gPlayerPCItemPageInfo.scrollIndicatorTaskId = TASK_NONE; + Mailbox_CompactMailList(); + SetPlayerPCListCount(taskId); + if (MailboxMenu_Alloc(gPlayerPCItemPageInfo.count) == TRUE) { ClearDialogWindowAndFrame(0, 0); Mailbox_DrawMailboxMenu(taskId); gTasks[taskId].func = Mailbox_ProcessInput; } - else + else + { + // Alloc failed, exit Mailbox DisplayItemMessageOnField(taskId, gText_NoMailHere, ReshowPlayerPC); + } } } @@ -419,7 +486,7 @@ static void PlayerPC_Decoration(u8 taskId) static void PlayerPC_TurnOff(u8 taskId) { - if (gPcItemMenuOptionsNum == 4) // if the option count is 4, we are at the bedroom PC, so do gender specific handling. + if (sTopMenuNumOptions == NUM_BEDROOM_PC_OPTIONS) // Flimsy way to determine if Bedroom PC is in use { if (gSaveBlock2Ptr->playerGender == MALE) ScriptContext1_SetupScript(LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC); @@ -439,14 +506,14 @@ static void InitItemStorageMenu(u8 taskId, u8 var) struct WindowTemplate windowTemplate; data = gTasks[taskId].data; - windowTemplate = gUnknown_085DFF24[2]; - windowTemplate.width = GetMaxWidthInMenuTable(gPCText_ItemPCOptionsText, 4); - data[4] = AddWindow(&windowTemplate); - SetStandardWindowBorderStyle(data[4], 0); - PrintMenuTable(data[4], 4, gPCText_ItemPCOptionsText); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[4], 4, var); + windowTemplate = sWindowTemplates_MainMenus[WIN_ITEM_STORAGE_MENU]; + windowTemplate.width = GetMaxWidthInMenuTable(sItemStorage_MenuActions, ARRAY_COUNT(sItemStorage_MenuActions)); + tWindowId = AddWindow(&windowTemplate); + SetStandardWindowBorderStyle(tWindowId, 0); + PrintMenuTable(tWindowId, ARRAY_COUNT(sItemStorage_MenuActions), sItemStorage_MenuActions); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tWindowId, 4, var); ScheduleBgCopyTilemapToVram(0); - ItemStorageMenuPrint(gPCText_OptionDescList[var]); + ItemStorageMenuPrint(sItemStorage_OptionDescriptions[var]); } static void ItemStorageMenuPrint(const u8 *textPtr) @@ -457,27 +524,26 @@ static void ItemStorageMenuPrint(const u8 *textPtr) static void ItemStorageMenuProcessInput(u8 taskId) { - s8 r5; - s8 r2; + s8 oldPos, newPos; s8 inputOptionId; - r5 = Menu_GetCursorPos(); + oldPos = Menu_GetCursorPos(); inputOptionId = Menu_ProcessInput(); - r2 = Menu_GetCursorPos(); + newPos = Menu_GetCursorPos(); switch (inputOptionId) { - case MENU_NOTHING_CHOSEN: - if (r5 != r2) - ItemStorageMenuPrint(gPCText_OptionDescList[r2]); - break; - case MENU_B_PRESSED: - PlaySE(SE_SELECT); - ItemStorage_Exit(taskId); - break; - default: - PlaySE(SE_SELECT); - gPCText_ItemPCOptionsText[inputOptionId].func.void_u8(taskId); - break; + case MENU_NOTHING_CHOSEN: + if (oldPos != newPos) + ItemStorageMenuPrint(sItemStorage_OptionDescriptions[newPos]); + break; + case MENU_B_PRESSED: + PlaySE(SE_SELECT); + ItemStorage_Exit(taskId); + break; + default: + PlaySE(SE_SELECT); + sItemStorage_MenuActions[inputOptionId].func.void_u8(taskId); + break; } } @@ -497,13 +563,13 @@ static void Task_ItemStorage_Deposit(u8 taskId) } } -void sub_816B31C(void) +void CB2_PlayerPCExitBagMenu(void) { - gFieldCallback = Mailbox_DoRedrawMailboxMenuAfterReturn; + gFieldCallback = ItemStorage_ReshowAfterBagMenu; SetMainCallback2(CB2_ReturnToField); } -void Mailbox_DoRedrawMailboxMenuAfterReturn(void) +static void ItemStorage_ReshowAfterBagMenu(void) { LoadMessageBoxAndBorderGfx(); DrawDialogueFrame(0, 1); @@ -521,12 +587,15 @@ static void ItemStorage_Withdraw(u8 taskId) { s16 *data = gTasks[taskId].data; - NUM_ITEMS = CountUsedPCItemSlots(); - if (NUM_ITEMS != 0) - ItemStorage_WithdrawToss_Helper(taskId, FALSE); + tUsedSlots = CountUsedPCItemSlots(); + if (tUsedSlots != 0) + { + ItemStorage_Enter(taskId, FALSE); + } else { - sub_816B4DC(taskId); + // Can't withdraw, no items in PC + ItemStorage_EraseMainMenu(taskId); DisplayItemMessageOnField(taskId, gText_NoItems, PlayerPC_ItemStorage); } @@ -536,137 +605,134 @@ static void ItemStorage_Toss(u8 taskId) { s16 *data = gTasks[taskId].data; - NUM_ITEMS = CountUsedPCItemSlots(); - if (NUM_ITEMS != 0) - ItemStorage_WithdrawToss_Helper(taskId, TRUE); + tUsedSlots = CountUsedPCItemSlots(); + if (tUsedSlots != 0) + { + ItemStorage_Enter(taskId, TRUE); + } else { - sub_816B4DC(taskId); + // Can't toss, no items in PC + ItemStorage_EraseMainMenu(taskId); DisplayItemMessageOnField(taskId, gText_NoItems, PlayerPC_ItemStorage); } } -static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss) +static void ItemStorage_Enter(u8 taskId, bool8 toss) { u16 *data = gTasks[taskId].data; - data[3] = toss; - sub_816B4DC(taskId); - playerPCItemPageInfo.cursorPos = 0; - playerPCItemPageInfo.itemsAbove = 0; - playerPCItemPageInfo.scrollIndicatorId = 0xFF; - ItemStorage_SetItemAndMailCount(taskId); - sub_816BC14(); + tInTossMenu = toss; + ItemStorage_EraseMainMenu(taskId); + gPlayerPCItemPageInfo.cursorPos = 0; + gPlayerPCItemPageInfo.itemsAbove = 0; + gPlayerPCItemPageInfo.scrollIndicatorTaskId = TASK_NONE; + SetPlayerPCListCount(taskId); + ItemStorage_Init(); FreeAndReserveObjectSpritePalettes(); - LoadListMenuArrowsGfx(); - sub_8122344(gUnknown_0203BCC4->spriteIds, 7); + LoadListMenuSwapLineGfx(); + CreateSwapLineSprites(sItemStorageMenu->swapLineSpriteIds, SWAP_LINE_LENGTH); ClearDialogWindowAndFrame(0,0); - gTasks[taskId].func = ItemStorage_ProcessWithdrawTossInput; + gTasks[taskId].func = ItemStorage_CreateListMenu; } static void ItemStorage_Exit(u8 taskId) { - sub_816B4DC(taskId); + ItemStorage_EraseMainMenu(taskId); ReshowPlayerPC(taskId); } - -static void ItemStorage_SetItemAndMailCount(u8 taskId) +// Used by Item Storage and the Mailbox +static void SetPlayerPCListCount(u8 taskId) { - if (playerPCItemPageInfo.count > 7) - playerPCItemPageInfo.pageItems = 8; + if (gPlayerPCItemPageInfo.count > 7) + gPlayerPCItemPageInfo.pageItems = 8; else - playerPCItemPageInfo.pageItems = playerPCItemPageInfo.count + 1; + gPlayerPCItemPageInfo.pageItems = gPlayerPCItemPageInfo.count + 1; } -static void sub_816B4DC(u8 taskId) +static void ItemStorage_EraseMainMenu(u8 taskId) { u16 *data = gTasks[taskId].data; - - ClearStdWindowAndFrameToTransparent(data[4], FALSE); - ClearWindowTilemap(data[4]); - RemoveWindow(data[4]); + ClearStdWindowAndFrameToTransparent(tWindowId, FALSE); + ClearWindowTilemap(tWindowId); + RemoveWindow(tWindowId); ScheduleBgCopyTilemapToVram(0); } static u8 GetMailboxMailCount(void) { - u8 i, j; + u8 mailInPC, i; - for(i = 0, j = 6; j < 16; j++) - if (gSaveBlock1Ptr->mail[j].itemId != 0) - i++; + // Count mail in PC (by first skipping over mail in party) + for (mailInPC = 0, i = PARTY_SIZE; i < MAIL_COUNT; i++) + if (gSaveBlock1Ptr->mail[i].itemId != ITEM_NONE) + mailInPC++; - return i; + return mailInPC; } -static void Mailbox_UpdateMailList(void) +static void Mailbox_CompactMailList(void) { - struct MailStruct mailBuffer; + struct MailStruct temp; u8 i, j; - for (i=6; i<15; i++) + for (i = PARTY_SIZE; i < MAIL_COUNT - 1; i++) { - for (j=i+1; j<16; j++) + for (j = i + 1; j < MAIL_COUNT; j++) { - if (gSaveBlock1Ptr->mail[i].itemId == 0) - { - mailBuffer = gSaveBlock1Ptr->mail[i]; - gSaveBlock1Ptr->mail[i] = gSaveBlock1Ptr->mail[j]; - gSaveBlock1Ptr->mail[j] = mailBuffer; - } + if (gSaveBlock1Ptr->mail[i].itemId == ITEM_NONE) + SWAP(gSaveBlock1Ptr->mail[i], gSaveBlock1Ptr->mail[j], temp); } } } static void Mailbox_DrawMailboxMenu(u8 taskId) { - u8 windowId; - - windowId = sub_81D1C84(0); - sub_81D1C84(1); + u8 windowId = MailboxMenu_AddWindow(MAILBOXWIN_TITLE); + MailboxMenu_AddWindow(MAILBOXWIN_LIST); AddTextPrinterParameterized(windowId, 1, gText_Mailbox, GetStringCenterAlignXOffset(1, gText_Mailbox, 0x40), 1, 0, NULL); ScheduleBgCopyTilemapToVram(0); - gTasks[taskId].data[5] = sub_81D1DC0(&playerPCItemPageInfo); - sub_81D1E90(&playerPCItemPageInfo); + gTasks[taskId].tListTaskId = MailboxMenu_CreateList(&gPlayerPCItemPageInfo); + MailboxMenu_AddScrollArrows(&gPlayerPCItemPageInfo); } static void Mailbox_ProcessInput(u8 taskId) { u16 *data = gTasks[taskId].data; - s32 inputOptionId; if (!gPaletteFade.active) { - inputOptionId = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); + s32 inputOptionId = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos); switch (inputOptionId) { - case LIST_NOTHING_CHOSEN: - break; - case LIST_CANCEL: - PlaySE(SE_SELECT); - RemoveScrollIndicatorArrowPair(playerPCItemPageInfo.scrollIndicatorId); - Mailbox_ReturnToPlayerPC(taskId); - break; - default: - PlaySE(SE_SELECT); - sub_81D1D04(0); - sub_81D1D04(1); - DestroyListMenuTask(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - ScheduleBgCopyTilemapToVram(0); - RemoveScrollIndicatorArrowPair(playerPCItemPageInfo.scrollIndicatorId); - gTasks[taskId].func = Mailbox_PrintWhatToDoWithPlayerMailText; - break; + case LIST_NOTHING_CHOSEN: + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + RemoveScrollIndicatorArrowPair(gPlayerPCItemPageInfo.scrollIndicatorTaskId); + Mailbox_ReturnToPlayerPC(taskId); + break; + default: + // Selected mail, ask what to do with it + PlaySE(SE_SELECT); + MailboxMenu_RemoveWindow(MAILBOXWIN_TITLE); + MailboxMenu_RemoveWindow(MAILBOXWIN_LIST); + DestroyListMenuTask(tListTaskId, &gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos); + ScheduleBgCopyTilemapToVram(0); + RemoveScrollIndicatorArrowPair(gPlayerPCItemPageInfo.scrollIndicatorTaskId); + gTasks[taskId].func = Mailbox_PrintWhatToDoWithPlayerMailText; + break; } } } static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId) { - StringCopy(gStringVar1, gSaveBlock1Ptr->mail[playerPCItemPageInfo.itemsAbove + 6 + playerPCItemPageInfo.cursorPos].playerName); - sub_81DB554(gStringVar1, 0); + StringCopy(gStringVar1, gSaveBlock1Ptr->mail[gPlayerPCItemPageInfo.itemsAbove + PARTY_SIZE + gPlayerPCItemPageInfo.cursorPos].playerName); + ConvertInternationalPlayerNameStripChar(gStringVar1, CHAR_SPACE); StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithVar1sMail); DisplayItemMessageOnField(taskId, gStringVar4, Mailbox_PrintMailOptions); } @@ -675,19 +741,19 @@ static void Mailbox_ReturnToPlayerPC(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_81D1D04(0); - sub_81D1D04(1); - DestroyListMenuTask(data[5], NULL, NULL); + MailboxMenu_RemoveWindow(MAILBOXWIN_TITLE); + MailboxMenu_RemoveWindow(MAILBOXWIN_LIST); + DestroyListMenuTask(tListTaskId, NULL, NULL); ScheduleBgCopyTilemapToVram(0); - sub_81D1EC0(); + MailboxMenu_Free(); ReshowPlayerPC(taskId); } static void Mailbox_PrintMailOptions(u8 taskId) { - u8 r4 = sub_81D1C84(2); - PrintMenuTable(r4, 4, gMailboxMailOptions); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(r4, 4, 0); + u8 windowId = MailboxMenu_AddWindow(MAILBOXWIN_OPTIONS); + PrintMenuTable(windowId, ARRAY_COUNT(gMailboxMailOptions), gMailboxMailOptions); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, 4, 0); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = Mailbox_MailOptionsProcessInput; } @@ -696,19 +762,18 @@ static void Mailbox_MailOptionsProcessInput(u8 taskId) { s8 inputOptionId = ProcessMenuInput_other(); - switch(inputOptionId) + switch (inputOptionId) { - case -2: - break; - case -1: - PlaySE(SE_SELECT); - Mailbox_Cancel(taskId); - break; - - default: - PlaySE(SE_SELECT); - gMailboxMailOptions[inputOptionId].func.void_u8(taskId); - break; + case MENU_NOTHING_CHOSEN: + break; + case MENU_B_PRESSED: + PlaySE(SE_SELECT); + Mailbox_Cancel(taskId); + break; + default: + PlaySE(SE_SELECT); + gMailboxMailOptions[inputOptionId].func.void_u8(taskId); + break; } } @@ -722,26 +787,26 @@ static void Mailbox_FadeAndReadMail(u8 taskId) { if (!gPaletteFade.active) { - sub_81D1EC0(); + MailboxMenu_Free(); CleanupOverworldWindowsAndTilemaps(); - ReadMail(&(gSaveBlock1Ptr->mail[playerPCItemPageInfo.itemsAbove + 6 + playerPCItemPageInfo.cursorPos]), Mailbox_ReturnToFieldFromReadMail, TRUE); + ReadMail(&gSaveBlock1Ptr->mail[gPlayerPCItemPageInfo.itemsAbove + PARTY_SIZE + gPlayerPCItemPageInfo.cursorPos], Mailbox_ReturnToFieldFromReadMail, TRUE); DestroyTask(taskId); } } static void Mailbox_ReturnToFieldFromReadMail(void) { - gFieldCallback = pal_fill_for_maplights_or_black; + gFieldCallback = Mailbox_ReshowAfterMail; SetMainCallback2(CB2_ReturnToField); } -static void pal_fill_for_maplights_or_black(void) +static void Mailbox_ReshowAfterMail(void) { u8 taskId; LoadMessageBoxAndBorderGfx(); taskId = CreateTask(Mailbox_HandleReturnToProcessInput, 0); - if (sub_81D1C44(playerPCItemPageInfo.count) == TRUE) + if (MailboxMenu_Alloc(gPlayerPCItemPageInfo.count) == TRUE) Mailbox_DrawMailboxMenu(taskId); else DestroyTask(taskId); @@ -756,49 +821,49 @@ static void Mailbox_HandleReturnToProcessInput(u8 taskId) static void Mailbox_MoveToBag(u8 taskId) { - DisplayItemMessageOnField(taskId, gText_MessageWillBeLost, Mailbox_DrawYesNoBeforeMove); + DisplayItemMessageOnField(taskId, gText_MessageWillBeLost, Mailbox_AskConfirmMoveToBag); } -static void Mailbox_DrawYesNoBeforeMove(u8 taskId) +static void Mailbox_AskConfirmMoveToBag(u8 taskId) { DisplayYesNoMenuDefaultYes(); - gTasks[taskId].func = Mailbox_MoveToBagYesNoPrompt; + gTasks[taskId].func = Mailbox_HandleConfirmMoveToBag; } -static void Mailbox_MoveToBagYesNoPrompt(u8 taskId) +static void Mailbox_HandleConfirmMoveToBag(u8 taskId) { - switch(Menu_ProcessInputNoWrapClearOnChoose()) + switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: - Mailbox_DoMailMoveToBag(taskId); - break; - case -1: - PlaySE(SE_SELECT); - case 1: - Mailbox_CancelMoveToBag(taskId); - break; - case -2: - default: - break; + case 0: // Yes + Mailbox_DoMailMoveToBag(taskId); + break; + case MENU_B_PRESSED: + PlaySE(SE_SELECT); + case 1: // No + Mailbox_CancelMoveToBag(taskId); + break; + case MENU_NOTHING_CHOSEN: + default: + break; } } static void Mailbox_DoMailMoveToBag(u8 taskId) { - struct MailStruct *mailStruct = &(gSaveBlock1Ptr->mail[playerPCItemPageInfo.itemsAbove + 6 + playerPCItemPageInfo.cursorPos]); - if (!AddBagItem(mailStruct->itemId, 1)) + struct MailStruct *mail = &gSaveBlock1Ptr->mail[gPlayerPCItemPageInfo.itemsAbove + PARTY_SIZE + gPlayerPCItemPageInfo.cursorPos]; + if (!AddBagItem(mail->itemId, 1)) { DisplayItemMessageOnField(taskId, gText_BagIsFull, Mailbox_Cancel); } else { DisplayItemMessageOnField(taskId, gText_MailToBagMessageErased, Mailbox_Cancel); - ClearMailStruct(mailStruct); - Mailbox_UpdateMailList(); - playerPCItemPageInfo.count--; - if (playerPCItemPageInfo.count < (playerPCItemPageInfo.pageItems + playerPCItemPageInfo.itemsAbove) && playerPCItemPageInfo.itemsAbove != 0) - playerPCItemPageInfo.itemsAbove--; - ItemStorage_SetItemAndMailCount(taskId); + ClearMailStruct(mail); + Mailbox_CompactMailList(); + gPlayerPCItemPageInfo.count--; + if (gPlayerPCItemPageInfo.count < (gPlayerPCItemPageInfo.pageItems + gPlayerPCItemPageInfo.itemsAbove) && gPlayerPCItemPageInfo.itemsAbove != 0) + gPlayerPCItemPageInfo.itemsAbove--; + SetPlayerPCListCount(taskId); } } @@ -822,7 +887,7 @@ static void Mailbox_DoGiveMailPokeMenu(u8 taskId) { if (!gPaletteFade.active) { - sub_81D1EC0(); + MailboxMenu_Free(); CleanupOverworldWindowsAndTilemaps(); ChooseMonToGiveMailFromMailbox(); DestroyTask(taskId); @@ -840,15 +905,15 @@ static void Mailbox_UpdateMailListAfterDeposit(void) u8 taskId; u8 prevCount; taskId = CreateTask(Mailbox_HandleReturnToProcessInput, 0); - prevCount = playerPCItemPageInfo.count; - playerPCItemPageInfo.count = GetMailboxMailCount(); - Mailbox_UpdateMailList(); - if (prevCount != playerPCItemPageInfo.count && (playerPCItemPageInfo.count < (playerPCItemPageInfo.pageItems + playerPCItemPageInfo.itemsAbove)) - && playerPCItemPageInfo.itemsAbove != 0) - playerPCItemPageInfo.itemsAbove--; - ItemStorage_SetItemAndMailCount(taskId); + prevCount = gPlayerPCItemPageInfo.count; + gPlayerPCItemPageInfo.count = GetMailboxMailCount(); + Mailbox_CompactMailList(); + if (prevCount != gPlayerPCItemPageInfo.count && (gPlayerPCItemPageInfo.count < (gPlayerPCItemPageInfo.pageItems + gPlayerPCItemPageInfo.itemsAbove)) + && gPlayerPCItemPageInfo.itemsAbove != 0) + gPlayerPCItemPageInfo.itemsAbove--; + SetPlayerPCListCount(taskId); LoadMessageBoxAndBorderGfx(); - if (sub_81D1C44(playerPCItemPageInfo.count) == TRUE) + if (MailboxMenu_Alloc(gPlayerPCItemPageInfo.count) == TRUE) Mailbox_DrawMailboxMenu(taskId); else DestroyTask(taskId); @@ -862,52 +927,51 @@ static void Mailbox_NoPokemonForMail(u8 taskId) static void Mailbox_Cancel(u8 taskId) { - sub_81D1D04(2); + MailboxMenu_RemoveWindow(MAILBOXWIN_OPTIONS); ClearDialogWindowAndFrame(0, 0); Mailbox_DrawMailboxMenu(taskId); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = Mailbox_ProcessInput; } -static void sub_816BC14(void) +static void ItemStorage_Init(void) { - gUnknown_0203BCC4 = AllocZeroed(sizeof(struct Struct203BCC4)); - memset(gUnknown_0203BCC4->windowIds, 0xFF, 0x6); - gUnknown_0203BCC4->unk666 = 0xFF; - gUnknown_0203BCC4->spriteId = 0xFF; + sItemStorageMenu = AllocZeroed(sizeof(*sItemStorageMenu)); + memset(sItemStorageMenu->windowIds, WINDOW_NONE, ITEMPC_WIN_COUNT); + sItemStorageMenu->toSwapPos = NOT_SWAPPING; + sItemStorageMenu->spriteId = SPRITE_NONE; } -static void sub_816BC58(void) +static void ItemStorage_Free(void) { u32 i; - - for(i = 0; i < 6; i++) - sub_816BCC4(i); - Free(gUnknown_0203BCC4); + for (i = 0; i < ITEMPC_WIN_COUNT; i++) + ItemStorage_RemoveWindow(i); + Free(sItemStorageMenu); } -static u8 sub_816BC7C(u8 a) +static u8 ItemStorage_AddWindow(u8 i) { - u8 *windowIdLoc = &(gUnknown_0203BCC4->windowIds[a]); - if (*windowIdLoc == 0xFF) + u8 *windowIdLoc = &sItemStorageMenu->windowIds[i]; + if (*windowIdLoc == WINDOW_NONE) { - *windowIdLoc = AddWindow(&gUnknown_085DFF5C[a]); + *windowIdLoc = AddWindow(&sWindowTemplates_ItemStorage[i]); DrawStdFrameWithCustomTileAndPalette(*windowIdLoc, FALSE, 0x214, 0xE); ScheduleBgCopyTilemapToVram(0); } return *windowIdLoc; } -static void sub_816BCC4(u8 a) +static void ItemStorage_RemoveWindow(u8 i) { - u8 *windowIdLoc = &(gUnknown_0203BCC4->windowIds[a]); - if (*windowIdLoc != 0xFF) + u8 *windowIdLoc = &sItemStorageMenu->windowIds[i]; + if (*windowIdLoc != WINDOW_NONE) { ClearStdWindowAndFrameToTransparent(*windowIdLoc, FALSE); ClearWindowTilemap(*windowIdLoc); ScheduleBgCopyTilemapToVram(0); RemoveWindow(*windowIdLoc); - *windowIdLoc = 0xFF; + *windowIdLoc = WINDOW_NONE; } } @@ -915,20 +979,25 @@ void ItemStorage_RefreshListMenu(void) { u16 i; - for(i = 0; i < playerPCItemPageInfo.count - 1; i++) + // Copy item names for all entries but the last (which is Cancel) + for(i = 0; i < gPlayerPCItemPageInfo.count - 1; i++) { - CopyItemName_PlayerPC(&(gUnknown_0203BCC4->unk198[i][0]), gSaveBlock1Ptr->pcItems[i].itemId); - gUnknown_0203BCC4->unk0[i].name = &(gUnknown_0203BCC4->unk198[i][0]); - gUnknown_0203BCC4->unk0[i].id = i; + CopyItemName_PlayerPC(&sItemStorageMenu->itemNames[i][0], gSaveBlock1Ptr->pcItems[i].itemId); + sItemStorageMenu->listItems[i].name = &sItemStorageMenu->itemNames[i][0]; + sItemStorageMenu->listItems[i].id = i; } - StringCopy(&(gUnknown_0203BCC4->unk198[i][0]) ,gText_Cancel2); - gUnknown_0203BCC4->unk0[i].name = &(gUnknown_0203BCC4->unk198[i][0]); - gUnknown_0203BCC4->unk0[i].id = -2; - gMultiuseListMenuTemplate = gUnknown_085DFF44; - gMultiuseListMenuTemplate.windowId = sub_816BC7C(0); - gMultiuseListMenuTemplate.totalItems = playerPCItemPageInfo.count; - gMultiuseListMenuTemplate.items = gUnknown_0203BCC4->unk0; - gMultiuseListMenuTemplate.maxShowed = playerPCItemPageInfo.pageItems; + + // Set up Cancel entry + StringCopy(&sItemStorageMenu->itemNames[i][0], gText_Cancel2); + sItemStorageMenu->listItems[i].name = &sItemStorageMenu->itemNames[i][0]; + sItemStorageMenu->listItems[i].id = LIST_CANCEL; + + // Set list menu data + gMultiuseListMenuTemplate = sListMenuTemplate_ItemStorage; + gMultiuseListMenuTemplate.windowId = ItemStorage_AddWindow(ITEMPC_WIN_LIST); + gMultiuseListMenuTemplate.totalItems = gPlayerPCItemPageInfo.count; + gMultiuseListMenuTemplate.items = sItemStorageMenu->listItems; + gMultiuseListMenuTemplate.maxShowed = gPlayerPCItemPageInfo.pageItems; } void CopyItemName_PlayerPC(u8 *string, u16 itemId) @@ -936,31 +1005,31 @@ void CopyItemName_PlayerPC(u8 *string, u16 itemId) CopyItemName(itemId, string); } -static void ItemStorage_MoveCursor(s32 id, bool8 b, struct ListMenu *thisMenu) +static void ItemStorage_MoveCursor(s32 id, bool8 onInit, struct ListMenu *list) { - if (b != TRUE) + if (onInit != TRUE) PlaySE(SE_SELECT); - if (gUnknown_0203BCC4->unk666 == 0xFF) + if (sItemStorageMenu->toSwapPos == NOT_SWAPPING) { - sub_816C0C8(); - if (id != -2) - sub_816C060(gSaveBlock1Ptr->pcItems[id].itemId); + ItemStorage_EraseItemIcon(); + if (id != LIST_CANCEL) + ItemStorage_DrawItemIcon(gSaveBlock1Ptr->pcItems[id].itemId); else - sub_816C060(ITEMPC_GO_BACK_TO_PREV); - sub_816BEF0(id); + ItemStorage_DrawItemIcon(MSG_GO_BACK_TO_PREV); + ItemStorage_PrintDescription(id); } } -static void fish4_goto_x5_or_x6(u8 windowId, s32 id, u8 yOffset) +static void ItemStorage_PrintMenuItem(u8 windowId, u32 id, u8 yOffset) { - if (id != -2) + if (id != LIST_CANCEL) { - if (gUnknown_0203BCC4->unk666 != 0xFF) + if (sItemStorageMenu->toSwapPos != NOT_SWAPPING) { - if (gUnknown_0203BCC4->unk666 == (u8)id) - sub_816BFE0(yOffset, 0, 0xFF); + if (sItemStorageMenu->toSwapPos == (u8)id) + ItemStorage_DrawSwapArrow(yOffset, 0, TEXT_SPEED_FF); else - sub_816BFE0(yOffset, 0xFF, 0xFF); + ItemStorage_DrawSwapArrow(yOffset, 0xFF, TEXT_SPEED_FF); } ConvertIntToDecimalStringN(gStringVar1, gSaveBlock1Ptr->pcItems[id].quantity, STR_CONV_MODE_RIGHT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_xVar1); @@ -968,192 +1037,196 @@ static void fish4_goto_x5_or_x6(u8 windowId, s32 id, u8 yOffset) } } -static void sub_816BEF0(s32 id) +static void ItemStorage_PrintDescription(s32 id) { const u8* description; - u8 windowId = gUnknown_0203BCC4->windowIds[1]; + u8 windowId = sItemStorageMenu->windowIds[ITEMPC_WIN_MESSAGE]; - if (id != -2) + // Get item description (or Cancel text) + if (id != LIST_CANCEL) description = (u8 *)ItemId_GetDescription(gSaveBlock1Ptr->pcItems[id].itemId); else - description = ItemStorage_GetItemPcResponse(ITEMPC_GO_BACK_TO_PREV); + description = ItemStorage_GetMessage(MSG_GO_BACK_TO_PREV); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, 1, description, 0, 1, 0, NULL); } -static void ItemStorage_StartScrollIndicator(void) +static void ItemStorage_AddScrollIndicator(void) { - if (playerPCItemPageInfo.scrollIndicatorId == 0xFF) - playerPCItemPageInfo.scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xB0, 0xC, 0x94, playerPCItemPageInfo.count - playerPCItemPageInfo.pageItems, 0x13F8, 0x13F8, &(playerPCItemPageInfo.itemsAbove)); + if (gPlayerPCItemPageInfo.scrollIndicatorTaskId == TASK_NONE) + gPlayerPCItemPageInfo.scrollIndicatorTaskId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 176, 12, 148, + gPlayerPCItemPageInfo.count - gPlayerPCItemPageInfo.pageItems, + TAG_SCROLL_ARROW, + TAG_SCROLL_ARROW, + &gPlayerPCItemPageInfo.itemsAbove); } static void ItemStorage_RemoveScrollIndicator(void) { - if (playerPCItemPageInfo.scrollIndicatorId != 0xFF) + if (gPlayerPCItemPageInfo.scrollIndicatorTaskId != TASK_NONE) { - RemoveScrollIndicatorArrowPair(playerPCItemPageInfo.scrollIndicatorId); - playerPCItemPageInfo.scrollIndicatorId = 0xFF; + RemoveScrollIndicatorArrowPair(gPlayerPCItemPageInfo.scrollIndicatorTaskId); + gPlayerPCItemPageInfo.scrollIndicatorTaskId = TASK_NONE; } } -static void sub_816BFB8(u8 a, u8 b, u8 speed) +static void ItemStorage_SetSwapArrow(u8 listTaskId, u8 b, u8 speed) { - sub_816BFE0(ListMenuGetYCoordForPrintingArrowCursor(a), b, speed); + ItemStorage_DrawSwapArrow(ListMenuGetYCoordForPrintingArrowCursor(listTaskId), b, speed); } -static void sub_816BFE0(u8 y, u8 b, u8 speed) +static void ItemStorage_DrawSwapArrow(u8 y, u8 b, u8 speed) { - u8 windowId = gUnknown_0203BCC4->windowIds[0]; + u8 windowId = sItemStorageMenu->windowIds[ITEMPC_WIN_LIST]; if (b == 0xFF) FillWindowPixelRect(windowId, PIXEL_FILL(1), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else - AddTextPrinterParameterized4(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2); + AddTextPrinterParameterized4(windowId, 1, 0, y, 0, 0, sSwapArrowTextColors, speed, gText_SelectorArrow2); } -static void sub_816C060(u16 itemId) +static void ItemStorage_DrawItemIcon(u16 itemId) { u8 spriteId; - u8* spriteIdLoc = &(gUnknown_0203BCC4->spriteId); + u8* spriteIdLoc = &sItemStorageMenu->spriteId; - if (*spriteIdLoc == 0xFF) + if (*spriteIdLoc == SPRITE_NONE) { - FreeSpriteTilesByTag(0x13F6); - FreeSpritePaletteByTag(0x13F6); - spriteId = AddItemIconSprite(0x13F6, 0x13F6, itemId); + FreeSpriteTilesByTag(TAG_ITEM_ICON); + FreeSpritePaletteByTag(TAG_ITEM_ICON); + spriteId = AddItemIconSprite(TAG_ITEM_ICON, TAG_ITEM_ICON, itemId); if (spriteId != MAX_SPRITES) { *spriteIdLoc = spriteId; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].pos2.x = 24; - gSprites[spriteId].pos2.y = 80; + gSprites[spriteId].x2 = 24; + gSprites[spriteId].y2 = 80; } } } -static void sub_816C0C8(void) +static void ItemStorage_EraseItemIcon(void) { - u8* spriteIdLoc = &(gUnknown_0203BCC4->spriteId); - if (*spriteIdLoc != 0xFF) + u8* spriteIdLoc = &sItemStorageMenu->spriteId; + if (*spriteIdLoc != SPRITE_NONE) { - FreeSpriteTilesByTag(0x13F6); - FreeSpritePaletteByTag(0x13F6); - DestroySprite(&(gSprites[*spriteIdLoc])); - *spriteIdLoc = 0xFF; + FreeSpriteTilesByTag(TAG_ITEM_ICON); + FreeSpritePaletteByTag(TAG_ITEM_ICON); + DestroySprite(&gSprites[*spriteIdLoc]); + *spriteIdLoc = SPRITE_NONE; } } -static void sub_816C110(void) +static void ItemStorage_CompactList(void) { CompactPCItems(); - sub_812220C(gSaveBlock1Ptr->pcItems, 50, &(playerPCItemPageInfo.pageItems), &(playerPCItemPageInfo.count), 0x8); + SetItemListPerPageCount(gSaveBlock1Ptr->pcItems, PC_ITEMS_COUNT, &gPlayerPCItemPageInfo.pageItems, &gPlayerPCItemPageInfo.count, 8); } -static void sub_816C140(void) +static void ItemStorage_CompactCursor(void) { - sub_812225C(&(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos), playerPCItemPageInfo.pageItems, playerPCItemPageInfo.count); + SetCursorWithinListBounds(&gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos, gPlayerPCItemPageInfo.pageItems, gPlayerPCItemPageInfo.count); } -static void ItemStorage_ProcessWithdrawTossInput(u8 taskId) +static void ItemStorage_CreateListMenu(u8 taskId) { s16 *data; bool32 toss; u32 i, x; - u8 windowId; const u8* text; data = gTasks[taskId].data; - for(i = 0; i <=3; i++) - sub_816BC7C(i); - toss = data[3]; + for (i = 0; i <= ITEMPC_WIN_LIST_END; i++) + ItemStorage_AddWindow(i); + toss = tInTossMenu; text = gText_TossItem; if (!toss) text = gText_WithdrawItem; x = GetStringCenterAlignXOffset(1, text, 104); - AddTextPrinterParameterized(gUnknown_0203BCC4->windowIds[3], 1, text, x, 1, 0, NULL); - CopyWindowToVram(gUnknown_0203BCC4->windowIds[2], 2); - sub_816C110(); - sub_816C140(); + AddTextPrinterParameterized(sItemStorageMenu->windowIds[ITEMPC_WIN_TITLE], 1, text, x, 1, 0, NULL); + CopyWindowToVram(sItemStorageMenu->windowIds[ITEMPC_WIN_ICON], 2); + ItemStorage_CompactList(); + ItemStorage_CompactCursor(); ItemStorage_RefreshListMenu(); - data[5] = ListMenuInit(&gMultiuseListMenuTemplate, playerPCItemPageInfo.itemsAbove, playerPCItemPageInfo.cursorPos); - ItemStorage_StartScrollIndicator(); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, gPlayerPCItemPageInfo.itemsAbove, gPlayerPCItemPageInfo.cursorPos); + ItemStorage_AddScrollIndicator(); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = ItemStorage_ProcessInput; } -static const u8* ItemStorage_GetItemPcResponse(u16 itemId) +static const u8* ItemStorage_GetMessage(u16 itemId) { const u8 *string; switch(itemId) { - case ITEMPC_GO_BACK_TO_PREV: - string = gText_GoBackPrevMenu; - break; - case ITEMPC_HOW_MANY_TO_WITHDRAW: - string = gText_WithdrawHowManyItems; - break; - case ITEMPC_WITHDREW_THING: - string = gText_WithdrawXItems; - break; - case ITEMPC_HOW_MANY_TO_TOSS: - string = gText_TossHowManyVar1s; - break; - case ITEMPC_THREW_AWAY_ITEM: - string = gText_ThrewAwayVar2Var1s; - break; - case ITEMPC_NO_MORE_ROOM: - string = gText_NoRoomInBag; - break; - case ITEMPC_TOO_IMPORTANT: - string = gText_TooImportantToToss; - break; - case ITEMPC_OKAY_TO_THROW_AWAY: - string = gText_ConfirmTossItems; - break; - case ITEMPC_SWITCH_WHICH_ITEM: - string = gText_MoveVar1Where; - break; - default: - string = ItemId_GetDescription(itemId); - break; + case MSG_GO_BACK_TO_PREV: + string = gText_GoBackPrevMenu; + break; + case MSG_HOW_MANY_TO_WITHDRAW: + string = gText_WithdrawHowManyItems; + break; + case MSG_WITHDREW_ITEM: + string = gText_WithdrawXItems; + break; + case MSG_HOW_MANY_TO_TOSS: + string = gText_TossHowManyVar1s; + break; + case MSG_THREW_AWAY_ITEM: + string = gText_ThrewAwayVar2Var1s; + break; + case MSG_NO_MORE_ROOM: + string = gText_NoRoomInBag; + break; + case MSG_TOO_IMPORTANT: + string = gText_TooImportantToToss; + break; + case MSG_OKAY_TO_THROW_AWAY: + string = gText_ConfirmTossItems; + break; + case MSG_SWITCH_WHICH_ITEM: + string = gText_MoveVar1Where; + break; + default: + string = ItemId_GetDescription(itemId); + break; } return string; } -static void ItemStorage_PrintItemPcResponse(const u8 *string) +static void ItemStorage_PrintMessage(const u8 *string) { - u8 windowId = gUnknown_0203BCC4->windowIds[1]; + u8 windowId = sItemStorageMenu->windowIds[ITEMPC_WIN_MESSAGE]; FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, string); AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, 0, NULL); } +// Process input while on the item storage's item list static void ItemStorage_ProcessInput(u8 taskId) { - s16 *data; - s32 id; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (JOY_NEW(SELECT_BUTTON)) { - ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - if ((playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos) != (playerPCItemPageInfo.count - 1)) + // 'Select' starts input for swapping items if not on Cancel + ListMenuGetScrollAndRow(tListTaskId, &gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos); + if (gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos != gPlayerPCItemPageInfo.count - 1) { PlaySE(SE_SELECT); - ItemStorage_ItemSwapChoosePrompt(taskId); + ItemStorage_StartItemSwap(taskId); } } else { - id = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - switch(id) + s32 id = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos); + switch (id) { case LIST_NOTHING_CHOSEN: break; case LIST_CANCEL: PlaySE(SE_SELECT); - ItemStorage_GoBackToPlayerPCMenu(taskId); + ItemStorage_ExitItemList(taskId); break; default: PlaySE(SE_SELECT); @@ -1163,50 +1236,46 @@ static void ItemStorage_ProcessInput(u8 taskId) } } -static void ItemStorage_GoBackToPlayerPCMenu_InitStorage(u8 taskId) +static void ItemStorage_ReturnToMenuSelect(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (!IsDma3ManagerBusyWithBgCopy()) { DrawDialogueFrame(0, 0); - if (!data[3]) - InitItemStorageMenu(taskId, ITEMPC_MENU_WITHDRAW); + + // Select Withdraw/Toss by default depending on which was just exited + if (!tInTossMenu) + InitItemStorageMenu(taskId, MENU_WITHDRAW); else - InitItemStorageMenu(taskId, ITEMPC_MENU_TOSS); + InitItemStorageMenu(taskId, MENU_TOSS); gTasks[taskId].func = ItemStorageMenuProcessInput; } } -static void ItemStorage_GoBackToPlayerPCMenu(u8 taskId) +static void ItemStorage_ExitItemList(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; - sub_816C0C8(); + s16 *data = gTasks[taskId].data; + ItemStorage_EraseItemIcon(); ItemStorage_RemoveScrollIndicator(); - DestroyListMenuTask(data[5], NULL, NULL); - sub_81223B0(gUnknown_0203BCC4->spriteIds, 7); - sub_816BC58(); - gTasks[taskId].func = ItemStorage_GoBackToPlayerPCMenu_InitStorage; + DestroyListMenuTask(tListTaskId, NULL, NULL); + DestroySwapLineSprites(sItemStorageMenu->swapLineSpriteIds, SWAP_LINE_LENGTH); + ItemStorage_Free(); + gTasks[taskId].func = ItemStorage_ReturnToMenuSelect; } -static void ItemStorage_ItemSwapChoosePrompt(u8 taskId) +static void ItemStorage_StartItemSwap(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; - ListMenuSetUnkIndicatorsStructField(data[5], 16, 1); - gUnknown_0203BCC4->unk666 = (playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos); - sub_816BFB8(data[5], 0, 0); - sub_816C690(gUnknown_0203BCC4->unk666); - CopyItemName(gSaveBlock1Ptr->pcItems[gUnknown_0203BCC4->unk666].itemId, gStringVar1); - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(ITEMPC_SWITCH_WHICH_ITEM)); - gTasks[taskId].func = sub_816C4FC; + s16 *data = gTasks[taskId].data; + ListMenuSetUnkIndicatorsStructField(tListTaskId, 16, 1); + sItemStorageMenu->toSwapPos = gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos; + ItemStorage_SetSwapArrow(tListTaskId, 0, 0); + ItemStorage_UpdateSwapLinePos(sItemStorageMenu->toSwapPos); + CopyItemName(gSaveBlock1Ptr->pcItems[sItemStorageMenu->toSwapPos].itemId, gStringVar1); + ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_SWITCH_WHICH_ITEM)); + gTasks[taskId].func = ItemStorage_ProcessItemSwapInput; } -static void sub_816C4FC(u8 taskId) +static void ItemStorage_ProcessItemSwapInput(u8 taskId) { s16 *data; s32 id; @@ -1214,230 +1283,220 @@ static void sub_816C4FC(u8 taskId) data = gTasks[taskId].data; if (JOY_NEW(SELECT_BUTTON)) { - ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - ItemStorage_DoItemSwap(taskId, FALSE); + ListMenuGetScrollAndRow(tListTaskId, &gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos); + ItemStorage_FinishItemSwap(taskId, FALSE); return; } - id = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - sub_81223FC(gUnknown_0203BCC4->spriteIds, 7, 0); - sub_816C690(playerPCItemPageInfo.cursorPos); - switch(id) + id = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos); + SetSwapLineSpritesInvisibility(sItemStorageMenu->swapLineSpriteIds, SWAP_LINE_LENGTH, FALSE); + ItemStorage_UpdateSwapLinePos(gPlayerPCItemPageInfo.cursorPos); + switch (id) { case LIST_NOTHING_CHOSEN: break; case LIST_CANCEL: if (JOY_NEW(A_BUTTON)) - { - ItemStorage_DoItemSwap(taskId, FALSE); - } + ItemStorage_FinishItemSwap(taskId, FALSE); else - { - ItemStorage_DoItemSwap(taskId, TRUE); - } + ItemStorage_FinishItemSwap(taskId, TRUE); break; default: - ItemStorage_DoItemSwap(taskId, FALSE); + ItemStorage_FinishItemSwap(taskId, FALSE); break; } } -static void ItemStorage_DoItemSwap(u8 taskId, bool8 a) +static void ItemStorage_FinishItemSwap(u8 taskId, bool8 canceled) { - s16 *data; - u16 b; - u8 c; - - data = gTasks[taskId].data; - b = (playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos); + s16 *data = gTasks[taskId].data; + u16 newPos = gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos; PlaySE(SE_SELECT); - DestroyListMenuTask(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - if (!a) + DestroyListMenuTask(tListTaskId, &gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos); + + if (!canceled && sItemStorageMenu->toSwapPos != newPos && sItemStorageMenu->toSwapPos != newPos - 1) { - c = gUnknown_0203BCC4->unk666; - if (c != b) - { - if (c != b - 1) - { - MoveItemSlotInList(gSaveBlock1Ptr->pcItems, c, b); - ItemStorage_RefreshListMenu(); - } - } - else - goto LABEL_SKIP_CURSOR_DECREMENT; + MoveItemSlotInList(gSaveBlock1Ptr->pcItems, sItemStorageMenu->toSwapPos, newPos); + ItemStorage_RefreshListMenu(); } - if (gUnknown_0203BCC4->unk666 < b) - playerPCItemPageInfo.cursorPos--; - LABEL_SKIP_CURSOR_DECREMENT: - sub_81223FC(gUnknown_0203BCC4->spriteIds, 7, 1); - gUnknown_0203BCC4->unk666 = 0xFF; - data[5] = ListMenuInit(&gMultiuseListMenuTemplate, playerPCItemPageInfo.itemsAbove, playerPCItemPageInfo.cursorPos); + if (sItemStorageMenu->toSwapPos < newPos) + gPlayerPCItemPageInfo.cursorPos--; + + SetSwapLineSpritesInvisibility(sItemStorageMenu->swapLineSpriteIds, SWAP_LINE_LENGTH, TRUE); + sItemStorageMenu->toSwapPos = NOT_SWAPPING; + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, gPlayerPCItemPageInfo.itemsAbove, gPlayerPCItemPageInfo.cursorPos); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = ItemStorage_ProcessInput; } -static void sub_816C690(u8 a) +static void ItemStorage_UpdateSwapLinePos(u8 y) { - sub_8122448(gUnknown_0203BCC4->spriteIds, 7, 128, ((a+1) * 16)); + UpdateSwapLineSpritesPos(sItemStorageMenu->swapLineSpriteIds, SWAP_LINE_LENGTH, 128, (y+1) * 16); } -static void sub_816C6BC(u8 windowId, u16 value, u32 mode, u8 x, u8 y, u8 n) +static void ItemStorage_PrintItemQuantity(u8 windowId, u16 value, u32 mode, u8 x, u8 y, u8 n) { ConvertIntToDecimalStringN(gStringVar1, value, mode, n); StringExpandPlaceholders(gStringVar4, gText_xVar1); AddTextPrinterParameterized(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 48), y, 0, NULL); } +// Start an item Withdraw/Toss static void ItemStorage_DoItemAction(u8 taskId) { - s16 *data; - u16 b; - - data = gTasks[taskId].data; - b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); + s16 *data = gTasks[taskId].data; + u16 pos = gPlayerPCItemPageInfo.cursorPos + gPlayerPCItemPageInfo.itemsAbove; ItemStorage_RemoveScrollIndicator(); - data[2] = 1; - if (!data[3]) + tQuantity = 1; + + if (!tInTossMenu) { - if (gSaveBlock1Ptr->pcItems[b].quantity == 1) + if (gSaveBlock1Ptr->pcItems[pos].quantity == 1) { + // Withdrawing 1 item, do it automatically ItemStorage_DoItemWithdraw(taskId); return; } - CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(ITEMPC_HOW_MANY_TO_WITHDRAW)); + + // Withdrawing multiple items, show "how many" message + CopyItemName(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1); + ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_HOW_MANY_TO_WITHDRAW)); } else { - if (gSaveBlock1Ptr->pcItems[b].quantity == 1) + if (gSaveBlock1Ptr->pcItems[pos].quantity == 1) { + // Tossing 1 item, do it automatically ItemStorage_DoItemToss(taskId); return; } - CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(ITEMPC_HOW_MANY_TO_TOSS)); + + // Tossing multiple items, show "how many" message + CopyItemName(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1); + ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_HOW_MANY_TO_TOSS)); } - sub_816C6BC(sub_816BC7C(4), data[2], STR_CONV_MODE_LEADING_ZEROS, 8, 1, 3); + + // Set up "how many" prompt + ItemStorage_PrintItemQuantity(ItemStorage_AddWindow(ITEMPC_WIN_QUANTITY), tQuantity, STR_CONV_MODE_LEADING_ZEROS, 8, 1, 3); gTasks[taskId].func = ItemStorage_HandleQuantityRolling; } static void ItemStorage_HandleQuantityRolling(u8 taskId) { - s16 *data; - u16 b; + s16 *data = gTasks[taskId].data; + u16 pos = gPlayerPCItemPageInfo.cursorPos + gPlayerPCItemPageInfo.itemsAbove; - data = gTasks[taskId].data; - b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if (AdjustQuantityAccordingToDPadInput(&(data[2]), gSaveBlock1Ptr->pcItems[b].quantity) == TRUE) - sub_816C6BC(sub_816BC7C(4), data[2], STR_CONV_MODE_LEADING_ZEROS, 8, 1, 3); + if (AdjustQuantityAccordingToDPadInput(&tQuantity, gSaveBlock1Ptr->pcItems[pos].quantity) == TRUE) + { + ItemStorage_PrintItemQuantity(ItemStorage_AddWindow(ITEMPC_WIN_QUANTITY), tQuantity, STR_CONV_MODE_LEADING_ZEROS, 8, 1, 3); + } else { if (JOY_NEW(A_BUTTON)) { + // Quantity confirmed, perform action PlaySE(SE_SELECT); - sub_816BCC4(4); - if (!data[3]) + ItemStorage_RemoveWindow(ITEMPC_WIN_QUANTITY); + if (!tInTossMenu) ItemStorage_DoItemWithdraw(taskId); else ItemStorage_DoItemToss(taskId); } else if (JOY_NEW(B_BUTTON)) { + // Canceled action PlaySE(SE_SELECT); - sub_816BCC4(4); - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(gSaveBlock1Ptr->pcItems[b].itemId)); - ItemStorage_StartScrollIndicatorAndProcessInput(taskId); + ItemStorage_RemoveWindow(ITEMPC_WIN_QUANTITY); + ItemStorage_PrintMessage(ItemStorage_GetMessage(gSaveBlock1Ptr->pcItems[pos].itemId)); + ItemStorage_ReturnToListInput(taskId); } } } static void ItemStorage_DoItemWithdraw(u8 taskId) { - s16 *data; - u16 b; + s16 *data = gTasks[taskId].data; + u16 pos = gPlayerPCItemPageInfo.cursorPos + gPlayerPCItemPageInfo.itemsAbove; - data = gTasks[taskId].data; - b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if (AddBagItem(gSaveBlock1Ptr->pcItems[b].itemId, data[2]) == TRUE) + if (AddBagItem(gSaveBlock1Ptr->pcItems[pos].itemId, tQuantity) == TRUE) { - CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[2], STR_CONV_MODE_LEFT_ALIGN, 3); - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(ITEMPC_WITHDREW_THING)); + // Item withdrawn + CopyItemName(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, tQuantity, STR_CONV_MODE_LEFT_ALIGN, 3); + ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_WITHDREW_ITEM)); gTasks[taskId].func = ItemStorage_HandleRemoveItem; } else { - data[2] = 0; - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(ITEMPC_NO_MORE_ROOM)); - gTasks[taskId].func = ItemStorage_WaitPressHandleResumeProcessInput; + // No room to withdraw items + tQuantity = 0; + ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_NO_MORE_ROOM)); + gTasks[taskId].func = ItemStorage_HandleErrorMessageInput; } } static void ItemStorage_DoItemToss(u8 taskId) { - s16 *data; - u16 b; + s16 *data = gTasks[taskId].data; + u16 pos = gPlayerPCItemPageInfo.cursorPos + gPlayerPCItemPageInfo.itemsAbove; - data = gTasks[taskId].data; - b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if (!ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId)) + if (!ItemId_GetImportance(gSaveBlock1Ptr->pcItems[pos].itemId)) { - CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, data[2], STR_CONV_MODE_LEFT_ALIGN, 3); - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(ITEMPC_OKAY_TO_THROW_AWAY)); - CreateYesNoMenuWithCallbacks(taskId, &gUnknown_085DFF84, 1, 0, 1, 0x214, 0xE, &ResumeFromWithdrawYesNoFuncList); + // Show toss confirmation prompt + CopyItemName(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, tQuantity, STR_CONV_MODE_LEFT_ALIGN, 3); + ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_OKAY_TO_THROW_AWAY)); + CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates_ItemStorage[ITEMPC_WIN_YESNO], 1, 0, 1, 0x214, 0xE, &ItemTossYesNoFuncs); } else { - data[2] = 0; - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(ITEMPC_TOO_IMPORTANT)); - gTasks[taskId].func = ItemStorage_WaitPressHandleResumeProcessInput; + // Can't toss important items + tQuantity = 0; + ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_TOO_IMPORTANT)); + gTasks[taskId].func = ItemStorage_HandleErrorMessageInput; } } -static void ItemStorage_ResumeInputFromYesToss(u8 taskId) +static void ItemStorage_TossItemYes(u8 taskId) { - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(ITEMPC_THREW_AWAY_ITEM)); + ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_THREW_AWAY_ITEM)); gTasks[taskId].func = ItemStorage_HandleRemoveItem; } -static void ItemStorage_ResumeInputFromNoToss(u8 taskId) +static void ItemStorage_TossItemNo(u8 taskId) { - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(gSaveBlock1Ptr->pcItems[(playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos)].itemId)); - ItemStorage_StartScrollIndicatorAndProcessInput(taskId); + ItemStorage_PrintMessage(ItemStorage_GetMessage(gSaveBlock1Ptr->pcItems[gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos].itemId)); + ItemStorage_ReturnToListInput(taskId); } +// Remove item from PC (was either Tossed or Withdrawn) static void ItemStorage_HandleRemoveItem(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (JOY_NEW(A_BUTTON | B_BUTTON)) { - RemovePCItem((playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove), data[2]); - DestroyListMenuTask(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - sub_816C110(); - sub_816C140(); + RemovePCItem(gPlayerPCItemPageInfo.cursorPos + gPlayerPCItemPageInfo.itemsAbove, tQuantity); + DestroyListMenuTask(tListTaskId, &gPlayerPCItemPageInfo.itemsAbove, &gPlayerPCItemPageInfo.cursorPos); + ItemStorage_CompactList(); + ItemStorage_CompactCursor(); ItemStorage_RefreshListMenu(); - data[5] = ListMenuInit(&gMultiuseListMenuTemplate, playerPCItemPageInfo.itemsAbove, playerPCItemPageInfo.cursorPos); - ItemStorage_StartScrollIndicatorAndProcessInput(taskId); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, gPlayerPCItemPageInfo.itemsAbove, gPlayerPCItemPageInfo.cursorPos); + ItemStorage_ReturnToListInput(taskId); } } -static void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId) +static void ItemStorage_HandleErrorMessageInput(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (JOY_NEW(A_BUTTON | B_BUTTON)) { - ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(gSaveBlock1Ptr->pcItems[(playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos)].itemId)); - ItemStorage_StartScrollIndicatorAndProcessInput(taskId); + ItemStorage_PrintMessage(ItemStorage_GetMessage(gSaveBlock1Ptr->pcItems[gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos].itemId)); + ItemStorage_ReturnToListInput(taskId); } } -static void ItemStorage_StartScrollIndicatorAndProcessInput(u8 taskId) +static void ItemStorage_ReturnToListInput(u8 taskId) { - ItemStorage_StartScrollIndicator(); + ItemStorage_AddScrollIndicator(); gTasks[taskId].func = ItemStorage_ProcessInput; } diff --git a/src/pokeball.c b/src/pokeball.c index bbcedc948f..1c6bc089af 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -12,35 +12,36 @@ #include "task.h" #include "trig.h" #include "util.h" +#include "data.h" #include "constants/songs.h" extern struct MusicPlayerInfo gMPlayInfo_BGM; // this file's functions static void Task_DoPokeballSendOutAnim(u8 taskId); -static void SpriteCB_TestBallThrow(struct Sprite *sprite); static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite); static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite); static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite); -static void sub_80756D4(struct Sprite *sprite); -static void sub_80756E0(struct Sprite *sprite); -static void sub_807574C(struct Sprite *sprite); -static void sub_80757E4(struct Sprite *sprite); -static void sub_8075838(struct Sprite *sprite); -static void sub_8075930(struct Sprite *sprite); +static void SpriteCB_BallThrow(struct Sprite *sprite); +static void SpriteCB_BallThrow_ReachMon(struct Sprite *sprite); +static void SpriteCB_BallThrow_StartShrinkMon(struct Sprite *sprite); +static void SpriteCB_BallThrow_ShrinkMon(struct Sprite *sprite); +static void SpriteCB_BallThrow_Close(struct Sprite *sprite); +static void SpriteCB_BallThrow_FallToGround(struct Sprite *sprite); +static void SpriteCB_BallThrow_StartShakes(struct Sprite *sprite); +static void SpriteCB_BallThrow_Shake(struct Sprite *sprite); +static void SpriteCB_BallThrow_StartCaptureMon(struct Sprite *sprite); +static void SpriteCB_BallThrow_CaptureMon(struct Sprite *sprite); static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite); static void SpriteCB_ReleaseMon2FromBall(struct Sprite *sprite); -static void sub_8075970(struct Sprite *sprite); static void HandleBallAnimEnd(struct Sprite *sprite); -static void sub_8075FB4(struct Sprite *sprite); -static void sub_80760F8(struct Sprite *sprite); -static void sub_8076524(struct Sprite *sprite); -static void sub_80765E0(struct Sprite *sprite); -static void sub_80767D4(struct Sprite *sprite); -static void sub_807687C(struct Sprite *sprite); -static void sub_80768F0(struct Sprite *sprite); -static void sub_80769A8(struct Sprite *sprite); -static void sub_80769CC(struct Sprite *sprite); +static void SpriteCB_PokeballReleaseMon(struct Sprite *sprite); +static void SpriteCB_ReleasedMonFlyOut(struct Sprite *sprite); +static void SpriteCB_TradePokeball(struct Sprite *sprite); +static void SpriteCB_TradePokeballSendOff(struct Sprite *sprite); +static void SpriteCB_TradePokeballEnd(struct Sprite *sprite); +static void SpriteCB_HealthboxSlideInDelayed(struct Sprite *sprite); +static void SpriteCB_HealthboxSlideIn(struct Sprite *sprite); static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite); static u16 GetBattlerPokeballItemId(u8 battlerId); @@ -61,34 +62,34 @@ static u16 GetBattlerPokeballItemId(u8 battlerId); const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] = { - {gInterfaceGfx_PokeBall, 384, GFX_TAG_POKEBALL}, - {gInterfaceGfx_GreatBall, 384, GFX_TAG_GREATBALL}, - {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARIBALL}, - {gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRABALL}, - {gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTERBALL}, - {gInterfaceGfx_NetBall, 384, GFX_TAG_NETBALL}, - {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVEBALL}, - {gInterfaceGfx_NestBall, 384, GFX_TAG_NESTBALL}, - {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEATBALL}, - {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMERBALL}, - {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURYBALL}, - {gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIERBALL}, + [BALL_POKE] = {gInterfaceGfx_PokeBall, 384, GFX_TAG_POKEBALL}, + [BALL_GREAT] = {gInterfaceGfx_GreatBall, 384, GFX_TAG_GREATBALL}, + [BALL_SAFARI] = {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARIBALL}, + [BALL_ULTRA] = {gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRABALL}, + [BALL_MASTER] = {gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTERBALL}, + [BALL_NET] = {gInterfaceGfx_NetBall, 384, GFX_TAG_NETBALL}, + [BALL_DIVE] = {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVEBALL}, + [BALL_NEST] = {gInterfaceGfx_NestBall, 384, GFX_TAG_NESTBALL}, + [BALL_REPEAT] = {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEATBALL}, + [BALL_TIMER] = {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMERBALL}, + [BALL_LUXURY] = {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURYBALL}, + [BALL_PREMIER] = {gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIERBALL}, }; const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] = { - {gInterfacePal_PokeBall, GFX_TAG_POKEBALL}, - {gInterfacePal_GreatBall, GFX_TAG_GREATBALL}, - {gInterfacePal_SafariBall, GFX_TAG_SAFARIBALL}, - {gInterfacePal_UltraBall, GFX_TAG_ULTRABALL}, - {gInterfacePal_MasterBall, GFX_TAG_MASTERBALL}, - {gInterfacePal_NetBall, GFX_TAG_NETBALL}, - {gInterfacePal_DiveBall, GFX_TAG_DIVEBALL}, - {gInterfacePal_NestBall, GFX_TAG_NESTBALL}, - {gInterfacePal_RepeatBall, GFX_TAG_REPEATBALL}, - {gInterfacePal_TimerBall, GFX_TAG_TIMERBALL}, - {gInterfacePal_LuxuryBall, GFX_TAG_LUXURYBALL}, - {gInterfacePal_PremierBall, GFX_TAG_PREMIERBALL}, + [BALL_POKE] = {gInterfacePal_PokeBall, GFX_TAG_POKEBALL}, + [BALL_GREAT] = {gInterfacePal_GreatBall, GFX_TAG_GREATBALL}, + [BALL_SAFARI] = {gInterfacePal_SafariBall, GFX_TAG_SAFARIBALL}, + [BALL_ULTRA] = {gInterfacePal_UltraBall, GFX_TAG_ULTRABALL}, + [BALL_MASTER] = {gInterfacePal_MasterBall, GFX_TAG_MASTERBALL}, + [BALL_NET] = {gInterfacePal_NetBall, GFX_TAG_NETBALL}, + [BALL_DIVE] = {gInterfacePal_DiveBall, GFX_TAG_DIVEBALL}, + [BALL_NEST] = {gInterfacePal_NestBall, GFX_TAG_NESTBALL}, + [BALL_REPEAT] = {gInterfacePal_RepeatBall, GFX_TAG_REPEATBALL}, + [BALL_TIMER] = {gInterfacePal_TimerBall, GFX_TAG_TIMERBALL}, + [BALL_LUXURY] = {gInterfacePal_LuxuryBall, GFX_TAG_LUXURYBALL}, + [BALL_PREMIER] = {gInterfacePal_PremierBall, GFX_TAG_PREMIERBALL}, }; static const struct OamData sBallOamData = @@ -213,7 +214,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_GREATBALL, @@ -222,7 +223,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_SAFARIBALL, @@ -231,7 +232,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_ULTRABALL, @@ -240,7 +241,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_MASTERBALL, @@ -249,7 +250,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_NETBALL, @@ -258,7 +259,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_DIVEBALL, @@ -267,7 +268,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_NESTBALL, @@ -276,7 +277,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_REPEATBALL, @@ -285,7 +286,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_TIMERBALL, @@ -294,7 +295,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_LUXURYBALL, @@ -303,7 +304,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, { .tileTag = GFX_TAG_PREMIERBALL, @@ -312,7 +313,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .anims = sBallAnimSequences, .images = NULL, .affineAnims = sAffineAnim_BallRotate, - .callback = SpriteCB_TestBallThrow, + .callback = SpriteCB_BallThrow, }, }; @@ -363,13 +364,13 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) { case POKEBALL_PLAYER_SENDOUT: gBattlerTarget = battlerId; - gSprites[ballSpriteId].pos1.x = 24; - gSprites[ballSpriteId].pos1.y = 68; + gSprites[ballSpriteId].x = 24; + gSprites[ballSpriteId].y = 68; gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1; break; case POKEBALL_OPPONENT_SENDOUT: - gSprites[ballSpriteId].pos1.x = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X); - gSprites[ballSpriteId].pos1.y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 24; + gSprites[ballSpriteId].x = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X); + gSprites[ballSpriteId].y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 24; gBattlerTarget = battlerId; gSprites[ballSpriteId].data[0] = 0; gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; @@ -399,7 +400,10 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) PlaySE(SE_BALL_THROW); } -static void SpriteCB_TestBallThrow(struct Sprite *sprite) +// This sequence of functions is very similar to those that get run when +// a Pokéball gets thrown at a wild Pokémon, starting at SpriteCB_Ball_Arc. +// These do not seem to get run. +static void SpriteCB_BallThrow(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -410,18 +414,18 @@ static void SpriteCB_TestBallThrow(struct Sprite *sprite) StartSpriteAnim(sprite, 1); sprite->affineAnimPaused = 1; - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[5] = 0; ballId = ItemIdToBallId(GetBattlerPokeballItemId(opponentBattler)); - AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 0x1C, ballId); sprite->data[0] = LaunchBallFadeMonTask(FALSE, opponentBattler, 14, ballId); sprite->sBattler = opponentBattler; sprite->data[7] = noOfShakes; DestroyTask(taskId); - sprite->callback = sub_80756D4; + sprite->callback = SpriteCB_BallThrow_ReachMon; } } @@ -431,26 +435,24 @@ static void SpriteCB_TestBallThrow(struct Sprite *sprite) #undef tBattler #undef tOpponentBattler -static void sub_80756D4(struct Sprite *sprite) +static void SpriteCB_BallThrow_ReachMon(struct Sprite *sprite) { - sprite->callback = sub_80756E0; + sprite->callback = SpriteCB_BallThrow_StartShrinkMon; } -// Start something for battler -static void sub_80756E0(struct Sprite *sprite) +static void SpriteCB_BallThrow_StartShrinkMon(struct Sprite *sprite) { if (++sprite->data[5] == 10) { sprite->data[5] = 0; - sprite->callback = sub_807574C; - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], 2); + sprite->callback = SpriteCB_BallThrow_ShrinkMon; + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], BATTLER_AFFINE_RETURN); AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBattler]]); gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] = 0; } } -// Shrink player -static void sub_807574C(struct Sprite *sprite) +static void SpriteCB_BallThrow_ShrinkMon(struct Sprite *sprite) { sprite->data[5]++; if (sprite->data[5] == 11) @@ -460,16 +462,16 @@ static void sub_807574C(struct Sprite *sprite) StartSpriteAnim(sprite, 2); gSprites[gBattlerSpriteIds[sprite->sBattler]].invisible = TRUE; sprite->data[5] = 0; - sprite->callback = sub_80757E4; + sprite->callback = SpriteCB_BallThrow_Close; } else { gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] += 0x60; - gSprites[gBattlerSpriteIds[sprite->sBattler]].pos2.y = -gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] >> 8; + gSprites[gBattlerSpriteIds[sprite->sBattler]].y2 = -gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] >> 8; } } -static void sub_80757E4(struct Sprite *sprite) +static void SpriteCB_BallThrow_Close(struct Sprite *sprite) { if (sprite->animEnded) { @@ -479,21 +481,21 @@ static void sub_80757E4(struct Sprite *sprite) sprite->data[3] = 0; sprite->data[4] = 32; sprite->data[5] = 0; - sprite->pos1.y += Cos(0, 32); - sprite->pos2.y = -Cos(0, sprite->data[4]); - sprite->callback = sub_8075838; + sprite->y += Cos(0, 32); + sprite->y2 = -Cos(0, sprite->data[4]); + sprite->callback = SpriteCB_BallThrow_FallToGround; } } } -static void sub_8075838(struct Sprite *sprite) +static void SpriteCB_BallThrow_FallToGround(struct Sprite *sprite) { bool8 r5 = FALSE; switch (sprite->data[3] & 0xFF) { case 0: - sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); + sprite->y2 = -Cos(sprite->data[5], sprite->data[4]); sprite->data[5] += 4 + (sprite->data[3] >> 8); if (sprite->data[5] >= 64) { @@ -519,7 +521,7 @@ static void sub_8075838(struct Sprite *sprite) } break; case 1: - sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); + sprite->y2 = -Cos(sprite->data[5], sprite->data[4]); sprite->data[5] -= 4 + (sprite->data[3] >> 8); if (sprite->data[5] <= 0) { @@ -531,22 +533,22 @@ static void sub_8075838(struct Sprite *sprite) if (r5) { sprite->data[3] = 0; - sprite->pos1.y += Cos(64, 32); - sprite->pos2.y = 0; + sprite->y += Cos(64, 32); + sprite->y2 = 0; if (sprite->data[7] == 0) { sprite->callback = SpriteCB_ReleaseMonFromBall; } else { - sprite->callback = sub_8075930; + sprite->callback = SpriteCB_BallThrow_StartShakes; sprite->data[4] = 1; sprite->data[5] = 0; } } } -static void sub_8075930(struct Sprite *sprite) +static void SpriteCB_BallThrow_StartShakes(struct Sprite *sprite) { sprite->data[3]++; if (sprite->data[3] == 31) @@ -554,18 +556,18 @@ static void sub_8075930(struct Sprite *sprite) sprite->data[3] = 0; sprite->affineAnimPaused = TRUE; StartSpriteAffineAnim(sprite, 1); - sprite->callback = sub_8075970; + sprite->callback = SpriteCB_BallThrow_Shake; PlaySE(SE_BALL); } } -static void sub_8075970(struct Sprite *sprite) +static void SpriteCB_BallThrow_Shake(struct Sprite *sprite) { switch (sprite->data[3] & 0xFF) { case 0: case 2: - sprite->pos2.x += sprite->data[4]; + sprite->x2 += sprite->data[4]; sprite->data[5] += sprite->data[4]; sprite->affineAnimPaused = FALSE; if (sprite->data[5] > 3 || sprite->data[5] < -3) @@ -602,7 +604,7 @@ static void sub_8075970(struct Sprite *sprite) { if (sprite->data[7] == 4 && sprite->data[3] >> 8 == 3) { - sprite->callback = sub_8075FB4; + sprite->callback = SpriteCB_BallThrow_StartCaptureMon; sprite->affineAnimPaused = TRUE; } else @@ -647,7 +649,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) u16 species = gTasks[taskId].tCryTaskSpecies; u8 battlerId = gTasks[taskId].tCryTaskBattler; u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId; - struct Pokemon *mon = (void*)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 0x10) | (u16)(gTasks[taskId].tCryTaskMonPtr2)); + struct Pokemon *mon = (void*)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 16) | (u16)(gTasks[taskId].tCryTaskMonPtr2)); switch (gTasks[taskId].tCryTaskState) { @@ -661,7 +663,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) PlayCry3(species, pan, 0); else PlayCry3(species, pan, 11); - gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0; + gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE; DestroyTask(taskId); break; case 2: @@ -677,7 +679,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) else PlayCry4(species, pan, 12); - gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0; + gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE; DestroyTask(taskId); } else @@ -716,7 +718,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) else PlayCry4(species, pan, 11); - gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0; + gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE; DestroyTask(taskId); break; } @@ -729,7 +731,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) StartSpriteAnim(sprite, 1); ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId)); - AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 0x1C, ballId); sprite->data[0] = LaunchBallFadeMonTask(TRUE, sprite->sBattler, 14, ballId); sprite->callback = HandleBallAnimEnd; @@ -752,7 +754,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) } if ((battlerId == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battlerId == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) - && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1) + && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -765,14 +767,15 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) } } - if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1) + if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->introAnimActive) wantedCryCase = 0; else if (battlerId == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battlerId == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) wantedCryCase = 1; else wantedCryCase = 2; - gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 1; + gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = TRUE; + taskId = CreateTask(Task_PlayCryWhenReleasedFromBall, 3); illusionMon = GetIllusionMonPtr(battlerId); @@ -785,12 +788,12 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) gTasks[taskId].tCryTaskWantedCry = wantedCryCase; gTasks[taskId].tCryTaskBattler = battlerId; gTasks[taskId].tCryTaskMonSpriteId = gBattlerSpriteIds[sprite->sBattler]; - gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10; + gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 16; gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon); gTasks[taskId].tCryTaskState = 0; } - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], 1); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], BATTLER_AFFINE_EMERGE); if (GetBattlerSide(sprite->sBattler) == B_SIDE_OPPONENT) gSprites[gBattlerSpriteIds[sprite->sBattler]].callback = SpriteCb_OpponentMonFromBall; @@ -811,10 +814,10 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) #undef tCryTaskFrames #undef tCryTaskState -static void sub_8075FB4(struct Sprite *sprite) +static void SpriteCB_BallThrow_StartCaptureMon(struct Sprite *sprite) { sprite->animPaused = TRUE; - sprite->callback = sub_80760F8; + sprite->callback = SpriteCB_BallThrow_CaptureMon; sprite->data[3] = 0; sprite->data[4] = 0; sprite->data[5] = 0; @@ -830,19 +833,19 @@ static void HandleBallAnimEnd(struct Sprite *sprite) sprite->invisible = TRUE; if (gSprites[gBattlerSpriteIds[battlerId]].affineAnimEnded) { - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[battlerId]], 0); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[battlerId]], BATTLER_AFFINE_NORMAL); affineAnimEnded = TRUE; } else { gSprites[gBattlerSpriteIds[battlerId]].data[1] -= 288; - gSprites[gBattlerSpriteIds[battlerId]].pos2.y = gSprites[gBattlerSpriteIds[battlerId]].data[1] >> 8; + gSprites[gBattlerSpriteIds[battlerId]].y2 = gSprites[gBattlerSpriteIds[battlerId]].data[1] >> 8; } if (sprite->animEnded && affineAnimEnded) { s32 i, doneBattlers; - gSprites[gBattlerSpriteIds[battlerId]].pos2.y = 0; + gSprites[gBattlerSpriteIds[battlerId]].y2 = 0; gDoingBattleAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[battlerId].ballAnimActive = 0; FreeSpriteOamMatrix(sprite); @@ -861,7 +864,7 @@ static void HandleBallAnimEnd(struct Sprite *sprite) } } -static void sub_80760F8(struct Sprite *sprite) +static void SpriteCB_BallThrow_CaptureMon(struct Sprite *sprite) { u8 battlerId = sprite->sBattler; @@ -919,7 +922,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite) r4 = sprite->data[0]; AnimTranslateLinear(sprite); sprite->data[7] += sprite->sBattler / 3; - sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]); + sprite->y2 += Sin(HIBYTE(sprite->data[7]), sprite->data[5]); sprite->oam.affineParam += 0x100; if ((sprite->oam.affineParam >> 8) % 3 != 0) sprite->data[0] = r4; @@ -937,14 +940,14 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->y += sprite->y2; + sprite->y2 = 0; + sprite->x2 = 0; sprite->sBattler = sprite->oam.affineParam & 0xFF; sprite->data[0] = 0; - if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 + if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive && sprite->sBattler == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else @@ -970,7 +973,7 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite) if (sprite->data[0] > 15) { sprite->data[0] = 0; - if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 + if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive && sprite->sBattler == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else @@ -990,6 +993,7 @@ static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 battlerId, u32 return LaunchBallFadeMonTask(unFadeLater, battlerId, arg2, BALL_POKE); } +// Pokeball in Birch intro, and when receiving via trade void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battlerId, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species) { u8 spriteId; @@ -999,11 +1003,11 @@ void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battlerId, u8 x, u8 y, spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subpriortiy); gSprites[spriteId].data[0] = monSpriteId; - gSprites[spriteId].data[5] = gSprites[monSpriteId].pos1.x; - gSprites[spriteId].data[6] = gSprites[monSpriteId].pos1.y; + gSprites[spriteId].data[5] = gSprites[monSpriteId].x; + gSprites[spriteId].data[6] = gSprites[monSpriteId].y; - gSprites[monSpriteId].pos1.x = x; - gSprites[monSpriteId].pos1.y = y; + gSprites[monSpriteId].x = x; + gSprites[monSpriteId].y = y; gSprites[monSpriteId].data[7] = species; gSprites[spriteId].data[1] = g; @@ -1011,12 +1015,12 @@ void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battlerId, u8 x, u8 y, gSprites[spriteId].data[3] = h; gSprites[spriteId].data[4] = h >> 0x10; gSprites[spriteId].oam.priority = oamPriority; - gSprites[spriteId].callback = sub_8076524; + gSprites[spriteId].callback = SpriteCB_PokeballReleaseMon; gSprites[monSpriteId].invisible = TRUE; } -static void sub_8076524(struct Sprite *sprite) +static void SpriteCB_PokeballReleaseMon(struct Sprite *sprite) { if (sprite->data[1] == 0) { @@ -1031,11 +1035,11 @@ static void sub_8076524(struct Sprite *sprite) r5 = 0; StartSpriteAnim(sprite, 1); - AnimateBallOpenParticlesForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r5); + AnimateBallOpenParticlesForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, r5); sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, battlerId, r4); - sprite->callback = sub_80765E0; + sprite->callback = SpriteCB_ReleasedMonFlyOut; gSprites[r7].invisible = FALSE; - StartSpriteAffineAnim(&gSprites[r7], 1); + StartSpriteAffineAnim(&gSprites[r7], BATTLER_AFFINE_EMERGE); AnimateSprite(&gSprites[r7]); gSprites[r7].data[1] = 0x1000; sprite->data[7] = 0; @@ -1046,7 +1050,7 @@ static void sub_8076524(struct Sprite *sprite) } } -static void sub_80765E0(struct Sprite *sprite) +static void SpriteCB_ReleasedMonFlyOut(struct Sprite *sprite) { bool8 r12 = FALSE; bool8 r6 = FALSE; @@ -1058,27 +1062,27 @@ static void sub_80765E0(struct Sprite *sprite) sprite->invisible = TRUE; if (gSprites[monSpriteId].affineAnimEnded) { - StartSpriteAffineAnim(&gSprites[monSpriteId], 0); + StartSpriteAffineAnim(&gSprites[monSpriteId], BATTLER_AFFINE_NORMAL); r12 = TRUE; } - var1 = (sprite->data[5] - sprite->pos1.x) * sprite->data[7] / 128 + sprite->pos1.x; - var2 = (sprite->data[6] - sprite->pos1.y) * sprite->data[7] / 128 + sprite->pos1.y; - gSprites[monSpriteId].pos1.x = var1; - gSprites[monSpriteId].pos1.y = var2; + var1 = (sprite->data[5] - sprite->x) * sprite->data[7] / 128 + sprite->x; + var2 = (sprite->data[6] - sprite->y) * sprite->data[7] / 128 + sprite->y; + gSprites[monSpriteId].x = var1; + gSprites[monSpriteId].y = var2; if (sprite->data[7] < 128) { s16 sine = -(gSineTable[(u8)sprite->data[7]] / 8); sprite->data[7] += 4; - gSprites[monSpriteId].pos2.x = sine; - gSprites[monSpriteId].pos2.y = sine; + gSprites[monSpriteId].x2 = sine; + gSprites[monSpriteId].y2 = sine; } else { - gSprites[monSpriteId].pos1.x = sprite->data[5]; - gSprites[monSpriteId].pos1.y = sprite->data[6]; - gSprites[monSpriteId].pos2.x = 0; - gSprites[monSpriteId].pos2.y = 0; + gSprites[monSpriteId].x = sprite->data[5]; + gSprites[monSpriteId].y = sprite->data[6]; + gSprites[monSpriteId].x2 = 0; + gSprites[monSpriteId].y2 = 0; r6 = TRUE; } if (sprite->animEnded && r12 && r6) @@ -1105,16 +1109,16 @@ u8 CreateTradePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPrior gSprites[spriteId].data[3] = h; gSprites[spriteId].data[4] = h >> 16; gSprites[spriteId].oam.priority = oamPriority; - gSprites[spriteId].callback = sub_80767D4; + gSprites[spriteId].callback = SpriteCB_TradePokeball; return spriteId; } -static void sub_80767D4(struct Sprite *sprite) +static void SpriteCB_TradePokeball(struct Sprite *sprite) { if (sprite->data[1] == 0) { u8 r6; - u8 r7 = sprite->data[0]; + u8 monSpriteId = sprite->data[0]; u8 r8 = sprite->data[2]; u32 r5 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16); @@ -1124,17 +1128,17 @@ static void sub_80767D4(struct Sprite *sprite) r6 = 0; StartSpriteAnim(sprite, 1); - AnimateBallOpenParticlesForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6); + AnimateBallOpenParticlesForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, r6); sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, r8, r5); - sprite->callback = sub_807687C; + sprite->callback = SpriteCB_TradePokeballSendOff; #ifdef BUGFIX // FIX: If this is used on a sprite that has previously had an affine animation, it will not // play the shrink anim properly due to being paused. Works together with the fix to `sub_817F77C`. - gSprites[r7].affineAnimPaused = FALSE; + gSprites[monSpriteId].affineAnimPaused = FALSE; #endif // BUGFIX - StartSpriteAffineAnim(&gSprites[r7], 2); - AnimateSprite(&gSprites[r7]); - gSprites[r7].data[1] = 0; + StartSpriteAffineAnim(&gSprites[monSpriteId], BATTLER_AFFINE_RETURN); + AnimateSprite(&gSprites[monSpriteId]); + gSprites[monSpriteId].data[1] = 0; } else { @@ -1142,29 +1146,29 @@ static void sub_80767D4(struct Sprite *sprite) } } -static void sub_807687C(struct Sprite *sprite) +static void SpriteCB_TradePokeballSendOff(struct Sprite *sprite) { - u8 r1; + u8 monSpriteId; sprite->data[5]++; if (sprite->data[5] == 11) PlaySE(SE_BALL_TRADE); - r1 = sprite->data[0]; - if (gSprites[r1].affineAnimEnded) + monSpriteId = sprite->data[0]; + if (gSprites[monSpriteId].affineAnimEnded) { StartSpriteAnim(sprite, 2); - gSprites[r1].invisible = TRUE; + gSprites[monSpriteId].invisible = TRUE; sprite->data[5] = 0; - sprite->callback = sub_80768F0; + sprite->callback = SpriteCB_TradePokeballEnd; } else { - gSprites[r1].data[1] += 96; - gSprites[r1].pos2.y = -gSprites[r1].data[1] >> 8; + gSprites[monSpriteId].data[1] += 96; + gSprites[monSpriteId].y2 = -gSprites[monSpriteId].data[1] >> 8; } } -static void sub_80768F0(struct Sprite *sprite) +static void SpriteCB_TradePokeballEnd(struct Sprite *sprite) { if (sprite->animEnded) sprite->callback = SpriteCallbackDummy; @@ -1175,45 +1179,54 @@ static void Unref_DestroySpriteAndFreeResources(struct Sprite *sprite) DestroySpriteAndFreeResources(sprite); } -void sub_8076918(u8 battlerId) +#define sSpeedX data[0] +#define sSpeedY data[1] + +#define sDelayTimer data[1] + +void StartHealthboxSlideIn(u8 battlerId) { struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[battlerId]]; - healthboxSprite->data[0] = 5; - healthboxSprite->data[1] = 0; - healthboxSprite->pos2.x = 0x73; - healthboxSprite->pos2.y = 0; - healthboxSprite->callback = sub_80769CC; + healthboxSprite->sSpeedX = 5; + healthboxSprite->sSpeedY = 0; + healthboxSprite->x2 = 0x73; + healthboxSprite->y2 = 0; + healthboxSprite->callback = SpriteCB_HealthboxSlideIn; if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) { - healthboxSprite->data[0] = -healthboxSprite->data[0]; - healthboxSprite->data[1] = -healthboxSprite->data[1]; - healthboxSprite->pos2.x = -healthboxSprite->pos2.x; - healthboxSprite->pos2.y = -healthboxSprite->pos2.y; + healthboxSprite->sSpeedX = -healthboxSprite->sSpeedX; + healthboxSprite->sSpeedY = -healthboxSprite->sSpeedY; + healthboxSprite->x2 = -healthboxSprite->x2; + healthboxSprite->y2 = -healthboxSprite->y2; } gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]); if (GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT) - healthboxSprite->callback = sub_80769A8; + healthboxSprite->callback = SpriteCB_HealthboxSlideInDelayed; } -static void sub_80769A8(struct Sprite *sprite) +static void SpriteCB_HealthboxSlideInDelayed(struct Sprite *sprite) { - sprite->data[1]++; - if (sprite->data[1] == 20) + sprite->sDelayTimer++; + if (sprite->sDelayTimer == 20) { - sprite->data[1] = 0; - sprite->callback = sub_80769CC; + sprite->sDelayTimer = 0; + sprite->callback = SpriteCB_HealthboxSlideIn; } } -static void sub_80769CC(struct Sprite *sprite) +static void SpriteCB_HealthboxSlideIn(struct Sprite *sprite) { - sprite->pos2.x -= sprite->data[0]; - sprite->pos2.y -= sprite->data[1]; - if (sprite->pos2.x == 0 && sprite->pos2.y == 0) + sprite->x2 -= sprite->sSpeedX; + sprite->y2 -= sprite->sSpeedY; + if (sprite->x2 == 0 && sprite->y2 == 0) sprite->callback = SpriteCallbackDummy; } +#undef sSpeedX +#undef sSpeedY +#undef sDelayTimer + void DoHitAnimHealthboxEffect(u8 battlerId) { u8 spriteId; @@ -1228,13 +1241,13 @@ static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite) { u8 r1 = sprite->data[1]; - gSprites[r1].pos2.y = sprite->data[0]; + gSprites[r1].y2 = sprite->data[0]; sprite->data[0] = -sprite->data[0]; sprite->data[2]++; if (sprite->data[2] == 21) { - gSprites[r1].pos2.x = 0; - gSprites[r1].pos2.y = 0; + gSprites[r1].x2 = 0; + gSprites[r1].y2 = 0; DestroySprite(sprite); } } @@ -1256,7 +1269,7 @@ void LoadBallGfx(u8 ballId) break; default: var = GetSpriteTileStartByTag(gBallSpriteSheets[ballId].tag); - LZDecompressVram(gOpenPokeballGfx, (void *)(VRAM + 0x10100 + var * 32)); + LZDecompressVram(gOpenPokeballGfx, (void *)(OBJ_VRAM0 + 0x100 + var * 32)); break; } } diff --git a/src/pokeblock.c b/src/pokeblock.c index 0bfb10632a..fad6858ecc 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -29,28 +29,50 @@ #include "task.h" #include "text.h" #include "text_window.h" -#include "constants/berry.h" #include "constants/items.h" #include "constants/songs.h" #include "constants/rgb.h" +#define MAX_MENU_ITEMS 9 +#define MENU_MIDPOINT (MAX_MENU_ITEMS / 2) + +#define TILE_HIGHLIGHT_NONE 0x0005 // Tile number for the bg of an unselected menu item +#define TILE_HIGHLIGHT_BLUE 0x1005 // Tile number for the bg of a selected menu item +#define TILE_HIGHLIGHT_RED 0x2005 // Tile number for the bg of a menu item to swap + +#define TAG_POKEBLOCK_CASE 14800 +#define TAG_SCROLL_ARROW 1110 + #define POKEBLOCK_MAX_FEEL 99 -#define FIELD_E75_COUNT 7 + +enum { + WIN_TITLE, + WIN_LIST, + WIN_SPICY, + WIN_DRY, + WIN_SWEET, + WIN_BITTER, + WIN_SOUR, + WIN_FEEL, + WIN_ACTIONS_TALL, + WIN_ACTIONS, + WIN_TOSS_MSG, +}; struct PokeblockMenuStruct { - u8 tilemap[0x800]; + u8 tilemap[BG_SCREEN_SIZE]; void (*callbackOnUse)(void); - const u8 *pokeblockOptionsIds; - u8 optionsNo; + const u8 *pokeblockActionIds; + u8 numActions; u8 caseId; u8 itemsNo; u8 maxShowed; struct ListMenuItem items[POKEBLOCKS_COUNT + 1]; - u8 menuItemsStrings[POKEBLOCKS_COUNT + 1][0x20]; // + 1 because of STOW CASE item + u8 menuItemsStrings[POKEBLOCKS_COUNT + 1][32]; // + 1 because of STOW CASE item u8 pokeblockCaseSpriteId; - u8 field_E75[FIELD_E75_COUNT]; - u8 unkTaskId; + u8 swapLineSpriteIds[7]; + u8 arrowTaskId; bool8 isSwapping; s16 gfxState; u8 unused[8]; @@ -59,8 +81,8 @@ struct PokeblockMenuStruct struct PokeblockSavedData { void (*callback)(void); - u16 lastItemPos; - u16 lastItemPage; + u16 selectedRow; + u16 scrollOffset; }; enum @@ -83,43 +105,41 @@ static bool8 LoadPokeblockMenuGfx(void); static void HandleInitBackgrounds(void); static void HandleInitWindows(void); static void SetMenuItemsCountAndMaxShowed(void); -static void sub_81362E0(void); -static void sub_8136344(void); -static void HandlePokeblockListMenuItems(void); -static void sub_81363BC(void); -static void MovePokeblockMenuCursor(s32 pkblId, bool8 arg1, struct ListMenu *arg2); -static void PutPokeblockInfoText(void); -static void HandlePokeblockMenuCursor(u16 cursorPos, u16 arg1); -static void PutPokeblockListMenuString(u8 *dst, u16 pkblId); -static void Task_HandlePokeblockMenuInput(u8 taskId); -static void PokeblockAction_UseOnField(u8 taskId); -static void PokeblockAction_Toss(u8 taskId); -static void PokeblockAction_Cancel(u8 taskId); -static void PokeblockAction_UseInBattle(u8 taskId); -static void PokeblockAction_UseOnPokeblockFeeder(u8 taskId); -static void PokeblockAction_GiveToContestLady(u8 taskId); -static void TossPokeblockChoice_Yes(u8 taskId); -static void TossPokeblockChoice_No(u8 taskId); -static void Task_FreeDataAndExitPokeblockCase(u8 taskId); -static void Task_HandlePokeblockOptionsInput(u8 taskId); -static void PutPokeblockOptionsWindow(u8 taskId); -static void Task_HandlePokeblocksSwapInput(u8 taskId); -static void sub_8136470(struct Sprite *sprite); -static void sub_8135FCC(s32 pkblId); -static void HandlePokeblocksSwap(u8 taskId, bool8 noSwap); +static void LimitMenuScrollAndRow(void); +static void SetInitialScroll(void); +static void UpdatePokeblockList(void); +static void CreateScrollArrows(void); +static void MovePokeblockMenuCursor(s32, bool8, struct ListMenu *); +static void DrawPokeblockMenuTitleText(void); +static void DrawPokeblockMenuHighlight(u16, u16); +static void PutPokeblockListMenuString(u8 *, u16); +static void Task_HandlePokeblockMenuInput(u8); +static void PokeblockAction_UseOnField(u8); +static void PokeblockAction_Toss(u8); +static void PokeblockAction_Cancel(u8); +static void PokeblockAction_UseInBattle(u8); +static void PokeblockAction_UseOnPokeblockFeeder(u8); +static void PokeblockAction_GiveToContestLady(u8); +static void TossedPokeblockMessage(u8); +static void CloseTossPokeblockWindow(u8); +static void Task_FreeDataAndExitPokeblockCase(u8); +static void Task_HandlePokeblockActionsInput(u8); +static void ShowPokeblockActionsWindow(u8); +static void Task_HandlePokeblocksSwapInput(u8); +static void SpriteCB_ShakePokeblockCase(struct Sprite *); +static void DrawPokeblockInfo(s32); +static void UpdatePokeblockSwapMenu(u8, bool8); static void UsePokeblockOnField(void); static void ReturnToPokeblockCaseOnField(void); -static void CreateTossPokeblockYesNoMenu(u8 taskId); -static void HandleErasePokeblock(u8 taskId); +static void CreateTossPokeblockYesNoMenu(u8); +static void TossPokeblock(u8); -// ram variables EWRAM_DATA static struct PokeblockSavedData sSavedPokeblockData = {0}; EWRAM_DATA static struct PokeblockMenuStruct *sPokeblockMenu = NULL; -// const rom data const s8 gPokeblockFlavorCompatibilityTable[NUM_NATURES * FLAVOR_COUNT] = { - // Cool, Beauty, Cute, Smart, Tough + // Spicy, Dry, Sweet, Bitter, Sour 0, 0, 0, 0, 0, // Hardy 1, 0, 0, 0, -1, // Lonely 1, 0, -1, 0, 0, // Brave @@ -199,12 +219,12 @@ const u8 *const gPokeblockNames[] = static const struct MenuAction sPokeblockMenuActions[] = { - {gMenuText_Use, PokeblockAction_UseOnField}, - {gMenuText_Toss, PokeblockAction_Toss}, - {gText_Cancel2, PokeblockAction_Cancel}, - {gMenuText_Use, PokeblockAction_UseInBattle}, - {gMenuText_Use, PokeblockAction_UseOnPokeblockFeeder}, - {gMenuText_Give2, PokeblockAction_GiveToContestLady}, + [PKBL_USE_ON_FIELD] = {gMenuText_Use, PokeblockAction_UseOnField}, + [PKBL_TOSS] = {gMenuText_Toss, PokeblockAction_Toss}, + [PKBL_CANCEL] = {gText_Cancel2, PokeblockAction_Cancel}, + [PKBL_USE_IN_BATTLE] = {gMenuText_Use, PokeblockAction_UseInBattle}, + [PKBL_USE_ON_FEEDER] = {gMenuText_Use, PokeblockAction_UseOnPokeblockFeeder}, + [PKBL_GIVE_TO_LADY] = {gMenuText_Give2, PokeblockAction_GiveToContestLady}, }; static const u8 sActionsOnField[] = {PKBL_USE_ON_FIELD, PKBL_TOSS, PKBL_CANCEL}; @@ -212,7 +232,7 @@ static const u8 sActionsInBattle[] = {PKBL_USE_IN_BATTLE, PKBL_CANCEL}; static const u8 sActionsOnPokeblockFeeder[] = {PKBL_USE_ON_FEEDER, PKBL_CANCEL}; static const u8 sActionsWhenGivingToLady[] = {PKBL_GIVE_TO_LADY, PKBL_CANCEL}; -static const struct YesNoFuncTable sTossYesNoFuncTable = {TossPokeblockChoice_Yes, TossPokeblockChoice_No}; +static const struct YesNoFuncTable sTossYesNoFuncTable = {TossedPokeblockMessage, CloseTossPokeblockWindow}; static const u8 sContestStatsMonData[] = {MON_DATA_COOL, MON_DATA_BEAUTY, MON_DATA_CUTE, MON_DATA_SMART, MON_DATA_TOUGH}; @@ -244,7 +264,7 @@ static const union AnimCmd *const sSpriteAnimTable_PokeblockCase[] = sSpriteAnim_PokeblockCase }; -static const union AffineAnimCmd sSpriteAffineAnim_85B26C8[] = +static const union AffineAnimCmd sAffineAnim_PokeblockCaseShake[] = { AFFINEANIMCMD_FRAME(0, 0, -2, 2), AFFINEANIMCMD_FRAME(0, 0, 2, 4), @@ -253,46 +273,46 @@ static const union AffineAnimCmd sSpriteAffineAnim_85B26C8[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_85B26F0[] = +static const union AffineAnimCmd *const sAffineAnims_PokeblockCaseShake[] = { - sSpriteAffineAnim_85B26C8 + sAffineAnim_PokeblockCaseShake }; const struct CompressedSpriteSheet gPokeblockCase_SpriteSheet = { - gMenuPokeblockDevice_Gfx, 0x800, GFX_TAG_POKEBLOCK_CASE + gMenuPokeblockDevice_Gfx, 0x800, TAG_POKEBLOCK_CASE }; const struct CompressedSpritePalette gPokeblockCase_SpritePal = { - gMenuPokeblockDevice_Pal, GFX_TAG_POKEBLOCK_CASE + gMenuPokeblockDevice_Pal, TAG_POKEBLOCK_CASE }; static const struct SpriteTemplate sSpriteTemplate_PokeblockCase = { - GFX_TAG_POKEBLOCK_CASE, - GFX_TAG_POKEBLOCK_CASE, - &sOamData_PokeblockCase, - sSpriteAnimTable_PokeblockCase, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy + .tileTag = TAG_POKEBLOCK_CASE, + .paletteTag = TAG_POKEBLOCK_CASE, + .oam = &sOamData_PokeblockCase, + .anims = sSpriteAnimTable_PokeblockCase, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; -static const u8 sTextColorInPokeblockMenu[3] = {0, 2, 3}; +static const u8 sTextColor[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; -static const struct Pokeblock sFavoritePokeblocksTable[] = +static const struct Pokeblock sFavoritePokeblocksTable[FLAVOR_COUNT] = { - { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20}, - { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20}, - { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20}, - { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20}, - { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20} + [FLAVOR_SPICY] = { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20}, + [FLAVOR_DRY] = { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20}, + [FLAVOR_SWEET] = { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20}, + [FLAVOR_BITTER] = { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20}, + [FLAVOR_SOUR] = { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20} }; -static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = +static const struct WindowTemplate sWindowTemplates[] = { - { + [WIN_TITLE] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 1, @@ -301,7 +321,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x1E }, - { + [WIN_LIST] = { .bg = 0, .tilemapLeft = 15, .tilemapTop = 1, @@ -310,7 +330,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x30 }, - { + [WIN_SPICY] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 13, @@ -319,7 +339,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x12C }, - { + [WIN_DRY] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 15, @@ -328,7 +348,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x136 }, - { + [WIN_SWEET] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 17, @@ -337,7 +357,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x140 }, - { + [WIN_BITTER] = { .bg = 0, .tilemapLeft = 8, .tilemapTop = 13, @@ -346,7 +366,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x14A }, - { + [WIN_SOUR] = { .bg = 0, .tilemapLeft = 8, .tilemapTop = 15, @@ -355,7 +375,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x154 }, - { + [WIN_FEEL] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 17, @@ -364,7 +384,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x15E }, - { + [WIN_ACTIONS_TALL] = { .bg = 1, .tilemapLeft = 7, .tilemapTop = 5, @@ -373,7 +393,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x162 }, - { + [WIN_ACTIONS] = { .bg = 1, .tilemapLeft = 7, .tilemapTop = 7, @@ -382,7 +402,7 @@ static const struct WindowTemplate sWindowTemplatesForPokeblockMenu[] = .paletteNum = 15, .baseBlock = 0x186 }, - { + [WIN_TOSS_MSG] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 15, @@ -412,7 +432,7 @@ static const struct ListMenuTemplate sPokeblockListMenuTemplate = .itemPrintFunc = NULL, .totalItems = 0, .maxShowed = 0, - .windowId = 1, + .windowId = WIN_LIST, .header_X = 0, .item_X = 1, .cursor_X = 0, @@ -427,33 +447,32 @@ static const struct ListMenuTemplate sPokeblockListMenuTemplate = .cursorKind = 1 }; -// code void OpenPokeblockCase(u8 caseId, void (*callback)(void)) { sPokeblockMenu = Alloc(sizeof(*sPokeblockMenu)); sPokeblockMenu->caseId = caseId; sPokeblockMenu->callbackOnUse = NULL; - sPokeblockMenu->unkTaskId = 0xFF; + sPokeblockMenu->arrowTaskId = TASK_NONE; sPokeblockMenu->isSwapping = FALSE; sSavedPokeblockData.callback = callback; switch (sPokeblockMenu->caseId) { case PBLOCK_CASE_BATTLE: - sPokeblockMenu->pokeblockOptionsIds = sActionsInBattle; - sPokeblockMenu->optionsNo = ARRAY_COUNT(sActionsInBattle); + sPokeblockMenu->pokeblockActionIds = sActionsInBattle; + sPokeblockMenu->numActions = ARRAY_COUNT(sActionsInBattle); break; case PBLOCK_CASE_FEEDER: - sPokeblockMenu->pokeblockOptionsIds = sActionsOnPokeblockFeeder; - sPokeblockMenu->optionsNo = ARRAY_COUNT(sActionsOnPokeblockFeeder); + sPokeblockMenu->pokeblockActionIds = sActionsOnPokeblockFeeder; + sPokeblockMenu->numActions = ARRAY_COUNT(sActionsOnPokeblockFeeder); break; case PBLOCK_CASE_GIVE: - sPokeblockMenu->pokeblockOptionsIds = sActionsWhenGivingToLady; - sPokeblockMenu->optionsNo = ARRAY_COUNT(sActionsWhenGivingToLady); + sPokeblockMenu->pokeblockActionIds = sActionsWhenGivingToLady; + sPokeblockMenu->numActions = ARRAY_COUNT(sActionsWhenGivingToLady); break; default: // PBLOCK_CASE_FIELD - sPokeblockMenu->pokeblockOptionsIds = sActionsOnField; - sPokeblockMenu->optionsNo = ARRAY_COUNT(sActionsOnField); + sPokeblockMenu->pokeblockActionIds = sActionsOnField; + sPokeblockMenu->numActions = ARRAY_COUNT(sActionsOnField); break; } @@ -499,6 +518,10 @@ static void CB2_InitPokeblockMenu(void) } } +#define tListTaskId data[0] +#define tWindowId data[1] +#define tToSwapId data[2] + static bool8 InitPokeblockMenu(void) { u8 taskId; @@ -520,7 +543,7 @@ static bool8 InitPokeblockMenu(void) break; case 3: ResetPaletteFade(); - gPaletteFade.bufferTransferDisabled = 1; + gPaletteFade.bufferTransferDisabled = TRUE; gMain.state++; break; case 4: @@ -544,8 +567,8 @@ static bool8 InitPokeblockMenu(void) break; case 8: SetMenuItemsCountAndMaxShowed(); - sub_81362E0(); - sub_8136344(); + LimitMenuScrollAndRow(); + SetInitialScroll(); gMain.state++; break; case 9: @@ -553,11 +576,11 @@ static bool8 InitPokeblockMenu(void) gMain.state++; break; case 10: - sub_8122344(sPokeblockMenu->field_E75, FIELD_E75_COUNT); + CreateSwapLineSprites(sPokeblockMenu->swapLineSpriteIds, ARRAY_COUNT(sPokeblockMenu->swapLineSpriteIds)); gMain.state++; break; case 11: - HandlePokeblockMenuCursor(sSavedPokeblockData.lastItemPos, 0x1005); + DrawPokeblockMenuHighlight(sSavedPokeblockData.selectedRow, TILE_HIGHLIGHT_BLUE); gMain.state++; break; case 12: @@ -565,29 +588,29 @@ static bool8 InitPokeblockMenu(void) gMain.state++; break; case 13: - HandlePokeblockListMenuItems(); + UpdatePokeblockList(); gMain.state++; break; case 14: - sub_81363BC(); + CreateScrollArrows(); gMain.state++; break; case 15: taskId = CreateTask(Task_HandlePokeblockMenuInput, 0); - gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sSavedPokeblockData.lastItemPage, sSavedPokeblockData.lastItemPos); + gTasks[taskId].tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, sSavedPokeblockData.scrollOffset, sSavedPokeblockData.selectedRow); gMain.state++; break; case 16: - PutPokeblockInfoText(); + DrawPokeblockMenuTitleText(); gMain.state++; break; case 17: - BlendPalettes(-1, 0x10, 0); + BlendPalettes(PALETTES_ALL, 16, 0); gMain.state++; break; case 18: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); - gPaletteFade.bufferTransferDisabled = 0; + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); + gPaletteFade.bufferTransferDisabled = FALSE; gMain.state++; break; default: @@ -646,7 +669,7 @@ static bool8 LoadPokeblockMenuGfx(void) sPokeblockMenu->gfxState++; break; case 5: - LoadListMenuArrowsGfx(); + LoadListMenuSwapLineGfx(); sPokeblockMenu->gfxState = 0; return TRUE; } @@ -658,16 +681,14 @@ static void HandleInitWindows(void) { u8 i; - InitWindows(sWindowTemplatesForPokeblockMenu); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 1, 0xE0); LoadMessageBoxGfx(0, 0xA, 0xD0); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - for (i = 0; i < ARRAY_COUNT(sWindowTemplatesForPokeblockMenu) - 1; i++) - { + for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); - } ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(1); @@ -675,29 +696,27 @@ static void HandleInitWindows(void) static void PrintOnPokeblockWindow(u8 windowId, const u8 *string, s32 x) { - AddTextPrinterParameterized4(windowId, 1, x, 1, 0, 0, sTextColorInPokeblockMenu, 0, string); + AddTextPrinterParameterized4(windowId, 1, x, 1, 0, 0, sTextColor, 0, string); } -static void PutPokeblockInfoText(void) +static void DrawPokeblockMenuTitleText(void) { u8 i; const u8 *itemName = ItemId_GetName(ITEM_POKEBLOCK_CASE); - PrintOnPokeblockWindow(0, itemName, GetStringCenterAlignXOffset(1, itemName, 0x48)); + PrintOnPokeblockWindow(WIN_TITLE, itemName, GetStringCenterAlignXOffset(1, itemName, 0x48)); - PrintOnPokeblockWindow(2, gText_Spicy, 0); - PrintOnPokeblockWindow(3, gText_Dry, 0); - PrintOnPokeblockWindow(4, gText_Sweet, 0); - PrintOnPokeblockWindow(5, gText_Bitter, 0); - PrintOnPokeblockWindow(6, gText_Sour, 0); + PrintOnPokeblockWindow(WIN_SPICY, gText_Spicy, 0); + PrintOnPokeblockWindow(WIN_DRY, gText_Dry, 0); + PrintOnPokeblockWindow(WIN_SWEET, gText_Sweet, 0); + PrintOnPokeblockWindow(WIN_BITTER, gText_Bitter, 0); + PrintOnPokeblockWindow(WIN_SOUR, gText_Sour, 0); - for (i = 0; i < 8; i++) - { + for (i = 0; i < WIN_ACTIONS_TALL; i++) PutWindowTilemap(i); - } } -static void HandlePokeblockListMenuItems(void) +static void UpdatePokeblockList(void) { u16 i; @@ -732,19 +751,19 @@ static void PutPokeblockListMenuString(u8 *dst, u16 pkblId) StringExpandPlaceholders(txtPtr, gText_LvVar1); } -static void MovePokeblockMenuCursor(s32 pkblId, bool8 arg1, struct ListMenu *arg2) +static void MovePokeblockMenuCursor(s32 pkblId, bool8 onInit, struct ListMenu *list) { - if (arg1 != TRUE) + if (onInit != TRUE) { PlaySE(SE_SELECT); - gSprites[sPokeblockMenu->pokeblockCaseSpriteId].callback = sub_8136470; + gSprites[sPokeblockMenu->pokeblockCaseSpriteId].callback = SpriteCB_ShakePokeblockCase; } if (!sPokeblockMenu->isSwapping) - sub_8135FCC(pkblId); + DrawPokeblockInfo(pkblId); } -static void sub_8135FCC(s32 pkblId) +static void DrawPokeblockInfo(s32 pkblId) { u8 i; struct Pokeblock *pokeblock; @@ -761,28 +780,32 @@ static void sub_8135FCC(s32 pkblId) { if (GetPokeblockData(pokeblock, PBLOCK_SPICY + i) > 0) { - rectTilemapSrc[0] = (i << 0xC) + 0x17; - rectTilemapSrc[1] = (i << 0xC) + 0x18; + // Pokéblock has this flavor, draw Pokéblock icon next to it + rectTilemapSrc[0] = (i << 12) + 0x17; + rectTilemapSrc[1] = (i << 12) + 0x18; } else { + // Pokéblock doesn't have this flavor, draw regular tiles rectTilemapSrc[0] = 0xF; rectTilemapSrc[1] = 0xF; } CopyToBgTilemapBufferRect(2, rectTilemapSrc, (i / 3 * 6) + 1, (i % 3 * 2) + 13, 1, 2); } + + // Print the Pokéblock's feel ConvertIntToDecimalStringN(gStringVar1, GetPokeblocksFeel(pokeblock), STR_CONV_MODE_RIGHT_ALIGN, 2); - PrintOnPokeblockWindow(7, gStringVar1, 4); + PrintOnPokeblockWindow(WIN_FEEL, gStringVar1, 4); } else { + // Selected cancel, erase info rectTilemapSrc[0] = 0xF; rectTilemapSrc[1] = 0xF; for (i = 0; i < FLAVOR_COUNT; i++) - { CopyToBgTilemapBufferRect(2, rectTilemapSrc, (i / 3 * 6) + 1, (i % 3 * 2) + 13, 1, 2); - } + CopyWindowToVram(7, 2); } @@ -790,9 +813,9 @@ static void sub_8135FCC(s32 pkblId) ScheduleBgCopyTilemapToVram(2); } -static void HandlePokeblockMenuCursor(u16 cursorPos, u16 arg1) +static void DrawPokeblockMenuHighlight(u16 cursorPos, u16 tileNum) { - FillBgTilemapBufferRect_Palette0(2, arg1, 0xF, (cursorPos * 2) + 1, 0xE, 2); + FillBgTilemapBufferRect_Palette0(2, tileNum, 0xF, (cursorPos * 2) + 1, 0xE, 2); ScheduleBgCopyTilemapToVram(2); } @@ -814,7 +837,7 @@ static void CompactPokeblockSlots(void) } } -static void SwapSortPokeblocksInternalData(u32 id1, u32 id2) +static void SwapPokeblockMenuItems(u32 id1, u32 id2) { s16 i, count; struct Pokeblock *pokeblocks = gSaveBlock1Ptr->pokeblocks; @@ -844,8 +867,8 @@ static void SwapSortPokeblocksInternalData(u32 id1, u32 id2) void ResetPokeblockScrollPositions(void) { - sSavedPokeblockData.lastItemPos = 0; - sSavedPokeblockData.lastItemPage = 0; + sSavedPokeblockData.selectedRow = 0; + sSavedPokeblockData.scrollOffset = 0; } static void SetMenuItemsCountAndMaxShowed(void) @@ -862,56 +885,56 @@ static void SetMenuItemsCountAndMaxShowed(void) sPokeblockMenu->itemsNo++; // STOW CASE menu item - if (sPokeblockMenu->itemsNo > 9) - sPokeblockMenu->maxShowed = 9; + if (sPokeblockMenu->itemsNo > MAX_MENU_ITEMS) + sPokeblockMenu->maxShowed = MAX_MENU_ITEMS; else sPokeblockMenu->maxShowed = sPokeblockMenu->itemsNo; } -static void sub_81362E0(void) +static void LimitMenuScrollAndRow(void) { - if (sSavedPokeblockData.lastItemPage != 0) + if (sSavedPokeblockData.scrollOffset != 0) { - if (sSavedPokeblockData.lastItemPage + sPokeblockMenu->maxShowed > sPokeblockMenu->itemsNo) - sSavedPokeblockData.lastItemPage = sPokeblockMenu->itemsNo - sPokeblockMenu->maxShowed; + if (sSavedPokeblockData.scrollOffset + sPokeblockMenu->maxShowed > sPokeblockMenu->itemsNo) + sSavedPokeblockData.scrollOffset = sPokeblockMenu->itemsNo - sPokeblockMenu->maxShowed; } - if (sSavedPokeblockData.lastItemPage + sSavedPokeblockData.lastItemPos >= sPokeblockMenu->itemsNo) + if (sSavedPokeblockData.scrollOffset + sSavedPokeblockData.selectedRow >= sPokeblockMenu->itemsNo) { if (sPokeblockMenu->itemsNo == 0) - sSavedPokeblockData.lastItemPos = 0; + sSavedPokeblockData.selectedRow = 0; else - sSavedPokeblockData.lastItemPos = sPokeblockMenu->itemsNo - 1; + sSavedPokeblockData.selectedRow = sPokeblockMenu->itemsNo - 1; } } -static void sub_8136344(void) +static void SetInitialScroll(void) { - if (sSavedPokeblockData.lastItemPos > 4) + if (sSavedPokeblockData.selectedRow > MENU_MIDPOINT) { u8 i; for (i = 0; - (i < sSavedPokeblockData.lastItemPos - 4) && (sSavedPokeblockData.lastItemPage + sPokeblockMenu->maxShowed != sPokeblockMenu->itemsNo); - sSavedPokeblockData.lastItemPos--, sSavedPokeblockData.lastItemPage++, i++); + (i < sSavedPokeblockData.selectedRow - MENU_MIDPOINT) && (sSavedPokeblockData.scrollOffset + sPokeblockMenu->maxShowed != sPokeblockMenu->itemsNo); + sSavedPokeblockData.selectedRow--, sSavedPokeblockData.scrollOffset++, i++); } } -static void sub_81363BC(void) +static void CreateScrollArrows(void) { - if (sPokeblockMenu->unkTaskId == 0xFF) + if (sPokeblockMenu->arrowTaskId == TASK_NONE) { - sPokeblockMenu->unkTaskId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xB0, 8, 0x98, sPokeblockMenu->itemsNo - sPokeblockMenu->maxShowed, - 0x456, 0x456, &sSavedPokeblockData.lastItemPage); + sPokeblockMenu->arrowTaskId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xB0, 8, 0x98, sPokeblockMenu->itemsNo - sPokeblockMenu->maxShowed, + TAG_SCROLL_ARROW, TAG_SCROLL_ARROW, &sSavedPokeblockData.scrollOffset); } } -static void sub_8136418(void) +static void DestroyScrollArrows(void) { - if (sPokeblockMenu->unkTaskId != 0xFF) + if (sPokeblockMenu->arrowTaskId != TASK_NONE) { - RemoveScrollIndicatorArrowPair(sPokeblockMenu->unkTaskId); - sPokeblockMenu->unkTaskId = 0xFF; + RemoveScrollIndicatorArrowPair(sPokeblockMenu->arrowTaskId); + sPokeblockMenu->arrowTaskId = TASK_NONE; } } @@ -920,26 +943,29 @@ u8 CreatePokeblockCaseSprite(s16 x, s16 y, u8 subpriority) return CreateSprite(&sSpriteTemplate_PokeblockCase, x, y, subpriority); } -static void sub_8136470(struct Sprite *sprite) -{ - if (sprite->data[0] > 1) - sprite->data[0] = 0; +#define sState data[0] +#define sTimer data[1] - switch (sprite->data[0]) +static void SpriteCB_ShakePokeblockCase(struct Sprite *sprite) +{ + if (sprite->sState > 1) + sprite->sState = 0; + + switch (sprite->sState) { case 0: sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; - sprite->affineAnims = sSpriteAffineAnimTable_85B26F0; + sprite->affineAnims = sAffineAnims_PokeblockCaseShake; InitSpriteAffineAnim(sprite); - sprite->data[0] = 1; - sprite->data[1] = 0; + sprite->sState = 1; + sprite->sTimer = 0; break; case 1: - if (++sprite->data[1] > 11) + if (++sprite->sTimer > 11) { sprite->oam.affineMode = ST_OAM_AFFINE_OFF; - sprite->data[0] = 0; - sprite->data[1] = 0; + sprite->sState = 0; + sprite->sTimer = 0; FreeOamMatrix(sprite->oam.matrixNum); sprite->callback = SpriteCallbackDummy; } @@ -949,7 +975,7 @@ static void sub_8136470(struct Sprite *sprite) static void FadePaletteAndSetTaskToClosePokeblockCase(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_FreeDataAndExitPokeblockCase; } @@ -962,8 +988,8 @@ static void Task_FreeDataAndExitPokeblockCase(u8 taskId) if (sPokeblockMenu->caseId == PBLOCK_CASE_FEEDER || sPokeblockMenu->caseId == PBLOCK_CASE_GIVE) gFieldCallback = FieldCB_ContinueScriptHandleMusic; - DestroyListMenuTask(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); - sub_8136418(); + DestroyListMenuTask(tListTaskId, &sSavedPokeblockData.scrollOffset, &sSavedPokeblockData.selectedRow); + DestroyScrollArrows(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -986,29 +1012,31 @@ static void Task_HandlePokeblockMenuInput(u8 taskId) { if (JOY_NEW(SELECT_BUTTON)) { - ListMenuGetScrollAndRow(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); - if (sSavedPokeblockData.lastItemPage + sSavedPokeblockData.lastItemPos != sPokeblockMenu->itemsNo - 1) + ListMenuGetScrollAndRow(tListTaskId, &sSavedPokeblockData.scrollOffset, &sSavedPokeblockData.selectedRow); + if (sSavedPokeblockData.scrollOffset + sSavedPokeblockData.selectedRow != sPokeblockMenu->itemsNo - 1) { + // Chose menu item to swap PlaySE(SE_SELECT); - HandlePokeblockMenuCursor(sSavedPokeblockData.lastItemPos, 0x2005); - data[2] = sSavedPokeblockData.lastItemPage + sSavedPokeblockData.lastItemPos; + DrawPokeblockMenuHighlight(sSavedPokeblockData.selectedRow, TILE_HIGHLIGHT_RED); + tToSwapId = sSavedPokeblockData.scrollOffset + sSavedPokeblockData.selectedRow; sPokeblockMenu->isSwapping = TRUE; gTasks[taskId].func = Task_HandlePokeblocksSwapInput; } } else { - u16 oldPosition = sSavedPokeblockData.lastItemPos; - s32 itemId = ListMenu_ProcessInput(data[0]); + u16 oldPosition = sSavedPokeblockData.selectedRow; + s32 input = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &sSavedPokeblockData.scrollOffset, &sSavedPokeblockData.selectedRow); - ListMenuGetScrollAndRow(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); - if (oldPosition != sSavedPokeblockData.lastItemPos) + if (oldPosition != sSavedPokeblockData.selectedRow) { - HandlePokeblockMenuCursor(oldPosition, 5); - HandlePokeblockMenuCursor(sSavedPokeblockData.lastItemPos, 0x1005); + // Moved cursor + DrawPokeblockMenuHighlight(oldPosition, TILE_HIGHLIGHT_NONE); + DrawPokeblockMenuHighlight(sSavedPokeblockData.selectedRow, TILE_HIGHLIGHT_BLUE); } - switch (itemId) + switch (input) { case LIST_NOTHING_CHOSEN: break; @@ -1019,9 +1047,10 @@ static void Task_HandlePokeblockMenuInput(u8 taskId) FadePaletteAndSetTaskToClosePokeblockCase(taskId); break; default: + // Selected Pokéblock PlaySE(SE_SELECT); - gSpecialVar_ItemId = itemId; - PutPokeblockOptionsWindow(taskId); + gSpecialVar_ItemId = input; + ShowPokeblockActionsWindow(taskId); break; } } @@ -1037,100 +1066,102 @@ static void Task_HandlePokeblocksSwapInput(u8 taskId) if (JOY_NEW(SELECT_BUTTON)) { + // Swap items PlaySE(SE_SELECT); - ListMenuGetScrollAndRow(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); - HandlePokeblocksSwap(taskId, FALSE); + ListMenuGetScrollAndRow(tListTaskId, &sSavedPokeblockData.scrollOffset, &sSavedPokeblockData.selectedRow); + UpdatePokeblockSwapMenu(taskId, FALSE); } else { - u16 i = sSavedPokeblockData.lastItemPage; - u16 var = sSavedPokeblockData.lastItemPos; - s32 itemId = ListMenu_ProcessInput(data[0]); + u16 i = sSavedPokeblockData.scrollOffset; + u16 row = sSavedPokeblockData.selectedRow; + s32 input = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &sSavedPokeblockData.scrollOffset, &sSavedPokeblockData.selectedRow); - ListMenuGetScrollAndRow(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); - if (i != sSavedPokeblockData.lastItemPage || var != sSavedPokeblockData.lastItemPos) + if (i != sSavedPokeblockData.scrollOffset || row != sSavedPokeblockData.selectedRow) { - for (i = 0; i < 9; i++) + for (i = 0; i < MAX_MENU_ITEMS; i++) { - var = i + sSavedPokeblockData.lastItemPage; - if (var == data[2]) - HandlePokeblockMenuCursor(i, 0x2005); + row = i + sSavedPokeblockData.scrollOffset; + if (row == tToSwapId) + DrawPokeblockMenuHighlight(i, TILE_HIGHLIGHT_RED); else - HandlePokeblockMenuCursor(i, 5); + DrawPokeblockMenuHighlight(i, TILE_HIGHLIGHT_NONE); } } - sub_81223FC(sPokeblockMenu->field_E75, FIELD_E75_COUNT, 0); - sub_8122448(sPokeblockMenu->field_E75, FIELD_E75_COUNT, 0x80, (sSavedPokeblockData.lastItemPos * 16) + 8); + SetSwapLineSpritesInvisibility(sPokeblockMenu->swapLineSpriteIds, ARRAY_COUNT(sPokeblockMenu->swapLineSpriteIds), FALSE); + UpdateSwapLineSpritesPos(sPokeblockMenu->swapLineSpriteIds, ARRAY_COUNT(sPokeblockMenu->swapLineSpriteIds), 128, (sSavedPokeblockData.selectedRow * 16) + 8); - switch (itemId) + switch (input) { case LIST_NOTHING_CHOSEN: break; - case LIST_CANCEL: // same id as STOW CASE field + case LIST_CANCEL: PlaySE(SE_SELECT); - if (JOY_NEW(A_BUTTON)) - HandlePokeblocksSwap(taskId, FALSE); + if (JOY_NEW(A_BUTTON)) // Pointless check, B Button has been pressed here + UpdatePokeblockSwapMenu(taskId, FALSE); else - HandlePokeblocksSwap(taskId, TRUE); + UpdatePokeblockSwapMenu(taskId, TRUE); // Canceled swapping break; default: + // Swap items PlaySE(SE_SELECT); - HandlePokeblocksSwap(taskId, FALSE); + UpdatePokeblockSwapMenu(taskId, FALSE); break; } } } -static void HandlePokeblocksSwap(u8 taskId, bool8 noSwap) +static void UpdatePokeblockSwapMenu(u8 taskId, bool8 noSwap) { u8 i; s16 *data = gTasks[taskId].data; - u16 swappedFromId = sSavedPokeblockData.lastItemPage + sSavedPokeblockData.lastItemPos; + u16 swappedFromId = sSavedPokeblockData.scrollOffset + sSavedPokeblockData.selectedRow; sPokeblockMenu->isSwapping = FALSE; - DestroyListMenuTask(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); + DestroyListMenuTask(tListTaskId, &sSavedPokeblockData.scrollOffset, &sSavedPokeblockData.selectedRow); - if (!noSwap && data[2] != swappedFromId && data[2] != swappedFromId - 1) + if (!noSwap && tToSwapId != swappedFromId && tToSwapId != swappedFromId - 1) { - SwapSortPokeblocksInternalData(data[2], swappedFromId); - HandlePokeblockListMenuItems(); + SwapPokeblockMenuItems(tToSwapId, swappedFromId); + UpdatePokeblockList(); } - if (data[2] < swappedFromId) - sSavedPokeblockData.lastItemPos--; + if (tToSwapId < swappedFromId) + sSavedPokeblockData.selectedRow--; - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sSavedPokeblockData.lastItemPage, sSavedPokeblockData.lastItemPos); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, sSavedPokeblockData.scrollOffset, sSavedPokeblockData.selectedRow); ScheduleBgCopyTilemapToVram(0); - sub_81223FC(sPokeblockMenu->field_E75, FIELD_E75_COUNT, 1); + SetSwapLineSpritesInvisibility(sPokeblockMenu->swapLineSpriteIds, ARRAY_COUNT(sPokeblockMenu->swapLineSpriteIds), TRUE); - for (i = 0; i < 9; i++) - HandlePokeblockMenuCursor(i, 5); + for (i = 0; i < MAX_MENU_ITEMS; i++) + DrawPokeblockMenuHighlight(i, TILE_HIGHLIGHT_NONE); - HandlePokeblockMenuCursor(sSavedPokeblockData.lastItemPos, 0x1005); + DrawPokeblockMenuHighlight(sSavedPokeblockData.selectedRow, TILE_HIGHLIGHT_BLUE); gTasks[taskId].func = Task_HandlePokeblockMenuInput; } -static void PutPokeblockOptionsWindow(u8 taskId) +static void ShowPokeblockActionsWindow(u8 taskId) { s16 *data = gTasks[taskId].data; - if (sPokeblockMenu->optionsNo == 3) - data[1] = 8; + if (sPokeblockMenu->numActions == 3) + tWindowId = WIN_ACTIONS_TALL; else - data[1] = 9; + tWindowId = WIN_ACTIONS; - sub_8136418(); - DrawStdFrameWithCustomTileAndPalette(data[1], 0, 1, 0xE); - sub_81995E4(data[1], sPokeblockMenu->optionsNo, sPokeblockMenuActions, sPokeblockMenu->pokeblockOptionsIds); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[1], sPokeblockMenu->optionsNo, 0); - PutWindowTilemap(data[1]); + DestroyScrollArrows(); + DrawStdFrameWithCustomTileAndPalette(tWindowId, 0, 1, 0xE); + sub_81995E4(tWindowId, sPokeblockMenu->numActions, sPokeblockMenuActions, sPokeblockMenu->pokeblockActionIds); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tWindowId, sPokeblockMenu->numActions, 0); + PutWindowTilemap(tWindowId); ScheduleBgCopyTilemapToVram(1); - gTasks[taskId].func = Task_HandlePokeblockOptionsInput; + gTasks[taskId].func = Task_HandlePokeblockActionsInput; } -static void Task_HandlePokeblockOptionsInput(u8 taskId) +static void Task_HandlePokeblockActionsInput(u8 taskId) { s8 itemId; @@ -1150,7 +1181,7 @@ static void Task_HandlePokeblockOptionsInput(u8 taskId) else { PlaySE(SE_SELECT); - sPokeblockMenuActions[sPokeblockMenu->pokeblockOptionsIds[itemId]].func.void_u8(taskId); + sPokeblockMenuActions[sPokeblockMenu->pokeblockActionIds[itemId]].func.void_u8(taskId); } } @@ -1174,10 +1205,10 @@ static void PokeblockAction_Toss(u8 taskId) { s16 *data = gTasks[taskId].data; - ClearStdWindowAndFrameToTransparent(data[1], FALSE); + ClearStdWindowAndFrameToTransparent(tWindowId, FALSE); StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1Ptr->pokeblocks[gSpecialVar_ItemId].color]); StringExpandPlaceholders(gStringVar4, gText_ThrowAwayVar1); - DisplayMessageAndContinueTask(taskId, 10, 10, 13, 1, GetPlayerTextSpeedDelay(), gStringVar4, CreateTossPokeblockYesNoMenu); + DisplayMessageAndContinueTask(taskId, WIN_TOSS_MSG, 10, 13, 1, GetPlayerTextSpeedDelay(), gStringVar4, CreateTossPokeblockYesNoMenu); } static void CreateTossPokeblockYesNoMenu(u8 taskId) @@ -1185,44 +1216,44 @@ static void CreateTossPokeblockYesNoMenu(u8 taskId) CreateYesNoMenuWithCallbacks(taskId, &sTossPkblockWindowTemplate, 1, 0, 2, 1, 0xE, &sTossYesNoFuncTable); } -static void TossPokeblockChoice_Yes(u8 taskId) +static void TossedPokeblockMessage(u8 taskId) { StringExpandPlaceholders(gStringVar4, gText_Var1ThrownAway); - DisplayMessageAndContinueTask(taskId, 10, 10, 13, 1, GetPlayerTextSpeedDelay(), gStringVar4, HandleErasePokeblock); + DisplayMessageAndContinueTask(taskId, WIN_TOSS_MSG, 10, 13, 1, GetPlayerTextSpeedDelay(), gStringVar4, TossPokeblock); } -static void HandleErasePokeblock(u8 taskId) +static void TossPokeblock(u8 taskId) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { s16 *data; - u16 *lastPage, *lastPos; + u16 *scrollOffset, *selectedRow; TryClearPokeblock(gSpecialVar_ItemId); PlaySE(SE_SELECT); - lastPage = &sSavedPokeblockData.lastItemPage; - lastPos = &sSavedPokeblockData.lastItemPos; + scrollOffset = &sSavedPokeblockData.scrollOffset; + selectedRow = &sSavedPokeblockData.selectedRow; data = gTasks[taskId].data; - DestroyListMenuTask(data[0], lastPage, lastPos); - HandlePokeblockMenuCursor(*lastPos, 5); + DestroyListMenuTask(tListTaskId, scrollOffset, selectedRow); + DrawPokeblockMenuHighlight(*selectedRow, TILE_HIGHLIGHT_NONE); SetMenuItemsCountAndMaxShowed(); - sub_81362E0(); - HandlePokeblockListMenuItems(); - data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *lastPage, *lastPos); - HandlePokeblockMenuCursor(*lastPos, 0x1005); + LimitMenuScrollAndRow(); + UpdatePokeblockList(); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow); + DrawPokeblockMenuHighlight(*selectedRow, TILE_HIGHLIGHT_BLUE); ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(1); - TossPokeblockChoice_No(taskId); + CloseTossPokeblockWindow(taskId); } } -static void TossPokeblockChoice_No(u8 taskId) +static void CloseTossPokeblockWindow(u8 taskId) { - ClearDialogWindowAndFrameToTransparent(10, FALSE); + ClearDialogWindowAndFrameToTransparent(WIN_TOSS_MSG, FALSE); ScheduleBgCopyTilemapToVram(1); - sub_81363BC(); + CreateScrollArrows(); gTasks[taskId].func = Task_HandlePokeblockMenuInput; } @@ -1267,9 +1298,9 @@ static void PokeblockAction_Cancel(u8 taskId) { s16 *data = gTasks[taskId].data; - ClearStdWindowAndFrameToTransparent(data[1], FALSE); + ClearStdWindowAndFrameToTransparent(tWindowId, FALSE); ScheduleBgCopyTilemapToVram(1); - sub_81363BC(); + CreateScrollArrows(); gTasks[taskId].func = Task_HandlePokeblockMenuInput; } diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 32db6c717e..748d988a4e 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -26,208 +26,283 @@ #include "util.h" #include "constants/rgb.h" -struct PokeblockFeedStruct +enum { + ANIMDATA_ROT_IDX, + ANIMDATA_ROT_SPEED, + ANIMDATA_SIN_AMPLITUDE, + ANIMDATA_COS_AMPLITUDE, + ANIMDATA_TIME, + ANIMDATA_ROT_ACCEL, + ANIMDATA_TARGET_X, + ANIMDATA_TARGET_Y, + ANIMDATA_APPR_TIME, + ANIMDATA_IS_LAST, + NUM_ANIMDATA +}; + +enum { + AFFINE_NONE, + AFFINE_TURN_UP, + AFFINE_TURN_UP_AND_DOWN, + AFFINE_TURN_DOWN, + AFFINE_TURN_DOWN_SLOW, + AFFINE_TURN_DOWN_SLIGHT, + AFFINE_TURN_UP_HIGH, + AFFINE_UNUSED_1, + AFFINE_UNUSED_2, + AFFINE_UNUSED_3, + NUM_MON_AFFINES, +}; + +#define MON_X 48 +#define MON_Y 80 + +// The animation the Pokémon does during the feeding scene depends on their nature. +// The below values are offsets into sMonPokeblockAnims of the animation data for that nature. +#define ANIM_HARDY 0 +#define ANIM_LONELY (ANIM_HARDY + 3) +#define ANIM_BRAVE (ANIM_LONELY + 1) +#define ANIM_ADAMANT (ANIM_BRAVE + 1) +#define ANIM_NAUGHTY (ANIM_ADAMANT + 5) +#define ANIM_BOLD (ANIM_NAUGHTY + 3) +#define ANIM_DOCILE (ANIM_BOLD + 2) +#define ANIM_RELAXED (ANIM_DOCILE + 1) +#define ANIM_IMPISH (ANIM_RELAXED + 2) +#define ANIM_LAX (ANIM_IMPISH + 1) +#define ANIM_TIMID (ANIM_LAX + 1) +#define ANIM_HASTY (ANIM_TIMID + 5) +#define ANIM_SERIOUS (ANIM_HASTY + 2) +#define ANIM_JOLLY (ANIM_SERIOUS + 1) +#define ANIM_NAIVE (ANIM_JOLLY + 1) +#define ANIM_MODEST (ANIM_NAIVE + 4) +#define ANIM_MILD (ANIM_MODEST + 3) +#define ANIM_QUIET (ANIM_MILD + 1) +#define ANIM_BASHFUL (ANIM_QUIET + 2) +#define ANIM_RASH (ANIM_BASHFUL + 3) +#define ANIM_CALM (ANIM_RASH + 3) +#define ANIM_GENTLE (ANIM_CALM + 1) +#define ANIM_SASSY (ANIM_GENTLE + 1) +#define ANIM_CAREFUL (ANIM_SASSY + 1) +#define ANIM_QUIRKY (ANIM_CAREFUL + 5) + +struct PokeblockFeed { struct Sprite *monSpritePtr; struct Sprite savedMonSprite; - u8 tilemapBuffer[0x808]; - s16 field_850[0x200]; - s16 field_C50[0x200]; - u8 field_1050; + u8 tilemapBuffer[BG_SCREEN_SIZE]; + u8 unused1[8]; + s16 monAnimX[0x200]; + s16 monAnimY[0x200]; + u8 animRunState; u8 animId; - u8 field_1052; + u8 unused2; bool8 noMonFlip; u16 species; - u16 field_1056; - u16 field_1058; + u16 monAnimLength; + u16 timer; u8 nature; - u8 monSpriteId_; - u8 field_105C; + u8 monSpriteId_; // Duplicated unnecessarily + u8 unused3; u8 monSpriteId; u8 pokeblockCaseSpriteId; u8 pokeblockSpriteId; - s16 field_1060[15]; + s16 animData[NUM_ANIMDATA]; + s16 monInitX; + s16 monInitY; + s16 maxAnimStageTime; + s16 monX; + s16 monY; s16 loadGfxState; - u8 unused; + u8 unused4; }; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const u16 gUnknown_0860F074[]; -// this file's functions static void HandleInitBackgrounds(void); static void HandleInitWindows(void); static void LaunchPokeblockFeedTask(void); -static void SetPokeblockSpritePal(u8 pokeblockCaseId); -static void sub_817A5CC(void); -static void sub_8148108(u8 spriteId, bool8 a1); -static void DoPokeblockCaseThrowEffect(u8 spriteId, bool8 arg1); -static void PrepareMonToMoveToPokeblock(u8 spriteId); -static void Task_HandleMonAtePokeblock(u8 taskId); -static void Task_PaletteFadeToReturn(u8 taskId); -static void sub_817A634(void); -static void sub_817A468(struct Sprite *sprite); -static void sub_817AB68(void); -static void sub_817AA54(void); -static bool8 sub_817A91C(void); +static void SetPokeblockSpritePal(u8); +static void CalculateMonAnimLength(void); +static void DoPokeblockCaseThrowEffect(u8, bool8); +static void StartMonJumpForPokeblock(u8); +static void Task_PrintAtePokeblockMessage(u8); +static void Task_FadeOutPokeblockFeed(u8); +static void UpdateMonAnim(void); +static void SpriteCB_MonJumpForPokeblock(struct Sprite *); +static void CalculateMonAnimMovement(void); +static void CalculateMonAnimMovementEnd(void); +static bool8 InitMonAnimStage(void); static bool8 FreeMonSpriteOamMatrix(void); -static bool8 sub_817A9E4(void); -static bool8 LoadMonAndSceneGfx(struct Pokemon *mon); +static bool8 DoMonAnimStep(void); +static bool8 LoadMonAndSceneGfx(struct Pokemon *); static u8 CreatePokeblockSprite(void); static u8 CreatePokeblockCaseSpriteForFeeding(void); -static u8 CreateMonSprite(struct Pokemon *mon); -static void SpriteCB_ThrownPokeblock(struct Sprite* sprite); +static u8 CreateMonSprite(struct Pokemon *); +static void SpriteCB_ThrownPokeblock(struct Sprite *); -// ram variables -EWRAM_DATA static struct PokeblockFeedStruct *sPokeblockFeed = NULL; +EWRAM_DATA static struct PokeblockFeed *sPokeblockFeed = NULL; EWRAM_DATA static struct CompressedSpritePalette sPokeblockSpritePal = {0}; -// const rom data static const u8 sNatureToMonPokeblockAnim[NUM_NATURES][2] = { - [NATURE_HARDY] = { 0, 0 }, - [NATURE_LONELY] = { 3, 0 }, - [NATURE_BRAVE] = { 4, 1 }, - [NATURE_ADAMANT] = { 5, 0 }, - [NATURE_NAUGHTY] = { 10, 0 }, - [NATURE_BOLD] = { 13, 0 }, - [NATURE_DOCILE] = { 15, 0 }, - [NATURE_RELAXED] = { 16, 2 }, - [NATURE_IMPISH] = { 18, 0 }, - [NATURE_LAX] = { 19, 0 }, - [NATURE_TIMID] = { 20, 0 }, - [NATURE_HASTY] = { 25, 0 }, - [NATURE_SERIOUS] = { 27, 3 }, - [NATURE_JOLLY] = { 28, 0 }, - [NATURE_NAIVE] = { 29, 0 }, - [NATURE_MODEST] = { 33, 4 }, - [NATURE_MILD] = { 36, 0 }, - [NATURE_QUIET] = { 37, 0 }, - [NATURE_BASHFUL] = { 39, 0 }, - [NATURE_RASH] = { 42, 0 }, - [NATURE_CALM] = { 45, 0 }, - [NATURE_GENTLE] = { 46, 5 }, - [NATURE_SASSY] = { 47, 6 }, - [NATURE_CAREFUL] = { 48, 0 }, - [NATURE_QUIRKY] = { 53, 0 }, + [NATURE_HARDY] = { ANIM_HARDY, AFFINE_NONE }, + [NATURE_LONELY] = { ANIM_LONELY, AFFINE_NONE }, + [NATURE_BRAVE] = { ANIM_BRAVE, AFFINE_TURN_UP }, + [NATURE_ADAMANT] = { ANIM_ADAMANT, AFFINE_NONE }, + [NATURE_NAUGHTY] = { ANIM_NAUGHTY, AFFINE_NONE }, + [NATURE_BOLD] = { ANIM_BOLD, AFFINE_NONE }, + [NATURE_DOCILE] = { ANIM_DOCILE, AFFINE_NONE }, + [NATURE_RELAXED] = { ANIM_RELAXED, AFFINE_TURN_UP_AND_DOWN }, + [NATURE_IMPISH] = { ANIM_IMPISH, AFFINE_NONE }, + [NATURE_LAX] = { ANIM_LAX, AFFINE_NONE }, + [NATURE_TIMID] = { ANIM_TIMID, AFFINE_NONE }, + [NATURE_HASTY] = { ANIM_HASTY, AFFINE_NONE }, + [NATURE_SERIOUS] = { ANIM_SERIOUS, AFFINE_TURN_DOWN }, + [NATURE_JOLLY] = { ANIM_JOLLY, AFFINE_NONE }, + [NATURE_NAIVE] = { ANIM_NAIVE, AFFINE_NONE }, + [NATURE_MODEST] = { ANIM_MODEST, AFFINE_TURN_DOWN_SLOW }, + [NATURE_MILD] = { ANIM_MILD, AFFINE_NONE }, + [NATURE_QUIET] = { ANIM_QUIET, AFFINE_NONE }, + [NATURE_BASHFUL] = { ANIM_BASHFUL, AFFINE_NONE }, + [NATURE_RASH] = { ANIM_RASH, AFFINE_NONE }, + [NATURE_CALM] = { ANIM_CALM, AFFINE_NONE }, + [NATURE_GENTLE] = { ANIM_GENTLE, AFFINE_TURN_DOWN_SLIGHT }, + [NATURE_SASSY] = { ANIM_SASSY, AFFINE_TURN_UP_HIGH }, + [NATURE_CAREFUL] = { ANIM_CAREFUL, AFFINE_NONE }, + [NATURE_QUIRKY] = { ANIM_QUIRKY, AFFINE_NONE }, }; -static const s16 sMonPokeblockAnims[][10] = +// Data for the animation the Pokémon does while readying to jump for the Pokéblock +// Each nature can have up to 8 anim 'stages' it progresses through, and each stage has its own array of data. +// The elements in each array correspond in order to the following: +// - ANIMDATA_ROT_IDX : Index into sin/cos table for circular movement +// - ANIMDATA_ROT_SPEED : Circular movement speed +// - ANIMDATA_SIN_AMPLITUDE: How far on the x to move +// - ANIMDATA_COS_AMPLITUDE: How far on the y to move +// - ANIMDATA_TIME : How long in frames this part of the animation takes +// - ANIMDATA_ROT_ACCEL : How much to increase circular movement speed +// - ANIMDATA_TARGET_X : Target x coord offset from start position +// - ANIMDATA_TARGET_Y : Target y coord offset from start position +// - ANIMDATA_APPR_TIME : The time over which the target position should be approached +// - ANIMDATA_IS_LAST : TRUE if it's the last anim stage for this nature, FALSE otherwise +// +static const s16 sMonPokeblockAnims[][NUM_ANIMDATA] = { - // HARDY - { 0, 4, 0, 8, 24, 0, 0, 0, 12, 0}, - { 0, 4, 0, 16, 24, 0, 0, 0, 12, 0}, - { 0, 4, 0, 32, 32, 0, 0, 0, 16, 1}, + [ANIM_HARDY] = + { 0, 4, 0, 8, 24, 0, 0, 0, 12, FALSE}, + { 0, 4, 0, 16, 24, 0, 0, 0, 12, FALSE}, + { 0, 4, 0, 32, 32, 0, 0, 0, 16, TRUE}, - // LONELY - { 0, 3, 6, 0, 48, 0, 0, 0, 24, 1}, + [ANIM_LONELY] = + { 0, 3, 6, 0, 48, 0, 0, 0, 24, TRUE}, - // BRAVE - { 64, 16, -24, 0, 32, 0, 0, 0, 0, 1}, + [ANIM_BRAVE] = + { 64, 16, -24, 0, 32, 0, 0, 0, 0, TRUE}, - // ADAMANT - { 0, 4, 8, 0, 16, 0, -8, 0, 0, 0}, - { 0, 0, 0, 0, 16, 0, 0, 0, 0, 0}, - { 0, 4, 8, 0, 16, 0, -8, 0, 0, 0}, - { 0, 0, 0, 0, 16, 0, 0, 0, 0, 0}, - { 0, 4, -16, 0, 4, 0, 16, 0, 0, 1}, + [ANIM_ADAMANT] = + { 0, 4, 8, 0, 16, 0, -8, 0, 0, FALSE}, + { 0, 0, 0, 0, 16, 0, 0, 0, 0, FALSE}, + { 0, 4, 8, 0, 16, 0, -8, 0, 0, FALSE}, + { 0, 0, 0, 0, 16, 0, 0, 0, 0, FALSE}, + { 0, 4, -16, 0, 4, 0, 16, 0, 0, TRUE}, - // NAUGHTY - { 0, 3, 6, 0, 12, 0, 0, 0, 6, 0}, - { 0, 3, -6, 0, 12, 0, 0, 0, 6, 0}, - { 0, 16, 16, 0, 45, 1, 0, 0, 0, 1}, + [ANIM_NAUGHTY] = + { 0, 3, 6, 0, 12, 0, 0, 0, 6, FALSE}, + { 0, 3, -6, 0, 12, 0, 0, 0, 6, FALSE}, + { 0, 16, 16, 0, 45, 1, 0, 0, 0, TRUE}, - // BOLD - { 0, 16, 0, 24, 32, 0, 0, 0, 16, 0}, - { 0, 16, 0, 23, 32, 0, 0, 0, 16, 1}, + [ANIM_BOLD] = + { 0, 16, 0, 24, 32, 0, 0, 0, 16, FALSE}, + { 0, 16, 0, 23, 32, 0, 0, 0, 16, TRUE}, - // DOCILE - { 0, 0, 0, 0, 80, 0, 0, 0, 0, 1}, + [ANIM_DOCILE] = + { 0, 0, 0, 0, 80, 0, 0, 0, 0, TRUE}, - // RELAXED - { 0, 2, 8, 0, 32, 0, 0, 0, 0, 0}, - { 0, 2, -8, 0, 32, 0, 0, 0, 0, 1}, + [ANIM_RELAXED] = + { 0, 2, 8, 0, 32, 0, 0, 0, 0, FALSE}, + { 0, 2, -8, 0, 32, 0, 0, 0, 0, TRUE}, - // IMPISH - { 0, 32, 2, 1, 48, 1, 0, 0, 24, 1}, + [ANIM_IMPISH] = + { 0, 32, 2, 1, 48, 1, 0, 0, 24, TRUE}, - // LAX - { 0, 2, 16, 16, 128, 0, 0, 0, 0, 1}, + [ANIM_LAX] = + { 0, 2, 16, 16, 128, 0, 0, 0, 0, TRUE}, - // TIMID - { 0, 2, -8, 0, 48, 0, -24, 0, 0, 0}, - { 0, 0, 0, 0, 8, 0, 0, 0, 0, 0}, - { 64, 32, 2, 0, 36, 0, 0, 0, 0, 0}, - { 0, 0, 0, 0, 8, 0, 0, 0, 0, 0}, - { 0, 2, 8, 0, 48, 0, 24, 0, 0, 1}, + [ANIM_TIMID] = + { 0, 2, -8, 0, 48, 0, -24, 0, 0, FALSE}, + { 0, 0, 0, 0, 8, 0, 0, 0, 0, FALSE}, + { 64, 32, 2, 0, 36, 0, 0, 0, 0, FALSE}, + { 0, 0, 0, 0, 8, 0, 0, 0, 0, FALSE}, + { 0, 2, 8, 0, 48, 0, 24, 0, 0, TRUE}, - // HASTY - { 64, 24, 16, 0, 32, 0, 0, 0, 0, 0}, - { 0, 28, 2, 1, 32, 1, 0, 0, 16, 1}, + [ANIM_HASTY] = + { 64, 24, 16, 0, 32, 0, 0, 0, 0, FALSE}, + { 0, 28, 2, 1, 32, 1, 0, 0, 16, TRUE}, - // SERIOUS - { 0, 0, 0, 0, 32, 0, 0, 0, 0, 1}, + [ANIM_SERIOUS] = + { 0, 0, 0, 0, 32, 0, 0, 0, 0, TRUE}, - // JOLLY - { 64, 16, -16, 2, 48, 0, 0, 0, 32, 1}, + [ANIM_JOLLY] = + { 64, 16, -16, 2, 48, 0, 0, 0, 32, TRUE}, - // NAIVE - { 0, 12, -8, 4, 24, 0, 8, 0, 12, 0}, - { 0, 12, 8, 8, 24, 0, -16, 0, 12, 0}, - { 0, 12, -8, 16, 24, 0, 16, 0, 12, 0}, - { 0, 12, 8, 28, 24, 0, -8, 0, 12, 1}, + [ANIM_NAIVE] = + { 0, 12, -8, 4, 24, 0, 8, 0, 12, FALSE}, + { 0, 12, 8, 8, 24, 0, -16, 0, 12, FALSE}, + { 0, 12, -8, 16, 24, 0, 16, 0, 12, FALSE}, + { 0, 12, 8, 28, 24, 0, -8, 0, 12, TRUE}, - // MODEST - { 0, 0, 0, 0, 8, 0, 0, 0, 0, 0}, - { 64, 16, -4, 0, 32, 0, 0, 0, 0, 0}, - { 0, 0, 0, 0, 8, 0, 0, 0, 0, 1}, + [ANIM_MODEST] = + { 0, 0, 0, 0, 8, 0, 0, 0, 0, FALSE}, + { 64, 16, -4, 0, 32, 0, 0, 0, 0, FALSE}, + { 0, 0, 0, 0, 8, 0, 0, 0, 0, TRUE}, - // MILD - { 128, 4, 0, 8, 64, 0, 0, 0, 0, 1}, + [ANIM_MILD] = + { 128, 4, 0, 8, 64, 0, 0, 0, 0, TRUE}, - // QUIET - { 0, 2, 16, 0, 48, 0, 0, 0, 0, 0}, - { 128, 2, 16, 0, 48, 0, 0, 0, 0, 1}, + [ANIM_QUIET] = + { 0, 2, 16, 0, 48, 0, 0, 0, 0, FALSE}, + { 128, 2, 16, 0, 48, 0, 0, 0, 0, TRUE}, - // BASHFUL - { 0, 2, -4, 0, 48, 0, -48, 0, 0, 0}, - { 0, 0, 0, 0, 80, 0, 0, 0, 0, 0}, - { 0, 2, 8, 0, 24, 0, 48, 0, 0, 1}, + [ANIM_BASHFUL] = + { 0, 2, -4, 0, 48, 0, -48, 0, 0, FALSE}, + { 0, 0, 0, 0, 80, 0, 0, 0, 0, FALSE}, + { 0, 2, 8, 0, 24, 0, 48, 0, 0, TRUE}, - // RASH - { 64, 4, 64, 58, 52, 0, -88, 0, 0, 0}, - { 0, 0, 0, 0, 80, 0, 0, 0, 0, 0}, - { 0, 24, 80, 0, 32, 0, 88, 0, 0, 1}, + [ANIM_RASH] = + { 64, 4, 64, 58, 52, 0, -88, 0, 0, FALSE}, + { 0, 0, 0, 0, 80, 0, 0, 0, 0, FALSE}, + { 0, 24, 80, 0, 32, 0, 88, 0, 0, TRUE}, - // CALM - { 0, 2, 16, 4, 64, 0, 0, 0, 0, 1}, + [ANIM_CALM] = + { 0, 2, 16, 4, 64, 0, 0, 0, 0, TRUE}, - // GENTLE - { 0, 0, 0, 0, 32, 0, 0, 0, 0, 1}, + [ANIM_GENTLE] = + { 0, 0, 0, 0, 32, 0, 0, 0, 0, TRUE}, - // SASSY - { 0, 0, 0, 0, 42, 0, 0, 0, 0, 1}, + [ANIM_SASSY] = + { 0, 0, 0, 0, 42, 0, 0, 0, 0, TRUE}, - // CAREFUL - { 0, 4, 0, 8, 24, 0, 0, 0, 12, 0}, - { 0, 0, 0, 0, 12, 0, 0, 0, 0, 0}, - { 0, 4, 0, 12, 24, 0, 0, 0, 12, 0}, - { 0, 0, 0, 0, 12, 0, 0, 0, 0, 0}, - { 0, 4, 0, 4, 24, 0, 0, 0, 12, 1}, + [ANIM_CAREFUL] = + { 0, 4, 0, 8, 24, 0, 0, 0, 12, FALSE}, + { 0, 0, 0, 0, 12, 0, 0, 0, 0, FALSE}, + { 0, 4, 0, 12, 24, 0, 0, 0, 12, FALSE}, + { 0, 0, 0, 0, 12, 0, 0, 0, 0, FALSE}, + { 0, 4, 0, 4, 24, 0, 0, 0, 12, TRUE}, - // QUIRKY - { 0, 4, 16, 12, 64, 0, 0, 0, 0, 0}, - { 0, -4, 16, 12, 64, 0, 0, 0, 0, 1}, + [ANIM_QUIRKY] = + { 0, 4, 16, 12, 64, 0, 0, 0, 0, FALSE}, + { 0, -4, 16, 12, 64, 0, 0, 0, 0, TRUE}, }; -static const union AffineAnimCmd sSpriteAffineAnim_8411E90[] = +static const union AffineAnimCmd sAffineAnim_Mon_None[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411EA0[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnUp[] = { AFFINEANIMCMD_FRAME(0, 0, 12, 1), AFFINEANIMCMD_FRAME(0, 0, 0, 30), @@ -235,7 +310,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411EA0[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411EC0[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnUp_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 12, 1), @@ -244,7 +319,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411EC0[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411EE8[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnUpAndDown[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 16), AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 32), @@ -252,7 +327,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411EE8[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411F08[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnUpAndDown_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 16), @@ -261,7 +336,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411F08[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411F30[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnDown[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 8), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 16), @@ -269,7 +344,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411F30[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411F50[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnDown_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 8), @@ -278,7 +353,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411F50[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411F78[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnDownSlow[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 8), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 32), @@ -286,7 +361,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411F78[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411F98[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnDownSlow_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 8), @@ -295,7 +370,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411F98[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411FC0[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnDownSlight[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 4), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 24), @@ -303,7 +378,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411FC0[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8411FE0[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnDownSlight_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 4), @@ -312,7 +387,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8411FE0[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8412008[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnUpHigh[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 24), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 16), @@ -320,7 +395,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_8412008[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8412028[] = +static const union AffineAnimCmd sAffineAnim_Mon_TurnUpHigh_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 24), @@ -329,29 +404,33 @@ static const union AffineAnimCmd sSpriteAffineAnim_8412028[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_85F04FC[] = +static const union AffineAnimCmd *const sAffineAnims_Mon[] = { - sSpriteAffineAnim_8411E90, - sSpriteAffineAnim_8411EA0, - sSpriteAffineAnim_8411EE8, - sSpriteAffineAnim_8411F30, - sSpriteAffineAnim_8411F78, - sSpriteAffineAnim_8411FC0, - sSpriteAffineAnim_8412008, - sSpriteAffineAnim_8411E90, - sSpriteAffineAnim_8411E90, - sSpriteAffineAnim_8411E90, - sSpriteAffineAnim_8411E90, - sSpriteAffineAnim_8411EC0, - sSpriteAffineAnim_8411F08, - sSpriteAffineAnim_8411F50, - sSpriteAffineAnim_8411F98, - sSpriteAffineAnim_8411FE0, - sSpriteAffineAnim_8412028, - sSpriteAffineAnim_8411E90, - sSpriteAffineAnim_8411E90, - sSpriteAffineAnim_8411E90, - sSpriteAffineAnim_8411E90, + // Animations for non-flipped mon sprites + [AFFINE_NONE] = sAffineAnim_Mon_None, + [AFFINE_TURN_UP] = sAffineAnim_Mon_TurnUp, + [AFFINE_TURN_UP_AND_DOWN] = sAffineAnim_Mon_TurnUpAndDown, + [AFFINE_TURN_DOWN] = sAffineAnim_Mon_TurnDown, + [AFFINE_TURN_DOWN_SLOW] = sAffineAnim_Mon_TurnDownSlow, + [AFFINE_TURN_DOWN_SLIGHT] = sAffineAnim_Mon_TurnDownSlight, + [AFFINE_TURN_UP_HIGH] = sAffineAnim_Mon_TurnUpHigh, + [AFFINE_UNUSED_1] = sAffineAnim_Mon_None, + [AFFINE_UNUSED_2] = sAffineAnim_Mon_None, + [AFFINE_UNUSED_3] = sAffineAnim_Mon_None, + + // Animations for flipped mon sprites + [AFFINE_NONE + NUM_MON_AFFINES] = sAffineAnim_Mon_None, + [AFFINE_TURN_UP + NUM_MON_AFFINES] = sAffineAnim_Mon_TurnUp_Flipped, + [AFFINE_TURN_UP_AND_DOWN + NUM_MON_AFFINES] = sAffineAnim_Mon_TurnUpAndDown_Flipped, + [AFFINE_TURN_DOWN + NUM_MON_AFFINES] = sAffineAnim_Mon_TurnDown_Flipped, + [AFFINE_TURN_DOWN_SLOW + NUM_MON_AFFINES] = sAffineAnim_Mon_TurnDownSlow_Flipped, + [AFFINE_TURN_DOWN_SLIGHT + NUM_MON_AFFINES] = sAffineAnim_Mon_TurnDownSlight_Flipped, + [AFFINE_TURN_UP_HIGH + NUM_MON_AFFINES] = sAffineAnim_Mon_TurnUpHigh_Flipped, + [AFFINE_UNUSED_1 + NUM_MON_AFFINES] = sAffineAnim_Mon_None, + [AFFINE_UNUSED_2 + NUM_MON_AFFINES] = sAffineAnim_Mon_None, + [AFFINE_UNUSED_3 + NUM_MON_AFFINES] = sAffineAnim_Mon_None, + + sAffineAnim_Mon_None, // ? Extra for some reason }; static const struct BgTemplate sBackgroundTemplates[] = @@ -378,7 +457,15 @@ static const struct BgTemplate sBackgroundTemplates[] = static const struct WindowTemplate sWindowTemplates[] = { - {0, 1, 0xF, 0x1C, 4, 0xF, 0xA}, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 15, + .width = 28, + .height = 4, + .paletteNum = 15, + .baseBlock = 0xA + }, DUMMY_WIN_TEMPLATE }; @@ -401,7 +488,7 @@ static const u32* const sPokeblocksPals[] = [PBLOCK_CLR_GOLD - 1] = gPokeblockGold_Pal }; -static const union AffineAnimCmd sSpriteAffineAnim_84120DC[] = +static const union AffineAnimCmd sAffineAnim_Still[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_END @@ -409,10 +496,10 @@ static const union AffineAnimCmd sSpriteAffineAnim_84120DC[] = static const union AffineAnimCmd *const sSpriteAffineAnimTable_MonNoFlip[] = { - sSpriteAffineAnim_84120DC + sAffineAnim_Still }; -static const union AffineAnimCmd sSpriteAffineAnim_84120F0[] = +static const union AffineAnimCmd sAffineAnim_PokeblockCase_ThrowFromVertical[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, -8, 1), @@ -427,7 +514,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_84120F0[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8412148[] = +static const union AffineAnimCmd sAffineAnim_PokeblockCase_ThrowFromHorizontal[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 8, 1), @@ -442,22 +529,22 @@ static const union AffineAnimCmd sSpriteAffineAnim_8412148[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_85F0664[] = +static const union AffineAnimCmd *const sAffineAnims_PokeblockCase_Still[] = { - sSpriteAffineAnim_84120DC + sAffineAnim_Still }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_85F0668[] = +static const union AffineAnimCmd *const sAffineAnims_PokeblockCase_ThrowFromVertical[] = { - sSpriteAffineAnim_84120F0 + sAffineAnim_PokeblockCase_ThrowFromVertical }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_85F066C[] = +static const union AffineAnimCmd *const sAffineAnims_PokeblockCase_ThrowFromHorizontal[] = { - sSpriteAffineAnim_8412148 + sAffineAnim_PokeblockCase_ThrowFromHorizontal }; -static const struct OamData sThrownPokeblockOamData = +static const struct OamData sOamData_Pokeblock = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -474,46 +561,45 @@ static const struct OamData sThrownPokeblockOamData = .affineParam = 0, }; -static const union AnimCmd sThrownPokeblockSpriteAnim[] = +static const union AnimCmd sAnim_Pokeblock[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd *const sThrownPokeblockAnimTable[] = +static const union AnimCmd *const sAnims_Pokeblock[] = { - sThrownPokeblockSpriteAnim, + sAnim_Pokeblock, }; -static const union AffineAnimCmd sSpriteAffineAnim_84121C0[] = +static const union AffineAnimCmd sAffineAnim_Pokeblock[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-8, -8, 0, 1), AFFINEANIMCMD_JUMP(1) }; -static const union AffineAnimCmd *const sThrownPokeblockAffineAnimTable[] = +static const union AffineAnimCmd *const sAffineAnims_Pokeblock[] = { - sSpriteAffineAnim_84121C0 + sAffineAnim_Pokeblock }; -static const struct CompressedSpriteSheet sPokeblock_SpriteSheet = +static const struct CompressedSpriteSheet sSpriteSheet_Pokeblock = { - gPokeblock_Gfx, 0x20, GFX_TAG_POKEBLOCK + gPokeblock_Gfx, 0x20, TAG_POKEBLOCK }; -static const struct SpriteTemplate sThrownPokeblockSpriteTemplate = +static const struct SpriteTemplate sSpriteTemplate_Pokeblock = { - .tileTag = GFX_TAG_POKEBLOCK, - .paletteTag = GFX_TAG_POKEBLOCK, - .oam = &sThrownPokeblockOamData, - .anims = sThrownPokeblockAnimTable, + .tileTag = TAG_POKEBLOCK, + .paletteTag = TAG_POKEBLOCK, + .oam = &sOamData_Pokeblock, + .anims = sAnims_Pokeblock, .images = NULL, - .affineAnims = sThrownPokeblockAffineAnimTable, + .affineAnims = sAffineAnims_Pokeblock, .callback = SpriteCB_ThrownPokeblock }; -// code static void CB2_PokeblockFeed(void) { RunTasks(); @@ -530,7 +616,7 @@ static void VBlankCB_PokeblockFeed(void) TransferPlttBuffer(); } -static bool8 TransitionToPokeblockFeedScene(void) +static bool8 LoadPokeblockFeedScene(void) { switch (gMain.state) { @@ -542,7 +628,7 @@ static bool8 TransitionToPokeblockFeedScene(void) break; case 1: ResetPaletteFade(); - gPaletteFade.bufferTransferDisabled = 1; + gPaletteFade.bufferTransferDisabled = TRUE; gMain.state++; break; case 2: @@ -567,9 +653,7 @@ static bool8 TransitionToPokeblockFeedScene(void) break; case 7: if (LoadMonAndSceneGfx(&gPlayerParty[gPokeblockMonId])) - { gMain.state++; - } break; case 8: sPokeblockFeed->pokeblockCaseSpriteId = CreatePokeblockCaseSpriteForFeeding(); @@ -588,12 +672,12 @@ static bool8 TransitionToPokeblockFeedScene(void) gMain.state++; break; case 12: - BlendPalettes(-1, 0x10, 0); + BlendPalettes(PALETTES_ALL, 16, 0); gMain.state++; break; case 13: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); - gPaletteFade.bufferTransferDisabled = 0; + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); + gPaletteFade.bufferTransferDisabled = FALSE; gMain.state++; break; default: @@ -604,13 +688,13 @@ static bool8 TransitionToPokeblockFeedScene(void) return FALSE; } -void CB2_PreparePokeblockFeedScene(void) +void PreparePokeblockFeedScene(void) { while (1) { if (MenuHelpers_CallLinkSomething() == TRUE) break; - if (TransitionToPokeblockFeedScene() == TRUE) + if (LoadPokeblockFeedScene() == TRUE) break; if (MenuHelpers_LinkSomething() == TRUE) break; @@ -644,12 +728,14 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) switch (sPokeblockFeed->loadGfxState) { case 0: + // Load mon gfx species = GetMonData(mon, MON_DATA_SPECIES2); personality = GetMonData(mon, MON_DATA_PERSONALITY); HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality); sPokeblockFeed->loadGfxState++; break; case 1: + // Load mon palette species = GetMonData(mon, MON_DATA_SPECIES2); personality = GetMonData(mon, MON_DATA_PERSONALITY); trainerId = GetMonData(mon, MON_DATA_OT_ID); @@ -668,7 +754,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) sPokeblockFeed->loadGfxState++; break; case 4: - LoadCompressedSpriteSheet(&sPokeblock_SpriteSheet); + LoadCompressedSpriteSheet(&sSpriteSheet_Pokeblock); sPokeblockFeed->loadGfxState++; break; case 5: @@ -684,7 +770,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) case 7: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - LZDecompressWram(gUnknown_08D9BA44, sPokeblockFeed->tilemapBuffer); + LZDecompressWram(gPokeblockFeedBg_Tilemap, sPokeblockFeed->tilemapBuffer); sPokeblockFeed->loadGfxState++; } break; @@ -712,63 +798,68 @@ static void SetPokeblockSpritePal(u8 pokeblockCaseId) { u8 colorId = GetPokeblockData(&gSaveBlock1Ptr->pokeblocks[pokeblockCaseId], PBLOCK_COLOR); sPokeblockSpritePal.data = sPokeblocksPals[colorId - 1]; - sPokeblockSpritePal.tag = GFX_TAG_POKEBLOCK; + sPokeblockSpritePal.tag = TAG_POKEBLOCK; } // defines for task data fields -#define tFrames data[0] -#define tData1 data[1] +#define tState data[0] +#define tHorizontalThrow data[1] + +#define STATE_START_THROW 255 // If the length of the Pokémon's animation exceeds 255 the throw may happen twice +#define STATE_SPAWN_PBLOCK (STATE_START_THROW + 14) +#define STATE_START_JUMP (STATE_SPAWN_PBLOCK + 12) +#define STATE_PRINT_MSG (STATE_START_JUMP + 16) static void Task_HandlePokeblockFeed(u8 taskId) { if (!gPaletteFade.active) { - switch (gTasks[taskId].tFrames) + switch (gTasks[taskId].tState) { case 0: - sPokeblockFeed->field_1050 = 0; - sPokeblockFeed->field_1058 = 0; - sub_817A5CC(); + sPokeblockFeed->animRunState = 0; + sPokeblockFeed->timer = 0; + CalculateMonAnimLength(); break; - case 255: - DoPokeblockCaseThrowEffect(sPokeblockFeed->pokeblockCaseSpriteId, gTasks[taskId].tData1); + case STATE_START_THROW: + DoPokeblockCaseThrowEffect(sPokeblockFeed->pokeblockCaseSpriteId, gTasks[taskId].tHorizontalThrow); break; - case 269: + case STATE_SPAWN_PBLOCK: sPokeblockFeed->pokeblockSpriteId = CreatePokeblockSprite(); break; - case 281: - PrepareMonToMoveToPokeblock(sPokeblockFeed->monSpriteId); + case STATE_START_JUMP: + StartMonJumpForPokeblock(sPokeblockFeed->monSpriteId); break; - case 297: - gTasks[taskId].func = Task_HandleMonAtePokeblock; + case STATE_PRINT_MSG: + gTasks[taskId].func = Task_PrintAtePokeblockMessage; return; } - if (sPokeblockFeed->field_1058 < sPokeblockFeed->field_1056) - sub_817A634(); - else if (sPokeblockFeed->field_1058 == sPokeblockFeed->field_1056) - gTasks[taskId].tFrames = 254; + if (sPokeblockFeed->timer < sPokeblockFeed->monAnimLength) + UpdateMonAnim(); + else if (sPokeblockFeed->timer == sPokeblockFeed->monAnimLength) + gTasks[taskId].tState = STATE_START_THROW - 1; - sPokeblockFeed->field_1058++; - gTasks[taskId].tFrames++; + sPokeblockFeed->timer++; + gTasks[taskId].tState++; } } static void LaunchPokeblockFeedTask(void) { u8 taskId = CreateTask(Task_HandlePokeblockFeed, 0); - gTasks[taskId].tFrames = 0; - gTasks[taskId].tData1 = 1; + gTasks[taskId].tState = 0; + gTasks[taskId].tHorizontalThrow = TRUE; } -static void Task_WaitForAtePokeblockText(u8 taskId) +static void Task_WaitForAtePokeblockMessage(u8 taskId) { if (RunTextPrintersRetIsActive(0) != TRUE) - gTasks[taskId].func = Task_PaletteFadeToReturn; + gTasks[taskId].func = Task_FadeOutPokeblockFeed; } -static void Task_HandleMonAtePokeblock(u8 taskId) +static void Task_PrintAtePokeblockMessage(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPokeblockMonId]; struct Pokeblock *pokeblock = &gSaveBlock1Ptr->pokeblocks[gSpecialVar_ItemId]; @@ -784,12 +875,12 @@ static void Task_HandleMonAtePokeblock(u8 taskId) else StringExpandPlaceholders(gStringVar4, gText_Var1DisdainfullyAteVar2); - gTextFlags.canABSpeedUpPrint = 1; + gTextFlags.canABSpeedUpPrint = TRUE; AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeedDelay(), NULL, 2, 1, 3); - gTasks[taskId].func = Task_WaitForAtePokeblockText; + gTasks[taskId].func = Task_WaitForAtePokeblockMessage; } -static void Task_ReturnAfterPaletteFade(u8 taskId) +static void Task_ExitPokeblockFeed(u8 taskId) { if (!gPaletteFade.active) { @@ -804,30 +895,29 @@ static void Task_ReturnAfterPaletteFade(u8 taskId) } } -static void Task_PaletteFadeToReturn(u8 taskId) +static void Task_FadeOutPokeblockFeed(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].func = Task_ReturnAfterPaletteFade; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_ExitPokeblockFeed; } -#undef tFrames -#undef tData1 +#undef tState +#undef tHorizontalThrow -// defines for mon sprite data fields - -#define tDelta data[0] -#define tDeltaMod data[1] -#define tSpecies data[2] +// Sprite data for Pokéblock and Pokémon +#define sSpeed data[0] +#define sAccel data[1] +#define sSpecies data[2] static u8 CreateMonSprite(struct Pokemon* mon) { u16 species = GetMonData(mon, MON_DATA_SPECIES2); - u8 spriteId = CreateSprite(&gMultiuseSpriteTemplate, 48, 80, 2); + u8 spriteId = CreateSprite(&gMultiuseSpriteTemplate, MON_X, MON_Y, 2); sPokeblockFeed->species = species; sPokeblockFeed->monSpriteId_ = spriteId; sPokeblockFeed->nature = GetNature(mon); - gSprites[spriteId].tSpecies = species; + gSprites[spriteId].sSpecies = species; gSprites[spriteId].callback = SpriteCallbackDummy; sPokeblockFeed->noMonFlip = TRUE; @@ -842,189 +932,191 @@ static u8 CreateMonSprite(struct Pokemon* mon) return spriteId; } -static void PrepareMonToMoveToPokeblock(u8 spriteId) +static void StartMonJumpForPokeblock(u8 spriteId) { - gSprites[spriteId].pos1.x = 48; - gSprites[spriteId].pos1.y = 80; - gSprites[spriteId].tDelta = -8; - gSprites[spriteId].tDeltaMod = 1; - gSprites[spriteId].callback = sub_817A468; + gSprites[spriteId].x = MON_X; + gSprites[spriteId].y = MON_Y; + gSprites[spriteId].sSpeed = -8; + gSprites[spriteId].sAccel = 1; + gSprites[spriteId].callback = SpriteCB_MonJumpForPokeblock; } -static void sub_817A468(struct Sprite* sprite) +static void SpriteCB_MonJumpForPokeblock(struct Sprite* sprite) { - sprite->pos1.x += 4; - sprite->pos1.y += sprite->tDelta; - sprite->tDelta += sprite->tDeltaMod; + sprite->x += 4; + sprite->y += sprite->sSpeed; + sprite->sSpeed += sprite->sAccel; - if (sprite->tDelta == 0) - PlayCry1(sprite->tSpecies, 0); - if (sprite->tDelta == 9) + // Play cry at jump peak + if (sprite->sSpeed == 0) + PlayCry1(sprite->sSpecies, 0); + + if (sprite->sSpeed == 9) sprite->callback = SpriteCallbackDummy; } -#undef tDelta -#undef tDeltaMod -#undef tSpecies - static u8 CreatePokeblockCaseSpriteForFeeding(void) { u8 spriteId = CreatePokeblockCaseSprite(188, 100, 2); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; - gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_85F0664; + gSprites[spriteId].affineAnims = sAffineAnims_PokeblockCase_Still; gSprites[spriteId].callback = SpriteCallbackDummy; InitSpriteAffineAnim(&gSprites[spriteId]); return spriteId; } -static void DoPokeblockCaseThrowEffect(u8 spriteId, bool8 a1) +static void DoPokeblockCaseThrowEffect(u8 spriteId, bool8 horizontalThrow) { FreeOamMatrix(gSprites[spriteId].oam.matrixNum); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE; - if (!a1) - gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_85F0668; + if (!horizontalThrow) + gSprites[spriteId].affineAnims = sAffineAnims_PokeblockCase_ThrowFromVertical; // Never used, horizontalThrow always TRUE else - gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_85F066C; + gSprites[spriteId].affineAnims = sAffineAnims_PokeblockCase_ThrowFromHorizontal; InitSpriteAffineAnim(&gSprites[spriteId]); } -// defines for the pokeblock sprite data fields -#define tDelta data[0] -#define tDeltaMod data[1] - static u8 CreatePokeblockSprite(void) { - u8 spriteId = CreateSprite(&sThrownPokeblockSpriteTemplate, 174, 84, 1); - gSprites[spriteId].tDelta = -12; - gSprites[spriteId].tDeltaMod = 1; + u8 spriteId = CreateSprite(&sSpriteTemplate_Pokeblock, 174, 84, 1); + gSprites[spriteId].sSpeed = -12; + gSprites[spriteId].sAccel = 1; return spriteId; } static void SpriteCB_ThrownPokeblock(struct Sprite* sprite) { - sprite->pos1.x -= 4; - sprite->pos1.y += sprite->tDelta; - sprite->tDelta += sprite->tDeltaMod; - if (sprite->tDelta == 10) + sprite->x -= 4; + sprite->y += sprite->sSpeed; + sprite->sSpeed += sprite->sAccel; + if (sprite->sSpeed == 10) DestroySprite(sprite); } -#undef tDelta -#undef tDeltaMod - -static void sub_817A5CC(void) +static void CalculateMonAnimLength(void) { u8 animId, i; - struct PokeblockFeedStruct *pokeblockFeed; + struct PokeblockFeed *pokeblockFeed; pokeblockFeed = sPokeblockFeed; - pokeblockFeed->field_1056 = 1; + pokeblockFeed->monAnimLength = 1; animId = sNatureToMonPokeblockAnim[pokeblockFeed->nature][0]; + + // Add up the time each stage of the animation will take for (i = 0; i < 8; i++, animId++) { - pokeblockFeed->field_1056 += sMonPokeblockAnims[animId][4]; - if (sMonPokeblockAnims[animId][9] == 1) + pokeblockFeed->monAnimLength += sMonPokeblockAnims[animId][ANIMDATA_TIME]; + if (sMonPokeblockAnims[animId][ANIMDATA_IS_LAST] == TRUE) break; } } -static void sub_817A634(void) +static void UpdateMonAnim(void) { - struct PokeblockFeedStruct *pokeblockFeed = sPokeblockFeed; + struct PokeblockFeed *pokeblockFeed = sPokeblockFeed; - switch (pokeblockFeed->field_1050) + switch (pokeblockFeed->animRunState) { case 0: pokeblockFeed->animId = sNatureToMonPokeblockAnim[pokeblockFeed->nature][0]; pokeblockFeed->monSpritePtr = &gSprites[pokeblockFeed->monSpriteId_]; pokeblockFeed->savedMonSprite = *pokeblockFeed->monSpritePtr; - pokeblockFeed->field_1050 = 10; + pokeblockFeed->animRunState = 10; break; case 1 ... 9: break; case 10: - sub_817A91C(); - if (sNatureToMonPokeblockAnim[pokeblockFeed->nature][1] != 0) + InitMonAnimStage(); + if (sNatureToMonPokeblockAnim[pokeblockFeed->nature][1] != AFFINE_NONE) { + // Initialize affine anim pokeblockFeed->monSpritePtr->oam.affineMode = ST_OAM_AFFINE_DOUBLE; pokeblockFeed->monSpritePtr->oam.matrixNum = 0; - pokeblockFeed->monSpritePtr->affineAnims = sSpriteAffineAnimTable_85F04FC; + pokeblockFeed->monSpritePtr->affineAnims = sAffineAnims_Mon; InitSpriteAffineAnim(pokeblockFeed->monSpritePtr); } - pokeblockFeed->field_1050 = 50; + pokeblockFeed->animRunState = 50; case 50: - if (sNatureToMonPokeblockAnim[pokeblockFeed->nature][1] != 0) + if (sNatureToMonPokeblockAnim[pokeblockFeed->nature][1] != AFFINE_NONE) { + // Start affine anim if (!pokeblockFeed->noMonFlip) // double negation, so mon's sprite is flipped - StartSpriteAffineAnim(pokeblockFeed->monSpritePtr, sNatureToMonPokeblockAnim[pokeblockFeed->nature][1] + 10); + StartSpriteAffineAnim(pokeblockFeed->monSpritePtr, sNatureToMonPokeblockAnim[pokeblockFeed->nature][1] + NUM_MON_AFFINES); else StartSpriteAffineAnim(pokeblockFeed->monSpritePtr, sNatureToMonPokeblockAnim[pokeblockFeed->nature][1]); } - pokeblockFeed->field_1050 = 60; + pokeblockFeed->animRunState = 60; break; case 60: - if (sub_817A9E4() == TRUE) + if (DoMonAnimStep() == TRUE) { - if (pokeblockFeed->field_1060[9] == 0) + if (!pokeblockFeed->animData[ANIMDATA_IS_LAST]) { + // Continue to next stage of animation pokeblockFeed->animId++; - sub_817A91C(); - pokeblockFeed->field_1050 = 60; + InitMonAnimStage(); + pokeblockFeed->animRunState = 60; } else { + // End animation FreeOamMatrix(pokeblockFeed->monSpritePtr->oam.matrixNum); - pokeblockFeed->field_1050 = 70; + pokeblockFeed->animRunState = 70; } } break; case 70: FreeMonSpriteOamMatrix(); pokeblockFeed->animId = 0; - pokeblockFeed->field_1050 = 0; + pokeblockFeed->animRunState = 0; break; case 71 ... 90: break; } } -static bool8 sub_817A91C(void) +static bool8 InitMonAnimStage(void) { - struct PokeblockFeedStruct *pokeblockFeed = sPokeblockFeed; + struct PokeblockFeed *pokeblockFeed = sPokeblockFeed; u8 i; - for (i = 0; i < 10; i++) - pokeblockFeed->field_1060[i] = sMonPokeblockAnims[pokeblockFeed->animId][i]; + for (i = 0; i < NUM_ANIMDATA; i++) + pokeblockFeed->animData[i] = sMonPokeblockAnims[pokeblockFeed->animId][i]; - if (pokeblockFeed->field_1060[4] == 0) + if (pokeblockFeed->animData[ANIMDATA_TIME] == 0) { return TRUE; } else { - pokeblockFeed->field_1060[10] = Sin(pokeblockFeed->field_1060[0], pokeblockFeed->field_1060[2]); - pokeblockFeed->field_1060[11] = Cos(pokeblockFeed->field_1060[0], pokeblockFeed->field_1060[3]); - pokeblockFeed->field_1060[12] = pokeblockFeed->field_1060[4]; - pokeblockFeed->field_1060[13] = pokeblockFeed->monSpritePtr->pos2.x; - pokeblockFeed->field_1060[14] = pokeblockFeed->monSpritePtr->pos2.y; - sub_817AB68(); - pokeblockFeed->field_1060[4] = pokeblockFeed->field_1060[12]; - sub_817AA54(); - pokeblockFeed->field_1060[4] = pokeblockFeed->field_1060[12]; + pokeblockFeed->monInitX = Sin(pokeblockFeed->animData[ANIMDATA_ROT_IDX], pokeblockFeed->animData[ANIMDATA_SIN_AMPLITUDE]); + pokeblockFeed->monInitY = Cos(pokeblockFeed->animData[ANIMDATA_ROT_IDX], pokeblockFeed->animData[ANIMDATA_COS_AMPLITUDE]); + pokeblockFeed->maxAnimStageTime = pokeblockFeed->animData[ANIMDATA_TIME]; + pokeblockFeed->monX = pokeblockFeed->monSpritePtr->x2; + pokeblockFeed->monY = pokeblockFeed->monSpritePtr->y2; + + // Calculate the positions to move to during the animation + // The time is counted down during this, so reset it afterwards + CalculateMonAnimMovement(); + pokeblockFeed->animData[ANIMDATA_TIME] = pokeblockFeed->maxAnimStageTime; + CalculateMonAnimMovementEnd(); + pokeblockFeed->animData[ANIMDATA_TIME] = pokeblockFeed->maxAnimStageTime; // Redundant return FALSE; } } -static bool8 sub_817A9E4(void) +static bool8 DoMonAnimStep(void) { - u16 var = sPokeblockFeed->field_1060[12] - sPokeblockFeed->field_1060[4]; + // Update mon's position + u16 time = sPokeblockFeed->maxAnimStageTime - sPokeblockFeed->animData[ANIMDATA_TIME]; + sPokeblockFeed->monSpritePtr->x2 = sPokeblockFeed->monAnimX[time]; + sPokeblockFeed->monSpritePtr->y2 = sPokeblockFeed->monAnimY[time]; - sPokeblockFeed->monSpritePtr->pos2.x = sPokeblockFeed->field_850[var]; - sPokeblockFeed->monSpritePtr->pos2.y = sPokeblockFeed->field_C50[var]; - - if (--sPokeblockFeed->field_1060[4] == 0) + // Count down time remaining in this stage + // Return TRUE if this stage is complete + if (--sPokeblockFeed->animData[ANIMDATA_TIME] == 0) return TRUE; else return FALSE; @@ -1036,66 +1128,70 @@ static bool8 FreeMonSpriteOamMatrix(void) return FALSE; } -static void sub_817AA54(void) +static void CalculateMonAnimMovementEnd(void) { - struct PokeblockFeedStruct *pokeblockFeed = sPokeblockFeed; + struct PokeblockFeed *pokeblockFeed = sPokeblockFeed; u16 i; - u16 r8 = pokeblockFeed->field_1060[8]; - u16 r7 = pokeblockFeed->field_1060[12] - r8; - s16 var3 = pokeblockFeed->field_1060[13] + pokeblockFeed->field_1060[6]; - s16 r9 = pokeblockFeed->field_1060[14] + pokeblockFeed->field_1060[7]; + u16 approachTime = pokeblockFeed->animData[ANIMDATA_APPR_TIME]; + u16 time = pokeblockFeed->maxAnimStageTime - approachTime; + s16 x = pokeblockFeed->monX + pokeblockFeed->animData[ANIMDATA_TARGET_X]; + s16 y = pokeblockFeed->monY + pokeblockFeed->animData[ANIMDATA_TARGET_Y]; - for (i = 0; i < r7 - 1; i++) + for (i = 0; i < time - 1; i++) { - s16 r1 = pokeblockFeed->field_850[r8 + i] - (var3); - s16 r4 = pokeblockFeed->field_C50[r8 + i] - r9; + s16 xOffset = pokeblockFeed->monAnimX[approachTime + i] - x; + s16 yOffset = pokeblockFeed->monAnimY[approachTime + i] - y; - pokeblockFeed->field_850[r8 + i] -= r1 * (i + 1) / r7; - pokeblockFeed->field_C50[r8 + i] -= r4 * (i + 1) / r7; + pokeblockFeed->monAnimX[approachTime + i] -= xOffset * (i + 1) / time; + pokeblockFeed->monAnimY[approachTime + i] -= yOffset * (i + 1) / time; } - pokeblockFeed->field_850[(r8 + r7) - 1] = var3; - pokeblockFeed->field_C50[(r8 + r7) - 1] = r9; + pokeblockFeed->monAnimX[approachTime + time - 1] = x; + pokeblockFeed->monAnimY[approachTime + time - 1] = y; } -static void sub_817AB68(void) +static void CalculateMonAnimMovement(void) { - struct PokeblockFeedStruct *pokeblockFeed = sPokeblockFeed; - bool8 var_24 = FALSE; - s16 r8 = pokeblockFeed->field_1060[13] - pokeblockFeed->field_1060[10]; - s16 r7 = pokeblockFeed->field_1060[14] - pokeblockFeed->field_1060[11]; + struct PokeblockFeed *pokeblockFeed = sPokeblockFeed; + bool8 negative = FALSE; + s16 x = pokeblockFeed->monX - pokeblockFeed->monInitX; + s16 y = pokeblockFeed->monY - pokeblockFeed->monInitY; while (1) { - u16 r5; - u16 r4; - u16 var; + u16 amplitude; + u16 time; + u16 acceleration; - var = abs(pokeblockFeed->field_1060[5]); - r5 = var + pokeblockFeed->field_1060[3]; - pokeblockFeed->field_1060[3] = r5; + acceleration = abs(pokeblockFeed->animData[ANIMDATA_ROT_ACCEL]); + amplitude = acceleration + pokeblockFeed->animData[ANIMDATA_COS_AMPLITUDE]; + pokeblockFeed->animData[ANIMDATA_COS_AMPLITUDE] = amplitude; - if (pokeblockFeed->field_1060[2] < 0) - var_24 = TRUE; + if (pokeblockFeed->animData[ANIMDATA_SIN_AMPLITUDE] < 0) + negative = TRUE; - r4 = pokeblockFeed->field_1060[12] - pokeblockFeed->field_1060[4]; + time = pokeblockFeed->maxAnimStageTime - pokeblockFeed->animData[ANIMDATA_TIME]; - if (pokeblockFeed->field_1060[4] == 0) + if (pokeblockFeed->animData[ANIMDATA_TIME] == 0) break; - if (!var_24) + if (!negative) { - pokeblockFeed->field_850[r4] = Sin(pokeblockFeed->field_1060[0], pokeblockFeed->field_1060[2] + r5 / 0x100) + r8; - pokeblockFeed->field_C50[r4] = Cos(pokeblockFeed->field_1060[0], pokeblockFeed->field_1060[3] + r5 / 0x100) + r7; + pokeblockFeed->monAnimX[time] = Sin(pokeblockFeed->animData[ANIMDATA_ROT_IDX], + pokeblockFeed->animData[ANIMDATA_SIN_AMPLITUDE] + amplitude / 0x100) + x; + pokeblockFeed->monAnimY[time] = Cos(pokeblockFeed->animData[ANIMDATA_ROT_IDX], + pokeblockFeed->animData[ANIMDATA_COS_AMPLITUDE] + amplitude / 0x100) + y; } else { - pokeblockFeed->field_850[r4] = Sin(pokeblockFeed->field_1060[0], pokeblockFeed->field_1060[2] - r5 / 0x100) + r8; - pokeblockFeed->field_C50[r4] = Cos(pokeblockFeed->field_1060[0], pokeblockFeed->field_1060[3] - r5 / 0x100) + r7; + pokeblockFeed->monAnimX[time] = Sin(pokeblockFeed->animData[ANIMDATA_ROT_IDX], + pokeblockFeed->animData[ANIMDATA_SIN_AMPLITUDE] - amplitude / 0x100) + x; + pokeblockFeed->monAnimY[time] = Cos(pokeblockFeed->animData[ANIMDATA_ROT_IDX], + pokeblockFeed->animData[ANIMDATA_COS_AMPLITUDE] - amplitude / 0x100) + y; } - pokeblockFeed->field_1060[0] += pokeblockFeed->field_1060[1]; - pokeblockFeed->field_1060[0] &= 0xFF; - pokeblockFeed->field_1060[4]--; + pokeblockFeed->animData[ANIMDATA_ROT_IDX] += pokeblockFeed->animData[ANIMDATA_ROT_SPEED]; + pokeblockFeed->animData[ANIMDATA_ROT_IDX] &= 0xFF; + pokeblockFeed->animData[ANIMDATA_TIME]--; } } diff --git a/src/pokedex.c b/src/pokedex.c index 691abd649f..cc469b32f8 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -305,7 +305,7 @@ static void ClearSearchParameterBoxText(void); static const struct OamData sOamData_ScrollBar = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -322,7 +322,7 @@ static const struct OamData sOamData_ScrollBar = static const struct OamData sOamData_ScrollArrow = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -339,7 +339,7 @@ static const struct OamData sOamData_ScrollArrow = static const struct OamData sOamData_InterfaceText = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -356,7 +356,7 @@ static const struct OamData sOamData_InterfaceText = static const struct OamData sOamData_RotatingPokeBall = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_WINDOW, .mosaic = 0, @@ -373,7 +373,7 @@ static const struct OamData sOamData_RotatingPokeBall = static const struct OamData sOamData_SeenOwnText = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -390,7 +390,7 @@ static const struct OamData sOamData_SeenOwnText = static const struct OamData sOamData_Dex8x16 = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -1373,7 +1373,7 @@ static const struct SearchOptionText sDexSearchColorOptions[] = {}, }; -static const struct SearchOptionText sDexSearchTypeOptions[] = +static const struct SearchOptionText sDexSearchTypeOptions[NUMBER_OF_MON_TYPES + 1] = // + 2 for "None" and terminator, - 1 for Mystery { {gText_DexEmptyString, gText_DexSearchTypeNone}, {gText_DexEmptyString, gTypeNames[TYPE_NORMAL]}, @@ -1407,7 +1407,7 @@ static const u8 sOrderOptions[] = ORDER_SMALLEST, }; -static const u8 sDexSearchTypeIds[] = +static const u8 sDexSearchTypeIds[NUMBER_OF_MON_TYPES] = { TYPE_NONE, TYPE_NORMAL, @@ -1587,9 +1587,6 @@ static void ResetPokedexView(struct PokedexView *pokedexView) void CB2_OpenPokedex(void) { - u8 *addr; - u32 size; - switch (gMain.state) { case 0: @@ -1692,7 +1689,7 @@ static void Task_HandlePokedexInput(u8 taskId) else if (JOY_NEW(SELECT_BUTTON)) { PlaySE(SE_SELECT); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].tTaskId = LoadSearchMenu(); sPokedexView->screenSwitchState = 0; sPokedexView->pokeBallRotationBackup = sPokedexView->pokeBallRotation; @@ -1705,7 +1702,7 @@ static void Task_HandlePokedexInput(u8 taskId) } else if (JOY_NEW(B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ClosePokedex; PlaySE(SE_PC_OFF); } @@ -1759,7 +1756,7 @@ static void Task_HandlePokedexStartMenuInput(u8 taskId) gMain.newKeys |= START_BUTTON; //Exit menu break; case 3: //CLOSE POKEDEX - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ClosePokedex; PlaySE(SE_PC_OFF); break; @@ -1788,7 +1785,7 @@ static void Task_HandlePokedexStartMenuInput(u8 taskId) static void Task_OpenInfoScreenAfterMonMovement(u8 taskId) { - if (gSprites[sPokedexView->selectedMonSpriteId].pos1.x == 48 && gSprites[sPokedexView->selectedMonSpriteId].pos1.y == 56) + if (gSprites[sPokedexView->selectedMonSpriteId].x == 48 && gSprites[sPokedexView->selectedMonSpriteId].y == 56) { sPokedexView->currentPageBackup = sPokedexView->currentPage; gTasks[taskId].tTaskId = LoadInfoScreen(&sPokedexView->pokedexList[sPokedexView->selectedPokemon], sPokedexView->selectedMonSpriteId); @@ -1894,7 +1891,7 @@ static void Task_HandleSearchResultsInput(u8 taskId) } else if (JOY_NEW(SELECT_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].tTaskId = LoadSearchMenu(); sPokedexView->screenSwitchState = 0; gTasks[taskId].func = Task_WaitForExitSearch; @@ -1903,7 +1900,7 @@ static void Task_HandleSearchResultsInput(u8 taskId) } else if (JOY_NEW(B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ReturnToPokedexFromSearchResults; PlaySE(SE_PC_OFF); } @@ -1956,12 +1953,12 @@ static void Task_HandleSearchResultsStartMenuInput(u8 taskId) gMain.newKeys |= START_BUTTON; break; case 3: //BACK TO POKEDEX - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ReturnToPokedexFromSearchResults; PlaySE(SE_TRUCK_DOOR); break; case 4: //CLOSE POKEDEX - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ClosePokedexFromSearchResultsStartMenu; PlaySE(SE_PC_OFF); break; @@ -1990,7 +1987,7 @@ static void Task_HandleSearchResultsStartMenuInput(u8 taskId) static void Task_OpenSearchResultsInfoScreenAfterMonMovement(u8 taskId) { - if (gSprites[sPokedexView->selectedMonSpriteId].pos1.x == 48 && gSprites[sPokedexView->selectedMonSpriteId].pos1.y == 56) + if (gSprites[sPokedexView->selectedMonSpriteId].x == 48 && gSprites[sPokedexView->selectedMonSpriteId].y == 56) { sPokedexView->currentPageBackup = sPokedexView->currentPage; gTasks[taskId].tTaskId = LoadInfoScreen(&sPokedexView->pokedexList[sPokedexView->selectedPokemon], sPokedexView->selectedMonSpriteId); @@ -2107,13 +2104,13 @@ static bool8 LoadPokedexListPage(u8 page) gMain.state++; break; case 4: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(VBlankCB_Pokedex); gMain.state++; break; case 5: - SetGpuReg(REG_OFFSET_WININ, 0x3F3F); - SetGpuReg(REG_OFFSET_WINOUT, 0x1D3F); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_ALL | WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3 | WINOUT_WINOBJ_OBJ); SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WIN1H, 0); @@ -2321,7 +2318,7 @@ static void PrintMonDexNumAndName(u8 windowId, u8 fontId, const u8* str, u8 left color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_6; - color[2] = TEXT_COLOR_LIGHT_GREY; + color[2] = TEXT_COLOR_LIGHT_GRAY; AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str); } @@ -2655,7 +2652,7 @@ static void UpdateSelectedMonSpriteId(void) { u16 spriteId = sPokedexView->monSpriteIds[i]; - if (gSprites[spriteId].pos2.x == 0 && gSprites[spriteId].pos2.y == 0 && spriteId != 0xFFFF) + if (gSprites[spriteId].x2 == 0 && gSprites[spriteId].y2 == 0 && spriteId != 0xFFFF) sPokedexView->selectedMonSpriteId = spriteId; } } @@ -2771,7 +2768,7 @@ static void CreateInterfaceSprites(u8 page) // Scroll arrows spriteId = CreateSprite(&sScrollArrowSpriteTemplate, 184, 4, 0); gSprites[spriteId].sIsDownArrow = FALSE; - spriteId = CreateSprite(&sScrollArrowSpriteTemplate, 184, 156, 0); + spriteId = CreateSprite(&sScrollArrowSpriteTemplate, 184, DISPLAY_HEIGHT - 4, 0); gSprites[spriteId].sIsDownArrow = TRUE; gSprites[spriteId].vFlip = TRUE; @@ -2782,20 +2779,20 @@ static void CreateInterfaceSprites(u8 page) spriteId = CreateSprite(&sInterfaceTextSpriteTemplate, 48, 120, 0); StartSpriteAnim(&gSprites[spriteId], 3); // Select button - spriteId = CreateSprite(&sInterfaceTextSpriteTemplate, 16, 144, 0); + spriteId = CreateSprite(&sInterfaceTextSpriteTemplate, 16, DISPLAY_HEIGHT - 16, 0); StartSpriteAnim(&gSprites[spriteId], 2); gSprites[spriteId].data[2] = 0x80; // Search text - spriteId = CreateSprite(&sInterfaceTextSpriteTemplate, 48, 144, 0); + spriteId = CreateSprite(&sInterfaceTextSpriteTemplate, 48, DISPLAY_HEIGHT - 16, 0); StartSpriteAnim(&gSprites[spriteId], 1); - spriteId = CreateSprite(&sRotatingPokeBallSpriteTemplate, 0, 80, 2); + spriteId = CreateSprite(&sRotatingPokeBallSpriteTemplate, 0, DISPLAY_HEIGHT / 2, 2); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 30; gSprites[spriteId].data[0] = 30; gSprites[spriteId].data[1] = 0; - spriteId = CreateSprite(&sRotatingPokeBallSpriteTemplate, 0, 80, 2); + spriteId = CreateSprite(&sRotatingPokeBallSpriteTemplate, 0, DISPLAY_HEIGHT / 2, 2); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 31; gSprites[spriteId].data[0] = 31; @@ -3003,19 +3000,19 @@ void SpriteCB_MoveMonForInfoScreen(struct Sprite *sprite) { sprite->oam.priority = 0; sprite->oam.affineMode = ST_OAM_AFFINE_OFF; - sprite->pos2.x = 0; - sprite->pos2.y = 0; - if (sprite->pos1.x != 48 || sprite->pos1.y != 56) + sprite->x2 = 0; + sprite->y2 = 0; + if (sprite->x != 48 || sprite->y != 56) { - if (sprite->pos1.x > 48) - sprite->pos1.x--; - if (sprite->pos1.x < 48) - sprite->pos1.x++; + if (sprite->x > 48) + sprite->x--; + if (sprite->x < 48) + sprite->x++; - if (sprite->pos1.y > 56) - sprite->pos1.y--; - if (sprite->pos1.y < 56) - sprite->pos1.y++; + if (sprite->y > 56) + sprite->y--; + if (sprite->y < 56) + sprite->y++; } else { @@ -3035,17 +3032,8 @@ static void SpriteCB_PokedexListMonSprite(struct Sprite *sprite) else { u32 var; - - sprite->pos2.y = gSineTable[(u8)sprite->data[5]] * 76 / 256; - // UB: possible division by zero -#ifdef UBFIX - if (gSineTable[sprite->data[5] + 64] != 0) - var = 0x10000 / gSineTable[sprite->data[5] + 64]; - else - var = 0xFFFF; -#else - var = 0x10000 / gSineTable[sprite->data[5] + 64]; -#endif //UBFIX + sprite->y2 = gSineTable[(u8)sprite->data[5]] * 76 / 256; + var = SAFE_DIV(0x10000, gSineTable[sprite->data[5] + 64]); if (var > 0xFFFF) var = 0xFFFF; SetOamMatrix(sprite->data[1] + 1, 0x100, 0, 0, var); @@ -3074,7 +3062,7 @@ static void SpriteCB_Scrollbar(struct Sprite *sprite) if (sPokedexView->currentPage != PAGE_MAIN && sPokedexView->currentPage != PAGE_SEARCH_RESULTS) DestroySprite(sprite); else - sprite->pos2.y = sPokedexView->selectedPokemon * 120 / (sPokedexView->pokemonListCount - 1); + sprite->y2 = sPokedexView->selectedPokemon * 120 / (sPokedexView->pokemonListCount - 1); } static void SpriteCB_ScrollArrow(struct Sprite *sprite) @@ -3103,7 +3091,7 @@ static void SpriteCB_ScrollArrow(struct Sprite *sprite) sprite->invisible = FALSE; r0 = sprite->data[2] - 128; } - sprite->pos2.y = gSineTable[r0] / 64; + sprite->y2 = gSineTable[r0] / 64; sprite->data[2] = sprite->data[2] + 8; if (sPokedexView->menuIsOpen == FALSE && sPokedexView->menuY == 0 && sprite->invisible == FALSE) sprite->invisible = FALSE; @@ -3138,8 +3126,8 @@ static void SpriteCB_RotatingPokeBall(struct Sprite *sprite) val = sPokedexView->pokeBallRotation + (sprite->data[1] + 64); r3 = gSineTable[val]; r0 = gSineTable[val + 64]; - sprite->pos2.x = r0 * 40 / 256; - sprite->pos2.y = r3 * 40 / 256; + sprite->x2 = r0 * 40 / 256; + sprite->y2 = r3 * 40 / 256; } } @@ -3156,8 +3144,8 @@ static void SpriteCB_DexListStartMenuCursor(struct Sprite *sprite) if (sPokedexView->menuIsOpen && sPokedexView->menuY == r1) { sprite->invisible = FALSE; - sprite->pos2.y = sPokedexView->menuCursorPos * 16; - sprite->pos2.x = gSineTable[(u8)sprite->data[2]] / 64; + sprite->y2 = sPokedexView->menuCursorPos * 16; + sprite->x2 = gSineTable[(u8)sprite->data[2]] / 64; sprite->data[2] += 8; } else @@ -3172,7 +3160,7 @@ static void PrintInfoScreenText(const u8* str, u8 left, u8 top) u8 color[3]; color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_6; - color[2] = TEXT_COLOR_LIGHT_GREY; + color[2] = TEXT_COLOR_LIGHT_GRAY; AddTextPrinterParameterized4(0, 1, left, top, 0, 0, color, -1, str); } @@ -3358,14 +3346,14 @@ static void Task_HandleInfoScreenInput(u8 taskId) if (gTasks[taskId].data[0] != 0) { // Scroll up/down - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_LoadInfoScreenWaitForFade; PlaySE(SE_DEX_SCROLL); return; } if (JOY_NEW(B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_ExitInfoScreen; PlaySE(SE_PC_OFF); return; @@ -3375,13 +3363,13 @@ static void Task_HandleInfoScreenInput(u8 taskId) switch (sPokedexView->selectedScreen) { case AREA_SCREEN: - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 16, RGB_BLACK); sPokedexView->screenSwitchState = 1; gTasks[taskId].func = Task_SwitchScreensFromInfoScreen; PlaySE(SE_PIN); break; case CRY_SCREEN: - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 0x10, RGB_BLACK); sPokedexView->screenSwitchState = 2; gTasks[taskId].func = Task_SwitchScreensFromInfoScreen; PlaySE(SE_PIN); @@ -3393,14 +3381,14 @@ static void Task_HandleInfoScreenInput(u8 taskId) } else { - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 0x10, RGB_BLACK); sPokedexView->screenSwitchState = 3; gTasks[taskId].func = Task_SwitchScreensFromInfoScreen; PlaySE(SE_PIN); } break; case CANCEL_SCREEN: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ExitInfoScreen; PlaySE(SE_PC_OFF); break; @@ -3605,7 +3593,7 @@ static void Task_LoadCryScreen(u8 taskId) } break; case 8: - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(gPokedexVBlankCB); gMain.state++; break; @@ -3647,7 +3635,7 @@ static void Task_HandleCryScreenInput(u8 taskId) { if (JOY_NEW(B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 0x10, RGB_BLACK); m4aMPlayContinue(&gMPlayInfo_BGM); sPokedexView->screenSwitchState = 1; gTasks[taskId].func = Task_SwitchScreensFromCryScreen; @@ -3657,7 +3645,7 @@ static void Task_HandleCryScreenInput(u8 taskId) if ((JOY_NEW(DPAD_LEFT)) || ((JOY_NEW(L_BUTTON)) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 0x10, RGB_BLACK); m4aMPlayContinue(&gMPlayInfo_BGM); sPokedexView->screenSwitchState = 2; gTasks[taskId].func = Task_SwitchScreensFromCryScreen; @@ -3673,7 +3661,7 @@ static void Task_HandleCryScreenInput(u8 taskId) } else { - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 0x10, RGB_BLACK); m4aMPlayContinue(&gMPlayInfo_BGM); sPokedexView->screenSwitchState = 3; gTasks[taskId].func = Task_SwitchScreensFromCryScreen; @@ -3767,7 +3755,7 @@ static void Task_LoadSizeScreen(u8 taskId) gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 1; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].pos2.y = gPokedexEntries[sPokedexListItem->dexNum].trainerOffset; + gSprites[spriteId].y2 = gPokedexEntries[sPokedexListItem->dexNum].trainerOffset; SetOamMatrix(1, gPokedexEntries[sPokedexListItem->dexNum].trainerScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].trainerScale); LoadPalette(sSizeScreenSilhouette_Pal, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); gTasks[taskId].data[5] = spriteId; @@ -3778,7 +3766,7 @@ static void Task_LoadSizeScreen(u8 taskId) gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 2; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].pos2.y = gPokedexEntries[sPokedexListItem->dexNum].pokemonOffset; + gSprites[spriteId].y2 = gPokedexEntries[sPokedexListItem->dexNum].pokemonOffset; SetOamMatrix(2, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale); LoadPalette(sSizeScreenSilhouette_Pal, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); gTasks[taskId].tMonSpriteId = spriteId; @@ -3789,7 +3777,7 @@ static void Task_LoadSizeScreen(u8 taskId) gMain.state++; break; case 7: - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(gPokedexVBlankCB); gMain.state++; break; @@ -3819,7 +3807,7 @@ static void Task_HandleSizeScreenInput(u8 taskId) { if (JOY_NEW(B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 0x10, RGB_BLACK); sPokedexView->screenSwitchState = 1; gTasks[taskId].func = Task_SwitchScreensFromSizeScreen; PlaySE(SE_PC_OFF); @@ -3827,7 +3815,7 @@ static void Task_HandleSizeScreenInput(u8 taskId) else if ((JOY_NEW(DPAD_LEFT)) || ((JOY_NEW(L_BUTTON)) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 0x10, RGB_BLACK); sPokedexView->screenSwitchState = 2; gTasks[taskId].func = Task_SwitchScreensFromSizeScreen; PlaySE(SE_DEX_PAGE); @@ -3990,7 +3978,7 @@ static void Task_DisplayCaughtMonDexPage(u8 taskId) case 4: spriteId = CreateMonSpriteFromNationalDexNumber(dexNum, 48, 56, 0); gSprites[spriteId].oam.priority = 0; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(gPokedexVBlankCB); gTasks[taskId].tMonSpriteId = spriteId; gTasks[taskId].tState++; @@ -4019,7 +4007,7 @@ static void Task_HandleCaughtMonPageInput(u8 taskId) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { - BeginNormalPaletteFade(0x0000FFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_BG, 0, 0, 16, RGB_BLACK); gSprites[gTasks[taskId].tMonSpriteId].callback = SpriteCB_SlideCaughtMonToCenter; gTasks[taskId].func = Task_ExitCaughtMonPage; } @@ -4066,15 +4054,15 @@ static void Task_ExitCaughtMonPage(u8 taskId) static void SpriteCB_SlideCaughtMonToCenter(struct Sprite *sprite) { - if (sprite->pos1.x < 0x78) - sprite->pos1.x += 2; - if (sprite->pos1.x > 0x78) - sprite->pos1.x -= 2; + if (sprite->x < 0x78) + sprite->x += 2; + if (sprite->x > 0x78) + sprite->x -= 2; - if (sprite->pos1.y < 0x50) - sprite->pos1.y += 1; - if (sprite->pos1.y > 0x50) - sprite->pos1.y -= 1; + if (sprite->y < 0x50) + sprite->y += 1; + if (sprite->y > 0x50) + sprite->y -= 1; } #undef tState @@ -4469,7 +4457,7 @@ static void PrintInfoSubMenuText(u8 windowId, const u8 *str, u8 left, u8 top) u8 color[3]; color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_6; - color[2] = TEXT_COLOR_LIGHT_GREY; + color[2] = TEXT_COLOR_LIGHT_GRAY; AddTextPrinterParameterized4(windowId, 1, left, top, 0, 0, color, -1, str); } @@ -4778,7 +4766,7 @@ static void PrintSearchText(const u8 *str, u32 x, u32 y) color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_6; - color[2] = TEXT_COLOR_DARK_GREY; + color[2] = TEXT_COLOR_DARK_GRAY; AddTextPrinterParameterized4(0, 1, x, y, 0, 0, color, -1, str); } @@ -4852,7 +4840,7 @@ static void Task_LoadSearchMenu(u8 taskId) gMain.state++; break; case 2: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gMain.state++; break; case 3: @@ -5222,7 +5210,7 @@ static void Task_HandleSearchParameterInput(u8 taskId) static void Task_ExitSearch(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_ExitSearchWaitForFade; } @@ -5582,7 +5570,7 @@ static void SpriteCB_SearchParameterScrollArrow(struct Sprite *sprite) sprite->invisible = FALSE; } val = sprite->data[2] + sprite->sIsDownArrow * 128; - sprite->pos2.y = gSineTable[val] / 128; + sprite->y2 = gSineTable[val] / 128; sprite->data[2] += 8; } else diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 7a3b38dc2a..f9cf423092 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -489,7 +489,6 @@ static bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 species, u16 static void BuildAreaGlowTilemap(void) { u16 i, y, x, j; - u16 val; for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaGlowTilemap); i++) sPokedexAreaScreen->areaGlowTilemap[i] = 0; @@ -692,7 +691,7 @@ static void Task_ShowPokedexAreaScreen(u8 taskId) CreateAreaUnknownSprites(); break; case 9: - BeginNormalPaletteFade(0xFFFFFFEB, 0, 16, 0, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 16, 0, RGB(0, 0, 0)); break; case 10: SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_ALL); @@ -737,7 +736,7 @@ static void Task_HandlePokedexAreaScreenInput(u8 taskId) return; break; case 2: - BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 0, 16, RGB_BLACK); break; case 3: if (gPaletteFade.active) diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 0a6f639ae8..e1d1776b13 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -188,7 +188,7 @@ static const union AnimCmd *const sSpriteAnimTable_CryMeterNeedle[] = static const struct OamData sOamData_CryMeterNeedle = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, .bpp = ST_OAM_4BPP, @@ -560,8 +560,8 @@ static void SpriteCB_CryMeterNeedle(struct Sprite *sprite) SetOamMatrix(0, matrix.a, matrix.b, matrix.c, matrix.d); x = gSineTable[((sCryMeterNeedle->rotation + 0x7F) & 0xFF)]; y = gSineTable[((sCryMeterNeedle->rotation + 0x7F) & 0xFF) + 64]; - sprite->pos2.x = x * 24 / 256; - sprite->pos2.y = y * 24 / 256; + sprite->x2 = x * 24 / 256; + sprite->y2 = y * 24 / 256; } static void SetCryMeterNeedleTarget(s8 offset) diff --git a/src/pokemon.c b/src/pokemon.c index dd5da35298..2bde104212 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1350,32 +1350,32 @@ const struct SpindaSpot gSpindaSpotGraphics[] = const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = { - // Atk Def Spd Sp.Atk Sp.Def - { 0, 0, 0, 0, 0}, // Hardy - { +1, -1, 0, 0, 0}, // Lonely - { +1, 0, -1, 0, 0}, // Brave - { +1, 0, 0, -1, 0}, // Adamant - { +1, 0, 0, 0, -1}, // Naughty - { -1, +1, 0, 0, 0}, // Bold - { 0, 0, 0, 0, 0}, // Docile - { 0, +1, -1, 0, 0}, // Relaxed - { 0, +1, 0, -1, 0}, // Impish - { 0, +1, 0, 0, -1}, // Lax - { -1, 0, +1, 0, 0}, // Timid - { 0, -1, +1, 0, 0}, // Hasty - { 0, 0, 0, 0, 0}, // Serious - { 0, 0, +1, -1, 0}, // Jolly - { 0, 0, +1, 0, -1}, // Naive - { -1, 0, 0, +1, 0}, // Modest - { 0, -1, 0, +1, 0}, // Mild - { 0, 0, -1, +1, 0}, // Quiet - { 0, 0, 0, 0, 0}, // Bashful - { 0, 0, 0, +1, -1}, // Rash - { -1, 0, 0, 0, +1}, // Calm - { 0, -1, 0, 0, +1}, // Gentle - { 0, 0, -1, 0, +1}, // Sassy - { 0, 0, 0, -1, +1}, // Careful - { 0, 0, 0, 0, 0}, // Quirky + // Atk Def Spd Sp.Atk Sp.Def + [NATURE_HARDY] = { 0, 0, 0, 0, 0}, + [NATURE_LONELY] = { +1, -1, 0, 0, 0}, + [NATURE_BRAVE] = { +1, 0, -1, 0, 0}, + [NATURE_ADAMANT] = { +1, 0, 0, -1, 0}, + [NATURE_NAUGHTY] = { +1, 0, 0, 0, -1}, + [NATURE_BOLD] = { -1, +1, 0, 0, 0}, + [NATURE_DOCILE] = { 0, 0, 0, 0, 0}, + [NATURE_RELAXED] = { 0, +1, -1, 0, 0}, + [NATURE_IMPISH] = { 0, +1, 0, -1, 0}, + [NATURE_LAX] = { 0, +1, 0, 0, -1}, + [NATURE_TIMID] = { -1, 0, +1, 0, 0}, + [NATURE_HASTY] = { 0, -1, +1, 0, 0}, + [NATURE_SERIOUS] = { 0, 0, 0, 0, 0}, + [NATURE_JOLLY] = { 0, 0, +1, -1, 0}, + [NATURE_NAIVE] = { 0, 0, +1, 0, -1}, + [NATURE_MODEST] = { -1, 0, 0, +1, 0}, + [NATURE_MILD] = { 0, -1, 0, +1, 0}, + [NATURE_QUIET] = { 0, 0, -1, +1, 0}, + [NATURE_BASHFUL] = { 0, 0, 0, 0, 0}, + [NATURE_RASH] = { 0, 0, 0, +1, -1}, + [NATURE_CALM] = { -1, 0, 0, 0, +1}, + [NATURE_GENTLE] = { 0, -1, 0, 0, +1}, + [NATURE_SASSY] = { 0, 0, -1, 0, +1}, + [NATURE_CAREFUL] = { 0, 0, 0, -1, +1}, + [NATURE_QUIRKY] = { 0, 0, 0, 0, 0}, }; #include "data/pokemon/tmhm_learnsets.h" @@ -1386,481 +1386,458 @@ const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = #include "data/pokemon/level_up_learnsets.h" #include "data/pokemon/evolution.h" #include "data/pokemon/level_up_learnset_pointers.h" +#include "data/pokemon/form_species_tables.h" +#include "data/pokemon/form_species_table_pointers.h" // SPECIES_NONE are ignored in the following two tables, so decrement before accessing these arrays to get the right result static const u8 sMonFrontAnimIdsTable[] = { - [SPECIES_BULBASAUR - 1] = 0x06, - [SPECIES_IVYSAUR - 1] = 0x17, - [SPECIES_VENUSAUR - 1] = 0x2f, - [SPECIES_CHARMANDER - 1] = 0x52, - [SPECIES_CHARMELEON - 1] = 0x25, - [SPECIES_CHARIZARD - 1] = 0x10, - [SPECIES_SQUIRTLE - 1] = 0x0b, - [SPECIES_WARTORTLE - 1] = 0x13, - [SPECIES_BLASTOISE - 1] = 0x19, - [SPECIES_CATERPIE - 1] = 0x0b, - [SPECIES_METAPOD - 1] = 0x0b, - [SPECIES_BUTTERFREE - 1] = 0x1d, - [SPECIES_WEEDLE - 1] = 0x46, - [SPECIES_KAKUNA - 1] = 0x20, - [SPECIES_BEEDRILL - 1] = 0x02, - [SPECIES_PIDGEY - 1] = 0x47, - [SPECIES_PIDGEOTTO - 1] = 0x17, - [SPECIES_PIDGEOT - 1] = 0x29, - [SPECIES_RATTATA - 1] = 0x43, - [SPECIES_RATICATE - 1] = 0x2b, - [SPECIES_SPEAROW - 1] = 0x18, - [SPECIES_FEAROW - 1] = 0x2b, - [SPECIES_EKANS - 1] = 0x16, - [SPECIES_ARBOK - 1] = 0x17, - [SPECIES_PIKACHU - 1] = 0x2c, - [SPECIES_RAICHU - 1] = 0x17, - [SPECIES_SANDSHREW - 1] = 0x2d, - [SPECIES_SANDSLASH - 1] = 0x17, - [SPECIES_NIDORAN_F - 1] = 0x00, - [SPECIES_NIDORINA - 1] = 0x17, - [SPECIES_NIDOQUEEN - 1] = 0x0f, - [SPECIES_NIDORAN_M - 1] = 0x09, - [SPECIES_NIDORINO - 1] = 0x13, - [SPECIES_NIDOKING - 1] = 0x0f, - [SPECIES_CLEFAIRY - 1] = 0x00, - [SPECIES_CLEFABLE - 1] = 0x4a, - [SPECIES_VULPIX - 1] = 0x17, - [SPECIES_NINETALES - 1] = 0x10, - [SPECIES_JIGGLYPUFF - 1] = 0x48, - [SPECIES_WIGGLYTUFF - 1] = 0x31, - [SPECIES_ZUBAT - 1] = 0x00, - [SPECIES_GOLBAT - 1] = 0x1d, - [SPECIES_ODDISH - 1] = 0x00, - [SPECIES_GLOOM - 1] = 0x45, - [SPECIES_VILEPLUME - 1] = 0x49, - [SPECIES_PARAS - 1] = 0x46, - [SPECIES_PARASECT - 1] = 0x0f, - [SPECIES_VENONAT - 1] = 0x06, - [SPECIES_VENOMOTH - 1] = 0x4b, - [SPECIES_DIGLETT - 1] = 0x10, - [SPECIES_DUGTRIO - 1] = 0x4c, - [SPECIES_MEOWTH - 1] = 0x52, - [SPECIES_PERSIAN - 1] = 0x17, - [SPECIES_PSYDUCK - 1] = 0x06, - [SPECIES_GOLDUCK - 1] = 0x4c, - [SPECIES_MANKEY - 1] = 0x32, - [SPECIES_PRIMEAPE - 1] = 0x48, - [SPECIES_GROWLITHE - 1] = 0x25, - [SPECIES_ARCANINE - 1] = 0x02, - [SPECIES_POLIWAG - 1] = 0x00, - [SPECIES_POLIWHIRL - 1] = 0x32, - [SPECIES_POLIWRATH - 1] = 0x19, - [SPECIES_ABRA - 1] = 0x31, - [SPECIES_KADABRA - 1] = 0x09, - [SPECIES_ALAKAZAM - 1] = 0x17, - [SPECIES_MACHOP - 1] = 0x00, - [SPECIES_MACHOKE - 1] = 0x10, - [SPECIES_MACHAMP - 1] = 0x31, - [SPECIES_BELLSPROUT - 1] = 0x17, - [SPECIES_WEEPINBELL - 1] = 0x0d, - [SPECIES_VICTREEBEL - 1] = 0x32, - [SPECIES_TENTACOOL - 1] = 0x00, - [SPECIES_TENTACRUEL - 1] = 0x00, - [SPECIES_GEODUDE - 1] = 0x48, - [SPECIES_GRAVELER - 1] = 0x48, - [SPECIES_GOLEM - 1] = 0x2f, - [SPECIES_PONYTA - 1] = 0x20, - [SPECIES_RAPIDASH - 1] = 0x11, - [SPECIES_SLOWPOKE - 1] = 0x45, - [SPECIES_SLOWBRO - 1] = 0x0b, - [SPECIES_MAGNEMITE - 1] = 0x54, - [SPECIES_MAGNETON - 1] = 0x2c, - [SPECIES_FARFETCHD - 1] = 0x48, - [SPECIES_DODUO - 1] = 0x4c, - [SPECIES_DODRIO - 1] = 0x41, - [SPECIES_SEEL - 1] = 0x0b, - [SPECIES_DEWGONG - 1] = 0x45, - [SPECIES_GRIMER - 1] = 0x46, - [SPECIES_MUK - 1] = 0x30, - [SPECIES_SHELLDER - 1] = 0x12, - [SPECIES_CLOYSTER - 1] = 0x1d, - [SPECIES_GASTLY - 1] = 0x15, - [SPECIES_HAUNTER - 1] = 0x35, - [SPECIES_GENGAR - 1] = 0x3a, - [SPECIES_ONIX - 1] = 0x43, - [SPECIES_DROWZEE - 1] = 0x4f, - [SPECIES_HYPNO - 1] = 0x09, - [SPECIES_KRABBY - 1] = 0x03, - [SPECIES_KINGLER - 1] = 0x4b, - [SPECIES_VOLTORB - 1] = 0x00, - [SPECIES_ELECTRODE - 1] = 0x00, - [SPECIES_EXEGGCUTE - 1] = 0x46, - [SPECIES_EXEGGUTOR - 1] = 0x32, - [SPECIES_CUBONE - 1] = 0x48, - [SPECIES_MAROWAK - 1] = 0x05, - [SPECIES_HITMONLEE - 1] = 0x16, - [SPECIES_HITMONCHAN - 1] = 0x09, - [SPECIES_LICKITUNG - 1] = 0x45, - [SPECIES_KOFFING - 1] = 0x13, - [SPECIES_WEEZING - 1] = 0x04, - [SPECIES_RHYHORN - 1] = 0x10, - [SPECIES_RHYDON - 1] = 0x13, - [SPECIES_CHANSEY - 1] = 0x45, - [SPECIES_TANGELA - 1] = 0x48, - [SPECIES_KANGASKHAN - 1] = 0x17, - [SPECIES_HORSEA - 1] = 0x12, - [SPECIES_SEADRA - 1] = 0x04, - [SPECIES_GOLDEEN - 1] = 0x0d, - [SPECIES_SEAKING - 1] = 0x1c, - [SPECIES_STARYU - 1] = 0x4e, - [SPECIES_STARMIE - 1] = 0x12, - [SPECIES_MR_MIME - 1] = 0x46, - [SPECIES_SCYTHER - 1] = 0x02, - [SPECIES_JYNX - 1] = 0x17, - [SPECIES_ELECTABUZZ - 1] = 0x2c, - [SPECIES_MAGMAR - 1] = 0x0f, - [SPECIES_PINSIR - 1] = 0x09, - [SPECIES_TAUROS - 1] = 0x19, - [SPECIES_MAGIKARP - 1] = 0x05, - [SPECIES_GYARADOS - 1] = 0x48, - [SPECIES_LAPRAS - 1] = 0x17, - [SPECIES_DITTO - 1] = 0x01, - [SPECIES_EEVEE - 1] = 0x17, - [SPECIES_VAPOREON - 1] = 0x17, - [SPECIES_JOLTEON - 1] = 0x00, - [SPECIES_FLAREON - 1] = 0x17, - [SPECIES_PORYGON - 1] = 0x52, - [SPECIES_OMANYTE - 1] = 0x51, - [SPECIES_OMASTAR - 1] = 0x09, - [SPECIES_KABUTO - 1] = 0x1d, - [SPECIES_KABUTOPS - 1] = 0x0f, - [SPECIES_AERODACTYL - 1] = 0x47, - [SPECIES_SNORLAX - 1] = 0x0b, - [SPECIES_ARTICUNO - 1] = 0x09, - [SPECIES_ZAPDOS - 1] = 0x2c, - [SPECIES_MOLTRES - 1] = 0x45, - [SPECIES_DRATINI - 1] = 0x00, - [SPECIES_DRAGONAIR - 1] = 0x10, - [SPECIES_DRAGONITE - 1] = 0x47, - [SPECIES_MEWTWO - 1] = 0x09, - [SPECIES_MEW - 1] = 0x0d, - [SPECIES_CHIKORITA - 1] = 0x00, - [SPECIES_BAYLEEF - 1] = 0x00, - [SPECIES_MEGANIUM - 1] = 0x17, - [SPECIES_CYNDAQUIL - 1] = 0x52, - [SPECIES_QUILAVA - 1] = 0x17, - [SPECIES_TYPHLOSION - 1] = 0x10, - [SPECIES_TOTODILE - 1] = 0x31, - [SPECIES_CROCONAW - 1] = 0x0f, - [SPECIES_FERALIGATR - 1] = 0x0f, - [SPECIES_SENTRET - 1] = 0x00, - [SPECIES_FURRET - 1] = 0x32, - [SPECIES_HOOTHOOT - 1] = 0x47, - [SPECIES_NOCTOWL - 1] = 0x17, - [SPECIES_LEDYBA - 1] = 0x52, - [SPECIES_LEDIAN - 1] = 0x47, - [SPECIES_SPINARAK - 1] = 0x4f, - [SPECIES_ARIADOS - 1] = 0x0f, - [SPECIES_CROBAT - 1] = 0x00, - [SPECIES_CHINCHOU - 1] = 0x45, - [SPECIES_LANTURN - 1] = 0x51, - [SPECIES_PICHU - 1] = 0x1e, - [SPECIES_CLEFFA - 1] = 0x52, - [SPECIES_IGGLYBUFF - 1] = 0x0c, - [SPECIES_TOGEPI - 1] = 0x0b, - [SPECIES_TOGETIC - 1] = 0x00, - [SPECIES_NATU - 1] = 0x31, - [SPECIES_XATU - 1] = 0x09, - [SPECIES_MAREEP - 1] = 0x00, - [SPECIES_FLAAFFY - 1] = 0x1e, - [SPECIES_AMPHAROS - 1] = 0x2c, - [SPECIES_BELLOSSOM - 1] = 0x0b, - [SPECIES_MARILL - 1] = 0x00, - [SPECIES_AZUMARILL - 1] = 0x4a, - [SPECIES_SUDOWOODO - 1] = 0x46, - [SPECIES_POLITOED - 1] = 0x32, - [SPECIES_HOPPIP - 1] = 0x1c, - [SPECIES_SKIPLOOM - 1] = 0x18, - [SPECIES_JUMPLUFF - 1] = 0x51, - [SPECIES_AIPOM - 1] = 0x32, - [SPECIES_SUNKERN - 1] = 0x52, - [SPECIES_SUNFLORA - 1] = 0x00, - [SPECIES_YANMA - 1] = 0x2b, - [SPECIES_WOOPER - 1] = 0x00, - [SPECIES_QUAGSIRE - 1] = 0x16, - [SPECIES_ESPEON - 1] = 0x09, - [SPECIES_UMBREON - 1] = 0x10, - [SPECIES_MURKROW - 1] = 0x00, - [SPECIES_SLOWKING - 1] = 0x13, - [SPECIES_MISDREAVUS - 1] = 0x1c, - [SPECIES_UNOWN - 1] = 0x0a, - [SPECIES_WOBBUFFET - 1] = 0x30, - [SPECIES_GIRAFARIG - 1] = 0x1e, - [SPECIES_PINECO - 1] = 0x0b, - [SPECIES_FORRETRESS - 1] = 0x10, - [SPECIES_DUNSPARCE - 1] = 0x00, - [SPECIES_GLIGAR - 1] = 0x13, - [SPECIES_STEELIX - 1] = 0x0f, - [SPECIES_SNUBBULL - 1] = 0x17, - [SPECIES_GRANBULL - 1] = 0x10, - [SPECIES_QWILFISH - 1] = 0x3a, - [SPECIES_SCIZOR - 1] = 0x02, - [SPECIES_SHUCKLE - 1] = 0x0b, - [SPECIES_HERACROSS - 1] = 0x41, - [SPECIES_SNEASEL - 1] = 0x16, - [SPECIES_TEDDIURSA - 1] = 0x17, - [SPECIES_URSARING - 1] = 0x10, - [SPECIES_SLUGMA - 1] = 0x17, - [SPECIES_MAGCARGO - 1] = 0x17, - [SPECIES_SWINUB - 1] = 0x00, - [SPECIES_PILOSWINE - 1] = 0x0f, - [SPECIES_CORSOLA - 1] = 0x03, - [SPECIES_REMORAID - 1] = 0x52, - [SPECIES_OCTILLERY - 1] = 0x17, - [SPECIES_DELIBIRD - 1] = 0x52, - [SPECIES_MANTINE - 1] = 0x0d, - [SPECIES_SKARMORY - 1] = 0x17, - [SPECIES_HOUNDOUR - 1] = 0x17, - [SPECIES_HOUNDOOM - 1] = 0x10, - [SPECIES_KINGDRA - 1] = 0x42, - [SPECIES_PHANPY - 1] = 0x32, - [SPECIES_DONPHAN - 1] = 0x19, - [SPECIES_PORYGON2 - 1] = 0x00, - [SPECIES_STANTLER - 1] = 0x00, - [SPECIES_SMEARGLE - 1] = 0x31, - [SPECIES_TYROGUE - 1] = 0x16, - [SPECIES_HITMONTOP - 1] = 0x02, - [SPECIES_SMOOCHUM - 1] = 0x09, - [SPECIES_ELEKID - 1] = 0x2c, - [SPECIES_MAGBY - 1] = 0x00, - [SPECIES_MILTANK - 1] = 0x45, - [SPECIES_BLISSEY - 1] = 0x00, - [SPECIES_RAIKOU - 1] = 0x2c, - [SPECIES_ENTEI - 1] = 0x09, - [SPECIES_SUICUNE - 1] = 0x10, - [SPECIES_LARVITAR - 1] = 0x52, - [SPECIES_PUPITAR - 1] = 0x10, - [SPECIES_TYRANITAR - 1] = 0x0f, - [SPECIES_LUGIA - 1] = 0x3a, - [SPECIES_HO_OH - 1] = 0x09, - [SPECIES_CELEBI - 1] = 0x18, - [SPECIES_OLD_UNOWN_B - 1] = 0x00, - [SPECIES_OLD_UNOWN_C - 1] = 0x00, - [SPECIES_OLD_UNOWN_D - 1] = 0x00, - [SPECIES_OLD_UNOWN_E - 1] = 0x00, - [SPECIES_OLD_UNOWN_F - 1] = 0x00, - [SPECIES_OLD_UNOWN_G - 1] = 0x00, - [SPECIES_OLD_UNOWN_H - 1] = 0x00, - [SPECIES_OLD_UNOWN_I - 1] = 0x00, - [SPECIES_OLD_UNOWN_J - 1] = 0x00, - [SPECIES_OLD_UNOWN_K - 1] = 0x00, - [SPECIES_OLD_UNOWN_L - 1] = 0x00, - [SPECIES_OLD_UNOWN_M - 1] = 0x00, - [SPECIES_OLD_UNOWN_N - 1] = 0x00, - [SPECIES_OLD_UNOWN_O - 1] = 0x00, - [SPECIES_OLD_UNOWN_P - 1] = 0x00, - [SPECIES_OLD_UNOWN_Q - 1] = 0x00, - [SPECIES_OLD_UNOWN_R - 1] = 0x00, - [SPECIES_OLD_UNOWN_S - 1] = 0x00, - [SPECIES_OLD_UNOWN_T - 1] = 0x00, - [SPECIES_OLD_UNOWN_U - 1] = 0x00, - [SPECIES_OLD_UNOWN_V - 1] = 0x00, - [SPECIES_OLD_UNOWN_W - 1] = 0x00, - [SPECIES_OLD_UNOWN_X - 1] = 0x00, - [SPECIES_OLD_UNOWN_Y - 1] = 0x00, - [SPECIES_OLD_UNOWN_Z - 1] = 0x00, - [SPECIES_TREECKO - 1] = 0x00, - [SPECIES_GROVYLE - 1] = 0x17, - [SPECIES_SCEPTILE - 1] = 0x10, - [SPECIES_TORCHIC - 1] = 0x16, - [SPECIES_COMBUSKEN - 1] = 0x06, - [SPECIES_BLAZIKEN - 1] = 0x0f, - [SPECIES_MUDKIP - 1] = 0x01, - [SPECIES_MARSHTOMP - 1] = 0x04, - [SPECIES_SWAMPERT - 1] = 0x1e, - [SPECIES_POOCHYENA - 1] = 0x10, - [SPECIES_MIGHTYENA - 1] = 0x10, - [SPECIES_ZIGZAGOON - 1] = 0x03, - [SPECIES_LINOONE - 1] = 0x09, - [SPECIES_WURMPLE - 1] = 0x00, - [SPECIES_SILCOON - 1] = 0x00, - [SPECIES_BEAUTIFLY - 1] = 0x04, - [SPECIES_CASCOON - 1] = 0x04, - [SPECIES_DUSTOX - 1] = 0x06, - [SPECIES_LOTAD - 1] = 0x00, - [SPECIES_LOMBRE - 1] = 0x00, - [SPECIES_LUDICOLO - 1] = 0x49, - [SPECIES_SEEDOT - 1] = 0x05, - [SPECIES_NUZLEAF - 1] = 0x00, - [SPECIES_SHIFTRY - 1] = 0x02, - [SPECIES_NINCADA - 1] = 0x00, - [SPECIES_NINJASK - 1] = 0x46, - [SPECIES_SHEDINJA - 1] = 0x1c, - [SPECIES_TAILLOW - 1] = 0x1e, - [SPECIES_SWELLOW - 1] = 0x01, - [SPECIES_SHROOMISH - 1] = 0x00, - [SPECIES_BRELOOM - 1] = 0x00, - [SPECIES_SPINDA - 1] = 0x31, - [SPECIES_WINGULL - 1] = 0x1b, - [SPECIES_PELIPPER - 1] = 0x1c, - [SPECIES_SURSKIT - 1] = 0x00, - [SPECIES_MASQUERAIN - 1] = 0x00, - [SPECIES_WAILMER - 1] = 0x01, - [SPECIES_WAILORD - 1] = 0x1c, - [SPECIES_SKITTY - 1] = 0x00, - [SPECIES_DELCATTY - 1] = 0x17, - [SPECIES_KECLEON - 1] = 0x35, - [SPECIES_BALTOY - 1] = 0x1d, - [SPECIES_CLAYDOL - 1] = 0x51, - [SPECIES_NOSEPASS - 1] = 0x49, - [SPECIES_TORKOAL - 1] = 0x17, - [SPECIES_SABLEYE - 1] = 0x15, - [SPECIES_BARBOACH - 1] = 0x49, - [SPECIES_WHISCASH - 1] = 0x49, - [SPECIES_LUVDISC - 1] = 0x1d, - [SPECIES_CORPHISH - 1] = 0x10, - [SPECIES_CRAWDAUNT - 1] = 0x09, - [SPECIES_FEEBAS - 1] = 0x49, - [SPECIES_MILOTIC - 1] = 0x22, - [SPECIES_CARVANHA - 1] = 0x49, - [SPECIES_SHARPEDO - 1] = 0x56, - [SPECIES_TRAPINCH - 1] = 0x10, - [SPECIES_VIBRAVA - 1] = 0x0f, - [SPECIES_FLYGON - 1] = 0x4b, - [SPECIES_MAKUHITA - 1] = 0x0b, - [SPECIES_HARIYAMA - 1] = 0x34, - [SPECIES_ELECTRIKE - 1] = 0x00, - [SPECIES_MANECTRIC - 1] = 0x00, - [SPECIES_NUMEL - 1] = 0x04, - [SPECIES_CAMERUPT - 1] = 0x10, - [SPECIES_SPHEAL - 1] = 0x53, - [SPECIES_SEALEO - 1] = 0x17, - [SPECIES_WALREIN - 1] = 0x0f, - [SPECIES_CACNEA - 1] = 0x49, - [SPECIES_CACTURNE - 1] = 0x04, - [SPECIES_SNORUNT - 1] = 0x45, - [SPECIES_GLALIE - 1] = 0x0a, - [SPECIES_LUNATONE - 1] = 0x0e, - [SPECIES_SOLROCK - 1] = 0x08, - [SPECIES_AZURILL - 1] = 0x00, - [SPECIES_SPOINK - 1] = 0x56, - [SPECIES_GRUMPIG - 1] = 0x32, - [SPECIES_PLUSLE - 1] = 0x00, - [SPECIES_MINUN - 1] = 0x01, - [SPECIES_MAWILE - 1] = 0x00, - [SPECIES_MEDITITE - 1] = 0x05, - [SPECIES_MEDICHAM - 1] = 0x45, - [SPECIES_SWABLU - 1] = 0x04, - [SPECIES_ALTARIA - 1] = 0x16, - [SPECIES_WYNAUT - 1] = 0x32, - [SPECIES_DUSKULL - 1] = 0x0a, - [SPECIES_DUSCLOPS - 1] = 0x02, - [SPECIES_ROSELIA - 1] = 0x45, - [SPECIES_SLAKOTH - 1] = 0x45, - [SPECIES_VIGOROTH - 1] = 0x31, - [SPECIES_SLAKING - 1] = 0x45, - [SPECIES_GULPIN - 1] = 0x00, - [SPECIES_SWALOT - 1] = 0x45, - [SPECIES_TROPIUS - 1] = 0x10, - [SPECIES_WHISMUR - 1] = 0x03, - [SPECIES_LOUDRED - 1] = 0x49, - [SPECIES_EXPLOUD - 1] = 0x19, - [SPECIES_CLAMPERL - 1] = 0x12, - [SPECIES_HUNTAIL - 1] = 0x09, - [SPECIES_GOREBYSS - 1] = 0x1c, - [SPECIES_ABSOL - 1] = 0x11, - [SPECIES_SHUPPET - 1] = 0x1c, - [SPECIES_BANETTE - 1] = 0x0d, - [SPECIES_SEVIPER - 1] = 0x17, - [SPECIES_ZANGOOSE - 1] = 0x09, - [SPECIES_RELICANTH - 1] = 0x1a, - [SPECIES_ARON - 1] = 0x45, - [SPECIES_LAIRON - 1] = 0x00, - [SPECIES_AGGRON - 1] = 0x19, - [SPECIES_CASTFORM - 1] = 0x1d, - [SPECIES_VOLBEAT - 1] = 0x00, - [SPECIES_ILLUMISE - 1] = 0x05, - [SPECIES_LILEEP - 1] = 0x17, - [SPECIES_CRADILY - 1] = 0x19, - [SPECIES_ANORITH - 1] = 0x12, - [SPECIES_ARMALDO - 1] = 0x10, - [SPECIES_RALTS - 1] = 0x45, - [SPECIES_KIRLIA - 1] = 0x00, - [SPECIES_GARDEVOIR - 1] = 0x00, - [SPECIES_BAGON - 1] = 0x19, - [SPECIES_SHELGON - 1] = 0x04, - [SPECIES_SALAMENCE - 1] = 0x0f, - [SPECIES_BELDUM - 1] = 0x0f, - [SPECIES_METANG - 1] = 0x04, - [SPECIES_METAGROSS - 1] = 0x10, - [SPECIES_REGIROCK - 1] = 0x01, - [SPECIES_REGICE - 1] = 0x44, - [SPECIES_REGISTEEL - 1] = 0x09, - [SPECIES_KYOGRE - 1] = 0x2d, - [SPECIES_GROUDON - 1] = 0x10, - [SPECIES_RAYQUAZA - 1] = 0x0f, - [SPECIES_LATIAS - 1] = 0x2d, - [SPECIES_LATIOS - 1] = 0x10, - [SPECIES_JIRACHI - 1] = 0x0d, - [SPECIES_DEOXYS - 1] = 0x1b, - [SPECIES_CHIMECHO - 1] = 0x1d, + [SPECIES_BULBASAUR - 1] = ANIM_V_JUMPS_H_JUMPS, + [SPECIES_IVYSAUR - 1] = ANIM_V_STRETCH, + [SPECIES_VENUSAUR - 1] = ANIM_ROTATE_UP_SLAM_DOWN, + [SPECIES_CHARMANDER - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_CHARMELEON - 1] = ANIM_BACK_AND_LUNGE, + [SPECIES_CHARIZARD - 1] = ANIM_V_SHAKE, + [SPECIES_SQUIRTLE - 1] = ANIM_SWING_CONCAVE, + [SPECIES_WARTORTLE - 1] = ANIM_SHRINK_GROW, + [SPECIES_BLASTOISE - 1] = ANIM_V_SHAKE_TWICE, + [SPECIES_CATERPIE - 1] = ANIM_SWING_CONCAVE, + [SPECIES_METAPOD - 1] = ANIM_SWING_CONCAVE, + [SPECIES_BUTTERFREE - 1] = ANIM_H_SLIDE_WOBBLE, + [SPECIES_WEEDLE - 1] = ANIM_H_SLIDE_SLOW, + [SPECIES_KAKUNA - 1] = ANIM_GLOW_ORANGE, + [SPECIES_BEEDRILL - 1] = ANIM_H_VIBRATE, + [SPECIES_PIDGEY - 1] = ANIM_V_SLIDE_SLOW, + [SPECIES_PIDGEOTTO - 1] = ANIM_V_STRETCH, + [SPECIES_PIDGEOT - 1] = ANIM_FRONT_FLIP, + [SPECIES_RATTATA - 1] = ANIM_RAPID_H_HOPS, + [SPECIES_RATICATE - 1] = ANIM_FIGURE_8, + [SPECIES_SPEAROW - 1] = ANIM_RISING_WOBBLE, + [SPECIES_FEAROW - 1] = ANIM_FIGURE_8, + [SPECIES_EKANS - 1] = ANIM_H_STRETCH, + [SPECIES_ARBOK - 1] = ANIM_V_STRETCH, + [SPECIES_PIKACHU - 1] = ANIM_FLASH_YELLOW, + [SPECIES_RAICHU - 1] = ANIM_V_STRETCH, + [SPECIES_SANDSHREW - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, + [SPECIES_SANDSLASH - 1] = ANIM_V_STRETCH, + [SPECIES_NIDORAN_F - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_NIDORINA - 1] = ANIM_V_STRETCH, + [SPECIES_NIDOQUEEN - 1] = ANIM_H_SHAKE, + [SPECIES_NIDORAN_M - 1] = ANIM_GROW_VIBRATE, + [SPECIES_NIDORINO - 1] = ANIM_SHRINK_GROW, + [SPECIES_NIDOKING - 1] = ANIM_H_SHAKE, + [SPECIES_CLEFAIRY - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_CLEFABLE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, + [SPECIES_VULPIX - 1] = ANIM_V_STRETCH, + [SPECIES_NINETALES - 1] = ANIM_V_SHAKE, + [SPECIES_JIGGLYPUFF - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + [SPECIES_WIGGLYTUFF - 1] = ANIM_H_JUMPS, + [SPECIES_ZUBAT - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_GOLBAT - 1] = ANIM_H_SLIDE_WOBBLE, + [SPECIES_ODDISH - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_GLOOM - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_VILEPLUME - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_PARAS - 1] = ANIM_H_SLIDE_SLOW, + [SPECIES_PARASECT - 1] = ANIM_H_SHAKE, + [SPECIES_VENONAT - 1] = ANIM_V_JUMPS_H_JUMPS, + [SPECIES_VENOMOTH - 1] = ANIM_ZIGZAG_SLOW, + [SPECIES_DIGLETT - 1] = ANIM_V_SHAKE, + [SPECIES_DUGTRIO - 1] = ANIM_H_SHAKE_SLOW, + [SPECIES_MEOWTH - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_PERSIAN - 1] = ANIM_V_STRETCH, + [SPECIES_PSYDUCK - 1] = ANIM_V_JUMPS_H_JUMPS, + [SPECIES_GOLDUCK - 1] = ANIM_H_SHAKE_SLOW, + [SPECIES_MANKEY - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_PRIMEAPE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + [SPECIES_GROWLITHE - 1] = ANIM_BACK_AND_LUNGE, + [SPECIES_ARCANINE - 1] = ANIM_H_VIBRATE, + [SPECIES_POLIWAG - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_POLIWHIRL - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_POLIWRATH - 1] = ANIM_V_SHAKE_TWICE, + [SPECIES_ABRA - 1] = ANIM_H_JUMPS, + [SPECIES_KADABRA - 1] = ANIM_GROW_VIBRATE, + [SPECIES_ALAKAZAM - 1] = ANIM_V_STRETCH, + [SPECIES_MACHOP - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_MACHOKE - 1] = ANIM_V_SHAKE, + [SPECIES_MACHAMP - 1] = ANIM_H_JUMPS, + [SPECIES_BELLSPROUT - 1] = ANIM_V_STRETCH, + [SPECIES_WEEPINBELL - 1] = ANIM_SWING_CONVEX, + [SPECIES_VICTREEBEL - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_TENTACOOL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_TENTACRUEL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_GEODUDE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + [SPECIES_GRAVELER - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + [SPECIES_GOLEM - 1] = ANIM_ROTATE_UP_SLAM_DOWN, + [SPECIES_PONYTA - 1] = ANIM_GLOW_ORANGE, + [SPECIES_RAPIDASH - 1] = ANIM_CIRCULAR_VIBRATE, + [SPECIES_SLOWPOKE - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_SLOWBRO - 1] = ANIM_SWING_CONCAVE, + [SPECIES_MAGNEMITE - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, + [SPECIES_MAGNETON - 1] = ANIM_FLASH_YELLOW, + [SPECIES_FARFETCHD - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + [SPECIES_DODUO - 1] = ANIM_H_SHAKE_SLOW, + [SPECIES_DODRIO - 1] = ANIM_LUNGE_GROW, + [SPECIES_SEEL - 1] = ANIM_SWING_CONCAVE, + [SPECIES_DEWGONG - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_GRIMER - 1] = ANIM_H_SLIDE_SLOW, + [SPECIES_MUK - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + [SPECIES_SHELLDER - 1] = ANIM_TWIST, + [SPECIES_CLOYSTER - 1] = ANIM_H_SLIDE_WOBBLE, + [SPECIES_GASTLY - 1] = ANIM_GLOW_BLACK, + [SPECIES_HAUNTER - 1] = ANIM_FLICKER_INCREASING, + [SPECIES_GENGAR - 1] = ANIM_GROW_IN_STAGES, + [SPECIES_ONIX - 1] = ANIM_RAPID_H_HOPS, + [SPECIES_DROWZEE - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + [SPECIES_HYPNO - 1] = ANIM_GROW_VIBRATE, + [SPECIES_KRABBY - 1] = ANIM_H_SLIDE, + [SPECIES_KINGLER - 1] = ANIM_ZIGZAG_SLOW, + [SPECIES_VOLTORB - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ELECTRODE - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_EXEGGCUTE - 1] = ANIM_H_SLIDE_SLOW, + [SPECIES_EXEGGUTOR - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_CUBONE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + [SPECIES_MAROWAK - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, + [SPECIES_HITMONLEE - 1] = ANIM_H_STRETCH, + [SPECIES_HITMONCHAN - 1] = ANIM_GROW_VIBRATE, + [SPECIES_LICKITUNG - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_KOFFING - 1] = ANIM_SHRINK_GROW, + [SPECIES_WEEZING - 1] = ANIM_V_SLIDE, + [SPECIES_RHYHORN - 1] = ANIM_V_SHAKE, + [SPECIES_RHYDON - 1] = ANIM_SHRINK_GROW, + [SPECIES_CHANSEY - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_TANGELA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + [SPECIES_KANGASKHAN - 1] = ANIM_V_STRETCH, + [SPECIES_HORSEA - 1] = ANIM_TWIST, + [SPECIES_SEADRA - 1] = ANIM_V_SLIDE, + [SPECIES_GOLDEEN - 1] = ANIM_SWING_CONVEX, + [SPECIES_SEAKING - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_STARYU - 1] = ANIM_TWIST_TWICE, + [SPECIES_STARMIE - 1] = ANIM_TWIST, + [SPECIES_MR_MIME - 1] = ANIM_H_SLIDE_SLOW, + [SPECIES_SCYTHER - 1] = ANIM_H_VIBRATE, + [SPECIES_JYNX - 1] = ANIM_V_STRETCH, + [SPECIES_ELECTABUZZ - 1] = ANIM_FLASH_YELLOW, + [SPECIES_MAGMAR - 1] = ANIM_H_SHAKE, + [SPECIES_PINSIR - 1] = ANIM_GROW_VIBRATE, + [SPECIES_TAUROS - 1] = ANIM_V_SHAKE_TWICE, + [SPECIES_MAGIKARP - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, + [SPECIES_GYARADOS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + [SPECIES_LAPRAS - 1] = ANIM_V_STRETCH, + [SPECIES_DITTO - 1] = ANIM_CIRCULAR_STRETCH_TWICE, + [SPECIES_EEVEE - 1] = ANIM_V_STRETCH, + [SPECIES_VAPOREON - 1] = ANIM_V_STRETCH, + [SPECIES_JOLTEON - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_FLAREON - 1] = ANIM_V_STRETCH, + [SPECIES_PORYGON - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_OMANYTE - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, + [SPECIES_OMASTAR - 1] = ANIM_GROW_VIBRATE, + [SPECIES_KABUTO - 1] = ANIM_H_SLIDE_WOBBLE, + [SPECIES_KABUTOPS - 1] = ANIM_H_SHAKE, + [SPECIES_AERODACTYL - 1] = ANIM_V_SLIDE_SLOW, + [SPECIES_SNORLAX - 1] = ANIM_SWING_CONCAVE, + [SPECIES_ARTICUNO - 1] = ANIM_GROW_VIBRATE, + [SPECIES_ZAPDOS - 1] = ANIM_FLASH_YELLOW, + [SPECIES_MOLTRES - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_DRATINI - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_DRAGONAIR - 1] = ANIM_V_SHAKE, + [SPECIES_DRAGONITE - 1] = ANIM_V_SLIDE_SLOW, + [SPECIES_MEWTWO - 1] = ANIM_GROW_VIBRATE, + [SPECIES_MEW - 1] = ANIM_SWING_CONVEX, + [SPECIES_CHIKORITA - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_BAYLEEF - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_MEGANIUM - 1] = ANIM_V_STRETCH, + [SPECIES_CYNDAQUIL - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_QUILAVA - 1] = ANIM_V_STRETCH, + [SPECIES_TYPHLOSION - 1] = ANIM_V_SHAKE, + [SPECIES_TOTODILE - 1] = ANIM_H_JUMPS, + [SPECIES_CROCONAW - 1] = ANIM_H_SHAKE, + [SPECIES_FERALIGATR - 1] = ANIM_H_SHAKE, + [SPECIES_SENTRET - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_FURRET - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_HOOTHOOT - 1] = ANIM_V_SLIDE_SLOW, + [SPECIES_NOCTOWL - 1] = ANIM_V_STRETCH, + [SPECIES_LEDYBA - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_LEDIAN - 1] = ANIM_V_SLIDE_SLOW, + [SPECIES_SPINARAK - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + [SPECIES_ARIADOS - 1] = ANIM_H_SHAKE, + [SPECIES_CROBAT - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_CHINCHOU - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_LANTURN - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, + [SPECIES_PICHU - 1] = ANIM_V_JUMPS_BIG, + [SPECIES_CLEFFA - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_IGGLYBUFF - 1] = ANIM_SWING_CONCAVE_FAST, + [SPECIES_TOGEPI - 1] = ANIM_SWING_CONCAVE, + [SPECIES_TOGETIC - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_NATU - 1] = ANIM_H_JUMPS, + [SPECIES_XATU - 1] = ANIM_GROW_VIBRATE, + [SPECIES_MAREEP - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_FLAAFFY - 1] = ANIM_V_JUMPS_BIG, + [SPECIES_AMPHAROS - 1] = ANIM_FLASH_YELLOW, + [SPECIES_BELLOSSOM - 1] = ANIM_SWING_CONCAVE, + [SPECIES_MARILL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_AZUMARILL - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, + [SPECIES_SUDOWOODO - 1] = ANIM_H_SLIDE_SLOW, + [SPECIES_POLITOED - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_HOPPIP - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_SKIPLOOM - 1] = ANIM_RISING_WOBBLE, + [SPECIES_JUMPLUFF - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, + [SPECIES_AIPOM - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_SUNKERN - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_SUNFLORA - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_YANMA - 1] = ANIM_FIGURE_8, + [SPECIES_WOOPER - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_QUAGSIRE - 1] = ANIM_H_STRETCH, + [SPECIES_ESPEON - 1] = ANIM_GROW_VIBRATE, + [SPECIES_UMBREON - 1] = ANIM_V_SHAKE, + [SPECIES_MURKROW - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_SLOWKING - 1] = ANIM_SHRINK_GROW, + [SPECIES_MISDREAVUS - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_UNOWN - 1] = ANIM_ZIGZAG_FAST, + [SPECIES_WOBBUFFET - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + [SPECIES_GIRAFARIG - 1] = ANIM_V_JUMPS_BIG, + [SPECIES_PINECO - 1] = ANIM_SWING_CONCAVE, + [SPECIES_FORRETRESS - 1] = ANIM_V_SHAKE, + [SPECIES_DUNSPARCE - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_GLIGAR - 1] = ANIM_SHRINK_GROW, + [SPECIES_STEELIX - 1] = ANIM_H_SHAKE, + [SPECIES_SNUBBULL - 1] = ANIM_V_STRETCH, + [SPECIES_GRANBULL - 1] = ANIM_V_SHAKE, + [SPECIES_QWILFISH - 1] = ANIM_GROW_IN_STAGES, + [SPECIES_SCIZOR - 1] = ANIM_H_VIBRATE, + [SPECIES_SHUCKLE - 1] = ANIM_SWING_CONCAVE, + [SPECIES_HERACROSS - 1] = ANIM_LUNGE_GROW, + [SPECIES_SNEASEL - 1] = ANIM_H_STRETCH, + [SPECIES_TEDDIURSA - 1] = ANIM_V_STRETCH, + [SPECIES_URSARING - 1] = ANIM_V_SHAKE, + [SPECIES_SLUGMA - 1] = ANIM_V_STRETCH, + [SPECIES_MAGCARGO - 1] = ANIM_V_STRETCH, + [SPECIES_SWINUB - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_PILOSWINE - 1] = ANIM_H_SHAKE, + [SPECIES_CORSOLA - 1] = ANIM_H_SLIDE, + [SPECIES_REMORAID - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_OCTILLERY - 1] = ANIM_V_STRETCH, + [SPECIES_DELIBIRD - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_MANTINE - 1] = ANIM_SWING_CONVEX, + [SPECIES_SKARMORY - 1] = ANIM_V_STRETCH, + [SPECIES_HOUNDOUR - 1] = ANIM_V_STRETCH, + [SPECIES_HOUNDOOM - 1] = ANIM_V_SHAKE, + [SPECIES_KINGDRA - 1] = ANIM_CIRCLE_INTO_BG, + [SPECIES_PHANPY - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_DONPHAN - 1] = ANIM_V_SHAKE_TWICE, + [SPECIES_PORYGON2 - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_STANTLER - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_SMEARGLE - 1] = ANIM_H_JUMPS, + [SPECIES_TYROGUE - 1] = ANIM_H_STRETCH, + [SPECIES_HITMONTOP - 1] = ANIM_H_VIBRATE, + [SPECIES_SMOOCHUM - 1] = ANIM_GROW_VIBRATE, + [SPECIES_ELEKID - 1] = ANIM_FLASH_YELLOW, + [SPECIES_MAGBY - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_MILTANK - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_BLISSEY - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_RAIKOU - 1] = ANIM_FLASH_YELLOW, + [SPECIES_ENTEI - 1] = ANIM_GROW_VIBRATE, + [SPECIES_SUICUNE - 1] = ANIM_V_SHAKE, + [SPECIES_LARVITAR - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_PUPITAR - 1] = ANIM_V_SHAKE, + [SPECIES_TYRANITAR - 1] = ANIM_H_SHAKE, + [SPECIES_LUGIA - 1] = ANIM_GROW_IN_STAGES, + [SPECIES_HO_OH - 1] = ANIM_GROW_VIBRATE, + [SPECIES_CELEBI - 1] = ANIM_RISING_WOBBLE, + [SPECIES_TREECKO - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_GROVYLE - 1] = ANIM_V_STRETCH, + [SPECIES_SCEPTILE - 1] = ANIM_V_SHAKE, + [SPECIES_TORCHIC - 1] = ANIM_H_STRETCH, + [SPECIES_COMBUSKEN - 1] = ANIM_V_JUMPS_H_JUMPS, + [SPECIES_BLAZIKEN - 1] = ANIM_H_SHAKE, + [SPECIES_MUDKIP - 1] = ANIM_CIRCULAR_STRETCH_TWICE, + [SPECIES_MARSHTOMP - 1] = ANIM_V_SLIDE, + [SPECIES_SWAMPERT - 1] = ANIM_V_JUMPS_BIG, + [SPECIES_POOCHYENA - 1] = ANIM_V_SHAKE, + [SPECIES_MIGHTYENA - 1] = ANIM_V_SHAKE, + [SPECIES_ZIGZAGOON - 1] = ANIM_H_SLIDE, + [SPECIES_LINOONE - 1] = ANIM_GROW_VIBRATE, + [SPECIES_WURMPLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_SILCOON - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_BEAUTIFLY - 1] = ANIM_V_SLIDE, + [SPECIES_CASCOON - 1] = ANIM_V_SLIDE, + [SPECIES_DUSTOX - 1] = ANIM_V_JUMPS_H_JUMPS, + [SPECIES_LOTAD - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_LOMBRE - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_LUDICOLO - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_SEEDOT - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, + [SPECIES_NUZLEAF - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_SHIFTRY - 1] = ANIM_H_VIBRATE, + [SPECIES_NINCADA - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_NINJASK - 1] = ANIM_H_SLIDE_SLOW, + [SPECIES_SHEDINJA - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_TAILLOW - 1] = ANIM_V_JUMPS_BIG, + [SPECIES_SWELLOW - 1] = ANIM_CIRCULAR_STRETCH_TWICE, + [SPECIES_SHROOMISH - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_BRELOOM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_SPINDA - 1] = ANIM_H_JUMPS, + [SPECIES_WINGULL - 1] = ANIM_H_PIVOT, + [SPECIES_PELIPPER - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_SURSKIT - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_MASQUERAIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_WAILMER - 1] = ANIM_CIRCULAR_STRETCH_TWICE, + [SPECIES_WAILORD - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_SKITTY - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_DELCATTY - 1] = ANIM_V_STRETCH, + [SPECIES_KECLEON - 1] = ANIM_FLICKER_INCREASING, + [SPECIES_BALTOY - 1] = ANIM_H_SLIDE_WOBBLE, + [SPECIES_CLAYDOL - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, + [SPECIES_NOSEPASS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_TORKOAL - 1] = ANIM_V_STRETCH, + [SPECIES_SABLEYE - 1] = ANIM_GLOW_BLACK, + [SPECIES_BARBOACH - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_WHISCASH - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_LUVDISC - 1] = ANIM_H_SLIDE_WOBBLE, + [SPECIES_CORPHISH - 1] = ANIM_V_SHAKE, + [SPECIES_CRAWDAUNT - 1] = ANIM_GROW_VIBRATE, + [SPECIES_FEEBAS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_MILOTIC - 1] = ANIM_GLOW_BLUE, + [SPECIES_CARVANHA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_SHARPEDO - 1] = ANIM_H_JUMPS_V_STRETCH_TWICE, + [SPECIES_TRAPINCH - 1] = ANIM_V_SHAKE, + [SPECIES_VIBRAVA - 1] = ANIM_H_SHAKE, + [SPECIES_FLYGON - 1] = ANIM_ZIGZAG_SLOW, + [SPECIES_MAKUHITA - 1] = ANIM_SWING_CONCAVE, + [SPECIES_HARIYAMA - 1] = ANIM_ROTATE_UP_TO_SIDES, + [SPECIES_ELECTRIKE - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_MANECTRIC - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_NUMEL - 1] = ANIM_V_SLIDE, + [SPECIES_CAMERUPT - 1] = ANIM_V_SHAKE, + [SPECIES_SPHEAL - 1] = ANIM_SPIN, + [SPECIES_SEALEO - 1] = ANIM_V_STRETCH, + [SPECIES_WALREIN - 1] = ANIM_H_SHAKE, + [SPECIES_CACNEA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_CACTURNE - 1] = ANIM_V_SLIDE, + [SPECIES_SNORUNT - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_GLALIE - 1] = ANIM_ZIGZAG_FAST, + [SPECIES_LUNATONE - 1] = ANIM_SWING_CONVEX_FAST, + [SPECIES_SOLROCK - 1] = ANIM_ROTATE_TO_SIDES_TWICE, + [SPECIES_AZURILL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_SPOINK - 1] = ANIM_H_JUMPS_V_STRETCH_TWICE, + [SPECIES_GRUMPIG - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_PLUSLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_MINUN - 1] = ANIM_CIRCULAR_STRETCH_TWICE, + [SPECIES_MAWILE - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_MEDITITE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, + [SPECIES_MEDICHAM - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_SWABLU - 1] = ANIM_V_SLIDE, + [SPECIES_ALTARIA - 1] = ANIM_H_STRETCH, + [SPECIES_WYNAUT - 1] = ANIM_H_JUMPS_V_STRETCH, + [SPECIES_DUSKULL - 1] = ANIM_ZIGZAG_FAST, + [SPECIES_DUSCLOPS - 1] = ANIM_H_VIBRATE, + [SPECIES_ROSELIA - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_SLAKOTH - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_VIGOROTH - 1] = ANIM_H_JUMPS, + [SPECIES_SLAKING - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_GULPIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_SWALOT - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_TROPIUS - 1] = ANIM_V_SHAKE, + [SPECIES_WHISMUR - 1] = ANIM_H_SLIDE, + [SPECIES_LOUDRED - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + [SPECIES_EXPLOUD - 1] = ANIM_V_SHAKE_TWICE, + [SPECIES_CLAMPERL - 1] = ANIM_TWIST, + [SPECIES_HUNTAIL - 1] = ANIM_GROW_VIBRATE, + [SPECIES_GOREBYSS - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_ABSOL - 1] = ANIM_CIRCULAR_VIBRATE, + [SPECIES_SHUPPET - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_BANETTE - 1] = ANIM_SWING_CONVEX, + [SPECIES_SEVIPER - 1] = ANIM_V_STRETCH, + [SPECIES_ZANGOOSE - 1] = ANIM_GROW_VIBRATE, + [SPECIES_RELICANTH - 1] = ANIM_TIP_MOVE_FORWARD, + [SPECIES_ARON - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_LAIRON - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_AGGRON - 1] = ANIM_V_SHAKE_TWICE, + [SPECIES_CASTFORM - 1] = ANIM_H_SLIDE_WOBBLE, + [SPECIES_VOLBEAT - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ILLUMISE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, + [SPECIES_LILEEP - 1] = ANIM_V_STRETCH, + [SPECIES_CRADILY - 1] = ANIM_V_SHAKE_TWICE, + [SPECIES_ANORITH - 1] = ANIM_TWIST, + [SPECIES_ARMALDO - 1] = ANIM_V_SHAKE, + [SPECIES_RALTS - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + [SPECIES_KIRLIA - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_GARDEVOIR - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_BAGON - 1] = ANIM_V_SHAKE_TWICE, + [SPECIES_SHELGON - 1] = ANIM_V_SLIDE, + [SPECIES_SALAMENCE - 1] = ANIM_H_SHAKE, + [SPECIES_BELDUM - 1] = ANIM_H_SHAKE, + [SPECIES_METANG - 1] = ANIM_V_SLIDE, + [SPECIES_METAGROSS - 1] = ANIM_V_SHAKE, + [SPECIES_REGIROCK - 1] = ANIM_CIRCULAR_STRETCH_TWICE, + [SPECIES_REGICE - 1] = ANIM_FOUR_PETAL, + [SPECIES_REGISTEEL - 1] = ANIM_GROW_VIBRATE, + [SPECIES_KYOGRE - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, + [SPECIES_GROUDON - 1] = ANIM_V_SHAKE, + [SPECIES_RAYQUAZA - 1] = ANIM_H_SHAKE, + [SPECIES_LATIAS - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, + [SPECIES_LATIOS - 1] = ANIM_V_SHAKE, + [SPECIES_JIRACHI - 1] = ANIM_SWING_CONVEX, + [SPECIES_DEOXYS - 1] = ANIM_H_PIVOT, + [SPECIES_CHIMECHO - 1] = ANIM_H_SLIDE_WOBBLE, }; static const u8 sMonAnimationDelayTable[NUM_SPECIES - 1] = { - [SPECIES_BLASTOISE - 1] = 0x32, - [SPECIES_WEEDLE - 1] = 0x0a, - [SPECIES_KAKUNA - 1] = 0x14, - [SPECIES_BEEDRILL - 1] = 0x23, - [SPECIES_PIDGEOTTO - 1] = 0x19, - [SPECIES_FEAROW - 1] = 0x02, - [SPECIES_EKANS - 1] = 0x1e, - [SPECIES_NIDORAN_F - 1] = 0x1c, - [SPECIES_NIDOKING - 1] = 0x19, - [SPECIES_PARAS - 1] = 0x0a, - [SPECIES_PARASECT - 1] = 0x2d, - [SPECIES_VENONAT - 1] = 0x14, - [SPECIES_DIGLETT - 1] = 0x19, - [SPECIES_DUGTRIO - 1] = 0x23, - [SPECIES_MEOWTH - 1] = 0x28, - [SPECIES_PERSIAN - 1] = 0x14, - [SPECIES_MANKEY - 1] = 0x14, - [SPECIES_GROWLITHE - 1] = 0x1e, - [SPECIES_ARCANINE - 1] = 0x28, - [SPECIES_POLIWHIRL - 1] = 0x05, - [SPECIES_WEEPINBELL - 1] = 0x03, - [SPECIES_MUK - 1] = 0x2d, - [SPECIES_SHELLDER - 1] = 0x14, - [SPECIES_HAUNTER - 1] = 0x17, - [SPECIES_DROWZEE - 1] = 0x30, - [SPECIES_HYPNO - 1] = 0x28, - [SPECIES_HITMONCHAN - 1] = 0x19, - [SPECIES_SCYTHER - 1] = 0x0a, - [SPECIES_TAUROS - 1] = 0x0a, - [SPECIES_TYPHLOSION - 1] = 0x14, - [SPECIES_FERALIGATR - 1] = 0x05, - [SPECIES_NATU - 1] = 0x1e, - [SPECIES_MAREEP - 1] = 0x32, - [SPECIES_AMPHAROS - 1] = 0x0a, - [SPECIES_POLITOED - 1] = 0x28, - [SPECIES_DUNSPARCE - 1] = 0x0a, - [SPECIES_STEELIX - 1] = 0x2d, - [SPECIES_QWILFISH - 1] = 0x27, - [SPECIES_SCIZOR - 1] = 0x13, - [SPECIES_OCTILLERY - 1] = 0x14, - [SPECIES_SMOOCHUM - 1] = 0x28, - [SPECIES_TYRANITAR - 1] = 0x0a, - [SPECIES_LUGIA - 1] = 0x14, - [SPECIES_WAILORD - 1] = 0x0a, - [SPECIES_KECLEON - 1] = 0x1e, - [SPECIES_MILOTIC - 1] = 0x2d, - [SPECIES_SPHEAL - 1] = 0x0f, - [SPECIES_SNORUNT - 1] = 0x14, - [SPECIES_GRUMPIG - 1] = 0x0f, - [SPECIES_WYNAUT - 1] = 0x0f, - [SPECIES_DUSCLOPS - 1] = 0x1e, - [SPECIES_ABSOL - 1] = 0x2d, - [SPECIES_SALAMENCE - 1] = 0x46, - [SPECIES_KYOGRE - 1] = 0x3c, - [SPECIES_RAYQUAZA - 1] = 0x3c, + [SPECIES_BLASTOISE - 1] = 50, + [SPECIES_WEEDLE - 1] = 10, + [SPECIES_KAKUNA - 1] = 20, + [SPECIES_BEEDRILL - 1] = 35, + [SPECIES_PIDGEOTTO - 1] = 25, + [SPECIES_FEAROW - 1] = 2, + [SPECIES_EKANS - 1] = 30, + [SPECIES_NIDORAN_F - 1] = 28, + [SPECIES_NIDOKING - 1] = 25, + [SPECIES_PARAS - 1] = 10, + [SPECIES_PARASECT - 1] = 45, + [SPECIES_VENONAT - 1] = 20, + [SPECIES_DIGLETT - 1] = 25, + [SPECIES_DUGTRIO - 1] = 35, + [SPECIES_MEOWTH - 1] = 40, + [SPECIES_PERSIAN - 1] = 20, + [SPECIES_MANKEY - 1] = 20, + [SPECIES_GROWLITHE - 1] = 30, + [SPECIES_ARCANINE - 1] = 40, + [SPECIES_POLIWHIRL - 1] = 5, + [SPECIES_WEEPINBELL - 1] = 3, + [SPECIES_MUK - 1] = 45, + [SPECIES_SHELLDER - 1] = 20, + [SPECIES_HAUNTER - 1] = 23, + [SPECIES_DROWZEE - 1] = 48, + [SPECIES_HYPNO - 1] = 40, + [SPECIES_HITMONCHAN - 1] = 25, + [SPECIES_SCYTHER - 1] = 10, + [SPECIES_TAUROS - 1] = 10, + [SPECIES_TYPHLOSION - 1] = 20, + [SPECIES_FERALIGATR - 1] = 5, + [SPECIES_NATU - 1] = 30, + [SPECIES_MAREEP - 1] = 50, + [SPECIES_AMPHAROS - 1] = 10, + [SPECIES_POLITOED - 1] = 40, + [SPECIES_DUNSPARCE - 1] = 10, + [SPECIES_STEELIX - 1] = 45, + [SPECIES_QWILFISH - 1] = 39, + [SPECIES_SCIZOR - 1] = 19, + [SPECIES_OCTILLERY - 1] = 20, + [SPECIES_SMOOCHUM - 1] = 40, + [SPECIES_TYRANITAR - 1] = 10, + [SPECIES_LUGIA - 1] = 20, + [SPECIES_WAILORD - 1] = 10, + [SPECIES_KECLEON - 1] = 30, + [SPECIES_MILOTIC - 1] = 45, + [SPECIES_SPHEAL - 1] = 15, + [SPECIES_SNORUNT - 1] = 20, + [SPECIES_GRUMPIG - 1] = 15, + [SPECIES_WYNAUT - 1] = 15, + [SPECIES_DUSCLOPS - 1] = 30, + [SPECIES_ABSOL - 1] = 45, + [SPECIES_SALAMENCE - 1] = 70, + [SPECIES_KYOGRE - 1] = 60, + [SPECIES_RAYQUAZA - 1] = 60, }; const u8 gPPUpGetMask[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values @@ -1916,119 +1893,119 @@ const u16 gLinkPlayerFacilityClasses[NUM_MALE_LINK_FACILITY_CLASSES + NUM_FEMALE FACILITY_CLASS_BEAUTY }; -const struct SpriteTemplate gUnknown_08329D98[MAX_BATTLERS_COUNT] = +const struct SpriteTemplate gBattlerSpriteTemplates[MAX_BATTLERS_COUNT] = { - { // B_POSITION_PLAYER_LEFT + [B_POSITION_PLAYER_LEFT] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, - .images = gUnknown_082FF3A8, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .images = gBattlerPicTable_PlayerLeft, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { // B_POSITION_OPPONENT_LEFT + [B_POSITION_OPPONENT_LEFT] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACA8, + .oam = &gOamData_BattleSpriteOpponentSide, .anims = NULL, - .images = gUnknown_082FF3C8, - .affineAnims = gUnknown_082FF694, + .images = gBattlerPicTable_OpponentLeft, + .affineAnims = gAffineAnims_BattleSpriteOpponentSide, .callback = SpriteCb_WildMon, }, - { // B_POSITION_PLAYER_RIGHT + [B_POSITION_PLAYER_RIGHT] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, - .images = gUnknown_082FF3E8, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .images = gBattlerPicTable_PlayerRight, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { // B_POSITION_OPPONENT_RIGHT + [B_POSITION_OPPONENT_RIGHT] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACA8, + .oam = &gOamData_BattleSpriteOpponentSide, .anims = NULL, - .images = gUnknown_082FF408, - .affineAnims = gUnknown_082FF694, + .images = gBattlerPicTable_OpponentRight, + .affineAnims = gAffineAnims_BattleSpriteOpponentSide, .callback = SpriteCb_WildMon }, }; -static const struct SpriteTemplate gSpriteTemplateTable_TrainerBackSprites[] = +static const struct SpriteTemplate sTrainerBackSpriteTemplates[] = { - { + [TRAINER_BACK_PIC_BRENDAN] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, .images = gTrainerBackPicTable_Brendan, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { + [TRAINER_BACK_PIC_MAY] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, .images = gTrainerBackPicTable_May, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { + [TRAINER_BACK_PIC_RED] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, .images = gTrainerBackPicTable_Red, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { + [TRAINER_BACK_PIC_LEAF] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, .images = gTrainerBackPicTable_Leaf, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, .images = gTrainerBackPicTable_RubySapphireBrendan, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, .images = gTrainerBackPicTable_RubySapphireMay, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { + [TRAINER_BACK_PIC_WALLY] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, .images = gTrainerBackPicTable_Wally, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, - { + [TRAINER_BACK_PIC_STEVEN] = { .tileTag = 0xFFFF, .paletteTag = 0, - .oam = &gOamData_831ACB0, + .oam = &gOamData_BattleSpritePlayerSide, .anims = NULL, .images = gTrainerBackPicTable_Steven, - .affineAnims = gUnknown_082FF618, - .callback = sub_8039BB4, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, + .callback = SpriteCB_BattleSpriteStartSlideLeft, }, }; @@ -2230,7 +2207,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, SetBoxMonData(boxMon, MON_DATA_POKEBALL, &value); SetBoxMonData(boxMon, MON_DATA_OT_GENDER, &gSaveBlock2Ptr->playerGender); - if (fixedIV < 32) + if (fixedIV < USE_RANDOM_IVS) { SetBoxMonData(boxMon, MON_DATA_HP_IV, &fixedIV); SetBoxMonData(boxMon, MON_DATA_ATK_IV, &fixedIV); @@ -2244,20 +2221,20 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, u32 iv; value = Random(); - iv = value & 0x1F; + iv = value & MAX_IV_MASK; SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv); - iv = (value & 0x3E0) >> 5; + iv = (value & (MAX_IV_MASK << 5)) >> 5; SetBoxMonData(boxMon, MON_DATA_ATK_IV, &iv); - iv = (value & 0x7C00) >> 10; + iv = (value & (MAX_IV_MASK << 10)) >> 10; SetBoxMonData(boxMon, MON_DATA_DEF_IV, &iv); value = Random(); - iv = value & 0x1F; + iv = value & MAX_IV_MASK; SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv); - iv = (value & 0x3E0) >> 5; + iv = (value & (MAX_IV_MASK << 5)) >> 5; SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv); - iv = (value & 0x7C00) >> 10; + iv = (value & (MAX_IV_MASK << 10)) >> 10; SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); } @@ -2287,14 +2264,14 @@ void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level, { u32 personality; - if ((u8)(unownLetter - 1) < 28) + if ((u8)(unownLetter - 1) < NUM_UNOWN_FORMS) { u16 actualLetter; do { personality = Random32(); - actualLetter = ((((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 0x3)) % 28); + actualLetter = GET_UNOWN_LETTER(personality); } while (nature != GetNatureFromPersonality(personality) || gender != GetGenderFromSpeciesAndPersonality(species, personality) @@ -2325,7 +2302,7 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level) personality = Random32(); } while (GetGenderFromSpeciesAndPersonality(species, personality) != MON_MALE); - CreateMon(mon, species, level, 32, 1, personality, OT_ID_PRESET, otId); + CreateMon(mon, species, level, USE_RANDOM_IVS, 1, personality, OT_ID_PRESET, otId); } void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality) @@ -2507,7 +2484,7 @@ void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 m CreateMon(mon, src->party[monId].species, GetFrontierEnemyMonLevel(src->lvlMode - 1), - 0x1F, + MAX_PER_STAT_IVS, TRUE, personality, OT_ID_PRESET, @@ -2598,22 +2575,23 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP GetMonData(mon, MON_DATA_NICKNAME, dest->nickname); } -void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId) +void CreateEventLegalMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId) { - bool32 obedient = TRUE; + bool32 isEventLegal = TRUE; CreateMon(mon, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId); - SetMonData(mon, MON_DATA_OBEDIENCE, &obedient); + SetMonData(mon, MON_DATA_EVENT_LEGAL, &isEventLegal); } -bool8 sub_80688F8(u8 caseId, u8 battlerId) +// If FALSE, should load this game's Deoxys form. If TRUE, should load normal Deoxys form +bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId) { switch (caseId) { case 0: default: return FALSE; - case 1: + case 1: // Player's side in battle if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) return FALSE; if (!gMain.inBattle) @@ -2623,7 +2601,7 @@ bool8 sub_80688F8(u8 caseId, u8 battlerId) break; case 2: break; - case 3: + case 3: // Summary Screen if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) return FALSE; if (!gMain.inBattle) @@ -2633,7 +2611,7 @@ bool8 sub_80688F8(u8 caseId, u8 battlerId) return FALSE; case 4: break; - case 5: + case 5: // In move animation, e.g. in Role Play or Snatch if (gBattleTypeFlags & BATTLE_TYPE_LINK) { if (!gMain.inBattle) @@ -2668,7 +2646,7 @@ static u16 GetDeoxysStat(struct Pokemon *mon, s32 statId) u16 statValue = 0; u8 nature; - if (gBattleTypeFlags & BATTLE_TYPE_20 || GetMonData(mon, MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS) + if (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE || GetMonData(mon, MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS) return 0; ivVal = GetMonData(mon, MON_DATA_HP_IV + statId, NULL); @@ -2712,8 +2690,8 @@ u16 GetUnionRoomTrainerPic(void) u8 linkId; u32 arrId; - if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - linkId = gUnknown_0203C7B4 ^ 1; + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) + linkId = gRecordedBattleMultiplayerId ^ 1; else linkId = GetMultiplayerId() ^ 1; @@ -2727,8 +2705,8 @@ u16 GetUnionRoomTrainerClass(void) u8 linkId; u32 arrId; - if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - linkId = gUnknown_0203C7B4 ^ 1; + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) + linkId = gRecordedBattleMultiplayerId ^ 1; else linkId = GetMultiplayerId() ^ 1; @@ -2737,14 +2715,14 @@ u16 GetUnionRoomTrainerClass(void) return gFacilityClassToTrainerClass[gLinkPlayerFacilityClasses[arrId]]; } -void CreateObedientEnemyMon(void) +void CreateEventLegalEnemyMon(void) { s32 species = gSpecialVar_0x8004; s32 level = gSpecialVar_0x8005; s32 itemId = gSpecialVar_0x8006; ZeroEnemyPartyMons(); - CreateObedientMon(&gEnemyParty[0], species, level, 32, 0, 0, 0, 0); + CreateEventLegalMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, 0, 0); if (itemId) { u8 heldItem[2]; @@ -2842,13 +2820,14 @@ void CalculateMonStats(struct Pokemon *mon) { if (currentHP == 0 && oldMaxHP == 0) currentHP = newMaxHP; - else if (currentHP != 0) + else if (currentHP != 0) { // BUG: currentHP is unintentionally able to become <= 0 after the instruction below. This causes the pomeg berry glitch. currentHP += newMaxHP - oldMaxHP; #ifdef BUGFIX if (currentHP <= 0) currentHP = 1; #endif + } else return; } @@ -2966,7 +2945,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) { - u32 retVal = 0; + u32 retVal = MOVE_NONE; u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL); @@ -2982,7 +2961,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) { sLearningMoveTableID++; if (gLevelUpLearnsets[species][sLearningMoveTableID].move == LEVEL_UP_END) - return 0; + return MOVE_NONE; } } @@ -3158,11 +3137,11 @@ void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition) else if (gUnknown_020249B4[1]) gMultiuseSpriteTemplate = gUnknown_020249B4[1]->templates[battlerPosition]; else - gMultiuseSpriteTemplate = gUnknown_08329D98[battlerPosition]; + gMultiuseSpriteTemplate = gBattlerSpriteTemplates[battlerPosition]; gMultiuseSpriteTemplate.paletteTag = speciesTag; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) - gMultiuseSpriteTemplate.anims = gUnknown_082FF70C; + gMultiuseSpriteTemplate.anims = gAnims_MonPic; else if (speciesTag > SPECIES_SHINY_TAG) gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[speciesTag - SPECIES_SHINY_TAG]; else @@ -3174,7 +3153,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit gMultiuseSpriteTemplate.paletteTag = trainerSpriteId; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) { - gMultiuseSpriteTemplate = gSpriteTemplateTable_TrainerBackSprites[trainerSpriteId]; + gMultiuseSpriteTemplate = sTrainerBackSpriteTemplates[trainerSpriteId]; gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId]; } else @@ -3182,7 +3161,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit if (gMonSpritesGfxPtr != NULL) gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; else - gMultiuseSpriteTemplate = gUnknown_08329D98[battlerPosition]; + gMultiuseSpriteTemplate = gBattlerSpriteTemplates[battlerPosition]; gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerSpriteId]; } } @@ -3192,7 +3171,7 @@ void SetMultiuseSpriteTemplateToTrainerFront(u16 arg0, u8 battlerPosition) if (gMonSpritesGfxPtr != NULL) gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; else - gMultiuseSpriteTemplate = gUnknown_08329D98[battlerPosition]; + gMultiuseSpriteTemplate = gBattlerSpriteTemplates[battlerPosition]; gMultiuseSpriteTemplate.paletteTag = arg0; gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[arg0]; @@ -3610,32 +3589,32 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) case MON_DATA_EFFORT_RIBBON: retVal = substruct3->effortRibbon; break; - case MON_DATA_GIFT_RIBBON_1: - retVal = substruct3->giftRibbon1; + case MON_DATA_MARINE_RIBBON: + retVal = substruct3->marineRibbon; break; - case MON_DATA_GIFT_RIBBON_2: - retVal = substruct3->giftRibbon2; + case MON_DATA_LAND_RIBBON: + retVal = substruct3->landRibbon; break; - case MON_DATA_GIFT_RIBBON_3: - retVal = substruct3->giftRibbon3; + case MON_DATA_SKY_RIBBON: + retVal = substruct3->skyRibbon; break; - case MON_DATA_GIFT_RIBBON_4: - retVal = substruct3->giftRibbon4; + case MON_DATA_COUNTRY_RIBBON: + retVal = substruct3->countryRibbon; break; - case MON_DATA_GIFT_RIBBON_5: - retVal = substruct3->giftRibbon5; + case MON_DATA_NATIONAL_RIBBON: + retVal = substruct3->nationalRibbon; break; - case MON_DATA_GIFT_RIBBON_6: - retVal = substruct3->giftRibbon6; + case MON_DATA_EARTH_RIBBON: + retVal = substruct3->earthRibbon; break; - case MON_DATA_GIFT_RIBBON_7: - retVal = substruct3->giftRibbon7; + case MON_DATA_WORLD_RIBBON: + retVal = substruct3->worldRibbon; break; - case MON_DATA_FATEFUL_ENCOUNTER: - retVal = substruct3->fatefulEncounter; + case MON_DATA_UNUSED_RIBBONS: + retVal = substruct3->unusedRibbons; break; - case MON_DATA_OBEDIENCE: - retVal = substruct3->obedient; + case MON_DATA_EVENT_LEGAL: + retVal = substruct3->eventLegal; break; case MON_DATA_SPECIES2: retVal = substruct0->species; @@ -3655,9 +3634,9 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) { u16 move = moves[i]; if (substruct1->moves[0] == move - || substruct1->moves[1] == move - || substruct1->moves[2] == move - || substruct1->moves[3] == move) + || substruct1->moves[1] == move + || substruct1->moves[2] == move + || substruct1->moves[3] == move) retVal |= gBitTable[i]; i++; } @@ -3677,13 +3656,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) retVal += substruct3->victoryRibbon; retVal += substruct3->artistRibbon; retVal += substruct3->effortRibbon; - retVal += substruct3->giftRibbon1; - retVal += substruct3->giftRibbon2; - retVal += substruct3->giftRibbon3; - retVal += substruct3->giftRibbon4; - retVal += substruct3->giftRibbon5; - retVal += substruct3->giftRibbon6; - retVal += substruct3->giftRibbon7; + retVal += substruct3->marineRibbon; + retVal += substruct3->landRibbon; + retVal += substruct3->skyRibbon; + retVal += substruct3->countryRibbon; + retVal += substruct3->nationalRibbon; + retVal += substruct3->earthRibbon; + retVal += substruct3->worldRibbon; } break; case MON_DATA_RIBBONS: @@ -3700,13 +3679,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) | (substruct3->victoryRibbon << 17) | (substruct3->artistRibbon << 18) | (substruct3->effortRibbon << 19) - | (substruct3->giftRibbon1 << 20) - | (substruct3->giftRibbon2 << 21) - | (substruct3->giftRibbon3 << 22) - | (substruct3->giftRibbon4 << 23) - | (substruct3->giftRibbon5 << 24) - | (substruct3->giftRibbon6 << 25) - | (substruct3->giftRibbon7 << 26); + | (substruct3->marineRibbon << 20) + | (substruct3->landRibbon << 21) + | (substruct3->skyRibbon << 22) + | (substruct3->countryRibbon << 23) + | (substruct3->nationalRibbon << 24) + | (substruct3->earthRibbon << 25) + | (substruct3->worldRibbon << 26); } break; default: @@ -3989,42 +3968,42 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg) case MON_DATA_EFFORT_RIBBON: SET8(substruct3->effortRibbon); break; - case MON_DATA_GIFT_RIBBON_1: - SET8(substruct3->giftRibbon1); + case MON_DATA_MARINE_RIBBON: + SET8(substruct3->marineRibbon); break; - case MON_DATA_GIFT_RIBBON_2: - SET8(substruct3->giftRibbon2); + case MON_DATA_LAND_RIBBON: + SET8(substruct3->landRibbon); break; - case MON_DATA_GIFT_RIBBON_3: - SET8(substruct3->giftRibbon3); + case MON_DATA_SKY_RIBBON: + SET8(substruct3->skyRibbon); break; - case MON_DATA_GIFT_RIBBON_4: - SET8(substruct3->giftRibbon4); + case MON_DATA_COUNTRY_RIBBON: + SET8(substruct3->countryRibbon); break; - case MON_DATA_GIFT_RIBBON_5: - SET8(substruct3->giftRibbon5); + case MON_DATA_NATIONAL_RIBBON: + SET8(substruct3->nationalRibbon); break; - case MON_DATA_GIFT_RIBBON_6: - SET8(substruct3->giftRibbon6); + case MON_DATA_EARTH_RIBBON: + SET8(substruct3->earthRibbon); break; - case MON_DATA_GIFT_RIBBON_7: - SET8(substruct3->giftRibbon7); + case MON_DATA_WORLD_RIBBON: + SET8(substruct3->worldRibbon); break; - case MON_DATA_FATEFUL_ENCOUNTER: - SET8(substruct3->fatefulEncounter); + case MON_DATA_UNUSED_RIBBONS: + SET8(substruct3->unusedRibbons); break; - case MON_DATA_OBEDIENCE: - SET8(substruct3->obedient); + case MON_DATA_EVENT_LEGAL: + SET8(substruct3->eventLegal); break; case MON_DATA_IVS: { u32 ivs = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); - substruct3->hpIV = ivs & 0x1F; - substruct3->attackIV = (ivs >> 5) & 0x1F; - substruct3->defenseIV = (ivs >> 10) & 0x1F; - substruct3->speedIV = (ivs >> 15) & 0x1F; - substruct3->spAttackIV = (ivs >> 20) & 0x1F; - substruct3->spDefenseIV = (ivs >> 25) & 0x1F; + substruct3->hpIV = ivs & MAX_IV_MASK; + substruct3->attackIV = (ivs >> 5) & MAX_IV_MASK; + substruct3->defenseIV = (ivs >> 10) & MAX_IV_MASK; + substruct3->speedIV = (ivs >> 15) & MAX_IV_MASK; + substruct3->spAttackIV = (ivs >> 20) & MAX_IV_MASK; + substruct3->spDefenseIV = (ivs >> 25) & MAX_IV_MASK; break; } default: @@ -4344,30 +4323,56 @@ void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex) { - return PokemonUseItemEffects(mon, item, partyIndex, moveIndex, 0); + return PokemonUseItemEffects(mon, item, partyIndex, moveIndex, FALSE); } -bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e) +#define UPDATE_FRIENDSHIP_FROM_ITEM \ +{ \ + if ((retVal == 0 || friendshipOnly) && !ShouldSkipFriendshipChange() && friendshipChange == 0) \ + { \ + friendshipChange = itemEffect[itemEffectParam]; \ + friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL); \ + if (friendshipChange > 0 && holdEffect == HOLD_EFFECT_FRIENDSHIP_UP) \ + friendship += 150 * friendshipChange / 100; \ + else \ + friendship += friendshipChange; \ + if (friendshipChange > 0) \ + { \ + if (GetMonData(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) \ + friendship++; \ + if (GetMonData(mon, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) \ + friendship++; \ + } \ + if (friendship < 0) \ + friendship = 0; \ + if (friendship > MAX_FRIENDSHIP) \ + friendship = MAX_FRIENDSHIP; \ + SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); \ + retVal = FALSE; \ + } \ +} + +// Returns TRUE if the item has no effect on the Pokémon, FALSE otherwise +bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, bool8 usedByAI) { u32 dataUnsigned; s32 dataSigned; s32 friendship; - s32 cmdIndex; + s32 i; bool8 retVal = TRUE; const u8 *itemEffect; - u8 var_3C = 6; - u32 var_38; - s8 var_34 = 0; + u8 itemEffectParam = ITEM_EFFECT_ARG_START; + u32 temp1, temp2; + s8 friendshipChange = 0; u8 holdEffect; - u8 battlerId = 4; - u32 var_28 = 0; + u8 battlerId = MAX_BATTLERS_COUNT; + u32 friendshipOnly = FALSE; u16 heldItem; - u8 r10; - u32 r4; - u32 r5; - s8 r2; + u8 effectFlags; + s8 evChange; u16 evCount; + // Get item hold effect heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, NULL); if (heldItem == ITEM_ENIGMA_BERRY) { @@ -4381,19 +4386,20 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov holdEffect = ItemId_GetHoldEffect(heldItem); } + // Get battler id (if relevant) gPotentialItemEffectBattler = gBattlerInMenuId; if (gMain.inBattle) { gActiveBattler = gBattlerInMenuId; - cmdIndex = (GetBattlerSide(gActiveBattler) != B_SIDE_PLAYER); - while (cmdIndex < gBattlersCount) + i = (GetBattlerSide(gActiveBattler) != B_SIDE_PLAYER); + while (i < gBattlersCount) { - if (gBattlerPartyIndexes[cmdIndex] == partyIndex) + if (gBattlerPartyIndexes[i] == partyIndex) { - battlerId = cmdIndex; + battlerId = i; break; } - cmdIndex += 2; + i += 2; } } else @@ -4402,11 +4408,13 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov battlerId = MAX_BATTLERS_COUNT; } + // Skip using the item if it won't do anything if (!ITEM_HAS_EFFECT(item)) return TRUE; if (gItemEffectTable[item - ITEM_POTION] == NULL && item != ITEM_ENIGMA_BERRY) return TRUE; + // Get item effect if (item == ITEM_ENIGMA_BERRY) { if (gMain.inBattle) @@ -4419,96 +4427,110 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov itemEffect = gItemEffectTable[item - ITEM_POTION]; } - for (cmdIndex = 0; cmdIndex < 6; cmdIndex++) + // Do item effect + for (i = 0; i < ITEM_EFFECT_ARG_START; i++) { - switch (cmdIndex) + switch (i) { - // infatuation heal, x attack, sacred ash and dire hit + + // Handle ITEM0 effects (infatuation, Dire Hit, X Attack). ITEM0_SACRED_ASH is handled in party_menu.c case 0: - if ((itemEffect[cmdIndex] & ITEM0_INFATUATION) + // Cure infatuation + if ((itemEffect[i] & ITEM0_INFATUATION) && gMain.inBattle && battlerId != MAX_BATTLERS_COUNT && (gBattleMons[battlerId].status2 & STATUS2_INFATUATION)) { gBattleMons[battlerId].status2 &= ~STATUS2_INFATUATION; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM0_DIRE_HIT) + + // Dire Hit + if ((itemEffect[i] & ITEM0_DIRE_HIT) && !(gBattleMons[gActiveBattler].status2 & STATUS2_FOCUS_ENERGY)) { gBattleMons[gActiveBattler].status2 |= STATUS2_FOCUS_ENERGY; retVal = FALSE; } #ifndef ITEM_EXPANSION - if ((itemEffect[cmdIndex] & ITEM0_X_ATTACK) + // X Attack + if ((itemEffect[i] & ITEM0_X_ATTACK) && gBattleMons[gActiveBattler].statStages[STAT_ATK] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_ATK] += 2; else - gBattleMons[gActiveBattler].statStages[STAT_ATK] += itemEffect[cmdIndex] & ITEM0_X_ATTACK; + gBattleMons[gActiveBattler].statStages[STAT_ATK] += itemEffect[i] & ITEM0_X_ATTACK; if (gBattleMons[gActiveBattler].statStages[STAT_ATK] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_ATK] = MAX_STAT_STAGE; retVal = FALSE; } #endif break; - // in-battle stat boosting effects + + // Handle ITEM1 effects (in-battle stat boosting effects) #ifndef ITEM_EXPANSION case 1: - if ((itemEffect[cmdIndex] & ITEM1_X_DEFEND) + // X Defend + if ((itemEffect[i] & ITEM1_X_DEFEND) && gBattleMons[gActiveBattler].statStages[STAT_DEF] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_DEF] += 2; else - gBattleMons[gActiveBattler].statStages[STAT_DEF] += (itemEffect[cmdIndex] & ITEM1_X_DEFEND) >> 4; + gBattleMons[gActiveBattler].statStages[STAT_DEF] += (itemEffect[i] & ITEM1_X_DEFEND) >> 4; if (gBattleMons[gActiveBattler].statStages[STAT_DEF] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_DEF] = MAX_STAT_STAGE; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM1_X_SPEED) + + // X Speed + if ((itemEffect[i] & ITEM1_X_SPEED) && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_SPEED] += 2; else - gBattleMons[gActiveBattler].statStages[STAT_SPEED] += itemEffect[cmdIndex] & ITEM1_X_SPEED; + gBattleMons[gActiveBattler].statStages[STAT_SPEED] += itemEffect[i] & ITEM1_X_SPEED; if (gBattleMons[gActiveBattler].statStages[STAT_SPEED] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_SPEED] = MAX_STAT_STAGE; retVal = FALSE; } break; - // more stat boosting effects + // Handle ITEM2 effects (more stat boosting effects) case 2: - if ((itemEffect[cmdIndex] & ITEM2_X_ACCURACY) + // X Accuracy + if ((itemEffect[i] & ITEM2_X_ACCURACY) && gBattleMons[gActiveBattler].statStages[STAT_ACC] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_ACC] += 2; else - gBattleMons[gActiveBattler].statStages[STAT_ACC] += (itemEffect[cmdIndex] & ITEM2_X_ACCURACY) >> 4; + gBattleMons[gActiveBattler].statStages[STAT_ACC] += (itemEffect[i] & ITEM2_X_ACCURACY) >> 4; if (gBattleMons[gActiveBattler].statStages[STAT_ACC] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_ACC] = MAX_STAT_STAGE; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM2_X_SPATK) + + // X Sp Attack + if ((itemEffect[i] & ITEM2_X_SPATK) && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_SPATK] += 2; else - gBattleMons[gActiveBattler].statStages[STAT_SPATK] += itemEffect[cmdIndex] & ITEM2_X_SPATK; + gBattleMons[gActiveBattler].statStages[STAT_SPATK] += itemEffect[i] & ITEM2_X_SPATK; if (gBattleMons[gActiveBattler].statStages[STAT_SPATK] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_SPATK] = MAX_STAT_STAGE; retVal = FALSE; } break; #else - // in-battle stat boosting effects + // Handle ITEM1 effects (in-battle stat boosting effects) case 1: - if ((itemEffect[cmdIndex] & ITEM1_X_ATTACK) + // X Attack + if ((itemEffect[i] & ITEM1_X_ATTACK) && gBattleMons[gActiveBattler].statStages[STAT_ATK] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_ATK] += 2; else gBattleMons[gActiveBattler].statStages[STAT_ATK] += 1; @@ -4516,10 +4538,12 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov gBattleMons[gActiveBattler].statStages[STAT_ATK] = MAX_STAT_STAGE; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM1_X_DEFENSE) + + // X Defense + if ((itemEffect[i] & ITEM1_X_DEFENSE) && gBattleMons[gActiveBattler].statStages[STAT_DEF] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_DEF] += 2; else gBattleMons[gActiveBattler].statStages[STAT_DEF] += 1; @@ -4527,10 +4551,12 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov gBattleMons[gActiveBattler].statStages[STAT_DEF] = MAX_STAT_STAGE; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM1_X_SPEED) + + // X Speed + if ((itemEffect[i] & ITEM1_X_SPEED) && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_SPEED] += 2; else gBattleMons[gActiveBattler].statStages[STAT_SPEED] += 1; @@ -4538,10 +4564,12 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov gBattleMons[gActiveBattler].statStages[STAT_SPEED] = MAX_STAT_STAGE; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM1_X_SPATK) + + // X Sp Attack + if ((itemEffect[i] & ITEM1_X_SPATK) && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_SPATK] += 2; else gBattleMons[gActiveBattler].statStages[STAT_SPATK] += 1; @@ -4549,10 +4577,12 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov gBattleMons[gActiveBattler].statStages[STAT_SPATK] = MAX_STAT_STAGE; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM1_X_SPDEF) + + // X Sp Defense + if ((itemEffect[i] & ITEM1_X_SPDEF) && gBattleMons[gActiveBattler].statStages[STAT_SPDEF] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_SPDEF] += 2; else gBattleMons[gActiveBattler].statStages[STAT_SPDEF] += 1; @@ -4560,10 +4590,12 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov gBattleMons[gActiveBattler].statStages[STAT_SPDEF] = MAX_STAT_STAGE; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM1_X_ACCURACY) + + // X Accuracy + if ((itemEffect[i] & ITEM1_X_ACCURACY) && gBattleMons[gActiveBattler].statStages[STAT_ACC] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) gBattleMons[gActiveBattler].statStages[STAT_ACC] += 2; else gBattleMons[gActiveBattler].statStages[STAT_ACC] += 1; @@ -4572,18 +4604,22 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov retVal = FALSE; } break; - // formerly used by the item effects of the X Sp. Atk and the X Accuracy + // Formerly used by the item effects of the X Sp. Atk and the X Accuracy case 2: break; #endif + // Handle ITEM3 effects (Guard Spec, Rare Candy, cure status) case 3: - if ((itemEffect[cmdIndex] & ITEM3_GUARD_SPEC) + // Guard Spec + if ((itemEffect[i] & ITEM3_GUARD_SPEC) && gSideTimers[GetBattlerSide(gActiveBattler)].mistTimer == 0) { gSideTimers[GetBattlerSide(gActiveBattler)].mistTimer = 5; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM3_LEVEL_UP) + + // Rare Candy + if ((itemEffect[i] & ITEM3_LEVEL_UP) && GetMonData(mon, MON_DATA_LEVEL, NULL) != MAX_LEVEL) { dataUnsigned = gExperienceTables[gBaseStats[GetMonData(mon, MON_DATA_SPECIES, NULL)].growthRate][GetMonData(mon, MON_DATA_LEVEL, NULL) + 1]; @@ -4591,106 +4627,120 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov CalculateMonStats(mon); retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM3_SLEEP) - && HealStatusConditions(mon, partyIndex, 7, battlerId) == 0) + + // Cure status + if ((itemEffect[i] & ITEM3_SLEEP) + && HealStatusConditions(mon, partyIndex, STATUS1_SLEEP, battlerId) == 0) { - if (battlerId != 4) + if (battlerId != MAX_BATTLERS_COUNT) gBattleMons[battlerId].status2 &= ~STATUS2_NIGHTMARE; retVal = FALSE; } - if ((itemEffect[cmdIndex] & ITEM3_POISON) && HealStatusConditions(mon, partyIndex, STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER, battlerId) == 0) + if ((itemEffect[i] & ITEM3_POISON) && HealStatusConditions(mon, partyIndex, STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER, battlerId) == 0) retVal = FALSE; - if ((itemEffect[cmdIndex] & ITEM3_BURN) && HealStatusConditions(mon, partyIndex, STATUS1_BURN, battlerId) == 0) + if ((itemEffect[i] & ITEM3_BURN) && HealStatusConditions(mon, partyIndex, STATUS1_BURN, battlerId) == 0) retVal = FALSE; - if ((itemEffect[cmdIndex] & ITEM3_FREEZE) && HealStatusConditions(mon, partyIndex, STATUS1_FREEZE, battlerId) == 0) + if ((itemEffect[i] & ITEM3_FREEZE) && HealStatusConditions(mon, partyIndex, STATUS1_FREEZE, battlerId) == 0) retVal = FALSE; - if ((itemEffect[cmdIndex] & ITEM3_PARALYSIS) && HealStatusConditions(mon, partyIndex, STATUS1_PARALYSIS, battlerId) == 0) + if ((itemEffect[i] & ITEM3_PARALYSIS) && HealStatusConditions(mon, partyIndex, STATUS1_PARALYSIS, battlerId) == 0) retVal = FALSE; - if ((itemEffect[cmdIndex] & ITEM3_CONFUSION) // heal confusion + if ((itemEffect[i] & ITEM3_CONFUSION) // heal confusion && gMain.inBattle && battlerId != MAX_BATTLERS_COUNT && (gBattleMons[battlerId].status2 & STATUS2_CONFUSION)) { gBattleMons[battlerId].status2 &= ~STATUS2_CONFUSION; retVal = FALSE; } break; - // EV, HP, and PP raising effects + + // Handle ITEM4 effects (Change HP/Atk EVs, HP heal, PP heal, PP up, Revive, and evolution stones) case 4: - r10 = itemEffect[cmdIndex]; - if (r10 & ITEM4_PP_UP) + effectFlags = itemEffect[i]; + + // PP Up + if (effectFlags & ITEM4_PP_UP) { - r10 &= ~ITEM4_PP_UP; + effectFlags &= ~ITEM4_PP_UP; dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2); - var_38 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); - if (dataUnsigned <= 2 && var_38 > 4) + temp1 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); + if (dataUnsigned <= 2 && temp1 > 4) { dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL) + gPPUpAddMask[moveIndex]; SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned); - dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - var_38; + dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - temp1; dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex, NULL) + dataUnsigned; SetMonData(mon, MON_DATA_PP1 + moveIndex, &dataUnsigned); retVal = FALSE; } } - var_38 = 0; - while (r10 != 0) + temp1 = 0; + + // Loop through and try each of the remaining ITEM4 effects + while (effectFlags != 0) { - if (r10 & 1) + if (effectFlags & 1) { - switch (var_38) + switch (temp1) { - case 0: - case 1: - // ev raise + case 0: // ITEM4_EV_HP + case 1: // ITEM4_EV_ATK evCount = GetMonEVCount(mon); - r5 = itemEffect[var_3C]; - dataSigned = GetMonData(mon, sGetMonDataEVConstants[var_38], NULL); - r2 = r5; - if (r2 > 0) + temp2 = itemEffect[itemEffectParam]; + dataSigned = GetMonData(mon, sGetMonDataEVConstants[temp1], NULL); + evChange = temp2; + + if (evChange > 0) // Increasing EV (HP or Atk) { + // Has EV increase limit already been reached? if (evCount >= MAX_TOTAL_EVS) return TRUE; if (dataSigned >= EV_ITEM_RAISE_LIMIT) break; - if (dataSigned + r2 > EV_ITEM_RAISE_LIMIT) - r5 = EV_ITEM_RAISE_LIMIT - (dataSigned + r2) + r2; + // Limit the increase + if (dataSigned + evChange > EV_ITEM_RAISE_LIMIT) + temp2 = EV_ITEM_RAISE_LIMIT - (dataSigned + evChange) + evChange; else - r5 = r2; + temp2 = evChange; - if (evCount + r5 > MAX_TOTAL_EVS) - r5 += MAX_TOTAL_EVS - (evCount + r5); - dataSigned += r5; + if (evCount + temp2 > MAX_TOTAL_EVS) + temp2 += MAX_TOTAL_EVS - (evCount + temp2); + + dataSigned += temp2; } - else + else // Decreasing EV (HP or Atk) { if (dataSigned == 0) { - var_28 = 1; - var_3C++; + // No EVs to lose, but make sure friendship updates anyway + friendshipOnly = TRUE; + itemEffectParam++; break; } - dataSigned += r2; + dataSigned += evChange; if (dataSigned < 0) dataSigned = 0; } - SetMonData(mon, sGetMonDataEVConstants[var_38], &dataSigned); + + // Update EVs and stats + SetMonData(mon, sGetMonDataEVConstants[temp1], &dataSigned); CalculateMonStats(mon); - var_3C++; + itemEffectParam++; retVal = FALSE; break; - case 2: - // revive - if (r10 & 0x10) + + case 2: // ITEM4_HEAL_HP + // If Revive, update number of times revive has been used + if (effectFlags & (ITEM4_REVIVE >> 2)) { if (GetMonData(mon, MON_DATA_HP, NULL) != 0) { - var_3C++; + itemEffectParam++; break; } if (gMain.inBattle) { - if (battlerId != 4) + if (battlerId != MAX_BATTLERS_COUNT) { gAbsentBattlerFlags &= ~gBitTable[battlerId]; CopyPlayerPartyMonToBattleData(battlerId, GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battlerId])); @@ -4709,48 +4759,53 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov { if (GetMonData(mon, MON_DATA_HP, NULL) == 0) { - var_3C++; + itemEffectParam++; break; } } // Get amount of HP to restore - dataUnsigned = itemEffect[var_3C++]; + dataUnsigned = itemEffect[itemEffectParam++]; switch (dataUnsigned) { - case ITEM6_HEAL_FULL: + case ITEM6_HEAL_HP_FULL: dataUnsigned = GetMonData(mon, MON_DATA_MAX_HP, NULL) - GetMonData(mon, MON_DATA_HP, NULL); break; - case ITEM6_HEAL_HALF: + case ITEM6_HEAL_HP_HALF: dataUnsigned = GetMonData(mon, MON_DATA_MAX_HP, NULL) / 2; if (dataUnsigned == 0) dataUnsigned = 1; break; - case ITEM6_HEAL_LVL_UP: + case ITEM6_HEAL_HP_LVL_UP: dataUnsigned = gBattleScripting.levelUpHP; break; } + + // Only restore HP if not at max health if (GetMonData(mon, MON_DATA_MAX_HP, NULL) != GetMonData(mon, MON_DATA_HP, NULL)) { - if (e == 0) + if (!usedByAI) { + // Restore HP dataUnsigned = GetMonData(mon, MON_DATA_HP, NULL) + dataUnsigned; if (dataUnsigned > GetMonData(mon, MON_DATA_MAX_HP, NULL)) dataUnsigned = GetMonData(mon, MON_DATA_MAX_HP, NULL); SetMonData(mon, MON_DATA_HP, &dataUnsigned); - if (gMain.inBattle && battlerId != 4) + + // Update battler (if applicable) + if (gMain.inBattle && battlerId != MAX_BATTLERS_COUNT) { gBattleMons[battlerId].hp = dataUnsigned; - if (!(r10 & 0x10) && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) + if (!(effectFlags & (ITEM4_REVIVE >> 2)) && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { if (gBattleResults.numHealingItemsUsed < 255) gBattleResults.numHealingItemsUsed++; - // I have to re-use this variable to match. - r5 = gActiveBattler; + + temp2 = gActiveBattler; gActiveBattler = battlerId; BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); MarkBattlerForControllerExec(gActiveBattler); - gActiveBattler = r5; + gActiveBattler = temp2; } } } @@ -4760,227 +4815,197 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov } retVal = FALSE; } - r10 &= 0xEF; + effectFlags &= ~(ITEM4_REVIVE >> 2); break; - case 3: - // Heal pp in all moves. - if (!(r10 & 2)) + + case 3: // ITEM4_HEAL_PP + if (!(effectFlags & (ITEM4_HEAL_PP_ONE >> 3))) { - for (r5 = 0; (signed)(r5) < (signed)(4); r5++) + // Heal PP for all moves + for (temp2 = 0; (signed)(temp2) < (signed)(MAX_MON_MOVES); temp2++) { u16 moveId; - - dataUnsigned = GetMonData(mon, MON_DATA_PP1 + r5, NULL); - moveId = GetMonData(mon, MON_DATA_MOVE1 + r5, NULL); - if (dataUnsigned != CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), r5)) + dataUnsigned = GetMonData(mon, MON_DATA_PP1 + temp2, NULL); + moveId = GetMonData(mon, MON_DATA_MOVE1 + temp2, NULL); + if (dataUnsigned != CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), temp2)) { - dataUnsigned += itemEffect[var_3C]; - moveId = GetMonData(mon, MON_DATA_MOVE1 + r5, NULL); - if (dataUnsigned > CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), r5)) + dataUnsigned += itemEffect[itemEffectParam]; + moveId = GetMonData(mon, MON_DATA_MOVE1 + temp2, NULL); // Redundant + if (dataUnsigned > CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), temp2)) { - moveId = GetMonData(mon, MON_DATA_MOVE1 + r5, NULL); - dataUnsigned = CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), r5); + moveId = GetMonData(mon, MON_DATA_MOVE1 + temp2, NULL); // Redundant + dataUnsigned = CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), temp2); } - SetMonData(mon, MON_DATA_PP1 + r5, &dataUnsigned); + SetMonData(mon, MON_DATA_PP1 + temp2, &dataUnsigned); + + // Heal battler PP too (if applicable) if (gMain.inBattle && battlerId != MAX_BATTLERS_COUNT && !(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[battlerId].mimickedMoves & gBitTable[r5])) - gBattleMons[battlerId].pp[r5] = dataUnsigned; + && !(gDisableStructs[battlerId].mimickedMoves & gBitTable[temp2])) + gBattleMons[battlerId].pp[temp2] = dataUnsigned; + retVal = FALSE; } } - var_3C++; + itemEffectParam++; } - // Heal pp in one move. else { + // Heal PP for one move u16 moveId; - dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex, NULL); moveId = GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL); if (dataUnsigned != CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex)) { - dataUnsigned += itemEffect[var_3C++]; - moveId = GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL); + dataUnsigned += itemEffect[itemEffectParam++]; + moveId = GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL); // Redundant if (dataUnsigned > CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex)) { - moveId = GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL); + moveId = GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL); // Redundant dataUnsigned = CalculatePPWithBonus(moveId, GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); } SetMonData(mon, MON_DATA_PP1 + moveIndex, &dataUnsigned); + + // Heal battler PP too (if applicable) if (gMain.inBattle - && battlerId != 4 && !(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED) + && battlerId != MAX_BATTLERS_COUNT && !(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[battlerId].mimickedMoves & gBitTable[moveIndex])) gBattleMons[battlerId].pp[moveIndex] = dataUnsigned; + retVal = FALSE; } } break; - // Evolution stone - case 7: + + // cases 4-6 are ITEM4_HEAL_PP_ONE, ITEM4_PP_UP, and ITEM4_REVIVE, which + // are already handled above by other cases or before the loop + + case 7: // ITEM4_EVO_STONE { - u16 targetSpecies = GetEvolutionTargetSpecies(mon, 2, item); + u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_ITEM_USE, item); if (targetSpecies != SPECIES_NONE) { - BeginEvolutionScene(mon, targetSpecies, 0, partyIndex); + BeginEvolutionScene(mon, targetSpecies, FALSE, partyIndex); return FALSE; } } break; } } - var_38++; - r10 >>= 1; + temp1++; + effectFlags >>= 1; } break; - // EV and friendship + + // Handle ITEM5 effects (Change Def/SpDef/SpAtk/Speed EVs, PP Max, and friendship changes) case 5: - r10 = itemEffect[cmdIndex]; - var_38 = 0; - while (r10 != 0) + effectFlags = itemEffect[i]; + temp1 = 0; + + // Loop through and try each of the ITEM5 effects + while (effectFlags != 0) { - if (r10 & 1) + if (effectFlags & 1) { - switch (var_38) + switch (temp1) { - case 0: - case 1: - case 2: - case 3: + case 0: // ITEM5_EV_DEF + case 1: // ITEM5_EV_SPEED + case 2: // ITEM5_EV_SPDEF + case 3: // ITEM5_EV_SPATK evCount = GetMonEVCount(mon); - r5 = itemEffect[var_3C]; - dataSigned = GetMonData(mon, sGetMonDataEVConstants[var_38 + 2], NULL); - r2 = r5; - if (r2 > 0) + temp2 = itemEffect[itemEffectParam]; + dataSigned = GetMonData(mon, sGetMonDataEVConstants[temp1 + 2], NULL); + evChange = temp2; + if (evChange > 0) // Increasing EV { + // Has EV increase limit already been reached? if (evCount >= MAX_TOTAL_EVS) return TRUE; if (dataSigned >= EV_ITEM_RAISE_LIMIT) break; - if (dataSigned + r2 > EV_ITEM_RAISE_LIMIT) - r5 = EV_ITEM_RAISE_LIMIT - (dataSigned + r2) + r2; + // Limit the increase + if (dataSigned + evChange > EV_ITEM_RAISE_LIMIT) + temp2 = EV_ITEM_RAISE_LIMIT - (dataSigned + evChange) + evChange; else - r5 = r2; + temp2 = evChange; - if (evCount + r5 > MAX_TOTAL_EVS) - r5 += MAX_TOTAL_EVS - (evCount + r5); - dataSigned += r5; + if (evCount + temp2 > MAX_TOTAL_EVS) + temp2 += MAX_TOTAL_EVS - (evCount + temp2); + + dataSigned += temp2; } - else + else // Decreasing EV { if (dataSigned == 0) { - var_28 = 1; - var_3C++; + // No EVs to lose, but make sure friendship updates anyway + friendshipOnly = TRUE; + itemEffectParam++; break; } - dataSigned += r2; + dataSigned += evChange; if (dataSigned < 0) dataSigned = 0; } - SetMonData(mon, sGetMonDataEVConstants[var_38 + 2], &dataSigned); + + // Update EVs and stats + SetMonData(mon, sGetMonDataEVConstants[temp1 + 2], &dataSigned); CalculateMonStats(mon); retVal = FALSE; - var_3C++; + itemEffectParam++; break; - case 4: + + case 4: // ITEM5_PP_MAX dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2); - r5 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); - if (dataUnsigned < 3 && r5 > 4) + temp2 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); + if (dataUnsigned < 3 && temp2 > 4) { dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL); dataUnsigned &= gPPUpSetMask[moveIndex]; dataUnsigned += gPPUpAddMask[moveIndex] * 3; SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned); - dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - r5; + dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - temp2; dataUnsigned = GetMonData(mon, MON_DATA_PP1 + moveIndex, NULL) + dataUnsigned; SetMonData(mon, MON_DATA_PP1 + moveIndex, &dataUnsigned); retVal = FALSE; } break; - case 5: - if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) < 100 && (retVal == 0 || var_28 != 0) && !ShouldSkipFriendshipChange() && var_34 == 0) + + case 5: // ITEM5_FRIENDSHIP_LOW + // Changes to friendship are given differently depending on + // how much friendship the Pokémon already has. + // In general, Pokémon with lower friendship receive more, + // and Pokémon with higher friendship receive less. + if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) < 100) { - var_34 = itemEffect[var_3C]; - friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL); - if (var_34 > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP) - friendship += 150 * var_34 / 100; - else - friendship += var_34; - if (var_34 > 0) - { - if (GetMonData(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) - friendship++; - if (GetMonData(mon, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) - friendship++; - } - if (friendship < 0) - friendship = 0; - if (friendship > MAX_FRIENDSHIP) - friendship = MAX_FRIENDSHIP; - SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); - retVal = FALSE; + UPDATE_FRIENDSHIP_FROM_ITEM; } - var_3C++; + itemEffectParam++; break; - case 6: - if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) >= 100 && GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) < 200 - && (retVal == 0 || var_28 != 0) && !ShouldSkipFriendshipChange() && var_34 == 0) + + case 6: // ITEM5_FRIENDSHIP_MID + if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) >= 100 && GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) < 200) { - var_34 = itemEffect[var_3C]; - friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL); - if ((s8)(var_34) > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP) - friendship += 150 * var_34 / 100; - else - friendship += var_34; - if (var_34 > 0) - { - if (GetMonData(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) - friendship++; - if (GetMonData(mon, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) - friendship++; - } - if (friendship < 0) - friendship = 0; - if (friendship > MAX_FRIENDSHIP) - friendship = MAX_FRIENDSHIP; - SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); - retVal = FALSE; + UPDATE_FRIENDSHIP_FROM_ITEM; } - var_3C++; + itemEffectParam++; break; - case 7: - if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) >= 200 && (retVal == 0 || var_28 != 0) && !ShouldSkipFriendshipChange() && var_34 == 0) + + case 7: // ITEM5_FRIENDSHIP_HIGH + if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) >= 200) { - var_34 = itemEffect[var_3C]; - friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL); - if ((s8)(var_34) > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP) - friendship += 150 * var_34 / 100; - else - friendship += var_34; - if (var_34 > 0) - { - if (GetMonData(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) - friendship++; - if (GetMonData(mon, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) - friendship++; - } - if (friendship < 0) - friendship = 0; - if (friendship > MAX_FRIENDSHIP) - friendship = MAX_FRIENDSHIP; - SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); - retVal = FALSE; + UPDATE_FRIENDSHIP_FROM_ITEM; } - var_3C++; + itemEffectParam++; break; } } - var_38++; - r10 >>= 1; + temp1++; + effectFlags >>= 1; } break; } @@ -5013,9 +5038,9 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) u8 offset; int i; u8 j; - u8 val; + u8 effectFlags; - offset = 6; + offset = ITEM_EFFECT_ARG_START; temp = gItemEffectTable[itemId - ITEM_POTION]; @@ -5029,7 +5054,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) itemEffect = temp; - for (i = 0; i < 6; i++) + for (i = 0; i < ITEM_EFFECT_ARG_START; i++) { switch (i) { @@ -5041,74 +5066,75 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) return 0; break; case 4: - val = itemEffect[4]; - if (val & ITEM4_PP_UP) - val &= ~(ITEM4_PP_UP); + effectFlags = itemEffect[4]; + if (effectFlags & ITEM4_PP_UP) + effectFlags &= ~(ITEM4_PP_UP); j = 0; - while (val) + while (effectFlags) { - if (val & 1) + if (effectFlags & 1) { switch (j) { - case 2: - if (val & 0x10) - val &= 0xEF; - case 0: - if (i == effectByte && (val & effectBit)) + case 2: // ITEM4_HEAL_HP + if (effectFlags & (ITEM4_REVIVE >> 2)) + effectFlags &= ~(ITEM4_REVIVE >> 2); + // fallthrough + case 0: // ITEM4_EV_HP + if (i == effectByte && (effectFlags & effectBit)) return offset; offset++; break; - case 1: - if (i == effectByte && (val & effectBit)) + case 1: // ITEM4_EV_ATK + if (i == effectByte && (effectFlags & effectBit)) return offset; offset++; break; - case 3: - if (i == effectByte && (val & effectBit)) + case 3: // ITEM4_HEAL_PP + if (i == effectByte && (effectFlags & effectBit)) return offset; offset++; break; - case 7: + case 7: // ITEM4_EVO_STONE if (i == effectByte) return 0; break; } } j++; - val >>= 1; + effectFlags >>= 1; if (i == effectByte) effectBit >>= 1; } break; case 5: - val = itemEffect[5]; + effectFlags = itemEffect[5]; j = 0; - while (val) + while (effectFlags) { - if (val & 1) + if (effectFlags & 1) { switch (j) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - if (i == effectByte && (val & effectBit)) + case 0: // ITEM5_EV_DEF + case 1: // ITEM5_EV_SPEED + case 2: // ITEM5_EV_SPDEF + case 3: // ITEM5_EV_SPATK + case 4: // ITEM5_PP_MAX + case 5: // ITEM5_FRIENDSHIP_LOW + case 6: // ITEM5_FRIENDSHIP_MID + if (i == effectByte && (effectFlags & effectBit)) return offset; offset++; break; - case 7: + case 7: // ITEM5_FRIENDSHIP_HIGH if (i == effectByte) return 0; break; } } j++; - val >>= 1; + effectFlags >>= 1; if (i == effectByte) effectBit >>= 1; } @@ -5123,7 +5149,7 @@ static void BufferStatRoseMessage(s32 arg0) { gBattlerTarget = gBattlerInMenuId; StringCopy(gBattleTextBuff1, gStatNamesTable[sStatsToRaise[arg0]]); - if (B_X_ITEMS_BUFF == GEN_7) + if (B_X_ITEMS_BUFF >= GEN_7) { StringCopy(gBattleTextBuff2, gText_StatSharply); StringAppend(gBattleTextBuff2, gText_StatRose); @@ -5132,7 +5158,7 @@ static void BufferStatRoseMessage(s32 arg0) { StringCopy(gBattleTextBuff2, gText_StatRose); } - BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2); + BattleStringExpandPlaceholdersToDisplayedString(gText_DefendersStatRose); } u8 *UseStatIncreaseItem(u16 itemId) @@ -5228,7 +5254,7 @@ u8 GetNatureFromPersonality(u32 personality) return personality % NUM_NATURES; } -u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem) +u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem) { int i; u16 targetSpecies = 0; @@ -5246,12 +5272,13 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem) else holdEffect = ItemId_GetHoldEffect(heldItem); - if (holdEffect == HOLD_EFFECT_PREVENT_EVOLVE && type != 3) + // Prevent evolution with Everstone, unless we're just viewing the party menu with an evolution item + if (holdEffect == HOLD_EFFECT_PREVENT_EVOLVE && mode != EVO_MODE_ITEM_CHECK) return SPECIES_NONE; - switch (type) + switch (mode) { - case 0: + case EVO_MODE_NORMAL: level = GetMonData(mon, MON_DATA_LEVEL, 0); friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, 0); @@ -5311,7 +5338,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem) } } break; - case 1: + case EVO_MODE_TRADE: for (i = 0; i < EVOS_PER_MON; i++) { switch (gEvolutionTable[species][i].method) @@ -5330,8 +5357,8 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem) } } break; - case 2: - case 3: + case EVO_MODE_ITEM_USE: + case EVO_MODE_ITEM_CHECK: for (i = 0; i < EVOS_PER_MON; i++) { if (gEvolutionTable[species][i].method == EVO_ITEM @@ -5436,96 +5463,63 @@ u16 SpeciesToCryId(u16 species) return gSpeciesIdToCryId[species - (SPECIES_TREECKO - 1)]; } -void sub_806D544(u16 species, u32 personality, u8 *dest) +#define DRAW_SPINDA_SPOTS \ +{ \ + int i; \ + for (i = 0; i < 4; i++) \ + { \ + int j; \ + u8 x = gSpindaSpotGraphics[i].x + ((personality & 0x0F) - 8); \ + u8 y = gSpindaSpotGraphics[i].y + (((personality & 0xF0) >> 4) - 8); \ + \ + for (j = 0; j < 16; j++) \ + { \ + int k; \ + s32 row = gSpindaSpotGraphics[i].image[j]; \ + \ + for (k = x; k < x + 16; k++) \ + { \ + u8 *val = dest + ((k / 8) * 32) + \ + ((k % 8) / 2) + \ + ((y >> 3) << 8) + \ + ((y & 7) << 2); \ + \ + if (row & 1) \ + { \ + if (k & 1) \ + { \ + if ((u8)((*val & 0xF0) - 0x10) <= 0x20) \ + *val += 0x40; \ + } \ + else \ + { \ + if ((u8)((*val & 0xF) - 0x01) <= 0x02) \ + *val += 0x04; \ + } \ + } \ + \ + row >>= 1; \ + } \ + \ + y++; \ + } \ + \ + personality >>= 8; \ + } \ +} + +static void DrawSpindaSpotsUnused(u16 species, u32 personality, u8 *dest) { if (species == SPECIES_SPINDA && dest != gMonSpritesGfxPtr->sprites.ptr[0] && dest != gMonSpritesGfxPtr->sprites.ptr[2]) - { - int i; - for (i = 0; i < 4; i++) - { - int j; - u8 x = gSpindaSpotGraphics[i].x + ((personality & 0x0F) - 8); - u8 y = gSpindaSpotGraphics[i].y + (((personality & 0xF0) >> 4) - 8); - - for (j = 0; j < 16; j++) - { - int k; - s32 row = gSpindaSpotGraphics[i].image[j]; - - for (k = x; k < x + 16; k++) - { - u8 *val = dest + ((k / 8) * 32) + ((k % 8) / 2) + ((y >> 3) << 8) + ((y & 7) << 2); - - if (row & 1) - { - if (k & 1) - { - if ((u8)((*val & 0xF0) - 0x10) <= 0x20) - *val += 0x40; - } - else - { - if ((u8)((*val & 0xF) - 0x01) <= 0x02) - *val += 0x04; - } - } - - row >>= 1; - } - - y++; - } - - personality >>= 8; - } - } + DRAW_SPINDA_SPOTS; } -void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4) +void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, bool8 isFrontPic) { - if (species == SPECIES_SPINDA && a4) - { - int i; - for (i = 0; i < 4; i++) - { - int j; - u8 x = gSpindaSpotGraphics[i].x + ((personality & 0x0F) - 8); - u8 y = gSpindaSpotGraphics[i].y + (((personality & 0xF0) >> 4) - 8); - - for (j = 0; j < 16; j++) - { - int k; - s32 row = gSpindaSpotGraphics[i].image[j]; - - for (k = x; k < x + 16; k++) - { - u8 *val = dest + ((k / 8) * 32) + ((k % 8) / 2) + ((y >> 3) << 8) + ((y & 7) << 2); - - if (row & 1) - { - if (k & 1) - { - if ((u8)((*val & 0xF0) - 0x10) <= 0x20) - *val += 0x40; - } - else - { - if ((u8)((*val & 0xF) - 0x01) <= 0x02) - *val += 0x04; - } - } - - row >>= 1; - } - - y++; - } - - personality >>= 8; - } - } + if (species == SPECIES_SPINDA && isFrontPic) + DRAW_SPINDA_SPOTS; } void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies) @@ -5662,7 +5656,7 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) && (event != FRIENDSHIP_EVENT_LEAGUE_BATTLE || IS_LEAGUE_BATTLE)) { s8 mod = sFriendshipEventModifiers[event][friendshipLevel]; - if (mod > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP) + if (mod > 0 && holdEffect == HOLD_EFFECT_FRIENDSHIP_UP) mod = (150 * mod) / 100; friendship += mod; if (mod > 0) @@ -6131,7 +6125,7 @@ u16 GetBattleBGM(void) return MUS_VS_KYOGRE_GROUDON; else if (gBattleTypeFlags & BATTLE_TYPE_REGI) return MUS_VS_REGI; - else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) return MUS_VS_TRAINER; else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { @@ -6472,12 +6466,12 @@ const u8 *GetTrainerPartnerName(void) #define READ_PTR_FROM_TASK(taskId, dataId) \ (void*)( \ ((u16)(gTasks[taskId].data[dataId]) | \ - ((u16)(gTasks[taskId].data[dataId + 1]) << 0x10))) + ((u16)(gTasks[taskId].data[dataId + 1]) << 16))) #define STORE_PTR_IN_TASK(ptr, taskId, dataId) \ { \ gTasks[taskId].data[dataId] = (u32)(ptr); \ - gTasks[taskId].data[dataId + 1] = (u32)(ptr) >> 0x10; \ + gTasks[taskId].data[dataId + 1] = (u32)(ptr) >> 16; \ } static void Task_AnimateAfterDelay(u8 taskId) @@ -6494,14 +6488,14 @@ static void Task_PokemonSummaryAnimateAfterDelay(u8 taskId) if (--gTasks[taskId].data[3] == 0) { StartMonSummaryAnimation(READ_PTR_FROM_TASK(taskId, 0), gTasks[taskId].data[2]); - SummaryScreen_SetUnknownTaskId(0xFF); + SummaryScreen_SetAnimDelayTaskId(TASK_NONE); DestroyTask(taskId); } } void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3) { - if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) + if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))) DoMonFrontSpriteAnimation(sprite, species, noCry, arg3 | 0x80); else DoMonFrontSpriteAnimation(sprite, species, noCry, arg3); @@ -6561,7 +6555,7 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF STORE_PTR_IN_TASK(sprite, taskId, 0); gTasks[taskId].data[2] = sMonFrontAnimIdsTable[species - 1]; gTasks[taskId].data[3] = sMonAnimationDelayTable[species - 1]; - SummaryScreen_SetUnknownTaskId(taskId); + SummaryScreen_SetAnimDelayTaskId(taskId); SetSpriteCB_MonAnimDummy(sprite); } else @@ -6573,13 +6567,13 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF void StopPokemonAnimationDelayTask(void) { u8 delayTaskId = FindTaskIdByFunc(Task_PokemonSummaryAnimateAfterDelay); - if (delayTaskId != 0xFF) + if (delayTaskId != TASK_NONE) DestroyTask(delayTaskId); } void BattleAnimateBackSprite(struct Sprite* sprite, u16 species) { - if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) + if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))) { sprite->callback = SpriteCallbackDummy; } @@ -6699,7 +6693,7 @@ static void sub_806F160(struct Unknown_806F160_Struct* structPtr) u16 i, j; for (i = 0; i < structPtr->field_0_0; i++) { - structPtr->templates[i] = gUnknown_08329D98[i]; + structPtr->templates[i] = gBattlerSpriteTemplates[i]; for (j = 0; j < structPtr->field_1; j++) { structPtr->frameImages[i * structPtr->field_1 + j].data = &structPtr->byteArrays[i][j * 0x800]; @@ -6719,7 +6713,7 @@ static void sub_806F1FC(struct Unknown_806F160_Struct* structPtr) structPtr->frameImages[i * structPtr->field_0_0 + j].data = &structPtr->byteArrays[i][j * 0x800]; } structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->field_0_0]; - structPtr->templates[i].anims = gUnknown_082FF70C; + structPtr->templates[i].anims = gAnims_MonPic; structPtr->templates[i].paletteTag = i; } } @@ -6764,7 +6758,7 @@ struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1) else { for (i = 0; i < structPtr->field_0_0; i++) - structPtr->byteArrays[i] = structPtr->bytes + (structPtr->field_3_0 * (i << 0xD)); + structPtr->byteArrays[i] = structPtr->bytes + (structPtr->field_3_0 * (i << 13)); } structPtr->templates = AllocZeroed(sizeof(struct SpriteTemplate) * structPtr->field_0_0); @@ -6865,3 +6859,26 @@ u8 *sub_806F4F8(u8 id, u8 arg1) return structPtr->byteArrays[arg1]; } } + +u16 GetFormSpeciesId(u16 speciesId, u8 formId) +{ + if (gFormSpeciesIdTables[speciesId] != NULL) + return gFormSpeciesIdTables[speciesId][formId]; + else + return speciesId; +} + +u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId) +{ + u8 targetFormId = 0; + + if (gFormSpeciesIdTables[formSpeciesId] != NULL) + { + for (targetFormId = 0; gFormSpeciesIdTables[formSpeciesId][targetFormId] != FORM_SPECIES_END; targetFormId++) + { + if (formSpeciesId == gFormSpeciesIdTables[formSpeciesId][targetFormId]) + break; + } + } + return targetFormId; +} diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index c4077aff46..8e90caeb85 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -6,835 +6,865 @@ #include "task.h" #include "trig.h" #include "util.h" +#include "data.h" #include "constants/battle_anim.h" #include "constants/rgb.h" -struct UnkAnimStruct +/* + This file handles the movements of the Pokémon intro animations. + + Each animation type is identified by an ANIM_* constant that + refers to a sprite callback to start the animation. These functions + are named Anim_ or Anim__. Many of these + functions share additional movement functions to do a variation of the + same movement (e.g. a faster or larger movement). + Vertical and Horizontal are frequently shortened to V and H. + + Every front animation uses 1 of these ANIMs, and every back animation + uses a BACK_ANIM_* that refers to a set of 3 ANIM functions. Which of the + 3 that gets used depends on the Pokémon's nature (see sBackAnimationIds). + + The table linking species to a BACK_ANIM is in this file (sSpeciesToBackAnimSet) + while the table linking species to an ANIM for their front animation is in + pokemon.c (sMonFrontAnimIdsTable). + + These are the functions that will start an animation: + - LaunchAnimationTaskForFrontSprite + - LaunchAnimationTaskForBackSprite + - StartMonSummaryAnimation +*/ + +#define sDontFlip data[1] // TRUE if a normal animation, FALSE if Summary Screen animation + +struct PokemonAnimData { - u16 field_0; - s16 field_2; - s16 field_4; - s16 field_6; - s16 field_8; + u16 delay; + s16 speed; // Only used by 2 sets of animations + s16 runs; // Number of times to do the animation + s16 rotation; + s16 data; // General use }; -// this file's functions -static void pokemonanimfunc_00(struct Sprite *sprite); -static void pokemonanimfunc_01(struct Sprite *sprite); -static void pokemonanimfunc_02(struct Sprite *sprite); -static void pokemonanimfunc_03(struct Sprite *sprite); -static void pokemonanimfunc_04(struct Sprite *sprite); -static void pokemonanimfunc_05(struct Sprite *sprite); -static void pokemonanimfunc_06(struct Sprite *sprite); -static void pokemonanimfunc_07(struct Sprite *sprite); -static void pokemonanimfunc_08(struct Sprite *sprite); -static void pokemonanimfunc_09(struct Sprite *sprite); -static void pokemonanimfunc_0A(struct Sprite *sprite); -static void pokemonanimfunc_0B(struct Sprite *sprite); -static void pokemonanimfunc_0C(struct Sprite *sprite); -static void pokemonanimfunc_0D(struct Sprite *sprite); -static void pokemonanimfunc_0E(struct Sprite *sprite); -static void pokemonanimfunc_0F(struct Sprite *sprite); -static void pokemonanimfunc_10(struct Sprite *sprite); -static void pokemonanimfunc_11(struct Sprite *sprite); -static void pokemonanimfunc_12(struct Sprite *sprite); -static void pokemonanimfunc_13(struct Sprite *sprite); -static void pokemonanimfunc_14(struct Sprite *sprite); -static void pokemonanimfunc_15(struct Sprite *sprite); -static void pokemonanimfunc_16(struct Sprite *sprite); -static void pokemonanimfunc_17(struct Sprite *sprite); -static void pokemonanimfunc_18(struct Sprite *sprite); -static void pokemonanimfunc_19(struct Sprite *sprite); -static void pokemonanimfunc_1A(struct Sprite *sprite); -static void pokemonanimfunc_1B(struct Sprite *sprite); -static void pokemonanimfunc_1C(struct Sprite *sprite); -static void pokemonanimfunc_1D(struct Sprite *sprite); -static void pokemonanimfunc_1E(struct Sprite *sprite); -static void pokemonanimfunc_1F(struct Sprite *sprite); -static void pokemonanimfunc_20(struct Sprite *sprite); -static void pokemonanimfunc_21(struct Sprite *sprite); -static void pokemonanimfunc_22(struct Sprite *sprite); -static void pokemonanimfunc_23(struct Sprite *sprite); -static void pokemonanimfunc_24(struct Sprite *sprite); -static void pokemonanimfunc_25(struct Sprite *sprite); -static void pokemonanimfunc_26(struct Sprite *sprite); -static void pokemonanimfunc_27(struct Sprite *sprite); -static void pokemonanimfunc_28(struct Sprite *sprite); -static void pokemonanimfunc_29(struct Sprite *sprite); -static void pokemonanimfunc_2A(struct Sprite *sprite); -static void pokemonanimfunc_2B(struct Sprite *sprite); -static void pokemonanimfunc_2C(struct Sprite *sprite); -static void pokemonanimfunc_2D(struct Sprite *sprite); -static void pokemonanimfunc_2E(struct Sprite *sprite); -static void pokemonanimfunc_2F(struct Sprite *sprite); -static void pokemonanimfunc_30(struct Sprite *sprite); -static void pokemonanimfunc_31(struct Sprite *sprite); -static void pokemonanimfunc_32(struct Sprite *sprite); -static void pokemonanimfunc_33(struct Sprite *sprite); -static void pokemonanimfunc_34(struct Sprite *sprite); -static void pokemonanimfunc_35(struct Sprite *sprite); -static void pokemonanimfunc_36(struct Sprite *sprite); -static void pokemonanimfunc_37(struct Sprite *sprite); -static void pokemonanimfunc_38(struct Sprite *sprite); -static void pokemonanimfunc_39(struct Sprite *sprite); -static void pokemonanimfunc_3A(struct Sprite *sprite); -static void pokemonanimfunc_3B(struct Sprite *sprite); -static void pokemonanimfunc_3C(struct Sprite *sprite); -static void pokemonanimfunc_3D(struct Sprite *sprite); -static void pokemonanimfunc_3E(struct Sprite *sprite); -static void pokemonanimfunc_3F(struct Sprite *sprite); -static void pokemonanimfunc_40(struct Sprite *sprite); -static void pokemonanimfunc_41(struct Sprite *sprite); -static void pokemonanimfunc_42(struct Sprite *sprite); -static void pokemonanimfunc_43(struct Sprite *sprite); -static void pokemonanimfunc_44(struct Sprite *sprite); -static void pokemonanimfunc_45(struct Sprite *sprite); -static void pokemonanimfunc_46(struct Sprite *sprite); -static void pokemonanimfunc_47(struct Sprite *sprite); -static void pokemonanimfunc_48(struct Sprite *sprite); -static void pokemonanimfunc_49(struct Sprite *sprite); -static void pokemonanimfunc_4A(struct Sprite *sprite); -static void pokemonanimfunc_4B(struct Sprite *sprite); -static void pokemonanimfunc_4C(struct Sprite *sprite); -static void pokemonanimfunc_4D(struct Sprite *sprite); -static void pokemonanimfunc_4E(struct Sprite *sprite); -static void pokemonanimfunc_4F(struct Sprite *sprite); -static void pokemonanimfunc_50(struct Sprite *sprite); -static void pokemonanimfunc_51(struct Sprite *sprite); -static void pokemonanimfunc_52(struct Sprite *sprite); -static void pokemonanimfunc_53(struct Sprite *sprite); -static void pokemonanimfunc_54(struct Sprite *sprite); -static void pokemonanimfunc_55(struct Sprite *sprite); -static void pokemonanimfunc_56(struct Sprite *sprite); -static void pokemonanimfunc_57(struct Sprite *sprite); -static void pokemonanimfunc_58(struct Sprite *sprite); -static void pokemonanimfunc_59(struct Sprite *sprite); -static void pokemonanimfunc_5A(struct Sprite *sprite); -static void pokemonanimfunc_5B(struct Sprite *sprite); -static void pokemonanimfunc_5C(struct Sprite *sprite); -static void pokemonanimfunc_5D(struct Sprite *sprite); -static void pokemonanimfunc_5E(struct Sprite *sprite); -static void pokemonanimfunc_5F(struct Sprite *sprite); -static void pokemonanimfunc_60(struct Sprite *sprite); -static void pokemonanimfunc_61(struct Sprite *sprite); -static void pokemonanimfunc_62(struct Sprite *sprite); -static void pokemonanimfunc_63(struct Sprite *sprite); -static void pokemonanimfunc_64(struct Sprite *sprite); -static void pokemonanimfunc_65(struct Sprite *sprite); -static void pokemonanimfunc_66(struct Sprite *sprite); -static void pokemonanimfunc_67(struct Sprite *sprite); -static void pokemonanimfunc_68(struct Sprite *sprite); -static void pokemonanimfunc_69(struct Sprite *sprite); -static void pokemonanimfunc_6A(struct Sprite *sprite); -static void pokemonanimfunc_6B(struct Sprite *sprite); -static void pokemonanimfunc_6C(struct Sprite *sprite); -static void pokemonanimfunc_6D(struct Sprite *sprite); -static void pokemonanimfunc_6E(struct Sprite *sprite); -static void pokemonanimfunc_6F(struct Sprite *sprite); -static void pokemonanimfunc_70(struct Sprite *sprite); -static void pokemonanimfunc_71(struct Sprite *sprite); -static void pokemonanimfunc_72(struct Sprite *sprite); -static void pokemonanimfunc_73(struct Sprite *sprite); -static void pokemonanimfunc_74(struct Sprite *sprite); -static void pokemonanimfunc_75(struct Sprite *sprite); -static void pokemonanimfunc_76(struct Sprite *sprite); -static void pokemonanimfunc_77(struct Sprite *sprite); -static void pokemonanimfunc_78(struct Sprite *sprite); -static void pokemonanimfunc_79(struct Sprite *sprite); -static void pokemonanimfunc_7A(struct Sprite *sprite); -static void pokemonanimfunc_7B(struct Sprite *sprite); -static void pokemonanimfunc_7C(struct Sprite *sprite); -static void pokemonanimfunc_7D(struct Sprite *sprite); -static void pokemonanimfunc_7E(struct Sprite *sprite); -static void pokemonanimfunc_7F(struct Sprite *sprite); -static void pokemonanimfunc_80(struct Sprite *sprite); -static void pokemonanimfunc_81(struct Sprite *sprite); -static void pokemonanimfunc_82(struct Sprite *sprite); -static void pokemonanimfunc_83(struct Sprite *sprite); -static void pokemonanimfunc_84(struct Sprite *sprite); -static void pokemonanimfunc_85(struct Sprite *sprite); -static void pokemonanimfunc_86(struct Sprite *sprite); -static void pokemonanimfunc_87(struct Sprite *sprite); -static void pokemonanimfunc_88(struct Sprite *sprite); -static void pokemonanimfunc_89(struct Sprite *sprite); -static void pokemonanimfunc_8A(struct Sprite *sprite); -static void pokemonanimfunc_8B(struct Sprite *sprite); -static void pokemonanimfunc_8C(struct Sprite *sprite); -static void pokemonanimfunc_8D(struct Sprite *sprite); -static void pokemonanimfunc_8E(struct Sprite *sprite); -static void pokemonanimfunc_8F(struct Sprite *sprite); -static void pokemonanimfunc_90(struct Sprite *sprite); -static void pokemonanimfunc_91(struct Sprite *sprite); -static void pokemonanimfunc_92(struct Sprite *sprite); -static void pokemonanimfunc_93(struct Sprite *sprite); -static void pokemonanimfunc_94(struct Sprite *sprite); -static void pokemonanimfunc_95(struct Sprite *sprite); -static void pokemonanimfunc_96(struct Sprite *sprite); +struct YellowFlashData +{ + bool8 isYellow; + u8 time; +}; -static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite); +static void Anim_VerticalSquishBounce(struct Sprite *sprite); +static void Anim_CircularStretchTwice(struct Sprite *sprite); +static void Anim_HorizontalVibrate(struct Sprite *sprite); +static void Anim_HorizontalSlide(struct Sprite *sprite); +static void Anim_VerticalSlide(struct Sprite *sprite); +static void Anim_BounceRotateToSides(struct Sprite *sprite); +static void Anim_VerticalJumpsHorizontalJumps(struct Sprite *sprite); +static void Anim_RotateToSides(struct Sprite *sprite); +static void Anim_RotateToSides_Twice(struct Sprite *sprite); +static void Anim_GrowVibrate(struct Sprite *sprite); +static void Anim_ZigzagFast(struct Sprite *sprite); +static void Anim_SwingConcave(struct Sprite *sprite); +static void Anim_SwingConcave_Fast(struct Sprite *sprite); +static void Anim_SwingConvex(struct Sprite *sprite); +static void Anim_SwingConvex_Fast(struct Sprite *sprite); +static void Anim_HorizontalShake(struct Sprite *sprite); +static void Anim_VerticalShake(struct Sprite *sprite); +static void Anim_CircularVibrate(struct Sprite *sprite); +static void Anim_Twist(struct Sprite *sprite); +static void Anim_ShrinkGrow(struct Sprite *sprite); +static void Anim_CircleCounterclockwise(struct Sprite *sprite); +static void Anim_GlowBlack(struct Sprite *sprite); +static void Anim_HorizontalStretch(struct Sprite *sprite); +static void Anim_VerticalStretch(struct Sprite *sprite); +static void Anim_RisingWobble(struct Sprite *sprite); +static void Anim_VerticalShakeTwice(struct Sprite *sprite); +static void Anim_TipMoveForward(struct Sprite *sprite); +static void Anim_HorizontalPivot(struct Sprite *sprite); +static void Anim_VerticalSlideWobble(struct Sprite *sprite); +static void Anim_HorizontalSlideWobble(struct Sprite *sprite); +static void Anim_VerticalJumps_Big(struct Sprite *sprite); +static void Anim_Spin_Long(struct Sprite *sprite); +static void Anim_GlowOrange(struct Sprite *sprite); +static void Anim_GlowRed(struct Sprite *sprite); +static void Anim_GlowBlue(struct Sprite *sprite); +static void Anim_GlowYellow(struct Sprite *sprite); +static void Anim_GlowPurple(struct Sprite *sprite); +static void Anim_BackAndLunge(struct Sprite *sprite); +static void Anim_BackFlip(struct Sprite *sprite); +static void Anim_Flicker(struct Sprite *sprite); +static void Anim_BackFlipBig(struct Sprite *sprite); +static void Anim_FrontFlip(struct Sprite *sprite); +static void Anim_TumblingFrontFlip(struct Sprite *sprite); +static void Anim_Figure8(struct Sprite *sprite); +static void Anim_FlashYellow(struct Sprite *sprite); +static void Anim_SwingConcave_FastShort(struct Sprite *sprite); +static void Anim_SwingConvex_FastShort(struct Sprite *sprite); +static void Anim_RotateUpSlamDown(struct Sprite *sprite); +static void Anim_DeepVerticalSquishBounce(struct Sprite *sprite); +static void Anim_HorizontalJumps(struct Sprite *sprite); +static void Anim_HorizontalJumpsVerticalStretch(struct Sprite *sprite); +static void Anim_RotateToSides_Fast(struct Sprite *sprite); +static void Anim_RotateUpToSides(struct Sprite *sprite); +static void Anim_FlickerIncreasing(struct Sprite *sprite); +static void Anim_TipHopForward(struct Sprite *sprite); +static void Anim_PivotShake(struct Sprite *sprite); +static void Anim_TipAndShake(struct Sprite *sprite); +static void Anim_VibrateToCorners(struct Sprite *sprite); +static void Anim_GrowInStages(struct Sprite *sprite); +static void Anim_VerticalSpring(struct Sprite *sprite); +static void Anim_VerticalRepeatedSpring(struct Sprite *sprite); +static void Anim_SpringRising(struct Sprite *sprite); +static void Anim_HorizontalSpring(struct Sprite *sprite); +static void Anim_HorizontalRepeatedSpring_Slow(struct Sprite *sprite); +static void Anim_HorizontalSlideShrink(struct Sprite *sprite); +static void Anim_LungeGrow(struct Sprite *sprite); +static void Anim_CircleIntoBackground(struct Sprite *sprite); +static void Anim_RapidHorizontalHops(struct Sprite *sprite); +static void Anim_FourPetal(struct Sprite *sprite); +static void Anim_VerticalSquishBounce_Slow(struct Sprite *sprite); +static void Anim_HorizontalSlide_Slow(struct Sprite *sprite); +static void Anim_VerticalSlide_Slow(struct Sprite *sprite); +static void Anim_BounceRotateToSides_Small(struct Sprite *sprite); +static void Anim_BounceRotateToSides_Slow(struct Sprite *sprite); +static void Anim_BounceRotateToSides_SmallSlow(struct Sprite *sprite); +static void Anim_ZigzagSlow(struct Sprite *sprite); +static void Anim_HorizontalShake_Slow(struct Sprite *sprite); +static void Anim_VertialShake_Slow(struct Sprite *sprite); +static void Anim_Twist_Twice(struct Sprite *sprite); +static void Anim_CircleCounterclockwise_Slow(struct Sprite *sprite); +static void Anim_VerticalShakeTwice_Slow(struct Sprite *sprite); +static void Anim_VerticalSlideWobble_Small(struct Sprite *sprite); +static void Anim_VerticalJumps_Small(struct Sprite *sprite); +static void Anim_Spin(struct Sprite *sprite); +static void Anim_TumblingFrontFlip_Twice(struct Sprite *sprite); +static void Anim_DeepVerticalSquishBounce_Twice(struct Sprite *sprite); +static void Anim_HorizontalJumpsVerticalStretch_Twice(struct Sprite *sprite); +static void Anim_VerticalShakeBack(struct Sprite *sprite); +static void Anim_VerticalShakeBack_Slow(struct Sprite *sprite); +static void Anim_VerticalShakeHorizontalSlide_Slow(struct Sprite *sprite); +static void Anim_VerticalStretchBothEnds_Slow(struct Sprite *sprite); +static void Anim_HorizontalStretchFar_Slow(struct Sprite *sprite); +static void Anim_VerticalShakeLowTwice(struct Sprite *sprite); +static void Anim_HorizontalShake_Fast(struct Sprite *sprite); +static void Anim_HorizontalSlide_Fast(struct Sprite *sprite); +static void Anim_HorizontalVibrate_Fast(struct Sprite *sprite); +static void Anim_HorizontalVibrate_Fastest(struct Sprite *sprite); +static void Anim_VerticalShakeBack_Fast(struct Sprite *sprite); +static void Anim_VerticalShakeLowTwice_Slow(struct Sprite *sprite); +static void Anim_VerticalShakeLowTwice_Fast(struct Sprite *sprite); +static void Anim_CircleCounterclockwise_Long(struct Sprite *sprite); +static void Anim_GrowStutter_Slow(struct Sprite *sprite); +static void Anim_VerticalShakeHorizontalSlide(struct Sprite *sprite); +static void Anim_VerticalShakeHorizontalSlide_Fast(struct Sprite *sprite); +static void Anim_TriangleDown_Slow(struct Sprite *sprite); +static void Anim_TriangleDown(struct Sprite *sprite); +static void Anim_TriangleDown_Fast(struct Sprite *sprite); +static void Anim_Grow(struct Sprite *sprite); +static void Anim_Grow_Twice(struct Sprite *sprite); +static void Anim_HorizontalSpring_Fast(struct Sprite *sprite); +static void Anim_HorizontalSpring_Slow(struct Sprite *sprite); +static void Anim_HorizontalRepeatedSpring_Fast(struct Sprite *sprite); +static void Anim_HorizontalRepeatedSpring(struct Sprite *sprite); +static void Anim_ShrinkGrow_Fast(struct Sprite *sprite); +static void Anim_ShrinkGrow_Slow(struct Sprite *sprite); +static void Anim_VerticalStretchBothEnds(struct Sprite *sprite); +static void Anim_VerticalStretchBothEnds_Twice(struct Sprite *sprite); +static void Anim_HorizontalStretchFar_Twice(struct Sprite *sprite); +static void Anim_HorizontalStretchFar(struct Sprite *sprite); +static void Anim_GrowStutter_Twice(struct Sprite *sprite); +static void Anim_GrowStutter(struct Sprite *sprite); +static void Anim_ConcaveArcLarge_Slow(struct Sprite *sprite); +static void Anim_ConcaveArcLarge(struct Sprite *sprite); +static void Anim_ConcaveArcLarge_Twice(struct Sprite *sprite); +static void Anim_ConvexDoubleArc_Slow(struct Sprite *sprite); +static void Anim_ConvexDoubleArc(struct Sprite *sprite); +static void Anim_ConvexDoubleArc_Twice(struct Sprite *sprite); +static void Anim_ConcaveArcSmall_Slow(struct Sprite *sprite); +static void Anim_ConcaveArcSmall(struct Sprite *sprite); +static void Anim_ConcaveArcSmall_Twice(struct Sprite *sprite); +static void Anim_HorizontalDip(struct Sprite *sprite); +static void Anim_HorizontalDip_Fast(struct Sprite *sprite); +static void Anim_HorizontalDip_Twice(struct Sprite *sprite); +static void Anim_ShrinkGrowVibrate_Fast(struct Sprite *sprite); +static void Anim_ShrinkGrowVibrate(struct Sprite *sprite); +static void Anim_ShrinkGrowVibrate_Slow(struct Sprite *sprite); +static void Anim_JoltRight_Fast(struct Sprite *sprite); +static void Anim_JoltRight(struct Sprite *sprite); +static void Anim_JoltRight_Slow(struct Sprite *sprite); +static void Anim_ShakeFlashYellow_Fast(struct Sprite *sprite); +static void Anim_ShakeFlashYellow(struct Sprite *sprite); +static void Anim_ShakeFlashYellow_Slow(struct Sprite *sprite); +static void Anim_ShakeGlowRed_Fast(struct Sprite *sprite); +static void Anim_ShakeGlowRed(struct Sprite *sprite); +static void Anim_ShakeGlowRed_Slow(struct Sprite *sprite); +static void Anim_ShakeGlowGreen_Fast(struct Sprite *sprite); +static void Anim_ShakeGlowGreen(struct Sprite *sprite); +static void Anim_ShakeGlowGreen_Slow(struct Sprite *sprite); +static void Anim_ShakeGlowBlue_Fast(struct Sprite *sprite); +static void Anim_ShakeGlowBlue(struct Sprite *sprite); +static void Anim_ShakeGlowBlue_Slow(struct Sprite *sprite); -#define STRUCT_COUNT 4 +static void WaitAnimEnd(struct Sprite *sprite); -// IWRAM bss -static struct UnkAnimStruct sUnknown_03001240[STRUCT_COUNT]; -static u8 sUnknown_03001270; -static bool32 sUnknown_03001274; +static struct PokemonAnimData sAnims[MAX_BATTLERS_COUNT]; +static u8 sAnimIdx; +static bool32 sIsSummaryAnim; -// const rom data static const u8 sSpeciesToBackAnimSet[] = { - [SPECIES_BULBASAUR] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_IVYSAUR] = BACK_ANIM_H_SLIDE, - [SPECIES_VENUSAUR] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_CHARMANDER] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, + [SPECIES_BULBASAUR] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_IVYSAUR] = BACK_ANIM_H_SLIDE, + [SPECIES_VENUSAUR] = BACK_ANIM_H_SHAKE, + [SPECIES_CHARMANDER] = BACK_ANIM_CONCAVE_ARC_SMALL, [SPECIES_CHARMELEON] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_CHARIZARD] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_SQUIRTLE] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_WARTORTLE] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_BLASTOISE] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_CATERPIE] = BACK_ANIM_H_SLIDE, - [SPECIES_METAPOD] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_BUTTERFREE] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_WEEDLE] = BACK_ANIM_H_SLIDE, - [SPECIES_KAKUNA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_BEEDRILL] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_PIDGEY] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_PIDGEOTTO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_PIDGEOT] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_RATTATA] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_RATICATE] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_SPEAROW] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_FEAROW] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_EKANS] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_ARBOK] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_PIKACHU] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE, - [SPECIES_RAICHU] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE, - [SPECIES_SANDSHREW] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_SANDSLASH] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_NIDORAN_F] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_NIDORINA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_NIDOQUEEN] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_NIDORAN_M] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_NIDORINO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_NIDOKING] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_CLEFAIRY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_CLEFABLE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_VULPIX] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_NINETALES] = BACK_ANIM_H_SLIDE_QUICK, + [SPECIES_CHARIZARD] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_SQUIRTLE] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_WARTORTLE] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_BLASTOISE] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_CATERPIE] = BACK_ANIM_H_SLIDE, + [SPECIES_METAPOD] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_BUTTERFREE] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_WEEDLE] = BACK_ANIM_H_SLIDE, + [SPECIES_KAKUNA] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_BEEDRILL] = BACK_ANIM_H_VIBRATE, + [SPECIES_PIDGEY] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_PIDGEOTTO] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_PIDGEOT] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_RATTATA] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_RATICATE] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_SPEAROW] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_FEAROW] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_EKANS] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_ARBOK] = BACK_ANIM_V_SHAKE, + [SPECIES_PIKACHU] = BACK_ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_RAICHU] = BACK_ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_SANDSHREW] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_SANDSLASH] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_NIDORAN_F] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_NIDORINA] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_NIDOQUEEN] = BACK_ANIM_V_SHAKE, + [SPECIES_NIDORAN_M] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_NIDORINO] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_NIDOKING] = BACK_ANIM_V_SHAKE, + [SPECIES_CLEFAIRY] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_CLEFABLE] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_VULPIX] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_NINETALES] = BACK_ANIM_H_VIBRATE, [SPECIES_JIGGLYPUFF] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_WIGGLYTUFF] = BACK_ANIM_GROW_1, - [SPECIES_ZUBAT] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_GOLBAT] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_ODDISH] = BACK_ANIM_H_SLIDE, - [SPECIES_GLOOM] = BACK_ANIM_H_SLIDE, - [SPECIES_VILEPLUME] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_PARAS] = BACK_ANIM_H_SLIDE, - [SPECIES_PARASECT] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_VENONAT] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_VENOMOTH] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_DIGLETT] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_DUGTRIO] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_MEOWTH] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_PERSIAN] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_PSYDUCK] = BACK_ANIM_H_SLIDE, - [SPECIES_GOLDUCK] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_MANKEY] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_PRIMEAPE] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_GROWLITHE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_ARCANINE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_POLIWAG] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_POLIWHIRL] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_POLIWRATH] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_ABRA] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_KADABRA] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_ALAKAZAM] = BACK_ANIM_GROW_2, - [SPECIES_MACHOP] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MACHOKE] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_MACHAMP] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_BELLSPROUT] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_WEEPINBELL] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_VICTREEBEL] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_TENTACOOL] = BACK_ANIM_H_SLIDE, + [SPECIES_WIGGLYTUFF] = BACK_ANIM_GROW, + [SPECIES_ZUBAT] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_GOLBAT] = BACK_ANIM_V_SHAKE, + [SPECIES_ODDISH] = BACK_ANIM_H_SLIDE, + [SPECIES_GLOOM] = BACK_ANIM_H_SLIDE, + [SPECIES_VILEPLUME] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_PARAS] = BACK_ANIM_H_SLIDE, + [SPECIES_PARASECT] = BACK_ANIM_H_SHAKE, + [SPECIES_VENONAT] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_VENOMOTH] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_DIGLETT] = BACK_ANIM_V_SHAKE, + [SPECIES_DUGTRIO] = BACK_ANIM_V_SHAKE, + [SPECIES_MEOWTH] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_PERSIAN] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_PSYDUCK] = BACK_ANIM_H_SLIDE, + [SPECIES_GOLDUCK] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_MANKEY] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_PRIMEAPE] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_GROWLITHE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_ARCANINE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_POLIWAG] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_POLIWHIRL] = BACK_ANIM_V_SHAKE, + [SPECIES_POLIWRATH] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_ABRA] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_KADABRA] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_ALAKAZAM] = BACK_ANIM_GROW_STUTTER, + [SPECIES_MACHOP] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_MACHOKE] = BACK_ANIM_V_SHAKE, + [SPECIES_MACHAMP] = BACK_ANIM_V_SHAKE, + [SPECIES_BELLSPROUT] = BACK_ANIM_V_STRETCH, + [SPECIES_WEEPINBELL] = BACK_ANIM_V_STRETCH, + [SPECIES_VICTREEBEL] = BACK_ANIM_V_STRETCH, + [SPECIES_TENTACOOL] = BACK_ANIM_H_SLIDE, [SPECIES_TENTACRUEL] = BACK_ANIM_H_SLIDE, - [SPECIES_GEODUDE] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_GRAVELER] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_GOLEM] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_PONYTA] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_RAPIDASH] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SLOWPOKE] = BACK_ANIM_H_SLIDE, - [SPECIES_SLOWBRO] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_MAGNEMITE] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_MAGNETON] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_FARFETCHD] = BACK_ANIM_H_SLIDE, - [SPECIES_DODUO] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_DODRIO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SEEL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_DEWGONG] = BACK_ANIM_H_SLIDE, - [SPECIES_GRIMER] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_MUK] = BACK_ANIM_HORIZONTAL_STRETCH, - [SPECIES_SHELLDER] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_CLOYSTER] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_GASTLY] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_HAUNTER] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_GENGAR] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_ONIX] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_DROWZEE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_HYPNO] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_KRABBY] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_KINGLER] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_VOLTORB] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_ELECTRODE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_EXEGGCUTE] = BACK_ANIM_H_SLIDE, - [SPECIES_EXEGGUTOR] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_CUBONE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MAROWAK] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_HITMONLEE] = BACK_ANIM_H_SLIDE, - [SPECIES_HITMONCHAN] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_LICKITUNG] = BACK_ANIM_H_SLIDE, - [SPECIES_KOFFING] = BACK_ANIM_GROW_1, - [SPECIES_WEEZING] = BACK_ANIM_GROW_1, - [SPECIES_RHYHORN] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_RHYDON] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_CHANSEY] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_TANGELA] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_KANGASKHAN] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_HORSEA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SEADRA] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_GOLDEEN] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_SEAKING] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_STARYU] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_STARMIE] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_MR_MIME] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_SCYTHER] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_JYNX] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_ELECTABUZZ] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE, - [SPECIES_MAGMAR] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_PINSIR] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_TAUROS] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_MAGIKARP] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_GYARADOS] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_LAPRAS] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_DITTO] = BACK_ANIM_SHRINK_GROW_1, - [SPECIES_EEVEE] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_VAPOREON] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_JOLTEON] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE, - [SPECIES_FLAREON] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_PORYGON] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_OMANYTE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_OMASTAR] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_KABUTO] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_KABUTOPS] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_GEODUDE] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_GRAVELER] = BACK_ANIM_H_SHAKE, + [SPECIES_GOLEM] = BACK_ANIM_H_SHAKE, + [SPECIES_PONYTA] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_RAPIDASH] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_SLOWPOKE] = BACK_ANIM_H_SLIDE, + [SPECIES_SLOWBRO] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_MAGNEMITE] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_MAGNETON] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_FARFETCHD] = BACK_ANIM_H_SLIDE, + [SPECIES_DODUO] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_DODRIO] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_SEEL] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_DEWGONG] = BACK_ANIM_H_SLIDE, + [SPECIES_GRIMER] = BACK_ANIM_V_STRETCH, + [SPECIES_MUK] = BACK_ANIM_H_STRETCH, + [SPECIES_SHELLDER] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_CLOYSTER] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_GASTLY] = BACK_ANIM_H_VIBRATE, + [SPECIES_HAUNTER] = BACK_ANIM_H_VIBRATE, + [SPECIES_GENGAR] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_ONIX] = BACK_ANIM_V_SHAKE, + [SPECIES_DROWZEE] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_HYPNO] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_KRABBY] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_KINGLER] = BACK_ANIM_V_SHAKE, + [SPECIES_VOLTORB] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_ELECTRODE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_EXEGGCUTE] = BACK_ANIM_H_SLIDE, + [SPECIES_EXEGGUTOR] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_CUBONE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_MAROWAK] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_HITMONLEE] = BACK_ANIM_H_SLIDE, + [SPECIES_HITMONCHAN] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_LICKITUNG] = BACK_ANIM_H_SLIDE, + [SPECIES_KOFFING] = BACK_ANIM_GROW, + [SPECIES_WEEZING] = BACK_ANIM_GROW, + [SPECIES_RHYHORN] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_RHYDON] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_CHANSEY] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_TANGELA] = BACK_ANIM_V_STRETCH, + [SPECIES_KANGASKHAN] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_HORSEA] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_SEADRA] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_GOLDEEN] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_SEAKING] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_STARYU] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_STARMIE] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_MR_MIME] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_SCYTHER] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_JYNX] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_ELECTABUZZ] = BACK_ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_MAGMAR] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_PINSIR] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_TAUROS] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_MAGIKARP] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_GYARADOS] = BACK_ANIM_V_SHAKE, + [SPECIES_LAPRAS] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_DITTO] = BACK_ANIM_SHRINK_GROW, + [SPECIES_EEVEE] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_VAPOREON] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_JOLTEON] = BACK_ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_FLAREON] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_PORYGON] = BACK_ANIM_H_VIBRATE, + [SPECIES_OMANYTE] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_OMASTAR] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_KABUTO] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_KABUTOPS] = BACK_ANIM_JOLT_RIGHT, [SPECIES_AERODACTYL] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SNORLAX] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_ARTICUNO] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_ZAPDOS] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE, - [SPECIES_MOLTRES] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_DRATINI] = BACK_ANIM_H_SLIDE, - [SPECIES_DRAGONAIR] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_DRAGONITE] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_MEWTWO] = BACK_ANIM_GROW_2, - [SPECIES_MEW] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_CHIKORITA] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_BAYLEEF] = BACK_ANIM_H_SLIDE, - [SPECIES_MEGANIUM] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_CYNDAQUIL] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_QUILAVA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_TYPHLOSION] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_TOTODILE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_CROCONAW] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_FERALIGATR] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_SENTRET] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_FURRET] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_HOOTHOOT] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_NOCTOWL] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_LEDYBA] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_LEDIAN] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_SPINARAK] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_ARIADOS] = BACK_ANIM_H_SLIDE, - [SPECIES_CROBAT] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_CHINCHOU] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_LANTURN] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE, - [SPECIES_PICHU] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_CLEFFA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_IGGLYBUFF] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_TOGEPI] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_TOGETIC] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_NATU] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_XATU] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_MAREEP] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_FLAAFFY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_AMPHAROS] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE, - [SPECIES_BELLOSSOM] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_MARILL] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_AZUMARILL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SUDOWOODO] = BACK_ANIM_H_SLIDE, - [SPECIES_POLITOED] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_HOPPIP] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_SKIPLOOM] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_JUMPLUFF] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_AIPOM] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_SUNKERN] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SUNFLORA] = BACK_ANIM_H_SLIDE, - [SPECIES_YANMA] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_WOOPER] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_QUAGSIRE] = BACK_ANIM_H_SLIDE, - [SPECIES_ESPEON] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_UMBREON] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_MURKROW] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_SLOWKING] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_MISDREAVUS] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_UNOWN] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_WOBBUFFET] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_GIRAFARIG] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_PINECO] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_FORRETRESS] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_DUNSPARCE] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_GLIGAR] = BACK_ANIM_SHRINK_GROW_1, - [SPECIES_STEELIX] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_SNUBBULL] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_GRANBULL] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_QWILFISH] = BACK_ANIM_GROW_2, - [SPECIES_SCIZOR] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SHUCKLE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_HERACROSS] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SNEASEL] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_TEDDIURSA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_URSARING] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_SLUGMA] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_MAGCARGO] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_SWINUB] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_PILOSWINE] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_CORSOLA] = BACK_ANIM_H_SLIDE, - [SPECIES_REMORAID] = BACK_ANIM_H_SLIDE, - [SPECIES_OCTILLERY] = BACK_ANIM_SHRINK_GROW_1, - [SPECIES_DELIBIRD] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_MANTINE] = BACK_ANIM_H_SLIDE, - [SPECIES_SKARMORY] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_HOUNDOUR] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_HOUNDOOM] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_KINGDRA] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_PHANPY] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_DONPHAN] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_PORYGON2] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_STANTLER] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SMEARGLE] = BACK_ANIM_H_SLIDE, - [SPECIES_TYROGUE] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_HITMONTOP] = BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE, - [SPECIES_SMOOCHUM] = BACK_ANIM_H_SLIDE, - [SPECIES_ELEKID] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_MAGBY] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_MILTANK] = BACK_ANIM_H_SLIDE, - [SPECIES_BLISSEY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_RAIKOU] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE, - [SPECIES_ENTEI] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_SUICUNE] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_LARVITAR] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_PUPITAR] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_TYRANITAR] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_LUGIA] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_HO_OH] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_CELEBI] = BACK_ANIM_FADE_GREEN_WITH_SHAKE, - [SPECIES_TREECKO] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_GROVYLE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SCEPTILE] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_TORCHIC] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_COMBUSKEN] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_BLAZIKEN] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_MUDKIP] = BACK_ANIM_H_SLIDE, - [SPECIES_MARSHTOMP] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_SWAMPERT] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_POOCHYENA] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_MIGHTYENA] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_ZIGZAGOON] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_LINOONE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_WURMPLE] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_SILCOON] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_BEAUTIFLY] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_CASCOON] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_DUSTOX] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_LOTAD] = BACK_ANIM_H_SLIDE, - [SPECIES_LOMBRE] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_LUDICOLO] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_SEEDOT] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_NUZLEAF] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_SHIFTRY] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_NINCADA] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_NINJASK] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_SHEDINJA] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_TAILLOW] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_SWELLOW] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SHROOMISH] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_BRELOOM] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SPINDA] = BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE, - [SPECIES_WINGULL] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_PELIPPER] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_SURSKIT] = BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1, - [SPECIES_MASQUERAIN] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_WAILMER] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_WAILORD] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_SKITTY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_DELCATTY] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_KECLEON] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_BALTOY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_CLAYDOL] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_NOSEPASS] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_TORKOAL] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_SABLEYE] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_BARBOACH] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_WHISCASH] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_LUVDISC] = BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2, - [SPECIES_CORPHISH] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_CRAWDAUNT] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_FEEBAS] = BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1, - [SPECIES_MILOTIC] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_CARVANHA] = BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2, - [SPECIES_SHARPEDO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_TRAPINCH] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_VIBRAVA] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_FLYGON] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_MAKUHITA] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_HARIYAMA] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_ELECTRIKE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MANECTRIC] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_NUMEL] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_CAMERUPT] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_SPHEAL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SEALEO] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_WALREIN] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_CACNEA] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE, - [SPECIES_CACTURNE] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_SNORUNT] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_GLALIE] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_LUNATONE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SOLROCK] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_AZURILL] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_SPOINK] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_GRUMPIG] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_PLUSLE] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_MINUN] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_MAWILE] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_MEDITITE] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_MEDICHAM] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_SWABLU] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_ALTARIA] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_WYNAUT] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE, - [SPECIES_DUSKULL] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_DUSCLOPS] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_ROSELIA] = BACK_ANIM_FADE_GREEN_WITH_SHAKE, - [SPECIES_SLAKOTH] = BACK_ANIM_H_SLIDE, - [SPECIES_VIGOROTH] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL, - [SPECIES_SLAKING] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_GULPIN] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_SWALOT] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_TROPIUS] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_WHISMUR] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_LOUDRED] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_EXPLOUD] = BACK_ANIM_GROW_2, - [SPECIES_CLAMPERL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_HUNTAIL] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_GOREBYSS] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_ABSOL] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_SHUPPET] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_BANETTE] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_SEVIPER] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_ZANGOOSE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_RELICANTH] = BACK_ANIM_H_SLIDE, - [SPECIES_ARON] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_LAIRON] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_AGGRON] = BACK_ANIM_V_SHAKE_WITH_PAUSE, - [SPECIES_CASTFORM] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_VOLBEAT] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_ILLUMISE] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_LILEEP] = BACK_ANIM_HORIZONTAL_STRETCH, - [SPECIES_CRADILY] = BACK_ANIM_VERTICAL_STRETCH, - [SPECIES_ANORITH] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_ARMALDO] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_RALTS] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_KIRLIA] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_GARDEVOIR] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_BAGON] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_SHELGON] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_SALAMENCE] = BACK_ANIM_HORIZONTAL_SHAKE, - [SPECIES_BELDUM] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE, - [SPECIES_METANG] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_METAGROSS] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_REGIROCK] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_REGICE] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_REGISTEEL] = BACK_ANIM_VERTICAL_SHAKE, - [SPECIES_KYOGRE] = BACK_ANIM_FADE_BLUE_WITH_SHAKE, - [SPECIES_GROUDON] = BACK_ANIM_FADE_RED_WITH_SHAKE, - [SPECIES_RAYQUAZA] = BACK_ANIM_GROW_2, - [SPECIES_LATIAS] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_LATIOS] = BACK_ANIM_H_SLIDE_QUICK, - [SPECIES_JIRACHI] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, - [SPECIES_DEOXYS] = BACK_ANIM_SHRINK_GROW_2, - [SPECIES_CHIMECHO] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE, + [SPECIES_SNORLAX] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_ARTICUNO] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_ZAPDOS] = BACK_ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_MOLTRES] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_DRATINI] = BACK_ANIM_H_SLIDE, + [SPECIES_DRAGONAIR] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_DRAGONITE] = BACK_ANIM_V_SHAKE, + [SPECIES_MEWTWO] = BACK_ANIM_GROW_STUTTER, + [SPECIES_MEW] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_CHIKORITA] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_BAYLEEF] = BACK_ANIM_H_SLIDE, + [SPECIES_MEGANIUM] = BACK_ANIM_V_SHAKE, + [SPECIES_CYNDAQUIL] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_QUILAVA] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_TYPHLOSION] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_TOTODILE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_CROCONAW] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_FERALIGATR] = BACK_ANIM_V_SHAKE, + [SPECIES_SENTRET] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_FURRET] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_HOOTHOOT] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_NOCTOWL] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_LEDYBA] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_LEDIAN] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_SPINARAK] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_ARIADOS] = BACK_ANIM_H_SLIDE, + [SPECIES_CROBAT] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_CHINCHOU] = BACK_ANIM_V_STRETCH, + [SPECIES_LANTURN] = BACK_ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_PICHU] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_CLEFFA] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_IGGLYBUFF] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_TOGEPI] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_TOGETIC] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_NATU] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_XATU] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_MAREEP] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_FLAAFFY] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_AMPHAROS] = BACK_ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_BELLOSSOM] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_MARILL] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_AZUMARILL] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_SUDOWOODO] = BACK_ANIM_H_SLIDE, + [SPECIES_POLITOED] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_HOPPIP] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_SKIPLOOM] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_JUMPLUFF] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_AIPOM] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_SUNKERN] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_SUNFLORA] = BACK_ANIM_H_SLIDE, + [SPECIES_YANMA] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_WOOPER] = BACK_ANIM_V_STRETCH, + [SPECIES_QUAGSIRE] = BACK_ANIM_H_SLIDE, + [SPECIES_ESPEON] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_UMBREON] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_MURKROW] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_SLOWKING] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_MISDREAVUS] = BACK_ANIM_H_VIBRATE, + [SPECIES_UNOWN] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_WOBBUFFET] = BACK_ANIM_V_STRETCH, + [SPECIES_GIRAFARIG] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_PINECO] = BACK_ANIM_H_SHAKE, + [SPECIES_FORRETRESS] = BACK_ANIM_V_SHAKE, + [SPECIES_DUNSPARCE] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_GLIGAR] = BACK_ANIM_SHRINK_GROW, + [SPECIES_STEELIX] = BACK_ANIM_V_SHAKE, + [SPECIES_SNUBBULL] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_GRANBULL] = BACK_ANIM_V_SHAKE, + [SPECIES_QWILFISH] = BACK_ANIM_GROW_STUTTER, + [SPECIES_SCIZOR] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_SHUCKLE] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_HERACROSS] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_SNEASEL] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_TEDDIURSA] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_URSARING] = BACK_ANIM_V_SHAKE, + [SPECIES_SLUGMA] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_MAGCARGO] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_SWINUB] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_PILOSWINE] = BACK_ANIM_H_SHAKE, + [SPECIES_CORSOLA] = BACK_ANIM_H_SLIDE, + [SPECIES_REMORAID] = BACK_ANIM_H_SLIDE, + [SPECIES_OCTILLERY] = BACK_ANIM_SHRINK_GROW, + [SPECIES_DELIBIRD] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_MANTINE] = BACK_ANIM_H_SLIDE, + [SPECIES_SKARMORY] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_HOUNDOUR] = BACK_ANIM_V_SHAKE, + [SPECIES_HOUNDOOM] = BACK_ANIM_V_SHAKE, + [SPECIES_KINGDRA] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_PHANPY] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_DONPHAN] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_PORYGON2] = BACK_ANIM_H_VIBRATE, + [SPECIES_STANTLER] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_SMEARGLE] = BACK_ANIM_H_SLIDE, + [SPECIES_TYROGUE] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_HITMONTOP] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + [SPECIES_SMOOCHUM] = BACK_ANIM_H_SLIDE, + [SPECIES_ELEKID] = BACK_ANIM_H_SHAKE, + [SPECIES_MAGBY] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_MILTANK] = BACK_ANIM_H_SLIDE, + [SPECIES_BLISSEY] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_RAIKOU] = BACK_ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_ENTEI] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_SUICUNE] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_LARVITAR] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_PUPITAR] = BACK_ANIM_V_SHAKE, + [SPECIES_TYRANITAR] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_LUGIA] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_HO_OH] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_CELEBI] = BACK_ANIM_SHAKE_GLOW_GREEN, + [SPECIES_TREECKO] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_GROVYLE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_SCEPTILE] = BACK_ANIM_V_SHAKE, + [SPECIES_TORCHIC] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_COMBUSKEN] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_BLAZIKEN] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_MUDKIP] = BACK_ANIM_H_SLIDE, + [SPECIES_MARSHTOMP] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_SWAMPERT] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_POOCHYENA] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_MIGHTYENA] = BACK_ANIM_H_SHAKE, + [SPECIES_ZIGZAGOON] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_LINOONE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_WURMPLE] = BACK_ANIM_V_STRETCH, + [SPECIES_SILCOON] = BACK_ANIM_H_SHAKE, + [SPECIES_BEAUTIFLY] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_CASCOON] = BACK_ANIM_H_SHAKE, + [SPECIES_DUSTOX] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_LOTAD] = BACK_ANIM_H_SLIDE, + [SPECIES_LOMBRE] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_LUDICOLO] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_SEEDOT] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_NUZLEAF] = BACK_ANIM_V_SHAKE, + [SPECIES_SHIFTRY] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_NINCADA] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_NINJASK] = BACK_ANIM_H_VIBRATE, + [SPECIES_SHEDINJA] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_TAILLOW] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_SWELLOW] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_SHROOMISH] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_BRELOOM] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_SPINDA] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + [SPECIES_WINGULL] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_PELIPPER] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_SURSKIT] = BACK_ANIM_H_SPRING, + [SPECIES_MASQUERAIN] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_WAILMER] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_WAILORD] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_SKITTY] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_DELCATTY] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_KECLEON] = BACK_ANIM_H_VIBRATE, + [SPECIES_BALTOY] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_CLAYDOL] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_NOSEPASS] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_TORKOAL] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_SABLEYE] = BACK_ANIM_H_VIBRATE, + [SPECIES_BARBOACH] = BACK_ANIM_V_STRETCH, + [SPECIES_WHISCASH] = BACK_ANIM_V_SHAKE, + [SPECIES_LUVDISC] = BACK_ANIM_H_SPRING_REPEATED, + [SPECIES_CORPHISH] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_CRAWDAUNT] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_FEEBAS] = BACK_ANIM_H_SPRING, + [SPECIES_MILOTIC] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_CARVANHA] = BACK_ANIM_H_SPRING_REPEATED, + [SPECIES_SHARPEDO] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_TRAPINCH] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_VIBRAVA] = BACK_ANIM_H_VIBRATE, + [SPECIES_FLYGON] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_MAKUHITA] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_HARIYAMA] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_ELECTRIKE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_MANECTRIC] = BACK_ANIM_V_SHAKE, + [SPECIES_NUMEL] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_CAMERUPT] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_SPHEAL] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_SEALEO] = BACK_ANIM_V_SHAKE, + [SPECIES_WALREIN] = BACK_ANIM_V_SHAKE, + [SPECIES_CACNEA] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_CACTURNE] = BACK_ANIM_H_SHAKE, + [SPECIES_SNORUNT] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_GLALIE] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_LUNATONE] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_SOLROCK] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_AZURILL] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_SPOINK] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_GRUMPIG] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_PLUSLE] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_MINUN] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_MAWILE] = BACK_ANIM_V_SHAKE, + [SPECIES_MEDITITE] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_MEDICHAM] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_SWABLU] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_ALTARIA] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_WYNAUT] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_DUSKULL] = BACK_ANIM_H_VIBRATE, + [SPECIES_DUSCLOPS] = BACK_ANIM_H_VIBRATE, + [SPECIES_ROSELIA] = BACK_ANIM_SHAKE_GLOW_GREEN, + [SPECIES_SLAKOTH] = BACK_ANIM_H_SLIDE, + [SPECIES_VIGOROTH] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_SLAKING] = BACK_ANIM_H_SHAKE, + [SPECIES_GULPIN] = BACK_ANIM_V_STRETCH, + [SPECIES_SWALOT] = BACK_ANIM_V_STRETCH, + [SPECIES_TROPIUS] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_WHISMUR] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_LOUDRED] = BACK_ANIM_V_SHAKE, + [SPECIES_EXPLOUD] = BACK_ANIM_GROW_STUTTER, + [SPECIES_CLAMPERL] = BACK_ANIM_DIP_RIGHT_SIDE, + [SPECIES_HUNTAIL] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_GOREBYSS] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_ABSOL] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_SHUPPET] = BACK_ANIM_H_VIBRATE, + [SPECIES_BANETTE] = BACK_ANIM_H_VIBRATE, + [SPECIES_SEVIPER] = BACK_ANIM_V_STRETCH, + [SPECIES_ZANGOOSE] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_RELICANTH] = BACK_ANIM_H_SLIDE, + [SPECIES_ARON] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_LAIRON] = BACK_ANIM_V_SHAKE, + [SPECIES_AGGRON] = BACK_ANIM_V_SHAKE_LOW, + [SPECIES_CASTFORM] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_VOLBEAT] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_ILLUMISE] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_LILEEP] = BACK_ANIM_H_STRETCH, + [SPECIES_CRADILY] = BACK_ANIM_V_STRETCH, + [SPECIES_ANORITH] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_ARMALDO] = BACK_ANIM_V_SHAKE, + [SPECIES_RALTS] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_KIRLIA] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_GARDEVOIR] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_BAGON] = BACK_ANIM_V_SHAKE, + [SPECIES_SHELGON] = BACK_ANIM_V_SHAKE, + [SPECIES_SALAMENCE] = BACK_ANIM_H_SHAKE, + [SPECIES_BELDUM] = BACK_ANIM_TRIANGLE_DOWN, + [SPECIES_METANG] = BACK_ANIM_JOLT_RIGHT, + [SPECIES_METAGROSS] = BACK_ANIM_V_SHAKE, + [SPECIES_REGIROCK] = BACK_ANIM_V_SHAKE, + [SPECIES_REGICE] = BACK_ANIM_V_SHAKE, + [SPECIES_REGISTEEL] = BACK_ANIM_V_SHAKE, + [SPECIES_KYOGRE] = BACK_ANIM_SHAKE_GLOW_BLUE, + [SPECIES_GROUDON] = BACK_ANIM_SHAKE_GLOW_RED, + [SPECIES_RAYQUAZA] = BACK_ANIM_GROW_STUTTER, + [SPECIES_LATIAS] = BACK_ANIM_H_VIBRATE, + [SPECIES_LATIOS] = BACK_ANIM_H_VIBRATE, + [SPECIES_JIRACHI] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_DEOXYS] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_CHIMECHO] = BACK_ANIM_CONVEX_DOUBLE_ARC, }; -static const u8 sUnknown_0860AA64[][2] = +// Equivalent to struct YellowFlashData, but doesn't match as a struct +static const u8 sYellowFlashData[][2] = { - {0, 5}, - {1, 1}, - {0, 15}, - {1, 4}, - {0, 2}, - {1, 2}, - {0, 2}, - {1, 2}, - {0, 2}, - {1, 2}, - {0, 2}, - {1, 2}, - {0, 2}, - {0, 0xFF} + {FALSE, 5}, + { TRUE, 1}, + {FALSE, 15}, + { TRUE, 4}, + {FALSE, 2}, + { TRUE, 2}, + {FALSE, 2}, + { TRUE, 2}, + {FALSE, 2}, + { TRUE, 2}, + {FALSE, 2}, + { TRUE, 2}, + {FALSE, 2}, + {FALSE, -1} }; -static const u8 sUnknown_0860AA80[][2] = +static const u8 sVerticalShakeData[][2] = { - {6, 30}, - {0xFE, 15}, - {6, 30}, - {0xFF, 0} + { 6, 30}, + {-2, 15}, + { 6, 30}, + {-1, 0} }; static void (* const sMonAnimFunctions[])(struct Sprite *sprite) = { - pokemonanimfunc_00, - pokemonanimfunc_01, - pokemonanimfunc_02, - pokemonanimfunc_03, - pokemonanimfunc_04, - pokemonanimfunc_05, - pokemonanimfunc_06, - pokemonanimfunc_07, - pokemonanimfunc_08, - pokemonanimfunc_09, - pokemonanimfunc_0A, - pokemonanimfunc_0B, - pokemonanimfunc_0C, - pokemonanimfunc_0D, - pokemonanimfunc_0E, - pokemonanimfunc_0F, - pokemonanimfunc_10, - pokemonanimfunc_11, - pokemonanimfunc_12, - pokemonanimfunc_13, - pokemonanimfunc_14, - pokemonanimfunc_15, - pokemonanimfunc_16, - pokemonanimfunc_17, - pokemonanimfunc_18, - pokemonanimfunc_19, - pokemonanimfunc_1A, - pokemonanimfunc_1B, - pokemonanimfunc_1C, - pokemonanimfunc_1D, - pokemonanimfunc_1E, - pokemonanimfunc_1F, - pokemonanimfunc_20, - pokemonanimfunc_21, - pokemonanimfunc_22, - pokemonanimfunc_23, - pokemonanimfunc_24, - pokemonanimfunc_25, - pokemonanimfunc_26, - pokemonanimfunc_27, - pokemonanimfunc_28, - pokemonanimfunc_29, - pokemonanimfunc_2A, - pokemonanimfunc_2B, - pokemonanimfunc_2C, - pokemonanimfunc_2D, - pokemonanimfunc_2E, - pokemonanimfunc_2F, - pokemonanimfunc_30, - pokemonanimfunc_31, - pokemonanimfunc_32, - pokemonanimfunc_33, - pokemonanimfunc_34, - pokemonanimfunc_35, - pokemonanimfunc_36, - pokemonanimfunc_37, - pokemonanimfunc_38, - pokemonanimfunc_39, - pokemonanimfunc_3A, - pokemonanimfunc_3B, - pokemonanimfunc_3C, - pokemonanimfunc_3D, - pokemonanimfunc_3E, - pokemonanimfunc_3F, - pokemonanimfunc_40, - pokemonanimfunc_41, - pokemonanimfunc_42, - pokemonanimfunc_43, - pokemonanimfunc_44, - pokemonanimfunc_45, - pokemonanimfunc_46, - pokemonanimfunc_47, - pokemonanimfunc_48, - pokemonanimfunc_49, - pokemonanimfunc_4A, - pokemonanimfunc_4B, - pokemonanimfunc_4C, - pokemonanimfunc_4D, - pokemonanimfunc_4E, - pokemonanimfunc_4F, - pokemonanimfunc_50, - pokemonanimfunc_51, - pokemonanimfunc_52, - pokemonanimfunc_53, - pokemonanimfunc_54, - pokemonanimfunc_55, - pokemonanimfunc_56, - pokemonanimfunc_57, - pokemonanimfunc_58, - pokemonanimfunc_59, - pokemonanimfunc_5A, - pokemonanimfunc_5B, - pokemonanimfunc_5C, - pokemonanimfunc_5D, - pokemonanimfunc_5E, - pokemonanimfunc_5F, - pokemonanimfunc_60, - pokemonanimfunc_61, - pokemonanimfunc_62, - pokemonanimfunc_63, - pokemonanimfunc_64, - pokemonanimfunc_65, - pokemonanimfunc_66, - pokemonanimfunc_67, - pokemonanimfunc_68, - pokemonanimfunc_69, - pokemonanimfunc_6A, - pokemonanimfunc_6B, - pokemonanimfunc_6C, - pokemonanimfunc_6D, - pokemonanimfunc_6E, - pokemonanimfunc_6F, - pokemonanimfunc_70, - pokemonanimfunc_71, - pokemonanimfunc_72, - pokemonanimfunc_73, - pokemonanimfunc_74, - pokemonanimfunc_75, - pokemonanimfunc_76, - pokemonanimfunc_77, - pokemonanimfunc_78, - pokemonanimfunc_79, - pokemonanimfunc_7A, - pokemonanimfunc_7B, - pokemonanimfunc_7C, - pokemonanimfunc_7D, - pokemonanimfunc_7E, - pokemonanimfunc_7F, - pokemonanimfunc_80, - pokemonanimfunc_81, - pokemonanimfunc_82, - pokemonanimfunc_83, - pokemonanimfunc_84, - pokemonanimfunc_85, - pokemonanimfunc_86, - pokemonanimfunc_87, - pokemonanimfunc_88, - pokemonanimfunc_89, - pokemonanimfunc_8A, - pokemonanimfunc_8B, - pokemonanimfunc_8C, - pokemonanimfunc_8D, - pokemonanimfunc_8E, - pokemonanimfunc_8F, - pokemonanimfunc_90, - pokemonanimfunc_91, - pokemonanimfunc_92, - pokemonanimfunc_93, - pokemonanimfunc_94, - pokemonanimfunc_95, - pokemonanimfunc_96 + [ANIM_V_SQUISH_AND_BOUNCE] = Anim_VerticalSquishBounce, + [ANIM_CIRCULAR_STRETCH_TWICE] = Anim_CircularStretchTwice, + [ANIM_H_VIBRATE] = Anim_HorizontalVibrate, + [ANIM_H_SLIDE] = Anim_HorizontalSlide, + [ANIM_V_SLIDE] = Anim_VerticalSlide, + [ANIM_BOUNCE_ROTATE_TO_SIDES] = Anim_BounceRotateToSides, + [ANIM_V_JUMPS_H_JUMPS] = Anim_VerticalJumpsHorizontalJumps, + [ANIM_ROTATE_TO_SIDES] = Anim_RotateToSides, // Unused + [ANIM_ROTATE_TO_SIDES_TWICE] = Anim_RotateToSides_Twice, + [ANIM_GROW_VIBRATE] = Anim_GrowVibrate, + [ANIM_ZIGZAG_FAST] = Anim_ZigzagFast, + [ANIM_SWING_CONCAVE] = Anim_SwingConcave, + [ANIM_SWING_CONCAVE_FAST] = Anim_SwingConcave_Fast, + [ANIM_SWING_CONVEX] = Anim_SwingConvex, + [ANIM_SWING_CONVEX_FAST] = Anim_SwingConvex_Fast, + [ANIM_H_SHAKE] = Anim_HorizontalShake, + [ANIM_V_SHAKE] = Anim_VerticalShake, + [ANIM_CIRCULAR_VIBRATE] = Anim_CircularVibrate, + [ANIM_TWIST] = Anim_Twist, + [ANIM_SHRINK_GROW] = Anim_ShrinkGrow, + [ANIM_CIRCLE_C_CLOCKWISE] = Anim_CircleCounterclockwise, + [ANIM_GLOW_BLACK] = Anim_GlowBlack, + [ANIM_H_STRETCH] = Anim_HorizontalStretch, + [ANIM_V_STRETCH] = Anim_VerticalStretch, + [ANIM_RISING_WOBBLE] = Anim_RisingWobble, + [ANIM_V_SHAKE_TWICE] = Anim_VerticalShakeTwice, + [ANIM_TIP_MOVE_FORWARD] = Anim_TipMoveForward, + [ANIM_H_PIVOT] = Anim_HorizontalPivot, + [ANIM_V_SLIDE_WOBBLE] = Anim_VerticalSlideWobble, + [ANIM_H_SLIDE_WOBBLE] = Anim_HorizontalSlideWobble, + [ANIM_V_JUMPS_BIG] = Anim_VerticalJumps_Big, + [ANIM_SPIN_LONG] = Anim_Spin_Long, // Unused + [ANIM_GLOW_ORANGE] = Anim_GlowOrange, + [ANIM_GLOW_RED] = Anim_GlowRed, // Unused + [ANIM_GLOW_BLUE] = Anim_GlowBlue, + [ANIM_GLOW_YELLOW] = Anim_GlowYellow, // Unused + [ANIM_GLOW_PURPLE] = Anim_GlowPurple, // Unused + [ANIM_BACK_AND_LUNGE] = Anim_BackAndLunge, + [ANIM_BACK_FLIP] = Anim_BackFlip, // Unused + [ANIM_FLICKER] = Anim_Flicker, // Unused + [ANIM_BACK_FLIP_BIG] = Anim_BackFlipBig, // Unused + [ANIM_FRONT_FLIP] = Anim_FrontFlip, + [ANIM_TUMBLING_FRONT_FLIP] = Anim_TumblingFrontFlip, // Unused + [ANIM_FIGURE_8] = Anim_Figure8, + [ANIM_FLASH_YELLOW] = Anim_FlashYellow, + [ANIM_SWING_CONCAVE_FAST_SHORT] = Anim_SwingConcave_FastShort, + [ANIM_SWING_CONVEX_FAST_SHORT] = Anim_SwingConvex_FastShort, // Unused + [ANIM_ROTATE_UP_SLAM_DOWN] = Anim_RotateUpSlamDown, + [ANIM_DEEP_V_SQUISH_AND_BOUNCE] = Anim_DeepVerticalSquishBounce, + [ANIM_H_JUMPS] = Anim_HorizontalJumps, + [ANIM_H_JUMPS_V_STRETCH] = Anim_HorizontalJumpsVerticalStretch, + [ANIM_ROTATE_TO_SIDES_FAST] = Anim_RotateToSides_Fast, // Unused + [ANIM_ROTATE_UP_TO_SIDES] = Anim_RotateUpToSides, + [ANIM_FLICKER_INCREASING] = Anim_FlickerIncreasing, + [ANIM_TIP_HOP_FORWARD] = Anim_TipHopForward, // Unused + [ANIM_PIVOT_SHAKE] = Anim_PivotShake, // Unused + [ANIM_TIP_AND_SHAKE] = Anim_TipAndShake, // Unused + [ANIM_VIBRATE_TO_CORNERS] = Anim_VibrateToCorners, // Unused + [ANIM_GROW_IN_STAGES] = Anim_GrowInStages, + [ANIM_V_SPRING] = Anim_VerticalSpring, // Unused + [ANIM_V_REPEATED_SPRING] = Anim_VerticalRepeatedSpring, // Unused + [ANIM_SPRING_RISING] = Anim_SpringRising, // Unused + [ANIM_H_SPRING] = Anim_HorizontalSpring, + [ANIM_H_REPEATED_SPRING_SLOW] = Anim_HorizontalRepeatedSpring_Slow, + [ANIM_H_SLIDE_SHRINK] = Anim_HorizontalSlideShrink, // Unused + [ANIM_LUNGE_GROW] = Anim_LungeGrow, + [ANIM_CIRCLE_INTO_BG] = Anim_CircleIntoBackground, + [ANIM_RAPID_H_HOPS] = Anim_RapidHorizontalHops, + [ANIM_FOUR_PETAL] = Anim_FourPetal, + [ANIM_V_SQUISH_AND_BOUNCE_SLOW] = Anim_VerticalSquishBounce_Slow, + [ANIM_H_SLIDE_SLOW] = Anim_HorizontalSlide_Slow, + [ANIM_V_SLIDE_SLOW] = Anim_VerticalSlide_Slow, + [ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL] = Anim_BounceRotateToSides_Small, + [ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW] = Anim_BounceRotateToSides_Slow, + [ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW] = Anim_BounceRotateToSides_SmallSlow, + [ANIM_ZIGZAG_SLOW] = Anim_ZigzagSlow, + [ANIM_H_SHAKE_SLOW] = Anim_HorizontalShake_Slow, + [ANIM_V_SHAKE_SLOW] = Anim_VertialShake_Slow, // Unused + [ANIM_TWIST_TWICE] = Anim_Twist_Twice, + [ANIM_CIRCLE_C_CLOCKWISE_SLOW] = Anim_CircleCounterclockwise_Slow, + [ANIM_V_SHAKE_TWICE_SLOW] = Anim_VerticalShakeTwice_Slow, // Unused + [ANIM_V_SLIDE_WOBBLE_SMALL] = Anim_VerticalSlideWobble_Small, + [ANIM_V_JUMPS_SMALL] = Anim_VerticalJumps_Small, + [ANIM_SPIN] = Anim_Spin, + [ANIM_TUMBLING_FRONT_FLIP_TWICE] = Anim_TumblingFrontFlip_Twice, + [ANIM_DEEP_V_SQUISH_AND_BOUNCE_TWICE] = Anim_DeepVerticalSquishBounce_Twice, // Unused + [ANIM_H_JUMPS_V_STRETCH_TWICE] = Anim_HorizontalJumpsVerticalStretch_Twice, + [ANIM_V_SHAKE_BACK] = Anim_VerticalShakeBack, + [ANIM_V_SHAKE_BACK_SLOW] = Anim_VerticalShakeBack_Slow, + [ANIM_V_SHAKE_H_SLIDE_SLOW] = Anim_VerticalShakeHorizontalSlide_Slow, + [ANIM_V_STRETCH_BOTH_ENDS_SLOW] = Anim_VerticalStretchBothEnds_Slow, + [ANIM_H_STRETCH_FAR_SLOW] = Anim_HorizontalStretchFar_Slow, + [ANIM_V_SHAKE_LOW_TWICE] = Anim_VerticalShakeLowTwice, + [ANIM_H_SHAKE_FAST] = Anim_HorizontalShake_Fast, + [ANIM_H_SLIDE_FAST] = Anim_HorizontalSlide_Fast, + [ANIM_H_VIBRATE_FAST] = Anim_HorizontalVibrate_Fast, + [ANIM_H_VIBRATE_FASTEST] = Anim_HorizontalVibrate_Fastest, + [ANIM_V_SHAKE_BACK_FAST] = Anim_VerticalShakeBack_Fast, + [ANIM_V_SHAKE_LOW_TWICE_SLOW] = Anim_VerticalShakeLowTwice_Slow, + [ANIM_V_SHAKE_LOW_TWICE_FAST] = Anim_VerticalShakeLowTwice_Fast, + [ANIM_CIRCLE_C_CLOCKWISE_LONG] = Anim_CircleCounterclockwise_Long, + [ANIM_GROW_STUTTER_SLOW] = Anim_GrowStutter_Slow, + [ANIM_V_SHAKE_H_SLIDE] = Anim_VerticalShakeHorizontalSlide, + [ANIM_V_SHAKE_H_SLIDE_FAST] = Anim_VerticalShakeHorizontalSlide_Fast, + [ANIM_TRIANGLE_DOWN_SLOW] = Anim_TriangleDown_Slow, + [ANIM_TRIANGLE_DOWN] = Anim_TriangleDown, + [ANIM_TRIANGLE_DOWN_TWICE] = Anim_TriangleDown_Fast, + [ANIM_GROW] = Anim_Grow, + [ANIM_GROW_TWICE] = Anim_Grow_Twice, + [ANIM_H_SPRING_FAST] = Anim_HorizontalSpring_Fast, + [ANIM_H_SPRING_SLOW] = Anim_HorizontalSpring_Slow, + [ANIM_H_REPEATED_SPRING_FAST] = Anim_HorizontalRepeatedSpring_Fast, + [ANIM_H_REPEATED_SPRING] = Anim_HorizontalRepeatedSpring, + [ANIM_SHRINK_GROW_FAST] = Anim_ShrinkGrow_Fast, + [ANIM_SHRINK_GROW_SLOW] = Anim_ShrinkGrow_Slow, + [ANIM_V_STRETCH_BOTH_ENDS] = Anim_VerticalStretchBothEnds, + [ANIM_V_STRETCH_BOTH_ENDS_TWICE] = Anim_VerticalStretchBothEnds_Twice, + [ANIM_H_STRETCH_FAR_TWICE] = Anim_HorizontalStretchFar_Twice, + [ANIM_H_STRETCH_FAR] = Anim_HorizontalStretchFar, + [ANIM_GROW_STUTTER_TWICE] = Anim_GrowStutter_Twice, + [ANIM_GROW_STUTTER] = Anim_GrowStutter, + [ANIM_CONCAVE_ARC_LARGE_SLOW] = Anim_ConcaveArcLarge_Slow, + [ANIM_CONCAVE_ARC_LARGE] = Anim_ConcaveArcLarge, + [ANIM_CONCAVE_ARC_LARGE_TWICE] = Anim_ConcaveArcLarge_Twice, + [ANIM_CONVEX_DOUBLE_ARC_SLOW] = Anim_ConvexDoubleArc_Slow, + [ANIM_CONVEX_DOUBLE_ARC] = Anim_ConvexDoubleArc, + [ANIM_CONVEX_DOUBLE_ARC_TWICE] = Anim_ConvexDoubleArc_Twice, + [ANIM_CONCAVE_ARC_SMALL_SLOW] = Anim_ConcaveArcSmall_Slow, + [ANIM_CONCAVE_ARC_SMALL] = Anim_ConcaveArcSmall, + [ANIM_CONCAVE_ARC_SMALL_TWICE] = Anim_ConcaveArcSmall_Twice, + [ANIM_H_DIP] = Anim_HorizontalDip, + [ANIM_H_DIP_FAST] = Anim_HorizontalDip_Fast, + [ANIM_H_DIP_TWICE] = Anim_HorizontalDip_Twice, + [ANIM_SHRINK_GROW_VIBRATE_FAST] = Anim_ShrinkGrowVibrate_Fast, + [ANIM_SHRINK_GROW_VIBRATE] = Anim_ShrinkGrowVibrate, + [ANIM_SHRINK_GROW_VIBRATE_SLOW] = Anim_ShrinkGrowVibrate_Slow, + [ANIM_JOLT_RIGHT_FAST] = Anim_JoltRight_Fast, + [ANIM_JOLT_RIGHT] = Anim_JoltRight, + [ANIM_JOLT_RIGHT_SLOW] = Anim_JoltRight_Slow, + [ANIM_SHAKE_FLASH_YELLOW_FAST] = Anim_ShakeFlashYellow_Fast, + [ANIM_SHAKE_FLASH_YELLOW] = Anim_ShakeFlashYellow, + [ANIM_SHAKE_FLASH_YELLOW_SLOW] = Anim_ShakeFlashYellow_Slow, + [ANIM_SHAKE_GLOW_RED_FAST] = Anim_ShakeGlowRed_Fast, + [ANIM_SHAKE_GLOW_RED] = Anim_ShakeGlowRed, + [ANIM_SHAKE_GLOW_RED_SLOW] = Anim_ShakeGlowRed_Slow, + [ANIM_SHAKE_GLOW_GREEN_FAST] = Anim_ShakeGlowGreen_Fast, + [ANIM_SHAKE_GLOW_GREEN] = Anim_ShakeGlowGreen, + [ANIM_SHAKE_GLOW_GREEN_SLOW] = Anim_ShakeGlowGreen_Slow, + [ANIM_SHAKE_GLOW_BLUE_FAST] = Anim_ShakeGlowBlue_Fast, + [ANIM_SHAKE_GLOW_BLUE] = Anim_ShakeGlowBlue, + [ANIM_SHAKE_GLOW_BLUE_SLOW] = Anim_ShakeGlowBlue_Slow }; -// counting from Id 1, because 0 in sSpeciesToBackAnimSet is used for mons with no back animation +// Each back anim set has 3 possible animations depending on nature +// Each of the 3 animations is a slight variation of the others +// BACK_ANIM_NONE is skipped below. GetSpeciesBackAnimSet subtracts 1 from the back anim id static const u8 sBackAnimationIds[] = { - 0x60, 0x5f, 0x02, // 1 - 0x5e, 0x03, 0x46, // 2 - 0x6d, 0x3e, 0x6e, // 3 - 0x6f, 0x70, 0x3f, // 4 - 0x71, 0x13, 0x72, // 5 - 0x6c, 0x6b, 0x3a, // 6 - 0x64, 0x14, 0x4f, // 7 - 0x5d, 0x0f, 0x4c, // 8 - 0x61, 0x57, 0x58, // 9 - 0x67, 0x66, 0x59, // 0xA - 0x74, 0x73, 0x5a, // 0xB - 0x75, 0x76, 0x5b, // 0xC - 0x77, 0x78, 0x65, // 0xD - 0x63, 0x5c, 0x62, // 0xE - 0x6a, 0x69, 0x68, // 0xF - 0x7b, 0x7a, 0x79, // 0x10 - 0x7e, 0x7d, 0x7c, // 0x11 - 0x81, 0x80, 0x7f, // 0x12 - 0x84, 0x82, 0x83, // 0x13 - 0x85, 0x86, 0x87, // 0x14 - 0x88, 0x89, 0x8a, // 0x15 - 0x8b, 0x8c, 0x8d, // 0x16 - 0x8e, 0x8f, 0x90, // 0x17 - 0x91, 0x92, 0x93, // 0x18 - 0x94, 0x95, 0x96, // 0x19 + [(BACK_ANIM_H_VIBRATE - 1) * 3] = ANIM_H_VIBRATE_FASTEST, ANIM_H_VIBRATE_FAST, ANIM_H_VIBRATE, + [(BACK_ANIM_H_SLIDE - 1) * 3] = ANIM_H_SLIDE_FAST, ANIM_H_SLIDE, ANIM_H_SLIDE_SLOW, + [(BACK_ANIM_H_SPRING - 1) * 3] = ANIM_H_SPRING_FAST, ANIM_H_SPRING, ANIM_H_SPRING_SLOW, + [(BACK_ANIM_H_SPRING_REPEATED - 1) * 3] = ANIM_H_REPEATED_SPRING_FAST, ANIM_H_REPEATED_SPRING, ANIM_H_REPEATED_SPRING_SLOW, + [(BACK_ANIM_SHRINK_GROW - 1) * 3] = ANIM_SHRINK_GROW_FAST, ANIM_SHRINK_GROW, ANIM_SHRINK_GROW_SLOW, + [(BACK_ANIM_GROW - 1) * 3] = ANIM_GROW_TWICE, ANIM_GROW, ANIM_GROW_IN_STAGES, + [(BACK_ANIM_CIRCLE_COUNTERCLOCKWISE - 1) * 3] = ANIM_CIRCLE_C_CLOCKWISE_LONG, ANIM_CIRCLE_C_CLOCKWISE, ANIM_CIRCLE_C_CLOCKWISE_SLOW, + [(BACK_ANIM_H_SHAKE - 1) * 3] = ANIM_H_SHAKE_FAST, ANIM_H_SHAKE, ANIM_H_SHAKE_SLOW, + [(BACK_ANIM_V_SHAKE - 1) * 3] = ANIM_V_SHAKE_BACK_FAST, ANIM_V_SHAKE_BACK, ANIM_V_SHAKE_BACK_SLOW, + [(BACK_ANIM_V_SHAKE_H_SLIDE - 1) * 3] = ANIM_V_SHAKE_H_SLIDE_FAST, ANIM_V_SHAKE_H_SLIDE, ANIM_V_SHAKE_H_SLIDE_SLOW, + [(BACK_ANIM_V_STRETCH - 1) * 3] = ANIM_V_STRETCH_BOTH_ENDS_TWICE, ANIM_V_STRETCH_BOTH_ENDS, ANIM_V_STRETCH_BOTH_ENDS_SLOW, + [(BACK_ANIM_H_STRETCH - 1) * 3] = ANIM_H_STRETCH_FAR_TWICE, ANIM_H_STRETCH_FAR, ANIM_H_STRETCH_FAR_SLOW, + [(BACK_ANIM_GROW_STUTTER - 1) * 3] = ANIM_GROW_STUTTER_TWICE, ANIM_GROW_STUTTER, ANIM_GROW_STUTTER_SLOW, + [(BACK_ANIM_V_SHAKE_LOW - 1) * 3] = ANIM_V_SHAKE_LOW_TWICE_FAST, ANIM_V_SHAKE_LOW_TWICE, ANIM_V_SHAKE_LOW_TWICE_SLOW, + [(BACK_ANIM_TRIANGLE_DOWN - 1) * 3] = ANIM_TRIANGLE_DOWN_TWICE, ANIM_TRIANGLE_DOWN, ANIM_TRIANGLE_DOWN_SLOW, + [(BACK_ANIM_CONCAVE_ARC_LARGE - 1) * 3] = ANIM_CONCAVE_ARC_LARGE_TWICE, ANIM_CONCAVE_ARC_LARGE, ANIM_CONCAVE_ARC_LARGE_SLOW, + [(BACK_ANIM_CONVEX_DOUBLE_ARC - 1) * 3] = ANIM_CONVEX_DOUBLE_ARC_TWICE, ANIM_CONVEX_DOUBLE_ARC, ANIM_CONVEX_DOUBLE_ARC_SLOW, + [(BACK_ANIM_CONCAVE_ARC_SMALL - 1) * 3] = ANIM_CONCAVE_ARC_SMALL_TWICE, ANIM_CONCAVE_ARC_SMALL, ANIM_CONCAVE_ARC_SMALL_SLOW, + [(BACK_ANIM_DIP_RIGHT_SIDE - 1) * 3] = ANIM_H_DIP_TWICE, ANIM_H_DIP, ANIM_H_DIP_FAST, + [(BACK_ANIM_SHRINK_GROW_VIBRATE - 1) * 3] = ANIM_SHRINK_GROW_VIBRATE_FAST, ANIM_SHRINK_GROW_VIBRATE, ANIM_SHRINK_GROW_VIBRATE_SLOW, + [(BACK_ANIM_JOLT_RIGHT - 1) * 3] = ANIM_JOLT_RIGHT_FAST, ANIM_JOLT_RIGHT, ANIM_JOLT_RIGHT_SLOW, + [(BACK_ANIM_SHAKE_FLASH_YELLOW - 1) * 3] = ANIM_SHAKE_FLASH_YELLOW_FAST, ANIM_SHAKE_FLASH_YELLOW, ANIM_SHAKE_FLASH_YELLOW_SLOW, + [(BACK_ANIM_SHAKE_GLOW_RED - 1) * 3] = ANIM_SHAKE_GLOW_RED_FAST, ANIM_SHAKE_GLOW_RED, ANIM_SHAKE_GLOW_RED_SLOW, + [(BACK_ANIM_SHAKE_GLOW_GREEN - 1) * 3] = ANIM_SHAKE_GLOW_GREEN_FAST, ANIM_SHAKE_GLOW_GREEN, ANIM_SHAKE_GLOW_GREEN_SLOW, + [(BACK_ANIM_SHAKE_GLOW_BLUE - 1) * 3] = ANIM_SHAKE_GLOW_BLUE_FAST, ANIM_SHAKE_GLOW_BLUE, ANIM_SHAKE_GLOW_BLUE_SLOW, }; static const u8 sBackAnimNatureModTable[NUM_NATURES] = { - [NATURE_HARDY] = 0x00, - [NATURE_LONELY] = 0x02, - [NATURE_BRAVE] = 0x00, - [NATURE_ADAMANT] = 0x00, - [NATURE_NAUGHTY] = 0x00, - [NATURE_BOLD] = 0x01, - [NATURE_DOCILE] = 0x01, - [NATURE_RELAXED] = 0x01, - [NATURE_IMPISH] = 0x00, - [NATURE_LAX] = 0x01, - [NATURE_TIMID] = 0x02, - [NATURE_HASTY] = 0x00, - [NATURE_SERIOUS] = 0x01, - [NATURE_JOLLY] = 0x00, - [NATURE_NAIVE] = 0x00, - [NATURE_MODEST] = 0x02, - [NATURE_MILD] = 0x02, - [NATURE_QUIET] = 0x02, - [NATURE_BASHFUL] = 0x02, - [NATURE_RASH] = 0x01, - [NATURE_CALM] = 0x01, - [NATURE_GENTLE] = 0x02, - [NATURE_SASSY] = 0x01, - [NATURE_CAREFUL] = 0x02, - [NATURE_QUIRKY] = 0x01, + [NATURE_HARDY] = 0, + [NATURE_LONELY] = 2, + [NATURE_BRAVE] = 0, + [NATURE_ADAMANT] = 0, + [NATURE_NAUGHTY] = 0, + [NATURE_BOLD] = 1, + [NATURE_DOCILE] = 1, + [NATURE_RELAXED] = 1, + [NATURE_IMPISH] = 0, + [NATURE_LAX] = 1, + [NATURE_TIMID] = 2, + [NATURE_HASTY] = 0, + [NATURE_SERIOUS] = 1, + [NATURE_JOLLY] = 0, + [NATURE_NAIVE] = 0, + [NATURE_MODEST] = 2, + [NATURE_MILD] = 2, + [NATURE_QUIET] = 2, + [NATURE_BASHFUL] = 2, + [NATURE_RASH] = 1, + [NATURE_CALM] = 1, + [NATURE_GENTLE] = 2, + [NATURE_SASSY] = 1, + [NATURE_CAREFUL] = 2, + [NATURE_QUIRKY] = 1, }; -static const union AffineAnimCmd sSpriteAffineAnim_860AD48[] = +static const union AffineAnimCmd sMonAffineAnim_0[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMDTYPE_END }; -static const union AffineAnimCmd sSpriteAffineAnim_860AD58[] = +static const union AffineAnimCmd sMonAffineAnim_1[] = { AFFINEANIMCMD_FRAME(-256, 256, 0, 0), AFFINEANIMCMDTYPE_END }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_860AD68[] = +static const union AffineAnimCmd *const sMonAffineAnims[] = { - sSpriteAffineAnim_860AD48, - sSpriteAffineAnim_860AD58 + sMonAffineAnim_0, + sMonAffineAnim_1 }; -// code static void MonAnimDummySpriteCallback(struct Sprite *sprite) { } -static void sub_817F3F0(struct Sprite *sprite, u16 index, s16 amplitudeX, s16 amplitudeY) +static void SetPosForRotation(struct Sprite *sprite, u16 index, s16 amplitudeX, s16 amplitudeY) { s16 xAdder, yAdder; @@ -847,13 +877,13 @@ static void sub_817F3F0(struct Sprite *sprite, u16 index, s16 amplitudeX, s16 am amplitudeX *= -1; amplitudeY *= -1; - sprite->pos2.x = xAdder + amplitudeX; - sprite->pos2.y = yAdder + amplitudeY; + sprite->x2 = xAdder + amplitudeX; + sprite->y2 = yAdder + amplitudeY; } u8 GetSpeciesBackAnimSet(u16 species) { - if (sSpeciesToBackAnimSet[species] != 0) + if (sSpeciesToBackAnimSet[species] != BACK_ANIM_NONE) return sSpeciesToBackAnimSet[species] - 1; else return 0; @@ -863,8 +893,8 @@ u8 GetSpeciesBackAnimSet(u16 species) #define tPtrHi data[1] #define tPtrLo data[2] #define tAnimId data[3] -#define tSaved0 data[4] -#define tSaved2 data[5] +#define tBattlerId data[4] +#define tSpeciesId data[5] // BUG: In vanilla, tPtrLo is read as an s16, so if bit 15 of the // address were to be set it would cause the pointer to be read @@ -884,23 +914,23 @@ static void Task_HandleMonAnimation(u8 taskId) if (gTasks[taskId].tState == 0) { - gTasks[taskId].tSaved0 = sprite->data[0]; - gTasks[taskId].tSaved2 = sprite->data[2]; - sprite->data[1] = 1; + gTasks[taskId].tBattlerId = sprite->data[0]; + gTasks[taskId].tSpeciesId = sprite->data[2]; + sprite->sDontFlip = TRUE; sprite->data[0] = 0; for (i = 2; i < ARRAY_COUNT(sprite->data); i++) sprite->data[i] = 0; sprite->callback = sMonAnimFunctions[gTasks[taskId].tAnimId]; - sUnknown_03001274 = FALSE; + sIsSummaryAnim = FALSE; gTasks[taskId].tState++; } if (sprite->callback == SpriteCallbackDummy) { - sprite->data[0] = gTasks[taskId].tSaved0; - sprite->data[2] = gTasks[taskId].tSaved2; + sprite->data[0] = gTasks[taskId].tBattlerId; + sprite->data[2] = gTasks[taskId].tSpeciesId; sprite->data[1] = 0; DestroyTask(taskId); @@ -910,14 +940,15 @@ static void Task_HandleMonAnimation(u8 taskId) void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId) { u8 taskId = CreateTask(Task_HandleMonAnimation, 128); - gTasks[taskId].tPtrHi = (u32)(sprite) >> 0x10; + gTasks[taskId].tPtrHi = (u32)(sprite) >> 16; gTasks[taskId].tPtrLo = (u32)(sprite); gTasks[taskId].tAnimId = frontAnimId; } void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId) { - sUnknown_03001274 = TRUE; + // sDontFlip is expected to still be FALSE here, not explicitly cleared + sIsSummaryAnim = TRUE; sprite->callback = sMonAnimFunctions[frontAnimId]; } @@ -926,12 +957,13 @@ void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet) u8 nature, taskId, animId, battlerId; taskId = CreateTask(Task_HandleMonAnimation, 128); - gTasks[taskId].tPtrHi = (u32)(sprite) >> 0x10; + gTasks[taskId].tPtrHi = (u32)(sprite) >> 16; gTasks[taskId].tPtrLo = (u32)(sprite); battlerId = sprite->data[0]; nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[battlerId]]); + // * 3 below because each back anim has 3 variants depending on nature animId = 3 * backAnimSet + sBackAnimNatureModTable[nature]; gTasks[taskId].tAnimId = sBackAnimationIds[animId]; } @@ -940,8 +972,8 @@ void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet) #undef tPtrHi #undef tPtrLo #undef tAnimId -#undef tSaved0 -#undef tSaved2 +#undef tBattlerId +#undef tSpeciesId void SetSpriteCB_MonAnimDummy(struct Sprite *sprite) { @@ -970,23 +1002,23 @@ static void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rot static void HandleStartAffineAnim(struct Sprite *sprite) { sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; - sprite->affineAnims = sSpriteAffineAnimTable_860AD68; + sprite->affineAnims = sMonAffineAnims; - if (sUnknown_03001274 == TRUE) + if (sIsSummaryAnim == TRUE) InitSpriteAffineAnim(sprite); - if (!sprite->data[1]) + if (!sprite->sDontFlip) StartSpriteAffineAnim(sprite, 1); else StartSpriteAffineAnim(sprite, 0); CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); - sprite->affineAnimPaused = 1; + sprite->affineAnimPaused = TRUE; } static void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) { - if (!sprite->data[1]) + if (!sprite->sDontFlip) { xScale *= -1; rotation *= -1; @@ -995,47 +1027,47 @@ static void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u SetAffineData(sprite, xScale, yScale, rotation); } -static void sub_817F70C(struct Sprite *sprite) +static void TryFlipX(struct Sprite *sprite) { - if (!sprite->data[1]) - sprite->pos2.x *= -1; + if (!sprite->sDontFlip) + sprite->x2 *= -1; } -static bool32 sub_817F724(u8 id) +static bool32 InitAnimData(u8 id) { - if (id >= STRUCT_COUNT) + if (id >= MAX_BATTLERS_COUNT) { return FALSE; } else { - sUnknown_03001240[id].field_6 = 0; - sUnknown_03001240[id].field_0 = 0; - sUnknown_03001240[id].field_4 = 1; - sUnknown_03001240[id].field_2 = 0; - sUnknown_03001240[id].field_8 = 0; + sAnims[id].rotation = 0; + sAnims[id].delay = 0; + sAnims[id].runs = 1; + sAnims[id].speed = 0; + sAnims[id].data = 0; return TRUE; } } -static u8 sub_817F758(void) +static u8 AddNewAnim(void) { - sUnknown_03001270 = (sUnknown_03001270 + 1) % STRUCT_COUNT; - sub_817F724(sUnknown_03001270); - return sUnknown_03001270; + sAnimIdx = (sAnimIdx + 1) % MAX_BATTLERS_COUNT; + InitAnimData(sAnimIdx); + return sAnimIdx; } -static void sub_817F77C(struct Sprite *sprite) +static void ResetSpriteAfterAnim(struct Sprite *sprite) { sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); - if (sUnknown_03001274 == TRUE) + if (sIsSummaryAnim == TRUE) { - if (!sprite->data[1]) - sprite->hFlip = 1; + if (!sprite->sDontFlip) + sprite->hFlip = TRUE; else - sprite->hFlip = 0; + sprite->hFlip = FALSE; FreeOamMatrix(sprite->oam.matrixNum); sprite->oam.matrixNum |= (sprite->hFlip << 3); @@ -1046,12 +1078,12 @@ static void sub_817F77C(struct Sprite *sprite) { // FIX: Reset these back to normal after they were changed so Poké Ball catch/release // animations without a screen transition in between don't break - sprite->affineAnims = gUnknown_082FF694; + sprite->affineAnims = gAffineAnims_BattleSpriteOpponentSide; } #endif // BUGFIX } -static void pokemonanimfunc_01(struct Sprite *sprite) +static void Anim_CircularStretchTwice(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); @@ -1059,8 +1091,8 @@ static void pokemonanimfunc_01(struct Sprite *sprite) if (sprite->data[2] > 40) { HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -1074,12 +1106,12 @@ static void pokemonanimfunc_01(struct Sprite *sprite) sprite->data[2]++; } -static void pokemonanimfunc_02(struct Sprite *sprite) +static void Anim_HorizontalVibrate(struct Sprite *sprite) { if (sprite->data[2] > 40) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; } else { @@ -1089,70 +1121,70 @@ static void pokemonanimfunc_02(struct Sprite *sprite) else sign = -1; - sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 6) * sign; + sprite->x2 = Sin((sprite->data[2] * 128 / 40) % 256, 6) * sign; } sprite->data[2]++; } -static void sub_817F8FC(struct Sprite *sprite) +static void HorizontalSlide(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > sprite->data[0]) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; } else { - sprite->pos2.x = Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6); + sprite->x2 = Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6); } sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_03(struct Sprite *sprite) +static void Anim_HorizontalSlide(struct Sprite *sprite) { sprite->data[0] = 40; - sub_817F8FC(sprite); - sprite->callback = sub_817F8FC; + HorizontalSlide(sprite); + sprite->callback = HorizontalSlide; } -static void sub_817F978(struct Sprite *sprite) +static void VerticalSlide(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > sprite->data[0]) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->y2 = 0; } else { - sprite->pos2.y = -(Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6)); + sprite->y2 = -(Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6)); } sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_04(struct Sprite *sprite) +static void Anim_VerticalSlide(struct Sprite *sprite) { sprite->data[0] = 40; - sub_817F978(sprite); - sprite->callback = sub_817F978; + VerticalSlide(sprite); + sprite->callback = VerticalSlide; } -static void sub_817F9F4(struct Sprite *sprite) +static void VerticalJumps(struct Sprite *sprite) { s32 counter = sprite->data[2]; if (counter > 384) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; } else { @@ -1161,12 +1193,12 @@ static void sub_817F9F4(struct Sprite *sprite) { case 0: case 1: - sprite->pos2.y = -(Sin(counter % 128, sprite->data[0] * 2)); + sprite->y2 = -(Sin(counter % 128, sprite->data[0] * 2)); break; case 2: case 3: counter -= 256; - sprite->pos2.y = -(Sin(counter, sprite->data[0] * 3)); + sprite->y2 = -(Sin(counter, sprite->data[0] * 3)); break; } } @@ -1174,22 +1206,22 @@ static void sub_817F9F4(struct Sprite *sprite) sprite->data[2] += 12; } -static void pokemonanimfunc_1E(struct Sprite *sprite) +static void Anim_VerticalJumps_Big(struct Sprite *sprite) { sprite->data[0] = 4; - sub_817F9F4(sprite); - sprite->callback = sub_817F9F4; + VerticalJumps(sprite); + sprite->callback = VerticalJumps; } -static void pokemonanimfunc_06(struct Sprite *sprite) +static void Anim_VerticalJumpsHorizontalJumps(struct Sprite *sprite) { s32 counter = sprite->data[2]; if (counter > 768) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; } else { @@ -1199,29 +1231,29 @@ static void pokemonanimfunc_06(struct Sprite *sprite) { case 0: case 1: - sprite->pos2.x = 0; + sprite->x2 = 0; break; case 2: counter = 0; break; case 3: - sprite->pos2.x = -(counter % 128 * 8) / 128; + sprite->x2 = -(counter % 128 * 8) / 128; break; case 4: - sprite->pos2.x = (counter % 128) / 8 - 8; + sprite->x2 = (counter % 128) / 8 - 8; break; case 5: - sprite->pos2.x = -(counter % 128 * 8) / 128 + 8; + sprite->x2 = -(counter % 128 * 8) / 128 + 8; break; } - sprite->pos2.y = -(Sin(counter % 128, 8)); + sprite->y2 = -(Sin(counter % 128, 8)); } sprite->data[2] += 12; } -static void pokemonanimfunc_09(struct Sprite *sprite) +static void Anim_GrowVibrate(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); @@ -1229,8 +1261,8 @@ static void pokemonanimfunc_09(struct Sprite *sprite) if (sprite->data[2] > 40) { HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -1253,32 +1285,33 @@ static void pokemonanimfunc_09(struct Sprite *sprite) sprite->data[2]++; } -static const s8 sUnknown_0860AD70[][3] = +// x delta, y delta, time +static const s8 sZigzagData[][3] = { {-1, -1, 6}, - {2, 0, 6}, + { 2, 0, 6}, {-2, 2, 6}, - {2, 0, 6}, + { 2, 0, 6}, {-2, -2, 6}, - {2, 0, 6}, + { 2, 0, 6}, {-2, 2, 6}, - {2, 0, 6}, + { 2, 0, 6}, {-1, -1, 6}, - {0, 0, 0}, + { 0, 0, 0}, }; -static void sub_817FC20(struct Sprite *sprite) +static void Zigzag(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) sprite->data[3] = 0; - if (sUnknown_0860AD70[sprite->data[3]][2] == sprite->data[2]) + if (sZigzagData[sprite->data[3]][2] == sprite->data[2]) { - if (sUnknown_0860AD70[sprite->data[3]][2] == 0) + if (sZigzagData[sprite->data[3]][2] == 0) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } else { @@ -1287,81 +1320,81 @@ static void sub_817FC20(struct Sprite *sprite) } } - if (sUnknown_0860AD70[sprite->data[3]][2] == 0) + if (sZigzagData[sprite->data[3]][2] == 0) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } else { - sprite->pos2.x += sUnknown_0860AD70[sprite->data[3]][0]; - sprite->pos2.y += sUnknown_0860AD70[sprite->data[3]][1]; + sprite->x2 += sZigzagData[sprite->data[3]][0]; + sprite->y2 += sZigzagData[sprite->data[3]][1]; sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } } -static void pokemonanimfunc_0A(struct Sprite *sprite) +static void Anim_ZigzagFast(struct Sprite *sprite) { - sub_817FC20(sprite); - sprite->callback = sub_817FC20; + Zigzag(sprite); + sprite->callback = Zigzag; } -static void sub_817FCDC(struct Sprite *sprite) +static void HorizontalShake(struct Sprite *sprite) { s32 counter = sprite->data[2]; if (counter > 2304) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; } else { - sprite->pos2.x = Sin(counter % 256, sprite->data[7]); + sprite->x2 = Sin(counter % 256, sprite->data[7]); } sprite->data[2] += sprite->data[0]; } -static void pokemonanimfunc_0F(struct Sprite *sprite) +static void Anim_HorizontalShake(struct Sprite *sprite) { sprite->data[0] = 60; sprite->data[7] = 3; - sub_817FCDC(sprite); - sprite->callback = sub_817FCDC; + HorizontalShake(sprite); + sprite->callback = HorizontalShake; } -static void sub_817FD44(struct Sprite *sprite) +static void VerticalShake(struct Sprite *sprite) { s32 counter = sprite->data[2]; if (counter > 2304) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->y2 = 0; } else { - sprite->pos2.y = Sin(counter % 256, 3); + sprite->y2 = Sin(counter % 256, 3); } sprite->data[2] += sprite->data[0]; } -static void pokemonanimfunc_10(struct Sprite *sprite) +static void Anim_VerticalShake(struct Sprite *sprite) { sprite->data[0] = 60; - sub_817FD44(sprite); - sprite->callback = sub_817FD44; + VerticalShake(sprite); + sprite->callback = VerticalShake; } -static void pokemonanimfunc_11(struct Sprite *sprite) +static void Anim_CircularVibrate(struct Sprite *sprite) { if (sprite->data[2] > 512) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; } else { @@ -1376,43 +1409,43 @@ static void pokemonanimfunc_11(struct Sprite *sprite) amplitude = Sin(sprite->data[2] / 4, 8); index = sprite->data[2] % 256; - sprite->pos2.y = Sin(index, amplitude) * sign; - sprite->pos2.x = Cos(index, amplitude) * sign; + sprite->y2 = Sin(index, amplitude) * sign; + sprite->x2 = Cos(index, amplitude) * sign; } sprite->data[2] += 9; } -static void sub_817FE30(struct Sprite *sprite) +static void Twist(struct Sprite *sprite) { s16 id = sprite->data[0]; - if (sUnknown_03001240[id].field_0 != 0) + if (sAnims[id].delay != 0) { - sUnknown_03001240[id].field_0--; + sAnims[id].delay--; } else { - if (sprite->data[2] == 0 && sUnknown_03001240[id].field_8 == 0) + if (sprite->data[2] == 0 && sAnims[id].data == 0) { HandleStartAffineAnim(sprite); - sUnknown_03001240[id].field_8++; + sAnims[id].data++; } - if (sprite->data[2] > sUnknown_03001240[id].field_6) + if (sprite->data[2] > sAnims[id].rotation) { HandleSetAffineData(sprite, 256, 256, 0); - if (sUnknown_03001240[id].field_4 > 1) + if (sAnims[id].runs > 1) { - sUnknown_03001240[id].field_4--; - sUnknown_03001240[id].field_0 = 10; + sAnims[id].runs--; + sAnims[id].delay = 10; sprite->data[2] = 0; } else { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } } else @@ -1425,103 +1458,107 @@ static void sub_817FE30(struct Sprite *sprite) } } -static void pokemonanimfunc_12(struct Sprite *sprite) +static void Anim_Twist(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 512; - sUnknown_03001240[id].field_0 = 0; - sub_817FE30(sprite); - sprite->callback = sub_817FE30; + sAnims[id].rotation = 512; + sAnims[id].delay = 0; + Twist(sprite); + sprite->callback = Twist; } -static void sub_817FF3C(struct Sprite *sprite) +static void Spin(struct Sprite *sprite) { u8 id = sprite->data[0]; if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); - if (sprite->data[2] > sUnknown_03001240[id].field_0) + if (sprite->data[2] > sAnims[id].delay) { HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { - sprite->data[6] = (65536 / sUnknown_03001240[id].field_8) * sprite->data[2]; + sprite->data[6] = (65536 / sAnims[id].data) * sprite->data[2]; HandleSetAffineData(sprite, 256, 256, sprite->data[6]); } sprite->data[2]++; } -static void pokemonanimfunc_1F(struct Sprite *sprite) +static void Anim_Spin_Long(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_0 = 60; - sUnknown_03001240[id].field_8 = 20; - sub_817FF3C(sprite); - sprite->callback = sub_817FF3C; + sAnims[id].delay = 60; + sAnims[id].data = 20; + Spin(sprite); + sprite->callback = Spin; } -static void sub_817FFF0(struct Sprite *sprite) +static void CircleCounterclockwise(struct Sprite *sprite) { u8 id = sprite->data[0]; - sub_817F70C(sprite); + TryFlipX(sprite); - if (sprite->data[2] > sUnknown_03001240[id].field_6) + if (sprite->data[2] > sAnims[id].rotation) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; + sprite->callback = WaitAnimEnd; } else { s16 index = (sprite->data[2] + 192) % 256; - sprite->pos2.x = -(Cos(index, sUnknown_03001240[id].field_8 * 2)); - sprite->pos2.y = Sin(index, sUnknown_03001240[id].field_8) + sUnknown_03001240[id].field_8; + sprite->x2 = -(Cos(index, sAnims[id].data * 2)); + sprite->y2 = Sin(index, sAnims[id].data) + sAnims[id].data; } - sprite->data[2] += sUnknown_03001240[id].field_2; - sub_817F70C(sprite); + sprite->data[2] += sAnims[id].speed; + TryFlipX(sprite); } -static void pokemonanimfunc_14(struct Sprite *sprite) +static void Anim_CircleCounterclockwise(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 512; - sUnknown_03001240[id].field_8 = 6; - sUnknown_03001240[id].field_2 = 24; - sub_817FFF0(sprite); - sprite->callback = sub_817FFF0; + sAnims[id].rotation = 512; + sAnims[id].data = 6; + sAnims[id].speed = 24; + CircleCounterclockwise(sprite); + sprite->callback = CircleCounterclockwise; } -static void pokemonanimfunc_15(struct Sprite *sprite) +#define GlowColor(color, colorIncrement, speed) \ +{ \ + if (sprite->data[2] == 0) \ + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; \ + \ + if (sprite->data[2] > 128) \ + { \ + BlendPalette(sprite->data[7], 16, 0, (color)); \ + sprite->callback = WaitAnimEnd; \ + } \ + else \ + { \ + sprite->data[6] = Sin(sprite->data[2], (colorIncrement)); \ + BlendPalette(sprite->data[7], 16, sprite->data[6], (color)); \ + } \ + sprite->data[2] += (speed); \ +} + +static void Anim_GlowBlack(struct Sprite *sprite) { - if (sprite->data[2] == 0) - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; - - if (sprite->data[2] > 128) - { - BlendPalette(sprite->data[7], 0x10, 0, RGB_BLACK); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - } - else - { - sprite->data[6] = Sin(sprite->data[2], 16); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_BLACK); - } - - sprite->data[2]++; + GlowColor(RGB_BLACK, 16, 1); } -static void pokemonanimfunc_16(struct Sprite *sprite) +static void Anim_HorizontalStretch(struct Sprite *sprite) { s16 index1 = 0, index2 = 0; @@ -1531,8 +1568,8 @@ static void pokemonanimfunc_16(struct Sprite *sprite) if (sprite->data[2] > 40) { HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -1544,7 +1581,7 @@ static void pokemonanimfunc_16(struct Sprite *sprite) index1 = 0xFF & sprite->data[7]; } - if (sprite->data[1] == 0) + if (!sprite->sDontFlip) sprite->data[4] = (Sin(index2, 40) - 256) + Sin(index1, 16); else sprite->data[4] = (256 - Sin(index2, 40)) - Sin(index1, 16); @@ -1556,7 +1593,7 @@ static void pokemonanimfunc_16(struct Sprite *sprite) sprite->data[2]++; } -static void pokemonanimfunc_17(struct Sprite *sprite) +static void Anim_VerticalStretch(struct Sprite *sprite) { s16 posY = 0, index1 = 0, index2 = 0; @@ -1566,9 +1603,9 @@ static void pokemonanimfunc_17(struct Sprite *sprite) if (sprite->data[2] > 40) { HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.y = posY; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; + sprite->y2 = posY; } else { @@ -1580,7 +1617,7 @@ static void pokemonanimfunc_17(struct Sprite *sprite) index1 = 0xFF & sprite->data[7]; } - if (sprite->data[1] == 0) + if (!sprite->sDontFlip) sprite->data[4] = -(Sin(index2, 16)) - 256; else sprite->data[4] = Sin(index2, 16) + 256; @@ -1590,34 +1627,34 @@ static void pokemonanimfunc_17(struct Sprite *sprite) if (sprite->data[5] != 256) posY = (256 - sprite->data[5]) / 8; - sprite->pos2.y = -(posY); + sprite->y2 = -(posY); SetAffineData(sprite, sprite->data[4], sprite->data[5], 0); } sprite->data[2]++; } -static void sub_818031C(struct Sprite *sprite) +static void VerticalShakeTwice(struct Sprite *sprite) { u8 index = sprite->data[2]; u8 var7 = sprite->data[6]; - u8 var5 = sUnknown_0860AA80[sprite->data[5]][0]; - u8 var6 = sUnknown_0860AA80[sprite->data[5]][1]; + u8 var5 = sVerticalShakeData[sprite->data[5]][0]; + u8 var6 = sVerticalShakeData[sprite->data[5]][1]; u8 amplitude = 0; - if (var5 != 0xFE) + if (var5 != (u8)-2) amplitude = (var6 - var7) * var5 / var6; else amplitude = 0; - if (var5 == 0xFF) + if (var5 == (u8)-1) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->y2 = 0; } else { - sprite->pos2.y = Sin(index, amplitude); + sprite->y2 = Sin(index, amplitude); if (var7 == var6) { @@ -1632,18 +1669,18 @@ static void sub_818031C(struct Sprite *sprite) } } -static void pokemonanimfunc_19(struct Sprite *sprite) +static void Anim_VerticalShakeTwice(struct Sprite *sprite) { sprite->data[0] = 48; - sub_818031C(sprite); - sprite->callback = sub_818031C; + VerticalShakeTwice(sprite); + sprite->callback = VerticalShakeTwice; } -static void pokemonanimfunc_1A(struct Sprite *sprite) +static void Anim_TipMoveForward(struct Sprite *sprite) { u8 counter = 0; - sub_817F70C(sprite); + TryFlipX(sprite); counter = sprite->data[2]; if (sprite->data[2] == 0) @@ -1652,9 +1689,9 @@ static void pokemonanimfunc_1A(struct Sprite *sprite) if (sprite->data[2] > 35) { HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; } else { @@ -1663,16 +1700,16 @@ static void pokemonanimfunc_1A(struct Sprite *sprite) if (counter < 10) HandleSetAffineData(sprite, 256, 256, counter / 2 * 512); else if (counter >= 10 && counter <= 29) - sprite->pos2.x = -(Sin(index, 5)); + sprite->x2 = -(Sin(index, 5)); else HandleSetAffineData(sprite, 256, 256, (35 - counter) / 2 * 1024); } sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_1B(struct Sprite *sprite) +static void Anim_HorizontalPivot(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); @@ -1680,21 +1717,21 @@ static void pokemonanimfunc_1B(struct Sprite *sprite) if (sprite->data[2] > 100) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.y = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->y2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { s16 index = (sprite->data[2] * 256) / 100; - sprite->pos2.y = Sin(index, 10); + sprite->y2 = Sin(index, 10); HandleSetAffineData(sprite, 256, 256, Sin(index, 3276)); } sprite->data[2]++; } -static void sub_81804F8(struct Sprite *sprite) +static void VerticalSlideWobble(struct Sprite *sprite) { s32 var = 0; s16 index = 0; @@ -1705,30 +1742,30 @@ static void sub_81804F8(struct Sprite *sprite) if (sprite->data[2] > 100) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.y = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->y2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { index = (sprite->data[2] * 256) / 100; var = (sprite->data[2] * 512) / 100; var &= 0xFF; - sprite->pos2.y = Sin(index, sprite->data[0]); + sprite->y2 = Sin(index, sprite->data[0]); HandleSetAffineData(sprite, 256, 256, Sin(var, 3276)); } sprite->data[2]++; } -static void pokemonanimfunc_1C(struct Sprite *sprite) +static void Anim_VerticalSlideWobble(struct Sprite *sprite) { sprite->data[0] = 10; - sub_81804F8(sprite); - sprite->callback = sub_81804F8; + VerticalSlideWobble(sprite); + sprite->callback = VerticalSlideWobble; } -static void sub_81805B0(struct Sprite *sprite) +static void RisingWobble(struct Sprite *sprite) { s32 var = 0; s16 index = 0; @@ -1739,35 +1776,35 @@ static void sub_81805B0(struct Sprite *sprite) if (sprite->data[2] > 100) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.y = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->y2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { index = (sprite->data[2] * 256) / 100; var = (sprite->data[2] * 512) / 100; var &= 0xFF; - sprite->pos2.y = -(Sin(index / 2, sprite->data[0] * 2)); + sprite->y2 = -(Sin(index / 2, sprite->data[0] * 2)); HandleSetAffineData(sprite, 256, 256, Sin(var, 3276)); } sprite->data[2]++; } -static void pokemonanimfunc_18(struct Sprite *sprite) +static void Anim_RisingWobble(struct Sprite *sprite) { sprite->data[0] = 5; - sub_81805B0(sprite); - sprite->callback = sub_81805B0; + RisingWobble(sprite); + sprite->callback = RisingWobble; } -static void pokemonanimfunc_1D(struct Sprite *sprite) +static void Anim_HorizontalSlideWobble(struct Sprite *sprite) { s32 var; s16 index = 0; - sub_817F70C(sprite); + TryFlipX(sprite); var = 0; if (sprite->data[2] == 0) @@ -1776,26 +1813,24 @@ static void pokemonanimfunc_1D(struct Sprite *sprite) if (sprite->data[2] > 100) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.x = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { - s16 toDiv = 100; - - index = (sprite->data[2] * 256) / toDiv; - var = (sprite->data[2] * 512) / toDiv; + index = (sprite->data[2] * 256) / 100; + var = (sprite->data[2] * 512) / 100; var &= 0xFF; - sprite->pos2.x = Sin(index, 8); + sprite->x2 = Sin(index, 8); HandleSetAffineData(sprite, 256, 256, Sin(var, 3276)); } sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8180714(struct Sprite *sprite) +static void VerticalSquishBounce(struct Sprite *sprite) { s16 posY = 0; @@ -1805,14 +1840,14 @@ static void sub_8180714(struct Sprite *sprite) sprite->data[3] = 0; } - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > sprite->data[0] * 3) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.y = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->y2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -1823,32 +1858,32 @@ static void sub_8180714(struct Sprite *sprite) if (yScale > 256) posY = (256 - yScale) / 8; - sprite->pos2.y = -(Sin(sprite->data[3], 10)) - posY; + sprite->y2 = -(Sin(sprite->data[3], 10)) - posY; HandleSetAffineData(sprite, 256 - Sin(sprite->data[4], 32), yScale, 0); sprite->data[2]++; sprite->data[4] = (sprite->data[4] + 128 / sprite->data[0]) & 0xFF; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_00(struct Sprite *sprite) +static void Anim_VerticalSquishBounce(struct Sprite *sprite) { sprite->data[0] = 16; - sub_8180714(sprite); - sprite->callback = sub_8180714; + VerticalSquishBounce(sprite); + sprite->callback = VerticalSquishBounce; } -static void sub_8180828(struct Sprite *sprite) +static void ShrinkGrow(struct Sprite *sprite) { s16 posY = 0; if (sprite->data[2] > (128 / sprite->data[6]) * sprite->data[7]) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.y = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->y2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -1857,14 +1892,14 @@ static void sub_8180828(struct Sprite *sprite) if (yScale > 256) posY = (256 - yScale) / 8; - sprite->pos2.y = -(posY); + sprite->y2 = -(posY); HandleSetAffineData(sprite, Sin(sprite->data[4], 48) + 256, yScale, 0); sprite->data[2]++; sprite->data[4] = (sprite->data[4] + sprite->data[6]) & 0xFF; } } -static void pokemonanimfunc_13(struct Sprite *sprite) +static void Anim_ShrinkGrow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -1873,34 +1908,34 @@ static void pokemonanimfunc_13(struct Sprite *sprite) sprite->data[6] = 8; } - sub_8180828(sprite); + ShrinkGrow(sprite); } -static const s8 sUnknown_0860AD8E[][8][3] = +static const s8 sBounceRotateToSidesData[][8][3] = { { - {0, 8, 8}, - {8, -8, 12}, - {-8, 8, 12}, - {8, -8, 12}, - {-8, 8, 12}, - {8, -8, 12}, - {-8, 0, 12}, - {0, 0, 0} + { 0, 8, 8}, + { 8, -8, 12}, + {-8, 8, 12}, + { 8, -8, 12}, + {-8, 8, 12}, + { 8, -8, 12}, + {-8, 0, 12}, + { 0, 0, 0} }, { - {0, 8, 16}, - {8, -8, 24}, - {-8, 8, 24}, - {8, -8, 24}, - {-8, 8, 24}, - {8, -8, 24}, - {-8, 0, 24}, - {0, 0, 0} + { 0, 8, 16}, + { 8, -8, 24}, + {-8, 8, 24}, + { 8, -8, 24}, + {-8, 8, 24}, + { 8, -8, 24}, + {-8, 0, 24}, + { 0, 0, 0} }, }; -static void sub_8180900(struct Sprite *sprite) +static void BounceRotateToSides(struct Sprite *sprite) { s16 var; u8 structId; @@ -1909,12 +1944,12 @@ static void sub_8180900(struct Sprite *sprite) s16 r7; u32 arrId; - sub_817F70C(sprite); + TryFlipX(sprite); structId = sprite->data[0]; - var = sUnknown_03001240[structId].field_6; - r9 = sUnknown_0860AD8E[sUnknown_03001240[structId].field_8][sprite->data[4]][0]; - r10 = sUnknown_0860AD8E[sUnknown_03001240[structId].field_8][sprite->data[4]][1] - r9; - arrId = sUnknown_03001240[structId].field_8; + var = sAnims[structId].rotation; + r9 = sBounceRotateToSidesData[sAnims[structId].data][sprite->data[4]][0]; + r10 = sBounceRotateToSidesData[sAnims[structId].data][sprite->data[4]][1] - r9; + arrId = sAnims[structId].data; r7 = sprite->data[3]; if (sprite->data[2] == 0) @@ -1923,25 +1958,25 @@ static void sub_8180900(struct Sprite *sprite) sprite->data[2]++; } - if (sUnknown_0860AD8E[arrId][sprite->data[4]][2] == 0) + if (sBounceRotateToSidesData[arrId][sprite->data[4]][2] == 0) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.x = 0; - sprite->pos2.y = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { u16 rotation; - sprite->pos2.y = -(Sin(r7 * 128 / sUnknown_0860AD8E[arrId][sprite->data[4]][2], 10)); - sprite->pos2.x = (r10 * r7 / sUnknown_0860AD8E[arrId][sprite->data[4]][2]) + r9; + sprite->y2 = -(Sin(r7 * 128 / sBounceRotateToSidesData[arrId][sprite->data[4]][2], 10)); + sprite->x2 = (r10 * r7 / sBounceRotateToSidesData[arrId][sprite->data[4]][2]) + r9; - rotation = -(var * sprite->pos2.x) / 8; + rotation = -(var * sprite->x2) / 8; HandleSetAffineData(sprite, 256, 256, rotation); - if (r7 == sUnknown_0860AD8E[arrId][sprite->data[4]][2]) + if (r7 == sBounceRotateToSidesData[arrId][sprite->data[4]][2]) { sprite->data[4]++; sprite->data[3] = 0; @@ -1952,149 +1987,79 @@ static void sub_8180900(struct Sprite *sprite) } } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_05(struct Sprite *sprite) +static void Anim_BounceRotateToSides(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); - sUnknown_03001240[id].field_6 = 4096; - sUnknown_03001240[id].field_8 = sprite->data[6]; - sub_8180900(sprite); - sprite->callback = sub_8180900; + u8 id = sprite->data[0] = AddNewAnim(); + sAnims[id].rotation = 4096; + sAnims[id].data = sprite->data[6]; + BounceRotateToSides(sprite); + sprite->callback = BounceRotateToSides; } -static void pokemonanimfunc_20(struct Sprite *sprite) +static void Anim_GlowOrange(struct Sprite *sprite) { - if (sprite->data[2] == 0) - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; - - if (sprite->data[2] > 128) - { - BlendPalette(sprite->data[7], 0x10, 0, RGB(31, 22, 0)); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - } - else - { - sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB(31, 22, 0)); - } - - sprite->data[2] += 2; + GlowColor(RGB(31, 22, 0), 12, 2); } -static void pokemonanimfunc_21(struct Sprite *sprite) +static void Anim_GlowRed(struct Sprite *sprite) { - if (sprite->data[2] == 0) - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; - - if (sprite->data[2] > 128) - { - BlendPalette(sprite->data[7], 0x10, 0, RGB_RED); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - } - else - { - sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_RED); - } - - sprite->data[2] += 2; + GlowColor(RGB_RED, 12, 2); } -static void pokemonanimfunc_22(struct Sprite *sprite) +static void Anim_GlowBlue(struct Sprite *sprite) { - if (sprite->data[2] == 0) - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; - - if (sprite->data[2] > 128) - { - BlendPalette(sprite->data[7], 0x10, 0, RGB_BLUE); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - } - else - { - sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_BLUE); - } - - sprite->data[2] += 2; + GlowColor(RGB_BLUE, 12, 2); } -static void pokemonanimfunc_23(struct Sprite *sprite) +static void Anim_GlowYellow(struct Sprite *sprite) { - if (sprite->data[2] == 0) - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; - - if (sprite->data[2] > 128) - { - BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - } - else - { - sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_YELLOW); - } - - sprite->data[2] += 2; + GlowColor(RGB_YELLOW, 12, 2); } -static void pokemonanimfunc_24(struct Sprite *sprite) +static void Anim_GlowPurple(struct Sprite *sprite) { - if (sprite->data[2] == 0) - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; - - if (sprite->data[2] > 128) - { - BlendPalette(sprite->data[7], 0x10, 0, RGB(24, 0, 24)); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - } - else - { - sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB(24, 0, 24)); - } - - sprite->data[2] += 2; + GlowColor(RGB(24, 0, 24), 12, 2); } -static void sub_8180CB4(struct Sprite *sprite); -static void sub_8180CE8(struct Sprite *sprite); -static void sub_8180D44(struct Sprite *sprite); -static void sub_8180DC0(struct Sprite *sprite); -static void sub_8180E28(struct Sprite *sprite); +static void BackAndLunge_0(struct Sprite *sprite); +static void BackAndLunge_1(struct Sprite *sprite); +static void BackAndLunge_2(struct Sprite *sprite); +static void BackAndLunge_3(struct Sprite *sprite); +static void BackAndLunge_4(struct Sprite *sprite); -static void pokemonanimfunc_25(struct Sprite *sprite) +static void Anim_BackAndLunge(struct Sprite *sprite) { HandleStartAffineAnim(sprite); - sprite->callback = sub_8180CB4; + sprite->callback = BackAndLunge_0; } -static void sub_8180CB4(struct Sprite *sprite) +static void BackAndLunge_0(struct Sprite *sprite) { - sub_817F70C(sprite); - if (++sprite->pos2.x > 7) + TryFlipX(sprite); + if (++sprite->x2 > 7) { - sprite->pos2.x = 8; + sprite->x2 = 8; sprite->data[7] = 2; - sprite->callback = sub_8180CE8; + sprite->callback = BackAndLunge_1; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8180CE8(struct Sprite *sprite) +static void BackAndLunge_1(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); - sprite->pos2.x -= sprite->data[7]; + sprite->x2 -= sprite->data[7]; sprite->data[7]++; - if (sprite->pos2.x <= 0) + if (sprite->x2 <= 0) { s16 subResult; u8 var = sprite->data[7]; sprite->data[6] = 0; - subResult = sprite->pos2.x; + subResult = sprite->x2; do { @@ -2105,18 +2070,18 @@ static void sub_8180CE8(struct Sprite *sprite) while (subResult > -8); sprite->data[5] = 1; - sprite->callback = sub_8180D44; + sprite->callback = BackAndLunge_2; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8180D44(struct Sprite *sprite) +static void BackAndLunge_2(struct Sprite *sprite) { u8 rotation; - sub_817F70C(sprite); - sprite->pos2.x -= sprite->data[7]; + TryFlipX(sprite); + sprite->x2 -= sprite->data[7]; sprite->data[7]++; rotation = (sprite->data[5] * 6) / sprite->data[6]; @@ -2125,21 +2090,21 @@ static void sub_8180D44(struct Sprite *sprite) HandleSetAffineData(sprite, 256, 256, rotation * 256); - if (sprite->pos2.x < -8) + if (sprite->x2 < -8) { - sprite->pos2.x = -8; + sprite->x2 = -8; sprite->data[4] = 2; sprite->data[3] = 0; sprite->data[2] = rotation; - sprite->callback = sub_8180DC0; + sprite->callback = BackAndLunge_3; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8180DC0(struct Sprite *sprite) +static void BackAndLunge_3(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[3] > 11) { @@ -2149,85 +2114,85 @@ static void sub_8180DC0(struct Sprite *sprite) HandleSetAffineData(sprite, 256, 256, sprite->data[2] << 8); if (sprite->data[2] == 0) - sprite->callback = sub_8180E28; + sprite->callback = BackAndLunge_4; } else { - sprite->pos2.x += sprite->data[4]; + sprite->x2 += sprite->data[4]; sprite->data[4] *= -1; sprite->data[3]++; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8180E28(struct Sprite *sprite) +static void BackAndLunge_4(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); - sprite->pos2.x += 2; - if (sprite->pos2.x > 0) + sprite->x2 += 2; + if (sprite->x2 > 0) { - sprite->pos2.x = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8180E78(struct Sprite *sprite); -static void sub_8180ED0(struct Sprite *sprite); -static void sub_8180F2C(struct Sprite *sprite); +static void BackFlip_0(struct Sprite *sprite); +static void BackFlip_1(struct Sprite *sprite); +static void BackFlip_2(struct Sprite *sprite); -static void pokemonanimfunc_26(struct Sprite *sprite) +static void Anim_BackFlip(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[3] = 0; - sprite->callback = sub_8180E78; + sprite->callback = BackFlip_0; } -static void sub_8180E78(struct Sprite *sprite) +static void BackFlip_0(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x++; - sprite->pos2.y--; + TryFlipX(sprite); + sprite->x2++; + sprite->y2--; - if (sprite->pos2.x % 2 == 0 && sprite->data[3] <= 0) + if (sprite->x2 % 2 == 0 && sprite->data[3] <= 0) sprite->data[3] = 10; - if (sprite->pos2.x > 7) + if (sprite->x2 > 7) { - sprite->pos2.x = 8; - sprite->pos2.y = -8; + sprite->x2 = 8; + sprite->y2 = -8; sprite->data[4] = 0; - sprite->callback = sub_8180ED0; + sprite->callback = BackFlip_1; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8180ED0(struct Sprite *sprite) +static void BackFlip_1(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x = Cos(sprite->data[4], 16) - 8; - sprite->pos2.y = Sin(sprite->data[4], 16) - 8; + TryFlipX(sprite); + sprite->x2 = Cos(sprite->data[4], 16) - 8; + sprite->y2 = Sin(sprite->data[4], 16) - 8; if (sprite->data[4] > 63) { sprite->data[2] = 160; sprite->data[3] = 10; - sprite->callback = sub_8180F2C; + sprite->callback = BackFlip_2; } sprite->data[4] += 8; if (sprite->data[4] > 64) sprite->data[4] = 64; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8180F2C(struct Sprite *sprite) +static void BackFlip_2(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[3] > 0) { @@ -2237,25 +2202,25 @@ static void sub_8180F2C(struct Sprite *sprite) { u32 rotation; - sprite->pos2.x = Cos(sprite->data[2], 5) - 4; - sprite->pos2.y = -(Sin(sprite->data[2], 5)) + 4; + sprite->x2 = Cos(sprite->data[2], 5) - 4; + sprite->y2 = -(Sin(sprite->data[2], 5)) + 4; sprite->data[2] -= 4; rotation = sprite->data[2] - 32; HandleSetAffineData(sprite, 256, 256, rotation * 512); if (sprite->data[2] <= 32) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_27(struct Sprite *sprite) +static void Anim_Flicker(struct Sprite *sprite) { if (sprite->data[3] > 0) { @@ -2263,225 +2228,225 @@ static void pokemonanimfunc_27(struct Sprite *sprite) } else { - sprite->data[4] = (sprite->data[4] == 0) ? 1 : 0; + sprite->data[4] = (sprite->data[4] == 0) ? TRUE : FALSE; sprite->invisible = sprite->data[4]; if (++sprite->data[2] > 19) { sprite->invisible = FALSE; - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } sprite->data[3] = 2; } } -static void sub_8181024(struct Sprite *sprite); -static void sub_8181068(struct Sprite *sprite); -static void sub_81810C4(struct Sprite *sprite); +static void BackFlipBig_0(struct Sprite *sprite); +static void BackFlipBig_1(struct Sprite *sprite); +static void BackFlipBig_2(struct Sprite *sprite); -static void pokemonanimfunc_28(struct Sprite *sprite) +static void Anim_BackFlipBig(struct Sprite *sprite) { HandleStartAffineAnim(sprite); - sprite->callback = sub_8181024; + sprite->callback = BackFlipBig_0; } -static void sub_8181024(struct Sprite *sprite) +static void BackFlipBig_0(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x--; - sprite->pos2.y++; + TryFlipX(sprite); + sprite->x2--; + sprite->y2++; - if (sprite->pos2.x <= -16) + if (sprite->x2 <= -16) { - sprite->pos2.x = -16; - sprite->pos2.y = 16; - sprite->callback = sub_8181068; + sprite->x2 = -16; + sprite->y2 = 16; + sprite->callback = BackFlipBig_1; sprite->data[2] = 160; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181068(struct Sprite *sprite) +static void BackFlipBig_1(struct Sprite *sprite) { u32 rotation; - sub_817F70C(sprite); + TryFlipX(sprite); sprite->data[2] -= 4; - sprite->pos2.x = Cos(sprite->data[2], 22); - sprite->pos2.y = -(Sin(sprite->data[2], 22)); + sprite->x2 = Cos(sprite->data[2], 22); + sprite->y2 = -(Sin(sprite->data[2], 22)); rotation = sprite->data[2] - 32; HandleSetAffineData(sprite, 256, 256, rotation * 512); if (sprite->data[2] <= 32) - sprite->callback = sub_81810C4; + sprite->callback = BackFlipBig_2; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_81810C4(struct Sprite *sprite) +static void BackFlipBig_2(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x--; - sprite->pos2.y++; + TryFlipX(sprite); + sprite->x2--; + sprite->y2++; - if (sprite->pos2.x <= 0) + if (sprite->x2 <= 0) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181110(struct Sprite *sprite); -static void sub_8181144(struct Sprite *sprite); -static void sub_81811A4(struct Sprite *sprite); +static void FrontFlip_0(struct Sprite *sprite); +static void FrontFlip_1(struct Sprite *sprite); +static void FrontFlip_2(struct Sprite *sprite); -static void pokemonanimfunc_29(struct Sprite *sprite) +static void Anim_FrontFlip(struct Sprite *sprite) { HandleStartAffineAnim(sprite); - sprite->callback = sub_8181110; + sprite->callback = FrontFlip_0; } -static void sub_8181110(struct Sprite *sprite) +static void FrontFlip_0(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x++; - sprite->pos2.y--; + TryFlipX(sprite); + sprite->x2++; + sprite->y2--; - if (sprite->pos2.x > 15) + if (sprite->x2 > 15) { sprite->data[2] = 0; - sprite->callback = sub_8181144; + sprite->callback = FrontFlip_1; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181144(struct Sprite *sprite) +static void FrontFlip_1(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); sprite->data[2] += 16; - if (sprite->pos2.x <= -16) + if (sprite->x2 <= -16) { - sprite->pos2.x = -16; - sprite->pos2.y = 16; + sprite->x2 = -16; + sprite->y2 = 16; sprite->data[2] = 0; - sprite->callback = sub_81811A4; + sprite->callback = FrontFlip_2; } else { - sprite->pos2.x -= 2; - sprite->pos2.y += 2; + sprite->x2 -= 2; + sprite->y2 += 2; } HandleSetAffineData(sprite, 256, 256, sprite->data[2] << 8); - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_81811A4(struct Sprite *sprite) +static void FrontFlip_2(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x++; - sprite->pos2.y--;; + TryFlipX(sprite); + sprite->x2++; + sprite->y2--;; - if (sprite->pos2.x >= 0) + if (sprite->x2 >= 0) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181214(struct Sprite *sprite); +static void TumblingFrontFlip(struct Sprite *sprite); -static void pokemonanimfunc_2A(struct Sprite *sprite) +static void Anim_TumblingFrontFlip(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); - sUnknown_03001240[id].field_2 = 2; - sub_8181214(sprite); - sprite->callback = sub_8181214; + u8 id = sprite->data[0] = AddNewAnim(); + sAnims[id].speed = 2; + TumblingFrontFlip(sprite); + sprite->callback = TumblingFrontFlip; } -static void sub_8181214(struct Sprite *sprite) +static void TumblingFrontFlip(struct Sprite *sprite) { - if (sUnknown_03001240[sprite->data[0]].field_0 != 0) + if (sAnims[sprite->data[0]].delay != 0) { - sUnknown_03001240[sprite->data[0]].field_0--; + sAnims[sprite->data[0]].delay--; } else { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) { sprite->data[2]++; HandleStartAffineAnim(sprite); - sprite->data[7] = sUnknown_03001240[sprite->data[0]].field_2; + sprite->data[7] = sAnims[sprite->data[0]].speed; sprite->data[3] = -1; sprite->data[4] = -1; sprite->data[5] = 0; sprite->data[6] = 0; } - sprite->pos2.x += (sprite->data[7] * 2 * sprite->data[3]); - sprite->pos2.y += (sprite->data[7] * sprite->data[4]); + sprite->x2 += (sprite->data[7] * 2 * sprite->data[3]); + sprite->y2 += (sprite->data[7] * sprite->data[4]); sprite->data[6] += 8; - if (sprite->pos2.x <= -16 || sprite->pos2.x >= 16) + if (sprite->x2 <= -16 || sprite->x2 >= 16) { - sprite->pos2.x = sprite->data[3] * 16; + sprite->x2 = sprite->data[3] * 16; sprite->data[3] *= -1; sprite->data[5]++; } - else if (sprite->pos2.y <= -16 || sprite->pos2.y >= 16) + else if (sprite->y2 <= -16 || sprite->y2 >= 16) { - sprite->pos2.y = sprite->data[4] * 16; + sprite->y2 = sprite->data[4] * 16; sprite->data[4] *= -1; sprite->data[5]++; } - if (sprite->data[5] > 5 && sprite->pos2.x <= 0) + if (sprite->data[5] > 5 && sprite->x2 <= 0) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; - if (sUnknown_03001240[sprite->data[0]].field_4 > 1) + sprite->x2 = 0; + sprite->y2 = 0; + if (sAnims[sprite->data[0]].runs > 1) { - sUnknown_03001240[sprite->data[0]].field_4--; + sAnims[sprite->data[0]].runs--; sprite->data[5] = 0; sprite->data[6] = 0; - sUnknown_03001240[sprite->data[0]].field_0 = 10; + sAnims[sprite->data[0]].delay = 10; } else { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } } HandleSetAffineData(sprite, 256, 256, sprite->data[6] << 8); - sub_817F70C(sprite); + TryFlipX(sprite); } } -static void sub_8181370(struct Sprite *sprite); +static void Figure8(struct Sprite *sprite); -static void pokemonanimfunc_2B(struct Sprite *sprite) +static void Anim_Figure8(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[6] = 0; sprite->data[7] = 0; - sprite->callback = sub_8181370; + sprite->callback = Figure8; } -static void sub_8181370(struct Sprite *sprite) +static void Figure8(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); sprite->data[6] += 4; - sprite->pos2.x = -(Sin(sprite->data[6], 16)); - sprite->pos2.y = -(Sin((sprite->data[6] * 2) & 0xFF, 8)); + sprite->x2 = -(Sin(sprite->data[6], 16)); + sprite->y2 = -(Sin((sprite->data[6] * 2) & 0xFF, 8)); if (sprite->data[6] > 192 && sprite->data[7] == 1) { HandleSetAffineData(sprite, 256, 256, 0); @@ -2495,16 +2460,16 @@ static void sub_8181370(struct Sprite *sprite) if (sprite->data[6] > 255) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_2C(struct Sprite *sprite) +static void Anim_FlashYellow(struct Sprite *sprite) { if (++sprite->data[2] == 1) { @@ -2514,23 +2479,23 @@ static void pokemonanimfunc_2C(struct Sprite *sprite) sprite->data[4] = 0; } - if (sUnknown_0860AA64[sprite->data[6]][1] == 0xFF) + if (sYellowFlashData[sprite->data[6]][1] == (u8)-1) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } else { if (sprite->data[4] == 1) { - if (sUnknown_0860AA64[sprite->data[6]][0] != 0) - BlendPalette(sprite->data[7], 0x10, 0x10, RGB_YELLOW); + if (sYellowFlashData[sprite->data[6]][0]) + BlendPalette(sprite->data[7], 16, 16, RGB_YELLOW); else - BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW); + BlendPalette(sprite->data[7], 16, 0, RGB_YELLOW); sprite->data[4] = 0; } - if (sUnknown_0860AA64[sprite->data[6]][1] == sprite->data[5]) + if (sYellowFlashData[sprite->data[6]][1] == sprite->data[5]) { sprite->data[4] = 1; sprite->data[5] = 0; @@ -2543,155 +2508,155 @@ static void pokemonanimfunc_2C(struct Sprite *sprite) } } -static void sub_81814D4(struct Sprite *sprite) +static void SwingConcave(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); - sub_817F70C(sprite); - if (sprite->data[2] > sUnknown_03001240[sprite->data[0]].field_8) + TryFlipX(sprite); + if (sprite->data[2] > sAnims[sprite->data[0]].data) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.x = 0; - if (sUnknown_03001240[sprite->data[0]].field_4 > 1) + sprite->x2 = 0; + if (sAnims[sprite->data[0]].runs > 1) { - sUnknown_03001240[sprite->data[0]].field_4--; + sAnims[sprite->data[0]].runs--; sprite->data[2] = 0; } else { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } } else { - s16 index = (sprite->data[2] * 256) / sUnknown_03001240[sprite->data[0]].field_8; - sprite->pos2.x = -(Sin(index, 10)); + s16 index = (sprite->data[2] * 256) / sAnims[sprite->data[0]].data; + sprite->x2 = -(Sin(index, 10)); HandleSetAffineData(sprite, 256, 256, Sin(index, 3276)); } sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_2D(struct Sprite *sprite) +static void Anim_SwingConcave_FastShort(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); - sUnknown_03001240[id].field_8 = 50; - sub_81814D4(sprite); - sprite->callback = sub_81814D4; + u8 id = sprite->data[0] = AddNewAnim(); + sAnims[id].data = 50; + SwingConcave(sprite); + sprite->callback = SwingConcave; } -static void sub_81815D4(struct Sprite *sprite) +static void SwingConvex(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); - sub_817F70C(sprite); - if (sprite->data[2] > sUnknown_03001240[sprite->data[0]].field_8) + TryFlipX(sprite); + if (sprite->data[2] > sAnims[sprite->data[0]].data) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.x = 0; - if (sUnknown_03001240[sprite->data[0]].field_4 > 1) + sprite->x2 = 0; + if (sAnims[sprite->data[0]].runs > 1) { - sUnknown_03001240[sprite->data[0]].field_4--; + sAnims[sprite->data[0]].runs--; sprite->data[2] = 0; } else { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } } else { - s16 index = (sprite->data[2] * 256) / sUnknown_03001240[sprite->data[0]].field_8; - sprite->pos2.x = -(Sin(index, 10)); + s16 index = (sprite->data[2] * 256) / sAnims[sprite->data[0]].data; + sprite->x2 = -(Sin(index, 10)); HandleSetAffineData(sprite, 256, 256, -(Sin(index, 3276))); } sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_2E(struct Sprite *sprite) +static void Anim_SwingConvex_FastShort(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); - sUnknown_03001240[id].field_8 = 50; - sub_81815D4(sprite); - sprite->callback = sub_81815D4; + u8 id = sprite->data[0] = AddNewAnim(); + sAnims[id].data = 50; + SwingConvex(sprite); + sprite->callback = SwingConvex; } -static void sub_8181708(struct Sprite *sprite); -static void sub_8181770(struct Sprite *sprite); -static void sub_8181794(struct Sprite *sprite); +static void RotateUpSlamDown_0(struct Sprite *sprite); +static void RotateUpSlamDown_1(struct Sprite *sprite); +static void RotateUpSlamDown_2(struct Sprite *sprite); -static void pokemonanimfunc_2F(struct Sprite *sprite) +static void Anim_RotateUpSlamDown(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[6] = -(14 * sprite->centerToCornerVecX / 10); sprite->data[7] = 128; - sprite->callback = sub_8181708; + sprite->callback = RotateUpSlamDown_0; } -static void sub_8181708(struct Sprite *sprite) +static void RotateUpSlamDown_0(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); sprite->data[7]--; - sprite->pos2.x = Cos(sprite->data[7], sprite->data[6]) + sprite->data[6]; + sprite->x2 = sprite->data[6] + Cos(sprite->data[7], sprite->data[6]); - sprite->pos2.y = -(Sin(sprite->data[7], sprite->data[6] += 0)); // dummy += 0 is needed to match + sprite->y2 = -(Sin(sprite->data[7], sprite->data[6])); HandleSetAffineData(sprite, 256, 256, (sprite->data[7] - 128) << 8); if (sprite->data[7] <= 120) { sprite->data[7] = 120; sprite->data[3] = 0; - sprite->callback = sub_8181770; + sprite->callback = RotateUpSlamDown_1; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181770(struct Sprite *sprite) +static void RotateUpSlamDown_1(struct Sprite *sprite) { if (sprite->data[3] == 20) { - sprite->callback = sub_8181794; + sprite->callback = RotateUpSlamDown_2; sprite->data[3] = 0; } sprite->data[3]++; } -static void sub_8181794(struct Sprite *sprite) +static void RotateUpSlamDown_2(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); sprite->data[7] += 2; - sprite->pos2.x = Cos(sprite->data[7], sprite->data[6]) + sprite->data[6]; + sprite->x2 = sprite->data[6] + Cos(sprite->data[7], sprite->data[6]); - sprite->pos2.y = -(Sin(sprite->data[7], sprite->data[6] += 0)); // dummy += 0 is needed to match + sprite->y2 = -(Sin(sprite->data[7], sprite->data[6])); HandleSetAffineData(sprite, 256, 256, (sprite->data[7] - 128) << 8); if (sprite->data[7] >= 128) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; HandleSetAffineData(sprite, 256, 256, 0); sprite->data[2] = 0; - sub_817F77C(sprite); - sprite->callback = pokemonanimfunc_10; + ResetSpriteAfterAnim(sprite); + sprite->callback = Anim_VerticalShake; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181810(struct Sprite *sprite) +static void DeepVerticalSquishBounce(struct Sprite *sprite) { - if (sUnknown_03001240[sprite->data[0]].field_0 != 0) + if (sAnims[sprite->data[0]].delay != 0) { - sUnknown_03001240[sprite->data[0]].field_0--; + sAnims[sprite->data[0]].delay--; } else { @@ -2706,7 +2671,7 @@ static void sub_8181810(struct Sprite *sprite) if (sprite->data[5] == 0) { sprite->data[7] = Sin(sprite->data[4], 256); - sprite->pos2.y = Sin(sprite->data[4], 16); + sprite->y2 = Sin(sprite->data[4], 16); sprite->data[6] = Sin(sprite->data[4], 32); HandleSetAffineData(sprite, 256 - sprite->data[6], 256 + sprite->data[7], 0); if (sprite->data[4] == 128) @@ -2718,126 +2683,126 @@ static void sub_8181810(struct Sprite *sprite) else if (sprite->data[5] == 1) { sprite->data[7] = Sin(sprite->data[4], 32); - sprite->pos2.y = -(Sin(sprite->data[4], 8)); + sprite->y2 = -(Sin(sprite->data[4], 8)); sprite->data[6] = Sin(sprite->data[4], 128); HandleSetAffineData(sprite, 256 + sprite->data[6], 256 - sprite->data[7], 0); if (sprite->data[4] == 128) { - if (sUnknown_03001240[sprite->data[0]].field_4 > 1) + if (sAnims[sprite->data[0]].runs > 1) { - sUnknown_03001240[sprite->data[0]].field_4--; - sUnknown_03001240[sprite->data[0]].field_0 = 10; + sAnims[sprite->data[0]].runs--; + sAnims[sprite->data[0]].delay = 10; sprite->data[4] = 0; sprite->data[5] = 0; } else { HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } } } - sprite->data[4] += sUnknown_03001240[sprite->data[0]].field_6; + sprite->data[4] += sAnims[sprite->data[0]].rotation; } } -static void pokemonanimfunc_30(struct Sprite *sprite) +static void Anim_DeepVerticalSquishBounce(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); - sUnknown_03001240[id].field_6 = 4; - sub_8181810(sprite); - sprite->callback = sub_8181810; + u8 id = sprite->data[0] = AddNewAnim(); + sAnims[id].rotation = 4; + DeepVerticalSquishBounce(sprite); + sprite->callback = DeepVerticalSquishBounce; } -static void pokemonanimfunc_31(struct Sprite *sprite) +static void Anim_HorizontalJumps(struct Sprite *sprite) { s32 counter = sprite->data[2]; - sub_817F70C(sprite); + TryFlipX(sprite); if (counter > 512) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; } else { switch (sprite->data[2] / 128) { case 0: - sprite->pos2.x = -(counter % 128 * 8) / 128; + sprite->x2 = -(counter % 128 * 8) / 128; break; case 1: - sprite->pos2.x = (counter % 128 / 16) - 8; + sprite->x2 = (counter % 128 / 16) - 8; break; case 2: - sprite->pos2.x = (counter % 128 / 16); + sprite->x2 = (counter % 128 / 16); break; case 3: - sprite->pos2.x = -(counter % 128 * 8) / 128 + 8; + sprite->x2 = -(counter % 128 * 8) / 128 + 8; break; } - sprite->pos2.y = -(Sin(counter % 128, 8)); + sprite->y2 = -(Sin(counter % 128, 8)); } sprite->data[2] += 12; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181ABC(struct Sprite *sprite); -static void sub_8181B4C(struct Sprite *sprite); -static void sub_8181C2C(struct Sprite *sprite); +static void HorizontalJumpsVerticalStretch_0(struct Sprite *sprite); +static void HorizontalJumpsVerticalStretch_1(struct Sprite *sprite); +static void HorizontalJumpsVerticalStretch_2(struct Sprite *sprite); -static void pokemonanimfunc_32(struct Sprite *sprite) +static void Anim_HorizontalJumpsVerticalStretch(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); - sUnknown_03001240[id].field_8 = -1; + u8 id = sprite->data[0] = AddNewAnim(); + sAnims[id].data = -1; HandleStartAffineAnim(sprite); sprite->data[3] = 0; - sub_8181ABC(sprite); - sprite->callback = sub_8181ABC; + HorizontalJumpsVerticalStretch_0(sprite); + sprite->callback = HorizontalJumpsVerticalStretch_0; } -static void sub_8181ABC(struct Sprite *sprite) +static void HorizontalJumpsVerticalStretch_0(struct Sprite *sprite) { - if (sUnknown_03001240[sprite->data[0]].field_0 != 0) + if (sAnims[sprite->data[0]].delay != 0) { - sUnknown_03001240[sprite->data[0]].field_0--; + sAnims[sprite->data[0]].delay--; } else { s32 counter; - sub_817F70C(sprite); + TryFlipX(sprite); counter = sprite->data[2]; if (sprite->data[2] > 128) { sprite->data[2] = 0; - sprite->callback = sub_8181B4C; + sprite->callback = HorizontalJumpsVerticalStretch_1; } else { - s32 var = 8 * sUnknown_03001240[sprite->data[0]].field_8; - sprite->pos2.x = var * (counter % 128) / 128; - sprite->pos2.y = -(Sin(counter % 128, 8)); + s32 var = 8 * sAnims[sprite->data[0]].data; + sprite->x2 = var * (counter % 128) / 128; + sprite->y2 = -(Sin(counter % 128, 8)); sprite->data[2] += 12; } - sub_817F70C(sprite); + TryFlipX(sprite); } } -static void sub_8181B4C(struct Sprite *sprite) +static void HorizontalJumpsVerticalStretch_1(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > 48) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[2] = 0; - sprite->callback = sub_8181C2C; + sprite->callback = HorizontalJumpsVerticalStretch_2; } else { @@ -2846,62 +2811,62 @@ static void sub_8181B4C(struct Sprite *sprite) if (sprite->data[2] >= 16 && sprite->data[2] <= 31) { sprite->data[3] += 8; - sprite->pos2.x -= sUnknown_03001240[sprite->data[0]].field_8; + sprite->x2 -= sAnims[sprite->data[0]].data; } yDelta = 0; if (yScale > 256) yDelta = (256 - yScale) / 8; - sprite->pos2.y = -(Sin(sprite->data[3], 20)) - yDelta; + sprite->y2 = -(Sin(sprite->data[3], 20)) - yDelta; HandleSetAffineData(sprite, 256 - Sin(sprite->data[4], 32), yScale, 0); sprite->data[2]++; sprite->data[4] += 8; sprite->data[4] &= 0xFF; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181C2C(struct Sprite *sprite) +static void HorizontalJumpsVerticalStretch_2(struct Sprite *sprite) { s32 counter; - sub_817F70C(sprite); + TryFlipX(sprite); counter = sprite->data[2]; if (counter > 128) { - if (sUnknown_03001240[sprite->data[0]].field_4 > 1) + if (sAnims[sprite->data[0]].runs > 1) { - sUnknown_03001240[sprite->data[0]].field_4--; - sUnknown_03001240[sprite->data[0]].field_0 = 10; + sAnims[sprite->data[0]].runs--; + sAnims[sprite->data[0]].delay = 10; sprite->data[3] = 0; sprite->data[2] = 0; sprite->data[4] = 0; - sprite->callback = sub_8181ABC; + sprite->callback = HorizontalJumpsVerticalStretch_0; } else { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; } else { - s32 var = sUnknown_03001240[sprite->data[0]].field_8; + s32 var = sAnims[sprite->data[0]].data; - sprite->pos2.x = var * ((counter % 128) * 8) / 128 + 8 * -var; - sprite->pos2.y = -(Sin(counter % 128, 8)); + sprite->x2 = var * ((counter % 128) * 8) / 128 + 8 * -var; + sprite->y2 = -(Sin(counter % 128, 8)); } sprite->data[2] += 12; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181CE8(struct Sprite *sprite) +static void RotateToSides(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -2909,47 +2874,47 @@ static void sub_8181CE8(struct Sprite *sprite) sprite->data[2]++; } - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[7] > 254) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; HandleSetAffineData(sprite, 256, 256, 0); - if (sUnknown_03001240[sprite->data[0]].field_4 > 1) + if (sAnims[sprite->data[0]].runs > 1) { - sUnknown_03001240[sprite->data[0]].field_4--; + sAnims[sprite->data[0]].runs--; sprite->data[2] = 0; sprite->data[7] = 0; } else { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } - sub_817F70C(sprite); + TryFlipX(sprite); } else { u16 rotation; - sprite->pos2.x = -(Sin(sprite->data[7], 16)); + sprite->x2 = -(Sin(sprite->data[7], 16)); rotation = Sin(sprite->data[7], 32); HandleSetAffineData(sprite, 256, 256, rotation << 8); - sprite->data[7] += sUnknown_03001240[sprite->data[0]].field_6; - sub_817F70C(sprite); + sprite->data[7] += sAnims[sprite->data[0]].rotation; + TryFlipX(sprite); } } -static void pokemonanimfunc_33(struct Sprite *sprite) +static void Anim_RotateToSides_Fast(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); - sUnknown_03001240[id].field_6 = 4; - sub_8181CE8(sprite); - sprite->callback = sub_8181CE8; + u8 id = sprite->data[0] = AddNewAnim(); + sAnims[id].rotation = 4; + RotateToSides(sprite); + sprite->callback = RotateToSides; } -static void pokemonanimfunc_34(struct Sprite *sprite) +static void Anim_RotateUpToSides(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -2957,30 +2922,30 @@ static void pokemonanimfunc_34(struct Sprite *sprite) sprite->data[2]++; } - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[7] > 254) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sub_817F70C(sprite); + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; + TryFlipX(sprite); } else { u16 rotation; - sprite->pos2.x = -(Sin(sprite->data[7], 16)); - sprite->pos2.y = -(Sin(sprite->data[7] % 128, 16)); + sprite->x2 = -(Sin(sprite->data[7], 16)); + sprite->y2 = -(Sin(sprite->data[7] % 128, 16)); rotation = Sin(sprite->data[7], 32); HandleSetAffineData(sprite, 256, 256, rotation << 8); sprite->data[7] += 8; - sub_817F70C(sprite); + TryFlipX(sprite); } } -static void pokemonanimfunc_35(struct Sprite *sprite) +static void Anim_FlickerIncreasing(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[7] = 0; @@ -3000,28 +2965,28 @@ static void pokemonanimfunc_35(struct Sprite *sprite) if (sprite->data[2] > 10) { sprite->invisible = FALSE; - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } } -static void sub_8181F14(struct Sprite *sprite); -static void sub_8181F50(struct Sprite *sprite); -static void sub_8181FC0(struct Sprite *sprite); +static void TipHopForward_0(struct Sprite *sprite); +static void TipHopForward_1(struct Sprite *sprite); +static void TipHopForward_2(struct Sprite *sprite); -static void pokemonanimfunc_36(struct Sprite *sprite) +static void Anim_TipHopForward(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[7] = 0; - sprite->callback = sub_8181F14; + sprite->callback = TipHopForward_0; } -static void sub_8181F14(struct Sprite *sprite) +static void TipHopForward_0(struct Sprite *sprite) { if (sprite->data[7] > 31) { sprite->data[7] = 32; sprite->data[2] = 0; - sprite->callback = sub_8181F50; + sprite->callback = TipHopForward_1; } else { @@ -3031,45 +2996,45 @@ static void sub_8181F14(struct Sprite *sprite) HandleSetAffineData(sprite, 256, 256, sprite->data[7] << 8); } -static void sub_8181F50(struct Sprite *sprite) +static void TipHopForward_1(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > 512) { - sprite->callback = sub_8181FC0; + sprite->callback = TipHopForward_2; sprite->data[6] = 0; } else { - sprite->pos2.x = -(sprite->data[2] * 16) / 512; - sprite->pos2.y = -(Sin(sprite->data[2] % 128, 4)); + sprite->x2 = -(sprite->data[2] * 16) / 512; + sprite->y2 = -(Sin(sprite->data[2] % 128, 4)); sprite->data[2] += 12; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8181FC0(struct Sprite *sprite) +static void TipHopForward_2(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); sprite->data[7] -= 2; if (sprite->data[7] < 0) { sprite->data[7] = 0; - sprite->pos2.x = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { - sprite->pos2.x = -(Sin(sprite->data[7] * 2, 16)); + sprite->x2 = -(Sin(sprite->data[7] * 2, 16)); } HandleSetAffineData(sprite, 256, 256, sprite->data[7] << 8); - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_37(struct Sprite *sprite) +static void Anim_PivotShake(struct Sprite *sprite) { u16 rotation; @@ -3080,93 +3045,93 @@ static void pokemonanimfunc_37(struct Sprite *sprite) sprite->data[7] = 0; } - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[7] > 255) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[7] = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { sprite->data[7] += 16; - sprite->pos2.x = -(Sin(sprite->data[7] % 128, 8)); - sprite->pos2.y = -(Sin(sprite->data[7] % 128, 8)); + sprite->x2 = -(Sin(sprite->data[7] % 128, 8)); + sprite->y2 = -(Sin(sprite->data[7] % 128, 8)); } rotation = Sin(sprite->data[7] % 128, 16); HandleSetAffineData(sprite, 256, 256, rotation << 8); - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_81820FC(struct Sprite *sprite); -static void sub_818216C(struct Sprite *sprite); -static void sub_81821CC(struct Sprite *sprite); -static void sub_8182248(struct Sprite *sprite); +static void TipAndShake_0(struct Sprite *sprite); +static void TipAndShake_1(struct Sprite *sprite); +static void TipAndShake_2(struct Sprite *sprite); +static void TipAndShake_3(struct Sprite *sprite); -static void pokemonanimfunc_38(struct Sprite *sprite) +static void Anim_TipAndShake(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[7] = 0; sprite->data[4] = 0; - sprite->callback = sub_81820FC; + sprite->callback = TipAndShake_0; } -static void sub_81820FC(struct Sprite *sprite) +static void TipAndShake_0(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[7] > 24) { if (++sprite->data[4] > 4) { sprite->data[4] = 0; - sprite->callback = sub_818216C; + sprite->callback = TipAndShake_1; } } else { sprite->data[7] += 2; - sprite->pos2.x = Sin(sprite->data[7], 8); - sprite->pos2.y = -(Sin(sprite->data[7], 8)); + sprite->x2 = Sin(sprite->data[7], 8); + sprite->y2 = -(Sin(sprite->data[7], 8)); } HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8); - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_818216C(struct Sprite *sprite) +static void TipAndShake_1(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[7] > 32) { sprite->data[6] = 1; - sprite->callback = sub_81821CC; + sprite->callback = TipAndShake_2; } else { sprite->data[7] += 2; - sprite->pos2.x = Sin(sprite->data[7], 8); - sprite->pos2.y = -(Sin(sprite->data[7], 8)); + sprite->x2 = Sin(sprite->data[7], 8); + sprite->y2 = -(Sin(sprite->data[7], 8)); } HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8); - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_81821CC(struct Sprite *sprite) +static void TipAndShake_2(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); sprite->data[7] += (sprite->data[6] * 4); if (sprite->data[5] > 9) { sprite->data[7] = 32; - sprite->callback = sub_8182248; + sprite->callback = TipAndShake_3; } - sprite->pos2.x = Sin(sprite->data[7], 8); - sprite->pos2.y = -(Sin(sprite->data[7], 8)); + sprite->x2 = Sin(sprite->data[7], 8); + sprite->y2 = -(Sin(sprite->data[7], 8)); if (sprite->data[7] <= 28 || sprite->data[7] >= 36) { sprite->data[6] *= -1; @@ -3174,36 +3139,36 @@ static void sub_81821CC(struct Sprite *sprite) } HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8); - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8182248(struct Sprite *sprite) +static void TipAndShake_3(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[7] <= 0) { sprite->data[7] = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { sprite->data[7] -= 2; - sprite->pos2.x = Sin(sprite->data[7], 8); - sprite->pos2.y = -(Sin(sprite->data[7], 8)); + sprite->x2 = Sin(sprite->data[7], 8); + sprite->y2 = -(Sin(sprite->data[7], 8)); } HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8); - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_39(struct Sprite *sprite) +static void Anim_VibrateToCorners(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > 40) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; } else { @@ -3215,23 +3180,23 @@ static void pokemonanimfunc_39(struct Sprite *sprite) if ((sprite->data[2] % 4) / 2 == 0) { - sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 16) * sign; - sprite->pos2.y = -(sprite->pos2.x); + sprite->x2 = Sin((sprite->data[2] * 128 / 40) % 256, 16) * sign; + sprite->y2 = -(sprite->x2); } else { - sprite->pos2.x = -(Sin((sprite->data[2] * 128 / 40) % 256, 16)) * sign; - sprite->pos2.y = sprite->pos2.x; + sprite->x2 = -(Sin((sprite->data[2] * 128 / 40) % 256, 16)) * sign; + sprite->y2 = sprite->x2; } } sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_3A(struct Sprite *sprite) +static void Anim_GrowInStages(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); @@ -3261,8 +3226,8 @@ static void pokemonanimfunc_3A(struct Sprite *sprite) { sprite->data[7] = 64; HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } var = Cos(sprite->data[7], 64); } @@ -3294,10 +3259,10 @@ static void pokemonanimfunc_3A(struct Sprite *sprite) HandleSetAffineData(sprite, 256 - var, 256 - var, 0); } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_3B(struct Sprite *sprite) +static void Anim_VerticalSpring(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3308,23 +3273,23 @@ static void pokemonanimfunc_3B(struct Sprite *sprite) if (sprite->data[7] > 512) { - sprite->pos2.y = 0; + sprite->y2 = 0; HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { s16 yScale; - sprite->pos2.y = Sin(sprite->data[7] % 256, 8); + sprite->y2 = Sin(sprite->data[7] % 256, 8); sprite->data[7] += 8; yScale = Sin(sprite->data[7] % 128, 96); HandleSetAffineData(sprite, 256, yScale + 256, 0); } } -static void pokemonanimfunc_3C(struct Sprite *sprite) +static void Anim_VerticalRepeatedSpring(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3335,34 +3300,34 @@ static void pokemonanimfunc_3C(struct Sprite *sprite) if (sprite->data[7] > 256) { - sprite->pos2.y = 0; + sprite->y2 = 0; HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { s16 yScale; - sprite->pos2.y = Sin(sprite->data[7], 16); + sprite->y2 = Sin(sprite->data[7], 16); sprite->data[7] += 4; yScale = Sin((sprite->data[7] % 64) * 2, 128); HandleSetAffineData(sprite, 256, yScale + 256, 0); } } -static void sub_81825F8(struct Sprite *sprite); -static void sub_8182648(struct Sprite *sprite); -static void sub_81826F8(struct Sprite *sprite); +static void SpringRising_0(struct Sprite *sprite); +static void SpringRising_1(struct Sprite *sprite); +static void SpringRising_2(struct Sprite *sprite); -static void pokemonanimfunc_3D(struct Sprite *sprite) +static void Anim_SpringRising(struct Sprite *sprite) { HandleStartAffineAnim(sprite); - sprite->callback = sub_81825F8; + sprite->callback = SpringRising_0; sprite->data[7] = 0; } -static void sub_81825F8(struct Sprite *sprite) +static void SpringRising_0(struct Sprite *sprite) { s16 yScale; @@ -3371,7 +3336,7 @@ static void sub_81825F8(struct Sprite *sprite) { sprite->data[7] = 0; sprite->data[6] = 0; - sprite->callback = sub_8182648; + sprite->callback = SpringRising_1; yScale = Sin(64, 128); // 128 * 1 = 128 } else @@ -3382,7 +3347,7 @@ static void sub_81825F8(struct Sprite *sprite) HandleSetAffineData(sprite, 256, 256 + yScale, 0); } -static void sub_8182648(struct Sprite *sprite) +static void SpringRising_1(struct Sprite *sprite) { s16 yScale; @@ -3397,7 +3362,7 @@ static void sub_8182648(struct Sprite *sprite) { s16 sign, index; - sprite->pos2.y = -(sprite->data[6] * 4) - Sin(sprite->data[7], 8); + sprite->y2 = -(sprite->data[6] * 4) - Sin(sprite->data[7], 8); if (sprite->data[7] > 63) { sign = -1; @@ -3416,49 +3381,49 @@ static void sub_8182648(struct Sprite *sprite) if (sprite->data[6] == 3) { sprite->data[7] = 0; - sprite->callback = sub_81826F8; + sprite->callback = SpringRising_2; } } -static void sub_81826F8(struct Sprite *sprite) +static void SpringRising_2(struct Sprite *sprite) { s16 yScale; sprite->data[7] += 8; yScale = Cos(sprite->data[7], 128); - sprite->pos2.y = -(Cos(sprite->data[7], 12)); + sprite->y2 = -(Cos(sprite->data[7], 12)); if (sprite->data[7] > 63) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.y = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; + sprite->y2 = 0; HandleSetAffineData(sprite, 256, 256, 0); } HandleSetAffineData(sprite, 256, 256 + yScale, 0); } -static void sub_8182764(struct Sprite *sprite) +static void HorizontalSpring(struct Sprite *sprite) { if (sprite->data[7] > sprite->data[5]) { - sprite->pos2.x = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; HandleSetAffineData(sprite, 256, 256, 0); } else { s16 xScale; - sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]); + sprite->x2 = Sin(sprite->data[7] % 256, sprite->data[4]); sprite->data[7] += sprite->data[6]; xScale = Sin(sprite->data[7] % 128, 96); HandleSetAffineData(sprite, 256 + xScale, 256, 0); } } -static void pokemonanimfunc_3E(struct Sprite *sprite) +static void Anim_HorizontalSpring(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3470,30 +3435,30 @@ static void pokemonanimfunc_3E(struct Sprite *sprite) sprite->data[4] = 8; } - sub_8182764(sprite); + HorizontalSpring(sprite); } -static void sub_8182830(struct Sprite *sprite) +static void HorizontalRepeatedSpring(struct Sprite *sprite) { if (sprite->data[7] > sprite->data[5]) { - sprite->pos2.x = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; HandleSetAffineData(sprite, 256, 256, 0); } else { s16 xScale; - sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]); + sprite->x2 = Sin(sprite->data[7] % 256, sprite->data[4]); sprite->data[7] += sprite->data[6]; xScale = Sin((sprite->data[7] % 64) * 2, 128); HandleSetAffineData(sprite, 256 + xScale, 256, 0); } } -static void pokemonanimfunc_3F(struct Sprite *sprite) +static void Anim_HorizontalRepeatedSpring_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3505,12 +3470,12 @@ static void pokemonanimfunc_3F(struct Sprite *sprite) sprite->data[4] = 16; } - sub_8182830(sprite); + HorizontalRepeatedSpring(sprite); } -static void pokemonanimfunc_40(struct Sprite *sprite) +static void Anim_HorizontalSlideShrink(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); @@ -3520,27 +3485,27 @@ static void pokemonanimfunc_40(struct Sprite *sprite) if (sprite->data[7] > 512) { - sprite->pos2.x = 0; - sub_817F77C(sprite); + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); HandleSetAffineData(sprite, 256, 256, 0); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } else { s16 scale; - sprite->pos2.x = Sin(sprite->data[7] % 256, 8); + sprite->x2 = Sin(sprite->data[7] % 256, 8); sprite->data[7] += 8; scale = Sin(sprite->data[7] % 128, 96); HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0); } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_41(struct Sprite *sprite) +static void Anim_LungeGrow(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); @@ -3550,27 +3515,27 @@ static void pokemonanimfunc_41(struct Sprite *sprite) if (sprite->data[7] > 512) { - sprite->pos2.x = 0; - sub_817F77C(sprite); + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); HandleSetAffineData(sprite, 256, 256, 0); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } else { s16 scale; - sprite->pos2.x = -(Sin((sprite->data[7] % 256) / 2, 16)); + sprite->x2 = -(Sin((sprite->data[7] % 256) / 2, 16)); sprite->data[7] += 8; scale = -(Sin((sprite->data[7] % 256) / 2, 64)); HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0); } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_42(struct Sprite *sprite) +static void Anim_CircleIntoBackground(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); @@ -3580,30 +3545,30 @@ static void pokemonanimfunc_42(struct Sprite *sprite) if (sprite->data[7] > 512) { - sprite->pos2.x = 0; - sub_817F77C(sprite); + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); HandleSetAffineData(sprite, 256, 256, 0); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } else { s16 scale; - sprite->pos2.x = -(Sin(sprite->data[7] % 256 , 8)); + sprite->x2 = -(Sin(sprite->data[7] % 256 , 8)); sprite->data[7] += 8; scale = Sin((sprite->data[7] % 256) / 2, 96); HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0); } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_43(struct Sprite *sprite) +static void Anim_RapidHorizontalHops(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > 2048) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; sprite->data[6] = 0; } else @@ -3612,29 +3577,29 @@ static void pokemonanimfunc_43(struct Sprite *sprite) switch (caseVar) { case 0: - sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512; + sprite->x2 = -(sprite->data[2] % 512 * 16) / 512; break; case 1: - sprite->pos2.x = (sprite->data[2] % 512 / 32) - 16; + sprite->x2 = (sprite->data[2] % 512 / 32) - 16; break; case 2: - sprite->pos2.x = (sprite->data[2] % 512) / 32; + sprite->x2 = (sprite->data[2] % 512) / 32; break; case 3: - sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16; + sprite->x2 = -(sprite->data[2] % 512 * 16) / 512 + 16; break; } - sprite->pos2.y = -(Sin(sprite->data[2] % 128, 4)); + sprite->y2 = -(Sin(sprite->data[2] % 128, 4)); sprite->data[2] += 24; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_44(struct Sprite *sprite) +static void Anim_FourPetal(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) { sprite->data[6] = 0; @@ -3663,83 +3628,83 @@ static void pokemonanimfunc_44(struct Sprite *sprite) switch (sprite->data[6]) { case 1: - sprite->pos2.x = -(Cos(sprite->data[7], 8)); - sprite->pos2.y = Sin(sprite->data[7], 8) - 8; + sprite->x2 = -(Cos(sprite->data[7], 8)); + sprite->y2 = Sin(sprite->data[7], 8) - 8; break; case 2: - sprite->pos2.x = Sin(sprite->data[7] + 128, 8) + 8; - sprite->pos2.y = -(Cos(sprite->data[7], 8)); + sprite->x2 = Sin(sprite->data[7] + 128, 8) + 8; + sprite->y2 = -(Cos(sprite->data[7], 8)); break; case 3: - sprite->pos2.x = Cos(sprite->data[7], 8); - sprite->pos2.y = Sin(sprite->data[7] + 128, 8) + 8; + sprite->x2 = Cos(sprite->data[7], 8); + sprite->y2 = Sin(sprite->data[7] + 128, 8) + 8; break; case 0: case 4: - sprite->pos2.x = Sin(sprite->data[7], 8) - 8; - sprite->pos2.y = Cos(sprite->data[7], 8); + sprite->x2 = Sin(sprite->data[7], 8) - 8; + sprite->y2 = Cos(sprite->data[7], 8); break; default: - sprite->pos2.x = 0; - sprite->pos2.y = 0; - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; + sprite->callback = WaitAnimEnd; break; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_45(struct Sprite *sprite) +static void Anim_VerticalSquishBounce_Slow(struct Sprite *sprite) { sprite->data[0] = 32; - sub_8180714(sprite); - sprite->callback = sub_8180714; + VerticalSquishBounce(sprite); + sprite->callback = VerticalSquishBounce; } -static void pokemonanimfunc_46(struct Sprite *sprite) +static void Anim_HorizontalSlide_Slow(struct Sprite *sprite) { sprite->data[0] = 80; - sub_817F8FC(sprite); - sprite->callback = sub_817F8FC; + HorizontalSlide(sprite); + sprite->callback = HorizontalSlide; } -static void pokemonanimfunc_47(struct Sprite *sprite) +static void Anim_VerticalSlide_Slow(struct Sprite *sprite) { sprite->data[0] = 80; - sub_817F978(sprite); - sprite->callback = sub_817F978; + VerticalSlide(sprite); + sprite->callback = VerticalSlide; } -static void pokemonanimfunc_48(struct Sprite *sprite) +static void Anim_BounceRotateToSides_Small(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 2048; - sUnknown_03001240[id].field_8 = sprite->data[6]; - sub_8180900(sprite); - sprite->callback = sub_8180900; + sAnims[id].rotation = 2048; + sAnims[id].data = sprite->data[6]; + BounceRotateToSides(sprite); + sprite->callback = BounceRotateToSides; } -static void pokemonanimfunc_49(struct Sprite *sprite) +static void Anim_BounceRotateToSides_Slow(struct Sprite *sprite) { sprite->data[6] = 1; - pokemonanimfunc_05(sprite); + Anim_BounceRotateToSides(sprite); } -static void pokemonanimfunc_4A(struct Sprite *sprite) +static void Anim_BounceRotateToSides_SmallSlow(struct Sprite *sprite) { sprite->data[6] = 1; - pokemonanimfunc_48(sprite); + Anim_BounceRotateToSides_Small(sprite); } -static void pokemonanimfunc_4B(struct Sprite *sprite) +static void Anim_ZigzagSlow(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[0] = 0; if (sprite->data[0] <= 0) { - sub_817FC20(sprite); + Zigzag(sprite); sprite->data[0] = 1; } else @@ -3748,201 +3713,202 @@ static void pokemonanimfunc_4B(struct Sprite *sprite) } } -static void pokemonanimfunc_4C(struct Sprite *sprite) +static void Anim_HorizontalShake_Slow(struct Sprite *sprite) { sprite->data[0] = 30; sprite->data[7] = 3; - sub_817FCDC(sprite); - sprite->callback = sub_817FCDC; + HorizontalShake(sprite); + sprite->callback = HorizontalShake; } -static void pokemonanimfunc_4D(struct Sprite *sprite) +static void Anim_VertialShake_Slow(struct Sprite *sprite) { sprite->data[0] = 30; - sub_817FD44(sprite); - sprite->callback = sub_817FD44; + VerticalShake(sprite); + sprite->callback = VerticalShake; } -static void pokemonanimfunc_4E(struct Sprite *sprite) +static void Anim_Twist_Twice(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 1024; - sUnknown_03001240[id].field_0 = 0; - sUnknown_03001240[id].field_4 = 2; - sub_817FE30(sprite); - sprite->callback = sub_817FE30; + sAnims[id].rotation = 1024; + sAnims[id].delay = 0; + sAnims[id].runs = 2; + Twist(sprite); + sprite->callback = Twist; } -static void pokemonanimfunc_4F(struct Sprite *sprite) +static void Anim_CircleCounterclockwise_Slow(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 512; - sUnknown_03001240[id].field_8 = 3; - sUnknown_03001240[id].field_2 = 12; - sub_817FFF0(sprite); - sprite->callback = sub_817FFF0; + sAnims[id].rotation = 512; + sAnims[id].data = 3; + sAnims[id].speed = 12; + CircleCounterclockwise(sprite); + sprite->callback = CircleCounterclockwise; } -static void pokemonanimfunc_50(struct Sprite *sprite) +static void Anim_VerticalShakeTwice_Slow(struct Sprite *sprite) { sprite->data[0] = 24; - sub_818031C(sprite); - sprite->callback = sub_818031C; + VerticalShakeTwice(sprite); + sprite->callback = VerticalShakeTwice; } -static void pokemonanimfunc_51(struct Sprite *sprite) +static void Anim_VerticalSlideWobble_Small(struct Sprite *sprite) { sprite->data[0] = 5; - sub_81804F8(sprite); - sprite->callback = sub_81804F8; + VerticalSlideWobble(sprite); + sprite->callback = VerticalSlideWobble; } -static void pokemonanimfunc_52(struct Sprite *sprite) +static void Anim_VerticalJumps_Small(struct Sprite *sprite) { sprite->data[0] = 3; - sub_817F9F4(sprite); - sprite->callback = sub_817F9F4; + VerticalJumps(sprite); + sprite->callback = VerticalJumps; } -static void pokemonanimfunc_53(struct Sprite *sprite) +static void Anim_Spin(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_0 = 60; - sUnknown_03001240[id].field_8 = 30; - sub_817FF3C(sprite); - sprite->callback = sub_817FF3C; + sAnims[id].delay = 60; + sAnims[id].data = 30; + Spin(sprite); + sprite->callback = Spin; } -static void pokemonanimfunc_54(struct Sprite *sprite) +static void Anim_TumblingFrontFlip_Twice(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_2 = 1; - sUnknown_03001240[id].field_4 = 2; - sub_8181214(sprite); - sprite->callback = sub_8181214; + sAnims[id].speed = 1; + sAnims[id].runs = 2; + TumblingFrontFlip(sprite); + sprite->callback = TumblingFrontFlip; } -static void pokemonanimfunc_55(struct Sprite *sprite) +static void Anim_DeepVerticalSquishBounce_Twice(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 4; - sUnknown_03001240[id].field_4 = 2; - sub_8181810(sprite); - sprite->callback = sub_8181810; + sAnims[id].rotation = 4; + sAnims[id].runs = 2; + DeepVerticalSquishBounce(sprite); + sprite->callback = DeepVerticalSquishBounce; } -static void pokemonanimfunc_56(struct Sprite *sprite) +static void Anim_HorizontalJumpsVerticalStretch_Twice(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_8 = 1; - sUnknown_03001240[id].field_4 = 2; + sAnims[id].data = 1; + sAnims[id].runs = 2; HandleStartAffineAnim(sprite); sprite->data[3] = 0; - sub_8181ABC(sprite); - sprite->callback = sub_8181ABC; + HorizontalJumpsVerticalStretch_0(sprite); + sprite->callback = HorizontalJumpsVerticalStretch_0; } -static void pokemonanimfunc_07(struct Sprite *sprite) +static void Anim_RotateToSides(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 2; - sub_8181CE8(sprite); - sprite->callback = sub_8181CE8; + sAnims[id].rotation = 2; + RotateToSides(sprite); + sprite->callback = RotateToSides; } -static void pokemonanimfunc_08(struct Sprite *sprite) +static void Anim_RotateToSides_Twice(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 4; - sUnknown_03001240[id].field_4 = 2; - sub_8181CE8(sprite); - sprite->callback = sub_8181CE8; + sAnims[id].rotation = 4; + sAnims[id].runs = 2; + RotateToSides(sprite); + sprite->callback = RotateToSides; } -static void pokemonanimfunc_0B(struct Sprite *sprite) +static void Anim_SwingConcave(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_8 = 100; - sub_81814D4(sprite); - sprite->callback = sub_81814D4; + sAnims[id].data = 100; + SwingConcave(sprite); + sprite->callback = SwingConcave; } -static void pokemonanimfunc_0C(struct Sprite *sprite) +static void Anim_SwingConcave_Fast(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_8 = 50; - sUnknown_03001240[id].field_4 = 2; - sub_81814D4(sprite); - sprite->callback = sub_81814D4; + sAnims[id].data = 50; + sAnims[id].runs = 2; + SwingConcave(sprite); + sprite->callback = SwingConcave; } -static void pokemonanimfunc_0D(struct Sprite *sprite) +static void Anim_SwingConvex(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_8 = 100; - sub_81815D4(sprite); - sprite->callback = sub_81815D4; + sAnims[id].data = 100; + SwingConvex(sprite); + sprite->callback = SwingConvex; } -static void pokemonanimfunc_0E(struct Sprite *sprite) +static void Anim_SwingConvex_Fast(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_8 = 50; - sUnknown_03001240[id].field_4 = 2; - sub_81815D4(sprite); - sprite->callback = sub_81815D4; + sAnims[id].data = 50; + sAnims[id].runs = 2; + SwingConvex(sprite); + sprite->callback = SwingConvex; } -static void sub_8183140(struct Sprite *sprite) +// Very similar to VerticalShake, used by back animations only +static void VerticalShakeBack(struct Sprite *sprite) { s32 counter = sprite->data[2]; if (counter > 2304) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->y2 = 0; } else { - sprite->pos2.y = Sin((counter + 192) % 256, sprite->data[7]) + sprite->data[7]; + sprite->y2 = Sin((counter + 192) % 256, sprite->data[7]) + sprite->data[7]; } sprite->data[2] += sprite->data[0]; } -static void pokemonanimfunc_57(struct Sprite *sprite) +static void Anim_VerticalShakeBack(struct Sprite *sprite) { sprite->data[0] = 60; sprite->data[7] = 3; - sub_8183140(sprite); - sprite->callback = sub_8183140; + VerticalShakeBack(sprite); + sprite->callback = VerticalShakeBack; } -static void pokemonanimfunc_58(struct Sprite *sprite) +static void Anim_VerticalShakeBack_Slow(struct Sprite *sprite) { sprite->data[0] = 30; sprite->data[7] = 3; - sub_8183140(sprite); - sprite->callback = sub_8183140; + VerticalShakeBack(sprite); + sprite->callback = VerticalShakeBack; } -static void pokemonanimfunc_59(struct Sprite *sprite) +static void Anim_VerticalShakeHorizontalSlide_Slow(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > 2048) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; sprite->data[6] = 0; } else @@ -3951,39 +3917,39 @@ static void pokemonanimfunc_59(struct Sprite *sprite) switch (divCase) { case 0: - sprite->pos2.x = (sprite->data[2] % 512) / 32; + sprite->x2 = (sprite->data[2] % 512) / 32; break; case 2: - sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512; + sprite->x2 = -(sprite->data[2] % 512 * 16) / 512; break; case 1: - sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16; + sprite->x2 = -(sprite->data[2] % 512 * 16) / 512 + 16; break; case 3: - sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16; + sprite->x2 = (sprite->data[2] % 512) / 32 - 16; break; } - sprite->pos2.y = Sin(sprite->data[2] % 128, 4); + sprite->y2 = Sin(sprite->data[2] % 128, 4); sprite->data[2] += 24; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_81832C8(struct Sprite *sprite) +static void VerticalStretchBothEnds(struct Sprite *sprite) { s16 index1 = 0, index2 = 0; if (sprite->data[5] > sprite->data[6]) { - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[5] = 0; HandleSetAffineData(sprite, 256, 256, 0); if (sprite->data[4] <= 1) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -4005,7 +3971,7 @@ static void sub_81832C8(struct Sprite *sprite) index1 = sprite->data[7] & 0xFF; } - if (sprite->data[1] == 0) + if (!sprite->sDontFlip) xScale = -256 - Sin(index2, 16); else xScale = 256 + Sin(index2, 16); @@ -4017,7 +3983,7 @@ static void sub_81832C8(struct Sprite *sprite) } } -static void pokemonanimfunc_5A(struct Sprite *sprite) +static void Anim_VerticalStretchBothEnds_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4030,10 +3996,10 @@ static void pokemonanimfunc_5A(struct Sprite *sprite) sprite->data[7] = 0; } - sub_81832C8(sprite); + VerticalStretchBothEnds(sprite); } -static void sub_8183418(struct Sprite *sprite) +static void HorizontalStretchFar(struct Sprite *sprite) { s16 index1 = 0, index2; @@ -4043,8 +4009,8 @@ static void sub_8183418(struct Sprite *sprite) HandleSetAffineData(sprite, 256, 256, 0); if (sprite->data[4] <= 1) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -4068,7 +4034,7 @@ static void sub_8183418(struct Sprite *sprite) amplitude = sprite->data[3]; - if (sprite->data[1] == 0) + if (!sprite->sDontFlip) xScale = -256 + Sin(index2, amplitude) + Sin(index1, amplitude / 5 * 2); else xScale = 256 - Sin(index2, amplitude) - Sin(index1, amplitude / 5 * 2); @@ -4078,7 +4044,7 @@ static void sub_8183418(struct Sprite *sprite) } } -static void pokemonanimfunc_5B(struct Sprite *sprite) +static void Anim_HorizontalStretchFar_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4091,34 +4057,33 @@ static void pokemonanimfunc_5B(struct Sprite *sprite) sprite->data[7] = 0; } - sub_8183418(sprite); + HorizontalStretchFar(sprite); } -static void sub_8183574(struct Sprite *sprite) +static void VerticalShakeLowTwice(struct Sprite *sprite) { u8 var6, var7; u8 var8 = sprite->data[2]; u8 var9 = sprite->data[6]; - u8 var5 = sUnknown_0860AA80[sprite->data[5]][0]; - u8 var2 = var5; - if (var5 != 0xFF) + u8 var5 = sVerticalShakeData[sprite->data[5]][0]; + if (var5 != (u8)-1) var5 = sprite->data[7]; - else - var5 = 0xFF; // needed to match - var6 = sUnknown_0860AA80[sprite->data[5]][1]; + var6 = sVerticalShakeData[sprite->data[5]][1]; var7 = 0; - if (var2 != 0xFE) + if (sVerticalShakeData[sprite->data[5]][0] != (u8)-2) var7 = (var6 - var9) * var5 / var6; + else + var7 = 0; - if (var5 == 0xFF) + if (var5 == (u8)-1) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->y2 = 0; } else { - sprite->pos2.y = Sin((var8 + 192) % 256, var7) + var7; + sprite->y2 = Sin((var8 + 192) % 256, var7) + var7; if (var9 == var6) { sprite->data[5]++; @@ -4132,35 +4097,36 @@ static void sub_8183574(struct Sprite *sprite) } } -static void pokemonanimfunc_5C(struct Sprite *sprite) +// Very similar in appearance to Anim_VerticalShakeTwice (especially the fast variant), but deeper +static void Anim_VerticalShakeLowTwice(struct Sprite *sprite) { sprite->data[0] = 40; sprite->data[7] = 6; - sub_8183574(sprite); - sprite->callback = sub_8183574; + VerticalShakeLowTwice(sprite); + sprite->callback = VerticalShakeLowTwice; } -static void pokemonanimfunc_5D(struct Sprite *sprite) +static void Anim_HorizontalShake_Fast(struct Sprite *sprite) { sprite->data[0] = 70; sprite->data[7] = 6; - sub_817FCDC(sprite); - sprite->callback = sub_817FCDC; + HorizontalShake(sprite); + sprite->callback = HorizontalShake; } -static void pokemonanimfunc_5E(struct Sprite *sprite) +static void Anim_HorizontalSlide_Fast(struct Sprite *sprite) { sprite->data[0] = 20; - sub_817F8FC(sprite); - sprite->callback = sub_817F8FC; + HorizontalSlide(sprite); + sprite->callback = HorizontalSlide; } -static void pokemonanimfunc_5F(struct Sprite *sprite) +static void Anim_HorizontalVibrate_Fast(struct Sprite *sprite) { if (sprite->data[2] > 40) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; } else { @@ -4170,18 +4136,18 @@ static void pokemonanimfunc_5F(struct Sprite *sprite) else sign = -1; - sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 9) * sign; + sprite->x2 = Sin((sprite->data[2] * 128 / 40) % 256, 9) * sign; } sprite->data[2]++; } -static void pokemonanimfunc_60(struct Sprite *sprite) +static void Anim_HorizontalVibrate_Fastest(struct Sprite *sprite) { if (sprite->data[2] > 40) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; } else { @@ -4191,59 +4157,59 @@ static void pokemonanimfunc_60(struct Sprite *sprite) else sign = -1; - sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 12) * sign; + sprite->x2 = Sin((sprite->data[2] * 128 / 40) % 256, 12) * sign; } sprite->data[2]++; } -static void pokemonanimfunc_61(struct Sprite *sprite) +static void Anim_VerticalShakeBack_Fast(struct Sprite *sprite) { sprite->data[0] = 70; sprite->data[7] = 6; - sub_8183140(sprite); - sprite->callback = sub_8183140; + VerticalShakeBack(sprite); + sprite->callback = VerticalShakeBack; } -static void pokemonanimfunc_62(struct Sprite *sprite) +static void Anim_VerticalShakeLowTwice_Slow(struct Sprite *sprite) { sprite->data[0] = 24; sprite->data[7] = 6; - sub_8183574(sprite); - sprite->callback = sub_8183574; + VerticalShakeLowTwice(sprite); + sprite->callback = VerticalShakeLowTwice; } -static void pokemonanimfunc_63(struct Sprite *sprite) +static void Anim_VerticalShakeLowTwice_Fast(struct Sprite *sprite) { sprite->data[0] = 56; sprite->data[7] = 9; - sub_8183574(sprite); - sprite->callback = sub_8183574; + VerticalShakeLowTwice(sprite); + sprite->callback = VerticalShakeLowTwice; } -static void pokemonanimfunc_64(struct Sprite *sprite) +static void Anim_CircleCounterclockwise_Long(struct Sprite *sprite) { - u8 id = sprite->data[0] = sub_817F758(); + u8 id = sprite->data[0] = AddNewAnim(); - sUnknown_03001240[id].field_6 = 1024; - sUnknown_03001240[id].field_8 = 6; - sUnknown_03001240[id].field_2 = 24; - sub_817FFF0(sprite); - sprite->callback = sub_817FFF0; + sAnims[id].rotation = 1024; + sAnims[id].data = 6; + sAnims[id].speed = 24; + CircleCounterclockwise(sprite); + sprite->callback = CircleCounterclockwise; } -static void sub_81837DC(struct Sprite *sprite) +static void GrowStutter(struct Sprite *sprite) { s16 index1 = 0, index2 = 0; if (sprite->data[5] > sprite->data[6]) { - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->data[5] = 0; HandleSetAffineData(sprite, 256, 256, 0); if (sprite->data[4] <= 1) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -4267,7 +4233,7 @@ static void sub_81837DC(struct Sprite *sprite) amplitude = sprite->data[3]; - if (sprite->data[1] == 0) + if (!sprite->sDontFlip) xScale = Sin(index2, amplitude) + (Sin(index1, amplitude / 5 * 2) - 256); else xScale = 256 - Sin(index1, amplitude / 5 * 2) - Sin(index2, amplitude); @@ -4278,7 +4244,7 @@ static void sub_81837DC(struct Sprite *sprite) } } -static void pokemonanimfunc_65(struct Sprite *sprite) +static void Anim_GrowStutter_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4291,15 +4257,15 @@ static void pokemonanimfunc_65(struct Sprite *sprite) sprite->data[7] = 0; } - sub_81837DC(sprite); + GrowStutter(sprite); } -static void pokemonanimfunc_66(struct Sprite *sprite) +static void Anim_VerticalShakeHorizontalSlide(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > 2048) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; sprite->data[6] = 0; } else @@ -4308,32 +4274,32 @@ static void pokemonanimfunc_66(struct Sprite *sprite) switch (divCase) { case 0: - sprite->pos2.x = (sprite->data[2] % 512) / 32; + sprite->x2 = (sprite->data[2] % 512) / 32; break; case 2: - sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512; + sprite->x2 = -(sprite->data[2] % 512 * 16) / 512; break; case 1: - sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16; + sprite->x2 = -(sprite->data[2] % 512 * 16) / 512 + 16; break; case 3: - sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16; + sprite->x2 = (sprite->data[2] % 512) / 32 - 16; break; } - sprite->pos2.y = Sin(sprite->data[2] % 128, 4); + sprite->y2 = Sin(sprite->data[2] % 128, 4); sprite->data[2] += 48; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_67(struct Sprite *sprite) +static void Anim_VerticalShakeHorizontalSlide_Fast(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] > 2048) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; sprite->data[6] = 0; } else @@ -4342,27 +4308,27 @@ static void pokemonanimfunc_67(struct Sprite *sprite) switch (divCase) { case 0: - sprite->pos2.x = (sprite->data[2] % 512) / 32; + sprite->x2 = (sprite->data[2] % 512) / 32; break; case 2: - sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512; + sprite->x2 = -(sprite->data[2] % 512 * 16) / 512; break; case 1: - sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16; + sprite->x2 = -(sprite->data[2] % 512 * 16) / 512 + 16; break; case 3: - sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16; + sprite->x2 = (sprite->data[2] % 512) / 32 - 16; break; } - sprite->pos2.y = Sin(sprite->data[2] % 96, 4); + sprite->y2 = Sin(sprite->data[2] % 96, 4); sprite->data[2] += 64; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static const s8 sUnknown_0860ADBE[][3] = +static const s8 sTriangleDownData[][3] = { // x y timer {1, 1, 12}, @@ -4371,67 +4337,67 @@ static const s8 sUnknown_0860ADBE[][3] = {0, 0, 0} }; -static void sub_8183B4C(struct Sprite *sprite) +static void TriangleDown(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) sprite->data[3] = 0; - if (sUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == sprite->data[2]) + if (sTriangleDownData[sprite->data[3]][2] / sprite->data[5] == sprite->data[2]) { sprite->data[3]++; sprite->data[2] = 0; } - if (sUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == 0) + if (sTriangleDownData[sprite->data[3]][2] / sprite->data[5] == 0) { if (--sprite->data[6] == 0) - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; else sprite->data[2] = 0; } else { s32 amplitude = sprite->data[5]; - sprite->pos2.x += (sUnknown_0860ADBE[sprite->data[3]][0] * amplitude); - sprite->pos2.y += (sUnknown_0860ADBE[sprite->data[3]][1] * sprite->data[5]); // what's the point of the var if you're not reusing it? + sprite->x2 += (sTriangleDownData[sprite->data[3]][0] * amplitude); + sprite->y2 += (sTriangleDownData[sprite->data[3]][1] * sprite->data[5]); // Not using amplitude here. No reason for this. sprite->data[2]++; - sub_817F70C(sprite); + TryFlipX(sprite); } } -static void pokemonanimfunc_68(struct Sprite *sprite) +static void Anim_TriangleDown_Slow(struct Sprite *sprite) { sprite->data[5] = 1; sprite->data[6] = 1; - sub_8183B4C(sprite); - sprite->callback = sub_8183B4C; + TriangleDown(sprite); + sprite->callback = TriangleDown; } -static void pokemonanimfunc_69(struct Sprite *sprite) +static void Anim_TriangleDown(struct Sprite *sprite) { sprite->data[5] = 2; sprite->data[6] = 1; - sub_8183B4C(sprite); - sprite->callback = sub_8183B4C; + TriangleDown(sprite); + sprite->callback = TriangleDown; } -static void pokemonanimfunc_6A(struct Sprite *sprite) +static void Anim_TriangleDown_Fast(struct Sprite *sprite) { sprite->data[5] = 2; sprite->data[6] = 2; - sub_8183B4C(sprite); - sprite->callback = sub_8183B4C; + TriangleDown(sprite); + sprite->callback = TriangleDown; } -static void sub_8183C6C(struct Sprite *sprite) +static void Grow(struct Sprite *sprite) { if (sprite->data[7] > 255) { if (sprite->data[5] <= 1) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; HandleSetAffineData(sprite, 256, 256, 0); } else @@ -4453,9 +4419,9 @@ static void sub_8183C6C(struct Sprite *sprite) } } -static void pokemonanimfunc_6B(struct Sprite *sprite) +static void Anim_Grow(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); @@ -4465,13 +4431,13 @@ static void pokemonanimfunc_6B(struct Sprite *sprite) sprite->data[5] = 1; } - sub_8183C6C(sprite); - sub_817F70C(sprite); + Grow(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_6C(struct Sprite *sprite) +static void Anim_Grow_Twice(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); @@ -4481,11 +4447,11 @@ static void pokemonanimfunc_6C(struct Sprite *sprite) sprite->data[5] = 2; } - sub_8183C6C(sprite); - sub_817F70C(sprite); + Grow(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_6D(struct Sprite *sprite) +static void Anim_HorizontalSpring_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4497,10 +4463,10 @@ static void pokemonanimfunc_6D(struct Sprite *sprite) sprite->data[4] = 16; } - sub_8182764(sprite); + HorizontalSpring(sprite); } -static void pokemonanimfunc_6E(struct Sprite *sprite) +static void Anim_HorizontalSpring_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4512,10 +4478,10 @@ static void pokemonanimfunc_6E(struct Sprite *sprite) sprite->data[4] = 16; } - sub_8182764(sprite); + HorizontalSpring(sprite); } -static void pokemonanimfunc_6F(struct Sprite *sprite) +static void Anim_HorizontalRepeatedSpring_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4527,10 +4493,10 @@ static void pokemonanimfunc_6F(struct Sprite *sprite) sprite->data[4] = 16; } - sub_8182830(sprite); + HorizontalRepeatedSpring(sprite); } -static void pokemonanimfunc_70(struct Sprite *sprite) +static void Anim_HorizontalRepeatedSpring(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4542,10 +4508,10 @@ static void pokemonanimfunc_70(struct Sprite *sprite) sprite->data[4] = 8; } - sub_8182830(sprite); + HorizontalRepeatedSpring(sprite); } -static void pokemonanimfunc_71(struct Sprite *sprite) +static void Anim_ShrinkGrow_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4554,10 +4520,10 @@ static void pokemonanimfunc_71(struct Sprite *sprite) sprite->data[6] = 8; } - sub_8180828(sprite); + ShrinkGrow(sprite); } -static void pokemonanimfunc_72(struct Sprite *sprite) +static void Anim_ShrinkGrow_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4566,10 +4532,10 @@ static void pokemonanimfunc_72(struct Sprite *sprite) sprite->data[6] = 4; } - sub_8180828(sprite); + ShrinkGrow(sprite); } -static void pokemonanimfunc_73(struct Sprite *sprite) +static void Anim_VerticalStretchBothEnds(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4581,10 +4547,10 @@ static void pokemonanimfunc_73(struct Sprite *sprite) sprite->data[7] = 0; } - sub_81832C8(sprite); + VerticalStretchBothEnds(sprite); } -static void pokemonanimfunc_74(struct Sprite *sprite) +static void Anim_VerticalStretchBothEnds_Twice(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4596,10 +4562,10 @@ static void pokemonanimfunc_74(struct Sprite *sprite) sprite->data[7] = 0; } - sub_81832C8(sprite); + VerticalStretchBothEnds(sprite); } -static void pokemonanimfunc_75(struct Sprite *sprite) +static void Anim_HorizontalStretchFar_Twice(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4612,10 +4578,10 @@ static void pokemonanimfunc_75(struct Sprite *sprite) sprite->data[7] = 0; } - sub_8183418(sprite); + HorizontalStretchFar(sprite); } -static void pokemonanimfunc_76(struct Sprite *sprite) +static void Anim_HorizontalStretchFar(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4628,10 +4594,10 @@ static void pokemonanimfunc_76(struct Sprite *sprite) sprite->data[7] = 0; } - sub_8183418(sprite); + HorizontalStretchFar(sprite); } -static void pokemonanimfunc_77(struct Sprite *sprite) +static void Anim_GrowStutter_Twice(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4644,10 +4610,10 @@ static void pokemonanimfunc_77(struct Sprite *sprite) sprite->data[7] = 0; } - sub_81837DC(sprite); + GrowStutter(sprite); } -static void pokemonanimfunc_78(struct Sprite *sprite) +static void Anim_GrowStutter(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4660,18 +4626,18 @@ static void pokemonanimfunc_78(struct Sprite *sprite) sprite->data[7] = 0; } - sub_81837DC(sprite); + GrowStutter(sprite); } -static void sub_8183FA8(struct Sprite *sprite) +static void ConcaveArc(struct Sprite *sprite) { if (sprite->data[7] > 255) { if (sprite->data[6] <= 1) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->callback = WaitAnimEnd; + sprite->x2 = 0; + sprite->y2 = 0; } else { @@ -4681,17 +4647,17 @@ static void sub_8183FA8(struct Sprite *sprite) } else { - sprite->pos2.x = -(Sin(sprite->data[7], sprite->data[5])); - sprite->pos2.y = Sin((sprite->data[7] + 192) % 256, sprite->data[4]); - if (sprite->pos2.y > 0) - sprite->pos2.y *= -1; + sprite->x2 = -(Sin(sprite->data[7], sprite->data[5])); + sprite->y2 = Sin((sprite->data[7] + 192) % 256, sprite->data[4]); + if (sprite->y2 > 0) + sprite->y2 *= -1; - sprite->pos2.y += sprite->data[4]; + sprite->y2 += sprite->data[4]; sprite->data[7] += sprite->data[3]; } } -static void pokemonanimfunc_79(struct Sprite *sprite) +static void Anim_ConcaveArcLarge_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4703,10 +4669,10 @@ static void pokemonanimfunc_79(struct Sprite *sprite) sprite->data[3] = 4; } - sub_8183FA8(sprite); + ConcaveArc(sprite); } -static void pokemonanimfunc_7A(struct Sprite *sprite) +static void Anim_ConcaveArcLarge(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4718,10 +4684,10 @@ static void pokemonanimfunc_7A(struct Sprite *sprite) sprite->data[3] = 6; } - sub_8183FA8(sprite); + ConcaveArc(sprite); } -static void pokemonanimfunc_7B(struct Sprite *sprite) +static void Anim_ConcaveArcLarge_Twice(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4733,16 +4699,16 @@ static void pokemonanimfunc_7B(struct Sprite *sprite) sprite->data[3] = 8; } - sub_8183FA8(sprite); + ConcaveArc(sprite); } -static void sub_81840C4(struct Sprite *sprite) +static void ConvexDoubleArc(struct Sprite *sprite) { if (sprite->data[7] > 256) { if (sprite->data[6] <= sprite->data[4]) { - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->callback = WaitAnimEnd; } else { @@ -4750,8 +4716,8 @@ static void sub_81840C4(struct Sprite *sprite) sprite->data[7] = 0; } - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; } else { @@ -4762,27 +4728,27 @@ static void sub_81840C4(struct Sprite *sprite) if (sprite->data[7] > 256) sprite->data[7] = 256; - sprite->pos2.y = -(Sin(sprite->data[7] % 256, 8)); + sprite->y2 = -(Sin(sprite->data[7] % 256, 8)); } else if (sprite->data[7] > 95) { - sprite->pos2.y = Sin(96, 6) - Sin((sprite->data[7] - 96) * 2, 4); + sprite->y2 = Sin(96, 6) - Sin((sprite->data[7] - 96) * 2, 4); } else { - sprite->pos2.y = Sin(sprite->data[7], 6); + sprite->y2 = Sin(sprite->data[7], 6); } posX = -(Sin(sprite->data[7] / 2, sprite->data[5])); if (sprite->data[4] % 2 == 0) posX *= -1; - sprite->pos2.x = posX; + sprite->x2 = posX; sprite->data[7] += sprite->data[3]; } } -static void pokemonanimfunc_7C(struct Sprite *sprite) +static void Anim_ConvexDoubleArc_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4794,10 +4760,10 @@ static void pokemonanimfunc_7C(struct Sprite *sprite) sprite->data[3] = 4; } - sub_81840C4(sprite); + ConvexDoubleArc(sprite); } -static void pokemonanimfunc_7D(struct Sprite *sprite) +static void Anim_ConvexDoubleArc(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4809,10 +4775,10 @@ static void pokemonanimfunc_7D(struct Sprite *sprite) sprite->data[3] = 6; } - sub_81840C4(sprite); + ConvexDoubleArc(sprite); } -static void pokemonanimfunc_7E(struct Sprite *sprite) +static void Anim_ConvexDoubleArc_Twice(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4824,10 +4790,10 @@ static void pokemonanimfunc_7E(struct Sprite *sprite) sprite->data[3] = 8; } - sub_81840C4(sprite); + ConvexDoubleArc(sprite); } -static void pokemonanimfunc_7F(struct Sprite *sprite) +static void Anim_ConcaveArcSmall_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4839,10 +4805,10 @@ static void pokemonanimfunc_7F(struct Sprite *sprite) sprite->data[3] = 4; } - sub_8183FA8(sprite); + ConcaveArc(sprite); } -static void pokemonanimfunc_80(struct Sprite *sprite) +static void Anim_ConcaveArcSmall(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4854,10 +4820,10 @@ static void pokemonanimfunc_80(struct Sprite *sprite) sprite->data[3] = 6; } - sub_8183FA8(sprite); + ConcaveArc(sprite); } -static void pokemonanimfunc_81(struct Sprite *sprite) +static void Anim_ConcaveArcSmall_Twice(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4869,18 +4835,18 @@ static void pokemonanimfunc_81(struct Sprite *sprite) sprite->data[3] = 8; } - sub_8183FA8(sprite); + ConcaveArc(sprite); } -static void sub_8184290(struct Sprite *sprite) +static void SetHorizontalDip(struct Sprite *sprite) { u16 index = Sin((sprite->data[2] * 128) / sprite->data[7], sprite->data[5]); sprite->data[6] = -(index << 8); - sub_817F3F0(sprite, index, sprite->data[4], 0); + SetPosForRotation(sprite, index, sprite->data[4], 0); HandleSetAffineData(sprite, 256, 256, sprite->data[6]); } -static void pokemonanimfunc_82(struct Sprite *sprite) +static void Anim_HorizontalDip(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4895,13 +4861,13 @@ static void pokemonanimfunc_82(struct Sprite *sprite) if (sprite->data[2] > sprite->data[7]) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0]++; if (sprite->data[3] <= sprite->data[0]) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; return; } else @@ -4911,13 +4877,13 @@ static void pokemonanimfunc_82(struct Sprite *sprite) } else { - sub_8184290(sprite); + SetHorizontalDip(sprite); } sprite->data[2]++; } -static void pokemonanimfunc_83(struct Sprite *sprite) +static void Anim_HorizontalDip_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4932,13 +4898,13 @@ static void pokemonanimfunc_83(struct Sprite *sprite) if (sprite->data[2] > sprite->data[7]) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0]++; if (sprite->data[3] <= sprite->data[0]) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; return; } else @@ -4948,13 +4914,13 @@ static void pokemonanimfunc_83(struct Sprite *sprite) } else { - sub_8184290(sprite); + SetHorizontalDip(sprite); } sprite->data[2]++; } -static void pokemonanimfunc_84(struct Sprite *sprite) +static void Anim_HorizontalDip_Twice(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4969,13 +4935,13 @@ static void pokemonanimfunc_84(struct Sprite *sprite) if (sprite->data[2] > sprite->data[7]) { HandleSetAffineData(sprite, 256, 256, 0); - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; sprite->data[0]++; if (sprite->data[3] <= sprite->data[0]) { - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; return; } else @@ -4985,20 +4951,20 @@ static void pokemonanimfunc_84(struct Sprite *sprite) } else { - sub_8184290(sprite); + SetHorizontalDip(sprite); } sprite->data[2]++; } -static void sub_8184468(struct Sprite *sprite) +static void ShrinkGrowVibrate(struct Sprite *sprite) { if (sprite->data[2] > sprite->data[7]) { - sprite->pos2.y = 0; + sprite->y2 = 0; HandleSetAffineData(sprite, 256, 256, 0); - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } else { @@ -5024,128 +4990,128 @@ static void sub_8184468(struct Sprite *sprite) posY = posY_signed; if (posY < 0) posY += 7; - sprite->pos2.y = (u32)(posY) >> 3; + sprite->y2 = (u32)(posY) >> 3; HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0); } sprite->data[2]++; } -static void pokemonanimfunc_85(struct Sprite *sprite) +static void Anim_ShrinkGrowVibrate_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); - sprite->pos2.y += 2; + sprite->y2 += 2; sprite->data[6] = 40; sprite->data[7] = 80; } - sub_8184468(sprite); + ShrinkGrowVibrate(sprite); } -static void pokemonanimfunc_86(struct Sprite *sprite) +static void Anim_ShrinkGrowVibrate(struct Sprite *sprite) { if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); - sprite->pos2.y += 2; + sprite->y2 += 2; sprite->data[6] = 40; sprite->data[7] = 40; } - sub_8184468(sprite); + ShrinkGrowVibrate(sprite); } -static void pokemonanimfunc_87(struct Sprite *sprite) +static void Anim_ShrinkGrowVibrate_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { HandleStartAffineAnim(sprite); - sprite->pos2.y += 2; + sprite->y2 += 2; sprite->data[6] = 80; sprite->data[7] = 80; } - sub_8184468(sprite); + ShrinkGrowVibrate(sprite); } -static void sub_8184610(struct Sprite *sprite); -static void sub_8184640(struct Sprite *sprite); -static void sub_8184678(struct Sprite *sprite); -static void sub_81846B8(struct Sprite *sprite); +static void JoltRight_0(struct Sprite *sprite); +static void JoltRight_1(struct Sprite *sprite); +static void JoltRight_2(struct Sprite *sprite); +static void JoltRight_3(struct Sprite *sprite); -static void sub_81845D4(struct Sprite *sprite) +static void JoltRight(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x -= sprite->data[2]; - if (sprite->pos2.x <= -sprite->data[6]) + TryFlipX(sprite); + sprite->x2 -= sprite->data[2]; + if (sprite->x2 <= -sprite->data[6]) { - sprite->pos2.x = -sprite->data[6]; + sprite->x2 = -sprite->data[6]; sprite->data[7] = 2; - sprite->callback = sub_8184610; + sprite->callback = JoltRight_0; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8184610(struct Sprite *sprite) +static void JoltRight_0(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x += sprite->data[7]; + TryFlipX(sprite); + sprite->x2 += sprite->data[7]; sprite->data[7]++; - if (sprite->pos2.x >= 0) - sprite->callback = sub_8184640; + if (sprite->x2 >= 0) + sprite->callback = JoltRight_1; - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8184640(struct Sprite *sprite) +static void JoltRight_1(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x += sprite->data[7]; + TryFlipX(sprite); + sprite->x2 += sprite->data[7]; sprite->data[7]++; - if (sprite->pos2.x > sprite->data[6]) + if (sprite->x2 > sprite->data[6]) { - sprite->pos2.x = sprite->data[6]; - sprite->callback = sub_8184678; + sprite->x2 = sprite->data[6]; + sprite->callback = JoltRight_2; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_8184678(struct Sprite *sprite) +static void JoltRight_2(struct Sprite *sprite) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[3] >= sprite->data[5]) { - sprite->callback = sub_81846B8; + sprite->callback = JoltRight_3; } else { - sprite->pos2.x += sprite->data[4]; + sprite->x2 += sprite->data[4]; sprite->data[4] *= -1; sprite->data[3]++; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void sub_81846B8(struct Sprite *sprite) +static void JoltRight_3(struct Sprite *sprite) { - sub_817F70C(sprite); - sprite->pos2.x -= 2; - if (sprite->pos2.x <= 0) + TryFlipX(sprite); + sprite->x2 -= 2; + if (sprite->x2 <= 0) { - sprite->pos2.x = 0; - sub_817F77C(sprite); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + ResetSpriteAfterAnim(sprite); + sprite->callback = WaitAnimEnd; } - sub_817F70C(sprite); + TryFlipX(sprite); } -static void pokemonanimfunc_88(struct Sprite *sprite) +static void Anim_JoltRight_Fast(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[7] = 4; @@ -5154,10 +5120,10 @@ static void pokemonanimfunc_88(struct Sprite *sprite) sprite->data[4] = 4; sprite->data[3] = 0; sprite->data[2] = 2; - sprite->callback = sub_81845D4; + sprite->callback = JoltRight; } -static void pokemonanimfunc_89(struct Sprite *sprite) +static void Anim_JoltRight(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[7] = 2; @@ -5166,10 +5132,10 @@ static void pokemonanimfunc_89(struct Sprite *sprite) sprite->data[4] = 2; sprite->data[3] = 0; sprite->data[2] = 1; - sprite->callback = sub_81845D4; + sprite->callback = JoltRight; } -static void pokemonanimfunc_8A(struct Sprite *sprite) +static void Anim_JoltRight_Slow(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[7] = 0; @@ -5178,12 +5144,12 @@ static void pokemonanimfunc_8A(struct Sprite *sprite) sprite->data[4] = 2; sprite->data[3] = 0; sprite->data[2] = 1; - sprite->callback = sub_81845D4; + sprite->callback = JoltRight; } -static void sub_8184770(struct Sprite *sprite) +static void SetShakeFlashYellowPos(struct Sprite *sprite) { - sprite->pos2.x = sprite->data[1]; + sprite->x2 = sprite->data[1]; if (sprite->data[0] > 1) { sprite->data[1] *= -1; @@ -5195,97 +5161,91 @@ static void sub_8184770(struct Sprite *sprite) } } -struct YellowBlendStruct +static const struct YellowFlashData sShakeYellowFlashData_Fast[] = { - u8 field_0; - u8 field_1; + {FALSE, 1}, + { TRUE, 2}, + {FALSE, 15}, + { TRUE, 1}, + {FALSE, 15}, + { TRUE, 1}, + {FALSE, 15}, + { TRUE, 1}, + {FALSE, 1}, + { TRUE, 1}, + {FALSE, 1}, + { TRUE, 1}, + {FALSE, 1}, + { TRUE, 1}, + {FALSE, 1}, + { TRUE, 1}, + {FALSE, 1}, + { TRUE, 1}, + {FALSE, 1}, + {FALSE, -1} }; -static const struct YellowBlendStruct sUnknown_0860ADCC[] = +static const struct YellowFlashData sShakeYellowFlashData_Normal[] = { - {0, 1}, - {1, 2}, - {0, 15}, - {1, 1}, - {0, 15}, - {1, 1}, - {0, 15}, - {1, 1}, - {0, 1}, - {1, 1}, - {0, 1}, - {1, 1}, - {0, 1}, - {1, 1}, - {0, 1}, - {1, 1}, - {0, 1}, - {1, 1}, - {0, 1}, - {0, 0xFF} + {FALSE, 5}, + { TRUE, 1}, + {FALSE, 15}, + { TRUE, 4}, + {FALSE, 2}, + { TRUE, 2}, + {FALSE, 2}, + { TRUE, 2}, + {FALSE, 2}, + { TRUE, 2}, + {FALSE, 2}, + { TRUE, 2}, + {FALSE, 2}, + {FALSE, -1} }; -static const struct YellowBlendStruct sUnknown_0860AE1C[] = +static const struct YellowFlashData sShakeYellowFlashData_Slow[] = { - {0, 5}, - {1, 1}, - {0, 15}, - {1, 4}, - {0, 2}, - {1, 2}, - {0, 2}, - {1, 2}, - {0, 2}, - {1, 2}, - {0, 2}, - {1, 2}, - {0, 2}, - {0, 0xFF} + {FALSE, 1}, + { TRUE, 1}, + {FALSE, 20}, + { TRUE, 1}, + {FALSE, 20}, + { TRUE, 1}, + {FALSE, 20}, + { TRUE, 1}, + {FALSE, 1}, + {FALSE, -1} }; -static const struct YellowBlendStruct sUnknown_0860AE54[] = +static const struct YellowFlashData *const sShakeYellowFlashData[] = { - {0, 1}, - {1, 1}, - {0, 20}, - {1, 1}, - {0, 20}, - {1, 1}, - {0, 20}, - {1, 1}, - {0, 1}, - {0, 0xFF} + sShakeYellowFlashData_Fast, + sShakeYellowFlashData_Normal, + sShakeYellowFlashData_Slow }; -static const struct YellowBlendStruct *const sUnknown_0860AE7C[] = +static void ShakeFlashYellow(struct Sprite *sprite) { - sUnknown_0860ADCC, - sUnknown_0860AE1C, - sUnknown_0860AE54 -}; - -static void BackAnimBlendYellow(struct Sprite *sprite) -{ - const struct YellowBlendStruct *array = sUnknown_0860AE7C[sprite->data[3]]; - sub_8184770(sprite); - if (array[sprite->data[6]].field_1 == 0xFF) + const struct YellowFlashData *array = sShakeYellowFlashData[sprite->data[3]]; + SetShakeFlashYellowPos(sprite); + if (array[sprite->data[6]].time == (u8)-1) { - sprite->pos2.x = 0; - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->x2 = 0; + sprite->callback = WaitAnimEnd; } else { if (sprite->data[4] == 1) { - if (array[sprite->data[6]].field_0 != 0) - BlendPalette(sprite->data[7], 0x10, 0x10, RGB_YELLOW); + if (array[sprite->data[6]].isYellow) + BlendPalette(sprite->data[7], 16, 16, RGB_YELLOW); else - BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW); + BlendPalette(sprite->data[7], 16, 0, RGB_YELLOW); sprite->data[4] = 0; } - if (array[sprite->data[6]].field_1 == sprite->data[5]) + if (array[sprite->data[6]].time == sprite->data[5]) { sprite->data[4] = 1; sprite->data[5] = 0; @@ -5298,7 +5258,7 @@ static void BackAnimBlendYellow(struct Sprite *sprite) } } -static void pokemonanimfunc_8B(struct Sprite *sprite) +static void Anim_ShakeFlashYellow_Fast(struct Sprite *sprite) { if (++sprite->data[2] == 1) { @@ -5309,10 +5269,10 @@ static void pokemonanimfunc_8B(struct Sprite *sprite) sprite->data[3] = 0; } - BackAnimBlendYellow(sprite); + ShakeFlashYellow(sprite); } -static void pokemonanimfunc_8C(struct Sprite *sprite) +static void Anim_ShakeFlashYellow(struct Sprite *sprite) { if (++sprite->data[2] == 1) { @@ -5323,10 +5283,10 @@ static void pokemonanimfunc_8C(struct Sprite *sprite) sprite->data[3] = 1; } - BackAnimBlendYellow(sprite); + ShakeFlashYellow(sprite); } -static void pokemonanimfunc_8D(struct Sprite *sprite) +static void Anim_ShakeFlashYellow_Slow(struct Sprite *sprite) { if (++sprite->data[2] == 1) { @@ -5337,52 +5297,62 @@ static void pokemonanimfunc_8D(struct Sprite *sprite) sprite->data[3] = 2; } - BackAnimBlendYellow(sprite); + ShakeFlashYellow(sprite); } -static void BackAnimBlend(struct Sprite *sprite) +enum { + SHAKEGLOW_RED, + SHAKEGLOW_GREEN, + SHAKEGLOW_BLUE, + SHAKEGLOW_BLACK +}; + +static void ShakeGlow_Blend(struct Sprite *sprite) { static const u16 sColors[] = { - RGB_RED, RGB_GREEN, RGB_BLUE, RGB_BLACK + [SHAKEGLOW_RED] = RGB_RED, + [SHAKEGLOW_GREEN] = RGB_GREEN, + [SHAKEGLOW_BLUE] = RGB_BLUE, + [SHAKEGLOW_BLACK] = RGB_BLACK }; if (sprite->data[2] > 127) { - BlendPalette(sprite->data[7], 0x10, 0, RGB_RED); - sprite->callback = SpriteCB_SetDummyOnAnimEnd; + BlendPalette(sprite->data[7], 16, 0, RGB_RED); + sprite->callback = WaitAnimEnd; } else { sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], sColors[sprite->data[1]]); + BlendPalette(sprite->data[7], 16, sprite->data[6], sColors[sprite->data[1]]); } } -static void sub_8184934(struct Sprite *sprite) +static void ShakeGlow_Move(struct Sprite *sprite) { if (sprite->data[3] < sprite->data[4]) { - sub_817F70C(sprite); + TryFlipX(sprite); if (sprite->data[5] > sprite->data[0]) { if (++sprite->data[3] < sprite->data[4]) sprite->data[5] = 0; - sprite->pos2.x = 0; + sprite->x2 = 0; } else { s8 sign = 1 - (sprite->data[3] % 2 * 2); - sprite->pos2.x = sign * Sin((sprite->data[5] * 384 / sprite->data[0]) % 256, 6); + sprite->x2 = sign * Sin((sprite->data[5] * 384 / sprite->data[0]) % 256, 6); sprite->data[5]++; } - sub_817F70C(sprite); + TryFlipX(sprite); } } -static void pokemonanimfunc_8E(struct Sprite *sprite) +static void Anim_ShakeGlowRed_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5391,19 +5361,19 @@ static void pokemonanimfunc_8E(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 2; sprite->data[3] = 0; - sprite->data[1] = 0; + sprite->data[1] = SHAKEGLOW_RED; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void pokemonanimfunc_8F(struct Sprite *sprite) +static void Anim_ShakeGlowRed(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5412,19 +5382,19 @@ static void pokemonanimfunc_8F(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 1; sprite->data[3] = 0; - sprite->data[1] = 0; + sprite->data[1] = SHAKEGLOW_RED; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void pokemonanimfunc_90(struct Sprite *sprite) +static void Anim_ShakeGlowRed_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5433,19 +5403,19 @@ static void pokemonanimfunc_90(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 1; sprite->data[3] = 0; - sprite->data[1] = 0; + sprite->data[1] = SHAKEGLOW_RED; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void pokemonanimfunc_91(struct Sprite *sprite) +static void Anim_ShakeGlowGreen_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5454,19 +5424,19 @@ static void pokemonanimfunc_91(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 2; sprite->data[3] = 0; - sprite->data[1] = 1; + sprite->data[1] = SHAKEGLOW_GREEN; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void pokemonanimfunc_92(struct Sprite *sprite) +static void Anim_ShakeGlowGreen(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5475,19 +5445,19 @@ static void pokemonanimfunc_92(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 1; sprite->data[3] = 0; - sprite->data[1] = 1; + sprite->data[1] = SHAKEGLOW_GREEN; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void pokemonanimfunc_93(struct Sprite *sprite) +static void Anim_ShakeGlowGreen_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5496,19 +5466,19 @@ static void pokemonanimfunc_93(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 1; sprite->data[3] = 0; - sprite->data[1] = 1; + sprite->data[1] = SHAKEGLOW_GREEN; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void pokemonanimfunc_94(struct Sprite *sprite) +static void Anim_ShakeGlowBlue_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5517,19 +5487,19 @@ static void pokemonanimfunc_94(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 2; sprite->data[3] = 0; - sprite->data[1] = 2; + sprite->data[1] = SHAKEGLOW_BLUE; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void pokemonanimfunc_95(struct Sprite *sprite) +static void Anim_ShakeGlowBlue(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5538,19 +5508,19 @@ static void pokemonanimfunc_95(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 1; sprite->data[3] = 0; - sprite->data[1] = 2; + sprite->data[1] = SHAKEGLOW_BLUE; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void pokemonanimfunc_96(struct Sprite *sprite) +static void Anim_ShakeGlowBlue_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -5559,19 +5529,19 @@ static void pokemonanimfunc_96(struct Sprite *sprite) sprite->data[5] = 0; sprite->data[4] = 1; sprite->data[3] = 0; - sprite->data[1] = 2; + sprite->data[1] = SHAKEGLOW_BLUE; } if (sprite->data[2] % 2 == 0) - BackAnimBlend(sprite); + ShakeGlow_Blend(sprite); if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) - sub_8184934(sprite); + ShakeGlow_Move(sprite); sprite->data[2]++; } -static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite) +static void WaitAnimEnd(struct Sprite *sprite) { if (sprite->animEnded) sprite->callback = SpriteCallbackDummy; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index b85a291514..42330b6a5c 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -7,6 +7,8 @@ #define POKE_ICON_BASE_PAL_TAG 56000 +#define INVALID_ICON_SPECIES SPECIES_OLD_UNOWN_J // Oddly specific, used when an icon should be a ?. Any of the 'old unown' would work + struct MonIconSpriteTemplate { const struct OamData *oam; @@ -1049,7 +1051,7 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u return spriteId; } -u8 sub_80D2D78(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 extra) +u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 handleDeoxys) { u8 spriteId; struct MonIconSpriteTemplate iconTemplate = @@ -1062,7 +1064,7 @@ u8 sub_80D2D78(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 .paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndices[species], }; - iconTemplate.image = GetMonIconTiles(species, extra); + iconTemplate.image = GetMonIconTiles(species, handleDeoxys); spriteId = CreateMonIconSprite(&iconTemplate, x, y, subpriority); UpdateMonIconFrame(&gSprites[spriteId]); @@ -1086,7 +1088,7 @@ u16 GetIconSpecies(u16 species, u32 personality) else { if (species > NUM_SPECIES) - result = 260; + result = INVALID_ICON_SPECIES; else result = species; } @@ -1099,10 +1101,10 @@ u16 GetUnownLetterByPersonality(u32 personality) if (!personality) return 0; else - return (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 0x3)) % 0x1C; + return GET_UNOWN_LETTER(personality); } -u16 sub_80D2E84(u16 species) +u16 GetIconSpeciesNoPersonality(u16 species) { u16 value; @@ -1117,7 +1119,7 @@ u16 sub_80D2E84(u16 species) else { if (species > (SPECIES_UNOWN_B - 1)) - species = SPECIES_OLD_UNOWN_J; // That's an oddly specific species. + species = INVALID_ICON_SPECIES; return GetIconSpecies(species, 0); } } @@ -1144,7 +1146,7 @@ void SafeLoadMonIconPalette(u16 species) { u8 palIndex; if (species > NUM_SPECIES) - species = 260; + species = INVALID_ICON_SPECIES; palIndex = gMonIconPaletteIndices[species]; if (IndexOfSpritePaletteTag(gMonIconPaletteTable[palIndex].tag) == 0xFF) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); @@ -1160,7 +1162,7 @@ void LoadMonIconPalette(u16 species) void FreeMonIconPalettes(void) { u8 i; - for (i = 0; i < 6; i++) + for (i = 0; i < ARRAY_COUNT(gMonIconPaletteTable); i++) FreeSpritePaletteByTag(gMonIconPaletteTable[i].tag); } @@ -1169,7 +1171,7 @@ void SafeFreeMonIconPalette(u16 species) { u8 palIndex; if (species > NUM_SPECIES) - species = 260; + species = INVALID_ICON_SPECIES; palIndex = gMonIconPaletteIndices[species]; FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag); } @@ -1216,7 +1218,7 @@ void sub_80D304C(u16 offset) u8 GetValidMonIconPalIndex(u16 species) { if (species > NUM_SPECIES) - species = 260; + species = INVALID_ICON_SPECIES; return gMonIconPaletteIndices[species]; } @@ -1228,7 +1230,7 @@ u8 GetMonIconPaletteIndexFromSpecies(u16 species) const u16* GetValidMonIconPalettePtr(u16 species) { if (species > NUM_SPECIES) - species = 260; + species = INVALID_ICON_SPECIES; return gMonIconPaletteTable[gMonIconPaletteIndices[species]].data; } diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 914752eb4c..8fe590a0cd 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -29,515 +29,645 @@ #include "pokemon_jump.h" #include "constants/rgb.h" #include "constants/songs.h" +#include "constants/items.h" -struct PokemonJump1_MonInfo +#define MAX_JUMP_SCORE 99990 +#define MAX_JUMPS 9999 + +#define JUMP_PEAK (-30) + +enum { + BG_INTERFACE, + BG_BONUSES, + BG_VENUSAUR, + BG_SCENERY, +}; + +// IDs for persistent windows +enum { + WIN_POINTS, + WIN_TIMES, + NUM_WINDOWS +}; + +enum { + PACKET_MON_INFO = 1, + PACKET_UNUSED, + PACKET_LEADER_STATE, + PACKET_MEMBER_STATE, +}; + +enum { + JUMP_TYPE_NORMAL, + JUMP_TYPE_FAST, + JUMP_TYPE_SLOW, +}; + +enum { + FUNC_GAME_INTRO, + FUNC_WAIT_ROUND, + FUNC_GAME_ROUND, + FUNC_GAME_OVER, + FUNC_ASK_PLAY_AGAIN, + FUNC_RESET_GAME, + FUNC_EXIT, + FUNC_GIVE_PRIZE, + FUNC_SAVE, + FUNC_NONE +}; + +enum { + GFXFUNC_LOAD, + GFXFUNC_SHOW_NAMES, + GFXFUNC_SHOW_NAMES_HIGHLIGHT, + GFXFUNC_ERASE_NAMES, + GFXFUNC_MSG_PLAY_AGAIN, + GFXFUNC_MSG_SAVING, + GFXFUNC_ERASE_MSG, + GFXFUNC_MSG_PLAYER_DROPPED, + GFXFUNC_MSG_COMM_STANDBY, + GFXFUNC_COUNTDOWN, +}; + +enum { + VINE_HIGHEST, + VINE_DOWNSWING_HIGHER, + VINE_DOWNSWING_HIGH, + VINE_DOWNSWING_LOW, + VINE_DOWNSWING_LOWER, + VINE_LOWEST, + VINE_UPSWING_LOWER, + VINE_UPSWING_LOW, + VINE_UPSWING_HIGH, + VINE_UPSWING_HIGHER, + NUM_VINESTATES +}; + +// Used to compare limits for vineStateTimer +// The upper 8 bits of vineStateTimer are the vine state, +// the lower 8 bits are a timer to the next state. +// When the timer is incremented above 255, it increments +// the vine state and the timer is reset. +#define VINE_STATE_TIMER(vineState)(((vineState) << 8) | 0xFF) + +enum { + MONSTATE_NORMAL, // Pokémon is either on the ground or in the middle of a jump + MONSTATE_JUMP, // Pokémon has begun a jump + MONSTATE_HIT, // Pokémon got hit by the vine +}; + +enum { + JUMPSTATE_NONE, + JUMPSTATE_SUCCESS, // Cleared vine + JUMPSTATE_FAILURE, // Hit vine +}; + +#define PLAY_AGAIN_NO 1 +#define PLAY_AGAIN_YES 2 + +#define TAG_MON1 0 +#define TAG_MON2 1 // MON2-5 used implicitly by adding multiplayer id to tag +#define TAG_MON3 2 +#define TAG_MON4 3 +#define TAG_MON5 4 + +#define GFXTAG_VINE1 5 +#define GFXTAG_VINE2 6 +#define GFXTAG_VINE3 7 +#define GFXTAG_VINE4 8 +#define GFXTAG_COUNTDOWN 9 +#define GFXTAG_STAR 10 + +#define PALTAG_1 5 +#define PALTAG_2 6 +#define PALTAG_COUNTDOWN 7 + +#define TAG_DIGITS 800 + +#define VINE_SPRITES_PER_SIDE 4 // Vine rope is divided into 8 sprites, 4 per side copied and flipped horizontally + +// Used by SetLinkTimeInterval to get a bit mask for capping +// a timer that controls how frequently link data is sent. +#define LINK_INTERVAL_NONE 0 +#define LINK_INTERVAL_SHORT 3 // 3 frame interval +#define LINK_INTERVAL_MEDIUM 4 // 7 frame interval +#define LINK_INTERVAL_LONG 5 // 15 frame interval + +#define LINK_TIMER_STOPPED 0x1111 + +struct PokemonJump_MonInfo { u16 species; u32 otId; u32 personality; }; -struct PokemonJump1_82E4 +struct PokemonJump_Player { - int unk0; - int unk4; - u8 filler8[0x4]; - u16 unkC; - u16 unkE; - u16 unk10; - u16 unk12; - int unk14; - int unk18; - u8 unk1C[11]; + int jumpOffset; + int jumpOffsetIdx; + u32 unused; + u16 monJumpType; + u16 jumpTimeStart; + u16 monState; + u16 prevMonState; + int jumpState; + bool32 funcFinished; + u8 name[11]; }; -struct PokemonJump2 +struct PokemonJumpGfx { - int unk0; - u16 unk4; - u8 unk6; - u8 filler7[0xa - 0x7]; - u8 unkA; - u8 unkB; - u8 unkC; - u8 unkD; - u8 unkE; - u8 unkF; - u16 filler10; - u16 unk12; - u16 unk14; - u32 unk18; - u16 unk1C[5]; - u8 txtBuff[2][0x40]; - u8 strBuff[0x100]; - u16 tilemapBuffer[(0x81a8 - 0x1a6) / 2]; // 0x1A6 - struct Sprite *unk81A8[MAX_RFU_PLAYERS]; - struct Sprite *unk81BC[MAX_RFU_PLAYERS]; - struct Sprite *unk81D0[8]; - u8 filler81F0[0xC]; - u8 unk81FC[MAX_RFU_PLAYERS]; + bool32 funcFinished; + u16 mainState; + u8 taskId; + u8 unused1[3]; + u8 resetVineState; + u8 resetVineTimer; + u8 vineState; + u8 msgWindowState; + u8 vinePalNumDownswing; + u8 vinePalNumUpswing; + u16 unused2; + u16 msgWindowId; + u16 fanfare; + u32 bonusTimer; + u16 nameWindowIds[MAX_RFU_PLAYERS]; + u8 itemName[64]; + u8 itemQuantityStr[64]; + u8 prizeMsg[256]; + u16 tilemapBuffer[0x4000]; + struct Sprite *monSprites[MAX_RFU_PLAYERS]; + struct Sprite *starSprites[MAX_RFU_PLAYERS]; + struct Sprite *vineSprites[VINE_SPRITES_PER_SIDE * 2]; + u8 unused3[12]; + u8 monSpriteSubpriorities[MAX_RFU_PLAYERS]; }; -struct PokemonJump1Sub +struct PokemonJump_CommData { - u8 unk0; - u8 unk1; - u16 unk2; - u16 unk4; - u32 unk8; + u8 funcId; + u8 receivedBonusFlags; + u16 data; // Multi-use + u16 jumpsInRow; + u32 jumpScore; }; -struct PokemonJump1 +struct PokemonJump { - MainCallback returnCallback; - u8 unk4; - u8 unk5; - u8 unk6; - u8 unk7; - u16 unk8; - u16 unkA; - u16 unkC; - u16 unkE; - int unk10; - u32 unk14; - u32 unk18; - int unk1C; - u32 unk20; - u32 unk24; - u32 unk28; - int unk2C; - u32 unk30; - u16 unk34; - u16 unk36; - u8 filler38[0x2]; - u16 unk3A; - u16 unk3C; - u16 unk3E; - u16 unk40; - u16 unk42; - u8 unk44; - u8 unk45; - u8 unk46; - u8 isLeader; - u8 unk48; - u8 unk49; - u16 unk4A; - u8 unk4C; - u8 unk4D; - u16 unk4E; - u8 unk50; - u8 unk51; - u8 filler52[0x2]; - int unk54; - int unk58; - int unk5C; - int unk60; - int unk64; - int unk68; - int unk6C; - struct PokemonJump1Sub unk70; - u8 unk7C[MAX_RFU_PLAYERS]; - u8 unk81[MAX_RFU_PLAYERS]; - u8 unk86[MAX_RFU_PLAYERS]; - u8 unk8B[MAX_RFU_PLAYERS]; - u16 unk90[MAX_RFU_PLAYERS]; - u16 unk9A[MAX_RFU_PLAYERS]; - struct PokemonJump2 unkA4; - struct PokemonJump1_MonInfo unk82A8[MAX_RFU_PLAYERS]; - struct PokemonJump1_82E4 unk82E4[MAX_RFU_PLAYERS]; - struct PokemonJump1_82E4 *unk83AC; + MainCallback exitCallback; + u8 taskId; + u8 numPlayers; + u8 multiplayerId; + u8 startDelayTimer; + u16 mainState; + u16 helperState; + u16 excellentsInRow; + u16 excellentsInRowRecord; + bool32 gameOver; + u32 vineState; + u32 prevVineState; + int vineSpeed; + u32 vineSpeedAccel; + u32 rngSeed; + u32 nextVineSpeed; + int linkTimer; + u32 linkTimerLimit; + u16 vineStateTimer; + bool16 ignoreJumpInput; + u16 unused1; + u16 unused2; // Set to 0, never read + u16 timer; + u16 prizeItemId; + u16 prizeItemQuantity; + u16 playAgainComm; + u8 unused3; // Set to 0, never read + u8 playAgainState; + bool8 allowVineUpdates; + bool8 isLeader; + bool8 funcActive; + bool8 allPlayersReady; + u16 vineTimer; + u8 nextFuncId; + bool8 showBonus; + u16 vineSpeedDelay; + u8 vineBaseSpeedIdx; + u8 vineSpeedStage; + int numPlayersAtPeak; + bool32 initScoreUpdate; + bool32 updateScore; + bool32 unused4; // Set to TRUE, never read + bool32 giveBonus; + bool32 skipJumpUpdate; + bool32 atMaxSpeedStage; + struct PokemonJump_CommData comm; + bool8 atJumpPeak[MAX_RFU_PLAYERS]; + bool8 atJumpPeak2[MAX_RFU_PLAYERS]; + bool8 atJumpPeak3[MAX_RFU_PLAYERS]; + u8 memberFuncIds[MAX_RFU_PLAYERS]; + u16 playAgainStates[MAX_RFU_PLAYERS]; + u16 jumpTimeStarts[MAX_RFU_PLAYERS]; + struct PokemonJumpGfx jumpGfx; + struct PokemonJump_MonInfo monInfo[MAX_RFU_PLAYERS]; + struct PokemonJump_Player players[MAX_RFU_PLAYERS]; + struct PokemonJump_Player *player; }; struct PokemonJumpMons { u16 species; - u16 unk2; + u16 jumpType; }; -static void sub_802AA60(struct PokemonJump1 *); -static void sub_802AA94(struct PokemonJump1 *); -static void sub_802AB20(void); -static void sub_802AB98(void); +static void InitGame(struct PokemonJump *); +static void ResetForNewGame(struct PokemonJump *); +static void InitPlayerAndJumpTypes(void); +static void ResetPlayersForNewGame(void); static s16 GetPokemonJumpSpeciesIdx(u16 species); -static void sub_802AC2C(struct PokemonJump1_MonInfo *monInfo, struct Pokemon *mon); -static void sub_802AC6C(void); -static void sub_802ACA0(u8 taskId); -static void sub_802AF80(u8 taskId); -static void sub_802B008(void); -static void sub_802B194(u8 taskId); -static void sub_802B1FC(void); -static bool32 sub_802B248(void); -static bool32 sub_802B2D4(void); -static bool32 sub_802B368(void); -static bool32 sub_802B3D4(void); -static bool32 sub_802B470(void); -static bool32 sub_802B4CC(void); -static bool32 sub_802B568(void); -static bool32 sub_802B5C8(void); -static bool32 sub_802B628(void); -static bool32 sub_802B664(void); -static bool32 sub_802B6B8(void); -static bool32 sub_802B704(void); -static bool32 sub_802B720(void); -static bool32 sub_802B7E0(void); -static bool32 sub_802B8CC(void); -static bool32 sub_802B964(void); -static bool32 sub_802B29C(void); -static bool32 sub_802B31C(void); -static bool32 sub_802B3B4(void); -static bool32 sub_802BA58(void); -static bool32 sub_802BB84(void); -static bool32 sub_802BC60(void); -static bool32 sub_802BD30(void); -static void sub_802BD84(u8 taskId); -static void sub_802BE60(TaskFunc func, u8 taskPriority); -static void sub_802BE80(void); -static void sub_802BEA0(void); -static void sub_802BEE4(void); -static int sub_802BF48(void); -static void sub_802BF7C(void); -static int sub_802C098(void); -static void sub_802C0B8(void); -static void sub_802C0E8(void); -static void sub_802C114(void); -static bool32 sub_802C130(u16); -static void sub_802C164(void); -static void sub_802C1DC(void); -static void sub_802C240(void); -static void sub_802C260(void); -static void sub_802C270(void); -static void sub_802C280(void); -static void sub_802C398(int); -static void sub_802C43C(void); -static bool32 sub_802C538(void); -static bool32 sub_802C5DC(void); -static bool32 sub_802C618(void); -static bool32 sub_802C650(void); -static void sub_802C688(int); -static int sub_802C6B0(void); +static void InitJumpMonInfo(struct PokemonJump_MonInfo *, struct Pokemon *); +static void CB2_PokemonJump(void); +static void Task_StartPokemonJump(u8); +static void Task_PokemonJump_Leader(u8); +static void SendLinkData_Leader(void); +static void Task_PokemonJump_Member(u8); +static void SendLinkData_Member(void); +static bool32 GameIntro_Leader(void); +static bool32 WaitRound_Leader(void); +static bool32 GameRound_Leader(void); +static bool32 GameOver_Leader(void); +static bool32 GameOver_Member(void); +static bool32 AskPlayAgain_Leader(void); +static bool32 AskPlayAgain_Member(void); +static bool32 ResetGame_Leader(void); +static bool32 ResetGame_Member(void); +static bool32 ExitGame(void); +static bool32 GivePrize_Leader(void); +static bool32 GivePrize_Member(void); +static bool32 SavePokeJump(void); +static bool32 DoGameIntro(void); +static bool32 HandleSwingRound(void); +static bool32 DoVineHitEffect(void); +static bool32 GameIntro_Member(void); +static bool32 WaitRound_Member(void); +static bool32 GameRound_Member(void); +static bool32 TryGivePrize(void); +static bool32 DoPlayAgainPrompt(void); +static bool32 ClosePokeJumpLink(void); +static bool32 CloseMessageAndResetScore(void); +static void Task_CommunicateMonInfo(u8); +static void SetTaskWithPokeJumpStruct(TaskFunc, u8); +static void InitVineState(void); +static void ResetVineState(void); +static void UpdateVineState(void); +static int GetVineSpeed(void); +static void UpdateVineSpeed(void); +static int PokeJumpRandom(void); +static void ResetVineAfterHit(void); +static void ResetPlayersJumpStates(void); +static void ResetPlayersMonState(void); +static bool32 IsPlayersMonState(u16); +static void SetMonStateJump(void); +static void UpdateGame(void); +static void TryUpdateVineSwing(void); +static void DisallowVineUpdates(void); +static void AllowVineUpdates(void); +static void HandleMonState(void); +static void UpdateJump(int); +static void TryUpdateScore(void); +static bool32 UpdateVineHitStates(void); +static bool32 AllPlayersJumpedOrHit(void); +static bool32 DidAllPlayersClearVine(void); +static bool32 ShouldPlayAgain(void); +static void AddJumpScore(int); +static int GetPlayersAtJumpPeak(void); static bool32 AreLinkQueuesEmpty(void); -static int sub_802C73C(u8 *); -static void sub_802C780(void); -static int sub_802C790(int); -static void sub_802C7A0(u16); -static bool32 sub_802C7BC(void); -static u16 sub_802C7E0(void); -static void sub_802C808(u16, u16 *, u16 *); -static u16 sub_802C818(void); -static u16 sub_802C838(void); -static u16 sub_802C880(u16 item, u16 quantity); -static void sub_802CB7C(struct Sprite *sprite); -static void sub_802CC40(struct Sprite *sprite); -static void sub_802CD08(struct Sprite *sprite); -static void sub_802CDD4(struct Sprite *sprite); -static void sub_802DC9C(int id); -static void sub_802D074(struct PokemonJump2 *); -static void sub_802D0BC(struct PokemonJump2 *); -static void sub_802D0AC(void); -static void sub_802D0C8(int); -static bool32 sub_802D0F0(void); -static void sub_802D764(void); -static bool32 sub_802D788(void); -static void sub_802D7E8(u16 itemId, u16 quantity); -static void sub_802D884(u16 itemId); -static void sub_802D8FC(u16 itemId); -static bool32 sub_802D974(void); -static void sub_802DA14(void); -static void sub_802DC80(u32 id, s16 y); -static void sub_802DD88(u8 multiplayerId); -static bool32 sub_802DA44(void); -static void sub_802DD64(int); -static s8 sub_802DA8C(void); -static int sub_802DCCC(u8 flags); -static void sub_802DD74(u16); -static void sub_802DDA0(u8 multiplayerId); -static int sub_802DDB8(int multiplayerId); -static void sub_802DDCC(void); -static void sub_802DDE0(void); -static void sub_802DDF4(int); -static int sub_802DE08(void); -static void sub_802E0AC(struct PokemonJump1_MonInfo *arg0); -static bool32 sub_802E0D0(int multiplayerId, struct PokemonJump1_MonInfo *arg0); -static void sub_802E138(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1); -static bool32 sub_802E1BC(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1); -static void sub_802E234(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2); -static bool32 sub_802E264(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3); -static bool32 sub_802E2D0(struct PokemonJump1_82E4 *arg0, int multiplayerId); -static bool32 sub_802E354(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow); -static void sub_802E3A8(void); -static void sub_802D12C(u8 taskId); -static void sub_802E00C(u8 arg0); -static void sub_802E090(u8 taskId); -static void sub_802D150(void); -static void sub_802DD08(void); -static void sub_802DB8C(void); -static void sub_802DBF8(void); -static void sub_802DE1C(void); -static void sub_802DFD4(void); -static void sub_802D108(void (*func)(void)); -static void sub_802DF70(bool32 arg0); -static u32 sub_802DA9C(u32 left, u32 top, u32 width, u32 height); -static void sub_802DB18(u16 left, u16 top, u8 cursorPos); -static void sub_802D150(void); -static void sub_802D2E4(void); -static void sub_802D350(void); -static void sub_802D3BC(void); -static void sub_802D448(void); -static void sub_802D4F4(void); -static void sub_802D598(void); -static void sub_802D5E4(void); -static void sub_802D72C(void); -static void sub_802D688(void); -static void Task_ShowPokemonJumpRecords(u8 taskId); -static void sub_802E500(u16 windowId, int width); -static void TruncateToFirstWordOnly(u8 *str); +static int GetNumPlayersForBonus(u8 *); +static void ClearUnreadField(void); +static int GetScoreBonus(int); +static void TryUpdateExcellentsRecord(u16); +static bool32 HasEnoughScoreForPrize(void); +static u16 GetPrizeData(void); +static void UnpackPrizeData(u16, u16 *, u16 *); +static u16 GetPrizeItemId(void); +static u16 GetPrizeQuantity(void); +static u16 GetQuantityLimitedByBag(u16, u16); +static void SpriteCB_Star(struct Sprite *); +static void SpriteCB_MonHitShake(struct Sprite *); +static void SpriteCB_MonHitFlash(struct Sprite *); +static void SpriteCB_MonIntroBounce(struct Sprite *); +static void UpdateVineSwing(int); +static void StartPokeJumpGfx(struct PokemonJumpGfx *); +static void InitPokeJumpGfx(struct PokemonJumpGfx *); +static void FreeWindowsAndDigitObj(void); +static void SetUpPokeJumpGfxFuncById(int); +static bool32 IsPokeJumpGfxFuncFinished(void); +static void SetUpResetVineGfx(void); +static bool32 ResetVineGfx(void); +static void PrintPrizeMessage(u16, u16); +static void PrintPrizeFilledBagMessage(u16); +static void PrintNoRoomForPrizeMessage(u16); +static bool32 DoPrizeMessageAndFanfare(void); +static void ClearMessageWindow(void); +static void SetMonSpriteY(u32, s16); +static void StartMonHitShake(u8); +static bool32 RemoveMessageWindow(void); +static void PrintScore(int); +static s8 HandlePlayAgainInput(void); +static int DoSameJumpTimeBonus(u8); +static void PrintJumpsInRow(u16); +static void StartMonHitFlash(u8); +static int IsMonHitShakeActive(int); +static void StopMonHitFlash(void); +static void ResetMonSpriteSubpriorities(void); +static void StartMonIntroBounce(int); +static int IsMonIntroBounceActive(void); +static void SendPacket_MonInfo(struct PokemonJump_MonInfo *); +static bool32 RecvPacket_MonInfo(int, struct PokemonJump_MonInfo *); +static void SendPacket_LeaderState(struct PokemonJump_Player *, struct PokemonJump_CommData *); +static bool32 RecvPacket_LeaderState(struct PokemonJump_Player *, struct PokemonJump_CommData *); +static void SendPacket_MemberState(struct PokemonJump_Player *, u8, u16); +static bool32 RecvPacket_MemberStateToLeader(struct PokemonJump_Player *, int, u8 *, u16 *); +static bool32 RecvPacket_MemberStateToMember(struct PokemonJump_Player *, int); +static bool32 TryUpdateRecords(u32, u16, u16); +static void IncrementGamesWithMaxPlayers(void); +static void Task_RunPokeJumpGfxFunc(u8); +static void ShowBonus(u8); +static void Task_UpdateBonus(u8); +static void LoadPokeJumpGfx(void); +static void InitDigitPrinters(void); +static void PrintScoreSuffixes(void); +static void CreateJumpMonSprites(void); +static void AddPlayerNameWindows(void); +static void DrawPlayerNameWindows(void); +static void SetUpPokeJumpGfxFunc(void (*func)(void)); +static void PrintPokeJumpPlayerNames(bool32); +static u32 AddMessageWindow(u32, u32, u32, u32); +static void CreatePokeJumpYesNoMenu(u16, u16, u8); +static void PrintPlayerNamesNoHighlight(void); +static void PrintPlayerNamesWithHighlight(void); +static void ErasePlayerNames(void); +static void Msg_WantToPlayAgain(void); +static void Msg_SavingDontTurnOff(void); +static void EraseMessage(void); +static void Msg_SomeoneDroppedOut(void); +static void DoPokeJumpCountdown(void); +static void Msg_CommunicationStandby(void); +static void Task_ShowPokemonJumpRecords(u8); +static void PrintRecordsText(u16, int); +static void TruncateToFirstWordOnly(u8 *); -EWRAM_DATA static struct PokemonJump1 *gUnknown_02022CFC = NULL; -EWRAM_DATA static struct PokemonJump2 *gUnknown_02022D00 = NULL; +EWRAM_DATA static struct PokemonJump *sPokemonJump = NULL; +EWRAM_DATA static struct PokemonJumpGfx *sPokemonJumpGfx = NULL; -static const struct PokemonJumpMons gPkmnJumpSpecies[] = +/* + According to the clerk, the Pokémon allowed in + Pokémon Jump are all <= 28 inches, and do not + only swim, burrow, or fly. +*/ +static const struct PokemonJumpMons sPokeJumpMons[] = { - { .species = SPECIES_BULBASAUR, .unk2 = 2, }, - { .species = SPECIES_CHARMANDER, .unk2 = 1, }, - { .species = SPECIES_SQUIRTLE, .unk2 = 0, }, - { .species = SPECIES_CATERPIE, .unk2 = 1, }, - { .species = SPECIES_METAPOD, .unk2 = 1, }, - { .species = SPECIES_WEEDLE, .unk2 = 1, }, - { .species = SPECIES_KAKUNA, .unk2 = 1, }, - { .species = SPECIES_RATTATA, .unk2 = 1, }, - { .species = SPECIES_RATICATE, .unk2 = 1, }, - { .species = SPECIES_PIKACHU, .unk2 = 0, }, - { .species = SPECIES_SANDSHREW, .unk2 = 0, }, - { .species = SPECIES_NIDORAN_F, .unk2 = 0, }, - { .species = SPECIES_NIDORAN_M, .unk2 = 0, }, - { .species = SPECIES_CLEFAIRY, .unk2 = 0, }, - { .species = SPECIES_VULPIX, .unk2 = 0, }, - { .species = SPECIES_JIGGLYPUFF, .unk2 = 2, }, - { .species = SPECIES_ODDISH, .unk2 = 2, }, - { .species = SPECIES_PARAS, .unk2 = 1, }, - { .species = SPECIES_MEOWTH, .unk2 = 0, }, - { .species = SPECIES_PSYDUCK, .unk2 = 2, }, - { .species = SPECIES_MANKEY, .unk2 = 1, }, - { .species = SPECIES_GROWLITHE, .unk2 = 1, }, - { .species = SPECIES_POLIWAG, .unk2 = 2, }, - { .species = SPECIES_BELLSPROUT, .unk2 = 2, }, - { .species = SPECIES_SHELLDER, .unk2 = 1, }, - { .species = SPECIES_KRABBY, .unk2 = 1, }, - { .species = SPECIES_EXEGGCUTE, .unk2 = 2, }, - { .species = SPECIES_CUBONE, .unk2 = 0, }, - { .species = SPECIES_DITTO, .unk2 = 2, }, - { .species = SPECIES_EEVEE, .unk2 = 0, }, - { .species = SPECIES_OMANYTE, .unk2 = 1, }, - { .species = SPECIES_KABUTO, .unk2 = 1, }, - { .species = SPECIES_CHIKORITA, .unk2 = 2, }, - { .species = SPECIES_CYNDAQUIL, .unk2 = 1, }, - { .species = SPECIES_TOTODILE, .unk2 = 0, }, - { .species = SPECIES_SPINARAK, .unk2 = 1, }, - { .species = SPECIES_PICHU, .unk2 = 0, }, - { .species = SPECIES_CLEFFA, .unk2 = 0, }, - { .species = SPECIES_IGGLYBUFF, .unk2 = 2, }, - { .species = SPECIES_TOGEPI, .unk2 = 2, }, - { .species = SPECIES_MAREEP, .unk2 = 0, }, - { .species = SPECIES_BELLOSSOM, .unk2 = 2, }, - { .species = SPECIES_MARILL, .unk2 = 2, }, - { .species = SPECIES_SUNKERN, .unk2 = 2, }, - { .species = SPECIES_WOOPER, .unk2 = 2, }, - { .species = SPECIES_PINECO, .unk2 = 2, }, - { .species = SPECIES_SNUBBULL, .unk2 = 0, }, - { .species = SPECIES_SHUCKLE, .unk2 = 2, }, - { .species = SPECIES_TEDDIURSA, .unk2 = 0, }, - { .species = SPECIES_SLUGMA, .unk2 = 2, }, - { .species = SPECIES_SWINUB, .unk2 = 0, }, - { .species = SPECIES_HOUNDOUR, .unk2 = 1, }, - { .species = SPECIES_PHANPY, .unk2 = 0, }, - { .species = SPECIES_PORYGON2, .unk2 = 0, }, - { .species = SPECIES_TYROGUE, .unk2 = 1, }, - { .species = SPECIES_SMOOCHUM, .unk2 = 2, }, - { .species = SPECIES_ELEKID, .unk2 = 1, }, - { .species = SPECIES_MAGBY, .unk2 = 1, }, - { .species = SPECIES_LARVITAR, .unk2 = 1, }, - { .species = SPECIES_TREECKO, .unk2 = 1, }, - { .species = SPECIES_TORCHIC, .unk2 = 2, }, - { .species = SPECIES_MUDKIP, .unk2 = 0, }, - { .species = SPECIES_MARSHTOMP, .unk2 = 0, }, - { .species = SPECIES_POOCHYENA, .unk2 = 1, }, - { .species = SPECIES_ZIGZAGOON, .unk2 = 0, }, - { .species = SPECIES_LINOONE, .unk2 = 0, }, - { .species = SPECIES_WURMPLE, .unk2 = 1, }, - { .species = SPECIES_SILCOON, .unk2 = 2, }, - { .species = SPECIES_CASCOON, .unk2 = 2, }, - { .species = SPECIES_LOTAD, .unk2 = 2, }, - { .species = SPECIES_SEEDOT, .unk2 = 1, }, - { .species = SPECIES_RALTS, .unk2 = 0, }, - { .species = SPECIES_KIRLIA, .unk2 = 0, }, - { .species = SPECIES_SURSKIT, .unk2 = 2, }, - { .species = SPECIES_SHROOMISH, .unk2 = 2, }, - { .species = SPECIES_NINCADA, .unk2 = 1, }, - { .species = SPECIES_WHISMUR, .unk2 = 0, }, - { .species = SPECIES_AZURILL, .unk2 = 2, }, - { .species = SPECIES_SKITTY, .unk2 = 0, }, - { .species = SPECIES_SABLEYE, .unk2 = 0, }, - { .species = SPECIES_MAWILE, .unk2 = 0, }, - { .species = SPECIES_ARON, .unk2 = 1, }, - { .species = SPECIES_MEDITITE, .unk2 = 2, }, - { .species = SPECIES_ELECTRIKE, .unk2 = 1, }, - { .species = SPECIES_PLUSLE, .unk2 = 1, }, - { .species = SPECIES_MINUN, .unk2 = 1, }, - { .species = SPECIES_VOLBEAT, .unk2 = 0, }, - { .species = SPECIES_ILLUMISE, .unk2 = 0, }, - { .species = SPECIES_ROSELIA, .unk2 = 2, }, - { .species = SPECIES_GULPIN, .unk2 = 2, }, - { .species = SPECIES_NUMEL, .unk2 = 2, }, - { .species = SPECIES_TORKOAL, .unk2 = 2, }, - { .species = SPECIES_SPOINK, .unk2 = 0, }, - { .species = SPECIES_TRAPINCH, .unk2 = 2, }, - { .species = SPECIES_CACNEA, .unk2 = 2, }, - { .species = SPECIES_ANORITH, .unk2 = 1, }, - { .species = SPECIES_WYNAUT, .unk2 = 0, }, - { .species = SPECIES_SNORUNT, .unk2 = 0, }, - { .species = SPECIES_CLAMPERL, .unk2 = 1, }, - { .species = SPECIES_BAGON, .unk2 = 1, }, + { .species = SPECIES_BULBASAUR, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_CHARMANDER, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_SQUIRTLE, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_CATERPIE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_METAPOD, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_WEEDLE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_KAKUNA, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_RATTATA, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_RATICATE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_PIKACHU, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_SANDSHREW, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_NIDORAN_F, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_NIDORAN_M, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_CLEFAIRY, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_VULPIX, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_JIGGLYPUFF, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ODDISH, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_PARAS, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_MEOWTH, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PSYDUCK, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_MANKEY, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_GROWLITHE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_POLIWAG, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_BELLSPROUT, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SHELLDER, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_KRABBY, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_EXEGGCUTE, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_CUBONE, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_DITTO, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_EEVEE, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_OMANYTE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_KABUTO, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_CHIKORITA, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_CYNDAQUIL, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_TOTODILE, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_SPINARAK, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_PICHU, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_CLEFFA, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_IGGLYBUFF, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_TOGEPI, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_MAREEP, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_BELLOSSOM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_MARILL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SUNKERN, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_WOOPER, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_PINECO, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SNUBBULL, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_SHUCKLE, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_TEDDIURSA, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_SLUGMA, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SWINUB, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_HOUNDOUR, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_PHANPY, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PORYGON2, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_TYROGUE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_SMOOCHUM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ELEKID, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_MAGBY, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_LARVITAR, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_TREECKO, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_TORCHIC, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_MUDKIP, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_MARSHTOMP, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_POOCHYENA, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_ZIGZAGOON, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_LINOONE, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_WURMPLE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_SILCOON, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_CASCOON, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_LOTAD, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SEEDOT, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_RALTS, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_KIRLIA, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_SURSKIT, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SHROOMISH, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_NINCADA, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_WHISMUR, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_AZURILL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SKITTY, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_SABLEYE, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_MAWILE, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_ARON, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_MEDITITE, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ELECTRIKE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_PLUSLE, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_MINUN, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_VOLBEAT, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_ILLUMISE, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_ROSELIA, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_GULPIN, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_NUMEL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_TORKOAL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SPOINK, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_TRAPINCH, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_CACNEA, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ANORITH, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_WYNAUT, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_SNORUNT, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_CLAMPERL, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_BAGON, .jumpType = JUMP_TYPE_FAST, }, }; -void StartPokemonJump(u16 partyIndex, MainCallback callback) +void StartPokemonJump(u16 partyId, MainCallback exitCallback) { u8 taskId; if (gReceivedRemoteLinkPlayers) { - gUnknown_02022CFC = Alloc(sizeof(*gUnknown_02022CFC)); - if (gUnknown_02022CFC) + sPokemonJump = Alloc(sizeof(*sPokemonJump)); + if (sPokemonJump) { ResetTasks(); - taskId = CreateTask(sub_802ACA0, 1); - gUnknown_02022CFC->unk8 = 0; - gUnknown_02022CFC->returnCallback = callback; - gUnknown_02022CFC->unk4 = taskId; - gUnknown_02022CFC->unk6 = GetMultiplayerId(); - sub_802AC2C(&gUnknown_02022CFC->unk82A8[gUnknown_02022CFC->unk6], &gPlayerParty[partyIndex]); - sub_802AA60(gUnknown_02022CFC); - SetWordTaskArg(taskId, 2, (u32)gUnknown_02022CFC); - SetMainCallback2(sub_802AC6C); + taskId = CreateTask(Task_StartPokemonJump, 1); + sPokemonJump->mainState = 0; + sPokemonJump->exitCallback = exitCallback; + sPokemonJump->taskId = taskId; + sPokemonJump->multiplayerId = GetMultiplayerId(); + InitJumpMonInfo(&sPokemonJump->monInfo[sPokemonJump->multiplayerId], &gPlayerParty[partyId]); + InitGame(sPokemonJump); + SetWordTaskArg(taskId, 2, (u32)sPokemonJump); + SetMainCallback2(CB2_PokemonJump); return; } } - SetMainCallback2(callback); + // Exit - Players not connected, or alloc failed + SetMainCallback2(exitCallback); } -static void sub_802AA48(void) +static void FreePokemonJump(void) { - sub_802D0AC(); - Free(gUnknown_02022CFC); + FreeWindowsAndDigitObj(); + Free(sPokemonJump); } -static void sub_802AA60(struct PokemonJump1 *arg0) +static void InitGame(struct PokemonJump *jump) { - arg0->unk5 = GetLinkPlayerCount(); - arg0->unk70.unk0 = 5; - arg0->unk70.unk2 = 0; - sub_802AB20(); - sub_802AA94(arg0); - if (arg0->unk5 == MAX_RFU_PLAYERS) - sub_802E3A8(); + jump->numPlayers = GetLinkPlayerCount(); + jump->comm.funcId = FUNC_RESET_GAME; + jump->comm.data = 0; + InitPlayerAndJumpTypes(); + ResetForNewGame(jump); + if (jump->numPlayers == MAX_RFU_PLAYERS) + IncrementGamesWithMaxPlayers(); } -static void sub_802AA94(struct PokemonJump1 *arg0) +static void ResetForNewGame(struct PokemonJump *jump) { int i; - arg0->unk14 = 6; - arg0->unk18 = 6; - arg0->unk4A = 0; - arg0->unk1C = 0; - arg0->unk5C = 0; - arg0->isLeader = GetMultiplayerId() == 0; - arg0->unk8 = 0; - arg0->unkA = 0; - arg0->unkC = 0; - arg0->unkE = 0; - arg0->unk58 = 0; - arg0->unk3A = 0; - arg0->unk44 = 0; - arg0->unk54 = 0; - arg0->unk46 = 0; - arg0->unk49 = 0; - arg0->unk48 = 1; - arg0->unk70.unk8 = 0; - arg0->unk70.unk1 = 0; - arg0->unk70.unk4 = 0; - arg0->unk60 = 1; - arg0->unk4D = 0; - arg0->unk68 = 0; - arg0->unk64 = 0; - arg0->unk2C = 0; - arg0->unk30 = 0; - sub_802AB98(); - sub_802C0E8(); + jump->vineState = VINE_UPSWING_LOWER; + jump->prevVineState = VINE_UPSWING_LOWER; + jump->vineTimer = 0; + jump->vineSpeed = 0; + jump->updateScore = FALSE; + jump->isLeader = GetMultiplayerId() == 0; + jump->mainState = 0; + jump->helperState = 0; + jump->excellentsInRow = 0; + jump->excellentsInRowRecord = 0; + jump->initScoreUpdate = FALSE; + jump->unused2 = 0; + jump->unused3 = 0; + jump->numPlayersAtPeak = 0; + jump->allowVineUpdates = FALSE; + jump->allPlayersReady = FALSE; + jump->funcActive = TRUE; + jump->comm.jumpScore = 0; + jump->comm.receivedBonusFlags = 0; + jump->comm.jumpsInRow = 0; + jump->unused4 = TRUE; + jump->showBonus = FALSE; + jump->skipJumpUpdate = FALSE; + jump->giveBonus = FALSE; + jump->linkTimer = 0; + jump->linkTimerLimit = 0; + ResetPlayersForNewGame(); + ResetPlayersJumpStates(); for (i = 0; i < MAX_RFU_PLAYERS; i++) { - arg0->unk7C[i] = 0; - arg0->unk9A[i] = 0; + jump->atJumpPeak[i] = FALSE; + jump->jumpTimeStarts[i] = 0; } } -static void sub_802AB20(void) +static void InitPlayerAndJumpTypes(void) { int i, index; for (i = 0; i < MAX_RFU_PLAYERS; i++) { - index = GetPokemonJumpSpeciesIdx(gUnknown_02022CFC->unk82A8[i].species); - gUnknown_02022CFC->unk82E4[i].unkC = gPkmnJumpSpecies[index].unk2; + index = GetPokemonJumpSpeciesIdx(sPokemonJump->monInfo[i].species); + sPokemonJump->players[i].monJumpType = sPokeJumpMons[index].jumpType; } - gUnknown_02022CFC->unk83AC = &gUnknown_02022CFC->unk82E4[gUnknown_02022CFC->unk6]; + sPokemonJump->player = &sPokemonJump->players[sPokemonJump->multiplayerId]; } -static void sub_802AB98(void) +static void ResetPlayersForNewGame(void) { int i; for (i = 0; i < MAX_RFU_PLAYERS; i++) { - gUnknown_02022CFC->unk82E4[i].unkE = 0; - gUnknown_02022CFC->unk82E4[i].unk10 = 0; - gUnknown_02022CFC->unk82E4[i].unk12 = 0; - gUnknown_02022CFC->unk82E4[i].unk0 = 0; - gUnknown_02022CFC->unk82E4[i].unk4 = 0x7FFFFFFF; - gUnknown_02022CFC->unk82E4[i].unk14 = 0; - gUnknown_02022CFC->unk8B[i] = 9; + sPokemonJump->players[i].jumpTimeStart = 0; + sPokemonJump->players[i].monState = MONSTATE_NORMAL; + sPokemonJump->players[i].prevMonState = MONSTATE_NORMAL; + sPokemonJump->players[i].jumpOffset = 0; + sPokemonJump->players[i].jumpOffsetIdx = INT_MAX; + sPokemonJump->players[i].jumpState = JUMPSTATE_NONE; + sPokemonJump->memberFuncIds[i] = FUNC_NONE; } } static s16 GetPokemonJumpSpeciesIdx(u16 species) { u32 i; - for (i = 0; i < ARRAY_COUNT(gPkmnJumpSpecies); i++) + for (i = 0; i < ARRAY_COUNT(sPokeJumpMons); i++) { - if (gPkmnJumpSpecies[i].species == species) + if (sPokeJumpMons[i].species == species) return i; } return -1; // species isnt allowed } -static void sub_802AC2C(struct PokemonJump1_MonInfo *monInfo, struct Pokemon *mon) +static void InitJumpMonInfo(struct PokemonJump_MonInfo *monInfo, struct Pokemon *mon) { monInfo->species = GetMonData(mon, MON_DATA_SPECIES); monInfo->otId = GetMonData(mon, MON_DATA_OT_ID); monInfo->personality = GetMonData(mon, MON_DATA_PERSONALITY); } -static void sub_802AC58(void) +static void VBlankCB_PokemonJump(void) { TransferPlttBuffer(); LoadOam(); ProcessSpriteCopyRequests(); } -static void sub_802AC6C(void) +static void CB2_PokemonJump(void) { RunTasks(); AnimateSprites(); @@ -545,280 +675,284 @@ static void sub_802AC6C(void) UpdatePaletteFade(); } -static void sub_802AC84(TaskFunc func) +static void SetPokeJumpTask(TaskFunc func) { - gUnknown_02022CFC->unk4 = CreateTask(func, 1); - gUnknown_02022CFC->unk8 = 0; + sPokemonJump->taskId = CreateTask(func, 1); + sPokemonJump->mainState = 0; } -static void sub_802ACA0(u8 taskId) +static void Task_StartPokemonJump(u8 taskId) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: SetVBlankCallback(NULL); ResetSpriteData(); FreeAllSpritePalettes(); - sub_802BE60(sub_802BD84, 5); + SetTaskWithPokeJumpStruct(Task_CommunicateMonInfo, 5); FadeOutMapMusic(4); - gUnknown_02022CFC->unk8++; + sPokemonJump->mainState++; break; case 1: - if (!FuncIsActiveTask(sub_802BD84)) + if (!FuncIsActiveTask(Task_CommunicateMonInfo)) { - sub_802D074(&gUnknown_02022CFC->unkA4); + StartPokeJumpGfx(&sPokemonJump->jumpGfx); LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); - gUnknown_02022CFC->unk8++; + sPokemonJump->mainState++; } break; case 2: - if (!sub_802D0F0() && IsNotWaitingForBGMStop() == TRUE) + if (!IsPokeJumpGfxFuncFinished() && IsNotWaitingForBGMStop() == TRUE) { FadeOutAndPlayNewMapMusic(MUS_RG_POKE_JUMP, 8); - gUnknown_02022CFC->unk8++; + sPokemonJump->mainState++; } break; case 3: if (IsLinkTaskFinished()) { - BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - SetVBlankCallback(sub_802AC58); - gUnknown_02022CFC->unk8++; + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); + SetVBlankCallback(VBlankCB_PokemonJump); + sPokemonJump->mainState++; } break; case 4: UpdatePaletteFade(); if (!gPaletteFade.active) { - gUnknown_02022CFC->unk7 = 0; - gUnknown_02022CFC->unk8++; + sPokemonJump->startDelayTimer = 0; + sPokemonJump->mainState++; } break; case 5: - gUnknown_02022CFC->unk7++; - if (gUnknown_02022CFC->unk7 >= 20) + sPokemonJump->startDelayTimer++; + if (sPokemonJump->startDelayTimer >= 20) { - if (gUnknown_02022CFC->isLeader) - sub_802AC84(sub_802AF80); + if (sPokemonJump->isLeader) + SetPokeJumpTask(Task_PokemonJump_Leader); else - sub_802AC84(sub_802B194); + SetPokeJumpTask(Task_PokemonJump_Member); - sub_802BE80(); + InitVineState(); DestroyTask(taskId); } break; } } -static void sub_802AE14(int arg0) +static void SetLinkTimeInterval(int intervalId) { - if (arg0 == 0) + if (intervalId == LINK_INTERVAL_NONE) { - gUnknown_02022CFC->unk30 = 0x1111; - gUnknown_02022CFC->unk2C = 1; + // Link data is sent when timer reaches 0. + // Set timer to 1 and set limit to special + // 'stopped' value so timer won't change + sPokemonJump->linkTimerLimit = LINK_TIMER_STOPPED; + sPokemonJump->linkTimer = 1; } else { - gUnknown_02022CFC->unk30 = (1 << (arg0 - 1)) - 1; - gUnknown_02022CFC->unk2C = 0; + sPokemonJump->linkTimerLimit = (1 << (intervalId - 1)) - 1; + sPokemonJump->linkTimer = 0; } } -static void sub_802AE50(u8 arg0) +static void SetFunc_Leader(u8 funcId) { int i; - gUnknown_02022CFC->unk70.unk0 = arg0; - gUnknown_02022CFC->unk8 = 0; - gUnknown_02022CFC->unkA = 0; - gUnknown_02022CFC->unk48 = 1; - gUnknown_02022CFC->unk49 = 0; - for (i = 1; i < gUnknown_02022CFC->unk5; i++) - gUnknown_02022CFC->unk82E4[i].unk18 = 0; + sPokemonJump->comm.funcId = funcId; + sPokemonJump->mainState = 0; + sPokemonJump->helperState = 0; + sPokemonJump->funcActive = TRUE; + sPokemonJump->allPlayersReady = FALSE; + for (i = 1; i < sPokemonJump->numPlayers; i++) + sPokemonJump->players[i].funcFinished = FALSE; } -static void sub_802AEA4(void) +static void RecvLinkData_Leader(void) { int i; - int count; - u16 var0; - u8 var1; - u16 var2; + int numReady; + u16 monState; + u8 funcId; + u16 playAgainState; - for (i = 1, count = 0; i < gUnknown_02022CFC->unk5; i++) + for (i = 1, numReady = 0; i < sPokemonJump->numPlayers; i++) { - var0 = gUnknown_02022CFC->unk82E4[i].unk10; - if (sub_802E264(&gUnknown_02022CFC->unk82E4[i], i, &var1, &var2)) + monState = sPokemonJump->players[i].monState; + if (RecvPacket_MemberStateToLeader(&sPokemonJump->players[i], i, &funcId, &playAgainState)) { - gUnknown_02022CFC->unk90[i] = var2; - gUnknown_02022CFC->unk8B[i] = var1; - gUnknown_02022CFC->unk82E4[i].unk12 = var0; + sPokemonJump->playAgainStates[i] = playAgainState; + sPokemonJump->memberFuncIds[i] = funcId; + sPokemonJump->players[i].prevMonState = monState; } - if (gUnknown_02022CFC->unk82E4[i].unk18 && gUnknown_02022CFC->unk8B[i] == gUnknown_02022CFC->unk70.unk0) - count++; + // Group member has finished currently assigned function + if (sPokemonJump->players[i].funcFinished && sPokemonJump->memberFuncIds[i] == sPokemonJump->comm.funcId) + numReady++; } - if (count == gUnknown_02022CFC->unk5 - 1) - gUnknown_02022CFC->unk49 = 1; + if (numReady == sPokemonJump->numPlayers - 1) + sPokemonJump->allPlayersReady = TRUE; } -static bool32 (* const gUnknown_082FB5F4[])(void) = +static bool32 (* const sPokeJumpLeaderFuncs[])(void) = { - sub_802B248, - sub_802B2D4, - sub_802B368, - sub_802B3D4, - sub_802B4CC, - sub_802B5C8, - sub_802B664, - sub_802B6B8, - sub_802B720, + [FUNC_GAME_INTRO] = GameIntro_Leader, + [FUNC_WAIT_ROUND] = WaitRound_Leader, + [FUNC_GAME_ROUND] = GameRound_Leader, + [FUNC_GAME_OVER] = GameOver_Leader, + [FUNC_ASK_PLAY_AGAIN] = AskPlayAgain_Leader, + [FUNC_RESET_GAME] = ResetGame_Leader, + [FUNC_EXIT] = ExitGame, + [FUNC_GIVE_PRIZE] = GivePrize_Leader, + [FUNC_SAVE] = SavePokeJump, }; -static void sub_802AF80(u8 taskId) +static void Task_PokemonJump_Leader(u8 taskId) { - sub_802AEA4(); - sub_802C43C(); - if (!gUnknown_02022CFC->unk48 && gUnknown_02022CFC->unk49) + RecvLinkData_Leader(); + TryUpdateScore(); + if (!sPokemonJump->funcActive && sPokemonJump->allPlayersReady) { - sub_802AE50(gUnknown_02022CFC->unk4C); - sub_802AE14(3); + SetFunc_Leader(sPokemonJump->nextFuncId); + SetLinkTimeInterval(LINK_INTERVAL_SHORT); } - if (gUnknown_02022CFC->unk48 == 1) + if (sPokemonJump->funcActive == TRUE) { - if (!gUnknown_082FB5F4[gUnknown_02022CFC->unk70.unk0]()) + if (!sPokeJumpLeaderFuncs[sPokemonJump->comm.funcId]()) { - gUnknown_02022CFC->unk48 = 0; - gUnknown_02022CFC->unk82E4[gUnknown_02022CFC->unk6].unk18 = 1; + sPokemonJump->funcActive = FALSE; + sPokemonJump->players[sPokemonJump->multiplayerId].funcFinished = TRUE; } } - sub_802C1DC(); - sub_802B008(); + UpdateGame(); + SendLinkData_Leader(); } -static void sub_802B008(void) +static void SendLinkData_Leader(void) { - if (!gUnknown_02022CFC->unk2C) - sub_802E138(gUnknown_02022CFC->unk82E4, &gUnknown_02022CFC->unk70); + if (!sPokemonJump->linkTimer) + SendPacket_LeaderState(sPokemonJump->players, &sPokemonJump->comm); - if (gUnknown_02022CFC->unk30 != 0x1111) + if (sPokemonJump->linkTimerLimit != LINK_TIMER_STOPPED) { - gUnknown_02022CFC->unk2C++; - gUnknown_02022CFC->unk2C &= gUnknown_02022CFC->unk30; + sPokemonJump->linkTimer++; + sPokemonJump->linkTimer &= sPokemonJump->linkTimerLimit; } } -static void sub_802B044(u8 arg0) +static void SetFunc_Member(u8 funcId) { - gUnknown_02022CFC->unk70.unk0 = arg0; - gUnknown_02022CFC->unk8 = 0; - gUnknown_02022CFC->unkA = 0; - gUnknown_02022CFC->unk48 = 1; - gUnknown_02022CFC->unk82E4[gUnknown_02022CFC->unk6].unk18 = 0; + sPokemonJump->comm.funcId = funcId; + sPokemonJump->mainState = 0; + sPokemonJump->helperState = 0; + sPokemonJump->funcActive = TRUE; + sPokemonJump->players[sPokemonJump->multiplayerId].funcFinished = FALSE; } -static void sub_802B078(void) +static void RecvLinkData_Member(void) { int i; - u16 var0; - struct PokemonJump1Sub sp0; + u16 monState; + struct PokemonJump_CommData leaderData; - var0 = gUnknown_02022CFC->unk82E4[0].unk10; - if (sub_802E1BC(gUnknown_02022CFC->unk82E4, &sp0)) + monState = sPokemonJump->players[0].monState; + if (RecvPacket_LeaderState(sPokemonJump->players, &leaderData)) { - if (gUnknown_02022CFC->unk82E4[gUnknown_02022CFC->unk6].unk18 == 1 - && sp0.unk0 != gUnknown_02022CFC->unk70.unk0) + if (sPokemonJump->players[sPokemonJump->multiplayerId].funcFinished == TRUE + && leaderData.funcId != sPokemonJump->comm.funcId) { - sub_802B044(sp0.unk0); + SetFunc_Member(leaderData.funcId); } - if (gUnknown_02022CFC->unk70.unk8 != sp0.unk8) + if (sPokemonJump->comm.jumpScore != leaderData.jumpScore) { - gUnknown_02022CFC->unk70.unk8 = sp0.unk8; - gUnknown_02022CFC->unk5C = 1; - gUnknown_02022CFC->unk70.unk1 = sp0.unk1; - if (gUnknown_02022CFC->unk70.unk1) - gUnknown_02022CFC->unk4D = 1; + sPokemonJump->comm.jumpScore = leaderData.jumpScore; + sPokemonJump->updateScore = TRUE; + sPokemonJump->comm.receivedBonusFlags = leaderData.receivedBonusFlags; + if (sPokemonJump->comm.receivedBonusFlags) + sPokemonJump->showBonus = TRUE; else - gUnknown_02022CFC->unk4D = 0; + sPokemonJump->showBonus = FALSE; } - gUnknown_02022CFC->unk70.unk2 = sp0.unk2; - gUnknown_02022CFC->unk70.unk4 = sp0.unk4; - gUnknown_02022CFC->unk82E4[0].unk12 = var0; + sPokemonJump->comm.data = leaderData.data; + sPokemonJump->comm.jumpsInRow = leaderData.jumpsInRow; + sPokemonJump->players[0].prevMonState = monState; } - for (i = 1; i < gUnknown_02022CFC->unk5; i++) + for (i = 1; i < sPokemonJump->numPlayers; i++) { - if (i != gUnknown_02022CFC->unk6) + if (i != sPokemonJump->multiplayerId) { - var0 = gUnknown_02022CFC->unk82E4[i].unk10; - if (sub_802E2D0(&gUnknown_02022CFC->unk82E4[i], i)) - gUnknown_02022CFC->unk82E4[i].unk12 = var0; + monState = sPokemonJump->players[i].monState; + if (RecvPacket_MemberStateToMember(&sPokemonJump->players[i], i)) + sPokemonJump->players[i].prevMonState = monState; } } } -static bool32 (* const gUnknown_082FB618[])(void) = +static bool32 (* const sPokeJumpMemberFuncs[])(void) = { - sub_802B29C, - sub_802B31C, - sub_802B3B4, - sub_802B470, - sub_802B568, - sub_802B628, - sub_802B664, - sub_802B704, - sub_802B720, + [FUNC_GAME_INTRO] = GameIntro_Member, + [FUNC_WAIT_ROUND] = WaitRound_Member, + [FUNC_GAME_ROUND] = GameRound_Member, + [FUNC_GAME_OVER] = GameOver_Member, + [FUNC_ASK_PLAY_AGAIN] = AskPlayAgain_Member, + [FUNC_RESET_GAME] = ResetGame_Member, + [FUNC_EXIT] = ExitGame, + [FUNC_GIVE_PRIZE] = GivePrize_Member, + [FUNC_SAVE] = SavePokeJump, }; -static void sub_802B194(u8 taskId) +static void Task_PokemonJump_Member(u8 taskId) { - sub_802B078(); - if (gUnknown_02022CFC->unk48) + RecvLinkData_Member(); + if (sPokemonJump->funcActive) { - if (!gUnknown_082FB618[gUnknown_02022CFC->unk70.unk0]()) + if (!sPokeJumpMemberFuncs[sPokemonJump->comm.funcId]()) { - gUnknown_02022CFC->unk48 = 0; - gUnknown_02022CFC->unk82E4[gUnknown_02022CFC->unk6].unk18 = 1; - sub_802AE14(3); + sPokemonJump->funcActive = FALSE; + sPokemonJump->players[sPokemonJump->multiplayerId].funcFinished = TRUE; + SetLinkTimeInterval(LINK_INTERVAL_SHORT); } } - sub_802C1DC(); - sub_802B1FC(); + UpdateGame(); + SendLinkData_Member(); } -static void sub_802B1FC(void) +static void SendLinkData_Member(void) { - if (!gUnknown_02022CFC->unk2C) - sub_802E234(&gUnknown_02022CFC->unk82E4[gUnknown_02022CFC->unk6], gUnknown_02022CFC->unk70.unk0, gUnknown_02022CFC->unk42); + if (!sPokemonJump->linkTimer) + SendPacket_MemberState(&sPokemonJump->players[sPokemonJump->multiplayerId], sPokemonJump->comm.funcId, sPokemonJump->playAgainComm); - if (gUnknown_02022CFC->unk30 != 0x1111) + if (sPokemonJump->linkTimerLimit != LINK_TIMER_STOPPED) { - gUnknown_02022CFC->unk2C++; - gUnknown_02022CFC->unk2C &= gUnknown_02022CFC->unk30; + sPokemonJump->linkTimer++; + sPokemonJump->linkTimer &= sPokemonJump->linkTimerLimit; } } -static bool32 sub_802B248(void) +static bool32 GameIntro_Leader(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802AE14(3); - gUnknown_02022CFC->unk8++; + SetLinkTimeInterval(LINK_INTERVAL_SHORT); + sPokemonJump->mainState++; // fall through case 1: - if (!sub_802B7E0()) + if (!DoGameIntro()) { - gUnknown_02022CFC->unk70.unk2 = gUnknown_02022CFC->unk4A; - gUnknown_02022CFC->unk4C = 1; + sPokemonJump->comm.data = sPokemonJump->vineTimer; + sPokemonJump->nextFuncId = FUNC_WAIT_ROUND; return FALSE; } break; @@ -827,35 +961,35 @@ static bool32 sub_802B248(void) return TRUE; } -static bool32 sub_802B29C(void) +static bool32 GameIntro_Member(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802AE14(0); - gUnknown_02022CFC->unk24 = gUnknown_02022CFC->unk70.unk2; - gUnknown_02022CFC->unk8++; + SetLinkTimeInterval(LINK_INTERVAL_NONE); + sPokemonJump->rngSeed = sPokemonJump->comm.data; + sPokemonJump->mainState++; // fall through case 1: - return sub_802B7E0(); + return DoGameIntro(); } return TRUE; } -static bool32 sub_802B2D4(void) +static bool32 WaitRound_Leader(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802C0E8(); - sub_802AE14(5); - gUnknown_02022CFC->unk8++; + ResetPlayersJumpStates(); + SetLinkTimeInterval(LINK_INTERVAL_LONG); + sPokemonJump->mainState++; break; case 1: - if (gUnknown_02022CFC->unk49) + if (sPokemonJump->allPlayersReady) { - gUnknown_02022CFC->unk4C = 2; + sPokemonJump->nextFuncId = FUNC_GAME_ROUND; return FALSE; } break; @@ -864,15 +998,15 @@ static bool32 sub_802B2D4(void) return TRUE; } -static bool32 sub_802B31C(void) +static bool32 WaitRound_Member(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802C0E8(); - sub_802AE14(0); - gUnknown_02022CFC->unk4A = gUnknown_02022CFC->unk70.unk2; - gUnknown_02022CFC->unk8++; + ResetPlayersJumpStates(); + SetLinkTimeInterval(LINK_INTERVAL_NONE); + sPokemonJump->vineTimer = sPokemonJump->comm.data; + sPokemonJump->mainState++; // fall through case 1: if (AreLinkQueuesEmpty()) @@ -883,67 +1017,68 @@ static bool32 sub_802B31C(void) return TRUE; } -static bool32 sub_802B368(void) +static bool32 GameRound_Leader(void) { - if (!sub_802B8CC()) + if (!HandleSwingRound()) { - gUnknown_02022CFC->unk70.unk2 = gUnknown_02022CFC->unk4A; - gUnknown_02022CFC->unk4C = 1; + sPokemonJump->comm.data = sPokemonJump->vineTimer; + sPokemonJump->nextFuncId = FUNC_WAIT_ROUND; } - else if (sub_802C538()) + else if (UpdateVineHitStates()) { return TRUE; } else { - sub_802C0B8(); - gUnknown_02022CFC->unk4C = 3; + // Someone hit the vine + ResetVineAfterHit(); + sPokemonJump->nextFuncId = FUNC_GAME_OVER; } return FALSE; } -static bool32 sub_802B3B4(void) +static bool32 GameRound_Member(void) { - if (!sub_802B8CC()) + if (!HandleSwingRound()) ; - else if (sub_802C538()) + else if (UpdateVineHitStates()) return TRUE; - else - sub_802C0B8(); + else // Someone hit the vine + ResetVineAfterHit(); return FALSE; } -static bool32 sub_802B3D4(void) +static bool32 GameOver_Leader(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802C538(); - if (sub_802C5DC()) - gUnknown_02022CFC->unk8++; + UpdateVineHitStates(); + if (AllPlayersJumpedOrHit()) + sPokemonJump->mainState++; break; case 1: - if (!sub_802B964()) + if (!DoVineHitEffect()) { - if (sub_802C7BC()) + if (HasEnoughScoreForPrize()) { - gUnknown_02022CFC->unk70.unk2 = sub_802C7E0(); - gUnknown_02022CFC->unk4C = 7; + sPokemonJump->comm.data = GetPrizeData(); + sPokemonJump->nextFuncId = FUNC_GIVE_PRIZE; } - else if (gUnknown_02022CFC->unk70.unk4 >= 200) + else if (sPokemonJump->comm.jumpsInRow >= 200) { - gUnknown_02022CFC->unk70.unk2 = gUnknown_02022CFC->unkE; - gUnknown_02022CFC->unk4C = 8; + sPokemonJump->comm.data = sPokemonJump->excellentsInRowRecord; + sPokemonJump->nextFuncId = FUNC_SAVE; } else { - gUnknown_02022CFC->unk70.unk2 = gUnknown_02022CFC->unkE; - gUnknown_02022CFC->unk4C = 4; + sPokemonJump->comm.data = sPokemonJump->excellentsInRowRecord; + sPokemonJump->nextFuncId = FUNC_ASK_PLAY_AGAIN; } - gUnknown_02022CFC->unk8++; + sPokemonJump->mainState++; return FALSE; } break; @@ -954,20 +1089,20 @@ static bool32 sub_802B3D4(void) return TRUE; } -static bool32 sub_802B470(void) +static bool32 GameOver_Member(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - if (!sub_802C538()) - sub_802C0B8(); - if (sub_802C5DC()) - gUnknown_02022CFC->unk8++; + if (!UpdateVineHitStates()) + ResetVineAfterHit(); + if (AllPlayersJumpedOrHit()) + sPokemonJump->mainState++; break; case 1: - if (!sub_802B964()) + if (!DoVineHitEffect()) { - gUnknown_02022CFC->unk8++; + sPokemonJump->mainState++; return FALSE; } break; @@ -978,30 +1113,30 @@ static bool32 sub_802B470(void) return TRUE; } -static bool32 sub_802B4CC(void) +static bool32 AskPlayAgain_Leader(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802AE14(4); - gUnknown_02022CFC->unk8++; + SetLinkTimeInterval(LINK_INTERVAL_MEDIUM); + sPokemonJump->mainState++; // fall through case 1: - if (!sub_802BB84()) + if (!DoPlayAgainPrompt()) { - sub_802E354(gUnknown_02022CFC->unk70.unk8, gUnknown_02022CFC->unk70.unk4, gUnknown_02022CFC->unk70.unk2); - gUnknown_02022CFC->unk8++; + TryUpdateRecords(sPokemonJump->comm.jumpScore, sPokemonJump->comm.jumpsInRow, sPokemonJump->comm.data); + sPokemonJump->mainState++; } break; case 2: - if (gUnknown_02022CFC->unk49) + if (sPokemonJump->allPlayersReady) { - if (sub_802C650()) - gUnknown_02022CFC->unk4C = 5; + if (ShouldPlayAgain()) + sPokemonJump->nextFuncId = FUNC_RESET_GAME; else - gUnknown_02022CFC->unk4C = 6; + sPokemonJump->nextFuncId = FUNC_EXIT; - gUnknown_02022CFC->unk8++; + sPokemonJump->mainState++; return FALSE; } break; @@ -1012,19 +1147,19 @@ static bool32 sub_802B4CC(void) return TRUE; } -static bool32 sub_802B568(void) +static bool32 AskPlayAgain_Member(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802AE14(0); - gUnknown_02022CFC->unk8++; + SetLinkTimeInterval(LINK_INTERVAL_NONE); + sPokemonJump->mainState++; // fall through case 1: - if (!sub_802BB84()) + if (!DoPlayAgainPrompt()) { - sub_802E354(gUnknown_02022CFC->unk70.unk8, gUnknown_02022CFC->unk70.unk4, gUnknown_02022CFC->unk70.unk2); - gUnknown_02022CFC->unk42 = gUnknown_02022CFC->unk45; + TryUpdateRecords(sPokemonJump->comm.jumpScore, sPokemonJump->comm.jumpsInRow, sPokemonJump->comm.data); + sPokemonJump->playAgainComm = sPokemonJump->playAgainState; return FALSE; } break; @@ -1033,21 +1168,21 @@ static bool32 sub_802B568(void) return TRUE; } -static bool32 sub_802B5C8(void) +static bool32 ResetGame_Leader(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - if (!sub_802BD30()) - gUnknown_02022CFC->unk8++; + if (!CloseMessageAndResetScore()) + sPokemonJump->mainState++; break; case 1: - if (gUnknown_02022CFC->unk49) + if (sPokemonJump->allPlayersReady) { - sub_802AA94(gUnknown_02022CFC); - gUnknown_02022CFC->unk24 = Random(); - gUnknown_02022CFC->unk70.unk2 = gUnknown_02022CFC->unk24; - gUnknown_02022CFC->unk4C = 0; + ResetForNewGame(sPokemonJump); + sPokemonJump->rngSeed = Random(); + sPokemonJump->comm.data = sPokemonJump->rngSeed; + sPokemonJump->nextFuncId = FUNC_GAME_INTRO; return FALSE; } break; @@ -1056,15 +1191,15 @@ static bool32 sub_802B5C8(void) return TRUE; } -static bool32 sub_802B628(void) +static bool32 ResetGame_Member(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - if (!sub_802BD30()) + if (!CloseMessageAndResetScore()) { - sub_802AA94(gUnknown_02022CFC); - gUnknown_02022CFC->unk8++; + ResetForNewGame(sPokemonJump); + sPokemonJump->mainState++; return FALSE; } break; @@ -1075,22 +1210,22 @@ static bool32 sub_802B628(void) return TRUE; } -static bool32 sub_802B664(void) +static bool32 ExitGame(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - gUnknown_02022CFC->unk8 = 1; + sPokemonJump->mainState = 1; break; case 1: - sub_802AE14(0); - gUnknown_02022CFC->unk8++; + SetLinkTimeInterval(LINK_INTERVAL_NONE); + sPokemonJump->mainState++; break; case 2: - if (!sub_802BC60()) + if (!ClosePokeJumpLink()) { - SetMainCallback2(gUnknown_02022CFC->returnCallback); - sub_802AA48(); + SetMainCallback2(sPokemonJump->exitCallback); + FreePokemonJump(); } break; } @@ -1098,19 +1233,19 @@ static bool32 sub_802B664(void) return TRUE; } -static bool32 sub_802B6B8(void) +static bool32 GivePrize_Leader(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802AE14(4); - gUnknown_02022CFC->unk8++; + SetLinkTimeInterval(LINK_INTERVAL_MEDIUM); + sPokemonJump->mainState++; break; case 1: - if (!sub_802BA58()) + if (!TryGivePrize()) { - gUnknown_02022CFC->unk70.unk2 = gUnknown_02022CFC->unkE; - gUnknown_02022CFC->unk4C = 8; + sPokemonJump->comm.data = sPokemonJump->excellentsInRowRecord; + sPokemonJump->nextFuncId = FUNC_SAVE; return FALSE; } break; @@ -1119,49 +1254,49 @@ static bool32 sub_802B6B8(void) return TRUE; } -static bool32 sub_802B704(void) +static bool32 GivePrize_Member(void) { - sub_802AE14(0); - if (!sub_802BA58()) + SetLinkTimeInterval(LINK_INTERVAL_NONE); + if (!TryGivePrize()) return FALSE; else return TRUE; } -static bool32 sub_802B720(void) +static bool32 SavePokeJump(void) { - switch (gUnknown_02022CFC->unk8) + switch (sPokemonJump->mainState) { case 0: - sub_802E354(gUnknown_02022CFC->unk70.unk8, gUnknown_02022CFC->unk70.unk4, gUnknown_02022CFC->unk70.unk2); - sub_802D0C8(5); - gUnknown_02022CFC->unk8++; + TryUpdateRecords(sPokemonJump->comm.jumpScore, sPokemonJump->comm.jumpsInRow, sPokemonJump->comm.data); + SetUpPokeJumpGfxFuncById(GFXFUNC_MSG_SAVING); + sPokemonJump->mainState++; break; case 1: - if (!sub_802D0F0()) + if (!IsPokeJumpGfxFuncFinished()) { - sub_802AE14(0); - gUnknown_02022CFC->unk8++; + SetLinkTimeInterval(LINK_INTERVAL_NONE); + sPokemonJump->mainState++; } break; case 2: if (AreLinkQueuesEmpty()) { CreateTask(Task_LinkSave, 6); - gUnknown_02022CFC->unk8++; + sPokemonJump->mainState++; } break; case 3: if (!FuncIsActiveTask(Task_LinkSave)) { - sub_802DA14(); - gUnknown_02022CFC->unk8++; + ClearMessageWindow(); + sPokemonJump->mainState++; } break; case 4: - if (!sub_802DA44()) + if (!RemoveMessageWindow()) { - gUnknown_02022CFC->unk4C = 4; + sPokemonJump->nextFuncId = FUNC_ASK_PLAY_AGAIN; return FALSE; } break; @@ -1170,52 +1305,52 @@ static bool32 sub_802B720(void) return TRUE; } -static bool32 sub_802B7E0(void) +static bool32 DoGameIntro(void) { - switch (gUnknown_02022CFC->unkA) + switch (sPokemonJump->helperState) { case 0: - sub_802D0C8(2); - sub_802DDE0(); - gUnknown_02022CFC->unkA++; + SetUpPokeJumpGfxFuncById(GFXFUNC_SHOW_NAMES_HIGHLIGHT); + ResetMonSpriteSubpriorities(); + sPokemonJump->helperState++; break; case 1: - if (!sub_802D0F0()) + if (!IsPokeJumpGfxFuncFinished()) { - sub_802DDF4(gUnknown_02022CFC->unk6); - gUnknown_02022CFC->unk3C = 0; - gUnknown_02022CFC->unkA++; + StartMonIntroBounce(sPokemonJump->multiplayerId); + sPokemonJump->timer = 0; + sPokemonJump->helperState++; } break; case 2: - if (++gUnknown_02022CFC->unk3C > 120) + if (++sPokemonJump->timer > 120) { - sub_802D0C8(3); - gUnknown_02022CFC->unkA++; + SetUpPokeJumpGfxFuncById(GFXFUNC_ERASE_NAMES); + sPokemonJump->helperState++; } break; case 3: - if (sub_802D0F0() != 1 && sub_802DE08() != 1) - gUnknown_02022CFC->unkA++; + if (IsPokeJumpGfxFuncFinished() != TRUE && IsMonIntroBounceActive() != TRUE) + sPokemonJump->helperState++; break; case 4: - sub_802D0C8(9); - gUnknown_02022CFC->unkA++; + SetUpPokeJumpGfxFuncById(GFXFUNC_COUNTDOWN); + sPokemonJump->helperState++; break; case 5: - if (!sub_802D0F0()) + if (!IsPokeJumpGfxFuncFinished()) { - sub_802C260(); - sub_802D764(); - gUnknown_02022CFC->unkA++; + DisallowVineUpdates(); + SetUpResetVineGfx(); + sPokemonJump->helperState++; } break; case 6: - if (!sub_802D788()) + if (!ResetVineGfx()) { - sub_802C270(); - sub_802BEA0(); - gUnknown_02022CFC->unkA++; + AllowVineUpdates(); + ResetVineState(); + sPokemonJump->helperState++; return FALSE; } break; @@ -1226,85 +1361,88 @@ static bool32 sub_802B7E0(void) return TRUE; } -static bool32 sub_802B8CC(void) +// Update the vine and wait for player to input a jump +// Returns false when vine reaches the 'hit' point, after +// which input is ignored +static bool32 HandleSwingRound(void) { - sub_802BEE4(); - if (gUnknown_02022CFC->unk36) + UpdateVineState(); + if (sPokemonJump->ignoreJumpInput) { - gUnknown_02022CFC->unk36 = 0; + sPokemonJump->ignoreJumpInput = FALSE; return FALSE; } - switch (gUnknown_02022CFC->unkA) + switch (sPokemonJump->helperState) { case 0: - if (sub_802C130(0)) - gUnknown_02022CFC->unkA++; + if (IsPlayersMonState(MONSTATE_NORMAL)) + sPokemonJump->helperState++; else break; // fall through case 1: if (JOY_NEW(A_BUTTON)) { - sub_802C164(); - sub_802AE14(3); - gUnknown_02022CFC->unkA++; + SetMonStateJump(); + SetLinkTimeInterval(LINK_INTERVAL_SHORT); + sPokemonJump->helperState++; } break; case 2: - if (sub_802C130(1) == TRUE) - gUnknown_02022CFC->unkA++; + if (IsPlayersMonState(MONSTATE_JUMP) == TRUE) + sPokemonJump->helperState++; break; case 3: - if (sub_802C130(0) == TRUE) - gUnknown_02022CFC->unkA = 0; + if (IsPlayersMonState(MONSTATE_NORMAL) == TRUE) + sPokemonJump->helperState = 0; break; } return TRUE; } -static bool32 sub_802B964(void) +static bool32 DoVineHitEffect(void) { int i; - switch (gUnknown_02022CFC->unkA) + switch (sPokemonJump->helperState) { case 0: - for (i = 0; i < gUnknown_02022CFC->unk5; i++) + for (i = 0; i < sPokemonJump->numPlayers; i++) { - if (sub_802DDB8(i) == 1) + if (IsMonHitShakeActive(i) == TRUE) return TRUE; } - gUnknown_02022CFC->unkA++; + sPokemonJump->helperState++; break; case 1: - for (i = 0; i < gUnknown_02022CFC->unk5; i++) + for (i = 0; i < sPokemonJump->numPlayers; i++) { - if (gUnknown_02022CFC->unk82E4[i].unk10 == 2) - sub_802DDA0(i); + if (sPokemonJump->players[i].monState == MONSTATE_HIT) + StartMonHitFlash(i); } - sub_802D0C8(1); - gUnknown_02022CFC->unk3C = 0; - gUnknown_02022CFC->unkA++; + SetUpPokeJumpGfxFuncById(GFXFUNC_SHOW_NAMES); + sPokemonJump->timer = 0; + sPokemonJump->helperState++; break; case 2: - if (++gUnknown_02022CFC->unk3C > 100) + if (++sPokemonJump->timer > 100) { - sub_802D0C8(3); - gUnknown_02022CFC->unk3C = 0; - gUnknown_02022CFC->unkA++; + SetUpPokeJumpGfxFuncById(GFXFUNC_ERASE_NAMES); + sPokemonJump->timer = 0; + sPokemonJump->helperState++; } break; case 3: - if (!sub_802D0F0()) + if (!IsPokeJumpGfxFuncFinished()) { - sub_802DDCC(); - gUnknown_02022CFC->unk70.unk1 = 0; - sub_802C114(); - gUnknown_02022CFC->unkA++; + StopMonHitFlash(); + sPokemonJump->comm.receivedBonusFlags = 0; + ResetPlayersMonState(); + sPokemonJump->helperState++; return FALSE; } break; @@ -1315,58 +1453,61 @@ static bool32 sub_802B964(void) return TRUE; } -static bool32 sub_802BA58(void) +static bool32 TryGivePrize(void) { - switch (gUnknown_02022CFC->unkA) + switch (sPokemonJump->helperState) { case 0: - sub_802C808(gUnknown_02022CFC->unk70.unk2, &gUnknown_02022CFC->unk3E, &gUnknown_02022CFC->unk40); - sub_802D7E8(gUnknown_02022CFC->unk3E, gUnknown_02022CFC->unk40); - gUnknown_02022CFC->unkA++; + UnpackPrizeData(sPokemonJump->comm.data, &sPokemonJump->prizeItemId, &sPokemonJump->prizeItemQuantity); + PrintPrizeMessage(sPokemonJump->prizeItemId, sPokemonJump->prizeItemQuantity); + sPokemonJump->helperState++; break; case 1: case 4: - if (!sub_802D974()) + if (!DoPrizeMessageAndFanfare()) { - gUnknown_02022CFC->unk3C = 0; - gUnknown_02022CFC->unkA++; + sPokemonJump->timer = 0; + sPokemonJump->helperState++; } break; case 2: case 5: - gUnknown_02022CFC->unk3C++; - if (JOY_NEW(A_BUTTON | B_BUTTON) || gUnknown_02022CFC->unk3C > 180) + // Wait to continue after message + sPokemonJump->timer++; + if (JOY_NEW(A_BUTTON | B_BUTTON) || sPokemonJump->timer > 180) { - sub_802DA14(); - gUnknown_02022CFC->unkA++; + ClearMessageWindow(); + sPokemonJump->helperState++; } break; case 3: - if (!sub_802DA44()) + if (!RemoveMessageWindow()) { - gUnknown_02022CFC->unk40 = sub_802C880(gUnknown_02022CFC->unk3E, gUnknown_02022CFC->unk40); - if (gUnknown_02022CFC->unk40 && AddBagItem(gUnknown_02022CFC->unk3E, gUnknown_02022CFC->unk40)) + sPokemonJump->prizeItemQuantity = GetQuantityLimitedByBag(sPokemonJump->prizeItemId, sPokemonJump->prizeItemQuantity); + if (sPokemonJump->prizeItemQuantity && AddBagItem(sPokemonJump->prizeItemId, sPokemonJump->prizeItemQuantity)) { - if (!CheckBagHasSpace(gUnknown_02022CFC->unk3E, 1)) + if (!CheckBagHasSpace(sPokemonJump->prizeItemId, 1)) { - sub_802D884(gUnknown_02022CFC->unk3E); - gUnknown_02022CFC->unkA = 4; + // An item was given successfully, but no room for any more. + // It's possible the full prize quantity had to be limited + PrintPrizeFilledBagMessage(sPokemonJump->prizeItemId); + sPokemonJump->helperState = 4; // Do message } else { - gUnknown_02022CFC->unkA = 6; + sPokemonJump->helperState = 6; // Exit break; } } else { - sub_802D8FC(gUnknown_02022CFC->unk3E); - gUnknown_02022CFC->unkA = 4; + PrintNoRoomForPrizeMessage(sPokemonJump->prizeItemId); + sPokemonJump->helperState = 4; // Do message } } break; case 6: - if (!sub_802DA44()) + if (!RemoveMessageWindow()) return FALSE; break; } @@ -1374,49 +1515,49 @@ static bool32 sub_802BA58(void) return TRUE; } -static bool32 sub_802BB84(void) +static bool32 DoPlayAgainPrompt(void) { s8 input; - switch (gUnknown_02022CFC->unkA) + switch (sPokemonJump->helperState) { case 0: - sub_802D0C8(4); - gUnknown_02022CFC->unkA++; + SetUpPokeJumpGfxFuncById(GFXFUNC_MSG_PLAY_AGAIN); + sPokemonJump->helperState++; break; case 1: - if (!sub_802D0F0()) - gUnknown_02022CFC->unkA++; + if (!IsPokeJumpGfxFuncFinished()) + sPokemonJump->helperState++; break; case 2: - input = sub_802DA8C(); + input = HandlePlayAgainInput(); switch (input) { case MENU_B_PRESSED: - case 1: - gUnknown_02022CFC->unk45 = 1; - sub_802D0C8(6); - gUnknown_02022CFC->unkA++; + case 1: // No + sPokemonJump->playAgainState = PLAY_AGAIN_NO; + SetUpPokeJumpGfxFuncById(GFXFUNC_ERASE_MSG); + sPokemonJump->helperState++; break; - case 0: - gUnknown_02022CFC->unk45 = 2; - sub_802D0C8(6); - gUnknown_02022CFC->unkA++; + case 0: // Yes + sPokemonJump->playAgainState = PLAY_AGAIN_YES; + SetUpPokeJumpGfxFuncById(GFXFUNC_ERASE_MSG); + sPokemonJump->helperState++; break; } break; case 3: - if (!sub_802D0F0()) - gUnknown_02022CFC->unkA++; + if (!IsPokeJumpGfxFuncFinished()) + sPokemonJump->helperState++; break; case 4: - sub_802D0C8(8); - gUnknown_02022CFC->unkA++; + SetUpPokeJumpGfxFuncById(GFXFUNC_MSG_COMM_STANDBY); + sPokemonJump->helperState++; break; case 5: - if (!sub_802D0F0()) + if (!IsPokeJumpGfxFuncFinished()) { - gUnknown_02022CFC->unkA++; + sPokemonJump->helperState++; return FALSE; } break; @@ -1427,43 +1568,40 @@ static bool32 sub_802BB84(void) return TRUE; } -static bool32 sub_802BC60(void) +static bool32 ClosePokeJumpLink(void) { - int var0; - - switch (gUnknown_02022CFC->unkA) + switch (sPokemonJump->helperState) { case 0: - sub_802DA14(); - gUnknown_02022CFC->unkA++; + ClearMessageWindow(); + sPokemonJump->helperState++; break; case 1: - if (!sub_802DA44()) + if (!RemoveMessageWindow()) { - sub_802D0C8(7); - gUnknown_02022CFC->unkA++; + SetUpPokeJumpGfxFuncById(GFXFUNC_MSG_PLAYER_DROPPED); + sPokemonJump->helperState++; } break; case 2: - var0 = sub_802D0F0(); - if (!var0) + if (!IsPokeJumpGfxFuncFinished()) { - gUnknown_02022CFC->unk3C = var0; - gUnknown_02022CFC->unkA++; + sPokemonJump->timer = 0; + sPokemonJump->helperState++; } break; case 3: - if (++gUnknown_02022CFC->unk3C > 120) + if (++sPokemonJump->timer > 120) { - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); - gUnknown_02022CFC->unkA++; + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); + sPokemonJump->helperState++; } break; case 4: if (!gPaletteFade.active) { SetCloseLinkCallback(); - gUnknown_02022CFC->unkA++; + sPokemonJump->helperState++; } break; case 5: @@ -1475,19 +1613,19 @@ static bool32 sub_802BC60(void) return TRUE; } -static bool32 sub_802BD30(void) +static bool32 CloseMessageAndResetScore(void) { - switch (gUnknown_02022CFC->unkA) + switch (sPokemonJump->helperState) { case 0: - sub_802DA14(); - sub_802DD64(0); - gUnknown_02022CFC->unkA++; + ClearMessageWindow(); + PrintScore(0); + sPokemonJump->helperState++; break; case 1: - if (!sub_802DA44()) + if (!RemoveMessageWindow()) { - gUnknown_02022CFC->unkA++; + sPokemonJump->helperState++; return FALSE; } break; @@ -1498,32 +1636,37 @@ static bool32 sub_802BD30(void) return TRUE; } -static void sub_802BD84(u8 taskId) +#define tState data[0] +#define tNumReceived data[1] +#define tReceivedPacket(playerId) data[(playerId) + 2] +#define DATAIDX_GAME_STRUCT 14 + +static void Task_CommunicateMonInfo(u8 taskId) { int i; - s16 *taskData = gTasks[taskId].data; - struct PokemonJump1 *ptr = (struct PokemonJump1 *)GetWordTaskArg(taskId, 14); + s16 *data = gTasks[taskId].data; + struct PokemonJump *jump = (struct PokemonJump *)GetWordTaskArg(taskId, DATAIDX_GAME_STRUCT); - switch (taskData[0]) + switch (tState) { case 0: for (i = 0; i < MAX_RFU_PLAYERS; i++) - taskData[i + 2] = 0; + tReceivedPacket(i) = FALSE; - taskData[0]++; + tState++; // fall through case 1: - sub_802E0AC(&ptr->unk82A8[ptr->unk6]); + SendPacket_MonInfo(&jump->monInfo[jump->multiplayerId]); for (i = 0; i < MAX_RFU_PLAYERS; i++) { - if (!taskData[i + 2] && sub_802E0D0(i, &ptr->unk82A8[i])) + if (!tReceivedPacket(i) && RecvPacket_MonInfo(i, &jump->monInfo[i])) { - StringCopy(ptr->unk82E4[i].unk1C, gLinkPlayers[i].name); - taskData[i + 2] = 1; - taskData[1]++; - if (taskData[1] == ptr->unk5) + StringCopy(jump->players[i].name, gLinkPlayers[i].name); + tReceivedPacket(i) = TRUE; + tNumReceived++; + if (tNumReceived == jump->numPlayers) { - sub_802AB20(); + InitPlayerAndJumpTypes(); DestroyTask(taskId); break; } @@ -1533,495 +1676,528 @@ static void sub_802BD84(u8 taskId) } } -static void sub_802BE60(TaskFunc func, u8 taskPriority) +static void SetTaskWithPokeJumpStruct(TaskFunc func, u8 taskPriority) { u8 taskId = CreateTask(func, taskPriority); - SetWordTaskArg(taskId, 14, (u32)gUnknown_02022CFC); + SetWordTaskArg(taskId, DATAIDX_GAME_STRUCT, (u32)sPokemonJump); } -static void sub_802BE80(void) +#undef tState +#undef tNumReceived +#undef tReceivedPacket +#undef DATAIDX_GAME_STRUCT + +static void InitVineState(void) { - gUnknown_02022CFC->unk4A = 0; - gUnknown_02022CFC->unk14 = 6; - gUnknown_02022CFC->unk34 = 0; - gUnknown_02022CFC->unk1C = 0; - gUnknown_02022CFC->unk36 = 0; - gUnknown_02022CFC->unk10 = 0; + sPokemonJump->vineTimer = 0; + sPokemonJump->vineState = VINE_UPSWING_LOWER; + sPokemonJump->vineStateTimer = 0; + sPokemonJump->vineSpeed = 0; + sPokemonJump->ignoreJumpInput = FALSE; + sPokemonJump->gameOver = FALSE; } -static void sub_802BEA0(void) +static void ResetVineState(void) { - gUnknown_02022CFC->unk4A = 0; - gUnknown_02022CFC->unk34 = 0x6FF; - gUnknown_02022CFC->unk14 = 7; - gUnknown_02022CFC->unk36 = 0; - gUnknown_02022CFC->unk10 = 0; - gUnknown_02022CFC->unk51 = 0; - gUnknown_02022CFC->unk50 = 0; - gUnknown_02022CFC->unk20 = 0; - gUnknown_02022CFC->unk4E = 0; - gUnknown_02022CFC->unk6C = 0; - sub_802BF7C(); + sPokemonJump->vineTimer = 0; + sPokemonJump->vineStateTimer = VINE_STATE_TIMER(VINE_UPSWING_LOWER); + sPokemonJump->vineState = VINE_UPSWING_LOW; + sPokemonJump->ignoreJumpInput = FALSE; + sPokemonJump->gameOver = FALSE; + sPokemonJump->vineSpeedStage = 0; + sPokemonJump->vineBaseSpeedIdx = 0; + sPokemonJump->vineSpeedAccel = 0; + sPokemonJump->vineSpeedDelay = 0; + sPokemonJump->atMaxSpeedStage = FALSE; + UpdateVineSpeed(); } -static void sub_802BEE4(void) +static void UpdateVineState(void) { - if (gUnknown_02022CFC->unk46) + if (sPokemonJump->allowVineUpdates) { - gUnknown_02022CFC->unk4A++; - gUnknown_02022CFC->unk34 += sub_802BF48(); - if (gUnknown_02022CFC->unk34 >= 0x9FF) - gUnknown_02022CFC->unk34 -= 0x9FF; + sPokemonJump->vineTimer++; + sPokemonJump->vineStateTimer += GetVineSpeed(); + if (sPokemonJump->vineStateTimer >= VINE_STATE_TIMER(NUM_VINESTATES - 1)) + sPokemonJump->vineStateTimer -= VINE_STATE_TIMER(NUM_VINESTATES - 1); - gUnknown_02022CFC->unk18 = gUnknown_02022CFC->unk14; - gUnknown_02022CFC->unk14 = gUnknown_02022CFC->unk34 >> 8; - if (gUnknown_02022CFC->unk14 > 6 && gUnknown_02022CFC->unk18 < 7) + sPokemonJump->prevVineState = sPokemonJump->vineState; + sPokemonJump->vineState = sPokemonJump->vineStateTimer >> 8; + + // If beginning upswing + if (sPokemonJump->vineState > VINE_UPSWING_LOWER && sPokemonJump->prevVineState < VINE_UPSWING_LOW) { - gUnknown_02022CFC->unk36++; - sub_802BF7C(); + sPokemonJump->ignoreJumpInput++; + UpdateVineSpeed(); } } } -static int sub_802BF48(void) +static int GetVineSpeed(void) { - int result; + int speed; - if (gUnknown_02022CFC->unk10) + if (sPokemonJump->gameOver) return 0; - result = gUnknown_02022CFC->unk1C; - if (gUnknown_02022CFC->unk34 <= 0x5FF) + speed = sPokemonJump->vineSpeed; + if (sPokemonJump->vineStateTimer <= VINE_STATE_TIMER(VINE_LOWEST)) { - gUnknown_02022CFC->unk20 += 80; - result += gUnknown_02022CFC->unk20 >> 8; + // If at or below lowest, then vine is in downswing + // Increase speed in downswing + sPokemonJump->vineSpeedAccel += 80; + speed += sPokemonJump->vineSpeedAccel / 256; } - return result; + return speed; } -static const u16 gUnknown_082FB63C[] = {0x1a, 0x1f, 0x24, 0x29, 0x2e, 0x33, 0x38, 0x3d}; -static const u16 gUnknown_082FB64C[] = {0, 1, 1, 2}; +static const u16 sVineBaseSpeeds[] = {26, 31, 36, 41, 46, 51, 56, 61}; +static const u16 sVineSpeedDelays[] = {0, 1, 1, 2}; -static void sub_802BF7C(void) +static void UpdateVineSpeed(void) { - int var0; + int baseSpeed; - gUnknown_02022CFC->unk20 = 0; - if (gUnknown_02022CFC->unk4E) + sPokemonJump->vineSpeedAccel = 0; + if (sPokemonJump->vineSpeedDelay) { - gUnknown_02022CFC->unk4E--; - if (gUnknown_02022CFC->unk6C) + sPokemonJump->vineSpeedDelay--; + if (sPokemonJump->atMaxSpeedStage) { - if (sub_802C098() % 4 != 0) + if (PokeJumpRandom() % 4) { - gUnknown_02022CFC->unk1C = gUnknown_02022CFC->unk28; + sPokemonJump->vineSpeed = sPokemonJump->nextVineSpeed; } else { - if (gUnknown_02022CFC->unk28 > 54) - gUnknown_02022CFC->unk1C = 30; + if (sPokemonJump->nextVineSpeed > 54) + sPokemonJump->vineSpeed = 30; else - gUnknown_02022CFC->unk1C = 82; + sPokemonJump->vineSpeed = 82; } } } else { - if (!(gUnknown_02022CFC->unk50 & 8)) + if (!(sPokemonJump->vineBaseSpeedIdx & ARRAY_COUNT(sVineBaseSpeeds))) { - gUnknown_02022CFC->unk28 = gUnknown_082FB63C[gUnknown_02022CFC->unk50] + (gUnknown_02022CFC->unk51 * 7); - gUnknown_02022CFC->unk4E = gUnknown_082FB64C[sub_802C098() % ARRAY_COUNT(gUnknown_082FB64C)] + 2; - gUnknown_02022CFC->unk50++; + sPokemonJump->nextVineSpeed = sVineBaseSpeeds[sPokemonJump->vineBaseSpeedIdx] + (sPokemonJump->vineSpeedStage * 7); + sPokemonJump->vineSpeedDelay = sVineSpeedDelays[PokeJumpRandom() % ARRAY_COUNT(sVineSpeedDelays)] + 2; + sPokemonJump->vineBaseSpeedIdx++; } else { - if (gUnknown_02022CFC->unk50 == 8) + if (sPokemonJump->vineBaseSpeedIdx == ARRAY_COUNT(sVineBaseSpeeds)) { - if (gUnknown_02022CFC->unk51 < 3) - gUnknown_02022CFC->unk51++; + if (sPokemonJump->vineSpeedStage < 3) + sPokemonJump->vineSpeedStage++; else - gUnknown_02022CFC->unk6C = 1; + sPokemonJump->atMaxSpeedStage = TRUE; } - var0 = gUnknown_082FB63C[15 - gUnknown_02022CFC->unk50]; - gUnknown_02022CFC->unk28 = var0 + (gUnknown_02022CFC->unk51 * 7); - if (++gUnknown_02022CFC->unk50 > 15) + baseSpeed = sVineBaseSpeeds[15 - sPokemonJump->vineBaseSpeedIdx]; + sPokemonJump->nextVineSpeed = baseSpeed + (sPokemonJump->vineSpeedStage * 7); + if (++sPokemonJump->vineBaseSpeedIdx > 15) { - if (sub_802C098() % 4 == 0) - gUnknown_02022CFC->unk28 -= 5; + if (PokeJumpRandom() % 4 == 0) + sPokemonJump->nextVineSpeed -= 5; - gUnknown_02022CFC->unk50 = 0; + sPokemonJump->vineBaseSpeedIdx = 0; } } - gUnknown_02022CFC->unk1C = gUnknown_02022CFC->unk28; + sPokemonJump->vineSpeed = sPokemonJump->nextVineSpeed; } } -static int sub_802C098(void) +static int PokeJumpRandom(void) { - gUnknown_02022CFC->unk24 = ISO_RANDOMIZE1(gUnknown_02022CFC->unk24); - return gUnknown_02022CFC->unk24 >> 16; + sPokemonJump->rngSeed = ISO_RANDOMIZE1(sPokemonJump->rngSeed); + return sPokemonJump->rngSeed >> 16; } -static void sub_802C0B8(void) +static void ResetVineAfterHit(void) { - gUnknown_02022CFC->unk10 = 1; - gUnknown_02022CFC->unk14 = 6; - gUnknown_02022CFC->unk34 = 0x5FF; - sub_802C270(); + sPokemonJump->gameOver = TRUE; + sPokemonJump->vineState = VINE_UPSWING_LOWER; + sPokemonJump->vineStateTimer = VINE_STATE_TIMER(VINE_LOWEST); + AllowVineUpdates(); } -static int sub_802C0DC(void) +static int IsGameOver(void) { - return gUnknown_02022CFC->unk10; + return sPokemonJump->gameOver; } -static void sub_802C0E8(void) +static void ResetPlayersJumpStates(void) { int i; for (i = 0; i < MAX_RFU_PLAYERS; i++) - gUnknown_02022CFC->unk82E4[i].unk14 = 0; + sPokemonJump->players[i].jumpState = JUMPSTATE_NONE; } -static void sub_802C114(void) +static void ResetPlayersMonState(void) { - gUnknown_02022CFC->unk83AC->unk10 = 0; - gUnknown_02022CFC->unk83AC->unk12 = 0; + sPokemonJump->player->monState = MONSTATE_NORMAL; + sPokemonJump->player->prevMonState = MONSTATE_NORMAL; } -static bool32 sub_802C130(u16 arg0) +static bool32 IsPlayersMonState(u16 monState) { - if (gUnknown_02022CFC->unk82E4[gUnknown_02022CFC->unk6].unk10 == arg0) + if (sPokemonJump->players[sPokemonJump->multiplayerId].monState == monState) return TRUE; else return FALSE; } -static void sub_802C164(void) +static void SetMonStateJump(void) { - gUnknown_02022CFC->unk83AC->unkE = gUnknown_02022CFC->unk4A; - gUnknown_02022CFC->unk83AC->unk12 = gUnknown_02022CFC->unk83AC->unk10; - gUnknown_02022CFC->unk83AC->unk10 = 1; + sPokemonJump->player->jumpTimeStart = sPokemonJump->vineTimer; + sPokemonJump->player->prevMonState = sPokemonJump->player->monState; + sPokemonJump->player->monState = MONSTATE_JUMP; } -static void sub_802C18C(void) +static void SetMonStateHit(void) { - gUnknown_02022CFC->unk83AC->unk12 = gUnknown_02022CFC->unk83AC->unk10; - gUnknown_02022CFC->unk83AC->unk10 = 2; - gUnknown_02022CFC->unk83AC->unkE = gUnknown_02022CFC->unk4A; - gUnknown_02022CFC->unk83AC->unk14 = 2; + sPokemonJump->player->prevMonState = sPokemonJump->player->monState; + sPokemonJump->player->monState = MONSTATE_HIT; + sPokemonJump->player->jumpTimeStart = sPokemonJump->vineTimer; + sPokemonJump->player->jumpState = JUMPSTATE_FAILURE; } -static void sub_802C1BC(void) +static void SetMonStateNormal(void) { - gUnknown_02022CFC->unk83AC->unk12 = gUnknown_02022CFC->unk83AC->unk10; - gUnknown_02022CFC->unk83AC->unk10 = 0; + sPokemonJump->player->prevMonState = sPokemonJump->player->monState; + sPokemonJump->player->monState = MONSTATE_NORMAL; } -static const u16 gUnknown_082FB654[] = {SE_SHOP, SE_SHINY, SE_M_MORNING_SUN, SE_RG_POKE_JUMP_SUCCESS}; +static const u16 sSoundEffects[MAX_RFU_PLAYERS - 1] = {SE_SHOP, SE_SHINY, SE_M_MORNING_SUN, SE_RG_POKE_JUMP_SUCCESS}; -static void sub_802C1DC(void) +static void UpdateGame(void) { - if (gUnknown_02022CFC->unk5C) + if (sPokemonJump->updateScore) { - sub_802DD64(gUnknown_02022CFC->unk70.unk8); - gUnknown_02022CFC->unk5C = 0; - if (gUnknown_02022CFC->unk4D) + PrintScore(sPokemonJump->comm.jumpScore); + sPokemonJump->updateScore = FALSE; + if (sPokemonJump->showBonus) { - int index = sub_802DCCC(gUnknown_02022CFC->unk70.unk1); - PlaySE(gUnknown_082FB654[index - 2]); - gUnknown_02022CFC->unk4D = 0; + int numPlayers = DoSameJumpTimeBonus(sPokemonJump->comm.receivedBonusFlags); + PlaySE(sSoundEffects[numPlayers - 2]); + sPokemonJump->showBonus = FALSE; } } - sub_802DD74(gUnknown_02022CFC->unk70.unk4); - sub_802C280(); - sub_802C240(); + PrintJumpsInRow(sPokemonJump->comm.jumpsInRow); + HandleMonState(); + TryUpdateVineSwing(); } -static void sub_802C240(void) +static void TryUpdateVineSwing(void) { - if (gUnknown_02022CFC->unk46) - sub_802DC9C(gUnknown_02022CFC->unk14); + if (sPokemonJump->allowVineUpdates) + UpdateVineSwing(sPokemonJump->vineState); } -static void sub_802C260(void) +static void DisallowVineUpdates(void) { - gUnknown_02022CFC->unk46 = 0; + sPokemonJump->allowVineUpdates = FALSE; } -static void sub_802C270(void) +static void AllowVineUpdates(void) { - gUnknown_02022CFC->unk46 = 1; + sPokemonJump->allowVineUpdates = TRUE; } -static void sub_802C280(void) +#define F_SE_JUMP (1 << 0) +#define F_SE_FAIL (1 << 1) + +static void HandleMonState(void) { int i; - int whichSound = 0; - int numLinkPlayers = gUnknown_02022CFC->unk5; + int soundFlags = 0; + int numPlayers = sPokemonJump->numPlayers; - for (i = 0; i < numLinkPlayers; i++) + for (i = 0; i < numPlayers; i++) { - switch (gUnknown_02022CFC->unk82E4[i].unk10) + switch (sPokemonJump->players[i].monState) { - case 0: - sub_802DC80(i, 0); + case MONSTATE_NORMAL: + SetMonSpriteY(i, 0); break; - case 1: - if (gUnknown_02022CFC->unk82E4[i].unk12 != 1 || gUnknown_02022CFC->unk82E4[i].unkE != gUnknown_02022CFC->unk9A[i]) + case MONSTATE_JUMP: + if (sPokemonJump->players[i].prevMonState != MONSTATE_JUMP || sPokemonJump->players[i].jumpTimeStart != sPokemonJump->jumpTimeStarts[i]) { - if (i == gUnknown_02022CFC->unk6) - gUnknown_02022CFC->unk82E4[i].unk12 = 1; + // This is a new jump, play SE and init fields for jump handling + if (i == sPokemonJump->multiplayerId) + sPokemonJump->players[i].prevMonState = MONSTATE_JUMP; - whichSound |= 0x1; - gUnknown_02022CFC->unk82E4[i].unk4 = 0x7FFFFFFF; - gUnknown_02022CFC->unk9A[i] = gUnknown_02022CFC->unk82E4[i].unkE; + soundFlags |= F_SE_JUMP; + sPokemonJump->players[i].jumpOffsetIdx = INT_MAX; + sPokemonJump->jumpTimeStarts[i] = sPokemonJump->players[i].jumpTimeStart; } - sub_802C398(i); + UpdateJump(i); break; - case 2: - if (gUnknown_02022CFC->unk82E4[i].unk12 != 2) + case MONSTATE_HIT: + if (sPokemonJump->players[i].prevMonState != MONSTATE_HIT) { - if (i == gUnknown_02022CFC->unk6) - gUnknown_02022CFC->unk82E4[i].unk12 = 2; + if (i == sPokemonJump->multiplayerId) + sPokemonJump->players[i].prevMonState = MONSTATE_HIT; - whichSound |= 0x2; - sub_802DD88(i); + soundFlags |= F_SE_FAIL; + StartMonHitShake(i); } break; } } - if (whichSound & 0x2) + if (soundFlags & F_SE_FAIL) PlaySE(SE_RG_POKE_JUMP_FAILURE); - else if (whichSound & 0x1) + else if (soundFlags & F_SE_JUMP) PlaySE(SE_LEDGE); } -static const s8 gUnknown_082FB65C[][48] = +static const s8 sJumpOffsets[][48] = { - {-3, -6, -8, -10, -13, -15, -17, -19, -21, -23, -25, -27, -28, -29, -30, -30, -30, -28, -27, - -26, -25, -23, -22, -20, -18, -17, -15, -13, -11, -8, -6, -4, -1}, + [JUMP_TYPE_NORMAL] = { -3, -6, -8, -10, -13, -15, -17, -19, + -21, -23, -25, -27, -28, -29, + JUMP_PEAK, JUMP_PEAK, JUMP_PEAK, + -28, -27, -26, -25, -23, -22, -20, -18, + -17, -15, -13, -11, -8, -6, -4, -1}, - {-3, -6, -9, -11, -14, -16, -18, -20, -22, -24, -26, -28, -29, -30, -30, -28, -26, -24, -22, - -20, -18, -16, -14, -11, -9, -6, -4, -1}, + [JUMP_TYPE_FAST] = { -3, -6, -9, -11, -14, -16, -18, -20, + -22, -24, -26, -28, -29, + JUMP_PEAK, JUMP_PEAK, + -28, -26, -24, -22, -20, -18, -16, -14, + -11, -9, -6, -4, -1}, - {-3, -6, -9, -11, -13, -15, -17, -19, -21, -23, -25, -27, -28, -29, -30, -30, -30, -30, -29, - -29, -28, -28, -27, -27, -26, -25, -24, -22, -20, -18, -16, -14, - -12, -11, -9, -6, -4, -1}, + [JUMP_TYPE_SLOW] = { -3, -6, -9, -11, -13, -15, -17, -19, + -21, -23, -25, -27, -28, -29, + JUMP_PEAK, JUMP_PEAK, JUMP_PEAK, JUMP_PEAK, + -29, -29, -28, -28, -27, -27, -26, -25, + -24, -22, -20, -18, -16, -14, -12, -11, + -9, -6, -4, -1}, }; -static void sub_802C398(int multiplayerId) +static void UpdateJump(int multiplayerId) { - int var0; - int var1; - struct PokemonJump1_82E4 *player; + int jumpOffsetIdx; + int jumpOffset; + struct PokemonJump_Player *player; - if (gUnknown_02022CFC->unk68) + if (sPokemonJump->skipJumpUpdate) // Always false return; - player = &gUnknown_02022CFC->unk82E4[multiplayerId]; - if (player->unk4 != 0x7FFFFFFF) + player = &sPokemonJump->players[multiplayerId]; + if (player->jumpOffsetIdx != INT_MAX) { - player->unk4++; - var0 = player->unk4; + player->jumpOffsetIdx++; + jumpOffsetIdx = player->jumpOffsetIdx; } else { - var0 = gUnknown_02022CFC->unk4A - player->unkE; - if (var0 >= 65000) + jumpOffsetIdx = sPokemonJump->vineTimer - player->jumpTimeStart; + if (jumpOffsetIdx >= 65000) { - var0 -= 65000; - var0 += gUnknown_02022CFC->unk4A; + jumpOffsetIdx -= 65000; + jumpOffsetIdx += sPokemonJump->vineTimer; } - player->unk4 = var0; + player->jumpOffsetIdx = jumpOffsetIdx; } - if (var0 < 4) + if (jumpOffsetIdx < 4) return; - var0 -= 4; - if (var0 < 48) - var1 = gUnknown_082FB65C[player->unkC][var0]; + jumpOffsetIdx -= 4; + if (jumpOffsetIdx < (int)ARRAY_COUNT(sJumpOffsets[0])) + jumpOffset = sJumpOffsets[player->monJumpType][jumpOffsetIdx]; else - var1 = 0; + jumpOffset = 0; - sub_802DC80(multiplayerId, var1); - if (!var1 && multiplayerId == gUnknown_02022CFC->unk6) - sub_802C1BC(); + SetMonSpriteY(multiplayerId, jumpOffset); + if (jumpOffset == 0 && multiplayerId == sPokemonJump->multiplayerId) + SetMonStateNormal(); - player->unk0 = var1; + player->jumpOffset = jumpOffset; } -static void sub_802C43C(void) +static void TryUpdateScore(void) { - if (gUnknown_02022CFC->unk14 == 8 && gUnknown_02022CFC->unk18 == 7) + if (sPokemonJump->vineState == VINE_UPSWING_HIGH && sPokemonJump->prevVineState == VINE_UPSWING_LOW) { - if (gUnknown_02022CFC->unk58 == 0) + // Vine has passed through the point where it + // would hit the players, allow score to update + + if (!sPokemonJump->initScoreUpdate) { - sub_802C780(); - gUnknown_02022CFC->unk54 = 0; - gUnknown_02022CFC->unk58 = 1; - gUnknown_02022CFC->unk70.unk1 = 0; + ClearUnreadField(); + sPokemonJump->numPlayersAtPeak = 0; + sPokemonJump->initScoreUpdate = TRUE; + sPokemonJump->comm.receivedBonusFlags = 0; } else { - if (gUnknown_02022CFC->unk54 == 5) + if (sPokemonJump->numPlayersAtPeak == MAX_RFU_PLAYERS) { - gUnknown_02022CFC->unkC++; - sub_802C7A0(gUnknown_02022CFC->unkC); + // An 'excellent' is the max 5 players all jumping synchronously + sPokemonJump->excellentsInRow++; + TryUpdateExcellentsRecord(sPokemonJump->excellentsInRow); } else { - gUnknown_02022CFC->unkC = 0; + sPokemonJump->excellentsInRow = 0; } - if (gUnknown_02022CFC->unk54 > 1) + if (sPokemonJump->numPlayersAtPeak > 1) { - gUnknown_02022CFC->unk64 = 1; - memcpy(gUnknown_02022CFC->unk86, gUnknown_02022CFC->unk81, sizeof(u8) * MAX_RFU_PLAYERS); + sPokemonJump->giveBonus = TRUE; + // Unclear why atJumpPeak needed to be copied over twice + memcpy(sPokemonJump->atJumpPeak3, sPokemonJump->atJumpPeak2, sizeof(u8) * MAX_RFU_PLAYERS); } - sub_802C780(); - gUnknown_02022CFC->unk54 = 0; - gUnknown_02022CFC->unk58 = 1; - gUnknown_02022CFC->unk70.unk1 = 0; - if (gUnknown_02022CFC->unk70.unk4 < 9999) - gUnknown_02022CFC->unk70.unk4++; + ClearUnreadField(); + sPokemonJump->numPlayersAtPeak = 0; + sPokemonJump->initScoreUpdate = TRUE; + sPokemonJump->comm.receivedBonusFlags = 0; + if (sPokemonJump->comm.jumpsInRow < MAX_JUMPS) + sPokemonJump->comm.jumpsInRow++; - sub_802C688(10); - sub_802AE14(3); + AddJumpScore(10); + SetLinkTimeInterval(LINK_INTERVAL_SHORT); } } - if (gUnknown_02022CFC->unk64 && (sub_802C618() == TRUE || !gUnknown_02022CFC->unk14)) + if (sPokemonJump->giveBonus && (DidAllPlayersClearVine() == TRUE || sPokemonJump->vineState == VINE_HIGHEST)) { - int var0 = sub_802C73C(gUnknown_02022CFC->unk86); - sub_802C688(sub_802C790(var0)); - sub_802AE14(3); - gUnknown_02022CFC->unk64 = 0; + int numPlayers = GetNumPlayersForBonus(sPokemonJump->atJumpPeak3); + AddJumpScore(GetScoreBonus(numPlayers)); + SetLinkTimeInterval(LINK_INTERVAL_SHORT); + sPokemonJump->giveBonus = FALSE; } - if (gUnknown_02022CFC->unk58) + if (sPokemonJump->initScoreUpdate) { - int var1 = sub_802C6B0(); - if (var1 > gUnknown_02022CFC->unk54) + int numAtPeak = GetPlayersAtJumpPeak(); + if (numAtPeak > sPokemonJump->numPlayersAtPeak) { - gUnknown_02022CFC->unk54 = var1; - memcpy(gUnknown_02022CFC->unk81, gUnknown_02022CFC->unk7C, sizeof(u8) * MAX_RFU_PLAYERS); + sPokemonJump->numPlayersAtPeak = numAtPeak; + memcpy(sPokemonJump->atJumpPeak2, sPokemonJump->atJumpPeak, sizeof(u8) * MAX_RFU_PLAYERS); } } } -static bool32 sub_802C538(void) +// Returns FALSE if any player was hit by vine +static bool32 UpdateVineHitStates(void) { int i; - if (gUnknown_02022CFC->unk14 == 6 && !gUnknown_02022CFC->unk83AC->unk0) + if (sPokemonJump->vineState == VINE_UPSWING_LOWER && sPokemonJump->player->jumpOffset == 0) { - if (gUnknown_02022CFC->unk83AC->unk12 == 1 && sub_802C0DC() == 1) + // Vine is in position to hit the player and jump offset is 0. + // Unless the player had just jumped and has been forced to the ground + // by someone else getting hit, the player has been hit + if (sPokemonJump->player->prevMonState == MONSTATE_JUMP && IsGameOver() == TRUE) { - gUnknown_02022CFC->unk83AC->unk14 = 1; + sPokemonJump->player->jumpState = JUMPSTATE_SUCCESS; } else { - sub_802C18C(); - sub_802AE14(3); + // Hit vine + SetMonStateHit(); + SetLinkTimeInterval(LINK_INTERVAL_SHORT); } } - if (gUnknown_02022CFC->unk14 == 7 - && gUnknown_02022CFC->unk18 == 6 - && gUnknown_02022CFC->unk83AC->unk10 != 2) + if (sPokemonJump->vineState == VINE_UPSWING_LOW + && sPokemonJump->prevVineState == VINE_UPSWING_LOWER + && sPokemonJump->player->monState != MONSTATE_HIT) { - gUnknown_02022CFC->unk83AC->unk14 = 1; - sub_802AE14(3); + sPokemonJump->player->jumpState = JUMPSTATE_SUCCESS; + SetLinkTimeInterval(LINK_INTERVAL_SHORT); } - for (i = 0; i < gUnknown_02022CFC->unk5; i++) + for (i = 0; i < sPokemonJump->numPlayers; i++) { - if (gUnknown_02022CFC->unk82E4[i].unk10 == 2) + if (sPokemonJump->players[i].monState == MONSTATE_HIT) return FALSE; } return TRUE; } -static bool32 sub_802C5DC(void) +// Has everyone either jumped or been hit by the vine +static bool32 AllPlayersJumpedOrHit(void) { int i; - int numPlayers = gUnknown_02022CFC->unk5; - int count = 0; + int numPlayers = sPokemonJump->numPlayers; + int numJumpedOrHit = 0; for (i = 0; i < numPlayers; i++) { - if (gUnknown_02022CFC->unk82E4[i].unk14) - count++; + if (sPokemonJump->players[i].jumpState != JUMPSTATE_NONE) + numJumpedOrHit++; } - return count == numPlayers; + return numJumpedOrHit == numPlayers; } -static bool32 sub_802C618(void) +static bool32 DidAllPlayersClearVine(void) { int i; - for (i = 0; i < gUnknown_02022CFC->unk5; i++) + for (i = 0; i < sPokemonJump->numPlayers; i++) { - if (gUnknown_02022CFC->unk82E4[i].unk14 != 1) + if (sPokemonJump->players[i].jumpState != JUMPSTATE_SUCCESS) return FALSE; } return TRUE; } -static bool32 sub_802C650(void) +static bool32 ShouldPlayAgain(void) { int i; - if (gUnknown_02022CFC->unk45 == 1) + if (sPokemonJump->playAgainState == PLAY_AGAIN_NO) return FALSE; - for (i = 1; i < gUnknown_02022CFC->unk5; i++) + for (i = 1; i < sPokemonJump->numPlayers; i++) { - if (gUnknown_02022CFC->unk90[i] == 1) + if (sPokemonJump->playAgainStates[i] == PLAY_AGAIN_NO) return FALSE; } return TRUE; } -static void sub_802C688(int arg0) +static void AddJumpScore(int score) { - gUnknown_02022CFC->unk70.unk8 += arg0; - gUnknown_02022CFC->unk5C = 1; - if (gUnknown_02022CFC->unk70.unk8 >= 99990) - gUnknown_02022CFC->unk70.unk8 = 99990; + sPokemonJump->comm.jumpScore += score; + sPokemonJump->updateScore = TRUE; + if (sPokemonJump->comm.jumpScore >= MAX_JUMP_SCORE) + sPokemonJump->comm.jumpScore = MAX_JUMP_SCORE; } -static int sub_802C6B0(void) +static int GetPlayersAtJumpPeak(void) { int i; - int count = 0; - int numPlayers = gUnknown_02022CFC->unk5; + int numAtPeak = 0; + int numPlayers = sPokemonJump->numPlayers; for (i = 0; i < numPlayers; i++) { - if (gUnknown_02022CFC->unk82E4[i].unk0 == -30) + if (sPokemonJump->players[i].jumpOffset == JUMP_PEAK) { - gUnknown_02022CFC->unk7C[i] = 1; - count++; + sPokemonJump->atJumpPeak[i] = TRUE; + numAtPeak++; } else { - gUnknown_02022CFC->unk7C[i] = 0; + sPokemonJump->atJumpPeak[i] = FALSE; } } - return count; + return numAtPeak; } static bool32 AreLinkQueuesEmpty(void) @@ -2029,13 +2205,13 @@ static bool32 AreLinkQueuesEmpty(void) return !Rfu.recvQueue.count && !Rfu.sendQueue.count; } -static int sub_802C73C(u8 *arg0) +static int GetNumPlayersForBonus(u8 *arg0) { - int i; - int flags; - int count; + int i = 0; + int flags = 0; + int count = 0; - for (i = 0, flags = 0, count = 0; i < MAX_RFU_PLAYERS; i++) + for (; i < MAX_RFU_PLAYERS; i++) { if (arg0[i]) { @@ -2044,87 +2220,100 @@ static int sub_802C73C(u8 *arg0) } } - gUnknown_02022CFC->unk70.unk1 = flags; + sPokemonJump->comm.receivedBonusFlags = flags; if (flags) - gUnknown_02022CFC->unk4D = 1; + sPokemonJump->showBonus = TRUE; return count; } -static void sub_802C780(void) +static void ClearUnreadField(void) { - gUnknown_02022CFC->unk44 = 0; + sPokemonJump->unused3 = 0; } -static const int gUnknown_082FB6EC[] = {0, 0, 0x32, 0x64, 0xc8, 0x1f4}; +// Bonuses given depend on the number of +// players that jumped at the same time +static const int sScoreBonuses[MAX_RFU_PLAYERS + 1] = {0, 0, 50, 100, 200, 500}; -static int sub_802C790(int arg0) +static int GetScoreBonus(int numPlayers) { - return gUnknown_082FB6EC[arg0]; + return sScoreBonuses[numPlayers]; } -static void sub_802C7A0(u16 arg0) +static void TryUpdateExcellentsRecord(u16 excellentsInRow) { - if (arg0 > gUnknown_02022CFC->unkE) - gUnknown_02022CFC->unkE = arg0; + if (excellentsInRow > sPokemonJump->excellentsInRowRecord) + sPokemonJump->excellentsInRowRecord = excellentsInRow; } -static const u16 gUnknown_082FB704[] = {0x8a, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93}; -static const u32 gUnknown_082FB714[][2] = -{ - {0x1388, 1}, - {0x1f40, 2}, - {0x2ee0, 3}, - {0x3e80, 4}, - {0x4e20, 5}, +static const u16 sPrizeItems[] = { + ITEM_LEPPA_BERRY, + ITEM_LUM_BERRY, + ITEM_SITRUS_BERRY, + ITEM_FIGY_BERRY, + ITEM_WIKI_BERRY, + ITEM_MAGO_BERRY, + ITEM_AGUAV_BERRY, + ITEM_IAPAPA_BERRY }; -static bool32 sub_802C7BC(void) +struct { + u32 score; + u32 quantity; +} static const sPrizeQuantityData[] = { - if (gUnknown_02022CFC->unk70.unk8 >= gUnknown_082FB714[0][0]) + { .score = 5000, .quantity = 1}, + { .score = 8000, .quantity = 2}, + { .score = 12000, .quantity = 3}, + { .score = 16000, .quantity = 4}, + { .score = 20000, .quantity = 5}, +}; + +static bool32 HasEnoughScoreForPrize(void) +{ + if (sPokemonJump->comm.jumpScore >= sPrizeQuantityData[0].score) return TRUE; else return FALSE; } -static u16 sub_802C7E0(void) +static u16 GetPrizeData(void) { - u16 lo = sub_802C818(); - u16 hi = sub_802C838(); - return (hi << 12) | (lo & 0xFFF); + u16 itemId = GetPrizeItemId(); + u16 quantity = GetPrizeQuantity(); + return (quantity << 12) | (itemId & 0xFFF); } -static void sub_802C808(u16 arg0, u16 *arg1, u16 *arg2) +static void UnpackPrizeData(u16 data, u16 *itemId, u16 *quantity) { - *arg2 = arg0 >> 12; - *arg1 = arg0 & 0xFFF; + *quantity = data >> 12; + *itemId = data & 0xFFF; } -static u16 sub_802C818(void) +static u16 GetPrizeItemId(void) { - u16 index = Random() % ARRAY_COUNT(gUnknown_082FB704); - return gUnknown_082FB704[index]; + u16 index = Random() % ARRAY_COUNT(sPrizeItems); + return sPrizeItems[index]; } -static u16 sub_802C838(void) +static u16 GetPrizeQuantity(void) { - u32 val, i; + u32 quantity, i; - val = 0; - for (i = 0; i < 5; i++) + quantity = 0; + for (i = 0; i < ARRAY_COUNT(sPrizeQuantityData); i++) { - if (gUnknown_02022CFC->unk70.unk8 < gUnknown_082FB714[i][0]) - break; - else if (1) - val = gUnknown_082FB714[i][1]; + if (sPokemonJump->comm.jumpScore >= sPrizeQuantityData[i].score) + quantity = sPrizeQuantityData[i].quantity; else break; } - return val; + return quantity; } -static u16 sub_802C880(u16 item, u16 quantity) +static u16 GetQuantityLimitedByBag(u16 item, u16 quantity) { while (quantity && !CheckBagHasSpace(item, quantity)) quantity--; @@ -2132,24 +2321,24 @@ static u16 sub_802C880(u16 item, u16 quantity) return quantity; } -static u16 sub_802C8AC(void) +static u16 GetNumPokeJumpPlayers(void) { return GetLinkPlayerCount(); } -static u16 sub_802C8BC(void) +static u16 GetPokeJumpMultiplayerId(void) { - return gUnknown_02022CFC->unk6; + return sPokemonJump->multiplayerId; } -static struct PokemonJump1_MonInfo *sub_802C8C8(u8 multiplayerId) +static struct PokemonJump_MonInfo *GetMonInfoByMultiplayerId(u8 multiplayerId) { - return &gUnknown_02022CFC->unk82A8[multiplayerId]; + return &sPokemonJump->monInfo[multiplayerId]; } -static u8 *sub_802C8E8(u8 multiplayerId) +static u8 *GetPokeJumpPlayerName(u8 multiplayerId) { - return gUnknown_02022CFC->unk82E4[multiplayerId].unk1C; + return sPokemonJump->players[multiplayerId].name; } bool32 IsSpeciesAllowedInPokemonJump(u16 species) @@ -2177,69 +2366,67 @@ void IsPokemonJumpSpeciesInParty(void) gSpecialVar_Result = FALSE; } -// Large group of data. -static const u16 gPkmnJumpPal1[] = INCBIN_U16("graphics/link_games/pkmnjump_pal1.gbapal"); -static const u16 gPkmnJumpPal2[] = INCBIN_U16("graphics/link_games/pkmnjump_pal2.gbapal"); +static const u16 sPokeJumpPal1[] = INCBIN_U16("graphics/pokemon_jump/pal1.gbapal"); +static const u16 sPokeJumpPal2[] = INCBIN_U16("graphics/pokemon_jump/pal2.gbapal"); -static const u32 gPkmnJumpRopeGfx1[] = INCBIN_U32("graphics/link_games/pkmnjump_rope1.4bpp.lz"); -static const u32 gPkmnJumpRopeGfx2[] = INCBIN_U32("graphics/link_games/pkmnjump_rope2.4bpp.lz"); -static const u32 gPkmnJumpRopeGfx3[] = INCBIN_U32("graphics/link_games/pkmnjump_rope3.4bpp.lz"); -static const u32 gPkmnJumpRopeGfx4[] = INCBIN_U32("graphics/link_games/pkmnjump_rope4.4bpp.lz"); +static const u32 sVine1_Gfx[] = INCBIN_U32("graphics/pokemon_jump/vine1.4bpp.lz"); +static const u32 sVine2_Gfx[] = INCBIN_U32("graphics/pokemon_jump/vine2.4bpp.lz"); +static const u32 sVine3_Gfx[] = INCBIN_U32("graphics/pokemon_jump/vine3.4bpp.lz"); +static const u32 sVine4_Gfx[] = INCBIN_U32("graphics/pokemon_jump/vine4.4bpp.lz"); -static const u32 gPkmnJumpStarGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_star.4bpp.lz"); +static const u32 sStar_Gfx[] = INCBIN_U32("graphics/pokemon_jump/star.4bpp.lz"); -static const struct CompressedSpriteSheet gUnknown_082FBE08[] = +static const struct CompressedSpriteSheet sCompressedSpriteSheets[] = { - {gPkmnJumpRopeGfx1, 0x600, 5}, - {gPkmnJumpRopeGfx2, 0x0c00, 6}, - {gPkmnJumpRopeGfx3, 0x0600, 7}, - {gPkmnJumpRopeGfx4, 0x0600, 8}, - {gPkmnJumpStarGfx, 0x0200, 10}, + {sVine1_Gfx, 0x600, GFXTAG_VINE1}, + {sVine2_Gfx, 0xC00, GFXTAG_VINE2}, + {sVine3_Gfx, 0x600, GFXTAG_VINE3}, + {sVine4_Gfx, 0x600, GFXTAG_VINE4}, + {sStar_Gfx, 0x200, GFXTAG_STAR}, }; -static const struct SpritePalette gUnknown_082FBE30[] = +static const struct SpritePalette sSpritePalettes[] = { - {gPkmnJumpPal1, 5}, - {gPkmnJumpPal2, 6}, + {sPokeJumpPal1, PALTAG_1}, + {sPokeJumpPal2, PALTAG_2}, }; -// Forward declarations. -static const struct OamData sOamData_82FBEC8; -static const struct SpriteTemplate gUnknown_082FBF78; -static const struct SpriteTemplate gUnknown_082FBF90; -static const struct SpriteTemplate gUnknown_082FBFA8; -static const struct SpriteTemplate gUnknown_082FBFC0; +static const struct OamData sOamData_JumpMon; +static const struct SpriteTemplate sSpriteTemplate_Vine1; +static const struct SpriteTemplate sSpriteTemplate_Vine2; +static const struct SpriteTemplate sSpriteTemplate_Vine3; +static const struct SpriteTemplate sSpriteTemplate_Vine4; -static const struct SpriteTemplate gUnknown_082FBE40 = +static const struct SpriteTemplate sSpriteTemplate_JumpMon = { - .tileTag = 0, - .paletteTag = 0, - .oam = &sOamData_82FBEC8, + .tileTag = TAG_MON1, + .paletteTag = TAG_MON1, + .oam = &sOamData_JumpMon, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const s16 gUnknown_082FBE58[][10] = +static const s16 sVineYCoords[VINE_SPRITES_PER_SIDE][NUM_VINESTATES] = { - {0x60, 0x60, 0x60, 0x72, 0x78, 0x78, 0x78, 0x72, 0x60, 0x60}, - {0x46, 0x50, 0x60, 0x72, 0x78, 0x80, 0x78, 0x72, 0x60, 0x50}, - {0x32, 0x48, 0x60, 0x72, 0x80, 0x88, 0x80, 0x72, 0x60, 0x48}, - {0x2a, 0x48, 0x60, 0x72, 0x80, 0x88, 0x80, 0x72, 0x60, 0x48}, + {96, 96, 96, 114, 120, 120, 120, 114, 96, 96}, + {70, 80, 96, 114, 120, 128, 120, 114, 96, 80}, + {50, 72, 96, 114, 128, 136, 128, 114, 96, 72}, + {42, 72, 96, 114, 128, 136, 128, 114, 96, 72}, }; -static const s16 gUnknown_082FBEA8[] = {0x10, 0x28, 0x48, 0x68, 0x88, 0xa8, 0xc8, 0xe0}; +static const s16 sVineXCoords[VINE_SPRITES_PER_SIDE * 2] = {16, 40, 72, 104, 136, 168, 200, 224}; -static const struct SpriteTemplate *const gUnknown_082FBEB8[] = +static const struct SpriteTemplate *const sSpriteTemplates_Vine[VINE_SPRITES_PER_SIDE] = { - &gUnknown_082FBF78, - &gUnknown_082FBF90, - &gUnknown_082FBFA8, - &gUnknown_082FBFC0, + &sSpriteTemplate_Vine1, + &sSpriteTemplate_Vine2, + &sSpriteTemplate_Vine3, + &sSpriteTemplate_Vine4, }; -static const struct OamData sOamData_82FBEC8 = +static const struct OamData sOamData_JumpMon = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -2256,7 +2443,7 @@ static const struct OamData sOamData_82FBEC8 = .affineParam = 0 }; -static const struct OamData sOamData_82FBED0 = +static const struct OamData sOamData_Vine16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -2273,7 +2460,7 @@ static const struct OamData sOamData_82FBED0 = .affineParam = 0 }; -static const struct OamData sOamData_82FBED8 = +static const struct OamData sOamData_Vine32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -2290,7 +2477,7 @@ static const struct OamData sOamData_82FBED8 = .affineParam = 0 }; -static const struct OamData sOamData_82FBEE0 = +static const struct OamData sOamData_Vine32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -2307,143 +2494,144 @@ static const struct OamData sOamData_82FBEE0 = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_82FBEE8[] = +static const union AnimCmd sAnims_Vine_Highest[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBEF0[] = +static const union AnimCmd sAnims_Vine_Higher[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBEF8[] = +static const union AnimCmd sAnims_Vine_High[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF00[] = +static const union AnimCmd sAnims_Vine_Low[] = { ANIMCMD_FRAME(24, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF08[] = +static const union AnimCmd sAnims_Vine_Lower[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF10[] = +static const union AnimCmd sAnims_Vine_Lowest[] = { ANIMCMD_FRAME(40, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF18[] = +static const union AnimCmd sAnims_VineTall_Highest[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF20[] = +static const union AnimCmd sAnims_VineTall_Higher[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF28[] = +static const union AnimCmd sAnims_VineTall_High[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF30[] = +static const union AnimCmd sAnims_VineTall_Low[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF38[] = +static const union AnimCmd sAnims_VineTall_Lower[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBF40[] = +static const union AnimCmd sAnims_VineTall_Lowest[] = { ANIMCMD_FRAME(80, 1), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_82FBF48[] = +static const union AnimCmd *const sAnims_Vine[] = { - sSpriteAnim_82FBEE8, - sSpriteAnim_82FBEF0, - sSpriteAnim_82FBEF8, - sSpriteAnim_82FBF00, - sSpriteAnim_82FBF08, - sSpriteAnim_82FBF10 + sAnims_Vine_Highest, + sAnims_Vine_Higher, + sAnims_Vine_High, + sAnims_Vine_Low, + sAnims_Vine_Lower, + sAnims_Vine_Lowest }; -static const union AnimCmd *const sSpriteAnimTable_82FBF60[] = +// Vine 2 needs its own set of anims because the graphic is twice as large +static const union AnimCmd *const sAnims_VineTall[] = { - sSpriteAnim_82FBF18, - sSpriteAnim_82FBF20, - sSpriteAnim_82FBF28, - sSpriteAnim_82FBF30, - sSpriteAnim_82FBF38, - sSpriteAnim_82FBF40 + sAnims_VineTall_Highest, + sAnims_VineTall_Higher, + sAnims_VineTall_High, + sAnims_VineTall_Low, + sAnims_VineTall_Lower, + sAnims_VineTall_Lowest }; -static const struct SpriteTemplate gUnknown_082FBF78 = +static const struct SpriteTemplate sSpriteTemplate_Vine1 = { - .tileTag = 5, - .paletteTag = 5, - .oam = &sOamData_82FBED0, - .anims = sSpriteAnimTable_82FBF48, + .tileTag = GFXTAG_VINE1, + .paletteTag = PALTAG_1, + .oam = &sOamData_Vine16x32, + .anims = sAnims_Vine, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate gUnknown_082FBF90 = +static const struct SpriteTemplate sSpriteTemplate_Vine2 = { - .tileTag = 6, - .paletteTag = 5, - .oam = &sOamData_82FBED8, - .anims = sSpriteAnimTable_82FBF60, + .tileTag = GFXTAG_VINE2, + .paletteTag = PALTAG_1, + .oam = &sOamData_Vine32x32, + .anims = sAnims_VineTall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate gUnknown_082FBFA8 = +static const struct SpriteTemplate sSpriteTemplate_Vine3 = { - .tileTag = 7, - .paletteTag = 5, - .oam = &sOamData_82FBEE0, - .anims = sSpriteAnimTable_82FBF48, + .tileTag = GFXTAG_VINE3, + .paletteTag = PALTAG_1, + .oam = &sOamData_Vine32x16, + .anims = sAnims_Vine, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate gUnknown_082FBFC0 = +static const struct SpriteTemplate sSpriteTemplate_Vine4 = { - .tileTag = 8, - .paletteTag = 5, - .oam = &sOamData_82FBEE0, - .anims = sSpriteAnimTable_82FBF48, + .tileTag = GFXTAG_VINE4, + .paletteTag = PALTAG_1, + .oam = &sOamData_Vine32x16, + .anims = sAnims_Vine, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct OamData sOamData_82FBFD8 = +static const struct OamData sOamData_Star = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -2460,13 +2648,13 @@ static const struct OamData sOamData_82FBFD8 = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_82FBFE0[] = +static const union AnimCmd sAnim_Star_Still[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_82FBFE8[] = +static const union AnimCmd sAnim_Star_Spinning[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(4, 4), @@ -2477,46 +2665,45 @@ static const union AnimCmd sSpriteAnim_82FBFE8[] = ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_82FC004[] = +static const union AnimCmd *const sAnims_Star[] = { - sSpriteAnim_82FBFE0, - sSpriteAnim_82FBFE8 + sAnim_Star_Still, + sAnim_Star_Spinning }; -static const struct SpriteTemplate gUnknown_082FC00C = +static const struct SpriteTemplate sSpriteTemplate_Star = { - .tileTag = 10, - .paletteTag = 5, - .oam = &sOamData_82FBFD8, - .anims = sSpriteAnimTable_82FC004, + .tileTag = GFXTAG_STAR, + .paletteTag = PALTAG_1, + .oam = &sOamData_Star, + .anims = sAnims_Star, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -// Back to code -static void sub_802C974(struct PokemonJump2 *arg0) +static void LoadSpriteSheetsAndPalettes(struct PokemonJumpGfx *jumpGfx) { int i; - for (i = 0; i < ARRAY_COUNT(gUnknown_082FBE08); i++) - LoadCompressedSpriteSheet(&gUnknown_082FBE08[i]); + for (i = 0; i < ARRAY_COUNT(sCompressedSpriteSheets); i++) + LoadCompressedSpriteSheet(&sCompressedSpriteSheets[i]); - for (i = 0; i < ARRAY_COUNT(gUnknown_082FBE30); i++) - LoadSpritePalette(&gUnknown_082FBE30[i]); + for (i = 0; i < ARRAY_COUNT(sSpritePalettes); i++) + LoadSpritePalette(&sSpritePalettes[i]); - arg0->unkE = IndexOfSpritePaletteTag(5); - arg0->unkF = IndexOfSpritePaletteTag(6); + jumpGfx->vinePalNumDownswing = IndexOfSpritePaletteTag(PALTAG_1); + jumpGfx->vinePalNumUpswing = IndexOfSpritePaletteTag(PALTAG_2); } -static void sub_802C9BC(struct Sprite *sprite) +static void ResetPokeJumpSpriteData(struct Sprite *sprite) { int i; - for (i = 0; i < 8; i++) + for (i = 0; i < (int)ARRAY_COUNT(sprite->data); i++) sprite->data[i] = 0; } -static void sub_802C9D4(struct PokemonJump2 *arg0, struct PokemonJump1_MonInfo *jumpMon, s16 x, s16 y, u8 multiplayerId) +static void CreateJumpMonSprite(struct PokemonJumpGfx *jumpGfx, struct PokemonJump_MonInfo *monInfo, s16 x, s16 y, u8 multiplayerId) { struct SpriteTemplate spriteTemplate; struct SpriteSheet spriteSheet; @@ -2526,10 +2713,10 @@ static void sub_802C9D4(struct PokemonJump2 *arg0, struct PokemonJump1_MonInfo * u8 subpriority; u8 spriteId; - spriteTemplate = gUnknown_082FBE40; + spriteTemplate = sSpriteTemplate_JumpMon; buffer = Alloc(0x2000); - unusedBuffer = Alloc(0x800); - if (multiplayerId == sub_802C8BC()) + unusedBuffer = Alloc(MON_PIC_SIZE); + if (multiplayerId == GetPokeJumpMultiplayerId()) subpriority = 3; else subpriority = multiplayerId + 4; @@ -2537,17 +2724,17 @@ static void sub_802C9D4(struct PokemonJump2 *arg0, struct PokemonJump1_MonInfo * if (buffer && unusedBuffer) { HandleLoadSpecialPokePic( - &gMonStillFrontPicTable[jumpMon->species], + &gMonStillFrontPicTable[monInfo->species], buffer, - jumpMon->species, - jumpMon->personality); + monInfo->species, + monInfo->personality); spriteSheet.data = buffer; spriteSheet.tag = multiplayerId; - spriteSheet.size = 0x800; + spriteSheet.size = MON_PIC_SIZE; LoadSpriteSheet(&spriteSheet); - spritePalette.data = GetMonSpritePalFromSpeciesAndPersonality(jumpMon->species, jumpMon->otId, jumpMon->personality); + spritePalette.data = GetMonSpritePalFromSpeciesAndPersonality(monInfo->species, monInfo->otId, monInfo->personality); spritePalette.tag = multiplayerId; LoadCompressedSpritePalette(&spritePalette); @@ -2559,162 +2746,184 @@ static void sub_802C9D4(struct PokemonJump2 *arg0, struct PokemonJump1_MonInfo * spriteId = CreateSprite(&spriteTemplate, x, y, subpriority); if (spriteId != MAX_SPRITES) { - arg0->unk81A8[multiplayerId] = &gSprites[spriteId]; - arg0->unk81FC[multiplayerId] = subpriority; + jumpGfx->monSprites[multiplayerId] = &gSprites[spriteId]; + jumpGfx->monSpriteSubpriorities[multiplayerId] = subpriority; return; } } - arg0->unk81A8[multiplayerId] = NULL; + jumpGfx->monSprites[multiplayerId] = NULL; } -static void sub_802CB14(struct PokemonJump2 *arg0, int multiplayerId) +#define sState data[0] +#define sTimer data[1] +#define sOffset data[7] // Never read + +static void DoStarAnim(struct PokemonJumpGfx *jumpGfx, int multiplayerId) { - sub_802C9BC(arg0->unk81BC[multiplayerId]); - arg0->unk81BC[multiplayerId]->data[7] = arg0->unk81A8[multiplayerId] - gSprites; - arg0->unk81BC[multiplayerId]->invisible = 0; - arg0->unk81BC[multiplayerId]->pos1.y = 96; - arg0->unk81BC[multiplayerId]->callback = sub_802CB7C; - StartSpriteAnim(arg0->unk81BC[multiplayerId], 1); + ResetPokeJumpSpriteData(jumpGfx->starSprites[multiplayerId]); + jumpGfx->starSprites[multiplayerId]->sOffset = jumpGfx->monSprites[multiplayerId] - gSprites; + jumpGfx->starSprites[multiplayerId]->invisible = FALSE; + jumpGfx->starSprites[multiplayerId]->y = 96; + jumpGfx->starSprites[multiplayerId]->callback = SpriteCB_Star; + StartSpriteAnim(jumpGfx->starSprites[multiplayerId], 1); } -static void sub_802CB7C(struct Sprite *sprite) +static void SpriteCB_Star(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: if (sprite->animEnded) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = SpriteCallbackDummy; } break; case 1: - sprite->pos1.y--; - sprite->data[1]++; - if (sprite->pos1.y <= 72) + sprite->y--; + sprite->sTimer++; + if (sprite->y <= 72) { - sprite->pos1.y = 72; - sprite->data[0]++; + sprite->y = 72; + sprite->sState++; } break; case 2: - if (++sprite->data[1] >= 48) + if (++sprite->sTimer >= 48) { - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = SpriteCallbackDummy; } break; } } -static void sub_802CBF0(struct PokemonJump2 *arg0, int multiplayerId) +#undef sState +#undef sTimer +#undef sOffset + +static void Gfx_StartMonHitShake(struct PokemonJumpGfx *jumpGfx, int multiplayerId) { - arg0->unk81A8[multiplayerId]->callback = sub_802CC40; - arg0->unk81A8[multiplayerId]->pos2.y = 0; - sub_802C9BC(arg0->unk81A8[multiplayerId]); + jumpGfx->monSprites[multiplayerId]->callback = SpriteCB_MonHitShake; + jumpGfx->monSprites[multiplayerId]->y2 = 0; + ResetPokeJumpSpriteData(jumpGfx->monSprites[multiplayerId]); } -static bool32 sub_802CC18(struct PokemonJump2 *arg0, int multiplayerId) +static bool32 Gfx_IsMonHitShakeActive(struct PokemonJumpGfx *jumpGfx, int multiplayerId) { - return arg0->unk81A8[multiplayerId]->callback == sub_802CC40; + return jumpGfx->monSprites[multiplayerId]->callback == SpriteCB_MonHitShake; } -static void sub_802CC40(struct Sprite *sprite) +#define sTimer data[1] +#define sNumShakes data[2] + +static void SpriteCB_MonHitShake(struct Sprite *sprite) { - if (++sprite->data[1] > 1) + if (++sprite->sTimer > 1) { - if (++sprite->data[2] & 1) - sprite->pos2.y = 2; + if (++sprite->sNumShakes & 1) + sprite->y2 = 2; else - sprite->pos2.y = -2; + sprite->y2 = -2; - sprite->data[1] = 0; + sprite->sTimer = 0; } - if (sprite->data[2] > 12) + if (sprite->sNumShakes > 12) { - sprite->pos2.y = 0; + sprite->y2 = 0; sprite->callback = SpriteCallbackDummy; } } -static void sub_802CC88(struct PokemonJump2 *arg0, int multiplayerId) +#undef sTimer +#undef sNumShakes + +static void Gfx_StartMonHitFlash(struct PokemonJumpGfx *jumpGfx, int multiplayerId) { - sub_802C9BC(arg0->unk81A8[multiplayerId]); - arg0->unk81A8[multiplayerId]->callback = sub_802CD08; + ResetPokeJumpSpriteData(jumpGfx->monSprites[multiplayerId]); + jumpGfx->monSprites[multiplayerId]->callback = SpriteCB_MonHitFlash; } -static void sub_802CCB0(struct PokemonJump2 *arg0) +static void Gfx_StopMonHitFlash(struct PokemonJumpGfx *jumpGfx) { int i; - u16 numPlayers = sub_802C8AC(); + u16 numPlayers = GetNumPokeJumpPlayers(); for (i = 0; i < numPlayers; i++) { - if (arg0->unk81A8[i]->callback == sub_802CD08) + if (jumpGfx->monSprites[i]->callback == SpriteCB_MonHitFlash) { - arg0->unk81A8[i]->invisible = 0; - arg0->unk81A8[i]->callback = SpriteCallbackDummy; - arg0->unk81A8[i]->subpriority = 10; + jumpGfx->monSprites[i]->invisible = FALSE; + jumpGfx->monSprites[i]->callback = SpriteCallbackDummy; + jumpGfx->monSprites[i]->subpriority = 10; } } } -static void sub_802CD08(struct Sprite *sprite) +#define sTimer data[0] + +static void SpriteCB_MonHitFlash(struct Sprite *sprite) { - if (++sprite->data[0] > 3) + if (++sprite->sTimer > 3) { - sprite->data[0] = 0; + sprite->sTimer = 0; sprite->invisible ^= 1; } } -static void sub_802CD3C(struct PokemonJump2 *arg0) +#undef sTimer + +static void Gfx_ResetMonSpriteSubpriorities(struct PokemonJumpGfx *jumpGfx) { int i; - u16 numPlayers = sub_802C8AC(); + u16 numPlayers = GetNumPokeJumpPlayers(); for (i = 0; i < numPlayers; i++) - arg0->unk81A8[i]->subpriority = arg0->unk81FC[i]; + jumpGfx->monSprites[i]->subpriority = jumpGfx->monSpriteSubpriorities[i]; } -static void sub_802CD70(struct PokemonJump2 *arg0, int multiplayerId) +static void Gfx_StartMonIntroBounce(struct PokemonJumpGfx *jumpGfx, int multiplayerId) { - sub_802C9BC(arg0->unk81A8[multiplayerId]); - arg0->unk81A8[multiplayerId]->callback = sub_802CDD4; + ResetPokeJumpSpriteData(jumpGfx->monSprites[multiplayerId]); + jumpGfx->monSprites[multiplayerId]->callback = SpriteCB_MonIntroBounce; } -static bool32 sub_802CD98(struct PokemonJump2 *arg0) +static bool32 Gfx_IsMonIntroBounceActive(struct PokemonJumpGfx *jumpGfx) { int i; - u16 numPlayers = sub_802C8AC(); + u16 numPlayers = GetNumPokeJumpPlayers(); for (i = 0; i < numPlayers; i++) { - if (arg0->unk81A8[i]->callback == sub_802CDD4) + if (jumpGfx->monSprites[i]->callback == SpriteCB_MonIntroBounce) return TRUE; } return FALSE; } -static void sub_802CDD4(struct Sprite *sprite) +#define sState data[0] +#define sHopPos data[1] +#define sNumHops data[2] + +static void SpriteCB_MonIntroBounce(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: PlaySE(SE_BIKE_HOP); - sprite->data[1] = 0; - sprite->data[0]++; + sprite->sHopPos = 0; + sprite->sState++; // fall through case 1: - sprite->data[1] += 4; - if (sprite->data[1] > 0x7F) - sprite->data[1] = 0; + sprite->sHopPos += 4; + if (sprite->sHopPos > 127) + sprite->sHopPos = 0; - sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 3); - if (sprite->data[1] == 0) + sprite->y2 = -(gSineTable[sprite->sHopPos] >> 3); + if (sprite->sHopPos == 0) { - if (++sprite->data[2] < 2) - sprite->data[0] = 0; + if (++sprite->sNumHops < 2) + sprite->sState = 0; else sprite->callback = SpriteCallbackDummy; } @@ -2722,131 +2931,136 @@ static void sub_802CDD4(struct Sprite *sprite) } } -static void sub_802CE48(struct PokemonJump2 *arg0, s16 x, s16 y, u8 multiplayerId) +#undef sState +#undef sHopPos +#undef sNumHops + +static void CreateStarSprite(struct PokemonJumpGfx *jumpGfx, s16 x, s16 y, u8 multiplayerId) { - u8 spriteId = CreateSprite(&gUnknown_082FC00C, x, y, 1); + u8 spriteId = CreateSprite(&sSpriteTemplate_Star, x, y, 1); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].invisible = 1; - arg0->unk81BC[multiplayerId] = &gSprites[spriteId]; + gSprites[spriteId].invisible = TRUE; + jumpGfx->starSprites[multiplayerId] = &gSprites[spriteId]; } } -static void sub_802CE9C(struct PokemonJump2 *arg0) +static void CreateVineSprites(struct PokemonJumpGfx *jumpGfx) { int i; int count; u8 spriteId; count = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < VINE_SPRITES_PER_SIDE; i++) { - spriteId = CreateSprite(gUnknown_082FBEB8[i], gUnknown_082FBEA8[count], gUnknown_082FBE58[i][0], 2); - arg0->unk81D0[count] = &gSprites[spriteId]; + spriteId = CreateSprite(sSpriteTemplates_Vine[i], sVineXCoords[count], sVineYCoords[i][0], 2); + jumpGfx->vineSprites[count] = &gSprites[spriteId]; count++; } - for (i = 3; i >= 0; i--) + for (i = VINE_SPRITES_PER_SIDE - 1; i >= 0; i--) { - spriteId = CreateSprite(gUnknown_082FBEB8[i], gUnknown_082FBEA8[count], gUnknown_082FBE58[i][0], 2); - arg0->unk81D0[count] = &gSprites[spriteId]; - arg0->unk81D0[count]->hFlip = 1; + spriteId = CreateSprite(sSpriteTemplates_Vine[i], sVineXCoords[count], sVineYCoords[i][0], 2); + jumpGfx->vineSprites[count] = &gSprites[spriteId]; + jumpGfx->vineSprites[count]->hFlip = TRUE; count++; } } -static void sub_802CF50(struct PokemonJump2 *arg0, int arg1) +static void UpdateVineAnim(struct PokemonJumpGfx *jumpGfx, int vineState) { int i, count, palNum; int priority; - if (arg1 > 5) + if (vineState > VINE_LOWEST) { - arg1 = 10 - arg1; - priority = 3; - palNum = arg0->unkF; + // animNums for vine on upswing are same as + // on downswing but in reverse + vineState = NUM_VINESTATES - vineState; + priority = 3; // Set vine behind Pokémon + palNum = jumpGfx->vinePalNumUpswing; } else { - priority = 2; - palNum = arg0->unkE; + priority = 2; // Set vine in front of Pokémon + palNum = jumpGfx->vinePalNumDownswing; } count = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < VINE_SPRITES_PER_SIDE; i++) { - arg0->unk81D0[count]->pos1.y = gUnknown_082FBE58[i][arg1]; - arg0->unk81D0[count]->oam.priority = priority; - arg0->unk81D0[count]->oam.paletteNum = palNum; - StartSpriteAnim(arg0->unk81D0[count], arg1); + jumpGfx->vineSprites[count]->y = sVineYCoords[i][vineState]; + jumpGfx->vineSprites[count]->oam.priority = priority; + jumpGfx->vineSprites[count]->oam.paletteNum = palNum; + StartSpriteAnim(jumpGfx->vineSprites[count], vineState); count++; } - for (i = 3; i >= 0; i--) + for (i = VINE_SPRITES_PER_SIDE - 1; i >= 0; i--) { - arg0->unk81D0[count]->pos1.y = gUnknown_082FBE58[i][arg1]; - arg0->unk81D0[count]->oam.priority = priority; - arg0->unk81D0[count]->oam.paletteNum = palNum; - StartSpriteAnim(arg0->unk81D0[count], arg1); + jumpGfx->vineSprites[count]->y = sVineYCoords[i][vineState]; + jumpGfx->vineSprites[count]->oam.priority = priority; + jumpGfx->vineSprites[count]->oam.paletteNum = palNum; + StartSpriteAnim(jumpGfx->vineSprites[count], vineState); count++; } } -static void sub_802D044(struct PokemonJump2 *arg0) +static void StartPokeJumpCountdown(struct PokemonJumpGfx *jumpGfx) { - StartMinigameCountdown(9, 7, 120, 80, 0); - sub_802CD3C(arg0); + StartMinigameCountdown(GFXTAG_COUNTDOWN, PALTAG_COUNTDOWN, 120, 80, 0); + Gfx_ResetMonSpriteSubpriorities(jumpGfx); } -static bool32 sub_802D068(void) +static bool32 IsPokeJumpCountdownRunning(void) { return IsMinigameCountdownRunning(); } -static void sub_802D074(struct PokemonJump2 *arg0) +static void StartPokeJumpGfx(struct PokemonJumpGfx *jumpGfx) { u8 taskId; - gUnknown_02022D00 = arg0; - sub_802D0BC(gUnknown_02022D00); - taskId = CreateTask(sub_802D12C, 3); - gUnknown_02022D00->unk6 = taskId; - SetWordTaskArg(gUnknown_02022D00->unk6, 2, (u32) gUnknown_02022D00); - sub_802D108(sub_802D150); + sPokemonJumpGfx = jumpGfx; + InitPokeJumpGfx(sPokemonJumpGfx); + taskId = CreateTask(Task_RunPokeJumpGfxFunc, 3); + sPokemonJumpGfx->taskId = taskId; + SetWordTaskArg(sPokemonJumpGfx->taskId, 2, (u32) sPokemonJumpGfx); + SetUpPokeJumpGfxFunc(LoadPokeJumpGfx); } -static void sub_802D0AC(void) +static void FreeWindowsAndDigitObj(void) { FreeAllWindowBuffers(); DigitObjUtil_Free(); } -static void sub_802D0BC(struct PokemonJump2 *arg0) +static void InitPokeJumpGfx(struct PokemonJumpGfx *jumpGfx) { - arg0->unk4 = 0; - arg0->unk0 = 0; - arg0->unk12 = 0xFF; + jumpGfx->mainState = 0; + jumpGfx->funcFinished = FALSE; + jumpGfx->msgWindowId = WINDOW_NONE; } -// Gfx -static const u16 gPkmnJumpPal3[] = INCBIN_U16("graphics/link_games/pkmnjump_pal3.gbapal"); +static const u16 sInterface_Pal[] = INCBIN_U16("graphics/pokemon_jump/interface.gbapal"); -static const u16 gPkmnJumpBgPal[] = INCBIN_U16("graphics/link_games/pkmnjump_bg.gbapal"); -static const u32 gPkmnJumpBgGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_bg.4bpp.lz"); -static const u32 gPkmnJumpBgTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_bg.bin.lz"); +static const u16 sBg_Pal[] = INCBIN_U16("graphics/pokemon_jump/bg.gbapal"); +static const u32 sBg_Gfx[] = INCBIN_U32("graphics/pokemon_jump/bg.4bpp.lz"); +static const u32 sBg_Tilemap[] = INCBIN_U32("graphics/pokemon_jump/bg.bin.lz"); -static const u16 gPkmnJumpVenusaurPal[] = INCBIN_U16("graphics/link_games/pkmnjump_venusaur.gbapal"); -static const u32 gPkmnJumpVenusaurGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_venusaur.4bpp.lz"); -static const u32 gPkmnJumpVenusaurTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_venusaur.bin.lz"); +static const u16 sVenusaur_Pal[] = INCBIN_U16("graphics/pokemon_jump/venusaur.gbapal"); +static const u32 sVenusaur_Gfx[] = INCBIN_U32("graphics/pokemon_jump/venusaur.4bpp.lz"); +static const u32 sVenusaur_Tilemap[] = INCBIN_U32("graphics/pokemon_jump/venusaur.bin.lz"); -static const u16 gPkmnJumpResultsPal[] = INCBIN_U16("graphics/link_games/pkmnjump_results.gbapal"); -static const u32 gPkmnJumpResultsGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_results.4bpp.lz"); -static const u32 gPkmnJumpResultsTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_results.bin.lz"); +static const u16 sBonuses_Pal[] = INCBIN_U16("graphics/pokemon_jump/bonuses.gbapal"); +static const u32 sBonuses_Gfx[] = INCBIN_U32("graphics/pokemon_jump/bonuses.4bpp.lz"); +static const u32 sBonuses_Tilemap[] = INCBIN_U32("graphics/pokemon_jump/bonuses.bin.lz"); -static const struct BgTemplate gUnknown_082FE164[] = +static const struct BgTemplate sBgTemplates[] = { { - .bg = 0, + .bg = BG_INTERFACE, .charBaseIndex = 0, .mapBaseIndex = 27, .screenSize = 0, @@ -2855,7 +3069,7 @@ static const struct BgTemplate gUnknown_082FE164[] = .baseTile = 0 }, { - .bg = 2, + .bg = BG_VENUSAUR, .charBaseIndex = 1, .mapBaseIndex = 30, .screenSize = 2, @@ -2864,7 +3078,7 @@ static const struct BgTemplate gUnknown_082FE164[] = .baseTile = 0 }, { - .bg = 1, + .bg = BG_BONUSES, .charBaseIndex = 2, .mapBaseIndex = 12, .screenSize = 3, @@ -2873,7 +3087,7 @@ static const struct BgTemplate gUnknown_082FE164[] = .baseTile = 0 }, { - .bg = 3, + .bg = BG_SCENERY, .charBaseIndex = 3, .mapBaseIndex = 29, .screenSize = 0, @@ -2883,10 +3097,10 @@ static const struct BgTemplate gUnknown_082FE164[] = }, }; -static const struct WindowTemplate gUnknown_082FE174[] = +static const struct WindowTemplate sWindowTemplates[] = { - { - .bg = 0, + [WIN_POINTS] = { + .bg = BG_INTERFACE, .tilemapLeft = 19, .tilemapTop = 0, .width = 6, @@ -2894,8 +3108,8 @@ static const struct WindowTemplate gUnknown_082FE174[] = .paletteNum = 2, .baseBlock = 0x13, }, - { - .bg = 0, + [WIN_TIMES] = { + .bg = BG_INTERFACE, .tilemapLeft = 8, .tilemapTop = 0, .width = 6, @@ -2910,351 +3124,352 @@ struct { int id; void (*func)(void); -} static const gUnknown_082FE18C[] = +} static const sPokeJumpGfxFuncs[] = { - {0x00, sub_802D150}, - {0x01, sub_802D2E4}, - {0x02, sub_802D350}, - {0x03, sub_802D3BC}, - {0x04, sub_802D448}, - {0x05, sub_802D4F4}, - {0x06, sub_802D598}, - {0x07, sub_802D5E4}, - {0x09, sub_802D72C}, - {0x08, sub_802D688}, + {GFXFUNC_LOAD, LoadPokeJumpGfx}, // Element not used, LoadPokeJumpGfx is passed directly to SetUpPokeJumpGfxFunc + {GFXFUNC_SHOW_NAMES, PrintPlayerNamesNoHighlight}, + {GFXFUNC_SHOW_NAMES_HIGHLIGHT, PrintPlayerNamesWithHighlight}, + {GFXFUNC_ERASE_NAMES, ErasePlayerNames}, + {GFXFUNC_MSG_PLAY_AGAIN, Msg_WantToPlayAgain}, + {GFXFUNC_MSG_SAVING, Msg_SavingDontTurnOff}, + {GFXFUNC_ERASE_MSG, EraseMessage}, + {GFXFUNC_MSG_PLAYER_DROPPED, Msg_SomeoneDroppedOut}, + {GFXFUNC_COUNTDOWN, DoPokeJumpCountdown}, + {GFXFUNC_MSG_COMM_STANDBY, Msg_CommunicationStandby}, }; -static void sub_802D0C8(int arg0) +static void SetUpPokeJumpGfxFuncById(int id) { int i; - for (i = 0; i < ARRAY_COUNT(gUnknown_082FE18C); i++) + for (i = 0; i < ARRAY_COUNT(sPokeJumpGfxFuncs); i++) { - if (gUnknown_082FE18C[i].id == arg0) - sub_802D108(gUnknown_082FE18C[i].func); + if (sPokeJumpGfxFuncs[i].id == id) + SetUpPokeJumpGfxFunc(sPokeJumpGfxFuncs[i].func); } } -static bool32 sub_802D0F0(void) +static bool32 IsPokeJumpGfxFuncFinished(void) { - return (gUnknown_02022D00->unk0 != 1); + return (sPokemonJumpGfx->funcFinished != TRUE); } -static void sub_802D108(void (*func)(void)) +static void SetUpPokeJumpGfxFunc(void (*func)(void)) { - SetWordTaskArg(gUnknown_02022D00->unk6, 0, (u32) func); - gUnknown_02022D00->unk4 = 0; - gUnknown_02022D00->unk0 = 0; + SetWordTaskArg(sPokemonJumpGfx->taskId, 0, (u32) func); + sPokemonJumpGfx->mainState = 0; + sPokemonJumpGfx->funcFinished = FALSE; } -static void sub_802D12C(u8 taskId) +static void Task_RunPokeJumpGfxFunc(u8 taskId) { - if (!gUnknown_02022D00->unk0) + if (!sPokemonJumpGfx->funcFinished) { + // Read the function set in the data by SetUpPokeJumpGfxFunc void (*func)(void) = (void *)(GetWordTaskArg(taskId, 0)); func(); } } -static void sub_802D150(void) +static void LoadPokeJumpGfx(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_082FE164, ARRAY_COUNT(gUnknown_082FE164)); - InitWindows(gUnknown_082FE174); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + InitWindows(sWindowTemplates); ResetTempTileDataBuffers(); - sub_802C974(gUnknown_02022D00); - sub_802DD08(); - LoadPalette(gPkmnJumpBgPal, 0, 0x20); - DecompressAndCopyTileDataToVram(3, gPkmnJumpBgGfx, 0, 0, 0); - DecompressAndCopyTileDataToVram(3, gPkmnJumpBgTilemap, 0, 0, 1); - LoadPalette(gPkmnJumpVenusaurPal, 0x30, 0x20); - DecompressAndCopyTileDataToVram(2, gPkmnJumpVenusaurGfx, 0, 0, 0); - DecompressAndCopyTileDataToVram(2, gPkmnJumpVenusaurTilemap, 0, 0, 1); - LoadPalette(gPkmnJumpResultsPal, 0x10, 0x20); - DecompressAndCopyTileDataToVram(1, gPkmnJumpResultsGfx, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, gPkmnJumpResultsTilemap, 0, 0, 1); - LoadPalette(gPkmnJumpPal3, 0x20, 0x20); - SetBgTilemapBuffer(0, gUnknown_02022D00->tilemapBuffer); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); - sub_802DB8C(); - sub_802DD64(0); + LoadSpriteSheetsAndPalettes(sPokemonJumpGfx); + InitDigitPrinters(); + LoadPalette(sBg_Pal, 0, 0x20); + DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Tilemap, 0, 0, 1); + LoadPalette(sVenusaur_Pal, 0x30, 0x20); + DecompressAndCopyTileDataToVram(BG_VENUSAUR, sVenusaur_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_VENUSAUR, sVenusaur_Tilemap, 0, 0, 1); + LoadPalette(sBonuses_Pal, 0x10, 0x20); + DecompressAndCopyTileDataToVram(BG_BONUSES, sBonuses_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_BONUSES, sBonuses_Tilemap, 0, 0, 1); + LoadPalette(sInterface_Pal, 0x20, 0x20); + SetBgTilemapBuffer(BG_INTERFACE, sPokemonJumpGfx->tilemapBuffer); + FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 0x20, 0x20); + PrintScoreSuffixes(); + PrintScore(0); sub_8098C6C(0, 1, 0xE0); - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(2); - CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(BG_INTERFACE); + CopyBgTilemapBufferToVram(BG_VENUSAUR); + CopyBgTilemapBufferToVram(BG_BONUSES); ResetBgPositions(); - gUnknown_02022D00->unk4++; + sPokemonJumpGfx->mainState++; break; case 1: if (!FreeTempTileDataBuffersIfPossible()) { - sub_802DBF8(); - sub_802CE9C(gUnknown_02022D00); - sub_802CF50(gUnknown_02022D00, 6); - ShowBg(3); - ShowBg(0); - ShowBg(2); - HideBg(1); - gUnknown_02022D00->unk4++; + CreateJumpMonSprites(); + CreateVineSprites(sPokemonJumpGfx); + UpdateVineAnim(sPokemonJumpGfx, VINE_UPSWING_LOWER); + ShowBg(BG_SCENERY); + ShowBg(BG_INTERFACE); + ShowBg(BG_VENUSAUR); + HideBg(BG_BONUSES); + sPokemonJumpGfx->mainState++; } break; case 2: - gUnknown_02022D00->unk0 = 1; + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D2E4(void) +static void PrintPlayerNamesNoHighlight(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: - sub_802DE1C(); - gUnknown_02022D00->unk4++; + AddPlayerNameWindows(); + sPokemonJumpGfx->mainState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_802DF70(FALSE); - gUnknown_02022D00->unk4++; + PrintPokeJumpPlayerNames(FALSE); + sPokemonJumpGfx->mainState++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_802DFD4(); - gUnknown_02022D00->unk4++; + DrawPlayerNameWindows(); + sPokemonJumpGfx->mainState++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_02022D00->unk0 = 1; + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D350(void) +static void PrintPlayerNamesWithHighlight(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: - sub_802DE1C(); - gUnknown_02022D00->unk4++; + AddPlayerNameWindows(); + sPokemonJumpGfx->mainState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_802DF70(TRUE); - gUnknown_02022D00->unk4++; + PrintPokeJumpPlayerNames(TRUE); + sPokemonJumpGfx->mainState++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_802DFD4(); - gUnknown_02022D00->unk4++; + DrawPlayerNameWindows(); + sPokemonJumpGfx->mainState++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_02022D00->unk0 = 1; + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D3BC(void) +static void ErasePlayerNames(void) { int i, numPlayers; - numPlayers = sub_802C8AC(); - switch (gUnknown_02022D00->unk4) + numPlayers = GetNumPokeJumpPlayers(); + switch (sPokemonJumpGfx->mainState) { case 0: for (i = 0; i < numPlayers; i++) - ClearWindowTilemap(gUnknown_02022D00->unk1C[i]); + ClearWindowTilemap(sPokemonJumpGfx->nameWindowIds[i]); - CopyBgTilemapBufferToVram(0); - gUnknown_02022D00->unk4++; + CopyBgTilemapBufferToVram(BG_INTERFACE); + sPokemonJumpGfx->mainState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { for (i = 0; i < numPlayers; i++) - RemoveWindow(gUnknown_02022D00->unk1C[i]); + RemoveWindow(sPokemonJumpGfx->nameWindowIds[i]); - gUnknown_02022D00->unk0 = 1; + sPokemonJumpGfx->funcFinished = TRUE; } break; } } -static void sub_802D448(void) +static void Msg_WantToPlayAgain(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: - gUnknown_02022D00->unk12 = sub_802DA9C(1, 8, 20, 2); - AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gText_WantToPlayAgain2, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk4++; + sPokemonJumpGfx->msgWindowId = AddMessageWindow(1, 8, 20, 2); + AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, 1, gText_WantToPlayAgain2, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2); + sPokemonJumpGfx->mainState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022D00->unk12); - DrawTextBorderOuter(gUnknown_02022D00->unk12, 1, 14); - sub_802DB18(23, 7, 0); - CopyBgTilemapBufferToVram(0); - gUnknown_02022D00->unk4++; + PutWindowTilemap(sPokemonJumpGfx->msgWindowId); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + CreatePokeJumpYesNoMenu(23, 7, 0); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sPokemonJumpGfx->mainState++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_02022D00->unk0 = 1; + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D4F4(void) +static void Msg_SavingDontTurnOff(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: - gUnknown_02022D00->unk12 = sub_802DA9C(2, 7, 26, 4); - AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gText_SavingDontTurnOffPower, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk4++; + sPokemonJumpGfx->msgWindowId = AddMessageWindow(2, 7, 26, 4); + AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, 1, gText_SavingDontTurnOffPower, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2); + sPokemonJumpGfx->mainState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022D00->unk12); - DrawTextBorderOuter(gUnknown_02022D00->unk12, 1, 14); - CopyBgTilemapBufferToVram(0); - gUnknown_02022D00->unk4++; + PutWindowTilemap(sPokemonJumpGfx->msgWindowId); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sPokemonJumpGfx->mainState++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_02022D00->unk0 = 1; + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D598(void) +static void EraseMessage(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: - sub_802DA14(); + ClearMessageWindow(); sub_8198C78(); - CopyBgTilemapBufferToVram(0); - gUnknown_02022D00->unk4++; + CopyBgTilemapBufferToVram(BG_INTERFACE); + sPokemonJumpGfx->mainState++; break; case 1: - if (!sub_802DA44() && !IsDma3ManagerBusyWithBgCopy()) - gUnknown_02022D00->unk0 = 1; + if (!RemoveMessageWindow() && !IsDma3ManagerBusyWithBgCopy()) + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D5E4(void) +static void Msg_SomeoneDroppedOut(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: - gUnknown_02022D00->unk12 = sub_802DA9C(2, 8, 22, 4); - AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gText_SomeoneDroppedOut2, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk4++; + sPokemonJumpGfx->msgWindowId = AddMessageWindow(2, 8, 22, 4); + AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, 1, gText_SomeoneDroppedOut2, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2); + sPokemonJumpGfx->mainState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022D00->unk12); - DrawTextBorderOuter(gUnknown_02022D00->unk12, 1, 14); - CopyBgTilemapBufferToVram(0); - gUnknown_02022D00->unk4++; + PutWindowTilemap(sPokemonJumpGfx->msgWindowId); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sPokemonJumpGfx->mainState++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_02022D00->unk0 = 1; + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D688(void) +static void Msg_CommunicationStandby(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: - gUnknown_02022D00->unk12 = sub_802DA9C(7, 10, 16, 2); - AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gText_CommunicationStandby4, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk4++; + sPokemonJumpGfx->msgWindowId = AddMessageWindow(7, 10, 16, 2); + AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, 1, gText_CommunicationStandby4, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2); + sPokemonJumpGfx->mainState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022D00->unk12); - DrawTextBorderOuter(gUnknown_02022D00->unk12, 1, 14); - CopyBgTilemapBufferToVram(0); - gUnknown_02022D00->unk4++; + PutWindowTilemap(sPokemonJumpGfx->msgWindowId); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sPokemonJumpGfx->mainState++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) - gUnknown_02022D00->unk0 = 1; + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D72C(void) +static void DoPokeJumpCountdown(void) { - switch (gUnknown_02022D00->unk4) + switch (sPokemonJumpGfx->mainState) { case 0: - sub_802D044(gUnknown_02022D00); - gUnknown_02022D00->unk4++; + StartPokeJumpCountdown(sPokemonJumpGfx); + sPokemonJumpGfx->mainState++; break; case 1: - if (!sub_802D068()) - gUnknown_02022D00->unk0 = 1; + if (!IsPokeJumpCountdownRunning()) + sPokemonJumpGfx->funcFinished = TRUE; break; } } -static void sub_802D764(void) +static void SetUpResetVineGfx(void) { - gUnknown_02022D00->unkA = 0; - gUnknown_02022D00->unkB = 0; - gUnknown_02022D00->unkC = 6; - sub_802DC9C(gUnknown_02022D00->unkC); + sPokemonJumpGfx->resetVineState = 0; + sPokemonJumpGfx->resetVineTimer = 0; + sPokemonJumpGfx->vineState = VINE_UPSWING_LOWER; + UpdateVineSwing(sPokemonJumpGfx->vineState); } -static bool32 sub_802D788(void) +static bool32 ResetVineGfx(void) { - switch (gUnknown_02022D00->unkA) + switch (sPokemonJumpGfx->resetVineState) { case 0: - gUnknown_02022D00->unkB++; - if (gUnknown_02022D00->unkB > 10) + sPokemonJumpGfx->resetVineTimer++; + if (sPokemonJumpGfx->resetVineTimer > 10) { - gUnknown_02022D00->unkB = 0; - gUnknown_02022D00->unkC++; - if (gUnknown_02022D00->unkC >= 10) + sPokemonJumpGfx->resetVineTimer = 0; + sPokemonJumpGfx->vineState++; + if (sPokemonJumpGfx->vineState >= NUM_VINESTATES) { - gUnknown_02022D00->unkC = 0; - gUnknown_02022D00->unkA++; + sPokemonJumpGfx->vineState = VINE_HIGHEST; + sPokemonJumpGfx->resetVineState++; } } - sub_802DC9C(gUnknown_02022D00->unkC); - if (gUnknown_02022D00->unkC != 7) + UpdateVineSwing(sPokemonJumpGfx->vineState); + if (sPokemonJumpGfx->vineState != VINE_UPSWING_LOW) break; case 1: return FALSE; @@ -3263,74 +3478,74 @@ static bool32 sub_802D788(void) return TRUE; } -static void sub_802D7E8(u16 itemId, u16 quantity) +static void PrintPrizeMessage(u16 itemId, u16 quantity) { - CopyItemNameHandlePlural(itemId, gUnknown_02022D00->txtBuff[0], quantity); - ConvertIntToDecimalStringN(gUnknown_02022D00->txtBuff[1], quantity, STR_CONV_MODE_LEFT_ALIGN, 1); + CopyItemNameHandlePlural(itemId, sPokemonJumpGfx->itemName, quantity); + ConvertIntToDecimalStringN(sPokemonJumpGfx->itemQuantityStr, quantity, STR_CONV_MODE_LEFT_ALIGN, 1); DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_02022D00->txtBuff[0]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_02022D00->txtBuff[1]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_02022D00->strBuff, gText_AwesomeWonF701F700); - gUnknown_02022D00->unk12 = sub_802DA9C(4, 8, 22, 4); - AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gUnknown_02022D00->strBuff, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk14 = MUS_LEVEL_UP; - gUnknown_02022D00->unkD = 0; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPokemonJumpGfx->itemName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sPokemonJumpGfx->itemQuantityStr); + DynamicPlaceholderTextUtil_ExpandPlaceholders(sPokemonJumpGfx->prizeMsg, gText_AwesomeWonF701F700); + sPokemonJumpGfx->msgWindowId = AddMessageWindow(4, 8, 22, 4); + AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, 1, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2); + sPokemonJumpGfx->fanfare = MUS_LEVEL_UP; + sPokemonJumpGfx->msgWindowState = 0; } -static void sub_802D884(u16 itemId) +static void PrintPrizeFilledBagMessage(u16 itemId) { - CopyItemName(itemId, gUnknown_02022D00->txtBuff[0]); + CopyItemName(itemId, sPokemonJumpGfx->itemName); DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_02022D00->txtBuff[0]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_02022D00->strBuff, gText_FilledStorageSpace2); - gUnknown_02022D00->unk12 = sub_802DA9C(4, 8, 22, 4); - AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gUnknown_02022D00->strBuff, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk14 = 0; - gUnknown_02022D00->unkD = 0; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPokemonJumpGfx->itemName); + DynamicPlaceholderTextUtil_ExpandPlaceholders(sPokemonJumpGfx->prizeMsg, gText_FilledStorageSpace2); + sPokemonJumpGfx->msgWindowId = AddMessageWindow(4, 8, 22, 4); + AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, 1, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2); + sPokemonJumpGfx->fanfare = MUS_DUMMY; + sPokemonJumpGfx->msgWindowState = 0; } -static void sub_802D8FC(u16 itemId) +static void PrintNoRoomForPrizeMessage(u16 itemId) { - CopyItemName(itemId, gUnknown_02022D00->txtBuff[0]); + CopyItemName(itemId, sPokemonJumpGfx->itemName); DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_02022D00->txtBuff[0]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_02022D00->strBuff, gText_CantHoldMore); - gUnknown_02022D00->unk12 = sub_802DA9C(4, 9, 22, 2); - AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gUnknown_02022D00->strBuff, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk14 = 0; - gUnknown_02022D00->unkD = 0; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPokemonJumpGfx->itemName); + DynamicPlaceholderTextUtil_ExpandPlaceholders(sPokemonJumpGfx->prizeMsg, gText_CantHoldMore); + sPokemonJumpGfx->msgWindowId = AddMessageWindow(4, 9, 22, 2); + AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, 1, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2); + sPokemonJumpGfx->fanfare = MUS_DUMMY; + sPokemonJumpGfx->msgWindowState = 0; } -static bool32 sub_802D974(void) +static bool32 DoPrizeMessageAndFanfare(void) { - switch (gUnknown_02022D00->unkD) + switch (sPokemonJumpGfx->msgWindowState) { case 0: if (!IsDma3ManagerBusyWithBgCopy()) { - PutWindowTilemap(gUnknown_02022D00->unk12); - DrawTextBorderOuter(gUnknown_02022D00->unk12, 1, 14); - CopyBgTilemapBufferToVram(0); - gUnknown_02022D00->unkD++; + PutWindowTilemap(sPokemonJumpGfx->msgWindowId); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + CopyBgTilemapBufferToVram(BG_INTERFACE); + sPokemonJumpGfx->msgWindowState++; } break; case 1: if (IsDma3ManagerBusyWithBgCopy()) break; - if (gUnknown_02022D00->unk14 == 0) + if (sPokemonJumpGfx->fanfare == MUS_DUMMY) { - gUnknown_02022D00->unkD += 2; + sPokemonJumpGfx->msgWindowState += 2; return FALSE; } - PlayFanfare(gUnknown_02022D00->unk14); - gUnknown_02022D00->unkD++; + PlayFanfare(sPokemonJumpGfx->fanfare); + sPokemonJumpGfx->msgWindowState++; case 2: if (!IsFanfareTaskInactive()) break; - gUnknown_02022D00->unkD++; + sPokemonJumpGfx->msgWindowState++; case 3: return FALSE; } @@ -3338,52 +3553,50 @@ static bool32 sub_802D974(void) return TRUE; } -static void sub_802DA14(void) +static void ClearMessageWindow(void) { - if (gUnknown_02022D00->unk12 != 0xFF) + if (sPokemonJumpGfx->msgWindowId != WINDOW_NONE) { - rbox_fill_rectangle(gUnknown_02022D00->unk12); - CopyWindowToVram(gUnknown_02022D00->unk12, 1); - gUnknown_02022D00->unkD = 0; + rbox_fill_rectangle(sPokemonJumpGfx->msgWindowId); + CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 1); + sPokemonJumpGfx->msgWindowState = 0; } } -// Can't match this without the ugly GOTO, oh well. -static bool32 sub_802DA44(void) +static bool32 RemoveMessageWindow(void) { - if (gUnknown_02022D00->unk12 == 0xFF) - { - RET_FALSE: + if (sPokemonJumpGfx->msgWindowId == WINDOW_NONE) return FALSE; - } - if (gUnknown_02022D00->unkD == 0) + switch (sPokemonJumpGfx->msgWindowState) { + case 0: if (!IsDma3ManagerBusyWithBgCopy()) { - RemoveWindow(gUnknown_02022D00->unk12); - gUnknown_02022D00->unk12 = 0xFF; - gUnknown_02022D00->unkD++; - goto RET_FALSE; + RemoveWindow(sPokemonJumpGfx->msgWindowId); + sPokemonJumpGfx->msgWindowId = WINDOW_NONE; + sPokemonJumpGfx->msgWindowState++; } + else + break; + case 1: + return FALSE; } - else if (gUnknown_02022D00->unkD == 1) - goto RET_FALSE; return TRUE; } -static s8 sub_802DA8C(void) +static s8 HandlePlayAgainInput(void) { return Menu_ProcessInputNoWrapClearOnChoose(); } -static u32 sub_802DA9C(u32 left, u32 top, u32 width, u32 height) +static u32 AddMessageWindow(u32 left, u32 top, u32 width, u32 height) { u32 windowId; struct WindowTemplate window; - window.bg = 0; + window.bg = BG_INTERFACE; window.tilemapLeft = left; window.tilemapTop = top; window.width = width; @@ -3396,12 +3609,12 @@ static u32 sub_802DA9C(u32 left, u32 top, u32 width, u32 height) return windowId; } -static void sub_802DB18(u16 left, u16 top, u8 cursorPos) +static void CreatePokeJumpYesNoMenu(u16 left, u16 top, u8 cursorPos) { struct WindowTemplate window; u8 a = cursorPos; - window.bg = 0; + window.bg = BG_INTERFACE; window.tilemapLeft = left; window.tilemapTop = top; window.width = 6; @@ -3412,171 +3625,212 @@ static void sub_802DB18(u16 left, u16 top, u8 cursorPos) CreateYesNoMenu(&window, 1, 0xD, a); } -static void sub_802DB8C(void) +// "Points" for jump score and "times" for number of jumps in a row +static void PrintScoreSuffixes(void) { - u8 color[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}; + u8 color[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; - PutWindowTilemap(0); - PutWindowTilemap(1); - FillWindowPixelBuffer(0, 0); - FillWindowPixelBuffer(1, 0); - AddTextPrinterParameterized3(0, 0, 0, 1, color, 0, gText_SpacePoints2); - AddTextPrinterParameterized3(1, 0, 0, 1, color, 0, gText_SpaceTimes3); + PutWindowTilemap(WIN_POINTS); + PutWindowTilemap(WIN_TIMES); + FillWindowPixelBuffer(WIN_POINTS, 0); + FillWindowPixelBuffer(WIN_TIMES, 0); + AddTextPrinterParameterized3(WIN_POINTS, 0, 0, 1, color, 0, gText_SpacePoints2); + AddTextPrinterParameterized3(WIN_TIMES, 0, 0, 1, color, 0, gText_SpaceTimes3); } -static const u8 gUnknown_082FE1DF[] = {2, 2, 0, 0, 1, 1, 1, 0, 0, 2, 0, 0, 0}; - -static const struct CompressedSpriteSheet gUnknown_082FE1EC = {gUnknown_082FF1F8, 0, 0x320}; -static const struct SpritePalette gUnknown_082FE1F4 = {gUnknown_082FF1D8, 0x320}; - -static const u16 gUnknown_082FE1FC[] = {0x06, 0x08, 0x10, 0x08}; -static const u16 gUnknown_082FE204[] = {0x06, 0x08, 0x0b, 0x06, 0x10, 0x08}; -static const u16 gUnknown_082FE210[] = {0x02, 0x06, 0x06, 0x08, 0x10, 0x08, 0x14, 0x06}; -static const u16 gUnknown_082FE220[] = {0x02, 0x06, 0x06, 0x08, 0x0b, 0x06, 0x10, 0x08, 0x14, 0x06}; - -static const u16 *const gUnknown_082FE234[] = -{ - gUnknown_082FE1FC, - gUnknown_082FE204, - gUnknown_082FE210, - gUnknown_082FE220, +// The venusaurs in the background are actually an empty 256x512 bg with 3 pairs of venusaurs on it. +// The below array is used to get values for where to set the bg Y to show the corresponding +// venusaur pair in their state of swinging the vine rope +// NEUTRAL/DOWN/UP refers to which direction the Venusaur is facing as it swings the vine +enum { + VENUSAUR_NEUTRAL, + VENUSAUR_DOWN, + VENUSAUR_UP, }; -static const s16 gUnknown_082FE244[] = {0x0058, 0x0098}; -static const s16 gUnknown_082FE248[] = {0x0058, 0x0078, 0x0098}; -static const s16 gUnknown_082FE24E[] = {0x0038, 0x0058, 0x0098, 0x00b8}; -static const s16 gUnknown_082FE256[] = {0x0038, 0x0058, 0x0078, 0x0098, 0x00b8}; - -static const s16 *const gUnknown_082FE260[] = -{ - gUnknown_082FE244, - gUnknown_082FE248, - gUnknown_082FE24E, - gUnknown_082FE256, +static const u8 sVenusaurStates[] = { + [VINE_HIGHEST] = VENUSAUR_UP, + [VINE_DOWNSWING_HIGHER] = VENUSAUR_UP, + [VINE_DOWNSWING_HIGH] = VENUSAUR_NEUTRAL, + [VINE_DOWNSWING_LOW] = VENUSAUR_NEUTRAL, + [VINE_DOWNSWING_LOWER] = VENUSAUR_DOWN, + [VINE_LOWEST] = VENUSAUR_DOWN, + [VINE_UPSWING_LOWER] = VENUSAUR_DOWN, + [VINE_UPSWING_LOW] = VENUSAUR_NEUTRAL, + [VINE_UPSWING_HIGH] = VENUSAUR_NEUTRAL, + [VINE_UPSWING_HIGHER] = VENUSAUR_UP, }; -static void sub_802DBF8(void) +static const struct CompressedSpriteSheet sSpriteSheet_Digits = {gMinigameDigits_Gfx, 0, TAG_DIGITS}; +static const struct SpritePalette sSpritePalette_Digits = {gMinigameDigits_Pal, TAG_DIGITS}; + +static const u16 sPlayerNameWindowCoords_2Players[] = { + 6, 8, + 16, 8 +}; +static const u16 sPlayerNameWindowCoords_3Players[] = { + 6, 8, + 11, 6, + 16, 8 +}; +static const u16 sPlayerNameWindowCoords_4Players[] = { + 2, 6, + 6, 8, + 16, 8, + 20, 6 +}; +static const u16 sPlayerNameWindowCoords_5Players[] = { + 2, 6, + 6, 8, + 11, 6, + 16, 8, + 20, 6 +}; + +static const u16 *const sPlayerNameWindowCoords[MAX_RFU_PLAYERS - 1] = { - int i, y, playersCount = sub_802C8AC(); - const s16 *xCoords = gUnknown_082FE260[playersCount - 2]; + sPlayerNameWindowCoords_2Players, + sPlayerNameWindowCoords_3Players, + sPlayerNameWindowCoords_4Players, + sPlayerNameWindowCoords_5Players, +}; + +static const s16 sMonXCoords_2Players[] = {88, 152}; +static const s16 sMonXCoords_3Players[] = {88, 120, 152}; +static const s16 sMonXCoords_4Players[] = {56, 88, 152, 184}; +static const s16 sMonXCoords_5Players[] = {56, 88, 120, 152, 184}; + +static const s16 *const sMonXCoords[MAX_RFU_PLAYERS - 1] = +{ + sMonXCoords_2Players, + sMonXCoords_3Players, + sMonXCoords_4Players, + sMonXCoords_5Players, +}; + +static void CreateJumpMonSprites(void) +{ + int i, y, playersCount = GetNumPokeJumpPlayers(); + const s16 *xCoords = sMonXCoords[playersCount - 2]; for (i = 0; i < playersCount; i++) { - struct PokemonJump1_MonInfo *info = sub_802C8C8(i); + struct PokemonJump_MonInfo *monInfo = GetMonInfoByMultiplayerId(i); - y = gMonFrontPicCoords[info->species].y_offset; - sub_802C9D4(gUnknown_02022D00, info, *xCoords, y + 112, i); - sub_802CE48(gUnknown_02022D00, *xCoords, 112, i); + y = gMonFrontPicCoords[monInfo->species].y_offset; + CreateJumpMonSprite(sPokemonJumpGfx, monInfo, *xCoords, y + 112, i); + CreateStarSprite(sPokemonJumpGfx, *xCoords, 112, i); xCoords++; } } -static void sub_802DC80(u32 id, s16 y) +static void SetMonSpriteY(u32 id, s16 y) { - gUnknown_02022D00->unk81A8[id]->pos2.y = y; + sPokemonJumpGfx->monSprites[id]->y2 = y; } -static void sub_802DC9C(int id) +static void UpdateVineSwing(int vineState) { - sub_802CF50(gUnknown_02022D00, id); - ChangeBgY(2, (gUnknown_082FE1DF[id] * 5) << 0xD, 0); + UpdateVineAnim(sPokemonJumpGfx, vineState); + ChangeBgY(BG_VENUSAUR, (sVenusaurStates[vineState] * 5) << 13, 0); } -static int sub_802DCCC(u8 flags) +static int DoSameJumpTimeBonus(u8 flags) { - int i, count; + int i, numPlayers; - for (i = 0, count = 0; i < 5; i++) + for (i = 0, numPlayers = 0; i < MAX_RFU_PLAYERS; i++) { if (flags & 1) { - sub_802CB14(gUnknown_02022D00, i); - count++; + // Player was part of a synchronous jump + // Give a bonus to them + DoStarAnim(sPokemonJumpGfx, i); + numPlayers++; } flags >>= 1; } - sub_802E00C(count - 2); - return count; + ShowBonus(numPlayers - 2); + return numPlayers; } -static void sub_802DD08(void) +static void InitDigitPrinters(void) { - struct DigitObjUtilTemplate template; - struct DigitObjUtilTemplate *ptr = &template; // This temp variable is needed to match, don't ask me why. + struct DigitObjUtilTemplate template = { + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), + .strConvMode = 0, + .priority = 1, + .oamCount = 5, + .xDelta = 8, + .x = 108, + .y = 6, + .spriteSheet = (void*) &sSpriteSheet_Digits, + .spritePal = &sSpritePalette_Digits, + }; - ptr->shape = SPRITE_SHAPE(8x8); - ptr->size = SPRITE_SIZE(8x8); - ptr->strConvMode = 0; - ptr->priority = 1; - ptr->oamCount = 5; - ptr->xDelta = 8; - ptr->x = 108; - ptr->y = 6; - ptr->spriteSheet = (void*) &gUnknown_082FE1EC; - ptr->spritePal = &gUnknown_082FE1F4; - - DigitObjUtil_Init(2); - DigitObjUtil_CreatePrinter(0, 0, ptr); + DigitObjUtil_Init(NUM_WINDOWS); + DigitObjUtil_CreatePrinter(WIN_POINTS, 0, &template); template.oamCount = 4; template.x = 30; template.y = 6; - DigitObjUtil_CreatePrinter(1, 0, &template); + DigitObjUtil_CreatePrinter(WIN_TIMES, 0, &template); } -static void sub_802DD64(int arg0) +static void PrintScore(int num) { - DigitObjUtil_PrintNumOn(0, arg0); + DigitObjUtil_PrintNumOn(WIN_POINTS, num); } -static void sub_802DD74(u16 arg0) +static void PrintJumpsInRow(u16 num) { - DigitObjUtil_PrintNumOn(1, arg0); + DigitObjUtil_PrintNumOn(WIN_TIMES, num); } -static void sub_802DD88(u8 multiplayerId) +static void StartMonHitShake(u8 multiplayerId) { - sub_802CBF0(gUnknown_02022D00, multiplayerId); + Gfx_StartMonHitShake(sPokemonJumpGfx, multiplayerId); } -static void sub_802DDA0(u8 multiplayerId) +static void StartMonHitFlash(u8 multiplayerId) { - sub_802CC88(gUnknown_02022D00, multiplayerId); + Gfx_StartMonHitFlash(sPokemonJumpGfx, multiplayerId); } -static int sub_802DDB8(int multiplayerId) +static int IsMonHitShakeActive(int multiplayerId) { - return sub_802CC18(gUnknown_02022D00, multiplayerId); + return Gfx_IsMonHitShakeActive(sPokemonJumpGfx, multiplayerId); } -static void sub_802DDCC(void) +static void StopMonHitFlash(void) { - sub_802CCB0(gUnknown_02022D00); + Gfx_StopMonHitFlash(sPokemonJumpGfx); } -static void sub_802DDE0(void) +static void ResetMonSpriteSubpriorities(void) { - sub_802CD3C(gUnknown_02022D00); + Gfx_ResetMonSpriteSubpriorities(sPokemonJumpGfx); } -static void sub_802DDF4(int multiplayerId) +static void StartMonIntroBounce(int multiplayerId) { - sub_802CD70(gUnknown_02022D00, multiplayerId); + Gfx_StartMonIntroBounce(sPokemonJumpGfx, multiplayerId); } -static int sub_802DE08(void) +static int IsMonIntroBounceActive(void) { - return sub_802CD98(gUnknown_02022D00); + return Gfx_IsMonIntroBounceActive(sPokemonJumpGfx); } -static void sub_802DE1C(void) +static void AddPlayerNameWindows(void) { struct WindowTemplate window; - int i, playersCount = sub_802C8AC(); - const u16 *winCoords = gUnknown_082FE234[playersCount - 2]; + int i, playersCount = GetNumPokeJumpPlayers(); + const u16 *winCoords = sPlayerNameWindowCoords[playersCount - 2]; - window.bg = 0; + window.bg = BG_INTERFACE; window.width = 8; window.height = 2; window.paletteNum = 2; @@ -3586,107 +3840,108 @@ static void sub_802DE1C(void) { window.tilemapLeft = winCoords[0]; window.tilemapTop = winCoords[1]; - gUnknown_02022D00->unk1C[i] = AddWindow(&window); - ClearWindowTilemap(gUnknown_02022D00->unk1C[i]); + sPokemonJumpGfx->nameWindowIds[i] = AddWindow(&window); + ClearWindowTilemap(sPokemonJumpGfx->nameWindowIds[i]); window.baseBlock += 0x10; winCoords += 2; } - CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(BG_INTERFACE); } -static void sub_802DED8(int multiplayerId, u8 clr1, u8 clr2, u8 clr3) +static void PrintPokeJumpPlayerName(int multiplayerId, u8 bgColor, u8 fgColor, u8 shadow) { u32 x; - u8 colors[3] = {clr1, clr2, clr3}; + u8 colors[3] = {bgColor, fgColor, shadow}; - FillWindowPixelBuffer(gUnknown_02022D00->unk1C[multiplayerId], 0); - x = 64 - GetStringWidth(1, sub_802C8E8(multiplayerId), -1); + FillWindowPixelBuffer(sPokemonJumpGfx->nameWindowIds[multiplayerId], 0); + x = 64 - GetStringWidth(1, GetPokeJumpPlayerName(multiplayerId), -1); x /= 2; - AddTextPrinterParameterized3(gUnknown_02022D00->unk1C[multiplayerId], 1, x, 1, colors, -1, sub_802C8E8(multiplayerId)); - CopyWindowToVram(gUnknown_02022D00->unk1C[multiplayerId], 2); + AddTextPrinterParameterized3(sPokemonJumpGfx->nameWindowIds[multiplayerId], 1, x, 1, colors, -1, GetPokeJumpPlayerName(multiplayerId)); + CopyWindowToVram(sPokemonJumpGfx->nameWindowIds[multiplayerId], 2); } -static void sub_802DF70(bool32 arg0) +static void PrintPokeJumpPlayerNames(bool32 highlightSelf) { - int i, var, playersCount = sub_802C8AC(); + int i, multiplayerId, playersCount = GetNumPokeJumpPlayers(); - if (!arg0) + if (!highlightSelf) { for (i = 0; i < playersCount; i++) - sub_802DED8(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); + PrintPokeJumpPlayerName(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); } else { - var = sub_802C8BC(); + // Highlight own name + multiplayerId = GetPokeJumpMultiplayerId(); for (i = 0; i < playersCount; i++) { - if (var != i) - sub_802DED8(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); + if (multiplayerId != i) + PrintPokeJumpPlayerName(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); else - sub_802DED8(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED); + PrintPokeJumpPlayerName(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED); } } } -static void sub_802DFD4(void) +static void DrawPlayerNameWindows(void) { - int i, playersCount = sub_802C8AC(); + int i, playersCount = GetNumPokeJumpPlayers(); for (i = 0; i < playersCount; i++) - PutWindowTilemap(gUnknown_02022D00->unk1C[i]); - CopyBgTilemapBufferToVram(0); + PutWindowTilemap(sPokemonJumpGfx->nameWindowIds[i]); + CopyBgTilemapBufferToVram(BG_INTERFACE); } -static void sub_802E00C(u8 arg0) +static void ShowBonus(u8 bonusId) { - gUnknown_02022D00->unk18 = 0; - ChangeBgX(1, (arg0 / 2) << 16, 0); - ChangeBgY(1, (((arg0 % 2) << 8) - 40) << 8, 0); - ShowBg(1); - CreateTask(sub_802E090, 4); + sPokemonJumpGfx->bonusTimer = 0; + ChangeBgX(BG_BONUSES, (bonusId / 2) * 256 * 256, 0); + ChangeBgY(BG_BONUSES, (((bonusId % 2) * 256) - 40) * 256, 0); + ShowBg(BG_BONUSES); + CreateTask(Task_UpdateBonus, 4); } -static bool32 sub_802E058(void) +static bool32 UpdateBonus(void) { - if (gUnknown_02022D00->unk18 >= 32) + if (sPokemonJumpGfx->bonusTimer >= 32) { return FALSE; } else { - ChangeBgY(1, 128, 1); - if (++gUnknown_02022D00->unk18 >= 32) - HideBg(1); + ChangeBgY(BG_BONUSES, 128, 1); + if (++sPokemonJumpGfx->bonusTimer >= 32) + HideBg(BG_BONUSES); return TRUE; } } -static void sub_802E090(u8 taskId) +static void Task_UpdateBonus(u8 taskId) { - if (!sub_802E058()) + if (!UpdateBonus()) DestroyTask(taskId); } struct MonInfoPacket { - u8 id; // packet id + u8 id; u16 species; u32 personality; u32 otId; }; -static void sub_802E0AC(struct PokemonJump1_MonInfo *arg0) +static void SendPacket_MonInfo(struct PokemonJump_MonInfo *monInfo) { struct MonInfoPacket packet; - packet.id = 1, - packet.species = arg0->species, - packet.otId = arg0->otId, - packet.personality = arg0->personality, + packet.id = PACKET_MON_INFO, + packet.species = monInfo->species, + packet.otId = monInfo->otId, + packet.personality = monInfo->personality, Rfu_SendPacket(&packet); } -static bool32 sub_802E0D0(int multiplayerId, struct PokemonJump1_MonInfo *arg0) +static bool32 RecvPacket_MonInfo(int multiplayerId, struct PokemonJump_MonInfo *monInfo) { struct MonInfoPacket packet; @@ -3694,180 +3949,185 @@ static bool32 sub_802E0D0(int multiplayerId, struct PokemonJump1_MonInfo *arg0) return FALSE; memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet)); - if (packet.id == 1) + if (packet.id == PACKET_MON_INFO) { - arg0->species = packet.species; - arg0->otId = packet.otId; - arg0->personality = packet.personality; + monInfo->species = packet.species; + monInfo->otId = packet.otId; + monInfo->personality = packet.personality; return TRUE; } return FALSE; } -struct UnkPacket2 +struct UnusedPacket { - u8 id; // packet id - u32 unk4; - u32 unk8; + u8 id; + u32 data; + u32 filler; }; -static void sub_802E120(u32 arg0) +// Data packet that's never sent +// No function to read it either +static void SendPacket_Unused(u32 data) { - struct UnkPacket2 packet; - packet.id = 2; - packet.unk4 = arg0; + struct UnusedPacket packet; + packet.id = PACKET_UNUSED; + packet.data = data; Rfu_SendPacket(&packet); } -struct UnkPacket3 +struct LeaderStatePacket { - u8 id; // packet id - u8 unk1; - u8 unk2; - u8 unk3_0:5; - u8 unk3_1:3; - u16 unk4; - u16 unk6; - u32 unk8_0:15; - u32 unk8_1:17; + u8 id; + u8 funcId; + u8 monState; + u8 receivedBonusFlags:5; // 1 bit for each player (MAX_RFU_PLAYERS) + u8 jumpState:3; + u16 jumpTimeStart; + u16 vineTimer; + u32 jumpsInRow:15; + u32 jumpScore:17; }; -static void sub_802E138(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1) +static void SendPacket_LeaderState(struct PokemonJump_Player *player, struct PokemonJump_CommData *comm) { - struct UnkPacket3 packet; - packet.id = 3; - packet.unk8_1 = arg1->unk8; - packet.unk3_0 = arg1->unk1; - packet.unk1 = arg1->unk0; - packet.unk6 = arg1->unk2; - packet.unk8_0 = arg1->unk4; - packet.unk2 = arg0->unk10; - packet.unk3_1 = arg0->unk14; - packet.unk4 = arg0->unkE; + struct LeaderStatePacket packet; + packet.id = PACKET_LEADER_STATE; + packet.jumpScore = comm->jumpScore; + packet.receivedBonusFlags = comm->receivedBonusFlags; + packet.funcId = comm->funcId; + packet.vineTimer = comm->data; + packet.jumpsInRow = comm->jumpsInRow; + packet.monState = player->monState; + packet.jumpState = player->jumpState; + packet.jumpTimeStart = player->jumpTimeStart; Rfu_SendPacket(&packet); } -static bool32 sub_802E1BC(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1) +// Used by group members to read the state of the group leader +static bool32 RecvPacket_LeaderState(struct PokemonJump_Player *player, struct PokemonJump_CommData *comm) { - struct UnkPacket3 packet; + struct LeaderStatePacket packet; if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET) return FALSE; memcpy(&packet, &gRecvCmds[0][1], sizeof(packet)); - if (packet.id != 3) + if (packet.id != PACKET_LEADER_STATE) return FALSE; - arg1->unk8 = packet.unk8_1; - arg1->unk1 = packet.unk3_0; - arg1->unk0 = packet.unk1; - arg1->unk2 = packet.unk6; - arg1->unk4 = packet.unk8_0; - arg0->unk10 = packet.unk2; - arg0->unk14 = packet.unk3_1; - arg0->unkE = packet.unk4; + comm->jumpScore = packet.jumpScore; + comm->receivedBonusFlags = packet.receivedBonusFlags; + comm->funcId = packet.funcId; + comm->data = packet.vineTimer; + comm->jumpsInRow = packet.jumpsInRow; + player->monState = packet.monState; + player->jumpState = packet.jumpState; + player->jumpTimeStart = packet.jumpTimeStart; return TRUE; } -struct UnkPacket4 +struct MemberStatePacket { - u8 id; // packet id - u8 unk1; - u8 unk2; - u8 unk3; - u16 unk4; - u8 unk6; - u16 unk8; + u8 id; + u8 monState; + u8 jumpState; + bool8 funcFinished; + u16 jumpTimeStart; + u8 funcId; + u16 playAgainState; }; -static void sub_802E234(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2) +static void SendPacket_MemberState(struct PokemonJump_Player *player, u8 funcId, u16 playAgainState) { - struct UnkPacket4 packet; - packet.id = 4; - packet.unk1 = arg0->unk10; - packet.unk2 = arg0->unk14; - packet.unk3 = arg0->unk18; - packet.unk4 = arg0->unkE; - packet.unk6 = arg1; - packet.unk8 = arg2; + struct MemberStatePacket packet; + packet.id = PACKET_MEMBER_STATE; + packet.monState = player->monState; + packet.jumpState = player->jumpState; + packet.funcFinished = player->funcFinished; + packet.jumpTimeStart = player->jumpTimeStart; + packet.funcId = funcId; + packet.playAgainState = playAgainState; Rfu_SendPacket(&packet); } -static bool32 sub_802E264(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3) +// Used by the group leader to read the state of group members +static bool32 RecvPacket_MemberStateToLeader(struct PokemonJump_Player *player, int multiplayerId, u8 *funcId, u16 *playAgainState) { - struct UnkPacket4 packet; + struct MemberStatePacket packet; if ((gRecvCmds[multiplayerId][0] & 0xFF00) != RFUCMD_SEND_PACKET) return FALSE; memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet)); - if (packet.id != 4) + if (packet.id != PACKET_MEMBER_STATE) return FALSE; - arg0->unk10 = packet.unk1; - arg0->unk14 = packet.unk2; - arg0->unk18 = packet.unk3; - arg0->unkE = packet.unk4; - *arg2 = packet.unk6; - *arg3 = packet.unk8; + player->monState = packet.monState; + player->jumpState = packet.jumpState; + player->funcFinished = packet.funcFinished; + player->jumpTimeStart = packet.jumpTimeStart; + *funcId = packet.funcId; + *playAgainState = packet.playAgainState; return TRUE; } -static bool32 sub_802E2D0(struct PokemonJump1_82E4 *arg0, int multiplayerId) +// Used by group members to read the state of other group members +static bool32 RecvPacket_MemberStateToMember(struct PokemonJump_Player *player, int multiplayerId) { - struct UnkPacket4 packet; + struct MemberStatePacket packet; if ((gRecvCmds[multiplayerId][0] & 0xFF00) != RFUCMD_SEND_PACKET) return FALSE; memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet)); - if (packet.id != 4) + if (packet.id != PACKET_MEMBER_STATE) return FALSE; - arg0->unk10 = packet.unk1; - arg0->unk14 = packet.unk2; - arg0->unk18 = packet.unk3; - arg0->unkE = packet.unk4; + player->monState = packet.monState; + player->jumpState = packet.jumpState; + player->funcFinished = packet.funcFinished; + player->jumpTimeStart = packet.jumpTimeStart; return TRUE; } -static struct PokemonJumpResults *sub_802E32C(void) +static struct PokemonJumpRecords *GetPokeJumpRecords(void) { return &gSaveBlock2Ptr->pokeJump; } -void ResetPokeJumpResults(void) +void ResetPokemonJumpRecords(void) { - struct PokemonJumpResults *pokeJump = sub_802E32C(); - pokeJump->jumpsInRow = 0; - pokeJump->bestJumpScore = 0; - pokeJump->excellentsInRow = 0; - pokeJump->field6 = 0; - pokeJump->field8 = 0; - pokeJump->field2 = 0; + struct PokemonJumpRecords *records = GetPokeJumpRecords(); + records->jumpsInRow = 0; + records->bestJumpScore = 0; + records->excellentsInRow = 0; + records->gamesWithMaxPlayers = 0; + records->unused2 = 0; + records->unused1 = 0; } -static bool32 sub_802E354(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow) +static bool32 TryUpdateRecords(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow) { - struct PokemonJumpResults *pokeJump = sub_802E32C(); - bool32 ret = FALSE; + struct PokemonJumpRecords *records = GetPokeJumpRecords(); + bool32 newRecord = FALSE; - if (pokeJump->bestJumpScore < jumpScore && jumpScore <= 99990) - pokeJump->bestJumpScore = jumpScore, ret = TRUE; - if (pokeJump->jumpsInRow < jumpsInRow && jumpsInRow <= 9999) - pokeJump->jumpsInRow = jumpsInRow, ret = TRUE; - if (pokeJump->excellentsInRow < excellentsInRow && excellentsInRow <= 9999) - pokeJump->excellentsInRow = excellentsInRow, ret = TRUE; + if (records->bestJumpScore < jumpScore && jumpScore <= MAX_JUMP_SCORE) + records->bestJumpScore = jumpScore, newRecord = TRUE; + if (records->jumpsInRow < jumpsInRow && jumpsInRow <= MAX_JUMPS) + records->jumpsInRow = jumpsInRow, newRecord = TRUE; + if (records->excellentsInRow < excellentsInRow && excellentsInRow <= MAX_JUMPS) + records->excellentsInRow = excellentsInRow, newRecord = TRUE; - return ret; + return newRecord; } -static void sub_802E3A8(void) +static void IncrementGamesWithMaxPlayers(void) { - struct PokemonJumpResults *pokeJump = sub_802E32C(); - if (pokeJump->field6 < 9999) - pokeJump->field6++; + struct PokemonJumpRecords *records = GetPokeJumpRecords(); + if (records->gamesWithMaxPlayers < 9999) + records->gamesWithMaxPlayers++; } void ShowPokemonJumpRecords(void) @@ -3876,7 +4136,7 @@ void ShowPokemonJumpRecords(void) Task_ShowPokemonJumpRecords(taskId); } -static const struct WindowTemplate gUnknown_082FE270 = +static const struct WindowTemplate sWindowTemplate_Records = { .bg = 0, .tilemapLeft = 1, @@ -3887,7 +4147,10 @@ static const struct WindowTemplate gUnknown_082FE270 = .baseBlock = 0x1, }; -static const u8 *const gUnknown_082FE278[] = {gText_JumpsInARow, gText_BestScore2, gText_ExcellentsInARow}; +static const u8 *const sRecordsTexts[] = {gText_JumpsInARow, gText_BestScore2, gText_ExcellentsInARow}; + +#define tState data[0] +#define tWindowId data[1] static void Task_ShowPokemonJumpRecords(u8 taskId) { @@ -3895,14 +4158,14 @@ static void Task_ShowPokemonJumpRecords(u8 taskId) int i, width, widthCurr; s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: - window = gUnknown_082FE270; + window = sWindowTemplate_Records; width = GetStringWidth(1, gText_PkmnJumpRecords, 0); - for (i = 0; i < ARRAY_COUNT(gUnknown_082FE278); i++) + for (i = 0; i < ARRAY_COUNT(sRecordsTexts); i++) { - widthCurr = GetStringWidth(1, gUnknown_082FE278[i], 0) + 38; + widthCurr = GetStringWidth(1, sRecordsTexts[i], 0) + 38; if (widthCurr > width) width = widthCurr; } @@ -3911,27 +4174,27 @@ static void Task_ShowPokemonJumpRecords(u8 taskId) width++; window.tilemapLeft = (30 - width) / 2; window.width = width; - data[1] = AddWindow(&window); - sub_802E500(data[1], width); - CopyWindowToVram(data[1], 3); - data[0]++; + tWindowId = AddWindow(&window); + PrintRecordsText(tWindowId, width); + CopyWindowToVram(tWindowId, 3); + tState++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) - data[0]++; + tState++; break; case 2: if (JOY_NEW(A_BUTTON | B_BUTTON)) { - rbox_fill_rectangle(data[1]); - CopyWindowToVram(data[1], 1); - data[0]++; + rbox_fill_rectangle(tWindowId); + CopyWindowToVram(tWindowId, 1); + tState++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - RemoveWindow(data[1]); + RemoveWindow(tWindowId); DestroyTask(taskId); EnableBothScriptContexts(); } @@ -3939,23 +4202,26 @@ static void Task_ShowPokemonJumpRecords(u8 taskId) } } -static void sub_802E500(u16 windowId, int width) +#undef tState +#undef tWindowId + +static void PrintRecordsText(u16 windowId, int width) { int i, x; - int results[3]; - struct PokemonJumpResults *pokeJump = sub_802E32C(); - results[0] = pokeJump->jumpsInRow; - results[1] = pokeJump->bestJumpScore; - results[2] = pokeJump->excellentsInRow; + int recordNums[3]; + struct PokemonJumpRecords *records = GetPokeJumpRecords(); + recordNums[0] = records->jumpsInRow; + recordNums[1] = records->bestJumpScore; + recordNums[2] = records->excellentsInRow; LoadUserWindowBorderGfx_(windowId, 0x21D, 0xD0); DrawTextBorderOuter(windowId, 0x21D, 0xD); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, 1, gText_PkmnJumpRecords, GetStringCenterAlignXOffset(1, gText_PkmnJumpRecords, width * 8), 1, TEXT_SPEED_FF, NULL); - for (i = 0; i < ARRAY_COUNT(gUnknown_082FE278); i++) + for (i = 0; i < ARRAY_COUNT(sRecordsTexts); i++) { - AddTextPrinterParameterized(windowId, 1, gUnknown_082FE278[i], 0, 25 + (i * 16), TEXT_SPEED_FF, NULL); - ConvertIntToDecimalStringN(gStringVar1, results[i], STR_CONV_MODE_LEFT_ALIGN, 5); + AddTextPrinterParameterized(windowId, 1, sRecordsTexts[i], 0, 25 + (i * 16), TEXT_SPEED_FF, NULL); + ConvertIntToDecimalStringN(gStringVar1, recordNums[i], STR_CONV_MODE_LEFT_ALIGN, 5); TruncateToFirstWordOnly(gStringVar1); x = (width * 8) - GetStringWidth(1, gStringVar1, 0); AddTextPrinterParameterized(windowId, 1, gStringVar1, x, 25 + (i * 16), TEXT_SPEED_FF, NULL); diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index f8b3619124..7c88e5bf10 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -36,11 +36,12 @@ static const struct UnknownStruct sBigMonSizeTable[] = { 1700, 1, -26 }, }; -static const u8 sGiftRibbonsMonDataIds[] = +// - 4 for unused gift ribbon bits in MON_DATA_UNUSED_RIBBONS +static const u8 sGiftRibbonsMonDataIds[GIFT_RIBBONS_COUNT - 4] = { - MON_DATA_GIFT_RIBBON_1, MON_DATA_GIFT_RIBBON_2, MON_DATA_GIFT_RIBBON_3, - MON_DATA_GIFT_RIBBON_4, MON_DATA_GIFT_RIBBON_5, MON_DATA_GIFT_RIBBON_6, - MON_DATA_GIFT_RIBBON_7 + MON_DATA_MARINE_RIBBON, MON_DATA_LAND_RIBBON, MON_DATA_SKY_RIBBON, + MON_DATA_COUNTRY_RIBBON, MON_DATA_NATIONAL_RIBBON, MON_DATA_EARTH_RIBBON, + MON_DATA_WORLD_RIBBON }; extern const u8 gText_DecimalPoint[]; @@ -96,7 +97,7 @@ static void FormatMonSizeRecord(u8 *string, u32 size) { #ifdef UNITS_IMPERIAL //Convert size from centimeters to inches - size = (double)(size * 10) / (CM_PER_INCH * 10); + size = (f64)(size * 10) / (CM_PER_INCH * 10); #endif string = ConvertIntToDecimalStringN(string, size / 10, STR_CONV_MODE_LEFT_ALIGN, 8); @@ -197,10 +198,10 @@ void GiveGiftRibbonToParty(u8 index, u8 ribbonId) s32 i; bool32 gotRibbon = FALSE; u8 data = 1; - u8 array[8]; + u8 array[ARRAY_COUNT(sGiftRibbonsMonDataIds)]; memcpy(array, sGiftRibbonsMonDataIds, sizeof(sGiftRibbonsMonDataIds)); - if (index < 11 && ribbonId < 65) + if (index < GIFT_RIBBONS_COUNT && ribbonId <= MAX_GIFT_RIBBON) { gSaveBlock1Ptr->giftRibbons[index] = ribbonId; for (i = 0; i < PARTY_SIZE; i++) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 4be1cf729f..87180ad1e9 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -42,20 +42,304 @@ #include "constants/rgb.h" #include "constants/songs.h" -struct WallpaperTable +/* + NOTE: This file is large. Some general groups of functions have + been labeled with commented headers to make navigation easier. + Search for "SECTION:" to locate them. These sections are not + hard and fast rules, but give a basic idea of where certain + types of functions are likely located. +*/ + +// PC main menu options +enum { + OPTION_WITHDRAW, + OPTION_DEPOSIT, + OPTION_MOVE_MONS, + OPTION_MOVE_ITEMS, + OPTION_EXIT, + OPTIONS_COUNT +}; + +// IDs for messages to print with PrintMessage +enum { + MSG_EXIT_BOX, + MSG_WHAT_YOU_DO, + MSG_PICK_A_THEME, + MSG_PICK_A_WALLPAPER, + MSG_IS_SELECTED, + MSG_JUMP_TO_WHICH_BOX, + MSG_DEPOSIT_IN_WHICH_BOX, + MSG_WAS_DEPOSITED, + MSG_BOX_IS_FULL, + MSG_RELEASE_POKE, + MSG_WAS_RELEASED, + MSG_BYE_BYE, + MSG_MARK_POKE, + MSG_LAST_POKE, + MSG_PARTY_FULL, + MSG_HOLDING_POKE, + MSG_WHICH_ONE_WILL_TAKE, + MSG_CANT_RELEASE_EGG, + MSG_CONTINUE_BOX, + MSG_CAME_BACK, + MSG_WORRIED, + MSG_SURPRISE, + MSG_PLEASE_REMOVE_MAIL, + MSG_IS_SELECTED2, + MSG_GIVE_TO_MON, + MSG_PLACED_IN_BAG, + MSG_BAG_FULL, + MSG_PUT_IN_BAG, + MSG_ITEM_IS_HELD, + MSG_CHANGED_TO_ITEM, + MSG_CANT_STORE_MAIL, +}; + +// IDs for how to resolve variables in the above messages +enum { + MSG_VAR_NONE, + MSG_VAR_MON_NAME_1, + MSG_VAR_MON_NAME_2, // Unused + MSG_VAR_MON_NAME_3, // Unused + MSG_VAR_RELEASE_MON_1, + MSG_VAR_RELEASE_MON_2, // Unused + MSG_VAR_RELEASE_MON_3, + MSG_VAR_ITEM_NAME, +}; + +// IDs for menu selection items. See SetMenuText, HandleMenuInput, etc +enum { + MENU_CANCEL, + MENU_STORE, + MENU_WITHDRAW, + MENU_MOVE, + MENU_SHIFT, + MENU_PLACE, + MENU_SUMMARY, + MENU_RELEASE, + MENU_MARK, + MENU_JUMP, + MENU_WALLPAPER, + MENU_NAME, + MENU_TAKE, + MENU_GIVE, + MENU_GIVE_2, + MENU_SWITCH, + MENU_BAG, + MENU_INFO, + MENU_SCENERY_1, + MENU_SCENERY_2, + MENU_SCENERY_3, + MENU_ETCETERA, + MENU_FRIENDS, + MENU_FOREST, + MENU_CITY, + MENU_DESERT, + MENU_SAVANNA, + MENU_CRAG, + MENU_VOLCANO, + MENU_SNOW, + MENU_CAVE, + MENU_BEACH, + MENU_SEAFLOOR, + MENU_RIVER, + MENU_SKY, + MENU_POLKADOT, + MENU_POKECENTER, + MENU_MACHINE, + MENU_SIMPLE, +}; +#define MENU_WALLPAPER_SETS_START MENU_SCENERY_1 +#define MENU_WALLPAPERS_START MENU_FOREST + +// Return IDs for input handlers +enum { + INPUT_NONE, + INPUT_MOVE_CURSOR, + INPUT_2, // Unused + INPUT_3, // Unused + INPUT_CLOSE_BOX, + INPUT_SHOW_PARTY, + INPUT_HIDE_PARTY, + INPUT_BOX_OPTIONS, + INPUT_IN_MENU, + INPUT_SCROLL_RIGHT, + INPUT_SCROLL_LEFT, + INPUT_DEPOSIT, + INPUT_WITHDRAW, + INPUT_MOVE_MON, + INPUT_SHIFT_MON, + INPUT_PLACE_MON, + INPUT_TAKE_ITEM, + INPUT_GIVE_ITEM, + INPUT_SWITCH_ITEMS, + INPUT_PRESSED_B, + INPUT_MULTIMOVE_START, + INPUT_MULTIMOVE_CHANGE_SELECTION, + INPUT_MULTIMOVE_SINGLE, + INPUT_MULTIMOVE_GRAB_SELECTION, + INPUT_MULTIMOVE_UNABLE, + INPUT_MULTIMOVE_MOVE_MONS, + INPUT_MULTIMOVE_PLACE_MONS, +}; + +enum { + SCREEN_CHANGE_EXIT_BOX, + SCREEN_CHANGE_SUMMARY_SCREEN, + SCREEN_CHANGE_NAME_BOX, + SCREEN_CHANGE_ITEM_FROM_BAG, +}; + +enum { + MODE_PARTY, + MODE_BOX, + MODE_MOVE, +}; + +enum { + CURSOR_AREA_IN_BOX, + CURSOR_AREA_IN_PARTY, + CURSOR_AREA_BOX_TITLE, + CURSOR_AREA_BUTTONS, // Party Pokemon and Close Box +}; +#define CURSOR_AREA_IN_HAND CURSOR_AREA_BOX_TITLE // Alt name for cursor area used by Move Items + +enum { + CURSOR_ANIM_BOUNCE, + CURSOR_ANIM_STILL, + CURSOR_ANIM_OPEN, + CURSOR_ANIM_FIST, +}; + +// Special box ids for the choose box menu +#define BOXID_NONE_CHOSEN 200 +#define BOXID_CANCELED 201 + +enum { + PALTAG_MON_ICON_0 = 56000, + PALTAG_MON_ICON_1, // Used implicitly in CreateMonIconSprite + PALTAG_MON_ICON_2, // Used implicitly in CreateMonIconSprite + PALTAG_3, // Unused + PALTAG_4, // Unused + PALTAG_5, // Unused + PALTAG_DISPLAY_MON, + PALTAG_MISC_1, + PALTAG_MARKING_COMBO, + PALTAG_BOX_TITLE, + PALTAG_MISC_2, + PALTAG_ITEM_ICON_0, + PALTAG_ITEM_ICON_1, // Used implicitly in CreateItemIconSprites + PALTAG_ITEM_ICON_2, // Used implicitly in CreateItemIconSprites + PALTAG_MARKING_MENU, +}; + +enum { + GFXTAG_CURSOR, + GFXTAG_CURSOR_SHADOW, + GFXTAG_DISPLAY_MON, + GFXTAG_BOX_TITLE, + GFXTAG_BOX_TITLE_ALT, + GFXTAG_WAVEFORM, + GFXTAG_ARROW, + GFXTAG_ITEM_ICON_0, + GFXTAG_ITEM_ICON_1, // Used implicitly in CreateItemIconSprites + GFXTAG_ITEM_ICON_2, // Used implicitly in CreateItemIconSprites + GFXTAG_CHOOSE_BOX_MENU, + GFXTAG_CHOOSE_BOX_MENU_SIDES, // Used implicitly in LoadChooseBoxMenuGfx + GFXTAG_12, // Unused + GFXTAG_MARKING_MENU, + GFXTAG_14, // Unused + GFXTAG_15, // Unused + GFXTAG_MARKING_COMBO, + GFXTAG_17, // Unused + GFXTAG_MON_ICON, +}; + +// The maximum number of Pokémon icons that can appear on-screen. +// By default the limit is 40 (though in practice only 37 can be). +#define MAX_MON_ICONS (IN_BOX_COUNT + PARTY_SIZE + 1 >= 40 ? IN_BOX_COUNT + PARTY_SIZE + 1 : 40) + +// The maximum number of item icons that can appear on-screen while +// moving held items. 1 in the cursor, and 2 more while switching +// between 2 Pokémon with held items +#define MAX_ITEM_ICONS 3 + +// IDs for the item icons affine anims +enum { + ITEM_ANIM_NONE, + ITEM_ANIM_APPEAR, + ITEM_ANIM_DISAPPEAR, + ITEM_ANIM_PICK_UP, + ITEM_ANIM_PUT_DOWN, + ITEM_ANIM_PUT_AWAY, + ITEM_ANIM_LARGE, +}; + +// IDs for the item icon sprite callbacks +enum { + ITEM_CB_WAIT_ANIM, + ITEM_CB_TO_HAND, + ITEM_CB_TO_MON, + ITEM_CB_SWAP_TO_HAND, + ITEM_CB_SWAP_TO_MON, + ITEM_CB_UNUSED_1, + ITEM_CB_UNUSED_2, + ITEM_CB_HIDE_PARTY, +}; + +enum { + RELEASE_ANIM_RELEASE, + RELEASE_ANIM_CAME_BACK, +}; + +// IDs for InitMonPlaceChange +enum { + CHANGE_GRAB, + CHANGE_PLACE, + CHANGE_SHIFT, +}; + +// Modes for selecting and moving Pokémon in the box. +// "MULTIPLE" mode allows up to an entire box to be +// picked up at once by pressing Select then holding +// down the A button. While holding A down, the player +// may move the cursor around to select multiple Pokémon. +// This is MOVE_MODE_MULTIPLE_SELECTING. After releasing A +// those Pokémon will be picked up and can be moved around +// as a single unit. This is MOVE_MODE_MULTIPLE_MOVING +enum { + MOVE_MODE_NORMAL, + MOVE_MODE_MULTIPLE_SELECTING, + MOVE_MODE_MULTIPLE_MOVING, +}; + +// IDs for the main functions for moving multiple Pokémon. +// Given as arguments to MultiMove_SetFunction +enum { + MULTIMOVE_START, + MULTIMOVE_CANCEL, // If only 1 Pokémon is grabbed + MULTIMOVE_CHANGE_SELECTION, + MULTIMOVE_GRAB_SELECTION, + MULTIMOVE_MOVE_MONS, + MULTIMOVE_PLACE_MONS, +}; + +// IDs for TilemapUtil +enum { + TILEMAPID_PKMN_DATA, // The "Pkmn Data" text at the top of the display + TILEMAPID_PARTY_MENU, + TILEMAPID_CLOSE_BUTTON, + TILEMAPID_COUNT +}; + +struct Wallpaper { const u32 *tiles; - const u32 *tileMap; + const u32 *tilemap; const u16 *palettes; }; -struct PokemonStorageSystemFunc -{ - u8 (*func)(void); - s8 unk4; -}; - -struct StorageAction +struct StorageMessage { const u8 *text; u8 format; @@ -67,52 +351,46 @@ struct StorageMenu int textId; }; -struct PSS_MenuStringPtrs +struct UnkUtilData { - const u8 *text; - const u8 *desc; + const u8 *src; + u8 *dest; + u16 size; + u16 unk; + u16 height; + void (*func)(struct UnkUtilData *data); }; -struct UnkStruct_2000028 +struct UnkUtil { - const u8 *unk_00; - u8 *unk_04; - u16 unk_08; - u16 unk_0a; - u16 newField; - void (*unk_0c)(struct UnkStruct_2000028 *data); + struct UnkUtilData *data; + u8 numActive; + u8 max; }; -struct UnkStruct_2000020 +struct ChooseBoxMenu { - struct UnkStruct_2000028 *unk_00; - u8 unk_04; - u8 unk_05; -}; - -struct UnkPSSStruct_2002370 -{ - struct Sprite *unk_0000; - struct Sprite *unk_0004[4]; - u32 unk_0014[3]; - struct Sprite *unk_0020[2]; - u8 filler_0028[0x214]; - u32 unk_023c; - u16 unk_0240; - u16 unk_0242; + struct Sprite *menuSprite; + struct Sprite *menuSideSprites[4]; + u32 unused1[3]; + struct Sprite *arrowSprites[2]; + u8 unused2[0x214]; + bool32 loadedPalette; + u16 tileTag; + u16 paletteTag; u8 curBox; - u8 unk_0245; - u8 unk_0246; + u8 unused3; + u8 subpriority; }; -struct UnkStorageStruct +struct ItemIcon { struct Sprite *sprite; u8 *tiles; u16 palIndex; - u8 unk8; - u8 unk9; - u8 unk10; + u8 area; + u8 pos; + bool8 active; }; struct PokemonStorageSystemData @@ -120,611 +398,491 @@ struct PokemonStorageSystemData u8 state; u8 boxOption; u8 screenChangeType; - bool8 isReshowingPSS; + bool8 isReopening; u8 taskId; - struct UnkStruct_2000020 unk_0020; - struct UnkStruct_2000028 unk_0028[8]; - u16 field_B0[528 / 2]; - u16 field_2C0; - u16 field_2C2; - u8 field_2C4; // Unused - u8 field_2C5; + struct UnkUtil unkUtil; + struct UnkUtilData unkUtilData[8]; + u16 partyMenuTilemapBuffer[0x108]; + u16 partyMenuUnused1; // Never read + u16 partyMenuY; + u8 partyMenuUnused2; // Unused + u8 partyMenuMoveTimer; u8 showPartyMenuState; - u8 unk_02C7; - u8 unk_02C8; - bool8 unk_02C9; + bool8 closeBoxFlashing; + u8 closeBoxFlashTimer; + bool8 closeBoxFlashState; s16 newCurrBoxId; u16 bg2_X; - s16 wallpaperScrollSpeed; - u16 field_2D0; - u8 field_2D2; - u8 field_2D3; // Written to, but never read. - u8 field_2D4; // Written to, but never read. - u16 field_2D6; // Written to, but never read. - s16 field_2D8; // Written to, but never read. - u16 field_2DA; // Written to, but never read. - u16 field_2DC; // Written to, but never read. - u16 field_2DE; // Written to, but never read. - u16 field_2E0; // Written to, but never read. - u8 filler[22]; - u8 field_2F8[1024]; - u8 field_6F8; - u8 field_6F9; // Written to, but never read. - u8 field_6FA; - s8 field_6FB; - u16 field_6FC[16]; - u16 field_71C; - u16 field_71E; - struct Sprite *field_720[2]; - struct Sprite *field_728[2]; - struct Sprite *field_730[2]; - u32 field_738; - u8 field_73C[80]; // Unused - u16 field_78C; // Written to, but never read. + s16 scrollSpeed; + u16 scrollTimer; + u8 wallpaperOffset; + u8 scrollUnused1; // Never read + u8 scrollToBoxIdUnused; // Never read + u16 scrollUnused2; // Never read + s16 scrollDirectionUnused; // Never read. + u16 scrollUnused3; // Never read + u16 scrollUnused4; // Never read + u16 scrollUnused5; // Never read + u16 scrollUnused6; // Never read + u8 filler1[22]; + u8 boxTitleTiles[1024]; + u8 boxTitleCycleId; + u8 wallpaperLoadState; // Written to, but never read. + u8 wallpaperLoadBoxId; + s8 wallpaperLoadDir; + u16 boxTitlePal[16]; + u16 boxTitlePalOffset; + u16 boxTitleAltPalOffset; + struct Sprite *curBoxTitleSprites[2]; + struct Sprite *nextBoxTitleSprites[2]; + struct Sprite *arrowSprites[2]; + u32 wallpaperPalBits; + u8 filler2[80]; // Unused + u16 unkUnused1; // Never read. s16 wallpaperSetId; s16 wallpaperId; - u16 field_792[360]; + u16 wallpaperTilemap[360]; u8 wallpaperChangeState; - u8 field_A63; - u8 boxScrollDestination; - s8 field_A65; + u8 scrollState; + u8 scrollToBoxId; + s8 scrollDirection; u8 *wallpaperTiles; struct Sprite *movingMonSprite; struct Sprite *partySprites[PARTY_SIZE]; struct Sprite *boxMonsSprites[IN_BOX_COUNT]; - struct Sprite **field_B00; - struct Sprite **field_B04; - u16 field_B08[40]; - u16 field_B58[40]; + struct Sprite **shiftMonSpritePtr; + struct Sprite **releaseMonSpritePtr; + u16 numIconsPerSpecies[MAX_MON_ICONS]; + u16 iconSpeciesList[MAX_MON_ICONS]; u16 boxSpecies[IN_BOX_COUNT]; u32 boxPersonalities[IN_BOX_COUNT]; - u8 field_C5C; - u8 field_C5D; - u8 field_C5E; - u16 field_C60; - s16 field_C62; - s16 field_C64; - u16 field_C66; - u8 field_C68; - s8 field_C69; - u8 field_C6A; - u8 field_C6B; // Written to, but never read. + u8 incomingBoxId; + u8 shiftTimer; + u8 numPartyToCompact; + u16 iconScrollDistance; + s16 iconScrollPos; + s16 iconScrollSpeed; + u16 iconScrollNumIncoming; + u8 iconScrollCurColumn; + s8 iconScrollDirection; // Unnecessary duplicate of scrollDirection + u8 iconScrollState; + u8 iconScrollToBoxId; // Unnecessary duplicate of scrollToBoxId struct WindowTemplate menuWindow; struct StorageMenu menuItems[7]; u8 menuItemsCount; u8 menuWidth; - u8 field_CAE; // Written to, but never read. - u16 field_CB0; - struct Sprite *field_CB4; - struct Sprite *field_CB8; - s32 field_CBC; - s32 field_CC0; - u32 field_CC4; - u32 field_CC8; - s16 field_CCC; - s16 field_CCE; - u16 field_CD0; - s8 field_CD2; - s8 field_CD3; - u8 field_CD4; - u8 field_CD5; - u8 field_CD6; - u8 field_CD7; - u8 field_CD8[2]; - const u32 *cursorMonPalette; - u32 cursorMonPersonality; - u16 cursorMonSpecies; - u16 cursorMonItem; - u16 field_CE8; + u8 menuUnusedField; // Never read. + u16 menuWindowId; + struct Sprite *cursorSprite; + struct Sprite *cursorShadowSprite; + s32 cursorNewX; + s32 cursorNewY; + u32 cursorSpeedX; + u32 cursorSpeedY; + s16 cursorTargetX; + s16 cursorTargetY; + u16 cursorMoveSteps; + s8 cursorVerticalWrap; + s8 cursorHorizontalWrap; + u8 newCursorArea; + u8 newCursorPosition; + u8 cursorPrevHorizPos; + u8 cursorFlipTimer; + u8 cursorPalNums[2]; + const u32 *displayMonPalette; + u32 displayMonPersonality; + u16 displayMonSpecies; + u16 displayMonItemId; + u16 displayUnusedVar; bool8 setMosaic; - u8 cursorMonMarkings; - u8 cursorMonLevel; - bool8 cursorMonIsEgg; - u8 cursorMonNick[POKEMON_NAME_LENGTH + 1]; - u8 cursorMonNickText[36]; - u8 cursorMonSpeciesName[36]; - u8 cursorMonGenderLvlText[36]; - u8 cursorMonItemName[36]; + u8 displayMonMarkings; + u8 displayMonLevel; + bool8 displayMonIsEgg; + u8 displayMonName[POKEMON_NAME_LENGTH + 1]; + u8 displayMonNameText[36]; + u8 displayMonSpeciesName[36]; + u8 displayMonGenderLvlText[36]; + u8 displayMonItemName[36]; bool8 (*monPlaceChangeFunc)(void); u8 monPlaceChangeState; - u8 field_D91; - struct Sprite *field_D94; - struct Sprite *field_D98[2]; - u16 *field_DA0; - struct PokemonMarkMenu markMenu; - struct UnkPSSStruct_2002370 field_1E5C; + u8 shiftBoxId; + struct Sprite *markingComboSprite; + struct Sprite *waveformSprites[2]; + u16 *markingComboTilesPtr; + struct MonMarkingsMenu markMenu; + struct ChooseBoxMenu chooseBoxMenu; struct Pokemon movingMon; - struct Pokemon field_2108; - s8 field_216C; - u8 field_216D; - s8 field_216E; - s8 field_216F; - s8 field_2170; - s8 field_2171; - u16 field_2172; - u16 field_2174; - u16 field_2176[8]; - u8 field_2186; - u8 field_2187; - u8 pokemonSummaryScreenMode; + struct Pokemon tempMon; + s8 canReleaseMon; + bool8 releaseStatusResolved; + s8 releaseCheckBoxId; + s8 releaseCheckBoxPos; + s8 releaseBoxId; + s8 releaseBoxPos; + u16 releaseCheckState; + u16 restrictedReleaseMonMoves; + u16 restrictedMoveList[8]; + u8 summaryMaxPos; + u8 summaryStartPos; + u8 summaryScreenMode; union { struct Pokemon *mon; struct BoxPokemon *box; - } field_218C; - u8 field_2190[40]; - u8 field_21B8[40]; - u8 field_21E0[POKEMON_NAME_LENGTH + 1]; + } summaryMon; + u8 messageText[40]; + u8 boxTitleText[40]; + u8 releaseMonName[POKEMON_NAME_LENGTH + 1]; u8 itemName[20]; u8 inBoxMovingMode; - u16 field_2200; - struct UnkStorageStruct field_2204[3]; - u16 movingItem; - u16 field_2236; - u8 field_2238; // Unused - u16 field_223A; - u16 *field_223C; - struct Sprite *cursorMonSprite; - u16 field_2244[0x40]; - u8 field_22C4[0x800]; - u8 field_2AC4[0x1800]; // Unused - u8 field_42C4[0x800]; - u8 field_4AC4[0x1000]; - u8 field_5AC4[0x800]; + u16 multiMoveWindowId; + struct ItemIcon itemIcons[MAX_ITEM_ICONS]; + u16 movingItemId; + u16 itemInfoWindowOffset; + u8 unkUnused2; // Unused + u16 displayMonPalOffset; + u16 *displayMonTilePtr; + struct Sprite *displayMonSprite; + u16 displayMonPalBuffer[0x40]; + u8 tileBuffer[0x800]; + u8 unusedBuffer[0x1800]; // Unused + u8 itemIconBuffer[0x800]; + u8 wallpaperBgTilemapBuffer[0x1000]; + u8 displayMenuTilemapBuffer[0x800]; }; -struct UnkSubStruct_2039D84 -{ - s16 field_0; - s16 field_2; - u16 field_4; - u16 field_6; - s16 field_8; - s16 field_A; -}; +static u32 sItemIconGfxBuffer[98]; -struct UnkStruct_2039D84 -{ - struct UnkSubStruct_2039D84 field_0[2]; - const void *field_18; - const void *field_1C; - u16 field_20; - u16 field_22; - u16 field_24; - u16 field_26; - u16 field_28; - u8 field_2A; - u8 field_2B; - u8 field_2C; - u8 field_2D; -}; - -enum -{ - BOX_OPTION_WITHDRAW, - BOX_OPTION_DEPOSIT, - BOX_OPTION_MOVE_MONS, - BOX_OPTION_MOVE_ITEMS, - BOX_OPTION_EXIT, -}; - -enum -{ - PC_TEXT_EXIT_BOX, - PC_TEXT_WHAT_YOU_DO, - PC_TEXT_PICK_A_THEME, - PC_TEXT_PICK_A_WALLPAPER, - PC_TEXT_IS_SELECTED, - PC_TEXT_JUMP_TO_WHICH_BOX, - PC_TEXT_DEPOSIT_IN_WHICH_BOX, - PC_TEXT_WAS_DEPOSITED, - PC_TEXT_BOX_IS_FULL, - PC_TEXT_RELEASE_POKE, - PC_TEXT_WAS_RELEASED, - PC_TEXT_BYE_BYE, - PC_TEXT_MARK_POKE, - PC_TEXT_LAST_POKE, - PC_TEXT_PARTY_FULL, - PC_TEXT_HOLDING_POKE, - PC_TEXT_WHICH_ONE_WILL_TAKE, - PC_TEXT_CANT_RELEASE_EGG, - PC_TEXT_CONTINUE_BOX, - PC_TEXT_CAME_BACK, - PC_TEXT_WORRIED, - PC_TEXT_SURPRISE, - PC_TEXT_PLEASE_REMOVE_MAIL, - PC_TEXT_IS_SELECTED2, - PC_TEXT_GIVE_TO_MON, - PC_TEXT_PLACED_IN_BAG, - PC_TEXT_BAG_FULL, - PC_TEXT_PUT_IN_BAG, - PC_TEXT_ITEM_IS_HELD, - PC_TEXT_CHANGED_TO_ITEM, - PC_TEXT_CANT_STORE_MAIL, -}; - -enum -{ - PC_TEXT_FMT_NORMAL, - PC_TEXT_FMT_MON_NAME_1, - PC_TEXT_FMT_MON_NAME_2, - PC_TEXT_FMT_MON_NAME_3, - PC_TEXT_FMT_MON_NAME_4, - PC_TEXT_FMT_MON_NAME_5, - PC_TEXT_FMT_MON_NAME_6, - PC_TEXT_FMT_ITEM_NAME, -}; - -enum -{ - SCREEN_CHANGE_EXIT_BOX, - SCREEN_CHANGE_SUMMARY_SCREEN, - SCREEN_CHANGE_NAME_BOX, - SCREEN_CHANGE_ITEM_FROM_BAG, -}; - -enum -{ - MODE_PARTY, - MODE_BOX, - MODE_MOVE, -}; - -enum -{ - WALLPAPER_FOREST, - WALLPAPER_CITY, - WALLPAPER_DESERT, - WALLPAPER_SAVANNA, - WALLPAPER_CRAG, - WALLPAPER_VOLCANO, - WALLPAPER_SNOW, - WALLPAPER_CAVE, - WALLPAPER_BEACH, - WALLPAPER_SEAFLOOR, - WALLPAPER_RIVER, - WALLPAPER_SKY, - WALLPAPER_POLKADOT, - WALLPAPER_POKECENTER, - WALLPAPER_MACHINE, - WALLPAPER_PLAIN, - WALLPAPER_FRIENDS, // The one received as a gift from Walda's parents. - WALLPAPER_COUNT -}; - -enum -{ - FRIENDS_ZIGZAGOON, - FRIENDS_SCREEN, - FRIENDS_HORIZONTAL, - FRIENDS_DIAGONAL, - FRIENDS_BLOCK, - FRIENDS_RIBBON, - FRIENDS_POKECENTER2, - FRIENDS_FRAME, - FRIENDS_BLANK, - FRIENDS_CIRCLES, - FRIENDS_AZUMARILL, - FRIENDS_PIKACHU, - FRIENDS_LEGENDARY, - FRIENDS_DUSCLOPS, - FRIENDS_LUDICOLO, - FRIENDS_WHISCASH, - FRIENDS_WALLPAPERS_COUNT -}; - -enum -{ - CURSOR_AREA_IN_BOX, - CURSOR_AREA_IN_PARTY, - CURSOR_AREA_BOX, - CURSOR_AREA_BUTTONS, // Party Pokemon and Close Box -}; - -#define TAG_PAL_WAVEFORM 0xDACA -#define TAG_PAL_DAC8 0xDAC8 -#define TAG_PAL_DAC6 0xDAC6 -#define TAG_PAL_DACE 0xDACE -#define TAG_PAL_DAC7 0xDAC7 -#define TAG_PAL_DAC9 0xDAC9 -#define TAG_PAL_DAC0 0xDAC0 -#define TAG_PAL_DACB 0xDACB - -#define TAG_TILE_WAVEFORM 0x5 -#define TAG_TILE_10 0x10 -#define TAG_TILE_2 0x2 -#define TAG_TILE_D 0xD -#define TAG_TILE_A 0xA -#define TAG_TILE_3 0x3 -#define TAG_TILE_4 0x4 -#define TAG_TILE_12 0x12 -#define TAG_TILE_7 0x7 -#define TAG_TILE_0 0x0 -#define TAG_TILE_1 0x1 - -// IWRAM bss -static u32 gUnknown_03000F78[98]; - -// EWRAM DATA EWRAM_DATA static u8 sPreviousBoxOption = 0; -EWRAM_DATA static struct UnkPSSStruct_2002370 *gUnknown_02039D04 = NULL; -EWRAM_DATA static struct PokemonStorageSystemData *sPSSData = NULL; +EWRAM_DATA static struct ChooseBoxMenu *sChooseBoxMenu = NULL; +EWRAM_DATA static struct PokemonStorageSystemData *sStorage = NULL; EWRAM_DATA static bool8 sInPartyMenu = 0; EWRAM_DATA static u8 sCurrentBoxOption = 0; -EWRAM_DATA static u8 gUnknown_02039D0E = 0; +EWRAM_DATA static u8 sDepositBoxId = 0; EWRAM_DATA static u8 sWhichToReshow = 0; EWRAM_DATA static u8 sLastUsedBox = 0; EWRAM_DATA static u16 sMovingItemId = 0; -EWRAM_DATA static struct Pokemon gUnknown_02039D14 = {0}; -EWRAM_DATA static s8 sBoxCursorArea = 0; -EWRAM_DATA static s8 sBoxCursorPosition = 0; +EWRAM_DATA static struct Pokemon sSavedMovingMon = {0}; +EWRAM_DATA static s8 sCursorArea = 0; +EWRAM_DATA static s8 sCursorPosition = 0; EWRAM_DATA static bool8 sIsMonBeingMoved = 0; EWRAM_DATA static u8 sMovingMonOrigBoxId = 0; EWRAM_DATA static u8 sMovingMonOrigBoxPos = 0; -EWRAM_DATA static bool8 sCanOnlyMove = 0; +EWRAM_DATA static bool8 sAutoActionOn = 0; -// This file's functions. -static void CreatePCMenu(u8 whichMenu, s16 *windowIdPtr); -static void Cb2_EnterPSS(u8 boxOption); -static u8 GetCurrentBoxOption(void); -static u8 HandleInput(void); -static u8 sub_80CDC2C(void); -static u8 sub_80CB9BC(void); -static void LoadWallpaperGfx(u8 boxId, s8 direction); -static void sub_80CCCFC(u8 boxId, s8 direction); -static void sub_80CD0B8(s8 direction); -static void SetCurrentBox(u8 boxId); -static void sub_80CC32C(u8 boxId); -static void sub_80C7958(u8 curBox); -static void sub_80CCAE0(void *arg0); -static void sub_80C7B14(void); -static void sub_80C7BB4(void); -static void ScrollBackground(void); -static void sub_80C7B80(void); -static void sub_80C7BE4(void); -static void sub_80CAA14(void); -static void sub_80CFDC4(void); -static void sub_80CE790(void); -static void sub_80CE8E4(void); -static void GiveChosenBagItem(void); -static void SetUpHidePartyMenu(void); -static void DestroyAllPartyMonIcons(void); -static void sub_80D11CC(void); -static void LoadPSSMenuGfx(void); -static void LoadWaveformSpritePalette(void); -static void sub_80CDC18(void); -static void sub_80CD36C(void); -static void sub_80CD3EC(void); -static void sub_80CAC1C(void); -static void sub_80CEBDC(void); -static void SetScrollingBackground(void); -static void sub_80CABE0(void); -static void sub_80CAEAC(void); -static void sub_80D0C60(void); -static void sub_80CFEA8(void); -static void sub_80CDC0C(void); -static void sub_80CAF04(void); -static void sub_80CA0D8(void); -static void AddMenu(void); -static void sub_80CE250(void); -static void InitCanRelaseMonVars(void); -static void sub_80D01B8(void); -static void ReleaseMon(void); -static void RefreshCursorMonData(void); -static void LoadCursorMonSprite(void); -static void sub_80CA154(void); -static void sub_80CA1C4(void); -static void sub_80CC064(void); -static void sub_80CE324(void); -static void ClearBottomWindow(void); -static void sub_80CA704(void); -static void sub_80D013C(void); -static void sub_80CE00C(void); -static void sub_80D1194(void); -static void PrintCursorMonInfo(void); -static void sub_80CA65C(void); -static void AddWallpaperSetsMenu(void); -static void sub_80CD02C(void); -static void InitMenu(void); -static void sub_80CD158(void); -static void sub_80CFC14(void); -static void sub_80CEB40(void); -static void sub_80CCEE0(void); -static void sub_80D1818(void); -static void sub_80D19B4(u32 arg0); -static void sub_80CAA74(void); -static void PrintItemDescription(void); -static void sub_80CE760(void); -static void sub_80CDBA0(void); -static void sub_80CE7E8(void); -static void sub_80CFECC(void); -static void sub_80CA9EC(void); -static void FreePSSData(void); -static void AddBoxMenu(void); -static void sub_80CCF9C(void); -static void MoveMon(void); -static void PlaceMon(void); -static void sub_80CAB20(void); -static void sub_80CE22C(void); -static void sub_80CDA68(void); -static void sub_80CB950(void); -static void sub_80CA9C0(void); -static void SetUpDoShowPartyMenu(void); -static void BoxSetMosaic(void); -static void sub_80C7CF4(struct Sprite *sprite); -static void sub_80CC100(struct Sprite *sprite); -static void sub_80CB278(struct Sprite *sprite); -static void sub_80CD210(struct Sprite *sprite); -static bool32 WaitForWallpaperGfxLoad(void); -static bool8 InitPSSWindows(void); -static bool8 sub_80CC0A0(void); -static bool8 sub_80CE2A8(void); -static bool8 sub_80D0164(void); -static bool8 sub_80CC35C(void); -static bool8 sub_80D01E4(void); -static bool8 sub_80CDED4(void); -static bool8 sub_80CDF08(void); -static bool8 sub_80D184C(void); -static bool8 sub_80D18E4(void); -static bool8 DoShowPartyMenu(void); -static bool8 sub_80D1218(void); -static bool8 ScrollToBox(void); -static bool8 sub_80CD554(void); -static bool8 HidePartyMenu(void); -static bool8 IsActiveItemMoving(void); -static bool8 sub_80D0580(u8 arg0); -static bool8 sub_80D0BC0(void); -static bool8 sub_80CA2B8(void); -static bool8 DoWallpaperGfxChange(void); -static bool8 DoMonPlaceChange(void); -static bool8 sub_80D00A8(void); -static bool8 CanMovePartyMon(void); -static bool8 CanShiftMon(void); -static bool8 IsCursorOnCloseBox(void); -static bool8 IsCursorOnBox(void); -static bool8 IsCursorInBox(void); -static bool8 IsMonBeingMoved(void); -static bool8 TryStorePartyMonInBox(u8 boxId); -static void Cb_InitPSS(u8 taskId); -static void Cb_PlaceMon(u8 taskId); -static void Cb_ChangeScreen(u8 taskId); -static void Cb_ShowPSS(u8 taskId); -static void Cb_OnBPressed(u8 taskId); -static void Cb_HandleBoxOptions(u8 taskId); -static void Cb_OnSelectedMon(u8 taskId); -static void Cb_OnCloseBoxPressed(u8 taskId); -static void Cb_HidePartyPokemon(u8 taskId); -static void Cb_DepositMenu(u8 taskId); -static void Cb_MoveMon(u8 taskId); -static void Cb_GiveMovingItemToMon(u8 taskId); -static void Cb_SwitchSelectedItem(u8 taskId); -static void Cb_TakeItemForMoving(u8 taskId); -static void Cb_WithdrawMon(u8 taskId); -static void Cb_ShiftMon(u8 taskId); -static void Cb_ShowPartyPokemon(u8 taskId); -static void Cb_ShowItemInfo(u8 taskId); -static void Cb_GiveItemFromBag(u8 taskId); -static void Cb_ItemToBag(u8 taskId); -static void Cb_TakeItemForMoving(u8 taskId); -static void Cb_ShowMarkMenu(u8 taskId); -static void Cb_ShowMonSummary(u8 taskId); -static void Cb_ReleaseMon(u8 taskId); -static void Cb_ReshowPSS(u8 taskId); -static void Cb_MainPSS(u8 taskId); -static void Cb_JumpBox(u8 taskId); -static void Cb_HandleWallpapers(u8 taskId); -static void Cb_NameBox(u8 taskId); -static void Cb_PrintCantStoreMail(u8 taskId); -static void Cb_HandleMovingMonFromParty(u8 taskId); -static void SetUpScrollToBox(u8 boxId); -static void sub_80CFE54(u8 animNum); -static void SetMovingMonPriority(u8 priority); -static void InitMonPlaceChange(u8 arg0); -static void SetMonMarkings(u8 markings); -static void ShowYesNoWindow(s8 cursorPos); -static void sub_80CDBF8(u8 cursorBoxPosition); -static void sub_80D01D0(u8 arg0); -static void sub_80CD1A8(bool8 arg0); -static void sub_80CA984(bool8 arg0); -static void CreatePartyMonsSprites(bool8 arg0); -static void PrintStorageActionText(u8 id); -static s16 sub_80D00AC(void); -static s8 RunCanReleaseMon(void); -static u8 GetBoxCursorPosition(void); -static void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos); -static void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos); -static void Item_TakeMons(u8 cursorArea, u8 cursorPos); -static void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos); -static struct Sprite *sub_80CD2E8(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority); -static void SetWallpaperForCurrentBox(u8 wallpaperId); -static void AddWallpapersMenu(u8 wallpaperSet); -static u16 GetMovingItem(void); -static void LoadCursorMonGfx(u16 species, u32 pid); -static void sub_80CA2D0(struct Sprite *sprite); -static void sub_80CCF64(struct Sprite *sprite); -static void sub_80CBA3C(struct Sprite *sprite); -static void sub_80CCF30(struct Sprite *sprite); -static void sub_80CBAF0(s16 yDelta); -static void sub_80CAAA8(u8 arg0, bool8 isPartyMon); -static const u8 *GetMovingItemName(void); -static void SetMenuText(u8 textId); -static void sub_80D0D8C(u8 cursorArea, u8 cursorPos); -static void sub_80D0E50(u8 cursorArea, u8 cursorPos); -static void sub_80D0F38(u16 item); -static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority); -static void DestroyBoxMonIcon(struct Sprite *sprite); -static void SetBoxSpeciesAndPersonalities(u8 boxId); -static void sub_80CB9D0(struct Sprite *sprite, u16 partyId); -static void sub_80CC370(u8 taskId); -static void sub_80CCB50(u8 boxId); -static s8 DetermineBoxScrollDirection(u8 boxId); -static void sub_80CCA3C(const void *tilemap, s8 direction, u8 arg2); -static s16 sub_80CD00C(const u8 *string); -static bool8 MonPlaceChange_Shift(void); -static bool8 MonPlaceChange_Move(void); -static bool8 MonPlaceChange_Place(void); -static bool8 sub_80CDEC4(void); -static bool8 sub_80CDEB4(void); -static void sub_80CD444(u8 cursorArea, u8 cursorPosition, u16 *x, u16 *y); -static void SetShiftedMonData(u8 boxId, u8 position); -static void SetMovedMonData(u8 boxId, u8 position); -static void SetPlacedMonData(u8 boxId, u8 position); -static void PurgeMonOrBoxMon(u8 boxId, u8 position); -static void SetCursorMonData(void *pokemon, u8 mode); -static bool32 AtLeastThreeUsableMons(void); +// Main tasks +static void EnterPokeStorage(u8); +static void Task_InitPokeStorage(u8); +static void Task_PlaceMon(u8); +static void Task_ChangeScreen(u8); +static void Task_ShowPokeStorage(u8); +static void Task_OnBPressed(u8); +static void Task_HandleBoxOptions(u8); +static void Task_OnSelectedMon(u8); +static void Task_OnCloseBoxPressed(u8); +static void Task_HidePartyPokemon(u8); +static void Task_DepositMenu(u8); +static void Task_MoveMon(u8); +static void Task_GiveMovingItemToMon(u8); +static void Task_SwitchSelectedItem(u8); +static void Task_TakeItemForMoving(u8); +static void Task_WithdrawMon(u8); +static void Task_ShiftMon(u8); +static void Task_ShowPartyPokemon(u8); +static void Task_ShowItemInfo(u8); +static void Task_GiveItemFromBag(u8); +static void Task_ItemToBag(u8); +static void Task_TakeItemForMoving(u8); +static void Task_ShowMarkMenu(u8); +static void Task_ShowMonSummary(u8); +static void Task_ReleaseMon(u8); +static void Task_ReshowPokeStorage(u8); +static void Task_PokeStorageMain(u8); +static void Task_JumpBox(u8); +static void Task_HandleWallpapers(u8); +static void Task_NameBox(u8); +static void Task_PrintCantStoreMail(u8); +static void Task_HandleMovingMonFromParty(u8); + +// Input handlers static u8 InBoxInput_Normal(void); static u8 InBoxInput_MovingMultiple(void); -static u8 InBoxInput_GrabbingMultiple(void); -static s8 sub_80CFF98(u8 arg0); -static u8 sub_80CFA5C(void); -static u8 sub_80D0BA4(void); -static bool8 sub_80CFA84(void); -static bool8 sub_80CFB44(void); -static bool8 sub_80D024C(void); -static bool8 sub_80D0344(void); -static bool8 sub_80D03B0(void); -static bool8 sub_80D0420(void); -static bool8 sub_80D04A0(void); -static bool8 sub_80D04C8(void); -static void sub_80D07B0(u8 arg0, u8 arg1); -static void sub_80D0834(u8 arg0, u8 arg1); -static void sub_80D0B5C(void); -static void sub_80D062C(void); -static void sub_80D0884(u16 arg0, u16 arg1, u16 arg2); -static void sub_80D08CC(void); -static void sub_80D09A4(void); -static void sub_80D0A1C(void); -static void sub_80D0AAC(void); -static u8 sub_80D0894(void); -static void sub_80D0778(u8 arg0, u8 arg1, u8 arg2); -static void sub_80D0708(u8 arg0, u8 arg1, u8 arg2); -static void sub_80D06D0(u8 arg0, u8 arg1, u8 arg2); -static void sub_80D0740(u8 arg0, u8 arg1, u8 arg2); -static void sub_80D27AC(u8 id, u16 arg1, u16 arg2, u16 arg3, u16 arg4); -static void sub_80D27F4(u8 id, u8 arg1, s8 arg2); -static void sub_80D2644(u8 id, u8 bg, const void *arg2, u16 arg3, u16 arg4); -static void sub_80D2770(u8 id, u16 arg1, u16 arg2); -static void sub_80D259C(u8 count); -static void sub_80D25F0(void); -static void sub_80D2918(u8 id); -static void sub_80D2960(u8 id); -static void sub_80D29F8(u8 id); -static void sub_80D2A90(struct UnkStruct_2000020 *arg0, struct UnkStruct_2000028 *arg1, u32 arg2); -static void sub_80D2AA4(void); -static void sub_80D2B88(struct UnkStruct_2000028 *unkStruct); -static void sub_80D2C1C(struct UnkStruct_2000028 *unkStruct); +static u8 InBoxInput_SelectingMultiple(void); +static u8 HandleInput(void); +static void AddBoxOptionsMenu(void); +static u8 SetSelectionMenuTexts(void); +static bool8 SetMenuTexts_Mon(void); +static bool8 SetMenuTexts_Item(void); -// static const rom data -static const struct PSS_MenuStringPtrs gUnknown_085716C0[] = +// Choose box menu +static void ChooseBoxMenu_CreateSprites(u8); +static void ChooseBoxMenu_DestroySprites(void); +static void ChooseBoxMenu_MoveLeft(void); +static void ChooseBoxMenu_MoveRight(void); +static void ChooseBoxMenu_PrintInfo(void); +static void SpriteCB_ChooseBoxArrow(struct Sprite *); + +// Options menus +static void InitMenu(void); +static void SetMenuText(u8); +static s8 GetMenuItemTextId(u8); +static void AddMenu(void); +static bool8 IsMenuLoading(void); +static s16 HandleMenuInput(void); +static void RemoveMenu(void); + +// Pokémon sprites +static void InitMonIconFields(void); +static void SpriteCB_BoxMonIconScrollOut(struct Sprite *); +static void GetIncomingBoxMonData(u8); +static void CreatePartyMonsSprites(bool8); +static void CompactPartySprites(void); +static u8 GetNumPartySpritesCompacting(void); +static void MovePartySpriteToNextSlot(struct Sprite *, u16); +static void SpriteCB_MovePartyMonToNextSlot(struct Sprite *); +static void MovePartySprites(s16); +static void DestroyAllPartyMonIcons(void); +static void ReshowReleaseMon(void); +static bool8 ResetReleaseMonSpritePtr(void); +static void SetMovingMonPriority(u8); +static void SpriteCB_HeldMon(struct Sprite *); +static struct Sprite *CreateMonIconSprite(u16, u32, s16, s16, u8, u8); +static void DestroyBoxMonIcon(struct Sprite *); + +// Pokémon data +static void MoveMon(void); +static void PlaceMon(void); +static void RefreshDisplayMon(void); +static void SetMovingMonData(u8, u8); +static void SetPlacedMonData(u8, u8); +static void PurgeMonOrBoxMon(u8, u8); +static void SetShiftedMonData(u8, u8); +static bool8 TryStorePartyMonInBox(u8); +static void ResetSelectionAfterDeposit(void); +static void InitReleaseMon(void); +static bool8 TryHideReleaseMon(void); +static void InitCanReleaseMonVars(void); +static void ReleaseMon(void); +static bool32 AtLeastThreeUsableMons(void); +static s8 RunCanReleaseMon(void); +static void SaveMovingMon(void); +static void LoadSavedMovingMon(void); +static void InitSummaryScreenData(void); +static void SetSelectionAfterSummaryScreen(void); +static void SetMonMarkings(u8); +static bool8 IsRemovingLastPartyMon(void); +static bool8 CanShiftMon(void); +static bool8 IsMonBeingMoved(void); +static void TryRefreshDisplayMon(void); +static void ReshowDisplayMon(void); +static void SetDisplayMonData(void *, u8); + +// Moving multiple Pokémon at once +static void MultiMove_Free(void); +static bool8 MultiMove_Init(void); +static bool8 MultiMove_RunFunction(void); +static bool8 MultiMove_TryMoveGroup(u8); +static bool8 MultiMove_CanPlaceSelection(void); +static void MultiMove_SetFunction(u8); +static u8 MultiMove_GetOrigin(void); +static bool8 MultiMove_Start(void); +static bool8 MultiMove_Cancel(void); +static bool8 MultiMove_ChangeSelection(void); +static bool8 MultiMove_GrabSelection(void); +static bool8 MultiMove_MoveMons(void); +static bool8 MultiMove_PlaceMons(void); +static void MultiMove_SetIconToBg(u8, u8); +static void MultiMove_ClearIconFromBg(u8, u8); +static void MultiMove_ResetBg(void); +static void MultiMove_UpdateSelectedIcons(void); +static void MultiMove_InitMove(u16, u16, u16); +static void MultiMove_GetMonsFromSelection(void); +static void MultiMove_RemoveMonsFromBox(void); +static void MultiMove_CreatePlacedMonIcons(void); +static void MultiMove_SetPlacedMonData(void); +static u8 MultiMove_UpdateMove(void); +static void MultiMove_DeselectRow(u8, u8, u8); +static void MultiMove_SelectRow(u8, u8, u8); +static void MultiMove_SelectColumn(u8, u8, u8); +static void MultiMove_DeselectColumn(u8, u8, u8); + +// Move Items mode +static bool32 IsItemIconAtPosition(u8, u8); +static const u32 *GetItemIconPic(u16); +static const u32 *GetItemIconPalette(u16); +static u8 GetNewItemIconIdx(void); +static void SetItemIconPosition(u8, u8, u8); +static void LoadItemIconGfx(u8, const u32 *, const u32 *); +static void SetItemIconAffineAnim(u8, u8); +static void SetItemIconActive(u8, bool8); +static u8 GetItemIconIdxByPosition(u8, u8); +static void CreateItemIconSprites(void); +static void TryLoadItemIconAtPos(u8, u8); +static void TryHideItemIconAtPos(u8, u8); +static void TakeItemFromMon(u8, u8); +static void InitItemIconInCursor(u16); +static void SwapItemsWithMon(u8, u8); +static void GiveItemToMon(u8, u8); +static void MoveItemFromMonToBag(u8, u8); +static void MoveItemFromCursorToBag(void); +static void MoveHeldItemWithPartyMenu(void); +static bool8 IsItemIconAnimActive(void); +static bool8 IsMovingItem(void); +static const u8 *GetMovingItemName(void); +static u16 GetMovingItemId(void); +static void PrintItemDescription(void); +static void InitItemInfoWindow(void); +static bool8 UpdateItemInfoWindowSlideIn(void); +static bool8 UpdateItemInfoWindowSlideOut(void); +static void DrawItemInfoWindow(u32); +static void SetItemIconCallback(u8, u8, u8, u8); +static void SpriteCB_ItemIcon_SetPosToCursor(struct Sprite *); +static void SpriteCB_ItemIcon_WaitAnim(struct Sprite *); +static void SpriteCB_ItemIcon_ToHand(struct Sprite *); +static void SpriteCB_ItemIcon_ToMon(struct Sprite *); +static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *); +static void SpriteCB_ItemIcon_HideParty(struct Sprite *); +static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *); + +// Cursor +static void CreateCursorSprites(void); +static void ToggleCursorAutoAction(void); +static u8 GetCursorPosition(void); +static void StartCursorAnim(u8); +static void TryHideItemAtCursor(void); +static void TryShowItemAtCursor(void); +static void InitCursor(void); +static void InitCursorOnReopen(void); +static void GetCursorCoordsByPos(u8, u8, u16 *, u16 *); +static bool8 UpdateCursorPos(void); +static void DoCursorNewPosUpdate(void); +static void SetCursorInParty(void); +static void SetCursorBoxPosition(u8); +static void ClearSavedCursorPos(void); +static void SaveCursorPos(void); +static u8 GetSavedCursorPos(void); +static void InitMonPlaceChange(u8); +static bool8 DoMonPlaceChange(void); +static bool8 MonPlaceChange_Shift(void); +static bool8 MonPlaceChange_Grab(void); +static bool8 MonPlaceChange_Place(void); +static bool8 MultiMonPlaceChange_Up(void); +static bool8 MultiMonPlaceChange_Down(void); +static bool8 MonPlaceChange_CursorDown(void); +static bool8 MonPlaceChange_CursorUp(void); +static void TrySetCursorFistAnim(void); +static bool8 IsCursorOnCloseBox(void); +static bool8 IsCursorOnBoxTitle(void); +static bool8 IsCursorInBox(void); + +// Scroll arrows +static void CreateBoxScrollArrows(void); +static void StartBoxScrollArrowsSlide(s8); +static void StopBoxScrollArrowsSlide(void); +static void AnimateBoxScrollArrows(bool8); +static void SpriteCB_Arrow(struct Sprite *); +static struct Sprite *CreateChooseBoxArrows(u16, u16, u8, u8, u8); + +// Box title +static void InitBoxTitle(u8); +static void CreateIncomingBoxTitle(u8, s8); +static void CycleBoxTitleSprites(void); +static void SpriteCB_IncomingBoxTitle(struct Sprite *); +static void SpriteCB_OutgoingBoxTitle(struct Sprite *); +static void CycleBoxTitleColor(void); +static s16 GetBoxTitleBaseX(const u8 *); + +// Wallpaper +static void SetWallpaperForCurrentBox(u8); +static bool8 DoWallpaperGfxChange(void); +static void LoadWallpaperGfx(u8, s8); +static bool32 WaitForWallpaperGfxLoad(void); +static void DrawWallpaper(const void *, s8, u8); +static void TrimOldWallpaper(void *); +static void AddWallpaperSetsMenu(void); +static void AddWallpapersMenu(u8); +static u8 GetBoxWallpaper(u8); +static void SetBoxWallpaper(u8, u8); + +// General box +static void CreateInitBoxTask(u8); +static bool8 IsInitBoxActive(void); +static void Task_InitBox(u8); +static void SetUpScrollToBox(u8); +static bool8 ScrollToBox(void); +static s8 DetermineBoxScrollDirection(u8); +static void SetCurrentBox(u8); + +// Misc +static void CreateMainMenu(u8, s16 *); +static u8 GetCurrentBoxOption(void); +static void ScrollBackground(void); +static void UpdateCloseBoxButtonFlash(void); +static void GiveChosenBagItem(void); +static void SetUpHidePartyMenu(void); +static void LoadPokeStorageMenuGfx(void); +static void LoadWaveformSpritePalette(void); +static void InitPokeStorageBg0(void); +static void SetScrollingBackground(void); +static void UpdateBoxToSendMons(void); +static void InitCursorItemIcon(void); +static void InitPalettesAndSprites(void); +static void RefreshDisplayMonData(void); +static void CreateDisplayMonSprite(void); +static void CreateMarkingComboSprite(void); +static void CreateWaveformSprites(void); +static void ClearBottomWindow(void); +static void InitSupplementalTilemaps(void); +static void PrintDisplayMonInfo(void); +static void UpdateWaveformAnimation(void); +static void SetPartySlotTilemaps(void); +static void StopFlashingCloseBoxButton(void); +static void FreePokeStorageData(void); +static void UpdatePartySlotColors(void); +static void StartFlashingCloseBoxButton(void); +static void SetUpDoShowPartyMenu(void); +static void StartDisplayMonMosaicEffect(void); +static bool8 InitPokeStorageWindows(void); +static bool8 DoShowPartyMenu(void); +static bool8 HidePartyMenu(void); +static bool8 IsDisplayMosaicActive(void); +static void ShowYesNoWindow(s8); +static void UpdateCloseBoxButtonTilemap(bool8); +static void PrintMessage(u8 id); +static void LoadDisplayMonGfx(u16, u32); +static void SpriteCB_DisplayMonMosaic(struct Sprite *); +static void SetPartySlotTilemap(u8, bool8); + +// Tilemap utility +static void TilemapUtil_SetRect(u8, u16, u16, u16, u16); +static void TilemapUtil_Move(u8, u8, s8); +static void TilemapUtil_SetMap(u8, u8, const void *, u16, u16); +static void TilemapUtil_SetPos(u8, u16, u16); +static void TilemapUtil_Init(u8); +static void TilemapUtil_Free(void); +static void TilemapUtil_Update(u8); +static void TilemapUtil_DrawPrev(u8); +static void TilemapUtil_Draw(u8); + +// Unknown utility +static void UnkUtil_Init(struct UnkUtil *, struct UnkUtilData *, u32); +static void UnkUtil_Run(void); +static void UnkUtil_CpuRun(struct UnkUtilData *); +static void UnkUtil_DmaRun(struct UnkUtilData *); + +struct { + const u8 *text; + const u8 *desc; +} static const sMainMenuTexts[OPTIONS_COUNT] = { - {gText_WithdrawPokemon, gText_WithdrawMonDescription}, - {gText_DepositPokemon, gText_DepositMonDescription}, - {gText_MovePokemon, gText_MoveMonDescription}, - {gText_MoveItems, gText_MoveItemsDescription}, - {gText_SeeYa, gText_SeeYaDescription} + [OPTION_WITHDRAW] = {gText_WithdrawPokemon, gText_WithdrawMonDescription}, + [OPTION_DEPOSIT] = {gText_DepositPokemon, gText_DepositMonDescription}, + [OPTION_MOVE_MONS] = {gText_MovePokemon, gText_MoveMonDescription}, + [OPTION_MOVE_ITEMS] = {gText_MoveItems, gText_MoveItemsDescription}, + [OPTION_EXIT] = {gText_SeeYa, gText_SeeYaDescription} }; -static const struct WindowTemplate gUnknown_085716E8 = +static const struct WindowTemplate sWindowTemplate_MainMenu = { .bg = 0, .tilemapLeft = 1, @@ -735,94 +893,96 @@ static const struct WindowTemplate gUnknown_085716E8 = .baseBlock = 0x1, }; -static const union AnimCmd sSpriteAnim_85716F0[] = +static const union AnimCmd sAnim_ChooseBoxMenu_TopLeft[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_85716F8[] = +static const union AnimCmd sAnim_ChooseBoxMenu_BottomLeft[] = { ANIMCMD_FRAME(4, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8571700[] = +static const union AnimCmd sAnim_ChooseBoxMenu_TopRight[] = { ANIMCMD_FRAME(6, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8571708[] = +static const union AnimCmd sAnim_ChooseBoxMenu_BottomRight[] = { ANIMCMD_FRAME(10, 5), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_8571710[] = +static const union AnimCmd *const sAnims_ChooseBoxMenu[] = { - sSpriteAnim_85716F0, - sSpriteAnim_85716F8, - sSpriteAnim_8571700, - sSpriteAnim_8571708 + sAnim_ChooseBoxMenu_TopLeft, + sAnim_ChooseBoxMenu_BottomLeft, + sAnim_ChooseBoxMenu_TopRight, + sAnim_ChooseBoxMenu_BottomRight }; -static const union AffineAnimCmd sSpriteAffineAnim_8571720[] = +static const union AffineAnimCmd sAffineAnim_ChooseBoxMenu[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_8571730[] = +// Unused +static const union AffineAnimCmd *const sAffineAnims_ChooseBoxMenu[] = { - sSpriteAffineAnim_8571720 + sAffineAnim_ChooseBoxMenu }; -static const u8 sBoxInfoTextColors[] = {TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5}; +static const u8 sChooseBoxMenu_TextColors[] = {TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5}; static const u8 sText_OutOf30[] = _("/30"); -static const u16 gBoxSelectionPopupPalette[] = INCBIN_U16("graphics/unknown/unknown_57173C.gbapal"); -static const u8 gBoxSelectionPopupCenterTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp"); -static const u8 gBoxSelectionPopupSidesTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp"); -static const u32 gPokemonStorageScrollingBGTileset[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.4bpp.lz"); -static const u32 gPokemonStorageScrollingBGTilemap[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.bin.lz"); -static const u32 gUnknown_08572280[] = INCBIN_U32("graphics/unknown/unknown_572280.gbapal"); -static const u32 gUnknown_085722A0[] = INCBIN_U32("graphics/unknown/unknown_5722A0.bin.lz"); +static const u16 sChooseBoxMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/box_selection_popup.gbapal"); +static const u8 sChooseBoxMenuCenter_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp"); +static const u8 sChooseBoxMenuSides_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp"); +static const u32 sScrollingBg_Gfx[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.4bpp.lz"); +static const u32 sScrollingBg_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.bin.lz"); +static const u16 sDisplayMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/display_menu.gbapal"); // Unused +static const u32 sDisplayMenu_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/display_menu.bin.lz"); -static const u16 gUnknown_0857239C[] = +static const u16 sPkmnData_Tilemap[] = { 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x0108, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116, 0x0117, 0x0118, 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107, 0x2108, 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117, 0x2118, }; -static const u16 gUnknown_085723DC[] = INCBIN_U16("graphics/unknown/unknown_5723DC.gbapal"); // Left-most part and Close Box. -static const u16 gUnknown_085723FC[] = INCBIN_U16("graphics/unknown/unknown_5723FC.gbapal"); -static const u16 gUnknown_0857241C[] = INCBIN_U16("graphics/unknown/unknown_57241C.gbapal"); -static const u16 gUnknown_0857243C[] = INCBIN_U16("graphics/unknown/unknown_57243C.gbapal"); +// sInterface_Pal - parts of the display frame, "PkmnData"'s normal color, Close Box +static const u16 sInterface_Pal[] = INCBIN_U16("graphics/pokemon_storage/interface.gbapal"); +static const u16 sPkmnDataGray_Pal[] = INCBIN_U16("graphics/pokemon_storage/pkmn_data_gray.gbapal"); +static const u16 sBg_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg.gbapal"); +static const u16 sBgMoveItems_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg_move_items.gbapal"); -static const u16 gUnknown_0857245C[] = +static const u16 sCloseBoxButton_Tilemap[] = { 0x014c, 0x014d, 0x014e, 0x014f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x015c, 0x015d, 0x015e, 0x015f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d }; -static const u16 gUnknown_085724A4[] = +static const u16 sPartySlotFilled_Tilemap[] = { 0x1140, 0x1141, 0x1141, 0x1142, 0x1150, 0x1151, 0x1151, 0x1152, 0x1160, 0x1161, 0x1161, 0x1162, }; -static const u16 gUnknown_085724BC[] = +static const u16 sPartySlotEmpty_Tilemap[] = { 0x1143, 0x1144, 0x1144, 0x1145, 0x1153, 0x1154, 0x1154, 0x1155, 0x1163, 0x1164, 0x1164, 0x1165, }; -static const u16 gWaveformPalette[] = INCBIN_U16("graphics/pokemon_storage/waveform.gbapal"); -static const u32 gWaveformTiles[] = INCBIN_U32("graphics/pokemon_storage/waveform.4bpp"); -static const u32 gUnknown_085726B4[] = INCBIN_U32("graphics/unused/unknown_5726B4.gbapal"); -static const u32 gUnknown_085726F4[] = INCBIN_U32("graphics/unknown/unknown_5726F4.gbapal"); +static const u16 sWaveform_Pal[] = INCBIN_U16("graphics/pokemon_storage/waveform.gbapal"); +static const u32 sWaveform_Gfx[] = INCBIN_U32("graphics/pokemon_storage/waveform.4bpp"); +static const u16 sUnused_Pal[] = INCBIN_U16("graphics/pokemon_storage/unused.gbapal"); +static const u16 sUnknown_Pal[] = INCBIN_U16("graphics/pokemon_storage/unknown.gbapal"); -static const struct WindowTemplate gUnknown_08572714[] = +static const struct WindowTemplate sWindowTemplates[] = { - { // 0 + { .bg = 1, .tilemapLeft = 0, .tilemapTop = 11, @@ -831,7 +991,7 @@ static const struct WindowTemplate gUnknown_08572714[] = .paletteNum = 3, .baseBlock = 0xC0, }, - { // 1 + { .bg = 0, .tilemapLeft = 11, .tilemapTop = 17, @@ -840,7 +1000,7 @@ static const struct WindowTemplate gUnknown_08572714[] = .paletteNum = 15, .baseBlock = 0x14, }, - { // 2 + { .bg = 0, .tilemapLeft = 0, .tilemapTop = 13, @@ -852,7 +1012,7 @@ static const struct WindowTemplate gUnknown_08572714[] = DUMMY_WIN_TEMPLATE }; -static const struct BgTemplate gUnknown_08572734[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -894,59 +1054,59 @@ static const struct BgTemplate gUnknown_08572734[] = static const struct SpritePalette gWaveformSpritePalette = { - gWaveformPalette, TAG_PAL_WAVEFORM + sWaveform_Pal, PALTAG_MISC_2 }; -static const struct SpriteSheet gWaveformSpriteSheet = +static const struct SpriteSheet sSpriteSheet_Waveform = { - gWaveformTiles, sizeof(gWaveformTiles), TAG_TILE_WAVEFORM + sWaveform_Gfx, sizeof(sWaveform_Gfx), GFXTAG_WAVEFORM }; -static const struct OamData sOamData_857286C; -static const struct SpriteTemplate sSpriteTemplate_CursorMon = +static const struct OamData sOamData_DisplayMon; +static const struct SpriteTemplate sSpriteTemplate_DisplayMon = { - .tileTag = TAG_TILE_2, - .paletteTag = TAG_PAL_DAC6, - .oam = &sOamData_857286C, + .tileTag = GFXTAG_DISPLAY_MON, + .paletteTag = PALTAG_DISPLAY_MON, + .oam = &sOamData_DisplayMon, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct StorageAction gPCStorageActionTexts[] = +static const struct StorageMessage sMessages[] = { - [PC_TEXT_EXIT_BOX] = {gText_ExitFromBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WHAT_YOU_DO] = {gText_WhatDoYouWantToDo, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PICK_A_THEME] = {gText_PleasePickATheme, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PICK_A_WALLPAPER] = {gText_PickTheWallpaper, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_IS_SELECTED] = {gText_PkmnIsSelected, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_JUMP_TO_WHICH_BOX] = {gText_JumpToWhichBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_DEPOSIT_IN_WHICH_BOX] = {gText_DepositInWhichBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WAS_DEPOSITED] = {gText_PkmnWasDeposited, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_BOX_IS_FULL] = {gText_BoxIsFull2, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_RELEASE_POKE] = {gText_ReleaseThisPokemon, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WAS_RELEASED] = {gText_PkmnWasReleased, PC_TEXT_FMT_MON_NAME_4}, - [PC_TEXT_BYE_BYE] = {gText_ByeByePkmn, PC_TEXT_FMT_MON_NAME_6}, - [PC_TEXT_MARK_POKE] = {gText_MarkYourPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_LAST_POKE] = {gText_ThatsYourLastPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PARTY_FULL] = {gText_YourPartysFull, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_HOLDING_POKE] = {gText_YoureHoldingAPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WHICH_ONE_WILL_TAKE] = {gText_WhichOneWillYouTake, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CANT_RELEASE_EGG] = {gText_YouCantReleaseAnEgg, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CONTINUE_BOX] = {gText_ContinueBoxOperations, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CAME_BACK] = {gText_PkmnCameBack, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_WORRIED] = {gText_WasItWorriedAboutYou, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_SURPRISE] = {gText_FourEllipsesExclamation, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PLEASE_REMOVE_MAIL] = {gText_PleaseRemoveTheMail, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_IS_SELECTED2] = {gText_PkmnIsSelected, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_GIVE_TO_MON] = {gText_GiveToAPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PLACED_IN_BAG] = {gText_PlacedItemInBag, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_BAG_FULL] = {gText_BagIsFull2, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PUT_IN_BAG] = {gText_PutItemInBag, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_ITEM_IS_HELD] = {gText_ItemIsNowHeld, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_CHANGED_TO_ITEM] = {gText_ChangedToNewItem, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_CANT_STORE_MAIL] = {gText_MailCantBeStored, PC_TEXT_FMT_NORMAL}, + [MSG_EXIT_BOX] = {gText_ExitFromBox, MSG_VAR_NONE}, + [MSG_WHAT_YOU_DO] = {gText_WhatDoYouWantToDo, MSG_VAR_NONE}, + [MSG_PICK_A_THEME] = {gText_PleasePickATheme, MSG_VAR_NONE}, + [MSG_PICK_A_WALLPAPER] = {gText_PickTheWallpaper, MSG_VAR_NONE}, + [MSG_IS_SELECTED] = {gText_PkmnIsSelected, MSG_VAR_MON_NAME_1}, + [MSG_JUMP_TO_WHICH_BOX] = {gText_JumpToWhichBox, MSG_VAR_NONE}, + [MSG_DEPOSIT_IN_WHICH_BOX] = {gText_DepositInWhichBox, MSG_VAR_NONE}, + [MSG_WAS_DEPOSITED] = {gText_PkmnWasDeposited, MSG_VAR_MON_NAME_1}, + [MSG_BOX_IS_FULL] = {gText_BoxIsFull2, MSG_VAR_NONE}, + [MSG_RELEASE_POKE] = {gText_ReleaseThisPokemon, MSG_VAR_NONE}, + [MSG_WAS_RELEASED] = {gText_PkmnWasReleased, MSG_VAR_RELEASE_MON_1}, + [MSG_BYE_BYE] = {gText_ByeByePkmn, MSG_VAR_RELEASE_MON_3}, + [MSG_MARK_POKE] = {gText_MarkYourPkmn, MSG_VAR_NONE}, + [MSG_LAST_POKE] = {gText_ThatsYourLastPkmn, MSG_VAR_NONE}, + [MSG_PARTY_FULL] = {gText_YourPartysFull, MSG_VAR_NONE}, + [MSG_HOLDING_POKE] = {gText_YoureHoldingAPkmn, MSG_VAR_NONE}, + [MSG_WHICH_ONE_WILL_TAKE] = {gText_WhichOneWillYouTake, MSG_VAR_NONE}, + [MSG_CANT_RELEASE_EGG] = {gText_YouCantReleaseAnEgg, MSG_VAR_NONE}, + [MSG_CONTINUE_BOX] = {gText_ContinueBoxOperations, MSG_VAR_NONE}, + [MSG_CAME_BACK] = {gText_PkmnCameBack, MSG_VAR_MON_NAME_1}, + [MSG_WORRIED] = {gText_WasItWorriedAboutYou, MSG_VAR_NONE}, + [MSG_SURPRISE] = {gText_FourEllipsesExclamation, MSG_VAR_NONE}, + [MSG_PLEASE_REMOVE_MAIL] = {gText_PleaseRemoveTheMail, MSG_VAR_NONE}, + [MSG_IS_SELECTED2] = {gText_PkmnIsSelected, MSG_VAR_ITEM_NAME}, + [MSG_GIVE_TO_MON] = {gText_GiveToAPkmn, MSG_VAR_NONE}, + [MSG_PLACED_IN_BAG] = {gText_PlacedItemInBag, MSG_VAR_ITEM_NAME}, + [MSG_BAG_FULL] = {gText_BagIsFull2, MSG_VAR_NONE}, + [MSG_PUT_IN_BAG] = {gText_PutItemInBag, MSG_VAR_NONE}, + [MSG_ITEM_IS_HELD] = {gText_ItemIsNowHeld, MSG_VAR_ITEM_NAME}, + [MSG_CHANGED_TO_ITEM] = {gText_ChangedToNewItem, MSG_VAR_ITEM_NAME}, + [MSG_CANT_STORE_MAIL] = {gText_MailCantBeStored, MSG_VAR_NONE}, }; static const struct WindowTemplate sYesNoWindowTemplate = @@ -960,7 +1120,7 @@ static const struct WindowTemplate sYesNoWindowTemplate = .baseBlock = 0x5C, }; -static const struct OamData sOamData_857286C = +static const struct OamData sOamData_DisplayMon = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -977,7 +1137,7 @@ static const struct OamData sOamData_857286C = .affineParam = 0 }; -static const struct OamData sOamData_8572874 = +static const struct OamData sOamData_Waveform = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -994,13 +1154,13 @@ static const struct OamData sOamData_8572874 = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_857287C[] = +static const union AnimCmd sAnim_Waveform_LeftOff[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8572884[] = +static const union AnimCmd sAnim_Waveform_LeftOn[] = { ANIMCMD_FRAME(2, 8), ANIMCMD_FRAME(4, 8), @@ -1008,13 +1168,13 @@ static const union AnimCmd sSpriteAnim_8572884[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd sSpriteAnim_8572894[] = +static const union AnimCmd sAnim_Waveform_RightOff[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_857289C[] = +static const union AnimCmd sAnim_Waveform_RightOn[] = { ANIMCMD_FRAME(10, 8), ANIMCMD_FRAME(4, 8), @@ -1022,38 +1182,38 @@ static const union AnimCmd sSpriteAnim_857289C[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_85728AC[] = +static const union AnimCmd *const sAnims_Waveform[] = { - sSpriteAnim_857287C, - sSpriteAnim_8572884, - sSpriteAnim_8572894, - sSpriteAnim_857289C + sAnim_Waveform_LeftOff, + sAnim_Waveform_LeftOn, + sAnim_Waveform_RightOff, + sAnim_Waveform_RightOn }; static const struct SpriteTemplate sSpriteTemplate_Waveform = { - .tileTag = TAG_TILE_WAVEFORM, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &sOamData_8572874, - .anims = sSpriteAnimTable_85728AC, + .tileTag = GFXTAG_WAVEFORM, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_Waveform, + .anims = sAnims_Waveform, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct OamData sOamData_85728EC; -static const struct SpriteTemplate gUnknown_085728D4 = +static const struct OamData sOamData_MonIcon; +static const struct SpriteTemplate sSpriteTemplate_MonIcon = { - .tileTag = TAG_TILE_12, - .paletteTag = TAG_PAL_DAC0, - .oam = &sOamData_85728EC, + .tileTag = GFXTAG_MON_ICON, + .paletteTag = PALTAG_MON_ICON_0, + .oam = &sOamData_MonIcon, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const struct OamData sOamData_85728EC = +static const struct OamData sOamData_MonIcon = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1070,476 +1230,113 @@ static const struct OamData sOamData_85728EC = .affineParam = 0 }; -static const union AffineAnimCmd gSpriteAffineAnim_85728F4[] = +static const union AffineAnimCmd sAffineAnim_ReleaseMon_Release[] = { AFFINEANIMCMD_FRAME(-2, -2, 0, 120), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8572904[] = +static const union AffineAnimCmd sAffineAnim_ReleaseMon_CameBack[] = { AFFINEANIMCMD_FRAME(16, 16, 0, 0), AFFINEANIMCMD_FRAME(16, 16, 0, 15), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_857291C[] = +static const union AffineAnimCmd *const sAffineAnims_ReleaseMon[] = { - gSpriteAffineAnim_85728F4, - gSpriteAffineAnim_8572904 + [RELEASE_ANIM_RELEASE] = sAffineAnim_ReleaseMon_Release, + [RELEASE_ANIM_CAME_BACK] = sAffineAnim_ReleaseMon_CameBack }; -static const u16 gWallpaperPalettes_Forest[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/forest_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/forest_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Forest[] = INCBIN_U32("graphics/pokemon_storage/forest.4bpp.lz"); -static const u32 gWallpaperTilemap_Forest[] = INCBIN_U32("graphics/pokemon_storage/forest.bin.lz"); +#include "data/wallpapers.h" -static const u16 gWallpaperPalettes_City[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/city_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/city_bg.gbapal"), -}; -static const u32 gWallpaperTiles_City[] = INCBIN_U32("graphics/pokemon_storage/city.4bpp.lz"); -static const u32 gWallpaperTilemap_City[] = INCBIN_U32("graphics/pokemon_storage/city.bin.lz"); +static const u16 sUnusedColor = RGB(26, 29, 8); -static const u16 gWallpaperPalettes_Desert[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/desert_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/desert_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Desert[] = INCBIN_U32("graphics/pokemon_storage/desert.4bpp.lz"); -static const u32 gWallpaperTilemap_Desert[] = INCBIN_U32("graphics/pokemon_storage/desert.bin.lz"); +static const struct SpriteSheet sSpriteSheet_Arrow = {sArrow_Gfx, 0x80, GFXTAG_ARROW}; -static const u16 gWallpaperPalettes_Savanna[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/savanna_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/savanna_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Savanna[] = INCBIN_U32("graphics/pokemon_storage/savanna.4bpp.lz"); -static const u32 gWallpaperTilemap_Savanna[] = INCBIN_U32("graphics/pokemon_storage/savanna.bin.lz"); - -static const u16 gWallpaperPalettes_Crag[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/crag_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/crag_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Crag[] = INCBIN_U32("graphics/pokemon_storage/crag.4bpp.lz"); -static const u32 gWallpaperTilemap_Crag[] = INCBIN_U32("graphics/pokemon_storage/crag.bin.lz"); - -static const u16 gWallpaperPalettes_Volcano[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/volcano_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/volcano_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Volcano[] = INCBIN_U32("graphics/pokemon_storage/volcano.4bpp.lz"); -static const u32 gWallpaperTilemap_Volcano[] = INCBIN_U32("graphics/pokemon_storage/volcano.bin.lz"); - -static const u16 gWallpaperPalettes_Snow[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/snow_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/snow_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Snow[] = INCBIN_U32("graphics/pokemon_storage/snow.4bpp.lz"); -static const u32 gWallpaperTilemap_Snow[] = INCBIN_U32("graphics/pokemon_storage/snow.bin.lz"); - -static const u16 gWallpaperPalettes_Cave[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/cave_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/cave_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Cave[] = INCBIN_U32("graphics/pokemon_storage/cave.4bpp.lz"); -static const u32 gWallpaperTilemap_Cave[] = INCBIN_U32("graphics/pokemon_storage/cave.bin.lz"); - -static const u16 gWallpaperPalettes_Beach[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/beach_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/beach_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Beach[] = INCBIN_U32("graphics/pokemon_storage/beach.4bpp.lz"); -static const u32 gWallpaperTilemap_Beach[] = INCBIN_U32("graphics/pokemon_storage/beach.bin.lz"); - -static const u16 gWallpaperPalettes_Seafloor[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/seafloor_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/seafloor_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Seafloor[] = INCBIN_U32("graphics/pokemon_storage/seafloor.4bpp.lz"); -static const u32 gWallpaperTilemap_Seafloor[] = INCBIN_U32("graphics/pokemon_storage/seafloor.bin.lz"); - -static const u16 gWallpaperPalettes_River[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/river_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/river_bg.gbapal"), -}; -static const u32 gWallpaperTiles_River[] = INCBIN_U32("graphics/pokemon_storage/river.4bpp.lz"); -static const u32 gWallpaperTilemap_River[] = INCBIN_U32("graphics/pokemon_storage/river.bin.lz"); -static const u16 gWallpaperPalettes_Sky[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/sky_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/sky_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Sky[] = INCBIN_U32("graphics/pokemon_storage/sky.4bpp.lz"); -static const u32 gWallpaperTilemap_Sky[] = INCBIN_U32("graphics/pokemon_storage/sky.bin.lz"); - -static const u16 gWallpaperPalettes_PolkaDot[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/polkadot_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/polkadot_bg.gbapal"), -}; -static const u32 gWallpaperTiles_PolkaDot[] = INCBIN_U32("graphics/pokemon_storage/polkadot.4bpp.lz"); -static const u32 gWallpaperTilemap_PolkaDot[] = INCBIN_U32("graphics/pokemon_storage/polkadot.bin.lz"); - -static const u16 gWallpaperPalettes_Pokecenter[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/pokecenter_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/pokecenter_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Pokecenter[] = INCBIN_U32("graphics/pokemon_storage/pokecenter.4bpp.lz"); -static const u32 gWallpaperTilemap_Pokecenter[] = INCBIN_U32("graphics/pokemon_storage/pokecenter.bin.lz"); - -static const u16 gWallpaperPalettes_Machine[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/machine_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/machine_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Machine[] = INCBIN_U32("graphics/pokemon_storage/machine.4bpp.lz"); -static const u32 gWallpaperTilemap_Machine[] = INCBIN_U32("graphics/pokemon_storage/machine.bin.lz"); - -static const u16 gWallpaperPalettes_Plain[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/plain_frame.gbapal"), - INCBIN_U16("graphics/pokemon_storage/plain_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.4bpp.lz"); -static const u32 gWallpaperTilemap_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.bin.lz"); - -// 12x18 tilemap -static const u32 gUnknown_085773C4[] = INCBIN_U32("graphics/unused/tilemap_5773C4.bin"); - -static const u16 gUnknown_08577574[][2] = -{ - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF}, - {0x1CE7, 0x7FFF} -}; - -#define WALLPAPER_ENTRY(name) {gWallpaperTiles_##name, gWallpaperTilemap_##name, gWallpaperPalettes_##name[0]} - -static const struct WallpaperTable gWallpaperTable[] = -{ - [WALLPAPER_FOREST] = WALLPAPER_ENTRY(Forest), - [WALLPAPER_CITY] = WALLPAPER_ENTRY(City), - [WALLPAPER_DESERT] = WALLPAPER_ENTRY(Desert), - [WALLPAPER_SAVANNA] = WALLPAPER_ENTRY(Savanna), - [WALLPAPER_CRAG] = WALLPAPER_ENTRY(Crag), - [WALLPAPER_VOLCANO] = WALLPAPER_ENTRY(Volcano), - [WALLPAPER_SNOW] = WALLPAPER_ENTRY(Snow), - [WALLPAPER_CAVE] = WALLPAPER_ENTRY(Cave), - [WALLPAPER_BEACH] = WALLPAPER_ENTRY(Beach), - [WALLPAPER_SEAFLOOR] = WALLPAPER_ENTRY(Seafloor), - [WALLPAPER_RIVER] = WALLPAPER_ENTRY(River), - [WALLPAPER_SKY] = WALLPAPER_ENTRY(Sky), - [WALLPAPER_POLKADOT] = WALLPAPER_ENTRY(PolkaDot), - [WALLPAPER_POKECENTER] = WALLPAPER_ENTRY(Pokecenter), - [WALLPAPER_MACHINE] = WALLPAPER_ENTRY(Machine), - [WALLPAPER_PLAIN] = WALLPAPER_ENTRY(Plain), -}; - -static const u8 gPCGfx_Arrow[] = INCBIN_U8("graphics/pokemon_storage/arrow.4bpp"); - -static const u16 gWallpaperPalettes_Zigzagoon[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame1.gbapal"), - INCBIN_U16("graphics/pokemon_storage/zigzagoon_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Zigzagoon[] = INCBIN_U32("graphics/pokemon_storage/zigzagoon.4bpp.lz"); -static const u32 gWallpaperTilemap_Zigzagoon[] = INCBIN_U32("graphics/pokemon_storage/zigzagoon.bin.lz"); - -static const u16 gWallpaperPalettes_Screen[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame1.gbapal"), - INCBIN_U16("graphics/pokemon_storage/screen_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Screen[] = INCBIN_U32("graphics/pokemon_storage/screen.4bpp.lz"); -static const u32 gWallpaperTilemap_Screen[] = INCBIN_U32("graphics/pokemon_storage/screen.bin.lz"); - -static const u16 gWallpaperPalettes_Diagonal[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame1.gbapal"), - INCBIN_U16("graphics/pokemon_storage/diagonal_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Diagonal[] = INCBIN_U32("graphics/pokemon_storage/diagonal.4bpp.lz"); -static const u32 gWallpaperTilemap_Diagonal[] = INCBIN_U32("graphics/pokemon_storage/diagonal.bin.lz"); - -static const u16 gWallpaperPalettes_Block[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/block_bg.gbapal"), - INCBIN_U16("graphics/pokemon_storage/block_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Block[] = INCBIN_U32("graphics/pokemon_storage/block.4bpp.lz"); -static const u32 gWallpaperTilemap_Block[] = INCBIN_U32("graphics/pokemon_storage/block.bin.lz"); - -static const u16 gWallpaperPalettes_Pokecenter2[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/pokecenter2_bg.gbapal"), - INCBIN_U16("graphics/pokemon_storage/pokecenter2_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Pokecenter2[] = INCBIN_U32("graphics/pokemon_storage/pokecenter2.4bpp.lz"); -static const u32 gWallpaperTilemap_Pokecenter2[] = INCBIN_U32("graphics/pokemon_storage/pokecenter2.bin.lz"); - -static const u16 gWallpaperPalettes_Frame[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/frame_bg.gbapal"), - INCBIN_U16("graphics/pokemon_storage/frame_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Frame[] = INCBIN_U32("graphics/pokemon_storage/frame.4bpp.lz"); -static const u32 gWallpaperTilemap_Frame[] = INCBIN_U32("graphics/pokemon_storage/frame.bin.lz"); - -static const u16 gWallpaperPalettes_Blank[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame1.gbapal"), - INCBIN_U16("graphics/pokemon_storage/zigzagoon_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Blank[] = INCBIN_U32("graphics/pokemon_storage/blank.4bpp.lz"); -static const u32 gWallpaperTilemap_Blank[] = INCBIN_U32("graphics/pokemon_storage/blank.bin.lz"); - -static const u16 gWallpaperPalettes_Circles[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), - INCBIN_U16("graphics/pokemon_storage/circles_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Circles[] = INCBIN_U32("graphics/pokemon_storage/circles.4bpp.lz"); -static const u32 gWallpaperTilemap_Circles[] = INCBIN_U32("graphics/pokemon_storage/circles.bin.lz"); - -static const u16 gWallpaperPalettes_Azumarill[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), - INCBIN_U16("graphics/pokemon_storage/azumarill_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Azumarill[] = INCBIN_U32("graphics/pokemon_storage/azumarill.4bpp.lz"); -static const u32 gWallpaperTilemap_Azumarill[] = INCBIN_U32("graphics/pokemon_storage/azumarill.bin.lz"); - -static const u16 gWallpaperPalettes_Pikachu[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), - INCBIN_U16("graphics/pokemon_storage/pikachu_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Pikachu[] = INCBIN_U32("graphics/pokemon_storage/pikachu.4bpp.lz"); -static const u32 gWallpaperTilemap_Pikachu[] = INCBIN_U32("graphics/pokemon_storage/pikachu.bin.lz"); - -static const u16 gWallpaperPalettes_Legendary[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), - INCBIN_U16("graphics/pokemon_storage/legendary_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Legendary[] = INCBIN_U32("graphics/pokemon_storage/legendary.4bpp.lz"); -static const u32 gWallpaperTilemap_Legendary[] = INCBIN_U32("graphics/pokemon_storage/legendary.bin.lz"); - -static const u16 gWallpaperPalettes_Dusclops[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), - INCBIN_U16("graphics/pokemon_storage/dusclops_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Dusclops[] = INCBIN_U32("graphics/pokemon_storage/dusclops.4bpp.lz"); -static const u32 gWallpaperTilemap_Dusclops[] = INCBIN_U32("graphics/pokemon_storage/dusclops.bin.lz"); - -static const u16 gWallpaperPalettes_Ludicolo[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), - INCBIN_U16("graphics/pokemon_storage/ludicolo_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Ludicolo[] = INCBIN_U32("graphics/pokemon_storage/ludicolo.4bpp.lz"); -static const u32 gWallpaperTilemap_Ludicolo[] = INCBIN_U32("graphics/pokemon_storage/ludicolo.bin.lz"); - -static const u16 gWallpaperPalettes_Whiscash[][16] = -{ - INCBIN_U16("graphics/pokemon_storage/friends_frame2.gbapal"), - INCBIN_U16("graphics/pokemon_storage/whiscash_bg.gbapal"), -}; -static const u32 gWallpaperTiles_Whiscash[] = INCBIN_U32("graphics/pokemon_storage/whiscash.4bpp.lz"); -static const u32 gWallpaperTilemap_Whiscash[] = INCBIN_U32("graphics/pokemon_storage/whiscash.bin.lz"); - -static const u32 gWallpaperIcon_Aqua[] = INCBIN_U32("graphics/pokemon_storage/aqua_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Heart[] = INCBIN_U32("graphics/pokemon_storage/heart_icon.4bpp.lz"); -static const u32 gWallpaperIcon_FiveStar[] = INCBIN_U32("graphics/pokemon_storage/five_star_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Brick[] = INCBIN_U32("graphics/pokemon_storage/brick_icon.4bpp.lz"); -static const u32 gWallpaperIcon_FourStar[] = INCBIN_U32("graphics/pokemon_storage/four_star_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Asterisk[] = INCBIN_U32("graphics/pokemon_storage/asterisk_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Dot[] = INCBIN_U32("graphics/pokemon_storage/dot_icon.4bpp.lz"); -static const u32 gWallpaperIcon_LineCircle[] = INCBIN_U32("graphics/pokemon_storage/line_circle_icon.4bpp.lz"); -static const u32 gWallpaperIcon_PokeBall[] = INCBIN_U32("graphics/pokemon_storage/pokeball_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Maze[] = INCBIN_U32("graphics/pokemon_storage/maze_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Footprint[] = INCBIN_U32("graphics/pokemon_storage/footprint_icon.4bpp.lz"); -static const u32 gWallpaperIcon_BigAsterisk[] = INCBIN_U32("graphics/pokemon_storage/big_asterisk_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Circle[] = INCBIN_U32("graphics/pokemon_storage/circle_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Koffing[] = INCBIN_U32("graphics/pokemon_storage/koffing_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Ribbon[] = INCBIN_U32("graphics/pokemon_storage/ribbon_icon.4bpp.lz"); -static const u32 gWallpaperIcon_FourCircles[] = INCBIN_U32("graphics/pokemon_storage/four_circles_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Lotad[] = INCBIN_U32("graphics/pokemon_storage/lotad_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Crystal[] = INCBIN_U32("graphics/pokemon_storage/crystal_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Pichu[] = INCBIN_U32("graphics/pokemon_storage/pichu_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Diglett[] = INCBIN_U32("graphics/pokemon_storage/diglett_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Luvdisc[] = INCBIN_U32("graphics/pokemon_storage/luvdisc_icon.4bpp.lz"); -static const u32 gWallpaperIcon_StarInCircle[] = INCBIN_U32("graphics/pokemon_storage/star_in_circle_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Spinda[] = INCBIN_U32("graphics/pokemon_storage/spinda_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Latis[] = INCBIN_U32("graphics/pokemon_storage/latis_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Minun[] = INCBIN_U32("graphics/pokemon_storage/minun_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Togepi[] = INCBIN_U32("graphics/pokemon_storage/togepi_icon.4bpp.lz"); -static const u32 gWallpaperIcon_Magma[] = INCBIN_U32("graphics/pokemon_storage/magma_icon.4bpp.lz"); - -static const struct WallpaperTable gFriendsWallpaperTable[] = -{ - WALLPAPER_ENTRY(Zigzagoon), - WALLPAPER_ENTRY(Screen), - WALLPAPER_ENTRY(Horizontal), - WALLPAPER_ENTRY(Diagonal), - WALLPAPER_ENTRY(Block), - WALLPAPER_ENTRY(Ribbon), - WALLPAPER_ENTRY(Pokecenter2), - WALLPAPER_ENTRY(Frame), - WALLPAPER_ENTRY(Blank), - WALLPAPER_ENTRY(Circles), - WALLPAPER_ENTRY(Azumarill), - WALLPAPER_ENTRY(Pikachu), - WALLPAPER_ENTRY(Legendary), - WALLPAPER_ENTRY(Dusclops), - WALLPAPER_ENTRY(Ludicolo), - WALLPAPER_ENTRY(Whiscash), -}; - -static const u32 *const gFriendsIcons[] = -{ - gWallpaperIcon_Aqua, - gWallpaperIcon_Heart, - gWallpaperIcon_FiveStar, - gWallpaperIcon_Brick, - gWallpaperIcon_FourStar, - gWallpaperIcon_Asterisk, - gWallpaperIcon_Dot, - gWallpaperIcon_Cross, - gWallpaperIcon_LineCircle, - gWallpaperIcon_PokeBall, - gWallpaperIcon_Maze, - gWallpaperIcon_Footprint, - gWallpaperIcon_BigAsterisk, - gWallpaperIcon_Circle, - gWallpaperIcon_Koffing, - gWallpaperIcon_Ribbon, - gWallpaperIcon_Bolt, - gWallpaperIcon_FourCircles, - gWallpaperIcon_Lotad, - gWallpaperIcon_Crystal, - gWallpaperIcon_Pichu, - gWallpaperIcon_Diglett, - gWallpaperIcon_Luvdisc, - gWallpaperIcon_StarInCircle, - gWallpaperIcon_Spinda, - gWallpaperIcon_Latis, - gWallpaperIcon_Plusle, - gWallpaperIcon_Minun, - gWallpaperIcon_Togepi, - gWallpaperIcon_Magma, -}; - -// Unknown Unused data. -static const u16 gUnknown_0857B07C = 0x23BA; - -static const struct SpriteSheet gUnknown_0857B080 = {gPCGfx_Arrow, 0x80, 6}; - -static const struct OamData gOamData_83BB298 = +static const struct OamData sOamData_BoxTitle = { .shape = SPRITE_SHAPE(32x16), .size = SPRITE_SIZE(32x16), .priority = 2 }; -static const union AnimCmd gSpriteAnim_83BB2A0[] = +static const union AnimCmd sAnim_BoxTitle_Left[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_83BB2A8[] = +static const union AnimCmd sAnim_BoxTitle_Right[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_83BB2B0[] = +static const union AnimCmd *const sAnims_BoxTitle[] = { - gSpriteAnim_83BB2A0, - gSpriteAnim_83BB2A8 + sAnim_BoxTitle_Left, + sAnim_BoxTitle_Right }; -static const struct SpriteTemplate gSpriteTemplate_857B0A8 = +static const struct SpriteTemplate sSpriteTemplate_BoxTitle = { - TAG_TILE_3, - TAG_PAL_DAC9, - &gOamData_83BB298, - gSpriteAnimTable_83BB2B0, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy + .tileTag = GFXTAG_BOX_TITLE, + .paletteTag = PALTAG_BOX_TITLE, + .oam = &sOamData_BoxTitle, + .anims = sAnims_BoxTitle, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_83BB2D0 = +static const struct OamData sOamData_Arrow = { .shape = SPRITE_SHAPE(8x16), .size = SPRITE_SIZE(8x16), .priority = 2 }; -static const union AnimCmd gSpriteAnim_83BB2D8[] = +static const union AnimCmd sAnim_Arrow_Left[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_83BB2E0[] = +static const union AnimCmd sAnim_Arrow_Right[] = { ANIMCMD_FRAME(2, 5), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_83BB2E8[] = +static const union AnimCmd *const sAnims_Arrow[] = { - gSpriteAnim_83BB2D8, - gSpriteAnim_83BB2E0 + sAnim_Arrow_Left, + sAnim_Arrow_Right }; -static const struct SpriteTemplate gUnknown_0857B0E0 = +static const struct SpriteTemplate sSpriteTemplate_Arrow = { - 6, - TAG_PAL_WAVEFORM, - &gOamData_83BB2D0, - gSpriteAnimTable_83BB2E8, - NULL, - gDummySpriteAffineAnimTable, - sub_80CD210 + .tileTag = GFXTAG_ARROW, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_Arrow, + .anims = sAnims_Arrow, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_Arrow }; -static const u16 gHandCursorPalette[] = INCBIN_U16("graphics/pokemon_storage/hand_cursor.gbapal"); -static const u8 gHandCursorTiles[] = INCBIN_U8("graphics/pokemon_storage/hand_cursor.4bpp"); -static const u8 gHandCursorShadowTiles[] = INCBIN_U8("graphics/pokemon_storage/hand_cursor_shadow.4bpp"); +static const u16 sHandCursor_Pal[] = INCBIN_U16("graphics/pokemon_storage/hand_cursor.gbapal"); +static const u8 sHandCursor_Gfx[] = INCBIN_U8("graphics/pokemon_storage/hand_cursor.4bpp"); +static const u8 sHandCursorShadow_Gfx[] = INCBIN_U8("graphics/pokemon_storage/hand_cursor_shadow.4bpp"); + + +//------------------------------------------------------------------------------ +// SECTION: Misc utility +//------------------------------------------------------------------------------ + -// code void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, s32 bytesToBuffer) { s32 i, tileBytesToBuffer, remainingBytes; @@ -1587,9 +1384,9 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero } // Unused -void sub_80C6EAC(const u8 *string, void *dst, u16 arg2, u8 arg3, u8 clr2, u8 clr3) +static void UnusedDrawTextWindow(const u8 *string, void *dst, u16 offset, u8 bgColor, u8 fgColor, u8 shadowColor) { - u32 var; + u32 tileSize; u8 windowId; u8 txtColor[3]; u8 *tileData1, *tileData2; @@ -1597,17 +1394,17 @@ void sub_80C6EAC(const u8 *string, void *dst, u16 arg2, u8 arg3, u8 clr2, u8 clr winTemplate.width = StringLength_Multibyte(string); winTemplate.height = 2; - var = winTemplate.width * 32; + tileSize = winTemplate.width * 32; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, PIXEL_FILL(arg3)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(bgColor)); tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA); tileData2 = (winTemplate.width * 32) + tileData1; - txtColor[0] = arg3; - txtColor[1] = clr2; - txtColor[2] = clr3; + txtColor[0] = bgColor; + txtColor[1] = fgColor; + txtColor[2] = shadowColor; AddTextPrinterParameterized4(windowId, 1, 0, 2, 0, 0, txtColor, -1, string); - CpuCopy16(tileData1, dst, var); - CpuCopy16(tileData2, dst + arg2, var); + CpuCopy16(tileData1, dst, tileSize); + CpuCopy16(tileData2, dst + offset, tileSize); RemoveWindow(windowId); } @@ -1702,7 +1499,8 @@ u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n) return str; } -static void sub_80C7128(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width) +// Unused +static void UnusedWriteRectCpu(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width) { u16 i; @@ -1717,7 +1515,8 @@ static void sub_80C7128(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, } } -static void sub_80C71A4(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height) +// Unused +static void UnusedWriteRectDma(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height) { u16 i; @@ -1727,109 +1526,136 @@ static void sub_80C71A4(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 h Dma3FillLarge16_(0, dest, width); } -static void Task_PokemonStorageSystemPC(u8 taskId) + +//------------------------------------------------------------------------------ +// SECTION: Main menu +// +// The below functions generally handle the PC main menu where the main +// options can be selected (Withdraw, Deposit, etc.), as well as exiting +// Pokémon Storage back to this menu. +//------------------------------------------------------------------------------ + + +enum { + STATE_LOAD, + STATE_FADE_IN, + STATE_HANDLE_INPUT, + STATE_ERROR_MSG, + STATE_ENTER_PC, +}; + +#define tState data[0] +#define tSelectedOption data[1] +#define tInput data[2] +#define tNextOption data[3] +#define tWindowId data[15] + +static void Task_PCMainMenu(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { - case 0: - CreatePCMenu(task->data[1], &task->data[15]); + case STATE_LOAD: + CreateMainMenu(task->tSelectedOption, &task->tWindowId); LoadMessageBoxAndBorderGfx(); DrawDialogueFrame(0, 0); FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, sMainMenuTexts[task->tSelectedOption].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); CopyWindowToVram(0, 3); - CopyWindowToVram(task->data[15], 3); - task->data[0]++; + CopyWindowToVram(task->tWindowId, 3); + task->tState++; break; - case 1: + case STATE_FADE_IN: if (IsWeatherNotFadingIn()) - { - task->data[0]++; - } + task->tState++; break; - case 2: - task->data[2] = Menu_ProcessInput(); - switch(task->data[2]) + case STATE_HANDLE_INPUT: + task->tInput = Menu_ProcessInput(); + switch(task->tInput) { case MENU_NOTHING_CHOSEN: - task->data[3] = task->data[1]; - if (JOY_NEW(DPAD_UP) && --task->data[3] < 0) - task->data[3] = 4; + task->tNextOption = task->tSelectedOption; + if (JOY_NEW(DPAD_UP) && --task->tNextOption < 0) + task->tNextOption = OPTIONS_COUNT - 1; + if (JOY_NEW(DPAD_DOWN) && ++task->tNextOption > OPTIONS_COUNT - 1) + task->tNextOption = 0; - if (JOY_NEW(DPAD_DOWN) && ++task->data[3] > 4) - task->data[3] = 0; - if (task->data[1] != task->data[3]) + if (task->tSelectedOption != task->tNextOption) { - task->data[1] = task->data[3]; + task->tSelectedOption = task->tNextOption; FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, sMainMenuTexts[task->tSelectedOption].desc, 0, NULL, 2, 1, 3); } break; case MENU_B_PRESSED: - case 4: - ClearStdWindowAndFrame(task->data[15], TRUE); + case OPTION_EXIT: + ClearStdWindowAndFrame(task->tWindowId, TRUE); ScriptContext2_Disable(); EnableBothScriptContexts(); - RemoveWindow(task->data[15]); + RemoveWindow(task->tWindowId); DestroyTask(taskId); break; default: - if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE) + if (task->tInput == OPTION_WITHDRAW && CountPartyMons() == PARTY_SIZE) { + // Can't withdraw FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3); - task->data[0] = 3; + task->tState = STATE_ERROR_MSG; } - else if (task->data[2] == 1 && CountPartyMons() == 1) + else if (task->tInput == OPTION_DEPOSIT && CountPartyMons() == 1) { + // Can't deposit FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3); - task->data[0] = 3; + task->tState = STATE_ERROR_MSG; } else { + // Enter PC FadeScreen(FADE_TO_BLACK, 0); - task->data[0] = 4; + task->tState = STATE_ENTER_PC; } break; } break; - case 3: + case STATE_ERROR_MSG: + // Printed "can't do PC option message" + // Wait for new input after message if (JOY_NEW(A_BUTTON | B_BUTTON)) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); - task->data[0] = 2; + AddTextPrinterParameterized2(0, 1, sMainMenuTexts[task->tSelectedOption].desc, 0, NULL, 2, 1, 3); + task->tState = STATE_HANDLE_INPUT; } else if (JOY_NEW(DPAD_UP)) { - if (--task->data[1] < 0) - task->data[1] = 4; + if (--task->tSelectedOption < 0) + task->tSelectedOption = OPTIONS_COUNT - 1; Menu_MoveCursor(-1); - task->data[1] = Menu_GetCursorPos(); + task->tSelectedOption = Menu_GetCursorPos(); FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); - task->data[0] = 2; + AddTextPrinterParameterized2(0, 1, sMainMenuTexts[task->tSelectedOption].desc, 0, NULL, 2, 1, 3); + task->tState = STATE_HANDLE_INPUT; } else if (JOY_NEW(DPAD_DOWN)) { - if (++task->data[1] > 3) - task->data[1] = 0; + if (++task->tSelectedOption >= OPTIONS_COUNT - 1) + task->tSelectedOption = 0; Menu_MoveCursor(1); - task->data[1] = Menu_GetCursorPos(); + task->tSelectedOption = Menu_GetCursorPos(); FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); - task->data[0] = 2; + AddTextPrinterParameterized2(0, 1, sMainMenuTexts[task->tSelectedOption].desc, 0, NULL, 2, 1, 3); + task->tState = STATE_HANDLE_INPUT; } break; - case 4: + case STATE_ENTER_PC: if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - Cb2_EnterPSS(task->data[2]); - RemoveWindow(task->data[15]); + EnterPokeStorage(task->tInput); + RemoveWindow(task->tWindowId); DestroyTask(taskId); } break; @@ -1838,46 +1664,53 @@ static void Task_PokemonStorageSystemPC(u8 taskId) void ShowPokemonStorageSystemPC(void) { - u8 taskId = CreateTask(Task_PokemonStorageSystemPC, 80); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = 0; + u8 taskId = CreateTask(Task_PCMainMenu, 80); + gTasks[taskId].tState = 0; + gTasks[taskId].tSelectedOption = 0; ScriptContext2_Enable(); } -static void FieldCb_ReturnToPcMenu(void) +static void FieldTask_ReturnToPcMenu(void) { u8 taskId; MainCallback vblankCb = gMain.vblankCallback; SetVBlankCallback(NULL); - taskId = CreateTask(Task_PokemonStorageSystemPC, 80); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = sPreviousBoxOption; - Task_PokemonStorageSystemPC(taskId); + taskId = CreateTask(Task_PCMainMenu, 80); + gTasks[taskId].tState = 0; + gTasks[taskId].tSelectedOption = sPreviousBoxOption; + Task_PCMainMenu(taskId); SetVBlankCallback(vblankCb); FadeInFromBlack(); } -static void CreatePCMenu(u8 whichMenu, s16 *windowIdPtr) +#undef tState +#undef tSelectedOption +#undef tInput +#undef tNextOption +#undef tWindowId + +static void CreateMainMenu(u8 whichMenu, s16 *windowIdPtr) { s16 windowId; - struct WindowTemplate winTemplate = gUnknown_085716E8; - winTemplate.width = GetMaxWidthInMenuTable((void *)gUnknown_085716C0, ARRAY_COUNT(gUnknown_085716C0)); - windowId = AddWindow(&winTemplate); + struct WindowTemplate template = sWindowTemplate_MainMenu; + template.width = GetMaxWidthInMenuTable((void *)sMainMenuTexts, OPTIONS_COUNT); + windowId = AddWindow(&template); DrawStdWindowFrame(windowId, FALSE); - PrintMenuTable(windowId, ARRAY_COUNT(gUnknown_085716C0), (void *)gUnknown_085716C0); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, ARRAY_COUNT(gUnknown_085716C0), whichMenu); + PrintMenuTable(windowId, OPTIONS_COUNT, (void *)sMainMenuTexts); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, OPTIONS_COUNT, whichMenu); *windowIdPtr = windowId; } -static void Cb2_ExitPSS(void) +static void CB2_ExitPokeStorage(void) { sPreviousBoxOption = GetCurrentBoxOption(); - gFieldCallback = FieldCb_ReturnToPcMenu; + gFieldCallback = FieldTask_ReturnToPcMenu; SetMainCallback2(CB2_ReturnToField); } +// Unused static s16 StorageSystemGetNextMonIndex(struct BoxPokemon *box, s8 startIdx, u8 stopIdx, u8 mode) { s16 i; @@ -1924,81 +1757,92 @@ void ResetPokemonStorageSystem(void) u8 *dest = StringCopy(GetBoxNamePtr(boxId), gText_Box); ConvertIntToDecimalStringN(dest, boxId + 1, STR_CONV_MODE_LEFT_ALIGN, 2); } + for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++) - { - SetBoxWallpaper(boxId, boxId % 4); - } + SetBoxWallpaper(boxId, boxId % (MAX_DEFAULT_WALLPAPER + 1)); + ResetWaldaWallpaper(); } -static void sub_80C77E8(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal) + +//------------------------------------------------------------------------------ +// SECTION: Choose Box menu +// +// The below functions handle the popup menu that allows the player to cycle +// through the boxes and select one. Used when storing Pokémon in Deposit mode +// and for the Jump feature. +//------------------------------------------------------------------------------ + + +static void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *menu, u16 tileTag, u16 palTag, u8 subpriority, bool32 loadPal) { struct SpritePalette palette = { - gBoxSelectionPopupPalette, palTag + sChooseBoxMenu_Pal, palTag }; struct SpriteSheet sheets[] = { - {gBoxSelectionPopupCenterTiles, 0x800, tileTag}, - {gBoxSelectionPopupSidesTiles, 0x180, tileTag + 1}, + {sChooseBoxMenuCenter_Gfx, 0x800, tileTag}, + {sChooseBoxMenuSides_Gfx, 0x180, tileTag + 1}, {} }; - if (loadPal) + if (loadPal) // Always false LoadSpritePalette(&palette); LoadSpriteSheets(sheets); - gUnknown_02039D04 = a0; - a0->unk_0240 = tileTag; - a0->unk_0242 = palTag; - a0->unk_0246 = a3; - a0->unk_023c = loadPal; + sChooseBoxMenu = menu; + menu->tileTag = tileTag; + menu->paletteTag = palTag; + menu->subpriority = subpriority; + menu->loadedPalette = loadPal; } -static void sub_80C7890(void) +static void FreeChooseBoxMenu(void) { - if (gUnknown_02039D04->unk_023c) - FreeSpritePaletteByTag(gUnknown_02039D04->unk_0242); - FreeSpriteTilesByTag(gUnknown_02039D04->unk_0240); - FreeSpriteTilesByTag(gUnknown_02039D04->unk_0240 + 1); + if (sChooseBoxMenu->loadedPalette) + FreeSpritePaletteByTag(sChooseBoxMenu->paletteTag); + FreeSpriteTilesByTag(sChooseBoxMenu->tileTag); + FreeSpriteTilesByTag(sChooseBoxMenu->tileTag + 1); } -static void sub_80C78D4(u8 curBox) +static void CreateChooseBoxMenuSprites(u8 curBox) { - sub_80C7958(curBox); + ChooseBoxMenu_CreateSprites(curBox); } -static void sub_80C78E4(void) +static void DestroyChooseBoxMenuSprites(void) { - sub_80C7B14(); + ChooseBoxMenu_DestroySprites(); } -static u8 HandleBoxChooseSelectionInput(void) +// For the popout window when choosing a box to deposit in or jump to +static u8 HandleChooseBoxMenuInput(void) { if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - return 201; + return BOXID_CANCELED; } if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - return gUnknown_02039D04->curBox; + return sChooseBoxMenu->curBox; } if (JOY_NEW(DPAD_LEFT)) { PlaySE(SE_SELECT); - sub_80C7BB4(); + ChooseBoxMenu_MoveLeft(); } else if (JOY_NEW(DPAD_RIGHT)) { PlaySE(SE_SELECT); - sub_80C7B80(); + ChooseBoxMenu_MoveRight(); } - return 200; + return BOXID_NONE_CHOSEN; } -static void sub_80C7958(u8 curBox) +static void ChooseBoxMenu_CreateSprites(u8 curBox) { u16 i; u8 spriteId; @@ -2010,184 +1854,197 @@ static void sub_80C7958(u8 curBox) 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; - gUnknown_02039D04->curBox = curBox; - template.tileTag = gUnknown_02039D04->unk_0240; - template.paletteTag = gUnknown_02039D04->unk_0242; + sChooseBoxMenu->curBox = curBox; + template.tileTag = sChooseBoxMenu->tileTag; + template.paletteTag = sChooseBoxMenu->paletteTag; spriteId = CreateSprite(&template, 160, 96, 0); - gUnknown_02039D04->unk_0000 = gSprites + spriteId; + sChooseBoxMenu->menuSprite = &gSprites[spriteId]; oamData.shape = SPRITE_SHAPE(8x32); oamData.size = SPRITE_SIZE(8x32); - template.tileTag = gUnknown_02039D04->unk_0240 + 1; - template.anims = sSpriteAnimTable_8571710; - for (i = 0; i < 4; i++) + template.tileTag = sChooseBoxMenu->tileTag + 1; + template.anims = sAnims_ChooseBoxMenu; + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->menuSideSprites); i++) { - u16 r5; - spriteId = CreateSprite(&template, 124, 80, gUnknown_02039D04->unk_0246); - gUnknown_02039D04->unk_0004[i] = gSprites + spriteId; - r5 = 0; + u16 anim; + spriteId = CreateSprite(&template, 124, 80, sChooseBoxMenu->subpriority); + sChooseBoxMenu->menuSideSprites[i] = &gSprites[spriteId]; + anim = 0; if (i & 2) { - gUnknown_02039D04->unk_0004[i]->pos1.x = 196; - r5 = 2; + sChooseBoxMenu->menuSideSprites[i]->x = 196; + anim = 2; } if (i & 1) { - gUnknown_02039D04->unk_0004[i]->pos1.y = 112; - gUnknown_02039D04->unk_0004[i]->oam.size = 0; - r5++; + sChooseBoxMenu->menuSideSprites[i]->y = 112; + sChooseBoxMenu->menuSideSprites[i]->oam.size = 0; + anim++; } - StartSpriteAnim(gUnknown_02039D04->unk_0004[i], r5); + StartSpriteAnim(sChooseBoxMenu->menuSideSprites[i], anim); } - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->arrowSprites); i++) { - gUnknown_02039D04->unk_0020[i] = sub_80CD2E8(72 * i + 0x7c, 0x58, i, 0, gUnknown_02039D04->unk_0246); - if (gUnknown_02039D04->unk_0020[i]) + sChooseBoxMenu->arrowSprites[i] = CreateChooseBoxArrows(72 * i + 124, 88, i, 0, sChooseBoxMenu->subpriority); + if (sChooseBoxMenu->arrowSprites[i]) { - gUnknown_02039D04->unk_0020[i]->data[0] = (i == 0 ? -1 : 1); - gUnknown_02039D04->unk_0020[i]->callback = sub_80C7CF4; + sChooseBoxMenu->arrowSprites[i]->data[0] = (i == 0 ? -1 : 1); + sChooseBoxMenu->arrowSprites[i]->callback = SpriteCB_ChooseBoxArrow; } } - sub_80C7BE4(); + ChooseBoxMenu_PrintInfo(); } -static void sub_80C7B14(void) +static void ChooseBoxMenu_DestroySprites(void) { u16 i; - if (gUnknown_02039D04->unk_0000) + if (sChooseBoxMenu->menuSprite) { - DestroySprite(gUnknown_02039D04->unk_0000); - gUnknown_02039D04->unk_0000 = NULL; + DestroySprite(sChooseBoxMenu->menuSprite); + sChooseBoxMenu->menuSprite = NULL; } - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->menuSideSprites); i++) { - if (gUnknown_02039D04->unk_0004[i]) + if (sChooseBoxMenu->menuSideSprites[i]) { - DestroySprite(gUnknown_02039D04->unk_0004[i]); - gUnknown_02039D04->unk_0004[i] = NULL; + DestroySprite(sChooseBoxMenu->menuSideSprites[i]); + sChooseBoxMenu->menuSideSprites[i] = NULL; } } - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->arrowSprites); i++) { - if (gUnknown_02039D04->unk_0020[i]) - DestroySprite(gUnknown_02039D04->unk_0020[i]); + if (sChooseBoxMenu->arrowSprites[i]) + DestroySprite(sChooseBoxMenu->arrowSprites[i]); } } -static void sub_80C7B80(void) +static void ChooseBoxMenu_MoveRight(void) { - if (++gUnknown_02039D04->curBox >= TOTAL_BOXES_COUNT) - gUnknown_02039D04->curBox = 0; - sub_80C7BE4(); + if (++sChooseBoxMenu->curBox >= TOTAL_BOXES_COUNT) + sChooseBoxMenu->curBox = 0; + ChooseBoxMenu_PrintInfo(); } -static void sub_80C7BB4(void) +static void ChooseBoxMenu_MoveLeft(void) { - gUnknown_02039D04->curBox = (gUnknown_02039D04->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : gUnknown_02039D04->curBox - 1); - sub_80C7BE4(); + sChooseBoxMenu->curBox = (sChooseBoxMenu->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : sChooseBoxMenu->curBox - 1); + ChooseBoxMenu_PrintInfo(); } -static void sub_80C7BE4(void) +static void ChooseBoxMenu_PrintInfo(void) { u8 numBoxMonsText[16]; - struct WindowTemplate winTemplate; + struct WindowTemplate template; u8 windowId; - u8 *boxName = GetBoxNamePtr(gUnknown_02039D04->curBox); - u8 nPokemonInBox = CountMonsInBox(gUnknown_02039D04->curBox); + u8 *boxName = GetBoxNamePtr(sChooseBoxMenu->curBox); + u8 numInBox = CountMonsInBox(sChooseBoxMenu->curBox); u32 winTileData; s32 center; - memset(&winTemplate, 0, sizeof(winTemplate)); - winTemplate.width = 8; - winTemplate.height = 4; + memset(&template, 0, sizeof(template)); + template.width = 8; + template.height = 4; - windowId = AddWindow(&winTemplate); + windowId = AddWindow(&template); FillWindowPixelBuffer(windowId, PIXEL_FILL(4)); + // Print box name center = GetStringCenterAlignXOffset(1, boxName, 64); - AddTextPrinterParameterized3(windowId, 1, center, 1, sBoxInfoTextColors, TEXT_SPEED_FF, boxName); + AddTextPrinterParameterized3(windowId, 1, center, 1, sChooseBoxMenu_TextColors, TEXT_SPEED_FF, boxName); - ConvertIntToDecimalStringN(numBoxMonsText, nPokemonInBox, STR_CONV_MODE_RIGHT_ALIGN, 2); + // Print #/30 for number of Pokémon in the box + ConvertIntToDecimalStringN(numBoxMonsText, numInBox, STR_CONV_MODE_RIGHT_ALIGN, 2); StringAppend(numBoxMonsText, sText_OutOf30); center = GetStringCenterAlignXOffset(1, numBoxMonsText, 64); - AddTextPrinterParameterized3(windowId, 1, center, 17, sBoxInfoTextColors, TEXT_SPEED_FF, numBoxMonsText); + AddTextPrinterParameterized3(windowId, 1, center, 17, sChooseBoxMenu_TextColors, TEXT_SPEED_FF, numBoxMonsText); winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA); - CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(gUnknown_02039D04->unk_0240) * 32), 0x400); + CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(sChooseBoxMenu->tileTag) * 32), 0x400); RemoveWindow(windowId); } -static void sub_80C7CF4(struct Sprite *sprite) +static void SpriteCB_ChooseBoxArrow(struct Sprite *sprite) { if (++sprite->data[1] > 3) { sprite->data[1] = 0; - sprite->pos2.x += sprite->data[0]; + sprite->x2 += sprite->data[0]; if (++sprite->data[2] > 5) { sprite->data[2] = 0; - sprite->pos2.x = 0; + sprite->x2 = 0; } } } -static void VblankCb_PSS(void) + +//------------------------------------------------------------------------------ +// SECTION: Main tasks +// +// Below are the main task callbacks that handle the primary actions the +// player can take in the PC. The most 'important' of these tasks is the +// primary one, Task_PokeStorageMain. Also included are some basic +// initialization functions. +//------------------------------------------------------------------------------ + + +static void VBlankCB_PokeStorage(void) { LoadOam(); ProcessSpriteCopyRequests(); - sub_80D2AA4(); + UnkUtil_Run(); TransferPlttBuffer(); - SetGpuReg(REG_OFFSET_BG2HOFS, sPSSData->bg2_X); + SetGpuReg(REG_OFFSET_BG2HOFS, sStorage->bg2_X); } -static void Cb2_PSS(void) +static void CB2_PokeStorage(void) { RunTasks(); DoScheduledBgTilemapCopiesToVram(); ScrollBackground(); - sub_80CAA14(); + UpdateCloseBoxButtonFlash(); AnimateSprites(); BuildOamBuffer(); } -static void Cb2_EnterPSS(u8 boxOption) +static void EnterPokeStorage(u8 boxOption) { ResetTasks(); sCurrentBoxOption = boxOption; - sPSSData = Alloc(sizeof(*sPSSData)); - if (sPSSData == NULL) + sStorage = Alloc(sizeof(*sStorage)); + if (sStorage == NULL) { - SetMainCallback2(Cb2_ExitPSS); + SetMainCallback2(CB2_ExitPokeStorage); } else { - sPSSData->boxOption = boxOption; - sPSSData->isReshowingPSS = FALSE; + sStorage->boxOption = boxOption; + sStorage->isReopening = FALSE; sMovingItemId = ITEM_NONE; - sPSSData->state = 0; - sPSSData->taskId = CreateTask(Cb_InitPSS, 3); + sStorage->state = 0; + sStorage->taskId = CreateTask(Task_InitPokeStorage, 3); sLastUsedBox = StorageGetCurrentBox(); - SetMainCallback2(Cb2_PSS); + SetMainCallback2(CB2_PokeStorage); } } -static void Cb2_ReturnToPSS(void) +static void CB2_ReturnToPokeStorage(void) { ResetTasks(); - sPSSData = Alloc(sizeof(*sPSSData)); - if (sPSSData == NULL) + sStorage = Alloc(sizeof(*sStorage)); + if (sStorage == NULL) { - SetMainCallback2(Cb2_ExitPSS); + SetMainCallback2(CB2_ExitPokeStorage); } else { - sPSSData->boxOption = sCurrentBoxOption; - sPSSData->isReshowingPSS = TRUE; - sPSSData->state = 0; - sPSSData->taskId = CreateTask(Cb_InitPSS, 3); - SetMainCallback2(Cb2_PSS); + sStorage->boxOption = sCurrentBoxOption; + sStorage->isReopening = TRUE; + sStorage->state = 0; + sStorage->taskId = CreateTask(Task_InitPokeStorage, 3); + SetMainCallback2(CB2_PokeStorage); } } @@ -2203,7 +2060,7 @@ static void ResetAllBgCoords(void) SetGpuReg(REG_OFFSET_BG3VOFS, 0); } -static void sub_80C7E98(void) +static void ResetForPokeStorage(void) { ResetPaletteFade(); ResetSpriteData(); @@ -2211,25 +2068,25 @@ static void sub_80C7E98(void) FreeAllSpritePalettes(); ClearDma3Requests(); gReservedSpriteTileCount = 0x280; - sub_80D2A90(&sPSSData->unk_0020, sPSSData->unk_0028, 8); + UnkUtil_Init(&sStorage->unkUtil, sStorage->unkUtilData, ARRAY_COUNT(sStorage->unkUtilData)); gKeyRepeatStartDelay = 20; ClearScheduledBgCopiesToVram(); - sub_80D259C(3); - sub_80D2644(0, 1, gUnknown_0857239C, 8, 4); - sub_80D2770(0, 1, 0); - sPSSData->unk_02C7 = 0; + TilemapUtil_Init(TILEMAPID_COUNT); + TilemapUtil_SetMap(TILEMAPID_PKMN_DATA, 1, sPkmnData_Tilemap, 8, 4); + TilemapUtil_SetPos(TILEMAPID_PKMN_DATA, 1, 0); + sStorage->closeBoxFlashing = FALSE; } -static void sub_80C7F1C(void) +static void InitStartingPosData(void) { - sub_80CDC0C(); - sInPartyMenu = (sPSSData->boxOption == BOX_OPTION_DEPOSIT); - gUnknown_02039D0E = 0; + ClearSavedCursorPos(); + sInPartyMenu = (sStorage->boxOption == OPTION_DEPOSIT); + sDepositBoxId = 0; } static void SetMonIconTransparency(void) { - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption == OPTION_MOVE_ITEMS) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 11)); @@ -2237,42 +2094,45 @@ static void SetMonIconTransparency(void) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); } -static void SetPSSCallback(TaskFunc newFunc) +static void SetPokeStorageTask(TaskFunc newFunc) { - gTasks[sPSSData->taskId].func = newFunc; - sPSSData->state = 0; + gTasks[sStorage->taskId].func = newFunc; + sStorage->state = 0; } -static void Cb_InitPSS(u8 taskId) +static void Task_InitPokeStorage(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: SetVBlankCallback(NULL); SetGpuReg(REG_OFFSET_DISPCNT, 0); - sub_80C7E98(); - if (sPSSData->isReshowingPSS) + ResetForPokeStorage(); + if (sStorage->isReopening) { switch (sWhichToReshow) { - case 1: - sub_80CE790(); + case SCREEN_CHANGE_NAME_BOX - 1: + // Return from naming box + LoadSavedMovingMon(); break; - case 0: - sub_80CE8E4(); + case SCREEN_CHANGE_SUMMARY_SCREEN - 1: + // Return from summary screen + SetSelectionAfterSummaryScreen(); break; - case 2: + case SCREEN_CHANGE_ITEM_FROM_BAG - 1: + // Return from bag menu GiveChosenBagItem(); break; } } - LoadPSSMenuGfx(); + LoadPokeStorageMenuGfx(); LoadWaveformSpritePalette(); break; case 1: - if (!InitPSSWindows()) + if (!InitPokeStorageWindows()) { - SetPSSCallback(Cb_ChangeScreen); + SetPokeStorageTask(Task_ChangeScreen); return; } break; @@ -2284,110 +2144,110 @@ static void Cb_InitPSS(u8 taskId) break; case 3: ResetAllBgCoords(); - if (!sPSSData->isReshowingPSS) - sub_80C7F1C(); + if (!sStorage->isReopening) + InitStartingPosData(); break; case 4: - sub_80CAF04(); - if (!sPSSData->isReshowingPSS) - sub_80CD36C(); + InitMonIconFields(); + if (!sStorage->isReopening) + InitCursor(); else - sub_80CD3EC(); + InitCursorOnReopen(); break; case 5: - if (!sub_80D0164()) + if (!MultiMove_Init()) { - SetPSSCallback(Cb_ChangeScreen); + SetPokeStorageTask(Task_ChangeScreen); return; } else { SetScrollingBackground(); - sub_80CAC1C(); + InitPokeStorageBg0(); } break; case 6: - sub_80CA0D8(); + InitPalettesAndSprites(); break; case 7: - sub_80CA704(); + InitSupplementalTilemaps(); break; case 8: - sub_80CC32C(StorageGetCurrentBox()); + CreateInitBoxTask(StorageGetCurrentBox()); break; case 9: - if (sub_80CC35C()) + if (IsInitBoxActive()) return; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) { - sPSSData->markMenu.baseTileTag = TAG_TILE_D; - sPSSData->markMenu.basePaletteTag = TAG_PAL_DACE; - sub_811F90C(&sPSSData->markMenu); - sub_811FA90(); + sStorage->markMenu.baseTileTag = GFXTAG_MARKING_MENU; + sStorage->markMenu.basePaletteTag = PALTAG_MARKING_MENU; + InitMonMarkingsMenu(&sStorage->markMenu); + BufferMonMarkingsMenuTiles(); } else { - sub_80D0C60(); - sub_80CAEAC(); + CreateItemIconSprites(); + InitCursorItemIcon(); } break; case 10: SetMonIconTransparency(); - if (!sPSSData->isReshowingPSS) + if (!sStorage->isReopening) { - BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); - SetPSSCallback(Cb_ShowPSS); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + SetPokeStorageTask(Task_ShowPokeStorage); } else { - BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); - SetPSSCallback(Cb_ReshowPSS); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + SetPokeStorageTask(Task_ReshowPokeStorage); } - SetVBlankCallback(VblankCb_PSS); + SetVBlankCallback(VBlankCB_PokeStorage); return; default: return; } - sPSSData->state++; + sStorage->state++; } -static void Cb_ShowPSS(u8 taskId) +static void Task_ShowPokeStorage(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: PlaySE(SE_PC_LOGIN); ComputerScreenOpenEffect(20, 0, 1); - sPSSData->state++; + sStorage->state++; break; case 1: if (!IsComputerScreenOpenEffectActive()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_ReshowPSS(u8 taskId) +static void Task_ReshowPokeStorage(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0x10, 0, RGB_BLACK); - sPSSData->state++; + BeginNormalPaletteFade(PALETTES_ALL, -1, 0x10, 0, RGB_BLACK); + sStorage->state++; break; case 1: if (!UpdatePaletteFade()) { - if (sWhichToReshow == 2 && gSpecialVar_ItemId != 0) + if (sWhichToReshow == SCREEN_CHANGE_ITEM_FROM_BAG - 1 && gSpecialVar_ItemId != ITEM_NONE) { - PrintStorageActionText(PC_TEXT_ITEM_IS_HELD); - sPSSData->state++; + PrintMessage(MSG_ITEM_IS_HELD); + sStorage->state++; } else { - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } } break; @@ -2395,557 +2255,579 @@ static void Cb_ReshowPSS(u8 taskId) if (!IsDma3ManagerBusyWithBgCopy() && JOY_NEW(A_BUTTON | B_BUTTON)) { ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_MainPSS(u8 taskId) +// States for the outer switch in Task_PokeStorageMain +enum { + MSTATE_HANDLE_INPUT, + MSTATE_MOVE_CURSOR, + MSTATE_SCROLL_BOX, + MSTATE_WAIT_MSG, + MSTATE_ERROR_LAST_PARTY_MON, + MSTATE_ERROR_HAS_MAIL, + MSTATE_WAIT_ERROR_MSG, + MSTATE_MULTIMOVE_RUN, + MSTATE_MULTIMOVE_RUN_CANCEL, + MSTATE_MULTIMOVE_RUN_MOVED, + MSTATE_SCROLL_BOX_ITEM, + MSTATE_WAIT_ITEM_ANIM, +}; + +static void Task_PokeStorageMain(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { - case 0: + case MSTATE_HANDLE_INPUT: switch (HandleInput()) { - case 1: + case INPUT_MOVE_CURSOR: PlaySE(SE_SELECT); - sPSSData->state = 1; + sStorage->state = MSTATE_MOVE_CURSOR; break; - case 5: - if (sPSSData->boxOption != BOX_OPTION_MOVE_MONS && sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + case INPUT_SHOW_PARTY: + if (sStorage->boxOption != OPTION_MOVE_MONS && sStorage->boxOption != OPTION_MOVE_ITEMS) { - PrintStorageActionText(PC_TEXT_WHICH_ONE_WILL_TAKE); - sPSSData->state = 3; + PrintMessage(MSG_WHICH_ONE_WILL_TAKE); + sStorage->state = MSTATE_WAIT_MSG; } else { - sub_80CDC0C(); - SetPSSCallback(Cb_ShowPartyPokemon); + ClearSavedCursorPos(); + SetPokeStorageTask(Task_ShowPartyPokemon); } break; - case 6: - if (sPSSData->boxOption == BOX_OPTION_MOVE_MONS) + case INPUT_HIDE_PARTY: + if (sStorage->boxOption == OPTION_MOVE_MONS) { - if (IsMonBeingMoved() && ItemIsMail(sPSSData->cursorMonItem)) - sPSSData->state = 5; + if (IsMonBeingMoved() && ItemIsMail(sStorage->displayMonItemId)) + sStorage->state = MSTATE_ERROR_HAS_MAIL; else - SetPSSCallback(Cb_HidePartyPokemon); + SetPokeStorageTask(Task_HidePartyPokemon); } - else if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + else if (sStorage->boxOption == OPTION_MOVE_ITEMS) { - SetPSSCallback(Cb_HidePartyPokemon); + SetPokeStorageTask(Task_HidePartyPokemon); } break; - case 4: - SetPSSCallback(Cb_OnCloseBoxPressed); + case INPUT_CLOSE_BOX: + SetPokeStorageTask(Task_OnCloseBoxPressed); break; - case 19: - SetPSSCallback(Cb_OnBPressed); + case INPUT_PRESSED_B: + SetPokeStorageTask(Task_OnBPressed); break; - case 7: + case INPUT_BOX_OPTIONS: PlaySE(SE_SELECT); - SetPSSCallback(Cb_HandleBoxOptions); + SetPokeStorageTask(Task_HandleBoxOptions); break; - case 8: - SetPSSCallback(Cb_OnSelectedMon); + case INPUT_IN_MENU: + SetPokeStorageTask(Task_OnSelectedMon); break; - case 9: + case INPUT_SCROLL_RIGHT: PlaySE(SE_SELECT); - sPSSData->newCurrBoxId = StorageGetCurrentBox() + 1; - if (sPSSData->newCurrBoxId >= TOTAL_BOXES_COUNT) - sPSSData->newCurrBoxId = 0; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + sStorage->newCurrBoxId = StorageGetCurrentBox() + 1; + if (sStorage->newCurrBoxId >= TOTAL_BOXES_COUNT) + sStorage->newCurrBoxId = 0; + if (sStorage->boxOption != OPTION_MOVE_ITEMS) { - SetUpScrollToBox(sPSSData->newCurrBoxId); - sPSSData->state = 2; + SetUpScrollToBox(sStorage->newCurrBoxId); + sStorage->state = MSTATE_SCROLL_BOX; } else { - sub_80CFEA8(); - sPSSData->state = 10; + TryHideItemAtCursor(); + sStorage->state = MSTATE_SCROLL_BOX_ITEM; } break; - case 10: + case INPUT_SCROLL_LEFT: PlaySE(SE_SELECT); - sPSSData->newCurrBoxId = StorageGetCurrentBox() - 1; - if (sPSSData->newCurrBoxId < 0) - sPSSData->newCurrBoxId = TOTAL_BOXES_COUNT - 1; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + sStorage->newCurrBoxId = StorageGetCurrentBox() - 1; + if (sStorage->newCurrBoxId < 0) + sStorage->newCurrBoxId = TOTAL_BOXES_COUNT - 1; + if (sStorage->boxOption != OPTION_MOVE_ITEMS) { - SetUpScrollToBox(sPSSData->newCurrBoxId); - sPSSData->state = 2; + SetUpScrollToBox(sStorage->newCurrBoxId); + sStorage->state = MSTATE_SCROLL_BOX; } else { - sub_80CFEA8(); - sPSSData->state = 10; + TryHideItemAtCursor(); + sStorage->state = MSTATE_SCROLL_BOX_ITEM; } break; - case 11: - if (!CanMovePartyMon()) + case INPUT_DEPOSIT: + if (!IsRemovingLastPartyMon()) { - if (ItemIsMail(sPSSData->cursorMonItem)) + if (ItemIsMail(sStorage->displayMonItemId)) { - sPSSData->state = 5; + sStorage->state = MSTATE_ERROR_HAS_MAIL; } else { PlaySE(SE_SELECT); - SetPSSCallback(Cb_DepositMenu); + SetPokeStorageTask(Task_DepositMenu); } } else { - sPSSData->state = 4; + sStorage->state = MSTATE_ERROR_LAST_PARTY_MON; } break; - case 13: - if (CanMovePartyMon()) + case INPUT_MOVE_MON: + if (IsRemovingLastPartyMon()) { - sPSSData->state = 4; + sStorage->state = MSTATE_ERROR_LAST_PARTY_MON; } else { PlaySE(SE_SELECT); - SetPSSCallback(Cb_MoveMon); + SetPokeStorageTask(Task_MoveMon); } break; - case 14: + case INPUT_SHIFT_MON: if (!CanShiftMon()) { - sPSSData->state = 4; + sStorage->state = MSTATE_ERROR_LAST_PARTY_MON; } else { PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShiftMon); + SetPokeStorageTask(Task_ShiftMon); } break; - case 12: + case INPUT_WITHDRAW: PlaySE(SE_SELECT); - SetPSSCallback(Cb_WithdrawMon); + SetPokeStorageTask(Task_WithdrawMon); break; - case 15: + case INPUT_PLACE_MON: PlaySE(SE_SELECT); - SetPSSCallback(Cb_PlaceMon); + SetPokeStorageTask(Task_PlaceMon); break; - case 16: + case INPUT_TAKE_ITEM: PlaySE(SE_SELECT); - SetPSSCallback(Cb_TakeItemForMoving); + SetPokeStorageTask(Task_TakeItemForMoving); break; - case 17: + case INPUT_GIVE_ITEM: PlaySE(SE_SELECT); - SetPSSCallback(Cb_GiveMovingItemToMon); + SetPokeStorageTask(Task_GiveMovingItemToMon); break; - case 18: + case INPUT_SWITCH_ITEMS: PlaySE(SE_SELECT); - SetPSSCallback(Cb_SwitchSelectedItem); + SetPokeStorageTask(Task_SwitchSelectedItem); break; - case 20: + case INPUT_MULTIMOVE_START: PlaySE(SE_SELECT); - sub_80D01D0(0); - sPSSData->state = 7; + MultiMove_SetFunction(MULTIMOVE_START); + sStorage->state = MSTATE_MULTIMOVE_RUN; break; - case 22: - sub_80D01D0(1); - sPSSData->state = 8; + case INPUT_MULTIMOVE_SINGLE: + MultiMove_SetFunction(MULTIMOVE_CANCEL); + sStorage->state = MSTATE_MULTIMOVE_RUN_CANCEL; break; - case 21: + case INPUT_MULTIMOVE_CHANGE_SELECTION: PlaySE(SE_SELECT); - sub_80D01D0(2); - sPSSData->state = 9; + MultiMove_SetFunction(MULTIMOVE_CHANGE_SELECTION); + sStorage->state = MSTATE_MULTIMOVE_RUN_MOVED; break; - case 23: - sub_80D01D0(3); - sPSSData->state = 7; + case INPUT_MULTIMOVE_GRAB_SELECTION: + MultiMove_SetFunction(MULTIMOVE_GRAB_SELECTION); + sStorage->state = MSTATE_MULTIMOVE_RUN; break; - case 25: + case INPUT_MULTIMOVE_MOVE_MONS: PlaySE(SE_SELECT); - sub_80D01D0(4); - sPSSData->state = 9; + MultiMove_SetFunction(MULTIMOVE_MOVE_MONS); + sStorage->state = MSTATE_MULTIMOVE_RUN_MOVED; break; - case 26: + case INPUT_MULTIMOVE_PLACE_MONS: PlaySE(SE_SELECT); - sub_80D01D0(5); - sPSSData->state = 7; + MultiMove_SetFunction(MULTIMOVE_PLACE_MONS); + sStorage->state = MSTATE_MULTIMOVE_RUN; break; - case 24: + case INPUT_MULTIMOVE_UNABLE: + // When selecting/moving multiple Pokémon the + // cursor may not wrap around the edges. PlaySE(SE_FAILURE); break; } break; - case 1: - if (!sub_80CD554()) + case MSTATE_MOVE_CURSOR: + if (!UpdateCursorPos()) { if (IsCursorOnCloseBox()) - sub_80CA9C0(); + StartFlashingCloseBoxButton(); else - sub_80CA9EC(); + StopFlashingCloseBoxButton(); - if (sPSSData->setMosaic) - BoxSetMosaic(); - sPSSData->state = 0; + if (sStorage->setMosaic) + StartDisplayMonMosaicEffect(); + sStorage->state = MSTATE_HANDLE_INPUT; } break; - case 2: + case MSTATE_SCROLL_BOX: if (!ScrollToBox()) { - SetCurrentBox(sPSSData->newCurrBoxId); + SetCurrentBox(sStorage->newCurrBoxId); if (!sInPartyMenu && !IsMonBeingMoved()) { - sub_80CE00C(); - BoxSetMosaic(); + RefreshDisplayMon(); + StartDisplayMonMosaicEffect(); } - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption == OPTION_MOVE_ITEMS) { - sub_80CFECC(); - sPSSData->state = 11; + TryShowItemAtCursor(); + sStorage->state = MSTATE_WAIT_ITEM_ANIM; } else { - sPSSData->state = 0; + sStorage->state = MSTATE_HANDLE_INPUT; } } break; - case 3: + case MSTATE_WAIT_MSG: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sPSSData->state = 0; + sStorage->state = MSTATE_HANDLE_INPUT; } break; - case 4: + case MSTATE_ERROR_LAST_PARTY_MON: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_LAST_POKE); - sPSSData->state = 6; + PrintMessage(MSG_LAST_POKE); + sStorage->state = MSTATE_WAIT_ERROR_MSG; break; - case 5: + case MSTATE_ERROR_HAS_MAIL: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); - sPSSData->state = 6; + PrintMessage(MSG_PLEASE_REMOVE_MAIL); + sStorage->state = MSTATE_WAIT_ERROR_MSG; break; - case 6: + case MSTATE_WAIT_ERROR_MSG: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; - case 7: - if (!sub_80D01E4()) - sPSSData->state = 0; + case MSTATE_MULTIMOVE_RUN: + if (!MultiMove_RunFunction()) + sStorage->state = MSTATE_HANDLE_INPUT; break; - case 8: - if (!sub_80D01E4()) - SetPSSCallback(Cb_MoveMon); + case MSTATE_MULTIMOVE_RUN_CANCEL: + // Began a multiple Pokémon selection but + // ended up selecting a single Pokémon. + // Wait for multi move to cancel, then + // do a normal move. + if (!MultiMove_RunFunction()) + SetPokeStorageTask(Task_MoveMon); break; - case 9: - if (!sub_80D01E4()) + case MSTATE_MULTIMOVE_RUN_MOVED: + if (!MultiMove_RunFunction()) { - if (sPSSData->setMosaic) - BoxSetMosaic(); - sPSSData->state = 0; + if (sStorage->setMosaic) + StartDisplayMonMosaicEffect(); + sStorage->state = MSTATE_HANDLE_INPUT; } break; - case 10: - if (!sub_80D1218()) + case MSTATE_SCROLL_BOX_ITEM: + if (!IsItemIconAnimActive()) { - SetUpScrollToBox(sPSSData->newCurrBoxId); - sPSSData->state = 2; + SetUpScrollToBox(sStorage->newCurrBoxId); + sStorage->state = MSTATE_SCROLL_BOX; } break; - case 11: - if (!sub_80D1218()) - sPSSData->state = 0; + case MSTATE_WAIT_ITEM_ANIM: + if (!IsItemIconAnimActive()) + sStorage->state = MSTATE_HANDLE_INPUT; break; } } -static void Cb_ShowPartyPokemon(u8 taskId) +static void Task_ShowPartyPokemon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: SetUpDoShowPartyMenu(); - sPSSData->state++; + sStorage->state++; break; case 1: if (!DoShowPartyMenu()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_HidePartyPokemon(u8 taskId) +static void Task_HidePartyPokemon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: PlaySE(SE_SELECT); SetUpHidePartyMenu(); - sPSSData->state++; + sStorage->state++; break; case 1: if (!HidePartyMenu()) { - sub_80CDBF8(sub_80CDC2C()); - sPSSData->state++; + SetCursorBoxPosition(GetSavedCursorPos()); + sStorage->state++; } break; case 2: - if (!sub_80CD554()) + if (!UpdateCursorPos()) { - if (sPSSData->setMosaic) - BoxSetMosaic(); - SetPSSCallback(Cb_MainPSS); + if (sStorage->setMosaic) + StartDisplayMonMosaicEffect(); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_OnSelectedMon(u8 taskId) +static void Task_OnSelectedMon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - if (!sub_80CA2B8()) + if (!IsDisplayMosaicActive()) { PlaySE(SE_SELECT); - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) - PrintStorageActionText(PC_TEXT_IS_SELECTED); - else if (IsActiveItemMoving() || sPSSData->cursorMonItem != 0) - PrintStorageActionText(PC_TEXT_IS_SELECTED2); + if (sStorage->boxOption != OPTION_MOVE_ITEMS) + PrintMessage(MSG_IS_SELECTED); + else if (IsMovingItem() || sStorage->displayMonItemId != ITEM_NONE) + PrintMessage(MSG_IS_SELECTED2); else - PrintStorageActionText(PC_TEXT_GIVE_TO_MON); + PrintMessage(MSG_GIVE_TO_MON); AddMenu(); - sPSSData->state = 1; + sStorage->state = 1; } break; - case 1: // debug? - if (!sub_80D00A8()) - sPSSData->state = 2; + case 1: + if (!IsMenuLoading()) + sStorage->state = 2; break; case 2: - switch (sub_80D00AC()) + switch (HandleMenuInput()) { - case -1: - case 0: + case MENU_B_PRESSED: + case MENU_CANCEL: ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 3: - if (CanMovePartyMon()) + case MENU_MOVE: + if (IsRemovingLastPartyMon()) { - sPSSData->state = 3; + sStorage->state = 3; } else { PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_MoveMon); + SetPokeStorageTask(Task_MoveMon); } break; - case 5: + case MENU_PLACE: PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_PlaceMon); + SetPokeStorageTask(Task_PlaceMon); break; - case 4: + case MENU_SHIFT: if (!CanShiftMon()) { - sPSSData->state = 3; + sStorage->state = 3; } else { PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_ShiftMon); + SetPokeStorageTask(Task_ShiftMon); } break; - case 2: + case MENU_WITHDRAW: PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_WithdrawMon); + SetPokeStorageTask(Task_WithdrawMon); break; - case 1: - if (CanMovePartyMon()) + case MENU_STORE: + if (IsRemovingLastPartyMon()) { - sPSSData->state = 3; + sStorage->state = 3; } - else if (ItemIsMail(sPSSData->cursorMonItem)) + else if (ItemIsMail(sStorage->displayMonItemId)) { - sPSSData->state = 4; + sStorage->state = 4; } else { PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_DepositMenu); + SetPokeStorageTask(Task_DepositMenu); } break; - case 7: - if (CanMovePartyMon()) + case MENU_RELEASE: + if (IsRemovingLastPartyMon()) { - sPSSData->state = 3; + sStorage->state = 3; } - else if (sPSSData->cursorMonIsEgg) + else if (sStorage->displayMonIsEgg) { - sPSSData->state = 5; // Cannot release an Egg. + sStorage->state = 5; // Cannot release an Egg. } - else if (ItemIsMail(sPSSData->cursorMonItem)) + else if (ItemIsMail(sStorage->displayMonItemId)) { - sPSSData->state = 4; + sStorage->state = 4; } else { PlaySE(SE_SELECT); - SetPSSCallback(Cb_ReleaseMon); + SetPokeStorageTask(Task_ReleaseMon); } break; - case 6: + case MENU_SUMMARY: PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShowMonSummary); + SetPokeStorageTask(Task_ShowMonSummary); break; - case 8: + case MENU_MARK: PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShowMarkMenu); + SetPokeStorageTask(Task_ShowMarkMenu); break; - case 12: + case MENU_TAKE: PlaySE(SE_SELECT); - SetPSSCallback(Cb_TakeItemForMoving); + SetPokeStorageTask(Task_TakeItemForMoving); break; - case 13: + case MENU_GIVE: PlaySE(SE_SELECT); - SetPSSCallback(Cb_GiveMovingItemToMon); + SetPokeStorageTask(Task_GiveMovingItemToMon); break; - case 16: - SetPSSCallback(Cb_ItemToBag); + case MENU_BAG: + SetPokeStorageTask(Task_ItemToBag); break; - case 15: + case MENU_SWITCH: PlaySE(SE_SELECT); - SetPSSCallback(Cb_SwitchSelectedItem); + SetPokeStorageTask(Task_SwitchSelectedItem); break; - case 14: + case MENU_GIVE_2: PlaySE(SE_SELECT); - SetPSSCallback(Cb_GiveItemFromBag); + SetPokeStorageTask(Task_GiveItemFromBag); break; - case 17: - SetPSSCallback(Cb_ShowItemInfo); + case MENU_INFO: + SetPokeStorageTask(Task_ShowItemInfo); break; } break; case 3: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_LAST_POKE); - sPSSData->state = 6; + PrintMessage(MSG_LAST_POKE); + sStorage->state = 6; break; case 5: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_CANT_RELEASE_EGG); - sPSSData->state = 6; + PrintMessage(MSG_CANT_RELEASE_EGG); + sStorage->state = 6; break; case 4: PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); - sPSSData->state = 6; + PrintMessage(MSG_PLEASE_REMOVE_MAIL); + sStorage->state = 6; break; case 6: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_MoveMon(u8 taskId) +static void Task_MoveMon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - InitMonPlaceChange(0); - sPSSData->state++; + InitMonPlaceChange(CHANGE_GRAB); + sStorage->state++; break; case 1: if (!DoMonPlaceChange()) { if (sInPartyMenu) - SetPSSCallback(Cb_HandleMovingMonFromParty); + SetPokeStorageTask(Task_HandleMovingMonFromParty); else - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_PlaceMon(u8 taskId) +static void Task_PlaceMon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - InitMonPlaceChange(1); - sPSSData->state++; + InitMonPlaceChange(CHANGE_PLACE); + sStorage->state++; break; case 1: if (!DoMonPlaceChange()) { if (sInPartyMenu) - SetPSSCallback(Cb_HandleMovingMonFromParty); + SetPokeStorageTask(Task_HandleMovingMonFromParty); else - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_ShiftMon(u8 taskId) +static void Task_ShiftMon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - InitMonPlaceChange(2); - sPSSData->state++; + InitMonPlaceChange(CHANGE_SHIFT); + sStorage->state++; break; case 1: if (!DoMonPlaceChange()) { - BoxSetMosaic(); - SetPSSCallback(Cb_MainPSS); + StartDisplayMonMosaicEffect(); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_WithdrawMon(u8 taskId) +static void Task_WithdrawMon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: if (CalculatePlayerPartyCount() == PARTY_SIZE) { - PrintStorageActionText(PC_TEXT_PARTY_FULL); - sPSSData->state = 1; + PrintMessage(MSG_PARTY_FULL); + sStorage->state = 1; } else { - sub_80CDC18(); - InitMonPlaceChange(0); - sPSSData->state = 2; + SaveCursorPos(); + InitMonPlaceChange(CHANGE_GRAB); + sStorage->state = 2; } break; case 1: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 2: @@ -2953,135 +2835,134 @@ static void Cb_WithdrawMon(u8 taskId) { SetMovingMonPriority(1); SetUpDoShowPartyMenu(); - sPSSData->state++; + sStorage->state++; } break; case 3: if (!DoShowPartyMenu()) { - InitMonPlaceChange(1); - sPSSData->state++; + InitMonPlaceChange(CHANGE_PLACE); + sStorage->state++; } break; case 4: if (!DoMonPlaceChange()) { - sub_80CAB20(); - sPSSData->state++; + UpdatePartySlotColors(); + sStorage->state++; } break; case 5: - SetPSSCallback(Cb_HidePartyPokemon); + SetPokeStorageTask(Task_HidePartyPokemon); break; } } -static void Cb_DepositMenu(u8 taskId) +static void Task_DepositMenu(u8 taskId) { u8 boxId; - switch (sPSSData->state) + switch (sStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX); - sub_80C77E8(&sPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE); - sub_80C78D4(gUnknown_02039D0E); - sPSSData->state++; + PrintMessage(MSG_DEPOSIT_IN_WHICH_BOX); + LoadChooseBoxMenuGfx(&sStorage->chooseBoxMenu, GFXTAG_CHOOSE_BOX_MENU, PALTAG_MISC_1, 3, FALSE); + CreateChooseBoxMenuSprites(sDepositBoxId); + sStorage->state++; break; case 1: - boxId = HandleBoxChooseSelectionInput(); - if (boxId == 200) - { - // no box chosen yet - } - else if (boxId == 201) + boxId = HandleChooseBoxMenuInput(); + switch (boxId) { + case BOXID_NONE_CHOSEN: + break; + case BOXID_CANCELED: ClearBottomWindow(); - sub_80C78E4(); - sub_80C7890(); - SetPSSCallback(Cb_MainPSS); - } - else - { + DestroyChooseBoxMenuSprites(); + FreeChooseBoxMenu(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + default: if (TryStorePartyMonInBox(boxId)) { - gUnknown_02039D0E = boxId; + sDepositBoxId = boxId; ClearBottomWindow(); - sub_80C78E4(); - sub_80C7890(); - sPSSData->state = 2; + DestroyChooseBoxMenuSprites(); + FreeChooseBoxMenu(); + sStorage->state = 2; } else { - PrintStorageActionText(PC_TEXT_BOX_IS_FULL); - sPSSData->state = 4; + PrintMessage(MSG_BOX_IS_FULL); + sStorage->state = 4; } + break; } break; case 2: CompactPartySlots(); - sub_80CB950(); - sPSSData->state++; + CompactPartySprites(); + sStorage->state++; break; case 3: - if (!sub_80CB9BC()) + if (GetNumPartySpritesCompacting() == 0) { - sub_80CE22C(); - BoxSetMosaic(); - sub_80CAB20(); - SetPSSCallback(Cb_MainPSS); + ResetSelectionAfterDeposit(); + StartDisplayMonMosaicEffect(); + UpdatePartySlotColors(); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 4: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { - PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX); - sPSSData->state = 1; + PrintMessage(MSG_DEPOSIT_IN_WHICH_BOX); + sStorage->state = 1; } break; } } -static void Cb_ReleaseMon(u8 taskId) +static void Task_ReleaseMon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_RELEASE_POKE); + PrintMessage(MSG_RELEASE_POKE); ShowYesNoWindow(1); - sPSSData->state++; + sStorage->state++; // fallthrough case 1: switch (Menu_ProcessInputNoWrapClearOnChoose()) { case MENU_B_PRESSED: - case 1: + case 1: // No ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 0: + case 0: // Yes ClearBottomWindow(); - InitCanRelaseMonVars(); - sub_80CE250(); - sPSSData->state++; + InitCanReleaseMonVars(); + InitReleaseMon(); + sStorage->state++; break; } break; case 2: RunCanReleaseMon(); - if (!sub_80CE2A8()) + if (!TryHideReleaseMon()) { while (1) { - s8 r0 = RunCanReleaseMon(); - if (r0 == 1) + s8 canRelease = RunCanReleaseMon(); + if (canRelease == TRUE) { - sPSSData->state++; + sStorage->state++; break; } - else if (r0 == 0) + else if (!canRelease) { - sPSSData->state = 8; // Can't release the mon. + sStorage->state = 8; break; } } @@ -3089,15 +2970,15 @@ static void Cb_ReleaseMon(u8 taskId) break; case 3: ReleaseMon(); - RefreshCursorMonData(); - PrintStorageActionText(PC_TEXT_WAS_RELEASED); - sPSSData->state++; + RefreshDisplayMonData(); + PrintMessage(MSG_WAS_RELEASED); + sStorage->state++; break; case 4: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { - PrintStorageActionText(PC_TEXT_BYE_BYE); - sPSSData->state++; + PrintMessage(MSG_BYE_BYE); + sStorage->state++; } break; case 5: @@ -3107,331 +2988,332 @@ static void Cb_ReleaseMon(u8 taskId) if (sInPartyMenu) { CompactPartySlots(); - sub_80CB950(); - sPSSData->state++; + CompactPartySprites(); + sStorage->state++; } else { - sPSSData->state = 7; + sStorage->state = 7; } } break; case 6: - if (!sub_80CB9BC()) + if (GetNumPartySpritesCompacting() == 0) { - sub_80CE00C(); - BoxSetMosaic(); - sub_80CAB20(); - sPSSData->state++; + RefreshDisplayMon(); + StartDisplayMonMosaicEffect(); + UpdatePartySlotColors(); + sStorage->state++; } break; case 7: - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 8: - PrintStorageActionText(PC_TEXT_WAS_RELEASED); - sPSSData->state++; + // Start "can't release" sequence + PrintMessage(MSG_WAS_RELEASED); + sStorage->state++; break; case 9: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { - PrintStorageActionText(PC_TEXT_SURPRISE); - sPSSData->state++; + PrintMessage(MSG_SURPRISE); + sStorage->state++; } break; case 10: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sub_80CC064(); - sPSSData->state++; + ReshowReleaseMon(); + sStorage->state++; } break; case 11: - if (!sub_80CC0A0()) + if (!ResetReleaseMonSpritePtr()) { - sub_80CE324(); - PrintStorageActionText(PC_TEXT_CAME_BACK); - sPSSData->state++; + TrySetCursorFistAnim(); + PrintMessage(MSG_CAME_BACK); + sStorage->state++; } break; case 12: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { - PrintStorageActionText(PC_TEXT_WORRIED); - sPSSData->state++; + PrintMessage(MSG_WORRIED); + sStorage->state++; } break; case 13: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_ShowMarkMenu(u8 taskId) +static void Task_ShowMarkMenu(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_MARK_POKE); - sPSSData->markMenu.markings = sPSSData->cursorMonMarkings; - sub_811FAA4(sPSSData->cursorMonMarkings, 0xb0, 0x10); - sPSSData->state++; + PrintMessage(MSG_MARK_POKE); + sStorage->markMenu.markings = sStorage->displayMonMarkings; + OpenMonMarkingsMenu(sStorage->displayMonMarkings, 0xb0, 0x10); + sStorage->state++; break; case 1: - if (!MonMarkingsMenuHandleInput()) + if (!HandleMonMarkingsMenuInput()) { - sub_811FAF8(); + FreeMonMarkingsMenu(); ClearBottomWindow(); - SetMonMarkings(sPSSData->markMenu.markings); - RefreshCursorMonData(); - SetPSSCallback(Cb_MainPSS); + SetMonMarkings(sStorage->markMenu.markings); + RefreshDisplayMonData(); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_TakeItemForMoving(u8 taskId) +static void Task_TakeItemForMoving(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - if (!ItemIsMail(sPSSData->cursorMonItem)) + if (!ItemIsMail(sStorage->displayMonItemId)) { ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; } else { - SetPSSCallback(Cb_PrintCantStoreMail); + SetPokeStorageTask(Task_PrintCantStoreMail); } break; case 1: - sub_80CFE54(2); - Item_FromMonToMoving((sInPartyMenu != FALSE) ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - sPSSData->state++; + StartCursorAnim(CURSOR_ANIM_OPEN); + TakeItemFromMon(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetCursorPosition()); + sStorage->state++; break; case 2: - if (!sub_80D1218()) + if (!IsItemIconAnimActive()) { - sub_80CFE54(3); + StartCursorAnim(CURSOR_ANIM_FIST); ClearBottomWindow(); - sub_80CE00C(); - PrintCursorMonInfo(); - sPSSData->state++; + RefreshDisplayMon(); + PrintDisplayMonInfo(); + sStorage->state++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_GiveMovingItemToMon(u8 taskId) +static void Task_GiveMovingItemToMon(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; break; case 1: - sub_80CFE54(2); - Item_GiveMovingToMon((sInPartyMenu != FALSE) ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - sPSSData->state++; + StartCursorAnim(CURSOR_ANIM_OPEN); + GiveItemToMon(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetCursorPosition()); + sStorage->state++; break; case 2: - if (!sub_80D1218()) + if (!IsItemIconAnimActive()) { - sub_80CFE54(0); - sub_80CE00C(); - PrintCursorMonInfo(); - PrintStorageActionText(PC_TEXT_ITEM_IS_HELD); - sPSSData->state++; + StartCursorAnim(CURSOR_ANIM_BOUNCE); + RefreshDisplayMon(); + PrintDisplayMonInfo(); + PrintMessage(MSG_ITEM_IS_HELD); + sStorage->state++; } break; case 3: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_ItemToBag(u8 taskId) +static void Task_ItemToBag(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - if (!AddBagItem(sPSSData->cursorMonItem, 1)) + if (!AddBagItem(sStorage->displayMonItemId, 1)) { PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_BAG_FULL); - sPSSData->state = 3; + PrintMessage(MSG_BAG_FULL); + sStorage->state = 3; } else { PlaySE(SE_SELECT); - Item_TakeMons((sInPartyMenu != FALSE) ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - sPSSData->state = 1; + MoveItemFromMonToBag(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetCursorPosition()); + sStorage->state = 1; } break; case 1: - if (!sub_80D1218()) + if (!IsItemIconAnimActive()) { - PrintStorageActionText(PC_TEXT_PLACED_IN_BAG); - sPSSData->state = 2; + PrintMessage(MSG_PLACED_IN_BAG); + sStorage->state = 2; } break; case 2: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sub_80CE00C(); - PrintCursorMonInfo(); - sPSSData->state = 4; + RefreshDisplayMon(); + PrintDisplayMonInfo(); + sStorage->state = 4; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 3: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_SwitchSelectedItem(u8 taskId) +static void Task_SwitchSelectedItem(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - if (!ItemIsMail(sPSSData->cursorMonItem)) + if (!ItemIsMail(sStorage->displayMonItemId)) { ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; } else { - SetPSSCallback(Cb_PrintCantStoreMail); + SetPokeStorageTask(Task_PrintCantStoreMail); } break; case 1: - sub_80CFE54(2); - Item_SwitchMonsWithMoving((sInPartyMenu != FALSE) ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - sPSSData->state++; + StartCursorAnim(CURSOR_ANIM_OPEN); + SwapItemsWithMon(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetCursorPosition()); + sStorage->state++; break; case 2: - if (!sub_80D1218()) + if (!IsItemIconAnimActive()) { - sub_80CFE54(3); - sub_80CE00C(); - PrintCursorMonInfo(); - PrintStorageActionText(PC_TEXT_CHANGED_TO_ITEM); - sPSSData->state++; + StartCursorAnim(CURSOR_ANIM_FIST); + RefreshDisplayMon(); + PrintDisplayMonInfo(); + PrintMessage(MSG_CHANGED_TO_ITEM); + sStorage->state++; } break; case 3: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_ShowItemInfo(u8 taskId) +static void Task_ShowItemInfo(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { PlaySE(SE_WIN_OPEN); PrintItemDescription(); - sub_80D1818(); - sPSSData->state++; + InitItemInfoWindow(); + sStorage->state++; } break; case 2: - if (!sub_80D184C()) - sPSSData->state++; + if (!UpdateItemInfoWindowSlideIn()) + sStorage->state++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - sPSSData->state++; + sStorage->state++; break; case 4: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { PlaySE(SE_WIN_OPEN); - sPSSData->state++; + sStorage->state++; } break; case 5: - if (!sub_80D18E4()) - sPSSData->state++; + if (!UpdateItemInfoWindowSlideOut()) + sStorage->state++; break; case 6: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_CloseBoxWhileHoldingItem(u8 taskId) +static void Task_CloseBoxWhileHoldingItem(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_PUT_IN_BAG); + PrintMessage(MSG_PUT_IN_BAG); ShowYesNoWindow(0); - sPSSData->state = 1; + sStorage->state = 1; break; case 1: switch (Menu_ProcessInputNoWrapClearOnChoose()) { case MENU_B_PRESSED: - case 1: + case 1: // No ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 0: - if (AddBagItem(sPSSData->movingItem, 1) == TRUE) + case 0:// Yes + if (AddBagItem(sStorage->movingItemId, 1) == TRUE) { ClearBottomWindow(); - sPSSData->state = 3; + sStorage->state = 3; } else { - PrintStorageActionText(PC_TEXT_BAG_FULL); - sPSSData->state = 2; + PrintMessage(MSG_BAG_FULL); + sStorage->state = 2; } break; } @@ -3440,328 +3322,332 @@ static void Cb_CloseBoxWhileHoldingItem(u8 taskId) if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sPSSData->state = 5; + sStorage->state = 5; } break; case 3: - sub_80D1194(); - sPSSData->state = 4; + MoveItemFromCursorToBag(); + sStorage->state = 4; break; case 4: - if (!sub_80D1218()) + if (!IsItemIconAnimActive()) { - sub_80CFE54(0); - SetPSSCallback(Cb_MainPSS); + StartCursorAnim(CURSOR_ANIM_BOUNCE); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 5: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_HandleMovingMonFromParty(u8 taskId) +static void Task_HandleMovingMonFromParty(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: CompactPartySlots(); - sub_80CB950(); - sPSSData->state++; + CompactPartySprites(); + sStorage->state++; break; case 1: - if (!sub_80CB9BC()) + if (GetNumPartySpritesCompacting() == 0) { - sub_80CAB20(); - SetPSSCallback(Cb_MainPSS); + UpdatePartySlotColors(); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_PrintCantStoreMail(u8 taskId) +static void Task_PrintCantStoreMail(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_CANT_STORE_MAIL); - sPSSData->state++; + PrintMessage(MSG_CANT_STORE_MAIL); + sStorage->state++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) - sPSSData->state++; + sStorage->state++; break; case 2: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; } } -static void Cb_HandleBoxOptions(u8 taskId) +// Handle options menu that shows when the box title bar is selected +static void Task_HandleBoxOptions(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_WHAT_YOU_DO); + PrintMessage(MSG_WHAT_YOU_DO); AddMenu(); - sPSSData->state++; + sStorage->state++; break; case 1: - if (sub_80D00A8()) + if (IsMenuLoading()) return; - sPSSData->state++; + sStorage->state++; case 2: - switch (sub_80D00AC()) + switch (HandleMenuInput()) { - case -1: - case 0: - sub_80CD1A8(TRUE); + case MENU_B_PRESSED: + case MENU_CANCEL: + AnimateBoxScrollArrows(TRUE); ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 11: + case MENU_NAME: PlaySE(SE_SELECT); - SetPSSCallback(Cb_NameBox); + SetPokeStorageTask(Task_NameBox); break; - case 10: + case MENU_WALLPAPER: PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_HandleWallpapers); + SetPokeStorageTask(Task_HandleWallpapers); break; - case 9: + case MENU_JUMP: PlaySE(SE_SELECT); ClearBottomWindow(); - SetPSSCallback(Cb_JumpBox); + SetPokeStorageTask(Task_JumpBox); break; } break; } } -static void Cb_HandleWallpapers(u8 taskId) +static void Task_HandleWallpapers(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: AddWallpaperSetsMenu(); - PrintStorageActionText(PC_TEXT_PICK_A_THEME); - sPSSData->state++; + PrintMessage(MSG_PICK_A_THEME); + sStorage->state++; break; case 1: - if (!sub_80D00A8()) - sPSSData->state++; + if (!IsMenuLoading()) + sStorage->state++; break; case 2: - sPSSData->wallpaperSetId = sub_80D00AC(); - switch (sPSSData->wallpaperSetId) + sStorage->wallpaperSetId = HandleMenuInput(); + switch (sStorage->wallpaperSetId) { - case -1: - sub_80CD1A8(TRUE); + case MENU_B_PRESSED: + AnimateBoxScrollArrows(TRUE); ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; - case 18 ... 21: + case MENU_SCENERY_1: + case MENU_SCENERY_2: + case MENU_SCENERY_3: + case MENU_ETCETERA: PlaySE(SE_SELECT); - sub_80D013C(); - sPSSData->wallpaperSetId -= 18; - sPSSData->state++; + RemoveMenu(); + sStorage->wallpaperSetId -= MENU_WALLPAPER_SETS_START; + sStorage->state++; break; - // New wallpaper from Walda. - case 22: + case MENU_FRIENDS: + // New wallpaper from Walda. PlaySE(SE_SELECT); - sPSSData->wallpaperId = 16; - sub_80D013C(); + sStorage->wallpaperId = WALLPAPER_FRIENDS; + RemoveMenu(); ClearBottomWindow(); - sPSSData->state = 6; + sStorage->state = 6; break; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - AddWallpapersMenu(sPSSData->wallpaperSetId); - PrintStorageActionText(PC_TEXT_PICK_A_WALLPAPER); - sPSSData->state++; + AddWallpapersMenu(sStorage->wallpaperSetId); + PrintMessage(MSG_PICK_A_WALLPAPER); + sStorage->state++; } break; case 4: - sPSSData->wallpaperId = sub_80D00AC(); - switch (sPSSData->wallpaperId) + sStorage->wallpaperId = HandleMenuInput(); + switch (sStorage->wallpaperId) { - case -2: + case MENU_NOTHING_CHOSEN: break; - case -1: + case MENU_B_PRESSED: ClearBottomWindow(); - sPSSData->state = 0; + sStorage->state = 0; break; default: PlaySE(SE_SELECT); ClearBottomWindow(); - sPSSData->wallpaperId -= 23; - SetWallpaperForCurrentBox(sPSSData->wallpaperId); - sPSSData->state++; + sStorage->wallpaperId -= MENU_WALLPAPERS_START; + SetWallpaperForCurrentBox(sStorage->wallpaperId); + sStorage->state++; break; } break; case 5: if (!DoWallpaperGfxChange()) { - sub_80CD1A8(TRUE); - SetPSSCallback(Cb_MainPSS); + AnimateBoxScrollArrows(TRUE); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 6: if (!IsDma3ManagerBusyWithBgCopy()) { - SetWallpaperForCurrentBox(sPSSData->wallpaperId); - sPSSData->state = 5; + SetWallpaperForCurrentBox(sStorage->wallpaperId); + sStorage->state = 5; } break; } } -static void Cb_JumpBox(u8 taskId) +static void Task_JumpBox(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - PrintStorageActionText(PC_TEXT_JUMP_TO_WHICH_BOX); - sub_80C77E8(&sPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE); - sub_80C78D4(StorageGetCurrentBox()); - sPSSData->state++; + PrintMessage(MSG_JUMP_TO_WHICH_BOX); + LoadChooseBoxMenuGfx(&sStorage->chooseBoxMenu, GFXTAG_CHOOSE_BOX_MENU, PALTAG_MISC_1, 3, FALSE); + CreateChooseBoxMenuSprites(StorageGetCurrentBox()); + sStorage->state++; break; case 1: - sPSSData->newCurrBoxId = HandleBoxChooseSelectionInput(); - switch (sPSSData->newCurrBoxId) + sStorage->newCurrBoxId = HandleChooseBoxMenuInput(); + switch (sStorage->newCurrBoxId) { - case 200: + case BOXID_NONE_CHOSEN: break; default: ClearBottomWindow(); - sub_80C78E4(); - sub_80C7890(); - if (sPSSData->newCurrBoxId == 201 || sPSSData->newCurrBoxId == StorageGetCurrentBox()) + DestroyChooseBoxMenuSprites(); + FreeChooseBoxMenu(); + if (sStorage->newCurrBoxId == BOXID_CANCELED || sStorage->newCurrBoxId == StorageGetCurrentBox()) { - sub_80CD1A8(TRUE); - SetPSSCallback(Cb_MainPSS); + AnimateBoxScrollArrows(TRUE); + SetPokeStorageTask(Task_PokeStorageMain); } else { - sPSSData->state++; + sStorage->state++; } break; } break; case 2: - SetUpScrollToBox(sPSSData->newCurrBoxId); - sPSSData->state++; + SetUpScrollToBox(sStorage->newCurrBoxId); + sStorage->state++; break; case 3: if (!ScrollToBox()) { - SetCurrentBox(sPSSData->newCurrBoxId); - SetPSSCallback(Cb_MainPSS); + SetCurrentBox(sStorage->newCurrBoxId); + SetPokeStorageTask(Task_PokeStorageMain); } break; } } -static void Cb_NameBox(u8 taskId) +static void Task_NameBox(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - sub_80CE760(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sPSSData->state++; + SaveMovingMon(); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sStorage->state++; break; case 1: if (!UpdatePaletteFade()) { - sWhichToReshow = 1; - sPSSData->screenChangeType = SCREEN_CHANGE_NAME_BOX; - SetPSSCallback(Cb_ChangeScreen); + sWhichToReshow = SCREEN_CHANGE_NAME_BOX - 1; + sStorage->screenChangeType = SCREEN_CHANGE_NAME_BOX; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_ShowMonSummary(u8 taskId) +static void Task_ShowMonSummary(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - sub_80CE7E8(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sPSSData->state++; + InitSummaryScreenData(); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sStorage->state++; break; case 1: if (!UpdatePaletteFade()) { - sWhichToReshow = 0; - sPSSData->screenChangeType = SCREEN_CHANGE_SUMMARY_SCREEN; - SetPSSCallback(Cb_ChangeScreen); + sWhichToReshow = SCREEN_CHANGE_SUMMARY_SCREEN - 1; + sStorage->screenChangeType = SCREEN_CHANGE_SUMMARY_SCREEN; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_GiveItemFromBag(u8 taskId) +static void Task_GiveItemFromBag(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sPSSData->state++; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sStorage->state++; break; case 1: if (!UpdatePaletteFade()) { - sWhichToReshow = 2; - sPSSData->screenChangeType = SCREEN_CHANGE_ITEM_FROM_BAG; - SetPSSCallback(Cb_ChangeScreen); + sWhichToReshow = SCREEN_CHANGE_ITEM_FROM_BAG - 1; + sStorage->screenChangeType = SCREEN_CHANGE_ITEM_FROM_BAG; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_OnCloseBoxPressed(u8 taskId) +static void Task_OnCloseBoxPressed(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: if (IsMonBeingMoved()) { PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_HOLDING_POKE); - sPSSData->state = 1; + PrintMessage(MSG_HOLDING_POKE); + sStorage->state = 1; } - else if (IsActiveItemMoving()) + else if (IsMovingItem()) { - SetPSSCallback(Cb_CloseBoxWhileHoldingItem); + SetPokeStorageTask(Task_CloseBoxWhileHoldingItem); } else { PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_EXIT_BOX); + PrintMessage(MSG_EXIT_BOX); ShowYesNoWindow(0); - sPSSData->state = 2; + sStorage->state = 2; } break; case 1: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 2: @@ -3770,59 +3656,59 @@ static void Cb_OnCloseBoxPressed(u8 taskId) case MENU_B_PRESSED: case 1: ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 0: PlaySE(SE_PC_OFF); ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; break; } break; case 3: ComputerScreenCloseEffect(20, 0, 1); - sPSSData->state++; + sStorage->state++; break; case 4: if (!IsComputerScreenCloseEffectActive()) { - sub_80CABE0(); + UpdateBoxToSendMons(); gPlayerPartyCount = CalculatePlayerPartyCount(); - sPSSData->screenChangeType = SCREEN_CHANGE_EXIT_BOX; - SetPSSCallback(Cb_ChangeScreen); + sStorage->screenChangeType = SCREEN_CHANGE_EXIT_BOX; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_OnBPressed(u8 taskId) +static void Task_OnBPressed(u8 taskId) { - switch (sPSSData->state) + switch (sStorage->state) { case 0: if (IsMonBeingMoved()) { PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_HOLDING_POKE); - sPSSData->state = 1; + PrintMessage(MSG_HOLDING_POKE); + sStorage->state = 1; } - else if (IsActiveItemMoving()) + else if (IsMovingItem()) { - SetPSSCallback(Cb_CloseBoxWhileHoldingItem); + SetPokeStorageTask(Task_CloseBoxWhileHoldingItem); } else { PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_CONTINUE_BOX); + PrintMessage(MSG_CONTINUE_BOX); ShowYesNoWindow(0); - sPSSData->state = 2; + sStorage->state = 2; } break; case 1: if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) { ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); } break; case 2: @@ -3830,40 +3716,40 @@ static void Cb_OnBPressed(u8 taskId) { case 0: ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); + SetPokeStorageTask(Task_PokeStorageMain); break; case 1: case MENU_B_PRESSED: PlaySE(SE_PC_OFF); ClearBottomWindow(); - sPSSData->state++; + sStorage->state++; break; } break; case 3: ComputerScreenCloseEffect(20, 0, 0); - sPSSData->state++; + sStorage->state++; break; case 4: if (!IsComputerScreenCloseEffectActive()) { - sub_80CABE0(); + UpdateBoxToSendMons(); gPlayerPartyCount = CalculatePlayerPartyCount(); - sPSSData->screenChangeType = SCREEN_CHANGE_EXIT_BOX; - SetPSSCallback(Cb_ChangeScreen); + sStorage->screenChangeType = SCREEN_CHANGE_EXIT_BOX; + SetPokeStorageTask(Task_ChangeScreen); } break; } } -static void Cb_ChangeScreen(u8 taskId) +static void Task_ChangeScreen(u8 taskId) { struct BoxPokemon *boxMons; u8 mode, monIndex, maxMonIndex; - u8 screenChangeType = sPSSData->screenChangeType; + u8 screenChangeType = sStorage->screenChangeType; - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS && IsActiveItemMoving() == TRUE) - sMovingItemId = GetMovingItem(); + if (sStorage->boxOption == OPTION_MOVE_ITEMS && IsMovingItem() == TRUE) + sMovingItemId = GetMovingItemId(); else sMovingItemId = ITEM_NONE; @@ -3871,27 +3757,27 @@ static void Cb_ChangeScreen(u8 taskId) { case SCREEN_CHANGE_EXIT_BOX: default: - FreePSSData(); - SetMainCallback2(Cb2_ExitPSS); + FreePokeStorageData(); + SetMainCallback2(CB2_ExitPokeStorage); break; case SCREEN_CHANGE_SUMMARY_SCREEN: - boxMons = sPSSData->field_218C.box; - monIndex = sPSSData->field_2187; - maxMonIndex = sPSSData->field_2186; - mode = sPSSData->pokemonSummaryScreenMode; - FreePSSData(); - if (mode == PSS_MODE_NORMAL && boxMons == &gUnknown_02039D14.box) - ShowPokemonSummaryScreenSet40EF(mode, boxMons, monIndex, maxMonIndex, Cb2_ReturnToPSS); + boxMons = sStorage->summaryMon.box; + monIndex = sStorage->summaryStartPos; + maxMonIndex = sStorage->summaryMaxPos; + mode = sStorage->summaryScreenMode; + FreePokeStorageData(); + if (mode == SUMMARY_MODE_NORMAL && boxMons == &sSavedMovingMon.box) + ShowPokemonSummaryScreenSet40EF(mode, boxMons, monIndex, maxMonIndex, CB2_ReturnToPokeStorage); else - ShowPokemonSummaryScreen(mode, boxMons, monIndex, maxMonIndex, Cb2_ReturnToPSS); + ShowPokemonSummaryScreen(mode, boxMons, monIndex, maxMonIndex, CB2_ReturnToPokeStorage); break; case SCREEN_CHANGE_NAME_BOX: - FreePSSData(); - DoNamingScreen(NAMING_SCREEN_BOX, GetBoxNamePtr(StorageGetCurrentBox()), 0, 0, 0, Cb2_ReturnToPSS); + FreePokeStorageData(); + DoNamingScreen(NAMING_SCREEN_BOX, GetBoxNamePtr(StorageGetCurrentBox()), 0, 0, 0, CB2_ReturnToPokeStorage); break; case SCREEN_CHANGE_ITEM_FROM_BAG: - FreePSSData(); - GoToBagMenu(ITEMMENULOCATION_PCBOX, 0, Cb2_ReturnToPSS); + FreePokeStorageData(); + GoToBagMenu(ITEMMENULOCATION_PCBOX, 0, CB2_ReturnToPokeStorage); break; } @@ -3900,34 +3786,43 @@ static void Cb_ChangeScreen(u8 taskId) static void GiveChosenBagItem(void) { - u16 item = gSpecialVar_ItemId; + u16 itemId = gSpecialVar_ItemId; - if (item != 0) + if (itemId != ITEM_NONE) { - u8 id = GetBoxCursorPosition(); - + u8 pos = GetCursorPosition(); if (sInPartyMenu) - SetMonData(&gPlayerParty[id], MON_DATA_HELD_ITEM, &item); + SetMonData(&gPlayerParty[pos], MON_DATA_HELD_ITEM, &itemId); else - SetCurrentBoxMonData(id, MON_DATA_HELD_ITEM, &item); + SetCurrentBoxMonData(pos, MON_DATA_HELD_ITEM, &itemId); - RemoveBagItem(item, 1); + RemoveBagItem(itemId, 1); } } -static void FreePSSData(void) +static void FreePokeStorageData(void) { - sub_80D25F0(); - sub_80D01B8(); - FREE_AND_SET_NULL(sPSSData); + TilemapUtil_Free(); + MultiMove_Free(); + FREE_AND_SET_NULL(sStorage); FreeAllWindowBuffers(); } + +//------------------------------------------------------------------------------ +// SECTION: Misc +// +// No real uniform section below. Misc functions including more initialization, +// showing/hiding the party menu, updating the Close Box button, printing +// messages, doing the mosaic effect when transitioning between Pokémon, etc. +//------------------------------------------------------------------------------ + + static void SetScrollingBackground(void) { SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31)); - DecompressAndLoadBgGfxUsingHeap(3, gPokemonStorageScrollingBGTileset, 0, 0, 0); - LZ77UnCompVram(gPokemonStorageScrollingBGTilemap, (void *)BG_SCREEN_ADDR(31)); + DecompressAndLoadBgGfxUsingHeap(3, sScrollingBg_Gfx, 0, 0, 0); + LZ77UnCompVram(sScrollingBg_Tilemap, (void *)BG_SCREEN_ADDR(31)); } static void ScrollBackground(void) @@ -3936,19 +3831,19 @@ static void ScrollBackground(void) ChangeBgY(3, 128, 2); } -static void LoadPSSMenuGfx(void) +static void LoadPokeStorageMenuGfx(void) { - InitBgsFromTemplates(0, gUnknown_08572734, ARRAY_COUNT(gUnknown_08572734)); - DecompressAndLoadBgGfxUsingHeap(1, gPSSMenu_Gfx, 0, 0, 0); - LZ77UnCompWram(gUnknown_085722A0, sPSSData->field_5AC4); - SetBgTilemapBuffer(1, sPSSData->field_5AC4); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + DecompressAndLoadBgGfxUsingHeap(1, gStorageSystemMenu_Gfx, 0, 0, 0); + LZ77UnCompWram(sDisplayMenu_Tilemap, sStorage->displayMenuTilemapBuffer); + SetBgTilemapBuffer(1, sStorage->displayMenuTilemapBuffer); ShowBg(1); ScheduleBgCopyTilemapToVram(1); } -static bool8 InitPSSWindows(void) +static bool8 InitPokeStorageWindows(void) { - if (!InitWindows(gUnknown_08572714)) + if (!InitWindows(sWindowTemplates)) { return FALSE; } @@ -3964,73 +3859,73 @@ static void LoadWaveformSpritePalette(void) LoadSpritePalette(&gWaveformSpritePalette); } -static void sub_80CA0D8(void) +static void InitPalettesAndSprites(void) { - LoadPalette(gUnknown_085723DC, 0, 0x20); - LoadPalette(gUnknown_085723FC, 0x20, 0x20); - LoadPalette(gUnknown_085726F4, 0xF0, 0x20); - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) - LoadPalette(gUnknown_0857241C, 0x30, 0x20); + LoadPalette(sInterface_Pal, 0, sizeof(sInterface_Pal)); + LoadPalette(sPkmnDataGray_Pal, 0x20, sizeof(sPkmnDataGray_Pal)); + LoadPalette(sUnknown_Pal, 0xF0, sizeof(sUnknown_Pal)); + if (sStorage->boxOption != OPTION_MOVE_ITEMS) + LoadPalette(sBg_Pal, 0x30, sizeof(sBg_Pal)); else - LoadPalette(gUnknown_0857243C, 0x30, 0x20); + LoadPalette(sBgMoveItems_Pal, 0x30, sizeof(sBgMoveItems_Pal)); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30)); - LoadCursorMonSprite(); - sub_80CA154(); - sub_80CA1C4(); - RefreshCursorMonData(); + CreateDisplayMonSprite(); + CreateMarkingComboSprite(); + CreateWaveformSprites(); + RefreshDisplayMonData(); } -static void sub_80CA154(void) +static void CreateMarkingComboSprite(void) { - sPSSData->field_D94 = sub_811FFB4(TAG_TILE_10, TAG_PAL_DAC8, NULL); - sPSSData->field_D94->oam.priority = 1; - sPSSData->field_D94->subpriority = 1; - sPSSData->field_D94->pos1.x = 40; - sPSSData->field_D94->pos1.y = 150; - sPSSData->field_DA0 = (void*) OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10); + sStorage->markingComboSprite = CreateMonMarkingComboSprite(GFXTAG_MARKING_COMBO, PALTAG_MARKING_COMBO, NULL); + sStorage->markingComboSprite->oam.priority = 1; + sStorage->markingComboSprite->subpriority = 1; + sStorage->markingComboSprite->x = 40; + sStorage->markingComboSprite->y = 150; + sStorage->markingComboTilesPtr = (void*) OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(GFXTAG_MARKING_COMBO); } -static void sub_80CA1C4(void) +static void CreateWaveformSprites(void) { u16 i; - struct SpriteSheet sheet = gWaveformSpriteSheet; + struct SpriteSheet sheet = sSpriteSheet_Waveform; LoadSpriteSheet(&sheet); - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sStorage->waveformSprites); i++) { u8 spriteId = CreateSprite(&sSpriteTemplate_Waveform, i * 63 + 8, 9, 2); - sPSSData->field_D98[i] = &gSprites[spriteId]; + sStorage->waveformSprites[i] = &gSprites[spriteId]; } } -static void RefreshCursorMonData(void) +static void RefreshDisplayMonData(void) { - LoadCursorMonGfx(sPSSData->cursorMonSpecies, sPSSData->cursorMonPersonality); - PrintCursorMonInfo(); - sub_80CA65C(); + LoadDisplayMonGfx(sStorage->displayMonSpecies, sStorage->displayMonPersonality); + PrintDisplayMonInfo(); + UpdateWaveformAnimation(); ScheduleBgCopyTilemapToVram(0); } -static void BoxSetMosaic(void) +static void StartDisplayMonMosaicEffect(void) { - RefreshCursorMonData(); - if (sPSSData->cursorMonSprite) + RefreshDisplayMonData(); + if (sStorage->displayMonSprite) { - sPSSData->cursorMonSprite->oam.mosaic = TRUE; - sPSSData->cursorMonSprite->data[0] = 10; - sPSSData->cursorMonSprite->data[1] = 1; - sPSSData->cursorMonSprite->callback = sub_80CA2D0; - SetGpuReg(REG_OFFSET_MOSAIC, (sPSSData->cursorMonSprite->data[0] << 12) | (sPSSData->cursorMonSprite->data[0] << 8)); + sStorage->displayMonSprite->oam.mosaic = TRUE; + sStorage->displayMonSprite->data[0] = 10; + sStorage->displayMonSprite->data[1] = 1; + sStorage->displayMonSprite->callback = SpriteCB_DisplayMonMosaic; + SetGpuReg(REG_OFFSET_MOSAIC, (sStorage->displayMonSprite->data[0] << 12) | (sStorage->displayMonSprite->data[0] << 8)); } } -static u8 sub_80CA2B8(void) +static u8 IsDisplayMosaicActive(void) { - return sPSSData->cursorMonSprite->oam.mosaic; + return sStorage->displayMonSprite->oam.mosaic; } -static void sub_80CA2D0(struct Sprite *sprite) +static void SpriteCB_DisplayMonMosaic(struct Sprite *sprite) { sprite->data[0] -= sprite->data[1]; if (sprite->data[0] < 0) @@ -4043,22 +3938,22 @@ static void sub_80CA2D0(struct Sprite *sprite) } } -static void LoadCursorMonSprite(void) +static void CreateDisplayMonSprite(void) { u16 i; u16 tileStart; u8 palSlot; u8 spriteId; - struct SpriteSheet sheet = {sPSSData->field_22C4, 0x800, TAG_TILE_2}; - struct SpritePalette palette = {sPSSData->field_2244, TAG_PAL_DAC6}; - struct SpriteTemplate template = sSpriteTemplate_CursorMon; + struct SpriteSheet sheet = {sStorage->tileBuffer, MON_PIC_SIZE, GFXTAG_DISPLAY_MON}; + struct SpritePalette palette = {sStorage->displayMonPalBuffer, PALTAG_DISPLAY_MON}; + struct SpriteTemplate template = sSpriteTemplate_DisplayMon; - for (i = 0; i < 0x800; i++) - sPSSData->field_22C4[i] = 0; - for (i = 0; i < 0x10; i++) - sPSSData->field_2244[i] = 0; + for (i = 0; i < MON_PIC_SIZE; i++) + sStorage->tileBuffer[i] = 0; + for (i = 0; i < 16; i++) + sStorage->displayMonPalBuffer[i] = 0; - sPSSData->cursorMonSprite = NULL; + sStorage->displayMonSprite = NULL; do { @@ -4074,136 +3969,139 @@ static void LoadCursorMonSprite(void) if (spriteId == MAX_SPRITES) break; - sPSSData->cursorMonSprite = &gSprites[spriteId]; - sPSSData->field_223A = palSlot * 16 + 0x100; - sPSSData->field_223C = (void*) OBJ_VRAM0 + tileStart * 32; + sStorage->displayMonSprite = &gSprites[spriteId]; + sStorage->displayMonPalOffset = palSlot * 16 + 0x100; + sStorage->displayMonTilePtr = (void*) OBJ_VRAM0 + tileStart * 32; } while (0); - if (sPSSData->cursorMonSprite == NULL) + if (sStorage->displayMonSprite == NULL) { - FreeSpriteTilesByTag(TAG_TILE_2); - FreeSpritePaletteByTag(TAG_PAL_DAC6); + FreeSpriteTilesByTag(GFXTAG_DISPLAY_MON); + FreeSpritePaletteByTag(PALTAG_DISPLAY_MON); } } -static void LoadCursorMonGfx(u16 species, u32 pid) +static void LoadDisplayMonGfx(u16 species, u32 pid) { - if (sPSSData->cursorMonSprite == NULL) + if (sStorage->displayMonSprite == NULL) return; if (species != SPECIES_NONE) { - LoadSpecialPokePic(&gMonFrontPicTable[species], sPSSData->field_22C4, species, pid, TRUE); - LZ77UnCompWram(sPSSData->cursorMonPalette, sPSSData->field_2244); - CpuCopy32(sPSSData->field_22C4, sPSSData->field_223C, 0x800); - LoadPalette(sPSSData->field_2244, sPSSData->field_223A, 0x20); - sPSSData->cursorMonSprite->invisible = FALSE; + LoadSpecialPokePic(&gMonFrontPicTable[species], sStorage->tileBuffer, species, pid, TRUE); + LZ77UnCompWram(sStorage->displayMonPalette, sStorage->displayMonPalBuffer); + CpuCopy32(sStorage->tileBuffer, sStorage->displayMonTilePtr, MON_PIC_SIZE); + LoadPalette(sStorage->displayMonPalBuffer, sStorage->displayMonPalOffset, 0x20); + sStorage->displayMonSprite->invisible = FALSE; } else { - sPSSData->cursorMonSprite->invisible = TRUE; + sStorage->displayMonSprite->invisible = TRUE; } } -static void PrintCursorMonInfo(void) +static void PrintDisplayMonInfo(void) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) { - AddTextPrinterParameterized(0, 1, sPSSData->cursorMonNickText, 6, 0, TEXT_SPEED_FF, NULL); - AddTextPrinterParameterized(0, 2, sPSSData->cursorMonSpeciesName, 6, 15, TEXT_SPEED_FF, NULL); - AddTextPrinterParameterized(0, 2, sPSSData->cursorMonGenderLvlText, 10, 29, TEXT_SPEED_FF, NULL); - AddTextPrinterParameterized(0, 0, sPSSData->cursorMonItemName, 6, 43, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 1, sStorage->displayMonNameText, 6, 0, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 2, sStorage->displayMonSpeciesName, 6, 15, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 2, sStorage->displayMonGenderLvlText, 10, 29, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 0, sStorage->displayMonItemName, 6, 43, TEXT_SPEED_FF, NULL); } else { - AddTextPrinterParameterized(0, 0, sPSSData->cursorMonItemName, 6, 0, TEXT_SPEED_FF, NULL); - AddTextPrinterParameterized(0, 1, sPSSData->cursorMonNickText, 6, 13, TEXT_SPEED_FF, NULL); - AddTextPrinterParameterized(0, 2, sPSSData->cursorMonSpeciesName, 6, 28, TEXT_SPEED_FF, NULL); - AddTextPrinterParameterized(0, 2, sPSSData->cursorMonGenderLvlText, 10, 42, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 0, sStorage->displayMonItemName, 6, 0, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 1, sStorage->displayMonNameText, 6, 13, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 2, sStorage->displayMonSpeciesName, 6, 28, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 2, sStorage->displayMonGenderLvlText, 10, 42, TEXT_SPEED_FF, NULL); } CopyWindowToVram(0, 2); - if (sPSSData->cursorMonSpecies != SPECIES_NONE) + if (sStorage->displayMonSpecies != SPECIES_NONE) { - sub_8120084(sPSSData->cursorMonMarkings, sPSSData->field_DA0); - sPSSData->field_D94->invisible = FALSE; + UpdateMonMarkingTiles(sStorage->displayMonMarkings, sStorage->markingComboTilesPtr); + sStorage->markingComboSprite->invisible = FALSE; } else { - sPSSData->field_D94->invisible = TRUE; + sStorage->markingComboSprite->invisible = TRUE; } } -static void sub_80CA65C(void) +// Turn the wave animation on the sides of "Pkmn Data" on/off +static void UpdateWaveformAnimation(void) { u16 i; - if (sPSSData->cursorMonSpecies != SPECIES_NONE) + if (sStorage->displayMonSpecies != SPECIES_NONE) { - sub_80D27AC(0, 0, 0, 8, 2); - for (i = 0; i < 2; i++) - StartSpriteAnimIfDifferent(sPSSData->field_D98[i], i * 2 + 1); + // Start waveform animation and color "Pkmn Data" + TilemapUtil_SetRect(TILEMAPID_PKMN_DATA, 0, 0, 8, 2); + for (i = 0; i < ARRAY_COUNT(sStorage->waveformSprites); i++) + StartSpriteAnimIfDifferent(sStorage->waveformSprites[i], i * 2 + 1); } else { - sub_80D27AC(0, 0, 2, 8, 2); - for (i = 0; i < 2; i++) - StartSpriteAnim(sPSSData->field_D98[i], i * 2); + // Stop waveform animation and gray out "Pkmn Data" + TilemapUtil_SetRect(TILEMAPID_PKMN_DATA, 0, 2, 8, 2); + for (i = 0; i < ARRAY_COUNT(sStorage->waveformSprites); i++) + StartSpriteAnim(sStorage->waveformSprites[i], i * 2); } - sub_80D2918(0); + TilemapUtil_Update(TILEMAPID_PKMN_DATA); ScheduleBgCopyTilemapToVram(1); } -static void sub_80CA704(void) +static void InitSupplementalTilemaps(void) { - LZ77UnCompWram(gUnknown_08DD36C8, sPSSData->field_B0); - LoadPalette(gPSSMenu_Pal, 0x10, 0x20); - sub_80D2644(1, 1, sPSSData->field_B0, 12, 22); - sub_80D2644(2, 1, gUnknown_0857245C, 9, 4); - sub_80D2770(1, 10, 0); - sub_80D2770(2, 21, 0); - sub_80CAA74(); + LZ77UnCompWram(gStorageSystemPartyMenu_Tilemap, sStorage->partyMenuTilemapBuffer); + LoadPalette(gStorageSystemPartyMenu_Pal, 0x10, 0x20); + TilemapUtil_SetMap(TILEMAPID_PARTY_MENU, 1, sStorage->partyMenuTilemapBuffer, 12, 22); + TilemapUtil_SetMap(TILEMAPID_CLOSE_BUTTON, 1, sCloseBoxButton_Tilemap, 9, 4); + TilemapUtil_SetPos(TILEMAPID_PARTY_MENU, 10, 0); + TilemapUtil_SetPos(TILEMAPID_CLOSE_BUTTON, 21, 0); + SetPartySlotTilemaps(); if (sInPartyMenu) { - sub_80CA984(TRUE); + UpdateCloseBoxButtonTilemap(TRUE); CreatePartyMonsSprites(TRUE); - sub_80D2918(2); - sub_80D2918(1); + TilemapUtil_Update(TILEMAPID_CLOSE_BUTTON); + TilemapUtil_Update(TILEMAPID_PARTY_MENU); } else { - sub_80D27AC(1, 0, 20, 12, 2); - sub_80CA984(TRUE); - sub_80D2918(1); - sub_80D2918(2); + TilemapUtil_SetRect(TILEMAPID_PARTY_MENU, 0, 20, 12, 2); + UpdateCloseBoxButtonTilemap(TRUE); + TilemapUtil_Update(TILEMAPID_PARTY_MENU); + TilemapUtil_Update(TILEMAPID_CLOSE_BUTTON); } ScheduleBgCopyTilemapToVram(1); - sPSSData->unk_02C7 = 0; + sStorage->closeBoxFlashing = FALSE; } static void SetUpShowPartyMenu(void) { - sPSSData->field_2C0 = 20; - sPSSData->field_2C2 = 2; - sPSSData->field_2C5 = 0; + sStorage->partyMenuUnused1 = 20; + sStorage->partyMenuY = 2; + sStorage->partyMenuMoveTimer = 0; CreatePartyMonsSprites(FALSE); } static bool8 ShowPartyMenu(void) { - if (sPSSData->field_2C5 == 20) + if (sStorage->partyMenuMoveTimer == 20) return FALSE; - sPSSData->field_2C0--; - sPSSData->field_2C2++; - sub_80D27F4(1, 3, 1); - sub_80D2918(1); + sStorage->partyMenuUnused1--; + sStorage->partyMenuY++; + TilemapUtil_Move(TILEMAPID_PARTY_MENU, 3, 1); + TilemapUtil_Update(TILEMAPID_PARTY_MENU); ScheduleBgCopyTilemapToVram(1); - sub_80CBAF0(8); - if (++sPSSData->field_2C5 == 20) + MovePartySprites(8); + if (++sStorage->partyMenuMoveTimer == 20) { sInPartyMenu = TRUE; return FALSE; @@ -4216,24 +4114,24 @@ static bool8 ShowPartyMenu(void) static void SetUpHidePartyMenu(void) { - sPSSData->field_2C0 = 0; - sPSSData->field_2C2 = 22; - sPSSData->field_2C5 = 0; - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) - sub_80D11CC(); + sStorage->partyMenuUnused1 = 0; + sStorage->partyMenuY = 22; + sStorage->partyMenuMoveTimer = 0; + if (sStorage->boxOption == OPTION_MOVE_ITEMS) + MoveHeldItemWithPartyMenu(); } static bool8 HidePartyMenu(void) { - if (sPSSData->field_2C5 != 20) + if (sStorage->partyMenuMoveTimer != 20) { - sPSSData->field_2C0++; - sPSSData->field_2C2--; - sub_80D27F4(1, 3, -1); - sub_80D2918(1); - FillBgTilemapBufferRect_Palette0(1, 0x100, 10, sPSSData->field_2C2, 12, 1); - sub_80CBAF0(-8); - if (++sPSSData->field_2C5 != 20) + sStorage->partyMenuUnused1++; + sStorage->partyMenuY--; + TilemapUtil_Move(TILEMAPID_PARTY_MENU, 3, -1); + TilemapUtil_Update(TILEMAPID_PARTY_MENU); + FillBgTilemapBufferRect_Palette0(1, 0x100, 10, sStorage->partyMenuY, 12, 1); + MovePartySprites(-8); + if (++sStorage->partyMenuMoveTimer != 20) { ScheduleBgCopyTilemapToVram(1); return TRUE; @@ -4243,8 +4141,11 @@ static bool8 HidePartyMenu(void) sInPartyMenu = FALSE; DestroyAllPartyMonIcons(); CompactPartySlots(); - sub_80D27AC(2, 0, 0, 9, 2); - sub_80D2918(2); + + // The close box button gets partially covered by + // the party menu, restore it + TilemapUtil_SetRect(TILEMAPID_CLOSE_BUTTON, 0, 0, 9, 2); + TilemapUtil_Update(TILEMAPID_CLOSE_BUTTON); ScheduleBgCopyTilemapToVram(1); return FALSE; } @@ -4253,110 +4154,111 @@ static bool8 HidePartyMenu(void) return FALSE; } -static void sub_80CA984(bool8 arg0) +static void UpdateCloseBoxButtonTilemap(bool8 normal) { - if (arg0) - sub_80D27AC(2, 0, 0, 9, 2); - else - sub_80D27AC(2, 0, 2, 9, 2); + if (normal) + TilemapUtil_SetRect(TILEMAPID_CLOSE_BUTTON, 0, 0, 9, 2); + else // flashing + TilemapUtil_SetRect(TILEMAPID_CLOSE_BUTTON, 0, 2, 9, 2); - sub_80D2918(2); + TilemapUtil_Update(TILEMAPID_CLOSE_BUTTON); ScheduleBgCopyTilemapToVram(1); } -static void sub_80CA9C0(void) +static void StartFlashingCloseBoxButton(void) { - sPSSData->unk_02C7 = 1; - sPSSData->unk_02C8 = 30; - sPSSData->unk_02C9 = TRUE; + sStorage->closeBoxFlashing = TRUE; + sStorage->closeBoxFlashTimer = 30; + sStorage->closeBoxFlashState = TRUE; } -static void sub_80CA9EC(void) +static void StopFlashingCloseBoxButton(void) { - if (sPSSData->unk_02C7) + if (sStorage->closeBoxFlashing) { - sPSSData->unk_02C7 = 0; - sub_80CA984(TRUE); + sStorage->closeBoxFlashing = FALSE; + UpdateCloseBoxButtonTilemap(TRUE); } } -static void sub_80CAA14(void) +static void UpdateCloseBoxButtonFlash(void) { - if (sPSSData->unk_02C7 && ++sPSSData->unk_02C8 > 30) + if (sStorage->closeBoxFlashing && ++sStorage->closeBoxFlashTimer > 30) { - sPSSData->unk_02C8 = 0; - sPSSData->unk_02C9 = (sPSSData->unk_02C9 == FALSE); - sub_80CA984(sPSSData->unk_02C9); + sStorage->closeBoxFlashTimer = 0; + sStorage->closeBoxFlashState = (sStorage->closeBoxFlashState == FALSE); + UpdateCloseBoxButtonTilemap(sStorage->closeBoxFlashState); } } -static void sub_80CAA74(void) +static void SetPartySlotTilemaps(void) { u8 i; + // Skips first party slot, it should always be drawn + // as if it has a Pokémon in it for (i = 1; i < PARTY_SIZE; i++) { - s32 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); - sub_80CAAA8(i, (species != SPECIES_NONE)); + s32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); + SetPartySlotTilemap(i, species != SPECIES_NONE); } } -static void sub_80CAAA8(u8 arg0, bool8 isPartyMon) +static void SetPartySlotTilemap(u8 partyId, bool8 hasMon) { u16 i, j, index; const u16 *data; - if (isPartyMon) - data = gUnknown_085724A4; + if (hasMon) + data = sPartySlotFilled_Tilemap; else - data = gUnknown_085724BC; + data = sPartySlotEmpty_Tilemap; - index = 3 * (3 * (arg0 - 1) + 1); + index = 3 * (3 * (partyId - 1) + 1); index *= 4; index += 7; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) - { - sPSSData->field_B0[index + j] = data[j]; - } + sStorage->partyMenuTilemapBuffer[index + j] = data[j]; + data += 4; index += 12; } } -static void sub_80CAB20(void) +static void UpdatePartySlotColors(void) { - sub_80CAA74(); - sub_80D27AC(1, 0, 0, 12, 22); - sub_80D2918(1); + SetPartySlotTilemaps(); + TilemapUtil_SetRect(TILEMAPID_PARTY_MENU, 0, 0, 12, 22); + TilemapUtil_Update(TILEMAPID_PARTY_MENU); ScheduleBgCopyTilemapToVram(1); } static void SetUpDoShowPartyMenu(void) { - sPSSData->showPartyMenuState = 0; + sStorage->showPartyMenuState = 0; PlaySE(SE_WIN_OPEN); SetUpShowPartyMenu(); } static bool8 DoShowPartyMenu(void) { - switch (sPSSData->showPartyMenuState) + switch (sStorage->showPartyMenuState) { case 0: if (!ShowPartyMenu()) { - sub_80CDBA0(); - sPSSData->showPartyMenuState++; + SetCursorInParty(); + sStorage->showPartyMenuState++; } break; case 1: - if (!sub_80CD554()) + if (!UpdateCursorPos()) { - if (sPSSData->setMosaic) - BoxSetMosaic(); - sPSSData->showPartyMenuState++; + if (sStorage->setMosaic) + StartDisplayMonMosaicEffect(); + sStorage->showPartyMenuState++; } break; case 2: @@ -4365,7 +4267,7 @@ static bool8 DoShowPartyMenu(void) return TRUE; } -static void sub_80CABE0(void) +static void UpdateBoxToSendMons(void) { if (sLastUsedBox != StorageGetCurrentBox()) { @@ -4374,7 +4276,7 @@ static void sub_80CABE0(void) } } -static void sub_80CAC1C(void) +static void InitPokeStorageBg0(void) { SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); LoadUserWindowBorderGfx(1, 2, 208); @@ -4382,42 +4284,42 @@ static void sub_80CAC1C(void) CopyBgTilemapBufferToVram(0); } -static void PrintStorageActionText(u8 id) +static void PrintMessage(u8 id) { u8 *txtPtr; DynamicPlaceholderTextUtil_Reset(); - switch (gPCStorageActionTexts[id].format) + switch (sMessages[id].format) { - case PC_TEXT_FMT_NORMAL: + case MSG_VAR_NONE: break; - case PC_TEXT_FMT_MON_NAME_1: - case PC_TEXT_FMT_MON_NAME_2: - case PC_TEXT_FMT_MON_NAME_3: - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPSSData->cursorMonNick); + case MSG_VAR_MON_NAME_1: + case MSG_VAR_MON_NAME_2: + case MSG_VAR_MON_NAME_3: + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sStorage->displayMonName); break; - case PC_TEXT_FMT_MON_NAME_4: - case PC_TEXT_FMT_MON_NAME_5: - case PC_TEXT_FMT_MON_NAME_6: - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPSSData->field_21E0); + case MSG_VAR_RELEASE_MON_1: + case MSG_VAR_RELEASE_MON_2: + case MSG_VAR_RELEASE_MON_3: + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sStorage->releaseMonName); break; - case PC_TEXT_FMT_ITEM_NAME: - if (IsActiveItemMoving()) - txtPtr = StringCopy(sPSSData->itemName, GetMovingItemName()); + case MSG_VAR_ITEM_NAME: + if (IsMovingItem()) + txtPtr = StringCopy(sStorage->itemName, GetMovingItemName()); else - txtPtr = StringCopy(sPSSData->itemName, sPSSData->cursorMonItemName); + txtPtr = StringCopy(sStorage->itemName, sStorage->displayMonItemName); while (*(txtPtr - 1) == CHAR_SPACE) txtPtr--; *txtPtr = EOS; - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPSSData->itemName); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sStorage->itemName); break; } - DynamicPlaceholderTextUtil_ExpandPlaceholders(sPSSData->field_2190, gPCStorageActionTexts[id].text); + DynamicPlaceholderTextUtil_ExpandPlaceholders(sStorage->messageText, sMessages[id].text); FillWindowPixelBuffer(1, PIXEL_FILL(1)); - AddTextPrinterParameterized(1, 1, sPSSData->field_2190, 0, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(1, 1, sStorage->messageText, 0, 1, TEXT_SPEED_FF, NULL); DrawTextBorderOuter(1, 2, 14); PutWindowTilemap(1); CopyWindowToVram(1, 2); @@ -4439,12 +4341,12 @@ static void ClearBottomWindow(void) static void AddWallpaperSetsMenu(void) { InitMenu(); - SetMenuText(18); - SetMenuText(19); - SetMenuText(20); - SetMenuText(21); + SetMenuText(MENU_SCENERY_1); + SetMenuText(MENU_SCENERY_2); + SetMenuText(MENU_SCENERY_3); + SetMenuText(MENU_ETCETERA); if (IsWaldaWallpaperUnlocked()) - SetMenuText(22); + SetMenuText(MENU_FRIENDS); AddMenu(); } @@ -4453,29 +4355,29 @@ static void AddWallpapersMenu(u8 wallpaperSet) InitMenu(); switch (wallpaperSet) { - case 0: - SetMenuText(23); - SetMenuText(24); - SetMenuText(25); - SetMenuText(26); + case MENU_SCENERY_1 - MENU_WALLPAPER_SETS_START: + SetMenuText(MENU_FOREST); + SetMenuText(MENU_CITY); + SetMenuText(MENU_DESERT); + SetMenuText(MENU_SAVANNA); break; - case 1: - SetMenuText(27); - SetMenuText(28); - SetMenuText(29); - SetMenuText(30); + case MENU_SCENERY_2 - MENU_WALLPAPER_SETS_START: + SetMenuText(MENU_CRAG); + SetMenuText(MENU_VOLCANO); + SetMenuText(MENU_SNOW); + SetMenuText(MENU_CAVE); break; - case 2: - SetMenuText(31); - SetMenuText(32); - SetMenuText(33); - SetMenuText(34); + case MENU_SCENERY_3 - MENU_WALLPAPER_SETS_START: + SetMenuText(MENU_BEACH); + SetMenuText(MENU_SEAFLOOR); + SetMenuText(MENU_RIVER); + SetMenuText(MENU_SKY); break; - case 3: - SetMenuText(35); - SetMenuText(36); - SetMenuText(37); - SetMenuText(38); + case MENU_ETCETERA - MENU_WALLPAPER_SETS_START: + SetMenuText(MENU_POLKADOT); + SetMenuText(MENU_POKECENTER); + SetMenuText(MENU_MACHINE); + SetMenuText(MENU_SIMPLE); break; } AddMenu(); @@ -4486,57 +4388,67 @@ static u8 GetCurrentBoxOption(void) return sCurrentBoxOption; } -static void sub_80CAEAC(void) +static void InitCursorItemIcon(void) { - if (!IsCursorOnBox()) + if (!IsCursorOnBoxTitle()) { if (sInPartyMenu) - sub_80D0D8C(CURSOR_AREA_IN_PARTY, GetBoxCursorPosition()); + TryLoadItemIconAtPos(CURSOR_AREA_IN_PARTY, GetCursorPosition()); else - sub_80D0D8C(CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); + TryLoadItemIconAtPos(CURSOR_AREA_IN_BOX, GetCursorPosition()); } if (sMovingItemId != ITEM_NONE) { - sub_80D0F38(sMovingItemId); - sub_80CFE54(3); + InitItemIconInCursor(sMovingItemId); + StartCursorAnim(CURSOR_ANIM_FIST); } } -static void sub_80CAF04(void) + +//------------------------------------------------------------------------------ +// SECTION: Pokémon sprites +// +// The below functions generally handle the Pokémon icon sprites, including +// moving them with a scrolling box, shifting the party sprites, and +// animating released Pokémon. +//------------------------------------------------------------------------------ + + +static void InitMonIconFields(void) { u16 i; LoadMonIconPalettes(); - for (i = 0; i < 40; i++) - sPSSData->field_B08[i] = 0; - for (i = 0; i < 40; i++) - sPSSData->field_B58[i] = 0; + for (i = 0; i < MAX_MON_ICONS; i++) + sStorage->numIconsPerSpecies[i] = 0; + for (i = 0; i < MAX_MON_ICONS; i++) + sStorage->iconSpeciesList[i] = SPECIES_NONE; for (i = 0; i < PARTY_SIZE; i++) - sPSSData->partySprites[i] = NULL; + sStorage->partySprites[i] = NULL; for (i = 0; i < IN_BOX_COUNT; i++) - sPSSData->boxMonsSprites[i] = NULL; + sStorage->boxMonsSprites[i] = NULL; - sPSSData->movingMonSprite = NULL; - sPSSData->field_78C = 0; + sStorage->movingMonSprite = NULL; + sStorage->unkUnused1 = 0; } -static u8 sub_80CAFAC(void) +static u8 GetMonIconPriorityByCursorPos(void) { return (IsCursorInBox() ? 2 : 1); } static void CreateMovingMonIcon(void) { - u32 personality = GetMonData(&sPSSData->movingMon, MON_DATA_PERSONALITY); - u16 species = GetMonData(&sPSSData->movingMon, MON_DATA_SPECIES2); - u8 priority = sub_80CAFAC(); + u32 personality = GetMonData(&sStorage->movingMon, MON_DATA_PERSONALITY); + u16 species = GetMonData(&sStorage->movingMon, MON_DATA_SPECIES2); + u8 priority = GetMonIconPriorityByCursorPos(); - sPSSData->movingMonSprite = CreateMonIconSprite(species, personality, 0, 0, priority, 7); - sPSSData->movingMonSprite->callback = sub_80CC100; + sStorage->movingMonSprite = CreateMonIconSprite(species, personality, 0, 0, priority, 7); + sStorage->movingMonSprite->callback = SpriteCB_HeldMon; } -static void sub_80CB028(u8 boxId) +static void InitBoxMonSprites(u8 boxId) { u8 boxPosition; u16 i, j, count; @@ -4545,224 +4457,255 @@ static void sub_80CB028(u8 boxId) count = 0; boxPosition = 0; - for (i = 0; i < IN_BOX_COLUMNS; i++) + + // For each box slot, create a Pokémon icon if a species is present + for (i = 0; i < IN_BOX_ROWS; i++) { - for (j = 0; j < IN_BOX_ROWS; j++) + for (j = 0; j < IN_BOX_COLUMNS; j++) { species = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); if (species != SPECIES_NONE) { personality = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); - sPSSData->boxMonsSprites[count] = CreateMonIconSprite(species, personality, 8 * (3 * j) + 100, 8 * (3 * i) + 44, 2, 19 - j); + sStorage->boxMonsSprites[count] = CreateMonIconSprite(species, personality, 8 * (3 * j) + 100, 8 * (3 * i) + 44, 2, 19 - j); } else { - sPSSData->boxMonsSprites[count] = NULL; + sStorage->boxMonsSprites[count] = NULL; } boxPosition++; count++; } } - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + // If in item mode, set all Pokémon icons with no item to be transparent + if (sStorage->boxOption == OPTION_MOVE_ITEMS) { for (boxPosition = 0; boxPosition < IN_BOX_COUNT; boxPosition++) { - if (GetBoxMonDataAt(boxId, boxPosition, MON_DATA_HELD_ITEM) == 0) - sPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + if (GetBoxMonDataAt(boxId, boxPosition, MON_DATA_HELD_ITEM) == ITEM_NONE) + sStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; } } } -static void sub_80CB140(u8 boxPosition) +static void CreateBoxMonIconAtPos(u8 boxPosition) { u16 species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES2); if (species != SPECIES_NONE) { - s16 x = 8 * (3 * (boxPosition % IN_BOX_ROWS)) + 100; - s16 y = 8 * (3 * (boxPosition / IN_BOX_ROWS)) + 44; + s16 x = 8 * (3 * (boxPosition % IN_BOX_COLUMNS)) + 100; + s16 y = 8 * (3 * (boxPosition / IN_BOX_COLUMNS)) + 44; u32 personality = GetCurrentBoxMonData(boxPosition, MON_DATA_PERSONALITY); - sPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (boxPosition % IN_BOX_ROWS)); - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) - sPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + sStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (boxPosition % IN_BOX_COLUMNS)); + if (sStorage->boxOption == OPTION_MOVE_ITEMS) + sStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; } } -static void sub_80CB1F0(s16 arg0) +#define sDistance data[1] +#define sSpeed data[2] +#define sScrollInDestX data[3] +#define sDelay data[4] +#define sScrollOutX data[5] + +static void StartBoxMonIconsScrollOut(s16 speed) { u16 i; for (i = 0; i < IN_BOX_COUNT; i++) { - if (sPSSData->boxMonsSprites[i] != NULL) + if (sStorage->boxMonsSprites[i] != NULL) { - sPSSData->boxMonsSprites[i]->data[2] = arg0; - sPSSData->boxMonsSprites[i]->data[4] = 1; - sPSSData->boxMonsSprites[i]->callback = sub_80CB278; + sStorage->boxMonsSprites[i]->sSpeed = speed; + sStorage->boxMonsSprites[i]->sDelay = 1; + sStorage->boxMonsSprites[i]->callback = SpriteCB_BoxMonIconScrollOut; } } } -static void sub_80CB234(struct Sprite *sprite) +static void SpriteCB_BoxMonIconScrollIn(struct Sprite *sprite) { - if (sprite->data[1] != 0) + if (sprite->sDistance != 0) { - sprite->data[1]--; - sprite->pos1.x += sprite->data[2]; + // Icon moving + sprite->sDistance--; + sprite->x += sprite->sSpeed; } else { - sPSSData->field_C66--; - sprite->pos1.x = sprite->data[3]; + // Icon arrived + sStorage->iconScrollNumIncoming--; + sprite->x = sprite->sScrollInDestX; sprite->callback = SpriteCallbackDummy; } } -static void sub_80CB278(struct Sprite *sprite) +static void SpriteCB_BoxMonIconScrollOut(struct Sprite *sprite) { - if (sprite->data[4] != 0) + if (sprite->sDelay != 0) { - sprite->data[4]--; + sprite->sDelay--; } else { - sprite->pos1.x += sprite->data[2]; - sprite->data[5] = sprite->pos1.x + sprite->pos2.x; - if (sprite->data[5] <= 68 || sprite->data[5] >= 252) + // Icon moving + sprite->x += sprite->sSpeed; + sprite->sScrollOutX = sprite->x + sprite->x2; + + // Check if icon offscreen + if (sprite->sScrollOutX <= 68 || sprite->sScrollOutX >= 252) sprite->callback = SpriteCallbackDummy; } } -static void DestroyAllIconsInRow(u8 row) +// Sprites for Pokémon icons are destroyed during +// the box scroll once they've gone offscreen +static void DestroyBoxMonIconsInColumn(u8 column) { - u16 column; - u8 boxPosition = row; + u16 row; + u8 boxPosition = column; - for (column = 0; column < IN_BOX_COLUMNS; column++) + for (row = 0; row < IN_BOX_ROWS; row++) { - if (sPSSData->boxMonsSprites[boxPosition] != NULL) + if (sStorage->boxMonsSprites[boxPosition] != NULL) { - DestroyBoxMonIcon(sPSSData->boxMonsSprites[boxPosition]); - sPSSData->boxMonsSprites[boxPosition] = NULL; + DestroyBoxMonIcon(sStorage->boxMonsSprites[boxPosition]); + sStorage->boxMonsSprites[boxPosition] = NULL; } - boxPosition += IN_BOX_ROWS; + boxPosition += IN_BOX_COLUMNS; } } -static u8 sub_80CB2F8(u8 row, u16 times, s16 xDelta) +// Create the appearing icons for the incoming scrolling box +static u8 CreateBoxMonIconsInColumn(u8 column, u16 distance, s16 speed) { s32 i; u16 y = 44; - s16 xDest = 8 * (3 * row) + 100; - u16 x = xDest - ((times + 1) * xDelta); - u8 subpriority = 19 - row; - u8 count = 0; - u8 boxPosition = row; + s16 xDest = 8 * (3 * column) + 100; + u16 x = xDest - ((distance + 1) * speed); + u8 subpriority = 19 - column; + u8 iconsCreated = 0; + u8 boxPosition = column; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) { - for (i = 0; i < IN_BOX_COLUMNS; i++) + for (i = 0; i < IN_BOX_ROWS; i++) { - if (sPSSData->boxSpecies[boxPosition] != SPECIES_NONE) + if (sStorage->boxSpecies[boxPosition] != SPECIES_NONE) { - sPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(sPSSData->boxSpecies[boxPosition], - sPSSData->boxPersonalities[boxPosition], + sStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(sStorage->boxSpecies[boxPosition], + sStorage->boxPersonalities[boxPosition], x, y, 2, subpriority); - if (sPSSData->boxMonsSprites[boxPosition] != NULL) + if (sStorage->boxMonsSprites[boxPosition] != NULL) { - sPSSData->boxMonsSprites[boxPosition]->data[1] = times; - sPSSData->boxMonsSprites[boxPosition]->data[2] = xDelta; - sPSSData->boxMonsSprites[boxPosition]->data[3] = xDest; - sPSSData->boxMonsSprites[boxPosition]->callback = sub_80CB234; - count++; + sStorage->boxMonsSprites[boxPosition]->sDistance = distance; + sStorage->boxMonsSprites[boxPosition]->sSpeed = speed; + sStorage->boxMonsSprites[boxPosition]->sScrollInDestX = xDest; + sStorage->boxMonsSprites[boxPosition]->callback = SpriteCB_BoxMonIconScrollIn; + iconsCreated++; } } - boxPosition += IN_BOX_ROWS; + boxPosition += IN_BOX_COLUMNS; y += 24; } } else { - for (i = 0; i < IN_BOX_COLUMNS; i++) + // Separate case for Move Items mode is used + // to create the icons with the proper blend + for (i = 0; i < IN_BOX_ROWS; i++) { - if (sPSSData->boxSpecies[boxPosition] != SPECIES_NONE) + if (sStorage->boxSpecies[boxPosition] != SPECIES_NONE) { - sPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(sPSSData->boxSpecies[boxPosition], - sPSSData->boxPersonalities[boxPosition], + sStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(sStorage->boxSpecies[boxPosition], + sStorage->boxPersonalities[boxPosition], x, y, 2, subpriority); - if (sPSSData->boxMonsSprites[boxPosition] != NULL) + if (sStorage->boxMonsSprites[boxPosition] != NULL) { - sPSSData->boxMonsSprites[boxPosition]->data[1] = times; - sPSSData->boxMonsSprites[boxPosition]->data[2] = xDelta; - sPSSData->boxMonsSprites[boxPosition]->data[3] = xDest; - sPSSData->boxMonsSprites[boxPosition]->callback = sub_80CB234; - if (GetBoxMonDataAt(sPSSData->field_C5C, boxPosition, MON_DATA_HELD_ITEM) == 0) - sPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; - count++; + sStorage->boxMonsSprites[boxPosition]->sDistance = distance; + sStorage->boxMonsSprites[boxPosition]->sSpeed = speed; + sStorage->boxMonsSprites[boxPosition]->sScrollInDestX = xDest; + sStorage->boxMonsSprites[boxPosition]->callback = SpriteCB_BoxMonIconScrollIn; + if (GetBoxMonDataAt(sStorage->incomingBoxId, boxPosition, MON_DATA_HELD_ITEM) == ITEM_NONE) + sStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + iconsCreated++; } } - boxPosition += IN_BOX_ROWS; + boxPosition += IN_BOX_COLUMNS; y += 24; } } - return count; + return iconsCreated; } -static void sub_80CB4CC(u8 boxId, s8 direction) +#undef sDistance +#undef sSpeed +#undef sScrollInDestX +#undef sDelay +#undef sScrollOutX + +static void InitBoxMonIconScroll(u8 boxId, s8 direction) { - sPSSData->field_C6A = 0; - sPSSData->field_C6B = boxId; - sPSSData->field_C69 = direction; - sPSSData->field_C60 = 32; - sPSSData->field_C64 = -(6 * direction); - sPSSData->field_C66 = 0; - SetBoxSpeciesAndPersonalities(boxId); + sStorage->iconScrollState = 0; + sStorage->iconScrollToBoxId = boxId; + sStorage->iconScrollDirection = direction; + sStorage->iconScrollDistance = 32; + sStorage->iconScrollSpeed = -(6 * direction); + sStorage->iconScrollNumIncoming = 0; + GetIncomingBoxMonData(boxId); if (direction > 0) - sPSSData->field_C68 = 0; + sStorage->iconScrollCurColumn = 0; else - sPSSData->field_C68 = IN_BOX_ROWS - 1; + sStorage->iconScrollCurColumn = IN_BOX_COLUMNS - 1; - sPSSData->field_C62 = (24 * sPSSData->field_C68) + 100; - sub_80CB1F0(sPSSData->field_C64); + sStorage->iconScrollPos = (24 * sStorage->iconScrollCurColumn) + 100; + StartBoxMonIconsScrollOut(sStorage->iconScrollSpeed); } -static bool8 sub_80CB584(void) +static bool8 UpdateBoxMonIconScroll(void) { - if (sPSSData->field_C60 != 0) - sPSSData->field_C60--; + if (sStorage->iconScrollDistance != 0) + sStorage->iconScrollDistance--; - switch (sPSSData->field_C6A) + switch (sStorage->iconScrollState) { case 0: - sPSSData->field_C62 += sPSSData->field_C64; - if (sPSSData->field_C62 <= 64 || sPSSData->field_C62 >= 252) + sStorage->iconScrollPos += sStorage->iconScrollSpeed; + if (sStorage->iconScrollPos <= 64 || sStorage->iconScrollPos >= 252) { - DestroyAllIconsInRow(sPSSData->field_C68); - sPSSData->field_C62 += sPSSData->field_C69 * 24; - sPSSData->field_C6A++; + // A column of icons has gone offscreen, destroy them + DestroyBoxMonIconsInColumn(sStorage->iconScrollCurColumn); + sStorage->iconScrollPos += sStorage->iconScrollDirection * 24; + sStorage->iconScrollState++; } break; case 1: - sPSSData->field_C62 += sPSSData->field_C64; - sPSSData->field_C66 += sub_80CB2F8(sPSSData->field_C68, sPSSData->field_C60, sPSSData->field_C64); - if ((sPSSData->field_C69 > 0 && sPSSData->field_C68 == IN_BOX_ROWS - 1) - || (sPSSData->field_C69 < 0 && sPSSData->field_C68 == 0)) + // Create the new incoming column of icons + sStorage->iconScrollPos += sStorage->iconScrollSpeed; + sStorage->iconScrollNumIncoming += CreateBoxMonIconsInColumn(sStorage->iconScrollCurColumn, sStorage->iconScrollDistance, sStorage->iconScrollSpeed); + + if ((sStorage->iconScrollDirection > 0 && sStorage->iconScrollCurColumn == IN_BOX_COLUMNS - 1) + || (sStorage->iconScrollDirection < 0 && sStorage->iconScrollCurColumn == 0)) { - sPSSData->field_C6A++; + // Scroll has reached final column + sStorage->iconScrollState++; } else { - sPSSData->field_C68 += sPSSData->field_C69; - sPSSData->field_C6A = 0; + // Continue scrolling + sStorage->iconScrollCurColumn += sStorage->iconScrollDirection; + sStorage->iconScrollState = 0; } break; case 2: - if (sPSSData->field_C66 == 0) + // Wait to make sure all icons have arrived + if (sStorage->iconScrollNumIncoming == 0) { - sPSSData->field_C60++; + sStorage->iconScrollDistance++; return FALSE; } break; @@ -4773,49 +4716,47 @@ static bool8 sub_80CB584(void) return TRUE; } -static void SetBoxSpeciesAndPersonalities(u8 boxId) +static void GetIncomingBoxMonData(u8 boxId) { s32 i, j, boxPosition; boxPosition = 0; - for (i = 0; i < IN_BOX_COLUMNS; i++) + for (i = 0; i < IN_BOX_ROWS; i++) { - for (j = 0; j < IN_BOX_ROWS; j++) + for (j = 0; j < IN_BOX_COLUMNS; j++) { - sPSSData->boxSpecies[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); - if (sPSSData->boxSpecies[boxPosition] != SPECIES_NONE) - sPSSData->boxPersonalities[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); + sStorage->boxSpecies[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); + if (sStorage->boxSpecies[boxPosition] != SPECIES_NONE) + sStorage->boxPersonalities[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); boxPosition++; } } - sPSSData->field_C5C = boxId; + sStorage->incomingBoxId = boxId; } static void DestroyBoxMonIconAtPosition(u8 boxPosition) { - if (sPSSData->boxMonsSprites[boxPosition] != NULL) + if (sStorage->boxMonsSprites[boxPosition] != NULL) { - DestroyBoxMonIcon(sPSSData->boxMonsSprites[boxPosition]); - sPSSData->boxMonsSprites[boxPosition] = NULL; + DestroyBoxMonIcon(sStorage->boxMonsSprites[boxPosition]); + sStorage->boxMonsSprites[boxPosition] = NULL; } } static void SetBoxMonIconObjMode(u8 boxPosition, u8 objMode) { - if (sPSSData->boxMonsSprites[boxPosition] != NULL) - { - sPSSData->boxMonsSprites[boxPosition]->oam.objMode = objMode; - } + if (sStorage->boxMonsSprites[boxPosition] != NULL) + sStorage->boxMonsSprites[boxPosition]->oam.objMode = objMode; } -static void CreatePartyMonsSprites(bool8 arg0) +static void CreatePartyMonsSprites(bool8 visible) { u16 i, count; u16 species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES2); u32 personality = GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY); - sPSSData->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); + sStorage->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); count = 1; for (i = 1; i < PARTY_SIZE; i++) { @@ -4823,139 +4764,153 @@ static void CreatePartyMonsSprites(bool8 arg0) if (species != SPECIES_NONE) { personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); - sPSSData->partySprites[i] = CreateMonIconSprite(species, personality, 152, 8 * (3 * (i - 1)) + 16, 1, 12); + sStorage->partySprites[i] = CreateMonIconSprite(species, personality, 152, 8 * (3 * (i - 1)) + 16, 1, 12); count++; } else { - sPSSData->partySprites[i] = NULL; + sStorage->partySprites[i] = NULL; } } - if (!arg0) + if (!visible) { for (i = 0; i < count; i++) { - sPSSData->partySprites[i]->pos1.y -= 160; - sPSSData->partySprites[i]->invisible = TRUE; + sStorage->partySprites[i]->y -= DISPLAY_HEIGHT; + sStorage->partySprites[i]->invisible = TRUE; } } - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption == OPTION_MOVE_ITEMS) { for (i = 0; i < PARTY_SIZE; i++) { - if (sPSSData->partySprites[i] != NULL && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == 0) - sPSSData->partySprites[i]->oam.objMode = ST_OAM_OBJ_BLEND; + if (sStorage->partySprites[i] != NULL && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == ITEM_NONE) + sStorage->partySprites[i]->oam.objMode = ST_OAM_OBJ_BLEND; } } } -static void sub_80CB950(void) +static void CompactPartySprites(void) { - u16 i, count; + u16 i, targetSlot; - sPSSData->field_C5E = 0; - for (i = 0, count = 0; i < PARTY_SIZE; i++) + sStorage->numPartyToCompact = 0; + for (i = 0, targetSlot = 0; i < PARTY_SIZE; i++) { - if (sPSSData->partySprites[i] != NULL) + if (sStorage->partySprites[i] != NULL) { - if (i != count) + if (i != targetSlot) { - sub_80CB9D0(sPSSData->partySprites[i], count); - sPSSData->partySprites[i] = NULL; - sPSSData->field_C5E++; + MovePartySpriteToNextSlot(sStorage->partySprites[i], targetSlot); + sStorage->partySprites[i] = NULL; + sStorage->numPartyToCompact++; } - count++; + targetSlot++; } } } -static u8 sub_80CB9BC(void) +static u8 GetNumPartySpritesCompacting(void) { - return sPSSData->field_C5E; + return sStorage->numPartyToCompact; } -static void sub_80CB9D0(struct Sprite *sprite, u16 partyId) +#define sPartyId data[1] +#define sMonX data[2] +#define sMonY data[3] +#define sSpeedX data[4] +#define sSpeedY data[5] +#define sMoveSteps data[6] + +static void MovePartySpriteToNextSlot(struct Sprite *sprite, u16 partyId) { s16 x, y; - sprite->data[1] = partyId; + sprite->sPartyId = partyId; if (partyId == 0) x = 104, y = 64; else x = 152, y = 8 * (3 * (partyId - 1)) + 16; - sprite->data[2] = (u16)(sprite->pos1.x) * 8; - sprite->data[3] = (u16)(sprite->pos1.y) * 8; - sprite->data[4] = ((x * 8) - sprite->data[2]) / 8; - sprite->data[5] = ((y * 8) - sprite->data[3]) / 8; + sprite->sMonX = (u16)(sprite->x) * 8; + sprite->sMonY = (u16)(sprite->y) * 8; + sprite->sSpeedX = ((x * 8) - sprite->sMonX) / 8; + sprite->sSpeedY = ((y * 8) - sprite->sMonY) / 8; sprite->data[6] = 8; - sprite->callback = sub_80CBA3C; + sprite->callback = SpriteCB_MovePartyMonToNextSlot; } -static void sub_80CBA3C(struct Sprite *sprite) +static void SpriteCB_MovePartyMonToNextSlot(struct Sprite *sprite) { - if (sprite->data[6] != 0) + if (sprite->sMoveSteps != 0) { - s16 x = sprite->data[2] += sprite->data[4]; - s16 y = sprite->data[3] += sprite->data[5]; - sprite->pos1.x = x / 8u; - sprite->pos1.y = y / 8u; - sprite->data[6]--; + s16 x = sprite->sMonX += sprite->sSpeedX; + s16 y = sprite->sMonY += sprite->sSpeedY; + sprite->x = x / 8u; + sprite->y = y / 8u; + sprite->sMoveSteps--; } else { - if (sprite->data[1] == 0) + if (sprite->sPartyId == 0) { - sprite->pos1.x = 104; - sprite->pos1.y = 64; + sprite->x = 104; + sprite->y = 64; } else { - sprite->pos1.x = 152; - sprite->pos1.y = 8 * (3 * (sprite->data[1] - 1)) + 16; + sprite->x = 152; + sprite->y = 8 * (3 * (sprite->sPartyId - 1)) + 16; } sprite->callback = SpriteCallbackDummy; - sPSSData->partySprites[sprite->data[1]] = sprite; - sPSSData->field_C5E--; + sStorage->partySprites[sprite->sPartyId] = sprite; + sStorage->numPartyToCompact--; } } +#undef sPartyId +#undef sMonX +#undef sMonY +#undef sSpeedX +#undef sSpeedY +#undef sMoveSteps + static void DestroyMovingMonIcon(void) { - if (sPSSData->movingMonSprite != NULL) + if (sStorage->movingMonSprite != NULL) { - DestroyBoxMonIcon(sPSSData->movingMonSprite); - sPSSData->movingMonSprite = NULL; + DestroyBoxMonIcon(sStorage->movingMonSprite); + sStorage->movingMonSprite = NULL; } } -static void sub_80CBAF0(s16 yDelta) +static void MovePartySprites(s16 yDelta) { u16 i, posY; for (i = 0; i < PARTY_SIZE; i++) { - if (sPSSData->partySprites[i] != NULL) + if (sStorage->partySprites[i] != NULL) { - sPSSData->partySprites[i]->pos1.y += yDelta; - posY = sPSSData->partySprites[i]->pos1.y + sPSSData->partySprites[i]->pos2.y + sPSSData->partySprites[i]->centerToCornerVecY; + sStorage->partySprites[i]->y += yDelta; + posY = sStorage->partySprites[i]->y + sStorage->partySprites[i]->y2 + sStorage->partySprites[i]->centerToCornerVecY; posY += 16; if (posY > 192) - sPSSData->partySprites[i]->invisible = TRUE; + sStorage->partySprites[i]->invisible = TRUE; else - sPSSData->partySprites[i]->invisible = FALSE; + sStorage->partySprites[i]->invisible = FALSE; } } } static void DestroyPartyMonIcon(u8 partyId) { - if (sPSSData->partySprites[partyId] != NULL) + if (sStorage->partySprites[partyId] != NULL) { - DestroyBoxMonIcon(sPSSData->partySprites[partyId]); - sPSSData->partySprites[partyId] = NULL; + DestroyBoxMonIcon(sStorage->partySprites[partyId]); + sStorage->partySprites[partyId] = NULL; } } @@ -4965,225 +4920,232 @@ static void DestroyAllPartyMonIcons(void) for (i = 0; i < PARTY_SIZE; i++) { - if (sPSSData->partySprites[i] != NULL) + if (sStorage->partySprites[i] != NULL) { - DestroyBoxMonIcon(sPSSData->partySprites[i]); - sPSSData->partySprites[i] = NULL; + DestroyBoxMonIcon(sStorage->partySprites[i]); + sStorage->partySprites[i] = NULL; } } } static void SetPartyMonIconObjMode(u8 partyId, u8 objMode) { - if (sPSSData->partySprites[partyId] != NULL) + if (sStorage->partySprites[partyId] != NULL) { - sPSSData->partySprites[partyId]->oam.objMode = objMode; + sStorage->partySprites[partyId]->oam.objMode = objMode; } } -static void sub_80CBC14(u8 mode, u8 id) +static void SetMovingMonSprite(u8 mode, u8 id) { if (mode == MODE_PARTY) { - sPSSData->movingMonSprite = sPSSData->partySprites[id]; - sPSSData->partySprites[id] = NULL; + sStorage->movingMonSprite = sStorage->partySprites[id]; + sStorage->partySprites[id] = NULL; } else if (mode == MODE_BOX) { - sPSSData->movingMonSprite = sPSSData->boxMonsSprites[id]; - sPSSData->boxMonsSprites[id] = NULL; + sStorage->movingMonSprite = sStorage->boxMonsSprites[id]; + sStorage->boxMonsSprites[id] = NULL; } else { return; } - sPSSData->movingMonSprite->callback = sub_80CC100; - sPSSData->movingMonSprite->oam.priority = sub_80CAFAC(); - sPSSData->movingMonSprite->subpriority = 7; + sStorage->movingMonSprite->callback = SpriteCB_HeldMon; + sStorage->movingMonSprite->oam.priority = GetMonIconPriorityByCursorPos(); + sStorage->movingMonSprite->subpriority = 7; } -static void sub_80CBCAC(u8 boxId, u8 position) +static void SetPlacedMonSprite(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) // party mon { - sPSSData->partySprites[position] = sPSSData->movingMonSprite; - sPSSData->partySprites[position]->oam.priority = 1; - sPSSData->partySprites[position]->subpriority = 12; + sStorage->partySprites[position] = sStorage->movingMonSprite; + sStorage->partySprites[position]->oam.priority = 1; + sStorage->partySprites[position]->subpriority = 12; } else { - sPSSData->boxMonsSprites[position] = sPSSData->movingMonSprite; - sPSSData->boxMonsSprites[position]->oam.priority = 2; - sPSSData->boxMonsSprites[position]->subpriority = 19 - (position % IN_BOX_ROWS); + sStorage->boxMonsSprites[position] = sStorage->movingMonSprite; + sStorage->boxMonsSprites[position]->oam.priority = 2; + sStorage->boxMonsSprites[position]->subpriority = 19 - (position % IN_BOX_COLUMNS); } - sPSSData->movingMonSprite->callback = SpriteCallbackDummy; - sPSSData->movingMonSprite = NULL; + sStorage->movingMonSprite->callback = SpriteCallbackDummy; + sStorage->movingMonSprite = NULL; } -static void sub_80CBD5C(u8 boxId, u8 position) +static void SaveMonSpriteAtPos(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) // party mon - sPSSData->field_B00 = &sPSSData->partySprites[position]; + sStorage->shiftMonSpritePtr = &sStorage->partySprites[position]; else - sPSSData->field_B00 = &sPSSData->boxMonsSprites[position]; + sStorage->shiftMonSpritePtr = &sStorage->boxMonsSprites[position]; - sPSSData->movingMonSprite->callback = SpriteCallbackDummy; - sPSSData->field_C5D = 0; + sStorage->movingMonSprite->callback = SpriteCallbackDummy; + sStorage->shiftTimer = 0; } -static bool8 sub_80CBDC4(void) +static bool8 MoveShiftingMons(void) { - if (sPSSData->field_C5D == 16) + if (sStorage->shiftTimer == 16) return FALSE; - sPSSData->field_C5D++; - if (sPSSData->field_C5D & 1) + sStorage->shiftTimer++; + if (sStorage->shiftTimer & 1) { - (*sPSSData->field_B00)->pos1.y--; - sPSSData->movingMonSprite->pos1.y++; + (*sStorage->shiftMonSpritePtr)->y--; + sStorage->movingMonSprite->y++; } - (*sPSSData->field_B00)->pos2.x = gSineTable[sPSSData->field_C5D * 8] / 16; - sPSSData->movingMonSprite->pos2.x = -(gSineTable[sPSSData->field_C5D * 8] / 16); - if (sPSSData->field_C5D == 8) + (*sStorage->shiftMonSpritePtr)->x2 = gSineTable[sStorage->shiftTimer * 8] / 16; + sStorage->movingMonSprite->x2 = -(gSineTable[sStorage->shiftTimer * 8] / 16); + if (sStorage->shiftTimer == 8) { - sPSSData->movingMonSprite->oam.priority = (*sPSSData->field_B00)->oam.priority; - sPSSData->movingMonSprite->subpriority = (*sPSSData->field_B00)->subpriority; - (*sPSSData->field_B00)->oam.priority = sub_80CAFAC(); - (*sPSSData->field_B00)->subpriority = 7; + sStorage->movingMonSprite->oam.priority = (*sStorage->shiftMonSpritePtr)->oam.priority; + sStorage->movingMonSprite->subpriority = (*sStorage->shiftMonSpritePtr)->subpriority; + (*sStorage->shiftMonSpritePtr)->oam.priority = GetMonIconPriorityByCursorPos(); + (*sStorage->shiftMonSpritePtr)->subpriority = 7; } - if (sPSSData->field_C5D == 16) + if (sStorage->shiftTimer == 16) { - struct Sprite *sprite = sPSSData->movingMonSprite; - sPSSData->movingMonSprite = (*sPSSData->field_B00); - *sPSSData->field_B00 = sprite; + struct Sprite *sprite = sStorage->movingMonSprite; + sStorage->movingMonSprite = (*sStorage->shiftMonSpritePtr); + *sStorage->shiftMonSpritePtr = sprite; - sPSSData->movingMonSprite->callback = sub_80CC100; - (*sPSSData->field_B00)->callback = SpriteCallbackDummy; + sStorage->movingMonSprite->callback = SpriteCB_HeldMon; + (*sStorage->shiftMonSpritePtr)->callback = SpriteCallbackDummy; } return TRUE; } -static void sub_80CBF14(u8 mode, u8 position) +static void SetReleaseMon(u8 mode, u8 position) { switch (mode) { case MODE_PARTY: - sPSSData->field_B04 = &sPSSData->partySprites[position]; + sStorage->releaseMonSpritePtr = &sStorage->partySprites[position]; break; case MODE_BOX: - sPSSData->field_B04 = &sPSSData->boxMonsSprites[position]; + sStorage->releaseMonSpritePtr = &sStorage->boxMonsSprites[position]; break; case MODE_MOVE: - sPSSData->field_B04 = &sPSSData->movingMonSprite; + sStorage->releaseMonSpritePtr = &sStorage->movingMonSprite; break; default: return; } - if (*sPSSData->field_B04 != NULL) + if (*sStorage->releaseMonSpritePtr != NULL) { - InitSpriteAffineAnim(*sPSSData->field_B04); - (*sPSSData->field_B04)->oam.affineMode = ST_OAM_AFFINE_NORMAL; - (*sPSSData->field_B04)->affineAnims = gSpriteAffineAnimTable_857291C; - StartSpriteAffineAnim(*sPSSData->field_B04, 0); + InitSpriteAffineAnim(*sStorage->releaseMonSpritePtr); + (*sStorage->releaseMonSpritePtr)->oam.affineMode = ST_OAM_AFFINE_NORMAL; + (*sStorage->releaseMonSpritePtr)->affineAnims = sAffineAnims_ReleaseMon; + StartSpriteAffineAnim(*sStorage->releaseMonSpritePtr, RELEASE_ANIM_RELEASE); } } -static bool8 sub_80CBFD8(void) +static bool8 TryHideReleaseMonSprite(void) { - if (*sPSSData->field_B04 == NULL || (*sPSSData->field_B04)->invisible) + if (*sStorage->releaseMonSpritePtr == NULL + || (*sStorage->releaseMonSpritePtr)->invisible) return FALSE; - if ((*sPSSData->field_B04)->affineAnimEnded) - (*sPSSData->field_B04)->invisible = TRUE; + if ((*sStorage->releaseMonSpritePtr)->affineAnimEnded) + (*sStorage->releaseMonSpritePtr)->invisible = TRUE; return TRUE; } -static void sub_80CC020(void) +static void DestroyReleaseMonIcon(void) { - if (*sPSSData->field_B04 != NULL) + if (*sStorage->releaseMonSpritePtr != NULL) { - FreeOamMatrix((*sPSSData->field_B04)->oam.matrixNum); - DestroyBoxMonIcon(*sPSSData->field_B04); - *sPSSData->field_B04 = NULL; + FreeOamMatrix((*sStorage->releaseMonSpritePtr)->oam.matrixNum); + DestroyBoxMonIcon(*sStorage->releaseMonSpritePtr); + *sStorage->releaseMonSpritePtr = NULL; } } -static void sub_80CC064(void) +static void ReshowReleaseMon(void) { - if (*sPSSData->field_B04 != NULL) + if (*sStorage->releaseMonSpritePtr != NULL) { - (*sPSSData->field_B04)->invisible = FALSE; - StartSpriteAffineAnim(*sPSSData->field_B04, 1); + (*sStorage->releaseMonSpritePtr)->invisible = FALSE; + StartSpriteAffineAnim(*sStorage->releaseMonSpritePtr, RELEASE_ANIM_CAME_BACK); } } -static bool8 sub_80CC0A0(void) +static bool8 ResetReleaseMonSpritePtr(void) { - if (sPSSData->field_B04 == NULL) + if (sStorage->releaseMonSpritePtr == NULL) return FALSE; - if ((*sPSSData->field_B04)->affineAnimEnded) - sPSSData->field_B04 = NULL; + if ((*sStorage->releaseMonSpritePtr)->affineAnimEnded) + sStorage->releaseMonSpritePtr = NULL; return TRUE; } static void SetMovingMonPriority(u8 priority) { - sPSSData->movingMonSprite->oam.priority = priority; + sStorage->movingMonSprite->oam.priority = priority; } -static void sub_80CC100(struct Sprite *sprite) +static void SpriteCB_HeldMon(struct Sprite *sprite) { - sprite->pos1.x = sPSSData->field_CB4->pos1.x; - sprite->pos1.y = sPSSData->field_CB4->pos1.y + sPSSData->field_CB4->pos2.y + 4; + sprite->x = sStorage->cursorSprite->x; + sprite->y = sStorage->cursorSprite->y + sStorage->cursorSprite->y2 + 4; } -static u16 sub_80CC124(u16 species) +static u16 TryLoadMonIconTiles(u16 species) { - u16 i, var; + u16 i, offset; - for (i = 0; i < 40; i++) + // Search icon list for this species + for (i = 0; i < MAX_MON_ICONS; i++) { - if (sPSSData->field_B58[i] == species) + if (sStorage->iconSpeciesList[i] == species) break; } - if (i == 40) + if (i == MAX_MON_ICONS) { - for (i = 0; i < 40; i++) + // Species not present in the list + // Find first empty spot in the list to put it + for (i = 0; i < MAX_MON_ICONS; i++) { - if (sPSSData->field_B58[i] == 0) + if (sStorage->iconSpeciesList[i] == 0) break; } - if (i == 40) + + // Failed to find an empty spot + if (i == MAX_MON_ICONS) return 0xFFFF; } - sPSSData->field_B58[i] = species; - sPSSData->field_B08[i]++; - var = 16 * i; - CpuCopy32(GetMonIconTiles(species, TRUE), (void*)(OBJ_VRAM0) + var * 32, 0x200); + // Add species to icon list and load tiles + sStorage->iconSpeciesList[i] = species; + sStorage->numIconsPerSpecies[i]++; + offset = 16 * i; + CpuCopy32(GetMonIconTiles(species, TRUE), (void*)(OBJ_VRAM0) + offset * 32, 0x200); - return var; + return offset; } -static void sub_80CC1E0(u16 species) +static void RemoveSpeciesFromIconList(u16 species) { u16 i; - for (i = 0; i < 40; i++) + for (i = 0; i < MAX_MON_ICONS; i++) { - if (sPSSData->field_B58[i] == species) + if (sStorage->iconSpeciesList[i] == species) { - if (--sPSSData->field_B08[i] == 0) - sPSSData->field_B58[i] = 0; + if (--sStorage->numIconsPerSpecies[i] == 0) + sStorage->iconSpeciesList[i] = SPECIES_NONE; break; } } @@ -5193,18 +5155,18 @@ static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s { u16 tileNum; u8 spriteId; - struct SpriteTemplate tempalte = gUnknown_085728D4; + struct SpriteTemplate template = sSpriteTemplate_MonIcon; species = GetIconSpecies(species, personality); - tempalte.paletteTag = 0xDAC0 + gMonIconPaletteIndices[species]; - tileNum = sub_80CC124(species); + template.paletteTag = PALTAG_MON_ICON_0 + gMonIconPaletteIndices[species]; + tileNum = TryLoadMonIconTiles(species); if (tileNum == 0xFFFF) return NULL; - spriteId = CreateSprite(&tempalte, x, y, subpriority); + spriteId = CreateSprite(&template, x, y, subpriority); if (spriteId == MAX_SPRITES) { - sub_80CC1E0(species); + RemoveSpeciesFromIconList(species); return NULL; } @@ -5216,113 +5178,130 @@ static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s static void DestroyBoxMonIcon(struct Sprite *sprite) { - sub_80CC1E0(sprite->data[0]); + RemoveSpeciesFromIconList(sprite->data[0]); DestroySprite(sprite); } -static void sub_80CC32C(u8 boxId) -{ - u8 taskId = CreateTask(sub_80CC370, 2); - gTasks[taskId].data[2] = boxId; +//------------------------------------------------------------------------------ +// SECTION: General box +// +// Some basic box functions, including initializing the box and scrolling. +//------------------------------------------------------------------------------ + + +#define tState data[0] +#define tDmaIdx data[1] +#define tBoxId data[2] + +static void CreateInitBoxTask(u8 boxId) +{ + u8 taskId = CreateTask(Task_InitBox, 2); + + gTasks[taskId].tBoxId = boxId; } -static bool8 sub_80CC35C(void) +static bool8 IsInitBoxActive(void) { - return FuncIsActiveTask(sub_80CC370); + return FuncIsActiveTask(Task_InitBox); } -static void sub_80CC370(u8 taskId) +static void Task_InitBox(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - sPSSData->field_2D2 = 0; - sPSSData->bg2_X = 0; - task->data[1] = RequestDma3Fill(0, sPSSData->field_4AC4, 0x1000, 1); + sStorage->wallpaperOffset = 0; + sStorage->bg2_X = 0; + task->tDmaIdx = RequestDma3Fill(0, sStorage->wallpaperBgTilemapBuffer, sizeof(sStorage->wallpaperBgTilemapBuffer), 1); break; case 1: - if (CheckForSpaceForDma3Request(task->data[1]) == -1) + if (CheckForSpaceForDma3Request(task->tDmaIdx) == -1) return; - SetBgTilemapBuffer(2, sPSSData->field_4AC4); + SetBgTilemapBuffer(2, sStorage->wallpaperBgTilemapBuffer); ShowBg(2); break; case 2: - LoadWallpaperGfx(task->data[2], 0); + LoadWallpaperGfx(task->tBoxId, 0); break; case 3: if (!WaitForWallpaperGfxLoad()) return; - sub_80CCB50(task->data[2]); - sub_80CD02C(); - sub_80CB028(task->data[2]); + InitBoxTitle(task->tBoxId); + CreateBoxScrollArrows(); + InitBoxMonSprites(task->tBoxId); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(27) | BGCNT_TXT512x256); break; case 4: DestroyTask(taskId); break; default: - task->data[0] = 0; + task->tState = 0; return; } - task->data[0]++; + task->tState++; } +#undef tState +#undef tDmaIdx +#undef tBoxId + static void SetUpScrollToBox(u8 boxId) { s8 direction = DetermineBoxScrollDirection(boxId); - sPSSData->wallpaperScrollSpeed = (direction > 0) ? 6 : -6; - sPSSData->field_2D3 = (direction > 0) ? 1 : 2; - sPSSData->field_2D0 = 32; - sPSSData->field_2D4 = boxId; - sPSSData->field_2D6 = (direction <= 0) ? 5 : 0; - sPSSData->field_2D8 = direction; - sPSSData->field_2DA = (direction > 0) ? 264 : 56; - sPSSData->field_2DC = (direction <= 0) ? 5 : 0; - sPSSData->field_2DE = 0; - sPSSData->field_2E0 = 2; - sPSSData->boxScrollDestination = boxId; - sPSSData->field_A65 = direction; - sPSSData->field_A63 = 0; + sStorage->scrollSpeed = (direction > 0) ? 6 : -6; + sStorage->scrollUnused1 = (direction > 0) ? 1 : 2; + sStorage->scrollTimer = 32; + sStorage->scrollToBoxIdUnused = boxId; + sStorage->scrollUnused2 = (direction <= 0) ? 5 : 0; + sStorage->scrollDirectionUnused = direction; + + sStorage->scrollUnused3 = (direction > 0) ? 264 : 56; + sStorage->scrollUnused4 = (direction <= 0) ? 5 : 0; + sStorage->scrollUnused5 = 0; + sStorage->scrollUnused6 = 2; + sStorage->scrollToBoxId = boxId; + sStorage->scrollDirection = direction; + sStorage->scrollState = 0; } static bool8 ScrollToBox(void) { - bool8 var; + bool8 iconsScrolling; - switch (sPSSData->field_A63) + switch (sStorage->scrollState) { case 0: - LoadWallpaperGfx(sPSSData->boxScrollDestination, sPSSData->field_A65); - sPSSData->field_A63++; + LoadWallpaperGfx(sStorage->scrollToBoxId, sStorage->scrollDirection); + sStorage->scrollState++; case 1: if (!WaitForWallpaperGfxLoad()) return TRUE; - sub_80CB4CC(sPSSData->boxScrollDestination, sPSSData->field_A65); - sub_80CCCFC(sPSSData->boxScrollDestination, sPSSData->field_A65); - sub_80CD0B8(sPSSData->field_A65); + InitBoxMonIconScroll(sStorage->scrollToBoxId, sStorage->scrollDirection); + CreateIncomingBoxTitle(sStorage->scrollToBoxId, sStorage->scrollDirection); + StartBoxScrollArrowsSlide(sStorage->scrollDirection); break; case 2: - var = sub_80CB584(); - if (sPSSData->field_2D0 != 0) + iconsScrolling = UpdateBoxMonIconScroll(); + if (sStorage->scrollTimer != 0) { - sPSSData->bg2_X += sPSSData->wallpaperScrollSpeed; - if (--sPSSData->field_2D0 != 0) + sStorage->bg2_X += sStorage->scrollSpeed; + if (--sStorage->scrollTimer != 0) return TRUE; - sub_80CCEE0(); - sub_80CD158(); + CycleBoxTitleSprites(); + StopBoxScrollArrowsSlide(); } - return var; + return iconsScrolling; } - sPSSData->field_A63++; + sStorage->scrollState++; return TRUE; } @@ -5341,40 +5320,46 @@ static s8 DetermineBoxScrollDirection(u8 boxId) return (i < TOTAL_BOXES_COUNT / 2) ? 1 : -1; } + +//------------------------------------------------------------------------------ +// SECTION: Wallpaper gfx +//------------------------------------------------------------------------------ + + static void SetWallpaperForCurrentBox(u8 wallpaperId) { u8 boxId = StorageGetCurrentBox(); SetBoxWallpaper(boxId, wallpaperId); - sPSSData->wallpaperChangeState = 0; + sStorage->wallpaperChangeState = 0; } static bool8 DoWallpaperGfxChange(void) { - switch (sPSSData->wallpaperChangeState) + switch (sStorage->wallpaperChangeState) { case 0: - BeginNormalPaletteFade(sPSSData->field_738, 1, 0, 16, RGB_WHITEALPHA); - sPSSData->wallpaperChangeState++; + BeginNormalPaletteFade(sStorage->wallpaperPalBits, 1, 0, 16, RGB_WHITEALPHA); + sStorage->wallpaperChangeState++; break; case 1: if (!UpdatePaletteFade()) { u8 curBox = StorageGetCurrentBox(); LoadWallpaperGfx(curBox, 0); - sPSSData->wallpaperChangeState++; + sStorage->wallpaperChangeState++; } break; case 2: if (WaitForWallpaperGfxLoad() == TRUE) { - sub_80CCF9C(); - BeginNormalPaletteFade(sPSSData->field_738, 1, 16, 0, RGB_WHITEALPHA); - sPSSData->wallpaperChangeState++; + CycleBoxTitleColor(); + BeginNormalPaletteFade(sStorage->wallpaperPalBits, 1, 16, 0, RGB_WHITEALPHA); + sStorage->wallpaperChangeState++; } break; case 3: if (!UpdatePaletteFade()) - sPSSData->wallpaperChangeState++; + sStorage->wallpaperChangeState++; break; case 4: return FALSE; @@ -5386,54 +5371,54 @@ static bool8 DoWallpaperGfxChange(void) static void LoadWallpaperGfx(u8 boxId, s8 direction) { u8 wallpaperId; - const struct WallpaperTable *wallpaperGfx; + const struct Wallpaper *wallpaper; void *iconGfx; - u32 size1, size2; + u32 tilesSize, iconSize; - sPSSData->field_6F9 = 0; - sPSSData->field_6FA = boxId; - sPSSData->field_6FB = direction; - if (sPSSData->field_6FB != 0) + sStorage->wallpaperLoadState = 0; + sStorage->wallpaperLoadBoxId = boxId; + sStorage->wallpaperLoadDir = direction; + if (sStorage->wallpaperLoadDir != 0) { - sPSSData->field_2D2 = (sPSSData->field_2D2 == 0); - sub_80CCAE0(sPSSData->field_4AC4); + sStorage->wallpaperOffset = (sStorage->wallpaperOffset == 0); + TrimOldWallpaper(sStorage->wallpaperBgTilemapBuffer); } - wallpaperId = GetBoxWallpaper(sPSSData->field_6FA); + wallpaperId = GetBoxWallpaper(sStorage->wallpaperLoadBoxId); if (wallpaperId != WALLPAPER_FRIENDS) { - wallpaperGfx = &gWallpaperTable[wallpaperId]; - LZ77UnCompWram(wallpaperGfx->tileMap, sPSSData->field_792); - sub_80CCA3C(sPSSData->field_792, sPSSData->field_6FB, sPSSData->field_2D2); + wallpaper = &sWallpapers[wallpaperId]; + LZ77UnCompWram(wallpaper->tilemap, sStorage->wallpaperTilemap); + DrawWallpaper(sStorage->wallpaperTilemap, sStorage->wallpaperLoadDir, sStorage->wallpaperOffset); - if (sPSSData->field_6FB != 0) - LoadPalette(wallpaperGfx->palettes, (sPSSData->field_2D2 * 32) + 0x40, 0x40); + if (sStorage->wallpaperLoadDir != 0) + LoadPalette(wallpaper->palettes, (sStorage->wallpaperOffset * 32) + 0x40, 0x40); else - CpuCopy16(wallpaperGfx->palettes, &gPlttBufferUnfaded[(sPSSData->field_2D2 * 32) + 0x40], 0x40); + CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[(sStorage->wallpaperOffset * 32) + 0x40], 0x40); - sPSSData->wallpaperTiles = malloc_and_decompress(wallpaperGfx->tiles, &size1); - LoadBgTiles(2, sPSSData->wallpaperTiles, size1, sPSSData->field_2D2 << 8); + sStorage->wallpaperTiles = malloc_and_decompress(wallpaper->tiles, &tilesSize); + LoadBgTiles(2, sStorage->wallpaperTiles, tilesSize, sStorage->wallpaperOffset << 8); } else { - wallpaperGfx = &gFriendsWallpaperTable[GetWaldaWallpaperPatternId()]; - LZ77UnCompWram(wallpaperGfx->tileMap, sPSSData->field_792); - sub_80CCA3C(sPSSData->field_792, sPSSData->field_6FB, sPSSData->field_2D2); + wallpaper = &sWaldaWallpapers[GetWaldaWallpaperPatternId()]; + LZ77UnCompWram(wallpaper->tilemap, sStorage->wallpaperTilemap); + DrawWallpaper(sStorage->wallpaperTilemap, sStorage->wallpaperLoadDir, sStorage->wallpaperOffset); - CpuCopy16(wallpaperGfx->palettes, sPSSData->field_792, 0x40); - CpuCopy16(GetWaldaWallpaperColorsPtr(), &sPSSData->field_792[1], 4); - CpuCopy16(GetWaldaWallpaperColorsPtr(), &sPSSData->field_792[17], 4); + CpuCopy16(wallpaper->palettes, sStorage->wallpaperTilemap, 0x40); + CpuCopy16(GetWaldaWallpaperColorsPtr(), &sStorage->wallpaperTilemap[1], 4); + CpuCopy16(GetWaldaWallpaperColorsPtr(), &sStorage->wallpaperTilemap[17], 4); - if (sPSSData->field_6FB != 0) - LoadPalette(sPSSData->field_792, (sPSSData->field_2D2 * 32) + 0x40, 0x40); + if (sStorage->wallpaperLoadDir != 0) + LoadPalette(sStorage->wallpaperTilemap, (sStorage->wallpaperOffset * 32) + 0x40, 0x40); else - CpuCopy16(sPSSData->field_792, &gPlttBufferUnfaded[(sPSSData->field_2D2 * 32) + 0x40], 0x40); + CpuCopy16(sStorage->wallpaperTilemap, &gPlttBufferUnfaded[(sStorage->wallpaperOffset * 32) + 0x40], 0x40); - sPSSData->wallpaperTiles = malloc_and_decompress(wallpaperGfx->tiles, &size1); - iconGfx = malloc_and_decompress(gFriendsIcons[GetWaldaWallpaperIconId()], &size2); - CpuCopy32(iconGfx, sPSSData->wallpaperTiles + 0x800, size2); + sStorage->wallpaperTiles = malloc_and_decompress(wallpaper->tiles, &tilesSize); + iconGfx = malloc_and_decompress(sWaldaWallpaperIcons[GetWaldaWallpaperIconId()], &iconSize); + CpuCopy32(iconGfx, sStorage->wallpaperTiles + 0x800, iconSize); Free(iconGfx); - LoadBgTiles(2, sPSSData->wallpaperTiles, size1, sPSSData->field_2D2 << 8); + LoadBgTiles(2, sStorage->wallpaperTiles, tilesSize, sStorage->wallpaperOffset << 8); } CopyBgTilemapBufferToVram(2); @@ -5444,36 +5429,35 @@ static bool32 WaitForWallpaperGfxLoad(void) if (IsDma3ManagerBusyWithBgCopy()) return FALSE; - if (sPSSData->wallpaperTiles != NULL) - { - Free(sPSSData->wallpaperTiles); - sPSSData->wallpaperTiles = NULL; - } + if (sStorage->wallpaperTiles != NULL) + FREE_AND_SET_NULL(sStorage->wallpaperTiles); + return TRUE; } -static void sub_80CCA3C(const void *tilemap, s8 direction, u8 arg2) +static void DrawWallpaper(const void *tilemap, s8 direction, u8 offset) { - s16 var = (arg2 * 2) + 3; - s16 x = ((sPSSData->bg2_X / 8 + 10) + (direction * 24)) & 0x3F; + s16 var = offset * 256; + s16 var2 = (offset * 2) + 3; + s16 x = ((sStorage->bg2_X / 8 + 10) + (direction * 24)) & 0x3F; - CopyRectToBgTilemapBufferRect(2, tilemap, 0, 0, 0x14, 0x12, x, 2, 0x14, 0x12, 0x11, arg2 << 8, var); + CopyRectToBgTilemapBufferRect(2, tilemap, 0, 0, 0x14, 0x12, x, 2, 0x14, 0x12, 0x11, var, var2); if (direction == 0) return; if (direction > 0) - x *= 1, x += 0x14; // x * 1 is needed to match, but can be safely removed as it makes no functional difference + x += 0x14; else x -= 4; FillBgTilemapBufferRect(2, 0, x, 2, 4, 0x12, 0x11); } -static void sub_80CCAE0(void *arg0) +static void TrimOldWallpaper(void *tilemap) { u16 i; - u16 *dest = arg0; - s16 r3 = ((sPSSData->bg2_X / 8) + 30) & 0x3F; + u16 *dest = tilemap; + s16 r3 = ((sStorage->bg2_X / 8) + 30) & 0x3F; if (r3 <= 31) dest += r3 + 0x260; @@ -5491,268 +5475,312 @@ static void sub_80CCAE0(void *arg0) } } -static void sub_80CCB50(u8 boxId) + +//------------------------------------------------------------------------------ +// SECTION: Box Title +//------------------------------------------------------------------------------ + + +static void InitBoxTitle(u8 boxId) { u8 tagIndex; - s16 r6; + s16 x; u16 i; - struct SpriteSheet spriteSheet = {sPSSData->field_2F8, 0x200, TAG_TILE_3}; + struct SpriteSheet spriteSheet = {sStorage->boxTitleTiles, 0x200, GFXTAG_BOX_TITLE}; struct SpritePalette palettes[] = { - {sPSSData->field_6FC, TAG_PAL_DAC9}, + {sStorage->boxTitlePal, PALTAG_BOX_TITLE}, {} }; u16 wallpaperId = GetBoxWallpaper(boxId); - sPSSData->field_6FC[14] = gUnknown_08577574[wallpaperId][0]; - sPSSData->field_6FC[15] = gUnknown_08577574[wallpaperId][1]; + sStorage->boxTitlePal[14] = sBoxTitleColors[wallpaperId][0]; // Shadow color + sStorage->boxTitlePal[15] = sBoxTitleColors[wallpaperId][1]; // Text Color LoadSpritePalettes(palettes); - sPSSData->field_738 = 0x3f0; + sStorage->wallpaperPalBits = 0x3f0; - tagIndex = IndexOfSpritePaletteTag(TAG_PAL_DAC9); - sPSSData->field_71C = 0x10e + 16 * tagIndex; - sPSSData->field_738 |= 0x10000 << tagIndex; + tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE); + sStorage->boxTitlePalOffset = 0x10e + 16 * tagIndex; + sStorage->wallpaperPalBits |= 0x10000 << tagIndex; - tagIndex = IndexOfSpritePaletteTag(TAG_PAL_DAC9); - sPSSData->field_71E = 0x10e + 16 * tagIndex; - sPSSData->field_738 |= 0x10000 << tagIndex; + // The below seems intended to have separately tracked + // the incoming wallpaper title's palette, but as they now + // share a palette tag, all colors (and fields in some cases) + // this is redundant along with the use of boxTitleAltPalOffset + tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE); + sStorage->boxTitleAltPalOffset = 0x10e + 16 * tagIndex; + sStorage->wallpaperPalBits |= 0x10000 << tagIndex; - StringCopyPadded(sPSSData->field_21B8, GetBoxNamePtr(boxId), 0, 8); - DrawTextWindowAndBufferTiles(sPSSData->field_21B8, sPSSData->field_2F8, 0, 0, 2); + StringCopyPadded(sStorage->boxTitleText, GetBoxNamePtr(boxId), 0, 8); + DrawTextWindowAndBufferTiles(sStorage->boxTitleText, sStorage->boxTitleTiles, 0, 0, 2); LoadSpriteSheet(&spriteSheet); - r6 = sub_80CD00C(GetBoxNamePtr(boxId)); + x = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); + // Title is split across two sprites for (i = 0; i < 2; i++) { - u8 spriteId = CreateSprite(&gSpriteTemplate_857B0A8, r6 + i * 32, 28, 24); - sPSSData->field_720[i] = &gSprites[spriteId]; - StartSpriteAnim(sPSSData->field_720[i], i); + u8 spriteId = CreateSprite(&sSpriteTemplate_BoxTitle, x + i * 32, 28, 24); + sStorage->curBoxTitleSprites[i] = &gSprites[spriteId]; + StartSpriteAnim(sStorage->curBoxTitleSprites[i], i); } - sPSSData->field_6F8 = 0; + sStorage->boxTitleCycleId = 0; } -static void sub_80CCCFC(u8 boxId, s8 direction) +// Sprite data for moving title text +#define sSpeed data[0] +// Flipped between incoming/outgoing for some reason +#define sIncomingX data[1] +#define sIncomingDelay data[2] +#define sOutgoingDelay data[1] +#define sOutgoingX data[2] + +static void CreateIncomingBoxTitle(u8 boxId, s8 direction) { - u16 r8; - s16 x, x2; + u16 palOffset; + s16 x, adjustedX; u16 i; - struct SpriteSheet spriteSheet = {sPSSData->field_2F8, 0x200, TAG_TILE_3}; - struct SpriteTemplate template = gSpriteTemplate_857B0A8; + struct SpriteSheet spriteSheet = {sStorage->boxTitleTiles, 0x200, GFXTAG_BOX_TITLE}; + struct SpriteTemplate template = sSpriteTemplate_BoxTitle; - sPSSData->field_6F8 = (sPSSData->field_6F8 == 0); - if (sPSSData->field_6F8 == 0) + sStorage->boxTitleCycleId = (sStorage->boxTitleCycleId == 0); + if (sStorage->boxTitleCycleId == 0) { - spriteSheet.tag = TAG_TILE_3; - r8 = sPSSData->field_71C; + spriteSheet.tag = GFXTAG_BOX_TITLE; + palOffset = sStorage->boxTitlePalOffset; } else { - spriteSheet.tag = TAG_TILE_4; - r8 = sPSSData->field_71C; - template.tileTag = TAG_TILE_4; - template.paletteTag = TAG_PAL_DAC9; + spriteSheet.tag = GFXTAG_BOX_TITLE_ALT; + palOffset = sStorage->boxTitlePalOffset; + template.tileTag = GFXTAG_BOX_TITLE_ALT; + template.paletteTag = PALTAG_BOX_TITLE; } - StringCopyPadded(sPSSData->field_21B8, GetBoxNamePtr(boxId), 0, 8); - DrawTextWindowAndBufferTiles(sPSSData->field_21B8, sPSSData->field_2F8, 0, 0, 2); + StringCopyPadded(sStorage->boxTitleText, GetBoxNamePtr(boxId), 0, 8); + DrawTextWindowAndBufferTiles(sStorage->boxTitleText, sStorage->boxTitleTiles, 0, 0, 2); LoadSpriteSheet(&spriteSheet); - LoadPalette(gUnknown_08577574[GetBoxWallpaper(boxId)], r8, 4); - x = sub_80CD00C(GetBoxNamePtr(boxId)); - x2 = x; - x2 += direction * 192; + LoadPalette(sBoxTitleColors[GetBoxWallpaper(boxId)], palOffset, sizeof(sBoxTitleColors[0])); + x = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); + adjustedX = x; + adjustedX += direction * 192; + // Title is split across two sprites for (i = 0; i < 2; i++) { - u8 spriteId = CreateSprite(&template, i * 32 + x2, 28, 24); + u8 spriteId = CreateSprite(&template, i * 32 + adjustedX, 28, 24); - sPSSData->field_728[i] = &gSprites[spriteId]; - sPSSData->field_728[i]->data[0] = (-direction) * 6; - sPSSData->field_728[i]->data[1] = i * 32 + x; - sPSSData->field_728[i]->data[2] = 0; - sPSSData->field_728[i]->callback = sub_80CCF30; - StartSpriteAnim(sPSSData->field_728[i], i); + sStorage->nextBoxTitleSprites[i] = &gSprites[spriteId]; + sStorage->nextBoxTitleSprites[i]->sSpeed = (-direction) * 6; + sStorage->nextBoxTitleSprites[i]->sIncomingX = i * 32 + x; + sStorage->nextBoxTitleSprites[i]->sIncomingDelay = 0; + sStorage->nextBoxTitleSprites[i]->callback = SpriteCB_IncomingBoxTitle; + StartSpriteAnim(sStorage->nextBoxTitleSprites[i], i); - sPSSData->field_720[i]->data[0] = (-direction) * 6; - sPSSData->field_720[i]->data[1] = 1; - sPSSData->field_720[i]->callback = sub_80CCF64; + sStorage->curBoxTitleSprites[i]->sSpeed = (-direction) * 6; + sStorage->curBoxTitleSprites[i]->sOutgoingDelay = 1; + sStorage->curBoxTitleSprites[i]->callback = SpriteCB_OutgoingBoxTitle; } } -static void sub_80CCEE0(void) +static void CycleBoxTitleSprites(void) { - if (sPSSData->field_6F8 == 0) - FreeSpriteTilesByTag(TAG_TILE_4); + if (sStorage->boxTitleCycleId == 0) + FreeSpriteTilesByTag(GFXTAG_BOX_TITLE_ALT); else - FreeSpriteTilesByTag(TAG_TILE_3); + FreeSpriteTilesByTag(GFXTAG_BOX_TITLE); - sPSSData->field_720[0] = sPSSData->field_728[0]; - sPSSData->field_720[1] = sPSSData->field_728[1]; + sStorage->curBoxTitleSprites[0] = sStorage->nextBoxTitleSprites[0]; + sStorage->curBoxTitleSprites[1] = sStorage->nextBoxTitleSprites[1]; } -static void sub_80CCF30(struct Sprite *sprite) +static void SpriteCB_IncomingBoxTitle(struct Sprite *sprite) { - if (sprite->data[2] != 0) - sprite->data[2]--; - else if ((sprite->pos1.x += sprite->data[0]) == sprite->data[1]) + if (sprite->sIncomingDelay != 0) + sprite->sIncomingDelay--; + else if ((sprite->x += sprite->sSpeed) == sprite->sIncomingX) sprite->callback = SpriteCallbackDummy; } -static void sub_80CCF64(struct Sprite *sprite) +static void SpriteCB_OutgoingBoxTitle(struct Sprite *sprite) { - if (sprite->data[1] != 0) + if (sprite->sOutgoingDelay != 0) { - sprite->data[1]--; + sprite->sOutgoingDelay--; } else { - sprite->pos1.x += sprite->data[0]; - sprite->data[2] = sprite->pos1.x + sprite->pos2.x; - if (sprite->data[2] < 0x40 || sprite->data[2] > 0x100) + sprite->x += sprite->sSpeed; + sprite->sOutgoingX = sprite->x + sprite->x2; + if (sprite->sOutgoingX < 64 || sprite->sOutgoingX > DISPLAY_WIDTH + 16) DestroySprite(sprite); } } -static void sub_80CCF9C(void) +#undef sSpeed +#undef sIncomingX +#undef sIncomingDelay +#undef sOutgoingDelay +#undef sOutgoingX + +static void CycleBoxTitleColor(void) { u8 boxId = StorageGetCurrentBox(); u8 wallpaperId = GetBoxWallpaper(boxId); - if (sPSSData->field_6F8 == 0) - CpuCopy16(gUnknown_08577574[wallpaperId], gPlttBufferUnfaded + sPSSData->field_71C, 4); + if (sStorage->boxTitleCycleId == 0) + CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + sStorage->boxTitlePalOffset, 4); else - CpuCopy16(gUnknown_08577574[wallpaperId], gPlttBufferUnfaded + sPSSData->field_71E, 4); + CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + sStorage->boxTitleAltPalOffset, 4); } -static s16 sub_80CD00C(const u8 *string) +static s16 GetBoxTitleBaseX(const u8 *string) { - return 0xB0 - GetStringWidth(1, string, 0) / 2; + return DISPLAY_WIDTH - 64 - GetStringWidth(1, string, 0) / 2; } -static void sub_80CD02C(void) + +//------------------------------------------------------------------------------ +// SECTION: Scroll arrows +//------------------------------------------------------------------------------ + + +// Sprite data for box scroll arrows +#define sState data[0] +#define sTimer data[1] +#define sSpeed data[3] + +static void CreateBoxScrollArrows(void) { u16 i; - LoadSpriteSheet(&gUnknown_0857B080); + LoadSpriteSheet(&sSpriteSheet_Arrow); for (i = 0; i < 2; i++) { - u8 spriteId = CreateSprite(&gUnknown_0857B0E0, 0x5c + i * 0x88, 28, 22); + u8 spriteId = CreateSprite(&sSpriteTemplate_Arrow, 92 + i * 136, 28, 22); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; StartSpriteAnim(sprite, i); - sprite->data[3] = (i == 0) ? -1 : 1; - sPSSData->field_730[i] = sprite; + sprite->sSpeed = (i == 0) ? -1 : 1; + sStorage->arrowSprites[i] = sprite; } } - if (IsCursorOnBox()) - sub_80CD1A8(TRUE); + if (IsCursorOnBoxTitle()) + AnimateBoxScrollArrows(TRUE); } -static void sub_80CD0B8(s8 direction) +// Slide box scroll arrows horizontally for box change +static void StartBoxScrollArrowsSlide(s8 direction) { u16 i; for (i = 0; i < 2; i++) { - sPSSData->field_730[i]->pos2.x = 0; - sPSSData->field_730[i]->data[0] = 2; + sStorage->arrowSprites[i]->x2 = 0; + sStorage->arrowSprites[i]->sState = 2; } if (direction < 0) { - sPSSData->field_730[0]->data[1] = 29; - sPSSData->field_730[1]->data[1] = 5; - sPSSData->field_730[0]->data[2] = 0x48; - sPSSData->field_730[1]->data[2] = 0x48; + sStorage->arrowSprites[0]->sTimer = 29; + sStorage->arrowSprites[1]->sTimer = 5; + sStorage->arrowSprites[0]->data[2] = 72; + sStorage->arrowSprites[1]->data[2] = 72; } else { - sPSSData->field_730[0]->data[1] = 5; - sPSSData->field_730[1]->data[1] = 29; - sPSSData->field_730[0]->data[2] = 0xF8; - sPSSData->field_730[1]->data[2] = 0xF8; + sStorage->arrowSprites[0]->sTimer = 5; + sStorage->arrowSprites[1]->sTimer = 29; + sStorage->arrowSprites[0]->data[2] = DISPLAY_WIDTH + 8; + sStorage->arrowSprites[1]->data[2] = DISPLAY_WIDTH + 8; } - sPSSData->field_730[0]->data[7] = 0; - sPSSData->field_730[1]->data[7] = 1; + sStorage->arrowSprites[0]->data[7] = 0; + sStorage->arrowSprites[1]->data[7] = 1; } -static void sub_80CD158(void) +// New box's scroll arrows have entered, stop sliding and set their position +static void StopBoxScrollArrowsSlide(void) { u16 i; for (i = 0; i < 2; i++) { - sPSSData->field_730[i]->pos1.x = 0x88 * i + 0x5c; - sPSSData->field_730[i]->pos2.x = 0; - sPSSData->field_730[i]->invisible = FALSE; + sStorage->arrowSprites[i]->x = 136 * i + 92; + sStorage->arrowSprites[i]->x2 = 0; + sStorage->arrowSprites[i]->invisible = FALSE; } - sub_80CD1A8(TRUE); + AnimateBoxScrollArrows(TRUE); } -static void sub_80CD1A8(bool8 a0) +// Bounce scroll arrows while title is selected +static void AnimateBoxScrollArrows(bool8 animate) { u16 i; - if (a0) + if (animate) { + // Start arrows moving for (i = 0; i < 2; i++) { - sPSSData->field_730[i]->data[0] = 1; - sPSSData->field_730[i]->data[1] = 0; - sPSSData->field_730[i]->data[2] = 0; - sPSSData->field_730[i]->data[4] = 0; + sStorage->arrowSprites[i]->sState = 1; + sStorage->arrowSprites[i]->sTimer = 0; + sStorage->arrowSprites[i]->data[2] = 0; + sStorage->arrowSprites[i]->data[4] = 0; } } else { + // Stop arrows moving for (i = 0; i < 2; i++) - { - sPSSData->field_730[i]->data[0] = 0; - } + sStorage->arrowSprites[i]->sState = 0; } } -static void sub_80CD210(struct Sprite *sprite) +static void SpriteCB_Arrow(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->pos2.x = 0; + sprite->x2 = 0; break; case 1: - if (++sprite->data[1] > 3) + if (++sprite->sTimer > 3) { - sprite->data[1] = 0; - sprite->pos2.x += sprite->data[3]; + sprite->sTimer = 0; + sprite->x2 += sprite->sSpeed; if (++sprite->data[2] > 5) { sprite->data[2] = 0; - sprite->pos2.x = 0; + sprite->x2 = 0; } } break; case 2: - sprite->data[0] = 3; + sprite->sState = 3; break; case 3: - sprite->pos1.x -= sPSSData->wallpaperScrollSpeed; - if (sprite->pos1.x < 73 || sprite->pos1.x > 247) + sprite->x -= sStorage->scrollSpeed; + if (sprite->x <= 72 || sprite->x >= DISPLAY_WIDTH + 8) sprite->invisible = TRUE; - if (--sprite->data[1] == 0) + if (--sprite->sTimer == 0) { - sprite->pos1.x = sprite->data[2]; + sprite->x = sprite->data[2]; sprite->invisible = FALSE; - sprite->data[0] = 4; + sprite->sState = 4; } break; case 4: - sprite->pos1.x -= sPSSData->wallpaperScrollSpeed; + sprite->x -= sStorage->scrollSpeed; break; } } -static struct Sprite *sub_80CD2E8(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority) +#undef sState +#undef sSpeed + +// Arrows for Deposit/Jump Box selection +static struct Sprite *CreateChooseBoxArrows(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority) { - u8 spriteId = CreateSprite(&gUnknown_0857B0E0, x, y, subpriority); + u8 spriteId = CreateSprite(&sSpriteTemplate_Arrow, x, y, subpriority); if (spriteId == MAX_SPRITES) return NULL; @@ -5763,299 +5791,320 @@ static struct Sprite *sub_80CD2E8(u16 x, u16 y, u8 animId, u8 priority, u8 subpr return &gSprites[spriteId]; } -static void sub_80CD36C(void) -{ - if (sPSSData->boxOption != BOX_OPTION_DEPOSIT) - sBoxCursorArea = CURSOR_AREA_IN_BOX; - else - sBoxCursorArea = CURSOR_AREA_IN_PARTY; - sBoxCursorPosition = 0; +//------------------------------------------------------------------------------ +// SECTION: Cursor movement +// +// The functions below generally handle the cursor's movement, including +// moving around the box and picking up/putting down Pokémon. +//------------------------------------------------------------------------------ + + +static void InitCursor(void) +{ + if (sStorage->boxOption != OPTION_DEPOSIT) + sCursorArea = CURSOR_AREA_IN_BOX; + else + sCursorArea = CURSOR_AREA_IN_PARTY; + + sCursorPosition = 0; sIsMonBeingMoved = FALSE; sMovingMonOrigBoxId = 0; sMovingMonOrigBoxPos = 0; - sCanOnlyMove = FALSE; - sub_80CDC0C(); - sub_80CFC14(); - sPSSData->field_CD6 = 1; - sPSSData->inBoxMovingMode = 0; - sub_80CEB40(); + sAutoActionOn = FALSE; + ClearSavedCursorPos(); + CreateCursorSprites(); + sStorage->cursorPrevHorizPos = 1; + sStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + TryRefreshDisplayMon(); } -static void sub_80CD3EC(void) +static void InitCursorOnReopen(void) { - sub_80CFC14(); - sub_80CEBDC(); - sPSSData->field_CD6 = 1; - sPSSData->inBoxMovingMode = 0; + CreateCursorSprites(); + ReshowDisplayMon(); + sStorage->cursorPrevHorizPos = 1; + sStorage->inBoxMovingMode = MOVE_MODE_NORMAL; if (sIsMonBeingMoved) { - sPSSData->movingMon = gUnknown_02039D14; + sStorage->movingMon = sSavedMovingMon; CreateMovingMonIcon(); } } -static void sub_80CD444(u8 cursorArea, u8 cursorPosition, u16 *x, u16 *y) +static void GetCursorCoordsByPos(u8 cursorArea, u8 cursorPosition, u16 *x, u16 *y) { switch (cursorArea) { case CURSOR_AREA_IN_BOX: - *x = (cursorPosition % IN_BOX_ROWS) * 24 + 100; - *y = (cursorPosition / IN_BOX_ROWS) * 24 + 32; + *x = (cursorPosition % IN_BOX_COLUMNS) * 24 + 100; + *y = (cursorPosition / IN_BOX_COLUMNS) * 24 + 32; break; case CURSOR_AREA_IN_PARTY: if (cursorPosition == 0) { - *x = 0x68; - *y = 0x34; + *x = 104; + *y = 52; } else if (cursorPosition == PARTY_SIZE) { - *x = 0x98; - *y = 0x84; + *x = 152; + *y = 132; } else { - *x = 0x98; + *x = 152; *y = (cursorPosition - 1) * 24 + 4; } break; - case CURSOR_AREA_BOX: - *x = 0xa2; - *y = 0x0c; + case CURSOR_AREA_BOX_TITLE: + *x = 162; + *y = 12; break; case CURSOR_AREA_BUTTONS: *y = sIsMonBeingMoved ? 8 : 14; - *x = cursorPosition * 0x58 + 0x78; + *x = cursorPosition * 88 + 120; break; case 4: - *x = 0xa0; - *y = 0x60; + *x = 160; + *y = 96; break; } } -static u16 sub_80CD504(void) +static u16 GetSpeciesAtCursorPosition(void) { - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - return GetMonData(&gPlayerParty[sBoxCursorPosition], MON_DATA_SPECIES); + return GetMonData(&gPlayerParty[sCursorPosition], MON_DATA_SPECIES); case CURSOR_AREA_IN_BOX: - return GetCurrentBoxMonData(sBoxCursorPosition, MON_DATA_SPECIES); + return GetCurrentBoxMonData(sCursorPosition, MON_DATA_SPECIES); default: return SPECIES_NONE; } } -static bool8 sub_80CD554(void) +static bool8 UpdateCursorPos(void) { s16 tmp; - if (sPSSData->field_CD0 == 0) + if (sStorage->cursorMoveSteps == 0) { - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) return FALSE; else - return sub_80D1218(); + return IsItemIconAnimActive(); } - else if (--sPSSData->field_CD0 != 0) + else if (--sStorage->cursorMoveSteps != 0) { - sPSSData->field_CBC += sPSSData->field_CC4; - sPSSData->field_CC0 += sPSSData->field_CC8; - sPSSData->field_CB4->pos1.x = sPSSData->field_CBC >> 8; - sPSSData->field_CB4->pos1.y = sPSSData->field_CC0 >> 8; - if (sPSSData->field_CB4->pos1.x > 0x100) + // Update position toward target + sStorage->cursorNewX += sStorage->cursorSpeedX; + sStorage->cursorNewY += sStorage->cursorSpeedY; + sStorage->cursorSprite->x = sStorage->cursorNewX >> 8; + sStorage->cursorSprite->y = sStorage->cursorNewY >> 8; + + // Limit cursor on right + if (sStorage->cursorSprite->x > DISPLAY_WIDTH + 16) { - tmp = sPSSData->field_CB4->pos1.x - 0x100; - sPSSData->field_CB4->pos1.x = tmp + 0x40; + tmp = sStorage->cursorSprite->x - (DISPLAY_WIDTH + 16); + sStorage->cursorSprite->x = tmp + 64; } - if (sPSSData->field_CB4->pos1.x < 0x40) + + // Limit cursor on left + if (sStorage->cursorSprite->x < 64) { - tmp = 0x40 - sPSSData->field_CB4->pos1.x; - sPSSData->field_CB4->pos1.x = 0x100 - tmp; + tmp = 64 - sStorage->cursorSprite->x; + sStorage->cursorSprite->x = DISPLAY_WIDTH + 16 - tmp; } - if (sPSSData->field_CB4->pos1.y > 0xb0) + + // Limit cursor on bottom + if (sStorage->cursorSprite->y > DISPLAY_HEIGHT + 16) { - tmp = sPSSData->field_CB4->pos1.y - 0xb0; - sPSSData->field_CB4->pos1.y = tmp - 0x10; + tmp = sStorage->cursorSprite->y - (DISPLAY_HEIGHT + 16); + sStorage->cursorSprite->y = tmp - 16; } - if (sPSSData->field_CB4->pos1.y < -0x10) + + // Limit cursor on top + if (sStorage->cursorSprite->y < -16) { - tmp = -0x10 - sPSSData->field_CB4->pos1.y; - sPSSData->field_CB4->pos1.y = 0xb0 - tmp; + tmp = -16 - sStorage->cursorSprite->y; + sStorage->cursorSprite->y = DISPLAY_HEIGHT + 16 - tmp; } - if (sPSSData->field_CD7 && --sPSSData->field_CD7 == 0) - sPSSData->field_CB4->vFlip = (sPSSData->field_CB4->vFlip == FALSE); + + // Cursor flips vertically when moving on/off the top buttons + if (sStorage->cursorFlipTimer && --sStorage->cursorFlipTimer == 0) + sStorage->cursorSprite->vFlip = (sStorage->cursorSprite->vFlip == FALSE); } else { - sPSSData->field_CB4->pos1.x = sPSSData->field_CCC; - sPSSData->field_CB4->pos1.y = sPSSData->field_CCE; - sub_80CDA68(); + // Time is up for cursor movement, make sure it's exactly at target + sStorage->cursorSprite->x = sStorage->cursorTargetX; + sStorage->cursorSprite->y = sStorage->cursorTargetY; + DoCursorNewPosUpdate(); } return TRUE; } -static void sub_80CD6AC(u8 newCurosrArea, u8 newCursorPosition) +static void InitNewCursorPos(u8 newCursorArea, u8 newCursorPosition) { u16 x, y; - sub_80CD444(newCurosrArea, newCursorPosition, &x, &y); - sPSSData->field_CD4 = newCurosrArea; - sPSSData->field_CD5 = newCursorPosition; - sPSSData->field_CCC = x; - sPSSData->field_CCE = y; + GetCursorCoordsByPos(newCursorArea, newCursorPosition, &x, &y); + sStorage->newCursorArea = newCursorArea; + sStorage->newCursorPosition = newCursorPosition; + sStorage->cursorTargetX = x; + sStorage->cursorTargetY = y; } -static void sub_80CD70C(void) +static void InitCursorMove(void) { - int r7, r0; + int yDistance, xDistance; - if (sPSSData->field_CD2 != 0 || sPSSData->field_CD3 != 0) - sPSSData->field_CD0 = 12; + if (sStorage->cursorVerticalWrap != 0 || sStorage->cursorHorizontalWrap != 0) + sStorage->cursorMoveSteps = 12; else - sPSSData->field_CD0 = 6; + sStorage->cursorMoveSteps = 6; - if (sPSSData->field_CD7) - sPSSData->field_CD7 = sPSSData->field_CD0 >> 1; + if (sStorage->cursorFlipTimer) + sStorage->cursorFlipTimer = sStorage->cursorMoveSteps >> 1; - switch (sPSSData->field_CD2) + switch (sStorage->cursorVerticalWrap) { - default: - r7 = sPSSData->field_CCE - sPSSData->field_CB4->pos1.y; + default: // No wrap + yDistance = sStorage->cursorTargetY - sStorage->cursorSprite->y; break; - case -1: - r7 = sPSSData->field_CCE - 0xc0 - sPSSData->field_CB4->pos1.y; + case -1: // Wrap from top to bottom + yDistance = sStorage->cursorTargetY - 192 - sStorage->cursorSprite->y; break; - case 1: - r7 = sPSSData->field_CCE + 0xc0 - sPSSData->field_CB4->pos1.y; + case 1: // Wrap from bottom to top + yDistance = sStorage->cursorTargetY + 192 - sStorage->cursorSprite->y; break; } - switch (sPSSData->field_CD3) + switch (sStorage->cursorHorizontalWrap) { - default: - r0 = sPSSData->field_CCC - sPSSData->field_CB4->pos1.x; + default: // No Wrap + xDistance = sStorage->cursorTargetX - sStorage->cursorSprite->x; break; - case -1: - r0 = sPSSData->field_CCC - 0xc0 - sPSSData->field_CB4->pos1.x; + case -1: // Wrap from left to right + xDistance = sStorage->cursorTargetX - 192 - sStorage->cursorSprite->x; break; - case 1: - r0 = sPSSData->field_CCC + 0xc0 - sPSSData->field_CB4->pos1.x; + case 1: // Wrap from right to left + xDistance = sStorage->cursorTargetX + 192 - sStorage->cursorSprite->x; break; } - r7 <<= 8; - r0 <<= 8; - sPSSData->field_CC4 = r0 / sPSSData->field_CD0; - sPSSData->field_CC8 = r7 / sPSSData->field_CD0; - sPSSData->field_CBC = sPSSData->field_CB4->pos1.x << 8; - sPSSData->field_CC0 = sPSSData->field_CB4->pos1.y << 8; + yDistance <<= 8; + xDistance <<= 8; + sStorage->cursorSpeedX = xDistance / sStorage->cursorMoveSteps; + sStorage->cursorSpeedY = yDistance / sStorage->cursorMoveSteps; + sStorage->cursorNewX = sStorage->cursorSprite->x << 8; + sStorage->cursorNewY = sStorage->cursorSprite->y << 8; } -static void sub_80CD894(u8 newCurosrArea, u8 newCursorPosition) +static void SetCursorPosition(u8 newCursorArea, u8 newCursorPosition) { - sub_80CD6AC(newCurosrArea, newCursorPosition); - sub_80CD70C(); - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + InitNewCursorPos(newCursorArea, newCursorPosition); + InitCursorMove(); + if (sStorage->boxOption != OPTION_MOVE_ITEMS) { - if (sPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved) - StartSpriteAnim(sPSSData->field_CB4, 1); + if (sStorage->inBoxMovingMode == MOVE_MODE_NORMAL && !sIsMonBeingMoved) + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_STILL); } else { - if (!IsActiveItemMoving()) - StartSpriteAnim(sPSSData->field_CB4, 1); + if (!IsMovingItem()) + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_STILL); } - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption == OPTION_MOVE_ITEMS) { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_80D0E50(CURSOR_AREA_IN_BOX, sBoxCursorPosition); - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - sub_80D0E50(CURSOR_AREA_IN_PARTY, sBoxCursorPosition); + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryHideItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); + else if (sCursorArea == CURSOR_AREA_IN_PARTY) + TryHideItemIconAtPos(CURSOR_AREA_IN_PARTY, sCursorPosition); - if (newCurosrArea == CURSOR_AREA_IN_BOX) - sub_80D0D8C(newCurosrArea, newCursorPosition); - else if (newCurosrArea == CURSOR_AREA_IN_PARTY) - sub_80D0D8C(newCurosrArea, newCursorPosition); + if (newCursorArea == CURSOR_AREA_IN_BOX) + TryLoadItemIconAtPos(newCursorArea, newCursorPosition); + else if (newCursorArea == CURSOR_AREA_IN_PARTY) + TryLoadItemIconAtPos(newCursorArea, newCursorPosition); } - if (newCurosrArea == CURSOR_AREA_IN_PARTY && sBoxCursorArea != CURSOR_AREA_IN_PARTY) + if (newCursorArea == CURSOR_AREA_IN_PARTY && sCursorArea != CURSOR_AREA_IN_PARTY) { - sPSSData->field_CD6 = newCurosrArea; - sPSSData->field_CB8->invisible = TRUE; + sStorage->cursorPrevHorizPos = 1; + sStorage->cursorShadowSprite->invisible = TRUE; } - switch (newCurosrArea) + switch (newCursorArea) { case CURSOR_AREA_IN_PARTY: - case CURSOR_AREA_BOX: + case CURSOR_AREA_BOX_TITLE: case CURSOR_AREA_BUTTONS: - sPSSData->field_CB4->oam.priority = 1; - sPSSData->field_CB8->invisible = TRUE; - sPSSData->field_CB8->oam.priority = 1; + sStorage->cursorSprite->oam.priority = 1; + sStorage->cursorShadowSprite->invisible = TRUE; + sStorage->cursorShadowSprite->oam.priority = 1; break; case CURSOR_AREA_IN_BOX: - if (sPSSData->inBoxMovingMode != 0) + if (sStorage->inBoxMovingMode != MOVE_MODE_NORMAL) { - sPSSData->field_CB4->oam.priority = 0; - sPSSData->field_CB8->invisible = TRUE; + sStorage->cursorSprite->oam.priority = 0; + sStorage->cursorShadowSprite->invisible = TRUE; } else { - sPSSData->field_CB4->oam.priority = 2; - if (sBoxCursorArea == CURSOR_AREA_IN_BOX && sIsMonBeingMoved) + sStorage->cursorSprite->oam.priority = 2; + if (sCursorArea == CURSOR_AREA_IN_BOX && sIsMonBeingMoved) SetMovingMonPriority(2); } break; } } -static void sub_80CDA68(void) +static void DoCursorNewPosUpdate(void) { - sBoxCursorArea = sPSSData->field_CD4; - sBoxCursorPosition = sPSSData->field_CD5; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + sCursorArea = sStorage->newCursorArea; + sCursorPosition = sStorage->newCursorPosition; + if (sStorage->boxOption != OPTION_MOVE_ITEMS) { - if (sPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved) - StartSpriteAnim(sPSSData->field_CB4, 0); + if (sStorage->inBoxMovingMode == MOVE_MODE_NORMAL && !sIsMonBeingMoved) + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_BOUNCE); } else { - if (!IsActiveItemMoving()) - StartSpriteAnim(sPSSData->field_CB4, 0); + if (!IsMovingItem()) + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_BOUNCE); } - sub_80CEB40(); - switch (sBoxCursorArea) + TryRefreshDisplayMon(); + switch (sCursorArea) { case CURSOR_AREA_BUTTONS: SetMovingMonPriority(1); break; - case CURSOR_AREA_BOX: - sub_80CD1A8(TRUE); + case CURSOR_AREA_BOX_TITLE: + AnimateBoxScrollArrows(TRUE); break; case CURSOR_AREA_IN_PARTY: - sPSSData->field_CB8->subpriority = 13; + sStorage->cursorShadowSprite->subpriority = 13; SetMovingMonPriority(1); break; case CURSOR_AREA_IN_BOX: - if (sPSSData->inBoxMovingMode == 0) + if (sStorage->inBoxMovingMode == MOVE_MODE_NORMAL) { - sPSSData->field_CB4->oam.priority = 1; - sPSSData->field_CB8->oam.priority = 2; - sPSSData->field_CB8->subpriority = 21; - sPSSData->field_CB8->invisible = FALSE; + sStorage->cursorSprite->oam.priority = 1; + sStorage->cursorShadowSprite->oam.priority = 2; + sStorage->cursorShadowSprite->subpriority = 21; + sStorage->cursorShadowSprite->invisible = FALSE; SetMovingMonPriority(2); } break; } } -static void sub_80CDBA0(void) +static void SetCursorInParty(void) { u8 partyCount; @@ -6069,82 +6118,84 @@ static void sub_80CDBA0(void) if (partyCount >= PARTY_SIZE) partyCount = PARTY_SIZE - 1; } - if (sPSSData->field_CB4->vFlip) - sPSSData->field_CD7 = 1; - sub_80CD894(CURSOR_AREA_IN_PARTY, partyCount); + if (sStorage->cursorSprite->vFlip) + sStorage->cursorFlipTimer = 1; + SetCursorPosition(CURSOR_AREA_IN_PARTY, partyCount); } -static void sub_80CDBF8(u8 cursorBoxPosition) +static void SetCursorBoxPosition(u8 cursorBoxPosition) { - sub_80CD894(CURSOR_AREA_IN_BOX, cursorBoxPosition); + SetCursorPosition(CURSOR_AREA_IN_BOX, cursorBoxPosition); } -EWRAM_DATA static u8 gUnknown_02039D7E = 0; +EWRAM_DATA static u8 sSavedCursorPosition = 0; -static void sub_80CDC0C(void) +static void ClearSavedCursorPos(void) { - gUnknown_02039D7E = 0; + sSavedCursorPosition = 0; } -static void sub_80CDC18(void) +static void SaveCursorPos(void) { - gUnknown_02039D7E = sBoxCursorPosition; + sSavedCursorPosition = sCursorPosition; } -static u8 sub_80CDC2C(void) +static u8 GetSavedCursorPos(void) { - return gUnknown_02039D7E; + return sSavedCursorPosition; } -static void InitMonPlaceChange(u8 a0) +static void InitMonPlaceChange(u8 type) { static bool8 (*const placeChangeFuncs[])(void) = { - MonPlaceChange_Move, - MonPlaceChange_Place, - MonPlaceChange_Shift, + [CHANGE_GRAB] = MonPlaceChange_Grab, + [CHANGE_PLACE] = MonPlaceChange_Place, + [CHANGE_SHIFT] = MonPlaceChange_Shift, }; - sPSSData->monPlaceChangeFunc = placeChangeFuncs[a0]; - sPSSData->monPlaceChangeState = 0; + sStorage->monPlaceChangeFunc = placeChangeFuncs[type]; + sStorage->monPlaceChangeState = 0; } -static void sub_80CDC64(bool8 arg0) +// No Shift while moving multiple Pokémon, only grab and place +// For both grab/place, the cursor moves down, then up +static void InitMultiMonPlaceChange(bool8 up) { - if (!arg0) - sPSSData->monPlaceChangeFunc = sub_80CDEB4; + if (!up) + sStorage->monPlaceChangeFunc = MultiMonPlaceChange_Down; else - sPSSData->monPlaceChangeFunc = sub_80CDEC4; + sStorage->monPlaceChangeFunc = MultiMonPlaceChange_Up; - sPSSData->monPlaceChangeState = 0; + sStorage->monPlaceChangeState = 0; } static bool8 DoMonPlaceChange(void) { - return sPSSData->monPlaceChangeFunc(); + return sStorage->monPlaceChangeFunc(); } -static bool8 MonPlaceChange_Move(void) +static bool8 MonPlaceChange_Grab(void) { - switch (sPSSData->monPlaceChangeState) + switch (sStorage->monPlaceChangeState) { case 0: if (sIsMonBeingMoved) return FALSE; - StartSpriteAnim(sPSSData->field_CB4, 2); - sPSSData->monPlaceChangeState++; + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_OPEN); + sStorage->monPlaceChangeState++; break; case 1: - if (!sub_80CDED4()) + if (!MonPlaceChange_CursorDown()) { - StartSpriteAnim(sPSSData->field_CB4, 3); + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_FIST); MoveMon(); - sPSSData->monPlaceChangeState++; + sStorage->monPlaceChangeState++; } break; case 2: - if (!sub_80CDF08()) - sPSSData->monPlaceChangeState++; + if (!MonPlaceChange_CursorUp()) + sStorage->monPlaceChangeState++; break; case 3: return FALSE; @@ -6155,21 +6206,21 @@ static bool8 MonPlaceChange_Move(void) static bool8 MonPlaceChange_Place(void) { - switch (sPSSData->monPlaceChangeState) + switch (sStorage->monPlaceChangeState) { case 0: - if (!sub_80CDED4()) + if (!MonPlaceChange_CursorDown()) { - StartSpriteAnim(sPSSData->field_CB4, 2); + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_OPEN); PlaceMon(); - sPSSData->monPlaceChangeState++; + sStorage->monPlaceChangeState++; } break; case 1: - if (!sub_80CDF08()) + if (!MonPlaceChange_CursorUp()) { - StartSpriteAnim(sPSSData->field_CB4, 0); - sPSSData->monPlaceChangeState++; + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_BOUNCE); + sStorage->monPlaceChangeState++; } break; case 2: @@ -6181,30 +6232,30 @@ static bool8 MonPlaceChange_Place(void) static bool8 MonPlaceChange_Shift(void) { - switch (sPSSData->monPlaceChangeState) + switch (sStorage->monPlaceChangeState) { case 0: - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - sPSSData->field_D91 = TOTAL_BOXES_COUNT; + sStorage->shiftBoxId = TOTAL_BOXES_COUNT; break; case CURSOR_AREA_IN_BOX: - sPSSData->field_D91 = StorageGetCurrentBox(); + sStorage->shiftBoxId = StorageGetCurrentBox(); break; default: return FALSE; } - StartSpriteAnim(sPSSData->field_CB4, 2); - sub_80CBD5C(sPSSData->field_D91, sBoxCursorPosition); - sPSSData->monPlaceChangeState++; + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_OPEN); + SaveMonSpriteAtPos(sStorage->shiftBoxId, sCursorPosition); + sStorage->monPlaceChangeState++; break; case 1: - if (!sub_80CBDC4()) + if (!MoveShiftingMons()) { - StartSpriteAnim(sPSSData->field_CB4, 3); - SetShiftedMonData(sPSSData->field_D91, sBoxCursorPosition); - sPSSData->monPlaceChangeState++; + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_FIST); + SetShiftedMonData(sStorage->shiftBoxId, sCursorPosition); + sStorage->monPlaceChangeState++; } break; case 2: @@ -6214,60 +6265,70 @@ static bool8 MonPlaceChange_Shift(void) return TRUE; } -static bool8 sub_80CDEB4(void) +static bool8 MultiMonPlaceChange_Down(void) { - return sub_80CDED4(); + return MonPlaceChange_CursorDown(); } -static bool8 sub_80CDEC4(void) +static bool8 MultiMonPlaceChange_Up(void) { - return sub_80CDF08(); + return MonPlaceChange_CursorUp(); } -static bool8 sub_80CDED4(void) +static bool8 MonPlaceChange_CursorDown(void) { - switch (sPSSData->field_CB4->pos2.y) + switch (sStorage->cursorSprite->y2) { default: - sPSSData->field_CB4->pos2.y++; + sStorage->cursorSprite->y2++; break; case 0: - sPSSData->field_CB4->pos2.y++; + sStorage->cursorSprite->y2++; break; - case 8: + case 8: // Cursor has reached bottom return FALSE; } return TRUE; } -static bool8 sub_80CDF08(void) +static bool8 MonPlaceChange_CursorUp(void) { - switch (sPSSData->field_CB4->pos2.y) + switch (sStorage->cursorSprite->y2) { - case 0: + case 0: // Cursor has reached top return FALSE; default: - sPSSData->field_CB4->pos2.y--; + sStorage->cursorSprite->y2--; break; } return TRUE; } + +//------------------------------------------------------------------------------ +// SECTION: Pokémon data +// +// The functions below handle moving Pokémon data around while using the PC, +// including changing the positions of Pokémon, releasing Pokémon, viewing the +// summary screen, and updating the display of the currently selected Pokémon. +//------------------------------------------------------------------------------ + + static void MoveMon(void) { - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - SetMovedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); - sub_80CBC14(MODE_PARTY, sBoxCursorPosition); + SetMovingMonData(TOTAL_BOXES_COUNT, sCursorPosition); + SetMovingMonSprite(MODE_PARTY, sCursorPosition); break; case CURSOR_AREA_IN_BOX: - if (sPSSData->inBoxMovingMode == 0) + if (sStorage->inBoxMovingMode == MOVE_MODE_NORMAL) { - SetMovedMonData(StorageGetCurrentBox(), sBoxCursorPosition); - sub_80CBC14(MODE_BOX, sBoxCursorPosition); + SetMovingMonData(StorageGetCurrentBox(), sCursorPosition); + SetMovingMonSprite(MODE_BOX, sCursorPosition); } break; default: @@ -6281,16 +6342,16 @@ static void PlaceMon(void) { u8 boxId; - switch (sBoxCursorArea) + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - SetPlacedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); - sub_80CBCAC(TOTAL_BOXES_COUNT, sBoxCursorPosition); + SetPlacedMonData(TOTAL_BOXES_COUNT, sCursorPosition); + SetPlacedMonSprite(TOTAL_BOXES_COUNT, sCursorPosition); break; case CURSOR_AREA_IN_BOX: boxId = StorageGetCurrentBox(); - SetPlacedMonData(boxId, sBoxCursorPosition); - sub_80CBCAC(boxId, sBoxCursorPosition); + SetPlacedMonData(boxId, sCursorPosition); + SetPlacedMonSprite(boxId, sCursorPosition); break; default: return; @@ -6299,17 +6360,17 @@ static void PlaceMon(void) sIsMonBeingMoved = FALSE; } -static void sub_80CE00C(void) +static void RefreshDisplayMon(void) { - sub_80CEB40(); + TryRefreshDisplayMon(); } -static void SetMovedMonData(u8 boxId, u8 position) +static void SetMovingMonData(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) - sPSSData->movingMon = gPlayerParty[sBoxCursorPosition]; + sStorage->movingMon = gPlayerParty[sCursorPosition]; else - BoxMonAtToMon(boxId, position, &sPSSData->movingMon); + BoxMonAtToMon(boxId, position, &sStorage->movingMon); PurgeMonOrBoxMon(boxId, position); sMovingMonOrigBoxId = boxId; @@ -6320,12 +6381,12 @@ static void SetPlacedMonData(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) { - gPlayerParty[position] = sPSSData->movingMon; + gPlayerParty[position] = sStorage->movingMon; } else { - BoxMonRestorePP(&sPSSData->movingMon.box); - SetBoxMonAt(boxId, position, &sPSSData->movingMon.box); + BoxMonRestorePP(&sStorage->movingMon.box); + SetBoxMonAt(boxId, position, &sStorage->movingMon.box); } } @@ -6340,13 +6401,13 @@ static void PurgeMonOrBoxMon(u8 boxId, u8 position) static void SetShiftedMonData(u8 boxId, u8 position) { if (boxId == TOTAL_BOXES_COUNT) - sPSSData->field_2108 = gPlayerParty[position]; + sStorage->tempMon = gPlayerParty[position]; else - BoxMonAtToMon(boxId, position, &sPSSData->field_2108); + BoxMonAtToMon(boxId, position, &sStorage->tempMon); SetPlacedMonData(boxId, position); - sPSSData->movingMon = sPSSData->field_2108; - SetCursorMonData(&sPSSData->movingMon, MODE_PARTY); + sStorage->movingMon = sStorage->tempMon; + SetDisplayMonData(&sStorage->movingMon, MODE_PARTY); sMovingMonOrigBoxId = boxId; sMovingMonOrigBoxPos = position; } @@ -6365,44 +6426,44 @@ static bool8 TryStorePartyMonInBox(u8 boxId) } else { - SetMovedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); + SetMovingMonData(TOTAL_BOXES_COUNT, sCursorPosition); SetPlacedMonData(boxId, boxPosition); - DestroyPartyMonIcon(sBoxCursorPosition); + DestroyPartyMonIcon(sCursorPosition); } if (boxId == StorageGetCurrentBox()) - sub_80CB140(boxPosition); + CreateBoxMonIconAtPos(boxPosition); - StartSpriteAnim(sPSSData->field_CB4, 1); + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_STILL); return TRUE; } -static void sub_80CE22C(void) +static void ResetSelectionAfterDeposit(void) { - StartSpriteAnim(sPSSData->field_CB4, 0); - sub_80CEB40(); + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_BOUNCE); + TryRefreshDisplayMon(); } -static void sub_80CE250(void) +static void InitReleaseMon(void) { u8 mode; if (sIsMonBeingMoved) mode = MODE_MOVE; - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + else if (sCursorArea == CURSOR_AREA_IN_PARTY) mode = MODE_PARTY; else mode = MODE_BOX; - sub_80CBF14(mode, sBoxCursorPosition); - StringCopy(sPSSData->field_21E0, sPSSData->cursorMonNick); + SetReleaseMon(mode, sCursorPosition); + StringCopy(sStorage->releaseMonName, sStorage->displayMonName); } -static bool8 sub_80CE2A8(void) +static bool8 TryHideReleaseMon(void) { - if (!sub_80CBFD8()) + if (!TryHideReleaseMonSprite()) { - StartSpriteAnim(sPSSData->field_CB4, 0); + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_BOUNCE); return FALSE; } else @@ -6415,35 +6476,39 @@ static void ReleaseMon(void) { u8 boxId; - sub_80CC020(); + DestroyReleaseMonIcon(); if (sIsMonBeingMoved) { sIsMonBeingMoved = FALSE; } else { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + if (sCursorArea == CURSOR_AREA_IN_PARTY) boxId = TOTAL_BOXES_COUNT; else boxId = StorageGetCurrentBox(); - PurgeMonOrBoxMon(boxId, sBoxCursorPosition); + PurgeMonOrBoxMon(boxId, sCursorPosition); } - sub_80CEB40(); + TryRefreshDisplayMon(); } -static void sub_80CE324(void) +static void TrySetCursorFistAnim(void) { if (sIsMonBeingMoved) - StartSpriteAnim(sPSSData->field_CB4, 3); + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_FIST); } +// If the player is on the listed map (or any map, if none is specified), +// they may not release their last Pokémon that knows the specified move. +// This is to stop the player from softlocking themselves by not having +// a Pokémon that knows a required field move. struct { s8 mapGroup; s8 mapNum; u16 move; -} static const gUnknown_0857B9A4[] = +} static const sRestrictedReleaseMoves[] = { {MAP_GROUPS_COUNT, 0, MOVE_SURF}, {MAP_GROUPS_COUNT, 0, MOVE_DIVE}, @@ -6453,73 +6518,79 @@ struct {MAP_GROUP(EVER_GRANDE_CITY_POKEMON_LEAGUE_2F), MAP_NUM(EVER_GRANDE_CITY_POKEMON_LEAGUE_2F), MOVE_ROCK_SMASH}, }; -static void sub_80CE350(u16 *moves) +static void GetRestrictedReleaseMoves(u16 *moves) { s32 i; - for (i = 0; i < ARRAY_COUNT(gUnknown_0857B9A4); i++) + for (i = 0; i < ARRAY_COUNT(sRestrictedReleaseMoves); i++) { - if (gUnknown_0857B9A4[i].mapGroup == MAP_GROUPS_COUNT - || (gUnknown_0857B9A4[i].mapGroup == gSaveBlock1Ptr->location.mapGroup && gUnknown_0857B9A4[i].mapNum == gSaveBlock1Ptr->location.mapNum)) + if (sRestrictedReleaseMoves[i].mapGroup == MAP_GROUPS_COUNT + || (sRestrictedReleaseMoves[i].mapGroup == gSaveBlock1Ptr->location.mapGroup + && sRestrictedReleaseMoves[i].mapNum == gSaveBlock1Ptr->location.mapNum)) { - *moves = gUnknown_0857B9A4[i].move; + *moves = sRestrictedReleaseMoves[i].move; moves++; } } - *moves = MOVES_COUNT; } -static void InitCanRelaseMonVars(void) +static void InitCanReleaseMonVars(void) { if (!AtLeastThreeUsableMons()) { - sPSSData->field_216D = 1; - sPSSData->field_216C = 0; + // The player only has 1 or 2 usable + // Pokémon, this one can't be released + sStorage->releaseStatusResolved = TRUE; + sStorage->canReleaseMon = FALSE; return; } if (sIsMonBeingMoved) { - sPSSData->field_2108 = sPSSData->movingMon; - sPSSData->field_2170 = -1; - sPSSData->field_2171 = -1; + sStorage->tempMon = sStorage->movingMon; + sStorage->releaseBoxId = -1; + sStorage->releaseBoxPos = -1; } else { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + if (sCursorArea == CURSOR_AREA_IN_PARTY) { - sPSSData->field_2108 = gPlayerParty[sBoxCursorPosition]; - sPSSData->field_2170 = TOTAL_BOXES_COUNT; + sStorage->tempMon = gPlayerParty[sCursorPosition]; + sStorage->releaseBoxId = TOTAL_BOXES_COUNT; } else { - BoxMonAtToMon(StorageGetCurrentBox(), sBoxCursorPosition, &sPSSData->field_2108); - sPSSData->field_2170 = StorageGetCurrentBox(); + BoxMonAtToMon(StorageGetCurrentBox(), sCursorPosition, &sStorage->tempMon); + sStorage->releaseBoxId = StorageGetCurrentBox(); } - sPSSData->field_2171 = sBoxCursorPosition; + sStorage->releaseBoxPos = sCursorPosition; } - sub_80CE350(sPSSData->field_2176); - sPSSData->field_2174 = GetMonData(&sPSSData->field_2108, MON_DATA_KNOWN_MOVES, (u8*)sPSSData->field_2176); - if (sPSSData->field_2174 != 0) + GetRestrictedReleaseMoves(sStorage->restrictedMoveList); + sStorage->restrictedReleaseMonMoves = GetMonData(&sStorage->tempMon, MON_DATA_KNOWN_MOVES, (u8*)sStorage->restrictedMoveList); + if (sStorage->restrictedReleaseMonMoves != 0) { - sPSSData->field_216D = 0; + // Pokémon knows at least one restricted release move + // Need to check if another Pokémon has this move first + sStorage->releaseStatusResolved = FALSE; } else { - sPSSData->field_216D = 1; - sPSSData->field_216C = 1; + // Pokémon knows no restricted moves, can be released + sStorage->releaseStatusResolved = TRUE; + sStorage->canReleaseMon = TRUE; } - sPSSData->field_2172 = 0; + sStorage->releaseCheckState = 0; } static bool32 AtLeastThreeUsableMons(void) { - s32 i, j, count; - - count = (sIsMonBeingMoved != FALSE); + s32 i, j; + s32 count = (sIsMonBeingMoved != FALSE); + + // Check party for usable Pokémon for (j = 0; j < PARTY_SIZE; j++) { if (GetMonData(&gPlayerParty[j], MON_DATA_SANITY_HAS_SPECIES)) @@ -6529,6 +6600,7 @@ static bool32 AtLeastThreeUsableMons(void) if (count >= 3) return TRUE; + // Check PC for usable Pokémon for (i = 0; i < TOTAL_BOXES_COUNT; i++) { for (j = 0; j < IN_BOX_COUNT; j++) @@ -6549,54 +6621,69 @@ static s8 RunCanReleaseMon(void) u16 i; u16 knownMoves; - if (sPSSData->field_216D) - return sPSSData->field_216C; + if (sStorage->releaseStatusResolved) + return sStorage->canReleaseMon; - switch (sPSSData->field_2172) + switch (sStorage->releaseCheckState) { case 0: + // Check party for other Pokémon that know any restricted + // moves the release Pokémon knows for (i = 0; i < PARTY_SIZE; i++) { - if (sPSSData->field_2170 != TOTAL_BOXES_COUNT || sPSSData->field_2171 != i) + // Make sure party Pokémon isn't the one we're releasing first + if (sStorage->releaseBoxId != TOTAL_BOXES_COUNT || sStorage->releaseBoxPos != i) { - knownMoves = GetMonData(gPlayerParty + i, MON_DATA_KNOWN_MOVES, (u8*)sPSSData->field_2176); - sPSSData->field_2174 &= ~(knownMoves); + knownMoves = GetMonData(&gPlayerParty[i], MON_DATA_KNOWN_MOVES, (u8*)sStorage->restrictedMoveList); + sStorage->restrictedReleaseMonMoves &= ~(knownMoves); } } - if (sPSSData->field_2174 == 0) + if (sStorage->restrictedReleaseMonMoves == 0) { - sPSSData->field_216D = 1; - sPSSData->field_216C = 1; + // No restricted moves on release Pokémon that + // aren't resolved by the party, it can be released. + sStorage->releaseStatusResolved = TRUE; + sStorage->canReleaseMon = TRUE; } else { - sPSSData->field_216E = 0; - sPSSData->field_216F = 0; - sPSSData->field_2172++; + // Release Pokémon has restricted moves not resolved by the party. + // Continue and check the PC next + sStorage->releaseCheckBoxId = 0; + sStorage->releaseCheckBoxPos = 0; + sStorage->releaseCheckState++; } break; case 1: + // Check PC for other Pokémon that know any restricted + // moves the release Pokémon knows for (i = 0; i < IN_BOX_COUNT; i++) { - knownMoves = GetAndCopyBoxMonDataAt(sPSSData->field_216E, sPSSData->field_216F, MON_DATA_KNOWN_MOVES, (u8*)sPSSData->field_2176); - if (knownMoves != 0 - && !(sPSSData->field_2170 == sPSSData->field_216E && sPSSData->field_2171 == sPSSData->field_216F)) + knownMoves = GetAndCopyBoxMonDataAt(sStorage->releaseCheckBoxId, sStorage->releaseCheckBoxPos, MON_DATA_KNOWN_MOVES, (u8*)sStorage->restrictedMoveList); + if (knownMoves != 0 && !(sStorage->releaseBoxId == sStorage->releaseCheckBoxId + && sStorage->releaseBoxPos == sStorage->releaseCheckBoxPos)) { - sPSSData->field_2174 &= ~(knownMoves); - if (sPSSData->field_2174 == 0) + // Found PC Pokémon with restricted move, clear move from list + sStorage->restrictedReleaseMonMoves &= ~(knownMoves); + if (sStorage->restrictedReleaseMonMoves == 0) { - sPSSData->field_216D = 1; - sPSSData->field_216C = 1; + // No restricted moves on release Pokémon that + // aren't resolved, it can be released. + sStorage->releaseStatusResolved = TRUE; + sStorage->canReleaseMon = TRUE; break; } } - if (++sPSSData->field_216F >= IN_BOX_COUNT) + if (++sStorage->releaseCheckBoxPos >= IN_BOX_COUNT) { - sPSSData->field_216F = 0; - if (++sPSSData->field_216E >= TOTAL_BOXES_COUNT) + sStorage->releaseCheckBoxPos = 0; + if (++sStorage->releaseCheckBoxId >= TOTAL_BOXES_COUNT) { - sPSSData->field_216D = 1; - sPSSData->field_216C = 0; + // Checked every Pokémon in the PC, release Pokémon is + // the sole owner of at least one restricted move. + // It cannot be released. + sStorage->releaseStatusResolved = TRUE; + sStorage->canReleaseMon = FALSE; } } } @@ -6606,55 +6693,57 @@ static s8 RunCanReleaseMon(void) return -1; } -static void sub_80CE760(void) +static void SaveMovingMon(void) { if (sIsMonBeingMoved) - gUnknown_02039D14 = sPSSData->movingMon; + sSavedMovingMon = sStorage->movingMon; } -static void sub_80CE790(void) +static void LoadSavedMovingMon(void) { if (sIsMonBeingMoved) { + // If it came from the party load a struct Pokemon, + // otherwise load a BoxPokemon if (sMovingMonOrigBoxId == TOTAL_BOXES_COUNT) - sPSSData->movingMon = gUnknown_02039D14; + sStorage->movingMon = sSavedMovingMon; else - sPSSData->movingMon.box = gUnknown_02039D14.box; + sStorage->movingMon.box = sSavedMovingMon.box; } } -static void sub_80CE7E8(void) +static void InitSummaryScreenData(void) { if (sIsMonBeingMoved) { - sub_80CE760(); - sPSSData->field_218C.mon = &gUnknown_02039D14; - sPSSData->field_2187 = 0; - sPSSData->field_2186 = 0; - sPSSData->pokemonSummaryScreenMode = PSS_MODE_NORMAL; + SaveMovingMon(); + sStorage->summaryMon.mon = &sSavedMovingMon; + sStorage->summaryStartPos = 0; + sStorage->summaryMaxPos = 0; + sStorage->summaryScreenMode = SUMMARY_MODE_NORMAL; } - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + else if (sCursorArea == CURSOR_AREA_IN_PARTY) { - sPSSData->field_218C.mon = gPlayerParty; - sPSSData->field_2187 = sBoxCursorPosition; - sPSSData->field_2186 = CountPartyMons() - 1; - sPSSData->pokemonSummaryScreenMode = PSS_MODE_NORMAL; + sStorage->summaryMon.mon = gPlayerParty; + sStorage->summaryStartPos = sCursorPosition; + sStorage->summaryMaxPos = CountPartyMons() - 1; + sStorage->summaryScreenMode = SUMMARY_MODE_NORMAL; } else { - sPSSData->field_218C.box = GetBoxedMonPtr(StorageGetCurrentBox(), 0); - sPSSData->field_2187 = sBoxCursorPosition; - sPSSData->field_2186 = IN_BOX_COUNT - 1; - sPSSData->pokemonSummaryScreenMode = PSS_MODE_BOX; + sStorage->summaryMon.box = GetBoxedMonPtr(StorageGetCurrentBox(), 0); + sStorage->summaryStartPos = sCursorPosition; + sStorage->summaryMaxPos = IN_BOX_COUNT - 1; + sStorage->summaryScreenMode = SUMMARY_MODE_BOX; } } -static void sub_80CE8E4(void) +static void SetSelectionAfterSummaryScreen(void) { if (sIsMonBeingMoved) - sub_80CE790(); + LoadSavedMovingMon(); else - sBoxCursorPosition = gLastViewedMonIndex; + sCursorPosition = gLastViewedMonIndex; } s16 CompactPartySlots(void) @@ -6664,7 +6753,7 @@ s16 CompactPartySlots(void) for (i = 0, last = 0; i < PARTY_SIZE; i++) { - u16 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); if (species != SPECIES_NONE) { if (i != last) @@ -6677,30 +6766,30 @@ s16 CompactPartySlots(void) } } for (; last < PARTY_SIZE; last++) - ZeroMonData(gPlayerParty + last); + ZeroMonData(&gPlayerParty[last]); return retVal; } static void SetMonMarkings(u8 markings) { - sPSSData->cursorMonMarkings = markings; + sStorage->displayMonMarkings = markings; if (sIsMonBeingMoved) { - SetMonData(&sPSSData->movingMon, MON_DATA_MARKINGS, &markings); + SetMonData(&sStorage->movingMon, MON_DATA_MARKINGS, &markings); } else { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - SetMonData(gPlayerParty + sBoxCursorPosition, MON_DATA_MARKINGS, &markings); - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - SetCurrentBoxMonData(sBoxCursorPosition, MON_DATA_MARKINGS, &markings); + if (sCursorArea == CURSOR_AREA_IN_PARTY) + SetMonData(&gPlayerParty[sCursorPosition], MON_DATA_MARKINGS, &markings); + if (sCursorArea == CURSOR_AREA_IN_BOX) + SetCurrentBoxMonData(sCursorPosition, MON_DATA_MARKINGS, &markings); } } -static bool8 CanMovePartyMon(void) +static bool8 IsRemovingLastPartyMon(void) { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY && !sIsMonBeingMoved && CountPartyAliveNonEggMonsExcept(sBoxCursorPosition) == 0) + if (sCursorArea == CURSOR_AREA_IN_PARTY && !sIsMonBeingMoved && CountPartyAliveNonEggMonsExcept(sCursorPosition) == 0) return TRUE; else return FALSE; @@ -6710,9 +6799,9 @@ static bool8 CanShiftMon(void) { if (sIsMonBeingMoved) { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY && CountPartyAliveNonEggMonsExcept(sBoxCursorPosition) == 0) + if (sCursorArea == CURSOR_AREA_IN_PARTY && CountPartyAliveNonEggMonsExcept(sCursorPosition) == 0) { - if (sPSSData->cursorMonIsEgg || GetMonData(&sPSSData->movingMon, MON_DATA_HP) == 0) + if (sStorage->displayMonIsEgg || GetMonData(&sStorage->movingMon, MON_DATA_HP) == 0) return FALSE; } return TRUE; @@ -6725,148 +6814,152 @@ static bool8 IsMonBeingMoved(void) return sIsMonBeingMoved; } -static bool8 IsCursorOnBox(void) +static bool8 IsCursorOnBoxTitle(void) { - return (sBoxCursorArea == CURSOR_AREA_BOX); + return (sCursorArea == CURSOR_AREA_BOX_TITLE); } static bool8 IsCursorOnCloseBox(void) { - return (sBoxCursorArea == CURSOR_AREA_BUTTONS && sBoxCursorPosition == 1); + return (sCursorArea == CURSOR_AREA_BUTTONS && sCursorPosition == 1); } static bool8 IsCursorInBox(void) { - return (sBoxCursorArea == CURSOR_AREA_IN_BOX); + return (sCursorArea == CURSOR_AREA_IN_BOX); } -static void sub_80CEB40(void) +static void TryRefreshDisplayMon(void) { - sPSSData->setMosaic = (sIsMonBeingMoved == FALSE); + // If a Pokémon is currently being moved, don't start + // mosaic or update display. Keep displaying the + // currently held Pokémon. + sStorage->setMosaic = (sIsMonBeingMoved == FALSE); if (!sIsMonBeingMoved) { - switch (sBoxCursorArea) + // Update display Pokémon + switch (sCursorArea) { case CURSOR_AREA_IN_PARTY: - if (sBoxCursorPosition < PARTY_SIZE) + if (sCursorPosition < PARTY_SIZE) { - SetCursorMonData(&gPlayerParty[sBoxCursorPosition], MODE_PARTY); + SetDisplayMonData(&gPlayerParty[sCursorPosition], MODE_PARTY); break; } // fallthrough case CURSOR_AREA_BUTTONS: - case CURSOR_AREA_BOX: - SetCursorMonData(NULL, MODE_MOVE); + case CURSOR_AREA_BOX_TITLE: + SetDisplayMonData(NULL, MODE_MOVE); break; case CURSOR_AREA_IN_BOX: - SetCursorMonData(GetBoxedMonPtr(StorageGetCurrentBox(), sBoxCursorPosition), MODE_BOX); + SetDisplayMonData(GetBoxedMonPtr(StorageGetCurrentBox(), sCursorPosition), MODE_BOX); break; } } } -static void sub_80CEBDC(void) +static void ReshowDisplayMon(void) { if (sIsMonBeingMoved) - SetCursorMonData(&gUnknown_02039D14, MODE_PARTY); + SetDisplayMonData(&sSavedMovingMon, MODE_PARTY); else - sub_80CEB40(); + TryRefreshDisplayMon(); } -static void SetCursorMonData(void *pokemon, u8 mode) +static void SetDisplayMonData(void *pokemon, u8 mode) { u8 *txtPtr; u16 gender; bool8 sanityIsBadEgg; - sPSSData->cursorMonItem = 0; + sStorage->displayMonItemId = ITEM_NONE; gender = MON_MALE; sanityIsBadEgg = FALSE; if (mode == MODE_PARTY) { struct Pokemon *mon = (struct Pokemon *)pokemon; - sPSSData->cursorMonSpecies = GetMonData(mon, MON_DATA_SPECIES2); - if (sPSSData->cursorMonSpecies != SPECIES_NONE) + sStorage->displayMonSpecies = GetMonData(mon, MON_DATA_SPECIES2); + if (sStorage->displayMonSpecies != SPECIES_NONE) { sanityIsBadEgg = GetMonData(mon, MON_DATA_SANITY_IS_BAD_EGG); if (sanityIsBadEgg) - sPSSData->cursorMonIsEgg = TRUE; + sStorage->displayMonIsEgg = TRUE; else - sPSSData->cursorMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG); + sStorage->displayMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG); - GetMonData(mon, MON_DATA_NICKNAME, sPSSData->cursorMonNick); - StringGetEnd10(sPSSData->cursorMonNick); - sPSSData->cursorMonLevel = GetMonData(mon, MON_DATA_LEVEL); - sPSSData->cursorMonMarkings = GetMonData(mon, MON_DATA_MARKINGS); - sPSSData->cursorMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY); - sPSSData->cursorMonPalette = GetMonFrontSpritePal(mon); + GetMonData(mon, MON_DATA_NICKNAME, sStorage->displayMonName); + StringGetEnd10(sStorage->displayMonName); + sStorage->displayMonLevel = GetMonData(mon, MON_DATA_LEVEL); + sStorage->displayMonMarkings = GetMonData(mon, MON_DATA_MARKINGS); + sStorage->displayMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY); + sStorage->displayMonPalette = GetMonFrontSpritePal(mon); gender = GetMonGender(mon); - sPSSData->cursorMonItem = GetMonData(mon, MON_DATA_HELD_ITEM); + sStorage->displayMonItemId = GetMonData(mon, MON_DATA_HELD_ITEM); } } else if (mode == MODE_BOX) { struct BoxPokemon *boxMon = (struct BoxPokemon *)pokemon; - sPSSData->cursorMonSpecies = GetBoxMonData(pokemon, MON_DATA_SPECIES2); - if (sPSSData->cursorMonSpecies != SPECIES_NONE) + sStorage->displayMonSpecies = GetBoxMonData(pokemon, MON_DATA_SPECIES2); + if (sStorage->displayMonSpecies != SPECIES_NONE) { u32 otId = GetBoxMonData(boxMon, MON_DATA_OT_ID); sanityIsBadEgg = GetBoxMonData(boxMon, MON_DATA_SANITY_IS_BAD_EGG); if (sanityIsBadEgg) - sPSSData->cursorMonIsEgg = TRUE; + sStorage->displayMonIsEgg = TRUE; else - sPSSData->cursorMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG); + sStorage->displayMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG); - GetBoxMonData(boxMon, MON_DATA_NICKNAME, sPSSData->cursorMonNick); - StringGetEnd10(sPSSData->cursorMonNick); - sPSSData->cursorMonLevel = GetLevelFromBoxMonExp(boxMon); - sPSSData->cursorMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS); - sPSSData->cursorMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); - sPSSData->cursorMonPalette = GetMonSpritePalFromSpeciesAndPersonality(sPSSData->cursorMonSpecies, otId, sPSSData->cursorMonPersonality); - gender = GetGenderFromSpeciesAndPersonality(sPSSData->cursorMonSpecies, sPSSData->cursorMonPersonality); - sPSSData->cursorMonItem = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM); + GetBoxMonData(boxMon, MON_DATA_NICKNAME, sStorage->displayMonName); + StringGetEnd10(sStorage->displayMonName); + sStorage->displayMonLevel = GetLevelFromBoxMonExp(boxMon); + sStorage->displayMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS); + sStorage->displayMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); + sStorage->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(sStorage->displayMonSpecies, otId, sStorage->displayMonPersonality); + gender = GetGenderFromSpeciesAndPersonality(sStorage->displayMonSpecies, sStorage->displayMonPersonality); + sStorage->displayMonItemId = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM); } } else { - sPSSData->cursorMonSpecies = SPECIES_NONE; - sPSSData->cursorMonItem = 0; + sStorage->displayMonSpecies = SPECIES_NONE; + sStorage->displayMonItemId = ITEM_NONE; } - if (sPSSData->cursorMonSpecies == SPECIES_NONE) + if (sStorage->displayMonSpecies == SPECIES_NONE) { - StringFill(sPSSData->cursorMonNick, CHAR_SPACE, 5); - StringFill(sPSSData->cursorMonNickText, CHAR_SPACE, 8); - StringFill(sPSSData->cursorMonSpeciesName, CHAR_SPACE, 8); - StringFill(sPSSData->cursorMonGenderLvlText, CHAR_SPACE, 8); - StringFill(sPSSData->cursorMonItemName, CHAR_SPACE, 8); + StringFill(sStorage->displayMonName, CHAR_SPACE, 5); + StringFill(sStorage->displayMonNameText, CHAR_SPACE, 8); + StringFill(sStorage->displayMonSpeciesName, CHAR_SPACE, 8); + StringFill(sStorage->displayMonGenderLvlText, CHAR_SPACE, 8); + StringFill(sStorage->displayMonItemName, CHAR_SPACE, 8); } - else if (sPSSData->cursorMonIsEgg) + else if (sStorage->displayMonIsEgg) { if (sanityIsBadEgg) - StringCopyPadded(sPSSData->cursorMonNickText, sPSSData->cursorMonNick, CHAR_SPACE, 5); + StringCopyPadded(sStorage->displayMonNameText, sStorage->displayMonName, CHAR_SPACE, 5); else - StringCopyPadded(sPSSData->cursorMonNickText, gText_EggNickname, CHAR_SPACE, 8); + StringCopyPadded(sStorage->displayMonNameText, gText_EggNickname, CHAR_SPACE, 8); - StringFill(sPSSData->cursorMonSpeciesName, CHAR_SPACE, 8); - StringFill(sPSSData->cursorMonGenderLvlText, CHAR_SPACE, 8); - StringFill(sPSSData->cursorMonItemName, CHAR_SPACE, 8); + StringFill(sStorage->displayMonSpeciesName, CHAR_SPACE, 8); + StringFill(sStorage->displayMonGenderLvlText, CHAR_SPACE, 8); + StringFill(sStorage->displayMonItemName, CHAR_SPACE, 8); } else { - if (sPSSData->cursorMonSpecies == SPECIES_NIDORAN_F || sPSSData->cursorMonSpecies == SPECIES_NIDORAN_M) + if (sStorage->displayMonSpecies == SPECIES_NIDORAN_F || sStorage->displayMonSpecies == SPECIES_NIDORAN_M) gender = MON_GENDERLESS; - StringCopyPadded(sPSSData->cursorMonNickText, sPSSData->cursorMonNick, CHAR_SPACE, 5); + StringCopyPadded(sStorage->displayMonNameText, sStorage->displayMonName, CHAR_SPACE, 5); - txtPtr = sPSSData->cursorMonSpeciesName; + txtPtr = sStorage->displayMonSpeciesName; *(txtPtr)++ = CHAR_SLASH; - StringCopyPadded(txtPtr, gSpeciesNames[sPSSData->cursorMonSpecies], CHAR_SPACE, 5); + StringCopyPadded(txtPtr, gSpeciesNames[sStorage->displayMonSpecies], CHAR_SPACE, 5); - txtPtr = sPSSData->cursorMonGenderLvlText; + txtPtr = sStorage->displayMonGenderLvlText; *(txtPtr)++ = EXT_CTRL_CODE_BEGIN; *(txtPtr)++ = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; switch (gender) @@ -6884,43 +6977,51 @@ static void SetCursorMonData(void *pokemon, u8 mode) *(txtPtr)++ = CHAR_FEMALE; break; default: - *(txtPtr)++ = TEXT_COLOR_DARK_GREY; + *(txtPtr)++ = TEXT_COLOR_DARK_GRAY; *(txtPtr)++ = TEXT_COLOR_WHITE; - *(txtPtr)++ = TEXT_COLOR_LIGHT_GREY; - *(txtPtr)++ = CHAR_UNK_SPACER; + *(txtPtr)++ = TEXT_COLOR_LIGHT_GRAY; + *(txtPtr)++ = CHAR_GENDERLESS; break; } *(txtPtr++) = EXT_CTRL_CODE_BEGIN; *(txtPtr++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; - *(txtPtr++) = TEXT_COLOR_DARK_GREY; + *(txtPtr++) = TEXT_COLOR_DARK_GRAY; *(txtPtr++) = TEXT_COLOR_WHITE; - *(txtPtr++) = TEXT_COLOR_LIGHT_GREY; + *(txtPtr++) = TEXT_COLOR_LIGHT_GRAY; *(txtPtr++) = CHAR_SPACE; *(txtPtr++) = CHAR_EXTRA_SYMBOL; *(txtPtr++) = CHAR_LV_2; - txtPtr = ConvertIntToDecimalStringN(txtPtr, sPSSData->cursorMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3); + txtPtr = ConvertIntToDecimalStringN(txtPtr, sStorage->displayMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3); txtPtr[0] = CHAR_SPACE; txtPtr[1] = EOS; - if (sPSSData->cursorMonItem != 0) - StringCopyPadded(sPSSData->cursorMonItemName, ItemId_GetName(sPSSData->cursorMonItem), CHAR_SPACE, 8); + if (sStorage->displayMonItemId != ITEM_NONE) + StringCopyPadded(sStorage->displayMonItemName, ItemId_GetName(sStorage->displayMonItemId), CHAR_SPACE, 8); else - StringFill(sPSSData->cursorMonItemName, CHAR_SPACE, 8); + StringFill(sStorage->displayMonItemName, CHAR_SPACE, 8); } } + +//------------------------------------------------------------------------------ +// SECTION: Input handlers +// +// The functions below process context-dependent input +//------------------------------------------------------------------------------ + + static u8 HandleInput_InBox(void) { - switch (sPSSData->inBoxMovingMode) + switch (sStorage->inBoxMovingMode) { - case 0: + case MOVE_MODE_NORMAL: default: return InBoxInput_Normal(); - case 1: - return InBoxInput_GrabbingMultiple(); - case 2: + case MOVE_MODE_MULTIPLE_SELECTING: + return InBoxInput_SelectingMultiple(); + case MOVE_MODE_MULTIPLE_MOVING: return InBoxInput_MovingMultiple(); } } @@ -6933,208 +7034,209 @@ static u8 InBoxInput_Normal(void) do { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - sPSSData->field_CD2 = 0; - sPSSData->field_CD3 = 0; - sPSSData->field_CD7 = 0; + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + sStorage->cursorVerticalWrap = 0; + sStorage->cursorHorizontalWrap = 0; + sStorage->cursorFlipTimer = 0; if (JOY_REPEAT(DPAD_UP)) { - retVal = TRUE; - if (sBoxCursorPosition >= IN_BOX_ROWS) + retVal = INPUT_MOVE_CURSOR; + if (sCursorPosition >= IN_BOX_COLUMNS) { - cursorPosition -= IN_BOX_ROWS; + cursorPosition -= IN_BOX_COLUMNS; } else { - cursorArea = CURSOR_AREA_BOX; + cursorArea = CURSOR_AREA_BOX_TITLE; cursorPosition = 0; } break; } else if (JOY_REPEAT(DPAD_DOWN)) { - retVal = TRUE; - cursorPosition += IN_BOX_ROWS; + retVal = INPUT_MOVE_CURSOR; + cursorPosition += IN_BOX_COLUMNS; if (cursorPosition >= IN_BOX_COUNT) { cursorArea = CURSOR_AREA_BUTTONS; cursorPosition -= IN_BOX_COUNT; cursorPosition /= 3; - sPSSData->field_CD2 = 1; - sPSSData->field_CD7 = 1; + sStorage->cursorVerticalWrap = 1; + sStorage->cursorFlipTimer = 1; } break; } else if (JOY_REPEAT(DPAD_LEFT)) { - retVal = TRUE; - if (sBoxCursorPosition % IN_BOX_ROWS != 0) + retVal = INPUT_MOVE_CURSOR; + if (sCursorPosition % IN_BOX_COLUMNS != 0) { cursorPosition--; } else { - sPSSData->field_CD3 = -1; - cursorPosition += (IN_BOX_ROWS - 1); + sStorage->cursorHorizontalWrap = -1; + cursorPosition += (IN_BOX_COLUMNS - 1); } break; } else if (JOY_REPEAT(DPAD_RIGHT)) { - retVal = TRUE; - if ((sBoxCursorPosition + 1) % IN_BOX_ROWS != 0) + retVal = INPUT_MOVE_CURSOR; + if ((sCursorPosition + 1) % IN_BOX_COLUMNS != 0) { cursorPosition++; } else { - sPSSData->field_CD3 = 1; - cursorPosition -= (IN_BOX_ROWS - 1); + sStorage->cursorHorizontalWrap = 1; + cursorPosition -= (IN_BOX_COLUMNS - 1); } break; } else if (JOY_NEW(START_BUTTON)) { - retVal = TRUE; - cursorArea = CURSOR_AREA_BOX; + retVal = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_BOX_TITLE; cursorPosition = 0; break; } - if ((JOY_NEW(A_BUTTON)) && sub_80CFA5C()) + if ((JOY_NEW(A_BUTTON)) && SetSelectionMenuTexts()) { - if (!sCanOnlyMove) - return 8; + if (!sAutoActionOn) + return INPUT_IN_MENU; - if (sPSSData->boxOption != BOX_OPTION_MOVE_MONS || sIsMonBeingMoved == TRUE) + if (sStorage->boxOption != OPTION_MOVE_MONS || sIsMonBeingMoved == TRUE) { - switch (sub_80CFF98(0)) + switch (GetMenuItemTextId(0)) { - case 1: - return 11; - case 2: - return 12; - case 3: - return 13; - case 4: - return 14; - case 5: - return 15; - case 12: - return 16; - case 13: - return 17; - case 15: - return 18; + case MENU_STORE: + return INPUT_DEPOSIT; + case MENU_WITHDRAW: + return INPUT_WITHDRAW; + case MENU_MOVE: + return INPUT_MOVE_MON; + case MENU_SHIFT: + return INPUT_SHIFT_MON; + case MENU_PLACE: + return INPUT_PLACE_MON; + case MENU_TAKE: + return INPUT_TAKE_ITEM; + case MENU_GIVE: + return INPUT_GIVE_ITEM; + case MENU_SWITCH: + return INPUT_SWITCH_ITEMS; } } else { - sPSSData->inBoxMovingMode = 1; - return 20; + sStorage->inBoxMovingMode = MOVE_MODE_MULTIPLE_SELECTING; + return INPUT_MULTIMOVE_START; } } if (JOY_NEW(B_BUTTON)) - return 19; + return INPUT_PRESSED_B; if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) { if (JOY_HELD(L_BUTTON)) - return 10; + return INPUT_SCROLL_LEFT; if (JOY_HELD(R_BUTTON)) - return 9; + return INPUT_SCROLL_RIGHT; } if (JOY_NEW(SELECT_BUTTON)) { - sub_80CFDC4(); - return 0; + ToggleCursorAutoAction(); + return INPUT_NONE; } - retVal = 0; + retVal = INPUT_NONE; } while (0); if (retVal) - sub_80CD894(cursorArea, cursorPosition); + SetCursorPosition(cursorArea, cursorPosition); return retVal; } -static u8 InBoxInput_GrabbingMultiple(void) +static u8 InBoxInput_SelectingMultiple(void) { if (JOY_HELD(A_BUTTON)) { if (JOY_REPEAT(DPAD_UP)) { - if (sBoxCursorPosition / IN_BOX_ROWS != 0) + if (sCursorPosition / IN_BOX_COLUMNS != 0) { - sub_80CD894(CURSOR_AREA_IN_BOX, sBoxCursorPosition - IN_BOX_ROWS); - return 21; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_CHANGE_SELECTION; } else { - return 24; + return INPUT_MULTIMOVE_UNABLE; } } else if (JOY_REPEAT(DPAD_DOWN)) { - if (sBoxCursorPosition + IN_BOX_ROWS < IN_BOX_COUNT) + if (sCursorPosition + IN_BOX_COLUMNS < IN_BOX_COUNT) { - sub_80CD894(CURSOR_AREA_IN_BOX, sBoxCursorPosition + IN_BOX_ROWS); - return 21; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_CHANGE_SELECTION; } else { - return 24; + return INPUT_MULTIMOVE_UNABLE; } } else if (JOY_REPEAT(DPAD_LEFT)) { - if (sBoxCursorPosition % IN_BOX_ROWS != 0) + if (sCursorPosition % IN_BOX_COLUMNS != 0) { - sub_80CD894(CURSOR_AREA_IN_BOX, sBoxCursorPosition - 1); - return 21; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - 1); + return INPUT_MULTIMOVE_CHANGE_SELECTION; } else { - return 24; + return INPUT_MULTIMOVE_UNABLE; } } else if (JOY_REPEAT(DPAD_RIGHT)) { - if ((sBoxCursorPosition + 1) % IN_BOX_ROWS != 0) + if ((sCursorPosition + 1) % IN_BOX_COLUMNS != 0) { - sub_80CD894(CURSOR_AREA_IN_BOX, sBoxCursorPosition + 1); - return 21; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + 1); + return INPUT_MULTIMOVE_CHANGE_SELECTION; } else { - return 24; + return INPUT_MULTIMOVE_UNABLE; } } else { - return 0; + return INPUT_NONE; } } else { - if (sub_80D0BA4() == sBoxCursorPosition) + if (MultiMove_GetOrigin() == sCursorPosition) { - sPSSData->inBoxMovingMode = 0; - sPSSData->field_CB8->invisible = FALSE; - return 22; + // Doing a multiple mon selection but only chose 1 mon + sStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + sStorage->cursorShadowSprite->invisible = FALSE; + return INPUT_MULTIMOVE_SINGLE; } else { - sIsMonBeingMoved = (sPSSData->cursorMonSpecies != SPECIES_NONE); - sPSSData->inBoxMovingMode = 2; + sIsMonBeingMoved = (sStorage->displayMonSpecies != SPECIES_NONE); + sStorage->inBoxMovingMode = MOVE_MODE_MULTIPLE_MOVING; sMovingMonOrigBoxId = StorageGetCurrentBox(); - return 23; + return INPUT_MULTIMOVE_GRAB_SELECTION; } } } @@ -7143,80 +7245,80 @@ static u8 InBoxInput_MovingMultiple(void) { if (JOY_REPEAT(DPAD_UP)) { - if (sub_80D0580(0)) + if (MultiMove_TryMoveGroup(0)) { - sub_80CD894(CURSOR_AREA_IN_BOX, sBoxCursorPosition - IN_BOX_ROWS); - return 25; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_MOVE_MONS; } else { - return 24; + return INPUT_MULTIMOVE_UNABLE; } } else if (JOY_REPEAT(DPAD_DOWN)) { - if (sub_80D0580(1)) + if (MultiMove_TryMoveGroup(1)) { - sub_80CD894(CURSOR_AREA_IN_BOX, sBoxCursorPosition + IN_BOX_ROWS); - return 25; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_MOVE_MONS; } else { - return 24; + return INPUT_MULTIMOVE_UNABLE; } } else if (JOY_REPEAT(DPAD_LEFT)) { - if (sub_80D0580(2)) + if (MultiMove_TryMoveGroup(2)) { - sub_80CD894(CURSOR_AREA_IN_BOX, sBoxCursorPosition - 1); - return 25; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - 1); + return INPUT_MULTIMOVE_MOVE_MONS; } else { - return 10; + return INPUT_SCROLL_LEFT; } } else if (JOY_REPEAT(DPAD_RIGHT)) { - if (sub_80D0580(3)) + if (MultiMove_TryMoveGroup(3)) { - sub_80CD894(CURSOR_AREA_IN_BOX, sBoxCursorPosition + 1); - return 25; + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + 1); + return INPUT_MULTIMOVE_MOVE_MONS; } else { - return 9; + return INPUT_SCROLL_RIGHT; } } else if (JOY_NEW(A_BUTTON)) { - if (sub_80D0BC0()) + if (MultiMove_CanPlaceSelection()) { sIsMonBeingMoved = FALSE; - sPSSData->inBoxMovingMode = 0; - return 26; + sStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + return INPUT_MULTIMOVE_PLACE_MONS; } else { - return 24; + return INPUT_MULTIMOVE_UNABLE; } } else if (JOY_NEW(B_BUTTON)) { - return 24; + return INPUT_MULTIMOVE_UNABLE; } else { if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) { if (JOY_HELD(L_BUTTON)) - return 10; + return INPUT_SCROLL_LEFT; if (JOY_HELD(R_BUTTON)) - return 9; + return INPUT_SCROLL_RIGHT; } - return 0; + return INPUT_NONE; } } @@ -7229,47 +7331,47 @@ static u8 HandleInput_InParty(void) do { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - sPSSData->field_CD3 = 0; - sPSSData->field_CD2 = 0; - sPSSData->field_CD7 = 0; + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + sStorage->cursorHorizontalWrap = 0; + sStorage->cursorVerticalWrap = 0; + sStorage->cursorFlipTimer = 0; gotoBox = FALSE; - retVal = 0; + retVal = INPUT_NONE; if (JOY_REPEAT(DPAD_UP)) { if (--cursorPosition < 0) cursorPosition = PARTY_SIZE; - if (cursorPosition != sBoxCursorPosition) - retVal = 1; + if (cursorPosition != sCursorPosition) + retVal = INPUT_MOVE_CURSOR; break; } else if (JOY_REPEAT(DPAD_DOWN)) { if (++cursorPosition > PARTY_SIZE) cursorPosition = 0; - if (cursorPosition != sBoxCursorPosition) - retVal = 1; + if (cursorPosition != sCursorPosition) + retVal = INPUT_MOVE_CURSOR; break; } - else if (JOY_REPEAT(DPAD_LEFT) && sBoxCursorPosition != 0) + else if (JOY_REPEAT(DPAD_LEFT) && sCursorPosition != 0) { - retVal = 1; - sPSSData->field_CD6 = sBoxCursorPosition; + retVal = INPUT_MOVE_CURSOR; + sStorage->cursorPrevHorizPos = sCursorPosition; cursorPosition = 0; break; } else if (JOY_REPEAT(DPAD_RIGHT)) { - if (sBoxCursorPosition == 0) + if (sCursorPosition == 0) { - retVal = 1; - cursorPosition = sPSSData->field_CD6; + retVal = INPUT_MOVE_CURSOR; + cursorPosition = sStorage->cursorPrevHorizPos; } else { - retVal = 6; + retVal = INPUT_HIDE_PARTY; cursorArea = CURSOR_AREA_IN_BOX; cursorPosition = 0; } @@ -7278,66 +7380,66 @@ static u8 HandleInput_InParty(void) if (JOY_NEW(A_BUTTON)) { - if (sBoxCursorPosition == PARTY_SIZE) + if (sCursorPosition == PARTY_SIZE) { - if (sPSSData->boxOption == BOX_OPTION_DEPOSIT) - return 4; + if (sStorage->boxOption == OPTION_DEPOSIT) + return INPUT_CLOSE_BOX; gotoBox = TRUE; } - else if (sub_80CFA5C()) + else if (SetSelectionMenuTexts()) { - if (!sCanOnlyMove) - return 8; + if (!sAutoActionOn) + return INPUT_IN_MENU; - switch (sub_80CFF98(0)) + switch (GetMenuItemTextId(0)) { - case 1: - return 11; - case 2: - return 12; - case 3: - return 13; - case 4: - return 14; - case 5: - return 15; - case 12: - return 16; - case 13: - return 17; - case 15: - return 18; + case MENU_STORE: + return INPUT_DEPOSIT; + case MENU_WITHDRAW: + return INPUT_WITHDRAW; + case MENU_MOVE: + return INPUT_MOVE_MON; + case MENU_SHIFT: + return INPUT_SHIFT_MON; + case MENU_PLACE: + return INPUT_PLACE_MON; + case MENU_TAKE: + return INPUT_TAKE_ITEM; + case MENU_GIVE: + return INPUT_GIVE_ITEM; + case MENU_SWITCH: + return INPUT_SWITCH_ITEMS; } } } if (JOY_NEW(B_BUTTON)) { - if (sPSSData->boxOption == BOX_OPTION_DEPOSIT) - return 19; + if (sStorage->boxOption == OPTION_DEPOSIT) + return INPUT_PRESSED_B; gotoBox = TRUE; } if (gotoBox) { - retVal = 6; + retVal = INPUT_HIDE_PARTY; cursorArea = CURSOR_AREA_IN_BOX; cursorPosition = 0; } else if (JOY_NEW(SELECT_BUTTON)) { - sub_80CFDC4(); - return 0; + ToggleCursorAutoAction(); + return INPUT_NONE; } } while (0); - if (retVal != 0) + if (retVal != INPUT_NONE) { - if (retVal != 6) - sub_80CD894(cursorArea, cursorPosition); + if (retVal != INPUT_HIDE_PARTY) + SetCursorPosition(cursorArea, cursorPosition); } return retVal; @@ -7351,64 +7453,64 @@ static u8 HandleInput_OnBox(void) do { - sPSSData->field_CD3 = 0; - sPSSData->field_CD2 = 0; - sPSSData->field_CD7 = 0; + sStorage->cursorHorizontalWrap = 0; + sStorage->cursorVerticalWrap = 0; + sStorage->cursorFlipTimer = 0; if (JOY_REPEAT(DPAD_UP)) { - retVal = 1; + retVal = INPUT_MOVE_CURSOR; cursorArea = CURSOR_AREA_BUTTONS; cursorPosition = 0; - sPSSData->field_CD7 = 1; + sStorage->cursorFlipTimer = 1; break; } else if (JOY_REPEAT(DPAD_DOWN)) { - retVal = 1; + retVal = INPUT_MOVE_CURSOR; cursorArea = CURSOR_AREA_IN_BOX; cursorPosition = 2; break; } if (JOY_HELD(DPAD_LEFT)) - return 10; + return INPUT_SCROLL_LEFT; if (JOY_HELD(DPAD_RIGHT)) - return 9; + return INPUT_SCROLL_RIGHT; if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) { if (JOY_HELD(L_BUTTON)) - return 10; + return INPUT_SCROLL_LEFT; if (JOY_HELD(R_BUTTON)) - return 9; + return INPUT_SCROLL_RIGHT; } if (JOY_NEW(A_BUTTON)) { - sub_80CD1A8(FALSE); - AddBoxMenu(); - return 7; + AnimateBoxScrollArrows(FALSE); + AddBoxOptionsMenu(); + return INPUT_BOX_OPTIONS; } if (JOY_NEW(B_BUTTON)) - return 19; + return INPUT_PRESSED_B; if (JOY_NEW(SELECT_BUTTON)) { - sub_80CFDC4(); - return 0; + ToggleCursorAutoAction(); + return INPUT_NONE; } - retVal = 0; + retVal = INPUT_NONE; } while (0); - if (retVal) + if (retVal != INPUT_NONE) { - if (cursorArea != CURSOR_AREA_BOX) - sub_80CD1A8(FALSE); - sub_80CD894(cursorArea, cursorPosition); + if (cursorArea != CURSOR_AREA_BOX_TITLE) + AnimateBoxScrollArrows(FALSE); + SetCursorPosition(cursorArea, cursorPosition); } return retVal; @@ -7422,65 +7524,67 @@ static u8 HandleInput_OnButtons(void) do { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - sPSSData->field_CD3 = 0; - sPSSData->field_CD2 = 0; - sPSSData->field_CD7 = 0; + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + sStorage->cursorHorizontalWrap = 0; + sStorage->cursorVerticalWrap = 0; + sStorage->cursorFlipTimer = 0; if (JOY_REPEAT(DPAD_UP)) { - retVal = 1; + retVal = INPUT_MOVE_CURSOR; cursorArea = CURSOR_AREA_IN_BOX; - sPSSData->field_CD2 = -1; - if (sBoxCursorPosition == 0) + sStorage->cursorVerticalWrap = -1; + if (sCursorPosition == 0) cursorPosition = IN_BOX_COUNT - 1 - 5; else cursorPosition = IN_BOX_COUNT - 1; - sPSSData->field_CD7 = 1; + sStorage->cursorFlipTimer = 1; break; } if (JOY_REPEAT(DPAD_DOWN | START_BUTTON)) { - retVal = 1; - cursorArea = CURSOR_AREA_BOX; + retVal = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_BOX_TITLE; cursorPosition = 0; - sPSSData->field_CD7 = 1; + sStorage->cursorFlipTimer = 1; break; } if (JOY_REPEAT(DPAD_LEFT)) { - retVal = 1; + retVal = INPUT_MOVE_CURSOR; if (--cursorPosition < 0) cursorPosition = 1; break; } else if (JOY_REPEAT(DPAD_RIGHT)) { - retVal = 1; + retVal = INPUT_MOVE_CURSOR; if (++cursorPosition > 1) cursorPosition = 0; break; } + // Button was pressed, determine which if (JOY_NEW(A_BUTTON)) - return (cursorPosition == 0) ? 5 : 4; + return (cursorPosition == 0) ? INPUT_SHOW_PARTY : INPUT_CLOSE_BOX; + if (JOY_NEW(B_BUTTON)) - return 19; + return INPUT_PRESSED_B; if (JOY_NEW(SELECT_BUTTON)) { - sub_80CFDC4(); - return 0; + ToggleCursorAutoAction(); + return INPUT_NONE; } - retVal = 0; + retVal = INPUT_NONE; } while (0); - if (retVal != 0) - sub_80CD894(cursorArea, cursorPosition); + if (retVal != INPUT_NONE) + SetCursorPosition(cursorArea, cursorPosition); return retVal; } @@ -7491,255 +7595,262 @@ static u8 HandleInput(void) { u8 (*func)(void); s8 area; - } - static const inputFuncs[] = + } static const inputFuncs[] = { - {HandleInput_InBox, CURSOR_AREA_IN_BOX}, - {HandleInput_InParty, CURSOR_AREA_IN_PARTY}, - {HandleInput_OnBox, CURSOR_AREA_BOX}, + {HandleInput_InBox, CURSOR_AREA_IN_BOX}, + {HandleInput_InParty, CURSOR_AREA_IN_PARTY}, + {HandleInput_OnBox, CURSOR_AREA_BOX_TITLE}, {HandleInput_OnButtons, CURSOR_AREA_BUTTONS}, - {NULL, 0}, + {}, }; u16 i = 0; while (inputFuncs[i].func != NULL) { - if (inputFuncs[i].area == sBoxCursorArea) + if (inputFuncs[i].area == sCursorArea) return inputFuncs[i].func(); i++; } - return 0; + return INPUT_NONE; } -static void AddBoxMenu(void) +static void AddBoxOptionsMenu(void) { InitMenu(); - SetMenuText(9); - SetMenuText(10); - SetMenuText(11); - SetMenuText(0); + SetMenuText(MENU_JUMP); + SetMenuText(MENU_WALLPAPER); + SetMenuText(MENU_NAME); + SetMenuText(MENU_CANCEL); } -static u8 sub_80CFA5C(void) +static u8 SetSelectionMenuTexts(void) { InitMenu(); - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) - return sub_80CFA84(); + if (sStorage->boxOption != OPTION_MOVE_ITEMS) + return SetMenuTexts_Mon(); else - return sub_80CFB44(); + return SetMenuTexts_Item(); } -static bool8 sub_80CFA84(void) +static bool8 SetMenuTexts_Mon(void) { - u16 var0 = sub_80CD504(); + u16 species = GetSpeciesAtCursorPosition(); - switch (sPSSData->boxOption) + switch (sStorage->boxOption) { - case BOX_OPTION_DEPOSIT: - if (var0) - SetMenuText(1); + case OPTION_DEPOSIT: + if (species != SPECIES_NONE) + SetMenuText(MENU_STORE); else return FALSE; break; - case BOX_OPTION_WITHDRAW: - if (var0) - SetMenuText(2); + case OPTION_WITHDRAW: + if (species != SPECIES_NONE) + SetMenuText(MENU_WITHDRAW); else return FALSE; break; - case BOX_OPTION_MOVE_MONS: + case OPTION_MOVE_MONS: if (sIsMonBeingMoved) { - if (var0) - SetMenuText(4); + if (species != SPECIES_NONE) + SetMenuText(MENU_SHIFT); else - SetMenuText(5); + SetMenuText(MENU_PLACE); } else { - if (var0) - SetMenuText(3); + if (species != SPECIES_NONE) + SetMenuText(MENU_MOVE); else return FALSE; } break; - case BOX_OPTION_MOVE_ITEMS: + case OPTION_MOVE_ITEMS: default: return FALSE; } - SetMenuText(6); - if (sPSSData->boxOption == BOX_OPTION_MOVE_MONS) + SetMenuText(MENU_SUMMARY); + if (sStorage->boxOption == OPTION_MOVE_MONS) { - if (!sBoxCursorArea) - SetMenuText(2); + if (sCursorArea == CURSOR_AREA_IN_BOX) + SetMenuText(MENU_WITHDRAW); else - SetMenuText(1); + SetMenuText(MENU_STORE); } - SetMenuText(8); - SetMenuText(7); - SetMenuText(0); + SetMenuText(MENU_MARK); + SetMenuText(MENU_RELEASE); + SetMenuText(MENU_CANCEL); return TRUE; } -static bool8 sub_80CFB44(void) +static bool8 SetMenuTexts_Item(void) { - if (sPSSData->cursorMonSpecies == SPECIES_EGG) + if (sStorage->displayMonSpecies == SPECIES_EGG) return FALSE; - if (!IsActiveItemMoving()) + if (!IsMovingItem()) { - if (sPSSData->cursorMonItem == 0) + if (sStorage->displayMonItemId == ITEM_NONE) { - if (sPSSData->cursorMonSpecies == SPECIES_NONE) + if (sStorage->displayMonSpecies == SPECIES_NONE) return FALSE; - SetMenuText(14); + SetMenuText(MENU_GIVE_2); } else { - if (!ItemIsMail(sPSSData->cursorMonItem)) + if (!ItemIsMail(sStorage->displayMonItemId)) { - SetMenuText(12); - SetMenuText(16); + SetMenuText(MENU_TAKE); + SetMenuText(MENU_BAG); } - SetMenuText(17); + SetMenuText(MENU_INFO); } } else { - if (sPSSData->cursorMonItem == 0) + if (sStorage->displayMonItemId == ITEM_NONE) { - if (sPSSData->cursorMonSpecies == SPECIES_NONE) + if (sStorage->displayMonSpecies == SPECIES_NONE) return FALSE; - SetMenuText(13); + SetMenuText(MENU_GIVE); } else { - if (ItemIsMail(sPSSData->cursorMonItem) == TRUE) + if (ItemIsMail(sStorage->displayMonItemId) == TRUE) return FALSE; - SetMenuText(15); + SetMenuText(MENU_SWITCH); } } - SetMenuText(0); + SetMenuText(MENU_CANCEL); return TRUE; } -static void sub_80CFBF4(struct Sprite *sprite) + +//------------------------------------------------------------------------------ +// SECTION: Cursor +// +// The functions below handle a few of the generic cursor features. +//------------------------------------------------------------------------------ + + +static void SpriteCB_CursorShadow(struct Sprite *sprite) { - sprite->pos1.x = sPSSData->field_CB4->pos1.x; - sprite->pos1.y = sPSSData->field_CB4->pos1.y + 20; + sprite->x = sStorage->cursorSprite->x; + sprite->y = sStorage->cursorSprite->y + 20; } -static void sub_80CFC14(void) +static void CreateCursorSprites(void) { u16 x, y; u8 spriteId; u8 priority, subpriority; struct SpriteSheet spriteSheets[] = { - {gHandCursorTiles, 0x800, 0}, - {gHandCursorShadowTiles, 0x80, 1}, + {sHandCursor_Gfx, 0x800, GFXTAG_CURSOR}, + {sHandCursorShadow_Gfx, 0x80, GFXTAG_CURSOR_SHADOW}, {} }; struct SpritePalette spritePalettes[] = { - {gHandCursorPalette, TAG_PAL_DAC7}, + {sHandCursor_Pal, PALTAG_MISC_1}, {} }; - static const struct OamData sOamData_857BA0C = + static const struct OamData sOamData_Cursor = { .shape = SPRITE_SHAPE(32x32), .size = SPRITE_SIZE(32x32), .priority = 1, }; - static const struct OamData sOamData_857BA14 = + static const struct OamData sOamData_CursorShadow = { .shape = SPRITE_SHAPE(16x16), .size = SPRITE_SIZE(16x16), .priority = 1, }; - static const union AnimCmd sSpriteAnim_857BA1C[] = + static const union AnimCmd sAnim_Cursor_Bouncing[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(16, 30), ANIMCMD_JUMP(0) }; - static const union AnimCmd sSpriteAnim_857BA28[] = + static const union AnimCmd sAnim_Cursor_Still[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; - static const union AnimCmd sSpriteAnim_857BA30[] = + static const union AnimCmd sAnim_Cursor_Open[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END }; - static const union AnimCmd sSpriteAnim_857BA38[] = + static const union AnimCmd sAnim_Cursor_Fist[] = { ANIMCMD_FRAME(48, 5), ANIMCMD_END }; - static const union AnimCmd *const sSpriteAnimTable_857BA40[] = + static const union AnimCmd *const sAnims_Cursor[] = { - sSpriteAnim_857BA1C, - sSpriteAnim_857BA28, - sSpriteAnim_857BA30, - sSpriteAnim_857BA38 + [CURSOR_ANIM_BOUNCE] = sAnim_Cursor_Bouncing, + [CURSOR_ANIM_STILL] = sAnim_Cursor_Still, + [CURSOR_ANIM_OPEN] = sAnim_Cursor_Open, + [CURSOR_ANIM_FIST] = sAnim_Cursor_Fist }; - static const struct SpriteTemplate gSpriteTemplate_857BA50 = + static const struct SpriteTemplate sSpriteTemplate_Cursor = { - .tileTag = TAG_TILE_0, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &sOamData_857BA0C, - .anims = sSpriteAnimTable_857BA40, + .tileTag = GFXTAG_CURSOR, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_Cursor, + .anims = sAnims_Cursor, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; - static const struct SpriteTemplate gSpriteTemplate_857BA68 = + static const struct SpriteTemplate sSpriteTemplate_CursorShadow = { - .tileTag = TAG_TILE_1, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &sOamData_857BA14, + .tileTag = GFXTAG_CURSOR_SHADOW, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_CursorShadow, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80CFBF4, + .callback = SpriteCB_CursorShadow, }; LoadSpriteSheets(spriteSheets); LoadSpritePalettes(spritePalettes); - sPSSData->field_CD8[0] = IndexOfSpritePaletteTag(TAG_PAL_WAVEFORM); - sPSSData->field_CD8[1] = IndexOfSpritePaletteTag(TAG_PAL_DAC7); + sStorage->cursorPalNums[0] = IndexOfSpritePaletteTag(PALTAG_MISC_2); // White hand, normal + sStorage->cursorPalNums[1] = IndexOfSpritePaletteTag(PALTAG_MISC_1); // Yellow hand, when auto-action is on - sub_80CD444(sBoxCursorArea, sBoxCursorPosition, &x, &y); - spriteId = CreateSprite(&gSpriteTemplate_857BA50, x, y, 6); + GetCursorCoordsByPos(sCursorArea, sCursorPosition, &x, &y); + spriteId = CreateSprite(&sSpriteTemplate_Cursor, x, y, 6); if (spriteId != MAX_SPRITES) { - sPSSData->field_CB4 = &gSprites[spriteId]; - sPSSData->field_CB4->oam.paletteNum = sPSSData->field_CD8[sCanOnlyMove]; - sPSSData->field_CB4->oam.priority = 1; + sStorage->cursorSprite = &gSprites[spriteId]; + sStorage->cursorSprite->oam.paletteNum = sStorage->cursorPalNums[sAutoActionOn]; + sStorage->cursorSprite->oam.priority = 1; if (sIsMonBeingMoved) - StartSpriteAnim(sPSSData->field_CB4, 3); + StartSpriteAnim(sStorage->cursorSprite, CURSOR_ANIM_FIST); } else { - sPSSData->field_CB4 = NULL; + sStorage->cursorSprite = NULL; } - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) + if (sCursorArea == CURSOR_AREA_IN_PARTY) { subpriority = 13; priority = 1; @@ -7750,184 +7861,197 @@ static void sub_80CFC14(void) priority = 2; } - spriteId = CreateSprite(&gSpriteTemplate_857BA68, 0, 0, subpriority); + spriteId = CreateSprite(&sSpriteTemplate_CursorShadow, 0, 0, subpriority); if (spriteId != MAX_SPRITES) { - sPSSData->field_CB8 = &gSprites[spriteId]; - sPSSData->field_CB8->oam.priority = priority; - if (sBoxCursorArea) - sPSSData->field_CB8->invisible = 1; + sStorage->cursorShadowSprite = &gSprites[spriteId]; + sStorage->cursorShadowSprite->oam.priority = priority; + if (sCursorArea) + sStorage->cursorShadowSprite->invisible = TRUE; } else { - sPSSData->field_CB8 = NULL; + sStorage->cursorShadowSprite = NULL; } } -static void sub_80CFDC4(void) +static void ToggleCursorAutoAction(void) { - sCanOnlyMove = !sCanOnlyMove; - sPSSData->field_CB4->oam.paletteNum = sPSSData->field_CD8[sCanOnlyMove]; + sAutoActionOn = !sAutoActionOn; + sStorage->cursorSprite->oam.paletteNum = sStorage->cursorPalNums[sAutoActionOn]; } -static u8 GetBoxCursorPosition(void) +static u8 GetCursorPosition(void) { - return sBoxCursorPosition; + return sCursorPosition; } -static void sub_80CFE14(u8 *arg0, u8 *arg1) +static void GetCursorBoxColumnAndRow(u8 *column, u8 *row) { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) + if (sCursorArea == CURSOR_AREA_IN_BOX) { - *arg0 = sBoxCursorPosition % IN_BOX_ROWS; - *arg1 = sBoxCursorPosition / IN_BOX_ROWS; + *column = sCursorPosition % IN_BOX_COLUMNS; + *row = sCursorPosition / IN_BOX_COLUMNS; } else { - *arg0 = 0; - *arg1 = 0; + *column = 0; + *row = 0; } } -static void sub_80CFE54(u8 animNum) +static void StartCursorAnim(u8 animNum) { - StartSpriteAnim(sPSSData->field_CB4, animNum); + StartSpriteAnim(sStorage->cursorSprite, animNum); } -static u8 sub_80CFE78(void) +// Unused +static u8 GetMovingMonOriginalBoxId(void) { return sMovingMonOrigBoxId; } -static void sub_80CFE84(void) +static void SetCursorPriorityTo1(void) { - sPSSData->field_CB4->oam.priority = 1; + sStorage->cursorSprite->oam.priority = 1; } -static void sub_80CFEA8(void) +static void TryHideItemAtCursor(void) { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_80D0E50(CURSOR_AREA_IN_BOX, sBoxCursorPosition); + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryHideItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); } -static void sub_80CFECC(void) +static void TryShowItemAtCursor(void) { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_80D0D8C(CURSOR_AREA_IN_BOX, sBoxCursorPosition); + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryLoadItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); } + +//------------------------------------------------------------------------------ +// SECTION: Menu +// +// The functions below handle the generic options menu that comes up whenever +// something in the PC is selected. +//------------------------------------------------------------------------------ + + static void InitMenu(void) { - sPSSData->menuItemsCount = 0; - sPSSData->menuWidth = 0; - sPSSData->menuWindow.bg = 0; - sPSSData->menuWindow.paletteNum = 15; - sPSSData->menuWindow.baseBlock = 92; + sStorage->menuItemsCount = 0; + sStorage->menuWidth = 0; + sStorage->menuWindow.bg = 0; + sStorage->menuWindow.paletteNum = 15; + sStorage->menuWindow.baseBlock = 92; } -static const u8 *const gUnknown_0857BA80[] = +static const u8 *const sMenuTexts[] = { - gPCText_Cancel, - gPCText_Store, - gPCText_Withdraw, - gPCText_Move, - gPCText_Shift, - gPCText_Place, - gPCText_Summary, - gPCText_Release, - gPCText_Mark, - gPCText_Jump, - gPCText_Wallpaper, - gPCText_Name, - gPCText_Take, - gPCText_Give, - gPCText_Give, - gPCText_Switch, - gPCText_Bag, - gPCText_Info, - gPCText_Scenery1, - gPCText_Scenery2, - gPCText_Scenery3, - gPCText_Etcetera, - gPCText_Friends, - gPCText_Forest, - gPCText_City, - gPCText_Desert, - gPCText_Savanna, - gPCText_Crag, - gPCText_Volcano, - gPCText_Snow, - gPCText_Cave, - gPCText_Beach, - gPCText_Seafloor, - gPCText_River, - gPCText_Sky, - gPCText_PolkaDot, - gPCText_Pokecenter, - gPCText_Machine, - gPCText_Simple, + [MENU_CANCEL] = gPCText_Cancel, + [MENU_STORE] = gPCText_Store, + [MENU_WITHDRAW] = gPCText_Withdraw, + [MENU_MOVE] = gPCText_Move, + [MENU_SHIFT] = gPCText_Shift, + [MENU_PLACE] = gPCText_Place, + [MENU_SUMMARY] = gPCText_Summary, + [MENU_RELEASE] = gPCText_Release, + [MENU_MARK] = gPCText_Mark, + [MENU_JUMP] = gPCText_Jump, + [MENU_WALLPAPER] = gPCText_Wallpaper, + [MENU_NAME] = gPCText_Name, + [MENU_TAKE] = gPCText_Take, + [MENU_GIVE] = gPCText_Give, + [MENU_GIVE_2] = gPCText_Give, + [MENU_SWITCH] = gPCText_Switch, + [MENU_BAG] = gPCText_Bag, + [MENU_INFO] = gPCText_Info, + [MENU_SCENERY_1] = gPCText_Scenery1, + [MENU_SCENERY_2] = gPCText_Scenery2, + [MENU_SCENERY_3] = gPCText_Scenery3, + [MENU_ETCETERA] = gPCText_Etcetera, + [MENU_FRIENDS] = gPCText_Friends, + [MENU_FOREST] = gPCText_Forest, + [MENU_CITY] = gPCText_City, + [MENU_DESERT] = gPCText_Desert, + [MENU_SAVANNA] = gPCText_Savanna, + [MENU_CRAG] = gPCText_Crag, + [MENU_VOLCANO] = gPCText_Volcano, + [MENU_SNOW] = gPCText_Snow, + [MENU_CAVE] = gPCText_Cave, + [MENU_BEACH] = gPCText_Beach, + [MENU_SEAFLOOR] = gPCText_Seafloor, + [MENU_RIVER] = gPCText_River, + [MENU_SKY] = gPCText_Sky, + [MENU_POLKADOT] = gPCText_PolkaDot, + [MENU_POKECENTER] = gPCText_Pokecenter, + [MENU_MACHINE] = gPCText_Machine, + [MENU_SIMPLE] = gPCText_Simple, }; static void SetMenuText(u8 textId) { - if (sPSSData->menuItemsCount < 7) + if (sStorage->menuItemsCount < ARRAY_COUNT(sStorage->menuItems)) { u8 len; - struct StorageMenu *menu = &sPSSData->menuItems[sPSSData->menuItemsCount]; + struct StorageMenu *menu = &sStorage->menuItems[sStorage->menuItemsCount]; - menu->text = gUnknown_0857BA80[textId]; + menu->text = sMenuTexts[textId]; menu->textId = textId; len = StringLength(menu->text); - if (len > sPSSData->menuWidth) - sPSSData->menuWidth = len; + if (len > sStorage->menuWidth) + sStorage->menuWidth = len; - sPSSData->menuItemsCount++; + sStorage->menuItemsCount++; } } -static s8 sub_80CFF98(u8 arg0) +static s8 GetMenuItemTextId(u8 menuIdx) { - if (arg0 >= sPSSData->menuItemsCount) + if (menuIdx >= sStorage->menuItemsCount) return -1; else - return sPSSData->menuItems[arg0].textId; + return sStorage->menuItems[menuIdx].textId; } static void AddMenu(void) { - sPSSData->menuWindow.width = sPSSData->menuWidth + 2; - sPSSData->menuWindow.height = 2 * sPSSData->menuItemsCount; - sPSSData->menuWindow.tilemapLeft = 29 - sPSSData->menuWindow.width; - sPSSData->menuWindow.tilemapTop = 15 - sPSSData->menuWindow.height; - sPSSData->field_CB0 = AddWindow(&sPSSData->menuWindow); - ClearWindowTilemap(sPSSData->field_CB0); - DrawStdFrameWithCustomTileAndPalette(sPSSData->field_CB0, FALSE, 11, 14); - PrintMenuTable(sPSSData->field_CB0, sPSSData->menuItemsCount, (void*)sPSSData->menuItems); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sPSSData->field_CB0, sPSSData->menuItemsCount, 0); + sStorage->menuWindow.width = sStorage->menuWidth + 2; + sStorage->menuWindow.height = 2 * sStorage->menuItemsCount; + sStorage->menuWindow.tilemapLeft = 29 - sStorage->menuWindow.width; + sStorage->menuWindow.tilemapTop = 15 - sStorage->menuWindow.height; + sStorage->menuWindowId = AddWindow(&sStorage->menuWindow); + ClearWindowTilemap(sStorage->menuWindowId); + DrawStdFrameWithCustomTileAndPalette(sStorage->menuWindowId, FALSE, 11, 14); + PrintMenuTable(sStorage->menuWindowId, sStorage->menuItemsCount, (void*)sStorage->menuItems); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sStorage->menuWindowId, sStorage->menuItemsCount, 0); ScheduleBgCopyTilemapToVram(0); - sPSSData->field_CAE = 0; + sStorage->menuUnusedField = 0; } -static bool8 sub_80D00A8(void) +// Called after AddMenu to determine whether or not the handler callback should +// wait to move on to the next state. Evidently there was no need to wait, and +// now it always returns FALSE +static bool8 IsMenuLoading(void) { return FALSE; } -static s16 sub_80D00AC(void) +static s16 HandleMenuInput(void) { - s32 textId = -2; + s32 input = MENU_NOTHING_CHOSEN; do { if (JOY_NEW(A_BUTTON)) { - textId = Menu_GetCursorPos(); + input = Menu_GetCursorPos(); break; } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - textId = -1; + input = MENU_B_PRESSED; } if (JOY_NEW(DPAD_UP)) @@ -7942,26 +8066,32 @@ static s16 sub_80D00AC(void) } } while (0); - if (textId != -2) - sub_80D013C(); + if (input != MENU_NOTHING_CHOSEN) + RemoveMenu(); - if (textId >= 0) - textId = sPSSData->menuItems[textId].textId; + if (input >= 0) + input = sStorage->menuItems[input].textId; - return textId; + return input; } -static void sub_80D013C(void) +static void RemoveMenu(void) { - ClearStdWindowAndFrameToTransparent(sPSSData->field_CB0, TRUE); - RemoveWindow(sPSSData->field_CB0); + ClearStdWindowAndFrameToTransparent(sStorage->menuWindowId, TRUE); + RemoveWindow(sStorage->menuWindowId); } -// The functions below handle moving and grabbing multiple mons at once. -// The icons are converted to background 0 which coordinates are changed while moving mons. -// There is also a bit of math involved in determining how many column/rows of mons to grab/move. -static const struct WindowTemplate gUnknown_0857BB1C = +//------------------------------------------------------------------------------ +// SECTION: MultiMove +// +// The functions below handle moving and selecting multiple Pokémon at once. +// The icon sprites are moved to bg 0, and this bg is manipulated to move +// them as a group. +//------------------------------------------------------------------------------ + + +static const struct WindowTemplate sWindowTemplate_MultiMove = { .bg = 0, .tilemapLeft = 10, @@ -7974,34 +8104,33 @@ static const struct WindowTemplate gUnknown_0857BB1C = EWRAM_DATA static struct { - u8 field_0; + u8 funcId; u8 state; - u8 fromRow; u8 fromColumn; - u8 toRow; + u8 fromRow; u8 toColumn; - u8 field_6; - u8 field_7; - u8 minRow; + u8 toRow; + u8 cursorColumn; + u8 cursorRow; u8 minColumn; + u8 minRow; + u8 columnsTotal; u8 rowsTotal; - u8 columsTotal; u16 bgX; u16 bgY; - u16 field_10; + u16 bgMoveSteps; struct BoxPokemon boxMons[IN_BOX_COUNT]; -} -*sMoveMonsPtr = NULL; +} *sMultiMove = NULL; -static bool8 sub_80D0164(void) +static bool8 MultiMove_Init(void) { - sMoveMonsPtr = Alloc(sizeof(*sMoveMonsPtr)); - if (sMoveMonsPtr != NULL) + sMultiMove = Alloc(sizeof(*sMultiMove)); + if (sMultiMove != NULL) { - sPSSData->field_2200 = AddWindow8Bit(&gUnknown_0857BB1C); - if (sPSSData->field_2200 != 0xFF) + sStorage->multiMoveWindowId = AddWindow8Bit(&sWindowTemplate_MultiMove); + if (sStorage->multiMoveWindowId != WINDOW_NONE) { - FillWindowPixelBuffer(sPSSData->field_2200, PIXEL_FILL(0)); + FillWindowPixelBuffer(sStorage->multiMoveWindowId, PIXEL_FILL(0)); return TRUE; } } @@ -8009,64 +8138,64 @@ static bool8 sub_80D0164(void) return FALSE; } -static void sub_80D01B8(void) +static void MultiMove_Free(void) { - if (sMoveMonsPtr != NULL) - Free(sMoveMonsPtr); + if (sMultiMove != NULL) + Free(sMultiMove); } -static void sub_80D01D0(u8 arg0) +static void MultiMove_SetFunction(u8 id) { - sMoveMonsPtr->field_0 = arg0; - sMoveMonsPtr->state = 0; + sMultiMove->funcId = id; + sMultiMove->state = 0; } -static bool8 sub_80D01E4(void) +// Returns TRUE if the called function has more to do, FALSE otherwise +static bool8 MultiMove_RunFunction(void) { - switch (sMoveMonsPtr->field_0) + switch (sMultiMove->funcId) { - case 0: - return sub_80D024C(); - case 1: - return sub_80D0344(); - case 2: - return sub_80D03B0(); - case 3: - return sub_80D0420(); - case 4: - return sub_80D04A0(); - case 5: - return sub_80D04C8(); + case MULTIMOVE_START: + return MultiMove_Start(); + case MULTIMOVE_CANCEL: + return MultiMove_Cancel(); + case MULTIMOVE_CHANGE_SELECTION: + return MultiMove_ChangeSelection(); + case MULTIMOVE_GRAB_SELECTION: + return MultiMove_GrabSelection(); + case MULTIMOVE_MOVE_MONS: + return MultiMove_MoveMons(); + case MULTIMOVE_PLACE_MONS: + return MultiMove_PlaceMons(); } - return FALSE; } -static bool8 sub_80D024C(void) +static bool8 MultiMove_Start(void) { - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: HideBg(0); sub_80D304C(0x80); - sMoveMonsPtr->state++; + sMultiMove->state++; break; case 1: - sub_80CFE14(&sMoveMonsPtr->fromRow, &sMoveMonsPtr->fromColumn); - sMoveMonsPtr->toRow = sMoveMonsPtr->fromRow; - sMoveMonsPtr->toColumn = sMoveMonsPtr->fromColumn; + GetCursorBoxColumnAndRow(&sMultiMove->fromColumn, &sMultiMove->fromRow); + sMultiMove->toColumn = sMultiMove->fromColumn; + sMultiMove->toRow = sMultiMove->fromRow; ChangeBgX(0, -1024, 0); ChangeBgY(0, -1024, 0); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); - FillWindowPixelBuffer8Bit(sPSSData->field_2200, PIXEL_FILL(0)); - sub_80D07B0(sMoveMonsPtr->fromRow, sMoveMonsPtr->fromColumn); + FillWindowPixelBuffer8Bit(sStorage->multiMoveWindowId, PIXEL_FILL(0)); + MultiMove_SetIconToBg(sMultiMove->fromColumn, sMultiMove->fromRow); SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1); - PutWindowTilemap(sPSSData->field_2200); - CopyWindowToVram8Bit(sPSSData->field_2200, 3); + PutWindowTilemap(sStorage->multiMoveWindowId); + CopyWindowToVram8Bit(sStorage->multiMoveWindowId, 3); BlendPalettes(0x3F00, 8, RGB_WHITE); - sub_80CFE54(2); + StartCursorAnim(CURSOR_ANIM_OPEN); SetGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); - sMoveMonsPtr->state++; + sMultiMove->state++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) @@ -8080,23 +8209,23 @@ static bool8 sub_80D024C(void) return TRUE; } -static bool8 sub_80D0344(void) +static bool8 MultiMove_Cancel(void) { - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: HideBg(0); - sMoveMonsPtr->state++; + sMultiMove->state++; break; case 1: - sub_80D0B5C(); - sub_80CFE54(0); - sMoveMonsPtr->state++; + MultiMove_ResetBg(); + StartCursorAnim(CURSOR_ANIM_BOUNCE); + sMultiMove->state++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_80CFE84(); + SetCursorPriorityTo1(); LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); ShowBg(0); return FALSE; @@ -8107,19 +8236,19 @@ static bool8 sub_80D0344(void) return TRUE; } -static bool8 sub_80D03B0(void) +static bool8 MultiMove_ChangeSelection(void) { - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: - if (!sub_80CD554()) + if (!UpdateCursorPos()) { - sub_80CFE14(&sMoveMonsPtr->field_6, &sMoveMonsPtr->field_7); - sub_80D062C(); - sMoveMonsPtr->toRow = sMoveMonsPtr->field_6; - sMoveMonsPtr->toColumn = sMoveMonsPtr->field_7; - CopyWindowToVram8Bit(sPSSData->field_2200, 2); - sMoveMonsPtr->state++; + GetCursorBoxColumnAndRow(&sMultiMove->cursorColumn, &sMultiMove->cursorRow); + MultiMove_UpdateSelectedIcons(); + sMultiMove->toColumn = sMultiMove->cursorColumn; + sMultiMove->toRow = sMultiMove->cursorRow; + CopyWindowToVram8Bit(sStorage->multiMoveWindowId, 2); + sMultiMove->state++; } break; case 1: @@ -8129,207 +8258,198 @@ static bool8 sub_80D03B0(void) return TRUE; } -static bool8 sub_80D0420(void) +static bool8 MultiMove_GrabSelection(void) { - u8 var1, var2; + bool8 movingBg, movingMon; - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: - sub_80D08CC(); - sub_80D09A4(); - sub_80CDC64(FALSE); - sMoveMonsPtr->state++; + MultiMove_GetMonsFromSelection(); + MultiMove_RemoveMonsFromBox(); + InitMultiMonPlaceChange(FALSE); + sMultiMove->state++; break; case 1: if (!DoMonPlaceChange()) { - sub_80CFE54(3); - sub_80D0884(0, 256, 8); - sub_80CDC64(TRUE); - sMoveMonsPtr->state++; + StartCursorAnim(CURSOR_ANIM_FIST); + MultiMove_InitMove(0, 256, 8); + InitMultiMonPlaceChange(TRUE); + sMultiMove->state++; } break; case 2: - var1 = sub_80D0894(); - var2 = DoMonPlaceChange(); - if (!var1 && !var2) - return FALSE; + movingBg = MultiMove_UpdateMove(); + movingMon = DoMonPlaceChange(); + if (!movingBg && !movingMon) + return FALSE; // Finished break; } return TRUE; } -static bool8 sub_80D04A0(void) +static bool8 MultiMove_MoveMons(void) { - u8 var1 = sub_80CD554(); - u8 var2 = sub_80D0894(); + bool8 movingCursor = UpdateCursorPos(); + bool8 movingBg = MultiMove_UpdateMove(); - if (!var1 && !var2) + if (!movingCursor && !movingBg) return FALSE; else return TRUE; } -static bool8 sub_80D04C8(void) +static bool8 MultiMove_PlaceMons(void) { - switch (sMoveMonsPtr->state) + switch (sMultiMove->state) { case 0: - sub_80D0AAC(); - sub_80D0884(0, -256, 8); - sub_80CDC64(FALSE); - sMoveMonsPtr->state++; + MultiMove_SetPlacedMonData(); + MultiMove_InitMove(0, -256, 8); + InitMultiMonPlaceChange(FALSE); + sMultiMove->state++; break; case 1: - if (!DoMonPlaceChange() && !sub_80D0894()) + if (!DoMonPlaceChange() && !MultiMove_UpdateMove()) { - sub_80D0A1C(); - sub_80CFE54(2); - sub_80CDC64(TRUE); + MultiMove_CreatePlacedMonIcons(); + StartCursorAnim(CURSOR_ANIM_OPEN); + InitMultiMonPlaceChange(TRUE); HideBg(0); - sMoveMonsPtr->state++; + sMultiMove->state++; } break; case 2: if (!DoMonPlaceChange()) { - sub_80CFE54(0); - sub_80D0B5C(); - sMoveMonsPtr->state++; + StartCursorAnim(CURSOR_ANIM_BOUNCE); + MultiMove_ResetBg(); + sMultiMove->state++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); - sub_80CFE84(); + SetCursorPriorityTo1(); ShowBg(0); return FALSE; } break; } - return TRUE; } -static bool8 sub_80D0580(u8 arg0) +// Returns TRUE if the movement was successful, FALSE otherwise +static bool8 MultiMove_TryMoveGroup(u8 dir) { - switch (arg0) + switch (dir) { - case 0: - if (sMoveMonsPtr->minColumn == 0) + case 0: // Up + if (sMultiMove->minRow == 0) return FALSE; - sMoveMonsPtr->minColumn--; - sub_80D0884(0, 1024, 6); + sMultiMove->minRow--; + MultiMove_InitMove(0, 1024, 6); break; - case 1: - if (sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal >= 5) + case 1: // Down + if (sMultiMove->minRow + sMultiMove->rowsTotal >= IN_BOX_ROWS) return FALSE; - sMoveMonsPtr->minColumn++; - sub_80D0884(0, -1024, 6); + sMultiMove->minRow++; + MultiMove_InitMove(0, -1024, 6); break; - case 2: - if (sMoveMonsPtr->minRow == 0) + case 2: // Left + if (sMultiMove->minColumn == 0) return FALSE; - sMoveMonsPtr->minRow--; - sub_80D0884(1024, 0, 6); + sMultiMove->minColumn--; + MultiMove_InitMove(1024, 0, 6); break; - case 3: - if (sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal > 5) + case 3: // Right + if (sMultiMove->minColumn + sMultiMove->columnsTotal >= IN_BOX_COLUMNS) return FALSE; - sMoveMonsPtr->minRow++; - sub_80D0884(-1024, 0, 6); + sMultiMove->minColumn++; + MultiMove_InitMove(-1024, 0, 6); break; } - return TRUE; } -static void sub_80D062C(void) +static void MultiMove_UpdateSelectedIcons(void) { - s16 var = (abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->field_6)) - (abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->toRow)); - s16 var2 = (abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->field_7)) - (abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->toColumn)); + s16 columnChange = (abs(sMultiMove->fromColumn - sMultiMove->cursorColumn)) - (abs(sMultiMove->fromColumn - sMultiMove->toColumn)); + s16 rowChange = (abs(sMultiMove->fromRow - sMultiMove->cursorRow)) - (abs(sMultiMove->fromRow - sMultiMove->toRow)); - if (var > 0) - sub_80D06D0(sMoveMonsPtr->field_6, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); + if (columnChange > 0) + MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); - if (var < 0) + if (columnChange < 0) { - sub_80D0740(sMoveMonsPtr->toRow, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); - sub_80D06D0(sMoveMonsPtr->field_6, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); + MultiMove_DeselectColumn(sMultiMove->toColumn, sMultiMove->fromRow, sMultiMove->toRow); + MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); } - if (var2 > 0) - sub_80D0708(sMoveMonsPtr->field_7, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); + if (rowChange > 0) + MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); - if (var2 < 0) + if (rowChange < 0) { - sub_80D0778(sMoveMonsPtr->toColumn, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); - sub_80D0708(sMoveMonsPtr->field_7, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); + MultiMove_DeselectRow(sMultiMove->toRow, sMultiMove->fromColumn, sMultiMove->toColumn); + MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); } } -static void sub_80D06D0(u8 arg0, u8 arg1, u8 arg2) +static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow) { - u8 var1 = arg1; - - if (arg1 > arg2) + if (minRow > maxRow) { - arg1 = arg2; - arg2 = var1; + u8 temp; + SWAP(minRow, maxRow, temp); } - while (arg1 <= arg2) - sub_80D07B0(arg0, arg1++); + while (minRow <= maxRow) + MultiMove_SetIconToBg(column, minRow++); } -static void sub_80D0708(u8 arg0, u8 arg1, u8 arg2) +static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn) { - u8 var1 = arg1; - - if (arg1 > arg2) + if (minColumn > maxColumn) { - arg1 = arg2; - arg2 = var1; + u8 temp; + SWAP(minColumn, maxColumn, temp); } - while (arg1 <= arg2) - sub_80D07B0(arg1++, arg0); + while (minColumn <= maxColumn) + MultiMove_SetIconToBg(minColumn++, row); } -static void sub_80D0740(u8 arg0, u8 arg1, u8 arg2) +static void MultiMove_DeselectColumn(u8 column, u8 minRow, u8 maxRow) { - u8 var1 = arg1; - - if (arg1 > arg2) + if (minRow > maxRow) { - arg1 = arg2; - arg2 = var1; + u8 temp; + SWAP(minRow, maxRow, temp); } - while (arg1 <= arg2) - sub_80D0834(arg0, arg1++); + while (minRow <= maxRow) + MultiMove_ClearIconFromBg(column, minRow++); } -static void sub_80D0778(u8 arg0, u8 arg1, u8 arg2) +static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn) { - u8 var1 = arg1; - - if (arg1 > arg2) + if (minColumn > maxColumn) { - arg1 = arg2; - arg2 = var1; + u8 temp; + SWAP(minColumn, maxColumn, temp); } - while (arg1 <= arg2) - sub_80D0834(arg1++, arg0); + while (minColumn <= maxColumn) + MultiMove_ClearIconFromBg(minColumn++, row); } -static void sub_80D07B0(u8 arg0, u8 arg1) +static void MultiMove_SetIconToBg(u8 x, u8 y) { - u8 position = arg0 + (6 * arg1); + u8 position = x + (IN_BOX_COLUMNS * y); u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY); @@ -8338,100 +8458,102 @@ static void sub_80D07B0(u8 arg0, u8 arg1) const u8 *iconGfx = GetMonIconPtr(species, personality, 1); u8 index = GetValidMonIconPalIndex(species) + 8; - BlitBitmapRectToWindow4BitTo8Bit(sPSSData->field_2200, + BlitBitmapRectToWindow4BitTo8Bit(sStorage->multiMoveWindowId, iconGfx, 0, 0, 32, 32, - 24 * arg0, - 24 * arg1, + 24 * x, + 24 * y, 32, 32, index); } } -static void sub_80D0834(u8 arg0, u8 arg1) +static void MultiMove_ClearIconFromBg(u8 x, u8 y) { - u8 position = arg0 + (6 * arg1); + u8 position = x + (IN_BOX_COLUMNS * y); u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); if (species != SPECIES_NONE) { - FillWindowPixelRect8Bit(sPSSData->field_2200, + FillWindowPixelRect8Bit(sStorage->multiMoveWindowId, PIXEL_FILL(0), - 24 * arg0, - 24 * arg1, + 24 * x, + 24 * y, 32, 32); } } -static void sub_80D0884(u16 arg0, u16 arg1, u16 arg2) +static void MultiMove_InitMove(u16 x, u16 y, u16 arg2) { - sMoveMonsPtr->bgX = arg0; - sMoveMonsPtr->bgY = arg1; - sMoveMonsPtr->field_10 = arg2; + sMultiMove->bgX = x; + sMultiMove->bgY = y; + sMultiMove->bgMoveSteps = arg2; } -static u8 sub_80D0894(void) +static u8 MultiMove_UpdateMove(void) { - if (sMoveMonsPtr->field_10 != 0) + if (sMultiMove->bgMoveSteps != 0) { - ChangeBgX(0, sMoveMonsPtr->bgX, 1); - ChangeBgY(0, sMoveMonsPtr->bgY, 1); - sMoveMonsPtr->field_10--; + ChangeBgX(0, sMultiMove->bgX, 1); + ChangeBgY(0, sMultiMove->bgY, 1); + sMultiMove->bgMoveSteps--; } - return sMoveMonsPtr->field_10; + return sMultiMove->bgMoveSteps; } -static void sub_80D08CC(void) +// Store the Pokémon that the player is picking up +static void MultiMove_GetMonsFromSelection(void) { - s32 i, j, r8, r9; - s32 rowCount, columnCount; + s32 i, j; + s32 columnCount, rowCount; u8 boxId; u8 monArrayId; - sMoveMonsPtr->minRow = min(sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); - sMoveMonsPtr->minColumn = min(sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); - sMoveMonsPtr->rowsTotal = abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->toRow) + 1; - sMoveMonsPtr->columsTotal = abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->toColumn) + 1; + sMultiMove->minColumn = min(sMultiMove->fromColumn, sMultiMove->toColumn); + sMultiMove->minRow = min(sMultiMove->fromRow, sMultiMove->toRow); + sMultiMove->columnsTotal = abs(sMultiMove->fromColumn - sMultiMove->toColumn) + 1; + sMultiMove->rowsTotal = abs(sMultiMove->fromRow - sMultiMove->toRow) + 1; boxId = StorageGetCurrentBox(); monArrayId = 0; - rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { struct BoxPokemon *boxMon = GetBoxedMonPtr(boxId, boxPosition); // UB: possible null dereference #ifdef UBFIX if (boxMon != NULL) - sMoveMonsPtr->boxMons[monArrayId] = *boxMon; -#else - sMoveMonsPtr->boxMons[monArrayId] = *boxMon; #endif + sMultiMove->boxMons[monArrayId] = *boxMon; + monArrayId++; boxPosition++; } } } -static void sub_80D09A4(void) +// The Pokémon the player has picked up have been stored, now delete +// them from their original positions +static void MultiMove_RemoveMonsFromBox(void) { s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; u8 boxId = StorageGetCurrentBox(); - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { DestroyBoxMonIconAtPosition(boxPosition); ZeroBoxMonAt(boxId, boxPosition); @@ -8440,48 +8562,48 @@ static void sub_80D09A4(void) } } -static void sub_80D0A1C(void) +static void MultiMove_CreatePlacedMonIcons(void) { s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; u8 monArrayId = 0; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) - sub_80CB140(boxPosition); + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) + CreateBoxMonIconAtPos(boxPosition); monArrayId++; boxPosition++; } } } -static void sub_80D0AAC(void) +static void MultiMove_SetPlacedMonData(void) { s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; u8 boxId = StorageGetCurrentBox(); u8 monArrayId = 0; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) - SetBoxMonAt(boxId, boxPosition, &sMoveMonsPtr->boxMons[monArrayId]); + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) + SetBoxMonAt(boxId, boxPosition, &sMultiMove->boxMons[monArrayId]); boxPosition++; monArrayId++; } } } -static void sub_80D0B5C(void) +static void MultiMove_ResetBg(void) { ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -8491,24 +8613,24 @@ static void sub_80D0B5C(void) CopyBgTilemapBufferToVram(0); } -static u8 sub_80D0BA4(void) +static u8 MultiMove_GetOrigin(void) { - return (IN_BOX_ROWS * sMoveMonsPtr->fromColumn) + sMoveMonsPtr->fromRow; + return (IN_BOX_COLUMNS * sMultiMove->fromRow) + sMultiMove->fromColumn; } -static bool8 sub_80D0BC0(void) +static bool8 MultiMove_CanPlaceSelection(void) { s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; u8 monArrayId = 0; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) + for (i = sMultiMove->minRow; i < rowCount; i++) { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES) + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES) && GetCurrentBoxMonData(boxPosition, MON_DATA_SANITY_HAS_SPECIES)) return FALSE; @@ -8516,13 +8638,20 @@ static bool8 sub_80D0BC0(void) boxPosition++; } } - return TRUE; } -static const u32 gUnknown_0857BB24[] = INCBIN_U32("graphics/pokemon_storage/unknown_frame.4bpp"); -static const struct OamData sOamData_857BBA4 = +//------------------------------------------------------------------------------ +// SECTION: Item mode +// +// The functions below handle the Move Items mode +//------------------------------------------------------------------------------ + + +static const u32 sItemInfoFrame_Gfx[] = INCBIN_U32("graphics/pokemon_storage/item_info_frame.4bpp"); + +static const struct OamData sOamData_ItemIcon = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -8539,27 +8668,27 @@ static const struct OamData sOamData_857BBA4 = .affineParam = 0 }; -static const union AffineAnimCmd sSpriteAffineAnim_857BBAC[] = +static const union AffineAnimCmd sAffineAnim_ItemIcon_Small[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_857BBBC[] = +static const union AffineAnimCmd sAffineAnim_ItemIcon_Appear[] = { AFFINEANIMCMD_FRAME(88, 88, 0, 0), AFFINEANIMCMD_FRAME(5, 5, 0, 8), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_857BBD4[] = +static const union AffineAnimCmd sAffineAnim_ItemIcon_Disappear[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_FRAME(-5, -5, 0, 8), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_857BBEC[] = +static const union AffineAnimCmd sAffineAnim_ItemIcon_PickUp[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_FRAME(10, 10, 0, 12), @@ -8567,7 +8696,7 @@ static const union AffineAnimCmd sSpriteAffineAnim_857BBEC[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_857BC0C[] = +static const union AffineAnimCmd sAffineAnim_ItemIcon_PutDown[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(-10, -10, 0, 12), @@ -8575,99 +8704,82 @@ static const union AffineAnimCmd sSpriteAffineAnim_857BC0C[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_857BC2C[] = +static const union AffineAnimCmd sAffineAnim_ItemIcon_PutAway[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(-5, -5, 0, 16), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_857BC44[] = +static const union AffineAnimCmd sAffineAnim_ItemIcon_Large[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_857BC44[] = +static const union AffineAnimCmd *const sAffineAnims_ItemIcon[] = { - sSpriteAffineAnim_857BBAC, - sSpriteAffineAnim_857BBBC, - sSpriteAffineAnim_857BBD4, - sSpriteAffineAnim_857BBEC, - sSpriteAffineAnim_857BC0C, - sSpriteAffineAnim_857BC2C, - sSpriteAffineAnim_857BC44 + [ITEM_ANIM_NONE] = sAffineAnim_ItemIcon_Small, + [ITEM_ANIM_APPEAR] = sAffineAnim_ItemIcon_Appear, + [ITEM_ANIM_DISAPPEAR] = sAffineAnim_ItemIcon_Disappear, + [ITEM_ANIM_PICK_UP] = sAffineAnim_ItemIcon_PickUp, + [ITEM_ANIM_PUT_DOWN] = sAffineAnim_ItemIcon_PutDown, + [ITEM_ANIM_PUT_AWAY] = sAffineAnim_ItemIcon_PutAway, + [ITEM_ANIM_LARGE] = sAffineAnim_ItemIcon_Large }; -static const struct SpriteTemplate gSpriteTemplate_857BC70 = +static const struct SpriteTemplate sSpriteTemplate_ItemIcon = { - .tileTag = TAG_TILE_7, - .paletteTag = TAG_PAL_DACB, - .oam = &sOamData_857BBA4, + .tileTag = GFXTAG_ITEM_ICON_0, + .paletteTag = PALTAG_ITEM_ICON_0, + .oam = &sOamData_ItemIcon, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sSpriteAffineAnimTable_857BC44, + .affineAnims = sAffineAnims_ItemIcon, .callback = SpriteCallbackDummy, }; -static void sub_80D0C60(void) +static void CreateItemIconSprites(void) { s32 i; u8 spriteId; struct CompressedSpriteSheet spriteSheet; struct SpriteTemplate spriteTemplate; - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption == OPTION_MOVE_ITEMS) { - spriteSheet.data = gUnknown_03000F78; + spriteSheet.data = sItemIconGfxBuffer; spriteSheet.size = 0x200; - spriteTemplate = gSpriteTemplate_857BC70; + spriteTemplate = sSpriteTemplate_ItemIcon; - for (i = 0; i < 3; i++) + for (i = 0; i < MAX_ITEM_ICONS; i++) { - spriteSheet.tag = TAG_TILE_7 + i; + spriteSheet.tag = GFXTAG_ITEM_ICON_0 + i; LoadCompressedSpriteSheet(&spriteSheet); - sPSSData->field_2204[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * 32 + (void*)(OBJ_VRAM0); - sPSSData->field_2204[i].palIndex = AllocSpritePalette(TAG_PAL_DACB + i); - sPSSData->field_2204[i].palIndex *= 16; - sPSSData->field_2204[i].palIndex += 0x100; - spriteTemplate.tileTag = TAG_TILE_7 + i; - spriteTemplate.paletteTag = TAG_PAL_DACB + i; + sStorage->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * 32 + (void*)(OBJ_VRAM0); + sStorage->itemIcons[i].palIndex = AllocSpritePalette(PALTAG_ITEM_ICON_0 + i); + sStorage->itemIcons[i].palIndex *= 16; + sStorage->itemIcons[i].palIndex += 0x100; + spriteTemplate.tileTag = GFXTAG_ITEM_ICON_0 + i; + spriteTemplate.paletteTag = PALTAG_ITEM_ICON_0 + i; spriteId = CreateSprite(&spriteTemplate, 0, 0, 11); - sPSSData->field_2204[i].sprite = &gSprites[spriteId]; - sPSSData->field_2204[i].sprite->invisible = TRUE; - sPSSData->field_2204[i].unk10 = 0; + sStorage->itemIcons[i].sprite = &gSprites[spriteId]; + sStorage->itemIcons[i].sprite->invisible = TRUE; + sStorage->itemIcons[i].active = FALSE; } } - sPSSData->movingItem = 0; + sStorage->movingItemId = ITEM_NONE; } -// The functions below handle new features of MOVE_ITEMS box option. -static bool32 sub_80D1324(u8 cursorArea, u8 cursorPos); -static const u32 *GetItemIconPic(u16 itemId); -static const u32 *GetItemIconPalette(u16 itemId); -static u8 sub_80D12E8(void); -static void sub_80D140C(u8 id, u8 cursorArea, u8 cursorPos); -static void sub_80D1524(u8 id, const u32 *itemTiles, const u32 *itemPal); -static void sub_80D15D4(u8 id, u8 animNum); -static void sub_80D1740(u8 id, bool8 arg1); -static u8 sub_80D1370(u8 cursorArea, u8 cursorPos); -static void sub_80D1604(u8 id, u8 arg1, u8 arg2, u8 arg3); -static void sub_80D1AD8(struct Sprite *sprite); -static void sub_80D1A48(struct Sprite *sprite); -static void sub_80D1A74(struct Sprite *sprite); -static void sub_80D1B14(struct Sprite *sprite); -static void sub_80D1B94(struct Sprite *sprite); -static void sub_80D1CCC(struct Sprite *sprite); -static void sub_80D1C30(struct Sprite *sprite); - -static void sub_80D0D8C(u8 cursorArea, u8 cursorPos) +static void TryLoadItemIconAtPos(u8 cursorArea, u8 cursorPos) { u16 heldItem; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; - if (sub_80D1324(cursorArea, cursorPos)) + + // If we've already loaded the item here, stop + if (IsItemIconAtPosition(cursorArea, cursorPos)) return; switch (cursorArea) @@ -8686,381 +8798,389 @@ static void sub_80D0D8C(u8 cursorArea, u8 cursorPos) return; } - if (heldItem != 0) + if (heldItem != ITEM_NONE) { const u32 *tiles = GetItemIconPic(heldItem); const u32 *pal = GetItemIconPalette(heldItem); - u8 id = sub_80D12E8(); + u8 id = GetNewItemIconIdx(); - sub_80D140C(id, cursorArea, cursorPos); - sub_80D1524(id, tiles, pal); - sub_80D15D4(id, 1); - sub_80D1740(id, TRUE); + SetItemIconPosition(id, cursorArea, cursorPos); + LoadItemIconGfx(id, tiles, pal); + SetItemIconAffineAnim(id, ITEM_ANIM_APPEAR); + SetItemIconActive(id, TRUE); } } -static void sub_80D0E50(u8 cursorArea, u8 cursorPos) +static void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos) { u8 id; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; - id = sub_80D1370(cursorArea, cursorPos); - sub_80D15D4(id, 2); - sub_80D1604(id, 0, cursorArea, cursorPos); + id = GetItemIconIdxByPosition(cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_DISAPPEAR); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, cursorArea, cursorPos); } -static void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos) +static void TakeItemFromMon(u8 cursorArea, u8 cursorPos) { u8 id; - u16 item; + u16 itemId; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; - id = sub_80D1370(cursorArea, cursorPos); - item = 0; - sub_80D15D4(id, 3); - sub_80D1604(id, 1, cursorArea, cursorPos); - sub_80D140C(id, 2, 0); - if (cursorArea == CURSOR_AREA_IN_BOX) + id = GetItemIconIdxByPosition(cursorArea, cursorPos); + itemId = ITEM_NONE; + SetItemIconAffineAnim(id, ITEM_ANIM_PICK_UP); + SetItemIconCallback(id, ITEM_CB_TO_HAND, cursorArea, cursorPos); + SetItemIconPosition(id, CURSOR_AREA_IN_HAND, 0); + if (cursorArea == CURSOR_AREA_IN_BOX) { - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &item); + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &itemId); SetBoxMonIconObjMode(cursorPos, 1); } else { - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &item); + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &itemId); SetPartyMonIconObjMode(cursorPos, 1); } - sPSSData->movingItem = sPSSData->cursorMonItem; + sStorage->movingItemId = sStorage->displayMonItemId; } -static void sub_80D0F38(u16 item) +static void InitItemIconInCursor(u16 itemId) { - const u32 *tiles = GetItemIconPic(item); - const u32 *pal = GetItemIconPalette(item); - u8 id = sub_80D12E8(); - - sub_80D1524(id, tiles, pal); - sub_80D15D4(id, 6); - sub_80D1604(id, 1, 0, 0); - sub_80D140C(id, 2, 0); - sub_80D1740(id, TRUE); - sPSSData->movingItem = item; + const u32 *tiles = GetItemIconPic(itemId); + const u32 *pal = GetItemIconPalette(itemId); + u8 id = GetNewItemIconIdx(); + LoadItemIconGfx(id, tiles, pal); + SetItemIconAffineAnim(id, ITEM_ANIM_LARGE); + SetItemIconCallback(id, ITEM_CB_TO_HAND, CURSOR_AREA_IN_BOX, 0); + SetItemIconPosition(id, CURSOR_AREA_IN_HAND, 0); + SetItemIconActive(id, TRUE); + sStorage->movingItemId = itemId; } -static void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos) +static void SwapItemsWithMon(u8 cursorArea, u8 cursorPos) { u8 id; - u16 item; + u16 itemId; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; - id = sub_80D1370(cursorArea, cursorPos); - sub_80D15D4(id, 3); - sub_80D1604(id, 3, 2, 0); + id = GetItemIconIdxByPosition(cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_PICK_UP); + SetItemIconCallback(id, ITEM_CB_SWAP_TO_HAND, CURSOR_AREA_IN_HAND, 0); if (cursorArea == CURSOR_AREA_IN_BOX) { - item = GetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM); - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &sPSSData->movingItem); - sPSSData->movingItem = item; + itemId = GetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM); + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &sStorage->movingItemId); + sStorage->movingItemId = itemId; } else { - item = GetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM); - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &sPSSData->movingItem); - sPSSData->movingItem = item; + itemId = GetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM); + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &sStorage->movingItemId); + sStorage->movingItemId = itemId; } - id = sub_80D1370(2, 0); - sub_80D15D4(id, 4); - sub_80D1604(id, 4, cursorArea, cursorPos); + id = GetItemIconIdxByPosition(CURSOR_AREA_IN_HAND, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_DOWN); + SetItemIconCallback(id, ITEM_CB_SWAP_TO_MON, cursorArea, cursorPos); } -static void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos) +static void GiveItemToMon(u8 cursorArea, u8 cursorPos) { u8 id; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; - id = sub_80D1370(2, 0); - sub_80D15D4(id, 4); - sub_80D1604(id, 2, cursorArea, cursorPos); + id = GetItemIconIdxByPosition(CURSOR_AREA_IN_HAND, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_DOWN); + SetItemIconCallback(id, ITEM_CB_TO_MON, cursorArea, cursorPos); if (cursorArea == CURSOR_AREA_IN_BOX) { - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &sPSSData->movingItem); + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &sStorage->movingItemId); SetBoxMonIconObjMode(cursorPos, 0); } else { - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &sPSSData->movingItem); + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &sStorage->movingItemId); SetPartyMonIconObjMode(cursorPos, 0); } } -static void Item_TakeMons(u8 cursorArea, u8 cursorPos) +static void MoveItemFromMonToBag(u8 cursorArea, u8 cursorPos) { u8 id; - u16 item; + u16 itemId; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; - item = 0; - id = sub_80D1370(cursorArea, cursorPos); - sub_80D15D4(id, 2); - sub_80D1604(id, 0, cursorArea, cursorPos); - if (cursorArea == CURSOR_AREA_IN_BOX) + itemId = ITEM_NONE; + id = GetItemIconIdxByPosition(cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_DISAPPEAR); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, cursorArea, cursorPos); + if (cursorArea == CURSOR_AREA_IN_BOX) { - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &item); + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &itemId); SetBoxMonIconObjMode(cursorPos, 1); } else { - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &item); + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &itemId); SetPartyMonIconObjMode(cursorPos, 1); } } -static void sub_80D1194(void) +static void MoveItemFromCursorToBag(void) { - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption == OPTION_MOVE_ITEMS) { - u8 id = sub_80D1370(2, 0); - sub_80D15D4(id, 5); - sub_80D1604(id, 0, 2, 0); + u8 id = GetItemIconIdxByPosition(CURSOR_AREA_IN_HAND, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_AWAY); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, CURSOR_AREA_IN_HAND, 0); } } -static void sub_80D11CC(void) +// The party menu is being closed, if the cursor is on +// a Pokémon that has a held item make sure it slides +// up along with the closing menu. +static void MoveHeldItemWithPartyMenu(void) { s32 i; - if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; - for (i = 0; i < 3; i++) + for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (sPSSData->field_2204[i].unk10 && sPSSData->field_2204[i].unk8 == 1) - sub_80D1604(i, 7, 2, 0); + if (sStorage->itemIcons[i].active + && sStorage->itemIcons[i].area == CURSOR_AREA_IN_PARTY) + SetItemIconCallback(i, ITEM_CB_HIDE_PARTY, CURSOR_AREA_IN_HAND, 0); } } -static bool8 sub_80D1218(void) +static bool8 IsItemIconAnimActive(void) { s32 i; - for (i = 0; i < 3; i++) + for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (sPSSData->field_2204[i].unk10) + if (sStorage->itemIcons[i].active) { - if (!sPSSData->field_2204[i].sprite->affineAnimEnded && sPSSData->field_2204[i].sprite->affineAnimBeginning) + if (!sStorage->itemIcons[i].sprite->affineAnimEnded + && sStorage->itemIcons[i].sprite->affineAnimBeginning) return TRUE; - if (sPSSData->field_2204[i].sprite->callback != SpriteCallbackDummy && sPSSData->field_2204[i].sprite->callback != sub_80D1AD8) + if (sStorage->itemIcons[i].sprite->callback != SpriteCallbackDummy + && sStorage->itemIcons[i].sprite->callback != SpriteCB_ItemIcon_SetPosToCursor) return TRUE; } } - return FALSE; } -static bool8 IsActiveItemMoving(void) +static bool8 IsMovingItem(void) { s32 i; - if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS) + if (sStorage->boxOption == OPTION_MOVE_ITEMS) { - for (i = 0; i < 3; i++) + for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (sPSSData->field_2204[i].unk10 && sPSSData->field_2204[i].unk8 == 2) + if (sStorage->itemIcons[i].active + && sStorage->itemIcons[i].area == CURSOR_AREA_IN_HAND) return TRUE; } } - return FALSE; } static const u8 *GetMovingItemName(void) { - return ItemId_GetName(sPSSData->movingItem); + return ItemId_GetName(sStorage->movingItemId); } -static u16 GetMovingItem(void) +static u16 GetMovingItemId(void) { - return sPSSData->movingItem; + return sStorage->movingItemId; } -static u8 sub_80D12E8(void) +static u8 GetNewItemIconIdx(void) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (sPSSData->field_2204[i].unk10 == 0) + if (!sStorage->itemIcons[i].active) { - sPSSData->field_2204[i].unk10 = 1; + sStorage->itemIcons[i].active = TRUE; return i; } } - - return 3; + return MAX_ITEM_ICONS; } -static bool32 sub_80D1324(u8 cursorArea, u8 cursorPos) +static bool32 IsItemIconAtPosition(u8 cursorArea, u8 cursorPos) { s32 i; - for (i = 0; i < 3; i++) + for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (sPSSData->field_2204[i].unk10 - && sPSSData->field_2204[i].unk8 == cursorArea - && sPSSData->field_2204[i].unk9 == cursorPos) + if (sStorage->itemIcons[i].active + && sStorage->itemIcons[i].area == cursorArea + && sStorage->itemIcons[i].pos == cursorPos) return TRUE; } - return FALSE; } -static u8 sub_80D1370(u8 cursorArea, u8 cursorPos) +static u8 GetItemIconIdxByPosition(u8 cursorArea, u8 cursorPos) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (sPSSData->field_2204[i].unk10 - && sPSSData->field_2204[i].unk8 == cursorArea - && sPSSData->field_2204[i].unk9 == cursorPos) + if (sStorage->itemIcons[i].active + && sStorage->itemIcons[i].area == cursorArea + && sStorage->itemIcons[i].pos == cursorPos) return i; } - - return 3; + return MAX_ITEM_ICONS; } -static u8 sub_80D13C4(struct Sprite *sprite) +static u8 GetItemIconIdxBySprite(struct Sprite *sprite) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < MAX_ITEM_ICONS; i++) { - if (sPSSData->field_2204[i].unk10 - && sPSSData->field_2204[i].sprite == sprite) + if (sStorage->itemIcons[i].active + && sStorage->itemIcons[i].sprite == sprite) return i; } - - return 3; + return MAX_ITEM_ICONS; } -static void sub_80D140C(u8 id, u8 cursorArea, u8 cursorPos) +static void SetItemIconPosition(u8 id, u8 cursorArea, u8 cursorPos) { - u8 row, column; + u8 x, y; - if (id >= 3) + if (id >= MAX_ITEM_ICONS) return; switch (cursorArea) { case CURSOR_AREA_IN_BOX: - row = cursorPos % IN_BOX_ROWS; - column = cursorPos / IN_BOX_ROWS; - sPSSData->field_2204[id].sprite->pos1.x = (24 * row) + 112; - sPSSData->field_2204[id].sprite->pos1.y = (24 * column) + 56; - sPSSData->field_2204[id].sprite->oam.priority = 2; + x = cursorPos % IN_BOX_COLUMNS; + y = cursorPos / IN_BOX_COLUMNS; + sStorage->itemIcons[id].sprite->x = (24 * x) + 112; + sStorage->itemIcons[id].sprite->y = (24 * y) + 56; + sStorage->itemIcons[id].sprite->oam.priority = 2; break; case CURSOR_AREA_IN_PARTY: if (cursorPos == 0) { - sPSSData->field_2204[id].sprite->pos1.x = 116; - sPSSData->field_2204[id].sprite->pos1.y = 76; + sStorage->itemIcons[id].sprite->x = 116; + sStorage->itemIcons[id].sprite->y = 76; } else { - sPSSData->field_2204[id].sprite->pos1.x = 164; - sPSSData->field_2204[id].sprite->pos1.y = 24 * (cursorPos - 1) + 28; + sStorage->itemIcons[id].sprite->x = 164; + sStorage->itemIcons[id].sprite->y = 24 * (cursorPos - 1) + 28; } - sPSSData->field_2204[id].sprite->oam.priority = 1; + sStorage->itemIcons[id].sprite->oam.priority = 1; break; } - sPSSData->field_2204[id].unk8 = cursorArea; - sPSSData->field_2204[id].unk9 = cursorPos; + sStorage->itemIcons[id].area = cursorArea; + sStorage->itemIcons[id].pos = cursorPos; } -static void sub_80D1524(u8 id, const u32 *itemTiles, const u32 *itemPal) +static void LoadItemIconGfx(u8 id, const u32 *itemTiles, const u32 *itemPal) { s32 i; - if (id >= 3) + if (id >= MAX_ITEM_ICONS) return; - CpuFastFill(0, sPSSData->field_42C4, 0x200); - LZ77UnCompWram(itemTiles, sPSSData->field_22C4); + CpuFastFill(0, sStorage->itemIconBuffer, 0x200); + LZ77UnCompWram(itemTiles, sStorage->tileBuffer); for (i = 0; i < 3; i++) - CpuFastCopy(sPSSData->field_22C4 + (i * 0x60), sPSSData->field_42C4 + (i * 0x80), 0x60); + CpuFastCopy(&sStorage->tileBuffer[i * 0x60], &sStorage->itemIconBuffer[i * 0x80], 0x60); - CpuFastCopy(sPSSData->field_42C4, sPSSData->field_2204[id].tiles, 0x200); - LZ77UnCompWram(itemPal, sPSSData->field_42C4); - LoadPalette(sPSSData->field_42C4, sPSSData->field_2204[id].palIndex, 0x20); + CpuFastCopy(sStorage->itemIconBuffer, sStorage->itemIcons[id].tiles, 0x200); + LZ77UnCompWram(itemPal, sStorage->itemIconBuffer); + LoadPalette(sStorage->itemIconBuffer, sStorage->itemIcons[id].palIndex, 0x20); } -static void sub_80D15D4(u8 id, u8 animNum) +static void SetItemIconAffineAnim(u8 id, u8 animNum) { - if (id >= 3) + if (id >= MAX_ITEM_ICONS) return; - StartSpriteAffineAnim(sPSSData->field_2204[id].sprite, animNum); + StartSpriteAffineAnim(sStorage->itemIcons[id].sprite, animNum); } -static void sub_80D1604(u8 id, u8 arg1, u8 arg2, u8 arg3) +#define sItemIconId data[0] +#define sState data[0] +#define sCursorArea data[6] +#define sCursorPos data[7] + +static void SetItemIconCallback(u8 id, u8 callbackId, u8 cursorArea, u8 cursorPos) { - if (id >= 3) + if (id >= MAX_ITEM_ICONS) return; - switch (arg1) + switch (callbackId) { - case 0: - sPSSData->field_2204[id].sprite->data[0] = id; - sPSSData->field_2204[id].sprite->callback = sub_80D1A48; + case ITEM_CB_WAIT_ANIM: + sStorage->itemIcons[id].sprite->sItemIconId = id; + sStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_WaitAnim; break; - case 1: - sPSSData->field_2204[id].sprite->data[0] = 0; - sPSSData->field_2204[id].sprite->callback = sub_80D1A74; + case ITEM_CB_TO_HAND: + sStorage->itemIcons[id].sprite->sState = 0; + sStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToHand; break; - case 2: - sPSSData->field_2204[id].sprite->data[0] = 0; - sPSSData->field_2204[id].sprite->data[6] = arg2; - sPSSData->field_2204[id].sprite->data[7] = arg3; - sPSSData->field_2204[id].sprite->callback = sub_80D1B14; + case ITEM_CB_TO_MON: + sStorage->itemIcons[id].sprite->sState = 0; + sStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + sStorage->itemIcons[id].sprite->sCursorPos = cursorPos; + sStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToMon; break; - case 3: - sPSSData->field_2204[id].sprite->data[0] = 0; - sPSSData->field_2204[id].sprite->callback = sub_80D1B94; - sPSSData->field_2204[id].sprite->data[6] = arg2; - sPSSData->field_2204[id].sprite->data[7] = arg3; + case ITEM_CB_SWAP_TO_HAND: + sStorage->itemIcons[id].sprite->sState = 0; + sStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToHand; + sStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + sStorage->itemIcons[id].sprite->sCursorPos = cursorPos; break; - case 4: - sPSSData->field_2204[id].sprite->data[0] = 0; - sPSSData->field_2204[id].sprite->data[6] = arg2; - sPSSData->field_2204[id].sprite->data[7] = arg3; - sPSSData->field_2204[id].sprite->callback = sub_80D1C30; + case ITEM_CB_SWAP_TO_MON: + sStorage->itemIcons[id].sprite->sState = 0; + sStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + sStorage->itemIcons[id].sprite->sCursorPos = cursorPos; + sStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToMon; break; - case 7: - sPSSData->field_2204[id].sprite->callback = sub_80D1CCC; + case ITEM_CB_HIDE_PARTY: + // If cursor is on a Pokémon with a held item and + // the player closes the party menu, have the held + // item follow the Pokémon as the menu slides out + sStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_HideParty; break; } } -static void sub_80D1740(u8 id, bool8 arg1) +static void SetItemIconActive(u8 id, bool8 active) { - if (id >= 3) + if (id >= MAX_ITEM_ICONS) return; - sPSSData->field_2204[id].unk10 = arg1; - sPSSData->field_2204[id].sprite->invisible = (arg1 == FALSE); + sStorage->itemIcons[id].active = active; + sStorage->itemIcons[id].sprite->invisible = (active == FALSE); } static const u32 *GetItemIconPic(u16 itemId) @@ -9077,213 +9197,224 @@ static void PrintItemDescription(void) { const u8 *description; - if (IsActiveItemMoving()) - description = ItemId_GetDescription(sPSSData->movingItem); + if (IsMovingItem()) + description = ItemId_GetDescription(sStorage->movingItemId); else - description = ItemId_GetDescription(sPSSData->cursorMonItem); + description = ItemId_GetDescription(sStorage->displayMonItemId); FillWindowPixelBuffer(2, PIXEL_FILL(1)); AddTextPrinterParameterized5(2, 1, description, 4, 0, 0, NULL, 0, 1); } -static void sub_80D1818(void) +static void InitItemInfoWindow(void) { - sPSSData->field_2236 = 0x15; - LoadBgTiles(0, gUnknown_0857BB24, 0x80, 0x13A); - sub_80D19B4(0); + sStorage->itemInfoWindowOffset = 21; + LoadBgTiles(0, sItemInfoFrame_Gfx, 0x80, 0x13A); + DrawItemInfoWindow(0); } -static bool8 sub_80D184C(void) +static bool8 UpdateItemInfoWindowSlideIn(void) { - s32 i, var; + s32 i, pos; - if (sPSSData->field_2236 == 0) + if (sStorage->itemInfoWindowOffset == 0) return FALSE; - sPSSData->field_2236--; - var = 0x15 - sPSSData->field_2236; - for (i = 0; i < var; i++) - { - WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + sPSSData->field_2236 + i, i, 13, 1, 7, 15, 21); - } + sStorage->itemInfoWindowOffset--; + pos = 21 - sStorage->itemInfoWindowOffset; + for (i = 0; i < pos; i++) + WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + sStorage->itemInfoWindowOffset + i, i, 13, 1, 7, 15, 21); - sub_80D19B4(var); - return (sPSSData->field_2236 != 0); + DrawItemInfoWindow(pos); + return (sStorage->itemInfoWindowOffset != 0); } -static bool8 sub_80D18E4(void) +static bool8 UpdateItemInfoWindowSlideOut(void) { - s32 i, var; + s32 i, pos; - if (sPSSData->field_2236 == 0x16) + if (sStorage->itemInfoWindowOffset == 22) return FALSE; - if (sPSSData->field_2236 == 0) + if (sStorage->itemInfoWindowOffset == 0) FillBgTilemapBufferRect(0, 0, 21, 12, 1, 9, 17); - sPSSData->field_2236++; - var = 0x15 - sPSSData->field_2236; - for (i = 0; i < var; i++) + sStorage->itemInfoWindowOffset++; + pos = 21 - sStorage->itemInfoWindowOffset; + for (i = 0; i < pos; i++) { - WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + sPSSData->field_2236 + i, i, 13, 1, 7, 15, 21); + WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + sStorage->itemInfoWindowOffset + i, i, 13, 1, 7, 15, 21); } - if (var >= 0) - sub_80D19B4(var); + if (pos >= 0) + DrawItemInfoWindow(pos); - FillBgTilemapBufferRect(0, 0, var + 1, 12, 1, 9, 0x11); + FillBgTilemapBufferRect(0, 0, pos + 1, 12, 1, 9, 0x11); ScheduleBgCopyTilemapToVram(0); return TRUE; } -static void sub_80D19B4(u32 arg0) +static void DrawItemInfoWindow(u32 pos) { - if (arg0 != 0) + if (pos != 0) { - FillBgTilemapBufferRect(0, 0x13A, 0, 0xC, arg0, 1, 0xFu); - FillBgTilemapBufferRect(0, 0x93A, 0, 0x14, arg0, 1, 0xFu); + FillBgTilemapBufferRect(0, 0x13A, 0, 0xC, pos, 1, 0xFu); + FillBgTilemapBufferRect(0, 0x93A, 0, 0x14, pos, 1, 0xFu); } - FillBgTilemapBufferRect(0, 0x13B, arg0, 0xD, 1, 7, 0xFu); - FillBgTilemapBufferRect(0, 0x13C, arg0, 0xC, 1, 1, 0xFu); - FillBgTilemapBufferRect(0, 0x13D, arg0, 0x14, 1, 1, 0xFu); + FillBgTilemapBufferRect(0, 0x13B, pos, 0xD, 1, 7, 0xFu); + FillBgTilemapBufferRect(0, 0x13C, pos, 0xC, 1, 1, 0xFu); + FillBgTilemapBufferRect(0, 0x13D, pos, 0x14, 1, 1, 0xFu); ScheduleBgCopyTilemapToVram(0); } -static void sub_80D1A48(struct Sprite *sprite) +static void SpriteCB_ItemIcon_WaitAnim(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - sub_80D1740(sprite->data[0], FALSE); + SetItemIconActive(sprite->sItemIconId, FALSE); sprite->callback = SpriteCallbackDummy; } } -static void sub_80D1A74(struct Sprite *sprite) +static void SpriteCB_ItemIcon_ToHand(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[1] = sprite->pos1.x << 4; - sprite->data[2] = sprite->pos1.y << 4; + sprite->data[1] = sprite->x << 4; + sprite->data[2] = sprite->y << 4; sprite->data[3] = 10; sprite->data[4] = 21; sprite->data[5] = 0; - sprite->data[0]++; + sprite->sState++; case 1: sprite->data[1] -= sprite->data[3]; sprite->data[2] -= sprite->data[4]; - sprite->pos1.x = sprite->data[1] >> 4; - sprite->pos1.y = sprite->data[2] >> 4; + sprite->x = sprite->data[1] >> 4; + sprite->y = sprite->data[2] >> 4; if (++sprite->data[5] > 11) - sprite->callback = sub_80D1AD8; + sprite->callback = SpriteCB_ItemIcon_SetPosToCursor; break; } } -static void sub_80D1AD8(struct Sprite *sprite) +static void SpriteCB_ItemIcon_SetPosToCursor(struct Sprite *sprite) { - sprite->pos1.x = sPSSData->field_CB4->pos1.x + 4; - sprite->pos1.y = sPSSData->field_CB4->pos1.y + sPSSData->field_CB4->pos2.y + 8; - sprite->oam.priority = sPSSData->field_CB4->oam.priority; + sprite->x = sStorage->cursorSprite->x + 4; + sprite->y = sStorage->cursorSprite->y + sStorage->cursorSprite->y2 + 8; + sprite->oam.priority = sStorage->cursorSprite->oam.priority; } -static void sub_80D1B14(struct Sprite *sprite) +static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[1] = sprite->pos1.x << 4; - sprite->data[2] = sprite->pos1.y << 4; + sprite->data[1] = sprite->x << 4; + sprite->data[2] = sprite->y << 4; sprite->data[3] = 10; sprite->data[4] = 21; sprite->data[5] = 0; - sprite->data[0]++; + sprite->sState++; case 1: sprite->data[1] += sprite->data[3]; sprite->data[2] += sprite->data[4]; - sprite->pos1.x = sprite->data[1] >> 4; - sprite->pos1.y = sprite->data[2] >> 4; + sprite->x = sprite->data[1] >> 4; + sprite->y = sprite->data[2] >> 4; if (++sprite->data[5] > 11) { - sub_80D140C(sub_80D13C4(sprite), sprite->data[6], sprite->data[7]); + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); sprite->callback = SpriteCallbackDummy; } break; } } -static void sub_80D1B94(struct Sprite *sprite) +static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[1] = sprite->pos1.x << 4; - sprite->data[2] = sprite->pos1.y << 4; + sprite->data[1] = sprite->x << 4; + sprite->data[2] = sprite->y << 4; sprite->data[3] = 10; sprite->data[4] = 21; sprite->data[5] = 0; - sprite->data[0]++; + sprite->sState++; case 1: sprite->data[1] -= sprite->data[3]; sprite->data[2] -= sprite->data[4]; - sprite->pos1.x = sprite->data[1] >> 4; - sprite->pos1.y = sprite->data[2] >> 4; - sprite->pos2.x = gSineTable[sprite->data[5] * 8] >> 4; + sprite->x = sprite->data[1] >> 4; + sprite->y = sprite->data[2] >> 4; + sprite->x2 = gSineTable[sprite->data[5] * 8] >> 4; if (++sprite->data[5] > 11) { - sub_80D140C(sub_80D13C4(sprite), sprite->data[6], sprite->data[7]); - sprite->pos2.x = 0; - sprite->callback = sub_80D1AD8; + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); + sprite->x2 = 0; + sprite->callback = SpriteCB_ItemIcon_SetPosToCursor; } break; } } -static void sub_80D1C30(struct Sprite *sprite) +static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[1] = sprite->pos1.x << 4; - sprite->data[2] = sprite->pos1.y << 4; + sprite->data[1] = sprite->x << 4; + sprite->data[2] = sprite->y << 4; sprite->data[3] = 10; sprite->data[4] = 21; sprite->data[5] = 0; - sprite->data[0]++; + sprite->sState++; case 1: sprite->data[1] += sprite->data[3]; sprite->data[2] += sprite->data[4]; - sprite->pos1.x = sprite->data[1] >> 4; - sprite->pos1.y = sprite->data[2] >> 4; - sprite->pos2.x = -(gSineTable[sprite->data[5] * 8] >> 4); + sprite->x = sprite->data[1] >> 4; + sprite->y = sprite->data[2] >> 4; + sprite->x2 = -(gSineTable[sprite->data[5] * 8] >> 4); if (++sprite->data[5] > 11) { - sub_80D140C(sub_80D13C4(sprite), sprite->data[6], sprite->data[7]); + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); sprite->callback = SpriteCallbackDummy; - sprite->pos2.x = 0; + sprite->x2 = 0; } break; } } -static void sub_80D1CCC(struct Sprite *sprite) +static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite) { - sprite->pos1.y -= 8; - if (sprite->pos1.y + sprite->pos2.y < -16) + sprite->y -= 8; + if (sprite->y + sprite->y2 < -16) { sprite->callback = SpriteCallbackDummy; - sub_80D1740(sub_80D13C4(sprite), FALSE); + SetItemIconActive(GetItemIconIdxBySprite(sprite), FALSE); } } -void nullsub_pss(void) -{ +#undef sState +#undef sItemIconId +#undef sCursorArea +#undef sCursorPos + +//------------------------------------------------------------------------------ +// SECTION: General utility +//------------------------------------------------------------------------------ + + +// Unused, leftover from FRLG +static void BackupPokemonStorage(void/*struct PokemonStorage * dest*/) +{ + //*dest = *gPokemonStoragePtr; } -void nullsub_98(void) +// Unused, leftover from FRLG +static void RestorePokemonStorage(void/*struct PokemonStorage * src*/) { - + //*gPokemonStoragePtr = *src; } // Functions here are general utility functions. @@ -9336,9 +9467,9 @@ u32 GetBoxMonLevelAt(u8 boxId, u8 boxPosition) if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT && GetBoxMonData(&gPokemonStoragePtr->boxes[boxId][boxPosition], MON_DATA_SANITY_HAS_SPECIES)) lvl = GetLevelFromBoxMonExp(&gPokemonStoragePtr->boxes[boxId][boxPosition]); - #ifdef BUGFIX +#ifdef BUGFIX else - #endif +#endif lvl = 0; return lvl; @@ -9411,7 +9542,7 @@ u8 *GetBoxNamePtr(u8 boxId) return NULL; } -u8 GetBoxWallpaper(u8 boxId) +static u8 GetBoxWallpaper(u8 boxId) { if (boxId < TOTAL_BOXES_COUNT) return gPokemonStoragePtr->boxWallpapers[boxId]; @@ -9419,23 +9550,24 @@ u8 GetBoxWallpaper(u8 boxId) return 0; } -void SetBoxWallpaper(u8 boxId, u8 wallpaperId) +static void SetBoxWallpaper(u8 boxId, u8 wallpaperId) { if (boxId < TOTAL_BOXES_COUNT && wallpaperId < WALLPAPER_COUNT) gPokemonStoragePtr->boxWallpapers[boxId] = wallpaperId; } -s16 sub_80D214C(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3) +// For moving to the next Pokémon while viewing the summary screen +s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 mode) { s16 i; - s16 adder = -1; + s16 direction = -1; - if (arg3 < 2) - adder = 1; + if (mode == 0 || mode == 1) + direction = 1; - if (arg3 == 1 || arg3 == 3) + if (mode == 1 || mode == 3) { - for (i = (s8)currIndex + adder; i >= 0 && i <= maxIndex; i += adder) + for (i = (s8)currIndex + direction; i >= 0 && i <= maxIndex; i += direction) { if (GetBoxMonData(&boxMons[i], MON_DATA_SPECIES) != SPECIES_NONE) return i; @@ -9443,7 +9575,7 @@ s16 sub_80D214C(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3) } else { - for (i = (s8)currIndex + adder; i >= 0 && i <= maxIndex; i += adder) + for (i = (s8)currIndex + direction; i >= 0 && i <= maxIndex; i += direction) { if (GetBoxMonData(&boxMons[i], MON_DATA_SPECIES) != SPECIES_NONE && !GetBoxMonData(&boxMons[i], MON_DATA_IS_EGG)) @@ -9537,6 +9669,12 @@ bool32 AnyStorageMonWithMove(u16 moveId) return FALSE; } + +//------------------------------------------------------------------------------ +// SECTION: Walda +//------------------------------------------------------------------------------ + + void ResetWaldaWallpaper(void) { gSaveBlock1Ptr->waldaPhrase.iconId = 0; @@ -9564,7 +9702,7 @@ u32 GetWaldaWallpaperPatternId(void) void SetWaldaWallpaperPatternId(u8 id) { - if (id < FRIENDS_WALLPAPERS_COUNT) + if (id < ARRAY_COUNT(sWaldaWallpapers)) gSaveBlock1Ptr->waldaPhrase.patternId = id; } @@ -9575,7 +9713,7 @@ u32 GetWaldaWallpaperIconId(void) void SetWaldaWallpaperIconId(u8 id) { - if (id < 30) + if (id < ARRAY_COUNT(sWaldaWallpaperIcons)) gSaveBlock1Ptr->waldaPhrase.iconId = id; } @@ -9605,287 +9743,338 @@ bool32 IsWaldaPhraseEmpty(void) return (gSaveBlock1Ptr->waldaPhrase.text[0] == EOS); } -// Not sure what the purpose of these functions is. -// They seem to only be called while PSS is initialized. -EWRAM_DATA static struct UnkStruct_2039D84 *gUnknown_02039D84 = NULL; -EWRAM_DATA static u16 gUnknown_02039D88 = 0; +//------------------------------------------------------------------------------ +// SECTION: TilemapUtil +// +// Handles 3 particular tilemaps in a somewhat unusual way. +// For example, while the cursor is on the Close Box button it flashes between +// two states alternately. Both these states are their own part of the same +// tilemap that's always present. The utility shifts the tilemap up and down +// to show/hide the states, and limits the view with a rectangle that only +// reveals one at a time. +// Each tilemap is tracked with a TILEMAPID that can be used to reference it. +//------------------------------------------------------------------------------ -static void sub_80D259C(u8 count) + +struct TilemapUtil_RectData +{ + s16 x; + s16 y; + u16 width; + u16 height; + s16 destX; + s16 destY; +}; + +struct TilemapUtil +{ + struct TilemapUtil_RectData prev; // Only read in unused function + struct TilemapUtil_RectData cur; + const void *savedTilemap; // Only written in unused function + const void *tilemap; + u16 altWidth; + u16 altHeight; // Never read + u16 width; + u16 height; // Never read + u16 rowSize; // Never read + u8 tileSize; + u8 bg; + bool8 active; +}; + +EWRAM_DATA static struct TilemapUtil *sTilemapUtil = NULL; +EWRAM_DATA static u16 sNumTilemapUtilIds = 0; + +static void TilemapUtil_Init(u8 count) { u16 i; - gUnknown_02039D84 = Alloc(sizeof(*gUnknown_02039D84) * count); - gUnknown_02039D88 = (gUnknown_02039D84 == NULL) ? 0 : count; - for (i = 0; i < gUnknown_02039D88; i++) + sTilemapUtil = Alloc(sizeof(*sTilemapUtil) * count); + sNumTilemapUtilIds = (sTilemapUtil == NULL) ? 0 : count; + for (i = 0; i < sNumTilemapUtilIds; i++) { - gUnknown_02039D84[i].field_18 = NULL; - gUnknown_02039D84[i].field_2C = 0; + sTilemapUtil[i].savedTilemap = NULL; + sTilemapUtil[i].active = FALSE; } } -static void sub_80D25F0(void) +static void TilemapUtil_Free(void) { - Free(gUnknown_02039D84); + Free(sTilemapUtil); } -static void sub_80D2604(void) +// Unused +static void TilemapUtil_UpdateAll(void) { s32 i; - for (i = 0; i < gUnknown_02039D88; i++) + for (i = 0; i < sNumTilemapUtilIds; i++) { - if (gUnknown_02039D84[i].field_2C == 1) - sub_80D2918(i); + if (sTilemapUtil[i].active == TRUE) + TilemapUtil_Update(i); } } struct { - u16 a; - u16 b; -} -static const sUnkVars[][4] = + u16 width; + u16 height; +} static const sTilemapDimensions[][4] = { { - {0x0100, 0x0100}, - {0x0200, 0x0100}, - {0x0100, 0x0200}, - {0x0200, 0x0200}, + { 256, 256}, + { 512, 256}, + { 256, 512}, + { 512, 512}, }, { - {0x0080, 0x0080}, - {0x0100, 0x0100}, - {0x0200, 0x0200}, - {0x0400, 0x0400}, + { 128, 128}, + { 256, 256}, + { 512, 512}, + {1024, 1024}, }, }; -static void sub_80D2644(u8 id, u8 bg, const void *arg2, u16 arg3, u16 arg4) +static void TilemapUtil_SetMap(u8 id, u8 bg, const void *tilemap, u16 width, u16 height) { u16 bgScreenSize, bgType; - if (id >= gUnknown_02039D88) + if (id >= sNumTilemapUtilIds) return; - gUnknown_02039D84[id].field_18 = NULL; - gUnknown_02039D84[id].field_1C = arg2; - gUnknown_02039D84[id].field_2B = bg; - gUnknown_02039D84[id].field_24 = arg3; - gUnknown_02039D84[id].field_26 = arg4; + sTilemapUtil[id].savedTilemap = NULL; + sTilemapUtil[id].tilemap = tilemap; + sTilemapUtil[id].bg = bg; + sTilemapUtil[id].width = width; + sTilemapUtil[id].height = height; bgScreenSize = GetBgAttribute(bg, BG_ATTR_SCREENSIZE); bgType = GetBgAttribute(bg, BG_ATTR_TYPE); - gUnknown_02039D84[id].field_20 = sUnkVars[bgType][bgScreenSize].a; - gUnknown_02039D84[id].field_22 = sUnkVars[bgType][bgScreenSize].b; + sTilemapUtil[id].altWidth = sTilemapDimensions[bgType][bgScreenSize].width; + sTilemapUtil[id].altHeight = sTilemapDimensions[bgType][bgScreenSize].height; if (bgType != 0) - gUnknown_02039D84[id].field_2A = 1; + sTilemapUtil[id].tileSize = 1; else - gUnknown_02039D84[id].field_2A = 2; + sTilemapUtil[id].tileSize = 2; - gUnknown_02039D84[id].field_28 = gUnknown_02039D84[id].field_2A * arg3; - gUnknown_02039D84[id].field_0[1].field_4 = arg3; - gUnknown_02039D84[id].field_0[1].field_6 = arg4; - gUnknown_02039D84[id].field_0[1].field_0 = 0; - gUnknown_02039D84[id].field_0[1].field_2 = 0; - gUnknown_02039D84[id].field_0[1].field_8 = 0; - gUnknown_02039D84[id].field_0[1].field_A = 0; - gUnknown_02039D84[id].field_0[0] = gUnknown_02039D84[id].field_0[1]; - gUnknown_02039D84[id].field_2C = 1; + sTilemapUtil[id].rowSize = sTilemapUtil[id].tileSize * width; + sTilemapUtil[id].cur.width = width; + sTilemapUtil[id].cur.height = height; + sTilemapUtil[id].cur.x = 0; + sTilemapUtil[id].cur.y = 0; + sTilemapUtil[id].cur.destX = 0; + sTilemapUtil[id].cur.destY = 0; + sTilemapUtil[id].prev = sTilemapUtil[id].cur; + sTilemapUtil[id].active = TRUE; } -static void sub_80D2740(u8 id, const void *arg1) +// Unused +static void TilemapUtil_SetSavedMap(u8 id, const void *tilemap) { - if (id >= gUnknown_02039D88) + if (id >= sNumTilemapUtilIds) return; - gUnknown_02039D84[id].field_18 = arg1; - gUnknown_02039D84[id].field_2C = 1; + sTilemapUtil[id].savedTilemap = tilemap; + sTilemapUtil[id].active = TRUE; } -static void sub_80D2770(u8 id, u16 arg1, u16 arg2) +static void TilemapUtil_SetPos(u8 id, u16 x, u16 y) { - if (id >= gUnknown_02039D88) + if (id >= sNumTilemapUtilIds) return; - gUnknown_02039D84[id].field_0[1].field_8 = arg1; - gUnknown_02039D84[id].field_0[1].field_A = arg2; - gUnknown_02039D84[id].field_2C = 1; + sTilemapUtil[id].cur.destX = x; + sTilemapUtil[id].cur.destY = y; + sTilemapUtil[id].active = TRUE; } -static void sub_80D27AC(u8 id, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +static void TilemapUtil_SetRect(u8 id, u16 x, u16 y, u16 width, u16 height) { - if (id >= gUnknown_02039D88) + if (id >= sNumTilemapUtilIds) return; - gUnknown_02039D84[id].field_0[1].field_0 = arg1; - gUnknown_02039D84[id].field_0[1].field_2 = arg2; - gUnknown_02039D84[id].field_0[1].field_4 = arg3; - gUnknown_02039D84[id].field_0[1].field_6 = arg4; - gUnknown_02039D84[id].field_2C = 1; + sTilemapUtil[id].cur.x = x; + sTilemapUtil[id].cur.y = y; + sTilemapUtil[id].cur.width = width; + sTilemapUtil[id].cur.height = height; + sTilemapUtil[id].active = TRUE; } -static void sub_80D27F4(u8 id, u8 arg1, s8 arg2) +static void TilemapUtil_Move(u8 id, u8 mode, s8 val) { - if (id >= gUnknown_02039D88) + if (id >= sNumTilemapUtilIds) return; - switch (arg1) + switch (mode) { case 0: - gUnknown_02039D84[id].field_0[1].field_8 += arg2; - gUnknown_02039D84[id].field_0[1].field_4 -= arg2; + sTilemapUtil[id].cur.destX += val; + sTilemapUtil[id].cur.width -= val; break; case 1: - gUnknown_02039D84[id].field_0[1].field_0 += arg2; - gUnknown_02039D84[id].field_0[1].field_4 += arg2; + sTilemapUtil[id].cur.x += val; + sTilemapUtil[id].cur.width += val; break; case 2: - gUnknown_02039D84[id].field_0[1].field_A += arg2; - gUnknown_02039D84[id].field_0[1].field_6 -= arg2; + sTilemapUtil[id].cur.destY += val; + sTilemapUtil[id].cur.height -= val; break; case 3: - gUnknown_02039D84[id].field_0[1].field_2 -= arg2; - gUnknown_02039D84[id].field_0[1].field_6 += arg2; + sTilemapUtil[id].cur.y -= val; + sTilemapUtil[id].cur.height += val; break; case 4: - gUnknown_02039D84[id].field_0[1].field_8 += arg2; + sTilemapUtil[id].cur.destX += val; break; case 5: - gUnknown_02039D84[id].field_0[1].field_A += arg2; + sTilemapUtil[id].cur.destY += val; break; } - gUnknown_02039D84[id].field_2C = 1; + sTilemapUtil[id].active = TRUE; } -static void sub_80D2918(u8 id) +static void TilemapUtil_Update(u8 id) { - if (id >= gUnknown_02039D88) + if (id >= sNumTilemapUtilIds) return; - if (gUnknown_02039D84[id].field_18 != NULL) - sub_80D2960(id); + if (sTilemapUtil[id].savedTilemap != NULL) + TilemapUtil_DrawPrev(id); // Never called, above always FALSE - sub_80D29F8(id); - gUnknown_02039D84[id].field_0[0] = gUnknown_02039D84[id].field_0[1]; + TilemapUtil_Draw(id); + sTilemapUtil[id].prev = sTilemapUtil[id].cur; } -static void sub_80D2960(u8 id) +static void TilemapUtil_DrawPrev(u8 id) { s32 i; - u32 adder = gUnknown_02039D84[id].field_2A * gUnknown_02039D84[id].field_20; - const void *tiles = (gUnknown_02039D84[id].field_18 + (adder * gUnknown_02039D84[id].field_0[0].field_A)) - + (gUnknown_02039D84[id].field_2A * gUnknown_02039D84[id].field_0[0].field_8); + u32 adder = sTilemapUtil[id].tileSize * sTilemapUtil[id].altWidth; + const void *tiles = (sTilemapUtil[id].savedTilemap + (adder * sTilemapUtil[id].prev.destY)) + + (sTilemapUtil[id].tileSize * sTilemapUtil[id].prev.destX); - for (i = 0; i < gUnknown_02039D84[id].field_0[0].field_6; i++) + for (i = 0; i < sTilemapUtil[id].prev.height; i++) { - CopyToBgTilemapBufferRect(gUnknown_02039D84[id].field_2B, + CopyToBgTilemapBufferRect(sTilemapUtil[id].bg, tiles, - gUnknown_02039D84[id].field_0[0].field_8, - gUnknown_02039D84[id].field_0[0].field_A + i, - gUnknown_02039D84[id].field_0[0].field_4, + sTilemapUtil[id].prev.destX, + sTilemapUtil[id].prev.destY + i, + sTilemapUtil[id].prev.width, 1); tiles += adder; } } -static void sub_80D29F8(u8 id) +static void TilemapUtil_Draw(u8 id) { s32 i; - u32 adder = gUnknown_02039D84[id].field_2A * gUnknown_02039D84[id].field_24; - const void *tiles = (gUnknown_02039D84[id].field_1C + (adder * gUnknown_02039D84[id].field_0[1].field_2)) - + (gUnknown_02039D84[id].field_2A * gUnknown_02039D84[id].field_0[1].field_0); + u32 adder = sTilemapUtil[id].tileSize * sTilemapUtil[id].width; + const void *tiles = (sTilemapUtil[id].tilemap + (adder * sTilemapUtil[id].cur.y)) + + (sTilemapUtil[id].tileSize * sTilemapUtil[id].cur.x); - for (i = 0; i < gUnknown_02039D84[id].field_0[1].field_6; i++) + for (i = 0; i < sTilemapUtil[id].cur.height; i++) { - CopyToBgTilemapBufferRect(gUnknown_02039D84[id].field_2B, + CopyToBgTilemapBufferRect(sTilemapUtil[id].bg, tiles, - gUnknown_02039D84[id].field_0[1].field_8, - gUnknown_02039D84[id].field_0[1].field_A + i, - gUnknown_02039D84[id].field_0[1].field_4, + sTilemapUtil[id].cur.destX, + sTilemapUtil[id].cur.destY + i, + sTilemapUtil[id].cur.width, 1); tiles += adder; } } -EWRAM_DATA static struct UnkStruct_2000020 *gUnknown_02039D8C = NULL; -static void sub_80D2A90(struct UnkStruct_2000020 *arg0, struct UnkStruct_2000028 *arg1, u32 arg2) +//------------------------------------------------------------------------------ +// SECTION: UnkUtil +// +// Some data transfer utility that goes functionally unused. +// It gets initialized with UnkUtil_Init, and run every vblank in Pokémon +// Storage with UnkUtil_Run, but neither of the Add functions are ever used, +// so UnkUtil_Run performs no actions. +//------------------------------------------------------------------------------ + + +EWRAM_DATA static struct UnkUtil *sUnkUtil = NULL; + +static void UnkUtil_Init(struct UnkUtil *util, struct UnkUtilData *data, u32 max) { - gUnknown_02039D8C = arg0; - arg0->unk_00 = arg1; - arg0->unk_05 = arg2; - arg0->unk_04 = 0; + sUnkUtil = util; + util->data = data; + util->max = max; + util->numActive = 0; } -static void sub_80D2AA4(void) +static void UnkUtil_Run(void) { u16 i; - - if (gUnknown_02039D8C->unk_04) + if (sUnkUtil->numActive) { - for (i = 0; i < gUnknown_02039D8C->unk_04; i++) + for (i = 0; i < sUnkUtil->numActive; i++) { - struct UnkStruct_2000028 *unkStruct = &gUnknown_02039D8C->unk_00[i]; - unkStruct->unk_0c(unkStruct); + struct UnkUtilData *data = &sUnkUtil->data[i]; + data->func(data); } - - gUnknown_02039D8C->unk_04 = 0; + sUnkUtil->numActive = 0; } } -static bool8 sub_80D2AEC(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg) +// Unused +static bool8 UnkUtil_CpuAdd(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg) { - struct UnkStruct_2000028 *unkStruct; + struct UnkUtilData *data; - if (gUnknown_02039D8C->unk_04 >= gUnknown_02039D8C->unk_05) + if (sUnkUtil->numActive >= sUnkUtil->max) return FALSE; - unkStruct = &gUnknown_02039D8C->unk_00[gUnknown_02039D8C->unk_04++]; - unkStruct->unk_08 = width * 2; - unkStruct->unk_04 = dest + 2 * (dTop * 32 + dLeft); - unkStruct->unk_00 = src + 2 * (sTop * unkArg + sLeft); - unkStruct->newField = height; - unkStruct->unk_0a = unkArg; - unkStruct->unk_0c = sub_80D2B88; + data = &sUnkUtil->data[sUnkUtil->numActive++]; + data->size = width * 2; + data->dest = dest + 2 * (dTop * 32 + dLeft); + data->src = src + 2 * (sTop * unkArg + sLeft); + data->height = height; + data->unk = unkArg; + data->func = UnkUtil_CpuRun; return TRUE; } -static void sub_80D2B88(struct UnkStruct_2000028 *unkStruct) +// Functionally unused +static void UnkUtil_CpuRun(struct UnkUtilData *data) { u16 i; - for (i = 0; i < unkStruct->newField; i++) + for (i = 0; i < data->height; i++) { - CpuSet(unkStruct->unk_00, unkStruct->unk_04, (unkStruct->unk_08 / 2)); - unkStruct->unk_04 += 64; - unkStruct->unk_00 += (unkStruct->unk_0a * 2); + CpuSet(data->src, data->dest, data->size / 2); + data->dest += 64; + data->src += data->unk * 2; } } -static bool8 sub_80D2BC0(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height) +// Unused +static bool8 UnkUtil_DmaAdd(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height) { - struct UnkStruct_2000028 *unkStruct; + struct UnkUtilData *data; - if (gUnknown_02039D8C->unk_04 >= gUnknown_02039D8C->unk_05) + if (sUnkUtil->numActive >= sUnkUtil->max) return FALSE; - unkStruct = &gUnknown_02039D8C->unk_00[gUnknown_02039D8C->unk_04++]; - unkStruct->unk_08 = width * 2; - unkStruct->unk_04 = dest + ((dTop * 32) + dLeft) * 2; - unkStruct->newField = height; - unkStruct->unk_0c = sub_80D2C1C; + data = &sUnkUtil->data[sUnkUtil->numActive++]; + data->size = width * 2; + data->dest = dest + (dTop * 32 + dLeft) * 2; + data->height = height; + data->func = UnkUtil_DmaRun; return TRUE; } -static void sub_80D2C1C(struct UnkStruct_2000028 *unkStruct) +// Functionally unused +static void UnkUtil_DmaRun(struct UnkUtilData *data) { u16 i; - for (i = 0; i < unkStruct->newField; i++) + for (i = 0; i < data->height; i++) { - Dma3FillLarge_(0, unkStruct->unk_04, unkStruct->unk_08, 16); - unkStruct->unk_04 += 64; + Dma3FillLarge16_(0, data->dest, data->size); + data->dest += 64; } } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index efada35099..087319ff26 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -48,6 +48,14 @@ #include "constants/songs.h" #include "constants/battle_config.h" +enum { + PSS_PAGE_INFO, + PSS_PAGE_SKILLS, + PSS_PAGE_BATTLE_MOVES, + PSS_PAGE_CONTEST_MOVES, + PSS_PAGE_COUNT, +}; + // Screen titles (upper left) #define PSS_LABEL_WINDOW_POKEMON_INFO_TITLE 0 #define PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE 1 @@ -112,6 +120,11 @@ enum SPRITE_ARR_ID_COUNT = SPRITE_ARR_ID_MOVE_SELECTOR2 + MOVE_SELECTOR_SPRITES_COUNT }; +#define TILE_EMPTY_APPEAL_HEART 0x1039 +#define TILE_FILLED_APPEAL_HEART 0x103A +#define TILE_FILLED_JAM_HEART 0x103C +#define TILE_EMPTY_JAM_HEART 0x103D + static EWRAM_DATA struct PokemonSummaryScreenData { /*0x00*/ union { @@ -178,7 +191,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData EWRAM_DATA u8 gLastViewedMonIndex = 0; static EWRAM_DATA u8 sMoveSlotToReplace = 0; -ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0; +ALIGNED(4) static EWRAM_DATA u8 sAnimDelayTaskId = 0; // forward declarations static bool8 LoadGraphics(void); @@ -299,6 +312,7 @@ static void SpriteCb_MoveSelector(struct Sprite *sprite); static void DestroyMoveSelectorSprites(u8 firstArrayId); static void SetMainMoveSelectorColor(u8 whichColor); static void KeepMoveSelectorVisible(u8 firstSpriteId); +static void SummaryScreen_DestroyAnimDelayTask(void); // const rom data #include "data/text/move_descriptions.h" @@ -710,7 +724,7 @@ static void (*const sTextPrinterTasks[])(u8 taskId) = }; static const u8 sMemoNatureTextColor[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); -static const u8 sMemoMiscTextColor[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); // This is also affected by palettes, apparently +static const u8 sMemoMiscTextColor[] = _("{COLOR WHITE}{SHADOW DARK_GRAY}"); // This is also affected by palettes, apparently static const u8 sStatsLeftColumnLayout[] = _("{DYNAMIC 0}/{DYNAMIC 1}\n{DYNAMIC 2}\n{DYNAMIC 3}"); static const u8 sStatsRightColumnLayout[] = _("{DYNAMIC 0}\n{DYNAMIC 1}\n{DYNAMIC 2}"); static const u8 sMovesPPLayout[] = _("{PP}{DYNAMIC 0}/{DYNAMIC 1}"); @@ -1155,24 +1169,24 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, sMonSummaryScreen->maxMonIndex = maxMonIndex; sMonSummaryScreen->callback = callback; - if (mode == PSS_MODE_BOX) + if (mode == SUMMARY_MODE_BOX) sMonSummaryScreen->isBoxMon = TRUE; else sMonSummaryScreen->isBoxMon = FALSE; switch (mode) { - case PSS_MODE_NORMAL: - case PSS_MODE_BOX: + case SUMMARY_MODE_NORMAL: + case SUMMARY_MODE_BOX: sMonSummaryScreen->minPageIndex = 0; sMonSummaryScreen->maxPageIndex = PSS_PAGE_COUNT - 1; break; - case PSS_MODE_LOCK_MOVES: + case SUMMARY_MODE_LOCK_MOVES: sMonSummaryScreen->minPageIndex = 0; sMonSummaryScreen->maxPageIndex = PSS_PAGE_COUNT - 1; sMonSummaryScreen->lockMovesFlag = TRUE; break; - case PSS_MODE_SELECT_MOVE: + case SUMMARY_MODE_SELECT_MOVE: sMonSummaryScreen->minPageIndex = PSS_PAGE_BATTLE_MOVES; sMonSummaryScreen->maxPageIndex = PSS_PAGE_COUNT - 1; sMonSummaryScreen->lockMonFlag = TRUE; @@ -1181,7 +1195,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, sMonSummaryScreen->currPageIndex = sMonSummaryScreen->minPageIndex; sMonSummaryScreen->splitIconSpriteId = 0xFF; - SummaryScreen_SetUnknownTaskId(0xFF); + SummaryScreen_SetAnimDelayTaskId(TASK_NONE); if (gMonSpritesGfxPtr == NULL) sub_806F2AC(0, 0); @@ -1191,7 +1205,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove) { - ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, mons, monIndex, maxMonIndex, callback); + ShowPokemonSummaryScreen(SUMMARY_MODE_SELECT_MOVE, mons, monIndex, maxMonIndex, callback); sMonSummaryScreen->newMove = newMove; } @@ -1303,7 +1317,7 @@ static bool8 LoadGraphics(void) break; case 17: sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON] = LoadMonGfxAndSprite(&sMonSummaryScreen->currentMon, &sMonSummaryScreen->switchCounter); - if (sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON] != 0xFF) + if (sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON] != SPRITE_NONE) { sMonSummaryScreen->switchCounter = 0; gMain.state++; @@ -1326,18 +1340,18 @@ static bool8 LoadGraphics(void) gMain.state++; break; case 22: - if (sMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode != SUMMARY_MODE_SELECT_MOVE) CreateTask(Task_HandleInput, 0); else CreateTask(Task_SetHandleReplaceMoveInput, 0); gMain.state++; break; case 23: - BlendPalettes(0xFFFFFFFF, 16, 0); + BlendPalettes(PALETTES_ALL, 16, 0); gMain.state++; break; case 24: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gPaletteFade.bufferTransferDisabled = 0; gMain.state++; break; @@ -1481,7 +1495,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *mon) sum->ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES); break; case 2: - if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == PSS_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) + if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == SUMMARY_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) { sum->nature = GetNature(mon); sum->currentHP = GetMonData(mon, MON_DATA_HP); @@ -1559,7 +1573,7 @@ static void FreeSummaryScreen(void) static void BeginCloseSummaryScreen(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = CloseSummaryScreen; } @@ -1569,7 +1583,7 @@ static void CloseSummaryScreen(u8 taskId) { SetMainCallback2(sMonSummaryScreen->callback); gLastViewedMonIndex = sMonSummaryScreen->curMonIndex; - SummaryScreen_DestroyUnknownTask(); + SummaryScreen_DestroyAnimDelayTask(); ResetSpriteData(); FreeAllSpritePalettes(); StopCryAndClearCrySongs(); @@ -1649,7 +1663,7 @@ static void ChangeSummaryPokemon(u8 taskId, s8 delta) else delta = 3; } - monId = sub_80D214C(sMonSummaryScreen->monList.boxMons, sMonSummaryScreen->curMonIndex, sMonSummaryScreen->maxMonIndex, delta); + monId = AdvanceStorageMonIndex(sMonSummaryScreen->monList.boxMons, sMonSummaryScreen->curMonIndex, sMonSummaryScreen->maxMonIndex, delta); } else if (IsMultiBattle() == TRUE) { @@ -1687,7 +1701,7 @@ static void Task_ChangeSummaryMon(u8 taskId) StopCryAndClearCrySongs(); break; case 1: - SummaryScreen_DestroyUnknownTask(); + SummaryScreen_DestroyAnimDelayTask(); DestroySpriteAndFreeResources(&gSprites[sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON]]); break; case 2: @@ -1715,7 +1729,7 @@ static void Task_ChangeSummaryMon(u8 taskId) break; case 8: sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON] = LoadMonGfxAndSprite(&sMonSummaryScreen->currentMon, &data[1]); - if (sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON] == 0xFF) + if (sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON] == SPRITE_NONE) return; gSprites[sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON]].data[2] = 1; TryDrawExperienceProgressBar(); @@ -2493,7 +2507,7 @@ static void HandlePowerAccTilemap(u16 a, s16 b) else { u8 taskId = FindTaskIdByFunc(Task_ShowPowerAccWindow); - if (taskId == 0xFF) + if (taskId == TASK_NONE) taskId = CreateTask(Task_ShowPowerAccWindow, 8); gTasks[taskId].data[0] = b; gTasks[taskId].data[1] = a; @@ -2545,7 +2559,7 @@ static void HandleAppealJamTilemap(u16 a, s16 b, u16 move) else { u8 taskId = FindTaskIdByFunc(Task_ShowAppealJamWindow); - if (taskId == 0xFF) + if (taskId == TASK_NONE) taskId = CreateTask(Task_ShowAppealJamWindow, 8); gTasks[taskId].data[0] = b; gTasks[taskId].data[1] = a; @@ -2728,29 +2742,30 @@ static void DrawContestMoveHearts(u16 move) if (move != MOVE_NONE) { + // Draw appeal hearts u8 effectValue = gContestEffects[gContestMoves[move].effect].appeal; if (effectValue != 0xFF) effectValue /= 10; - for (i = 0; i < 8; i++) + for (i = 0; i < MAX_CONTEST_MOVE_HEARTS; i++) { if (effectValue != 0xFF && i < effectValue) - tilemap[(i / 4 * 32) + (i & 3) + 0x1E6] = 0x103A; + tilemap[(i / 4 * 32) + (i & 3) + 0x1E6] = TILE_FILLED_APPEAL_HEART; else - tilemap[(i / 4 * 32) + (i & 3) + 0x1E6] = 0x1039; + tilemap[(i / 4 * 32) + (i & 3) + 0x1E6] = TILE_EMPTY_APPEAL_HEART; } + // Draw jam hearts effectValue = gContestEffects[gContestMoves[move].effect].jam; - if (effectValue != 0xFF) effectValue /= 10; - for (i = 0; i < 8; i++) + for (i = 0; i < MAX_CONTEST_MOVE_HEARTS; i++) { if (effectValue != 0xFF && i < effectValue) - tilemap[(i / 4 * 32) + (i & 3) + 0x226] = 0x103C; + tilemap[(i / 4 * 32) + (i & 3) + 0x226] = TILE_FILLED_JAM_HEART; else - tilemap[(i / 4 * 32) + (i & 3) + 0x226] = 0x103D; + tilemap[(i / 4 * 32) + (i & 3) + 0x226] = TILE_EMPTY_JAM_HEART; } } } @@ -2772,7 +2787,7 @@ static void ResetWindows(void) for (i = 0; i < PSS_LABEL_WINDOW_END; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); for (i = 0; i < ARRAY_COUNT(sMonSummaryScreen->windowIds); i++) - sMonSummaryScreen->windowIds[i] = 0xFF; + sMonSummaryScreen->windowIds[i] = WINDOW_NONE; } static void PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, u8 y, u8 lineSpacing, u8 colorId) @@ -2950,7 +2965,7 @@ static void PutPageWindowTilemaps(u8 page) break; case PSS_PAGE_BATTLE_MOVES: PutWindowTilemap(PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE); - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); @@ -2962,7 +2977,7 @@ static void PutPageWindowTilemaps(u8 page) break; case PSS_PAGE_CONTEST_MOVES: PutWindowTilemap(PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE); - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); @@ -2998,7 +3013,7 @@ static void ClearPageWindowTilemaps(u8 page) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP); break; case PSS_PAGE_BATTLE_MOVES: - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) { @@ -3012,7 +3027,7 @@ static void ClearPageWindowTilemaps(u8 page) } break; case PSS_PAGE_CONTEST_MOVES: - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); @@ -3033,7 +3048,7 @@ static void ClearPageWindowTilemaps(u8 page) static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 templateId) { u8 *windowIdPtr = &sMonSummaryScreen->windowIds[templateId]; - if (*windowIdPtr == 0xFF) + if (*windowIdPtr == WINDOW_NONE) { *windowIdPtr = AddWindow(&template[templateId]); FillWindowPixelBuffer(*windowIdPtr, PIXEL_FILL(0)); @@ -3044,11 +3059,11 @@ static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 te static void RemoveWindowByIndex(u8 windowIndex) { u8 *windowIdPtr = &sMonSummaryScreen->windowIds[windowIndex]; - if (*windowIdPtr != 0xFF) + if (*windowIdPtr != WINDOW_NONE) { ClearWindowTilemap(*windowIdPtr); RemoveWindow(*windowIdPtr); - *windowIdPtr = 0xFF; + *windowIdPtr = WINDOW_NONE; } } @@ -3057,7 +3072,7 @@ static void PrintPageSpecificText(u8 pageIndex) u16 i; for (i = 0; i < ARRAY_COUNT(sMonSummaryScreen->windowIds); i++) { - if (sMonSummaryScreen->windowIds[i] != 0xFF) + if (sMonSummaryScreen->windowIds[i] != WINDOW_NONE) FillWindowPixelBuffer(sMonSummaryScreen->windowIds[i], PIXEL_FILL(0)); } sTextPrinterFunctions[pageIndex](); @@ -3507,7 +3522,7 @@ static void PrintBattleMoves(void) PrintMoveNameAndPP(2); PrintMoveNameAndPP(3); - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); if (sMonSummaryScreen->firstMoveIndex == MAX_MON_MOVES) @@ -3541,11 +3556,11 @@ static void Task_PrintBattleMoves(u8 taskId) PrintMoveNameAndPP(3); break; case 5: - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) PrintNewMoveDetailsOrCancelText(); break; case 6: - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { if (sMonSummaryScreen->firstMoveIndex == MAX_MON_MOVES) data[1] = sMonSummaryScreen->newMove; @@ -3554,7 +3569,7 @@ static void Task_PrintBattleMoves(u8 taskId) } break; case 7: - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) PrintMoveDetails(data[1]); @@ -3642,7 +3657,7 @@ static void PrintContestMoves(void) PrintMoveNameAndPP(2); PrintMoveNameAndPP(3); - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); PrintContestMoveDescription(sMonSummaryScreen->firstMoveIndex); @@ -3668,11 +3683,11 @@ static void Task_PrintContestMoves(u8 taskId) PrintMoveNameAndPP(3); break; case 5: - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) PrintNewMoveDetailsOrCancelText(); break; case 6: - if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == SUMMARY_MODE_SELECT_MOVE) { if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) PrintContestMoveDescription(sMonSummaryScreen->firstMoveIndex); @@ -3789,15 +3804,15 @@ static void ResetSpriteIds(void) u8 i; for (i = 0; i < ARRAY_COUNT(sMonSummaryScreen->spriteIds); i++) - sMonSummaryScreen->spriteIds[i] = 0xFF; + sMonSummaryScreen->spriteIds[i] = SPRITE_NONE; } static void DestroySpriteInArray(u8 spriteArrayId) { - if (sMonSummaryScreen->spriteIds[spriteArrayId] != 0xFF) + if (sMonSummaryScreen->spriteIds[spriteArrayId] != SPRITE_NONE) { DestroySprite(&gSprites[sMonSummaryScreen->spriteIds[spriteArrayId]]); - sMonSummaryScreen->spriteIds[spriteArrayId] = 0xFF; + sMonSummaryScreen->spriteIds[spriteArrayId] = SPRITE_NONE; } } @@ -3813,7 +3828,7 @@ static void HidePageSpecificSprites(void) for (i = SPRITE_ARR_ID_TYPE; i < ARRAY_COUNT(sMonSummaryScreen->spriteIds); i++) { - if (sMonSummaryScreen->spriteIds[i] != 0xFF) + if (sMonSummaryScreen->spriteIds[i] != SPRITE_NONE) SetSpriteInvisibility(i, TRUE); } } @@ -3842,7 +3857,7 @@ static void CreateMoveTypeIcons(void) for (i = SPRITE_ARR_ID_TYPE; i < SPRITE_ARR_ID_TYPE + 5; i++) { - if (sMonSummaryScreen->spriteIds[i] == 0xFF) + if (sMonSummaryScreen->spriteIds[i] == SPRITE_NONE) sMonSummaryScreen->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2); SetSpriteInvisibility(i, TRUE); @@ -3854,8 +3869,8 @@ static void SetTypeSpritePosAndPal(u8 typeId, u8 x, u8 y, u8 spriteArrayId) struct Sprite *sprite = &gSprites[sMonSummaryScreen->spriteIds[spriteArrayId]]; StartSpriteAnim(sprite, typeId); sprite->oam.paletteNum = sMoveTypeToOamPaletteNum[typeId]; - sprite->pos1.x = x + 16; - sprite->pos1.y = y + 8; + sprite->x = x + 16; + sprite->y = y + 8; SetSpriteInvisibility(spriteArrayId, FALSE); } @@ -3954,7 +3969,7 @@ static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state) case 0: if (gMain.inBattle) { - if (sub_80688F8(3, sMonSummaryScreen->curMonIndex)) + if (ShouldIgnoreDeoxysForm(3, sMonSummaryScreen->curMonIndex)) HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid); else HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid); @@ -3963,14 +3978,14 @@ static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state) { if (gMonSpritesGfxPtr != NULL) { - if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == PSS_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) + if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == SUMMARY_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid); else HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid); } else { - if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == PSS_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) + if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == SUMMARY_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid); else HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid); @@ -4030,17 +4045,19 @@ static void SpriteCB_Pokemon(struct Sprite *sprite) } } -void SummaryScreen_SetUnknownTaskId(u8 taskId) +// Track and then destroy Task_PokemonSummaryAnimateAfterDelay +// Normally destroys itself but it can be interrupted before the animation starts +void SummaryScreen_SetAnimDelayTaskId(u8 taskId) { - sUnknownTaskId = taskId; + sAnimDelayTaskId = taskId; } -void SummaryScreen_DestroyUnknownTask(void) +static void SummaryScreen_DestroyAnimDelayTask(void) { - if (sUnknownTaskId != 0xFF) + if (sAnimDelayTaskId != TASK_NONE) { - DestroyTask(sUnknownTaskId); - sUnknownTaskId = 0xFF; + DestroyTask(sAnimDelayTaskId); + sAnimDelayTaskId = TASK_NONE; } } @@ -4073,14 +4090,14 @@ static void StopPokemonAnimations(void) // A subtle effect, this function stops static void CreateMonMarkingsSprite(struct Pokemon *mon) { - struct Sprite *sprite = CreateMonMarkingsSpriteWithPal(TAG_MON_MARKINGS, TAG_MON_MARKINGS, sSummaryMarkingsPalette); + struct Sprite *sprite = CreateMonMarkingAllCombosSprite(TAG_MON_MARKINGS, TAG_MON_MARKINGS, sSummaryMarkingsPalette); sMonSummaryScreen->markingsSprite = sprite; if (sprite != NULL) { StartSpriteAnim(sprite, GetMonData(mon, MON_DATA_MARKINGS)); - sMonSummaryScreen->markingsSprite->pos1.x = 60; - sMonSummaryScreen->markingsSprite->pos1.y = 26; + sMonSummaryScreen->markingsSprite->x = 60; + sMonSummaryScreen->markingsSprite->y = 26; sMonSummaryScreen->markingsSprite->oam.priority = 1; } } @@ -4107,7 +4124,7 @@ static void CreateSetStatusSprite(void) u8 *spriteId = &sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_STATUS]; u8 statusAnim; - if (*spriteId == 0xFF) + if (*spriteId == SPRITE_NONE) *spriteId = CreateSprite(&sSpriteTemplate_StatusCondition, 64, 152, 0); statusAnim = GetMonAilment(&sMonSummaryScreen->currentMon); @@ -4167,9 +4184,9 @@ static void SpriteCb_MoveSelector(struct Sprite *sprite) } if (sprite->data[0] == SPRITE_ARR_ID_MOVE_SELECTOR1) - sprite->pos2.y = sMonSummaryScreen->firstMoveIndex * 16; + sprite->y2 = sMonSummaryScreen->firstMoveIndex * 16; else - sprite->pos2.y = sMonSummaryScreen->secondMoveIndex * 16; + sprite->y2 = sMonSummaryScreen->secondMoveIndex * 16; } static void DestroyMoveSelectorSprites(u8 firstArrayId) diff --git a/src/pokenav.c b/src/pokenav.c index eac0c85b4f..881411b9ec 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -288,7 +288,7 @@ static void Task_RunLoopedTask_LinkMode(u8 taskId) s16 *state; u32 action; - if (sub_8087598()) + if (Overworld_LinkRecvQueueLengthMoreThan2()) return; task = (LoopedTask)GetWordTaskArg(taskId, 1); diff --git a/src/pokenav_conditions_1.c b/src/pokenav_conditions_1.c index c27cd410c6..61b289ae1f 100644 --- a/src/pokenav_conditions_1.c +++ b/src/pokenav_conditions_1.c @@ -17,7 +17,7 @@ struct PokenavSub11 { u32 monPal[3][0x20]; u8 fill[0x180]; - u32 monPicGfx[3][0x800]; + u32 monPicGfx[3][MON_PIC_SIZE]; u8 searchMode; s16 monIndex; u32 (*callback)(struct PokenavSub11 *); @@ -123,7 +123,7 @@ u32 ConditionMenu_OpenMarkingsMenu(struct PokenavSub11 *structPtr) u8 markings; u32 ret = PARTY_CONDITION_FUNC_NONE, boxId, monId; - if (!MonMarkingsMenuHandleInput()) + if (!HandleMonMarkingsMenuInput()) { structPtr->monMarks[structPtr->mark] = GetMonMarkingsData(); monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST); @@ -372,7 +372,7 @@ u8 *CopyMonConditionNameGender(u8 *str, u16 id, bool8 arg3) switch (gender) { default: - *(str_++) = CHAR_UNK_SPACER; + *(str_++) = CHAR_GENDERLESS; break; case MON_MALE: *(str_++) = EXT_CTRL_CODE_BEGIN; diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c index c0e8c7d6db..c882befc4f 100644 --- a/src/pokenav_conditions_2.c +++ b/src/pokenav_conditions_2.c @@ -132,7 +132,7 @@ struct Pokenav7Struct u8 listIndexWindowId; u8 unusedWindowId1; u8 unusedWindowId2; - struct PokemonMarkMenu monMarks; + struct MonMarkingsMenu monMarks; struct Sprite *monMarksSprite; struct Sprite *conditionSparkleSprites[MAX_CONDITION_SPARKLES]; u8 windowModeState; @@ -161,7 +161,7 @@ bool32 OpenPartyConditionMenu(void) if (structPtr == NULL) return FALSE; - structPtr->monPicSpriteId = 0xFF; + structPtr->monPicSpriteId = SPRITE_NONE; structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_OpenPartyConditionGraph, 1); structPtr->callback = GetPartyConditionLoopedTaskActive; structPtr->windowModeState = 0; @@ -514,7 +514,7 @@ u32 LoopedTask_OpenMonMarkingsWindow(s32 state) switch (state) { case 0: - sub_811FAA4(TryGetMonMarkId(), 176, 32); + OpenMonMarkingsMenu(TryGetMonMarkId(), 176, 32); return LT_INC_AND_CONTINUE; case 1: PrintHelpBarText(HELPBAR_CONDITION_MARKINGS); @@ -533,7 +533,7 @@ u32 LoopedTask_CloseMonMarkingsWindow(s32 state) switch (state) { case 0: - sub_811FAF8(); + FreeMonMarkingsMenu(); return LT_INC_AND_CONTINUE; case 1: PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS); @@ -668,12 +668,12 @@ void CreateMonMarkingsOrPokeballIndicators(void) { structPtr->monMarks.baseTileTag = 0x6A; structPtr->monMarks.basePaletteTag = 0x6A; - sub_811F90C(&structPtr->monMarks); - sub_811FA90(); - sprite = CreateMonMarkingsSpriteWithPal(0x69, 0x69, sConditionGraphMonMarkingsPal); + InitMonMarkingsMenu(&structPtr->monMarks); + BufferMonMarkingsMenuTiles(); + sprite = CreateMonMarkingAllCombosSprite(0x69, 0x69, sConditionGraphMonMarkingsPal); sprite->oam.priority = 3; - sprite->pos1.x = 192; - sprite->pos1.y = 32; + sprite->x = 192; + sprite->y = 32; sprite->callback = MonMarkingsCallback; structPtr->monMarksSprite = sprite; PokenavFillPalette(IndexOfSpritePaletteTag(0x69), 0); @@ -694,7 +694,7 @@ void CreateMonMarkingsOrPokeballIndicators(void) } else { - structPtr->partyPokeballSpriteIds[i] = 0xFF; + structPtr->partyPokeballSpriteIds[i] = SPRITE_NONE; } } @@ -710,7 +710,7 @@ void CreateMonMarkingsOrPokeballIndicators(void) } else { - structPtr->partyPokeballSpriteIds[i] = 0xFF; + structPtr->partyPokeballSpriteIds[i] = SPRITE_NONE; } } @@ -725,7 +725,7 @@ void CreateMonMarkingsOrPokeballIndicators(void) } else { - structPtr->partyPokeballSpriteIds[i] = 0xFF; + structPtr->partyPokeballSpriteIds[i] = SPRITE_NONE; } } @@ -759,7 +759,7 @@ void sub_81CEBF4(struct Pokenav7Struct *structPtr) FreeSpritePaletteByTag(0x66); } - if (structPtr->monPicSpriteId != 0xFF) + if (structPtr->monPicSpriteId != SPRITE_NONE) { DestroySprite(&gSprites[structPtr->monPicSpriteId]); FreeSpriteTilesByTag(0x64); @@ -792,7 +792,7 @@ void FreePartyConditionSubstruct2(void) void MonPicGfxSpriteCallback(struct Sprite *sprite) { struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU); - sprite->pos1.x = structPtr->monTransitionX + 38; + sprite->x = structPtr->monTransitionX + 38; } void CreateConditionMonPic(u8 id) @@ -803,7 +803,7 @@ void CreateConditionMonPic(u8 id) u8 spriteId; struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU); - if (structPtr->monPicSpriteId == 0xFF) + if (structPtr->monPicSpriteId == SPRITE_NONE) { LoadConditionMonPicTemplate(&sprSheet, &sprTemplate, &sprPal); sprSheet.data = GetConditionMonPicGfx(id); @@ -816,7 +816,7 @@ void CreateConditionMonPic(u8 id) { FreeSpriteTilesByTag(0x64); FreeSpritePaletteByTag(0x64); - structPtr->monPicSpriteId = 0xFF; + structPtr->monPicSpriteId = SPRITE_NONE; } else { @@ -828,7 +828,7 @@ void CreateConditionMonPic(u8 id) } else { - DmaCopy16Defvars(3, GetConditionMonPicGfx(id), structPtr->unk181C, 0x800); + DmaCopy16Defvars(3, GetConditionMonPicGfx(id), structPtr->unk181C, MON_PIC_SIZE); LoadPalette(GetConditionMonPal(id), structPtr->monPalIndex, 0x20); } } diff --git a/src/pokenav_conditions_3.c b/src/pokenav_conditions_3.c index d02d844d0d..712be6f695 100644 --- a/src/pokenav_conditions_3.c +++ b/src/pokenav_conditions_3.c @@ -124,8 +124,8 @@ static const struct WindowTemplate sSearchResultListMenuWindowTemplate = .baseBlock = 20 }; -static const u8 sText_MaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); -static const u8 sText_FemaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +static const u8 sText_MaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GRAY}{WHITE}{LIGHT_GRAY}"); +static const u8 sText_FemaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GRAY}{WHITE}{LIGHT_GRAY}"); static const u8 sText_NoGenderSymbol[] = _("{UNK_SPACER}"); bool32 PokenavCallback_Init_ConditionSearch(void) @@ -419,7 +419,7 @@ static u32 LoopedTask_OpenConditionSearchResults(s32 state) switch (state) { case 0: - InitBgTemplates(sConditionSearchResultBgTemplates, NELEMS(sConditionSearchResultBgTemplates)); + InitBgTemplates(sConditionSearchResultBgTemplates, ARRAY_COUNT(sConditionSearchResultBgTemplates)); DecompressAndCopyTileDataToVram(1, sConditionSearchResultTiles, 0, 0, 0); SetBgTilemapBuffer(1, searchList->buff); CopyToBgTilemapBuffer(1, sConditionSearchResultTilemap, 0, 0); diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c index 009cf783f7..88c1773a6d 100644 --- a/src/pokenav_main_menu.c +++ b/src/pokenav_main_menu.c @@ -102,7 +102,7 @@ static const u8 *const sHelpBarTexts[HELPBAR_COUNT] = static const u8 sHelpBarTextColors[3] = { - TEXT_COLOR_RED, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY + TEXT_COLOR_RED, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; static const struct CompressedSpriteSheet gSpinningPokenavSpriteSheet[] = @@ -314,7 +314,7 @@ void ShutdownPokenav(void) { PlaySE(SE_POKENAV_OFF); ResetBldCnt_(); - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); } bool32 WaitForPokenavShutdownFade(void) @@ -496,7 +496,7 @@ void PokenavCopyPalette(const u16 *src, const u16 *dest, int size, int a3, int a g1 = ((((GET_G(*dest) << 8) - (g << 8)) / a3) * a4) >> 8; b1 = ((((GET_B(*dest) << 8) - (b << 8)) / a3) * a4) >> 8; - r = (r + r1) & 0x1F; //_RGB(r + r1, g + g1, b + b1); doesn't match; I have to assign the value of ((r + r1) & 0x1F) to r1 + r = (r + r1) & 0x1F; //_RGB(r + r1, g + g1, b + b1); doesn't match; I have to assign the value of ((r + r1) & 0x1F) to r g = (g + g1) & 0x1F; //See above b = (b + b1) & 0x1F; //See above @@ -521,10 +521,10 @@ void PokenavFadeScreen(s32 fadeType) BeginNormalPaletteFade(structPtr->palettes, -2, 16, 0, RGB_BLACK); break; case 2: - BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 16, RGB_BLACK); break; case 3: - BeginNormalPaletteFade(0xFFFFFFFF, -2, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -2, 16, 0, RGB_BLACK); break; } } @@ -536,7 +536,7 @@ bool32 IsPaletteFadeActive(void) void sub_81C7B40(void) { - BlendPalettes(0xFFFEFFFE, 16, RGB_BLACK); + BlendPalettes(PALETTES_ALL & ~(0x10000 | 0x1), 16, RGB_BLACK); } void InitBgTemplates(const struct BgTemplate *templates, int count) @@ -604,7 +604,7 @@ static void CleanupPokenavMainMenuResources(void) static void SpriteCB_SpinningPokenav(struct Sprite *sprite) { // If the background starts scrolling, follow it. - sprite->pos2.y = (GetBgY(0) / 256u) * -1; + sprite->y2 = (GetBgY(0) / 256u) * -1; } struct Sprite *PauseSpinningPokenavSprite(void) @@ -619,8 +619,8 @@ void ResumeSpinningPokenavSprite(void) { struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU); - structPtr->spinningPokenav->pos1.x = 220; - structPtr->spinningPokenav->pos1.y = 12; + structPtr->spinningPokenav->x = 220; + structPtr->spinningPokenav->y = 12; structPtr->spinningPokenav->callback = SpriteCB_SpinningPokenav; structPtr->spinningPokenav->invisible = FALSE; structPtr->spinningPokenav->oam.priority = 0; @@ -640,13 +640,13 @@ static void InitHoennMapHeaderSprites(void) spriteId = CreateSprite(&sPokenavLeftHeaderHoennMapSpriteTemplate, 0, 0, 1); structPtr->leftHeaderSprites[i] = &gSprites[spriteId]; structPtr->leftHeaderSprites[i]->invisible = TRUE; - structPtr->leftHeaderSprites[i]->pos2.x = i * 64; + structPtr->leftHeaderSprites[i]->x2 = i * 64; spriteId = CreateSprite(&sUnknown_0861FB44, 0, 0, 2); structPtr->submenuLeftHeaderSprites[i] = &gSprites[spriteId]; structPtr->submenuLeftHeaderSprites[i]->invisible = TRUE; - structPtr->submenuLeftHeaderSprites[i]->pos2.x = i * 32; - structPtr->submenuLeftHeaderSprites[i]->pos2.y = 18; + structPtr->submenuLeftHeaderSprites[i]->x2 = i * 32; + structPtr->submenuLeftHeaderSprites[i]->y2 = 18; structPtr->submenuLeftHeaderSprites[i]->oam.tileNum += (i * 8) + 64; } } @@ -686,9 +686,9 @@ static void LoadLeftHeaderGfxForMenu(u32 menuGfxId) structPtr->leftHeaderSprites[1]->oam.tileNum = GetSpriteTileStartByTag(2) + sPokenavMenuLeftHeaderSpriteSheets[menuGfxId].size; if (menuGfxId == POKENAV_GFX_MAP_MENU_ZOOMED_OUT || menuGfxId == POKENAV_GFX_MAP_MENU_ZOOMED_IN) - structPtr->leftHeaderSprites[1]->pos2.x = 56; + structPtr->leftHeaderSprites[1]->x2 = 56; else - structPtr->leftHeaderSprites[1]->pos2.x = 64; + structPtr->leftHeaderSprites[1]->x2 = 64; } static void LoadLeftHeaderGfxForSubMenu(u32 menuGfxId) @@ -702,7 +702,7 @@ static void LoadLeftHeaderGfxForSubMenu(u32 menuGfxId) size = GetDecompressedDataSize(sPokenavSubMenuLeftHeaderSpriteSheets[menuGfxId].data); LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(2) * 16) + 0x100, 0x20); LZ77UnCompWram(sPokenavSubMenuLeftHeaderSpriteSheets[menuGfxId].data, &gDecompressionBuffer[0x1000]); - RequestDma3Copy(&gDecompressionBuffer[0x1000], (void *)VRAM + 0x10800 + (GetSpriteTileStartByTag(2) * 32), size, 1); + RequestDma3Copy(&gDecompressionBuffer[0x1000], (void *)OBJ_VRAM0 + 0x800 + (GetSpriteTileStartByTag(2) * 32), size, 1); } void ShowLeftHeaderGfx(u32 menuGfxId, bool32 isMain, bool32 isOnRightSide) @@ -762,7 +762,7 @@ static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide) for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++) { - structPtr->leftHeaderSprites[i]->pos1.y = startY; + structPtr->leftHeaderSprites[i]->y = startY; MoveLeftHeader(structPtr->leftHeaderSprites[i], start, end, 12); } } @@ -779,7 +779,7 @@ static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide) for (i = 0; i < (s32)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++) { - structPtr->submenuLeftHeaderSprites[i]->pos1.y = startY; + structPtr->submenuLeftHeaderSprites[i]->y = startY; MoveLeftHeader(structPtr->submenuLeftHeaderSprites[i], start, end, 12); } } @@ -818,7 +818,7 @@ static void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide) static void MoveLeftHeader(struct Sprite *sprite, s32 startX, s32 endX, s32 duration) { - sprite->pos1.x = startX; + sprite->x = startX; sprite->data[0] = startX * 16; sprite->data[1] = (endX - startX) * 16 / duration; sprite->data[2] = duration; @@ -832,15 +832,15 @@ static void SpriteCB_MoveLeftHeader(struct Sprite *sprite) { sprite->data[2]--; sprite->data[0] += sprite->data[1]; - sprite->pos1.x = sprite->data[0] >> 4; - if (sprite->pos1.x < -16 || sprite->pos1.x > 256) + sprite->x = sprite->data[0] >> 4; + if (sprite->x < -16 || sprite->x > 256) sprite->invisible = TRUE; else sprite->invisible = FALSE; } else { - sprite->pos1.x = sprite->data[7]; + sprite->x = sprite->data[7]; sprite->callback = SpriteCallbackDummy; } } diff --git a/src/pokenav_match_call_2.c b/src/pokenav_match_call_2.c index adcd889d37..846171efd8 100755 --- a/src/pokenav_match_call_2.c +++ b/src/pokenav_match_call_2.c @@ -890,7 +890,7 @@ static void sub_81CBC1C(void) static void sub_81CBC38(int arg0) { u8 taskId = FindTaskIdByFunc(sub_81CBC64); - if (taskId != 0xFF) + if (taskId != TASK_NONE) gTasks[taskId].data[15] = arg0; } @@ -1061,22 +1061,22 @@ static void UpdateWindowsToShowCheckPage(struct Pokenav4Struct *state) static void sub_81CC034(struct Pokenav4Struct *state) { state->msgBoxWindowId = AddWindow(&sCallMsgBoxWindowTemplate); - sub_8197184(state->msgBoxWindowId, 1, 4); + LoadMatchCallWindowGfx(state->msgBoxWindowId, 1, 4); sub_81C7B40(); } static void DrawMsgBoxForMatchCallMsg(struct Pokenav4Struct *state) { struct Sprite *sprite; - sub_8197184(state->msgBoxWindowId, 1, 4); - sub_81971C4(state->msgBoxWindowId, 1, 4); + LoadMatchCallWindowGfx(state->msgBoxWindowId, 1, 4); + DrawMatchCallTextBoxBorder(state->msgBoxWindowId, 1, 4); FillWindowPixelBuffer(state->msgBoxWindowId, PIXEL_FILL(1)); PutWindowTilemap(state->msgBoxWindowId); CopyWindowToVram(state->msgBoxWindowId, 3); sprite = PauseSpinningPokenavSprite(); - sprite->pos1.x = 24; - sprite->pos1.y = 112; - sprite->pos2.y = 0; + sprite->x = 24; + sprite->y = 112; + sprite->y2 = 0; } static void DrawMsgBoxForCloseByMsg(struct Pokenav4Struct *state) @@ -1200,7 +1200,7 @@ static void CloseMatchCallSelectOptionsWindow(struct Pokenav4Struct *state) static void UpdateCursorGfxPos(struct Pokenav4Struct *state, int top) { - state->optionsCursorSprite->pos2.y = top * 16; + state->optionsCursorSprite->y2 = top * 16; } void SpriteCB_OptionsCursor(struct Sprite *sprite) @@ -1208,7 +1208,7 @@ void SpriteCB_OptionsCursor(struct Sprite *sprite) if (++sprite->data[0] > 3) { sprite->data[0] = 0; - sprite->pos2.x = (sprite->pos2.x + 1) & 0x7; + sprite->x2 = (sprite->x2 + 1) & 0x7; } } @@ -1251,16 +1251,16 @@ static void SpriteCB_TrainerPicSlideOnscreen(struct Sprite *sprite) case 0: if (CheckForSpaceForDma3Request(sprite->data[7]) != -1) { - sprite->pos2.x = -80; + sprite->x2 = -80; sprite->invisible = FALSE; sprite->data[0]++; } break; case 1: - sprite->pos2.x += 8; - if (sprite->pos2.x >= 0) + sprite->x2 += 8; + if (sprite->x2 >= 0) { - sprite->pos2.x = 0; + sprite->x2 = 0; sprite->callback = SpriteCallbackDummy; } break; @@ -1269,8 +1269,8 @@ static void SpriteCB_TrainerPicSlideOnscreen(struct Sprite *sprite) static void SpriteCB_TrainerPicSlideOffscreen(struct Sprite *sprite) { - sprite->pos2.x -= 8; - if (sprite->pos2.x <= -80) + sprite->x2 -= 8; + if (sprite->x2 <= -80) { sprite->invisible = TRUE; sprite->callback = SpriteCallbackDummy; diff --git a/src/pokenav_match_call_ui.c b/src/pokenav_match_call_ui.c index 2d89f9c39b..7e70a50c88 100644 --- a/src/pokenav_match_call_ui.c +++ b/src/pokenav_match_call_ui.c @@ -708,7 +708,7 @@ void sub_81C8C64(struct PokenavListMenuWindow *listWindow, u32 a1) void sub_81C8CB4(struct MatchCallWindowState *state, struct PokenavSub17Substruct *list) { - u8 colors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_RED}; + u8 colors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_RED}; list->unk34(state->unk10 + state->unkC * state->windowTopIndex, list->unkTextBuffer); list->unk38(list->listWindow.windowId, state->windowTopIndex, list->listWindow.unkA); @@ -890,7 +890,7 @@ void ToggleMatchCallArrows(struct PokenavSub17Substruct *list, bool32 shouldHide void SpriteCB_MatchCallRightArrow(struct Sprite *sprite) { struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST); - sprite->pos2.y = structPtr->unk888.selectedIndexOffset << 4; + sprite->y2 = structPtr->unk888.selectedIndexOffset << 4; } void SpriteCB_MatchCallDownArrow(struct Sprite *sprite) @@ -907,7 +907,7 @@ void SpriteCB_MatchCallDownArrow(struct Sprite *sprite) sprite->data[0] = 0; offset = (sprite->data[1] + 1) & 7; sprite->data[1] = offset; - sprite->pos2.y = offset; + sprite->y2 = offset; } } @@ -925,7 +925,7 @@ void SpriteCB_MatchCallUpArrow(struct Sprite *sprite) sprite->data[0] = 0; offset = (sprite->data[1] + 1) & 7; sprite->data[1] = offset; - sprite->pos2.y = -1 * offset; + sprite->y2 = -1 * offset; } } @@ -987,7 +987,7 @@ bool32 CopyPokenavListMenuTemplate(struct PokenavSub17Substruct *dest, const str window.baseBlock = a3 + 2; dest->listWindow.windowId = AddWindow(&window); - if (dest->listWindow.windowId == 0xFF) + if (dest->listWindow.windowId == WINDOW_NONE) return FALSE; dest->listWindow.unkA = 0; diff --git a/src/pokenav_menu_handler_2.c b/src/pokenav_menu_handler_2.c index 3fcd41dc9e..ff219b71e3 100644 --- a/src/pokenav_menu_handler_2.c +++ b/src/pokenav_menu_handler_2.c @@ -750,7 +750,7 @@ static void LoadPokenavOptionPalettes(void) { s32 i; - for (i = 0; i < NELEMS(sPokenavOptionsSpriteSheets); i++) + for (i = 0; i < ARRAY_COUNT(sPokenavOptionsSpriteSheets); i++) LoadCompressedSpriteSheet(&sPokenavOptionsSpriteSheets[i]); Pokenav_AllocAndLoadPalettes(sPokenavOptionsSpritePalettes); } @@ -781,7 +781,7 @@ static void CreateMenuOptionSprites(void) { u8 spriteId = CreateSprite(&sMenuOptionSpriteTemplate, 0x8c, 20 * i + 40, 3); unk->iconSprites[i][j] = &gSprites[spriteId]; - gSprites[spriteId].pos2.x = 32 * j; + gSprites[spriteId].x2 = 32 * j; } } } @@ -822,9 +822,9 @@ static void DrawOptionLabelGfx(const u16 *const *tiles, s32 yPos, s32 deltaY) unk->iconSprites[i][j]->oam.tileNum = (*tiles)[0] + sp04 + 8 * j; unk->iconSprites[i][j]->oam.paletteNum = IndexOfSpritePaletteTag((*tiles)[1] + 4); unk->iconSprites[i][j]->invisible = TRUE; - unk->iconSprites[i][j]->pos1.y = yPos; - unk->iconSprites[i][j]->pos1.x = 0x8c; - unk->iconSprites[i][j]->pos2.x = 32 * j; + unk->iconSprites[i][j]->y = yPos; + unk->iconSprites[i][j]->x = 0x8c; + unk->iconSprites[i][j]->x2 = 32 * j; } unk->iconVisible[i] = TRUE; } @@ -935,7 +935,7 @@ static void SetMenuOptionGfxParamsInactive(struct Sprite ** sprites, s32 x, s32 for (i = 0; i < 4; i++) { - (*sprites)->pos1.x = x; + (*sprites)->x = x; (*sprites)->data[0] = a3; (*sprites)->data[1] = 16 * (a2 - x) / a3; (*sprites)->data[2] = 16 * x; @@ -987,11 +987,11 @@ static void sub_81CA474(struct Sprite * sprite) if (sprite->data[0] != -1) { sprite->data[2] += sprite->data[1]; - sprite->pos1.x = sprite->data[2] >> 4; + sprite->x = sprite->data[2] >> 4; } else { - sprite->pos1.x = sprite->data[7]; + sprite->x = sprite->data[7]; sprite->callback = SpriteCallbackDummy; } } @@ -1007,8 +1007,8 @@ static void sub_81CA4AC(struct Sprite * sprite) StartSpriteAffineAnim(sprite, 1); sprite->data[1]++; sprite->data[2] = 0x100; - sprite->pos1.x += sprite->pos2.x; - sprite->pos2.x = 0; + sprite->x += sprite->x2; + sprite->x2 = 0; } else { @@ -1019,16 +1019,16 @@ static void sub_81CA4AC(struct Sprite * sprite) switch (sprite->data[7]) { case 0: - sprite->pos2.x = -r1 * 3; + sprite->x2 = -r1 * 3; break; case 1: - sprite->pos2.x = -r1; + sprite->x2 = -r1; break; case 2: - sprite->pos2.x = r1; + sprite->x2 = r1; break; case 3: - sprite->pos2.x = r1 * 3; + sprite->x2 = r1 * 3; break; } if (sprite->affineAnimEnded) @@ -1221,9 +1221,9 @@ static void SetupPokenavMenuScanlineEffects(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); + SetGpuRegBits(REG_OFFSET_WININ, WININ_WIN0_ALL); + SetGpuRegBits(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ); + SetGpuRegBits(REG_OFFSET_WIN0V, DISPLAY_HEIGHT); ScanlineEffect_Stop(); SetMenuOptionGlow(); ScanlineEffect_SetParams(sPokenavMainMenuScanlineEffectParams); diff --git a/src/pokenav_region_map.c b/src/pokenav_region_map.c index 2dd2e44088..3c210ed97a 100755 --- a/src/pokenav_region_map.c +++ b/src/pokenav_region_map.c @@ -327,7 +327,9 @@ static u32 LoopedTask_OpenRegionMap(s32 taskState) } else { - sub_8123030(RGB_BLACK, 6); + // Dim the region map when zoom is disabled + // (when the player is off the map) + BlendRegionMap(RGB_BLACK, 6); } return LT_INC_AND_PAUSE; case 2: @@ -725,7 +727,7 @@ static void UpdateCityZoomTextPosition(void) struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM); int y = 132 - (GetBgY(1) >> 8); for (i = 0; i < (int)ARRAY_COUNT(state->cityZoomTextSprites); i++) - state->cityZoomTextSprites[i]->pos1.y = y; + state->cityZoomTextSprites[i]->y = y; } static void SetCityZoomTextInvisibility(bool32 invisible) diff --git a/src/pokenav_ribbons_1.c b/src/pokenav_ribbons_1.c index 9c171dd45e..69326ad23b 100644 --- a/src/pokenav_ribbons_1.c +++ b/src/pokenav_ribbons_1.c @@ -44,7 +44,7 @@ struct PokenavSub10 static u32 HandleRibbonsMonListInput_WaitListInit(struct PokenavSub9 *structPtr); static u32 HandleRibbonsMonListInput(struct PokenavSub9 *structPtr); static u32 RibbonsMonMenu_ReturnToMainMenu(struct PokenavSub9 *structPtr); -static u32 sub_81CFB10(struct PokenavSub9 *structPtr); +static u32 RibbonsMonMenu_ToSummaryScreen(struct PokenavSub9 *structPtr); static u32 BuildPartyMonRibbonList(s32 state); static u32 InitBoxMonRibbonList(s32 state); static u32 BuildBoxMonRibbonList(s32 state); @@ -71,10 +71,10 @@ static const LoopedTask sMonRibbonListLoopTaskFuncs[] = BuildBoxMonRibbonList }; -static const u16 sMonRibbonListFramePal[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal"); -static const u32 sMonRibbonListFrameTiles[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz"); -static const u32 sMonRibbonListFrameTilemap[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz"); -static const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal"); +static const u16 sMonRibbonListFramePal[] = INCBIN_U16("graphics/pokenav/ribbons/list_bg.gbapal"); +static const u32 sMonRibbonListFrameTiles[] = INCBIN_U32("graphics/pokenav/ribbons/list_bg.4bpp.lz"); +static const u32 sMonRibbonListFrameTilemap[] = INCBIN_U32("graphics/pokenav/ribbons/list_bg.bin.lz"); +static const u16 sMonRibbonListUi_Pal[] = INCBIN_U16("graphics/pokenav/ribbons/list_ui.gbapal"); static const struct BgTemplate sMonRibbonListBgTemplates[] = { @@ -119,8 +119,8 @@ static const struct WindowTemplate sRibbonsMonListWindowTemplate = .baseBlock = 20 }; -static const u8 sText_MaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); -static const u8 sText_FemaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +static const u8 sText_MaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GRAY}{WHITE}{LIGHT_GRAY}"); +static const u8 sText_FemaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GRAY}{WHITE}{LIGHT_GRAY}"); static const u8 sText_NoGenderSymbol[] = _("{UNK_SPACER}"); bool32 PokenavCallback_Init_MonRibbonList(void) @@ -192,7 +192,7 @@ static u32 HandleRibbonsMonListInput(struct PokenavSub9 *structPtr) { structPtr->monList->currIndex = GetSelectedPokenavListIndex(); structPtr->saveMonList = 1; - structPtr->callback = sub_81CFB10; + structPtr->callback = RibbonsMonMenu_ToSummaryScreen; return RIBBONS_MON_LIST_FUNC_OPEN_RIBBONS_SUMMARY; } return RIBBONS_MON_LIST_FUNC_NONE; @@ -203,7 +203,7 @@ static u32 RibbonsMonMenu_ReturnToMainMenu(struct PokenavSub9 *structPtr) return POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS; } -static u32 sub_81CFB10(struct PokenavSub9 *structPtr) +static u32 RibbonsMonMenu_ToSummaryScreen(struct PokenavSub9 *structPtr) { return POKENAV_RIBBONS_SUMMARY_SCREEN; } @@ -342,8 +342,8 @@ static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *it structPtr->monList->listCount++; } -//unused -static bool32 Unused_PlayerHasRibbonsMon(void) +// Unused +static bool32 PlayerHasRibbonsMon(void) { s32 i, j; @@ -427,7 +427,7 @@ static u32 LoopedTask_OpenRibbonsMonList(s32 state) switch (state) { case 0: - InitBgTemplates(sMonRibbonListBgTemplates, NELEMS(sMonRibbonListBgTemplates)); + InitBgTemplates(sMonRibbonListBgTemplates, ARRAY_COUNT(sMonRibbonListBgTemplates)); DecompressAndCopyTileDataToVram(1, sMonRibbonListFrameTiles, 0, 0, 0); SetBgTilemapBuffer(1, monMenu->buff); CopyToBgTilemapBuffer(1, sMonRibbonListFrameTilemap, 0, 0); @@ -446,7 +446,7 @@ static u32 LoopedTask_OpenRibbonsMonList(s32 state) case 2: if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; - CopyPaletteIntoBufferUnfaded(gUnknown_08623790, 0x20, 0x20); + CopyPaletteIntoBufferUnfaded(sMonRibbonListUi_Pal, 0x20, 0x20); InitMonRibbonPokenavListMenuTemplate(); return LT_INC_AND_PAUSE; case 3: diff --git a/src/pokenav_ribbons_2.c b/src/pokenav_ribbons_2.c index 203aa19e5e..a7644fdaaf 100644 --- a/src/pokenav_ribbons_2.c +++ b/src/pokenav_ribbons_2.c @@ -16,24 +16,41 @@ enum { RIBBONS_SUMMARY_FUNC_NONE, - RIBBONS_SUMMARY_FUNC_MOVED_CURSOR, + RIBBONS_SUMMARY_FUNC_SWITCH_MONS, RIBBONS_SUMMARY_FUNC_SELECT_RIBBON, RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE, RIBBONS_SUMMARY_FUNC_EXPANDED_CANCEL, RIBBONS_SUMMARY_FUNC_EXIT, }; +#define GFXTAG_RIBBON_ICONS_BIG 9 + +#define PALTAG_RIBBON_ICONS_1 15 +#define PALTAG_RIBBON_ICONS_2 16 +#define PALTAG_RIBBON_ICONS_3 17 +#define PALTAG_RIBBON_ICONS_4 18 +#define PALTAG_RIBBON_ICONS_5 19 + +#define RIBBONS_PER_ROW 9 +#define GIFT_RIBBON_ROW (1 + (FIRST_GIFT_RIBBON / RIBBONS_PER_ROW)) // Gift ribbons start on a new row after the normal ribbons. +#define GIFT_RIBBON_START_POS (RIBBONS_PER_ROW * GIFT_RIBBON_ROW) + +#define MON_SPRITE_X_ON 40 +#define MON_SPRITE_X_OFF -32 +#define MON_SPRITE_Y 104 + struct PokenavSub13 { - u8 filler0[0x8]; + u8 unused1[8]; struct PokenavSub18 *monList; - u16 field_C; - u16 field_E; - u16 field_10; - u16 field_12; - u32 field_14[25]; - u32 field_78[8]; - u32 (*callback)(struct PokenavSub13 *structPtr); + u16 selectedPos; + u16 normalRibbonLastRowStart; + u16 numNormalRibbons; + u16 numGiftRibbons; + u32 ribbonIds[FIRST_GIFT_RIBBON]; + u32 giftRibbonIds[NUM_GIFT_RIBBONS]; + u32 unused2; + u32 (*callback)(struct PokenavSub13 *); }; struct PokenavSub14 @@ -43,99 +60,99 @@ struct PokenavSub14 u16 nameWindowId; u16 ribbonCountWindowId; u16 listIdxWindowId; - u16 field_E; + u16 unusedWindowId; u16 monSpriteId; - struct Sprite *field_14; - u32 filler; + struct Sprite *bigRibbonSprite; + u32 unused; u8 tilemapBuffers[2][BG_SCREEN_SIZE]; }; -static u32 gUnknown_030012C0; -static u32 gUnknown_030012C4; +// Used for the initial drawing of the ribbons +static u32 sRibbonDraw_Total; +static u32 sRibbonDraw_Current; -void PrintCurrentMonRibbonCount(struct PokenavSub14 *structPtr); -void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *structPtr); -void PrintRibbonsMonListIndex(struct PokenavSub14 *structPtr); -void sub_81D1500(struct PokenavSub14 *structPtr); -void sub_81D0EFC(struct PokenavSub14 *structPtr); -void ResetSpritesAndDrawRibbonsMonFrontPic(struct PokenavSub14 *structPtr); -void AddRibbonListIndexWindow(struct PokenavSub14 *structPtr); -void DestroyRibbonsMonFrontPic(struct PokenavSub14 *structPtr); -void sub_81D11D8(struct PokenavSub14 *structPtr); -void sub_81D11FC(struct PokenavSub14 *structPtr); -void AddRibbonCountWindow(struct PokenavSub14 *structPtr); -void sub_81D1448(struct PokenavSub14 *structPtr); -void sub_81D13FC(struct PokenavSub14 *structPtr); -void AddRibbonSummaryMonNameWindow(struct PokenavSub14 *structPtr); -void sub_81D12D8(struct PokenavSub14 *structPtr); -bool32 sub_81D1524(struct PokenavSub14 *structPtr); -bool32 sub_81D1234(struct PokenavSub14 *structPtr); -void sub_81D0814(struct PokenavSub13 *structPtr); -u32 HandleExpandedRibbonInput(struct PokenavSub13 *structPtr); -u32 RibbonsSummaryHandleInput(struct PokenavSub13 *structPtr); -u32 ReturnToRibbonsListFromSummary(struct PokenavSub13 *structPtr); -bool32 sub_81D05DC(struct PokenavSub13 *structPtr); -bool32 sub_81D0688(struct PokenavSub13 *structPtr); -bool32 sub_81D0664(struct PokenavSub13 *structPtr); -bool32 sub_81D061C(struct PokenavSub13 *structPtr); -bool32 sub_81D0688(struct PokenavSub13 *structPtr); -bool32 GetCurrentLoopedTaskActive(void); -u32 GetRibbonsSummaryCurrentIndex(void); -u32 GetRibbonsSummaryMonListCount(void); -u16 DrawRibbonsMonFrontPic(s32 unused0, s32 unused1); -void sub_81D1258(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3); -void sub_81D1284(struct Sprite *sprite); -void sub_81D1350(void); -void sub_81D13BC(u16 *dst, u32 id); -void sub_81D1370(u32 arg0, u32 id); -void sub_81D1538(struct Sprite *sprite); -u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state); -u32 LoopedTask_UpdateRibbonsSummaryInfo(s32 state); -u32 LoopedTask_ExpandSelectedRibbon(s32 state); -u32 LoopedTask_MoveRibbonsCursorExpanded(s32 state); -u32 LoopedTask_ShrinkExpandedRibbon(s32 state); -u32 LoopedTask_ExitRibbonsSummaryMenu(s32 state); +static void PrintCurrentMonRibbonCount(struct PokenavSub14 *); +static void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *); +static void PrintRibbonsMonListIndex(struct PokenavSub14 *); +static void ZoomOutSelectedRibbon(struct PokenavSub14 *); +static void UpdateAndZoomInSelectedRibbon(struct PokenavSub14 *); +static void PrintRibbonNameAndDescription(struct PokenavSub14 *); +static void ResetSpritesAndDrawMonFrontPic(struct PokenavSub14 *); +static void AddRibbonListIndexWindow(struct PokenavSub14 *); +static void DestroyRibbonsMonFrontPic(struct PokenavSub14 *); +static void SlideMonSpriteOff(struct PokenavSub14 *); +static void SlideMonSpriteOn(struct PokenavSub14 *); +static void AddRibbonCountWindow(struct PokenavSub14 *); +static void CreateBigRibbonSprite(struct PokenavSub14 *); +static void AddRibbonSummaryMonNameWindow(struct PokenavSub14 *); +static void DrawAllRibbonsSmall(struct PokenavSub14 *); +static bool32 IsRibbonAnimating(struct PokenavSub14 *); +static bool32 IsMonSpriteAnimating(struct PokenavSub14 *); +static void GetMonRibbons(struct PokenavSub13 *); +static u32 HandleExpandedRibbonInput(struct PokenavSub13 *); +static u32 RibbonsSummaryHandleInput(struct PokenavSub13 *); +static u32 ReturnToRibbonsListFromSummary(struct PokenavSub13 *); +static bool32 TrySelectRibbonUp(struct PokenavSub13 *); +static bool32 TrySelectRibbonRight(struct PokenavSub13 *); +static bool32 TrySelectRibbonLeft(struct PokenavSub13 *); +static bool32 TrySelectRibbonDown(struct PokenavSub13 *); +static bool32 GetCurrentLoopedTaskActive(void); +static u32 GetRibbonsSummaryCurrentIndex(void); +static u32 GetRibbonsSummaryMonListCount(void); +static u16 DrawRibbonsMonFrontPic(s32, s32); +static void StartMonSpriteSlide(struct Sprite *, s32, s32, s32); +static void SpriteCB_MonSpriteSlide(struct Sprite *); +static void ClearRibbonsSummaryBg(void); +static void BufferSmallRibbonGfxData(u16 *, u32); +static void DrawRibbonSmall(u32, u32); +static void SpriteCB_WaitForRibbonAnimation(struct Sprite *); +static u32 LoopedTask_OpenRibbonsSummaryMenu(s32); +static u32 LoopedTask_SwitchRibbonsSummaryMon(s32); +static u32 LoopedTask_ExpandSelectedRibbon(s32); +static u32 LoopedTask_MoveRibbonsCursorExpanded(s32); +static u32 LoopedTask_ShrinkExpandedRibbon(s32); +static u32 LoopedTask_ExitRibbonsSummaryMenu(s32); struct { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; -} static const gUnknown_086237F8[] = + u8 numBits; // The number of bits needed to represent numRibbons + u8 numRibbons; // Never read. The contest ribbons have 4 (1 for each rank), the rest are just 1 ribbon + u8 ribbonId; + bool8 isGiftRibbon; +} static const sRibbonData[] = { - {1, 1, 0, 0}, - {3, 4, 1, 0}, - {3, 4, 5, 0}, - {3, 4, 9, 0}, - {3, 4, 13, 0}, - {3, 4, 17, 0}, - {1, 1, 21, 0}, - {1, 1, 22, 0}, - {1, 1, 23, 0}, - {1, 1, 24, 0}, - {1, 1, 25, 1}, - {1, 1, 26, 1}, - {1, 1, 27, 1}, - {1, 1, 28, 1}, - {1, 1, 29, 1}, - {1, 1, 30, 1}, - {1, 1, 31, 1} + {1, 1, CHAMPION_RIBBON, FALSE}, + {3, 4, COOL_RIBBON_NORMAL, FALSE}, + {3, 4, BEAUTY_RIBBON_NORMAL, FALSE}, + {3, 4, CUTE_RIBBON_NORMAL, FALSE}, + {3, 4, SMART_RIBBON_NORMAL, FALSE}, + {3, 4, TOUGH_RIBBON_NORMAL, FALSE}, + {1, 1, WINNING_RIBBON, FALSE}, + {1, 1, VICTORY_RIBBON, FALSE}, + {1, 1, ARTIST_RIBBON, FALSE}, + {1, 1, EFFORT_RIBBON, FALSE}, + {1, 1, MARINE_RIBBON, TRUE}, + {1, 1, LAND_RIBBON, TRUE}, + {1, 1, SKY_RIBBON, TRUE}, + {1, 1, COUNTRY_RIBBON, TRUE}, + {1, 1, NATIONAL_RIBBON, TRUE}, + {1, 1, EARTH_RIBBON, TRUE}, + {1, 1, WORLD_RIBBON, TRUE} }; #include "data/text/ribbon_descriptions.h" #include "data/text/gift_ribbon_descriptions.h" -static const u16 gUnknown_08623FF8[] = INCBIN_U16("graphics/pokenav/ribbons_icon1.gbapal"); -static const u16 gUnknown_08624018[] = INCBIN_U16("graphics/pokenav/ribbons_icon2.gbapal"); -static const u16 gUnknown_08624038[] = INCBIN_U16("graphics/pokenav/ribbons_icon3.gbapal"); -static const u16 gUnknown_08624058[] = INCBIN_U16("graphics/pokenav/ribbons_icon4.gbapal"); -static const u16 gUnknown_08624078[] = INCBIN_U16("graphics/pokenav/ribbons_icon5.gbapal"); -static const u16 gUnknown_08624098[] = INCBIN_U16("graphics/pokenav/8624098.gbapal"); -static const u32 sRibbonIconsSmall_Gfx[] = INCBIN_U32("graphics/pokenav/ribbons_icon.4bpp.lz"); -static const u32 sRibbonIconsBig_Gfx[] = INCBIN_U32("graphics/pokenav/ribbons_icon_big.4bpp.lz"); +static const u16 sRibbonIcons1_Pal[] = INCBIN_U16("graphics/pokenav/ribbons/icons1.gbapal"); +static const u16 sRibbonIcons2_Pal[] = INCBIN_U16("graphics/pokenav/ribbons/icons2.gbapal"); +static const u16 sRibbonIcons3_Pal[] = INCBIN_U16("graphics/pokenav/ribbons/icons3.gbapal"); +static const u16 sRibbonIcons4_Pal[] = INCBIN_U16("graphics/pokenav/ribbons/icons4.gbapal"); +static const u16 sRibbonIcons5_Pal[] = INCBIN_U16("graphics/pokenav/ribbons/icons5.gbapal"); +static const u16 sMonInfo_Pal[] = INCBIN_U16("graphics/pokenav/ribbons/mon_info.gbapal"); // palette for Pokémon's name/gender/level text +static const u32 sRibbonIconsSmall_Gfx[] = INCBIN_U32("graphics/pokenav/ribbons/icons.4bpp.lz"); +static const u32 sRibbonIconsBig_Gfx[] = INCBIN_U32("graphics/pokenav/ribbons/icons_big.4bpp.lz"); -static const struct BgTemplate gUnknown_08624B98[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 1, @@ -160,14 +177,13 @@ static const struct BgTemplate gUnknown_08624B98[] = static const LoopedTask sRibbonsSummaryMenuLoopTaskFuncs[] = { [RIBBONS_SUMMARY_FUNC_NONE] = NULL, - [RIBBONS_SUMMARY_FUNC_MOVED_CURSOR] = LoopedTask_UpdateRibbonsSummaryInfo, + [RIBBONS_SUMMARY_FUNC_SWITCH_MONS] = LoopedTask_SwitchRibbonsSummaryMon, [RIBBONS_SUMMARY_FUNC_SELECT_RIBBON] = LoopedTask_ExpandSelectedRibbon, [RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE] = LoopedTask_MoveRibbonsCursorExpanded, [RIBBONS_SUMMARY_FUNC_EXPANDED_CANCEL] = LoopedTask_ShrinkExpandedRibbon, [RIBBONS_SUMMARY_FUNC_EXIT] = LoopedTask_ExitRibbonsSummaryMenu }; -// code bool32 PokenavCallback_Init_RibbonsSummaryMenu(void) { struct PokenavSub13 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST, sizeof(struct PokenavSub13)); @@ -178,7 +194,7 @@ bool32 PokenavCallback_Init_RibbonsSummaryMenu(void) if (structPtr->monList == NULL) return FALSE; - sub_81D0814(structPtr); + GetMonRibbons(structPtr); structPtr->callback = RibbonsSummaryHandleInput; gKeyRepeatContinueDelay = 3; gKeyRepeatStartDelay = 10; @@ -196,153 +212,170 @@ void FreeRibbonsSummaryScreen1(void) FreePokenavSubstruct(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); } -u32 RibbonsSummaryHandleInput(struct PokenavSub13 *structPtr) +// Handles input when a specific ribbon is not currently selected +static u32 RibbonsSummaryHandleInput(struct PokenavSub13 *structPtr) { + // Handle Up/Down movement to select a new Pokémon to show ribbons for if (JOY_REPEAT(DPAD_UP) && structPtr->monList->currIndex != 0) { structPtr->monList->currIndex--; - structPtr->field_C = 0; - sub_81D0814(structPtr); - return RIBBONS_SUMMARY_FUNC_MOVED_CURSOR; + structPtr->selectedPos = 0; + GetMonRibbons(structPtr); + return RIBBONS_SUMMARY_FUNC_SWITCH_MONS; } if (JOY_REPEAT(DPAD_DOWN) && structPtr->monList->currIndex < structPtr->monList->listCount - 1) { structPtr->monList->currIndex++; - structPtr->field_C = 0; - sub_81D0814(structPtr); - return RIBBONS_SUMMARY_FUNC_MOVED_CURSOR; + structPtr->selectedPos = 0; + GetMonRibbons(structPtr); + return RIBBONS_SUMMARY_FUNC_SWITCH_MONS; } + if (JOY_NEW(A_BUTTON)) { + // Enter ribbon selection structPtr->callback = HandleExpandedRibbonInput; return RIBBONS_SUMMARY_FUNC_SELECT_RIBBON; } if (JOY_NEW(B_BUTTON)) { + // Exit ribbon summary menu structPtr->callback = ReturnToRibbonsListFromSummary; return RIBBONS_SUMMARY_FUNC_EXIT; } return RIBBONS_SUMMARY_FUNC_NONE; } -u32 HandleExpandedRibbonInput(struct PokenavSub13 *structPtr) +// Handles input when a ribbon is selected +static u32 HandleExpandedRibbonInput(struct PokenavSub13 *structPtr) { - if (JOY_REPEAT(DPAD_UP) && sub_81D05DC(structPtr)) + // Handle movement while a ribbon is selected + if (JOY_REPEAT(DPAD_UP) && TrySelectRibbonUp(structPtr)) return RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE; - if (JOY_REPEAT(DPAD_DOWN) && sub_81D061C(structPtr)) + if (JOY_REPEAT(DPAD_DOWN) && TrySelectRibbonDown(structPtr)) return RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE; - if (JOY_REPEAT(DPAD_LEFT) && sub_81D0664(structPtr)) + if (JOY_REPEAT(DPAD_LEFT) && TrySelectRibbonLeft(structPtr)) return RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE; - if (JOY_REPEAT(DPAD_RIGHT) && sub_81D0688(structPtr)) + if (JOY_REPEAT(DPAD_RIGHT) && TrySelectRibbonRight(structPtr)) return RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE; + if (JOY_NEW(B_BUTTON)) { + // Exit ribbon selection structPtr->callback = RibbonsSummaryHandleInput; return RIBBONS_SUMMARY_FUNC_EXPANDED_CANCEL; } return RIBBONS_SUMMARY_FUNC_NONE; } -u32 ReturnToRibbonsListFromSummary(struct PokenavSub13 *structPtr) +static u32 ReturnToRibbonsListFromSummary(struct PokenavSub13 *structPtr) { return POKENAV_RIBBONS_RETURN_TO_MON_LIST; } -bool32 sub_81D05DC(struct PokenavSub13 *structPtr) +static bool32 TrySelectRibbonUp(struct PokenavSub13 *structPtr) { - if (structPtr->field_C < 25) + if (structPtr->selectedPos < FIRST_GIFT_RIBBON) { - if (structPtr->field_C <= 8) + // In normal ribbons, try to move up a row + if (structPtr->selectedPos < RIBBONS_PER_ROW) return FALSE; - structPtr->field_C -= 9; + structPtr->selectedPos -= RIBBONS_PER_ROW; return TRUE; } - if (structPtr->field_10 != 0) + if (structPtr->numNormalRibbons != 0) { - u32 var = structPtr->field_C - 27; - structPtr->field_C = var + structPtr->field_E; - if (structPtr->field_C >= structPtr->field_10) - structPtr->field_C = structPtr->field_10 - 1; + // In gift ribbons, try to move up into normal ribbons + // If there's > 1 row of gift ribbons (not normally possible) + // it's impossible to move up between them + u32 ribbonPos = structPtr->selectedPos - GIFT_RIBBON_START_POS; + structPtr->selectedPos = ribbonPos + structPtr->normalRibbonLastRowStart; + if (structPtr->selectedPos >= structPtr->numNormalRibbons) + structPtr->selectedPos = structPtr->numNormalRibbons - 1; return TRUE; } return FALSE; } -bool32 sub_81D061C(struct PokenavSub13 *structPtr) +static bool32 TrySelectRibbonDown(struct PokenavSub13 *structPtr) { - if (structPtr->field_C >= 25) + if (structPtr->selectedPos >= FIRST_GIFT_RIBBON) return FALSE; - if (structPtr->field_C < structPtr->field_E) + if (structPtr->selectedPos < structPtr->normalRibbonLastRowStart) { - structPtr->field_C += 9; - if (structPtr->field_C >= structPtr->field_10) - structPtr->field_C = structPtr->field_10 - 1; + // Not in last row of normal ribbons, advance to next row + structPtr->selectedPos += RIBBONS_PER_ROW; + if (structPtr->selectedPos >= structPtr->numNormalRibbons) + structPtr->selectedPos = structPtr->numNormalRibbons - 1; return TRUE; } - if (structPtr->field_12 != 0) + if (structPtr->numGiftRibbons != 0) { - int var = structPtr->field_C - structPtr->field_E; - if (var >= structPtr->field_12) - var = structPtr->field_12 - 1; + // In/beyond last of row of normal ribbons and gift ribbons present, move down to gift ribbon row + int ribbonPos = structPtr->selectedPos - structPtr->normalRibbonLastRowStart; + if (ribbonPos >= structPtr->numGiftRibbons) + ribbonPos = structPtr->numGiftRibbons - 1; - structPtr->field_C = var + 27; + structPtr->selectedPos = ribbonPos + GIFT_RIBBON_START_POS; return TRUE; } return FALSE; } -bool32 sub_81D0664(struct PokenavSub13 *structPtr) +static bool32 TrySelectRibbonLeft(struct PokenavSub13 *structPtr) { - u16 var = structPtr->field_C % 9; - if (var != 0) + u16 column = structPtr->selectedPos % RIBBONS_PER_ROW; + if (column != 0) { - structPtr->field_C--; + structPtr->selectedPos--; return TRUE; } return FALSE; } -bool32 sub_81D0688(struct PokenavSub13 *structPtr) +static bool32 TrySelectRibbonRight(struct PokenavSub13 *structPtr) { - int r1 = structPtr->field_C % 9; + int column = structPtr->selectedPos % RIBBONS_PER_ROW; - if (r1 >= 8) + if (column >= RIBBONS_PER_ROW - 1) return FALSE; - if (structPtr->field_C <= 26) + if (structPtr->selectedPos < GIFT_RIBBON_START_POS) { - if (structPtr->field_C < structPtr->field_10 - 1) + // Move right in normal ribbon row + if (structPtr->selectedPos < structPtr->numNormalRibbons - 1) { - structPtr->field_C++; + structPtr->selectedPos++; return TRUE; } } else { - if (r1 < structPtr->field_12 - 1) + // Move right in gift ribbon row + if (column < structPtr->numGiftRibbons - 1) { - structPtr->field_C++; + structPtr->selectedPos++; return TRUE; } } return FALSE; } -u32 GetRibbonsSummaryCurrentIndex(void) +static u32 GetRibbonsSummaryCurrentIndex(void) { struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); return structPtr->monList->currIndex; } -u32 GetRibbonsSummaryMonListCount(void) +static u32 GetRibbonsSummaryMonListCount(void) { struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); return structPtr->monList->listCount; } -static void GetCurrMonInfo1(u8 *nick, u8 *level, u8 *gender) +static void GetMonNicknameLevelGender(u8 *nick, u8 *level, u8 *gender) { struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); struct PokenavSub18 *mons = structPtr->monList; @@ -350,6 +383,7 @@ static void GetCurrMonInfo1(u8 *nick, u8 *level, u8 *gender) if (monInfo->boxId == TOTAL_BOXES_COUNT) { + // Get info for party mon struct Pokemon *mon = &gPlayerParty[monInfo->monId]; GetMonData(mon, MON_DATA_NICKNAME, nick); *level = GetLevelFromMonExp(mon); @@ -357,6 +391,7 @@ static void GetCurrMonInfo1(u8 *nick, u8 *level, u8 *gender) } else { + // Get info for PC box mon struct BoxPokemon *boxMon = GetBoxedMonPtr(monInfo->boxId, monInfo->monId); *gender = GetBoxMonGender(boxMon); *level = GetLevelFromBoxMonExp(boxMon); @@ -365,7 +400,7 @@ static void GetCurrMonInfo1(u8 *nick, u8 *level, u8 *gender) StringGetEnd10(nick); } -static void GetCurrMonInfo2(u16 *species, u32 *personality, u32 *otId) +static void GetMonSpeciesPersonalityOtId(u16 *species, u32 *personality, u32 *otId) { struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); struct PokenavSub18 *mons = structPtr->monList; @@ -373,6 +408,7 @@ static void GetCurrMonInfo2(u16 *species, u32 *personality, u32 *otId) if (monInfo->boxId == TOTAL_BOXES_COUNT) { + // Get info for party mon struct Pokemon *mon = &gPlayerParty[monInfo->monId]; *species = GetMonData(mon, MON_DATA_SPECIES); *personality = GetMonData(mon, MON_DATA_PERSONALITY); @@ -380,6 +416,7 @@ static void GetCurrMonInfo2(u16 *species, u32 *personality, u32 *otId) } else { + // Get info for PC box mon struct BoxPokemon *boxMon = GetBoxedMonPtr(monInfo->boxId, monInfo->monId); *species = GetBoxMonData(boxMon, MON_DATA_SPECIES); *personality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); @@ -399,76 +436,79 @@ static u32 GetCurrMonRibbonCount(void) return GetBoxMonDataAt(monInfo->boxId, monInfo->monId, MON_DATA_RIBBON_COUNT); } -void sub_81D0814(struct PokenavSub13 *structPtr) +static void GetMonRibbons(struct PokenavSub13 *structPtr) { - u32 ribbons; + u32 ribbonFlags; s32 i, j; struct PokenavSub18 *mons = structPtr->monList; struct PokenavMonList *monInfo = &mons->monData[mons->currIndex]; if (monInfo->boxId == TOTAL_BOXES_COUNT) - ribbons = GetMonData(&gPlayerParty[monInfo->monId], MON_DATA_RIBBONS); + ribbonFlags = GetMonData(&gPlayerParty[monInfo->monId], MON_DATA_RIBBONS); else - ribbons = GetBoxMonDataAt(monInfo->boxId, monInfo->monId, MON_DATA_RIBBONS); + ribbonFlags = GetBoxMonDataAt(monInfo->boxId, monInfo->monId, MON_DATA_RIBBONS); - structPtr->field_10 = 0; - structPtr->field_12 = 0; - for (i = 0; i < ARRAY_COUNT(gUnknown_086237F8); i++) + structPtr->numNormalRibbons = 0; + structPtr->numGiftRibbons = 0; + for (i = 0; i < ARRAY_COUNT(sRibbonData); i++) { - s32 r4 = ((1 << gUnknown_086237F8[i].unk0) - 1) & ribbons; - if (gUnknown_086237F8[i].unk3 == 0) + // For all non-contest ribbons, numRibbons will be 1 if they have it, 0 if they don't + // For contest ribbons, numRibbons will be 0-4 + s32 numRibbons = ((1 << sRibbonData[i].numBits) - 1) & ribbonFlags; + if (!sRibbonData[i].isGiftRibbon) { - for (j = 0; j < r4; j++) - structPtr->field_14[structPtr->field_10++] = gUnknown_086237F8[i].unk2 + j; + for (j = 0; j < numRibbons; j++) + structPtr->ribbonIds[structPtr->numNormalRibbons++] = sRibbonData[i].ribbonId + j; } else { - for (j = 0; j < r4; j++) - structPtr->field_78[structPtr->field_12++] = gUnknown_086237F8[i].unk2 + j; + for (j = 0; j < numRibbons; j++) + structPtr->giftRibbonIds[structPtr->numGiftRibbons++] = sRibbonData[i].ribbonId + j; } - ribbons >>= gUnknown_086237F8[i].unk0; + ribbonFlags >>= sRibbonData[i].numBits; } - if (structPtr->field_10 != 0) + if (structPtr->numNormalRibbons != 0) { - structPtr->field_E = ((structPtr->field_10 - 1) / 9) * 9; - structPtr->field_C = 0; + structPtr->normalRibbonLastRowStart = ((structPtr->numNormalRibbons - 1) / RIBBONS_PER_ROW) * RIBBONS_PER_ROW; + structPtr->selectedPos = 0; } else { - structPtr->field_E = 0; - structPtr->field_C = 27; + // There are no normal ribbons, move cursor to first gift ribbon + structPtr->normalRibbonLastRowStart = 0; + structPtr->selectedPos = GIFT_RIBBON_START_POS; } } -u32 *sub_81D0914(u32 *arg0) +static u32 *GetNormalRibbonIds(u32 *size) { struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); - *arg0 = structPtr->field_10; - return structPtr->field_14; + *size = structPtr->numNormalRibbons; + return structPtr->ribbonIds; } -u32 *sub_81D092C(u32 *arg0) +static u32 *GetGiftRibbonIds(u32 *size) { struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); - *arg0 = structPtr->field_12; - return structPtr->field_78; + *size = structPtr->numGiftRibbons; + return structPtr->giftRibbonIds; } -u16 sub_81D0944(void) +static u16 GetSelectedPosition(void) { struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); - return structPtr->field_C; + return structPtr->selectedPos; } -u32 sub_81D0954(void) +static u32 GetRibbonId(void) { struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); - int var = structPtr->field_C; - if (var <= 24) - return structPtr->field_14[var]; + int ribbonPos = structPtr->selectedPos; + if (ribbonPos < FIRST_GIFT_RIBBON) + return structPtr->ribbonIds[ribbonPos]; else - return structPtr->field_78[var - 27]; + return structPtr->giftRibbonIds[ribbonPos - GIFT_RIBBON_START_POS]; } bool32 OpenRibbonsSummaryMenu(void) @@ -501,36 +541,38 @@ void FreeRibbonsSummaryScreen2(void) RemoveWindow(structPtr->ribbonCountWindowId); RemoveWindow(structPtr->nameWindowId); RemoveWindow(structPtr->listIdxWindowId); - RemoveWindow(structPtr->field_E); +#ifndef BUGFIX + RemoveWindow(structPtr->unusedWindowId); // Removing window, but window id is never set +#endif DestroyRibbonsMonFrontPic(structPtr); - FreeSpriteTilesByTag(9); - FreeSpritePaletteByTag(0xF); - FreeSpritePaletteByTag(0x10); - FreeSpritePaletteByTag(0x11); - FreeSpritePaletteByTag(0x12); - FreeSpritePaletteByTag(0x13); - FreeSpriteOamMatrix(structPtr->field_14); - DestroySprite(structPtr->field_14); + FreeSpriteTilesByTag(GFXTAG_RIBBON_ICONS_BIG); + FreeSpritePaletteByTag(PALTAG_RIBBON_ICONS_1); + FreeSpritePaletteByTag(PALTAG_RIBBON_ICONS_2); + FreeSpritePaletteByTag(PALTAG_RIBBON_ICONS_3); + FreeSpritePaletteByTag(PALTAG_RIBBON_ICONS_4); + FreeSpritePaletteByTag(PALTAG_RIBBON_ICONS_5); + FreeSpriteOamMatrix(structPtr->bigRibbonSprite); + DestroySprite(structPtr->bigRibbonSprite); FreePokenavSubstruct(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU); } -bool32 GetCurrentLoopedTaskActive(void) +static bool32 GetCurrentLoopedTaskActive(void) { struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU); return IsLoopedTaskActive(structPtr->loopedTaskId); } -u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) +static u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) { struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU); switch (state) { case 0: - InitBgTemplates(gUnknown_08624B98, ARRAY_COUNT(gUnknown_08624B98)); - DecompressAndCopyTileDataToVram(2, gUnknown_08DDE030, 0, 0, 0); + InitBgTemplates(sBgTemplates, ARRAY_COUNT(sBgTemplates)); + DecompressAndCopyTileDataToVram(2, gPokenavRibbonsSummaryBg_Gfx, 0, 0, 0); SetBgTilemapBuffer(2, structPtr->tilemapBuffers[0]); - CopyToBgTilemapBuffer(2, gUnknown_08DDE12C, 0, 0); - CopyPaletteIntoBufferUnfaded(gUnknown_08DDE010, 0x10, 0x20); + CopyToBgTilemapBuffer(2, gPokenavRibbonsSummaryBg_Tilemap, 0, 0); + CopyPaletteIntoBufferUnfaded(gPokenavRibbonsSummaryBg_Pal, 0x10, 0x20); CopyBgTilemapBufferToVram(2); return LT_INC_AND_PAUSE; case 1: @@ -540,8 +582,8 @@ u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) DecompressAndCopyTileDataToVram(1, sRibbonIconsSmall_Gfx, 0, 1, 0); SetBgTilemapBuffer(1, structPtr->tilemapBuffers[1]); FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20); - CopyPaletteIntoBufferUnfaded(gUnknown_08623FF8, 0x20, 0xA0); - CopyPaletteIntoBufferUnfaded(gUnknown_08624098, 0xA0, 0x20); + CopyPaletteIntoBufferUnfaded(sRibbonIcons1_Pal, 0x20, 0xA0); + CopyPaletteIntoBufferUnfaded(sMonInfo_Pal, 0xA0, 0x20); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; } @@ -577,18 +619,18 @@ u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) case 6: if (!IsDma3ManagerBusyWithBgCopy()) { - ResetSpritesAndDrawRibbonsMonFrontPic(structPtr); + ResetSpritesAndDrawMonFrontPic(structPtr); return LT_INC_AND_CONTINUE; } return LT_PAUSE; case 7: - sub_81D12D8(structPtr); + DrawAllRibbonsSmall(structPtr); PrintHelpBarText(HELPBAR_RIBBONS_LIST); return LT_INC_AND_PAUSE; case 8: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_81D13FC(structPtr); + CreateBigRibbonSprite(structPtr); ChangeBgX(1, 0, 0); ChangeBgY(1, 0, 0); ChangeBgX(2, 0, 0); @@ -603,12 +645,11 @@ u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) case 9: if (IsPaletteFadeActive()) return LT_PAUSE; - return LT_FINISH; } return LT_FINISH; } -u32 LoopedTask_ExitRibbonsSummaryMenu(s32 state) +static u32 LoopedTask_ExitRibbonsSummaryMenu(s32 state) { switch (state) { @@ -624,24 +665,24 @@ u32 LoopedTask_ExitRibbonsSummaryMenu(s32 state) return LT_FINISH; } -u32 LoopedTask_UpdateRibbonsSummaryInfo(s32 state) +static u32 LoopedTask_SwitchRibbonsSummaryMon(s32 state) { struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU); switch (state) { case 0: PlaySE(SE_SELECT); - sub_81D11D8(structPtr); + SlideMonSpriteOff(structPtr); return LT_INC_AND_PAUSE; case 1: - if (!sub_81D1234(structPtr)) + if (!IsMonSpriteAnimating(structPtr)) { PrintRibbbonsSummaryMonInfo(structPtr); return LT_INC_AND_CONTINUE; } return LT_PAUSE; case 2: - sub_81D12D8(structPtr); + DrawAllRibbonsSmall(structPtr); return LT_INC_AND_CONTINUE; case 3: PrintRibbonsMonListIndex(structPtr); @@ -652,31 +693,30 @@ u32 LoopedTask_UpdateRibbonsSummaryInfo(s32 state) case 5: if (!IsDma3ManagerBusyWithBgCopy()) { - sub_81D11FC(structPtr); + SlideMonSpriteOn(structPtr); return LT_INC_AND_PAUSE; } return LT_PAUSE; case 6: - if (sub_81D1234(structPtr)) + if (IsMonSpriteAnimating(structPtr)) return LT_PAUSE; - return LT_FINISH; } return LT_FINISH; } -u32 LoopedTask_ExpandSelectedRibbon(s32 state) +static u32 LoopedTask_ExpandSelectedRibbon(s32 state) { struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU); switch (state) { case 0: PlaySE(SE_SELECT); - sub_81D1448(structPtr); + UpdateAndZoomInSelectedRibbon(structPtr); return LT_INC_AND_PAUSE; case 1: - if (!sub_81D1524(structPtr)) + if (!IsRibbonAnimating(structPtr)) { - sub_81D0EFC(structPtr); + PrintRibbonNameAndDescription(structPtr); PrintHelpBarText(HELPBAR_RIBBONS_CHECK); return LT_INC_AND_PAUSE; } @@ -688,26 +728,26 @@ u32 LoopedTask_ExpandSelectedRibbon(s32 state) return LT_FINISH; } -u32 LoopedTask_MoveRibbonsCursorExpanded(s32 state) +static u32 LoopedTask_MoveRibbonsCursorExpanded(s32 state) { struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU); switch (state) { case 0: PlaySE(SE_SELECT); - sub_81D1500(structPtr); + ZoomOutSelectedRibbon(structPtr); return LT_INC_AND_PAUSE; case 1: - if (!sub_81D1524(structPtr)) + if (!IsRibbonAnimating(structPtr)) { - sub_81D1448(structPtr); + UpdateAndZoomInSelectedRibbon(structPtr); return LT_INC_AND_PAUSE; } return LT_PAUSE; case 2: - if (!sub_81D1524(structPtr)) + if (!IsRibbonAnimating(structPtr)) { - sub_81D0EFC(structPtr); + PrintRibbonNameAndDescription(structPtr); return LT_INC_AND_PAUSE; } return LT_PAUSE; @@ -718,17 +758,17 @@ u32 LoopedTask_MoveRibbonsCursorExpanded(s32 state) return LT_FINISH; } -u32 LoopedTask_ShrinkExpandedRibbon(s32 state) +static u32 LoopedTask_ShrinkExpandedRibbon(s32 state) { struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU); switch (state) { case 0: PlaySE(SE_SELECT); - sub_81D1500(structPtr); + ZoomOutSelectedRibbon(structPtr); return LT_INC_AND_PAUSE; case 1: - if (!sub_81D1524(structPtr)) + if (!IsRibbonAnimating(structPtr)) { PrintCurrentMonRibbonCount(structPtr); PrintHelpBarText(HELPBAR_RIBBONS_LIST); @@ -753,16 +793,16 @@ static const struct WindowTemplate sRibbonCountWindowTemplate = .baseBlock = 0x14, }; -void AddRibbonCountWindow(struct PokenavSub14 *structPtr) +static void AddRibbonCountWindow(struct PokenavSub14 *structPtr) { structPtr->ribbonCountWindowId = AddWindow(&sRibbonCountWindowTemplate); PutWindowTilemap(structPtr->ribbonCountWindowId); PrintCurrentMonRibbonCount(structPtr); } -void PrintCurrentMonRibbonCount(struct PokenavSub14 *structPtr) +static void PrintCurrentMonRibbonCount(struct PokenavSub14 *structPtr) { - u8 color[] = {TEXT_COLOR_RED, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}; + u8 color[] = {TEXT_COLOR_RED, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; ConvertIntToDecimalStringN(gStringVar1, GetCurrMonRibbonCount(), STR_CONV_MODE_LEFT_ALIGN, 2); DynamicPlaceholderTextUtil_Reset(); @@ -773,24 +813,31 @@ void PrintCurrentMonRibbonCount(struct PokenavSub14 *structPtr) CopyWindowToVram(structPtr->ribbonCountWindowId, 2); } -void sub_81D0EFC(struct PokenavSub14 *structPtr) +static void PrintRibbonNameAndDescription(struct PokenavSub14 *structPtr) { s32 i; - u32 ribbonId = sub_81D0954(); - u8 color[] = {TEXT_COLOR_RED, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}; + u32 ribbonId = GetRibbonId(); + u8 color[] = {TEXT_COLOR_RED, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; FillWindowPixelBuffer(structPtr->ribbonCountWindowId, PIXEL_FILL(4)); - if (ribbonId < 25) + if (ribbonId < FIRST_GIFT_RIBBON) { + // Print normal ribbon name/description for (i = 0; i < 2; i++) AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, 1, 0, (i * 16) + 1, color, -1, gRibbonDescriptionPointers[ribbonId][i]); } else { - ribbonId = gSaveBlock1Ptr->giftRibbons[ribbonId - 25]; + // ribbonId here is one of the 'gift' ribbon slots, used to read + // its actual value from giftRibbons to determine which specific + // gift ribbon it is + ribbonId = gSaveBlock1Ptr->giftRibbons[ribbonId - FIRST_GIFT_RIBBON]; + + // If 0, this gift ribbon slot is unoccupied if (ribbonId == 0) return; + // Print gift ribbon name/description ribbonId--; for (i = 0; i < 2; i++) AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, 1, 0, (i * 16) + 1, color, -1, gGiftRibbonDescriptionPointers[ribbonId][i]); @@ -810,18 +857,18 @@ static const struct WindowTemplate sRibbonSummaryMonNameWindowTemplate = .baseBlock = 0x54, }; -void AddRibbonSummaryMonNameWindow(struct PokenavSub14 *structPtr) +static void AddRibbonSummaryMonNameWindow(struct PokenavSub14 *structPtr) { structPtr->nameWindowId = AddWindow(&sRibbonSummaryMonNameWindowTemplate); PutWindowTilemap(structPtr->nameWindowId); PrintRibbbonsSummaryMonInfo(structPtr); } -static const u8 sMaleIconString[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); -static const u8 sFemaleIconString[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +static const u8 sMaleIconString[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GRAY}{WHITE}{LIGHT_GRAY}"); +static const u8 sFemaleIconString[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GRAY}{WHITE}{LIGHT_GRAY}"); static const u8 sGenderlessIconString[] = _("{UNK_SPACER}"); -void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *structPtr) +static void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *structPtr) { const u8 *genderTxt; u8 *txtPtr; @@ -829,7 +876,7 @@ void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *structPtr) u16 windowId = structPtr->nameWindowId; FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); - GetCurrMonInfo1(gStringVar3, &level, &gender); + GetMonNicknameLevelGender(gStringVar3, &level, &gender); AddTextPrinterParameterized(windowId, 1, gStringVar3, 0, 1, TEXT_SPEED_FF, NULL); switch (gender) { @@ -867,7 +914,7 @@ static const struct WindowTemplate sRibbonMonListIndexWindowTemplate[] = {}, }; -void AddRibbonListIndexWindow(struct PokenavSub14 *structPtr) +static void AddRibbonListIndexWindow(struct PokenavSub14 *structPtr) { structPtr->listIdxWindowId = AddWindow(sRibbonMonListIndexWindowTemplate); FillWindowPixelBuffer(structPtr->listIdxWindowId, PIXEL_FILL(1)); @@ -875,7 +922,7 @@ void AddRibbonListIndexWindow(struct PokenavSub14 *structPtr) PrintRibbonsMonListIndex(structPtr); } -void PrintRibbonsMonListIndex(struct PokenavSub14 *structPtr) +static void PrintRibbonsMonListIndex(struct PokenavSub14 *structPtr) { s32 x; u8 *txtPtr; @@ -890,181 +937,219 @@ void PrintRibbonsMonListIndex(struct PokenavSub14 *structPtr) CopyWindowToVram(structPtr->listIdxWindowId, 2); } -void ResetSpritesAndDrawRibbonsMonFrontPic(struct PokenavSub14 *structPtr) +static void ResetSpritesAndDrawMonFrontPic(struct PokenavSub14 *structPtr) { u16 species; u32 personality, otId; - GetCurrMonInfo2(&species, &personality, &otId); + GetMonSpeciesPersonalityOtId(&species, &personality, &otId); ResetAllPicSprites(); - structPtr->monSpriteId = DrawRibbonsMonFrontPic(40, 104); + structPtr->monSpriteId = DrawRibbonsMonFrontPic(MON_SPRITE_X_ON, MON_SPRITE_Y); PokenavFillPalette(15, 0); } -void DestroyRibbonsMonFrontPic(struct PokenavSub14 *structPtr) +static void DestroyRibbonsMonFrontPic(struct PokenavSub14 *structPtr) { FreeAndDestroyMonPicSprite(structPtr->monSpriteId); } -u16 DrawRibbonsMonFrontPic(s32 unused0, s32 unused1) +// x and y arguments are ignored +// y is always given as MON_SPRITE_Y +// x is given as either MON_SPRITE_X_ON or MON_SPRITE_X_OFF (but ignored and MON_SPRITE_X_ON is used) +static u16 DrawRibbonsMonFrontPic(s32 x, s32 y) { u16 species, spriteId; u32 personality, otId; - GetCurrMonInfo2(&species, &personality, &otId); - spriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 40, 104, 15, 0xFFFF); + GetMonSpeciesPersonalityOtId(&species, &personality, &otId); + spriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, MON_SPRITE_X_ON, MON_SPRITE_Y, 15, 0xFFFF); gSprites[spriteId].oam.priority = 0; return spriteId; } -void sub_81D11D8(struct PokenavSub14 *structPtr) +static void SlideMonSpriteOff(struct PokenavSub14 *structPtr) { - sub_81D1258(&gSprites[structPtr->monSpriteId], 40, -32, 6); + StartMonSpriteSlide(&gSprites[structPtr->monSpriteId], MON_SPRITE_X_ON, MON_SPRITE_X_OFF, 6); } -void sub_81D11FC(struct PokenavSub14 *structPtr) +static void SlideMonSpriteOn(struct PokenavSub14 *structPtr) { + // Switch to new mon sprite FreeAndDestroyMonPicSprite(structPtr->monSpriteId); - structPtr->monSpriteId = DrawRibbonsMonFrontPic(-32, 104); - sub_81D1258(&gSprites[structPtr->monSpriteId], -32, 40, 6); + structPtr->monSpriteId = DrawRibbonsMonFrontPic(MON_SPRITE_X_OFF, MON_SPRITE_Y); + + // Slide on + StartMonSpriteSlide(&gSprites[structPtr->monSpriteId], MON_SPRITE_X_OFF, MON_SPRITE_X_ON, 6); } -bool32 sub_81D1234(struct PokenavSub14 *structPtr) +// Is Pokémon summary sprite still sliding off/on +static bool32 IsMonSpriteAnimating(struct PokenavSub14 *structPtr) { return (gSprites[structPtr->monSpriteId].callback != SpriteCallbackDummy); } -void sub_81D1258(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3) +#define sCurrX data[0] +#define sMoveIncr data[1] +#define sTime data[2] +#define sDestX data[3] + +static void StartMonSpriteSlide(struct Sprite *sprite, s32 startX, s32 destX, s32 time) { - u32 var = arg2 - arg1; + u32 delta = destX - startX; - sprite->pos1.x = arg1; - sprite->data[0] = arg1 << 4; - sprite->data[1] = (var << 4) / arg3; - sprite->data[2] = arg3; - sprite->data[3] = arg2; + sprite->x = startX; + sprite->sCurrX = startX << 4; + sprite->sMoveIncr = (delta << 4) / time; + sprite->sTime = time; + sprite->sDestX = destX; - sprite->callback = sub_81D1284; + sprite->callback = SpriteCB_MonSpriteSlide; } -void sub_81D1284(struct Sprite *sprite) +static void SpriteCB_MonSpriteSlide(struct Sprite *sprite) { - if (sprite->data[2] != 0) + if (sprite->sTime != 0) { - sprite->data[2]--; - sprite->data[0] += sprite->data[1]; - sprite->pos1.x = sprite->data[0] >> 4; - if (sprite->pos1.x <= -32) + sprite->sTime--; + sprite->sCurrX += sprite->sMoveIncr; + sprite->x = sprite->sCurrX >> 4; + if (sprite->x <= MON_SPRITE_X_OFF) sprite->invisible = TRUE; else sprite->invisible = FALSE; } else { - sprite->pos1.x = sprite->data[3]; + sprite->x = sprite->sDestX; sprite->callback = SpriteCallbackDummy; } } -void sub_81D12D8(struct PokenavSub14 *structPtr) +#undef sCurrX +#undef sMoveIncr +#undef sTime +#undef sDestX + +static void DrawAllRibbonsSmall(struct PokenavSub14 *structPtr) { - u32 *ptr; + u32 *ribbonIds; - sub_81D1350(); + ClearRibbonsSummaryBg(); - ptr = sub_81D0914(&gUnknown_030012C0); - for (gUnknown_030012C4 = 0; gUnknown_030012C4 < gUnknown_030012C0; gUnknown_030012C4++) - sub_81D1370(gUnknown_030012C4, *(ptr++)); + ribbonIds = GetNormalRibbonIds(&sRibbonDraw_Total); + for (sRibbonDraw_Current = 0; sRibbonDraw_Current < sRibbonDraw_Total; sRibbonDraw_Current++) + DrawRibbonSmall(sRibbonDraw_Current, *(ribbonIds++)); - ptr = sub_81D092C(&gUnknown_030012C0); - for (gUnknown_030012C4 = 0; gUnknown_030012C4 < gUnknown_030012C0; gUnknown_030012C4++) - sub_81D1370(gUnknown_030012C4 + 27, *(ptr++)); + ribbonIds = GetGiftRibbonIds(&sRibbonDraw_Total); + for (sRibbonDraw_Current = 0; sRibbonDraw_Current < sRibbonDraw_Total; sRibbonDraw_Current++) + DrawRibbonSmall(sRibbonDraw_Current + GIFT_RIBBON_START_POS, *(ribbonIds++)); CopyBgTilemapBufferToVram(1); } -void sub_81D1350(void) +// Redundant, the same FillBg is called in LoopedTask_OpenRibbonsSummaryMenu +static void ClearRibbonsSummaryBg(void) { FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20); } -void sub_81D1370(u32 arg0, u32 id) +static void DrawRibbonSmall(u32 i, u32 ribbonId) { u16 bgData[4]; - u32 destX = (arg0 % 9) * 2 + 11; - u32 destY = (arg0 / 9) * 2 + 4; + u32 destX = (i % RIBBONS_PER_ROW) * 2 + 11; + u32 destY = (i / RIBBONS_PER_ROW) * 2 + 4; - sub_81D13BC(bgData, id); + BufferSmallRibbonGfxData(bgData, ribbonId); CopyToBgTilemapBufferRect(1, bgData, destX, destY, 2, 2); } +// Below correspond to a ribbon icon in ribbons/icons.png and ribbons/icons_big.png; 0 at top, 11 at bottom +enum { + RIBBONGFX_CHAMPION, + RIBBONGFX_CONTEST_NORMAL, + RIBBONGFX_CONTEST_SUPER, + RIBBONGFX_CONTEST_HYPER, + RIBBONGFX_CONTEST_MASTER, + RIBBONGFX_WINNING, + RIBBONGFX_VICTORY, + RIBBONGFX_ARTIST, + RIBBONGFX_EFFORT, + RIBBONGFX_GIFT_1, + RIBBONGFX_GIFT_2, + RIBBONGFX_GIFT_3, +}; + +#define TO_PAL_OFFSET(palNum)((palNum) - PALTAG_RIBBON_ICONS_1) + struct { - u16 var0; - u16 var2; -} static const gUnknown_08624BF8[] = + u16 tileNumOffset; + u16 palNumOffset; +} static const sRibbonGfxData[] = { - {0, 0}, - {1, 0}, - {2, 0}, - {3, 0}, - {4, 0}, - {1, 1}, - {2, 1}, - {3, 1}, - {4, 1}, - {1, 2}, - {2, 2}, - {3, 2}, - {4, 2}, - {1, 3}, - {2, 3}, - {3, 3}, - {4, 3}, - {1, 4}, - {2, 4}, - {3, 4}, - {4, 4}, - {5, 0}, - {6, 0}, - {7, 1}, - {8, 2}, - {9, 1}, - {9, 3}, - {9, 4}, - {10, 3}, - {10, 4}, - {11, 0}, - {11, 1}, + [CHAMPION_RIBBON] = { RIBBONGFX_CHAMPION, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_1)}, + [COOL_RIBBON_NORMAL] = { RIBBONGFX_CONTEST_NORMAL, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_1)}, + [COOL_RIBBON_SUPER] = { RIBBONGFX_CONTEST_SUPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_1)}, + [COOL_RIBBON_HYPER] = { RIBBONGFX_CONTEST_HYPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_1)}, + [COOL_RIBBON_MASTER] = { RIBBONGFX_CONTEST_MASTER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_1)}, + [BEAUTY_RIBBON_NORMAL] = { RIBBONGFX_CONTEST_NORMAL, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_2)}, + [BEAUTY_RIBBON_SUPER] = { RIBBONGFX_CONTEST_SUPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_2)}, + [BEAUTY_RIBBON_HYPER] = { RIBBONGFX_CONTEST_HYPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_2)}, + [BEAUTY_RIBBON_MASTER] = { RIBBONGFX_CONTEST_MASTER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_2)}, + [CUTE_RIBBON_NORMAL] = { RIBBONGFX_CONTEST_NORMAL, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_3)}, + [CUTE_RIBBON_SUPER] = { RIBBONGFX_CONTEST_SUPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_3)}, + [CUTE_RIBBON_HYPER] = { RIBBONGFX_CONTEST_HYPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_3)}, + [CUTE_RIBBON_MASTER] = { RIBBONGFX_CONTEST_MASTER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_3)}, + [SMART_RIBBON_NORMAL] = { RIBBONGFX_CONTEST_NORMAL, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_4)}, + [SMART_RIBBON_SUPER] = { RIBBONGFX_CONTEST_SUPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_4)}, + [SMART_RIBBON_HYPER] = { RIBBONGFX_CONTEST_HYPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_4)}, + [SMART_RIBBON_MASTER] = { RIBBONGFX_CONTEST_MASTER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_4)}, + [TOUGH_RIBBON_NORMAL] = { RIBBONGFX_CONTEST_NORMAL, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_5)}, + [TOUGH_RIBBON_SUPER] = { RIBBONGFX_CONTEST_SUPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_5)}, + [TOUGH_RIBBON_HYPER] = { RIBBONGFX_CONTEST_HYPER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_5)}, + [TOUGH_RIBBON_MASTER] = { RIBBONGFX_CONTEST_MASTER, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_5)}, + [WINNING_RIBBON] = { RIBBONGFX_WINNING, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_1)}, + [VICTORY_RIBBON] = { RIBBONGFX_VICTORY, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_1)}, + [ARTIST_RIBBON] = { RIBBONGFX_ARTIST, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_2)}, + [EFFORT_RIBBON] = { RIBBONGFX_EFFORT, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_3)}, + [MARINE_RIBBON] = { RIBBONGFX_GIFT_1, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_2)}, + [LAND_RIBBON] = { RIBBONGFX_GIFT_1, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_4)}, + [SKY_RIBBON] = { RIBBONGFX_GIFT_1, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_5)}, + [COUNTRY_RIBBON] = { RIBBONGFX_GIFT_2, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_4)}, + [NATIONAL_RIBBON] = { RIBBONGFX_GIFT_2, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_5)}, + [EARTH_RIBBON] = { RIBBONGFX_GIFT_3, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_1)}, + [WORLD_RIBBON] = { RIBBONGFX_GIFT_3, TO_PAL_OFFSET(PALTAG_RIBBON_ICONS_2)}, }; -void sub_81D13BC(u16 *dst, u32 id) -{ - u16 r3 = gUnknown_08624BF8[id].var2 + 2; - u16 r1 = (gUnknown_08624BF8[id].var0 * 2) + 1; +#undef TO_PAL_OFFSET - dst[0] = r1 | (r3 << 12); - dst[1] = r1 | (r3 << 12) |0x400; - dst[2] = (r1 + 1) | (r3 << 12); - dst[3] = (r1 + 1) | (r3 << 12) | 0x400; +static void BufferSmallRibbonGfxData(u16 *dst, u32 ribbonId) +{ + u16 palNum = sRibbonGfxData[ribbonId].palNumOffset + 2; + u16 tileNum = (sRibbonGfxData[ribbonId].tileNumOffset * 2) + 1; + + dst[0] = tileNum | (palNum << 12); + dst[1] = tileNum | (palNum << 12) | 0x400; + dst[2] = (tileNum + 1) | (palNum << 12); + dst[3] = (tileNum + 1) | (palNum << 12) | 0x400; } -static const struct CompressedSpriteSheet gUnknown_08624C78 = +static const struct CompressedSpriteSheet sSpriteSheet_RibbonIconsBig = { - sRibbonIconsBig_Gfx, 0x1800, 9 + sRibbonIconsBig_Gfx, 0x1800, GFXTAG_RIBBON_ICONS_BIG }; -static const struct SpritePalette gUnknown_08624C80[] = +static const struct SpritePalette sSpritePalettes_RibbonIcons[] = { - {gUnknown_08623FF8, 15}, - {gUnknown_08624018, 16}, - {gUnknown_08624038, 17}, - {gUnknown_08624058, 18}, - {gUnknown_08624078, 19}, + {sRibbonIcons1_Pal, PALTAG_RIBBON_ICONS_1}, + {sRibbonIcons2_Pal, PALTAG_RIBBON_ICONS_2}, + {sRibbonIcons3_Pal, PALTAG_RIBBON_ICONS_3}, + {sRibbonIcons4_Pal, PALTAG_RIBBON_ICONS_4}, + {sRibbonIcons5_Pal, PALTAG_RIBBON_ICONS_5}, {}, }; -static const struct OamData sOamData_8624CB0 = +static const struct OamData sOamData_RibbonIconBig = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -1081,93 +1166,105 @@ static const struct OamData sOamData_8624CB0 = .affineParam = 0 }; -static const union AffineAnimCmd sSpriteAffineAnim_8624CB8[] = +static const union AffineAnimCmd sAffineAnim_RibbonIconBig_Normal[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8624CC8[] = +static const union AffineAnimCmd sAffineAnim_RibbonIconBig_ZoomIn[] = { AFFINEANIMCMD_FRAME(128, 128, 0, 0), AFFINEANIMCMD_FRAME(32, 32, 0, 4), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sSpriteAffineAnim_8624CE0[] = +static const union AffineAnimCmd sAffineAnim_RibbonIconBig_ZoomOut[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(-32, -32, 0, 4), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_8624CF8[] = -{ - sSpriteAffineAnim_8624CB8, - sSpriteAffineAnim_8624CC8, - sSpriteAffineAnim_8624CE0 +enum { + RIBBONANIM_NORMAL, + RIBBONANIM_ZOOM_IN, + RIBBONANIM_ZOOM_OUT, }; -static const struct SpriteTemplate gUnknown_08624D04 = +static const union AffineAnimCmd *const sAffineAnims_RibbonIconBig[] = { - .tileTag = 9, - .paletteTag = 15, - .oam = &sOamData_8624CB0, + [RIBBONANIM_NORMAL] = sAffineAnim_RibbonIconBig_Normal, + [RIBBONANIM_ZOOM_IN] = sAffineAnim_RibbonIconBig_ZoomIn, + [RIBBONANIM_ZOOM_OUT] = sAffineAnim_RibbonIconBig_ZoomOut +}; + +static const struct SpriteTemplate sSpriteTemplate_RibbonIconBig = +{ + .tileTag = GFXTAG_RIBBON_ICONS_BIG, + .paletteTag = PALTAG_RIBBON_ICONS_1, + .oam = &sOamData_RibbonIconBig, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sSpriteAffineAnimTable_8624CF8, + .affineAnims = sAffineAnims_RibbonIconBig, .callback = SpriteCallbackDummy, }; -void sub_81D13FC(struct PokenavSub14 *structPtr) +// Create dummy sprite to be used for the zoomed in version of the selected ribbon +static void CreateBigRibbonSprite(struct PokenavSub14 *structPtr) { u8 spriteId; - LoadCompressedSpriteSheet(&gUnknown_08624C78); - Pokenav_AllocAndLoadPalettes(gUnknown_08624C80); + LoadCompressedSpriteSheet(&sSpriteSheet_RibbonIconsBig); + Pokenav_AllocAndLoadPalettes(sSpritePalettes_RibbonIcons); - spriteId = CreateSprite(&gUnknown_08624D04, 0, 0, 0); - structPtr->field_14 = &gSprites[spriteId]; - structPtr->field_14->invisible = TRUE; + spriteId = CreateSprite(&sSpriteTemplate_RibbonIconBig, 0, 0, 0); + structPtr->bigRibbonSprite = &gSprites[spriteId]; + structPtr->bigRibbonSprite->invisible = TRUE; } -void sub_81D1448(struct PokenavSub14 *structPtr) +#define sInvisibleWhenDone data[0] + +static void UpdateAndZoomInSelectedRibbon(struct PokenavSub14 *structPtr) { u32 ribbonId; - s32 r4 = sub_81D0944(); - s32 r5 = (r4 % 9) * 16 + 96; - s32 r0 = (r4 / 9) * 16 + 40; + s32 position = GetSelectedPosition(); + s32 x = (position % RIBBONS_PER_ROW) * 16 + 96; + s32 y = (position / RIBBONS_PER_ROW) * 16 + 40; - structPtr->field_14->pos1.x = r5; - structPtr->field_14->pos1.y = r0; + structPtr->bigRibbonSprite->x = x; + structPtr->bigRibbonSprite->y = y; - ribbonId = sub_81D0954(); - structPtr->field_14->oam.tileNum = (gUnknown_08624BF8[ribbonId].var0 * 16) + GetSpriteTileStartByTag(9); - structPtr->field_14->oam.paletteNum = IndexOfSpritePaletteTag(gUnknown_08624BF8[ribbonId].var2 + 15); + // Set new selected ribbon's gfx data + ribbonId = GetRibbonId(); + structPtr->bigRibbonSprite->oam.tileNum = (sRibbonGfxData[ribbonId].tileNumOffset * 16) + GetSpriteTileStartByTag(GFXTAG_RIBBON_ICONS_BIG); + structPtr->bigRibbonSprite->oam.paletteNum = IndexOfSpritePaletteTag(sRibbonGfxData[ribbonId].palNumOffset + PALTAG_RIBBON_ICONS_1); - StartSpriteAffineAnim(structPtr->field_14, 1); - structPtr->field_14->invisible = FALSE; - structPtr->field_14->data[0] = 0; - structPtr->field_14->callback = sub_81D1538; + // Start zoom in animation + StartSpriteAffineAnim(structPtr->bigRibbonSprite, RIBBONANIM_ZOOM_IN); + structPtr->bigRibbonSprite->invisible = FALSE; + structPtr->bigRibbonSprite->sInvisibleWhenDone = FALSE; + structPtr->bigRibbonSprite->callback = SpriteCB_WaitForRibbonAnimation; } -void sub_81D1500(struct PokenavSub14 *structPtr) +// Start animation to zoom out of selected ribbon +static void ZoomOutSelectedRibbon(struct PokenavSub14 *structPtr) { - structPtr->field_14->data[0] = 1; - StartSpriteAffineAnim(structPtr->field_14, 2); - structPtr->field_14->callback = sub_81D1538; + structPtr->bigRibbonSprite->sInvisibleWhenDone = TRUE; + StartSpriteAffineAnim(structPtr->bigRibbonSprite, RIBBONANIM_ZOOM_OUT); + structPtr->bigRibbonSprite->callback = SpriteCB_WaitForRibbonAnimation; } -bool32 sub_81D1524(struct PokenavSub14 *structPtr) +static bool32 IsRibbonAnimating(struct PokenavSub14 *structPtr) { - return (structPtr->field_14->callback != SpriteCallbackDummy); + return (structPtr->bigRibbonSprite->callback != SpriteCallbackDummy); } -void sub_81D1538(struct Sprite *sprite) +static void SpriteCB_WaitForRibbonAnimation(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - sprite->invisible = sprite->data[0]; + sprite->invisible = sprite->sInvisibleWhenDone; sprite->callback = SpriteCallbackDummy; } } diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index 78ebe02e4d..081a402188 100644 --- a/src/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c @@ -8,7 +8,6 @@ #include "script_pokemon_util.h" #include "tv.h" #include "constants/heal_locations.h" -#include "constants/tv.h" int GameClear(void) { diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index bc6758cae7..f2c5a319c4 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -1433,34 +1433,34 @@ static void SpriteCB_DuoFightPre_Groudon(struct Sprite *sprite) s16 *data = sprite->data; data[5]++; data[5] &= 0x1F; - if (data[5] == 0 && sprite->pos1.x != 72) + if (data[5] == 0 && sprite->x != 72) { - sprite->pos1.x--; - gSprites[sprite->sGroudonBodySpriteId].pos1.x--; - gSprites[sGroudonShoulderSpriteId].pos1.x--; - gSprites[sGroudonClawSpriteId].pos1.x--; + sprite->x--; + gSprites[sprite->sGroudonBodySpriteId].x--; + gSprites[sGroudonShoulderSpriteId].x--; + gSprites[sGroudonClawSpriteId].x--; } switch (sprite->animCmdIndex) { case 0: - gSprites[sGroudonShoulderSpriteId].pos2.x = 0; - gSprites[sGroudonShoulderSpriteId].pos2.y = 0; - gSprites[sGroudonClawSpriteId].pos2.x = 0; - gSprites[sGroudonClawSpriteId].pos2.y = 0; + gSprites[sGroudonShoulderSpriteId].x2 = 0; + gSprites[sGroudonShoulderSpriteId].y2 = 0; + gSprites[sGroudonClawSpriteId].x2 = 0; + gSprites[sGroudonClawSpriteId].y2 = 0; break; case 1: case 3: - gSprites[sGroudonShoulderSpriteId].pos2.x = -1; - gSprites[sGroudonShoulderSpriteId].pos2.y = 0; - gSprites[sGroudonClawSpriteId].pos2.x = -1; - gSprites[sGroudonClawSpriteId].pos2.y = 0; + gSprites[sGroudonShoulderSpriteId].x2 = -1; + gSprites[sGroudonShoulderSpriteId].y2 = 0; + gSprites[sGroudonClawSpriteId].x2 = -1; + gSprites[sGroudonClawSpriteId].y2 = 0; break; case 2: - gSprites[sGroudonShoulderSpriteId].pos2.x = -1; - gSprites[sGroudonShoulderSpriteId].pos2.y = 1; - gSprites[sGroudonClawSpriteId].pos2.x = -2; - gSprites[sGroudonClawSpriteId].pos2.y = 1; + gSprites[sGroudonShoulderSpriteId].x2 = -1; + gSprites[sGroudonShoulderSpriteId].y2 = 1; + gSprites[sGroudonClawSpriteId].x2 = -2; + gSprites[sGroudonClawSpriteId].y2 = 1; break; } } @@ -1502,58 +1502,58 @@ static void SpriteCB_DuoFightPre_Kyogre(struct Sprite *sprite) s16 *data = sprite->data; data[5]++; data[5] &= 0x1F; - if (data[5] == 0 && sprite->pos1.x != 152) + if (data[5] == 0 && sprite->x != 152) { - sprite->pos1.x++; - gSprites[sprite->data[0] >> 8].pos1.x++; - gSprites[sprite->data[0] & 0xFF].pos1.x++; - gSprites[data[1] >> 8].pos1.x++; - gSprites[data[1] & 0xFF].pos1.x++; - gSprites[data[2] >> 8].pos1.x++; - gSprites[data[2] & 0xFF].pos1.x++; - gSprites[data[3] >> 8].pos1.x++; - gSprites[data[3] & 0xFF].pos1.x++; - gSprites[data[4] >> 8].pos1.x++; - gSprites[data[4] & 0xFF].pos1.x++; + sprite->x++; + gSprites[sprite->data[0] >> 8].x++; + gSprites[sprite->data[0] & 0xFF].x++; + gSprites[data[1] >> 8].x++; + gSprites[data[1] & 0xFF].x++; + gSprites[data[2] >> 8].x++; + gSprites[data[2] & 0xFF].x++; + gSprites[data[3] >> 8].x++; + gSprites[data[3] & 0xFF].x++; + gSprites[data[4] >> 8].x++; + gSprites[data[4] & 0xFF].x++; } switch (gSprites[data[2] & 0xFF].animCmdIndex) { case 0: - sprite->pos2.y = 0; - gSprites[data[0] >> 8].pos2.y = 0; - gSprites[data[0] & 0xFF].pos2.y = 0; - gSprites[data[1] >> 8].pos2.y = 0; - gSprites[data[1] & 0xFF].pos2.y = 0; - gSprites[data[2] >> 8].pos2.y = 0; - gSprites[data[2] & 0xFF].pos2.y = 0; - gSprites[data[3] >> 8].pos2.y = 0; - gSprites[data[3] & 0xFF].pos2.y = 0; - gSprites[data[4] >> 8].pos2.y = 0; - gSprites[data[4] & 0xFF].pos2.y = 0; + sprite->y2 = 0; + gSprites[data[0] >> 8].y2 = 0; + gSprites[data[0] & 0xFF].y2 = 0; + gSprites[data[1] >> 8].y2 = 0; + gSprites[data[1] & 0xFF].y2 = 0; + gSprites[data[2] >> 8].y2 = 0; + gSprites[data[2] & 0xFF].y2 = 0; + gSprites[data[3] >> 8].y2 = 0; + gSprites[data[3] & 0xFF].y2 = 0; + gSprites[data[4] >> 8].y2 = 0; + gSprites[data[4] & 0xFF].y2 = 0; break; case 1: case 3: - sprite->pos2.y = 1; - gSprites[data[0] >> 8].pos2.y = 1; - gSprites[data[0] & 0xFF].pos2.y = 1; - gSprites[data[1] >> 8].pos2.y = 1; - gSprites[data[1] & 0xFF].pos2.y = 1; - gSprites[data[2] >> 8].pos2.y = 1; - gSprites[data[2] & 0xFF].pos2.y = 1; - gSprites[data[3] >> 8].pos2.y = 1; - gSprites[data[3] & 0xFF].pos2.y = 1; - gSprites[data[4] >> 8].pos2.y = 1; - gSprites[data[4] & 0xFF].pos2.y = 1; + sprite->y2 = 1; + gSprites[data[0] >> 8].y2 = 1; + gSprites[data[0] & 0xFF].y2 = 1; + gSprites[data[1] >> 8].y2 = 1; + gSprites[data[1] & 0xFF].y2 = 1; + gSprites[data[2] >> 8].y2 = 1; + gSprites[data[2] & 0xFF].y2 = 1; + gSprites[data[3] >> 8].y2 = 1; + gSprites[data[3] & 0xFF].y2 = 1; + gSprites[data[4] >> 8].y2 = 1; + gSprites[data[4] & 0xFF].y2 = 1; break; case 2: - sprite->pos2.y = 2; - gSprites[data[0] >> 8].pos2.y = 2; - gSprites[data[0] & 0xFF].pos2.y = 2; - gSprites[data[1] >> 8].pos2.y = 2; - gSprites[data[1] & 0xFF].pos2.y = 2; - gSprites[data[2] >> 8].pos2.y = 2; - gSprites[data[4] & 0xFF].pos2.y = 2; + sprite->y2 = 2; + gSprites[data[0] >> 8].y2 = 2; + gSprites[data[0] & 0xFF].y2 = 2; + gSprites[data[1] >> 8].y2 = 2; + gSprites[data[1] & 0xFF].y2 = 2; + gSprites[data[2] >> 8].y2 = 2; + gSprites[data[4] & 0xFF].y2 = 2; break; } } @@ -1627,8 +1627,8 @@ static void Task_DuoFightAnim(u8 taskId) StopMapMusic(); } - BlendPalettes(-1, 0x10, 0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 0x10, 0); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(VBlankCB_DuoFight); PlaySE(SE_DOWNPOUR); } @@ -1738,21 +1738,21 @@ static void Task_HandleDuoFight(u8 taskId) static void DuoFight_Lightning1(void) { PlaySE(SE_THUNDER); - BlendPalettesGradually(0x00007FFF, 0, 16, 0, RGB_WHITEALPHA, 0, 0); - BlendPalettesGradually(0xFFFF0000, 0, 16, 0, RGB_BLACK, 0, 1); + BlendPalettesGradually(PALETTES_BG & ~(0x8000), 0, 16, 0, RGB_WHITEALPHA, 0, 0); + BlendPalettesGradually(PALETTES_OBJECTS, 0, 16, 0, RGB_BLACK, 0, 1); } static void DuoFight_Lightning2(void) { PlaySE(SE_THUNDER); - BlendPalettesGradually(0x00007FFF, 0, 16, 16, RGB_WHITEALPHA, 0, 0); - BlendPalettesGradually(0xFFFF0000, 0, 16, 16, RGB_BLACK, 0, 1); + BlendPalettesGradually(PALETTES_BG & ~(0x8000), 0, 16, 16, RGB_WHITEALPHA, 0, 0); + BlendPalettesGradually(PALETTES_OBJECTS, 0, 16, 16, RGB_BLACK, 0, 1); } static void DuoFight_LightningLong(void) { - BlendPalettesGradually(0x00007FFF, 4, 16, 0, RGB_WHITEALPHA, 0, 0); - BlendPalettesGradually(0xFFFF0000, 4, 16, 0, RGB_BLACK, 0, 1); + BlendPalettesGradually(PALETTES_BG & ~(0x8000), 4, 16, 0, RGB_WHITEALPHA, 0, 0); + BlendPalettesGradually(PALETTES_OBJECTS, 4, 16, 0, RGB_BLACK, 0, 1); } static void DuoFight_AnimateRain(void) @@ -1784,7 +1784,7 @@ static void DuoFight_PanOffScene(u8 taskId) static void DuoFightEnd(u8 taskId, s8 palDelay) { PlaySE(SE_DOWNPOUR_STOP); - BeginNormalPaletteFade(0xFFFFFFFF, palDelay, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, palDelay, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_DuoFightEnd; } @@ -1825,34 +1825,34 @@ static void SpriteCB_DuoFight_Groudon(struct Sprite *sprite) s16 *data = sprite->data; data[5]++; data[5] &= 0xF; - if (!(data[5] & 7) && sprite->pos1.x != 72) + if (!(data[5] & 7) && sprite->x != 72) { - sprite->pos1.x--; - gSprites[sprite->sGroudonBodySpriteId].pos1.x--; - gSprites[sGroudonShoulderSpriteId].pos1.x--; - gSprites[sGroudonClawSpriteId].pos1.x--; + sprite->x--; + gSprites[sprite->sGroudonBodySpriteId].x--; + gSprites[sGroudonShoulderSpriteId].x--; + gSprites[sGroudonClawSpriteId].x--; } switch (sprite->animCmdIndex) { case 0: - gSprites[sGroudonShoulderSpriteId].pos2.x = 0; - gSprites[sGroudonShoulderSpriteId].pos2.y = 0; - gSprites[sGroudonClawSpriteId].pos2.x = 0; - gSprites[sGroudonClawSpriteId].pos2.y = 0; + gSprites[sGroudonShoulderSpriteId].x2 = 0; + gSprites[sGroudonShoulderSpriteId].y2 = 0; + gSprites[sGroudonClawSpriteId].x2 = 0; + gSprites[sGroudonClawSpriteId].y2 = 0; break; case 1: case 3: - gSprites[sGroudonShoulderSpriteId].pos2.x = -1; - gSprites[sGroudonShoulderSpriteId].pos2.y = 0; - gSprites[sGroudonClawSpriteId].pos2.x = -1; - gSprites[sGroudonClawSpriteId].pos2.y = 0; + gSprites[sGroudonShoulderSpriteId].x2 = -1; + gSprites[sGroudonShoulderSpriteId].y2 = 0; + gSprites[sGroudonClawSpriteId].x2 = -1; + gSprites[sGroudonClawSpriteId].y2 = 0; break; case 2: - gSprites[sGroudonShoulderSpriteId].pos2.x = -1; - gSprites[sGroudonShoulderSpriteId].pos2.y = 1; - gSprites[sGroudonClawSpriteId].pos2.x = -2; - gSprites[sGroudonClawSpriteId].pos2.y = 1; + gSprites[sGroudonShoulderSpriteId].x2 = -1; + gSprites[sGroudonShoulderSpriteId].y2 = 1; + gSprites[sGroudonClawSpriteId].x2 = -2; + gSprites[sGroudonClawSpriteId].y2 = 1; break; } } @@ -1860,12 +1860,12 @@ static void SpriteCB_DuoFight_Groudon(struct Sprite *sprite) static void DuoFight_SlideGroudonDown(struct Sprite *sprite) { s16 *data = sprite->data; - if (sprite->pos1.y <= 160) + if (sprite->y <= DISPLAY_HEIGHT) { - sprite->pos1.y += 8; - gSprites[sprite->sGroudonBodySpriteId].pos1.y += 8; - gSprites[sGroudonShoulderSpriteId].pos1.y += 8; - gSprites[sGroudonClawSpriteId].pos1.y += 8; + sprite->y += 8; + gSprites[sprite->sGroudonBodySpriteId].y += 8; + gSprites[sGroudonShoulderSpriteId].y += 8; + gSprites[sGroudonClawSpriteId].y += 8; } } @@ -1906,58 +1906,58 @@ static void SpriteCB_DuoFight_Kyogre(struct Sprite *sprite) s16 *data = sprite->data; data[5]++; data[5] &= 0xF; - if (!(data[5] & 7) && sprite->pos1.x != 152) + if (!(data[5] & 7) && sprite->x != 152) { - sprite->pos1.x++; - gSprites[sprite->data[0] >> 8].pos1.x++; - gSprites[sprite->data[0] & 0xFF].pos1.x++; - gSprites[data[1] >> 8].pos1.x++; - gSprites[data[1] & 0xFF].pos1.x++; - gSprites[data[2] >> 8].pos1.x++; - gSprites[data[2] & 0xFF].pos1.x++; - gSprites[data[3] >> 8].pos1.x++; - gSprites[data[3] & 0xFF].pos1.x++; - gSprites[data[4] >> 8].pos1.x++; - gSprites[data[4] & 0xFF].pos1.x++; + sprite->x++; + gSprites[sprite->data[0] >> 8].x++; + gSprites[sprite->data[0] & 0xFF].x++; + gSprites[data[1] >> 8].x++; + gSprites[data[1] & 0xFF].x++; + gSprites[data[2] >> 8].x++; + gSprites[data[2] & 0xFF].x++; + gSprites[data[3] >> 8].x++; + gSprites[data[3] & 0xFF].x++; + gSprites[data[4] >> 8].x++; + gSprites[data[4] & 0xFF].x++; } switch (gSprites[data[2] & 0xFF].animCmdIndex) { case 0: - sprite->pos2.y = 0; - gSprites[data[0] >> 8].pos2.y = 0; - gSprites[data[0] & 0xFF].pos2.y = 0; - gSprites[data[1] >> 8].pos2.y = 0; - gSprites[data[1] & 0xFF].pos2.y = 0; - gSprites[data[2] >> 8].pos2.y = 0; - gSprites[data[2] & 0xFF].pos2.y = 0; - gSprites[data[3] >> 8].pos2.y = 0; - gSprites[data[3] & 0xFF].pos2.y = 0; - gSprites[data[4] >> 8].pos2.y = 0; - gSprites[data[4] & 0xFF].pos2.y = 0; + sprite->y2 = 0; + gSprites[data[0] >> 8].y2 = 0; + gSprites[data[0] & 0xFF].y2 = 0; + gSprites[data[1] >> 8].y2 = 0; + gSprites[data[1] & 0xFF].y2 = 0; + gSprites[data[2] >> 8].y2 = 0; + gSprites[data[2] & 0xFF].y2 = 0; + gSprites[data[3] >> 8].y2 = 0; + gSprites[data[3] & 0xFF].y2 = 0; + gSprites[data[4] >> 8].y2 = 0; + gSprites[data[4] & 0xFF].y2 = 0; break; case 1: case 3: - sprite->pos2.y = 1; - gSprites[data[0] >> 8].pos2.y = 1; - gSprites[data[0] & 0xFF].pos2.y = 1; - gSprites[data[1] >> 8].pos2.y = 1; - gSprites[data[1] & 0xFF].pos2.y = 1; - gSprites[data[2] >> 8].pos2.y = 1; - gSprites[data[2] & 0xFF].pos2.y = 1; - gSprites[data[3] >> 8].pos2.y = 1; - gSprites[data[3] & 0xFF].pos2.y = 1; - gSprites[data[4] >> 8].pos2.y = 1; - gSprites[data[4] & 0xFF].pos2.y = 1; + sprite->y2 = 1; + gSprites[data[0] >> 8].y2 = 1; + gSprites[data[0] & 0xFF].y2 = 1; + gSprites[data[1] >> 8].y2 = 1; + gSprites[data[1] & 0xFF].y2 = 1; + gSprites[data[2] >> 8].y2 = 1; + gSprites[data[2] & 0xFF].y2 = 1; + gSprites[data[3] >> 8].y2 = 1; + gSprites[data[3] & 0xFF].y2 = 1; + gSprites[data[4] >> 8].y2 = 1; + gSprites[data[4] & 0xFF].y2 = 1; break; case 2: - sprite->pos2.y = 2; - gSprites[data[0] >> 8].pos2.y = 2; - gSprites[data[0] & 0xFF].pos2.y = 2; - gSprites[data[1] >> 8].pos2.y = 2; - gSprites[data[1] & 0xFF].pos2.y = 2; - gSprites[data[2] >> 8].pos2.y = 2; - gSprites[data[4] & 0xFF].pos2.y = 2; + sprite->y2 = 2; + gSprites[data[0] >> 8].y2 = 2; + gSprites[data[0] & 0xFF].y2 = 2; + gSprites[data[1] >> 8].y2 = 2; + gSprites[data[1] & 0xFF].y2 = 2; + gSprites[data[2] >> 8].y2 = 2; + gSprites[data[4] & 0xFF].y2 = 2; break; } } @@ -1965,19 +1965,19 @@ static void SpriteCB_DuoFight_Kyogre(struct Sprite *sprite) static void DuoFight_SlideKyogreDown(struct Sprite *sprite) { s16 *data = sprite->data; - if (sprite->pos1.y <= 160) + if (sprite->y <= DISPLAY_HEIGHT) { - sprite->pos1.y += 8; - gSprites[sprite->data[0] >> 8].pos1.y += 8; - gSprites[sprite->data[0] & 0xFF].pos1.y += 8; - gSprites[data[1] >> 8].pos1.y += 8; - gSprites[data[1] & 0xFF].pos1.y += 8; - gSprites[data[2] >> 8].pos1.y += 8; - gSprites[data[2] & 0xFF].pos1.y += 8; - gSprites[data[3] >> 8].pos1.y += 8; - gSprites[data[3] & 0xFF].pos1.y += 8; - gSprites[data[4] >> 8].pos1.y += 8; - gSprites[data[4] & 0xFF].pos1.y += 8; + sprite->y += 8; + gSprites[sprite->data[0] >> 8].y += 8; + gSprites[sprite->data[0] & 0xFF].y += 8; + gSprites[data[1] >> 8].y += 8; + gSprites[data[1] & 0xFF].y += 8; + gSprites[data[2] >> 8].y += 8; + gSprites[data[2] & 0xFF].y += 8; + gSprites[data[3] >> 8].y += 8; + gSprites[data[3] & 0xFF].y += 8; + gSprites[data[4] >> 8].y += 8; + gSprites[data[4] & 0xFF].y += 8; } } @@ -2045,7 +2045,7 @@ static void Task_RayTakesFlightAnim(u8 taskId) LoadTakesFlightSceneGfx(); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8)); - BlendPalettes(-1, 16, 0); + BlendPalettes(PALETTES_ALL, 16, 0); SetVBlankCallback(VBlankCB_RayquazaScene); CreateTask(Task_TakesFlight_CreateSmoke, 0); tState = 0; @@ -2064,7 +2064,7 @@ static void Task_HandleRayTakesFlight(u8 taskId) // Delay, then fade in if (tTimer == 8) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); tScale = 0; tScaleSpeed = 30; tYCoord = 0; @@ -2110,7 +2110,7 @@ static void Task_HandleRayTakesFlight(u8 taskId) if (tTimer > 295) { tState++; - BeginNormalPaletteFade(0xFFFFFFFF, 6, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 6, 0, 0x10, RGB_BLACK); } } break; @@ -2184,13 +2184,13 @@ static void SpriteCB_TakesFlight_Smoke(struct Sprite *sprite) { if (sprite->sTimer == 0) { - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; } else { - sprite->pos2.x += sTakesFlight_SmokeCoords[sprite->sSmokeId][0]; - sprite->pos2.y += sTakesFlight_SmokeCoords[sprite->sSmokeId][1]; + sprite->x2 += sTakesFlight_SmokeCoords[sprite->sSmokeId][0]; + sprite->y2 += sTakesFlight_SmokeCoords[sprite->sSmokeId][1]; } sprite->sTimer++; @@ -2284,7 +2284,7 @@ static void Task_RayDescendsAnim(u8 taskId) LoadDescendsSceneGfx(); SetGpuRegBits(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); - BlendPalettes(-1, 0x10, 0); + BlendPalettes(PALETTES_ALL, 0x10, 0); SetVBlankCallback(VBlankCB_RayquazaScene); sRayScene->revealedLightLine = 0; sRayScene->revealedLightTimer = 0; @@ -2305,7 +2305,7 @@ static void Task_HandleRayDescends(u8 taskId) // Delay, then fade in if (tTimer == 8) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); tTimer = 0; tState++; } @@ -2354,7 +2354,7 @@ static void Task_HandleRayDescends(u8 taskId) break; case 4: // Fade out - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_RayDescendsEnd; break; } @@ -2433,13 +2433,13 @@ static void SpriteCB_Descends_Rayquaza(struct Sprite *sprite) if (sTimer % sXMovePeriod == 0) { - sprite->pos2.x--; - gSprites[sTailSpriteId].pos2.x--; + sprite->x2--; + gSprites[sTailSpriteId].x2--; } if (sTimer % sYMovePeriod == 0) { - sprite->pos2.y++; - gSprites[sTailSpriteId].pos2.y++; + sprite->y2++; + gSprites[sTailSpriteId].y2++; } sTimer++; @@ -2501,7 +2501,7 @@ static void Task_RayChargesAnim(u8 taskId) InitChargesSceneBgs(); LoadChargesSceneGfx(); SetWindowsHideVertBorders(); - BlendPalettes(-1, 0x10, 0); + BlendPalettes(PALETTES_ALL, 0x10, 0); SetVBlankCallback(VBlankCB_RayquazaScene); tState = 0; tTimer = 0; @@ -2523,7 +2523,7 @@ static void Task_HandleRayCharges(u8 taskId) // Delay, then fade in if (tTimer == 8) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); tTimer = 0; tState++; } @@ -2559,7 +2559,7 @@ static void Task_HandleRayCharges(u8 taskId) break; case 3: // Fade out - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_RayChargesEnd; break; } @@ -2697,7 +2697,7 @@ static void Task_RayChasesAwayAnim(u8 taskId) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 14)); - BlendPalettes(-1, 0x10, 0); + BlendPalettes(PALETTES_ALL, 0x10, 0); SetVBlankCallback(VBlankCB_RayquazaScene); tState = 0; tTimer = 0; @@ -2720,7 +2720,7 @@ static void Task_HandleRayChasesAway(u8 taskId) if (tTimer == 8) { ChasesAway_CreateTrioSprites(taskId); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); tTimer = 0; tState++; } @@ -2760,14 +2760,14 @@ static void Task_HandleRayChasesAway(u8 taskId) tTimer++; if (tTimer % 144 == 0) { - BlendPalettesGradually(0x0000FFFE, 0, 16, 0, RGB_WHITEALPHA, 0, 0); - BlendPalettesGradually(0xFFFF0000, 0, 16, 0, RGB_BLACK, 0, 1); + BlendPalettesGradually(PALETTES_BG & ~1, 0, 16, 0, RGB_WHITEALPHA, 0, 0); + BlendPalettesGradually(PALETTES_OBJECTS, 0, 16, 0, RGB_BLACK, 0, 1); } } break; case 3: // Fade out - BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 4, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_RayChasesAwayEnd; break; } @@ -2902,14 +2902,14 @@ static void SpriteCB_ChasesAway_DuoRingPush(struct Sprite *sprite) { if (!sprite->sIsKyogre) { - sprite->pos1.x -= sprite->sSpeed; - gSprites[sprite->sBodyPartSpriteId1].pos1.x -= sprite->sSpeed; + sprite->x -= sprite->sSpeed; + gSprites[sprite->sBodyPartSpriteId1].x -= sprite->sSpeed; } else { - sprite->pos1.x += sprite->sSpeed; - gSprites[sprite->sBodyPartSpriteId1].pos1.x += sprite->sSpeed; - gSprites[sprite->sBodyPartSpriteId2].pos1.x += sprite->sSpeed; + sprite->x += sprite->sSpeed; + gSprites[sprite->sBodyPartSpriteId1].x += sprite->sSpeed; + gSprites[sprite->sBodyPartSpriteId2].x += sprite->sSpeed; } sprite->sDecel++; @@ -2949,18 +2949,18 @@ static void SpriteCB_ChasesAway_GroudonLeave(struct Sprite *sprite) case 2: if (sprite->animDelayCounter % 12 == 0) { - sprite->pos1.x -= 2; - gSprites[sprite->data[0]].pos1.x -=2; + sprite->x -= 2; + gSprites[sprite->data[0]].x -=2; } - gSprites[sprite->data[0]].pos2.y = 0; + gSprites[sprite->data[0]].y2 = 0; break; case 1: case 3: - gSprites[sprite->data[0]].pos2.y = -2; + gSprites[sprite->data[0]].y2 = -2; if ((sprite->animDelayCounter & 15) == 0) { - sprite->pos1.y++; - gSprites[sprite->data[0]].pos1.y++; + sprite->y++; + gSprites[sprite->data[0]].y++; } break; } @@ -2982,10 +2982,10 @@ static void SpriteCB_ChasesAway_KyogreLeave(struct Sprite *sprite) { if ((sprite->data[4] & 3) == 0) { - if (sprite->pos2.x == 1) - sprite->pos2.x = -1; + if (sprite->x2 == 1) + sprite->x2 = -1; else - sprite->pos2.x = 1; + sprite->x2 = 1; } if (sprite->data[5] == 128) { @@ -2998,10 +2998,10 @@ static void SpriteCB_ChasesAway_KyogreLeave(struct Sprite *sprite) } if (sprite->data[5] > 127) { - if (sprite->pos2.y != 32) + if (sprite->y2 != 32) { sprite->data[6]++; - sprite->pos2.y = sprite->data[6] >> 4; + sprite->y2 = sprite->data[6] >> 4; } } else @@ -3029,8 +3029,8 @@ static void SpriteCB_ChasesAway_Rayquaza(struct Sprite *sprite) s16 frame = sprite->sTimer; if (frame <= 64) { - sprite->pos2.y += 2; - gSprites[sprite->sTailSpriteId].pos2.y += 2; + sprite->y2 += 2; + gSprites[sprite->sTailSpriteId].y2 += 2; if (sprite->sTimer == 64) { ChasesAway_SetRayquazaAnim(sprite, 1, 0, -48); @@ -3062,8 +3062,8 @@ static void SpriteCB_ChasesAway_Rayquaza(struct Sprite *sprite) { SpriteCB_ChasesAway_RayquazaFloat(sprite); ChasesAway_SetRayquazaAnim(sprite, 3, 48, 16); - sprite->pos2.x = 1; - gSprites[sprite->sTailSpriteId].pos2.x = 1; + sprite->x2 = 1; + gSprites[sprite->sTailSpriteId].x2 = 1; PlayCry1(SPECIES_RAYQUAZA, 0); CreateTask(Task_ChasesAway_AnimateRing, 0); } @@ -3072,8 +3072,8 @@ static void SpriteCB_ChasesAway_Rayquaza(struct Sprite *sprite) switch (frame) { case 376: - sprite->pos2.x = 0; - gSprites[sprite->sTailSpriteId].pos2.x = 0; + sprite->x2 = 0; + gSprites[sprite->sTailSpriteId].x2 = 0; SpriteCB_ChasesAway_RayquazaFloat(sprite); ChasesAway_SetRayquazaAnim(sprite, 2, 48, 16); sprite->callback = SpriteCB_ChasesAway_RayquazaFloat; @@ -3086,8 +3086,8 @@ static void SpriteCB_ChasesAway_Rayquaza(struct Sprite *sprite) if (sprite->sTimer > 328 && (sprite->sTimer & 1) == 0) { - sprite->pos2.x *= -1; - gSprites[sprite->sTailSpriteId].pos2.x = sprite->pos2.x; + sprite->x2 *= -1; + gSprites[sprite->sTailSpriteId].x2 = sprite->x2; } sprite->sTimer++; @@ -3098,8 +3098,8 @@ static void SpriteCB_ChasesAway_RayquazaFloat(struct Sprite *body) struct Sprite *tail = &gSprites[body->sTailSpriteId]; if (!(body->sFloatTimer & tail->sTailFloatDelay)) { - body->pos2.y += body->sYOffset; - gSprites[body->sTailSpriteId].pos2.y += body->sYOffset; // why access gSprites again? tail->pos2.y would be sufficient + body->y2 += body->sYOffset; + gSprites[body->sTailSpriteId].y2 += body->sYOffset; // why access gSprites again? tail->y2 would be sufficient body->sYOffset += body->sYOffsetDir; if (body->sYOffset >= tail->sTailFloatPeak || body->sYOffset <= -tail->sTailFloatPeak) { @@ -3119,11 +3119,11 @@ static void ChasesAway_SetRayquazaAnim(struct Sprite *body, u8 animNum, s16 x, s { struct Sprite *tail = &gSprites[body->sTailSpriteId]; - tail->pos1.x = body->pos1.x + x; - tail->pos1.y = body->pos1.y + y; + tail->x = body->x + x; + tail->y = body->y + y; - tail->pos2.x = body->pos2.x; - tail->pos2.y = body->pos2.y; + tail->x2 = body->x2; + tail->y2 = body->y2; StartSpriteAnim(body, animNum); StartSpriteAnim(tail, animNum); diff --git a/src/record_mixing.c b/src/record_mixing.c index 898459c0a5..aa6e4eef2a 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -50,8 +50,8 @@ struct PlayerRecordsRS TVShow tvShows[TV_SHOWS_COUNT]; PokeNews pokeNews[POKE_NEWS_COUNT]; OldMan oldMan; - struct EasyChatPair easyChatPairs[5]; - struct RecordMixingDayCareMail dayCareMail; + struct DewfordTrend dewfordTrends[SAVED_TRENDS_COUNT]; + struct RecordMixingDaycareMail daycareMail; struct RSBattleTowerRecord battleTowerRecord; u16 giftItem; u16 filler11C8[0x32]; @@ -63,8 +63,8 @@ struct PlayerRecordsEmerald /* 0x0c80 */ TVShow tvShows[TV_SHOWS_COUNT]; /* 0x1004 */ PokeNews pokeNews[POKE_NEWS_COUNT]; /* 0x1044 */ OldMan oldMan; - /* 0x1084 */ struct EasyChatPair easyChatPairs[5]; - /* 0x10ac */ struct RecordMixingDayCareMail dayCareMail; + /* 0x1084 */ struct DewfordTrend dewfordTrends[SAVED_TRENDS_COUNT]; + /* 0x10ac */ struct RecordMixingDaycareMail daycareMail; /* 0x1124 */ struct EmeraldBattleTowerRecord battleTowerRecord; /* 0x1210 */ u16 giftItem; /* 0x1214 */ LilycoveLady lilycoveLady; @@ -86,18 +86,17 @@ static struct SecretBase *sSecretBasesSave; static TVShow *sTvShowsSave; static PokeNews *sPokeNewsSave; static OldMan *sOldManSave; -static struct EasyChatPair *sEasyChatPairsSave; -static struct RecordMixingDayCareMail *gUnknown_03001148; +static struct DewfordTrend *sDewfordTrendsSave; +static struct RecordMixingDaycareMail *sDaycareMailSave; static void *sBattleTowerSave; static LilycoveLady *sLilycoveLadySave; static void *sApprenticesSave; static void *sBattleTowerSave_Duplicate; static u32 sRecordStructSize; static u8 gUnknown_03001160; -static u32 filler_03001164; static struct PlayerHallRecords *gUnknown_03001168[3]; -static EWRAM_DATA struct RecordMixingDayCareMail gUnknown_02039F9C = {0}; +static EWRAM_DATA struct RecordMixingDaycareMail sDaycareMail = {0}; static EWRAM_DATA union PlayerRecords *sReceivedRecords = NULL; static EWRAM_DATA union PlayerRecords *sSentRecord = NULL; @@ -116,14 +115,14 @@ static void ReceiveOldManData(OldMan *, size_t, u8); static void ReceiveBattleTowerData(void *battleTowerRecord, size_t, u8); static void ReceiveLilycoveLadyData(LilycoveLady *, size_t, u8); static void sub_80E7B2C(const u8 *); -static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *); +static void ReceiveDaycareMailData(struct RecordMixingDaycareMail *, size_t, u8, TVShow *); static void ReceiveGiftItem(u16 *item, u8 which); static void Task_DoRecordMixing(u8 taskId); static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src); static void ReceiveApprenticeData(struct Apprentice *mixApprentice, size_t recordSize, u32 multiplayerId); static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, size_t arg1, u32 arg2); -static void sub_80E89F8(struct RecordMixingDayCareMail *dst); -static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src); +static void GetRecordMixingDaycareMail(struct RecordMixingDaycareMail *dst); +static void SanitizeDaycareMailForRuby(struct RecordMixingDaycareMail *src); static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *arg0); static void SanitizeRubyBattleTowerRecord(struct RSBattleTowerRecord *src); @@ -180,8 +179,8 @@ static void SetSrcLookupPointers(void) sTvShowsSave = gSaveBlock1Ptr->tvShows; sPokeNewsSave = gSaveBlock1Ptr->pokeNews; sOldManSave = &gSaveBlock1Ptr->oldMan; - sEasyChatPairsSave = gSaveBlock1Ptr->easyChatPairs; - gUnknown_03001148 = &gUnknown_02039F9C; + sDewfordTrendsSave = gSaveBlock1Ptr->dewfordTrends; + sDaycareMailSave = &sDaycareMail; sBattleTowerSave = &gSaveBlock2Ptr->frontier.towerPlayer; sLilycoveLadySave = &gSaveBlock1Ptr->lilycoveLady; sApprenticesSave = gSaveBlock2Ptr->apprentices; @@ -192,11 +191,11 @@ static void PrepareUnknownExchangePacket(struct PlayerRecordsRS *dest) { memcpy(dest->secretBases, sSecretBasesSave, sizeof(dest->secretBases)); memcpy(dest->tvShows, sTvShowsSave, sizeof(dest->tvShows)); - sub_80F14F8(dest->tvShows); + SanitizeTVShowLocationsForRuby(dest->tvShows); memcpy(dest->pokeNews, sPokeNewsSave, sizeof(dest->pokeNews)); memcpy(&dest->oldMan, sOldManSave, sizeof(dest->oldMan)); - memcpy(dest->easyChatPairs, sEasyChatPairsSave, sizeof(dest->easyChatPairs)); - sub_80E89F8(&dest->dayCareMail); + memcpy(dest->dewfordTrends, sDewfordTrendsSave, sizeof(dest->dewfordTrends)); + GetRecordMixingDaycareMail(&dest->daycareMail); EmeraldBattleTowerRecordToRuby(sBattleTowerSave, &dest->battleTowerRecord); if (GetMultiplayerId() == 0) @@ -208,13 +207,13 @@ static void PrepareExchangePacketForRubySapphire(struct PlayerRecordsRS *dest) memcpy(dest->secretBases, sSecretBasesSave, sizeof(dest->secretBases)); ClearJapaneseSecretBases(dest->secretBases); memcpy(dest->tvShows, sTvShowsSave, sizeof(dest->tvShows)); - sub_80F1208(dest->tvShows); + SanitizeTVShowsForRuby(dest->tvShows); memcpy(dest->pokeNews, sPokeNewsSave, sizeof(dest->pokeNews)); memcpy(&dest->oldMan, sOldManSave, sizeof(dest->oldMan)); - sub_8120B70(&dest->oldMan); - memcpy(dest->easyChatPairs, sEasyChatPairsSave, sizeof(dest->easyChatPairs)); - sub_80E89F8(&dest->dayCareMail); - SanitizeDayCareMailForRuby(&dest->dayCareMail); + SanitizeMauvilleOldManForRuby(&dest->oldMan); + memcpy(dest->dewfordTrends, sDewfordTrendsSave, sizeof(dest->dewfordTrends)); + GetRecordMixingDaycareMail(&dest->daycareMail); + SanitizeDaycareMailForRuby(&dest->daycareMail); EmeraldBattleTowerRecordToRuby(sBattleTowerSave, &dest->battleTowerRecord); SanitizeRubyBattleTowerRecord(&dest->battleTowerRecord); @@ -225,7 +224,7 @@ static void PrepareExchangePacketForRubySapphire(struct PlayerRecordsRS *dest) static void PrepareExchangePacket(void) { SetPlayerSecretBaseParty(); - sub_80F0BB8(); + DeactivateAllNormalTVShows(); SetSrcLookupPointers(); if (Link_AnyPartnersPlayingRubyOrSapphire()) @@ -242,8 +241,8 @@ static void PrepareExchangePacket(void) memcpy(sSentRecord->emerald.pokeNews, sPokeNewsSave, sizeof(sSentRecord->emerald.pokeNews)); memcpy(&sSentRecord->emerald.oldMan, sOldManSave, sizeof(sSentRecord->emerald.oldMan)); memcpy(&sSentRecord->emerald.lilycoveLady, sLilycoveLadySave, sizeof(sSentRecord->emerald.lilycoveLady)); - memcpy(sSentRecord->emerald.easyChatPairs, sEasyChatPairsSave, sizeof(sSentRecord->emerald.easyChatPairs)); - sub_80E89F8(&sSentRecord->emerald.dayCareMail); + memcpy(sSentRecord->emerald.dewfordTrends, sDewfordTrendsSave, sizeof(sSentRecord->emerald.dewfordTrends)); + GetRecordMixingDaycareMail(&sSentRecord->emerald.daycareMail); memcpy(&sSentRecord->emerald.battleTowerRecord, sBattleTowerSave, sizeof(sSentRecord->emerald.battleTowerRecord)); SanitizeEmeraldBattleTowerRecord(&sSentRecord->emerald.battleTowerRecord); @@ -262,12 +261,12 @@ static void ReceiveExchangePacket(u32 which) // Ruby/Sapphire sub_80E7B2C((void *)sReceivedRecords->ruby.tvShows); ReceiveSecretBasesData(sReceivedRecords->ruby.secretBases, sizeof(struct PlayerRecordsRS), which); - ReceiveDaycareMailData(&sReceivedRecords->ruby.dayCareMail, sizeof(struct PlayerRecordsRS), which, sReceivedRecords->ruby.tvShows); + ReceiveDaycareMailData(&sReceivedRecords->ruby.daycareMail, sizeof(struct PlayerRecordsRS), which, sReceivedRecords->ruby.tvShows); ReceiveBattleTowerData(&sReceivedRecords->ruby.battleTowerRecord, sizeof(struct PlayerRecordsRS), which); ReceiveTvShowsData(sReceivedRecords->ruby.tvShows, sizeof(struct PlayerRecordsRS), which); ReceivePokeNewsData(sReceivedRecords->ruby.pokeNews, sizeof(struct PlayerRecordsRS), which); ReceiveOldManData(&sReceivedRecords->ruby.oldMan, sizeof(struct PlayerRecordsRS), which); - ReceiveEasyChatPairsData(sReceivedRecords->ruby.easyChatPairs, sizeof(struct PlayerRecordsRS), which); + ReceiveDewfordTrendData(sReceivedRecords->ruby.dewfordTrends, sizeof(struct PlayerRecordsRS), which); ReceiveGiftItem(&sReceivedRecords->ruby.giftItem, which); } else @@ -278,8 +277,8 @@ static void ReceiveExchangePacket(u32 which) ReceiveTvShowsData(sReceivedRecords->emerald.tvShows, sizeof(struct PlayerRecordsEmerald), which); ReceivePokeNewsData(sReceivedRecords->emerald.pokeNews, sizeof(struct PlayerRecordsEmerald), which); ReceiveOldManData(&sReceivedRecords->emerald.oldMan, sizeof(struct PlayerRecordsEmerald), which); - ReceiveEasyChatPairsData(sReceivedRecords->emerald.easyChatPairs, sizeof(struct PlayerRecordsEmerald), which); - ReceiveDaycareMailData(&sReceivedRecords->emerald.dayCareMail, sizeof(struct PlayerRecordsEmerald), which, sReceivedRecords->emerald.tvShows); + ReceiveDewfordTrendData(sReceivedRecords->emerald.dewfordTrends, sizeof(struct PlayerRecordsEmerald), which); + ReceiveDaycareMailData(&sReceivedRecords->emerald.daycareMail, sizeof(struct PlayerRecordsEmerald), which, sReceivedRecords->emerald.tvShows); ReceiveBattleTowerData(&sReceivedRecords->emerald.battleTowerRecord, sizeof(struct PlayerRecordsEmerald), which); ReceiveGiftItem(&sReceivedRecords->emerald.giftItem, which); ReceiveLilycoveLadyData(&sReceivedRecords->emerald.lilycoveLady, sizeof(struct PlayerRecordsEmerald), which); @@ -320,7 +319,7 @@ static void Task_RecordMixing_Main(u8 taskId) { case 0: // init sSentRecord = malloc(sizeof(union PlayerRecords)); - sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4); + sReceivedRecords = malloc(sizeof(union PlayerRecords) * MAX_LINK_PLAYERS); SetLocalLinkPlayerId(gSpecialVar_0x8005); VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; @@ -364,7 +363,7 @@ static void Task_RecordMixing_Main(u8 taskId) { free(sReceivedRecords); free(sSentRecord); - sub_808729C(); + SetLinkWaitingForScript(); if (gWirelessCommType != 0) { CreateTask(Task_ReturnToFieldRecordMixing, 10); @@ -666,7 +665,7 @@ static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u { memcpy((void *)battleTowerRecord + recordSize * which, (void *)battleTowerRecord + recordSize * mixIndices[which], sizeof(struct EmeraldBattleTowerRecord)); dest = (void *)battleTowerRecord + recordSize * which; - for (i = 0; i < 4; i ++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { btPokemon = &dest->party[i]; if (btPokemon->species != SPECIES_NONE && IsStringJapanese(btPokemon->nickname)) @@ -707,22 +706,22 @@ static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSiz } } -static u8 sub_80E7A9C(struct DayCareMail *rmMail) +static u8 sub_80E7A9C(struct DaycareMail *rmMail) { return rmMail->message.itemId; } -static void sub_80E7AA4(struct RecordMixingDayCareMail *src, size_t recordSize, u8 (*idxs)[2], u8 which0, u8 which1) +static void sub_80E7AA4(struct RecordMixingDaycareMail *src, size_t recordSize, u8 (*idxs)[2], u8 which0, u8 which1) { - struct DayCareMail buffer; - struct RecordMixingDayCareMail *mail1; - struct RecordMixingDayCareMail *mail2; + struct DaycareMail buffer; + struct RecordMixingDaycareMail *mail1; + struct RecordMixingDaycareMail *mail2; mail1 = (void *)src + recordSize * idxs[which0][0]; - memcpy(&buffer, &mail1->mail[idxs[which0][1]], sizeof(struct DayCareMail)); + memcpy(&buffer, &mail1->mail[idxs[which0][1]], sizeof(struct DaycareMail)); mail2 = (void *)src + recordSize * idxs[which1][0]; - memcpy(&mail1->mail[idxs[which0][1]], &mail2->mail[idxs[which1][1]], sizeof(struct DayCareMail)); - memcpy(&mail2->mail[idxs[which1][1]], &buffer, sizeof(struct DayCareMail)); + memcpy(&mail1->mail[idxs[which0][1]], &mail2->mail[idxs[which1][1]], sizeof(struct DaycareMail)); + memcpy(&mail2->mail[idxs[which1][1]], &buffer, sizeof(struct DaycareMail)); } static void sub_80E7B2C(const u8 *src) @@ -731,7 +730,7 @@ static void sub_80E7B2C(const u8 *src) s32 i; sum = 0; - for (i = 0; i < 256; i ++) + for (i = 0; i < 256; i++) sum += src[i]; gUnknown_03001160 = sum; @@ -742,17 +741,17 @@ static u8 sub_80E7B54(void) return gUnknown_03001160; } -static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t recordSize, u8 which, TVShow *shows) +static void ReceiveDaycareMailData(struct RecordMixingDaycareMail *src, size_t recordSize, u8 which, TVShow *shows) { u16 i, j; u8 linkPlayerCount; u8 tableId; - struct RecordMixingDayCareMail *_src; + struct RecordMixingDaycareMail *_src; u8 which0, which1; void *ptr; u8 sp04[4]; u8 sp08[4]; - struct RecordMixingDayCareMail *sp0c[4]; + struct RecordMixingDaycareMail *sp0c[4]; u8 sp1c[4][2]; u8 sp24[4][2]; u8 sp34; @@ -778,10 +777,10 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r _src = (void *)src + i * recordSize; language = gLinkPlayers[i].language; version = gLinkPlayers[i].version & 0xFF; - for (j = 0; j < _src->numDaycareMons; j ++) + for (j = 0; j < _src->numDaycareMons; j++) { u16 otNameLanguage, nicknameLanguage; - struct DayCareMail *recordMixingMail = &_src->mail[j]; + struct DaycareMail *recordMixingMail = &_src->mail[j]; if (!recordMixingMail->message.itemId) continue; @@ -836,7 +835,7 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r if (_src->numDaycareMons == 0) continue; - for (j = 0; j < _src->numDaycareMons; j ++) + for (j = 0; j < _src->numDaycareMons; j++) { if (!_src->holdsItem[j]) sp1c[i][j] = 1; @@ -914,8 +913,8 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r } _src = (void *)src + which * recordSize; - memcpy(&gSaveBlock1Ptr->daycare.mons[0].mail, &_src->mail[0], sizeof(struct DayCareMail)); - memcpy(&gSaveBlock1Ptr->daycare.mons[1].mail, &_src->mail[1], sizeof(struct DayCareMail)); + memcpy(&gSaveBlock1Ptr->daycare.mons[0].mail, &_src->mail[0], sizeof(struct DaycareMail)); + memcpy(&gSaveBlock1Ptr->daycare.mons[1].mail, &_src->mail[1], sizeof(struct DaycareMail)); SeedRng(oldSeed); } @@ -958,7 +957,7 @@ static void Task_DoRecordMixing(u8 taskId) case 2: SetContinueGameWarpStatusToDynamicWarp(); FullSaveGame(); - task->data[0] ++; + task->data[0]++; break; case 3: if (CheckSaveFile()) @@ -972,7 +971,7 @@ static void Task_DoRecordMixing(u8 taskId) if (++task->data[1] > 10) { SetCloseLinkCallback(); - task->data[0] ++; + task->data[0]++; } break; case 5: @@ -985,7 +984,7 @@ static void Task_DoRecordMixing(u8 taskId) if (!sub_801048C(FALSE)) { CreateTask(Task_LinkSave, 5); - task->data[0] ++; + task->data[0]++; } break; case 7: // wait for Task_LinkSave to finish. @@ -1004,7 +1003,7 @@ static void Task_DoRecordMixing(u8 taskId) break; case 8: SetLinkStandbyCallback(); - task->data[0] ++; + task->data[0]++; break; case 9: if (IsLinkTaskFinished()) @@ -1062,13 +1061,9 @@ static void GetSavedApprentices(struct Apprentice *dst, struct Apprentice *src) break; case 2: if (Random2() > 0x3333) - { dst[1] = src[gSaveBlock2Ptr->playerApprentice.saveId + 1]; - } else - { dst[1] = src[((gSaveBlock2Ptr->playerApprentice.saveId + 1) % (APPRENTICE_COUNT - 1) + 1)]; - } break; } } @@ -1222,7 +1217,7 @@ static void sub_80E8578(struct RecordMixingHallRecords *dst, void *hallRecords, for (l = 0; l < 3; l++) { if (GetTrainerId(dst->hallRecords2P[j][l].id1) == GetTrainerId(gUnknown_03001168[k]->twoPlayers[j].id1) - && GetTrainerId(dst->hallRecords2P[j][l].id2) == GetTrainerId(gUnknown_03001168[k]->twoPlayers[j].id2)) + && GetTrainerId(dst->hallRecords2P[j][l].id2) == GetTrainerId(gUnknown_03001168[k]->twoPlayers[j].id2)) { var_68++; if (dst->hallRecords2P[j][l].winStreak < gUnknown_03001168[k]->twoPlayers[j].winStreak) @@ -1309,21 +1304,21 @@ static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, siz Free(largeStructPtr); } -static void sub_80E89F8(struct RecordMixingDayCareMail *dst) +static void GetRecordMixingDaycareMail(struct RecordMixingDaycareMail *dst) { - gUnknown_02039F9C.mail[0] = gSaveBlock1Ptr->daycare.mons[0].mail; - gUnknown_02039F9C.mail[1] = gSaveBlock1Ptr->daycare.mons[1].mail; - InitDaycareMailRecordMixing(&gSaveBlock1Ptr->daycare, &gUnknown_02039F9C); - *dst = *gUnknown_03001148; + sDaycareMail.mail[0] = gSaveBlock1Ptr->daycare.mons[0].mail; + sDaycareMail.mail[1] = gSaveBlock1Ptr->daycare.mons[1].mail; + InitDaycareMailRecordMixing(&gSaveBlock1Ptr->daycare, &sDaycareMail); + *dst = *sDaycareMailSave; } -static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src) +static void SanitizeDaycareMailForRuby(struct RecordMixingDaycareMail *src) { s32 i; for (i = 0; i < src->numDaycareMons; i++) { - struct DayCareMail *mail = &src->mail[i]; + struct DaycareMail *mail = &src->mail[i]; if (mail->message.itemId != 0) { if (mail->gameLanguage != LANGUAGE_JAPANESE) @@ -1343,10 +1338,10 @@ static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *ds { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) { struct BattleTowerPokemon *towerMon = &dst->party[i]; - if (towerMon->species != 0) + if (towerMon->species != SPECIES_NONE) StripExtCtrlCodes(towerMon->nickname); } diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 881c2d3ec8..e29792766e 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -55,7 +55,7 @@ struct RecordedBattleSave u16 opponentA; u16 opponentB; u16 partnerId; - u16 field_4FA; + u16 multiplayerId; u8 lvlMode; u8 frontierFacility; u8 frontierBrainSymbol; @@ -75,16 +75,16 @@ struct RecordedBattleSave EWRAM_DATA u32 gRecordedBattleRngSeed = 0; EWRAM_DATA u32 gBattlePalaceMoveSelectionRngValue = 0; EWRAM_DATA static u8 sBattleRecords[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE] = {0}; -EWRAM_DATA static u16 sRecordedBytesNo[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA static u16 sUnknown_0203C79C[4] = {0}; -EWRAM_DATA static u16 sUnknown_0203C7A4[4] = {0}; -EWRAM_DATA static u8 sUnknown_0203C7AC = 0; +EWRAM_DATA static u16 sBattlerRecordSizes[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA static u16 sBattlerPrevRecordSizes[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA static u16 sBattlerSavedRecordSizes[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA static u8 sRecordMode = 0; EWRAM_DATA static u8 sLvlMode = 0; EWRAM_DATA static u8 sFrontierFacility = 0; EWRAM_DATA static u8 sFrontierBrainSymbol = 0; EWRAM_DATA static MainCallback sCallback2_AfterRecordedBattle = NULL; -EWRAM_DATA u8 gUnknown_0203C7B4 = 0; -EWRAM_DATA static u8 sUnknown_0203C7B5 = 0; +EWRAM_DATA u8 gRecordedBattleMultiplayerId = 0; +EWRAM_DATA static u8 sFrontierPassFlag = 0; EWRAM_DATA static u8 sBattleScene = 0; EWRAM_DATA static u8 sTextSpeed = 0; EWRAM_DATA static u32 sBattleFlags = 0; @@ -93,7 +93,7 @@ EWRAM_DATA static struct Pokemon sSavedPlayerParty[PARTY_SIZE] = {0}; EWRAM_DATA static struct Pokemon sSavedOpponentParty[PARTY_SIZE] = {0}; EWRAM_DATA static u16 sPlayerMonMoves[2][MAX_MON_MOVES] = {0}; EWRAM_DATA static struct PlayerInfo sPlayers[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA static u8 sUnknown_0203CCD0 = 0; +EWRAM_DATA static bool8 sUnknown_0203CCD0 = 0; EWRAM_DATA static u8 sRecordMixFriendName[PLAYER_NAME_LENGTH + 1] = {0}; EWRAM_DATA static u8 sRecordMixFriendClass = 0; EWRAM_DATA static u8 sApprenticeId = 0; @@ -103,26 +103,25 @@ EWRAM_DATA static u8 sBattleOutcome = 0; static u8 sRecordMixFriendLanguage; static u8 sApprenticeLanguage; -// this file's functions -static u8 sub_8185278(u8 *arg0, u8 *arg1, u8 *arg2); -static bool32 CopyRecordedBattleFromSave(struct RecordedBattleSave *dst); +static u8 GetNextRecordedDataByte(u8 *, u8 *, u8 *); +static bool32 CopyRecordedBattleFromSave(struct RecordedBattleSave *); static void RecordedBattle_RestoreSavedParties(void); static void CB2_RecordedBattle(void); -void sub_8184DA4(u8 arg0) +void RecordedBattle_Init(u8 mode) { s32 i, j; - sUnknown_0203C7AC = arg0; - sUnknown_0203CCD0 = 0; + sRecordMode = mode; + sUnknown_0203CCD0 = FALSE; for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - sRecordedBytesNo[i] = 0; - sUnknown_0203C79C[i] = 0; - sUnknown_0203C7A4[i] = 0; + sBattlerRecordSizes[i] = 0; + sBattlerPrevRecordSizes[i] = 0; + sBattlerSavedRecordSizes[i] = 0; - if (arg0 == 1) + if (mode == B_RECORD_MODE_RECORDING) { for (j = 0; j < BATTLER_RECORD_SIZE; j++) { @@ -138,13 +137,13 @@ void sub_8184E58(void) { s32 i, j; - if (sUnknown_0203C7AC == 1) + if (sRecordMode == B_RECORD_MODE_RECORDING) { gRecordedBattleRngSeed = gRngValue; sFrontierFacility = VarGet(VAR_FRONTIER_FACILITY); sFrontierBrainSymbol = GetFronterBrainSymbol(); } - else if (sUnknown_0203C7AC == 2) + else if (sRecordMode == B_RECORD_MODE_PLAYBACK) { gRngValue = gRecordedBattleRngSeed; } @@ -154,7 +153,7 @@ void sub_8184E58(void) u8 linkPlayersCount; u8 text[30]; - gUnknown_0203C7B4 = GetMultiplayerId(); + gRecordedBattleMultiplayerId = GetMultiplayerId(); linkPlayersCount = GetLinkPlayerCount(); for (i = 0; i < MAX_BATTLERS_COUNT; i++) @@ -195,9 +194,9 @@ void sub_8184E58(void) void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action) { - if (sRecordedBytesNo[battlerId] < BATTLER_RECORD_SIZE && sUnknown_0203C7AC != 2) + if (sBattlerRecordSizes[battlerId] < BATTLER_RECORD_SIZE && sRecordMode != B_RECORD_MODE_PLAYBACK) { - sBattleRecords[battlerId][sRecordedBytesNo[battlerId]++] = action; + sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]++] = action; } } @@ -207,9 +206,9 @@ void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear) for (i = 0; i < bytesToClear; i++) { - sRecordedBytesNo[battlerId]--; - sBattleRecords[battlerId][sRecordedBytesNo[battlerId]] = 0xFF; - if (sRecordedBytesNo[battlerId] == 0) + sBattlerRecordSizes[battlerId]--; + sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]] = 0xFF; + if (sBattlerRecordSizes[battlerId] == 0) break; } } @@ -217,54 +216,55 @@ void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear) u8 RecordedBattle_GetBattlerAction(u8 battlerId) { // Trying to read past array or invalid action byte, battle is over. - if (sRecordedBytesNo[battlerId] >= BATTLER_RECORD_SIZE || sBattleRecords[battlerId][sRecordedBytesNo[battlerId]] == 0xFF) + if (sBattlerRecordSizes[battlerId] >= BATTLER_RECORD_SIZE || sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]] == 0xFF) { gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah ResetPaletteFadeControl(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); SetMainCallback2(CB2_QuitRecordedBattle); return 0xFF; } else { - return sBattleRecords[battlerId][sRecordedBytesNo[battlerId]++]; + return sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]++]; } } -u8 sub_81850D0(void) +// Unused +static u8 GetRecordedBattleMode(void) { - return sUnknown_0203C7AC; + return sRecordMode; } -u8 sub_81850DC(u8 *arg0) +u8 RecordedBattle_BufferNewBattlerData(u8 *dst) { u8 i, j; - u8 ret = 0; + u8 idx = 0; for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - if (sRecordedBytesNo[i] != sUnknown_0203C79C[i]) + if (sBattlerRecordSizes[i] != sBattlerPrevRecordSizes[i]) { - arg0[ret++] = i; - arg0[ret++] = sRecordedBytesNo[i] - sUnknown_0203C79C[i]; + dst[idx++] = i; + dst[idx++] = sBattlerRecordSizes[i] - sBattlerPrevRecordSizes[i]; - for (j = 0; j < sRecordedBytesNo[i] - sUnknown_0203C79C[i]; j++) + for (j = 0; j < sBattlerRecordSizes[i] - sBattlerPrevRecordSizes[i]; j++) { - arg0[ret++] = sBattleRecords[i][sUnknown_0203C79C[i] + j]; + dst[idx++] = sBattleRecords[i][sBattlerPrevRecordSizes[i] + j]; } - sUnknown_0203C79C[i] = sRecordedBytesNo[i]; + sBattlerPrevRecordSizes[i] = sBattlerRecordSizes[i]; } } - return ret; + return idx; } -void sub_81851A8(u8 *arg0) +void RecordedBattle_RecordAllBattlerData(u8 *src) { s32 i; - u8 var1 = 2; - u8 var2; + u8 idx = 2; + u8 size; if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) return; @@ -277,23 +277,23 @@ void sub_81851A8(u8 *arg0) if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { - for (var2 = *arg0; var2 != 0;) + for (size = *src; size != 0;) { - u8 unkVar = sub_8185278(arg0, &var1, &var2); - u8 unkVar2 = sub_8185278(arg0, &var1, &var2); + u8 battlerId = GetNextRecordedDataByte(src, &idx, &size); + u8 numActions = GetNextRecordedDataByte(src, &idx, &size); - for (i = 0; i < unkVar2; i++) + for (i = 0; i < numActions; i++) { - sBattleRecords[unkVar][sUnknown_0203C7A4[unkVar]++] = sub_8185278(arg0, &var1, &var2); + sBattleRecords[battlerId][sBattlerSavedRecordSizes[battlerId]++] = GetNextRecordedDataByte(src, &idx, &size); } } } } -static u8 sub_8185278(u8 *arg0, u8 *arg1, u8 *arg2) +static u8 GetNextRecordedDataByte(u8 *data, u8 *idx, u8 *size) { - (*arg2)--; - return arg0[(*arg1)++]; + (*size)--; + return data[(*idx)++]; } bool32 CanCopyRecordedBattleSaveData(void) @@ -362,11 +362,14 @@ bool32 MoveRecordedBattleToSaveData(void) if (sBattleFlags & BATTLE_TYPE_LINK) { - battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20)) | BATTLE_TYPE_x2000000; + battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_LINK_IN_BATTLE)) | BATTLE_TYPE_RECORDED_LINK; + // BATTLE_TYPE_RECORDED_IS_MASTER set indicates battle will play + // out from player's perspective (i.e. player with back to camera) + // Otherwise player will appear on "opponent" side if (sBattleFlags & BATTLE_TYPE_IS_MASTER) { - battleSave->battleFlags |= BATTLE_TYPE_x80000000; + battleSave->battleFlags |= BATTLE_TYPE_RECORDED_IS_MASTER; } else if (sBattleFlags & BATTLE_TYPE_MULTI) { @@ -374,13 +377,13 @@ bool32 MoveRecordedBattleToSaveData(void) { case 0: case 2: - if (!(sPlayers[gUnknown_0203C7B4].battlerId & 1)) - battleSave->battleFlags |= BATTLE_TYPE_x80000000; + if (!(sPlayers[gRecordedBattleMultiplayerId].battlerId & 1)) + battleSave->battleFlags |= BATTLE_TYPE_RECORDED_IS_MASTER; break; case 1: case 3: - if ((sPlayers[gUnknown_0203C7B4].battlerId & 1)) - battleSave->battleFlags |= BATTLE_TYPE_x80000000; + if ((sPlayers[gRecordedBattleMultiplayerId].battlerId & 1)) + battleSave->battleFlags |= BATTLE_TYPE_RECORDED_IS_MASTER; break; } } @@ -393,7 +396,7 @@ bool32 MoveRecordedBattleToSaveData(void) battleSave->opponentA = gTrainerBattleOpponent_A; battleSave->opponentB = gTrainerBattleOpponent_B; battleSave->partnerId = gPartnerTrainerId; - battleSave->field_4FA = gUnknown_0203C7B4; + battleSave->multiplayerId = gRecordedBattleMultiplayerId; battleSave->lvlMode = gSaveBlock2Ptr->frontier.lvlMode; battleSave->frontierFacility = sFrontierFacility; battleSave->frontierBrainSymbol = sFrontierBrainSymbol; @@ -573,7 +576,7 @@ static void SetVariablesForRecordedBattle(struct RecordedBattleSave *src) gTrainerBattleOpponent_A = src->opponentA; gTrainerBattleOpponent_B = src->opponentB; gPartnerTrainerId = src->partnerId; - gUnknown_0203C7B4 = src->field_4FA; + gRecordedBattleMultiplayerId = src->multiplayerId; sLvlMode = gSaveBlock2Ptr->frontier.lvlMode; sFrontierFacility = src->frontierFacility; sFrontierBrainSymbol = src->frontierBrainSymbol; @@ -684,19 +687,20 @@ u8 GetActiveBattlerLinkPlayerGender(void) return 0; } -void sub_8185F84(void) +void RecordedBattle_ClearFrontierPassFlag(void) { - sUnknown_0203C7B5 = 0; + sFrontierPassFlag = 0; } -void sub_8185F90(u16 arg0) +// Set sFrontierPassFlag to received state of FLAG_SYS_FRONTIER_PASS +void RecordedBattle_SetFrontierPassFlagFromHword(u16 arg0) { - sUnknown_0203C7B5 |= (arg0 & 0x8000) >> 0xF; + sFrontierPassFlag |= (arg0 & 0x8000) >> 15; } -u8 sub_8185FAC(void) +u8 RecordedBattle_GetFrontierPassFlag(void) { - return sUnknown_0203C7B5; + return sFrontierPassFlag; } u8 GetBattleSceneInRecordedBattle(void) @@ -715,9 +719,9 @@ void RecordedBattle_CopyBattlerMoves(void) if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) return; - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) return; - if (sUnknown_0203C7AC == 2) + if (sRecordMode == B_RECORD_MODE_PLAYBACK) return; for (i = 0; i < MAX_MON_MOVES; i++) @@ -732,7 +736,7 @@ void sub_818603C(u8 arg0) { s32 battlerId, j, k; - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) return; for (battlerId = 0; battlerId < gBattlersCount; battlerId++) @@ -764,7 +768,7 @@ void sub_818603C(u8 arg0) } else { - if (sBattleRecords[battlerId][sRecordedBytesNo[battlerId]] == ACTION_MOVE_CHANGE) + if (sBattleRecords[battlerId][sBattlerRecordSizes[battlerId]] == ACTION_MOVE_CHANGE) { u8 ppBonuses[MAX_MON_MOVES]; u8 array1[MAX_MON_MOVES]; @@ -838,12 +842,12 @@ u32 GetAiScriptsInRecordedBattle(void) void sub_8186444(void) { - sUnknown_0203CCD0 = 1; + sUnknown_0203CCD0 = TRUE; } bool8 sub_8186450(void) { - return (sUnknown_0203CCD0 == 0); + return (sUnknown_0203CCD0 == FALSE); } void GetRecordedBattleRecordMixFriendName(u8 *dst) diff --git a/src/region_map.c b/src/region_map.c index c2a5b4e9c3..4e547b5fb3 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -48,6 +48,12 @@ #define FLYDESTICON_RED_OUTLINE 6 +enum { + TAG_CURSOR, + TAG_PLAYER_ICON, + TAG_FLY_ICON, +}; + // Static type declarations struct MultiNameFlyDest @@ -71,7 +77,7 @@ static EWRAM_DATA struct { bool8 choseFlyLocation; } *sFlyMap = NULL; -static bool32 gUnknown_03001180; +static bool32 sDrawFlyDestTextWindow; // Static ROM declarations @@ -237,13 +243,13 @@ static const union AnimCmd *const sRegionMapCursorAnimTable[] = static const struct SpritePalette sRegionMapCursorSpritePalette = { .data = sRegionMapCursorPal, - .tag = 0 + .tag = TAG_CURSOR }; static const struct SpriteTemplate sRegionMapCursorSpriteTemplate = { - .tileTag = 0, - .paletteTag = 0, + .tileTag = TAG_CURSOR, + .paletteTag = TAG_CURSOR, .oam = &sRegionMapCursorOam, .anims = sRegionMapCursorAnimTable, .images = NULL, @@ -419,7 +425,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = static const struct SpritePalette sFlyTargetIconsSpritePalette = { .data = sFlyTargetIcons_Pal, - .tag = 2 + .tag = TAG_FLY_ICON }; static const u16 sRedOutlineFlyDestinations[][2] = @@ -497,8 +503,8 @@ static const union AnimCmd *const sFlyDestIcon_Anims[] = static const struct SpriteTemplate sFlyDestIconSpriteTemplate = { - .tileTag = 2, - .paletteTag = 2, + .tileTag = TAG_FLY_ICON, + .paletteTag = TAG_FLY_ICON, .oam = &sFlyDestIcon_OamData, .anims = sFlyDestIcon_Anims, .images = NULL, @@ -621,7 +627,7 @@ bool8 LoadRegionMapGfx(void) return TRUE; } -void sub_8123030(u16 color, u32 coeff) +void BlendRegionMap(u16 color, u32 coeff) { BlendPalettes(0x380, coeff, color); CpuCopy16(gPlttBufferFaded + 0x70, gPlttBufferUnfaded + 0x70, 0x60); @@ -952,8 +958,8 @@ void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y) UpdateRegionMapVideoRegs(); if (gRegionMap->playerIconSprite != NULL) { - gRegionMap->playerIconSprite->pos2.x = -x; - gRegionMap->playerIconSprite->pos2.y = -y; + gRegionMap->playerIconSprite->x2 = -x; + gRegionMap->playerIconSprite->y2 = -y; } } @@ -1007,7 +1013,7 @@ static void InitMapBasedOnPlayerLocation(void) break; case MAP_TYPE_UNDERGROUND: case MAP_TYPE_UNKNOWN: - if (gMapHeader.flags & MAP_ALLOW_ESCAPING) + if (gMapHeader.allowEscaping) { mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum); gRegionMap->mapSecId = mapHeader->regionMapSectionId; @@ -1364,8 +1370,8 @@ static void SpriteCB_CursorMapFull(struct Sprite *sprite) { if (gRegionMap->cursorMovementFrameCounter != 0) { - sprite->pos1.x += 2 * gRegionMap->cursorDeltaX; - sprite->pos1.y += 2 * gRegionMap->cursorDeltaY; + sprite->x += 2 * gRegionMap->cursorDeltaX; + sprite->y += 2 * gRegionMap->cursorDeltaY; gRegionMap->cursorMovementFrameCounter--; } } @@ -1411,15 +1417,15 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag) if (gRegionMap->zoomed == TRUE) { gRegionMap->cursorSprite->oam.size = SPRITE_SIZE(32x32); - gRegionMap->cursorSprite->pos1.x -= 8; - gRegionMap->cursorSprite->pos1.y -= 8; + gRegionMap->cursorSprite->x -= 8; + gRegionMap->cursorSprite->y -= 8; StartSpriteAnim(gRegionMap->cursorSprite, 1); } else { gRegionMap->cursorSprite->oam.size = SPRITE_SIZE(16x16); - gRegionMap->cursorSprite->pos1.x = 8 * gRegionMap->cursorPosX + 4; - gRegionMap->cursorSprite->pos1.y = 8 * gRegionMap->cursorPosY + 4; + gRegionMap->cursorSprite->x = 8 * gRegionMap->cursorPosX + 4; + gRegionMap->cursorSprite->y = 8 * gRegionMap->cursorPosY + 4; } gRegionMap->cursorSprite->data[1] = 2; gRegionMap->cursorSprite->data[2] = (IndexOfSpritePaletteTag(paletteTag) << 4) + 0x101; @@ -1472,14 +1478,14 @@ void CreateRegionMapPlayerIcon(u16 tileTag, u16 paletteTag) gRegionMap->playerIconSprite = &gSprites[spriteId]; if (!gRegionMap->zoomed) { - gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 8 + 4; - gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 8 + 4; + gRegionMap->playerIconSprite->x = gRegionMap->playerIconSpritePosX * 8 + 4; + gRegionMap->playerIconSprite->y = gRegionMap->playerIconSpritePosY * 8 + 4; gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapFull; } else { - gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 16 - 0x30; - gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 16 - 0x42; + gRegionMap->playerIconSprite->x = gRegionMap->playerIconSpritePosX * 16 - 0x30; + gRegionMap->playerIconSprite->y = gRegionMap->playerIconSpritePosY * 16 - 0x42; gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapZoomed; } } @@ -1499,17 +1505,17 @@ static void UnhideRegionMapPlayerIcon(void) { if (gRegionMap->zoomed == TRUE) { - gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 16 - 0x30; - gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 16 - 0x42; + gRegionMap->playerIconSprite->x = gRegionMap->playerIconSpritePosX * 16 - 0x30; + gRegionMap->playerIconSprite->y = gRegionMap->playerIconSpritePosY * 16 - 0x42; gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapZoomed; gRegionMap->playerIconSprite->invisible = FALSE; } else { - gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 8 + 4; - gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 8 + 4; - gRegionMap->playerIconSprite->pos2.x = 0; - gRegionMap->playerIconSprite->pos2.y = 0; + gRegionMap->playerIconSprite->x = gRegionMap->playerIconSpritePosX * 8 + 4; + gRegionMap->playerIconSprite->y = gRegionMap->playerIconSpritePosY * 8 + 4; + gRegionMap->playerIconSprite->x2 = 0; + gRegionMap->playerIconSprite->y2 = 0; gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapFull; gRegionMap->playerIconSprite->invisible = FALSE; } @@ -1518,10 +1524,10 @@ static void UnhideRegionMapPlayerIcon(void) static void SpriteCB_PlayerIconMapZoomed(struct Sprite *sprite) { - sprite->pos2.x = -2 * gRegionMap->scrollX; - sprite->pos2.y = -2 * gRegionMap->scrollY; - sprite->data[0] = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; - sprite->data[1] = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; + sprite->x2 = -2 * gRegionMap->scrollX; + sprite->y2 = -2 * gRegionMap->scrollY; + sprite->data[0] = sprite->y + sprite->y2 + sprite->centerToCornerVecY; + sprite->data[1] = sprite->x + sprite->x2 + sprite->centerToCornerVecX; if (sprite->data[0] < -8 || sprite->data[0] > 0xa8 || sprite->data[1] < -8 || sprite->data[1] > 0xf8) { sprite->data[2] = FALSE; @@ -1677,7 +1683,7 @@ void CB2_OpenFlyMap(void) break; case 1: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(1, sFlyMapBgTemplates, 3); + InitBgsFromTemplates(1, sFlyMapBgTemplates, ARRAY_COUNT(sFlyMapBgTemplates)); gMain.state++; break; case 2: @@ -1692,11 +1698,11 @@ void CB2_OpenFlyMap(void) break; case 4: InitRegionMap(&sFlyMap->regionMap, FALSE); - CreateRegionMapCursor(0, 0); - CreateRegionMapPlayerIcon(1, 1); + CreateRegionMapCursor(TAG_CURSOR, TAG_CURSOR); + CreateRegionMapPlayerIcon(TAG_PLAYER_ICON, TAG_PLAYER_ICON); sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId; StringFill(sFlyMap->nameBuffer, CHAR_SPACE, MAP_NAME_LENGTH); - gUnknown_03001180 = TRUE; + sDrawFlyDestTextWindow = TRUE; DrawFlyDestTextWindow(); gMain.state++; break; @@ -1721,7 +1727,7 @@ void CB2_OpenFlyMap(void) gMain.state++; break; case 9: - BlendPalettes(-1, 16, 0); + BlendPalettes(PALETTES_ALL, 16, 0); SetVBlankCallback(VBlankCB_FlyMap); gMain.state++; break; @@ -1782,30 +1788,32 @@ static void DrawFlyDestTextWindow(void) name = sMultiNameFlyDestinations[i].name[sFlyMap->regionMap.posWithinMapSec]; AddTextPrinterParameterized(1, 1, name, GetStringRightAlignXOffset(1, name, 96), 17, 0, NULL); ScheduleBgCopyTilemapToVram(0); - gUnknown_03001180 = TRUE; + sDrawFlyDestTextWindow = TRUE; } break; } } if (!namePrinted) { - if (gUnknown_03001180 == TRUE) + if (sDrawFlyDestTextWindow == TRUE) { ClearStdWindowAndFrameToTransparent(1, FALSE); DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13); } else { + // Window is already drawn, just empty it FillWindowPixelBuffer(0, PIXEL_FILL(1)); } AddTextPrinterParameterized(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); ScheduleBgCopyTilemapToVram(0); - gUnknown_03001180 = FALSE; + sDrawFlyDestTextWindow = FALSE; } } else { - if (gUnknown_03001180 == TRUE) + // Selection is on MAPSECTYPE_NONE, draw empty fly destination text window + if (sDrawFlyDestTextWindow == TRUE) { ClearStdWindowAndFrameToTransparent(1, FALSE); DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13); @@ -1813,7 +1821,7 @@ static void DrawFlyDestTextWindow(void) FillWindowPixelBuffer(0, PIXEL_FILL(1)); CopyWindowToVram(0, 2); ScheduleBgCopyTilemapToVram(0); - gUnknown_03001180 = FALSE; + sDrawFlyDestTextWindow = FALSE; } } @@ -1825,7 +1833,7 @@ static void LoadFlyDestIcons(void) LZ77UnCompWram(sFlyTargetIcons_Gfx, sFlyMap->tileBuffer); sheet.data = sFlyMap->tileBuffer; sheet.size = sizeof(sFlyMap->tileBuffer); - sheet.tag = 2; + sheet.tag = TAG_FLY_ICON; LoadSpriteSheet(&sheet); LoadSpritePalette(&sFlyTargetIconsSpritePalette); CreateFlyDestIcons(); @@ -1936,7 +1944,7 @@ static void CB_FadeInFlyMap(void) switch (sFlyMap->state) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sFlyMap->state++; break; case 1: @@ -1983,7 +1991,7 @@ static void CB_ExitFlyMap(void) switch (sFlyMap->state) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sFlyMap->state++; break; case 1: diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 770e4f3709..ecfd77bd9d 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -19,24 +19,52 @@ #include "gpu_regs.h" #include "constants/rgb.h" -struct ResetRtcStruct +#define PALTAG_ARROW 0x1000 + +// Task data for the Task_ResetRtc_* series of tasks, when setting the time on the clock +// Data from these tasks is also used by the cursors and the main task (Task_ResetRtcScreen) +enum { + DATAIDX_DAYS = 3, + DATAIDX_HOURS, + DATAIDX_MINS, + DATAIDX_SECS, + DATAIDX_CONFIRM, +}; +#define tFinished data[0] +#define tSetTime data[1] +#define tSelection data[2] +#define tDays data[DATAIDX_DAYS] +#define tHours data[DATAIDX_HOURS] +#define tMinutes data[DATAIDX_MINS] +#define tSeconds data[DATAIDX_SECS] +#define tConfirm data[DATAIDX_CONFIRM] +#define tWindowId data[8] + +enum { + SELECTION_DAYS = 1, + SELECTION_HOURS, + SELECTION_MINS, + SELECTION_SECS, + SELECTION_CONFIRM, + SELECTION_NONE +}; + +struct ResetRtcInputMap { /*0x0*/ u8 dataIndex; /*0x2*/ u16 minVal; /*0x4*/ u16 maxVal; /*0x6*/ u8 left; /*0x7*/ u8 right; - /*0x8*/ u8 unk8; + /*0x8*/ u8 unk; // never read }; -// this file's functions static void CB2_ResetRtcScreen(void); static void VBlankCB(void); static void Task_ResetRtcScreen(u8 taskId); -static void sub_809F048(void); +static void InitResetRtcScreenBgAndWindows(void); -// const rom data -static const struct BgTemplate sBackgroundTemplates[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -49,60 +77,84 @@ static const struct BgTemplate sBackgroundTemplates[] = } }; -static const struct WindowTemplate sUnknown_08510408[] = +static const struct WindowTemplate sWindowTemplates[] = { - {0x00, 0x01, 0x01, 0x13, 0x09, 0x0f, 0x0155}, - {0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x00e9}, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 19, + .height = 9, + .paletteNum = 15, + .baseBlock = 0x155 + }, + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 0xE9 + }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate sUnknown_08510420 = {0x00, 0x04, 0x09, 0x15, 0x02, 0x0f, 0x00bf}; +static const struct WindowTemplate sInputTimeWindow = { + .bg = 0, + .tilemapLeft = 4, + .tilemapTop = 9, + .width = 21, + .height = 2, + .paletteNum = 15, + .baseBlock = 0xBF +}; -static const struct ResetRtcStruct sUnknown_08510428[5] = +static const struct ResetRtcInputMap sInputMap[] = { - { - .dataIndex = 3, + [SELECTION_DAYS - 1] = { + .dataIndex = DATAIDX_DAYS, .minVal = 1, .maxVal = 9999, .left = 0, .right = 2, - .unk8 = 0, + .unk = 0, }, - { - .dataIndex = 4, + [SELECTION_HOURS - 1] = { + .dataIndex = DATAIDX_HOURS, .minVal = 0, .maxVal = 23, .left = 1, .right = 3, - .unk8 = 0, + .unk = 0, }, - { - .dataIndex = 5, + [SELECTION_MINS - 1] = { + .dataIndex = DATAIDX_MINS, .minVal = 0, .maxVal = 59, .left = 2, .right = 4, - .unk8 = 0, + .unk = 0, }, - { - .dataIndex = 6, + [SELECTION_SECS - 1] = { + .dataIndex = DATAIDX_SECS, .minVal = 0, .maxVal = 59, .left = 3, .right = 5, - .unk8 = 0, + .unk = 0, }, - { - .dataIndex = 7, + [SELECTION_CONFIRM - 1] = { + .dataIndex = DATAIDX_CONFIRM, .minVal = 0, .maxVal = 0, .left = 4, .right = 0, - .unk8 = 6, + .unk = 6, }, }; -static const struct OamData sOamData_08510464 = +static const struct OamData sOamData_Arrow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -119,148 +171,158 @@ static const struct OamData sOamData_08510464 = .affineParam = 0, }; -static const u8 sResetRtcScreen_DownArrowGfx[] = INCBIN_U8("graphics/misc/reset_rtc_screen_downarrow.4bpp"); -static const u8 sResetRtcScreen_RightArrowGfx[] = INCBIN_U8("graphics/misc/reset_rtc_screen_rightarrow.4bpp"); -static const u16 sResetRtcScreen_ArrowPal[] = INCBIN_U16("graphics/misc/reset_rtc_screen_arrow.gbapal"); +static const u8 sArrowDown_Gfx[] = INCBIN_U8("graphics/reset_rtc_screen/arrow_down.4bpp"); +static const u8 sArrowRight_Gfx[] = INCBIN_U8("graphics/reset_rtc_screen/arrow_right.4bpp"); +static const u16 sArrow_Pal[] = INCBIN_U16("graphics/reset_rtc_screen/arrow.gbapal"); -static const struct SpriteFrameImage sSpriteImageTable_85104B4[] = +static const struct SpriteFrameImage sPicTable_Arrow[] = { - obj_frame_tiles(sResetRtcScreen_DownArrowGfx), - obj_frame_tiles(sResetRtcScreen_RightArrowGfx) + obj_frame_tiles(sArrowDown_Gfx), + obj_frame_tiles(sArrowRight_Gfx) }; -const struct SpritePalette gSpritePalette_RtcArrow = +const struct SpritePalette gSpritePalette_Arrow = { - sResetRtcScreen_ArrowPal, 0x1000 + sArrow_Pal, PALTAG_ARROW }; -static const union AnimCmd sSpriteAnim_85104CC[] = +static const union AnimCmd sAnim_Arrow_Down[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_JUMP(0), }; -static const union AnimCmd sSpriteAnim_85104D4[] = +static const union AnimCmd sAnim_Arrow_Up[] = { ANIMCMD_FRAME(0, 30, .vFlip = TRUE), ANIMCMD_JUMP(0), }; -static const union AnimCmd sSpriteAnim_85104DC[] = +static const union AnimCmd sAnim_Arrow_Right[] = { ANIMCMD_FRAME(1, 30), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sSpriteAnimTable_85104E4[] = -{ - sSpriteAnim_85104CC, - sSpriteAnim_85104D4, - sSpriteAnim_85104DC, +enum { + ARROW_DOWN, + ARROW_UP, + ARROW_RIGHT, }; -const struct SpriteTemplate gSpriteTemplate_RtcArrow = +static const union AnimCmd *const sAnims_Arrow[] = +{ + [ARROW_DOWN] = sAnim_Arrow_Down, + [ARROW_UP] = sAnim_Arrow_Up, + [ARROW_RIGHT] = sAnim_Arrow_Right, +}; + +const struct SpriteTemplate gSpriteTemplate_Arrow = { .tileTag = 0xFFFF, - .paletteTag = 0x1000, - .oam = &sOamData_08510464, - .anims = sSpriteAnimTable_85104E4, - .images = sSpriteImageTable_85104B4, + .paletteTag = PALTAG_ARROW, + .oam = &sOamData_Arrow, + .anims = sAnims_Arrow, + .images = sPicTable_Arrow, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -// code -static void SpriteCB_ResetRtcCursor0(struct Sprite *sprite) +#define sTaskId data[0] +#define sState data[1] + +static void SpriteCB_Cursor_UpOrRight(struct Sprite *sprite) { - int state = gTasks[sprite->data[0]].data[2]; - if (state != sprite->data[1]) + int state = gTasks[sprite->sTaskId].tSelection; + if (state != sprite->sState) { - sprite->data[1] = state; + sprite->sState = state; switch (state) { - case 1: + case SELECTION_DAYS: sprite->invisible = FALSE; - sprite->animNum = 1; + sprite->animNum = ARROW_UP; sprite->animDelayCounter = 0; - sprite->pos1.x = 53; - sprite->pos1.y = 68; + sprite->x = 53; + sprite->y = 68; break; - case 2: + case SELECTION_HOURS: sprite->invisible = FALSE; - sprite->animNum = 1; + sprite->animNum = ARROW_UP; sprite->animDelayCounter = 0; - sprite->pos1.x = 86; - sprite->pos1.y = 68; + sprite->x = 86; + sprite->y = 68; break; - case 3: + case SELECTION_MINS: sprite->invisible = FALSE; - sprite->animNum = 1; + sprite->animNum = ARROW_UP; sprite->animDelayCounter = 0; - sprite->pos1.x = 101; - sprite->pos1.y = 68; + sprite->x = 101; + sprite->y = 68; break; - case 4: + case SELECTION_SECS: sprite->invisible = FALSE; - sprite->animNum = 1; + sprite->animNum = ARROW_UP; sprite->animDelayCounter = 0; - sprite->pos1.x = 116; - sprite->pos1.y = 68; + sprite->x = 116; + sprite->y = 68; break; - case 5: + case SELECTION_CONFIRM: sprite->invisible = FALSE; - sprite->animNum = 2; + sprite->animNum = ARROW_RIGHT; sprite->animDelayCounter = 0; - sprite->pos1.x = 153; - sprite->pos1.y = 80; + sprite->x = 153; + sprite->y = 80; break; - case 6: + case SELECTION_NONE: DestroySprite(sprite); break; } } } -static void SpriteCB_ResetRtcCursor1(struct Sprite *sprite) +static void SpriteCB_Cursor_Down(struct Sprite *sprite) { - int state = gTasks[sprite->data[0]].data[2]; - if (state != sprite->data[1]) + int state = gTasks[sprite->sTaskId].tSelection; + if (state != sprite->sState) { - sprite->data[1] = state; + sprite->sState = state; switch (state) { - case 1: + case SELECTION_DAYS: sprite->invisible = FALSE; - sprite->animNum = 0; + sprite->animNum = ARROW_DOWN; sprite->animDelayCounter = 0; - sprite->pos1.x = 53; - sprite->pos1.y = 92; + sprite->x = 53; + sprite->y = 92; break; - case 2: + case SELECTION_HOURS: sprite->invisible = FALSE; - sprite->animNum = 0; + sprite->animNum = ARROW_DOWN; sprite->animDelayCounter = 0; - sprite->pos1.x = 86; - sprite->pos1.y = 92; + sprite->x = 86; + sprite->y = 92; break; - case 3: + case SELECTION_MINS: sprite->invisible = FALSE; - sprite->animNum = 0; + sprite->animNum = ARROW_DOWN; sprite->animDelayCounter = 0; - sprite->pos1.x = 101; - sprite->pos1.y = 92; + sprite->x = 101; + sprite->y = 92; break; - case 4: + case SELECTION_SECS: sprite->invisible = FALSE; - sprite->animNum = 0; + sprite->animNum = ARROW_DOWN; sprite->animDelayCounter = 0; - sprite->pos1.x = 116; - sprite->pos1.y = 92; + sprite->x = 116; + sprite->y = 92; break; - case 5: + case SELECTION_CONFIRM: + // The up arrow is used as a right arrow when Confirm is selected + // Hide the down arrow sprite->invisible = TRUE; break; - case 6: + case SELECTION_NONE: DestroySprite(sprite); break; } @@ -271,22 +333,22 @@ static void CreateCursor(u8 taskId) { u32 spriteId; - LoadSpritePalette(&gSpritePalette_RtcArrow); + LoadSpritePalette(&gSpritePalette_Arrow); - spriteId = CreateSpriteAtEnd(&gSpriteTemplate_RtcArrow, 53, 68, 0); - gSprites[spriteId].callback = SpriteCB_ResetRtcCursor0; - gSprites[spriteId].data[0] = taskId; - gSprites[spriteId].data[1] = -1; + spriteId = CreateSpriteAtEnd(&gSpriteTemplate_Arrow, 53, 68, 0); + gSprites[spriteId].callback = SpriteCB_Cursor_UpOrRight; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sState = -1; - spriteId = CreateSpriteAtEnd(&gSpriteTemplate_RtcArrow, 53, 68, 0); - gSprites[spriteId].callback = SpriteCB_ResetRtcCursor1; - gSprites[spriteId].data[0] = taskId; - gSprites[spriteId].data[1] = -1; + spriteId = CreateSpriteAtEnd(&gSpriteTemplate_Arrow, 53, 68, 0); + gSprites[spriteId].callback = SpriteCB_Cursor_Down; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sState = -1; } static void FreeCursorPalette(void) { - FreeSpritePaletteByTag(gSpritePalette_RtcArrow.tag); + FreeSpritePaletteByTag(gSpritePalette_Arrow.tag); } static void HideChooseTimeWindow(u8 windowId) @@ -300,18 +362,22 @@ static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u { u8 *dest = gStringVar4; + // Print days ConvertIntToDecimalStringN(gStringVar1, days, STR_CONV_MODE_RIGHT_ALIGN, 4); dest = StringCopy(dest, gStringVar1); dest = StringCopy(dest, gText_Day); + // Print hours ConvertIntToDecimalStringN(gStringVar1, hours, STR_CONV_MODE_RIGHT_ALIGN, 3); dest = StringCopy(dest, gStringVar1); dest = StringCopy(dest, gText_Colon3); + // Print minutes ConvertIntToDecimalStringN(gStringVar1, minutes, STR_CONV_MODE_LEADING_ZEROS, 2); dest = StringCopy(dest, gStringVar1); dest = StringCopy(dest, gText_Colon3); + // Print seconds ConvertIntToDecimalStringN(gStringVar1, seconds, STR_CONV_MODE_LEADING_ZEROS, 2); dest = StringCopy(dest, gStringVar1); @@ -360,31 +426,31 @@ static bool32 MoveTimeUpDown(s16 *val, int minVal, int maxVal, u16 keys) return TRUE; } -static void Task_ResetRtc_3(u8 taskId) +static void Task_ResetRtc_SetFinished(u8 taskId) { - gTasks[taskId].data[0] = 1; + gTasks[taskId].tFinished = TRUE; } -static void Task_ResetRtc_2(u8 taskId) +static void Task_ResetRtc_Exit(u8 taskId) { s16 *data = gTasks[taskId].data; - HideChooseTimeWindow(data[8]); + HideChooseTimeWindow(tWindowId); FreeCursorPalette(); - gTasks[taskId].func = Task_ResetRtc_3; + gTasks[taskId].func = Task_ResetRtc_SetFinished; } -static void Task_ResetRtc_1(u8 taskId) +static void Task_ResetRtc_HandleInput(u8 taskId) { s16 *data = gTasks[taskId].data; - u8 selection = data[2]; - const struct ResetRtcStruct *selectionInfo = &sUnknown_08510428[selection - 1]; + u8 selection = tSelection; + const struct ResetRtcInputMap *selectionInfo = &sInputMap[selection - 1]; if (JOY_NEW(B_BUTTON)) { - gTasks[taskId].func = Task_ResetRtc_2; - data[1] = 0; - data[2] = 6; + gTasks[taskId].func = Task_ResetRtc_Exit; + tSetTime = FALSE; + tSelection = SELECTION_NONE; PlaySE(SE_SELECT); return; } @@ -393,7 +459,7 @@ static void Task_ResetRtc_1(u8 taskId) { if (selectionInfo->right) { - data[2] = selectionInfo->right; + tSelection = selectionInfo->right; PlaySE(SE_SELECT); return; } @@ -403,47 +469,47 @@ static void Task_ResetRtc_1(u8 taskId) { if (selectionInfo->left) { - data[2] = selectionInfo->left; + tSelection = selectionInfo->left; PlaySE(SE_SELECT); return; } } - if (selection == 5) + if (selection == SELECTION_CONFIRM) { if (JOY_NEW(A_BUTTON)) { - gLocalTime.days = data[3]; - gLocalTime.hours = data[4]; - gLocalTime.minutes = data[5]; - gLocalTime.seconds = data[6]; + gLocalTime.days = tDays; + gLocalTime.hours = tHours; + gLocalTime.minutes = tMinutes; + gLocalTime.seconds = tSeconds; PlaySE(SE_SELECT); - gTasks[taskId].func = Task_ResetRtc_2; - data[1] = 1; - data[2] = 6; + gTasks[taskId].func = Task_ResetRtc_Exit; + tSetTime = TRUE; + tSelection = SELECTION_NONE; } } else if (MoveTimeUpDown(&data[selectionInfo->dataIndex], selectionInfo->minVal, selectionInfo->maxVal, JOY_REPEAT(DPAD_UP | DPAD_DOWN))) { PlaySE(SE_SELECT); - PrintTime(data[8], 0, 1, data[3], data[4], data[5], data[6]); - CopyWindowToVram(data[8], 2); + PrintTime(tWindowId, 0, 1, tDays, tHours, tMinutes, tSeconds); + CopyWindowToVram(tWindowId, 2); } } -static void Task_ResetRtc_0(u8 taskId) +static void Task_ResetRtc_Init(u8 taskId) { s16 *data = gTasks[taskId].data; - data[0] = 0; - data[3] = gLocalTime.days; - data[4] = gLocalTime.hours; - data[5] = gLocalTime.minutes; - data[6] = gLocalTime.seconds; - data[8] = AddWindow(&sUnknown_08510420); - ShowChooseTimeWindow(data[8], data[3], data[4], data[5], data[6]); + tFinished = FALSE; + tDays = gLocalTime.days; + tHours = gLocalTime.hours; + tMinutes = gLocalTime.minutes; + tSeconds = gLocalTime.seconds; + tWindowId = AddWindow(&sInputTimeWindow); + ShowChooseTimeWindow(tWindowId, tDays, tHours, tMinutes, tSeconds); CreateCursor(taskId); - data[2] = 2; - gTasks[taskId].func = Task_ResetRtc_1; + tSelection = SELECTION_HOURS; + gTasks[taskId].func = Task_ResetRtc_HandleInput; } void CB2_InitResetRtcScreen(void) @@ -451,7 +517,7 @@ void CB2_InitResetRtcScreen(void) SetGpuReg(REG_OFFSET_DISPCNT, 0); SetVBlankCallback(NULL); DmaClear16(3, PLTT, PLTT_SIZE); - DmaFillLarge16(3, 0, (u8 *)VRAM, 0x18000, 0x1000); + DmaFillLarge16(3, 0, (u8 *)VRAM, VRAM_SIZE, 0x1000); ResetOamRange(0, 128); LoadOam(); ScanlineEffect_Stop(); @@ -459,21 +525,21 @@ void CB2_InitResetRtcScreen(void) ResetSpriteData(); ResetTasks(); ResetPaletteFade(); - sub_809F048(); + InitResetRtcScreenBgAndWindows(); SetVBlankCallback(VBlankCB); SetMainCallback2(CB2_ResetRtcScreen); CreateTask(Task_ResetRtcScreen, 80); } -static void sub_809F048(void) +static void InitResetRtcScreenBgAndWindows(void) { ClearScheduledBgCopiesToVram(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); ScheduleBgCopyTilemapToVram(0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); - InitWindows(sUnknown_08510408); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); LoadMessageBoxAndBorderGfx(); } @@ -501,14 +567,17 @@ static void ShowMessage(const u8 *str) ScheduleBgCopyTilemapToVram(0); } +#define tState data[0] + static void Task_ShowResetRtcPrompt(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x214, 0xE); + AddTextPrinterParameterized(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0); PrintTime( 0, @@ -518,6 +587,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId) gLocalTime.hours, gLocalTime.minutes, gLocalTime.seconds); + AddTextPrinterParameterized(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0); PrintTime( 0, @@ -527,18 +597,21 @@ static void Task_ShowResetRtcPrompt(u8 taskId) gSaveBlock2Ptr->lastBerryTreeUpdate.hours, gSaveBlock2Ptr->lastBerryTreeUpdate.minutes, gSaveBlock2Ptr->lastBerryTreeUpdate.seconds); + ShowMessage(gText_ResetRTCConfirmCancel); CopyWindowToVram(0, 2); ScheduleBgCopyTilemapToVram(0); - data[0]++; + tState++; case 1: if (JOY_NEW(B_BUTTON)) { + // Cancel, exit without resetting RTC DestroyTask(taskId); DoSoftReset(); } else if (JOY_NEW(A_BUTTON)) { + // Confirm PlaySE(SE_SELECT); DestroyTask(taskId); } @@ -546,53 +619,73 @@ static void Task_ShowResetRtcPrompt(u8 taskId) } } +#undef tState + +// Task states for Task_ResetRtcScreen +enum { + MAINSTATE_FADE_IN, + MAINSTATE_CHECK_SAVE, + MAINSTATE_START_SET_TIME, + MAINSTATE_WAIT_SET_TIME, + MAINSTATE_SAVE, + MAINSTATE_WAIT_EXIT, + MAINSTATE_EXIT, +}; + +#define tState data[0] +#define tSubTaskId data[1] + static void Task_ResetRtcScreen(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 1, 0x10, 0, RGB_WHITEALPHA); - data[0] = 1; + case MAINSTATE_FADE_IN: + BeginNormalPaletteFade(PALETTES_ALL, 1, 0x10, 0, RGB_WHITEALPHA); + tState = MAINSTATE_CHECK_SAVE; break; - case 1: + case MAINSTATE_CHECK_SAVE: if (!gPaletteFade.active) { - if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT) + if (gSaveFileStatus == SAVE_STATUS_EMPTY + || gSaveFileStatus == SAVE_STATUS_CORRUPT) { ShowMessage(gText_NoSaveFileCantSetTime); - data[0] = 5; + tState = MAINSTATE_WAIT_EXIT; } else { RtcCalcLocalTime(); - data[1] = CreateTask(Task_ShowResetRtcPrompt, 80); - data[0] = 2; + tSubTaskId = CreateTask(Task_ShowResetRtcPrompt, 80); + tState = MAINSTATE_START_SET_TIME; } } break; - case 2: - if (gTasks[data[1]].isActive != TRUE) + case MAINSTATE_START_SET_TIME: + // Wait for A or B press on prompt first + if (gTasks[tSubTaskId].isActive != TRUE) { ClearStdWindowAndFrameToTransparent(0, FALSE); ShowMessage(gText_PleaseResetTime); gLocalTime = gSaveBlock2Ptr->lastBerryTreeUpdate; - data[1] = CreateTask(Task_ResetRtc_0, 80); - data[0] = 3; + tSubTaskId = CreateTask(Task_ResetRtc_Init, 80); + tState = MAINSTATE_WAIT_SET_TIME; } break; - case 3: - if (gTasks[data[1]].data[0]) + case MAINSTATE_WAIT_SET_TIME: + if (gTasks[tSubTaskId].tFinished) { - if (!gTasks[data[1]].data[1]) + if (!gTasks[tSubTaskId].tSetTime) { - DestroyTask(data[1]); - data[0] = 2; + // Exited without setting time, return to "Please reset time" + DestroyTask(tSubTaskId); + tState = MAINSTATE_START_SET_TIME; } else { - DestroyTask(data[1]); + // Time has been chosen, reset rtc and save + DestroyTask(tSubTaskId); RtcReset(); RtcCalcLocalTimeOffset( gLocalTime.days, @@ -603,11 +696,11 @@ static void Task_ResetRtcScreen(u8 taskId) VarSet(VAR_DAYS, gLocalTime.days); DisableResetRTC(); ShowMessage(gText_ClockHasBeenReset); - data[0] = 4; + tState = MAINSTATE_SAVE; } } break; - case 4: + case MAINSTATE_SAVE: if (TrySavingData(SAVE_NORMAL) == SAVE_STATUS_OK) { ShowMessage(gText_SaveCompleted); @@ -618,18 +711,20 @@ static void Task_ResetRtcScreen(u8 taskId) ShowMessage(gText_SaveFailed); PlaySE(SE_BOO); } - data[0] = 5; - case 5: + tState = MAINSTATE_WAIT_EXIT; + // fallthrough + case MAINSTATE_WAIT_EXIT: if (JOY_NEW(A_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 1, 0, 0x10, RGB_WHITEALPHA); - data[0] = 6; + BeginNormalPaletteFade(PALETTES_ALL, 1, 0, 0x10, RGB_WHITEALPHA); + tState = MAINSTATE_EXIT; + // fallthrough } else { break; } - case 6: + case MAINSTATE_EXIT: if (!gPaletteFade.active) { DestroyTask(taskId); diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 4a6611b205..3d57392437 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -23,7 +23,7 @@ static void CreateBattlerSprite(u8 battlerId); static void CreateHealthboxSprite(u8 battlerId); static void sub_80A95F4(void); -void nullsub_35(void) +void ReshowBattleScreenDummy(void) { } diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 162eb3e6dc..a185d9a145 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -670,7 +670,8 @@ static void RotatingGate_RotateInDirection(u8 gateId, u32 rotationDirection) } else { - orientation = ++orientation % GATE_ORIENTATION_MAX; + orientation++; + orientation = orientation % GATE_ORIENTATION_MAX; } RotatingGate_SetGateOrientation(gateId, orientation); } @@ -754,7 +755,7 @@ static u8 RotatingGate_CreateGate(u8 gateId, s16 deltaX, s16 deltaY) sprite->data[0] = gateId; sprite->coordOffsetEnabled = 1; - sub_8092FF0(x + deltaX, y + deltaY, &sprite->pos1.x, &sprite->pos1.y); + GetMapCoordsFromSpritePos(x + deltaX, y + deltaY, &sprite->x, &sprite->y); RotatingGate_HideGatesOutsideViewport(sprite); StartSpriteAffineAnim(sprite, RotatingGate_GetGateOrientation(gateId)); @@ -799,8 +800,8 @@ static void RotatingGate_HideGatesOutsideViewport(struct Sprite *sprite) s16 x2, y2; sprite->invisible = FALSE; - x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; - y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY; + x = sprite->x + sprite->x2 + sprite->centerToCornerVecX + gSpriteCoordOffsetX; + y = sprite->y + sprite->y2 + sprite->centerToCornerVecY + gSpriteCoordOffsetY; x2 = x + 0x40; // Dimensions of the rotating gate y2 = y + 0x40; diff --git a/src/roulette.c b/src/roulette.c index 4173edcdbe..14ae165567 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -275,7 +275,7 @@ struct RouletteTable struct Taillow taillow; u16 ballSpeed; u16 baseTravelDist; - float var1C; + f32 var1C; }; struct GridSelection @@ -340,13 +340,13 @@ static EWRAM_DATA struct Roulette s16 ballTravelDistFast; u16 ballTravelDistMed; u16 ballTravelDistSlow; - float ballAngle; - float ballAngleSpeed; - float ballAngleAccel; - float ballDistToCenter; - float ballFallSpeed; - float ballFallAccel; - float varA0; + f32 ballAngle; + f32 ballAngleSpeed; + f32 ballAngleAccel; + f32 ballDistToCenter; + f32 ballFallSpeed; + f32 ballFallAccel; + f32 varA0; u8 playTaskId; u8 spinTaskId; u8 filler_1[2]; @@ -1968,7 +1968,7 @@ static void ExitRoulette(u8 taskId) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; - AlertTVOfNewCoinTotal(GetCoins()); + TryPutFindThatGamerOnAir(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); gTasks[taskId].func = Task_ExitRoulette; } @@ -2896,7 +2896,9 @@ static const union AnimCmd sAnim_CreditDigit[] = ANIMCMD_FRAME(18, 0), // 9 // BUG: Animation not terminated properly // Doesn't matter in practice, the frames are set directly and not looped - //ANIMCMD_END +#ifdef BUGFIX + ANIMCMD_END +#endif }; static const union AnimCmd *const sAnims_CreditDigit[] = @@ -3389,7 +3391,7 @@ static void Task_AcceptMinBet(u8 taskId) ClearStdWindowAndFrame(0, TRUE); HideCoinsWindow(); FreeAllWindowBuffers(); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gPaletteFade.delayCounter = gPaletteFade.multipurpose2; UpdatePaletteFade(); gTasks[taskId].func = Task_FadeToRouletteGame; @@ -3630,8 +3632,8 @@ static void ShowHideGridBalls(bool8 hideAll, u8 hideBallId) else { gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = FALSE; - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].pos1.x = (sGridSelections[sRoulette->hitSquares[i]].x + 1) * 8 + 4; - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].pos1.y = (sGridSelections[sRoulette->hitSquares[i]].y + 1) * 8 + 3; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].x = (sGridSelections[sRoulette->hitSquares[i]].x + 1) * 8 + 4; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].y = (sGridSelections[sRoulette->hitSquares[i]].y + 1) * 8 + 3; } } } @@ -3646,8 +3648,8 @@ static void ShowHideWinSlotCursor(u8 selectionId) else { gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = FALSE; - gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].pos1.x = (sGridSelections[selectionId].x + 2) * 8; - gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].pos1.y = (sGridSelections[selectionId].y + 2) * 8; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].x = (sGridSelections[selectionId].x + 2) * 8; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].y = (sGridSelections[selectionId].y + 2) * 8; } } @@ -3686,8 +3688,8 @@ static void SpriteCB_WheelIcon(struct Sprite *sprite) angle -= 360; sin = Sin2(angle); cos = Cos2(angle); - sprite->pos2.x = sin * sprite->data[1] >> 12; - sprite->pos2.y = -cos * sprite->data[1] >> 12; + sprite->x2 = sin * sprite->data[1] >> 12; + sprite->y2 = -cos * sprite->data[1] >> 12; matrixNum = sprite->oam.matrixNum; sin /= 16; gOamMatrices[matrixNum].d = cos /= 16; @@ -3843,7 +3845,7 @@ static void SetBallCounterNumLeft(u8 numBalls) static void SpriteCB_GridSquare(struct Sprite *sprite) { - sprite->pos2.x = sRoulette->gridX; + sprite->x2 = sRoulette->gridX; } static void CreateWheelCenterSprite(void) @@ -3948,7 +3950,7 @@ static s16 UpdateBallRelativeWheelAngle(struct Sprite *sprite) static u8 UpdateSlotBelowBall(struct Sprite *sprite) { - sRoulette->hitSlot = UpdateBallRelativeWheelAngle(sprite) / (float) DEGREES_PER_SLOT; + sRoulette->hitSlot = UpdateBallRelativeWheelAngle(sprite) / (f32)DEGREES_PER_SLOT; return sRoulette->hitSlot; } @@ -3993,12 +3995,12 @@ static void UpdateBallPos(struct Sprite *sprite) sprite->sBallDistToCenter = sRoulette->ballDistToCenter; sin = Sin2(sprite->sBallAngle); cos = Cos2(sprite->sBallAngle); - sprite->pos2.x = sin * sprite->sBallDistToCenter >> 12; - sprite->pos2.y = -cos * sprite->sBallDistToCenter >> 12; + sprite->x2 = sin * sprite->sBallDistToCenter >> 12; + sprite->y2 = -cos * sprite->sBallDistToCenter >> 12; if (IsSEPlaying()) { - m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, sprite->pos2.x); - m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, sprite->pos2.x); + m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, sprite->x2); + m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, sprite->x2); } } @@ -4011,9 +4013,9 @@ static void SpriteCB_BallLandInSlot(struct Sprite *sprite) sprite->sBallAngle -= 360; sin = Sin2(sprite->sBallAngle); cos = Cos2(sprite->sBallAngle); - sprite->pos2.x = sin * sprite->sBallDistToCenter >> 12; - sprite->pos2.y = -cos * sprite->sBallDistToCenter >> 12; - sprite->pos2.y += gSpriteCoordOffsetY; + sprite->x2 = sin * sprite->sBallDistToCenter >> 12; + sprite->y2 = -cos * sprite->sBallDistToCenter >> 12; + sprite->y2 += gSpriteCoordOffsetY; } static void SpriteCB_UnstickBall_ShroomishBallFall(struct Sprite *sprite) @@ -4050,7 +4052,7 @@ static void SpriteCB_UnstickBall_ShroomishBallFall(struct Sprite *sprite) static void SpriteCB_UnstickBall_Shroomish(struct Sprite *sprite) { - float slotOffset, ballFallDist, ballFallSpeed; + f32 slotOffset, ballFallDist, ballFallSpeed; UpdateBallPos(sprite); switch (sprite->sBallAngle) @@ -4096,9 +4098,9 @@ static void SpriteCB_UnstickBall_Shroomish(struct Sprite *sprite) static void SpriteCB_UnstickBall_TaillowDrop(struct Sprite *sprite) { - sprite->pos2.y = (s16)(sprite->data[2] * 0.05f * sprite->data[2]) - 45; + sprite->y2 = (s16)(sprite->data[2] * 0.05f * sprite->data[2]) - 45; sprite->data[2]++; - if (sprite->data[2] >= DEGREES_PER_SLOT && sprite->pos2.y >= 0) + if (sprite->data[2] >= DEGREES_PER_SLOT && sprite->y2 >= 0) { LandBall() sRoulette->ballUnstuck = TRUE; @@ -4109,11 +4111,11 @@ static void SpriteCB_UnstickBall_TaillowPickUp(struct Sprite *sprite) { if (sprite->data[2]++ < 45) { - sprite->pos2.y--; + sprite->y2--; if (sprite->data[2] == 45) { if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animCmdIndex == 1) - sprite->pos2.y++; + sprite->y2++; } } else @@ -4123,9 +4125,9 @@ static void SpriteCB_UnstickBall_TaillowPickUp(struct Sprite *sprite) if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animDelayCounter == 0) { if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animCmdIndex == 1) - sprite->pos2.y++; + sprite->y2++; else - sprite->pos2.y--; + sprite->y2--; } } else @@ -4233,7 +4235,7 @@ static void SpriteCB_RollBall_TryLand(struct Sprite *sprite) } else // fall left { - float temp; + f32 temp; sRoulette->ballAngleSpeed = (temp = sRouletteTables[sRoulette->tableId].var1C) * 2.0f; slotId = (sRoulette->hitSlot + NUM_ROULETTE_SLOTS - 1) % NUM_ROULETTE_SLOTS; sRoulette->stuckHitSlot = sRoulette->hitSlot; @@ -4279,7 +4281,7 @@ static void SpriteCB_RollBall_Slow(struct Sprite *sprite) { // Reached slot to land in sRoulette->ballAngleAccel = 0.0f; - sRoulette->ballAngleSpeed -= (float)(sRouletteTables[sRoulette->tableId].wheelSpeed) + sRoulette->ballAngleSpeed -= (f32)(sRouletteTables[sRoulette->tableId].wheelSpeed) / (sRouletteTables[sRoulette->tableId].wheelDelay + 1); sprite->sState = 4; sprite->callback = SpriteCB_RollBall_TryLand; @@ -4304,8 +4306,8 @@ static void SpriteCB_RollBall_Medium(struct Sprite *sprite) if (sRoulette->ballDistToCenter > 40.0f) return; - sRoulette->ballFallSpeed = -(4.0f / (float)(sRoulette->ballTravelDistSlow)); - sRoulette->ballAngleAccel = -(sRoulette->ballAngleSpeed / (float)(sRoulette->ballTravelDistSlow)); + sRoulette->ballFallSpeed = -(4.0f / (f32)(sRoulette->ballTravelDistSlow)); + sRoulette->ballAngleAccel = -(sRoulette->ballAngleSpeed / (f32)(sRoulette->ballTravelDistSlow)); sprite->animNum = 2; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; @@ -4320,8 +4322,8 @@ static void SpriteCB_RollBall_Fast(struct Sprite *sprite) return; m4aSongNumStartOrChange(SE_ROULETTE_BALL2); - sRoulette->ballFallSpeed = -(20.0f / (float)(sRoulette->ballTravelDistMed)); - sRoulette->ballAngleAccel = ((1.0f - sRoulette->ballAngleSpeed) / (float)(sRoulette->ballTravelDistMed)); + sRoulette->ballFallSpeed = -(20.0f / (f32)(sRoulette->ballTravelDistMed)); + sRoulette->ballAngleAccel = ((1.0f - sRoulette->ballAngleSpeed) / (f32)(sRoulette->ballTravelDistMed)); sprite->animNum = 1; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; @@ -4514,8 +4516,8 @@ static void SpriteCB_ShroomishExit(struct Sprite *sprite) // Delay for screen shaking, then exit left if (sprite->data[1]++ >= sprite->data[3]) { - sprite->pos1.x -= 2; - if (sprite->pos1.x < -16) + sprite->x -= 2; + if (sprite->x < -16) { if (!sRoulette->ballUnstuck) sRoulette->ballUnstuck = TRUE; @@ -4558,10 +4560,10 @@ static void SpriteCB_ShroomishShakeScreen(struct Sprite *sprite) static void SpriteCB_ShroomishFall(struct Sprite *sprite) { - float timer; + f32 timer; sprite->data[1]++; timer = sprite->data[1]; - sprite->pos2.y = timer * 0.039f * timer; + sprite->y2 = timer * 0.039f * timer; sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[(sRoulette->shroomishShadowTimer - 1) / 2]; if (sRoulette->shroomishShadowTimer < ARRAY_COUNT(sShroomishShadowAlphas) * 2 - 1) sRoulette->shroomishShadowTimer++; @@ -4634,9 +4636,9 @@ static void SpriteCB_TaillowShadow_Flash(struct Sprite *sprite) static void SpriteCB_Taillow_FlyAway(struct Sprite *sprite) { - if (sprite->pos1.y > -16) + if (sprite->y > -16) { - sprite->pos1.y--; + sprite->y--; } else { @@ -4655,9 +4657,9 @@ static void SpriteCB_Taillow_PickUpBall(struct Sprite *sprite) if (sprite->data[1] >= 0) { sprite->data[1]--; - sprite->pos1.y--; + sprite->y--; if (sprite->data[1] == 0 && sprite->animCmdIndex == 1) - sprite->pos2.y++; + sprite->y2++; } else { @@ -4667,9 +4669,9 @@ static void SpriteCB_Taillow_PickUpBall(struct Sprite *sprite) if (sprite->animDelayCounter == 0) { if (sprite->animCmdIndex == 1) - sprite->pos2.y++; + sprite->y2++; else - sprite->pos2.y--; + sprite->y2--; } } else @@ -4698,10 +4700,10 @@ static void SpriteCB_Taillow_FlyIn(struct Sprite *sprite) if (sprite->data[1]-- > 7) { - sprite->pos1.x += xMoveOffsets[sRoulette->ball->sStuckOnWheelLeft] * 2; + sprite->x += xMoveOffsets[sRoulette->ball->sStuckOnWheelLeft] * 2; if (IsSEPlaying()) { - s8 pan = -((116 - sprite->pos1.x) / 2); + s8 pan = -((116 - sprite->x) / 2); m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, pan); m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, pan); } @@ -4710,8 +4712,8 @@ static void SpriteCB_Taillow_FlyIn(struct Sprite *sprite) { if (sprite->data[1] >= 0) { - sprite->pos1.x += xMoveOffsets[sRoulette->ball->sStuckOnWheelLeft] * yMoveOffsets[7 - sprite->data[1]][0]; - sprite->pos1.y += yMoveOffsets[7 - sprite->data[1]][1]; + sprite->x += xMoveOffsets[sRoulette->ball->sStuckOnWheelLeft] * yMoveOffsets[7 - sprite->data[1]][0]; + sprite->y += yMoveOffsets[7 - sprite->data[1]][1]; } else { @@ -4733,7 +4735,7 @@ static void SpriteCB_TaillowShadow_FlyIn(struct Sprite *sprite) if (sprite->data[1]-- >= 0) { - sprite->pos1.x += moveDir[sRoulette->ball->sStuckOnWheelLeft] * 2; + sprite->x += moveDir[sRoulette->ball->sStuckOnWheelLeft] * 2; gSprites[sprite->sMonShadowSpriteId].invisible ^= 1; } else diff --git a/src/safari_zone.c b/src/safari_zone.c index e8827e1246..1f13976569 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -65,7 +65,7 @@ void EnterSafariMode(void) void ExitSafariMode(void) { - sub_80EE44C(sSafariZoneCaughtMons, sSafariZonePkblkUses); + TryPutSafariFanClubOnAir(sSafariZoneCaughtMons, sSafariZonePkblkUses); ResetSafariZoneFlag(); ClearAllPokeblockFeeders(); gNumSafariBalls = 0; @@ -107,7 +107,7 @@ void CB2_EndSafariBattle(void) { ScriptContext2_RunNewScript(SafariZone_EventScript_OutOfBallsMidBattle); WarpIntoMap(); - gFieldCallback = sub_80AF6F0; + gFieldCallback = FieldCB_ReturnToFieldNoScriptCheckMusic; SetMainCallback2(CB2_LoadMap); } else if (gBattleOutcome == B_OUTCOME_CAUGHT) diff --git a/src/save.c b/src/save.c index 680f33de0a..52301df036 100644 --- a/src/save.c +++ b/src/save.c @@ -23,10 +23,6 @@ static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location); // Divide save blocks into individual chunks to be written to flash sectors -// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer -#define SECTOR_DATA_SIZE 3968 -#define SECTOR_FOOTER_SIZE 128 - /* * Sector Layout: * @@ -917,7 +913,7 @@ void Task_LinkSave(u8 taskId) if (IsLinkTaskFinished()) { if (!tPartialSave) - save_serialize_map(); + SaveMapView(); tState = 3; } break; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 9bf0e7ed4f..8f727310cd 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -25,29 +25,29 @@ extern const u8 gText_SaveCompleteGameCannotContinue[]; extern const u8 gText_SaveCompletePressA[]; extern const u8 gText_GamePlayCannotBeContinued[]; -// gSaveFailedClockInfo enum +// sClockInfo enum enum { CLOCK_RUNNING, DEBUG_TIMER }; -// gSaveFailedWindowIds enum +// sWindowIds enum enum { TEXT_WIN_ID, CLOCK_WIN_ID }; -EWRAM_DATA u16 gSaveFailedType = {0}; -EWRAM_DATA u16 gSaveFailedClockInfo[2] = {0}; -EWRAM_DATA u8 gSaveFailedUnused1[12] = {0}; -EWRAM_DATA u8 gSaveFailedWindowIds[2] = {0}; -EWRAM_DATA u8 gSaveFailedUnused2[4] = {0}; +static EWRAM_DATA u16 sSaveFailedType = {0}; +static EWRAM_DATA u16 sClockInfo[2] = {0}; +static EWRAM_DATA u8 sUnused1[12] = {0}; +static EWRAM_DATA u8 sWindowIds[2] = {0}; +static EWRAM_DATA u8 sUnused2[4] = {0}; static const struct OamData sClockOamData = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -62,7 +62,7 @@ static const struct OamData sClockOamData = .affineParam = 0 }; -static const struct BgTemplate gUnknown_085EFD88[3] = +static const struct BgTemplate sBgTemplates[3] = { { .bg = 0, @@ -93,20 +93,9 @@ static const struct BgTemplate gUnknown_085EFD88[3] = }, }; -static const struct WindowTemplate gUnknown_085EFD94[] = -{ - { - .bg = 255, - .tilemapLeft = 0, - .tilemapTop = 0, - .width = 0, - .height = 0, - .paletteNum = 0, - .baseBlock = 0, - } -}; +static const struct WindowTemplate sDummyWindowTemplate[] = { DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_085EFD9C[] = +static const struct WindowTemplate sWindowTemplate_Text[] = { { .bg = 0, @@ -119,7 +108,7 @@ static const struct WindowTemplate gUnknown_085EFD9C[] = } }; -static const struct WindowTemplate gUnknown_085EFDA4[] = +static const struct WindowTemplate sWindowTemplate_Clock[] = { { .bg = 0, @@ -157,24 +146,24 @@ static bool8 VerifySectorWipe(u16 sector); static bool8 WipeSectors(u32); // Although this is a general text printer, it's only used in this file. -static void SaveFailedScreenTextPrint(const u8 *text, u8 var1, u8 var2) +static void SaveFailedScreenTextPrint(const u8 *text, u8 x, u8 y) { u8 color[3]; - color[0] = 0; - color[1] = 15; - color[2] = 3; - AddTextPrinterParameterized4(gSaveFailedWindowIds[TEXT_WIN_ID], 1, var1 * 8, var2 * 8 + 1, 0, 0, color, 0, text); + color[0] = TEXT_COLOR_TRANSPARENT; + color[1] = TEXT_DYNAMIC_COLOR_6; + color[2] = TEXT_COLOR_LIGHT_GRAY; + AddTextPrinterParameterized4(sWindowIds[TEXT_WIN_ID], 1, x * 8, y * 8 + 1, 0, 0, color, 0, text); } void DoSaveFailedScreen(u8 saveType) { SetMainCallback2(CB2_SaveFailedScreen); - gSaveFailedType = saveType; - gSaveFailedClockInfo[CLOCK_RUNNING] = FALSE; - gSaveFailedClockInfo[DEBUG_TIMER] = 0; - gSaveFailedWindowIds[TEXT_WIN_ID] = 0; - gSaveFailedWindowIds[CLOCK_WIN_ID] = 0; + sSaveFailedType = saveType; + sClockInfo[CLOCK_RUNNING] = FALSE; + sClockInfo[DEBUG_TIMER] = 0; + sWindowIds[TEXT_WIN_ID] = 0; + sWindowIds[CLOCK_WIN_ID] = 0; } static void VBlankCB(void) @@ -210,17 +199,17 @@ static void CB2_SaveFailedScreen(void) LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); LZ77UnCompVram(gBirchBagTilemap, (void *)(BG_SCREEN_ADDR(14))); LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(15))); - LZ77UnCompVram(sSaveFailedClockGfx, (void *)(VRAM + 0x10020)); + LZ77UnCompVram(sSaveFailedClockGfx, (void *)(OBJ_VRAM0 + 0x20)); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085EFD88, 3); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); SetBgTilemapBuffer(0, (void *)&gDecompressionBuffer[0x2000]); CpuFill32(0, &gDecompressionBuffer[0x2000], 0x800); LoadBgTiles(0, gTextWindowFrame1_Gfx, 0x120, 0x214); - InitWindows(gUnknown_085EFD94); - gSaveFailedWindowIds[TEXT_WIN_ID] = AddWindowWithoutTileMap(gUnknown_085EFD9C); - SetWindowAttribute(gSaveFailedWindowIds[TEXT_WIN_ID], 7, (u32)&gDecompressionBuffer[0x2800]); - gSaveFailedWindowIds[CLOCK_WIN_ID] = AddWindowWithoutTileMap(gUnknown_085EFDA4); - SetWindowAttribute(gSaveFailedWindowIds[CLOCK_WIN_ID], 7, (u32)&gDecompressionBuffer[0x3D00]); + InitWindows(sDummyWindowTemplate); + sWindowIds[TEXT_WIN_ID] = AddWindowWithoutTileMap(sWindowTemplate_Text); + SetWindowAttribute(sWindowIds[TEXT_WIN_ID], 7, (u32)&gDecompressionBuffer[0x2800]); + sWindowIds[CLOCK_WIN_ID] = AddWindowWithoutTileMap(sWindowTemplate_Clock); + SetWindowAttribute(sWindowIds[CLOCK_WIN_ID], 7, (u32)&gDecompressionBuffer[0x3D00]); DeactivateAllTextPrinters(); ResetSpriteData(); ResetTasks(); @@ -229,14 +218,14 @@ static void CB2_SaveFailedScreen(void) LoadPalette(sSaveFailedClockPal, 0x100, 0x20); LoadPalette(gTextWindowFrame1_Pal, 0xE0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - DrawStdFrameWithCustomTileAndPalette(gSaveFailedWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); - DrawStdFrameWithCustomTileAndPalette(gSaveFailedWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); - FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], PIXEL_FILL(1)); // backwards? - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); - CopyWindowToVram(gSaveFailedWindowIds[CLOCK_WIN_ID], 2); // again? - CopyWindowToVram(gSaveFailedWindowIds[TEXT_WIN_ID], 1); + DrawStdFrameWithCustomTileAndPalette(sWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); + DrawStdFrameWithCustomTileAndPalette(sWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); + FillWindowPixelBuffer(sWindowIds[CLOCK_WIN_ID], PIXEL_FILL(1)); // backwards? + FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); + CopyWindowToVram(sWindowIds[CLOCK_WIN_ID], 2); // again? + CopyWindowToVram(sWindowIds[TEXT_WIN_ID], 1); SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); EnableInterrupts(1); SetVBlankCallback(VBlankCB); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); @@ -259,25 +248,25 @@ static void CB2_WipeSave(void) { u8 wipeTries = 0; - gSaveFailedClockInfo[CLOCK_RUNNING] = TRUE; + sClockInfo[CLOCK_RUNNING] = TRUE; while (gDamagedSaveSectors != 0 && wipeTries < 3) { - if (WipeSectors(gDamagedSaveSectors) != FALSE) + if (WipeSectors(gDamagedSaveSectors)) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); + FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0); SetMainCallback2(CB2_GameplayCannotBeContinued); return; } - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); + FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_CheckCompleted, 1, 0); - HandleSavingData(gSaveFailedType); + HandleSavingData(sSaveFailedType); if (gDamagedSaveSectors != 0) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); + FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0); } @@ -286,12 +275,12 @@ static void CB2_WipeSave(void) if (wipeTries == 3) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); + FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0); } else { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); + FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); if (gGameContinueCallback == NULL) SaveFailedScreenTextPrint(gText_SaveCompleteGameCannotContinue, 1, 0); @@ -304,11 +293,11 @@ static void CB2_WipeSave(void) static void CB2_GameplayCannotBeContinued(void) { - gSaveFailedClockInfo[CLOCK_RUNNING] = FALSE; + sClockInfo[CLOCK_RUNNING] = FALSE; if (JOY_NEW(A_BUTTON)) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); + FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_GamePlayCannotBeContinued, 1, 0); SetVBlankCallback(VBlankCB); SetMainCallback2(CB2_FadeAndReturnToTitleScreen); @@ -317,11 +306,11 @@ static void CB2_GameplayCannotBeContinued(void) static void CB2_FadeAndReturnToTitleScreen(void) { - gSaveFailedClockInfo[CLOCK_RUNNING] = FALSE; + sClockInfo[CLOCK_RUNNING] = FALSE; if (JOY_NEW(A_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); SetVBlankCallback(VBlankCB); SetMainCallback2(CB2_ReturnToTitleScreen); } @@ -351,7 +340,7 @@ static void VBlankCB_UpdateClockGraphics(void) gMain.oamBuffer[0].x = 112; gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8; - if (gSaveFailedClockInfo[CLOCK_RUNNING] != FALSE) + if (sClockInfo[CLOCK_RUNNING]) { gMain.oamBuffer[0].tileNum = sClockFrames[n][0]; gMain.oamBuffer[0].matrixNum = (sClockFrames[n][2] << 4) | (sClockFrames[n][1] << 3); @@ -363,8 +352,8 @@ static void VBlankCB_UpdateClockGraphics(void) CpuFastCopy(gMain.oamBuffer, (void *)OAM, 4); - if (gSaveFailedClockInfo[DEBUG_TIMER]) - gSaveFailedClockInfo[DEBUG_TIMER]--; + if (sClockInfo[DEBUG_TIMER]) + sClockInfo[DEBUG_TIMER]--; } static bool8 VerifySectorWipe(u16 sector) @@ -372,7 +361,7 @@ static bool8 VerifySectorWipe(u16 sector) u32 *ptr = (u32 *)&gSaveDataBuffer; u16 i; - ReadFlash(sector, 0, (u8 *)ptr, 4096); + ReadFlash(sector, 0, (u8 *)ptr, SECTOR_SIZE); for (i = 0; i < 0x400; i++, ptr++) if (*ptr) @@ -388,7 +377,7 @@ static bool8 WipeSector(u16 sector) for (i = 0; failed && i < 130; i++) { - for (j = 0; j < 0x1000; j++) + for (j = 0; j < SECTOR_SIZE; j++) ProgramFlashByte(sector, j, 0); failed = VerifySectorWipe(sector); @@ -401,7 +390,7 @@ static bool8 WipeSectors(u32 sectorBits) { u16 i; - for (i = 0; i < 0x20; i++) + for (i = 0; i < SECTORS_COUNT; i++) if ((sectorBits & (1 << i)) && !WipeSector(i)) sectorBits &= ~(1 << i); diff --git a/src/scanline_effect.c b/src/scanline_effect.c index 1d58144292..dc3ca03f4a 100644 --- a/src/scanline_effect.c +++ b/src/scanline_effect.c @@ -22,10 +22,10 @@ void ScanlineEffect_Stop(void) { gScanlineEffect.state = 0; DmaStop(0); - if (gScanlineEffect.waveTaskId != 0xFF) + if (gScanlineEffect.waveTaskId != TASK_NONE) { DestroyTask(gScanlineEffect.waveTaskId); - gScanlineEffect.waveTaskId = 0xFF; + gScanlineEffect.waveTaskId = TASK_NONE; } } @@ -40,7 +40,7 @@ void ScanlineEffect_Clear(void) gScanlineEffect.state = 0; gScanlineEffect.unused16 = 0; gScanlineEffect.unused17 = 0; - gScanlineEffect.waveTaskId = 0xFF; + gScanlineEffect.waveTaskId = TASK_NONE; } void ScanlineEffect_SetParams(struct ScanlineEffectParams params) @@ -132,7 +132,7 @@ static void TaskFunc_UpdateWavePerFrame(u8 taskId) if (sShouldStopWaveTask) { DestroyTask(taskId); - gScanlineEffect.waveTaskId = 0xFF; + gScanlineEffect.waveTaskId = TASK_NONE; } else { diff --git a/src/scrcmd.c b/src/scrcmd.c index c777cb5f11..20b3064734 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -53,8 +53,8 @@ typedef u16 (*SpecialFunc)(void); typedef void (*NativeFunc)(void); -EWRAM_DATA const u8 *gUnknown_020375C0 = NULL; -static EWRAM_DATA u32 gUnknown_020375C4 = 0; +EWRAM_DATA const u8 *gRamScriptRetAddr = NULL; +static EWRAM_DATA u32 sAddressOffset = 0; // For relative addressing in vgoto etc., used by saved scripts (e.g. Mystery Event) static EWRAM_DATA u16 sPauseCounter = 0; static EWRAM_DATA u16 sMovingNpcId = 0; static EWRAM_DATA u16 sMovingNpcMapBank = 0; @@ -193,7 +193,7 @@ bool8 ScrCmd_setvaddress(struct ScriptContext *ctx) u32 addr1 = (u32)ctx->scriptPtr - 1; u32 addr2 = ScriptReadWord(ctx); - gUnknown_020375C4 = addr2 - addr1; + sAddressOffset = addr2 - addr1; return FALSE; } @@ -201,7 +201,7 @@ bool8 ScrCmd_vgoto(struct ScriptContext *ctx) { u32 addr = ScriptReadWord(ctx); - ScriptJump(ctx, (u8 *)(addr - gUnknown_020375C4)); + ScriptJump(ctx, (u8 *)(addr - sAddressOffset)); return FALSE; } @@ -209,14 +209,14 @@ bool8 ScrCmd_vcall(struct ScriptContext *ctx) { u32 addr = ScriptReadWord(ctx); - ScriptCall(ctx, (u8 *)(addr - gUnknown_020375C4)); + ScriptCall(ctx, (u8 *)(addr - sAddressOffset)); return FALSE; } bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx) { u8 condition = ScriptReadByte(ctx); - const u8 *ptr = (const u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + const u8 *ptr = (const u8 *)(ScriptReadWord(ctx) - sAddressOffset); if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) ScriptJump(ctx, ptr); @@ -226,7 +226,7 @@ bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx) bool8 ScrCmd_vcall_if(struct ScriptContext *ctx) { u8 condition = ScriptReadByte(ctx); - const u8 *ptr = (const u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + const u8 *ptr = (const u8 *)(ScriptReadWord(ctx) - sAddressOffset); if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) ScriptCall(ctx, ptr); @@ -283,7 +283,7 @@ bool8 ScrCmd_callstd_if(struct ScriptContext *ctx) bool8 ScrCmd_returnram(struct ScriptContext *ctx) { - ScriptJump(ctx, gUnknown_020375C0); + ScriptJump(ctx, gRamScriptRetAddr); return FALSE; } @@ -379,32 +379,30 @@ bool8 ScrCmd_setorcopyvar(struct ScriptContext *ctx) return FALSE; } -u8 compare_012(u16 a1, u16 a2) +u8 Compare(u16 a, u16 b) { - if (a1 < a2) + if (a < b) return 0; - if (a1 == a2) + if (a == b) return 1; return 2; } -// comparelocaltolocal bool8 ScrCmd_compare_local_to_local(struct ScriptContext *ctx) { const u8 value1 = ctx->data[ScriptReadByte(ctx)]; const u8 value2 = ctx->data[ScriptReadByte(ctx)]; - ctx->comparisonResult = compare_012(value1, value2); + ctx->comparisonResult = Compare(value1, value2); return FALSE; } -// comparelocaltoimm bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx) { const u8 value1 = ctx->data[ScriptReadByte(ctx)]; const u8 value2 = ScriptReadByte(ctx); - ctx->comparisonResult = compare_012(value1, value2); + ctx->comparisonResult = Compare(value1, value2); return FALSE; } @@ -413,7 +411,7 @@ bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx) const u8 value1 = ctx->data[ScriptReadByte(ctx)]; const u8 value2 = *(const u8 *)ScriptReadWord(ctx); - ctx->comparisonResult = compare_012(value1, value2); + ctx->comparisonResult = Compare(value1, value2); return FALSE; } @@ -422,7 +420,7 @@ bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx) const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = ctx->data[ScriptReadByte(ctx)]; - ctx->comparisonResult = compare_012(value1, value2); + ctx->comparisonResult = Compare(value1, value2); return FALSE; } @@ -431,7 +429,7 @@ bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx) const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = ScriptReadByte(ctx); - ctx->comparisonResult = compare_012(value1, value2); + ctx->comparisonResult = Compare(value1, value2); return FALSE; } @@ -440,7 +438,7 @@ bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx) const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = *(const u8 *)ScriptReadWord(ctx); - ctx->comparisonResult = compare_012(value1, value2); + ctx->comparisonResult = Compare(value1, value2); return FALSE; } @@ -449,7 +447,7 @@ bool8 ScrCmd_compare_var_to_value(struct ScriptContext *ctx) const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx)); const u16 value2 = ScriptReadHalfword(ctx); - ctx->comparisonResult = compare_012(value1, value2); + ctx->comparisonResult = Compare(value1, value2); return FALSE; } @@ -458,7 +456,7 @@ bool8 ScrCmd_compare_var_to_var(struct ScriptContext *ctx) const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx)); const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx)); - ctx->comparisonResult = compare_012(*ptr1, *ptr2); + ctx->comparisonResult = Compare(*ptr1, *ptr2); return FALSE; } @@ -1121,7 +1119,7 @@ bool8 ScrCmd_showobject_at(struct ScriptContext *ctx) u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); - npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 0); + SetObjectInvisibility(localId, mapNum, mapGroup, FALSE); return FALSE; } @@ -1131,7 +1129,7 @@ bool8 ScrCmd_hideobject_at(struct ScriptContext *ctx) u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); - npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 1); + SetObjectInvisibility(localId, mapNum, mapGroup, TRUE); return FALSE; } @@ -1142,7 +1140,7 @@ bool8 ScrCmd_setobjectpriority(struct ScriptContext *ctx) u8 mapNum = ScriptReadByte(ctx); u8 priority = ScriptReadByte(ctx); - sub_808E78C(localId, mapNum, mapGroup, priority + 83); + SetObjectPriority(localId, mapNum, mapGroup, priority + 83); return FALSE; } @@ -1152,7 +1150,7 @@ bool8 ScrCmd_resetobjectpriority(struct ScriptContext *ctx) u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); - sub_808E7E4(localId, mapNum, mapGroup); + ResetObjectPriority(localId, mapNum, mapGroup); return FALSE; } @@ -1206,6 +1204,8 @@ bool8 ScrCmd_turnvobject(struct ScriptContext *ctx) return FALSE; } +// lockall freezes all object events except the player immediately. +// The player is frozen after waiting for their current movement to finish. bool8 ScrCmd_lockall(struct ScriptContext *ctx) { if (IsUpdateLinkStateCBActive()) @@ -1214,12 +1214,14 @@ bool8 ScrCmd_lockall(struct ScriptContext *ctx) } else { - ScriptFreezeObjectEvents(); - SetupNativeScript(ctx, sub_80983C4); + FreezeObjects_WaitForPlayer(); + SetupNativeScript(ctx, IsFreezePlayerFinished); return TRUE; } } +// lock freezes all object events except the player and the selected object immediately. +// The player and selected object are frozen after waiting for their current movement to finish. bool8 ScrCmd_lock(struct ScriptContext *ctx) { if (IsUpdateLinkStateCBActive()) @@ -1230,13 +1232,13 @@ bool8 ScrCmd_lock(struct ScriptContext *ctx) { if (gObjectEvents[gSelectedObjectEvent].active) { - LockSelectedObjectEvent(); - SetupNativeScript(ctx, sub_809847C); + FreezeObjects_WaitForPlayerAndSelected(); + SetupNativeScript(ctx, IsFreezeSelectedObjectAndPlayerFinished); } else { - ScriptFreezeObjectEvents(); - SetupNativeScript(ctx, sub_80983C4); + FreezeObjects_WaitForPlayer(); + SetupNativeScript(ctx, IsFreezePlayerFinished); } return TRUE; } @@ -1300,7 +1302,8 @@ bool8 ScrCmd_messageautoscroll(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdDB(struct ScriptContext *ctx) +// Prints all at once. Skips waiting for player input. Only used by link contests +bool8 ScrCmd_messageinstant(struct ScriptContext *ctx) { const u8 *msg = (const u8 *)ScriptReadWord(ctx); @@ -1360,7 +1363,7 @@ bool8 ScrCmd_multichoice(struct ScriptContext *ctx) u8 left = ScriptReadByte(ctx); u8 top = ScriptReadByte(ctx); u8 multichoiceId = ScriptReadByte(ctx); - u8 ignoreBPress = ScriptReadByte(ctx); + bool8 ignoreBPress = ScriptReadByte(ctx); if (ScriptMenu_Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) { @@ -1379,7 +1382,7 @@ bool8 ScrCmd_multichoicedefault(struct ScriptContext *ctx) u8 top = ScriptReadByte(ctx); u8 multichoiceId = ScriptReadByte(ctx); u8 defaultChoice = ScriptReadByte(ctx); - u8 ignoreBPress = ScriptReadByte(ctx); + bool8 ignoreBPress = ScriptReadByte(ctx); if (ScriptMenu_MultichoiceWithDefault(left, top, multichoiceId, ignoreBPress, defaultChoice) == TRUE) { @@ -1409,7 +1412,7 @@ bool8 ScrCmd_multichoicegrid(struct ScriptContext *ctx) u8 top = ScriptReadByte(ctx); u8 multichoiceId = ScriptReadByte(ctx); u8 numColumns = ScriptReadByte(ctx); - u8 ignoreBPress = ScriptReadByte(ctx); + bool8 ignoreBPress = ScriptReadByte(ctx); if (ScriptMenu_MultichoiceGrid(left, top, multichoiceId, ignoreBPress, numColumns) == TRUE) { @@ -1429,7 +1432,7 @@ bool8 ScrCmd_erasebox(struct ScriptContext *ctx) u8 right = ScriptReadByte(ctx); u8 bottom = ScriptReadByte(ctx); - // MenuZeroFillWindowRect(left, top, right, bottom); + // Menu_EraseWindowRect(left, top, right, bottom); return FALSE; } @@ -1438,7 +1441,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx) u8 left = ScriptReadByte(ctx); u8 top = ScriptReadByte(ctx); u8 multichoiceId = ScriptReadByte(ctx); - u8 ignoreBPress = ScriptReadByte(ctx); + bool8 ignoreBPress = ScriptReadByte(ctx); /*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) { @@ -1468,15 +1471,15 @@ bool8 ScrCmd_hidemonpic(struct ScriptContext *ctx) return TRUE; } -bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx) +bool8 ScrCmd_showcontestpainting(struct ScriptContext *ctx) { u8 contestWinnerId = ScriptReadByte(ctx); - // Don't save artist's painting yet + // Artist's painting is temporary and already has its data loaded if (contestWinnerId != CONTEST_WINNER_ARTIST) SetContestWinnerForPainting(contestWinnerId); - ShowContestWinnerPainting(); + ShowContestPainting(); ScriptContext1_Stop(); return TRUE; } @@ -1490,27 +1493,30 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) u8 xWindow, yWindow, xText, yText; u8 temp; + // + 6 for the 6 bytes at the start of a braille message (brailleformat macro) + // In RS these bytes are used to position the text and window, but + // in Emerald they are unused and position is calculated below instead StringExpandPlaceholders(gStringVar4, ptr + 6); width = GetStringWidth(6, gStringVar4, -1) / 8u; - if (width > 0x1C) - width = 0x1C; + if (width > 28) + width = 28; - for (i = 0, height = 4; gStringVar4[i] != 0xFF;) + for (i = 0, height = 4; gStringVar4[i] != EOS;) { - if (gStringVar4[i++] == 0xFE) + if (gStringVar4[i++] == CHAR_NEWLINE) height += 3; } - if (height > 0x12) - height = 0x12; + if (height > 18) + height = 18; temp = width + 2; - xWindow = (0x1E - temp) / 2; + xWindow = (30 - temp) / 2; temp = height + 2; - yText = (0x14 - temp) / 2; + yText = (20 - temp) / 2; xText = xWindow; xWindow += 1; @@ -1540,9 +1546,9 @@ bool8 ScrCmd_closebraillemessage(struct ScriptContext *ctx) bool8 ScrCmd_vmessage(struct ScriptContext *ctx) { - u32 v1 = ScriptReadWord(ctx); + u32 msg = ScriptReadWord(ctx); - ShowFieldMessage((u8 *)(v1 - gUnknown_020375C4)); + ShowFieldMessage((u8 *)(msg - sAddressOffset)); return FALSE; } @@ -1652,7 +1658,7 @@ bool8 ScrCmd_bufferstring(struct ScriptContext *ctx) bool8 ScrCmd_vloadword(struct ScriptContext *ctx) { - const u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + const u8 *ptr = (u8 *)(ScriptReadWord(ctx) - sAddressOffset); StringExpandPlaceholders(gStringVar4, ptr); return FALSE; @@ -1663,7 +1669,7 @@ bool8 ScrCmd_vbufferstring(struct ScriptContext *ctx) u8 stringVarIndex = ScriptReadByte(ctx); u32 addr = ScriptReadWord(ctx); - const u8 *src = (u8 *)(addr - gUnknown_020375C4); + const u8 *src = (u8 *)(addr - sAddressOffset); u8 *dest = sScriptStringVars[stringVarIndex]; StringCopy(dest, src); return FALSE; @@ -1923,6 +1929,7 @@ bool8 ScrCmd_pokemartdecoration(struct ScriptContext *ctx) return TRUE; } +// Changes clerk dialogue slightly from above. See MART_TYPE_DECOR2 bool8 ScrCmd_pokemartdecoration2(struct ScriptContext *ctx) { const void *ptr = (void *)ScriptReadWord(ctx); @@ -2127,6 +2134,7 @@ bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx) return FALSE; } +// Below two are functions for elevators in RS, do nothing in Emerald bool8 ScrCmd_addelevmenuitem(struct ScriptContext *ctx) { u8 v3 = ScriptReadByte(ctx); @@ -2158,9 +2166,9 @@ bool8 ScrCmd_addcoins(struct ScriptContext *ctx) u16 coins = VarGet(ScriptReadHalfword(ctx)); if (AddCoins(coins) == TRUE) - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; else - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; return FALSE; } @@ -2169,9 +2177,9 @@ bool8 ScrCmd_removecoins(struct ScriptContext *ctx) u16 coins = VarGet(ScriptReadHalfword(ctx)); if (RemoveCoins(coins) == TRUE) - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; else - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; return FALSE; } @@ -2203,13 +2211,13 @@ bool8 ScrCmd_freerotatingtilepuzzle(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdD8(struct ScriptContext *ctx) +bool8 ScrCmd_selectapproachingtrainer(struct ScriptContext *ctx) { gSelectedObjectEvent = GetCurrentApproachingTrainerObjectEventId(); return FALSE; } -bool8 ScrCmd_cmdD9(struct ScriptContext *ctx) +bool8 ScrCmd_lockfortrainer(struct ScriptContext *ctx) { if (IsUpdateLinkStateCBActive()) { @@ -2219,28 +2227,28 @@ bool8 ScrCmd_cmdD9(struct ScriptContext *ctx) { if (gObjectEvents[gSelectedObjectEvent].active) { - sub_8098630(); - SetupNativeScript(ctx, sub_8098734); + FreezeForApproachingTrainers(); + SetupNativeScript(ctx, IsFreezeObjectAndPlayerFinished); } return TRUE; } } -// This command will force the Pokémon to be obedient, you don't get to make it disobedient. -bool8 ScrCmd_setmonobedient(struct ScriptContext *ctx) +// This command will set a Pokémon's eventLegal bit; there is no similar command to clear it. +bool8 ScrCmd_setmoneventlegal(struct ScriptContext *ctx) { - bool8 obedient = TRUE; + bool8 isEventLegal = TRUE; u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); - SetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, &obedient); + SetMonData(&gPlayerParty[partyIndex], MON_DATA_EVENT_LEGAL, &isEventLegal); return FALSE; } -bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx) +bool8 ScrCmd_checkmoneventlegal(struct ScriptContext *ctx) { u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); - gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, NULL); + gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_EVENT_LEGAL, NULL); return FALSE; } @@ -2248,17 +2256,19 @@ bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx) // See GetSavedRamScriptIfValid, which is NULL if ValidateReceivedWonderCard returns FALSE bool8 ScrCmd_gotoram(struct ScriptContext *ctx) { - const u8* v1 = GetSavedRamScriptIfValid(); + const u8* script = GetSavedRamScriptIfValid(); - if (v1) + if (script) { - gUnknown_020375C0 = ctx->scriptPtr; - ScriptJump(ctx, v1); + gRamScriptRetAddr = ctx->scriptPtr; + ScriptJump(ctx, script); } return FALSE; } -bool8 ScrCmd_warpD1(struct ScriptContext *ctx) +// Unused +// For the warp used by the Aqua Hideout, see DoTeleportTileWarp +bool8 ScrCmd_warpspinenter(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -2267,8 +2277,8 @@ bool8 ScrCmd_warpD1(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); SetWarpDestination(mapGroup, mapNum, warpId, x, y); - sub_808D074(GetPlayerFacingDirection()); - sub_80B0244(); + SetSpinStartFacingDir(GetPlayerFacingDirection()); + DoSpinEnterWarp(); ResetInitialPlayerAvatarState(); return TRUE; } diff --git a/src/script.c b/src/script.c index 9ba1a74297..726c065439 100644 --- a/src/script.c +++ b/src/script.c @@ -7,13 +7,16 @@ #define RAM_SCRIPT_MAGIC 51 -extern const u8* gUnknown_020375C0; +enum { + SCRIPT_MODE_STOPPED, + SCRIPT_MODE_BYTECODE, + SCRIPT_MODE_NATIVE, +}; + +extern const u8* gRamScriptRetAddr; -// ewram bss static u8 sScriptContext1Status; -static u32 sUnusedVariable1; static struct ScriptContext sScriptContext1; -static u32 sUnusedVariable2; static struct ScriptContext sScriptContext2; static bool8 sScriptContext2Enabled; @@ -25,57 +28,60 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable { s32 i; - ctx->mode = 0; - ctx->scriptPtr = 0; + ctx->mode = SCRIPT_MODE_STOPPED; + ctx->scriptPtr = NULL; ctx->stackDepth = 0; - ctx->nativePtr = 0; + ctx->nativePtr = NULL; ctx->cmdTable = cmdTable; ctx->cmdTableEnd = cmdTableEnd; - for (i = 0; i < 4; i++) + for (i = 0; i < (int)ARRAY_COUNT(ctx->data); i++) ctx->data[i] = 0; - for (i = 0; i < 20; i++) - ctx->stack[i] = 0; + for (i = 0; i < (int)ARRAY_COUNT(ctx->stack); i++) + ctx->stack[i] = NULL; } u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr) { ctx->scriptPtr = ptr; - ctx->mode = 1; + ctx->mode = SCRIPT_MODE_BYTECODE; return 1; } void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void)) { - ctx->mode = 2; + ctx->mode = SCRIPT_MODE_NATIVE; ctx->nativePtr = ptr; } void StopScript(struct ScriptContext *ctx) { - ctx->mode = 0; - ctx->scriptPtr = 0; + ctx->mode = SCRIPT_MODE_STOPPED; + ctx->scriptPtr = NULL; } bool8 RunScriptCommand(struct ScriptContext *ctx) { - if (ctx->mode == 0) + if (ctx->mode == SCRIPT_MODE_STOPPED) return FALSE; switch (ctx->mode) { - case 0: + case SCRIPT_MODE_STOPPED: return FALSE; - case 2: + case SCRIPT_MODE_NATIVE: + // Try to call a function in C + // Continue to bytecode if no function or it returns TRUE if (ctx->nativePtr) { if (ctx->nativePtr() == TRUE) - ctx->mode = 1; + ctx->mode = SCRIPT_MODE_BYTECODE; return TRUE; } - ctx->mode = 1; - case 1: + ctx->mode = SCRIPT_MODE_BYTECODE; + // fallthrough + case SCRIPT_MODE_BYTECODE: while (1) { u8 cmdCode; @@ -83,7 +89,7 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) if (!ctx->scriptPtr) { - ctx->mode = 0; + ctx->mode = SCRIPT_MODE_STOPPED; return FALSE; } @@ -99,11 +105,11 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) if (func >= ctx->cmdTableEnd) { - ctx->mode = 0; + ctx->mode = SCRIPT_MODE_STOPPED; return FALSE; } - if ((*func)(ctx) == 1) + if ((*func)(ctx) == TRUE) return TRUE; } } @@ -111,21 +117,21 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) return TRUE; } -u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) +static bool8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) { - if (ctx->stackDepth + 1 >= 20) + if (ctx->stackDepth + 1 >= (int)ARRAY_COUNT(ctx->stack)) { - return 1; + return TRUE; } else { ctx->stack[ctx->stackDepth] = ptr; ctx->stackDepth++; - return 0; + return FALSE; } } -const u8 *ScriptPop(struct ScriptContext *ctx) +static const u8 *ScriptPop(struct ScriptContext *ctx) { if (ctx->stackDepth == 0) return NULL; @@ -198,10 +204,10 @@ void ScriptContext1_Init(void) bool8 ScriptContext2_RunScript(void) { if (sScriptContext1Status == 2) - return 0; + return FALSE; if (sScriptContext1Status == 1) - return 0; + return FALSE; ScriptContext2_Enable(); @@ -209,10 +215,10 @@ bool8 ScriptContext2_RunScript(void) { sScriptContext1Status = 2; ScriptContext2_Disable(); - return 0; + return FALSE; } - return 1; + return TRUE; } void ScriptContext1_SetupScript(const u8 *ptr) @@ -236,7 +242,7 @@ void EnableBothScriptContexts(void) void ScriptContext2_RunNewScript(const u8 *ptr) { - InitScriptContext(&sScriptContext2, &gScriptCmdTable, &gScriptCmdTableEnd); + InitScriptContext(&sScriptContext2, gScriptCmdTable, gScriptCmdTableEnd); SetupBytecodeScript(&sScriptContext2, ptr); while (RunScriptCommand(&sScriptContext2) == TRUE); } @@ -255,7 +261,7 @@ u8 *MapHeaderGetScriptTable(u8 tag) if (*mapScripts == tag) { mapScripts++; - return (u8 *)(mapScripts[0] + (mapScripts[1] << 8) + (mapScripts[2] << 16) + (mapScripts[3] << 24)); + return T2_READ_PTR(mapScripts); } mapScripts += 5; } @@ -279,14 +285,20 @@ u8 *MapHeaderCheckScriptTable(u8 tag) { u16 varIndex1; u16 varIndex2; - varIndex1 = ptr[0] | (ptr[1] << 8); + + // Read first var (or .2byte terminal value) + varIndex1 = T1_READ_16(ptr); if (!varIndex1) - return NULL; + return NULL; // Reached end of table ptr += 2; - varIndex2 = ptr[0] | (ptr[1] << 8); + + // Read second var + varIndex2 = T1_READ_16(ptr); ptr += 2; + + // Run map script if vars are equal if (VarGet(varIndex1) == VarGet(varIndex2)) - return (u8 *)(ptr[0] + (ptr[1] << 8) + (ptr[2] << 16) + (ptr[3] << 24)); + return T2_READ_PTR(ptr); ptr += 4; } } @@ -365,7 +377,7 @@ bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 const u8 *GetRamScript(u8 objectId, const u8 *script) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; - gUnknown_020375C0 = NULL; + gRamScriptRetAddr = NULL; if (scriptData->magic != RAM_SCRIPT_MAGIC) return script; if (scriptData->mapGroup != gSaveBlock1Ptr->location.mapGroup) @@ -381,7 +393,7 @@ const u8 *GetRamScript(u8 objectId, const u8 *script) } else { - gUnknown_020375C0 = script; + gRamScriptRetAddr = script; return scriptData->script; } } diff --git a/src/script_menu.c b/src/script_menu.c index 425cdc251c..f3317773af 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -279,7 +279,7 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, bool8 ignore gTasks[taskId].tWindowId = CreateWindowFromRect(left, top, columnCount * newWidth, rowCount * 2); SetStandardWindowBorderStyle(gTasks[taskId].tWindowId, 0); PrintMenuGridTable(gTasks[taskId].tWindowId, newWidth * 8, columnCount, rowCount, sMultichoiceLists[multichoiceId].list); - sub_8199944(gTasks[taskId].tWindowId, newWidth * 8, columnCount, rowCount, 0); + InitMenuActionGrid(gTasks[taskId].tWindowId, newWidth * 8, columnCount, rowCount, 0); CopyWindowToVram(gTasks[taskId].tWindowId, 3); return TRUE; } @@ -580,7 +580,7 @@ bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y) u8 taskId; u8 spriteId; - if (FindTaskIdByFunc(Task_PokemonPicWindow) != 0xFF) + if (FindTaskIdByFunc(Task_PokemonPicWindow) != TASK_NONE) { return FALSE; } @@ -604,7 +604,7 @@ bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void) { u8 taskId = FindTaskIdByFunc(Task_PokemonPicWindow); - if (taskId == 0xFF) + if (taskId == TASK_NONE) return NULL; gTasks[taskId].tState++; return IsPicboxClosed; @@ -612,7 +612,7 @@ bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void) static bool8 IsPicboxClosed(void) { - if (FindTaskIdByFunc(Task_PokemonPicWindow) == 0xFF) + if (FindTaskIdByFunc(Task_PokemonPicWindow) == TASK_NONE) return TRUE; else return FALSE; diff --git a/src/script_movement.c b/src/script_movement.c index 4eb3059807..013270697f 100644 --- a/src/script_movement.c +++ b/src/script_movement.c @@ -52,7 +52,7 @@ void ScriptMovement_UnfreezeObjectEvents(void) u8 taskId; taskId = GetMoveObjectsTaskId(); - if (taskId != 0xFF) + if (taskId != TASK_NONE) { ScriptMovement_UnfreezeActiveObjects(taskId); DestroyTask(taskId); diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index 5d79ecae7b..6cdedc78a5 100755 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -22,7 +22,6 @@ #include "string_util.h" #include "tv.h" #include "constants/items.h" -#include "constants/tv.h" #include "constants/battle_frontier.h" static void CB2_ReturnFromChooseHalfParty(void); @@ -66,7 +65,7 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u u8 heldItem[2]; struct Pokemon mon; - CreateMon(&mon, species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); + CreateMon(&mon, species, level, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0); heldItem[0] = item; heldItem[1] = item >> 8; SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem); @@ -139,7 +138,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item) u8 heldItem[2]; ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); + CreateMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0); if (item) { heldItem[0] = item; diff --git a/src/secret_base.c b/src/secret_base.c index 8e09295933..ce455642b1 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -47,7 +47,13 @@ #include "constants/secret_bases.h" #include "constants/songs.h" #include "constants/trainers.h" -#include "constants/tv.h" + +// Values for registryStatus +enum { + UNREGISTERED, + REGISTERED, + NEW, // Temporary, so new secret bases mixed at the same time don't overwrite each other +}; struct SecretBaseRegistryMenu { @@ -72,21 +78,21 @@ static EWRAM_DATA u8 sCurSecretBaseId = 0; static EWRAM_DATA bool8 sInFriendSecretBase = FALSE; static EWRAM_DATA struct SecretBaseRegistryMenu *sRegistryMenu = NULL; -static void Task_ShowSecretBaseRegistryMenu(u8 taskId); -static void BuildRegistryMenuItems(u8 taskId); -static void RegistryMenu_OnCursorMove(s32 unused, bool8 flag, struct ListMenu *menu); -static void FinalizeRegistryMenu(u8 taskId); -static void AddRegistryMenuScrollArrows(u8 taskId); -static void HandleRegistryMenuInput(u8 taskId); -static void ShowRegistryMenuActions(u8 taskId); -static void HandleRegistryMenuActionsInput(u8 taskId); -static void ShowRegistryMenuDeleteConfirmation(u8 taskId); -static void ShowRegistryMenuDeleteYesNo(u8 taskId); -static void DeleteRegistry_Yes(u8 taskId); -static void DeleteRegistry_No(u8 taskId); -static void ReturnToMainRegistryMenu(u8 taskId); -static void GoToSecretBasePCRegisterMenu(u8 taskId); -static u8 GetSecretBaseOwnerType(u8 secretBaseId); +static void Task_ShowSecretBaseRegistryMenu(u8); +static void BuildRegistryMenuItems(u8); +static void RegistryMenu_OnCursorMove(s32, bool8, struct ListMenu *); +static void FinalizeRegistryMenu(u8); +static void AddRegistryMenuScrollArrows(u8); +static void HandleRegistryMenuInput(u8); +static void ShowRegistryMenuActions(u8); +static void HandleRegistryMenuActionsInput(u8); +static void ShowRegistryMenuDeleteConfirmation(u8); +static void ShowRegistryMenuDeleteYesNo(u8); +static void DeleteRegistry_Yes(u8); +static void DeleteRegistry_No(u8); +static void ReturnToMainRegistryMenu(u8); +static void GoToSecretBasePCRegisterMenu(u8); +static u8 GetSecretBaseOwnerType(u8); static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] = { @@ -101,34 +107,39 @@ static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] = // mapNum, warpId, x, y // x, y positions are for when the player warps in for the first time (in front of the computer) -static const u8 sSecretBaseEntrancePositions[] = +static const u8 sSecretBaseEntrancePositions[NUM_SECRET_BASE_GROUPS * 4] = { - MAP_NUM(SECRET_BASE_RED_CAVE1), 0, 1, 3, - MAP_NUM(SECRET_BASE_RED_CAVE2), 0, 5, 9, - MAP_NUM(SECRET_BASE_RED_CAVE3), 0, 1, 3, - MAP_NUM(SECRET_BASE_RED_CAVE4), 0, 7, 13, - MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0, 2, 3, - MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0, 9, 2, - MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0, 13, 4, - MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0, 1, 2, - MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0, 1, 3, - MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0, 1, 2, - MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0, 3, 15, - MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0, 3, 14, - MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0, 9, 3, - MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0, 8, 7, - MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0, 3, 6, - MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0, 5, 9, - MAP_NUM(SECRET_BASE_TREE1), 0, 2, 3, - MAP_NUM(SECRET_BASE_TREE2), 0, 5, 6, - MAP_NUM(SECRET_BASE_TREE3), 0, 15, 3, - MAP_NUM(SECRET_BASE_TREE4), 0, 4, 10, - MAP_NUM(SECRET_BASE_SHRUB1), 0, 3, 3, - MAP_NUM(SECRET_BASE_SHRUB2), 0, 1, 2, - MAP_NUM(SECRET_BASE_SHRUB3), 0, 7, 8, - MAP_NUM(SECRET_BASE_SHRUB4), 0, 9, 6, + [SECRET_BASE_RED_CAVE1] = MAP_NUM(SECRET_BASE_RED_CAVE1), 0, 1, 3, + [SECRET_BASE_RED_CAVE2] = MAP_NUM(SECRET_BASE_RED_CAVE2), 0, 5, 9, + [SECRET_BASE_RED_CAVE3] = MAP_NUM(SECRET_BASE_RED_CAVE3), 0, 1, 3, + [SECRET_BASE_RED_CAVE4] = MAP_NUM(SECRET_BASE_RED_CAVE4), 0, 7, 13, + [SECRET_BASE_BROWN_CAVE1] = MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0, 2, 3, + [SECRET_BASE_BROWN_CAVE2] = MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0, 9, 2, + [SECRET_BASE_BROWN_CAVE3] = MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0, 13, 4, + [SECRET_BASE_BROWN_CAVE4] = MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0, 1, 2, + [SECRET_BASE_BLUE_CAVE1] = MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0, 1, 3, + [SECRET_BASE_BLUE_CAVE2] = MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0, 1, 2, + [SECRET_BASE_BLUE_CAVE3] = MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0, 3, 15, + [SECRET_BASE_BLUE_CAVE4] = MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0, 3, 14, + [SECRET_BASE_YELLOW_CAVE1] = MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0, 9, 3, + [SECRET_BASE_YELLOW_CAVE2] = MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0, 8, 7, + [SECRET_BASE_YELLOW_CAVE3] = MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0, 3, 6, + [SECRET_BASE_YELLOW_CAVE4] = MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0, 5, 9, + [SECRET_BASE_TREE1] = MAP_NUM(SECRET_BASE_TREE1), 0, 2, 3, + [SECRET_BASE_TREE2] = MAP_NUM(SECRET_BASE_TREE2), 0, 5, 6, + [SECRET_BASE_TREE3] = MAP_NUM(SECRET_BASE_TREE3), 0, 15, 3, + [SECRET_BASE_TREE4] = MAP_NUM(SECRET_BASE_TREE4), 0, 4, 10, + [SECRET_BASE_SHRUB1] = MAP_NUM(SECRET_BASE_SHRUB1), 0, 3, 3, + [SECRET_BASE_SHRUB2] = MAP_NUM(SECRET_BASE_SHRUB2), 0, 1, 2, + [SECRET_BASE_SHRUB3] = MAP_NUM(SECRET_BASE_SHRUB3), 0, 7, 8, + [SECRET_BASE_SHRUB4] = MAP_NUM(SECRET_BASE_SHRUB4), 0, 9, 6, }; +#define GET_BASE_MAP_NUM(group) (sSecretBaseEntrancePositions[(group) + 0]) +#define GET_BASE_WARP_ID(group) (sSecretBaseEntrancePositions[(group) + 1]) +#define GET_BASE_COMPUTER_X(group) (sSecretBaseEntrancePositions[(group) + 2]) +#define GET_BASE_COMPUTER_Y(group) (sSecretBaseEntrancePositions[(group) + 3]) + static const struct MenuAction sRegistryMenuActions[] = { { @@ -314,6 +325,8 @@ void ToggleSecretBaseEntranceMetatile(void) GetXYCoordsOneStepInFrontOfPlayer(&x, &y); metatileId = MapGridGetMetatileIdAt(x, y); + + // Look for entrance metatiles to open for (i = 0; i < ARRAY_COUNT(sSecretBaseEntranceMetatiles); i++) { if (sSecretBaseEntranceMetatiles[i].closedMetatileId == metatileId) @@ -324,6 +337,7 @@ void ToggleSecretBaseEntranceMetatile(void) } } + // Look for entrance metatiles to close for (i = 0; i < ARRAY_COUNT(sSecretBaseEntranceMetatiles); i++) { if (sSecretBaseEntranceMetatiles[i].openMetatileId == metatileId) @@ -362,6 +376,7 @@ void SetPlayerSecretBase(void) VarSet(VAR_SECRET_BASE_MAP, gMapHeader.regionMapSectionId); } +// Set the 'open' entrance metatile for any occupied secret base on this map void SetOccupiedSecretBaseEntranceMetatiles(struct MapEvents const *events) { u16 bgId; @@ -395,24 +410,26 @@ void SetOccupiedSecretBaseEntranceMetatiles(struct MapEvents const *events) static void SetSecretBaseWarpDestination(void) { - s8 offset = (sCurSecretBaseId / 10) * 4; - SetWarpDestinationToMapWarp(MAP_GROUP(SECRET_BASE_RED_CAVE1), sSecretBaseEntrancePositions[offset], sSecretBaseEntrancePositions[offset + 1]); + s8 secretBaseGroup = SECRET_BASE_ID_TO_GROUP(sCurSecretBaseId); + SetWarpDestinationToMapWarp(MAP_GROUP(SECRET_BASE_RED_CAVE1), GET_BASE_MAP_NUM(secretBaseGroup), GET_BASE_WARP_ID(secretBaseGroup)); } +#define tState data[0] + static void Task_EnterSecretBase(u8 taskId) { - u16 secretBaseId; + u16 secretBaseIdx; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (!gPaletteFade.active) - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; break; case 1: - secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); - if (gSaveBlock1Ptr->secretBases[secretBaseId].numTimesEntered < 255) - gSaveBlock1Ptr->secretBases[secretBaseId].numTimesEntered++; + secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE); + if (gSaveBlock1Ptr->secretBases[secretBaseIdx].numTimesEntered < 255) + gSaveBlock1Ptr->secretBases[secretBaseIdx].numTimesEntered++; SetSecretBaseWarpDestination(); WarpIntoMap(); @@ -423,6 +440,8 @@ static void Task_EnterSecretBase(u8 taskId) } } +#undef tState + void EnterSecretBase(void) { CreateTask(Task_EnterSecretBase, 0); @@ -467,13 +486,13 @@ static void Task_EnterNewlyCreatedSecretBase(u8 taskId) { if (!gPaletteFade.active) { - s8 offset = sCurSecretBaseId / 10 * 4; + s8 secretBaseGroup = SECRET_BASE_ID_TO_GROUP(sCurSecretBaseId); SetWarpDestination( gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, - sSecretBaseEntrancePositions[offset + 2], - sSecretBaseEntrancePositions[offset + 3]); + GET_BASE_COMPUTER_X(secretBaseGroup), + GET_BASE_COMPUTER_Y(secretBaseGroup)); WarpIntoMap(); gFieldCallback = EnterNewlyCreatedSecretBase_StartFadeIn; SetMainCallback2(CB2_LoadMap); @@ -498,23 +517,23 @@ bool8 CurMapIsSecretBase(void) void InitSecretBaseAppearance(bool8 hidePC) { - u16 secretBaseId; + u16 secretBaseIdx; u16 x, y; u8 *decorations; u8 *decorPos; if (CurMapIsSecretBase()) { - secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); - decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations; - decorPos = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions; + secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE); + decorations = gSaveBlock1Ptr->secretBases[secretBaseIdx].decorations; + decorPos = gSaveBlock1Ptr->secretBases[secretBaseIdx].decorationPositions; for (x = 0; x < DECOR_MAX_SECRET_BASE; x++) { if (decorations[x] > 0 && decorations[x] <= NUM_DECORATIONS && gDecorations[decorations[x]].permission != DECORPERM_SPRITE) ShowDecorationOnMap((decorPos[x] >> 4) + 7, (decorPos[x] & 0xF) + 7, decorations[x]); } - if (secretBaseId != 0) + if (secretBaseIdx != 0) { // Another player's secret base. Change PC type to the "Register" PC. FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC); @@ -549,9 +568,9 @@ void InitSecretBaseDecorationSprites(void) } else { - u16 secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); - decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations; - decorationPositions = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions; + u16 secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE); + decorations = gSaveBlock1Ptr->secretBases[secretBaseIdx].decorations; + decorationPositions = gSaveBlock1Ptr->secretBases[secretBaseIdx].decorationPositions; numDecorations = DECOR_MAX_SECRET_BASE; } @@ -703,10 +722,10 @@ void IsCurSecretBaseOwnedByAnotherPlayer(void) gSpecialVar_Result = FALSE; } -static u8 *GetSecretBaseName(u8 *dest, u8 secretBaseId) +static u8 *GetSecretBaseName(u8 *dest, u8 secretBaseIdx) { - *StringCopyN(dest, gSaveBlock1Ptr->secretBases[secretBaseId].trainerName, GetNameLength(gSaveBlock1Ptr->secretBases[secretBaseId].trainerName)) = EOS; - ConvertInternationalString(dest, gSaveBlock1Ptr->secretBases[secretBaseId].language); + *StringCopyN(dest, gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerName, GetNameLength(gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerName)) = EOS; + ConvertInternationalString(dest, gSaveBlock1Ptr->secretBases[secretBaseIdx].language); return StringAppend(dest, gText_ApostropheSBase); } @@ -717,18 +736,18 @@ u8 *GetSecretBaseMapName(u8 *dest) void CopyCurSecretBaseOwnerName_StrVar1(void) { - u8 secretBaseId; + u8 secretBaseIdx; const u8 *name; - secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); - name = gSaveBlock1Ptr->secretBases[secretBaseId].trainerName; + secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE); + name = gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerName; *StringCopyN(gStringVar1, name, GetNameLength(name)) = EOS; - ConvertInternationalString(gStringVar1, gSaveBlock1Ptr->secretBases[secretBaseId].language); + ConvertInternationalString(gStringVar1, gSaveBlock1Ptr->secretBases[secretBaseIdx].language); } -static bool8 IsSecretBaseRegistered(u8 secretBaseId) +static bool8 IsSecretBaseRegistered(u8 secretBaseIdx) { - if (gSaveBlock1Ptr->secretBases[secretBaseId].registryStatus) + if (gSaveBlock1Ptr->secretBases[secretBaseIdx].registryStatus) return TRUE; return FALSE; @@ -812,7 +831,7 @@ static void ClosePlayerSecretBaseEntrance(void) && gSaveBlock1Ptr->secretBases[0].secretBaseId == events->bgEvents[i].bgUnion.secretBaseId) { metatileId = MapGridGetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7); - for (j = 0; j < 7; j++) + for (j = 0; j < ARRAY_COUNT(sSecretBaseEntranceMetatiles); j++) { if (sSecretBaseEntranceMetatiles[j].openMetatileId == metatileId) { @@ -879,18 +898,28 @@ void ShowSecretBaseRegistryMenu(void) CreateTask(Task_ShowSecretBaseRegistryMenu, 0); } +#define tNumBases data[0] +#define tSelectedRow data[1] +#define tScrollOffset data[2] +#define tMaxShownItems data[3] +#define tSelectedBaseId data[4] +#define tListTaskId data[5] +#define tMainWindowId data[6] +#define tActionWindowId data[7] +#define tArrowTaskId data[8] + static void Task_ShowSecretBaseRegistryMenu(u8 taskId) { s16 *data = gTasks[taskId].data; ScriptContext2_Enable(); - data[0] = GetNumRegisteredSecretBases(); - if (data[0] != 0) + tNumBases = GetNumRegisteredSecretBases(); + if (tNumBases != 0) { - data[1] = 0; - data[2] = 0; + tSelectedRow = 0; + tScrollOffset = 0; ClearDialogWindowAndFrame(0, 0); sRegistryMenu = calloc(1, sizeof(*sRegistryMenu)); - data[6] = AddWindow(&sRegistryWindowTemplates[0]); + tMainWindowId = AddWindow(&sRegistryWindowTemplates[0]); BuildRegistryMenuItems(taskId); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; @@ -922,17 +951,17 @@ static void BuildRegistryMenuItems(u8 taskId) sRegistryMenu->items[count].name = gText_Cancel; sRegistryMenu->items[count].id = -2; - data[0] = count + 1; - if (data[0] < 8) - data[3] = data[0]; + tNumBases = count + 1; + if (tNumBases < 8) + tMaxShownItems = tNumBases; else - data[3] = 8; + tMaxShownItems = 8; gMultiuseListMenuTemplate = sRegistryListMenuTemplate; - gMultiuseListMenuTemplate.windowId = data[6]; - gMultiuseListMenuTemplate.totalItems = data[0]; + gMultiuseListMenuTemplate.windowId = tMainWindowId; + gMultiuseListMenuTemplate.totalItems = tNumBases; gMultiuseListMenuTemplate.items = sRegistryMenu->items; - gMultiuseListMenuTemplate.maxShowed = data[3]; + gMultiuseListMenuTemplate.maxShowed = tMaxShownItems; } static void RegistryMenu_OnCursorMove(s32 unused, bool8 flag, struct ListMenu *menu) @@ -944,8 +973,8 @@ static void RegistryMenu_OnCursorMove(s32 unused, bool8 flag, struct ListMenu *m static void FinalizeRegistryMenu(u8 taskId) { s16 *data = gTasks[taskId].data; - SetStandardWindowBorderStyle(data[6], 0); - data[5] = ListMenuInit(&gMultiuseListMenuTemplate, data[2], data[1]); + SetStandardWindowBorderStyle(tMainWindowId, 0); + tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, tScrollOffset, tSelectedRow); AddRegistryMenuScrollArrows(taskId); ScheduleBgCopyTilemapToVram(0); } @@ -953,35 +982,33 @@ static void FinalizeRegistryMenu(u8 taskId) static void AddRegistryMenuScrollArrows(u8 taskId) { s16 *data = gTasks[taskId].data; - data[8] = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xbc, 0x0c, 0x94, data[0] - data[3], 0x13f8, 0x13f8, &data[2]); + tArrowTaskId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 188, 12, 148, tNumBases - tMaxShownItems, 0x13f8, 0x13f8, &tScrollOffset); } static void HandleRegistryMenuInput(u8 taskId) { - s16 *data; - s32 input; + s16 *data = gTasks[taskId].data; + s32 input = ListMenu_ProcessInput(tListTaskId); + ListMenuGetScrollAndRow(tListTaskId, &tScrollOffset, &tSelectedRow); - data = gTasks[taskId].data; - input = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow(data[5], &data[2], &data[1]); switch (input) { case LIST_NOTHING_CHOSEN: break; case LIST_CANCEL: PlaySE(SE_SELECT); - DestroyListMenuTask(data[5], NULL, NULL); - RemoveScrollIndicatorArrowPair(data[8]); - ClearStdWindowAndFrame(data[6], 0); - ClearWindowTilemap(data[6]); - RemoveWindow(data[6]); + DestroyListMenuTask(tListTaskId, NULL, NULL); + RemoveScrollIndicatorArrowPair(tArrowTaskId); + ClearStdWindowAndFrame(tMainWindowId, 0); + ClearWindowTilemap(tMainWindowId); + RemoveWindow(tMainWindowId); ScheduleBgCopyTilemapToVram(0); free(sRegistryMenu); GoToSecretBasePCRegisterMenu(taskId); break; default: PlaySE(SE_SELECT); - data[4] = input; + tSelectedBaseId = input; ShowRegistryMenuActions(taskId); break; } @@ -991,13 +1018,13 @@ static void ShowRegistryMenuActions(u8 taskId) { struct WindowTemplate template; s16 *data = gTasks[taskId].data; - RemoveScrollIndicatorArrowPair(data[8]); + RemoveScrollIndicatorArrowPair(tArrowTaskId); template = sRegistryWindowTemplates[1]; template.width = GetMaxWidthInMenuTable(sRegistryMenuActions, 2); - data[7] = AddWindow(&template); - SetStandardWindowBorderStyle(data[7], 0); - PrintMenuTable(data[7], 2, sRegistryMenuActions); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[7], 2, 0); + tActionWindowId = AddWindow(&template); + SetStandardWindowBorderStyle(tActionWindowId, 0); + PrintMenuTable(tActionWindowId, ARRAY_COUNT(sRegistryMenuActions), sRegistryMenuActions); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tActionWindowId, 2, 0); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = HandleRegistryMenuActionsInput; } @@ -1023,13 +1050,13 @@ static void HandleRegistryMenuActionsInput(u8 taskId) static void ShowRegistryMenuDeleteConfirmation(u8 taskId) { s16 *data = gTasks[taskId].data; - ClearStdWindowAndFrame(data[6], FALSE); - ClearStdWindowAndFrame(data[7], FALSE); - ClearWindowTilemap(data[6]); - ClearWindowTilemap(data[7]); - RemoveWindow(data[7]); + ClearStdWindowAndFrame(tMainWindowId, FALSE); + ClearStdWindowAndFrame(tActionWindowId, FALSE); + ClearWindowTilemap(tMainWindowId); + ClearWindowTilemap(tActionWindowId); + RemoveWindow(tActionWindowId); ScheduleBgCopyTilemapToVram(0); - GetSecretBaseName(gStringVar1, data[4]); + GetSecretBaseName(gStringVar1, tSelectedBaseId); StringExpandPlaceholders(gStringVar4, gText_OkayToDeleteFromRegistry); DisplayItemMessageOnField(taskId, gStringVar4, ShowRegistryMenuDeleteYesNo); } @@ -1044,10 +1071,10 @@ void DeleteRegistry_Yes_Callback(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); - DestroyListMenuTask(data[5], &data[2], &data[1]); - gSaveBlock1Ptr->secretBases[data[4]].registryStatus = 0; + DestroyListMenuTask(tListTaskId, &tScrollOffset, &tSelectedRow); + gSaveBlock1Ptr->secretBases[tSelectedBaseId].registryStatus = UNREGISTERED; BuildRegistryMenuItems(taskId); - sub_812225C(&data[2], &data[1], data[3], data[0]); + SetCursorWithinListBounds(&tScrollOffset, &tSelectedRow, tMaxShownItems, tNumBases); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; } @@ -1061,7 +1088,7 @@ static void DeleteRegistry_No(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); - DestroyListMenuTask(data[5], &data[2], &data[1]); + DestroyListMenuTask(tListTaskId, &tScrollOffset, &tSelectedRow); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; } @@ -1070,9 +1097,9 @@ static void ReturnToMainRegistryMenu(u8 taskId) { s16 *data = gTasks[taskId].data; AddRegistryMenuScrollArrows(taskId); - ClearStdWindowAndFrame(data[7], 0); - ClearWindowTilemap(data[7]); - RemoveWindow(data[7]); + ClearStdWindowAndFrame(tActionWindowId, 0); + ClearWindowTilemap(tActionWindowId); + RemoveWindow(tActionWindowId); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = HandleRegistryMenuInput; } @@ -1087,10 +1114,20 @@ static void GoToSecretBasePCRegisterMenu(u8 taskId) DestroyTask(taskId); } -static u8 GetSecretBaseOwnerType(u8 secretBaseId) +#undef tNumBases +#undef tSelectedRow +#undef tScrollOffset +#undef tMaxShownItems +#undef tSelectedBaseId +#undef tListTaskId +#undef tMainWindowId +#undef tActionWindowId +#undef tArrowTaskId + +static u8 GetSecretBaseOwnerType(u8 secretBaseIdx) { - return (gSaveBlock1Ptr->secretBases[secretBaseId].trainerId[0] % 5) - + (gSaveBlock1Ptr->secretBases[secretBaseId].gender * 5); + return (gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerId[0] % 5) + + (gSaveBlock1Ptr->secretBases[secretBaseIdx].gender * 5); } const u8 *GetSecretBaseTrainerLoseText(void) @@ -1132,10 +1169,10 @@ void SetBattledOwnerFromResult(void) void GetSecretBaseOwnerAndState(void) { - u16 secretBaseId; + u16 secretBaseIdx; u8 i; - secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); + secretBaseIdx = VarGet(VAR_CURRENT_SECRET_BASE); if (!FlagGet(FLAG_DAILY_SECRET_BASE)) { for (i = 0; i < SECRET_BASES_COUNT; i++) @@ -1143,10 +1180,16 @@ void GetSecretBaseOwnerAndState(void) FlagSet(FLAG_DAILY_SECRET_BASE); } - gSpecialVar_0x8004 = GetSecretBaseOwnerType(secretBaseId); - gSpecialVar_Result = gSaveBlock1Ptr->secretBases[secretBaseId].battledOwnerToday; + gSpecialVar_0x8004 = GetSecretBaseOwnerType(secretBaseIdx); + gSpecialVar_Result = gSaveBlock1Ptr->secretBases[secretBaseIdx].battledOwnerToday; } +#define tStepCb data[0] // See Task_RunPerStepCallback +#define tState data[1] +#define tPlayerX data[2] +#define tPlayerY data[3] +#define tFldEff data[4] + void SecretBasePerStepCallback(u8 taskId) { s16 x; @@ -1156,23 +1199,23 @@ void SecretBasePerStepCallback(u8 taskId) s16 *data; data = gTasks[taskId].data; - switch (data[1]) + switch (tState) { case 0: - if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) + if (VarGet(VAR_CURRENT_SECRET_BASE)) sInFriendSecretBase = TRUE; else sInFriendSecretBase = FALSE; - PlayerGetDestCoords(&data[2], &data[3]); - data[1] = 1; + PlayerGetDestCoords(&tPlayerX, &tPlayerY); + tState = 1; break; case 1: PlayerGetDestCoords(&x, &y); - if (x != data[2] || y != data[3]) + if (x != tPlayerX || y != tPlayerY) { - data[2] = x; - data[3] = y; + tPlayerX = x; + tPlayerY = y; VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); behavior = MapGridGetMetatileBehaviorAt(x, y); tileId = MapGridGetMetatileIdAt(x, y); @@ -1273,33 +1316,40 @@ void SecretBasePerStepCallback(u8 taskId) } break; case 2: - if (!FieldEffectActiveListContains(data[4])) - data[1] = 1; + // This state is never reached, and tFldEff is never set + if (!FieldEffectActiveListContains(tFldEff)) + tState = 1; break; } } -static void SetSecretBaseDataAndLanguage(u8 secretBaseId, struct SecretBase *secretBase, u32 version, u32 language) +#undef tStepCb +#undef tState +#undef tPlayerX +#undef tPlayerY +#undef tFldEff + +static void SaveSecretBase(u8 secretBaseIdx, struct SecretBase *secretBase, u32 version, u32 language) { int stringLength; u8 *name; - gSaveBlock1Ptr->secretBases[secretBaseId] = *secretBase; - gSaveBlock1Ptr->secretBases[secretBaseId].registryStatus = 2; + gSaveBlock1Ptr->secretBases[secretBaseIdx] = *secretBase; + gSaveBlock1Ptr->secretBases[secretBaseIdx].registryStatus = NEW; if (version == VERSION_SAPPHIRE || version == VERSION_RUBY) - gSaveBlock1Ptr->secretBases[secretBaseId].language = LANGUAGE_ENGLISH; + gSaveBlock1Ptr->secretBases[secretBaseIdx].language = GAME_LANGUAGE; if (version == VERSION_EMERALD && language == LANGUAGE_JAPANESE) { - name = gSaveBlock1Ptr->secretBases[secretBaseId].trainerName; - for (stringLength = 0; stringLength < 7; stringLength++) + name = gSaveBlock1Ptr->secretBases[secretBaseIdx].trainerName; + for (stringLength = 0; stringLength < PLAYER_NAME_LENGTH; stringLength++) { if (name[stringLength] == EOS) break; } if (stringLength > 5) - gSaveBlock1Ptr->secretBases[secretBaseId].language = LANGUAGE_ENGLISH; + gSaveBlock1Ptr->secretBases[secretBaseIdx].language = GAME_LANGUAGE; } } @@ -1363,56 +1413,67 @@ static u8 FindAvailableSecretBaseIndex(void) return 0; } -static u8 sub_80EAA18(void) +static u8 FindUnregisteredSecretBaseIndex(void) { s16 i; for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (gSaveBlock1Ptr->secretBases[i].registryStatus == 0 && gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 == 0) + if (gSaveBlock1Ptr->secretBases[i].registryStatus == UNREGISTERED && gSaveBlock1Ptr->secretBases[i].toRegister == FALSE) return i; } return 0; } -static u8 sub_80EAA64(struct SecretBase *secretBase, u32 version, u32 language) +static u8 TrySaveFriendsSecretBase(struct SecretBase *secretBase, u32 version, u32 language) { s16 index; + // Secret base has no location if (!secretBase->secretBaseId) return 0; index = GetSecretBaseIndexFromId(secretBase->secretBaseId); if (index != 0) { + // An existing secret base is using this location if (index != -1) { - if (gSaveBlock1Ptr->secretBases[index].sbr_field_1_0 == 1) + if (gSaveBlock1Ptr->secretBases[index].toRegister == TRUE) return 0; - if (gSaveBlock1Ptr->secretBases[index].registryStatus != 2 || secretBase->sbr_field_1_0 == 1) + if (gSaveBlock1Ptr->secretBases[index].registryStatus != NEW || secretBase->toRegister == TRUE) { - SetSecretBaseDataAndLanguage(index, secretBase, version, language); + // Overwrite unregistered base at this location + SaveSecretBase(index, secretBase, version, language); return index; } } + // No secret base is using this location, find a spot to save it else { index = FindAvailableSecretBaseIndex(); if (index != 0) { - SetSecretBaseDataAndLanguage(index, secretBase, version, language); + // Save in empty space + SaveSecretBase(index, secretBase, version, language); return index; } - index = sub_80EAA18(); + index = FindUnregisteredSecretBaseIndex(); if (index != 0) { - SetSecretBaseDataAndLanguage(index, secretBase, version, language); + // Overwrite unregistered base + SaveSecretBase(index, secretBase, version, language); return index; } } } + + // Unable to save. Either... + // - This was the player's base + // - A registered base exists at this location + // - The secret base limit has been filled with registered bases return 0; } @@ -1425,11 +1486,12 @@ static void SortSecretBasesByRegistryStatus(void) struct SecretBase *secretBases; secretBases = gSaveBlock1Ptr->secretBases; - for (i = 1; i < 19; i++) + for (i = 1; i < SECRET_BASES_COUNT - 1; i++) { for (j = i + 1; j < SECRET_BASES_COUNT; j++) { - if ((secretBases[i].registryStatus == 0 && secretBases[j].registryStatus == 1) || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2)) + if ((secretBases[i].registryStatus == UNREGISTERED && secretBases[j].registryStatus == REGISTERED) + || (secretBases[i].registryStatus == NEW && secretBases[j].registryStatus != NEW)) { struct SecretBase temp; SWAP(secretBases[i], secretBases[j], temp) @@ -1438,17 +1500,19 @@ static void SortSecretBasesByRegistryStatus(void) } } -void sub_80EABA4(struct SecretBaseRecordMixer *mixer, u8 registryStatus) +// Used to save a record mixing friends' bases other than their own +// registryStatus is so registered bases can be attempted first +static void TrySaveFriendsSecretBases(struct SecretBaseRecordMixer *mixer, u8 registryStatus) { u16 i; for (i = 1; i < SECRET_BASES_COUNT; i++) { if (mixer->secretBases[i].registryStatus == registryStatus) - sub_80EAA64(&mixer->secretBases[i], mixer->version, mixer->language); + TrySaveFriendsSecretBase(&mixer->secretBases[i], mixer->version, mixer->language); } } -bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase) +static bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase) { u8 i; @@ -1478,7 +1542,7 @@ bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase) #define DELETED_BASE_B (1 << 1) #define DELETED_BASE_C (1 << 2) -void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC) +static void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC) { u8 i; u8 sbFlags = 0; @@ -1524,7 +1588,7 @@ void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase #undef DELETED_BASE_C // returns TRUE if secretBase was deleted, FALSE otherwise -static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c) +static bool8 ClearDuplicateOwnedSecretBase(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 idx) { u8 i; @@ -1534,7 +1598,7 @@ static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struc { if (SecretBasesBelongToSamePlayer(secretBase, &secretBases[i]) == TRUE) { - if (c == 0) + if (idx == 0) { ClearSecretBase(&secretBases[i]); return FALSE; @@ -1546,7 +1610,7 @@ static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struc return FALSE; } - secretBases[i].sbr_field_1_0 = secretBase->sbr_field_1_0; + secretBases[i].toRegister = secretBase->toRegister; ClearSecretBase(secretBase); return TRUE; } @@ -1556,87 +1620,97 @@ static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struc return FALSE; } -void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC, struct SecretBase *basesD) +static void ClearDuplicateOwnedSecretBases(struct SecretBase *playersBases, struct SecretBase *friendsBasesA, struct SecretBase *friendsBasesB, struct SecretBase *friendsBasesC) { u8 i; for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (basesA[i].secretBaseId) + if (playersBases[i].secretBaseId) { - if (basesA[i].registryStatus == 1) + if (playersBases[i].registryStatus == REGISTERED) { - basesA[i].sbr_field_1_0 = 1; + // Mark registered bases, so if they're deleted as a duplicate they + // will be re-registered later + playersBases[i].toRegister = TRUE; } - if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesB, i)) + if (!ClearDuplicateOwnedSecretBase(&playersBases[i], friendsBasesA, i)) { - if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesC, i)) + if (!ClearDuplicateOwnedSecretBase(&playersBases[i], friendsBasesB, i)) { - ClearDuplicateOwnedSecretBases(&basesA[i], basesD, i); + ClearDuplicateOwnedSecretBase(&playersBases[i], friendsBasesC, i); } } } } for (i = 0; i < SECRET_BASES_COUNT; i++) { - if (basesB[i].secretBaseId) + if (friendsBasesA[i].secretBaseId) { - basesB[i].battledOwnerToday = 0; - if (!ClearDuplicateOwnedSecretBases(&basesB[i], basesC, i)) + friendsBasesA[i].battledOwnerToday = 0; + if (!ClearDuplicateOwnedSecretBase(&friendsBasesA[i], friendsBasesB, i)) { - ClearDuplicateOwnedSecretBases(&basesB[i], basesD, i); + ClearDuplicateOwnedSecretBase(&friendsBasesA[i], friendsBasesC, i); } } } for (i = 0; i < SECRET_BASES_COUNT; i++) { - if (basesC[i].secretBaseId) + if (friendsBasesB[i].secretBaseId) { - basesC[i].battledOwnerToday = 0; - ClearDuplicateOwnedSecretBases(&basesC[i], basesD, i); + friendsBasesB[i].battledOwnerToday = 0; + ClearDuplicateOwnedSecretBase(&friendsBasesB[i], friendsBasesC, i); } - if (basesD[i].secretBaseId) + if (friendsBasesC[i].secretBaseId) { - basesD[i].battledOwnerToday = 0; + friendsBasesC[i].battledOwnerToday = 0; } } } -void sub_80EAE90(struct SecretBase *base, u32 version, u32 language) +static void TrySaveRegisteredDuplicate(struct SecretBase *base, u32 version, u32 language) { - if (base->sbr_field_1_0 == 1) + if (base->toRegister == TRUE) { - sub_80EAA64(base, version, language); + TrySaveFriendsSecretBase(base, version, language); ClearSecretBase(base); } } -void sub_80EAEB4(struct SecretBaseRecordMixer *mixers) +static void TrySaveRegisteredDuplicates(struct SecretBaseRecordMixer *mixers) { u16 i; for (i = 0; i < SECRET_BASES_COUNT; i++) { - sub_80EAE90(&mixers[0].secretBases[i], mixers[0].version, mixers[0].language); - sub_80EAE90(&mixers[1].secretBases[i], mixers[1].version, mixers[1].language); - sub_80EAE90(&mixers[2].secretBases[i], mixers[2].version, mixers[2].language); + TrySaveRegisteredDuplicate(&mixers[0].secretBases[i], mixers[0].version, mixers[0].language); + TrySaveRegisteredDuplicate(&mixers[1].secretBases[i], mixers[1].version, mixers[1].language); + TrySaveRegisteredDuplicate(&mixers[2].secretBases[i], mixers[2].version, mixers[2].language); } } -void sub_80EAEF4(struct SecretBaseRecordMixer *mixers) +static void SaveRecordMixBases(struct SecretBaseRecordMixer *mixers) { DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(mixers[0].secretBases, mixers[1].secretBases, mixers[2].secretBases); - sub_80EAD94(gSaveBlock1Ptr->secretBases, mixers[0].secretBases, mixers[1].secretBases, mixers[2].secretBases); - sub_80EAEB4(mixers); - sub_80EAA64(mixers[0].secretBases, mixers[0].version, mixers[0].language); - sub_80EAA64(mixers[1].secretBases, mixers[1].version, mixers[1].language); - sub_80EAA64(mixers[2].secretBases, mixers[2].version, mixers[2].language); - sub_80EABA4(&mixers[0], 1); - sub_80EABA4(&mixers[1], 1); - sub_80EABA4(&mixers[2], 1); - sub_80EABA4(&mixers[0], 0); - sub_80EABA4(&mixers[1], 0); - sub_80EABA4(&mixers[2], 0); + ClearDuplicateOwnedSecretBases(gSaveBlock1Ptr->secretBases, mixers[0].secretBases, mixers[1].secretBases, mixers[2].secretBases); + + // First, save any registered secret bases that were deleted as duplicates + TrySaveRegisteredDuplicates(mixers); + + // Then try to save the record mixing friends' own bases + TrySaveFriendsSecretBase(mixers[0].secretBases, mixers[0].version, mixers[0].language); + TrySaveFriendsSecretBase(mixers[1].secretBases, mixers[1].version, mixers[1].language); + TrySaveFriendsSecretBase(mixers[2].secretBases, mixers[2].version, mixers[2].language); + + // Then try to save as many of their registered bases as possible + TrySaveFriendsSecretBases(&mixers[0], REGISTERED); + TrySaveFriendsSecretBases(&mixers[1], REGISTERED); + TrySaveFriendsSecretBases(&mixers[2], REGISTERED); + + // Lastly save as many of their unregistered bases as possible + TrySaveFriendsSecretBases(&mixers[0], UNREGISTERED); + TrySaveFriendsSecretBases(&mixers[1], UNREGISTERED); + TrySaveFriendsSecretBases(&mixers[2], UNREGISTERED); } #define INIT_SECRET_BASE_RECORD_MIXER(linkId1, linkId2, linkId3) \ @@ -1684,23 +1758,25 @@ void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx) break; } - sub_80EAEF4(mixers); + SaveRecordMixBases(mixers); + for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 == 1) + // In the process of deleting duplicate bases, if a base the player has registered is deleted it is + // flagged with the temporary toRegister flag, so it can be re-registered after it has been newly saved + if (gSaveBlock1Ptr->secretBases[i].toRegister == TRUE) { - gSaveBlock1Ptr->secretBases[i].registryStatus = 1; - gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 = 0; + gSaveBlock1Ptr->secretBases[i].registryStatus = REGISTERED; + gSaveBlock1Ptr->secretBases[i].toRegister = FALSE; } } SortSecretBasesByRegistryStatus(); for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (gSaveBlock1Ptr->secretBases[i].registryStatus == 2) - { - gSaveBlock1Ptr->secretBases[i].registryStatus = 0; - } + // Unmark "new" bases, they've been saved now and are no longer important + if (gSaveBlock1Ptr->secretBases[i].registryStatus == NEW) + gSaveBlock1Ptr->secretBases[i].registryStatus = UNREGISTERED; } if (gSaveBlock1Ptr->secretBases[0].secretBaseId != 0 diff --git a/src/shop.c b/src/shop.c index 44ab0885ce..f4e3fa2d86 100755 --- a/src/shop.c +++ b/src/shop.c @@ -38,14 +38,16 @@ #include "constants/metatile_behaviors.h" #include "constants/rgb.h" #include "constants/songs.h" -#include "constants/tv.h" -EWRAM_DATA struct MartInfo gMartInfo = {0}; -EWRAM_DATA struct ShopData *gShopDataPtr = NULL; -EWRAM_DATA struct ListMenuItem *gUnknown_02039F74 = NULL; -EWRAM_DATA u8 (*gUnknown_02039F78)[16] = {0}; -EWRAM_DATA u8 gMartPurchaseHistoryId = 0; -EWRAM_DATA struct ItemSlot gMartPurchaseHistory[3] = {0}; +#define TAG_SCROLL_ARROW 2100 +#define TAG_ITEM_ICON_BASE 2110 + +static EWRAM_DATA struct MartInfo sMartInfo = {0}; +static EWRAM_DATA struct ShopData *sShopData = NULL; +static EWRAM_DATA struct ListMenuItem *sListMenuItems = NULL; +static EWRAM_DATA u8 (*sItemNames)[16] = {0}; +static EWRAM_DATA u8 sPurchaseHistoryId = 0; +EWRAM_DATA struct ItemSlot gMartPurchaseHistory[SMARTSHOPPER_NUM_ITEMS] = {0}; static void Task_ShopMenu(u8 taskId); static void Task_HandleShopMenuQuit(u8 taskId); @@ -89,7 +91,7 @@ static void Task_ReturnToItemListAfterDecorationPurchase(u8 taskId); static void Task_HandleShopMenuBuy(u8 taskId); static void Task_HandleShopMenuSell(u8 taskId); static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, struct ListMenu *list); -static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y); +static void BuyMenuPrintPriceInList(u8 windowId, u32 itemId, u8 y); static const struct YesNoFuncTable sShopPurchaseYesNoFuncs = { @@ -276,15 +278,15 @@ static u8 CreateShopMenu(u8 martType) int numMenuItems; ScriptContext2_Enable(); - gMartInfo.martType = martType; + sMartInfo.martType = martType; if (martType == MART_TYPE_NORMAL) { struct WindowTemplate winTemplate; winTemplate = sShopMenuWindowTemplates[0]; winTemplate.width = GetMaxWidthInMenuTable(sShopMenuActions_BuySellQuit, ARRAY_COUNT(sShopMenuActions_BuySellQuit)); - gMartInfo.windowId = AddWindow(&winTemplate); - gMartInfo.menuActions = sShopMenuActions_BuySellQuit; + sMartInfo.windowId = AddWindow(&winTemplate); + sMartInfo.menuActions = sShopMenuActions_BuySellQuit; numMenuItems = ARRAY_COUNT(sShopMenuActions_BuySellQuit); } else @@ -292,35 +294,35 @@ static u8 CreateShopMenu(u8 martType) struct WindowTemplate winTemplate; winTemplate = sShopMenuWindowTemplates[1]; winTemplate.width = GetMaxWidthInMenuTable(sShopMenuActions_BuyQuit, ARRAY_COUNT(sShopMenuActions_BuyQuit)); - gMartInfo.windowId = AddWindow(&winTemplate); - gMartInfo.menuActions = sShopMenuActions_BuyQuit; + sMartInfo.windowId = AddWindow(&winTemplate); + sMartInfo.menuActions = sShopMenuActions_BuyQuit; numMenuItems = ARRAY_COUNT(sShopMenuActions_BuyQuit); } - SetStandardWindowBorderStyle(gMartInfo.windowId, 0); - PrintMenuTable(gMartInfo.windowId, numMenuItems, gMartInfo.menuActions); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(gMartInfo.windowId, numMenuItems, 0); - PutWindowTilemap(gMartInfo.windowId); - CopyWindowToVram(gMartInfo.windowId, 1); + SetStandardWindowBorderStyle(sMartInfo.windowId, 0); + PrintMenuTable(sMartInfo.windowId, numMenuItems, sMartInfo.menuActions); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sMartInfo.windowId, numMenuItems, 0); + PutWindowTilemap(sMartInfo.windowId); + CopyWindowToVram(sMartInfo.windowId, 1); return CreateTask(Task_ShopMenu, 8); } static void SetShopMenuCallback(void (* callback)(void)) { - gMartInfo.callback = callback; + sMartInfo.callback = callback; } static void SetShopItemsForSale(const u16 *items) { u16 i = 0; - gMartInfo.itemList = items; - gMartInfo.itemCount = 0; + sMartInfo.itemList = items; + sMartInfo.itemCount = 0; - while (gMartInfo.itemList[i]) + while (sMartInfo.itemList[i]) { - gMartInfo.itemCount++; + sMartInfo.itemCount++; i++; } } @@ -337,7 +339,7 @@ static void Task_ShopMenu(u8 taskId) Task_HandleShopMenuQuit(taskId); break; default: - gMartInfo.menuActions[inputCode].func.void_u8(taskId); + sMartInfo.menuActions[inputCode].func.void_u8(taskId); break; } } @@ -368,14 +370,14 @@ void CB2_ExitSellMenu(void) static void Task_HandleShopMenuQuit(u8 taskId) { - ClearStdWindowAndFrameToTransparent(gMartInfo.windowId, 2); - RemoveWindow(gMartInfo.windowId); - SaveRecordedItemPurchasesForTVShow(); + ClearStdWindowAndFrameToTransparent(sMartInfo.windowId, 2); + RemoveWindow(sMartInfo.windowId); + TryPutSmartShopperOnAir(); ScriptContext2_Disable(); DestroyTask(taskId); - if (gMartInfo.callback) - gMartInfo.callback(); + if (sMartInfo.callback) + sMartInfo.callback(); } static void Task_GoToBuyOrSellMenu(u8 taskId) @@ -398,7 +400,7 @@ static void Task_ReturnToShopMenu(u8 taskId) { if (IsWeatherNotFadingIn() == TRUE) { - if (gMartInfo.martType == MART_TYPE_DECOR2) + if (sMartInfo.martType == MART_TYPE_DECOR2) DisplayItemMessageOnField(taskId, gText_CanIHelpWithAnythingElse, ShowShopMenuAfterExitingBuyOrSellMenu); else DisplayItemMessageOnField(taskId, gText_AnythingElseICanHelp, ShowShopMenuAfterExitingBuyOrSellMenu); @@ -407,7 +409,7 @@ static void Task_ReturnToShopMenu(u8 taskId) static void ShowShopMenuAfterExitingBuyOrSellMenu(u8 taskId) { - CreateShopMenu(gMartInfo.martType); + CreateShopMenu(sMartInfo.martType); DestroyTask(taskId); } @@ -447,10 +449,10 @@ static void CB2_InitBuyMenu(void) ResetSpriteData(); ResetTasks(); ClearScheduledBgCopiesToVram(); - gShopDataPtr = AllocZeroed(sizeof(struct ShopData)); - gShopDataPtr->scrollIndicatorsTaskId = 0xFF; - gShopDataPtr->itemSpriteIds[0] = 0xFF; - gShopDataPtr->itemSpriteIds[1] = 0xFF; + sShopData = AllocZeroed(sizeof(struct ShopData)); + sShopData->scrollIndicatorsTaskId = TASK_NONE; + sShopData->itemSpriteIds[0] = SPRITE_NONE; + sShopData->itemSpriteIds[1] = SPRITE_NONE; BuyMenuBuildListMenuTemplate(); BuyMenuInitBgs(); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); @@ -470,8 +472,8 @@ static void CB2_InitBuyMenu(void) BuyMenuAddScrollIndicatorArrows(); taskId = CreateTask(Task_BuyMenu, 8); gTasks[taskId].tListTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(VBlankCB_BuyMenu); SetMainCallback2(CB2_BuyMenu); break; @@ -480,40 +482,39 @@ static void CB2_InitBuyMenu(void) static void BuyMenuFreeMemory(void) { - Free(gShopDataPtr); - Free(gUnknown_02039F74); - Free(gUnknown_02039F78); + Free(sShopData); + Free(sListMenuItems); + Free(sItemNames); FreeAllWindowBuffers(); } static void BuyMenuBuildListMenuTemplate(void) { u16 i; - u16 itemCount; - gUnknown_02039F74 = Alloc((gMartInfo.itemCount + 1) * sizeof(*gUnknown_02039F74)); - gUnknown_02039F78 = Alloc((gMartInfo.itemCount + 1) * sizeof(*gUnknown_02039F78)); - for (i = 0; i < gMartInfo.itemCount; i++) - BuyMenuSetListEntry(&gUnknown_02039F74[i], gMartInfo.itemList[i], gUnknown_02039F78[i]); + sListMenuItems = Alloc((sMartInfo.itemCount + 1) * sizeof(*sListMenuItems)); + sItemNames = Alloc((sMartInfo.itemCount + 1) * sizeof(*sItemNames)); + for (i = 0; i < sMartInfo.itemCount; i++) + BuyMenuSetListEntry(&sListMenuItems[i], sMartInfo.itemList[i], sItemNames[i]); - StringCopy(gUnknown_02039F78[i], gText_Cancel2); - gUnknown_02039F74[i].name = gUnknown_02039F78[i]; - gUnknown_02039F74[i].id = -2; + StringCopy(sItemNames[i], gText_Cancel2); + sListMenuItems[i].name = sItemNames[i]; + sListMenuItems[i].id = LIST_CANCEL; gMultiuseListMenuTemplate = sShopBuyMenuListTemplate; - gMultiuseListMenuTemplate.items = gUnknown_02039F74; - gMultiuseListMenuTemplate.totalItems = gMartInfo.itemCount + 1; + gMultiuseListMenuTemplate.items = sListMenuItems; + gMultiuseListMenuTemplate.totalItems = sMartInfo.itemCount + 1; if (gMultiuseListMenuTemplate.totalItems > 8) gMultiuseListMenuTemplate.maxShowed = 8; else gMultiuseListMenuTemplate.maxShowed = gMultiuseListMenuTemplate.totalItems; - gShopDataPtr->itemsShowed = gMultiuseListMenuTemplate.maxShowed; + sShopData->itemsShowed = gMultiuseListMenuTemplate.maxShowed; } static void BuyMenuSetListEntry(struct ListMenuItem *menuItem, u16 item, u8 *name) { - if (gMartInfo.martType == MART_TYPE_NORMAL) + if (sMartInfo.martType == MART_TYPE_NORMAL) CopyItemName(item, name); else StringCopy(name, gDecorations[item].name); @@ -528,16 +529,16 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, s if (onInit != TRUE) PlaySE(SE_SELECT); - if (item != -2) - BuyMenuAddItemIcon(item, gShopDataPtr->iconSlot); + if (item != LIST_CANCEL) + BuyMenuAddItemIcon(item, sShopData->iconSlot); else - BuyMenuAddItemIcon(-1, gShopDataPtr->iconSlot); + BuyMenuAddItemIcon(-1, sShopData->iconSlot); - BuyMenuRemoveItemIcon(item, gShopDataPtr->iconSlot ^ 1); - gShopDataPtr->iconSlot ^= 1; - if (item != -2) + BuyMenuRemoveItemIcon(item, sShopData->iconSlot ^ 1); + sShopData->iconSlot ^= 1; + if (item != LIST_CANCEL) { - if (gMartInfo.martType == MART_TYPE_NORMAL) + if (sMartInfo.martType == MART_TYPE_NORMAL) description = ItemId_GetDescription(item); else description = gDecorations[item].description; @@ -551,17 +552,17 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, s BuyMenuPrint(2, description, 3, 1, 0, 0); } -static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y) +static void BuyMenuPrintPriceInList(u8 windowId, u32 itemId, u8 y) { u8 x; - if (item != -2) + if (itemId != LIST_CANCEL) { - if (gMartInfo.martType == MART_TYPE_NORMAL) + if (sMartInfo.martType == MART_TYPE_NORMAL) { ConvertIntToDecimalStringN( gStringVar1, - ItemId_GetPrice(item) >> GetPriceReduction(POKENEWS_SLATEPORT), + ItemId_GetPrice(itemId) >> GetPriceReduction(POKENEWS_SLATEPORT), STR_CONV_MODE_LEFT_ALIGN, 5); } @@ -569,7 +570,7 @@ static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y) { ConvertIntToDecimalStringN( gStringVar1, - gDecorations[item].price, + gDecorations[itemId].price, STR_CONV_MODE_LEFT_ALIGN, 5); } @@ -582,26 +583,26 @@ static void BuyMenuPrintPriceInList(u8 windowId, s32 item, u8 y) static void BuyMenuAddScrollIndicatorArrows(void) { - if (gShopDataPtr->scrollIndicatorsTaskId == 0xFF && gMartInfo.itemCount + 1 > 8) + if (sShopData->scrollIndicatorsTaskId == TASK_NONE && sMartInfo.itemCount + 1 > 8) { - gShopDataPtr->scrollIndicatorsTaskId = AddScrollIndicatorArrowPairParameterized( + sShopData->scrollIndicatorsTaskId = AddScrollIndicatorArrowPairParameterized( SCROLL_ARROW_UP, - 0xAC, - 0xC, - 0x94, - gMartInfo.itemCount - 7, - 2100, - 2100, - &gShopDataPtr->scrollOffset); + 172, + 12, + 148, + sMartInfo.itemCount - 7, + TAG_SCROLL_ARROW, + TAG_SCROLL_ARROW, + &sShopData->scrollOffset); } } static void BuyMenuRemoveScrollIndicatorArrows(void) { - if (gShopDataPtr->scrollIndicatorsTaskId != 0xFF) + if (sShopData->scrollIndicatorsTaskId != TASK_NONE) { - RemoveScrollIndicatorArrowPair(gShopDataPtr->scrollIndicatorsTaskId); - gShopDataPtr->scrollIndicatorsTaskId = 0xFF; + RemoveScrollIndicatorArrowPair(sShopData->scrollIndicatorsTaskId); + sShopData->scrollIndicatorsTaskId = TASK_NONE; } } @@ -614,23 +615,23 @@ static void BuyMenuPrintCursor(u8 scrollIndicatorsTaskId, u8 colorSet) static void BuyMenuAddItemIcon(u16 item, u8 iconSlot) { u8 spriteId; - u8 *spriteIdPtr = &gShopDataPtr->itemSpriteIds[iconSlot]; - if (*spriteIdPtr != 0xFF) + u8 *spriteIdPtr = &sShopData->itemSpriteIds[iconSlot]; + if (*spriteIdPtr != SPRITE_NONE) return; - if (gMartInfo.martType == MART_TYPE_NORMAL || item == 0xFFFF) + if (sMartInfo.martType == MART_TYPE_NORMAL || item == 0xFFFF) { - spriteId = AddItemIconSprite(iconSlot + 2110, iconSlot + 2110, item); + spriteId = AddItemIconSprite(iconSlot + TAG_ITEM_ICON_BASE, iconSlot + TAG_ITEM_ICON_BASE, item); if (spriteId != MAX_SPRITES) { *spriteIdPtr = spriteId; - gSprites[spriteId].pos2.x = 24; - gSprites[spriteId].pos2.y = 88; + gSprites[spriteId].x2 = 24; + gSprites[spriteId].y2 = 88; } } else { - spriteId = AddDecorationIconObject(item, 20, 84, 1, iconSlot + 2110, iconSlot + 2110); + spriteId = AddDecorationIconObject(item, 20, 84, 1, iconSlot + TAG_ITEM_ICON_BASE, iconSlot + TAG_ITEM_ICON_BASE); if (spriteId != MAX_SPRITES) *spriteIdPtr = spriteId; } @@ -638,23 +639,23 @@ static void BuyMenuAddItemIcon(u16 item, u8 iconSlot) static void BuyMenuRemoveItemIcon(u16 item, u8 iconSlot) { - u8 *spriteIdPtr = &gShopDataPtr->itemSpriteIds[iconSlot]; - if (*spriteIdPtr == 0xFF) + u8 *spriteIdPtr = &sShopData->itemSpriteIds[iconSlot]; + if (*spriteIdPtr == SPRITE_NONE) return; - FreeSpriteTilesByTag(iconSlot + 2110); - FreeSpritePaletteByTag(iconSlot + 2110); + FreeSpriteTilesByTag(iconSlot + TAG_ITEM_ICON_BASE); + FreeSpritePaletteByTag(iconSlot + TAG_ITEM_ICON_BASE); DestroySprite(&gSprites[*spriteIdPtr]); - *spriteIdPtr = 0xFF; + *spriteIdPtr = SPRITE_NONE; } static void BuyMenuInitBgs(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sShopBuyMenuBgTemplates, ARRAY_COUNT(sShopBuyMenuBgTemplates)); - SetBgTilemapBuffer(1, gShopDataPtr->tilemapBuffers[1]); - SetBgTilemapBuffer(2, gShopDataPtr->tilemapBuffers[3]); - SetBgTilemapBuffer(3, gShopDataPtr->tilemapBuffers[2]); + SetBgTilemapBuffer(1, sShopData->tilemapBuffers[1]); + SetBgTilemapBuffer(2, sShopData->tilemapBuffers[3]); + SetBgTilemapBuffer(3, sShopData->tilemapBuffers[2]); SetGpuReg(REG_OFFSET_BG0HOFS, 0); SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -674,7 +675,7 @@ static void BuyMenuInitBgs(void) static void BuyMenuDecompressBgGraphics(void) { DecompressAndCopyTileDataToVram(1, gBuyMenuFrame_Gfx, 0x3A0, 0x3E3, 0); - LZDecompressWram(gBuyMenuFrame_Tilemap, gShopDataPtr->tilemapBuffers[0]); + LZDecompressWram(gBuyMenuFrame_Tilemap, sShopData->tilemapBuffers[0]); LoadCompressedPalette(gMenuMoneyPal, 0xC0, 0x20); } @@ -764,16 +765,16 @@ static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLaye switch (metatileLayerType) { case 0: - BuyMenuDrawMapMetatileLayer(gShopDataPtr->tilemapBuffers[3], offset1, offset2, src); - BuyMenuDrawMapMetatileLayer(gShopDataPtr->tilemapBuffers[1], offset1, offset2, src + 4); + BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[3], offset1, offset2, src); + BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[1], offset1, offset2, src + 4); break; case 1: - BuyMenuDrawMapMetatileLayer(gShopDataPtr->tilemapBuffers[2], offset1, offset2, src); - BuyMenuDrawMapMetatileLayer(gShopDataPtr->tilemapBuffers[3], offset1, offset2, src + 4); + BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[2], offset1, offset2, src); + BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[3], offset1, offset2, src + 4); break; case 2: - BuyMenuDrawMapMetatileLayer(gShopDataPtr->tilemapBuffers[2], offset1, offset2, src); - BuyMenuDrawMapMetatileLayer(gShopDataPtr->tilemapBuffers[1], offset1, offset2, src + 4); + BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[2], offset1, offset2, src); + BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[1], offset1, offset2, src + 4); break; } } @@ -797,7 +798,7 @@ static void BuyMenuCollectObjectEventData(void) GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY); for (y = 0; y < OBJECT_EVENTS_COUNT; y++) - gShopDataPtr->viewportObjects[y][OBJ_EVENT_ID] = OBJECT_EVENTS_COUNT; + sShopData->viewportObjects[y][OBJ_EVENT_ID] = OBJECT_EVENTS_COUNT; for (y = 0; y < 5; y++) { for (x = 0; x < 7; x++) @@ -806,25 +807,25 @@ static void BuyMenuCollectObjectEventData(void) if (objEventId != OBJECT_EVENTS_COUNT) { - gShopDataPtr->viewportObjects[r8][OBJ_EVENT_ID] = objEventId; - gShopDataPtr->viewportObjects[r8][X_COORD] = x; - gShopDataPtr->viewportObjects[r8][Y_COORD] = y; - gShopDataPtr->viewportObjects[r8][LAYER_TYPE] = MapGridGetMetatileLayerTypeAt(facingX - 4 + x, facingY - 2 + y); + sShopData->viewportObjects[r8][OBJ_EVENT_ID] = objEventId; + sShopData->viewportObjects[r8][X_COORD] = x; + sShopData->viewportObjects[r8][Y_COORD] = y; + sShopData->viewportObjects[r8][LAYER_TYPE] = MapGridGetMetatileLayerTypeAt(facingX - 4 + x, facingY - 2 + y); switch (gObjectEvents[objEventId].facingDirection) { case DIR_SOUTH: - gShopDataPtr->viewportObjects[r8][ANIM_NUM] = 0; + sShopData->viewportObjects[r8][ANIM_NUM] = 0; break; case DIR_NORTH: - gShopDataPtr->viewportObjects[r8][ANIM_NUM] = 1; + sShopData->viewportObjects[r8][ANIM_NUM] = 1; break; case DIR_WEST: - gShopDataPtr->viewportObjects[r8][ANIM_NUM] = 2; + sShopData->viewportObjects[r8][ANIM_NUM] = 2; break; case DIR_EAST: default: - gShopDataPtr->viewportObjects[r8][ANIM_NUM] = 3; + sShopData->viewportObjects[r8][ANIM_NUM] = 3; break; } r8++; @@ -841,25 +842,25 @@ static void BuyMenuDrawObjectEvents(void) for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { - if (gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID] == OBJECT_EVENTS_COUNT) + if (sShopData->viewportObjects[i][OBJ_EVENT_ID] == OBJECT_EVENTS_COUNT) continue; - graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID]].graphicsId); + graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[sShopData->viewportObjects[i][OBJ_EVENT_ID]].graphicsId); spriteId = AddPseudoObjectEvent( - gObjectEvents[gShopDataPtr->viewportObjects[i][OBJ_EVENT_ID]].graphicsId, + gObjectEvents[sShopData->viewportObjects[i][OBJ_EVENT_ID]].graphicsId, SpriteCallbackDummy, - (u16)gShopDataPtr->viewportObjects[i][X_COORD] * 16 + 8, - (u16)gShopDataPtr->viewportObjects[i][Y_COORD] * 16 + 48 - graphicsInfo->height / 2, + (u16)sShopData->viewportObjects[i][X_COORD] * 16 + 8, + (u16)sShopData->viewportObjects[i][Y_COORD] * 16 + 48 - graphicsInfo->height / 2, 2); - if (BuyMenuCheckIfObjectEventOverlapsMenuBg(gShopDataPtr->viewportObjects[i]) == TRUE) + if (BuyMenuCheckIfObjectEventOverlapsMenuBg(sShopData->viewportObjects[i]) == TRUE) { gSprites[spriteId].subspriteTableNum = 4; gSprites[spriteId].subspriteMode = SUBSPRITES_ON; } - StartSpriteAnim(&gSprites[spriteId], gShopDataPtr->viewportObjects[i][ANIM_NUM]); + StartSpriteAnim(&gSprites[spriteId], sShopData->viewportObjects[i][ANIM_NUM]); } } @@ -878,8 +879,8 @@ static bool8 BuyMenuCheckIfObjectEventOverlapsMenuBg(s16 *object) static void BuyMenuCopyMenuBgToBg1TilemapBuffer(void) { s16 i; - u16 *dest = gShopDataPtr->tilemapBuffers[1]; - const u16 *src = gShopDataPtr->tilemapBuffers[0]; + u16 *dest = sShopData->tilemapBuffers[1]; + const u16 *src = sShopData->tilemapBuffers[0]; for (i = 0; i < 1024; i++) { @@ -892,7 +893,7 @@ static void BuyMenuCopyMenuBgToBg1TilemapBuffer(void) static bool8 BuyMenuCheckForOverlapWithMenuBg(int x, int y) { - const u16 *metatile = gShopDataPtr->tilemapBuffers[0]; + const u16 *metatile = sShopData->tilemapBuffers[0]; int offset1 = x * 2; int offset2 = y * 64; @@ -914,7 +915,7 @@ static void Task_BuyMenu(u8 taskId) if (!gPaletteFade.active) { s32 itemId = ListMenu_ProcessInput(tListTaskId); - ListMenuGetScrollAndRow(tListTaskId, &gShopDataPtr->scrollOffset, &gShopDataPtr->selectedRow); + ListMenuGetScrollAndRow(tListTaskId, &sShopData->scrollOffset, &sShopData->selectedRow); switch (itemId) { @@ -931,22 +932,22 @@ static void Task_BuyMenu(u8 taskId) BuyMenuRemoveScrollIndicatorArrows(); BuyMenuPrintCursor(tListTaskId, 2); - if (gMartInfo.martType == MART_TYPE_NORMAL) + if (sMartInfo.martType == MART_TYPE_NORMAL) { - gShopDataPtr->totalCost = (ItemId_GetPrice(itemId) >> GetPriceReduction(POKENEWS_SLATEPORT)); + sShopData->totalCost = (ItemId_GetPrice(itemId) >> GetPriceReduction(POKENEWS_SLATEPORT)); } else { - gShopDataPtr->totalCost = gDecorations[itemId].price; + sShopData->totalCost = gDecorations[itemId].price; } - if (!IsEnoughMoney(&gSaveBlock1Ptr->money, gShopDataPtr->totalCost)) + if (!IsEnoughMoney(&gSaveBlock1Ptr->money, sShopData->totalCost)) { BuyMenuDisplayMessage(taskId, gText_YouDontHaveMoney, BuyMenuReturnToItemList); } else { - if (gMartInfo.martType == MART_TYPE_NORMAL) + if (sMartInfo.martType == MART_TYPE_NORMAL) { CopyItemName(itemId, gStringVar1); if (ItemId_GetPocket(itemId) == POCKET_TM_HM) @@ -962,12 +963,13 @@ static void Task_BuyMenu(u8 taskId) else { StringCopy(gStringVar1, gDecorations[itemId].name); - ConvertIntToDecimalStringN(gStringVar2, gShopDataPtr->totalCost, STR_CONV_MODE_LEFT_ALIGN, 6); + ConvertIntToDecimalStringN(gStringVar2, sShopData->totalCost, STR_CONV_MODE_LEFT_ALIGN, 6); - if (gMartInfo.martType == MART_TYPE_DECOR) + if (sMartInfo.martType == MART_TYPE_DECOR) StringExpandPlaceholders(gStringVar4, gText_Var1IsItThatllBeVar2); - else + else // MART_TYPE_DECOR2 StringExpandPlaceholders(gStringVar4, gText_YouWantedVar1ThatllBeVar2); + BuyMenuDisplayMessage(taskId, gStringVar4, BuyMenuConfirmPurchase); } } @@ -992,15 +994,15 @@ static void Task_BuyHowManyDialogueInit(u8 taskId) BuyMenuPrintItemQuantityAndPrice(taskId); ScheduleBgCopyTilemapToVram(0); - maxQuantity = GetMoney(&gSaveBlock1Ptr->money) / gShopDataPtr->totalCost; + maxQuantity = GetMoney(&gSaveBlock1Ptr->money) / sShopData->totalCost; if (maxQuantity > MAX_BAG_ITEM_CAPACITY) { - gShopDataPtr->maxQuantity = MAX_BAG_ITEM_CAPACITY; + sShopData->maxQuantity = MAX_BAG_ITEM_CAPACITY; } else { - gShopDataPtr->maxQuantity = maxQuantity; + sShopData->maxQuantity = maxQuantity; } gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput; @@ -1010,9 +1012,9 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId) { s16 *data = gTasks[taskId].data; - if (AdjustQuantityAccordingToDPadInput(&tItemCount, gShopDataPtr->maxQuantity) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&tItemCount, sShopData->maxQuantity) == TRUE) { - gShopDataPtr->totalCost = (ItemId_GetPrice(tItemId) >> GetPriceReduction(POKENEWS_SLATEPORT)) * tItemCount; + sShopData->totalCost = (ItemId_GetPrice(tItemId) >> GetPriceReduction(POKENEWS_SLATEPORT)) * tItemCount; BuyMenuPrintItemQuantityAndPrice(taskId); } else @@ -1027,7 +1029,7 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId) PutWindowTilemap(1); CopyItemName(tItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, BAG_ITEM_CAPACITY_DIGITS); - ConvertIntToDecimalStringN(gStringVar3, gShopDataPtr->totalCost, STR_CONV_MODE_LEFT_ALIGN, 6); + ConvertIntToDecimalStringN(gStringVar3, sShopData->totalCost, STR_CONV_MODE_LEFT_ALIGN, 6); BuyMenuDisplayMessage(taskId, gText_Var1AndYouWantedVar2, BuyMenuConfirmPurchase); } else if (JOY_NEW(B_BUTTON)) @@ -1053,7 +1055,7 @@ static void BuyMenuTryMakePurchase(u8 taskId) PutWindowTilemap(1); - if (gMartInfo.martType == MART_TYPE_NORMAL) + if (sMartInfo.martType == MART_TYPE_NORMAL) { if (AddBagItem(tItemId, tItemCount) == TRUE) { @@ -1069,14 +1071,10 @@ static void BuyMenuTryMakePurchase(u8 taskId) { if (DecorationAdd(tItemId)) { - if (gMartInfo.martType == MART_TYPE_DECOR) - { + if (sMartInfo.martType == MART_TYPE_DECOR) BuyMenuDisplayMessage(taskId, gText_ThankYouIllSendItHome, BuyMenuSubtractMoney); - } - else - { + else // MART_TYPE_DECOR2 BuyMenuDisplayMessage(taskId, gText_ThanksIllSendItHome, BuyMenuSubtractMoney); - } } else { @@ -1088,11 +1086,11 @@ static void BuyMenuTryMakePurchase(u8 taskId) static void BuyMenuSubtractMoney(u8 taskId) { IncrementGameStat(GAME_STAT_SHOPPED); - RemoveMoney(&gSaveBlock1Ptr->money, gShopDataPtr->totalCost); + RemoveMoney(&gSaveBlock1Ptr->money, sShopData->totalCost); PlaySE(SE_SHOP); PrintMoneyAmountInMoneyBox(0, GetMoney(&gSaveBlock1Ptr->money), 0); - if (gMartInfo.martType == MART_TYPE_NORMAL) + if (sMartInfo.martType == MART_TYPE_NORMAL) { gTasks[taskId].func = Task_ReturnToItemListAfterItemPurchase; } @@ -1147,7 +1145,7 @@ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId) s16 *data = gTasks[taskId].data; FillWindowPixelBuffer(4, PIXEL_FILL(1)); - PrintMoneyAmount(4, 38, 1, gShopDataPtr->totalCost, TEXT_SPEED_FF); + PrintMoneyAmount(4, 38, 1, sShopData->totalCost, TEXT_SPEED_FF); ConvertIntToDecimalStringN(gStringVar1, tItemCount, STR_CONV_MODE_LEADING_ZEROS, BAG_ITEM_CAPACITY_DIGITS); StringExpandPlaceholders(gStringVar4, gText_xVar1); BuyMenuPrint(4, gStringVar4, 0, 1, 0, 0); @@ -1156,7 +1154,7 @@ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId) static void ExitBuyMenu(u8 taskId) { gFieldCallback = MapPostLoadHook_ReturnToShopMenu; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_ExitBuyMenu; } @@ -1173,7 +1171,7 @@ static void Task_ExitBuyMenu(u8 taskId) static void ClearItemPurchases(void) { - gMartPurchaseHistoryId = 0; + sPurchaseHistoryId = 0; memset(gMartPurchaseHistory, 0, sizeof(gMartPurchaseHistory)); } @@ -1183,27 +1181,23 @@ static void RecordItemPurchase(u8 taskId) u16 i; - for (i = 0; i < 3; i++) + for (i = 0; i < ARRAY_COUNT(gMartPurchaseHistory); i++) { if (gMartPurchaseHistory[i].itemId == tItemId && gMartPurchaseHistory[i].quantity != 0) { if (gMartPurchaseHistory[i].quantity + tItemCount > 255) - { gMartPurchaseHistory[i].quantity = 255; - } else - { gMartPurchaseHistory[i].quantity += tItemCount; - } return; } } - if (gMartPurchaseHistoryId < 3) + if (sPurchaseHistoryId < ARRAY_COUNT(gMartPurchaseHistory)) { - gMartPurchaseHistory[gMartPurchaseHistoryId].itemId = tItemId; - gMartPurchaseHistory[gMartPurchaseHistoryId].quantity = tItemCount; - gMartPurchaseHistoryId++; + gMartPurchaseHistory[sPurchaseHistoryId].itemId = tItemId; + gMartPurchaseHistory[sPurchaseHistoryId].quantity = tItemCount; + sPurchaseHistoryId++; } } diff --git a/src/siirtc.c b/src/siirtc.c index 5c153a8413..5f4fc0a23c 100644 --- a/src/siirtc.c +++ b/src/siirtc.c @@ -71,6 +71,7 @@ static bool8 sLocked; static int WriteCommand(u8 value); static int WriteData(u8 value); static u8 ReadData(); + static void EnableGpioPortRead(); static void DisableGpioPortRead(); @@ -98,8 +99,12 @@ u8 SiiRtcProbe(void) errorCode = 0; +#ifdef BUGFIX + if (!(rtc.status & SIIRTCINFO_24HOUR) || (rtc.status & SIIRTCINFO_POWER)) +#else if ((rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == SIIRTCINFO_POWER || (rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == 0) +#endif { // The RTC is in 12-hour mode. Reset it and switch to 24-hour mode. @@ -131,7 +136,7 @@ u8 SiiRtcProbe(void) bool8 SiiRtcReset(void) { - u8 result; + bool8 result; struct SiiRtcInfo rtc; if (sLocked == TRUE) @@ -392,7 +397,11 @@ static int WriteCommand(u8 value) GPIO_PORT_DATA = (temp << 1) | SCK_HI | CS_HI; } - // control reaches end of non-void function + // Nothing uses the returned value from this function, + // so the undefined behavior is harmless in the vanilla game. +#ifdef UBFIX + return 0; +#endif } static int WriteData(u8 value) @@ -409,7 +418,11 @@ static int WriteData(u8 value) GPIO_PORT_DATA = (temp << 1) | SCK_HI | CS_HI; } - // control reaches end of non-void function + // Nothing uses the returned value from this function, + // so the undefined behavior is harmless in the vanilla game. +#ifdef UBFIX + return 0; +#endif } static u8 ReadData() @@ -418,6 +431,10 @@ static u8 ReadData() u8 temp; u8 value; +#ifdef UBFIX + value = 0; +#endif + for (i = 0; i < 8; i++) { GPIO_PORT_DATA = CS_HI; @@ -428,7 +445,7 @@ static u8 ReadData() GPIO_PORT_DATA = SCK_HI | CS_HI; temp = ((GPIO_PORT_DATA & SIO_HI) >> 1); - value = (value >> 1) | (temp << 7); // UB: accessing uninitialized var + value = (value >> 1) | (temp << 7); } return value; @@ -436,10 +453,10 @@ static u8 ReadData() static void EnableGpioPortRead() { - GPIO_PORT_READ_ENABLE = 1; + GPIO_PORT_READ_ENABLE = TRUE; } static void DisableGpioPortRead() { - GPIO_PORT_READ_ENABLE = 0; + GPIO_PORT_READ_ENABLE = FALSE; } diff --git a/src/slot_machine.c b/src/slot_machine.c index 7cfd7d22e1..157f3625e4 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -682,7 +682,7 @@ static const struct WindowTemplate sWindowTemplate_InfoBox = .baseBlock = 1 }; -static const u8 sColors_ReeltimeHelp[] = {TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; +static const u8 sColors_ReeltimeHelp[] = {TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}; static bool8 (*const sSlotActions[])(struct Task *task) = { @@ -876,7 +876,7 @@ static void Task_FadeToSlotMachine(u8 taskId) switch (gTasks[taskId].tState) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].tState++; break; case 1: @@ -1149,7 +1149,7 @@ static void Task_SlotMachine(u8 taskId) // SLOT_ACTION_UNFADE static bool8 SlotAction_UnfadeScreen(struct Task *task) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB(0, 0, 0)); LoadPikaPowerMeter(sSlotMachine->pikaPower); sSlotMachine->state++; // SLOT_ACTION_WAIT_FADE return FALSE; @@ -1592,8 +1592,8 @@ static bool8 SlotAction_WaitMsg_NoMoreCoins(struct Task *task) static bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); - AlertTVOfNewCoinTotal(GetCoins()); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + TryPutFindThatGamerOnAir(GetCoins()); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0)); sSlotMachine->state++; // SLOT_ACTION_FREE return FALSE; } @@ -3409,7 +3409,7 @@ static void OpenInfoBox(u8 digDisplayId) static bool8 IsInfoBoxClosed(void) { - if (FindTaskIdByFunc(RunInfoBoxActions) == 0xFF) + if (FindTaskIdByFunc(RunInfoBoxActions) == TASK_NONE) return TRUE; else return FALSE; @@ -3422,7 +3422,7 @@ static void RunInfoBoxActions(u8 taskId) static void InfoBox_FadeIn(struct Task *task) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0)); task->tState++; } @@ -3446,7 +3446,7 @@ static void InfoBox_AddText(struct Task *task) { AddTextPrinterParameterized3(1, 1, 2, 5, sColors_ReeltimeHelp, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB(0, 0, 0)); task->tState++; } @@ -3458,7 +3458,7 @@ static void InfoBox_AwaitPlayerInput(struct Task *task) ClearWindowTilemap(1); CopyWindowToVram(1, 1); RemoveWindow(1); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0)); task->tState++; } } @@ -3479,7 +3479,7 @@ static void InfoBox_CreateDigitalDisplay(struct Task *task) static void InfoBox_LoadPikaPowerMeter(struct Task *task) { LoadPikaPowerMeter(sSlotMachine->pikaPower); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB(0, 0, 0)); task->tState++; } @@ -3605,7 +3605,7 @@ static void SpriteCB_ReelSymbol(struct Sprite *sprite) { sprite->data[2] = sSlotMachine->reelPixelOffsets[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; - sprite->pos1.y = sSlotMachine->reelPixelOffsetsWhileStopping[sprite->data[0]] + 28 + sprite->data[2]; + sprite->y = sSlotMachine->reelPixelOffsetsWhileStopping[sprite->data[0]] + 28 + sprite->data[2]; sprite->sheetTileStart = GetSpriteTileStartByTag(GetTagAtRest(sprite->data[0], sprite->data[2] / 24)); SetSpriteSheetFrameTileNum(sprite); } @@ -3692,12 +3692,12 @@ static void DestroyReelTimePikachuSprite(void) static void SpriteCB_ReelTimePikachu(struct Sprite *sprite) { - sprite->pos2.y = sprite->pos2.x = 0; + sprite->y2 = sprite->x2 = 0; if (sprite->animNum == 4) { - sprite->pos2.y = sprite->pos2.x = 8; + sprite->y2 = sprite->x2 = 8; if ((sprite->animCmdIndex != 0 && sprite->animDelayCounter != 0) || (sprite->animCmdIndex == 0 && sprite->animDelayCounter == 0)) - sprite->pos2.y = -8; + sprite->y2 = -8; } } @@ -3776,7 +3776,7 @@ static void SpriteCB_ReelTimeNumbers(struct Sprite *sprite) { s16 r0 = (u16)(sSlotMachine->reeltimePixelOffset + sprite->data[7]); r0 %= 40; - sprite->pos1.y = r0 + 59; + sprite->y = r0 + 59; StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); } @@ -3872,15 +3872,15 @@ static void SpriteCB_ReelTimeBolt(struct Sprite *sprite) if (sprite->sDelayTimer != 0) { sprite->sDelayTimer--; - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; sprite->invisible = TRUE; } else { sprite->invisible = FALSE; - sprite->pos2.x += sprite->sXDir; - sprite->pos2.y += sprite->sYDir; + sprite->x2 += sprite->sXDir; + sprite->y2 += sprite->sYDir; if (++sprite->sCounter >= 8) { sprite->sDelayTimer = sprite->sDelay; @@ -3971,7 +3971,7 @@ static void CreateReelTimeExplosionSprite(void) static void SpriteCB_ReelTimeExplosion(struct Sprite *sprite) { - sprite->pos2.y = gSpriteCoordOffsetY; + sprite->y2 = gSpriteCoordOffsetY; } static void DestroyReelTimeExplosionSprite(void) @@ -3999,8 +3999,8 @@ static void SpriteCB_ReelTimeDuck(struct Sprite *sprite) { sprite->data[0] -= 2; sprite->data[0] &= 0xff; - sprite->pos2.x = Cos(sprite->data[0], 20); - sprite->pos2.y = Sin(sprite->data[0], 6); + sprite->x2 = Cos(sprite->data[0], 20); + sprite->y2 = Sin(sprite->data[0], 6); sprite->subpriority = 0; if (sprite->data[0] >= 0x80) { @@ -4061,7 +4061,7 @@ static void SpriteCB_ReelTimeSmoke(struct Sprite *sprite) } sprite->sMoveY &= 0xff; sprite->sMoveY += 16; - sprite->pos2.y -= (sprite->sMoveY >> 8); + sprite->y2 -= (sprite->sMoveY >> 8); } static u8 IsReelTimeSmokeAnimFinished(void) @@ -4147,12 +4147,12 @@ static void SpriteCB_DigitalDisplay_Smoke(struct Sprite *sprite) sprite->subspriteTableNum ^= 1; sprite->sCounter = 0; } - sprite->pos2.x = 0; - sprite->pos2.y = 0; + sprite->x2 = 0; + sprite->y2 = 0; if (sprite->subspriteTableNum != 0) { - sprite->pos2.x = targetX[sprite->sSpriteId]; - sprite->pos2.y = targetY[sprite->sSpriteId]; + sprite->x2 = targetX[sprite->sSpriteId]; + sprite->y2 = targetY[sprite->sSpriteId]; } } @@ -4181,10 +4181,10 @@ static void SpriteCB_DigitalDisplay_Reel(struct Sprite *sprite) switch (sprite->sState) { case 0: - sprite->pos1.x += 4; - if (sprite->pos1.x >= 0xd0) + sprite->x += 4; + if (sprite->x >= 0xd0) { - sprite->pos1.x = 0xd0; + sprite->x = 0xd0; sprite->sState++; } break; @@ -4193,8 +4193,8 @@ static void SpriteCB_DigitalDisplay_Reel(struct Sprite *sprite) sprite->sState++; break; case 2: - sprite->pos1.x += 4; - if (sprite->pos1.x >= 0x110) + sprite->x += 4; + if (sprite->x >= 0x110) sprite->sState++; break; case 3: @@ -4209,10 +4209,10 @@ static void SpriteCB_DigitalDisplay_Time(struct Sprite *sprite) switch (sprite->sState) { case 0: - sprite->pos1.x -= 4; - if (sprite->pos1.x <= 0xd0) + sprite->x -= 4; + if (sprite->x <= 0xd0) { - sprite->pos1.x = 0xd0; + sprite->x = 0xd0; sprite->sState++; } break; @@ -4221,8 +4221,8 @@ static void SpriteCB_DigitalDisplay_Time(struct Sprite *sprite) sprite->sState++; break; case 2: - sprite->pos1.x -= 4; - if (sprite->pos1.x <= 0x90) + sprite->x -= 4; + if (sprite->x <= 0x90) sprite->sState++; break; case 3: @@ -4247,10 +4247,10 @@ static void SpriteCB_DigitalDisplay_ReelTimeNumber(struct Sprite *sprite) } break; case 2: - sprite->pos1.x += 4; - if (sprite->pos1.x >= 0xd0) + sprite->x += 4; + if (sprite->x >= 0xd0) { - sprite->pos1.x = 0xd0; + sprite->x = 0xd0; sprite->sState++; } break; @@ -4259,8 +4259,8 @@ static void SpriteCB_DigitalDisplay_ReelTimeNumber(struct Sprite *sprite) sprite->sState++; break; case 4: - sprite->pos1.x += 4; - if (sprite->pos1.x >= 0xf8) + sprite->x += 4; + if (sprite->x >= 0xf8) sprite->sState++; break; case 5: @@ -4278,10 +4278,10 @@ static void SpriteCB_DigitalDisplay_PokeballRocking(struct Sprite *sprite) sprite->sState++; // fallthrough case 1: - sprite->pos1.y += 8; - if (sprite->pos1.y >= 0x70) + sprite->y += 8; + if (sprite->y >= 0x70) { - sprite->pos1.y = 0x70; + sprite->y = 0x70; sprite->sCounter = 16; sprite->sState++; } @@ -4289,7 +4289,7 @@ static void SpriteCB_DigitalDisplay_PokeballRocking(struct Sprite *sprite) case 2: if (sprite->data[2] == 0) { - sprite->pos1.y -= sprite->sCounter; + sprite->y -= sprite->sCounter; sprite->sCounter = -sprite->sCounter; if (++sprite->data[3] >= 2) { @@ -4318,10 +4318,10 @@ static void SpriteCB_DigitalDisplay_Stop(struct Sprite *sprite) sprite->sState++; break; case 1: - sprite->pos1.y += 2; - if (sprite->pos1.y >= 0x30) + sprite->y += 2; + if (sprite->y >= 0x30) { - sprite->pos1.y = 0x30; + sprite->y = 0x30; sprite->sState++; sprite->sWaitForAnim = FALSE; } @@ -4397,8 +4397,8 @@ static void SpriteCB_DigitalDisplay_RegBonus(struct Sprite *sprite) switch (sprite->sState) { case 0: - sprite->pos2.x = letterXOffset[sprite->sSpriteId]; - sprite->pos2.y = letterYOffset[sprite->sSpriteId]; + sprite->x2 = letterXOffset[sprite->sSpriteId]; + sprite->y2 = letterYOffset[sprite->sSpriteId]; sprite->sCounter = letterDelay[sprite->sSpriteId]; sprite->sState++; // fallthrough @@ -4407,17 +4407,17 @@ static void SpriteCB_DigitalDisplay_RegBonus(struct Sprite *sprite) sprite->sState++; break; case 2: - if (sprite->pos2.x > 0) - sprite->pos2.x -= 4; - else if (sprite->pos2.x < 0) - sprite->pos2.x += 4; + if (sprite->x2 > 0) + sprite->x2 -= 4; + else if (sprite->x2 < 0) + sprite->x2 += 4; - if (sprite->pos2.y > 0) - sprite->pos2.y -= 4; - else if (sprite->pos2.y < 0) - sprite->pos2.y += 4; + if (sprite->y2 > 0) + sprite->y2 -= 4; + else if (sprite->y2 < 0) + sprite->y2 += 4; - if (sprite->pos2.x == 0 && sprite->pos2.y == 0) + if (sprite->x2 == 0 && sprite->y2 == 0) sprite->sState++; break; } @@ -4432,8 +4432,8 @@ static void SpriteCB_DigitalDisplay_BigBonus(struct Sprite *sprite) sprite->sState++; sprite->sCounter = 12; } - sprite->pos2.x = Cos(sp0[sprite->sSpriteId], sprite->sCounter); - sprite->pos2.y = Sin(sp0[sprite->sSpriteId], sprite->sCounter); + sprite->x2 = Cos(sp0[sprite->sSpriteId], sprite->sCounter); + sprite->y2 = Sin(sp0[sprite->sSpriteId], sprite->sCounter); if (sprite->sCounter != 0) sprite->sCounter--; } diff --git a/src/sound.c b/src/sound.c index ee1753bb33..42f507b7ca 100644 --- a/src/sound.c +++ b/src/sound.c @@ -41,24 +41,24 @@ static void Task_DuckBGMForPokemonCry(u8 taskId); static void RestoreBGMVolumeAfterPokemonCry(void); static const struct Fanfare sFanfares[] = { - { MUS_LEVEL_UP, 80 }, - { MUS_OBTAIN_ITEM, 160 }, - { MUS_EVOLVED, 220 }, - { MUS_OBTAIN_TMHM, 220 }, - { MUS_HEAL, 160 }, - { MUS_OBTAIN_BADGE, 340 }, - { MUS_MOVE_DELETED, 180 }, - { MUS_OBTAIN_BERRY, 120 }, - { MUS_AWAKEN_LEGEND, 710 }, - { MUS_SLOTS_JACKPOT, 250 }, - { MUS_SLOTS_WIN, 150 }, - { MUS_TOO_BAD, 160 }, - { MUS_RG_POKE_FLUTE, 450 }, - { MUS_RG_OBTAIN_KEY_ITEM, 170 }, - { MUS_RG_DEX_RATING, 196 }, - { MUS_OBTAIN_B_POINTS, 313 }, - { MUS_OBTAIN_SYMBOL, 318 }, - { MUS_REGISTER_MATCH_CALL, 135 }, + [FANFARE_LEVEL_UP] = { MUS_LEVEL_UP, 80 }, + [FANFARE_OBTAIN_ITEM] = { MUS_OBTAIN_ITEM, 160 }, + [FANFARE_EVOLVED] = { MUS_EVOLVED, 220 }, + [FANFARE_OBTAIN_TMHM] = { MUS_OBTAIN_TMHM, 220 }, + [FANFARE_HEAL] = { MUS_HEAL, 160 }, + [FANFARE_OBTAIN_BADGE] = { MUS_OBTAIN_BADGE, 340 }, + [FANFARE_MOVE_DELETED] = { MUS_MOVE_DELETED, 180 }, + [FANFARE_OBTAIN_BERRY] = { MUS_OBTAIN_BERRY, 120 }, + [FANFARE_AWAKEN_LEGEND] = { MUS_AWAKEN_LEGEND, 710 }, + [FANFARE_SLOTS_JACKPOT] = { MUS_SLOTS_JACKPOT, 250 }, + [FANFARE_SLOTS_WIN] = { MUS_SLOTS_WIN, 150 }, + [FANFARE_TOO_BAD] = { MUS_TOO_BAD, 160 }, + [FANFARE_RG_POKE_FLUTE] = { MUS_RG_POKE_FLUTE, 450 }, + [FANFARE_RG_OBTAIN_KEY_ITEM] = { MUS_RG_OBTAIN_KEY_ITEM, 170 }, + [FANFARE_RG_DEX_RATING] = { MUS_RG_DEX_RATING, 196 }, + [FANFARE_OBTAIN_B_POINTS] = { MUS_OBTAIN_B_POINTS, 313 }, + [FANFARE_OBTAIN_SYMBOL] = { MUS_OBTAIN_SYMBOL, 318 }, + [FANFARE_REGISTER_MATCH_CALL] = { MUS_REGISTER_MATCH_CALL, 135 }, }; #define CRY_VOLUME 120 // was 125 in R/S @@ -212,6 +212,7 @@ bool8 WaitFanfare(bool8 stop) } } +// Unused void StopFanfareByFanfareNum(u8 fanfareNum) { m4aSongNumStop(sFanfares[fanfareNum].songNum); @@ -220,7 +221,7 @@ void StopFanfareByFanfareNum(u8 fanfareNum) void PlayFanfare(u16 songNum) { s32 i; - for (i = 0; (u32)i < 18; i++) + for (i = 0; (u32)i < ARRAY_COUNT(sFanfares); i++) { if (sFanfares[i].songNum == songNum) { @@ -230,6 +231,8 @@ void PlayFanfare(u16 songNum) } } + // songNum is not in sFanfares + // Play first fanfare in table instead PlayFanfareByFanfareNum(0); CreateFanfareTask(); } diff --git a/src/start_menu.c b/src/start_menu.c index 35eb53475b..3fcb5aa7bf 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -138,7 +138,7 @@ static bool8 FieldCB_ReturnToFieldStartMenu(void); static const struct WindowTemplate sSafariBallsWindowTemplate = {0, 1, 1, 9, 4, 0xF, 8}; -static const u8* const sPyramindFloorNames[] = +static const u8* const sPyramidFloorNames[] = { gText_Floor1, gText_Floor2, @@ -170,7 +170,7 @@ static const struct MenuAction sStartMenuItems[] = {gText_MenuBag, {.u8_void = StartMenuBattlePyramidBagCallback}} }; -static const struct BgTemplate sUnknown_085105A8[] = +static const struct BgTemplate sBgTemplates_LinkBattleSave[] = { { .bg = 0, @@ -183,13 +183,29 @@ static const struct BgTemplate sUnknown_085105A8[] = } }; -static const struct WindowTemplate sUnknown_085105AC[] = +static const struct WindowTemplate sWindowTemplates_LinkBattleSave[] = { - {0, 2, 0xF, 0x1A, 4, 0xF, 0x194}, + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x194 + }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate sSaveInfoWindowTemplate = {0, 1, 1, 0xE, 0xA, 0xF, 8}; +static const struct WindowTemplate sSaveInfoWindowTemplate = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 14, + .height = 10, + .paletteNum = 15, + .baseBlock = 8 +}; // Local functions static void BuildStartMenuActions(void); @@ -211,13 +227,13 @@ static void CreateStartMenuTask(TaskFunc followupFunc); static void InitSave(void); static u8 RunSaveCallback(void); static void ShowSaveMessage(const u8 *message, u8 (*saveCallback)(void)); -static void sub_80A0014(void); +static void HideSaveMessageWindow(void); static void HideSaveInfoWindow(void); static void SaveStartTimer(void); static bool8 SaveSuccesTimer(void); static bool8 SaveErrorTimer(void); static void InitBattlePyramidRetire(void); -static void sub_80A03D8(void); +static void VBlankCB_LinkBattleSave(void); static bool32 InitSaveWindowAfterLinkBattle(u8 *par1); static void CB2_SaveAfterLinkBattle(void); static void ShowSaveInfoWindow(void); @@ -383,7 +399,7 @@ static void ShowPyramidFloorWindow(void) PutWindowTilemap(sBattlePyramidFloorWindowId); DrawStdWindowFrame(sBattlePyramidFloorWindowId, FALSE); - StringCopy(gStringVar1, sPyramindFloorNames[gSaveBlock2Ptr->frontier.curChallengeBattleNum]); + StringCopy(gStringVar1, sPyramidFloorNames[gSaveBlock2Ptr->frontier.curChallengeBattleNum]); StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor); AddTextPrinterParameterized(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sBattlePyramidFloorWindowId, 2); @@ -541,7 +557,7 @@ void ShowStartMenu(void) if (!IsUpdateLinkStateCBActive()) { FreezeObjectEvents(); - sub_808B864(); + PlayerFreeze(); sub_808BCF4(); } CreateStartMenuTask(Task_ShowStartMenu); @@ -834,7 +850,7 @@ static bool8 BattlePyramidRetireCallback(void) static void InitSave(void) { - save_serialize_map(); + SaveMapView(); sSaveDialogCallback = SaveConfirmSaveCallback; sSavingComplete = FALSE; } @@ -887,7 +903,7 @@ static void SaveGameTask(u8 taskId) EnableBothScriptContexts(); } -static void sub_80A0014(void) +static void HideSaveMessageWindow(void) { ClearDialogWindowAndFrame(0, TRUE); } @@ -982,7 +998,7 @@ static u8 SaveConfirmInputCallback(void) case -1: // B Button case 1: // No HideSaveInfoWindow(); - sub_80A0014(); + HideSaveMessageWindow(); return SAVE_CANCELED; } @@ -1028,7 +1044,7 @@ static u8 SaveOverwriteInputCallback(void) case -1: // B Button case 1: // No HideSaveInfoWindow(); - sub_80A0014(); + HideSaveMessageWindow(); return SAVE_CANCELED; } @@ -1146,14 +1162,14 @@ static u8 BattlePyramidRetireInputCallback(void) return SAVE_CANCELED; case -1: // B Button case 1: // No - sub_80A0014(); + HideSaveMessageWindow(); return SAVE_SUCCESS; } return SAVE_IN_PROGRESS; } -static void sub_80A03D8(void) +static void VBlankCB_LinkBattleSave(void) { TransferPlttBuffer(); } @@ -1167,7 +1183,7 @@ static bool32 InitSaveWindowAfterLinkBattle(u8 *state) SetVBlankCallback(NULL); ScanlineEffect_Stop(); DmaClear16(3, PLTT, PLTT_SIZE); - DmaFillLarge16(3, 0, (void *)(VRAM + 0x0), 0x18000, 0x1000); + DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); break; case 1: ResetSpriteData(); @@ -1177,15 +1193,15 @@ static bool32 InitSaveWindowAfterLinkBattle(u8 *state) break; case 2: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sUnknown_085105A8, ARRAY_COUNT(sUnknown_085105A8)); - InitWindows(sUnknown_085105AC); + InitBgsFromTemplates(0, sBgTemplates_LinkBattleSave, ARRAY_COUNT(sBgTemplates_LinkBattleSave)); + InitWindows(sWindowTemplates_LinkBattleSave); LoadUserWindowBorderGfx_(0, 8, 224); Menu_LoadStdPalAt(240); break; case 3: ShowBg(0); BlendPalettes(-1, 16, 0); - SetVBlankCallback(sub_80A03D8); + SetVBlankCallback(VBlankCB_LinkBattleSave); EnableInterrupts(1); break; case 4: @@ -1226,13 +1242,13 @@ static void Task_SaveAfterLinkBattle(u8 taskId) gText_SavingDontTurnOffPower, TEXT_SPEED_FF, NULL, - TEXT_COLOR_DARK_GREY, + TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, - TEXT_COLOR_LIGHT_GREY); + TEXT_COLOR_LIGHT_GRAY); DrawTextBorderOuter(0, 8, 14); PutWindowTilemap(0); CopyWindowToVram(0, 3); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); if (gWirelessCommType != 0 && InUnionRoom()) { @@ -1265,7 +1281,7 @@ static void Task_SaveAfterLinkBattle(u8 taskId) } break; case 3: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); *state = 4; break; case 4: diff --git a/src/starter_choose.c b/src/starter_choose.c index 771db961e9..b327816e6a 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -153,11 +153,11 @@ static const struct BgTemplate sBgTemplates[3] = }, }; -static const u8 sTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY}; +static const u8 sTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY}; static const struct OamData sOam_Hand = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -174,7 +174,7 @@ static const struct OamData sOam_Hand = static const struct OamData sOam_Pokeball = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -191,7 +191,7 @@ static const struct OamData sOam_Pokeball = static const struct OamData sOam_StarterCircle = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -378,7 +378,6 @@ static void VblankCB_StarterChoose(void) void CB2_ChooseStarter(void) { - u16 savedIme; u8 taskId; u8 spriteId; @@ -426,7 +425,7 @@ void CB2_ChooseStarter(void) LoadCompressedSpriteSheet(&sSpriteSheet_PokeballSelect[0]); LoadCompressedSpriteSheet(&sSpriteSheet_StarterCircle[0]); LoadSpritePalettes(sSpritePalettes_StarterChoose); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); EnableInterrupts(DISPSTAT_VBLANK); SetVBlankCallback(VblankCB_StarterChoose); @@ -465,7 +464,7 @@ void CB2_ChooseStarter(void) gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].sBallId = 2; - sStarterLabelWindowId = 0xFF; + sStarterLabelWindowId = WINDOW_NONE; } static void CB2_StarterChoose(void) @@ -524,8 +523,8 @@ static void Task_HandleStarterChooseInput(u8 taskId) static void Task_WaitForStarterSprite(u8 taskId) { if (gSprites[gTasks[taskId].tCircleSpriteId].affineAnimEnded && - gSprites[gTasks[taskId].tCircleSpriteId].pos1.x == STARTER_PKMN_POS_X && - gSprites[gTasks[taskId].tCircleSpriteId].pos1.y == STARTER_PKMN_POS_Y) + gSprites[gTasks[taskId].tCircleSpriteId].x == STARTER_PKMN_POS_X && + gSprites[gTasks[taskId].tCircleSpriteId].y == STARTER_PKMN_POS_Y) { gTasks[taskId].func = Task_AskConfirmStarter; } @@ -614,7 +613,7 @@ static void ClearStarterLabel(void) FillWindowPixelBuffer(sStarterLabelWindowId, PIXEL_FILL(0)); ClearWindowTilemap(sStarterLabelWindowId); RemoveWindow(sStarterLabelWindowId); - sStarterLabelWindowId = 0xFF; + sStarterLabelWindowId = WINDOW_NONE; SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0V, 0); ScheduleBgCopyTilemapToVram(0); @@ -644,9 +643,9 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) static void SpriteCB_SelectionHand(struct Sprite *sprite) { // Float up and down above selected pokeball - sprite->pos1.x = sCursorCoords[gTasks[sprite->data[0]].tStarterSelection][0]; - sprite->pos1.y = sCursorCoords[gTasks[sprite->data[0]].tStarterSelection][1]; - sprite->pos2.y = Sin(sprite->data[1], 8); + sprite->x = sCursorCoords[gTasks[sprite->data[0]].tStarterSelection][0]; + sprite->y = sCursorCoords[gTasks[sprite->data[0]].tStarterSelection][1]; + sprite->y2 = Sin(sprite->data[1], 8); sprite->data[1] = (u8)(sprite->data[1]) + 4; } @@ -662,12 +661,12 @@ static void SpriteCB_Pokeball(struct Sprite *sprite) static void SpriteCB_StarterPokemon(struct Sprite *sprite) { // Move sprite to upper center of screen - if (sprite->pos1.x > STARTER_PKMN_POS_X) - sprite->pos1.x -= 4; - if (sprite->pos1.x < STARTER_PKMN_POS_X) - sprite->pos1.x += 4; - if (sprite->pos1.y > STARTER_PKMN_POS_Y) - sprite->pos1.y -= 2; - if (sprite->pos1.y < STARTER_PKMN_POS_Y) - sprite->pos1.y += 2; + if (sprite->x > STARTER_PKMN_POS_X) + sprite->x -= 4; + if (sprite->x < STARTER_PKMN_POS_X) + sprite->x += 4; + if (sprite->y > STARTER_PKMN_POS_Y) + sprite->y -= 2; + if (sprite->y < STARTER_PKMN_POS_Y) + sprite->y += 2; } diff --git a/src/strings.c b/src/strings.c index fe5051d711..e1a6d2efbc 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1,5 +1,7 @@ #include "global.h" #include "strings.h" +#include "battle_pyramid_bag.h" +#include "item_menu.h" ALIGNED(4) const u8 gText_ExpandedPlaceholder_Empty[] = _(""); @@ -252,28 +254,28 @@ const u8 gText_ThePokemonList[] = _("the POKéMON LIST"); const u8 gText_TheShop[] = _("the shop"); const u8 gText_ThePC[] = _("the PC"); -const u8 *const gReturnToXStringsTable[] = +const u8 *const gBagMenu_ReturnToStrings[] = { - gText_TheField, - gText_TheBattle, - gText_ThePokemonList, - gText_TheShop, - gText_TheField, - gText_TheField, - gText_ThePC, - gText_TheField, - gText_TheField, - gText_TheField, - gText_TheBattle, - gText_ThePC + [ITEMMENULOCATION_FIELD] = gText_TheField, + [ITEMMENULOCATION_BATTLE] = gText_TheBattle, + [ITEMMENULOCATION_PARTY] = gText_ThePokemonList, + [ITEMMENULOCATION_SHOP] = gText_TheShop, + [ITEMMENULOCATION_BERRY_TREE] = gText_TheField, + [ITEMMENULOCATION_BERRY_BLENDER_CRUSH] = gText_TheField, + [ITEMMENULOCATION_ITEMPC] = gText_ThePC, + [ITEMMENULOCATION_FAVOR_LADY] = gText_TheField, + [ITEMMENULOCATION_QUIZ_LADY] = gText_TheField, + [ITEMMENULOCATION_APPRENTICE] = gText_TheField, + [ITEMMENULOCATION_WALLY] = gText_TheBattle, + [ITEMMENULOCATION_PCBOX] = gText_ThePC }; -const u8 *const gReturnToXStringsTable2[] = +const u8 *const gPyramidBagMenu_ReturnToStrings[] = { - gText_TheField, - gText_TheBattle, - gText_ThePokemonList, - gText_TheField + [PYRAMIDBAG_LOC_FIELD] = gText_TheField, + [PYRAMIDBAG_LOC_BATTLE] = gText_TheBattle, + [PYRAMIDBAG_LOC_PARTY] = gText_ThePokemonList, + [PYRAMIDBAG_LOC_CHOOSE_TOSS] = gText_TheField }; const u8 gText_ReturnToVar1[] = _("Return to\n{STR_VAR_1}."); @@ -285,15 +287,15 @@ const u8 gText_KeyItemsPocket[] = _("KEY ITEMS"); const u8 *const gPocketNamesStringsTable[] = { - gText_ItemsPocket, - gText_PokeBallsPocket, - gText_TMHMPocket, - gText_BerriesPocket, - gText_KeyItemsPocket + [ITEMS_POCKET] = gText_ItemsPocket, + [BALLS_POCKET] = gText_PokeBallsPocket, + [TMHM_POCKET] = gText_TMHMPocket, + [BERRIES_POCKET] = gText_BerriesPocket, + [KEYITEMS_POCKET] = gText_KeyItemsPocket }; -const u8 gText_NumberVar1Clear7Var2[] = _("{NO}{STR_VAR_1}{CLEAR 0x07}{STR_VAR_2}"); -const u8 gText_ClearTo11Var1Clear5Var2[] = _("{CLEAR_TO 0x11}{STR_VAR_1}{CLEAR 0x05}{STR_VAR_2}"); +const u8 gText_NumberItem_TMBerry[] = _("{NO}{STR_VAR_1}{CLEAR 0x07}{STR_VAR_2}"); +const u8 gText_NumberItem_HM[] = _("{CLEAR_TO 0x11}{STR_VAR_1}{CLEAR 0x05}{STR_VAR_2}"); const u8 gText_SizeSlash[] = _("SIZE /"); const u8 gText_FirmSlash[] = _("FIRM /"); const u8 gText_Var1DotVar2[] = _("{STR_VAR_1}.{STR_VAR_2}”"); @@ -981,8 +983,8 @@ const u8 gText_TrainerCloseBy[] = _("That TRAINER is close by.\nTalk to the TRAI const u8 gText_InParty[] = _("IN PARTY"); const u8 gText_Number2[] = _("No. "); const u8 gText_Ribbons[] = _("RIBBONS"); // Unused -const u8 gText_PokemonMaleLv[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}"); // Unused -const u8 gText_PokemonFemaleLv[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}"); // Unused +const u8 gText_PokemonMaleLv[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GRAY WHITE LIGHT_GRAY}/{LV}{DYNAMIC 1}"); // Unused +const u8 gText_PokemonFemaleLv[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GRAY WHITE LIGHT_GRAY}/{LV}{DYNAMIC 1}"); // Unused const u8 gText_PokemonNoGenderLv[] = _("{DYNAMIC 0}/{LV}{DYNAMIC 1}"); // Unused const u8 gText_Unknown[] = _("UNKNOWN"); const u8 gText_Call[] = _("CALL"); @@ -990,8 +992,8 @@ const u8 gText_Check[] = _("CHECK"); const u8 gText_Cancel6[] = _("CANCEL"); const u8 gText_NumberF700[] = _("No. {DYNAMIC 0}"); const u8 gText_RibbonsF700[] = _("RIBBONS {DYNAMIC 0}"); -const u8 gText_PokemonMaleLv2[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused -const u8 gText_PokemonFemaleLv2[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused +const u8 gText_PokemonMaleLv2[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GRAY WHITE LIGHT_GRAY}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused +const u8 gText_PokemonFemaleLv2[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GRAY WHITE LIGHT_GRAY}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused const u8 gText_PokemonNoGenderLv2[] = _("{DYNAMIC 0}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused const u8 gText_CombineFourWordsOrPhrases[] = _("Combine four words or phrases"); const u8 gText_AndMakeYourProfile[] = _("and make your profile."); @@ -1200,18 +1202,18 @@ const u8 gText_Var1sTrainerCard[] = _("{STR_VAR_1}'s TRAINER CARD"); const u8 gText_HallOfFameDebut[] = _("HALL OF FAME DEBUT "); const u8 gText_LinkBattles[] = _("LINK BATTLES"); const u8 gText_LinkCableBattles[] = _("LINK CABLE BATTLES"); -const u8 gText_WinsLosses[] = _("W:{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY} L:{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_2}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}"); +const u8 gText_WinsLosses[] = _("W:{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_1}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY} L:{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_2}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}"); const u8 gText_PokemonTrades[] = _("POKéMON TRADES"); const u8 gText_UnionTradesAndBattles[] = _("UNION TRADES & BATTLES"); const u8 gText_BerryCrush[] = _("BERRY CRUSH"); const u8 gText_WaitingTrainerFinishReading[] = _("Waiting for the other TRAINER to\nfinish reading your TRAINER CARD."); const u8 gText_PokeblocksWithFriends[] = _("{POKEBLOCK}S W/FRIENDS"); -const u8 gText_NumPokeblocks[] = _("{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}"); +const u8 gText_NumPokeblocks[] = _("{STR_VAR_1}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}"); const u8 gText_WonContestsWFriends[] = _("WON CONTESTS W/FRIENDS"); const u8 gText_BattlePtsWon[] = _("BATTLE POINTS WON"); -const u8 gText_NumBP[] = _("{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}BP"); +const u8 gText_NumBP[] = _("{STR_VAR_1}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BP"); const u8 gText_BattleTower[] = _("BATTLE TOWER"); -const u8 gText_WinsStraight[] = _("W/{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_1}{COLOR DARK_GREY}{SHADOW LIGHT_GREY} STRAIGHT/{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_2}"); +const u8 gText_WinsStraight[] = _("W/{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_1}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY} STRAIGHT/{COLOR RED}{SHADOW LIGHT_RED}{STR_VAR_2}"); const u8 gText_BattleTower2[] = _("BATTLE TOWER"); const u8 gText_BattleDome[] = _("BATTLE DOME"); const u8 gText_BattlePalace[] = _("BATTLE PALACE"); @@ -1228,7 +1230,7 @@ ALIGNED(4) const u8 gText_Facility[] = _("{STR_VAR_1}"); const u8 gText_Give[] = _("Give"); const u8 gText_NoNeed[] = _("No need"); -const u8 gText_ColorLightShadowDarkGrey[] = _("{COLOR LIGHT_GREY}{SHADOW DARK_GREY}"); +const u8 gText_ColorLightShadowDarkGray[] = _("{COLOR LIGHT_GRAY}{SHADOW DARK_GRAY}"); const u8 gText_ColorBlue[] = _("{COLOR BLUE}"); const u8 gText_ColorTransparent[] = _("{HIGHLIGHT TRANSPARENT}{COLOR TRANSPARENT}"); const u8 gText_CDot[] = _("C."); @@ -1238,9 +1240,9 @@ const u8 gText_PreliminaryResults[] = _("The preliminary results!"); const u8 gText_Round2Results[] = _("Round 2 results!"); const u8 gText_ContestantsMonWon[] = _("{STR_VAR_1}'s {STR_VAR_2} won!"); const u8 gText_CommunicationStandby[] = _("Communication standby…"); -const u8 gText_ColorDarkGrey[] = _("{COLOR DARK_GREY}"); +const u8 gText_ColorDarkGray[] = _("{COLOR DARK_GRAY}"); const u8 gText_ColorDynamic6WhiteDynamic5[] = _("{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR6 WHITE DYNAMIC_COLOR5}"); // Unused -const u8 gText_HighlightDarkGrey[] = _("{HIGHLIGHT DARK_GREY}"); +const u8 gText_HighlightDarkGray[] = _("{HIGHLIGHT DARK_GRAY}"); const u8 gText_EmptySpace2[] = _(" "); // Unused const u8 gText_DynColor2Male[] = _("{COLOR DYNAMIC_COLOR2}♂"); const u8 gText_DynColor1Female[] = _("{COLOR DYNAMIC_COLOR1}♀"); @@ -1292,7 +1294,7 @@ const u8 gText_MatchCallMay_Intro1[] = _("My POKéMON and I help"); const u8 gText_MatchCallMay_Intro2[] = _("my father's research."); const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!"); const u8 gText_NicknameHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?"); -ALIGNED(4) const u8 gText_ReadyToBerryCrush[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p"); +ALIGNED(4) const u8 gText_ReadyPickBerry[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p"); ALIGNED(4) const u8 gText_WaitForAllChooseBerry[] = _("Please wait while each member\nchooses a BERRY."); ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_LEVEL_UP}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p"); ALIGNED(4) const u8 gText_RecordingGameResults[] = _("Recording your game results in the\nsave file.\lPlease wait."); @@ -1535,7 +1537,7 @@ const u8 gJPText_Player[] = _("プレイヤー"); // Unused const u8 gJPText_Sama[] = _("さま"); // Unused const u8 gText_DexHoenn[] = _("HOENN"); const u8 gText_DexNational[] = _("NATIONAL"); -const u8 gText_PokedexDiploma[] = _("PLAYER: {CLEAR 0x10}{COLOR RED}{SHADOW LIGHT_RED}{PLAYER}{COLOR DARK_GREY}{SHADOW LIGHT_GREY}\n\nThis document certifies\nthat you have successfully\ncompleted your\n{STR_VAR_1} POKéDEX.\n\n{CLEAR_TO 0x42}{COLOR RED}{SHADOW LIGHT_RED}GAME FREAK"); +const u8 gText_PokedexDiploma[] = _("PLAYER: {CLEAR 0x10}{COLOR RED}{SHADOW LIGHT_RED}{PLAYER}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}\n\nThis document certifies\nthat you have successfully\ncompleted your\n{STR_VAR_1} POKéDEX.\n\n{CLEAR_TO 0x42}{COLOR RED}{SHADOW LIGHT_RED}GAME FREAK"); const u8 gJPText_GameFreak[] = _("{COLOR RED}{SHADOW LIGHT_RED}ゲ-ムフリ-ク"); // Unused const u8 gText_DiplomaEmpty[] = _("{COLOR RED}{SHADOW LIGHT_RED}"); // Unused const u8 gText_Hoenn[] = _("HOENN"); diff --git a/src/task.c b/src/task.c index a97496009e..68fb679b3e 100644 --- a/src/task.c +++ b/src/task.c @@ -136,32 +136,20 @@ void TaskDummy(u8 taskId) { } -#define TASK_DATA_OP(taskId, offset, op) \ -{ \ - u32 tasksAddr = (u32)gTasks; \ - u32 addr = taskId * sizeof(struct Task) + offset; \ - u32 dataAddr = tasksAddr + offsetof(struct Task, data); \ - addr += dataAddr; \ - op; \ -} - void SetTaskFuncWithFollowupFunc(u8 taskId, TaskFunc func, TaskFunc followupFunc) { - TASK_DATA_OP(taskId, 28, *((u16 *)addr) = (u32)followupFunc) - TASK_DATA_OP(taskId, 30, *((u16 *)addr) = (u32)followupFunc >> 16) + u8 followupFuncIndex = NUM_TASK_DATA - 2; // Should be const. + + gTasks[taskId].data[followupFuncIndex] = (s16)((u32)followupFunc); + gTasks[taskId].data[followupFuncIndex + 1] = (s16)((u32)followupFunc >> 16); // Store followupFunc as two half-words in the data array. gTasks[taskId].func = func; } void SwitchTaskToFollowupFunc(u8 taskId) { - s32 func; + u8 followupFuncIndex = NUM_TASK_DATA - 2; // Should be const. - gTasks[taskId].func = NULL; - - TASK_DATA_OP(taskId, 28, func = *((u16 *)addr)) - TASK_DATA_OP(taskId, 30, func |= *((s16 *)addr) << 16) - - gTasks[taskId].func = (TaskFunc)func; + gTasks[taskId].func = (TaskFunc)((u16)(gTasks[taskId].data[followupFuncIndex]) | (gTasks[taskId].data[followupFuncIndex + 1] << 16)); } bool8 FuncIsActiveTask(TaskFunc func) @@ -183,7 +171,7 @@ u8 FindTaskIdByFunc(TaskFunc func) if (gTasks[i].isActive == TRUE && gTasks[i].func == func) return (u8)i; - return 0xFF; + return TASK_NONE; // No task was found. } u8 GetTaskCount(void) diff --git a/src/tileset_anims.c b/src/tileset_anims.c index 087b75b7c4..f566fe3e0e 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -1169,7 +1169,7 @@ static void BlendAnimPalette_BattleDome_FloorLights(u16 timer) { CpuCopy16(gTilesetAnims_BattleDomeFloorLightPals[timer % 4], gPlttBufferUnfaded + 0x80, 32); BlendPalette(0x80, 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); - if ((u8)FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) != 0xFF ) + if ((u8)FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) != TASK_NONE) { sSecondaryTilesetAnimCallback = TilesetAnim_BattleDome2; sSecondaryTilesetAnimCounterMax = 32; @@ -1179,7 +1179,7 @@ static void BlendAnimPalette_BattleDome_FloorLights(u16 timer) static void BlendAnimPalette_BattleDome_FloorLightsNoBlend(u16 timer) { CpuCopy16(gTilesetAnims_BattleDomeFloorLightPals[timer % 4], gPlttBufferUnfaded + 0x80, 32); - if ((u8)FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) == 0xFF ) + if ((u8)FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) == TASK_NONE) { BlendPalette(0x80, 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); if (!--sSecondaryTilesetAnimCounterMax) diff --git a/src/title_screen.c b/src/title_screen.c index 1d6f90d74d..ef0f3a0da3 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -64,7 +64,9 @@ static const u32 sTitleScreenCloudsGfx[] = INCBIN_U32("graphics/title_screen/clo -const u16 gIntroWaterDropAlphaBlend[] = +// Used to blend "Emerald Version" as it passes over over the Pokémon banner. +// Also used by the intro to blend the Game Freak name/logo in and out as they appear and disappear +const u16 gTitleScreenAlphaBlend[64] = { BLDALPHA_BLEND(16, 0), BLDALPHA_BLEND(16, 1), @@ -103,7 +105,7 @@ const u16 gIntroWaterDropAlphaBlend[] = static const struct OamData sVersionBannerLeftOamData = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -120,7 +122,7 @@ static const struct OamData sVersionBannerLeftOamData = static const struct OamData sVersionBannerRightOamData = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -191,7 +193,7 @@ static const struct CompressedSpriteSheet sSpriteSheet_EmeraldVersion[] = static const struct OamData sOamData_CopyrightBanner = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -303,7 +305,7 @@ static const struct SpritePalette sSpritePalette_PressStart[] = static const struct OamData sPokemonLogoShineOamData = { - .y = 160, + .y = DISPLAY_HEIGHT, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -356,15 +358,15 @@ static void SpriteCB_VersionBannerLeft(struct Sprite *sprite) if (gTasks[sprite->data[1]].data[1] != 0) { sprite->oam.objMode = ST_OAM_OBJ_NORMAL; - sprite->pos1.y = VERSION_BANNER_Y_GOAL; + sprite->y = VERSION_BANNER_Y_GOAL; } else { - if (sprite->pos1.y != VERSION_BANNER_Y_GOAL) - sprite->pos1.y++; + if (sprite->y != VERSION_BANNER_Y_GOAL) + sprite->y++; if (sprite->data[0] != 0) sprite->data[0]--; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[sprite->data[0]]); + SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[sprite->data[0]]); } } @@ -373,12 +375,12 @@ static void SpriteCB_VersionBannerRight(struct Sprite *sprite) if (gTasks[sprite->data[1]].data[1] != 0) { sprite->oam.objMode = ST_OAM_OBJ_NORMAL; - sprite->pos1.y = VERSION_BANNER_Y_GOAL; + sprite->y = VERSION_BANNER_Y_GOAL; } else { - if (sprite->pos1.y != VERSION_BANNER_Y_GOAL) - sprite->pos1.y++; + if (sprite->y != VERSION_BANNER_Y_GOAL) + sprite->y++; } } @@ -388,7 +390,7 @@ static void SpriteCB_PressStartCopyrightBanner(struct Sprite *sprite) { sprite->data[1]++; // Alternate between hidden and shown every 16th frame - if (sprite->data[1] & 0x10) + if (sprite->data[1] & 16) sprite->invisible = FALSE; else sprite->invisible = TRUE; @@ -428,13 +430,13 @@ static void CreateCopyrightBanner(s16 x, s16 y) static void SpriteCB_PokemonLogoShine(struct Sprite *sprite) { - if (sprite->pos1.x < 272) + if (sprite->x < DISPLAY_WIDTH + 32) { if (sprite->data[0]) // Flash background { u16 backgroundColor; - if (sprite->pos1.x < DISPLAY_WIDTH / 2) + if (sprite->x < DISPLAY_WIDTH / 2) { // Brighten background color if (sprite->data[1] < 31) @@ -452,15 +454,15 @@ static void SpriteCB_PokemonLogoShine(struct Sprite *sprite) } backgroundColor = _RGB(sprite->data[1], sprite->data[1], sprite->data[1]); - if (sprite->pos1.x == DISPLAY_WIDTH / 2 + 12 - || sprite->pos1.x == DISPLAY_WIDTH / 2 + 16 - || sprite->pos1.x == DISPLAY_WIDTH / 2 + 20 - || sprite->pos1.x == DISPLAY_WIDTH / 2 + 24) + if (sprite->x == DISPLAY_WIDTH / 2 + 12 + || sprite->x == DISPLAY_WIDTH / 2 + 16 + || sprite->x == DISPLAY_WIDTH / 2 + 20 + || sprite->x == DISPLAY_WIDTH / 2 + 24) gPlttBufferFaded[0] = RGB(24, 31, 12); else gPlttBufferFaded[0] = backgroundColor; } - sprite->pos1.x += 4; + sprite->x += 4; } else { @@ -471,8 +473,8 @@ static void SpriteCB_PokemonLogoShine(struct Sprite *sprite) static void SpriteCB_PokemonLogoShine2(struct Sprite *sprite) { - if (sprite->pos1.x < 272) - sprite->pos1.x += 8; + if (sprite->x < DISPLAY_WIDTH + 32) + sprite->x += 8; else DestroySprite(sprite); } @@ -580,7 +582,7 @@ void CB2_InitTitleScreen(void) break; } case 3: - BeginNormalPaletteFade(0xFFFFFFFF, 1, 0x10, 0, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, 1, 0x10, 0, RGB_WHITEALPHA); SetVBlankCallback(VBlankCB); gMain.state = 4; break; @@ -594,11 +596,11 @@ void CB2_InitTitleScreen(void) SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WIN1H, 0); SetGpuReg(REG_OFFSET_WIN1V, 0); - SetGpuReg(REG_OFFSET_WININ, 0x1F1F); - SetGpuReg(REG_OFFSET_WINOUT, 0x3F1F); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WINOBJ_ALL); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_LIGHTEN); SetGpuReg(REG_OFFSET_BLDALPHA, 0); - SetGpuReg(REG_OFFSET_BLDY, 0xC); + SetGpuReg(REG_OFFSET_BLDY, 12); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(26) | BGCNT_16COLOR | BGCNT_TXT256x256); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(27) | BGCNT_16COLOR | BGCNT_TXT256x256); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(9) | BGCNT_256COLOR | BGCNT_AFF256x256); @@ -730,7 +732,7 @@ static void Task_TitleScreenPhase3(u8 taskId) if ((JOY_NEW(A_BUTTON)) || (JOY_NEW(START_BUTTON))) { FadeOutBGM(4); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_WHITEALPHA); SetMainCallback2(CB2_GoToMainMenu); } else if (JOY_HELD(CLEAR_SAVE_BUTTON_COMBO) == CLEAR_SAVE_BUTTON_COMBO) @@ -741,13 +743,13 @@ static void Task_TitleScreenPhase3(u8 taskId) && CanResetRTC() == TRUE) { FadeOutBGM(4); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); SetMainCallback2(CB2_GoToResetRtcScreen); } else if (JOY_HELD(BERRY_UPDATE_BUTTON_COMBO) == BERRY_UPDATE_BUTTON_COMBO) { FadeOutBGM(4); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); SetMainCallback2(CB2_GoToBerryFixScreen); } else @@ -764,7 +766,7 @@ static void Task_TitleScreenPhase3(u8 taskId) UpdateLegendaryMarkingColor(gTasks[taskId].tCounter); if ((gMPlayInfo_BGM.status & 0xFFFF) == 0) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_WHITEALPHA); SetMainCallback2(CB2_GoToCopyrightScreen); } } diff --git a/src/trade.c b/src/trade.c index 6696c23ebc..1305b4336a 100644 --- a/src/trade.c +++ b/src/trade.c @@ -52,7 +52,29 @@ #include "constants/songs.h" #include "constants/union_room.h" -#define Trade_SendData(ptr) (SendBlock(bitmask_all_link_players_but_self(), ptr->linkData, 20)) +// The following tags are offsets from GFXTAG_MENU_TEXT +// They're looped over in CB2_CreateTradeMenu and CB2_ReturnToTradeMenu +// and used as indexes into sMenuTextTileBuffers +enum { + GFXTAG_PLAYER_NAME_L, + GFXTAG_PLAYER_NAME_M, + GFXTAG_PLAYER_NAME_R, + GFXTAG_PARTNER_NAME_L, + GFXTAG_PARTNER_NAME_M, + GFXTAG_PARTNER_NAME_R, + GFXTAG_CANCEL_L, + GFXTAG_CANCEL_R, + GFXTAG_CHOOSE_PKMN_L, + GFXTAG_CHOOSE_PKMN_M, + GFXTAG_CHOOSE_PKMN_R, + GFXTAG_CHOOSE_PKMN_EMPTY_1, // 6 sprites to cover the full bottom bar, but only first 3 are needed + GFXTAG_CHOOSE_PKMN_EMPTY_2, + GFXTAG_CHOOSE_PKMN_EMPTY_3, + GFXTAG_MENU_TEXT_COUNT +}; +#define GFXTAG_PLAYER_NAME (1 + GFXTAG_PLAYER_NAME_R - GFXTAG_PLAYER_NAME_L) +#define GFXTAG_PARTNER_NAME (1 + GFXTAG_PARTNER_NAME_R - GFXTAG_PARTNER_NAME_L) +#define GFXTAG_CHOOSE_PKMN (1 + GFXTAG_CHOOSE_PKMN_EMPTY_3 - GFXTAG_CHOOSE_PKMN_L) struct InGameTrade { /*0x00*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; @@ -70,22 +92,23 @@ struct InGameTrade { /*0x38*/ u16 requestedSpecies; }; -static EWRAM_DATA u8 *sMessageBoxAllocBuffer = NULL; +static EWRAM_DATA u8 *sMenuTextAllocBuffer = NULL; -// Bytes 0-2 are used for the player's name box -// Bytes 3-5 are used for the partner's name box -// Bytes 6-7 are used for the Cancel box -// Bytes 8-13 are used for the Choose a Pokemon box -static EWRAM_DATA u8 *sMessageBoxTileBuffers[14] = {NULL}; +// Bytes 0-2 are used for the player's name text +// Bytes 3-5 are used for the partner's name text +// Bytes 6-7 are used for the Cancel text +// Bytes 8-13 are used for the Choose a Pokemon text +// See the corresponding GFXTAGs in src/data/trade.h +static EWRAM_DATA u8 *sMenuTextTileBuffers[GFXTAG_MENU_TEXT_COUNT] = {NULL}; EWRAM_DATA struct MailStruct gTradeMail[PARTY_SIZE] = {0}; EWRAM_DATA u8 gSelectedTradeMonPositions[2] = {0}; static EWRAM_DATA struct { /*0x0000*/ u8 bg2hofs; /*0x0001*/ u8 bg3hofs; - /*0x0002*/ u8 filler_2[0x28 - 2]; + /*0x0002*/ u8 filler_2[38]; /*0x0028*/ u8 partySpriteIds[2][PARTY_SIZE]; - /*0x0034*/ u8 cursorSpriteIdx; + /*0x0034*/ u8 cursorSpriteId; /*0x0035*/ u8 cursorPosition; /*0x0036*/ u8 partyCounts[2]; /*0x0038*/ bool8 monPresent[PARTY_SIZE * 2]; @@ -94,7 +117,7 @@ static EWRAM_DATA struct { /*0x0051*/ bool8 isEgg[2][PARTY_SIZE]; /*0x005D*/ u8 hpBarLevels[2][PARTY_SIZE]; /*0x0069*/ u8 bufferPartyState; - /*0x006A*/ u8 filler_6A[0x6F - 0x6A]; + /*0x006A*/ u8 filler_6A[5]; /*0x006F*/ u8 tradeMenuFunc; /*0x0070*/ u8 neverRead_70; /*0x0071*/ u8 filler_71; @@ -105,13 +128,13 @@ static EWRAM_DATA struct { /*0x0079*/ u8 partnerLinkFlagChoseAction; /*0x007A*/ u8 playerLinkFlagStatus; /*0x007B*/ u8 partnerLinkFlagStatus; - /*0x007C*/ u8 filler_7C[0x7E - 0x7C]; + /*0x007C*/ u8 filler_7C[2]; /*0x007E*/ u8 partnerCursorPosition; /*0x007F*/ u8 unused_7F; /*0x0080*/ u16 linkData[20]; /*0x00A8*/ u8 timer; - /*0x00A9*/ u8 giftRibbons[11]; - /*0x00B4*/ u8 filler_B4[0x8D0-0xB4]; + /*0x00A9*/ u8 giftRibbons[GIFT_RIBBONS_COUNT]; + /*0x00B4*/ u8 filler_B4[0x81C]; /*0x08D0*/ struct { bool8 queued; u16 queueDelay; @@ -119,6 +142,7 @@ static EWRAM_DATA struct { } queuedActions[4]; /*0x08F0*/ u16 tilemapBuffer[0x400]; } *sTradeMenuData = {NULL}; + static EWRAM_DATA struct { /*0x00*/ struct Pokemon mon; /*0x64*/ u32 timer; @@ -127,19 +151,19 @@ static EWRAM_DATA struct { /*0x72*/ u8 playerLinkFlagFinishTrade; /*0x73*/ u8 partnerLinkFlagFinishTrade; /*0x74*/ u16 linkData[10]; - /*0x88*/ u8 alwaysZero_88; - /*0x89*/ u8 alwaysZero_89; + /*0x88*/ u8 linkTimeoutZero1; + /*0x89*/ u8 linkTimeoutZero2; /*0x8A*/ u16 linkTimeoutCounter; /*0x8C*/ u16 neverRead_8C; - /*0x8E*/ u8 pokePicSpriteIdxs[2]; - /*0x90*/ u8 unk_90; //sprite id - /*0x91*/ u8 unk_91; //sprite id - /*0x92*/ u8 unk_92; //sprite id + /*0x8E*/ u8 monSpriteIds[2]; + /*0x90*/ u8 connectionSpriteId1; // Multi-purpose sprite ids used during the transfer sequence + /*0x91*/ u8 connectionSpriteId2; + /*0x92*/ u8 cableEndSpriteId; /*0x93*/ u8 sendTradeFinishState; /*0x94*/ u16 state; /*0x96*/ u8 filler_96[0xD2 - 0x96]; - /*0xD2*/ u8 pokeballSpriteId; - /*0xD3*/ u8 unk_D3; //sprite id + /*0xD2*/ u8 releasePokeballSpriteId; + /*0xD3*/ u8 bouncingPokeballSpriteId; /*0xD4*/ u16 texX; /*0xD6*/ u16 texY; /*0xD8*/ u16 neverRead_D8; @@ -151,7 +175,7 @@ static EWRAM_DATA struct { /*0xE4*/ s16 bg2vofs; /*0xE6*/ s16 bg2hofs; /*0xE8*/ u16 sXY; - /*0xEA*/ u16 unk_EA; //sXY divisor + /*0xEA*/ u16 gbaScale; /*0xEC*/ u16 alpha; /*0xEE*/ bool8 isLinkTrade; /*0xF0*/ u16 monSpecies[2]; @@ -165,9 +189,6 @@ static EWRAM_DATA struct { /*0xFE*/ u8 wirelessWinBottom; } *sTradeData = {NULL}; -#if !defined(NONMATCHING) && MODERN -#define static -#endif static bool32 IsWirelessTrade(void); static void CB2_CreateTradeMenu(void); static void VBlankCB_TradeMenu(void); @@ -186,24 +207,24 @@ static void DrawTradeMenuPartyMonInfo(u8, u8, u8, u8, u8, u8); static void DrawTradeMenuPartyInfo(u8); static void PrintNicknamesForTradeMenu(void); static void RedrawTradeMenuParty(u8); -static void Task_DrawSelectionSummary(u8 taskId); -static void Task_DrawSelectionTrade(u8 taskId); +static void Task_DrawSelectionSummary(u8); +static void Task_DrawSelectionTrade(u8); static void QueueAction(u16, u8); static u32 GetNumQueuedActions(void); static void DoQueuedActions(void); static void PrintTradeMessage(u8); static bool8 LoadTradeMenuSpriteSheetsAndPalettes(void); -static void DrawTextWindowAndBuffer6Bytes(const u8 *, u8 *, u8); +static void DrawBottomRowText(const u8 *, u8 *, u8); static void SetTradePartyLiveStatuses(u8); static void GetTradePartyHPBarLevels(u8); static void SetTradePartyHPBarSprites(void); static void SaveTradeGiftRibbons(void); static u32 CanTradeSelectedMon(struct Pokemon *, int, int); -static void sub_807AA28(struct Sprite *sprite); -static void sub_807AA7C(struct Sprite *sprite); -static void sub_807AABC(struct Sprite *sprite); -static void sub_807AAE0(struct Sprite *sprite); -static void sub_807AB04(struct Sprite *sprite); +static void SpriteCB_LinkMonGlow(struct Sprite *); +static void SpriteCB_LinkMonShadow(struct Sprite *); +static void SpriteCB_CableEndSending(struct Sprite *); +static void SpriteCB_CableEndReceiving(struct Sprite *); +static void SpriteCB_GbaScreen(struct Sprite *); static void InitTradeBgInternal(void); static void CB2_UpdateInGameTrade(void); static void SetTradeSequenceBgGpuRegs(u8); @@ -212,12 +233,12 @@ static void BufferTradeSceneStrings(void); static bool8 AnimateTradeSequence(void); static bool8 AnimateTradeSequenceCable(void); static bool8 AnimateTradeSequenceWireless(void); -static void sub_807E55C(struct Sprite *sprite); -static void sub_807E5D8(struct Sprite *sprite); -static void sub_807E64C(struct Sprite *sprite); -static void sub_807E6AC(struct Sprite *sprite); +static void SpriteCB_BouncingPokeball(struct Sprite *); +static void SpriteCB_BouncingPokeballDepart(struct Sprite *); +static void SpriteCB_BouncingPokeballDepartEnd(struct Sprite *); +static void SpriteCB_BouncingPokeballArrive(struct Sprite *); static void BufferInGameTradeMonName(void); -static void SetInGameTradeMail(struct MailStruct *mail, const struct InGameTrade *trade); +static void SetInGameTradeMail(struct MailStruct *, const struct InGameTrade *); static void CB2_UpdateLinkTrade(void); static void CB2_TryFinishTrade(void); static void CB2_SaveAndEndTrade(void); @@ -225,8 +246,8 @@ static void CB2_FreeTradeData(void); static void Task_InGameTrade(u8); static void CheckPartnersMonForRibbons(void); static void Task_AnimateWirelessSignal(u8); -static void c3_0805465C(u8); -static void sub_807F39C(u8); +static void Task_NarrowWindowForCrossing_Wireless(u8); +static void Task_NarrowWindowForCrossing_Cable(u8); static void CB2_SaveAndEndWirelessTrade(void); #include "data/trade.h" @@ -249,7 +270,7 @@ static void RequestLinkData(u8 type) SendBlockRequest(type); } -static bool32 sub_80771BC(void) +static bool32 IsLinkTradeTaskFinished(void) { if (gPlayerCurrActivity == ACTIVITY_29) { @@ -365,12 +386,10 @@ static void CB2_CreateTradeMenu(void) case 0: sTradeMenuData = AllocZeroed(sizeof(*sTradeMenuData)); InitTradeMenu(); - sMessageBoxAllocBuffer = AllocZeroed(ARRAY_COUNT(sMessageBoxTileBuffers) * 256); + sMenuTextAllocBuffer = AllocZeroed(GFXTAG_MENU_TEXT_COUNT * 256); - for (i = 0; i < (int)ARRAY_COUNT(sMessageBoxTileBuffers); i++) - { - sMessageBoxTileBuffers[i] = &sMessageBoxAllocBuffer[i * 256]; - } + for (i = 0; i < GFXTAG_MENU_TEXT_COUNT; i++) + sMenuTextTileBuffers[i] = &sMenuTextAllocBuffer[i * 256]; gMain.state++; break; @@ -378,9 +397,7 @@ static void CB2_CreateTradeMenu(void) gPaletteFade.bufferTransferDisabled = FALSE; for (i = 0; i < PARTY_SIZE; i++) - { - CreateMon(&gEnemyParty[i], SPECIES_NONE, 0, 32, FALSE, 0, OT_ID_PLAYER_ID, 0); - } + CreateMon(&gEnemyParty[i], SPECIES_NONE, 0, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); PrintTradeMessage(TRADE_MSG_STANDBY); ShowBg(0); @@ -511,11 +528,11 @@ static void CB2_CreateTradeMenu(void) gMain.state++; break; case 10: - DrawTextWindowAndBufferTiles(gSaveBlock2Ptr->playerName, sMessageBoxTileBuffers[0], 0, 0, 3); + DrawTextWindowAndBufferTiles(gSaveBlock2Ptr->playerName, sMenuTextTileBuffers[GFXTAG_PLAYER_NAME_L], 0, 0, 3); id = GetMultiplayerId(); - DrawTextWindowAndBufferTiles(gLinkPlayers[id ^ 1].name, sMessageBoxTileBuffers[3], 0, 0, 3); - DrawTextWindowAndBufferTiles(sTradeActionTexts[TRADE_TEXT_CANCEL], sMessageBoxTileBuffers[6], 0, 0, 2); - DrawTextWindowAndBuffer6Bytes(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], sMessageBoxTileBuffers[8], 24); + DrawTextWindowAndBufferTiles(gLinkPlayers[id ^ 1].name, sMenuTextTileBuffers[GFXTAG_PARTNER_NAME_L], 0, 0, 3); + DrawTextWindowAndBufferTiles(sTradeActionTexts[TRADE_TEXT_CANCEL], sMenuTextTileBuffers[GFXTAG_CANCEL_L], 0, 0, 2); + DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], sMenuTextTileBuffers[GFXTAG_CHOOSE_PKMN_L], 24); gMain.state++; sTradeMenuData->timer = 0; break; @@ -524,39 +541,43 @@ static void CB2_CreateTradeMenu(void) gMain.state++; break; case 12: + // Create player's name text sprites xPos = GetStringCenterAlignXOffset(1, gSaveBlock2Ptr->playerName, 120); - for (i = 0; i < 3; i++) + for (i = 0; i < GFXTAG_PLAYER_NAME; i++) { - temp = gSpriteTemplate_832DCAC; - temp.tileTag += i; + temp = sSpriteTemplate_MenuText; + temp.tileTag += i + GFXTAG_PLAYER_NAME_L; CreateSprite(&temp, xPos + (i * 32) + 16, 10, 1); } + // Create partner's name text sprites xPos = GetStringCenterAlignXOffset(1, gLinkPlayers[GetMultiplayerId() ^ 1].name, 120); - for (i = 0; i < 3; i++) + for (i = 0; i < GFXTAG_PARTNER_NAME; i++) { - temp = gSpriteTemplate_832DCAC; - temp.tileTag += i + 3; + temp = sSpriteTemplate_MenuText; + temp.tileTag += i + GFXTAG_PARTNER_NAME_L; CreateSprite(&temp, xPos + (i * 32) + 136, 10, 1); } gMain.state++; break; case 13: - temp = gSpriteTemplate_832DCAC; - temp.tileTag += 6; + // Create Cancel text sprites + temp = sSpriteTemplate_MenuText; + temp.tileTag += GFXTAG_CANCEL_L; CreateSprite(&temp, 215, 152, 1); - temp = gSpriteTemplate_832DCAC; - temp.tileTag += 7; + temp = sSpriteTemplate_MenuText; + temp.tileTag += GFXTAG_CANCEL_R; CreateSprite(&temp, 247, 152, 1); - for (i = 0; i < PARTY_SIZE; i++) + // Create Choose a Pokémon text sprites (only 3 are needed, other 3 are empty) + for (i = 0; i < GFXTAG_CHOOSE_PKMN; i++) { - temp = gSpriteTemplate_832DCAC; - temp.tileTag += i + 8; + temp = sSpriteTemplate_MenuText; + temp.tileTag += i + GFXTAG_CHOOSE_PKMN_L; CreateSprite(&temp, (i * 32) + 24, 150, 1); } - sTradeMenuData->cursorSpriteIdx = CreateSprite(&gSpriteTemplate_832DC94, sTradeMonSpriteCoords[0][0] * 8 + 32, sTradeMonSpriteCoords[0][1] * 8, 2); + sTradeMenuData->cursorSpriteId = CreateSprite(&sSpriteTemplate_Cursor, sTradeMonSpriteCoords[0][0] * 8 + 32, sTradeMonSpriteCoords[0][1] * 8, 2); sTradeMenuData->cursorPosition = 0; gMain.state++; rbox_fill_rectangle(0); @@ -584,7 +605,7 @@ static void CB2_CreateTradeMenu(void) gMain.state++; break; case 18: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gMain.state++; break; case 19: @@ -698,11 +719,11 @@ static void CB2_ReturnToTradeMenu(void) gMain.state++; break; case 10: - DrawTextWindowAndBufferTiles(gSaveBlock2Ptr->playerName, sMessageBoxTileBuffers[0], 0, 0, 3); + DrawTextWindowAndBufferTiles(gSaveBlock2Ptr->playerName, sMenuTextTileBuffers[GFXTAG_PLAYER_NAME_L], 0, 0, 3); id = GetMultiplayerId(); - DrawTextWindowAndBufferTiles(gLinkPlayers[id ^ 1].name, sMessageBoxTileBuffers[3], 0, 0, 3); - DrawTextWindowAndBufferTiles(sTradeActionTexts[TRADE_TEXT_CANCEL], sMessageBoxTileBuffers[6], 0, 0, 2); - DrawTextWindowAndBuffer6Bytes(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], sMessageBoxTileBuffers[8], 24); + DrawTextWindowAndBufferTiles(gLinkPlayers[id ^ 1].name, sMenuTextTileBuffers[GFXTAG_PARTNER_NAME_L], 0, 0, 3); + DrawTextWindowAndBufferTiles(sTradeActionTexts[TRADE_TEXT_CANCEL], sMenuTextTileBuffers[GFXTAG_CANCEL_L], 0, 0, 2); + DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], sMenuTextTileBuffers[GFXTAG_CHOOSE_PKMN_L], 24); gMain.state++; sTradeMenuData->timer = 0; break; @@ -711,35 +732,39 @@ static void CB2_ReturnToTradeMenu(void) gMain.state++; break; case 12: + // Create player's name text sprites xPos = GetStringCenterAlignXOffset(1, gSaveBlock2Ptr->playerName, 120); - for (i = 0; i < 3; i++) + for (i = 0; i < GFXTAG_PLAYER_NAME; i++) { - temp = gSpriteTemplate_832DCAC; - temp.tileTag += i; + temp = sSpriteTemplate_MenuText; + temp.tileTag += i + GFXTAG_PLAYER_NAME_L; CreateSprite(&temp, xPos + (i * 32) + 16, 10, 1); } + // Create partner's name text sprites xPos = GetStringCenterAlignXOffset(1, gLinkPlayers[GetMultiplayerId() ^ 1].name, 120); - for (i = 0; i < 3; i++) + for (i = 0; i < GFXTAG_PARTNER_NAME; i++) { - temp = gSpriteTemplate_832DCAC; - temp.tileTag += i + 3; + temp = sSpriteTemplate_MenuText; + temp.tileTag += i + GFXTAG_PARTNER_NAME_L; CreateSprite(&temp, xPos + (i * 32) + 136, 10, 1); } gMain.state++; break; case 13: - temp = gSpriteTemplate_832DCAC; - temp.tileTag += 6; + // Create Cancel text sprites + temp = sSpriteTemplate_MenuText; + temp.tileTag += GFXTAG_CANCEL_L; CreateSprite(&temp, 215, 152, 1); - temp = gSpriteTemplate_832DCAC; - temp.tileTag += 7; + temp = sSpriteTemplate_MenuText; + temp.tileTag += GFXTAG_CANCEL_R; CreateSprite(&temp, 247, 152, 1); - for (i = 0; i < PARTY_SIZE; i++) + // Create Choose a Pokémon text sprites + for (i = 0; i < GFXTAG_CHOOSE_PKMN; i++) { - temp = gSpriteTemplate_832DCAC; - temp.tileTag += i + 8; + temp = sSpriteTemplate_MenuText; + temp.tileTag += i + GFXTAG_CHOOSE_PKMN_L; CreateSprite(&temp, (i * 32) + 24, 150, 1); } @@ -748,7 +773,9 @@ static void CB2_ReturnToTradeMenu(void) else sTradeMenuData->cursorPosition = gLastViewedMonIndex + PARTY_SIZE; - sTradeMenuData->cursorSpriteIdx = CreateSprite(&gSpriteTemplate_832DC94, sTradeMonSpriteCoords[sTradeMenuData->cursorPosition][0] * 8 + 32, sTradeMonSpriteCoords[sTradeMenuData->cursorPosition][1] * 8, 2); + sTradeMenuData->cursorSpriteId = CreateSprite(&sSpriteTemplate_Cursor, + sTradeMonSpriteCoords[sTradeMenuData->cursorPosition][0] * 8 + 32, + sTradeMonSpriteCoords[sTradeMenuData->cursorPosition][1] * 8, 2); gMain.state = 16; break; case 16: @@ -764,8 +791,8 @@ static void CB2_ReturnToTradeMenu(void) break; case 18: gPaletteFade.bufferTransferDisabled = FALSE; - BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); gMain.state++; break; case 19: @@ -805,7 +832,7 @@ static void LinkTradeFadeOut(void) { if (++sTradeMenuData->timer > 15) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_LINK_TRADE_WAIT_FADE; } } @@ -838,7 +865,7 @@ static void SetLinkTradeCallbacks(void) { if (IsLinkRfuTaskFinished()) { - Free(sMessageBoxAllocBuffer); + Free(sMenuTextAllocBuffer); FreeAllWindowBuffers(); Free(sTradeMenuData); gMain.callback1 = NULL; @@ -851,7 +878,7 @@ static void SetLinkTradeCallbacks(void) { if (!gReceivedRemoteLinkPlayers) { - Free(sMessageBoxAllocBuffer); + Free(sMenuTextAllocBuffer); FreeAllWindowBuffers(); Free(sTradeMenuData); gMain.callback1 = NULL; @@ -960,12 +987,13 @@ static bool8 BufferTradeParties(void) switch (sTradeMenuData->bufferPartyState) { case 0: + // The parties are sent in pairs rather than all at once Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[0], 2 * sizeof(struct Pokemon)); sTradeMenuData->bufferPartyState++; sTradeMenuData->timer = 0; break; case 1: - if (sub_80771BC()) + if (IsLinkTradeTaskFinished()) { if (_GetBlockReceivedStatus() == 0) { @@ -1007,13 +1035,13 @@ static bool8 BufferTradeParties(void) case 8: if (_GetBlockReceivedStatus() == 3) { - Trade_Memcpy(&gEnemyParty[2], gBlockRecvBuffer[id ^ 1], 200); + Trade_Memcpy(&gEnemyParty[2], gBlockRecvBuffer[id ^ 1], 2 * sizeof(struct Pokemon)); TradeResetReceivedFlags(); sTradeMenuData->bufferPartyState++; } break; case 9: - Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[4], 200); + Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[4], 2 * sizeof(struct Pokemon)); sTradeMenuData->bufferPartyState++; break; case 11: @@ -1026,13 +1054,13 @@ static bool8 BufferTradeParties(void) case 12: if (_GetBlockReceivedStatus() == 3) { - Trade_Memcpy(&gEnemyParty[4], gBlockRecvBuffer[id ^ 1], 200); + Trade_Memcpy(&gEnemyParty[4], gBlockRecvBuffer[id ^ 1], 2 * sizeof(struct Pokemon)); TradeResetReceivedFlags(); sTradeMenuData->bufferPartyState++; } break; case 13: - Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, 220); + Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, PARTY_SIZE * sizeof(struct MailStruct) + 4); sTradeMenuData->bufferPartyState++; break; case 15: @@ -1045,13 +1073,13 @@ static bool8 BufferTradeParties(void) case 16: if (_GetBlockReceivedStatus() == 3) { - Trade_Memcpy(gTradeMail, gBlockRecvBuffer[id ^ 1], 216); + Trade_Memcpy(gTradeMail, gBlockRecvBuffer[id ^ 1], PARTY_SIZE * sizeof(struct MailStruct)); TradeResetReceivedFlags(); sTradeMenuData->bufferPartyState++; } break; case 17: - Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->giftRibbons, ARRAY_COUNT(sTradeMenuData->giftRibbons)); + Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->giftRibbons, sizeof(sTradeMenuData->giftRibbons)); sTradeMenuData->bufferPartyState++; break; case 19: @@ -1064,7 +1092,7 @@ static bool8 BufferTradeParties(void) case 20: if (_GetBlockReceivedStatus() == 3) { - Trade_Memcpy(sTradeMenuData->giftRibbons, gBlockRecvBuffer[id ^ 1], ARRAY_COUNT(sTradeMenuData->giftRibbons)); + Trade_Memcpy(sTradeMenuData->giftRibbons, gBlockRecvBuffer[id ^ 1], sizeof(sTradeMenuData->giftRibbons)); TradeResetReceivedFlags(); sTradeMenuData->bufferPartyState++; } @@ -1106,9 +1134,9 @@ static bool8 BufferTradeParties(void) return FALSE; } -static void PrintAndBufferIsThisTradeOkay(void) +static void DrawIsThisTradeOkay(void) { - DrawTextWindowAndBuffer6Bytes(sText_IsThisTradeOkay, (void *)(OBJ_VRAM0 + (sTradeMenuData->bottomTextTileStart * 32)), 24); + DrawBottomRowText(sText_IsThisTradeOkay, (void *)(OBJ_VRAM0 + (sTradeMenuData->bottomTextTileStart * 32)), 24); } // mpId is unused @@ -1163,12 +1191,12 @@ static void ReactToLinkTradeData(u8 mpId, u8 status) { switch (gBlockRecvBuffer[0][0]) { - case LINKCMD_CANCEL_TRADE: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + case LINKCMD_BOTH_CANCEL_TRADE: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); PrintTradeMessage(TRADE_MSG_WAITING_FOR_FRIEND); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_1; break; - case LINKCMD_0xEECC: + case LINKCMD_PARTNER_CANCEL_TRADE: PrintTradeMessage(TRADE_MSG_FRIEND_WANTS_TO_TRADE); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; break; @@ -1180,10 +1208,10 @@ static void ReactToLinkTradeData(u8 mpId, u8 status) sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CONFIRM_TRADE_PROMPT; break; case LINKCMD_START_TRADE: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_LINK_TRADE_WAIT_FADE; break; - case LINKCMD_0xDDEE: + case LINKCMD_PLAYER_CANCEL_TRADE: PrintTradeMessage(TRADE_MSG_CANCELED); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; } @@ -1211,7 +1239,7 @@ static void QueueLinkTradeData(void) && sTradeMenuData->partnerLinkFlagChoseAction == WANTS_TO_CANCEL) { PrintTradeMessage(TRADE_MSG_CANCELED); - sTradeMenuData->linkData[0] = LINKCMD_0xEECC; + sTradeMenuData->linkData[0] = LINKCMD_PARTNER_CANCEL_TRADE; sTradeMenuData->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); sTradeMenuData->playerLinkFlagStatus = sTradeMenuData->partnerLinkFlagStatus = 0; @@ -1222,7 +1250,7 @@ static void QueueLinkTradeData(void) && sTradeMenuData->partnerLinkFlagChoseAction == WANTS_TO_TRADE) { PrintTradeMessage(TRADE_MSG_FRIEND_WANTS_TO_TRADE); - sTradeMenuData->linkData[0] = LINKCMD_0xDDEE; + sTradeMenuData->linkData[0] = LINKCMD_PLAYER_CANCEL_TRADE; sTradeMenuData->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); sTradeMenuData->playerLinkFlagStatus = sTradeMenuData->partnerLinkFlagStatus = 0; @@ -1232,10 +1260,10 @@ static void QueueLinkTradeData(void) else if (sTradeMenuData->playerLinkFlagChoseAction == WANTS_TO_CANCEL && sTradeMenuData->partnerLinkFlagChoseAction == WANTS_TO_CANCEL) { - sTradeMenuData->linkData[0] = LINKCMD_CANCEL_TRADE; + sTradeMenuData->linkData[0] = LINKCMD_BOTH_CANCEL_TRADE; sTradeMenuData->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sTradeMenuData->playerLinkFlagChoseAction = sTradeMenuData->partnerLinkFlagChoseAction = 0; sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_1; } @@ -1258,7 +1286,7 @@ static void QueueLinkTradeData(void) || sTradeMenuData->partnerLinkFlagStatus == CANCEL_TRADE) { PrintTradeMessage(TRADE_MSG_CANCELED); - sTradeMenuData->linkData[0] = LINKCMD_0xDDEE; + sTradeMenuData->linkData[0] = LINKCMD_PLAYER_CANCEL_TRADE; sTradeMenuData->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); sTradeMenuData->playerLinkFlagStatus = 0; @@ -1320,15 +1348,15 @@ static void TradeMenuMoveCursor(u8 *cursorPosition, u8 direction) if (newPosition == (PARTY_SIZE * 2)) // CANCEL { - StartSpriteAnim(&gSprites[sTradeMenuData->cursorSpriteIdx], 1); - gSprites[sTradeMenuData->cursorSpriteIdx].pos1.x = 224; - gSprites[sTradeMenuData->cursorSpriteIdx].pos1.y = 160; + StartSpriteAnim(&gSprites[sTradeMenuData->cursorSpriteId], CURSOR_ANIM_ON_CANCEL); + gSprites[sTradeMenuData->cursorSpriteId].x = DISPLAY_WIDTH - 16; + gSprites[sTradeMenuData->cursorSpriteId].y = DISPLAY_HEIGHT; } else { - StartSpriteAnim(&gSprites[sTradeMenuData->cursorSpriteIdx], 0); - gSprites[sTradeMenuData->cursorSpriteIdx].pos1.x = sTradeMonSpriteCoords[newPosition][0] * 8 + 32; - gSprites[sTradeMenuData->cursorSpriteIdx].pos1.y = sTradeMonSpriteCoords[newPosition][1] * 8; + StartSpriteAnim(&gSprites[sTradeMenuData->cursorSpriteId], CURSOR_ANIM_NORMAL); + gSprites[sTradeMenuData->cursorSpriteId].x = sTradeMonSpriteCoords[newPosition][0] * 8 + 32; + gSprites[sTradeMenuData->cursorSpriteId].y = sTradeMonSpriteCoords[newPosition][1] * 8; } if (*cursorPosition != newPosition) @@ -1387,7 +1415,7 @@ static void TradeMenuProcessInput(void) // Cursor is in partner's party else if (sTradeMenuData->cursorPosition < PARTY_SIZE * 2) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_SHOW_MON_SUMMARY; } // Cursor is on Cancel @@ -1395,7 +1423,7 @@ static void TradeMenuProcessInput(void) { CreateYesNoMenu(&sTradeYesNoWindowTemplate, 1, 14, 0); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_PROMPT; - DrawTextWindowAndBuffer6Bytes(sTradeActionTexts[TRADE_TEXT_CANCEL_TRADE], (void *)(OBJ_VRAM0 + sTradeMenuData->bottomTextTileStart * 32), 24); + DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CANCEL_TRADE], (void *)(OBJ_VRAM0 + sTradeMenuData->bottomTextTileStart * 32), 24); } } } @@ -1404,8 +1432,8 @@ static void TradeMenuChooseMon(void) { PrintNicknamesForTradeMenu(); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_MAIN_MENU; - gSprites[sTradeMenuData->cursorSpriteIdx].invisible = FALSE; - DrawTextWindowAndBuffer6Bytes(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], (void *)(OBJ_VRAM0 + sTradeMenuData->bottomTextTileStart * 32), 24); + gSprites[sTradeMenuData->cursorSpriteId].invisible = FALSE; + DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], (void *)(OBJ_VRAM0 + sTradeMenuData->bottomTextTileStart * 32), 24); } static void TradeMenuProcessInput_SelectedMon(void) @@ -1419,7 +1447,7 @@ static void TradeMenuProcessInput_SelectedMon(void) case MENU_NOTHING_CHOSEN: break; case 0: // Summary - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_SHOW_MON_SUMMARY; break; case 1: // Trade @@ -1427,7 +1455,7 @@ static void TradeMenuProcessInput_SelectedMon(void) { case CAN_TRADE_MON: SetReadyToTrade(); - gSprites[sTradeMenuData->cursorSpriteIdx].invisible = TRUE; + gSprites[sTradeMenuData->cursorSpriteId].invisible = TRUE; break; case CANT_TRADE_LAST_MON: QueueAction(QUEUE_DELAY_MSG, QUEUE_ONLY_MON2); @@ -1463,10 +1491,10 @@ static void TradeMenuShowMonSummaryScreen(void) { // Player's party if (sTradeMenuData->cursorPosition < PARTY_SIZE) - ShowPokemonSummaryScreen(PSS_MODE_LOCK_MOVES, gPlayerParty, sTradeMenuData->cursorPosition, sTradeMenuData->partyCounts[TRADE_PLAYER] - 1, CB2_ReturnToTradeMenu); + ShowPokemonSummaryScreen(SUMMARY_MODE_LOCK_MOVES, gPlayerParty, sTradeMenuData->cursorPosition, sTradeMenuData->partyCounts[TRADE_PLAYER] - 1, CB2_ReturnToTradeMenu); // Partner's party else - ShowPokemonSummaryScreen(PSS_MODE_LOCK_MOVES, gEnemyParty, sTradeMenuData->cursorPosition - PARTY_SIZE, sTradeMenuData->partyCounts[TRADE_PARTNER] - 1, CB2_ReturnToTradeMenu); + ShowPokemonSummaryScreen(SUMMARY_MODE_LOCK_MOVES, gEnemyParty, sTradeMenuData->cursorPosition - PARTY_SIZE, sTradeMenuData->partyCounts[TRADE_PARTNER] - 1, CB2_ReturnToTradeMenu); FreeAllWindowBuffers(); } } @@ -1489,7 +1517,7 @@ static u8 CheckValidityOfTradeMons(u8 *aliveMons, u8 playerPartyCount, u8 player // Partner cant trade illegitimate Deoxys or Mew if (partnerSpecies == SPECIES_DEOXYS || partnerSpecies == SPECIES_MEW) { - if (!GetMonData(&gEnemyParty[partnerMonIdx], MON_DATA_OBEDIENCE)) + if (!GetMonData(&gEnemyParty[partnerMonIdx], MON_DATA_EVENT_LEGAL)) return PARTNER_MON_INVALID; } @@ -1517,7 +1545,9 @@ static bool32 CheckMonsBeforeTrade(void) aliveMons[i] = sTradeMenuData->isLiveMon[TRADE_PLAYER][i]; } - switch (CheckValidityOfTradeMons(aliveMons, sTradeMenuData->partyCounts[TRADE_PLAYER], sTradeMenuData->cursorPosition, sTradeMenuData->partnerCursorPosition)) + switch (CheckValidityOfTradeMons(aliveMons, sTradeMenuData->partyCounts[TRADE_PLAYER], + sTradeMenuData->cursorPosition, + sTradeMenuData->partnerCursorPosition)) { case PLAYER_MON_INVALID: QueueAction(QUEUE_DELAY_MSG, QUEUE_ONLY_MON2); @@ -1550,7 +1580,7 @@ static void ConfirmOrCancelTrade(void) case 1: // Cancel Trade case MENU_B_PRESSED: QueueAction(QUEUE_DELAY_MSG, QUEUE_STANDBY); - if (sub_80771BC()) + if (IsLinkTradeTaskFinished()) SetLinkData(LINKCMD_READY_CANCEL_TRADE, 0); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_STANDBY; PutWindowTilemap(17); @@ -1558,7 +1588,8 @@ static void ConfirmOrCancelTrade(void) } } -static void sub_807929C(void) +// Only when choosing Yes to cancel, when No is chosen all are redrawn anyway +static void RestoreNicknamesCoveredByYesNo(void) { int i; @@ -1576,9 +1607,9 @@ static void CancelTradeYesNo(void) case 0: // YES, Cancel PrintTradeMessage(TRADE_MSG_WAITING_FOR_FRIEND); SetLinkData(LINKCMD_REQUEST_CANCEL, 0); - gSprites[sTradeMenuData->cursorSpriteIdx].invisible = TRUE; + gSprites[sTradeMenuData->cursorSpriteId].invisible = TRUE; sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_STANDBY; - sub_807929C(); + RestoreNicknamesCoveredByYesNo(); break; case 1: // NO, Continue case MENU_B_PRESSED: @@ -1604,7 +1635,7 @@ static void ConfirmTradePrompt(void) if (sTradeMenuData->drawPartyState[TRADE_PLAYER] == DRAW_PARTY_FINISH && sTradeMenuData->drawPartyState[TRADE_PARTNER] == DRAW_PARTY_FINISH) { - PrintAndBufferIsThisTradeOkay(); + DrawIsThisTradeOkay(); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_DELAY_TRADE_CONFIRM; } } @@ -1640,7 +1671,7 @@ static void RedrawTradeMenuAfterPressA(void) RedrawTradeMenuParty(TRADE_PLAYER); RedrawTradeMenuParty(TRADE_PARTNER); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_MAIN_MENU; - gSprites[sTradeMenuData->cursorSpriteIdx].invisible = FALSE; + gSprites[sTradeMenuData->cursorSpriteId].invisible = FALSE; } } @@ -1665,9 +1696,9 @@ static void CancelTrade_2(void) { if (gWirelessCommType) { - if (sub_80771BC() && GetNumQueuedActions() == 0) + if (IsLinkTradeTaskFinished() && GetNumQueuedActions() == 0) { - Free(sMessageBoxAllocBuffer); + Free(sMenuTextAllocBuffer); Free(sTradeMenuData); FreeAllWindowBuffers(); DestroyWirelessStatusIndicatorSprite(); @@ -1678,7 +1709,7 @@ static void CancelTrade_2(void) { if (!gReceivedRemoteLinkPlayers) { - Free(sMessageBoxAllocBuffer); + Free(sMenuTextAllocBuffer); Free(sTradeMenuData); FreeAllWindowBuffers(); SetMainCallback2(CB2_ReturnToFieldFromMultiplayer); @@ -1806,7 +1837,8 @@ static void DrawTradeMenuParty(u8 whichParty) gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].invisible = FALSE; gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[0] = 20; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[2] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; + gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[2] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] + + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12; StoreSpriteCallbackInData6(&gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]], SpriteCB_MonIcon); sTradeMenuData->drawPartyState[whichParty]++; @@ -1825,10 +1857,11 @@ static void DrawTradeMenuParty(u8 whichParty) case 3: CopyToBgTilemapBufferRect_ChangePalette(1, sTradeMovesBoxTilemap, selectedMonParty * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].pos1.x = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].pos1.y = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].pos2.x = 0; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].pos2.y = 0; + gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].x = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] + + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; + gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].y = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12; + gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].x2 = 0; + gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].y2 = 0; nameStringWidth = GetMonNicknameWidth(nickname, selectedMonParty, partyIdx); AddTextPrinterParameterized3((whichParty * 2) + 14, 0, (80 - nameStringWidth) / 2, 4, sTradeTextColors, 0, nickname); BufferTradeMonMoves(movesString, selectedMonParty, partyIdx); @@ -2017,10 +2050,10 @@ static void ResetTradeMenuPartyPositions(u8 whichParty) for (i = 0; i < sTradeMenuData->partyCounts[whichParty]; i++) { gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].invisible = FALSE; - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].pos1.x = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][0] * 8 + 14; - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].pos1.y = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][1] * 8 - 12; - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].pos2.x = 0; - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].pos2.y = 0; + gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].x = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][0] * 8 + 14; + gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].y = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][1] * 8 - 12; + gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].x2 = 0; + gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].y2 = 0; } } @@ -2038,7 +2071,7 @@ static void RedrawTradeMenuParty(u8 whichParty) DrawTradeMenuPartyInfo(whichParty); PrintPartyNicknamesForTradeMenu(whichParty); ResetTradeMenuPartyPositions(whichParty); - DrawTextWindowAndBuffer6Bytes(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], (void *)(OBJ_VRAM0 + (sTradeMenuData->bottomTextTileStart * 32)), 24); + DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], (void *)(OBJ_VRAM0 + (sTradeMenuData->bottomTextTileStart * 32)), 24); sTradeMenuData->drawPartyState[whichParty] = 0; } @@ -2142,40 +2175,51 @@ static bool8 LoadTradeMenuSpriteSheetsAndPalettes(void) { struct SpriteSheet sheet; - if (sTradeMenuData->timer < (int)ARRAY_COUNT(sMessageBoxTileBuffers)) + if (sTradeMenuData->timer < GFXTAG_MENU_TEXT_COUNT) { - sheet.data = sMessageBoxTileBuffers[sTradeMenuData->timer]; + sheet.data = sMenuTextTileBuffers[sTradeMenuData->timer]; sheet.size = 0x100; - sheet.tag = 200 + sTradeMenuData->timer; + sheet.tag = GFXTAG_MENU_TEXT + sTradeMenuData->timer; } switch (sTradeMenuData->timer) { - case 0 ... 7: + case GFXTAG_PLAYER_NAME_L: + case GFXTAG_PLAYER_NAME_M: + case GFXTAG_PLAYER_NAME_R: + case GFXTAG_PARTNER_NAME_L: + case GFXTAG_PARTNER_NAME_M: + case GFXTAG_PARTNER_NAME_R: + case GFXTAG_CANCEL_L: + case GFXTAG_CANCEL_R: LoadSpriteSheet(&sheet); sTradeMenuData->timer++; break; - case 8: + case GFXTAG_CHOOSE_PKMN_L: sTradeMenuData->bottomTextTileStart = LoadSpriteSheet(&sheet); sTradeMenuData->timer++; break; - case 9 ... 13: + case GFXTAG_CHOOSE_PKMN_M: + case GFXTAG_CHOOSE_PKMN_R: + case GFXTAG_CHOOSE_PKMN_EMPTY_1: + case GFXTAG_CHOOSE_PKMN_EMPTY_2: + case GFXTAG_CHOOSE_PKMN_EMPTY_3: LoadSpriteSheet(&sheet); sTradeMenuData->timer++; break; - case 14: + case GFXTAG_MENU_TEXT_COUNT: LoadSpritePalette(&gSpritePalette_TradeScreenText); sTradeMenuData->timer++; break; - case 15: - LoadSpritePalette(&gUnknown_0832DC44); + case GFXTAG_MENU_TEXT_COUNT + 1: + LoadSpritePalette(&sCursor_SpritePalette); sTradeMenuData->timer++; break; - case 16: - LoadSpriteSheet(&sTradeButtonsSpriteSheet); + case GFXTAG_MENU_TEXT_COUNT + 2: + LoadSpriteSheet(&sCursor_SpriteSheet); sTradeMenuData->timer++; break; - case 17: + case GFXTAG_MENU_TEXT_COUNT + 3: sTradeMenuData->timer = 0; return TRUE; } @@ -2183,7 +2227,7 @@ static bool8 LoadTradeMenuSpriteSheetsAndPalettes(void) return FALSE; } -static void DrawTextWindowAndBuffer6Bytes(const u8 *str, u8 *dest, u8 unused) +static void DrawBottomRowText(const u8 *str, u8 *dest, u8 unused) { DrawTextWindowAndBufferTiles(str, dest, 0, 0, 6); } @@ -2329,7 +2373,7 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int if (species[monIdx] == SPECIES_DEOXYS || species[monIdx] == SPECIES_MEW) { - if (!GetMonData(&playerParty[monIdx], MON_DATA_OBEDIENCE)) + if (!GetMonData(&playerParty[monIdx], MON_DATA_EVENT_LEGAL)) return CANT_TRADE_INVALID_MON; } @@ -2394,17 +2438,17 @@ s32 GetGameProgressForLinkTrade(void) return TRADE_BOTH_PLAYERS_READY; } -static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isObedientBitSet) +static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isEventLegal) { if (species == SPECIES_DEOXYS || species == SPECIES_MEW) { - if (!isObedientBitSet) + if (!isEventLegal) return TRUE; } return FALSE; } -int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isObedientBitSet) +int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isEventLegal) { bool8 playerHasNationalDex = rfuPlayer.hasNationalDex; bool8 playerIsChampion = rfuPlayer.isChampion; @@ -2424,7 +2468,7 @@ int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGname } } - if (IsDeoxysOrMewUntradable(playerSpecies, isObedientBitSet)) + if (IsDeoxysOrMewUntradable(playerSpecies, isEventLegal)) { return UR_TRADE_MSG_MON_CANT_BE_TRADED_2; } @@ -2475,11 +2519,11 @@ int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGname return UR_TRADE_MSG_NONE; } -int CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isObedientBitSet) +int CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isEventLegal) { bool8 hasNationalDex = rfuPlayer.hasNationalDex; - if (IsDeoxysOrMewUntradable(species, isObedientBitSet)) + if (IsDeoxysOrMewUntradable(species, isEventLegal)) return CANT_REGISTER_MON; if (hasNationalDex) @@ -2567,7 +2611,7 @@ int CanSpinTradeMon(struct Pokemon *mon, u16 monIdx) return CAN_TRADE_MON; } -static void sub_807AA28(struct Sprite *sprite) +static void SpriteCB_LinkMonGlow(struct Sprite *sprite) { if (++sprite->data[0] == 10) { @@ -2576,7 +2620,7 @@ static void sub_807AA28(struct Sprite *sprite) } } -static void sub_807AA4C(struct Sprite *sprite) +static void SpriteCB_LinkMonGlowWireless(struct Sprite *sprite) { if (!sprite->invisible && ++sprite->data[0] == 10) { @@ -2585,36 +2629,38 @@ static void sub_807AA4C(struct Sprite *sprite) } } -static void sub_807AA7C(struct Sprite *sprite) +static void SpriteCB_LinkMonShadow(struct Sprite *sprite) { if (!sprite->data[1]) { if (++sprite->data[0] == 12) sprite->data[0] = 0; - LoadPalette(&gUnknown_08338EA4[sprite->data[0]], (sprite->oam.paletteNum + 16) * 16 + 4, 2); + LoadPalette(&sLinkMonShadow_Pal[sprite->data[0]], (sprite->oam.paletteNum + 16) * 16 + 4, 2); } } -static void sub_807AABC(struct Sprite *sprite) +// Move cable down offscreen +static void SpriteCB_CableEndSending(struct Sprite *sprite) { sprite->data[0]++; - sprite->pos2.y++; + sprite->y2++; if (sprite->data[0] == 10) DestroySprite(sprite); } -static void sub_807AAE0(struct Sprite *sprite) +// Move cable up onscreen +static void SpriteCB_CableEndReceiving(struct Sprite *sprite) { sprite->data[0]++; - sprite->pos2.y--; + sprite->y2--; if (sprite->data[0] == 10) DestroySprite(sprite); } -static void sub_807AB04(struct Sprite *sprite) +static void SpriteCB_GbaScreen(struct Sprite *sprite) { if (++sprite->data[0] == 15) { @@ -2668,13 +2714,13 @@ static void VBlankCB_Trade(void) static void ClearLinkTimeoutCounter(void) { sTradeData->linkTimeoutCounter = 0; - sTradeData->alwaysZero_88 = 0; - sTradeData->alwaysZero_89 = 0; + sTradeData->linkTimeoutZero1 = 0; + sTradeData->linkTimeoutZero2 = 0; } static void CheckForLinkTimeout(void) { - if (sTradeData->alwaysZero_88 == sTradeData->alwaysZero_89) + if (sTradeData->linkTimeoutZero1 == sTradeData->linkTimeoutZero2) sTradeData->linkTimeoutCounter++; else sTradeData->linkTimeoutCounter = 0; @@ -2684,11 +2730,11 @@ static void CheckForLinkTimeout(void) CloseLink(); SetMainCallback2(CB2_LinkError); sTradeData->linkTimeoutCounter = 0; - sTradeData->alwaysZero_89 = 0; - sTradeData->alwaysZero_88 = 0; + sTradeData->linkTimeoutZero2 = 0; + sTradeData->linkTimeoutZero1 = 0; } - sTradeData->alwaysZero_89 = sTradeData->alwaysZero_88; + sTradeData->linkTimeoutZero2 = sTradeData->linkTimeoutZero1; } static u32 TradeGetMultiplayerId(void) @@ -2734,9 +2780,9 @@ static void LoadTradeMonPic(u8 whichParty, u8 state) break; case 1: SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, pos); - sTradeData->pokePicSpriteIdxs[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6); - gSprites[sTradeData->pokePicSpriteIdxs[whichParty]].invisible = TRUE; - gSprites[sTradeData->pokePicSpriteIdxs[whichParty]].callback = SpriteCallbackDummy; + sTradeData->monSpriteIds[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6); + gSprites[sTradeData->monSpriteIds[whichParty]].invisible = TRUE; + gSprites[sTradeData->monSpriteIds[whichParty]].callback = SpriteCallbackDummy; break; } } @@ -2845,7 +2891,7 @@ void CB2_LinkTrade(void) gMain.state++; break; case 10: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); ShowBg(0); gMain.state++; break; @@ -2893,9 +2939,9 @@ static void InitTradeBgInternal(void) InitBgsFromTemplates(0, sTradeSequenceBgTemplates, ARRAY_COUNT(sTradeSequenceBgTemplates)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); - SetBgTilemapBuffer(0, Alloc(0x800)); - SetBgTilemapBuffer(1, Alloc(0x800)); - SetBgTilemapBuffer(3, Alloc(0x800)); + SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE)); + SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE)); + SetBgTilemapBuffer(3, Alloc(BG_SCREEN_SIZE)); DeactivateAllTextPrinters(); DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer); @@ -2920,7 +2966,7 @@ static void CB2_InGameTrade(void) StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName); GetMonData(&gEnemyParty[0], MON_DATA_OT_NAME, otName); StringCopy(gLinkPlayers[1].name, otName); - gLinkPlayers[0].language = LANGUAGE_ENGLISH; + gLinkPlayers[0].language = GAME_LANGUAGE; gLinkPlayers[1].language = GetMonData(&gEnemyParty[0], MON_DATA_LANGUAGE); sTradeData = AllocZeroed(sizeof(*sTradeData)); AllocateMonSpritesGfx(); @@ -3024,7 +3070,7 @@ static void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx) struct Pokemon *partnerMon = &gEnemyParty[partnerPartyIdx]; u16 partnerMail = GetMonData(partnerMon, MON_DATA_MAIL); - if (playerMail != 0xFF) + if (playerMail != MAIL_NONE) ClearMailStruct(&gSaveBlock1Ptr->mail[playerMail]); sTradeData->mon = *playerMon; @@ -3035,7 +3081,7 @@ static void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx) if (!GetMonData(playerMon, MON_DATA_IS_EGG)) SetMonData(playerMon, MON_DATA_FRIENDSHIP, &friendship); - if (partnerMail != 0xFF) + if (partnerMail != MAIL_NONE) GiveMailToMon2(playerMon, &gTradeMail[partnerMail]); UpdatePokedexForReceivedMon(playerPartyIdx); @@ -3050,7 +3096,7 @@ static void TrySendTradeFinishData(void) case 1: if (IsLinkTaskFinished()) { - Trade_SendData(sTradeData); + SendBlock(bitmask_all_link_players_but_self(), sTradeData->linkData, sizeof(sTradeData->linkData)); sTradeData->sendTradeFinishState++; } // fallthrough @@ -3089,7 +3135,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_TXT512x256); LoadPalette(gTradeGba2_Pal, 16, 0x60); DmaCopyLarge16(3, gTradeGba_Gfx, (void *) BG_CHAR_ADDR(1), 0x1420, 0x1000); - DmaCopy16Defvars(3, gUnknown_08331F60, (void *) BG_SCREEN_ADDR(18), 0x1000); + DmaCopy16Defvars(3, gTradePlatform_Tilemap, (void *) BG_SCREEN_ADDR(18), 0x1000); break; case 1: sTradeData->bg1hofs = 0; @@ -3108,11 +3154,11 @@ static void SetTradeSequenceBgGpuRegs(u8 state) if (sTradeData->isCableTrade) { - DmaCopy16Defvars(3, sTradeTilemap_GbaCable, (void *) BG_SCREEN_ADDR(5), 0x1000); + DmaCopy16Defvars(3, sGbaCable_Tilemap, (void *) BG_SCREEN_ADDR(5), 0x1000); } else { - DmaCopy16Defvars(3, sTradeTilemap_GbaWireless, (void *) BG_SCREEN_ADDR(5), 0x1000); + DmaCopy16Defvars(3, sGbaWireless_Tilemap, (void *) BG_SCREEN_ADDR(5), 0x1000); } DmaCopyLarge16(3, gTradeGba_Gfx, (void *) BG_CHAR_ADDR(0), 0x1420, 0x1000); @@ -3130,7 +3176,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); - LZ77UnCompVram(gUnknown_083379A0, (void *) BG_SCREEN_ADDR(5)); + LZ77UnCompVram(sCrossingHighlightWireless_Tilemap, (void *) BG_SCREEN_ADDR(5)); BlendPalettes(0x8, 16, RGB_BLACK); } else @@ -3139,14 +3185,14 @@ static void SetTradeSequenceBgGpuRegs(u8 state) DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); - DmaCopy16Defvars(3, sTradeTilemap_Cable, (void *) BG_SCREEN_ADDR(5), 0x800); + DmaCopy16Defvars(3, sCrossingHighlightCable_Tilemap, (void *) BG_SCREEN_ADDR(5), 0x800); BlendPalettes(0x1, 16, RGB_BLACK); } break; case 3: - LoadPalette(sTradePal_Black, 48, 0x20); - LZ77UnCompVram(sTradeGfx_WirelessSignal, (void *) BG_CHAR_ADDR(1)); - LZ77UnCompVram(sTradeTilemap_WirelessSignal, (void *) BG_SCREEN_ADDR(18)); + LoadPalette(sWirelessSignalNone_Pal, 48, 0x20); + LZ77UnCompVram(sWirelessSignal_Gfx, (void *) BG_CHAR_ADDR(1)); + LZ77UnCompVram(sWirelessSignal_Tilemap, (void *) BG_SCREEN_ADDR(18)); sTradeData->bg2vofs = 80; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | @@ -3167,18 +3213,18 @@ static void SetTradeSequenceBgGpuRegs(u8 state) sTradeData->texX = 64; sTradeData->texY = 92; sTradeData->sXY = 32; - sTradeData->unk_EA = 1024; + sTradeData->gbaScale = 1024; sTradeData->alpha = 0; - DmaCopyLarge16(3, sTradeAffine_Gba, (void *) BG_CHAR_ADDR(1), 0x2840, 0x1000); + DmaCopyLarge16(3, sGbaAffine_Gfx, (void *) BG_CHAR_ADDR(1), 0x2840, 0x1000); if (sTradeData->isCableTrade) { - DmaCopy16Defvars(3, sTradeAffineMap_GbaCable, (void *) BG_SCREEN_ADDR(18), 0x100); + DmaCopy16Defvars(3, sGbaCable_AffineTilemap, (void *) BG_SCREEN_ADDR(18), 0x100); } else { - DmaCopy16Defvars(3, sTradeAffineMap_GbaWireless, (void *) BG_SCREEN_ADDR(18), 0x100); + DmaCopy16Defvars(3, sGbaWireless_AffineTilemap, (void *) BG_SCREEN_ADDR(18), 0x100); } break; case 5: @@ -3198,20 +3244,20 @@ static void SetTradeSequenceBgGpuRegs(u8 state) sTradeData->texX = 64; sTradeData->texY = 92; sTradeData->sXY = 256; - sTradeData->unk_EA = 128; + sTradeData->gbaScale = 128; sTradeData->scrX = 120; sTradeData->scrY = 80; sTradeData->alpha = 0; - DmaCopyLarge16(3, sTradeAffine_Gba, (void *) BG_CHAR_ADDR(1), 0x2840, 0x1000); + DmaCopyLarge16(3, sGbaAffine_Gfx, (void *) BG_CHAR_ADDR(1), 0x2840, 0x1000); if (sTradeData->isCableTrade) { - DmaCopy16Defvars(3, sTradeAffineMap_GbaCable, (void *) BG_SCREEN_ADDR(18), 0x100); + DmaCopy16Defvars(3, sGbaCable_AffineTilemap, (void *) BG_SCREEN_ADDR(18), 0x100); } else { - DmaCopy16Defvars(3, sTradeAffineMap_GbaWireless, (void *) BG_SCREEN_ADDR(18), 0x100); + DmaCopy16Defvars(3, sGbaWireless_AffineTilemap, (void *) BG_SCREEN_ADDR(18), 0x100); } break; case 7: @@ -3225,19 +3271,19 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_TXT512x256); LoadPalette(gTradeGba2_Pal, 16, 0x60); DmaCopyLarge16(3, gTradeGba_Gfx, (void *) BG_CHAR_ADDR(1), 0x1420, 0x1000); - DmaCopy16Defvars(3, gUnknown_08331F60, (void *) BG_SCREEN_ADDR(18), 0x1000); + DmaCopy16Defvars(3, gTradePlatform_Tilemap, (void *) BG_SCREEN_ADDR(18), 0x1000); break; } } static void LoadTradeSequenceSpriteSheetsAndPalettes(void) { - LoadSpriteSheet(&sGlow1SpriteSheet); - LoadSpriteSheet(&sGlow2SpriteSheet); - LoadSpriteSheet(&sCableEndSpriteSheet); - LoadSpriteSheet(&sGbaScreenSpriteSheet); - LoadSpritePalette(&sMiscTradeSpritePalette); - LoadSpritePalette(&sGbaSpritePalette); + LoadSpriteSheet(&sSpriteSheet_LinkMonGlow); + LoadSpriteSheet(&sSpriteSheet_LinkMonShadow); + LoadSpriteSheet(&sSpriteSheet_CableEnd); + LoadSpriteSheet(&sSpriteSheet_GbaScreen); + LoadSpritePalette(&sSpritePalette_LinkMon); + LoadSpritePalette(&sSpritePalette_Gba); } // Buffers "[Pokemon] will be sent to [Trainer]" strings @@ -3266,7 +3312,7 @@ static void BufferTradeSceneStrings(void) } } -// returns TRUE if it was a link trade, FALSE if it was an in-game trade +// returns TRUE if it finished a link trade, FALSE if it finished an in-game trade or if sequence is still going static bool8 AnimateTradeSequence(void) { if (sTradeData->isCableTrade) @@ -3275,71 +3321,146 @@ static bool8 AnimateTradeSequence(void) return AnimateTradeSequenceWireless(); } +// Below are the states for the main switch in AnimateTradeSequenceCable and AnimateTradeSequenceWireless +// When AnimateTradeSequenceWireless has a unique version of a +// state used by AnimateTradeSequenceCable, it adds the below modifier +#define TS_WIRELESS_STATE 100 +enum { + TS_STATE_START, + TS_STATE_MON_SLIDE_IN, + // 2-9 unused + TS_STATE_SEND_MSG = 10, + TS_STATE_BYE_BYE, + TS_STATE_POKEBALL_DEPART, + TS_STATE_POKEBALL_DEPART_WAIT, + TS_STATE_FADE_OUT_TO_GBA_SEND, + // 15-19 unused + TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND = 20, + TS_STATE_FADE_IN_TO_GBA_SEND, + TS_STATE_WAIT_FADE_IN_TO_GBA_SEND, + TS_STATE_GBA_ZOOM_OUT, + TS_STATE_GBA_FLASH_SEND, + TS_STATE_GBA_STOP_FLASH_SEND, + TS_STATE_PAN_AWAY_GBA, + TS_STATE_CREATE_LINK_MON_LEAVING, + TS_STATE_LINK_MON_TRAVEL_OUT, + TS_STATE_FADE_OUT_TO_CROSSING, + TS_STATE_WAIT_FADE_OUT_TO_CROSSING, + TS_STATE_FADE_IN_TO_CROSSING, + TS_STATE_WAIT_FADE_IN_TO_CROSSING, + TS_STATE_CROSSING_LINK_MONS_ENTER, + TS_STATE_CROSSING_BLEND_WHITE_1, + TS_STATE_CROSSING_BLEND_WHITE_2, + TS_STATE_CROSSING_BLEND_WHITE_3, + TS_STATE_CROSSING_CREATE_MON_PICS, + TS_STATE_CROSSING_MON_PICS_MOVE, + TS_STATE_CROSSING_LINK_MONS_EXIT, + TS_STATE_CREATE_LINK_MON_ARRIVING, + TS_STATE_FADE_OUT_TO_GBA_RECV, + TS_STATE_WAIT_FADE_OUT_TO_GBA_RECV, + TS_STATE_LINK_MON_TRAVEL_IN, + TS_STATE_PAN_TO_GBA, + TS_STATE_DESTROY_LINK_MON, + TS_STATE_LINK_MON_ARRIVED_DELAY, + TS_STATE_MOVE_GBA_TO_CENTER, + TS_STATE_GBA_FLASH_RECV, + TS_STATE_UNUSED, + TS_STATE_GBA_STOP_FLASH_RECV, + TS_STATE_GBA_ZOOM_IN, + TS_STATE_FADE_OUT_TO_NEW_MON, + // 53-59 unused + TS_STATE_WAIT_FADE_OUT_TO_NEW_MON = 60, + TS_STATE_FADE_IN_TO_NEW_MON, + TS_STATE_WAIT_FADE_IN_TO_NEW_MON, + TS_STATE_POKEBALL_ARRIVE, + TS_STATE_FADE_POKEBALL_TO_NORMAL, + TS_STATE_POKEBALL_ARRIVE_WAIT, + TS_STATE_SHOW_NEW_MON, + TS_STATE_NEW_MON_MSG, + TS_STATE_TAKE_CARE_OF_MON, + TS_STATE_AFTER_NEW_MON_DELAY, + TS_STATE_CHECK_RIBBONS, + TS_STATE_END_LINK_TRADE, + TS_STATE_TRY_EVOLUTION, + TS_STATE_FADE_OUT_END, + TS_STATE_WAIT_FADE_OUT_END, + // Special states + TS_STATE_GBA_FLASH_SEND_WIRELESS = TS_STATE_GBA_FLASH_SEND + TS_WIRELESS_STATE, + TS_STATE_GBA_STOP_FLASH_SEND_WIRELESS, + TS_STATE_WAIT_WIRELESS_SIGNAL_SEND, + TS_STATE_PAN_TO_GBA_WIRELESS = TS_STATE_PAN_TO_GBA + TS_WIRELESS_STATE, + TS_STATE_DESTROY_LINK_MON_WIRELESS, + TS_STATE_WAIT_WIRELESS_SIGNAL_RECV, + TS_STATE_DELAY_FOR_MON_ANIM = 167, + TS_STATE_LINK_MON_TRAVEL_OFFSCREEN = 200, + TS_STATE_WAIT_FOR_MON_CRY = 267, +}; + static bool8 AnimateTradeSequenceCable(void) { u16 evoTarget; switch (sTradeData->state) { - case 0: - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].invisible = FALSE; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.x = -180; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; + case TS_STATE_START: + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 = -180; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; sTradeData->state++; sTradeData->cachedMapMusic = GetCurrentMapMusic(); PlayNewMapMusic(MUS_EVOLUTION); break; - case 1: + case TS_STATE_MON_SLIDE_IN: if (sTradeData->bg2hofs > 0) { - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.x += 3; + // Sliding + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 += 3; sTradeData->bg2hofs -= 3; } else { - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.x = 0; + // Pokémon has arrived onscreen + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 = 0; sTradeData->bg2hofs = 0; - sTradeData->state = 10; + sTradeData->state = TS_STATE_SEND_MSG; } break; - case 10: + case TS_STATE_SEND_MSG: StringExpandPlaceholders(gStringVar4, gText_XWillBeSentToY); DrawTextOnTradeWindow(0, gStringVar4, 0); if (sTradeData->monSpecies[TRADE_PLAYER] != SPECIES_EGG) - { PlayCry1(sTradeData->monSpecies[TRADE_PLAYER], 0); - } - sTradeData->state = 11; + sTradeData->state = TS_STATE_BYE_BYE; sTradeData->timer = 0; break; - case 11: + case TS_STATE_BYE_BYE: if (++sTradeData->timer == 80) { - sTradeData->pokeballSpriteId = CreateTradePokeballSprite(sTradeData->pokePicSpriteIdxs[0], gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); + sTradeData->releasePokeballSpriteId = CreateTradePokeballSprite(sTradeData->monSpriteIds[0], gSprites[sTradeData->monSpriteIds[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); sTradeData->state++; StringExpandPlaceholders(gStringVar4, gText_ByeByeVar1); DrawTextOnTradeWindow(0, gStringVar4, 0); } break; - case 12: - if (gSprites[sTradeData->pokeballSpriteId].callback == SpriteCallbackDummy) + case TS_STATE_POKEBALL_DEPART: + if (gSprites[sTradeData->releasePokeballSpriteId].callback == SpriteCallbackDummy) { - sTradeData->unk_D3 = CreateSprite(&gSpriteTemplate_8338D28, 120, 32, 0); - gSprites[sTradeData->unk_D3].callback = sub_807E5D8; - DestroySprite(&gSprites[sTradeData->pokeballSpriteId]); + sTradeData->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, 32, 0); + gSprites[sTradeData->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballDepart; + DestroySprite(&gSprites[sTradeData->releasePokeballSpriteId]); sTradeData->state++; } break; - case 13: + case TS_STATE_POKEBALL_DEPART_WAIT: // The game waits here for the sprite to finish its animation sequence. break; - case 14: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sTradeData->state = 20; + case TS_STATE_FADE_OUT_TO_GBA_SEND: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND; break; - case 20: + case TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND: if (!gPaletteFade.active) { SetTradeSequenceBgGpuRegs(4); @@ -3348,42 +3469,40 @@ static bool8 AnimateTradeSequenceCable(void) sTradeData->state++; } break; - case 21: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); + case TS_STATE_FADE_IN_TO_GBA_SEND: + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); sTradeData->state++; break; - case 22: + case TS_STATE_WAIT_FADE_IN_TO_GBA_SEND: if (!gPaletteFade.active) - { - sTradeData->state = 23; - } + sTradeData->state = TS_STATE_GBA_ZOOM_OUT; break; - case 23: - if (sTradeData->unk_EA > 0x100) + case TS_STATE_GBA_ZOOM_OUT: + if (sTradeData->gbaScale > 0x100) { - sTradeData->unk_EA -= 0x34; + sTradeData->gbaScale -= 0x34; } else { SetTradeSequenceBgGpuRegs(1); - sTradeData->unk_EA = 0x80; + sTradeData->gbaScale = 0x80; sTradeData->state++; sTradeData->timer = 0; } - sTradeData->sXY = 0x8000 / sTradeData->unk_EA; + sTradeData->sXY = 0x8000 / sTradeData->gbaScale; break; - case 24: + case TS_STATE_GBA_FLASH_SEND: if (++sTradeData->timer > 20) { SetTradeBGAffine(); - sTradeData->unk_91 = CreateSprite(&gSpriteTemplate_8338E74, 120, 80, 0); + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); sTradeData->state++; } break; - case 25: - if (gSprites[sTradeData->unk_91].animEnded) + case TS_STATE_GBA_STOP_FLASH_SEND: + if (gSprites[sTradeData->connectionSpriteId2].animEnded) { - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2); @@ -3391,192 +3510,183 @@ static bool8 AnimateTradeSequenceCable(void) sTradeData->state++; } break; - case 26: + case TS_STATE_PAN_AWAY_GBA: if (--sTradeData->bg1vofs == 316) - { sTradeData->state++; - } + if (sTradeData->bg1vofs == 328) - { - sTradeData->unk_92 = CreateSprite(&gSpriteTemplate_8338DFC, 128, 65, 0); - } + sTradeData->cableEndSpriteId = CreateSprite(&sSpriteTemplate_CableEnd, 128, 65, 0); break; - case 27: - sTradeData->unk_90 = CreateSprite(&gUnknown_08338D88, 128, 80, 3); - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 128, 80, 0); - StartSpriteAnim(&gSprites[sTradeData->unk_91], 1); + case TS_STATE_CREATE_LINK_MON_LEAVING: + sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 128, 80, 3); + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 128, 80, 0); + StartSpriteAnim(&gSprites[sTradeData->connectionSpriteId2], ANIM_LINKMON_SMALL); sTradeData->state++; break; - case 28: + case TS_STATE_LINK_MON_TRAVEL_OUT: if ((sTradeData->bg1vofs -= 2) == 166) - { - sTradeData->state = 200; - } + sTradeData->state = TS_STATE_LINK_MON_TRAVEL_OFFSCREEN; + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); break; - case 200: - gSprites[sTradeData->unk_90].pos1.y -= 2; - gSprites[sTradeData->unk_91].pos1.y -= 2; - if (gSprites[sTradeData->unk_90].pos1.y < -8) - { - sTradeData->state = 29; - } + case TS_STATE_LINK_MON_TRAVEL_OFFSCREEN: + gSprites[sTradeData->connectionSpriteId1].y -= 2; + gSprites[sTradeData->connectionSpriteId2].y -= 2; + if (gSprites[sTradeData->connectionSpriteId1].y < -8) + sTradeData->state = TS_STATE_FADE_OUT_TO_CROSSING; break; - case 29: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); - sTradeData->state = 30; + case TS_STATE_FADE_OUT_TO_CROSSING: + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); + sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_CROSSING; break; - case 30: + case TS_STATE_WAIT_FADE_OUT_TO_CROSSING: if (!gPaletteFade.active) { - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); SetTradeSequenceBgGpuRegs(2); sTradeData->state++; } break; - case 31: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - sTradeData->unk_90 = CreateSprite(&sGlowBallSpriteTemplate, 111, 170, 0); - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 129, -10, 0); + case TS_STATE_FADE_IN_TO_CROSSING: + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); + sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 111, 170, 0); + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 129, -10, 0); sTradeData->state++; break; - case 32: + case TS_STATE_WAIT_FADE_IN_TO_CROSSING: if (!gPaletteFade.active) { PlaySE(SE_WARP_OUT); sTradeData->state++; } - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; + gSprites[sTradeData->connectionSpriteId1].y2 -= 3; + gSprites[sTradeData->connectionSpriteId2].y2 += 3; break; - case 33: - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y <= -90) + case TS_STATE_CROSSING_LINK_MONS_ENTER: + gSprites[sTradeData->connectionSpriteId1].y2 -= 3; + gSprites[sTradeData->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeData->connectionSpriteId1].y2 <= -90) { - gSprites[sTradeData->unk_90].data[1] = 1; - gSprites[sTradeData->unk_91].data[1] = 1; + gSprites[sTradeData->connectionSpriteId1].data[1] = 1; + gSprites[sTradeData->connectionSpriteId2].data[1] = 1; sTradeData->state++; } break; - case 34: + case TS_STATE_CROSSING_BLEND_WHITE_1: BlendPalettes(0x1, 16, RGB_WHITEALPHA); sTradeData->state++; break; - case 35: + case TS_STATE_CROSSING_BLEND_WHITE_2: BlendPalettes(0x1, 0, RGB_WHITEALPHA); sTradeData->state++; break; - case 36: + case TS_STATE_CROSSING_BLEND_WHITE_3: BlendPalettes(0x1, 16, RGB_WHITEALPHA); sTradeData->state++; break; - case 37: + case TS_STATE_CROSSING_CREATE_MON_PICS: if (!IsMonSpriteNotFlipped(sTradeData->monSpecies[TRADE_PLAYER])) { - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].affineAnims = gSpriteAffineAnimTable_8338ECC; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; - CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]], SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); - StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]], 0); + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].affineAnims = sAffineAnims_CrossingMonPics; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; + CalcCenterToCornerVec(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); + StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], 0); } else { - StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]], 0); + StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], 0); } - StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]], 0); - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos1.x = 60; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos1.x = 180; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos1.y = 192; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos1.y = -32; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].invisible = FALSE; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].invisible = FALSE; + StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]], 0); + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x = 60; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x = 180; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y = 192; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y = -32; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].invisible = FALSE; sTradeData->state++; break; - case 38: - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y -= 3; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y += 3; - if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y >= -163) + case TS_STATE_CROSSING_MON_PICS_MOVE: + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 -= 3; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y2 += 3; + if (gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 < -DISPLAY_HEIGHT + && gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 >= -DISPLAY_HEIGHT - 3) { PlaySE(SE_WARP_IN); } - if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -222) + if (gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 < -222) { - gSprites[sTradeData->unk_90].data[1] = 0; - gSprites[sTradeData->unk_91].data[1] = 0; + gSprites[sTradeData->connectionSpriteId1].data[1] = 0; + gSprites[sTradeData->connectionSpriteId2].data[1] = 0; sTradeData->state++; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].invisible = TRUE; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].invisible = TRUE; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = TRUE; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].invisible = TRUE; BlendPalettes(0x1, 0, RGB_WHITEALPHA); } break; - case 39: - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y <= -222) + case TS_STATE_CROSSING_LINK_MONS_EXIT: + gSprites[sTradeData->connectionSpriteId1].y2 -= 3; + gSprites[sTradeData->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeData->connectionSpriteId1].y2 <= -222) { - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); sTradeData->state++; - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); } break; - case 40: + case TS_STATE_CREATE_LINK_MON_ARRIVING: if (!gPaletteFade.active) { sTradeData->state++; SetTradeSequenceBgGpuRegs(1); sTradeData->bg1vofs = 166; - sTradeData->unk_90 = CreateSprite(&gUnknown_08338D88, 128, -20, 3); - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 128, -20, 0); - StartSpriteAnim(&gSprites[sTradeData->unk_91], 1); + sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 128, -20, 3); + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 128, -20, 0); + StartSpriteAnim(&gSprites[sTradeData->connectionSpriteId2], ANIM_LINKMON_SMALL); } break; - case 41: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); + case TS_STATE_FADE_OUT_TO_GBA_RECV: + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); sTradeData->state++; break; - case 42: + case TS_STATE_WAIT_FADE_OUT_TO_GBA_RECV: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); if (!gPaletteFade.active) + sTradeData->state++; + break; + case TS_STATE_LINK_MON_TRAVEL_IN: + gSprites[sTradeData->connectionSpriteId1].y2 += 3; + gSprites[sTradeData->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeData->connectionSpriteId1].y2 + gSprites[sTradeData->connectionSpriteId1].y == 64) { sTradeData->state++; } break; - case 43: - gSprites[sTradeData->unk_90].pos2.y += 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y + gSprites[sTradeData->unk_90].pos1.y == 64) - { - sTradeData->state++; - } - break; - case 44: + case TS_STATE_PAN_TO_GBA: if ((sTradeData->bg1vofs += 2) > 316) { sTradeData->bg1vofs = 316; sTradeData->state++; } break; - case 45: - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + case TS_STATE_DESTROY_LINK_MON: + DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); sTradeData->state++; sTradeData->timer = 0; break; - case 46: + case TS_STATE_LINK_MON_ARRIVED_DELAY: if (++sTradeData->timer == 10) - { sTradeData->state++; - } break; - case 47: + case TS_STATE_MOVE_GBA_TO_CENTER: if (++sTradeData->bg1vofs > 348) { sTradeData->bg1vofs = 348; @@ -3584,41 +3694,41 @@ static bool8 AnimateTradeSequenceCable(void) } if (sTradeData->bg1vofs == 328 && sTradeData->isCableTrade) { - sTradeData->unk_92 = CreateSprite(&gSpriteTemplate_8338DFC, 128, 65, 0); - gSprites[sTradeData->unk_92].callback = sub_807AAE0; + sTradeData->cableEndSpriteId = CreateSprite(&sSpriteTemplate_CableEnd, 128, 65, 0); + gSprites[sTradeData->cableEndSpriteId].callback = SpriteCB_CableEndReceiving; } break; - case 48: - sTradeData->unk_91 = CreateSprite(&gSpriteTemplate_8338E74, 120, 80, 0); - sTradeData->state = 50; + case TS_STATE_GBA_FLASH_RECV: + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); + sTradeData->state = TS_STATE_GBA_STOP_FLASH_RECV; break; - case 50: - if (gSprites[sTradeData->unk_91].animEnded) + case TS_STATE_GBA_STOP_FLASH_RECV: + if (gSprites[sTradeData->connectionSpriteId2].animEnded) { - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); SetTradeSequenceBgGpuRegs(6); sTradeData->state++; PlaySE(SE_M_SAND_ATTACK); } break; - case 51: - if (sTradeData->unk_EA < 0x400) + case TS_STATE_GBA_ZOOM_IN: + if (sTradeData->gbaScale < 0x400) { - sTradeData->unk_EA += 0x34; + sTradeData->gbaScale += 0x34; } else { - sTradeData->unk_EA = 0x400; + sTradeData->gbaScale = 0x400; sTradeData->state++; } - sTradeData->sXY = 0x8000 / sTradeData->unk_EA; + sTradeData->sXY = 0x8000 / sTradeData->gbaScale; break; - case 52: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sTradeData->state = 60; + case TS_STATE_FADE_OUT_TO_NEW_MON: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_NEW_MON; break; - case 60: + case TS_STATE_WAIT_FADE_OUT_TO_NEW_MON: if (!gPaletteFade.active) { SetTradeSequenceBgGpuRegs(5); @@ -3627,54 +3737,52 @@ static bool8 AnimateTradeSequenceCable(void) sTradeData->state++; } break; - case 61: + case TS_STATE_FADE_IN_TO_NEW_MON: gPaletteFade.bufferTransferDisabled = FALSE; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sTradeData->state++; break; - case 62: + case TS_STATE_WAIT_FADE_IN_TO_NEW_MON: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); if (!gPaletteFade.active) - { sTradeData->state++; - } break; - case 63: - sTradeData->unk_D3 = CreateSprite(&gSpriteTemplate_8338D28, 120, -8, 0); - gSprites[sTradeData->unk_D3].data[3] = 74; - gSprites[sTradeData->unk_D3].callback = sub_807E6AC; - StartSpriteAnim(&gSprites[sTradeData->unk_D3], 1); - StartSpriteAffineAnim(&gSprites[sTradeData->unk_D3], 2); - BlendPalettes(1 << (16 + gSprites[sTradeData->unk_D3].oam.paletteNum), 16, RGB_WHITEALPHA); + case TS_STATE_POKEBALL_ARRIVE: + sTradeData->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, -8, 0); + gSprites[sTradeData->bouncingPokeballSpriteId].data[3] = 74; + gSprites[sTradeData->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballArrive; + StartSpriteAnim(&gSprites[sTradeData->bouncingPokeballSpriteId], 1); + StartSpriteAffineAnim(&gSprites[sTradeData->bouncingPokeballSpriteId], 2); + BlendPalettes(1 << (16 + gSprites[sTradeData->bouncingPokeballSpriteId].oam.paletteNum), 16, RGB_WHITEALPHA); sTradeData->state++; sTradeData->timer = 0; break; - case 64: - BeginNormalPaletteFade(1 << (16 + gSprites[sTradeData->unk_D3].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); + case TS_STATE_FADE_POKEBALL_TO_NORMAL: + BeginNormalPaletteFade(1 << (16 + gSprites[sTradeData->bouncingPokeballSpriteId].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); sTradeData->state++; break; - case 65: - if (gSprites[sTradeData->unk_D3].callback == SpriteCallbackDummy) + case TS_STATE_POKEBALL_ARRIVE_WAIT: + if (gSprites[sTradeData->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[3], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]); sTradeData->state++; } break; - case 66: - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos1.x = 120; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos1.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PARTNER]].y_offset + 60; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.x = 0; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y = 0; - StartSpriteAnim(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]], 0); - CreatePokeballSpriteToReleaseMon(sTradeData->pokePicSpriteIdxs[TRADE_PARTNER], gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].oam.paletteNum, 120, 84, 2, 1, 20, 0xFFFFF, sTradeData->monSpecies[TRADE_PARTNER]); - FreeSpriteOamMatrix(&gSprites[sTradeData->unk_D3]); - DestroySprite(&gSprites[sTradeData->unk_D3]); + case TS_STATE_SHOW_NEW_MON: + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x = 120; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PARTNER]].y_offset + 60; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x2 = 0; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y2 = 0; + StartSpriteAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]], 0); + CreatePokeballSpriteToReleaseMon(sTradeData->monSpriteIds[TRADE_PARTNER], gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].oam.paletteNum, 120, 84, 2, 1, 20, 0xFFFFF, sTradeData->monSpecies[TRADE_PARTNER]); + FreeSpriteOamMatrix(&gSprites[sTradeData->bouncingPokeballSpriteId]); + DestroySprite(&gSprites[sTradeData->bouncingPokeballSpriteId]); sTradeData->state++; break; - case 67: + case TS_STATE_NEW_MON_MSG: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | @@ -3682,28 +3790,24 @@ static bool8 AnimateTradeSequenceCable(void) DISPCNT_OBJ_ON); StringExpandPlaceholders(gStringVar4, gText_XSentOverY); DrawTextOnTradeWindow(0, gStringVar4, 0); - sTradeData->state = 167; + sTradeData->state = TS_STATE_DELAY_FOR_MON_ANIM; sTradeData->timer = 0; break; - // 167 and 267 are extra cases added in for animations - case 167: + case TS_STATE_DELAY_FOR_MON_ANIM: if (++sTradeData->timer > 60) { - sTradeData->state = 267; + sTradeData->state = TS_STATE_WAIT_FOR_MON_CRY; sTradeData->timer = 0; } break; - case 267: + case TS_STATE_WAIT_FOR_MON_CRY: if (IsCryFinished()) - { - sTradeData->state = 68; - } + sTradeData->state = TS_STATE_TAKE_CARE_OF_MON; break; - case 68: + case TS_STATE_TAKE_CARE_OF_MON: if (++sTradeData->timer == 10) - { PlayFanfare(MUS_EVOLVED); - } + if (sTradeData->timer == 250) { sTradeData->state++; @@ -3712,17 +3816,15 @@ static bool8 AnimateTradeSequenceCable(void) sTradeData->timer = 0; } break; - case 69: + case TS_STATE_AFTER_NEW_MON_DELAY: if (++sTradeData->timer == 60) - { sTradeData->state++; - } break; - case 70: + case TS_STATE_CHECK_RIBBONS: CheckPartnersMonForRibbons(); sTradeData->state++; break; - case 71: + case TS_STATE_END_LINK_TRADE: if (sTradeData->isLinkTrade) { return TRUE; @@ -3732,21 +3834,21 @@ static bool8 AnimateTradeSequenceCable(void) sTradeData->state++; } break; - case 72: // Only if in-game trade + case TS_STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution TradeMons(gSpecialVar_0x8005, 0); gCB2_AfterEvolution = CB2_UpdateInGameTrade; - evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], TRUE, ITEM_NONE); + evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE); if (evoTarget != SPECIES_NONE) { - TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->pokePicSpriteIdxs[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); + TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); } sTradeData->state++; break; - case 73: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + case TS_STATE_FADE_OUT_END: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sTradeData->state++; break; - case 74: + case TS_STATE_WAIT_FADE_OUT_END: if (!gPaletteFade.active) { PlayNewMapMusic(sTradeData->cachedMapMusic); @@ -3773,65 +3875,63 @@ static bool8 AnimateTradeSequenceWireless(void) switch (sTradeData->state) { - case 0: - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].invisible = FALSE; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.x = -180; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; + case TS_STATE_START: + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 = -180; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; sTradeData->state++; sTradeData->cachedMapMusic = GetCurrentMapMusic(); PlayNewMapMusic(MUS_EVOLUTION); break; - case 1: + case TS_STATE_MON_SLIDE_IN: if (sTradeData->bg2hofs > 0) { - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.x += 3; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 += 3; sTradeData->bg2hofs -= 3; } else { - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.x = 0; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 = 0; sTradeData->bg2hofs = 0; - sTradeData->state = 10; + sTradeData->state = TS_STATE_SEND_MSG; } break; - case 10: + case TS_STATE_SEND_MSG: StringExpandPlaceholders(gStringVar4, gText_XWillBeSentToY); DrawTextOnTradeWindow(0, gStringVar4, 0); if (sTradeData->monSpecies[TRADE_PLAYER] != SPECIES_EGG) - { PlayCry1(sTradeData->monSpecies[TRADE_PLAYER], 0); - } - sTradeData->state = 11; + sTradeData->state = TS_STATE_BYE_BYE; sTradeData->timer = 0; break; - case 11: + case TS_STATE_BYE_BYE: if (++sTradeData->timer == 80) { - sTradeData->pokeballSpriteId = CreateTradePokeballSprite(sTradeData->pokePicSpriteIdxs[0], gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); + sTradeData->releasePokeballSpriteId = CreateTradePokeballSprite(sTradeData->monSpriteIds[0], gSprites[sTradeData->monSpriteIds[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); sTradeData->state++; StringExpandPlaceholders(gStringVar4, gText_ByeByeVar1); DrawTextOnTradeWindow(0, gStringVar4, 0); } break; - case 12: - if (gSprites[sTradeData->pokeballSpriteId].callback == SpriteCallbackDummy) + case TS_STATE_POKEBALL_DEPART: + if (gSprites[sTradeData->releasePokeballSpriteId].callback == SpriteCallbackDummy) { - sTradeData->unk_D3 = CreateSprite(&gSpriteTemplate_8338D28, 120, 32, 0); - gSprites[sTradeData->unk_D3].callback = sub_807E5D8; - DestroySprite(&gSprites[sTradeData->pokeballSpriteId]); + sTradeData->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, 32, 0); + gSprites[sTradeData->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballDepart; + DestroySprite(&gSprites[sTradeData->releasePokeballSpriteId]); sTradeData->state++; } break; - case 13: + case TS_STATE_POKEBALL_DEPART_WAIT: // The game waits here for the sprite to finish its animation sequence. break; - case 14: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sTradeData->state = 20; + case TS_STATE_FADE_OUT_TO_GBA_SEND: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND; break; - case 20: + case TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND: if (!gPaletteFade.active) { SetTradeSequenceBgGpuRegs(4); @@ -3840,189 +3940,185 @@ static bool8 AnimateTradeSequenceWireless(void) sTradeData->state++; } break; - case 21: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); + case TS_STATE_FADE_IN_TO_GBA_SEND: + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); sTradeData->state++; break; - case 22: + case TS_STATE_WAIT_FADE_IN_TO_GBA_SEND: if (!gPaletteFade.active) - { - sTradeData->state = 23; - } + sTradeData->state = TS_STATE_GBA_ZOOM_OUT; break; - case 23: - if (sTradeData->unk_EA > 0x100) + case TS_STATE_GBA_ZOOM_OUT: + if (sTradeData->gbaScale > 0x100) { - sTradeData->unk_EA -= 0x34; + sTradeData->gbaScale -= 0x34; } else { SetTradeSequenceBgGpuRegs(1); - sTradeData->unk_EA = 0x80; - sTradeData->state = 124; + sTradeData->gbaScale = 0x80; + sTradeData->state = TS_STATE_GBA_FLASH_SEND_WIRELESS; sTradeData->timer = 0; } - sTradeData->sXY = 0x8000 / sTradeData->unk_EA; + sTradeData->sXY = 0x8000 / sTradeData->gbaScale; break; - case 124: + case TS_STATE_GBA_FLASH_SEND_WIRELESS: if (++sTradeData->timer > 20) { SetTradeSequenceBgGpuRegs(3); - sTradeData->unk_91 = CreateSprite(&gSpriteTemplate_8338E8C, 120, 80, 0); + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Short, 120, 80, 0); sTradeData->state++; } break; - case 125: - if (gSprites[sTradeData->unk_91].animEnded) + case TS_STATE_GBA_STOP_FLASH_SEND_WIRELESS: + if (gSprites[sTradeData->connectionSpriteId2].animEnded) { - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG2); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 4)); + + // Start wireless signal effect CreateTask(Task_AnimateWirelessSignal, 5); sTradeData->state++; } break; - case 126: + case TS_STATE_WAIT_WIRELESS_SIGNAL_SEND: if (!FuncIsActiveTask(Task_AnimateWirelessSignal)) - { - sTradeData->state = 26; - } + sTradeData->state = TS_STATE_PAN_AWAY_GBA; break; - case 26: + case TS_STATE_PAN_AWAY_GBA: if (--sTradeData->bg1vofs == 316) - { sTradeData->state++; - } break; - case 27: - sTradeData->unk_90 = CreateSprite(&gUnknown_08338D88, 120, 80, 3); - gSprites[sTradeData->unk_90].callback = sub_807AA4C; - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 120, 80, 0); - StartSpriteAnim(&gSprites[sTradeData->unk_91], 1); + case TS_STATE_CREATE_LINK_MON_LEAVING: + sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 120, 80, 3); + gSprites[sTradeData->connectionSpriteId1].callback = SpriteCB_LinkMonGlowWireless; + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 120, 80, 0); + StartSpriteAnim(&gSprites[sTradeData->connectionSpriteId2], ANIM_LINKMON_SMALL); sTradeData->state++; break; - case 28: + case TS_STATE_LINK_MON_TRAVEL_OUT: if ((sTradeData->bg1vofs -= 3) == 166) - { - sTradeData->state = 200; - } + sTradeData->state = TS_STATE_LINK_MON_TRAVEL_OFFSCREEN; + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); break; - case 200: - gSprites[sTradeData->unk_90].pos1.y -= 2; - gSprites[sTradeData->unk_91].pos1.y -= 2; - if (gSprites[sTradeData->unk_90].pos1.y < -8) + case TS_STATE_LINK_MON_TRAVEL_OFFSCREEN: + gSprites[sTradeData->connectionSpriteId1].y -= 2; + gSprites[sTradeData->connectionSpriteId2].y -= 2; + if (gSprites[sTradeData->connectionSpriteId1].y < -8) { - sTradeData->state = 29; + sTradeData->state = TS_STATE_FADE_OUT_TO_CROSSING; } break; - case 29: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); - sTradeData->state = 30; + case TS_STATE_FADE_OUT_TO_CROSSING: + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); + sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_CROSSING; break; - case 30: + case TS_STATE_WAIT_FADE_OUT_TO_CROSSING: if (!gPaletteFade.active) { - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); SetTradeSequenceBgGpuRegs(2); sTradeData->state++; } break; - case 31: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); - sTradeData->unk_90 = CreateSprite(&sGlowBallSpriteTemplate, 111, 170, 0); - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 129, -10, 0); + case TS_STATE_FADE_IN_TO_CROSSING: + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); + sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 111, 170, 0); + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 129, -10, 0); sTradeData->state++; break; - case 32: + case TS_STATE_WAIT_FADE_IN_TO_CROSSING: if (!gPaletteFade.active) { PlaySE(SE_WARP_OUT); sTradeData->state++; } - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; + gSprites[sTradeData->connectionSpriteId1].y2 -= 3; + gSprites[sTradeData->connectionSpriteId2].y2 += 3; break; - case 33: - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y <= -90) + case TS_STATE_CROSSING_LINK_MONS_ENTER: + gSprites[sTradeData->connectionSpriteId1].y2 -= 3; + gSprites[sTradeData->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeData->connectionSpriteId1].y2 <= -90) { - gSprites[sTradeData->unk_90].data[1] = 1; - gSprites[sTradeData->unk_91].data[1] = 1; + gSprites[sTradeData->connectionSpriteId1].data[1] = 1; + gSprites[sTradeData->connectionSpriteId2].data[1] = 1; sTradeData->state++; - CreateTask(c3_0805465C, 5); + CreateTask(Task_NarrowWindowForCrossing_Wireless, 5); } break; - case 34: + case TS_STATE_CROSSING_BLEND_WHITE_1: BlendPalettes(0x8, 16, RGB_WHITEALPHA); sTradeData->state++; break; - case 35: + case TS_STATE_CROSSING_BLEND_WHITE_2: BlendPalettes(0x8, 16, RGB_WHITEALPHA); sTradeData->state++; break; - case 36: + case TS_STATE_CROSSING_BLEND_WHITE_3: BlendPalettes(0x8, 16, RGB_WHITEALPHA); sTradeData->state++; break; - case 37: + case TS_STATE_CROSSING_CREATE_MON_PICS: if (!IsMonSpriteNotFlipped(sTradeData->monSpecies[TRADE_PLAYER])) { - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].affineAnims = gSpriteAffineAnimTable_8338ECC; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; - CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]], SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); - StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]], 0); + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].affineAnims = sAffineAnims_CrossingMonPics; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; + CalcCenterToCornerVec(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); + StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], 0); } else { - StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]], 0); + StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], 0); } - StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]], 0); - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos1.x = 40; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos1.x = 200; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos1.y = 192; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos1.y = -32; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].invisible = FALSE; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].invisible = FALSE; + StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]], 0); + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x = 40; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x = 200; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y = 192; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y = -32; + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].invisible = FALSE; sTradeData->state++; break; - case 38: - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y -= 3; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y += 3; - if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y >= -163) + case TS_STATE_CROSSING_MON_PICS_MOVE: + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 -= 3; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y2 += 3; + if (gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 < -DISPLAY_HEIGHT + && gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 >= -DISPLAY_HEIGHT - 3) { PlaySE(SE_WARP_IN); } - if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -222) + if (gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 < -222) { - gSprites[sTradeData->unk_90].data[1] = 0; - gSprites[sTradeData->unk_91].data[1] = 0; + gSprites[sTradeData->connectionSpriteId1].data[1] = 0; + gSprites[sTradeData->connectionSpriteId2].data[1] = 0; sTradeData->state++; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].invisible = TRUE; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].invisible = TRUE; - CreateTask(sub_807F39C, 5); + gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = TRUE; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].invisible = TRUE; + CreateTask(Task_NarrowWindowForCrossing_Cable, 5); } break; - case 39: - gSprites[sTradeData->unk_90].pos2.y -= 3; - gSprites[sTradeData->unk_91].pos2.y += 3; - if (gSprites[sTradeData->unk_90].pos2.y <= -222) + case TS_STATE_CROSSING_LINK_MONS_EXIT: + gSprites[sTradeData->connectionSpriteId1].y2 -= 3; + gSprites[sTradeData->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeData->connectionSpriteId1].y2 <= -222) { - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); sTradeData->state++; - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); } break; - case 40: + case TS_STATE_CREATE_LINK_MON_ARRIVING: if (!gPaletteFade.active) { sTradeData->state++; @@ -4030,36 +4126,34 @@ static bool8 AnimateTradeSequenceWireless(void) sTradeData->bg1vofs = 166; SetTradeSequenceBgGpuRegs(3); sTradeData->bg2vofs = 412; - sTradeData->unk_90 = CreateSprite(&gUnknown_08338D88, 120, -20, 3); - gSprites[sTradeData->unk_90].callback = sub_807AA4C; - sTradeData->unk_91 = CreateSprite(&sGlowBallSpriteTemplate, 120, -20, 0); - StartSpriteAnim(&gSprites[sTradeData->unk_91], 1); + sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 120, -20, 3); + gSprites[sTradeData->connectionSpriteId1].callback = SpriteCB_LinkMonGlowWireless; + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 120, -20, 0); + StartSpriteAnim(&gSprites[sTradeData->connectionSpriteId2], ANIM_LINKMON_SMALL); } break; - case 41: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); + case TS_STATE_FADE_OUT_TO_GBA_RECV: + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); sTradeData->state++; break; - case 42: + case TS_STATE_WAIT_FADE_OUT_TO_GBA_RECV: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); if (!gPaletteFade.active) - { sTradeData->state++; - } break; - case 43: - gSprites[sTradeData->unk_90].pos2.y += 4; - gSprites[sTradeData->unk_91].pos2.y += 4; - if (gSprites[sTradeData->unk_90].pos2.y + gSprites[sTradeData->unk_90].pos1.y == 64) + case TS_STATE_LINK_MON_TRAVEL_IN: + gSprites[sTradeData->connectionSpriteId1].y2 += 4; + gSprites[sTradeData->connectionSpriteId2].y2 += 4; + if (gSprites[sTradeData->connectionSpriteId1].y2 + gSprites[sTradeData->connectionSpriteId1].y == 64) { - sTradeData->state = 144; + sTradeData->state = TS_STATE_PAN_TO_GBA_WIRELESS; sTradeData->timer = 0; } break; - case 144: + case TS_STATE_PAN_TO_GBA_WIRELESS: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | @@ -4078,62 +4172,60 @@ static bool8 AnimateTradeSequenceWireless(void) sTradeData->state++; } break; - case 145: - DestroySprite(&gSprites[sTradeData->unk_90]); - DestroySprite(&gSprites[sTradeData->unk_91]); + case TS_STATE_DESTROY_LINK_MON_WIRELESS: + DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); sTradeData->state++; sTradeData->timer = 0; break; - case 146: + case TS_STATE_WAIT_WIRELESS_SIGNAL_RECV: if (!FuncIsActiveTask(Task_AnimateWirelessSignal)) { - sTradeData->state = 46; + sTradeData->state = TS_STATE_LINK_MON_ARRIVED_DELAY; sTradeData->timer = 0; } break; - case 46: + case TS_STATE_LINK_MON_ARRIVED_DELAY: if (++sTradeData->timer == 10) - { sTradeData->state++; - } break; - case 47: + case TS_STATE_MOVE_GBA_TO_CENTER: if (++sTradeData->bg1vofs > 348) { sTradeData->bg1vofs = 348; sTradeData->state++; } break; - case 48: - sTradeData->unk_91 = CreateSprite(&gSpriteTemplate_8338E74, 120, 80, 0); - sTradeData->state = 50; + case TS_STATE_GBA_FLASH_RECV: + sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); + sTradeData->state = TS_STATE_GBA_STOP_FLASH_RECV; break; - case 50: - if (gSprites[sTradeData->unk_91].animEnded) + case TS_STATE_GBA_STOP_FLASH_RECV: + if (gSprites[sTradeData->connectionSpriteId2].animEnded) { - DestroySprite(&gSprites[sTradeData->unk_91]); + DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); SetTradeSequenceBgGpuRegs(6); sTradeData->state++; PlaySE(SE_M_SAND_ATTACK); } break; - case 51: - if (sTradeData->unk_EA < 0x400) + case TS_STATE_GBA_ZOOM_IN: + if (sTradeData->gbaScale < 0x400) { - sTradeData->unk_EA += 0x34; + sTradeData->gbaScale += 0x34; } else { - sTradeData->unk_EA = 0x400; + sTradeData->gbaScale = 0x400; sTradeData->state++; } - sTradeData->sXY = 0x8000 / sTradeData->unk_EA; + sTradeData->sXY = 0x8000 / sTradeData->gbaScale; break; - case 52: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sTradeData->state = 60; + case TS_STATE_FADE_OUT_TO_NEW_MON: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_NEW_MON; break; - case 60: + case TS_STATE_WAIT_FADE_OUT_TO_NEW_MON: if (!gPaletteFade.active) { SetTradeSequenceBgGpuRegs(5); @@ -4142,54 +4234,55 @@ static bool8 AnimateTradeSequenceWireless(void) sTradeData->state++; } break; - case 61: + case TS_STATE_FADE_IN_TO_NEW_MON: gPaletteFade.bufferTransferDisabled = FALSE; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sTradeData->state++; break; - case 62: + case TS_STATE_WAIT_FADE_IN_TO_NEW_MON: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); if (!gPaletteFade.active) - { sTradeData->state++; - } break; - case 63: - sTradeData->unk_D3 = CreateSprite(&gSpriteTemplate_8338D28, 120, -8, 0); - gSprites[sTradeData->unk_D3].data[3] = 74; - gSprites[sTradeData->unk_D3].callback = sub_807E6AC; - StartSpriteAnim(&gSprites[sTradeData->unk_D3], 1); - StartSpriteAffineAnim(&gSprites[sTradeData->unk_D3], 2); - BlendPalettes(1 << (16 + gSprites[sTradeData->unk_D3].oam.paletteNum), 16, RGB_WHITEALPHA); + case TS_STATE_POKEBALL_ARRIVE: + sTradeData->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, -8, 0); + gSprites[sTradeData->bouncingPokeballSpriteId].data[3] = 74; + gSprites[sTradeData->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballArrive; + StartSpriteAnim(&gSprites[sTradeData->bouncingPokeballSpriteId], 1); + StartSpriteAffineAnim(&gSprites[sTradeData->bouncingPokeballSpriteId], 2); + BlendPalettes(1 << (16 + gSprites[sTradeData->bouncingPokeballSpriteId].oam.paletteNum), 16, RGB_WHITEALPHA); sTradeData->state++; sTradeData->timer = 0; break; - case 64: - BeginNormalPaletteFade(1 << (16 + gSprites[sTradeData->unk_D3].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); + case TS_STATE_FADE_POKEBALL_TO_NORMAL: + BeginNormalPaletteFade(1 << (16 + gSprites[sTradeData->bouncingPokeballSpriteId].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); sTradeData->state++; break; - case 65: - if (gSprites[sTradeData->unk_D3].callback == SpriteCallbackDummy) + case TS_STATE_POKEBALL_ARRIVE_WAIT: + if (gSprites[sTradeData->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) { - HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[3], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]); + HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], + gMonSpritesGfxPtr->sprites.ptr[3], + sTradeData->monSpecies[TRADE_PARTNER], + sTradeData->monPersonalities[TRADE_PARTNER]); sTradeData->state++; } break; - case 66: - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos1.x = 120; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos1.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PARTNER]].y_offset + 60; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.x = 0; - gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y = 0; - StartSpriteAnim(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]], 0); - CreatePokeballSpriteToReleaseMon(sTradeData->pokePicSpriteIdxs[TRADE_PARTNER], gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].oam.paletteNum, 120, 84, 2, 1, 20, 0xFFFFF, sTradeData->monSpecies[TRADE_PARTNER]); - FreeSpriteOamMatrix(&gSprites[sTradeData->unk_D3]); - DestroySprite(&gSprites[sTradeData->unk_D3]); + case TS_STATE_SHOW_NEW_MON: + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x = 120; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PARTNER]].y_offset + 60; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x2 = 0; + gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y2 = 0; + StartSpriteAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]], 0); + CreatePokeballSpriteToReleaseMon(sTradeData->monSpriteIds[TRADE_PARTNER], gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].oam.paletteNum, 120, 84, 2, 1, 20, 0xFFFFF, sTradeData->monSpecies[TRADE_PARTNER]); + FreeSpriteOamMatrix(&gSprites[sTradeData->bouncingPokeballSpriteId]); + DestroySprite(&gSprites[sTradeData->bouncingPokeballSpriteId]); sTradeData->state++; break; - case 67: + case TS_STATE_NEW_MON_MSG: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | @@ -4197,28 +4290,24 @@ static bool8 AnimateTradeSequenceWireless(void) DISPCNT_OBJ_ON); StringExpandPlaceholders(gStringVar4, gText_XSentOverY); DrawTextOnTradeWindow(0, gStringVar4, 0); - sTradeData->state = 167; + sTradeData->state = TS_STATE_DELAY_FOR_MON_ANIM; sTradeData->timer = 0; break; - // 167 and 267 are extra cases added in for animations - case 167: + case TS_STATE_DELAY_FOR_MON_ANIM: if (++sTradeData->timer > 60) { - sTradeData->state = 267; + sTradeData->state = TS_STATE_WAIT_FOR_MON_CRY; sTradeData->timer = 0; } break; - case 267: + case TS_STATE_WAIT_FOR_MON_CRY: if (IsCryFinished()) - { - sTradeData->state = 68; - } + sTradeData->state = TS_STATE_TAKE_CARE_OF_MON; break; - case 68: + case TS_STATE_TAKE_CARE_OF_MON: if (++sTradeData->timer == 10) - { PlayFanfare(MUS_EVOLVED); - } + if (sTradeData->timer == 250) { sTradeData->state++; @@ -4227,17 +4316,15 @@ static bool8 AnimateTradeSequenceWireless(void) sTradeData->timer = 0; } break; - case 69: + case TS_STATE_AFTER_NEW_MON_DELAY: if (++sTradeData->timer == 60) - { sTradeData->state++; - } break; - case 70: + case TS_STATE_CHECK_RIBBONS: CheckPartnersMonForRibbons(); sTradeData->state++; break; - case 71: + case TS_STATE_END_LINK_TRADE: if (sTradeData->isLinkTrade) { return TRUE; @@ -4247,21 +4334,21 @@ static bool8 AnimateTradeSequenceWireless(void) sTradeData->state++; } break; - case 72: // Only if in-game trade + case TS_STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution TradeMons(gSpecialVar_0x8005, 0); gCB2_AfterEvolution = CB2_UpdateInGameTrade; - evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], TRUE, ITEM_NONE); + evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE); if (evoTarget != SPECIES_NONE) { - TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->pokePicSpriteIdxs[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); + TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); } sTradeData->state++; break; - case 73: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + case TS_STATE_FADE_OUT_END: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sTradeData->state++; break; - case 74: + case TS_STATE_WAIT_FADE_OUT_END: if (!gPaletteFade.active) { PlayNewMapMusic(sTradeData->cachedMapMusic); @@ -4282,7 +4369,9 @@ static bool8 AnimateTradeSequenceWireless(void) return FALSE; } -static void CB2_TryTradeEvolution(void) +// Try to evolve a Pokémon received in a link trade +// In-game trades resolve evolution during the trade sequence, in TS_STATE_TRY_EVOLUTION +static void CB2_TryLinkTradeEvolution(void) { u16 evoTarget; switch (gMain.state) @@ -4293,9 +4382,9 @@ static void CB2_TryTradeEvolution(void) break; case 4: gCB2_AfterEvolution = CB2_SaveAndEndTrade; - evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], TRUE, ITEM_NONE); + evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE); if (evoTarget != SPECIES_NONE) - TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->pokePicSpriteIdxs[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); + TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); else if (IsWirelessTrade()) SetMainCallback2(CB2_SaveAndEndWirelessTrade); else @@ -4318,7 +4407,7 @@ static void UpdateTradeFinishFlags(void) if (blockReceivedStatus & 0x01) { if (gBlockRecvBuffer[0][0] == LINKCMD_CONFIRM_FINISH_TRADE) - SetMainCallback2(CB2_TryTradeEvolution); + SetMainCallback2(CB2_TryLinkTradeEvolution); if (gBlockRecvBuffer[0][0] == LINKCMD_READY_FINISH_TRADE) sTradeData->playerLinkFlagFinishTrade = READY_FINISH_TRADE; @@ -4334,18 +4423,18 @@ static void UpdateTradeFinishFlags(void) } } -static void sub_807E55C(struct Sprite *sprite) +static void SpriteCB_BouncingPokeball(struct Sprite *sprite) { - sprite->pos1.y += sprite->data[0] / 10; + sprite->y += sprite->data[0] / 10; sprite->data[5] += sprite->data[1]; - sprite->pos1.x = sprite->data[5] / 10; - if (sprite->pos1.y > 0x4c) + sprite->x = sprite->data[5] / 10; + if (sprite->y > 0x4c) { - sprite->pos1.y = 0x4c; + sprite->y = 0x4c; sprite->data[0] = -(sprite->data[0] * sprite->data[2]) / 100; sprite->data[3] ++; } - if (sprite->pos1.x == 0x78) + if (sprite->x == 0x78) sprite->data[1] = 0; sprite->data[0] += sprite->data[4]; if (sprite->data[3] == 4) @@ -4355,40 +4444,40 @@ static void sub_807E55C(struct Sprite *sprite) } } -static void sub_807E5D8(struct Sprite *sprite) +static void SpriteCB_BouncingPokeballDepart(struct Sprite *sprite) { - sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]]; + sprite->y2 += sTradeBallVerticalVelocityTable[sprite->data[0]]; if (sprite->data[0] == 22) PlaySE(SE_BALL_BOUNCE_1); if (++ sprite->data[0] == 44) { PlaySE(SE_M_MEGA_KICK); - sprite->callback = sub_807E64C; + sprite->callback = SpriteCB_BouncingPokeballDepartEnd; sprite->data[0] = 0; BeginNormalPaletteFade(1 << (16 + sprite->oam.paletteNum), -1, 0, 16, RGB_WHITEALPHA); } } -static void sub_807E64C(struct Sprite *sprite) +static void SpriteCB_BouncingPokeballDepartEnd(struct Sprite *sprite) { if (sprite->data[1] == 20) StartSpriteAffineAnim(sprite, 1); if (++ sprite->data[1] > 20) { - sprite->pos2.y -= sTradeBallVerticalVelocityTable[sprite->data[0]]; + sprite->y2 -= sTradeBallVerticalVelocityTable[sprite->data[0]]; if (++ sprite->data[0] == 23) { DestroySprite(sprite); - sTradeData->state = 14; // Resume the master trade animation + sTradeData->state = TS_STATE_FADE_OUT_TO_GBA_SEND; // Resume the master trade animation } } } -static void sub_807E6AC(struct Sprite *sprite) +static void SpriteCB_BouncingPokeballArrive(struct Sprite *sprite) { if (sprite->data[2] == 0) { - if ((sprite->pos1.y += 4) > sprite->data[3]) + if ((sprite->y += 4) > sprite->data[3]) { sprite->data[2] ++; sprite->data[0] = 0x16; @@ -4403,7 +4492,7 @@ static void sub_807E6AC(struct Sprite *sprite) PlaySE(SE_BALL_BOUNCE_3); if (sprite->data[0] == 0x6b) PlaySE(SE_BALL_BOUNCE_4); - sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]]; + sprite->y2 += sTradeBallVerticalVelocityTable[sprite->data[0]]; if (++sprite->data[0] == 0x6c) sprite->callback = SpriteCallbackDummy; } @@ -4436,7 +4525,7 @@ static void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) u8 isMail; struct Pokemon *pokemon = &gEnemyParty[0]; - CreateMon(pokemon, inGameTrade->species, level, 32, TRUE, inGameTrade->personality, OT_ID_PRESET, inGameTrade->otId); + CreateMon(pokemon, inGameTrade->species, level, USE_RANDOM_IVS, TRUE, inGameTrade->personality, OT_ID_PRESET, inGameTrade->otId); SetMonData(pokemon, MON_DATA_HP_IV, &inGameTrade->ivs[0]); SetMonData(pokemon, MON_DATA_ATK_IV, &inGameTrade->ivs[1]); @@ -4509,8 +4598,8 @@ static void CB2_UpdateLinkTrade(void) { if (AnimateTradeSequence() == TRUE) { - DestroySprite(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]]); - FreeSpriteOamMatrix(&gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]]); + DestroySprite(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]]); + FreeSpriteOamMatrix(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]]); TradeMons(gSelectedTradeMonPositions[TRADE_PLAYER], gSelectedTradeMonPositions[TRADE_PARTNER] % PARTY_SIZE); if (!IsWirelessTrade()) { @@ -4533,7 +4622,7 @@ static void CB2_TryFinishTrade(void) u8 mpId = TradeGetMultiplayerId(); if (IsWirelessTrade()) { - SetMainCallback2(CB2_TryTradeEvolution); + SetMainCallback2(CB2_TryLinkTradeEvolution); } else { @@ -4543,7 +4632,7 @@ static void CB2_TryFinishTrade(void) && sTradeData->partnerLinkFlagFinishTrade == READY_FINISH_TRADE) { sTradeData->linkData[0] = LINKCMD_CONFIRM_FINISH_TRADE; - Trade_SendData(sTradeData); + SendBlock(bitmask_all_link_players_but_self(), sTradeData->linkData, sizeof(sTradeData->linkData)); sTradeData->playerLinkFlagFinishTrade = FINISH_TRADE; sTradeData->partnerLinkFlagFinishTrade = FINISH_TRADE; } @@ -4667,7 +4756,7 @@ static void CB2_SaveAndEndTrade(void) case 6: if (_IsLinkTaskFinished()) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gMain.state ++; } break; @@ -4741,7 +4830,7 @@ void DoInGameTradeScene(void) { ScriptContext2_Enable(); CreateTask(Task_InGameTrade, 10); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); } static void Task_InGameTrade(u8 taskId) @@ -4794,16 +4883,16 @@ static void Task_AnimateWirelessSignal(u8 taskId) if (!signalComingBack) { if (paletteIdx == 256) - LoadPalette(sTradePal_Black, 0x30, 32); + LoadPalette(sWirelessSignalNone_Pal, 0x30, 32); else - LoadPalette(&sTradePal_WirelessSignalSend[paletteIdx], 0x30, 32); + LoadPalette(&sWirelessSignalSend_Pal[paletteIdx], 0x30, 32); } else { if (paletteIdx == 256) - LoadPalette(sTradePal_Black, 0x30, 32); + LoadPalette(sWirelessSignalNone_Pal, 0x30, 32); else - LoadPalette(&sTradePal_WirelessSignalReceive[paletteIdx], 0x30, 32); + LoadPalette(&sWirelessSignalRecv_Pal[paletteIdx], 0x30, 32); } if (sWirelessSignalTiming[idx][0] == 0 && counter == 0) @@ -4828,15 +4917,15 @@ static void Task_AnimateWirelessSignal(u8 taskId) #undef counter #undef signalComingBack -static void c3_0805465C(u8 taskId) +static void Task_NarrowWindowForCrossing_Wireless(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - sTradeData->wirelessWinLeft = sTradeData->wirelessWinRight = 120; + sTradeData->wirelessWinLeft = sTradeData->wirelessWinRight = DISPLAY_WIDTH / 2; sTradeData->wirelessWinTop = 0; - sTradeData->wirelessWinBottom = 160; + sTradeData->wirelessWinBottom = DISPLAY_HEIGHT; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_OBJ); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | @@ -4852,19 +4941,17 @@ static void c3_0805465C(u8 taskId) sTradeData->wirelessWinRight += 5; if (sTradeData->wirelessWinLeft < 80) - { DestroyTask(taskId); - } } -static void sub_807F39C(u8 taskId) +static void Task_NarrowWindowForCrossing_Cable(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) { sTradeData->wirelessWinLeft = 80; - sTradeData->wirelessWinRight = 160; + sTradeData->wirelessWinRight = DISPLAY_WIDTH - 80; SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_OBJ); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG1 | @@ -4874,13 +4961,13 @@ static void sub_807F39C(u8 taskId) SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeData->wirelessWinLeft, sTradeData->wirelessWinRight)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeData->wirelessWinTop, sTradeData->wirelessWinBottom)); - if (sTradeData->wirelessWinLeft != 120) + if (sTradeData->wirelessWinLeft != DISPLAY_WIDTH / 2) { data[0]++; sTradeData->wirelessWinLeft += 5; sTradeData->wirelessWinRight -= 5; - if (sTradeData->wirelessWinLeft >= 116) + if (sTradeData->wirelessWinLeft > DISPLAY_WIDTH / 2 - 5) BlendPalettes(0x8, 0, RGB_WHITEALPHA); } else @@ -4974,7 +5061,7 @@ static void CB2_SaveAndEndWirelessTrade(void) if (_IsLinkTaskFinished()) { FadeOutBGM(3); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gMain.state = 11; } break; diff --git a/src/trainer_card.c b/src/trainer_card.c index 2d9ec2b090..1ec519c90e 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -80,7 +80,7 @@ struct TrainerCardData u8 cardTiles[0x2300]; u16 cardTilemapBuffer[0x1000]; u16 bgTilemapBuffer[0x1000]; - u16 var_7CA8; + u16 cardTop; u8 language; }; @@ -113,7 +113,7 @@ static void SetPlayerCardData(struct TrainerCard*, u8); static void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard*); static u8 VersionToCardType(u8); static void SetDataFromTrainerCard(void); -static void HandleGpuRegs(void); +static void InitGpuRegs(void); static void ResetGpuRegs(void); static void InitBgsAndWindows(void); static void SetTrainerCardCb2(void); @@ -158,31 +158,30 @@ static bool8 Task_DrawFlippedCardSide(struct Task* task); static bool8 Task_SetCardFlipped(struct Task* task); static bool8 Task_AnimateCardFlipUp(struct Task* task); static bool8 Task_EndCardFlip(struct Task* task); -static void sub_80C32EC(u16); +static void UpdateCardFlipRegs(u16); static void LoadMonIconGfx(void); -// const rom data -static const u32 sTrainerCardStickers_Gfx[] = INCBIN_U32("graphics/trainer_card/stickers_fr.4bpp.lz"); -static const u16 sUnused_0856F18C[] = INCBIN_U16("graphics/trainer_card/unknown_56F18C.gbapal"); -static const u16 sHoennTrainerCard1Star_Pal[] = INCBIN_U16("graphics/trainer_card/one_star.gbapal"); -static const u16 sKantoTrainerCard1Star_Pal[] = INCBIN_U16("graphics/trainer_card/one_star_fr.gbapal"); -static const u16 sHoennTrainerCard2Star_Pal[] = INCBIN_U16("graphics/trainer_card/two_stars.gbapal"); -static const u16 sKantoTrainerCard2Star_Pal[] = INCBIN_U16("graphics/trainer_card/two_stars_fr.gbapal"); -static const u16 sHoennTrainerCard3Star_Pal[] = INCBIN_U16("graphics/trainer_card/three_stars.gbapal"); -static const u16 sKantoTrainerCard3Star_Pal[] = INCBIN_U16("graphics/trainer_card/three_stars_fr.gbapal"); -static const u16 sHoennTrainerCard4Star_Pal[] = INCBIN_U16("graphics/trainer_card/four_stars.gbapal"); -static const u16 sKantoTrainerCard4Star_Pal[] = INCBIN_U16("graphics/trainer_card/four_stars_fr.gbapal"); +static const u32 sTrainerCardStickers_Gfx[] = INCBIN_U32("graphics/trainer_card/stickers_fr.4bpp.lz"); +static const u16 sUnused_Pal[] = INCBIN_U16("graphics/trainer_card/unused.gbapal"); +static const u16 sHoennTrainerCard1Star_Pal[] = INCBIN_U16("graphics/trainer_card/one_star.gbapal"); +static const u16 sKantoTrainerCard1Star_Pal[] = INCBIN_U16("graphics/trainer_card/one_star_fr.gbapal"); +static const u16 sHoennTrainerCard2Star_Pal[] = INCBIN_U16("graphics/trainer_card/two_stars.gbapal"); +static const u16 sKantoTrainerCard2Star_Pal[] = INCBIN_U16("graphics/trainer_card/two_stars_fr.gbapal"); +static const u16 sHoennTrainerCard3Star_Pal[] = INCBIN_U16("graphics/trainer_card/three_stars.gbapal"); +static const u16 sKantoTrainerCard3Star_Pal[] = INCBIN_U16("graphics/trainer_card/three_stars_fr.gbapal"); +static const u16 sHoennTrainerCard4Star_Pal[] = INCBIN_U16("graphics/trainer_card/four_stars.gbapal"); +static const u16 sKantoTrainerCard4Star_Pal[] = INCBIN_U16("graphics/trainer_card/four_stars_fr.gbapal"); static const u16 sHoennTrainerCardFemaleBg_Pal[] = INCBIN_U16("graphics/trainer_card/female_bg.gbapal"); static const u16 sKantoTrainerCardFemaleBg_Pal[] = INCBIN_U16("graphics/trainer_card/female_bg_fr.gbapal"); -static const u16 sHoennTrainerCardBadges_Pal[] = INCBIN_U16("graphics/trainer_card/badges.gbapal"); -static const u16 sKantoTrainerCardBadges_Pal[] = INCBIN_U16("graphics/trainer_card/badges_fr.gbapal"); -static const u16 sTrainerCardGold_Pal[] = INCBIN_U16("graphics/trainer_card/gold.gbapal"); -static const u16 sTrainerCardSticker1_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr1.gbapal"); -static const u16 sTrainerCardSticker2_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr2.gbapal"); -static const u16 sTrainerCardSticker3_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr3.gbapal"); -static const u16 sTrainerCardSticker4_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr4.gbapal"); -static const u32 sHoennTrainerCardBadges_Gfx[] = INCBIN_U32("graphics/trainer_card/badges.4bpp.lz"); -static const u32 sKantoTrainerCardBadges_Gfx[] = INCBIN_U32("graphics/trainer_card/badges_fr.4bpp.lz"); +static const u16 sHoennTrainerCardBadges_Pal[] = INCBIN_U16("graphics/trainer_card/badges.gbapal"); +static const u16 sKantoTrainerCardBadges_Pal[] = INCBIN_U16("graphics/trainer_card/badges_fr.gbapal"); +static const u16 sTrainerCardGold_Pal[] = INCBIN_U16("graphics/trainer_card/gold.gbapal"); +static const u16 sTrainerCardSticker1_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr1.gbapal"); +static const u16 sTrainerCardSticker2_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr2.gbapal"); +static const u16 sTrainerCardSticker3_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr3.gbapal"); +static const u16 sTrainerCardSticker4_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr4.gbapal"); +static const u32 sHoennTrainerCardBadges_Gfx[] = INCBIN_U32("graphics/trainer_card/badges.4bpp.lz"); +static const u32 sKantoTrainerCardBadges_Gfx[] = INCBIN_U32("graphics/trainer_card/badges_fr.4bpp.lz"); static const struct BgTemplate sTrainerCardBgTemplates[4] = { @@ -274,7 +273,7 @@ static const u16 *const sKantoTrainerCardStarPals[] = sKantoTrainerCard4Star_Pal, }; -static const u8 sTrainerCardTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}; +static const u8 sTrainerCardTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; static const u8 sTrainerCardStatColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED}; static const u8 sTimeColonInvisibleTextColors[6] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_TRANSPARENT}; @@ -321,7 +320,6 @@ static bool8 (*const sTrainerCardFlipTasks[])(struct Task *) = Task_EndCardFlip, }; -// code static void VblankCb_TrainerCard(void) { LoadOam(); @@ -414,8 +412,8 @@ static void Task_TrainerCard(u8 taskId) LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(230, 150); } - BlendPalettes(0xFFFFFFFF, 16, sData->blendColor); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, sData->blendColor); + BlendPalettes(PALETTES_ALL, 16, sData->blendColor); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, sData->blendColor); SetVBlankCallback(VblankCb_TrainerCard); sData->mainState++; break; @@ -452,13 +450,13 @@ static void Task_TrainerCard(u8 taskId) } else { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, sData->blendColor); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, sData->blendColor); sData->mainState = STATE_CLOSE_CARD; } } break; case STATE_WAIT_FLIP_TO_BACK: - if (IsCardFlipTaskActive() && sub_8087598() != TRUE) + if (IsCardFlipTaskActive() && Overworld_LinkRecvQueueLengthMoreThan2() != TRUE) { PlaySE(SE_RG_CARD_OPEN); sData->mainState = STATE_HANDLE_INPUT_BACK; @@ -473,7 +471,7 @@ static void Task_TrainerCard(u8 taskId) } else if (gReceivedRemoteLinkPlayers) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, sData->blendColor); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, sData->blendColor); sData->mainState = STATE_CLOSE_CARD; } else @@ -491,7 +489,7 @@ static void Task_TrainerCard(u8 taskId) } else { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, sData->blendColor); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, sData->blendColor); sData->mainState = STATE_CLOSE_CARD; } } @@ -506,7 +504,7 @@ static void Task_TrainerCard(u8 taskId) case STATE_CLOSE_CARD_LINK: if (!gReceivedRemoteLinkPlayers) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, sData->blendColor); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, sData->blendColor); sData->mainState = STATE_CLOSE_CARD; } break; @@ -515,7 +513,7 @@ static void Task_TrainerCard(u8 taskId) CloseTrainerCard(taskId); break; case STATE_WAIT_FLIP_TO_FRONT: - if (IsCardFlipTaskActive() && sub_8087598() != TRUE) + if (IsCardFlipTaskActive() && Overworld_LinkRecvQueueLengthMoreThan2() != TRUE) { sData->mainState = STATE_HANDLE_INPUT_FRONT; PlaySE(SE_RG_CARD_OPEN); @@ -620,7 +618,7 @@ static void CB2_InitTrainerCard(void) gMain.state++; break; case 8: - HandleGpuRegs(); + InitGpuRegs(); gMain.state++; break; case 9: @@ -663,7 +661,7 @@ u32 CountPlayerTrainerStars(void) stars++; if (HasAllHoennMons()) stars++; - if (CountPlayerContestPaintings() > 4) + if (CountPlayerMuseumPaintings() >= CONTEST_CATEGORIES_COUNT) stars++; if (HasAllFrontierSymbols()) stars++; @@ -737,7 +735,7 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType) case CARD_TYPE_FRLG: trainerCard->contestsWithFriends = GetCappedGameStat(GAME_STAT_WON_LINK_CONTEST, 999); trainerCard->pokeblocksWithFriends = GetCappedGameStat(GAME_STAT_POKEBLOCKS_WITH_FRIENDS, 0xFFFF); - if (CountPlayerContestPaintings() > 4) + if (CountPlayerMuseumPaintings() >= CONTEST_CATEGORIES_COUNT) trainerCard->hasAllPaintings = TRUE; trainerCard->stars = GetRubyTrainerStars(trainerCard); break; @@ -841,7 +839,7 @@ static void SetDataFromTrainerCard(void) } } -static void HandleGpuRegs(void) +static void InitGpuRegs(void) { SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); @@ -852,24 +850,23 @@ static void HandleGpuRegs(void) SetGpuReg(REG_OFFSET_BLDY, 0); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ); - SetGpuReg(REG_OFFSET_WIN0V, 160); - SetGpuReg(REG_OFFSET_WIN0H, 240); + SetGpuReg(REG_OFFSET_WIN0V, DISPLAY_HEIGHT); + SetGpuReg(REG_OFFSET_WIN0H, DISPLAY_WIDTH); if (gReceivedRemoteLinkPlayers) EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_HBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); else EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_HBLANK); } -// Part of animating card flip -static void sub_80C32EC(u16 arg0) +static void UpdateCardFlipRegs(u16 cardTop) { - s8 quotient = (arg0 + 40) / 10; + s8 blendY = (cardTop + 40) / 10; - if (quotient <= 4) - quotient = 0; - sData->flipBlendY = quotient; + if (blendY <= 4) + blendY = 0; + sData->flipBlendY = blendY; SetGpuReg(REG_OFFSET_BLDY, sData->flipBlendY); - SetGpuReg(REG_OFFSET_WIN0V, (sData->var_7CA8 * 256) | (160 - sData->var_7CA8)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(sData->cardTop, DISPLAY_HEIGHT - sData->cardTop)); } static void ResetGpuRegs(void) @@ -1578,6 +1575,7 @@ u8 GetTrainerCardStars(u8 cardId) } #define tFlipState data[0] +#define tCardTop data[1] static void FlipTrainerCard(void) { @@ -1588,7 +1586,7 @@ static void FlipTrainerCard(void) static bool8 IsCardFlipTaskActive(void) { - if (FindTaskIdByFunc(Task_DoCardFlipTask) == 0xFF) + if (FindTaskIdByFunc(Task_DoCardFlipTask) == TASK_NONE) return TRUE; else return FALSE; @@ -1608,41 +1606,43 @@ static bool8 Task_BeginCardFlip(struct Task* task) HideBg(3); ScanlineEffect_Stop(); ScanlineEffect_Clear(); - for (i = 0; i < 160; i++) + for (i = 0; i < DISPLAY_HEIGHT; i++) gScanlineEffectRegBuffers[1][i] = 0; task->tFlipState++; return FALSE; } +// Note: Cannot be DISPLAY_HEIGHT / 2, or cardHeight will be 0 +#define CARD_FLIP_Y ((DISPLAY_HEIGHT / 2) - 3) + static bool8 Task_AnimateCardFlipDown(struct Task* task) { - u32 r4, r5, r10, r7, r6, var_24, r9, var; + u32 cardHeight, r5, r10, cardTop, r6, var_24, cardBottom, var; s16 i; sData->allowDMACopy = FALSE; - if (task->data[1] >= 77) - task->data[1] = 77; + if (task->tCardTop >= CARD_FLIP_Y) + task->tCardTop = CARD_FLIP_Y; else - task->data[1] += 7; + task->tCardTop += 7; - sData->var_7CA8 = task->data[1]; - sub_80C32EC(task->data[1]); + sData->cardTop = task->tCardTop; + UpdateCardFlipRegs(task->tCardTop); - // ??? - r7 = task->data[1]; - r9 = 160 - r7; - r4 = r9 - r7; - r6 = -r7 << 16; - r5 = 0xA00000 / r4; - r5 += 0xFFFF0000; + cardTop = task->tCardTop; + cardBottom = DISPLAY_HEIGHT - cardTop; + cardHeight = cardBottom - cardTop; + r6 = -cardTop << 16; + r5 = (DISPLAY_HEIGHT << 16) / cardHeight; + r5 -= 1 << 16; var_24 = r6; - var_24 += r5 * r4; - r10 = r5 / r4; + var_24 += r5 * cardHeight; + r10 = r5 / cardHeight; r5 *= 2; - for (i = 0; i < r7; i++) + for (i = 0; i < cardTop; i++) gScanlineEffectRegBuffers[0][i] = -i; - for (; i < (s16)(r9); i++) + for (; i < (s16)cardBottom; i++) { var = r6 >> 16; r6 += r5; @@ -1650,11 +1650,11 @@ static bool8 Task_AnimateCardFlipDown(struct Task* task) gScanlineEffectRegBuffers[0][i] = var; } var = var_24 >> 16; - for (; i < 160; i++) + for (; i < DISPLAY_HEIGHT; i++) gScanlineEffectRegBuffers[0][i] = var; sData->allowDMACopy = TRUE; - if (task->data[1] >= 77) + if (task->tCardTop >= CARD_FLIP_Y) task->tFlipState++; return FALSE; @@ -1663,7 +1663,7 @@ static bool8 Task_AnimateCardFlipDown(struct Task* task) static bool8 Task_DrawFlippedCardSide(struct Task* task) { sData->allowDMACopy = FALSE; - if (sub_8087598() == TRUE) + if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE) return FALSE; do @@ -1736,33 +1736,32 @@ static bool8 Task_SetCardFlipped(struct Task* task) static bool8 Task_AnimateCardFlipUp(struct Task* task) { - u32 r4, r5, r10, r7, r6, var_24, r9, var; + u32 cardHeight, r5, r10, cardTop, r6, var_24, cardBottom, var; s16 i; sData->allowDMACopy = FALSE; - if (task->data[1] <= 5) - task->data[1] = 0; + if (task->tCardTop <= 5) + task->tCardTop = 0; else - task->data[1] -= 5; + task->tCardTop -= 5; - sData->var_7CA8 = task->data[1]; - sub_80C32EC(task->data[1]); + sData->cardTop = task->tCardTop; + UpdateCardFlipRegs(task->tCardTop); - // ??? - r7 = task->data[1]; - r9 = 160 - r7; - r4 = r9 - r7; - r6 = -r7 << 16; - r5 = 0xA00000 / r4; - r5 += 0xFFFF0000; + cardTop = task->tCardTop; + cardBottom = DISPLAY_HEIGHT - cardTop; + cardHeight = cardBottom - cardTop; + r6 = -cardTop << 16; + r5 = (DISPLAY_HEIGHT << 16) / cardHeight; + r5 -= 1 << 16; var_24 = r6; - var_24 += r5 * r4; - r10 = r5 / r4; + var_24 += r5 * cardHeight; + r10 = r5 / cardHeight; r5 /= 2; - for (i = 0; i < r7; i++) + for (i = 0; i < cardTop; i++) gScanlineEffectRegBuffers[0][i] = -i; - for (; i < (s16)(r9); i++) + for (; i < (s16)cardBottom; i++) { var = r6 >> 16; r6 += r5; @@ -1770,11 +1769,11 @@ static bool8 Task_AnimateCardFlipUp(struct Task* task) gScanlineEffectRegBuffers[0][i] = var; } var = var_24 >> 16; - for (; i < 160; i++) + for (; i < DISPLAY_HEIGHT; i++) gScanlineEffectRegBuffers[0][i] = var; sData->allowDMACopy = TRUE; - if (task->data[1] <= 0) + if (task->tCardTop <= 0) task->tFlipState++; return FALSE; diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 18d56723cf..37001e9846 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -74,7 +74,7 @@ static void GetChallengeWon(void); static void TrainerHillSetTag(void); static void SetUpDataStruct(void); static void FreeDataStruct(void); -static void nullsub_2(void); +static void TrainerHillDummy(void); static void SetTimerValue(u32 *dst, u32 val); static u32 GetTimerValue(u32 *src); static void SetTrainerHillMonLevel(struct Pokemon *mon, u8 level); @@ -202,7 +202,7 @@ static const u16 *const *const sPrizeListSets[] = }; static const u16 sEReader_Pal[] = INCBIN_U16("graphics/misc/trainer_hill_ereader.gbapal"); -static const u8 sRecordWinColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}; +static const u8 sRecordWinColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; static const struct TrHillTag *const sDataPerTag[] = { @@ -358,7 +358,7 @@ static void SetUpDataStruct(void) sHillData = AllocZeroed(sizeof(*sHillData)); sHillData->floorId = gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F; CpuCopy32(sDataPerTag[gSaveBlock1Ptr->trainerHill.tag], &sHillData->tag, sizeof(sHillData->tag) + 4 * sizeof(struct TrHillFloor)); - nullsub_2(); + TrainerHillDummy(); } } @@ -397,7 +397,7 @@ void CopyTrainerHillTrainerText(u8 which, u16 trainerId) static void TrainerHillStartChallenge(void) { - nullsub_2(); + TrainerHillDummy(); if (!ReadTrainerHillAndValidate()) gSaveBlock1Ptr->trainerHill.field_3D6E_0f = 1; else @@ -573,12 +573,12 @@ static void IsTrainerHillChallengeActive(void) gSpecialVar_Result = TRUE; } -void nullsub_129(void) +static void TrainerHillDummy_Unused(void) { } -static void nullsub_2(void) +static void TrainerHillDummy(void) { } @@ -678,10 +678,10 @@ static u16 GetMetatileForFloor(u8 floorId, u32 x, u32 y, u32 stride) // stride i u16 elevation; impassable = (sHillData->floors[floorId].display.collisionData[y] >> (15 - x) & 1); - metatile = sHillData->floors[floorId].display.metatileData[stride * y + x] + 0x200; - elevation = 0x3000; + metatile = sHillData->floors[floorId].display.metatileData[stride * y + x] + NUM_METATILES_IN_PRIMARY; + elevation = 3 << METATILE_ELEVATION_SHIFT; - return (((impassable << 10) & METATILE_COLLISION_MASK) | elevation) | (metatile & METATILE_ID_MASK); + return ((impassable << METATILE_COLLISION_SHIFT) & METATILE_COLLISION_MASK) | elevation | (metatile & METATILE_ID_MASK); } void GenerateTrainerHillFloorLayout(u16 *mapArg) @@ -710,6 +710,8 @@ void GenerateTrainerHillFloorLayout(u16 *mapArg) gBackupMapLayout.width = 31; gBackupMapLayout.height = 35; dst = mapArg + 224; + + // First 5 rows of the map (Entrance / Exit) are always the same for (i = 0; i < 5; i++) { for (j = 0; j < 16; j++) @@ -718,10 +720,11 @@ void GenerateTrainerHillFloorLayout(u16 *mapArg) src += 16; } + // Load the 16x16 floor-specific layout for (i = 0; i < 16; i++) { for (j = 0; j < 16; j++) - dst[j] = GetMetatileForFloor(mapId, j, i, 0x10); + dst[j] = GetMetatileForFloor(mapId, j, i, 16); dst += 31; } @@ -897,7 +900,7 @@ void FillHillTrainersParties(void) // hill trainers. u32 GetTrainerHillAIFlags(void) { - return (AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY); + return (AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY); } u8 GetTrainerEncounterMusicIdInTrainerHill(u16 trainerId) diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index c23047b01d..477c11faf8 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -137,7 +137,7 @@ static void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 pale static void AssignSpriteAnimsTable(bool8 isTrainer) { if (!isTrainer) - sCreatingSpriteTemplate.anims = gUnknown_082FF70C; + sCreatingSpriteTemplate.anims = gAnims_MonPic; else sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0]; } @@ -262,12 +262,12 @@ u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s1 sCreatingSpriteTemplate.images = images; if (flags2 == 0x01) { - sCreatingSpriteTemplate.affineAnims = gUnknown_082FF694; + sCreatingSpriteTemplate.affineAnims = gAffineAnims_BattleSpriteOpponentSide; sCreatingSpriteTemplate.oam = &gUnknown_0860B06C; } else if (flags2 == 0x00) { - sCreatingSpriteTemplate.affineAnims = gUnknown_082FF618; + sCreatingSpriteTemplate.affineAnims = gAffineAnims_BattleSpritePlayerSide; sCreatingSpriteTemplate.oam = &gUnknown_0860B06C; } else diff --git a/src/trainer_see.c b/src/trainer_see.c index 46fafa7e30..ea052fb0ce 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -23,9 +23,9 @@ static u8 CheckTrainer(u8 objectEventId); static u8 GetTrainerApproachDistance(struct ObjectEvent *trainerObj); static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent *trainerObj, u8 approachDistance, u8 direction); -static void TrainerApproachPlayer(struct ObjectEvent *trainerObj, u8 range); +static void InitTrainerApproachTask(struct ObjectEvent *trainerObj, u8 range); static void Task_RunTrainerSeeFuncList(u8 taskId); -static void Task_DestroyTrainerApproachTask(u8 taskId); +static void Task_EndTrainerApproach(u8 taskId); static void SetIconSpriteData(struct Sprite *sprite, u16 fldEffId, u8 spriteAnimNum); static u8 GetTrainerApproachDistanceSouth(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y); @@ -33,7 +33,7 @@ static u8 GetTrainerApproachDistanceNorth(struct ObjectEvent *trainerObj, s16 ra static u8 GetTrainerApproachDistanceWest(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y); static u8 GetTrainerApproachDistanceEast(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y); -static bool8 sub_80B4178(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 TrainerSeeIdle(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static bool8 TrainerExclamationMark(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static bool8 WaitTrainerExclamationMark(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static bool8 TrainerMoveToPlayer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); @@ -41,10 +41,10 @@ static bool8 PlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct O static bool8 WaitPlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static bool8 RevealDisguisedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static bool8 WaitRevealDisguisedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); -static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); -static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); -static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); -static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 RevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 PopOutOfAshBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 JumpInPlaceBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 WaitRevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static void SpriteCB_TrainerIcons(struct Sprite *sprite); @@ -71,28 +71,43 @@ static u8 (*const sDirectionalApproachDistanceFuncs[])(struct ObjectEvent *train GetTrainerApproachDistanceEast, }; +enum { + TRSEE_NONE, + TRSEE_EXCLAMATION, + TRSEE_EXCLAMATION_WAIT, + TRSEE_MOVE_TO_PLAYER, + TRSEE_PLAYER_FACE, + TRSEE_PLAYER_FACE_WAIT, + TRSEE_REVEAL_DISGUISE, + TRSEE_REVEAL_DISGUISE_WAIT, + TRSEE_REVEAL_BURIED, + TRSEE_BURIED_POP_OUT, + TRSEE_BURIED_JUMP, + TRSEE_REVEAL_BURIED_WAIT, +}; + static bool8 (*const sTrainerSeeFuncList[])(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) = { - sub_80B4178, - TrainerExclamationMark, - WaitTrainerExclamationMark, - TrainerMoveToPlayer, - PlayerFaceApproachingTrainer, - WaitPlayerFaceApproachingTrainer, - RevealDisguisedTrainer, - WaitRevealDisguisedTrainer, - RevealHiddenTrainer, - PopOutOfAshHiddenTrainer, - JumpInPlaceHiddenTrainer, - WaitRevealHiddenTrainer, + [TRSEE_NONE] = TrainerSeeIdle, + [TRSEE_EXCLAMATION] = TrainerExclamationMark, + [TRSEE_EXCLAMATION_WAIT] = WaitTrainerExclamationMark, + [TRSEE_MOVE_TO_PLAYER] = TrainerMoveToPlayer, + [TRSEE_PLAYER_FACE] = PlayerFaceApproachingTrainer, + [TRSEE_PLAYER_FACE_WAIT] = WaitPlayerFaceApproachingTrainer, + [TRSEE_REVEAL_DISGUISE] = RevealDisguisedTrainer, + [TRSEE_REVEAL_DISGUISE_WAIT] = WaitRevealDisguisedTrainer, + [TRSEE_REVEAL_BURIED] = RevealBuriedTrainer, + [TRSEE_BURIED_POP_OUT] = PopOutOfAshBuriedTrainer, + [TRSEE_BURIED_JUMP] = JumpInPlaceBuriedTrainer, + [TRSEE_REVEAL_BURIED_WAIT] = WaitRevealBuriedTrainer, }; static bool8 (*const sTrainerSeeFuncList2[])(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) = { - RevealHiddenTrainer, - PopOutOfAshHiddenTrainer, - JumpInPlaceHiddenTrainer, - WaitRevealHiddenTrainer, + RevealBuriedTrainer, + PopOutOfAshBuriedTrainer, + JumpInPlaceBuriedTrainer, + WaitRevealBuriedTrainer, }; static const struct OamData sOamData_Icons = @@ -164,7 +179,7 @@ static const struct SpriteTemplate sSpriteTemplate_ExclamationQuestionMark = static const struct SpriteTemplate sSpriteTemplate_HeartIcon = { .tileTag = 0xffff, - .paletteTag = 0x1004, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &sOamData_Icons, .anims = sSpriteAnimTable_Icons, .images = sSpriteImageTable_HeartIcon, @@ -233,7 +248,7 @@ bool8 CheckForTrainersWantingBattle(void) static u8 CheckTrainer(u8 objectEventId) { const u8 *scriptPtr; - u8 ret = 1; + u8 numTrainers = 1; u8 approachDistance; if (InTrainerHill() == TRUE) @@ -268,16 +283,16 @@ static u8 CheckTrainer(u8 objectEventId) if (GetMonsStateToDoubles_2() != 0) return 0; - ret = 2; + numTrainers = 2; } gApproachingTrainers[gNoOfApproachingTrainers].objectEventId = objectEventId; gApproachingTrainers[gNoOfApproachingTrainers].trainerScriptPtr = scriptPtr; gApproachingTrainers[gNoOfApproachingTrainers].radius = approachDistance; - TrainerApproachPlayer(&gObjectEvents[objectEventId], approachDistance - 1); + InitTrainerApproachTask(&gObjectEvents[objectEventId], approachDistance - 1); gNoOfApproachingTrainers++; - return ret; + return numTrainers; } return 0; @@ -357,8 +372,7 @@ static u8 GetTrainerApproachDistanceEast(struct ObjectEvent *trainerObj, s16 ran static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent *trainerObj, u8 approachDistance, u8 direction) { s16 x, y; - u8 unk19_temp; - u8 unk19b_temp; + u8 rangeX, rangeY; u8 i; u8 collision; @@ -376,17 +390,16 @@ static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent *trainerObj, u8 ap return 0; } - // preserve mapobj_unk_19 before clearing. - unk19_temp = trainerObj->rangeX; - unk19b_temp = trainerObj->rangeY; + rangeX = trainerObj->rangeX; + rangeY = trainerObj->rangeY; trainerObj->rangeX = 0; trainerObj->rangeY = 0; collision = GetCollisionAtCoords(trainerObj, x, y, direction); - trainerObj->rangeX = unk19_temp; - trainerObj->rangeY = unk19b_temp; - if (collision == 4) + trainerObj->rangeX = rangeX; + trainerObj->rangeY = rangeY; + if (collision == COLLISION_OBJECT_EVENT) return approachDistance; return 0; @@ -397,7 +410,7 @@ static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent *trainerObj, u8 ap #define tOutOfAshSpriteId data[4] #define tTrainerObjectEventId data[7] -static void TrainerApproachPlayer(struct ObjectEvent *trainerObj, u8 range) +static void InitTrainerApproachTask(struct ObjectEvent *trainerObj, u8 range) { struct Task *task; @@ -407,7 +420,7 @@ static void TrainerApproachPlayer(struct ObjectEvent *trainerObj, u8 range) task->tTrainerObjectEventId = gApproachingTrainers[gNoOfApproachingTrainers].objectEventId; } -static void sub_80B40C8(TaskFunc followupFunc) +static void StartTrainerApproach(TaskFunc followupFunc) { u8 taskId; TaskFunc taskFunc; @@ -419,7 +432,7 @@ static void sub_80B40C8(TaskFunc followupFunc) taskFunc = Task_RunTrainerSeeFuncList; SetTaskFuncWithFollowupFunc(taskId, taskFunc, followupFunc); - gTasks[taskId].tFuncId = 1; + gTasks[taskId].tFuncId = TRSEE_EXCLAMATION; taskFunc(taskId); } @@ -438,11 +451,12 @@ static void Task_RunTrainerSeeFuncList(u8 taskId) } } -static bool8 sub_80B4178(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +static bool8 TrainerSeeIdle(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { return FALSE; } +// TRSEE_EXCLAMATION static bool8 TrainerExclamationMark(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { u8 direction; @@ -451,10 +465,11 @@ static bool8 TrainerExclamationMark(u8 taskId, struct Task *task, struct ObjectE FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON); direction = GetFaceDirectionMovementAction(trainerObj->facingDirection); ObjectEventSetHeldMovement(trainerObj, direction); - task->tFuncId++; + task->tFuncId++; // TRSEE_EXCLAMATION_WAIT return TRUE; } +// TRSEE_EXCLAMATION_WAIT static bool8 WaitTrainerExclamationMark(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (FieldEffectActiveListContains(FLDEFF_EXCLAMATION_MARK_ICON)) @@ -463,15 +478,16 @@ static bool8 WaitTrainerExclamationMark(u8 taskId, struct Task *task, struct Obj } else { - task->tFuncId++; + task->tFuncId++; // TRSEE_MOVE_TO_PLAYER if (trainerObj->movementType == MOVEMENT_TYPE_TREE_DISGUISE || trainerObj->movementType == MOVEMENT_TYPE_MOUNTAIN_DISGUISE) - task->tFuncId = 6; - if (trainerObj->movementType == MOVEMENT_TYPE_HIDDEN) - task->tFuncId = 8; + task->tFuncId = TRSEE_REVEAL_DISGUISE; + if (trainerObj->movementType == MOVEMENT_TYPE_BURIED) + task->tFuncId = TRSEE_REVEAL_BURIED; return TRUE; } } +// TRSEE_MOVE_TO_PLAYER static bool8 TrainerMoveToPlayer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (!ObjectEventIsMovementOverridden(trainerObj) || ObjectEventClearHeldMovementIfFinished(trainerObj)) @@ -484,12 +500,13 @@ static bool8 TrainerMoveToPlayer(u8 taskId, struct Task *task, struct ObjectEven else { ObjectEventSetHeldMovement(trainerObj, MOVEMENT_ACTION_FACE_PLAYER); - task->tFuncId++; + task->tFuncId++; // TRSEE_PLAYER_FACE } } return FALSE; } +// TRSEE_PLAYER_FACE static bool8 PlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { struct ObjectEvent *playerObj; @@ -497,6 +514,7 @@ static bool8 PlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct O if (ObjectEventIsMovementOverridden(trainerObj) && !ObjectEventClearHeldMovementIfFinished(trainerObj)) return FALSE; + // Set trainer's movement type so they stop and remain facing that direction SetTrainerMovementType(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection)); TryOverrideTemplateCoordsForObjectEvent(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection)); OverrideTemplateCoordsForObjectEvent(trainerObj); @@ -507,10 +525,11 @@ static bool8 PlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct O sub_808BCE8(); ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetFaceDirectionMovementAction(GetOppositeDirection(trainerObj->facingDirection))); - task->tFuncId++; + task->tFuncId++; // TRSEE_PLAYER_FACE_WAIT return FALSE; } +// TRSEE_PLAYER_FACE_WAIT static bool8 WaitPlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { struct ObjectEvent *playerObj = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -521,26 +540,29 @@ static bool8 WaitPlayerFaceApproachingTrainer(u8 taskId, struct Task *task, stru return FALSE; } +// TRSEE_REVEAL_DISGUISE static bool8 RevealDisguisedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (!ObjectEventIsMovementOverridden(trainerObj) || ObjectEventClearHeldMovementIfFinished(trainerObj)) { ObjectEventSetHeldMovement(trainerObj, MOVEMENT_ACTION_REVEAL_TRAINER); - task->tFuncId++; + task->tFuncId++; // TRSEE_REVEAL_DISGUISE_WAIT } return FALSE; } +// TRSEE_REVEAL_DISGUISE_WAIT static bool8 WaitRevealDisguisedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (ObjectEventClearHeldMovementIfFinished(trainerObj)) - task->tFuncId = 3; + task->tFuncId = TRSEE_MOVE_TO_PLAYER; return FALSE; } -static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +// TRSEE_REVEAL_BURIED +static bool8 RevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (!ObjectEventIsMovementOverridden(trainerObj) || ObjectEventClearHeldMovementIfFinished(trainerObj)) @@ -551,7 +573,8 @@ static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEven return FALSE; } -static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +// TRSEE_BURIED_POP_OUT +static bool8 PopOutOfAshBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (ObjectEventCheckHeldMovementStatus(trainerObj)) { @@ -565,7 +588,8 @@ static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct Objec return FALSE; } -static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +// TRSEE_BURIED_JUMP +static bool8 JumpInPlaceBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { struct Sprite *sprite; @@ -584,33 +608,34 @@ static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct Objec return FALSE; } -static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +// TRSEE_REVEAL_BURIED_WAIT +static bool8 WaitRevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (!FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) - task->tFuncId = 3; + task->tFuncId = TRSEE_MOVE_TO_PLAYER; return FALSE; } -#undef tFuncId #undef tTrainerRange #undef tOutOfAshSpriteId #undef tTrainerObjectEventId -static void sub_80B44C8(u8 taskId) +#define tObjEvent data[1] + +static void Task_SetBuriedTrainerMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; struct ObjectEvent *objEvent; - // another objEvent loaded into by loadword? - LoadWordFromTwoHalfwords(&task->data[1], (u32 *)&objEvent); + LoadWordFromTwoHalfwords(&task->tObjEvent, (u32 *)&objEvent); if (!task->data[7]) { ObjectEventClearHeldMovement(objEvent); task->data[7]++; } - sTrainerSeeFuncList2[task->data[0]](taskId, task, objEvent); - if (task->data[0] == 3 && !FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) + sTrainerSeeFuncList2[task->tFuncId](taskId, task, objEvent); + if (task->tFuncId == ((int)ARRAY_COUNT(sTrainerSeeFuncList2) - 1) && !FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) { SetTrainerMovementType(objEvent, GetTrainerFacingDirectionMovementType(objEvent->facingDirection)); TryOverrideTemplateCoordsForObjectEvent(objEvent, GetTrainerFacingDirectionMovementType(objEvent->facingDirection)); @@ -622,17 +647,18 @@ static void sub_80B44C8(u8 taskId) } } -void sub_80B4578(struct ObjectEvent *var) +// Called when a buried Trainer has the reveal_trainer movement applied, from direct interaction +void SetBuriedTrainerMovement(struct ObjectEvent *objEvent) { - StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var); + StoreWordInTwoHalfwords(&gTasks[CreateTask(Task_SetBuriedTrainerMovement, 0)].tObjEvent, (u32)objEvent); } -void EndTrainerApproach(void) +void DoTrainerApproach(void) { - sub_80B40C8(Task_DestroyTrainerApproachTask); + StartTrainerApproach(Task_EndTrainerApproach); } -static void Task_DestroyTrainerApproachTask(u8 taskId) +static void Task_EndTrainerApproach(u8 taskId) { DestroyTask(taskId); EnableBothScriptContexts(); @@ -730,10 +756,10 @@ static void SpriteCB_TrainerIcons(struct Sprite *sprite) { struct Sprite *objEventSprite = &gSprites[gObjectEvents[objEventId].spriteId]; sprite->sData4 += sprite->sData3; - sprite->pos1.x = objEventSprite->pos1.x; - sprite->pos1.y = objEventSprite->pos1.y - 16; - sprite->pos2.x = objEventSprite->pos2.x; - sprite->pos2.y = objEventSprite->pos2.y + sprite->sData4; + sprite->x = objEventSprite->x; + sprite->y = objEventSprite->y - 16; + sprite->x2 = objEventSprite->x2; + sprite->y2 = objEventSprite->y2 + sprite->sData4; if (sprite->sData4) sprite->sData3++; else diff --git a/src/tv.c b/src/tv.c index 748915c7a4..14a0dc53ff 100644 --- a/src/tv.c +++ b/src/tv.c @@ -36,22 +36,33 @@ #include "data.h" #include "constants/battle_frontier.h" #include "constants/contest.h" +#include "constants/event_objects.h" #include "constants/items.h" #include "constants/layouts.h" +#include "constants/lilycove_lady.h" #include "constants/maps.h" #include "constants/metatile_behaviors.h" +#include "constants/metatile_labels.h" #include "constants/moves.h" #include "constants/region_map_sections.h" #include "constants/script_menu.h" -#include "constants/tv.h" - -// Static type declarations #define LAST_TVSHOW_IDX (TV_SHOWS_COUNT - 1) -#define rbernoulli(num, den) TV_BernoulliTrial(0xFFFF * (num) / (den)) +#define rbernoulli(num, den) BernoulliTrial(0xFFFF * (num) / (den)) -// Static RAM declarations +enum { + TVGROUP_NONE, + TVGROUP_UNUSED, + TVGROUP_NORMAL, + TVGROUP_RECORD_MIX, + TVGROUP_OUTBREAK, +}; + +enum { + SLOT_MACHINE, + ROULETTE, +}; s8 sCurTVShowSlot; u16 sTV_SecretBaseVisitMovesTemp[8]; @@ -66,82 +77,77 @@ static u8 sTVShowMixingNumPlayers; static u8 sTVShowNewsMixingNumPlayers; static s8 sTVShowMixingCurSlot; -EWRAM_DATA u16 sPokemonAnglerSpecies = 0; -EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0; -EWRAM_DATA u16 sFindThatGamerCoinsSpent = 0; -EWRAM_DATA u8 sFindThatGamerWhichGame = SLOT_MACHINE; -EWRAM_DATA ALIGNED(4) u8 sRecordMixingPartnersWithoutShowsToShare = 0; -EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0; -EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {}; +static EWRAM_DATA u16 sPokemonAnglerSpecies = 0; +static EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0; +static EWRAM_DATA u16 sFindThatGamerCoinsSpent = 0; +static EWRAM_DATA u8 sFindThatGamerWhichGame = SLOT_MACHINE; +static EWRAM_DATA ALIGNED(4) u8 sRecordMixingPartnersWithoutShowsToShare = 0; +static EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0; +static EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {}; -// Static ROM declarations -#if !defined(NONMATCHING) && MODERN -#define static -#endif -void ClearPokemonNews(void); -u8 GetTVChannelByShowType(u8 kind); -u8 FindFirstActiveTVShowThatIsNotAMassOutbreak(void); -u8 CheckForBigMovieOrEmergencyNewsOnTV(void); -void SetTVMetatilesOnMap(int width, int height, u16 tileId); -u8 FindAnyTVNewsOnTheAir(void); -bool8 IsTVShowInSearchOfTrainersAiring(void); -void TakeTVShowInSearchOfTrainersOffTheAir(void); -bool8 TV_BernoulliTrial(u16 ratio); -s8 FindEmptyTVSlotBeyondFirstFiveShowsOfArray(TVShow *shows); -bool8 HasMixableShowAlreadyBeenSpawnedWithPlayerID(u8 kind, bool8 flag); -void tv_store_id_3x(TVShow *show); -void DeleteTVShowInArrayByIdx(TVShow *shows, u8 idx); -s8 FindEmptyTVSlotWithinFirstFiveShowsOfArray(TVShow *shows); -void FindActiveBroadcastByShowType_SetScriptResult(u8 kind); +static void ClearPokeNews(void); +static u8 GetTVGroupByShowId(u8); +static u8 FindFirstActiveTVShowThatIsNotAMassOutbreak(void); +static void SetTVMetatilesOnMap(int, int, u16); +static u8 FindAnyPokeNewsOnTheAir(void); +static void TakeGabbyAndTyOffTheAir(void); +static bool8 BernoulliTrial(u16 ratio); +static s8 FindFirstEmptyRecordMixTVShowSlot(TVShow *); +static bool8 IsRecordMixShowAlreadySpawned(u8, bool8); +static void StorePlayerIdInRecordMixShow(TVShow *); +static void DeleteTVShowInArrayByIdx(TVShow *, u8); +static s8 FindFirstEmptyNormalTVShowSlot(TVShow *); +static void TryReplaceOldTVShowOfKind(u8); static void InterviewBefore_BravoTrainerPkmnProfile(void); static void InterviewBefore_NameRater(void); -u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies); -static void sub_80EFA88(void); -static void sub_80EF93C(TVShow *shows); -s8 sub_80EEE30(PokeNews *pokeNews); -bool8 sub_80EF0E4(u8 newsKind); -void ClearPokemonNewsI(u8 i); -static void sub_80F1254(TVShow *shows); -static void sub_80F12A4(TVShow *shows); -static void sub_80F0358(TVShow *player1, TVShow *player2, TVShow *player3, TVShow *player4); -static void sub_80F0C04(void); -static void sub_80F0708(void); -static void sub_80F0B64(void); -static s8 sub_80F06D0(TVShow *tvShows); -static bool8 sub_80F049C(TVShow *dest[], TVShow *src[], u8 idx); -static bool8 sub_80F0580(TVShow *tv1, TVShow *tv2, u8 idx); -static bool8 sub_80F05E8(TVShow *tv1, TVShow *tv2, u8 idx); -static bool8 sub_80F0668(TVShow *tv1, TVShow *tv2, u8 idx); -void SetTvShowInactive(u8 showIdx); -static void sub_80F0B24(u16 species, u8 showIdx); -static void sub_80F0D60(PokeNews *player1, PokeNews *player2, PokeNews *player3, PokeNews *player4); -static void sub_80F0EEC(void); -static void sub_80F0F24(void); -static s8 sub_80F0ECC(PokeNews *pokeNews, u8 idx); -static void sub_80F0E58(PokeNews *dest[], PokeNews *src[]); -static bool8 sub_80F0E84(PokeNews *dest, PokeNews *src, s8 slot); -void TVShowDone(void); +static u16 GetRandomDifferentSpeciesSeenByPlayer(u16); +static void Script_FindFirstEmptyNormalTVShowSlot(void); +static void CompactTVShowArray(TVShow *); +static s8 GetFirstEmptyPokeNewsSlot(PokeNews *); +static bool8 IsAddingPokeNewsDisallowed(u8); +static void ClearPokeNewsBySlot(u8); +static void TranslateRubyShows(TVShow *); +static void TranslateJapaneseEmeraldShows(TVShow *); +static void SetMixedTVShows(TVShow *, TVShow *, TVShow *, TVShow *); +static void DeleteExcessMixedShows(void); +static void DeactivateShowsWithUnseenSpecies(void); +static void DeactivateGameCompleteShowsIfNotUnlocked(void); +static s8 FindInactiveShowInArray(TVShow *); +static bool8 TryMixTVShow(TVShow *[], TVShow *[], u8); +static bool8 TryMixNormalTVShow(TVShow *, TVShow *, u8); +static bool8 TryMixRecordMixTVShow(TVShow *, TVShow *, u8); +static bool8 TryMixOutbreakTVShow(TVShow *, TVShow *, u8); +static void DeactivateShow(u8 showIdx); +static void DeactivateShowIfNotSeenSpecies(u16, u8); +static void SetMixedPokeNews(PokeNews *, PokeNews *, PokeNews *, PokeNews *); +static void ClearInvalidPokeNews(void); +static void ClearPokeNewsIfGameNotComplete(void); +static s8 GetPokeNewsSlotIfActive(PokeNews *, u8); +static void InitTryMixPokeNewsShow(PokeNews *[], PokeNews *[]); +static bool8 TryMixPokeNewsShow(PokeNews *, PokeNews *, s8); +static void TVShowDone(void); static void InterviewAfter_FanClubLetter(void); static void InterviewAfter_RecentHappenings(void); static void InterviewAfter_PkmnFanClubOpinions(void); -static void InterviewAfter_DummyShow4(void); +static void InterviewAfter_Dummy(void); static void InterviewAfter_BravoTrainerPokemonProfile(void); static void InterviewAfter_BravoTrainerBattleTowerProfile(void); static void InterviewAfter_ContestLiveUpdates(void); -void UpdateWorldOfMastersAndPutItOnTheAir(void); -void PutPokemonTodayFailedOnTheAir(void); -static void sub_80ED718(void); -static void sub_80EED88(void); -void TV_SortPurchasesByQuantity(void); -static void UpdateMassOutbreakTimeLeft(u16 days); -static void TryEndMassOutbreak(u16 days); -static void sub_80EF120(u16 days); -static void sub_80EDA48(u16 days); -static void sub_80EEB98(u16 days); -void PutFishingAdviceShowOnTheAir(void); -u8 TV_MonDataIdxToRibbon(u8 monDataIdx); -static void sub_80EEBF4(u8 actionIdx); -bool8 IsPriceDiscounted(u8 newsKind); +static void InitWorldOfMastersShowAttempt(void); +static void TryPutPokemonTodayFailedOnTheAir(void); +static void TryStartRandomMassOutbreak(void); +static void TryPutRandomPokeNewsOnAir(void); +static void SortPurchasesByQuantity(void); +static void UpdateMassOutbreakTimeLeft(u16); +static void TryEndMassOutbreak(u16); +static void UpdatePokeNewsTimeLeft(u16); +static void ResolveWorldOfMastersShow(u16); +static void ResolveNumberOneShow(u16); +static void TryPutFishingAdviceOnAir(void); +static u8 MonDataIdxToRibbon(u8); +static void TryPutNumberOneOnAir(u8); +static bool8 IsPriceDiscounted(u8); +static void TryPutWorldOfMastersOnAir(void); static void InterviewBefore_FanClubLetter(void); static void InterviewBefore_RecentHappenings(void); static void InterviewBefore_PkmnFanClubOpinions(void); @@ -150,7 +156,7 @@ static void InterviewBefore_BravoTrainerBTProfile(void); static void InterviewBefore_ContestLiveUpdates(void); static void InterviewBefore_3CheersForPokeblocks(void); static void InterviewBefore_FanClubSpecial(void); -void ChangeBoxPokemonNickname_CB(void); +static void ChangeBoxPokemonNickname_CB(void); static void DoTVShowPokemonFanClubLetter(void); static void DoTVShowRecentHappenings(void); static void DoTVShowPokemonFanClubOpinions(void); @@ -182,9 +188,7 @@ static void DoTVShowPokemonNewsBattleFrontier(void); static void DoTVShowWhatsNo1InHoennToday(void); static void DoTVShowSecretBaseSecrets(void); static void DoTVShowSafariFanClub(void); -static void DoTVShowPokemonContestLiveUpdates2(void); - -// .rodata +static void DoTVShowLilycoveContestLady(void); static const struct { u16 species; @@ -332,19 +336,19 @@ static const u8 *const sTVPokemonTodaySuccessfulTextGroup[] = { }; static const u8 *const sTVTodaysSmartShopperTextGroup[] = { - gTVTodaysSmartShopperText00, - gTVTodaysSmartShopperText01, - gTVTodaysSmartShopperText02, - gTVTodaysSmartShopperText03, - gTVTodaysSmartShopperText04, - gTVTodaysSmartShopperText05, - gTVTodaysSmartShopperText06, - gTVTodaysSmartShopperText07, - gTVTodaysSmartShopperText08, - gTVTodaysSmartShopperText09, - gTVTodaysSmartShopperText10, - gTVTodaysSmartShopperText11, - gTVTodaysSmartShopperText12 + [SMARTSHOPPER_STATE_INTRO] = SmartShopper_Text_Intro, + [SMARTSHOPPER_STATE_CLERK_NORMAL] = SmartShopper_Text_ClerkNormal, + [SMARTSHOPPER_STATE_RAND_COMMENT_1] = SmartShopper_Text_RandomComment1, + [SMARTSHOPPER_STATE_RAND_COMMENT_2] = SmartShopper_Text_RandomComment2, + [SMARTSHOPPER_STATE_RAND_COMMENT_3] = SmartShopper_Text_RandomComment3, + [SMARTSHOPPER_STATE_RAND_COMMENT_4] = SmartShopper_Text_RandomComment4, + [SMARTSHOPPER_STATE_SECOND_ITEM] = SmartShopper_Text_SecondItem, + [SMARTSHOPPER_STATE_THIRD_ITEM] = SmartShopper_Text_ThirdItem, + [SMARTSHOPPER_STATE_DURING_SALE] = SmartShopper_Text_DuringSale, + [SMARTSHOPPER_STATE_OUTRO_NORMAL] = SmartShopper_Text_OutroNormal, + [SMARTSHOPPER_STATE_IS_VIP] = SmartShopper_Text_IsVIP, + [SMARTSHOPPER_STATE_CLERK_MAX] = SmartShopper_Text_ClerkMax, + [SMARTSHOPPER_STATE_OUTRO_MAX] = SmartShopper_Text_OutroMax }; static const u8 *const sTVBravoTrainerTextGroup[] = { @@ -464,11 +468,11 @@ static const u8 *const sTVNameRaterTextGroup[] = { gTVNameRaterText18 }; -static const u8 *const sTVPokemonContestLiveUpdates2TextGroup[] = { - gTVPokemonContestLiveUpdates2Text00, - gTVPokemonContestLiveUpdates2Text01, - gTVPokemonContestLiveUpdates2Text02, - gTVPokemonContestLiveUpdates2Text03 +static const u8 *const sTVLilycoveContestLadyTextGroup[] = { + [CONTESTLADYLIVE_STATE_INTRO] = ContestLadyShow_Text_Intro, + [CONTESTLADYLIVE_STATE_WON] = ContestLadyShow_Text_Won, + [CONTESTLADYLIVE_STATE_LOST] = ContestLadyShow_Text_Lost, + [CONTESTLADYLIVE_STATE_LOST_BADLY] = ContestLadyShow_Text_LostBadly }; static const u8 *const sTVPokemonTodayFailedTextGroup[] = { @@ -507,13 +511,13 @@ static const u8 *const sTVTodaysRivalTrainerTextGroup[] = { }; static const u8 *const sTVDewfordTrendWatcherNetworkTextGroup[] = { - gTVDewfordTrendWatcherNetworkText00, - gTVDewfordTrendWatcherNetworkText01, - gTVDewfordTrendWatcherNetworkText02, - gTVDewfordTrendWatcherNetworkText03, - gTVDewfordTrendWatcherNetworkText04, - gTVDewfordTrendWatcherNetworkText05, - gTVDewfordTrendWatcherNetworkText06 + [TRENDWATCHER_STATE_INTRO] = TrendWatcher_Text_Intro, + [TRENDWATCHER_STATE_TAUGHT_MALE] = TrendWatcher_Text_MaleTaughtMePhrase, + [TRENDWATCHER_STATE_TAUGHT_FEMALE] = TrendWatcher_Text_FemaleTaughtMePhrase, + [TRENDWATCHER_STATE_PHRASE_HOPELESS] = TrendWatcher_Text_PhraseWasHopeless, + [TRENDWATCHER_STATE_BIGGER_MALE] = TrendWatcher_Text_MaleTellMeBigger, + [TRENDWATCHER_STATE_BIGGER_FEMALE] = TrendWatcher_Text_FemaleTellMeBigger, + [TRENDWATCHER_STATE_OUTRO] = TrendWatcher_Text_Outro }; static const u8 *const sTVHoennTreasureInvestisatorsTextGroup[] = { @@ -592,22 +596,22 @@ static const u8 *const sTVTrainerFanClubTextGroup[] = { }; static const u8 *const sTVCutiesTextGroup[] = { - gTVCutiesText00, - gTVCutiesText01, - gTVCutiesText02, - gTVCutiesText03, - gTVCutiesText04, - gTVCutiesText05, - gTVCutiesText06, - gTVCutiesText07, - gTVCutiesText08, - gTVCutiesText09, - gTVCutiesText10, - gTVCutiesText11, - gTVCutiesText12, - gTVCutiesText13, - gTVCutiesText14, - gTVCutiesText15 + [SPOTCUTIES_STATE_INTRO] = TVSpotTheCuties_Text_Intro, + [SPOTCUTIES_STATE_RIBBONS_LOW] = TVSpotTheCuties_Text_RibbonsLow, + [SPOTCUTIES_STATE_RIBBONS_MID] = TVSpotTheCuties_Text_RibbonsMid, + [SPOTCUTIES_STATE_RIBBONS_HIGH] = TVSpotTheCuties_Text_RibbonsHigh, + [SPOTCUTIES_STATE_RIBBON_INTRO] = TVSpotTheCuties_Text_RibbonIntro, + [SPOTCUTIES_STATE_RIBBON_CHAMPION] = TVSpotTheCuties_Text_RibbonChampion, + [SPOTCUTIES_STATE_RIBBON_COOL] = TVSpotTheCuties_Text_RibbonCool, + [SPOTCUTIES_STATE_RIBBON_BEAUTY] = TVSpotTheCuties_Text_RibbonBeauty, + [SPOTCUTIES_STATE_RIBBON_CUTE] = TVSpotTheCuties_Text_RibbonCute, + [SPOTCUTIES_STATE_RIBBON_SMART] = TVSpotTheCuties_Text_RibbonSmart, + [SPOTCUTIES_STATE_RIBBON_TOUGH] = TVSpotTheCuties_Text_RibbonTough, + [SPOTCUTIES_STATE_RIBBON_WINNING] = TVSpotTheCuties_Text_RibbonWinning, + [SPOTCUTIES_STATE_RIBBON_VICTORY] = TVSpotTheCuties_Text_RibbonVictory, + [SPOTCUTIES_STATE_RIBBON_ARTIST] = TVSpotTheCuties_Text_RibbonArtist, + [SPOTCUTIES_STATE_RIBBON_EFFORT] = TVSpotTheCuties_Text_RibbonEffort, + [SPOTCUTIES_STATE_OUTRO] = TVSpotTheCuties_Text_Outro }; static const u8 *const sTVPokemonNewsBattleFrontierTextGroup[] = { @@ -755,23 +759,18 @@ const u8 sTVSecretBaseSecretsActions[NUM_SECRET_BASE_FLAGS] = SBSECRETS_NUM_STATES // SECRET_BASE_UNUSED_FLAG. Odd that this is included, if it were used it would overflow sTVSecretBaseSecretsTextGroup }; -// .text - void ClearTVShowData(void) { - u8 i; - u8 j; + u8 i, j; - for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->tvShows); i ++) + for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->tvShows); i++) { gSaveBlock1Ptr->tvShows[i].commonInit.kind = 0; gSaveBlock1Ptr->tvShows[i].commonInit.active = 0; - for (j = 0; j < ARRAY_COUNT(gSaveBlock1Ptr->tvShows[i].commonInit.pad02); j ++) - { - gSaveBlock1Ptr->tvShows[i].commonInit.pad02[j] = 0; - } + for (j = 0; j < ARRAY_COUNT(gSaveBlock1Ptr->tvShows[i].commonInit.data); j++) + gSaveBlock1Ptr->tvShows[i].commonInit.data[j] = 0; } - ClearPokemonNews(); + ClearPokeNews(); } u8 GetRandomActiveShowIdx(void) @@ -781,7 +780,8 @@ u8 GetRandomActiveShowIdx(void) u8 selIdx; TVShow *show; - for (i = 5; i < ARRAY_COUNT(gSaveBlock1Ptr->tvShows) - 1; i ++) + // Include all normal TV shows, and up through any present Record Mix shows + for (i = NUM_NORMAL_TVSHOW_SLOTS; i < LAST_TVSHOW_IDX; i++) { if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_OFF_AIR) break; @@ -790,7 +790,7 @@ u8 GetRandomActiveShowIdx(void) selIdx = j; do { - if (GetTVChannelByShowType(gSaveBlock1Ptr->tvShows[j].common.kind) != 4) + if (GetTVGroupByShowId(gSaveBlock1Ptr->tvShows[j].common.kind) != TVGROUP_OUTBREAK) { if (gSaveBlock1Ptr->tvShows[j].common.active == TRUE) return j; @@ -805,7 +805,7 @@ u8 GetRandomActiveShowIdx(void) if (j == 0) j = ARRAY_COUNT(gSaveBlock1Ptr->tvShows) - 2; else - j --; + j--; } while (j != selIdx); return 0xFF; @@ -813,88 +813,88 @@ u8 GetRandomActiveShowIdx(void) u8 FindAnyTVShowOnTheAir(void) { - u8 show; - - show = GetRandomActiveShowIdx(); - if (show == 0xFF) - { + u8 slot = GetRandomActiveShowIdx(); + if (slot == 0xFF) return 0xFF; - } - if (gSaveBlock1Ptr->outbreakPokemonSpecies != SPECIES_NONE && gSaveBlock1Ptr->tvShows[show].common.kind == TVSHOW_MASS_OUTBREAK) - { + + if (gSaveBlock1Ptr->outbreakPokemonSpecies != SPECIES_NONE + && gSaveBlock1Ptr->tvShows[slot].common.kind == TVSHOW_MASS_OUTBREAK) return FindFirstActiveTVShowThatIsNotAMassOutbreak(); - } - return show; + + return slot; } void UpdateTVScreensOnMap(int width, int height) { FlagSet(FLAG_SYS_TV_WATCH); - switch (CheckForBigMovieOrEmergencyNewsOnTV()) + switch (CheckForPlayersHouseNews()) { - case 1: - SetTVMetatilesOnMap(width, height, 0x3); - break; - case 2: - break; - default: - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_COVE_LILY_MOTEL_1F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_COVE_LILY_MOTEL_1F)) - { - SetTVMetatilesOnMap(width, height, 0x3); - } - else if (FlagGet(FLAG_SYS_TV_START) && (FindAnyTVShowOnTheAir() != 0xFF || FindAnyTVNewsOnTheAir() != 0xFF || IsTVShowInSearchOfTrainersAiring())) - { - FlagClear(FLAG_SYS_TV_WATCH); - SetTVMetatilesOnMap(width, height, 0x3); - } - break; + case PLAYERS_HOUSE_TV_LATI: + SetTVMetatilesOnMap(width, height, METATILE_Building_TV_On); + break; + case PLAYERS_HOUSE_TV_MOVIE: + // Don't flash TV for movie text in player's house + break; +// case PLAYERS_HOUSE_TV_NONE: + default: + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_COVE_LILY_MOTEL_1F) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_COVE_LILY_MOTEL_1F)) + { + // NPC in Lilycove Hotel is always watching TV + SetTVMetatilesOnMap(width, height, METATILE_Building_TV_On); + } + else if (FlagGet(FLAG_SYS_TV_START) && (FindAnyTVShowOnTheAir() != 0xFF || FindAnyPokeNewsOnTheAir() != 0xFF || IsGabbyAndTyShowOnTheAir())) + { + FlagClear(FLAG_SYS_TV_WATCH); + SetTVMetatilesOnMap(width, height, METATILE_Building_TV_On); + } + break; } } -void SetTVMetatilesOnMap(int width, int height, u16 tileId) +static void SetTVMetatilesOnMap(int width, int height, u16 tileId) { int x; int y; - for (y = 0; y < height; y ++) + for (y = 0; y < height; y++) { - for (x = 0; x < width; x ++) + for (x = 0; x < width; x++) { if (MapGridGetMetatileBehaviorAt(x, y) == MB_TELEVISION) - { MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); - } } } } void TurnOffTVScreen(void) { - SetTVMetatilesOnMap(gBackupMapLayout.width, gBackupMapLayout.height, 0x0002); + SetTVMetatilesOnMap(gBackupMapLayout.width, gBackupMapLayout.height, METATILE_Building_TV_Off); DrawWholeMapView(); } void TurnOnTVScreen(void) { - SetTVMetatilesOnMap(gBackupMapLayout.width, gBackupMapLayout.height, 0x0003); + SetTVMetatilesOnMap(gBackupMapLayout.width, gBackupMapLayout.height, METATILE_Building_TV_On); DrawWholeMapView(); } +// gSpecialVar_0x8004 here is set from GetRandomActiveShowIdx in EventScript_TryDoTVShow u8 GetSelectedTVShow(void) { return gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004].common.kind; } -u8 FindFirstActiveTVShowThatIsNotAMassOutbreak(void) +static u8 FindFirstActiveTVShowThatIsNotAMassOutbreak(void) { u8 i; - for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->tvShows) - 1; i ++) + for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->tvShows) - 1; i++) { - if (gSaveBlock1Ptr->tvShows[i].common.kind != TVSHOW_OFF_AIR && gSaveBlock1Ptr->tvShows[i].common.kind != TVSHOW_MASS_OUTBREAK && gSaveBlock1Ptr->tvShows[i].common.active == TRUE) - { + if (gSaveBlock1Ptr->tvShows[i].common.kind != TVSHOW_OFF_AIR + && gSaveBlock1Ptr->tvShows[i].common.kind != TVSHOW_MASS_OUTBREAK + && gSaveBlock1Ptr->tvShows[i].common.active == TRUE) return i; - } } return 0xFF; } @@ -905,9 +905,8 @@ u8 GetNextActiveShowIfMassOutbreak(void) tvShow = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; if (tvShow->common.kind == TVSHOW_MASS_OUTBREAK && gSaveBlock1Ptr->outbreakPokemonSpecies != SPECIES_NONE) - { return FindFirstActiveTVShowThatIsNotAMassOutbreak(); - } + return gSpecialVar_0x8004; } @@ -943,28 +942,23 @@ void GabbyAndTyBeforeInterview(void) gSaveBlock1Ptr->gabbyAndTyData.lastMove = gBattleResults.lastUsedMovePlayer; if (gSaveBlock1Ptr->gabbyAndTyData.battleNum != 0xFF) { - gSaveBlock1Ptr->gabbyAndTyData.battleNum ++; + gSaveBlock1Ptr->gabbyAndTyData.battleNum++; } gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn = gBattleResults.playerMonWasDamaged; + if (gBattleResults.playerFaintCounter != 0) - { gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon = TRUE; - } else - { gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon = FALSE; - } + if (gBattleResults.numHealingItemsUsed != 0) - { gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem = TRUE; - } else - { gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem = FALSE; - } + if (!gBattleResults.usedMasterBall) { - for (i = 0; i < POKEBALL_COUNT - 1; i ++) + for (i = 0; i < POKEBALL_COUNT - 1; i++) { if (gBattleResults.catchAttempts[i]) { @@ -975,9 +969,11 @@ void GabbyAndTyBeforeInterview(void) } else { + // Player threw a Master Ball at Gabby and Ty gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall = TRUE; } - TakeTVShowInSearchOfTrainersOffTheAir(); + + TakeGabbyAndTyOffTheAir(); if (gSaveBlock1Ptr->gabbyAndTyData.lastMove == MOVE_NONE) { FlagSet(FLAG_TEMP_1); @@ -995,7 +991,7 @@ void GabbyAndTyAfterInterview(void) IncrementGameStat(GAME_STAT_GOT_INTERVIEWED); } -void TakeTVShowInSearchOfTrainersOffTheAir(void) +static void TakeGabbyAndTyOffTheAir(void) { gSaveBlock1Ptr->gabbyAndTyData.onAir = FALSE; } @@ -1003,20 +999,19 @@ void TakeTVShowInSearchOfTrainersOffTheAir(void) u8 GabbyAndTyGetBattleNum(void) { if (gSaveBlock1Ptr->gabbyAndTyData.battleNum > 5) - { return (gSaveBlock1Ptr->gabbyAndTyData.battleNum % 3) + 6; - } + return gSaveBlock1Ptr->gabbyAndTyData.battleNum; } -bool8 IsTVShowInSearchOfTrainersAiring(void) +bool8 IsGabbyAndTyShowOnTheAir(void) { return gSaveBlock1Ptr->gabbyAndTyData.onAir; } bool8 GabbyAndTyGetLastQuote(void) { - if (gSaveBlock1Ptr->gabbyAndTyData.quote[0] == 0xFFFF) + if (gSaveBlock1Ptr->gabbyAndTyData.quote[0] == EC_EMPTY_WORD) { return FALSE; } @@ -1028,60 +1023,56 @@ bool8 GabbyAndTyGetLastQuote(void) u8 GabbyAndTyGetLastBattleTrivia(void) { if (!gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn2) - { return 1; - } + if (gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall2) - { return 2; - } + if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem2) - { return 3; - } + if (gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon2) - { return 4; - } + return 0; } -void GabbyAndTySetScriptVarsToObjectEventLocalIds(void) +void GetGabbyAndTyLocalIds(void) { switch (GabbyAndTyGetBattleNum()) { - case 1: - gSpecialVar_0x8004 = 14; - gSpecialVar_0x8005 = 13; - break; - case 2: - gSpecialVar_0x8004 = 5; - gSpecialVar_0x8005 = 6; - break; - case 3: - gSpecialVar_0x8004 = 18; - gSpecialVar_0x8005 = 17; - break; - case 4: - gSpecialVar_0x8004 = 21; - gSpecialVar_0x8005 = 22; - break; - case 5: - gSpecialVar_0x8004 = 8; - gSpecialVar_0x8005 = 9; - break; - case 6: - gSpecialVar_0x8004 = 19; - gSpecialVar_0x8005 = 20; - break; - case 7: - gSpecialVar_0x8004 = 23; - gSpecialVar_0x8005 = 24; - break; - case 8: - gSpecialVar_0x8004 = 10; - gSpecialVar_0x8005 = 11; - break; + case 1: + gSpecialVar_0x8004 = 14; + gSpecialVar_0x8005 = 13; + break; + case 2: + gSpecialVar_0x8004 = 5; + gSpecialVar_0x8005 = 6; + break; + case 3: + gSpecialVar_0x8004 = 18; + gSpecialVar_0x8005 = 17; + break; + case 4: + gSpecialVar_0x8004 = 21; + gSpecialVar_0x8005 = 22; + break; + case 5: + gSpecialVar_0x8004 = 8; + gSpecialVar_0x8005 = 9; + break; + case 6: + gSpecialVar_0x8004 = 19; + gSpecialVar_0x8005 = 20; + break; + case 7: + gSpecialVar_0x8004 = 23; + gSpecialVar_0x8005 = 24; + break; + case 8: + gSpecialVar_0x8004 = 10; + gSpecialVar_0x8005 = 11; + break; } } @@ -1089,88 +1080,85 @@ void InterviewAfter(void) { switch (gSpecialVar_0x8005) { - case TVSHOW_FAN_CLUB_LETTER: - InterviewAfter_FanClubLetter(); - break; - case TVSHOW_RECENT_HAPPENINGS: - InterviewAfter_RecentHappenings(); - break; - case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - InterviewAfter_PkmnFanClubOpinions(); - break; - case TVSHOW_UNKN_SHOWTYPE_04: - InterviewAfter_DummyShow4(); - break; - case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - InterviewAfter_BravoTrainerPokemonProfile(); - break; - case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - InterviewAfter_BravoTrainerBattleTowerProfile(); - break; - case TVSHOW_CONTEST_LIVE_UPDATES: - InterviewAfter_ContestLiveUpdates(); - break; + case TVSHOW_FAN_CLUB_LETTER: + InterviewAfter_FanClubLetter(); + break; + case TVSHOW_RECENT_HAPPENINGS: + InterviewAfter_RecentHappenings(); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + InterviewAfter_PkmnFanClubOpinions(); + break; + case TVSHOW_DUMMY: + InterviewAfter_Dummy(); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + InterviewAfter_BravoTrainerPokemonProfile(); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + InterviewAfter_BravoTrainerBattleTowerProfile(); + break; + case TVSHOW_CONTEST_LIVE_UPDATES: + InterviewAfter_ContestLiveUpdates(); + break; } } -void PutPokemonTodayCaughtOnAir(void) +void TryPutPokemonTodayOnAir(void) { u8 i; - u16 ct; + u16 ballsUsed; TVShow *show; u32 language2; u16 itemLastUsed; - ct = 0; - sub_80EED88(); - sub_80ED718(); + ballsUsed = 0; + TryPutRandomPokeNewsOnAir(); + TryStartRandomMassOutbreak(); + + // Try either the Failed or Caught version of the show if (gBattleResults.caughtMonSpecies == SPECIES_NONE) { - PutPokemonTodayFailedOnTheAir(); + TryPutPokemonTodayFailedOnTheAir(); } else { - UpdateWorldOfMastersAndPutItOnTheAir(); + InitWorldOfMastersShowAttempt(); if (!rbernoulli(1, 1) && StringCompare(gSpeciesNames[gBattleResults.caughtMonSpecies], gBattleResults.caughtMonNick)) { - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_CAUGHT, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_POKEMON_TODAY_CAUGHT, FALSE) != TRUE) { - for (i = 0; i < POKEBALL_COUNT - 1; i ++) + for (i = 0; i < POKEBALL_COUNT - 1; i++) + ballsUsed += gBattleResults.catchAttempts[i]; + + if (ballsUsed != 0 || gBattleResults.usedMasterBall) { - ct += gBattleResults.catchAttempts[i]; - } - if (ct != 0 || gBattleResults.usedMasterBall) - { - ct = 0; + ballsUsed = 0; show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->pokemonToday.kind = TVSHOW_POKEMON_TODAY_CAUGHT; - show->pokemonToday.active = FALSE; + show->pokemonToday.active = FALSE; // NOTE: Show is not active until passed via Record Mix. if (gBattleResults.usedMasterBall) { - ct = 1; + ballsUsed = 1; itemLastUsed = ITEM_MASTER_BALL; } else { - for (i = 0; i < POKEBALL_COUNT - 1; i ++) - { - ct += gBattleResults.catchAttempts[i]; - } - if (ct > 0xFF) - { - ct = 0xFF; - } + for (i = 0; i < POKEBALL_COUNT - 1; i++) + ballsUsed += gBattleResults.catchAttempts[i]; + if (ballsUsed > 255) + ballsUsed = 255; itemLastUsed = gLastUsedItem; } - show->pokemonToday.nBallsUsed = ct; + show->pokemonToday.nBallsUsed = ballsUsed; show->pokemonToday.ball = itemLastUsed; StringCopy(show->pokemonToday.playerName, gSaveBlock2Ptr->playerName); StringCopy(show->pokemonToday.nickname, gBattleResults.caughtMonNick); language2 = sub_81DB604(show->pokemonToday.nickname); StripExtCtrlCodes(show->pokemonToday.nickname); show->pokemonToday.species = gBattleResults.caughtMonSpecies; - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->pokemonToday.language = gGameLanguage; show->pokemonToday.language2 = language2; } @@ -1179,65 +1167,60 @@ void PutPokemonTodayCaughtOnAir(void) } } -void UpdateWorldOfMastersAndPutItOnTheAir(void) +// Show is initialized in last slot and updated there until it's +// either triggered or deleted at the end of the day by ResolveWorldOfMastersShow +static void InitWorldOfMastersShowAttempt(void) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - if (show->worldOfMasters.kind != TVSHOW_WORLD_OF_MASTERS) + TVShow *show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; + if (show->common.kind != TVSHOW_WORLD_OF_MASTERS) { DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); show->worldOfMasters.steps = GetGameStat(GAME_STAT_STEPS); show->worldOfMasters.kind = TVSHOW_WORLD_OF_MASTERS; } - show->worldOfMasters.numPokeCaught ++; + show->worldOfMasters.numPokeCaught++; show->worldOfMasters.caughtPoke = gBattleResults.caughtMonSpecies; show->worldOfMasters.species = gBattleResults.playerMon1Species; show->worldOfMasters.location = gMapHeader.regionMapSectionId; } -void PutPokemonTodayFailedOnTheAir(void) +static void TryPutPokemonTodayFailedOnTheAir(void) { - u16 ct; + u16 ballsUsed; u8 i; TVShow *show; if (!rbernoulli(1, 1)) { - for (i = 0, ct = 0; i < POKEBALL_COUNT - 1; i ++) + for (i = 0, ballsUsed = 0; i < POKEBALL_COUNT - 1; i++) + ballsUsed += gBattleResults.catchAttempts[i]; + if (ballsUsed > 255) + ballsUsed = 255; + + if (ballsUsed > 2 && (gBattleOutcome == B_OUTCOME_MON_FLED || gBattleOutcome == B_OUTCOME_WON)) { - ct += gBattleResults.catchAttempts[i]; - } - if (ct > 0xFF) - { - ct = 0xFF; - } - if (ct > 2 && (gBattleOutcome == B_OUTCOME_MON_FLED || gBattleOutcome == B_OUTCOME_WON)) - { - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_FAILED, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_POKEMON_TODAY_FAILED, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->pokemonTodayFailed.kind = TVSHOW_POKEMON_TODAY_FAILED; - show->pokemonTodayFailed.active = FALSE; + show->pokemonTodayFailed.active = FALSE; // NOTE: Show is not active until passed via Record Mix. show->pokemonTodayFailed.species = gBattleResults.playerMon1Species; show->pokemonTodayFailed.species2 = gBattleResults.lastOpponentSpecies; - show->pokemonTodayFailed.nBallsUsed = ct; + show->pokemonTodayFailed.nBallsUsed = ballsUsed; show->pokemonTodayFailed.outcome = gBattleOutcome; show->pokemonTodayFailed.location = gMapHeader.regionMapSectionId; StringCopy(show->pokemonTodayFailed.playerName, gSaveBlock2Ptr->playerName); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->pokemonTodayFailed.language = gGameLanguage; } } } } -void tv_store_id_3x(TVShow *show) +static void StorePlayerIdInRecordMixShow(TVShow *show) { - u32 id; - - id = GetPlayerIDAsU32(); + u32 id = GetPlayerIDAsU32(); show->common.srcTrainerId2Lo = id; show->common.srcTrainerId2Hi = id >> 8; show->common.srcTrainerIdLo = id; @@ -1246,11 +1229,9 @@ void tv_store_id_3x(TVShow *show) show->common.trainerIdHi = id >> 8; } -void tv_store_id_2x(TVShow *show) +static void StorePlayerIdInNormalShow(TVShow *show) { - u32 id; - - id = GetPlayerIDAsU32(); + u32 id = GetPlayerIDAsU32(); show->common.srcTrainerIdLo = id; show->common.srcTrainerIdHi = id >> 8; show->common.trainerIdLo = id; @@ -1278,7 +1259,7 @@ static void InterviewAfter_ContestLiveUpdates(void) show2->contestLiveUpdates.move = show->contestLiveUpdates.move; show2->contestLiveUpdates.winnerAppealFlag = show->contestLiveUpdates.winnerAppealFlag; StringCopy(show2->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerName); - tv_store_id_2x(show2); + StorePlayerIdInNormalShow(show2); show2->contestLiveUpdates.winningTrainerLanguage = gGameLanguage; show2->contestLiveUpdates.losingTrainerLanguage = show->contestLiveUpdates.losingTrainerLanguage; DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); @@ -1290,44 +1271,36 @@ void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlaye TVShow *show; u8 name[32]; - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_BATTLE_UPDATE); - if (gSpecialVar_Result != 1) + TryReplaceOldTVShowOfKind(TVSHOW_BATTLE_UPDATE); + if (gSpecialVar_Result != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->battleUpdate.kind = TVSHOW_BATTLE_UPDATE; show->battleUpdate.active = TRUE; StringCopy(show->battleUpdate.playerName, gSaveBlock2Ptr->playerName); + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - { show->battleUpdate.battleType = 2; - } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { show->battleUpdate.battleType = 1; - } else - { show->battleUpdate.battleType = 0; - } + show->battleUpdate.move = move; show->battleUpdate.speciesPlayer = speciesPlayer; show->battleUpdate.speciesOpponent = speciesOpponent; StringCopy(name, gLinkPlayers[opponentLinkPlayerId].name); StripExtCtrlCodes(name); StringCopy(show->battleUpdate.linkOpponentName, name); - tv_store_id_2x(show); + StorePlayerIdInNormalShow(show); show->battleUpdate.language = gGameLanguage; if (show->battleUpdate.language == LANGUAGE_JAPANESE || gLinkPlayers[opponentLinkPlayerId].language == LANGUAGE_JAPANESE) - { show->battleUpdate.linkOpponentLanguage = LANGUAGE_JAPANESE; - } else - { show->battleUpdate.linkOpponentLanguage = gLinkPlayers[opponentLinkPlayerId].language; - } } } } @@ -1337,16 +1310,14 @@ bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 colo TVShow *show; u8 name[32]; - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot == -1) - { return FALSE; - } - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_3_CHEERS_FOR_POKEBLOCKS); - if (gSpecialVar_Result == 1) - { - return FALSE; - } + + TryReplaceOldTVShowOfKind(TVSHOW_3_CHEERS_FOR_POKEBLOCKS); + if (gSpecialVar_Result == TRUE) + return FALSE; // Old show is still active + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->threeCheers.kind = TVSHOW_3_CHEERS_FOR_POKEBLOCKS; show->threeCheers.active = TRUE; @@ -1357,16 +1328,12 @@ bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 colo show->threeCheers.flavor = flavor; show->threeCheers.color = color; show->threeCheers.sheen = sheen; - tv_store_id_2x(show); + StorePlayerIdInNormalShow(show); show->threeCheers.language = gGameLanguage; if (show->threeCheers.language == LANGUAGE_JAPANESE || language == LANGUAGE_JAPANESE) - { show->threeCheers.worstBlenderLanguage = LANGUAGE_JAPANESE; - } else - { show->threeCheers.worstBlenderLanguage = language; - } return TRUE; } @@ -1387,16 +1354,12 @@ void PutFanClubSpecialOnTheAir(void) StringCopy(name, gStringVar1); StripExtCtrlCodes(name); StringCopy(show->fanClubSpecial.idolName, name); - tv_store_id_2x(show); + StorePlayerIdInNormalShow(show); show->fanClubSpecial.language = gGameLanguage; if (show->fanClubSpecial.language == LANGUAGE_JAPANESE || gSaveBlock1Ptr->linkBattleRecords.languages[0] == LANGUAGE_JAPANESE) - { show->fanClubSpecial.idolNameLanguage = LANGUAGE_JAPANESE; - } else - { show->fanClubSpecial.idolNameLanguage = gSaveBlock1Ptr->linkBattleRecords.languages[0]; - } } void ContestLiveUpdates_Init(u8 round1Placing) @@ -1404,7 +1367,7 @@ void ContestLiveUpdates_Init(u8 round1Placing) TVShow *show; DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; @@ -1415,64 +1378,45 @@ void ContestLiveUpdates_Init(u8 round1Placing) void ContestLiveUpdates_SetRound2Placing(u8 round2Placing) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + TVShow *show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) - { show->contestLiveUpdates.round2Placing = round2Placing; - } } void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + TVShow *show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) - { show->contestLiveUpdates.winnerAppealFlag = flag; - } } void ContestLiveUpdates_SetWinnerMoveUsed(u16 move) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + TVShow *show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) - { show->contestLiveUpdates.move = move; - } } void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + TVShow *show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { show->contestLiveUpdates.losingSpecies = gContestMons[loser].species; StringCopy(show->contestLiveUpdates.losingTrainerName, gContestMons[loser].trainerName); StripExtCtrlCodes(show->contestLiveUpdates.losingTrainerName); show->contestLiveUpdates.loserAppealFlag = flag; + if (loser + 1 > gNumLinkContestPlayers) - { show->contestLiveUpdates.losingTrainerLanguage = gLinkPlayers[0].language; - } else if (gGameLanguage == LANGUAGE_JAPANESE || gLinkPlayers[loser].language == LANGUAGE_JAPANESE) - { show->contestLiveUpdates.losingTrainerLanguage = LANGUAGE_JAPANESE; - } else - { show->contestLiveUpdates.losingTrainerLanguage = gLinkPlayers[loser].language; - } } } @@ -1495,27 +1439,21 @@ static void InterviewAfter_BravoTrainerPokemonProfile(void) show2->bravoTrainer.move = show->bravoTrainer.move; show2->bravoTrainer.contestResult = show->bravoTrainer.contestResult; show2->bravoTrainer.contestCategory = show->bravoTrainer.contestCategory; - tv_store_id_2x(show2); + StorePlayerIdInNormalShow(show2); show2->bravoTrainer.language = gGameLanguage; if (show2->bravoTrainer.language == LANGUAGE_JAPANESE || show->bravoTrainer.pokemonNameLanguage == LANGUAGE_JAPANESE) - { show2->bravoTrainer.pokemonNameLanguage = LANGUAGE_JAPANESE; - } else - { show2->bravoTrainer.pokemonNameLanguage = show->bravoTrainer.pokemonNameLanguage; - } DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); } } void BravoTrainerPokemonProfile_BeforeInterview1(u16 a0) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; + TVShow *show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; InterviewBefore_BravoTrainerPkmnProfile(); - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); @@ -1526,10 +1464,8 @@ void BravoTrainerPokemonProfile_BeforeInterview1(u16 a0) void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + TVShow *show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { show->bravoTrainer.contestResult = contestStandingPlace; @@ -1544,9 +1480,7 @@ void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace) static void InterviewAfter_BravoTrainerBattleTowerProfile(void) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + TVShow *show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->bravoTrainerTower.kind = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; show->bravoTrainerTower.active = TRUE; StringCopy(show->bravoTrainerTower.trainerName, gSaveBlock2Ptr->playerName); @@ -1556,27 +1490,19 @@ static void InterviewAfter_BravoTrainerBattleTowerProfile(void) show->bravoTrainerTower.numFights = GetCurrentBattleTowerWinStreak(gSaveBlock2Ptr->frontier.towerLvlMode, 0); show->bravoTrainerTower.wonTheChallenge = gSaveBlock2Ptr->frontier.towerBattleOutcome; if (gSaveBlock2Ptr->frontier.towerLvlMode == FRONTIER_LVL_50) - { show->bravoTrainerTower.btLevel = 50; - } else - { show->bravoTrainerTower.btLevel = 100; - } show->bravoTrainerTower.interviewResponse = gSpecialVar_0x8004; - tv_store_id_2x(show); + StorePlayerIdInNormalShow(show); show->bravoTrainerTower.language = gGameLanguage; if (show->bravoTrainerTower.language == LANGUAGE_JAPANESE || gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage == LANGUAGE_JAPANESE) - { show->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_JAPANESE; - } else - { show->bravoTrainerTower.pokemonNameLanguage = gSaveBlock2Ptr->frontier.towerInterview.opponentLanguage; - } } -void SaveRecordedItemPurchasesForTVShow(void) +void TryPutSmartShopperOnAir(void) { TVShow *show; u8 i; @@ -1585,24 +1511,24 @@ void SaveRecordedItemPurchasesForTVShow(void) && !(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_MART) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_MART)) && !rbernoulli(1, 3)) { - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SMART_SHOPPER, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_SMART_SHOPPER, FALSE) != TRUE) { - TV_SortPurchasesByQuantity(); + SortPurchasesByQuantity(); if (gMartPurchaseHistory[0].quantity >= 20) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->smartshopperShow.kind = TVSHOW_SMART_SHOPPER; - show->smartshopperShow.active = FALSE; + show->smartshopperShow.active = FALSE; // NOTE: Show is not active until passed via Record Mix. show->smartshopperShow.shopLocation = gMapHeader.regionMapSectionId; - for (i = 0; i < 3; i ++) + for (i = 0; i < SMARTSHOPPER_NUM_ITEMS; i++) { show->smartshopperShow.itemIds[i] = gMartPurchaseHistory[i].itemId; show->smartshopperShow.itemAmounts[i] = gMartPurchaseHistory[i].quantity; } show->smartshopperShow.priceReduced = GetPriceReduction(POKENEWS_SLATEPORT); StringCopy(show->smartshopperShow.playerName, gSaveBlock2Ptr->playerName); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->smartshopperShow.language = gGameLanguage; } } @@ -1625,11 +1551,11 @@ void PutNameRaterShowOnTheAir(void) show->nameRaterShow.species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL); show->nameRaterShow.random = Random() % 3; show->nameRaterShow.random2 = Random() % 2; - show->nameRaterShow.randomSpecies = TV_GetSomeOtherSpeciesAlreadySeenByPlayer(show->nameRaterShow.species); + show->nameRaterShow.randomSpecies = GetRandomDifferentSpeciesSeenByPlayer(show->nameRaterShow.species); StringCopy(show->nameRaterShow.trainerName, gSaveBlock2Ptr->playerName); GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, show->nameRaterShow.pokemonName); StripExtCtrlCodes(show->nameRaterShow.pokemonName); - tv_store_id_2x(show); + StorePlayerIdInNormalShow(show); show->nameRaterShow.language = gGameLanguage; show->nameRaterShow.pokemonNameLanguage = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_LANGUAGE); } @@ -1638,9 +1564,7 @@ void PutNameRaterShowOnTheAir(void) void StartMassOutbreak(void) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + TVShow *show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; gSaveBlock1Ptr->outbreakPokemonSpecies = show->massOutbreak.species; gSaveBlock1Ptr->outbreakLocationMapNum = show->massOutbreak.locationMapNum; gSaveBlock1Ptr->outbreakLocationMapGroup = show->massOutbreak.locationMapGroup; @@ -1660,52 +1584,46 @@ void PutLilycoveContestLadyShowOnTheAir(void) { TVShow *show; - sub_80EFA88(); + Script_FindFirstEmptyNormalTVShowSlot(); if (gSpecialVar_Result != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; - BufferContestLadyLanguage(&show->contestLiveUpdates2.language); - show->contestLiveUpdates2.pokemonNameLanguage = LANGUAGE_ENGLISH; - show->contestLiveUpdates2.kind = TVSHOW_CONTEST_LIVE_UPDATES_2; - show->contestLiveUpdates2.active = TRUE; - BufferContestLadyPlayerName(show->contestLiveUpdates2.playerName); - BufferContestLadyMonName(&show->contestLiveUpdates2.contestCategory, show->contestLiveUpdates2.nickname); - show->contestLiveUpdates2.pokeblockState = sub_818E880(); - tv_store_id_2x(show); + BufferContestLadyLanguage(&show->contestLady.language); + show->contestLady.pokemonNameLanguage = GAME_LANGUAGE; + show->contestLady.kind = TVSHOW_LILYCOVE_CONTEST_LADY; + show->contestLady.active = TRUE; + BufferContestLadyPlayerName(show->contestLady.playerName); + BufferContestLadyMonName(&show->contestLady.contestCategory, show->contestLady.nickname); + show->contestLady.pokeblockState = GetContestLadyPokeblockState(); + StorePlayerIdInNormalShow(show); } } static void InterviewAfter_FanClubLetter(void) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + TVShow *show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->fanclubLetter.kind = TVSHOW_FAN_CLUB_LETTER; show->fanclubLetter.active = TRUE; StringCopy(show->fanclubLetter.playerName, gSaveBlock2Ptr->playerName); show->fanclubLetter.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL); - tv_store_id_2x(show); + StorePlayerIdInNormalShow(show); show->fanclubLetter.language = gGameLanguage; } static void InterviewAfter_RecentHappenings(void) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + TVShow *show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->recentHappenings.kind = TVSHOW_RECENT_HAPPENINGS; show->recentHappenings.active = TRUE; StringCopy(show->recentHappenings.playerName, gSaveBlock2Ptr->playerName); - show->recentHappenings.var02 = 0; - tv_store_id_2x(show); + show->recentHappenings.species = SPECIES_NONE; + StorePlayerIdInNormalShow(show); show->recentHappenings.language = gGameLanguage; } static void InterviewAfter_PkmnFanClubOpinions(void) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + TVShow *show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->fanclubOpinions.kind = TVSHOW_PKMN_FAN_CLUB_OPINIONS; show->fanclubOpinions.active = TRUE; show->fanclubOpinions.friendshipHighNybble = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_FRIENDSHIP, NULL) >> 4; @@ -1714,26 +1632,20 @@ static void InterviewAfter_PkmnFanClubOpinions(void) GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, show->fanclubOpinions.nickname); StripExtCtrlCodes(show->fanclubOpinions.nickname); show->fanclubOpinions.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL); - tv_store_id_2x(show); + StorePlayerIdInNormalShow(show); show->fanclubOpinions.language = gGameLanguage; if (gGameLanguage == LANGUAGE_JAPANESE || GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE) - { show->fanclubOpinions.pokemonNameLanguage = LANGUAGE_JAPANESE; - } else - { show->fanclubOpinions.pokemonNameLanguage = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_LANGUAGE); - } } -static void InterviewAfter_DummyShow4(void) +static void InterviewAfter_Dummy(void) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + TVShow *show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; } -static void sub_80ED718(void) +static void TryStartRandomMassOutbreak(void) { u8 i; u16 outbreakIdx; @@ -1741,16 +1653,14 @@ static void sub_80ED718(void) if (FlagGet(FLAG_SYS_GAME_CLEAR)) { - for (i = 0; i < LAST_TVSHOW_IDX; i ++) + for (i = 0; i < LAST_TVSHOW_IDX; i++) { if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_MASS_OUTBREAK) - { return; - } } if (!rbernoulli(1, 200)) { - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { outbreakIdx = Random() % ARRAY_COUNT(sPokeOutbreakSpeciesList); @@ -1772,7 +1682,7 @@ static void sub_80ED718(void) show->massOutbreak.probability = 50; show->massOutbreak.var15 = 0; show->massOutbreak.daysLeft = 1; - tv_store_id_2x(show); + StorePlayerIdInNormalShow(show); show->massOutbreak.language = gGameLanguage; } } @@ -1800,9 +1710,9 @@ void UpdateTVShowsPerDay(u16 days) { UpdateMassOutbreakTimeLeft(days); TryEndMassOutbreak(days); - sub_80EF120(days); - sub_80EDA48(days); - sub_80EEB98(days); + UpdatePokeNewsTimeLeft(days); + ResolveWorldOfMastersShow(days); + ResolveNumberOneShow(days); } static void UpdateMassOutbreakTimeLeft(u16 days) @@ -1812,7 +1722,7 @@ static void UpdateMassOutbreakTimeLeft(u16 days) if (gSaveBlock1Ptr->outbreakPokemonSpecies == SPECIES_NONE) { - for (i = 0; i < LAST_TVSHOW_IDX; i ++) + for (i = 0; i < LAST_TVSHOW_IDX; i++) { if (gSaveBlock1Ptr->tvShows[i].massOutbreak.kind == TVSHOW_MASS_OUTBREAK && gSaveBlock1Ptr->tvShows[i].massOutbreak.active == TRUE) { @@ -1841,7 +1751,7 @@ void RecordFishingAttemptForTV(bool8 caughtFish) if (caughtFish) { if (sPokemonAnglerAttemptCounters >> 8 > 4) - PutFishingAdviceShowOnTheAir(); + TryPutFishingAdviceOnAir(); sPokemonAnglerAttemptCounters &= 0xFF; if (sPokemonAnglerAttemptCounters != 0xFF) @@ -1850,7 +1760,7 @@ void RecordFishingAttemptForTV(bool8 caughtFish) else { if ((u8)sPokemonAnglerAttemptCounters > 4) - PutFishingAdviceShowOnTheAir(); + TryPutFishingAdviceOnAir(); sPokemonAnglerAttemptCounters &= 0xFF00; if (sPokemonAnglerAttemptCounters >> 8 != 0xFF) @@ -1858,21 +1768,21 @@ void RecordFishingAttemptForTV(bool8 caughtFish) } } -void PutFishingAdviceShowOnTheAir(void) +static void TryPutFishingAdviceOnAir(void) { TVShow *show; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_FISHING_ADVICE, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_FISHING_ADVICE, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->pokemonAngler.kind = TVSHOW_FISHING_ADVICE; - show->pokemonAngler.active = FALSE; + show->pokemonAngler.active = FALSE; // NOTE: Show is not active until passed via Record Mix. show->pokemonAngler.nBites = sPokemonAnglerAttemptCounters; show->pokemonAngler.nFails = sPokemonAnglerAttemptCounters >> 8; show->pokemonAngler.species = sPokemonAnglerSpecies; StringCopy(show->pokemonAngler.playerName, gSaveBlock2Ptr->playerName); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->pokemonAngler.language = gGameLanguage; } } @@ -1882,7 +1792,11 @@ void SetPokemonAnglerSpecies(u16 species) sPokemonAnglerSpecies = species; } -static void sub_80EDA48(u16 days) +// World of Masters is initialized in the last slot by InitWorldOfMastersShowAttempt +// If enough Pokémon were caught during the day the show can be put on air (and will +// be moved out of the last slot). +// Either way the temporary version of the show in the last slot is deleted. +static void ResolveWorldOfMastersShow(u16 days) { TVShow *show; @@ -1890,14 +1804,13 @@ static void sub_80EDA48(u16 days) if (show->worldOfMasters.kind == TVSHOW_WORLD_OF_MASTERS) { if (show->worldOfMasters.numPokeCaught >= 20) - { - sub_80EDA80(); - } + TryPutWorldOfMastersOnAir(); + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); } } -void sub_80EDA80(void) +static void TryPutWorldOfMastersOnAir(void) { TVShow *show; TVShow *show2; @@ -1905,19 +1818,19 @@ void sub_80EDA80(void) show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; if (!rbernoulli(1, 1)) { - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_WORLD_OF_MASTERS, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_WORLD_OF_MASTERS, FALSE) != TRUE) { show2 = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show2->worldOfMasters.kind = TVSHOW_WORLD_OF_MASTERS; - show2->worldOfMasters.active = FALSE; + show2->worldOfMasters.active = FALSE; // NOTE: Show is not active until passed via Record Mix. show2->worldOfMasters.numPokeCaught = show->worldOfMasters.numPokeCaught; show2->worldOfMasters.steps = GetGameStat(GAME_STAT_STEPS) - show->worldOfMasters.steps; show2->worldOfMasters.caughtPoke = show->worldOfMasters.caughtPoke; show2->worldOfMasters.species = show->worldOfMasters.species; show2->worldOfMasters.location = show->worldOfMasters.location; StringCopy(show2->worldOfMasters.playerName, gSaveBlock2Ptr->playerName); - tv_store_id_3x(show2); + StorePlayerIdInRecordMixShow(show2); show2->worldOfMasters.language = gGameLanguage; DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); } @@ -1930,66 +1843,57 @@ void TryPutTodaysRivalTrainerOnAir(void) u32 i; u8 nBadges; - HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_TODAYS_RIVAL_TRAINER, TRUE); - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + IsRecordMixShowAlreadySpawned(TVSHOW_TODAYS_RIVAL_TRAINER, TRUE); // Delete old version of show + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->rivalTrainer.kind = TVSHOW_TODAYS_RIVAL_TRAINER; - show->rivalTrainer.active = FALSE; - for (i = FLAG_BADGE01_GET, nBadges = 0; i < FLAG_BADGE01_GET + NUM_BADGES; i ++) + show->rivalTrainer.active = FALSE; // NOTE: Show is not active until passed via Record Mix. + for (i = FLAG_BADGE01_GET, nBadges = 0; i < FLAG_BADGE01_GET + NUM_BADGES; i++) { if (FlagGet(i)) - { - nBadges ++; - } + nBadges++; } show->rivalTrainer.badgeCount = nBadges; if (IsNationalPokedexEnabled()) - { show->rivalTrainer.dexCount = GetNationalPokedexCount(FLAG_GET_CAUGHT); - } else - { show->rivalTrainer.dexCount = GetHoennPokedexCount(FLAG_GET_CAUGHT); - } show->rivalTrainer.location = gMapHeader.regionMapSectionId; show->rivalTrainer.mapLayoutId = gMapHeader.mapLayoutId; show->rivalTrainer.nSilverSymbols = 0; show->rivalTrainer.nGoldSymbols = 0; - for (i = 0; i < 7; i ++) + for (i = 0; i < 7; i++) { if (FlagGet(sSilverSymbolFlags[i]) == TRUE) - { - show->rivalTrainer.nSilverSymbols ++; - } + show->rivalTrainer.nSilverSymbols++; + if (FlagGet(sGoldSymbolFlags[i]) == TRUE) - { - show->rivalTrainer.nGoldSymbols ++; - } + show->rivalTrainer.nGoldSymbols++; } show->rivalTrainer.battlePoints = gSaveBlock2Ptr->frontier.battlePoints; StringCopy(show->rivalTrainer.playerName, gSaveBlock2Ptr->playerName); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->rivalTrainer.language = gGameLanguage; } } -void sub_80EDC60(const u16 *words) +void TryPutTrendWatcherOnAir(const u16 *words) { TVShow *show; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_TREND_WATCHER, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_TREND_WATCHER, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->trendWatcher.kind = TVSHOW_TREND_WATCHER; - show->trendWatcher.active = FALSE; + show->trendWatcher.active = FALSE; // NOTE: Show is not active until passed via Record Mix. show->trendWatcher.gender = gSaveBlock2Ptr->playerGender; show->trendWatcher.words[0] = words[0]; show->trendWatcher.words[1] = words[1]; StringCopy(show->trendWatcher.playerName, gSaveBlock2Ptr->playerName); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->trendWatcher.language = gGameLanguage; } } @@ -1998,70 +1902,70 @@ void TryPutTreasureInvestigatorsOnAir(void) { TVShow *show; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_TREASURE_INVESTIGATORS, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_TREASURE_INVESTIGATORS, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->treasureInvestigators.kind = TVSHOW_TREASURE_INVESTIGATORS; - show->treasureInvestigators.active = FALSE; + show->treasureInvestigators.active = FALSE; // NOTE: Show is not active until passed via Record Mix. show->treasureInvestigators.item = gSpecialVar_0x8005; show->treasureInvestigators.location = gMapHeader.regionMapSectionId; show->treasureInvestigators.mapLayoutId = gMapHeader.mapLayoutId; StringCopy(show->treasureInvestigators.playerName, gSaveBlock2Ptr->playerName); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->treasureInvestigators.language = gGameLanguage; } } -void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut) +void TryPutFindThatGamerOnAir(u16 nCoinsPaidOut) { TVShow *show; bool8 flag; u16 nCoinsWon; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_FIND_THAT_GAMER, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_FIND_THAT_GAMER, FALSE) != TRUE) { flag = FALSE; switch (sFindThatGamerWhichGame) { - case SLOT_MACHINE: - if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 200) - { - flag = TRUE; - nCoinsWon = nCoinsPaidOut - sFindThatGamerCoinsSpent; - break; - } - if (sFindThatGamerCoinsSpent >= 100 && nCoinsPaidOut <= sFindThatGamerCoinsSpent - 100) - { - nCoinsWon = sFindThatGamerCoinsSpent - nCoinsPaidOut; - break; - } - return; - case ROULETTE: - if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 50) - { - flag = TRUE; - nCoinsWon = nCoinsPaidOut - sFindThatGamerCoinsSpent; - break; - } - if (sFindThatGamerCoinsSpent >= 50 && nCoinsPaidOut <= sFindThatGamerCoinsSpent - 50) - { - nCoinsWon = sFindThatGamerCoinsSpent - nCoinsPaidOut; - break; - } - return; - default: - return; + case SLOT_MACHINE: + if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 200) + { + flag = TRUE; + nCoinsWon = nCoinsPaidOut - sFindThatGamerCoinsSpent; + break; + } + if (sFindThatGamerCoinsSpent >= 100 && nCoinsPaidOut <= sFindThatGamerCoinsSpent - 100) + { + nCoinsWon = sFindThatGamerCoinsSpent - nCoinsPaidOut; + break; + } + return; + case ROULETTE: + if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 50) + { + flag = TRUE; + nCoinsWon = nCoinsPaidOut - sFindThatGamerCoinsSpent; + break; + } + if (sFindThatGamerCoinsSpent >= 50 && nCoinsPaidOut <= sFindThatGamerCoinsSpent - 50) + { + nCoinsWon = sFindThatGamerCoinsSpent - nCoinsPaidOut; + break; + } + return; + default: + return; } show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->findThatGamer.kind = TVSHOW_FIND_THAT_GAMER; - show->findThatGamer.active = FALSE; + show->findThatGamer.active = FALSE; // NOTE: Show is not active until passed via Record Mix. show->findThatGamer.nCoins = nCoinsWon; show->findThatGamer.whichGame = sFindThatGamerWhichGame; show->findThatGamer.won = flag; StringCopy(show->findThatGamer.playerName, gSaveBlock2Ptr->playerName); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->findThatGamer.language = gGameLanguage; } } @@ -2078,72 +1982,64 @@ void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent) sFindThatGamerCoinsSpent = nCoinsSpent; } -static void sub_80EDE98(TVShow *show) +static void SecretBaseVisit_CalculateDecorationData(TVShow *show) { - u8 i; - u8 j; + u8 i, j; u16 k; u8 n; - u8 deco; - u8 x; + u8 decoration; - for (i = 0; i < DECOR_MAX_SECRET_BASE; i ++) - { + for (i = 0; i < DECOR_MAX_SECRET_BASE; i++) sTV_DecorationsBuffer[i] = 0; - } - for (i = 0, n = 0; i < DECOR_MAX_SECRET_BASE; i ++) + + for (i = 0, n = 0; i < DECOR_MAX_SECRET_BASE; i++) { - deco = gSaveBlock1Ptr->secretBases[0].decorations[i]; - if (deco) + decoration = gSaveBlock1Ptr->secretBases[0].decorations[i]; + if (decoration) { - for (j = 0; j < DECOR_MAX_SECRET_BASE; j ++) + for (j = 0; j < DECOR_MAX_SECRET_BASE; j++) { if (sTV_DecorationsBuffer[j] == 0) { - sTV_DecorationsBuffer[j] = deco; - n ++; + sTV_DecorationsBuffer[j] = decoration; + n++; break; } - if (sTV_DecorationsBuffer[j] == deco) - { + if (sTV_DecorationsBuffer[j] == decoration) break; - } } } } + if (n > 4) - { show->secretBaseVisit.nDecorations = 4; - } else - { show->secretBaseVisit.nDecorations = n; - } + switch (show->secretBaseVisit.nDecorations) { - case 0: - break; - case 1: - show->secretBaseVisit.decorations[0] = sTV_DecorationsBuffer[0]; - break; - default: - for (k = 0; k < n * n; k ++) - { - deco = Random() % n; - j = Random() % n; - i = sTV_DecorationsBuffer[deco]; - sTV_DecorationsBuffer[deco] = sTV_DecorationsBuffer[j]; - sTV_DecorationsBuffer[j] = i; - } - for (i = 0; i < show->secretBaseVisit.nDecorations; i ++) - { - show->secretBaseVisit.decorations[i] = sTV_DecorationsBuffer[i]; - } - break; + case 0: + break; + case 1: + show->secretBaseVisit.decorations[0] = sTV_DecorationsBuffer[0]; + break; + default: + for (k = 0; k < n * n; k++) + { + decoration = Random() % n; + j = Random() % n; + i = sTV_DecorationsBuffer[decoration]; + sTV_DecorationsBuffer[decoration] = sTV_DecorationsBuffer[j]; + sTV_DecorationsBuffer[j] = i; + } + + for (i = 0; i < show->secretBaseVisit.nDecorations; i++) + show->secretBaseVisit.decorations[i] = sTV_DecorationsBuffer[i]; + break; } } -static void sub_80EDFB4(TVShow *show) +static void SecretBaseVisit_CalculatePartyData(TVShow *show) { u8 i; u16 move; @@ -2152,7 +2048,7 @@ static void sub_80EDFB4(TVShow *show) u8 nPokemon; u16 sum; - for (i = 0, nPokemon = 0; i < PARTY_SIZE; i ++) + for (i = 0, nPokemon = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { @@ -2163,128 +2059,119 @@ static void sub_80EDFB4(TVShow *show) if (move != MOVE_NONE) { sTV_SecretBaseVisitMovesTemp[nMoves] = move; - nMoves ++; + nMoves++; } move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE2); if (move != MOVE_NONE) { sTV_SecretBaseVisitMovesTemp[nMoves] = move; - nMoves ++; + nMoves++; } move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE3); if (move != MOVE_NONE) { sTV_SecretBaseVisitMovesTemp[nMoves] = move; - nMoves ++; + nMoves++; } move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE4); if (move != MOVE_NONE) { sTV_SecretBaseVisitMovesTemp[nMoves] = move; - nMoves ++; + nMoves++; } sTV_SecretBaseVisitMonsTemp[nPokemon].move = sTV_SecretBaseVisitMovesTemp[Random() % nMoves]; - nPokemon ++; + nPokemon++; } } - for (i = 0, sum = 0; i < nPokemon; i ++) - { + for (i = 0, sum = 0; i < nPokemon; i++) sum += sTV_SecretBaseVisitMonsTemp[i].level; - } + show->secretBaseVisit.avgLevel = sum / nPokemon; j = Random() % nPokemon; show->secretBaseVisit.species = sTV_SecretBaseVisitMonsTemp[j].species; show->secretBaseVisit.move = sTV_SecretBaseVisitMonsTemp[j].move; } -void TV_PutSecretBaseVisitOnTheAir(void) +void TryPutSecretBaseVisitOnAir(void) { TVShow *show; - HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SECRET_BASE_VISIT, TRUE); - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + IsRecordMixShowAlreadySpawned(TVSHOW_SECRET_BASE_VISIT, TRUE); // Delete old version of show + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->secretBaseVisit.kind = TVSHOW_SECRET_BASE_VISIT; - show->secretBaseVisit.active = FALSE; + show->secretBaseVisit.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->secretBaseVisit.playerName, gSaveBlock2Ptr->playerName); - sub_80EDE98(show); - sub_80EDFB4(show); - tv_store_id_3x(show); + SecretBaseVisit_CalculateDecorationData(show); + SecretBaseVisit_CalculatePartyData(show); + StorePlayerIdInRecordMixShow(show); show->secretBaseVisit.language = gGameLanguage; } } -void sub_80EE184(void) +void TryPutBreakingNewsOnAir(void) { TVShow *show; u8 i; u16 balls; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_BREAKING_NEWS, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_BREAKING_NEWS, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->breakingNews.kind = TVSHOW_BREAKING_NEWS; - show->breakingNews.active = FALSE; + show->breakingNews.active = FALSE; // NOTE: Show is not active until passed via Record Mix. balls = 0; - for (i = 0; i < POKEBALL_COUNT - 1; i ++) - { + for (i = 0; i < POKEBALL_COUNT - 1; i++) balls += gBattleResults.catchAttempts[i]; - } + if (gBattleResults.usedMasterBall) - { - balls ++; - } + balls++; show->breakingNews.location = gMapHeader.regionMapSectionId; StringCopy(show->breakingNews.playerName, gSaveBlock2Ptr->playerName); show->breakingNews.poke1Species = gBattleResults.playerMon1Species; switch (gBattleOutcome) { - case B_OUTCOME_LOST: - case B_OUTCOME_DREW: - show->breakingNews.kind = TVSHOW_OFF_AIR; - return; - case B_OUTCOME_CAUGHT: - show->breakingNews.outcome = 0; - break; - case B_OUTCOME_WON: - show->breakingNews.outcome = 1; - break; - case B_OUTCOME_RAN: - case B_OUTCOME_PLAYER_TELEPORTED: - case B_OUTCOME_NO_SAFARI_BALLS: - show->breakingNews.outcome = 2; - break; - case B_OUTCOME_MON_FLED: - case B_OUTCOME_MON_TELEPORTED: - show->breakingNews.outcome = 3; - break; + case B_OUTCOME_LOST: + case B_OUTCOME_DREW: + show->breakingNews.kind = TVSHOW_OFF_AIR; + return; + case B_OUTCOME_CAUGHT: + show->breakingNews.outcome = 0; + break; + case B_OUTCOME_WON: + show->breakingNews.outcome = 1; + break; + case B_OUTCOME_RAN: + case B_OUTCOME_PLAYER_TELEPORTED: + case B_OUTCOME_NO_SAFARI_BALLS: + show->breakingNews.outcome = 2; + break; + case B_OUTCOME_MON_FLED: + case B_OUTCOME_MON_TELEPORTED: + show->breakingNews.outcome = 3; + break; } show->breakingNews.lastOpponentSpecies = gBattleResults.lastOpponentSpecies; switch (show->breakingNews.outcome) { - case 0: - if (gBattleResults.usedMasterBall) - { - show->breakingNews.caughtMonBall = ITEM_MASTER_BALL; - } - else - { - show->breakingNews.caughtMonBall = gBattleResults.caughtMonBall; - } - show->breakingNews.balls = balls; - break; - case 1: - show->breakingNews.lastUsedMove = gBattleResults.lastUsedMovePlayer; - break; - case 2: - break; - case 3: - break; + case 0: + if (gBattleResults.usedMasterBall) + show->breakingNews.caughtMonBall = ITEM_MASTER_BALL; + else + show->breakingNews.caughtMonBall = gBattleResults.caughtMonBall; + show->breakingNews.balls = balls; + break; + case 1: + show->breakingNews.lastUsedMove = gBattleResults.lastUsedMovePlayer; + break; + case 2: + case 3: + break; } - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->breakingNews.language = gGameLanguage; } } @@ -2293,65 +2180,65 @@ void TryPutLotteryWinnerReportOnAir(void) { TVShow *show; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_LOTTO_WINNER, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_LOTTO_WINNER, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->lottoWinner.kind = TVSHOW_LOTTO_WINNER; - show->lottoWinner.active = FALSE; + show->lottoWinner.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->lottoWinner.playerName, gSaveBlock2Ptr->playerName); show->lottoWinner.whichPrize = 4 - gSpecialVar_0x8004; show->lottoWinner.item = gSpecialVar_0x8005; - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->lottoWinner.language = gGameLanguage; } } -void sub_80EE35C(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove) +void TryPutBattleSeminarOnAir(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove) { TVShow *show; u8 i; u8 j; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_BATTLE_SEMINAR, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_BATTLE_SEMINAR, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->battleSeminar.kind = TVSHOW_BATTLE_SEMINAR; - show->battleSeminar.active = FALSE; + show->battleSeminar.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->battleSeminar.playerName, gSaveBlock2Ptr->playerName); show->battleSeminar.foeSpecies = foeSpecies; show->battleSeminar.species = species; show->battleSeminar.move = movePtr[moveIdx]; - for (i = 0, j = 0; i < MAX_MON_MOVES; i ++) + for (i = 0, j = 0; i < MAX_MON_MOVES; i++) { if (i != moveIdx && movePtr[i]) { show->battleSeminar.otherMoves[j] = movePtr[i]; - j ++; + j++; } } show->battleSeminar.nOtherMoves = j; show->battleSeminar.betterMove = betterMove; - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->battleSeminar.language = gGameLanguage; } } -void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed) +void TryPutSafariFanClubOnAir(u8 nMonsCaught, u8 nPkblkUsed) { TVShow *show; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SAFARI_FAN_CLUB, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_SAFARI_FAN_CLUB, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->safariFanClub.kind = TVSHOW_SAFARI_FAN_CLUB; - show->safariFanClub.active = FALSE; + show->safariFanClub.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->safariFanClub.playerName, gSaveBlock2Ptr->playerName); show->safariFanClub.nMonsCaught = nMonsCaught; show->safariFanClub.nPkblkUsed = nPkblkUsed; - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->safariFanClub.language = gGameLanguage; } } @@ -2360,27 +2247,23 @@ void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx) { TVShow *show; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_CUTIES, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_CUTIES, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->cuties.kind = TVSHOW_CUTIES; - show->cuties.active = FALSE; + show->cuties.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->cuties.playerName, gSaveBlock2Ptr->playerName); GetMonData(pokemon, MON_DATA_NICKNAME, show->cuties.nickname); StripExtCtrlCodes(show->cuties.nickname); show->cuties.nRibbons = GetRibbonCount(pokemon); - show->cuties.selectedRibbon = TV_MonDataIdxToRibbon(ribbonMonDataIdx); - tv_store_id_3x(show); + show->cuties.selectedRibbon = MonDataIdxToRibbon(ribbonMonDataIdx); + StorePlayerIdInRecordMixShow(show); show->cuties.language = gGameLanguage; if (show->cuties.language == LANGUAGE_JAPANESE || GetMonData(pokemon, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE) - { show->cuties.pokemonNameLanguage = LANGUAGE_JAPANESE; - } else - { show->cuties.pokemonNameLanguage = GetMonData(pokemon, MON_DATA_LANGUAGE); - } } } @@ -2399,63 +2282,63 @@ u8 GetRibbonCount(struct Pokemon *pokemon) nRibbons += GetMonData(pokemon, MON_DATA_VICTORY_RIBBON); nRibbons += GetMonData(pokemon, MON_DATA_ARTIST_RIBBON); nRibbons += GetMonData(pokemon, MON_DATA_EFFORT_RIBBON); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_1); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_2); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_3); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_4); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_5); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_6); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_7); + nRibbons += GetMonData(pokemon, MON_DATA_MARINE_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_LAND_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_SKY_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_COUNTRY_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_NATIONAL_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_EARTH_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_WORLD_RIBBON); return nRibbons; } -u8 TV_MonDataIdxToRibbon(u8 monDataIdx) +static u8 MonDataIdxToRibbon(u8 monDataIdx) { - if (monDataIdx == MON_DATA_CHAMPION_RIBBON) return 0; - if (monDataIdx == MON_DATA_COOL_RIBBON) return 1; - if (monDataIdx == MON_DATA_BEAUTY_RIBBON) return 5; - if (monDataIdx == MON_DATA_CUTE_RIBBON) return 9; - if (monDataIdx == MON_DATA_SMART_RIBBON) return 13; - if (monDataIdx == MON_DATA_TOUGH_RIBBON) return 17; - if (monDataIdx == MON_DATA_WINNING_RIBBON) return 21; - if (monDataIdx == MON_DATA_VICTORY_RIBBON) return 22; - if (monDataIdx == MON_DATA_ARTIST_RIBBON) return 23; - if (monDataIdx == MON_DATA_EFFORT_RIBBON) return 24; - if (monDataIdx == MON_DATA_GIFT_RIBBON_1) return 25; - if (monDataIdx == MON_DATA_GIFT_RIBBON_2) return 26; - if (monDataIdx == MON_DATA_GIFT_RIBBON_3) return 27; - if (monDataIdx == MON_DATA_GIFT_RIBBON_4) return 28; - if (monDataIdx == MON_DATA_GIFT_RIBBON_5) return 29; - if (monDataIdx == MON_DATA_GIFT_RIBBON_6) return 30; - if (monDataIdx == MON_DATA_GIFT_RIBBON_7) return 31; - return 0; + if (monDataIdx == MON_DATA_CHAMPION_RIBBON) return CHAMPION_RIBBON; + if (monDataIdx == MON_DATA_COOL_RIBBON) return COOL_RIBBON_NORMAL; + if (monDataIdx == MON_DATA_BEAUTY_RIBBON) return BEAUTY_RIBBON_NORMAL; + if (monDataIdx == MON_DATA_CUTE_RIBBON) return CUTE_RIBBON_NORMAL; + if (monDataIdx == MON_DATA_SMART_RIBBON) return SMART_RIBBON_NORMAL; + if (monDataIdx == MON_DATA_TOUGH_RIBBON) return TOUGH_RIBBON_NORMAL; + if (monDataIdx == MON_DATA_WINNING_RIBBON) return WINNING_RIBBON; + if (monDataIdx == MON_DATA_VICTORY_RIBBON) return VICTORY_RIBBON; + if (monDataIdx == MON_DATA_ARTIST_RIBBON) return ARTIST_RIBBON; + if (monDataIdx == MON_DATA_EFFORT_RIBBON) return EFFORT_RIBBON; + if (monDataIdx == MON_DATA_MARINE_RIBBON) return MARINE_RIBBON; + if (monDataIdx == MON_DATA_LAND_RIBBON) return LAND_RIBBON; + if (monDataIdx == MON_DATA_SKY_RIBBON) return SKY_RIBBON; + if (monDataIdx == MON_DATA_COUNTRY_RIBBON) return COUNTRY_RIBBON; + if (monDataIdx == MON_DATA_NATIONAL_RIBBON) return NATIONAL_RIBBON; + if (monDataIdx == MON_DATA_EARTH_RIBBON) return EARTH_RIBBON; + if (monDataIdx == MON_DATA_WORLD_RIBBON) return WORLD_RIBBON; + return CHAMPION_RIBBON; } -void TrySetUpTrainerFanClubSpecial(void) +void TryPutTrainerFanClubOnAir(void) { TVShow *show; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); - if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_TRAINER_FAN_CLUB, FALSE) != TRUE) + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_TRAINER_FAN_CLUB, FALSE) != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->trainerFanClub.kind = TVSHOW_TRAINER_FAN_CLUB; - show->trainerFanClub.active = FALSE; + show->trainerFanClub.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->trainerFanClub.playerName, gSaveBlock2Ptr->playerName); show->trainerFanClub.words[0] = gSaveBlock1Ptr->easyChatProfile[0]; show->trainerFanClub.words[1] = gSaveBlock1Ptr->easyChatProfile[1]; - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->trainerFanClub.language = gGameLanguage; } } bool8 ShouldHideFanClubInterviewer(void) { - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot == -1) return TRUE; - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_FAN_CLUB_SPECIAL); + TryReplaceOldTVShowOfKind(TVSHOW_FAN_CLUB_SPECIAL); if (gSpecialVar_Result == TRUE) return TRUE; @@ -2471,25 +2354,24 @@ bool8 ShouldAirFrontierTVShow(void) u8 showIdx; TVShow *shows; - if (HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_FRONTIER, FALSE) == TRUE) + if (IsRecordMixShowAlreadySpawned(TVSHOW_FRONTIER, FALSE) == TRUE) { shows = gSaveBlock1Ptr->tvShows; playerId = GetPlayerIDAsU32(); - for (showIdx = 5; showIdx < LAST_TVSHOW_IDX; showIdx ++) + for (showIdx = NUM_NORMAL_TVSHOW_SLOTS; showIdx < LAST_TVSHOW_IDX; showIdx++) { if (shows[showIdx].common.kind == TVSHOW_FRONTIER && (playerId & 0xFF) == shows[showIdx].common.trainerIdLo && ((playerId >> 8) & 0xFF) == shows[showIdx].common.trainerIdHi) { DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, showIdx); - sub_80EF93C(gSaveBlock1Ptr->tvShows); + CompactTVShowArray(gSaveBlock1Ptr->tvShows); return TRUE; } } } - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot == -1) - { return FALSE; - } + return TRUE; } @@ -2497,47 +2379,47 @@ void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode) { TVShow *show; - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->frontier.kind = TVSHOW_FRONTIER; - show->frontier.active = FALSE; + show->frontier.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->frontier.playerName, gSaveBlock2Ptr->playerName); show->frontier.winStreak = winStreak; - show->frontier.facility = facilityAndMode; + show->frontier.facilityAndMode = facilityAndMode; switch (facilityAndMode) { - case 1: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); - show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); - show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES, NULL); - break; - case 2: - show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); - show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); - show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES, NULL); - show->frontier.species4 = GetMonData(&gPlayerParty[3], MON_DATA_SPECIES, NULL); - break; - case 3: - show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); - show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); - break; - case 4: - show->frontier.species1 = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[0] - 1], MON_DATA_SPECIES, NULL); - show->frontier.species2 = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[1] - 1], MON_DATA_SPECIES, NULL); - break; + case FRONTIER_SHOW_TOWER_SINGLES: + case FRONTIER_SHOW_DOME_SINGLES: + case FRONTIER_SHOW_DOME_DOUBLES: + case FRONTIER_SHOW_FACTORY_SINGLES: + case FRONTIER_SHOW_FACTORY_DOUBLES: + case FRONTIER_SHOW_PIKE: + case FRONTIER_SHOW_ARENA: + case FRONTIER_SHOW_PALACE_SINGLES: + case FRONTIER_SHOW_PALACE_DOUBLES: + case FRONTIER_SHOW_PYRAMID: + show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); + show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); + show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES, NULL); + break; + case FRONTIER_SHOW_TOWER_DOUBLES: + show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); + show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); + show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES, NULL); + show->frontier.species4 = GetMonData(&gPlayerParty[3], MON_DATA_SPECIES, NULL); + break; + case FRONTIER_SHOW_TOWER_MULTIS: + show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); + show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); + break; + case FRONTIER_SHOW_TOWER_LINK_MULTIS: + show->frontier.species1 = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[0] - 1], MON_DATA_SPECIES, NULL); + show->frontier.species2 = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[1] - 1], MON_DATA_SPECIES, NULL); + break; } - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->frontier.language = gGameLanguage; } } @@ -2547,14 +2429,14 @@ void TryPutSecretBaseSecretsOnAir(void) TVShow *show; u8 strbuf[32]; - if (HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SECRET_BASE_SECRETS, FALSE) != TRUE) + if (IsRecordMixShowAlreadySpawned(TVSHOW_SECRET_BASE_SECRETS, FALSE) != TRUE) { - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->secretBaseSecrets.kind = TVSHOW_SECRET_BASE_SECRETS; - show->secretBaseSecrets.active = FALSE; + show->secretBaseSecrets.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->secretBaseSecrets.playerName, gSaveBlock2Ptr->playerName); show->secretBaseSecrets.stepsInBase = VarGet(VAR_SECRET_BASE_STEP_COUNTER); CopyCurSecretBaseOwnerName_StrVar1(); @@ -2563,53 +2445,50 @@ void TryPutSecretBaseSecretsOnAir(void) StringCopy(show->secretBaseSecrets.baseOwnersName, strbuf); show->secretBaseSecrets.item = VarGet(VAR_SECRET_BASE_LAST_ITEM_USED); show->secretBaseSecrets.flags = VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) + (VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) << 16); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->secretBaseSecrets.language = gGameLanguage; if (show->secretBaseSecrets.language == LANGUAGE_JAPANESE || gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].language == LANGUAGE_JAPANESE) - { show->secretBaseSecrets.baseOwnersNameLanguage = LANGUAGE_JAPANESE; - } else - { show->secretBaseSecrets.baseOwnersNameLanguage = gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].language; - } } } } -static void sub_80EEB98(u16 days) +// Check var thresholds required to trigger the Number One show +// The vars are reset afterwards regardless +static void ResolveNumberOneShow(u16 days) { u8 i; - for (i = 0; i < ARRAY_COUNT(sNumberOneVarsAndThresholds); i ++) + for (i = 0; i < ARRAY_COUNT(sNumberOneVarsAndThresholds); i++) { if (VarGet(sNumberOneVarsAndThresholds[i][0]) >= sNumberOneVarsAndThresholds[i][1]) { - sub_80EEBF4(i); + TryPutNumberOneOnAir(i); break; } } - for (i = 0; i < ARRAY_COUNT(sNumberOneVarsAndThresholds); i ++) - { + + for (i = 0; i < ARRAY_COUNT(sNumberOneVarsAndThresholds); i++) VarSet(sNumberOneVarsAndThresholds[i][0], 0); - } } -static void sub_80EEBF4(u8 actionIdx) +static void TryPutNumberOneOnAir(u8 actionIdx) { TVShow *show; - HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_NUMBER_ONE, TRUE); - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + IsRecordMixShowAlreadySpawned(TVSHOW_NUMBER_ONE, TRUE); // Delete old version of show + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show->numberOne.kind = TVSHOW_NUMBER_ONE; - show->numberOne.active = FALSE; + show->numberOne.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->numberOne.playerName, gSaveBlock2Ptr->playerName); show->numberOne.actionIdx = actionIdx; show->numberOne.count = VarGet(sNumberOneVarsAndThresholds[actionIdx][0]); - tv_store_id_3x(show); + StorePlayerIdInRecordMixShow(show); show->numberOne.language = gGameLanguage; } } @@ -2651,72 +2530,66 @@ void IncrementDailyBattlePoints(u16 delta) // PokeNews -static void sub_80EED88(void) +static void TryPutRandomPokeNewsOnAir(void) { - u8 newsKind; - if (FlagGet(FLAG_SYS_GAME_CLEAR)) { - sCurTVShowSlot = sub_80EEE30(gSaveBlock1Ptr->pokeNews); + sCurTVShowSlot = GetFirstEmptyPokeNewsSlot(gSaveBlock1Ptr->pokeNews); if (sCurTVShowSlot != -1 && rbernoulli(1, 100) != TRUE) { - newsKind = (Random() % 4) + POKENEWS_SLATEPORT; - if (sub_80EF0E4(newsKind) != TRUE) + u8 newsKind = (Random() % NUM_POKENEWS_TYPES) + POKENEWS_SLATEPORT; + if (IsAddingPokeNewsDisallowed(newsKind) != TRUE) { gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].kind = newsKind; gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].days = 4; - gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].state = TRUE; + gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].state = 1; } } } } -s8 sub_80EEE30(PokeNews *pokeNews) +static s8 GetFirstEmptyPokeNewsSlot(PokeNews *pokeNews) { s8 i; - for (i = 0; i < POKE_NEWS_COUNT; i ++) + for (i = 0; i < POKE_NEWS_COUNT; i++) { - if (pokeNews[i].kind == 0) - { + if (pokeNews[i].kind == POKENEWS_NONE) return i; - } } return -1; } -void ClearPokemonNews(void) +static void ClearPokeNews(void) { u8 i; - for (i = 0; i < POKE_NEWS_COUNT; i ++) - { - ClearPokemonNewsI(i); - } + for (i = 0; i < POKE_NEWS_COUNT; i++) + ClearPokeNewsBySlot(i); } -void ClearPokemonNewsI(u8 i) +static void ClearPokeNewsBySlot(u8 i) { gSaveBlock1Ptr->pokeNews[i].kind = POKENEWS_NONE; gSaveBlock1Ptr->pokeNews[i].state = FALSE; gSaveBlock1Ptr->pokeNews[i].days = 0; } -static void sub_80EEEB8(void) +static void CompactPokeNews(void) { u8 i; u8 j; - for (i = 0; i < POKE_NEWS_COUNT - 1; i ++) + for (i = 0; i < POKE_NEWS_COUNT - 1; i++) { if (gSaveBlock1Ptr->pokeNews[i].kind == POKENEWS_NONE) { - for (j = i + 1; j < POKE_NEWS_COUNT; j ++) + for (j = i + 1; j < POKE_NEWS_COUNT; j++) { if (gSaveBlock1Ptr->pokeNews[j].kind != POKENEWS_NONE) { gSaveBlock1Ptr->pokeNews[i] = gSaveBlock1Ptr->pokeNews[j]; - ClearPokemonNewsI(j); + ClearPokeNewsBySlot(j); break; } } @@ -2724,16 +2597,16 @@ static void sub_80EEEB8(void) } } -u8 FindAnyTVNewsOnTheAir(void) +static u8 FindAnyPokeNewsOnTheAir(void) { u8 i; - for (i = 0; i < POKE_NEWS_COUNT; i ++) + for (i = 0; i < POKE_NEWS_COUNT; i++) { - if (gSaveBlock1Ptr->pokeNews[i].kind != POKENEWS_NONE && gSaveBlock1Ptr->pokeNews[i].state == TRUE && gSaveBlock1Ptr->pokeNews[i].days < 3) - { + if (gSaveBlock1Ptr->pokeNews[i].kind != POKENEWS_NONE + && gSaveBlock1Ptr->pokeNews[i].state == 1 + && gSaveBlock1Ptr->pokeNews[i].days < 3) return i; - } } return 0xFF; } @@ -2743,7 +2616,7 @@ void DoPokeNews(void) u8 i; u16 n; - i = FindAnyTVNewsOnTheAir(); + i = FindAnyPokeNewsOnTheAir(); if (i == 0xFF) { gSpecialVar_Result = FALSE; @@ -2754,13 +2627,9 @@ void DoPokeNews(void) { gSaveBlock1Ptr->pokeNews[i].state = 2; if (gLocalTime.hours < 20) - { ShowFieldMessage(sPokeNewsTextGroup_Ongoing[gSaveBlock1Ptr->pokeNews[i].kind]); - } else - { ShowFieldMessage(sPokeNewsTextGroup_Ending[gSaveBlock1Ptr->pokeNews[i].kind]); - } } else { @@ -2778,101 +2647,92 @@ bool8 GetPriceReduction(u8 newsKind) u8 i; if (newsKind == POKENEWS_NONE) - { return FALSE; - } - for (i = 0; i < POKE_NEWS_COUNT; i ++) + + for (i = 0; i < POKE_NEWS_COUNT; i++) { if (gSaveBlock1Ptr->pokeNews[i].kind == newsKind) { if (gSaveBlock1Ptr->pokeNews[i].state == 2 && IsPriceDiscounted(newsKind)) - { return TRUE; - } + return FALSE; } } return FALSE; } -bool8 IsPriceDiscounted(u8 newsKind) +static bool8 IsPriceDiscounted(u8 newsKind) { switch (newsKind) { - case POKENEWS_SLATEPORT: - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SLATEPORT_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SLATEPORT_CITY) && gSpecialVar_LastTalked == 25) - { - return TRUE; - } - return FALSE; - case POKENEWS_LILYCOVE: - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)) - { - return TRUE; - } - return FALSE; + case POKENEWS_SLATEPORT: + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SLATEPORT_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SLATEPORT_CITY) && gSpecialVar_LastTalked == 25) + return TRUE; + return FALSE; + case POKENEWS_LILYCOVE: + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)) + return TRUE; + return FALSE; } return TRUE; } -bool8 sub_80EF0E4(u8 newsKind) +static bool8 IsAddingPokeNewsDisallowed(u8 newsKind) { u8 i; if (newsKind == POKENEWS_NONE) - { return TRUE; - } - for (i = 0; i < POKE_NEWS_COUNT; i ++) + + // Check if this type of news is already active + for (i = 0; i < POKE_NEWS_COUNT; i++) { if (gSaveBlock1Ptr->pokeNews[i].kind == newsKind) - { return TRUE; - } } return FALSE; } -static void sub_80EF120(u16 days) +static void UpdatePokeNewsTimeLeft(u16 days) { u8 i; - for (i = 0; i < POKE_NEWS_COUNT; i ++) + for (i = 0; i < POKE_NEWS_COUNT; i++) { if (gSaveBlock1Ptr->pokeNews[i].kind != POKENEWS_NONE) { if (gSaveBlock1Ptr->pokeNews[i].days < days) { - ClearPokemonNewsI(i); + ClearPokeNewsBySlot(i); } else { if (gSaveBlock1Ptr->pokeNews[i].state == 0 && FlagGet(FLAG_SYS_GAME_CLEAR) == TRUE) - { gSaveBlock1Ptr->pokeNews[i].state = 1; - } + gSaveBlock1Ptr->pokeNews[i].days -= days; } } } - sub_80EEEB8(); + CompactPokeNews(); } void CopyContestRankToStringVar(u8 varIdx, u8 rank) { switch (rank) { - case CONTEST_RANK_NORMAL: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_NORMAL]); - break; - case CONTEST_RANK_SUPER: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_SUPER]); - break; - case CONTEST_RANK_HYPER: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_HYPER]); - break; - case CONTEST_RANK_MASTER: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_MASTER]); - break; + case CONTEST_RANK_NORMAL: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_NORMAL]); + break; + case CONTEST_RANK_SUPER: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_SUPER]); + break; + case CONTEST_RANK_HYPER: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_HYPER]); + break; + case CONTEST_RANK_MASTER: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_MASTER]); + break; } } @@ -2880,21 +2740,21 @@ void CopyContestCategoryToStringVar(u8 varIdx, u8 category) { switch (category) { - case CONTEST_CATEGORY_COOL: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_COOL]); - break; - case CONTEST_CATEGORY_BEAUTY: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_BEAUTY]); - break; - case CONTEST_CATEGORY_CUTE: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_CUTE]); - break; - case CONTEST_CATEGORY_SMART: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_SMART]); - break; - case CONTEST_CATEGORY_TOUGH: - StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_TOUGH]); - break; + case CONTEST_CATEGORY_COOL: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_COOL]); + break; + case CONTEST_CATEGORY_BEAUTY: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_BEAUTY]); + break; + case CONTEST_CATEGORY_CUTE: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_CUTE]); + break; + case CONTEST_CATEGORY_SMART: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_SMART]); + break; + case CONTEST_CATEGORY_TOUGH: + StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_TOUGH]); + break; } } @@ -2906,11 +2766,9 @@ void SetContestCategoryStringVarForInterview(void) CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); } -void TV_PrintIntToStringVar(u8 varIdx, int value) +void ConvertIntToDecimalString(u8 varIdx, int value) { - int nDigits; - - nDigits = CountDigits(value); + int nDigits = CountDigits(value); ConvertIntToDecimalStringN(gTVStringVarPtrs[varIdx], value, STR_CONV_MODE_LEFT_ALIGN, nDigits); } @@ -2928,30 +2786,25 @@ size_t CountDigits(int value) return 1; } -static void sub_80EF40C(u8 varIdx, TVShow *show) +static void SmartShopper_BufferPurchaseTotal(u8 varIdx, TVShow *show) { u8 i; int price; price = 0; - for (i = 0; i < 3; i ++) + for (i = 0; i < SMARTSHOPPER_NUM_ITEMS; i++) { if (show->smartshopperShow.itemIds[i] != ITEM_NONE) - { price += ItemId_GetPrice(show->smartshopperShow.itemIds[i]) * show->smartshopperShow.itemAmounts[i]; - } } + if (show->smartshopperShow.priceReduced == TRUE) - { - TV_PrintIntToStringVar(varIdx, price >> 1); - } + ConvertIntToDecimalString(varIdx, price >> 1); else - { - TV_PrintIntToStringVar(varIdx, price); - } + ConvertIntToDecimalString(varIdx, price); } -bool8 HasMixableShowAlreadyBeenSpawnedWithPlayerID(u8 kind, bool8 flag) +static bool8 IsRecordMixShowAlreadySpawned(u8 kind, bool8 delete) { u32 playerId; TVShow *shows; @@ -2959,14 +2812,16 @@ bool8 HasMixableShowAlreadyBeenSpawnedWithPlayerID(u8 kind, bool8 flag) shows = gSaveBlock1Ptr->tvShows; playerId = GetPlayerIDAsU32(); - for (i = 5; i < LAST_TVSHOW_IDX; i ++) + for (i = NUM_NORMAL_TVSHOW_SLOTS; i < LAST_TVSHOW_IDX; i++) { - if (shows[i].common.kind == kind && (playerId & 0xFF) == shows[i].common.trainerIdLo && ((playerId >> 8) & 0xFF) == shows[i].common.trainerIdHi) + if (shows[i].common.kind == kind + && (playerId & 0xFF) == shows[i].common.trainerIdLo + && ((playerId >> 8) & 0xFF) == shows[i].common.trainerIdHi) { - if (flag == TRUE) + if (delete == TRUE) { DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, i); - sub_80EF93C(gSaveBlock1Ptr->tvShows); + CompactTVShowArray(gSaveBlock1Ptr->tvShows); } return TRUE; } @@ -2974,16 +2829,15 @@ bool8 HasMixableShowAlreadyBeenSpawnedWithPlayerID(u8 kind, bool8 flag) return FALSE; } -void TV_SortPurchasesByQuantity(void) +static void SortPurchasesByQuantity(void) { - u8 i; - u8 j; + u8 i, j; u16 tmpId; u16 tmpQn; - for (i = 0; i < 2; i ++) + for (i = 0; i < SMARTSHOPPER_NUM_ITEMS - 1; i++) { - for (j = i + 1; j < 3; j ++) + for (j = i + 1; j < SMARTSHOPPER_NUM_ITEMS; j++) { if (gMartPurchaseHistory[i].quantity < gMartPurchaseHistory[j].quantity) { @@ -2998,27 +2852,31 @@ void TV_SortPurchasesByQuantity(void) } } -void FindActiveBroadcastByShowType_SetScriptResult(u8 kind) +static void TryReplaceOldTVShowOfKind(u8 kind) { u8 i; - for (i = 0; i < 5; i ++) + for (i = 0; i < NUM_NORMAL_TVSHOW_SLOTS; i++) { if (gSaveBlock1Ptr->tvShows[i].common.kind == kind) { if (gSaveBlock1Ptr->tvShows[i].common.active == TRUE) { + // Old TV show is still active, don't replace gSpecialVar_Result = TRUE; } else { + // Old TV show is inactive, replace it and get new slot DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, i); - sub_80EF93C(gSaveBlock1Ptr->tvShows); - sub_80EFA88(); + CompactTVShowArray(gSaveBlock1Ptr->tvShows); + Script_FindFirstEmptyNormalTVShowSlot(); } return; } } - sub_80EFA88(); + + // Old TV show doesn't exist, just get new slot + Script_FindFirstEmptyNormalTVShowSlot(); } void InterviewBefore(void) @@ -3026,42 +2884,42 @@ void InterviewBefore(void) gSpecialVar_Result = FALSE; switch (gSpecialVar_0x8005) { - case TVSHOW_FAN_CLUB_LETTER: - InterviewBefore_FanClubLetter(); - break; - case TVSHOW_RECENT_HAPPENINGS: - InterviewBefore_RecentHappenings(); - break; - case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - InterviewBefore_PkmnFanClubOpinions(); - break; - case TVSHOW_UNKN_SHOWTYPE_04: - InterviewBefore_Dummy(); - break; - case TVSHOW_NAME_RATER_SHOW: - InterviewBefore_NameRater(); - break; - case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - InterviewBefore_BravoTrainerPkmnProfile(); - break; - case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - InterviewBefore_BravoTrainerBTProfile(); - break; - case TVSHOW_CONTEST_LIVE_UPDATES: - InterviewBefore_ContestLiveUpdates(); - break; - case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: - InterviewBefore_3CheersForPokeblocks(); - break; - case TVSHOW_FAN_CLUB_SPECIAL: - InterviewBefore_FanClubSpecial(); - break; + case TVSHOW_FAN_CLUB_LETTER: + InterviewBefore_FanClubLetter(); + break; + case TVSHOW_RECENT_HAPPENINGS: + InterviewBefore_RecentHappenings(); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + InterviewBefore_PkmnFanClubOpinions(); + break; + case TVSHOW_DUMMY: + InterviewBefore_Dummy(); + break; + case TVSHOW_NAME_RATER_SHOW: + InterviewBefore_NameRater(); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + InterviewBefore_BravoTrainerPkmnProfile(); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + InterviewBefore_BravoTrainerBTProfile(); + break; + case TVSHOW_CONTEST_LIVE_UPDATES: + InterviewBefore_ContestLiveUpdates(); + break; + case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + InterviewBefore_3CheersForPokeblocks(); + break; + case TVSHOW_FAN_CLUB_SPECIAL: + InterviewBefore_FanClubSpecial(); + break; } } static void InterviewBefore_FanClubLetter(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_FAN_CLUB_LETTER); + TryReplaceOldTVShowOfKind(TVSHOW_FAN_CLUB_LETTER); if (!gSpecialVar_Result) { StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)]); @@ -3071,7 +2929,7 @@ static void InterviewBefore_FanClubLetter(void) static void InterviewBefore_RecentHappenings(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_RECENT_HAPPENINGS); + TryReplaceOldTVShowOfKind(TVSHOW_RECENT_HAPPENINGS); if (!gSpecialVar_Result) { InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].recentHappenings.words, 6); @@ -3080,7 +2938,7 @@ static void InterviewBefore_RecentHappenings(void) static void InterviewBefore_PkmnFanClubOpinions(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_PKMN_FAN_CLUB_OPINIONS); + TryReplaceOldTVShowOfKind(TVSHOW_PKMN_FAN_CLUB_OPINIONS); if (!gSpecialVar_Result) { StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)]); @@ -3097,44 +2955,38 @@ static void InterviewBefore_Dummy(void) static void InterviewBefore_NameRater(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_NAME_RATER_SHOW); + TryReplaceOldTVShowOfKind(TVSHOW_NAME_RATER_SHOW); } static void InterviewBefore_BravoTrainerPkmnProfile(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE); + TryReplaceOldTVShowOfKind(TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE); if (!gSpecialVar_Result) - { InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainer.words, 2); - } } static void InterviewBefore_ContestLiveUpdates(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_CONTEST_LIVE_UPDATES); + TryReplaceOldTVShowOfKind(TVSHOW_CONTEST_LIVE_UPDATES); } static void InterviewBefore_3CheersForPokeblocks(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_3_CHEERS_FOR_POKEBLOCKS); + TryReplaceOldTVShowOfKind(TVSHOW_3_CHEERS_FOR_POKEBLOCKS); } static void InterviewBefore_BravoTrainerBTProfile(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE); + TryReplaceOldTVShowOfKind(TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE); if (!gSpecialVar_Result) - { InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainerTower.words, 1); - } } static void InterviewBefore_FanClubSpecial(void) { - FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_FAN_CLUB_SPECIAL); + TryReplaceOldTVShowOfKind(TVSHOW_FAN_CLUB_SPECIAL); if (!gSpecialVar_Result) - { InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanClubSpecial.words, 1); - } } static bool8 IsPartyMonNicknamedOrNotEnglish(u8 monIdx) @@ -3145,10 +2997,9 @@ static bool8 IsPartyMonNicknamedOrNotEnglish(u8 monIdx) pokemon = &gPlayerParty[monIdx]; GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); language = GetMonData(pokemon, MON_DATA_LANGUAGE, &language); - if (language == LANGUAGE_ENGLISH && !StringCompare(gSpeciesNames[GetMonData(pokemon, MON_DATA_SPECIES, NULL)], gStringVar1)) - { + if (language == GAME_LANGUAGE && !StringCompare(gSpeciesNames[GetMonData(pokemon, MON_DATA_SPECIES, NULL)], gStringVar1)) return FALSE; - } + return TRUE; } @@ -3157,28 +3008,27 @@ bool8 IsLeadMonNicknamedOrNotEnglish(void) return IsPartyMonNicknamedOrNotEnglish(GetLeadMonIndex()); } -void DeleteTVShowInArrayByIdx(TVShow *shows, u8 idx) +static void DeleteTVShowInArrayByIdx(TVShow *shows, u8 idx) { u8 i; shows[idx].commonInit.kind = TVSHOW_OFF_AIR; shows[idx].commonInit.active = FALSE; - for (i = 0; i < ARRAY_COUNT(shows[idx].commonInit.pad02); i++) - { - shows[idx].commonInit.pad02[i] = 0; - } + for (i = 0; i < ARRAY_COUNT(shows[idx].commonInit.data); i++) + shows[idx].commonInit.data[i] = 0; } -static void sub_80EF93C(TVShow *shows) +static void CompactTVShowArray(TVShow *shows) { u8 i; u8 j; - for (i = 0; i < 4; i ++) + // Compact normal TV shows + for (i = 0; i < NUM_NORMAL_TVSHOW_SLOTS - 1; i++) { if (shows[i].common.kind == TVSHOW_OFF_AIR) { - for (j = i + 1; j < 5; j ++) + for (j = i + 1; j < NUM_NORMAL_TVSHOW_SLOTS; j++) { if (shows[j].common.kind != TVSHOW_OFF_AIR) { @@ -3189,11 +3039,13 @@ static void sub_80EF93C(TVShow *shows) } } } - for (i = 5; i < LAST_TVSHOW_IDX; i ++) + + // Compact Record Mix TV shows + for (i = NUM_NORMAL_TVSHOW_SLOTS; i < LAST_TVSHOW_IDX; i++) { if (shows[i].common.kind == TVSHOW_OFF_AIR) { - for (j = i + 1; j < LAST_TVSHOW_IDX; j ++) + for (j = i + 1; j < LAST_TVSHOW_IDX; j++) { if (shows[j].common.kind != TVSHOW_OFF_AIR) { @@ -3206,16 +3058,16 @@ static void sub_80EF93C(TVShow *shows) } } -u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName(u8 varIdx, u16 passedSpecies) +static u16 GetRandomDifferentSpeciesAndNameSeenByPlayer(u8 varIdx, u16 passedSpecies) { u16 species; - species = TV_GetSomeOtherSpeciesAlreadySeenByPlayer(passedSpecies); + species = GetRandomDifferentSpeciesSeenByPlayer(passedSpecies); StringCopy(gTVStringVarPtrs[varIdx], gSpeciesNames[species]); return species; } -u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies) +static u16 GetRandomDifferentSpeciesSeenByPlayer(u16 passedSpecies) { u16 species; u16 initSpecies; @@ -3225,13 +3077,10 @@ u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies) while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN) != TRUE || species == passedSpecies) { if (species == SPECIES_NONE + 1) - { species = NUM_SPECIES - 1; - } else - { - species --; - } + species--; + if (species == initSpecies) { species = passedSpecies; @@ -3241,104 +3090,94 @@ u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies) return species; } -static void sub_80EFA88(void) +static void Script_FindFirstEmptyNormalTVShowSlot(void) { - sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + sCurTVShowSlot = FindFirstEmptyNormalTVShowSlot(gSaveBlock1Ptr->tvShows); gSpecialVar_0x8006 = sCurTVShowSlot; if (sCurTVShowSlot == -1) - { - gSpecialVar_Result = TRUE; - } + gSpecialVar_Result = TRUE; // Failed to find empty slot else - { - gSpecialVar_Result = FALSE; - } + gSpecialVar_Result = FALSE; // Found empty slot } -s8 FindEmptyTVSlotWithinFirstFiveShowsOfArray(TVShow *shows) +static s8 FindFirstEmptyNormalTVShowSlot(TVShow *shows) { u8 i; - for (i = 0; i < 5; i ++) + for (i = 0; i < NUM_NORMAL_TVSHOW_SLOTS; i++) { if (shows[i].common.kind == TVSHOW_OFF_AIR) - { return i; - } } return -1; } -s8 FindEmptyTVSlotBeyondFirstFiveShowsOfArray(TVShow *shows) +static s8 FindFirstEmptyRecordMixTVShowSlot(TVShow *shows) { s8 i; - for (i = 5; i < LAST_TVSHOW_IDX; i ++) + for (i = NUM_NORMAL_TVSHOW_SLOTS; i < LAST_TVSHOW_IDX; i++) { if (shows[i].common.kind == TVSHOW_OFF_AIR) - { return i; - } } return -1; } -bool8 TV_BernoulliTrial(u16 ratio) +static bool8 BernoulliTrial(u16 ratio) { if (Random() <= ratio) - { return FALSE; - } + return TRUE; } -void TV_FanClubLetter_RandomWordToStringVar3(TVShow *show) +// For TVSHOW_FAN_CLUB_LETTER / TVSHOW_RECENT_HAPPENINGS +// Both are assumed to have the same struct layout +static void GetRandomWordFromShow(TVShow *show) { u8 i; - i = Random() % 6; + i = Random() % ARRAY_COUNT(show->fanclubLetter.words); + + // From random point, get first non-empty word while (TRUE) { - if (i == 6) - { + if (i == ARRAY_COUNT(show->fanclubLetter.words)) i = 0; - } - if (show->fanclubLetter.words[i] != 0xFFFF) - { + + if (show->fanclubLetter.words[i] != EC_EMPTY_WORD) break; - } - i ++; + i++; } CopyEasyChatWord(gStringVar3, show->fanclubLetter.words[i]); } -u8 TV_GetNicknameSumMod8(TVShow *show) +static u8 GetRandomNameRaterStateFromName(TVShow *show) { u8 i; - u16 ct; + u16 nameSum; - ct = 0; - for (i = 0; i < 11; i ++) + nameSum = 0; + for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) { if (show->nameRaterShow.pokemonName[i] == EOS) - { break; - } - ct += show->nameRaterShow.pokemonName[i]; + + nameSum += show->nameRaterShow.pokemonName[i]; } - return ct & 7; + return nameSum & 7; } -void TV_GetNicknameSubstring(u8 varIdx, u8 whichPosition, u8 charParam, u16 whichString, u16 species, TVShow *show) +static void GetNicknameSubstring(u8 varIdx, u8 whichPosition, u8 charParam, u16 whichString, u16 species, TVShow *show) { u8 buff[16]; u8 i; u16 strlen; - for (i = 0; i < 3; i ++) - { + for (i = 0; i < 3; i++) buff[i] = EOS; - } + if (whichString == 0) { strlen = StringLength(show->nameRaterShow.trainerName); @@ -3410,16 +3249,15 @@ void TV_GetNicknameSubstring(u8 varIdx, u8 whichPosition, u8 charParam, u16 whic StringCopy(gTVStringVarPtrs[varIdx], buff); } -bool8 TV_IsScriptShowKindAlreadyInQueue(void) +// Unused script special +bool8 IsTVShowAlreadyInQueue(void) { u8 i; - for (i = 0; i < 5; i ++) + for (i = 0; i < NUM_NORMAL_TVSHOW_SLOTS; i++) { if (gSaveBlock1Ptr->tvShows[i].common.kind == gSpecialVar_0x8004) - { return TRUE; - } } return FALSE; } @@ -3461,7 +3299,7 @@ void ChangeBoxPokemonNickname(void) DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB); } -void ChangeBoxPokemonNickname_CB(void) +static void ChangeBoxPokemonNickname_CB(void) { SetBoxMonNickAt(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos, gStringVar2); CB2_ReturnToFieldContinueScriptPlayMapMusic(); @@ -3481,25 +3319,21 @@ void IsMonOTIDNotPlayers(void) gSpecialVar_Result = TRUE; } -u8 GetTVChannelByShowType(u8 kind) +static u8 GetTVGroupByShowId(u8 kind) { if (kind == TVSHOW_OFF_AIR) - { - return 0; - } - if (kind >= TVSHOW_FAN_CLUB_LETTER && kind < TVSHOW_POKEMON_TODAY_CAUGHT) - { - return 2; - } - if (kind >= TVSHOW_POKEMON_TODAY_CAUGHT && kind < TVSHOW_MASS_OUTBREAK) - { - return 3; - } - if (kind >= TVSHOW_MASS_OUTBREAK && kind < 61) - { - return 4; - } - return 0; + return TVGROUP_NONE; + + if (kind >= TVGROUP_NORMAL_START && kind <= TVGROUP_NORMAL_END) + return TVGROUP_NORMAL; + + if (kind >= TVGROUP_RECORD_MIX_START && kind <= TVGROUP_RECORD_MIX_END) + return TVGROUP_RECORD_MIX; + + if (kind >= TVGROUP_OUTBREAK_START && kind <= TVGROUP_OUTBREAK_END) + return TVGROUP_OUTBREAK; + + return TVGROUP_NONE; } u32 GetPlayerIDAsU32(void) @@ -3507,35 +3341,31 @@ u32 GetPlayerIDAsU32(void) return (gSaveBlock2Ptr->playerTrainerId[3] << 24) | (gSaveBlock2Ptr->playerTrainerId[2] << 16) | (gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]; } -u8 CheckForBigMovieOrEmergencyNewsOnTV(void) +u8 CheckForPlayersHouseNews(void) { + // Check if not in Littleroot house map group if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)) - { - return 0; - } + return PLAYERS_HOUSE_TV_NONE; + + // Check if not in player's house (dependent on gender) if (gSaveBlock2Ptr->playerGender == MALE) { if (gSaveBlock1Ptr->location.mapNum != MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)) - { - return 0; - } + return PLAYERS_HOUSE_TV_NONE; } else { if (gSaveBlock1Ptr->location.mapNum != MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F)) - { - return 0; - } + return PLAYERS_HOUSE_TV_NONE; } + if (FlagGet(FLAG_SYS_TV_LATIAS_LATIOS) == TRUE) - { - return 1; - } + return PLAYERS_HOUSE_TV_LATI; + if (FlagGet(FLAG_SYS_TV_HOME) == TRUE) - { - return 2; - } - return 1; + return PLAYERS_HOUSE_TV_MOVIE; + + return PLAYERS_HOUSE_TV_LATI; } void GetMomOrDadStringForTVMessage(void) @@ -3592,133 +3422,124 @@ void GetMomOrDadStringForTVMessage(void) void HideBattleTowerReporter(void) { VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0); - RemoveObjectEventByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + RemoveObjectEventByLocalIdAndMap(LOCALID_BATTLE_TOWER_LOBBY_REPORTER, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); FlagSet(FLAG_HIDE_BATTLE_TOWER_REPORTER); } -void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx) +void ReceiveTvShowsData(void *src, u32 size, u8 playersLinkId) { u8 i; u16 version; - TVShow (*rmBuffer2)[4][25]; - TVShow (*rmBuffer)[4][25]; + TVShow (*rmBuffer2)[MAX_LINK_PLAYERS][TV_SHOWS_COUNT]; + TVShow (*rmBuffer)[MAX_LINK_PLAYERS][TV_SHOWS_COUNT]; - rmBuffer2 = malloc(4 * 25 * sizeof(TVShow)); + rmBuffer2 = malloc(MAX_LINK_PLAYERS * TV_SHOWS_COUNT * sizeof(TVShow)); if (rmBuffer2 != NULL) { - for (i = 0; i < 4; i ++) - { + for (i = 0; i < MAX_LINK_PLAYERS; i++) memcpy((*rmBuffer2)[i], src + i * size, sizeof((*rmBuffer2)[i])); - } + rmBuffer = rmBuffer2; - for (i = 0; i < GetLinkPlayerCount(); i ++) + for (i = 0; i < GetLinkPlayerCount(); i++) { version = (u8)gLinkPlayers[i].version; if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) - { - sub_80F1254((*rmBuffer)[i]); - } + TranslateRubyShows((*rmBuffer)[i]); else if (version == VERSION_EMERALD && gLinkPlayers[i].language == LANGUAGE_JAPANESE) - { - sub_80F12A4((*rmBuffer)[i]); - } + TranslateJapaneseEmeraldShows((*rmBuffer)[i]); } - switch (masterIdx) + + // Position player's TV shows in argument list depending on link id + switch (playersLinkId) { - case 0: - sub_80F0358(gSaveBlock1Ptr->tvShows, (*rmBuffer)[1], (*rmBuffer)[2], (*rmBuffer)[3]); - break; - case 1: - sub_80F0358((*rmBuffer)[0], gSaveBlock1Ptr->tvShows, (*rmBuffer)[2], (*rmBuffer)[3]); - break; - case 2: - sub_80F0358((*rmBuffer)[0], (*rmBuffer)[1], gSaveBlock1Ptr->tvShows, (*rmBuffer)[3]); - break; - case 3: - sub_80F0358((*rmBuffer)[0], (*rmBuffer)[1], (*rmBuffer)[2], gSaveBlock1Ptr->tvShows); - break; + case 0: + SetMixedTVShows(gSaveBlock1Ptr->tvShows, (*rmBuffer)[1], (*rmBuffer)[2], (*rmBuffer)[3]); + break; + case 1: + SetMixedTVShows((*rmBuffer)[0], gSaveBlock1Ptr->tvShows, (*rmBuffer)[2], (*rmBuffer)[3]); + break; + case 2: + SetMixedTVShows((*rmBuffer)[0], (*rmBuffer)[1], gSaveBlock1Ptr->tvShows, (*rmBuffer)[3]); + break; + case 3: + SetMixedTVShows((*rmBuffer)[0], (*rmBuffer)[1], (*rmBuffer)[2], gSaveBlock1Ptr->tvShows); + break; } - sub_80EF93C(gSaveBlock1Ptr->tvShows); - sub_80F0C04(); - sub_80EF93C(gSaveBlock1Ptr->tvShows); - sub_80F0708(); - sub_80F0B64(); + + CompactTVShowArray(gSaveBlock1Ptr->tvShows); + DeleteExcessMixedShows(); + CompactTVShowArray(gSaveBlock1Ptr->tvShows); + DeactivateShowsWithUnseenSpecies(); + DeactivateGameCompleteShowsIfNotUnlocked(); free(rmBuffer2); } } -static void sub_80F0358(TVShow player1[25], TVShow player2[25], TVShow player3[25], TVShow player4[25]) +static void SetMixedTVShows(TVShow player1[TV_SHOWS_COUNT], TVShow player2[TV_SHOWS_COUNT], TVShow player3[TV_SHOWS_COUNT], TVShow player4[TV_SHOWS_COUNT]) { u8 i; u8 j; - TVShow **argslist[4]; + TVShow **tvShows[MAX_LINK_PLAYERS]; - argslist[0] = &player1; - argslist[1] = &player2; - argslist[2] = &player3; - argslist[3] = &player4; + tvShows[0] = &player1; + tvShows[1] = &player2; + tvShows[2] = &player3; + tvShows[3] = &player4; sTVShowMixingNumPlayers = GetLinkPlayerCount(); while (1) { - for (i = 0; i < sTVShowMixingNumPlayers; i ++) + for (i = 0; i < sTVShowMixingNumPlayers; i++) { if (i == 0) - { - sRecordMixingPartnersWithoutShowsToShare = i; - } - sTVShowMixingCurSlot = sub_80F06D0(argslist[i][0]); + sRecordMixingPartnersWithoutShowsToShare = 0; + + sTVShowMixingCurSlot = FindInactiveShowInArray(tvShows[i][0]); if (sTVShowMixingCurSlot == -1) { - sRecordMixingPartnersWithoutShowsToShare ++; + sRecordMixingPartnersWithoutShowsToShare++; if (sRecordMixingPartnersWithoutShowsToShare == sTVShowMixingNumPlayers) - { return; - } } else { - for (j = 0; j < sTVShowMixingNumPlayers - 1; j ++) + for (j = 0; j < sTVShowMixingNumPlayers - 1; j++) { - sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(argslist[(i + j + 1) % sTVShowMixingNumPlayers][0]); + sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(tvShows[(i + j + 1) % sTVShowMixingNumPlayers][0]); if (sCurTVShowSlot != -1 - && sub_80F049C(&argslist[(i + j + 1) % sTVShowMixingNumPlayers][0], &argslist[i][0], (i + j + 1) % sTVShowMixingNumPlayers) == 1) - { + && TryMixTVShow(&tvShows[(i + j + 1) % sTVShowMixingNumPlayers][0], &tvShows[i][0], (i + j + 1) % sTVShowMixingNumPlayers) == 1) break; - } } if (j == sTVShowMixingNumPlayers - 1) - { - DeleteTVShowInArrayByIdx(argslist[i][0], sTVShowMixingCurSlot); - } + DeleteTVShowInArrayByIdx(tvShows[i][0], sTVShowMixingCurSlot); } } } } -static bool8 sub_80F049C(TVShow *dest[25], TVShow *src[25], u8 idx) +static bool8 TryMixTVShow(TVShow *dest[TV_SHOWS_COUNT], TVShow *src[TV_SHOWS_COUNT], u8 idx) { - u8 value; - u8 switchval; - TVShow *tv1; - TVShow *tv2; + bool8 success; + u8 type; + TVShow *tv1 = *dest; + TVShow *tv2 = *src; - tv1 = *dest; - tv2 = *src; - value = FALSE; - switchval = GetTVChannelByShowType(tv2[sTVShowMixingCurSlot].common.kind); - switch (switchval) + success = FALSE; + type = GetTVGroupByShowId(tv2[sTVShowMixingCurSlot].common.kind); + switch (type) { - case 2: - value = sub_80F0580(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); - break; - case 3: - value = sub_80F05E8(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); - break; - case 4: - value = sub_80F0668(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); - break; + case TVGROUP_NORMAL: + success = TryMixNormalTVShow(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); + break; + case TVGROUP_RECORD_MIX: + success = TryMixRecordMixTVShow(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); + break; + case TVGROUP_OUTBREAK: + success = TryMixOutbreakTVShow(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); + break; } - if (value == TRUE) + + // Show was mixed, delete from array + if (success == TRUE) { DeleteTVShowInArrayByIdx(tv2, sTVShowMixingCurSlot); return TRUE; @@ -3726,387 +3547,354 @@ static bool8 sub_80F049C(TVShow *dest[25], TVShow *src[25], u8 idx) return FALSE; } -static bool8 sub_80F0580(TVShow *tv1, TVShow *tv2, u8 idx) +static bool8 TryMixNormalTVShow(TVShow *dest, TVShow *src, u8 idx) { u32 linkTrainerId = GetLinkPlayerTrainerId(idx); - if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) - { + if ((linkTrainerId & 0xFF) == src->common.trainerIdLo + && ((linkTrainerId >> 8) & 0xFF) == src->common.trainerIdHi) return FALSE; - } - tv2->common.trainerIdLo = tv2->common.srcTrainerIdLo; - tv2->common.trainerIdHi = tv2->common.srcTrainerIdHi; - tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; - tv2->common.srcTrainerIdHi = linkTrainerId >> 8; - *tv1 = *tv2; - tv1->common.active = TRUE; + + src->common.trainerIdLo = src->common.srcTrainerIdLo; + src->common.trainerIdHi = src->common.srcTrainerIdHi; + src->common.srcTrainerIdLo = linkTrainerId & 0xFF; + src->common.srcTrainerIdHi = linkTrainerId >> 8; + *dest = *src; + dest->common.active = TRUE; return TRUE; } -static bool8 sub_80F05E8(TVShow *tv1, TVShow *tv2, u8 idx) +static bool8 TryMixRecordMixTVShow(TVShow *dest, TVShow *src, u8 idx) { u32 linkTrainerId = GetLinkPlayerTrainerId(idx); - if ((linkTrainerId & 0xFF) == tv2->common.srcTrainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.srcTrainerIdHi) - { + + if ((linkTrainerId & 0xFF) == src->common.srcTrainerIdLo + && ((linkTrainerId >> 8) & 0xFF) == src->common.srcTrainerIdHi) return FALSE; - } - if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) - { + + if ((linkTrainerId & 0xFF) == src->common.trainerIdLo + && ((linkTrainerId >> 8) & 0xFF) == src->common.trainerIdHi) return FALSE; - } - tv2->common.srcTrainerIdLo = tv2->common.srcTrainerId2Lo; - tv2->common.srcTrainerIdHi = tv2->common.srcTrainerId2Hi; - tv2->common.srcTrainerId2Lo = linkTrainerId & 0xFF; - tv2->common.srcTrainerId2Hi = linkTrainerId >> 8; - *tv1 = *tv2; - tv1->common.active = TRUE; + + src->common.srcTrainerIdLo = src->common.srcTrainerId2Lo; + src->common.srcTrainerIdHi = src->common.srcTrainerId2Hi; + src->common.srcTrainerId2Lo = linkTrainerId & 0xFF; + src->common.srcTrainerId2Hi = linkTrainerId >> 8; + *dest = *src; + dest->common.active = TRUE; return TRUE; } -static bool8 sub_80F0668(TVShow *tv1, TVShow *tv2, u8 idx) +static bool8 TryMixOutbreakTVShow(TVShow *dest, TVShow *src, u8 idx) { u32 linkTrainerId = GetLinkPlayerTrainerId(idx); - if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) - { + + if ((linkTrainerId & 0xFF) == src->common.trainerIdLo + && ((linkTrainerId >> 8) & 0xFF) == src->common.trainerIdHi) return FALSE; - } - tv2->common.trainerIdLo = tv2->common.srcTrainerIdLo; - tv2->common.trainerIdHi = tv2->common.srcTrainerIdHi; - tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; - tv2->common.srcTrainerIdHi = linkTrainerId >> 8; - *tv1 = *tv2; - tv1->common.active = TRUE; - tv1->massOutbreak.daysLeft = 1; + + src->common.trainerIdLo = src->common.srcTrainerIdLo; + src->common.trainerIdHi = src->common.srcTrainerIdHi; + src->common.srcTrainerIdLo = linkTrainerId & 0xFF; + src->common.srcTrainerIdHi = linkTrainerId >> 8; + *dest = *src; + dest->common.active = TRUE; + dest->massOutbreak.daysLeft = 1; return TRUE; } -static s8 sub_80F06D0(TVShow *tvShows) +static s8 FindInactiveShowInArray(TVShow *tvShows) { u8 i; - for (i = 0; i < LAST_TVSHOW_IDX; i ++) + for (i = 0; i < LAST_TVSHOW_IDX; i++) { - if (tvShows[i].common.active == FALSE && (u8)(tvShows[i].common.kind - 1) < 60) - { + // Second check is to make sure its a valid show (not too high, not TVSHOW_OFF_AIR) + if (tvShows[i].common.active == FALSE && (u8)(tvShows[i].common.kind - 1) < TVGROUP_OUTBREAK_END) return i; - } } return -1; } -static void sub_80F0708(void) // FIXME: register allocation shenanigans +static void DeactivateShowsWithUnseenSpecies(void) { u16 i; - u16 j; + u16 species; - for (i = 0; i < LAST_TVSHOW_IDX; i ++) + for (i = 0; i < LAST_TVSHOW_IDX; i++) { switch (gSaveBlock1Ptr->tvShows[i].common.kind) { - case TVSHOW_CONTEST_LIVE_UPDATES: - j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.losingSpecies; - sub_80F0B24(j, i); + case TVSHOW_CONTEST_LIVE_UPDATES: + species = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.losingSpecies; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_BATTLE_UPDATE: + species = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesPlayer; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesOpponent; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_FAN_CLUB_LETTER: + species = (&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + species = (&gSaveBlock1Ptr->tvShows[i])->fanclubOpinions.species; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_DUMMY: + species = (&gSaveBlock1Ptr->tvShows[i])->dummy.species; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_NAME_RATER_SHOW: + species = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + species = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainer.species; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + species = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_POKEMON_TODAY_CAUGHT: + species = (&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + species = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_FISHING_ADVICE: + species = (&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_WORLD_OF_MASTERS: + species = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_BREAKING_NEWS: + species = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_SECRET_BASE_VISIT: + species = (&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_BATTLE_SEMINAR: + species = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies; + DeactivateShowIfNotSeenSpecies(species, i); + break; + case TVSHOW_FRONTIER: + species = (&gSaveBlock1Ptr->tvShows[i])->frontier.species1; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->frontier.species2; + DeactivateShowIfNotSeenSpecies(species, i); + // Species var re-used here + species = (&gSaveBlock1Ptr->tvShows[i])->frontier.facilityAndMode; + switch (species) + { + case FRONTIER_SHOW_TOWER_MULTIS: + case FRONTIER_SHOW_TOWER_LINK_MULTIS: break; - case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + case FRONTIER_SHOW_TOWER_SINGLES: + case FRONTIER_SHOW_DOME_SINGLES: + case FRONTIER_SHOW_DOME_DOUBLES: + case FRONTIER_SHOW_FACTORY_SINGLES: + case FRONTIER_SHOW_FACTORY_DOUBLES: + case FRONTIER_SHOW_PIKE: + case FRONTIER_SHOW_ARENA: + case FRONTIER_SHOW_PALACE_SINGLES: + case FRONTIER_SHOW_PALACE_DOUBLES: + case FRONTIER_SHOW_PYRAMID: + species = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3; + DeactivateShowIfNotSeenSpecies(species, i); break; - case TVSHOW_BATTLE_UPDATE: - j = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesPlayer; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->battleUpdate.speciesOpponent; - sub_80F0B24(j, i); - break; - case TVSHOW_FAN_CLUB_SPECIAL: - break; - case TVSHOW_CONTEST_LIVE_UPDATES_2: - break; - - case TVSHOW_OFF_AIR: - break; - case TVSHOW_FAN_CLUB_LETTER: - j = (&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species; - sub_80F0B24(j, i); - break; - case TVSHOW_RECENT_HAPPENINGS: - break; - case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - j = (&gSaveBlock1Ptr->tvShows[i])->fanclubOpinions.species; - sub_80F0B24(j, i); - break; - case TVSHOW_UNKN_SHOWTYPE_04: - j = (&gSaveBlock1Ptr->tvShows[i])->unkShow04.var06; - sub_80F0B24(j, i); - break; - case TVSHOW_NAME_RATER_SHOW: - j = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies; - sub_80F0B24(j, i); - break; - case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainer.species; - sub_80F0B24(j, i); - break; - case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies; - sub_80F0B24(j, i); - break; - - case TVSHOW_POKEMON_TODAY_CAUGHT: - j = (&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species; - sub_80F0B24(j, i); - break; - case TVSHOW_SMART_SHOPPER: - break; - case TVSHOW_POKEMON_TODAY_FAILED: - j = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2; - sub_80F0B24(j, i); - break; - case TVSHOW_FISHING_ADVICE: - j = (&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species; - sub_80F0B24(j, i); - break; - case TVSHOW_WORLD_OF_MASTERS: - j = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke; - sub_80F0B24(j, i); - break; - - case TVSHOW_TODAYS_RIVAL_TRAINER: - break; - case TVSHOW_TREND_WATCHER: - break; - case TVSHOW_TREASURE_INVESTIGATORS: - break; - case TVSHOW_FIND_THAT_GAMER: - break; - case TVSHOW_BREAKING_NEWS: - j = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species; - sub_80F0B24(j, i); - break; - case TVSHOW_SECRET_BASE_VISIT: - j = (&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species; - sub_80F0B24(j, i); - break; - case TVSHOW_LOTTO_WINNER: - break; - case TVSHOW_BATTLE_SEMINAR: - j = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies; - sub_80F0B24(j, i); - break; - case TVSHOW_TRAINER_FAN_CLUB: - break; - case TVSHOW_CUTIES: - break; - case TVSHOW_FRONTIER: - j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species1; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species2; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->frontier.facility; - switch (j) - { - case 3: - case 4: - break; - case 1: - case 5 ... 13: - j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3; - sub_80F0B24(j, i); - break; - case 2: - j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3; - sub_80F0B24(j, i); - j = (&gSaveBlock1Ptr->tvShows[i])->frontier.species4; - sub_80F0B24(j, i); - break; - } - break; - case TVSHOW_NUMBER_ONE: - break; - case TVSHOW_SECRET_BASE_SECRETS: - break; - case TVSHOW_SAFARI_FAN_CLUB: - break; - - case TVSHOW_MASS_OUTBREAK: - break; - - default: - SetTvShowInactive(i); + case FRONTIER_SHOW_TOWER_DOUBLES: + species = (&gSaveBlock1Ptr->tvShows[i])->frontier.species3; + DeactivateShowIfNotSeenSpecies(species, i); + species = (&gSaveBlock1Ptr->tvShows[i])->frontier.species4; + DeactivateShowIfNotSeenSpecies(species, i); break; + } + break; + // Shows with no species + case TVSHOW_OFF_AIR: + case TVSHOW_RECENT_HAPPENINGS: + case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + case TVSHOW_TODAYS_RIVAL_TRAINER: + case TVSHOW_TREND_WATCHER: + case TVSHOW_TREASURE_INVESTIGATORS: + case TVSHOW_FIND_THAT_GAMER: + case TVSHOW_TRAINER_FAN_CLUB: + case TVSHOW_CUTIES: + case TVSHOW_SMART_SHOPPER: + case TVSHOW_FAN_CLUB_SPECIAL: + case TVSHOW_LILYCOVE_CONTEST_LADY: + case TVSHOW_LOTTO_WINNER: + case TVSHOW_NUMBER_ONE: + case TVSHOW_SECRET_BASE_SECRETS: + case TVSHOW_SAFARI_FAN_CLUB: + case TVSHOW_MASS_OUTBREAK: + break; + default: + DeactivateShow(i); + break; } } } -void SetTvShowInactive(u8 showIdx) +static void DeactivateShow(u8 showIdx) { gSaveBlock1Ptr->tvShows[showIdx].common.active = FALSE; } -static void sub_80F0B24(u16 species, u8 showIdx) +static void DeactivateShowIfNotSeenSpecies(u16 species, u8 showIdx) { if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN)) - { gSaveBlock1Ptr->tvShows[showIdx].common.active = FALSE; - } } -static void sub_80F0B64(void) +static void DeactivateGameCompleteShowsIfNotUnlocked(void) { u16 i; if (FlagGet(FLAG_SYS_GAME_CLEAR) != TRUE) { - for (i = 0; i < LAST_TVSHOW_IDX; i ++) + for (i = 0; i < LAST_TVSHOW_IDX; i++) { if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) - { gSaveBlock1Ptr->tvShows[i].common.active = FALSE; - } else if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_MASS_OUTBREAK) - { gSaveBlock1Ptr->tvShows[i].common.active = FALSE; - } } } } -void sub_80F0BB8(void) +void DeactivateAllNormalTVShows(void) { u8 i; - for (i = 0; i < 5; i ++) + for (i = 0; i < NUM_NORMAL_TVSHOW_SLOTS; i++) { - if (GetTVChannelByShowType(gSaveBlock1Ptr->tvShows[i].common.kind) == 2) - { + if (GetTVGroupByShowId(gSaveBlock1Ptr->tvShows[i].common.kind) == TVGROUP_NORMAL) gSaveBlock1Ptr->tvShows[i].common.active = FALSE; - } } } -static void sub_80F0C04(void) +// Ensures a minimum of 5 empty mixed show slots +static void DeleteExcessMixedShows(void) { s8 i; - s8 ct; - - ct = 0; - for (i = 5; i < LAST_TVSHOW_IDX; i ++) + s8 numEmptyMixSlots = 0; + for (i = NUM_NORMAL_TVSHOW_SLOTS; i < LAST_TVSHOW_IDX; i++) { if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_OFF_AIR) - { - ct ++; - } - } - for (i = 0; i < 5 - ct; i ++) - { - DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, i + 5); + numEmptyMixSlots++; } + for (i = 0; i < NUM_NORMAL_TVSHOW_SLOTS - numEmptyMixSlots; i++) + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, i + NUM_NORMAL_TVSHOW_SLOTS); } -void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx) +void ReceivePokeNewsData(void *src, u32 size, u8 playersLinkId) { u8 i; - PokeNews (*rmBuffer2)[4][16]; - PokeNews (*rmBuffer)[4][16]; + PokeNews (*rmBuffer2)[MAX_LINK_PLAYERS][POKE_NEWS_COUNT]; + PokeNews (*rmBuffer)[MAX_LINK_PLAYERS][POKE_NEWS_COUNT]; - rmBuffer2 = malloc(4 * 16 * sizeof(PokeNews)); + rmBuffer2 = malloc(MAX_LINK_PLAYERS * POKE_NEWS_COUNT * sizeof(PokeNews)); if (rmBuffer2 != NULL) { - for (i = 0; i < 4; i ++) - { + for (i = 0; i < MAX_LINK_PLAYERS; i++) memcpy((*rmBuffer2)[i], src + i * size, sizeof((*rmBuffer2)[i])); - } + rmBuffer = rmBuffer2; - switch (masterIdx) + + // Position player's PokeNews in argument list depending on link id + switch (playersLinkId) { - case 0: - sub_80F0D60(gSaveBlock1Ptr->pokeNews, (*rmBuffer)[1], (*rmBuffer)[2], (*rmBuffer)[3]); - break; - case 1: - sub_80F0D60((*rmBuffer)[0], gSaveBlock1Ptr->pokeNews, (*rmBuffer)[2], (*rmBuffer)[3]); - break; - case 2: - sub_80F0D60((*rmBuffer)[0], (*rmBuffer)[1], gSaveBlock1Ptr->pokeNews, (*rmBuffer)[3]); - break; - case 3: - sub_80F0D60((*rmBuffer)[0], (*rmBuffer)[1], (*rmBuffer)[2], gSaveBlock1Ptr->pokeNews); - break; + case 0: + SetMixedPokeNews(gSaveBlock1Ptr->pokeNews, (*rmBuffer)[1], (*rmBuffer)[2], (*rmBuffer)[3]); + break; + case 1: + SetMixedPokeNews((*rmBuffer)[0], gSaveBlock1Ptr->pokeNews, (*rmBuffer)[2], (*rmBuffer)[3]); + break; + case 2: + SetMixedPokeNews((*rmBuffer)[0], (*rmBuffer)[1], gSaveBlock1Ptr->pokeNews, (*rmBuffer)[3]); + break; + case 3: + SetMixedPokeNews((*rmBuffer)[0], (*rmBuffer)[1], (*rmBuffer)[2], gSaveBlock1Ptr->pokeNews); + break; } - sub_80F0EEC(); - sub_80F0F24(); + ClearInvalidPokeNews(); + ClearPokeNewsIfGameNotComplete(); free(rmBuffer2); } } -static void sub_80F0D60(PokeNews player1[16], PokeNews player2[16], PokeNews player3[16], PokeNews player4[16]) +static void SetMixedPokeNews(PokeNews player1[POKE_NEWS_COUNT], PokeNews player2[POKE_NEWS_COUNT], PokeNews player3[POKE_NEWS_COUNT], PokeNews player4[POKE_NEWS_COUNT]) { - u8 i; - u8 j; - u8 k; - PokeNews **argslist[4]; + u8 i, j, k; + PokeNews **pokeNews[MAX_LINK_PLAYERS]; - argslist[0] = &player1; - argslist[1] = &player2; - argslist[2] = &player3; - argslist[3] = &player4; + pokeNews[0] = &player1; + pokeNews[1] = &player2; + pokeNews[2] = &player3; + pokeNews[3] = &player4; sTVShowNewsMixingNumPlayers = GetLinkPlayerCount(); - for (i = 0; i < POKE_NEWS_COUNT; i ++) + for (i = 0; i < POKE_NEWS_COUNT; i++) { - for (j = 0; j < sTVShowNewsMixingNumPlayers; j ++) + for (j = 0; j < sTVShowNewsMixingNumPlayers; j++) { - sTVShowMixingCurSlot = sub_80F0ECC(*argslist[j], i); + sTVShowMixingCurSlot = GetPokeNewsSlotIfActive(*pokeNews[j], i); if (sTVShowMixingCurSlot != -1) { for (k = 0; k < sTVShowNewsMixingNumPlayers - 1; k++) { - sCurTVShowSlot = sub_80EEE30(*argslist[(j + k + 1) % sTVShowNewsMixingNumPlayers]); + sCurTVShowSlot = GetFirstEmptyPokeNewsSlot(*pokeNews[(j + k + 1) % sTVShowNewsMixingNumPlayers]); if (sCurTVShowSlot != -1) - { - sub_80F0E58(argslist[(j + k + 1) % sTVShowNewsMixingNumPlayers], argslist[j]); - } + InitTryMixPokeNewsShow(pokeNews[(j + k + 1) % sTVShowNewsMixingNumPlayers], pokeNews[j]); } } } } } -static void sub_80F0E58(PokeNews *dest[16], PokeNews *src[16]) +static void InitTryMixPokeNewsShow(PokeNews *dest[POKE_NEWS_COUNT], PokeNews *src[POKE_NEWS_COUNT]) { - PokeNews *ptr1; - PokeNews *ptr2; - - ptr1 = *dest; - ptr2 = *src; + PokeNews *ptr1 = *dest; + PokeNews *ptr2 = *src; ptr2 += sTVShowMixingCurSlot; - sub_80F0E84(ptr1, ptr2, sCurTVShowSlot); + TryMixPokeNewsShow(ptr1, ptr2, sCurTVShowSlot); } -static bool8 sub_80F0E84(PokeNews *dest, PokeNews *src, s8 slot) +static bool8 TryMixPokeNewsShow(PokeNews *dest, PokeNews *src, s8 slot) { u8 i; - u8 kind; if (src->kind == POKENEWS_NONE) - { return FALSE; - } - for (i = 0; i < POKE_NEWS_COUNT; i ++) + + for (i = 0; i < POKE_NEWS_COUNT; i++) { if (dest[i].kind == src->kind) - { return FALSE; - } } dest[slot].kind = src->kind; dest[slot].state = 1; @@ -4114,43 +3902,38 @@ static bool8 sub_80F0E84(PokeNews *dest, PokeNews *src, s8 slot) return TRUE; } -static s8 sub_80F0ECC(PokeNews *pokeNews, u8 idx) +static s8 GetPokeNewsSlotIfActive(PokeNews *pokeNews, u8 idx) { if (pokeNews[idx].kind == POKENEWS_NONE) - { return -1; - } + return idx; } -static void sub_80F0EEC(void) +static void ClearInvalidPokeNews(void) { u8 i; - for (i = 0; i < POKE_NEWS_COUNT; i ++) + for (i = 0; i < POKE_NEWS_COUNT; i++) { if (gSaveBlock1Ptr->pokeNews[i].kind > POKENEWS_BLENDMASTER) - { - ClearPokemonNewsI(i); - } + ClearPokeNewsBySlot(i); } - sub_80EEEB8(); + CompactPokeNews(); } -static void sub_80F0F24(void) +static void ClearPokeNewsIfGameNotComplete(void) { u8 i; if (FlagGet(FLAG_SYS_GAME_CLEAR) != TRUE) { - for (i = 0; i < POKE_NEWS_COUNT; i ++) - { + for (i = 0; i < POKE_NEWS_COUNT; i++) gSaveBlock1Ptr->pokeNews[i].state = 0; - } } } -#define tvlangfix(strptr, langptr, langfix) \ +#define SetStrLanguage(strptr, langptr, langfix) \ if (IsStringJapanese(strptr)) \ { \ (langptr) = LANGUAGE_JAPANESE; \ @@ -4160,349 +3943,341 @@ else \ (langptr) = langfix; \ } -static void sub_80F0F64(TVShow *show, u32 language) +// Unused +static void TranslateShowNames(TVShow *show, u32 language) { int i; - TVShow **r4; + TVShow **shows; - r4 = calloc(11, sizeof(TVShow *)); - for (i = 0; i < LAST_TVSHOW_IDX; i ++) + shows = calloc(11, sizeof(TVShow *)); + for (i = 0; i < LAST_TVSHOW_IDX; i++) { switch (show[i].common.kind) { - case TVSHOW_FAN_CLUB_LETTER: - case TVSHOW_RECENT_HAPPENINGS: - r4[0] = &show[i]; - tvlangfix(r4[0]->fanclubLetter.playerName, r4[0]->fanclubLetter.language, language); - break; - case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - r4[1] = &show[i]; - tvlangfix(r4[1]->fanclubOpinions.playerName, r4[1]->fanclubOpinions.language, language); - tvlangfix(r4[1]->fanclubOpinions.nickname, r4[1]->fanclubOpinions.pokemonNameLanguage, language); - break; - case TVSHOW_POKEMON_TODAY_CAUGHT: - r4[6] = &show[i]; - tvlangfix(r4[6]->pokemonToday.playerName, r4[6]->pokemonToday.language, language); - tvlangfix(r4[6]->pokemonToday.nickname, r4[6]->pokemonToday.language2, language); - break; - case TVSHOW_SMART_SHOPPER: - r4[7] = &show[i]; - tvlangfix(r4[7]->smartshopperShow.playerName, r4[7]->smartshopperShow.language, language); - break; - case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - r4[5] = &show[i]; - tvlangfix(r4[5]->bravoTrainerTower.trainerName, r4[5]->bravoTrainerTower.language, language); - tvlangfix(r4[5]->bravoTrainerTower.pokemonName, r4[5]->bravoTrainerTower.pokemonNameLanguage, language); - break; - case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - r4[4] = &show[i]; - tvlangfix(r4[4]->bravoTrainer.playerName, r4[4]->bravoTrainer.language, language); - tvlangfix(r4[4]->bravoTrainer.pokemonNickname, r4[4]->bravoTrainer.pokemonNameLanguage, language); - break; - case TVSHOW_NAME_RATER_SHOW: - r4[3] = &show[i]; - tvlangfix(r4[3]->nameRaterShow.trainerName, r4[3]->nameRaterShow.language, language); - tvlangfix(r4[3]->nameRaterShow.pokemonName, r4[3]->nameRaterShow.pokemonNameLanguage, language); - break; - case TVSHOW_POKEMON_TODAY_FAILED: - r4[2] = &show[i]; - tvlangfix(r4[2]->pokemonTodayFailed.playerName, r4[2]->pokemonTodayFailed.language, language); - break; - case TVSHOW_FISHING_ADVICE: - r4[8] = &show[i]; - tvlangfix(r4[8]->pokemonAngler.playerName, r4[8]->pokemonAngler.language, language); - break; - case TVSHOW_WORLD_OF_MASTERS: - r4[9] = &show[i]; - tvlangfix(r4[9]->worldOfMasters.playerName, r4[9]->worldOfMasters.language, language); - break; - case TVSHOW_MASS_OUTBREAK: - r4[10] = &show[i]; - r4[10]->massOutbreak.language = language; - break; + case TVSHOW_FAN_CLUB_LETTER: + case TVSHOW_RECENT_HAPPENINGS: // NOTE: These two shows are assumed to have the same struct layout + shows[0] = &show[i]; + SetStrLanguage(shows[0]->fanclubLetter.playerName, shows[0]->fanclubLetter.language, language); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + shows[1] = &show[i]; + SetStrLanguage(shows[1]->fanclubOpinions.playerName, shows[1]->fanclubOpinions.language, language); + SetStrLanguage(shows[1]->fanclubOpinions.nickname, shows[1]->fanclubOpinions.pokemonNameLanguage, language); + break; + case TVSHOW_POKEMON_TODAY_CAUGHT: + shows[6] = &show[i]; + SetStrLanguage(shows[6]->pokemonToday.playerName, shows[6]->pokemonToday.language, language); + SetStrLanguage(shows[6]->pokemonToday.nickname, shows[6]->pokemonToday.language2, language); + break; + case TVSHOW_SMART_SHOPPER: + shows[7] = &show[i]; + SetStrLanguage(shows[7]->smartshopperShow.playerName, shows[7]->smartshopperShow.language, language); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + shows[5] = &show[i]; + SetStrLanguage(shows[5]->bravoTrainerTower.trainerName, shows[5]->bravoTrainerTower.language, language); + SetStrLanguage(shows[5]->bravoTrainerTower.pokemonName, shows[5]->bravoTrainerTower.pokemonNameLanguage, language); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + shows[4] = &show[i]; + SetStrLanguage(shows[4]->bravoTrainer.playerName, shows[4]->bravoTrainer.language, language); + SetStrLanguage(shows[4]->bravoTrainer.pokemonNickname, shows[4]->bravoTrainer.pokemonNameLanguage, language); + break; + case TVSHOW_NAME_RATER_SHOW: + shows[3] = &show[i]; + SetStrLanguage(shows[3]->nameRaterShow.trainerName, shows[3]->nameRaterShow.language, language); + SetStrLanguage(shows[3]->nameRaterShow.pokemonName, shows[3]->nameRaterShow.pokemonNameLanguage, language); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + shows[2] = &show[i]; + SetStrLanguage(shows[2]->pokemonTodayFailed.playerName, shows[2]->pokemonTodayFailed.language, language); + break; + case TVSHOW_FISHING_ADVICE: + shows[8] = &show[i]; + SetStrLanguage(shows[8]->pokemonAngler.playerName, shows[8]->pokemonAngler.language, language); + break; + case TVSHOW_WORLD_OF_MASTERS: + shows[9] = &show[i]; + SetStrLanguage(shows[9]->worldOfMasters.playerName, shows[9]->worldOfMasters.language, language); + break; + case TVSHOW_MASS_OUTBREAK: + shows[10] = &show[i]; + shows[10]->massOutbreak.language = language; + break; } } - free(r4); + free(shows); } -void sub_80F1208(TVShow *shows) +void SanitizeTVShowsForRuby(TVShow *shows) { TVShow *curShow; - sub_80F14F8(shows); - for (curShow = shows; curShow < shows + LAST_TVSHOW_IDX; curShow ++) + SanitizeTVShowLocationsForRuby(shows); + for (curShow = shows; curShow < shows + LAST_TVSHOW_IDX; curShow++) { if (curShow->bravoTrainerTower.kind == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) { - if ((curShow->bravoTrainerTower.language == LANGUAGE_JAPANESE && curShow->bravoTrainerTower.pokemonNameLanguage != LANGUAGE_JAPANESE) || (curShow->bravoTrainerTower.language != LANGUAGE_JAPANESE && curShow->bravoTrainerTower.pokemonNameLanguage == LANGUAGE_JAPANESE)) - { + if ((curShow->bravoTrainerTower.language == LANGUAGE_JAPANESE && curShow->bravoTrainerTower.pokemonNameLanguage != LANGUAGE_JAPANESE) + || (curShow->bravoTrainerTower.language != LANGUAGE_JAPANESE && curShow->bravoTrainerTower.pokemonNameLanguage == LANGUAGE_JAPANESE)) memset(curShow, 0, sizeof(TVShow)); - } } } } -static void sub_80F1254(TVShow *shows) +static void TranslateRubyShows(TVShow *shows) { TVShow *curShow; - for (curShow = shows; curShow < shows + LAST_TVSHOW_IDX; curShow ++) + for (curShow = shows; curShow < shows + LAST_TVSHOW_IDX; curShow++) { if (curShow->bravoTrainerTower.kind == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) { if (IsStringJapanese(curShow->bravoTrainerTower.pokemonName)) - { curShow->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_JAPANESE; - } else - { - curShow->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_ENGLISH; - } + curShow->bravoTrainerTower.pokemonNameLanguage = GAME_LANGUAGE; } } } -u8 TV_GetStringLanguage(u8 *str) +static u8 GetStringLanguage(u8 *str) { - return IsStringJapanese(str) ? LANGUAGE_JAPANESE : LANGUAGE_ENGLISH; + return IsStringJapanese(str) ? LANGUAGE_JAPANESE : GAME_LANGUAGE; } -static void sub_80F12A4(TVShow *shows) +static void TranslateJapaneseEmeraldShows(TVShow *shows) { TVShow *curShow; - for (curShow = shows; curShow < shows + LAST_TVSHOW_IDX; curShow ++) + for (curShow = shows; curShow < shows + LAST_TVSHOW_IDX; curShow++) { switch(curShow->common.kind) { - case TVSHOW_FAN_CLUB_LETTER: - curShow->fanclubLetter.language = TV_GetStringLanguage(curShow->fanclubLetter.playerName); - break; - case TVSHOW_RECENT_HAPPENINGS: - curShow->recentHappenings.language = TV_GetStringLanguage(curShow->recentHappenings.playerName); - break; - case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - curShow->fanclubOpinions.language = TV_GetStringLanguage(curShow->fanclubOpinions.playerName); - curShow->fanclubOpinions.pokemonNameLanguage = TV_GetStringLanguage(curShow->fanclubOpinions.nickname); - break; - case TVSHOW_UNKN_SHOWTYPE_04: - curShow->unkShow04.language = TV_GetStringLanguage(curShow->unkShow04.string_0b); - break; - case TVSHOW_NAME_RATER_SHOW: - curShow->nameRaterShow.language = TV_GetStringLanguage(curShow->nameRaterShow.trainerName); - curShow->nameRaterShow.pokemonNameLanguage = TV_GetStringLanguage(curShow->nameRaterShow.pokemonName); - break; - case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - curShow->bravoTrainer.language = TV_GetStringLanguage(curShow->bravoTrainer.playerName); - curShow->bravoTrainer.pokemonNameLanguage = TV_GetStringLanguage(curShow->bravoTrainer.pokemonNickname); - break; - case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - curShow->bravoTrainerTower.language = TV_GetStringLanguage(curShow->bravoTrainerTower.trainerName); - curShow->bravoTrainerTower.pokemonNameLanguage = TV_GetStringLanguage(curShow->bravoTrainerTower.pokemonName); - break; - case TVSHOW_CONTEST_LIVE_UPDATES: - curShow->contestLiveUpdates.winningTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.winningTrainerName); - curShow->contestLiveUpdates.losingTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.losingTrainerName); - break; - case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: - curShow->threeCheers.language = TV_GetStringLanguage(curShow->threeCheers.playerName); - curShow->threeCheers.worstBlenderLanguage = TV_GetStringLanguage(curShow->threeCheers.worstBlenderName); - break; - case TVSHOW_BATTLE_UPDATE: - curShow->battleUpdate.language = TV_GetStringLanguage(curShow->battleUpdate.playerName); - curShow->battleUpdate.linkOpponentLanguage = TV_GetStringLanguage(curShow->battleUpdate.linkOpponentName); - break; - case TVSHOW_FAN_CLUB_SPECIAL: - curShow->fanClubSpecial.language = TV_GetStringLanguage(curShow->fanClubSpecial.playerName); - curShow->fanClubSpecial.idolNameLanguage = TV_GetStringLanguage(curShow->fanClubSpecial.idolName); - break; - case TVSHOW_CONTEST_LIVE_UPDATES_2: - curShow->contestLiveUpdates2.language = TV_GetStringLanguage(curShow->contestLiveUpdates2.playerName); - curShow->contestLiveUpdates2.pokemonNameLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates2.nickname); - break; - - case TVSHOW_POKEMON_TODAY_CAUGHT: - curShow->pokemonToday.language = TV_GetStringLanguage(curShow->pokemonToday.playerName); - curShow->pokemonToday.language2 = TV_GetStringLanguage(curShow->pokemonToday.nickname); - break; - case TVSHOW_SMART_SHOPPER: - curShow->smartshopperShow.language = TV_GetStringLanguage(curShow->smartshopperShow.playerName); - break; - case TVSHOW_POKEMON_TODAY_FAILED: - curShow->pokemonTodayFailed.language = TV_GetStringLanguage(curShow->pokemonTodayFailed.playerName); - break; - case TVSHOW_FISHING_ADVICE: - curShow->pokemonAngler.language = TV_GetStringLanguage(curShow->pokemonAngler.playerName); - break; - case TVSHOW_WORLD_OF_MASTERS: - curShow->worldOfMasters.language = TV_GetStringLanguage(curShow->worldOfMasters.playerName); - break; - case TVSHOW_TREND_WATCHER: - curShow->trendWatcher.language = TV_GetStringLanguage(curShow->trendWatcher.playerName); - break; - case TVSHOW_BREAKING_NEWS: - curShow->breakingNews.language = TV_GetStringLanguage(curShow->breakingNews.playerName); - break; - case TVSHOW_BATTLE_SEMINAR: - curShow->battleSeminar.language = TV_GetStringLanguage(curShow->battleSeminar.playerName); - break; - case TVSHOW_FIND_THAT_GAMER: - case TVSHOW_TRAINER_FAN_CLUB: - curShow->trainerFanClub.language = TV_GetStringLanguage(curShow->trainerFanClub.playerName); - break; - case TVSHOW_CUTIES: - curShow->cuties.language = TV_GetStringLanguage(curShow->cuties.playerName); - curShow->cuties.pokemonNameLanguage = TV_GetStringLanguage(curShow->cuties.nickname); - break; - case TVSHOW_TODAYS_RIVAL_TRAINER: - case TVSHOW_SECRET_BASE_VISIT: - case TVSHOW_FRONTIER: - curShow->rivalTrainer.language = TV_GetStringLanguage(curShow->rivalTrainer.playerName); - break; - case TVSHOW_TREASURE_INVESTIGATORS: - case TVSHOW_LOTTO_WINNER: - case TVSHOW_NUMBER_ONE: - curShow->treasureInvestigators.language = TV_GetStringLanguage(curShow->treasureInvestigators.playerName); - break; - case TVSHOW_SECRET_BASE_SECRETS: - curShow->secretBaseSecrets.language = TV_GetStringLanguage(curShow->secretBaseSecrets.playerName); - curShow->secretBaseSecrets.baseOwnersNameLanguage = TV_GetStringLanguage(curShow->secretBaseSecrets.baseOwnersName); - break; - case TVSHOW_SAFARI_FAN_CLUB: - curShow->safariFanClub.language = TV_GetStringLanguage(curShow->safariFanClub.playerName); - break; - case TVSHOW_MASS_OUTBREAK: - break; + case TVSHOW_FAN_CLUB_LETTER: + curShow->fanclubLetter.language = GetStringLanguage(curShow->fanclubLetter.playerName); + break; + case TVSHOW_RECENT_HAPPENINGS: + curShow->recentHappenings.language = GetStringLanguage(curShow->recentHappenings.playerName); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + curShow->fanclubOpinions.language = GetStringLanguage(curShow->fanclubOpinions.playerName); + curShow->fanclubOpinions.pokemonNameLanguage = GetStringLanguage(curShow->fanclubOpinions.nickname); + break; + case TVSHOW_DUMMY: + curShow->dummy.language = GetStringLanguage(curShow->dummy.name); + break; + case TVSHOW_NAME_RATER_SHOW: + curShow->nameRaterShow.language = GetStringLanguage(curShow->nameRaterShow.trainerName); + curShow->nameRaterShow.pokemonNameLanguage = GetStringLanguage(curShow->nameRaterShow.pokemonName); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + curShow->bravoTrainer.language = GetStringLanguage(curShow->bravoTrainer.playerName); + curShow->bravoTrainer.pokemonNameLanguage = GetStringLanguage(curShow->bravoTrainer.pokemonNickname); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + curShow->bravoTrainerTower.language = GetStringLanguage(curShow->bravoTrainerTower.trainerName); + curShow->bravoTrainerTower.pokemonNameLanguage = GetStringLanguage(curShow->bravoTrainerTower.pokemonName); + break; + case TVSHOW_CONTEST_LIVE_UPDATES: + curShow->contestLiveUpdates.winningTrainerLanguage = GetStringLanguage(curShow->contestLiveUpdates.winningTrainerName); + curShow->contestLiveUpdates.losingTrainerLanguage = GetStringLanguage(curShow->contestLiveUpdates.losingTrainerName); + break; + case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + curShow->threeCheers.language = GetStringLanguage(curShow->threeCheers.playerName); + curShow->threeCheers.worstBlenderLanguage = GetStringLanguage(curShow->threeCheers.worstBlenderName); + break; + case TVSHOW_BATTLE_UPDATE: + curShow->battleUpdate.language = GetStringLanguage(curShow->battleUpdate.playerName); + curShow->battleUpdate.linkOpponentLanguage = GetStringLanguage(curShow->battleUpdate.linkOpponentName); + break; + case TVSHOW_FAN_CLUB_SPECIAL: + curShow->fanClubSpecial.language = GetStringLanguage(curShow->fanClubSpecial.playerName); + curShow->fanClubSpecial.idolNameLanguage = GetStringLanguage(curShow->fanClubSpecial.idolName); + break; + case TVSHOW_LILYCOVE_CONTEST_LADY: + curShow->contestLady.language = GetStringLanguage(curShow->contestLady.playerName); + curShow->contestLady.pokemonNameLanguage = GetStringLanguage(curShow->contestLady.nickname); + break; + case TVSHOW_POKEMON_TODAY_CAUGHT: + curShow->pokemonToday.language = GetStringLanguage(curShow->pokemonToday.playerName); + curShow->pokemonToday.language2 = GetStringLanguage(curShow->pokemonToday.nickname); + break; + case TVSHOW_SMART_SHOPPER: + curShow->smartshopperShow.language = GetStringLanguage(curShow->smartshopperShow.playerName); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + curShow->pokemonTodayFailed.language = GetStringLanguage(curShow->pokemonTodayFailed.playerName); + break; + case TVSHOW_FISHING_ADVICE: + curShow->pokemonAngler.language = GetStringLanguage(curShow->pokemonAngler.playerName); + break; + case TVSHOW_WORLD_OF_MASTERS: + curShow->worldOfMasters.language = GetStringLanguage(curShow->worldOfMasters.playerName); + break; + case TVSHOW_TREND_WATCHER: + curShow->trendWatcher.language = GetStringLanguage(curShow->trendWatcher.playerName); + break; + case TVSHOW_BREAKING_NEWS: + curShow->breakingNews.language = GetStringLanguage(curShow->breakingNews.playerName); + break; + case TVSHOW_BATTLE_SEMINAR: + curShow->battleSeminar.language = GetStringLanguage(curShow->battleSeminar.playerName); + break; + case TVSHOW_FIND_THAT_GAMER: + case TVSHOW_TRAINER_FAN_CLUB: + curShow->trainerFanClub.language = GetStringLanguage(curShow->trainerFanClub.playerName); + break; + case TVSHOW_CUTIES: + curShow->cuties.language = GetStringLanguage(curShow->cuties.playerName); + curShow->cuties.pokemonNameLanguage = GetStringLanguage(curShow->cuties.nickname); + break; + case TVSHOW_TODAYS_RIVAL_TRAINER: + case TVSHOW_SECRET_BASE_VISIT: + case TVSHOW_FRONTIER: + curShow->rivalTrainer.language = GetStringLanguage(curShow->rivalTrainer.playerName); + break; + case TVSHOW_TREASURE_INVESTIGATORS: + case TVSHOW_LOTTO_WINNER: + case TVSHOW_NUMBER_ONE: + curShow->treasureInvestigators.language = GetStringLanguage(curShow->treasureInvestigators.playerName); + break; + case TVSHOW_SECRET_BASE_SECRETS: + curShow->secretBaseSecrets.language = GetStringLanguage(curShow->secretBaseSecrets.playerName); + curShow->secretBaseSecrets.baseOwnersNameLanguage = GetStringLanguage(curShow->secretBaseSecrets.baseOwnersName); + break; + case TVSHOW_SAFARI_FAN_CLUB: + curShow->safariFanClub.language = GetStringLanguage(curShow->safariFanClub.playerName); + break; + case TVSHOW_MASS_OUTBREAK: + break; } } } -void sub_80F14F8(TVShow *shows) +void SanitizeTVShowLocationsForRuby(TVShow *shows) { int i; - for (i = 0; i < LAST_TVSHOW_IDX; i ++) + for (i = 0; i < LAST_TVSHOW_IDX; i++) { switch (shows[i].common.kind) { - case TVSHOW_WORLD_OF_MASTERS: - if (shows[i].worldOfMasters.location > KANTO_MAPSEC_START) - { - memset(&shows[i], 0, sizeof(TVShow)); - } - break; - case TVSHOW_POKEMON_TODAY_FAILED: - if (shows[i].pokemonTodayFailed.location > KANTO_MAPSEC_START) - { - memset(&shows[i], 0, sizeof(TVShow)); - } - break; + case TVSHOW_WORLD_OF_MASTERS: + if (shows[i].worldOfMasters.location > KANTO_MAPSEC_START) + memset(&shows[i], 0, sizeof(TVShow)); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + if (shows[i].pokemonTodayFailed.location > KANTO_MAPSEC_START) + memset(&shows[i], 0, sizeof(TVShow)); + break; } } } +// gSpecialVar_0x8004 here is set from GetRandomActiveShowIdx in EventScript_TryDoTVShow void DoTVShow(void) { if (gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004].common.active) { switch (gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004].common.kind) { - case TVSHOW_FAN_CLUB_LETTER: - DoTVShowPokemonFanClubLetter(); - break; - case TVSHOW_RECENT_HAPPENINGS: - DoTVShowRecentHappenings(); - break; - case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - DoTVShowPokemonFanClubOpinions(); - break; - case TVSHOW_UNKN_SHOWTYPE_04: - DoTVShowDummiedOut(); - break; - case TVSHOW_MASS_OUTBREAK: - DoTVShowPokemonNewsMassOutbreak(); - break; - case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - DoTVShowBravoTrainerPokemonProfile(); - break; - case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - DoTVShowBravoTrainerBattleTower(); - break; - case TVSHOW_POKEMON_TODAY_CAUGHT: - DoTVShowPokemonTodaySuccessfulCapture(); - break; - case TVSHOW_SMART_SHOPPER: - DoTVShowTodaysSmartShopper(); - break; - case TVSHOW_NAME_RATER_SHOW: - DoTVShowTheNameRaterShow(); - break; - case TVSHOW_CONTEST_LIVE_UPDATES: - DoTVShowPokemonContestLiveUpdates(); - break; - case TVSHOW_BATTLE_UPDATE: - DoTVShowPokemonBattleUpdate(); - break; - case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: - DoTVShow3CheersForPokeblocks(); - break; - case TVSHOW_POKEMON_TODAY_FAILED: - DoTVShowPokemonTodayFailedCapture(); - break; - case TVSHOW_FISHING_ADVICE: - DoTVShowPokemonAngler(); - break; - case TVSHOW_WORLD_OF_MASTERS: - DoTVShowTheWorldOfMasters(); - break; - case TVSHOW_TODAYS_RIVAL_TRAINER: - DoTVShowTodaysRivalTrainer(); - break; - case TVSHOW_TREND_WATCHER: - DoTVShowDewfordTrendWatcherNetwork(); - break; - case TVSHOW_TREASURE_INVESTIGATORS: - DoTVShowHoennTreasureInvestigators(); - break; - case TVSHOW_FIND_THAT_GAMER: - DoTVShowFindThatGamer(); - break; - case TVSHOW_BREAKING_NEWS: - DoTVShowBreakingNewsTV(); - break; - case TVSHOW_SECRET_BASE_VISIT: - DoTVShowSecretBaseVisit(); - break; - case TVSHOW_LOTTO_WINNER: - DoTVShowPokemonLotteryWinnerFlashReport(); - break; - case TVSHOW_BATTLE_SEMINAR: - DoTVShowThePokemonBattleSeminar(); - break; - case TVSHOW_FAN_CLUB_SPECIAL: - DoTVShowTrainerFanClubSpecial(); - break; - case TVSHOW_TRAINER_FAN_CLUB: - DoTVShowTrainerFanClub(); - break; - case TVSHOW_CUTIES: - DoTVShowSpotTheCuties(); - break; - case TVSHOW_FRONTIER: - DoTVShowPokemonNewsBattleFrontier(); - break; - case TVSHOW_NUMBER_ONE: - DoTVShowWhatsNo1InHoennToday(); - break; - case TVSHOW_SECRET_BASE_SECRETS: - DoTVShowSecretBaseSecrets(); - break; - case TVSHOW_SAFARI_FAN_CLUB: - DoTVShowSafariFanClub(); - break; - case TVSHOW_CONTEST_LIVE_UPDATES_2: - DoTVShowPokemonContestLiveUpdates2(); - break; + case TVSHOW_FAN_CLUB_LETTER: + DoTVShowPokemonFanClubLetter(); + break; + case TVSHOW_RECENT_HAPPENINGS: + DoTVShowRecentHappenings(); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + DoTVShowPokemonFanClubOpinions(); + break; + case TVSHOW_DUMMY: + DoTVShowDummiedOut(); + break; + case TVSHOW_MASS_OUTBREAK: + DoTVShowPokemonNewsMassOutbreak(); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + DoTVShowBravoTrainerPokemonProfile(); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + DoTVShowBravoTrainerBattleTower(); + break; + case TVSHOW_POKEMON_TODAY_CAUGHT: + DoTVShowPokemonTodaySuccessfulCapture(); + break; + case TVSHOW_SMART_SHOPPER: + DoTVShowTodaysSmartShopper(); + break; + case TVSHOW_NAME_RATER_SHOW: + DoTVShowTheNameRaterShow(); + break; + case TVSHOW_CONTEST_LIVE_UPDATES: + DoTVShowPokemonContestLiveUpdates(); + break; + case TVSHOW_BATTLE_UPDATE: + DoTVShowPokemonBattleUpdate(); + break; + case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + DoTVShow3CheersForPokeblocks(); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + DoTVShowPokemonTodayFailedCapture(); + break; + case TVSHOW_FISHING_ADVICE: + DoTVShowPokemonAngler(); + break; + case TVSHOW_WORLD_OF_MASTERS: + DoTVShowTheWorldOfMasters(); + break; + case TVSHOW_TODAYS_RIVAL_TRAINER: + DoTVShowTodaysRivalTrainer(); + break; + case TVSHOW_TREND_WATCHER: + DoTVShowDewfordTrendWatcherNetwork(); + break; + case TVSHOW_TREASURE_INVESTIGATORS: + DoTVShowHoennTreasureInvestigators(); + break; + case TVSHOW_FIND_THAT_GAMER: + DoTVShowFindThatGamer(); + break; + case TVSHOW_BREAKING_NEWS: + DoTVShowBreakingNewsTV(); + break; + case TVSHOW_SECRET_BASE_VISIT: + DoTVShowSecretBaseVisit(); + break; + case TVSHOW_LOTTO_WINNER: + DoTVShowPokemonLotteryWinnerFlashReport(); + break; + case TVSHOW_BATTLE_SEMINAR: + DoTVShowThePokemonBattleSeminar(); + break; + case TVSHOW_FAN_CLUB_SPECIAL: + DoTVShowTrainerFanClubSpecial(); + break; + case TVSHOW_TRAINER_FAN_CLUB: + DoTVShowTrainerFanClub(); + break; + case TVSHOW_CUTIES: + DoTVShowSpotTheCuties(); + break; + case TVSHOW_FRONTIER: + DoTVShowPokemonNewsBattleFrontier(); + break; + case TVSHOW_NUMBER_ONE: + DoTVShowWhatsNo1InHoennToday(); + break; + case TVSHOW_SECRET_BASE_SECRETS: + DoTVShowSecretBaseSecrets(); + break; + case TVSHOW_SAFARI_FAN_CLUB: + DoTVShowSafariFanClub(); + break; + case TVSHOW_LILYCOVE_CONTEST_LADY: + DoTVShowLilycoveContestLady(); + break; } } } @@ -4517,64 +4292,64 @@ static void DoTVShowBravoTrainerPokemonProfile(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); - CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); - CopyContestRankToStringVar(2, show->bravoTrainer.contestRank); - if (!StringCompare(gSpeciesNames[show->bravoTrainer.species], show->bravoTrainer.pokemonNickname)) - sTVShowState = 8; - else - sTVShowState = 1; - break; - case 1: - StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); - TVShowConvertInternationalString(gStringVar2, show->bravoTrainer.pokemonNickname, show->bravoTrainer.pokemonNameLanguage); - CopyContestCategoryToStringVar(2, show->bravoTrainer.contestCategory); - sTVShowState = 2; - break; - case 2: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); - if (show->bravoTrainer.contestResult == 0) // placed first - sTVShowState = 3; - else - sTVShowState = 4; - break; - case 3: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); - CopyEasyChatWord(gStringVar2, show->bravoTrainer.words[0]); - TV_PrintIntToStringVar(2, show->bravoTrainer.contestResult + 1); - sTVShowState = 5; - break; - case 4: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); - CopyEasyChatWord(gStringVar2, show->bravoTrainer.words[0]); - TV_PrintIntToStringVar(2, show->bravoTrainer.contestResult + 1); - sTVShowState = 5; - break; - case 5: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); - CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); - CopyEasyChatWord(gStringVar3, show->bravoTrainer.words[1]); - if (show->bravoTrainer.move) - sTVShowState = 6; - else - sTVShowState = 7; - break; - case 6: - StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); - StringCopy(gStringVar2, gMoveNames[show->bravoTrainer.move]); - CopyEasyChatWord(gStringVar3, show->bravoTrainer.words[1]); + case 0: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); + CopyContestRankToStringVar(2, show->bravoTrainer.contestRank); + if (!StringCompare(gSpeciesNames[show->bravoTrainer.species], show->bravoTrainer.pokemonNickname)) + sTVShowState = 8; + else + sTVShowState = 1; + break; + case 1: + StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); + TVShowConvertInternationalString(gStringVar2, show->bravoTrainer.pokemonNickname, show->bravoTrainer.pokemonNameLanguage); + CopyContestCategoryToStringVar(2, show->bravoTrainer.contestCategory); + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + if (show->bravoTrainer.contestResult == 0) // placed first + sTVShowState = 3; + else + sTVShowState = 4; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + CopyEasyChatWord(gStringVar2, show->bravoTrainer.words[0]); + ConvertIntToDecimalString(2, show->bravoTrainer.contestResult + 1); + sTVShowState = 5; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + CopyEasyChatWord(gStringVar2, show->bravoTrainer.words[0]); + ConvertIntToDecimalString(2, show->bravoTrainer.contestResult + 1); + sTVShowState = 5; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); + CopyEasyChatWord(gStringVar3, show->bravoTrainer.words[1]); + if (show->bravoTrainer.move) + sTVShowState = 6; + else sTVShowState = 7; - break; - case 7: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); - StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainer.species]); - TVShowDone(); - break; - case 8: - StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); - sTVShowState = 2; - break; + break; + case 6: + StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); + StringCopy(gStringVar2, gMoveNames[show->bravoTrainer.move]); + CopyEasyChatWord(gStringVar3, show->bravoTrainer.words[1]); + sTVShowState = 7; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainer.species]); + TVShowDone(); + break; + case 8: + StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); + sTVShowState = 2; + break; } ShowFieldMessage(sTVBravoTrainerTextGroup[state]); } @@ -4589,89 +4364,89 @@ static void DoTVShowBravoTrainerBattleTower(void) state = sTVShowState; switch(state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); - StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.species]); - if (show->bravoTrainerTower.numFights >= 7) - sTVShowState = 1; - else - sTVShowState = 2; - break; - case 1: - if (show->bravoTrainerTower.btLevel == 50) - { - StringCopy(gStringVar1, gText_Lv50); - } - else - { - StringCopy(gStringVar1, gText_OpenLevel); - } - TV_PrintIntToStringVar(1, show->bravoTrainerTower.numFights); - if (show->bravoTrainerTower.wonTheChallenge == TRUE) - sTVShowState = 3; - else - sTVShowState = 4; - break; - case 2: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); - TV_PrintIntToStringVar(1, show->bravoTrainerTower.numFights + 1); - if (show->bravoTrainerTower.interviewResponse == 0) - sTVShowState = 5; - else - sTVShowState = 6; - break; - case 3: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); - StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.defeatedSpecies]); - if (show->bravoTrainerTower.interviewResponse == 0) - sTVShowState = 5; - else - sTVShowState = 6; - break; - case 4: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); - StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.defeatedSpecies]); - if (show->bravoTrainerTower.interviewResponse == 0) - sTVShowState = 5; - else - sTVShowState = 6; - break; - case 5: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); - sTVShowState = 11; - break; - case 6: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); - sTVShowState = 11; - break; - case 7: - sTVShowState = 11; - break; - case 8: - case 9: - case 10: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); - sTVShowState = 11; - break; - case 11: - CopyEasyChatWord(gStringVar1, show->bravoTrainerTower.words[0]); - if (show->bravoTrainerTower.interviewResponse == 0) - sTVShowState = 12; - else - sTVShowState = 13; - break; - case 12: - case 13: - CopyEasyChatWord(gStringVar1, show->bravoTrainerTower.words[0]); - TVShowConvertInternationalString(gStringVar2, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); - TVShowConvertInternationalString(gStringVar3, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); - sTVShowState = 14; - break; - case 14: - TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); - StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.species]); - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.species]); + if (show->bravoTrainerTower.numFights >= 7) + sTVShowState = 1; + else + sTVShowState = 2; + break; + case 1: + if (show->bravoTrainerTower.btLevel == 50) + { + StringCopy(gStringVar1, gText_Lv50); + } + else + { + StringCopy(gStringVar1, gText_OpenLevel); + } + ConvertIntToDecimalString(1, show->bravoTrainerTower.numFights); + if (show->bravoTrainerTower.wonTheChallenge == TRUE) + sTVShowState = 3; + else + sTVShowState = 4; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + ConvertIntToDecimalString(1, show->bravoTrainerTower.numFights + 1); + if (show->bravoTrainerTower.interviewResponse == 0) + sTVShowState = 5; + else + sTVShowState = 6; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.defeatedSpecies]); + if (show->bravoTrainerTower.interviewResponse == 0) + sTVShowState = 5; + else + sTVShowState = 6; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.defeatedSpecies]); + if (show->bravoTrainerTower.interviewResponse == 0) + sTVShowState = 5; + else + sTVShowState = 6; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + sTVShowState = 11; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + sTVShowState = 11; + break; + case 7: + sTVShowState = 11; + break; + case 8: + case 9: + case 10: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); + sTVShowState = 11; + break; + case 11: + CopyEasyChatWord(gStringVar1, show->bravoTrainerTower.words[0]); + if (show->bravoTrainerTower.interviewResponse == 0) + sTVShowState = 12; + else + sTVShowState = 13; + break; + case 12: + case 13: + CopyEasyChatWord(gStringVar1, show->bravoTrainerTower.words[0]); + TVShowConvertInternationalString(gStringVar2, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); + TVShowConvertInternationalString(gStringVar3, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + sTVShowState = 14; + break; + case 14: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.species]); + TVShowDone(); + break; } ShowFieldMessage(sTVBravoTrainerBattleTowerTextGroup[state]); } @@ -4686,115 +4461,88 @@ static void DoTVShowTodaysSmartShopper(void) state = sTVShowState; switch(state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); - GetMapName(gStringVar2, show->smartshopperShow.shopLocation, 0); - if (show->smartshopperShow.itemAmounts[0] >= 255) - { - sTVShowState = 11; - } - else - { - sTVShowState = 1; - } - break; - case 1: - TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); - StringCopy(gStringVar2, ItemId_GetName(show->smartshopperShow.itemIds[0])); - TV_PrintIntToStringVar(2, show->smartshopperShow.itemAmounts[0]); - sTVShowState += 1 + (Random() % 4); - break; - case 2: - case 4: - case 5: - if (show->smartshopperShow.itemIds[1] != ITEM_NONE) - { - sTVShowState = 6; - } - else - { - sTVShowState = 10; - } - break; - case 3: - TV_PrintIntToStringVar(2, show->smartshopperShow.itemAmounts[0] + 1); - if (show->smartshopperShow.itemIds[1] != ITEM_NONE) - { - sTVShowState = 6; - } - else - { - sTVShowState = 10; - } - break; - case 6: - StringCopy(gStringVar2, ItemId_GetName(show->smartshopperShow.itemIds[1])); - TV_PrintIntToStringVar(2, show->smartshopperShow.itemAmounts[1]); - if (show->smartshopperShow.itemIds[2] != ITEM_NONE) - { - sTVShowState = 7; - } - else if (show->smartshopperShow.priceReduced == TRUE) - { - sTVShowState = 8; - } - else - { - sTVShowState = 9; - } - break; - case 7: - StringCopy(gStringVar2, ItemId_GetName(show->smartshopperShow.itemIds[2])); - TV_PrintIntToStringVar(2, show->smartshopperShow.itemAmounts[2]); - if (show->smartshopperShow.priceReduced == TRUE) - { - sTVShowState = 8; - } - else - { - sTVShowState = 9; - } - break; - case 8: - if (show->smartshopperShow.itemAmounts[0] >= 255) - { - sTVShowState = 12; - } - else - { - sTVShowState = 9; - } - break; - case 9: - sub_80EF40C(1, show); - TVShowDone(); - break; - case 10: - if (show->smartshopperShow.priceReduced == TRUE) - { - sTVShowState = 8; - } - else - { - sTVShowState = 9; - } - break; - case 11: - TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); - StringCopy(gStringVar2, ItemId_GetName(show->smartshopperShow.itemIds[0])); - if (show->smartshopperShow.priceReduced == TRUE) - { - sTVShowState = 8; - } - else - { - sTVShowState = 12; - } - break; - case 12: - TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); - TVShowDone(); - break; + case SMARTSHOPPER_STATE_INTRO: + TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); + GetMapName(gStringVar2, show->smartshopperShow.shopLocation, 0); + if (show->smartshopperShow.itemAmounts[0] >= 255) + sTVShowState = SMARTSHOPPER_STATE_CLERK_MAX; + else + sTVShowState = SMARTSHOPPER_STATE_CLERK_NORMAL; + break; + case SMARTSHOPPER_STATE_CLERK_NORMAL: + TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); + StringCopy(gStringVar2, ItemId_GetName(show->smartshopperShow.itemIds[0])); + ConvertIntToDecimalString(2, show->smartshopperShow.itemAmounts[0]); + // Pick a random comment (SMARTSHOPPER_STATE_RAND_COMMENT_#) + sTVShowState += SMARTSHOPPER_STATE_CLERK_NORMAL + (Random() % (SMARTSHOPPER_STATE_RAND_COMMENT_4 - SMARTSHOPPER_STATE_RAND_COMMENT_1 + 1)); + break; + case SMARTSHOPPER_STATE_RAND_COMMENT_1: + case SMARTSHOPPER_STATE_RAND_COMMENT_3: + case SMARTSHOPPER_STATE_RAND_COMMENT_4: + if (show->smartshopperShow.itemIds[1] != ITEM_NONE) + sTVShowState = SMARTSHOPPER_STATE_SECOND_ITEM; + else + sTVShowState = SMARTSHOPPER_STATE_IS_VIP; + break; + case SMARTSHOPPER_STATE_RAND_COMMENT_2: + ConvertIntToDecimalString(2, show->smartshopperShow.itemAmounts[0] + 1); + if (show->smartshopperShow.itemIds[1] != ITEM_NONE) + sTVShowState = SMARTSHOPPER_STATE_SECOND_ITEM; + else + sTVShowState = SMARTSHOPPER_STATE_IS_VIP; + break; + case SMARTSHOPPER_STATE_SECOND_ITEM: + // Clerk describes 2nd type of item player purchased + StringCopy(gStringVar2, ItemId_GetName(show->smartshopperShow.itemIds[1])); + ConvertIntToDecimalString(2, show->smartshopperShow.itemAmounts[1]); + if (show->smartshopperShow.itemIds[2] != ITEM_NONE) + sTVShowState = SMARTSHOPPER_STATE_THIRD_ITEM; + else if (show->smartshopperShow.priceReduced == TRUE) + sTVShowState = SMARTSHOPPER_STATE_DURING_SALE; + else + sTVShowState = SMARTSHOPPER_STATE_OUTRO_NORMAL; + break; + case SMARTSHOPPER_STATE_THIRD_ITEM: + // Clerk describes 3rd type of item player purchased + StringCopy(gStringVar2, ItemId_GetName(show->smartshopperShow.itemIds[2])); + ConvertIntToDecimalString(2, show->smartshopperShow.itemAmounts[2]); + if (show->smartshopperShow.priceReduced == TRUE) + sTVShowState = SMARTSHOPPER_STATE_DURING_SALE; + else + sTVShowState = SMARTSHOPPER_STATE_OUTRO_NORMAL; + break; + case SMARTSHOPPER_STATE_DURING_SALE: + if (show->smartshopperShow.itemAmounts[0] >= 255) + sTVShowState = SMARTSHOPPER_STATE_OUTRO_MAX; + else + sTVShowState = SMARTSHOPPER_STATE_OUTRO_NORMAL; + break; + case SMARTSHOPPER_STATE_OUTRO_NORMAL: + SmartShopper_BufferPurchaseTotal(1, show); + TVShowDone(); + break; + case SMARTSHOPPER_STATE_IS_VIP: + // Clerk says customer is a VIP + // Said if player only purchased one type of item + if (show->smartshopperShow.priceReduced == TRUE) + sTVShowState = SMARTSHOPPER_STATE_DURING_SALE; + else + sTVShowState = SMARTSHOPPER_STATE_OUTRO_NORMAL; + break; + case SMARTSHOPPER_STATE_CLERK_MAX: + // Clerk's comments if player purchased maximum number of 1st item + TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); + StringCopy(gStringVar2, ItemId_GetName(show->smartshopperShow.itemIds[0])); + if (show->smartshopperShow.priceReduced == TRUE) + sTVShowState = SMARTSHOPPER_STATE_DURING_SALE; + else + sTVShowState = SMARTSHOPPER_STATE_OUTRO_MAX; + break; + case SMARTSHOPPER_STATE_OUTRO_MAX: + // Outro comments if player purchased maximum number of 1st item + TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); + TVShowDone(); + break; } ShowFieldMessage(sTVTodaysSmartShopperTextGroup[state]); } @@ -4809,90 +4557,78 @@ static void DoTVShowTheNameRaterShow(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); - StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.species]); - TVShowConvertInternationalString(gStringVar3, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); - sTVShowState = TV_GetNicknameSumMod8(show) + 1; - break; - case 1: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - if (show->nameRaterShow.random == 0) - { - sTVShowState = 9; - } - else if (show->nameRaterShow.random == 1) - { - sTVShowState = 10; - } - else if (show->nameRaterShow.random == 2) - { - sTVShowState = 11; - } - break; - case 2: - TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); - if (show->nameRaterShow.random == 0) - { - sTVShowState = 9; - } - else if (show->nameRaterShow.random == 1) - { - sTVShowState = 10; - } - else if (show->nameRaterShow.random == 2) - { - sTVShowState = 11; - } - break; - case 9: - case 10: - case 11: - TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); - TV_GetNicknameSubstring(1, 0, 0, 1, 0, show); - TV_GetNicknameSubstring(2, 1, 0, 1, 0, show); - sTVShowState = 12; - break; - case 13: - TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); - TV_GetNicknameSubstring(1, 0, 2, 0, 0, show); - TV_GetNicknameSubstring(2, 0, 3, 1, 0, show); - sTVShowState = 14; - break; - case 14: - TV_GetNicknameSubstring(1, 0, 2, 1, 0, show); - TV_GetNicknameSubstring(2, 0, 3, 0, 0, show); - sTVShowState = 18; - break; - case 15: - TV_GetNicknameSubstring(0, 0, 2, 1, 0, show); - StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.species]); - TV_GetNicknameSubstring(2, 0, 3, 2, show->nameRaterShow.species, show); - sTVShowState = 16; - break; - case 16: - TV_GetNicknameSubstring(0, 0, 2, 2, show->nameRaterShow.species, show); - TV_GetNicknameSubstring(2, 0, 3, 1, 0, show); - sTVShowState = 17; - break; - case 17: - TV_GetNicknameSubstring(0, 0, 2, 1, 0, show); - StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.randomSpecies]); - TV_GetNicknameSubstring(2, 0, 3, 2, show->nameRaterShow.randomSpecies, show); - sTVShowState = 18; - break; - case 12: - state = 18; - sTVShowState = 18; - case 18: - TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); + StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.species]); + TVShowConvertInternationalString(gStringVar3, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); + sTVShowState = GetRandomNameRaterStateFromName(show) + 1; + break; + case 1: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + if (show->nameRaterShow.random == 0) + sTVShowState = 9; + else if (show->nameRaterShow.random == 1) + sTVShowState = 10; + else if (show->nameRaterShow.random == 2) + sTVShowState = 11; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); + if (show->nameRaterShow.random == 0) + sTVShowState = 9; + else if (show->nameRaterShow.random == 1) + sTVShowState = 10; + else if (show->nameRaterShow.random == 2) + sTVShowState = 11; + break; + case 9: + case 10: + case 11: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); + GetNicknameSubstring(1, 0, 0, 1, 0, show); + GetNicknameSubstring(2, 1, 0, 1, 0, show); + sTVShowState = 12; + break; + case 13: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); + GetNicknameSubstring(1, 0, 2, 0, 0, show); + GetNicknameSubstring(2, 0, 3, 1, 0, show); + sTVShowState = 14; + break; + case 14: + GetNicknameSubstring(1, 0, 2, 1, 0, show); + GetNicknameSubstring(2, 0, 3, 0, 0, show); + sTVShowState = 18; + break; + case 15: + GetNicknameSubstring(0, 0, 2, 1, 0, show); + StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.species]); + GetNicknameSubstring(2, 0, 3, 2, show->nameRaterShow.species, show); + sTVShowState = 16; + break; + case 16: + GetNicknameSubstring(0, 0, 2, 2, show->nameRaterShow.species, show); + GetNicknameSubstring(2, 0, 3, 1, 0, show); + sTVShowState = 17; + break; + case 17: + GetNicknameSubstring(0, 0, 2, 1, 0, show); + StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.randomSpecies]); + GetNicknameSubstring(2, 0, 3, 2, show->nameRaterShow.randomSpecies, show); + sTVShowState = 18; + break; + case 12: + state = 18; + sTVShowState = 18; + case 18: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); + TVShowDone(); + break; } ShowFieldMessage(sTVNameRaterTextGroup[state]); } @@ -4907,70 +4643,62 @@ static void DoTVShowPokemonTodaySuccessfulCapture(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); - StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); - if (show->pokemonToday.ball == ITEM_MASTER_BALL) - { - sTVShowState = 5; - } - else - { - sTVShowState = 1; - } - break; - case 1: - sTVShowState = 2; - break; - case 2: - StringCopy(gStringVar2, ItemId_GetName(show->pokemonToday.ball)); - TV_PrintIntToStringVar(2, show->pokemonToday.nBallsUsed); - if (show->pokemonToday.nBallsUsed < 4) - { - sTVShowState = 3; - } - else - { - sTVShowState = 4; - } - break; - case 3: - TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); - StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); - sTVShowState = 6; - break; - case 4: - sTVShowState = 6; - break; - case 5: - TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); - StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); - sTVShowState = 6; - break; - case 6: - TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); - StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); - sTVShowState += 1 + (Random() % 4); - break; - case 7: - case 8: - StringCopy(gStringVar1, gSpeciesNames[show->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar2, show->pokemonToday.nickname, show->pokemonToday.language2); - TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName(2, show->pokemonToday.species); - sTVShowState = 11; - break; - case 9: - case 10: - StringCopy(gStringVar1, gSpeciesNames[show->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar2, show->pokemonToday.nickname, show->pokemonToday.language2); - sTVShowState = 11; - break; - case 11: - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); + if (show->pokemonToday.ball == ITEM_MASTER_BALL) + sTVShowState = 5; + else + sTVShowState = 1; + break; + case 1: + sTVShowState = 2; + break; + case 2: + StringCopy(gStringVar2, ItemId_GetName(show->pokemonToday.ball)); + ConvertIntToDecimalString(2, show->pokemonToday.nBallsUsed); + if (show->pokemonToday.nBallsUsed < 4) + sTVShowState = 3; + else + sTVShowState = 4; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); + sTVShowState = 6; + break; + case 4: + sTVShowState = 6; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); + sTVShowState = 6; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); + sTVShowState += 1 + (Random() % 4); + break; + case 7: + case 8: + StringCopy(gStringVar1, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar2, show->pokemonToday.nickname, show->pokemonToday.language2); + GetRandomDifferentSpeciesAndNameSeenByPlayer(2, show->pokemonToday.species); + sTVShowState = 11; + break; + case 9: + case 10: + StringCopy(gStringVar1, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar2, show->pokemonToday.nickname, show->pokemonToday.language2); + sTVShowState = 11; + break; + case 11: + TVShowDone(); + break; } ShowFieldMessage(sTVPokemonTodaySuccessfulTextGroup[state]); } @@ -4985,45 +4713,37 @@ static void DoTVShowPokemonTodayFailedCapture(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); - StringCopy(gStringVar2, gSpeciesNames[show->pokemonTodayFailed.species]); - sTVShowState = 1; - break; - case 1: - TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); - GetMapName(gStringVar2, show->pokemonTodayFailed.location, 0); - StringCopy(gStringVar3, gSpeciesNames[show->pokemonTodayFailed.species2]); - if (show->pokemonTodayFailed.outcome == 1) - { - sTVShowState = 3; - } - else - { - sTVShowState = 2; - } - break; - case 2: - case 3: - TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); - TV_PrintIntToStringVar(1, show->pokemonTodayFailed.nBallsUsed); - if (Random() % 3 == 0) - { - sTVShowState = 5; - } - else - { - sTVShowState = 4; - } - break; - case 4: - case 5: - TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); - sTVShowState = 6; - break; - case 6: - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonTodayFailed.species]); + sTVShowState = 1; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); + GetMapName(gStringVar2, show->pokemonTodayFailed.location, 0); + StringCopy(gStringVar3, gSpeciesNames[show->pokemonTodayFailed.species2]); + if (show->pokemonTodayFailed.outcome == 1) + sTVShowState = 3; + else + sTVShowState = 2; + break; + case 2: + case 3: + TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); + ConvertIntToDecimalString(1, show->pokemonTodayFailed.nBallsUsed); + if (Random() % 3 == 0) + sTVShowState = 5; + else + sTVShowState = 4; + break; + case 4: + case 5: + TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); + sTVShowState = 6; + break; + case 6: + TVShowDone(); + break; } ShowFieldMessage(sTVPokemonTodayFailedTextGroup[state]); } @@ -5039,45 +4759,45 @@ static void DoTVShowPokemonFanClubLetter(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->fanclubLetter.playerName, show->fanclubLetter.language); - StringCopy(gStringVar2, gSpeciesNames[show->fanclubLetter.species]); - sTVShowState = 50; - break; - case 1: - rval = (Random() % 4) + 1; - if (rval == 1) - sTVShowState = 2; - else - sTVShowState = rval + 2; - break; - case 2: - sTVShowState = 51; - break; - case 3: - sTVShowState += (Random() % 3) + 1; - break; - case 4: - case 5: - case 6: - TV_FanClubLetter_RandomWordToStringVar3(show); - sTVShowState = 7; - break; - case 7: - rval = (Random() % 0x1f) + 0x46; - TV_PrintIntToStringVar(2, rval); - TVShowDone(); - break; - case 50: - ConvertEasyChatWordsToString(gStringVar4, show->fanclubLetter.words, 2, 2); - ShowFieldMessage(gStringVar4); - sTVShowState = 1; - return; - case 51: - ConvertEasyChatWordsToString(gStringVar4, show->fanclubLetter.words, 2, 2); - ShowFieldMessage(gStringVar4); - sTVShowState = 3; - return; + case 0: + TVShowConvertInternationalString(gStringVar1, show->fanclubLetter.playerName, show->fanclubLetter.language); + StringCopy(gStringVar2, gSpeciesNames[show->fanclubLetter.species]); + sTVShowState = 50; + break; + case 1: + rval = (Random() % 4) + 1; + if (rval == 1) + sTVShowState = 2; + else + sTVShowState = rval + 2; + break; + case 2: + sTVShowState = 51; + break; + case 3: + sTVShowState += (Random() % 3) + 1; + break; + case 4: + case 5: + case 6: + GetRandomWordFromShow(show); + sTVShowState = 7; + break; + case 7: + rval = (Random() % 0x1f) + 0x46; + ConvertIntToDecimalString(2, rval); + TVShowDone(); + break; + case 50: + ConvertEasyChatWordsToString(gStringVar4, show->fanclubLetter.words, 2, 2); + ShowFieldMessage(gStringVar4); + sTVShowState = 1; + return; + case 51: + ConvertEasyChatWordsToString(gStringVar4, show->fanclubLetter.words, 2, 2); + ShowFieldMessage(gStringVar4); + sTVShowState = 3; + return; } ShowFieldMessage(sTVFanClubTextGroup[state]); } @@ -5092,27 +4812,27 @@ static void DoTVShowRecentHappenings(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->recentHappenings.playerName, show->recentHappenings.language); - TV_FanClubLetter_RandomWordToStringVar3(show); - sTVShowState = 50; - break; - case 1: - sTVShowState += 1 + (Random() % 3); - break; - case 2: - case 3: - case 4: - sTVShowState = 5; - break; - case 5: - TVShowDone(); - break; - case 50: - ConvertEasyChatWordsToString(gStringVar4, show->recentHappenings.words, 2, 2); - ShowFieldMessage(gStringVar4); - sTVShowState = 1; - return; + case 0: + TVShowConvertInternationalString(gStringVar1, show->recentHappenings.playerName, show->recentHappenings.language); + GetRandomWordFromShow(show); + sTVShowState = 50; + break; + case 1: + sTVShowState += 1 + (Random() % 3); + break; + case 2: + case 3: + case 4: + sTVShowState = 5; + break; + case 5: + TVShowDone(); + break; + case 50: + ConvertEasyChatWordsToString(gStringVar4, show->recentHappenings.words, 2, 2); + ShowFieldMessage(gStringVar4); + sTVShowState = 1; + return; } ShowFieldMessage(sTVRecentHappeninssTextGroup[state]); } @@ -5127,25 +4847,25 @@ static void DoTVShowPokemonFanClubOpinions(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); - StringCopy(gStringVar2, gSpeciesNames[show->fanclubOpinions.species]); - TVShowConvertInternationalString(gStringVar3, show->fanclubOpinions.nickname, show->fanclubOpinions.pokemonNameLanguage); - sTVShowState = show->fanclubOpinions.questionAsked + 1; - break; - case 1: - case 2: - case 3: - TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); - StringCopy(gStringVar2, gSpeciesNames[show->fanclubOpinions.species]); - CopyEasyChatWord(gStringVar3, show->fanclubOpinions.words[0]); - sTVShowState = 4; - break; - case 4: - TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); - CopyEasyChatWord(gStringVar3, show->fanclubOpinions.words[1]); - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); + StringCopy(gStringVar2, gSpeciesNames[show->fanclubOpinions.species]); + TVShowConvertInternationalString(gStringVar3, show->fanclubOpinions.nickname, show->fanclubOpinions.pokemonNameLanguage); + sTVShowState = show->fanclubOpinions.questionAsked + 1; + break; + case 1: + case 2: + case 3: + TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); + StringCopy(gStringVar2, gSpeciesNames[show->fanclubOpinions.species]); + CopyEasyChatWord(gStringVar3, show->fanclubOpinions.words[0]); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); + CopyEasyChatWord(gStringVar3, show->fanclubOpinions.words[1]); + TVShowDone(); + break; } ShowFieldMessage(sTVFanClubOpinionsTextGroup[state]); } @@ -5190,13 +4910,9 @@ static void DoTVShowPokemonContestLiveUpdates(void) if (show->contestLiveUpdates.round1Placing == show->contestLiveUpdates.round2Placing) { if (show->contestLiveUpdates.round1Placing == 0) - { sTVShowState = CONTESTLIVE_STATE_WON_BOTH_ROUNDS; - } else - { sTVShowState = CONTESTLIVE_STATE_EQUAL_ROUNDS; - } } else if (show->contestLiveUpdates.round1Placing > show->contestLiveUpdates.round2Placing) { @@ -5529,64 +5245,64 @@ static void DoTVShowPokemonBattleUpdate(void) state = sTVShowState; switch (state) { + case 0: + switch (show->battleUpdate.battleType) + { case 0: - switch (show->battleUpdate.battleType) - { - case 0: - case 1: - sTVShowState = 1; - break; - case 2: - sTVShowState = 5; - break; - } - break; case 1: - TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); - TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); - if (show->battleUpdate.battleType == 0) - { - StringCopy(gStringVar3, gText_Single); - } - else - { - StringCopy(gStringVar3, gText_Double); - } - sTVShowState = 2; + sTVShowState = 1; break; case 2: - TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); - StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.speciesPlayer]); - StringCopy(gStringVar3, gMoveNames[show->battleUpdate.move]); - sTVShowState = 3; - break; - case 3: - TVShowConvertInternationalString(gStringVar1, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); - StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.speciesOpponent]); - sTVShowState = 4; - break; - case 4: - TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); - TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); - TVShowDone(); - break; - case 5: - TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); - TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); - sTVShowState = 6; - break; - case 6: - TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); - StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.speciesPlayer]); - StringCopy(gStringVar3, gMoveNames[show->battleUpdate.move]); - sTVShowState = 7; - break; - case 7: - TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); - TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); - StringCopy(gStringVar3, gSpeciesNames[show->battleUpdate.speciesOpponent]); - TVShowDone(); + sTVShowState = 5; break; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + if (show->battleUpdate.battleType == 0) + { + StringCopy(gStringVar3, gText_Single); + } + else + { + StringCopy(gStringVar3, gText_Double); + } + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.speciesPlayer]); + StringCopy(gStringVar3, gMoveNames[show->battleUpdate.move]); + sTVShowState = 3; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.speciesOpponent]); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + TVShowDone(); + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + sTVShowState = 6; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.speciesPlayer]); + StringCopy(gStringVar3, gMoveNames[show->battleUpdate.move]); + sTVShowState = 7; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + StringCopy(gStringVar3, gSpeciesNames[show->battleUpdate.speciesOpponent]); + TVShowDone(); + break; } ShowFieldMessage(sTVPokemonBattleUpdateTextGroup[state]); } @@ -5601,95 +5317,88 @@ static void DoTVShow3CheersForPokeblocks(void) state = sTVShowState; switch (state) { + case 0: + TVShowConvertInternationalString(gStringVar1, show->threeCheers.playerName, show->threeCheers.language); + if (show->threeCheers.sheen > 20) + sTVShowState = 1; + else + sTVShowState = 3; + break; + case 1: + switch (show->threeCheers.flavor) + { case 0: - TVShowConvertInternationalString(gStringVar1, show->threeCheers.playerName, show->threeCheers.language); - if (show->threeCheers.sheen > 20) - { - sTVShowState = 1; - } - else - { - sTVShowState = 3; - } + StringCopy(gStringVar1, gText_Spicy2); break; case 1: - switch (show->threeCheers.flavor) - { - case 0: - StringCopy(gStringVar1, gText_Spicy2); - break; - case 1: - StringCopy(gStringVar1, gText_Dry2); - break; - case 2: - StringCopy(gStringVar1, gText_Sweet2); - break; - case 3: - StringCopy(gStringVar1, gText_Bitter2); - break; - case 4: - StringCopy(gStringVar1, gText_Sour2); - break; - } - if (show->threeCheers.sheen > 24) - { - StringCopy(gStringVar2, gText_Excellent); - } else if (show->threeCheers.sheen > 22) - { - StringCopy(gStringVar2, gText_VeryGood); - } - else - { - StringCopy(gStringVar2, gText_Good); - } - TVShowConvertInternationalString(gStringVar3, show->threeCheers.playerName, show->threeCheers.language); - sTVShowState = 2; + StringCopy(gStringVar1, gText_Dry2); break; case 2: - TVShowConvertInternationalString(gStringVar1, show->threeCheers.worstBlenderName, show->threeCheers.worstBlenderLanguage); - sTVShowState = 5; + StringCopy(gStringVar1, gText_Sweet2); break; case 3: - switch (show->threeCheers.flavor) - { - case 0: - StringCopy(gStringVar1, gText_Spicy2); - break; - case 1: - StringCopy(gStringVar1, gText_Dry2); - break; - case 2: - StringCopy(gStringVar1, gText_Sweet2); - break; - case 3: - StringCopy(gStringVar1, gText_Bitter2); - break; - case 4: - StringCopy(gStringVar1, gText_Sour2); - break; - } - if (show->threeCheers.sheen > 16) - { - StringCopy(gStringVar2, gText_SoSo); - } else if (show->threeCheers.sheen > 13) - { - StringCopy(gStringVar2, gText_Bad); - } - else - { - StringCopy(gStringVar2, gText_TheWorst); - } - TVShowConvertInternationalString(gStringVar3, show->threeCheers.playerName, show->threeCheers.language); - sTVShowState = 4; + StringCopy(gStringVar1, gText_Bitter2); break; case 4: - TVShowConvertInternationalString(gStringVar1, show->threeCheers.worstBlenderName, show->threeCheers.worstBlenderLanguage); - TVShowConvertInternationalString(gStringVar2, show->threeCheers.playerName, show->threeCheers.language); - sTVShowState = 5; + StringCopy(gStringVar1, gText_Sour2); break; - case 5: - TVShowDone(); + } + if (show->threeCheers.sheen > 24) + { + StringCopy(gStringVar2, gText_Excellent); + } else if (show->threeCheers.sheen > 22) + { + StringCopy(gStringVar2, gText_VeryGood); + } + else + { + StringCopy(gStringVar2, gText_Good); + } + TVShowConvertInternationalString(gStringVar3, show->threeCheers.playerName, show->threeCheers.language); + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->threeCheers.worstBlenderName, show->threeCheers.worstBlenderLanguage); + sTVShowState = 5; + break; + case 3: + switch (show->threeCheers.flavor) + { + case 0: + StringCopy(gStringVar1, gText_Spicy2); break; + case 1: + StringCopy(gStringVar1, gText_Dry2); + break; + case 2: + StringCopy(gStringVar1, gText_Sweet2); + break; + case 3: + StringCopy(gStringVar1, gText_Bitter2); + break; + case 4: + StringCopy(gStringVar1, gText_Sour2); + break; + } + + if (show->threeCheers.sheen > 16) + StringCopy(gStringVar2, gText_SoSo); + else if (show->threeCheers.sheen > 13) + StringCopy(gStringVar2, gText_Bad); + else + StringCopy(gStringVar2, gText_TheWorst); + + TVShowConvertInternationalString(gStringVar3, show->threeCheers.playerName, show->threeCheers.language); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->threeCheers.worstBlenderName, show->threeCheers.worstBlenderLanguage); + TVShowConvertInternationalString(gStringVar2, show->threeCheers.playerName, show->threeCheers.language); + sTVShowState = 5; + break; + case 5: + TVShowDone(); + break; } ShowFieldMessage(sTV3CheersForPokeblocksTextGroup[state]); } @@ -5702,62 +5411,48 @@ void DoTVShowInSearchOfTrainers(void) state = sTVShowState; switch (state) { - case 0: - GetMapName(gStringVar1, gSaveBlock1Ptr->gabbyAndTyData.mapnum, 0); - if (gSaveBlock1Ptr->gabbyAndTyData.battleNum > 1) - { - sTVShowState = 1; - } - else - { - sTVShowState = 2; - } - break; - case 1: + case 0: + GetMapName(gStringVar1, gSaveBlock1Ptr->gabbyAndTyData.mapnum, 0); + if (gSaveBlock1Ptr->gabbyAndTyData.battleNum > 1) + sTVShowState = 1; + else sTVShowState = 2; - break; - case 2: - if (!gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn) - { - sTVShowState = 4; - } - else if (gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall) - { - sTVShowState = 5; - } - else if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem) - { - sTVShowState = 6; - } - else if (gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon) - { - sTVShowState = 7; - } - else - { - sTVShowState = 3; - } - break; - case 3: - StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon1]); - StringCopy(gStringVar2, gMoveNames[gSaveBlock1Ptr->gabbyAndTyData.lastMove]); - StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon2]); - sTVShowState = 8; - break; - case 4: - case 5: - case 6: - case 7: - sTVShowState = 8; - break; - case 8: - CopyEasyChatWord(gStringVar1, gSaveBlock1Ptr->gabbyAndTyData.quote[0]); - StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon1]); - StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon2]); - gSpecialVar_Result = TRUE; - sTVShowState = 0; - TakeTVShowInSearchOfTrainersOffTheAir(); - break; + break; + case 1: + sTVShowState = 2; + break; + case 2: + if (!gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn) + sTVShowState = 4; + else if (gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall) + sTVShowState = 5; + else if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem) + sTVShowState = 6; + else if (gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon) + sTVShowState = 7; + else + sTVShowState = 3; + break; + case 3: + StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon1]); + StringCopy(gStringVar2, gMoveNames[gSaveBlock1Ptr->gabbyAndTyData.lastMove]); + StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon2]); + sTVShowState = 8; + break; + case 4: + case 5: + case 6: + case 7: + sTVShowState = 8; + break; + case 8: + CopyEasyChatWord(gStringVar1, gSaveBlock1Ptr->gabbyAndTyData.quote[0]); + StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon1]); + StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon2]); + gSpecialVar_Result = TRUE; + sTVShowState = 0; + TakeGabbyAndTyOffTheAir(); + break; } ShowFieldMessage(sTVInSearchOfTrainersTextGroup[state]); } @@ -5770,28 +5465,24 @@ static void DoTVShowPokemonAngler(void) show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; gSpecialVar_Result = FALSE; if (show->pokemonAngler.nBites < show->pokemonAngler.nFails) - { sTVShowState = 0; - } else - { sTVShowState = 1; - } state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->pokemonAngler.playerName, show->pokemonAngler.language); - StringCopy(gStringVar2, gSpeciesNames[show->pokemonAngler.species]); - TV_PrintIntToStringVar(2, show->pokemonAngler.nFails); - TVShowDone(); - break; - case 1: - TVShowConvertInternationalString(gStringVar1, show->pokemonAngler.playerName, show->pokemonAngler.language); - StringCopy(gStringVar2, gSpeciesNames[show->pokemonAngler.species]); - TV_PrintIntToStringVar(2, show->pokemonAngler.nBites); - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->pokemonAngler.playerName, show->pokemonAngler.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonAngler.species]); + ConvertIntToDecimalString(2, show->pokemonAngler.nFails); + TVShowDone(); + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->pokemonAngler.playerName, show->pokemonAngler.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonAngler.species]); + ConvertIntToDecimalString(2, show->pokemonAngler.nBites); + TVShowDone(); + break; } ShowFieldMessage(sTVPokemonAnslerTextGroup[state]); } @@ -5806,22 +5497,22 @@ static void DoTVShowTheWorldOfMasters(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->worldOfMasters.playerName, show->worldOfMasters.language); - TV_PrintIntToStringVar(1, show->worldOfMasters.steps); - TV_PrintIntToStringVar(2, show->worldOfMasters.numPokeCaught); - sTVShowState = 1; - break; - case 1: - StringCopy(gStringVar1, gSpeciesNames[show->worldOfMasters.species]); - sTVShowState = 2; - break; - case 2: - TVShowConvertInternationalString(gStringVar1, show->worldOfMasters.playerName, show->worldOfMasters.language); - GetMapName(gStringVar2, show->worldOfMasters.location, 0); - StringCopy(gStringVar3, gSpeciesNames[show->worldOfMasters.caughtPoke]); - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->worldOfMasters.playerName, show->worldOfMasters.language); + ConvertIntToDecimalString(1, show->worldOfMasters.steps); + ConvertIntToDecimalString(2, show->worldOfMasters.numPokeCaught); + sTVShowState = 1; + break; + case 1: + StringCopy(gStringVar1, gSpeciesNames[show->worldOfMasters.species]); + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->worldOfMasters.playerName, show->worldOfMasters.language); + GetMapName(gStringVar2, show->worldOfMasters.location, 0); + StringCopy(gStringVar3, gSpeciesNames[show->worldOfMasters.caughtPoke]); + TVShowDone(); + break; } ShowFieldMessage(sTVWorldOfMastersTextGroup[state]); } @@ -5836,143 +5527,111 @@ static void DoTVShowTodaysRivalTrainer(void) state = sTVShowState; switch (state) { - case 0: - switch (show->rivalTrainer.location) + case 0: + switch (show->rivalTrainer.location) + { + default: + sTVShowState = 7; + break; + case MAPSEC_SECRET_BASE: + sTVShowState = 8; + break; + case MAPSEC_DYNAMIC: + switch (show->rivalTrainer.mapLayoutId) { - default: - sTVShowState = 7; - break; - case MAPSEC_SECRET_BASE: - sTVShowState = 8; - break; - case MAPSEC_DYNAMIC: - switch (show->rivalTrainer.mapLayoutId) - { - case LAYOUT_SS_TIDAL_CORRIDOR: - case LAYOUT_SS_TIDAL_LOWER_DECK: - case LAYOUT_SS_TIDAL_ROOMS: - sTVShowState = 10; - break; - default: - sTVShowState = 9; - break; - } - break; + case LAYOUT_SS_TIDAL_CORRIDOR: + case LAYOUT_SS_TIDAL_LOWER_DECK: + case LAYOUT_SS_TIDAL_ROOMS: + sTVShowState = 10; + break; + default: + sTVShowState = 9; + break; } break; - case 7: - TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); - TV_PrintIntToStringVar(1, show->rivalTrainer.dexCount); - GetMapName(gStringVar3, show->rivalTrainer.location, 0); - if (show->rivalTrainer.badgeCount != 0) - { - sTVShowState = 1; - } + } + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + ConvertIntToDecimalString(1, show->rivalTrainer.dexCount); + GetMapName(gStringVar3, show->rivalTrainer.location, 0); + if (show->rivalTrainer.badgeCount != 0) + sTVShowState = 1; + else + sTVShowState = 2; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + ConvertIntToDecimalString(1, show->rivalTrainer.dexCount); + if (show->rivalTrainer.badgeCount != 0) + sTVShowState = 1; + else + sTVShowState = 2; + break; + case 9: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + ConvertIntToDecimalString(1, show->rivalTrainer.dexCount); + if (show->rivalTrainer.badgeCount != 0) + sTVShowState = 1; + else + sTVShowState = 2; + break; + case 10: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + ConvertIntToDecimalString(1, show->rivalTrainer.dexCount); + if (show->rivalTrainer.badgeCount != 0) + sTVShowState = 1; + else + sTVShowState = 2; + break; + case 1: + ConvertIntToDecimalString(0, show->rivalTrainer.badgeCount); + if (FlagGet(FLAG_LANDMARK_BATTLE_FRONTIER)) + { + if (show->rivalTrainer.nSilverSymbols || show->rivalTrainer.nGoldSymbols) + sTVShowState = 4; else - { - sTVShowState = 2; - } - break; - case 8: - TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); - TV_PrintIntToStringVar(1, show->rivalTrainer.dexCount); - if (show->rivalTrainer.badgeCount != 0) - { - sTVShowState = 1; - } - else - { - sTVShowState = 2; - } - break; - case 9: - TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); - TV_PrintIntToStringVar(1, show->rivalTrainer.dexCount); - if (show->rivalTrainer.badgeCount != 0) - { - sTVShowState = 1; - } - else - { - sTVShowState = 2; - } - break; - case 10: - TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); - TV_PrintIntToStringVar(1, show->rivalTrainer.dexCount); - if (show->rivalTrainer.badgeCount != 0) - { - sTVShowState = 1; - } - else - { - sTVShowState = 2; - } - break; - case 1: - TV_PrintIntToStringVar(0, show->rivalTrainer.badgeCount); - if (FlagGet(FLAG_LANDMARK_BATTLE_FRONTIER)) - { - if (show->rivalTrainer.nSilverSymbols || show->rivalTrainer.nGoldSymbols) - { - sTVShowState = 4; - } - else - { - sTVShowState = 3; - } - } - else - { - sTVShowState = 6; - } - break; - case 2: - if (FlagGet(FLAG_LANDMARK_BATTLE_FRONTIER)) - { - if (show->rivalTrainer.nSilverSymbols || show->rivalTrainer.nGoldSymbols) - { - sTVShowState = 4; - } - else - { - sTVShowState = 3; - } - } - else - { - sTVShowState = 6; - } - break; - case 3: - if (show->rivalTrainer.battlePoints == 0) - { - sTVShowState = 6; - } - else - { - sTVShowState = 5; - } - break; - case 4: - TV_PrintIntToStringVar(0, show->rivalTrainer.nGoldSymbols); - TV_PrintIntToStringVar(1, show->rivalTrainer.nSilverSymbols); - if (show->rivalTrainer.battlePoints == 0) - { - sTVShowState = 6; - } - else - { - sTVShowState = 5; - } - break; - case 5: - TV_PrintIntToStringVar(0, show->rivalTrainer.battlePoints); + sTVShowState = 3; + } + else + { sTVShowState = 6; - break; - case 6: - TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); - TVShowDone(); + } + break; + case 2: + if (FlagGet(FLAG_LANDMARK_BATTLE_FRONTIER)) + { + if (show->rivalTrainer.nSilverSymbols || show->rivalTrainer.nGoldSymbols) + sTVShowState = 4; + else + sTVShowState = 3; + } + else + { + sTVShowState = 6; + } + break; + case 3: + if (show->rivalTrainer.battlePoints == 0) + sTVShowState = 6; + else + sTVShowState = 5; + break; + case 4: + ConvertIntToDecimalString(0, show->rivalTrainer.nGoldSymbols); + ConvertIntToDecimalString(1, show->rivalTrainer.nSilverSymbols); + if (show->rivalTrainer.battlePoints == 0) + sTVShowState = 6; + else + sTVShowState = 5; + break; + case 5: + ConvertIntToDecimalString(0, show->rivalTrainer.battlePoints); + sTVShowState = 6; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + TVShowDone(); } ShowFieldMessage(sTVTodaysRivalTrainerTextGroup[state]); } @@ -5987,48 +5646,40 @@ static void DoTVShowDewfordTrendWatcherNetwork(void) state = sTVShowState; switch (state) { - case 0: - CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); - CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); - if (show->trendWatcher.gender == MALE) - { - sTVShowState = 1; - } - else - { - sTVShowState = 2; - } - break; - case 1: - case 2: - CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); - CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); - TVShowConvertInternationalString(gStringVar3, show->trendWatcher.playerName, show->trendWatcher.language); - sTVShowState = 3; - break; - case 3: - CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); - CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); - if (show->trendWatcher.gender == MALE) - { - sTVShowState = 4; - } - else - { - sTVShowState = 5; - } - break; - case 4: - case 5: - CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); - CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); - TVShowConvertInternationalString(gStringVar3, show->trendWatcher.playerName, show->trendWatcher.language); - sTVShowState = 6; - break; - case 6: - CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); - CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); - TVShowDone(); + case TRENDWATCHER_STATE_INTRO: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + if (show->trendWatcher.gender == MALE) + sTVShowState = TRENDWATCHER_STATE_TAUGHT_MALE; + else + sTVShowState = TRENDWATCHER_STATE_TAUGHT_FEMALE; + break; + case TRENDWATCHER_STATE_TAUGHT_MALE: + case TRENDWATCHER_STATE_TAUGHT_FEMALE: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + TVShowConvertInternationalString(gStringVar3, show->trendWatcher.playerName, show->trendWatcher.language); + sTVShowState = TRENDWATCHER_STATE_PHRASE_HOPELESS; + break; + case TRENDWATCHER_STATE_PHRASE_HOPELESS: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + if (show->trendWatcher.gender == MALE) + sTVShowState = TRENDWATCHER_STATE_BIGGER_MALE; + else + sTVShowState = TRENDWATCHER_STATE_BIGGER_FEMALE; + break; + case TRENDWATCHER_STATE_BIGGER_MALE: + case TRENDWATCHER_STATE_BIGGER_FEMALE: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + TVShowConvertInternationalString(gStringVar3, show->trendWatcher.playerName, show->trendWatcher.language); + sTVShowState = TRENDWATCHER_STATE_OUTRO; + break; + case TRENDWATCHER_STATE_OUTRO: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + TVShowDone(); } ShowFieldMessage(sTVDewfordTrendWatcherNetworkTextGroup[state]); } @@ -6043,38 +5694,38 @@ static void DoTVShowHoennTreasureInvestigators(void) state = sTVShowState; switch (state) { - case 0: - StringCopy(gStringVar1, ItemId_GetName(show->treasureInvestigators.item)); - if (show->treasureInvestigators.location == MAPSEC_DYNAMIC) - { - switch (show->treasureInvestigators.mapLayoutId) - { - case LAYOUT_SS_TIDAL_CORRIDOR: - case LAYOUT_SS_TIDAL_LOWER_DECK: - case LAYOUT_SS_TIDAL_ROOMS: - sTVShowState = 2; - break; - default: - sTVShowState = 1; - break; - } - } - else + case 0: + StringCopy(gStringVar1, ItemId_GetName(show->treasureInvestigators.item)); + if (show->treasureInvestigators.location == MAPSEC_DYNAMIC) + { + switch (show->treasureInvestigators.mapLayoutId) { + case LAYOUT_SS_TIDAL_CORRIDOR: + case LAYOUT_SS_TIDAL_LOWER_DECK: + case LAYOUT_SS_TIDAL_ROOMS: + sTVShowState = 2; + break; + default: sTVShowState = 1; + break; } - break; - case 1: - StringCopy(gStringVar1, ItemId_GetName(show->treasureInvestigators.item)); - TVShowConvertInternationalString(gStringVar2, show->treasureInvestigators.playerName, show->treasureInvestigators.language); - GetMapName(gStringVar3, show->treasureInvestigators.location, 0); - TVShowDone(); - break; - case 2: - StringCopy(gStringVar1, ItemId_GetName(show->treasureInvestigators.item)); - TVShowConvertInternationalString(gStringVar2, show->treasureInvestigators.playerName, show->treasureInvestigators.language); - TVShowDone(); - break; + } + else + { + sTVShowState = 1; + } + break; + case 1: + StringCopy(gStringVar1, ItemId_GetName(show->treasureInvestigators.item)); + TVShowConvertInternationalString(gStringVar2, show->treasureInvestigators.playerName, show->treasureInvestigators.language); + GetMapName(gStringVar3, show->treasureInvestigators.location, 0); + TVShowDone(); + break; + case 2: + StringCopy(gStringVar1, ItemId_GetName(show->treasureInvestigators.item)); + TVShowConvertInternationalString(gStringVar2, show->treasureInvestigators.playerName, show->treasureInvestigators.language); + TVShowDone(); + break; } ShowFieldMessage(sTVHoennTreasureInvestisatorsTextGroup[state]); } @@ -6089,66 +5740,62 @@ static void DoTVShowFindThatGamer(void) state = sTVShowState; switch (state) { + case 0: + TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); + switch (show->findThatGamer.whichGame) + { case 0: - TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); - switch (show->findThatGamer.whichGame) - { - case 0: - StringCopy(gStringVar2, gText_Slots); - break; - case 1: - StringCopy(gStringVar2, gText_Roulette); - break; - } - if (show->findThatGamer.won == TRUE) - { - sTVShowState = 1; - } - else - { - sTVShowState = 2; - } + StringCopy(gStringVar2, gText_Slots); break; case 1: - TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); - switch (show->findThatGamer.whichGame) - { - case 0: - StringCopy(gStringVar2, gText_Slots); - break; - case 1: - StringCopy(gStringVar2, gText_Roulette); - break; - } - TV_PrintIntToStringVar(2, show->findThatGamer.nCoins); - TVShowDone(); break; - case 2: - TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); - switch (show->findThatGamer.whichGame) - { - case 0: - StringCopy(gStringVar2, gText_Slots); - break; - case 1: - StringCopy(gStringVar2, gText_Roulette); - break; - } - TV_PrintIntToStringVar(2, show->findThatGamer.nCoins); - sTVShowState = 3; + StringCopy(gStringVar2, gText_Roulette); break; - case 3: - TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); - switch (show->findThatGamer.whichGame) - { - case 0: - StringCopy(gStringVar2, gText_Roulette); - break; - case 1: - StringCopy(gStringVar2, gText_Slots); - break; - } - TVShowDone(); + } + if (show->findThatGamer.won == TRUE) + sTVShowState = 1; + else + sTVShowState = 2; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); + switch (show->findThatGamer.whichGame) + { + case 0: + StringCopy(gStringVar2, gText_Slots); break; + case 1: + StringCopy(gStringVar2, gText_Roulette); + break; + } + ConvertIntToDecimalString(2, show->findThatGamer.nCoins); + TVShowDone(); break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); + switch (show->findThatGamer.whichGame) + { + case 0: + StringCopy(gStringVar2, gText_Slots); + break; + case 1: + StringCopy(gStringVar2, gText_Roulette); + break; + } + ConvertIntToDecimalString(2, show->findThatGamer.nCoins); + sTVShowState = 3; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); + switch (show->findThatGamer.whichGame) + { + case 0: + StringCopy(gStringVar2, gText_Roulette); + break; + case 1: + StringCopy(gStringVar2, gText_Slots); + break; + } + TVShowDone(); + break; } ShowFieldMessage(sTVFindThatGamerTextGroup[state]); } @@ -6163,95 +5810,87 @@ static void DoTVShowBreakingNewsTV(void) state = sTVShowState; switch (state) { - case 0: - if (show->breakingNews.outcome == 0) - { - sTVShowState = 1; - } - else - { - sTVShowState = 5; - } - break; + case 0: + if (show->breakingNews.outcome == 0) + sTVShowState = 1; + else + sTVShowState = 5; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + GetMapName(gStringVar3, show->breakingNews.location, 0); + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); + sTVShowState = 3; + break; + case 3: + ConvertIntToDecimalString(0, show->breakingNews.balls); + StringCopy(gStringVar2, ItemId_GetName(show->breakingNews.caughtMonBall)); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + GetMapName(gStringVar2, show->breakingNews.location, 0); + TVShowDone(); + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + GetMapName(gStringVar3, show->breakingNews.location, 0); + sTVShowState = 6; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); + switch (show->breakingNews.outcome) + { case 1: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); - GetMapName(gStringVar3, show->breakingNews.location, 0); - sTVShowState = 2; + if (show->breakingNews.lastUsedMove == MOVE_NONE) + sTVShowState = 12; + else + sTVShowState = 7; break; case 2: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); - StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); - sTVShowState = 3; + sTVShowState = 9; break; case 3: - TV_PrintIntToStringVar(0, show->breakingNews.balls); - StringCopy(gStringVar2, ItemId_GetName(show->breakingNews.caughtMonBall)); - sTVShowState = 4; - break; - case 4: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - GetMapName(gStringVar2, show->breakingNews.location, 0); - TVShowDone(); - break; - case 5: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); - GetMapName(gStringVar3, show->breakingNews.location, 0); - sTVShowState = 6; - break; - case 6: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); - StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); - switch (show->breakingNews.outcome) - { - case 1: - if (show->breakingNews.lastUsedMove == MOVE_NONE) - { - sTVShowState = 12; - } - else - { - sTVShowState = 7; - } - break; - case 2: - sTVShowState = 9; - break; - case 3: - sTVShowState = 10; - break; - } - break; - case 7: - StringCopy(gStringVar1, gMoveNames[show->breakingNews.lastUsedMove]); - StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.poke1Species]); - sTVShowState = 8; - break; - case 12: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); - StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); - sTVShowState = 8; - break; - case 8: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - GetMapName(gStringVar2, show->breakingNews.location, 0); - sTVShowState = 11; - break; - case 9: - case 10: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); - GetMapName(gStringVar3, show->breakingNews.location, 0); - sTVShowState = 11; - break; - case 11: - TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); - TVShowDone(); + sTVShowState = 10; break; + } + break; + case 7: + StringCopy(gStringVar1, gMoveNames[show->breakingNews.lastUsedMove]); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.poke1Species]); + sTVShowState = 8; + break; + case 12: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); + sTVShowState = 8; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + GetMapName(gStringVar2, show->breakingNews.location, 0); + sTVShowState = 11; + break; + case 9: + case 10: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + GetMapName(gStringVar3, show->breakingNews.location, 0); + sTVShowState = 11; + break; + case 11: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + TVShowDone(); + break; } ShowFieldMessage(sTVBreakingNewsTextGroup[state]); } @@ -6266,88 +5905,72 @@ static void DoTVShowSecretBaseVisit(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); - if (show->secretBaseVisit.nDecorations == 0) - { - sTVShowState = 2; - } - else - { - sTVShowState = 1; - } - break; - case 1: - StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[0]].name); - if (show->secretBaseVisit.nDecorations == 1) - { - sTVShowState = 4; - } - else - { - sTVShowState = 3; - } + case 0: + TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); + if (show->secretBaseVisit.nDecorations == 0) + sTVShowState = 2; + else + sTVShowState = 1; + break; + case 1: + StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[0]].name); + if (show->secretBaseVisit.nDecorations == 1) + sTVShowState = 4; + else + sTVShowState = 3; + break; + case 3: + StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[1]].name); + switch (show->secretBaseVisit.nDecorations) + { + case 2: + sTVShowState = 7; break; case 3: - StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[1]].name); - switch (show->secretBaseVisit.nDecorations) - { - case 2: - sTVShowState = 7; - break; - case 3: - sTVShowState = 6; - break; - case 4: - sTVShowState = 5; - break; - } + sTVShowState = 6; break; - case 5: - StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[2]].name); - StringCopy(gStringVar3, gDecorations[show->secretBaseVisit.decorations[3]].name); - sTVShowState = 8; - break; - case 6: - StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[2]].name); - sTVShowState = 8; - break; - case 2: case 4: - case 7: - sTVShowState = 8; - break; - case 8: - TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); - if (show->secretBaseVisit.avgLevel < 25) - { - sTVShowState = 12; - } - else if (show->secretBaseVisit.avgLevel < 50) - { - sTVShowState = 11; - } - else if (show->secretBaseVisit.avgLevel < 70) - { - sTVShowState = 10; - } - else - { - sTVShowState = 9; - } - break; - case 9: - case 10: - case 11: - case 12: - TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); - StringCopy(gStringVar2, gSpeciesNames[show->secretBaseVisit.species]); - StringCopy(gStringVar3, gMoveNames[show->secretBaseVisit.move]); - sTVShowState = 13; - break; - case 13: - TVShowDone(); + sTVShowState = 5; break; + } + break; + case 5: + StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[2]].name); + StringCopy(gStringVar3, gDecorations[show->secretBaseVisit.decorations[3]].name); + sTVShowState = 8; + break; + case 6: + StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[2]].name); + sTVShowState = 8; + break; + case 2: + case 4: + case 7: + sTVShowState = 8; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); + if (show->secretBaseVisit.avgLevel < 25) + sTVShowState = 12; + else if (show->secretBaseVisit.avgLevel < 50) + sTVShowState = 11; + else if (show->secretBaseVisit.avgLevel < 70) + sTVShowState = 10; + else + sTVShowState = 9; + break; + case 9: + case 10: + case 11: + case 12: + TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); + StringCopy(gStringVar2, gSpeciesNames[show->secretBaseVisit.species]); + StringCopy(gStringVar3, gMoveNames[show->secretBaseVisit.move]); + sTVShowState = 13; + break; + case 13: + TVShowDone(); + break; } ShowFieldMessage(sTVSecretBaseVisitTextGroup[state]); } @@ -6392,56 +6015,56 @@ static void DoTVShowThePokemonBattleSeminar(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->battleSeminar.playerName, show->battleSeminar.language); - StringCopy(gStringVar2, gSpeciesNames[show->battleSeminar.species]); - StringCopy(gStringVar3, gSpeciesNames[show->battleSeminar.foeSpecies]); - sTVShowState = 1; - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->battleSeminar.playerName, show->battleSeminar.language); + StringCopy(gStringVar2, gSpeciesNames[show->battleSeminar.species]); + StringCopy(gStringVar3, gSpeciesNames[show->battleSeminar.foeSpecies]); + sTVShowState = 1; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->battleSeminar.playerName, show->battleSeminar.language); + StringCopy(gStringVar2, gSpeciesNames[show->battleSeminar.foeSpecies]); + StringCopy(gStringVar3, gMoveNames[show->battleSeminar.move]); + sTVShowState = 2; + break; + case 2: + StringCopy(gStringVar1, gSpeciesNames[show->battleSeminar.species]); + switch (show->battleSeminar.nOtherMoves) + { case 1: - TVShowConvertInternationalString(gStringVar1, show->battleSeminar.playerName, show->battleSeminar.language); - StringCopy(gStringVar2, gSpeciesNames[show->battleSeminar.foeSpecies]); - StringCopy(gStringVar3, gMoveNames[show->battleSeminar.move]); - sTVShowState = 2; + sTVShowState = 5; break; case 2: - StringCopy(gStringVar1, gSpeciesNames[show->battleSeminar.species]); - switch (show->battleSeminar.nOtherMoves) - { - case 1: - sTVShowState = 5; - break; - case 2: - sTVShowState = 4; - break; - case 3: - sTVShowState = 3; - break; - default: - sTVShowState = 6; - break; - } + sTVShowState = 4; break; case 3: - StringCopy(gStringVar1, gMoveNames[show->battleSeminar.otherMoves[0]]); - StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[1]]); - StringCopy(gStringVar3, gMoveNames[show->battleSeminar.otherMoves[2]]); + sTVShowState = 3; + break; + default: sTVShowState = 6; break; - case 4: - StringCopy(gStringVar1, gMoveNames[show->battleSeminar.otherMoves[0]]); - StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[1]]); - sTVShowState = 6; - break; - case 5: - StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[0]]); - sTVShowState = 6; - break; - case 6: - StringCopy(gStringVar1, gMoveNames[show->battleSeminar.betterMove]); - StringCopy(gStringVar2, gMoveNames[show->battleSeminar.move]); - TVShowDone(); - break; + } + break; + case 3: + StringCopy(gStringVar1, gMoveNames[show->battleSeminar.otherMoves[0]]); + StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[1]]); + StringCopy(gStringVar3, gMoveNames[show->battleSeminar.otherMoves[2]]); + sTVShowState = 6; + break; + case 4: + StringCopy(gStringVar1, gMoveNames[show->battleSeminar.otherMoves[0]]); + StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[1]]); + sTVShowState = 6; + break; + case 5: + StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[0]]); + sTVShowState = 6; + break; + case 6: + StringCopy(gStringVar1, gMoveNames[show->battleSeminar.betterMove]); + StringCopy(gStringVar2, gMoveNames[show->battleSeminar.move]); + TVShowDone(); + break; } ShowFieldMessage(sTVThePokemonBattleSeminarTextGroup[state]); } @@ -6456,57 +6079,49 @@ static void DoTVShowTrainerFanClubSpecial(void) state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); - CopyEasyChatWord(gStringVar3, show->fanClubSpecial.words[0]); - if (show->fanClubSpecial.score >= 90) - { - sTVShowState = 1; - } - else if (show->fanClubSpecial.score >= 70) - { - sTVShowState = 2; - } - else if (show->fanClubSpecial.score >= 30) - { - sTVShowState = 3; - } - else - { - sTVShowState = 4; - } - break; - case 1: - TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); - TV_PrintIntToStringVar(2, show->fanClubSpecial.score); - sTVShowState = 5; - break; - case 2: - TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); - TV_PrintIntToStringVar(2, show->fanClubSpecial.score); - sTVShowState = 5; - break; - case 3: - TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); - TV_PrintIntToStringVar(2, show->fanClubSpecial.score); - sTVShowState = 5; - break; - case 4: - TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); - TV_PrintIntToStringVar(2, show->fanClubSpecial.score); - sTVShowState = 5; - break; - case 5: - TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); - CopyEasyChatWord(gStringVar3, show->fanClubSpecial.words[0]); - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + CopyEasyChatWord(gStringVar3, show->fanClubSpecial.words[0]); + if (show->fanClubSpecial.score >= 90) + sTVShowState = 1; + else if (show->fanClubSpecial.score >= 70) + sTVShowState = 2; + else if (show->fanClubSpecial.score >= 30) + sTVShowState = 3; + else + sTVShowState = 4; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + ConvertIntToDecimalString(2, show->fanClubSpecial.score); + sTVShowState = 5; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + ConvertIntToDecimalString(2, show->fanClubSpecial.score); + sTVShowState = 5; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + ConvertIntToDecimalString(2, show->fanClubSpecial.score); + sTVShowState = 5; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + ConvertIntToDecimalString(2, show->fanClubSpecial.score); + sTVShowState = 5; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + CopyEasyChatWord(gStringVar3, show->fanClubSpecial.words[0]); + TVShowDone(); + break; } ShowFieldMessage(sTVTrainerFanClubSpecialTextGroup[state]); } @@ -6522,78 +6137,79 @@ static void DoTVShowTrainerFanClub(void) state = sTVShowState; switch (state) { + case 0: + TVShowConvertInternationalString(gStringVar1, show->trainerFanClub.playerName, show->trainerFanClub.language); + playerId = ((show->common.trainerIdHi << 8) + show->common.trainerIdLo); + switch (playerId % 10) + { case 0: - TVShowConvertInternationalString(gStringVar1, show->trainerFanClub.playerName, show->trainerFanClub.language); - playerId = ((show->common.trainerIdHi << 8) + show->common.trainerIdLo); - switch (playerId % 10) - { - case 0: - sTVShowState = 1; - break; - case 1: - sTVShowState = 2; - break; - case 2: - sTVShowState = 3; - break; - case 3: - sTVShowState = 4; - break; - case 4: - sTVShowState = 5; - break; - case 5: - sTVShowState = 6; - break; - case 6: - sTVShowState = 7; - break; - case 7: - sTVShowState = 8; - break; - case 8: - sTVShowState = 9; - break; - case 9: - sTVShowState = 10; - break; - } + sTVShowState = 1; break; case 1: - sTVShowState = 11; + sTVShowState = 2; break; case 2: - sTVShowState = 11; + sTVShowState = 3; break; case 3: - sTVShowState = 11; + sTVShowState = 4; break; case 4: - sTVShowState = 11; + sTVShowState = 5; break; case 5: - sTVShowState = 11; + sTVShowState = 6; break; case 6: - sTVShowState = 11; + sTVShowState = 7; break; case 7: - sTVShowState = 11; + sTVShowState = 8; break; case 8: - sTVShowState = 11; + sTVShowState = 9; break; case 9: - sTVShowState = 11; + sTVShowState = 10; break; - case 10: - sTVShowState = 11; - break; - case 11: - TVShowConvertInternationalString(gStringVar1, show->trainerFanClub.playerName, show->trainerFanClub.language); - CopyEasyChatWord(gStringVar2, show->trainerFanClub.words[0]); - CopyEasyChatWord(gStringVar3, show->trainerFanClub.words[1]); - TVShowDone(); + } + break; + case 1: + sTVShowState = 11; + break; + case 2: + sTVShowState = 11; + break; + case 3: + sTVShowState = 11; + break; + case 4: + sTVShowState = 11; + break; + case 5: + sTVShowState = 11; + break; + case 6: + sTVShowState = 11; + break; + case 7: + sTVShowState = 11; + break; + case 8: + sTVShowState = 11; + break; + case 9: + sTVShowState = 11; + break; + case 10: + sTVShowState = 11; + break; + case 11: + TVShowConvertInternationalString(gStringVar1, show->trainerFanClub.playerName, show->trainerFanClub.language); + CopyEasyChatWord(gStringVar2, show->trainerFanClub.words[0]); + CopyEasyChatWord(gStringVar3, show->trainerFanClub.words[1]); + TVShowDone(); + break; } ShowFieldMessage(sTVTrainerFanClubTextGroup[state]); } @@ -6602,103 +6218,104 @@ static void DoTVShowSpotTheCuties(void) { TVShow *show; u8 state; - u32 playerId; show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; gSpecialVar_Result = FALSE; + + // For each state, in addition to the switch a message + // is printed from the table at the bottom state = sTVShowState; switch (state) { - case 0: - TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language); - TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); - if (show->cuties.nRibbons < 10) - { - sTVShowState = 1; - } - else if (show->cuties.nRibbons < 20) - { - sTVShowState = 2; - } - else - { - sTVShowState = 3; - } + case SPOTCUTIES_STATE_INTRO: + TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language); + TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); + + // Comments following the intro depend on how many ribbons the pokemon has + if (show->cuties.nRibbons < 10) + sTVShowState = SPOTCUTIES_STATE_RIBBONS_LOW; + else if (show->cuties.nRibbons < 20) + sTVShowState = SPOTCUTIES_STATE_RIBBONS_MID; + else + sTVShowState = SPOTCUTIES_STATE_RIBBONS_HIGH; + break; + case SPOTCUTIES_STATE_RIBBONS_LOW: + case SPOTCUTIES_STATE_RIBBONS_MID: + case SPOTCUTIES_STATE_RIBBONS_HIGH: + TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language); + TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); + ConvertIntToDecimalString(2, show->cuties.nRibbons); + sTVShowState = SPOTCUTIES_STATE_RIBBON_INTRO; + break; + case SPOTCUTIES_STATE_RIBBON_INTRO: + TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); + switch (show->cuties.selectedRibbon) + { + case CHAMPION_RIBBON: + sTVShowState = SPOTCUTIES_STATE_RIBBON_CHAMPION; break; - case 1: - case 2: - case 3: - TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language); - TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); - TV_PrintIntToStringVar(2, show->cuties.nRibbons); - sTVShowState = 4; + case COOL_RIBBON_NORMAL: + case COOL_RIBBON_SUPER: + case COOL_RIBBON_HYPER: + case COOL_RIBBON_MASTER: + sTVShowState = SPOTCUTIES_STATE_RIBBON_COOL; break; - case 4: - TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); - switch (show->cuties.selectedRibbon) - { - case 0: - sTVShowState = 5; - break; - case 1: - case 2: - case 3: - case 4: - sTVShowState = 6; - break; - case 5: - case 6: - case 7: - case 8: - sTVShowState = 7; - break; - case 9: - case 10: - case 11: - case 12: - sTVShowState = 8; - break; - case 13: - case 14: - case 15: - case 16: - sTVShowState = 9; - break; - case 17: - case 18: - case 19: - case 20: - sTVShowState = 10; - break; - case 21: - sTVShowState = 11; - break; - case 22: - sTVShowState = 12; - break; - case 23: - sTVShowState = 13; - break; - case 24: - sTVShowState = 14; - break; - } + case BEAUTY_RIBBON_NORMAL: + case BEAUTY_RIBBON_SUPER: + case BEAUTY_RIBBON_HYPER: + case BEAUTY_RIBBON_MASTER: + sTVShowState = SPOTCUTIES_STATE_RIBBON_BEAUTY; break; - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); - sTVShowState = 15; + case CUTE_RIBBON_NORMAL: + case CUTE_RIBBON_SUPER: + case CUTE_RIBBON_HYPER: + case CUTE_RIBBON_MASTER: + sTVShowState = SPOTCUTIES_STATE_RIBBON_CUTE; break; - case 15: - TVShowDone(); + case SMART_RIBBON_NORMAL: + case SMART_RIBBON_SUPER: + case SMART_RIBBON_HYPER: + case SMART_RIBBON_MASTER: + sTVShowState = SPOTCUTIES_STATE_RIBBON_SMART; + break; + case TOUGH_RIBBON_NORMAL: + case TOUGH_RIBBON_SUPER: + case TOUGH_RIBBON_HYPER: + case TOUGH_RIBBON_MASTER: + sTVShowState = SPOTCUTIES_STATE_RIBBON_TOUGH; + break; + case WINNING_RIBBON: + sTVShowState = SPOTCUTIES_STATE_RIBBON_WINNING; + break; + case VICTORY_RIBBON: + sTVShowState = SPOTCUTIES_STATE_RIBBON_VICTORY; + break; + case ARTIST_RIBBON: + sTVShowState = SPOTCUTIES_STATE_RIBBON_ARTIST; + break; + case EFFORT_RIBBON: + sTVShowState = SPOTCUTIES_STATE_RIBBON_EFFORT; + break; + // No comment is made for any of the gift ribbons. + // If the show is created for a gift ribbon + // then this state will repeat indefinitely + } + break; + case SPOTCUTIES_STATE_RIBBON_CHAMPION: + case SPOTCUTIES_STATE_RIBBON_COOL: + case SPOTCUTIES_STATE_RIBBON_BEAUTY: + case SPOTCUTIES_STATE_RIBBON_CUTE: + case SPOTCUTIES_STATE_RIBBON_SMART: + case SPOTCUTIES_STATE_RIBBON_TOUGH: + case SPOTCUTIES_STATE_RIBBON_WINNING: + case SPOTCUTIES_STATE_RIBBON_VICTORY: + case SPOTCUTIES_STATE_RIBBON_ARTIST: + case SPOTCUTIES_STATE_RIBBON_EFFORT: + TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); + sTVShowState = SPOTCUTIES_STATE_OUTRO; + break; + case SPOTCUTIES_STATE_OUTRO: + TVShowDone(); } ShowFieldMessage(sTVCutiesTextGroup[state]); } @@ -6707,147 +6324,146 @@ static void DoTVShowPokemonNewsBattleFrontier(void) { TVShow *show; u8 state; - u32 playerId; show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; gSpecialVar_Result = FALSE; state = sTVShowState; switch (state) { - case 0: - switch (show->frontier.facility) - { - case 1: - sTVShowState = 1; - break; - case 2: - sTVShowState = 2; - break; - case 3: - sTVShowState = 3; - break; - case 4: - sTVShowState = 4; - break; - case 5: - sTVShowState = 5; - break; - case 6: - sTVShowState = 6; - break; - case 7: - sTVShowState = 7; - break; - case 8: - sTVShowState = 8; - break; - case 9: - sTVShowState = 9; - break; - case 10: - sTVShowState = 10; - break; - case 11: - sTVShowState = 11; - break; - case 12: - sTVShowState = 12; - break; - case 13: - sTVShowState = 13; - break; - } - break; + case 0: + switch (show->frontier.facilityAndMode) + { case 1: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 1; break; case 2: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 16; + sTVShowState = 2; break; case 3: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 15; + sTVShowState = 3; break; case 4: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 15; + sTVShowState = 4; break; case 5: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 5; break; case 6: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 6; break; case 7: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 7; break; case 8: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 8; break; case 9: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 9; break; case 10: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 10; break; case 11: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 11; break; case 12: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; + sTVShowState = 12; break; case 13: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TV_PrintIntToStringVar(1, show->frontier.winStreak); - sTVShowState = 14; - break; - case 14: - StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); - StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); - StringCopy(gStringVar3, gSpeciesNames[show->frontier.species3]); - sTVShowState = 18; - break; - case 15: - StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); - StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); - sTVShowState = 18; - break; - case 16: - StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); - StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); - StringCopy(gStringVar3, gSpeciesNames[show->frontier.species3]); - sTVShowState = 17; - break; - case 17: - StringCopy(gStringVar1, gSpeciesNames[show->frontier.species4]); - sTVShowState = 18; - break; - case 18: - TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); - TVShowDone(); + sTVShowState = 13; break; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 16; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 15; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 15; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 9: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 10: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 11: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 12: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 13: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + ConvertIntToDecimalString(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 14: + StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); + StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); + StringCopy(gStringVar3, gSpeciesNames[show->frontier.species3]); + sTVShowState = 18; + break; + case 15: + StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); + StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); + sTVShowState = 18; + break; + case 16: + StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); + StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); + StringCopy(gStringVar3, gSpeciesNames[show->frontier.species3]); + sTVShowState = 17; + break; + case 17: + StringCopy(gStringVar1, gSpeciesNames[show->frontier.species4]); + sTVShowState = 18; + break; + case 18: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TVShowDone(); + break; } ShowFieldMessage(sTVPokemonNewsBattleFrontierTextGroup[state]); } @@ -6856,79 +6472,78 @@ static void DoTVShowWhatsNo1InHoennToday(void) { TVShow *show; u8 state; - u32 playerId; show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; gSpecialVar_Result = FALSE; state = sTVShowState; switch (state) { + case 0: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + switch (show->numberOne.actionIdx) + { case 0: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - switch (show->numberOne.actionIdx) - { - case 0: - sTVShowState = 1; - break; - case 1: - sTVShowState = 2; - break; - case 2: - sTVShowState = 3; - break; - case 3: - sTVShowState = 4; - break; - case 4: - sTVShowState = 5; - break; - case 5: - sTVShowState = 6; - break; - case 6: - sTVShowState = 7; - break; - } + sTVShowState = 1; break; case 1: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - TV_PrintIntToStringVar(1, show->numberOne.count); - sTVShowState = 8; + sTVShowState = 2; break; case 2: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - TV_PrintIntToStringVar(1, show->numberOne.count); - sTVShowState = 8; + sTVShowState = 3; break; case 3: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - TV_PrintIntToStringVar(1, show->numberOne.count); - sTVShowState = 8; + sTVShowState = 4; break; case 4: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - TV_PrintIntToStringVar(1, show->numberOne.count); - sTVShowState = 8; + sTVShowState = 5; break; case 5: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - TV_PrintIntToStringVar(1, show->numberOne.count); - sTVShowState = 8; + sTVShowState = 6; break; case 6: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - TV_PrintIntToStringVar(1, show->numberOne.count); - sTVShowState = 8; - break; - case 7: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - TV_PrintIntToStringVar(1, show->numberOne.count); - sTVShowState = 8; - break; - case 8: - TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); - TVShowDone(); + sTVShowState = 7; break; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + ConvertIntToDecimalString(1, show->numberOne.count); + sTVShowState = 8; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + ConvertIntToDecimalString(1, show->numberOne.count); + sTVShowState = 8; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + ConvertIntToDecimalString(1, show->numberOne.count); + sTVShowState = 8; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + ConvertIntToDecimalString(1, show->numberOne.count); + sTVShowState = 8; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + ConvertIntToDecimalString(1, show->numberOne.count); + sTVShowState = 8; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + ConvertIntToDecimalString(1, show->numberOne.count); + sTVShowState = 8; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + ConvertIntToDecimalString(1, show->numberOne.count); + sTVShowState = 8; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TVShowDone(); + break; } ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]); } @@ -6938,7 +6553,7 @@ u8 SecretBaseSecrets_GetNumActionsTaken(TVShow *show) u8 i; u8 flagsSet; - for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i ++) + for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i++) { if ((show->secretBaseSecrets.flags >> i) & 1) flagsSet++; @@ -6951,7 +6566,7 @@ static u8 SecretBaseSecrets_GetStateByFlagNumber(TVShow *show, u8 flagId) u8 i; u8 flagsSet; - for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i ++) + for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i++) { if ((show->secretBaseSecrets.flags >> i) & 1) { @@ -6976,130 +6591,112 @@ static void DoTVShowSecretBaseSecrets(void) state = sTVShowState; switch (state) { - case SBSECRETS_STATE_INTRO: - TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - numActions = SecretBaseSecrets_GetNumActionsTaken(show); - if (numActions == 0) - { - sTVShowState = SBSECRETS_STATE_NOTHING_USED1; - } - else - { - show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT1; - sTVSecretBaseSecretsRandomValues[0] = Random() % numActions; - sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); - } + case SBSECRETS_STATE_INTRO: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + numActions = SecretBaseSecrets_GetNumActionsTaken(show); + if (numActions == 0) + { + sTVShowState = SBSECRETS_STATE_NOTHING_USED1; + } + else + { + show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT1; + sTVSecretBaseSecretsRandomValues[0] = Random() % numActions; + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); + } + break; + case SBSECRETS_STATE_DO_NEXT1: + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + numActions = SecretBaseSecrets_GetNumActionsTaken(show); + switch (numActions) + { + case 1: + sTVShowState = SBSECRETS_STATE_NOTHING_USED2; break; - case SBSECRETS_STATE_DO_NEXT1: - TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - numActions = SecretBaseSecrets_GetNumActionsTaken(show); - switch (numActions) + case 2: + show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2; + if (sTVSecretBaseSecretsRandomValues[0] == 0) + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 1); + else + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 0); + break; + default: + for (i = 0; i < 0xFFFF; i++) { - case 1: - sTVShowState = SBSECRETS_STATE_NOTHING_USED2; - break; - case 2: - show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2; - if (sTVSecretBaseSecretsRandomValues[0] == 0) - { - sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 1); - } - else - { - sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 0); - } - break; - default: - for (i = 0; i < 0xFFFF; i ++) - { - sTVSecretBaseSecretsRandomValues[1] = Random() % numActions; - if (sTVSecretBaseSecretsRandomValues[1] != sTVSecretBaseSecretsRandomValues[0]) - { - break; - } - } - show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2; - sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); + sTVSecretBaseSecretsRandomValues[1] = Random() % numActions; + if (sTVSecretBaseSecretsRandomValues[1] != sTVSecretBaseSecretsRandomValues[0]) break; } + show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2; + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); break; - case SBSECRETS_STATE_DO_NEXT2: - TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - numActions = SecretBaseSecrets_GetNumActionsTaken(show); - if (numActions == 2) + } + break; + case SBSECRETS_STATE_DO_NEXT2: + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + numActions = SecretBaseSecrets_GetNumActionsTaken(show); + if (numActions == 2) + { + sTVShowState = SBSECRETS_STATE_NOTHING_USED2; + } + else + { + for (i = 0; i < 0xFFFF; i++) { - sTVShowState = SBSECRETS_STATE_NOTHING_USED2; + sTVSecretBaseSecretsRandomValues[2] = Random() % numActions; + if (sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[0] && sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[1]) + break; } - else - { - for (i = 0; i < 0xFFFF; i ++) - { - sTVSecretBaseSecretsRandomValues[2] = Random() % numActions; - if (sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[0] && sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[1]) - { - break; - } - } - show->secretBaseSecrets.savedState = SBSECRETS_STATE_TOOK_X_STEPS; - sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); - } - break; - case SBSECRETS_STATE_TOOK_X_STEPS: - TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - TV_PrintIntToStringVar(2, show->secretBaseSecrets.stepsInBase); - if (show->secretBaseSecrets.stepsInBase <= 30) - { - sTVShowState = SBSECRETS_STATE_BASE_INTEREST_LOW; - } - else if (show->secretBaseSecrets.stepsInBase <= 100) - { - sTVShowState = SBSECRETS_STATE_BASE_INTEREST_MED; - } - else - { - sTVShowState = SBSECRETS_STATE_BASE_INTEREST_HIGH; - } - break; - case SBSECRETS_STATE_BASE_INTEREST_LOW ... SBSECRETS_STATE_BASE_INTEREST_HIGH: - TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - sTVShowState = SBSECRETS_STATE_OUTRO; - break; - case SBSECRETS_STATE_OUTRO: - TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - TVShowDone(); - break; - // All below states are descriptions of what the player interacted with while in the secret base - case SBSECRETS_STATE_NOTHING_USED1: - sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS; - break; - case SBSECRETS_STATE_NOTHING_USED2: - sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS; - break; - case SBSECRETS_STATE_USED_CHAIR ... SBSECRETS_STATE_USED_MUD_BALL: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case SBSECRETS_STATE_USED_BAG: - StringCopy(gStringVar2, ItemId_GetName(show->secretBaseSecrets.item)); - sTVShowState = show->secretBaseSecrets.savedState; - break; - case SBSECRETS_STATE_USED_CUSHION: - // Randomly decide based on trainer ID if the player hugged or hit the cushion - if (show->common.trainerIdLo & 1) - { - sTVShowState = SBSECRETS_STATE_HUGGED_CUSHION; - } - else - { - sTVShowState = SBSECRETS_STATE_HIT_CUSHION; - } - break; - case SBSECRETS_STATE_HIT_CUSHION ... SBSECRETS_NUM_STATES: - sTVShowState = show->secretBaseSecrets.savedState; - break; + show->secretBaseSecrets.savedState = SBSECRETS_STATE_TOOK_X_STEPS; + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); + } + break; + case SBSECRETS_STATE_TOOK_X_STEPS: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + ConvertIntToDecimalString(2, show->secretBaseSecrets.stepsInBase); + if (show->secretBaseSecrets.stepsInBase <= 30) + sTVShowState = SBSECRETS_STATE_BASE_INTEREST_LOW; + else if (show->secretBaseSecrets.stepsInBase <= 100) + sTVShowState = SBSECRETS_STATE_BASE_INTEREST_MED; + else + sTVShowState = SBSECRETS_STATE_BASE_INTEREST_HIGH; + break; + case SBSECRETS_STATE_BASE_INTEREST_LOW ... SBSECRETS_STATE_BASE_INTEREST_HIGH: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + sTVShowState = SBSECRETS_STATE_OUTRO; + break; + case SBSECRETS_STATE_OUTRO: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + TVShowDone(); + break; + // All below states are descriptions of what the player interacted with while in the secret base + case SBSECRETS_STATE_NOTHING_USED1: + sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS; + break; + case SBSECRETS_STATE_NOTHING_USED2: + sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS; + break; + case SBSECRETS_STATE_USED_CHAIR ... SBSECRETS_STATE_USED_MUD_BALL: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case SBSECRETS_STATE_USED_BAG: + StringCopy(gStringVar2, ItemId_GetName(show->secretBaseSecrets.item)); + sTVShowState = show->secretBaseSecrets.savedState; + break; + case SBSECRETS_STATE_USED_CUSHION: + // Randomly decide based on trainer ID if the player hugged or hit the cushion + if (show->common.trainerIdLo & 1) + sTVShowState = SBSECRETS_STATE_HUGGED_CUSHION; + else + sTVShowState = SBSECRETS_STATE_HIT_CUSHION; + break; + case SBSECRETS_STATE_HIT_CUSHION ... SBSECRETS_NUM_STATES: + sTVShowState = show->secretBaseSecrets.savedState; + break; } ShowFieldMessage(sTVSecretBaseSecretsTextGroup[state]); } @@ -7114,84 +6711,68 @@ static void DoTVShowSafariFanClub(void) state = sTVShowState; switch (state) { - case 0: - if (show->safariFanClub.nMonsCaught == 0) - { - sTVShowState = 6; - } - else if (show->safariFanClub.nMonsCaught < 4) - { - sTVShowState = 5; - } - else - { - sTVShowState = 1; - } - break; - case 1: - TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); - TV_PrintIntToStringVar(1, show->safariFanClub.nMonsCaught); - if (show->safariFanClub.nPkblkUsed == 0) - { - sTVShowState = 3; - } - else - { - sTVShowState = 2; - } - break; - case 2: - TV_PrintIntToStringVar(1, show->safariFanClub.nPkblkUsed); - sTVShowState = 4; - break; - case 3: - sTVShowState = 4; - break; - case 4: - TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); - sTVShowState = 10; - break; - case 5: - TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); - TV_PrintIntToStringVar(1, show->safariFanClub.nMonsCaught); - if (show->safariFanClub.nPkblkUsed == 0) - { - sTVShowState = 8; - } - else - { - sTVShowState = 7; - } - break; - case 6: - TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); - if (show->safariFanClub.nPkblkUsed == 0) - { - sTVShowState = 8; - } - else - { - sTVShowState = 7; - } - break; - case 7: - TV_PrintIntToStringVar(1, show->safariFanClub.nPkblkUsed); - sTVShowState = 9; - break; - case 8: - sTVShowState = 9; - break; - case 9: - TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); - sTVShowState = 10; - break; - case 10: - TVShowDone(); + case 0: + if (show->safariFanClub.nMonsCaught == 0) + sTVShowState = 6; + else if (show->safariFanClub.nMonsCaught < 4) + sTVShowState = 5; + else + sTVShowState = 1; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + ConvertIntToDecimalString(1, show->safariFanClub.nMonsCaught); + if (show->safariFanClub.nPkblkUsed == 0) + sTVShowState = 3; + else + sTVShowState = 2; + break; + case 2: + ConvertIntToDecimalString(1, show->safariFanClub.nPkblkUsed); + sTVShowState = 4; + break; + case 3: + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + sTVShowState = 10; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + ConvertIntToDecimalString(1, show->safariFanClub.nMonsCaught); + if (show->safariFanClub.nPkblkUsed == 0) + sTVShowState = 8; + else + sTVShowState = 7; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + if (show->safariFanClub.nPkblkUsed == 0) + sTVShowState = 8; + else + sTVShowState = 7; + break; + case 7: + ConvertIntToDecimalString(1, show->safariFanClub.nPkblkUsed); + sTVShowState = 9; + break; + case 8: + sTVShowState = 9; + break; + case 9: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + sTVShowState = 10; + break; + case 10: + TVShowDone(); + break; } ShowFieldMessage(sTVSafariFanClubTextGroup[state]); } -static void DoTVShowPokemonContestLiveUpdates2(void) +// This show is a version of Contest Live Updates for the Lilycove Contest Lady +static void DoTVShowLilycoveContestLady(void) { TVShow *show; u8 state; @@ -7201,33 +6782,27 @@ static void DoTVShowPokemonContestLiveUpdates2(void) state = sTVShowState; switch (state) { - case 0: - BufferContestName(gStringVar1, show->contestLiveUpdates2.contestCategory); - if (show->contestLiveUpdates2.pokeblockState == 1) - { - sTVShowState = 1; - } - else if (show->contestLiveUpdates2.pokeblockState == 0) - { - sTVShowState = 2; - } - else - { - sTVShowState = 3; - } - break; - case 1: - case 2: - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates2.playerName, show->contestLiveUpdates2.language); - case 3: - TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates2.nickname, show->contestLiveUpdates2.pokemonNameLanguage); - TVShowDone(); - break; + case CONTESTLADYLIVE_STATE_INTRO: + BufferContestName(gStringVar1, show->contestLady.contestCategory); + if (show->contestLady.pokeblockState == CONTEST_LADY_GOOD) + sTVShowState = CONTESTLADYLIVE_STATE_WON; + else if (show->contestLady.pokeblockState == CONTEST_LADY_NORMAL) + sTVShowState = CONTESTLADYLIVE_STATE_LOST; + else // CONTEST_LADY_BAD + sTVShowState = CONTESTLADYLIVE_STATE_LOST_BADLY; + break; + case CONTESTLADYLIVE_STATE_WON: + case CONTESTLADYLIVE_STATE_LOST: + TVShowConvertInternationalString(gStringVar3, show->contestLady.playerName, show->contestLady.language); + case CONTESTLADYLIVE_STATE_LOST_BADLY: + TVShowConvertInternationalString(gStringVar2, show->contestLady.nickname, show->contestLady.pokemonNameLanguage); + TVShowDone(); + break; } - ShowFieldMessage(sTVPokemonContestLiveUpdates2TextGroup[state]); + ShowFieldMessage(sTVLilycoveContestLadyTextGroup[state]); } -void TVShowDone(void) +static void TVShowDone(void) { gSpecialVar_Result = TRUE; sTVShowState = 0; diff --git a/src/union_room.c b/src/union_room.c index 479792a7c6..8d02a260d9 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -253,10 +253,10 @@ static bool32 UR_PrintFieldMessage(const u8 *); static s32 GetChatLeaderActionRequestMessage(u8 *, u32, u16 *, struct WirelessLink_URoom *); static void Task_InitUnionRoom(u8 taskId); static bool8 AreGnameUnameDifferent(struct WirelessGnameUnamePair*, const struct WirelessGnameUnamePair*); -static void ItemPrintFunc_PossibleGroupMembers(u8, s32, u8); -static void ListMenuItemPrintFunc_UnionRoomGroups(u8, s32, u8); -static void TradeBoardListMenuItemPrintFunc(u8, s32, u8); -static void nullsub_14(u8, s32, u8); +static void ItemPrintFunc_PossibleGroupMembers(u8 windowId, u32 id, u8 y); +static void ListMenuItemPrintFunc_UnionRoomGroups(u8 windowId, u32 id, u8 y); +static void TradeBoardListMenuItemPrintFunc(u8 windowId, u32 id, u8 y); +static void nullsub_14(u8 windowId, u32 id, u8 y); #include "data/union_room.h" @@ -319,8 +319,13 @@ static void StringExpandPlaceholders_AwaitingCommFromAnother(u8 *dst, u8 caseId) case ACTIVITY_CONTEST_CUTE: case ACTIVITY_CONTEST_SMART: case ACTIVITY_CONTEST_TOUGH: - // UB: argument *dst isn't used, instead it always prints to gStringVar4 + // BUG: argument *dst isn't used, instead it always prints to gStringVar4 + // not an issue in practice since Gamefreak never used any other arguments here besides gStringVar4 + #ifndef BUGFIX StringExpandPlaceholders(gStringVar4, sText_AwaitingCommunication); + #else + StringExpandPlaceholders(dst, sText_AwaitingCommunication); + #endif break; } } @@ -830,7 +835,7 @@ static bool8 Leader_SetStateIfMemberListChanged(struct WirelessLink_Leader *data return FALSE; } -static void ItemPrintFunc_PossibleGroupMembers(u8 windowId, s32 id, u8 y) +static void ItemPrintFunc_PossibleGroupMembers(u8 windowId, u32 id, u8 y) { struct WirelessLink_Leader *data = sWirelessLinkMain.leader; u8 colorIdx = UR_COLOR_DKE_WHT_LTE; @@ -1358,7 +1363,7 @@ static u8 URoomGroupListGetTextColor(struct WirelessLink_Group *data, u32 id) return UR_COLOR_DKE_WHT_LTE; } -static void ListMenuItemPrintFunc_UnionRoomGroups(u8 windowId, s32 id, u8 y) +static void ListMenuItemPrintFunc_UnionRoomGroups(u8 windowId, u32 id, u8 y) { struct WirelessLink_Group *data = sWirelessLinkMain.group; u8 colorId = URoomGroupListGetTextColor(data, id); @@ -2986,7 +2991,7 @@ static void Task_RunUnionRoom(u8 taskId) uroom->state = UR_STATE_START_ACTIVITY_FADE; break; case UR_STATE_START_ACTIVITY_FADE: - BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); uroom->state = UR_STATE_START_ACTIVITY; break; case UR_STATE_START_ACTIVITY: @@ -3050,7 +3055,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case UR_STATE_REGISTER_SELECT_MON_FADE: - BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); uroom->state = UR_STATE_REGISTER_SELECT_MON; break; case UR_STATE_REGISTER_SELECT_MON: @@ -3769,9 +3774,9 @@ static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str case UR_COLOR_DKE_WHT_LTE: printerTemplate.letterSpacing = 0; printerTemplate.lineSpacing = 0; - printerTemplate.fgColor = TEXT_COLOR_DARK_GREY; + printerTemplate.fgColor = TEXT_COLOR_DARK_GRAY; printerTemplate.bgColor = TEXT_COLOR_WHITE; - printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GREY; + printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GRAY; break; case UR_COLOR_RED_WHT_LTR: printerTemplate.letterSpacing = 0; @@ -3792,14 +3797,14 @@ static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str printerTemplate.lineSpacing = 0; printerTemplate.fgColor = TEXT_COLOR_WHITE; printerTemplate.bgColor = TEXT_COLOR_WHITE; - printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GREY; + printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GRAY; break; case UR_COLOR_WHT_DKE_LTE: printerTemplate.letterSpacing = 0; printerTemplate.lineSpacing = 0; printerTemplate.fgColor = TEXT_COLOR_WHITE; - printerTemplate.bgColor = TEXT_COLOR_DARK_GREY; - printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GREY; + printerTemplate.bgColor = TEXT_COLOR_DARK_GRAY; + printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GRAY; break; case UR_COLOR_GRN_DN6_LTB: printerTemplate.letterSpacing = 0; @@ -4069,9 +4074,8 @@ static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 *main0, } } -void nullsub_14(u8 windowId, s32 itemId, u8 y) +void nullsub_14(u8 windowId, u32 itemId, u8 y) { - } static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * uname, u8 colorIdx) @@ -4095,7 +4099,7 @@ static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct GFtgtGname * gname } } -static void TradeBoardListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y) +static void TradeBoardListMenuItemPrintFunc(u8 windowId, u32 itemId, u8 y) { struct WirelessLink_Leader *data = sWirelessLinkMain.leader; struct GFtgtGname *rfu; @@ -4415,7 +4419,7 @@ static void HandleCancelActivity(bool32 setData) static void UR_EnableScriptContext2AndFreezeObjectEvents(void) { ScriptContext2_Enable(); - ScriptFreezeObjectEvents(); + FreezeObjects_WaitForPlayer(); } static u8 GetActivePartnerSpriteGenderParam(struct WirelessLink_URoom *data) diff --git a/src/union_room_battle.c b/src/union_room_battle.c index b9ddd74a75..2d1274f6ee 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -49,7 +49,7 @@ static const struct WindowTemplate sWindowTemplates[] = { DUMMY_WIN_TEMPLATE }; -static const u8 sTextColors[] = { TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY }; +static const u8 sTextColors[] = { TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY }; static void CB2_SetUpPartiesAndStartBattle(void) { @@ -143,7 +143,7 @@ void CB2_UnionRoomBattle(void) } break; case 2: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); ShowBg(0); gMain.state++; break; @@ -169,7 +169,7 @@ void CB2_UnionRoomBattle(void) if (gBlockRecvBuffer[0][0] == (ACTIVITY_ACCEPT | IN_UNION_ROOM) && gBlockRecvBuffer[1][0] == (ACTIVITY_ACCEPT | IN_UNION_ROOM)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gMain.state = 50; } else diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 75464529f8..3167563ade 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -930,8 +930,8 @@ static void CB2_LoadInterface(void) RunDisplaySubtasks(); if (!IsDisplaySubtask0Active()) { - BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); - BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); SetVBlankCallback(VBlankCB_UnionRoomChatMain); gMain.state++; } @@ -1567,7 +1567,7 @@ static void Chat_SaveAndExit(void) sChat->funcState = 12; break; case 12: - BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); sChat->funcState = 13; break; case 13: @@ -2157,8 +2157,8 @@ static void FreeDisplay(void) static void InitDisplay(struct UnionRoomChatDisplay *display) { - display->yesNoMenuWindowId = 0xFF; - display->messageWindowId = 0xFF; + display->yesNoMenuWindowId = WINDOW_NONE; + display->messageWindowId = WINDOW_NONE; display->currLine = 0; } @@ -2724,7 +2724,7 @@ static void AddYesNoMenuAt(u8 left, u8 top, u8 initialCursorPos) template.paletteNum = 14; template.baseBlock = 0x52; sDisplay->yesNoMenuWindowId = AddWindow(&template); - if (sDisplay->yesNoMenuWindowId != 0xFF) + if (sDisplay->yesNoMenuWindowId != WINDOW_NONE) { FillWindowPixelBuffer(sDisplay->yesNoMenuWindowId, PIXEL_FILL(1)); PutWindowTilemap(sDisplay->yesNoMenuWindowId); @@ -2737,7 +2737,7 @@ static void AddYesNoMenuAt(u8 left, u8 top, u8 initialCursorPos) static void HideYesNoMenuWindow(void) { - if (sDisplay->yesNoMenuWindowId != 0xFF) + if (sDisplay->yesNoMenuWindowId != WINDOW_NONE) { ClearStdWindowAndFrameToTransparent(sDisplay->yesNoMenuWindowId, FALSE); ClearWindowTilemap(sDisplay->yesNoMenuWindowId); @@ -2746,10 +2746,10 @@ static void HideYesNoMenuWindow(void) static void DestroyYesNoMenuWindow(void) { - if (sDisplay->yesNoMenuWindowId != 0xFF) + if (sDisplay->yesNoMenuWindowId != WINDOW_NONE) { RemoveWindow(sDisplay->yesNoMenuWindowId); - sDisplay->yesNoMenuWindowId = 0xFF; + sDisplay->yesNoMenuWindowId = WINDOW_NONE; } } @@ -2778,7 +2778,7 @@ static void AddStdMessageWindow(int msgId, u16 bg0vofs) sDisplay->messageWindowId = AddWindow(&template); windowId = sDisplay->messageWindowId; - if (sDisplay->messageWindowId == 0xFF) + if (sDisplay->messageWindowId == WINDOW_NONE) return; if (sDisplayStdMessages[msgId].hasPlaceholders) @@ -2828,7 +2828,7 @@ static void AddStdMessageWindow(int msgId, u16 bg0vofs) static void HideStdMessageWindow(void) { - if (sDisplay->messageWindowId != 0xFF) + if (sDisplay->messageWindowId != WINDOW_NONE) { ClearStdWindowAndFrameToTransparent(sDisplay->messageWindowId, FALSE); ClearWindowTilemap(sDisplay->messageWindowId); @@ -2839,10 +2839,10 @@ static void HideStdMessageWindow(void) static void DestroyStdMessageWindow(void) { - if (sDisplay->messageWindowId != 0xFF) + if (sDisplay->messageWindowId != WINDOW_NONE) { RemoveWindow(sDisplay->messageWindowId); - sDisplay->messageWindowId = 0xFF; + sDisplay->messageWindowId = WINDOW_NONE; } } @@ -2984,7 +2984,7 @@ static void HideKeyboardSwapMenu(void) static void PrintChatMessage(u16 row, u8 *str, u8 colorIdx) { - // colorIdx: 0 = grey, 1 = red, 2 = green, 3 = blue + // colorIdx: 0 = gray, 1 = red, 2 = green, 3 = blue u8 color[3]; color[0] = TEXT_COLOR_WHITE; color[1] = colorIdx * 2 + 2; @@ -3011,8 +3011,8 @@ static void ResetGpuBgState(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(64, 240)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 144)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(64, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, DISPLAY_HEIGHT - 16)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); @@ -3167,14 +3167,14 @@ static void MoveKeyboardCursor(void) if (page != UNION_ROOM_KB_PAGE_REGISTER) { StartSpriteAnim(sSprites->keyboardCursor, 0); - sSprites->keyboardCursor->pos1.x = x * 8 + 10; - sSprites->keyboardCursor->pos1.y = y * 12 + 24; + sSprites->keyboardCursor->x = x * 8 + 10; + sSprites->keyboardCursor->y = y * 12 + 24; } else { StartSpriteAnim(sSprites->keyboardCursor, 2); - sSprites->keyboardCursor->pos1.x = 24; - sSprites->keyboardCursor->pos1.y = y * 12 + 24; + sSprites->keyboardCursor->x = 24; + sSprites->keyboardCursor->y = y * 12 + 24; } } @@ -3231,7 +3231,7 @@ static void SpriteCB_TextEntryCursor(struct Sprite *sprite) else { sprite->invisible = FALSE; - sprite->pos1.x = pos * 8 + 76; + sprite->x = pos * 8 + 76; } } @@ -3240,8 +3240,8 @@ static void SpriteCB_TextEntryArrow(struct Sprite *sprite) if (++sprite->data[0] > 4) { sprite->data[0] = 0; - if (++sprite->pos2.x > 4) - sprite->pos2.x = 0; + if (++sprite->x2 > 4) + sprite->x2 = 0; } } diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c index c012fd84d3..671290e21e 100644 --- a/src/union_room_player_avatar.c +++ b/src/union_room_player_avatar.c @@ -77,18 +77,27 @@ static const u8 sNextFacingDirection[] = { [DIR_EAST] = DIR_NORTH }; -// Local id 1 is the Nurse/Attendant, 2-9 are link players -static const u8 sUnionRoomLocalIds[] = { 9, 8, 7, 2, 6, 5, 4, 3 }; +static const u8 sUnionRoomLocalIds[] = { + LOCALID_UNION_ROOM_PLAYER_1, + LOCALID_UNION_ROOM_PLAYER_2, + LOCALID_UNION_ROOM_PLAYER_3, + LOCALID_UNION_ROOM_PLAYER_4, + LOCALID_UNION_ROOM_PLAYER_5, + LOCALID_UNION_ROOM_PLAYER_6, + LOCALID_UNION_ROOM_PLAYER_7, + LOCALID_UNION_ROOM_PLAYER_8 +}; -static const u16 sUnknown[] = { - 0x2BF, - 0x2C0, - 0x2C1, - 0x2C2, - 0x2C3, - 0x2C4, - 0x2C5, - 0x2C6 +// Unused +static const u16 sHidePlayerFlags[] = { + FLAG_HIDE_UNION_ROOM_PLAYER_1, + FLAG_HIDE_UNION_ROOM_PLAYER_2, + FLAG_HIDE_UNION_ROOM_PLAYER_3, + FLAG_HIDE_UNION_ROOM_PLAYER_4, + FLAG_HIDE_UNION_ROOM_PLAYER_5, + FLAG_HIDE_UNION_ROOM_PLAYER_6, + FLAG_HIDE_UNION_ROOM_PLAYER_7, + FLAG_HIDE_UNION_ROOM_PLAYER_8 }; static const u8 sMovement_UnionPlayerExit[2] = { diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index b92b34fbd2..3459dde858 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -5,7 +5,7 @@ #include "sound.h" ALIGNED(4) -static const u8 sUnknown_08616124[] = {1, 2, 4}; +static const u8 sScrollDistances[] = {1, 2, 4}; static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("graphics/fonts/font6.fwjpnfont"); static void DecompressGlyphFont6(u16); @@ -135,7 +135,7 @@ u16 Font6Func(struct TextPrinter *textPrinter) } DecompressGlyphFont6(char_); CopyGlyphToWindow(textPrinter); - textPrinter->printerTemplate.currentX += gUnknown_03002F90.width + textPrinter->printerTemplate.letterSpacing; + textPrinter->printerTemplate.currentX += gCurGlyph.width + textPrinter->printerTemplate.letterSpacing; return 0; case 1: if (TextPrinterWait(textPrinter)) @@ -164,15 +164,15 @@ u16 Font6Func(struct TextPrinter *textPrinter) case 4: if (textPrinter->scrollDistance) { - if (textPrinter->scrollDistance < sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed]) + if (textPrinter->scrollDistance < sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed]) { ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance = 0; } else { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor)); - textPrinter->scrollDistance -= sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed]; + ScrollWindow(textPrinter->printerTemplate.windowId, 0, sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor)); + textPrinter->scrollDistance -= sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed]; } CopyWindowToVram(textPrinter->printerTemplate.windowId, 2); } @@ -206,12 +206,12 @@ static void DecompressGlyphFont6(u16 glyph) const u16 *glyphs; glyphs = sFont6BrailleGlyphs + 0x100 * (glyph / 8) + 0x10 * (glyph % 8); - DecompressGlyphTile(glyphs, (u16 *)gUnknown_03002F90.unk0); - DecompressGlyphTile(glyphs + 0x8, (u16 *)(gUnknown_03002F90.unk20)); - DecompressGlyphTile(glyphs + 0x80, (u16 *)(gUnknown_03002F90.unk40)); - DecompressGlyphTile(glyphs + 0x88, (u16 *)(gUnknown_03002F90.unk60)); - gUnknown_03002F90.width = 0x10; - gUnknown_03002F90.height = 0x10; + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom); + DecompressGlyphTile(glyphs + 0x88, gCurGlyph.gfxBufferBottom + 8); + gCurGlyph.width = 0x10; + gCurGlyph.height = 0x10; } u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese) diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index b4ccbfe064..cdcdfc5da6 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -486,7 +486,7 @@ static void LoadUsePokeblockMenu(void) switch (sInfo->mainState) { case 0: - sMenu->curMonSpriteId = 0xFF; + sMenu->curMonSpriteId = SPRITE_NONE; InitConditionGraphData(&sMenu->graph); sInfo->mainState++; break; @@ -569,7 +569,7 @@ static void ShowUsePokeblockMenu(void) switch (sInfo->mainState) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); SetVBlankCallback(VBlankCB_UsePokeblockMenu); ShowBg(0); ShowBg(1); @@ -695,7 +695,7 @@ static void FeedPokeblockToMon(void) gPokeblockMonId = GetPartyIdFromSelectionId(sMenu->info.curSelection); sExitCallback = sInfo->exitCallback; sPokeblock = sInfo->pokeblock; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sInfo->mainState++; break; case 1: @@ -708,7 +708,7 @@ static void FeedPokeblockToMon(void) FREE_AND_SET_NULL(sMenu); FreeAllWindowBuffers(); gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; - CB2_PreparePokeblockFeedScene(); + PreparePokeblockFeedScene(); } break; } @@ -739,7 +739,7 @@ static void ShowUsePokeblockMenuForResults(void) case 2: break; case 3: - BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); sInfo->mainState++; break; case 4: @@ -751,7 +751,7 @@ static void ShowUsePokeblockMenuForResults(void) break; case 5: SetVBlankCallback(VBlankCB_UsePokeblockMenu); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sInfo->mainState++; break; case 6: @@ -827,7 +827,7 @@ static void CloseUsePokeblockMenu(void) switch (sInfo->mainState) { case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); sInfo->mainState++; break; case 1: @@ -853,7 +853,7 @@ static void CloseUsePokeblockMenu(void) for (i = 0; i < ARRAY_COUNT(sMenu->condition); i++) DestroySprite(sMenu->condition[i]); - if (sMenu->curMonSpriteId != 0xFF) + if (sMenu->curMonSpriteId != SPRITE_NONE) DestroySprite(&gSprites[sMenu->curMonSpriteId]); SetVBlankCallback(NULL); @@ -1143,9 +1143,9 @@ static void LoadAndCreateUpDownSprites(void) static void SpriteCB_UpDown(struct Sprite *sprite) { if (sprite->data[0] < 6) - sprite->pos2.y -= 2; + sprite->y2 -= 2; else if (sprite->data[0] < 12) - sprite->pos2.y += 2; + sprite->y2 += 2; if (++sprite->data[0] > 60) { @@ -1215,7 +1215,7 @@ static void UpdateMonPic(u8 loadId) struct SpriteSheet spriteSheet; struct SpritePalette spritePal; - if (sMenu->curMonSpriteId == 0xFF) + if (sMenu->curMonSpriteId == SPRITE_NONE) { LoadConditionMonPicTemplate(&spriteSheet, &spriteTemplate, &spritePal); spriteSheet.data = sMenu->partySheets[loadId]; @@ -1228,20 +1228,20 @@ static void UpdateMonPic(u8 loadId) { FreeSpriteTilesByTag(TAG_CONDITION_MON); FreeSpritePaletteByTag(TAG_CONDITION_MON); - sMenu->curMonSpriteId = 0xFF; + sMenu->curMonSpriteId = SPRITE_NONE; } else { sMenu->curMonSpriteId = spriteId; gSprites[sMenu->curMonSpriteId].callback = SpriteCB_MonPic; - gSprites[sMenu->curMonSpriteId].pos2.y -= 34; + gSprites[sMenu->curMonSpriteId].y2 -= 34; sMenu->curMonTileStart = (void*)(OBJ_VRAM0 + (sMenu->curMonSheet * 32)); sMenu->curMonPalette = (sMenu->curMonPalette * 16) + 0x100; } } else { - Dma3CopyLarge16_(sMenu->partySheets[loadId], sMenu->curMonTileStart, 0x800); + Dma3CopyLarge16_(sMenu->partySheets[loadId], sMenu->curMonTileStart, MON_PIC_SIZE); LoadPalette(sMenu->partyPalettes[loadId], sMenu->curMonPalette, 32); } } @@ -1574,7 +1574,7 @@ static bool8 LoadNewSelection_MonToMon(void) static void SpriteCB_MonPic(struct Sprite *sprite) { - sprite->pos1.x = sMenu->curMonXOffset + 38; + sprite->x = sMenu->curMonXOffset + 38; } static void SpriteCB_SelectionIconPokeball(struct Sprite *sprite) @@ -1661,13 +1661,13 @@ static bool8 LoadConditionTitle(void) // Literally the word "Condition", the title block that appears over the mon icon static void SpriteCB_Condition(struct Sprite *sprite) { - s16 prevX = sprite->pos1.x; + s16 prevX = sprite->x; - sprite->pos1.x += sprite->data[0]; - if ((prevX <= sprite->data[1] && sprite->pos1.x >= sprite->data[1]) - || (prevX >= sprite->data[1] && sprite->pos1.x <= sprite->data[1])) + sprite->x += sprite->data[0]; + if ((prevX <= sprite->data[1] && sprite->x >= sprite->data[1]) + || (prevX >= sprite->data[1] && sprite->x <= sprite->data[1])) { - sprite->pos1.x = sprite->data[1]; + sprite->x = sprite->data[1]; sprite->callback = SpriteCallbackDummy; } } diff --git a/src/util.c b/src/util.c index 8aa54857a9..a4e3fa4cfc 100644 --- a/src/util.c +++ b/src/util.c @@ -2,6 +2,7 @@ #include "util.h" #include "sprite.h" #include "palette.h" +#include "constants/rgb.h" const u32 gBitTable[] = { @@ -271,8 +272,8 @@ void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor) s8 g = data1->g; s8 b = data1->b; struct PlttData *data2 = (struct PlttData *)&blendColor; - gPlttBufferFaded[index] = ((r + (((data2->r - r) * coeff) >> 4)) << 0) - | ((g + (((data2->g - g) * coeff) >> 4)) << 5) - | ((b + (((data2->b - b) * coeff) >> 4)) << 10); + gPlttBufferFaded[index] = RGB(r + (((data2->r - r) * coeff) >> 4), + g + (((data2->g - g) * coeff) >> 4), + b + (((data2->b - b) * coeff) >> 4)); } } diff --git a/src/wallclock.c b/src/wallclock.c index c38dd99e38..6f9bc02aee 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -147,7 +147,7 @@ static const struct SpritePalette sSpritePalettes_Clock[] = static const struct OamData sOam_ClockHand = { - .y = 160, + .y = DISPLAY_HEIGHT, .shape = SPRITE_SHAPE(64x64), .size = SPRITE_SIZE(64x64), .priority = 1, @@ -199,7 +199,7 @@ static const struct SpriteTemplate sSpriteTemplate_HourHand = static const struct OamData sOam_PeriodIndicator = { - .y = 160, + .y = DISPLAY_HEIGHT, .shape = SPRITE_SHAPE(16x16), .size = SPRITE_SIZE(16x16), .priority = 3, @@ -665,7 +665,7 @@ static void LoadWallClockGraphics(void) static void WallClockInit(void) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(VBlankCB_WallClock); SetMainCallback2(CB2_WallClock); @@ -856,7 +856,7 @@ static void Task_SetClock_HandleConfirmInput(u8 taskId) static void Task_SetClock_Confirmed(u8 taskId) { RtcInitLocalTimeOffset(gTasks[taskId].tHours, gTasks[taskId].tMinutes); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_SetClock_Exit; } @@ -884,7 +884,7 @@ static void Task_ViewClock_HandleInput(u8 taskId) static void Task_ViewClock_FadeOut(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_ViewClock_Exit; } @@ -1029,8 +1029,8 @@ static void SpriteCB_MinuteHand(struct Sprite *sprite) if (y > 128) y |= 0xff00; - sprite->pos2.x = x; - sprite->pos2.y = y; + sprite->x2 = x; + sprite->y2 = y; } static void SpriteCB_HourHand(struct Sprite *sprite) @@ -1049,8 +1049,8 @@ static void SpriteCB_HourHand(struct Sprite *sprite) if (y > 128) y |= 0xff00; - sprite->pos2.x = x; - sprite->pos2.y = y; + sprite->x2 = x; + sprite->y2 = y; } static void SpriteCB_PMIndicator(struct Sprite *sprite) @@ -1077,8 +1077,8 @@ static void SpriteCB_PMIndicator(struct Sprite *sprite) sprite->data[1]--; } } - sprite->pos2.x = Cos2(sprite->data[1]) * 30 / 0x1000; - sprite->pos2.y = Sin2(sprite->data[1]) * 30 / 0x1000; + sprite->x2 = Cos2(sprite->data[1]) * 30 / 0x1000; + sprite->y2 = Sin2(sprite->data[1]) * 30 / 0x1000; } static void SpriteCB_AMIndicator(struct Sprite *sprite) @@ -1105,6 +1105,6 @@ static void SpriteCB_AMIndicator(struct Sprite *sprite) sprite->data[1]--; } } - sprite->pos2.x = Cos2(sprite->data[1]) * 30 / 0x1000; - sprite->pos2.y = Sin2(sprite->data[1]) * 30 / 0x1000; + sprite->x2 = Cos2(sprite->data[1]) * 30 / 0x1000; + sprite->y2 = Sin2(sprite->data[1]) * 30 / 0x1000; } diff --git a/src/wild_encounter.c b/src/wild_encounter.c index e2bd8a5428..330a0014b9 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -110,7 +110,7 @@ static bool8 CheckFeebas(void) if (Random() % 100 > 49) // 50% chance of encountering Feebas return FALSE; - FeebasSeedRng(gSaveBlock1Ptr->easyChatPairs[0].unk2); + FeebasSeedRng(gSaveBlock1Ptr->dewfordTrends[0].rand); for (i = 0; i != NUM_FEEBAS_SPOTS;) { feebasSpots[i] = FeebasRandom() % 447; @@ -164,7 +164,7 @@ static u8 ChooseWildMonIndex_Land(void) return 8; else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_8 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_9) return 9; - else if (rand == ENCOUNTER_CHANCE_LAND_MONS_SLOT_9) + else if (rand >= ENCOUNTER_CHANCE_LAND_MONS_SLOT_9 && rand < ENCOUNTER_CHANCE_LAND_MONS_SLOT_10) return 10; else return 11; @@ -217,7 +217,7 @@ static u8 ChooseWildMonIndex_Fishing(u8 rod) wildMonIndex = 7; if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_7 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8) wildMonIndex = 8; - if (rand == ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8) + if (rand >= ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_8 && rand < ENCOUNTER_CHANCE_FISHING_MONS_SUPER_ROD_SLOT_9) wildMonIndex = 9; break; } diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index 87b200f14a..dbc71d6345 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -174,8 +174,8 @@ static void CB2_InitWirelessCommunicationScreen(void) SetVBlankCallback(NULL); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); - SetBgTilemapBuffer(1, Alloc(0x800)); - SetBgTilemapBuffer(0, Alloc(0x800)); + SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE)); + SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE)); DecompressAndLoadBgGfxUsingHeap(1, sBgTiles_Gfx, 0, 0, 0); CopyToBgTilemapBuffer(1, sBgTiles_Tilemap, 0, 0); InitWindows(sWindowTemplates); @@ -260,7 +260,7 @@ static void Task_WirelessCommunicationScreen(u8 taskId) gTasks[taskId].tState++; break; case 1: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, 0); ShowBg(1); CopyBgTilemapBufferToVram(0); ShowBg(0); @@ -296,7 +296,7 @@ static void Task_WirelessCommunicationScreen(u8 taskId) WCSS_CyclePalette(&gTasks[taskId].data[7], &gTasks[taskId].data[8]); break; case 4: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, 0); gTasks[taskId].tState++; break; case 5: @@ -319,13 +319,13 @@ static void WCSS_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * { case COLORMODE_NORMAL: color[0] = TEXT_COLOR_TRANSPARENT; - color[1] = TEXT_COLOR_DARK_GREY; - color[2] = TEXT_COLOR_LIGHT_GREY; + color[1] = TEXT_COLOR_DARK_GRAY; + color[2] = TEXT_COLOR_LIGHT_GRAY; break; case COLORMODE_WHITE_LGRAY: color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_COLOR_WHITE; - color[2] = TEXT_COLOR_LIGHT_GREY; + color[2] = TEXT_COLOR_LIGHT_GRAY; break; case COLORMODE_RED: color[0] = TEXT_COLOR_TRANSPARENT; @@ -340,7 +340,7 @@ static void WCSS_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * case COLORMODE_WHITE_DGRAY: color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_COLOR_WHITE; - color[2] = TEXT_COLOR_DARK_GREY; + color[2] = TEXT_COLOR_DARK_GRAY; break; } diff --git a/sym_common.txt b/sym_common.txt index 02fde8971a..1525d8aec8 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -9,17 +9,17 @@ gUnneededFireRedVariable: gTransparentTileNumber: .space 1 .align 4 -gUnknown_03002F70: +gWindowBgTilemapBuffers: .space 16 @ ../gflib/text.o .align 4 gFonts: .space 4 .align 2 -gUnknown_03002F84: +gDisableTextPrinters: .space 1 .align 4 -gUnknown_03002F90: +gCurGlyph: .space 132 .align 2 gTextFlags: diff --git a/sym_ewram.txt b/sym_ewram.txt index 88c4461cb0..59829eff49 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -91,7 +91,7 @@ .include "src/region_map.o" .include "src/decoration.o" .include "src/slot_machine.o" - .include "src/battle_ai_script_commands.o" + .include "src/battle_ai_main.o" .include "src/fldeff_misc.o" .include "src/pokeblock.o" .include "src/field_specials.o" diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile index 77df291527..dd48a87597 100644 --- a/tools/aif2pcm/Makefile +++ b/tools/aif2pcm/Makefile @@ -6,12 +6,18 @@ LIBS = -lm SRCS = main.c extended.c +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + .PHONY: all clean -all: aif2pcm +all: aif2pcm$(EXE) @: -aif2pcm: $(SRCS) +aif2pcm$(EXE): $(SRCS) $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) clean: diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c index cd5ac4a505..3dad6fcf80 100644 --- a/tools/aif2pcm/main.c +++ b/tools/aif2pcm/main.c @@ -351,6 +351,12 @@ const int gDeltaEncodingTable[] = { -64, -49, -36, -25, -16, -9, -4, -1, }; +#define POSITIVE_DELTAS_START 0 +#define POSITIVE_DELTAS_END 8 + +#define NEGATIVE_DELTAS_START 8 +#define NEGATIVE_DELTAS_END 16 + struct Bytes *delta_decompress(struct Bytes *delta, unsigned int expected_length) { struct Bytes *pcm = malloc(sizeof(struct Bytes)); @@ -418,15 +424,32 @@ struct Bytes *delta_decompress(struct Bytes *delta, unsigned int expected_length return pcm; } +#define U8_TO_S8(value) ((value) < 128 ? (value) : (value) - 256) +#define ABS(value) ((value) >= 0 ? (value) : -(value)) + int get_delta_index(uint8_t sample, uint8_t prev_sample) { int best_error = INT_MAX; int best_index = -1; + int delta_table_start_index; + int delta_table_end_index; + int sample_signed = U8_TO_S8(sample); + int prev_sample_signed = U8_TO_S8(prev_sample); - for (int i = 0; i < 16; i++) + // if we're going up (or equal), only choose positive deltas + if (prev_sample_signed <= sample_signed) { + delta_table_start_index = POSITIVE_DELTAS_START; + delta_table_end_index = POSITIVE_DELTAS_END; + } else { + delta_table_start_index = NEGATIVE_DELTAS_START; + delta_table_end_index = NEGATIVE_DELTAS_END; + } + + for (int i = delta_table_start_index; i < delta_table_end_index; i++) { uint8_t new_sample = prev_sample + gDeltaEncodingTable[i]; - int error = sample > new_sample ? sample - new_sample : new_sample - sample; + int new_sample_signed = U8_TO_S8(new_sample); + int error = ABS(new_sample_signed - sample_signed); if (error < best_error) { diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile index 52806e39c6..4dbfab94fe 100644 --- a/tools/bin2c/Makefile +++ b/tools/bin2c/Makefile @@ -6,10 +6,16 @@ CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 SRCS = bin2c.c -all: bin2c +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + +all: bin2c$(EXE) @: -bin2c: $(SRCS) +bin2c$(EXE): $(SRCS) $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) clean: diff --git a/tools/gbafix/Makefile b/tools/gbafix/Makefile index 91a60a9e4c..efb016c97e 100644 --- a/tools/gbafix/Makefile +++ b/tools/gbafix/Makefile @@ -3,10 +3,16 @@ CC ?= gcc SRCS = gbafix.c -all: gbafix +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + +all: gbafix$(EXE) @: -gbafix: $(SRCS) +gbafix$(EXE): $(SRCS) $(CC) $(SRCS) -o $@ $(LDFLAGS) clean: diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile index f0638414da..b4244aa8d6 100644 --- a/tools/gbagfx/Makefile +++ b/tools/gbagfx/Makefile @@ -6,15 +6,21 @@ LIBS = -lpng -lz SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c rl.c util.c font.c huff.c +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + .PHONY: all clean -all: gbagfx +all: gbagfx$(EXE) @: -gbagfx-debug: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h +gbagfx-debug$(EXE): $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h $(CC) $(CFLAGS) -DDEBUG $(SRCS) -o $@ $(LDFLAGS) $(LIBS) -gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h +gbagfx$(EXE): $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) clean: diff --git a/tools/jsonproc/Makefile b/tools/jsonproc/Makefile index 47198b171e..eec73eb7bf 100755 --- a/tools/jsonproc/Makefile +++ b/tools/jsonproc/Makefile @@ -8,12 +8,18 @@ SRCS := jsonproc.cpp HEADERS := jsonproc.h inja.hpp nlohmann/json.hpp +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + .PHONY: all clean -all: jsonproc +all: jsonproc$(EXE) @: -jsonproc: $(SRCS) $(HEADERS) +jsonproc$(EXE): $(SRCS) $(HEADERS) $(CXX) $(CXXFLAGS) $(INCLUDES) $(SRCS) -o $@ $(LDFLAGS) clean: diff --git a/tools/mapjson/Makefile b/tools/mapjson/Makefile index c1f703f9fe..100e809c6c 100644 --- a/tools/mapjson/Makefile +++ b/tools/mapjson/Makefile @@ -6,12 +6,18 @@ SRCS := json11.cpp mapjson.cpp HEADERS := mapjson.h +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + .PHONY: all clean -all: mapjson +all: mapjson$(EXE) @: -mapjson: $(SRCS) $(HEADERS) +mapjson$(EXE): $(SRCS) $(HEADERS) $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) clean: diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 5e246ff249..d767b469e9 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -395,7 +395,7 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { int group_num = 0; for (auto &group : groups_data["group_order"].array_items()) { - text << "// Map Group " << group_num << "\n"; + text << "// " << group.string_value() << "\n"; vector map_ids; size_t max_length = 0; diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile index 451d4b39fb..553b7859ed 100644 --- a/tools/mid2agb/Makefile +++ b/tools/mid2agb/Makefile @@ -6,12 +6,18 @@ SRCS := agb.cpp error.cpp main.cpp midi.cpp tables.cpp HEADERS := agb.h error.h main.h midi.h tables.h +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + .PHONY: all clean -all: mid2agb +all: mid2agb$(EXE) @: -mid2agb: $(SRCS) $(HEADERS) +mid2agb$(EXE): $(SRCS) $(HEADERS) $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) clean: diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile index 8c48afea2a..1507c973f2 100644 --- a/tools/preproc/Makefile +++ b/tools/preproc/Makefile @@ -8,12 +8,18 @@ SRCS := asm_file.cpp c_file.cpp charmap.cpp preproc.cpp string_parser.cpp \ HEADERS := asm_file.h c_file.h char_util.h charmap.h preproc.h string_parser.h \ utf8.h +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + .PHONY: all clean -all: preproc +all: preproc$(EXE) @: -preproc: $(SRCS) $(HEADERS) +preproc$(EXE): $(SRCS) $(HEADERS) $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) clean: diff --git a/tools/preproc/c_file.cpp b/tools/preproc/c_file.cpp index b996a048c7..17a08cc9f7 100644 --- a/tools/preproc/c_file.cpp +++ b/tools/preproc/c_file.cpp @@ -23,32 +23,59 @@ #include #include #include +#include +#include #include "preproc.h" #include "c_file.h" #include "char_util.h" #include "utf8.h" #include "string_parser.h" -CFile::CFile(std::string filename) : m_filename(filename) +CFile::CFile(const char * filenameCStr, bool isStdin) { - FILE *fp = std::fopen(filename.c_str(), "rb"); + FILE *fp; + + if (isStdin) { + fp = stdin; + m_filename = std::string{"/"}.append(filenameCStr); + } else { + fp = std::fopen(filenameCStr, "rb"); + m_filename = std::string(filenameCStr); + } + + std::string& filename = m_filename; if (fp == NULL) FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); - std::fseek(fp, 0, SEEK_END); + m_size = 0; + m_buffer = (char *)malloc(CHUNK_SIZE + 1); + if (m_buffer == NULL) { + FATAL_ERROR("Failed to allocate memory to process file \"%s\"!", filename.c_str()); + } - m_size = std::ftell(fp); + std::size_t numAllocatedBytes = CHUNK_SIZE + 1; + std::size_t bufferOffset = 0; + std::size_t count; - if (m_size < 0) - FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); + while ((count = std::fread(m_buffer + bufferOffset, 1, CHUNK_SIZE, fp)) != 0) { + if (!std::ferror(fp)) { + m_size += count; - m_buffer = new char[m_size + 1]; + if (std::feof(fp)) { + break; + } - std::rewind(fp); - - if (std::fread(m_buffer, m_size, 1, fp) != 1) - FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); + numAllocatedBytes += CHUNK_SIZE; + bufferOffset += CHUNK_SIZE; + m_buffer = (char *)realloc(m_buffer, numAllocatedBytes); + if (m_buffer == NULL) { + FATAL_ERROR("Failed to allocate memory to process file \"%s\"!", filename.c_str()); + } + } else { + FATAL_ERROR("Failed to read \"%s\". (error: %s)", filename.c_str(), std::strerror(errno)); + } + } m_buffer[m_size] = 0; @@ -56,6 +83,7 @@ CFile::CFile(std::string filename) : m_filename(filename) m_pos = 0; m_lineNum = 1; + m_isStdin = isStdin; } CFile::CFile(CFile&& other) : m_filename(std::move(other.m_filename)) @@ -64,13 +92,14 @@ CFile::CFile(CFile&& other) : m_filename(std::move(other.m_filename)) m_pos = other.m_pos; m_size = other.m_size; m_lineNum = other.m_lineNum; + m_isStdin = other.m_isStdin; - other.m_buffer = nullptr; + other.m_buffer = NULL; } CFile::~CFile() { - delete[] m_buffer; + free(m_buffer); } void CFile::Preproc() diff --git a/tools/preproc/c_file.h b/tools/preproc/c_file.h index 7369aba852..49e633a18d 100644 --- a/tools/preproc/c_file.h +++ b/tools/preproc/c_file.h @@ -30,7 +30,7 @@ class CFile { public: - CFile(std::string filename); + CFile(const char * filenameCStr, bool isStdin); CFile(CFile&& other); CFile(const CFile&) = delete; ~CFile(); @@ -42,6 +42,7 @@ private: long m_size; long m_lineNum; std::string m_filename; + bool m_isStdin; bool ConsumeHorizontalWhitespace(); bool ConsumeNewline(); @@ -55,4 +56,6 @@ private: void RaiseWarning(const char* format, ...); }; +#define CHUNK_SIZE 4096 + #endif // C_FILE_H diff --git a/tools/preproc/preproc.cpp b/tools/preproc/preproc.cpp index c9c6042df1..eb2d4c8a23 100644 --- a/tools/preproc/preproc.cpp +++ b/tools/preproc/preproc.cpp @@ -103,9 +103,9 @@ void PreprocAsmFile(std::string filename) } } -void PreprocCFile(std::string filename) +void PreprocCFile(const char * filename, bool isStdin) { - CFile cFile(filename); + CFile cFile(filename, isStdin); cFile.Preproc(); } @@ -132,9 +132,9 @@ char* GetFileExtension(char* filename) int main(int argc, char **argv) { - if (argc != 3) + if (argc < 3 || argc > 4) { - std::fprintf(stderr, "Usage: %s SRC_FILE CHARMAP_FILE", argv[0]); + std::fprintf(stderr, "Usage: %s SRC_FILE CHARMAP_FILE [-i]\nwhere -i denotes if input is from stdin\n", argv[0]); return 1; } @@ -147,9 +147,17 @@ int main(int argc, char **argv) if ((extension[0] == 's') && extension[1] == 0) PreprocAsmFile(argv[1]); - else if ((extension[0] == 'c' || extension[0] == 'i') && extension[1] == 0) - PreprocCFile(argv[1]); - else + else if ((extension[0] == 'c' || extension[0] == 'i') && extension[1] == 0) { + if (argc == 4) { + if (argv[3][0] == '-' && argv[3][1] == 'i' && argv[3][2] == '\0') { + PreprocCFile(argv[1], true); + } else { + FATAL_ERROR("unknown argument flag \"%s\".\n", argv[3]); + } + } else { + PreprocCFile(argv[1], false); + } + } else FATAL_ERROR("\"%s\" has an unknown file extension of \"%s\".\n", argv[1], extension); return 0; diff --git a/tools/ramscrgen/Makefile b/tools/ramscrgen/Makefile index 4e901a29c1..a9375c87ab 100644 --- a/tools/ramscrgen/Makefile +++ b/tools/ramscrgen/Makefile @@ -8,10 +8,16 @@ HEADERS := ramscrgen.h sym_file.h elf.h char_util.h .PHONY: all clean -all: ramscrgen +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + +all: ramscrgen$(EXE) @: -ramscrgen: $(SRCS) $(HEADERS) +ramscrgen$(EXE): $(SRCS) $(HEADERS) $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) clean: diff --git a/tools/rsfont/Makefile b/tools/rsfont/Makefile index 930a92b36e..0bc88a42b7 100644 --- a/tools/rsfont/Makefile +++ b/tools/rsfont/Makefile @@ -8,10 +8,16 @@ SRCS = main.c convert_png.c util.c font.c .PHONY: all clean -all: rsfont +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + +all: rsfont$(EXE) @: -rsfont: $(SRCS) convert_png.h gfx.h global.h util.h font.h +rsfont$(EXE): $(SRCS) convert_png.h gfx.h global.h util.h font.h $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) clean: diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile index 52e663d8da..96d92f7062 100644 --- a/tools/scaninc/Makefile +++ b/tools/scaninc/Makefile @@ -8,10 +8,16 @@ HEADERS := scaninc.h asm_file.h c_file.h source_file.h .PHONY: all clean -all: scaninc +ifeq ($(OS),Windows_NT) +EXE := .exe +else +EXE := +endif + +all: scaninc$(EXE) @: -scaninc: $(SRCS) $(HEADERS) +scaninc$(EXE): $(SRCS) $(HEADERS) $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) clean: